| OLD | NEW |
| 1 <!DOCTYPE html><html><head><meta charset="UTF-8"> </head><body><div hidden="" by
-vulcanize=""><script>!function(){function e(){document.body.removeAttribute("un
resolved")}window.WebComponents?addEventListener("WebComponentsReady",e):"intera
ctive"===document.readyState||"complete"===document.readyState?e():addEventListe
ner("DOMContentLoaded",e)}(),window.Polymer={Settings:function(){var e=window.Po
lymer||{};if(!e.noUrlSettings)for(var t,r=location.search.slice(1).split("&"),i=
0;i<r.length&&(t=r[i]);i++)t=t.split("="),t[0]&&(e[t[0]]=t[1]||!0);return e.want
Shadow="shadow"===e.dom,e.hasShadow=Boolean(Element.prototype.createShadowRoot),
e.nativeShadow=e.hasShadow&&!window.ShadowDOMPolyfill,e.useShadow=e.wantShadow&&
e.hasShadow,e.hasNativeImports=Boolean("import"in document.createElement("link")
),e.useNativeImports=e.hasNativeImports,e.useNativeCustomElements=!window.Custom
Elements||window.CustomElements.useNative,e.useNativeShadow=e.useShadow&&e.nativ
eShadow,e.usePolyfillProto=!e.useNativeCustomElements&&!Object.__proto__,e.hasNa
tiveCSSProperties=!navigator.userAgent.match("AppleWebKit/601")&&window.CSS&&CSS
.supports&&CSS.supports("box-shadow","0 0 0 var(--foo)"),e.useNativeCSSPropertie
s=e.hasNativeCSSProperties&&e.lazyRegister&&e.useNativeCSSProperties,e}()},funct
ion(){var e=window.Polymer;window.Polymer=function(e){"function"==typeof e&&(e=e
.prototype),e||(e={});var r=t(e);e=r.prototype;var i={prototype:e};return e.exte
nds&&(i.extends=e.extends),Polymer.telemetry._registrate(e),document.registerEle
ment(e.is,i),r};var t=function(e){var t=Polymer.Base;return e.extends&&(t=Polyme
r.Base._getExtendedPrototype(e.extends)),e=Polymer.Base.chainObject(e,t),e.regis
terCallback(),e.constructor};if(e)for(var r in e)Polymer[r]=e[r];Polymer.Class=t
}(),Polymer.telemetry={registrations:[],_regLog:function(e){console.log("["+e.is
+"]: registered")},_registrate:function(e){this.registrations.push(e),Polymer.lo
g&&this._regLog(e)},dumpRegistrations:function(){this.registrations.forEach(this
._regLog)}},Object.defineProperty(window,"currentImport",{enumerable:!0,configur
able:!0,get:function(){return(document._currentScript||document.currentScript).o
wnerDocument}}),Polymer.RenderStatus={_ready:!1,_callbacks:[],whenReady:function
(e){this._ready?e():this._callbacks.push(e)},_makeReady:function(){this._ready=!
0;for(var e=0;e<this._callbacks.length;e++)this._callbacks[e]();this._callbacks=
[]},_catchFirstRender:function(){requestAnimationFrame(function(){Polymer.Render
Status._makeReady()})},_afterNextRenderQueue:[],_waitingNextRender:!1,afterNextR
ender:function(e,t,r){this._watchNextRender(),this._afterNextRenderQueue.push([e
,t,r])},hasRendered:function(){return this._ready},_watchNextRender:function(){i
f(!this._waitingNextRender){this._waitingNextRender=!0;var e=function(){Polymer.
RenderStatus._flushNextRender()};this._ready?requestAnimationFrame(e):this.whenR
eady(e)}},_flushNextRender:function(){var e=this;setTimeout(function(){e._flushR
enderCallbacks(e._afterNextRenderQueue),e._afterNextRenderQueue=[],e._waitingNex
tRender=!1})},_flushRenderCallbacks:function(e){for(var t,r=0;r<e.length;r++)t=e
[r],t[1].apply(t[0],t[2]||Polymer.nar)}},window.HTMLImports?HTMLImports.whenRead
y(function(){Polymer.RenderStatus._catchFirstRender()}):Polymer.RenderStatus._ca
tchFirstRender(),Polymer.ImportStatus=Polymer.RenderStatus,Polymer.ImportStatus.
whenLoaded=Polymer.ImportStatus.whenReady,function(){"use strict";var e=Polymer.
Settings;Polymer.Base={__isPolymerInstance__:!0,_addFeature:function(e){this.ext
end(this,e)},registerCallback:function(){"max"===e.lazyRegister?this.beforeRegis
ter&&this.beforeRegister():(this._desugarBehaviors(),this._doBehavior("beforeReg
ister")),this._registerFeatures(),e.lazyRegister||this.ensureRegisterFinished()}
,createdCallback:function(){this.__hasRegisterFinished||this._ensureRegisterFini
shed(this.__proto__),Polymer.telemetry.instanceCount++,this.root=this,this._doBe
havior("created"),this._initFeatures()},ensureRegisterFinished:function(){this._
ensureRegisterFinished(this)},_ensureRegisterFinished:function(t){t.__hasRegiste
rFinished===t.is&&t.is||("max"===e.lazyRegister&&(t._desugarBehaviors(),t._doBeh
aviorOnly("beforeRegister")),t.__hasRegisterFinished=t.is,t._finishRegisterFeatu
res&&t._finishRegisterFeatures(),t._doBehavior("registered"),e.usePolyfillProto&
&t!==this&&t.extend(this,t))},attachedCallback:function(){var e=this;Polymer.Ren
derStatus.whenReady(function(){e.isAttached=!0,e._doBehavior("attached")})},deta
chedCallback:function(){var e=this;Polymer.RenderStatus.whenReady(function(){e.i
sAttached=!1,e._doBehavior("detached")})},attributeChangedCallback:function(e,t,
r){this._attributeChangedImpl(e),this._doBehavior("attributeChanged",[e,t,r])},_
attributeChangedImpl:function(e){this._setAttributeToProperty(this,e)},extend:fu
nction(e,t){if(e&&t)for(var r,i=Object.getOwnPropertyNames(t),o=0;o<i.length&&(r
=i[o]);o++)this.copyOwnProperty(r,t,e);return e||t},mixin:function(e,t){for(var
r in t)e[r]=t[r];return e},copyOwnProperty:function(e,t,r){var i=Object.getOwnPr
opertyDescriptor(t,e);i&&Object.defineProperty(r,e,i)},_logger:function(e,t){swi
tch(1===t.length&&Array.isArray(t[0])&&(t=t[0]),e){case"log":case"warn":case"err
or":console[e].apply(console,t)}},_log:function(){var e=Array.prototype.slice.ca
ll(arguments,0);this._logger("log",e)},_warn:function(){var e=Array.prototype.sl
ice.call(arguments,0);this._logger("warn",e)},_error:function(){var e=Array.prot
otype.slice.call(arguments,0);this._logger("error",e)},_logf:function(){return t
his._logPrefix.concat(this.is).concat(Array.prototype.slice.call(arguments,0))}}
,Polymer.Base._logPrefix=function(){var e=window.chrome&&!/edge/i.test(navigator
.userAgent)||/firefox/i.test(navigator.userAgent);return e?["%c[%s::%s]:","font-
weight: bold; background-color:#EEEE00;"]:["[%s::%s]:"]}(),Polymer.Base.chainObj
ect=function(e,t){return e&&t&&e!==t&&(Object.__proto__||(e=Polymer.Base.extend(
Object.create(t),e)),e.__proto__=t),e},Polymer.Base=Polymer.Base.chainObject(Pol
ymer.Base,HTMLElement.prototype),window.CustomElements?Polymer.instanceof=Custom
Elements.instanceof:Polymer.instanceof=function(e,t){return e instanceof t},Poly
mer.isInstance=function(e){return Boolean(e&&e.__isPolymerInstance__)},Polymer.t
elemetry.instanceCount=0}(),function(){function e(){if(s)for(var e,t=document._c
urrentScript||document.currentScript,r=t&&t.ownerDocument||document,i=r.querySel
ectorAll("dom-module"),o=i.length-1;o>=0&&(e=i[o]);o--){if(e.__upgraded__)return
;CustomElements.upgrade(e)}}var t={},r={},i=function(e){return t[e]||r[e.toLower
Case()]},o=function(){return document.createElement("dom-module")};o.prototype=O
bject.create(HTMLElement.prototype),Polymer.Base.extend(o.prototype,{constructor
:o,createdCallback:function(){this.register()},register:function(e){e=e||this.id
||this.getAttribute("name")||this.getAttribute("is"),e&&(this.id=e,t[e]=this,r[e
.toLowerCase()]=this)},import:function(t,r){if(t){var o=i(t);return o||(e(),o=i(
t)),o&&r&&(o=o.querySelector(r)),o}}});var s=window.CustomElements&&!CustomEleme
nts.useNative;document.registerElement("dom-module",o)}(),Polymer.Base._addFeatu
re({_prepIs:function(){if(!this.is){var e=(document._currentScript||document.cur
rentScript).parentNode;if("dom-module"===e.localName){var t=e.id||e.getAttribute
("name")||e.getAttribute("is");this.is=t}}this.is&&(this.is=this.is.toLowerCase(
))}}),Polymer.Base._addFeature({behaviors:[],_desugarBehaviors:function(){this.b
ehaviors.length&&(this.behaviors=this._desugarSomeBehaviors(this.behaviors))},_d
esugarSomeBehaviors:function(e){var t=[];e=this._flattenBehaviorsList(e);for(var
r=e.length-1;r>=0;r--){var i=e[r];t.indexOf(i)===-1&&(this._mixinBehavior(i),t.
unshift(i))}return t},_flattenBehaviorsList:function(e){for(var t=[],r=0;r<e.len
gth;r++){var i=e[r];i instanceof Array?t=t.concat(this._flattenBehaviorsList(i))
:i?t.push(i):this._warn(this._logf("_flattenBehaviorsList","behavior is null, ch
eck for missing or 404 import"))}return t},_mixinBehavior:function(e){for(var t,
r=Object.getOwnPropertyNames(e),i=0;i<r.length&&(t=r[i]);i++)Polymer.Base._behav
iorProperties[t]||this.hasOwnProperty(t)||this.copyOwnProperty(t,e,this)},_prepB
ehaviors:function(){this._prepFlattenedBehaviors(this.behaviors)},_prepFlattened
Behaviors:function(e){for(var t=0,r=e.length;t<r;t++)this._prepBehavior(e[t]);th
is._prepBehavior(this)},_doBehavior:function(e,t){for(var r=0;r<this.behaviors.l
ength;r++)this._invokeBehavior(this.behaviors[r],e,t);this._invokeBehavior(this,
e,t)},_doBehaviorOnly:function(e,t){for(var r=0;r<this.behaviors.length;r++)this
._invokeBehavior(this.behaviors[r],e,t)},_invokeBehavior:function(e,t,r){var i=e
[t];i&&i.apply(this,r||Polymer.nar)},_marshalBehaviors:function(){for(var e=0;e<
this.behaviors.length;e++)this._marshalBehavior(this.behaviors[e]);this._marshal
Behavior(this)}}),Polymer.Base._behaviorProperties={hostAttributes:!0,beforeRegi
ster:!0,registered:!0,properties:!0,observers:!0,listeners:!0,created:!0,attache
d:!0,detached:!0,attributeChanged:!0,ready:!0},Polymer.Base._addFeature({_getExt
endedPrototype:function(e){return this._getExtendedNativePrototype(e)},_nativePr
ototypes:{},_getExtendedNativePrototype:function(e){var t=this._nativePrototypes
[e];if(!t){var r=this.getNativePrototype(e);t=this.extend(Object.create(r),Polym
er.Base),this._nativePrototypes[e]=t}return t},getNativePrototype:function(e){re
turn Object.getPrototypeOf(document.createElement(e))}}),Polymer.Base._addFeatur
e({_prepConstructor:function(){this._factoryArgs=this.extends?[this.extends,this
.is]:[this.is];var e=function(){return this._factory(arguments)};this.hasOwnProp
erty("extends")&&(e.extends=this.extends),Object.defineProperty(this,"constructo
r",{value:e,writable:!0,configurable:!0}),e.prototype=this},_factory:function(e)
{var t=document.createElement.apply(document,this._factoryArgs);return this.fact
oryImpl&&this.factoryImpl.apply(t,e),t}}),Polymer.nob=Object.create(null),Polyme
r.Base._addFeature({properties:{},getPropertyInfo:function(e){var t=this._getPro
pertyInfo(e,this.properties);if(!t)for(var r=0;r<this.behaviors.length;r++)if(t=
this._getPropertyInfo(e,this.behaviors[r].properties))return t;return t||Polymer
.nob},_getPropertyInfo:function(e,t){var r=t&&t[e];return"function"==typeof r&&(
r=t[e]={type:r}),r&&(r.defined=!0),r},_prepPropertyInfo:function(){this._propert
yInfo={};for(var e=0;e<this.behaviors.length;e++)this._addPropertyInfo(this._pro
pertyInfo,this.behaviors[e].properties);this._addPropertyInfo(this._propertyInfo
,this.properties),this._addPropertyInfo(this._propertyInfo,this._propertyEffects
)},_addPropertyInfo:function(e,t){if(t){var r,i;for(var o in t)r=e[o],i=t[o],("_
"!==o[0]||i.readOnly)&&(e[o]?(r.type||(r.type=i.type),r.readOnly||(r.readOnly=i.
readOnly)):e[o]={type:"function"==typeof i?i:i.type,readOnly:i.readOnly,attribut
e:Polymer.CaseMap.camelToDashCase(o)})}}}),Polymer.CaseMap={_caseMap:{},_rx:{das
hToCamel:/-[a-z]/g,camelToDash:/([A-Z])/g},dashToCamelCase:function(e){return th
is._caseMap[e]||(this._caseMap[e]=e.indexOf("-")<0?e:e.replace(this._rx.dashToCa
mel,function(e){return e[1].toUpperCase()}))},camelToDashCase:function(e){return
this._caseMap[e]||(this._caseMap[e]=e.replace(this._rx.camelToDash,"-$1").toLow
erCase())}},Polymer.Base._addFeature({_addHostAttributes:function(e){this._aggre
gatedAttributes||(this._aggregatedAttributes={}),e&&this.mixin(this._aggregatedA
ttributes,e)},_marshalHostAttributes:function(){this._aggregatedAttributes&&this
._applyAttributes(this,this._aggregatedAttributes)},_applyAttributes:function(e,
t){for(var r in t)if(!this.hasAttribute(r)&&"class"!==r){var i=t[r];this.seriali
zeValueToAttribute(i,r,this)}},_marshalAttributes:function(){this._takeAttribute
sToModel(this)},_takeAttributesToModel:function(e){if(this.hasAttributes())for(v
ar t in this._propertyInfo){var r=this._propertyInfo[t];this.hasAttribute(r.attr
ibute)&&this._setAttributeToProperty(e,r.attribute,t,r)}},_setAttributeToPropert
y:function(e,t,r,i){if(!this._serializing&&(r=r||Polymer.CaseMap.dashToCamelCase
(t),i=i||this._propertyInfo&&this._propertyInfo[r],i&&!i.readOnly)){var o=this.g
etAttribute(t);e[r]=this.deserialize(o,i.type)}},_serializing:!1,reflectProperty
ToAttribute:function(e,t,r){this._serializing=!0,r=void 0===r?this[e]:r,this.ser
ializeValueToAttribute(r,t||Polymer.CaseMap.camelToDashCase(e)),this._serializin
g=!1},serializeValueToAttribute:function(e,t,r){var i=this.serialize(e);r=r||thi
s,void 0===i?r.removeAttribute(t):r.setAttribute(t,i)},deserialize:function(e,t)
{switch(t){case Number:e=Number(e);break;case Boolean:e=null!=e;break;case Objec
t:try{e=JSON.parse(e)}catch(e){}break;case Array:try{e=JSON.parse(e)}catch(t){e=
null,console.warn("Polymer::Attributes: couldn`t decode Array as JSON")}break;ca
se Date:e=new Date(e);break;case String:}return e},serialize:function(e){switch(
typeof e){case"boolean":return e?"":void 0;case"object":if(e instanceof Date)ret
urn e.toString();if(e)try{return JSON.stringify(e)}catch(e){return""}default:ret
urn null!=e?e:void 0}}}),Polymer.version="1.7.0",Polymer.Base._addFeature({_regi
sterFeatures:function(){this._prepIs(),this._prepBehaviors(),this._prepConstruct
or(),this._prepPropertyInfo()},_prepBehavior:function(e){this._addHostAttributes
(e.hostAttributes)},_marshalBehavior:function(e){},_initFeatures:function(){this
._marshalHostAttributes(),this._marshalBehaviors()}})</script> <script>Polymer.B
ase._addFeature({_prepTemplate:function(){void 0===this._template&&(this._templa
te=Polymer.DomModule.import(this.is,"template")),this._template&&this._template.
hasAttribute("is")&&this._warn(this._logf("_prepTemplate","top-level Polymer tem
plate must not be a type-extension, found",this._template,"Move inside simple <t
emplate>.")),this._template&&!this._template.content&&window.HTMLTemplateElement
&&HTMLTemplateElement.decorate&&HTMLTemplateElement.decorate(this._template)},_s
tampTemplate:function(){this._template&&(this.root=this.instanceTemplate(this._t
emplate))},instanceTemplate:function(e){var t=document.importNode(e._content||e.
content,!0);return t}}),function(){var e=Polymer.Base.attachedCallback;Polymer.B
ase._addFeature({_hostStack:[],ready:function(){},_registerHost:function(e){this
.dataHost=e=e||Polymer.Base._hostStack[Polymer.Base._hostStack.length-1],e&&e._c
lients&&e._clients.push(this),this._clients=null,this._clientsReadied=!1},_begin
Hosting:function(){Polymer.Base._hostStack.push(this),this._clients||(this._clie
nts=[])},_endHosting:function(){Polymer.Base._hostStack.pop()},_tryReady:functio
n(){this._readied=!1,this._canReady()&&this._ready()},_canReady:function(){retur
n!this.dataHost||this.dataHost._clientsReadied},_ready:function(){this._beforeCl
ientsReady(),this._template&&(this._setupRoot(),this._readyClients()),this._clie
ntsReadied=!0,this._clients=null,this._afterClientsReady(),this._readySelf()},_r
eadyClients:function(){this._beginDistribute();var e=this._clients;if(e)for(var
t,o=0,i=e.length;o<i&&(t=e[o]);o++)t._ready();this._finishDistribute()},_readySe
lf:function(){this._doBehavior("ready"),this._readied=!0,this._attachedPending&&
(this._attachedPending=!1,this.attachedCallback())},_beforeClientsReady:function
(){},_afterClientsReady:function(){},_beforeAttached:function(){},attachedCallba
ck:function(){this._readied?(this._beforeAttached(),e.call(this)):this._attached
Pending=!0}})}(),Polymer.ArraySplice=function(){function e(e,t,o){return{index:e
,removed:t,addedCount:o}}function t(){}var o=0,i=1,n=2,s=3;return t.prototype={c
alcEditDistances:function(e,t,o,i,n,s){for(var r=s-n+1,d=o-t+1,a=new Array(r),l=
0;l<r;l++)a[l]=new Array(d),a[l][0]=l;for(var h=0;h<d;h++)a[0][h]=h;for(l=1;l<r;
l++)for(h=1;h<d;h++)if(this.equals(e[t+h-1],i[n+l-1]))a[l][h]=a[l-1][h-1];else{v
ar u=a[l-1][h]+1,c=a[l][h-1]+1;a[l][h]=u<c?u:c}return a},spliceOperationsFromEdi
tDistances:function(e){for(var t=e.length-1,r=e[0].length-1,d=e[t][r],a=[];t>0||
r>0;)if(0!=t)if(0!=r){var l,h=e[t-1][r-1],u=e[t-1][r],c=e[t][r-1];l=u<c?u<h?u:h:
c<h?c:h,l==h?(h==d?a.push(o):(a.push(i),d=h),t--,r--):l==u?(a.push(s),t--,d=u):(
a.push(n),r--,d=c)}else a.push(s),t--;else a.push(n),r--;return a.reverse(),a},c
alcSplices:function(t,r,d,a,l,h){var u=0,c=0,_=Math.min(d-r,h-l);if(0==r&&0==l&&
(u=this.sharedPrefix(t,a,_)),d==t.length&&h==a.length&&(c=this.sharedSuffix(t,a,
_-u)),r+=u,l+=u,d-=c,h-=c,d-r==0&&h-l==0)return[];if(r==d){for(var f=e(r,[],0);l
<h;)f.removed.push(a[l++]);return[f]}if(l==h)return[e(r,[],d-r)];var m=this.spli
ceOperationsFromEditDistances(this.calcEditDistances(t,r,d,a,l,h));f=void 0;for(
var p=[],v=r,g=l,b=0;b<m.length;b++)switch(m[b]){case o:f&&(p.push(f),f=void 0),
v++,g++;break;case i:f||(f=e(v,[],0)),f.addedCount++,v++,f.removed.push(a[g]),g+
+;break;case n:f||(f=e(v,[],0)),f.addedCount++,v++;break;case s:f||(f=e(v,[],0))
,f.removed.push(a[g]),g++}return f&&p.push(f),p},sharedPrefix:function(e,t,o){fo
r(var i=0;i<o;i++)if(!this.equals(e[i],t[i]))return i;return o},sharedSuffix:fun
ction(e,t,o){for(var i=e.length,n=t.length,s=0;s<o&&this.equals(e[--i],t[--n]);)
s++;return s},calculateSplices:function(e,t){return this.calcSplices(e,0,e.lengt
h,t,0,t.length)},equals:function(e,t){return e===t}},new t}(),Polymer.domInnerHT
ML=function(){function e(e){switch(e){case"&":return"&";case"<":return"<"
;case">":return">";case'"':return""";case" ":return" "}}function t(
t){return t.replace(r,e)}function o(t){return t.replace(d,e)}function i(e){for(v
ar t={},o=0;o<e.length;o++)t[e[o]]=!0;return t}function n(e,i,n){switch(e.nodeTy
pe){case Node.ELEMENT_NODE:for(var r,d=e.localName,h="<"+d,u=e.attributes,c=0;r=
u[c];c++)h+=" "+r.name+'="'+t(r.value)+'"';return h+=">",a[d]?h:h+s(e,n)+"</"+d+
">";case Node.TEXT_NODE:var _=e.data;return i&&l[i.localName]?_:o(_);case Node.C
OMMENT_NODE:return"\x3c!--"+e.data+"--\x3e";default:throw console.error(e),new E
rror("not implemented")}}function s(e,t){e instanceof HTMLTemplateElement&&(e=e.
content);for(var o,i="",s=Polymer.dom(e).childNodes,r=0,d=s.length;r<d&&(o=s[r])
;r++)i+=n(o,e,t);return i}var r=/[&\u00A0"]/g,d=/[&\u00A0<>]/g,a=i(["area","base
","br","col","command","embed","hr","img","input","keygen","link","meta","param"
,"source","track","wbr"]),l=i(["style","script","xmp","iframe","noembed","nofram
es","plaintext","noscript"]);return{getInnerHTML:s}}(),function(){"use strict";v
ar e=Element.prototype.insertBefore,t=Element.prototype.appendChild,o=Element.pr
ototype.removeChild;Polymer.TreeApi={arrayCopyChildNodes:function(e){for(var t=[
],o=0,i=e.firstChild;i;i=i.nextSibling)t[o++]=i;return t},arrayCopyChildren:func
tion(e){for(var t=[],o=0,i=e.firstElementChild;i;i=i.nextElementSibling)t[o++]=i
;return t},arrayCopy:function(e){for(var t=e.length,o=new Array(t),i=0;i<t;i++)o
[i]=e[i];return o}},Polymer.TreeApi.Logical={hasParentNode:function(e){return Bo
olean(e.__dom&&e.__dom.parentNode)},hasChildNodes:function(e){return Boolean(e._
_dom&&void 0!==e.__dom.childNodes)},getChildNodes:function(e){return this.hasChi
ldNodes(e)?this._getChildNodes(e):e.childNodes},_getChildNodes:function(e){if(!e
.__dom.childNodes){e.__dom.childNodes=[];for(var t=e.__dom.firstChild;t;t=t.__do
m.nextSibling)e.__dom.childNodes.push(t)}return e.__dom.childNodes},getParentNod
e:function(e){return e.__dom&&void 0!==e.__dom.parentNode?e.__dom.parentNode:e.p
arentNode},getFirstChild:function(e){return e.__dom&&void 0!==e.__dom.firstChild
?e.__dom.firstChild:e.firstChild},getLastChild:function(e){return e.__dom&&void
0!==e.__dom.lastChild?e.__dom.lastChild:e.lastChild},getNextSibling:function(e){
return e.__dom&&void 0!==e.__dom.nextSibling?e.__dom.nextSibling:e.nextSibling},
getPreviousSibling:function(e){return e.__dom&&void 0!==e.__dom.previousSibling?
e.__dom.previousSibling:e.previousSibling},getFirstElementChild:function(e){retu
rn e.__dom&&void 0!==e.__dom.firstChild?this._getFirstElementChild(e):e.firstEle
mentChild},_getFirstElementChild:function(e){for(var t=e.__dom.firstChild;t&&t.n
odeType!==Node.ELEMENT_NODE;)t=t.__dom.nextSibling;return t},getLastElementChild
:function(e){return e.__dom&&void 0!==e.__dom.lastChild?this._getLastElementChil
d(e):e.lastElementChild},_getLastElementChild:function(e){for(var t=e.__dom.last
Child;t&&t.nodeType!==Node.ELEMENT_NODE;)t=t.__dom.previousSibling;return t},get
NextElementSibling:function(e){return e.__dom&&void 0!==e.__dom.nextSibling?this
._getNextElementSibling(e):e.nextElementSibling},_getNextElementSibling:function
(e){for(var t=e.__dom.nextSibling;t&&t.nodeType!==Node.ELEMENT_NODE;)t=t.__dom.n
extSibling;return t},getPreviousElementSibling:function(e){return e.__dom&&void
0!==e.__dom.previousSibling?this._getPreviousElementSibling(e):e.previousElement
Sibling},_getPreviousElementSibling:function(e){for(var t=e.__dom.previousSiblin
g;t&&t.nodeType!==Node.ELEMENT_NODE;)t=t.__dom.previousSibling;return t},saveChi
ldNodes:function(e){if(!this.hasChildNodes(e)){e.__dom=e.__dom||{},e.__dom.first
Child=e.firstChild,e.__dom.lastChild=e.lastChild,e.__dom.childNodes=[];for(var t
=e.firstChild;t;t=t.nextSibling)t.__dom=t.__dom||{},t.__dom.parentNode=e,e.__dom
.childNodes.push(t),t.__dom.nextSibling=t.nextSibling,t.__dom.previousSibling=t.
previousSibling}},recordInsertBefore:function(e,t,o){if(t.__dom.childNodes=null,
e.nodeType===Node.DOCUMENT_FRAGMENT_NODE)for(var i=e.firstChild;i;i=i.nextSiblin
g)this._linkNode(i,t,o);else this._linkNode(e,t,o)},_linkNode:function(e,t,o){e.
__dom=e.__dom||{},t.__dom=t.__dom||{},o&&(o.__dom=o.__dom||{}),e.__dom.previousS
ibling=o?o.__dom.previousSibling:t.__dom.lastChild,e.__dom.previousSibling&&(e._
_dom.previousSibling.__dom.nextSibling=e),e.__dom.nextSibling=o||null,e.__dom.ne
xtSibling&&(e.__dom.nextSibling.__dom.previousSibling=e),e.__dom.parentNode=t,o?
o===t.__dom.firstChild&&(t.__dom.firstChild=e):(t.__dom.lastChild=e,t.__dom.firs
tChild||(t.__dom.firstChild=e)),t.__dom.childNodes=null},recordRemoveChild:funct
ion(e,t){e.__dom=e.__dom||{},t.__dom=t.__dom||{},e===t.__dom.firstChild&&(t.__do
m.firstChild=e.__dom.nextSibling),e===t.__dom.lastChild&&(t.__dom.lastChild=e.__
dom.previousSibling);var o=e.__dom.previousSibling,i=e.__dom.nextSibling;o&&(o._
_dom.nextSibling=i),i&&(i.__dom.previousSibling=o),e.__dom.parentNode=e.__dom.pr
eviousSibling=e.__dom.nextSibling=void 0,t.__dom.childNodes=null}},Polymer.TreeA
pi.Composed={getChildNodes:function(e){return Polymer.TreeApi.arrayCopyChildNode
s(e)},getParentNode:function(e){return e.parentNode},clearChildNodes:function(e)
{e.textContent=""},insertBefore:function(t,o,i){return e.call(t,o,i||null)},appe
ndChild:function(e,o){return t.call(e,o)},removeChild:function(e,t){return o.cal
l(e,t)}}}(),Polymer.DomApi=function(){"use strict";var e=Polymer.Settings,t=Poly
mer.TreeApi,o=function(e){this.node=i?o.wrap(e):e},i=e.hasShadow&&!e.nativeShado
w;o.wrap=window.wrap?window.wrap:function(e){return e},o.prototype={flush:functi
on(){Polymer.dom.flush()},deepContains:function(e){if(this.node.contains(e))retu
rn!0;for(var t=e,o=e.ownerDocument;t&&t!==o&&t!==this.node;)t=Polymer.dom(t).par
entNode||t.host;return t===this.node},queryDistributedElements:function(e){for(v
ar t,i=this.getEffectiveChildNodes(),n=[],s=0,r=i.length;s<r&&(t=i[s]);s++)t.nod
eType===Node.ELEMENT_NODE&&o.matchesSelector.call(t,e)&&n.push(t);return n},getE
ffectiveChildNodes:function(){for(var e,t=[],o=this.childNodes,i=0,r=o.length;i<
r&&(e=o[i]);i++)if(e.localName===n)for(var d=s(e).getDistributedNodes(),a=0;a<d.
length;a++)t.push(d[a]);else t.push(e);return t},observeNodes:function(e){if(e)r
eturn this.observer||(this.observer=this.node.localName===n?new o.DistributedNod
esObserver(this):new o.EffectiveNodesObserver(this)),this.observer.addListener(e
)},unobserveNodes:function(e){this.observer&&this.observer.removeListener(e)},no
tifyObserver:function(){this.observer&&this.observer.notify()},_query:function(e
,o,i){o=o||this.node;var n=[];return this._queryElements(t.Logical.getChildNodes
(o),e,i,n),n},_queryElements:function(e,t,o,i){for(var n,s=0,r=e.length;s<r&&(n=
e[s]);s++)if(n.nodeType===Node.ELEMENT_NODE&&this._queryElement(n,t,o,i))return!
0},_queryElement:function(e,o,i,n){var s=o(e);return s&&n.push(e),i&&i(s)?s:void
this._queryElements(t.Logical.getChildNodes(e),o,i,n)}};var n=o.CONTENT="conten
t",s=o.factory=function(e){return e=e||document,e.__domApi||(e.__domApi=new o.ct
or(e)),e.__domApi};o.hasApi=function(e){return Boolean(e.__domApi)},o.ctor=o,Pol
ymer.dom=function(e,t){return e instanceof Event?Polymer.EventApi.factory(e):o.f
actory(e,t)};var r=Element.prototype;return o.matchesSelector=r.matches||r.match
esSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.web
kitMatchesSelector,o}(),function(){"use strict";var e=Polymer.Settings,t=Polymer
.DomApi,o=t.factory,i=Polymer.TreeApi,n=Polymer.domInnerHTML.getInnerHTML,s=t.CO
NTENT;if(!e.useShadow){var r=Element.prototype.cloneNode,d=Document.prototype.im
portNode;Polymer.Base.extend(t.prototype,{_lazyDistribute:function(e){e.shadyRoo
t&&e.shadyRoot._distributionClean&&(e.shadyRoot._distributionClean=!1,Polymer.do
m.addDebouncer(e.debounce("_distribute",e._distributeContent)))},appendChild:fun
ction(e){return this.insertBefore(e)},insertBefore:function(e,n){if(n&&i.Logical
.getParentNode(n)!==this.node)throw Error("The ref_node to be inserted before is
not a child of this node");if(e.nodeType!==Node.DOCUMENT_FRAGMENT_NODE){var r=i
.Logical.getParentNode(e);r?(t.hasApi(r)&&o(r).notifyObserver(),this._removeNode
(e)):this._removeOwnerShadyRoot(e)}if(!this._addNode(e,n)){n&&(n=n.localName===s
?this._firstComposedNode(n):n);var d=this.node._isShadyRoot?this.node.host:this.
node;n?i.Composed.insertBefore(d,e,n):i.Composed.appendChild(d,e)}return this.no
tifyObserver(),e},_addNode:function(e,t){var o=this.getOwnerRoot();if(o){var n=t
his._maybeAddInsertionPoint(e,this.node);o._invalidInsertionPoints||(o._invalidI
nsertionPoints=n),this._addNodeToHost(o.host,e)}i.Logical.hasChildNodes(this.nod
e)&&i.Logical.recordInsertBefore(e,this.node,t);var s=this._maybeDistribute(e)||
this.node.shadyRoot;if(s)if(e.nodeType===Node.DOCUMENT_FRAGMENT_NODE)for(;e.firs
tChild;)i.Composed.removeChild(e,e.firstChild);else{var r=i.Composed.getParentNo
de(e);r&&i.Composed.removeChild(r,e)}return s},removeChild:function(e){if(i.Logi
cal.getParentNode(e)!==this.node)throw Error("The node to be removed is not a ch
ild of this node: "+e);if(!this._removeNode(e)){var t=this.node._isShadyRoot?thi
s.node.host:this.node,o=i.Composed.getParentNode(e);t===o&&i.Composed.removeChil
d(t,e)}return this.notifyObserver(),e},_removeNode:function(e){var t,n=i.Logical
.hasParentNode(e)&&i.Logical.getParentNode(e),s=this._ownerShadyRootForNode(e);r
eturn n&&(t=o(e)._maybeDistributeParent(),i.Logical.recordRemoveChild(e,n),s&&th
is._removeDistributedChildren(s,e)&&(s._invalidInsertionPoints=!0,this._lazyDist
ribute(s.host))),this._removeOwnerShadyRoot(e),s&&this._removeNodeFromHost(s.hos
t,e),t},replaceChild:function(e,t){return this.insertBefore(e,t),this.removeChil
d(t),e},_hasCachedOwnerRoot:function(e){return Boolean(void 0!==e._ownerShadyRoo
t)},getOwnerRoot:function(){return this._ownerShadyRootForNode(this.node)},_owne
rShadyRootForNode:function(e){if(e){var t=e._ownerShadyRoot;if(void 0===t){if(e.
_isShadyRoot)t=e;else{var o=i.Logical.getParentNode(e);t=o?o._isShadyRoot?o:this
._ownerShadyRootForNode(o):null}(t||document.documentElement.contains(e))&&(e._o
wnerShadyRoot=t)}return t}},_maybeDistribute:function(e){var t=e.nodeType===Node
.DOCUMENT_FRAGMENT_NODE&&!e.__noContent&&o(e).querySelector(s),n=t&&i.Logical.ge
tParentNode(t).nodeType!==Node.DOCUMENT_FRAGMENT_NODE,r=t||e.localName===s;if(r)
{var d=this.getOwnerRoot();d&&this._lazyDistribute(d.host)}var a=this._nodeNeeds
Distribution(this.node);return a&&this._lazyDistribute(this.node),a||r&&!n},_may
beAddInsertionPoint:function(e,t){var n;if(e.nodeType!==Node.DOCUMENT_FRAGMENT_N
ODE||e.__noContent)e.localName===s&&(i.Logical.saveChildNodes(t),i.Logical.saveC
hildNodes(e),n=!0);else for(var r,d,a,l=o(e).querySelectorAll(s),h=0;h<l.length&
&(r=l[h]);h++)d=i.Logical.getParentNode(r),d===e&&(d=t),a=this._maybeAddInsertio
nPoint(r,d),n=n||a;return n},_updateInsertionPoints:function(e){for(var t,n=e.sh
adyRoot._insertionPoints=o(e.shadyRoot).querySelectorAll(s),r=0;r<n.length;r++)t
=n[r],i.Logical.saveChildNodes(t),i.Logical.saveChildNodes(i.Logical.getParentNo
de(t))},_nodeNeedsDistribution:function(e){return e&&e.shadyRoot&&t.hasInsertion
Point(e.shadyRoot)},_addNodeToHost:function(e,t){e._elementAdd&&e._elementAdd(t)
},_removeNodeFromHost:function(e,t){e._elementRemove&&e._elementRemove(t)},_remo
veDistributedChildren:function(e,t){for(var n,s=e._insertionPoints,r=0;r<s.lengt
h;r++){var d=s[r];if(this._contains(t,d))for(var a=o(d).getDistributedNodes(),l=
0;l<a.length;l++){n=!0;var h=a[l],u=i.Composed.getParentNode(h);u&&i.Composed.re
moveChild(u,h)}}return n},_contains:function(e,t){for(;t;){if(t==e)return!0;t=i.
Logical.getParentNode(t)}},_removeOwnerShadyRoot:function(e){if(this._hasCachedO
wnerRoot(e))for(var t,o=i.Logical.getChildNodes(e),n=0,s=o.length;n<s&&(t=o[n]);
n++)this._removeOwnerShadyRoot(t);e._ownerShadyRoot=void 0},_firstComposedNode:f
unction(e){for(var t,i,n=o(e).getDistributedNodes(),s=0,r=n.length;s<r&&(t=n[s])
;s++)if(i=o(t).getDestinationInsertionPoints(),i[i.length-1]===e)return t},query
Selector:function(e){var o=this._query(function(o){return t.matchesSelector.call
(o,e)},this.node,function(e){return Boolean(e)})[0];return o||null},querySelecto
rAll:function(e){return this._query(function(o){return t.matchesSelector.call(o,
e)},this.node)},getDestinationInsertionPoints:function(){return this.node._desti
nationInsertionPoints||[]},getDistributedNodes:function(){return this.node._dist
ributedNodes||[]},_clear:function(){for(;this.childNodes.length;)this.removeChil
d(this.childNodes[0])},setAttribute:function(e,t){this.node.setAttribute(e,t),th
is._maybeDistributeParent()},removeAttribute:function(e){this.node.removeAttribu
te(e),this._maybeDistributeParent()},_maybeDistributeParent:function(){if(this._
nodeNeedsDistribution(this.parentNode))return this._lazyDistribute(this.parentNo
de),!0},cloneNode:function(e){var t=r.call(this.node,!1);if(e)for(var i,n=this.c
hildNodes,s=o(t),d=0;d<n.length;d++)i=o(n[d]).cloneNode(!0),s.appendChild(i);ret
urn t},importNode:function(e,t){var n=this.node instanceof Document?this.node:th
is.node.ownerDocument,s=d.call(n,e,!1);if(t)for(var r,a=i.Logical.getChildNodes(
e),l=o(s),h=0;h<a.length;h++)r=o(n).importNode(a[h],!0),l.appendChild(r);return
s},_getComposedInnerHTML:function(){return n(this.node,!0)}}),Object.definePrope
rties(t.prototype,{activeElement:{get:function(){var e=document.activeElement;if
(!e)return null;var t=!!this.node._isShadyRoot;if(this.node!==document){if(!t)re
turn null;if(this.node.host===e||!this.node.host.contains(e))return null}for(var
i=o(e).getOwnerRoot();i&&i!==this.node;)e=i.host,i=o(e).getOwnerRoot();return t
his.node===document?i?null:e:i===this.node?e:null},configurable:!0},childNodes:{
get:function(){var e=i.Logical.getChildNodes(this.node);return Array.isArray(e)?
e:i.arrayCopyChildNodes(this.node)},configurable:!0},children:{get:function(){re
turn i.Logical.hasChildNodes(this.node)?Array.prototype.filter.call(this.childNo
des,function(e){return e.nodeType===Node.ELEMENT_NODE}):i.arrayCopyChildren(this
.node)},configurable:!0},parentNode:{get:function(){return i.Logical.getParentNo
de(this.node)},configurable:!0},firstChild:{get:function(){return i.Logical.getF
irstChild(this.node)},configurable:!0},lastChild:{get:function(){return i.Logica
l.getLastChild(this.node)},configurable:!0},nextSibling:{get:function(){return i
.Logical.getNextSibling(this.node)},configurable:!0},previousSibling:{get:functi
on(){return i.Logical.getPreviousSibling(this.node)},configurable:!0},firstEleme
ntChild:{get:function(){return i.Logical.getFirstElementChild(this.node)},config
urable:!0},lastElementChild:{get:function(){return i.Logical.getLastElementChild
(this.node)},configurable:!0},nextElementSibling:{get:function(){return i.Logica
l.getNextElementSibling(this.node)},configurable:!0},previousElementSibling:{get
:function(){return i.Logical.getPreviousElementSibling(this.node)},configurable:
!0},textContent:{get:function(){var e=this.node.nodeType;if(e===Node.TEXT_NODE||
e===Node.COMMENT_NODE)return this.node.textContent;for(var t,o=[],i=0,n=this.chi
ldNodes;t=n[i];i++)t.nodeType!==Node.COMMENT_NODE&&o.push(t.textContent);return
o.join("")},set:function(e){var t=this.node.nodeType;t===Node.TEXT_NODE||t===Nod
e.COMMENT_NODE?this.node.textContent=e:(this._clear(),e&&this.appendChild(docume
nt.createTextNode(e)))},configurable:!0},innerHTML:{get:function(){var e=this.no
de.nodeType;return e===Node.TEXT_NODE||e===Node.COMMENT_NODE?null:n(this.node)},
set:function(e){var t=this.node.nodeType;if(t!==Node.TEXT_NODE||t!==Node.COMMENT
_NODE){this._clear();var o=document.createElement("div");o.innerHTML=e;for(var n
=i.arrayCopyChildNodes(o),s=0;s<n.length;s++)this.appendChild(n[s])}},configurab
le:!0}}),t.hasInsertionPoint=function(e){return Boolean(e&&e._insertionPoints.le
ngth)}}}(),function(){"use strict";var e=Polymer.Settings,t=Polymer.TreeApi,o=Po
lymer.DomApi;if(e.useShadow){Polymer.Base.extend(o.prototype,{querySelectorAll:f
unction(e){return t.arrayCopy(this.node.querySelectorAll(e))},getOwnerRoot:funct
ion(){for(var e=this.node;e;){if(e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&e.hos
t)return e;e=e.parentNode}},importNode:function(e,t){var o=this.node instanceof
Document?this.node:this.node.ownerDocument;return o.importNode(e,t)},getDestinat
ionInsertionPoints:function(){var e=this.node.getDestinationInsertionPoints&&thi
s.node.getDestinationInsertionPoints();return e?t.arrayCopy(e):[]},getDistribute
dNodes:function(){var e=this.node.getDistributedNodes&&this.node.getDistributedN
odes();return e?t.arrayCopy(e):[]}}),Object.defineProperties(o.prototype,{active
Element:{get:function(){var e=o.wrap(this.node),t=e.activeElement;return e.conta
ins(t)?t:null},configurable:!0},childNodes:{get:function(){return t.arrayCopyChi
ldNodes(this.node)},configurable:!0},children:{get:function(){return t.arrayCopy
Children(this.node)},configurable:!0},textContent:{get:function(){return this.no
de.textContent},set:function(e){return this.node.textContent=e},configurable:!0}
,innerHTML:{get:function(){return this.node.innerHTML},set:function(e){return th
is.node.innerHTML=e},configurable:!0}});var i=function(e){for(var t=0;t<e.length
;t++)n(e[t])},n=function(e){o.prototype[e]=function(){return this.node[e].apply(
this.node,arguments)}};i(["cloneNode","appendChild","insertBefore","removeChild"
,"replaceChild","setAttribute","removeAttribute","querySelector"]);var s=functio
n(e){for(var t=0;t<e.length;t++)r(e[t])},r=function(e){Object.defineProperty(o.p
rototype,e,{get:function(){return this.node[e]},configurable:!0})};s(["parentNod
e","firstChild","lastChild","nextSibling","previousSibling","firstElementChild",
"lastElementChild","nextElementSibling","previousElementSibling"])}}(),Polymer.B
ase.extend(Polymer.dom,{_flushGuard:0,_FLUSH_MAX:100,_needsTakeRecords:!Polymer.
Settings.useNativeCustomElements,_debouncers:[],_staticFlushList:[],_finishDebou
ncer:null,flush:function(){for(this._flushGuard=0,this._prepareFlush();this._deb
ouncers.length&&this._flushGuard<this._FLUSH_MAX;){for(;this._debouncers.length;
)this._debouncers.shift().complete();this._finishDebouncer&&this._finishDebounce
r.complete(),this._prepareFlush(),this._flushGuard++}this._flushGuard>=this._FLU
SH_MAX&&console.warn("Polymer.dom.flush aborted. Flush may not be complete.")},_
prepareFlush:function(){this._needsTakeRecords&&CustomElements.takeRecords();for
(var e=0;e<this._staticFlushList.length;e++)this._staticFlushList[e]()},addStati
cFlush:function(e){this._staticFlushList.push(e)},removeStaticFlush:function(e){
var t=this._staticFlushList.indexOf(e);t>=0&&this._staticFlushList.splice(t,1)},
addDebouncer:function(e){this._debouncers.push(e),this._finishDebouncer=Polymer.
Debounce(this._finishDebouncer,this._finishFlush)},_finishFlush:function(){Polym
er.dom._debouncers=[]}}),Polymer.EventApi=function(){"use strict";var e=Polymer.
DomApi.ctor,t=Polymer.Settings;e.Event=function(e){this.event=e},t.useShadow?e.E
vent.prototype={get rootTarget(){return this.event.path[0]},get localTarget(){re
turn this.event.target},get path(){var e=this.event.path;return Array.isArray(e)
||(e=Array.prototype.slice.call(e)),e}}:e.Event.prototype={get rootTarget(){retu
rn this.event.target},get localTarget(){for(var e=this.event.currentTarget,t=e&&
Polymer.dom(e).getOwnerRoot(),o=this.path,i=0;i<o.length;i++)if(Polymer.dom(o[i]
).getOwnerRoot()===t)return o[i]},get path(){if(!this.event._path){for(var e=[],
t=this.rootTarget;t;){e.push(t);var o=Polymer.dom(t).getDestinationInsertionPoin
ts();if(o.length){for(var i=0;i<o.length-1;i++)e.push(o[i]);t=o[o.length-1]}else
t=Polymer.dom(t).parentNode||t.host}e.push(window),this.event._path=e}return th
is.event._path}};var o=function(t){return t.__eventApi||(t.__eventApi=new e.Even
t(t)),t.__eventApi};return{factory:o}}(),function(){"use strict";var e=Polymer.D
omApi.ctor,t=Polymer.Settings.useShadow;Object.defineProperty(e.prototype,"class
List",{get:function(){return this._classList||(this._classList=new e.ClassList(t
his)),this._classList},configurable:!0}),e.ClassList=function(e){this.domApi=e,t
his.node=e.node},e.ClassList.prototype={add:function(){this.node.classList.add.a
pply(this.node.classList,arguments),this._distributeParent()},remove:function(){
this.node.classList.remove.apply(this.node.classList,arguments),this._distribute
Parent()},toggle:function(){this.node.classList.toggle.apply(this.node.classList
,arguments),this._distributeParent()},_distributeParent:function(){t||this.domAp
i._maybeDistributeParent()},contains:function(){return this.node.classList.conta
ins.apply(this.node.classList,arguments)}}}(),function(){"use strict";var e=Poly
mer.DomApi.ctor,t=Polymer.Settings;if(e.EffectiveNodesObserver=function(e){this.
domApi=e,this.node=this.domApi.node,this._listeners=[]},e.EffectiveNodesObserver
.prototype={addListener:function(e){this._isSetup||(this._setup(),this._isSetup=
!0);var t={fn:e,_nodes:[]};return this._listeners.push(t),this._scheduleNotify()
,t},removeListener:function(e){var t=this._listeners.indexOf(e);t>=0&&(this._lis
teners.splice(t,1),e._nodes=[]),this._hasListeners()||(this._cleanup(),this._isS
etup=!1)},_setup:function(){this._observeContentElements(this.domApi.childNodes)
},_cleanup:function(){this._unobserveContentElements(this.domApi.childNodes)},_h
asListeners:function(){return Boolean(this._listeners.length)},_scheduleNotify:f
unction(){this._debouncer&&this._debouncer.stop(),this._debouncer=Polymer.Deboun
ce(this._debouncer,this._notify),this._debouncer.context=this,Polymer.dom.addDeb
ouncer(this._debouncer)},notify:function(){this._hasListeners()&&this._scheduleN
otify()},_notify:function(){this._beforeCallListeners(),this._callListeners()},_
beforeCallListeners:function(){this._updateContentElements()},_updateContentElem
ents:function(){this._observeContentElements(this.domApi.childNodes)},_observeCo
ntentElements:function(e){for(var t,o=0;o<e.length&&(t=e[o]);o++)this._isContent
(t)&&(t.__observeNodesMap=t.__observeNodesMap||new WeakMap,t.__observeNodesMap.h
as(this)||t.__observeNodesMap.set(this,this._observeContent(t)))},_observeConten
t:function(e){var t=this,o=Polymer.dom(e).observeNodes(function(){t._scheduleNot
ify()});return o._avoidChangeCalculation=!0,o},_unobserveContentElements:functio
n(e){for(var t,o,i=0;i<e.length&&(t=e[i]);i++)this._isContent(t)&&(o=t.__observe
NodesMap.get(this),o&&(Polymer.dom(t).unobserveNodes(o),t.__observeNodesMap.dele
te(this)))},_isContent:function(e){return"content"===e.localName},_callListeners
:function(){for(var e,t=this._listeners,o=this._getEffectiveNodes(),i=0;i<t.leng
th&&(e=t[i]);i++){var n=this._generateListenerInfo(e,o);(n||e._alwaysNotify)&&th
is._callListener(e,n)}},_getEffectiveNodes:function(){return this.domApi.getEffe
ctiveChildNodes()},_generateListenerInfo:function(e,t){if(e._avoidChangeCalculat
ion)return!0;for(var o,i=e._nodes,n={target:this.node,addedNodes:[],removedNodes
:[]},s=Polymer.ArraySplice.calculateSplices(t,i),r=0;r<s.length&&(o=s[r]);r++)fo
r(var d,a=0;a<o.removed.length&&(d=o.removed[a]);a++)n.removedNodes.push(d);for(
r=0,o;r<s.length&&(o=s[r]);r++)for(a=o.index;a<o.index+o.addedCount;a++)n.addedN
odes.push(t[a]);return e._nodes=t,n.addedNodes.length||n.removedNodes.length?n:v
oid 0},_callListener:function(e,t){return e.fn.call(this.node,t)},enableShadowAt
tributeTracking:function(){}},t.useShadow){var o=e.EffectiveNodesObserver.protot
ype._setup,i=e.EffectiveNodesObserver.prototype._cleanup;Polymer.Base.extend(e.E
ffectiveNodesObserver.prototype,{_setup:function(){if(!this._observer){var e=thi
s;this._mutationHandler=function(t){t&&t.length&&e._scheduleNotify()},this._obse
rver=new MutationObserver(this._mutationHandler),this._boundFlush=function(){e._
flush()},Polymer.dom.addStaticFlush(this._boundFlush),this._observer.observe(thi
s.node,{childList:!0})}o.call(this)},_cleanup:function(){this._observer.disconne
ct(),this._observer=null,this._mutationHandler=null,Polymer.dom.removeStaticFlus
h(this._boundFlush),i.call(this)},_flush:function(){this._observer&&this._mutati
onHandler(this._observer.takeRecords())},enableShadowAttributeTracking:function(
){if(this._observer){this._makeContentListenersAlwaysNotify(),this._observer.dis
connect(),this._observer.observe(this.node,{childList:!0,attributes:!0,subtree:!
0});var e=this.domApi.getOwnerRoot(),t=e&&e.host;t&&Polymer.dom(t).observer&&Pol
ymer.dom(t).observer.enableShadowAttributeTracking()}},_makeContentListenersAlwa
ysNotify:function(){for(var e,t=0;t<this._listeners.length;t++)e=this._listeners
[t],e._alwaysNotify=e._isContentListener}})}}(),function(){"use strict";var e=Po
lymer.DomApi.ctor,t=Polymer.Settings;e.DistributedNodesObserver=function(t){e.Ef
fectiveNodesObserver.call(this,t)},e.DistributedNodesObserver.prototype=Object.c
reate(e.EffectiveNodesObserver.prototype),Polymer.Base.extend(e.DistributedNodes
Observer.prototype,{_setup:function(){},_cleanup:function(){},_beforeCallListene
rs:function(){},_getEffectiveNodes:function(){return this.domApi.getDistributedN
odes()}}),t.useShadow&&Polymer.Base.extend(e.DistributedNodesObserver.prototype,
{_setup:function(){if(!this._observer){var e=this.domApi.getOwnerRoot(),t=e&&e.h
ost;if(t){var o=this;this._observer=Polymer.dom(t).observeNodes(function(){o._sc
heduleNotify()}),this._observer._isContentListener=!0,this._hasAttrSelect()&&Pol
ymer.dom(t).observer.enableShadowAttributeTracking()}}},_hasAttrSelect:function(
){var e=this.node.getAttribute("select");return e&&e.match(/[[.]+/)},_cleanup:fu
nction(){var e=this.domApi.getOwnerRoot(),t=e&&e.host;t&&Polymer.dom(t).unobserv
eNodes(this._observer),this._observer=null}})}(),function(){function e(e,t){t._d
istributedNodes.push(e);var o=e._destinationInsertionPoints;o?o.push(t):e._desti
nationInsertionPoints=[t]}function t(e){var t=e._distributedNodes;if(t)for(var o
=0;o<t.length;o++){var i=t[o]._destinationInsertionPoints;i&&i.splice(i.indexOf(
e)+1,i.length)}}function o(e,t){var o=u.Logical.getParentNode(e);o&&o.shadyRoot&
&h.hasInsertionPoint(o.shadyRoot)&&o.shadyRoot._distributionClean&&(o.shadyRoot.
_distributionClean=!1,t.shadyRoot._dirtyRoots.push(o))}function i(e,t){var o=t._
destinationInsertionPoints;return o&&o[o.length-1]===e}function n(e){return"cont
ent"==e.localName}function s(e){for(;e&&r(e);)e=e.domHost;return e}function r(e)
{for(var t,o=u.Logical.getChildNodes(e),i=0;i<o.length;i++)if(t=o[i],t.localName
&&"content"===t.localName)return e.domHost}function d(e){for(var t,o=0;o<e._inse
rtionPoints.length;o++)t=e._insertionPoints[o],h.hasApi(t)&&Polymer.dom(t).notif
yObserver()}function a(e){h.hasApi(e)&&Polymer.dom(e).notifyObserver()}function
l(e){if(c&&e)for(var t=0;t<e.length;t++)CustomElements.upgrade(e[t])}var h=Polym
er.DomApi,u=Polymer.TreeApi;Polymer.Base._addFeature({_prepShady:function(){this
._useContent=this._useContent||Boolean(this._template)},_setupShady:function(){t
his.shadyRoot=null,this.__domApi||(this.__domApi=null),this.__dom||(this.__dom=n
ull),this._ownerShadyRoot||(this._ownerShadyRoot=void 0)},_poolContent:function(
){this._useContent&&u.Logical.saveChildNodes(this)},_setupRoot:function(){this._
useContent&&(this._createLocalRoot(),this.dataHost||l(u.Logical.getChildNodes(th
is)))},_createLocalRoot:function(){this.shadyRoot=this.root,this.shadyRoot._dist
ributionClean=!1,this.shadyRoot._hasDistributed=!1,this.shadyRoot._isShadyRoot=!
0,this.shadyRoot._dirtyRoots=[];var e=this.shadyRoot._insertionPoints=!this._not
es||this._notes._hasContent?this.shadyRoot.querySelectorAll("content"):[];u.Logi
cal.saveChildNodes(this.shadyRoot);for(var t,o=0;o<e.length;o++)t=e[o],u.Logical
.saveChildNodes(t),u.Logical.saveChildNodes(t.parentNode);this.shadyRoot.host=th
is},get domHost(){var e=Polymer.dom(this).getOwnerRoot();return e&&e.host},distr
ibuteContent:function(e){if(this.shadyRoot){this.shadyRoot._invalidInsertionPoin
ts=this.shadyRoot._invalidInsertionPoints||e;var t=s(this);Polymer.dom(this)._la
zyDistribute(t)}},_distributeContent:function(){this._useContent&&!this.shadyRoo
t._distributionClean&&(this.shadyRoot._invalidInsertionPoints&&(Polymer.dom(this
)._updateInsertionPoints(this),this.shadyRoot._invalidInsertionPoints=!1),this._
beginDistribute(),this._distributeDirtyRoots(),this._finishDistribute())},_begin
Distribute:function(){this._useContent&&h.hasInsertionPoint(this.shadyRoot)&&(th
is._resetDistribution(),this._distributePool(this.shadyRoot,this._collectPool())
); | 1 <!DOCTYPE html><html><head><meta charset="UTF-8"> </head><body><div hidden="" by
-vulcanize=""><script>!function(){function e(){document.body.removeAttribute("un
resolved")}window.WebComponents?addEventListener("WebComponentsReady",e):"intera
ctive"===document.readyState||"complete"===document.readyState?e():addEventListe
ner("DOMContentLoaded",e)}(),window.Polymer={Settings:function(){var e=window.Po
lymer||{};if(!e.noUrlSettings)for(var t,r=location.search.slice(1).split("&"),i=
0;i<r.length&&(t=r[i]);i++)t=t.split("="),t[0]&&(e[t[0]]=t[1]||!0);return e.want
Shadow="shadow"===e.dom,e.hasShadow=Boolean(Element.prototype.createShadowRoot),
e.nativeShadow=e.hasShadow&&!window.ShadowDOMPolyfill,e.useShadow=e.wantShadow&&
e.hasShadow,e.hasNativeImports=Boolean("import"in document.createElement("link")
),e.useNativeImports=e.hasNativeImports,e.useNativeCustomElements=!window.Custom
Elements||window.CustomElements.useNative,e.useNativeShadow=e.useShadow&&e.nativ
eShadow,e.usePolyfillProto=!e.useNativeCustomElements&&!Object.__proto__,e.hasNa
tiveCSSProperties=!navigator.userAgent.match("AppleWebKit/601")&&window.CSS&&CSS
.supports&&CSS.supports("box-shadow","0 0 0 var(--foo)"),e.useNativeCSSPropertie
s=e.hasNativeCSSProperties&&e.lazyRegister&&e.useNativeCSSProperties,e}()},funct
ion(){var e=window.Polymer;window.Polymer=function(e){"function"==typeof e&&(e=e
.prototype),e||(e={});var r=t(e);e=r.prototype;var i={prototype:e};return e.exte
nds&&(i.extends=e.extends),Polymer.telemetry._registrate(e),document.registerEle
ment(e.is,i),r};var t=function(e){var t=Polymer.Base;return e.extends&&(t=Polyme
r.Base._getExtendedPrototype(e.extends)),e=Polymer.Base.chainObject(e,t),e.regis
terCallback(),e.constructor};if(e)for(var r in e)Polymer[r]=e[r];Polymer.Class=t
}(),Polymer.telemetry={registrations:[],_regLog:function(e){console.log("["+e.is
+"]: registered")},_registrate:function(e){this.registrations.push(e),Polymer.lo
g&&this._regLog(e)},dumpRegistrations:function(){this.registrations.forEach(this
._regLog)}},Object.defineProperty(window,"currentImport",{enumerable:!0,configur
able:!0,get:function(){return(document._currentScript||document.currentScript).o
wnerDocument}}),Polymer.RenderStatus={_ready:!1,_callbacks:[],whenReady:function
(e){this._ready?e():this._callbacks.push(e)},_makeReady:function(){this._ready=!
0;for(var e=0;e<this._callbacks.length;e++)this._callbacks[e]();this._callbacks=
[]},_catchFirstRender:function(){requestAnimationFrame(function(){Polymer.Render
Status._makeReady()})},_afterNextRenderQueue:[],_waitingNextRender:!1,afterNextR
ender:function(e,t,r){this._watchNextRender(),this._afterNextRenderQueue.push([e
,t,r])},hasRendered:function(){return this._ready},_watchNextRender:function(){i
f(!this._waitingNextRender){this._waitingNextRender=!0;var e=function(){Polymer.
RenderStatus._flushNextRender()};this._ready?requestAnimationFrame(e):this.whenR
eady(e)}},_flushNextRender:function(){var e=this;setTimeout(function(){e._flushR
enderCallbacks(e._afterNextRenderQueue),e._afterNextRenderQueue=[],e._waitingNex
tRender=!1})},_flushRenderCallbacks:function(e){for(var t,r=0;r<e.length;r++)t=e
[r],t[1].apply(t[0],t[2]||Polymer.nar)}},window.HTMLImports?HTMLImports.whenRead
y(function(){Polymer.RenderStatus._catchFirstRender()}):Polymer.RenderStatus._ca
tchFirstRender(),Polymer.ImportStatus=Polymer.RenderStatus,Polymer.ImportStatus.
whenLoaded=Polymer.ImportStatus.whenReady,function(){"use strict";var e=Polymer.
Settings;Polymer.Base={__isPolymerInstance__:!0,_addFeature:function(e){this.ext
end(this,e)},registerCallback:function(){"max"===e.lazyRegister?this.beforeRegis
ter&&this.beforeRegister():(this._desugarBehaviors(),this._doBehavior("beforeReg
ister")),this._registerFeatures(),e.lazyRegister||this.ensureRegisterFinished()}
,createdCallback:function(){this.__hasRegisterFinished||this._ensureRegisterFini
shed(this.__proto__),Polymer.telemetry.instanceCount++,this.root=this,this._doBe
havior("created"),this._initFeatures()},ensureRegisterFinished:function(){this._
ensureRegisterFinished(this)},_ensureRegisterFinished:function(t){t.__hasRegiste
rFinished===t.is&&t.is||("max"===e.lazyRegister&&(t._desugarBehaviors(),t._doBeh
aviorOnly("beforeRegister")),t.__hasRegisterFinished=t.is,t._finishRegisterFeatu
res&&t._finishRegisterFeatures(),t._doBehavior("registered"),e.usePolyfillProto&
&t!==this&&t.extend(this,t))},attachedCallback:function(){var e=this;Polymer.Ren
derStatus.whenReady(function(){e.isAttached=!0,e._doBehavior("attached")})},deta
chedCallback:function(){var e=this;Polymer.RenderStatus.whenReady(function(){e.i
sAttached=!1,e._doBehavior("detached")})},attributeChangedCallback:function(e,t,
r){this._attributeChangedImpl(e),this._doBehavior("attributeChanged",[e,t,r])},_
attributeChangedImpl:function(e){this._setAttributeToProperty(this,e)},extend:fu
nction(e,t){if(e&&t)for(var r,i=Object.getOwnPropertyNames(t),o=0;o<i.length&&(r
=i[o]);o++)this.copyOwnProperty(r,t,e);return e||t},mixin:function(e,t){for(var
r in t)e[r]=t[r];return e},copyOwnProperty:function(e,t,r){var i=Object.getOwnPr
opertyDescriptor(t,e);i&&Object.defineProperty(r,e,i)},_logger:function(e,t){swi
tch(1===t.length&&Array.isArray(t[0])&&(t=t[0]),e){case"log":case"warn":case"err
or":console[e].apply(console,t)}},_log:function(){var e=Array.prototype.slice.ca
ll(arguments,0);this._logger("log",e)},_warn:function(){var e=Array.prototype.sl
ice.call(arguments,0);this._logger("warn",e)},_error:function(){var e=Array.prot
otype.slice.call(arguments,0);this._logger("error",e)},_logf:function(){return t
his._logPrefix.concat(this.is).concat(Array.prototype.slice.call(arguments,0))}}
,Polymer.Base._logPrefix=function(){var e=window.chrome&&!/edge/i.test(navigator
.userAgent)||/firefox/i.test(navigator.userAgent);return e?["%c[%s::%s]:","font-
weight: bold; background-color:#EEEE00;"]:["[%s::%s]:"]}(),Polymer.Base.chainObj
ect=function(e,t){return e&&t&&e!==t&&(Object.__proto__||(e=Polymer.Base.extend(
Object.create(t),e)),e.__proto__=t),e},Polymer.Base=Polymer.Base.chainObject(Pol
ymer.Base,HTMLElement.prototype),window.CustomElements?Polymer.instanceof=Custom
Elements.instanceof:Polymer.instanceof=function(e,t){return e instanceof t},Poly
mer.isInstance=function(e){return Boolean(e&&e.__isPolymerInstance__)},Polymer.t
elemetry.instanceCount=0}(),function(){function e(){if(s)for(var e,t=document._c
urrentScript||document.currentScript,r=t&&t.ownerDocument||document,i=r.querySel
ectorAll("dom-module"),o=i.length-1;o>=0&&(e=i[o]);o--){if(e.__upgraded__)return
;CustomElements.upgrade(e)}}var t={},r={},i=function(e){return t[e]||r[e.toLower
Case()]},o=function(){return document.createElement("dom-module")};o.prototype=O
bject.create(HTMLElement.prototype),Polymer.Base.extend(o.prototype,{constructor
:o,createdCallback:function(){this.register()},register:function(e){e=e||this.id
||this.getAttribute("name")||this.getAttribute("is"),e&&(this.id=e,t[e]=this,r[e
.toLowerCase()]=this)},import:function(t,r){if(t){var o=i(t);return o||(e(),o=i(
t)),o&&r&&(o=o.querySelector(r)),o}}});var s=window.CustomElements&&!CustomEleme
nts.useNative;document.registerElement("dom-module",o)}(),Polymer.Base._addFeatu
re({_prepIs:function(){if(!this.is){var e=(document._currentScript||document.cur
rentScript).parentNode;if("dom-module"===e.localName){var t=e.id||e.getAttribute
("name")||e.getAttribute("is");this.is=t}}this.is&&(this.is=this.is.toLowerCase(
))}}),Polymer.Base._addFeature({behaviors:[],_desugarBehaviors:function(){this.b
ehaviors.length&&(this.behaviors=this._desugarSomeBehaviors(this.behaviors))},_d
esugarSomeBehaviors:function(e){var t=[];e=this._flattenBehaviorsList(e);for(var
r=e.length-1;r>=0;r--){var i=e[r];t.indexOf(i)===-1&&(this._mixinBehavior(i),t.
unshift(i))}return t},_flattenBehaviorsList:function(e){for(var t=[],r=0;r<e.len
gth;r++){var i=e[r];i instanceof Array?t=t.concat(this._flattenBehaviorsList(i))
:i?t.push(i):this._warn(this._logf("_flattenBehaviorsList","behavior is null, ch
eck for missing or 404 import"))}return t},_mixinBehavior:function(e){for(var t,
r=Object.getOwnPropertyNames(e),i=0;i<r.length&&(t=r[i]);i++)Polymer.Base._behav
iorProperties[t]||this.hasOwnProperty(t)||this.copyOwnProperty(t,e,this)},_prepB
ehaviors:function(){this._prepFlattenedBehaviors(this.behaviors)},_prepFlattened
Behaviors:function(e){for(var t=0,r=e.length;t<r;t++)this._prepBehavior(e[t]);th
is._prepBehavior(this)},_doBehavior:function(e,t){for(var r=0;r<this.behaviors.l
ength;r++)this._invokeBehavior(this.behaviors[r],e,t);this._invokeBehavior(this,
e,t)},_doBehaviorOnly:function(e,t){for(var r=0;r<this.behaviors.length;r++)this
._invokeBehavior(this.behaviors[r],e,t)},_invokeBehavior:function(e,t,r){var i=e
[t];i&&i.apply(this,r||Polymer.nar)},_marshalBehaviors:function(){for(var e=0;e<
this.behaviors.length;e++)this._marshalBehavior(this.behaviors[e]);this._marshal
Behavior(this)}}),Polymer.Base._behaviorProperties={hostAttributes:!0,beforeRegi
ster:!0,registered:!0,properties:!0,observers:!0,listeners:!0,created:!0,attache
d:!0,detached:!0,attributeChanged:!0,ready:!0},Polymer.Base._addFeature({_getExt
endedPrototype:function(e){return this._getExtendedNativePrototype(e)},_nativePr
ototypes:{},_getExtendedNativePrototype:function(e){var t=this._nativePrototypes
[e];if(!t){var r=this.getNativePrototype(e);t=this.extend(Object.create(r),Polym
er.Base),this._nativePrototypes[e]=t}return t},getNativePrototype:function(e){re
turn Object.getPrototypeOf(document.createElement(e))}}),Polymer.Base._addFeatur
e({_prepConstructor:function(){this._factoryArgs=this.extends?[this.extends,this
.is]:[this.is];var e=function(){return this._factory(arguments)};this.hasOwnProp
erty("extends")&&(e.extends=this.extends),Object.defineProperty(this,"constructo
r",{value:e,writable:!0,configurable:!0}),e.prototype=this},_factory:function(e)
{var t=document.createElement.apply(document,this._factoryArgs);return this.fact
oryImpl&&this.factoryImpl.apply(t,e),t}}),Polymer.nob=Object.create(null),Polyme
r.Base._addFeature({properties:{},getPropertyInfo:function(e){var t=this._getPro
pertyInfo(e,this.properties);if(!t)for(var r=0;r<this.behaviors.length;r++)if(t=
this._getPropertyInfo(e,this.behaviors[r].properties))return t;return t||Polymer
.nob},_getPropertyInfo:function(e,t){var r=t&&t[e];return"function"==typeof r&&(
r=t[e]={type:r}),r&&(r.defined=!0),r},_prepPropertyInfo:function(){this._propert
yInfo={};for(var e=0;e<this.behaviors.length;e++)this._addPropertyInfo(this._pro
pertyInfo,this.behaviors[e].properties);this._addPropertyInfo(this._propertyInfo
,this.properties),this._addPropertyInfo(this._propertyInfo,this._propertyEffects
)},_addPropertyInfo:function(e,t){if(t){var r,i;for(var o in t)r=e[o],i=t[o],("_
"!==o[0]||i.readOnly)&&(e[o]?(r.type||(r.type=i.type),r.readOnly||(r.readOnly=i.
readOnly)):e[o]={type:"function"==typeof i?i:i.type,readOnly:i.readOnly,attribut
e:Polymer.CaseMap.camelToDashCase(o)})}}}),Polymer.CaseMap={_caseMap:{},_rx:{das
hToCamel:/-[a-z]/g,camelToDash:/([A-Z])/g},dashToCamelCase:function(e){return th
is._caseMap[e]||(this._caseMap[e]=e.indexOf("-")<0?e:e.replace(this._rx.dashToCa
mel,function(e){return e[1].toUpperCase()}))},camelToDashCase:function(e){return
this._caseMap[e]||(this._caseMap[e]=e.replace(this._rx.camelToDash,"-$1").toLow
erCase())}},Polymer.Base._addFeature({_addHostAttributes:function(e){this._aggre
gatedAttributes||(this._aggregatedAttributes={}),e&&this.mixin(this._aggregatedA
ttributes,e)},_marshalHostAttributes:function(){this._aggregatedAttributes&&this
._applyAttributes(this,this._aggregatedAttributes)},_applyAttributes:function(e,
t){for(var r in t)if(!this.hasAttribute(r)&&"class"!==r){var i=t[r];this.seriali
zeValueToAttribute(i,r,this)}},_marshalAttributes:function(){this._takeAttribute
sToModel(this)},_takeAttributesToModel:function(e){if(this.hasAttributes())for(v
ar t in this._propertyInfo){var r=this._propertyInfo[t];this.hasAttribute(r.attr
ibute)&&this._setAttributeToProperty(e,r.attribute,t,r)}},_setAttributeToPropert
y:function(e,t,r,i){if(!this._serializing&&(r=r||Polymer.CaseMap.dashToCamelCase
(t),i=i||this._propertyInfo&&this._propertyInfo[r],i&&!i.readOnly)){var o=this.g
etAttribute(t);e[r]=this.deserialize(o,i.type)}},_serializing:!1,reflectProperty
ToAttribute:function(e,t,r){this._serializing=!0,r=void 0===r?this[e]:r,this.ser
ializeValueToAttribute(r,t||Polymer.CaseMap.camelToDashCase(e)),this._serializin
g=!1},serializeValueToAttribute:function(e,t,r){var i=this.serialize(e);r=r||thi
s,void 0===i?r.removeAttribute(t):r.setAttribute(t,i)},deserialize:function(e,t)
{switch(t){case Number:e=Number(e);break;case Boolean:e=null!=e;break;case Objec
t:try{e=JSON.parse(e)}catch(e){}break;case Array:try{e=JSON.parse(e)}catch(t){e=
null,console.warn("Polymer::Attributes: couldn`t decode Array as JSON")}break;ca
se Date:e=new Date(e);break;case String:}return e},serialize:function(e){switch(
typeof e){case"boolean":return e?"":void 0;case"object":if(e instanceof Date)ret
urn e.toString();if(e)try{return JSON.stringify(e)}catch(e){return""}default:ret
urn null!=e?e:void 0}}}),Polymer.version="1.7.0",Polymer.Base._addFeature({_regi
sterFeatures:function(){this._prepIs(),this._prepBehaviors(),this._prepConstruct
or(),this._prepPropertyInfo()},_prepBehavior:function(e){this._addHostAttributes
(e.hostAttributes)},_marshalBehavior:function(e){},_initFeatures:function(){this
._marshalHostAttributes(),this._marshalBehaviors()}})</script> <script>Polymer.B
ase._addFeature({_prepTemplate:function(){void 0===this._template&&(this._templa
te=Polymer.DomModule.import(this.is,"template")),this._template&&this._template.
hasAttribute("is")&&this._warn(this._logf("_prepTemplate","top-level Polymer tem
plate must not be a type-extension, found",this._template,"Move inside simple <t
emplate>.")),this._template&&!this._template.content&&window.HTMLTemplateElement
&&HTMLTemplateElement.decorate&&HTMLTemplateElement.decorate(this._template)},_s
tampTemplate:function(){this._template&&(this.root=this.instanceTemplate(this._t
emplate))},instanceTemplate:function(e){var t=document.importNode(e._content||e.
content,!0);return t}}),function(){var e=Polymer.Base.attachedCallback;Polymer.B
ase._addFeature({_hostStack:[],ready:function(){},_registerHost:function(e){this
.dataHost=e=e||Polymer.Base._hostStack[Polymer.Base._hostStack.length-1],e&&e._c
lients&&e._clients.push(this),this._clients=null,this._clientsReadied=!1},_begin
Hosting:function(){Polymer.Base._hostStack.push(this),this._clients||(this._clie
nts=[])},_endHosting:function(){Polymer.Base._hostStack.pop()},_tryReady:functio
n(){this._readied=!1,this._canReady()&&this._ready()},_canReady:function(){retur
n!this.dataHost||this.dataHost._clientsReadied},_ready:function(){this._beforeCl
ientsReady(),this._template&&(this._setupRoot(),this._readyClients()),this._clie
ntsReadied=!0,this._clients=null,this._afterClientsReady(),this._readySelf()},_r
eadyClients:function(){this._beginDistribute();var e=this._clients;if(e)for(var
t,o=0,i=e.length;o<i&&(t=e[o]);o++)t._ready();this._finishDistribute()},_readySe
lf:function(){this._doBehavior("ready"),this._readied=!0,this._attachedPending&&
(this._attachedPending=!1,this.attachedCallback())},_beforeClientsReady:function
(){},_afterClientsReady:function(){},_beforeAttached:function(){},attachedCallba
ck:function(){this._readied?(this._beforeAttached(),e.call(this)):this._attached
Pending=!0}})}(),Polymer.ArraySplice=function(){function e(e,t,o){return{index:e
,removed:t,addedCount:o}}function t(){}var o=0,i=1,n=2,s=3;return t.prototype={c
alcEditDistances:function(e,t,o,i,n,s){for(var r=s-n+1,d=o-t+1,a=new Array(r),l=
0;l<r;l++)a[l]=new Array(d),a[l][0]=l;for(var h=0;h<d;h++)a[0][h]=h;for(l=1;l<r;
l++)for(h=1;h<d;h++)if(this.equals(e[t+h-1],i[n+l-1]))a[l][h]=a[l-1][h-1];else{v
ar u=a[l-1][h]+1,c=a[l][h-1]+1;a[l][h]=u<c?u:c}return a},spliceOperationsFromEdi
tDistances:function(e){for(var t=e.length-1,r=e[0].length-1,d=e[t][r],a=[];t>0||
r>0;)if(0!=t)if(0!=r){var l,h=e[t-1][r-1],u=e[t-1][r],c=e[t][r-1];l=u<c?u<h?u:h:
c<h?c:h,l==h?(h==d?a.push(o):(a.push(i),d=h),t--,r--):l==u?(a.push(s),t--,d=u):(
a.push(n),r--,d=c)}else a.push(s),t--;else a.push(n),r--;return a.reverse(),a},c
alcSplices:function(t,r,d,a,l,h){var u=0,c=0,_=Math.min(d-r,h-l);if(0==r&&0==l&&
(u=this.sharedPrefix(t,a,_)),d==t.length&&h==a.length&&(c=this.sharedSuffix(t,a,
_-u)),r+=u,l+=u,d-=c,h-=c,d-r==0&&h-l==0)return[];if(r==d){for(var f=e(r,[],0);l
<h;)f.removed.push(a[l++]);return[f]}if(l==h)return[e(r,[],d-r)];var m=this.spli
ceOperationsFromEditDistances(this.calcEditDistances(t,r,d,a,l,h));f=void 0;for(
var p=[],v=r,g=l,b=0;b<m.length;b++)switch(m[b]){case o:f&&(p.push(f),f=void 0),
v++,g++;break;case i:f||(f=e(v,[],0)),f.addedCount++,v++,f.removed.push(a[g]),g+
+;break;case n:f||(f=e(v,[],0)),f.addedCount++,v++;break;case s:f||(f=e(v,[],0))
,f.removed.push(a[g]),g++}return f&&p.push(f),p},sharedPrefix:function(e,t,o){fo
r(var i=0;i<o;i++)if(!this.equals(e[i],t[i]))return i;return o},sharedSuffix:fun
ction(e,t,o){for(var i=e.length,n=t.length,s=0;s<o&&this.equals(e[--i],t[--n]);)
s++;return s},calculateSplices:function(e,t){return this.calcSplices(e,0,e.lengt
h,t,0,t.length)},equals:function(e,t){return e===t}},new t}(),Polymer.domInnerHT
ML=function(){function e(e){switch(e){case"&":return"&";case"<":return"<"
;case">":return">";case'"':return""";case" ":return" "}}function t(
t){return t.replace(r,e)}function o(t){return t.replace(d,e)}function i(e){for(v
ar t={},o=0;o<e.length;o++)t[e[o]]=!0;return t}function n(e,i,n){switch(e.nodeTy
pe){case Node.ELEMENT_NODE:for(var r,d=e.localName,h="<"+d,u=e.attributes,c=0;r=
u[c];c++)h+=" "+r.name+'="'+t(r.value)+'"';return h+=">",a[d]?h:h+s(e,n)+"</"+d+
">";case Node.TEXT_NODE:var _=e.data;return i&&l[i.localName]?_:o(_);case Node.C
OMMENT_NODE:return"\x3c!--"+e.data+"--\x3e";default:throw console.error(e),new E
rror("not implemented")}}function s(e,t){e instanceof HTMLTemplateElement&&(e=e.
content);for(var o,i="",s=Polymer.dom(e).childNodes,r=0,d=s.length;r<d&&(o=s[r])
;r++)i+=n(o,e,t);return i}var r=/[&\u00A0"]/g,d=/[&\u00A0<>]/g,a=i(["area","base
","br","col","command","embed","hr","img","input","keygen","link","meta","param"
,"source","track","wbr"]),l=i(["style","script","xmp","iframe","noembed","nofram
es","plaintext","noscript"]);return{getInnerHTML:s}}(),function(){"use strict";v
ar e=Element.prototype.insertBefore,t=Element.prototype.appendChild,o=Element.pr
ototype.removeChild;Polymer.TreeApi={arrayCopyChildNodes:function(e){for(var t=[
],o=0,i=e.firstChild;i;i=i.nextSibling)t[o++]=i;return t},arrayCopyChildren:func
tion(e){for(var t=[],o=0,i=e.firstElementChild;i;i=i.nextElementSibling)t[o++]=i
;return t},arrayCopy:function(e){for(var t=e.length,o=new Array(t),i=0;i<t;i++)o
[i]=e[i];return o}},Polymer.TreeApi.Logical={hasParentNode:function(e){return Bo
olean(e.__dom&&e.__dom.parentNode)},hasChildNodes:function(e){return Boolean(e._
_dom&&void 0!==e.__dom.childNodes)},getChildNodes:function(e){return this.hasChi
ldNodes(e)?this._getChildNodes(e):e.childNodes},_getChildNodes:function(e){if(!e
.__dom.childNodes){e.__dom.childNodes=[];for(var t=e.__dom.firstChild;t;t=t.__do
m.nextSibling)e.__dom.childNodes.push(t)}return e.__dom.childNodes},getParentNod
e:function(e){return e.__dom&&void 0!==e.__dom.parentNode?e.__dom.parentNode:e.p
arentNode},getFirstChild:function(e){return e.__dom&&void 0!==e.__dom.firstChild
?e.__dom.firstChild:e.firstChild},getLastChild:function(e){return e.__dom&&void
0!==e.__dom.lastChild?e.__dom.lastChild:e.lastChild},getNextSibling:function(e){
return e.__dom&&void 0!==e.__dom.nextSibling?e.__dom.nextSibling:e.nextSibling},
getPreviousSibling:function(e){return e.__dom&&void 0!==e.__dom.previousSibling?
e.__dom.previousSibling:e.previousSibling},getFirstElementChild:function(e){retu
rn e.__dom&&void 0!==e.__dom.firstChild?this._getFirstElementChild(e):e.firstEle
mentChild},_getFirstElementChild:function(e){for(var t=e.__dom.firstChild;t&&t.n
odeType!==Node.ELEMENT_NODE;)t=t.__dom.nextSibling;return t},getLastElementChild
:function(e){return e.__dom&&void 0!==e.__dom.lastChild?this._getLastElementChil
d(e):e.lastElementChild},_getLastElementChild:function(e){for(var t=e.__dom.last
Child;t&&t.nodeType!==Node.ELEMENT_NODE;)t=t.__dom.previousSibling;return t},get
NextElementSibling:function(e){return e.__dom&&void 0!==e.__dom.nextSibling?this
._getNextElementSibling(e):e.nextElementSibling},_getNextElementSibling:function
(e){for(var t=e.__dom.nextSibling;t&&t.nodeType!==Node.ELEMENT_NODE;)t=t.__dom.n
extSibling;return t},getPreviousElementSibling:function(e){return e.__dom&&void
0!==e.__dom.previousSibling?this._getPreviousElementSibling(e):e.previousElement
Sibling},_getPreviousElementSibling:function(e){for(var t=e.__dom.previousSiblin
g;t&&t.nodeType!==Node.ELEMENT_NODE;)t=t.__dom.previousSibling;return t},saveChi
ldNodes:function(e){if(!this.hasChildNodes(e)){e.__dom=e.__dom||{},e.__dom.first
Child=e.firstChild,e.__dom.lastChild=e.lastChild,e.__dom.childNodes=[];for(var t
=e.firstChild;t;t=t.nextSibling)t.__dom=t.__dom||{},t.__dom.parentNode=e,e.__dom
.childNodes.push(t),t.__dom.nextSibling=t.nextSibling,t.__dom.previousSibling=t.
previousSibling}},recordInsertBefore:function(e,t,o){if(t.__dom.childNodes=null,
e.nodeType===Node.DOCUMENT_FRAGMENT_NODE)for(var i=e.firstChild;i;i=i.nextSiblin
g)this._linkNode(i,t,o);else this._linkNode(e,t,o)},_linkNode:function(e,t,o){e.
__dom=e.__dom||{},t.__dom=t.__dom||{},o&&(o.__dom=o.__dom||{}),e.__dom.previousS
ibling=o?o.__dom.previousSibling:t.__dom.lastChild,e.__dom.previousSibling&&(e._
_dom.previousSibling.__dom.nextSibling=e),e.__dom.nextSibling=o||null,e.__dom.ne
xtSibling&&(e.__dom.nextSibling.__dom.previousSibling=e),e.__dom.parentNode=t,o?
o===t.__dom.firstChild&&(t.__dom.firstChild=e):(t.__dom.lastChild=e,t.__dom.firs
tChild||(t.__dom.firstChild=e)),t.__dom.childNodes=null},recordRemoveChild:funct
ion(e,t){e.__dom=e.__dom||{},t.__dom=t.__dom||{},e===t.__dom.firstChild&&(t.__do
m.firstChild=e.__dom.nextSibling),e===t.__dom.lastChild&&(t.__dom.lastChild=e.__
dom.previousSibling);var o=e.__dom.previousSibling,i=e.__dom.nextSibling;o&&(o._
_dom.nextSibling=i),i&&(i.__dom.previousSibling=o),e.__dom.parentNode=e.__dom.pr
eviousSibling=e.__dom.nextSibling=void 0,t.__dom.childNodes=null}},Polymer.TreeA
pi.Composed={getChildNodes:function(e){return Polymer.TreeApi.arrayCopyChildNode
s(e)},getParentNode:function(e){return e.parentNode},clearChildNodes:function(e)
{e.textContent=""},insertBefore:function(t,o,i){return e.call(t,o,i||null)},appe
ndChild:function(e,o){return t.call(e,o)},removeChild:function(e,t){return o.cal
l(e,t)}}}(),Polymer.DomApi=function(){"use strict";var e=Polymer.Settings,t=Poly
mer.TreeApi,o=function(e){this.node=i?o.wrap(e):e},i=e.hasShadow&&!e.nativeShado
w;o.wrap=window.wrap?window.wrap:function(e){return e},o.prototype={flush:functi
on(){Polymer.dom.flush()},deepContains:function(e){if(this.node.contains(e))retu
rn!0;for(var t=e,o=e.ownerDocument;t&&t!==o&&t!==this.node;)t=Polymer.dom(t).par
entNode||t.host;return t===this.node},queryDistributedElements:function(e){for(v
ar t,i=this.getEffectiveChildNodes(),n=[],s=0,r=i.length;s<r&&(t=i[s]);s++)t.nod
eType===Node.ELEMENT_NODE&&o.matchesSelector.call(t,e)&&n.push(t);return n},getE
ffectiveChildNodes:function(){for(var e,t=[],o=this.childNodes,i=0,r=o.length;i<
r&&(e=o[i]);i++)if(e.localName===n)for(var d=s(e).getDistributedNodes(),a=0;a<d.
length;a++)t.push(d[a]);else t.push(e);return t},observeNodes:function(e){if(e)r
eturn this.observer||(this.observer=this.node.localName===n?new o.DistributedNod
esObserver(this):new o.EffectiveNodesObserver(this)),this.observer.addListener(e
)},unobserveNodes:function(e){this.observer&&this.observer.removeListener(e)},no
tifyObserver:function(){this.observer&&this.observer.notify()},_query:function(e
,o,i){o=o||this.node;var n=[];return this._queryElements(t.Logical.getChildNodes
(o),e,i,n),n},_queryElements:function(e,t,o,i){for(var n,s=0,r=e.length;s<r&&(n=
e[s]);s++)if(n.nodeType===Node.ELEMENT_NODE&&this._queryElement(n,t,o,i))return!
0},_queryElement:function(e,o,i,n){var s=o(e);return s&&n.push(e),i&&i(s)?s:void
this._queryElements(t.Logical.getChildNodes(e),o,i,n)}};var n=o.CONTENT="conten
t",s=o.factory=function(e){return e=e||document,e.__domApi||(e.__domApi=new o.ct
or(e)),e.__domApi};o.hasApi=function(e){return Boolean(e.__domApi)},o.ctor=o,Pol
ymer.dom=function(e,t){return e instanceof Event?Polymer.EventApi.factory(e):o.f
actory(e,t)};var r=Element.prototype;return o.matchesSelector=r.matches||r.match
esSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.web
kitMatchesSelector,o}(),function(){"use strict";var e=Polymer.Settings,t=Polymer
.DomApi,o=t.factory,i=Polymer.TreeApi,n=Polymer.domInnerHTML.getInnerHTML,s=t.CO
NTENT;if(!e.useShadow){var r=Element.prototype.cloneNode,d=Document.prototype.im
portNode;Polymer.Base.extend(t.prototype,{_lazyDistribute:function(e){e.shadyRoo
t&&e.shadyRoot._distributionClean&&(e.shadyRoot._distributionClean=!1,Polymer.do
m.addDebouncer(e.debounce("_distribute",e._distributeContent)))},appendChild:fun
ction(e){return this.insertBefore(e)},insertBefore:function(e,n){if(n&&i.Logical
.getParentNode(n)!==this.node)throw Error("The ref_node to be inserted before is
not a child of this node");if(e.nodeType!==Node.DOCUMENT_FRAGMENT_NODE){var r=i
.Logical.getParentNode(e);r?(t.hasApi(r)&&o(r).notifyObserver(),this._removeNode
(e)):this._removeOwnerShadyRoot(e)}if(!this._addNode(e,n)){n&&(n=n.localName===s
?this._firstComposedNode(n):n);var d=this.node._isShadyRoot?this.node.host:this.
node;n?i.Composed.insertBefore(d,e,n):i.Composed.appendChild(d,e)}return this.no
tifyObserver(),e},_addNode:function(e,t){var o=this.getOwnerRoot();if(o){var n=t
his._maybeAddInsertionPoint(e,this.node);o._invalidInsertionPoints||(o._invalidI
nsertionPoints=n),this._addNodeToHost(o.host,e)}i.Logical.hasChildNodes(this.nod
e)&&i.Logical.recordInsertBefore(e,this.node,t);var s=this._maybeDistribute(e)||
this.node.shadyRoot;if(s)if(e.nodeType===Node.DOCUMENT_FRAGMENT_NODE)for(;e.firs
tChild;)i.Composed.removeChild(e,e.firstChild);else{var r=i.Composed.getParentNo
de(e);r&&i.Composed.removeChild(r,e)}return s},removeChild:function(e){if(i.Logi
cal.getParentNode(e)!==this.node)throw Error("The node to be removed is not a ch
ild of this node: "+e);if(!this._removeNode(e)){var t=this.node._isShadyRoot?thi
s.node.host:this.node,o=i.Composed.getParentNode(e);t===o&&i.Composed.removeChil
d(t,e)}return this.notifyObserver(),e},_removeNode:function(e){var t,n=i.Logical
.hasParentNode(e)&&i.Logical.getParentNode(e),s=this._ownerShadyRootForNode(e);r
eturn n&&(t=o(e)._maybeDistributeParent(),i.Logical.recordRemoveChild(e,n),s&&th
is._removeDistributedChildren(s,e)&&(s._invalidInsertionPoints=!0,this._lazyDist
ribute(s.host))),this._removeOwnerShadyRoot(e),s&&this._removeNodeFromHost(s.hos
t,e),t},replaceChild:function(e,t){return this.insertBefore(e,t),this.removeChil
d(t),e},_hasCachedOwnerRoot:function(e){return Boolean(void 0!==e._ownerShadyRoo
t)},getOwnerRoot:function(){return this._ownerShadyRootForNode(this.node)},_owne
rShadyRootForNode:function(e){if(e){var t=e._ownerShadyRoot;if(void 0===t){if(e.
_isShadyRoot)t=e;else{var o=i.Logical.getParentNode(e);t=o?o._isShadyRoot?o:this
._ownerShadyRootForNode(o):null}(t||document.documentElement.contains(e))&&(e._o
wnerShadyRoot=t)}return t}},_maybeDistribute:function(e){var t=e.nodeType===Node
.DOCUMENT_FRAGMENT_NODE&&!e.__noContent&&o(e).querySelector(s),n=t&&i.Logical.ge
tParentNode(t).nodeType!==Node.DOCUMENT_FRAGMENT_NODE,r=t||e.localName===s;if(r)
{var d=this.getOwnerRoot();d&&this._lazyDistribute(d.host)}var a=this._nodeNeeds
Distribution(this.node);return a&&this._lazyDistribute(this.node),a||r&&!n},_may
beAddInsertionPoint:function(e,t){var n;if(e.nodeType!==Node.DOCUMENT_FRAGMENT_N
ODE||e.__noContent)e.localName===s&&(i.Logical.saveChildNodes(t),i.Logical.saveC
hildNodes(e),n=!0);else for(var r,d,a,l=o(e).querySelectorAll(s),h=0;h<l.length&
&(r=l[h]);h++)d=i.Logical.getParentNode(r),d===e&&(d=t),a=this._maybeAddInsertio
nPoint(r,d),n=n||a;return n},_updateInsertionPoints:function(e){for(var t,n=e.sh
adyRoot._insertionPoints=o(e.shadyRoot).querySelectorAll(s),r=0;r<n.length;r++)t
=n[r],i.Logical.saveChildNodes(t),i.Logical.saveChildNodes(i.Logical.getParentNo
de(t))},_nodeNeedsDistribution:function(e){return e&&e.shadyRoot&&t.hasInsertion
Point(e.shadyRoot)},_addNodeToHost:function(e,t){e._elementAdd&&e._elementAdd(t)
},_removeNodeFromHost:function(e,t){e._elementRemove&&e._elementRemove(t)},_remo
veDistributedChildren:function(e,t){for(var n,s=e._insertionPoints,r=0;r<s.lengt
h;r++){var d=s[r];if(this._contains(t,d))for(var a=o(d).getDistributedNodes(),l=
0;l<a.length;l++){n=!0;var h=a[l],u=i.Composed.getParentNode(h);u&&i.Composed.re
moveChild(u,h)}}return n},_contains:function(e,t){for(;t;){if(t==e)return!0;t=i.
Logical.getParentNode(t)}},_removeOwnerShadyRoot:function(e){if(this._hasCachedO
wnerRoot(e))for(var t,o=i.Logical.getChildNodes(e),n=0,s=o.length;n<s&&(t=o[n]);
n++)this._removeOwnerShadyRoot(t);e._ownerShadyRoot=void 0},_firstComposedNode:f
unction(e){for(var t,i,n=o(e).getDistributedNodes(),s=0,r=n.length;s<r&&(t=n[s])
;s++)if(i=o(t).getDestinationInsertionPoints(),i[i.length-1]===e)return t},query
Selector:function(e){var o=this._query(function(o){return t.matchesSelector.call
(o,e)},this.node,function(e){return Boolean(e)})[0];return o||null},querySelecto
rAll:function(e){return this._query(function(o){return t.matchesSelector.call(o,
e)},this.node)},getDestinationInsertionPoints:function(){return this.node._desti
nationInsertionPoints||[]},getDistributedNodes:function(){return this.node._dist
ributedNodes||[]},_clear:function(){for(;this.childNodes.length;)this.removeChil
d(this.childNodes[0])},setAttribute:function(e,t){this.node.setAttribute(e,t),th
is._maybeDistributeParent()},removeAttribute:function(e){this.node.removeAttribu
te(e),this._maybeDistributeParent()},_maybeDistributeParent:function(){if(this._
nodeNeedsDistribution(this.parentNode))return this._lazyDistribute(this.parentNo
de),!0},cloneNode:function(e){var t=r.call(this.node,!1);if(e)for(var i,n=this.c
hildNodes,s=o(t),d=0;d<n.length;d++)i=o(n[d]).cloneNode(!0),s.appendChild(i);ret
urn t},importNode:function(e,t){var n=this.node instanceof Document?this.node:th
is.node.ownerDocument,s=d.call(n,e,!1);if(t)for(var r,a=i.Logical.getChildNodes(
e),l=o(s),h=0;h<a.length;h++)r=o(n).importNode(a[h],!0),l.appendChild(r);return
s},_getComposedInnerHTML:function(){return n(this.node,!0)}}),Object.definePrope
rties(t.prototype,{activeElement:{get:function(){var e=document.activeElement;if
(!e)return null;var t=!!this.node._isShadyRoot;if(this.node!==document){if(!t)re
turn null;if(this.node.host===e||!this.node.host.contains(e))return null}for(var
i=o(e).getOwnerRoot();i&&i!==this.node;)e=i.host,i=o(e).getOwnerRoot();return t
his.node===document?i?null:e:i===this.node?e:null},configurable:!0},childNodes:{
get:function(){var e=i.Logical.getChildNodes(this.node);return Array.isArray(e)?
e:i.arrayCopyChildNodes(this.node)},configurable:!0},children:{get:function(){re
turn i.Logical.hasChildNodes(this.node)?Array.prototype.filter.call(this.childNo
des,function(e){return e.nodeType===Node.ELEMENT_NODE}):i.arrayCopyChildren(this
.node)},configurable:!0},parentNode:{get:function(){return i.Logical.getParentNo
de(this.node)},configurable:!0},firstChild:{get:function(){return i.Logical.getF
irstChild(this.node)},configurable:!0},lastChild:{get:function(){return i.Logica
l.getLastChild(this.node)},configurable:!0},nextSibling:{get:function(){return i
.Logical.getNextSibling(this.node)},configurable:!0},previousSibling:{get:functi
on(){return i.Logical.getPreviousSibling(this.node)},configurable:!0},firstEleme
ntChild:{get:function(){return i.Logical.getFirstElementChild(this.node)},config
urable:!0},lastElementChild:{get:function(){return i.Logical.getLastElementChild
(this.node)},configurable:!0},nextElementSibling:{get:function(){return i.Logica
l.getNextElementSibling(this.node)},configurable:!0},previousElementSibling:{get
:function(){return i.Logical.getPreviousElementSibling(this.node)},configurable:
!0},textContent:{get:function(){var e=this.node.nodeType;if(e===Node.TEXT_NODE||
e===Node.COMMENT_NODE)return this.node.textContent;for(var t,o=[],i=0,n=this.chi
ldNodes;t=n[i];i++)t.nodeType!==Node.COMMENT_NODE&&o.push(t.textContent);return
o.join("")},set:function(e){var t=this.node.nodeType;t===Node.TEXT_NODE||t===Nod
e.COMMENT_NODE?this.node.textContent=e:(this._clear(),e&&this.appendChild(docume
nt.createTextNode(e)))},configurable:!0},innerHTML:{get:function(){var e=this.no
de.nodeType;return e===Node.TEXT_NODE||e===Node.COMMENT_NODE?null:n(this.node)},
set:function(e){var t=this.node.nodeType;if(t!==Node.TEXT_NODE||t!==Node.COMMENT
_NODE){this._clear();var o=document.createElement("div");o.innerHTML=e;for(var n
=i.arrayCopyChildNodes(o),s=0;s<n.length;s++)this.appendChild(n[s])}},configurab
le:!0}}),t.hasInsertionPoint=function(e){return Boolean(e&&e._insertionPoints.le
ngth)}}}(),function(){"use strict";var e=Polymer.Settings,t=Polymer.TreeApi,o=Po
lymer.DomApi;if(e.useShadow){Polymer.Base.extend(o.prototype,{querySelectorAll:f
unction(e){return t.arrayCopy(this.node.querySelectorAll(e))},getOwnerRoot:funct
ion(){for(var e=this.node;e;){if(e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&e.hos
t)return e;e=e.parentNode}},importNode:function(e,t){var o=this.node instanceof
Document?this.node:this.node.ownerDocument;return o.importNode(e,t)},getDestinat
ionInsertionPoints:function(){var e=this.node.getDestinationInsertionPoints&&thi
s.node.getDestinationInsertionPoints();return e?t.arrayCopy(e):[]},getDistribute
dNodes:function(){var e=this.node.getDistributedNodes&&this.node.getDistributedN
odes();return e?t.arrayCopy(e):[]}}),Object.defineProperties(o.prototype,{active
Element:{get:function(){var e=o.wrap(this.node),t=e.activeElement;return e.conta
ins(t)?t:null},configurable:!0},childNodes:{get:function(){return t.arrayCopyChi
ldNodes(this.node)},configurable:!0},children:{get:function(){return t.arrayCopy
Children(this.node)},configurable:!0},textContent:{get:function(){return this.no
de.textContent},set:function(e){return this.node.textContent=e},configurable:!0}
,innerHTML:{get:function(){return this.node.innerHTML},set:function(e){return th
is.node.innerHTML=e},configurable:!0}});var i=function(e){for(var t=0;t<e.length
;t++)n(e[t])},n=function(e){o.prototype[e]=function(){return this.node[e].apply(
this.node,arguments)}};i(["cloneNode","appendChild","insertBefore","removeChild"
,"replaceChild","setAttribute","removeAttribute","querySelector"]);var s=functio
n(e){for(var t=0;t<e.length;t++)r(e[t])},r=function(e){Object.defineProperty(o.p
rototype,e,{get:function(){return this.node[e]},configurable:!0})};s(["parentNod
e","firstChild","lastChild","nextSibling","previousSibling","firstElementChild",
"lastElementChild","nextElementSibling","previousElementSibling"])}}(),Polymer.B
ase.extend(Polymer.dom,{_flushGuard:0,_FLUSH_MAX:100,_needsTakeRecords:!Polymer.
Settings.useNativeCustomElements,_debouncers:[],_staticFlushList:[],_finishDebou
ncer:null,flush:function(){for(this._flushGuard=0,this._prepareFlush();this._deb
ouncers.length&&this._flushGuard<this._FLUSH_MAX;){for(;this._debouncers.length;
)this._debouncers.shift().complete();this._finishDebouncer&&this._finishDebounce
r.complete(),this._prepareFlush(),this._flushGuard++}this._flushGuard>=this._FLU
SH_MAX&&console.warn("Polymer.dom.flush aborted. Flush may not be complete.")},_
prepareFlush:function(){this._needsTakeRecords&&CustomElements.takeRecords();for
(var e=0;e<this._staticFlushList.length;e++)this._staticFlushList[e]()},addStati
cFlush:function(e){this._staticFlushList.push(e)},removeStaticFlush:function(e){
var t=this._staticFlushList.indexOf(e);t>=0&&this._staticFlushList.splice(t,1)},
addDebouncer:function(e){this._debouncers.push(e),this._finishDebouncer=Polymer.
Debounce(this._finishDebouncer,this._finishFlush)},_finishFlush:function(){Polym
er.dom._debouncers=[]}}),Polymer.EventApi=function(){"use strict";var e=Polymer.
DomApi.ctor,t=Polymer.Settings;e.Event=function(e){this.event=e},t.useShadow?e.E
vent.prototype={get rootTarget(){return this.event.path[0]},get localTarget(){re
turn this.event.target},get path(){var e=this.event.path;return Array.isArray(e)
||(e=Array.prototype.slice.call(e)),e}}:e.Event.prototype={get rootTarget(){retu
rn this.event.target},get localTarget(){for(var e=this.event.currentTarget,t=e&&
Polymer.dom(e).getOwnerRoot(),o=this.path,i=0;i<o.length;i++)if(Polymer.dom(o[i]
).getOwnerRoot()===t)return o[i]},get path(){if(!this.event._path){for(var e=[],
t=this.rootTarget;t;){e.push(t);var o=Polymer.dom(t).getDestinationInsertionPoin
ts();if(o.length){for(var i=0;i<o.length-1;i++)e.push(o[i]);t=o[o.length-1]}else
t=Polymer.dom(t).parentNode||t.host}e.push(window),this.event._path=e}return th
is.event._path}};var o=function(t){return t.__eventApi||(t.__eventApi=new e.Even
t(t)),t.__eventApi};return{factory:o}}(),function(){"use strict";var e=Polymer.D
omApi.ctor,t=Polymer.Settings.useShadow;Object.defineProperty(e.prototype,"class
List",{get:function(){return this._classList||(this._classList=new e.ClassList(t
his)),this._classList},configurable:!0}),e.ClassList=function(e){this.domApi=e,t
his.node=e.node},e.ClassList.prototype={add:function(){this.node.classList.add.a
pply(this.node.classList,arguments),this._distributeParent()},remove:function(){
this.node.classList.remove.apply(this.node.classList,arguments),this._distribute
Parent()},toggle:function(){this.node.classList.toggle.apply(this.node.classList
,arguments),this._distributeParent()},_distributeParent:function(){t||this.domAp
i._maybeDistributeParent()},contains:function(){return this.node.classList.conta
ins.apply(this.node.classList,arguments)}}}(),function(){"use strict";var e=Poly
mer.DomApi.ctor,t=Polymer.Settings;if(e.EffectiveNodesObserver=function(e){this.
domApi=e,this.node=this.domApi.node,this._listeners=[]},e.EffectiveNodesObserver
.prototype={addListener:function(e){this._isSetup||(this._setup(),this._isSetup=
!0);var t={fn:e,_nodes:[]};return this._listeners.push(t),this._scheduleNotify()
,t},removeListener:function(e){var t=this._listeners.indexOf(e);t>=0&&(this._lis
teners.splice(t,1),e._nodes=[]),this._hasListeners()||(this._cleanup(),this._isS
etup=!1)},_setup:function(){this._observeContentElements(this.domApi.childNodes)
},_cleanup:function(){this._unobserveContentElements(this.domApi.childNodes)},_h
asListeners:function(){return Boolean(this._listeners.length)},_scheduleNotify:f
unction(){this._debouncer&&this._debouncer.stop(),this._debouncer=Polymer.Deboun
ce(this._debouncer,this._notify),this._debouncer.context=this,Polymer.dom.addDeb
ouncer(this._debouncer)},notify:function(){this._hasListeners()&&this._scheduleN
otify()},_notify:function(){this._beforeCallListeners(),this._callListeners()},_
beforeCallListeners:function(){this._updateContentElements()},_updateContentElem
ents:function(){this._observeContentElements(this.domApi.childNodes)},_observeCo
ntentElements:function(e){for(var t,o=0;o<e.length&&(t=e[o]);o++)this._isContent
(t)&&(t.__observeNodesMap=t.__observeNodesMap||new WeakMap,t.__observeNodesMap.h
as(this)||t.__observeNodesMap.set(this,this._observeContent(t)))},_observeConten
t:function(e){var t=this,o=Polymer.dom(e).observeNodes(function(){t._scheduleNot
ify()});return o._avoidChangeCalculation=!0,o},_unobserveContentElements:functio
n(e){for(var t,o,i=0;i<e.length&&(t=e[i]);i++)this._isContent(t)&&(o=t.__observe
NodesMap.get(this),o&&(Polymer.dom(t).unobserveNodes(o),t.__observeNodesMap.dele
te(this)))},_isContent:function(e){return"content"===e.localName},_callListeners
:function(){for(var e,t=this._listeners,o=this._getEffectiveNodes(),i=0;i<t.leng
th&&(e=t[i]);i++){var n=this._generateListenerInfo(e,o);(n||e._alwaysNotify)&&th
is._callListener(e,n)}},_getEffectiveNodes:function(){return this.domApi.getEffe
ctiveChildNodes()},_generateListenerInfo:function(e,t){if(e._avoidChangeCalculat
ion)return!0;for(var o,i=e._nodes,n={target:this.node,addedNodes:[],removedNodes
:[]},s=Polymer.ArraySplice.calculateSplices(t,i),r=0;r<s.length&&(o=s[r]);r++)fo
r(var d,a=0;a<o.removed.length&&(d=o.removed[a]);a++)n.removedNodes.push(d);for(
r=0,o;r<s.length&&(o=s[r]);r++)for(a=o.index;a<o.index+o.addedCount;a++)n.addedN
odes.push(t[a]);return e._nodes=t,n.addedNodes.length||n.removedNodes.length?n:v
oid 0},_callListener:function(e,t){return e.fn.call(this.node,t)},enableShadowAt
tributeTracking:function(){}},t.useShadow){var o=e.EffectiveNodesObserver.protot
ype._setup,i=e.EffectiveNodesObserver.prototype._cleanup;Polymer.Base.extend(e.E
ffectiveNodesObserver.prototype,{_setup:function(){if(!this._observer){var e=thi
s;this._mutationHandler=function(t){t&&t.length&&e._scheduleNotify()},this._obse
rver=new MutationObserver(this._mutationHandler),this._boundFlush=function(){e._
flush()},Polymer.dom.addStaticFlush(this._boundFlush),this._observer.observe(thi
s.node,{childList:!0})}o.call(this)},_cleanup:function(){this._observer.disconne
ct(),this._observer=null,this._mutationHandler=null,Polymer.dom.removeStaticFlus
h(this._boundFlush),i.call(this)},_flush:function(){this._observer&&this._mutati
onHandler(this._observer.takeRecords())},enableShadowAttributeTracking:function(
){if(this._observer){this._makeContentListenersAlwaysNotify(),this._observer.dis
connect(),this._observer.observe(this.node,{childList:!0,attributes:!0,subtree:!
0});var e=this.domApi.getOwnerRoot(),t=e&&e.host;t&&Polymer.dom(t).observer&&Pol
ymer.dom(t).observer.enableShadowAttributeTracking()}},_makeContentListenersAlwa
ysNotify:function(){for(var e,t=0;t<this._listeners.length;t++)e=this._listeners
[t],e._alwaysNotify=e._isContentListener}})}}(),function(){"use strict";var e=Po
lymer.DomApi.ctor,t=Polymer.Settings;e.DistributedNodesObserver=function(t){e.Ef
fectiveNodesObserver.call(this,t)},e.DistributedNodesObserver.prototype=Object.c
reate(e.EffectiveNodesObserver.prototype),Polymer.Base.extend(e.DistributedNodes
Observer.prototype,{_setup:function(){},_cleanup:function(){},_beforeCallListene
rs:function(){},_getEffectiveNodes:function(){return this.domApi.getDistributedN
odes()}}),t.useShadow&&Polymer.Base.extend(e.DistributedNodesObserver.prototype,
{_setup:function(){if(!this._observer){var e=this.domApi.getOwnerRoot(),t=e&&e.h
ost;if(t){var o=this;this._observer=Polymer.dom(t).observeNodes(function(){o._sc
heduleNotify()}),this._observer._isContentListener=!0,this._hasAttrSelect()&&Pol
ymer.dom(t).observer.enableShadowAttributeTracking()}}},_hasAttrSelect:function(
){var e=this.node.getAttribute("select");return e&&e.match(/[[.]+/)},_cleanup:fu
nction(){var e=this.domApi.getOwnerRoot(),t=e&&e.host;t&&Polymer.dom(t).unobserv
eNodes(this._observer),this._observer=null}})}(),function(){function e(e,t){t._d
istributedNodes.push(e);var o=e._destinationInsertionPoints;o?o.push(t):e._desti
nationInsertionPoints=[t]}function t(e){var t=e._distributedNodes;if(t)for(var o
=0;o<t.length;o++){var i=t[o]._destinationInsertionPoints;i&&i.splice(i.indexOf(
e)+1,i.length)}}function o(e,t){var o=u.Logical.getParentNode(e);o&&o.shadyRoot&
&h.hasInsertionPoint(o.shadyRoot)&&o.shadyRoot._distributionClean&&(o.shadyRoot.
_distributionClean=!1,t.shadyRoot._dirtyRoots.push(o))}function i(e,t){var o=t._
destinationInsertionPoints;return o&&o[o.length-1]===e}function n(e){return"cont
ent"==e.localName}function s(e){for(;e&&r(e);)e=e.domHost;return e}function r(e)
{for(var t,o=u.Logical.getChildNodes(e),i=0;i<o.length;i++)if(t=o[i],t.localName
&&"content"===t.localName)return e.domHost}function d(e){for(var t,o=0;o<e._inse
rtionPoints.length;o++)t=e._insertionPoints[o],h.hasApi(t)&&Polymer.dom(t).notif
yObserver()}function a(e){h.hasApi(e)&&Polymer.dom(e).notifyObserver()}function
l(e){if(c&&e)for(var t=0;t<e.length;t++)CustomElements.upgrade(e[t])}var h=Polym
er.DomApi,u=Polymer.TreeApi;Polymer.Base._addFeature({_prepShady:function(){this
._useContent=this._useContent||Boolean(this._template)},_setupShady:function(){t
his.shadyRoot=null,this.__domApi||(this.__domApi=null),this.__dom||(this.__dom=n
ull),this._ownerShadyRoot||(this._ownerShadyRoot=void 0)},_poolContent:function(
){this._useContent&&u.Logical.saveChildNodes(this)},_setupRoot:function(){this._
useContent&&(this._createLocalRoot(),this.dataHost||l(u.Logical.getChildNodes(th
is)))},_createLocalRoot:function(){this.shadyRoot=this.root,this.shadyRoot._dist
ributionClean=!1,this.shadyRoot._hasDistributed=!1,this.shadyRoot._isShadyRoot=!
0,this.shadyRoot._dirtyRoots=[];var e=this.shadyRoot._insertionPoints=!this._not
es||this._notes._hasContent?this.shadyRoot.querySelectorAll("content"):[];u.Logi
cal.saveChildNodes(this.shadyRoot);for(var t,o=0;o<e.length;o++)t=e[o],u.Logical
.saveChildNodes(t),u.Logical.saveChildNodes(t.parentNode);this.shadyRoot.host=th
is},get domHost(){var e=Polymer.dom(this).getOwnerRoot();return e&&e.host},distr
ibuteContent:function(e){if(this.shadyRoot){this.shadyRoot._invalidInsertionPoin
ts=this.shadyRoot._invalidInsertionPoints||e;var t=s(this);Polymer.dom(this)._la
zyDistribute(t)}},_distributeContent:function(){this._useContent&&!this.shadyRoo
t._distributionClean&&(this.shadyRoot._invalidInsertionPoints&&(Polymer.dom(this
)._updateInsertionPoints(this),this.shadyRoot._invalidInsertionPoints=!1),this._
beginDistribute(),this._distributeDirtyRoots(),this._finishDistribute())},_begin
Distribute:function(){this._useContent&&h.hasInsertionPoint(this.shadyRoot)&&(th
is._resetDistribution(),this._distributePool(this.shadyRoot,this._collectPool())
); |
| 2 },_distributeDirtyRoots:function(){for(var e,t=this.shadyRoot._dirtyRoots,o=0,i=
t.length;o<i&&(e=t[o]);o++)e._distributeContent();this.shadyRoot._dirtyRoots=[]}
,_finishDistribute:function(){if(this._useContent){if(this.shadyRoot._distributi
onClean=!0,h.hasInsertionPoint(this.shadyRoot))this._composeTree(),d(this.shadyR
oot);else if(this.shadyRoot._hasDistributed){var e=this._composeNode(this);this.
_updateChildNodes(this,e)}else u.Composed.clearChildNodes(this),this.appendChild
(this.shadyRoot);this.shadyRoot._hasDistributed||a(this),this.shadyRoot._hasDist
ributed=!0}},elementMatches:function(e,t){return t=t||this,h.matchesSelector.cal
l(t,e)},_resetDistribution:function(){for(var e=u.Logical.getChildNodes(this),o=
0;o<e.length;o++){var i=e[o];i._destinationInsertionPoints&&(i._destinationInser
tionPoints=void 0),n(i)&&t(i)}for(var s=this.shadyRoot,r=s._insertionPoints,d=0;
d<r.length;d++)r[d]._distributedNodes=[]},_collectPool:function(){for(var e=[],t
=u.Logical.getChildNodes(this),o=0;o<t.length;o++){var i=t[o];n(i)?e.push.apply(
e,i._distributedNodes):e.push(i)}return e},_distributePool:function(e,t){for(var
i,n=e._insertionPoints,s=0,r=n.length;s<r&&(i=n[s]);s++)this._distributeInserti
onPoint(i,t),o(i,this)},_distributeInsertionPoint:function(t,o){for(var i,n=!1,s
=0,r=o.length;s<r;s++)i=o[s],i&&this._matchesContentSelect(i,t)&&(e(i,t),o[s]=vo
id 0,n=!0);if(!n)for(var d=u.Logical.getChildNodes(t),a=0;a<d.length;a++)e(d[a],
t)},_composeTree:function(){this._updateChildNodes(this,this._composeNode(this))
;for(var e,t,o=this.shadyRoot._insertionPoints,i=0,n=o.length;i<n&&(e=o[i]);i++)
t=u.Logical.getParentNode(e),t._useContent||t===this||t===this.shadyRoot||this._
updateChildNodes(t,this._composeNode(t))},_composeNode:function(e){for(var t=[],
o=u.Logical.getChildNodes(e.shadyRoot||e),s=0;s<o.length;s++){var r=o[s];if(n(r)
)for(var d=r._distributedNodes,a=0;a<d.length;a++){var l=d[a];i(r,l)&&t.push(l)}
else t.push(r)}return t},_updateChildNodes:function(e,t){for(var o,i=u.Composed.
getChildNodes(e),n=Polymer.ArraySplice.calculateSplices(t,i),s=0,r=0;s<n.length&
&(o=n[s]);s++){for(var d,a=0;a<o.removed.length&&(d=o.removed[a]);a++)u.Composed
.getParentNode(d)===e&&u.Composed.removeChild(e,d),i.splice(o.index+r,1);r-=o.ad
dedCount}for(var o,l,s=0;s<n.length&&(o=n[s]);s++)for(l=i[o.index],a=o.index,d;a
<o.index+o.addedCount;a++)d=t[a],u.Composed.insertBefore(e,d,l),i.splice(a,0,d)}
,_matchesContentSelect:function(e,t){var o=t.getAttribute("select");if(!o)return
!0;if(o=o.trim(),!o)return!0;if(!(e instanceof Element))return!1;var i=/^(:not\(
)?[*.#[a-zA-Z_|]/;return!!i.test(o)&&this.elementMatches(o,e)},_elementAdd:funct
ion(){},_elementRemove:function(){}});var c=window.CustomElements&&!CustomElemen
ts.useNative}(),Polymer.Settings.useShadow&&Polymer.Base._addFeature({_poolConte
nt:function(){},_beginDistribute:function(){},distributeContent:function(){},_di
stributeContent:function(){},_finishDistribute:function(){},_createLocalRoot:fun
ction(){this.createShadowRoot(),this.shadowRoot.appendChild(this.root),this.root
=this.shadowRoot}}),Polymer.Async={_currVal:0,_lastVal:0,_callbacks:[],_twiddleC
ontent:0,_twiddle:document.createTextNode(""),run:function(e,t){return t>0?~setT
imeout(e,t):(this._twiddle.textContent=this._twiddleContent++,this._callbacks.pu
sh(e),this._currVal++)},cancel:function(e){if(e<0)clearTimeout(~e);else{var t=e-
this._lastVal;if(t>=0){if(!this._callbacks[t])throw"invalid async handle: "+e;th
is._callbacks[t]=null}}},_atEndOfMicrotask:function(){for(var e=this._callbacks.
length,t=0;t<e;t++){var o=this._callbacks[t];if(o)try{o()}catch(e){throw t++,thi
s._callbacks.splice(0,t),this._lastVal+=t,this._twiddle.textContent=this._twiddl
eContent++,e}}this._callbacks.splice(0,e),this._lastVal+=e}},new window.Mutation
Observer(function(){Polymer.Async._atEndOfMicrotask()}).observe(Polymer.Async._t
widdle,{characterData:!0}),Polymer.Debounce=function(){function e(e,t,i){return
e?e.stop():e=new o(this),e.go(t,i),e}var t=Polymer.Async,o=function(e){this.cont
ext=e;var t=this;this.boundComplete=function(){t.complete()}};return o.prototype
={go:function(e,o){var i;this.finish=function(){t.cancel(i)},i=t.run(this.boundC
omplete,o),this.callback=e},stop:function(){this.finish&&(this.finish(),this.fin
ish=null,this.callback=null)},complete:function(){if(this.finish){var e=this.cal
lback;this.stop(),e.call(this.context)}}},e}(),Polymer.Base._addFeature({_setupD
ebouncers:function(){this._debouncers={}},debounce:function(e,t,o){return this._
debouncers[e]=Polymer.Debounce.call(this,this._debouncers[e],t,o)},isDebouncerAc
tive:function(e){var t=this._debouncers[e];return!(!t||!t.finish)},flushDebounce
r:function(e){var t=this._debouncers[e];t&&t.complete()},cancelDebouncer:functio
n(e){var t=this._debouncers[e];t&&t.stop()}}),Polymer.DomModule=document.createE
lement("dom-module"),Polymer.Base._addFeature({_registerFeatures:function(){this
._prepIs(),this._prepBehaviors(),this._prepConstructor(),this._prepTemplate(),th
is._prepShady(),this._prepPropertyInfo()},_prepBehavior:function(e){this._addHos
tAttributes(e.hostAttributes)},_initFeatures:function(){this._registerHost(),thi
s._template&&(this._poolContent(),this._beginHosting(),this._stampTemplate(),thi
s._endHosting()),this._marshalHostAttributes(),this._setupDebouncers(),this._mar
shalBehaviors(),this._tryReady()},_marshalBehavior:function(e){}})</script> <scr
ipt>Polymer.nar=[],Polymer.Annotations={parseAnnotations:function(e){var t=[],n=
e._content||e.content;return this._parseNodeAnnotations(n,t,e.hasAttribute("stri
p-whitespace")),t},_parseNodeAnnotations:function(e,t,n){return e.nodeType===Nod
e.TEXT_NODE?this._parseTextNodeAnnotation(e,t):this._parseElementAnnotations(e,t
,n)},_bindingRegex:function(){var e="(?:[a-zA-Z_$][\\w.:$\\-*]*)",t="(?:[-+]?[0-
9]*\\.?[0-9]+(?:[eE][-+]?[0-9]+)?)",n="(?:'(?:[^'\\\\]|\\\\.)*')",r='(?:"(?:[^"\
\\\]|\\\\.)*")',s="(?:"+n+"|"+r+")",i="(?:"+e+"|"+t+"|"+s+"\\s*)",o="(?:"+i+"(?:
,\\s*"+i+")*)",a="(?:\\(\\s*(?:"+o+"?)\\)\\s*)",l="("+e+"\\s*"+a+"?)",c="(\\[\\[
|{{)\\s*",h="(?:]]|}})",u="(?:(!)\\s*)?",f=c+u+l+h;return new RegExp(f,"g")}(),_
parseBindings:function(e){for(var t,n=this._bindingRegex,r=[],s=0;null!==(t=n.ex
ec(e));){t.index>s&&r.push({literal:e.slice(s,t.index)});var i,o,a,l=t[1][0],c=B
oolean(t[2]),h=t[3].trim();"{"==l&&(a=h.indexOf("::"))>0&&(o=h.substring(a+2),h=
h.substring(0,a),i=!0),r.push({compoundIndex:r.length,value:h,mode:l,negate:c,ev
ent:o,customEvent:i}),s=n.lastIndex}if(s&&s<e.length){var u=e.substring(s);u&&r.
push({literal:u})}if(r.length)return r},_literalFromParts:function(e){for(var t=
"",n=0;n<e.length;n++){var r=e[n].literal;t+=r||""}return t},_parseTextNodeAnnot
ation:function(e,t){var n=this._parseBindings(e.textContent);if(n){e.textContent
=this._literalFromParts(n)||" ";var r={bindings:[{kind:"text",name:"textContent"
,parts:n,isCompound:1!==n.length}]};return t.push(r),r}},_parseElementAnnotation
s:function(e,t,n){var r={bindings:[],events:[]};return"content"===e.localName&&(
t._hasContent=!0),this._parseChildNodesAnnotations(e,r,t,n),e.attributes&&(this.
_parseNodeAttributeAnnotations(e,r,t),this.prepElement&&this.prepElement(e)),(r.
bindings.length||r.events.length||r.id)&&t.push(r),r},_parseChildNodesAnnotation
s:function(e,t,n,r){if(e.firstChild)for(var s=e.firstChild,i=0;s;){var o=s.nextS
ibling;if("template"!==s.localName||s.hasAttribute("preserve-content")||this._pa
rseTemplate(s,i,n,t),"slot"==s.localName&&(s=this._replaceSlotWithContent(s)),s.
nodeType===Node.TEXT_NODE){for(var a=o;a&&a.nodeType===Node.TEXT_NODE;)s.textCon
tent+=a.textContent,o=a.nextSibling,e.removeChild(a),a=o;r&&!s.textContent.trim(
)&&(e.removeChild(s),i--)}if(s.parentNode){var l=this._parseNodeAnnotations(s,n,
r);l&&(l.parent=t,l.index=i)}s=o,i++}},_replaceSlotWithContent:function(e){for(v
ar t=e.ownerDocument.createElement("content");e.firstChild;)t.appendChild(e.firs
tChild);for(var n=e.attributes,r=0;r<n.length;r++){var s=n[r];t.setAttribute(s.n
ame,s.value)}var i=e.getAttribute("name"),o=i?"[slot='"+i+"']":":not([slot])";re
turn t.setAttribute("select",o),e.parentNode.replaceChild(t,e),t},_parseTemplate
:function(e,t,n,r){var s=document.createDocumentFragment();s._notes=this.parseAn
notations(e),s.appendChild(e.content),n.push({bindings:Polymer.nar,events:Polyme
r.nar,templateContent:s,parent:r,index:t})},_parseNodeAttributeAnnotations:funct
ion(e,t){for(var n,r=Array.prototype.slice.call(e.attributes),s=r.length-1;n=r[s
];s--){var i,o=n.name,a=n.value;"on-"===o.slice(0,3)?(e.removeAttribute(o),t.eve
nts.push({name:o.slice(3),value:a})):(i=this._parseNodeAttributeAnnotation(e,o,a
))?t.bindings.push(i):"id"===o&&(t.id=a)}},_parseNodeAttributeAnnotation:functio
n(e,t,n){var r=this._parseBindings(n);if(r){var s=t,i="property";"$"==t[t.length
-1]&&(t=t.slice(0,-1),i="attribute");var o=this._literalFromParts(r);o&&"attribu
te"==i&&e.setAttribute(t,o),"input"===e.localName&&"value"===s&&e.setAttribute(s
,""),e.removeAttribute(s);var a=Polymer.CaseMap.dashToCamelCase(t);return"proper
ty"===i&&(t=a),{kind:i,name:t,propertyName:a,parts:r,literal:o,isCompound:1!==r.
length}}},findAnnotatedNode:function(e,t){var n=t.parent&&Polymer.Annotations.fi
ndAnnotatedNode(e,t.parent);if(!n)return e;for(var r=n.firstChild,s=0;r;r=r.next
Sibling)if(t.index===s++)return r}},function(){function e(e,t){return e.replace(
a,function(e,r,s,i){return r+"'"+n(s.replace(/["']/g,""),t)+"'"+i})}function t(t
,r){for(var s in l)for(var i,o,a,c=l[s],u=0,f=c.length;u<f&&(i=c[u]);u++)"*"!==s
&&t.localName!==s||(o=t.attributes[i],a=o&&o.value,a&&a.search(h)<0&&(o.value="s
tyle"===i?e(a,r):n(a,r)))}function n(e,t){if(e&&c.test(e))return e;var n=s(t);re
turn n.href=e,n.href||e}function r(e,t){return i||(i=document.implementation.cre
ateHTMLDocument("temp"),o=i.createElement("base"),i.head.appendChild(o)),o.href=
t,n(e,i)}function s(e){return e.__urlResolver||(e.__urlResolver=e.createElement(
"a"))}var i,o,a=/(url\()([^)]*)(\))/g,l={"*":["href","src","style","url"],form:[
"action"]},c=/(^\/)|(^#)|(^[\w-\d]*:)/,h=/\{\{|\[\[/;Polymer.ResolveUrl={resolve
Css:e,resolveAttrs:t,resolveUrl:r}}(),Polymer.Path={root:function(e){var t=e.ind
exOf(".");return t===-1?e:e.slice(0,t)},isDeep:function(e){return e.indexOf(".")
!==-1},isAncestor:function(e,t){return 0===e.indexOf(t+".")},isDescendant:functi
on(e,t){return 0===t.indexOf(e+".")},translate:function(e,t,n){return t+n.slice(
e.length)},matches:function(e,t,n){return e===n||this.isAncestor(e,n)||Boolean(t
)&&this.isDescendant(e,n)}},Polymer.Base._addFeature({_prepAnnotations:function(
){if(this._template){var e=this;Polymer.Annotations.prepElement=function(t){e._p
repElement(t)},this._template._content&&this._template._content._notes?this._not
es=this._template._content._notes:(this._notes=Polymer.Annotations.parseAnnotati
ons(this._template),this._processAnnotations(this._notes)),Polymer.Annotations.p
repElement=null}else this._notes=[]},_processAnnotations:function(e){for(var t=0
;t<e.length;t++){for(var n=e[t],r=0;r<n.bindings.length;r++)for(var s=n.bindings
[r],i=0;i<s.parts.length;i++){var o=s.parts[i];if(!o.literal){var a=this._parseM
ethod(o.value);a?o.signature=a:o.model=Polymer.Path.root(o.value)}}if(n.template
Content){this._processAnnotations(n.templateContent._notes);var l=n.templateCont
ent._parentProps=this._discoverTemplateParentProps(n.templateContent._notes),c=[
];for(var h in l){var u="_parent_"+h;c.push({index:n.index,kind:"property",name:
u,propertyName:u,parts:[{mode:"{",model:h,value:h}]})}n.bindings=n.bindings.conc
at(c)}}},_discoverTemplateParentProps:function(e){for(var t,n={},r=0;r<e.length&
&(t=e[r]);r++){for(var s,i=0,o=t.bindings;i<o.length&&(s=o[i]);i++)for(var a,l=0
,c=s.parts;l<c.length&&(a=c[l]);l++)if(a.signature){for(var h=a.signature.args,u
=0;u<h.length;u++){var f=h[u].model;f&&(n[f]=!0)}a.signature.dynamicFn&&(n[a.sig
nature.method]=!0)}else a.model&&(n[a.model]=!0);if(t.templateContent){var p=t.t
emplateContent._parentProps;Polymer.Base.mixin(n,p)}}return n},_prepElement:func
tion(e){Polymer.ResolveUrl.resolveAttrs(e,this._template.ownerDocument)},_findAn
notatedNode:Polymer.Annotations.findAnnotatedNode,_marshalAnnotationReferences:f
unction(){this._template&&(this._marshalIdNodes(),this._marshalAnnotatedNodes(),
this._marshalAnnotatedListeners())},_configureAnnotationReferences:function(){fo
r(var e=this._notes,t=this._nodes,n=0;n<e.length;n++){var r=e[n],s=t[n];this._co
nfigureTemplateContent(r,s),this._configureCompoundBindings(r,s)}},_configureTem
plateContent:function(e,t){e.templateContent&&(t._content=e.templateContent)},_c
onfigureCompoundBindings:function(e,t){for(var n=e.bindings,r=0;r<n.length;r++){
var s=n[r];if(s.isCompound){for(var i=t.__compoundStorage__||(t.__compoundStorag
e__={}),o=s.parts,a=new Array(o.length),l=0;l<o.length;l++)a[l]=o[l].literal;var
c=s.name;i[c]=a,s.literal&&"property"==s.kind&&(t._configValue?t._configValue(c
,s.literal):t[c]=s.literal)}}},_marshalIdNodes:function(){this.$={};for(var e,t=
0,n=this._notes.length;t<n&&(e=this._notes[t]);t++)e.id&&(this.$[e.id]=this._fin
dAnnotatedNode(this.root,e))},_marshalAnnotatedNodes:function(){if(this._notes&&
this._notes.length){for(var e=new Array(this._notes.length),t=0;t<this._notes.le
ngth;t++)e[t]=this._findAnnotatedNode(this.root,this._notes[t]);this._nodes=e}},
_marshalAnnotatedListeners:function(){for(var e,t=0,n=this._notes.length;t<n&&(e
=this._notes[t]);t++)if(e.events&&e.events.length)for(var r,s=this._findAnnotate
dNode(this.root,e),i=0,o=e.events;i<o.length&&(r=o[i]);i++)this.listen(s,r.name,
r.value)}}),Polymer.Base._addFeature({listeners:{},_listenListeners:function(e){
var t,n,r;for(r in e)r.indexOf(".")<0?(t=this,n=r):(n=r.split("."),t=this.$[n[0]
],n=n[1]),this.listen(t,n,e[r])},listen:function(e,t,n){var r=this._recallEventH
andler(this,t,e,n);r||(r=this._createEventHandler(e,t,n)),r._listening||(this._l
isten(e,t,r),r._listening=!0)},_boundListenerKey:function(e,t){return e+":"+t},_
recordEventHandler:function(e,t,n,r,s){var i=e.__boundListeners;i||(i=e.__boundL
isteners=new WeakMap);var o=i.get(n);o||(o={},i.set(n,o));var a=this._boundListe
nerKey(t,r);o[a]=s},_recallEventHandler:function(e,t,n,r){var s=e.__boundListene
rs;if(s){var i=s.get(n);if(i){var o=this._boundListenerKey(t,r);return i[o]}}},_
createEventHandler:function(e,t,n){var r=this,s=function(e){r[n]?r[n](e,e.detail
):r._warn(r._logf("_createEventHandler","listener method `"+n+"` not defined"))}
;return s._listening=!1,this._recordEventHandler(r,t,e,n,s),s},unlisten:function
(e,t,n){var r=this._recallEventHandler(this,t,e,n);r&&(this._unlisten(e,t,r),r._
listening=!1)},_listen:function(e,t,n){e.addEventListener(t,n)},_unlisten:functi
on(e,t,n){e.removeEventListener(t,n)}}),function(){"use strict";function e(e){fo
r(var t,n=g?["click"]:m,r=0;r<n.length;r++)t=n[r],e?document.addEventListener(t,
P,!0):document.removeEventListener(t,P,!0)}function t(){S.mouse.mouseIgnoreJob||
e(!0);var t=function(){e(),S.mouse.target=null,S.mouse.mouseIgnoreJob=null};S.mo
use.mouseIgnoreJob=Polymer.Debounce(S.mouse.mouseIgnoreJob,t,d)}function n(e){va
r t=e.type;if(m.indexOf(t)===-1)return!1;if("mousemove"===t){var n=void 0===e.bu
ttons?1:e.buttons;return e instanceof window.MouseEvent&&!v&&(n=y[e.which]||0),B
oolean(1&n)}var r=void 0===e.button?0:e.button;return 0===r}function r(e){if("cl
ick"===e.type){if(0===e.detail)return!0;var t=C.findOriginalTarget(e),n=t.getBou
ndingClientRect(),r=e.pageX,s=e.pageY;return!(r>=n.left&&r<=n.right&&s>=n.top&&s
<=n.bottom)}return!1}function s(e){for(var t,n=Polymer.dom(e).path,r="auto",s=0;
s<n.length;s++)if(t=n[s],t[u]){r=t[u];break}return r}function i(e,t,n){e.movefn=
t,e.upfn=n,document.addEventListener("mousemove",t),document.addEventListener("m
ouseup",n)}function o(e){document.removeEventListener("mousemove",e.movefn),docu
ment.removeEventListener("mouseup",e.upfn),e.movefn=null,e.upfn=null}var a=Polym
er.DomApi.wrap,l="string"==typeof document.head.style.touchAction,c="__polymerGe
stures",h="__polymerGesturesHandled",u="__polymerGesturesTouchAction",f=25,p=5,_
=2,d=2500,m=["mousedown","mousemove","mouseup","click"],y=[0,1,4,2],v=function()
{try{return 1===new MouseEvent("test",{buttons:1}).buttons}catch(e){return!1}}()
,g=navigator.userAgent.match(/iP(?:[oa]d|hone)|Android/),P=function(e){var t=e.s
ourceCapabilities;if((!t||t.firesTouchEvents)&&(e[h]={skip:!0},"click"===e.type)
){for(var n=Polymer.dom(e).path,r=0;r<n.length;r++)if(n[r]===S.mouse.target)retu
rn;e.preventDefault(),e.stopPropagation()}},S={mouse:{target:null,mouseIgnoreJob
:null},touch:{x:0,y:0,id:-1,scrollDecided:!1}},C={gestures:{},recognizers:[],dee
pTargetFind:function(e,t){for(var n=document.elementFromPoint(e,t),r=n;r&&r.shad
owRoot;)r=r.shadowRoot.elementFromPoint(e,t),r&&(n=r);return n},findOriginalTarg
et:function(e){return e.path?e.path[0]:e.target},handleNative:function(e){var n,
r=e.type,s=a(e.currentTarget),i=s[c];if(i){var o=i[r];if(o){if(!e[h]&&(e[h]={},"
touch"===r.slice(0,5))){var u=e.changedTouches[0];if("touchstart"===r&&1===e.tou
ches.length&&(S.touch.id=u.identifier),S.touch.id!==u.identifier)return;l||"touc
hstart"!==r&&"touchmove"!==r||C.handleTouchAction(e),"touchend"===r&&(S.mouse.ta
rget=Polymer.dom(e).rootTarget,t())}if(n=e[h],!n.skip){for(var f,p=C.recognizers
,_=0;_<p.length;_++)f=p[_],o[f.name]&&!n[f.name]&&f.flow&&f.flow.start.indexOf(e
.type)>-1&&f.reset&&f.reset();for(_=0,f;_<p.length;_++)f=p[_],o[f.name]&&!n[f.na
me]&&(n[f.name]=!0,f[r](e))}}}},handleTouchAction:function(e){var t=e.changedTou
ches[0],n=e.type;if("touchstart"===n)S.touch.x=t.clientX,S.touch.y=t.clientY,S.t
ouch.scrollDecided=!1;else if("touchmove"===n){if(S.touch.scrollDecided)return;S
.touch.scrollDecided=!0;var r=s(e),i=!1,o=Math.abs(S.touch.x-t.clientX),a=Math.a
bs(S.touch.y-t.clientY);e.cancelable&&("none"===r?i=!0:"pan-x"===r?i=a>o:"pan-y"
===r&&(i=o>a)),i?e.preventDefault():C.prevent("track")}},add:function(e,t,n){e=a
(e);var r=this.gestures[t],s=r.deps,i=r.name,o=e[c];o||(e[c]=o={});for(var l,h,u
=0;u<s.length;u++)l=s[u],g&&m.indexOf(l)>-1&&"click"!==l||(h=o[l],h||(o[l]=h={_c
ount:0}),0===h._count&&e.addEventListener(l,this.handleNative),h[i]=(h[i]||0)+1,
h._count=(h._count||0)+1);e.addEventListener(t,n),r.touchAction&&this.setTouchAc
tion(e,r.touchAction)},remove:function(e,t,n){e=a(e);var r=this.gestures[t],s=r.
deps,i=r.name,o=e[c];if(o)for(var l,h,u=0;u<s.length;u++)l=s[u],h=o[l],h&&h[i]&&
(h[i]=(h[i]||1)-1,h._count=(h._count||1)-1,0===h._count&&e.removeEventListener(l
,this.handleNative));e.removeEventListener(t,n)},register:function(e){this.recog
nizers.push(e);for(var t=0;t<e.emits.length;t++)this.gestures[e.emits[t]]=e},fin
dRecognizerByEvent:function(e){for(var t,n=0;n<this.recognizers.length;n++){t=th
is.recognizers[n];for(var r,s=0;s<t.emits.length;s++)if(r=t.emits[s],r===e)retur
n t}return null},setTouchAction:function(e,t){l&&(e.style.touchAction=t),e[u]=t}
,fire:function(e,t,n){var r=Polymer.Base.fire(t,n,{node:e,bubbles:!0,cancelable:
!0});if(r.defaultPrevented){var s=n.preventer||n.sourceEvent;s&&s.preventDefault
&&s.preventDefault()}},prevent:function(e){var t=this.findRecognizerByEvent(e);t
.info&&(t.info.prevent=!0)},resetMouseCanceller:function(){S.mouse.mouseIgnoreJo
b&&S.mouse.mouseIgnoreJob.complete()}};C.register({name:"downup",deps:["mousedow
n","touchstart","touchend"],flow:{start:["mousedown","touchstart"],end:["mouseup
","touchend"]},emits:["down","up"],info:{movefn:null,upfn:null},reset:function()
{o(this.info)},mousedown:function(e){if(n(e)){var t=C.findOriginalTarget(e),r=th
is,s=function(e){n(e)||(r.fire("up",t,e),o(r.info))},a=function(e){n(e)&&r.fire(
"up",t,e),o(r.info)};i(this.info,s,a),this.fire("down",t,e)}},touchstart:functio
n(e){this.fire("down",C.findOriginalTarget(e),e.changedTouches[0],e)},touchend:f
unction(e){this.fire("up",C.findOriginalTarget(e),e.changedTouches[0],e)},fire:f
unction(e,t,n,r){C.fire(t,e,{x:n.clientX,y:n.clientY,sourceEvent:n,preventer:r,p
revent:function(e){return C.prevent(e)}})}}),C.register({name:"track",touchActio
n:"none",deps:["mousedown","touchstart","touchmove","touchend"],flow:{start:["mo
usedown","touchstart"],end:["mouseup","touchend"]},emits:["track"],info:{x:0,y:0
,state:"start",started:!1,moves:[],addMove:function(e){this.moves.length>_&&this
.moves.shift(),this.moves.push(e)},movefn:null,upfn:null,prevent:!1},reset:funct
ion(){this.info.state="start",this.info.started=!1,this.info.moves=[],this.info.
x=0,this.info.y=0,this.info.prevent=!1,o(this.info)},hasMovedEnough:function(e,t
){if(this.info.prevent)return!1;if(this.info.started)return!0;var n=Math.abs(thi
s.info.x-e),r=Math.abs(this.info.y-t);return n>=p||r>=p},mousedown:function(e){i
f(n(e)){var t=C.findOriginalTarget(e),r=this,s=function(e){var s=e.clientX,i=e.c
lientY;r.hasMovedEnough(s,i)&&(r.info.state=r.info.started?"mouseup"===e.type?"e
nd":"track":"start","start"===r.info.state&&C.prevent("tap"),r.info.addMove({x:s
,y:i}),n(e)||(r.info.state="end",o(r.info)),r.fire(t,e),r.info.started=!0)},a=fu
nction(e){r.info.started&&s(e),o(r.info)};i(this.info,s,a),this.info.x=e.clientX
,this.info.y=e.clientY}},touchstart:function(e){var t=e.changedTouches[0];this.i
nfo.x=t.clientX,this.info.y=t.clientY},touchmove:function(e){var t=C.findOrigina
lTarget(e),n=e.changedTouches[0],r=n.clientX,s=n.clientY;this.hasMovedEnough(r,s
)&&("start"===this.info.state&&C.prevent("tap"),this.info.addMove({x:r,y:s}),thi
s.fire(t,n),this.info.state="track",this.info.started=!0)},touchend:function(e){
var t=C.findOriginalTarget(e),n=e.changedTouches[0];this.info.started&&(this.inf
o.state="end",this.info.addMove({x:n.clientX,y:n.clientY}),this.fire(t,n,e))},fi
re:function(e,t,n){var r,s=this.info.moves[this.info.moves.length-2],i=this.info
.moves[this.info.moves.length-1],o=i.x-this.info.x,a=i.y-this.info.y,l=0;return
s&&(r=i.x-s.x,l=i.y-s.y),C.fire(e,"track",{state:this.info.state,x:t.clientX,y:t
.clientY,dx:o,dy:a,ddx:r,ddy:l,sourceEvent:t,preventer:n,hover:function(){return
C.deepTargetFind(t.clientX,t.clientY)}})}}),C.register({name:"tap",deps:["mouse
down","click","touchstart","touchend"],flow:{start:["mousedown","touchstart"],en
d:["click","touchend"]},emits:["tap"],info:{x:NaN,y:NaN,prevent:!1},reset:functi
on(){this.info.x=NaN,this.info.y=NaN,this.info.prevent=!1},save:function(e){this
.info.x=e.clientX,this.info.y=e.clientY},mousedown:function(e){n(e)&&this.save(e
)},click:function(e){n(e)&&this.forward(e)},touchstart:function(e){this.save(e.c
hangedTouches[0],e)},touchend:function(e){this.forward(e.changedTouches[0],e)},f
orward:function(e,t){var n=Math.abs(e.clientX-this.info.x),s=Math.abs(e.clientY-
this.info.y),i=C.findOriginalTarget(e);(isNaN(n)||isNaN(s)||n<=f&&s<=f||r(e))&&(
this.info.prevent||C.fire(i,"tap",{x:e.clientX,y:e.clientY,sourceEvent:e,prevent
er:t}))}});var E={x:"pan-x",y:"pan-y",none:"none",all:"auto"};Polymer.Base._addF
eature({_setupGestures:function(){this.__polymerGestures=null},_listen:function(
e,t,n){C.gestures[t]?C.add(e,t,n):e.addEventListener(t,n)},_unlisten:function(e,
t,n){C.gestures[t]?C.remove(e,t,n):e.removeEventListener(t,n)},setScrollDirectio
n:function(e,t){t=t||this,C.setTouchAction(t,E[e]||"auto")}}),Polymer.Gestures=C
}(),function(){"use strict";if(Polymer.Base._addFeature({$$:function(e){return P
olymer.dom(this.root).querySelector(e)},toggleClass:function(e,t,n){n=n||this,1=
=arguments.length&&(t=!n.classList.contains(e)),t?Polymer.dom(n).classList.add(e
):Polymer.dom(n).classList.remove(e)},toggleAttribute:function(e,t,n){n=n||this,
1==arguments.length&&(t=!n.hasAttribute(e)),t?Polymer.dom(n).setAttribute(e,""):
Polymer.dom(n).removeAttribute(e)},classFollows:function(e,t,n){n&&Polymer.dom(n
).classList.remove(e),t&&Polymer.dom(t).classList.add(e)},attributeFollows:funct
ion(e,t,n){n&&Polymer.dom(n).removeAttribute(e),t&&Polymer.dom(t).setAttribute(e
,"")},getEffectiveChildNodes:function(){return Polymer.dom(this).getEffectiveChi
ldNodes()},getEffectiveChildren:function(){var e=Polymer.dom(this).getEffectiveC
hildNodes();return e.filter(function(e){return e.nodeType===Node.ELEMENT_NODE})}
,getEffectiveTextContent:function(){for(var e,t=this.getEffectiveChildNodes(),n=
[],r=0;e=t[r];r++)e.nodeType!==Node.COMMENT_NODE&&n.push(Polymer.dom(e).textCont
ent);return n.join("")},queryEffectiveChildren:function(e){var t=Polymer.dom(thi
s).queryDistributedElements(e);return t&&t[0]},queryAllEffectiveChildren:functio
n(e){return Polymer.dom(this).queryDistributedElements(e)},getContentChildNodes:
function(e){var t=Polymer.dom(this.root).querySelector(e||"content");return t?Po
lymer.dom(t).getDistributedNodes():[]},getContentChildren:function(e){return thi
s.getContentChildNodes(e).filter(function(e){return e.nodeType===Node.ELEMENT_NO
DE})},fire:function(e,t,n){n=n||Polymer.nob;var r=n.node||this;t=null===t||void
0===t?{}:t;var s=void 0===n.bubbles||n.bubbles,i=Boolean(n.cancelable),o=n._useC
ache,a=this._getEvent(e,s,i,o);return a.detail=t,o&&(this.__eventCache[e]=null),
r.dispatchEvent(a),o&&(this.__eventCache[e]=a),a},__eventCache:{},_getEvent:func
tion(e,t,n,r){var s=r&&this.__eventCache[e];return s&&s.bubbles==t&&s.cancelable
==n||(s=new Event(e,{bubbles:Boolean(t),cancelable:n})),s},async:function(e,t){v
ar n=this;return Polymer.Async.run(function(){e.call(n)},t)},cancelAsync:functio
n(e){Polymer.Async.cancel(e)},arrayDelete:function(e,t){var n;if(Array.isArray(e
)){if(n=e.indexOf(t),n>=0)return e.splice(n,1)}else{var r=this._get(e);if(n=r.in
dexOf(t),n>=0)return this.splice(e,n,1)}},transform:function(e,t){t=t||this,t.st
yle.webkitTransform=e,t.style.transform=e},translate3d:function(e,t,n,r){r=r||th
is,this.transform("translate3d("+e+","+t+","+n+")",r)},importHref:function(e,t,n
,r){var s=document.createElement("link");s.rel="import",s.href=e;var i=Polymer.B
ase.importHref.imported=Polymer.Base.importHref.imported||{},o=i[s.href],a=o||s,
l=this;if(t){var c=function(e){return e.target.__firedLoad=!0,e.target.removeEve
ntListener("load",c),t.call(l,e)};a.addEventListener("load",c)}if(n){var h=funct
ion(e){return e.target.__firedError=!0,e.target.removeEventListener("error",h),n
.call(l,e)};a.addEventListener("error",h)}return o?(o.__firedLoad&&o.dispatchEve
nt(new Event("load")),o.__firedError&&o.dispatchEvent(new Event("error"))):(i[s.
href]=s,r=Boolean(r),r&&s.setAttribute("async",""),document.head.appendChild(s))
,a},create:function(e,t){var n=document.createElement(e);if(t)for(var r in t)n[r
]=t[r];return n},isLightDescendant:function(e){return this!==e&&this.contains(e)
&&Polymer.dom(this).getOwnerRoot()===Polymer.dom(e).getOwnerRoot()},isLocalDesce
ndant:function(e){return this.root===Polymer.dom(e).getOwnerRoot()}}),!Polymer.S
ettings.useNativeCustomElements){var e=Polymer.Base.importHref;Polymer.Base.impo
rtHref=function(t,n,r,s){CustomElements.ready=!1;var i=function(e){if(CustomElem
ents.upgradeDocumentTree(document),CustomElements.ready=!0,n)return n.call(this,
e)};return e.call(this,t,i,r,s)}}}(),Polymer.Bind={prepareModel:function(e){Poly
mer.Base.mixin(e,this._modelApi)},_modelApi:{_notifyChange:function(e,t,n){n=voi
d 0===n?this[e]:n,t=t||Polymer.CaseMap.camelToDashCase(e)+"-changed",this.fire(t
,{value:n},{bubbles:!1,cancelable:!1,_useCache:!0})},_propertySetter:function(e,
t,n,r){var s=this.__data__[e];return s===t||s!==s&&t!==t||(this.__data__[e]=t,"o
bject"==typeof t&&this._clearPath(e),this._propertyChanged&&this._propertyChange
d(e,t,s),n&&this._effectEffects(e,t,n,s,r)),s},__setProperty:function(e,t,n,r){r
=r||this;var s=r._propertyEffects&&r._propertyEffects[e];s?r._propertySetter(e,t
,s,n):r[e]!==t&&(r[e]=t)},_effectEffects:function(e,t,n,r,s){for(var i,o=0,a=n.l
ength;o<a&&(i=n[o]);o++)i.fn.call(this,e,this[e],i.effect,r,s)},_clearPath:funct
ion(e){for(var t in this.__data__)Polymer.Path.isDescendant(e,t)&&(this.__data__
[t]=void 0)}},ensurePropertyEffects:function(e,t){e._propertyEffects||(e._proper
tyEffects={});var n=e._propertyEffects[t];return n||(n=e._propertyEffects[t]=[])
,n},addPropertyEffect:function(e,t,n,r){var s=this.ensurePropertyEffects(e,t),i=
{kind:n,effect:r,fn:Polymer.Bind["_"+n+"Effect"]};return s.push(i),i},createBind
ings:function(e){var t=e._propertyEffects;if(t)for(var n in t){var r=t[n];r.sort
(this._sortPropertyEffects),this._createAccessors(e,n,r)}},_sortPropertyEffects:
function(){var e={compute:0,annotation:1,annotatedComputation:2,reflect:3,notify
:4,observer:5,complexObserver:6,function:7};return function(t,n){return e[t.kind
]-e[n.kind]}}(),_createAccessors:function(e,t,n){var r={get:function(){return th
is.__data__[t]}},s=function(e){this._propertySetter(t,e,n)},i=e.getPropertyInfo&
&e.getPropertyInfo(t);i&&i.readOnly?i.computed||(e["_set"+this.upper(t)]=s):r.se
t=s,Object.defineProperty(e,t,r)},upper:function(e){return e[0].toUpperCase()+e.
substring(1)},_addAnnotatedListener:function(e,t,n,r,s,i){e._bindListeners||(e._
bindListeners=[]);var o=this._notedListenerFactory(n,r,Polymer.Path.isDeep(r),i)
,a=s||Polymer.CaseMap.camelToDashCase(n)+"-changed";e._bindListeners.push({index
:t,property:n,path:r,changedFn:o,event:a})},_isEventBogus:function(e,t){return e
.path&&e.path[0]!==t},_notedListenerFactory:function(e,t,n,r){return function(s,
i,o){if(o){var a=Polymer.Path.translate(e,t,o);this._notifyPath(a,i)}else i=s[e]
,r&&(i=!i),n?this.__data__[t]!=i&&this.set(t,i):this[t]=i}},prepareInstance:func
tion(e){e.__data__=Object.create(null)},setupBindListeners:function(e){for(var t
,n=e._bindListeners,r=0,s=n.length;r<s&&(t=n[r]);r++){var i=e._nodes[t.index];th
is._addNotifyListener(i,e,t.event,t.changedFn)}},_addNotifyListener:function(e,t
,n,r){e.addEventListener(n,function(e){return t._notifyListener(r,e)})}},Polymer
.Base.extend(Polymer.Bind,{_shouldAddListener:function(e){return e.name&&"attrib
ute"!=e.kind&&"text"!=e.kind&&!e.isCompound&&"{"===e.parts[0].mode},_annotationE
ffect:function(e,t,n){e!=n.value&&(t=this._get(n.value),this.__data__[n.value]=t
),this._applyEffectValue(n,t)},_reflectEffect:function(e,t,n){this.reflectProper
tyToAttribute(e,n.attribute,t)},_notifyEffect:function(e,t,n,r,s){s||this._notif
yChange(e,n.event,t)},_functionEffect:function(e,t,n,r,s){n.call(this,e,t,r,s)},
_observerEffect:function(e,t,n,r){var s=this[n.method];s?s.call(this,t,r):this._
warn(this._logf("_observerEffect","observer method `"+n.method+"` not defined"))
},_complexObserverEffect:function(e,t,n){var r=this[n.method];if(r){var s=Polyme
r.Bind._marshalArgs(this.__data__,n,e,t);s&&r.apply(this,s)}else n.dynamicFn||th
is._warn(this._logf("_complexObserverEffect","observer method `"+n.method+"` not
defined"))},_computeEffect:function(e,t,n){var r=this[n.method];if(r){var s=Pol
ymer.Bind._marshalArgs(this.__data__,n,e,t);if(s){var i=r.apply(this,s);this.__s
etProperty(n.name,i)}}else n.dynamicFn||this._warn(this._logf("_computeEffect","
compute method `"+n.method+"` not defined"))},_annotatedComputationEffect:functi
on(e,t,n){var r=this._rootDataHost||this,s=r[n.method];if(s){var i=Polymer.Bind.
_marshalArgs(this.__data__,n,e,t);if(i){var o=s.apply(r,i);this._applyEffectValu
e(n,o)}}else n.dynamicFn||r._warn(r._logf("_annotatedComputationEffect","compute
method `"+n.method+"` not defined"))},_marshalArgs:function(e,t,n,r){for(var s=
[],i=t.args,o=i.length>1||t.dynamicFn,a=0,l=i.length;a<l;a++){var c,h=i[a],u=h.n
ame;if(h.literal?c=h.value:n===u?c=r:(c=e[u],void 0===c&&h.structured&&(c=Polyme
r.Base._get(u,e))),o&&void 0===c)return;if(h.wildcard){var f=Polymer.Path.isAnce
stor(n,u);s[a]={path:f?n:u,value:f?r:c,base:c}}else s[a]=c}return s}}),Polymer.B
ase._addFeature({_addPropertyEffect:function(e,t,n){var r=Polymer.Bind.addProper
tyEffect(this,e,t,n);r.pathFn=this["_"+r.kind+"PathEffect"]},_prepEffects:functi
on(){Polymer.Bind.prepareModel(this),this._addAnnotationEffects(this._notes)},_p
repBindings:function(){Polymer.Bind.createBindings(this)},_addPropertyEffects:fu
nction(e){if(e)for(var t in e){var n=e[t];if(n.observer&&this._addObserverEffect
(t,n.observer),n.computed&&(n.readOnly=!0,this._addComputedEffect(t,n.computed))
,n.notify&&this._addPropertyEffect(t,"notify",{event:Polymer.CaseMap.camelToDash
Case(t)+"-changed"}),n.reflectToAttribute){var r=Polymer.CaseMap.camelToDashCase
(t);"-"===r[0]?this._warn(this._logf("_addPropertyEffects","Property "+t+" canno
t be reflected to attribute "+r+' because "-" is not a valid starting attribute
name. Use a lowercase first letter for the property instead.')):this._addPropert
yEffect(t,"reflect",{attribute:r})}n.readOnly&&Polymer.Bind.ensurePropertyEffect
s(this,t)}},_addComputedEffect:function(e,t){for(var n,r=this._parseMethod(t),s=
r.dynamicFn,i=0;i<r.args.length&&(n=r.args[i]);i++)this._addPropertyEffect(n.mod
el,"compute",{method:r.method,args:r.args,trigger:n,name:e,dynamicFn:s});s&&this
._addPropertyEffect(r.method,"compute",{method:r.method,args:r.args,trigger:null
,name:e,dynamicFn:s})},_addObserverEffect:function(e,t){this._addPropertyEffect(
e,"observer",{method:t,property:e})},_addComplexObserverEffects:function(e){if(e
)for(var t,n=0;n<e.length&&(t=e[n]);n++)this._addComplexObserverEffect(t)},_addC
omplexObserverEffect:function(e){var t=this._parseMethod(e);if(!t)throw new Erro
r("Malformed observer expression '"+e+"'");for(var n,r=t.dynamicFn,s=0;s<t.args.
length&&(n=t.args[s]);s++)this._addPropertyEffect(n.model,"complexObserver",{met
hod:t.method,args:t.args,trigger:n,dynamicFn:r});r&&this._addPropertyEffect(t.me
thod,"complexObserver",{method:t.method,args:t.args,trigger:null,dynamicFn:r})},
_addAnnotationEffects:function(e){for(var t,n=0;n<e.length&&(t=e[n]);n++)for(var
r,s=t.bindings,i=0;i<s.length&&(r=s[i]);i++)this._addAnnotationEffect(r,n)},_ad
dAnnotationEffect:function(e,t){Polymer.Bind._shouldAddListener(e)&&Polymer.Bind
._addAnnotatedListener(this,t,e.name,e.parts[0].value,e.parts[0].event,e.parts[0
].negate);for(var n=0;n<e.parts.length;n++){var r=e.parts[n];r.signature?this._a
ddAnnotatedComputationEffect(e,r,t):r.literal||("attribute"===e.kind&&"-"===e.na
me[0]?this._warn(this._logf("_addAnnotationEffect","Cannot set attribute "+e.nam
e+' because "-" is not a valid attribute starting character')):this._addProperty
Effect(r.model,"annotation",{kind:e.kind,index:t,name:e.name,propertyName:e.prop
ertyName,value:r.value,isCompound:e.isCompound,compoundIndex:r.compoundIndex,eve
nt:r.event,customEvent:r.customEvent,negate:r.negate}))}},_addAnnotatedComputati
onEffect:function(e,t,n){var r=t.signature;if(r.static)this.__addAnnotatedComput
ationEffect("__static__",n,e,t,null);else{for(var s,i=0;i<r.args.length&&(s=r.ar
gs[i]);i++)s.literal||this.__addAnnotatedComputationEffect(s.model,n,e,t,s);r.dy
namicFn&&this.__addAnnotatedComputationEffect(r.method,n,e,t,null)}},__addAnnota
tedComputationEffect:function(e,t,n,r,s){this._addPropertyEffect(e,"annotatedCom
putation",{index:t,isCompound:n.isCompound,compoundIndex:r.compoundIndex,kind:n.
kind,name:n.name,negate:r.negate,method:r.signature.method,args:r.signature.args
,trigger:s,dynamicFn:r.signature.dynamicFn})},_parseMethod:function(e){var t=e.m
atch(/([^\s]+?)\(([\s\S]*)\)/);if(t){var n={method:t[1],static:!0};if(this.getPr
opertyInfo(n.method)!==Polymer.nob&&(n.static=!1,n.dynamicFn=!0),t[2].trim()){va
r r=t[2].replace(/\\,/g,",").split(",");return this._parseArgs(r,n)}return
n.args=Polymer.nar,n}},_parseArgs:function(e,t){return t.args=e.map(function(e)
{var n=this._parseArg(e);return n.literal||(t.static=!1),n},this),t},_parseArg:f
unction(e){var t=e.trim().replace(/,/g,",").replace(/\\(.)/g,"$1"),n={name
:t},r=t[0];switch("-"===r&&(r=t[1]),r>="0"&&r<="9"&&(r="#"),r){case"'":case'"':n
.value=t.slice(1,-1),n.literal=!0;break;case"#":n.value=Number(t),n.literal=!0}r
eturn n.literal||(n.model=Polymer.Path.root(t),n.structured=Polymer.Path.isDeep(
t),n.structured&&(n.wildcard=".*"==t.slice(-2),n.wildcard&&(n.name=t.slice(0,-2)
))),n},_marshalInstanceEffects:function(){Polymer.Bind.prepareInstance(this),thi
s._bindListeners&&Polymer.Bind.setupBindListeners(this)},_applyEffectValue:funct
ion(e,t){var n=this._nodes[e.index],r=e.name;if(t=this._computeFinalAnnotationVa
lue(n,r,t,e),"attribute"==e.kind)this.serializeValueToAttribute(t,r,n);else{var
s=n._propertyInfo&&n._propertyInfo[r];if(s&&s.readOnly)return;this.__setProperty
(r,t,!1,n)}},_computeFinalAnnotationValue:function(e,t,n,r){if(r.negate&&(n=!n),
r.isCompound){var s=e.__compoundStorage__[t];s[r.compoundIndex]=n,n=s.join("")}r
eturn"attribute"!==r.kind&&("className"===t&&(n=this._scopeElementClass(e,n)),("
textContent"===t||"input"==e.localName&&"value"==t)&&(n=void 0==n?"":n)),n},_exe
cuteStaticEffects:function(){this._propertyEffects&&this._propertyEffects.__stat
ic__&&this._effectEffects("__static__",null,this._propertyEffects.__static__)}})
,function(){var e=Polymer.Settings.usePolyfillProto;Polymer.Base._addFeature({_s
etupConfigure:function(e){if(this._config={},this._handlers=[],this._aboveConfig
=null,e)for(var t in e)void 0!==e[t]&&(this._config[t]=e[t])},_marshalAttributes
:function(){this._takeAttributesToModel(this._config)},_attributeChangedImpl:fun
ction(e){var t=this._clientsReadied?this:this._config;this._setAttributeToProper
ty(t,e)},_configValue:function(e,t){var n=this._propertyInfo[e];n&&n.readOnly||(
this._config[e]=t)},_beforeClientsReady:function(){this._configure()},_configure
:function(){this._configureAnnotationReferences(),this._configureInstancePropert
ies(),this._aboveConfig=this.mixin({},this._config);for(var e={},t=0;t<this.beha
viors.length;t++)this._configureProperties(this.behaviors[t].properties,e);this.
_configureProperties(this.properties,e),this.mixin(e,this._aboveConfig),this._co
nfig=e,this._clients&&this._clients.length&&this._distributeConfig(this._config)
},_configureInstanceProperties:function(){for(var t in this._propertyEffects)!e&
&this.hasOwnProperty(t)&&(this._configValue(t,this[t]), | 2 },_distributeDirtyRoots:function(){for(var e,t=this.shadyRoot._dirtyRoots,o=0,i=
t.length;o<i&&(e=t[o]);o++)e._distributeContent();this.shadyRoot._dirtyRoots=[]}
,_finishDistribute:function(){if(this._useContent){if(this.shadyRoot._distributi
onClean=!0,h.hasInsertionPoint(this.shadyRoot))this._composeTree(),d(this.shadyR
oot);else if(this.shadyRoot._hasDistributed){var e=this._composeNode(this);this.
_updateChildNodes(this,e)}else u.Composed.clearChildNodes(this),this.appendChild
(this.shadyRoot);this.shadyRoot._hasDistributed||a(this),this.shadyRoot._hasDist
ributed=!0}},elementMatches:function(e,t){return t=t||this,h.matchesSelector.cal
l(t,e)},_resetDistribution:function(){for(var e=u.Logical.getChildNodes(this),o=
0;o<e.length;o++){var i=e[o];i._destinationInsertionPoints&&(i._destinationInser
tionPoints=void 0),n(i)&&t(i)}for(var s=this.shadyRoot,r=s._insertionPoints,d=0;
d<r.length;d++)r[d]._distributedNodes=[]},_collectPool:function(){for(var e=[],t
=u.Logical.getChildNodes(this),o=0;o<t.length;o++){var i=t[o];n(i)?e.push.apply(
e,i._distributedNodes):e.push(i)}return e},_distributePool:function(e,t){for(var
i,n=e._insertionPoints,s=0,r=n.length;s<r&&(i=n[s]);s++)this._distributeInserti
onPoint(i,t),o(i,this)},_distributeInsertionPoint:function(t,o){for(var i,n=!1,s
=0,r=o.length;s<r;s++)i=o[s],i&&this._matchesContentSelect(i,t)&&(e(i,t),o[s]=vo
id 0,n=!0);if(!n)for(var d=u.Logical.getChildNodes(t),a=0;a<d.length;a++)e(d[a],
t)},_composeTree:function(){this._updateChildNodes(this,this._composeNode(this))
;for(var e,t,o=this.shadyRoot._insertionPoints,i=0,n=o.length;i<n&&(e=o[i]);i++)
t=u.Logical.getParentNode(e),t._useContent||t===this||t===this.shadyRoot||this._
updateChildNodes(t,this._composeNode(t))},_composeNode:function(e){for(var t=[],
o=u.Logical.getChildNodes(e.shadyRoot||e),s=0;s<o.length;s++){var r=o[s];if(n(r)
)for(var d=r._distributedNodes,a=0;a<d.length;a++){var l=d[a];i(r,l)&&t.push(l)}
else t.push(r)}return t},_updateChildNodes:function(e,t){for(var o,i=u.Composed.
getChildNodes(e),n=Polymer.ArraySplice.calculateSplices(t,i),s=0,r=0;s<n.length&
&(o=n[s]);s++){for(var d,a=0;a<o.removed.length&&(d=o.removed[a]);a++)u.Composed
.getParentNode(d)===e&&u.Composed.removeChild(e,d),i.splice(o.index+r,1);r-=o.ad
dedCount}for(var o,l,s=0;s<n.length&&(o=n[s]);s++)for(l=i[o.index],a=o.index,d;a
<o.index+o.addedCount;a++)d=t[a],u.Composed.insertBefore(e,d,l),i.splice(a,0,d)}
,_matchesContentSelect:function(e,t){var o=t.getAttribute("select");if(!o)return
!0;if(o=o.trim(),!o)return!0;if(!(e instanceof Element))return!1;var i=/^(:not\(
)?[*.#[a-zA-Z_|]/;return!!i.test(o)&&this.elementMatches(o,e)},_elementAdd:funct
ion(){},_elementRemove:function(){}});var c=window.CustomElements&&!CustomElemen
ts.useNative}(),Polymer.Settings.useShadow&&Polymer.Base._addFeature({_poolConte
nt:function(){},_beginDistribute:function(){},distributeContent:function(){},_di
stributeContent:function(){},_finishDistribute:function(){},_createLocalRoot:fun
ction(){this.createShadowRoot(),this.shadowRoot.appendChild(this.root),this.root
=this.shadowRoot}}),Polymer.Async={_currVal:0,_lastVal:0,_callbacks:[],_twiddleC
ontent:0,_twiddle:document.createTextNode(""),run:function(e,t){return t>0?~setT
imeout(e,t):(this._twiddle.textContent=this._twiddleContent++,this._callbacks.pu
sh(e),this._currVal++)},cancel:function(e){if(e<0)clearTimeout(~e);else{var t=e-
this._lastVal;if(t>=0){if(!this._callbacks[t])throw"invalid async handle: "+e;th
is._callbacks[t]=null}}},_atEndOfMicrotask:function(){for(var e=this._callbacks.
length,t=0;t<e;t++){var o=this._callbacks[t];if(o)try{o()}catch(e){throw t++,thi
s._callbacks.splice(0,t),this._lastVal+=t,this._twiddle.textContent=this._twiddl
eContent++,e}}this._callbacks.splice(0,e),this._lastVal+=e}},new window.Mutation
Observer(function(){Polymer.Async._atEndOfMicrotask()}).observe(Polymer.Async._t
widdle,{characterData:!0}),Polymer.Debounce=function(){function e(e,t,i){return
e?e.stop():e=new o(this),e.go(t,i),e}var t=Polymer.Async,o=function(e){this.cont
ext=e;var t=this;this.boundComplete=function(){t.complete()}};return o.prototype
={go:function(e,o){var i;this.finish=function(){t.cancel(i)},i=t.run(this.boundC
omplete,o),this.callback=e},stop:function(){this.finish&&(this.finish(),this.fin
ish=null,this.callback=null)},complete:function(){if(this.finish){var e=this.cal
lback;this.stop(),e.call(this.context)}}},e}(),Polymer.Base._addFeature({_setupD
ebouncers:function(){this._debouncers={}},debounce:function(e,t,o){return this._
debouncers[e]=Polymer.Debounce.call(this,this._debouncers[e],t,o)},isDebouncerAc
tive:function(e){var t=this._debouncers[e];return!(!t||!t.finish)},flushDebounce
r:function(e){var t=this._debouncers[e];t&&t.complete()},cancelDebouncer:functio
n(e){var t=this._debouncers[e];t&&t.stop()}}),Polymer.DomModule=document.createE
lement("dom-module"),Polymer.Base._addFeature({_registerFeatures:function(){this
._prepIs(),this._prepBehaviors(),this._prepConstructor(),this._prepTemplate(),th
is._prepShady(),this._prepPropertyInfo()},_prepBehavior:function(e){this._addHos
tAttributes(e.hostAttributes)},_initFeatures:function(){this._registerHost(),thi
s._template&&(this._poolContent(),this._beginHosting(),this._stampTemplate(),thi
s._endHosting()),this._marshalHostAttributes(),this._setupDebouncers(),this._mar
shalBehaviors(),this._tryReady()},_marshalBehavior:function(e){}})</script> <scr
ipt>Polymer.nar=[],Polymer.Annotations={parseAnnotations:function(e){var t=[],n=
e._content||e.content;return this._parseNodeAnnotations(n,t,e.hasAttribute("stri
p-whitespace")),t},_parseNodeAnnotations:function(e,t,n){return e.nodeType===Nod
e.TEXT_NODE?this._parseTextNodeAnnotation(e,t):this._parseElementAnnotations(e,t
,n)},_bindingRegex:function(){var e="(?:[a-zA-Z_$][\\w.:$\\-*]*)",t="(?:[-+]?[0-
9]*\\.?[0-9]+(?:[eE][-+]?[0-9]+)?)",n="(?:'(?:[^'\\\\]|\\\\.)*')",r='(?:"(?:[^"\
\\\]|\\\\.)*")',s="(?:"+n+"|"+r+")",i="(?:"+e+"|"+t+"|"+s+"\\s*)",o="(?:"+i+"(?:
,\\s*"+i+")*)",a="(?:\\(\\s*(?:"+o+"?)\\)\\s*)",l="("+e+"\\s*"+a+"?)",c="(\\[\\[
|{{)\\s*",h="(?:]]|}})",u="(?:(!)\\s*)?",f=c+u+l+h;return new RegExp(f,"g")}(),_
parseBindings:function(e){for(var t,n=this._bindingRegex,r=[],s=0;null!==(t=n.ex
ec(e));){t.index>s&&r.push({literal:e.slice(s,t.index)});var i,o,a,l=t[1][0],c=B
oolean(t[2]),h=t[3].trim();"{"==l&&(a=h.indexOf("::"))>0&&(o=h.substring(a+2),h=
h.substring(0,a),i=!0),r.push({compoundIndex:r.length,value:h,mode:l,negate:c,ev
ent:o,customEvent:i}),s=n.lastIndex}if(s&&s<e.length){var u=e.substring(s);u&&r.
push({literal:u})}if(r.length)return r},_literalFromParts:function(e){for(var t=
"",n=0;n<e.length;n++){var r=e[n].literal;t+=r||""}return t},_parseTextNodeAnnot
ation:function(e,t){var n=this._parseBindings(e.textContent);if(n){e.textContent
=this._literalFromParts(n)||" ";var r={bindings:[{kind:"text",name:"textContent"
,parts:n,isCompound:1!==n.length}]};return t.push(r),r}},_parseElementAnnotation
s:function(e,t,n){var r={bindings:[],events:[]};return"content"===e.localName&&(
t._hasContent=!0),this._parseChildNodesAnnotations(e,r,t,n),e.attributes&&(this.
_parseNodeAttributeAnnotations(e,r,t),this.prepElement&&this.prepElement(e)),(r.
bindings.length||r.events.length||r.id)&&t.push(r),r},_parseChildNodesAnnotation
s:function(e,t,n,r){if(e.firstChild)for(var s=e.firstChild,i=0;s;){var o=s.nextS
ibling;if("template"!==s.localName||s.hasAttribute("preserve-content")||this._pa
rseTemplate(s,i,n,t),"slot"==s.localName&&(s=this._replaceSlotWithContent(s)),s.
nodeType===Node.TEXT_NODE){for(var a=o;a&&a.nodeType===Node.TEXT_NODE;)s.textCon
tent+=a.textContent,o=a.nextSibling,e.removeChild(a),a=o;r&&!s.textContent.trim(
)&&(e.removeChild(s),i--)}if(s.parentNode){var l=this._parseNodeAnnotations(s,n,
r);l&&(l.parent=t,l.index=i)}s=o,i++}},_replaceSlotWithContent:function(e){for(v
ar t=e.ownerDocument.createElement("content");e.firstChild;)t.appendChild(e.firs
tChild);for(var n=e.attributes,r=0;r<n.length;r++){var s=n[r];t.setAttribute(s.n
ame,s.value)}var i=e.getAttribute("name"),o=i?"[slot='"+i+"']":":not([slot])";re
turn t.setAttribute("select",o),e.parentNode.replaceChild(t,e),t},_parseTemplate
:function(e,t,n,r){var s=document.createDocumentFragment();s._notes=this.parseAn
notations(e),s.appendChild(e.content),n.push({bindings:Polymer.nar,events:Polyme
r.nar,templateContent:s,parent:r,index:t})},_parseNodeAttributeAnnotations:funct
ion(e,t){for(var n,r=Array.prototype.slice.call(e.attributes),s=r.length-1;n=r[s
];s--){var i,o=n.name,a=n.value;"on-"===o.slice(0,3)?(e.removeAttribute(o),t.eve
nts.push({name:o.slice(3),value:a})):(i=this._parseNodeAttributeAnnotation(e,o,a
))?t.bindings.push(i):"id"===o&&(t.id=a)}},_parseNodeAttributeAnnotation:functio
n(e,t,n){var r=this._parseBindings(n);if(r){var s=t,i="property";"$"==t[t.length
-1]&&(t=t.slice(0,-1),i="attribute");var o=this._literalFromParts(r);o&&"attribu
te"==i&&e.setAttribute(t,o),"input"===e.localName&&"value"===s&&e.setAttribute(s
,""),e.removeAttribute(s);var a=Polymer.CaseMap.dashToCamelCase(t);return"proper
ty"===i&&(t=a),{kind:i,name:t,propertyName:a,parts:r,literal:o,isCompound:1!==r.
length}}},findAnnotatedNode:function(e,t){var n=t.parent&&Polymer.Annotations.fi
ndAnnotatedNode(e,t.parent);if(!n)return e;for(var r=n.firstChild,s=0;r;r=r.next
Sibling)if(t.index===s++)return r}},function(){function e(e,t){return e.replace(
a,function(e,r,s,i){return r+"'"+n(s.replace(/["']/g,""),t)+"'"+i})}function t(t
,r){for(var s in l)for(var i,o,a,c=l[s],u=0,f=c.length;u<f&&(i=c[u]);u++)"*"!==s
&&t.localName!==s||(o=t.attributes[i],a=o&&o.value,a&&a.search(h)<0&&(o.value="s
tyle"===i?e(a,r):n(a,r)))}function n(e,t){if(e&&c.test(e))return e;var n=s(t);re
turn n.href=e,n.href||e}function r(e,t){return i||(i=document.implementation.cre
ateHTMLDocument("temp"),o=i.createElement("base"),i.head.appendChild(o)),o.href=
t,n(e,i)}function s(e){return e.__urlResolver||(e.__urlResolver=e.createElement(
"a"))}var i,o,a=/(url\()([^)]*)(\))/g,l={"*":["href","src","style","url"],form:[
"action"]},c=/(^\/)|(^#)|(^[\w-\d]*:)/,h=/\{\{|\[\[/;Polymer.ResolveUrl={resolve
Css:e,resolveAttrs:t,resolveUrl:r}}(),Polymer.Path={root:function(e){var t=e.ind
exOf(".");return t===-1?e:e.slice(0,t)},isDeep:function(e){return e.indexOf(".")
!==-1},isAncestor:function(e,t){return 0===e.indexOf(t+".")},isDescendant:functi
on(e,t){return 0===t.indexOf(e+".")},translate:function(e,t,n){return t+n.slice(
e.length)},matches:function(e,t,n){return e===n||this.isAncestor(e,n)||Boolean(t
)&&this.isDescendant(e,n)}},Polymer.Base._addFeature({_prepAnnotations:function(
){if(this._template){var e=this;Polymer.Annotations.prepElement=function(t){e._p
repElement(t)},this._template._content&&this._template._content._notes?this._not
es=this._template._content._notes:(this._notes=Polymer.Annotations.parseAnnotati
ons(this._template),this._processAnnotations(this._notes)),Polymer.Annotations.p
repElement=null}else this._notes=[]},_processAnnotations:function(e){for(var t=0
;t<e.length;t++){for(var n=e[t],r=0;r<n.bindings.length;r++)for(var s=n.bindings
[r],i=0;i<s.parts.length;i++){var o=s.parts[i];if(!o.literal){var a=this._parseM
ethod(o.value);a?o.signature=a:o.model=Polymer.Path.root(o.value)}}if(n.template
Content){this._processAnnotations(n.templateContent._notes);var l=n.templateCont
ent._parentProps=this._discoverTemplateParentProps(n.templateContent._notes),c=[
];for(var h in l){var u="_parent_"+h;c.push({index:n.index,kind:"property",name:
u,propertyName:u,parts:[{mode:"{",model:h,value:h}]})}n.bindings=n.bindings.conc
at(c)}}},_discoverTemplateParentProps:function(e){for(var t,n={},r=0;r<e.length&
&(t=e[r]);r++){for(var s,i=0,o=t.bindings;i<o.length&&(s=o[i]);i++)for(var a,l=0
,c=s.parts;l<c.length&&(a=c[l]);l++)if(a.signature){for(var h=a.signature.args,u
=0;u<h.length;u++){var f=h[u].model;f&&(n[f]=!0)}a.signature.dynamicFn&&(n[a.sig
nature.method]=!0)}else a.model&&(n[a.model]=!0);if(t.templateContent){var p=t.t
emplateContent._parentProps;Polymer.Base.mixin(n,p)}}return n},_prepElement:func
tion(e){Polymer.ResolveUrl.resolveAttrs(e,this._template.ownerDocument)},_findAn
notatedNode:Polymer.Annotations.findAnnotatedNode,_marshalAnnotationReferences:f
unction(){this._template&&(this._marshalIdNodes(),this._marshalAnnotatedNodes(),
this._marshalAnnotatedListeners())},_configureAnnotationReferences:function(){fo
r(var e=this._notes,t=this._nodes,n=0;n<e.length;n++){var r=e[n],s=t[n];this._co
nfigureTemplateContent(r,s),this._configureCompoundBindings(r,s)}},_configureTem
plateContent:function(e,t){e.templateContent&&(t._content=e.templateContent)},_c
onfigureCompoundBindings:function(e,t){for(var n=e.bindings,r=0;r<n.length;r++){
var s=n[r];if(s.isCompound){for(var i=t.__compoundStorage__||(t.__compoundStorag
e__={}),o=s.parts,a=new Array(o.length),l=0;l<o.length;l++)a[l]=o[l].literal;var
c=s.name;i[c]=a,s.literal&&"property"==s.kind&&(t._configValue?t._configValue(c
,s.literal):t[c]=s.literal)}}},_marshalIdNodes:function(){this.$={};for(var e,t=
0,n=this._notes.length;t<n&&(e=this._notes[t]);t++)e.id&&(this.$[e.id]=this._fin
dAnnotatedNode(this.root,e))},_marshalAnnotatedNodes:function(){if(this._notes&&
this._notes.length){for(var e=new Array(this._notes.length),t=0;t<this._notes.le
ngth;t++)e[t]=this._findAnnotatedNode(this.root,this._notes[t]);this._nodes=e}},
_marshalAnnotatedListeners:function(){for(var e,t=0,n=this._notes.length;t<n&&(e
=this._notes[t]);t++)if(e.events&&e.events.length)for(var r,s=this._findAnnotate
dNode(this.root,e),i=0,o=e.events;i<o.length&&(r=o[i]);i++)this.listen(s,r.name,
r.value)}}),Polymer.Base._addFeature({listeners:{},_listenListeners:function(e){
var t,n,r;for(r in e)r.indexOf(".")<0?(t=this,n=r):(n=r.split("."),t=this.$[n[0]
],n=n[1]),this.listen(t,n,e[r])},listen:function(e,t,n){var r=this._recallEventH
andler(this,t,e,n);r||(r=this._createEventHandler(e,t,n)),r._listening||(this._l
isten(e,t,r),r._listening=!0)},_boundListenerKey:function(e,t){return e+":"+t},_
recordEventHandler:function(e,t,n,r,s){var i=e.__boundListeners;i||(i=e.__boundL
isteners=new WeakMap);var o=i.get(n);o||(o={},i.set(n,o));var a=this._boundListe
nerKey(t,r);o[a]=s},_recallEventHandler:function(e,t,n,r){var s=e.__boundListene
rs;if(s){var i=s.get(n);if(i){var o=this._boundListenerKey(t,r);return i[o]}}},_
createEventHandler:function(e,t,n){var r=this,s=function(e){r[n]?r[n](e,e.detail
):r._warn(r._logf("_createEventHandler","listener method `"+n+"` not defined"))}
;return s._listening=!1,this._recordEventHandler(r,t,e,n,s),s},unlisten:function
(e,t,n){var r=this._recallEventHandler(this,t,e,n);r&&(this._unlisten(e,t,r),r._
listening=!1)},_listen:function(e,t,n){e.addEventListener(t,n)},_unlisten:functi
on(e,t,n){e.removeEventListener(t,n)}}),function(){"use strict";function e(e){fo
r(var t,n=g?["click"]:m,r=0;r<n.length;r++)t=n[r],e?document.addEventListener(t,
P,!0):document.removeEventListener(t,P,!0)}function t(){S.mouse.mouseIgnoreJob||
e(!0);var t=function(){e(),S.mouse.target=null,S.mouse.mouseIgnoreJob=null};S.mo
use.mouseIgnoreJob=Polymer.Debounce(S.mouse.mouseIgnoreJob,t,d)}function n(e){va
r t=e.type;if(m.indexOf(t)===-1)return!1;if("mousemove"===t){var n=void 0===e.bu
ttons?1:e.buttons;return e instanceof window.MouseEvent&&!v&&(n=y[e.which]||0),B
oolean(1&n)}var r=void 0===e.button?0:e.button;return 0===r}function r(e){if("cl
ick"===e.type){if(0===e.detail)return!0;var t=C.findOriginalTarget(e),n=t.getBou
ndingClientRect(),r=e.pageX,s=e.pageY;return!(r>=n.left&&r<=n.right&&s>=n.top&&s
<=n.bottom)}return!1}function s(e){for(var t,n=Polymer.dom(e).path,r="auto",s=0;
s<n.length;s++)if(t=n[s],t[u]){r=t[u];break}return r}function i(e,t,n){e.movefn=
t,e.upfn=n,document.addEventListener("mousemove",t),document.addEventListener("m
ouseup",n)}function o(e){document.removeEventListener("mousemove",e.movefn),docu
ment.removeEventListener("mouseup",e.upfn),e.movefn=null,e.upfn=null}var a=Polym
er.DomApi.wrap,l="string"==typeof document.head.style.touchAction,c="__polymerGe
stures",h="__polymerGesturesHandled",u="__polymerGesturesTouchAction",f=25,p=5,_
=2,d=2500,m=["mousedown","mousemove","mouseup","click"],y=[0,1,4,2],v=function()
{try{return 1===new MouseEvent("test",{buttons:1}).buttons}catch(e){return!1}}()
,g=navigator.userAgent.match(/iP(?:[oa]d|hone)|Android/),P=function(e){var t=e.s
ourceCapabilities;if((!t||t.firesTouchEvents)&&(e[h]={skip:!0},"click"===e.type)
){for(var n=Polymer.dom(e).path,r=0;r<n.length;r++)if(n[r]===S.mouse.target)retu
rn;e.preventDefault(),e.stopPropagation()}},S={mouse:{target:null,mouseIgnoreJob
:null},touch:{x:0,y:0,id:-1,scrollDecided:!1}},C={gestures:{},recognizers:[],dee
pTargetFind:function(e,t){for(var n=document.elementFromPoint(e,t),r=n;r&&r.shad
owRoot;)r=r.shadowRoot.elementFromPoint(e,t),r&&(n=r);return n},findOriginalTarg
et:function(e){return e.path?e.path[0]:e.target},handleNative:function(e){var n,
r=e.type,s=a(e.currentTarget),i=s[c];if(i){var o=i[r];if(o){if(!e[h]&&(e[h]={},"
touch"===r.slice(0,5))){var u=e.changedTouches[0];if("touchstart"===r&&1===e.tou
ches.length&&(S.touch.id=u.identifier),S.touch.id!==u.identifier)return;l||"touc
hstart"!==r&&"touchmove"!==r||C.handleTouchAction(e),"touchend"===r&&(S.mouse.ta
rget=Polymer.dom(e).rootTarget,t())}if(n=e[h],!n.skip){for(var f,p=C.recognizers
,_=0;_<p.length;_++)f=p[_],o[f.name]&&!n[f.name]&&f.flow&&f.flow.start.indexOf(e
.type)>-1&&f.reset&&f.reset();for(_=0,f;_<p.length;_++)f=p[_],o[f.name]&&!n[f.na
me]&&(n[f.name]=!0,f[r](e))}}}},handleTouchAction:function(e){var t=e.changedTou
ches[0],n=e.type;if("touchstart"===n)S.touch.x=t.clientX,S.touch.y=t.clientY,S.t
ouch.scrollDecided=!1;else if("touchmove"===n){if(S.touch.scrollDecided)return;S
.touch.scrollDecided=!0;var r=s(e),i=!1,o=Math.abs(S.touch.x-t.clientX),a=Math.a
bs(S.touch.y-t.clientY);e.cancelable&&("none"===r?i=!0:"pan-x"===r?i=a>o:"pan-y"
===r&&(i=o>a)),i?e.preventDefault():C.prevent("track")}},add:function(e,t,n){e=a
(e);var r=this.gestures[t],s=r.deps,i=r.name,o=e[c];o||(e[c]=o={});for(var l,h,u
=0;u<s.length;u++)l=s[u],g&&m.indexOf(l)>-1&&"click"!==l||(h=o[l],h||(o[l]=h={_c
ount:0}),0===h._count&&e.addEventListener(l,this.handleNative),h[i]=(h[i]||0)+1,
h._count=(h._count||0)+1);e.addEventListener(t,n),r.touchAction&&this.setTouchAc
tion(e,r.touchAction)},remove:function(e,t,n){e=a(e);var r=this.gestures[t],s=r.
deps,i=r.name,o=e[c];if(o)for(var l,h,u=0;u<s.length;u++)l=s[u],h=o[l],h&&h[i]&&
(h[i]=(h[i]||1)-1,h._count=(h._count||1)-1,0===h._count&&e.removeEventListener(l
,this.handleNative));e.removeEventListener(t,n)},register:function(e){this.recog
nizers.push(e);for(var t=0;t<e.emits.length;t++)this.gestures[e.emits[t]]=e},fin
dRecognizerByEvent:function(e){for(var t,n=0;n<this.recognizers.length;n++){t=th
is.recognizers[n];for(var r,s=0;s<t.emits.length;s++)if(r=t.emits[s],r===e)retur
n t}return null},setTouchAction:function(e,t){l&&(e.style.touchAction=t),e[u]=t}
,fire:function(e,t,n){var r=Polymer.Base.fire(t,n,{node:e,bubbles:!0,cancelable:
!0});if(r.defaultPrevented){var s=n.preventer||n.sourceEvent;s&&s.preventDefault
&&s.preventDefault()}},prevent:function(e){var t=this.findRecognizerByEvent(e);t
.info&&(t.info.prevent=!0)},resetMouseCanceller:function(){S.mouse.mouseIgnoreJo
b&&S.mouse.mouseIgnoreJob.complete()}};C.register({name:"downup",deps:["mousedow
n","touchstart","touchend"],flow:{start:["mousedown","touchstart"],end:["mouseup
","touchend"]},emits:["down","up"],info:{movefn:null,upfn:null},reset:function()
{o(this.info)},mousedown:function(e){if(n(e)){var t=C.findOriginalTarget(e),r=th
is,s=function(e){n(e)||(r.fire("up",t,e),o(r.info))},a=function(e){n(e)&&r.fire(
"up",t,e),o(r.info)};i(this.info,s,a),this.fire("down",t,e)}},touchstart:functio
n(e){this.fire("down",C.findOriginalTarget(e),e.changedTouches[0],e)},touchend:f
unction(e){this.fire("up",C.findOriginalTarget(e),e.changedTouches[0],e)},fire:f
unction(e,t,n,r){C.fire(t,e,{x:n.clientX,y:n.clientY,sourceEvent:n,preventer:r,p
revent:function(e){return C.prevent(e)}})}}),C.register({name:"track",touchActio
n:"none",deps:["mousedown","touchstart","touchmove","touchend"],flow:{start:["mo
usedown","touchstart"],end:["mouseup","touchend"]},emits:["track"],info:{x:0,y:0
,state:"start",started:!1,moves:[],addMove:function(e){this.moves.length>_&&this
.moves.shift(),this.moves.push(e)},movefn:null,upfn:null,prevent:!1},reset:funct
ion(){this.info.state="start",this.info.started=!1,this.info.moves=[],this.info.
x=0,this.info.y=0,this.info.prevent=!1,o(this.info)},hasMovedEnough:function(e,t
){if(this.info.prevent)return!1;if(this.info.started)return!0;var n=Math.abs(thi
s.info.x-e),r=Math.abs(this.info.y-t);return n>=p||r>=p},mousedown:function(e){i
f(n(e)){var t=C.findOriginalTarget(e),r=this,s=function(e){var s=e.clientX,i=e.c
lientY;r.hasMovedEnough(s,i)&&(r.info.state=r.info.started?"mouseup"===e.type?"e
nd":"track":"start","start"===r.info.state&&C.prevent("tap"),r.info.addMove({x:s
,y:i}),n(e)||(r.info.state="end",o(r.info)),r.fire(t,e),r.info.started=!0)},a=fu
nction(e){r.info.started&&s(e),o(r.info)};i(this.info,s,a),this.info.x=e.clientX
,this.info.y=e.clientY}},touchstart:function(e){var t=e.changedTouches[0];this.i
nfo.x=t.clientX,this.info.y=t.clientY},touchmove:function(e){var t=C.findOrigina
lTarget(e),n=e.changedTouches[0],r=n.clientX,s=n.clientY;this.hasMovedEnough(r,s
)&&("start"===this.info.state&&C.prevent("tap"),this.info.addMove({x:r,y:s}),thi
s.fire(t,n),this.info.state="track",this.info.started=!0)},touchend:function(e){
var t=C.findOriginalTarget(e),n=e.changedTouches[0];this.info.started&&(this.inf
o.state="end",this.info.addMove({x:n.clientX,y:n.clientY}),this.fire(t,n,e))},fi
re:function(e,t,n){var r,s=this.info.moves[this.info.moves.length-2],i=this.info
.moves[this.info.moves.length-1],o=i.x-this.info.x,a=i.y-this.info.y,l=0;return
s&&(r=i.x-s.x,l=i.y-s.y),C.fire(e,"track",{state:this.info.state,x:t.clientX,y:t
.clientY,dx:o,dy:a,ddx:r,ddy:l,sourceEvent:t,preventer:n,hover:function(){return
C.deepTargetFind(t.clientX,t.clientY)}})}}),C.register({name:"tap",deps:["mouse
down","click","touchstart","touchend"],flow:{start:["mousedown","touchstart"],en
d:["click","touchend"]},emits:["tap"],info:{x:NaN,y:NaN,prevent:!1},reset:functi
on(){this.info.x=NaN,this.info.y=NaN,this.info.prevent=!1},save:function(e){this
.info.x=e.clientX,this.info.y=e.clientY},mousedown:function(e){n(e)&&this.save(e
)},click:function(e){n(e)&&this.forward(e)},touchstart:function(e){this.save(e.c
hangedTouches[0],e)},touchend:function(e){this.forward(e.changedTouches[0],e)},f
orward:function(e,t){var n=Math.abs(e.clientX-this.info.x),s=Math.abs(e.clientY-
this.info.y),i=C.findOriginalTarget(e);(isNaN(n)||isNaN(s)||n<=f&&s<=f||r(e))&&(
this.info.prevent||C.fire(i,"tap",{x:e.clientX,y:e.clientY,sourceEvent:e,prevent
er:t}))}});var E={x:"pan-x",y:"pan-y",none:"none",all:"auto"};Polymer.Base._addF
eature({_setupGestures:function(){this.__polymerGestures=null},_listen:function(
e,t,n){C.gestures[t]?C.add(e,t,n):e.addEventListener(t,n)},_unlisten:function(e,
t,n){C.gestures[t]?C.remove(e,t,n):e.removeEventListener(t,n)},setScrollDirectio
n:function(e,t){t=t||this,C.setTouchAction(t,E[e]||"auto")}}),Polymer.Gestures=C
}(),function(){"use strict";if(Polymer.Base._addFeature({$$:function(e){return P
olymer.dom(this.root).querySelector(e)},toggleClass:function(e,t,n){n=n||this,1=
=arguments.length&&(t=!n.classList.contains(e)),t?Polymer.dom(n).classList.add(e
):Polymer.dom(n).classList.remove(e)},toggleAttribute:function(e,t,n){n=n||this,
1==arguments.length&&(t=!n.hasAttribute(e)),t?Polymer.dom(n).setAttribute(e,""):
Polymer.dom(n).removeAttribute(e)},classFollows:function(e,t,n){n&&Polymer.dom(n
).classList.remove(e),t&&Polymer.dom(t).classList.add(e)},attributeFollows:funct
ion(e,t,n){n&&Polymer.dom(n).removeAttribute(e),t&&Polymer.dom(t).setAttribute(e
,"")},getEffectiveChildNodes:function(){return Polymer.dom(this).getEffectiveChi
ldNodes()},getEffectiveChildren:function(){var e=Polymer.dom(this).getEffectiveC
hildNodes();return e.filter(function(e){return e.nodeType===Node.ELEMENT_NODE})}
,getEffectiveTextContent:function(){for(var e,t=this.getEffectiveChildNodes(),n=
[],r=0;e=t[r];r++)e.nodeType!==Node.COMMENT_NODE&&n.push(Polymer.dom(e).textCont
ent);return n.join("")},queryEffectiveChildren:function(e){var t=Polymer.dom(thi
s).queryDistributedElements(e);return t&&t[0]},queryAllEffectiveChildren:functio
n(e){return Polymer.dom(this).queryDistributedElements(e)},getContentChildNodes:
function(e){var t=Polymer.dom(this.root).querySelector(e||"content");return t?Po
lymer.dom(t).getDistributedNodes():[]},getContentChildren:function(e){return thi
s.getContentChildNodes(e).filter(function(e){return e.nodeType===Node.ELEMENT_NO
DE})},fire:function(e,t,n){n=n||Polymer.nob;var r=n.node||this;t=null===t||void
0===t?{}:t;var s=void 0===n.bubbles||n.bubbles,i=Boolean(n.cancelable),o=n._useC
ache,a=this._getEvent(e,s,i,o);return a.detail=t,o&&(this.__eventCache[e]=null),
r.dispatchEvent(a),o&&(this.__eventCache[e]=a),a},__eventCache:{},_getEvent:func
tion(e,t,n,r){var s=r&&this.__eventCache[e];return s&&s.bubbles==t&&s.cancelable
==n||(s=new Event(e,{bubbles:Boolean(t),cancelable:n})),s},async:function(e,t){v
ar n=this;return Polymer.Async.run(function(){e.call(n)},t)},cancelAsync:functio
n(e){Polymer.Async.cancel(e)},arrayDelete:function(e,t){var n;if(Array.isArray(e
)){if(n=e.indexOf(t),n>=0)return e.splice(n,1)}else{var r=this._get(e);if(n=r.in
dexOf(t),n>=0)return this.splice(e,n,1)}},transform:function(e,t){t=t||this,t.st
yle.webkitTransform=e,t.style.transform=e},translate3d:function(e,t,n,r){r=r||th
is,this.transform("translate3d("+e+","+t+","+n+")",r)},importHref:function(e,t,n
,r){var s=document.createElement("link");s.rel="import",s.href=e;var i=Polymer.B
ase.importHref.imported=Polymer.Base.importHref.imported||{},o=i[s.href],a=o||s,
l=this;if(t){var c=function(e){return e.target.__firedLoad=!0,e.target.removeEve
ntListener("load",c),t.call(l,e)};a.addEventListener("load",c)}if(n){var h=funct
ion(e){return e.target.__firedError=!0,e.target.removeEventListener("error",h),n
.call(l,e)};a.addEventListener("error",h)}return o?(o.__firedLoad&&o.dispatchEve
nt(new Event("load")),o.__firedError&&o.dispatchEvent(new Event("error"))):(i[s.
href]=s,r=Boolean(r),r&&s.setAttribute("async",""),document.head.appendChild(s))
,a},create:function(e,t){var n=document.createElement(e);if(t)for(var r in t)n[r
]=t[r];return n},isLightDescendant:function(e){return this!==e&&this.contains(e)
&&Polymer.dom(this).getOwnerRoot()===Polymer.dom(e).getOwnerRoot()},isLocalDesce
ndant:function(e){return this.root===Polymer.dom(e).getOwnerRoot()}}),!Polymer.S
ettings.useNativeCustomElements){var e=Polymer.Base.importHref;Polymer.Base.impo
rtHref=function(t,n,r,s){CustomElements.ready=!1;var i=function(e){if(CustomElem
ents.upgradeDocumentTree(document),CustomElements.ready=!0,n)return n.call(this,
e)};return e.call(this,t,i,r,s)}}}(),Polymer.Bind={prepareModel:function(e){Poly
mer.Base.mixin(e,this._modelApi)},_modelApi:{_notifyChange:function(e,t,n){n=voi
d 0===n?this[e]:n,t=t||Polymer.CaseMap.camelToDashCase(e)+"-changed",this.fire(t
,{value:n},{bubbles:!1,cancelable:!1,_useCache:!0})},_propertySetter:function(e,
t,n,r){var s=this.__data__[e];return s===t||s!==s&&t!==t||(this.__data__[e]=t,"o
bject"==typeof t&&this._clearPath(e),this._propertyChanged&&this._propertyChange
d(e,t,s),n&&this._effectEffects(e,t,n,s,r)),s},__setProperty:function(e,t,n,r){r
=r||this;var s=r._propertyEffects&&r._propertyEffects[e];s?r._propertySetter(e,t
,s,n):r[e]!==t&&(r[e]=t)},_effectEffects:function(e,t,n,r,s){for(var i,o=0,a=n.l
ength;o<a&&(i=n[o]);o++)i.fn.call(this,e,this[e],i.effect,r,s)},_clearPath:funct
ion(e){for(var t in this.__data__)Polymer.Path.isDescendant(e,t)&&(this.__data__
[t]=void 0)}},ensurePropertyEffects:function(e,t){e._propertyEffects||(e._proper
tyEffects={});var n=e._propertyEffects[t];return n||(n=e._propertyEffects[t]=[])
,n},addPropertyEffect:function(e,t,n,r){var s=this.ensurePropertyEffects(e,t),i=
{kind:n,effect:r,fn:Polymer.Bind["_"+n+"Effect"]};return s.push(i),i},createBind
ings:function(e){var t=e._propertyEffects;if(t)for(var n in t){var r=t[n];r.sort
(this._sortPropertyEffects),this._createAccessors(e,n,r)}},_sortPropertyEffects:
function(){var e={compute:0,annotation:1,annotatedComputation:2,reflect:3,notify
:4,observer:5,complexObserver:6,function:7};return function(t,n){return e[t.kind
]-e[n.kind]}}(),_createAccessors:function(e,t,n){var r={get:function(){return th
is.__data__[t]}},s=function(e){this._propertySetter(t,e,n)},i=e.getPropertyInfo&
&e.getPropertyInfo(t);i&&i.readOnly?i.computed||(e["_set"+this.upper(t)]=s):r.se
t=s,Object.defineProperty(e,t,r)},upper:function(e){return e[0].toUpperCase()+e.
substring(1)},_addAnnotatedListener:function(e,t,n,r,s,i){e._bindListeners||(e._
bindListeners=[]);var o=this._notedListenerFactory(n,r,Polymer.Path.isDeep(r),i)
,a=s||Polymer.CaseMap.camelToDashCase(n)+"-changed";e._bindListeners.push({index
:t,property:n,path:r,changedFn:o,event:a})},_isEventBogus:function(e,t){return e
.path&&e.path[0]!==t},_notedListenerFactory:function(e,t,n,r){return function(s,
i,o){if(o){var a=Polymer.Path.translate(e,t,o);this._notifyPath(a,i)}else i=s[e]
,r&&(i=!i),n?this.__data__[t]!=i&&this.set(t,i):this[t]=i}},prepareInstance:func
tion(e){e.__data__=Object.create(null)},setupBindListeners:function(e){for(var t
,n=e._bindListeners,r=0,s=n.length;r<s&&(t=n[r]);r++){var i=e._nodes[t.index];th
is._addNotifyListener(i,e,t.event,t.changedFn)}},_addNotifyListener:function(e,t
,n,r){e.addEventListener(n,function(e){return t._notifyListener(r,e)})}},Polymer
.Base.extend(Polymer.Bind,{_shouldAddListener:function(e){return e.name&&"attrib
ute"!=e.kind&&"text"!=e.kind&&!e.isCompound&&"{"===e.parts[0].mode},_annotationE
ffect:function(e,t,n){e!=n.value&&(t=this._get(n.value),this.__data__[n.value]=t
),this._applyEffectValue(n,t)},_reflectEffect:function(e,t,n){this.reflectProper
tyToAttribute(e,n.attribute,t)},_notifyEffect:function(e,t,n,r,s){s||this._notif
yChange(e,n.event,t)},_functionEffect:function(e,t,n,r,s){n.call(this,e,t,r,s)},
_observerEffect:function(e,t,n,r){var s=this[n.method];s?s.call(this,t,r):this._
warn(this._logf("_observerEffect","observer method `"+n.method+"` not defined"))
},_complexObserverEffect:function(e,t,n){var r=this[n.method];if(r){var s=Polyme
r.Bind._marshalArgs(this.__data__,n,e,t);s&&r.apply(this,s)}else n.dynamicFn||th
is._warn(this._logf("_complexObserverEffect","observer method `"+n.method+"` not
defined"))},_computeEffect:function(e,t,n){var r=this[n.method];if(r){var s=Pol
ymer.Bind._marshalArgs(this.__data__,n,e,t);if(s){var i=r.apply(this,s);this.__s
etProperty(n.name,i)}}else n.dynamicFn||this._warn(this._logf("_computeEffect","
compute method `"+n.method+"` not defined"))},_annotatedComputationEffect:functi
on(e,t,n){var r=this._rootDataHost||this,s=r[n.method];if(s){var i=Polymer.Bind.
_marshalArgs(this.__data__,n,e,t);if(i){var o=s.apply(r,i);this._applyEffectValu
e(n,o)}}else n.dynamicFn||r._warn(r._logf("_annotatedComputationEffect","compute
method `"+n.method+"` not defined"))},_marshalArgs:function(e,t,n,r){for(var s=
[],i=t.args,o=i.length>1||t.dynamicFn,a=0,l=i.length;a<l;a++){var c,h=i[a],u=h.n
ame;if(h.literal?c=h.value:n===u?c=r:(c=e[u],void 0===c&&h.structured&&(c=Polyme
r.Base._get(u,e))),o&&void 0===c)return;if(h.wildcard){var f=Polymer.Path.isAnce
stor(n,u);s[a]={path:f?n:u,value:f?r:c,base:c}}else s[a]=c}return s}}),Polymer.B
ase._addFeature({_addPropertyEffect:function(e,t,n){var r=Polymer.Bind.addProper
tyEffect(this,e,t,n);r.pathFn=this["_"+r.kind+"PathEffect"]},_prepEffects:functi
on(){Polymer.Bind.prepareModel(this),this._addAnnotationEffects(this._notes)},_p
repBindings:function(){Polymer.Bind.createBindings(this)},_addPropertyEffects:fu
nction(e){if(e)for(var t in e){var n=e[t];if(n.observer&&this._addObserverEffect
(t,n.observer),n.computed&&(n.readOnly=!0,this._addComputedEffect(t,n.computed))
,n.notify&&this._addPropertyEffect(t,"notify",{event:Polymer.CaseMap.camelToDash
Case(t)+"-changed"}),n.reflectToAttribute){var r=Polymer.CaseMap.camelToDashCase
(t);"-"===r[0]?this._warn(this._logf("_addPropertyEffects","Property "+t+" canno
t be reflected to attribute "+r+' because "-" is not a valid starting attribute
name. Use a lowercase first letter for the property instead.')):this._addPropert
yEffect(t,"reflect",{attribute:r})}n.readOnly&&Polymer.Bind.ensurePropertyEffect
s(this,t)}},_addComputedEffect:function(e,t){for(var n,r=this._parseMethod(t),s=
r.dynamicFn,i=0;i<r.args.length&&(n=r.args[i]);i++)this._addPropertyEffect(n.mod
el,"compute",{method:r.method,args:r.args,trigger:n,name:e,dynamicFn:s});s&&this
._addPropertyEffect(r.method,"compute",{method:r.method,args:r.args,trigger:null
,name:e,dynamicFn:s})},_addObserverEffect:function(e,t){this._addPropertyEffect(
e,"observer",{method:t,property:e})},_addComplexObserverEffects:function(e){if(e
)for(var t,n=0;n<e.length&&(t=e[n]);n++)this._addComplexObserverEffect(t)},_addC
omplexObserverEffect:function(e){var t=this._parseMethod(e);if(!t)throw new Erro
r("Malformed observer expression '"+e+"'");for(var n,r=t.dynamicFn,s=0;s<t.args.
length&&(n=t.args[s]);s++)this._addPropertyEffect(n.model,"complexObserver",{met
hod:t.method,args:t.args,trigger:n,dynamicFn:r});r&&this._addPropertyEffect(t.me
thod,"complexObserver",{method:t.method,args:t.args,trigger:null,dynamicFn:r})},
_addAnnotationEffects:function(e){for(var t,n=0;n<e.length&&(t=e[n]);n++)for(var
r,s=t.bindings,i=0;i<s.length&&(r=s[i]);i++)this._addAnnotationEffect(r,n)},_ad
dAnnotationEffect:function(e,t){Polymer.Bind._shouldAddListener(e)&&Polymer.Bind
._addAnnotatedListener(this,t,e.name,e.parts[0].value,e.parts[0].event,e.parts[0
].negate);for(var n=0;n<e.parts.length;n++){var r=e.parts[n];r.signature?this._a
ddAnnotatedComputationEffect(e,r,t):r.literal||("attribute"===e.kind&&"-"===e.na
me[0]?this._warn(this._logf("_addAnnotationEffect","Cannot set attribute "+e.nam
e+' because "-" is not a valid attribute starting character')):this._addProperty
Effect(r.model,"annotation",{kind:e.kind,index:t,name:e.name,propertyName:e.prop
ertyName,value:r.value,isCompound:e.isCompound,compoundIndex:r.compoundIndex,eve
nt:r.event,customEvent:r.customEvent,negate:r.negate}))}},_addAnnotatedComputati
onEffect:function(e,t,n){var r=t.signature;if(r.static)this.__addAnnotatedComput
ationEffect("__static__",n,e,t,null);else{for(var s,i=0;i<r.args.length&&(s=r.ar
gs[i]);i++)s.literal||this.__addAnnotatedComputationEffect(s.model,n,e,t,s);r.dy
namicFn&&this.__addAnnotatedComputationEffect(r.method,n,e,t,null)}},__addAnnota
tedComputationEffect:function(e,t,n,r,s){this._addPropertyEffect(e,"annotatedCom
putation",{index:t,isCompound:n.isCompound,compoundIndex:r.compoundIndex,kind:n.
kind,name:n.name,negate:r.negate,method:r.signature.method,args:r.signature.args
,trigger:s,dynamicFn:r.signature.dynamicFn})},_parseMethod:function(e){var t=e.m
atch(/([^\s]+?)\(([\s\S]*)\)/);if(t){var n={method:t[1],static:!0};if(this.getPr
opertyInfo(n.method)!==Polymer.nob&&(n.static=!1,n.dynamicFn=!0),t[2].trim()){va
r r=t[2].replace(/\\,/g,",").split(",");return this._parseArgs(r,n)}return
n.args=Polymer.nar,n}},_parseArgs:function(e,t){return t.args=e.map(function(e)
{var n=this._parseArg(e);return n.literal||(t.static=!1),n},this),t},_parseArg:f
unction(e){var t=e.trim().replace(/,/g,",").replace(/\\(.)/g,"$1"),n={name
:t},r=t[0];switch("-"===r&&(r=t[1]),r>="0"&&r<="9"&&(r="#"),r){case"'":case'"':n
.value=t.slice(1,-1),n.literal=!0;break;case"#":n.value=Number(t),n.literal=!0}r
eturn n.literal||(n.model=Polymer.Path.root(t),n.structured=Polymer.Path.isDeep(
t),n.structured&&(n.wildcard=".*"==t.slice(-2),n.wildcard&&(n.name=t.slice(0,-2)
))),n},_marshalInstanceEffects:function(){Polymer.Bind.prepareInstance(this),thi
s._bindListeners&&Polymer.Bind.setupBindListeners(this)},_applyEffectValue:funct
ion(e,t){var n=this._nodes[e.index],r=e.name;if(t=this._computeFinalAnnotationVa
lue(n,r,t,e),"attribute"==e.kind)this.serializeValueToAttribute(t,r,n);else{var
s=n._propertyInfo&&n._propertyInfo[r];if(s&&s.readOnly)return;this.__setProperty
(r,t,!1,n)}},_computeFinalAnnotationValue:function(e,t,n,r){if(r.negate&&(n=!n),
r.isCompound){var s=e.__compoundStorage__[t];s[r.compoundIndex]=n,n=s.join("")}r
eturn"attribute"!==r.kind&&("className"===t&&(n=this._scopeElementClass(e,n)),("
textContent"===t||"input"==e.localName&&"value"==t)&&(n=void 0==n?"":n)),n},_exe
cuteStaticEffects:function(){this._propertyEffects&&this._propertyEffects.__stat
ic__&&this._effectEffects("__static__",null,this._propertyEffects.__static__)}})
,function(){var e=Polymer.Settings.usePolyfillProto;Polymer.Base._addFeature({_s
etupConfigure:function(e){if(this._config={},this._handlers=[],this._aboveConfig
=null,e)for(var t in e)void 0!==e[t]&&(this._config[t]=e[t])},_marshalAttributes
:function(){this._takeAttributesToModel(this._config)},_attributeChangedImpl:fun
ction(e){var t=this._clientsReadied?this:this._config;this._setAttributeToProper
ty(t,e)},_configValue:function(e,t){var n=this._propertyInfo[e];n&&n.readOnly||(
this._config[e]=t)},_beforeClientsReady:function(){this._configure()},_configure
:function(){this._configureAnnotationReferences(),this._configureInstancePropert
ies(),this._aboveConfig=this.mixin({},this._config);for(var e={},t=0;t<this.beha
viors.length;t++)this._configureProperties(this.behaviors[t].properties,e);this.
_configureProperties(this.properties,e),this.mixin(e,this._aboveConfig),this._co
nfig=e,this._clients&&this._clients.length&&this._distributeConfig(this._config)
},_configureInstanceProperties:function(){for(var t in this._propertyEffects)!e&
&this.hasOwnProperty(t)&&(this._configValue(t,this[t]), |
| 3 delete this[t])},_configureProperties:function(e,t){for(var n in e){var r=e[n];i
f(void 0!==r.value){var s=r.value;"function"==typeof s&&(s=s.call(this,this._con
fig)),t[n]=s}}},_distributeConfig:function(e){var t=this._propertyEffects;if(t)f
or(var n in e){var r=t[n];if(r)for(var s,i=0,o=r.length;i<o&&(s=r[i]);i++)if("an
notation"===s.kind){var a=this._nodes[s.effect.index],l=s.effect.propertyName,c=
"attribute"==s.effect.kind,h=a._propertyEffects&&a._propertyEffects[l];if(a._con
figValue&&(h||!c)){var u=n===s.effect.value?e[n]:this._get(s.effect.value,e);u=t
his._computeFinalAnnotationValue(a,l,u,s.effect),c&&(u=a.deserialize(this.serial
ize(u),a._propertyInfo[l].type)),a._configValue(l,u)}}}},_afterClientsReady:func
tion(){this._executeStaticEffects(),this._applyConfig(this._config,this._aboveCo
nfig),this._flushHandlers()},_applyConfig:function(e,t){for(var n in e)void 0===
this[n]&&this.__setProperty(n,e[n],n in t)},_notifyListener:function(e,t){if(!Po
lymer.Bind._isEventBogus(t,t.target)){var n,r;if(t.detail&&(n=t.detail.value,r=t
.detail.path),this._clientsReadied)return e.call(this,t.target,n,r);this._queueH
andler([e,t.target,n,r])}},_queueHandler:function(e){this._handlers.push(e)},_fl
ushHandlers:function(){for(var e,t=this._handlers,n=0,r=t.length;n<r&&(e=t[n]);n
++)e[0].call(this,e[1],e[2],e[3]);this._handlers=[]}})}(),function(){"use strict
";var e=Polymer.Path;Polymer.Base._addFeature({notifyPath:function(e,t,n){var r=
{},s=this._get(e,this,r);1===arguments.length&&(t=s),r.path&&this._notifyPath(r.
path,t,n)},_notifyPath:function(e,t,n){var r=this._propertySetter(e,t);if(r!==t&
&(r===r||t===t))return this._pathEffector(e,t),n||this._notifyPathUp(e,t),!0},_g
etPathParts:function(e){if(Array.isArray(e)){for(var t=[],n=0;n<e.length;n++)for
(var r=e[n].toString().split("."),s=0;s<r.length;s++)t.push(r[s]);return t}retur
n e.toString().split(".")},set:function(e,t,n){var r,s=n||this,i=this._getPathPa
rts(e),o=i[i.length-1];if(i.length>1){for(var a=0;a<i.length-1;a++){var l=i[a];i
f(r&&"#"==l[0]?s=Polymer.Collection.get(r).getItem(l):(s=s[l],r&&parseInt(l,10)=
=l&&(i[a]=Polymer.Collection.get(r).getKey(s))),!s)return;r=Array.isArray(s)?s:n
ull}if(r){var c,h,u=Polymer.Collection.get(r);"#"==o[0]?(h=o,c=u.getItem(h),o=r.
indexOf(c),u.setItem(h,t)):parseInt(o,10)==o&&(c=s[o],h=u.getKey(c),i[a]=h,u.set
Item(h,t))}s[o]=t,n||this._notifyPath(i.join("."),t)}else s[e]=t},get:function(e
,t){return this._get(e,t)},_get:function(e,t,n){for(var r,s=t||this,i=this._getP
athParts(e),o=0;o<i.length;o++){if(!s)return;var a=i[o];r&&"#"==a[0]?s=Polymer.C
ollection.get(r).getItem(a):(s=s[a],n&&r&&parseInt(a,10)==a&&(i[o]=Polymer.Colle
ction.get(r).getKey(s))),r=Array.isArray(s)?s:null}return n&&(n.path=i.join(".")
),s},_pathEffector:function(t,n){var r=e.root(t),s=this._propertyEffects&&this._
propertyEffects[r];if(s)for(var i,o=0;o<s.length&&(i=s[o]);o++){var a=i.pathFn;a
&&a.call(this,t,n,i.effect)}this._boundPaths&&this._notifyBoundPaths(t,n)},_anno
tationPathEffect:function(t,n,r){if(e.matches(r.value,!1,t))Polymer.Bind._annota
tionEffect.call(this,t,n,r);else if(!r.negate&&e.isDescendant(r.value,t)){var s=
this._nodes[r.index];if(s&&s._notifyPath){var i=e.translate(r.value,r.name,t);s.
_notifyPath(i,n,!0)}}},_complexObserverPathEffect:function(t,n,r){e.matches(r.tr
igger.name,r.trigger.wildcard,t)&&Polymer.Bind._complexObserverEffect.call(this,
t,n,r)},_computePathEffect:function(t,n,r){e.matches(r.trigger.name,r.trigger.wi
ldcard,t)&&Polymer.Bind._computeEffect.call(this,t,n,r)},_annotatedComputationPa
thEffect:function(t,n,r){e.matches(r.trigger.name,r.trigger.wildcard,t)&&Polymer
.Bind._annotatedComputationEffect.call(this,t,n,r)},linkPaths:function(e,t){this
._boundPaths=this._boundPaths||{},t?this._boundPaths[e]=t:this.unlinkPaths(e)},u
nlinkPaths:function(e){this._boundPaths&&delete this._boundPaths[e]},_notifyBoun
dPaths:function(t,n){for(var r in this._boundPaths){var s=this._boundPaths[r];e.
isDescendant(r,t)?this._notifyPath(e.translate(r,s,t),n):e.isDescendant(s,t)&&th
is._notifyPath(e.translate(s,r,t),n)}},_notifyPathUp:function(t,n){var r=e.root(
t),s=Polymer.CaseMap.camelToDashCase(r),i=s+this._EVENT_CHANGED;this.fire(i,{pat
h:t,value:n},{bubbles:!1,_useCache:!0})},_EVENT_CHANGED:"-changed",notifySplices
:function(e,t){var n={},r=this._get(e,this,n);this._notifySplices(r,n.path,t)},_
notifySplices:function(e,t,n){var r={keySplices:Polymer.Collection.applySplices(
e,n),indexSplices:n},s=t+".splices";this._notifyPath(s,r),this._notifyPath(t+".l
ength",e.length),this.__data__[s]={keySplices:null,indexSplices:null}},_notifySp
lice:function(e,t,n,r,s){this._notifySplices(e,t,[{index:n,addedCount:r,removed:
s,object:e,type:"splice"}])},push:function(e){var t={},n=this._get(e,this,t),r=A
rray.prototype.slice.call(arguments,1),s=n.length,i=n.push.apply(n,r);return r.l
ength&&this._notifySplice(n,t.path,s,r.length,[]),i},pop:function(e){var t={},n=
this._get(e,this,t),r=Boolean(n.length),s=Array.prototype.slice.call(arguments,1
),i=n.pop.apply(n,s);return r&&this._notifySplice(n,t.path,n.length,0,[i]),i},sp
lice:function(e,t){var n={},r=this._get(e,this,n);t=t<0?r.length-Math.floor(-t):
Math.floor(t),t||(t=0);var s=Array.prototype.slice.call(arguments,1),i=r.splice.
apply(r,s),o=Math.max(s.length-2,0);return(o||i.length)&&this._notifySplice(r,n.
path,t,o,i),i},shift:function(e){var t={},n=this._get(e,this,t),r=Boolean(n.leng
th),s=Array.prototype.slice.call(arguments,1),i=n.shift.apply(n,s);return r&&thi
s._notifySplice(n,t.path,0,0,[i]),i},unshift:function(e){var t={},n=this._get(e,
this,t),r=Array.prototype.slice.call(arguments,1),s=n.unshift.apply(n,r);return
r.length&&this._notifySplice(n,t.path,0,r.length,[]),s},prepareModelNotifyPath:f
unction(e){this.mixin(e,{fire:Polymer.Base.fire,_getEvent:Polymer.Base._getEvent
,__eventCache:Polymer.Base.__eventCache,notifyPath:Polymer.Base.notifyPath,_get:
Polymer.Base._get,_EVENT_CHANGED:Polymer.Base._EVENT_CHANGED,_notifyPath:Polymer
.Base._notifyPath,_notifyPathUp:Polymer.Base._notifyPathUp,_pathEffector:Polymer
.Base._pathEffector,_annotationPathEffect:Polymer.Base._annotationPathEffect,_co
mplexObserverPathEffect:Polymer.Base._complexObserverPathEffect,_annotatedComput
ationPathEffect:Polymer.Base._annotatedComputationPathEffect,_computePathEffect:
Polymer.Base._computePathEffect,_notifyBoundPaths:Polymer.Base._notifyBoundPaths
,_getPathParts:Polymer.Base._getPathParts})}})}(),Polymer.Base._addFeature({reso
lveUrl:function(e){var t=Polymer.DomModule.import(this.is),n="";if(t){var r=t.ge
tAttribute("assetpath")||"";n=Polymer.ResolveUrl.resolveUrl(r,t.ownerDocument.ba
seURI)}return Polymer.ResolveUrl.resolveUrl(e,n)}}),Polymer.CssParse=function(){
return{parse:function(e){return e=this._clean(e),this._parseCss(this._lex(e),e)}
,_clean:function(e){return e.replace(this._rx.comments,"").replace(this._rx.port
,"")},_lex:function(e){for(var t={start:0,end:e.length},n=t,r=0,s=e.length;r<s;r
++)switch(e[r]){case this.OPEN_BRACE:n.rules||(n.rules=[]);var i=n,o=i.rules[i.r
ules.length-1];n={start:r+1,parent:i,previous:o},i.rules.push(n);break;case this
.CLOSE_BRACE:n.end=r+1,n=n.parent||t}return t},_parseCss:function(e,t){var n=t.s
ubstring(e.start,e.end-1);if(e.parsedCssText=e.cssText=n.trim(),e.parent){var r=
e.previous?e.previous.end:e.parent.start;n=t.substring(r,e.start-1),n=this._expa
ndUnicodeEscapes(n),n=n.replace(this._rx.multipleSpaces," "),n=n.substring(n.las
tIndexOf(";")+1);var s=e.parsedSelector=e.selector=n.trim();e.atRule=0===s.index
Of(this.AT_START),e.atRule?0===s.indexOf(this.MEDIA_START)?e.type=this.types.MED
IA_RULE:s.match(this._rx.keyframesRule)&&(e.type=this.types.KEYFRAMES_RULE,e.key
framesName=e.selector.split(this._rx.multipleSpaces).pop()):0===s.indexOf(this.V
AR_START)?e.type=this.types.MIXIN_RULE:e.type=this.types.STYLE_RULE}var i=e.rule
s;if(i)for(var o,a=0,l=i.length;a<l&&(o=i[a]);a++)this._parseCss(o,t);return e},
_expandUnicodeEscapes:function(e){return e.replace(/\\([0-9a-f]{1,6})\s/gi,funct
ion(){for(var e=arguments[1],t=6-e.length;t--;)e="0"+e;return"\\"+e})},stringify
:function(e,t,n){n=n||"";var r="";if(e.cssText||e.rules){var s=e.rules;if(s&&!th
is._hasMixinRules(s))for(var i,o=0,a=s.length;o<a&&(i=s[o]);o++)r=this.stringify
(i,t,r);else r=t?e.cssText:this.removeCustomProps(e.cssText),r=r.trim(),r&&(r="
"+r+"\n")}return r&&(e.selector&&(n+=e.selector+" "+this.OPEN_BRACE+"\n"),n+=r,
e.selector&&(n+=this.CLOSE_BRACE+"\n\n")),n},_hasMixinRules:function(e){return 0
===e[0].selector.indexOf(this.VAR_START)},removeCustomProps:function(e){return e
=this.removeCustomPropAssignment(e),this.removeCustomPropApply(e)},removeCustomP
ropAssignment:function(e){return e.replace(this._rx.customProp,"").replace(this.
_rx.mixinProp,"")},removeCustomPropApply:function(e){return e.replace(this._rx.m
ixinApply,"").replace(this._rx.varApply,"")},types:{STYLE_RULE:1,KEYFRAMES_RULE:
7,MEDIA_RULE:4,MIXIN_RULE:1e3},OPEN_BRACE:"{",CLOSE_BRACE:"}",_rx:{comments:/\/\
*[^*]*\*+([^\/*][^*]*\*+)*\//gim,port:/@import[^;]*;/gim,customProp:/(?:^[^;\-\s
}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,mixinProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^
{};]*?{[^}]*?}(?:[;\n]|$)?/gim,mixinApply:/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/
gim,varApply:/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,keyframesRule:/^@[^\s]*
keyframes/,multipleSpaces:/\s+/g},VAR_START:"--",MEDIA_START:"@media",AT_START:"
@"}}(),Polymer.StyleUtil=function(){var e=Polymer.Settings;return{NATIVE_VARIABL
ES:Polymer.Settings.useNativeCSSProperties,MODULE_STYLES_SELECTOR:"style, link[r
el=import][type~=css], template",INCLUDE_ATTR:"include",toCssText:function(e,t){
return"string"==typeof e&&(e=this.parser.parse(e)),t&&this.forEachRule(e,t),this
.parser.stringify(e,this.NATIVE_VARIABLES)},forRulesInStyles:function(e,t,n){if(
e)for(var r,s=0,i=e.length;s<i&&(r=e[s]);s++)this.forEachRuleInStyle(r,t,n)},for
ActiveRulesInStyles:function(e,t,n){if(e)for(var r,s=0,i=e.length;s<i&&(r=e[s]);
s++)this.forEachRuleInStyle(r,t,n,!0)},rulesForStyle:function(e){return!e.__cssR
ules&&e.textContent&&(e.__cssRules=this.parser.parse(e.textContent)),e.__cssRule
s},isKeyframesSelector:function(e){return e.parent&&e.parent.type===this.ruleTyp
es.KEYFRAMES_RULE},forEachRuleInStyle:function(e,t,n,r){var s,i,o=this.rulesForS
tyle(e);t&&(s=function(n){t(n,e)}),n&&(i=function(t){n(t,e)}),this.forEachRule(o
,s,i,r)},forEachRule:function(e,t,n,r){if(e){var s=!1;if(r&&e.type===this.ruleTy
pes.MEDIA_RULE){var i=e.selector.match(this.rx.MEDIA_MATCH);i&&(window.matchMedi
a(i[1]).matches||(s=!0))}e.type===this.ruleTypes.STYLE_RULE?t(e):n&&e.type===thi
s.ruleTypes.KEYFRAMES_RULE?n(e):e.type===this.ruleTypes.MIXIN_RULE&&(s=!0);var o
=e.rules;if(o&&!s)for(var a,l=0,c=o.length;l<c&&(a=o[l]);l++)this.forEachRule(a,
t,n,r)}},applyCss:function(e,t,n,r){var s=this.createScopeStyle(e,t);return this
.applyStyle(s,n,r)},applyStyle:function(e,t,n){t=t||document.head;var r=n&&n.nex
tSibling||t.firstChild;return this.__lastHeadApplyNode=e,t.insertBefore(e,r)},cr
eateScopeStyle:function(e,t){var n=document.createElement("style");return t&&n.s
etAttribute("scope",t),n.textContent=e,n},__lastHeadApplyNode:null,applyStylePla
ceHolder:function(e){var t=document.createComment(" Shady DOM styles for "+e+" "
),n=this.__lastHeadApplyNode?this.__lastHeadApplyNode.nextSibling:null,r=documen
t.head;return r.insertBefore(t,n||r.firstChild),this.__lastHeadApplyNode=t,t},cs
sFromModules:function(e,t){for(var n=e.trim().split(" "),r="",s=0;s<n.length;s++
)r+=this.cssFromModule(n[s],t);return r},cssFromModule:function(e,t){var n=Polym
er.DomModule.import(e);return n&&!n._cssText&&(n._cssText=this.cssFromElement(n)
),!n&&t&&console.warn("Could not find style data in module named",e),n&&n._cssTe
xt||""},cssFromElement:function(e){for(var t,n="",r=e.content||e,s=Polymer.TreeA
pi.arrayCopy(r.querySelectorAll(this.MODULE_STYLES_SELECTOR)),i=0;i<s.length;i++
)if(t=s[i],"template"===t.localName)t.hasAttribute("preserve-content")||(n+=this
.cssFromElement(t));else if("style"===t.localName){var o=t.getAttribute(this.INC
LUDE_ATTR);o&&(n+=this.cssFromModules(o,!0)),t=t.__appliedElement||t,t.parentNod
e.removeChild(t),n+=this.resolveCss(t.textContent,e.ownerDocument)}else t.import
&&t.import.body&&(n+=this.resolveCss(t.import.body.textContent,t.import));return
n},isTargetedBuild:function(t){return e.useNativeShadow?"shadow"===t:"shady"===
t},cssBuildTypeForModule:function(e){var t=Polymer.DomModule.import(e);if(t)retu
rn this.getCssBuildType(t)},getCssBuildType:function(e){return e.getAttribute("c
ss-build")},_findMatchingParen:function(e,t){for(var n=0,r=t,s=e.length;r<s;r++)
switch(e[r]){case"(":n++;break;case")":if(0===--n)return r}return-1},processVari
ableAndFallback:function(e,t){var n=e.indexOf("var(");if(n===-1)return t(e,"",""
,"");var r=this._findMatchingParen(e,n+3),s=e.substring(n+4,r),i=e.substring(0,n
),o=this.processVariableAndFallback(e.substring(r+1),t),a=s.indexOf(",");if(a===
-1)return t(i,s.trim(),"",o);var l=s.substring(0,a).trim(),c=s.substring(a+1).tr
im();return t(i,l,c,o)},rx:{VAR_ASSIGN:/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:([^;
{]*)|{([^}]*)})(?:(?=[;\s}])|$)/gi,MIXIN_MATCH:/(?:^|\W+)@apply\s*\(?([^);\n]*)\
)?/gi,VAR_CONSUMED:/(--[\w-]+)\s*([:,;)]|$)/gi,ANIMATION_MATCH:/(animation\s*:)|
(animation-name\s*:)/,MEDIA_MATCH:/@media[^(]*(\([^)]*\))/,IS_VAR:/^--/,BRACKETE
D:/\{[^}]*\}/g,HOST_PREFIX:"(?:^|[^.#[:])",HOST_SUFFIX:"($|[.:[\\s>+~])"},resolv
eCss:Polymer.ResolveUrl.resolveCss,parser:Polymer.CssParse,ruleTypes:Polymer.Css
Parse.types}}(),Polymer.StyleTransformer=function(){var e=Polymer.StyleUtil,t=Po
lymer.Settings,n={dom:function(e,t,n,r){this._transformDom(e,t||"",n,r)},_transf
ormDom:function(e,t,n,r){e.setAttribute&&this.element(e,t,n,r);for(var s=Polymer
.dom(e).childNodes,i=0;i<s.length;i++)this._transformDom(s[i],t,n,r)},element:fu
nction(e,t,n,s){if(n)s?e.removeAttribute(r):e.setAttribute(r,t);else if(t)if(e.c
lassList)s?(e.classList.remove(r),e.classList.remove(t)):(e.classList.add(r),e.c
lassList.add(t));else if(e.getAttribute){var i=e.getAttribute(g);s?i&&e.setAttri
bute(g,i.replace(r,"").replace(t,"")):e.setAttribute(g,(i?i+" ":"")+r+" "+t)}},e
lementStyles:function(n,r){var s,i=n._styles,o="",a=n.__cssBuild,l=t.useNativeSh
adow||"shady"===a;if(l){var h=this;s=function(e){e.selector=h._slottedToContent(
e.selector),e.selector=e.selector.replace(c,":host > *"),r&&r(e)}}for(var u,f=0,
p=i.length;f<p&&(u=i[f]);f++){var _=e.rulesForStyle(u);o+=l?e.toCssText(_,s):thi
s.css(_,n.is,n.extends,r,n._scopeCssViaAttr)+"\n\n"}return o.trim()},css:functio
n(t,n,r,s,i){var o=this._calcHostScope(n,r);n=this._calcElementScope(n,i);var a=
this;return e.toCssText(t,function(e){e.isScoped||(a.rule(e,n,o),e.isScoped=!0),
s&&s(e,n,o)})},_calcElementScope:function(e,t){return e?t?m+e+y:d+e:""},_calcHos
tScope:function(e,t){return t?"[is="+e+"]":e},rule:function(e,t,n){this._transfo
rmRule(e,this._transformComplexSelector,t,n)},_transformRule:function(e,t,n,r){e
.selector=e.transformedSelector=this._transformRuleCss(e,t,n,r)},_transformRuleC
ss:function(t,n,r,s){var o=t.selector.split(i);if(!e.isKeyframesSelector(t))for(
var a,l=0,c=o.length;l<c&&(a=o[l]);l++)o[l]=n.call(this,a,r,s);return o.join(i)}
,_transformComplexSelector:function(e,t,n){var r=!1,s=!1,a=this;return e=e.trim(
),e=this._slottedToContent(e),e=e.replace(c,":host > *"),e=e.replace(P,l+" $1"),
e=e.replace(o,function(e,i,o){if(r)o=o.replace(_," ");else{var l=a._transformCom
poundSelector(o,i,t,n);r=r||l.stop,s=s||l.hostContext,i=l.combinator,o=l.value}r
eturn i+o}),s&&(e=e.replace(f,function(e,t,r,s){return t+r+" "+n+s+i+" "+t+n+r+s
})),e},_transformCompoundSelector:function(e,t,n,r){var s=e.search(_),i=!1;e.ind
exOf(u)>=0?i=!0:e.indexOf(l)>=0?e=this._transformHostSelector(e,r):0!==s&&(e=n?t
his._transformSimpleSelector(e,n):e),e.indexOf(p)>=0&&(t="");var o;return s>=0&&
(e=e.replace(_," "),o=!0),{value:e,combinator:t,stop:o,hostContext:i}},_transfor
mSimpleSelector:function(e,t){var n=e.split(v);return n[0]+=t,n.join(v)},_transf
ormHostSelector:function(e,t){var n=e.match(h),r=n&&n[2].trim()||"";if(r){if(r[0
].match(a))return e.replace(h,function(e,n,r){return t+r});var s=r.split(a)[0];r
eturn s===t?r:S}return e.replace(l,t)},documentRule:function(e){e.selector=e.par
sedSelector,this.normalizeRootSelector(e),t.useNativeShadow||this._transformRule
(e,this._transformDocumentSelector)},normalizeRootSelector:function(e){e.selecto
r=e.selector.replace(c,"html")},_transformDocumentSelector:function(e){return e.
match(_)?this._transformComplexSelector(e,s):this._transformSimpleSelector(e.tri
m(),s)},_slottedToContent:function(e){return e.replace(C,p+"> $1")},SCOPE_NAME:"
style-scope"},r=n.SCOPE_NAME,s=":not(["+r+"]):not(."+r+")",i=",",o=/(^|[\s>+~]+)
((?:\[.+?\]|[^\s>+~=\[])+)/g,a=/[[.:#*]/,l=":host",c=":root",h=/(:host)(?:\(((?:
\([^)(]*\)|[^)(]*)+?)\))/,u=":host-context",f=/(.*)(?::host-context)(?:\(((?:\([
^)(]*\)|[^)(]*)+?)\))(.*)/,p="::content",_=/::content|::shadow|\/deep\//,d=".",m
="["+r+"~=",y="]",v=":",g="class",P=new RegExp("^("+p+")"),S="should_not_match",
C=/(?:::slotted)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/g;return n}(),Polymer.StyleExt
ends=function(){var e=Polymer.StyleUtil;return{hasExtends:function(e){return Boo
lean(e.match(this.rx.EXTEND))},transform:function(t){var n=e.rulesForStyle(t),r=
this;return e.forEachRule(n,function(e){if(r._mapRuleOntoParent(e),e.parent)for(
var t;t=r.rx.EXTEND.exec(e.cssText);){var n=t[1],s=r._findExtendor(n,e);s&&r._ex
tendRule(e,s)}e.cssText=e.cssText.replace(r.rx.EXTEND,"")}),e.toCssText(n,functi
on(e){e.selector.match(r.rx.STRIP)&&(e.cssText="")},!0)},_mapRuleOntoParent:func
tion(e){if(e.parent){for(var t,n=e.parent.map||(e.parent.map={}),r=e.selector.sp
lit(","),s=0;s<r.length;s++)t=r[s],n[t.trim()]=e;return n}},_findExtendor:functi
on(e,t){return t.parent&&t.parent.map&&t.parent.map[e]||this._findExtendor(e,t.p
arent)},_extendRule:function(e,t){e.parent!==t.parent&&this._cloneAndAddRuleToPa
rent(t,e.parent),e.extends=e.extends||[],e.extends.push(t),t.selector=t.selector
.replace(this.rx.STRIP,""),t.selector=(t.selector&&t.selector+",\n")+e.selector,
t.extends&&t.extends.forEach(function(t){this._extendRule(e,t)},this)},_cloneAnd
AddRuleToParent:function(e,t){e=Object.create(e),e.parent=t,e.extends&&(e.extend
s=e.extends.slice()),t.rules.push(e)},rx:{EXTEND:/@extends\(([^)]*)\)\s*?;/gim,S
TRIP:/%[^,]*$/}}}(),Polymer.ApplyShim=function(){"use strict";function e(e,t){e=
e.trim(),m[e]={properties:t,dependants:{}}}function t(e){return e=e.trim(),m[e]}
function n(e,t){var n=_.exec(t);return n&&(t=n[1]?y._getInitialValueForProperty(
e):"apply-shim-inherit"),t}function r(e){for(var t,r,s,i,o=e.split(";"),a={},l=0
;l<o.length;l++)s=o[l],s&&(i=s.split(":"),i.length>1&&(t=i[0].trim(),r=n(t,i.sli
ce(1).join(":")),a[t]=r));return a}function s(e){var t=y.__currentElementProto,n
=t&&t.is;for(var r in e.dependants)r!==n&&(e.dependants[r].__applyShimInvalid=!0
)}function i(n,i,o,a){if(o&&c.processVariableAndFallback(o,function(e,n){n&&t(n)
&&(a="@apply "+n+";")}),!a)return n;var h=l(a),u=n.slice(0,n.indexOf("--")),f=r(
h),p=f,_=t(i),m=_&&_.properties;m?(p=Object.create(m),p=Polymer.Base.mixin(p,f))
:e(i,p);var y,v,g=[],P=!1;for(y in p)v=f[y],void 0===v&&(v="initial"),!m||y in m
||(P=!0),g.push(i+d+y+": "+v);return P&&s(_),_&&(_.properties=p),o&&(u=n+";"+u),
u+g.join("; ")+";"}function o(e,t,n){return"var("+t+",var("+n+"))"}function a(n,
r){n=n.replace(p,"");var s=[],i=t(n);if(i||(e(n,{}),i=t(n)),i){var o=y.__current
ElementProto;o&&(i.dependants[o.is]=o);var a,l,c;for(a in i.properties)c=r&&r[a]
,l=[a,": var(",n,d,a],c&&l.push(",",c),l.push(")"),s.push(l.join(""))}return s.j
oin("; ")}function l(e){for(var t;t=h.exec(e);){var n=t[0],s=t[1],i=t.index,o=i+
n.indexOf("@apply"),l=i+n.length,c=e.slice(0,o),u=e.slice(l),f=r(c),p=a(s,f);e=[
c,p,u].join(""),h.lastIndex=i+p.length}return e}var c=Polymer.StyleUtil,h=c.rx.M
IXIN_MATCH,u=c.rx.VAR_ASSIGN,f=/var\(\s*(--[^,]*),\s*(--[^)]*)\)/g,p=/;\s*/m,_=/
^\s*(initial)|(inherit)\s*$/,d="_-_",m={},y={_measureElement:null,_map:m,_separa
tor:d,transform:function(e,t){this.__currentElementProto=t,c.forRulesInStyles(e,
this._boundFindDefinitions),c.forRulesInStyles(e,this._boundFindApplications),t&
&(t.__applyShimInvalid=!1),this.__currentElementProto=null},_findDefinitions:fun
ction(e){var t=e.parsedCssText;t=t.replace(f,o),t=t.replace(u,i),e.cssText=t,":r
oot"===e.selector&&(e.selector=":host > *")},_findApplications:function(e){e.css
Text=l(e.cssText)},transformRule:function(e){this._findDefinitions(e),this._find
Applications(e)},_getInitialValueForProperty:function(e){return this._measureEle
ment||(this._measureElement=document.createElement("meta"),this._measureElement.
style.all="initial",document.head.appendChild(this._measureElement)),window.getC
omputedStyle(this._measureElement).getPropertyValue(e)}};return y._boundTransfor
mRule=y.transformRule.bind(y),y._boundFindDefinitions=y._findDefinitions.bind(y)
,y._boundFindApplications=y._findApplications.bind(y),y}(),function(){var e=Poly
mer.Base._prepElement,t=Polymer.Settings.useNativeShadow,n=Polymer.StyleUtil,r=P
olymer.StyleTransformer,s=Polymer.StyleExtends,i=Polymer.ApplyShim,o=Polymer.Set
tings;Polymer.Base._addFeature({_prepElement:function(t){this._encapsulateStyle&
&"shady"!==this.__cssBuild&&r.element(t,this.is,this._scopeCssViaAttr),e.call(th
is,t)},_prepStyles:function(){void 0===this._encapsulateStyle&&(this._encapsulat
eStyle=!t),t||(this._scopeStyle=n.applyStylePlaceHolder(this.is)),this.__cssBuil
d=n.cssBuildTypeForModule(this.is)},_prepShimStyles:function(){if(this._template
){var e=n.isTargetedBuild(this.__cssBuild);if(o.useNativeCSSProperties&&"shadow"
===this.__cssBuild&&e)return;this._styles=this._styles||this._collectStyles(),o.
useNativeCSSProperties&&!this.__cssBuild&&i.transform(this._styles,this);var s=o
.useNativeCSSProperties&&e?this._styles.length&&this._styles[0].textContent.trim
():r.elementStyles(this);this._prepStyleProperties(),!this._needsStyleProperties
()&&s&&n.applyCss(s,this.is,t?this._template.content:null,this._scopeStyle)}else
this._styles=[]},_collectStyles:function(){var e=[],t="",r=this.styleModules;if
(r)for(var i,o=0,a=r.length;o<a&&(i=r[o]);o++)t+=n.cssFromModule(i);t+=n.cssFrom
Module(this.is);var l=this._template&&this._template.parentNode;if(!this._templa
te||l&&l.id.toLowerCase()===this.is||(t+=n.cssFromElement(this._template)),t){va
r c=document.createElement("style");c.textContent=t,s.hasExtends(c.textContent)&
&(t=s.transform(c)),e.push(c)}return e},_elementAdd:function(e){this._encapsulat
eStyle&&(e.__styleScoped?e.__styleScoped=!1:r.dom(e,this.is,this._scopeCssViaAtt
r))},_elementRemove:function(e){this._encapsulateStyle&&r.dom(e,this.is,this._sc
opeCssViaAttr,!0)},scopeSubtree:function(e,n){if(!t){var r=this,s=function(e){if
(e.nodeType===Node.ELEMENT_NODE){var t=e.getAttribute("class");e.setAttribute("c
lass",r._scopeElementClass(e,t));for(var n,s=e.querySelectorAll("*"),i=0;i<s.len
gth&&(n=s[i]);i++)t=n.getAttribute("class"),n.setAttribute("class",r._scopeEleme
ntClass(n,t))}};if(s(e),n){var i=new MutationObserver(function(e){for(var t,n=0;
n<e.length&&(t=e[n]);n++)if(t.addedNodes)for(var r=0;r<t.addedNodes.length;r++)s
(t.addedNodes[r])});return i.observe(e,{childList:!0,subtree:!0}),i}}}})}(),Poly
mer.StyleProperties=function(){"use strict";function e(e,t){var n=parseInt(e/32)
,r=1<<e%32;t[n]=(t[n]||0)|r}var t=Polymer.DomApi.matchesSelector,n=Polymer.Style
Util,r=Polymer.StyleTransformer,s=navigator.userAgent.match("Trident"),i=Polymer
.Settings;return{decorateStyles:function(e,t){var s=this,i={},o=[],a=0,l=r._calc
HostScope(t.is,t.extends);n.forRulesInStyles(e,function(e,r){s.decorateRule(e),e
.index=a++,s.whenHostOrRootRule(t,e,r,function(r){if(e.parent.type===n.ruleTypes
.MEDIA_RULE&&(t.__notStyleScopeCacheable=!0),r.isHost){var s=r.selector.split("
").some(function(e){return 0===e.indexOf(l)&&e.length!==l.length});t.__notStyleS
copeCacheable=t.__notStyleScopeCacheable||s}}),s.collectPropertiesInCssText(e.pr
opertyInfo.cssText,i)},function(e){o.push(e)}),e._keyframes=o;var c=[];for(var h
in i)c.push(h);return c},decorateRule:function(e){if(e.propertyInfo)return e.pr
opertyInfo;var t={},n={},r=this.collectProperties(e,n);return r&&(t.properties=n
,e.rules=null),t.cssText=this.collectCssText(e),e.propertyInfo=t,t},collectPrope
rties:function(e,t){var n=e.propertyInfo;if(!n){for(var r,s,i,o=this.rx.VAR_ASSI
GN,a=e.parsedCssText;r=o.exec(a);)s=(r[2]||r[3]).trim(),"inherit"!==s&&(t[r[1].t
rim()]=s),i=!0;return i}if(n.properties)return Polymer.Base.mixin(t,n.properties
),!0},collectCssText:function(e){return this.collectConsumingCssText(e.parsedCss
Text)},collectConsumingCssText:function(e){return e.replace(this.rx.BRACKETED,""
).replace(this.rx.VAR_ASSIGN,"")},collectPropertiesInCssText:function(e,t){for(v
ar n;n=this.rx.VAR_CONSUMED.exec(e);){var r=n[1];":"!==n[2]&&(t[r]=!0)}},reify:f
unction(e){for(var t,n=Object.getOwnPropertyNames(e),r=0;r<n.length;r++)t=n[r],e
[t]=this.valueForProperty(e[t],e)},valueForProperty:function(e,t){if(e)if(e.inde
xOf(";")>=0)e=this.valueForProperties(e,t);else{var r=this,s=function(e,n,s,i){v
ar o=r.valueForProperty(t[n],t);return o&&"initial"!==o?"apply-shim-inherit"===o
&&(o="inherit"):o=r.valueForProperty(t[s]||s,t)||s,e+(o||"")+i};e=n.processVaria
bleAndFallback(e,s)}return e&&e.trim()||""},valueForProperties:function(e,t){for
(var n,r,s=e.split(";"),i=0;i<s.length;i++)if(n=s[i]){if(this.rx.MIXIN_MATCH.las
tIndex=0,r=this.rx.MIXIN_MATCH.exec(n))n=this.valueForProperty(t[r[1]],t);else{v
ar o=n.indexOf(":");if(o!==-1){var a=n.substring(o);a=a.trim(),a=this.valueForPr
operty(a,t)||a,n=n.substring(0,o)+a}}s[i]=n&&n.lastIndexOf(";")===n.length-1?n.s
lice(0,-1):n||""}return s.join(";")},applyProperties:function(e,t){var n="";e.pr
opertyInfo||this.decorateRule(e),e.propertyInfo.cssText&&(n=this.valueForPropert
ies(e.propertyInfo.cssText,t)),e.cssText=n},applyKeyframeTransforms:function(e,t
){var n=e.cssText,r=e.cssText;if(null==e.hasAnimations&&(e.hasAnimations=this.rx
.ANIMATION_MATCH.test(n)),e.hasAnimations){var s;if(null==e.keyframeNamesToTrans
form){e.keyframeNamesToTransform=[];for(var i in t)s=t[i],r=s(n),n!==r&&(n=r,e.k
eyframeNamesToTransform.push(i))}else{for(var o=0;o<e.keyframeNamesToTransform.l
ength;++o)s=t[e.keyframeNamesToTransform[o]],n=s(n);r=n}}e.cssText=r},propertyDa
taFromStyles:function(r,s){var i={},o=this,a=[];return n.forActiveRulesInStyles(
r,function(n){n.propertyInfo||o.decorateRule(n);var r=n.transformedSelector||n.p
arsedSelector;s&&n.propertyInfo.properties&&r&&t.call(s,r)&&(o.collectProperties
(n,i),e(n.index,a))}),{properties:i,key:a}},_rootSelector:/:root|:host\s*>\s*\*/
,_checkRoot:function(e,t){return Boolean(t.match(this._rootSelector))||"html"===
e&&t.indexOf("html")>-1},whenHostOrRootRule:function(e,t,n,s){if(t.propertyInfo|
|self.decorateRule(t),t.propertyInfo.properties){var o=e.is?r._calcHostScope(e.i
s,e.extends):"html",a=t.parsedSelector,l=this._checkRoot(o,a),c=!l&&0===a.indexO
f(":host"),h=e.__cssBuild||n.__cssBuild;if("shady"===h&&(l=a===o+" > *."+o||a.in
dexOf("html")>-1,c=!l&&0===a.indexOf(o)),l||c){var u=o;c&&(i.useNativeShadow&&!t
.transformedSelector&&(t.transformedSelector=r._transformRuleCss(t,r._transformC
omplexSelector,e.is,o)),u=t.transformedSelector||t.parsedSelector),l&&"html"===o
&&(u=t.transformedSelector||t.parsedSelector),s({selector:u,isHost:c,isRoot:l})}
}},hostAndRootPropertiesForScope:function(e){var r={},s={},i=this;return n.forAc
tiveRulesInStyles(e._styles,function(n,o){i.whenHostOrRootRule(e,n,o,function(o)
{var a=e._element||e;t.call(a,o.selector)&&(o.isHost?i.collectProperties(n,r):i.
collectProperties(n,s))})}),{rootProps:s,hostProps:r}},transformStyles:function(
e,t,n){var s=this,o=r._calcHostScope(e.is,e.extends),a=e.extends?"\\"+o.slice(0,
-1)+"\\]":o,l=new RegExp(this.rx.HOST_PREFIX+a+this.rx.HOST_SUFFIX),c=this._elem
entKeyframeTransforms(e,n);return r.elementStyles(e,function(r){s.applyPropertie
s(r,t),i.useNativeShadow||Polymer.StyleUtil.isKeyframesSelector(r)||!r.cssText||
(s.applyKeyframeTransforms(r,c),s._scopeSelector(r,l,o,e._scopeCssViaAttr,n))})}
,_elementKeyframeTransforms:function(e,t){var n=e._styles._keyframes,r={};if(!i.
useNativeShadow&&n)for(var s=0,o=n[s];s<n.length;o=n[++s])this._scopeKeyframes(o
,t),r[o.keyframesName]=this._keyframesRuleTransformer(o);return r},_keyframesRul
eTransformer:function(e){return function(t){return t.replace(e.keyframesNameRx,e
.transformedKeyframesName)}},_scopeKeyframes:function(e,t){e.keyframesNameRx=new
RegExp(e.keyframesName,"g"),e.transformedKeyframesName=e.keyframesName+"-"+t,e.
transformedSelector=e.transformedSelector||e.selector,e.selector=e.transformedSe
lector.replace(e.keyframesName,e.transformedKeyframesName)},_scopeSelector:funct
ion(e,t,n,s,i){e.transformedSelector=e.transformedSelector||e.selector;for(var o
,a=e.transformedSelector,l=s?"["+r.SCOPE_NAME+"~="+i+"]":"."+i,c=a.split(","),h=
0,u=c.length;h<u&&(o=c[h]);h++)c[h]=o.match(t)?o.replace(n,l):l+" "+o;e.selector
=c.join(",")},applyElementScopeSelector:function(e,t,n,s){var i=s?e.getAttribute
(r.SCOPE_NAME):e.getAttribute("class")||"",o=n?i.replace(n,t):(i?i+" ":"")+this.
XSCOPE_NAME+" "+t;i!==o&&(s?e.setAttribute(r.SCOPE_NAME,o):e.setAttribute("class
",o))},applyElementStyle:function(e,t,r,o){var a=o?o.textContent||"":this.transf
ormStyles(e,t,r),l=e._customStyle;return l&&!i.useNativeShadow&&l!==o&&(l._useCo
unt--,l._useCount<=0&&l.parentNode&&l.parentNode.removeChild(l)),i.useNativeShad
ow?e._customStyle?(e._customStyle.textContent=a,o=e._customStyle):a&&(o=n.applyC
ss(a,r,e.root,e._scopeStyle)):o?o.parentNode||(s&&a.indexOf("@media")>-1&&(o.tex
tContent=a),n.applyStyle(o,null,e._scopeStyle)):a&&(o=n.applyCss(a,r,null,e._sco
peStyle)),o&&(o._useCount=o._useCount||0,e._customStyle!=o&&o._useCount++,e._cus
tomStyle=o),o},mixinCustomStyle:function(e,t){var n;for(var r in t)n=t[r],(n||0=
==n)&&(e[r]=n)},updateNativeStyleProperties:function(e,t){var n=e.__customStyleP
roperties;if(n)for(var r=0;r<n.length;r++)e.style.removeProperty(n[r]);var s=[];
for(var i in t)null!==t[i]&&(e.style.setProperty(i,t[i]),s.push(i));e.__customSt
yleProperties=s},rx:n.rx,XSCOPE_NAME:"x-scope"}}(),function(){Polymer.StyleCache
=function(){this.cache={}},Polymer.StyleCache.prototype={MAX:100,store:function(
e,t,n,r){t.keyValues=n,t.styles=r;var s=this.cache[e]=this.cache[e]||[];s.push(t
),s.length>this.MAX&&s.shift()},retrieve:function(e,t,n){var r=this.cache[e];if(
r)for(var s,i=r.length-1;i>=0;i--)if(s=r[i],n===s.styles&&this._objectsEqual(t,s
.keyValues))return s},clear:function(){this.cache={}},_objectsEqual:function(e,t
){var n,r;for(var s in e)if(n=e[s],r=t[s],!("object"==typeof n&&n?this._objectsS
trictlyEqual(n,r):n===r))return!1;return!Array.isArray(e)||e.length===t.length},
_objectsStrictlyEqual:function(e,t){return this._objectsEqual(e,t)&&this._object
sEqual(t,e)}}}(),Polymer.StyleDefaults=function(){var e=Polymer.StyleProperties,
t=Polymer.StyleCache,n=Polymer.Settings.useNativeCSSProperties,r={_styles:[],_pr
operties:null,customStyle:{},_styleCache:new t,_element:Polymer.DomApi.wrap(docu
ment.documentElement),addStyle:function(e){this._styles.push(e),this._properties
=null},get _styleProperties(){return this._properties||(e.decorateStyles(this._s
tyles,this),this._styles._scopeStyleProperties=null,this._properties=e.hostAndRo
otPropertiesForScope(this).rootProps,e.mixinCustomStyle(this._properties,this.cu
stomStyle),e.reify(this._properties)),this._properties},hasStyleProperties:funct
ion(){return Boolean(this._properties)},_needsStyleProperties:function(){},_comp
uteStyleProperties:function(){return this._styleProperties},updateStyles:functio
n(t){this._properties=null,t&&Polymer.Base.mixin(this.customStyle,t),this._style
Cache.clear();for(var r,s=0;s<this._styles.length;s++)r=this._styles[s],r=r.__im
portElement||r,r._apply();n&&e.updateNativeStyleProperties(document.documentElem
ent,this.customStyle)}};return r}(),function(){"use strict";var e=Polymer.Base.s
erializeValueToAttribute,t=Polymer.StyleProperties,n=Polymer.StyleTransformer,r=
Polymer.StyleDefaults,s=Polymer.Settings.useNativeShadow,i=Polymer.Settings.useN
ativeCSSProperties;Polymer.Base._addFeature({_prepStyleProperties:function(){i||
(this._ownStylePropertyNames=this._styles&&this._styles.length?t.decorateStyles(
this._styles,this):null); | 3 delete this[t])},_configureProperties:function(e,t){for(var n in e){var r=e[n];i
f(void 0!==r.value){var s=r.value;"function"==typeof s&&(s=s.call(this,this._con
fig)),t[n]=s}}},_distributeConfig:function(e){var t=this._propertyEffects;if(t)f
or(var n in e){var r=t[n];if(r)for(var s,i=0,o=r.length;i<o&&(s=r[i]);i++)if("an
notation"===s.kind){var a=this._nodes[s.effect.index],l=s.effect.propertyName,c=
"attribute"==s.effect.kind,h=a._propertyEffects&&a._propertyEffects[l];if(a._con
figValue&&(h||!c)){var u=n===s.effect.value?e[n]:this._get(s.effect.value,e);u=t
his._computeFinalAnnotationValue(a,l,u,s.effect),c&&(u=a.deserialize(this.serial
ize(u),a._propertyInfo[l].type)),a._configValue(l,u)}}}},_afterClientsReady:func
tion(){this._executeStaticEffects(),this._applyConfig(this._config,this._aboveCo
nfig),this._flushHandlers()},_applyConfig:function(e,t){for(var n in e)void 0===
this[n]&&this.__setProperty(n,e[n],n in t)},_notifyListener:function(e,t){if(!Po
lymer.Bind._isEventBogus(t,t.target)){var n,r;if(t.detail&&(n=t.detail.value,r=t
.detail.path),this._clientsReadied)return e.call(this,t.target,n,r);this._queueH
andler([e,t.target,n,r])}},_queueHandler:function(e){this._handlers.push(e)},_fl
ushHandlers:function(){for(var e,t=this._handlers,n=0,r=t.length;n<r&&(e=t[n]);n
++)e[0].call(this,e[1],e[2],e[3]);this._handlers=[]}})}(),function(){"use strict
";var e=Polymer.Path;Polymer.Base._addFeature({notifyPath:function(e,t,n){var r=
{},s=this._get(e,this,r);1===arguments.length&&(t=s),r.path&&this._notifyPath(r.
path,t,n)},_notifyPath:function(e,t,n){var r=this._propertySetter(e,t);if(r!==t&
&(r===r||t===t))return this._pathEffector(e,t),n||this._notifyPathUp(e,t),!0},_g
etPathParts:function(e){if(Array.isArray(e)){for(var t=[],n=0;n<e.length;n++)for
(var r=e[n].toString().split("."),s=0;s<r.length;s++)t.push(r[s]);return t}retur
n e.toString().split(".")},set:function(e,t,n){var r,s=n||this,i=this._getPathPa
rts(e),o=i[i.length-1];if(i.length>1){for(var a=0;a<i.length-1;a++){var l=i[a];i
f(r&&"#"==l[0]?s=Polymer.Collection.get(r).getItem(l):(s=s[l],r&&parseInt(l,10)=
=l&&(i[a]=Polymer.Collection.get(r).getKey(s))),!s)return;r=Array.isArray(s)?s:n
ull}if(r){var c,h,u=Polymer.Collection.get(r);"#"==o[0]?(h=o,c=u.getItem(h),o=r.
indexOf(c),u.setItem(h,t)):parseInt(o,10)==o&&(c=s[o],h=u.getKey(c),i[a]=h,u.set
Item(h,t))}s[o]=t,n||this._notifyPath(i.join("."),t)}else s[e]=t},get:function(e
,t){return this._get(e,t)},_get:function(e,t,n){for(var r,s=t||this,i=this._getP
athParts(e),o=0;o<i.length;o++){if(!s)return;var a=i[o];r&&"#"==a[0]?s=Polymer.C
ollection.get(r).getItem(a):(s=s[a],n&&r&&parseInt(a,10)==a&&(i[o]=Polymer.Colle
ction.get(r).getKey(s))),r=Array.isArray(s)?s:null}return n&&(n.path=i.join(".")
),s},_pathEffector:function(t,n){var r=e.root(t),s=this._propertyEffects&&this._
propertyEffects[r];if(s)for(var i,o=0;o<s.length&&(i=s[o]);o++){var a=i.pathFn;a
&&a.call(this,t,n,i.effect)}this._boundPaths&&this._notifyBoundPaths(t,n)},_anno
tationPathEffect:function(t,n,r){if(e.matches(r.value,!1,t))Polymer.Bind._annota
tionEffect.call(this,t,n,r);else if(!r.negate&&e.isDescendant(r.value,t)){var s=
this._nodes[r.index];if(s&&s._notifyPath){var i=e.translate(r.value,r.name,t);s.
_notifyPath(i,n,!0)}}},_complexObserverPathEffect:function(t,n,r){e.matches(r.tr
igger.name,r.trigger.wildcard,t)&&Polymer.Bind._complexObserverEffect.call(this,
t,n,r)},_computePathEffect:function(t,n,r){e.matches(r.trigger.name,r.trigger.wi
ldcard,t)&&Polymer.Bind._computeEffect.call(this,t,n,r)},_annotatedComputationPa
thEffect:function(t,n,r){e.matches(r.trigger.name,r.trigger.wildcard,t)&&Polymer
.Bind._annotatedComputationEffect.call(this,t,n,r)},linkPaths:function(e,t){this
._boundPaths=this._boundPaths||{},t?this._boundPaths[e]=t:this.unlinkPaths(e)},u
nlinkPaths:function(e){this._boundPaths&&delete this._boundPaths[e]},_notifyBoun
dPaths:function(t,n){for(var r in this._boundPaths){var s=this._boundPaths[r];e.
isDescendant(r,t)?this._notifyPath(e.translate(r,s,t),n):e.isDescendant(s,t)&&th
is._notifyPath(e.translate(s,r,t),n)}},_notifyPathUp:function(t,n){var r=e.root(
t),s=Polymer.CaseMap.camelToDashCase(r),i=s+this._EVENT_CHANGED;this.fire(i,{pat
h:t,value:n},{bubbles:!1,_useCache:!0})},_EVENT_CHANGED:"-changed",notifySplices
:function(e,t){var n={},r=this._get(e,this,n);this._notifySplices(r,n.path,t)},_
notifySplices:function(e,t,n){var r={keySplices:Polymer.Collection.applySplices(
e,n),indexSplices:n},s=t+".splices";this._notifyPath(s,r),this._notifyPath(t+".l
ength",e.length),this.__data__[s]={keySplices:null,indexSplices:null}},_notifySp
lice:function(e,t,n,r,s){this._notifySplices(e,t,[{index:n,addedCount:r,removed:
s,object:e,type:"splice"}])},push:function(e){var t={},n=this._get(e,this,t),r=A
rray.prototype.slice.call(arguments,1),s=n.length,i=n.push.apply(n,r);return r.l
ength&&this._notifySplice(n,t.path,s,r.length,[]),i},pop:function(e){var t={},n=
this._get(e,this,t),r=Boolean(n.length),s=Array.prototype.slice.call(arguments,1
),i=n.pop.apply(n,s);return r&&this._notifySplice(n,t.path,n.length,0,[i]),i},sp
lice:function(e,t){var n={},r=this._get(e,this,n);t=t<0?r.length-Math.floor(-t):
Math.floor(t),t||(t=0);var s=Array.prototype.slice.call(arguments,1),i=r.splice.
apply(r,s),o=Math.max(s.length-2,0);return(o||i.length)&&this._notifySplice(r,n.
path,t,o,i),i},shift:function(e){var t={},n=this._get(e,this,t),r=Boolean(n.leng
th),s=Array.prototype.slice.call(arguments,1),i=n.shift.apply(n,s);return r&&thi
s._notifySplice(n,t.path,0,0,[i]),i},unshift:function(e){var t={},n=this._get(e,
this,t),r=Array.prototype.slice.call(arguments,1),s=n.unshift.apply(n,r);return
r.length&&this._notifySplice(n,t.path,0,r.length,[]),s},prepareModelNotifyPath:f
unction(e){this.mixin(e,{fire:Polymer.Base.fire,_getEvent:Polymer.Base._getEvent
,__eventCache:Polymer.Base.__eventCache,notifyPath:Polymer.Base.notifyPath,_get:
Polymer.Base._get,_EVENT_CHANGED:Polymer.Base._EVENT_CHANGED,_notifyPath:Polymer
.Base._notifyPath,_notifyPathUp:Polymer.Base._notifyPathUp,_pathEffector:Polymer
.Base._pathEffector,_annotationPathEffect:Polymer.Base._annotationPathEffect,_co
mplexObserverPathEffect:Polymer.Base._complexObserverPathEffect,_annotatedComput
ationPathEffect:Polymer.Base._annotatedComputationPathEffect,_computePathEffect:
Polymer.Base._computePathEffect,_notifyBoundPaths:Polymer.Base._notifyBoundPaths
,_getPathParts:Polymer.Base._getPathParts})}})}(),Polymer.Base._addFeature({reso
lveUrl:function(e){var t=Polymer.DomModule.import(this.is),n="";if(t){var r=t.ge
tAttribute("assetpath")||"";n=Polymer.ResolveUrl.resolveUrl(r,t.ownerDocument.ba
seURI)}return Polymer.ResolveUrl.resolveUrl(e,n)}}),Polymer.CssParse=function(){
return{parse:function(e){return e=this._clean(e),this._parseCss(this._lex(e),e)}
,_clean:function(e){return e.replace(this._rx.comments,"").replace(this._rx.port
,"")},_lex:function(e){for(var t={start:0,end:e.length},n=t,r=0,s=e.length;r<s;r
++)switch(e[r]){case this.OPEN_BRACE:n.rules||(n.rules=[]);var i=n,o=i.rules[i.r
ules.length-1];n={start:r+1,parent:i,previous:o},i.rules.push(n);break;case this
.CLOSE_BRACE:n.end=r+1,n=n.parent||t}return t},_parseCss:function(e,t){var n=t.s
ubstring(e.start,e.end-1);if(e.parsedCssText=e.cssText=n.trim(),e.parent){var r=
e.previous?e.previous.end:e.parent.start;n=t.substring(r,e.start-1),n=this._expa
ndUnicodeEscapes(n),n=n.replace(this._rx.multipleSpaces," "),n=n.substring(n.las
tIndexOf(";")+1);var s=e.parsedSelector=e.selector=n.trim();e.atRule=0===s.index
Of(this.AT_START),e.atRule?0===s.indexOf(this.MEDIA_START)?e.type=this.types.MED
IA_RULE:s.match(this._rx.keyframesRule)&&(e.type=this.types.KEYFRAMES_RULE,e.key
framesName=e.selector.split(this._rx.multipleSpaces).pop()):0===s.indexOf(this.V
AR_START)?e.type=this.types.MIXIN_RULE:e.type=this.types.STYLE_RULE}var i=e.rule
s;if(i)for(var o,a=0,l=i.length;a<l&&(o=i[a]);a++)this._parseCss(o,t);return e},
_expandUnicodeEscapes:function(e){return e.replace(/\\([0-9a-f]{1,6})\s/gi,funct
ion(){for(var e=arguments[1],t=6-e.length;t--;)e="0"+e;return"\\"+e})},stringify
:function(e,t,n){n=n||"";var r="";if(e.cssText||e.rules){var s=e.rules;if(s&&!th
is._hasMixinRules(s))for(var i,o=0,a=s.length;o<a&&(i=s[o]);o++)r=this.stringify
(i,t,r);else r=t?e.cssText:this.removeCustomProps(e.cssText),r=r.trim(),r&&(r="
"+r+"\n")}return r&&(e.selector&&(n+=e.selector+" "+this.OPEN_BRACE+"\n"),n+=r,
e.selector&&(n+=this.CLOSE_BRACE+"\n\n")),n},_hasMixinRules:function(e){return 0
===e[0].selector.indexOf(this.VAR_START)},removeCustomProps:function(e){return e
=this.removeCustomPropAssignment(e),this.removeCustomPropApply(e)},removeCustomP
ropAssignment:function(e){return e.replace(this._rx.customProp,"").replace(this.
_rx.mixinProp,"")},removeCustomPropApply:function(e){return e.replace(this._rx.m
ixinApply,"").replace(this._rx.varApply,"")},types:{STYLE_RULE:1,KEYFRAMES_RULE:
7,MEDIA_RULE:4,MIXIN_RULE:1e3},OPEN_BRACE:"{",CLOSE_BRACE:"}",_rx:{comments:/\/\
*[^*]*\*+([^\/*][^*]*\*+)*\//gim,port:/@import[^;]*;/gim,customProp:/(?:^[^;\-\s
}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,mixinProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^
{};]*?{[^}]*?}(?:[;\n]|$)?/gim,mixinApply:/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/
gim,varApply:/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,keyframesRule:/^@[^\s]*
keyframes/,multipleSpaces:/\s+/g},VAR_START:"--",MEDIA_START:"@media",AT_START:"
@"}}(),Polymer.StyleUtil=function(){var e=Polymer.Settings;return{NATIVE_VARIABL
ES:Polymer.Settings.useNativeCSSProperties,MODULE_STYLES_SELECTOR:"style, link[r
el=import][type~=css], template",INCLUDE_ATTR:"include",toCssText:function(e,t){
return"string"==typeof e&&(e=this.parser.parse(e)),t&&this.forEachRule(e,t),this
.parser.stringify(e,this.NATIVE_VARIABLES)},forRulesInStyles:function(e,t,n){if(
e)for(var r,s=0,i=e.length;s<i&&(r=e[s]);s++)this.forEachRuleInStyle(r,t,n)},for
ActiveRulesInStyles:function(e,t,n){if(e)for(var r,s=0,i=e.length;s<i&&(r=e[s]);
s++)this.forEachRuleInStyle(r,t,n,!0)},rulesForStyle:function(e){return!e.__cssR
ules&&e.textContent&&(e.__cssRules=this.parser.parse(e.textContent)),e.__cssRule
s},isKeyframesSelector:function(e){return e.parent&&e.parent.type===this.ruleTyp
es.KEYFRAMES_RULE},forEachRuleInStyle:function(e,t,n,r){var s,i,o=this.rulesForS
tyle(e);t&&(s=function(n){t(n,e)}),n&&(i=function(t){n(t,e)}),this.forEachRule(o
,s,i,r)},forEachRule:function(e,t,n,r){if(e){var s=!1;if(r&&e.type===this.ruleTy
pes.MEDIA_RULE){var i=e.selector.match(this.rx.MEDIA_MATCH);i&&(window.matchMedi
a(i[1]).matches||(s=!0))}e.type===this.ruleTypes.STYLE_RULE?t(e):n&&e.type===thi
s.ruleTypes.KEYFRAMES_RULE?n(e):e.type===this.ruleTypes.MIXIN_RULE&&(s=!0);var o
=e.rules;if(o&&!s)for(var a,l=0,c=o.length;l<c&&(a=o[l]);l++)this.forEachRule(a,
t,n,r)}},applyCss:function(e,t,n,r){var s=this.createScopeStyle(e,t);return this
.applyStyle(s,n,r)},applyStyle:function(e,t,n){t=t||document.head;var r=n&&n.nex
tSibling||t.firstChild;return this.__lastHeadApplyNode=e,t.insertBefore(e,r)},cr
eateScopeStyle:function(e,t){var n=document.createElement("style");return t&&n.s
etAttribute("scope",t),n.textContent=e,n},__lastHeadApplyNode:null,applyStylePla
ceHolder:function(e){var t=document.createComment(" Shady DOM styles for "+e+" "
),n=this.__lastHeadApplyNode?this.__lastHeadApplyNode.nextSibling:null,r=documen
t.head;return r.insertBefore(t,n||r.firstChild),this.__lastHeadApplyNode=t,t},cs
sFromModules:function(e,t){for(var n=e.trim().split(" "),r="",s=0;s<n.length;s++
)r+=this.cssFromModule(n[s],t);return r},cssFromModule:function(e,t){var n=Polym
er.DomModule.import(e);return n&&!n._cssText&&(n._cssText=this.cssFromElement(n)
),!n&&t&&console.warn("Could not find style data in module named",e),n&&n._cssTe
xt||""},cssFromElement:function(e){for(var t,n="",r=e.content||e,s=Polymer.TreeA
pi.arrayCopy(r.querySelectorAll(this.MODULE_STYLES_SELECTOR)),i=0;i<s.length;i++
)if(t=s[i],"template"===t.localName)t.hasAttribute("preserve-content")||(n+=this
.cssFromElement(t));else if("style"===t.localName){var o=t.getAttribute(this.INC
LUDE_ATTR);o&&(n+=this.cssFromModules(o,!0)),t=t.__appliedElement||t,t.parentNod
e.removeChild(t),n+=this.resolveCss(t.textContent,e.ownerDocument)}else t.import
&&t.import.body&&(n+=this.resolveCss(t.import.body.textContent,t.import));return
n},isTargetedBuild:function(t){return e.useNativeShadow?"shadow"===t:"shady"===
t},cssBuildTypeForModule:function(e){var t=Polymer.DomModule.import(e);if(t)retu
rn this.getCssBuildType(t)},getCssBuildType:function(e){return e.getAttribute("c
ss-build")},_findMatchingParen:function(e,t){for(var n=0,r=t,s=e.length;r<s;r++)
switch(e[r]){case"(":n++;break;case")":if(0===--n)return r}return-1},processVari
ableAndFallback:function(e,t){var n=e.indexOf("var(");if(n===-1)return t(e,"",""
,"");var r=this._findMatchingParen(e,n+3),s=e.substring(n+4,r),i=e.substring(0,n
),o=this.processVariableAndFallback(e.substring(r+1),t),a=s.indexOf(",");if(a===
-1)return t(i,s.trim(),"",o);var l=s.substring(0,a).trim(),c=s.substring(a+1).tr
im();return t(i,l,c,o)},rx:{VAR_ASSIGN:/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:([^;
{]*)|{([^}]*)})(?:(?=[;\s}])|$)/gi,MIXIN_MATCH:/(?:^|\W+)@apply\s*\(?([^);\n]*)\
)?/gi,VAR_CONSUMED:/(--[\w-]+)\s*([:,;)]|$)/gi,ANIMATION_MATCH:/(animation\s*:)|
(animation-name\s*:)/,MEDIA_MATCH:/@media[^(]*(\([^)]*\))/,IS_VAR:/^--/,BRACKETE
D:/\{[^}]*\}/g,HOST_PREFIX:"(?:^|[^.#[:])",HOST_SUFFIX:"($|[.:[\\s>+~])"},resolv
eCss:Polymer.ResolveUrl.resolveCss,parser:Polymer.CssParse,ruleTypes:Polymer.Css
Parse.types}}(),Polymer.StyleTransformer=function(){var e=Polymer.StyleUtil,t=Po
lymer.Settings,n={dom:function(e,t,n,r){this._transformDom(e,t||"",n,r)},_transf
ormDom:function(e,t,n,r){e.setAttribute&&this.element(e,t,n,r);for(var s=Polymer
.dom(e).childNodes,i=0;i<s.length;i++)this._transformDom(s[i],t,n,r)},element:fu
nction(e,t,n,s){if(n)s?e.removeAttribute(r):e.setAttribute(r,t);else if(t)if(e.c
lassList)s?(e.classList.remove(r),e.classList.remove(t)):(e.classList.add(r),e.c
lassList.add(t));else if(e.getAttribute){var i=e.getAttribute(g);s?i&&e.setAttri
bute(g,i.replace(r,"").replace(t,"")):e.setAttribute(g,(i?i+" ":"")+r+" "+t)}},e
lementStyles:function(n,r){var s,i=n._styles,o="",a=n.__cssBuild,l=t.useNativeSh
adow||"shady"===a;if(l){var h=this;s=function(e){e.selector=h._slottedToContent(
e.selector),e.selector=e.selector.replace(c,":host > *"),r&&r(e)}}for(var u,f=0,
p=i.length;f<p&&(u=i[f]);f++){var _=e.rulesForStyle(u);o+=l?e.toCssText(_,s):thi
s.css(_,n.is,n.extends,r,n._scopeCssViaAttr)+"\n\n"}return o.trim()},css:functio
n(t,n,r,s,i){var o=this._calcHostScope(n,r);n=this._calcElementScope(n,i);var a=
this;return e.toCssText(t,function(e){e.isScoped||(a.rule(e,n,o),e.isScoped=!0),
s&&s(e,n,o)})},_calcElementScope:function(e,t){return e?t?m+e+y:d+e:""},_calcHos
tScope:function(e,t){return t?"[is="+e+"]":e},rule:function(e,t,n){this._transfo
rmRule(e,this._transformComplexSelector,t,n)},_transformRule:function(e,t,n,r){e
.selector=e.transformedSelector=this._transformRuleCss(e,t,n,r)},_transformRuleC
ss:function(t,n,r,s){var o=t.selector.split(i);if(!e.isKeyframesSelector(t))for(
var a,l=0,c=o.length;l<c&&(a=o[l]);l++)o[l]=n.call(this,a,r,s);return o.join(i)}
,_transformComplexSelector:function(e,t,n){var r=!1,s=!1,a=this;return e=e.trim(
),e=this._slottedToContent(e),e=e.replace(c,":host > *"),e=e.replace(P,l+" $1"),
e=e.replace(o,function(e,i,o){if(r)o=o.replace(_," ");else{var l=a._transformCom
poundSelector(o,i,t,n);r=r||l.stop,s=s||l.hostContext,i=l.combinator,o=l.value}r
eturn i+o}),s&&(e=e.replace(f,function(e,t,r,s){return t+r+" "+n+s+i+" "+t+n+r+s
})),e},_transformCompoundSelector:function(e,t,n,r){var s=e.search(_),i=!1;e.ind
exOf(u)>=0?i=!0:e.indexOf(l)>=0?e=this._transformHostSelector(e,r):0!==s&&(e=n?t
his._transformSimpleSelector(e,n):e),e.indexOf(p)>=0&&(t="");var o;return s>=0&&
(e=e.replace(_," "),o=!0),{value:e,combinator:t,stop:o,hostContext:i}},_transfor
mSimpleSelector:function(e,t){var n=e.split(v);return n[0]+=t,n.join(v)},_transf
ormHostSelector:function(e,t){var n=e.match(h),r=n&&n[2].trim()||"";if(r){if(r[0
].match(a))return e.replace(h,function(e,n,r){return t+r});var s=r.split(a)[0];r
eturn s===t?r:S}return e.replace(l,t)},documentRule:function(e){e.selector=e.par
sedSelector,this.normalizeRootSelector(e),t.useNativeShadow||this._transformRule
(e,this._transformDocumentSelector)},normalizeRootSelector:function(e){e.selecto
r=e.selector.replace(c,"html")},_transformDocumentSelector:function(e){return e.
match(_)?this._transformComplexSelector(e,s):this._transformSimpleSelector(e.tri
m(),s)},_slottedToContent:function(e){return e.replace(C,p+"> $1")},SCOPE_NAME:"
style-scope"},r=n.SCOPE_NAME,s=":not(["+r+"]):not(."+r+")",i=",",o=/(^|[\s>+~]+)
((?:\[.+?\]|[^\s>+~=\[])+)/g,a=/[[.:#*]/,l=":host",c=":root",h=/(:host)(?:\(((?:
\([^)(]*\)|[^)(]*)+?)\))/,u=":host-context",f=/(.*)(?::host-context)(?:\(((?:\([
^)(]*\)|[^)(]*)+?)\))(.*)/,p="::content",_=/::content|::shadow|\/deep\//,d=".",m
="["+r+"~=",y="]",v=":",g="class",P=new RegExp("^("+p+")"),S="should_not_match",
C=/(?:::slotted)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/g;return n}(),Polymer.StyleExt
ends=function(){var e=Polymer.StyleUtil;return{hasExtends:function(e){return Boo
lean(e.match(this.rx.EXTEND))},transform:function(t){var n=e.rulesForStyle(t),r=
this;return e.forEachRule(n,function(e){if(r._mapRuleOntoParent(e),e.parent)for(
var t;t=r.rx.EXTEND.exec(e.cssText);){var n=t[1],s=r._findExtendor(n,e);s&&r._ex
tendRule(e,s)}e.cssText=e.cssText.replace(r.rx.EXTEND,"")}),e.toCssText(n,functi
on(e){e.selector.match(r.rx.STRIP)&&(e.cssText="")},!0)},_mapRuleOntoParent:func
tion(e){if(e.parent){for(var t,n=e.parent.map||(e.parent.map={}),r=e.selector.sp
lit(","),s=0;s<r.length;s++)t=r[s],n[t.trim()]=e;return n}},_findExtendor:functi
on(e,t){return t.parent&&t.parent.map&&t.parent.map[e]||this._findExtendor(e,t.p
arent)},_extendRule:function(e,t){e.parent!==t.parent&&this._cloneAndAddRuleToPa
rent(t,e.parent),e.extends=e.extends||[],e.extends.push(t),t.selector=t.selector
.replace(this.rx.STRIP,""),t.selector=(t.selector&&t.selector+",\n")+e.selector,
t.extends&&t.extends.forEach(function(t){this._extendRule(e,t)},this)},_cloneAnd
AddRuleToParent:function(e,t){e=Object.create(e),e.parent=t,e.extends&&(e.extend
s=e.extends.slice()),t.rules.push(e)},rx:{EXTEND:/@extends\(([^)]*)\)\s*?;/gim,S
TRIP:/%[^,]*$/}}}(),Polymer.ApplyShim=function(){"use strict";function e(e,t){e=
e.trim(),m[e]={properties:t,dependants:{}}}function t(e){return e=e.trim(),m[e]}
function n(e,t){var n=_.exec(t);return n&&(t=n[1]?y._getInitialValueForProperty(
e):"apply-shim-inherit"),t}function r(e){for(var t,r,s,i,o=e.split(";"),a={},l=0
;l<o.length;l++)s=o[l],s&&(i=s.split(":"),i.length>1&&(t=i[0].trim(),r=n(t,i.sli
ce(1).join(":")),a[t]=r));return a}function s(e){var t=y.__currentElementProto,n
=t&&t.is;for(var r in e.dependants)r!==n&&(e.dependants[r].__applyShimInvalid=!0
)}function i(n,i,o,a){if(o&&c.processVariableAndFallback(o,function(e,n){n&&t(n)
&&(a="@apply "+n+";")}),!a)return n;var h=l(a),u=n.slice(0,n.indexOf("--")),f=r(
h),p=f,_=t(i),m=_&&_.properties;m?(p=Object.create(m),p=Polymer.Base.mixin(p,f))
:e(i,p);var y,v,g=[],P=!1;for(y in p)v=f[y],void 0===v&&(v="initial"),!m||y in m
||(P=!0),g.push(i+d+y+": "+v);return P&&s(_),_&&(_.properties=p),o&&(u=n+";"+u),
u+g.join("; ")+";"}function o(e,t,n){return"var("+t+",var("+n+"))"}function a(n,
r){n=n.replace(p,"");var s=[],i=t(n);if(i||(e(n,{}),i=t(n)),i){var o=y.__current
ElementProto;o&&(i.dependants[o.is]=o);var a,l,c;for(a in i.properties)c=r&&r[a]
,l=[a,": var(",n,d,a],c&&l.push(",",c),l.push(")"),s.push(l.join(""))}return s.j
oin("; ")}function l(e){for(var t;t=h.exec(e);){var n=t[0],s=t[1],i=t.index,o=i+
n.indexOf("@apply"),l=i+n.length,c=e.slice(0,o),u=e.slice(l),f=r(c),p=a(s,f);e=[
c,p,u].join(""),h.lastIndex=i+p.length}return e}var c=Polymer.StyleUtil,h=c.rx.M
IXIN_MATCH,u=c.rx.VAR_ASSIGN,f=/var\(\s*(--[^,]*),\s*(--[^)]*)\)/g,p=/;\s*/m,_=/
^\s*(initial)|(inherit)\s*$/,d="_-_",m={},y={_measureElement:null,_map:m,_separa
tor:d,transform:function(e,t){this.__currentElementProto=t,c.forRulesInStyles(e,
this._boundFindDefinitions),c.forRulesInStyles(e,this._boundFindApplications),t&
&(t.__applyShimInvalid=!1),this.__currentElementProto=null},_findDefinitions:fun
ction(e){var t=e.parsedCssText;t=t.replace(f,o),t=t.replace(u,i),e.cssText=t,":r
oot"===e.selector&&(e.selector=":host > *")},_findApplications:function(e){e.css
Text=l(e.cssText)},transformRule:function(e){this._findDefinitions(e),this._find
Applications(e)},_getInitialValueForProperty:function(e){return this._measureEle
ment||(this._measureElement=document.createElement("meta"),this._measureElement.
style.all="initial",document.head.appendChild(this._measureElement)),window.getC
omputedStyle(this._measureElement).getPropertyValue(e)}};return y._boundTransfor
mRule=y.transformRule.bind(y),y._boundFindDefinitions=y._findDefinitions.bind(y)
,y._boundFindApplications=y._findApplications.bind(y),y}(),function(){var e=Poly
mer.Base._prepElement,t=Polymer.Settings.useNativeShadow,n=Polymer.StyleUtil,r=P
olymer.StyleTransformer,s=Polymer.StyleExtends,i=Polymer.ApplyShim,o=Polymer.Set
tings;Polymer.Base._addFeature({_prepElement:function(t){this._encapsulateStyle&
&"shady"!==this.__cssBuild&&r.element(t,this.is,this._scopeCssViaAttr),e.call(th
is,t)},_prepStyles:function(){void 0===this._encapsulateStyle&&(this._encapsulat
eStyle=!t),t||(this._scopeStyle=n.applyStylePlaceHolder(this.is)),this.__cssBuil
d=n.cssBuildTypeForModule(this.is)},_prepShimStyles:function(){if(this._template
){var e=n.isTargetedBuild(this.__cssBuild);if(o.useNativeCSSProperties&&"shadow"
===this.__cssBuild&&e)return;this._styles=this._styles||this._collectStyles(),o.
useNativeCSSProperties&&!this.__cssBuild&&i.transform(this._styles,this);var s=o
.useNativeCSSProperties&&e?this._styles.length&&this._styles[0].textContent.trim
():r.elementStyles(this);this._prepStyleProperties(),!this._needsStyleProperties
()&&s&&n.applyCss(s,this.is,t?this._template.content:null,this._scopeStyle)}else
this._styles=[]},_collectStyles:function(){var e=[],t="",r=this.styleModules;if
(r)for(var i,o=0,a=r.length;o<a&&(i=r[o]);o++)t+=n.cssFromModule(i);t+=n.cssFrom
Module(this.is);var l=this._template&&this._template.parentNode;if(!this._templa
te||l&&l.id.toLowerCase()===this.is||(t+=n.cssFromElement(this._template)),t){va
r c=document.createElement("style");c.textContent=t,s.hasExtends(c.textContent)&
&(t=s.transform(c)),e.push(c)}return e},_elementAdd:function(e){this._encapsulat
eStyle&&(e.__styleScoped?e.__styleScoped=!1:r.dom(e,this.is,this._scopeCssViaAtt
r))},_elementRemove:function(e){this._encapsulateStyle&&r.dom(e,this.is,this._sc
opeCssViaAttr,!0)},scopeSubtree:function(e,n){if(!t){var r=this,s=function(e){if
(e.nodeType===Node.ELEMENT_NODE){var t=e.getAttribute("class");e.setAttribute("c
lass",r._scopeElementClass(e,t));for(var n,s=e.querySelectorAll("*"),i=0;i<s.len
gth&&(n=s[i]);i++)t=n.getAttribute("class"),n.setAttribute("class",r._scopeEleme
ntClass(n,t))}};if(s(e),n){var i=new MutationObserver(function(e){for(var t,n=0;
n<e.length&&(t=e[n]);n++)if(t.addedNodes)for(var r=0;r<t.addedNodes.length;r++)s
(t.addedNodes[r])});return i.observe(e,{childList:!0,subtree:!0}),i}}}})}(),Poly
mer.StyleProperties=function(){"use strict";function e(e,t){var n=parseInt(e/32)
,r=1<<e%32;t[n]=(t[n]||0)|r}var t=Polymer.DomApi.matchesSelector,n=Polymer.Style
Util,r=Polymer.StyleTransformer,s=navigator.userAgent.match("Trident"),i=Polymer
.Settings;return{decorateStyles:function(e,t){var s=this,i={},o=[],a=0,l=r._calc
HostScope(t.is,t.extends);n.forRulesInStyles(e,function(e,r){s.decorateRule(e),e
.index=a++,s.whenHostOrRootRule(t,e,r,function(r){if(e.parent.type===n.ruleTypes
.MEDIA_RULE&&(t.__notStyleScopeCacheable=!0),r.isHost){var s=r.selector.split("
").some(function(e){return 0===e.indexOf(l)&&e.length!==l.length});t.__notStyleS
copeCacheable=t.__notStyleScopeCacheable||s}}),s.collectPropertiesInCssText(e.pr
opertyInfo.cssText,i)},function(e){o.push(e)}),e._keyframes=o;var c=[];for(var h
in i)c.push(h);return c},decorateRule:function(e){if(e.propertyInfo)return e.pr
opertyInfo;var t={},n={},r=this.collectProperties(e,n);return r&&(t.properties=n
,e.rules=null),t.cssText=this.collectCssText(e),e.propertyInfo=t,t},collectPrope
rties:function(e,t){var n=e.propertyInfo;if(!n){for(var r,s,i,o=this.rx.VAR_ASSI
GN,a=e.parsedCssText;r=o.exec(a);)s=(r[2]||r[3]).trim(),"inherit"!==s&&(t[r[1].t
rim()]=s),i=!0;return i}if(n.properties)return Polymer.Base.mixin(t,n.properties
),!0},collectCssText:function(e){return this.collectConsumingCssText(e.parsedCss
Text)},collectConsumingCssText:function(e){return e.replace(this.rx.BRACKETED,""
).replace(this.rx.VAR_ASSIGN,"")},collectPropertiesInCssText:function(e,t){for(v
ar n;n=this.rx.VAR_CONSUMED.exec(e);){var r=n[1];":"!==n[2]&&(t[r]=!0)}},reify:f
unction(e){for(var t,n=Object.getOwnPropertyNames(e),r=0;r<n.length;r++)t=n[r],e
[t]=this.valueForProperty(e[t],e)},valueForProperty:function(e,t){if(e)if(e.inde
xOf(";")>=0)e=this.valueForProperties(e,t);else{var r=this,s=function(e,n,s,i){v
ar o=r.valueForProperty(t[n],t);return o&&"initial"!==o?"apply-shim-inherit"===o
&&(o="inherit"):o=r.valueForProperty(t[s]||s,t)||s,e+(o||"")+i};e=n.processVaria
bleAndFallback(e,s)}return e&&e.trim()||""},valueForProperties:function(e,t){for
(var n,r,s=e.split(";"),i=0;i<s.length;i++)if(n=s[i]){if(this.rx.MIXIN_MATCH.las
tIndex=0,r=this.rx.MIXIN_MATCH.exec(n))n=this.valueForProperty(t[r[1]],t);else{v
ar o=n.indexOf(":");if(o!==-1){var a=n.substring(o);a=a.trim(),a=this.valueForPr
operty(a,t)||a,n=n.substring(0,o)+a}}s[i]=n&&n.lastIndexOf(";")===n.length-1?n.s
lice(0,-1):n||""}return s.join(";")},applyProperties:function(e,t){var n="";e.pr
opertyInfo||this.decorateRule(e),e.propertyInfo.cssText&&(n=this.valueForPropert
ies(e.propertyInfo.cssText,t)),e.cssText=n},applyKeyframeTransforms:function(e,t
){var n=e.cssText,r=e.cssText;if(null==e.hasAnimations&&(e.hasAnimations=this.rx
.ANIMATION_MATCH.test(n)),e.hasAnimations){var s;if(null==e.keyframeNamesToTrans
form){e.keyframeNamesToTransform=[];for(var i in t)s=t[i],r=s(n),n!==r&&(n=r,e.k
eyframeNamesToTransform.push(i))}else{for(var o=0;o<e.keyframeNamesToTransform.l
ength;++o)s=t[e.keyframeNamesToTransform[o]],n=s(n);r=n}}e.cssText=r},propertyDa
taFromStyles:function(r,s){var i={},o=this,a=[];return n.forActiveRulesInStyles(
r,function(n){n.propertyInfo||o.decorateRule(n);var r=n.transformedSelector||n.p
arsedSelector;s&&n.propertyInfo.properties&&r&&t.call(s,r)&&(o.collectProperties
(n,i),e(n.index,a))}),{properties:i,key:a}},_rootSelector:/:root|:host\s*>\s*\*/
,_checkRoot:function(e,t){return Boolean(t.match(this._rootSelector))||"html"===
e&&t.indexOf("html")>-1},whenHostOrRootRule:function(e,t,n,s){if(t.propertyInfo|
|self.decorateRule(t),t.propertyInfo.properties){var o=e.is?r._calcHostScope(e.i
s,e.extends):"html",a=t.parsedSelector,l=this._checkRoot(o,a),c=!l&&0===a.indexO
f(":host"),h=e.__cssBuild||n.__cssBuild;if("shady"===h&&(l=a===o+" > *."+o||a.in
dexOf("html")>-1,c=!l&&0===a.indexOf(o)),l||c){var u=o;c&&(i.useNativeShadow&&!t
.transformedSelector&&(t.transformedSelector=r._transformRuleCss(t,r._transformC
omplexSelector,e.is,o)),u=t.transformedSelector||t.parsedSelector),l&&"html"===o
&&(u=t.transformedSelector||t.parsedSelector),s({selector:u,isHost:c,isRoot:l})}
}},hostAndRootPropertiesForScope:function(e){var r={},s={},i=this;return n.forAc
tiveRulesInStyles(e._styles,function(n,o){i.whenHostOrRootRule(e,n,o,function(o)
{var a=e._element||e;t.call(a,o.selector)&&(o.isHost?i.collectProperties(n,r):i.
collectProperties(n,s))})}),{rootProps:s,hostProps:r}},transformStyles:function(
e,t,n){var s=this,o=r._calcHostScope(e.is,e.extends),a=e.extends?"\\"+o.slice(0,
-1)+"\\]":o,l=new RegExp(this.rx.HOST_PREFIX+a+this.rx.HOST_SUFFIX),c=this._elem
entKeyframeTransforms(e,n);return r.elementStyles(e,function(r){s.applyPropertie
s(r,t),i.useNativeShadow||Polymer.StyleUtil.isKeyframesSelector(r)||!r.cssText||
(s.applyKeyframeTransforms(r,c),s._scopeSelector(r,l,o,e._scopeCssViaAttr,n))})}
,_elementKeyframeTransforms:function(e,t){var n=e._styles._keyframes,r={};if(!i.
useNativeShadow&&n)for(var s=0,o=n[s];s<n.length;o=n[++s])this._scopeKeyframes(o
,t),r[o.keyframesName]=this._keyframesRuleTransformer(o);return r},_keyframesRul
eTransformer:function(e){return function(t){return t.replace(e.keyframesNameRx,e
.transformedKeyframesName)}},_scopeKeyframes:function(e,t){e.keyframesNameRx=new
RegExp(e.keyframesName,"g"),e.transformedKeyframesName=e.keyframesName+"-"+t,e.
transformedSelector=e.transformedSelector||e.selector,e.selector=e.transformedSe
lector.replace(e.keyframesName,e.transformedKeyframesName)},_scopeSelector:funct
ion(e,t,n,s,i){e.transformedSelector=e.transformedSelector||e.selector;for(var o
,a=e.transformedSelector,l=s?"["+r.SCOPE_NAME+"~="+i+"]":"."+i,c=a.split(","),h=
0,u=c.length;h<u&&(o=c[h]);h++)c[h]=o.match(t)?o.replace(n,l):l+" "+o;e.selector
=c.join(",")},applyElementScopeSelector:function(e,t,n,s){var i=s?e.getAttribute
(r.SCOPE_NAME):e.getAttribute("class")||"",o=n?i.replace(n,t):(i?i+" ":"")+this.
XSCOPE_NAME+" "+t;i!==o&&(s?e.setAttribute(r.SCOPE_NAME,o):e.setAttribute("class
",o))},applyElementStyle:function(e,t,r,o){var a=o?o.textContent||"":this.transf
ormStyles(e,t,r),l=e._customStyle;return l&&!i.useNativeShadow&&l!==o&&(l._useCo
unt--,l._useCount<=0&&l.parentNode&&l.parentNode.removeChild(l)),i.useNativeShad
ow?e._customStyle?(e._customStyle.textContent=a,o=e._customStyle):a&&(o=n.applyC
ss(a,r,e.root,e._scopeStyle)):o?o.parentNode||(s&&a.indexOf("@media")>-1&&(o.tex
tContent=a),n.applyStyle(o,null,e._scopeStyle)):a&&(o=n.applyCss(a,r,null,e._sco
peStyle)),o&&(o._useCount=o._useCount||0,e._customStyle!=o&&o._useCount++,e._cus
tomStyle=o),o},mixinCustomStyle:function(e,t){var n;for(var r in t)n=t[r],(n||0=
==n)&&(e[r]=n)},updateNativeStyleProperties:function(e,t){var n=e.__customStyleP
roperties;if(n)for(var r=0;r<n.length;r++)e.style.removeProperty(n[r]);var s=[];
for(var i in t)null!==t[i]&&(e.style.setProperty(i,t[i]),s.push(i));e.__customSt
yleProperties=s},rx:n.rx,XSCOPE_NAME:"x-scope"}}(),function(){Polymer.StyleCache
=function(){this.cache={}},Polymer.StyleCache.prototype={MAX:100,store:function(
e,t,n,r){t.keyValues=n,t.styles=r;var s=this.cache[e]=this.cache[e]||[];s.push(t
),s.length>this.MAX&&s.shift()},retrieve:function(e,t,n){var r=this.cache[e];if(
r)for(var s,i=r.length-1;i>=0;i--)if(s=r[i],n===s.styles&&this._objectsEqual(t,s
.keyValues))return s},clear:function(){this.cache={}},_objectsEqual:function(e,t
){var n,r;for(var s in e)if(n=e[s],r=t[s],!("object"==typeof n&&n?this._objectsS
trictlyEqual(n,r):n===r))return!1;return!Array.isArray(e)||e.length===t.length},
_objectsStrictlyEqual:function(e,t){return this._objectsEqual(e,t)&&this._object
sEqual(t,e)}}}(),Polymer.StyleDefaults=function(){var e=Polymer.StyleProperties,
t=Polymer.StyleCache,n=Polymer.Settings.useNativeCSSProperties,r={_styles:[],_pr
operties:null,customStyle:{},_styleCache:new t,_element:Polymer.DomApi.wrap(docu
ment.documentElement),addStyle:function(e){this._styles.push(e),this._properties
=null},get _styleProperties(){return this._properties||(e.decorateStyles(this._s
tyles,this),this._styles._scopeStyleProperties=null,this._properties=e.hostAndRo
otPropertiesForScope(this).rootProps,e.mixinCustomStyle(this._properties,this.cu
stomStyle),e.reify(this._properties)),this._properties},hasStyleProperties:funct
ion(){return Boolean(this._properties)},_needsStyleProperties:function(){},_comp
uteStyleProperties:function(){return this._styleProperties},updateStyles:functio
n(t){this._properties=null,t&&Polymer.Base.mixin(this.customStyle,t),this._style
Cache.clear();for(var r,s=0;s<this._styles.length;s++)r=this._styles[s],r=r.__im
portElement||r,r._apply();n&&e.updateNativeStyleProperties(document.documentElem
ent,this.customStyle)}};return r}(),function(){"use strict";var e=Polymer.Base.s
erializeValueToAttribute,t=Polymer.StyleProperties,n=Polymer.StyleTransformer,r=
Polymer.StyleDefaults,s=Polymer.Settings.useNativeShadow,i=Polymer.Settings.useN
ativeCSSProperties;Polymer.Base._addFeature({_prepStyleProperties:function(){i||
(this._ownStylePropertyNames=this._styles&&this._styles.length?t.decorateStyles(
this._styles,this):null); |
| 4 },customStyle:null,getComputedStyleValue:function(e){return!i&&this._styleProper
ties&&this._styleProperties[e]||getComputedStyle(this).getPropertyValue(e)},_set
upStyleProperties:function(){this.customStyle={},this._styleCache=null,this._sty
leProperties=null,this._scopeSelector=null,this._ownStyleProperties=null,this._c
ustomStyle=null},_needsStyleProperties:function(){return Boolean(!i&&this._ownSt
ylePropertyNames&&this._ownStylePropertyNames.length)},_validateApplyShim:functi
on(){if(this.__applyShimInvalid){Polymer.ApplyShim.transform(this._styles,this._
_proto__);var e=n.elementStyles(this);if(s){var t=this._template.content.querySe
lector("style");t&&(t.textContent=e)}else{var r=this._scopeStyle&&this._scopeSty
le.nextSibling;r&&(r.textContent=e)}}},_beforeAttached:function(){this._scopeSel
ector&&!this.__stylePropertiesInvalid||!this._needsStyleProperties()||(this.__st
ylePropertiesInvalid=!1,this._updateStyleProperties())},_findStyleHost:function(
){for(var e,t=this;e=Polymer.dom(t).getOwnerRoot();){if(Polymer.isInstance(e.hos
t))return e.host;t=e.host}return r},_updateStyleProperties:function(){var e,n=th
is._findStyleHost();n._styleProperties||n._computeStyleProperties(),n._styleCach
e||(n._styleCache=new Polymer.StyleCache);var r=t.propertyDataFromStyles(n._styl
es,this),i=!this.__notStyleScopeCacheable;i&&(r.key.customStyle=this.customStyle
,e=n._styleCache.retrieve(this.is,r.key,this._styles));var a=Boolean(e);a?this._
styleProperties=e._styleProperties:this._computeStyleProperties(r.properties),th
is._computeOwnStyleProperties(),a||(e=o.retrieve(this.is,this._ownStylePropertie
s,this._styles));var l=Boolean(e)&&!a,c=this._applyStyleProperties(e);a||(c=c&&s
?c.cloneNode(!0):c,e={style:c,_scopeSelector:this._scopeSelector,_stylePropertie
s:this._styleProperties},i&&(r.key.customStyle={},this.mixin(r.key.customStyle,t
his.customStyle),n._styleCache.store(this.is,e,r.key,this._styles)),l||o.store(t
his.is,Object.create(e),this._ownStyleProperties,this._styles))},_computeStylePr
operties:function(e){var n=this._findStyleHost();n._styleProperties||n._computeS
tyleProperties();var r=Object.create(n._styleProperties),s=t.hostAndRootProperti
esForScope(this);this.mixin(r,s.hostProps),e=e||t.propertyDataFromStyles(n._styl
es,this).properties,this.mixin(r,e),this.mixin(r,s.rootProps),t.mixinCustomStyle
(r,this.customStyle),t.reify(r),this._styleProperties=r},_computeOwnStylePropert
ies:function(){for(var e,t={},n=0;n<this._ownStylePropertyNames.length;n++)e=thi
s._ownStylePropertyNames[n],t[e]=this._styleProperties[e];this._ownStyleProperti
es=t},_scopeCount:0,_applyStyleProperties:function(e){var n=this._scopeSelector;
this._scopeSelector=e?e._scopeSelector:this.is+"-"+this.__proto__._scopeCount++;
var r=t.applyElementStyle(this,this._styleProperties,this._scopeSelector,e&&e.st
yle);return s||t.applyElementScopeSelector(this,this._scopeSelector,n,this._scop
eCssViaAttr),r},serializeValueToAttribute:function(t,n,r){if(r=r||this,"class"==
=n&&!s){var i=r===this?this.domHost||this.dataHost:this;i&&(t=i._scopeElementCla
ss(r,t))}r=this.shadyRoot&&this.shadyRoot._hasDistributed?Polymer.dom(r):r,e.cal
l(this,t,n,r)},_scopeElementClass:function(e,t){return s||this._scopeCssViaAttr|
|(t=(t?t+" ":"")+a+" "+this.is+(e._scopeSelector?" "+l+" "+e._scopeSelector:""))
,t},updateStyles:function(e){e&&this.mixin(this.customStyle,e),i?t.updateNativeS
tyleProperties(this,this.customStyle):(this.isAttached?this._needsStylePropertie
s()?this._updateStyleProperties():this._styleProperties=null:this.__stylePropert
iesInvalid=!0,this._styleCache&&this._styleCache.clear(),this._updateRootStyles(
))},_updateRootStyles:function(e){e=e||this.root;for(var t,n=Polymer.dom(e)._que
ry(function(e){return e.shadyRoot||e.shadowRoot}),r=0,s=n.length;r<s&&(t=n[r]);r
++)t.updateStyles&&t.updateStyles()}}),Polymer.updateStyles=function(e){r.update
Styles(e),Polymer.Base._updateRootStyles(document)};var o=new Polymer.StyleCache
;Polymer.customStyleCache=o;var a=n.SCOPE_NAME,l=t.XSCOPE_NAME}(),Polymer.Base._
addFeature({_registerFeatures:function(){this._prepIs(),this._prepConstructor(),
this._prepStyles()},_finishRegisterFeatures:function(){this._prepTemplate(),this
._prepShimStyles(),this._prepAnnotations(),this._prepEffects(),this._prepBehavio
rs(),this._prepPropertyInfo(),this._prepBindings(),this._prepShady()},_prepBehav
ior:function(e){this._addPropertyEffects(e.properties),this._addComplexObserverE
ffects(e.observers),this._addHostAttributes(e.hostAttributes)},_initFeatures:fun
ction(){this._setupGestures(),this._setupConfigure(),this._setupStyleProperties(
),this._setupDebouncers(),this._setupShady(),this._registerHost(),this._template
&&(this._validateApplyShim(),this._poolContent(),this._beginHosting(),this._stam
pTemplate(),this._endHosting(),this._marshalAnnotationReferences()),this._marsha
lInstanceEffects(),this._marshalBehaviors(),this._marshalHostAttributes(),this._
marshalAttributes(),this._tryReady()},_marshalBehavior:function(e){e.listeners&&
this._listenListeners(e.listeners)}}),function(){var e,t=Polymer.StyleProperties
,n=Polymer.StyleUtil,r=Polymer.CssParse,s=Polymer.StyleDefaults,i=Polymer.StyleT
ransformer,o=Polymer.ApplyShim,a=Polymer.Debounce,l=Polymer.Settings;Polymer({is
:"custom-style",extends:"style",_template:null,properties:{include:String},ready
:function(){this.__appliedElement=this.__appliedElement||this,this.__cssBuild=n.
getCssBuildType(this),this.__appliedElement!==this&&(this.__appliedElement.__css
Build=this.__cssBuild),this._tryApply()},attached:function(){this._tryApply()},_
tryApply:function(){if(!this._appliesToDocument&&this.parentNode&&"dom-module"!=
=this.parentNode.localName){this._appliesToDocument=!0;var e=this.__appliedEleme
nt;if(l.useNativeCSSProperties||(this.__needsUpdateStyles=s.hasStyleProperties()
,s.addStyle(e)),e.textContent||this.include)this._apply(!0);else{var t=this,n=ne
w MutationObserver(function(){n.disconnect(),t._apply(!0)});n.observe(e,{childLi
st:!0})}}},_updateStyles:function(){Polymer.updateStyles()},_apply:function(e){v
ar t=this.__appliedElement;if(this.include&&(t.textContent=n.cssFromModules(this
.include,!0)+t.textContent),t.textContent){var r=this.__cssBuild,s=n.isTargetedB
uild(r);if(!l.useNativeCSSProperties||!s){var a=n.rulesForStyle(t);if(s||(n.forE
achRule(a,function(e){i.documentRule(e)}),l.useNativeCSSProperties&&!r&&o.transf
orm([t])),l.useNativeCSSProperties)t.textContent=n.toCssText(a);else{var c=this,
h=function(){c._flushCustomProperties()};e?Polymer.RenderStatus.whenReady(h):h()
}}}},_flushCustomProperties:function(){this.__needsUpdateStyles?(this.__needsUpd
ateStyles=!1,e=a(e,this._updateStyles)):this._applyCustomProperties()},_applyCus
tomProperties:function(){var e=this.__appliedElement;this._computeStylePropertie
s();var s=this._styleProperties,i=n.rulesForStyle(e);i&&(e.textContent=n.toCssTe
xt(i,function(e){var n=e.cssText=e.parsedCssText;e.propertyInfo&&e.propertyInfo.
cssText&&(n=r.removeCustomPropAssignment(n),e.cssText=t.valueForProperties(n,s))
}))}})}(),Polymer.Templatizer={properties:{__hideTemplateChildren__:{observer:"_
showHideChildren"}},_instanceProps:Polymer.nob,_parentPropPrefix:"_parent_",temp
latize:function(e){if(this._templatized=e,e._content||(e._content=e.content),e._
content._ctor)return this.ctor=e._content._ctor,void this._prepParentProperties(
this.ctor.prototype,e);var t=Object.create(Polymer.Base);this._customPrepAnnotat
ions(t,e),this._prepParentProperties(t,e),t._prepEffects(),this._customPrepEffec
ts(t),t._prepBehaviors(),t._prepPropertyInfo(),t._prepBindings(),t._notifyPathUp
=this._notifyPathUpImpl,t._scopeElementClass=this._scopeElementClassImpl,t.liste
n=this._listenImpl,t._showHideChildren=this._showHideChildrenImpl,t.__setPropert
yOrig=this.__setProperty,t.__setProperty=this.__setPropertyImpl;var n=this._cons
tructorImpl,r=function(e,t){n.call(this,e,t)};r.prototype=t,t.constructor=r,e._c
ontent._ctor=r,this.ctor=r},_getRootDataHost:function(){return this.dataHost&&th
is.dataHost._rootDataHost||this.dataHost},_showHideChildrenImpl:function(e){for(
var t=this._children,n=0;n<t.length;n++){var r=t[n];Boolean(e)!=Boolean(r.__hide
TemplateChildren__)&&(r.nodeType===Node.TEXT_NODE?e?(r.__polymerTextContent__=r.
textContent,r.textContent=""):r.textContent=r.__polymerTextContent__:r.style&&(e
?(r.__polymerDisplay__=r.style.display,r.style.display="none"):r.style.display=r
.__polymerDisplay__)),r.__hideTemplateChildren__=e}},__setPropertyImpl:function(
e,t,n,r){r&&r.__hideTemplateChildren__&&"textContent"==e&&(e="__polymerTextConte
nt__"),this.__setPropertyOrig(e,t,n,r)},_debounceTemplate:function(e){Polymer.do
m.addDebouncer(this.debounce("_debounceTemplate",e))},_flushTemplates:function()
{Polymer.dom.flush()},_customPrepEffects:function(e){var t=e._parentProps;for(va
r n in t)e._addPropertyEffect(n,"function",this._createHostPropEffector(n));for(
n in this._instanceProps)e._addPropertyEffect(n,"function",this._createInstanceP
ropEffector(n))},_customPrepAnnotations:function(e,t){e._template=t;var n=t._con
tent;if(!n._notes){var r=e._rootDataHost;r&&(Polymer.Annotations.prepElement=fun
ction(){r._prepElement()}),n._notes=Polymer.Annotations.parseAnnotations(t),Poly
mer.Annotations.prepElement=null,this._processAnnotations(n._notes)}e._notes=n._
notes,e._parentProps=n._parentProps},_prepParentProperties:function(e,t){var n=t
his._parentProps=e._parentProps;if(this._forwardParentProp&&n){var r,s=e._parent
PropProto;if(!s){for(r in this._instanceProps)delete n[r];s=e._parentPropProto=O
bject.create(null),t!=this&&(Polymer.Bind.prepareModel(s),Polymer.Base.prepareMo
delNotifyPath(s));for(r in n){var i=this._parentPropPrefix+r,o=[{kind:"function"
,effect:this._createForwardPropEffector(r),fn:Polymer.Bind._functionEffect},{kin
d:"notify",fn:Polymer.Bind._notifyEffect,effect:{event:Polymer.CaseMap.camelToDa
shCase(i)+"-changed"}}];Polymer.Bind._createAccessors(s,i,o)}}var a=this;t!=this
&&(Polymer.Bind.prepareInstance(t),t._forwardParentProp=function(e,t){a._forward
ParentProp(e,t)}),this._extendTemplate(t,s),t._pathEffector=function(e,t,n){retu
rn a._pathEffectorImpl(e,t,n)}}},_createForwardPropEffector:function(e){return f
unction(t,n){this._forwardParentProp(e,n)}},_createHostPropEffector:function(e){
var t=this._parentPropPrefix;return function(n,r){this.dataHost._templatized[t+e
]=r}},_createInstancePropEffector:function(e){return function(t,n,r,s){s||this.d
ataHost._forwardInstanceProp(this,e,n)}},_extendTemplate:function(e,t){var n=Obj
ect.getOwnPropertyNames(t);t._propertySetter&&(e._propertySetter=t._propertySett
er);for(var r,s=0;s<n.length&&(r=n[s]);s++){var i=e[r],o=Object.getOwnPropertyDe
scriptor(t,r);Object.defineProperty(e,r,o),void 0!==i&&e._propertySetter(r,i)}},
_showHideChildren:function(e){},_forwardInstancePath:function(e,t,n){},_forwardI
nstanceProp:function(e,t,n){},_notifyPathUpImpl:function(e,t){var n=this.dataHos
t,r=Polymer.Path.root(e);n._forwardInstancePath.call(n,this,e,t),r in n._parentP
rops&&n._templatized._notifyPath(n._parentPropPrefix+e,t)},_pathEffectorImpl:fun
ction(e,t,n){if(this._forwardParentPath&&0===e.indexOf(this._parentPropPrefix)){
var r=e.substring(this._parentPropPrefix.length),s=Polymer.Path.root(r);s in thi
s._parentProps&&this._forwardParentPath(r,t)}Polymer.Base._pathEffector.call(thi
s._templatized,e,t,n)},_constructorImpl:function(e,t){this._rootDataHost=t._getR
ootDataHost(),this._setupConfigure(e),this._registerHost(t),this._beginHosting()
,this.root=this.instanceTemplate(this._template),this.root.__noContent=!this._no
tes._hasContent,this.root.__styleScoped=!0,this._endHosting(),this._marshalAnnot
atedNodes(),this._marshalInstanceEffects(),this._marshalAnnotatedListeners();for
(var n=[],r=this.root.firstChild;r;r=r.nextSibling)n.push(r),r._templateInstance
=this;this._children=n,t.__hideTemplateChildren__&&this._showHideChildren(!0),th
is._tryReady()},_listenImpl:function(e,t,n){var r=this,s=this._rootDataHost,i=s.
_createEventHandler(e,t,n),o=function(e){e.model=r,i(e)};s._listen(e,t,o)},_scop
eElementClassImpl:function(e,t){var n=this._rootDataHost;return n?n._scopeElemen
tClass(e,t):t},stamp:function(e){if(e=e||{},this._parentProps){var t=this._templ
atized;for(var n in this._parentProps)void 0===e[n]&&(e[n]=t[this._parentPropPre
fix+n])}return new this.ctor(e,this)},modelForElement:function(e){for(var t;e;)i
f(t=e._templateInstance){if(t.dataHost==this)return t;e=t.dataHost}else e=e.pare
ntNode}},Polymer({is:"dom-template",extends:"template",_template:null,behaviors:
[Polymer.Templatizer],ready:function(){this.templatize(this)}}),Polymer._collect
ions=new WeakMap,Polymer.Collection=function(e){Polymer._collections.set(e,this)
,this.userArray=e,this.store=e.slice(),this.initMap()},Polymer.Collection.protot
ype={constructor:Polymer.Collection,initMap:function(){for(var e=this.omap=new W
eakMap,t=this.pmap={},n=this.store,r=0;r<n.length;r++){var s=n[r];s&&"object"==t
ypeof s?e.set(s,r):t[s]=r}},add:function(e){var t=this.store.push(e)-1;return e&
&"object"==typeof e?this.omap.set(e,t):this.pmap[e]=t,"#"+t},removeKey:function(
e){(e=this._parseKey(e))&&(this._removeFromMap(this.store[e]),delete this.store[
e])},_removeFromMap:function(e){e&&"object"==typeof e?this.omap.delete(e):delete
this.pmap[e]},remove:function(e){var t=this.getKey(e);return this.removeKey(t),
t},getKey:function(e){var t;if(t=e&&"object"==typeof e?this.omap.get(e):this.pma
p[e],void 0!=t)return"#"+t},getKeys:function(){return Object.keys(this.store).ma
p(function(e){return"#"+e})},_parseKey:function(e){if(e&&"#"==e[0])return e.slic
e(1)},setItem:function(e,t){if(e=this._parseKey(e)){var n=this.store[e];n&&this.
_removeFromMap(n),t&&"object"==typeof t?this.omap.set(t,e):this.pmap[t]=e,this.s
tore[e]=t}},getItem:function(e){if(e=this._parseKey(e))return this.store[e]},get
Items:function(){var e=[],t=this.store;for(var n in t)e.push(t[n]);return e},_ap
plySplices:function(e){for(var t,n,r={},s=0;s<e.length&&(n=e[s]);s++){n.addedKey
s=[];for(var i=0;i<n.removed.length;i++)t=this.getKey(n.removed[i]),r[t]=r[t]?nu
ll:-1;for(i=0;i<n.addedCount;i++){var o=this.userArray[n.index+i];t=this.getKey(
o),t=void 0===t?this.add(o):t,r[t]=r[t]?null:1,n.addedKeys.push(t)}}var a=[],l=[
];for(t in r)r[t]<0&&(this.removeKey(t),a.push(t)),r[t]>0&&l.push(t);return[{rem
oved:a,added:l}]}},Polymer.Collection.get=function(e){return Polymer._collection
s.get(e)||new Polymer.Collection(e)},Polymer.Collection.applySplices=function(e,
t){var n=Polymer._collections.get(e);return n?n._applySplices(t):null},Polymer({
is:"dom-repeat",extends:"template",_template:null,properties:{items:{type:Array}
,as:{type:String,value:"item"},indexAs:{type:String,value:"index"},sort:{type:Fu
nction,observer:"_sortChanged"},filter:{type:Function,observer:"_filterChanged"}
,observe:{type:String,observer:"_observeChanged"},delay:Number,renderedItemCount
:{type:Number,notify:!0,readOnly:!0},initialCount:{type:Number,observer:"_initia
lizeChunking"},targetFramerate:{type:Number,value:20},_targetFrameTime:{type:Num
ber,computed:"_computeFrameTime(targetFramerate)"}},behaviors:[Polymer.Templatiz
er],observers:["_itemsChanged(items.*)"],created:function(){this._instances=[],t
his._pool=[],this._limit=1/0;var e=this;this._boundRenderChunk=function(){e._ren
derChunk()}},detached:function(){this.__isDetached=!0;for(var e=0;e<this._instan
ces.length;e++)this._detachInstance(e)},attached:function(){if(this.__isDetached
){this.__isDetached=!1;for(var e=Polymer.dom(Polymer.dom(this).parentNode),t=0;t
<this._instances.length;t++)this._attachInstance(t,e)}},ready:function(){this._i
nstanceProps={__key__:!0},this._instanceProps[this.as]=!0,this._instanceProps[th
is.indexAs]=!0,this.ctor||this.templatize(this)},_sortChanged:function(e){var t=
this._getRootDataHost();this._sortFn=e&&("function"==typeof e?e:function(){retur
n t[e].apply(t,arguments)}),this._needFullRefresh=!0,this.items&&this._debounceT
emplate(this._render)},_filterChanged:function(e){var t=this._getRootDataHost();
this._filterFn=e&&("function"==typeof e?e:function(){return t[e].apply(t,argumen
ts)}),this._needFullRefresh=!0,this.items&&this._debounceTemplate(this._render)}
,_computeFrameTime:function(e){return Math.ceil(1e3/e)},_initializeChunking:func
tion(){this.initialCount&&(this._limit=this.initialCount,this._chunkCount=this.i
nitialCount,this._lastChunkTime=performance.now())},_tryRenderChunk:function(){t
his.items&&this._limit<this.items.length&&this.debounce("renderChunk",this._requ
estRenderChunk)},_requestRenderChunk:function(){requestAnimationFrame(this._boun
dRenderChunk)},_renderChunk:function(){var e=performance.now(),t=this._targetFra
meTime/(e-this._lastChunkTime);this._chunkCount=Math.round(this._chunkCount*t)||
1,this._limit+=this._chunkCount,this._lastChunkTime=e,this._debounceTemplate(thi
s._render)},_observeChanged:function(){this._observePaths=this.observe&&this.obs
erve.replace(".*",".").split(" ")},_itemsChanged:function(e){if("items"==e.path)
Array.isArray(this.items)?this.collection=Polymer.Collection.get(this.items):thi
s.items?this._error(this._logf("dom-repeat","expected array for `items`, found",
this.items)):this.collection=null,this._keySplices=[],this._indexSplices=[],this
._needFullRefresh=!0,this._initializeChunking(),this._debounceTemplate(this._ren
der);else if("items.splices"==e.path)this._keySplices=this._keySplices.concat(e.
value.keySplices),this._indexSplices=this._indexSplices.concat(e.value.indexSpli
ces),this._debounceTemplate(this._render);else{var t=e.path.slice(6);this._forwa
rdItemPath(t,e.value),this._checkObservedPaths(t)}},_checkObservedPaths:function
(e){if(this._observePaths){e=e.substring(e.indexOf(".")+1);for(var t=this._obser
vePaths,n=0;n<t.length;n++)if(0===e.indexOf(t[n]))return this._needFullRefresh=!
0,void(this.delay?this.debounce("render",this._render,this.delay):this._debounce
Template(this._render))}},render:function(){this._needFullRefresh=!0,this._debou
nceTemplate(this._render),this._flushTemplates()},_render:function(){this._needF
ullRefresh?(this._applyFullRefresh(),this._needFullRefresh=!1):this._keySplices.
length&&(this._sortFn?this._applySplicesUserSort(this._keySplices):this._filterF
n?this._applyFullRefresh():this._applySplicesArrayOrder(this._indexSplices)),thi
s._keySplices=[],this._indexSplices=[];for(var e=this._keyToInstIdx={},t=this._i
nstances.length-1;t>=0;t--){var n=this._instances[t];n.isPlaceholder&&t<this._li
mit?n=this._insertInstance(t,n.__key__):!n.isPlaceholder&&t>=this._limit&&(n=thi
s._downgradeInstance(t,n.__key__)),e[n.__key__]=t,n.isPlaceholder||n.__setProper
ty(this.indexAs,t,!0)}this._pool.length=0,this._setRenderedItemCount(this._insta
nces.length),this.fire("dom-change"),this._tryRenderChunk()},_applyFullRefresh:f
unction(){var e,t=this.collection;if(this._sortFn)e=t?t.getKeys():[];else{e=[];v
ar n=this.items;if(n)for(var r=0;r<n.length;r++)e.push(t.getKey(n[r]))}var s=thi
s;for(this._filterFn&&(e=e.filter(function(e){return s._filterFn(t.getItem(e))})
),this._sortFn&&e.sort(function(e,n){return s._sortFn(t.getItem(e),t.getItem(n))
}),r=0;r<e.length;r++){var i=e[r],o=this._instances[r];o?(o.__key__=i,!o.isPlace
holder&&r<this._limit&&o.__setProperty(this.as,t.getItem(i),!0)):r<this._limit?t
his._insertInstance(r,i):this._insertPlaceholder(r,i)}for(var a=this._instances.
length-1;a>=r;a--)this._detachAndRemoveInstance(a)},_numericSort:function(e,t){r
eturn e-t},_applySplicesUserSort:function(e){for(var t,n,r=this.collection,s={},
i=0;i<e.length&&(n=e[i]);i++){for(var o=0;o<n.removed.length;o++)t=n.removed[o],
s[t]=s[t]?null:-1;for(o=0;o<n.added.length;o++)t=n.added[o],s[t]=s[t]?null:1}var
a=[],l=[];for(t in s)s[t]===-1&&a.push(this._keyToInstIdx[t]),1===s[t]&&l.push(
t);if(a.length)for(a.sort(this._numericSort),i=a.length-1;i>=0;i--){var c=a[i];v
oid 0!==c&&this._detachAndRemoveInstance(c)}var h=this;if(l.length){this._filter
Fn&&(l=l.filter(function(e){return h._filterFn(r.getItem(e))})),l.sort(function(
e,t){return h._sortFn(r.getItem(e),r.getItem(t))});var u=0;for(i=0;i<l.length;i+
+)u=this._insertRowUserSort(u,l[i])}},_insertRowUserSort:function(e,t){for(var n
=this.collection,r=n.getItem(t),s=this._instances.length-1,i=-1;e<=s;){var o=e+s
>>1,a=this._instances[o].__key__,l=this._sortFn(n.getItem(a),r);if(l<0)e=o+1;els
e{if(!(l>0)){i=o;break}s=o-1}}return i<0&&(i=s+1),this._insertPlaceholder(i,t),i
},_applySplicesArrayOrder:function(e){for(var t,n=0;n<e.length&&(t=e[n]);n++){fo
r(var r=0;r<t.removed.length;r++)this._detachAndRemoveInstance(t.index);for(r=0;
r<t.addedKeys.length;r++)this._insertPlaceholder(t.index+r,t.addedKeys[r])}},_de
tachInstance:function(e){var t=this._instances[e];if(!t.isPlaceholder){for(var n
=0;n<t._children.length;n++){var r=t._children[n];Polymer.dom(t.root).appendChil
d(r)}return t}},_attachInstance:function(e,t){var n=this._instances[e];n.isPlace
holder||t.insertBefore(n.root,this)},_detachAndRemoveInstance:function(e){var t=
this._detachInstance(e);t&&this._pool.push(t),this._instances.splice(e,1)},_inse
rtPlaceholder:function(e,t){this._instances.splice(e,0,{isPlaceholder:!0,__key__
:t})},_stampInstance:function(e,t){var n={__key__:t};return n[this.as]=this.coll
ection.getItem(t),n[this.indexAs]=e,this.stamp(n)},_insertInstance:function(e,t)
{var n=this._pool.pop();n?(n.__setProperty(this.as,this.collection.getItem(t),!0
),n.__setProperty("__key__",t,!0)):n=this._stampInstance(e,t);var r=this._instan
ces[e+1],s=r&&!r.isPlaceholder?r._children[0]:this,i=Polymer.dom(this).parentNod
e;return Polymer.dom(i).insertBefore(n.root,s),this._instances[e]=n,n},_downgrad
eInstance:function(e,t){var n=this._detachInstance(e);return n&&this._pool.push(
n),n={isPlaceholder:!0,__key__:t},this._instances[e]=n,n},_showHideChildren:func
tion(e){for(var t=0;t<this._instances.length;t++)this._instances[t]._showHideChi
ldren(e)},_forwardInstanceProp:function(e,t,n){if(t==this.as){var r;r=this._sort
Fn||this._filterFn?this.items.indexOf(this.collection.getItem(e.__key__)):e[this
.indexAs],this.set("items."+r,n)}},_forwardInstancePath:function(e,t,n){0===t.in
dexOf(this.as+".")&&this._notifyPath("items."+e.__key__+"."+t.slice(this.as.leng
th+1),n)},_forwardParentProp:function(e,t){for(var n,r=this._instances,s=0;s<r.l
ength&&(n=r[s]);s++)n.isPlaceholder||n.__setProperty(e,t,!0)},_forwardParentPath
:function(e,t){for(var n,r=this._instances,s=0;s<r.length&&(n=r[s]);s++)n.isPlac
eholder||n._notifyPath(e,t,!0)},_forwardItemPath:function(e,t){if(this._keyToIns
tIdx){var n=e.indexOf("."),r=e.substring(0,n<0?e.length:n),s=this._keyToInstIdx[
r],i=this._instances[s];i&&!i.isPlaceholder&&(n>=0?(e=this.as+"."+e.substring(n+
1),i._notifyPath(e,t,!0)):i.__setProperty(this.as,t,!0))}},itemForElement:functi
on(e){var t=this.modelForElement(e);return t&&t[this.as]},keyForElement:function
(e){var t=this.modelForElement(e);return t&&t.__key__},indexForElement:function(
e){var t=this.modelForElement(e);return t&&t[this.indexAs]}}),Polymer({is:"array
-selector",_template:null,properties:{items:{type:Array,observer:"clearSelection
"},multi:{type:Boolean,value:!1,observer:"clearSelection"},selected:{type:Object
,notify:!0},selectedItem:{type:Object,notify:!0},toggle:{type:Boolean,value:!1}}
,clearSelection:function(){if(Array.isArray(this.selected))for(var e=0;e<this.se
lected.length;e++)this.unlinkPaths("selected."+e);else this.unlinkPaths("selecte
d"),this.unlinkPaths("selectedItem");this.multi?this.selected&&!this.selected.le
ngth||(this.selected=[],this._selectedColl=Polymer.Collection.get(this.selected)
):(this.selected=null,this._selectedColl=null),this.selectedItem=null},isSelecte
d:function(e){return this.multi?void 0!==this._selectedColl.getKey(e):this.selec
ted==e},deselect:function(e){if(this.multi){if(this.isSelected(e)){var t=this._s
electedColl.getKey(e);this.arrayDelete("selected",e),this.unlinkPaths("selected.
"+t)}}else this.selected=null,this.selectedItem=null,this.unlinkPaths("selected"
),this.unlinkPaths("selectedItem")},select:function(e){var t=Polymer.Collection.
get(this.items),n=t.getKey(e);if(this.multi)if(this.isSelected(e))this.toggle&&t
his.deselect(e);else{this.push("selected",e);var r=this._selectedColl.getKey(e);
this.linkPaths("selected."+r,"items."+n)}else this.toggle&&e==this.selected?this
.deselect():(this.selected=e,this.selectedItem=e,this.linkPaths("selected","item
s."+n),this.linkPaths("selectedItem","items."+n))}}),Polymer({is:"dom-if",extend
s:"template",_template:null,properties:{if:{type:Boolean,value:!1,observer:"_que
ueRender"},restamp:{type:Boolean,value:!1,observer:"_queueRender"}},behaviors:[P
olymer.Templatizer],_queueRender:function(){this._debounceTemplate(this._render)
},detached:function(){this.parentNode&&(this.parentNode.nodeType!=Node.DOCUMENT_
FRAGMENT_NODE||Polymer.Settings.hasShadow&&this.parentNode instanceof ShadowRoot
)||this._teardownInstance()},attached:function(){this.if&&this.ctor&&this.async(
this._ensureInstance)},render:function(){this._flushTemplates()},_render:functio
n(){this.if?(this.ctor||this.templatize(this),this._ensureInstance(),this._showH
ideChildren()):this.restamp&&this._teardownInstance(),!this.restamp&&this._insta
nce&&this._showHideChildren(),this.if!=this._lastIf&&(this.fire("dom-change"),th
is._lastIf=this.if)},_ensureInstance:function(){var e=Polymer.dom(this).parentNo
de;if(e){var t=Polymer.dom(e);if(this._instance){var n=this._instance._children;
if(n&&n.length){var r=Polymer.dom(this).previousSibling;if(r!==n[n.length-1])for
(var s,i=0;i<n.length&&(s=n[i]);i++)t.insertBefore(s,this)}}else{this._instance=
this.stamp();var o=this._instance.root;t.insertBefore(o,this)}}},_teardownInstan
ce:function(){if(this._instance){var e=this._instance._children;if(e&&e.length)f
or(var t,n=Polymer.dom(Polymer.dom(e[0]).parentNode),r=0;r<e.length&&(t=e[r]);r+
+)n.removeChild(t);this._instance=null}},_showHideChildren:function(){var e=this
.__hideTemplateChildren__||!this.if;this._instance&&this._instance._showHideChil
dren(e)},_forwardParentProp:function(e,t){this._instance&&this._instance.__setPr
operty(e,t,!0)},_forwardParentPath:function(e,t){this._instance&&this._instance.
_notifyPath(e,t,!0)}}),Polymer({is:"dom-bind",extends:"template",_template:null,
created:function(){var e=this;Polymer.RenderStatus.whenReady(function(){"loading
"==document.readyState?document.addEventListener("DOMContentLoaded",function(){e
._markImportsReady()}):e._markImportsReady()})},_ensureReady:function(){this._re
adied||this._readySelf()},_markImportsReady:function(){this._importsReady=!0,thi
s._ensureReady()},_registerFeatures:function(){this._prepConstructor()},_insertC
hildren:function(){var e=Polymer.dom(Polymer.dom(this).parentNode);e.insertBefor
e(this.root,this)},_removeChildren:function(){if(this._children)for(var e=0;e<th
is._children.length;e++)this.root.appendChild(this._children[e])},_initFeatures:
function(){},_scopeElementClass:function(e,t){return this.dataHost?this.dataHost
._scopeElementClass(e,t):t},_configureInstanceProperties:function(){},_prepConfi
gure:function(){var e={};for(var t in this._propertyEffects)e[t]=this[t];var n=t
his._setupConfigure;this._setupConfigure=function(){n.call(this,e)}},attached:fu
nction(){this._importsReady&&this.render()},detached:function(){this._removeChil
dren()},render:function(){this._ensureReady(),this._children||(this._template=th
is,this._prepAnnotations(),this._prepEffects(),this._prepBehaviors(),this._prepC
onfigure(),this._prepBindings(),this._prepPropertyInfo(),Polymer.Base._initFeatu
res.call(this),this._children=Polymer.TreeApi.arrayCopyChildNodes(this.root)),th
is._insertChildren(),this.fire("dom-change")}})</script> <script> window.Swarmin
gBehaviors = window.SwarmingBehaviors || {}; | 4 },customStyle:null,getComputedStyleValue:function(e){return!i&&this._styleProper
ties&&this._styleProperties[e]||getComputedStyle(this).getPropertyValue(e)},_set
upStyleProperties:function(){this.customStyle={},this._styleCache=null,this._sty
leProperties=null,this._scopeSelector=null,this._ownStyleProperties=null,this._c
ustomStyle=null},_needsStyleProperties:function(){return Boolean(!i&&this._ownSt
ylePropertyNames&&this._ownStylePropertyNames.length)},_validateApplyShim:functi
on(){if(this.__applyShimInvalid){Polymer.ApplyShim.transform(this._styles,this._
_proto__);var e=n.elementStyles(this);if(s){var t=this._template.content.querySe
lector("style");t&&(t.textContent=e)}else{var r=this._scopeStyle&&this._scopeSty
le.nextSibling;r&&(r.textContent=e)}}},_beforeAttached:function(){this._scopeSel
ector&&!this.__stylePropertiesInvalid||!this._needsStyleProperties()||(this.__st
ylePropertiesInvalid=!1,this._updateStyleProperties())},_findStyleHost:function(
){for(var e,t=this;e=Polymer.dom(t).getOwnerRoot();){if(Polymer.isInstance(e.hos
t))return e.host;t=e.host}return r},_updateStyleProperties:function(){var e,n=th
is._findStyleHost();n._styleProperties||n._computeStyleProperties(),n._styleCach
e||(n._styleCache=new Polymer.StyleCache);var r=t.propertyDataFromStyles(n._styl
es,this),i=!this.__notStyleScopeCacheable;i&&(r.key.customStyle=this.customStyle
,e=n._styleCache.retrieve(this.is,r.key,this._styles));var a=Boolean(e);a?this._
styleProperties=e._styleProperties:this._computeStyleProperties(r.properties),th
is._computeOwnStyleProperties(),a||(e=o.retrieve(this.is,this._ownStylePropertie
s,this._styles));var l=Boolean(e)&&!a,c=this._applyStyleProperties(e);a||(c=c&&s
?c.cloneNode(!0):c,e={style:c,_scopeSelector:this._scopeSelector,_stylePropertie
s:this._styleProperties},i&&(r.key.customStyle={},this.mixin(r.key.customStyle,t
his.customStyle),n._styleCache.store(this.is,e,r.key,this._styles)),l||o.store(t
his.is,Object.create(e),this._ownStyleProperties,this._styles))},_computeStylePr
operties:function(e){var n=this._findStyleHost();n._styleProperties||n._computeS
tyleProperties();var r=Object.create(n._styleProperties),s=t.hostAndRootProperti
esForScope(this);this.mixin(r,s.hostProps),e=e||t.propertyDataFromStyles(n._styl
es,this).properties,this.mixin(r,e),this.mixin(r,s.rootProps),t.mixinCustomStyle
(r,this.customStyle),t.reify(r),this._styleProperties=r},_computeOwnStylePropert
ies:function(){for(var e,t={},n=0;n<this._ownStylePropertyNames.length;n++)e=thi
s._ownStylePropertyNames[n],t[e]=this._styleProperties[e];this._ownStyleProperti
es=t},_scopeCount:0,_applyStyleProperties:function(e){var n=this._scopeSelector;
this._scopeSelector=e?e._scopeSelector:this.is+"-"+this.__proto__._scopeCount++;
var r=t.applyElementStyle(this,this._styleProperties,this._scopeSelector,e&&e.st
yle);return s||t.applyElementScopeSelector(this,this._scopeSelector,n,this._scop
eCssViaAttr),r},serializeValueToAttribute:function(t,n,r){if(r=r||this,"class"==
=n&&!s){var i=r===this?this.domHost||this.dataHost:this;i&&(t=i._scopeElementCla
ss(r,t))}r=this.shadyRoot&&this.shadyRoot._hasDistributed?Polymer.dom(r):r,e.cal
l(this,t,n,r)},_scopeElementClass:function(e,t){return s||this._scopeCssViaAttr|
|(t=(t?t+" ":"")+a+" "+this.is+(e._scopeSelector?" "+l+" "+e._scopeSelector:""))
,t},updateStyles:function(e){e&&this.mixin(this.customStyle,e),i?t.updateNativeS
tyleProperties(this,this.customStyle):(this.isAttached?this._needsStylePropertie
s()?this._updateStyleProperties():this._styleProperties=null:this.__stylePropert
iesInvalid=!0,this._styleCache&&this._styleCache.clear(),this._updateRootStyles(
))},_updateRootStyles:function(e){e=e||this.root;for(var t,n=Polymer.dom(e)._que
ry(function(e){return e.shadyRoot||e.shadowRoot}),r=0,s=n.length;r<s&&(t=n[r]);r
++)t.updateStyles&&t.updateStyles()}}),Polymer.updateStyles=function(e){r.update
Styles(e),Polymer.Base._updateRootStyles(document)};var o=new Polymer.StyleCache
;Polymer.customStyleCache=o;var a=n.SCOPE_NAME,l=t.XSCOPE_NAME}(),Polymer.Base._
addFeature({_registerFeatures:function(){this._prepIs(),this._prepConstructor(),
this._prepStyles()},_finishRegisterFeatures:function(){this._prepTemplate(),this
._prepShimStyles(),this._prepAnnotations(),this._prepEffects(),this._prepBehavio
rs(),this._prepPropertyInfo(),this._prepBindings(),this._prepShady()},_prepBehav
ior:function(e){this._addPropertyEffects(e.properties),this._addComplexObserverE
ffects(e.observers),this._addHostAttributes(e.hostAttributes)},_initFeatures:fun
ction(){this._setupGestures(),this._setupConfigure(),this._setupStyleProperties(
),this._setupDebouncers(),this._setupShady(),this._registerHost(),this._template
&&(this._validateApplyShim(),this._poolContent(),this._beginHosting(),this._stam
pTemplate(),this._endHosting(),this._marshalAnnotationReferences()),this._marsha
lInstanceEffects(),this._marshalBehaviors(),this._marshalHostAttributes(),this._
marshalAttributes(),this._tryReady()},_marshalBehavior:function(e){e.listeners&&
this._listenListeners(e.listeners)}}),function(){var e,t=Polymer.StyleProperties
,n=Polymer.StyleUtil,r=Polymer.CssParse,s=Polymer.StyleDefaults,i=Polymer.StyleT
ransformer,o=Polymer.ApplyShim,a=Polymer.Debounce,l=Polymer.Settings;Polymer({is
:"custom-style",extends:"style",_template:null,properties:{include:String},ready
:function(){this.__appliedElement=this.__appliedElement||this,this.__cssBuild=n.
getCssBuildType(this),this.__appliedElement!==this&&(this.__appliedElement.__css
Build=this.__cssBuild),this._tryApply()},attached:function(){this._tryApply()},_
tryApply:function(){if(!this._appliesToDocument&&this.parentNode&&"dom-module"!=
=this.parentNode.localName){this._appliesToDocument=!0;var e=this.__appliedEleme
nt;if(l.useNativeCSSProperties||(this.__needsUpdateStyles=s.hasStyleProperties()
,s.addStyle(e)),e.textContent||this.include)this._apply(!0);else{var t=this,n=ne
w MutationObserver(function(){n.disconnect(),t._apply(!0)});n.observe(e,{childLi
st:!0})}}},_updateStyles:function(){Polymer.updateStyles()},_apply:function(e){v
ar t=this.__appliedElement;if(this.include&&(t.textContent=n.cssFromModules(this
.include,!0)+t.textContent),t.textContent){var r=this.__cssBuild,s=n.isTargetedB
uild(r);if(!l.useNativeCSSProperties||!s){var a=n.rulesForStyle(t);if(s||(n.forE
achRule(a,function(e){i.documentRule(e)}),l.useNativeCSSProperties&&!r&&o.transf
orm([t])),l.useNativeCSSProperties)t.textContent=n.toCssText(a);else{var c=this,
h=function(){c._flushCustomProperties()};e?Polymer.RenderStatus.whenReady(h):h()
}}}},_flushCustomProperties:function(){this.__needsUpdateStyles?(this.__needsUpd
ateStyles=!1,e=a(e,this._updateStyles)):this._applyCustomProperties()},_applyCus
tomProperties:function(){var e=this.__appliedElement;this._computeStylePropertie
s();var s=this._styleProperties,i=n.rulesForStyle(e);i&&(e.textContent=n.toCssTe
xt(i,function(e){var n=e.cssText=e.parsedCssText;e.propertyInfo&&e.propertyInfo.
cssText&&(n=r.removeCustomPropAssignment(n),e.cssText=t.valueForProperties(n,s))
}))}})}(),Polymer.Templatizer={properties:{__hideTemplateChildren__:{observer:"_
showHideChildren"}},_instanceProps:Polymer.nob,_parentPropPrefix:"_parent_",temp
latize:function(e){if(this._templatized=e,e._content||(e._content=e.content),e._
content._ctor)return this.ctor=e._content._ctor,void this._prepParentProperties(
this.ctor.prototype,e);var t=Object.create(Polymer.Base);this._customPrepAnnotat
ions(t,e),this._prepParentProperties(t,e),t._prepEffects(),this._customPrepEffec
ts(t),t._prepBehaviors(),t._prepPropertyInfo(),t._prepBindings(),t._notifyPathUp
=this._notifyPathUpImpl,t._scopeElementClass=this._scopeElementClassImpl,t.liste
n=this._listenImpl,t._showHideChildren=this._showHideChildrenImpl,t.__setPropert
yOrig=this.__setProperty,t.__setProperty=this.__setPropertyImpl;var n=this._cons
tructorImpl,r=function(e,t){n.call(this,e,t)};r.prototype=t,t.constructor=r,e._c
ontent._ctor=r,this.ctor=r},_getRootDataHost:function(){return this.dataHost&&th
is.dataHost._rootDataHost||this.dataHost},_showHideChildrenImpl:function(e){for(
var t=this._children,n=0;n<t.length;n++){var r=t[n];Boolean(e)!=Boolean(r.__hide
TemplateChildren__)&&(r.nodeType===Node.TEXT_NODE?e?(r.__polymerTextContent__=r.
textContent,r.textContent=""):r.textContent=r.__polymerTextContent__:r.style&&(e
?(r.__polymerDisplay__=r.style.display,r.style.display="none"):r.style.display=r
.__polymerDisplay__)),r.__hideTemplateChildren__=e}},__setPropertyImpl:function(
e,t,n,r){r&&r.__hideTemplateChildren__&&"textContent"==e&&(e="__polymerTextConte
nt__"),this.__setPropertyOrig(e,t,n,r)},_debounceTemplate:function(e){Polymer.do
m.addDebouncer(this.debounce("_debounceTemplate",e))},_flushTemplates:function()
{Polymer.dom.flush()},_customPrepEffects:function(e){var t=e._parentProps;for(va
r n in t)e._addPropertyEffect(n,"function",this._createHostPropEffector(n));for(
n in this._instanceProps)e._addPropertyEffect(n,"function",this._createInstanceP
ropEffector(n))},_customPrepAnnotations:function(e,t){e._template=t;var n=t._con
tent;if(!n._notes){var r=e._rootDataHost;r&&(Polymer.Annotations.prepElement=fun
ction(){r._prepElement()}),n._notes=Polymer.Annotations.parseAnnotations(t),Poly
mer.Annotations.prepElement=null,this._processAnnotations(n._notes)}e._notes=n._
notes,e._parentProps=n._parentProps},_prepParentProperties:function(e,t){var n=t
his._parentProps=e._parentProps;if(this._forwardParentProp&&n){var r,s=e._parent
PropProto;if(!s){for(r in this._instanceProps)delete n[r];s=e._parentPropProto=O
bject.create(null),t!=this&&(Polymer.Bind.prepareModel(s),Polymer.Base.prepareMo
delNotifyPath(s));for(r in n){var i=this._parentPropPrefix+r,o=[{kind:"function"
,effect:this._createForwardPropEffector(r),fn:Polymer.Bind._functionEffect},{kin
d:"notify",fn:Polymer.Bind._notifyEffect,effect:{event:Polymer.CaseMap.camelToDa
shCase(i)+"-changed"}}];Polymer.Bind._createAccessors(s,i,o)}}var a=this;t!=this
&&(Polymer.Bind.prepareInstance(t),t._forwardParentProp=function(e,t){a._forward
ParentProp(e,t)}),this._extendTemplate(t,s),t._pathEffector=function(e,t,n){retu
rn a._pathEffectorImpl(e,t,n)}}},_createForwardPropEffector:function(e){return f
unction(t,n){this._forwardParentProp(e,n)}},_createHostPropEffector:function(e){
var t=this._parentPropPrefix;return function(n,r){this.dataHost._templatized[t+e
]=r}},_createInstancePropEffector:function(e){return function(t,n,r,s){s||this.d
ataHost._forwardInstanceProp(this,e,n)}},_extendTemplate:function(e,t){var n=Obj
ect.getOwnPropertyNames(t);t._propertySetter&&(e._propertySetter=t._propertySett
er);for(var r,s=0;s<n.length&&(r=n[s]);s++){var i=e[r],o=Object.getOwnPropertyDe
scriptor(t,r);Object.defineProperty(e,r,o),void 0!==i&&e._propertySetter(r,i)}},
_showHideChildren:function(e){},_forwardInstancePath:function(e,t,n){},_forwardI
nstanceProp:function(e,t,n){},_notifyPathUpImpl:function(e,t){var n=this.dataHos
t,r=Polymer.Path.root(e);n._forwardInstancePath.call(n,this,e,t),r in n._parentP
rops&&n._templatized._notifyPath(n._parentPropPrefix+e,t)},_pathEffectorImpl:fun
ction(e,t,n){if(this._forwardParentPath&&0===e.indexOf(this._parentPropPrefix)){
var r=e.substring(this._parentPropPrefix.length),s=Polymer.Path.root(r);s in thi
s._parentProps&&this._forwardParentPath(r,t)}Polymer.Base._pathEffector.call(thi
s._templatized,e,t,n)},_constructorImpl:function(e,t){this._rootDataHost=t._getR
ootDataHost(),this._setupConfigure(e),this._registerHost(t),this._beginHosting()
,this.root=this.instanceTemplate(this._template),this.root.__noContent=!this._no
tes._hasContent,this.root.__styleScoped=!0,this._endHosting(),this._marshalAnnot
atedNodes(),this._marshalInstanceEffects(),this._marshalAnnotatedListeners();for
(var n=[],r=this.root.firstChild;r;r=r.nextSibling)n.push(r),r._templateInstance
=this;this._children=n,t.__hideTemplateChildren__&&this._showHideChildren(!0),th
is._tryReady()},_listenImpl:function(e,t,n){var r=this,s=this._rootDataHost,i=s.
_createEventHandler(e,t,n),o=function(e){e.model=r,i(e)};s._listen(e,t,o)},_scop
eElementClassImpl:function(e,t){var n=this._rootDataHost;return n?n._scopeElemen
tClass(e,t):t},stamp:function(e){if(e=e||{},this._parentProps){var t=this._templ
atized;for(var n in this._parentProps)void 0===e[n]&&(e[n]=t[this._parentPropPre
fix+n])}return new this.ctor(e,this)},modelForElement:function(e){for(var t;e;)i
f(t=e._templateInstance){if(t.dataHost==this)return t;e=t.dataHost}else e=e.pare
ntNode}},Polymer({is:"dom-template",extends:"template",_template:null,behaviors:
[Polymer.Templatizer],ready:function(){this.templatize(this)}}),Polymer._collect
ions=new WeakMap,Polymer.Collection=function(e){Polymer._collections.set(e,this)
,this.userArray=e,this.store=e.slice(),this.initMap()},Polymer.Collection.protot
ype={constructor:Polymer.Collection,initMap:function(){for(var e=this.omap=new W
eakMap,t=this.pmap={},n=this.store,r=0;r<n.length;r++){var s=n[r];s&&"object"==t
ypeof s?e.set(s,r):t[s]=r}},add:function(e){var t=this.store.push(e)-1;return e&
&"object"==typeof e?this.omap.set(e,t):this.pmap[e]=t,"#"+t},removeKey:function(
e){(e=this._parseKey(e))&&(this._removeFromMap(this.store[e]),delete this.store[
e])},_removeFromMap:function(e){e&&"object"==typeof e?this.omap.delete(e):delete
this.pmap[e]},remove:function(e){var t=this.getKey(e);return this.removeKey(t),
t},getKey:function(e){var t;if(t=e&&"object"==typeof e?this.omap.get(e):this.pma
p[e],void 0!=t)return"#"+t},getKeys:function(){return Object.keys(this.store).ma
p(function(e){return"#"+e})},_parseKey:function(e){if(e&&"#"==e[0])return e.slic
e(1)},setItem:function(e,t){if(e=this._parseKey(e)){var n=this.store[e];n&&this.
_removeFromMap(n),t&&"object"==typeof t?this.omap.set(t,e):this.pmap[t]=e,this.s
tore[e]=t}},getItem:function(e){if(e=this._parseKey(e))return this.store[e]},get
Items:function(){var e=[],t=this.store;for(var n in t)e.push(t[n]);return e},_ap
plySplices:function(e){for(var t,n,r={},s=0;s<e.length&&(n=e[s]);s++){n.addedKey
s=[];for(var i=0;i<n.removed.length;i++)t=this.getKey(n.removed[i]),r[t]=r[t]?nu
ll:-1;for(i=0;i<n.addedCount;i++){var o=this.userArray[n.index+i];t=this.getKey(
o),t=void 0===t?this.add(o):t,r[t]=r[t]?null:1,n.addedKeys.push(t)}}var a=[],l=[
];for(t in r)r[t]<0&&(this.removeKey(t),a.push(t)),r[t]>0&&l.push(t);return[{rem
oved:a,added:l}]}},Polymer.Collection.get=function(e){return Polymer._collection
s.get(e)||new Polymer.Collection(e)},Polymer.Collection.applySplices=function(e,
t){var n=Polymer._collections.get(e);return n?n._applySplices(t):null},Polymer({
is:"dom-repeat",extends:"template",_template:null,properties:{items:{type:Array}
,as:{type:String,value:"item"},indexAs:{type:String,value:"index"},sort:{type:Fu
nction,observer:"_sortChanged"},filter:{type:Function,observer:"_filterChanged"}
,observe:{type:String,observer:"_observeChanged"},delay:Number,renderedItemCount
:{type:Number,notify:!0,readOnly:!0},initialCount:{type:Number,observer:"_initia
lizeChunking"},targetFramerate:{type:Number,value:20},_targetFrameTime:{type:Num
ber,computed:"_computeFrameTime(targetFramerate)"}},behaviors:[Polymer.Templatiz
er],observers:["_itemsChanged(items.*)"],created:function(){this._instances=[],t
his._pool=[],this._limit=1/0;var e=this;this._boundRenderChunk=function(){e._ren
derChunk()}},detached:function(){this.__isDetached=!0;for(var e=0;e<this._instan
ces.length;e++)this._detachInstance(e)},attached:function(){if(this.__isDetached
){this.__isDetached=!1;for(var e=Polymer.dom(Polymer.dom(this).parentNode),t=0;t
<this._instances.length;t++)this._attachInstance(t,e)}},ready:function(){this._i
nstanceProps={__key__:!0},this._instanceProps[this.as]=!0,this._instanceProps[th
is.indexAs]=!0,this.ctor||this.templatize(this)},_sortChanged:function(e){var t=
this._getRootDataHost();this._sortFn=e&&("function"==typeof e?e:function(){retur
n t[e].apply(t,arguments)}),this._needFullRefresh=!0,this.items&&this._debounceT
emplate(this._render)},_filterChanged:function(e){var t=this._getRootDataHost();
this._filterFn=e&&("function"==typeof e?e:function(){return t[e].apply(t,argumen
ts)}),this._needFullRefresh=!0,this.items&&this._debounceTemplate(this._render)}
,_computeFrameTime:function(e){return Math.ceil(1e3/e)},_initializeChunking:func
tion(){this.initialCount&&(this._limit=this.initialCount,this._chunkCount=this.i
nitialCount,this._lastChunkTime=performance.now())},_tryRenderChunk:function(){t
his.items&&this._limit<this.items.length&&this.debounce("renderChunk",this._requ
estRenderChunk)},_requestRenderChunk:function(){requestAnimationFrame(this._boun
dRenderChunk)},_renderChunk:function(){var e=performance.now(),t=this._targetFra
meTime/(e-this._lastChunkTime);this._chunkCount=Math.round(this._chunkCount*t)||
1,this._limit+=this._chunkCount,this._lastChunkTime=e,this._debounceTemplate(thi
s._render)},_observeChanged:function(){this._observePaths=this.observe&&this.obs
erve.replace(".*",".").split(" ")},_itemsChanged:function(e){if("items"==e.path)
Array.isArray(this.items)?this.collection=Polymer.Collection.get(this.items):thi
s.items?this._error(this._logf("dom-repeat","expected array for `items`, found",
this.items)):this.collection=null,this._keySplices=[],this._indexSplices=[],this
._needFullRefresh=!0,this._initializeChunking(),this._debounceTemplate(this._ren
der);else if("items.splices"==e.path)this._keySplices=this._keySplices.concat(e.
value.keySplices),this._indexSplices=this._indexSplices.concat(e.value.indexSpli
ces),this._debounceTemplate(this._render);else{var t=e.path.slice(6);this._forwa
rdItemPath(t,e.value),this._checkObservedPaths(t)}},_checkObservedPaths:function
(e){if(this._observePaths){e=e.substring(e.indexOf(".")+1);for(var t=this._obser
vePaths,n=0;n<t.length;n++)if(0===e.indexOf(t[n]))return this._needFullRefresh=!
0,void(this.delay?this.debounce("render",this._render,this.delay):this._debounce
Template(this._render))}},render:function(){this._needFullRefresh=!0,this._debou
nceTemplate(this._render),this._flushTemplates()},_render:function(){this._needF
ullRefresh?(this._applyFullRefresh(),this._needFullRefresh=!1):this._keySplices.
length&&(this._sortFn?this._applySplicesUserSort(this._keySplices):this._filterF
n?this._applyFullRefresh():this._applySplicesArrayOrder(this._indexSplices)),thi
s._keySplices=[],this._indexSplices=[];for(var e=this._keyToInstIdx={},t=this._i
nstances.length-1;t>=0;t--){var n=this._instances[t];n.isPlaceholder&&t<this._li
mit?n=this._insertInstance(t,n.__key__):!n.isPlaceholder&&t>=this._limit&&(n=thi
s._downgradeInstance(t,n.__key__)),e[n.__key__]=t,n.isPlaceholder||n.__setProper
ty(this.indexAs,t,!0)}this._pool.length=0,this._setRenderedItemCount(this._insta
nces.length),this.fire("dom-change"),this._tryRenderChunk()},_applyFullRefresh:f
unction(){var e,t=this.collection;if(this._sortFn)e=t?t.getKeys():[];else{e=[];v
ar n=this.items;if(n)for(var r=0;r<n.length;r++)e.push(t.getKey(n[r]))}var s=thi
s;for(this._filterFn&&(e=e.filter(function(e){return s._filterFn(t.getItem(e))})
),this._sortFn&&e.sort(function(e,n){return s._sortFn(t.getItem(e),t.getItem(n))
}),r=0;r<e.length;r++){var i=e[r],o=this._instances[r];o?(o.__key__=i,!o.isPlace
holder&&r<this._limit&&o.__setProperty(this.as,t.getItem(i),!0)):r<this._limit?t
his._insertInstance(r,i):this._insertPlaceholder(r,i)}for(var a=this._instances.
length-1;a>=r;a--)this._detachAndRemoveInstance(a)},_numericSort:function(e,t){r
eturn e-t},_applySplicesUserSort:function(e){for(var t,n,r=this.collection,s={},
i=0;i<e.length&&(n=e[i]);i++){for(var o=0;o<n.removed.length;o++)t=n.removed[o],
s[t]=s[t]?null:-1;for(o=0;o<n.added.length;o++)t=n.added[o],s[t]=s[t]?null:1}var
a=[],l=[];for(t in s)s[t]===-1&&a.push(this._keyToInstIdx[t]),1===s[t]&&l.push(
t);if(a.length)for(a.sort(this._numericSort),i=a.length-1;i>=0;i--){var c=a[i];v
oid 0!==c&&this._detachAndRemoveInstance(c)}var h=this;if(l.length){this._filter
Fn&&(l=l.filter(function(e){return h._filterFn(r.getItem(e))})),l.sort(function(
e,t){return h._sortFn(r.getItem(e),r.getItem(t))});var u=0;for(i=0;i<l.length;i+
+)u=this._insertRowUserSort(u,l[i])}},_insertRowUserSort:function(e,t){for(var n
=this.collection,r=n.getItem(t),s=this._instances.length-1,i=-1;e<=s;){var o=e+s
>>1,a=this._instances[o].__key__,l=this._sortFn(n.getItem(a),r);if(l<0)e=o+1;els
e{if(!(l>0)){i=o;break}s=o-1}}return i<0&&(i=s+1),this._insertPlaceholder(i,t),i
},_applySplicesArrayOrder:function(e){for(var t,n=0;n<e.length&&(t=e[n]);n++){fo
r(var r=0;r<t.removed.length;r++)this._detachAndRemoveInstance(t.index);for(r=0;
r<t.addedKeys.length;r++)this._insertPlaceholder(t.index+r,t.addedKeys[r])}},_de
tachInstance:function(e){var t=this._instances[e];if(!t.isPlaceholder){for(var n
=0;n<t._children.length;n++){var r=t._children[n];Polymer.dom(t.root).appendChil
d(r)}return t}},_attachInstance:function(e,t){var n=this._instances[e];n.isPlace
holder||t.insertBefore(n.root,this)},_detachAndRemoveInstance:function(e){var t=
this._detachInstance(e);t&&this._pool.push(t),this._instances.splice(e,1)},_inse
rtPlaceholder:function(e,t){this._instances.splice(e,0,{isPlaceholder:!0,__key__
:t})},_stampInstance:function(e,t){var n={__key__:t};return n[this.as]=this.coll
ection.getItem(t),n[this.indexAs]=e,this.stamp(n)},_insertInstance:function(e,t)
{var n=this._pool.pop();n?(n.__setProperty(this.as,this.collection.getItem(t),!0
),n.__setProperty("__key__",t,!0)):n=this._stampInstance(e,t);var r=this._instan
ces[e+1],s=r&&!r.isPlaceholder?r._children[0]:this,i=Polymer.dom(this).parentNod
e;return Polymer.dom(i).insertBefore(n.root,s),this._instances[e]=n,n},_downgrad
eInstance:function(e,t){var n=this._detachInstance(e);return n&&this._pool.push(
n),n={isPlaceholder:!0,__key__:t},this._instances[e]=n,n},_showHideChildren:func
tion(e){for(var t=0;t<this._instances.length;t++)this._instances[t]._showHideChi
ldren(e)},_forwardInstanceProp:function(e,t,n){if(t==this.as){var r;r=this._sort
Fn||this._filterFn?this.items.indexOf(this.collection.getItem(e.__key__)):e[this
.indexAs],this.set("items."+r,n)}},_forwardInstancePath:function(e,t,n){0===t.in
dexOf(this.as+".")&&this._notifyPath("items."+e.__key__+"."+t.slice(this.as.leng
th+1),n)},_forwardParentProp:function(e,t){for(var n,r=this._instances,s=0;s<r.l
ength&&(n=r[s]);s++)n.isPlaceholder||n.__setProperty(e,t,!0)},_forwardParentPath
:function(e,t){for(var n,r=this._instances,s=0;s<r.length&&(n=r[s]);s++)n.isPlac
eholder||n._notifyPath(e,t,!0)},_forwardItemPath:function(e,t){if(this._keyToIns
tIdx){var n=e.indexOf("."),r=e.substring(0,n<0?e.length:n),s=this._keyToInstIdx[
r],i=this._instances[s];i&&!i.isPlaceholder&&(n>=0?(e=this.as+"."+e.substring(n+
1),i._notifyPath(e,t,!0)):i.__setProperty(this.as,t,!0))}},itemForElement:functi
on(e){var t=this.modelForElement(e);return t&&t[this.as]},keyForElement:function
(e){var t=this.modelForElement(e);return t&&t.__key__},indexForElement:function(
e){var t=this.modelForElement(e);return t&&t[this.indexAs]}}),Polymer({is:"array
-selector",_template:null,properties:{items:{type:Array,observer:"clearSelection
"},multi:{type:Boolean,value:!1,observer:"clearSelection"},selected:{type:Object
,notify:!0},selectedItem:{type:Object,notify:!0},toggle:{type:Boolean,value:!1}}
,clearSelection:function(){if(Array.isArray(this.selected))for(var e=0;e<this.se
lected.length;e++)this.unlinkPaths("selected."+e);else this.unlinkPaths("selecte
d"),this.unlinkPaths("selectedItem");this.multi?this.selected&&!this.selected.le
ngth||(this.selected=[],this._selectedColl=Polymer.Collection.get(this.selected)
):(this.selected=null,this._selectedColl=null),this.selectedItem=null},isSelecte
d:function(e){return this.multi?void 0!==this._selectedColl.getKey(e):this.selec
ted==e},deselect:function(e){if(this.multi){if(this.isSelected(e)){var t=this._s
electedColl.getKey(e);this.arrayDelete("selected",e),this.unlinkPaths("selected.
"+t)}}else this.selected=null,this.selectedItem=null,this.unlinkPaths("selected"
),this.unlinkPaths("selectedItem")},select:function(e){var t=Polymer.Collection.
get(this.items),n=t.getKey(e);if(this.multi)if(this.isSelected(e))this.toggle&&t
his.deselect(e);else{this.push("selected",e);var r=this._selectedColl.getKey(e);
this.linkPaths("selected."+r,"items."+n)}else this.toggle&&e==this.selected?this
.deselect():(this.selected=e,this.selectedItem=e,this.linkPaths("selected","item
s."+n),this.linkPaths("selectedItem","items."+n))}}),Polymer({is:"dom-if",extend
s:"template",_template:null,properties:{if:{type:Boolean,value:!1,observer:"_que
ueRender"},restamp:{type:Boolean,value:!1,observer:"_queueRender"}},behaviors:[P
olymer.Templatizer],_queueRender:function(){this._debounceTemplate(this._render)
},detached:function(){this.parentNode&&(this.parentNode.nodeType!=Node.DOCUMENT_
FRAGMENT_NODE||Polymer.Settings.hasShadow&&this.parentNode instanceof ShadowRoot
)||this._teardownInstance()},attached:function(){this.if&&this.ctor&&this.async(
this._ensureInstance)},render:function(){this._flushTemplates()},_render:functio
n(){this.if?(this.ctor||this.templatize(this),this._ensureInstance(),this._showH
ideChildren()):this.restamp&&this._teardownInstance(),!this.restamp&&this._insta
nce&&this._showHideChildren(),this.if!=this._lastIf&&(this.fire("dom-change"),th
is._lastIf=this.if)},_ensureInstance:function(){var e=Polymer.dom(this).parentNo
de;if(e){var t=Polymer.dom(e);if(this._instance){var n=this._instance._children;
if(n&&n.length){var r=Polymer.dom(this).previousSibling;if(r!==n[n.length-1])for
(var s,i=0;i<n.length&&(s=n[i]);i++)t.insertBefore(s,this)}}else{this._instance=
this.stamp();var o=this._instance.root;t.insertBefore(o,this)}}},_teardownInstan
ce:function(){if(this._instance){var e=this._instance._children;if(e&&e.length)f
or(var t,n=Polymer.dom(Polymer.dom(e[0]).parentNode),r=0;r<e.length&&(t=e[r]);r+
+)n.removeChild(t);this._instance=null}},_showHideChildren:function(){var e=this
.__hideTemplateChildren__||!this.if;this._instance&&this._instance._showHideChil
dren(e)},_forwardParentProp:function(e,t){this._instance&&this._instance.__setPr
operty(e,t,!0)},_forwardParentPath:function(e,t){this._instance&&this._instance.
_notifyPath(e,t,!0)}}),Polymer({is:"dom-bind",extends:"template",_template:null,
created:function(){var e=this;Polymer.RenderStatus.whenReady(function(){"loading
"==document.readyState?document.addEventListener("DOMContentLoaded",function(){e
._markImportsReady()}):e._markImportsReady()})},_ensureReady:function(){this._re
adied||this._readySelf()},_markImportsReady:function(){this._importsReady=!0,thi
s._ensureReady()},_registerFeatures:function(){this._prepConstructor()},_insertC
hildren:function(){var e=Polymer.dom(Polymer.dom(this).parentNode);e.insertBefor
e(this.root,this)},_removeChildren:function(){if(this._children)for(var e=0;e<th
is._children.length;e++)this.root.appendChild(this._children[e])},_initFeatures:
function(){},_scopeElementClass:function(e,t){return this.dataHost?this.dataHost
._scopeElementClass(e,t):t},_configureInstanceProperties:function(){},_prepConfi
gure:function(){var e={};for(var t in this._propertyEffects)e[t]=this[t];var n=t
his._setupConfigure;this._setupConfigure=function(){n.call(this,e)}},attached:fu
nction(){this._importsReady&&this.render()},detached:function(){this._removeChil
dren()},render:function(){this._ensureReady(),this._children||(this._template=th
is,this._prepAnnotations(),this._prepEffects(),this._prepBehaviors(),this._prepC
onfigure(),this._prepBindings(),this._prepPropertyInfo(),Polymer.Base._initFeatu
res.call(this),this._children=Polymer.TreeApi.arrayCopyChildNodes(this.root)),th
is._insertChildren(),this.fire("dom-change")}})</script> <script> window.Swarmin
gBehaviors = window.SwarmingBehaviors || {}; |
| 5 (function(){ | 5 (function(){ |
| 6 // This behavior wraps up all the shared swarming functionality. | 6 // This behavior wraps up all the shared swarming functionality. |
| 7 SwarmingBehaviors.CommonBehavior = { | 7 SwarmingBehaviors.CommonBehavior = { |
| 8 | 8 |
| 9 _botLink: function(bot_id) { | 9 _botLink: function(bot_id) { |
| 10 if (!bot_id) { | 10 if (!bot_id) { |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 187 } | 187 } |
| 188 return this._humanDuration((second.getTime() - first.getTime())/1000); | 188 return this._humanDuration((second.getTime() - first.getTime())/1000); |
| 189 }, | 189 }, |
| 190 | 190 |
| 191 _truthy: function(a){ | 191 _truthy: function(a){ |
| 192 return !!a; | 192 return !!a; |
| 193 } | 193 } |
| 194 }; | 194 }; |
| 195 })(); </script> <script>Polymer.AppLayout=Polymer.AppLayout||{},Polymer.AppLay
out._scrollEffects=Polymer.AppLayout._scrollEffects||{},Polymer.AppLayout.scroll
TimingFunction=function(o,l,e,r){return o/=r,-e*o*(o-2)+l},Polymer.AppLayout.reg
isterEffect=function(o,l){if(null!=Polymer.AppLayout._scrollEffects[o])throw new
Error("effect `"+o+"` is already registered.");Polymer.AppLayout._scrollEffects
[o]=l},Polymer.AppLayout.scroll=function(o){o=o||{};var l=document.documentEleme
nt,e=o.target||l,r="scrollBehavior"in e.style&&e.scroll,t="app-layout-silent-scr
oll",s=o.top||0,c=o.left||0,i=e===l?window.scrollTo:function(o,l){e.scrollLeft=o
,e.scrollTop=l};if("smooth"===o.behavior)if(r)e.scroll(o);else{var n=Polymer.App
Layout.scrollTimingFunction,a=Date.now(),p=e===l?window.pageYOffset:e.scrollTop,
u=e===l?window.pageXOffset:e.scrollLeft,y=s-p,f=c-u,m=300,L=function o(){var l=D
ate.now(),e=l-a;e<m?(i(n(e,u,f,m),n(e,p,y,m)),requestAnimationFrame(o)):i(c,s)}.
bind(this);L()}else"silent"===o.behavior?(l.classList.add(t),clearInterval(Polym
er.AppLayout._scrollTimer),Polymer.AppLayout._scrollTimer=setTimeout(function(){
l.classList.remove(t),Polymer.AppLayout._scrollTimer=null},100),i(c,s)):i(c,s)}<
/script> <style>[hidden]{display:none!important}</style> <style is="custom-style
">:root{--layout:{display:-ms-flexbox;display:-webkit-flex;display:flex};--layou
t-inline:{display:-ms-inline-flexbox;display:-webkit-inline-flex;display:inline-
flex};--layout-horizontal:{@apply(--layout);-ms-flex-direction:row;-webkit-flex-
direction:row;flex-direction:row};--layout-horizontal-reverse:{@apply(--layout);
-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction
:row-reverse};--layout-vertical:{@apply(--layout);-ms-flex-direction:column;-web
kit-flex-direction:column;flex-direction:column};--layout-vertical-reverse:{@app
ly(--layout);-ms-flex-direction:column-reverse;-webkit-flex-direction:column-rev
erse;flex-direction:column-reverse};--layout-wrap:{-ms-flex-wrap:wrap;-webkit-fl
ex-wrap:wrap;flex-wrap:wrap};--layout-wrap-reverse:{-ms-flex-wrap:wrap-reverse;-
webkit-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse};--layout-flex-auto:{-ms-fl
ex:1 1 auto;-webkit-flex:1 1 auto;flex:1 1 auto};--layout-flex-none:{-ms-flex:no
ne;-webkit-flex:none;flex:none};--layout-flex:{-ms-flex:1 1 0px;-webkit-flex:1;f
lex:1;-webkit-flex-basis:0px;flex-basis:0px};--layout-flex-2:{-ms-flex:2;-webkit
-flex:2;flex:2};--layout-flex-3:{-ms-flex:3;-webkit-flex:3;flex:3};--layout-flex
-4:{-ms-flex:4;-webkit-flex:4;flex:4};--layout-flex-5:{-ms-flex:5;-webkit-flex:5
;flex:5};--layout-flex-6:{-ms-flex:6;-webkit-flex:6;flex:6};--layout-flex-7:{-ms
-flex:7;-webkit-flex:7;flex:7};--layout-flex-8:{-ms-flex:8;-webkit-flex:8;flex:8
};--layout-flex-9:{-ms-flex:9;-webkit-flex:9;flex:9};--layout-flex-10:{-ms-flex:
10;-webkit-flex:10;flex:10};--layout-flex-11:{-ms-flex:11;-webkit-flex:11;flex:1
1};--layout-flex-12:{-ms-flex:12;-webkit-flex:12;flex:12};--layout-start:{-ms-fl
ex-align:start;-webkit-align-items:flex-start;align-items:flex-start};--layout-c
enter:{-ms-flex-align:center;-webkit-align-items:center;align-items:center};--la
yout-end:{-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end};
--layout-baseline:{-ms-flex-align:baseline;-webkit-align-items:baseline;align-it
ems:baseline};--layout-start-justified:{-ms-flex-pack:start;-webkit-justify-cont
ent:flex-start;justify-content:flex-start};--layout-center-justified:{-ms-flex-p
ack:center;-webkit-justify-content:center;justify-content:center};--layout-end-j
ustified:{-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:fle
x-end};--layout-around-justified:{-ms-flex-pack:distribute;-webkit-justify-conte
nt:space-around;justify-content:space-around};--layout-justified:{-ms-flex-pack:
justify;-webkit-justify-content:space-between;justify-content:space-between};--l
ayout-center-center:{@apply(--layout-center);@apply(--layout-center-justified)};
--layout-self-start:{-ms-align-self:flex-start;-webkit-align-self:flex-start;ali
gn-self:flex-start};--layout-self-center:{-ms-align-self:center;-webkit-align-se
lf:center;align-self:center};--layout-self-end:{-ms-align-self:flex-end;-webkit-
align-self:flex-end;align-self:flex-end};--layout-self-stretch:{-ms-align-self:s
tretch;-webkit-align-self:stretch;align-self:stretch};--layout-self-baseline:{-m
s-align-self:baseline;-webkit-align-self:baseline;align-self:baseline};--layout-
start-aligned:{-ms-flex-line-pack:start;-ms-align-content:flex-start;-webkit-ali
gn-content:flex-start;align-content:flex-start};--layout-end-aligned:{-ms-flex-l
ine-pack:end;-ms-align-content:flex-end;-webkit-align-content:flex-end;align-con
tent:flex-end};--layout-center-aligned:{-ms-flex-line-pack:center;-ms-align-cont
ent:center;-webkit-align-content:center;align-content:center};--layout-between-a
ligned:{-ms-flex-line-pack:justify;-ms-align-content:space-between;-webkit-align
-content:space-between;align-content:space-between};--layout-around-aligned:{-ms
-flex-line-pack:distribute;-ms-align-content:space-around;-webkit-align-content:
space-around;align-content:space-around};--layout-block:{display:block};--layout
-invisible:{visibility:hidden!important};--layout-relative:{position:relative};-
-layout-fit:{position:absolute;top:0;right:0;bottom:0;left:0};--layout-scroll:{-
webkit-overflow-scrolling:touch;overflow:auto};--layout-fullbleed:{margin:0;heig
ht:100vh};--layout-fixed-top:{position:fixed;top:0;left:0;right:0};--layout-fixe
d-right:{position:fixed;top:0;right:0;bottom:0};--layout-fixed-bottom:{position:
fixed;right:0;bottom:0;left:0};--layout-fixed-left:{position:fixed;top:0;bottom:
0;left:0};}</style> <dom-module id="app-drawer" assetpath="/res/imp/bower_compon
ents/app-layout/app-drawer/"> <template> <style>:host{position:fixed;top:-120px;
right:0;bottom:-120px;left:0;visibility:hidden;transition-property:visibility}:h
ost([opened]){visibility:visible}:host([persistent]){width:var(--app-drawer-widt
h,256px)}:host([persistent][position=left]){right:auto}:host([persistent][positi
on=right]){left:auto}#contentContainer{position:absolute;top:0;bottom:0;left:0;w
idth:var(--app-drawer-width,256px);padding:120px 0;transition-property:-webkit-t
ransform;transition-property:transform;-webkit-transform:translate3d(-100%,0,0);
transform:translate3d(-100%,0,0);background-color:#FFF;@apply(--app-drawer-conte
nt-container)}:host([position=right])>#contentContainer{right:0;left:auto;-webki
t-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}:host([swipe-o
pen])>#contentContainer::after{position:fixed;top:0;bottom:0;left:100%;visibilit
y:visible;width:20px;content:''}:host([swipe-open][position=right])>#contentCont
ainer::after{right:100%;left:auto}:host([opened])>#contentContainer{-webkit-tran
sform:translate3d(0,0,0);transform:translate3d(0,0,0)}#scrim{position:absolute;t
op:0;right:0;bottom:0;left:0;transition-property:opacity;-webkit-transform:trans
lateZ(0);transform:translateZ(0);opacity:0;background:var(--app-drawer-scrim-bac
kground,rgba(0,0,0,.5))}:host([opened])>#scrim{opacity:1}:host([opened][persiste
nt])>#scrim{visibility:hidden;opacity:0}</style> <div id="scrim" on-tap="close">
</div> <div id="contentContainer"> <content></content> </div> </template> <scrip
t>Polymer({is:"app-drawer",properties:{opened:{type:Boolean,value:!1,notify:!0,r
eflectToAttribute:!0},persistent:{type:Boolean,value:!1,reflectToAttribute:!0},t
ransitionDuration:{type:Number,value:200},align:{type:String,value:"left"},posit
ion:{type:String,readOnly:!0,reflectToAttribute:!0},swipeOpen:{type:Boolean,valu
e:!1,reflectToAttribute:!0},noFocusTrap:{type:Boolean,value:!1}},observers:["res
etLayout(position, isAttached)","_resetPosition(align, isAttached)","_styleTrans
itionDuration(transitionDuration)","_openedPersistentChanged(opened, persistent)
"],_translateOffset:0,_trackDetails:null,_drawerState:0,_boundEscKeydownHandler:
null,_firstTabStop:null,_lastTabStop:null,attached:function(){this._styleTransit
ionDuration(0),Polymer.RenderStatus.afterNextRender(this,function(){this._styleT
ransitionDuration(this.transitionDuration),this._boundEscKeydownHandler=this._es
cKeydownHandler.bind(this),this._resetDrawerState(),this.$.scrim.addEventListene
r("transitionend",this._transitionend.bind(this)),this.$.contentContainer.addEve
ntListener("transitionend",this._transitionend.bind(this)),this.addEventListener
("keydown",this._tabKeydownHandler.bind(this)),this.listen(this,"track","_track"
),this.setScrollDirection("y")}),this.fire("app-drawer-attached")},detached:func
tion(){document.removeEventListener("keydown",this._boundEscKeydownHandler)},ope
n:function(){this.opened=!0},close:function(){this.opened=!1},toggle:function(){
this.opened=!this.opened},getWidth:function(){return this.$.contentContainer.off
setWidth},resetLayout:function(){this.fire("app-drawer-reset-layout")},_isRTL:fu
nction(){return"rtl"===window.getComputedStyle(this).direction},_resetPosition:f
unction(){switch(this.align){case"start":return void this._setPosition(this._isR
TL()?"right":"left");case"end":return void this._setPosition(this._isRTL()?"left
":"right")}this._setPosition(this.align)},_escKeydownHandler:function(t){var i=2
7;t.keyCode===i&&(t.preventDefault(),this.close())},_track:function(t){if(!this.
persistent)switch(t.preventDefault(),t.detail.state){case"start":this._trackStar
t(t);break;case"track":this._trackMove(t);break;case"end":this._trackEnd(t)}},_t
rackStart:function(t){this._drawerState=this._DRAWER_STATE.TRACKING,this._styleT
ransitionDuration(0),this.style.visibility="visible";var i=this.$.contentContain
er.getBoundingClientRect();"left"===this.position?this._translateOffset=i.left:t
his._translateOffset=i.right-window.innerWidth,this._trackDetails=[]},_trackMove
:function(t){this._translateDrawer(t.detail.dx+this._translateOffset),this._trac
kDetails.push({dx:t.detail.dx,timeStamp:Date.now()})},_trackEnd:function(t){var
i=t.detail.dx+this._translateOffset,e=this.getWidth(),n="left"===this.position,s
=n?i>=0||i<=-e:i<=0||i>=e;if(!s){var a=this._trackDetails;if(this._trackDetails=
null,this._flingDrawer(t,a),this._drawerState===this._DRAWER_STATE.FLINGING)retu
rn}var r=e/2;t.detail.dx<-r?this.opened="right"===this.position:t.detail.dx>r&&(
this.opened="left"===this.position),s&&this._resetDrawerState(),this._styleTrans
itionDuration(this.transitionDuration),this._resetDrawerTranslate(),this.style.v
isibility=""},_calculateVelocity:function(t,i){for(var e,n=Date.now(),s=n-100,a=
0,r=i.length-1;a<=r;){var o=a+r>>1,h=i[o];h.timeStamp>=s?(e=h,r=o-1):a=o+1}if(e)
{var l=t.detail.dx-e.dx,d=n-e.timeStamp||1;return l/d}return 0},_flingDrawer:fun
ction(t,i){var e=this._calculateVelocity(t,i);if(!(Math.abs(e)<this._MIN_FLING_T
HRESHOLD)){this._drawerState=this._DRAWER_STATE.FLINGING;var n,s=t.detail.dx+thi
s._translateOffset,a=this.getWidth(),r="left"===this.position,o=e>0,h=!o&&r,l=o&
&!r;n=h?-(s+a):l?a-s:-s,o?(e=Math.max(e,this._MIN_TRANSITION_VELOCITY),this.open
ed="left"===this.position):(e=Math.min(e,-this._MIN_TRANSITION_VELOCITY),this.op
ened="right"===this.position),this._styleTransitionDuration(this._FLING_INITIAL_
SLOPE*n/e),this._styleTransitionTimingFunction(this._FLING_TIMING_FUNCTION),this
._resetDrawerTranslate()}},_transitionend:function(){this._drawerState===this._D
RAWER_STATE.FLINGING&&(this._styleTransitionDuration(this.transitionDuration),th
is._styleTransitionTimingFunction(""),this.style.visibility=""),this._resetDrawe
rState()},_styleTransitionDuration:function(t){this.style.transitionDuration=t+"
ms",this.$.contentContainer.style.transitionDuration=t+"ms",this.$.scrim.style.t
ransitionDuration=t+"ms"},_styleTransitionTimingFunction:function(t){this.$.cont
entContainer.style.transitionTimingFunction=t,this.$.scrim.style.transitionTimin
gFunction=t},_translateDrawer:function(t){var i=this.getWidth();"left"===this.po
sition?(t=Math.max(-i,Math.min(t,0)),this.$.scrim.style.opacity=1+t/i):(t=Math.m
ax(0,Math.min(t,i)),this.$.scrim.style.opacity=1-t/i),this.translate3d(t+"px","0
","0",this.$.contentContainer)},_resetDrawerTranslate:function(){this.$.scrim.st
yle.opacity="",this.transform("",this.$.contentContainer)},_resetDrawerState:fun
ction(){var t=this._drawerState;this.opened?this._drawerState=this.persistent?th
is._DRAWER_STATE.OPENED_PERSISTENT:this._DRAWER_STATE.OPENED:this._drawerState=t
his._DRAWER_STATE.CLOSED,t!==this._drawerState&&(this._drawerState===this._DRAWE
R_STATE.OPENED?(this._setKeyboardFocusTrap(),document.addEventListener("keydown"
,this._boundEscKeydownHandler),document.body.style.overflow="hidden"):(document.
removeEventListener("keydown",this._boundEscKeydownHandler),document.body.style.
overflow=""),t!==this._DRAWER_STATE.INIT&&this.fire("app-drawer-transitioned"))}
,_setKeyboardFocusTrap:function(){if(!this.noFocusTrap){var t=['a[href]:not([tab
index="-1"])','area[href]:not([tabindex="-1"])','input:not([disabled]):not([tabi
ndex="-1"])','select:not([disabled]):not([tabindex="-1"])','textarea:not([disabl
ed]):not([tabindex="-1"])','button:not([disabled]):not([tabindex="-1"])','iframe
:not([tabindex="-1"])','[tabindex]:not([tabindex="-1"])','[contentEditable=true]
:not([tabindex="-1"])'].join(","),i=Polymer.dom(this).querySelectorAll(t);i.leng
th>0?(this._firstTabStop=i[0],this._lastTabStop=i[i.length-1]):(this._firstTabSt
op=null,this._lastTabStop=null);var e=this.getAttribute("tabindex");e&&parseInt(
e,10)>-1?this.focus():this._firstTabStop&&this._firstTabStop.focus()}},_tabKeydo
wnHandler:function(t){if(!this.noFocusTrap){var i=9;this._drawerState===this._DR
AWER_STATE.OPENED&&t.keyCode===i&&(t.shiftKey?this._firstTabStop&&Polymer.dom(t)
.localTarget===this._firstTabStop&&(t.preventDefault(),this._lastTabStop.focus()
):this._lastTabStop&&Polymer.dom(t).localTarget===this._lastTabStop&&(t.preventD
efault(),this._firstTabStop.focus()))}},_openedPersistentChanged:function(){0===
this.transitionDuration&&this._resetDrawerState()},_MIN_FLING_THRESHOLD:.2,_MIN_
TRANSITION_VELOCITY:1.2,_FLING_TIMING_FUNCTION:"cubic-bezier(0.667, 1, 0.667, 1)
",_FLING_INITIAL_SLOPE:1.5,_DRAWER_STATE:{INIT:0,OPENED:1,OPENED_PERSISTENT:2,CL
OSED:3,TRACKING:4,FLINGING:5}})</script> </dom-module> <script>Polymer({is:"iron
-media-query",properties:{queryMatches:{type:Boolean,value:!1,readOnly:!0,notify
:!0},query:{type:String,observer:"queryChanged"},full:{type:Boolean,value:!1},_b
oundMQHandler:{value:function(){return this.queryHandler.bind(this)}},_mq:{value
:null}},attached:function(){this.style.display="none",this.queryChanged()},detac
hed:function(){this._remove()},_add:function(){this._mq&&this._mq.addListener(th
is._boundMQHandler)},_remove:function(){this._mq&&this._mq.removeListener(this._
boundMQHandler),this._mq=null},queryChanged:function(){this._remove();var e=this
.query;e&&(this.full||"("===e[0]||(e="("+e+")"),this._mq=window.matchMedia(e),th
is._add(),this.queryHandler(this._mq))},queryHandler:function(e){this._setQueryM
atches(e.matches)}})</script> <script>Polymer.IronResizableBehavior={properties:
{_parentResizable:{type:Object,observer:"_parentResizableChanged"},_notifyingDes
cendant:{type:Boolean,value:!1}},listeners:{"iron-request-resize-notifications":
"_onIronRequestResizeNotifications"},created:function(){this._interestedResizabl
es=[],this._boundNotifyResize=this.notifyResize.bind(this)},attached:function(){
this.fire("iron-request-resize-notifications",null,{node:this,bubbles:!0,cancela
ble:!0}),this._parentResizable||(window.addEventListener("resize",this._boundNot
ifyResize),this.notifyResize())},detached:function(){this._parentResizable?this.
_parentResizable.stopResizeNotificationsFor(this):window.removeEventListener("re
size",this._boundNotifyResize),this._parentResizable=null},notifyResize:function
(){this.isAttached&&(this._interestedResizables.forEach(function(e){this.resizer
ShouldNotify(e)&&this._notifyDescendant(e)},this),this._fireResize())},assignPar
entResizable:function(e){this._parentResizable=e},stopResizeNotificationsFor:fun
ction(e){var i=this._interestedResizables.indexOf(e);i>-1&&(this._interestedResi
zables.splice(i,1),this.unlisten(e,"iron-resize","_onDescendantIronResize"))},re
sizerShouldNotify:function(e){return!0},_onDescendantIronResize:function(e){retu
rn this._notifyingDescendant?void e.stopPropagation():void(Polymer.Settings.useS
hadow||this._fireResize())},_fireResize:function(){this.fire("iron-resize",null,
{node:this,bubbles:!1})},_onIronRequestResizeNotifications:function(e){var i=e.p
ath?e.path[0]:e.target;i!==this&&(this._interestedResizables.indexOf(i)===-1&&(t
his._interestedResizables.push(i),this.listen(i,"iron-resize","_onDescendantIron
Resize")),i.assignParentResizable(this),this._notifyDescendant(i),e.stopPropagat
ion())},_parentResizableChanged:function(e){e&&window.removeEventListener("resiz
e",this._boundNotifyResize)},_notifyDescendant:function(e){this.isAttached&&(thi
s._notifyingDescendant=!0,e.notifyResize(),this._notifyingDescendant=!1)}}</scri
pt> <dom-module id="app-drawer-layout" assetpath="/res/imp/bower_components/app-
layout/app-drawer-layout/"> <template> <style>:host{display:block}:host([fullble
ed]){@apply(--layout-fit)}#contentContainer{position:relative;height:100%;transi
tion:var(--app-drawer-layout-content-transition,none)}#contentContainer:not(.nar
row)>::content [drawer-toggle]{display:none}</style> <div id="contentContainer">
<content select=":not(app-drawer)"></content> </div> <content id="drawerContent
" select="app-drawer"></content> <iron-media-query query="[[_computeMediaQuery(f
orceNarrow, responsiveWidth)]]" on-query-matches-changed="_onQueryMatchesChanged
"></iron-media-query> </template> <script>Polymer({is:"app-drawer-layout",behavi
ors:[Polymer.IronResizableBehavior],properties:{forceNarrow:{type:Boolean,value:
!1},responsiveWidth:{type:String,value:"640px"},narrow:{type:Boolean,readOnly:!0
,notify:!0},openedWhenNarrow:{type:Boolean,value:!1}},listeners:{tap:"_tapHandle
r","app-drawer-attached":"_resetDrawerState","app-drawer-reset-layout":"resetLay
out","iron-resize":"resetLayout"},observers:["resetLayout(narrow, isAttached)","
_narrowChanged(narrow, isAttached)"],get drawer(){return Polymer.dom(this.$.draw
erContent).getDistributedNodes()[0]},_tapHandler:function(e){var t=Polymer.dom(e
).localTarget;if(t&&t.hasAttribute("drawer-toggle")){var r=this.drawer;r&&!r.per
sistent&&r.toggle()}},resetLayout:function(){this.debounce("_resetLayout",functi
on(){var e=this.drawer,t=this.$.contentContainer;if(this.narrow||!e)t.style.marg
inLeft="",t.style.marginRight="";else{var r=e.getWidth();"right"==e.position?(t.
style.marginLeft="",t.style.marginRight=r+"px"):(t.style.marginLeft=r+"px",t.sty
le.marginRight="")}})},_resetDrawerState:function(){this.debounce("_resetDrawerS
tate",function(){var e=this.drawer;e&&(this.narrow?(e.opened=this.openedWhenNarr
ow,e.persistent=!1):e.opened=e.persistent=!0)})},_narrowChanged:function(e){this
.toggleClass("narrow",e,this.$.contentContainer),this._resetDrawerState(),this.n
otifyResize()},_onQueryMatchesChanged:function(e){this._setNarrow(e.detail.value
)},_computeMediaQuery:function(e,t){return e?"(min-width: 0px)":"(max-width: "+t
+")"}})</script> </dom-module> <dom-module id="app-grid-style" assetpath="/res/i
mp/bower_components/app-layout/app-grid/"> <template> <style>:host{--app-grid-ex
pandible-item:{-webkit-flex-basis:calc((100% - .1px)/ var(--app-grid-columns,1)
* var(--app-grid-expandible-item-columns,1) - var(--app-grid-gutter,0px))!import
ant;flex-basis:calc((100% - .1px)/ var(--app-grid-columns,1) * var(--app-grid-ex
pandible-item-columns,1) - var(--app-grid-gutter,0px))!important;max-width:calc(
(100% - .1px)/ var(--app-grid-columns,1) * var(--app-grid-expandible-item-column
s,1) - var(--app-grid-gutter,0px))!important};}.app-grid{display:-ms-flexbox;dis
play:-webkit-flex;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row
;flex-direction:row;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;pad
ding-top:var(--app-grid-gutter,0);padding-left:var(--app-grid-gutter,0);box-sizi
ng:border-box}.app-grid>*{-ms-flex:1 1 100%;-webkit-flex:1;flex:1;-webkit-flex-b
asis:calc((100% - .1px - (var(--app-grid-gutter,0px) * var(--app-grid-columns,1)
))/ var(--app-grid-columns,1));flex-basis:calc((100% - .1px - (var(--app-grid-gu
tter,0px) * var(--app-grid-columns,1)))/ var(--app-grid-columns,1));max-width:ca
lc((100% - .1px - (var(--app-grid-gutter,0px) * var(--app-grid-columns,1)))/ var
(--app-grid-columns,1));margin-bottom:var(--app-grid-gutter,0);margin-right:var(
--app-grid-gutter,0);height:var(--app-grid-item-height);box-sizing:border-box}.a
pp-grid[has-aspect-ratio]>*{position:relative}.app-grid[has-aspect-ratio]>::befo
re{display:block;content:"";padding-top:var(--app-grid-item-height,100%)}.app-gr
id[has-aspect-ratio]>*>*{position:absolute;top:0;right:0;bottom:0;left:0}</style
> </template> </dom-module> <script>Polymer.IronScrollTargetBehavior={properties
:{scrollTarget:{type:HTMLElement,value:function(){return this._defaultScrollTarg
et}}},observers:["_scrollTargetChanged(scrollTarget, isAttached)"],_shouldHaveLi
stener:!0,_scrollTargetChanged:function(t,l){this._oldScrollTarget&&(this._toggl
eScrollListener(!1,this._oldScrollTarget),this._oldScrollTarget=null),l&&("docum
ent"===t?this.scrollTarget=this._doc:"string"==typeof t?this.scrollTarget=this.d
omHost?this.domHost.$[t]:Polymer.dom(this.ownerDocument).querySelector("#"+t):th
is._isValidScrollTarget()&&(this._boundScrollHandler=this._boundScrollHandler||t
his._scrollHandler.bind(this),this._oldScrollTarget=t,this._toggleScrollListener
(this._shouldHaveListener,t)))},_scrollHandler:function(){},get _defaultScrollTa
rget(){return this._doc},get _doc(){return this.ownerDocument.documentElement},g
et _scrollTop(){return this._isValidScrollTarget()?this.scrollTarget===this._doc
?window.pageYOffset:this.scrollTarget.scrollTop:0},get _scrollLeft(){return this
._isValidScrollTarget()?this.scrollTarget===this._doc?window.pageXOffset:this.sc
rollTarget.scrollLeft:0},set _scrollTop(t){this.scrollTarget===this._doc?window.
scrollTo(window.pageXOffset,t):this._isValidScrollTarget()&&(this.scrollTarget.s
crollTop=t)},set _scrollLeft(t){this.scrollTarget===this._doc?window.scrollTo(t,
window.pageYOffset):this._isValidScrollTarget()&&(this.scrollTarget.scrollLeft=t
)},scroll:function(t,l){this.scrollTarget===this._doc?window.scrollTo(t,l):this.
_isValidScrollTarget()&&(this.scrollTarget.scrollLeft=t,this.scrollTarget.scroll
Top=l)},get _scrollTargetWidth(){return this._isValidScrollTarget()?this.scrollT
arget===this._doc?window.innerWidth:this.scrollTarget.offsetWidth:0},get _scroll
TargetHeight(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?
window.innerHeight:this.scrollTarget.offsetHeight:0},_isValidScrollTarget:functi
on(){return this.scrollTarget instanceof HTMLElement},_toggleScrollListener:func
tion(t,l){if(this._boundScrollHandler){var e=l===this._doc?window:l;t?e.addEvent
Listener("scroll",this._boundScrollHandler):e.removeEventListener("scroll",this.
_boundScrollHandler)}},toggleScrollListener:function(t){this._shouldHaveListener
=t,this._toggleScrollListener(t,this.scrollTarget)}}</script> <script>Polymer.Ap
pScrollEffectsBehavior=[Polymer.IronScrollTargetBehavior,{properties:{effects:{t
ype:String},effectsConfig:{type:Object,value:function(){return{}}},disabled:{typ
e:Boolean,reflectToAttribute:!0,value:!1},threshold:{type:Number,value:0},thresh
oldTriggered:{type:Boolean,notify:!0,readOnly:!0,reflectToAttribute:!0}},observe
rs:["_effectsChanged(effects, effectsConfig, isAttached)"],_updateScrollState:fu
nction(){},isOnScreen:function(){return!1},isContentBelow:function(){return!1},_
effectsRunFn:null,_effects:null,get _clampedScrollTop(){return Math.max(0,this._
scrollTop)},detached:function(){this._tearDownEffects()},createEffect:function(t
,e){var f=Polymer.AppLayout._scrollEffects[t];if(!f)throw new ReferenceError(thi
s._getUndefinedMsg(t));var n=this._boundEffect(f,e||{});return n.setUp(),n},_eff
ectsChanged:function(t,e,f){this._tearDownEffects(),""!==t&&f&&(t.split(" ").for
Each(function(t){var f;""!==t&&((f=Polymer.AppLayout._scrollEffects[t])?this._ef
fects.push(this._boundEffect(f,e[t])):this._warn(this._logf("_effectsChanged",th
is._getUndefinedMsg(t))))},this),this._setUpEffect())},_layoutIfDirty:function()
{return this.offsetWidth},_boundEffect:function(t,e){e=e||{};var f=parseFloat(e.
startsAt||0),n=parseFloat(e.endsAt||1),s=n-f,i=function(){},r=0===f&&1===n?t.run
:function(e,n){t.run.call(this,Math.max(0,(e-f)/s),n)};return{setUp:t.setUp?t.se
tUp.bind(this,e):i,run:t.run?r.bind(this):i,tearDown:t.tearDown?t.tearDown.bind(
this):i}},_setUpEffect:function(){this.isAttached&&this._effects&&(this._effects
RunFn=[],this._effects.forEach(function(t){t.setUp()!==!1&&this._effectsRunFn.pu
sh(t.run)},this))},_tearDownEffects:function(){this._effects&&this._effects.forE
ach(function(t){t.tearDown()}),this._effectsRunFn=[],this._effects=[]},_runEffec
ts:function(t,e){this._effectsRunFn&&this._effectsRunFn.forEach(function(f){f(t,
e)})},_scrollHandler:function(){if(!this.disabled){var t=this._clampedScrollTop;
this._updateScrollState(t),this.threshold>0&&this._setThresholdTriggered(t>=this
.threshold)}},_getDOMRef:function(t){this._warn(this._logf("_getDOMRef","`"+t+"`
is undefined"))},_getUndefinedMsg:function(t){return"Scroll effect `"+t+"` is u
ndefined. Did you forget to import app-layout/app-scroll-effects/effects/"+t+".h
tml ?"}}]</script> <dom-module id="app-header" assetpath="/res/imp/bower_compone
nts/app-layout/app-header/"> <template> <style>:host{position:relative;display:b
lock;transition-timing-function:linear;transition-property:-webkit-transform;tra
nsition-property:transform}:host::after{position:absolute;right:0;bottom:-5px;le
ft:0;width:100%;height:5px;content:"";transition:opacity .4s;pointer-events:none
;opacity:0;box-shadow:inset 0 5px 6px -3px rgba(0,0,0,.4);will-change:opacity;@a
pply(--app-header-shadow)}:host([shadow])::after{opacity:1}::content [condensed-
title],::content [main-title]{-webkit-transform-origin:left top;transform-origin
:left top;white-space:nowrap}::content [condensed-title]{opacity:0}#background{@
apply(--layout-fit);overflow:hidden}#backgroundFrontLayer,#backgroundRearLayer{@
apply(--layout-fit);height:100%;pointer-events:none;background-size:cover}#backg
roundFrontLayer{@apply(--app-header-background-front-layer)}#backgroundRearLayer
{opacity:0;@apply(--app-header-background-rear-layer)}#contentContainer{position
:relative;width:100%;height:100%}:host([disabled]),:host([disabled]) #background
FrontLayer,:host([disabled]) #backgroundRearLayer,:host([disabled]) ::content>[s
ticky],:host([disabled]) ::content>app-toolbar:first-of-type,:host([disabled])::
after,:host-context(.app-layout-silent-scroll),:host-context(.app-layout-silent-
scroll) #backgroundFrontLayer,:host-context(.app-layout-silent-scroll) #backgrou
ndRearLayer,:host-context(.app-layout-silent-scroll) ::content>[sticky],:host-co
ntext(.app-layout-silent-scroll) ::content>app-toolbar:first-of-type,:host-conte
xt(.app-layout-silent-scroll)::after{transition:none!important}</style> <div id=
"contentContainer"> <content id="content"></content> </div> </template> <script>
Polymer({is:"app-header",behaviors:[Polymer.AppScrollEffectsBehavior,Polymer.Iro
nResizableBehavior],properties:{condenses:{type:Boolean,value:!1},fixed:{type:Bo
olean,value:!1},reveals:{type:Boolean,value:!1},shadow:{type:Boolean,reflectToAt
tribute:!0,value:!1}},observers:["resetLayout(isAttached, condenses, fixed)"],li
steners:{"iron-resize":"_resizeHandler"},_height:0,_dHeight:0,_stickyElTop:0,_st
ickyEl:null,_top:0,_progress:0,_wasScrollingDown:!1,_initScrollTop:0,_initTimest
amp:0,_lastTimestamp:0,_lastScrollTop:0,get _maxHeaderTop(){return this.fixed?th
is._dHeight:this._height+5},_getStickyEl:function(){for(var t,e=Polymer.dom(this
.$.content).getDistributedNodes(),i=0;i<e.length;i++)if(e[i].nodeType===Node.ELE
MENT_NODE){var s=e[i];if(s.hasAttribute("sticky")){t=s;break}t||(t=s)}return t},
resetLayout:function(){this.fire("app-header-reset-layout"),this.debounce("_rese
tLayout",function(){if(0!==this.offsetWidth||0!==this.offsetHeight){var t=this._
clampedScrollTop,e=0===this._height||0===t,i=this.disabled;this._height=this.off
setHeight,this._stickyEl=this._getStickyEl(),this.disabled=!0,e||this._updateScr
ollState(0,!0),this._mayMove()?this._dHeight=this._stickyEl?this._height-this._s
tickyEl.offsetHeight:0:this._dHeight=0,this._stickyElTop=this._stickyEl?this._st
ickyEl.offsetTop:0,this._setUpEffect(),e?this._updateScrollState(t,!0):(this._up
dateScrollState(this._lastScrollTop,!0),this._layoutIfDirty()),this.disabled=i}}
)},_updateScrollState:function(t,e){if(0!==this._height){var i=0,s=0,o=this._top
,r=(this._lastScrollTop,this._maxHeaderTop),h=t-this._lastScrollTop,n=Math.abs(h
),a=t>this._lastScrollTop,l=Date.now();if(this._mayMove()&&(s=this._clamp(this.r
eveals?o+h:t,0,r)),t>=this._dHeight&&(s=this.condenses&&!this.fixed?Math.max(thi
s._dHeight,s):s,this.style.transitionDuration="0ms"),this.reveals&&!this.disable
d&&n<100&&((l-this._initTimestamp>300||this._wasScrollingDown!==a)&&(this._initS
crollTop=t,this._initTimestamp=l),t>=r))if(Math.abs(this._initScrollTop-t)>30||n
>10){a&&t>=r?s=r:!a&&t>=this._dHeight&&(s=this.condenses&&!this.fixed?this._dHei
ght:0);var _=h/(l-this._lastTimestamp);this.style.transitionDuration=this._clamp
((s-o)/_,0,300)+"ms"}else s=this._top;i=0===this._dHeight?t>0?1:0:s/this._dHeigh
t,e||(this._lastScrollTop=t,this._top=s,this._wasScrollingDown=a,this._lastTimes
tamp=l),(e||i!==this._progress||o!==s||0===t)&&(this._progress=i,this._runEffect
s(i,s),this._transformHeader(s))}},_mayMove:function(){return this.condenses||!t
his.fixed},willCondense:function(){return this._dHeight>0&&this.condenses},isOnS
creen:function(){return 0!==this._height&&this._top<this._height},isContentBelow
:function(){return 0===this._top?this._clampedScrollTop>0:this._clampedScrollTop
-this._maxHeaderTop>=0},_transformHeader:function(t){this.translate3d(0,-t+"px",
0),this._stickyEl&&this.condenses&&t>=this._stickyElTop&&this.translate3d(0,Math
.min(t,this._dHeight)-this._stickyElTop+"px",0,this._stickyEl)},_resizeHandler:f
unction(){this.resetLayout()},_clamp:function(t,e,i){return Math.min(i,Math.max(
e,t))},_ensureBgContainers:function(){this._bgContainer||(this._bgContainer=docu
ment.createElement("div"),this._bgContainer.id="background",this._bgRear=documen
t.createElement("div"),this._bgRear.id="backgroundRearLayer",this._bgContainer.a
ppendChild(this._bgRear),this._bgFront=document.createElement("div"),this._bgFro
nt.id="backgroundFrontLayer",this._bgContainer.appendChild(this._bgFront),Polyme
r.dom(this.root).insertBefore(this._bgContainer,this.$.contentContainer))},_getD
OMRef:function(t){switch(t){case"backgroundFrontLayer":return this._ensureBgCont
ainers(),this._bgFront;case"backgroundRearLayer":return this._ensureBgContainers
(),this._bgRear;case"background":return this._ensureBgContainers(),this._bgConta
iner;case"mainTitle":return Polymer.dom(this).querySelector("[main-title]");case
"condensedTitle":return Polymer.dom(this).querySelector("[condensed-title]")}ret
urn null},getScrollState:function(){return{progress:this._progress,top:this._top
}}})</script> </dom-module> <dom-module id="app-header-layout" assetpath="/res/i
mp/bower_components/app-layout/app-header-layout/"> <template> <style>:host{disp
lay:block;position:relative;z-index:0}:host>::content>app-header{@apply(--layout
-fixed-top);z-index:1}:host([has-scrolling-region]){height:100%}:host([has-scrol
ling-region])>::content>app-header{position:absolute}:host([has-scrolling-region
])>#contentContainer{@apply(--layout-fit);overflow-y:auto;-webkit-overflow-scrol
ling:touch}:host([fullbleed]){@apply(--layout-vertical);@apply(--layout-fit)}:ho
st([fullbleed])>#contentContainer{@apply(--layout-vertical);@apply(--layout-flex
)}#contentContainer{position:relative;z-index:0}</style> <content id="header" se
lect="app-header"></content> <div id="contentContainer"> <content></content> </d
iv> </template> <script>Polymer({is:"app-header-layout",behaviors:[Polymer.IronR
esizableBehavior],properties:{hasScrollingRegion:{type:Boolean,value:!1,reflectT
oAttribute:!0}},listeners:{"iron-resize":"_resizeHandler","app-header-reset-layo
ut":"resetLayout"},observers:["resetLayout(isAttached, hasScrollingRegion)"],get
header(){return Polymer.dom(this.$.header).getDistributedNodes()[0]},resetLayou
t:function(){this._updateScroller(),this.debounce("_resetLayout",this._updateCon
tentPosition)},_updateContentPosition:function(){var e=this.header;if(this.isAtt
ached&&e){var t=e.offsetHeight;if(this.hasScrollingRegion)e.style.left="",e.styl
e.right="";else{var i=this.getBoundingClientRect(),o=document.documentElement.cl
ientWidth-i.right;e.style.left=i.left+"px",e.style.right=o+"px"}var n=this.$.con
tentContainer.style;e.fixed&&!e.willCondense()&&this.hasScrollingRegion?(n.margi
nTop=t+"px",n.paddingTop=""):(n.paddingTop=t+"px",n.marginTop="")}},_updateScrol
ler:function(){if(this.isAttached){var e=this.header;e&&(e.scrollTarget=this.has
ScrollingRegion?this.$.contentContainer:this.ownerDocument.documentElement)}},_r
esizeHandler:function(){this.resetLayout()}})</script> </dom-module> <dom-module
id="app-scrollpos-control" assetpath="/res/imp/bower_components/app-layout/app-
scrollpos-control/"> <script>Polymer({is:"app-scrollpos-control",behaviors:[Poly
mer.IronScrollTargetBehavior],properties:{selected:{type:String,observer:"_selec
tedChanged"},reset:{type:Boolean,value:!1}},observers:["_updateScrollPos(selecte
d, reset)"],created:function(){this._scrollposMap={}},_selectedChanged:function(
e,s){null!=s&&(this._scrollposMap[s]={x:this._scrollLeft,y:this._scrollTop})},_u
pdateScrollPos:function(e,s){this.debounce("_updateScrollPos",function(){var e=t
his._scrollposMap[this.selected];null==e||this.reset?this.scroll(0,0):this.scrol
l(e.x,e.y)})}})</script> </dom-module> <dom-module id="app-toolbar" assetpath="/
res/imp/bower_components/app-layout/app-toolbar/"> <template> <style>:host{@appl
y(--layout-horizontal);@apply(--layout-center);position:relative;height:64px;pad
ding:0 16px;pointer-events:none;font-size:var(--app-toolbar-font-size,20px)}::co
ntent>*{pointer-events:auto}::content>paper-icon-button{font-size:0}::content>[c
ondensed-title],::content>[main-title]{pointer-events:none;@apply(--layout-flex)
}::content>[bottom-item]{position:absolute;right:0;bottom:0;left:0}::content>[to
p-item]{position:absolute;top:0;right:0;left:0}::content>[spacer]{margin-left:64
px}</style> <content></content> </template> <script>Polymer({is:"app-toolbar"})<
/script> </dom-module> <dom-module id="app-box" assetpath="/res/imp/bower_compon
ents/app-layout/app-box/"> <template> <style>:host{position:relative;display:blo
ck}#background{@apply(--layout-fit);overflow:hidden;height:100%}#backgroundFront
Layer{min-height:100%;pointer-events:none;background-size:cover;@apply(--app-box
-background-front-layer)}#contentContainer{position:relative;width:100%;height:1
00%}:host([disabled]),:host([disabled]) #backgroundFrontLayer{transition:none!im
portant}</style> <div id="background"> <div id="backgroundFrontLayer"> <content
select="[background]"></content> </div> </div> <div id="contentContainer"> <cont
ent id="content"></content> </div> </template> <script>Polymer({is:"app-box",beh
aviors:[Polymer.AppScrollEffectsBehavior,Polymer.IronResizableBehavior],listener
s:{"iron-resize":"_resizeHandler"},_progress:0,attached:function(){this.resetLay
out()},resetLayout:function(){this.debounce("_resetLayout",function(){if(0!==thi
s.offsetWidth||0!==this.offsetHeight){var e=this._clampedScrollTop,t=this.disabl
ed;this.disabled=!0,this._elementTop=this._getElementTop(),this._elementHeight=t
his.offsetHeight,this._cachedScrollTargetHeight=this._scrollTargetHeight,this._s
etUpEffect(),this._updateScrollState(e),this.disabled=t}},1)},_getElementTop:fun
ction(){for(var e=this,t=0;e&&e!==this.scrollTarget;)t+=e.offsetTop,e=e.offsetPa
rent;return t},_updateScrollState:function(e){if(this.isOnScreen()){var t=this._
elementTop-e;this._progress=1-(t+this._elementHeight)/this._cachedScrollTargetHe
ight,this._runEffects(this._progress,e)}},isOnScreen:function(){return this._ele
mentTop<this._scrollTop+this._cachedScrollTargetHeight&&this._elementTop+this._e
lementHeight>this._scrollTop},_resizeHandler:function(){this.resetLayout()},_get
DOMRef:function(e){return"background"===e?this.$.background:"backgroundFrontLaye
r"===e?this.$.backgroundFrontLayer:void 0},getScrollState:function(){return{prog
ress:this._progress}}})</script> </dom-module> <dom-module id="iron-flex" assetp
ath="/res/imp/bower_components/iron-flex-layout/"> <template> <style>.layout.hor
izontal,.layout.vertical{display:-ms-flexbox;display:-webkit-flex;display:flex}.
layout.inline{display:-ms-inline-flexbox;display:-webkit-inline-flex;display:inl
ine-flex}.layout.horizontal{-ms-flex-direction:row;-webkit-flex-direction:row;fl
ex-direction:row}.layout.vertical{-ms-flex-direction:column;-webkit-flex-directi
on:column;flex-direction:column}.layout.wrap{-ms-flex-wrap:wrap;-webkit-flex-wra
p:wrap;flex-wrap:wrap}.layout.center,.layout.center-center{-ms-flex-align:center
;-webkit-align-items:center;align-items:center}.layout.center-center,.layout.cen
ter-justified{-ms-flex-pack:center;-webkit-justify-content:center;justify-conten
t:center}.flex{-ms-flex:1 1 0px;-webkit-flex:1;flex:1;-webkit-flex-basis:0px;fle
x-basis:0px}.flex-auto{-ms-flex:1 1 auto;-webkit-flex:1 1 auto;flex:1 1 auto}.fl
ex-none{-ms-flex:none;-webkit-flex:none;flex:none}</style> </template> </dom-mod
ule> <dom-module id="iron-flex-reverse" assetpath="/res/imp/bower_components/iro
n-flex-layout/"> <template> <style>.layout.horizontal-reverse,.layout.vertical-r
everse{display:-ms-flexbox;display:-webkit-flex;display:flex}.layout.horizontal-
reverse{-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-d
irection:row-reverse}.layout.vertical-reverse{-ms-flex-direction:column-reverse;
-webkit-flex-direction:column-reverse;flex-direction:column-reverse}.layout.wrap
-reverse{-ms-flex-wrap:wrap-reverse;-webkit-flex-wrap:wrap-reverse;flex-wrap:wra
p-reverse}</style> </template> </dom-module> <dom-module id="iron-flex-alignment
" assetpath="/res/imp/bower_components/iron-flex-layout/"> <template> <style>.la
yout.start{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-
start}.layout.center,.layout.center-center{-ms-flex-align:center;-webkit-align-i
tems:center;align-items:center}.layout.end{-ms-flex-align:end;-webkit-align-item
s:flex-end;align-items:flex-end}.layout.baseline{-ms-flex-align:baseline;-webkit
-align-items:baseline;align-items:baseline}.layout.start-justified{-ms-flex-pack
:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout.cen
ter-center,.layout.center-justified{-ms-flex-pack:center;-webkit-justify-content
:center;justify-content:center}.layout.end-justified{-ms-flex-pack:end;-webkit-j
ustify-content:flex-end;justify-content:flex-end}.layout.around-justified{-ms-fl
ex-pack:distribute;-webkit-justify-content:space-around;justify-content:space-ar
ound}.layout.justified{-ms-flex-pack:justify;-webkit-justify-content:space-betwe
en;justify-content:space-between}.self-start{-ms-align-self:flex-start;-webkit-a
lign-self:flex-start;align-self:flex-start}.self-center{-ms-align-self:center;-w
ebkit-align-self:center;align-self:center}.self-end{-ms-align-self:flex-end;-web
kit-align-self:flex-end;align-self:flex-end}.self-stretch{-ms-align-self:stretch
;-webkit-align-self:stretch;align-self:stretch}.self-baseline{-ms-align-self:bas
eline;-webkit-align-self:baseline;align-self:baseline}; .layout.start-aligned{-m
s-flex-line-pack:start;-ms-align-content:flex-start;-webkit-align-content:flex-s
tart;align-content:flex-start}.layout.end-aligned{-ms-flex-line-pack:end;-ms-ali
gn-content:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layou
t.center-aligned{-ms-flex-line-pack:center;-ms-align-content:center;-webkit-alig
n-content:center;align-content:center}.layout.between-aligned{-ms-flex-line-pack
:justify;-ms-align-content:space-between;-webkit-align-content:space-between;ali
gn-content:space-between}.layout.around-aligned{-ms-flex-line-pack:distribute;-m
s-align-content:space-around;-webkit-align-content:space-around;align-content:sp
ace-around}</style> </template> </dom-module> <dom-module id="iron-flex-factors"
assetpath="/res/imp/bower_components/iron-flex-layout/"> <template> <style>.fle
x,.flex-1{-ms-flex:1 1 0px;-webkit-flex:1;flex:1;-webkit-flex-basis:0px;flex-bas
is:0px}.flex-2{-ms-flex:2;-webkit-flex:2;flex:2}.flex-3{-ms-flex:3;-webkit-flex:
3;flex:3}.flex-4{-ms-flex:4;-webkit-flex:4;flex:4}.flex-5{-ms-flex:5;-webkit-fle
x:5;flex:5}.flex-6{-ms-flex:6;-webkit-flex:6;flex:6}.flex-7{-ms-flex:7;-webkit-f
lex:7;flex:7}.flex-8{-ms-flex:8;-webkit-flex:8;flex:8}.flex-9{-ms-flex:9;-webkit
-flex:9;flex:9}.flex-10{-ms-flex:10;-webkit-flex:10;flex:10}.flex-11{-ms-flex:11
;-webkit-flex:11;flex:11}.flex-12{-ms-flex:12;-webkit-flex:12;flex:12}</style> <
/template> </dom-module> <dom-module id="iron-positioning" assetpath="/res/imp/b
ower_components/iron-flex-layout/"> <template> <style>.block{display:block}[hidd
en]{display:none!important}.invisible{visibility:hidden!important}.relative{posi
tion:relative}.fit{position:absolute;top:0;right:0;bottom:0;left:0}body.fullblee
d{margin:0;height:100vh}.scroll{-webkit-overflow-scrolling:touch;overflow:auto}.
fixed-bottom,.fixed-left,.fixed-right,.fixed-top{position:fixed}.fixed-top{top:0
;left:0;right:0}.fixed-right{top:0;right:0;bottom:0}.fixed-bottom{right:0;bottom
:0;left:0}.fixed-left{top:0;bottom:0;left:0}</style> </template> </dom-module> <
script>!function(){var e={},t={},i=null;Polymer.IronMeta=Polymer({is:"iron-meta"
,properties:{type:{type:String,value:"default",observer:"_typeChanged"},key:{typ
e:String,observer:"_keyChanged"},value:{type:Object,notify:!0,observer:"_valueCh
anged"},self:{type:Boolean,observer:"_selfChanged"},list:{type:Array,notify:!0}}
,hostAttributes:{hidden:!0},factoryImpl:function(e){if(e)for(var t in e)switch(t
){case"type":case"key":case"value":this[t]=e[t]}},created:function(){this._metaD
atas=e,this._metaArrays=t},_keyChanged:function(e,t){this._resetRegistration(t)}
,_valueChanged:function(e){this._resetRegistration(this.key)},_selfChanged:funct
ion(e){e&&(this.value=this)},_typeChanged:function(i){this._unregisterKey(this.k
ey),e[i]||(e[i]={}),this._metaData=e[i],t[i]||(t[i]=[]),this.list=t[i],this._reg
isterKeyValue(this.key,this.value)},byKey:function(e){return this._metaData&&thi
s._metaData[e]},_resetRegistration:function(e){this._unregisterKey(e),this._regi
sterKeyValue(this.key,this.value)},_unregisterKey:function(e){this._unregister(e
,this._metaData,this.list)},_registerKeyValue:function(e,t){this._register(e,t,t
his._metaData,this.list)},_register:function(e,t,i,a){e&&i&&void 0!==t&&(i[e]=t,
a.push(t))},_unregister:function(e,t,i){if(e&&t&&e in t){var a=t[e];delete t[e],
this.arrayDelete(i,a)}}}),Polymer.IronMeta.getIronMeta=function(){return null===
i&&(i=new Polymer.IronMeta),i},Polymer.IronMetaQuery=Polymer({is:"iron-meta-quer
y",properties:{type:{type:String,value:"default",observer:"_typeChanged"},key:{t
ype:String,observer:"_keyChanged"},value:{type:Object,notify:!0,readOnly:!0},lis
t:{type:Array,notify:!0}},factoryImpl:function(e){if(e)for(var t in e)switch(t){
case"type":case"key":this[t]=e[t]}},created:function(){this._metaDatas=e,this._m
etaArrays=t},_keyChanged:function(e){this._setValue(this._metaData&&this._metaDa
ta[e])},_typeChanged:function(i){this._metaData=e[i],this.list=t[i],this.key&&th
is._keyChanged(this.key)},byKey:function(e){return this._metaData&&this._metaDat
a[e]}})}()</script> <dom-module id="iron-icon" assetpath="/res/imp/bower_compone
nts/iron-icon/"> <template> <style>:host{@apply(--layout-inline);@apply(--layout
-center-center);position:relative;vertical-align:middle;fill:var(--iron-icon-fil
l-color,currentcolor);stroke:var(--iron-icon-stroke-color,none);width:var(--iron
-icon-width,24px);height:var(--iron-icon-height,24px);@apply(--iron-icon)}</styl
e> </template> <script>Polymer({is:"iron-icon",properties:{icon:{type:String},th
eme:{type:String},src:{type:String},_meta:{value:Polymer.Base.create("iron-meta"
,{type:"iconset"})}},observers:["_updateIcon(_meta, isAttached)","_updateIcon(th
eme, isAttached)","_srcChanged(src, isAttached)","_iconChanged(icon, isAttached)
"],_DEFAULT_ICONSET:"icons",_iconChanged:function(t){var i=(t||"").split(":");th
is._iconName=i.pop(),this._iconsetName=i.pop()||this._DEFAULT_ICONSET,this._upda
teIcon()},_srcChanged:function(t){this._updateIcon()},_usesIconset:function(){re
turn this.icon||!this.src},_updateIcon:function(){this._usesIconset()?(this._img
&&this._img.parentNode&&Polymer.dom(this.root).removeChild(this._img),""===this.
_iconName?this._iconset&&this._iconset.removeIcon(this):this._iconsetName&&this.
_meta&&(this._iconset=this._meta.byKey(this._iconsetName),this._iconset?(this._i
conset.applyIcon(this,this._iconName,this.theme),this.unlisten(window,"iron-icon
set-added","_updateIcon")):this.listen(window,"iron-iconset-added","_updateIcon"
))):(this._iconset&&this._iconset.removeIcon(this),this._img||(this._img=documen
t.createElement("img"),this._img.style.width="100%",this._img.style.height="100%
",this._img.draggable=!1),this._img.src=this.src,Polymer.dom(this.root).appendCh
ild(this._img))}})</script> </dom-module> <script>Polymer({is:"iron-iconset-svg"
,properties:{name:{type:String,observer:"_nameChanged"},size:{type:Number,value:
24},rtlMirroring:{type:Boolean,value:!1}},_targetIsRTL:function(e){return e&&e.n
odeType!==Node.ELEMENT_NODE&&(e=e.host),e&&"rtl"===window.getComputedStyle(e).di
rection},attached:function(){this.style.display="none"},getIconNames:function(){
return this._icons=this._createIconMap(),Object.keys(this._icons).map(function(e
){return this.name+":"+e},this)},applyIcon:function(e,t){e=e.root||e,this.remove
Icon(e);var n=this._cloneIcon(t,this.rtlMirroring&&this._targetIsRTL(e));if(n){v
ar o=Polymer.dom(e);return o.insertBefore(n,o.childNodes[0]),e._svgIcon=n}return
null},removeIcon:function(e){e=e.root||e,e._svgIcon&&(Polymer.dom(e).removeChil
d(e._svgIcon),e._svgIcon=null)},_nameChanged:function(){new Polymer.IronMeta({ty
pe:"iconset",key:this.name,value:this}),this.async(function(){this.fire("iron-ic
onset-added",this,{node:window})})},_createIconMap:function(){var e=Object.creat
e(null);return Polymer.dom(this).querySelectorAll("[id]").forEach(function(t){e[
t.id]=t}),e},_cloneIcon:function(e,t){return this._icons=this._icons||this._crea
teIconMap(),this._prepareSvgClone(this._icons[e],this.size,t)},_prepareSvgClone:
function(e,t,n){if(e){var o=e.cloneNode(!0),r=document.createElementNS("http://w
ww.w3.org/2000/svg","svg"),i=o.getAttribute("viewBox")||"0 0 "+t+" "+t,s="pointe
r-events: none; display: block; width: 100%; height: 100%;";return n&&o.hasAttri
bute("mirror-in-rtl")&&(s+="-webkit-transform:scale(-1,1);transform:scale(-1,1);
"),r.setAttribute("viewBox",i),r.setAttribute("preserveAspectRatio","xMidYMid me
et"),r.style.cssText=s,r.appendChild(o).removeAttribute("id"),r}return null}})</
script> <iron-iconset-svg name="icons" size="24"> <svg><defs> <g id="3d-rotation
"><path d="M7.52 21.48C4.25 19.94 1.91 16.76 1.55 13H.05C.56 19.16 5.71 24 12 24
l.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.3
3.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-.2
3-.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-.43C9.1 8.05 8.76 8 8.39 8c-.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-.3
2.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.09H7.5v1.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-.27H12v8h2.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-.2
6-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-.91V9.12h.97c.72 0 1.27.23 1.64.6
9.38.46.57 1.12.57 1.99v.4zM12 0l-.66.03 3.81 3.81 1.33-1.33c3.27 1.55 5.61 4.72
5.96 8.48h1.5C23.44 4.84 18.29 0 12 0z"></path></g> <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-2v6H9V9H3
V7h18v2z"></path></g> <g id="accessible"><circle cx="12" cy="4" r="2"></circle><
path d="M19 13v-2c-1.54.02-3.09-.75-4.07-1.83l-1.29-1.43c-.17-.19-.38-.34-.61-.4
5-.01 0-.01-.01-.02-.01H13c-.35-.2-.75-.3-1.19-.26C10.76 7.11 10 8.04 10 9.09V15
c0 1.1.9 2 2 2h5v5h2v-5.5c0-1.1-.9-2-2-2h-3v-3.45c1.29 1.07 3.25 1.94 5 1.95zm-6
.17 5c-.41 1.16-1.52 2-2.83 2-1.66 0-3-1.34-3-3 0-1.31.84-2.41 2-2.83V12.1c-2.28
.46-4 2.48-4 4.9 0 2.76 2.24 5 5 5 2.42 0 4.44-1.72 4.9-4h-2.07z"></path></g> <g
id="account-balance"><path d="M4 10v7h3v-7H4zm6 0v7h3v-7h-3zM2 22h19v-3H2v3zm14
-12v7h3v-7h-3zm-4.5-9L2 6v2h19V6l-9.5-5z"></path></g> <g id="account-balance-wal
let"><path d="M21 18v1c0 1.1-.9 2-2 2H5c-1.11 0-2-.9-2-2V5c0-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-2h10V8H12v8zm4-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"></path></g>
<g id="account-box"><path d="M3 5v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9
-2-2-2H5c-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.1v1H6v-1z"></path></g> <g id="account-circle
"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0
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">
</path></g> <g id="add"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path></g
> <g id="add-alert"><path d="M10.01 21.01c0 1.1.89 1.99 1.99 1.99s1.99-.89 1.99-
1.99h-3.98zm8.87-4.19V11c0-3.25-2.25-5.97-5.29-6.69v-.72C13.59 2.71 12.88 2 12 2
s-1.59.71-1.59 1.59v.72C7.37 5.03 5.12 7.75 5.12 11v5.82L3 18.94V20h18v-1.06l-2.
12-2.12zM16 13.01h-3v3h-2v-3H8V11h3V8h2v3h3v2.01z"></path></g> <g id="add-box"><
path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-
2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"></path></g> <g id="add-circle"><path
d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11h-4v4h
-2v-4H7v-2h4V7h2v4h4v2z"></path></g> <g id="add-circle-outline"><path d="M13 7h-
2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S
17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path>
</g> <g id="add-shopping-cart"><path d="M11 9h2V6h3V4h-3V1h-2v3H8v2h3v3zm-4 9c-1
.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.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.01L19.42 4h-.01l-1.1 2-2.76 5H8.53l-.13-.27L6.16 6l-.95-2-.94-2H1v2h2
l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.13 0-.25-.1
1-.25-.25z"></path></g> <g id="alarm"><path d="M22 5.72l-4.6-3.86-1.29 1.53 4.6
3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.
85.75-1.23-4-2.37V8zM12 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"></path></g> <g
id="alarm-add"><path d="M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72
l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 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
7zm1-11h-2v3H8v2h3v3h2v-3h3v-2h-3V9z"></path></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.91L9.6 6.43C10.35 6.16 11.16 6 12 6zm10-.28
l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM2.92 2.29L1.65 3.57 2.98 4.9l-1.11.93 1.4
2 1.42 1.11-.94.8.8C3.83 8.69 3 10.75 3 13c0 4.97 4.02 9 9 9 2.25 0 4.31-.83 5.8
9-2.2l2.2 2.2 1.27-1.27L3.89 3.27l-.97-.98zm13.55 16.1C15.26 19.39 13.7 20 12 20
c-3.87 0-7-3.13-7-7 0-1.7.61-3.26 1.61-4.47l9.86 9.86zM8.02 3.28L6.6 1.86l-.86.7
1 1.42 1.42.86-.71z"></path></g> <g id="alarm-on"><path d="M22 5.72l-4.6-3.86-1.
29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12 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 7zm-1.46-5.47L8.41 12.4l-1.06 1.06 3.18 3.18 6
-6-1.06-1.06-4.93 4.95z"></path></g> <g id="all-out"><path d="M16.21 4.16l4 4v-4
zm4 12l-4 4h4zm-12 4l-4-4v4zm-4-12l4-4h-4zm12.95-.95c-2.73-2.73-7.17-2.73-9.9 0s
-2.73 7.17 0 9.9 7.17 2.73 9.9 0 2.73-7.16 0-9.9zm-1.1 8.8c-2.13 2.13-5.57 2.13-
7.7 0s-2.13-5.57 0-7.7 5.57-2.13 7.7 0 2.13 5.57 0 7.7z"></path></g> <g id="andr
oid"><path d="M6 18c0 .55.45 1 1 1h1v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19
h2v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h1c.55 0 1-.45 1-1V8H6v10zM3.5 8C2
.67 8 2 8.67 2 9.5v7c0 .83.67 1.5 1.5 1.5S5 17.33 5 16.5v-7C5 8.67 4.33 8 3.5 8z
m17 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
13.85 1.23 12.95 1 12 1c-.96 0-1.86.23-2.66.63L7.85.15c-.2-.2-.51-.2-.71 0-.2.2-
.2.51 0 .71l1.31 1.31C6.97 3.26 6 5.01 6 7h12c0-1.99-.97-3.75-2.47-4.84zM10 5H9V
4h1v1zm5 0h-1V4h1v1z"></path></g> <g id="announcement"><path d="M20 2H4c-1.1 0-1
.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 9h-2V5h2v6zm0 4h-2v
-2h2v2z"></path></g> <g id="apps"><path d="M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v
-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4
zm0 6h4v-4h-4v4z"></path></g> <g id="archive"><path d="M20.54 5.23l-1.39-1.68C18
.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V1
9c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5L6.5 12H10v
-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z"></path></g> <g id="arrow-back">
<path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"></path></
g> <g id="arrow-downward"><path d="M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5
.59L4 12l8 8 8-8z"></path></g> <g id="arrow-drop-down"><path d="M7 10l5 5 5-5z">
</path></g> <g id="arrow-drop-down-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.4
8 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 12l-4-4h8l-4 4z"></path></g> <g id="arr
ow-drop-up"><path d="M7 14l5-5 5 5z"></path></g> <g id="arrow-forward"><path d="
M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"></path></g> <g id="ar
row-upward"><path d="M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z
"></path></g> <g id="aspect-ratio"><path d="M19 12h-2v3h-3v2h5v-5zM7 9h3V7H5v5h2
V9zm14-6H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm
0 16.01H3V4.99h18v14.02z"></path></g> <g id="assessment"><path d="M19 3H5c-1.1 0
-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4
0h-2V7h2v10zm4 0h-2v-4h2v4z"></path></g> <g id="assignment"><path d="M19 3h-4.18
C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h1
4c1.1 0 2-.9 2-2V5c0-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 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"></path></g> <g id="assignme
nt-ind"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 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-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 12H6v-1.4c0-2 4-3.1 6-3.1s6 1.1 6 3.1V19z"></path></g> <g id="ass
ignment-late"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 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-2zm-6 15h-2v-2
h2v2zm0-4h-2V8h2v6zm-1-9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"></path
></g> <g id="assignment-return"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3
0-2.4.84-2.82 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-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-5v3
h4v4z"></path></g> <g id="assignment-returned"><path d="M19 3h-4.18C14.4 1.84 13
.3 1 12 1c-1.3 0-2.4.84-2.82 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-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 15l
-5-5h3V9h4v4h3l-5 5z"></path></g> <g id="assignment-turned-in"><path d="M19 3h-4
.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 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-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.41L10 14.17l6.59-6.59L18 9l-8 8z"></path></g> <g id
="attachment"><path d="M2 12.5C2 9.46 4.46 7 7.5 7H18c2.21 0 4 1.79 4 4s-1.79 4-
4 4H9.5C8.12 15 7 13.88 7 12.5S8.12 10 9.5 10H17v2H9.41c-.55 0-.55 1 0 1H18c1.1
0 2-.9 2-2s-.9-2-2-2H7.5C5.57 9 4 10.57 4 12.5S5.57 16 7.5 16H17v2H7.5C4.46 18 2
15.54 2 12.5z"></path></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.26L6.7 14.8c-.45-.83-.7-1.79-.7-2.8 0-3.31 2.6
9-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3
c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z"></path></g> <g id="backspace"><pa
th d="M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0
2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12
9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z"></path></g> <g id="
backup"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04
2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4
.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path></g> <g id="block"><path d="M12 2C
6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8
8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-
.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z"></path></g>
<g id="book"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-
2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4z"></path></g> <g id="bookmark"><path
d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z"></path></g> <g
id="bookmark-border"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-
.9-2-2-2zm0 15l-5-2.18L7 18V5h10v13z"></path></g> <g id="bug-report"><path d="M2
0 8h-2.81c-.45-.78-1.07-1.45-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.
49 5 12 5c-.49 0-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81
8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2
.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.3
4-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z"></path></g> <g id="build">
<path d="M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C
.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.
5-.4.5-1.1.1-1.4z"></path></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.46C8.97 19.54 10.43 20 12 20c4.42 0 8-3.58
8-8h3l-4-4zM6 12c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46C15.03 4.46 13.
57 4 12 4c-4.42 0-8 3.58-8 8H1l4 4 4-4H6z"></path></g> <g id="camera-enhance"><p
ath d="M9 3L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-
.9-2-2-2h-3.17L15 3H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z
m0-1l1.25-2.75L16 13l-2.75-1.25L12 9l-1.25 2.75L8 13l2.75 1.25z"></path></g> <g
id="cancel"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53
2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.5
9 15.59 7 17 8.41 13.41 12 17 15.59z"></path></g> <g id="card-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.6
7-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.9
9.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.5
5 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.
45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 11 8.76l1-1.36 1
1.36L15.38 12 17 10.83 14.92 8H20v6z"></path></g> <g id="card-membership"><path
d="M20 2H4c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h4v5l4-2 4 2v-5h4c1.11 0 2-.89 2
-2V4c0-1.11-.89-2-2-2zm0 13H4v-2h16v2zm0-5H4V4h16v6z"></path></g> <g id="card-tr
avel"><path d="M20 6h-3V4c0-1.11-.89-2-2-2H9c-1.11 0-2 .89-2 2v2H4c-1.11 0-2 .89
-2 2v11c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zM9 4h6v2H9V4zm11
15H4v-2h16v2zm0-5H4V8h3v2h2V8h6v2h2V8h3v6z"></path></g> <g id="change-history"><
path d="M12 7.77L18.39 18H5.61L12 7.77M12 4L2 20h20L12 4z"></path></g> <g id="ch
eck"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"></path></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"></p
ath></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"></path></g> <g id=
"check-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.
52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"></path></g> <g id
="chevron-left"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path><
/g> <g id="chevron-right"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6
z"></path></g> <g id="chrome-reader-mode"><path d="M13 12h7v1.5h-7zm0-2.5h7V11h-
7zm0 5h7V16h-7zM21 4H3c-1.1 0-2 .9-2 2v13c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V6c0-1.
1-.9-2-2-2zm0 15h-9V6h9v13z"></path></g> <g id="class"><path d="M18 2H6c-1.1 0-2
.9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6
12V4z"></path></g> <g id="clear"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.4
1 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></g> <g
id="close"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.4
1 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></g> <g id="cloud"><path d="M1
9.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0
14c0 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"></path><
/g> <g id="cloud-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48
10-10S17.52 2 12 2zm4.5 14H8c-1.66 0-3-1.34-3-3s1.34-3 3-3l.14.01C8.58 8.28 10.
13 7 12 7c2.21 0 4 1.79 4 4h.5c1.38 0 2.5 1.12 2.5 2.5S17.88 16 16.5 16z"></path
></g> <g id="cloud-done"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.
6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0
-2.64-2.05-4.78-4.65-4.96zM10 17l-3.5-3.5 1.41-1.41L10 14.17 15.18 9l1.41 1.41L1
0 17z"></path></g> <g id="cloud-download"><path d="M19.35 10.04C18.67 6.59 15.64
4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.
76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-5 5-5-5h3V9h4v4h3z"></path></
g> <g id="cloud-off"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4c-1.48 0-2.85.
43-4.01 1.17l1.46 1.46C10.21 6.23 11.08 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.6
6 0 3 1.34 3 3 0 1.13-.64 2.11-1.56 2.62l1.45 1.45C23.16 18.16 24 16.68 24 15c0-
2.64-2.05-4.78-4.65-4.96zM3 5.27l2.75 2.74C2.56 8.15 0 10.77 0 14c0 3.31 2.69 6
6 6h11.73l2 2L21 20.73 4.27 4 3 5.27zM7.73 10l8 8H6c-2.21 0-4-1.79-4-4s1.79-4 4-
4h1.73z"></path></g> <g id="cloud-queue"><path d="M19.35 10.04C18.67 6.59 15.64
4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.7
6 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4
h.71C7.37 7.69 9.48 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3s-1.34
3-3 3z"></path></g> <g id="cloud-upload"><path d="M19.35 10.04C18.67 6.59 15.64
4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.
76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path>
</g> <g id="code"><path d="M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l
4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"></path></g> <g id="compare-arrows"><path
d="M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z"></p
ath></g> <g id="content-copy"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H
8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h
11v14z"></path></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-4S2 3.79 2 6s1.79 4 4 4c.59 0 1.14-.13 1.64-.36L10 12l-2.36 2
.36C7.14 14.13 6.59 14 6 14c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.59-.13-1
.14-.36-1.64L12 14l7 7h3v-1L9.64 7.64zM6 8c-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.5zM19 3l-6 6 2 2 7-7V3z"></path></g> <g id="
content-paste"><path d="M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-
1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-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 18H5V4h2v3h10V4h2v16z"></path></g> <g
id="copyright"><path d="M10.08 10.86c.05-.33.16-.62.3-.87s.34-.46.59-.62c.24-.1
5.54-.22.91-.23.23.01.44.05.63.13.2.09.38.21.52.36s.25.33.34.53.13.42.14.64h1.79
c-.02-.47-.11-.9-.28-1.29s-.4-.73-.7-1.01-.66-.5-1.08-.66-.88-.23-1.39-.23c-.65
0-1.22.11-1.7.34s-.88.53-1.2.92-.56.84-.71 1.36S8 11.29 8 11.87v.27c0 .58.08 1.1
2.23 1.64s.39.97.71 1.35.72.69 1.2.91 1.05.34 1.7.34c.47 0 .91-.08 1.32-.23s.77-
.36 1.08-.63.56-.58.74-.94.29-.74.3-1.15h-1.79c-.01.21-.06.4-.15.58s-.21.33-.36.
46-.32.23-.52.3c-.19.07-.39.09-.6.1-.36-.01-.66-.08-.89-.23-.25-.16-.45-.37-.59-
.62s-.25-.55-.3-.88-.08-.67-.08-1v-.27c0-.35.03-.68.08-1.01zM12 2C6.48 2 2 6.48
2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-
8 8 3.59 8 8-3.59 8-8 8z"></path></g> <g id="create"><path d="M3 17.25V21h3.75L1
7.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.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"></path></g> <g id="create-n
ew-folder"><path d="M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h
16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z"></pa
th></g> <g id="credit-card"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.
89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"
></path></g> <g id="dashboard"><path d="M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h
-8v10zm0-18v6h8V3h-8z"></path></g> <g id="date-range"><path d="M9 11H7v2h2v-2zm4
0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c
0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z"></path></g>
<g id="delete"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-
1-1h-5l-1 1H5v2h14V4z"></path></g> <g id="description"><path d="M14 2H6c-1.1 0-1
.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4
H8v-2h8v2zm-3-5V3.5L18.5 9H13z"></path></g> <g id="dns"><path d="M20 13H4c-.55 0
-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zM7 19c-1.1 0-2
-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM20 3H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c
.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM7 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2
2z"></path></g> <g id="done"><path d="M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4
L9 16.2z"></path></g> <g id="done-all"><path d="M18 7l-1.41-1.41-6.34 6.34 1.41
1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.4
1 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z"></path></g> <g id="donut-large"><path
d="M11 5.08V2c-5 .5-9 4.81-9 10s4 9.5 9 10v-3.08c-3-.48-6-3.4-6-6.92s3-6.44 6-6
.92zM18.97 11H22c-.47-5-4-8.53-9-9v3.08C16 5.51 18.54 8 18.97 11zM13 18.92V22c5-
.47 8.53-4 9-9h-3.03c-.43 3-2.97 5.49-5.97 5.92z"></path></g> <g id="donut-small
"><path d="M11 9.16V2c-5 .5-9 4.79-9 10s4 9.5 9 10v-7.16c-1-.41-2-1.52-2-2.84s1-
2.43 2-2.84zM14.86 11H22c-.48-4.75-4-8.53-9-9v7.16c1 .3 1.52.98 1.86 1.84zM13 14
.84V22c5-.47 8.52-4.25 9-9h-7.14c-.34.86-.86 1.54-1.86 1.84z"></path></g> <g id=
"drafts"><path d="M21.99 8c0-.72-.37-1.35-.94-1.7L12 1 2.95 6.3C2.38 6.65 2 7.28
2 8v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2l-.01-10zM12 13L3.74 7.84 12 3l8.26 4.84L
12 13z"></path></g> <g id="eject"><path d="M5 17h14v2H5zm7-12L5.33 15h13.34z"></
path></g> <g id="error"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48
10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"></path></g> <g id="error-outl
ine"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 1
0C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8
3.58 8 8-3.58 8-8 8z"></path></g> <g id="event"><path d="M17 12h-5v5h5v-5zM16 1
v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1
-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"></path></g> <g id="event-seat"><path d="M4 1
8v3h3v-3h10v3h3v-6H4zm15-8h3v3h-3zM2 10h3v3H2zm15 3H7V5c0-1.1.9-2 2-2h6c1.1 0 2
.9 2 2v8z"></path></g> <g id="exit-to-app"><path d="M10.09 15.59L11.5 17l5-5-5-5
-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-
4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"></path></g> <g id="exp
and-less"><path d="M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"></path></g> <
g id="expand-more"><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"></path
></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.6
1 0 1.1-.49 1.1-1.1s-.49-1.1-1.1-1.1zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4
.48 10-10S17.52 2 12 2zm2.19 12.19L6 18l3.81-8.19L18 6l-3.81 8.19z"></path></g>
<g id="extension"><path d="M20.5 11H19V7c0-1.1-.9-2-2-2h-4V3.5C13 2.12 11.88 1 1
0.5 1S8 2.12 8 3.5V5H4c-1.1 0-1.99.9-1.99 2v3.8H3.5c1.49 0 2.7 1.21 2.7 2.7s-1.2
1 2.7-2.7 2.7H2V20c0 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.2
1 2.7 2.7V22H17c1.1 0 2-.9 2-2v-4h1.5c1.38 0 2.5-1.12 2.5-2.5S21.88 11 20.5 11z"
></path></g> <g id="face"><path d="M9 11.75c-.69 0-1.25.56-1.25 1.25s.56 1.25 1.
25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zm6 0c-.69 0-1.25.56-1.25 1.25s.56
1.25 1.25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zM12 2C6.48 2 2 6.48 2 12s4.
48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8 0-.29.02-.58.05-
.86 2.36-1.05 4.23-2.98 5.21-5.37C11.07 8.33 14.05 10 17.42 10c.78 0 1.53-.09 2.
25-.26.21.71.33 1.47.33 2.26 0 4.41-3.59 8-8 8z"></path></g> <g id="favorite"><p
ath d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3
.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86
-8.55 11.54L12 21.35z"></path></g> <g id="favorite-border"><path d="M16.5 3c-1.7
4 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86
8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3
zm-4.4 15.55l-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.
99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74
-7.9 10.05z"></path></g> <g id="feedback"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L
2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 12h-2v-2h2v2zm0-4h-2V6h2v4z"></p
ath></g> <g id="file-download"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5
z"></path></g> <g id="file-upload"><path d="M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5
z"></path></g> <g id="filter-list"><path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h
12v-2H6v2z"></path></g> <g id="find-in-page"><path d="M20 19.59V8l-6-6H6c-1.1 0-
1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c.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.75
L20 19.59zM9 13c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z"></path></g>
<g id="find-replace"><path d="M11 6c1.38 0 2.63.56 3.54 1.46L12 10h6V4l-2.05 2.
05C14.68 4.78 12.93 4 11 4c-3.53 0-6.43 2.61-6.92 6H6.1c.46-2.28 2.48-4 4.9-4zm5
.64 9.14c.66-.9 1.12-1.97 1.28-3.14H15.9c-.46 2.28-2.48 4-4.9 4-1.38 0-2.63-.56-
3.54-1.46L10 12H4v6l2.05-2.05C7.32 17.22 9.07 18 11 18c1.55 0 2.98-.51 4.14-1.36
L20 21.49 21.49 20l-4.85-4.86z"></path></g> <g id="fingerprint"><path d="M17.81
4.47c-.08 0-.16-.02-.23-.06C15.66 3.42 14 3 12.01 3c-1.98 0-3.86.47-5.57 1.41-.2
4.13-.54.04-.68-.2-.13-.24-.04-.55.2-.68C7.82 2.52 9.86 2 12.01 2c2.13 0 3.99.47
6.03 1.52.25.13.34.43.21.67-.09.18-.26.28-.44.28zM3.5 9.72c-.1 0-.2-.03-.29-.09
-.23-.16-.28-.47-.12-.7.99-1.4 2.25-2.5 3.75-3.27C9.98 4.04 14 4.03 17.15 5.65c1
.5.77 2.76 1.86 3.75 3.25.16.22.11.54-.12.7-.23.16-.54.11-.7-.12-.9-1.26-2.04-2.
25-3.39-2.94-2.87-1.47-6.54-1.47-9.4.01-1.36.7-2.5 1.7-3.4 2.96-.08.14-.23.21-.3
9.21zm6.25 12.07c-.13 0-.26-.05-.35-.15-.87-.87-1.34-1.43-2.01-2.64-.69-1.23-1.0
5-2.73-1.05-4.34 0-2.97 2.54-5.39 5.66-5.39s5.66 2.42 5.66 5.39c0 .28-.22.5-.5.5
s-.5-.22-.5-.5c0-2.42-2.09-4.39-4.66-4.39-2.57 0-4.66 1.97-4.66 4.39 0 1.44.32 2
.77.93 3.85.64 1.15 1.08 1.64 1.85 2.42.19.2.19.51 0 .71-.11.1-.24.15-.37.15zm7.
17-1.85c-1.19 0-2.24-.3-3.1-.89-1.49-1.01-2.38-2.65-2.38-4.39 0-.28.22-.5.5-.5s.
5.22.5.5c0 1.41.72 2.74 1.94 3.56.71.48 1.54.71 2.54.71.24 0 .64-.03 1.04-.1.27-
.05.53.13.58.41.05.27-.13.53-.41.58-.57.11-1.07.12-1.21.12zM14.91 22c-.04 0-.09-
.01-.13-.02-1.59-.44-2.63-1.03-3.72-2.1-1.4-1.39-2.17-3.24-2.17-5.22 0-1.62 1.38
-2.94 3.08-2.94 1.7 0 3.08 1.32 3.08 2.94 0 1.07.93 1.94 2.08 1.94s2.08-.87 2.08
-1.94c0-3.77-3.25-6.83-7.25-6.83-2.84 0-5.44 1.58-6.61 4.03-.39.81-.59 1.76-.59
2.8 0 .78.07 2.01.67 3.61.1.26-.03.55-.29.64-.26.1-.55-.04-.64-.29-.49-1.31-.73-
2.61-.73-3.96 0-1.2.23-2.29.68-3.24 1.33-2.79 4.28-4.6 7.51-4.6 4.55 0 8.25 3.51
8.25 7.83 0 1.62-1.38 2.94-3.08 2.94s-3.08-1.32-3.08-2.94c0-1.07-.93-1.94-2.08-
1.94s-2.08.87-2.08 1.94c0 1.71.66 3.31 1.87 4.51.95.94 1.86 1.46 3.27 1.85.27.07
.42.35.35.61-.05.23-.26.38-.47.38z"></path></g> <g id="flag"><path d="M14.4 6L14
4H5v17h2v-7h5.6l.4 2h7V6z"></path></g> <g id="flight-land"><path d="M2.5 19h19v
2h-19zm7.18-5.73l4.35 1.16 5.31 1.42c.8.21 1.62-.26 1.84-1.06.21-.8-.26-1.62-1.0
6-1.84l-5.31-1.42-2.76-9.02L10.12 2v8.28L5.15 8.95l-.93-2.32-1.45-.39v5.17l1.6.4
3 5.31 1.43z"></path></g> <g id="flight-takeoff"><path d="M2.5 19h19v2h-19zm19.5
7-9.36c-.21-.8-1.04-1.28-1.84-1.06L14.92 10l-6.9-6.43-1.93.51 4.14 7.17-4.97 1.3
3-1.97-1.54-1.45.39 1.82 3.16.77 1.33 1.6-.43 5.31-1.42 4.35-1.16L21 11.49c.81-.
23 1.28-1.05 1.07-1.85z"></path></g> <g id="flip-to-back"><path d="M9 7H7v2h2V7z
m0 4H7v2h2v-2zm0-8c-1.11 0-2 .9-2 2h2V3zm4 12h-2v2h2v-2zm6-12v2h2c0-1.1-.9-2-2-2
zm-6 0h-2v2h2V3zM9 17v-2H7c0 1.1.89 2 2 2zm10-4h2v-2h-2v2zm0-4h2V7h-2v2zm0 8c1.1
0 2-.9 2-2h-2v2zM5 7H3v12c0 1.1.89 2 2 2h12v-2H5V7zm10-2h2V3h-2v2zm0 12h2v-2h-2
v2z"></path></g> <g id="flip-to-front"><path d="M3 13h2v-2H3v2zm0 4h2v-2H3v2zm2
4v-2H3c0 1.1.89 2 2 2zM3 9h2V7H3v2zm12 12h2v-2h-2v2zm4-18H9c-1.11 0-2 .9-2 2v10c
0 1.1.89 2 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12H9V5h10v10zm-8 6h2v-2h-2v
2zm-4 0h2v-2H7v2z"></path></g> <g id="folder"><path d="M10 4H4c-1.1 0-1.99.9-1.9
9 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"></path></g>
<g id="folder-open"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2
2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"></path></g> <g id="fol
der-shared"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c
1.1 0 2-.9 2-2V8c0-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-2
zm4 8h-8v-1c0-1.33 2.67-2 4-2s4 .67 4 2v1z"></path></g> <g id="font-download"><p
ath d="M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0
2-.9 2-2V4c0-1.1-.9-2-2-2zm-4.05 16.5l-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.
11 13h-2.09z"></path></g> <g id="forward"><path d="M12 8V4l8 8-8 8v-4H4V8z"></pa
th></g> <g id="fullscreen"><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h
-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"></path></g> <g id="fullscreen-exit"><path d=
"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z">
</path></g> <g id="gavel"><path d="M1 21h12v2H1zM5.245 8.07l2.83-2.827 14.14 14.
142-2.828 2.828zM12.317 1l5.657 5.656-2.83 2.83-5.654-5.66zM3.825 9.485l5.657 5.
657-2.828 2.828-5.657-5.657z"></path></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.1H21v-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.28C8.95
3.69 7.31 3 6.44 3 5.12 3 3.97 4 3.72 4.25c-.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
"></path></g> <g id="get-app"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z
"></path></g> <g id="gif"><path d="M11.5 9H13v6h-1.5zM9 9H6c-.6 0-1 .5-1 1v4c0 .
5.4 1 1 1h3c.6 0 1-.5 1-1v-2H8.5v1.5h-2v-3H10V10c0-.5-.4-1-1-1zm10 1.5V9h-4.5v6H
16v-2h2v-1.5h-2v-1z"></path></g> <g id="grade"><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"></path></g> <g
id="group-work"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S1
7.52 2 12 2zM8 17.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.5zM9.5 8c0-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
S9.5 9.38 9.5 8zm6.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"></path></g> <g id="help"><path d="M12 2C6.48 2 2 6.48 2 1
2s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.
45 12.9 13 13.5 13 15h-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 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93
2.25z"></path></g> <g id="help-outline"><path d="M11 18h2v-2h-2v2zm1-16C6.48 2 2
6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.5
9-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c
0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z"></path></g> <g id="highlig
ht-off"><path d="M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.
41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 1
0 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3
.59 8-8 8z"></path></g> <g id="history"><path d="M13 3c-4.97 0-9 4.03-9 9H1l3.89
3.89.07.14L9 12H6c0-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.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5
l4.28 2.54.72-1.21-3.5-2.08V8H12z"></path></g> <g id="home"><path d="M10 20v-6h4
v6h5v-8h3L12 3 2 12h3v8z"></path></g> <g id="hourglass-empty"><path d="M6 2v6h.0
1L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6zm
10 14.5V20H8v-3.5l4-4 4 4zm-4-5l-4-4V4h8v3.5l-4 4z"></path></g> <g id="hourglass
-full"><path d="M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-
4 4-3.99-.01-.01H18V2H6z"></path></g> <g id="http"><path d="M4.5 11h-2V9H1v6h1.5
v-2.5h2V15H6V9H4.5v2zm2.5-.5h1.5V15H10v-4.5h1.5V9H7v1.5zm5.5 0H14V15h1.5v-4.5H17
V9h-4.5v1.5zm9-1.5H18v6h1.5v-2h2c.8 0 1.5-.7 1.5-1.5v-1c0-.8-.7-1.5-1.5-1.5zm0 2
.5h-2v-1h2v1z"></path></g> <g id="https"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7
3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-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-9H8.9V6c0-1.71 1.39-3.1
3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"></path></g> <g id="important-devices"><path
d="M23 11.01L18 11c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-9c0-.55
-.45-.99-1-.99zM23 20h-5v-7h5v7zM20 2H2C.89 2 0 2.89 0 4v12c0 1.1.89 2 2 2h7v2H7
v2h8v-2h-2v-2h2v-2H2V4h18v5h2V4c0-1.11-.9-2-2-2zm-8.03 7L11 6l-.97 3H7l2.47 1.76
-.94 2.91 2.47-1.8 2.47 1.8-.94-2.91L15 9h-3.03z"></path></g> <g id="inbox"><pat
h d="M19 3H4.99c-1.11 0-1.98.89-1.98 2L3 19c0 1.1.88 2 1.99 2H19c1.1 0 2-.9 2-2V
5c0-1.11-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H4.99V5H19v10z"></path><
/g> <g id="indeterminate-check-box"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9
2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"></path></g> <g id="i
nfo"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z
m1 15h-2v-6h2v6zm0-8h-2V7h2v2z"></path></g> <g id="info-outline"><path d="M11 17
h2v-6h-2v6zm1-15C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0
18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zM11 9h2V7h-2v2z"></path><
/g> <g id="input"><path d="M21 3.01H3c-1.1 0-2 .9-2 2V9h2V4.99h18v14.03H3V15H1v4
.01c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14c0-1.11-.9-2-2-2zM11 16l4-4-4-4
v3H1v2h10v3z"></path></g> <g id="invert-colors"><path d="M17.66 7.93L12 2.27 6.3
4 7.93c-3.12 3.12-3.12 8.19 0 11.31C7.9 20.8 9.95 21.58 12 21.58c2.05 0 4.1-.78
5.66-2.34 3.12-3.12 3.12-8.19 0-11.31zM12 19.59c-1.6 0-3.11-.62-4.24-1.76C6.62 1
6.69 6 15.19 6 13.59s.62-3.11 1.76-4.24L12 5.1v14.49z"></path></g> <g id="label"
><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1
.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"></path></g> <g i
d="label-outline"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3
5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM
16 17H5V7h11l3.55 5L16 17z"></path></g> <g id="language"><path d="M11.99 2C6.47
2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2
.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.
48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69
4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.9
5c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2
.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-
3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.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.1
1 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.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"></p
ath></g> <g id="launch"><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2
2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h
-7z"></path></g> <g id="lightbulb-outline"><path d="M9 21c0 .55.45 1 1 1h4c.55 0
1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1
1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7zm2.85 11.1
l-.85.6V16h-4v-2.3l-.85-.6C7.8 12.16 7 10.63 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0
1.63-.8 3.16-2.15 4.1z"></path></g> <g id="line-style"><path d="M3 16h5v-2H3v2zm
6.5 0h5v-2h-5v2zm6.5 0h5v-2h-5v2zM3 20h2v-2H3v2zm4 0h2v-2H7v2zm4 0h2v-2h-2v2zm4
0h2v-2h-2v2zm4 0h2v-2h-2v2zM3 12h8v-2H3v2zm10 0h8v-2h-8v2zM3 4v4h18V4H3z"></path
></g> <g id="line-weight"><path d="M3 17h18v-2H3v2zm0 3h18v-1H3v1zm0-7h18v-3H3v3
zm0-9v4h18V4H3z"></path></g> <g id="link"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3
.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8
v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5
-2.24 5-5s-2.24-5-5-5z"></path></g> <g id="list"><path d="M3 13h2v-2H3v2zm0 4h2v
-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z"></path></g> <g
id="lock"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v
10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-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-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3
.1v2z"></path></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-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3
.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-
2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"></path></g> <g id="lock-outline"><path d=
"M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7
3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2
-2zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H8.9V6zM18 20H6V10h12v10z"><
/path></g> <g id="loyalty"><path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c
-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.42zM5.5 7C4.67 7 4 6.33
4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7zm11.77 8.27L13 19.54l-4.27-4.27C8.2
8 14.81 8 14.19 8 13.5c0-1.38 1.12-2.5 2.5-2.5.69 0 1.32.28 1.77.74l.73.72.73-.7
3c.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"></
path></g> <g id="mail"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h
16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"></path></g> <g id
="markunread"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0
2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"></path></g> <g id="markunr
ead-mailbox"><path d="M20 6H10v6H8V4h6V0H6v6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h
16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2z"></path></g> <g id="menu"><path d="M3 18h18v
-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"></path></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"></path></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"></path></g> <g id="motorcycle"><path d="M19.44 9.03L15.41 5H11v2h3.
59l2 2H5c-2.8 0-5 2.2-5 5s2.2 5 5 5c2.46 0 4.45-1.69 4.9-4h1.65l2.77-2.77c-.21.5
4-.32 1.14-.32 1.77 0 2.8 2.2 5 5 5s5-2.2 5-5c0-2.65-1.97-4.77-4.56-4.97zM7.82 1
5C7.4 16.15 6.28 17 5 17c-1.63 0-3-1.37-3-3s1.37-3 3-3c1.28 0 2.4.85 2.82 2H5v2h
2.82zM19 17c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"></path></g> <g
id="move-to-inbox"><path d="M19 3H4.99c-1.11 0-1.98.9-1.98 2L3 19c0 1.1.88 2 1.
99 2H19c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H4
.99V5H19v10zm-3-5h-2V7h-4v3H8l4 4 4-4z"></path></g> <g id="next-week"><path d="M
20 7h-4V5c0-.55-.22-1.05-.59-1.41C15.05 3.22 14.55 3 14 3h-4c-1.1 0-2 .9-2 2v2H4
c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zM10 5h4v2h-
4V5zm1 13.5l-1-1 3-3-3-3 1-1 4 4-4 4z"></path></g> <g id="note-add"><path d="M14
2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 14h
-3v3h-2v-3H8v-2h3v-3h2v3h3v2zm-3-7V3.5L18.5 9H13z"></path></g> <g id="offline-pi
n"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm5 16H7
v-2h10v2zm-6.7-4L7 10.7l1.4-1.4 1.9 1.9 5.3-5.3L17 7.3 10.3 14z"></path></g> <g
id="opacity"><path d="M17.66 8L12 2.35 6.34 8C4.78 9.56 4 11.64 4 13.64s.78 4.11
2.34 5.67 3.61 2.35 5.66 2.35 4.1-.79 5.66-2.35S20 15.64 20 13.64 19.22 9.56 17
.66 8zM6 14c.01-2 .62-3.27 1.76-4.4L12 5.27l4.24 4.38C17.38 10.77 17.99 12 18 14
H6z"></path></g> <g id="open-in-browser"><path d="M19 4H5c-1.11 0-2 .9-2 2v12c0
1.1.89 2 2 2h4v-2H5V8h14v10h-4v2h4c1.1 0 2-.9 2-2V6c0-1.1-.89-2-2-2zm-7 6l-4 4h3
v6h2v-6h3l-4-4z"></path></g> <g id="open-in-new"><path d="M19 19H5V5h7V3H5c-1.11
0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83
1.41 1.41L19 6.41V10h2V3h-7z"></path></g> <g id="open-with"><path d="M10 9h4V6h3
l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l
5 5 5-5h-3v-3z"></path></g> <g id="pageview"><path d="M11.5 9C10.12 9 9 10.12 9
11.5s1.12 2.5 2.5 2.5 2.5-1.12 2.5-2.5S12.88 9 11.5 9zM20 4H4c-1.1 0-2 .9-2 2v12
c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-3.21 14.21l-2.91-2.91c-.69.4
4-1.51.7-2.39.7C9.01 16 7 13.99 7 11.5S9.01 7 11.5 7 16 9.01 16 11.5c0 .88-.26 1
.69-.7 2.39l2.91 2.9-1.42 1.42z"></path></g> <g id="pan-tool"><path d="M23 5.5V2
0c0 2.2-1.8 4-4 4h-7.3c-1.08 0-2.1-.43-2.85-1.19L1 14.83s1.26-1.23 1.3-1.25c.22-
.19.49-.29.79-.29.22 0 .42.06.6.16.04.01 4.31 2.46 4.31 2.46V4c0-.83.67-1.5 1.5-
1.5S11 3.17 11 4v7h1V1.5c0-.83.67-1.5 1.5-1.5S15 .67 15 1.5V11h1V2.5c0-.83.67-1.
5 1.5-1.5s1.5.67 1.5 1.5V11h1V5.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5z"></path><
/g> <g id="payment"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2
h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"></path>
</g> <g id="perm-camera-mic"><path d="M20 5h-3.17L15 3H9L7.17 5H4c-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.91V21h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-6 8c0 1.1-.9
2-2 2s-2-.9-2-2V9c0-1.1.9-2 2-2s2 .9 2 2v4z"></path></g> <g id="perm-contact-cal
endar"><path d="M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c
1.1 0 2-.9 2-2V5c0-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 12H6v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1z"></path></g> <g id="perm-dat
a-setting"><path d="M18.99 11.5c.34 0 .67.03 1 .07L20 0 0 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.5
c-.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.1
1-.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.1
2.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"></path></g> <g id="per
m-device-information"><path d="M13 7h-2v2h2V7zm0 4h-2v6h2v-6zm4-9.99L7 1c-1.1 0-
2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10
v14z"></path></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.1S9.9 9.16 9.9 8s.94-2.1 2.1-2.1m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5
.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.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"></path></g> <g id="perm
-media"><path d="M2 6H0v5h.01L0 20c0 1.1.9 2 2 2h18v-2H2V6zm20-2h-8l-2-2H6c-1.1
0-1.99.9-1.99 2L4 16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7 15l4.5-
6 3.5 4.51 2.5-3.01L21 15H7z"></path></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.7
5-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-
1-1H4c-.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-1
zM12 3v10l3-3h6V3h-9z"></path></g> <g id="perm-scan-wifi"><path d="M12 3C6.95 3
3.15 4.85 0 7.23L12 22 24 7.25C20.85 4.87 17.05 3 12 3zm1 13h-2v-6h2v6zm-2-8V6h2
v2h-2z"></path></g> <g id="pets"><circle cx="4.5" cy="9.5" r="2.5"></circle><cir
cle cx="9" cy="5.5" r="2.5"></circle><circle cx="15" cy="5.5" r="2.5"></circle><
circle cx="19.5" cy="9.5" r="2.5"></circle><path d="M17.34 14.86c-.87-1.02-1.6-1
.89-2.48-2.91-.46-.54-1.05-1.08-1.75-1.32-.11-.04-.22-.07-.33-.09-.25-.04-.52-.0
4-.78-.04s-.53 0-.79.05c-.11.02-.22.05-.33.09-.7.24-1.28.78-1.75 1.32-.87 1.02-1
.6 1.89-2.48 2.91-1.31 1.31-2.92 2.76-2.62 4.79.29 1.02 1.02 2.03 2.33 2.32.73.1
5 3.06-.44 5.54-.44h.18c2.48 0 4.81.58 5.54.44 1.31-.29 2.04-1.31 2.33-2.32.31-2
.04-1.3-3.49-2.61-4.8z"></path></g> <g id="picture-in-picture"><path d="M19 7h-8
v6h8V7zm2-4H3c-1.1 0-2 .9-2 2v14c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98V5c0-1
.1-.9-2-2-2zm0 16.01H3V4.98h18v14.03z"></path></g> <g id="picture-in-picture-alt
"><path d="M19 11h-8v6h8v-6zm4 8V4.98C23 3.88 22.1 3 21 3H3c-1.1 0-2 .88-2 1.98V
19c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zm-2 .02H3V4.97h18v14.05z"></path></g> <g id="
play-for-work"><path d="M11 5v5.59H7.5l4.5 4.5 4.5-4.5H13V5h-2zm-5 9c0 3.31 2.69
6 6 6s6-2.69 6-6h-2c0 2.21-1.79 4-4 4s-4-1.79-4-4H6z"></path></g> <g id="polyme
r"><path d="M19 4h-4L7.11 16.63 4.5 12 9 4H5L.5 12 5 20h4l7.89-12.63L19.5 12 15
20h4l4.5-8z"></path></g> <g id="power-settings-new"><path d="M13 3h-2v10h2V3zm4.
83 2.17l-1.42 1.42C17.99 7.86 19 9.81 19 12c0 3.87-3.13 7-7 7s-7-3.13-7-7c0-2.19
1.01-4.14 2.58-5.42L6.17 5.17C4.23 6.82 3 9.26 3 12c0 4.97 4.03 9 9 9s9-4.03 9-
9c0-2.74-1.23-5.18-3.17-6.83z"></path></g> <g id="pregnant-woman"><path d="M9 4c
0-1.11.89-2 2-2s2 .89 2 2-.89 2-2 2-2-.89-2-2zm7 9c-.01-1.34-.83-2.51-2-3 0-1.66
-1.34-3-3-3s-3 1.34-3 3v7h2v5h3v-5h3v-4z"></path></g> <g id="print"><path d="M19
8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c
-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z"></path></g> <g i
d="query-builder"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22
22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3
.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"></path></g> <g id="question-a
nswer"><path d="M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0
-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z"></path></g> <g id=
"radio-button-checked"><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 18
c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></g> <g id="radio-
button-unchecked"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S
17.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"></path>
</g> <g id="receipt"><path d="M18 17H6v-2h12v2zm0-4H6v-2h12v2zm0-4H6V7h12v2zM3 2
2l1.5-1.5L6 22l1.5-1.5L9 22l1.5-1.5L12 22l1.5-1.5L15 22l1.5-1.5L18 22l1.5-1.5L21
22V2l-1.5 1.5L18 2l-1.5 1.5L15 2l-1.5 1.5L12 2l-1.5 1.5L9 2 7.5 3.5 6 2 4.5 3.5
3 2v20z"></path></g> <g id="record-voice-over"><circle cx="9" cy="9" r="4"></ci
rcle><path d="M9 15c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4zm7.76-9.64l-1.6
8 1.69c.84 1.18.84 2.71 0 3.89l1.68 1.69c2.02-2.02 2.02-5.07 0-7.27zM20.07 2l-1.
63 1.63c2.77 3.02 2.77 7.56 0 10.74L20.07 16c3.9-3.89 3.91-9.95 0-14z"></path></
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.0
5 0-1.96.54-2.5 1.35l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .3
5.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8
c0-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-1zM9 4c.55
0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.8
3 8.62 12 11 8.76l1-1.36 1 1.36L15.38 12 17 10.83 14.92 8H20v6z"></path></g> <g
id="redo"><path d="M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7
.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.
6z"></path></g> <g id="refresh"><path d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-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.78L13 11h7V4l-2.35 2.
35z"></path></g> <g id="remove"><path d="M19 13H5v-2h14v2z"></path></g> <g id="r
emove-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.5
2 2 12 2zm5 11H7v-2h10v2z"></path></g> <g id="remove-circle-outline"><path d="M7
11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm
0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path></g> <g id="re
order"><path d="M3 15h18v-2H3v2zm0 4h18v-2H3v2zm0-8h18V9H3v2zm0-6v2h18V5H3z"></p
ath></g> <g id="reply"><path d="M10 9V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-1
0-11-11z"></path></g> <g id="reply-all"><path d="M7 8V5l-7 7 7 7v-3l-4-4 4-4zm6
1V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"></path></g> <g id="report"
><path d="M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM12 17.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-2V7h2v6z"></path></g> <g id="report-problem"><path d="M1 21h22L12
2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"></path></g> <g id="restore"><path d="M13
3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-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.42C8.27 19.99 10.51 21 13 21c4.97 0 9-
4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"></path></g> <g id
="room"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.1
3-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"></path></g> <g id="rounded-corner"><path d="M19 19h2v2h-2v-2zm0-2h2
v-2h-2v2zM3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm0-4h2V3H3v2zm4 0h2V3H7v2zm8
16h2v-2h-2v2zm-4 0h2v-2h-2v2zm4 0h2v-2h-2v2zm-8 0h2v-2H7v2zm-4 0h2v-2H3v2zM21 8c
0-2.76-2.24-5-5-5h-5v2h5c1.65 0 3 1.35 3 3v5h2V8z"></path></g> <g id="rowing"><p
ath d="M8.5 14.5L4 19l1.5 1.5L9 17h2l-2.5-2.5zM15 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.
9 2-2-.9-2-2-2zm6 20.01L18 24l-2.99-3.01V19.5l-7.1-7.09c-.31.05-.61.07-.91.07v-2
.16c1.66.03 3.61-.87 4.67-2.04l1.4-1.55c.19-.21.43-.38.69-.5.29-.14.62-.23.96-.2
3h.03C15.99 6.01 17 7.02 17 8.26v5.75c0 .84-.35 1.61-.92 2.16l-3.58-3.58v-2.27c-
.63.52-1.43 1.02-2.29 1.39L16.5 18H18l3 3.01z"></path></g> <g id="save"><path d=
"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.6
6 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"></path></g> <g
id="schedule"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 1
7.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58
8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"></path></g> <g id="search"><path
d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.
91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.
99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"><
/path></g> <g id="select-all"><path d="M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4
8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1
.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2
-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h
10V7H7v10zm2-8h6v6H9V9z"></path></g> <g id="send"><path d="M2.01 21L23 12 2.01 3
2 10l15 2-15 2z"></path></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.65C14.46 2.18 14.25 2 14 2h
-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.9
8l-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.1
7-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.
65zM12 15.5c-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"></path></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-7H5c-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-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.85
c-.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.3
4 0 .43.15l1.4 2.42c.09.15.05.34-.08.45l-1.48 1.16c.03.23.05.46.05.69z"></path><
/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 9H0l4 4 4-4H5c0-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.44C8.04 20.3 9.94 21 12 21c4.97 0
9-4.03 9-9s-4.03-9-9-9z"></path></g> <g id="settings-bluetooth"><path d="M11 24h
2v-2h-2v2zm-4 0h2v-2H7v2zm8 0h2v-2h-2v2zm2.71-18.29L12 0h-1v7.59L6.41 3 5 4.41 1
0.59 10 5 15.59 6.41 17 11 12.41V20h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 3.83l1.88
1.88L13 7.59V3.83zm1.88 10.46L13 16.17v-3.76l1.88 1.88z"></path></g> <g id="sett
ings-brightness"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9
2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02zM8 16h2.5l1.5 1.5 1.5-1.5H16v-2.5
l1.5-1.5-1.5-1.5V8h-2.5L12 6.5 10.5 8H8v2.5L6.5 12 8 13.5V16zm4-7c1.66 0 3 1.34
3 3s-1.34 3-3 3V9z"></path></g> <g id="settings-cell"><path d="M7 24h2v-2H7v2zm4
0h2v-2h-2v2zm4 0h2v-2h-2v2zM16 .01L8 0C6.9 0 6 .9 6 2v16c0 1.1.9 2 2 2h8c1.1 0
2-.9 2-2V2c0-1.1-.9-1.99-2-1.99zM16 16H8V4h8v12z"></path></g> <g id="settings-et
hernet"><path d="M7.77 6.76L6.23 5.48.82 12l5.41 6.52 1.54-1.28L3.42 12l4.35-5.2
4zM7 13h2v-2H7v2zm10-2h-2v2h2v-2zm-6 2h2v-2h-2v2zm6.77-7.52l-1.54 1.28L20.58 12l
-4.35 5.24 1.54 1.28L23.18 12l-5.41-6.52z"></path></g> <g id="settings-input-ant
enna"><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.5S9.5 10.62 9
.5 12c0 1.02.62 1.9 1.5 2.29v3.3L7.59 21 9 22.41l3-3 3 3L16.41 21 13 17.59v-3.3z
M12 1C5.93 1 1 5.93 1 12h2c0-4.97 4.03-9 9-9s9 4.03 9 9h2c0-6.07-4.93-11-11-11z"
></path></g> <g id="settings-input-component"><path d="M5 2c0-.55-.45-1-1-1s-1 .
45-1 1v4H1v6h6V6H5V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82
v-2H9v2zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1v2zM21 6V
2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v
6h6V6h-2V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z"
></path></g> <g id="settings-input-composite"><path d="M5 2c0-.55-.45-1-1-1s-1 .
45-1 1v4H1v6h6V6H5V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82
v-2H9v2zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1v2zM21 6V
2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v
6h6V6h-2V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z"
></path></g> <g id="settings-input-hdmi"><path d="M18 7V4c0-1.1-.9-2-2-2H8c-1.1
0-2 .9-2 2v3H5v6l3 6v3h8v-3l3-6V7h-1zM8 4h8v3h-2V5h-1v2h-2V5h-1v2H8V4z"></path><
/g> <g id="settings-input-svideo"><path d="M8 11.5c0-.83-.67-1.5-1.5-1.5S5 10.67
5 11.5 5.67 13 6.5 13 8 12.33 8 11.5zm7-5c0-.83-.67-1.5-1.5-1.5h-3C9.67 5 9 5.6
7 9 6.5S9.67 8 10.5 8h3c.83 0 1.5-.67 1.5-1.5zM8.5 15c-.83 0-1.5.67-1.5 1.5S7.67
18 8.5 18s1.5-.67 1.5-1.5S9.33 15 8.5 15zM12 1C5.93 1 1 5.93 1 12s4.93 11 11 11
11-4.93 11-11S18.07 1 12 1zm0 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
"></path></g> <g id="settings-overscan"><path d="M12.01 5.5L10 8h4l-1.99-2.5zM18
10v4l2.5-1.99L18 10zM6 10l-2.5 2.01L6 14v-4zm8 6h-4l2.01 2.5L14 16zm7-13H3c-1.1
0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h
18v14.02z"></path></g> <g id="settings-phone"><path d="M13 9h-2v2h2V9zm4 0h-2v2h
2V9zm3 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.01C8.7 6.45 8.5 5.25 8.5 4c0-.5
5-.45-1-1-1H4c-.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-1zM19 9v2h2V9h-2z"></path></g> <g id="settings-power"><path d="M7 24h2v-2
H7v2zm4 0h2v-2h-2v2zm2-22h-2v10h2V2zm3.56 2.44l-1.45 1.45C16.84 6.94 18 8.83 18
11c0 3.31-2.69 6-6 6s-6-2.69-6-6c0-2.17 1.16-4.06 2.88-5.12L7.44 4.44C5.36 5.88
4 8.28 4 11c0 4.42 3.58 8 8 8s8-3.58 8-8c0-2.72-1.36-5.12-3.44-6.56zM15 24h2v-2h
-2v2z"></path></g> <g id="settings-remote"><path d="M15 9H9c-.55 0-1 .45-1 1v12c
0 .55.45 1 1 1h6c.55 0 1-.45 1-1V10c0-.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 2zM7.05 6.05l1.41 1.41C9.37 6.56 10.62 6 12 6s2.63.56 3.54 1.
46l1.41-1.41C15.68 4.78 13.93 4 12 4s-3.68.78-4.95 2.05zM12 0C8.96 0 6.21 1.23 4
.22 3.22l1.41 1.41C7.26 3.01 9.51 2 12 2s4.74 1.01 6.36 2.64l1.41-1.41C17.79 1.2
3 15.04 0 12 0z"></path></g> <g id="settings-voice"><path d="M7 24h2v-2H7v2zm5-1
1c1.66 0 2.99-1.34 2.99-3L15 4c0-1.66-1.34-3-3-3S9 2.34 9 4v6c0 1.66 1.34 3 3 3z
m-1 11h2v-2h-2v2zm4 0h2v-2h-2v2zm4-14h-1.7c0 3-2.54 5.1-5.3 5.1S6.7 13 6.7 10H5c
0 3.41 2.72 6.23 6 6.72V20h2v-3.28c3.28-.49 6-3.31 6-6.72z"></path></g> <g id="s
hop"><path d="M16 6V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H2v13c0 1.11.89 2 2
2h16c1.11 0 2-.89 2-2V6h-6zm-6-2h4v2h-4V4zM9 18V9l7.5 4L9 18z"></path></g> <g i
d="shop-two"><path d="M3 9H1v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2H3V9zm15-4V3c
0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H5v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2
V5h-5zm-6-2h4v2h-4V3zm0 12V8l5.5 3-5.5 4z"></path></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.43L6.79 9H
2c-.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.27L23 10c0-.55-.45-1-1-1h-4.79zM9 9l3-4.4L15 9H9zm3 8c
-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"></path></g> <g id="shopping-cart"><
path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.
59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.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-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-
.9-2-2-2z"></path></g> <g id="sort"><path d="M3 18h6v-2H3v2zM3 6v2h18V6H3zm0 7h1
2v-2H3v2z"></path></g> <g id="speaker-notes"><path d="M20 2H4c-1.1 0-1.99.9-1.99
2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 14H6v-2h2v2zm0-3H6V9h2v2zm0-3H
6V6h2v2zm7 6h-5v-2h5v2zm3-3h-8V9h8v2zm0-3h-8V6h8v2z"></path></g> <g id="spellche
ck"><path d="M12.45 16h2.09L9.43 3H7.57L2.46 16h2.09l1.12-3h5.64l1.14 3zm-6.02-5
L8.5 5.48 10.57 11H6.43zm15.16.59l-8.09 8.09L9.83 16l-1.41 1.41 5.09 5.09L23 13l
-1.41-1.41z"></path></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"></path></g> <g id="star
-border"><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-.38L
12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"></path></g> <g id="star-half
"><path d="M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 1
8.18 21l-1.63-7.03L22 9.24zM12 15.4V6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15
.4z"></path></g> <g id="stars"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99
10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm4.24 16L12 15.45 7.77 18l1.12-4.81-
3.73-3.23 4.92-.42L12 5l1.92 4.53 4.92.42-3.73 3.23L16.23 18z"></path></g> <g id
="store"><path d="M20 4H4v2h16V4zm1 10v-2l-1-5H4l-1 5v2h1v6h10v-6h4v6h2v-6h1zm-9
4H6v-4h6v4z"></path></g> <g id="subdirectory-arrow-left"><path d="M11 9l1.42 1.
42L8.83 14H18V4h2v12H8.83l3.59 3.58L11 21l-6-6 6-6z"></path></g> <g id="subdirec
tory-arrow-right"><path d="M19 15l-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.
58L13 9l6 6z"></path></g> <g id="subject"><path d="M14 17H4v2h10v-2zm6-8H4v2h16V
9zM4 15h16v-2H4v2zM4 5v2h16V5H4z"></path></g> <g id="supervisor-account"><path d
="M16.5 12c1.38 0 2.49-1.12 2.49-2.5S17.88 7 16.5 7C15.12 7 14 8.12 14 9.5s1.12
2.5 2.5 2.5zM9 11c1.66 0 2.99-1.34 2.99-3S10.66 5 9 5C7.34 5 6 6.34 6 8s1.34 3 3
3zm7.5 3c-1.83 0-5.5.92-5.5 2.75V19h11v-2.25c0-1.83-3.67-2.75-5.5-2.75zM9 13c-2
.33 0-7 1.17-7 3.5V19h7v-2.25c0-.85.33-2.34 2.37-3.47C10.5 13.1 9.66 13 9 13z"><
/path></g> <g id="swap-horiz"><path d="M6.99 11L3 15l3.99 4v-3H14v-2H6.99v-3zM21
9l-3.99-4v3H10v2h7.01v3L21 9z"></path></g> <g id="swap-vert"><path d="M16 17.01
V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3L5 6.99h3V14h2V6.99h3L9 3z"></path></g> <g id
="swap-vertical-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48
10-10S17.52 2 12 2zM6.5 9L10 5.5 13.5 9H11v4H9V9H6.5zm11 6L14 18.5 10.5 15H13v-4
h2v4h2.5z"></path></g> <g id="system-update-alt"><path d="M12 16.5l4-4h-3v-9h-2v
9H8l4 4zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18
c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2z"></path></g> <g id="tab"><path d="M21 3H3c-1
.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h10v4
h8v10z"></path></g> <g id="tab-unselected"><path d="M1 9h2V7H1v2zm0 4h2v-2H1v2zm
0-8h2V3c-1.1 0-2 .9-2 2zm8 16h2v-2H9v2zm-8-4h2v-2H1v2zm2 4v-2H1c0 1.1.9 2 2 2zM2
1 3h-8v6h10V5c0-1.1-.9-2-2-2zm0 14h2v-2h-2v2zM9 5h2V3H9v2zM5 21h2v-2H5v2zM5 5h2V
3H5v2zm16 16c1.1 0 2-.9 2-2h-2v2zm0-8h2v-2h-2v2zm-8 8h2v-2h-2v2zm4 0h2v-2h-2v2z"
></path></g> <g id="text-format"><path d="M5 17v2h14v-2H5zm4.5-4.2h5l.9 2.2h2.1L
12.75 4h-1.5L6.5 15h2.1l.9-2.2zM12 5.98L13.87 11h-3.74L12 5.98z"></path></g> <g
id="theaters"><path d="M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H
6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2
z"></path></g> <g id="thumb-down"><path d="M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02
7.05c-.09.23-.14.47-.14.73v1.91l.01.01L1 14c0 1.1.9 2 2 2h6.31l-.95 4.57-.03.32
c0 .41.17.79.44 1.06L9.83 23l6.59-6.59c.36-.36.58-.86.58-1.41V5c0-1.1-.9-2-2-2zm
4 0v12h4V3h-4z"></path></g> <g id="thumb-up"><path d="M1 21h4V9H1v12zm22-11c0-1.
1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7
.95 7 8.45 7 9v10c0 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-.01L23 10z"></path></g> <g id="thumbs-up-down"><path d="M12
6c0-.55-.45-1-1-1H5.82l.66-3.18.02-.23c0-.31-.13-.59-.33-.8L5.38 0 .44 4.94C.17
5.21 0 5.59 0 6v6.5c0 .83.67 1.5 1.5 1.5h6.75c.62 0 1.15-.38 1.38-.91l2.26-5.29
c.07-.17.11-.36.11-.55V6zm10.5 4h-6.75c-.62 0-1.15.38-1.38.91l-2.26 5.29c-.07.17
-.11.36-.11.55V18c0 .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"></path></g> <g id="
timeline"><path d="M23 8c0 1.1-.9 2-2 2-.18 0-.35-.02-.51-.07l-3.56 3.55c.05.16.
07.34.07.52 0 1.1-.9 2-2 2s-2-.9-2-2c0-.18.02-.36.07-.52l-2.55-2.55c-.16.05-.34.
07-.52.07s-.36-.02-.52-.07l-4.55 4.56c.05.16.07.33.07.51 0 1.1-.9 2-2 2s-2-.9-2-
2 .9-2 2-2c.18 0 .35.02.51.07l4.56-4.55C8.02 9.36 8 9.18 8 9c0-1.1.9-2 2-2s2 .9
2 2c0 .18-.02.36-.07.52l2.55 2.55c.16-.05.34-.07.52-.07s.36.02.52.07l3.55-3.56C1
9.02 8.35 19 8.18 19 8c0-1.1.9-2 2-2s2 .9 2 2z"></path></g> <g id="toc"><path d=
"M3 9h14V7H3v2zm0 4h14v-2H3v2zm0 4h14v-2H3v2zm16 0h2v-2h-2v2zm0-10v2h2V7h-2zm0 6
h2v-2h-2v2z"></path></g> <g id="today"><path d="M19 3h-1V1h-2v2H8V1H6v2H5c-1.11
0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8
h14v11zM7 10h5v5H7z"></path></g> <g id="toll"><path d="M15 4c-4.42 0-8 3.58-8 8s
3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-
2.69 6-6 6zM3 12c0-2.61 1.67-4.83 4-5.65V4.26C3.55 5.15 1 8.27 1 12s2.55 6.85 6
7.74v-2.09c-2.33-.82-4-3.04-4-5.65z"></path></g> <g id="touch-app"><path d="M9 1
1.24V7.5C9 6.12 10.12 5 11.5 5S14 6.12 14 7.5v3.74c1.21-.81 2-2.18 2-3.74C16 5.0
1 13.99 3 11.5 3S7 5.01 7 7.5c0 1.56.79 2.93 2 3.74zm9.84 4.63l-4.54-2.26c-.17-.
07-.35-.11-.54-.11H13v-6c0-.83-.67-1.5-1.5-1.5S10 6.67 10 7.5v10.74l-3.43-.72c-.
08-.01-.15-.03-.24-.03-.31 0-.59.13-.79.33l-.79.8 4.94 4.94c.27.27.65.44 1.06.44
h6.79c.75 0 1.33-.55 1.44-1.28l.75-5.27c.01-.07.02-.14.02-.2 0-.62-.38-1.16-.91-
1.38z"></path></g> <g id="track-changes"><path d="M19.07 4.93l-1.41 1.41C19.1 7.
79 20 9.79 20 12c0 4.42-3.58 8-8 8s-8-3.58-8-8c0-4.08 3.05-7.44 7-7.93v2.02C8.16
6.57 6 9.03 6 12c0 3.31 2.69 6 6 6s6-2.69 6-6c0-1.66-.67-3.16-1.76-4.24l-1.41 1
.41C15.55 9.9 16 10.9 16 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.86 1.28-3.41 3-3.8
6v2.14c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V2h-1C6.48
2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-2.76-1.12-5.26-2.93-7.07z"></path><
/g> <g id="translate"><path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.1
7 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7
.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-
2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17
h-3.24z"></path></g> <g id="trending-down"><path d="M16 18l2.29-2.29-4.88-4.88-4
4L2 7.41 3.41 6l6 6 4-4 6.3 6.29L22 12v6z"></path></g> <g id="trending-flat"><p
ath d="M22 12l-4-4v3H3v2h15v3z"></path></g> <g id="trending-up"><path d="M16 6l2
.29 2.29-4.88 4.88-4-4L2 16.59 3.41 18l6-6 4 4 6.3-6.29L22 12V6z"></path></g> <g
id="turned-in"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-
2-2z"></path></g> <g id="turned-in-not"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5
21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15l-5-2.18L7 18V5h10v13z"></path></g> <g id="unar
chive"><path d="M20.55 5.22l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1
.15.55L3.46 5.22C3.17 5.57 3 6.01 3 6.5V19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6.5c
0-.49-.17-.93-.45-1.28zM12 9.5l5.5 5.5H14v2h-4v-2H6.5L12 9.5zM5.12 5l.82-1h12l.9
3 1H5.12z"></path></g> <g id="undo"><path d="M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7
v9h9l-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
21.08 11.03 17.15 8 12.5 8z"></path></g> <g id="unfold-less"><path d="M7.41 18.5
9L8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zm9.18-13.18L15.17 4 12 7.
17 8.83 4 7.41 5.41 12 10l4.59-4.59z"></path></g> <g id="unfold-more"><path d="M
12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1
.41L12 21l4.59-4.59L15.17 15 12 18.17z"></path></g> <g id="update"><path d="M21
10.12h-6.78l2.74-2.82c-2.73-2.7-7.15-2.8-9.88-.1-2.73 2.71-2.73 7.08 0 9.79 2.73
2.71 7.15 2.71 9.88 0C18.32 15.65 19 14.08 19 12.1h2c0 1.98-.88 4.55-2.64 6.29-
3.51 3.48-9.21 3.48-12.72 0-3.5-3.47-3.53-9.11-.02-12.58 3.51-3.47 9.14-3.47 12.
65 0L21 3v7.12zM12.5 8v4.25l3.5 2.08-.72 1.21L11 13V8h1.5z"></path></g> <g id="v
erified-user"><path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V
5l-9-4zm-2 16l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"></path></g> <g id="v
iew-agenda"><path d="M20 13H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1
-1v-6c0-.55-.45-1-1-1zm0-10H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1
-1V4c0-.55-.45-1-1-1z"></path></g> <g id="view-array"><path d="M4 18h3V5H4v13zM1
8 5v13h3V5h-3zM8 18h9V5H8v13z"></path></g> <g id="view-carousel"><path d="M7 19h
10V4H7v15zm-5-2h4V6H2v11zM18 6v11h4V6h-4z"></path></g> <g id="view-column"><path
d="M10 18h5V5h-5v13zm-6 0h5V5H4v13zM16 5v13h5V5h-5z"></path></g> <g id="view-da
y"><path d="M2 21h19v-3H2v3zM20 8H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1
-.45 1-1V9c0-.55-.45-1-1-1zM2 3v3h19V3H2z"></path></g> <g id="view-headline"><pa
th d="M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z"></path></g> <
g id="view-list"><path d="M4 14h4v-4H4v4zm0 5h4v-4H4v4zM4 9h4V5H4v4zm5 5h12v-4H9
v4zm0 5h12v-4H9v4zM9 5v4h12V5H9z"></path></g> <g id="view-module"><path d="M4 11
h5V5H4v6zm0 7h5v-6H4v6zm6 0h5v-6h-5v6zm6 0h5v-6h-5v6zm-6-7h5V5h-5v6zm6-6v6h5V5h-
5z"></path></g> <g id="view-quilt"><path d="M10 18h5v-6h-5v6zm-6 0h5V5H4v13zm12
0h5v-6h-5v6zM10 5v6h11V5H10z"></path></g> <g id="view-stream"><path d="M4 18h17v
-6H4v6zM4 5v6h17V5H4z"></path></g> <g id="view-week"><path d="M6 5H3c-.55 0-1 .4
5-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm14 0h-3c-.55 0-1 .4
5-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-7 0h-3c-.55 0-1 .4
5-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z"></path></g> <g id=
"visibility"><path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3
.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-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"></path>
</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.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78
10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.
73 3.27 3 2 4.27zM7.53 9.8l1.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.5
3.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"></path></g> <g i
d="warning"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"></path>
</g> <g id="watch-later"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-
10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"></path></g> <g id="wee
kend"><path d="M21 10c-1.1 0-2 .9-2 2v3H5v-3c0-1.1-.9-2-2-2s-2 .9-2 2v5c0 1.1.9
2 2 2h18c1.1 0 2-.9 2-2v-5c0-1.1-.9-2-2-2zm-3-5H6c-1.1 0-2 .9-2 2v2.15c1.16.41 2
1.51 2 2.82V14h12v-2.03c0-1.3.84-2.4 2-2.82V7c0-1.1-.9-2-2-2z"></path></g> <g i
d="work"><path d="M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1
.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h
-4V4h4v2z"></path></g> <g id="youtube-searched-for"><path d="M17.01 14h-.8l-.27-
.27c.98-1.14 1.57-2.61 1.57-4.23 0-3.59-2.91-6.5-6.5-6.5s-6.5 3-6.5 6.5H2l3.84 4
4.16-4H6.51C6.51 7 8.53 5 11.01 5s4.5 2.01 4.5 4.5c0 2.48-2.02 4.5-4.5 4.5-.65
0-1.26-.14-1.82-.38L7.71 15.1c.97.57 2.09.9 3.3.9 1.61 0 3.08-.59 4.22-1.57l.27.
27v.79l5.01 4.99L22 19l-4.99-5z"></path></g> <g id="zoom-in"><path d="M15.5 14h-
.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91
16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.
01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zm2.5-4h-2v2H9v-2
H7V9h2V7h1v2h2v1z"></path></g> <g id="zoom-out"><path d="M15.5 14h-.79l-.28-.27C
15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.
61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99
5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z"></path></g> </de
fs></svg> </iron-iconset-svg> <script>!function(){"use strict";function e(e,t){v
ar n="";if(e){var i=e.toLowerCase();" "===i||v.test(i)?n="space":f.test(i)?n="es
c":1==i.length?t&&!u.test(i)||(n=i):n=c.test(i)?i.replace("arrow",""):"multiply"
==i?"*":i}return n}function t(e){var t="";return e&&(e in o?t=o[e]:h.test(e)?(e=
parseInt(e.replace("U+","0x"),16),t=String.fromCharCode(e).toLowerCase()):t=e.to
LowerCase()),t}function n(e){var t="";return Number(e)&&(t=e>=65&&e<=90?String.f
romCharCode(32+e):e>=112&&e<=123?"f"+(e-112):e>=48&&e<=57?String(e-48):e>=96&&e<
=105?String(e-96):d[e]),t}function i(i,r){return i.key?e(i.key,r):i.detail&&i.de
tail.key?e(i.detail.key,r):t(i.keyIdentifier)||n(i.keyCode)||""}function r(e,t){
var n=i(t,e.hasModifiers);return n===e.key&&(!e.hasModifiers||!!t.shiftKey==!!e.
shiftKey&&!!t.ctrlKey==!!e.ctrlKey&&!!t.altKey==!!e.altKey&&!!t.metaKey==!!e.met
aKey)}function s(e){return 1===e.length?{combo:e,key:e,event:"keydown"}:e.split(
"+").reduce(function(e,t){var n=t.split(":"),i=n[0],r=n[1];return i in y?(e[y[i]
]=!0,e.hasModifiers=!0):(e.key=i,e.event=r||"keydown"),e},{combo:e.split(":").sh
ift()})}function a(e){return e.trim().split(" ").map(function(e){return s(e)})}v
ar o={"U+0008":"backspace","U+0009":"tab","U+001B":"esc","U+0020":"space","U+007
F":"del"},d={8:"backspace",9:"tab",13:"enter",27:"esc",33:"pageup",34:"pagedown"
,35:"end",36:"home",32:"space",37:"left",38:"up",39:"right",40:"down",46:"del",1
06:"*"},y={shift:"shiftKey",ctrl:"ctrlKey",alt:"altKey",meta:"metaKey"},u=/[a-z0
-9*]/,h=/U\+/,c=/^arrow/,v=/^space(bar)?/,f=/^escape$/;Polymer.IronA11yKeysBehav
ior={properties:{keyEventTarget:{type:Object,value:function(){return this}},stop
KeyboardEventPropagation:{type:Boolean,value:!1},_boundKeyHandlers:{type:Array,v
alue:function(){return[]}},_imperativeKeyBindings:{type:Object,value:function(){
return{}}}},observers:["_resetKeyEventListeners(keyEventTarget, _boundKeyHandler
s)"],keyBindings:{},registered:function(){this._prepKeyBindings()},attached:func
tion(){this._listenKeyEventListeners()},detached:function(){this._unlistenKeyEve
ntListeners()},addOwnKeyBinding:function(e,t){this._imperativeKeyBindings[e]=t,t
his._prepKeyBindings(),this._resetKeyEventListeners()},removeOwnKeyBindings:func
tion(){this._imperativeKeyBindings={},this._prepKeyBindings(),this._resetKeyEven
tListeners()},keyboardEventMatchesKeys:function(e,t){for(var n=a(t),i=0;i<n.leng
th;++i)if(r(n[i],e))return!0;return!1},_collectKeyBindings:function(){var e=this
.behaviors.map(function(e){return e.keyBindings});return e.indexOf(this.keyBindi
ngs)===-1&&e.push(this.keyBindings),e},_prepKeyBindings:function(){this._keyBind
ings={},this._collectKeyBindings().forEach(function(e){for(var t in e)this._addK
eyBinding(t,e[t])},this);for(var e in this._imperativeKeyBindings)this._addKeyBi
nding(e,this._imperativeKeyBindings[e]);for(var t in this._keyBindings)this._key
Bindings[t].sort(function(e,t){var n=e[0].hasModifiers,i=t[0].hasModifiers;retur
n n===i?0:n?-1:1})},_addKeyBinding:function(e,t){a(e).forEach(function(e){this._
keyBindings[e.event]=this._keyBindings[e.event]||[],this._keyBindings[e.event].p
ush([e,t])},this)},_resetKeyEventListeners:function(){this._unlistenKeyEventList
eners(),this.isAttached&&this._listenKeyEventListeners()},_listenKeyEventListene
rs:function(){this.keyEventTarget&&Object.keys(this._keyBindings).forEach(functi
on(e){var t=this._keyBindings[e],n=this._onKeyBindingEvent.bind(this,t);this._bo
undKeyHandlers.push([this.keyEventTarget,e,n]),this.keyEventTarget.addEventListe
ner(e,n)},this)},_unlistenKeyEventListeners:function(){for(var e,t,n,i;this._bou
ndKeyHandlers.length;)e=this._boundKeyHandlers.pop(),t=e[0],n=e[1],i=e[2],t.remo
veEventListener(n,i)},_onKeyBindingEvent:function(e,t){if(this.stopKeyboardEvent
Propagation&&t.stopPropagation(),!t.defaultPrevented)for(var n=0;n<e.length;n++)
{var i=e[n][0],s=e[n][1];if(r(i,t)&&(this._triggerKeyHandler(i,s,t),t.defaultPre
vented))return}},_triggerKeyHandler:function(e,t,n){var i=Object.create(e);i.key
boardEvent=n;var r=new CustomEvent(e.event,{detail:i,cancelable:!0});this[t].cal
l(this,r),r.defaultPrevented&&n.preventDefault()}}}()</script> <script>Polymer.I
ronControlState={properties:{focused:{type:Boolean,value:!1,notify:!0,readOnly:!
0,reflectToAttribute:!0},disabled:{type:Boolean,value:!1,notify:!0,observer:"_di
sabledChanged",reflectToAttribute:!0},_oldTabIndex:{type:Number},_boundFocusBlur
Handler:{type:Function,value:function(){return this._focusBlurHandler.bind(this)
}}},observers:["_changedControlState(focused, disabled)"],ready:function(){this.
addEventListener("focus",this._boundFocusBlurHandler,!0),this.addEventListener("
blur",this._boundFocusBlurHandler,!0)},_focusBlurHandler:function(e){if(e.target
===this)this._setFocused("focus"===e.type);else if(!this.shadowRoot){var t=Polym
er.dom(e).localTarget;this.isLightDescendant(t)||this.fire(e.type,{sourceEvent:e
},{node:this,bubbles:e.bubbles,cancelable:e.cancelable})}},_disabledChanged:func
tion(e,t){this.setAttribute("aria-disabled",e?"true":"false"),this.style.pointer
Events=e?"none":"",e?(this._oldTabIndex=this.tabIndex,this._setFocused(!1),this.
tabIndex=-1,this.blur()):void 0!==this._oldTabIndex&&(this.tabIndex=this._oldTab
Index)},_changedControlState:function(){this._controlStateChanged&&this._control
StateChanged()}}</script> <script>Polymer.IronButtonStateImpl={properties:{press
ed:{type:Boolean,readOnly:!0,value:!1,reflectToAttribute:!0,observer:"_pressedCh
anged"},toggles:{type:Boolean,value:!1,reflectToAttribute:!0},active:{type:Boole
an,value:!1,notify:!0,reflectToAttribute:!0},pointerDown:{type:Boolean,readOnly:
!0,value:!1},receivedFocusFromKeyboard:{type:Boolean,readOnly:!0},ariaActiveAttr
ibute:{type:String,value:"aria-pressed",observer:"_ariaActiveAttributeChanged"}}
,listeners:{down:"_downHandler",up:"_upHandler",tap:"_tapHandler"},observers:["_
detectKeyboardFocus(focused)","_activeChanged(active, ariaActiveAttribute)"],key
Bindings:{"enter:keydown":"_asyncClick","space:keydown":"_spaceKeyDownHandler","
space:keyup":"_spaceKeyUpHandler"},_mouseEventRe:/^mouse/,_tapHandler:function()
{this.toggles?this._userActivate(!this.active):this.active=!1},_detectKeyboardFo
cus:function(e){this._setReceivedFocusFromKeyboard(!this.pointerDown&&e)},_userA
ctivate:function(e){this.active!==e&&(this.active=e,this.fire("change"))},_downH
andler:function(e){this._setPointerDown(!0),this._setPressed(!0),this._setReceiv
edFocusFromKeyboard(!1)},_upHandler:function(){this._setPointerDown(!1),this._se
tPressed(!1)},_spaceKeyDownHandler:function(e){var t=e.detail.keyboardEvent,i=Po
lymer.dom(t).localTarget;this.isLightDescendant(i)||(t.preventDefault(),t.stopIm
mediatePropagation(),this._setPressed(!0))},_spaceKeyUpHandler:function(e){var t
=e.detail.keyboardEvent,i=Polymer.dom(t).localTarget;this.isLightDescendant(i)||
(this.pressed&&this._asyncClick(),this._setPressed(!1))},_asyncClick:function(){
this.async(function(){this.click()},1)},_pressedChanged:function(e){this._change
dButtonState()},_ariaActiveAttributeChanged:function(e,t){t&&t!=e&&this.hasAttri
bute(t)&&this.removeAttribute(t)},_activeChanged:function(e,t){this.toggles?this
.setAttribute(this.ariaActiveAttribute,e?"true":"false"):this.removeAttribute(th
is.ariaActiveAttribute),this._changedButtonState()},_controlStateChanged:functio
n(){this.disabled?this._setPressed(!1):this._changedButtonState()},_changedButto
nState:function(){this._buttonStateChanged&&this._buttonStateChanged()}},Polymer
.IronButtonState=[Polymer.IronA11yKeysBehavior,Polymer.IronButtonStateImpl]</scr
ipt> <dom-module id="paper-ripple" assetpath="/res/imp/bower_components/paper-ri
pple/"> <template> <style>:host{display:block;position:absolute;border-radius:in
herit;overflow:hidden;top:0;left:0;right:0;bottom:0;pointer-events:none}:host([a
nimating]){-webkit-transform:translate(0,0);transform:translate3d(0,0,0)}#backgr
ound,#waves,.wave,.wave-container{pointer-events:none;position:absolute;top:0;le
ft:0;width:100%;height:100%}#background,.wave{opacity:0}#waves,.wave{overflow:hi
dden}.wave,.wave-container{border-radius:50%}:host(.circle) #background,:host(.c
ircle) #waves{border-radius:50%}:host(.circle) .wave-container{overflow:hidden}<
/style> <div id="background"></div> <div id="waves"></div> </template> </dom-mod
ule> <script>!function(){function t(t){this.element=t,this.width=this.boundingRe
ct.width,this.height=this.boundingRect.height,this.size=Math.max(this.width,this
.height)}function i(t){this.element=t,this.color=window.getComputedStyle(t).colo
r,this.wave=document.createElement("div"),this.waveContainer=document.createElem
ent("div"),this.wave.style.backgroundColor=this.color,this.wave.classList.add("w
ave"),this.waveContainer.classList.add("wave-container"),Polymer.dom(this.waveCo
ntainer).appendChild(this.wave),this.resetInteractionState()}var e={distance:fun
ction(t,i,e,n){var s=t-e,o=i-n;return Math.sqrt(s*s+o*o)},now:window.performance
&&window.performance.now?window.performance.now.bind(window.performance):Date.no
w};t.prototype={get boundingRect(){return this.element.getBoundingClientRect()},
furthestCornerDistanceFrom:function(t,i){var n=e.distance(t,i,0,0),s=e.distance(
t,i,this.width,0),o=e.distance(t,i,0,this.height),a=e.distance(t,i,this.width,th
is.height);return Math.max(n,s,o,a)}},i.MAX_RADIUS=300,i.prototype={get recenter
s(){return this.element.recenters},get center(){return this.element.center},get
mouseDownElapsed(){var t;return this.mouseDownStart?(t=e.now()-this.mouseDownSta
rt,this.mouseUpStart&&(t-=this.mouseUpElapsed),t):0},get mouseUpElapsed(){return
this.mouseUpStart?e.now()-this.mouseUpStart:0},get mouseDownElapsedSeconds(){re
turn this.mouseDownElapsed/1e3},get mouseUpElapsedSeconds(){return this.mouseUpE
lapsed/1e3},get mouseInteractionSeconds(){return this.mouseDownElapsedSeconds+th
is.mouseUpElapsedSeconds},get initialOpacity(){return this.element.initialOpacit
y},get opacityDecayVelocity(){return this.element.opacityDecayVelocity},get radi
us(){var t=this.containerMetrics.width*this.containerMetrics.width,e=this.contai
nerMetrics.height*this.containerMetrics.height,n=1.1*Math.min(Math.sqrt(t+e),i.M
AX_RADIUS)+5,s=1.1-.2*(n/i.MAX_RADIUS),o=this.mouseInteractionSeconds/s,a=n*(1-M
ath.pow(80,-o));return Math.abs(a)},get opacity(){return this.mouseUpStart?Math.
max(0,this.initialOpacity-this.mouseUpElapsedSeconds*this.opacityDecayVelocity):
this.initialOpacity},get outerOpacity(){var t=.3*this.mouseUpElapsedSeconds,i=th
is.opacity;return Math.max(0,Math.min(t,i))},get isOpacityFullyDecayed(){return
this.opacity<.01&&this.radius>=Math.min(this.maxRadius,i.MAX_RADIUS)},get isRest
ingAtMaxRadius(){return this.opacity>=this.initialOpacity&&this.radius>=Math.min
(this.maxRadius,i.MAX_RADIUS)},get isAnimationComplete(){return this.mouseUpStar
t?this.isOpacityFullyDecayed:this.isRestingAtMaxRadius},get translationFraction(
){return Math.min(1,this.radius/this.containerMetrics.size*2/Math.sqrt(2))},get
xNow(){return this.xEnd?this.xStart+this.translationFraction*(this.xEnd-this.xSt
art):this.xStart},get yNow(){return this.yEnd?this.yStart+this.translationFracti
on*(this.yEnd-this.yStart):this.yStart},get isMouseDown(){return this.mouseDownS
tart&&!this.mouseUpStart},resetInteractionState:function(){this.maxRadius=0,this
.mouseDownStart=0,this.mouseUpStart=0,this.xStart=0,this.yStart=0,this.xEnd=0,th
is.yEnd=0,this.slideDistance=0,this.containerMetrics=new t(this.element)},draw:f
unction(){var t,i,e;this.wave.style.opacity=this.opacity,t=this.radius/(this.con
tainerMetrics.size/2),i=this.xNow-this.containerMetrics.width/2,e=this.yNow-this
.containerMetrics.height/2,this.waveContainer.style.webkitTransform="translate("
+i+"px, "+e+"px)",this.waveContainer.style.transform="translate3d("+i+"px, "+e+"
px, 0)",this.wave.style.webkitTransform="scale("+t+","+t+")",this.wave.style.tra
nsform="scale3d("+t+","+t+",1)"},downAction:function(t){var i=this.containerMetr
ics.width/2,n=this.containerMetrics.height/2;this.resetInteractionState(),this.m
ouseDownStart=e.now(),this.center?(this.xStart=i,this.yStart=n,this.slideDistanc
e=e.distance(this.xStart,this.yStart,this.xEnd,this.yEnd)):(this.xStart=t?t.deta
il.x-this.containerMetrics.boundingRect.left:this.containerMetrics.width/2,this.
yStart=t?t.detail.y-this.containerMetrics.boundingRect.top:this.containerMetrics
.height/2),this.recenters&&(this.xEnd=i,this.yEnd=n,this.slideDistance=e.distanc
e(this.xStart,this.yStart,this.xEnd,this.yEnd)),this.maxRadius=this.containerMet
rics.furthestCornerDistanceFrom(this.xStart,this.yStart),this.waveContainer.styl
e.top=(this.containerMetrics.height-this.containerMetrics.size)/2+"px",this.wave
Container.style.left=(this.containerMetrics.width-this.containerMetrics.size)/2+
"px",this.waveContainer.style.width=this.containerMetrics.size+"px",this.waveCon
tainer.style.height=this.containerMetrics.size+"px"},upAction:function(t){this.i
sMouseDown&&(this.mouseUpStart=e.now())},remove:function(){Polymer.dom(this.wave
Container.parentNode).removeChild(this.waveContainer)}},Polymer({is:"paper-rippl
e",behaviors:[Polymer.IronA11yKeysBehavior],properties:{initialOpacity:{type:Num
ber,value:.25},opacityDecayVelocity:{type:Number,value:.8},recenters:{type:Boole
an,value:!1},center:{type:Boolean,value:!1},ripples:{type:Array,value:function()
{return[]}},animating:{type:Boolean,readOnly:!0,reflectToAttribute:!0,value:!1},
holdDown:{type:Boolean,value:!1,observer:"_holdDownChanged"},noink:{type:Boolean
,value:!1},_animating:{type:Boolean},_boundAnimate:{type:Function,value:function
(){return this.animate.bind(this)}}},get target(){return this.keyEventTarget},ke
yBindings:{"enter:keydown":"_onEnterKeydown","space:keydown":"_onSpaceKeydown","
space:keyup":"_onSpaceKeyup"},attached:function(){11==this.parentNode.nodeType?t
his.keyEventTarget=Polymer.dom(this).getOwnerRoot().host:this.keyEventTarget=thi
s.parentNode;var t=this.keyEventTarget;this.listen(t,"up","uiUpAction"),this.lis
ten(t,"down","uiDownAction")},detached:function(){this.unlisten(this.keyEventTar
get,"up","uiUpAction"),this.unlisten(this.keyEventTarget,"down","uiDownAction"),
this.keyEventTarget=null},get shouldKeepAnimating(){for(var t=0;t<this.ripples.l
ength;++t)if(!this.ripples[t].isAnimationComplete)return!0;return!1},simulatedRi
pple:function(){this.downAction(null),this.async(function(){this.upAction()},1)}
,uiDownAction:function(t){this.noink||this.downAction(t)},downAction:function(t)
{if(!(this.holdDown&&this.ripples.length>0)){var i=this.addRipple();i.downAction
(t),this._animating||(this._animating=!0,this.animate())}},uiUpAction:function(t
){this.noink||this.upAction(t)},upAction:function(t){this.holdDown||(this.ripple
s.forEach(function(i){i.upAction(t)}),this._animating=!0,this.animate())},onAnim
ationComplete:function(){this._animating=!1,this.$.background.style.backgroundCo
lor=null,this.fire("transitionend")},addRipple:function(){var t=new i(this);retu
rn Polymer.dom(this.$.waves).appendChild(t.waveContainer),this.$.background.styl
e.backgroundColor=t.color,this.ripples.push(t),this._setAnimating(!0),t},removeR
ipple:function(t){var i=this.ripples.indexOf(t);i<0||(this.ripples.splice(i,1),t
.remove(),this.ripples.length||this._setAnimating(!1))},animate:function(){if(th
is._animating){var t,i;for(t=0;t<this.ripples.length;++t)i=this.ripples[t],i.dra
w(),this.$.background.style.opacity=i.outerOpacity,i.isOpacityFullyDecayed&&!i.i
sRestingAtMaxRadius&&this.removeRipple(i);this.shouldKeepAnimating||0!==this.rip
ples.length?window.requestAnimationFrame(this._boundAnimate):this.onAnimationCom
plete()}},_onEnterKeydown:function(){this.uiDownAction(),this.async(this.uiUpAct
ion,1)},_onSpaceKeydown:function(){this.uiDownAction()},_onSpaceKeyup:function()
{this.uiUpAction()},_holdDownChanged:function(t,i){void 0!==i&&(t?this.downActio
n():this.upAction())}})}()</script> <script>Polymer.PaperRippleBehavior={propert
ies:{noink:{type:Boolean,observer:"_noinkChanged"},_rippleContainer:{type:Object
}},_buttonStateChanged:function(){this.focused&&this.ensureRipple()},_downHandle
r:function(e){Polymer.IronButtonStateImpl._downHandler.call(this,e),this.pressed
&&this.ensureRipple(e)},ensureRipple:function(e){if(!this.hasRipple()){this._rip
ple=this._createRipple(),this._ripple.noink=this.noink;var i=this._rippleContain
er||this.root;if(i&&Polymer.dom(i).appendChild(this._ripple),e){var n=Polymer.do
m(this._rippleContainer||this),t=Polymer.dom(e).rootTarget;n.deepContains(t)&&th
is._ripple.uiDownAction(e)}}},getRipple:function(){return this.ensureRipple(),th
is._ripple},hasRipple:function(){return Boolean(this._ripple)},_createRipple:fun
ction(){return document.createElement("paper-ripple")},_noinkChanged:function(e)
{this.hasRipple()&&(this._ripple.noink=e)}}</script> <script>Polymer.PaperButton
BehaviorImpl={properties:{elevation:{type:Number,reflectToAttribute:!0,readOnly:
!0}},observers:["_calculateElevation(focused, disabled, active, pressed, receive
dFocusFromKeyboard)","_computeKeyboardClass(receivedFocusFromKeyboard)"],hostAtt
ributes:{role:"button",tabindex:"0",animated:!0},_calculateElevation:function(){
var e=1;this.disabled?e=0:this.active||this.pressed?e=4:this.receivedFocusFromKe
yboard&&(e=3),this._setElevation(e)},_computeKeyboardClass:function(e){this.togg
leClass("keyboard-focus",e)},_spaceKeyDownHandler:function(e){Polymer.IronButton
StateImpl._spaceKeyDownHandler.call(this,e),this.hasRipple()&&this.getRipple().r
ipples.length<1&&this._ripple.uiDownAction()},_spaceKeyUpHandler:function(e){Pol
ymer.IronButtonStateImpl._spaceKeyUpHandler.call(this,e),this.hasRipple()&&this.
_ripple.uiUpAction()}},Polymer.PaperButtonBehavior=[Polymer.IronButtonState,Poly
mer.IronControlState,Polymer.PaperRippleBehavior,Polymer.PaperButtonBehaviorImpl
]</script> <style is="custom-style">:root{--shadow-transition:{transition:box-sh
adow .28s cubic-bezier(.4,0,.2,1)};--shadow-none:{box-shadow:none};--shadow-elev
ation-2dp:{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0
3px 1px -2px rgba(0,0,0,.2)};--shadow-elevation-3dp:{box-shadow:0 3px 4px 0 rgba
(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12),0 3px 3px -2px rgba(0,0,0,.4)};--shadow-
elevation-4dp:{box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.1
2),0 2px 4px -1px rgba(0,0,0,.4)};--shadow-elevation-6dp:{box-shadow:0 6px 10px
0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.4)};--
shadow-elevation-8dp:{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px r
gba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.4)};--shadow-elevation-12dp:{box-shado
w:0 12px 16px 1px rgba(0,0,0,.14),0 4px 22px 3px rgba(0,0,0,.12),0 6px 7px -4px
rgba(0,0,0,.4)};--shadow-elevation-16dp:{box-shadow:0 16px 24px 2px rgba(0,0,0,.
14),0 6px 30px 5px rgba(0,0,0,.12),0 8px 10px -5px rgba(0,0,0,.4)};--shadow-elev
ation-24dp:{box-shadow:0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0
,.12),0 11px 15px -7px rgba(0,0,0,.4)};}</style> <dom-module id="paper-material-
shared-styles" assetpath="/res/imp/bower_components/paper-material/"> <template>
<style>:host{display:block;position:relative}:host([elevation="1"]){@apply(--sh
adow-elevation-2dp)}:host([elevation="2"]){@apply(--shadow-elevation-4dp)}:host(
[elevation="3"]){@apply(--shadow-elevation-6dp)}:host([elevation="4"]){@apply(--
shadow-elevation-8dp)}:host([elevation="5"]){@apply(--shadow-elevation-16dp)}</s
tyle> </template> </dom-module> <style is="custom-style">:root{--google-red-100:
#f4c7c3;--google-red-300:#e67c73;--google-red-500:#db4437;--google-red-700:#c539
29;--google-blue-100:#c6dafc;--google-blue-300:#7baaf7;--google-blue-500:#4285f4
;--google-blue-700:#3367d6;--google-green-100:#b7e1cd;--google-green-300:#57bb8a
;--google-green-500:#0f9d58;--google-green-700:#0b8043;--google-yellow-100:#fce8
b2;--google-yellow-300:#f7cb4d;--google-yellow-500:#f4b400;--google-yellow-700:#
f09300;--google-grey-100:#f5f5f5;--google-grey-300:#e0e0e0;--google-grey-500:#9e
9e9e;--google-grey-700:#616161;--paper-red-50:#ffebee;--paper-red-100:#ffcdd2;--
paper-red-200:#ef9a9a;--paper-red-300:#e57373;--paper-red-400:#ef5350;--paper-re
d-500:#f44336;--paper-red-600:#e53935;--paper-red-700:#d32f2f;--paper-red-800:#c
62828;--paper-red-900:#b71c1c;--paper-red-a100:#ff8a80;--paper-red-a200:#ff5252;
--paper-red-a400:#ff1744;--paper-red-a700:#d50000;--paper-pink-50:#fce4ec;--pape
r-pink-100:#f8bbd0;--paper-pink-200:#f48fb1;--paper-pink-300:#f06292;--paper-pin
k-400:#ec407a;--paper-pink-500:#e91e63;--paper-pink-600:#d81b60;--paper-pink-700
:#c2185b;--paper-pink-800:#ad1457;--paper-pink-900:#880e4f;--paper-pink-a100:#ff
80ab;--paper-pink-a200:#ff4081;--paper-pink-a400:#f50057;--paper-pink-a700:#c511
62;--paper-purple-50:#f3e5f5;--paper-purple-100:#e1bee7;--paper-purple-200:#ce93
d8;--paper-purple-300:#ba68c8;--paper-purple-400:#ab47bc;--paper-purple-500:#9c2
7b0;--paper-purple-600:#8e24aa;--paper-purple-700:#7b1fa2;--paper-purple-800:#6a
1b9a;--paper-purple-900:#4a148c;--paper-purple-a100:#ea80fc;--paper-purple-a200:
#e040fb;--paper-purple-a400:#d500f9;--paper-purple-a700:#aa00ff;--paper-deep-pur
ple-50:#ede7f6;--paper-deep-purple-100:#d1c4e9;--paper-deep-purple-200:#b39ddb;-
-paper-deep-purple-300:#9575cd;--paper-deep-purple-400:#7e57c2;--paper-deep-purp
le-500:#673ab7;--paper-deep-purple-600:#5e35b1;--paper-deep-purple-700:#512da8;-
-paper-deep-purple-800:#4527a0;--paper-deep-purple-900:#311b92;--paper-deep-purp
le-a100:#b388ff;--paper-deep-purple-a200:#7c4dff;--paper-deep-purple-a400:#651ff
f;--paper-deep-purple-a700:#6200ea;--paper-indigo-50:#e8eaf6;--paper-indigo-100:
#c5cae9;--paper-indigo-200:#9fa8da;--paper-indigo-300:#7986cb;--paper-indigo-400
:#5c6bc0;--paper-indigo-500:#3f51b5;--paper-indigo-600:#3949ab;--paper-indigo-70
0:#303f9f;--paper-indigo-800:#283593;--paper-indigo-900:#1a237e;--paper-indigo-a
100:#8c9eff;--paper-indigo-a200:#536dfe;--paper-indigo-a400:#3d5afe;--paper-indi
go-a700:#304ffe;--paper-blue-50:#e3f2fd;--paper-blue-100:#bbdefb;--paper-blue-20
0:#90caf9;--paper-blue-300:#64b5f6;--paper-blue-400:#42a5f5;--paper-blue-500:#21
96f3;--paper-blue-600:#1e88e5;--paper-blue-700:#1976d2;--paper-blue-800:#1565c0;
--paper-blue-900:#0d47a1;--paper-blue-a100:#82b1ff;--paper-blue-a200:#448aff;--p
aper-blue-a400:#2979ff;--paper-blue-a700:#2962ff;--paper-light-blue-50:#e1f5fe;-
-paper-light-blue-100:#b3e5fc;--paper-light-blue-200:#81d4fa;--paper-light-blue-
300:#4fc3f7;--paper-light-blue-400:#29b6f6;--paper-light-blue-500:#03a9f4;--pape
r-light-blue-600:#039be5;--paper-light-blue-700:#0288d1;--paper-light-blue-800:#
0277bd;--paper-light-blue-900:#01579b;--paper-light-blue-a100:#80d8ff;--paper-li
ght-blue-a200:#40c4ff;--paper-light-blue-a400:#00b0ff;--paper-light-blue-a700:#0
091ea;--paper-cyan-50:#e0f7fa;--paper-cyan-100:#b2ebf2;--paper-cyan-200:#80deea;
--paper-cyan-300:#4dd0e1;--paper-cyan-400:#26c6da;--paper-cyan-500:#00bcd4;--pap
er-cyan-600:#00acc1;--paper-cyan-700:#0097a7;--paper-cyan-800:#00838f;--paper-cy
an-900:#006064;--paper-cyan-a100:#84ffff;--paper-cyan-a200:#18ffff;--paper-cyan-
a400:#00e5ff;--paper-cyan-a700:#00b8d4;--paper-teal-50:#e0f2f1;--paper-teal-100:
#b2dfdb;--paper-teal-200:#80cbc4;--paper-teal-300:#4db6ac;--paper-teal-400:#26a6
9a;--paper-teal-500:#009688;--paper-teal-600:#00897b;--paper-teal-700:#00796b;--
paper-teal-800:#00695c;--paper-teal-900:#004d40;--paper-teal-a100:#a7ffeb;--pape
r-teal-a200:#64ffda;--paper-teal-a400:#1de9b6;--paper-teal-a700:#00bfa5;--paper-
green-50:#e8f5e9;--paper-green-100:#c8e6c9;--paper-green-200:#a5d6a7;--paper-gre
en-300:#81c784;--paper-green-400:#66bb6a;--paper-green-500:#4caf50;--paper-green
-600:#43a047;--paper-green-700:#388e3c;--paper-green-800:#2e7d32;--paper-green-9
00:#1b5e20;--paper-green-a100:#b9f6ca;--paper-green-a200:#69f0ae;--paper-green-a
400:#00e676;--paper-green-a700:#00c853;--paper-light-green-50:#f1f8e9;--paper-li
ght-green-100:#dcedc8;--paper-light-green-200:#c5e1a5;--paper-light-green-300:#a
ed581;--paper-light-green-400:#9ccc65;--paper-light-green-500:#8bc34a;--paper-li
ght-green-600:#7cb342;--paper-light-green-700:#689f38;--paper-light-green-800:#5
58b2f;--paper-light-green-900:#33691e;--paper-light-green-a100:#ccff90;--paper-l
ight-green-a200:#b2ff59;--paper-light-green-a400:#76ff03;--paper-light-green-a70
0:#64dd17;--paper-lime-50:#f9fbe7;--paper-lime-100:#f0f4c3;--paper-lime-200:#e6e
e9c;--paper-lime-300:#dce775;--paper-lime-400:#d4e157;--paper-lime-500:#cddc39;-
-paper-lime-600:#c0ca33;--paper-lime-700:#afb42b;--paper-lime-800:#9e9d24;--pape
r-lime-900:#827717;--paper-lime-a100:#f4ff81;--paper-lime-a200:#eeff41;--paper-l
ime-a400:#c6ff00;--paper-lime-a700:#aeea00;--paper-yellow-50:#fffde7;--paper-yel
low-100:#fff9c4;--paper-yellow-200:#fff59d;--paper-yellow-300:#fff176;--paper-ye
llow-400:#ffee58;--paper-yellow-500:#ffeb3b;--paper-yellow-600:#fdd835;--paper-y
ellow-700:#fbc02d;--paper-yellow-800:#f9a825;--paper-yellow-900:#f57f17;--paper-
yellow-a100:#ffff8d;--paper-yellow-a200:#ffff00;--paper-yellow-a400:#ffea00;--pa
per-yellow-a700:#ffd600;--paper-amber-50:#fff8e1;--paper-amber-100:#ffecb3;--pap
er-amber-200:#ffe082;--paper-amber-300:#ffd54f;--paper-amber-400:#ffca28;--paper
-amber-500:#ffc107;--paper-amber-600:#ffb300;--paper-amber-700:#ffa000;--paper-a
mber-800:#ff8f00;--paper-amber-900:#ff6f00;--paper-amber-a100:#ffe57f;--paper-am
ber-a200:#ffd740;--paper-amber-a400:#ffc400;--paper-amber-a700:#ffab00;--paper-o
range-50:#fff3e0;--paper-orange-100:#ffe0b2;--paper-orange-200:#ffcc80;--paper-o
range-300:#ffb74d;--paper-orange-400:#ffa726;--paper-orange-500:#ff9800;--paper-
orange-600:#fb8c00;--paper-orange-700:#f57c00;--paper-orange-800:#ef6c00;--paper
-orange-900:#e65100;--paper-orange-a100:#ffd180;--paper-orange-a200:#ffab40;--pa
per-orange-a400:#ff9100;--paper-orange-a700:#ff6500;--paper-deep-orange-50:#fbe9
e7;--paper-deep-orange-100:#ffccbc;--paper-deep-orange-200:#ffab91;--paper-deep-
orange-300:#ff8a65;--paper-deep-orange-400:#ff7043;--paper-deep-orange-500:#ff57
22;--paper-deep-orange-600:#f4511e;--paper-deep-orange-700:#e64a19;--paper-deep-
orange-800:#d84315;--paper-deep-orange-900:#bf360c;--paper-deep-orange-a100:#ff9
e80;--paper-deep-orange-a200:#ff6e40;--paper-deep-orange-a400:#ff3d00;--paper-de
ep-orange-a700:#dd2c00;--paper-brown-50:#efebe9;--paper-brown-100:#d7ccc8;--pape
r-brown-200:#bcaaa4;--paper-brown-300:#a1887f;--paper-brown-400:#8d6e63;--paper-
brown-500:#795548;--paper-brown-600:#6d4c41;--paper-brown-700:#5d4037;--paper-br
own-800:#4e342e;--paper-brown-900:#3e2723;--paper-grey-50:#fafafa;--paper-grey-1
00:#f5f5f5;--paper-grey-200:#eeeeee;--paper-grey-300:#e0e0e0;--paper-grey-400:#b
dbdbd;--paper-grey-500:#9e9e9e;--paper-grey-600:#757575;--paper-grey-700:#616161
;--paper-grey-800:#424242;--paper-grey-900:#212121;--paper-blue-grey-50:#eceff1;
--paper-blue-grey-100:#cfd8dc;--paper-blue-grey-200:#b0bec5;--paper-blue-grey-30
0:#90a4ae;--paper-blue-grey-400:#78909c;--paper-blue-grey-500:#607d8b;--paper-bl
ue-grey-600:#546e7a;--paper-blue-grey-700:#455a64;--paper-blue-grey-800:#37474f;
--paper-blue-grey-900:#263238;--dark-divider-opacity:0.12;--dark-disabled-opacit
y:0.38;--dark-secondary-opacity:0.54;--dark-primary-opacity:0.87;--light-divider
-opacity:0.12;--light-disabled-opacity:0.3;--light-secondary-opacity:0.7;--light
-primary-opacity:1.0}</style> <style is="custom-style">:root{--primary-text-colo
r:var(--light-theme-text-color);--primary-background-color:var(--light-theme-bac
kground-color);--secondary-text-color:var(--light-theme-secondary-color);--disab
led-text-color:var(--light-theme-disabled-color);--divider-color:var(--light-the
me-divider-color);--error-color:var(--paper-deep-orange-a700);--primary-color:va
r(--paper-indigo-500);--light-primary-color:var(--paper-indigo-100);--dark-prima
ry-color:var(--paper-indigo-700);--accent-color:var(--paper-pink-a200);--light-a
ccent-color:var(--paper-pink-a100);--dark-accent-color:var(--paper-pink-a400);--
light-theme-background-color:#ffffff;--light-theme-base-color:#000000;--light-th
eme-text-color:var(--paper-grey-900);--light-theme-secondary-color:#737373;--lig
ht-theme-disabled-color:#9b9b9b;--light-theme-divider-color:#dbdbdb;--dark-theme
-background-color:var(--paper-grey-900);--dark-theme-base-color:#ffffff;--dark-t
heme-text-color:#ffffff;--dark-theme-secondary-color:#bcbcbc;--dark-theme-disabl
ed-color:#646464;--dark-theme-divider-color:#3c3c3c;--text-primary-color:var(--d
ark-theme-text-color);--default-primary-color:var(--primary-color)}</style> <dom
-module id="paper-fab" assetpath="/res/imp/bower_components/paper-fab/"> <templa
te strip-whitespace=""> <style include="paper-material-shared-styles">:host{@app
ly(--layout-vertical);@apply(--layout-center-center);background:var(--paper-fab-
background,--accent-color);border-radius:50%;box-sizing:border-box;color:var(--t
ext-primary-color);cursor:pointer;height:56px;min-width:0;outline:0;padding:16px
;position:relative;-moz-user-select:none;-ms-user-select:none;-webkit-user-selec
t:none;user-select:none;width:56px;z-index:0;-webkit-tap-highlight-color:transpa
rent;-webkit-tap-highlight-color:transparent;@apply(--paper-fab)}[hidden]{displa
y:none!important}:host([mini]){width:40px;height:40px;padding:8px;@apply(--paper
-fab-mini)}:host([disabled]){color:var(--paper-fab-disabled-text,--paper-grey-50
0);background:var(--paper-fab-disabled-background,--paper-grey-300);@apply(--pap
er-fab-disabled)}iron-icon{@apply(--paper-fab-iron-icon)}span{width:100%;white-s
pace:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;@apply(--pa
per-fab-label)}:host(.keyboard-focus){background:var(--paper-fab-keyboard-focus-
background,--paper-pink-900)}</style> <iron-icon id="icon" hidden$="{{!_computeI
sIconFab(icon, src)}}" src="[[src]]" icon="[[icon]]"></iron-icon> <span hidden$=
"{{_computeIsIconFab(icon, src)}}">{{label}}</span> </template> <script>Polymer(
{is:"paper-fab",behaviors:[Polymer.PaperButtonBehavior],properties:{src:{type:St
ring,value:""},icon:{type:String,value:""},mini:{type:Boolean,value:!1,reflectTo
Attribute:!0},label:{type:String,observer:"_labelChanged"}},_labelChanged:functi
on(){this.setAttribute("aria-label",this.label)},_computeIsIconFab:function(e,t)
{return e.length>0||t.length>0}})</script> </dom-module> <script>Polymer.PaperIn
kyFocusBehaviorImpl={observers:["_focusedChanged(receivedFocusFromKeyboard)"],_f
ocusedChanged:function(e){e&&this.ensureRipple(),this.hasRipple()&&(this._ripple
.holdDown=e)},_createRipple:function(){var e=Polymer.PaperRippleBehavior._create
Ripple();return e.id="ink",e.setAttribute("center",""),e.classList.add("circle")
,e}},Polymer.PaperInkyFocusBehavior=[Polymer.IronButtonState,Polymer.IronControl
State,Polymer.PaperRippleBehavior,Polymer.PaperInkyFocusBehaviorImpl]</script> <
dom-module id="paper-icon-button" assetpath="/res/imp/bower_components/paper-ico
n-button/"> <template strip-whitespace=""> <style>:host{display:inline-block;pos
ition:relative;padding:8px;outline:0;-webkit-user-select:none;-moz-user-select:n
one;-ms-user-select:none;user-select:none;cursor:pointer;z-index:0;line-height:1
;width:40px;height:40px;-webkit-tap-highlight-color:transparent;-webkit-tap-high
light-color:transparent;box-sizing:border-box!important;@apply(--paper-icon-butt
on)}:host #ink{color:var(--paper-icon-button-ink-color,--primary-text-color);opa
city:.6}:host([disabled]){color:var(--paper-icon-button-disabled-text,--disabled
-text-color);pointer-events:none;cursor:auto;@apply(--paper-icon-button-disabled
)}:host(:hover){@apply(--paper-icon-button-hover)}iron-icon{--iron-icon-width:10
0%;--iron-icon-height:100%}</style> <iron-icon id="icon" src="[[src]]" icon="[[i
con]]" alt$="[[alt]]"></iron-icon> </template> <script>Polymer({is:"paper-icon-b
utton",hostAttributes:{role:"button",tabindex:"0"},behaviors:[Polymer.PaperInkyF
ocusBehavior],properties:{src:{type:String},icon:{type:String},alt:{type:String,
observer:"_altChanged"}},_altChanged:function(t,e){var r=this.getAttribute("aria
-label");r&&e!=r||this.setAttribute("aria-label",t)}})</script> </dom-module> <s
cript>Polymer.PaperItemBehaviorImpl={hostAttributes:{role:"option",tabindex:"0"}
},Polymer.PaperItemBehavior=[Polymer.IronButtonState,Polymer.IronControlState,Po
lymer.PaperItemBehaviorImpl]</script> <link rel="stylesheet" href="https://fonts
.googleapis.com/css?family=Roboto:400,300,300italic,400italic,500,500italic,700,
700italic"> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family
=Roboto+Mono:400,700"> <style is="custom-style">:root{--paper-font-common-base:{
font-family:Roboto,Noto,sans-serif;-webkit-font-smoothing:antialiased};--paper-f
ont-common-code:{font-family:'Roboto Mono',Consolas,Menlo,monospace;-webkit-font
-smoothing:antialiased};--paper-font-common-expensive-kerning:{text-rendering:op
timizeLegibility};--paper-font-common-nowrap:{white-space:nowrap;overflow:hidden
;text-overflow:ellipsis};--paper-font-display4:{@apply(--paper-font-common-base)
;@apply(--paper-font-common-nowrap);font-size:112px;font-weight:300;letter-spaci
ng:-.044em;line-height:120px};--paper-font-display3:{@apply(--paper-font-common-
base);@apply(--paper-font-common-nowrap);font-size:56px;font-weight:400;letter-s
pacing:-.026em;line-height:60px};--paper-font-display2:{@apply(--paper-font-comm
on-base);font-size:45px;font-weight:400;letter-spacing:-.018em;line-height:48px}
;--paper-font-display1:{@apply(--paper-font-common-base);font-size:34px;font-wei
ght:400;letter-spacing:-.01em;line-height:40px};--paper-font-headline:{@apply(--
paper-font-common-base);font-size:24px;font-weight:400;letter-spacing:-.012em;li
ne-height:32px};--paper-font-title:{@apply(--paper-font-common-base);@apply(--pa
per-font-common-nowrap);font-size:20px;font-weight:500;line-height:28px};--paper
-font-subhead:{@apply(--paper-font-common-base);font-size:16px;font-weight:400;l
ine-height:24px};--paper-font-body2:{@apply(--paper-font-common-base);font-size:
14px;font-weight:500;line-height:24px};--paper-font-body1:{@apply(--paper-font-c
ommon-base);font-size:14px;font-weight:400;line-height:20px};--paper-font-captio
n:{@apply(--paper-font-common-base);@apply(--paper-font-common-nowrap);font-size
:12px;font-weight:400;letter-spacing:0.011em;line-height:20px};--paper-font-menu
:{@apply(--paper-font-common-base);@apply(--paper-font-common-nowrap);font-size:
13px;font-weight:500;line-height:24px};--paper-font-button:{@apply(--paper-font-
common-base);@apply(--paper-font-common-nowrap);font-size:14px;font-weight:500;l
etter-spacing:0.018em;line-height:24px;text-transform:uppercase};--paper-font-co
de2:{@apply(--paper-font-common-code);font-size:14px;font-weight:700;line-height
:20px};--paper-font-code1:{@apply(--paper-font-common-code);font-size:14px;font-
weight:500;line-height:20px};}</style> <dom-module id="paper-item-shared-styles"
assetpath="/res/imp/bower_components/paper-item/"> <template> <style>.paper-ite
m,:host{display:block;position:relative;min-height:var(--paper-item-min-height,4
8px);padding:0 16px}.paper-item{@apply(--paper-font-subhead);border:none;outline
:0;background:#fff;width:100%;text-align:left}.paper-item[hidden],:host([hidden]
){display:none!important}.paper-item.iron-selected,:host(.iron-selected){font-we
ight:var(--paper-item-selected-weight,bold);@apply(--paper-item-selected)}.paper
-item[disabled],:host([disabled]){color:var(--paper-item-disabled-color,--disabl
ed-text-color);@apply(--paper-item-disabled)}.paper-item:focus,:host(:focus){pos
ition:relative;outline:0;@apply(--paper-item-focused)}.paper-item:focus:before,:
host(:focus):before{@apply(--layout-fit);background:currentColor;content:'';opac
ity:var(--dark-divider-opacity);pointer-events:none;@apply(--paper-item-focused-
before)}</style> </template> </dom-module> <dom-module id="paper-item" assetpath
="/res/imp/bower_components/paper-item/"> <template> <style include="paper-item-
shared-styles"></style> <style>:host{@apply(--layout-horizontal);@apply(--layout
-center);@apply(--paper-font-subhead);@apply(--paper-item)}</style> <content></c
ontent> </template> <script>Polymer({is:"paper-item",behaviors:[Polymer.PaperIte
mBehavior]})</script> </dom-module> <script>Polymer.IronSelection=function(e){th
is.selection=[],this.selectCallback=e},Polymer.IronSelection.prototype={get:func
tion(){return this.multi?this.selection.slice():this.selection[0]},clear:functio
n(e){this.selection.slice().forEach(function(t){(!e||e.indexOf(t)<0)&&this.setIt
emSelected(t,!1)},this)},isSelected:function(e){return this.selection.indexOf(e)
>=0},setItemSelected:function(e,t){if(null!=e&&t!==this.isSelected(e)){if(t)this
.selection.push(e);else{var i=this.selection.indexOf(e);i>=0&&this.selection.spl
ice(i,1)}this.selectCallback&&this.selectCallback(e,t)}},select:function(e){this
.multi?this.toggle(e):this.get()!==e&&(this.setItemSelected(this.get(),!1),this.
setItemSelected(e,!0))},toggle:function(e){this.setItemSelected(e,!this.isSelect
ed(e))}}</script> <script>Polymer.IronSelectableBehavior={properties:{attrForSel
ected:{type:String,value:null},selected:{type:String,notify:!0},selectedItem:{ty
pe:Object,readOnly:!0,notify:!0},activateEvent:{type:String,value:"tap",observer
:"_activateEventChanged"},selectable:String,selectedClass:{type:String,value:"ir
on-selected"},selectedAttribute:{type:String,value:null},fallbackSelection:{type
:String,value:null},items:{type:Array,readOnly:!0,notify:!0,value:function(){ret
urn[]}},_excludedLocalNames:{type:Object,value:function(){return{template:1}}}},
observers:["_updateAttrForSelected(attrForSelected)","_updateSelected(selected)"
,"_checkFallback(fallbackSelection)"],created:function(){this._bindFilterItem=th
is._filterItem.bind(this),this._selection=new Polymer.IronSelection(this._applyS
election.bind(this))},attached:function(){this._observer=this._observeItems(this
),this._updateItems(),this._shouldUpdateSelection||this._updateSelected(),this._
addListener(this.activateEvent)},detached:function(){this._observer&&Polymer.dom
(this).unobserveNodes(this._observer),this._removeListener(this.activateEvent)},
indexOf:function(e){return this.items.indexOf(e)},select:function(e){this.select
ed=e},selectPrevious:function(){var e=this.items.length,t=(Number(this._valueToI
ndex(this.selected))-1+e)%e;this.selected=this._indexToValue(t)},selectNext:func
tion(){var e=(Number(this._valueToIndex(this.selected))+1)%this.items.length;thi
s.selected=this._indexToValue(e)},selectIndex:function(e){this.select(this._inde
xToValue(e))},forceSynchronousItemUpdate:function(){this._updateItems()},get _sh
ouldUpdateSelection(){return null!=this.selected},_checkFallback:function(){this
._shouldUpdateSelection&&this._updateSelected()},_addListener:function(e){this.l
isten(this,e,"_activateHandler")},_removeListener:function(e){this.unlisten(this
,e,"_activateHandler")},_activateEventChanged:function(e,t){this._removeListener
(t),this._addListener(e)},_updateItems:function(){var e=Polymer.dom(this).queryD
istributedElements(this.selectable||"*");e=Array.prototype.filter.call(e,this._b
indFilterItem),this._setItems(e)},_updateAttrForSelected:function(){this._should
UpdateSelection&&(this.selected=this._indexToValue(this.indexOf(this.selectedIte
m)))},_updateSelected:function(){this._selectSelected(this.selected)},_selectSel
ected:function(e){this._selection.select(this._valueToItem(this.selected)),this.
fallbackSelection&&this.items.length&&void 0===this._selection.get()&&(this.sele
cted=this.fallbackSelection)},_filterItem:function(e){return!this._excludedLocal
Names[e.localName]},_valueToItem:function(e){return null==e?null:this.items[this
._valueToIndex(e)]},_valueToIndex:function(e){if(!this.attrForSelected)return Nu
mber(e);for(var t,i=0;t=this.items[i];i++)if(this._valueForItem(t)==e)return i},
_indexToValue:function(e){if(!this.attrForSelected)return e;var t=this.items[e];
return t?this._valueForItem(t):void 0},_valueForItem:function(e){var t=e[Polymer
.CaseMap.dashToCamelCase(this.attrForSelected)];return void 0!=t?t:e.getAttribut
e(this.attrForSelected)},_applySelection:function(e,t){this.selectedClass&&this.
toggleClass(this.selectedClass,t,e),this.selectedAttribute&&this.toggleAttribute
(this.selectedAttribute,t,e),this._selectionChange(),this.fire("iron-"+(t?"selec
t":"deselect"),{item:e})},_selectionChange:function(){this._setSelectedItem(this
._selection.get())},_observeItems:function(e){return Polymer.dom(e).observeNodes
(function(e){this._updateItems(),this._shouldUpdateSelection&&this._updateSelect
ed(),this.fire("iron-items-changed",e,{bubbles:!1,cancelable:!1})})},_activateHa
ndler:function(e){for(var t=e.target,i=this.items;t&&t!=this;){var s=i.indexOf(t
);if(s>=0){var n=this._indexToValue(s);return void this._itemActivate(n,t)}t=t.p
arentNode}},_itemActivate:function(e,t){this.fire("iron-activate",{selected:e,it
em:t},{cancelable:!0}).defaultPrevented||this.select(e)}}</script> <script>Polym
er.IronMultiSelectableBehaviorImpl={properties:{multi:{type:Boolean,value:!1,obs
erver:"multiChanged"},selectedValues:{type:Array,notify:!0},selectedItems:{type:
Array,readOnly:!0,notify:!0}},observers:["_updateSelected(selectedValues.splices
)"],select:function(e){this.multi?this.selectedValues?this._toggleSelected(e):th
is.selectedValues=[e]:this.selected=e},multiChanged:function(e){this._selection.
multi=e},get _shouldUpdateSelection(){return null!=this.selected||null!=this.sel
ectedValues&&this.selectedValues.length},_updateAttrForSelected:function(){this.
multi?this._shouldUpdateSelection&&(this.selectedValues=this.selectedItems.map(f
unction(e){return this._indexToValue(this.indexOf(e))},this).filter(function(e){
return null!=e},this)):Polymer.IronSelectableBehavior._updateAttrForSelected.app
ly(this)},_updateSelected:function(){this.multi?this._selectMulti(this.selectedV
alues):this._selectSelected(this.selected)},_selectMulti:function(e){if(e){var t
=this._valuesToItems(e);this._selection.clear(t);for(var l=0;l<t.length;l++)this
._selection.setItemSelected(t[l],!0);if(this.fallbackSelection&&this.items.lengt
h&&!this._selection.get().length){var s=this._valueToItem(this.fallbackSelection
);s&&(this.selectedValues=[this.fallbackSelection])}}else this._selection.clear(
)},_selectionChange:function(){var e=this._selection.get();this.multi?this._setS
electedItems(e):(this._setSelectedItems([e]),this._setSelectedItem(e))},_toggleS
elected:function(e){var t=this.selectedValues.indexOf(e),l=t<0;l?this.push("sele
ctedValues",e):this.splice("selectedValues",t,1)},_valuesToItems:function(e){ret
urn null==e?null:e.map(function(e){return this._valueToItem(e)},this)}},Polymer.
IronMultiSelectableBehavior=[Polymer.IronSelectableBehavior,Polymer.IronMultiSel
ectableBehaviorImpl]</script> <script>Polymer.IronMenuBehaviorImpl={properties:{
focusedItem:{observer:"_focusedItemChanged",readOnly:!0,type:Object},attrForItem
Title:{type:String}},_SEARCH_RESET_TIMEOUT_MS:1e3,hostAttributes:{role:"menu",ta
bindex:"0"},observers:["_updateMultiselectable(multi)"],listeners:{focus:"_onFoc
us",keydown:"_onKeydown","iron-items-changed":"_onIronItemsChanged"},keyBindings
:{up:"_onUpKey",down:"_onDownKey",esc:"_onEscKey","shift+tab:keydown":"_onShiftT
abDown"},attached:function(){this._resetTabindices()},select:function(e){this._d
efaultFocusAsync&&(this.cancelAsync(this._defaultFocusAsync),this._defaultFocusA
sync=null);var t=this._valueToItem(e);t&&t.hasAttribute("disabled")||(this._setF
ocusedItem(t),Polymer.IronMultiSelectableBehaviorImpl.select.apply(this,argument
s))},_resetTabindices:function(){var e=this.multi?this.selectedItems&&this.selec
tedItems[0]:this.selectedItem;this.items.forEach(function(t){t.setAttribute("tab
index",t===e?"0":"-1")},this)},_updateMultiselectable:function(e){e?this.setAttr
ibute("aria-multiselectable","true"):this.removeAttribute("aria-multiselectable"
)},_focusWithKeyboardEvent:function(e){this.cancelDebouncer("_clearSearchText");
var t=this._searchText||"",s=e.key&&1==e.key.length?e.key:String.fromCharCode(e.
keyCode);t+=s.toLocaleLowerCase();for(var i,o=t.length,n=0;i=this.items[n];n++)i
f(!i.hasAttribute("disabled")){var r=this.attrForItemTitle||"textContent",a=(i[r
]||i.getAttribute(r)||"").trim();if(!(a.length<o)&&a.slice(0,o).toLocaleLowerCas
e()==t){this._setFocusedItem(i);break}}this._searchText=t,this.debounce("_clearS
earchText",this._clearSearchText,this._SEARCH_RESET_TIMEOUT_MS)},_clearSearchTex
t:function(){this._searchText=""},_focusPrevious:function(){for(var e=this.items
.length,t=Number(this.indexOf(this.focusedItem)),s=1;s<e+1;s++){var i=this.items
[(t-s+e)%e];if(!i.hasAttribute("disabled")){var o=Polymer.dom(i).getOwnerRoot()|
|document;if(this._setFocusedItem(i),Polymer.dom(o).activeElement==i)return}}},_
focusNext:function(){for(var e=this.items.length,t=Number(this.indexOf(this.focu
sedItem)),s=1;s<e+1;s++){var i=this.items[(t+s)%e];if(!i.hasAttribute("disabled"
)){var o=Polymer.dom(i).getOwnerRoot()||document;if(this._setFocusedItem(i),Poly
mer.dom(o).activeElement==i)return}}},_applySelection:function(e,t){t?e.setAttri
bute("aria-selected","true"):e.removeAttribute("aria-selected"),Polymer.IronSele
ctableBehavior._applySelection.apply(this,arguments)},_focusedItemChanged:functi
on(e,t){t&&t.setAttribute("tabindex","-1"),e&&(e.setAttribute("tabindex","0"),e.
focus())},_onIronItemsChanged:function(e){e.detail.addedNodes.length&&this._rese
tTabindices()},_onShiftTabDown:function(e){var t=this.getAttribute("tabindex");P
olymer.IronMenuBehaviorImpl._shiftTabPressed=!0,this._setFocusedItem(null),this.
setAttribute("tabindex","-1"),this.async(function(){this.setAttribute("tabindex"
,t),Polymer.IronMenuBehaviorImpl._shiftTabPressed=!1},1)},_onFocus:function(e){i
f(!Polymer.IronMenuBehaviorImpl._shiftTabPressed){var t=Polymer.dom(e).rootTarge
t;(t===this||"undefined"==typeof t.tabIndex||this.isLightDescendant(t))&&(this._
defaultFocusAsync=this.async(function(){var e=this.multi?this.selectedItems&&thi
s.selectedItems[0]:this.selectedItem;this._setFocusedItem(null),e?this._setFocus
edItem(e):this.items[0]&&this._focusNext()}))}},_onUpKey:function(e){this._focus
Previous(),e.detail.keyboardEvent.preventDefault()},_onDownKey:function(e){this.
_focusNext(),e.detail.keyboardEvent.preventDefault()},_onEscKey:function(e){this
.focusedItem.blur()},_onKeydown:function(e){this.keyboardEventMatchesKeys(e,"up
down esc")||this._focusWithKeyboardEvent(e),e.stopPropagation()},_activateHandle
r:function(e){Polymer.IronSelectableBehavior._activateHandler.call(this,e),e.sto
pPropagation()}},Polymer.IronMenuBehaviorImpl._shiftTabPressed=!1,Polymer.IronMe
nuBehavior=[Polymer.IronMultiSelectableBehavior,Polymer.IronA11yKeysBehavior,Pol
ymer.IronMenuBehaviorImpl]</script> <dom-module id="paper-menu-shared-styles" as
setpath="/res/imp/bower_components/paper-menu/"> <template> <style>.selectable-c
ontent>::content>.iron-selected{font-weight:700;@apply(--paper-menu-selected-ite
m)}.selectable-content>::content>[disabled]{color:var(--paper-menu-disabled-colo
r,--disabled-text-color)}.selectable-content>::content>:focus{position:relative;
outline:0;@apply(--paper-menu-focused-item)}.selectable-content>::content>:focus
:after{@apply(--layout-fit);background:currentColor;opacity:var(--dark-divider-o
pacity);content:'';pointer-events:none;@apply(--paper-menu-focused-item-after)}.
selectable-content>::content>[colored]:focus:after{opacity:.26}</style> </templa
te> </dom-module> <dom-module id="paper-menu" assetpath="/res/imp/bower_componen
ts/paper-menu/"> <template> <style include="paper-menu-shared-styles"></style> <
style>:host{display:block;padding:8px 0;background:var(--paper-menu-background-c
olor,--primary-background-color);color:var(--paper-menu-color,--primary-text-col
or);@apply(--paper-menu)}</style> <div class="selectable-content"> <content></co
ntent> </div> </template> <script>!function(){Polymer({is:"paper-menu",behaviors
:[Polymer.IronMenuBehavior]})}()</script> </dom-module> <script>Polymer.PaperSpi
nnerBehavior={listeners:{animationend:"__reset",webkitAnimationEnd:"__reset"},pr
operties:{active:{type:Boolean,value:!1,reflectToAttribute:!0,observer:"__active
Changed"},alt:{type:String,value:"loading",observer:"__altChanged"},__coolingDow
n:{type:Boolean,value:!1}},__computeContainerClasses:function(e,t){return[e||t?"
active":"",t?"cooldown":""].join(" ")},__activeChanged:function(e,t){this.__setA
riaHidden(!e),this.__coolingDown=!e&&t},__altChanged:function(e){e===this.getPro
pertyInfo("alt").value?this.alt=this.getAttribute("aria-label")||e:(this.__setAr
iaHidden(""===e),this.setAttribute("aria-label",e))},__setAriaHidden:function(e)
{var t="aria-hidden";e?this.setAttribute(t,"true"):this.removeAttribute(t)},__re
set:function(){this.active=!1,this.__coolingDown=!1}}</script> <dom-module id="p
aper-spinner-styles" assetpath="/res/imp/bower_components/paper-spinner/"> <temp
late> <style>:host{display:inline-block;position:relative;width:28px;height:28px
;--paper-spinner-container-rotation-duration:1568ms;--paper-spinner-expand-contr
act-duration:1333ms;--paper-spinner-full-cycle-duration:5332ms;--paper-spinner-c
ooldown-duration:400ms}#spinnerContainer{width:100%;height:100%;direction:ltr}#s
pinnerContainer.active{-webkit-animation:container-rotate var(--paper-spinner-co
ntainer-rotation-duration) linear infinite;animation:container-rotate var(--pape
r-spinner-container-rotation-duration) linear infinite}@-webkit-keyframes contai
ner-rotate{to{-webkit-transform:rotate(360deg)}}@keyframes container-rotate{to{t
ransform:rotate(360deg)}}.spinner-layer{position:absolute;width:100%;height:100%
;opacity:0;white-space:nowrap;border-color:var(--paper-spinner-color,--google-bl
ue-500)}.layer-1{border-color:var(--paper-spinner-layer-1-color,--google-blue-50
0)}.layer-2{border-color:var(--paper-spinner-layer-2-color,--google-red-500)}.la
yer-3{border-color:var(--paper-spinner-layer-3-color,--google-yellow-500)}.layer
-4{border-color:var(--paper-spinner-layer-4-color,--google-green-500)}.active .s
pinner-layer{-webkit-animation-name:fill-unfill-rotate;-webkit-animation-duratio
n:var(--paper-spinner-full-cycle-duration);-webkit-animation-timing-function:cub
ic-bezier(.4,0,.2,1);-webkit-animation-iteration-count:infinite;animation-name:f
ill-unfill-rotate;animation-duration:var(--paper-spinner-full-cycle-duration);an
imation-timing-function:cubic-bezier(.4,0,.2,1);animation-iteration-count:infini
te;opacity:1}.active .spinner-layer.layer-1{-webkit-animation-name:fill-unfill-r
otate,layer-1-fade-in-out;animation-name:fill-unfill-rotate,layer-1-fade-in-out}
.active .spinner-layer.layer-2{-webkit-animation-name:fill-unfill-rotate,layer-2
-fade-in-out;animation-name:fill-unfill-rotate,layer-2-fade-in-out}.active .spin
ner-layer.layer-3{-webkit-animation-name:fill-unfill-rotate,layer-3-fade-in-out;
animation-name:fill-unfill-rotate,layer-3-fade-in-out}.active .spinner-layer.lay
er-4{-webkit-animation-name:fill-unfill-rotate,layer-4-fade-in-out;animation-nam
e:fill-unfill-rotate,layer-4-fade-in-out}@-webkit-keyframes fill-unfill-rotate{1
2.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%
{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-we
bkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit
-transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg)}}@keyframes fill-
unfill-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{
transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675
deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}to{transform:ro
tate(1080deg)}}@-webkit-keyframes layer-1-fade-in-out{0%{opacity:1}25%{opacity:1
}26%{opacity:0}89%{opacity:0}90%{opacity:1}to{opacity:1}}@keyframes layer-1-fade
-in-out{0%{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}to{
opacity:1}}@-webkit-keyframes layer-2-fade-in-out{0%{opacity:0}15%{opacity:0}25%
{opacity:1}50%{opacity:1}51%{opacity:0}to{opacity:0}}@keyframes layer-2-fade-in-
out{0%{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}to{opac
ity:0}}@-webkit-keyframes layer-3-fade-in-out{0%{opacity:0}40%{opacity:0}50%{opa
city:1}75%{opacity:1}76%{opacity:0}to{opacity:0}}@keyframes layer-3-fade-in-out{
0%{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}to{opacity:
0}}@-webkit-keyframes layer-4-fade-in-out{0%{opacity:0}65%{opacity:0}75%{opacity
:1}90%{opacity:1}to{opacity:0}}@keyframes layer-4-fade-in-out{0%{opacity:0}65%{o
pacity:0}75%{opacity:1}90%{opacity:1}to{opacity:0}}.circle-clipper{display:inlin
e-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inh
erit}.spinner-layer::after{left:45%;width:10%;border-top-style:solid}.circle-cli
pper::after,.spinner-layer::after{content:'';box-sizing:border-box;position:abso
lute;top:0;border-width:var(--paper-spinner-stroke-width,3px);border-color:inher
it;border-radius:50%}.circle-clipper::after{bottom:0;width:200%;border-style:sol
id;border-bottom-color:transparent!important}.circle-clipper.left::after{left:0;
border-right-color:transparent!important;-webkit-transform:rotate(129deg);transf
orm:rotate(129deg)}.circle-clipper.right::after{left:-100%;border-left-color:tra
nsparent!important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.
active .circle-clipper::after,.active .gap-patch::after{-webkit-animation-durati
on:var(--paper-spinner-expand-contract-duration);-webkit-animation-timing-functi
on:cubic-bezier(.4,0,.2,1);-webkit-animation-iteration-count:infinite;animation-
duration:var(--paper-spinner-expand-contract-duration);animation-timing-function
:cubic-bezier(.4,0,.2,1);animation-iteration-count:infinite}.active .circle-clip
per.left::after{-webkit-animation-name:left-spin;animation-name:left-spin}.activ
e .circle-clipper.right::after{-webkit-animation-name:right-spin;animation-name:
right-spin}@-webkit-keyframes left-spin{0%{-webkit-transform:rotate(130deg)}50%{
-webkit-transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg)}}@keyframes
left-spin{0%{transform:rotate(130deg)}50%{transform:rotate(-5deg)}to{transform:r
otate(130deg)}}@-webkit-keyframes right-spin{0%{-webkit-transform:rotate(-130deg
)}50%{-webkit-transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg)}}@keyf
rames right-spin{0%{transform:rotate(-130deg)}50%{transform:rotate(5deg)}to{tran
sform:rotate(-130deg)}}#spinnerContainer.cooldown{-webkit-animation:container-ro
tate var(--paper-spinner-container-rotation-duration) linear infinite,fade-out v
ar(--paper-spinner-cooldown-duration) cubic-bezier(.4,0,.2,1);animation:containe
r-rotate var(--paper-spinner-container-rotation-duration) linear infinite,fade-o
ut var(--paper-spinner-cooldown-duration) cubic-bezier(.4,0,.2,1)}@-webkit-keyfr
ames fade-out{0%{opacity:1}to{opacity:0}}@keyframes fade-out{0%{opacity:1}to{opa
city:0}}</style> </template> </dom-module> <dom-module id="paper-spinner-lite" a
ssetpath="/res/imp/bower_components/paper-spinner/"> <template strip-whitespace=
""> <style include="paper-spinner-styles"></style> <div id="spinnerContainer" cl
ass-name="[[__computeContainerClasses(active, __coolingDown)]]"> <div class="spi
nner-layer"> <div class="circle-clipper left"></div> <div class="circle-clipper
right"></div> </div> </div> </template> <script>Polymer({is:"paper-spinner-lite"
,behaviors:[Polymer.PaperSpinnerBehavior]})</script> </dom-module> <script>!func
tion(){"use strict";Polymer.IronJsonpLibraryBehavior={properties:{libraryLoaded:
{type:Boolean,value:!1,notify:!0,readOnly:!0},libraryErrorMessage:{type:String,v
alue:null,notify:!0,readOnly:!0}},observers:["_libraryUrlChanged(libraryUrl)"],_
libraryUrlChanged:function(r){this._isReady&&this.libraryUrl&&this._loadLibrary(
)},_libraryLoadCallback:function(r,i){r?(console.warn("Library load failed:",r.m
essage),this._setLibraryErrorMessage(r.message)):(this._setLibraryErrorMessage(n
ull),this._setLibraryLoaded(!0),this.notifyEvent&&this.fire(this.notifyEvent,i))
},_loadLibrary:function(){r.require(this.libraryUrl,this._libraryLoadCallback.bi
nd(this),this.callbackName)},ready:function(){this._isReady=!0,this.libraryUrl&&
this._loadLibrary()}};var r={apiMap:{},require:function(r,t,e){var a=this.nameFr
omUrl(r);this.apiMap[a]||(this.apiMap[a]=new i(a,r,e)),this.apiMap[a].requestNot
ify(t)},nameFromUrl:function(r){return r.replace(/[\:\/\%\?\&\.\=\-\,]/g,"_")+"_
api"}},i=function(r,i,t){if(this.notifiers=[],!t){if(!(i.indexOf(this.callbackMa
cro)>=0))return void(this.error=new Error("IronJsonpLibraryBehavior a %%callback
%% parameter is required in libraryUrl"));t=r+"_loaded",i=i.replace(this.callbac
kMacro,t)}this.callbackName=t,window[this.callbackName]=this.success.bind(this),
this.addScript(i)};i.prototype={callbackMacro:"%%callback%%",loaded:!1,addScript
:function(r){var i=document.createElement("script");i.src=r,i.onerror=this.handl
eError.bind(this);var t=document.querySelector("script")||document.body;t.parent
Node.insertBefore(i,t),this.script=i},removeScript:function(){this.script.parent
Node&&this.script.parentNode.removeChild(this.script),this.script=null},handleEr
ror:function(r){this.error=new Error("Library failed to load"),this.notifyAll(),
this.cleanup()},success:function(){this.loaded=!0,this.result=Array.prototype.sl
ice.call(arguments),this.notifyAll(),this.cleanup()},cleanup:function(){delete w
indow[this.callbackName]},notifyAll:function(){this.notifiers.forEach(function(r
){r(this.error,this.result)}.bind(this)),this.notifiers=[]},requestNotify:functi
on(r){this.loaded||this.error?r(this.error,this.result):this.notifiers.push(r)}}
}()</script> <script>Polymer({is:"iron-jsonp-library",behaviors:[Polymer.IronJso
npLibraryBehavior],properties:{libraryUrl:String,callbackName:String,notifyEvent
:String}})</script> <script>Polymer({is:"google-js-api",behaviors:[Polymer.IronJ
sonpLibraryBehavior],properties:{libraryUrl:{type:String,value:"https://apis.goo
gle.com/js/api.js?onload=%%callback%%"},notifyEvent:{type:String,value:"js-api-l
oad"}},get api(){return gapi}})</script> <script>!function(){var e={appPackageNa
me:"apppackagename",clientId:"clientid",cookiePolicy:"cookiepolicy",hostedDomain
:"hostedDomain",openidPrompt:"prompt",requestVisibleActions:"requestvisibleactio
ns"},t={_clientId:null,get clientId(){return this._clientId},set clientId(e){if(
this._clientId&&e&&e!=this._clientId)throw new Error("clientId cannot change. Va
lues do not match. New: "+e+" Old:"+this._clientId);e&&e!=this._clientId&&(this.
_clientId=e,this.initAuth2())},_cookiePolicy:"single_host_origin",get cookiePoli
cy(){return this._cookiePolicy},set cookiePolicy(e){e&&(this._cookiePolicy=e)},_
appPackageName:"",get appPackageName(){return this._appPackageName},set appPacka
geName(e){if(this._appPackageName&&e&&e!=this._appPackageName)throw new Error("a
ppPackageName cannot change. Values do not match. New: "+e+" Old: "+this._appPac
kageName);e&&(this._appPackageName=e)},_requestVisibleActions:"",get requestVisi
bleactions(){return this._requestVisibleActions},set requestVisibleactions(e){if
(this._requestVisibleActions&&e&&e!=this._requestVisibleActions)throw new Error(
"requestVisibleactions cannot change. Values do not match. New: "+e+" Old: "+thi
s._requestVisibleActions);e&&(this._requestVisibleActions=e)},_hostedDomain:"",g
et hostedDomain(){return this._hostedDomain},set hostedDomain(e){if(this._hosted
Domain&&e&&e!=this._hostedDomain)throw new Error("hostedDomain cannot change. Va
lues do not match. New: "+e+" Old: "+this._hostedDomain);e&&(this._hostedDomain=
e)},_openidPrompt:"",get openidPrompt(){return this._openidPrompt},set openidPro
mpt(e){if("string"!=typeof e)throw new Error("openidPrompt must be a string. Rec
eived "+typeof e);if(e){var t=e.split(" ");t=t.map(function(e){return e.trim()})
,t=t.filter(function(e){return e});var i={none:0,login:0,consent:0,select_accoun
t:0};t.forEach(function(e){if("none"==e&&t.length>1)throw new Error("none cannot
be combined with other openidPrompt values");if(!(e in i))throw new Error("inva
lid openidPrompt value "+e+". Valid values: "+Object.keys(i).join(", "))})}this.
_openidPrompt=e},_offline:!1,get offline(){return this._offline},set offline(e){
this._offline=e,this.updateAdditionalAuth()},_offlineAlwaysPrompt:!1,get offline
AlwaysPrompt(){return this._offlineAlwaysPrompt},set offlineAlwaysPrompt(e){this
._offlineAlwaysPrompt=e,this.updateAdditionalAuth()},offlineGranted:!1,_apiLoade
r:null,_requestedScopeArray:[],get requestedScopes(){return this._requestedScope
Array.join(" ")},_signedIn:!1,_grantedScopeArray:[],_needAdditionalAuth:!0,_hasP
lusScopes:!1,signinAwares:[],init:function(){this._apiLoader=document.createElem
ent("google-js-api"),this._apiLoader.addEventListener("js-api-load",this.loadAut
h2.bind(this))},loadAuth2:function(){gapi.load("auth2",this.initAuth2.bind(this)
)},initAuth2:function(){if("gapi"in window&&"auth2"in window.gapi&&this.clientId
){var e=gapi.auth2.init({client_id:this.clientId,cookie_policy:this.cookiePolicy
,scope:this.requestedScopes,hosted_domain:this.hostedDomain});e.currentUser.list
en(this.handleUserUpdate.bind(this)),e.then(function(){},function(e){console.err
or(e)})}},handleUserUpdate:function(e){var t=e.isSignedIn();if(t!=this._signedIn
){this._signedIn=t;for(var i=0;i<this.signinAwares.length;i++)this.signinAwares[
i]._setSignedIn(t)}this._grantedScopeArray=this.strToScopeArray(e.getGrantedScop
es()),this.updateAdditionalAuth();for(var n=e.getAuthResponse(),i=0;i<this.signi
nAwares.length;i++)this.signinAwares[i]._updateScopeStatus(n)},setOfflineCode:fu
nction(e){for(var t=0;t<this.signinAwares.length;t++)this.signinAwares[t]._updat
eOfflineCode(e)},strToScopeArray:function(e){if(!e)return[];for(var t=e.replace(
/\ +/g," ").trim().split(" "),i=0;i<t.length;i++)t[i]=t[i].toLowerCase(),"https:
//www.googleapis.com/auth/userinfo.profile"===t[i]&&(t[i]="profile"),"https://ww
w.googleapis.com/auth/userinfo.email"===t[i]&&(t[i]="email");return t.filter(fun
ction(e,t,i){return i.indexOf(e)===t})},isPlusScope:function(e){return e.indexOf
("/auth/games")>-1||e.indexOf("auth/plus.")>-1&&e.indexOf("auth/plus.me")<0},has
GrantedScopes:function(e){for(var t=this.strToScopeArray(e),i=0;i<t.length;i++)i
f(this._grantedScopeArray.indexOf(t[i])===-1)return!1;return!0},requestScopes:fu
nction(e){for(var t=this.strToScopeArray(e),i=!1,n=0;n<t.length;n++)this._reques
tedScopeArray.indexOf(t[n])===-1&&(this._requestedScopeArray.push(t[n]),i=!0);i&
&(this.updateAdditionalAuth(),this.updatePlusScopes())},updateAdditionalAuth:fun
ction(){var e=!1;if(!this.offlineAlwaysPrompt&&!this.offline||this.offlineGrante
d){for(var t=0;t<this._requestedScopeArray.length;t++)if(this._grantedScopeArray
.indexOf(this._requestedScopeArray[t])===-1){e=!0;break}}else e=!0;if(this._need
AdditionalAuth!=e){this._needAdditionalAuth=e;for(var t=0;t<this.signinAwares.le
ngth;t++)this.signinAwares[t]._setNeedAdditionalAuth(e)}},updatePlusScopes:funct
ion(){for(var e=!1,t=0;t<this._requestedScopeArray.length;t++)if(this.isPlusScop
e(this._requestedScopeArray[t])){e=!0;break}if(this._hasPlusScopes!=e){this._has
PlusScopes=e;for(var t=0;t<this.signinAwares.length;t++)this.signinAwares[t]._se
tHasPlusScopes(e)}},attachSigninAware:function(e){this.signinAwares.indexOf(e)==
-1?(this.signinAwares.push(e),e._setNeedAdditionalAuth(this._needAdditionalAuth)
,e._setSignedIn(this._signedIn),e._setHasPlusScopes(this._hasPlusScopes)):consol
e.warn("signinAware attached more than once",e)},detachSigninAware:function(e){v
ar t=this.signinAwares.indexOf(e);t!=-1?this.signinAwares.splice(t,1):console.wa
rn("Trying to detach unattached signin-aware")},getMissingScopes:function(){retu
rn this._requestedScopeArray.filter(function(e){return this._grantedScopeArray.i
ndexOf(e)===-1}.bind(this)).join(" ")},assertAuthInitialized:function(){if(!this
.clientId)throw new Error("AuthEngine not initialized. clientId has not been con
figured.");if(!("gapi"in window))throw new Error("AuthEngine not initialized. ga
pi has not loaded.");if(!("auth2"in window.gapi))throw new Error("AuthEngine not
initialized. auth2 not loaded.")},signIn:function(){this.assertAuthInitialized(
);var i={scope:this.getMissingScopes()};Object.keys(e).forEach(function(t){this[
t]&&""!==this[t]&&(i[e[t]]=this[t])},this);var n,o=gapi.auth2.getAuthInstance().
currentUser.get();this.offline||this.offlineAlwaysPrompt?(i.redirect_uri="postme
ssage",this.offlineAlwaysPrompt&&(i.approval_prompt="force"),n=gapi.auth2.getAut
hInstance().grantOfflineAccess(i)):n=o.getGrantedScopes()?o.grant(i):gapi.auth2.
getAuthInstance().signIn(i),n.then(function(e){var i;e.code?(t.offlineGranted=!0
,i=gapi.auth2.getAuthInstance().currentUser.get(),t.setOfflineCode(e.code)):i=e;
i.getAuthResponse()},function(e){"Access denied."!==e.reason&&this.signinAwares.
forEach(function(t){t.errorNotify(e)})}.bind(this))},signOut:function(){this.ass
ertAuthInitialized(),gapi.auth2.getAuthInstance().signOut().then(function(){},fu
nction(e){console.error(e)})}};t.init(),Polymer({is:"google-signin-aware",proper
ties:{appPackageName:{type:String,observer:"_appPackageNameChanged"},clientId:{t
ype:String,observer:"_clientIdChanged"},cookiePolicy:{type:String,observer:"_coo
kiePolicyChanged"},requestVisibleActions:{type:String,observer:"_requestVisibleA
ctionsChanged"},hostedDomain:{type:String,observer:"_hostedDomainChanged"},offli
ne:{type:Boolean,value:!1,observer:"_offlineChanged"},offlineAlwaysPrompt:{type:
Boolean,value:!1,observer:"_offlineAlwaysPromptChanged"},scopes:{type:String,val
ue:"profile",observer:"_scopesChanged"},openidPrompt:{type:String,value:"",obser
ver:"_openidPromptChanged"},signedIn:{type:Boolean,notify:!0,readOnly:!0},isAuth
orized:{type:Boolean,notify:!0,readOnly:!0,value:!1},needAdditionalAuth:{type:Bo
olean,notify:!0,readOnly:!0},hasPlusScopes:{type:Boolean,value:!1,notify:!0,read
Only:!0}},attached:function(){t.attachSigninAware(this)},detached:function(){t.d
etachSigninAware(this)},signIn:function(){t.signIn()},signOut:function(){t.signO
ut()},errorNotify:function(e){this.fire("google-signin-aware-error",e)},_appPack
ageNameChanged:function(e,i){t.appPackageName=e},_clientIdChanged:function(e,i){
t.clientId=e},_cookiePolicyChanged:function(e,i){t.cookiePolicy=e},_requestVisib
leActionsChanged:function(e,i){t.requestVisibleActions=e},_hostedDomainChanged:f
unction(e,i){t.hostedDomain=e},_offlineChanged:function(e,i){t.offline=e},_offli
neAlwaysPromptChanged:function(e,i){t.offlineAlwaysPrompt=e},_scopesChanged:func
tion(e,i){t.requestScopes(e),this._updateScopeStatus(void 0)},_openidPromptChang
ed:function(e,i){t.openidPrompt=e},_updateScopeStatus:function(e){var i=this.sig
nedIn&&t.hasGrantedScopes(this.scopes);i!==this.isAuthorized&&(this._setIsAuthor
ized(i),i?this.fire("google-signin-aware-success",e):this.fire("google-signin-aw
are-signed-out",e))},_updateOfflineCode:function(e){e&&this.fire("google-signin-
offline-success",{code:e})}})}()</script> <dom-module id="auth-signin" assetpath
="/res/imp/common/"> <template> <style>#avatar{border-radius:5px}a{color:#fff}.c
enter{vertical-align:middle}</style> <google-signin-aware id="aware" client-id="
[[client_id]]" offline="" scopes="email" on-google-signin-aware-success="_onSign
in" on-google-signin-aware-signed-out="_onSignout"> </google-signin-aware> <temp
late is="dom-if" if="[[!signed_in]]"> <div id="signinContainer"> <a on-tap="sign
In" href="#">Sign in</a> </div> </template> <template is="dom-if" if="[[signed_i
n]]"> <img class="center" id="avatar" src="[[profile.imageUrl]]" width="30" heig
ht="30"> <span class="center">[[profile.email]]</span> <span class="center">|</s
pan> <a class="center" on-tap="signOut" href="#">Sign out</a> </template> </temp
late> <script>"use strict";Polymer({is:"auth-signin",properties:{auth_headers:{t
ype:Object,computed:"_makeHeader(auth_response)",notify:!0},auth_response:{type:
Object,notify:!0},client_id:{type:String},profile:{type:Object,readOnly:!0,notif
y:!0},signed_in:{type:Boolean,readOnly:!0,value:!1,notify:!0}},ready:function(){
this.client_id&&window.setTimeout(function(){if(!this.signed_in&&!this._signingI
n)if("gapi"in window&&"auth2"in window.gapi){var i=gapi.auth2.getAuthInstance().
currentUser.get();i&&i.getAuthResponse().access_token?this._onSignin():window.se
tTimeout(this.ready.bind(this),50)}else window.setTimeout(this.ready.bind(this),
50)}.bind(this),50)},_onSignin:function(){this._signingIn=!0;var i=gapi.auth2.ge
tAuthInstance().currentUser.get(),e=i.getBasicProfile();this._setProfile({email:
e.getEmail(),imageUrl:e.getImageUrl()}),this.set("auth_response",i.getAuthRespon
se()),this._setSigned_in(!0),this.fire("auth-signin"),this.async(function(){cons
ole.log("reloading credentials"),i.reloadAuthResponse(),this._onSignin()},1e3*th
is.auth_response.expires_in),this._signingIn=!1},_onSignout:function(i){this._se
tSigned_in(!1),this._setProfile(null)},_makeHeader:function(i){return i?{authori
zation:i.token_type+" "+i.access_token}:{}},signIn:function(){this.$.aware.signI
n()},signOut:function(){this.$.aware.signOut()}})</script> </dom-module> <dom-mo
dule id="iron-a11y-announcer" assetpath="/res/imp/bower_components/iron-a11y-ann
ouncer/"> <template> <style>:host{display:inline-block;position:fixed;clip:rect(
0,0,0,0)}</style> <div aria-live$="[[mode]]">[[_text]]</div> </template> <script
>!function(){"use strict";Polymer.IronA11yAnnouncer=Polymer({is:"iron-a11y-annou
ncer",properties:{mode:{type:String,value:"polite"},_text:{type:String,value:""}
},created:function(){Polymer.IronA11yAnnouncer.instance||(Polymer.IronA11yAnnoun
cer.instance=this),document.body.addEventListener("iron-announce",this._onIronAn
nounce.bind(this))},announce:function(n){this._text="",this.async(function(){thi
s._text=n},100)},_onIronAnnounce:function(n){n.detail&&n.detail.text&&this.annou
nce(n.detail.text)}}),Polymer.IronA11yAnnouncer.instance=null,Polymer.IronA11yAn
nouncer.requestAvailability=function(){Polymer.IronA11yAnnouncer.instance||(Poly
mer.IronA11yAnnouncer.instance=document.createElement("iron-a11y-announcer")),do
cument.body.appendChild(Polymer.IronA11yAnnouncer.instance)}}()</script> </dom-m
odule> <script>Polymer.IronFitBehavior={properties:{sizingTarget:{type:Object,va
lue:function(){return this}},fitInto:{type:Object,value:window},noOverlap:{type:
Boolean},positionTarget:{type:Element},horizontalAlign:{type:String},verticalAli
gn:{type:String},dynamicAlign:{type:Boolean},horizontalOffset:{type:Number,value
:0,notify:!0},verticalOffset:{type:Number,value:0,notify:!0},autoFitOnAttach:{ty
pe:Boolean,value:!1},_fitInfo:{type:Object}},get _fitWidth(){var t;return t=this
.fitInto===window?this.fitInto.innerWidth:this.fitInto.getBoundingClientRect().w
idth},get _fitHeight(){var t;return t=this.fitInto===window?this.fitInto.innerHe
ight:this.fitInto.getBoundingClientRect().height},get _fitLeft(){var t;return t=
this.fitInto===window?0:this.fitInto.getBoundingClientRect().left},get _fitTop()
{var t;return t=this.fitInto===window?0:this.fitInto.getBoundingClientRect().top
},get _defaultPositionTarget(){var t=Polymer.dom(this).parentNode;return t&&t.no
deType===Node.DOCUMENT_FRAGMENT_NODE&&(t=t.host),t},get _localeHorizontalAlign()
{if(this._isRTL){if("right"===this.horizontalAlign)return"left";if("left"===this
.horizontalAlign)return"right"}return this.horizontalAlign},attached:function(){
this._isRTL="rtl"==window.getComputedStyle(this).direction,this.positionTarget=t
his.positionTarget||this._defaultPositionTarget,this.autoFitOnAttach&&("none"===
window.getComputedStyle(this).display?setTimeout(function(){this.fit()}.bind(thi
s)):this.fit())},fit:function(){this.position(),this.constrain(),this.center()},
_discoverInfo:function(){if(!this._fitInfo){var t=window.getComputedStyle(this),
i=window.getComputedStyle(this.sizingTarget);this._fitInfo={inlineStyle:{top:thi
s.style.top||"",left:this.style.left||"",position:this.style.position||""},sizer
InlineStyle:{maxWidth:this.sizingTarget.style.maxWidth||"",maxHeight:this.sizing
Target.style.maxHeight||"",boxSizing:this.sizingTarget.style.boxSizing||""},posi
tionedBy:{vertically:"auto"!==t.top?"top":"auto"!==t.bottom?"bottom":null,horizo
ntally:"auto"!==t.left?"left":"auto"!==t.right?"right":null},sizedBy:{height:"no
ne"!==i.maxHeight,width:"none"!==i.maxWidth,minWidth:parseInt(i.minWidth,10)||0,
minHeight:parseInt(i.minHeight,10)||0},margin:{top:parseInt(t.marginTop,10)||0,r
ight:parseInt(t.marginRight,10)||0,bottom:parseInt(t.marginBottom,10)||0,left:pa
rseInt(t.marginLeft,10)||0}},this.verticalOffset&&(this._fitInfo.margin.top=this
._fitInfo.margin.bottom=this.verticalOffset,this._fitInfo.inlineStyle.marginTop=
this.style.marginTop||"",this._fitInfo.inlineStyle.marginBottom=this.style.margi
nBottom||"",this.style.marginTop=this.style.marginBottom=this.verticalOffset+"px
"),this.horizontalOffset&&(this._fitInfo.margin.left=this._fitInfo.margin.right=
this.horizontalOffset,this._fitInfo.inlineStyle.marginLeft=this.style.marginLeft
||"",this._fitInfo.inlineStyle.marginRight=this.style.marginRight||"",this.style
.marginLeft=this.style.marginRight=this.horizontalOffset+"px")}},resetFit:functi
on(){var t=this._fitInfo||{};for(var i in t.sizerInlineStyle)this.sizingTarget.s
tyle[i]=t.sizerInlineStyle[i];for(var i in t.inlineStyle)this.style[i]=t.inlineS
tyle[i];this._fitInfo=null},refit:function(){var t=this.sizingTarget.scrollLeft,
i=this.sizingTarget.scrollTop;this.resetFit(),this.fit(),this.sizingTarget.scrol
lLeft=t,this.sizingTarget.scrollTop=i},position:function(){if(this.horizontalAli
gn||this.verticalAlign){this._discoverInfo(),this.style.position="fixed",this.si
zingTarget.style.boxSizing="border-box",this.style.left="0px",this.style.top="0p
x";var t=this.getBoundingClientRect(),i=this.__getNormalizedRect(this.positionTa
rget),e=this.__getNormalizedRect(this.fitInto),n=this._fitInfo.margin,o={width:t
.width+n.left+n.right,height:t.height+n.top+n.bottom},h=this.__getPosition(this.
_localeHorizontalAlign,this.verticalAlign,o,i,e),s=h.left+n.left,l=h.top+n.top,r
=Math.min(e.right-n.right,s+t.width),a=Math.min(e.bottom-n.bottom,l+t.height),g=
this._fitInfo.sizedBy.minWidth,f=this._fitInfo.sizedBy.minHeight;s<n.left&&(s=n.
left,r-s<g&&(s=r-g)),l<n.top&&(l=n.top,a-l<f&&(l=a-f)),this.sizingTarget.style.m
axWidth=r-s+"px",this.sizingTarget.style.maxHeight=a-l+"px",this.style.left=s-t.
left+"px",this.style.top=l-t.top+"px"}},constrain:function(){if(!this.horizontal
Align&&!this.verticalAlign){this._discoverInfo();var t=this._fitInfo;t.positione
dBy.vertically||(this.style.position="fixed",this.style.top="0px"),t.positionedB
y.horizontally||(this.style.position="fixed",this.style.left="0px"),this.sizingT
arget.style.boxSizing="border-box";var i=this.getBoundingClientRect();t.sizedBy.
height||this.__sizeDimension(i,t.positionedBy.vertically,"top","bottom","Height"
),t.sizedBy.width||this.__sizeDimension(i,t.positionedBy.horizontally,"left","ri
ght","Width")}},_sizeDimension:function(t,i,e,n,o){this.__sizeDimension(t,i,e,n,
o)},__sizeDimension:function(t,i,e,n,o){var h=this._fitInfo,s=this.__getNormaliz
edRect(this.fitInto),l="Width"===o?s.width:s.height,r=i===n,a=r?l-t[n]:t[e],g=h.
margin[r?e:n],f="offset"+o,p=this[f]-this.sizingTarget[f];this.sizingTarget.styl
e["max"+o]=l-g-a-p+"px"},center:function(){if(!this.horizontalAlign&&!this.verti
calAlign){this._discoverInfo();var t=this._fitInfo.positionedBy;if(!t.vertically
||!t.horizontally){this.style.position="fixed",t.vertically||(this.style.top="0p
x"),t.horizontally||(this.style.left="0px");var i=this.getBoundingClientRect(),e
=this.__getNormalizedRect(this.fitInto);if(!t.vertically){var n=e.top-i.top+(e.h
eight-i.height)/2;this.style.top=n+"px"}if(!t.horizontally){var o=e.left-i.left+
(e.width-i.width)/2;this.style.left=o+"px"}}}},__getNormalizedRect:function(t){r
eturn t===document.documentElement||t===window?{top:0,left:0,width:window.innerW
idth,height:window.innerHeight,right:window.innerWidth,bottom:window.innerHeight
}:t.getBoundingClientRect()},__getCroppedArea:function(t,i,e){var n=Math.min(0,t
.top)+Math.min(0,e.bottom-(t.top+i.height)),o=Math.min(0,t.left)+Math.min(0,e.ri
ght-(t.left+i.width));return Math.abs(n)*i.width+Math.abs(o)*i.height},__getPosi
tion:function(t,i,e,n,o){var h=[{verticalAlign:"top",horizontalAlign:"left",top:
n.top,left:n.left},{verticalAlign:"top",horizontalAlign:"right",top:n.top,left:n
.right-e.width},{verticalAlign:"bottom",horizontalAlign:"left",top:n.bottom-e.he
ight,left:n.left},{verticalAlign:"bottom",horizontalAlign:"right",top:n.bottom-e
.height,left:n.right-e.width}];if(this.noOverlap){for(var s=0,l=h.length;s<l;s++
){var r={};for(var a in h[s])r[a]=h[s][a];h.push(r)}h[0].top=h[1].top+=n.height,
h[2].top=h[3].top-=n.height,h[4].left=h[6].left+=n.width,h[5].left=h[7].left-=n.
width}i="auto"===i?null:i,t="auto"===t?null:t;for(var g,s=0;s<h.length;s++){var
f=h[s];if(!this.dynamicAlign&&!this.noOverlap&&f.verticalAlign===i&&f.horizontal
Align===t){g=f;break}var p=!(i&&f.verticalAlign!==i||t&&f.horizontalAlign!==t);i
f(this.dynamicAlign||p){g=g||f,f.croppedArea=this.__getCroppedArea(f,e,o);var d=
f.croppedArea-g.croppedArea;if((d<0||0===d&&p)&&(g=f),0===g.croppedArea&&p)break
}}return g}}</script> <dom-module id="iron-overlay-backdrop" assetpath="/res/imp
/bower_components/iron-overlay-behavior/"> <template> <style>:host{position:fixe
d;top:0;left:0;width:100%;height:100%;background-color:var(--iron-overlay-backdr
op-background-color,#000);opacity:0;transition:opacity .2s;pointer-events:none;@
apply(--iron-overlay-backdrop)}:host(.opened){opacity:var(--iron-overlay-backdro
p-opacity,.6);pointer-events:auto;@apply(--iron-overlay-backdrop-opened)}</style
> <content></content> </template> </dom-module> <script>!function(){"use strict"
;Polymer({is:"iron-overlay-backdrop",properties:{opened:{reflectToAttribute:!0,t
ype:Boolean,value:!1,observer:"_openedChanged"}},listeners:{transitionend:"_onTr
ansitionend"},created:function(){this.__openedRaf=null},attached:function(){this
.opened&&this._openedChanged(this.opened)},prepare:function(){this.opened&&!this
.parentNode&&Polymer.dom(document.body).appendChild(this)},open:function(){this.
opened=!0},close:function(){this.opened=!1},complete:function(){this.opened||thi
s.parentNode!==document.body||Polymer.dom(this.parentNode).removeChild(this)},_o
nTransitionend:function(e){e&&e.target===this&&this.complete()},_openedChanged:f
unction(e){if(e)this.prepare();else{var t=window.getComputedStyle(this);"0s"!==t
.transitionDuration&&0!=t.opacity||this.complete()}this.isAttached&&(this.__open
edRaf&&(window.cancelAnimationFrame(this.__openedRaf),this.__openedRaf=null),thi
s.scrollTop=this.scrollTop,this.__openedRaf=window.requestAnimationFrame(functio
n(){this.__openedRaf=null,this.toggleClass("opened",this.opened)}.bind(this)))}}
)}()</script> <script>Polymer.IronOverlayManagerClass=function(){this._overlays=
[],this._minimumZ=101,this._backdropElement=null,Polymer.Gestures.add(document,"
tap",this._onCaptureClick.bind(this)),document.addEventListener("focus",this._on
CaptureFocus.bind(this),!0),document.addEventListener("keydown",this._onCaptureK
eyDown.bind(this),!0)},Polymer.IronOverlayManagerClass.prototype={constructor:Po
lymer.IronOverlayManagerClass,get backdropElement(){return this._backdropElement
||(this._backdropElement=document.createElement("iron-overlay-backdrop")),this._
backdropElement},get deepActiveElement(){for(var e=document.activeElement||docum
ent.body;e.root&&Polymer.dom(e.root).activeElement;)e=Polymer.dom(e.root).active
Element;return e},_bringOverlayAtIndexToFront:function(e){var t=this._overlays[e
];if(t){var r=this._overlays.length-1,a=this._overlays[r];if(a&&this._shouldBeBe
hindOverlay(t,a)&&r--,!(e>=r)){var n=Math.max(this.currentOverlayZ(),this._minim
umZ);for(this._getZ(t)<=n&&this._applyOverlayZ(t,n);e<r;)this._overlays[e]=this.
_overlays[e+1],e++;this._overlays[r]=t}}},addOrRemoveOverlay:function(e){e.opene
d?this.addOverlay(e):this.removeOverlay(e)},addOverlay:function(e){var t=this._o
verlays.indexOf(e);if(t>=0)return this._bringOverlayAtIndexToFront(t),void this.
trackBackdrop();var r=this._overlays.length,a=this._overlays[r-1],n=Math.max(thi
s._getZ(a),this._minimumZ),o=this._getZ(e);if(a&&this._shouldBeBehindOverlay(e,a
)){this._applyOverlayZ(a,n),r--;var i=this._overlays[r-1];n=Math.max(this._getZ(
i),this._minimumZ)}o<=n&&this._applyOverlayZ(e,n),this._overlays.splice(r,0,e),t
his.trackBackdrop()},removeOverlay:function(e){var t=this._overlays.indexOf(e);t
!==-1&&(this._overlays.splice(t,1),this.trackBackdrop())},currentOverlay:functio
n(){var e=this._overlays.length-1;return this._overlays[e]},currentOverlayZ:func
tion(){return this._getZ(this.currentOverlay())},ensureMinimumZ:function(e){this
._minimumZ=Math.max(this._minimumZ,e)},focusOverlay:function(){var e=this.curren
tOverlay();e&&e._applyFocus()},trackBackdrop:function(){var e=this._overlayWithB
ackdrop();(e||this._backdropElement)&&(this.backdropElement.style.zIndex=this._g
etZ(e)-1,this.backdropElement.opened=!!e)},getBackdrops:function(){for(var e=[],
t=0;t<this._overlays.length;t++)this._overlays[t].withBackdrop&&e.push(this._ove
rlays[t]);return e},backdropZ:function(){return this._getZ(this._overlayWithBack
drop())-1},_overlayWithBackdrop:function(){for(var e=0;e<this._overlays.length;e
++)if(this._overlays[e].withBackdrop)return this._overlays[e]},_getZ:function(e)
{var t=this._minimumZ;if(e){var r=Number(e.style.zIndex||window.getComputedStyle
(e).zIndex);r===r&&(t=r)}return t},_setZ:function(e,t){e.style.zIndex=t},_applyO
verlayZ:function(e,t){this._setZ(e,t+2)},_overlayInPath:function(e){e=e||[];for(
var t=0;t<e.length;t++)if(e[t]._manager===this)return e[t]},_onCaptureClick:func
tion(e){var t=this.currentOverlay();t&&this._overlayInPath(Polymer.dom(e).path)!
==t&&t._onCaptureClick(e)},_onCaptureFocus:function(e){var t=this.currentOverlay
();t&&t._onCaptureFocus(e)},_onCaptureKeyDown:function(e){var t=this.currentOver
lay();t&&(Polymer.IronA11yKeysBehavior.keyboardEventMatchesKeys(e,"esc")?t._onCa
ptureEsc(e):Polymer.IronA11yKeysBehavior.keyboardEventMatchesKeys(e,"tab")&&t._o
nCaptureTab(e))},_shouldBeBehindOverlay:function(e,t){return!e.alwaysOnTop&&t.al
waysOnTop}},Polymer.IronOverlayManager=new Polymer.IronOverlayManagerClass</scri
pt> <script>!function(){"use strict";Polymer.IronOverlayBehaviorImpl={properties
:{opened:{observer:"_openedChanged",type:Boolean,value:!1,notify:!0},canceled:{o
bserver:"_canceledChanged",readOnly:!0,type:Boolean,value:!1},withBackdrop:{obse
rver:"_withBackdropChanged",type:Boolean},noAutoFocus:{type:Boolean,value:!1},no
CancelOnEscKey:{type:Boolean,value:!1},noCancelOnOutsideClick:{type:Boolean,valu
e:!1},closingReason:{type:Object},restoreFocusOnClose:{type:Boolean,value:!1},al
waysOnTop:{type:Boolean},_manager:{type:Object,value:Polymer.IronOverlayManager}
,_focusedChild:{type:Object}},listeners:{"iron-resize":"_onIronResize"},get back
dropElement(){return this._manager.backdropElement},get _focusNode(){return this
._focusedChild||Polymer.dom(this).querySelector("[autofocus]")||this},get _focus
ableNodes(){var e=["a[href]","area[href]","iframe","[tabindex]","[contentEditabl
e=true]"],t=["input","select","textarea","button"],i=e.join(':not([tabindex="-1"
]),')+':not([tabindex="-1"]),'+t.join(':not([disabled]):not([tabindex="-1"]),')+
':not([disabled]):not([tabindex="-1"])',s=Polymer.dom(this).querySelectorAll(i);
return this.tabIndex>=0&&s.splice(0,0,this),s.sort(function(e,t){return e.tabInd
ex===t.tabIndex?0:0===e.tabIndex||e.tabIndex>t.tabIndex?1:-1})},ready:function()
{this.__isAnimating=!1,this.__shouldRemoveTabIndex=!1,this.__firstFocusableNode=
this.__lastFocusableNode=null,this.__raf=null,this.__restoreFocusNode=null,this.
_ensureSetup()},attached:function(){this.opened&&this._openedChanged(this.opened
),this._observer=Polymer.dom(this).observeNodes(this._onNodesChange)},detached:f
unction(){Polymer.dom(this).unobserveNodes(this._observer),this._observer=null,t
his.__raf&&(window.cancelAnimationFrame(this.__raf),this.__raf=null),this._manag
er.removeOverlay(this)},toggle:function(){this._setCanceled(!1),this.opened=!thi
s.opened},open:function(){this._setCanceled(!1),this.opened=!0},close:function()
{this._setCanceled(!1),this.opened=!1},cancel:function(e){var t=this.fire("iron-
overlay-canceled",e,{cancelable:!0});t.defaultPrevented||(this._setCanceled(!0),
this.opened=!1)},invalidateTabbables:function(){this.__firstFocusableNode=this._
_lastFocusableNode=null},_ensureSetup:function(){this._overlaySetup||(this._over
laySetup=!0,this.style.outline="none",this.style.display="none")},_openedChanged
:function(e){e?this.removeAttribute("aria-hidden"):this.setAttribute("aria-hidde
n","true"),this.isAttached&&(this.__isAnimating=!0,this.__onNextAnimationFrame(t
his.__openedChanged))},_canceledChanged:function(){this.closingReason=this.closi
ngReason||{},this.closingReason.canceled=this.canceled},_withBackdropChanged:fun
ction(){this.withBackdrop&&!this.hasAttribute("tabindex")?(this.setAttribute("ta
bindex","-1"),this.__shouldRemoveTabIndex=!0):this.__shouldRemoveTabIndex&&(this
.removeAttribute("tabindex"),this.__shouldRemoveTabIndex=!1),this.opened&&this.i
sAttached&&this._manager.trackBackdrop()},_prepareRenderOpened:function(){this._
_restoreFocusNode=this._manager.deepActiveElement,this._preparePositioning(),thi
s.refit(),this._finishPositioning(),this.noAutoFocus&&document.activeElement===t
his._focusNode&&(this._focusNode.blur(),this.__restoreFocusNode.focus())},_rende
rOpened:function(){this._finishRenderOpened()},_renderClosed:function(){this._fi
nishRenderClosed()},_finishRenderOpened:function(){this.notifyResize(),this.__is
Animating=!1,this.fire("iron-overlay-opened")},_finishRenderClosed:function(){th
is.style.display="none",this.style.zIndex="",this.notifyResize(),this.__isAnimat
ing=!1,this.fire("iron-overlay-closed",this.closingReason)},_preparePositioning:
function(){this.style.transition=this.style.webkitTransition="none",this.style.t
ransform=this.style.webkitTransform="none",this.style.display=""},_finishPositio
ning:function(){this.style.display="none",this.scrollTop=this.scrollTop,this.sty
le.transition=this.style.webkitTransition="",this.style.transform=this.style.web
kitTransform="",this.style.display="",this.scrollTop=this.scrollTop},_applyFocus
:function(){if(this.opened)this.noAutoFocus||this._focusNode.focus();else{this._
focusNode.blur(),this._focusedChild=null,this.restoreFocusOnClose&&this.__restor
eFocusNode&&this.__restoreFocusNode.focus(),this.__restoreFocusNode=null;var e=t
his._manager.currentOverlay();e&&this!==e&&e._applyFocus()}},_onCaptureClick:fun
ction(e){this.noCancelOnOutsideClick||this.cancel(e)},_onCaptureFocus:function(e
){if(this.withBackdrop){var t=Polymer.dom(e).path;t.indexOf(this)===-1?(e.stopPr
opagation(),this._applyFocus()):this._focusedChild=t[0]}},_onCaptureEsc:function
(e){this.noCancelOnEscKey||this.cancel(e)},_onCaptureTab:function(e){if(this.wit
hBackdrop){this.__ensureFirstLastFocusables();var t=e.shiftKey,i=t?this.__firstF
ocusableNode:this.__lastFocusableNode,s=t?this.__lastFocusableNode:this.__firstF
ocusableNode,n=!1;if(i===s)n=!0;else{var o=this._manager.deepActiveElement;n=o==
=i||o===this}n&&(e.preventDefault(),this._focusedChild=s,this._applyFocus())}},_
onIronResize:function(){this.opened&&!this.__isAnimating&&this.__onNextAnimation
Frame(this.refit)},_onNodesChange:function(){this.opened&&!this.__isAnimating&&(
this.invalidateTabbables(),this.notifyResize())},__ensureFirstLastFocusables:fun
ction(){if(!this.__firstFocusableNode||!this.__lastFocusableNode){var e=this._fo
cusableNodes;this.__firstFocusableNode=e[0],this.__lastFocusableNode=e[e.length-
1]}},__openedChanged:function(){this.opened?(this._prepareRenderOpened(),this._m
anager.addOverlay(this),this._applyFocus(),this._renderOpened()):(this._manager.
removeOverlay(this),this._applyFocus(),this._renderClosed())},__onNextAnimationF
rame:function(e){this.__raf&&window.cancelAnimationFrame(this.__raf);var t=this;
this.__raf=window.requestAnimationFrame(function(){t.__raf=null,e.call(t)})}},Po
lymer.IronOverlayBehavior=[Polymer.IronFitBehavior,Polymer.IronResizableBehavior
,Polymer.IronOverlayBehaviorImpl]}()</script> <dom-module id="paper-toast" asset
path="/res/imp/bower_components/paper-toast/"> <template> <style>:host{display:b
lock;position:fixed;background-color:var(--paper-toast-background-color,#323232)
;color:var(--paper-toast-color,#f1f1f1);min-height:48px;min-width:288px;padding:
16px 24px;box-sizing:border-box;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-ra
dius:2px;margin:12px;font-size:14px;cursor:default;-webkit-transition:-webkit-tr
ansform .3s,opacity .3s;transition:transform .3s,opacity .3s;opacity:0;-webkit-t
ransform:translateY(100px);transform:translateY(100px);@apply(--paper-font-commo
n-base)}:host(.capsule){border-radius:24px}:host(.fit-bottom){width:100%;min-wid
th:0;border-radius:0;margin:0}:host(.paper-toast-open){opacity:1;-webkit-transfo
rm:translateY(0);transform:translateY(0)}</style> <span id="label">{{text}}</spa
n> <content></content> </template> <script>!function(){var e=null;Polymer({is:"p
aper-toast",behaviors:[Polymer.IronOverlayBehavior],properties:{fitInto:{type:Ob
ject,value:window,observer:"_onFitIntoChanged"},horizontalAlign:{type:String,val
ue:"left"},verticalAlign:{type:String,value:"bottom"},duration:{type:Number,valu
e:3e3},text:{type:String,value:""},noCancelOnOutsideClick:{type:Boolean,value:!0
},noAutoFocus:{type:Boolean,value:!0}},listeners:{transitionend:"__onTransitionE
nd"},get visible(){return Polymer.Base._warn("`visible` is deprecated, use `open
ed` instead"),this.opened},get _canAutoClose(){return this.duration>0&&this.dura
tion!==1/0},created:function(){this._autoClose=null,Polymer.IronA11yAnnouncer.re
questAvailability()},show:function(e){"string"==typeof e&&(e={text:e});for(var t
in e)0===t.indexOf("_")?Polymer.Base._warn('The property "'+t+'" is private and
was not set.'):t in this?this[t]=e[t]:Polymer.Base._warn('The property "'+t+'"
is not valid.');this.open()},hide:function(){this.close()},__onTransitionEnd:fun
ction(e){e&&e.target===this&&"opacity"===e.propertyName&&(this.opened?this._fini
shRenderOpened():this._finishRenderClosed())},_openedChanged:function(){null!==t
his._autoClose&&(this.cancelAsync(this._autoClose),this._autoClose=null),this.op
ened?(e&&e!==this&&e.close(),e=this,this.fire("iron-announce",{text:this.text}),
this._canAutoClose&&(this._autoClose=this.async(this.close,this.duration))):e===
this&&(e=null),Polymer.IronOverlayBehaviorImpl._openedChanged.apply(this,argumen
ts)},_renderOpened:function(){this.classList.add("paper-toast-open")},_renderClo
sed:function(){this.classList.remove("paper-toast-open")},_onFitIntoChanged:func
tion(e){this.positionTarget=e}})}()</script> </dom-module> <dom-module id="error
-toast" assetpath="/res/imp/common/"> <template> <paper-toast id="toast"></paper
-toast> </template> </dom-module> <script>Polymer({is:"error-toast",ready:functi
on(){document.addEventListener("error-sk",function(t){if(this.$.toast.close(),t.
detail.message){this.$.toast.text=t.detail.message;var e=1e4;void 0!==t.detail.d
uration&&(e=t.detail.duration),this.$.toast.duration=e,this.$.toast.show()}else
console.log("Empty message?",t)}.bind(this))}})</script> <dom-module id="swarmin
g-app" assetpath="/res/imp/common/"> <template> <style include="iron-flex">:host
{position:absolute;top:0;bottom:0;left:0;right:0}app-toolbar{background-color:#1
F78B4;color:#fff}app-toolbar.error{background-color:#b41f1f;color:#fff}app-toolb
ar a{color:#fff}.left{margin-right:15px}.right{margin-left:15px}.main-content{pa
dding:3px}.main-content a{color:#1F78B4}.menu-button{min-width:40px}.small,auth-
signin{font-size:.7em}#mobile_menu{z-index:10;--app-drawer-content-container:{ma
rgin-top:64px};}a[href]{color:#1F78B4}.menu-item{padding:8px 3px;border-bottom:1
px solid #CCC}paper-fab{position:fixed;bottom:5px;right:5px;background-color:#1F
78B4}paper-spinner-lite{--paper-spinner-color:var(--google-yellow-500)}</style>
<app-header-layout> <app-drawer id="mobile_menu"> <div class="menu-item"><a clas
s="left" href="/">Home</a></div> <div class="menu-item"><a class="left" href="/b
otlist">Bot List</a></div> <div class="menu-item"><a class="left" href="/tasklis
t">Task List</a></div> <div class="menu-item"><a class="left" href="/oldui">Old
UI</a></div> </app-drawer> <app-header fixed=""> <app-toolbar class$="[[_toolbar
Class(client_id)]]"> <paper-icon-button class="menu-button" icon="icons:menu" on
-tap="_toggleMobileMenu" hidden$="[[wide_layout]]"> </paper-icon-button> <div cl
ass="title left">[[name]]</div> <paper-spinner-lite class="left" active="[[_or(b
usy,_busy1,_busy2)]]"></paper-spinner-lite> <a class="left" href="/" hidden$="[[
!wide_layout]]">Home</a> <a class="left" href="/botlist" hidden$="[[!wide_layout
]]">Bot List</a> <a class="left" href="/tasklist" hidden$="[[!wide_layout]]">Tas
k List</a> <div class="flex" hidden$="[[!wide_layout]]"></div> <template is="dom
-if" if="[[client_id]]"> <div class="small right"> Server: <a href$="[[_versionL
ink(server_details)]]"> [[server_details.server_version]] </a> </div> <auth-sign
in class="right" client_id="[[client_id]]" auth_headers="{{auth_headers}}" profi
le="{{profile}}" signed_in="{{signed_in}}"> </auth-signin> </template> <template
is="dom-if" if="[[!client_id]]"> <div class="right">No OAauth client id found.<
/div> </template> </app-toolbar> </app-header> <div class="main-content"> <conte
nt></content> </div> <error-toast></error-toast> <a target="_blank" rel="noopene
r" href="https://bugs.chromium.org/p/chromium/issues/entry?components=Infra%3EPl
atform%3ESwarming&owner=kjlubick@chromium.org&status=Assigned"> <paper-f
ab mini="" icon="icons:bug-report"></paper-fab> </a> </app-header-layout> <iron-
media-query query="min-width: 600px" query-matches="{{wide_layout}}"></iron-medi
a-query> </template> <script>Polymer({is:"swarming-app",behaviors:[SwarmingBehav
iors.CommonBehavior],properties:{busy:{type:Boolean},client_id:{type:String},nam
e:{type:String},auth_headers:{type:Object,notify:!0,observer:"_load"},permission
s:{type:Object,value:function(){return{}},notify:!0},profile:{type:Object,notify
:!0},server_details:{type:Object,notify:!0},signed_in:{type:Boolean,value:!1,not
ify:!0},_busy1:{type:Boolean,value:!1},_busy2:{type:Boolean,value:!1}},_load:fun
ction(){this._getJsonAsync("permissions","/api/swarming/v1/server/permissions","
_busy1",this.auth_headers),this._getJsonAsync("server_details","/api/swarming/v1
/server/details","_busy2",this.auth_headers).catch(function(e){sk.errorMessage("
Http response: "+(e.status||" ")+" "+e.response)})},_toggleMobileMenu:function()
{this.$.mobile_menu.toggle()},_toolbarClass:function(e){return e?"":"error"},_ve
rsionLink:function(e){if(e&&e.server_version){var s=e.server_version.split("-");
if(2===s.length)return"https://github.com/luci/luci-py/commit/"+s[1]}}})</script
> </dom-module> <dom-module id="swarming-app-style" assetpath="/res/imp/common/"
> <style>*{font-family:sans-serif}a[href]{color:#1F78B4}button{min-width:5.14em;
background-color:#fff;color:#1f78b4;text-align:center;text-transform:uppercase;o
utline:0;border-radius:3px;padding:.6em 1.2em;border:solid #d3d3d3 1px;margin:.6
em;cursor:pointer}button:hover{background:#eee}button:focus{background-color:#dd
d;transition:background-color .1s cubic-bezier(.4,0,.2,1)}button.raised:active,b
utton:active{background-color:#999;transition:background-color .1s cubic-bezier(
.4,0,.2,1)}button:disabled{color:#999}button:disabled:hover{background:initial;c
ursor:initial}button.action:active{background-color:#A6CEE3;transition:backgroun
d-color .1s color .1s cubic-bezier(.4,0,.2,1)}button.action{color:#fff;backgroun
d:#1f78b4;border:none}button.action:disabled{color:#fff;background:#999;border:n
one}button.raised{transition:box-shadow .1s cubic-bezier(.4,0,.2,1);box-shadow:5
px 5px 18px 0 rgba(0,0,0,.3)}button.raised:active{box-shadow:2px 2px 5px 0 rgba(
0,0,0,.1)}option,select{padding:.4em 1.2em;background-color:#fff;border:none;lin
e-height:20px;vertical-align:middle}select{overflow-y:auto}</style> </dom-module
> <dom-module id="swarming-index" assetpath="/res/imp/index/"> <template> <style
include="swarming-app-style">.command{font-family:monospace;margin-bottom:10px;
margin-top:10px;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #
ccc;border-radius:4px}</style> <swarming-app client_id="[[client_id]]" auth_head
ers="{{_auth_headers}}" permissions="{{_permissions}}" server_details="{{_server
_details}}" name="Swarming Server" busy="[[_or(_busy1,busy2)]]"> <h2>Service Sta
tus</h2> <div>Server Version: [[_server_details.server_version]]</div> <div>Bot
Version: [[_server_details.bot_version]]</div> <ul> <li> <a href="/stats">Usage
statistics</a> </li> <li> <a href="/restricted/mapreduce/status">Map Reduce Jobs
</a> </li> <li> <a href$="[[_makeInstancesUrl(_server_details,_project_id)]]">Vi
ew version's instances on Cloud Console</a> </li> <li> <a></a><a href$="[[_makeE
rrorUrl(_project_id)]]">View server errors on Cloud Console</a> </li> <li> <a></
a><a href$="[[_makeLogUrl(_project_id)]]">View logs for HTTP 5xx on Cloud Consol
e</a> </li> </ul> <h2>Configuration</h2> <ul> <li> <a href="/restricted/config">
View server config</a> </li> <li> <a href="/restricted/upload/bootstrap">View/up
load bootstrap.py</a> </li> <li> <a href="/restricted/upload/bot_config">View/up
load bot_config.py</a> </li> <li> <a href="/auth/groups">View/edit user groups</
a> </li> </ul> <div hidden$="[[_cannotBootstrap(_permissions)]]"> <h2>Bootstrapp
ing a bot</h2> To bootstrap a bot, run one of these (all links are valid for 1 h
our): <ol> <li> <strong> TL;DR; </strong> <pre class="command">python -c "import
urllib; exec urllib.urlopen('[[_host_url]]/bootstrap?tok=[[_bootstrap_token]]')
.read()"</pre> </li> <li> Escaped version to pass as a ssh argument: <pre class=
"command">'python -c "import urllib; exec urllib.urlopen('"'[[_host_url]]/bootst
rap?tok=[[_bootstrap_token]]'"').read()"'</pre> </li> <li> Manually: <pre class=
"command" style="margin-bottom:0">mkdir bot; cd bot | 195 })(); </script> <script>Polymer.AppLayout=Polymer.AppLayout||{},Polymer.AppLay
out._scrollEffects=Polymer.AppLayout._scrollEffects||{},Polymer.AppLayout.scroll
TimingFunction=function(o,l,e,r){return o/=r,-e*o*(o-2)+l},Polymer.AppLayout.reg
isterEffect=function(o,l){if(null!=Polymer.AppLayout._scrollEffects[o])throw new
Error("effect `"+o+"` is already registered.");Polymer.AppLayout._scrollEffects
[o]=l},Polymer.AppLayout.scroll=function(o){o=o||{};var l=document.documentEleme
nt,e=o.target||l,r="scrollBehavior"in e.style&&e.scroll,t="app-layout-silent-scr
oll",s=o.top||0,c=o.left||0,i=e===l?window.scrollTo:function(o,l){e.scrollLeft=o
,e.scrollTop=l};if("smooth"===o.behavior)if(r)e.scroll(o);else{var n=Polymer.App
Layout.scrollTimingFunction,a=Date.now(),p=e===l?window.pageYOffset:e.scrollTop,
u=e===l?window.pageXOffset:e.scrollLeft,y=s-p,f=c-u,m=300,L=function o(){var l=D
ate.now(),e=l-a;e<m?(i(n(e,u,f,m),n(e,p,y,m)),requestAnimationFrame(o)):i(c,s)}.
bind(this);L()}else"silent"===o.behavior?(l.classList.add(t),clearInterval(Polym
er.AppLayout._scrollTimer),Polymer.AppLayout._scrollTimer=setTimeout(function(){
l.classList.remove(t),Polymer.AppLayout._scrollTimer=null},100),i(c,s)):i(c,s)}<
/script> <style>[hidden]{display:none!important}</style> <style is="custom-style
">:root{--layout:{display:-ms-flexbox;display:-webkit-flex;display:flex};--layou
t-inline:{display:-ms-inline-flexbox;display:-webkit-inline-flex;display:inline-
flex};--layout-horizontal:{@apply(--layout);-ms-flex-direction:row;-webkit-flex-
direction:row;flex-direction:row};--layout-horizontal-reverse:{@apply(--layout);
-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction
:row-reverse};--layout-vertical:{@apply(--layout);-ms-flex-direction:column;-web
kit-flex-direction:column;flex-direction:column};--layout-vertical-reverse:{@app
ly(--layout);-ms-flex-direction:column-reverse;-webkit-flex-direction:column-rev
erse;flex-direction:column-reverse};--layout-wrap:{-ms-flex-wrap:wrap;-webkit-fl
ex-wrap:wrap;flex-wrap:wrap};--layout-wrap-reverse:{-ms-flex-wrap:wrap-reverse;-
webkit-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse};--layout-flex-auto:{-ms-fl
ex:1 1 auto;-webkit-flex:1 1 auto;flex:1 1 auto};--layout-flex-none:{-ms-flex:no
ne;-webkit-flex:none;flex:none};--layout-flex:{-ms-flex:1 1 0px;-webkit-flex:1;f
lex:1;-webkit-flex-basis:0px;flex-basis:0px};--layout-flex-2:{-ms-flex:2;-webkit
-flex:2;flex:2};--layout-flex-3:{-ms-flex:3;-webkit-flex:3;flex:3};--layout-flex
-4:{-ms-flex:4;-webkit-flex:4;flex:4};--layout-flex-5:{-ms-flex:5;-webkit-flex:5
;flex:5};--layout-flex-6:{-ms-flex:6;-webkit-flex:6;flex:6};--layout-flex-7:{-ms
-flex:7;-webkit-flex:7;flex:7};--layout-flex-8:{-ms-flex:8;-webkit-flex:8;flex:8
};--layout-flex-9:{-ms-flex:9;-webkit-flex:9;flex:9};--layout-flex-10:{-ms-flex:
10;-webkit-flex:10;flex:10};--layout-flex-11:{-ms-flex:11;-webkit-flex:11;flex:1
1};--layout-flex-12:{-ms-flex:12;-webkit-flex:12;flex:12};--layout-start:{-ms-fl
ex-align:start;-webkit-align-items:flex-start;align-items:flex-start};--layout-c
enter:{-ms-flex-align:center;-webkit-align-items:center;align-items:center};--la
yout-end:{-ms-flex-align:end;-webkit-align-items:flex-end;align-items:flex-end};
--layout-baseline:{-ms-flex-align:baseline;-webkit-align-items:baseline;align-it
ems:baseline};--layout-start-justified:{-ms-flex-pack:start;-webkit-justify-cont
ent:flex-start;justify-content:flex-start};--layout-center-justified:{-ms-flex-p
ack:center;-webkit-justify-content:center;justify-content:center};--layout-end-j
ustified:{-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:fle
x-end};--layout-around-justified:{-ms-flex-pack:distribute;-webkit-justify-conte
nt:space-around;justify-content:space-around};--layout-justified:{-ms-flex-pack:
justify;-webkit-justify-content:space-between;justify-content:space-between};--l
ayout-center-center:{@apply(--layout-center);@apply(--layout-center-justified)};
--layout-self-start:{-ms-align-self:flex-start;-webkit-align-self:flex-start;ali
gn-self:flex-start};--layout-self-center:{-ms-align-self:center;-webkit-align-se
lf:center;align-self:center};--layout-self-end:{-ms-align-self:flex-end;-webkit-
align-self:flex-end;align-self:flex-end};--layout-self-stretch:{-ms-align-self:s
tretch;-webkit-align-self:stretch;align-self:stretch};--layout-self-baseline:{-m
s-align-self:baseline;-webkit-align-self:baseline;align-self:baseline};--layout-
start-aligned:{-ms-flex-line-pack:start;-ms-align-content:flex-start;-webkit-ali
gn-content:flex-start;align-content:flex-start};--layout-end-aligned:{-ms-flex-l
ine-pack:end;-ms-align-content:flex-end;-webkit-align-content:flex-end;align-con
tent:flex-end};--layout-center-aligned:{-ms-flex-line-pack:center;-ms-align-cont
ent:center;-webkit-align-content:center;align-content:center};--layout-between-a
ligned:{-ms-flex-line-pack:justify;-ms-align-content:space-between;-webkit-align
-content:space-between;align-content:space-between};--layout-around-aligned:{-ms
-flex-line-pack:distribute;-ms-align-content:space-around;-webkit-align-content:
space-around;align-content:space-around};--layout-block:{display:block};--layout
-invisible:{visibility:hidden!important};--layout-relative:{position:relative};-
-layout-fit:{position:absolute;top:0;right:0;bottom:0;left:0};--layout-scroll:{-
webkit-overflow-scrolling:touch;overflow:auto};--layout-fullbleed:{margin:0;heig
ht:100vh};--layout-fixed-top:{position:fixed;top:0;left:0;right:0};--layout-fixe
d-right:{position:fixed;top:0;right:0;bottom:0};--layout-fixed-bottom:{position:
fixed;right:0;bottom:0;left:0};--layout-fixed-left:{position:fixed;top:0;bottom:
0;left:0};}</style> <dom-module id="app-drawer" assetpath="/res/imp/bower_compon
ents/app-layout/app-drawer/"> <template> <style>:host{position:fixed;top:-120px;
right:0;bottom:-120px;left:0;visibility:hidden;transition-property:visibility}:h
ost([opened]){visibility:visible}:host([persistent]){width:var(--app-drawer-widt
h,256px)}:host([persistent][position=left]){right:auto}:host([persistent][positi
on=right]){left:auto}#contentContainer{position:absolute;top:0;bottom:0;left:0;w
idth:var(--app-drawer-width,256px);padding:120px 0;transition-property:-webkit-t
ransform;transition-property:transform;-webkit-transform:translate3d(-100%,0,0);
transform:translate3d(-100%,0,0);background-color:#FFF;@apply(--app-drawer-conte
nt-container)}:host([position=right])>#contentContainer{right:0;left:auto;-webki
t-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}:host([swipe-o
pen])>#contentContainer::after{position:fixed;top:0;bottom:0;left:100%;visibilit
y:visible;width:20px;content:''}:host([swipe-open][position=right])>#contentCont
ainer::after{right:100%;left:auto}:host([opened])>#contentContainer{-webkit-tran
sform:translate3d(0,0,0);transform:translate3d(0,0,0)}#scrim{position:absolute;t
op:0;right:0;bottom:0;left:0;transition-property:opacity;-webkit-transform:trans
lateZ(0);transform:translateZ(0);opacity:0;background:var(--app-drawer-scrim-bac
kground,rgba(0,0,0,.5))}:host([opened])>#scrim{opacity:1}:host([opened][persiste
nt])>#scrim{visibility:hidden;opacity:0}</style> <div id="scrim" on-tap="close">
</div> <div id="contentContainer"> <content></content> </div> </template> <scrip
t>Polymer({is:"app-drawer",properties:{opened:{type:Boolean,value:!1,notify:!0,r
eflectToAttribute:!0},persistent:{type:Boolean,value:!1,reflectToAttribute:!0},t
ransitionDuration:{type:Number,value:200},align:{type:String,value:"left"},posit
ion:{type:String,readOnly:!0,reflectToAttribute:!0},swipeOpen:{type:Boolean,valu
e:!1,reflectToAttribute:!0},noFocusTrap:{type:Boolean,value:!1}},observers:["res
etLayout(position, isAttached)","_resetPosition(align, isAttached)","_styleTrans
itionDuration(transitionDuration)","_openedPersistentChanged(opened, persistent)
"],_translateOffset:0,_trackDetails:null,_drawerState:0,_boundEscKeydownHandler:
null,_firstTabStop:null,_lastTabStop:null,attached:function(){this._styleTransit
ionDuration(0),Polymer.RenderStatus.afterNextRender(this,function(){this._styleT
ransitionDuration(this.transitionDuration),this._boundEscKeydownHandler=this._es
cKeydownHandler.bind(this),this._resetDrawerState(),this.$.scrim.addEventListene
r("transitionend",this._transitionend.bind(this)),this.$.contentContainer.addEve
ntListener("transitionend",this._transitionend.bind(this)),this.addEventListener
("keydown",this._tabKeydownHandler.bind(this)),this.listen(this,"track","_track"
),this.setScrollDirection("y")}),this.fire("app-drawer-attached")},detached:func
tion(){document.removeEventListener("keydown",this._boundEscKeydownHandler)},ope
n:function(){this.opened=!0},close:function(){this.opened=!1},toggle:function(){
this.opened=!this.opened},getWidth:function(){return this.$.contentContainer.off
setWidth},resetLayout:function(){this.fire("app-drawer-reset-layout")},_isRTL:fu
nction(){return"rtl"===window.getComputedStyle(this).direction},_resetPosition:f
unction(){switch(this.align){case"start":return void this._setPosition(this._isR
TL()?"right":"left");case"end":return void this._setPosition(this._isRTL()?"left
":"right")}this._setPosition(this.align)},_escKeydownHandler:function(t){var i=2
7;t.keyCode===i&&(t.preventDefault(),this.close())},_track:function(t){if(!this.
persistent)switch(t.preventDefault(),t.detail.state){case"start":this._trackStar
t(t);break;case"track":this._trackMove(t);break;case"end":this._trackEnd(t)}},_t
rackStart:function(t){this._drawerState=this._DRAWER_STATE.TRACKING,this._styleT
ransitionDuration(0),this.style.visibility="visible";var i=this.$.contentContain
er.getBoundingClientRect();"left"===this.position?this._translateOffset=i.left:t
his._translateOffset=i.right-window.innerWidth,this._trackDetails=[]},_trackMove
:function(t){this._translateDrawer(t.detail.dx+this._translateOffset),this._trac
kDetails.push({dx:t.detail.dx,timeStamp:Date.now()})},_trackEnd:function(t){var
i=t.detail.dx+this._translateOffset,e=this.getWidth(),n="left"===this.position,s
=n?i>=0||i<=-e:i<=0||i>=e;if(!s){var a=this._trackDetails;if(this._trackDetails=
null,this._flingDrawer(t,a),this._drawerState===this._DRAWER_STATE.FLINGING)retu
rn}var r=e/2;t.detail.dx<-r?this.opened="right"===this.position:t.detail.dx>r&&(
this.opened="left"===this.position),s&&this._resetDrawerState(),this._styleTrans
itionDuration(this.transitionDuration),this._resetDrawerTranslate(),this.style.v
isibility=""},_calculateVelocity:function(t,i){for(var e,n=Date.now(),s=n-100,a=
0,r=i.length-1;a<=r;){var o=a+r>>1,h=i[o];h.timeStamp>=s?(e=h,r=o-1):a=o+1}if(e)
{var l=t.detail.dx-e.dx,d=n-e.timeStamp||1;return l/d}return 0},_flingDrawer:fun
ction(t,i){var e=this._calculateVelocity(t,i);if(!(Math.abs(e)<this._MIN_FLING_T
HRESHOLD)){this._drawerState=this._DRAWER_STATE.FLINGING;var n,s=t.detail.dx+thi
s._translateOffset,a=this.getWidth(),r="left"===this.position,o=e>0,h=!o&&r,l=o&
&!r;n=h?-(s+a):l?a-s:-s,o?(e=Math.max(e,this._MIN_TRANSITION_VELOCITY),this.open
ed="left"===this.position):(e=Math.min(e,-this._MIN_TRANSITION_VELOCITY),this.op
ened="right"===this.position),this._styleTransitionDuration(this._FLING_INITIAL_
SLOPE*n/e),this._styleTransitionTimingFunction(this._FLING_TIMING_FUNCTION),this
._resetDrawerTranslate()}},_transitionend:function(){this._drawerState===this._D
RAWER_STATE.FLINGING&&(this._styleTransitionDuration(this.transitionDuration),th
is._styleTransitionTimingFunction(""),this.style.visibility=""),this._resetDrawe
rState()},_styleTransitionDuration:function(t){this.style.transitionDuration=t+"
ms",this.$.contentContainer.style.transitionDuration=t+"ms",this.$.scrim.style.t
ransitionDuration=t+"ms"},_styleTransitionTimingFunction:function(t){this.$.cont
entContainer.style.transitionTimingFunction=t,this.$.scrim.style.transitionTimin
gFunction=t},_translateDrawer:function(t){var i=this.getWidth();"left"===this.po
sition?(t=Math.max(-i,Math.min(t,0)),this.$.scrim.style.opacity=1+t/i):(t=Math.m
ax(0,Math.min(t,i)),this.$.scrim.style.opacity=1-t/i),this.translate3d(t+"px","0
","0",this.$.contentContainer)},_resetDrawerTranslate:function(){this.$.scrim.st
yle.opacity="",this.transform("",this.$.contentContainer)},_resetDrawerState:fun
ction(){var t=this._drawerState;this.opened?this._drawerState=this.persistent?th
is._DRAWER_STATE.OPENED_PERSISTENT:this._DRAWER_STATE.OPENED:this._drawerState=t
his._DRAWER_STATE.CLOSED,t!==this._drawerState&&(this._drawerState===this._DRAWE
R_STATE.OPENED?(this._setKeyboardFocusTrap(),document.addEventListener("keydown"
,this._boundEscKeydownHandler),document.body.style.overflow="hidden"):(document.
removeEventListener("keydown",this._boundEscKeydownHandler),document.body.style.
overflow=""),t!==this._DRAWER_STATE.INIT&&this.fire("app-drawer-transitioned"))}
,_setKeyboardFocusTrap:function(){if(!this.noFocusTrap){var t=['a[href]:not([tab
index="-1"])','area[href]:not([tabindex="-1"])','input:not([disabled]):not([tabi
ndex="-1"])','select:not([disabled]):not([tabindex="-1"])','textarea:not([disabl
ed]):not([tabindex="-1"])','button:not([disabled]):not([tabindex="-1"])','iframe
:not([tabindex="-1"])','[tabindex]:not([tabindex="-1"])','[contentEditable=true]
:not([tabindex="-1"])'].join(","),i=Polymer.dom(this).querySelectorAll(t);i.leng
th>0?(this._firstTabStop=i[0],this._lastTabStop=i[i.length-1]):(this._firstTabSt
op=null,this._lastTabStop=null);var e=this.getAttribute("tabindex");e&&parseInt(
e,10)>-1?this.focus():this._firstTabStop&&this._firstTabStop.focus()}},_tabKeydo
wnHandler:function(t){if(!this.noFocusTrap){var i=9;this._drawerState===this._DR
AWER_STATE.OPENED&&t.keyCode===i&&(t.shiftKey?this._firstTabStop&&Polymer.dom(t)
.localTarget===this._firstTabStop&&(t.preventDefault(),this._lastTabStop.focus()
):this._lastTabStop&&Polymer.dom(t).localTarget===this._lastTabStop&&(t.preventD
efault(),this._firstTabStop.focus()))}},_openedPersistentChanged:function(){0===
this.transitionDuration&&this._resetDrawerState()},_MIN_FLING_THRESHOLD:.2,_MIN_
TRANSITION_VELOCITY:1.2,_FLING_TIMING_FUNCTION:"cubic-bezier(0.667, 1, 0.667, 1)
",_FLING_INITIAL_SLOPE:1.5,_DRAWER_STATE:{INIT:0,OPENED:1,OPENED_PERSISTENT:2,CL
OSED:3,TRACKING:4,FLINGING:5}})</script> </dom-module> <script>Polymer({is:"iron
-media-query",properties:{queryMatches:{type:Boolean,value:!1,readOnly:!0,notify
:!0},query:{type:String,observer:"queryChanged"},full:{type:Boolean,value:!1},_b
oundMQHandler:{value:function(){return this.queryHandler.bind(this)}},_mq:{value
:null}},attached:function(){this.style.display="none",this.queryChanged()},detac
hed:function(){this._remove()},_add:function(){this._mq&&this._mq.addListener(th
is._boundMQHandler)},_remove:function(){this._mq&&this._mq.removeListener(this._
boundMQHandler),this._mq=null},queryChanged:function(){this._remove();var e=this
.query;e&&(this.full||"("===e[0]||(e="("+e+")"),this._mq=window.matchMedia(e),th
is._add(),this.queryHandler(this._mq))},queryHandler:function(e){this._setQueryM
atches(e.matches)}})</script> <script>Polymer.IronResizableBehavior={properties:
{_parentResizable:{type:Object,observer:"_parentResizableChanged"},_notifyingDes
cendant:{type:Boolean,value:!1}},listeners:{"iron-request-resize-notifications":
"_onIronRequestResizeNotifications"},created:function(){this._interestedResizabl
es=[],this._boundNotifyResize=this.notifyResize.bind(this)},attached:function(){
this.fire("iron-request-resize-notifications",null,{node:this,bubbles:!0,cancela
ble:!0}),this._parentResizable||(window.addEventListener("resize",this._boundNot
ifyResize),this.notifyResize())},detached:function(){this._parentResizable?this.
_parentResizable.stopResizeNotificationsFor(this):window.removeEventListener("re
size",this._boundNotifyResize),this._parentResizable=null},notifyResize:function
(){this.isAttached&&(this._interestedResizables.forEach(function(e){this.resizer
ShouldNotify(e)&&this._notifyDescendant(e)},this),this._fireResize())},assignPar
entResizable:function(e){this._parentResizable=e},stopResizeNotificationsFor:fun
ction(e){var i=this._interestedResizables.indexOf(e);i>-1&&(this._interestedResi
zables.splice(i,1),this.unlisten(e,"iron-resize","_onDescendantIronResize"))},re
sizerShouldNotify:function(e){return!0},_onDescendantIronResize:function(e){retu
rn this._notifyingDescendant?void e.stopPropagation():void(Polymer.Settings.useS
hadow||this._fireResize())},_fireResize:function(){this.fire("iron-resize",null,
{node:this,bubbles:!1})},_onIronRequestResizeNotifications:function(e){var i=e.p
ath?e.path[0]:e.target;i!==this&&(this._interestedResizables.indexOf(i)===-1&&(t
his._interestedResizables.push(i),this.listen(i,"iron-resize","_onDescendantIron
Resize")),i.assignParentResizable(this),this._notifyDescendant(i),e.stopPropagat
ion())},_parentResizableChanged:function(e){e&&window.removeEventListener("resiz
e",this._boundNotifyResize)},_notifyDescendant:function(e){this.isAttached&&(thi
s._notifyingDescendant=!0,e.notifyResize(),this._notifyingDescendant=!1)}}</scri
pt> <dom-module id="app-drawer-layout" assetpath="/res/imp/bower_components/app-
layout/app-drawer-layout/"> <template> <style>:host{display:block}:host([fullble
ed]){@apply(--layout-fit)}#contentContainer{position:relative;height:100%;transi
tion:var(--app-drawer-layout-content-transition,none)}#contentContainer:not(.nar
row)>::content [drawer-toggle]{display:none}</style> <div id="contentContainer">
<content select=":not(app-drawer)"></content> </div> <content id="drawerContent
" select="app-drawer"></content> <iron-media-query query="[[_computeMediaQuery(f
orceNarrow, responsiveWidth)]]" on-query-matches-changed="_onQueryMatchesChanged
"></iron-media-query> </template> <script>Polymer({is:"app-drawer-layout",behavi
ors:[Polymer.IronResizableBehavior],properties:{forceNarrow:{type:Boolean,value:
!1},responsiveWidth:{type:String,value:"640px"},narrow:{type:Boolean,readOnly:!0
,notify:!0},openedWhenNarrow:{type:Boolean,value:!1}},listeners:{tap:"_tapHandle
r","app-drawer-attached":"_resetDrawerState","app-drawer-reset-layout":"resetLay
out","iron-resize":"resetLayout"},observers:["resetLayout(narrow, isAttached)","
_narrowChanged(narrow, isAttached)"],get drawer(){return Polymer.dom(this.$.draw
erContent).getDistributedNodes()[0]},_tapHandler:function(e){var t=Polymer.dom(e
).localTarget;if(t&&t.hasAttribute("drawer-toggle")){var r=this.drawer;r&&!r.per
sistent&&r.toggle()}},resetLayout:function(){this.debounce("_resetLayout",functi
on(){var e=this.drawer,t=this.$.contentContainer;if(this.narrow||!e)t.style.marg
inLeft="",t.style.marginRight="";else{var r=e.getWidth();"right"==e.position?(t.
style.marginLeft="",t.style.marginRight=r+"px"):(t.style.marginLeft=r+"px",t.sty
le.marginRight="")}})},_resetDrawerState:function(){this.debounce("_resetDrawerS
tate",function(){var e=this.drawer;e&&(this.narrow?(e.opened=this.openedWhenNarr
ow,e.persistent=!1):e.opened=e.persistent=!0)})},_narrowChanged:function(e){this
.toggleClass("narrow",e,this.$.contentContainer),this._resetDrawerState(),this.n
otifyResize()},_onQueryMatchesChanged:function(e){this._setNarrow(e.detail.value
)},_computeMediaQuery:function(e,t){return e?"(min-width: 0px)":"(max-width: "+t
+")"}})</script> </dom-module> <dom-module id="app-grid-style" assetpath="/res/i
mp/bower_components/app-layout/app-grid/"> <template> <style>:host{--app-grid-ex
pandible-item:{-webkit-flex-basis:calc((100% - .1px)/ var(--app-grid-columns,1)
* var(--app-grid-expandible-item-columns,1) - var(--app-grid-gutter,0px))!import
ant;flex-basis:calc((100% - .1px)/ var(--app-grid-columns,1) * var(--app-grid-ex
pandible-item-columns,1) - var(--app-grid-gutter,0px))!important;max-width:calc(
(100% - .1px)/ var(--app-grid-columns,1) * var(--app-grid-expandible-item-column
s,1) - var(--app-grid-gutter,0px))!important};}.app-grid{display:-ms-flexbox;dis
play:-webkit-flex;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row
;flex-direction:row;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap;pad
ding-top:var(--app-grid-gutter,0);padding-left:var(--app-grid-gutter,0);box-sizi
ng:border-box}.app-grid>*{-ms-flex:1 1 100%;-webkit-flex:1;flex:1;-webkit-flex-b
asis:calc((100% - .1px - (var(--app-grid-gutter,0px) * var(--app-grid-columns,1)
))/ var(--app-grid-columns,1));flex-basis:calc((100% - .1px - (var(--app-grid-gu
tter,0px) * var(--app-grid-columns,1)))/ var(--app-grid-columns,1));max-width:ca
lc((100% - .1px - (var(--app-grid-gutter,0px) * var(--app-grid-columns,1)))/ var
(--app-grid-columns,1));margin-bottom:var(--app-grid-gutter,0);margin-right:var(
--app-grid-gutter,0);height:var(--app-grid-item-height);box-sizing:border-box}.a
pp-grid[has-aspect-ratio]>*{position:relative}.app-grid[has-aspect-ratio]>::befo
re{display:block;content:"";padding-top:var(--app-grid-item-height,100%)}.app-gr
id[has-aspect-ratio]>*>*{position:absolute;top:0;right:0;bottom:0;left:0}</style
> </template> </dom-module> <script>Polymer.IronScrollTargetBehavior={properties
:{scrollTarget:{type:HTMLElement,value:function(){return this._defaultScrollTarg
et}}},observers:["_scrollTargetChanged(scrollTarget, isAttached)"],_shouldHaveLi
stener:!0,_scrollTargetChanged:function(t,l){this._oldScrollTarget&&(this._toggl
eScrollListener(!1,this._oldScrollTarget),this._oldScrollTarget=null),l&&("docum
ent"===t?this.scrollTarget=this._doc:"string"==typeof t?this.scrollTarget=this.d
omHost?this.domHost.$[t]:Polymer.dom(this.ownerDocument).querySelector("#"+t):th
is._isValidScrollTarget()&&(this._boundScrollHandler=this._boundScrollHandler||t
his._scrollHandler.bind(this),this._oldScrollTarget=t,this._toggleScrollListener
(this._shouldHaveListener,t)))},_scrollHandler:function(){},get _defaultScrollTa
rget(){return this._doc},get _doc(){return this.ownerDocument.documentElement},g
et _scrollTop(){return this._isValidScrollTarget()?this.scrollTarget===this._doc
?window.pageYOffset:this.scrollTarget.scrollTop:0},get _scrollLeft(){return this
._isValidScrollTarget()?this.scrollTarget===this._doc?window.pageXOffset:this.sc
rollTarget.scrollLeft:0},set _scrollTop(t){this.scrollTarget===this._doc?window.
scrollTo(window.pageXOffset,t):this._isValidScrollTarget()&&(this.scrollTarget.s
crollTop=t)},set _scrollLeft(t){this.scrollTarget===this._doc?window.scrollTo(t,
window.pageYOffset):this._isValidScrollTarget()&&(this.scrollTarget.scrollLeft=t
)},scroll:function(t,l){this.scrollTarget===this._doc?window.scrollTo(t,l):this.
_isValidScrollTarget()&&(this.scrollTarget.scrollLeft=t,this.scrollTarget.scroll
Top=l)},get _scrollTargetWidth(){return this._isValidScrollTarget()?this.scrollT
arget===this._doc?window.innerWidth:this.scrollTarget.offsetWidth:0},get _scroll
TargetHeight(){return this._isValidScrollTarget()?this.scrollTarget===this._doc?
window.innerHeight:this.scrollTarget.offsetHeight:0},_isValidScrollTarget:functi
on(){return this.scrollTarget instanceof HTMLElement},_toggleScrollListener:func
tion(t,l){if(this._boundScrollHandler){var e=l===this._doc?window:l;t?e.addEvent
Listener("scroll",this._boundScrollHandler):e.removeEventListener("scroll",this.
_boundScrollHandler)}},toggleScrollListener:function(t){this._shouldHaveListener
=t,this._toggleScrollListener(t,this.scrollTarget)}}</script> <script>Polymer.Ap
pScrollEffectsBehavior=[Polymer.IronScrollTargetBehavior,{properties:{effects:{t
ype:String},effectsConfig:{type:Object,value:function(){return{}}},disabled:{typ
e:Boolean,reflectToAttribute:!0,value:!1},threshold:{type:Number,value:0},thresh
oldTriggered:{type:Boolean,notify:!0,readOnly:!0,reflectToAttribute:!0}},observe
rs:["_effectsChanged(effects, effectsConfig, isAttached)"],_updateScrollState:fu
nction(){},isOnScreen:function(){return!1},isContentBelow:function(){return!1},_
effectsRunFn:null,_effects:null,get _clampedScrollTop(){return Math.max(0,this._
scrollTop)},detached:function(){this._tearDownEffects()},createEffect:function(t
,e){var f=Polymer.AppLayout._scrollEffects[t];if(!f)throw new ReferenceError(thi
s._getUndefinedMsg(t));var n=this._boundEffect(f,e||{});return n.setUp(),n},_eff
ectsChanged:function(t,e,f){this._tearDownEffects(),""!==t&&f&&(t.split(" ").for
Each(function(t){var f;""!==t&&((f=Polymer.AppLayout._scrollEffects[t])?this._ef
fects.push(this._boundEffect(f,e[t])):this._warn(this._logf("_effectsChanged",th
is._getUndefinedMsg(t))))},this),this._setUpEffect())},_layoutIfDirty:function()
{return this.offsetWidth},_boundEffect:function(t,e){e=e||{};var f=parseFloat(e.
startsAt||0),n=parseFloat(e.endsAt||1),s=n-f,i=function(){},r=0===f&&1===n?t.run
:function(e,n){t.run.call(this,Math.max(0,(e-f)/s),n)};return{setUp:t.setUp?t.se
tUp.bind(this,e):i,run:t.run?r.bind(this):i,tearDown:t.tearDown?t.tearDown.bind(
this):i}},_setUpEffect:function(){this.isAttached&&this._effects&&(this._effects
RunFn=[],this._effects.forEach(function(t){t.setUp()!==!1&&this._effectsRunFn.pu
sh(t.run)},this))},_tearDownEffects:function(){this._effects&&this._effects.forE
ach(function(t){t.tearDown()}),this._effectsRunFn=[],this._effects=[]},_runEffec
ts:function(t,e){this._effectsRunFn&&this._effectsRunFn.forEach(function(f){f(t,
e)})},_scrollHandler:function(){if(!this.disabled){var t=this._clampedScrollTop;
this._updateScrollState(t),this.threshold>0&&this._setThresholdTriggered(t>=this
.threshold)}},_getDOMRef:function(t){this._warn(this._logf("_getDOMRef","`"+t+"`
is undefined"))},_getUndefinedMsg:function(t){return"Scroll effect `"+t+"` is u
ndefined. Did you forget to import app-layout/app-scroll-effects/effects/"+t+".h
tml ?"}}]</script> <dom-module id="app-header" assetpath="/res/imp/bower_compone
nts/app-layout/app-header/"> <template> <style>:host{position:relative;display:b
lock;transition-timing-function:linear;transition-property:-webkit-transform;tra
nsition-property:transform}:host::after{position:absolute;right:0;bottom:-5px;le
ft:0;width:100%;height:5px;content:"";transition:opacity .4s;pointer-events:none
;opacity:0;box-shadow:inset 0 5px 6px -3px rgba(0,0,0,.4);will-change:opacity;@a
pply(--app-header-shadow)}:host([shadow])::after{opacity:1}::content [condensed-
title],::content [main-title]{-webkit-transform-origin:left top;transform-origin
:left top;white-space:nowrap}::content [condensed-title]{opacity:0}#background{@
apply(--layout-fit);overflow:hidden}#backgroundFrontLayer,#backgroundRearLayer{@
apply(--layout-fit);height:100%;pointer-events:none;background-size:cover}#backg
roundFrontLayer{@apply(--app-header-background-front-layer)}#backgroundRearLayer
{opacity:0;@apply(--app-header-background-rear-layer)}#contentContainer{position
:relative;width:100%;height:100%}:host([disabled]),:host([disabled]) #background
FrontLayer,:host([disabled]) #backgroundRearLayer,:host([disabled]) ::content>[s
ticky],:host([disabled]) ::content>app-toolbar:first-of-type,:host([disabled])::
after,:host-context(.app-layout-silent-scroll),:host-context(.app-layout-silent-
scroll) #backgroundFrontLayer,:host-context(.app-layout-silent-scroll) #backgrou
ndRearLayer,:host-context(.app-layout-silent-scroll) ::content>[sticky],:host-co
ntext(.app-layout-silent-scroll) ::content>app-toolbar:first-of-type,:host-conte
xt(.app-layout-silent-scroll)::after{transition:none!important}</style> <div id=
"contentContainer"> <content id="content"></content> </div> </template> <script>
Polymer({is:"app-header",behaviors:[Polymer.AppScrollEffectsBehavior,Polymer.Iro
nResizableBehavior],properties:{condenses:{type:Boolean,value:!1},fixed:{type:Bo
olean,value:!1},reveals:{type:Boolean,value:!1},shadow:{type:Boolean,reflectToAt
tribute:!0,value:!1}},observers:["resetLayout(isAttached, condenses, fixed)"],li
steners:{"iron-resize":"_resizeHandler"},_height:0,_dHeight:0,_stickyElTop:0,_st
ickyEl:null,_top:0,_progress:0,_wasScrollingDown:!1,_initScrollTop:0,_initTimest
amp:0,_lastTimestamp:0,_lastScrollTop:0,get _maxHeaderTop(){return this.fixed?th
is._dHeight:this._height+5},_getStickyEl:function(){for(var t,e=Polymer.dom(this
.$.content).getDistributedNodes(),i=0;i<e.length;i++)if(e[i].nodeType===Node.ELE
MENT_NODE){var s=e[i];if(s.hasAttribute("sticky")){t=s;break}t||(t=s)}return t},
resetLayout:function(){this.fire("app-header-reset-layout"),this.debounce("_rese
tLayout",function(){if(0!==this.offsetWidth||0!==this.offsetHeight){var t=this._
clampedScrollTop,e=0===this._height||0===t,i=this.disabled;this._height=this.off
setHeight,this._stickyEl=this._getStickyEl(),this.disabled=!0,e||this._updateScr
ollState(0,!0),this._mayMove()?this._dHeight=this._stickyEl?this._height-this._s
tickyEl.offsetHeight:0:this._dHeight=0,this._stickyElTop=this._stickyEl?this._st
ickyEl.offsetTop:0,this._setUpEffect(),e?this._updateScrollState(t,!0):(this._up
dateScrollState(this._lastScrollTop,!0),this._layoutIfDirty()),this.disabled=i}}
)},_updateScrollState:function(t,e){if(0!==this._height){var i=0,s=0,o=this._top
,r=(this._lastScrollTop,this._maxHeaderTop),h=t-this._lastScrollTop,n=Math.abs(h
),a=t>this._lastScrollTop,l=Date.now();if(this._mayMove()&&(s=this._clamp(this.r
eveals?o+h:t,0,r)),t>=this._dHeight&&(s=this.condenses&&!this.fixed?Math.max(thi
s._dHeight,s):s,this.style.transitionDuration="0ms"),this.reveals&&!this.disable
d&&n<100&&((l-this._initTimestamp>300||this._wasScrollingDown!==a)&&(this._initS
crollTop=t,this._initTimestamp=l),t>=r))if(Math.abs(this._initScrollTop-t)>30||n
>10){a&&t>=r?s=r:!a&&t>=this._dHeight&&(s=this.condenses&&!this.fixed?this._dHei
ght:0);var _=h/(l-this._lastTimestamp);this.style.transitionDuration=this._clamp
((s-o)/_,0,300)+"ms"}else s=this._top;i=0===this._dHeight?t>0?1:0:s/this._dHeigh
t,e||(this._lastScrollTop=t,this._top=s,this._wasScrollingDown=a,this._lastTimes
tamp=l),(e||i!==this._progress||o!==s||0===t)&&(this._progress=i,this._runEffect
s(i,s),this._transformHeader(s))}},_mayMove:function(){return this.condenses||!t
his.fixed},willCondense:function(){return this._dHeight>0&&this.condenses},isOnS
creen:function(){return 0!==this._height&&this._top<this._height},isContentBelow
:function(){return 0===this._top?this._clampedScrollTop>0:this._clampedScrollTop
-this._maxHeaderTop>=0},_transformHeader:function(t){this.translate3d(0,-t+"px",
0),this._stickyEl&&this.condenses&&t>=this._stickyElTop&&this.translate3d(0,Math
.min(t,this._dHeight)-this._stickyElTop+"px",0,this._stickyEl)},_resizeHandler:f
unction(){this.resetLayout()},_clamp:function(t,e,i){return Math.min(i,Math.max(
e,t))},_ensureBgContainers:function(){this._bgContainer||(this._bgContainer=docu
ment.createElement("div"),this._bgContainer.id="background",this._bgRear=documen
t.createElement("div"),this._bgRear.id="backgroundRearLayer",this._bgContainer.a
ppendChild(this._bgRear),this._bgFront=document.createElement("div"),this._bgFro
nt.id="backgroundFrontLayer",this._bgContainer.appendChild(this._bgFront),Polyme
r.dom(this.root).insertBefore(this._bgContainer,this.$.contentContainer))},_getD
OMRef:function(t){switch(t){case"backgroundFrontLayer":return this._ensureBgCont
ainers(),this._bgFront;case"backgroundRearLayer":return this._ensureBgContainers
(),this._bgRear;case"background":return this._ensureBgContainers(),this._bgConta
iner;case"mainTitle":return Polymer.dom(this).querySelector("[main-title]");case
"condensedTitle":return Polymer.dom(this).querySelector("[condensed-title]")}ret
urn null},getScrollState:function(){return{progress:this._progress,top:this._top
}}})</script> </dom-module> <dom-module id="app-header-layout" assetpath="/res/i
mp/bower_components/app-layout/app-header-layout/"> <template> <style>:host{disp
lay:block;position:relative;z-index:0}:host>::content>app-header{@apply(--layout
-fixed-top);z-index:1}:host([has-scrolling-region]){height:100%}:host([has-scrol
ling-region])>::content>app-header{position:absolute}:host([has-scrolling-region
])>#contentContainer{@apply(--layout-fit);overflow-y:auto;-webkit-overflow-scrol
ling:touch}:host([fullbleed]){@apply(--layout-vertical);@apply(--layout-fit)}:ho
st([fullbleed])>#contentContainer{@apply(--layout-vertical);@apply(--layout-flex
)}#contentContainer{position:relative;z-index:0}</style> <content id="header" se
lect="app-header"></content> <div id="contentContainer"> <content></content> </d
iv> </template> <script>Polymer({is:"app-header-layout",behaviors:[Polymer.IronR
esizableBehavior],properties:{hasScrollingRegion:{type:Boolean,value:!1,reflectT
oAttribute:!0}},listeners:{"iron-resize":"_resizeHandler","app-header-reset-layo
ut":"resetLayout"},observers:["resetLayout(isAttached, hasScrollingRegion)"],get
header(){return Polymer.dom(this.$.header).getDistributedNodes()[0]},resetLayou
t:function(){this._updateScroller(),this.debounce("_resetLayout",this._updateCon
tentPosition)},_updateContentPosition:function(){var e=this.header;if(this.isAtt
ached&&e){var t=e.offsetHeight;if(this.hasScrollingRegion)e.style.left="",e.styl
e.right="";else{var i=this.getBoundingClientRect(),o=document.documentElement.cl
ientWidth-i.right;e.style.left=i.left+"px",e.style.right=o+"px"}var n=this.$.con
tentContainer.style;e.fixed&&!e.willCondense()&&this.hasScrollingRegion?(n.margi
nTop=t+"px",n.paddingTop=""):(n.paddingTop=t+"px",n.marginTop="")}},_updateScrol
ler:function(){if(this.isAttached){var e=this.header;e&&(e.scrollTarget=this.has
ScrollingRegion?this.$.contentContainer:this.ownerDocument.documentElement)}},_r
esizeHandler:function(){this.resetLayout()}})</script> </dom-module> <dom-module
id="app-scrollpos-control" assetpath="/res/imp/bower_components/app-layout/app-
scrollpos-control/"> <script>Polymer({is:"app-scrollpos-control",behaviors:[Poly
mer.IronScrollTargetBehavior],properties:{selected:{type:String,observer:"_selec
tedChanged"},reset:{type:Boolean,value:!1}},observers:["_updateScrollPos(selecte
d, reset)"],created:function(){this._scrollposMap={}},_selectedChanged:function(
e,s){null!=s&&(this._scrollposMap[s]={x:this._scrollLeft,y:this._scrollTop})},_u
pdateScrollPos:function(e,s){this.debounce("_updateScrollPos",function(){var e=t
his._scrollposMap[this.selected];null==e||this.reset?this.scroll(0,0):this.scrol
l(e.x,e.y)})}})</script> </dom-module> <dom-module id="app-toolbar" assetpath="/
res/imp/bower_components/app-layout/app-toolbar/"> <template> <style>:host{@appl
y(--layout-horizontal);@apply(--layout-center);position:relative;height:64px;pad
ding:0 16px;pointer-events:none;font-size:var(--app-toolbar-font-size,20px)}::co
ntent>*{pointer-events:auto}::content>paper-icon-button{font-size:0}::content>[c
ondensed-title],::content>[main-title]{pointer-events:none;@apply(--layout-flex)
}::content>[bottom-item]{position:absolute;right:0;bottom:0;left:0}::content>[to
p-item]{position:absolute;top:0;right:0;left:0}::content>[spacer]{margin-left:64
px}</style> <content></content> </template> <script>Polymer({is:"app-toolbar"})<
/script> </dom-module> <dom-module id="app-box" assetpath="/res/imp/bower_compon
ents/app-layout/app-box/"> <template> <style>:host{position:relative;display:blo
ck}#background{@apply(--layout-fit);overflow:hidden;height:100%}#backgroundFront
Layer{min-height:100%;pointer-events:none;background-size:cover;@apply(--app-box
-background-front-layer)}#contentContainer{position:relative;width:100%;height:1
00%}:host([disabled]),:host([disabled]) #backgroundFrontLayer{transition:none!im
portant}</style> <div id="background"> <div id="backgroundFrontLayer"> <content
select="[background]"></content> </div> </div> <div id="contentContainer"> <cont
ent id="content"></content> </div> </template> <script>Polymer({is:"app-box",beh
aviors:[Polymer.AppScrollEffectsBehavior,Polymer.IronResizableBehavior],listener
s:{"iron-resize":"_resizeHandler"},_progress:0,attached:function(){this.resetLay
out()},resetLayout:function(){this.debounce("_resetLayout",function(){if(0!==thi
s.offsetWidth||0!==this.offsetHeight){var e=this._clampedScrollTop,t=this.disabl
ed;this.disabled=!0,this._elementTop=this._getElementTop(),this._elementHeight=t
his.offsetHeight,this._cachedScrollTargetHeight=this._scrollTargetHeight,this._s
etUpEffect(),this._updateScrollState(e),this.disabled=t}},1)},_getElementTop:fun
ction(){for(var e=this,t=0;e&&e!==this.scrollTarget;)t+=e.offsetTop,e=e.offsetPa
rent;return t},_updateScrollState:function(e){if(this.isOnScreen()){var t=this._
elementTop-e;this._progress=1-(t+this._elementHeight)/this._cachedScrollTargetHe
ight,this._runEffects(this._progress,e)}},isOnScreen:function(){return this._ele
mentTop<this._scrollTop+this._cachedScrollTargetHeight&&this._elementTop+this._e
lementHeight>this._scrollTop},_resizeHandler:function(){this.resetLayout()},_get
DOMRef:function(e){return"background"===e?this.$.background:"backgroundFrontLaye
r"===e?this.$.backgroundFrontLayer:void 0},getScrollState:function(){return{prog
ress:this._progress}}})</script> </dom-module> <dom-module id="iron-flex" assetp
ath="/res/imp/bower_components/iron-flex-layout/"> <template> <style>.layout.hor
izontal,.layout.vertical{display:-ms-flexbox;display:-webkit-flex;display:flex}.
layout.inline{display:-ms-inline-flexbox;display:-webkit-inline-flex;display:inl
ine-flex}.layout.horizontal{-ms-flex-direction:row;-webkit-flex-direction:row;fl
ex-direction:row}.layout.vertical{-ms-flex-direction:column;-webkit-flex-directi
on:column;flex-direction:column}.layout.wrap{-ms-flex-wrap:wrap;-webkit-flex-wra
p:wrap;flex-wrap:wrap}.layout.center,.layout.center-center{-ms-flex-align:center
;-webkit-align-items:center;align-items:center}.layout.center-center,.layout.cen
ter-justified{-ms-flex-pack:center;-webkit-justify-content:center;justify-conten
t:center}.flex{-ms-flex:1 1 0px;-webkit-flex:1;flex:1;-webkit-flex-basis:0px;fle
x-basis:0px}.flex-auto{-ms-flex:1 1 auto;-webkit-flex:1 1 auto;flex:1 1 auto}.fl
ex-none{-ms-flex:none;-webkit-flex:none;flex:none}</style> </template> </dom-mod
ule> <dom-module id="iron-flex-reverse" assetpath="/res/imp/bower_components/iro
n-flex-layout/"> <template> <style>.layout.horizontal-reverse,.layout.vertical-r
everse{display:-ms-flexbox;display:-webkit-flex;display:flex}.layout.horizontal-
reverse{-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-d
irection:row-reverse}.layout.vertical-reverse{-ms-flex-direction:column-reverse;
-webkit-flex-direction:column-reverse;flex-direction:column-reverse}.layout.wrap
-reverse{-ms-flex-wrap:wrap-reverse;-webkit-flex-wrap:wrap-reverse;flex-wrap:wra
p-reverse}</style> </template> </dom-module> <dom-module id="iron-flex-alignment
" assetpath="/res/imp/bower_components/iron-flex-layout/"> <template> <style>.la
yout.start{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-
start}.layout.center,.layout.center-center{-ms-flex-align:center;-webkit-align-i
tems:center;align-items:center}.layout.end{-ms-flex-align:end;-webkit-align-item
s:flex-end;align-items:flex-end}.layout.baseline{-ms-flex-align:baseline;-webkit
-align-items:baseline;align-items:baseline}.layout.start-justified{-ms-flex-pack
:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout.cen
ter-center,.layout.center-justified{-ms-flex-pack:center;-webkit-justify-content
:center;justify-content:center}.layout.end-justified{-ms-flex-pack:end;-webkit-j
ustify-content:flex-end;justify-content:flex-end}.layout.around-justified{-ms-fl
ex-pack:distribute;-webkit-justify-content:space-around;justify-content:space-ar
ound}.layout.justified{-ms-flex-pack:justify;-webkit-justify-content:space-betwe
en;justify-content:space-between}.self-start{-ms-align-self:flex-start;-webkit-a
lign-self:flex-start;align-self:flex-start}.self-center{-ms-align-self:center;-w
ebkit-align-self:center;align-self:center}.self-end{-ms-align-self:flex-end;-web
kit-align-self:flex-end;align-self:flex-end}.self-stretch{-ms-align-self:stretch
;-webkit-align-self:stretch;align-self:stretch}.self-baseline{-ms-align-self:bas
eline;-webkit-align-self:baseline;align-self:baseline}; .layout.start-aligned{-m
s-flex-line-pack:start;-ms-align-content:flex-start;-webkit-align-content:flex-s
tart;align-content:flex-start}.layout.end-aligned{-ms-flex-line-pack:end;-ms-ali
gn-content:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layou
t.center-aligned{-ms-flex-line-pack:center;-ms-align-content:center;-webkit-alig
n-content:center;align-content:center}.layout.between-aligned{-ms-flex-line-pack
:justify;-ms-align-content:space-between;-webkit-align-content:space-between;ali
gn-content:space-between}.layout.around-aligned{-ms-flex-line-pack:distribute;-m
s-align-content:space-around;-webkit-align-content:space-around;align-content:sp
ace-around}</style> </template> </dom-module> <dom-module id="iron-flex-factors"
assetpath="/res/imp/bower_components/iron-flex-layout/"> <template> <style>.fle
x,.flex-1{-ms-flex:1 1 0px;-webkit-flex:1;flex:1;-webkit-flex-basis:0px;flex-bas
is:0px}.flex-2{-ms-flex:2;-webkit-flex:2;flex:2}.flex-3{-ms-flex:3;-webkit-flex:
3;flex:3}.flex-4{-ms-flex:4;-webkit-flex:4;flex:4}.flex-5{-ms-flex:5;-webkit-fle
x:5;flex:5}.flex-6{-ms-flex:6;-webkit-flex:6;flex:6}.flex-7{-ms-flex:7;-webkit-f
lex:7;flex:7}.flex-8{-ms-flex:8;-webkit-flex:8;flex:8}.flex-9{-ms-flex:9;-webkit
-flex:9;flex:9}.flex-10{-ms-flex:10;-webkit-flex:10;flex:10}.flex-11{-ms-flex:11
;-webkit-flex:11;flex:11}.flex-12{-ms-flex:12;-webkit-flex:12;flex:12}</style> <
/template> </dom-module> <dom-module id="iron-positioning" assetpath="/res/imp/b
ower_components/iron-flex-layout/"> <template> <style>.block{display:block}[hidd
en]{display:none!important}.invisible{visibility:hidden!important}.relative{posi
tion:relative}.fit{position:absolute;top:0;right:0;bottom:0;left:0}body.fullblee
d{margin:0;height:100vh}.scroll{-webkit-overflow-scrolling:touch;overflow:auto}.
fixed-bottom,.fixed-left,.fixed-right,.fixed-top{position:fixed}.fixed-top{top:0
;left:0;right:0}.fixed-right{top:0;right:0;bottom:0}.fixed-bottom{right:0;bottom
:0;left:0}.fixed-left{top:0;bottom:0;left:0}</style> </template> </dom-module> <
script>!function(){var e={},t={},i=null;Polymer.IronMeta=Polymer({is:"iron-meta"
,properties:{type:{type:String,value:"default",observer:"_typeChanged"},key:{typ
e:String,observer:"_keyChanged"},value:{type:Object,notify:!0,observer:"_valueCh
anged"},self:{type:Boolean,observer:"_selfChanged"},list:{type:Array,notify:!0}}
,hostAttributes:{hidden:!0},factoryImpl:function(e){if(e)for(var t in e)switch(t
){case"type":case"key":case"value":this[t]=e[t]}},created:function(){this._metaD
atas=e,this._metaArrays=t},_keyChanged:function(e,t){this._resetRegistration(t)}
,_valueChanged:function(e){this._resetRegistration(this.key)},_selfChanged:funct
ion(e){e&&(this.value=this)},_typeChanged:function(i){this._unregisterKey(this.k
ey),e[i]||(e[i]={}),this._metaData=e[i],t[i]||(t[i]=[]),this.list=t[i],this._reg
isterKeyValue(this.key,this.value)},byKey:function(e){return this._metaData&&thi
s._metaData[e]},_resetRegistration:function(e){this._unregisterKey(e),this._regi
sterKeyValue(this.key,this.value)},_unregisterKey:function(e){this._unregister(e
,this._metaData,this.list)},_registerKeyValue:function(e,t){this._register(e,t,t
his._metaData,this.list)},_register:function(e,t,i,a){e&&i&&void 0!==t&&(i[e]=t,
a.push(t))},_unregister:function(e,t,i){if(e&&t&&e in t){var a=t[e];delete t[e],
this.arrayDelete(i,a)}}}),Polymer.IronMeta.getIronMeta=function(){return null===
i&&(i=new Polymer.IronMeta),i},Polymer.IronMetaQuery=Polymer({is:"iron-meta-quer
y",properties:{type:{type:String,value:"default",observer:"_typeChanged"},key:{t
ype:String,observer:"_keyChanged"},value:{type:Object,notify:!0,readOnly:!0},lis
t:{type:Array,notify:!0}},factoryImpl:function(e){if(e)for(var t in e)switch(t){
case"type":case"key":this[t]=e[t]}},created:function(){this._metaDatas=e,this._m
etaArrays=t},_keyChanged:function(e){this._setValue(this._metaData&&this._metaDa
ta[e])},_typeChanged:function(i){this._metaData=e[i],this.list=t[i],this.key&&th
is._keyChanged(this.key)},byKey:function(e){return this._metaData&&this._metaDat
a[e]}})}()</script> <dom-module id="iron-icon" assetpath="/res/imp/bower_compone
nts/iron-icon/"> <template> <style>:host{@apply(--layout-inline);@apply(--layout
-center-center);position:relative;vertical-align:middle;fill:var(--iron-icon-fil
l-color,currentcolor);stroke:var(--iron-icon-stroke-color,none);width:var(--iron
-icon-width,24px);height:var(--iron-icon-height,24px);@apply(--iron-icon)}</styl
e> </template> <script>Polymer({is:"iron-icon",properties:{icon:{type:String},th
eme:{type:String},src:{type:String},_meta:{value:Polymer.Base.create("iron-meta"
,{type:"iconset"})}},observers:["_updateIcon(_meta, isAttached)","_updateIcon(th
eme, isAttached)","_srcChanged(src, isAttached)","_iconChanged(icon, isAttached)
"],_DEFAULT_ICONSET:"icons",_iconChanged:function(t){var i=(t||"").split(":");th
is._iconName=i.pop(),this._iconsetName=i.pop()||this._DEFAULT_ICONSET,this._upda
teIcon()},_srcChanged:function(t){this._updateIcon()},_usesIconset:function(){re
turn this.icon||!this.src},_updateIcon:function(){this._usesIconset()?(this._img
&&this._img.parentNode&&Polymer.dom(this.root).removeChild(this._img),""===this.
_iconName?this._iconset&&this._iconset.removeIcon(this):this._iconsetName&&this.
_meta&&(this._iconset=this._meta.byKey(this._iconsetName),this._iconset?(this._i
conset.applyIcon(this,this._iconName,this.theme),this.unlisten(window,"iron-icon
set-added","_updateIcon")):this.listen(window,"iron-iconset-added","_updateIcon"
))):(this._iconset&&this._iconset.removeIcon(this),this._img||(this._img=documen
t.createElement("img"),this._img.style.width="100%",this._img.style.height="100%
",this._img.draggable=!1),this._img.src=this.src,Polymer.dom(this.root).appendCh
ild(this._img))}})</script> </dom-module> <script>Polymer({is:"iron-iconset-svg"
,properties:{name:{type:String,observer:"_nameChanged"},size:{type:Number,value:
24},rtlMirroring:{type:Boolean,value:!1}},_targetIsRTL:function(e){return e&&e.n
odeType!==Node.ELEMENT_NODE&&(e=e.host),e&&"rtl"===window.getComputedStyle(e).di
rection},attached:function(){this.style.display="none"},getIconNames:function(){
return this._icons=this._createIconMap(),Object.keys(this._icons).map(function(e
){return this.name+":"+e},this)},applyIcon:function(e,t){e=e.root||e,this.remove
Icon(e);var n=this._cloneIcon(t,this.rtlMirroring&&this._targetIsRTL(e));if(n){v
ar o=Polymer.dom(e);return o.insertBefore(n,o.childNodes[0]),e._svgIcon=n}return
null},removeIcon:function(e){e=e.root||e,e._svgIcon&&(Polymer.dom(e).removeChil
d(e._svgIcon),e._svgIcon=null)},_nameChanged:function(){new Polymer.IronMeta({ty
pe:"iconset",key:this.name,value:this}),this.async(function(){this.fire("iron-ic
onset-added",this,{node:window})})},_createIconMap:function(){var e=Object.creat
e(null);return Polymer.dom(this).querySelectorAll("[id]").forEach(function(t){e[
t.id]=t}),e},_cloneIcon:function(e,t){return this._icons=this._icons||this._crea
teIconMap(),this._prepareSvgClone(this._icons[e],this.size,t)},_prepareSvgClone:
function(e,t,n){if(e){var o=e.cloneNode(!0),r=document.createElementNS("http://w
ww.w3.org/2000/svg","svg"),i=o.getAttribute("viewBox")||"0 0 "+t+" "+t,s="pointe
r-events: none; display: block; width: 100%; height: 100%;";return n&&o.hasAttri
bute("mirror-in-rtl")&&(s+="-webkit-transform:scale(-1,1);transform:scale(-1,1);
"),r.setAttribute("viewBox",i),r.setAttribute("preserveAspectRatio","xMidYMid me
et"),r.style.cssText=s,r.appendChild(o).removeAttribute("id"),r}return null}})</
script> <iron-iconset-svg name="icons" size="24"> <svg><defs> <g id="3d-rotation
"><path d="M7.52 21.48C4.25 19.94 1.91 16.76 1.55 13H.05C.56 19.16 5.71 24 12 24
l.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.3
3.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-.2
3-.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-.43C9.1 8.05 8.76 8 8.39 8c-.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-.3
2.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.09H7.5v1.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-.27H12v8h2.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-.2
6-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-.91V9.12h.97c.72 0 1.27.23 1.64.6
9.38.46.57 1.12.57 1.99v.4zM12 0l-.66.03 3.81 3.81 1.33-1.33c3.27 1.55 5.61 4.72
5.96 8.48h1.5C23.44 4.84 18.29 0 12 0z"></path></g> <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-2v6H9V9H3
V7h18v2z"></path></g> <g id="accessible"><circle cx="12" cy="4" r="2"></circle><
path d="M19 13v-2c-1.54.02-3.09-.75-4.07-1.83l-1.29-1.43c-.17-.19-.38-.34-.61-.4
5-.01 0-.01-.01-.02-.01H13c-.35-.2-.75-.3-1.19-.26C10.76 7.11 10 8.04 10 9.09V15
c0 1.1.9 2 2 2h5v5h2v-5.5c0-1.1-.9-2-2-2h-3v-3.45c1.29 1.07 3.25 1.94 5 1.95zm-6
.17 5c-.41 1.16-1.52 2-2.83 2-1.66 0-3-1.34-3-3 0-1.31.84-2.41 2-2.83V12.1c-2.28
.46-4 2.48-4 4.9 0 2.76 2.24 5 5 5 2.42 0 4.44-1.72 4.9-4h-2.07z"></path></g> <g
id="account-balance"><path d="M4 10v7h3v-7H4zm6 0v7h3v-7h-3zM2 22h19v-3H2v3zm14
-12v7h3v-7h-3zm-4.5-9L2 6v2h19V6l-9.5-5z"></path></g> <g id="account-balance-wal
let"><path d="M21 18v1c0 1.1-.9 2-2 2H5c-1.11 0-2-.9-2-2V5c0-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-2h10V8H12v8zm4-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"></path></g>
<g id="account-box"><path d="M3 5v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9
-2-2-2H5c-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.1v1H6v-1z"></path></g> <g id="account-circle
"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0
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">
</path></g> <g id="add"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path></g
> <g id="add-alert"><path d="M10.01 21.01c0 1.1.89 1.99 1.99 1.99s1.99-.89 1.99-
1.99h-3.98zm8.87-4.19V11c0-3.25-2.25-5.97-5.29-6.69v-.72C13.59 2.71 12.88 2 12 2
s-1.59.71-1.59 1.59v.72C7.37 5.03 5.12 7.75 5.12 11v5.82L3 18.94V20h18v-1.06l-2.
12-2.12zM16 13.01h-3v3h-2v-3H8V11h3V8h2v3h3v2.01z"></path></g> <g id="add-box"><
path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-
2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"></path></g> <g id="add-circle"><path
d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11h-4v4h
-2v-4H7v-2h4V7h2v4h4v2z"></path></g> <g id="add-circle-outline"><path d="M13 7h-
2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S
17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path>
</g> <g id="add-shopping-cart"><path d="M11 9h2V6h3V4h-3V1h-2v3H8v2h3v3zm-4 9c-1
.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.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.01L19.42 4h-.01l-1.1 2-2.76 5H8.53l-.13-.27L6.16 6l-.95-2-.94-2H1v2h2
l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.13 0-.25-.1
1-.25-.25z"></path></g> <g id="alarm"><path d="M22 5.72l-4.6-3.86-1.29 1.53 4.6
3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.
85.75-1.23-4-2.37V8zM12 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"></path></g> <g
id="alarm-add"><path d="M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72
l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 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
7zm1-11h-2v3H8v2h3v3h2v-3h3v-2h-3V9z"></path></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.91L9.6 6.43C10.35 6.16 11.16 6 12 6zm10-.28
l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM2.92 2.29L1.65 3.57 2.98 4.9l-1.11.93 1.4
2 1.42 1.11-.94.8.8C3.83 8.69 3 10.75 3 13c0 4.97 4.02 9 9 9 2.25 0 4.31-.83 5.8
9-2.2l2.2 2.2 1.27-1.27L3.89 3.27l-.97-.98zm13.55 16.1C15.26 19.39 13.7 20 12 20
c-3.87 0-7-3.13-7-7 0-1.7.61-3.26 1.61-4.47l9.86 9.86zM8.02 3.28L6.6 1.86l-.86.7
1 1.42 1.42.86-.71z"></path></g> <g id="alarm-on"><path d="M22 5.72l-4.6-3.86-1.
29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12 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 7zm-1.46-5.47L8.41 12.4l-1.06 1.06 3.18 3.18 6
-6-1.06-1.06-4.93 4.95z"></path></g> <g id="all-out"><path d="M16.21 4.16l4 4v-4
zm4 12l-4 4h4zm-12 4l-4-4v4zm-4-12l4-4h-4zm12.95-.95c-2.73-2.73-7.17-2.73-9.9 0s
-2.73 7.17 0 9.9 7.17 2.73 9.9 0 2.73-7.16 0-9.9zm-1.1 8.8c-2.13 2.13-5.57 2.13-
7.7 0s-2.13-5.57 0-7.7 5.57-2.13 7.7 0 2.13 5.57 0 7.7z"></path></g> <g id="andr
oid"><path d="M6 18c0 .55.45 1 1 1h1v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19
h2v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h1c.55 0 1-.45 1-1V8H6v10zM3.5 8C2
.67 8 2 8.67 2 9.5v7c0 .83.67 1.5 1.5 1.5S5 17.33 5 16.5v-7C5 8.67 4.33 8 3.5 8z
m17 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
13.85 1.23 12.95 1 12 1c-.96 0-1.86.23-2.66.63L7.85.15c-.2-.2-.51-.2-.71 0-.2.2-
.2.51 0 .71l1.31 1.31C6.97 3.26 6 5.01 6 7h12c0-1.99-.97-3.75-2.47-4.84zM10 5H9V
4h1v1zm5 0h-1V4h1v1z"></path></g> <g id="announcement"><path d="M20 2H4c-1.1 0-1
.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 9h-2V5h2v6zm0 4h-2v
-2h2v2z"></path></g> <g id="apps"><path d="M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v
-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4
zm0 6h4v-4h-4v4z"></path></g> <g id="archive"><path d="M20.54 5.23l-1.39-1.68C18
.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V1
9c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5L6.5 12H10v
-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z"></path></g> <g id="arrow-back">
<path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"></path></
g> <g id="arrow-downward"><path d="M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5
.59L4 12l8 8 8-8z"></path></g> <g id="arrow-drop-down"><path d="M7 10l5 5 5-5z">
</path></g> <g id="arrow-drop-down-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.4
8 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 12l-4-4h8l-4 4z"></path></g> <g id="arr
ow-drop-up"><path d="M7 14l5-5 5 5z"></path></g> <g id="arrow-forward"><path d="
M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"></path></g> <g id="ar
row-upward"><path d="M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z
"></path></g> <g id="aspect-ratio"><path d="M19 12h-2v3h-3v2h5v-5zM7 9h3V7H5v5h2
V9zm14-6H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm
0 16.01H3V4.99h18v14.02z"></path></g> <g id="assessment"><path d="M19 3H5c-1.1 0
-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4
0h-2V7h2v10zm4 0h-2v-4h2v4z"></path></g> <g id="assignment"><path d="M19 3h-4.18
C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h1
4c1.1 0 2-.9 2-2V5c0-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 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"></path></g> <g id="assignme
nt-ind"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 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-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 12H6v-1.4c0-2 4-3.1 6-3.1s6 1.1 6 3.1V19z"></path></g> <g id="ass
ignment-late"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 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-2zm-6 15h-2v-2
h2v2zm0-4h-2V8h2v6zm-1-9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"></path
></g> <g id="assignment-return"><path d="M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3
0-2.4.84-2.82 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-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-5v3
h4v4z"></path></g> <g id="assignment-returned"><path d="M19 3h-4.18C14.4 1.84 13
.3 1 12 1c-1.3 0-2.4.84-2.82 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-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 15l
-5-5h3V9h4v4h3l-5 5z"></path></g> <g id="assignment-turned-in"><path d="M19 3h-4
.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 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-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.41L10 14.17l6.59-6.59L18 9l-8 8z"></path></g> <g id
="attachment"><path d="M2 12.5C2 9.46 4.46 7 7.5 7H18c2.21 0 4 1.79 4 4s-1.79 4-
4 4H9.5C8.12 15 7 13.88 7 12.5S8.12 10 9.5 10H17v2H9.41c-.55 0-.55 1 0 1H18c1.1
0 2-.9 2-2s-.9-2-2-2H7.5C5.57 9 4 10.57 4 12.5S5.57 16 7.5 16H17v2H7.5C4.46 18 2
15.54 2 12.5z"></path></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.26L6.7 14.8c-.45-.83-.7-1.79-.7-2.8 0-3.31 2.6
9-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3
c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z"></path></g> <g id="backspace"><pa
th d="M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0
2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12
9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z"></path></g> <g id="
backup"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04
2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4
.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path></g> <g id="block"><path d="M12 2C
6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8
8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-
.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z"></path></g>
<g id="book"><path d="M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-
2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4z"></path></g> <g id="bookmark"><path
d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z"></path></g> <g
id="bookmark-border"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-
.9-2-2-2zm0 15l-5-2.18L7 18V5h10v13z"></path></g> <g id="bug-report"><path d="M2
0 8h-2.81c-.45-.78-1.07-1.45-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.
49 5 12 5c-.49 0-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81
8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2
.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.3
4-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z"></path></g> <g id="build">
<path d="M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C
.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.
5-.4.5-1.1.1-1.4z"></path></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.46C8.97 19.54 10.43 20 12 20c4.42 0 8-3.58
8-8h3l-4-4zM6 12c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46C15.03 4.46 13.
57 4 12 4c-4.42 0-8 3.58-8 8H1l4 4 4-4H6z"></path></g> <g id="camera-enhance"><p
ath d="M9 3L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-
.9-2-2-2h-3.17L15 3H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z
m0-1l1.25-2.75L16 13l-2.75-1.25L12 9l-1.25 2.75L8 13l2.75 1.25z"></path></g> <g
id="cancel"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53
2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.5
9 15.59 7 17 8.41 13.41 12 17 15.59z"></path></g> <g id="card-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.6
7-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.9
9.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.5
5 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.
45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 11 8.76l1-1.36 1
1.36L15.38 12 17 10.83 14.92 8H20v6z"></path></g> <g id="card-membership"><path
d="M20 2H4c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h4v5l4-2 4 2v-5h4c1.11 0 2-.89 2
-2V4c0-1.11-.89-2-2-2zm0 13H4v-2h16v2zm0-5H4V4h16v6z"></path></g> <g id="card-tr
avel"><path d="M20 6h-3V4c0-1.11-.89-2-2-2H9c-1.11 0-2 .89-2 2v2H4c-1.11 0-2 .89
-2 2v11c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zM9 4h6v2H9V4zm11
15H4v-2h16v2zm0-5H4V8h3v2h2V8h6v2h2V8h3v6z"></path></g> <g id="change-history"><
path d="M12 7.77L18.39 18H5.61L12 7.77M12 4L2 20h20L12 4z"></path></g> <g id="ch
eck"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"></path></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"></p
ath></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"></path></g> <g id=
"check-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.
52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"></path></g> <g id
="chevron-left"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path><
/g> <g id="chevron-right"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6
z"></path></g> <g id="chrome-reader-mode"><path d="M13 12h7v1.5h-7zm0-2.5h7V11h-
7zm0 5h7V16h-7zM21 4H3c-1.1 0-2 .9-2 2v13c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V6c0-1.
1-.9-2-2-2zm0 15h-9V6h9v13z"></path></g> <g id="class"><path d="M18 2H6c-1.1 0-2
.9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6
12V4z"></path></g> <g id="clear"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.4
1 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></g> <g
id="close"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.4
1 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></g> <g id="cloud"><path d="M1
9.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0
14c0 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"></path><
/g> <g id="cloud-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48
10-10S17.52 2 12 2zm4.5 14H8c-1.66 0-3-1.34-3-3s1.34-3 3-3l.14.01C8.58 8.28 10.
13 7 12 7c2.21 0 4 1.79 4 4h.5c1.38 0 2.5 1.12 2.5 2.5S17.88 16 16.5 16z"></path
></g> <g id="cloud-done"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.
6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0
-2.64-2.05-4.78-4.65-4.96zM10 17l-3.5-3.5 1.41-1.41L10 14.17 15.18 9l1.41 1.41L1
0 17z"></path></g> <g id="cloud-download"><path d="M19.35 10.04C18.67 6.59 15.64
4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.
76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-5 5-5-5h3V9h4v4h3z"></path></
g> <g id="cloud-off"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4c-1.48 0-2.85.
43-4.01 1.17l1.46 1.46C10.21 6.23 11.08 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.6
6 0 3 1.34 3 3 0 1.13-.64 2.11-1.56 2.62l1.45 1.45C23.16 18.16 24 16.68 24 15c0-
2.64-2.05-4.78-4.65-4.96zM3 5.27l2.75 2.74C2.56 8.15 0 10.77 0 14c0 3.31 2.69 6
6 6h11.73l2 2L21 20.73 4.27 4 3 5.27zM7.73 10l8 8H6c-2.21 0-4-1.79-4-4s1.79-4 4-
4h1.73z"></path></g> <g id="cloud-queue"><path d="M19.35 10.04C18.67 6.59 15.64
4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.7
6 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4
h.71C7.37 7.69 9.48 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3s-1.34
3-3 3z"></path></g> <g id="cloud-upload"><path d="M19.35 10.04C18.67 6.59 15.64
4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.
76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z"></path>
</g> <g id="code"><path d="M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l
4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"></path></g> <g id="compare-arrows"><path
d="M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z"></p
ath></g> <g id="content-copy"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H
8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h
11v14z"></path></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-4S2 3.79 2 6s1.79 4 4 4c.59 0 1.14-.13 1.64-.36L10 12l-2.36 2
.36C7.14 14.13 6.59 14 6 14c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.59-.13-1
.14-.36-1.64L12 14l7 7h3v-1L9.64 7.64zM6 8c-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.5zM19 3l-6 6 2 2 7-7V3z"></path></g> <g id="
content-paste"><path d="M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-
1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-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 18H5V4h2v3h10V4h2v16z"></path></g> <g
id="copyright"><path d="M10.08 10.86c.05-.33.16-.62.3-.87s.34-.46.59-.62c.24-.1
5.54-.22.91-.23.23.01.44.05.63.13.2.09.38.21.52.36s.25.33.34.53.13.42.14.64h1.79
c-.02-.47-.11-.9-.28-1.29s-.4-.73-.7-1.01-.66-.5-1.08-.66-.88-.23-1.39-.23c-.65
0-1.22.11-1.7.34s-.88.53-1.2.92-.56.84-.71 1.36S8 11.29 8 11.87v.27c0 .58.08 1.1
2.23 1.64s.39.97.71 1.35.72.69 1.2.91 1.05.34 1.7.34c.47 0 .91-.08 1.32-.23s.77-
.36 1.08-.63.56-.58.74-.94.29-.74.3-1.15h-1.79c-.01.21-.06.4-.15.58s-.21.33-.36.
46-.32.23-.52.3c-.19.07-.39.09-.6.1-.36-.01-.66-.08-.89-.23-.25-.16-.45-.37-.59-
.62s-.25-.55-.3-.88-.08-.67-.08-1v-.27c0-.35.03-.68.08-1.01zM12 2C6.48 2 2 6.48
2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-
8 8 3.59 8 8-3.59 8-8 8z"></path></g> <g id="create"><path d="M3 17.25V21h3.75L1
7.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.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"></path></g> <g id="create-n
ew-folder"><path d="M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h
16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z"></pa
th></g> <g id="credit-card"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.
89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"
></path></g> <g id="dashboard"><path d="M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h
-8v10zm0-18v6h8V3h-8z"></path></g> <g id="date-range"><path d="M9 11H7v2h2v-2zm4
0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c
0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z"></path></g>
<g id="delete"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-
1-1h-5l-1 1H5v2h14V4z"></path></g> <g id="description"><path d="M14 2H6c-1.1 0-1
.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4
H8v-2h8v2zm-3-5V3.5L18.5 9H13z"></path></g> <g id="dns"><path d="M20 13H4c-.55 0
-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zM7 19c-1.1 0-2
-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM20 3H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c
.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM7 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2
2z"></path></g> <g id="done"><path d="M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4
L9 16.2z"></path></g> <g id="done-all"><path d="M18 7l-1.41-1.41-6.34 6.34 1.41
1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.4
1 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z"></path></g> <g id="donut-large"><path
d="M11 5.08V2c-5 .5-9 4.81-9 10s4 9.5 9 10v-3.08c-3-.48-6-3.4-6-6.92s3-6.44 6-6
.92zM18.97 11H22c-.47-5-4-8.53-9-9v3.08C16 5.51 18.54 8 18.97 11zM13 18.92V22c5-
.47 8.53-4 9-9h-3.03c-.43 3-2.97 5.49-5.97 5.92z"></path></g> <g id="donut-small
"><path d="M11 9.16V2c-5 .5-9 4.79-9 10s4 9.5 9 10v-7.16c-1-.41-2-1.52-2-2.84s1-
2.43 2-2.84zM14.86 11H22c-.48-4.75-4-8.53-9-9v7.16c1 .3 1.52.98 1.86 1.84zM13 14
.84V22c5-.47 8.52-4.25 9-9h-7.14c-.34.86-.86 1.54-1.86 1.84z"></path></g> <g id=
"drafts"><path d="M21.99 8c0-.72-.37-1.35-.94-1.7L12 1 2.95 6.3C2.38 6.65 2 7.28
2 8v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2l-.01-10zM12 13L3.74 7.84 12 3l8.26 4.84L
12 13z"></path></g> <g id="eject"><path d="M5 17h14v2H5zm7-12L5.33 15h13.34z"></
path></g> <g id="error"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48
10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"></path></g> <g id="error-outl
ine"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 1
0C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8
3.58 8 8-3.58 8-8 8z"></path></g> <g id="event"><path d="M17 12h-5v5h5v-5zM16 1
v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1
-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"></path></g> <g id="event-seat"><path d="M4 1
8v3h3v-3h10v3h3v-6H4zm15-8h3v3h-3zM2 10h3v3H2zm15 3H7V5c0-1.1.9-2 2-2h6c1.1 0 2
.9 2 2v8z"></path></g> <g id="exit-to-app"><path d="M10.09 15.59L11.5 17l5-5-5-5
-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-
4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"></path></g> <g id="exp
and-less"><path d="M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"></path></g> <
g id="expand-more"><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"></path
></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.6
1 0 1.1-.49 1.1-1.1s-.49-1.1-1.1-1.1zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4
.48 10-10S17.52 2 12 2zm2.19 12.19L6 18l3.81-8.19L18 6l-3.81 8.19z"></path></g>
<g id="extension"><path d="M20.5 11H19V7c0-1.1-.9-2-2-2h-4V3.5C13 2.12 11.88 1 1
0.5 1S8 2.12 8 3.5V5H4c-1.1 0-1.99.9-1.99 2v3.8H3.5c1.49 0 2.7 1.21 2.7 2.7s-1.2
1 2.7-2.7 2.7H2V20c0 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.2
1 2.7 2.7V22H17c1.1 0 2-.9 2-2v-4h1.5c1.38 0 2.5-1.12 2.5-2.5S21.88 11 20.5 11z"
></path></g> <g id="face"><path d="M9 11.75c-.69 0-1.25.56-1.25 1.25s.56 1.25 1.
25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zm6 0c-.69 0-1.25.56-1.25 1.25s.56
1.25 1.25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zM12 2C6.48 2 2 6.48 2 12s4.
48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8 0-.29.02-.58.05-
.86 2.36-1.05 4.23-2.98 5.21-5.37C11.07 8.33 14.05 10 17.42 10c.78 0 1.53-.09 2.
25-.26.21.71.33 1.47.33 2.26 0 4.41-3.59 8-8 8z"></path></g> <g id="favorite"><p
ath d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3
.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86
-8.55 11.54L12 21.35z"></path></g> <g id="favorite-border"><path d="M16.5 3c-1.7
4 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86
8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3
zm-4.4 15.55l-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.
99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74
-7.9 10.05z"></path></g> <g id="feedback"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L
2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 12h-2v-2h2v2zm0-4h-2V6h2v4z"></p
ath></g> <g id="file-download"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5
z"></path></g> <g id="file-upload"><path d="M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5
z"></path></g> <g id="filter-list"><path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h
12v-2H6v2z"></path></g> <g id="find-in-page"><path d="M20 19.59V8l-6-6H6c-1.1 0-
1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c.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.75
L20 19.59zM9 13c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z"></path></g>
<g id="find-replace"><path d="M11 6c1.38 0 2.63.56 3.54 1.46L12 10h6V4l-2.05 2.
05C14.68 4.78 12.93 4 11 4c-3.53 0-6.43 2.61-6.92 6H6.1c.46-2.28 2.48-4 4.9-4zm5
.64 9.14c.66-.9 1.12-1.97 1.28-3.14H15.9c-.46 2.28-2.48 4-4.9 4-1.38 0-2.63-.56-
3.54-1.46L10 12H4v6l2.05-2.05C7.32 17.22 9.07 18 11 18c1.55 0 2.98-.51 4.14-1.36
L20 21.49 21.49 20l-4.85-4.86z"></path></g> <g id="fingerprint"><path d="M17.81
4.47c-.08 0-.16-.02-.23-.06C15.66 3.42 14 3 12.01 3c-1.98 0-3.86.47-5.57 1.41-.2
4.13-.54.04-.68-.2-.13-.24-.04-.55.2-.68C7.82 2.52 9.86 2 12.01 2c2.13 0 3.99.47
6.03 1.52.25.13.34.43.21.67-.09.18-.26.28-.44.28zM3.5 9.72c-.1 0-.2-.03-.29-.09
-.23-.16-.28-.47-.12-.7.99-1.4 2.25-2.5 3.75-3.27C9.98 4.04 14 4.03 17.15 5.65c1
.5.77 2.76 1.86 3.75 3.25.16.22.11.54-.12.7-.23.16-.54.11-.7-.12-.9-1.26-2.04-2.
25-3.39-2.94-2.87-1.47-6.54-1.47-9.4.01-1.36.7-2.5 1.7-3.4 2.96-.08.14-.23.21-.3
9.21zm6.25 12.07c-.13 0-.26-.05-.35-.15-.87-.87-1.34-1.43-2.01-2.64-.69-1.23-1.0
5-2.73-1.05-4.34 0-2.97 2.54-5.39 5.66-5.39s5.66 2.42 5.66 5.39c0 .28-.22.5-.5.5
s-.5-.22-.5-.5c0-2.42-2.09-4.39-4.66-4.39-2.57 0-4.66 1.97-4.66 4.39 0 1.44.32 2
.77.93 3.85.64 1.15 1.08 1.64 1.85 2.42.19.2.19.51 0 .71-.11.1-.24.15-.37.15zm7.
17-1.85c-1.19 0-2.24-.3-3.1-.89-1.49-1.01-2.38-2.65-2.38-4.39 0-.28.22-.5.5-.5s.
5.22.5.5c0 1.41.72 2.74 1.94 3.56.71.48 1.54.71 2.54.71.24 0 .64-.03 1.04-.1.27-
.05.53.13.58.41.05.27-.13.53-.41.58-.57.11-1.07.12-1.21.12zM14.91 22c-.04 0-.09-
.01-.13-.02-1.59-.44-2.63-1.03-3.72-2.1-1.4-1.39-2.17-3.24-2.17-5.22 0-1.62 1.38
-2.94 3.08-2.94 1.7 0 3.08 1.32 3.08 2.94 0 1.07.93 1.94 2.08 1.94s2.08-.87 2.08
-1.94c0-3.77-3.25-6.83-7.25-6.83-2.84 0-5.44 1.58-6.61 4.03-.39.81-.59 1.76-.59
2.8 0 .78.07 2.01.67 3.61.1.26-.03.55-.29.64-.26.1-.55-.04-.64-.29-.49-1.31-.73-
2.61-.73-3.96 0-1.2.23-2.29.68-3.24 1.33-2.79 4.28-4.6 7.51-4.6 4.55 0 8.25 3.51
8.25 7.83 0 1.62-1.38 2.94-3.08 2.94s-3.08-1.32-3.08-2.94c0-1.07-.93-1.94-2.08-
1.94s-2.08.87-2.08 1.94c0 1.71.66 3.31 1.87 4.51.95.94 1.86 1.46 3.27 1.85.27.07
.42.35.35.61-.05.23-.26.38-.47.38z"></path></g> <g id="flag"><path d="M14.4 6L14
4H5v17h2v-7h5.6l.4 2h7V6z"></path></g> <g id="flight-land"><path d="M2.5 19h19v
2h-19zm7.18-5.73l4.35 1.16 5.31 1.42c.8.21 1.62-.26 1.84-1.06.21-.8-.26-1.62-1.0
6-1.84l-5.31-1.42-2.76-9.02L10.12 2v8.28L5.15 8.95l-.93-2.32-1.45-.39v5.17l1.6.4
3 5.31 1.43z"></path></g> <g id="flight-takeoff"><path d="M2.5 19h19v2h-19zm19.5
7-9.36c-.21-.8-1.04-1.28-1.84-1.06L14.92 10l-6.9-6.43-1.93.51 4.14 7.17-4.97 1.3
3-1.97-1.54-1.45.39 1.82 3.16.77 1.33 1.6-.43 5.31-1.42 4.35-1.16L21 11.49c.81-.
23 1.28-1.05 1.07-1.85z"></path></g> <g id="flip-to-back"><path d="M9 7H7v2h2V7z
m0 4H7v2h2v-2zm0-8c-1.11 0-2 .9-2 2h2V3zm4 12h-2v2h2v-2zm6-12v2h2c0-1.1-.9-2-2-2
zm-6 0h-2v2h2V3zM9 17v-2H7c0 1.1.89 2 2 2zm10-4h2v-2h-2v2zm0-4h2V7h-2v2zm0 8c1.1
0 2-.9 2-2h-2v2zM5 7H3v12c0 1.1.89 2 2 2h12v-2H5V7zm10-2h2V3h-2v2zm0 12h2v-2h-2
v2z"></path></g> <g id="flip-to-front"><path d="M3 13h2v-2H3v2zm0 4h2v-2H3v2zm2
4v-2H3c0 1.1.89 2 2 2zM3 9h2V7H3v2zm12 12h2v-2h-2v2zm4-18H9c-1.11 0-2 .9-2 2v10c
0 1.1.89 2 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12H9V5h10v10zm-8 6h2v-2h-2v
2zm-4 0h2v-2H7v2z"></path></g> <g id="folder"><path d="M10 4H4c-1.1 0-1.99.9-1.9
9 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"></path></g>
<g id="folder-open"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2
2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"></path></g> <g id="fol
der-shared"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c
1.1 0 2-.9 2-2V8c0-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-2
zm4 8h-8v-1c0-1.33 2.67-2 4-2s4 .67 4 2v1z"></path></g> <g id="font-download"><p
ath d="M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0
2-.9 2-2V4c0-1.1-.9-2-2-2zm-4.05 16.5l-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.
11 13h-2.09z"></path></g> <g id="forward"><path d="M12 8V4l8 8-8 8v-4H4V8z"></pa
th></g> <g id="fullscreen"><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h
-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"></path></g> <g id="fullscreen-exit"><path d=
"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z">
</path></g> <g id="gavel"><path d="M1 21h12v2H1zM5.245 8.07l2.83-2.827 14.14 14.
142-2.828 2.828zM12.317 1l5.657 5.656-2.83 2.83-5.654-5.66zM3.825 9.485l5.657 5.
657-2.828 2.828-5.657-5.657z"></path></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.1H21v-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.28C8.95
3.69 7.31 3 6.44 3 5.12 3 3.97 4 3.72 4.25c-.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
"></path></g> <g id="get-app"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z
"></path></g> <g id="gif"><path d="M11.5 9H13v6h-1.5zM9 9H6c-.6 0-1 .5-1 1v4c0 .
5.4 1 1 1h3c.6 0 1-.5 1-1v-2H8.5v1.5h-2v-3H10V10c0-.5-.4-1-1-1zm10 1.5V9h-4.5v6H
16v-2h2v-1.5h-2v-1z"></path></g> <g id="grade"><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"></path></g> <g
id="group-work"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S1
7.52 2 12 2zM8 17.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.5zM9.5 8c0-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
S9.5 9.38 9.5 8zm6.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"></path></g> <g id="help"><path d="M12 2C6.48 2 2 6.48 2 1
2s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.
45 12.9 13 13.5 13 15h-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 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93
2.25z"></path></g> <g id="help-outline"><path d="M11 18h2v-2h-2v2zm1-16C6.48 2 2
6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.5
9-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c
0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z"></path></g> <g id="highlig
ht-off"><path d="M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.
41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 1
0 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3
.59 8-8 8z"></path></g> <g id="history"><path d="M13 3c-4.97 0-9 4.03-9 9H1l3.89
3.89.07.14L9 12H6c0-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.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5
l4.28 2.54.72-1.21-3.5-2.08V8H12z"></path></g> <g id="home"><path d="M10 20v-6h4
v6h5v-8h3L12 3 2 12h3v8z"></path></g> <g id="hourglass-empty"><path d="M6 2v6h.0
1L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6zm
10 14.5V20H8v-3.5l4-4 4 4zm-4-5l-4-4V4h8v3.5l-4 4z"></path></g> <g id="hourglass
-full"><path d="M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-
4 4-3.99-.01-.01H18V2H6z"></path></g> <g id="http"><path d="M4.5 11h-2V9H1v6h1.5
v-2.5h2V15H6V9H4.5v2zm2.5-.5h1.5V15H10v-4.5h1.5V9H7v1.5zm5.5 0H14V15h1.5v-4.5H17
V9h-4.5v1.5zm9-1.5H18v6h1.5v-2h2c.8 0 1.5-.7 1.5-1.5v-1c0-.8-.7-1.5-1.5-1.5zm0 2
.5h-2v-1h2v1z"></path></g> <g id="https"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7
3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-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-9H8.9V6c0-1.71 1.39-3.1
3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"></path></g> <g id="important-devices"><path
d="M23 11.01L18 11c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-9c0-.55
-.45-.99-1-.99zM23 20h-5v-7h5v7zM20 2H2C.89 2 0 2.89 0 4v12c0 1.1.89 2 2 2h7v2H7
v2h8v-2h-2v-2h2v-2H2V4h18v5h2V4c0-1.11-.9-2-2-2zm-8.03 7L11 6l-.97 3H7l2.47 1.76
-.94 2.91 2.47-1.8 2.47 1.8-.94-2.91L15 9h-3.03z"></path></g> <g id="inbox"><pat
h d="M19 3H4.99c-1.11 0-1.98.89-1.98 2L3 19c0 1.1.88 2 1.99 2H19c1.1 0 2-.9 2-2V
5c0-1.11-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H4.99V5H19v10z"></path><
/g> <g id="indeterminate-check-box"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9
2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"></path></g> <g id="i
nfo"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z
m1 15h-2v-6h2v6zm0-8h-2V7h2v2z"></path></g> <g id="info-outline"><path d="M11 17
h2v-6h-2v6zm1-15C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0
18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zM11 9h2V7h-2v2z"></path><
/g> <g id="input"><path d="M21 3.01H3c-1.1 0-2 .9-2 2V9h2V4.99h18v14.03H3V15H1v4
.01c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14c0-1.11-.9-2-2-2zM11 16l4-4-4-4
v3H1v2h10v3z"></path></g> <g id="invert-colors"><path d="M17.66 7.93L12 2.27 6.3
4 7.93c-3.12 3.12-3.12 8.19 0 11.31C7.9 20.8 9.95 21.58 12 21.58c2.05 0 4.1-.78
5.66-2.34 3.12-3.12 3.12-8.19 0-11.31zM12 19.59c-1.6 0-3.11-.62-4.24-1.76C6.62 1
6.69 6 15.19 6 13.59s.62-3.11 1.76-4.24L12 5.1v14.49z"></path></g> <g id="label"
><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1
.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"></path></g> <g i
d="label-outline"><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3
5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM
16 17H5V7h11l3.55 5L16 17z"></path></g> <g id="language"><path d="M11.99 2C6.47
2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2
.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.
48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69
4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.9
5c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2
.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-
3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.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.1
1 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.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"></p
ath></g> <g id="launch"><path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2
2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h
-7z"></path></g> <g id="lightbulb-outline"><path d="M9 21c0 .55.45 1 1 1h4c.55 0
1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1
1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7zm2.85 11.1
l-.85.6V16h-4v-2.3l-.85-.6C7.8 12.16 7 10.63 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0
1.63-.8 3.16-2.15 4.1z"></path></g> <g id="line-style"><path d="M3 16h5v-2H3v2zm
6.5 0h5v-2h-5v2zm6.5 0h5v-2h-5v2zM3 20h2v-2H3v2zm4 0h2v-2H7v2zm4 0h2v-2h-2v2zm4
0h2v-2h-2v2zm4 0h2v-2h-2v2zM3 12h8v-2H3v2zm10 0h8v-2h-8v2zM3 4v4h18V4H3z"></path
></g> <g id="line-weight"><path d="M3 17h18v-2H3v2zm0 3h18v-1H3v1zm0-7h18v-3H3v3
zm0-9v4h18V4H3z"></path></g> <g id="link"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3
.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8
v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5
-2.24 5-5s-2.24-5-5-5z"></path></g> <g id="list"><path d="M3 13h2v-2H3v2zm0 4h2v
-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z"></path></g> <g
id="lock"><path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v
10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-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-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3
.1v2z"></path></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-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3
.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-
2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z"></path></g> <g id="lock-outline"><path d=
"M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7
3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2
-2zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H8.9V6zM18 20H6V10h12v10z"><
/path></g> <g id="loyalty"><path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c
-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.42zM5.5 7C4.67 7 4 6.33
4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7zm11.77 8.27L13 19.54l-4.27-4.27C8.2
8 14.81 8 14.19 8 13.5c0-1.38 1.12-2.5 2.5-2.5.69 0 1.32.28 1.77.74l.73.72.73-.7
3c.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"></
path></g> <g id="mail"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h
16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"></path></g> <g id
="markunread"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0
2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"></path></g> <g id="markunr
ead-mailbox"><path d="M20 6H10v6H8V4h6V0H6v6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h
16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2z"></path></g> <g id="menu"><path d="M3 18h18v
-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"></path></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"></path></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"></path></g> <g id="motorcycle"><path d="M19.44 9.03L15.41 5H11v2h3.
59l2 2H5c-2.8 0-5 2.2-5 5s2.2 5 5 5c2.46 0 4.45-1.69 4.9-4h1.65l2.77-2.77c-.21.5
4-.32 1.14-.32 1.77 0 2.8 2.2 5 5 5s5-2.2 5-5c0-2.65-1.97-4.77-4.56-4.97zM7.82 1
5C7.4 16.15 6.28 17 5 17c-1.63 0-3-1.37-3-3s1.37-3 3-3c1.28 0 2.4.85 2.82 2H5v2h
2.82zM19 17c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"></path></g> <g
id="move-to-inbox"><path d="M19 3H4.99c-1.11 0-1.98.9-1.98 2L3 19c0 1.1.88 2 1.
99 2H19c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H4
.99V5H19v10zm-3-5h-2V7h-4v3H8l4 4 4-4z"></path></g> <g id="next-week"><path d="M
20 7h-4V5c0-.55-.22-1.05-.59-1.41C15.05 3.22 14.55 3 14 3h-4c-1.1 0-2 .9-2 2v2H4
c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zM10 5h4v2h-
4V5zm1 13.5l-1-1 3-3-3-3 1-1 4 4-4 4z"></path></g> <g id="note-add"><path d="M14
2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 14h
-3v3h-2v-3H8v-2h3v-3h2v3h3v2zm-3-7V3.5L18.5 9H13z"></path></g> <g id="offline-pi
n"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm5 16H7
v-2h10v2zm-6.7-4L7 10.7l1.4-1.4 1.9 1.9 5.3-5.3L17 7.3 10.3 14z"></path></g> <g
id="opacity"><path d="M17.66 8L12 2.35 6.34 8C4.78 9.56 4 11.64 4 13.64s.78 4.11
2.34 5.67 3.61 2.35 5.66 2.35 4.1-.79 5.66-2.35S20 15.64 20 13.64 19.22 9.56 17
.66 8zM6 14c.01-2 .62-3.27 1.76-4.4L12 5.27l4.24 4.38C17.38 10.77 17.99 12 18 14
H6z"></path></g> <g id="open-in-browser"><path d="M19 4H5c-1.11 0-2 .9-2 2v12c0
1.1.89 2 2 2h4v-2H5V8h14v10h-4v2h4c1.1 0 2-.9 2-2V6c0-1.1-.89-2-2-2zm-7 6l-4 4h3
v6h2v-6h3l-4-4z"></path></g> <g id="open-in-new"><path d="M19 19H5V5h7V3H5c-1.11
0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83
1.41 1.41L19 6.41V10h2V3h-7z"></path></g> <g id="open-with"><path d="M10 9h4V6h3
l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l
5 5 5-5h-3v-3z"></path></g> <g id="pageview"><path d="M11.5 9C10.12 9 9 10.12 9
11.5s1.12 2.5 2.5 2.5 2.5-1.12 2.5-2.5S12.88 9 11.5 9zM20 4H4c-1.1 0-2 .9-2 2v12
c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-3.21 14.21l-2.91-2.91c-.69.4
4-1.51.7-2.39.7C9.01 16 7 13.99 7 11.5S9.01 7 11.5 7 16 9.01 16 11.5c0 .88-.26 1
.69-.7 2.39l2.91 2.9-1.42 1.42z"></path></g> <g id="pan-tool"><path d="M23 5.5V2
0c0 2.2-1.8 4-4 4h-7.3c-1.08 0-2.1-.43-2.85-1.19L1 14.83s1.26-1.23 1.3-1.25c.22-
.19.49-.29.79-.29.22 0 .42.06.6.16.04.01 4.31 2.46 4.31 2.46V4c0-.83.67-1.5 1.5-
1.5S11 3.17 11 4v7h1V1.5c0-.83.67-1.5 1.5-1.5S15 .67 15 1.5V11h1V2.5c0-.83.67-1.
5 1.5-1.5s1.5.67 1.5 1.5V11h1V5.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5z"></path><
/g> <g id="payment"><path d="M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2
h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"></path>
</g> <g id="perm-camera-mic"><path d="M20 5h-3.17L15 3H9L7.17 5H4c-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.91V21h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-6 8c0 1.1-.9
2-2 2s-2-.9-2-2V9c0-1.1.9-2 2-2s2 .9 2 2v4z"></path></g> <g id="perm-contact-cal
endar"><path d="M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c
1.1 0 2-.9 2-2V5c0-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 12H6v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1z"></path></g> <g id="perm-dat
a-setting"><path d="M18.99 11.5c.34 0 .67.03 1 .07L20 0 0 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.5
c-.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.1
1-.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.1
2.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"></path></g> <g id="per
m-device-information"><path d="M13 7h-2v2h2V7zm0 4h-2v6h2v-6zm4-9.99L7 1c-1.1 0-
2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10
v14z"></path></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.1S9.9 9.16 9.9 8s.94-2.1 2.1-2.1m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5
.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.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"></path></g> <g id="perm
-media"><path d="M2 6H0v5h.01L0 20c0 1.1.9 2 2 2h18v-2H2V6zm20-2h-8l-2-2H6c-1.1
0-1.99.9-1.99 2L4 16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7 15l4.5-
6 3.5 4.51 2.5-3.01L21 15H7z"></path></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.7
5-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-
1-1H4c-.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-1
zM12 3v10l3-3h6V3h-9z"></path></g> <g id="perm-scan-wifi"><path d="M12 3C6.95 3
3.15 4.85 0 7.23L12 22 24 7.25C20.85 4.87 17.05 3 12 3zm1 13h-2v-6h2v6zm-2-8V6h2
v2h-2z"></path></g> <g id="pets"><circle cx="4.5" cy="9.5" r="2.5"></circle><cir
cle cx="9" cy="5.5" r="2.5"></circle><circle cx="15" cy="5.5" r="2.5"></circle><
circle cx="19.5" cy="9.5" r="2.5"></circle><path d="M17.34 14.86c-.87-1.02-1.6-1
.89-2.48-2.91-.46-.54-1.05-1.08-1.75-1.32-.11-.04-.22-.07-.33-.09-.25-.04-.52-.0
4-.78-.04s-.53 0-.79.05c-.11.02-.22.05-.33.09-.7.24-1.28.78-1.75 1.32-.87 1.02-1
.6 1.89-2.48 2.91-1.31 1.31-2.92 2.76-2.62 4.79.29 1.02 1.02 2.03 2.33 2.32.73.1
5 3.06-.44 5.54-.44h.18c2.48 0 4.81.58 5.54.44 1.31-.29 2.04-1.31 2.33-2.32.31-2
.04-1.3-3.49-2.61-4.8z"></path></g> <g id="picture-in-picture"><path d="M19 7h-8
v6h8V7zm2-4H3c-1.1 0-2 .9-2 2v14c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98V5c0-1
.1-.9-2-2-2zm0 16.01H3V4.98h18v14.03z"></path></g> <g id="picture-in-picture-alt
"><path d="M19 11h-8v6h8v-6zm4 8V4.98C23 3.88 22.1 3 21 3H3c-1.1 0-2 .88-2 1.98V
19c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zm-2 .02H3V4.97h18v14.05z"></path></g> <g id="
play-for-work"><path d="M11 5v5.59H7.5l4.5 4.5 4.5-4.5H13V5h-2zm-5 9c0 3.31 2.69
6 6 6s6-2.69 6-6h-2c0 2.21-1.79 4-4 4s-4-1.79-4-4H6z"></path></g> <g id="polyme
r"><path d="M19 4h-4L7.11 16.63 4.5 12 9 4H5L.5 12 5 20h4l7.89-12.63L19.5 12 15
20h4l4.5-8z"></path></g> <g id="power-settings-new"><path d="M13 3h-2v10h2V3zm4.
83 2.17l-1.42 1.42C17.99 7.86 19 9.81 19 12c0 3.87-3.13 7-7 7s-7-3.13-7-7c0-2.19
1.01-4.14 2.58-5.42L6.17 5.17C4.23 6.82 3 9.26 3 12c0 4.97 4.03 9 9 9s9-4.03 9-
9c0-2.74-1.23-5.18-3.17-6.83z"></path></g> <g id="pregnant-woman"><path d="M9 4c
0-1.11.89-2 2-2s2 .89 2 2-.89 2-2 2-2-.89-2-2zm7 9c-.01-1.34-.83-2.51-2-3 0-1.66
-1.34-3-3-3s-3 1.34-3 3v7h2v5h3v-5h3v-4z"></path></g> <g id="print"><path d="M19
8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c
-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z"></path></g> <g i
d="query-builder"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22
22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3
.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"></path></g> <g id="question-a
nswer"><path d="M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0
-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z"></path></g> <g id=
"radio-button-checked"><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 18
c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></g> <g id="radio-
button-unchecked"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S
17.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"></path>
</g> <g id="receipt"><path d="M18 17H6v-2h12v2zm0-4H6v-2h12v2zm0-4H6V7h12v2zM3 2
2l1.5-1.5L6 22l1.5-1.5L9 22l1.5-1.5L12 22l1.5-1.5L15 22l1.5-1.5L18 22l1.5-1.5L21
22V2l-1.5 1.5L18 2l-1.5 1.5L15 2l-1.5 1.5L12 2l-1.5 1.5L9 2 7.5 3.5 6 2 4.5 3.5
3 2v20z"></path></g> <g id="record-voice-over"><circle cx="9" cy="9" r="4"></ci
rcle><path d="M9 15c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4zm7.76-9.64l-1.6
8 1.69c.84 1.18.84 2.71 0 3.89l1.68 1.69c2.02-2.02 2.02-5.07 0-7.27zM20.07 2l-1.
63 1.63c2.77 3.02 2.77 7.56 0 10.74L20.07 16c3.9-3.89 3.91-9.95 0-14z"></path></
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.0
5 0-1.96.54-2.5 1.35l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .3
5.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8
c0-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-1zM9 4c.55
0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.8
3 8.62 12 11 8.76l1-1.36 1 1.36L15.38 12 17 10.83 14.92 8H20v6z"></path></g> <g
id="redo"><path d="M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7
.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.
6z"></path></g> <g id="refresh"><path d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-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.78L13 11h7V4l-2.35 2.
35z"></path></g> <g id="remove"><path d="M19 13H5v-2h14v2z"></path></g> <g id="r
emove-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.5
2 2 12 2zm5 11H7v-2h10v2z"></path></g> <g id="remove-circle-outline"><path d="M7
11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm
0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path></g> <g id="re
order"><path d="M3 15h18v-2H3v2zm0 4h18v-2H3v2zm0-8h18V9H3v2zm0-6v2h18V5H3z"></p
ath></g> <g id="reply"><path d="M10 9V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-1
0-11-11z"></path></g> <g id="reply-all"><path d="M7 8V5l-7 7 7 7v-3l-4-4 4-4zm6
1V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"></path></g> <g id="report"
><path d="M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM12 17.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-2V7h2v6z"></path></g> <g id="report-problem"><path d="M1 21h22L12
2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"></path></g> <g id="restore"><path d="M13
3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-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.42C8.27 19.99 10.51 21 13 21c4.97 0 9-
4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"></path></g> <g id
="room"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.1
3-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"></path></g> <g id="rounded-corner"><path d="M19 19h2v2h-2v-2zm0-2h2
v-2h-2v2zM3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm0-4h2V3H3v2zm4 0h2V3H7v2zm8
16h2v-2h-2v2zm-4 0h2v-2h-2v2zm4 0h2v-2h-2v2zm-8 0h2v-2H7v2zm-4 0h2v-2H3v2zM21 8c
0-2.76-2.24-5-5-5h-5v2h5c1.65 0 3 1.35 3 3v5h2V8z"></path></g> <g id="rowing"><p
ath d="M8.5 14.5L4 19l1.5 1.5L9 17h2l-2.5-2.5zM15 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.
9 2-2-.9-2-2-2zm6 20.01L18 24l-2.99-3.01V19.5l-7.1-7.09c-.31.05-.61.07-.91.07v-2
.16c1.66.03 3.61-.87 4.67-2.04l1.4-1.55c.19-.21.43-.38.69-.5.29-.14.62-.23.96-.2
3h.03C15.99 6.01 17 7.02 17 8.26v5.75c0 .84-.35 1.61-.92 2.16l-3.58-3.58v-2.27c-
.63.52-1.43 1.02-2.29 1.39L16.5 18H18l3 3.01z"></path></g> <g id="save"><path d=
"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.6
6 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"></path></g> <g
id="schedule"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 1
7.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58
8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"></path></g> <g id="search"><path
d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.
91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.
99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"><
/path></g> <g id="select-all"><path d="M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4
8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1
.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2
-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h
10V7H7v10zm2-8h6v6H9V9z"></path></g> <g id="send"><path d="M2.01 21L23 12 2.01 3
2 10l15 2-15 2z"></path></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.65C14.46 2.18 14.25 2 14 2h
-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.9
8l-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.1
7-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.
65zM12 15.5c-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"></path></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-7H5c-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-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.85
c-.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.3
4 0 .43.15l1.4 2.42c.09.15.05.34-.08.45l-1.48 1.16c.03.23.05.46.05.69z"></path><
/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 9H0l4 4 4-4H5c0-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.44C8.04 20.3 9.94 21 12 21c4.97 0
9-4.03 9-9s-4.03-9-9-9z"></path></g> <g id="settings-bluetooth"><path d="M11 24h
2v-2h-2v2zm-4 0h2v-2H7v2zm8 0h2v-2h-2v2zm2.71-18.29L12 0h-1v7.59L6.41 3 5 4.41 1
0.59 10 5 15.59 6.41 17 11 12.41V20h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 3.83l1.88
1.88L13 7.59V3.83zm1.88 10.46L13 16.17v-3.76l1.88 1.88z"></path></g> <g id="sett
ings-brightness"><path d="M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9
2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02zM8 16h2.5l1.5 1.5 1.5-1.5H16v-2.5
l1.5-1.5-1.5-1.5V8h-2.5L12 6.5 10.5 8H8v2.5L6.5 12 8 13.5V16zm4-7c1.66 0 3 1.34
3 3s-1.34 3-3 3V9z"></path></g> <g id="settings-cell"><path d="M7 24h2v-2H7v2zm4
0h2v-2h-2v2zm4 0h2v-2h-2v2zM16 .01L8 0C6.9 0 6 .9 6 2v16c0 1.1.9 2 2 2h8c1.1 0
2-.9 2-2V2c0-1.1-.9-1.99-2-1.99zM16 16H8V4h8v12z"></path></g> <g id="settings-et
hernet"><path d="M7.77 6.76L6.23 5.48.82 12l5.41 6.52 1.54-1.28L3.42 12l4.35-5.2
4zM7 13h2v-2H7v2zm10-2h-2v2h2v-2zm-6 2h2v-2h-2v2zm6.77-7.52l-1.54 1.28L20.58 12l
-4.35 5.24 1.54 1.28L23.18 12l-5.41-6.52z"></path></g> <g id="settings-input-ant
enna"><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.5S9.5 10.62 9
.5 12c0 1.02.62 1.9 1.5 2.29v3.3L7.59 21 9 22.41l3-3 3 3L16.41 21 13 17.59v-3.3z
M12 1C5.93 1 1 5.93 1 12h2c0-4.97 4.03-9 9-9s9 4.03 9 9h2c0-6.07-4.93-11-11-11z"
></path></g> <g id="settings-input-component"><path d="M5 2c0-.55-.45-1-1-1s-1 .
45-1 1v4H1v6h6V6H5V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82
v-2H9v2zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1v2zM21 6V
2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v
6h6V6h-2V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z"
></path></g> <g id="settings-input-composite"><path d="M5 2c0-.55-.45-1-1-1s-1 .
45-1 1v4H1v6h6V6H5V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82
v-2H9v2zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1v2zM21 6V
2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v
6h6V6h-2V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z"
></path></g> <g id="settings-input-hdmi"><path d="M18 7V4c0-1.1-.9-2-2-2H8c-1.1
0-2 .9-2 2v3H5v6l3 6v3h8v-3l3-6V7h-1zM8 4h8v3h-2V5h-1v2h-2V5h-1v2H8V4z"></path><
/g> <g id="settings-input-svideo"><path d="M8 11.5c0-.83-.67-1.5-1.5-1.5S5 10.67
5 11.5 5.67 13 6.5 13 8 12.33 8 11.5zm7-5c0-.83-.67-1.5-1.5-1.5h-3C9.67 5 9 5.6
7 9 6.5S9.67 8 10.5 8h3c.83 0 1.5-.67 1.5-1.5zM8.5 15c-.83 0-1.5.67-1.5 1.5S7.67
18 8.5 18s1.5-.67 1.5-1.5S9.33 15 8.5 15zM12 1C5.93 1 1 5.93 1 12s4.93 11 11 11
11-4.93 11-11S18.07 1 12 1zm0 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
"></path></g> <g id="settings-overscan"><path d="M12.01 5.5L10 8h4l-1.99-2.5zM18
10v4l2.5-1.99L18 10zM6 10l-2.5 2.01L6 14v-4zm8 6h-4l2.01 2.5L14 16zm7-13H3c-1.1
0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h
18v14.02z"></path></g> <g id="settings-phone"><path d="M13 9h-2v2h2V9zm4 0h-2v2h
2V9zm3 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.01C8.7 6.45 8.5 5.25 8.5 4c0-.5
5-.45-1-1-1H4c-.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-1zM19 9v2h2V9h-2z"></path></g> <g id="settings-power"><path d="M7 24h2v-2
H7v2zm4 0h2v-2h-2v2zm2-22h-2v10h2V2zm3.56 2.44l-1.45 1.45C16.84 6.94 18 8.83 18
11c0 3.31-2.69 6-6 6s-6-2.69-6-6c0-2.17 1.16-4.06 2.88-5.12L7.44 4.44C5.36 5.88
4 8.28 4 11c0 4.42 3.58 8 8 8s8-3.58 8-8c0-2.72-1.36-5.12-3.44-6.56zM15 24h2v-2h
-2v2z"></path></g> <g id="settings-remote"><path d="M15 9H9c-.55 0-1 .45-1 1v12c
0 .55.45 1 1 1h6c.55 0 1-.45 1-1V10c0-.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 2zM7.05 6.05l1.41 1.41C9.37 6.56 10.62 6 12 6s2.63.56 3.54 1.
46l1.41-1.41C15.68 4.78 13.93 4 12 4s-3.68.78-4.95 2.05zM12 0C8.96 0 6.21 1.23 4
.22 3.22l1.41 1.41C7.26 3.01 9.51 2 12 2s4.74 1.01 6.36 2.64l1.41-1.41C17.79 1.2
3 15.04 0 12 0z"></path></g> <g id="settings-voice"><path d="M7 24h2v-2H7v2zm5-1
1c1.66 0 2.99-1.34 2.99-3L15 4c0-1.66-1.34-3-3-3S9 2.34 9 4v6c0 1.66 1.34 3 3 3z
m-1 11h2v-2h-2v2zm4 0h2v-2h-2v2zm4-14h-1.7c0 3-2.54 5.1-5.3 5.1S6.7 13 6.7 10H5c
0 3.41 2.72 6.23 6 6.72V20h2v-3.28c3.28-.49 6-3.31 6-6.72z"></path></g> <g id="s
hop"><path d="M16 6V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H2v13c0 1.11.89 2 2
2h16c1.11 0 2-.89 2-2V6h-6zm-6-2h4v2h-4V4zM9 18V9l7.5 4L9 18z"></path></g> <g i
d="shop-two"><path d="M3 9H1v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2H3V9zm15-4V3c
0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H5v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2
V5h-5zm-6-2h4v2h-4V3zm0 12V8l5.5 3-5.5 4z"></path></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.43L6.79 9H
2c-.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.27L23 10c0-.55-.45-1-1-1h-4.79zM9 9l3-4.4L15 9H9zm3 8c
-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"></path></g> <g id="shopping-cart"><
path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.
59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.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-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-
.9-2-2-2z"></path></g> <g id="sort"><path d="M3 18h6v-2H3v2zM3 6v2h18V6H3zm0 7h1
2v-2H3v2z"></path></g> <g id="speaker-notes"><path d="M20 2H4c-1.1 0-1.99.9-1.99
2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 14H6v-2h2v2zm0-3H6V9h2v2zm0-3H
6V6h2v2zm7 6h-5v-2h5v2zm3-3h-8V9h8v2zm0-3h-8V6h8v2z"></path></g> <g id="spellche
ck"><path d="M12.45 16h2.09L9.43 3H7.57L2.46 16h2.09l1.12-3h5.64l1.14 3zm-6.02-5
L8.5 5.48 10.57 11H6.43zm15.16.59l-8.09 8.09L9.83 16l-1.41 1.41 5.09 5.09L23 13l
-1.41-1.41z"></path></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"></path></g> <g id="star
-border"><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-.38L
12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"></path></g> <g id="star-half
"><path d="M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 1
8.18 21l-1.63-7.03L22 9.24zM12 15.4V6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15
.4z"></path></g> <g id="stars"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99
10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm4.24 16L12 15.45 7.77 18l1.12-4.81-
3.73-3.23 4.92-.42L12 5l1.92 4.53 4.92.42-3.73 3.23L16.23 18z"></path></g> <g id
="store"><path d="M20 4H4v2h16V4zm1 10v-2l-1-5H4l-1 5v2h1v6h10v-6h4v6h2v-6h1zm-9
4H6v-4h6v4z"></path></g> <g id="subdirectory-arrow-left"><path d="M11 9l1.42 1.
42L8.83 14H18V4h2v12H8.83l3.59 3.58L11 21l-6-6 6-6z"></path></g> <g id="subdirec
tory-arrow-right"><path d="M19 15l-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.
58L13 9l6 6z"></path></g> <g id="subject"><path d="M14 17H4v2h10v-2zm6-8H4v2h16V
9zM4 15h16v-2H4v2zM4 5v2h16V5H4z"></path></g> <g id="supervisor-account"><path d
="M16.5 12c1.38 0 2.49-1.12 2.49-2.5S17.88 7 16.5 7C15.12 7 14 8.12 14 9.5s1.12
2.5 2.5 2.5zM9 11c1.66 0 2.99-1.34 2.99-3S10.66 5 9 5C7.34 5 6 6.34 6 8s1.34 3 3
3zm7.5 3c-1.83 0-5.5.92-5.5 2.75V19h11v-2.25c0-1.83-3.67-2.75-5.5-2.75zM9 13c-2
.33 0-7 1.17-7 3.5V19h7v-2.25c0-.85.33-2.34 2.37-3.47C10.5 13.1 9.66 13 9 13z"><
/path></g> <g id="swap-horiz"><path d="M6.99 11L3 15l3.99 4v-3H14v-2H6.99v-3zM21
9l-3.99-4v3H10v2h7.01v3L21 9z"></path></g> <g id="swap-vert"><path d="M16 17.01
V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3L5 6.99h3V14h2V6.99h3L9 3z"></path></g> <g id
="swap-vertical-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48
10-10S17.52 2 12 2zM6.5 9L10 5.5 13.5 9H11v4H9V9H6.5zm11 6L14 18.5 10.5 15H13v-4
h2v4h2.5z"></path></g> <g id="system-update-alt"><path d="M12 16.5l4-4h-3v-9h-2v
9H8l4 4zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18
c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2z"></path></g> <g id="tab"><path d="M21 3H3c-1
.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h10v4
h8v10z"></path></g> <g id="tab-unselected"><path d="M1 9h2V7H1v2zm0 4h2v-2H1v2zm
0-8h2V3c-1.1 0-2 .9-2 2zm8 16h2v-2H9v2zm-8-4h2v-2H1v2zm2 4v-2H1c0 1.1.9 2 2 2zM2
1 3h-8v6h10V5c0-1.1-.9-2-2-2zm0 14h2v-2h-2v2zM9 5h2V3H9v2zM5 21h2v-2H5v2zM5 5h2V
3H5v2zm16 16c1.1 0 2-.9 2-2h-2v2zm0-8h2v-2h-2v2zm-8 8h2v-2h-2v2zm4 0h2v-2h-2v2z"
></path></g> <g id="text-format"><path d="M5 17v2h14v-2H5zm4.5-4.2h5l.9 2.2h2.1L
12.75 4h-1.5L6.5 15h2.1l.9-2.2zM12 5.98L13.87 11h-3.74L12 5.98z"></path></g> <g
id="theaters"><path d="M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H
6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2
z"></path></g> <g id="thumb-down"><path d="M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02
7.05c-.09.23-.14.47-.14.73v1.91l.01.01L1 14c0 1.1.9 2 2 2h6.31l-.95 4.57-.03.32
c0 .41.17.79.44 1.06L9.83 23l6.59-6.59c.36-.36.58-.86.58-1.41V5c0-1.1-.9-2-2-2zm
4 0v12h4V3h-4z"></path></g> <g id="thumb-up"><path d="M1 21h4V9H1v12zm22-11c0-1.
1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7
.95 7 8.45 7 9v10c0 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-.01L23 10z"></path></g> <g id="thumbs-up-down"><path d="M12
6c0-.55-.45-1-1-1H5.82l.66-3.18.02-.23c0-.31-.13-.59-.33-.8L5.38 0 .44 4.94C.17
5.21 0 5.59 0 6v6.5c0 .83.67 1.5 1.5 1.5h6.75c.62 0 1.15-.38 1.38-.91l2.26-5.29
c.07-.17.11-.36.11-.55V6zm10.5 4h-6.75c-.62 0-1.15.38-1.38.91l-2.26 5.29c-.07.17
-.11.36-.11.55V18c0 .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"></path></g> <g id="
timeline"><path d="M23 8c0 1.1-.9 2-2 2-.18 0-.35-.02-.51-.07l-3.56 3.55c.05.16.
07.34.07.52 0 1.1-.9 2-2 2s-2-.9-2-2c0-.18.02-.36.07-.52l-2.55-2.55c-.16.05-.34.
07-.52.07s-.36-.02-.52-.07l-4.55 4.56c.05.16.07.33.07.51 0 1.1-.9 2-2 2s-2-.9-2-
2 .9-2 2-2c.18 0 .35.02.51.07l4.56-4.55C8.02 9.36 8 9.18 8 9c0-1.1.9-2 2-2s2 .9
2 2c0 .18-.02.36-.07.52l2.55 2.55c.16-.05.34-.07.52-.07s.36.02.52.07l3.55-3.56C1
9.02 8.35 19 8.18 19 8c0-1.1.9-2 2-2s2 .9 2 2z"></path></g> <g id="toc"><path d=
"M3 9h14V7H3v2zm0 4h14v-2H3v2zm0 4h14v-2H3v2zm16 0h2v-2h-2v2zm0-10v2h2V7h-2zm0 6
h2v-2h-2v2z"></path></g> <g id="today"><path d="M19 3h-1V1h-2v2H8V1H6v2H5c-1.11
0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8
h14v11zM7 10h5v5H7z"></path></g> <g id="toll"><path d="M15 4c-4.42 0-8 3.58-8 8s
3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-
2.69 6-6 6zM3 12c0-2.61 1.67-4.83 4-5.65V4.26C3.55 5.15 1 8.27 1 12s2.55 6.85 6
7.74v-2.09c-2.33-.82-4-3.04-4-5.65z"></path></g> <g id="touch-app"><path d="M9 1
1.24V7.5C9 6.12 10.12 5 11.5 5S14 6.12 14 7.5v3.74c1.21-.81 2-2.18 2-3.74C16 5.0
1 13.99 3 11.5 3S7 5.01 7 7.5c0 1.56.79 2.93 2 3.74zm9.84 4.63l-4.54-2.26c-.17-.
07-.35-.11-.54-.11H13v-6c0-.83-.67-1.5-1.5-1.5S10 6.67 10 7.5v10.74l-3.43-.72c-.
08-.01-.15-.03-.24-.03-.31 0-.59.13-.79.33l-.79.8 4.94 4.94c.27.27.65.44 1.06.44
h6.79c.75 0 1.33-.55 1.44-1.28l.75-5.27c.01-.07.02-.14.02-.2 0-.62-.38-1.16-.91-
1.38z"></path></g> <g id="track-changes"><path d="M19.07 4.93l-1.41 1.41C19.1 7.
79 20 9.79 20 12c0 4.42-3.58 8-8 8s-8-3.58-8-8c0-4.08 3.05-7.44 7-7.93v2.02C8.16
6.57 6 9.03 6 12c0 3.31 2.69 6 6 6s6-2.69 6-6c0-1.66-.67-3.16-1.76-4.24l-1.41 1
.41C15.55 9.9 16 10.9 16 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.86 1.28-3.41 3-3.8
6v2.14c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V2h-1C6.48
2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-2.76-1.12-5.26-2.93-7.07z"></path><
/g> <g id="translate"><path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.1
7 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7
.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-
2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17
h-3.24z"></path></g> <g id="trending-down"><path d="M16 18l2.29-2.29-4.88-4.88-4
4L2 7.41 3.41 6l6 6 4-4 6.3 6.29L22 12v6z"></path></g> <g id="trending-flat"><p
ath d="M22 12l-4-4v3H3v2h15v3z"></path></g> <g id="trending-up"><path d="M16 6l2
.29 2.29-4.88 4.88-4-4L2 16.59 3.41 18l6-6 4 4 6.3-6.29L22 12V6z"></path></g> <g
id="turned-in"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-
2-2z"></path></g> <g id="turned-in-not"><path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5
21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15l-5-2.18L7 18V5h10v13z"></path></g> <g id="unar
chive"><path d="M20.55 5.22l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1
.15.55L3.46 5.22C3.17 5.57 3 6.01 3 6.5V19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6.5c
0-.49-.17-.93-.45-1.28zM12 9.5l5.5 5.5H14v2h-4v-2H6.5L12 9.5zM5.12 5l.82-1h12l.9
3 1H5.12z"></path></g> <g id="undo"><path d="M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7
v9h9l-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
21.08 11.03 17.15 8 12.5 8z"></path></g> <g id="unfold-less"><path d="M7.41 18.5
9L8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zm9.18-13.18L15.17 4 12 7.
17 8.83 4 7.41 5.41 12 10l4.59-4.59z"></path></g> <g id="unfold-more"><path d="M
12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1
.41L12 21l4.59-4.59L15.17 15 12 18.17z"></path></g> <g id="update"><path d="M21
10.12h-6.78l2.74-2.82c-2.73-2.7-7.15-2.8-9.88-.1-2.73 2.71-2.73 7.08 0 9.79 2.73
2.71 7.15 2.71 9.88 0C18.32 15.65 19 14.08 19 12.1h2c0 1.98-.88 4.55-2.64 6.29-
3.51 3.48-9.21 3.48-12.72 0-3.5-3.47-3.53-9.11-.02-12.58 3.51-3.47 9.14-3.47 12.
65 0L21 3v7.12zM12.5 8v4.25l3.5 2.08-.72 1.21L11 13V8h1.5z"></path></g> <g id="v
erified-user"><path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V
5l-9-4zm-2 16l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"></path></g> <g id="v
iew-agenda"><path d="M20 13H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1
-1v-6c0-.55-.45-1-1-1zm0-10H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1
-1V4c0-.55-.45-1-1-1z"></path></g> <g id="view-array"><path d="M4 18h3V5H4v13zM1
8 5v13h3V5h-3zM8 18h9V5H8v13z"></path></g> <g id="view-carousel"><path d="M7 19h
10V4H7v15zm-5-2h4V6H2v11zM18 6v11h4V6h-4z"></path></g> <g id="view-column"><path
d="M10 18h5V5h-5v13zm-6 0h5V5H4v13zM16 5v13h5V5h-5z"></path></g> <g id="view-da
y"><path d="M2 21h19v-3H2v3zM20 8H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1
-.45 1-1V9c0-.55-.45-1-1-1zM2 3v3h19V3H2z"></path></g> <g id="view-headline"><pa
th d="M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z"></path></g> <
g id="view-list"><path d="M4 14h4v-4H4v4zm0 5h4v-4H4v4zM4 9h4V5H4v4zm5 5h12v-4H9
v4zm0 5h12v-4H9v4zM9 5v4h12V5H9z"></path></g> <g id="view-module"><path d="M4 11
h5V5H4v6zm0 7h5v-6H4v6zm6 0h5v-6h-5v6zm6 0h5v-6h-5v6zm-6-7h5V5h-5v6zm6-6v6h5V5h-
5z"></path></g> <g id="view-quilt"><path d="M10 18h5v-6h-5v6zm-6 0h5V5H4v13zm12
0h5v-6h-5v6zM10 5v6h11V5H10z"></path></g> <g id="view-stream"><path d="M4 18h17v
-6H4v6zM4 5v6h17V5H4z"></path></g> <g id="view-week"><path d="M6 5H3c-.55 0-1 .4
5-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm14 0h-3c-.55 0-1 .4
5-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-7 0h-3c-.55 0-1 .4
5-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z"></path></g> <g id=
"visibility"><path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3
.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-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"></path>
</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.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78
10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.
73 3.27 3 2 4.27zM7.53 9.8l1.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.5
3.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"></path></g> <g i
d="warning"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"></path>
</g> <g id="watch-later"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-
10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"></path></g> <g id="wee
kend"><path d="M21 10c-1.1 0-2 .9-2 2v3H5v-3c0-1.1-.9-2-2-2s-2 .9-2 2v5c0 1.1.9
2 2 2h18c1.1 0 2-.9 2-2v-5c0-1.1-.9-2-2-2zm-3-5H6c-1.1 0-2 .9-2 2v2.15c1.16.41 2
1.51 2 2.82V14h12v-2.03c0-1.3.84-2.4 2-2.82V7c0-1.1-.9-2-2-2z"></path></g> <g i
d="work"><path d="M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1
.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h
-4V4h4v2z"></path></g> <g id="youtube-searched-for"><path d="M17.01 14h-.8l-.27-
.27c.98-1.14 1.57-2.61 1.57-4.23 0-3.59-2.91-6.5-6.5-6.5s-6.5 3-6.5 6.5H2l3.84 4
4.16-4H6.51C6.51 7 8.53 5 11.01 5s4.5 2.01 4.5 4.5c0 2.48-2.02 4.5-4.5 4.5-.65
0-1.26-.14-1.82-.38L7.71 15.1c.97.57 2.09.9 3.3.9 1.61 0 3.08-.59 4.22-1.57l.27.
27v.79l5.01 4.99L22 19l-4.99-5z"></path></g> <g id="zoom-in"><path d="M15.5 14h-
.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91
16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.
01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zm2.5-4h-2v2H9v-2
H7V9h2V7h1v2h2v1z"></path></g> <g id="zoom-out"><path d="M15.5 14h-.79l-.28-.27C
15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.
61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99
5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z"></path></g> </de
fs></svg> </iron-iconset-svg> <script>!function(){"use strict";function e(e,t){v
ar n="";if(e){var i=e.toLowerCase();" "===i||v.test(i)?n="space":f.test(i)?n="es
c":1==i.length?t&&!u.test(i)||(n=i):n=c.test(i)?i.replace("arrow",""):"multiply"
==i?"*":i}return n}function t(e){var t="";return e&&(e in o?t=o[e]:h.test(e)?(e=
parseInt(e.replace("U+","0x"),16),t=String.fromCharCode(e).toLowerCase()):t=e.to
LowerCase()),t}function n(e){var t="";return Number(e)&&(t=e>=65&&e<=90?String.f
romCharCode(32+e):e>=112&&e<=123?"f"+(e-112):e>=48&&e<=57?String(e-48):e>=96&&e<
=105?String(e-96):d[e]),t}function i(i,r){return i.key?e(i.key,r):i.detail&&i.de
tail.key?e(i.detail.key,r):t(i.keyIdentifier)||n(i.keyCode)||""}function r(e,t){
var n=i(t,e.hasModifiers);return n===e.key&&(!e.hasModifiers||!!t.shiftKey==!!e.
shiftKey&&!!t.ctrlKey==!!e.ctrlKey&&!!t.altKey==!!e.altKey&&!!t.metaKey==!!e.met
aKey)}function s(e){return 1===e.length?{combo:e,key:e,event:"keydown"}:e.split(
"+").reduce(function(e,t){var n=t.split(":"),i=n[0],r=n[1];return i in y?(e[y[i]
]=!0,e.hasModifiers=!0):(e.key=i,e.event=r||"keydown"),e},{combo:e.split(":").sh
ift()})}function a(e){return e.trim().split(" ").map(function(e){return s(e)})}v
ar o={"U+0008":"backspace","U+0009":"tab","U+001B":"esc","U+0020":"space","U+007
F":"del"},d={8:"backspace",9:"tab",13:"enter",27:"esc",33:"pageup",34:"pagedown"
,35:"end",36:"home",32:"space",37:"left",38:"up",39:"right",40:"down",46:"del",1
06:"*"},y={shift:"shiftKey",ctrl:"ctrlKey",alt:"altKey",meta:"metaKey"},u=/[a-z0
-9*]/,h=/U\+/,c=/^arrow/,v=/^space(bar)?/,f=/^escape$/;Polymer.IronA11yKeysBehav
ior={properties:{keyEventTarget:{type:Object,value:function(){return this}},stop
KeyboardEventPropagation:{type:Boolean,value:!1},_boundKeyHandlers:{type:Array,v
alue:function(){return[]}},_imperativeKeyBindings:{type:Object,value:function(){
return{}}}},observers:["_resetKeyEventListeners(keyEventTarget, _boundKeyHandler
s)"],keyBindings:{},registered:function(){this._prepKeyBindings()},attached:func
tion(){this._listenKeyEventListeners()},detached:function(){this._unlistenKeyEve
ntListeners()},addOwnKeyBinding:function(e,t){this._imperativeKeyBindings[e]=t,t
his._prepKeyBindings(),this._resetKeyEventListeners()},removeOwnKeyBindings:func
tion(){this._imperativeKeyBindings={},this._prepKeyBindings(),this._resetKeyEven
tListeners()},keyboardEventMatchesKeys:function(e,t){for(var n=a(t),i=0;i<n.leng
th;++i)if(r(n[i],e))return!0;return!1},_collectKeyBindings:function(){var e=this
.behaviors.map(function(e){return e.keyBindings});return e.indexOf(this.keyBindi
ngs)===-1&&e.push(this.keyBindings),e},_prepKeyBindings:function(){this._keyBind
ings={},this._collectKeyBindings().forEach(function(e){for(var t in e)this._addK
eyBinding(t,e[t])},this);for(var e in this._imperativeKeyBindings)this._addKeyBi
nding(e,this._imperativeKeyBindings[e]);for(var t in this._keyBindings)this._key
Bindings[t].sort(function(e,t){var n=e[0].hasModifiers,i=t[0].hasModifiers;retur
n n===i?0:n?-1:1})},_addKeyBinding:function(e,t){a(e).forEach(function(e){this._
keyBindings[e.event]=this._keyBindings[e.event]||[],this._keyBindings[e.event].p
ush([e,t])},this)},_resetKeyEventListeners:function(){this._unlistenKeyEventList
eners(),this.isAttached&&this._listenKeyEventListeners()},_listenKeyEventListene
rs:function(){this.keyEventTarget&&Object.keys(this._keyBindings).forEach(functi
on(e){var t=this._keyBindings[e],n=this._onKeyBindingEvent.bind(this,t);this._bo
undKeyHandlers.push([this.keyEventTarget,e,n]),this.keyEventTarget.addEventListe
ner(e,n)},this)},_unlistenKeyEventListeners:function(){for(var e,t,n,i;this._bou
ndKeyHandlers.length;)e=this._boundKeyHandlers.pop(),t=e[0],n=e[1],i=e[2],t.remo
veEventListener(n,i)},_onKeyBindingEvent:function(e,t){if(this.stopKeyboardEvent
Propagation&&t.stopPropagation(),!t.defaultPrevented)for(var n=0;n<e.length;n++)
{var i=e[n][0],s=e[n][1];if(r(i,t)&&(this._triggerKeyHandler(i,s,t),t.defaultPre
vented))return}},_triggerKeyHandler:function(e,t,n){var i=Object.create(e);i.key
boardEvent=n;var r=new CustomEvent(e.event,{detail:i,cancelable:!0});this[t].cal
l(this,r),r.defaultPrevented&&n.preventDefault()}}}()</script> <script>Polymer.I
ronControlState={properties:{focused:{type:Boolean,value:!1,notify:!0,readOnly:!
0,reflectToAttribute:!0},disabled:{type:Boolean,value:!1,notify:!0,observer:"_di
sabledChanged",reflectToAttribute:!0},_oldTabIndex:{type:Number},_boundFocusBlur
Handler:{type:Function,value:function(){return this._focusBlurHandler.bind(this)
}}},observers:["_changedControlState(focused, disabled)"],ready:function(){this.
addEventListener("focus",this._boundFocusBlurHandler,!0),this.addEventListener("
blur",this._boundFocusBlurHandler,!0)},_focusBlurHandler:function(e){if(e.target
===this)this._setFocused("focus"===e.type);else if(!this.shadowRoot){var t=Polym
er.dom(e).localTarget;this.isLightDescendant(t)||this.fire(e.type,{sourceEvent:e
},{node:this,bubbles:e.bubbles,cancelable:e.cancelable})}},_disabledChanged:func
tion(e,t){this.setAttribute("aria-disabled",e?"true":"false"),this.style.pointer
Events=e?"none":"",e?(this._oldTabIndex=this.tabIndex,this._setFocused(!1),this.
tabIndex=-1,this.blur()):void 0!==this._oldTabIndex&&(this.tabIndex=this._oldTab
Index)},_changedControlState:function(){this._controlStateChanged&&this._control
StateChanged()}}</script> <script>Polymer.IronButtonStateImpl={properties:{press
ed:{type:Boolean,readOnly:!0,value:!1,reflectToAttribute:!0,observer:"_pressedCh
anged"},toggles:{type:Boolean,value:!1,reflectToAttribute:!0},active:{type:Boole
an,value:!1,notify:!0,reflectToAttribute:!0},pointerDown:{type:Boolean,readOnly:
!0,value:!1},receivedFocusFromKeyboard:{type:Boolean,readOnly:!0},ariaActiveAttr
ibute:{type:String,value:"aria-pressed",observer:"_ariaActiveAttributeChanged"}}
,listeners:{down:"_downHandler",up:"_upHandler",tap:"_tapHandler"},observers:["_
detectKeyboardFocus(focused)","_activeChanged(active, ariaActiveAttribute)"],key
Bindings:{"enter:keydown":"_asyncClick","space:keydown":"_spaceKeyDownHandler","
space:keyup":"_spaceKeyUpHandler"},_mouseEventRe:/^mouse/,_tapHandler:function()
{this.toggles?this._userActivate(!this.active):this.active=!1},_detectKeyboardFo
cus:function(e){this._setReceivedFocusFromKeyboard(!this.pointerDown&&e)},_userA
ctivate:function(e){this.active!==e&&(this.active=e,this.fire("change"))},_downH
andler:function(e){this._setPointerDown(!0),this._setPressed(!0),this._setReceiv
edFocusFromKeyboard(!1)},_upHandler:function(){this._setPointerDown(!1),this._se
tPressed(!1)},_spaceKeyDownHandler:function(e){var t=e.detail.keyboardEvent,i=Po
lymer.dom(t).localTarget;this.isLightDescendant(i)||(t.preventDefault(),t.stopIm
mediatePropagation(),this._setPressed(!0))},_spaceKeyUpHandler:function(e){var t
=e.detail.keyboardEvent,i=Polymer.dom(t).localTarget;this.isLightDescendant(i)||
(this.pressed&&this._asyncClick(),this._setPressed(!1))},_asyncClick:function(){
this.async(function(){this.click()},1)},_pressedChanged:function(e){this._change
dButtonState()},_ariaActiveAttributeChanged:function(e,t){t&&t!=e&&this.hasAttri
bute(t)&&this.removeAttribute(t)},_activeChanged:function(e,t){this.toggles?this
.setAttribute(this.ariaActiveAttribute,e?"true":"false"):this.removeAttribute(th
is.ariaActiveAttribute),this._changedButtonState()},_controlStateChanged:functio
n(){this.disabled?this._setPressed(!1):this._changedButtonState()},_changedButto
nState:function(){this._buttonStateChanged&&this._buttonStateChanged()}},Polymer
.IronButtonState=[Polymer.IronA11yKeysBehavior,Polymer.IronButtonStateImpl]</scr
ipt> <dom-module id="paper-ripple" assetpath="/res/imp/bower_components/paper-ri
pple/"> <template> <style>:host{display:block;position:absolute;border-radius:in
herit;overflow:hidden;top:0;left:0;right:0;bottom:0;pointer-events:none}:host([a
nimating]){-webkit-transform:translate(0,0);transform:translate3d(0,0,0)}#backgr
ound,#waves,.wave,.wave-container{pointer-events:none;position:absolute;top:0;le
ft:0;width:100%;height:100%}#background,.wave{opacity:0}#waves,.wave{overflow:hi
dden}.wave,.wave-container{border-radius:50%}:host(.circle) #background,:host(.c
ircle) #waves{border-radius:50%}:host(.circle) .wave-container{overflow:hidden}<
/style> <div id="background"></div> <div id="waves"></div> </template> </dom-mod
ule> <script>!function(){function t(t){this.element=t,this.width=this.boundingRe
ct.width,this.height=this.boundingRect.height,this.size=Math.max(this.width,this
.height)}function i(t){this.element=t,this.color=window.getComputedStyle(t).colo
r,this.wave=document.createElement("div"),this.waveContainer=document.createElem
ent("div"),this.wave.style.backgroundColor=this.color,this.wave.classList.add("w
ave"),this.waveContainer.classList.add("wave-container"),Polymer.dom(this.waveCo
ntainer).appendChild(this.wave),this.resetInteractionState()}var e={distance:fun
ction(t,i,e,n){var s=t-e,o=i-n;return Math.sqrt(s*s+o*o)},now:window.performance
&&window.performance.now?window.performance.now.bind(window.performance):Date.no
w};t.prototype={get boundingRect(){return this.element.getBoundingClientRect()},
furthestCornerDistanceFrom:function(t,i){var n=e.distance(t,i,0,0),s=e.distance(
t,i,this.width,0),o=e.distance(t,i,0,this.height),a=e.distance(t,i,this.width,th
is.height);return Math.max(n,s,o,a)}},i.MAX_RADIUS=300,i.prototype={get recenter
s(){return this.element.recenters},get center(){return this.element.center},get
mouseDownElapsed(){var t;return this.mouseDownStart?(t=e.now()-this.mouseDownSta
rt,this.mouseUpStart&&(t-=this.mouseUpElapsed),t):0},get mouseUpElapsed(){return
this.mouseUpStart?e.now()-this.mouseUpStart:0},get mouseDownElapsedSeconds(){re
turn this.mouseDownElapsed/1e3},get mouseUpElapsedSeconds(){return this.mouseUpE
lapsed/1e3},get mouseInteractionSeconds(){return this.mouseDownElapsedSeconds+th
is.mouseUpElapsedSeconds},get initialOpacity(){return this.element.initialOpacit
y},get opacityDecayVelocity(){return this.element.opacityDecayVelocity},get radi
us(){var t=this.containerMetrics.width*this.containerMetrics.width,e=this.contai
nerMetrics.height*this.containerMetrics.height,n=1.1*Math.min(Math.sqrt(t+e),i.M
AX_RADIUS)+5,s=1.1-.2*(n/i.MAX_RADIUS),o=this.mouseInteractionSeconds/s,a=n*(1-M
ath.pow(80,-o));return Math.abs(a)},get opacity(){return this.mouseUpStart?Math.
max(0,this.initialOpacity-this.mouseUpElapsedSeconds*this.opacityDecayVelocity):
this.initialOpacity},get outerOpacity(){var t=.3*this.mouseUpElapsedSeconds,i=th
is.opacity;return Math.max(0,Math.min(t,i))},get isOpacityFullyDecayed(){return
this.opacity<.01&&this.radius>=Math.min(this.maxRadius,i.MAX_RADIUS)},get isRest
ingAtMaxRadius(){return this.opacity>=this.initialOpacity&&this.radius>=Math.min
(this.maxRadius,i.MAX_RADIUS)},get isAnimationComplete(){return this.mouseUpStar
t?this.isOpacityFullyDecayed:this.isRestingAtMaxRadius},get translationFraction(
){return Math.min(1,this.radius/this.containerMetrics.size*2/Math.sqrt(2))},get
xNow(){return this.xEnd?this.xStart+this.translationFraction*(this.xEnd-this.xSt
art):this.xStart},get yNow(){return this.yEnd?this.yStart+this.translationFracti
on*(this.yEnd-this.yStart):this.yStart},get isMouseDown(){return this.mouseDownS
tart&&!this.mouseUpStart},resetInteractionState:function(){this.maxRadius=0,this
.mouseDownStart=0,this.mouseUpStart=0,this.xStart=0,this.yStart=0,this.xEnd=0,th
is.yEnd=0,this.slideDistance=0,this.containerMetrics=new t(this.element)},draw:f
unction(){var t,i,e;this.wave.style.opacity=this.opacity,t=this.radius/(this.con
tainerMetrics.size/2),i=this.xNow-this.containerMetrics.width/2,e=this.yNow-this
.containerMetrics.height/2,this.waveContainer.style.webkitTransform="translate("
+i+"px, "+e+"px)",this.waveContainer.style.transform="translate3d("+i+"px, "+e+"
px, 0)",this.wave.style.webkitTransform="scale("+t+","+t+")",this.wave.style.tra
nsform="scale3d("+t+","+t+",1)"},downAction:function(t){var i=this.containerMetr
ics.width/2,n=this.containerMetrics.height/2;this.resetInteractionState(),this.m
ouseDownStart=e.now(),this.center?(this.xStart=i,this.yStart=n,this.slideDistanc
e=e.distance(this.xStart,this.yStart,this.xEnd,this.yEnd)):(this.xStart=t?t.deta
il.x-this.containerMetrics.boundingRect.left:this.containerMetrics.width/2,this.
yStart=t?t.detail.y-this.containerMetrics.boundingRect.top:this.containerMetrics
.height/2),this.recenters&&(this.xEnd=i,this.yEnd=n,this.slideDistance=e.distanc
e(this.xStart,this.yStart,this.xEnd,this.yEnd)),this.maxRadius=this.containerMet
rics.furthestCornerDistanceFrom(this.xStart,this.yStart),this.waveContainer.styl
e.top=(this.containerMetrics.height-this.containerMetrics.size)/2+"px",this.wave
Container.style.left=(this.containerMetrics.width-this.containerMetrics.size)/2+
"px",this.waveContainer.style.width=this.containerMetrics.size+"px",this.waveCon
tainer.style.height=this.containerMetrics.size+"px"},upAction:function(t){this.i
sMouseDown&&(this.mouseUpStart=e.now())},remove:function(){Polymer.dom(this.wave
Container.parentNode).removeChild(this.waveContainer)}},Polymer({is:"paper-rippl
e",behaviors:[Polymer.IronA11yKeysBehavior],properties:{initialOpacity:{type:Num
ber,value:.25},opacityDecayVelocity:{type:Number,value:.8},recenters:{type:Boole
an,value:!1},center:{type:Boolean,value:!1},ripples:{type:Array,value:function()
{return[]}},animating:{type:Boolean,readOnly:!0,reflectToAttribute:!0,value:!1},
holdDown:{type:Boolean,value:!1,observer:"_holdDownChanged"},noink:{type:Boolean
,value:!1},_animating:{type:Boolean},_boundAnimate:{type:Function,value:function
(){return this.animate.bind(this)}}},get target(){return this.keyEventTarget},ke
yBindings:{"enter:keydown":"_onEnterKeydown","space:keydown":"_onSpaceKeydown","
space:keyup":"_onSpaceKeyup"},attached:function(){11==this.parentNode.nodeType?t
his.keyEventTarget=Polymer.dom(this).getOwnerRoot().host:this.keyEventTarget=thi
s.parentNode;var t=this.keyEventTarget;this.listen(t,"up","uiUpAction"),this.lis
ten(t,"down","uiDownAction")},detached:function(){this.unlisten(this.keyEventTar
get,"up","uiUpAction"),this.unlisten(this.keyEventTarget,"down","uiDownAction"),
this.keyEventTarget=null},get shouldKeepAnimating(){for(var t=0;t<this.ripples.l
ength;++t)if(!this.ripples[t].isAnimationComplete)return!0;return!1},simulatedRi
pple:function(){this.downAction(null),this.async(function(){this.upAction()},1)}
,uiDownAction:function(t){this.noink||this.downAction(t)},downAction:function(t)
{if(!(this.holdDown&&this.ripples.length>0)){var i=this.addRipple();i.downAction
(t),this._animating||(this._animating=!0,this.animate())}},uiUpAction:function(t
){this.noink||this.upAction(t)},upAction:function(t){this.holdDown||(this.ripple
s.forEach(function(i){i.upAction(t)}),this._animating=!0,this.animate())},onAnim
ationComplete:function(){this._animating=!1,this.$.background.style.backgroundCo
lor=null,this.fire("transitionend")},addRipple:function(){var t=new i(this);retu
rn Polymer.dom(this.$.waves).appendChild(t.waveContainer),this.$.background.styl
e.backgroundColor=t.color,this.ripples.push(t),this._setAnimating(!0),t},removeR
ipple:function(t){var i=this.ripples.indexOf(t);i<0||(this.ripples.splice(i,1),t
.remove(),this.ripples.length||this._setAnimating(!1))},animate:function(){if(th
is._animating){var t,i;for(t=0;t<this.ripples.length;++t)i=this.ripples[t],i.dra
w(),this.$.background.style.opacity=i.outerOpacity,i.isOpacityFullyDecayed&&!i.i
sRestingAtMaxRadius&&this.removeRipple(i);this.shouldKeepAnimating||0!==this.rip
ples.length?window.requestAnimationFrame(this._boundAnimate):this.onAnimationCom
plete()}},_onEnterKeydown:function(){this.uiDownAction(),this.async(this.uiUpAct
ion,1)},_onSpaceKeydown:function(){this.uiDownAction()},_onSpaceKeyup:function()
{this.uiUpAction()},_holdDownChanged:function(t,i){void 0!==i&&(t?this.downActio
n():this.upAction())}})}()</script> <script>Polymer.PaperRippleBehavior={propert
ies:{noink:{type:Boolean,observer:"_noinkChanged"},_rippleContainer:{type:Object
}},_buttonStateChanged:function(){this.focused&&this.ensureRipple()},_downHandle
r:function(e){Polymer.IronButtonStateImpl._downHandler.call(this,e),this.pressed
&&this.ensureRipple(e)},ensureRipple:function(e){if(!this.hasRipple()){this._rip
ple=this._createRipple(),this._ripple.noink=this.noink;var i=this._rippleContain
er||this.root;if(i&&Polymer.dom(i).appendChild(this._ripple),e){var n=Polymer.do
m(this._rippleContainer||this),t=Polymer.dom(e).rootTarget;n.deepContains(t)&&th
is._ripple.uiDownAction(e)}}},getRipple:function(){return this.ensureRipple(),th
is._ripple},hasRipple:function(){return Boolean(this._ripple)},_createRipple:fun
ction(){return document.createElement("paper-ripple")},_noinkChanged:function(e)
{this.hasRipple()&&(this._ripple.noink=e)}}</script> <script>Polymer.PaperButton
BehaviorImpl={properties:{elevation:{type:Number,reflectToAttribute:!0,readOnly:
!0}},observers:["_calculateElevation(focused, disabled, active, pressed, receive
dFocusFromKeyboard)","_computeKeyboardClass(receivedFocusFromKeyboard)"],hostAtt
ributes:{role:"button",tabindex:"0",animated:!0},_calculateElevation:function(){
var e=1;this.disabled?e=0:this.active||this.pressed?e=4:this.receivedFocusFromKe
yboard&&(e=3),this._setElevation(e)},_computeKeyboardClass:function(e){this.togg
leClass("keyboard-focus",e)},_spaceKeyDownHandler:function(e){Polymer.IronButton
StateImpl._spaceKeyDownHandler.call(this,e),this.hasRipple()&&this.getRipple().r
ipples.length<1&&this._ripple.uiDownAction()},_spaceKeyUpHandler:function(e){Pol
ymer.IronButtonStateImpl._spaceKeyUpHandler.call(this,e),this.hasRipple()&&this.
_ripple.uiUpAction()}},Polymer.PaperButtonBehavior=[Polymer.IronButtonState,Poly
mer.IronControlState,Polymer.PaperRippleBehavior,Polymer.PaperButtonBehaviorImpl
]</script> <style is="custom-style">:root{--shadow-transition:{transition:box-sh
adow .28s cubic-bezier(.4,0,.2,1)};--shadow-none:{box-shadow:none};--shadow-elev
ation-2dp:{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0
3px 1px -2px rgba(0,0,0,.2)};--shadow-elevation-3dp:{box-shadow:0 3px 4px 0 rgba
(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12),0 3px 3px -2px rgba(0,0,0,.4)};--shadow-
elevation-4dp:{box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.1
2),0 2px 4px -1px rgba(0,0,0,.4)};--shadow-elevation-6dp:{box-shadow:0 6px 10px
0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.4)};--
shadow-elevation-8dp:{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px r
gba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.4)};--shadow-elevation-12dp:{box-shado
w:0 12px 16px 1px rgba(0,0,0,.14),0 4px 22px 3px rgba(0,0,0,.12),0 6px 7px -4px
rgba(0,0,0,.4)};--shadow-elevation-16dp:{box-shadow:0 16px 24px 2px rgba(0,0,0,.
14),0 6px 30px 5px rgba(0,0,0,.12),0 8px 10px -5px rgba(0,0,0,.4)};--shadow-elev
ation-24dp:{box-shadow:0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0
,.12),0 11px 15px -7px rgba(0,0,0,.4)};}</style> <dom-module id="paper-material-
shared-styles" assetpath="/res/imp/bower_components/paper-material/"> <template>
<style>:host{display:block;position:relative}:host([elevation="1"]){@apply(--sh
adow-elevation-2dp)}:host([elevation="2"]){@apply(--shadow-elevation-4dp)}:host(
[elevation="3"]){@apply(--shadow-elevation-6dp)}:host([elevation="4"]){@apply(--
shadow-elevation-8dp)}:host([elevation="5"]){@apply(--shadow-elevation-16dp)}</s
tyle> </template> </dom-module> <style is="custom-style">:root{--google-red-100:
#f4c7c3;--google-red-300:#e67c73;--google-red-500:#db4437;--google-red-700:#c539
29;--google-blue-100:#c6dafc;--google-blue-300:#7baaf7;--google-blue-500:#4285f4
;--google-blue-700:#3367d6;--google-green-100:#b7e1cd;--google-green-300:#57bb8a
;--google-green-500:#0f9d58;--google-green-700:#0b8043;--google-yellow-100:#fce8
b2;--google-yellow-300:#f7cb4d;--google-yellow-500:#f4b400;--google-yellow-700:#
f09300;--google-grey-100:#f5f5f5;--google-grey-300:#e0e0e0;--google-grey-500:#9e
9e9e;--google-grey-700:#616161;--paper-red-50:#ffebee;--paper-red-100:#ffcdd2;--
paper-red-200:#ef9a9a;--paper-red-300:#e57373;--paper-red-400:#ef5350;--paper-re
d-500:#f44336;--paper-red-600:#e53935;--paper-red-700:#d32f2f;--paper-red-800:#c
62828;--paper-red-900:#b71c1c;--paper-red-a100:#ff8a80;--paper-red-a200:#ff5252;
--paper-red-a400:#ff1744;--paper-red-a700:#d50000;--paper-pink-50:#fce4ec;--pape
r-pink-100:#f8bbd0;--paper-pink-200:#f48fb1;--paper-pink-300:#f06292;--paper-pin
k-400:#ec407a;--paper-pink-500:#e91e63;--paper-pink-600:#d81b60;--paper-pink-700
:#c2185b;--paper-pink-800:#ad1457;--paper-pink-900:#880e4f;--paper-pink-a100:#ff
80ab;--paper-pink-a200:#ff4081;--paper-pink-a400:#f50057;--paper-pink-a700:#c511
62;--paper-purple-50:#f3e5f5;--paper-purple-100:#e1bee7;--paper-purple-200:#ce93
d8;--paper-purple-300:#ba68c8;--paper-purple-400:#ab47bc;--paper-purple-500:#9c2
7b0;--paper-purple-600:#8e24aa;--paper-purple-700:#7b1fa2;--paper-purple-800:#6a
1b9a;--paper-purple-900:#4a148c;--paper-purple-a100:#ea80fc;--paper-purple-a200:
#e040fb;--paper-purple-a400:#d500f9;--paper-purple-a700:#aa00ff;--paper-deep-pur
ple-50:#ede7f6;--paper-deep-purple-100:#d1c4e9;--paper-deep-purple-200:#b39ddb;-
-paper-deep-purple-300:#9575cd;--paper-deep-purple-400:#7e57c2;--paper-deep-purp
le-500:#673ab7;--paper-deep-purple-600:#5e35b1;--paper-deep-purple-700:#512da8;-
-paper-deep-purple-800:#4527a0;--paper-deep-purple-900:#311b92;--paper-deep-purp
le-a100:#b388ff;--paper-deep-purple-a200:#7c4dff;--paper-deep-purple-a400:#651ff
f;--paper-deep-purple-a700:#6200ea;--paper-indigo-50:#e8eaf6;--paper-indigo-100:
#c5cae9;--paper-indigo-200:#9fa8da;--paper-indigo-300:#7986cb;--paper-indigo-400
:#5c6bc0;--paper-indigo-500:#3f51b5;--paper-indigo-600:#3949ab;--paper-indigo-70
0:#303f9f;--paper-indigo-800:#283593;--paper-indigo-900:#1a237e;--paper-indigo-a
100:#8c9eff;--paper-indigo-a200:#536dfe;--paper-indigo-a400:#3d5afe;--paper-indi
go-a700:#304ffe;--paper-blue-50:#e3f2fd;--paper-blue-100:#bbdefb;--paper-blue-20
0:#90caf9;--paper-blue-300:#64b5f6;--paper-blue-400:#42a5f5;--paper-blue-500:#21
96f3;--paper-blue-600:#1e88e5;--paper-blue-700:#1976d2;--paper-blue-800:#1565c0;
--paper-blue-900:#0d47a1;--paper-blue-a100:#82b1ff;--paper-blue-a200:#448aff;--p
aper-blue-a400:#2979ff;--paper-blue-a700:#2962ff;--paper-light-blue-50:#e1f5fe;-
-paper-light-blue-100:#b3e5fc;--paper-light-blue-200:#81d4fa;--paper-light-blue-
300:#4fc3f7;--paper-light-blue-400:#29b6f6;--paper-light-blue-500:#03a9f4;--pape
r-light-blue-600:#039be5;--paper-light-blue-700:#0288d1;--paper-light-blue-800:#
0277bd;--paper-light-blue-900:#01579b;--paper-light-blue-a100:#80d8ff;--paper-li
ght-blue-a200:#40c4ff;--paper-light-blue-a400:#00b0ff;--paper-light-blue-a700:#0
091ea;--paper-cyan-50:#e0f7fa;--paper-cyan-100:#b2ebf2;--paper-cyan-200:#80deea;
--paper-cyan-300:#4dd0e1;--paper-cyan-400:#26c6da;--paper-cyan-500:#00bcd4;--pap
er-cyan-600:#00acc1;--paper-cyan-700:#0097a7;--paper-cyan-800:#00838f;--paper-cy
an-900:#006064;--paper-cyan-a100:#84ffff;--paper-cyan-a200:#18ffff;--paper-cyan-
a400:#00e5ff;--paper-cyan-a700:#00b8d4;--paper-teal-50:#e0f2f1;--paper-teal-100:
#b2dfdb;--paper-teal-200:#80cbc4;--paper-teal-300:#4db6ac;--paper-teal-400:#26a6
9a;--paper-teal-500:#009688;--paper-teal-600:#00897b;--paper-teal-700:#00796b;--
paper-teal-800:#00695c;--paper-teal-900:#004d40;--paper-teal-a100:#a7ffeb;--pape
r-teal-a200:#64ffda;--paper-teal-a400:#1de9b6;--paper-teal-a700:#00bfa5;--paper-
green-50:#e8f5e9;--paper-green-100:#c8e6c9;--paper-green-200:#a5d6a7;--paper-gre
en-300:#81c784;--paper-green-400:#66bb6a;--paper-green-500:#4caf50;--paper-green
-600:#43a047;--paper-green-700:#388e3c;--paper-green-800:#2e7d32;--paper-green-9
00:#1b5e20;--paper-green-a100:#b9f6ca;--paper-green-a200:#69f0ae;--paper-green-a
400:#00e676;--paper-green-a700:#00c853;--paper-light-green-50:#f1f8e9;--paper-li
ght-green-100:#dcedc8;--paper-light-green-200:#c5e1a5;--paper-light-green-300:#a
ed581;--paper-light-green-400:#9ccc65;--paper-light-green-500:#8bc34a;--paper-li
ght-green-600:#7cb342;--paper-light-green-700:#689f38;--paper-light-green-800:#5
58b2f;--paper-light-green-900:#33691e;--paper-light-green-a100:#ccff90;--paper-l
ight-green-a200:#b2ff59;--paper-light-green-a400:#76ff03;--paper-light-green-a70
0:#64dd17;--paper-lime-50:#f9fbe7;--paper-lime-100:#f0f4c3;--paper-lime-200:#e6e
e9c;--paper-lime-300:#dce775;--paper-lime-400:#d4e157;--paper-lime-500:#cddc39;-
-paper-lime-600:#c0ca33;--paper-lime-700:#afb42b;--paper-lime-800:#9e9d24;--pape
r-lime-900:#827717;--paper-lime-a100:#f4ff81;--paper-lime-a200:#eeff41;--paper-l
ime-a400:#c6ff00;--paper-lime-a700:#aeea00;--paper-yellow-50:#fffde7;--paper-yel
low-100:#fff9c4;--paper-yellow-200:#fff59d;--paper-yellow-300:#fff176;--paper-ye
llow-400:#ffee58;--paper-yellow-500:#ffeb3b;--paper-yellow-600:#fdd835;--paper-y
ellow-700:#fbc02d;--paper-yellow-800:#f9a825;--paper-yellow-900:#f57f17;--paper-
yellow-a100:#ffff8d;--paper-yellow-a200:#ffff00;--paper-yellow-a400:#ffea00;--pa
per-yellow-a700:#ffd600;--paper-amber-50:#fff8e1;--paper-amber-100:#ffecb3;--pap
er-amber-200:#ffe082;--paper-amber-300:#ffd54f;--paper-amber-400:#ffca28;--paper
-amber-500:#ffc107;--paper-amber-600:#ffb300;--paper-amber-700:#ffa000;--paper-a
mber-800:#ff8f00;--paper-amber-900:#ff6f00;--paper-amber-a100:#ffe57f;--paper-am
ber-a200:#ffd740;--paper-amber-a400:#ffc400;--paper-amber-a700:#ffab00;--paper-o
range-50:#fff3e0;--paper-orange-100:#ffe0b2;--paper-orange-200:#ffcc80;--paper-o
range-300:#ffb74d;--paper-orange-400:#ffa726;--paper-orange-500:#ff9800;--paper-
orange-600:#fb8c00;--paper-orange-700:#f57c00;--paper-orange-800:#ef6c00;--paper
-orange-900:#e65100;--paper-orange-a100:#ffd180;--paper-orange-a200:#ffab40;--pa
per-orange-a400:#ff9100;--paper-orange-a700:#ff6500;--paper-deep-orange-50:#fbe9
e7;--paper-deep-orange-100:#ffccbc;--paper-deep-orange-200:#ffab91;--paper-deep-
orange-300:#ff8a65;--paper-deep-orange-400:#ff7043;--paper-deep-orange-500:#ff57
22;--paper-deep-orange-600:#f4511e;--paper-deep-orange-700:#e64a19;--paper-deep-
orange-800:#d84315;--paper-deep-orange-900:#bf360c;--paper-deep-orange-a100:#ff9
e80;--paper-deep-orange-a200:#ff6e40;--paper-deep-orange-a400:#ff3d00;--paper-de
ep-orange-a700:#dd2c00;--paper-brown-50:#efebe9;--paper-brown-100:#d7ccc8;--pape
r-brown-200:#bcaaa4;--paper-brown-300:#a1887f;--paper-brown-400:#8d6e63;--paper-
brown-500:#795548;--paper-brown-600:#6d4c41;--paper-brown-700:#5d4037;--paper-br
own-800:#4e342e;--paper-brown-900:#3e2723;--paper-grey-50:#fafafa;--paper-grey-1
00:#f5f5f5;--paper-grey-200:#eeeeee;--paper-grey-300:#e0e0e0;--paper-grey-400:#b
dbdbd;--paper-grey-500:#9e9e9e;--paper-grey-600:#757575;--paper-grey-700:#616161
;--paper-grey-800:#424242;--paper-grey-900:#212121;--paper-blue-grey-50:#eceff1;
--paper-blue-grey-100:#cfd8dc;--paper-blue-grey-200:#b0bec5;--paper-blue-grey-30
0:#90a4ae;--paper-blue-grey-400:#78909c;--paper-blue-grey-500:#607d8b;--paper-bl
ue-grey-600:#546e7a;--paper-blue-grey-700:#455a64;--paper-blue-grey-800:#37474f;
--paper-blue-grey-900:#263238;--dark-divider-opacity:0.12;--dark-disabled-opacit
y:0.38;--dark-secondary-opacity:0.54;--dark-primary-opacity:0.87;--light-divider
-opacity:0.12;--light-disabled-opacity:0.3;--light-secondary-opacity:0.7;--light
-primary-opacity:1.0}</style> <style is="custom-style">:root{--primary-text-colo
r:var(--light-theme-text-color);--primary-background-color:var(--light-theme-bac
kground-color);--secondary-text-color:var(--light-theme-secondary-color);--disab
led-text-color:var(--light-theme-disabled-color);--divider-color:var(--light-the
me-divider-color);--error-color:var(--paper-deep-orange-a700);--primary-color:va
r(--paper-indigo-500);--light-primary-color:var(--paper-indigo-100);--dark-prima
ry-color:var(--paper-indigo-700);--accent-color:var(--paper-pink-a200);--light-a
ccent-color:var(--paper-pink-a100);--dark-accent-color:var(--paper-pink-a400);--
light-theme-background-color:#ffffff;--light-theme-base-color:#000000;--light-th
eme-text-color:var(--paper-grey-900);--light-theme-secondary-color:#737373;--lig
ht-theme-disabled-color:#9b9b9b;--light-theme-divider-color:#dbdbdb;--dark-theme
-background-color:var(--paper-grey-900);--dark-theme-base-color:#ffffff;--dark-t
heme-text-color:#ffffff;--dark-theme-secondary-color:#bcbcbc;--dark-theme-disabl
ed-color:#646464;--dark-theme-divider-color:#3c3c3c;--text-primary-color:var(--d
ark-theme-text-color);--default-primary-color:var(--primary-color)}</style> <dom
-module id="paper-fab" assetpath="/res/imp/bower_components/paper-fab/"> <templa
te strip-whitespace=""> <style include="paper-material-shared-styles">:host{@app
ly(--layout-vertical);@apply(--layout-center-center);background:var(--paper-fab-
background,--accent-color);border-radius:50%;box-sizing:border-box;color:var(--t
ext-primary-color);cursor:pointer;height:56px;min-width:0;outline:0;padding:16px
;position:relative;-moz-user-select:none;-ms-user-select:none;-webkit-user-selec
t:none;user-select:none;width:56px;z-index:0;-webkit-tap-highlight-color:transpa
rent;-webkit-tap-highlight-color:transparent;@apply(--paper-fab)}[hidden]{displa
y:none!important}:host([mini]){width:40px;height:40px;padding:8px;@apply(--paper
-fab-mini)}:host([disabled]){color:var(--paper-fab-disabled-text,--paper-grey-50
0);background:var(--paper-fab-disabled-background,--paper-grey-300);@apply(--pap
er-fab-disabled)}iron-icon{@apply(--paper-fab-iron-icon)}span{width:100%;white-s
pace:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;@apply(--pa
per-fab-label)}:host(.keyboard-focus){background:var(--paper-fab-keyboard-focus-
background,--paper-pink-900)}</style> <iron-icon id="icon" hidden$="{{!_computeI
sIconFab(icon, src)}}" src="[[src]]" icon="[[icon]]"></iron-icon> <span hidden$=
"{{_computeIsIconFab(icon, src)}}">{{label}}</span> </template> <script>Polymer(
{is:"paper-fab",behaviors:[Polymer.PaperButtonBehavior],properties:{src:{type:St
ring,value:""},icon:{type:String,value:""},mini:{type:Boolean,value:!1,reflectTo
Attribute:!0},label:{type:String,observer:"_labelChanged"}},_labelChanged:functi
on(){this.setAttribute("aria-label",this.label)},_computeIsIconFab:function(e,t)
{return e.length>0||t.length>0}})</script> </dom-module> <script>Polymer.PaperIn
kyFocusBehaviorImpl={observers:["_focusedChanged(receivedFocusFromKeyboard)"],_f
ocusedChanged:function(e){e&&this.ensureRipple(),this.hasRipple()&&(this._ripple
.holdDown=e)},_createRipple:function(){var e=Polymer.PaperRippleBehavior._create
Ripple();return e.id="ink",e.setAttribute("center",""),e.classList.add("circle")
,e}},Polymer.PaperInkyFocusBehavior=[Polymer.IronButtonState,Polymer.IronControl
State,Polymer.PaperRippleBehavior,Polymer.PaperInkyFocusBehaviorImpl]</script> <
dom-module id="paper-icon-button" assetpath="/res/imp/bower_components/paper-ico
n-button/"> <template strip-whitespace=""> <style>:host{display:inline-block;pos
ition:relative;padding:8px;outline:0;-webkit-user-select:none;-moz-user-select:n
one;-ms-user-select:none;user-select:none;cursor:pointer;z-index:0;line-height:1
;width:40px;height:40px;-webkit-tap-highlight-color:transparent;-webkit-tap-high
light-color:transparent;box-sizing:border-box!important;@apply(--paper-icon-butt
on)}:host #ink{color:var(--paper-icon-button-ink-color,--primary-text-color);opa
city:.6}:host([disabled]){color:var(--paper-icon-button-disabled-text,--disabled
-text-color);pointer-events:none;cursor:auto;@apply(--paper-icon-button-disabled
)}:host(:hover){@apply(--paper-icon-button-hover)}iron-icon{--iron-icon-width:10
0%;--iron-icon-height:100%}</style> <iron-icon id="icon" src="[[src]]" icon="[[i
con]]" alt$="[[alt]]"></iron-icon> </template> <script>Polymer({is:"paper-icon-b
utton",hostAttributes:{role:"button",tabindex:"0"},behaviors:[Polymer.PaperInkyF
ocusBehavior],properties:{src:{type:String},icon:{type:String},alt:{type:String,
observer:"_altChanged"}},_altChanged:function(t,e){var r=this.getAttribute("aria
-label");r&&e!=r||this.setAttribute("aria-label",t)}})</script> </dom-module> <s
cript>Polymer.PaperItemBehaviorImpl={hostAttributes:{role:"option",tabindex:"0"}
},Polymer.PaperItemBehavior=[Polymer.IronButtonState,Polymer.IronControlState,Po
lymer.PaperItemBehaviorImpl]</script> <link rel="stylesheet" href="https://fonts
.googleapis.com/css?family=Roboto:400,300,300italic,400italic,500,500italic,700,
700italic"> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family
=Roboto+Mono:400,700"> <style is="custom-style">:root{--paper-font-common-base:{
font-family:Roboto,Noto,sans-serif;-webkit-font-smoothing:antialiased};--paper-f
ont-common-code:{font-family:'Roboto Mono',Consolas,Menlo,monospace;-webkit-font
-smoothing:antialiased};--paper-font-common-expensive-kerning:{text-rendering:op
timizeLegibility};--paper-font-common-nowrap:{white-space:nowrap;overflow:hidden
;text-overflow:ellipsis};--paper-font-display4:{@apply(--paper-font-common-base)
;@apply(--paper-font-common-nowrap);font-size:112px;font-weight:300;letter-spaci
ng:-.044em;line-height:120px};--paper-font-display3:{@apply(--paper-font-common-
base);@apply(--paper-font-common-nowrap);font-size:56px;font-weight:400;letter-s
pacing:-.026em;line-height:60px};--paper-font-display2:{@apply(--paper-font-comm
on-base);font-size:45px;font-weight:400;letter-spacing:-.018em;line-height:48px}
;--paper-font-display1:{@apply(--paper-font-common-base);font-size:34px;font-wei
ght:400;letter-spacing:-.01em;line-height:40px};--paper-font-headline:{@apply(--
paper-font-common-base);font-size:24px;font-weight:400;letter-spacing:-.012em;li
ne-height:32px};--paper-font-title:{@apply(--paper-font-common-base);@apply(--pa
per-font-common-nowrap);font-size:20px;font-weight:500;line-height:28px};--paper
-font-subhead:{@apply(--paper-font-common-base);font-size:16px;font-weight:400;l
ine-height:24px};--paper-font-body2:{@apply(--paper-font-common-base);font-size:
14px;font-weight:500;line-height:24px};--paper-font-body1:{@apply(--paper-font-c
ommon-base);font-size:14px;font-weight:400;line-height:20px};--paper-font-captio
n:{@apply(--paper-font-common-base);@apply(--paper-font-common-nowrap);font-size
:12px;font-weight:400;letter-spacing:0.011em;line-height:20px};--paper-font-menu
:{@apply(--paper-font-common-base);@apply(--paper-font-common-nowrap);font-size:
13px;font-weight:500;line-height:24px};--paper-font-button:{@apply(--paper-font-
common-base);@apply(--paper-font-common-nowrap);font-size:14px;font-weight:500;l
etter-spacing:0.018em;line-height:24px;text-transform:uppercase};--paper-font-co
de2:{@apply(--paper-font-common-code);font-size:14px;font-weight:700;line-height
:20px};--paper-font-code1:{@apply(--paper-font-common-code);font-size:14px;font-
weight:500;line-height:20px};}</style> <dom-module id="paper-item-shared-styles"
assetpath="/res/imp/bower_components/paper-item/"> <template> <style>.paper-ite
m,:host{display:block;position:relative;min-height:var(--paper-item-min-height,4
8px);padding:0 16px}.paper-item{@apply(--paper-font-subhead);border:none;outline
:0;background:#fff;width:100%;text-align:left}.paper-item[hidden],:host([hidden]
){display:none!important}.paper-item.iron-selected,:host(.iron-selected){font-we
ight:var(--paper-item-selected-weight,bold);@apply(--paper-item-selected)}.paper
-item[disabled],:host([disabled]){color:var(--paper-item-disabled-color,--disabl
ed-text-color);@apply(--paper-item-disabled)}.paper-item:focus,:host(:focus){pos
ition:relative;outline:0;@apply(--paper-item-focused)}.paper-item:focus:before,:
host(:focus):before{@apply(--layout-fit);background:currentColor;content:'';opac
ity:var(--dark-divider-opacity);pointer-events:none;@apply(--paper-item-focused-
before)}</style> </template> </dom-module> <dom-module id="paper-item" assetpath
="/res/imp/bower_components/paper-item/"> <template> <style include="paper-item-
shared-styles"></style> <style>:host{@apply(--layout-horizontal);@apply(--layout
-center);@apply(--paper-font-subhead);@apply(--paper-item)}</style> <content></c
ontent> </template> <script>Polymer({is:"paper-item",behaviors:[Polymer.PaperIte
mBehavior]})</script> </dom-module> <script>Polymer.IronSelection=function(e){th
is.selection=[],this.selectCallback=e},Polymer.IronSelection.prototype={get:func
tion(){return this.multi?this.selection.slice():this.selection[0]},clear:functio
n(e){this.selection.slice().forEach(function(t){(!e||e.indexOf(t)<0)&&this.setIt
emSelected(t,!1)},this)},isSelected:function(e){return this.selection.indexOf(e)
>=0},setItemSelected:function(e,t){if(null!=e&&t!==this.isSelected(e)){if(t)this
.selection.push(e);else{var i=this.selection.indexOf(e);i>=0&&this.selection.spl
ice(i,1)}this.selectCallback&&this.selectCallback(e,t)}},select:function(e){this
.multi?this.toggle(e):this.get()!==e&&(this.setItemSelected(this.get(),!1),this.
setItemSelected(e,!0))},toggle:function(e){this.setItemSelected(e,!this.isSelect
ed(e))}}</script> <script>Polymer.IronSelectableBehavior={properties:{attrForSel
ected:{type:String,value:null},selected:{type:String,notify:!0},selectedItem:{ty
pe:Object,readOnly:!0,notify:!0},activateEvent:{type:String,value:"tap",observer
:"_activateEventChanged"},selectable:String,selectedClass:{type:String,value:"ir
on-selected"},selectedAttribute:{type:String,value:null},fallbackSelection:{type
:String,value:null},items:{type:Array,readOnly:!0,notify:!0,value:function(){ret
urn[]}},_excludedLocalNames:{type:Object,value:function(){return{template:1}}}},
observers:["_updateAttrForSelected(attrForSelected)","_updateSelected(selected)"
,"_checkFallback(fallbackSelection)"],created:function(){this._bindFilterItem=th
is._filterItem.bind(this),this._selection=new Polymer.IronSelection(this._applyS
election.bind(this))},attached:function(){this._observer=this._observeItems(this
),this._updateItems(),this._shouldUpdateSelection||this._updateSelected(),this._
addListener(this.activateEvent)},detached:function(){this._observer&&Polymer.dom
(this).unobserveNodes(this._observer),this._removeListener(this.activateEvent)},
indexOf:function(e){return this.items.indexOf(e)},select:function(e){this.select
ed=e},selectPrevious:function(){var e=this.items.length,t=(Number(this._valueToI
ndex(this.selected))-1+e)%e;this.selected=this._indexToValue(t)},selectNext:func
tion(){var e=(Number(this._valueToIndex(this.selected))+1)%this.items.length;thi
s.selected=this._indexToValue(e)},selectIndex:function(e){this.select(this._inde
xToValue(e))},forceSynchronousItemUpdate:function(){this._updateItems()},get _sh
ouldUpdateSelection(){return null!=this.selected},_checkFallback:function(){this
._shouldUpdateSelection&&this._updateSelected()},_addListener:function(e){this.l
isten(this,e,"_activateHandler")},_removeListener:function(e){this.unlisten(this
,e,"_activateHandler")},_activateEventChanged:function(e,t){this._removeListener
(t),this._addListener(e)},_updateItems:function(){var e=Polymer.dom(this).queryD
istributedElements(this.selectable||"*");e=Array.prototype.filter.call(e,this._b
indFilterItem),this._setItems(e)},_updateAttrForSelected:function(){this._should
UpdateSelection&&(this.selected=this._indexToValue(this.indexOf(this.selectedIte
m)))},_updateSelected:function(){this._selectSelected(this.selected)},_selectSel
ected:function(e){this._selection.select(this._valueToItem(this.selected)),this.
fallbackSelection&&this.items.length&&void 0===this._selection.get()&&(this.sele
cted=this.fallbackSelection)},_filterItem:function(e){return!this._excludedLocal
Names[e.localName]},_valueToItem:function(e){return null==e?null:this.items[this
._valueToIndex(e)]},_valueToIndex:function(e){if(!this.attrForSelected)return Nu
mber(e);for(var t,i=0;t=this.items[i];i++)if(this._valueForItem(t)==e)return i},
_indexToValue:function(e){if(!this.attrForSelected)return e;var t=this.items[e];
return t?this._valueForItem(t):void 0},_valueForItem:function(e){var t=e[Polymer
.CaseMap.dashToCamelCase(this.attrForSelected)];return void 0!=t?t:e.getAttribut
e(this.attrForSelected)},_applySelection:function(e,t){this.selectedClass&&this.
toggleClass(this.selectedClass,t,e),this.selectedAttribute&&this.toggleAttribute
(this.selectedAttribute,t,e),this._selectionChange(),this.fire("iron-"+(t?"selec
t":"deselect"),{item:e})},_selectionChange:function(){this._setSelectedItem(this
._selection.get())},_observeItems:function(e){return Polymer.dom(e).observeNodes
(function(e){this._updateItems(),this._shouldUpdateSelection&&this._updateSelect
ed(),this.fire("iron-items-changed",e,{bubbles:!1,cancelable:!1})})},_activateHa
ndler:function(e){for(var t=e.target,i=this.items;t&&t!=this;){var s=i.indexOf(t
);if(s>=0){var n=this._indexToValue(s);return void this._itemActivate(n,t)}t=t.p
arentNode}},_itemActivate:function(e,t){this.fire("iron-activate",{selected:e,it
em:t},{cancelable:!0}).defaultPrevented||this.select(e)}}</script> <script>Polym
er.IronMultiSelectableBehaviorImpl={properties:{multi:{type:Boolean,value:!1,obs
erver:"multiChanged"},selectedValues:{type:Array,notify:!0},selectedItems:{type:
Array,readOnly:!0,notify:!0}},observers:["_updateSelected(selectedValues.splices
)"],select:function(e){this.multi?this.selectedValues?this._toggleSelected(e):th
is.selectedValues=[e]:this.selected=e},multiChanged:function(e){this._selection.
multi=e},get _shouldUpdateSelection(){return null!=this.selected||null!=this.sel
ectedValues&&this.selectedValues.length},_updateAttrForSelected:function(){this.
multi?this._shouldUpdateSelection&&(this.selectedValues=this.selectedItems.map(f
unction(e){return this._indexToValue(this.indexOf(e))},this).filter(function(e){
return null!=e},this)):Polymer.IronSelectableBehavior._updateAttrForSelected.app
ly(this)},_updateSelected:function(){this.multi?this._selectMulti(this.selectedV
alues):this._selectSelected(this.selected)},_selectMulti:function(e){if(e){var t
=this._valuesToItems(e);this._selection.clear(t);for(var l=0;l<t.length;l++)this
._selection.setItemSelected(t[l],!0);if(this.fallbackSelection&&this.items.lengt
h&&!this._selection.get().length){var s=this._valueToItem(this.fallbackSelection
);s&&(this.selectedValues=[this.fallbackSelection])}}else this._selection.clear(
)},_selectionChange:function(){var e=this._selection.get();this.multi?this._setS
electedItems(e):(this._setSelectedItems([e]),this._setSelectedItem(e))},_toggleS
elected:function(e){var t=this.selectedValues.indexOf(e),l=t<0;l?this.push("sele
ctedValues",e):this.splice("selectedValues",t,1)},_valuesToItems:function(e){ret
urn null==e?null:e.map(function(e){return this._valueToItem(e)},this)}},Polymer.
IronMultiSelectableBehavior=[Polymer.IronSelectableBehavior,Polymer.IronMultiSel
ectableBehaviorImpl]</script> <script>Polymer.IronMenuBehaviorImpl={properties:{
focusedItem:{observer:"_focusedItemChanged",readOnly:!0,type:Object},attrForItem
Title:{type:String}},_SEARCH_RESET_TIMEOUT_MS:1e3,hostAttributes:{role:"menu",ta
bindex:"0"},observers:["_updateMultiselectable(multi)"],listeners:{focus:"_onFoc
us",keydown:"_onKeydown","iron-items-changed":"_onIronItemsChanged"},keyBindings
:{up:"_onUpKey",down:"_onDownKey",esc:"_onEscKey","shift+tab:keydown":"_onShiftT
abDown"},attached:function(){this._resetTabindices()},select:function(e){this._d
efaultFocusAsync&&(this.cancelAsync(this._defaultFocusAsync),this._defaultFocusA
sync=null);var t=this._valueToItem(e);t&&t.hasAttribute("disabled")||(this._setF
ocusedItem(t),Polymer.IronMultiSelectableBehaviorImpl.select.apply(this,argument
s))},_resetTabindices:function(){var e=this.multi?this.selectedItems&&this.selec
tedItems[0]:this.selectedItem;this.items.forEach(function(t){t.setAttribute("tab
index",t===e?"0":"-1")},this)},_updateMultiselectable:function(e){e?this.setAttr
ibute("aria-multiselectable","true"):this.removeAttribute("aria-multiselectable"
)},_focusWithKeyboardEvent:function(e){this.cancelDebouncer("_clearSearchText");
var t=this._searchText||"",s=e.key&&1==e.key.length?e.key:String.fromCharCode(e.
keyCode);t+=s.toLocaleLowerCase();for(var i,o=t.length,n=0;i=this.items[n];n++)i
f(!i.hasAttribute("disabled")){var r=this.attrForItemTitle||"textContent",a=(i[r
]||i.getAttribute(r)||"").trim();if(!(a.length<o)&&a.slice(0,o).toLocaleLowerCas
e()==t){this._setFocusedItem(i);break}}this._searchText=t,this.debounce("_clearS
earchText",this._clearSearchText,this._SEARCH_RESET_TIMEOUT_MS)},_clearSearchTex
t:function(){this._searchText=""},_focusPrevious:function(){for(var e=this.items
.length,t=Number(this.indexOf(this.focusedItem)),s=1;s<e+1;s++){var i=this.items
[(t-s+e)%e];if(!i.hasAttribute("disabled")){var o=Polymer.dom(i).getOwnerRoot()|
|document;if(this._setFocusedItem(i),Polymer.dom(o).activeElement==i)return}}},_
focusNext:function(){for(var e=this.items.length,t=Number(this.indexOf(this.focu
sedItem)),s=1;s<e+1;s++){var i=this.items[(t+s)%e];if(!i.hasAttribute("disabled"
)){var o=Polymer.dom(i).getOwnerRoot()||document;if(this._setFocusedItem(i),Poly
mer.dom(o).activeElement==i)return}}},_applySelection:function(e,t){t?e.setAttri
bute("aria-selected","true"):e.removeAttribute("aria-selected"),Polymer.IronSele
ctableBehavior._applySelection.apply(this,arguments)},_focusedItemChanged:functi
on(e,t){t&&t.setAttribute("tabindex","-1"),e&&(e.setAttribute("tabindex","0"),e.
focus())},_onIronItemsChanged:function(e){e.detail.addedNodes.length&&this._rese
tTabindices()},_onShiftTabDown:function(e){var t=this.getAttribute("tabindex");P
olymer.IronMenuBehaviorImpl._shiftTabPressed=!0,this._setFocusedItem(null),this.
setAttribute("tabindex","-1"),this.async(function(){this.setAttribute("tabindex"
,t),Polymer.IronMenuBehaviorImpl._shiftTabPressed=!1},1)},_onFocus:function(e){i
f(!Polymer.IronMenuBehaviorImpl._shiftTabPressed){var t=Polymer.dom(e).rootTarge
t;(t===this||"undefined"==typeof t.tabIndex||this.isLightDescendant(t))&&(this._
defaultFocusAsync=this.async(function(){var e=this.multi?this.selectedItems&&thi
s.selectedItems[0]:this.selectedItem;this._setFocusedItem(null),e?this._setFocus
edItem(e):this.items[0]&&this._focusNext()}))}},_onUpKey:function(e){this._focus
Previous(),e.detail.keyboardEvent.preventDefault()},_onDownKey:function(e){this.
_focusNext(),e.detail.keyboardEvent.preventDefault()},_onEscKey:function(e){this
.focusedItem.blur()},_onKeydown:function(e){this.keyboardEventMatchesKeys(e,"up
down esc")||this._focusWithKeyboardEvent(e),e.stopPropagation()},_activateHandle
r:function(e){Polymer.IronSelectableBehavior._activateHandler.call(this,e),e.sto
pPropagation()}},Polymer.IronMenuBehaviorImpl._shiftTabPressed=!1,Polymer.IronMe
nuBehavior=[Polymer.IronMultiSelectableBehavior,Polymer.IronA11yKeysBehavior,Pol
ymer.IronMenuBehaviorImpl]</script> <dom-module id="paper-menu-shared-styles" as
setpath="/res/imp/bower_components/paper-menu/"> <template> <style>.selectable-c
ontent>::content>.iron-selected{font-weight:700;@apply(--paper-menu-selected-ite
m)}.selectable-content>::content>[disabled]{color:var(--paper-menu-disabled-colo
r,--disabled-text-color)}.selectable-content>::content>:focus{position:relative;
outline:0;@apply(--paper-menu-focused-item)}.selectable-content>::content>:focus
:after{@apply(--layout-fit);background:currentColor;opacity:var(--dark-divider-o
pacity);content:'';pointer-events:none;@apply(--paper-menu-focused-item-after)}.
selectable-content>::content>[colored]:focus:after{opacity:.26}</style> </templa
te> </dom-module> <dom-module id="paper-menu" assetpath="/res/imp/bower_componen
ts/paper-menu/"> <template> <style include="paper-menu-shared-styles"></style> <
style>:host{display:block;padding:8px 0;background:var(--paper-menu-background-c
olor,--primary-background-color);color:var(--paper-menu-color,--primary-text-col
or);@apply(--paper-menu)}</style> <div class="selectable-content"> <content></co
ntent> </div> </template> <script>!function(){Polymer({is:"paper-menu",behaviors
:[Polymer.IronMenuBehavior]})}()</script> </dom-module> <script>Polymer.PaperSpi
nnerBehavior={listeners:{animationend:"__reset",webkitAnimationEnd:"__reset"},pr
operties:{active:{type:Boolean,value:!1,reflectToAttribute:!0,observer:"__active
Changed"},alt:{type:String,value:"loading",observer:"__altChanged"},__coolingDow
n:{type:Boolean,value:!1}},__computeContainerClasses:function(e,t){return[e||t?"
active":"",t?"cooldown":""].join(" ")},__activeChanged:function(e,t){this.__setA
riaHidden(!e),this.__coolingDown=!e&&t},__altChanged:function(e){e===this.getPro
pertyInfo("alt").value?this.alt=this.getAttribute("aria-label")||e:(this.__setAr
iaHidden(""===e),this.setAttribute("aria-label",e))},__setAriaHidden:function(e)
{var t="aria-hidden";e?this.setAttribute(t,"true"):this.removeAttribute(t)},__re
set:function(){this.active=!1,this.__coolingDown=!1}}</script> <dom-module id="p
aper-spinner-styles" assetpath="/res/imp/bower_components/paper-spinner/"> <temp
late> <style>:host{display:inline-block;position:relative;width:28px;height:28px
;--paper-spinner-container-rotation-duration:1568ms;--paper-spinner-expand-contr
act-duration:1333ms;--paper-spinner-full-cycle-duration:5332ms;--paper-spinner-c
ooldown-duration:400ms}#spinnerContainer{width:100%;height:100%;direction:ltr}#s
pinnerContainer.active{-webkit-animation:container-rotate var(--paper-spinner-co
ntainer-rotation-duration) linear infinite;animation:container-rotate var(--pape
r-spinner-container-rotation-duration) linear infinite}@-webkit-keyframes contai
ner-rotate{to{-webkit-transform:rotate(360deg)}}@keyframes container-rotate{to{t
ransform:rotate(360deg)}}.spinner-layer{position:absolute;width:100%;height:100%
;opacity:0;white-space:nowrap;border-color:var(--paper-spinner-color,--google-bl
ue-500)}.layer-1{border-color:var(--paper-spinner-layer-1-color,--google-blue-50
0)}.layer-2{border-color:var(--paper-spinner-layer-2-color,--google-red-500)}.la
yer-3{border-color:var(--paper-spinner-layer-3-color,--google-yellow-500)}.layer
-4{border-color:var(--paper-spinner-layer-4-color,--google-green-500)}.active .s
pinner-layer{-webkit-animation-name:fill-unfill-rotate;-webkit-animation-duratio
n:var(--paper-spinner-full-cycle-duration);-webkit-animation-timing-function:cub
ic-bezier(.4,0,.2,1);-webkit-animation-iteration-count:infinite;animation-name:f
ill-unfill-rotate;animation-duration:var(--paper-spinner-full-cycle-duration);an
imation-timing-function:cubic-bezier(.4,0,.2,1);animation-iteration-count:infini
te;opacity:1}.active .spinner-layer.layer-1{-webkit-animation-name:fill-unfill-r
otate,layer-1-fade-in-out;animation-name:fill-unfill-rotate,layer-1-fade-in-out}
.active .spinner-layer.layer-2{-webkit-animation-name:fill-unfill-rotate,layer-2
-fade-in-out;animation-name:fill-unfill-rotate,layer-2-fade-in-out}.active .spin
ner-layer.layer-3{-webkit-animation-name:fill-unfill-rotate,layer-3-fade-in-out;
animation-name:fill-unfill-rotate,layer-3-fade-in-out}.active .spinner-layer.lay
er-4{-webkit-animation-name:fill-unfill-rotate,layer-4-fade-in-out;animation-nam
e:fill-unfill-rotate,layer-4-fade-in-out}@-webkit-keyframes fill-unfill-rotate{1
2.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%
{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-we
bkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit
-transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg)}}@keyframes fill-
unfill-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{
transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675
deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}to{transform:ro
tate(1080deg)}}@-webkit-keyframes layer-1-fade-in-out{0%{opacity:1}25%{opacity:1
}26%{opacity:0}89%{opacity:0}90%{opacity:1}to{opacity:1}}@keyframes layer-1-fade
-in-out{0%{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}to{
opacity:1}}@-webkit-keyframes layer-2-fade-in-out{0%{opacity:0}15%{opacity:0}25%
{opacity:1}50%{opacity:1}51%{opacity:0}to{opacity:0}}@keyframes layer-2-fade-in-
out{0%{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}to{opac
ity:0}}@-webkit-keyframes layer-3-fade-in-out{0%{opacity:0}40%{opacity:0}50%{opa
city:1}75%{opacity:1}76%{opacity:0}to{opacity:0}}@keyframes layer-3-fade-in-out{
0%{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}to{opacity:
0}}@-webkit-keyframes layer-4-fade-in-out{0%{opacity:0}65%{opacity:0}75%{opacity
:1}90%{opacity:1}to{opacity:0}}@keyframes layer-4-fade-in-out{0%{opacity:0}65%{o
pacity:0}75%{opacity:1}90%{opacity:1}to{opacity:0}}.circle-clipper{display:inlin
e-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inh
erit}.spinner-layer::after{left:45%;width:10%;border-top-style:solid}.circle-cli
pper::after,.spinner-layer::after{content:'';box-sizing:border-box;position:abso
lute;top:0;border-width:var(--paper-spinner-stroke-width,3px);border-color:inher
it;border-radius:50%}.circle-clipper::after{bottom:0;width:200%;border-style:sol
id;border-bottom-color:transparent!important}.circle-clipper.left::after{left:0;
border-right-color:transparent!important;-webkit-transform:rotate(129deg);transf
orm:rotate(129deg)}.circle-clipper.right::after{left:-100%;border-left-color:tra
nsparent!important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.
active .circle-clipper::after,.active .gap-patch::after{-webkit-animation-durati
on:var(--paper-spinner-expand-contract-duration);-webkit-animation-timing-functi
on:cubic-bezier(.4,0,.2,1);-webkit-animation-iteration-count:infinite;animation-
duration:var(--paper-spinner-expand-contract-duration);animation-timing-function
:cubic-bezier(.4,0,.2,1);animation-iteration-count:infinite}.active .circle-clip
per.left::after{-webkit-animation-name:left-spin;animation-name:left-spin}.activ
e .circle-clipper.right::after{-webkit-animation-name:right-spin;animation-name:
right-spin}@-webkit-keyframes left-spin{0%{-webkit-transform:rotate(130deg)}50%{
-webkit-transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg)}}@keyframes
left-spin{0%{transform:rotate(130deg)}50%{transform:rotate(-5deg)}to{transform:r
otate(130deg)}}@-webkit-keyframes right-spin{0%{-webkit-transform:rotate(-130deg
)}50%{-webkit-transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg)}}@keyf
rames right-spin{0%{transform:rotate(-130deg)}50%{transform:rotate(5deg)}to{tran
sform:rotate(-130deg)}}#spinnerContainer.cooldown{-webkit-animation:container-ro
tate var(--paper-spinner-container-rotation-duration) linear infinite,fade-out v
ar(--paper-spinner-cooldown-duration) cubic-bezier(.4,0,.2,1);animation:containe
r-rotate var(--paper-spinner-container-rotation-duration) linear infinite,fade-o
ut var(--paper-spinner-cooldown-duration) cubic-bezier(.4,0,.2,1)}@-webkit-keyfr
ames fade-out{0%{opacity:1}to{opacity:0}}@keyframes fade-out{0%{opacity:1}to{opa
city:0}}</style> </template> </dom-module> <dom-module id="paper-spinner-lite" a
ssetpath="/res/imp/bower_components/paper-spinner/"> <template strip-whitespace=
""> <style include="paper-spinner-styles"></style> <div id="spinnerContainer" cl
ass-name="[[__computeContainerClasses(active, __coolingDown)]]"> <div class="spi
nner-layer"> <div class="circle-clipper left"></div> <div class="circle-clipper
right"></div> </div> </div> </template> <script>Polymer({is:"paper-spinner-lite"
,behaviors:[Polymer.PaperSpinnerBehavior]})</script> </dom-module> <script>!func
tion(){"use strict";Polymer.IronJsonpLibraryBehavior={properties:{libraryLoaded:
{type:Boolean,value:!1,notify:!0,readOnly:!0},libraryErrorMessage:{type:String,v
alue:null,notify:!0,readOnly:!0}},observers:["_libraryUrlChanged(libraryUrl)"],_
libraryUrlChanged:function(r){this._isReady&&this.libraryUrl&&this._loadLibrary(
)},_libraryLoadCallback:function(r,i){r?(console.warn("Library load failed:",r.m
essage),this._setLibraryErrorMessage(r.message)):(this._setLibraryErrorMessage(n
ull),this._setLibraryLoaded(!0),this.notifyEvent&&this.fire(this.notifyEvent,i))
},_loadLibrary:function(){r.require(this.libraryUrl,this._libraryLoadCallback.bi
nd(this),this.callbackName)},ready:function(){this._isReady=!0,this.libraryUrl&&
this._loadLibrary()}};var r={apiMap:{},require:function(r,t,e){var a=this.nameFr
omUrl(r);this.apiMap[a]||(this.apiMap[a]=new i(a,r,e)),this.apiMap[a].requestNot
ify(t)},nameFromUrl:function(r){return r.replace(/[\:\/\%\?\&\.\=\-\,]/g,"_")+"_
api"}},i=function(r,i,t){if(this.notifiers=[],!t){if(!(i.indexOf(this.callbackMa
cro)>=0))return void(this.error=new Error("IronJsonpLibraryBehavior a %%callback
%% parameter is required in libraryUrl"));t=r+"_loaded",i=i.replace(this.callbac
kMacro,t)}this.callbackName=t,window[this.callbackName]=this.success.bind(this),
this.addScript(i)};i.prototype={callbackMacro:"%%callback%%",loaded:!1,addScript
:function(r){var i=document.createElement("script");i.src=r,i.onerror=this.handl
eError.bind(this);var t=document.querySelector("script")||document.body;t.parent
Node.insertBefore(i,t),this.script=i},removeScript:function(){this.script.parent
Node&&this.script.parentNode.removeChild(this.script),this.script=null},handleEr
ror:function(r){this.error=new Error("Library failed to load"),this.notifyAll(),
this.cleanup()},success:function(){this.loaded=!0,this.result=Array.prototype.sl
ice.call(arguments),this.notifyAll(),this.cleanup()},cleanup:function(){delete w
indow[this.callbackName]},notifyAll:function(){this.notifiers.forEach(function(r
){r(this.error,this.result)}.bind(this)),this.notifiers=[]},requestNotify:functi
on(r){this.loaded||this.error?r(this.error,this.result):this.notifiers.push(r)}}
}()</script> <script>Polymer({is:"iron-jsonp-library",behaviors:[Polymer.IronJso
npLibraryBehavior],properties:{libraryUrl:String,callbackName:String,notifyEvent
:String}})</script> <script>Polymer({is:"google-js-api",behaviors:[Polymer.IronJ
sonpLibraryBehavior],properties:{libraryUrl:{type:String,value:"https://apis.goo
gle.com/js/api.js?onload=%%callback%%"},notifyEvent:{type:String,value:"js-api-l
oad"}},get api(){return gapi}})</script> <script>!function(){var e={appPackageNa
me:"apppackagename",clientId:"clientid",cookiePolicy:"cookiepolicy",hostedDomain
:"hostedDomain",openidPrompt:"prompt",requestVisibleActions:"requestvisibleactio
ns"},t={_clientId:null,get clientId(){return this._clientId},set clientId(e){if(
this._clientId&&e&&e!=this._clientId)throw new Error("clientId cannot change. Va
lues do not match. New: "+e+" Old:"+this._clientId);e&&e!=this._clientId&&(this.
_clientId=e,this.initAuth2())},_cookiePolicy:"single_host_origin",get cookiePoli
cy(){return this._cookiePolicy},set cookiePolicy(e){e&&(this._cookiePolicy=e)},_
appPackageName:"",get appPackageName(){return this._appPackageName},set appPacka
geName(e){if(this._appPackageName&&e&&e!=this._appPackageName)throw new Error("a
ppPackageName cannot change. Values do not match. New: "+e+" Old: "+this._appPac
kageName);e&&(this._appPackageName=e)},_requestVisibleActions:"",get requestVisi
bleactions(){return this._requestVisibleActions},set requestVisibleactions(e){if
(this._requestVisibleActions&&e&&e!=this._requestVisibleActions)throw new Error(
"requestVisibleactions cannot change. Values do not match. New: "+e+" Old: "+thi
s._requestVisibleActions);e&&(this._requestVisibleActions=e)},_hostedDomain:"",g
et hostedDomain(){return this._hostedDomain},set hostedDomain(e){if(this._hosted
Domain&&e&&e!=this._hostedDomain)throw new Error("hostedDomain cannot change. Va
lues do not match. New: "+e+" Old: "+this._hostedDomain);e&&(this._hostedDomain=
e)},_openidPrompt:"",get openidPrompt(){return this._openidPrompt},set openidPro
mpt(e){if("string"!=typeof e)throw new Error("openidPrompt must be a string. Rec
eived "+typeof e);if(e){var t=e.split(" ");t=t.map(function(e){return e.trim()})
,t=t.filter(function(e){return e});var i={none:0,login:0,consent:0,select_accoun
t:0};t.forEach(function(e){if("none"==e&&t.length>1)throw new Error("none cannot
be combined with other openidPrompt values");if(!(e in i))throw new Error("inva
lid openidPrompt value "+e+". Valid values: "+Object.keys(i).join(", "))})}this.
_openidPrompt=e},_offline:!1,get offline(){return this._offline},set offline(e){
this._offline=e,this.updateAdditionalAuth()},_offlineAlwaysPrompt:!1,get offline
AlwaysPrompt(){return this._offlineAlwaysPrompt},set offlineAlwaysPrompt(e){this
._offlineAlwaysPrompt=e,this.updateAdditionalAuth()},offlineGranted:!1,_apiLoade
r:null,_requestedScopeArray:[],get requestedScopes(){return this._requestedScope
Array.join(" ")},_signedIn:!1,_grantedScopeArray:[],_needAdditionalAuth:!0,_hasP
lusScopes:!1,signinAwares:[],init:function(){this._apiLoader=document.createElem
ent("google-js-api"),this._apiLoader.addEventListener("js-api-load",this.loadAut
h2.bind(this))},loadAuth2:function(){gapi.load("auth2",this.initAuth2.bind(this)
)},initAuth2:function(){if("gapi"in window&&"auth2"in window.gapi&&this.clientId
){var e=gapi.auth2.init({client_id:this.clientId,cookie_policy:this.cookiePolicy
,scope:this.requestedScopes,hosted_domain:this.hostedDomain});e.currentUser.list
en(this.handleUserUpdate.bind(this)),e.then(function(){},function(e){console.err
or(e)})}},handleUserUpdate:function(e){var t=e.isSignedIn();if(t!=this._signedIn
){this._signedIn=t;for(var i=0;i<this.signinAwares.length;i++)this.signinAwares[
i]._setSignedIn(t)}this._grantedScopeArray=this.strToScopeArray(e.getGrantedScop
es()),this.updateAdditionalAuth();for(var n=e.getAuthResponse(),i=0;i<this.signi
nAwares.length;i++)this.signinAwares[i]._updateScopeStatus(n)},setOfflineCode:fu
nction(e){for(var t=0;t<this.signinAwares.length;t++)this.signinAwares[t]._updat
eOfflineCode(e)},strToScopeArray:function(e){if(!e)return[];for(var t=e.replace(
/\ +/g," ").trim().split(" "),i=0;i<t.length;i++)t[i]=t[i].toLowerCase(),"https:
//www.googleapis.com/auth/userinfo.profile"===t[i]&&(t[i]="profile"),"https://ww
w.googleapis.com/auth/userinfo.email"===t[i]&&(t[i]="email");return t.filter(fun
ction(e,t,i){return i.indexOf(e)===t})},isPlusScope:function(e){return e.indexOf
("/auth/games")>-1||e.indexOf("auth/plus.")>-1&&e.indexOf("auth/plus.me")<0},has
GrantedScopes:function(e){for(var t=this.strToScopeArray(e),i=0;i<t.length;i++)i
f(this._grantedScopeArray.indexOf(t[i])===-1)return!1;return!0},requestScopes:fu
nction(e){for(var t=this.strToScopeArray(e),i=!1,n=0;n<t.length;n++)this._reques
tedScopeArray.indexOf(t[n])===-1&&(this._requestedScopeArray.push(t[n]),i=!0);i&
&(this.updateAdditionalAuth(),this.updatePlusScopes())},updateAdditionalAuth:fun
ction(){var e=!1;if(!this.offlineAlwaysPrompt&&!this.offline||this.offlineGrante
d){for(var t=0;t<this._requestedScopeArray.length;t++)if(this._grantedScopeArray
.indexOf(this._requestedScopeArray[t])===-1){e=!0;break}}else e=!0;if(this._need
AdditionalAuth!=e){this._needAdditionalAuth=e;for(var t=0;t<this.signinAwares.le
ngth;t++)this.signinAwares[t]._setNeedAdditionalAuth(e)}},updatePlusScopes:funct
ion(){for(var e=!1,t=0;t<this._requestedScopeArray.length;t++)if(this.isPlusScop
e(this._requestedScopeArray[t])){e=!0;break}if(this._hasPlusScopes!=e){this._has
PlusScopes=e;for(var t=0;t<this.signinAwares.length;t++)this.signinAwares[t]._se
tHasPlusScopes(e)}},attachSigninAware:function(e){this.signinAwares.indexOf(e)==
-1?(this.signinAwares.push(e),e._setNeedAdditionalAuth(this._needAdditionalAuth)
,e._setSignedIn(this._signedIn),e._setHasPlusScopes(this._hasPlusScopes)):consol
e.warn("signinAware attached more than once",e)},detachSigninAware:function(e){v
ar t=this.signinAwares.indexOf(e);t!=-1?this.signinAwares.splice(t,1):console.wa
rn("Trying to detach unattached signin-aware")},getMissingScopes:function(){retu
rn this._requestedScopeArray.filter(function(e){return this._grantedScopeArray.i
ndexOf(e)===-1}.bind(this)).join(" ")},assertAuthInitialized:function(){if(!this
.clientId)throw new Error("AuthEngine not initialized. clientId has not been con
figured.");if(!("gapi"in window))throw new Error("AuthEngine not initialized. ga
pi has not loaded.");if(!("auth2"in window.gapi))throw new Error("AuthEngine not
initialized. auth2 not loaded.")},signIn:function(){this.assertAuthInitialized(
);var i={scope:this.getMissingScopes()};Object.keys(e).forEach(function(t){this[
t]&&""!==this[t]&&(i[e[t]]=this[t])},this);var n,o=gapi.auth2.getAuthInstance().
currentUser.get();this.offline||this.offlineAlwaysPrompt?(i.redirect_uri="postme
ssage",this.offlineAlwaysPrompt&&(i.approval_prompt="force"),n=gapi.auth2.getAut
hInstance().grantOfflineAccess(i)):n=o.getGrantedScopes()?o.grant(i):gapi.auth2.
getAuthInstance().signIn(i),n.then(function(e){var i;e.code?(t.offlineGranted=!0
,i=gapi.auth2.getAuthInstance().currentUser.get(),t.setOfflineCode(e.code)):i=e;
i.getAuthResponse()},function(e){"Access denied."!==e.reason&&this.signinAwares.
forEach(function(t){t.errorNotify(e)})}.bind(this))},signOut:function(){this.ass
ertAuthInitialized(),gapi.auth2.getAuthInstance().signOut().then(function(){},fu
nction(e){console.error(e)})}};t.init(),Polymer({is:"google-signin-aware",proper
ties:{appPackageName:{type:String,observer:"_appPackageNameChanged"},clientId:{t
ype:String,observer:"_clientIdChanged"},cookiePolicy:{type:String,observer:"_coo
kiePolicyChanged"},requestVisibleActions:{type:String,observer:"_requestVisibleA
ctionsChanged"},hostedDomain:{type:String,observer:"_hostedDomainChanged"},offli
ne:{type:Boolean,value:!1,observer:"_offlineChanged"},offlineAlwaysPrompt:{type:
Boolean,value:!1,observer:"_offlineAlwaysPromptChanged"},scopes:{type:String,val
ue:"profile",observer:"_scopesChanged"},openidPrompt:{type:String,value:"",obser
ver:"_openidPromptChanged"},signedIn:{type:Boolean,notify:!0,readOnly:!0},isAuth
orized:{type:Boolean,notify:!0,readOnly:!0,value:!1},needAdditionalAuth:{type:Bo
olean,notify:!0,readOnly:!0},hasPlusScopes:{type:Boolean,value:!1,notify:!0,read
Only:!0}},attached:function(){t.attachSigninAware(this)},detached:function(){t.d
etachSigninAware(this)},signIn:function(){t.signIn()},signOut:function(){t.signO
ut()},errorNotify:function(e){this.fire("google-signin-aware-error",e)},_appPack
ageNameChanged:function(e,i){t.appPackageName=e},_clientIdChanged:function(e,i){
t.clientId=e},_cookiePolicyChanged:function(e,i){t.cookiePolicy=e},_requestVisib
leActionsChanged:function(e,i){t.requestVisibleActions=e},_hostedDomainChanged:f
unction(e,i){t.hostedDomain=e},_offlineChanged:function(e,i){t.offline=e},_offli
neAlwaysPromptChanged:function(e,i){t.offlineAlwaysPrompt=e},_scopesChanged:func
tion(e,i){t.requestScopes(e),this._updateScopeStatus(void 0)},_openidPromptChang
ed:function(e,i){t.openidPrompt=e},_updateScopeStatus:function(e){var i=this.sig
nedIn&&t.hasGrantedScopes(this.scopes);i!==this.isAuthorized&&(this._setIsAuthor
ized(i),i?this.fire("google-signin-aware-success",e):this.fire("google-signin-aw
are-signed-out",e))},_updateOfflineCode:function(e){e&&this.fire("google-signin-
offline-success",{code:e})}})}()</script> <dom-module id="auth-signin" assetpath
="/res/imp/common/"> <template> <style>#avatar{border-radius:5px}a{color:#fff}.c
enter{vertical-align:middle}</style> <google-signin-aware id="aware" client-id="
[[client_id]]" offline="" scopes="email" on-google-signin-aware-success="_onSign
in" on-google-signin-aware-signed-out="_onSignout"> </google-signin-aware> <temp
late is="dom-if" if="[[!signed_in]]"> <div id="signinContainer"> <a on-tap="sign
In" href="#">Sign in</a> </div> </template> <template is="dom-if" if="[[signed_i
n]]"> <img class="center" id="avatar" src="[[profile.imageUrl]]" width="30" heig
ht="30"> <span class="center">[[profile.email]]</span> <span class="center">|</s
pan> <a class="center" on-tap="signOut" href="#">Sign out</a> </template> </temp
late> <script>"use strict";Polymer({is:"auth-signin",properties:{auth_headers:{t
ype:Object,computed:"_makeHeader(auth_response)",notify:!0},auth_response:{type:
Object,notify:!0},client_id:{type:String},profile:{type:Object,readOnly:!0,notif
y:!0},signed_in:{type:Boolean,readOnly:!0,value:!1,notify:!0}},ready:function(){
this.client_id&&window.setTimeout(function(){if(!this.signed_in&&!this._signingI
n)if("gapi"in window&&"auth2"in window.gapi){var i=gapi.auth2.getAuthInstance().
currentUser.get();i&&i.getAuthResponse().access_token?this._onSignin():window.se
tTimeout(this.ready.bind(this),50)}else window.setTimeout(this.ready.bind(this),
50)}.bind(this),50)},_onSignin:function(){this._signingIn=!0;var i=gapi.auth2.ge
tAuthInstance().currentUser.get(),e=i.getBasicProfile();this._setProfile({email:
e.getEmail(),imageUrl:e.getImageUrl()}),this.set("auth_response",i.getAuthRespon
se()),this._setSigned_in(!0),this.fire("auth-signin"),this.async(function(){cons
ole.log("reloading credentials"),i.reloadAuthResponse(),this._onSignin()},1e3*th
is.auth_response.expires_in),this._signingIn=!1},_onSignout:function(i){this._se
tSigned_in(!1),this._setProfile(null)},_makeHeader:function(i){return i?{authori
zation:i.token_type+" "+i.access_token}:{}},signIn:function(){this.$.aware.signI
n()},signOut:function(){this.$.aware.signOut()}})</script> </dom-module> <dom-mo
dule id="iron-a11y-announcer" assetpath="/res/imp/bower_components/iron-a11y-ann
ouncer/"> <template> <style>:host{display:inline-block;position:fixed;clip:rect(
0,0,0,0)}</style> <div aria-live$="[[mode]]">[[_text]]</div> </template> <script
>!function(){"use strict";Polymer.IronA11yAnnouncer=Polymer({is:"iron-a11y-annou
ncer",properties:{mode:{type:String,value:"polite"},_text:{type:String,value:""}
},created:function(){Polymer.IronA11yAnnouncer.instance||(Polymer.IronA11yAnnoun
cer.instance=this),document.body.addEventListener("iron-announce",this._onIronAn
nounce.bind(this))},announce:function(n){this._text="",this.async(function(){thi
s._text=n},100)},_onIronAnnounce:function(n){n.detail&&n.detail.text&&this.annou
nce(n.detail.text)}}),Polymer.IronA11yAnnouncer.instance=null,Polymer.IronA11yAn
nouncer.requestAvailability=function(){Polymer.IronA11yAnnouncer.instance||(Poly
mer.IronA11yAnnouncer.instance=document.createElement("iron-a11y-announcer")),do
cument.body.appendChild(Polymer.IronA11yAnnouncer.instance)}}()</script> </dom-m
odule> <script>Polymer.IronFitBehavior={properties:{sizingTarget:{type:Object,va
lue:function(){return this}},fitInto:{type:Object,value:window},noOverlap:{type:
Boolean},positionTarget:{type:Element},horizontalAlign:{type:String},verticalAli
gn:{type:String},dynamicAlign:{type:Boolean},horizontalOffset:{type:Number,value
:0,notify:!0},verticalOffset:{type:Number,value:0,notify:!0},autoFitOnAttach:{ty
pe:Boolean,value:!1},_fitInfo:{type:Object}},get _fitWidth(){var t;return t=this
.fitInto===window?this.fitInto.innerWidth:this.fitInto.getBoundingClientRect().w
idth},get _fitHeight(){var t;return t=this.fitInto===window?this.fitInto.innerHe
ight:this.fitInto.getBoundingClientRect().height},get _fitLeft(){var t;return t=
this.fitInto===window?0:this.fitInto.getBoundingClientRect().left},get _fitTop()
{var t;return t=this.fitInto===window?0:this.fitInto.getBoundingClientRect().top
},get _defaultPositionTarget(){var t=Polymer.dom(this).parentNode;return t&&t.no
deType===Node.DOCUMENT_FRAGMENT_NODE&&(t=t.host),t},get _localeHorizontalAlign()
{if(this._isRTL){if("right"===this.horizontalAlign)return"left";if("left"===this
.horizontalAlign)return"right"}return this.horizontalAlign},attached:function(){
this._isRTL="rtl"==window.getComputedStyle(this).direction,this.positionTarget=t
his.positionTarget||this._defaultPositionTarget,this.autoFitOnAttach&&("none"===
window.getComputedStyle(this).display?setTimeout(function(){this.fit()}.bind(thi
s)):this.fit())},fit:function(){this.position(),this.constrain(),this.center()},
_discoverInfo:function(){if(!this._fitInfo){var t=window.getComputedStyle(this),
i=window.getComputedStyle(this.sizingTarget);this._fitInfo={inlineStyle:{top:thi
s.style.top||"",left:this.style.left||"",position:this.style.position||""},sizer
InlineStyle:{maxWidth:this.sizingTarget.style.maxWidth||"",maxHeight:this.sizing
Target.style.maxHeight||"",boxSizing:this.sizingTarget.style.boxSizing||""},posi
tionedBy:{vertically:"auto"!==t.top?"top":"auto"!==t.bottom?"bottom":null,horizo
ntally:"auto"!==t.left?"left":"auto"!==t.right?"right":null},sizedBy:{height:"no
ne"!==i.maxHeight,width:"none"!==i.maxWidth,minWidth:parseInt(i.minWidth,10)||0,
minHeight:parseInt(i.minHeight,10)||0},margin:{top:parseInt(t.marginTop,10)||0,r
ight:parseInt(t.marginRight,10)||0,bottom:parseInt(t.marginBottom,10)||0,left:pa
rseInt(t.marginLeft,10)||0}},this.verticalOffset&&(this._fitInfo.margin.top=this
._fitInfo.margin.bottom=this.verticalOffset,this._fitInfo.inlineStyle.marginTop=
this.style.marginTop||"",this._fitInfo.inlineStyle.marginBottom=this.style.margi
nBottom||"",this.style.marginTop=this.style.marginBottom=this.verticalOffset+"px
"),this.horizontalOffset&&(this._fitInfo.margin.left=this._fitInfo.margin.right=
this.horizontalOffset,this._fitInfo.inlineStyle.marginLeft=this.style.marginLeft
||"",this._fitInfo.inlineStyle.marginRight=this.style.marginRight||"",this.style
.marginLeft=this.style.marginRight=this.horizontalOffset+"px")}},resetFit:functi
on(){var t=this._fitInfo||{};for(var i in t.sizerInlineStyle)this.sizingTarget.s
tyle[i]=t.sizerInlineStyle[i];for(var i in t.inlineStyle)this.style[i]=t.inlineS
tyle[i];this._fitInfo=null},refit:function(){var t=this.sizingTarget.scrollLeft,
i=this.sizingTarget.scrollTop;this.resetFit(),this.fit(),this.sizingTarget.scrol
lLeft=t,this.sizingTarget.scrollTop=i},position:function(){if(this.horizontalAli
gn||this.verticalAlign){this._discoverInfo(),this.style.position="fixed",this.si
zingTarget.style.boxSizing="border-box",this.style.left="0px",this.style.top="0p
x";var t=this.getBoundingClientRect(),i=this.__getNormalizedRect(this.positionTa
rget),e=this.__getNormalizedRect(this.fitInto),n=this._fitInfo.margin,o={width:t
.width+n.left+n.right,height:t.height+n.top+n.bottom},h=this.__getPosition(this.
_localeHorizontalAlign,this.verticalAlign,o,i,e),s=h.left+n.left,l=h.top+n.top,r
=Math.min(e.right-n.right,s+t.width),a=Math.min(e.bottom-n.bottom,l+t.height),g=
this._fitInfo.sizedBy.minWidth,f=this._fitInfo.sizedBy.minHeight;s<n.left&&(s=n.
left,r-s<g&&(s=r-g)),l<n.top&&(l=n.top,a-l<f&&(l=a-f)),this.sizingTarget.style.m
axWidth=r-s+"px",this.sizingTarget.style.maxHeight=a-l+"px",this.style.left=s-t.
left+"px",this.style.top=l-t.top+"px"}},constrain:function(){if(!this.horizontal
Align&&!this.verticalAlign){this._discoverInfo();var t=this._fitInfo;t.positione
dBy.vertically||(this.style.position="fixed",this.style.top="0px"),t.positionedB
y.horizontally||(this.style.position="fixed",this.style.left="0px"),this.sizingT
arget.style.boxSizing="border-box";var i=this.getBoundingClientRect();t.sizedBy.
height||this.__sizeDimension(i,t.positionedBy.vertically,"top","bottom","Height"
),t.sizedBy.width||this.__sizeDimension(i,t.positionedBy.horizontally,"left","ri
ght","Width")}},_sizeDimension:function(t,i,e,n,o){this.__sizeDimension(t,i,e,n,
o)},__sizeDimension:function(t,i,e,n,o){var h=this._fitInfo,s=this.__getNormaliz
edRect(this.fitInto),l="Width"===o?s.width:s.height,r=i===n,a=r?l-t[n]:t[e],g=h.
margin[r?e:n],f="offset"+o,p=this[f]-this.sizingTarget[f];this.sizingTarget.styl
e["max"+o]=l-g-a-p+"px"},center:function(){if(!this.horizontalAlign&&!this.verti
calAlign){this._discoverInfo();var t=this._fitInfo.positionedBy;if(!t.vertically
||!t.horizontally){this.style.position="fixed",t.vertically||(this.style.top="0p
x"),t.horizontally||(this.style.left="0px");var i=this.getBoundingClientRect(),e
=this.__getNormalizedRect(this.fitInto);if(!t.vertically){var n=e.top-i.top+(e.h
eight-i.height)/2;this.style.top=n+"px"}if(!t.horizontally){var o=e.left-i.left+
(e.width-i.width)/2;this.style.left=o+"px"}}}},__getNormalizedRect:function(t){r
eturn t===document.documentElement||t===window?{top:0,left:0,width:window.innerW
idth,height:window.innerHeight,right:window.innerWidth,bottom:window.innerHeight
}:t.getBoundingClientRect()},__getCroppedArea:function(t,i,e){var n=Math.min(0,t
.top)+Math.min(0,e.bottom-(t.top+i.height)),o=Math.min(0,t.left)+Math.min(0,e.ri
ght-(t.left+i.width));return Math.abs(n)*i.width+Math.abs(o)*i.height},__getPosi
tion:function(t,i,e,n,o){var h=[{verticalAlign:"top",horizontalAlign:"left",top:
n.top,left:n.left},{verticalAlign:"top",horizontalAlign:"right",top:n.top,left:n
.right-e.width},{verticalAlign:"bottom",horizontalAlign:"left",top:n.bottom-e.he
ight,left:n.left},{verticalAlign:"bottom",horizontalAlign:"right",top:n.bottom-e
.height,left:n.right-e.width}];if(this.noOverlap){for(var s=0,l=h.length;s<l;s++
){var r={};for(var a in h[s])r[a]=h[s][a];h.push(r)}h[0].top=h[1].top+=n.height,
h[2].top=h[3].top-=n.height,h[4].left=h[6].left+=n.width,h[5].left=h[7].left-=n.
width}i="auto"===i?null:i,t="auto"===t?null:t;for(var g,s=0;s<h.length;s++){var
f=h[s];if(!this.dynamicAlign&&!this.noOverlap&&f.verticalAlign===i&&f.horizontal
Align===t){g=f;break}var p=!(i&&f.verticalAlign!==i||t&&f.horizontalAlign!==t);i
f(this.dynamicAlign||p){g=g||f,f.croppedArea=this.__getCroppedArea(f,e,o);var d=
f.croppedArea-g.croppedArea;if((d<0||0===d&&p)&&(g=f),0===g.croppedArea&&p)break
}}return g}}</script> <dom-module id="iron-overlay-backdrop" assetpath="/res/imp
/bower_components/iron-overlay-behavior/"> <template> <style>:host{position:fixe
d;top:0;left:0;width:100%;height:100%;background-color:var(--iron-overlay-backdr
op-background-color,#000);opacity:0;transition:opacity .2s;pointer-events:none;@
apply(--iron-overlay-backdrop)}:host(.opened){opacity:var(--iron-overlay-backdro
p-opacity,.6);pointer-events:auto;@apply(--iron-overlay-backdrop-opened)}</style
> <content></content> </template> </dom-module> <script>!function(){"use strict"
;Polymer({is:"iron-overlay-backdrop",properties:{opened:{reflectToAttribute:!0,t
ype:Boolean,value:!1,observer:"_openedChanged"}},listeners:{transitionend:"_onTr
ansitionend"},created:function(){this.__openedRaf=null},attached:function(){this
.opened&&this._openedChanged(this.opened)},prepare:function(){this.opened&&!this
.parentNode&&Polymer.dom(document.body).appendChild(this)},open:function(){this.
opened=!0},close:function(){this.opened=!1},complete:function(){this.opened||thi
s.parentNode!==document.body||Polymer.dom(this.parentNode).removeChild(this)},_o
nTransitionend:function(e){e&&e.target===this&&this.complete()},_openedChanged:f
unction(e){if(e)this.prepare();else{var t=window.getComputedStyle(this);"0s"!==t
.transitionDuration&&0!=t.opacity||this.complete()}this.isAttached&&(this.__open
edRaf&&(window.cancelAnimationFrame(this.__openedRaf),this.__openedRaf=null),thi
s.scrollTop=this.scrollTop,this.__openedRaf=window.requestAnimationFrame(functio
n(){this.__openedRaf=null,this.toggleClass("opened",this.opened)}.bind(this)))}}
)}()</script> <script>Polymer.IronOverlayManagerClass=function(){this._overlays=
[],this._minimumZ=101,this._backdropElement=null,Polymer.Gestures.add(document,"
tap",this._onCaptureClick.bind(this)),document.addEventListener("focus",this._on
CaptureFocus.bind(this),!0),document.addEventListener("keydown",this._onCaptureK
eyDown.bind(this),!0)},Polymer.IronOverlayManagerClass.prototype={constructor:Po
lymer.IronOverlayManagerClass,get backdropElement(){return this._backdropElement
||(this._backdropElement=document.createElement("iron-overlay-backdrop")),this._
backdropElement},get deepActiveElement(){for(var e=document.activeElement||docum
ent.body;e.root&&Polymer.dom(e.root).activeElement;)e=Polymer.dom(e.root).active
Element;return e},_bringOverlayAtIndexToFront:function(e){var t=this._overlays[e
];if(t){var r=this._overlays.length-1,a=this._overlays[r];if(a&&this._shouldBeBe
hindOverlay(t,a)&&r--,!(e>=r)){var n=Math.max(this.currentOverlayZ(),this._minim
umZ);for(this._getZ(t)<=n&&this._applyOverlayZ(t,n);e<r;)this._overlays[e]=this.
_overlays[e+1],e++;this._overlays[r]=t}}},addOrRemoveOverlay:function(e){e.opene
d?this.addOverlay(e):this.removeOverlay(e)},addOverlay:function(e){var t=this._o
verlays.indexOf(e);if(t>=0)return this._bringOverlayAtIndexToFront(t),void this.
trackBackdrop();var r=this._overlays.length,a=this._overlays[r-1],n=Math.max(thi
s._getZ(a),this._minimumZ),o=this._getZ(e);if(a&&this._shouldBeBehindOverlay(e,a
)){this._applyOverlayZ(a,n),r--;var i=this._overlays[r-1];n=Math.max(this._getZ(
i),this._minimumZ)}o<=n&&this._applyOverlayZ(e,n),this._overlays.splice(r,0,e),t
his.trackBackdrop()},removeOverlay:function(e){var t=this._overlays.indexOf(e);t
!==-1&&(this._overlays.splice(t,1),this.trackBackdrop())},currentOverlay:functio
n(){var e=this._overlays.length-1;return this._overlays[e]},currentOverlayZ:func
tion(){return this._getZ(this.currentOverlay())},ensureMinimumZ:function(e){this
._minimumZ=Math.max(this._minimumZ,e)},focusOverlay:function(){var e=this.curren
tOverlay();e&&e._applyFocus()},trackBackdrop:function(){var e=this._overlayWithB
ackdrop();(e||this._backdropElement)&&(this.backdropElement.style.zIndex=this._g
etZ(e)-1,this.backdropElement.opened=!!e)},getBackdrops:function(){for(var e=[],
t=0;t<this._overlays.length;t++)this._overlays[t].withBackdrop&&e.push(this._ove
rlays[t]);return e},backdropZ:function(){return this._getZ(this._overlayWithBack
drop())-1},_overlayWithBackdrop:function(){for(var e=0;e<this._overlays.length;e
++)if(this._overlays[e].withBackdrop)return this._overlays[e]},_getZ:function(e)
{var t=this._minimumZ;if(e){var r=Number(e.style.zIndex||window.getComputedStyle
(e).zIndex);r===r&&(t=r)}return t},_setZ:function(e,t){e.style.zIndex=t},_applyO
verlayZ:function(e,t){this._setZ(e,t+2)},_overlayInPath:function(e){e=e||[];for(
var t=0;t<e.length;t++)if(e[t]._manager===this)return e[t]},_onCaptureClick:func
tion(e){var t=this.currentOverlay();t&&this._overlayInPath(Polymer.dom(e).path)!
==t&&t._onCaptureClick(e)},_onCaptureFocus:function(e){var t=this.currentOverlay
();t&&t._onCaptureFocus(e)},_onCaptureKeyDown:function(e){var t=this.currentOver
lay();t&&(Polymer.IronA11yKeysBehavior.keyboardEventMatchesKeys(e,"esc")?t._onCa
ptureEsc(e):Polymer.IronA11yKeysBehavior.keyboardEventMatchesKeys(e,"tab")&&t._o
nCaptureTab(e))},_shouldBeBehindOverlay:function(e,t){return!e.alwaysOnTop&&t.al
waysOnTop}},Polymer.IronOverlayManager=new Polymer.IronOverlayManagerClass</scri
pt> <script>!function(){"use strict";Polymer.IronOverlayBehaviorImpl={properties
:{opened:{observer:"_openedChanged",type:Boolean,value:!1,notify:!0},canceled:{o
bserver:"_canceledChanged",readOnly:!0,type:Boolean,value:!1},withBackdrop:{obse
rver:"_withBackdropChanged",type:Boolean},noAutoFocus:{type:Boolean,value:!1},no
CancelOnEscKey:{type:Boolean,value:!1},noCancelOnOutsideClick:{type:Boolean,valu
e:!1},closingReason:{type:Object},restoreFocusOnClose:{type:Boolean,value:!1},al
waysOnTop:{type:Boolean},_manager:{type:Object,value:Polymer.IronOverlayManager}
,_focusedChild:{type:Object}},listeners:{"iron-resize":"_onIronResize"},get back
dropElement(){return this._manager.backdropElement},get _focusNode(){return this
._focusedChild||Polymer.dom(this).querySelector("[autofocus]")||this},get _focus
ableNodes(){var e=["a[href]","area[href]","iframe","[tabindex]","[contentEditabl
e=true]"],t=["input","select","textarea","button"],i=e.join(':not([tabindex="-1"
]),')+':not([tabindex="-1"]),'+t.join(':not([disabled]):not([tabindex="-1"]),')+
':not([disabled]):not([tabindex="-1"])',s=Polymer.dom(this).querySelectorAll(i);
return this.tabIndex>=0&&s.splice(0,0,this),s.sort(function(e,t){return e.tabInd
ex===t.tabIndex?0:0===e.tabIndex||e.tabIndex>t.tabIndex?1:-1})},ready:function()
{this.__isAnimating=!1,this.__shouldRemoveTabIndex=!1,this.__firstFocusableNode=
this.__lastFocusableNode=null,this.__raf=null,this.__restoreFocusNode=null,this.
_ensureSetup()},attached:function(){this.opened&&this._openedChanged(this.opened
),this._observer=Polymer.dom(this).observeNodes(this._onNodesChange)},detached:f
unction(){Polymer.dom(this).unobserveNodes(this._observer),this._observer=null,t
his.__raf&&(window.cancelAnimationFrame(this.__raf),this.__raf=null),this._manag
er.removeOverlay(this)},toggle:function(){this._setCanceled(!1),this.opened=!thi
s.opened},open:function(){this._setCanceled(!1),this.opened=!0},close:function()
{this._setCanceled(!1),this.opened=!1},cancel:function(e){var t=this.fire("iron-
overlay-canceled",e,{cancelable:!0});t.defaultPrevented||(this._setCanceled(!0),
this.opened=!1)},invalidateTabbables:function(){this.__firstFocusableNode=this._
_lastFocusableNode=null},_ensureSetup:function(){this._overlaySetup||(this._over
laySetup=!0,this.style.outline="none",this.style.display="none")},_openedChanged
:function(e){e?this.removeAttribute("aria-hidden"):this.setAttribute("aria-hidde
n","true"),this.isAttached&&(this.__isAnimating=!0,this.__onNextAnimationFrame(t
his.__openedChanged))},_canceledChanged:function(){this.closingReason=this.closi
ngReason||{},this.closingReason.canceled=this.canceled},_withBackdropChanged:fun
ction(){this.withBackdrop&&!this.hasAttribute("tabindex")?(this.setAttribute("ta
bindex","-1"),this.__shouldRemoveTabIndex=!0):this.__shouldRemoveTabIndex&&(this
.removeAttribute("tabindex"),this.__shouldRemoveTabIndex=!1),this.opened&&this.i
sAttached&&this._manager.trackBackdrop()},_prepareRenderOpened:function(){this._
_restoreFocusNode=this._manager.deepActiveElement,this._preparePositioning(),thi
s.refit(),this._finishPositioning(),this.noAutoFocus&&document.activeElement===t
his._focusNode&&(this._focusNode.blur(),this.__restoreFocusNode.focus())},_rende
rOpened:function(){this._finishRenderOpened()},_renderClosed:function(){this._fi
nishRenderClosed()},_finishRenderOpened:function(){this.notifyResize(),this.__is
Animating=!1,this.fire("iron-overlay-opened")},_finishRenderClosed:function(){th
is.style.display="none",this.style.zIndex="",this.notifyResize(),this.__isAnimat
ing=!1,this.fire("iron-overlay-closed",this.closingReason)},_preparePositioning:
function(){this.style.transition=this.style.webkitTransition="none",this.style.t
ransform=this.style.webkitTransform="none",this.style.display=""},_finishPositio
ning:function(){this.style.display="none",this.scrollTop=this.scrollTop,this.sty
le.transition=this.style.webkitTransition="",this.style.transform=this.style.web
kitTransform="",this.style.display="",this.scrollTop=this.scrollTop},_applyFocus
:function(){if(this.opened)this.noAutoFocus||this._focusNode.focus();else{this._
focusNode.blur(),this._focusedChild=null,this.restoreFocusOnClose&&this.__restor
eFocusNode&&this.__restoreFocusNode.focus(),this.__restoreFocusNode=null;var e=t
his._manager.currentOverlay();e&&this!==e&&e._applyFocus()}},_onCaptureClick:fun
ction(e){this.noCancelOnOutsideClick||this.cancel(e)},_onCaptureFocus:function(e
){if(this.withBackdrop){var t=Polymer.dom(e).path;t.indexOf(this)===-1?(e.stopPr
opagation(),this._applyFocus()):this._focusedChild=t[0]}},_onCaptureEsc:function
(e){this.noCancelOnEscKey||this.cancel(e)},_onCaptureTab:function(e){if(this.wit
hBackdrop){this.__ensureFirstLastFocusables();var t=e.shiftKey,i=t?this.__firstF
ocusableNode:this.__lastFocusableNode,s=t?this.__lastFocusableNode:this.__firstF
ocusableNode,n=!1;if(i===s)n=!0;else{var o=this._manager.deepActiveElement;n=o==
=i||o===this}n&&(e.preventDefault(),this._focusedChild=s,this._applyFocus())}},_
onIronResize:function(){this.opened&&!this.__isAnimating&&this.__onNextAnimation
Frame(this.refit)},_onNodesChange:function(){this.opened&&!this.__isAnimating&&(
this.invalidateTabbables(),this.notifyResize())},__ensureFirstLastFocusables:fun
ction(){if(!this.__firstFocusableNode||!this.__lastFocusableNode){var e=this._fo
cusableNodes;this.__firstFocusableNode=e[0],this.__lastFocusableNode=e[e.length-
1]}},__openedChanged:function(){this.opened?(this._prepareRenderOpened(),this._m
anager.addOverlay(this),this._applyFocus(),this._renderOpened()):(this._manager.
removeOverlay(this),this._applyFocus(),this._renderClosed())},__onNextAnimationF
rame:function(e){this.__raf&&window.cancelAnimationFrame(this.__raf);var t=this;
this.__raf=window.requestAnimationFrame(function(){t.__raf=null,e.call(t)})}},Po
lymer.IronOverlayBehavior=[Polymer.IronFitBehavior,Polymer.IronResizableBehavior
,Polymer.IronOverlayBehaviorImpl]}()</script> <dom-module id="paper-toast" asset
path="/res/imp/bower_components/paper-toast/"> <template> <style>:host{display:b
lock;position:fixed;background-color:var(--paper-toast-background-color,#323232)
;color:var(--paper-toast-color,#f1f1f1);min-height:48px;min-width:288px;padding:
16px 24px;box-sizing:border-box;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-ra
dius:2px;margin:12px;font-size:14px;cursor:default;-webkit-transition:-webkit-tr
ansform .3s,opacity .3s;transition:transform .3s,opacity .3s;opacity:0;-webkit-t
ransform:translateY(100px);transform:translateY(100px);@apply(--paper-font-commo
n-base)}:host(.capsule){border-radius:24px}:host(.fit-bottom){width:100%;min-wid
th:0;border-radius:0;margin:0}:host(.paper-toast-open){opacity:1;-webkit-transfo
rm:translateY(0);transform:translateY(0)}</style> <span id="label">{{text}}</spa
n> <content></content> </template> <script>!function(){var e=null;Polymer({is:"p
aper-toast",behaviors:[Polymer.IronOverlayBehavior],properties:{fitInto:{type:Ob
ject,value:window,observer:"_onFitIntoChanged"},horizontalAlign:{type:String,val
ue:"left"},verticalAlign:{type:String,value:"bottom"},duration:{type:Number,valu
e:3e3},text:{type:String,value:""},noCancelOnOutsideClick:{type:Boolean,value:!0
},noAutoFocus:{type:Boolean,value:!0}},listeners:{transitionend:"__onTransitionE
nd"},get visible(){return Polymer.Base._warn("`visible` is deprecated, use `open
ed` instead"),this.opened},get _canAutoClose(){return this.duration>0&&this.dura
tion!==1/0},created:function(){this._autoClose=null,Polymer.IronA11yAnnouncer.re
questAvailability()},show:function(e){"string"==typeof e&&(e={text:e});for(var t
in e)0===t.indexOf("_")?Polymer.Base._warn('The property "'+t+'" is private and
was not set.'):t in this?this[t]=e[t]:Polymer.Base._warn('The property "'+t+'"
is not valid.');this.open()},hide:function(){this.close()},__onTransitionEnd:fun
ction(e){e&&e.target===this&&"opacity"===e.propertyName&&(this.opened?this._fini
shRenderOpened():this._finishRenderClosed())},_openedChanged:function(){null!==t
his._autoClose&&(this.cancelAsync(this._autoClose),this._autoClose=null),this.op
ened?(e&&e!==this&&e.close(),e=this,this.fire("iron-announce",{text:this.text}),
this._canAutoClose&&(this._autoClose=this.async(this.close,this.duration))):e===
this&&(e=null),Polymer.IronOverlayBehaviorImpl._openedChanged.apply(this,argumen
ts)},_renderOpened:function(){this.classList.add("paper-toast-open")},_renderClo
sed:function(){this.classList.remove("paper-toast-open")},_onFitIntoChanged:func
tion(e){this.positionTarget=e}})}()</script> </dom-module> <dom-module id="error
-toast" assetpath="/res/imp/common/"> <template> <paper-toast id="toast"></paper
-toast> </template> </dom-module> <script>Polymer({is:"error-toast",ready:functi
on(){document.addEventListener("error-sk",function(t){if(this.$.toast.close(),t.
detail.message){this.$.toast.text=t.detail.message;var e=1e4;void 0!==t.detail.d
uration&&(e=t.detail.duration),this.$.toast.duration=e,this.$.toast.show()}else
console.log("Empty message?",t)}.bind(this))}})</script> <dom-module id="swarmin
g-app" assetpath="/res/imp/common/"> <template> <style include="iron-flex">:host
{position:absolute;top:0;bottom:0;left:0;right:0}app-toolbar{background-color:#1
F78B4;color:#fff}app-toolbar.error{background-color:#b41f1f;color:#fff}app-toolb
ar a{color:#fff}.left{margin-right:15px}.right{margin-left:15px}.main-content{pa
dding:3px}.main-content a{color:#1F78B4}.menu-button{min-width:40px}.small,auth-
signin{font-size:.7em}#mobile_menu{z-index:10;--app-drawer-content-container:{ma
rgin-top:64px};}a[href]{color:#1F78B4}.menu-item{padding:8px 3px;border-bottom:1
px solid #CCC}paper-fab{position:fixed;bottom:5px;right:5px;background-color:#1F
78B4}paper-spinner-lite{--paper-spinner-color:var(--google-yellow-500)}</style>
<app-header-layout> <app-drawer id="mobile_menu"> <div class="menu-item"><a clas
s="left" href="/">Home</a></div> <div class="menu-item"><a class="left" href="/b
otlist">Bot List</a></div> <div class="menu-item"><a class="left" href="/tasklis
t">Task List</a></div> <div class="menu-item"><a class="left" href="/oldui">Old
UI</a></div> </app-drawer> <app-header fixed=""> <app-toolbar class$="[[_toolbar
Class(client_id)]]"> <paper-icon-button class="menu-button" icon="icons:menu" on
-tap="_toggleMobileMenu" hidden$="[[wide_layout]]"> </paper-icon-button> <div cl
ass="title left">[[name]]</div> <paper-spinner-lite class="left" active="[[_or(b
usy,_busy1,_busy2)]]"></paper-spinner-lite> <a class="left" href="/" hidden$="[[
!wide_layout]]">Home</a> <a class="left" href="/botlist" hidden$="[[!wide_layout
]]">Bot List</a> <a class="left" href="/tasklist" hidden$="[[!wide_layout]]">Tas
k List</a> <div class="flex" hidden$="[[!wide_layout]]"></div> <template is="dom
-if" if="[[client_id]]"> <div class="small right"> Server: <a href$="[[_versionL
ink(server_details)]]"> [[server_details.server_version]] </a> </div> <auth-sign
in class="right" client_id="[[client_id]]" auth_headers="{{auth_headers}}" profi
le="{{profile}}" signed_in="{{signed_in}}"> </auth-signin> </template> <template
is="dom-if" if="[[!client_id]]"> <div class="right">No OAauth client id found.<
/div> </template> </app-toolbar> </app-header> <div class="main-content"> <conte
nt></content> </div> <error-toast></error-toast> <a target="_blank" rel="noopene
r" href="https://bugs.chromium.org/p/chromium/issues/entry?components=Infra%3EPl
atform%3ESwarming&owner=kjlubick@chromium.org&status=Assigned"> <paper-f
ab mini="" icon="icons:bug-report"></paper-fab> </a> </app-header-layout> <iron-
media-query query="min-width: 600px" query-matches="{{wide_layout}}"></iron-medi
a-query> </template> <script>Polymer({is:"swarming-app",behaviors:[SwarmingBehav
iors.CommonBehavior],properties:{busy:{type:Boolean},client_id:{type:String},nam
e:{type:String},auth_headers:{type:Object,notify:!0,observer:"_load"},permission
s:{type:Object,value:function(){return{}},notify:!0},profile:{type:Object,notify
:!0},server_details:{type:Object,notify:!0},signed_in:{type:Boolean,value:!1,not
ify:!0},_busy1:{type:Boolean,value:!1},_busy2:{type:Boolean,value:!1}},_load:fun
ction(){this._getJsonAsync("permissions","/api/swarming/v1/server/permissions","
_busy1",this.auth_headers),this._getJsonAsync("server_details","/api/swarming/v1
/server/details","_busy2",this.auth_headers).catch(function(e){sk.errorMessage("
Http response: "+(e.status||" ")+" "+e.response)})},_toggleMobileMenu:function()
{this.$.mobile_menu.toggle()},_toolbarClass:function(e){return e?"":"error"},_ve
rsionLink:function(e){if(e&&e.server_version){var s=e.server_version.split("-");
if(2===s.length)return"https://github.com/luci/luci-py/commit/"+s[1]}}})</script
> </dom-module> <dom-module id="swarming-app-style" assetpath="/res/imp/common/"
> <style>*{font-family:sans-serif}a[href]{color:#1F78B4}button{min-width:5.14em;
background-color:#fff;color:#1f78b4;text-align:center;text-transform:uppercase;o
utline:0;border-radius:3px;padding:.6em 1.2em;border:solid #d3d3d3 1px;margin:.6
em;cursor:pointer}button:hover{background:#eee}button:focus{background-color:#dd
d;transition:background-color .1s cubic-bezier(.4,0,.2,1)}button.raised:active,b
utton:active{background-color:#999;transition:background-color .1s cubic-bezier(
.4,0,.2,1)}button:disabled{color:#999}button:disabled:hover{background:initial;c
ursor:initial}button.action:active{background-color:#A6CEE3;transition:backgroun
d-color .1s color .1s cubic-bezier(.4,0,.2,1)}button.action{color:#fff;backgroun
d:#1f78b4;border:none}button.action:disabled{color:#fff;background:#999;border:n
one}button.raised{transition:box-shadow .1s cubic-bezier(.4,0,.2,1);box-shadow:5
px 5px 18px 0 rgba(0,0,0,.3)}button.raised:active{box-shadow:2px 2px 5px 0 rgba(
0,0,0,.1)}option,select{padding:.4em 1.2em;background-color:#fff;border:none;lin
e-height:20px;vertical-align:middle}select{overflow-y:auto}</style> </dom-module
> <dom-module id="swarming-index" assetpath="/res/imp/index/"> <template> <style
include="swarming-app-style">.command{font-family:monospace;margin-bottom:10px;
margin-top:10px;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #
ccc;border-radius:4px}</style> <swarming-app client_id="[[client_id]]" auth_head
ers="{{_auth_headers}}" permissions="{{_permissions}}" server_details="{{_server
_details}}" name="Swarming Server" busy="[[_or(_busy1,busy2)]]"> <h2>Service Sta
tus</h2> <div>Server Version: [[_server_details.server_version]]</div> <div>Bot
Version: [[_server_details.bot_version]]</div> <ul> <li> <a href="/stats">Usage
statistics</a> </li> <li> <a href="/restricted/mapreduce/status">Map Reduce Jobs
</a> </li> <li> <a href$="[[_makeInstancesUrl(_server_details,_project_id)]]">Vi
ew version's instances on Cloud Console</a> </li> <li> <a></a><a href$="[[_makeE
rrorUrl(_project_id)]]">View server errors on Cloud Console</a> </li> <li> <a></
a><a href$="[[_makeLogUrl(_project_id)]]">View logs for HTTP 5xx on Cloud Consol
e</a> </li> </ul> <h2>Configuration</h2> <ul> <li> <a href="/restricted/config">
View server config</a> </li> <li> <a href="/restricted/upload/bootstrap">View/up
load bootstrap.py</a> </li> <li> <a href="/restricted/upload/bot_config">View/up
load bot_config.py</a> </li> <li> <a href="/auth/groups">View/edit user groups</
a> </li> </ul> <div hidden$="[[_cannotBootstrap(_permissions)]]"> <h2>Bootstrapp
ing a bot</h2> To bootstrap a bot, run one of these (all links are valid for 1 h
our): <ol> <li> <strong> TL;DR; </strong> <pre class="command">python -c "import
urllib; exec urllib.urlopen('[[_host_url]]/bootstrap?tok=[[_bootstrap_token]]')
.read()"</pre> </li> <li> Escaped version to pass as a ssh argument: <pre class=
"command">'python -c "import urllib; exec urllib.urlopen('"'[[_host_url]]/bootst
rap?tok=[[_bootstrap_token]]'"').read()"'</pre> </li> <li> Manually: <pre class=
"command" style="margin-bottom:0">mkdir bot; cd bot |
| 196 rm -f swarming_bot.zip; curl -sSLOJ [[_host_url]]/bot_code?tok=[[_bootstrap_to
ken]] | 196 rm -f swarming_bot.zip; curl -sSLOJ [[_host_url]]/bot_code?tok=[[_bootstrap_to
ken]] |
| 197 python swarming_bot.zip</pre> </li> </ol> </div> </swarming-app> </template> <
script>Polymer({is:"swarming-index",behaviors:[SwarmingBehaviors.CommonBehavior]
,properties:{client_id:{type:String},_auth_headers:{type:String},_bootstrap_toke
n:{type:String,value:"..."},_busy1:{type:Boolean,value:!1},_busy2:{type:Boolean,
value:!1},_host_url:{type:String,value:function(){return location.origin}},_perm
issions:{type:Object},_project_id:{type:String,value:function(){var t=location.h
ostname.indexOf(".appspot.com");return location.hostname.substring(0,t)}},_serve
r_details:{type:Object}},observers:["_fetchBootstrap(_permissions,_auth_headers)
"],_cannotBootstrap:function(t){return!(t&&t.get_bootstrap_token)},_fetchBootstr
ap:function(t,e){e&&t&&!this._cannotBootstrap(t)&&(this.set("_busy1",!0),sk.requ
est("POST","/api/swarming/v1/server/token",void 0,e).then(JSON.parse).then(funct
ion(t){this.set("_bootstrap_token",t.bootstrap_token),this.set("_busy1",!1)}.bin
d(this)).catch(function(t){console.log("Could not get token",t),this.set("_busy1
",!1)}.bind(this)))},_makeInstancesUrl:function(t,e){return"https://console.clou
d.google.com/appengine/instances?project="+e+"&versionId="+t.server_version},_ma
keErrorUrl:function(t){return"https://console.cloud.google.com/errors?project="+
t},_makeLogUrl:function(t){return"https://pantheon.corp.google.com/logs/viewer?f
ilters=status:500..599&project="+t}})</script> </dom-module><dom-module id="dyna
mic-table-style" assetpath="/res/imp/common/"> <template> <style>table{border-co
llapse:collapse;margin-left:5px}td,th{border:1px solid #DDD;padding:5px}th{posit
ion:relative}sort-toggle{position:absolute;right:0;top:.4em}</style> </template>
</dom-module> <script>!function(){SwarmingBehaviors.DynamicTableBehavior=[Swarm
ingBehaviors.CommonBehavior,{properties:{_columns:{type:Array},_filter:{type:Fun
ction},_filteredSortedItems:{type:Array,computed:"_filterAndSort(_items.*,_filte
r.*,_sort.*)"},_items:{type:Array},_plainColumns:{type:Array,computed:"_stripSpe
cial(_columns.*)"},_sort:{type:Object,computed:"_makeSortObject(_sortstr)"},_sor
tstr:{type:String},_verbose:{type:Boolean}},_column:function(t,i){var n=this._co
lumnMap[t];return n||(n=function(i){var n=this._attribute(i,t,"none");return thi
s._verbose?n.join(" | "):n[0]}),n.bind(this)(i)},_compare:function(t,i){if(!this
._sort)return 0;var n=1;"desc"===this._sort.direction&&(n=-1);var r=this._specia
lSort[this._sort.name];if(r)return r.bind(this)(n,t,i);var e=this._column(this._
sort.name,t),s=this._column(this._sort.name,i);return n*swarming.naturalCompare(
e,s)},_filterAndSort:function(){swarming.stableSort(this._items,this._compare.bi
nd(this));var t=this._items;return this._filter&&(t=t.filter(this._filter.bind(t
his))),t},_header:function(t){return this._headerMap[t]||t},_hide:function(t){re
turn this._columns.indexOf(t)===-1},_makeSortObject:function(t){if(t){var i=t.sp
lit(":");return 2!=i.length?{name:"id",direction:"asc"}:{name:i[0],direction:i[1
]}}},_sortChange:function(t){t&&t.detail&&t.detail.name&&this.set("_sortstr",t.d
etail.name+":"+t.detail.direction)},_stripSpecial:function(){return this._column
s.filter(function(t){return this._specialColumns.indexOf(t)===-1}.bind(this)).so
rt()},_commonColumns:function(){return{device_type:function(t){var i=this._attri
bute(t,"device_type","none");i=i[0];var n=swarming.alias.android(i);return"unkno
wn"===n?i:swarming.alias.apply(i,n)},gpu:function(t){var i=this._attribute(t,"gp
u","none"),n=[],r=[];return i.forEach(function(t){var i=swarming.alias.gpu(t);re
turn"unknown"===i?(n.push(t),void(t.indexOf(":")===-1&&r.push(t))):(n.push(swarm
ing.alias.apply(t,i)),void(t.indexOf(":")===-1&&r.push(swarming.alias.apply(t,i)
)))}.bind(this)),this._verbose||!r.length?n.join(" | "):r.join(" | ")},pool:func
tion(t){var i=this._attribute(t,"pool");return i.join(" | ")}}}}]}()</script><do
m-module id="sort-toggle" assetpath="/res/imp/common/"> <template> <style>:host{
display:inline-block;position:relative;min-width:20px;min-height:16px;vertical-a
lign:middle}iron-icon{position:absolute;left:0;cursor:pointer}.hidden{visibility
:hidden}</style> <span on-click="toggle"> <iron-icon style="top:0" class$="[[_hi
dden(direction,'asc')]]" icon="icons:arrow-drop-down"> </iron-icon> <iron-icon s
tyle="bottom:0" class$="[[_hidden(direction,'desc')]]" icon="icons:arrow-drop-up
"> </iron-icon> </span> </template> <script>Polymer({is:"sort-toggle",properties
:{current:{type:Object,observer:"_resetSort"},name:{type:String,observer:"_reset
Sort"},direction:{type:String,value:"",notify:!0}},toggle:function(){"asc"===thi
s.direction?this.set("direction","desc"):this.set("direction","asc"),this.fire("
sort_change",{direction:this.direction,name:this.name})},_hidden:function(t,e){r
eturn t===e?"hidden":""},_resetSort:function(){this.current&&this.current.name==
=this.name?this.set("direction",this.current.direction):this.set("direction","")
}})</script> </dom-module><dom-module id="url-param" assetpath="/res/imp/common/
"> <template> <paper-toast id="toast"></paper-toast> </template> <script>!functi
on(){Polymer({is:"url-param",properties:{default_value:{type:String},default_val
ues:{type:Array},multi:{type:Boolean,value:!1},name:{type:String},valid:{type:Ar
ray},value:{type:String,value:"",notify:!0,observer:"_valueChanged"},_loaded:{ty
pe:Boolean,value:!1}},observers:["_valueChanged(value.splices)"],ready:function(
){this._loaded=!0;var t=this._getURL();t&&this._isValid(t)?this.set("value",t):t
his.default_value&&this._isValid(this.default_value)?this.set("value",this.defau
lt_value):this.multi&&this.default_values&&this._isValid(this.default_values)?th
is.set("value",this.default_values):this._putURL()},_getURL:function(){var t=sk.
query.toParamSet(window.location.search.substring(1))[this.name];return t?this.m
ulti?t:t.length>1?(this._error("Multiple values provided for "+this.name+" but o
nly one accepted: "+t),null):t[0]:null},_putURL:function(){var t=sk.query.toPara
mSet(window.location.search.substring(1));delete t[this.name],!this.value||Array
.isArray(this.value)&&0==this.value.length||(this.multi?t[this.name]=this.value:
t[this.name]=[this.value]);var e=window.location.href.split("?")[0]+"?"+sk.query
.fromParamSet(t);window.history.replaceState("","",e)},_isValid:function(t){var
e=function(t){if(this.valid){for(var e=0;e<this.valid.length;e++)if(t==this.vali
d[e])return!0;return this._error("Invalid value for "+this.name+': "'+t+'". Must
be one of: '+this.valid),!1}return!0}.bind(this);if(!this.multi)return Array.is
Array(t)&&this._error("Multiple values provided for "+this.name+" but only one a
ccepted: "+t),e(t);if(!Array.isArray(t))return this._error("url-param-sk: Value
is not an array: "+t),!1;for(var i=0;i<t.length;i++)if(!e(t[i]))return!1;return!
0},_valueChanged:function(){this._loaded&&this._putURL()},_error:function(t){con
sole.log("[ERROR] "+t),this.set("$.toast.text",t),this.$.toast.show()}})}()</scr
ipt> </dom-module> <dom-module id="pageable-data" assetpath="/res/imp/common/">
<template> <style include="swarming-app-style"></style> <button on-tap="page" di
sabled$="[[_noMore(_cursor)]]"> [[label]] </button> </template> <script> (functi
on(){ | 197 python swarming_bot.zip</pre> </li> </ol> </div> </swarming-app> </template> <
script>Polymer({is:"swarming-index",behaviors:[SwarmingBehaviors.CommonBehavior]
,properties:{client_id:{type:String},_auth_headers:{type:String},_bootstrap_toke
n:{type:String,value:"..."},_busy1:{type:Boolean,value:!1},_busy2:{type:Boolean,
value:!1},_host_url:{type:String,value:function(){return location.origin}},_perm
issions:{type:Object},_project_id:{type:String,value:function(){var t=location.h
ostname.indexOf(".appspot.com");return location.hostname.substring(0,t)}},_serve
r_details:{type:Object}},observers:["_fetchBootstrap(_permissions,_auth_headers)
"],_cannotBootstrap:function(t){return!(t&&t.get_bootstrap_token)},_fetchBootstr
ap:function(t,e){e&&t&&!this._cannotBootstrap(t)&&(this.set("_busy1",!0),sk.requ
est("POST","/api/swarming/v1/server/token",void 0,e).then(JSON.parse).then(funct
ion(t){this.set("_bootstrap_token",t.bootstrap_token),this.set("_busy1",!1)}.bin
d(this)).catch(function(t){console.log("Could not get token",t),this.set("_busy1
",!1)}.bind(this)))},_makeInstancesUrl:function(t,e){return"https://console.clou
d.google.com/appengine/instances?project="+e+"&versionId="+t.server_version},_ma
keErrorUrl:function(t){return"https://console.cloud.google.com/errors?project="+
t},_makeLogUrl:function(t){return"https://pantheon.corp.google.com/logs/viewer?f
ilters=status:500..599&project="+t}})</script> </dom-module><dom-module id="dyna
mic-table-style" assetpath="/res/imp/common/"> <template> <style>table{border-co
llapse:collapse;margin-left:5px}td,th{border:1px solid #DDD;padding:5px}th{posit
ion:relative}sort-toggle{position:absolute;right:0;top:.4em}</style> </template>
</dom-module> <script>!function(){SwarmingBehaviors.DynamicTableBehavior=[Swarm
ingBehaviors.CommonBehavior,{properties:{_columns:{type:Array},_filter:{type:Fun
ction},_filteredSortedItems:{type:Array,computed:"_filterAndSort(_items.*,_filte
r.*,_sort.*)"},_items:{type:Array},_plainColumns:{type:Array,computed:"_stripSpe
cial(_columns.*)"},_sort:{type:Object,computed:"_makeSortObject(_sortstr)"},_sor
tstr:{type:String},_verbose:{type:Boolean}},_column:function(t,i){var n=this._co
lumnMap[t];return n||(n=function(i){var n=this._attribute(i,t,"none");return thi
s._verbose?n.join(" | "):n[0]}),n.bind(this)(i)},_compare:function(t,i){if(!this
._sort)return 0;var n=1;"desc"===this._sort.direction&&(n=-1);var r=this._specia
lSort[this._sort.name];if(r)return r.bind(this)(n,t,i);var e=this._column(this._
sort.name,t);"none"===e&&(e="ZZZ");var o=this._column(this._sort.name,i);return"
none"===o&&(o="ZZZ"),n*swarming.naturalCompare(e,o)},_filterAndSort:function(){s
warming.stableSort(this._items,this._compare.bind(this));var t=this._items;retur
n this._filter&&(t=t.filter(this._filter.bind(this))),t},_header:function(t){ret
urn this._headerMap[t]||t},_hide:function(t){return this._columns.indexOf(t)===-
1},_makeSortObject:function(t){if(t){var i=t.split(":");return 2!=i.length?{name
:"id",direction:"asc"}:{name:i[0],direction:i[1]}}},_sortChange:function(t){t&&t
.detail&&t.detail.name&&this.set("_sortstr",t.detail.name+":"+t.detail.direction
)},_stripSpecial:function(){return this._columns.filter(function(t){return this.
_specialColumns.indexOf(t)===-1}.bind(this)).sort()},_commonColumns:function(){r
eturn{device_type:function(t){var i=this._attribute(t,"device_type","none");i=i[
0];var n=swarming.alias.android(i);return"unknown"===n?i:swarming.alias.apply(i,
n)},gpu:function(t){var i=this._attribute(t,"gpu","none"),n=[],r=[];return i.for
Each(function(t){var i=swarming.alias.gpu(t);return"unknown"===i?(n.push(t),void
(t.indexOf(":")===-1&&r.push(t))):(n.push(swarming.alias.apply(t,i)),void(t.inde
xOf(":")===-1&&r.push(swarming.alias.apply(t,i))))}.bind(this)),this._verbose||!
r.length?n.join(" | "):r.join(" | ")},pool:function(t){var i=this._attribute(t,"
pool");return i.join(" | ")}}}}]}()</script><dom-module id="sort-toggle" assetpa
th="/res/imp/common/"> <template> <style>:host{display:inline-block;position:rel
ative;min-width:20px;min-height:16px;vertical-align:middle}iron-icon{position:ab
solute;left:0;cursor:pointer}.hidden{visibility:hidden}</style> <span on-click="
toggle"> <iron-icon style="top:0" class$="[[_hidden(direction,'asc')]]" icon="ic
ons:arrow-drop-down"> </iron-icon> <iron-icon style="bottom:0" class$="[[_hidden
(direction,'desc')]]" icon="icons:arrow-drop-up"> </iron-icon> </span> </templat
e> <script>Polymer({is:"sort-toggle",properties:{current:{type:Object,observer:"
_resetSort"},name:{type:String,observer:"_resetSort"},direction:{type:String,val
ue:"",notify:!0}},toggle:function(){"asc"===this.direction?this.set("direction",
"desc"):this.set("direction","asc"),this.fire("sort_change",{direction:this.dire
ction,name:this.name})},_hidden:function(t,e){return t===e?"hidden":""},_resetSo
rt:function(){this.current&&this.current.name===this.name?this.set("direction",t
his.current.direction):this.set("direction","")}})</script> </dom-module><dom-mo
dule id="url-param" assetpath="/res/imp/common/"> <template> <paper-toast id="to
ast"></paper-toast> </template> <script>!function(){Polymer({is:"url-param",prop
erties:{default_value:{type:String},default_values:{type:Array},multi:{type:Bool
ean,value:!1},name:{type:String},valid:{type:Array},value:{type:String,value:"",
notify:!0,observer:"_valueChanged"},_loaded:{type:Boolean,value:!1}},observers:[
"_valueChanged(value.splices)"],ready:function(){this._loaded=!0;var t=this._get
URL();t&&this._isValid(t)?this.set("value",t):this.default_value&&this._isValid(
this.default_value)?this.set("value",this.default_value):this.multi&&this.defaul
t_values&&this._isValid(this.default_values)?this.set("value",this.default_value
s):this._putURL()},_getURL:function(){var t=sk.query.toParamSet(window.location.
search.substring(1))[this.name];return t?this.multi?t:t.length>1?(this._error("M
ultiple values provided for "+this.name+" but only one accepted: "+t),null):t[0]
:null},_putURL:function(){var t=sk.query.toParamSet(window.location.search.subst
ring(1));delete t[this.name],!this.value||Array.isArray(this.value)&&0==this.val
ue.length||(this.multi?t[this.name]=this.value:t[this.name]=[this.value]);var e=
window.location.href.split("?")[0]+"?"+sk.query.fromParamSet(t);window.history.r
eplaceState("","",e)},_isValid:function(t){var e=function(t){if(this.valid){for(
var e=0;e<this.valid.length;e++)if(t==this.valid[e])return!0;return this._error(
"Invalid value for "+this.name+': "'+t+'". Must be one of: '+this.valid),!1}retu
rn!0}.bind(this);if(!this.multi)return Array.isArray(t)&&this._error("Multiple v
alues provided for "+this.name+" but only one accepted: "+t),e(t);if(!Array.isAr
ray(t))return this._error("url-param-sk: Value is not an array: "+t),!1;for(var
i=0;i<t.length;i++)if(!e(t[i]))return!1;return!0},_valueChanged:function(){this.
_loaded&&this._putURL()},_error:function(t){console.log("[ERROR] "+t),this.set("
$.toast.text",t),this.$.toast.show()}})}()</script> </dom-module> <dom-module id
="pageable-data" assetpath="/res/imp/common/"> <template> <style include="swarmi
ng-app-style"></style> <button on-tap="page" disabled$="[[_noMore(_cursor)]]"> [
[label]] </button> </template> <script> (function(){ |
| 198 var END = "END"; | 198 var END = "END"; |
| 199 Polymer({ | 199 Polymer({ |
| 200 is: 'pageable-data', | 200 is: 'pageable-data', |
| 201 | 201 |
| 202 properties: { | 202 properties: { |
| 203 // input | 203 // input |
| 204 label: { | 204 label: { |
| 205 type: String, | 205 type: String, |
| 206 value: "Show More", | 206 value: "Show More", |
| 207 }, | 207 }, |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 299 console.log("Reason for failure of request to " + this._url, reason); | 299 console.log("Reason for failure of request to " + this._url, reason); |
| 300 sk.errorMessage("Could not get next set of results. Try reloading the
page?", 0); | 300 sk.errorMessage("Could not get next set of results. Try reloading the
page?", 0); |
| 301 this.set("busy", false); | 301 this.set("busy", false); |
| 302 }.bind(this)); | 302 }.bind(this)); |
| 303 }, | 303 }, |
| 304 | 304 |
| 305 _noMore: function(cursor) { | 305 _noMore: function(cursor) { |
| 306 return cursor === END; | 306 return cursor === END; |
| 307 } | 307 } |
| 308 }); | 308 }); |
| 309 })(); </script> </dom-module><script>Polymer({is:"iron-a11y-keys",behaviors:[P
olymer.IronA11yKeysBehavior],properties:{target:{type:Object,observer:"_targetCh
anged"},keys:{type:String,reflectToAttribute:!0,observer:"_keysChanged"}},attach
ed:function(){this.target||(this.target=this.parentNode)},_targetChanged:functio
n(e){this.keyEventTarget=e},_keysChanged:function(){this.removeOwnKeyBindings(),
this.addOwnKeyBinding(this.keys,"_fireKeysPressed")},_fireKeysPressed:function(e
){this.fire("keys-pressed",e.detail,{})}})</script> <script>Polymer({is:"iron-se
lector",behaviors:[Polymer.IronMultiSelectableBehavior]})</script> <script>Polym
er.IronValidatableBehaviorMeta=null,Polymer.IronValidatableBehavior={properties:
{validator:{type:String},invalid:{notify:!0,reflectToAttribute:!0,type:Boolean,v
alue:!1},_validatorMeta:{type:Object},validatorType:{type:String,value:"validato
r"},_validator:{type:Object,computed:"__computeValidator(validator)"}},observers
:["_invalidChanged(invalid)"],registered:function(){Polymer.IronValidatableBehav
iorMeta=new Polymer.IronMeta({type:"validator"})},_invalidChanged:function(){thi
s.invalid?this.setAttribute("aria-invalid","true"):this.removeAttribute("aria-in
valid")},hasValidator:function(){return null!=this._validator},validate:function
(a){return this.invalid=!this._getValidity(a),!this.invalid},_getValidity:functi
on(a){return!this.hasValidator()||this._validator.validate(a)},__computeValidato
r:function(){return Polymer.IronValidatableBehaviorMeta&&Polymer.IronValidatable
BehaviorMeta.byKey(this.validator)}}</script> <script>Polymer.IronFormElementBeh
avior={properties:{name:{type:String},value:{notify:!0,type:String},required:{ty
pe:Boolean,value:!1},_parentForm:{type:Object}},attached:function(){this.fire("i
ron-form-element-register")},detached:function(){this._parentForm&&this._parentF
orm.fire("iron-form-element-unregister",{target:this})}}</script> <script>Polyme
r.IronCheckedElementBehaviorImpl={properties:{checked:{type:Boolean,value:!1,ref
lectToAttribute:!0,notify:!0,observer:"_checkedChanged"},toggles:{type:Boolean,v
alue:!0,reflectToAttribute:!0},value:{type:String,value:"on",observer:"_valueCha
nged"}},observers:["_requiredChanged(required)"],created:function(){this._hasIro
nCheckedElementBehavior=!0},_getValidity:function(e){return this.disabled||!this
.required||this.checked},_requiredChanged:function(){this.required?this.setAttri
bute("aria-required","true"):this.removeAttribute("aria-required")},_checkedChan
ged:function(){this.active=this.checked,this.fire("iron-change")},_valueChanged:
function(){void 0!==this.value&&null!==this.value||(this.value="on")}},Polymer.I
ronCheckedElementBehavior=[Polymer.IronFormElementBehavior,Polymer.IronValidatab
leBehavior,Polymer.IronCheckedElementBehaviorImpl]</script> <script>Polymer.Pape
rCheckedElementBehaviorImpl={_checkedChanged:function(){Polymer.IronCheckedEleme
ntBehaviorImpl._checkedChanged.call(this),this.hasRipple()&&(this.checked?this._
ripple.setAttribute("checked",""):this._ripple.removeAttribute("checked"))},_but
tonStateChanged:function(){Polymer.PaperRippleBehavior._buttonStateChanged.call(
this),this.disabled||this.isAttached&&(this.checked=this.active)}},Polymer.Paper
CheckedElementBehavior=[Polymer.PaperInkyFocusBehavior,Polymer.IronCheckedElemen
tBehavior,Polymer.PaperCheckedElementBehaviorImpl]</script> <dom-module id="pape
r-checkbox" assetpath="/res/imp/bower_components/paper-checkbox/"> <template str
ip-whitespace=""> <style>:host{display:inline-block;white-space:nowrap;cursor:po
inter;--calculated-paper-checkbox-size:var(--paper-checkbox-size, 18px);--calcul
ated-paper-checkbox-ink-size:var(--paper-checkbox-ink-size, -1px);@apply(--paper
-font-common-base);line-height:0;-webkit-tap-highlight-color:transparent}:host([
hidden]){display:none!important}:host(:focus){outline:0}.hidden{display:none}#ch
eckboxContainer{display:inline-block;position:relative;width:var(--calculated-pa
per-checkbox-size);height:var(--calculated-paper-checkbox-size);min-width:var(--
calculated-paper-checkbox-size);margin:var(--paper-checkbox-margin,initial);vert
ical-align:var(--paper-checkbox-vertical-align,middle);background-color:var(--pa
per-checkbox-unchecked-background-color,transparent)}#ink{position:absolute;top:
calc(0px - (var(--calculated-paper-checkbox-ink-size) - var(--calculated-paper-c
heckbox-size))/ 2);left:calc(0px - (var(--calculated-paper-checkbox-ink-size) -
var(--calculated-paper-checkbox-size))/ 2);width:var(--calculated-paper-checkbox
-ink-size);height:var(--calculated-paper-checkbox-ink-size);color:var(--paper-ch
eckbox-unchecked-ink-color,var(--primary-text-color));opacity:.6;pointer-events:
none}:host-context([dir=rtl]) #ink{right:calc(0px - (var(--calculated-paper-chec
kbox-ink-size) - var(--calculated-paper-checkbox-size))/ 2);left:auto}#ink[check
ed]{color:var(--paper-checkbox-checked-ink-color,var(--primary-color))}#checkbox
{position:relative;box-sizing:border-box;height:100%;border:solid 2px;border-col
or:var(--paper-checkbox-unchecked-color,var(--primary-text-color));border-radius
:2px;pointer-events:none;-webkit-transition:background-color 140ms,border-color
140ms;transition:background-color 140ms,border-color 140ms}#checkbox.checked #ch
eckmark{-webkit-animation:checkmark-expand 140ms ease-out forwards;animation:che
ckmark-expand 140ms ease-out forwards}@-webkit-keyframes checkmark-expand{0%{-we
bkit-transform:scale(0,0) rotate(45deg)}100%{-webkit-transform:scale(1,1) rotate
(45deg)}}@keyframes checkmark-expand{0%{transform:scale(0,0) rotate(45deg)}100%{
transform:scale(1,1) rotate(45deg)}}#checkbox.checked{background-color:var(--pap
er-checkbox-checked-color,var(--primary-color));border-color:var(--paper-checkbo
x-checked-color,var(--primary-color))}#checkmark{position:absolute;width:36%;hei
ght:70%;border-style:solid;border-top:none;border-left:none;border-right-width:c
alc(2/15 * var(--calculated-paper-checkbox-size));border-bottom-width:calc(2/15
* var(--calculated-paper-checkbox-size));border-color:var(--paper-checkbox-check
mark-color,#fff);-webkit-transform-origin:97% 86%;transform-origin:97% 86%;box-s
izing:content-box}:host-context([dir=rtl]) #checkmark{-webkit-transform-origin:5
0% 14%;transform-origin:50% 14%}#checkboxLabel{position:relative;display:inline-
block;vertical-align:middle;padding-left:var(--paper-checkbox-label-spacing,8px)
;white-space:normal;line-height:normal;color:var(--paper-checkbox-label-color,va
r(--primary-text-color));@apply(--paper-checkbox-label)}:host([checked]) #checkb
oxLabel{color:var(--paper-checkbox-label-checked-color,var(--paper-checkbox-labe
l-color,var(--primary-text-color)));@apply(--paper-checkbox-label-checked)}:host
-context([dir=rtl]) #checkboxLabel{padding-right:var(--paper-checkbox-label-spac
ing,8px);padding-left:0}#checkboxLabel[hidden]{display:none}:host([disabled]) #c
heckbox{opacity:.5;border-color:var(--paper-checkbox-unchecked-color,var(--prima
ry-text-color))}:host([disabled][checked]) #checkbox{background-color:var(--pape
r-checkbox-unchecked-color,var(--primary-text-color));opacity:.5}:host([disabled
]) #checkboxLabel{opacity:.65}#checkbox.invalid:not(.checked){border-color:var(-
-paper-checkbox-error-color,var(--error-color))}</style> <div id="checkboxContai
ner"> <div id="checkbox" class$="[[_computeCheckboxClass(checked, invalid)]]"> <
div id="checkmark" class$="[[_computeCheckmarkClass(checked)]]"></div> </div> </
div> <div id="checkboxLabel"><content></content></div> </template> <script>Polym
er({is:"paper-checkbox",behaviors:[Polymer.PaperCheckedElementBehavior],hostAttr
ibutes:{role:"checkbox","aria-checked":!1,tabindex:0},properties:{ariaActiveAttr
ibute:{type:String,value:"aria-checked"}},attached:function(){var e=this.getComp
utedStyleValue("--calculated-paper-checkbox-ink-size");if("-1px"===e){var t=pars
eFloat(this.getComputedStyleValue("--calculated-paper-checkbox-size")),a=Math.fl
oor(8/3*t);a%2!==t%2&&a++,this.customStyle["--paper-checkbox-ink-size"]=a+"px",t
his.updateStyles()}},_computeCheckboxClass:function(e,t){var a="";return e&&(a+=
"checked "),t&&(a+="invalid"),a},_computeCheckmarkClass:function(e){return e?"":
"hidden"},_createRipple:function(){return this._rippleContainer=this.$.checkboxC
ontainer,Polymer.PaperInkyFocusBehaviorImpl._createRipple.call(this)}})</script>
</dom-module> <script>Polymer({is:"iron-input",extends:"input",behaviors:[Polym
er.IronValidatableBehavior],properties:{bindValue:{observer:"_bindValueChanged",
type:String},preventInvalidInput:{type:Boolean},allowedPattern:{type:String,obse
rver:"_allowedPatternChanged"},_previousValidInput:{type:String,value:""},_patte
rnAlreadyChecked:{type:Boolean,value:!1}},listeners:{input:"_onInput",keypress:"
_onKeypress"},registered:function(){this._canDispatchEventOnDisabled()||(this._o
rigDispatchEvent=this.dispatchEvent,this.dispatchEvent=this._dispatchEventFirefo
xIE)},created:function(){Polymer.IronA11yAnnouncer.requestAvailability()},_canDi
spatchEventOnDisabled:function(){var e=document.createElement("input"),t=!1;e.di
sabled=!0,e.addEventListener("feature-check-dispatch-event",function(){t=!0});tr
y{e.dispatchEvent(new Event("feature-check-dispatch-event"))}catch(e){}return t}
,_dispatchEventFirefoxIE:function(){var e=this.disabled;this.disabled=!1,this._o
rigDispatchEvent.apply(this,arguments),this.disabled=e},get _patternRegExp(){var
e;if(this.allowedPattern)e=new RegExp(this.allowedPattern);else switch(this.typ
e){case"number":e=/[0-9.,e-]/}return e},ready:function(){this.bindValue=this.val
ue},_bindValueChanged:function(){this.value!==this.bindValue&&(this.value=this.b
indValue||0===this.bindValue||this.bindValue===!1?this.bindValue:""),this.fire("
bind-value-changed",{value:this.bindValue})},_allowedPatternChanged:function(){t
his.preventInvalidInput=!!this.allowedPattern},_onInput:function(){if(this.preve
ntInvalidInput&&!this._patternAlreadyChecked){var e=this._checkPatternValidity()
;e||(this._announceInvalidCharacter("Invalid string of characters not entered.")
,this.value=this._previousValidInput)}this.bindValue=this.value,this._previousVa
lidInput=this.value,this._patternAlreadyChecked=!1},_isPrintable:function(e){var
t=8==e.keyCode||9==e.keyCode||13==e.keyCode||27==e.keyCode,i=19==e.keyCode||20=
=e.keyCode||45==e.keyCode||46==e.keyCode||144==e.keyCode||145==e.keyCode||e.keyC
ode>32&&e.keyCode<41||e.keyCode>111&&e.keyCode<124;return!(t||0==e.charCode&&i)}
,_onKeypress:function(e){if(this.preventInvalidInput||"number"===this.type){var
t=this._patternRegExp;if(t&&!(e.metaKey||e.ctrlKey||e.altKey)){this._patternAlre
adyChecked=!0;var i=String.fromCharCode(e.charCode);this._isPrintable(e)&&!t.tes
t(i)&&(e.preventDefault(),this._announceInvalidCharacter("Invalid character "+i+
" not entered."))}}},_checkPatternValidity:function(){var e=this._patternRegExp;
if(!e)return!0;for(var t=0;t<this.value.length;t++)if(!e.test(this.value[t]))ret
urn!1;return!0},validate:function(){var e=this.checkValidity();return e&&(this.r
equired&&""===this.value?e=!1:this.hasValidator()&&(e=Polymer.IronValidatableBeh
avior.validate.call(this,this.value))),this.invalid=!e,this.fire("iron-input-val
idate"),e},_announceInvalidCharacter:function(e){this.fire("iron-announce",{text
:e})}})</script> <script>Polymer.PaperInputHelper={},Polymer.PaperInputHelper.Ne
xtLabelID=1,Polymer.PaperInputHelper.NextAddonID=1,Polymer.PaperInputBehaviorImp
l={properties:{label:{type:String},value:{notify:!0,type:String},disabled:{type:
Boolean,value:!1},invalid:{type:Boolean,value:!1,notify:!0},preventInvalidInput:
{type:Boolean},allowedPattern:{type:String},type:{type:String},list:{type:String
},pattern:{type:String},required:{type:Boolean,value:!1},errorMessage:{type:Stri
ng},charCounter:{type:Boolean,value:!1},noLabelFloat:{type:Boolean,value:!1},alw
aysFloatLabel:{type:Boolean,value:!1},autoValidate:{type:Boolean,value:!1},valid
ator:{type:String},autocomplete:{type:String,value:"off"},autofocus:{type:Boolea
n,observer:"_autofocusChanged"},inputmode:{type:String},minlength:{type:Number},
maxlength:{type:Number},min:{type:String},max:{type:String},step:{type:String},n
ame:{type:String},placeholder:{type:String,value:""},readonly:{type:Boolean,valu
e:!1},size:{type:Number},autocapitalize:{type:String,value:"none"},autocorrect:{
type:String,value:"off"},autosave:{type:String},results:{type:Number},accept:{ty
pe:String},multiple:{type:Boolean},_ariaDescribedBy:{type:String,value:""},_aria
LabelledBy:{type:String,value:""}},listeners:{"addon-attached":"_onAddonAttached
"},keyBindings:{"shift+tab:keydown":"_onShiftTabDown"},hostAttributes:{tabindex:
0},get inputElement(){return this.$.input},get _focusableElement(){return this.i
nputElement},registered:function(){this._typesThatHaveText=["date","datetime","d
atetime-local","month","time","week","file"]},attached:function(){this._updateAr
iaLabelledBy(),this.inputElement&&this._typesThatHaveText.indexOf(this.inputElem
ent.type)!==-1&&(this.alwaysFloatLabel=!0)},_appendStringWithSpace:function(e,t)
{return e=e?e+" "+t:t},_onAddonAttached:function(e){var t=e.path?e.path[0]:e.tar
get;if(t.id)this._ariaDescribedBy=this._appendStringWithSpace(this._ariaDescribe
dBy,t.id);else{var a="paper-input-add-on-"+Polymer.PaperInputHelper.NextAddonID+
+;t.id=a,this._ariaDescribedBy=this._appendStringWithSpace(this._ariaDescribedBy
,a)}},validate:function(){return this.inputElement.validate()},_focusBlurHandler
:function(e){Polymer.IronControlState._focusBlurHandler.call(this,e),this.focuse
d&&!this._shiftTabPressed&&this._focusableElement.focus()},_onShiftTabDown:funct
ion(e){var t=this.getAttribute("tabindex");this._shiftTabPressed=!0,this.setAttr
ibute("tabindex","-1"),this.async(function(){this.setAttribute("tabindex",t),thi
s._shiftTabPressed=!1},1)},_handleAutoValidate:function(){this.autoValidate&&thi
s.validate()},updateValueAndPreserveCaret:function(e){try{var t=this.inputElemen
t.selectionStart;this.value=e,this.inputElement.selectionStart=t,this.inputEleme
nt.selectionEnd=t}catch(t){this.value=e}},_computeAlwaysFloatLabel:function(e,t)
{return t||e},_updateAriaLabelledBy:function(){var e=Polymer.dom(this.root).quer
ySelector("label");if(!e)return void(this._ariaLabelledBy="");var t;e.id?t=e.id:
(t="paper-input-label-"+Polymer.PaperInputHelper.NextLabelID++,e.id=t),this._ari
aLabelledBy=t},_onChange:function(e){this.shadowRoot&&this.fire(e.type,{sourceEv
ent:e},{node:this,bubbles:e.bubbles,cancelable:e.cancelable})},_autofocusChanged
:function(){if(this.autofocus&&this._focusableElement){var e=document.activeElem
ent,t=e instanceof HTMLElement,a=t&&e!==document.body&&e!==document.documentElem
ent;a||this._focusableElement.focus()}}},Polymer.PaperInputBehavior=[Polymer.Iro
nControlState,Polymer.IronA11yKeysBehavior,Polymer.PaperInputBehaviorImpl]</scri
pt> <script>Polymer.PaperInputAddonBehavior={hostAttributes:{"add-on":""},attach
ed:function(){this.fire("addon-attached")},update:function(t){}}</script> <dom-m
odule id="paper-input-char-counter" assetpath="/res/imp/bower_components/paper-i
nput/"> <template> <style>:host{display:inline-block;float:right;@apply(--paper-
font-caption);@apply(--paper-input-char-counter)}:host([hidden]){display:none!im
portant}:host-context([dir=rtl]){float:left}</style> <span>[[_charCounterStr]]</
span> </template> </dom-module> <script>Polymer({is:"paper-input-char-counter",b
ehaviors:[Polymer.PaperInputAddonBehavior],properties:{_charCounterStr:{type:Str
ing,value:"0"}},update:function(t){if(t.inputElement){t.value=t.value||"";var e=
t.value.toString().length.toString();t.inputElement.hasAttribute("maxlength")&&(
e+="/"+t.inputElement.getAttribute("maxlength")),this._charCounterStr=e}}})</scr
ipt> <dom-module id="paper-input-container" assetpath="/res/imp/bower_components
/paper-input/"> <template> <style>:host{display:block;padding:8px 0;@apply(--pap
er-input-container)}:host([inline]){display:inline-block}:host([disabled]){point
er-events:none;opacity:.33;@apply(--paper-input-container-disabled)}:host([hidde
n]){display:none!important}.floated-label-placeholder{@apply(--paper-font-captio
n)}.underline{position:relative}.focused-line{@apply(--layout-fit);background:va
r(--paper-input-container-focus-color,--primary-color);height:2px;-webkit-transf
orm-origin:center center;transform-origin:center center;-webkit-transform:scale3
d(0,1,1);transform:scale3d(0,1,1);@apply(--paper-input-container-underline-focus
)}.underline.is-highlighted .focused-line{-webkit-transform:none;transform:none;
-webkit-transition:-webkit-transform .25s;transition:transform .25s;@apply(--pap
er-transition-easing)}.underline.is-invalid .focused-line{background:var(--paper
-input-container-invalid-color,--error-color);-webkit-transform:none;transform:n
one;-webkit-transition:-webkit-transform .25s;transition:transform .25s;@apply(-
-paper-transition-easing)}.unfocused-line{@apply(--layout-fit);background:var(--
paper-input-container-color,--secondary-text-color);height:1px;@apply(--paper-in
put-container-underline)}:host([disabled]) .unfocused-line{border-bottom:1px das
hed;border-color:var(--paper-input-container-color,--secondary-text-color);backg
round:0 0;@apply(--paper-input-container-underline-disabled)}.label-and-input-co
ntainer{@apply(--layout-flex-auto);@apply(--layout-relative);width:100%;max-widt
h:100%}.input-content{@apply(--layout-horizontal);@apply(--layout-center);positi
on:relative}.input-content ::content .paper-input-label,.input-content ::content
label{position:absolute;top:0;right:0;left:0;width:100%;font:inherit;color:var(
--paper-input-container-color,--secondary-text-color);-webkit-transition:-webkit
-transform .25s,width .25s;transition:transform .25s,width .25s;-webkit-transfor
m-origin:left top;transform-origin:left top;@apply(--paper-font-common-nowrap);@
apply(--paper-font-subhead);@apply(--paper-input-container-label);@apply(--paper
-transition-easing)}.input-content.label-is-floating ::content .paper-input-labe
l,.input-content.label-is-floating ::content label{-webkit-transform:translateY(
-75%) scale(.75);transform:translateY(-75%) scale(.75);width:133%;@apply(--paper
-input-container-label-floating)}:host-context([dir=rtl]) .input-content.label-i
s-floating ::content .paper-input-label,:host-context([dir=rtl]) .input-content.
label-is-floating ::content label{width:100%;-webkit-transform-origin:right top;
transform-origin:right top}.input-content.label-is-highlighted ::content .paper-
input-label,.input-content.label-is-highlighted ::content label{color:var(--pape
r-input-container-focus-color,--primary-color);@apply(--paper-input-container-la
bel-focus)}.input-content.is-invalid ::content .paper-input-label,.input-content
.is-invalid ::content label{color:var(--paper-input-container-invalid-color,--er
ror-color)}.input-content.label-is-hidden ::content .paper-input-label,.input-co
ntent.label-is-hidden ::content label{visibility:hidden}.input-content ::content
.paper-input-input,.input-content ::content input,.input-content ::content iron
-autogrow-textarea,.input-content ::content textarea{position:relative;outline:0
;box-shadow:none;padding:0;width:100%;max-width:100%;background:0 0;border:none;
color:var(--paper-input-container-input-color,--primary-text-color);-webkit-appe
arance:none;text-align:inherit;vertical-align:bottom;@apply(--paper-font-subhead
);@apply(--paper-input-container-input)}::content [prefix]{@apply(--paper-font-s
ubhead);@apply(--paper-input-prefix);@apply(--layout-flex-none)}::content [suffi
x]{@apply(--paper-font-subhead);@apply(--paper-input-suffix);@apply(--layout-fle
x-none)}.input-content ::content input{min-width:0}.input-content ::content text
area{resize:none}.add-on-content{position:relative}.add-on-content.is-invalid ::
content *{color:var(--paper-input-container-invalid-color,--error-color)}.add-on
-content.is-highlighted ::content *{color:var(--paper-input-container-focus-colo
r,--primary-color)}</style> <template is="dom-if" if="[[!noLabelFloat]]"> <div c
lass="floated-label-placeholder" aria-hidden="true"> </div> </template> <di
v class$="[[_computeInputContentClass(noLabelFloat,alwaysFloatLabel,focused,inva
lid,_inputHasContent)]]"> <content select="[prefix]" id="prefix"></content> <div
class="label-and-input-container" id="labelAndInputContainer"> <content select=
":not([add-on]):not([prefix]):not([suffix])"></content> </div> <content select="
[suffix]"></content> </div> <div class$="[[_computeUnderlineClass(focused,invali
d)]]"> <div class="unfocused-line"></div> <div class="focused-line"></div> </div
> <div class$="[[_computeAddOnContentClass(focused,invalid)]]"> <content id="add
OnContent" select="[add-on]"></content> </div> </template> </dom-module> <script
>Polymer({is:"paper-input-container",properties:{noLabelFloat:{type:Boolean,valu
e:!1},alwaysFloatLabel:{type:Boolean,value:!1},attrForValue:{type:String,value:"
bind-value"},autoValidate:{type:Boolean,value:!1},invalid:{observer:"_invalidCha
nged",type:Boolean,value:!1},focused:{readOnly:!0,type:Boolean,value:!1,notify:!
0},_addons:{type:Array},_inputHasContent:{type:Boolean,value:!1},_inputSelector:
{type:String,value:"input,textarea,.paper-input-input"},_boundOnFocus:{type:Func
tion,value:function(){return this._onFocus.bind(this)}},_boundOnBlur:{type:Funct
ion,value:function(){return this._onBlur.bind(this)}},_boundOnInput:{type:Functi
on,value:function(){return this._onInput.bind(this)}},_boundValueChanged:{type:F
unction,value:function(){return this._onValueChanged.bind(this)}}},listeners:{"a
ddon-attached":"_onAddonAttached","iron-input-validate":"_onIronInputValidate"},
get _valueChangedEvent(){return this.attrForValue+"-changed"},get _propertyForVa
lue(){return Polymer.CaseMap.dashToCamelCase(this.attrForValue)},get _inputEleme
nt(){return Polymer.dom(this).querySelector(this._inputSelector)},get _inputElem
entValue(){return this._inputElement[this._propertyForValue]||this._inputElement
.value},ready:function(){this._addons||(this._addons=[]),this.addEventListener("
focus",this._boundOnFocus,!0),this.addEventListener("blur",this._boundOnBlur,!0)
},attached:function(){this.attrForValue?this._inputElement.addEventListener(this
._valueChangedEvent,this._boundValueChanged):this.addEventListener("input",this.
_onInput),""!=this._inputElementValue?this._handleValueAndAutoValidate(this._inp
utElement):this._handleValue(this._inputElement)},_onAddonAttached:function(t){t
his._addons||(this._addons=[]);var n=t.target;this._addons.indexOf(n)===-1&&(thi
s._addons.push(n),this.isAttached&&this._handleValue(this._inputElement))},_onFo
cus:function(){this._setFocused(!0)},_onBlur:function(){this._setFocused(!1),thi
s._handleValueAndAutoValidate(this._inputElement)},_onInput:function(t){this._ha
ndleValueAndAutoValidate(t.target)},_onValueChanged:function(t){this._handleValu
eAndAutoValidate(t.target)},_handleValue:function(t){var n=this._inputElementVal
ue;n||0===n||"number"===t.type&&!t.checkValidity()?this._inputHasContent=!0:this
._inputHasContent=!1,this.updateAddons({inputElement:t,value:n,invalid:this.inva
lid})},_handleValueAndAutoValidate:function(t){if(this.autoValidate){var n;n=t.v
alidate?t.validate(this._inputElementValue):t.checkValidity(),this.invalid=!n}th
is._handleValue(t)},_onIronInputValidate:function(t){this.invalid=this._inputEle
ment.invalid},_invalidChanged:function(){this._addons&&this.updateAddons({invali
d:this.invalid})},updateAddons:function(t){for(var n,e=0;n=this._addons[e];e++)n
.update(t)},_computeInputContentClass:function(t,n,e,i,a){var u="input-content";
if(t)a&&(u+=" label-is-hidden");else{var o=this.querySelector("label");n||a?(u+=
" label-is-floating",this.$.labelAndInputContainer.style.position="static",i?u+=
" is-invalid":e&&(u+=" label-is-highlighted")):o&&(this.$.labelAndInputContainer
.style.position="relative")}return u},_computeUnderlineClass:function(t,n){var e
="underline";return n?e+=" is-invalid":t&&(e+=" is-highlighted"),e},_computeAddO
nContentClass:function(t,n){var e="add-on-content";return n?e+=" is-invalid":t&&
(e+=" is-highlighted"),e}})</script> <dom-module id="paper-input-error" assetpat
h="/res/imp/bower_components/paper-input/"> <template> <style>:host{display:inli
ne-block;visibility:hidden;color:var(--paper-input-container-invalid-color,--err
or-color);@apply(--paper-font-caption);@apply(--paper-input-error);position:abso
lute;left:0;right:0}:host([invalid]){visibility:visible};</style> <content></con
tent> </template> </dom-module> <script>Polymer({is:"paper-input-error",behavior
s:[Polymer.PaperInputAddonBehavior],properties:{invalid:{readOnly:!0,reflectToAt
tribute:!0,type:Boolean}},update:function(e){this._setInvalid(e.invalid)}})</scr
ipt> <dom-module id="paper-input" assetpath="/res/imp/bower_components/paper-inp
ut/"> <template> <style>:host{display:block}:host([focused]){outline:0}:host([hi
dden]){display:none!important}input::-webkit-input-placeholder{color:var(--paper
-input-container-color,--secondary-text-color)}input:-moz-placeholder{color:var(
--paper-input-container-color,--secondary-text-color)}input::-moz-placeholder{co
lor:var(--paper-input-container-color,--secondary-text-color)}input:-ms-input-pl
aceholder{color:var(--paper-input-container-color,--secondary-text-color)}label{
pointer-events:none}</style> <paper-input-container no-label-float="[[noLabelFlo
at]]" always-float-label="[[_computeAlwaysFloatLabel(alwaysFloatLabel,placeholde
r)]]" auto-validate$="[[autoValidate]]" disabled$="[[disabled]]" invalid="[[inva
lid]]"> <content select="[prefix]"></content> <label hidden$="[[!label]]" aria-h
idden="true" for="input">[[label]]</label> <input is="iron-input" id="input" ari
a-labelledby$="[[_ariaLabelledBy]]" aria-describedby$="[[_ariaDescribedBy]]" dis
abled$="[[disabled]]" title$="[[title]]" bind-value="{{value}}" invalid="{{inval
id}}" prevent-invalid-input="[[preventInvalidInput]]" allowed-pattern="[[allowed
Pattern]]" validator="[[validator]]" type$="[[type]]" pattern$="[[pattern]]" req
uired$="[[required]]" autocomplete$="[[autocomplete]]" autofocus$="[[autofocus]]
" inputmode$="[[inputmode]]" minlength$="[[minlength]]" maxlength$="[[maxlength]
]" min$="[[min]]" max$="[[max]]" step$="[[step]]" name$="[[name]]" placeholder$=
"[[placeholder]]" readonly$="[[readonly]]" list$="[[list]]" size$="[[size]]" aut
ocapitalize$="[[autocapitalize]]" autocorrect$="[[autocorrect]]" on-change="_onC
hange" tabindex$="[[tabindex]]" autosave$="[[autosave]]" results$="[[results]]"
accept$="[[accept]]" multiple$="[[multiple]]"> <content select="[suffix]"></cont
ent> <template is="dom-if" if="[[errorMessage]]"> <paper-input-error aria-live="
assertive">[[errorMessage]]</paper-input-error> </template> <template is="dom-if
" if="[[charCounter]]"> <paper-input-char-counter></paper-input-char-counter> </
template> </paper-input-container> </template> </dom-module> <script>Polymer({is
:"paper-input",behaviors:[Polymer.IronFormElementBehavior,Polymer.PaperInputBeha
vior]})</script> <dom-module id="query-column-filter-style" assetpath="/res/imp/
common/"> <template> <style>:host{display:block;font-family:sans-serif}#filter{m
argin:0 5px}.container{min-height:120px;width:100%}.item{border-bottom:1px solid
#EEE;max-width:250px;min-height:1em;min-width:100px;padding:.1em .2em;line-heig
ht:1.5em}.header{height:2em;padding:.25em;line-height:2em}.selector{border:1px s
olid #000;margin:0 5px;max-height:200px;min-height:130px;min-width:275px;overflo
w-y:auto}.selectable{cursor:pointer}.selectable:hover{background-color:#A6CEE3}.
iron-selected{background-color:#1F78B4;color:#fff}.icons{cursor:pointer;height:2
0px;margin:2px;width:20px;flex-shrink:0}.side-by-side{display:inline-block;verti
cal-align:top}.bold{font-weight:700}paper-checkbox{max-height:2em;margin:2px;--p
aper-checkbox-checked-color:black;--paper-checkbox-checked-ink-color:black;--pap
er-checkbox-unchecked-color:black;--paper-checkbox-unchecked-ink-color:black;--p
aper-checkbox-label-color:black}</style> </template> </dom-module> <script>!func
tion(){var r=":",t=function(r,t){if(!t)return{idx:0,part:""};if(!r)return{idx:-1
};t=t.trim().toLocaleLowerCase(),r=r.toLocaleLowerCase();for(var i=t.split(" "),
e=0;e<i.length;e++){var n=r.indexOf(i[e]);if(n!==-1)return{idx:n,part:i[e]}}retu
rn{idx:-1}},i=function(t,i,e){if(!i)return!0;if(!t)return!1;if(t=t.toLocaleLower
Case(),i=i.trim().toLocaleLowerCase(),i.indexOf(" ")!==-1||i.indexOf(":")===-1)r
eturn!1;var n=i.split(r,1)[0],a=i.substring(n.length+r.length);return e?t===n:t.
startsWith(a)};SwarmingBehaviors.QueryColumnFilter=[SwarmingBehaviors.CommonBeha
vior,{properties:{primary_map:{type:Object},primary_arr:{type:Array},dimensions:
{type:Array},filter:{type:Function,computed:"_makeFilter(_filters.*)",notify:!0}
,FILTER_SEP:{type:String,value:r},_filters:{type:Array},_limit:{type:Number},_pr
imaryItems:{type:Array,computed:"_primary(_query, primary_map, primary_arr, colu
mns.*)"},_primarySelected:{type:String,value:""},_query:{type:String},_secondary
Items:{type:Array,computed:"_secondary(_primarySelected, _query, primary_map)"}}
,_addFilter:function(r){var t=r.model.item;if(!this._cantAddFilter(this._primary
Selected,t)){var i=this._primarySelected+this.FILTER_SEP+t;this.push("_filters",
i)}},_removeFilter:function(r){var t=r.model.fil;if(!this._cantRemoveFilter(t)){
var i=this._filters.indexOf(t);i!==-1&&this.splice("_filters",i,1)}},_cantAddFil
ter:function(r,t){if(!r||!t)return!0;var i=r+this.FILTER_SEP+t;return this._filt
ers.indexOf(i)!==-1},_cantRemoveFilter:function(r){return!r||this._filters.index
Of(r)===-1},_makeFilter:function(){var r={};this._filters.forEach(function(t){va
r i=t.indexOf(this.FILTER_SEP),e=t.slice(0,i),n=t.slice(i+this.FILTER_SEP.length
),a=r[e]||[];a.push(n),r[e]=a}.bind(this));var t=this._filterMap||{};return func
tion(i){var e=!0;for(primary in r){var n=r[primary],a=t[primary];a||(a=function(
r,t){var i=this._attribute(r,primary);return i.indexOf(t)!==-1}.bind(this)),a&&n
.forEach(function(r){e=e&&a.bind(this)(i,r)}.bind(this))}return e}},_manuallyAdd
Filter:function(){var r=this._query.trim().split(":");if(2!=r.length)return void
sk.errorMessage('Invalid filter. Should be like "foo:bar"',5e3);var t=r.join("
:");return this._filters.indexOf(t)!==-1?void sk.errorMessage('Filter "'+t+'" is
already active',5e3):(this.push("_filters",t),void this.set("_query",""))},_tog
gleColumn:function(r){var t=r.model.item;if(!this._cantToggleColumn(t)){if(this.
_columnState(t)){var i=this.columns.indexOf(t);return void(i!==-1&&this.splice("
columns",i,1))}this.push("columns",t)}},_cantToggleColumn:function(r){return!1},
_columnState:function(r){return!!r&&this.columns.indexOf(r)!==-1},_primary:funct
ion(r,e,n){var a=this.primary_arr.filter(function(n){if(i(n,r,!0))return!0;if(t(
n,r).idx!==-1)return!0;for(var a=e[n]||[],s=0;s<a.length;s++)if(t(a[s],r).idx!==
-1)return!0;return!1});return r&&a.length>0&&a.indexOf(this._primarySelected)===
-1&&this.set("_primarySelected",a[0]),a.sort(function(r,t){var i=this._columnSta
te(r),e=this._columnState(t);return i&&!e?-1:e&&!i?1:swarming.naturalCompare(r,t
)}.bind(this)),a},_secondary:function(r,e,n){if(requestAnimationFrame(function()
{this.$.secondaryList.render()}.bind(this)),!r)return[];var a=n[r]||[];return i(
r,e,!0)?a.sort(function(r,t){var n=i(r,e,!1),a=i(t,e,!1);return n===a?swarming.n
aturalCompare(r,t):a-n}):t(r,e).idx!==-1?a.sort(function(r,i){var n=t(r,e).idx!=
=-1,a=t(i,e).idx!==-1;return n===a?swarming.naturalCompare(r,i):a-n}):a.filter(f
unction(r){return t(r,e).idx!==-1})},_beforeBold:function(r,i){var e=t(r,i.repla
ce(":"," "));return e.idx===-1?r:r.substring(0,e.idx)},_bold:function(r,i){var e
=t(r,i.replace(":"," "));return e.idx===-1?"":r.substring(e.idx,e.idx+e.part.len
gth)},_afterBold:function(r,i){var e=t(r,i.replace(":"," "));return e.idx===-1?"
":r.substring(e.idx+e.part.length)},_commonFilters:function(){return{android_dev
ices:function(r,t){var i=this._attribute(r,"android_devices","0");return i.index
Of(t)!==-1},device_os:function(r,t){var i=this._attribute(r,"device_os","none");
return i.indexOf(t)!==-1},device_type:function(r,t){var i=this._attribute(r,"dev
ice_type","none");return i.indexOf(swarming.alias.unapply(t))!==-1},gpu:function
(r,t){var i=this._attribute(r,"gpu","none");return i.indexOf(swarming.alias.unap
ply(t))!==-1}}}}]}()</script> <script>!function(){var e="unknown";SwarmingBehavi
ors.BotListBehavior=[SwarmingBehaviors.CommonBehavior,{properties:{BOT_PROPERTIE
S:{type:Array,value:function(){return["disk_space","uptime","running_time","task
","status","version","external_ip","cloud_console_link","mp_lease_id","mp_lease_
expires","last_seen","first_seen","battery_level","battery_voltage","battery_tem
perature","battery_status","battery_health","bot_temperature","device_temperatur
e"]}}},_attribute:function(t,i,n){return n=n||e,this._dimension(t,i)||this._stat
e(t,i)||[n]},_devices:function(e){return e.state.devices},_deviceType:function(e
){return e.device_type.toLowerCase()},_dimension:function(e,t){if(e&&e.dimension
s&&t)for(var i=0;i<e.dimensions.length;i++)if(e.dimensions[i].key===t)return e.d
imensions[i].value},_state:function(e,t){if(e&&e.state&&e.state[t]){var i=e.stat
e[t];return Array.isArray(i)?i:[i]}},_taskId:function(e){return e&&e.task_id?e.t
ask_id:"idle"}}]}()</script> <dom-module id="bot-filters" assetpath="/res/imp/bo
tlist/"> <template> <style is="custom-style" include="iron-flex iron-flex-alignm
ent iron-positioning query-column-filter-style"></style> <url-param name="f" val
ue="{{_filters}}" default_values="[]" multi=""> </url-param> <url-param name="c"
value="{{columns}}" default_values="["id","os","task&q
uot;,"status"]" multi=""> </url-param> <url-param name="q" value="{{_q
uery}}" default_value=""> </url-param> <url-param name="v" value="{{verbose}}">
</url-param> <url-param name="l" default_value="100" value="{{_limit}}"> </url-p
aram> <div class="container horizontal layout"> <div class="narrow-down-selector
"> <div> <iron-a11y-keys target="[[_filter_input]]" keys="enter" on-keys-pressed
="_manuallyAddFilter"></iron-a11y-keys> <paper-input id="filter" label="Search c
olumns and filters or supply a filter and press enter" placeholder="gpu nvidia p
ool:Chrome" value="{{_query::input}}"> </paper-input> </div> <div class="selecto
r side-by-side" title="This shows all bot dimension names and other interesting
bot properties. Mark the check box to add as a column. Select the row to see fil
ter options."> <iron-selector attr-for-selected="label" selected="{{_primarySele
cted}}"> <template is="dom-repeat" items="[[_primaryItems]]" as="item"> <div cla
ss="selectable item horizontal layout" label="[[item]]"> <span>[[_beforeBold(ite
m,_query)]]<span class="bold">[[_bold(item,_query)]]</span>[[_afterBold(item,_qu
ery)]]</span> <span class="flex"></span> <paper-checkbox noink="" disabled$="[[_
cantToggleColumn(item)]]" checked="[[_columnState(item,columns.*)]]" on-change="
_toggleColumn"> </paper-checkbox> </div> </template> </iron-selector> </div> <di
v class="selector side-by-side" title="These are all options (if any) that the b
ot list can be filtered on."> <template is="dom-repeat" id="secondaryList" items
="[[_secondaryItems]]" as="item"> <div class="item horizontal layout" label="[[i
tem]]"> <span>[[_beforeBold(item,_query)]]<span class="bold">[[_bold(item,_query
)]]</span>[[_afterBold(item,_query)]]</span> <span class="flex"></span> <iron-ic
on class="icons" icon="icons:arrow-forward" hidden="[[_cantAddFilter(_primarySel
ected,item,_filters.*)]]" on-tap="_addFilter"> </iron-icon> </div> </template> <
/div> <div class="selector side-by-side" title="These filters are AND'd together
and applied to all bots in | 309 })(); </script> </dom-module><script>Polymer({is:"iron-a11y-keys",behaviors:[P
olymer.IronA11yKeysBehavior],properties:{target:{type:Object,observer:"_targetCh
anged"},keys:{type:String,reflectToAttribute:!0,observer:"_keysChanged"}},attach
ed:function(){this.target||(this.target=this.parentNode)},_targetChanged:functio
n(e){this.keyEventTarget=e},_keysChanged:function(){this.removeOwnKeyBindings(),
this.addOwnKeyBinding(this.keys,"_fireKeysPressed")},_fireKeysPressed:function(e
){this.fire("keys-pressed",e.detail,{})}})</script> <script>Polymer({is:"iron-se
lector",behaviors:[Polymer.IronMultiSelectableBehavior]})</script> <script>Polym
er.IronValidatableBehaviorMeta=null,Polymer.IronValidatableBehavior={properties:
{validator:{type:String},invalid:{notify:!0,reflectToAttribute:!0,type:Boolean,v
alue:!1},_validatorMeta:{type:Object},validatorType:{type:String,value:"validato
r"},_validator:{type:Object,computed:"__computeValidator(validator)"}},observers
:["_invalidChanged(invalid)"],registered:function(){Polymer.IronValidatableBehav
iorMeta=new Polymer.IronMeta({type:"validator"})},_invalidChanged:function(){thi
s.invalid?this.setAttribute("aria-invalid","true"):this.removeAttribute("aria-in
valid")},hasValidator:function(){return null!=this._validator},validate:function
(a){return this.invalid=!this._getValidity(a),!this.invalid},_getValidity:functi
on(a){return!this.hasValidator()||this._validator.validate(a)},__computeValidato
r:function(){return Polymer.IronValidatableBehaviorMeta&&Polymer.IronValidatable
BehaviorMeta.byKey(this.validator)}}</script> <script>Polymer.IronFormElementBeh
avior={properties:{name:{type:String},value:{notify:!0,type:String},required:{ty
pe:Boolean,value:!1},_parentForm:{type:Object}},attached:function(){this.fire("i
ron-form-element-register")},detached:function(){this._parentForm&&this._parentF
orm.fire("iron-form-element-unregister",{target:this})}}</script> <script>Polyme
r.IronCheckedElementBehaviorImpl={properties:{checked:{type:Boolean,value:!1,ref
lectToAttribute:!0,notify:!0,observer:"_checkedChanged"},toggles:{type:Boolean,v
alue:!0,reflectToAttribute:!0},value:{type:String,value:"on",observer:"_valueCha
nged"}},observers:["_requiredChanged(required)"],created:function(){this._hasIro
nCheckedElementBehavior=!0},_getValidity:function(e){return this.disabled||!this
.required||this.checked},_requiredChanged:function(){this.required?this.setAttri
bute("aria-required","true"):this.removeAttribute("aria-required")},_checkedChan
ged:function(){this.active=this.checked,this.fire("iron-change")},_valueChanged:
function(){void 0!==this.value&&null!==this.value||(this.value="on")}},Polymer.I
ronCheckedElementBehavior=[Polymer.IronFormElementBehavior,Polymer.IronValidatab
leBehavior,Polymer.IronCheckedElementBehaviorImpl]</script> <script>Polymer.Pape
rCheckedElementBehaviorImpl={_checkedChanged:function(){Polymer.IronCheckedEleme
ntBehaviorImpl._checkedChanged.call(this),this.hasRipple()&&(this.checked?this._
ripple.setAttribute("checked",""):this._ripple.removeAttribute("checked"))},_but
tonStateChanged:function(){Polymer.PaperRippleBehavior._buttonStateChanged.call(
this),this.disabled||this.isAttached&&(this.checked=this.active)}},Polymer.Paper
CheckedElementBehavior=[Polymer.PaperInkyFocusBehavior,Polymer.IronCheckedElemen
tBehavior,Polymer.PaperCheckedElementBehaviorImpl]</script> <dom-module id="pape
r-checkbox" assetpath="/res/imp/bower_components/paper-checkbox/"> <template str
ip-whitespace=""> <style>:host{display:inline-block;white-space:nowrap;cursor:po
inter;--calculated-paper-checkbox-size:var(--paper-checkbox-size, 18px);--calcul
ated-paper-checkbox-ink-size:var(--paper-checkbox-ink-size, -1px);@apply(--paper
-font-common-base);line-height:0;-webkit-tap-highlight-color:transparent}:host([
hidden]){display:none!important}:host(:focus){outline:0}.hidden{display:none}#ch
eckboxContainer{display:inline-block;position:relative;width:var(--calculated-pa
per-checkbox-size);height:var(--calculated-paper-checkbox-size);min-width:var(--
calculated-paper-checkbox-size);margin:var(--paper-checkbox-margin,initial);vert
ical-align:var(--paper-checkbox-vertical-align,middle);background-color:var(--pa
per-checkbox-unchecked-background-color,transparent)}#ink{position:absolute;top:
calc(0px - (var(--calculated-paper-checkbox-ink-size) - var(--calculated-paper-c
heckbox-size))/ 2);left:calc(0px - (var(--calculated-paper-checkbox-ink-size) -
var(--calculated-paper-checkbox-size))/ 2);width:var(--calculated-paper-checkbox
-ink-size);height:var(--calculated-paper-checkbox-ink-size);color:var(--paper-ch
eckbox-unchecked-ink-color,var(--primary-text-color));opacity:.6;pointer-events:
none}:host-context([dir=rtl]) #ink{right:calc(0px - (var(--calculated-paper-chec
kbox-ink-size) - var(--calculated-paper-checkbox-size))/ 2);left:auto}#ink[check
ed]{color:var(--paper-checkbox-checked-ink-color,var(--primary-color))}#checkbox
{position:relative;box-sizing:border-box;height:100%;border:solid 2px;border-col
or:var(--paper-checkbox-unchecked-color,var(--primary-text-color));border-radius
:2px;pointer-events:none;-webkit-transition:background-color 140ms,border-color
140ms;transition:background-color 140ms,border-color 140ms}#checkbox.checked #ch
eckmark{-webkit-animation:checkmark-expand 140ms ease-out forwards;animation:che
ckmark-expand 140ms ease-out forwards}@-webkit-keyframes checkmark-expand{0%{-we
bkit-transform:scale(0,0) rotate(45deg)}100%{-webkit-transform:scale(1,1) rotate
(45deg)}}@keyframes checkmark-expand{0%{transform:scale(0,0) rotate(45deg)}100%{
transform:scale(1,1) rotate(45deg)}}#checkbox.checked{background-color:var(--pap
er-checkbox-checked-color,var(--primary-color));border-color:var(--paper-checkbo
x-checked-color,var(--primary-color))}#checkmark{position:absolute;width:36%;hei
ght:70%;border-style:solid;border-top:none;border-left:none;border-right-width:c
alc(2/15 * var(--calculated-paper-checkbox-size));border-bottom-width:calc(2/15
* var(--calculated-paper-checkbox-size));border-color:var(--paper-checkbox-check
mark-color,#fff);-webkit-transform-origin:97% 86%;transform-origin:97% 86%;box-s
izing:content-box}:host-context([dir=rtl]) #checkmark{-webkit-transform-origin:5
0% 14%;transform-origin:50% 14%}#checkboxLabel{position:relative;display:inline-
block;vertical-align:middle;padding-left:var(--paper-checkbox-label-spacing,8px)
;white-space:normal;line-height:normal;color:var(--paper-checkbox-label-color,va
r(--primary-text-color));@apply(--paper-checkbox-label)}:host([checked]) #checkb
oxLabel{color:var(--paper-checkbox-label-checked-color,var(--paper-checkbox-labe
l-color,var(--primary-text-color)));@apply(--paper-checkbox-label-checked)}:host
-context([dir=rtl]) #checkboxLabel{padding-right:var(--paper-checkbox-label-spac
ing,8px);padding-left:0}#checkboxLabel[hidden]{display:none}:host([disabled]) #c
heckbox{opacity:.5;border-color:var(--paper-checkbox-unchecked-color,var(--prima
ry-text-color))}:host([disabled][checked]) #checkbox{background-color:var(--pape
r-checkbox-unchecked-color,var(--primary-text-color));opacity:.5}:host([disabled
]) #checkboxLabel{opacity:.65}#checkbox.invalid:not(.checked){border-color:var(-
-paper-checkbox-error-color,var(--error-color))}</style> <div id="checkboxContai
ner"> <div id="checkbox" class$="[[_computeCheckboxClass(checked, invalid)]]"> <
div id="checkmark" class$="[[_computeCheckmarkClass(checked)]]"></div> </div> </
div> <div id="checkboxLabel"><content></content></div> </template> <script>Polym
er({is:"paper-checkbox",behaviors:[Polymer.PaperCheckedElementBehavior],hostAttr
ibutes:{role:"checkbox","aria-checked":!1,tabindex:0},properties:{ariaActiveAttr
ibute:{type:String,value:"aria-checked"}},attached:function(){var e=this.getComp
utedStyleValue("--calculated-paper-checkbox-ink-size");if("-1px"===e){var t=pars
eFloat(this.getComputedStyleValue("--calculated-paper-checkbox-size")),a=Math.fl
oor(8/3*t);a%2!==t%2&&a++,this.customStyle["--paper-checkbox-ink-size"]=a+"px",t
his.updateStyles()}},_computeCheckboxClass:function(e,t){var a="";return e&&(a+=
"checked "),t&&(a+="invalid"),a},_computeCheckmarkClass:function(e){return e?"":
"hidden"},_createRipple:function(){return this._rippleContainer=this.$.checkboxC
ontainer,Polymer.PaperInkyFocusBehaviorImpl._createRipple.call(this)}})</script>
</dom-module> <script>Polymer({is:"iron-input",extends:"input",behaviors:[Polym
er.IronValidatableBehavior],properties:{bindValue:{observer:"_bindValueChanged",
type:String},preventInvalidInput:{type:Boolean},allowedPattern:{type:String,obse
rver:"_allowedPatternChanged"},_previousValidInput:{type:String,value:""},_patte
rnAlreadyChecked:{type:Boolean,value:!1}},listeners:{input:"_onInput",keypress:"
_onKeypress"},registered:function(){this._canDispatchEventOnDisabled()||(this._o
rigDispatchEvent=this.dispatchEvent,this.dispatchEvent=this._dispatchEventFirefo
xIE)},created:function(){Polymer.IronA11yAnnouncer.requestAvailability()},_canDi
spatchEventOnDisabled:function(){var e=document.createElement("input"),t=!1;e.di
sabled=!0,e.addEventListener("feature-check-dispatch-event",function(){t=!0});tr
y{e.dispatchEvent(new Event("feature-check-dispatch-event"))}catch(e){}return t}
,_dispatchEventFirefoxIE:function(){var e=this.disabled;this.disabled=!1,this._o
rigDispatchEvent.apply(this,arguments),this.disabled=e},get _patternRegExp(){var
e;if(this.allowedPattern)e=new RegExp(this.allowedPattern);else switch(this.typ
e){case"number":e=/[0-9.,e-]/}return e},ready:function(){this.bindValue=this.val
ue},_bindValueChanged:function(){this.value!==this.bindValue&&(this.value=this.b
indValue||0===this.bindValue||this.bindValue===!1?this.bindValue:""),this.fire("
bind-value-changed",{value:this.bindValue})},_allowedPatternChanged:function(){t
his.preventInvalidInput=!!this.allowedPattern},_onInput:function(){if(this.preve
ntInvalidInput&&!this._patternAlreadyChecked){var e=this._checkPatternValidity()
;e||(this._announceInvalidCharacter("Invalid string of characters not entered.")
,this.value=this._previousValidInput)}this.bindValue=this.value,this._previousVa
lidInput=this.value,this._patternAlreadyChecked=!1},_isPrintable:function(e){var
t=8==e.keyCode||9==e.keyCode||13==e.keyCode||27==e.keyCode,i=19==e.keyCode||20=
=e.keyCode||45==e.keyCode||46==e.keyCode||144==e.keyCode||145==e.keyCode||e.keyC
ode>32&&e.keyCode<41||e.keyCode>111&&e.keyCode<124;return!(t||0==e.charCode&&i)}
,_onKeypress:function(e){if(this.preventInvalidInput||"number"===this.type){var
t=this._patternRegExp;if(t&&!(e.metaKey||e.ctrlKey||e.altKey)){this._patternAlre
adyChecked=!0;var i=String.fromCharCode(e.charCode);this._isPrintable(e)&&!t.tes
t(i)&&(e.preventDefault(),this._announceInvalidCharacter("Invalid character "+i+
" not entered."))}}},_checkPatternValidity:function(){var e=this._patternRegExp;
if(!e)return!0;for(var t=0;t<this.value.length;t++)if(!e.test(this.value[t]))ret
urn!1;return!0},validate:function(){var e=this.checkValidity();return e&&(this.r
equired&&""===this.value?e=!1:this.hasValidator()&&(e=Polymer.IronValidatableBeh
avior.validate.call(this,this.value))),this.invalid=!e,this.fire("iron-input-val
idate"),e},_announceInvalidCharacter:function(e){this.fire("iron-announce",{text
:e})}})</script> <script>Polymer.PaperInputHelper={},Polymer.PaperInputHelper.Ne
xtLabelID=1,Polymer.PaperInputHelper.NextAddonID=1,Polymer.PaperInputBehaviorImp
l={properties:{label:{type:String},value:{notify:!0,type:String},disabled:{type:
Boolean,value:!1},invalid:{type:Boolean,value:!1,notify:!0},preventInvalidInput:
{type:Boolean},allowedPattern:{type:String},type:{type:String},list:{type:String
},pattern:{type:String},required:{type:Boolean,value:!1},errorMessage:{type:Stri
ng},charCounter:{type:Boolean,value:!1},noLabelFloat:{type:Boolean,value:!1},alw
aysFloatLabel:{type:Boolean,value:!1},autoValidate:{type:Boolean,value:!1},valid
ator:{type:String},autocomplete:{type:String,value:"off"},autofocus:{type:Boolea
n,observer:"_autofocusChanged"},inputmode:{type:String},minlength:{type:Number},
maxlength:{type:Number},min:{type:String},max:{type:String},step:{type:String},n
ame:{type:String},placeholder:{type:String,value:""},readonly:{type:Boolean,valu
e:!1},size:{type:Number},autocapitalize:{type:String,value:"none"},autocorrect:{
type:String,value:"off"},autosave:{type:String},results:{type:Number},accept:{ty
pe:String},multiple:{type:Boolean},_ariaDescribedBy:{type:String,value:""},_aria
LabelledBy:{type:String,value:""}},listeners:{"addon-attached":"_onAddonAttached
"},keyBindings:{"shift+tab:keydown":"_onShiftTabDown"},hostAttributes:{tabindex:
0},get inputElement(){return this.$.input},get _focusableElement(){return this.i
nputElement},registered:function(){this._typesThatHaveText=["date","datetime","d
atetime-local","month","time","week","file"]},attached:function(){this._updateAr
iaLabelledBy(),this.inputElement&&this._typesThatHaveText.indexOf(this.inputElem
ent.type)!==-1&&(this.alwaysFloatLabel=!0)},_appendStringWithSpace:function(e,t)
{return e=e?e+" "+t:t},_onAddonAttached:function(e){var t=e.path?e.path[0]:e.tar
get;if(t.id)this._ariaDescribedBy=this._appendStringWithSpace(this._ariaDescribe
dBy,t.id);else{var a="paper-input-add-on-"+Polymer.PaperInputHelper.NextAddonID+
+;t.id=a,this._ariaDescribedBy=this._appendStringWithSpace(this._ariaDescribedBy
,a)}},validate:function(){return this.inputElement.validate()},_focusBlurHandler
:function(e){Polymer.IronControlState._focusBlurHandler.call(this,e),this.focuse
d&&!this._shiftTabPressed&&this._focusableElement.focus()},_onShiftTabDown:funct
ion(e){var t=this.getAttribute("tabindex");this._shiftTabPressed=!0,this.setAttr
ibute("tabindex","-1"),this.async(function(){this.setAttribute("tabindex",t),thi
s._shiftTabPressed=!1},1)},_handleAutoValidate:function(){this.autoValidate&&thi
s.validate()},updateValueAndPreserveCaret:function(e){try{var t=this.inputElemen
t.selectionStart;this.value=e,this.inputElement.selectionStart=t,this.inputEleme
nt.selectionEnd=t}catch(t){this.value=e}},_computeAlwaysFloatLabel:function(e,t)
{return t||e},_updateAriaLabelledBy:function(){var e=Polymer.dom(this.root).quer
ySelector("label");if(!e)return void(this._ariaLabelledBy="");var t;e.id?t=e.id:
(t="paper-input-label-"+Polymer.PaperInputHelper.NextLabelID++,e.id=t),this._ari
aLabelledBy=t},_onChange:function(e){this.shadowRoot&&this.fire(e.type,{sourceEv
ent:e},{node:this,bubbles:e.bubbles,cancelable:e.cancelable})},_autofocusChanged
:function(){if(this.autofocus&&this._focusableElement){var e=document.activeElem
ent,t=e instanceof HTMLElement,a=t&&e!==document.body&&e!==document.documentElem
ent;a||this._focusableElement.focus()}}},Polymer.PaperInputBehavior=[Polymer.Iro
nControlState,Polymer.IronA11yKeysBehavior,Polymer.PaperInputBehaviorImpl]</scri
pt> <script>Polymer.PaperInputAddonBehavior={hostAttributes:{"add-on":""},attach
ed:function(){this.fire("addon-attached")},update:function(t){}}</script> <dom-m
odule id="paper-input-char-counter" assetpath="/res/imp/bower_components/paper-i
nput/"> <template> <style>:host{display:inline-block;float:right;@apply(--paper-
font-caption);@apply(--paper-input-char-counter)}:host([hidden]){display:none!im
portant}:host-context([dir=rtl]){float:left}</style> <span>[[_charCounterStr]]</
span> </template> </dom-module> <script>Polymer({is:"paper-input-char-counter",b
ehaviors:[Polymer.PaperInputAddonBehavior],properties:{_charCounterStr:{type:Str
ing,value:"0"}},update:function(t){if(t.inputElement){t.value=t.value||"";var e=
t.value.toString().length.toString();t.inputElement.hasAttribute("maxlength")&&(
e+="/"+t.inputElement.getAttribute("maxlength")),this._charCounterStr=e}}})</scr
ipt> <dom-module id="paper-input-container" assetpath="/res/imp/bower_components
/paper-input/"> <template> <style>:host{display:block;padding:8px 0;@apply(--pap
er-input-container)}:host([inline]){display:inline-block}:host([disabled]){point
er-events:none;opacity:.33;@apply(--paper-input-container-disabled)}:host([hidde
n]){display:none!important}.floated-label-placeholder{@apply(--paper-font-captio
n)}.underline{position:relative}.focused-line{@apply(--layout-fit);background:va
r(--paper-input-container-focus-color,--primary-color);height:2px;-webkit-transf
orm-origin:center center;transform-origin:center center;-webkit-transform:scale3
d(0,1,1);transform:scale3d(0,1,1);@apply(--paper-input-container-underline-focus
)}.underline.is-highlighted .focused-line{-webkit-transform:none;transform:none;
-webkit-transition:-webkit-transform .25s;transition:transform .25s;@apply(--pap
er-transition-easing)}.underline.is-invalid .focused-line{background:var(--paper
-input-container-invalid-color,--error-color);-webkit-transform:none;transform:n
one;-webkit-transition:-webkit-transform .25s;transition:transform .25s;@apply(-
-paper-transition-easing)}.unfocused-line{@apply(--layout-fit);background:var(--
paper-input-container-color,--secondary-text-color);height:1px;@apply(--paper-in
put-container-underline)}:host([disabled]) .unfocused-line{border-bottom:1px das
hed;border-color:var(--paper-input-container-color,--secondary-text-color);backg
round:0 0;@apply(--paper-input-container-underline-disabled)}.label-and-input-co
ntainer{@apply(--layout-flex-auto);@apply(--layout-relative);width:100%;max-widt
h:100%}.input-content{@apply(--layout-horizontal);@apply(--layout-center);positi
on:relative}.input-content ::content .paper-input-label,.input-content ::content
label{position:absolute;top:0;right:0;left:0;width:100%;font:inherit;color:var(
--paper-input-container-color,--secondary-text-color);-webkit-transition:-webkit
-transform .25s,width .25s;transition:transform .25s,width .25s;-webkit-transfor
m-origin:left top;transform-origin:left top;@apply(--paper-font-common-nowrap);@
apply(--paper-font-subhead);@apply(--paper-input-container-label);@apply(--paper
-transition-easing)}.input-content.label-is-floating ::content .paper-input-labe
l,.input-content.label-is-floating ::content label{-webkit-transform:translateY(
-75%) scale(.75);transform:translateY(-75%) scale(.75);width:133%;@apply(--paper
-input-container-label-floating)}:host-context([dir=rtl]) .input-content.label-i
s-floating ::content .paper-input-label,:host-context([dir=rtl]) .input-content.
label-is-floating ::content label{width:100%;-webkit-transform-origin:right top;
transform-origin:right top}.input-content.label-is-highlighted ::content .paper-
input-label,.input-content.label-is-highlighted ::content label{color:var(--pape
r-input-container-focus-color,--primary-color);@apply(--paper-input-container-la
bel-focus)}.input-content.is-invalid ::content .paper-input-label,.input-content
.is-invalid ::content label{color:var(--paper-input-container-invalid-color,--er
ror-color)}.input-content.label-is-hidden ::content .paper-input-label,.input-co
ntent.label-is-hidden ::content label{visibility:hidden}.input-content ::content
.paper-input-input,.input-content ::content input,.input-content ::content iron
-autogrow-textarea,.input-content ::content textarea{position:relative;outline:0
;box-shadow:none;padding:0;width:100%;max-width:100%;background:0 0;border:none;
color:var(--paper-input-container-input-color,--primary-text-color);-webkit-appe
arance:none;text-align:inherit;vertical-align:bottom;@apply(--paper-font-subhead
);@apply(--paper-input-container-input)}::content [prefix]{@apply(--paper-font-s
ubhead);@apply(--paper-input-prefix);@apply(--layout-flex-none)}::content [suffi
x]{@apply(--paper-font-subhead);@apply(--paper-input-suffix);@apply(--layout-fle
x-none)}.input-content ::content input{min-width:0}.input-content ::content text
area{resize:none}.add-on-content{position:relative}.add-on-content.is-invalid ::
content *{color:var(--paper-input-container-invalid-color,--error-color)}.add-on
-content.is-highlighted ::content *{color:var(--paper-input-container-focus-colo
r,--primary-color)}</style> <template is="dom-if" if="[[!noLabelFloat]]"> <div c
lass="floated-label-placeholder" aria-hidden="true"> </div> </template> <di
v class$="[[_computeInputContentClass(noLabelFloat,alwaysFloatLabel,focused,inva
lid,_inputHasContent)]]"> <content select="[prefix]" id="prefix"></content> <div
class="label-and-input-container" id="labelAndInputContainer"> <content select=
":not([add-on]):not([prefix]):not([suffix])"></content> </div> <content select="
[suffix]"></content> </div> <div class$="[[_computeUnderlineClass(focused,invali
d)]]"> <div class="unfocused-line"></div> <div class="focused-line"></div> </div
> <div class$="[[_computeAddOnContentClass(focused,invalid)]]"> <content id="add
OnContent" select="[add-on]"></content> </div> </template> </dom-module> <script
>Polymer({is:"paper-input-container",properties:{noLabelFloat:{type:Boolean,valu
e:!1},alwaysFloatLabel:{type:Boolean,value:!1},attrForValue:{type:String,value:"
bind-value"},autoValidate:{type:Boolean,value:!1},invalid:{observer:"_invalidCha
nged",type:Boolean,value:!1},focused:{readOnly:!0,type:Boolean,value:!1,notify:!
0},_addons:{type:Array},_inputHasContent:{type:Boolean,value:!1},_inputSelector:
{type:String,value:"input,textarea,.paper-input-input"},_boundOnFocus:{type:Func
tion,value:function(){return this._onFocus.bind(this)}},_boundOnBlur:{type:Funct
ion,value:function(){return this._onBlur.bind(this)}},_boundOnInput:{type:Functi
on,value:function(){return this._onInput.bind(this)}},_boundValueChanged:{type:F
unction,value:function(){return this._onValueChanged.bind(this)}}},listeners:{"a
ddon-attached":"_onAddonAttached","iron-input-validate":"_onIronInputValidate"},
get _valueChangedEvent(){return this.attrForValue+"-changed"},get _propertyForVa
lue(){return Polymer.CaseMap.dashToCamelCase(this.attrForValue)},get _inputEleme
nt(){return Polymer.dom(this).querySelector(this._inputSelector)},get _inputElem
entValue(){return this._inputElement[this._propertyForValue]||this._inputElement
.value},ready:function(){this._addons||(this._addons=[]),this.addEventListener("
focus",this._boundOnFocus,!0),this.addEventListener("blur",this._boundOnBlur,!0)
},attached:function(){this.attrForValue?this._inputElement.addEventListener(this
._valueChangedEvent,this._boundValueChanged):this.addEventListener("input",this.
_onInput),""!=this._inputElementValue?this._handleValueAndAutoValidate(this._inp
utElement):this._handleValue(this._inputElement)},_onAddonAttached:function(t){t
his._addons||(this._addons=[]);var n=t.target;this._addons.indexOf(n)===-1&&(thi
s._addons.push(n),this.isAttached&&this._handleValue(this._inputElement))},_onFo
cus:function(){this._setFocused(!0)},_onBlur:function(){this._setFocused(!1),thi
s._handleValueAndAutoValidate(this._inputElement)},_onInput:function(t){this._ha
ndleValueAndAutoValidate(t.target)},_onValueChanged:function(t){this._handleValu
eAndAutoValidate(t.target)},_handleValue:function(t){var n=this._inputElementVal
ue;n||0===n||"number"===t.type&&!t.checkValidity()?this._inputHasContent=!0:this
._inputHasContent=!1,this.updateAddons({inputElement:t,value:n,invalid:this.inva
lid})},_handleValueAndAutoValidate:function(t){if(this.autoValidate){var n;n=t.v
alidate?t.validate(this._inputElementValue):t.checkValidity(),this.invalid=!n}th
is._handleValue(t)},_onIronInputValidate:function(t){this.invalid=this._inputEle
ment.invalid},_invalidChanged:function(){this._addons&&this.updateAddons({invali
d:this.invalid})},updateAddons:function(t){for(var n,e=0;n=this._addons[e];e++)n
.update(t)},_computeInputContentClass:function(t,n,e,i,a){var u="input-content";
if(t)a&&(u+=" label-is-hidden");else{var o=this.querySelector("label");n||a?(u+=
" label-is-floating",this.$.labelAndInputContainer.style.position="static",i?u+=
" is-invalid":e&&(u+=" label-is-highlighted")):o&&(this.$.labelAndInputContainer
.style.position="relative")}return u},_computeUnderlineClass:function(t,n){var e
="underline";return n?e+=" is-invalid":t&&(e+=" is-highlighted"),e},_computeAddO
nContentClass:function(t,n){var e="add-on-content";return n?e+=" is-invalid":t&&
(e+=" is-highlighted"),e}})</script> <dom-module id="paper-input-error" assetpat
h="/res/imp/bower_components/paper-input/"> <template> <style>:host{display:inli
ne-block;visibility:hidden;color:var(--paper-input-container-invalid-color,--err
or-color);@apply(--paper-font-caption);@apply(--paper-input-error);position:abso
lute;left:0;right:0}:host([invalid]){visibility:visible};</style> <content></con
tent> </template> </dom-module> <script>Polymer({is:"paper-input-error",behavior
s:[Polymer.PaperInputAddonBehavior],properties:{invalid:{readOnly:!0,reflectToAt
tribute:!0,type:Boolean}},update:function(e){this._setInvalid(e.invalid)}})</scr
ipt> <dom-module id="paper-input" assetpath="/res/imp/bower_components/paper-inp
ut/"> <template> <style>:host{display:block}:host([focused]){outline:0}:host([hi
dden]){display:none!important}input::-webkit-input-placeholder{color:var(--paper
-input-container-color,--secondary-text-color)}input:-moz-placeholder{color:var(
--paper-input-container-color,--secondary-text-color)}input::-moz-placeholder{co
lor:var(--paper-input-container-color,--secondary-text-color)}input:-ms-input-pl
aceholder{color:var(--paper-input-container-color,--secondary-text-color)}label{
pointer-events:none}</style> <paper-input-container no-label-float="[[noLabelFlo
at]]" always-float-label="[[_computeAlwaysFloatLabel(alwaysFloatLabel,placeholde
r)]]" auto-validate$="[[autoValidate]]" disabled$="[[disabled]]" invalid="[[inva
lid]]"> <content select="[prefix]"></content> <label hidden$="[[!label]]" aria-h
idden="true" for="input">[[label]]</label> <input is="iron-input" id="input" ari
a-labelledby$="[[_ariaLabelledBy]]" aria-describedby$="[[_ariaDescribedBy]]" dis
abled$="[[disabled]]" title$="[[title]]" bind-value="{{value}}" invalid="{{inval
id}}" prevent-invalid-input="[[preventInvalidInput]]" allowed-pattern="[[allowed
Pattern]]" validator="[[validator]]" type$="[[type]]" pattern$="[[pattern]]" req
uired$="[[required]]" autocomplete$="[[autocomplete]]" autofocus$="[[autofocus]]
" inputmode$="[[inputmode]]" minlength$="[[minlength]]" maxlength$="[[maxlength]
]" min$="[[min]]" max$="[[max]]" step$="[[step]]" name$="[[name]]" placeholder$=
"[[placeholder]]" readonly$="[[readonly]]" list$="[[list]]" size$="[[size]]" aut
ocapitalize$="[[autocapitalize]]" autocorrect$="[[autocorrect]]" on-change="_onC
hange" tabindex$="[[tabindex]]" autosave$="[[autosave]]" results$="[[results]]"
accept$="[[accept]]" multiple$="[[multiple]]"> <content select="[suffix]"></cont
ent> <template is="dom-if" if="[[errorMessage]]"> <paper-input-error aria-live="
assertive">[[errorMessage]]</paper-input-error> </template> <template is="dom-if
" if="[[charCounter]]"> <paper-input-char-counter></paper-input-char-counter> </
template> </paper-input-container> </template> </dom-module> <script>Polymer({is
:"paper-input",behaviors:[Polymer.IronFormElementBehavior,Polymer.PaperInputBeha
vior]})</script> <dom-module id="query-column-filter-style" assetpath="/res/imp/
common/"> <template> <style>:host{display:block;font-family:sans-serif}#filter{m
argin:0 5px}.container{min-height:120px;width:100%}.item{border-bottom:1px solid
#EEE;max-width:250px;min-height:1em;min-width:100px;padding:.1em .2em;line-heig
ht:1.5em}.header{height:2em;padding:.25em;line-height:2em}.selector{border:1px s
olid #000;margin:0 5px;max-height:200px;min-height:130px;min-width:275px;overflo
w-y:auto}.pointable,.selectable{cursor:pointer}.selectable:hover{background-colo
r:#A6CEE3}.iron-selected{background-color:#1F78B4;color:#fff}.icons{cursor:point
er;height:20px;margin:2px;width:20px;flex-shrink:0}.side-by-side{display:inline-
block;vertical-align:top}.bold{font-weight:700}paper-checkbox{max-height:2em;mar
gin:2px;--paper-checkbox-checked-color:black;--paper-checkbox-checked-ink-color:
black;--paper-checkbox-unchecked-color:black;--paper-checkbox-unchecked-ink-colo
r:black;--paper-checkbox-label-color:black}</style> </template> </dom-module> <s
cript>!function(){var r=":",t=function(r,t){if(!t)return{idx:0,part:""};if(!r)re
turn{idx:-1};t=t.trim().toLocaleLowerCase(),r=r.toLocaleLowerCase();for(var i=t.
split(" "),e=0;e<i.length;e++){var n=r.indexOf(i[e]);if(n!==-1)return{idx:n,part
:i[e]}}return{idx:-1}},i=function(t,i,e){if(!i)return!0;if(!t)return!1;if(t=t.to
LocaleLowerCase(),i=i.trim().toLocaleLowerCase(),i.indexOf(" ")!==-1||i.indexOf(
":")===-1)return!1;var n=i.split(r,1)[0],a=i.substring(n.length+r.length);return
e?t===n:t.startsWith(a)};SwarmingBehaviors.QueryColumnFilter=[SwarmingBehaviors
.CommonBehavior,{properties:{dimensions:{type:Array},primary_map:{type:Object},p
rimary_arr:{type:Array},special_columns:{type:Array,value:function(){return[]}},
filter:{type:Function,computed:"_makeFilter(_filters.*)",notify:!0},FILTER_SEP:{
type:String,value:r},_filters:{type:Array},_limit:{type:Number},_primaryItems:{t
ype:Array,computed:"_primary(_query, primary_map, primary_arr, columns.*)"},_pri
marySelected:{type:String,value:""},_query:{type:String},_secondaryItems:{type:A
rray,computed:"_secondary(_primarySelected, _query, primary_map)"}},_addFilter:f
unction(r){var t=r.model.item;if(!this._cantAddFilter(this._primarySelected,t)){
var i=this._primarySelected+this.FILTER_SEP+t;this.push("_filters",i)}},_removeF
ilter:function(r){var t=r.model.fil;if(!this._cantRemoveFilter(t)){var i=this._f
ilters.indexOf(t);i!==-1&&this.splice("_filters",i,1)}},_cantAddFilter:function(
r,t){if(!r||!t)return!0;var i=r+this.FILTER_SEP+t;return this._filters.indexOf(i
)!==-1},_cantRemoveFilter:function(r){return!r||this._filters.indexOf(r)===-1},_
makeFilter:function(){var r={};this._filters.forEach(function(t){var i=t.indexOf
(this.FILTER_SEP),e=t.slice(0,i),n=t.slice(i+this.FILTER_SEP.length),a=r[e]||[];
a.push(n),r[e]=a}.bind(this));var t=this._filterMap||{};return function(i){var e
=!0;for(primary in r){var n=r[primary],a=t[primary];a||(a=function(r,t){var i=th
is._attribute(r,primary);return i.indexOf(t)!==-1}.bind(this)),a&&n.forEach(func
tion(r){e=e&&a.bind(this)(i,r)}.bind(this))}return e}},_manuallyAddFilter:functi
on(){var r=this._query.trim().split(":");if(2!=r.length)return void sk.errorMess
age('Invalid filter. Should be like "foo:bar"',5e3);var t=r.join(":");return th
is._filters.indexOf(t)!==-1?void sk.errorMessage('Filter "'+t+'" is already acti
ve',5e3):(this.push("_filters",t),void this.set("_query",""))},_toggleColumn:fun
ction(r){var t=r.model.item;if(!this._cantToggleColumn(t)){if(this._columnState(
t)){var i=this.columns.indexOf(t);return void(i!==-1&&this.splice("columns",i,1)
)}this.push("columns",t)}},_cantToggleColumn:function(r){return!1},_columnState:
function(r){return!!r&&this.columns.indexOf(r)!==-1},_primary:function(r,e,n){va
r a=this.primary_arr.filter(function(n){if(i(n,r,!0))return!0;if(t(n,r).idx!==-1
)return!0;for(var a=e[n]||[],u=0;u<a.length;u++)if(t(a[u],r).idx!==-1)return!0;r
eturn!1});return r&&a.length>0&&a.indexOf(this._primarySelected)===-1&&this.set(
"_primarySelected",a[0]),a.sort(function(r,t){var i=this._columnState(r),e=this.
_columnState(t);if(i&&!e)return-1;if(e&&!i)return 1;if(i&&e){if(i=this.special_c
olumns.indexOf(r),e=this.special_columns.indexOf(t),i!==-1&&e===-1)return-1;if(i
===-1&&e!==-1)return 1;if(i!==-1&&e!==-1)return i-e}return swarming.naturalCompa
re(r,t)}.bind(this)),a},_secondary:function(r,e,n){if(requestAnimationFrame(func
tion(){this.$.secondaryList.render()}.bind(this)),!r)return[];var a=n[r]||[];ret
urn i(r,e,!0)?a.sort(function(r,t){var n=i(r,e,!1),a=i(t,e,!1);return n===a?swar
ming.naturalCompare(r,t):a-n}):t(r,e).idx!==-1?a.sort(function(r,i){var n=t(r,e)
.idx!==-1,a=t(i,e).idx!==-1;return n===a?swarming.naturalCompare(r,i):a-n}):a.fi
lter(function(r){return t(r,e).idx!==-1})},_beforeBold:function(r,i){var e=t(r,i
.replace(":"," "));return e.idx===-1?r:r.substring(0,e.idx)},_bold:function(r,i)
{var e=t(r,i.replace(":"," "));return e.idx===-1?"":r.substring(e.idx,e.idx+e.pa
rt.length)},_afterBold:function(r,i){var e=t(r,i.replace(":"," "));return e.idx=
==-1?"":r.substring(e.idx+e.part.length)},_commonFilters:function(){return{andro
id_devices:function(r,t){var i=this._attribute(r,"android_devices","0");return i
.indexOf(t)!==-1},device_os:function(r,t){var i=this._attribute(r,"device_os","n
one");return i.indexOf(t)!==-1},device_type:function(r,t){var i=this._attribute(
r,"device_type","none");return i.indexOf(swarming.alias.unapply(t))!==-1},gpu:fu
nction(r,t){var i=this._attribute(r,"gpu","none");return i.indexOf(swarming.alia
s.unapply(t))!==-1}}}}]}()</script> <script>!function(){var e="unknown";Swarming
Behaviors.BotListBehavior=[SwarmingBehaviors.CommonBehavior,{properties:{BOT_PRO
PERTIES:{type:Array,value:function(){return["disk_space","uptime","running_time"
,"task","status","version","external_ip","internal_ip","cloud_console_link","mp_
lease_id","mp_lease_expires","last_seen","first_seen","battery_level","battery_v
oltage","battery_temperature","battery_status","battery_health","bot_temperature
","device_temperature"]}}},_attribute:function(t,i,n){return n=n||e,this._dimens
ion(t,i)||this._state(t,i)||[n]},_devices:function(e){return e.state.devices},_d
eviceType:function(e){return e.device_type.toLowerCase()},_dimension:function(e,
t){if(e&&e.dimensions&&t)for(var i=0;i<e.dimensions.length;i++)if(e.dimensions[i
].key===t)return e.dimensions[i].value},_state:function(e,t){if(e&&e.state&&e.st
ate[t]){var i=e.state[t];return Array.isArray(i)?i:[i]}},_taskId:function(e){ret
urn e&&e.task_id?e.task_id:"idle"}}]}()</script> <dom-module id="bot-filters" as
setpath="/res/imp/botlist/"> <template> <style is="custom-style" include="iron-f
lex iron-flex-alignment iron-positioning query-column-filter-style"></style> <ur
l-param name="f" value="{{_filters}}" default_values="[]" multi=""> </url-param>
<url-param name="c" value="{{columns}}" default_values="["id","o
s","task","status"]" multi=""> </url-param> <url-param
name="q" value="{{_query}}" default_value=""> </url-param> <url-param name="v" v
alue="{{verbose}}"> </url-param> <url-param name="l" default_value="100" value="
{{_limit}}"> </url-param> <div class="container horizontal layout"> <div class="
narrow-down-selector"> <div> <iron-a11y-keys target="[[_filter_input]]" keys="en
ter" on-keys-pressed="_manuallyAddFilter"></iron-a11y-keys> <paper-input id="fil
ter" label="Search columns and filters or supply a filter and press enter" place
holder="gpu nvidia pool:Chrome" value="{{_query::input}}"> </paper-input> </div>
<div class="selector side-by-side" title="This shows all bot dimension names an
d other interesting bot properties. Mark the check box to add as a column. Selec
t the row to see filter options."> <iron-selector attr-for-selected="label" sele
cted="{{_primarySelected}}"> <template is="dom-repeat" items="[[_primaryItems]]"
as="item"> <div class="selectable item horizontal layout" label="[[item]]"> <sp
an>[[_beforeBold(item,_query)]]<span class="bold">[[_bold(item,_query)]]</span>[
[_afterBold(item,_query)]]</span> <span class="flex"></span> <paper-checkbox noi
nk="" disabled$="[[_cantToggleColumn(item)]]" checked="[[_columnState(item,colum
ns.*)]]" on-change="_toggleColumn"> </paper-checkbox> </div> </template> </iron-
selector> </div> <div class="selector side-by-side" title="These are all options
(if any) that the bot list can be filtered on."> <template is="dom-repeat" id="
secondaryList" items="[[_secondaryItems]]" as="item"> <div class="item horizonta
l layout" label="[[item]]"> <span>[[_beforeBold(item,_query)]]<span class="bold"
>[[_bold(item,_query)]]</span>[[_afterBold(item,_query)]]</span> <span class="fl
ex"></span> <iron-icon class="icons" icon="icons:arrow-forward" hidden="[[_cantA
ddFilter(_primarySelected,item,_filters.*)]]" on-tap="_addFilter"> </iron-icon>
</div> </template> <template is="dom-if" if="[[_showDimensionMessage(_primarySel
ected,_secondaryItems.length)]]"> <div class="item"> Only dimensions can be used
for filtering. <i>"[[_primarySelected]]"</i> is a part of the bot's state and i
s informational only. </div> </template> </div> <div class="selector side-by-sid
e" title="These filters are AND'd together and applied to all bots in |
| 310 the fleet."> <template is="dom-repeat" items="[[_filters]]" as="fil"> <div class
="item horizontal layout" label="[[fil]]"> <span>[[fil]]</span> <span class="fle
x"></span> <iron-icon class="icons" icon="icons:remove-circle-outline" hidden="[
[_cantRemoveFilter(fil,_filters.*)]]" on-tap="_removeFilter"> </iron-icon> </div
> </template> </div> <div class="side-by-side"> <paper-checkbox checked="{{verbo
se}}">Verbose Entries</paper-checkbox> <paper-input id="_limit" label="Limit Res
ults" auto-validate="" min="0" max="1000" pattern="[0-9]+" value="{{_limit}}"> <
/paper-input> </div> </div> </div> </template> <script>!function(){var t={disk_s
pace:function(t,i){return!0},id:function(t,i){return!0},status:function(t,i){ret
urn"quarantined"===i?t.quarantined:"dead"===i?t.is_dead:!t.quarantined&&!t.is_de
ad},task:function(t,i){return"idle"===i?"idle"===this._taskId(t):"idle"!==this._
taskId(t)}};Polymer({is:"bot-filters",behaviors:[SwarmingBehaviors.BotListBehavi
or,SwarmingBehaviors.QueryColumnFilter],properties:{columns:{type:Array,notify:!
0},query_params:{type:Object,computed:"_extractQueryParams(dimensions.*,_filters
.*, _limit)",notify:!0},verbose:{type:Boolean,notify:!0},_filter_input:{type:Obj
ect,value:function(){return this.$.filter}},_filterMap:{type:Object,value:functi
on(){var i=this._commonFilters();for(var e in t)i[e]=t[e];return i}}},_cantToggl
eColumn:function(t){return!t||"id"===t},_extractQueryParams:function(){var t={},
i=[];this._filters.forEach(function(e){var n=e.split(this.FILTER_SEP,1),r=n[0];i
f(this.dimensions.indexOf(r)!==-1){var a=e.substring(r.length+this.FILTER_SEP.le
ngth);i.push(r+this.FILTER_SEP+swarming.alias.unapply(a))}else if("status"===r){
var a=e.substring(r.length+this.FILTER_SEP.length);"alive"===a?(t.is_dead=["FALS
E"],t.quarantined=["FALSE"]):"quarantined"===a?t.quarantined=["TRUE"]:"dead"===a
&&(t.is_dead=["TRUE"])}}.bind(this)),t.dimensions=i;var e=parseInt(this._limit);
return Number.isInteger(e)&&(e=Math.max(e,1),e=Math.min(1e3,e),t.limit=[e],this.
_limit!=e&&this.set("_limit",e)),t}})}()</script> </dom-module><dom-module id="b
ot-list-data" assetpath="/res/imp/botlist/"> <script>!function(){function e(e){i
f(!e)return{};var t=[],s=0;for(k in e)t.push(k+": "+e[k]),s+=e[k];return s/=t.le
ngth,s=s?s.toFixed(1):"unknown",{average:s,zones:t.join(" | ")||"unknown"}}var t
="available",s=["quarantined","error"];Polymer({is:"bot-list-data",behaviors:[Sw
armingBehaviors.BotListBehavior],properties:{auth_headers:{type:Object,observer:
"signIn"},bots:{type:Array,computed:"parseBots(_list)",notify:!0},busy:{type:Boo
lean,computed:"_or(_busy2,_busy1)",notify:!0},dimensions:{type:Array,computed:"_
makeArray(_dimensions)",notify:!0},fleet:{type:Object,computed:"_fleet(_count)",
notify:!0},primary_map:{type:Object,computed:"_primaryMap(_dimensions)",notify:!
0},primary_arr:{type:Array,computed:"_primaryArr(dimensions, BOT_PROPERTIES)",no
tify:!0},_busy1:{type:Boolean,value:!1},_busy2:{type:Boolean,value:!1},_count:{t
ype:Object},_dimensions:{type:Object},_list:{type:Object}},signIn:function(){thi
s._getJsonAsync("_count","/api/swarming/v1/bots/count","_busy2",this.auth_header
s),this._getJsonAsync("_dimensions","/api/swarming/v1/bots/dimensions","_busy1",
this.auth_headers)},parseBots:function(s){return s&&s.items?(s.items.forEach(fun
ction(s){s.state=s.state||"{}",s.state=JSON.parse(s.state)||{};var n=s.state.dis
ks||{},i=Object.keys(n);if(i.length){s.disks=[];for(var a=0;a<i.length;a++)s.dis
ks.push({id:i[a],mb:n[i[a]].free_mb});s.disks.sort(function(e,t){return t.mb-e.m
b})}else s.disks=[{id:"unknown",mb:0}];s.state.temp=e(s.state.temp);var o=[],r=s
&&s.state&&s.state.devices||{};for(key in r){var u=r[key];u.serial=key,u.okay=u.
state===t;var _=this._dimension(s,"device_type")||["unknown"];u.device_type=_[0]
,u.temp=e(u.temp),o.push(u)}s.state.devices=o,s.last_seen_ts&&(s.last_seen_ts=ne
w Date(s.last_seen_ts)),s.first_seen_ts&&(s.first_seen_ts=new Date(s.first_seen_
ts)),s.lease_expiration_ts&&(s.lease_expiration_ts=new Date(s.lease_expiration_t
s))}.bind(this)),s.items):[]},_fleet:function(){return this._count?{all:this._co
unt.count||-1,alive:this._count.count-this._count.dead||-1,busy:this._count.busy
||-1,idle:this._count.count-this._count.busy||-1,dead:this._count.dead||-1,quara
ntined:this._count.quarantined||-1}:{}},_makeArray:function(e){if(!e||!e.bots_di
mensions)return[];var t=[];return e.bots_dimensions.forEach(function(e){s.indexO
f(e.key)===-1&&t.push(e.key)}),t.push("id"),t.sort(),t},_primaryArr:function(e,t
){return e.concat(t)},_primaryMap:function(e){e=e.bots_dimensions||[];var t={};r
eturn e.forEach(function(e){if(swarming.alias.DIMENSIONS_WITH_ALIASES.indexOf(e.
key)===-1)t[e.key]=e.value;else{var s=[];e.value.forEach(function(t){s.push(swar
ming.alias.apply(t,e.key))}),t[e.key]=s}}),t.android_devices&&t.android_devices.
push("0"),t.device_os&&t.device_os.push("none"),t.device_type&&t.device_type.pus
h("none"),t.id=[],t.disk_space=[],t.task=["busy","idle"],t.status=["alive","dead
","quarantined"],t}})}()</script> </dom-module><dom-module id="bot-list-summary"
assetpath="/res/imp/botlist/"> <template> <style include="swarming-app-style">:
host{display:block;border-left:1px solid #000;padding:5px 5px;font-family:sans-s
erif}.header{font-size:1.2em;font-weight:700}.header.buffer{margin-top:5px}.righ
t{text-align:right}.left{text-align:left}</style> <div class="header">Fleet</div
> <table> <tbody><tr> <td class="right"> <a href$="[[_makeURL('','',columns.*,fi
ltered_bots.*,sort,verbose)]]">All</a>: </td> <td class="left">[[fleet.all]]</td
> </tr> <tr> <td class="right"> <a href$="[[_makeURL('alive','',columns.*,filter
ed_bots.*,sort,verbose)]]">Alive</a>: </td> <td class="left">[[fleet.alive]]</td
> </tr> <tr> <td class="right"> <a href$="[[_makeURL('busy','',columns.*,filtere
d_bots.*,sort,verbose)]]">Busy</a>: </td> <td class="left">[[fleet.busy]]</td> <
/tr> <tr> <td class="right"> <a href$="[[_makeURL('idle','',columns.*,filtered_b
ots.*,sort,verbose)]]">Idle</a>: </td> <td class="left">[[fleet.idle]]</td> </tr
> <tr> <td class="right"> <a href$="[[_makeURL('dead','',columns.*,filtered_bots
.*,sort,verbose)]]">Dead</a>: </td> <td class="left">[[fleet.dead]]</td> </tr> <
tr> <td class="right"> <a href$="[[_makeURL('quarantined','',columns.*,filtered_
bots.*,sort,verbose)]]">Quarantined</a>: </td> <td class="left">[[fleet.quaranti
ned]]</td> </tr> </tbody></table> <div class="header buffer">Selected</div> <tab
le> <tbody><tr> <td class="right"> Displayed: </td> <td class="left">[[_currentl
yDisplayed(filtered_bots.*)]]</td> </tr> <tr> <td class="right"> All: </td> <td
class="left">[[_count_query.count]]</td> </tr> <tr> <td class="right"> <a href$=
"[[_makeURL('alive','true',columns.*,filtered_bots.*,sort,verbose)]]">Alive</a>:
</td> <td class="left">[[_computeAlive(_count_query.*)]]</td> </tr> <tr> <td cl
ass="right"> <a href$="[[_makeURL('busy','true',columns.*,filtered_bots.*,sort,v
erbose)]]">Busy</a>: </td> <td class="left">[[_count_query.busy]]</td> </tr> <tr
> <td class="right"> <a href$="[[_makeURL('idle','true',columns.*,filtered_bots.
*,sort,verbose)]]">Idle</a>: </td> <td class="left">[[_computeIdle(_count_query.
*)]]</td> </tr> <tr> <td class="right"> <a href$="[[_makeURL('dead','true',colum
ns.*,filtered_bots.*,sort,verbose)]]">Dead</a>: </td> <td class="left">[[_count_
query.dead]]</td> </tr> <tr> <td class="right"> <a href$="[[_makeURL('quarantine
d','true',columns.*,filtered_bots.*,sort,verbose)]]">Quarantined</a>: </td> <td
class="left">[[_count_query.quarantined]]</td> </tr> </tbody></table> </template
> <script>Polymer({is:"bot-list-summary",behaviors:[SwarmingBehaviors.BotListBeh
avior],properties:{auth_headers:{type:Object},busy:{type:Boolean,value:!1,notify
:!0},columns:{type:Array},count_params:{type:Object},filtered_bots:{type:Array},
fleet:{type:Object},sort:{type:String},verbose:{type:Boolean},_count_query:{type
:Object}},observers:["_recountTotal(auth_headers.*,count_params.*)"],_computeAli
ve:function(){return this._count_query.count-this._count_query.dead},_computeIdl
e:function(){return this._count_query.count-this._count_query.busy},_currentlyDi
splayed:function(){return this.filtered_bots&&this.filtered_bots.length},_getFil
terStr:function(t){return t?"alive"===t||"dead"===t||"quarantined"===t?"status:"
+t:"task:"+t:""},_makeURL:function(t,e){if(!e){var r={s:[this.sort],c:this.colum
ns,v:[this.verbose]};return t&&(r.f=[this._getFilterStr(t)]),window.location.hre
f.split("?")[0]+"?"+sk.query.fromParamSet(r)}var o=encodeURIComponent(this._getF
ilterStr(t));if(window.location.href.indexOf(o)===-1)return window.location.href
+"&f="+o},_recountTotal:function(){this.auth_headers&&this.count_params&&this._g
etJsonAsync("_count_query","/api/swarming/v1/bots/count","busy",this.auth_header
s,this.count_params)}})</script> </dom-module><dom-module id="bot-list" assetpat
h="/res/imp/botlist/"> <template> <style include="iron-flex iron-flex-alignment
iron-positioning swarming-app-style dynamic-table-style">bot-filters,bot-list-su
mmary{margin-bottom:8px;margin-right:10px}.bad-device,.quarantined{background-co
lor:#fdd}.dead{background-color:#ccc}.bot-list th>span{padding-right:30px}</styl
e> <url-param name="s" value="{{_sortstr}}" default_value="id:asc"> </url-param>
<swarming-app client_id="[[client_id]]" auth_headers="{{_auth_headers}}" signed
_in="{{_signed_in}}" server_details="{{_server_details}}" busy="[[_or(_busy1,_bu
sy2,_busy3)]]" name="Swarming Bot List"> <h2 hidden$="[[_signed_in]]">You must s
ign in to see anything useful.</h2> <div hidden$="[[_not(_signed_in)]]"> <div cl
ass="horizontal layout"> <bot-filters dimensions="[[_dimensions]]" primary_map="
[[_primary_map]]" primary_arr="[[_primary_arr]]" columns="{{_columns}}" query_pa
rams="{{_query_params}}" filter="{{_filter}}" verbose="{{_verbose}}"> </bot-filt
ers> <bot-list-summary auth_headers="[[_auth_headers]]" busy="{{_busy3}}" column
s="[[_columns]]" count_params="[[_query_params]]" fleet="[[_fleet]]" filtered_bo
ts="[[_filteredSortedItems]]" sort="[[_sortstr]]" verbose="[[_verbose]]"> </bot-
list-summary> </div> <bot-list-data id="data" auth_headers="[[_auth_headers]]" q
uery_params="[[_query_params]]" busy="{{_busy1}}" dimensions="{{_dimensions}}" f
leet="{{_fleet}}" primary_map="{{_primary_map}}" primary_arr="{{_primary_arr}}">
</bot-list-data> <table class="bot-list"> <thead on-sort_change="_sortChange">
<tr> <th> <span>Bot Id</span> <sort-toggle name="id" current="[[_sort]]"> </sort
-toggle> </th> <th hidden$="[[_hide('cloud_console_link', _columns.*)]]"> <span>
Bot in Cloud Console</span> <sort-toggle name="cloud_console_link" current="[[_s
ort]]"> </sort-toggle> </th> <th hidden$="[[_hide('mp_lease_id', _columns.*)]]">
<span>Machine Provider Lease Id</span> <sort-toggle name="mp_lease_id" current=
"[[_sort]]"> </sort-toggle> </th> <th hidden$="[[_hide('task', _columns.*)]]"> <
span>Current Task</span> <sort-toggle name="task" current="[[_sort]]"> </sort-to
ggle> </th> <template is="dom-repeat" items="[[_plainColumns]]" as="c"> <th hidd
en$="[[_hide(c)]]"> <span>[[_header(c)]]</span> <sort-toggle name="[[c]]" curren
t="[[_sort]]"> </sort-toggle> </th> </template> </tr> </thead> <tbody> <template
id="bot_table" is="dom-repeat" items="[[_filteredSortedItems]]" as="bot" initia
l-count="50"> <tr class$="[[_botClass(bot)]]"> <td> <a class="center" href$="[[_
botLink(bot.bot_id)]]" target="_blank" rel="noopener"> [[bot.bot_id]] </a> </td>
<td hidden$="[[_hide('cloud_console_link', _columns.*)]]"> <a href$="[[_ccLink(
bot)]]">[[_ccText(bot)]]</a> </td> <td hidden$="[[_hide('mp_lease_id', _columns.
*)]]"> <a href$="[[_mpLink(bot, _server_details.machine_provider_template)]]"> [
[_column('mp_lease_id', bot,_verbose)]] </a> </td> <td hidden$="[[_hide('task',
_columns.*)]]"> <a href$="[[_taskLink(bot.task_id)]]">[[_taskId(bot)]]</a> </td>
<template is="dom-repeat" items="[[_plainColumns]]" as="c"> <td hidden$="[[_hid
e(c)]]"> [[_column(c, bot, _verbose)]] </td> </template> </tr> <template is="dom
-repeat" items="[[_devices(bot)]]" as="device"> <tr hidden$="[[_hide('android_de
vices', _columns.*)]]" class$="[[_deviceClass(device)]]"> <td></td> <td hidden$=
"[[_hide('task', _columns.*)]]"></td> <template is="dom-repeat" items="[[_plainC
olumns]]" as="c"> <td hidden$="[[_hide(c)]]"> [[_deviceColumn(c, device, _verbos
e)]] </td> </template> </tr> </template> </template> </tbody> </table> <pageable
-data id="page_bots" busy="{{_busy2}}" label="Show more bots" output="{{_items}}
" parse="[[_parseBots]]"> </pageable-data> </div> </swarming-app> </template> <s
cript> (function(){ | 310 the fleet."> <template is="dom-repeat" items="[[_filters]]" as="fil"> <div class
="item horizontal layout" label="[[fil]]"> <span>[[fil]]</span> <span class="fle
x"></span> <iron-icon class="icons" icon="icons:remove-circle-outline" hidden="[
[_cantRemoveFilter(fil,_filters.*)]]" on-tap="_removeFilter"> </iron-icon> </div
> </template> </div> <div class="side-by-side"> <paper-checkbox checked="{{verbo
se}}">Verbose Entries</paper-checkbox> <paper-input id="_limit" label="Limit Res
ults" auto-validate="" min="0" max="1000" pattern="[0-9]+" value="{{_limit}}"> <
/paper-input> </div> </div> </div> </template> <script>!function(){var i={disk_s
pace:function(i,t){return!0},id:function(i,t){return!0},status:function(i,t){ret
urn"quarantined"===t?i.quarantined:"dead"===t?i.is_dead:!i.quarantined&&!i.is_de
ad},task:function(i,t){return"idle"===t?"idle"===this._taskId(i):"idle"!==this._
taskId(i)}};Polymer({is:"bot-filters",behaviors:[SwarmingBehaviors.BotListBehavi
or,SwarmingBehaviors.QueryColumnFilter],properties:{columns:{type:Array,notify:!
0},query_params:{type:Object,computed:"_extractQueryParams(dimensions.*,_filters
.*, _limit)",notify:!0},verbose:{type:Boolean,notify:!0},_filter_input:{type:Obj
ect,value:function(){return this.$.filter}},_filterMap:{type:Object,value:functi
on(){var t=this._commonFilters();for(var e in i)t[e]=i[e];return t}}},_cantToggl
eColumn:function(i){return!i||"id"===i},_extractQueryParams:function(){var i={},
t=[];this._filters.forEach(function(e){var n=e.split(this.FILTER_SEP,1),r=n[0];i
f(this.dimensions.indexOf(r)!==-1){var s=e.substring(r.length+this.FILTER_SEP.le
ngth);t.push(r+this.FILTER_SEP+swarming.alias.unapply(s))}else if("status"===r){
var s=e.substring(r.length+this.FILTER_SEP.length);"alive"===s?(i.is_dead=["FALS
E"],i.quarantined=["FALSE"]):"quarantined"===s?i.quarantined=["TRUE"]:"dead"===s
&&(i.is_dead=["TRUE"])}}.bind(this)),i.dimensions=t;var e=parseInt(this._limit);
return Number.isInteger(e)&&(e=Math.max(e,1),e=Math.min(1e3,e),i.limit=[e],this.
_limit!=e&&this.set("_limit",e)),i},_showDimensionMessage:function(i,t){return i
&&"id"!==i&&!t}})}()</script> </dom-module><dom-module id="bot-list-data" assetp
ath="/res/imp/botlist/"> <script>!function(){function e(e){if(!e)return{};var t=
[],s=0;for(k in e)t.push(k+": "+e[k]),s+=e[k];return s/=t.length,s=s?s.toFixed(1
):"unknown",{average:s,zones:t.join(" | ")||"unknown"}}var t="available",s=["qua
rantined","error"];Polymer({is:"bot-list-data",behaviors:[SwarmingBehaviors.BotL
istBehavior],properties:{auth_headers:{type:Object,observer:"signIn"},bots:{type
:Array,computed:"parseBots(_list)",notify:!0},busy:{type:Boolean,computed:"_or(_
busy2,_busy1)",notify:!0},dimensions:{type:Array,computed:"_makeArray(_dimension
s)",notify:!0},fleet:{type:Object,computed:"_fleet(_count)",notify:!0},primary_m
ap:{type:Object,computed:"_primaryMap(_dimensions)",notify:!0},primary_arr:{type
:Array,computed:"_primaryArr(dimensions, BOT_PROPERTIES)",notify:!0},_busy1:{typ
e:Boolean,value:!1},_busy2:{type:Boolean,value:!1},_count:{type:Object},_dimensi
ons:{type:Object},_list:{type:Object}},signIn:function(){this._getJsonAsync("_co
unt","/api/swarming/v1/bots/count","_busy2",this.auth_headers),this._getJsonAsyn
c("_dimensions","/api/swarming/v1/bots/dimensions","_busy1",this.auth_headers)},
parseBots:function(s){return s&&s.items?(s.items.forEach(function(s){s.state=s.s
tate||"{}",s.state=JSON.parse(s.state)||{};var n=s.state.disks||{},i=Object.keys
(n);if(i.length){s.disks=[];for(var a=0;a<i.length;a++)s.disks.push({id:i[a],mb:
n[i[a]].free_mb});s.disks.sort(function(e,t){return t.mb-e.mb})}else s.disks=[{i
d:"unknown",mb:0}];s.state.temp=e(s.state.temp);var o=[],r=s&&s.state&&s.state.d
evices||{};for(key in r){var u=r[key];u.serial=key,u.okay=u.state===t;var _=this
._dimension(s,"device_type")||["unknown"];u.device_type=_[0],u.temp=e(u.temp),o.
push(u)}s.state.devices=o,s.last_seen_ts&&(s.last_seen_ts=new Date(s.last_seen_t
s)),s.first_seen_ts&&(s.first_seen_ts=new Date(s.first_seen_ts)),s.lease_expirat
ion_ts&&(s.lease_expiration_ts=new Date(s.lease_expiration_ts))}.bind(this)),s.i
tems):[]},_fleet:function(){return this._count?{all:this._count.count||-1,alive:
this._count.count-this._count.dead||-1,busy:this._count.busy||-1,idle:this._coun
t.count-this._count.busy||-1,dead:this._count.dead||-1,quarantined:this._count.q
uarantined||-1}:{}},_makeArray:function(e){if(!e||!e.bots_dimensions)return[];va
r t=[];return e.bots_dimensions.forEach(function(e){s.indexOf(e.key)===-1&&t.pus
h(e.key)}),t.push("id"),t.sort(),t},_primaryArr:function(e,t){return e.concat(t)
},_primaryMap:function(e){e=e.bots_dimensions||[];var t={};return e.forEach(func
tion(e){if(swarming.alias.DIMENSIONS_WITH_ALIASES.indexOf(e.key)===-1)t[e.key]=e
.value;else{var s=[];e.value.forEach(function(t){s.push(swarming.alias.apply(t,e
.key))}),t[e.key]=s}}),t.android_devices&&t.android_devices.push("0"),t.device_o
s&&t.device_os.push("none"),t.device_type&&t.device_type.push("none"),t.id=[],t.
disk_space=[],t.task=["busy","idle"],t.status=["alive","dead","quarantined"],t}}
)}()</script> </dom-module><dom-module id="bot-list-summary" assetpath="/res/imp
/botlist/"> <template> <style include="swarming-app-style">:host{display:block;b
order-left:1px solid #000;padding:5px 5px;font-family:sans-serif}.header{font-si
ze:1.2em;font-weight:700}.header.buffer{margin-top:5px}.right{text-align:right}.
left{text-align:left}</style> <div class="header">Fleet</div> <table> <tbody><tr
> <td class="right"> <a href$="[[_makeURL('','',columns.*,filtered_bots.*,sort,v
erbose)]]">All</a>: </td> <td class="left">[[fleet.all]]</td> </tr> <tr> <td cla
ss="right"> <a href$="[[_makeURL('alive','',columns.*,filtered_bots.*,sort,verbo
se)]]">Alive</a>: </td> <td class="left">[[fleet.alive]]</td> </tr> <tr> <td cla
ss="right"> <a href$="[[_makeURL('busy','',columns.*,filtered_bots.*,sort,verbos
e)]]">Busy</a>: </td> <td class="left">[[fleet.busy]]</td> </tr> <tr> <td class=
"right"> <a href$="[[_makeURL('idle','',columns.*,filtered_bots.*,sort,verbose)]
]">Idle</a>: </td> <td class="left">[[fleet.idle]]</td> </tr> <tr> <td class="ri
ght"> <a href$="[[_makeURL('dead','',columns.*,filtered_bots.*,sort,verbose)]]">
Dead</a>: </td> <td class="left">[[fleet.dead]]</td> </tr> <tr> <td class="right
"> <a href$="[[_makeURL('quarantined','',columns.*,filtered_bots.*,sort,verbose)
]]">Quarantined</a>: </td> <td class="left">[[fleet.quarantined]]</td> </tr> </t
body></table> <div class="header buffer">Selected</div> <table> <tbody><tr> <td
class="right"> Displayed: </td> <td class="left">[[_currentlyDisplayed(filtered_
bots.*)]]</td> </tr> <tr> <td class="right"> All: </td> <td class="left">[[_coun
t_query.count]]</td> </tr> <tr> <td class="right"> <a href$="[[_makeURL('alive',
'true',columns.*,filtered_bots.*,sort,verbose)]]">Alive</a>: </td> <td class="le
ft">[[_computeAlive(_count_query.*)]]</td> </tr> <tr> <td class="right"> <a href
$="[[_makeURL('busy','true',columns.*,filtered_bots.*,sort,verbose)]]">Busy</a>:
</td> <td class="left">[[_count_query.busy]]</td> </tr> <tr> <td class="right">
<a href$="[[_makeURL('idle','true',columns.*,filtered_bots.*,sort,verbose)]]">I
dle</a>: </td> <td class="left">[[_computeIdle(_count_query.*)]]</td> </tr> <tr>
<td class="right"> <a href$="[[_makeURL('dead','true',columns.*,filtered_bots.*
,sort,verbose)]]">Dead</a>: </td> <td class="left">[[_count_query.dead]]</td> </
tr> <tr> <td class="right"> <a href$="[[_makeURL('quarantined','true',columns.*,
filtered_bots.*,sort,verbose)]]">Quarantined</a>: </td> <td class="left">[[_coun
t_query.quarantined]]</td> </tr> </tbody></table> </template> <script>Polymer({i
s:"bot-list-summary",behaviors:[SwarmingBehaviors.BotListBehavior],properties:{a
uth_headers:{type:Object},busy:{type:Boolean,value:!1,notify:!0},columns:{type:A
rray},count_params:{type:Object},filtered_bots:{type:Array},fleet:{type:Object},
sort:{type:String},verbose:{type:Boolean},_count_query:{type:Object}},observers:
["_recountTotal(auth_headers.*,count_params.*)"],_computeAlive:function(){return
this._count_query.count-this._count_query.dead},_computeIdle:function(){return
this._count_query.count-this._count_query.busy},_currentlyDisplayed:function(){r
eturn this.filtered_bots&&this.filtered_bots.length},_getFilterStr:function(t){r
eturn t?"alive"===t||"dead"===t||"quarantined"===t?"status:"+t:"task:"+t:""},_ma
keURL:function(t,e){if(!e){var r={s:[this.sort],c:this.columns,v:[this.verbose]}
;return t&&(r.f=[this._getFilterStr(t)]),window.location.href.split("?")[0]+"?"+
sk.query.fromParamSet(r)}var o=encodeURIComponent(this._getFilterStr(t));if(wind
ow.location.href.indexOf(o)===-1)return window.location.href+"&f="+o},_recountTo
tal:function(){this.auth_headers&&this.count_params&&this._getJsonAsync("_count_
query","/api/swarming/v1/bots/count","busy",this.auth_headers,this.count_params)
}})</script> </dom-module><dom-module id="bot-list" assetpath="/res/imp/botlist/
"> <template> <style include="iron-flex iron-flex-alignment iron-positioning swa
rming-app-style dynamic-table-style">bot-filters,bot-list-summary{margin-bottom:
8px;margin-right:10px}.bad-device,.quarantined{background-color:#fdd}.dead{backg
round-color:#ccc}.alt{background-color:#f8f8f8}.bot-list th>span{padding-right:3
0px}</style> <url-param name="s" value="{{_sortstr}}" default_value="id:asc"> </
url-param> <swarming-app client_id="[[client_id]]" auth_headers="{{_auth_headers
}}" signed_in="{{_signed_in}}" server_details="{{_server_details}}" busy="[[_or(
_busy1,_busy2,_busy3)]]" name="Swarming Bot List"> <h2 hidden$="[[_signed_in]]">
You must sign in to see anything useful.</h2> <div hidden$="[[_not(_signed_in)]]
"> <div class="horizontal layout"> <bot-filters dimensions="[[_dimensions]]" pri
mary_map="[[_primary_map]]" primary_arr="[[_primary_arr]]" special_columns="[[_s
pecialColumns]]" columns="{{_columns}}" query_params="{{_query_params}}" filter=
"{{_filter}}" verbose="{{_verbose}}"> </bot-filters> <bot-list-summary auth_head
ers="[[_auth_headers]]" busy="{{_busy3}}" columns="[[_columns]]" count_params="[
[_query_params]]" fleet="[[_fleet]]" filtered_bots="[[_filteredSortedItems]]" so
rt="[[_sortstr]]" verbose="[[_verbose]]"> </bot-list-summary> </div> <bot-list-d
ata id="data" auth_headers="[[_auth_headers]]" query_params="[[_query_params]]"
busy="{{_busy1}}" dimensions="{{_dimensions}}" fleet="{{_fleet}}" primary_map="{
{_primary_map}}" primary_arr="{{_primary_arr}}"> </bot-list-data> <table class="
bot-list"> <thead on-sort_change="_sortChange"> <tr> <th> <span>Bot Id</span> <s
ort-toggle name="id" current="[[_sort]]"> </sort-toggle> </th> <th hidden$="[[_h
ide('cloud_console_link', _columns.*)]]"> <span>Bot in Cloud Console</span> <sor
t-toggle name="cloud_console_link" current="[[_sort]]"> </sort-toggle> </th> <th
hidden$="[[_hide('mp_lease_id', _columns.*)]]"> <span>Machine Provider Lease Id
</span> <sort-toggle name="mp_lease_id" current="[[_sort]]"> </sort-toggle> </th
> <th hidden$="[[_hide('task', _columns.*)]]"> <span>Current Task</span> <sort-t
oggle name="task" current="[[_sort]]"> </sort-toggle> </th> <template is="dom-re
peat" items="[[_plainColumns]]" as="c"> <th hidden$="[[_hide(c)]]"> <span>[[_hea
der(c)]]</span> <sort-toggle name="[[c]]" current="[[_sort]]"> </sort-toggle> </
th> </template> </tr> </thead> <tbody> <template id="bot_table" is="dom-repeat"
items="[[_filteredSortedItems]]" as="bot" initial-count="50"> <tr class$="[[_bot
Class(bot)]]"> <td> <a class="center" href$="[[_botLink(bot.bot_id)]]" target="_
blank" rel="noopener"> [[bot.bot_id]] </a> </td> <td hidden$="[[_hide('cloud_con
sole_link', _columns.*)]]"> <a href$="[[_ccLink(bot)]]">[[_ccText(bot)]]</a> </t
d> <td hidden$="[[_hide('mp_lease_id', _columns.*)]]"> <a href$="[[_mpLink(bot,
_server_details.machine_provider_template)]]"> [[_column('mp_lease_id', bot,_ver
bose)]] </a> </td> <td hidden$="[[_hide('task', _columns.*)]]"> <a href$="[[_tas
kLink(bot.task_id)]]">[[_taskId(bot)]]</a> </td> <template is="dom-repeat" items
="[[_plainColumns]]" as="c"> <td hidden$="[[_hide(c)]]"> [[_column(c, bot, _verb
ose)]] </td> </template> </tr> <template is="dom-repeat" items="[[_devices(bot)]
]" as="device"> <tr hidden$="[[_hide('android_devices', _columns.*)]]" class$="[
[_deviceClass(device,index)]]"> <td></td> <td hidden$="[[_hide('cloud_console_li
nk', _columns.*)]]"></td> <td hidden$="[[_hide('mp_lease_id', _columns.*)]]"></t
d> <td hidden$="[[_hide('task', _columns.*)]]"></td> <template is="dom-repeat" i
tems="[[_plainColumns]]" as="c"> <td hidden$="[[_hide(c)]]"> [[_deviceColumn(c,
device, _verbose)]] </td> </template> </tr> </template> </template> </tbody> </t
able> <pageable-data id="page_bots" busy="{{_busy2}}" label="Show more bots" out
put="{{_items}}" parse="[[_parseBots]]"> </pageable-data> </div> </swarming-app>
</template> <script> (function(){ |
| 311 var UNKNOWN = "unknown"; | 311 var UNKNOWN = "unknown"; |
| 312 // see dynamic-table for more information on specialColumns, headerMap, | 312 // see dynamic-table for more information on specialColumns, headerMap, |
| 313 // columnMap, and specialSort | 313 // columnMap, and specialSort |
| 314 var specialColumns = ["id", "task", "cloud_console_link", "mp_lease_id"]; | 314 var specialColumns = ["id", "cloud_console_link", "mp_lease_id", "task"]; |
| 315 | 315 |
| 316 var deviceColumns = ["battery_health", "battery_level", "battery_status", "b
attery_temperature", "battery_voltage", "device_temperature"]; | 316 var deviceColumns = ["battery_health", "battery_level", "battery_status", "b
attery_temperature", "battery_voltage", "device_temperature"]; |
| 317 | 317 |
| 318 var headerMap = { | 318 var headerMap = { |
| 319 // "id" and "task" are special, so they don't go here. They have their | 319 // "id", "task" and other special columns don't go here. They have their |
| 320 // headers hard-coded above. | 320 // headers hard-coded above. |
| 321 "android_devices": "Android Devices", | 321 "android_devices": "Android Devices", |
| 322 "battery_health": "Battery Health", | 322 "battery_health": "Battery Health", |
| 323 "battery_level": "Battery Level (%)", | 323 "battery_level": "Battery Level (%)", |
| 324 "battery_status": "Battery Status", | 324 "battery_status": "Battery Status", |
| 325 "battery_temperature": "Battery Temp (°C)", | 325 "battery_temperature": "Battery Temp (°C)", |
| 326 "battery_voltage": "Battery Voltage (mV)", | 326 "battery_voltage": "Battery Voltage (mV)", |
| 327 "bot_temperature": "Bot Temp (°C)", | 327 "bot_temperature": "Bot Temp (°C)", |
| 328 "cores": "Cores", | 328 "cores": "Cores", |
| 329 "cpu": "CPU", | 329 "cpu": "CPU", |
| 330 "device": "Non-android Device", | 330 "device": "Non-android Device", |
| 331 "device_os": "Device OS", | 331 "device_os": "Device OS", |
| 332 "device_temperature": "Device Temp (°C)", | 332 "device_temperature": "Device Temp (°C)", |
| 333 "device_type": "Device Type", | 333 "device_type": "Device Type", |
| 334 "disk_space": "Free Space (MB)", | 334 "disk_space": "Free Space (MB)", |
| 335 "external_ip": "External IP", |
| 335 "first_seen": "First Seen", | 336 "first_seen": "First Seen", |
| 336 "gpu": "GPU", | 337 "gpu": "GPU", |
| 338 "internal_ip": "Internal or Local IP", |
| 337 "last_seen": "Last Seen", | 339 "last_seen": "Last Seen", |
| 338 "mp_lease_expires": "Machine Provider Lease Expires", | 340 "mp_lease_expires": "Machine Provider Lease Expires", |
| 339 "os": "OS", | 341 "os": "OS", |
| 340 "pool": "Pool", | 342 "pool": "Pool", |
| 341 "running_time": "Swarming Uptime", | 343 "running_time": "Swarming Uptime", |
| 342 "status": "Status", | 344 "status": "Status", |
| 343 "uptime": "Bot Uptime", | 345 "uptime": "Bot Uptime", |
| 344 "xcode_version": "XCode Version", | 346 "xcode_version": "XCode Version", |
| 345 }; | 347 }; |
| 346 | 348 |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 393 }, | 395 }, |
| 394 external_ip: function(bot) { | 396 external_ip: function(bot) { |
| 395 return bot.external_ip || "none"; | 397 return bot.external_ip || "none"; |
| 396 }, | 398 }, |
| 397 first_seen: function(bot) { | 399 first_seen: function(bot) { |
| 398 return sk.human.localeTime(bot.first_seen_ts) | 400 return sk.human.localeTime(bot.first_seen_ts) |
| 399 }, | 401 }, |
| 400 id: function(bot) { | 402 id: function(bot) { |
| 401 return bot.bot_id; | 403 return bot.bot_id; |
| 402 }, | 404 }, |
| 405 internal_ip: function(bot) { |
| 406 return this._attribute(bot, "ip", "none")[0]; |
| 407 }, |
| 403 last_seen: function(bot) { | 408 last_seen: function(bot) { |
| 404 if (this._verbose) { | 409 if (this._verbose) { |
| 405 return sk.human.localeTime(bot.last_seen_ts); | 410 return sk.human.localeTime(bot.last_seen_ts); |
| 406 } | 411 } |
| 407 return this._timeDiffApprox(bot.last_seen_ts) + " ago"; | 412 return this._timeDiffApprox(bot.last_seen_ts) + " ago"; |
| 408 }, | 413 }, |
| 409 mp_lease_id: function(bot) { | 414 mp_lease_id: function(bot) { |
| 410 var id = bot.lease_id || "none"; | 415 var id = bot.lease_id || "none"; |
| 411 if (this._verbose) { | 416 if (this._verbose) { |
| 412 return id; | 417 return id; |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 561 // We sort based on the raw number of MB of the first disk. | 566 // We sort based on the raw number of MB of the first disk. |
| 562 var botACol = botA.disks[0].mb; | 567 var botACol = botA.disks[0].mb; |
| 563 var botBCol = botB.disks[0].mb; | 568 var botBCol = botB.disks[0].mb; |
| 564 return dir * swarming.naturalCompare(botACol, botBCol); | 569 return dir * swarming.naturalCompare(botACol, botBCol); |
| 565 }, | 570 }, |
| 566 first_seen: function(dir, botA, botB) { | 571 first_seen: function(dir, botA, botB) { |
| 567 var botACol = botA.first_seen_ts; | 572 var botACol = botA.first_seen_ts; |
| 568 var botBCol = botB.first_seen_ts; | 573 var botBCol = botB.first_seen_ts; |
| 569 return dir * swarming.naturalCompare(botACol, botBCol); | 574 return dir * swarming.naturalCompare(botACol, botBCol); |
| 570 }, | 575 }, |
| 571 gpu: function(dir, botA, botB) { | |
| 572 // We want all the "none" GPU bots to come last in the list. | |
| 573 var botACol = this._column("gpu", botA); | |
| 574 if (botACol === "none") { | |
| 575 botACol = "ZZZ"; | |
| 576 } | |
| 577 var botBCol = this._column("gpu", botB); | |
| 578 if (botBCol === "none") { | |
| 579 botBCol = "ZZZ"; | |
| 580 } | |
| 581 return dir * swarming.naturalCompare(botACol, botBCol); | |
| 582 }, | |
| 583 last_seen: function(dir, botA, botB) { | 576 last_seen: function(dir, botA, botB) { |
| 584 var botACol = botA.last_seen_ts; | 577 var botACol = botA.last_seen_ts; |
| 585 var botBCol = botB.last_seen_ts; | 578 var botBCol = botB.last_seen_ts; |
| 586 return dir * swarming.naturalCompare(botACol, botBCol) | 579 return dir * swarming.naturalCompare(botACol, botBCol) |
| 587 }, | 580 }, |
| 588 running_time: function(dir, botA, botB) { | 581 running_time: function(dir, botA, botB) { |
| 589 var botACol = this._state(botA, "running_time") || 0; | 582 var botACol = this._state(botA, "running_time") || 0; |
| 590 var botBCol = this._state(botB, "running_time") || 0; | 583 var botBCol = this._state(botB, "running_time") || 0; |
| 591 return dir * swarming.naturalCompare(botACol, botBCol) | 584 return dir * swarming.naturalCompare(botACol, botBCol) |
| 592 }, | 585 }, |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 708 }, | 701 }, |
| 709 | 702 |
| 710 _deviceColumn: function(col, device) { | 703 _deviceColumn: function(col, device) { |
| 711 var f = deviceColumnMap[col]; | 704 var f = deviceColumnMap[col]; |
| 712 if (!f || !device) { | 705 if (!f || !device) { |
| 713 return ""; | 706 return ""; |
| 714 } | 707 } |
| 715 return f.bind(this)(device); | 708 return f.bind(this)(device); |
| 716 }, | 709 }, |
| 717 | 710 |
| 718 _deviceClass: function(device) { | 711 _deviceClass: function(device, idx) { |
| 719 if (!device.okay) { | 712 if (!device.okay) { |
| 720 return "bad-device"; | 713 return "bad-device"; |
| 721 } | 714 } |
| 715 if (idx % 2 === 0){ |
| 716 return "alt"; |
| 717 } |
| 722 return ""; | 718 return ""; |
| 723 }, | 719 }, |
| 724 | 720 |
| 725 _mpLink: function(bot, template) { | 721 _mpLink: function(bot, template) { |
| 726 if (!bot || !bot.lease_id || !template) { | 722 if (!bot || !bot.lease_id || !template) { |
| 727 return false; | 723 return false; |
| 728 } | 724 } |
| 729 return template.replace("%s", bot.lease_id); | 725 return template.replace("%s", bot.lease_id); |
| 730 }, | 726 }, |
| 731 | 727 |
| 732 _reload: function() { | 728 _reload: function() { |
| 733 if (!this._auth_headers || !this._query_params) { | 729 if (!this._auth_headers || !this._query_params) { |
| 734 return; | 730 return; |
| 735 } | 731 } |
| 736 var url = "/api/swarming/v1/bots/list?" + sk.query.fromParamSet(this._qu
ery_params); | 732 var url = "/api/swarming/v1/bots/list?" + sk.query.fromParamSet(this._qu
ery_params); |
| 737 this.$.page_bots.load(url,this._auth_headers); | 733 this.$.page_bots.load(url,this._auth_headers); |
| 738 } | 734 } |
| 739 | 735 |
| 740 }); | 736 }); |
| 741 })(); </script> </dom-module> <dom-module id="paper-button" assetpath="/res/im
p/bower_components/paper-button/"> <template strip-whitespace=""> <style include
="paper-material-shared-styles">:host{@apply(--layout-inline);@apply(--layout-ce
nter-center);position:relative;box-sizing:border-box;min-width:5.14em;margin:0 .
29em;background:0 0;-webkit-tap-highlight-color:transparent;-webkit-tap-highligh
t-color:transparent;font:inherit;text-transform:uppercase;outline-width:0;border
-radius:3px;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;
user-select:none;cursor:pointer;z-index:0;padding:.7em .57em;@apply(--paper-font
-common-base);@apply(--paper-button)}:host([hidden]){display:none!important}:hos
t([raised].keyboard-focus){font-weight:700;@apply(--paper-button-raised-keyboard
-focus)}:host(:not([raised]).keyboard-focus){font-weight:700;@apply(--paper-butt
on-flat-keyboard-focus)}:host([disabled]){background:#eaeaea;color:#a8a8a8;curso
r:auto;pointer-events:none;@apply(--paper-button-disabled)}:host([animated]){@ap
ply(--shadow-transition)}paper-ripple{color:var(--paper-button-ink-color)}</styl
e> <content></content> </template> <script>Polymer({is:"paper-button",behaviors:
[Polymer.PaperButtonBehavior],properties:{raised:{type:Boolean,reflectToAttribut
e:!0,value:!1,observer:"_calculateElevation"}},_calculateElevation:function(){th
is.raised?Polymer.PaperButtonBehaviorImpl._calculateElevation.apply(this):this._
setElevation(0)}})</script> </dom-module> <script>Polymer.NeonAnimatableBehavior
={properties:{animationConfig:{type:Object},entryAnimation:{observer:"_entryAnim
ationChanged",type:String},exitAnimation:{observer:"_exitAnimationChanged",type:
String}},_entryAnimationChanged:function(){this.animationConfig=this.animationCo
nfig||{},this.animationConfig.entry=[{name:this.entryAnimation,node:this}]},_exi
tAnimationChanged:function(){this.animationConfig=this.animationConfig||{},this.
animationConfig.exit=[{name:this.exitAnimation,node:this}]},_copyProperties:func
tion(i,n){for(var t in n)i[t]=n[t]},_cloneConfig:function(i){var n={isClone:!0};
return this._copyProperties(n,i),n},_getAnimationConfigRecursive:function(i,n,t)
{if(this.animationConfig){if(this.animationConfig.value&&"function"==typeof this
.animationConfig.value)return void this._warn(this._logf("playAnimation","Please
put 'animationConfig' inside of your components 'properties' object instead of
outside of it."));var o;if(o=i?this.animationConfig[i]:this.animationConfig,Arra
y.isArray(o)||(o=[o]),o)for(var e,a=0;e=o[a];a++)if(e.animatable)e.animatable._g
etAnimationConfigRecursive(e.type||i,n,t);else if(e.id){var r=n[e.id];r?(r.isClo
ne||(n[e.id]=this._cloneConfig(r),r=n[e.id]),this._copyProperties(r,e)):n[e.id]=
e}else t.push(e)}},getAnimationConfig:function(i){var n={},t=[];this._getAnimati
onConfigRecursive(i,n,t);for(var o in n)t.push(n[o]);return t}}</script> <script
>Polymer.NeonAnimationRunnerBehaviorImpl={_configureAnimations:function(n){var i
=[];if(n.length>0)for(var e,t=0;e=n[t];t++){var o=document.createElement(e.name)
;if(o.isNeonAnimation){var a=null;try{a=o.configure(e),"function"!=typeof a.canc
el&&(a=document.timeline.play(a))}catch(n){a=null,console.warn("Couldnt play","(
",e.name,").",n)}a&&i.push({neonAnimation:o,config:e,animation:a})}else console.
warn(this.is+":",e.name,"not found!")}return i},_shouldComplete:function(n){for(
var i=!0,e=0;e<n.length;e++)if("finished"!=n[e].animation.playState){i=!1;break}
return i},_complete:function(n){for(var i=0;i<n.length;i++)n[i].neonAnimation.co
mplete(n[i].config);for(var i=0;i<n.length;i++)n[i].animation.cancel()},playAnim
ation:function(n,i){var e=this.getAnimationConfig(n);if(e){this._active=this._ac
tive||{},this._active[n]&&(this._complete(this._active[n]),delete this._active[n
]);var t=this._configureAnimations(e);if(0==t.length)return void this.fire("neon
-animation-finish",i,{bubbles:!1});this._active[n]=t;for(var o=0;o<t.length;o++)
t[o].animation.onfinish=function(){this._shouldComplete(t)&&(this._complete(t),d
elete this._active[n],this.fire("neon-animation-finish",i,{bubbles:!1}))}.bind(t
his)}},cancelAnimation:function(){for(var n in this._animations)this._animations
[n].cancel();this._animations={}}},Polymer.NeonAnimationRunnerBehavior=[Polymer.
NeonAnimatableBehavior,Polymer.NeonAnimationRunnerBehaviorImpl]</script> <script
>Polymer.PaperDialogBehaviorImpl={hostAttributes:{role:"dialog",tabindex:"-1"},p
roperties:{modal:{type:Boolean,value:!1}},observers:["_modalChanged(modal, _read
ied)"],listeners:{tap:"_onDialogClick"},ready:function(){this.__prevNoCancelOnOu
tsideClick=this.noCancelOnOutsideClick,this.__prevNoCancelOnEscKey=this.noCancel
OnEscKey,this.__prevWithBackdrop=this.withBackdrop},_modalChanged:function(i,e){
e&&(i?(this.__prevNoCancelOnOutsideClick=this.noCancelOnOutsideClick,this.__prev
NoCancelOnEscKey=this.noCancelOnEscKey,this.__prevWithBackdrop=this.withBackdrop
,this.noCancelOnOutsideClick=!0,this.noCancelOnEscKey=!0,this.withBackdrop=!0):(
this.noCancelOnOutsideClick=this.noCancelOnOutsideClick&&this.__prevNoCancelOnOu
tsideClick,this.noCancelOnEscKey=this.noCancelOnEscKey&&this.__prevNoCancelOnEsc
Key,this.withBackdrop=this.withBackdrop&&this.__prevWithBackdrop))},_updateClosi
ngReasonConfirmed:function(i){this.closingReason=this.closingReason||{},this.clo
singReason.confirmed=i},_onDialogClick:function(i){for(var e=Polymer.dom(i).path
,o=0;o<e.indexOf(this);o++){var t=e[o];if(t.hasAttribute&&(t.hasAttribute("dialo
g-dismiss")||t.hasAttribute("dialog-confirm"))){this._updateClosingReasonConfirm
ed(t.hasAttribute("dialog-confirm")),this.close(),i.stopPropagation();break}}}},
Polymer.PaperDialogBehavior=[Polymer.IronOverlayBehavior,Polymer.PaperDialogBeha
viorImpl]</script> <dom-module id="paper-dialog-shared-styles" assetpath="/res/i
mp/bower_components/paper-dialog-behavior/"> <template> <style>:host{display:blo
ck;margin:24px 40px;background:var(--paper-dialog-background-color,--primary-bac
kground-color);color:var(--paper-dialog-color,--primary-text-color);@apply(--pap
er-font-body1);@apply(--shadow-elevation-16dp);@apply(--paper-dialog)}:host>::co
ntent>*{margin-top:20px;padding:0 24px}:host>::content>.no-padding{padding:0}:ho
st>::content>:first-child{margin-top:24px}:host>::content>:last-child{margin-bot
tom:24px}:host>::content h2{position:relative;margin:0;@apply(--paper-font-title
);@apply(--paper-dialog-title)}:host>::content .buttons{position:relative;paddin
g:8px 8px 8px 24px;margin:0;color:var(--paper-dialog-button-color,--primary-colo
r);@apply(--layout-horizontal);@apply(--layout-end-justified)}</style> </templat
e> </dom-module> <dom-module id="paper-dialog" assetpath="/res/imp/bower_compone
nts/paper-dialog/"> <template> <style include="paper-dialog-shared-styles"></sty
le> <content></content> </template> </dom-module> <script>!function(){Polymer({i
s:"paper-dialog",behaviors:[Polymer.PaperDialogBehavior,Polymer.NeonAnimationRun
nerBehavior],listeners:{"neon-animation-finish":"_onNeonAnimationFinish"},_rende
rOpened:function(){this.cancelAnimation(),this.playAnimation("entry")},_renderCl
osed:function(){this.cancelAnimation(),this.playAnimation("exit")},_onNeonAnimat
ionFinish:function(){this.opened?this._finishRenderOpened():this._finishRenderCl
osed()}})}()</script> <script>window.SwarmingBehaviors=window.SwarmingBehaviors|
|{},function(){SwarmingBehaviors.TaskBehavior={properties:{BOT_DIED:{type:String
,value:"BOT_DIED"},CANCELED:{type:String,value:"CANCELED"},COMPLETED:{type:Strin
g,value:"COMPLETED"},COMPLETED_DEDUPED:{type:String,value:"COMPLETED (DEDUPED)"}
,COMPLETED_FAILURE:{type:String,value:"COMPLETED (FAILURE)"},COMPLETED_SUCCESS:{
type:String,value:"COMPLETED (SUCCESS)"},EXPIRED:{type:String,value:"EXPIRED"},P
ENDING:{type:String,value:"PENDING"},RUNNING:{type:String,value:"RUNNING"},TIMED
_OUT:{type:String,value:"TIMED_OUT"}},stateClass:function(t){return t===this.CAN
CELED||t===this.TIMED_OUT||t===this.EXPIRED?"exception":t===this.BOT_DIED?"bot_d
ied":t===this.COMPLETED_FAILURE?"failed_task":t===this.RUNNING||t===this.PENDING
?"pending_task":""},state:function(t){return t?t.state===this.COMPLETED?t.failur
e?this.COMPLETED_FAILURE:"0"===t.try_number?this.COMPLETED_DEDUPED:this.COMPLETE
D_SUCCESS:t.state:""},_stateClass:function(t){return this.stateClass(this.state(
t))}}}()</script> <dom-module id="task-style" assetpath="/res/imp/common/"> <tem
plate> <style>.failed_task{background-color:#fdd}.bot_died{background-color:#ccc
}.exception{background-color:#edd2ff}.pending_task{background-color:#fffc6c}</st
yle> </template> </dom-module><dom-module id="task-filters" assetpath="/res/imp/
tasklist/"> <template> <style is="custom-style" include="iron-flex iron-flex-ali
gnment iron-positioning query-column-filter-style">.item.wide{max-width:400px}.s
elector.wide{min-width:275px}</style> <url-param name="f" value="{{_filters}}" d
efault_values="[]" multi=""> </url-param> <url-param name="c" value="{{columns}}
" default_values="["name","state","created_ts",&qu
ot;user"]" multi=""> </url-param> <url-param name="q" value="{{_query}}" de
fault_value=""> </url-param> <url-param name="l" default_value="50" value="{{_li
mit}}"> </url-param> <div class="container horizontal layout"> <div class="narro
w-down-selector"> <div> <iron-a11y-keys target="[[_filter_input]]" keys="enter"
on-keys-pressed="_manuallyAddFilter"></iron-a11y-keys> <paper-input id="filter"
label="Search columns and filters or supply a filter and press enter" placeholde
r="gpu nvidia pool:Chrome" value="{{_query::input}}"> </paper-input> </div> <div
class="wide selector side-by-side" title="This shows all task tags and other in
teresting task properties. Mark the check box to add as a column. Select the row
to see filter options."> <iron-selector attr-for-selected="label" selected="{{_
primarySelected}}"> <template is="dom-repeat" items="[[_primaryItems]]" as="item
"> <div class="selectable item horizontal layout" label="[[item]]"> <span>[[_bef
oreBold(item,_query)]]<span class="bold">[[_bold(item,_query)]]</span>[[_afterBo
ld(item,_query)]]</span> <span class="flex"></span> <paper-checkbox noink="" dis
abled$="[[_cantToggleColumn(item)]]" checked="[[_columnState(item,columns.*)]]"
on-change="_toggleColumn"> </paper-checkbox> </div> </template> </iron-selector>
</div> <div class="selector side-by-side" title="These are most of the options
(if any) that the task list can be filtered on. This list is all that have been
seen recently, augmented with the ones returned by the current query. There may
be others."> <template is="dom-repeat" id="secondaryList" items="[[_secondaryIte
ms]]" as="item"> <div class="item horizontal layout" label="[[item]]"> <span>[[_
beforeBold(item,_query)]]<span class="bold">[[_bold(item,_query)]]</span>[[_afte
rBold(item,_query)]]</span> <span class="flex"></span> <iron-icon class="icons"
icon="icons:arrow-forward" hidden="[[_cantAddFilter(_primarySelected,item,_filte
rs.*)]]" on-tap="_addFilter"> </iron-icon> </div> </template> </div> <div class=
"selector side-by-side" title="These tag filters are AND'd together and applied
to all tasks."> <template is="dom-repeat" items="[[_filters]]" as="fil"> <div cl
ass="item horizontal layout" label="[[fil]]"> <span>[[fil]]</span> <span class="
flex"></span> <iron-icon class="icons" icon="icons:remove-circle-outline" hidden
="[[_cantRemoveFilter(fil,_filters.*)]]" on-tap="_removeFilter"> </iron-icon> </
div> </template> </div> <div class="side-by-side"> <paper-input id="_limit" labe
l="Limit Results" auto-validate="" min="0" max="1000" pattern="[0-9]+" value="{{
_limit}}"> </paper-input> </div> </div> </div> </template> <script>!function(){v
ar t={state:function(t,i){var r=this._attribute(t,"state")[0];if(i===r||"ALL"===
i)return!0;if("PENDING_RUNNING"===i)return r===this.PENDING||r===this.RUNNING;va
r e=this._attribute(t,"failure",!1)[0];if("COMPLETED_SUCCESS"===i)return r===thi
s.COMPLETED&&!e;if("COMPLETED_FAILURE"===i)return r===this.COMPLETED&&e;var a=th
is._attribute(t,"try_number","-1")[0];return"DEDUPED"===i?r===this.COMPLETED&&"0
"===a:void 0}};Polymer({is:"task-filters",behaviors:[SwarmingBehaviors.QueryColu
mnFilter,SwarmingBehaviors.TaskBehavior],properties:{columns:{type:Array,notify:
!0},query_params:{type:Object,computed:"_extractQueryParams(_filters.*, _limit)"
,notify:!0},_filterMap:{type:Object,value:function(){var i=this._commonFilters()
;for(var r in t)i[r]=t[r];return i}}},_cantToggleColumn:function(t){return!t||"n
ame"===t},_extractQueryParams:function(){var t={},i=[];this._filters.forEach(fun
ction(r){var e=r.split(this.FILTER_SEP,1),a=e[0],s=r.substring(a.length+this.FIL
TER_SEP.length);"state"===a?t.state=[s]:("user"===a&&"none"===s&&(s=""),i.push(a
+this.FILTER_SEP+swarming.alias.unapply(s)))}.bind(this)),t.tags=i;var r=parseIn
t(this._limit);return Number.isInteger(r)&&(r=Math.max(r,1),r=Math.min(1e3,r),t.
limit=[r],this._limit!=r&&this.set("_limit",r)),t}})}()</script> </dom-module><d
om-module id="task-list-data" assetpath="/res/imp/tasklist/"> <script>!function(
){var t=["abandoned_ts","completed_ts","created_ts","modified_ts","started_ts"];
Polymer({is:"task-list-data",behaviors:[SwarmingBehaviors.CommonBehavior,Swarmin
gBehaviors.TaskBehavior],properties:{auth_headers:{type:Object,observer:"signIn"
},query_params:{type:Object},tasks:{type:Array},busy:{type:Boolean,computed:"_or
(_busy2,_busy1)",notify:!0},primary_map:{type:Object,computed:"_primaryMap(_tags
,_dimensions,tasks.*)",notify:!0},primary_arr:{type:Array,computed:"_primaryArr(
primary_map)",notify:!0},_busy2:{type:Boolean,value:!1},_busy1:{type:Boolean,val
ue:!1},_dimensions:{type:Object},_list:{type:Object},_tags:{type:Object}},signIn
:function(){this._getJsonAsync("_tags","/api/swarming/v1/tasks/tags","_busy2",th
is.auth_headers),this._getJsonAsync("_dimensions","/api/swarming/v1/bots/dimensi
ons","_busy1",this.auth_headers)},_primaryArr:function(t){var a=Object.keys(t);r
eturn a.sort(),a},_primaryMap:function(a,s){a=a&&a.tasks_tags||[],s=s&&s.bots_di
mensions||[],tasks=this.tasks||[];var e={};a.forEach(function(t){e[t.key]||(e[t.
key]={});var a=t.value||[];a.forEach(function(a){e[t.key][a]=!0})}),s.forEach(fu
nction(t){var a=t.value;e[t.key]||(e[t.key]={}),a.forEach(function(a){e[t.key][a
]=!0})}),tasks.forEach(function(t){Object.keys(t.tagMap).forEach(function(a){var
s=t.tagMap[a];e[a]||(e[a]={}),e[a][s]=!0})}),e.user&&(delete e.user[""],e.user.
none=!0);var r={};for(key in e){var i=Object.keys(e[key]);if(swarming.alias.DIME
NSIONS_WITH_ALIASES.indexOf(key)===-1)r[key]=i;else{var n=[];i.forEach(function(
t){n.push(swarming.alias.apply(t,key))}),r[key]=n}}return r.name=[],r.state=[thi
s.PENDING,this.RUNNING,"PENDING_RUNNING",this.COMPLETED,"COMPLETED_SUCCESS","COM
PLETED_FAILURE",this.EXPIRED,this.TIMED_OUT,this.BOT_DIED,this.CANCELED,"DEDUPED
","ALL"],r.costs_usd=[],r.deduped_from=[],r.duration=[],r.server_versions=[],r.b
ot=[],t.forEach(function(t){r[t]=[]}),r},parseTasks:function(a){if(!a||!a.items)
return[];var s=new Date;return a.items.forEach(function(a){var e={};a.tags=a.tag
s||[],a.tags.forEach(function(t){var a=t.split(":",1),s=a[0],r=t.substring(s.len
gth+1);e[s]=r}),a.tagMap=e,t.forEach(function(t){a[t]&&(a[t]=new Date(a[t]),a["h
uman_"+t]=sk.human.localeTime(a[t]))}),!a.duration&&a.state===this.RUNNING&&a.st
arted_ts&&(a.duration=(s-a.started_ts)/1e3),a.duration&&(a.human_duration=this._
humanDuration(a.duration))}.bind(this)),a.items}})}()</script> </dom-module> <do
m-module id="task-list" assetpath="/res/imp/tasklist/"> <template> <style includ
e="iron-flex iron-flex-alignment iron-positioning swarming-app-style dynamic-tab
le-style task-style">task-filters{margin-bottom:8px;margin-right:10px}.task-list
th>span{padding-right:30px}</style> <url-param name="s" value="{{_sortstr}}" de
fault_value="created_ts:desc"> </url-param> <swarming-app client_id="[[client_id
]]" auth_headers="{{_auth_headers}}" permissions="{{_permissions}}" signed_in="{
{_signed_in}}" busy="[[_or(_busy1,_busy2)]]" name="Swarming Task List"> <h2 hidd
en$="[[_signed_in]]">You must sign in to see anything useful.</h2> <div hidden$=
"[[_not(_signed_in)]]"> <task-list-data id="data" auth_headers="[[_auth_headers]
]" query_params="[[_query_params]]" tasks="[[_items]]" busy="{{_busy1)}}" primar
y_map="{{_primary_map}}" primary_arr="{{_primary_arr}}"> </task-list-data> <div
class="horizontal layout"> <task-filters primary_map="[[_primary_map]]" primary_
arr="[[_primary_arr]]" columns="{{_columns}}" query_params="{{_query_params}}" f
ilter="{{_filter}}"> </task-filters> </div> <table class="task-list"> <thead on-
sort_change="_sortChange"> <tr> <th> <span>Task Name</span> <sort-toggle name="n
ame" current="[[_sort]]"> </sort-toggle> </th> <th hidden$="[[_hide('state', _co
lumns.*)]]"> <span>State</span> <sort-toggle name="state" current="[[_sort]]"> <
/sort-toggle> </th> <th hidden$="[[_hide('bot', _columns.*)]]"> <span>Bot Assign
ed</span> <sort-toggle name="bot" current="[[_sort]]"> </sort-toggle> </th> <th
hidden$="[[_hide('deduped_from', _columns.*)]]"> <span>Deduped from</span> <sort
-toggle name="deduped_from" current="[[_sort]]"> </sort-toggle> </th> <th hidden
$="[[_hide('source_revision', _columns.*)]]"> <span>Source Revision</span> <sort
-toggle name="source_revision" current="[[_sort]]"> </sort-toggle> </th> <templa
te is="dom-repeat" items="[[_plainColumns]]" as="c"> <th hidden$="[[_hide(c)]]">
<span>[[_header(c)]]</span> <sort-toggle name="[[c]]" current="[[_sort]]"> </so
rt-toggle> </th> </template> </tr> </thead> <tbody> <template id="tasks_table" i
s="dom-repeat" items="[[_filteredSortedItems]]" as="task" initial-count="50"> <t
r class$="[[_taskClass(task)]]"> <td> <a class="center" href$="[[_taskLink(task.
task_id)]]" target="_blank"> [[task.name]] </a> </td> <td hidden$="[[_hide('stat
e', _columns.*)]]"> [[_column('state', task)]] <paper-button raised="" hidden$="
[[_cannotCancel(task,_permissions)]]" on-tap="_promptCancel"> Cancel </paper-but
ton> </td> <td hidden$="[[_hide('bot', _columns.*)]]"> <a class="center" href$="
[[_botLink(task.bot_id)]]" target="_blank"> [[_column('bot',task)]] </a> </td> <
td hidden$="[[_hide('deduped_from', _columns.*)]]"> <a class="center" href$="[[_
taskLink(task.deduped_from)]]" target="_blank"> [[_column('deduped_from',task)]]
</a> </td> <td hidden$="[[_hide('source_revision', _columns.*)]]"> <a class="ce
nter" href$="[[_sourceLink(task)]]" target="_blank"> [[_column('source_revision'
,task)]] </a> </td> <template is="dom-repeat" items="[[_plainColumns]]" as="c">
<td hidden$="[[_hide(c)]]"> [[_column(c, task)]] </td> </template> </tr> </templ
ate> </tbody> </table> <pageable-data id="page_tasks" busy="{{_busy2}}" label="S
how more tasks" output="{{_items}}" parse="[[_parseTasks]]"> </pageable-data> </
div> </swarming-app> <paper-dialog id="prompt" modal="" on-iron-overlay-closed="
_promptClosed"> <h2>Are you sure?</h2> <div>Are you sure you want to [[_dialogPr
ompt]]?</div> <div class="buttons"> <paper-button dialog-dismiss="" autofocus=""
>No</paper-button> <paper-button dialog-confirm="">Yes</paper-button> </div> </p
aper-dialog> </template> <script>!function(){function t(t){return function(e){re
turn this._attribute(e,"human_"+t)[0]}}function e(t){return function(e,a,s){var
r=this._attribute(a,t,"0")[0],i=this._attribute(s,t,"0")[0];return e*(r-i)}}var
a=["deduped_from","name","state","bot","source_revision"],s={abandoned_ts:t("aba
ndoned_ts"),bot:function(t){return this._attribute(t,"bot_id")[0]},completed_ts:
t("completed_ts"),costs_usd:function(t){return this._attribute(t,"costs_usd",0)[
0]},created_ts:t("created_ts"),duration:t("duration"),modified_ts:t("modified_ts
"),source_revision:function(t){var e=this._attribute(t,"source_revision")[0];ret
urn e.substring(0,8)},started_ts:t("started_ts"),state:function(t){var e=this._a
ttribute(t,"state")[0];if("COMPLETED"===e){if(this._attribute(t,"failure",!1)[0]
)return"COMPLETED (FAILURE)";var a=this._attribute(t,"try_number","-1")[0];retur
n"0"===a?"COMPLETED (DEDUPED)":"COMPLETED (SUCCESS)"}return e}},r={user:"Request
ing User"},i={abandoned_ts:e("abandoned_ts"),completed_ts:e("completed_ts"),crea
ted_ts:e("created_ts"),duration:e("duration"),modified_ts:e("modified_ts"),start
ed_ts:e("started_ts")};Polymer({is:"task-list",behaviors:[SwarmingBehaviors.Dyna
micTableBehavior,SwarmingBehaviors.TaskBehavior],properties:{client_id:{type:Str
ing},_busy1:{type:Boolean,value:!1},_busy2:{type:Boolean,value:!1},_parseTasks:{
type:Function,value:function(){return this.$.data.parseTasks.bind(this)}},_toCan
cel:{type:String},_columnMap:{type:Object,value:function(){var t=this._commonCol
umns();for(var e in s)t[e]=s[e];return t}},_headerMap:{type:Object,value:r},_spe
cialColumns:{type:Array,value:a},_specialSort:{type:Object,value:i}},observers:[
"reload(_query_params,_auth_headers)"],_attribute:function(t,e,a){void 0===a&&(a
="none");var s=this._tag(t,e)||t[e]||[a];return Array.isArray(s)?s:[s]},_cannotC
ancel:function(t,e){return!(e&&e.cancel_task&&"PENDING"===this._column("state",t
))},_cancelTask:function(){var t="/api/swarming/v1/task/"+this._toCancel+"/cance
l";swarming.postWithToast(t,"Canceling task "+this._toCancel,this._auth_headers)
,this.set("_toCancel","")},_promptClosed:function(t){t.detail.confirmed&&this._c
ancelTask()},_promptCancel:function(t){var e=t.model.task;return e&&e.task_id?(t
his.set("_toCancel",e.task_id),this.set("_dialogPrompt",'cancel task "'+e.name+'
"'),void this.$.prompt.open()):void console.log("Missing task info",e)},reload:f
unction(){if(this._auth_headers&&this._query_params){var t="/api/swarming/v1/tas
ks/list?"+sk.query.fromParamSet(this._query_params);this.$.page_tasks.load(t,thi
s._auth_headers)}},_sourceLink:function(t){var e=this._attribute(t,"source_revis
ion")[0],a=this._attribute(t,"source_repo")[0];return"none"!==e&&"none"!==a&&a.r
eplace("%s",e)},_tag:function(t,e){if(t&&t.tagMap)return t.tagMap[e]},_taskClass
:function(t){return this.stateClass(this._column("state",t))}})}()</script> </do
m-module> <dom-module id="iron-collapse" assetpath="/res/imp/bower_components/ir
on-collapse/"> <template> <style>:host{display:block;transition-duration:var(--i
ron-collapse-transition-duration,300ms);overflow:visible}:host(.iron-collapse-cl
osed){display:none}:host(:not(.iron-collapse-opened)){overflow:hidden}</style> <
content></content> </template> </dom-module> <script>Polymer({is:"iron-collapse"
,behaviors:[Polymer.IronResizableBehavior],properties:{horizontal:{type:Boolean,
value:!1,observer:"_horizontalChanged"},opened:{type:Boolean,value:!1,notify:!0,
observer:"_openedChanged"},noAnimation:{type:Boolean},_desiredSize:{type:String,
value:""}},get dimension(){return this.horizontal?"width":"height"},get _dimensi
onMax(){return this.horizontal?"maxWidth":"maxHeight"},get _dimensionMaxCss(){re
turn this.horizontal?"max-width":"max-height"},hostAttributes:{role:"group","ari
a-hidden":"true","aria-expanded":"false"},listeners:{transitionend:"_transitionE
nd"},attached:function(){this._transitionEnd()},toggle:function(){this.opened=!t
his.opened},show:function(){this.opened=!0},hide:function(){this.opened=!1},upda
teSize:function(i,t){if(i="auto"===i?"":i,this._desiredSize!==i){this._desiredSi
ze=i,this._updateTransition(!1);var e=t&&!this.noAnimation&&this._isDisplayed;if
(e){var n=this._calcSize();""===i&&(this.style[this._dimensionMax]="",i=this._ca
lcSize()),this.style[this._dimensionMax]=n,this.scrollTop=this.scrollTop,this._u
pdateTransition(!0),e=i!==n}this.style[this._dimensionMax]=i,e||this._transition
End()}},enableTransition:function(i){Polymer.Base._warn("`enableTransition()` is
deprecated, use `noAnimation` instead."),this.noAnimation=!i},_updateTransition
:function(i){this.style.transitionDuration=i&&!this.noAnimation?"":"0s"},_horizo
ntalChanged:function(){this.style.transitionProperty=this._dimensionMaxCss;var i
="maxWidth"===this._dimensionMax?"maxHeight":"maxWidth";this.style[i]="",this.up
dateSize(this.opened?"auto":"0px",!1)},_openedChanged:function(){this.setAttribu
te("aria-expanded",this.opened),this.setAttribute("aria-hidden",!this.opened),th
is.toggleClass("iron-collapse-closed",!1),this.toggleClass("iron-collapse-opened
",!1),this.updateSize(this.opened?"auto":"0px",!0),this.opened&&this.focus()},_t
ransitionEnd:function(){this.style[this._dimensionMax]=this._desiredSize,this.to
ggleClass("iron-collapse-closed",!this.opened),this.toggleClass("iron-collapse-o
pened",this.opened),this._updateTransition(!1),this.notifyResize()},get _isDispl
ayed(){var i=this.getBoundingClientRect();for(var t in i)if(0!==i[t])return!0;re
turn!1},_calcSize:function(){return this.getBoundingClientRect()[this.dimension]
+"px"}})</script> <script>Polymer.IronMenubarBehaviorImpl={hostAttributes:{role:
"menubar"},keyBindings:{left:"_onLeftKey",right:"_onRightKey"},_onUpKey:function
(e){this.focusedItem.click(),e.detail.keyboardEvent.preventDefault()},_onDownKey
:function(e){this.focusedItem.click(),e.detail.keyboardEvent.preventDefault()},g
et _isRTL(){return"rtl"===window.getComputedStyle(this).direction},_onLeftKey:fu
nction(e){this._isRTL?this._focusNext():this._focusPrevious(),e.detail.keyboardE
vent.preventDefault()},_onRightKey:function(e){this._isRTL?this._focusPrevious()
:this._focusNext(),e.detail.keyboardEvent.preventDefault()},_onKeydown:function(
e){this.keyboardEventMatchesKeys(e,"up down left right esc")||this._focusWithKey
boardEvent(e)}},Polymer.IronMenubarBehavior=[Polymer.IronMenuBehavior,Polymer.Ir
onMenubarBehaviorImpl]</script> <iron-iconset-svg name="paper-tabs" size="24"> <
svg><defs> <g id="chevron-left"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.
83 12z"></path></g> <g id="chevron-right"><path d="M10 6L8.59 7.41 13.17 12l-4.5
8 4.59L10 18l6-6z"></path></g> </defs></svg> </iron-iconset-svg> <dom-module id=
"paper-tab" assetpath="/res/imp/bower_components/paper-tabs/"> <template> <style
>:host{@apply(--layout-inline);@apply(--layout-center);@apply(--layout-center-ju
stified);@apply(--layout-flex-auto);position:relative;padding:0 12px;overflow:hi
dden;cursor:pointer;vertical-align:middle;@apply(--paper-font-common-base);@appl
y(--paper-tab)}:host(:focus){outline:0}:host([link]){padding:0}.tab-content{heig
ht:100%;transform:translateZ(0);-webkit-transform:translateZ(0);transition:opaci
ty .1s cubic-bezier(.4,0,1,1);@apply(--layout-horizontal);@apply(--layout-center
-center);@apply(--layout-flex-auto);@apply(--paper-tab-content)}:host(:not(.iron
-selected))>.tab-content{opacity:.8;@apply(--paper-tab-content-unselected)}:host
(:focus) .tab-content{opacity:1;font-weight:700}paper-ripple{color:var(--paper-t
ab-ink,--paper-yellow-a100)}.tab-content>::content>a{@apply(--layout-flex-auto);
height:100%}</style> <div class="tab-content"> <content></content> </div> </temp
late> <script>Polymer({is:"paper-tab",behaviors:[Polymer.IronControlState,Polyme
r.IronButtonState,Polymer.PaperRippleBehavior],properties:{link:{type:Boolean,va
lue:!1,reflectToAttribute:!0}},hostAttributes:{role:"tab"},listeners:{down:"_upd
ateNoink",tap:"_onTap"},attached:function(){this._updateNoink()},get _parentNoin
k(){var t=Polymer.dom(this).parentNode;return!!t&&!!t.noink},_updateNoink:functi
on(){this.noink=!!this.noink||!!this._parentNoink},_onTap:function(t){if(this.li
nk){var e=this.queryEffectiveChildren("a");if(!e)return;if(t.target===e)return;e
.click()}}})</script> </dom-module> <dom-module id="paper-tabs" assetpath="/res/
imp/bower_components/paper-tabs/"> <template> <style>:host{@apply(--layout);@app
ly(--layout-center);height:48px;font-size:14px;font-weight:500;overflow:hidden;-
moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:n
one;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transpar
ent;@apply(--paper-tabs)}:host-context([dir=rtl]){@apply(--layout-horizontal-rev
erse)}#tabsContainer{position:relative;height:100%;white-space:nowrap;overflow:h
idden;@apply(--layout-flex-auto)}#tabsContent{height:100%;-moz-flex-basis:auto;-
ms-flex-basis:auto;flex-basis:auto}#tabsContent.scrollable{position:absolute;whi
te-space:nowrap}#tabsContent.scrollable.fit-container,#tabsContent:not(.scrollab
le){@apply(--layout-horizontal)}#tabsContent.scrollable.fit-container{min-width:
100%}#tabsContent.scrollable.fit-container>::content>*{-ms-flex:1 0 auto;-webkit
-flex:1 0 auto;flex:1 0 auto}.hidden{display:none}.not-visible{opacity:0;cursor:
default}paper-icon-button{width:48px;height:48px;padding:12px;margin:0 4px}#sele
ctionBar{position:absolute;height:2px;bottom:0;left:0;right:0;background-color:v
ar(--paper-tabs-selection-bar-color,--paper-yellow-a100);-webkit-transform:scale
(0);transform:scale(0);-webkit-transform-origin:left center;transform-origin:lef
t center;transition:-webkit-transform;transition:transform;@apply(--paper-tabs-s
election-bar)}#selectionBar.align-bottom{top:0;bottom:auto}#selectionBar.expand{
transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,1,1)}#sele
ctionBar.contract{transition-duration:.18s;transition-timing-function:cubic-bezi
er(0,0,.2,1)}#tabsContent>::content>:not(#selectionBar){height:100%}</style> <pa
per-icon-button icon="paper-tabs:chevron-left" class$="[[_computeScrollButtonCla
ss(_leftHidden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-d
own="_onLeftScrollButtonDown" tabindex="-1"></paper-icon-button> <div id="tabsCo
ntainer" on-track="_scroll" on-down="_down"> <div id="tabsContent" class$="[[_co
mputeTabsContentClass(scrollable, fitContainer)]]"> <div id="selectionBar" class
$="[[_computeSelectionBarClass(noBar, alignBottom)]]" on-transitionend="_onBarTr
ansitionEnd"></div> <content select="*"></content> </div> </div> <paper-icon-but
ton icon="paper-tabs:chevron-right" class$="[[_computeScrollButtonClass(_rightHi
dden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-down="_onRi
ghtScrollButtonDown" tabindex="-1"></paper-icon-button> </template> <script>Poly
mer({is:"paper-tabs",behaviors:[Polymer.IronResizableBehavior,Polymer.IronMenuba
rBehavior],properties:{noink:{type:Boolean,value:!1,observer:"_noinkChanged"},no
Bar:{type:Boolean,value:!1},noSlide:{type:Boolean,value:!1},scrollable:{type:Boo
lean,value:!1},fitContainer:{type:Boolean,value:!1},disableDrag:{type:Boolean,va
lue:!1},hideScrollButtons:{type:Boolean,value:!1},alignBottom:{type:Boolean,valu
e:!1},selectable:{type:String,value:"paper-tab"},autoselect:{type:Boolean,value:
!1},autoselectDelay:{type:Number,value:0},_step:{type:Number,value:10},_holdDela
y:{type:Number,value:1},_leftHidden:{type:Boolean,value:!1},_rightHidden:{type:B
oolean,value:!1},_previousTab:{type:Object}},hostAttributes:{role:"tablist"},lis
teners:{"iron-resize":"_onTabSizingChanged","iron-items-changed":"_onTabSizingCh
anged","iron-select":"_onIronSelect","iron-deselect":"_onIronDeselect"},keyBindi
ngs:{"left:keyup right:keyup":"_onArrowKeyup"},created:function(){this._holdJob=
null,this._pendingActivationItem=void 0,this._pendingActivationTimeout=void 0,th
is._bindDelayedActivationHandler=this._delayedActivationHandler.bind(this),this.
addEventListener("blur",this._onBlurCapture.bind(this),!0)},ready:function(){thi
s.setScrollDirection("y",this.$.tabsContainer)},detached:function(){this._cancel
PendingActivation()},_noinkChanged:function(t){var e=Polymer.dom(this).querySele
ctorAll("paper-tab");e.forEach(t?this._setNoinkAttribute:this._removeNoinkAttrib
ute)},_setNoinkAttribute:function(t){t.setAttribute("noink","")},_removeNoinkAtt
ribute:function(t){t.removeAttribute("noink")},_computeScrollButtonClass:functio
n(t,e,i){return!e||i?"hidden":t?"not-visible":""},_computeTabsContentClass:funct
ion(t,e){return t?"scrollable"+(e?" fit-container":""):" fit-container"},_comput
eSelectionBarClass:function(t,e){return t?"hidden":e?"align-bottom":""},_onTabSi
zingChanged:function(){this.debounce("_onTabSizingChanged",function(){this._scro
ll(),this._tabChanged(this.selectedItem)},10)},_onIronSelect:function(t){this._t
abChanged(t.detail.item,this._previousTab),this._previousTab=t.detail.item,this.
cancelDebouncer("tab-changed")},_onIronDeselect:function(t){this.debounce("tab-c
hanged",function(){this._tabChanged(null,this._previousTab),this._previousTab=nu
ll},1)},_activateHandler:function(){this._cancelPendingActivation(),Polymer.Iron
MenuBehaviorImpl._activateHandler.apply(this,arguments)},_scheduleActivation:fun
ction(t,e){this._pendingActivationItem=t,this._pendingActivationTimeout=this.asy
nc(this._bindDelayedActivationHandler,e)},_delayedActivationHandler:function(){v
ar t=this._pendingActivationItem;this._pendingActivationItem=void 0,this._pendin
gActivationTimeout=void 0,t.fire(this.activateEvent,null,{bubbles:!0,cancelable:
!0})},_cancelPendingActivation:function(){void 0!==this._pendingActivationTimeou
t&&(this.cancelAsync(this._pendingActivationTimeout),this._pendingActivationItem
=void 0,this._pendingActivationTimeout=void 0)},_onArrowKeyup:function(t){this.a
utoselect&&this._scheduleActivation(this.focusedItem,this.autoselectDelay)},_onB
lurCapture:function(t){t.target===this._pendingActivationItem&&this._cancelPendi
ngActivation()},get _tabContainerScrollSize(){return Math.max(0,this.$.tabsConta
iner.scrollWidth-this.$.tabsContainer.offsetWidth)},_scroll:function(t,e){if(thi
s.scrollable){var i=e&&-e.ddx||0;this._affectScroll(i)}},_down:function(t){this.
async(function(){this._defaultFocusAsync&&(this.cancelAsync(this._defaultFocusAs
ync),this._defaultFocusAsync=null)},1)},_affectScroll:function(t){this.$.tabsCon
tainer.scrollLeft+=t;var e=this.$.tabsContainer.scrollLeft;this._leftHidden=0===
e,this._rightHidden=e===this._tabContainerScrollSize},_onLeftScrollButtonDown:fu
nction(){this._scrollToLeft(),this._holdJob=setInterval(this._scrollToLeft.bind(
this),this._holdDelay)},_onRightScrollButtonDown:function(){this._scrollToRight(
),this._holdJob=setInterval(this._scrollToRight.bind(this),this._holdDelay)},_on
ScrollButtonUp:function(){clearInterval(this._holdJob),this._holdJob=null},_scro
llToLeft:function(){this._affectScroll(-this._step)},_scrollToRight:function(){t
his._affectScroll(this._step)},_tabChanged:function(t,e){if(!t)return this.$.sel
ectionBar.classList.remove("expand"),this.$.selectionBar.classList.remove("contr
act"),void this._positionBar(0,0);var i=this.$.tabsContent.getBoundingClientRect
(),n=i.width,o=t.getBoundingClientRect(),s=o.left-i.left;if(this._pos={width:thi
s._calcPercent(o.width,n),left:this._calcPercent(s,n)},this.noSlide||null==e)ret
urn this.$.selectionBar.classList.remove("expand"),this.$.selectionBar.classList
.remove("contract"),void this._positionBar(this._pos.width,this._pos.left);var a
=e.getBoundingClientRect(),l=this.items.indexOf(e),c=this.items.indexOf(t),r=5;t
his.$.selectionBar.classList.add("expand");var h=l<c,d=this._isRTL;d&&(h=!h),h?t
his._positionBar(this._calcPercent(o.left+o.width-a.left,n)-r,this._left):this._
positionBar(this._calcPercent(a.left+a.width-o.left,n)-r,this._calcPercent(s,n)+
r),this.scrollable&&this._scrollToSelectedIfNeeded(o.width,s)},_scrollToSelected
IfNeeded:function(t,e){var i=e-this.$.tabsContainer.scrollLeft;i<0?this.$.tabsCo
ntainer.scrollLeft+=i:(i+=t-this.$.tabsContainer.offsetWidth,i>0&&(this.$.tabsCo
ntainer.scrollLeft+=i))},_calcPercent:function(t,e){return 100*t/e},_positionBar
:function(t,e){t=t||0,e=e||0,this._width=t,this._left=e,this.transform("translat
eX("+e+"%) scaleX("+t/100+")",this.$.selectionBar)},_onBarTransitionEnd:function
(t){var e=this.$.selectionBar.classList;e.contains("expand")?(e.remove("expand")
,e.add("contract"),this._positionBar(this._pos.width,this._pos.left)):e.contains
("contract")&&e.remove("contract")}})</script> </dom-module> <dom-module id="sin
gle-page-style" assetpath="/res/imp/common/"> <template> <style>.header{max-widt
h:800px}.title{font-size:1.5em;font-weight:700;margin:5px}.id_input{margin-left:
5px;--paper-input-container-input:{font-size:2em};}.refresh{max-width:40px;max-h
eight:40px;width:initial;height:initial}button{min-width:4em;max-height:55px}tab
le{border-collapse:collapse;margin-left:5px;margin-bottom:8px}td,th{border:1px s
olid #BBB;padding:5px}.tabs{background-color:#1F78B4;color:#fff;max-width:600px;
margin-left:5px;--paper-checkbox-label-color:#fff}paper-tab{background-color:#A6
CEE3;color:#000}paper-tab.iron-selected{background-color:#1F78B4;color:#fff;font
-weight:700;text-decoration:underline}paper-tab[disabled]{background-color:#AAA;
text-decoration:line-through}.quarantined{background-color:#fdd}.dead{background
-color:#ccc}</style> </template> </dom-module><script>!function(){SwarmingBehavi
ors.BotPageBehavior=[SwarmingBehaviors.CommonBehavior,{}]}()</script> <dom-modul
e id="bot-page-data" assetpath="/res/imp/botpage/"> <script>!function(){function
t(t){if(!s){var e=t.toString();s=e.substring(e.indexOf("("))}return t.toLocaleS
tring()+" "+s}var e,s,i=400,n=["first_seen_ts","last_seen_ts","lease_expiration_
ts"],a=["started_ts","completed_ts","abandoned_ts","modified_ts"];Polymer({is:"b
ot-page-data",behaviors:[SwarmingBehaviors.BotPageBehavior],properties:{auth_hea
ders:{type:Object},bot_id:{type:String},busy:{type:Boolean,computed:"_or(_busy1)
",notify:!0},bot:{type:Object,computed:"_parseBot(_bot)",notify:!0},bot_exists:{
type:Boolean,value:!0,notify:!0},_busy1:{type:Boolean,value:!1},_bot:{type:Objec
t},_events:{type:Object},_tasks:{type:Object}},observers:["request(auth_headers,
bot_id)"],request:function(){this.bot_id&&this.auth_headers&&(e&&this.cancelAsyn
c(e),e=this.async(function(){e=void 0;var t="/api/swarming/v1/bot/"+this.bot_id,
s=this._getJsonAsync("_bot",t+"/get","_busy1",this.auth_headers);s.then(function
(){this.set("bot_exists",!0)}.bind(this)).catch(function(t){404===t.status?this.
set("bot_exists",!1):sk.errorMessage("Http response: "+(t.status||" ")+" "+t.res
ponse)}.bind(this)),this.fire("reload",{id:this.bot_id})},i))},_parseBot:functio
n(e){if(!e)return{};e.state=e.state||"{}",e.state=JSON.parse(e.state)||{};var s=
e.state.disks||{},i=Object.keys(s);if(i.length){e.disks=[];for(var a=0;a<i.lengt
h;a++)e.disks.push({id:i[a],mb:s[i[a]].free_mb});e.disks.sort(function(t,e){retu
rn e.mb-t.mb})}else e.disks=[{id:"unknown",mb:0}];return e.dimensions=e.dimensio
ns||[],e.dimensions.forEach(function(t){swarming.alias.DIMENSIONS_WITH_ALIASES.i
ndexOf(t.key)!==-1&&t.value.forEach(function(e,s){t.value[s]=swarming.alias.appl
y(e,t.key)})}),n.forEach(function(s){e[s]&&(e[s]=new Date(e[s]),e["human_"+s]=t(
e[s]))}),e},parseEvents:function(e){if(!e||!e.items)return[];var e=e.items;retur
n e.forEach(function(e){e.ts&&(e.ts=new Date(e.ts),e.human_ts=t(e.ts))}),e.sort(
function(t,e){return e.ts-t.ts}),e},parseTasks:function(e){if(!e||!e.items)retur
n[];var e=e.items;return e.forEach(function(e){if(a.forEach(function(s){e[s]&&(e
[s]=new Date(e[s]),e["human_"+s]=t(e[s]))}),e.duration)e.human_duration=this._hu
manDuration(e.duration);else{var s=e.completed_ts||e.abandoned_ts||e.modified_ts
||new Date;e.human_duration=this._timeDiffExact(e.started_ts,s),e.duration=(s.ge
tTime()-e.started_ts)/1e3}e.state=e.state||"UNKNOWN","COMPLETED"===e.state&&(e.f
ailure?e.state="FAILURE":e.state="SUCCESS")}.bind(this)),e.sort(function(t,e){re
turn e.started_ts-t.started_ts}),e}})}()</script> </dom-module> <dom-module id="
bot-page-summary" assetpath="/res/imp/botpage/"> <template> <style include="sing
le-page-style">.wrapper{display:table;margin-left:auto;margin-bottom:10px;margin
-right:5px}paper-checkbox{margin-left:5px}.thick{border-top-style:solid}</style>
<url-param name="show_full_names" value="{{_show_full_names}}"> </url-param> <u
rl-param name="show_all_tasks" value="{{_show_all_tasks}}"> </url-param> <url-pa
ram name="sort_stats" value="{{_sortstr}}" default_value="total:desc"> </url-par
am> <div class="wrapper"> <table> <thead on-sort_change="_sortChange"> <tr> <th>
<span>Name</span> <sort-toggle name="full_name" current="[[_sort]]"> </sort-tog
gle> </th> <th> <span>Total</span> <sort-toggle name="total" current="[[_sort]]"
> </sort-toggle> </th> <th> <span>Success</span> <sort-toggle name="success" cur
rent="[[_sort]]"> </sort-toggle> </th> <th> <span>Failed</span> <sort-toggle nam
e="failed" current="[[_sort]]"> </sort-toggle> </th> <th> <span>Died</span> <sor
t-toggle name="bot_died" current="[[_sort]]"> </sort-toggle> </th> <th> <span>Av
erage Duration</span> <sort-toggle name="avg_duration" current="[[_sort]]"> </so
rt-toggle> </th> <th> <span>Total Duration</span> <sort-toggle name="total_time"
current="[[_sort]]"> </sort-toggle> </th> <th>Percent of Total</th> </tr> </the
ad> <tbody> <template is="dom-repeat" items="[[_tasksToShow]]" as="task"> <tr> <
td hidden$="[[_truthy(_show_full_names)]]" title="[[task.full_name]]">[[task.nam
e]]</td> <td hidden$="[[_not(_show_full_names)]]" title="[[task.full_name]]">[[t
ask.full_name]]</td> <td>[[task.total]]</td> <td>[[task.success]]</td> <td>[[tas
k.failed]]</td> <td>[[task.bot_died]]</td> <td>[[_humanDuration(task.avg_duratio
n)]]</td> <td>[[_humanDuration(task.total_time)]]</td> <td>[[task.total_time_per
cent]]%</td> </tr> </template> </tbody> <tbody><tr class="thick"> <td>Total</td>
<td>[[_totalStats.total]]</td> <td>[[_totalStats.success]]</td> <td>[[_totalSta
ts.failed]]</td> <td>[[_totalStats.bot_died]]</td> <td>[[_humanDuration(_totalSt
ats.avg_duration)]]</td> <td>[[_humanDuration(_totalStats.total_time)]]</td> <td
>100.0%</td> </tr> </tbody></table> <div> <table> <thead> <tr> <th title="How mu
ch time passed between the oldest task fetched and now."> Total Wall Time </th>
<th title="How much of the wall time this bot was busy with a task."> Wall Time
Utilization </th> </tr> </thead> <tbody> <tr> <td>[[_humanDuration(_totalStats.w
all_time)]]</td> <td>[[_totalStats.wall_time_utilization]]%</td> </tr> </tbody>
</table> <paper-checkbox checked="{{_show_full_names}}"> Show Full Names </paper
-checkbox> <paper-checkbox hidden$="[[_cannotExpand]]" checked="{{_show_all_task
s}}"> Show All Tasks </paper-checkbox> </div> </div> </template> <script>!functi
on(){var t=15;Polymer({is:"bot-page-summary",behaviors:[SwarmingBehaviors.BotPag
eBehavior],properties:{tasks:{type:Array},_cannotExpand:{type:Boolean,computed:"
_countTasks(_taskStats.*)"},_show_all_tasks:{type:Boolean},_show_full_names:{typ
e:Boolean},_sortstr:{type:String},_sort:{type:Object,computed:"_makeSortObject(_
sortstr)"},_taskStats:{type:Array},_tasksToShow:{type:Array,computed:"_sortAndLi
mitTasks(_taskStats.*,_sort.*,_show_all_tasks)"},_totalStats:{type:Object}},obse
rvers:["_aggregate(tasks.*)"],_aggregate:function(){if(this.tasks&&this.tasks.le
ngth){var t=new Date(1e3*sk.now()),a={},e={total:this.tasks.length,success:0,fai
led:0,bot_died:0,avg_duration:0,total_time:0,wall_time:(t-this.tasks[this.tasks.
length-1].started_ts)/1e3};this.tasks.forEach(function(t){var s=t.name.trim(),i=
s.split("/");5===i.length&&(s=i[0]+"/"+i[3]),a[s]||(a[s]={full_name:s,name:s,tot
al:0,success:0,failed:0,bot_died:0,avg_duration:0,total_time:0}),a[s].total++,t.
failure?(e.failed++,a[s].failed++):t.internal_failure?(e.bot_died++,a[s].bot_die
d++):(e.success++,a[s].success++),e.total_time+=t.duration,a[s].total_time+=t.du
ration}),e.avg_duration=e.total_time/e.total,e.wall_time_utilization=(100*e.tota
l_time/e.wall_time).toFixed(1),this.set("_totalStats",e);var s=Object.keys(a),i=
[];s.forEach(function(t){a[t].avg_duration=a[t].total_time/a[t].total,a[t].total
_time_percent=(100*a[t].total_time/e.total_time).toFixed(1),i.push(a[t])});var o
=new Substrings({minOccurrence:Math.max(2,s.length-1),minLength:6});o.build(s);v
ar n=o.weighByAverage()||[];n.length&&n[0].source.forEach(function(t){var a=i[t]
.full_name;i[t].name=a.replace(n[0].name,"...")}),this.set("_taskStats",i)}},_co
mpare:function(t,a){if(!this._sort)return 0;var e=1;return"desc"===this._sort.di
rection&&(e=-1),e*swarming.naturalCompare(t[this._sort.name],a[this._sort.name])
},_countTasks:function(){return this._taskStats.length<=t},_makeSortObject:funct
ion(t){if(t){var a=t.split(":");return 2!=a.length?{name:"full_name",direction:"
asc"}:{name:a[0],direction:a[1]}}},_sortAndLimitTasks:function(){swarming.stable
Sort(this._taskStats,this._compare.bind(this));var a=this._taskStats.length;retu
rn!this._show_all_tasks&&this._taskStats.length>t&&(a=t),this._taskStats.slice(0
,a)},_sortChange:function(t){t&&t.detail&&t.detail.name&&(t.preventDefault(),t.s
topPropagation(),this.set("_sortstr",t.detail.name+":"+t.detail.direction))}})}(
)</script> </dom-module><dom-module id="bot-page" assetpath="/res/imp/botpage/">
<template> <style include="iron-flex iron-flex-alignment iron-positioning swarm
ing-app-style single-page-style task-style">.message{white-space:pre-line;font-f
amily:monospace}.bot_state{white-space:pre;font-family:monospace;margin-bottom:1
0px}.events_table,.tasks_table{border:3px solid #1F78B4}.old_version{background-
color:#ffd}.stats{min-width:700px;flex-grow:2}#collapse{max-width:700px}.cloud{w
hite-space:nowrap;margin-bottom:5px;margin-top:auto}paper-checkbox{--paper-check
box-label-color:#fff;--paper-checkbox-checked-color:#fff;--paper-checkbox-checkm
ark-color:#000;--paper-checkbox-unchecked-color:#fff;padding:3px}paper-dialog{bo
rder-radius:6px}</style> <url-param name="id" value="{{bot_id}}"> </url-param> <
url-param name="show_all_events" value="{{_show_all}}"> </url-param> <url-param
name="selected" value="{{_selected}}"> </url-param> <url-param name="show_state"
value="{{_show_state}}"> </url-param> <swarming-app client_id="[[client_id]]" a
uth_headers="{{_auth_headers}}" permissions="{{_permissions}}" server_details="{
{_server_details}}" signed_in="{{_signed_in}}" busy="[[_or(_busy1,_busy2,_busy3)
]]" name="Swarming Bot Page"> <h2 hidden$="[[_signed_in]]">You must sign in to s
ee anything useful.</h2> <div hidden$="[[_not(_signed_in)]]"> <bot-page-data id=
"data" auth_headers="[[_auth_headers]]" bot_id="[[bot_id]]" bot="{{_bot}}" bot_e
xists="{{_bot_exists}}" busy="{{_busy1}}" events="{{_events}}" tasks="{{_tasks}}
" on-reload="_clearAndReload"> </bot-page-data> <div class="header horizontal la
yout"> <paper-input class="id_input" label="Bot id" value="{{bot_id}}"></paper-i
nput> <template is="dom-if" if="[[_ccLink(_bot)]]"> <div class="vertical layout"
> <a href$="[[_ccLink(_bot)]]" class="cloud">Cloud Console</a> </div> </template
> <button on-click="_refresh"> <iron-icon class="refresh" icon="icons:refresh"><
/iron-icon> </button> </div> </div> <h2 hidden$="[[_bot_exists]]">Bot not found.
</h2> <div hidden$="[[_not(_bot_exists)]]"> <div class="horizontal wrap layout">
<div class="flex"> <table> <tbody><tr class$="[[_isDead(_bot)]]" title="Last ti
me the bot contacted the server."> <td>Last Seen</td> <td title="[[_bot.human_la
st_seen_ts]]"> [[_timeDiffExact(_bot.last_seen_ts)]] ago</td> <td> <template is=
"dom-if" if="[[_canShutdown(_bot,_permissions)]]"> <button class="raised" on-cli
ck="_promptShutdown"> Shut Down Gracefully </button> </template> <template is="d
om-if" if="[[_canDelete(_bot,_permissions)]]"> <button class="raised" on-click="
_promptDelete"> Delete </button> </template> </td> </tr> <template is="dom-if" i
f="[[_bot.quarantined]]"> <tr class="quarantined"> <td>Quarantined</td> <td cols
pan="2" class="message">[[_quarantineMessage(_bot)]]</td> </tr> </template> <tr>
<td>Current Task</td> <td> <a target="_blank" rel="noopener" href$="[[_taskLink
(_bot.task_id)]]"> [[_task(_bot)]] </a> </td> <td> </td> </tr> <tr> <td rowspan$
="[[_numRows(_bot.dimensions)]]">Dimensions</td> </tr> <template is="dom-repeat"
items="[[_bot.dimensions]]" as="dim"> <tr> <td>[[dim.key]]</td> <td>[[_concat(d
im.value)]]</td> </tr> </template> <tr title="IP address that the server saw the
connection from."> <td>External IP</td> <td><a href$="[[_bot.external_ip]]">[[_
bot.external_ip]]</a></td> <td></td> </tr> <tr class$="[[_classVersion(_server_d
etails.bot_version,_bot.version)]]" title="Version is based on the content of sw
arming_bot.zip which is the swarming bot code. The bot won't update if quarantin
ed, dead, or busy."> <td>Bot Version</td> <td>[[_shorten(_bot.version,'8')]]</td
> <td></td> </tr> <tr title="The version the server expects the bot to be using.
"> <td>Expected Bot Version</td> <td>[[_shorten(_server_details.bot_version,'8')
]]</td> <td></td> </tr> <tr title="First time ever a bot with this id contacted
the server."> <td>First seen</td> <td title="[[_bot.human_first_seen_ts]]"> [[_t
imeDiffApprox(_bot.first_seen_ts)]] ago </td> <td></td> </tr> <tr title="How the
bot is authenticated by the server."> <td>Authenticated as</td> <td colspan="2"
>[[_bot.authenticated_as]]</td> </tr> <template is="dom-if" if="[[_bot.lease_id]
]"> <tr> <td>Machine Provider Lease ID</td> <td colspan="2"> <a href$="[[_mpLink
(_bot,_server_details.machine_provider_template)]]"> [[_bot.lease_id]] </a> </td
> </tr> <tr> <td>Machine Provider Lease Expires</td> <td colspan="2">[[_bot.huma
n_lease_expiration_ts]]</td> </tr> </template> </tbody></table> <span class="tit
le">State</span> <template is="dom-if" if="[[_not(_show_state)]]"> <button on-cl
ick="_toggleState"> <iron-icon icon="icons:add-circle-outline"></iron-icon> </bu
tton> </template> <template is="dom-if" if="[[_show_state]]"> <button on-click="
_toggleState"> <iron-icon icon="icons:remove-circle-outline"></iron-icon> </butt
on> </template> <iron-collapse id="collapse" opened="[[_show_state]]"> <div clas
s="bot_state">[[_prettyPrint(_bot.state)]]</div> </iron-collapse> </div> <div cl
ass="stats flex"> <bot-page-summary tasks="[[_tasks]]"> </bot-page-summary> </di
v> </div> <div class="tabs"> <paper-tabs selected="{{_selected}}" no-bar=""> <pa
per-tab>Tasks</paper-tab> <paper-tab>Events</paper-tab> </paper-tabs> <template
is="dom-if" if="[[_showEvents]]"> <paper-checkbox checked="{{_show_all}}"> Show
all events </paper-checkbox> </template> </div> <template is="dom-if" if="[[_not
(_showEvents)]]"> <table class="tasks_table"> <thead> <tr> <th>Task</th> <th>Sta
rted</th> <th>Duration</th> <th>Result</th> </tr> </thead> <tbody> <template is=
"dom-repeat" items="{{_tasks}}" as="task"> <tr class$="[[_taskClass(task)]]"> <t
d> <a target="_blank" rel="noopener" href$="[[_taskLink(task.task_id)]]"> [[task
.name]] </a> </td> <td>[[task.human_started_ts]]</td> <td title="[[task.human_co
mpleted_ts]]">[[task.human_duration]]</td> <td>[[task.state]]</td> </tr> </templ
ate> </tbody> </table> </template> <template is="dom-if" if="[[_showEvents]]"> <
table class="events_table"> <thead> <tr> <th>Message</th> <th>Type</th> <th>Time
stamp</th> <th>Task ID</th> <th>Version</th> </tr> </thead> <tbody> <template is
="dom-repeat" items="{{_eventList(_show_all,_events.*)}}" as="event"> <tr> <td c
lass="message">[[event.message]]</td> <td>[[event.event_type]]</td> <td>[[event.
human_ts]]</td> <td> <a target="_blank" rel="noopener" href$="[[_taskLink(event.
task_id)]]"> [[event.task_id]] </a> </td> <td class$="[[_classVersion(_server_de
tails.bot_version,event.version)]]"> [[_shorten(event.version,'8')]] </td> </tr>
</template> </tbody> </table> </template> <pageable-data id="page_tasks" hidden
$="[[_showEvents]]" busy="{{_busy2}}" label="Show more tasks" output="{{_tasks}}
" parse="[[_parseTasks]]"> </pageable-data> <pageable-data id="page_events" hidd
en$="[[_not(_showEvents)]]" busy="{{_busy3}}" label="Show more events" output="{
{_events}}" parse="[[_parseEvents]]"> </pageable-data> </div> </swarming-app> <p
aper-dialog id="prompt" modal="" on-iron-overlay-closed="_promptClosed"> <h2>Are
you sure?</h2> <div>Are you sure you want to [[_dialogPrompt]]?</div> <div clas
s="buttons"> <paper-button dialog-dismiss="" autofocus="">No</paper-button> <pap
er-button dialog-confirm="">Yes</paper-button> </div> </paper-dialog> </template
> <script> (function(){ | 737 })(); </script> </dom-module> <dom-module id="paper-button" assetpath="/res/im
p/bower_components/paper-button/"> <template strip-whitespace=""> <style include
="paper-material-shared-styles">:host{@apply(--layout-inline);@apply(--layout-ce
nter-center);position:relative;box-sizing:border-box;min-width:5.14em;margin:0 .
29em;background:0 0;-webkit-tap-highlight-color:transparent;-webkit-tap-highligh
t-color:transparent;font:inherit;text-transform:uppercase;outline-width:0;border
-radius:3px;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;
user-select:none;cursor:pointer;z-index:0;padding:.7em .57em;@apply(--paper-font
-common-base);@apply(--paper-button)}:host([hidden]){display:none!important}:hos
t([raised].keyboard-focus){font-weight:700;@apply(--paper-button-raised-keyboard
-focus)}:host(:not([raised]).keyboard-focus){font-weight:700;@apply(--paper-butt
on-flat-keyboard-focus)}:host([disabled]){background:#eaeaea;color:#a8a8a8;curso
r:auto;pointer-events:none;@apply(--paper-button-disabled)}:host([animated]){@ap
ply(--shadow-transition)}paper-ripple{color:var(--paper-button-ink-color)}</styl
e> <content></content> </template> <script>Polymer({is:"paper-button",behaviors:
[Polymer.PaperButtonBehavior],properties:{raised:{type:Boolean,reflectToAttribut
e:!0,value:!1,observer:"_calculateElevation"}},_calculateElevation:function(){th
is.raised?Polymer.PaperButtonBehaviorImpl._calculateElevation.apply(this):this._
setElevation(0)}})</script> </dom-module> <script>Polymer.NeonAnimatableBehavior
={properties:{animationConfig:{type:Object},entryAnimation:{observer:"_entryAnim
ationChanged",type:String},exitAnimation:{observer:"_exitAnimationChanged",type:
String}},_entryAnimationChanged:function(){this.animationConfig=this.animationCo
nfig||{},this.animationConfig.entry=[{name:this.entryAnimation,node:this}]},_exi
tAnimationChanged:function(){this.animationConfig=this.animationConfig||{},this.
animationConfig.exit=[{name:this.exitAnimation,node:this}]},_copyProperties:func
tion(i,n){for(var t in n)i[t]=n[t]},_cloneConfig:function(i){var n={isClone:!0};
return this._copyProperties(n,i),n},_getAnimationConfigRecursive:function(i,n,t)
{if(this.animationConfig){if(this.animationConfig.value&&"function"==typeof this
.animationConfig.value)return void this._warn(this._logf("playAnimation","Please
put 'animationConfig' inside of your components 'properties' object instead of
outside of it."));var o;if(o=i?this.animationConfig[i]:this.animationConfig,Arra
y.isArray(o)||(o=[o]),o)for(var e,a=0;e=o[a];a++)if(e.animatable)e.animatable._g
etAnimationConfigRecursive(e.type||i,n,t);else if(e.id){var r=n[e.id];r?(r.isClo
ne||(n[e.id]=this._cloneConfig(r),r=n[e.id]),this._copyProperties(r,e)):n[e.id]=
e}else t.push(e)}},getAnimationConfig:function(i){var n={},t=[];this._getAnimati
onConfigRecursive(i,n,t);for(var o in n)t.push(n[o]);return t}}</script> <script
>Polymer.NeonAnimationRunnerBehaviorImpl={_configureAnimations:function(n){var i
=[];if(n.length>0)for(var e,t=0;e=n[t];t++){var o=document.createElement(e.name)
;if(o.isNeonAnimation){var a=null;try{a=o.configure(e),"function"!=typeof a.canc
el&&(a=document.timeline.play(a))}catch(n){a=null,console.warn("Couldnt play","(
",e.name,").",n)}a&&i.push({neonAnimation:o,config:e,animation:a})}else console.
warn(this.is+":",e.name,"not found!")}return i},_shouldComplete:function(n){for(
var i=!0,e=0;e<n.length;e++)if("finished"!=n[e].animation.playState){i=!1;break}
return i},_complete:function(n){for(var i=0;i<n.length;i++)n[i].neonAnimation.co
mplete(n[i].config);for(var i=0;i<n.length;i++)n[i].animation.cancel()},playAnim
ation:function(n,i){var e=this.getAnimationConfig(n);if(e){this._active=this._ac
tive||{},this._active[n]&&(this._complete(this._active[n]),delete this._active[n
]);var t=this._configureAnimations(e);if(0==t.length)return void this.fire("neon
-animation-finish",i,{bubbles:!1});this._active[n]=t;for(var o=0;o<t.length;o++)
t[o].animation.onfinish=function(){this._shouldComplete(t)&&(this._complete(t),d
elete this._active[n],this.fire("neon-animation-finish",i,{bubbles:!1}))}.bind(t
his)}},cancelAnimation:function(){for(var n in this._animations)this._animations
[n].cancel();this._animations={}}},Polymer.NeonAnimationRunnerBehavior=[Polymer.
NeonAnimatableBehavior,Polymer.NeonAnimationRunnerBehaviorImpl]</script> <script
>Polymer.PaperDialogBehaviorImpl={hostAttributes:{role:"dialog",tabindex:"-1"},p
roperties:{modal:{type:Boolean,value:!1}},observers:["_modalChanged(modal, _read
ied)"],listeners:{tap:"_onDialogClick"},ready:function(){this.__prevNoCancelOnOu
tsideClick=this.noCancelOnOutsideClick,this.__prevNoCancelOnEscKey=this.noCancel
OnEscKey,this.__prevWithBackdrop=this.withBackdrop},_modalChanged:function(i,e){
e&&(i?(this.__prevNoCancelOnOutsideClick=this.noCancelOnOutsideClick,this.__prev
NoCancelOnEscKey=this.noCancelOnEscKey,this.__prevWithBackdrop=this.withBackdrop
,this.noCancelOnOutsideClick=!0,this.noCancelOnEscKey=!0,this.withBackdrop=!0):(
this.noCancelOnOutsideClick=this.noCancelOnOutsideClick&&this.__prevNoCancelOnOu
tsideClick,this.noCancelOnEscKey=this.noCancelOnEscKey&&this.__prevNoCancelOnEsc
Key,this.withBackdrop=this.withBackdrop&&this.__prevWithBackdrop))},_updateClosi
ngReasonConfirmed:function(i){this.closingReason=this.closingReason||{},this.clo
singReason.confirmed=i},_onDialogClick:function(i){for(var e=Polymer.dom(i).path
,o=0;o<e.indexOf(this);o++){var t=e[o];if(t.hasAttribute&&(t.hasAttribute("dialo
g-dismiss")||t.hasAttribute("dialog-confirm"))){this._updateClosingReasonConfirm
ed(t.hasAttribute("dialog-confirm")),this.close(),i.stopPropagation();break}}}},
Polymer.PaperDialogBehavior=[Polymer.IronOverlayBehavior,Polymer.PaperDialogBeha
viorImpl]</script> <dom-module id="paper-dialog-shared-styles" assetpath="/res/i
mp/bower_components/paper-dialog-behavior/"> <template> <style>:host{display:blo
ck;margin:24px 40px;background:var(--paper-dialog-background-color,--primary-bac
kground-color);color:var(--paper-dialog-color,--primary-text-color);@apply(--pap
er-font-body1);@apply(--shadow-elevation-16dp);@apply(--paper-dialog)}:host>::co
ntent>*{margin-top:20px;padding:0 24px}:host>::content>.no-padding{padding:0}:ho
st>::content>:first-child{margin-top:24px}:host>::content>:last-child{margin-bot
tom:24px}:host>::content h2{position:relative;margin:0;@apply(--paper-font-title
);@apply(--paper-dialog-title)}:host>::content .buttons{position:relative;paddin
g:8px 8px 8px 24px;margin:0;color:var(--paper-dialog-button-color,--primary-colo
r);@apply(--layout-horizontal);@apply(--layout-end-justified)}</style> </templat
e> </dom-module> <dom-module id="paper-dialog" assetpath="/res/imp/bower_compone
nts/paper-dialog/"> <template> <style include="paper-dialog-shared-styles"></sty
le> <content></content> </template> </dom-module> <script>!function(){Polymer({i
s:"paper-dialog",behaviors:[Polymer.PaperDialogBehavior,Polymer.NeonAnimationRun
nerBehavior],listeners:{"neon-animation-finish":"_onNeonAnimationFinish"},_rende
rOpened:function(){this.cancelAnimation(),this.playAnimation("entry")},_renderCl
osed:function(){this.cancelAnimation(),this.playAnimation("exit")},_onNeonAnimat
ionFinish:function(){this.opened?this._finishRenderOpened():this._finishRenderCl
osed()}})}()</script> <script>window.SwarmingBehaviors=window.SwarmingBehaviors|
|{},function(){SwarmingBehaviors.TaskBehavior={properties:{BOT_DIED:{type:String
,value:"BOT_DIED"},CANCELED:{type:String,value:"CANCELED"},COMPLETED:{type:Strin
g,value:"COMPLETED"},COMPLETED_DEDUPED:{type:String,value:"COMPLETED (DEDUPED)"}
,COMPLETED_FAILURE:{type:String,value:"COMPLETED (FAILURE)"},COMPLETED_SUCCESS:{
type:String,value:"COMPLETED (SUCCESS)"},EXPIRED:{type:String,value:"EXPIRED"},P
ENDING:{type:String,value:"PENDING"},RUNNING:{type:String,value:"RUNNING"},TIMED
_OUT:{type:String,value:"TIMED_OUT"}},stateClass:function(t){return t===this.CAN
CELED||t===this.TIMED_OUT||t===this.EXPIRED?"exception":t===this.BOT_DIED?"bot_d
ied":t===this.COMPLETED_FAILURE?"failed_task":t===this.RUNNING||t===this.PENDING
?"pending_task":""},state:function(t){return t?t.state===this.COMPLETED?t.failur
e?this.COMPLETED_FAILURE:"0"===t.try_number?this.COMPLETED_DEDUPED:this.COMPLETE
D_SUCCESS:t.state:""},_stateClass:function(t){return this.stateClass(this.state(
t))}}}()</script> <dom-module id="task-style" assetpath="/res/imp/common/"> <tem
plate> <style>.failed_task{background-color:#fdd}.bot_died{background-color:#ccc
}.exception{background-color:#edd2ff}.pending_task{background-color:#fffc6c}</st
yle> </template> </dom-module><dom-module id="task-filters" assetpath="/res/imp/
tasklist/"> <template> <style is="custom-style" include="iron-flex iron-flex-ali
gnment iron-positioning query-column-filter-style">.item.wide{max-width:400px}.s
elector.wide{min-width:275px}</style> <url-param name="f" value="{{_filters}}" d
efault_values="[]" multi=""> </url-param> <url-param name="c" value="{{columns}}
" default_values="["name","state","created_ts",&qu
ot;user"]" multi=""> </url-param> <url-param name="q" value="{{_query}}" de
fault_value=""> </url-param> <url-param name="l" default_value="50" value="{{_li
mit}}"> </url-param> <div class="container horizontal layout"> <div class="narro
w-down-selector"> <div> <iron-a11y-keys target="[[_filter_input]]" keys="enter"
on-keys-pressed="_manuallyAddFilter"></iron-a11y-keys> <paper-input id="filter"
label="Search columns and filters or supply a filter and press enter" placeholde
r="gpu nvidia pool:Chrome" value="{{_query::input}}"> </paper-input> </div> <div
class="wide selector side-by-side" title="This shows all task tags and other in
teresting task properties. Mark the check box to add as a column. Select the row
to see filter options."> <iron-selector attr-for-selected="label" selected="{{_
primarySelected}}"> <template is="dom-repeat" items="[[_primaryItems]]" as="item
"> <div class="selectable item horizontal layout" label="[[item]]"> <span>[[_bef
oreBold(item,_query)]]<span class="bold">[[_bold(item,_query)]]</span>[[_afterBo
ld(item,_query)]]</span> <span class="flex"></span> <paper-checkbox noink="" dis
abled$="[[_cantToggleColumn(item)]]" checked="[[_columnState(item,columns.*)]]"
on-change="_toggleColumn"> </paper-checkbox> </div> </template> </iron-selector>
</div> <div class="selector side-by-side" title="These are most of the options
(if any) that the task list can be filtered on. This list is all that have been
seen recently, augmented with the ones returned by the current query. There may
be others."> <template is="dom-repeat" id="secondaryList" items="[[_secondaryIte
ms]]" as="item"> <div class="item horizontal layout" label="[[item]]"> <span>[[_
beforeBold(item,_query)]]<span class="bold">[[_bold(item,_query)]]</span>[[_afte
rBold(item,_query)]]</span> <span class="flex"></span> <iron-icon class="icons"
icon="icons:arrow-forward" hidden="[[_cantAddFilter(_primarySelected,item,_filte
rs.*)]]" on-tap="_addFilter"> </iron-icon> </div> </template> <template is="dom-
if" if="[[_secondaryItems.length]]"> <div class="pointable item" title="There ma
y be more valid options than just the ones shown.">...</div> </template> <templa
te is="dom-if" if="[[_showTagMessage(_primarySelected,_secondaryItems.length)]]"
> <div class="item">Only tags can be used for filtering. <i>"[[_primarySelected]
]"</i> is informational only.</div> </template> </div> <div class="selector side
-by-side" title="These tag filters are AND'd together and applied to all tasks."
> <template is="dom-repeat" items="[[_filters]]" as="fil"> <div class="item hori
zontal layout" label="[[fil]]"> <span>[[fil]]</span> <span class="flex"></span>
<iron-icon class="icons" icon="icons:remove-circle-outline" hidden="[[_cantRemov
eFilter(fil,_filters.*)]]" on-tap="_removeFilter"> </iron-icon> </div> </templat
e> </div> <div class="side-by-side"> <paper-input id="_limit" label="Limit Resul
ts" auto-validate="" min="0" max="1000" pattern="[0-9]+" value="{{_limit}}"> </p
aper-input> </div> </div> </div> </template> <script>!function(){var t={state:fu
nction(t,i){var r=this._attribute(t,"state")[0];if(i===r||"ALL"===i)return!0;if(
"PENDING_RUNNING"===i)return r===this.PENDING||r===this.RUNNING;var e=this._attr
ibute(t,"failure",!1)[0];if("COMPLETED_SUCCESS"===i)return r===this.COMPLETED&&!
e;if("COMPLETED_FAILURE"===i)return r===this.COMPLETED&&e;var a=this._attribute(
t,"try_number","-1")[0];return"DEDUPED"===i?r===this.COMPLETED&&"0"===a:void 0}}
;Polymer({is:"task-filters",behaviors:[SwarmingBehaviors.QueryColumnFilter,Swarm
ingBehaviors.TaskBehavior],properties:{columns:{type:Array,notify:!0},query_para
ms:{type:Object,computed:"_extractQueryParams(_filters.*, _limit)",notify:!0},_f
ilterMap:{type:Object,value:function(){var i=this._commonFilters();for(var r in
t)i[r]=t[r];return i}}},_cantToggleColumn:function(t){return!t||"name"===t},_ext
ractQueryParams:function(){var t={},i=[];this._filters.forEach(function(r){var e
=r.split(this.FILTER_SEP,1),a=e[0],s=r.substring(a.length+this.FILTER_SEP.length
);"state"===a?t.state=[s]:("user"===a&&"none"===s&&(s=""),i.push(a+this.FILTER_S
EP+swarming.alias.unapply(s)))}.bind(this)),t.tags=i;var r=parseInt(this._limit)
;return Number.isInteger(r)&&(r=Math.max(r,1),r=Math.min(1e3,r),t.limit=[r],this
._limit!=r&&this.set("_limit",r)),t},_showTagMessage:function(t,i){return t&&"na
me"!==t&&!i}})}()</script> </dom-module><dom-module id="task-list-data" assetpat
h="/res/imp/tasklist/"> <script>!function(){var t=["abandoned_ts","completed_ts"
,"created_ts","modified_ts","started_ts"];Polymer({is:"task-list-data",behaviors
:[SwarmingBehaviors.CommonBehavior,SwarmingBehaviors.TaskBehavior],properties:{a
uth_headers:{type:Object,observer:"signIn"},query_params:{type:Object},tasks:{ty
pe:Array},busy:{type:Boolean,computed:"_or(_busy2,_busy1)",notify:!0},primary_ma
p:{type:Object,computed:"_primaryMap(_tags,_dimensions,tasks.*)",notify:!0},prim
ary_arr:{type:Array,computed:"_primaryArr(primary_map)",notify:!0},_busy2:{type:
Boolean,value:!1},_busy1:{type:Boolean,value:!1},_dimensions:{type:Object},_list
:{type:Object},_tags:{type:Object}},signIn:function(){this._getJsonAsync("_tags"
,"/api/swarming/v1/tasks/tags","_busy2",this.auth_headers),this._getJsonAsync("_
dimensions","/api/swarming/v1/bots/dimensions","_busy1",this.auth_headers)},_pri
maryArr:function(t){var a=Object.keys(t);return a.sort(),a},_primaryMap:function
(a,s){a=a&&a.tasks_tags||[],s=s&&s.bots_dimensions||[],tasks=this.tasks||[];var
e={};a.forEach(function(t){e[t.key]||(e[t.key]={});var a=t.value||[];a.forEach(f
unction(a){e[t.key][a]=!0})}),s.forEach(function(t){var a=t.value;e[t.key]||(e[t
.key]={}),a.forEach(function(a){e[t.key][a]=!0})}),tasks.forEach(function(t){Obj
ect.keys(t.tagMap).forEach(function(a){var s=t.tagMap[a];e[a]||(e[a]={}),e[a][s]
=!0})}),e.user&&(delete e.user[""],e.user.none=!0);var r={};for(key in e){var i=
Object.keys(e[key]);if(swarming.alias.DIMENSIONS_WITH_ALIASES.indexOf(key)===-1)
r[key]=i;else{var n=[];i.forEach(function(t){n.push(swarming.alias.apply(t,key))
}),r[key]=n}}return r.name=[],r.state=[this.PENDING,this.RUNNING,"PENDING_RUNNIN
G",this.COMPLETED,"COMPLETED_SUCCESS","COMPLETED_FAILURE",this.EXPIRED,this.TIME
D_OUT,this.BOT_DIED,this.CANCELED,"DEDUPED","ALL"],r.costs_usd=[],r.deduped_from
=[],r.duration=[],r.server_versions=[],r.bot=[],t.forEach(function(t){r[t]=[]}),
r},parseTasks:function(a){if(!a||!a.items)return[];var s=new Date;return a.items
.forEach(function(a){var e={};a.tags=a.tags||[],a.tags.forEach(function(t){var a
=t.split(":",1),s=a[0],r=t.substring(s.length+1);e[s]=r}),a.tagMap=e,t.forEach(f
unction(t){a[t]&&(a[t]=new Date(a[t]),a["human_"+t]=sk.human.localeTime(a[t]))})
,!a.duration&&a.state===this.RUNNING&&a.started_ts&&(a.duration=(s-a.started_ts)
/1e3),a.duration&&(a.human_duration=this._humanDuration(a.duration))}.bind(this)
),a.items}})}()</script> </dom-module> <dom-module id="task-list" assetpath="/re
s/imp/tasklist/"> <template> <style include="iron-flex iron-flex-alignment iron-
positioning swarming-app-style dynamic-table-style task-style">task-filters{marg
in-bottom:8px;margin-right:10px}.task-list th>span{padding-right:30px}</style> <
url-param name="s" value="{{_sortstr}}" default_value="created_ts:desc"> </url-p
aram> <swarming-app client_id="[[client_id]]" auth_headers="{{_auth_headers}}" p
ermissions="{{_permissions}}" signed_in="{{_signed_in}}" busy="[[_or(_busy1,_bus
y2)]]" name="Swarming Task List"> <h2 hidden$="[[_signed_in]]">You must sign in
to see anything useful.</h2> <div hidden$="[[_not(_signed_in)]]"> <task-list-dat
a id="data" auth_headers="[[_auth_headers]]" query_params="[[_query_params]]" ta
sks="[[_items]]" busy="{{_busy1)}}" primary_map="{{_primary_map}}" primary_arr="
{{_primary_arr}}"> </task-list-data> <div class="horizontal layout"> <task-filte
rs primary_map="[[_primary_map]]" primary_arr="[[_primary_arr]]" special_columns
="[[_specialColumns]]" columns="{{_columns}}" query_params="{{_query_params}}" f
ilter="{{_filter}}"> </task-filters> </div> <table class="task-list"> <thead on-
sort_change="_sortChange"> <tr> <th> <span>Task Name</span> <sort-toggle name="n
ame" current="[[_sort]]"> </sort-toggle> </th> <th hidden$="[[_hide('state', _co
lumns.*)]]"> <span>State</span> <sort-toggle name="state" current="[[_sort]]"> <
/sort-toggle> </th> <th hidden$="[[_hide('bot', _columns.*)]]"> <span>Bot Assign
ed</span> <sort-toggle name="bot" current="[[_sort]]"> </sort-toggle> </th> <th
hidden$="[[_hide('deduped_from', _columns.*)]]"> <span>Deduped from</span> <sort
-toggle name="deduped_from" current="[[_sort]]"> </sort-toggle> </th> <th hidden
$="[[_hide('source_revision', _columns.*)]]"> <span>Source Revision</span> <sort
-toggle name="source_revision" current="[[_sort]]"> </sort-toggle> </th> <templa
te is="dom-repeat" items="[[_plainColumns]]" as="c"> <th hidden$="[[_hide(c)]]">
<span>[[_header(c)]]</span> <sort-toggle name="[[c]]" current="[[_sort]]"> </so
rt-toggle> </th> </template> </tr> </thead> <tbody> <template id="tasks_table" i
s="dom-repeat" items="[[_filteredSortedItems]]" as="task" initial-count="50"> <t
r class$="[[_taskClass(task)]]"> <td> <a class="center" href$="[[_taskLink(task.
task_id)]]" target="_blank"> [[task.name]] </a> </td> <td hidden$="[[_hide('stat
e', _columns.*)]]"> [[_column('state', task)]] <paper-button raised="" hidden$="
[[_cannotCancel(task,_permissions)]]" on-tap="_promptCancel"> Cancel </paper-but
ton> </td> <td hidden$="[[_hide('bot', _columns.*)]]"> <a class="center" href$="
[[_botLink(task.bot_id)]]" target="_blank"> [[_column('bot',task)]] </a> </td> <
td hidden$="[[_hide('deduped_from', _columns.*)]]"> <a class="center" href$="[[_
taskLink(task.deduped_from)]]" target="_blank"> [[_column('deduped_from',task)]]
</a> </td> <td hidden$="[[_hide('source_revision', _columns.*)]]"> <a class="ce
nter" href$="[[_sourceLink(task)]]" target="_blank"> [[_column('source_revision'
,task)]] </a> </td> <template is="dom-repeat" items="[[_plainColumns]]" as="c">
<td hidden$="[[_hide(c)]]"> [[_column(c, task)]] </td> </template> </tr> </templ
ate> </tbody> </table> <pageable-data id="page_tasks" busy="{{_busy2}}" label="S
how more tasks" output="{{_items}}" parse="[[_parseTasks]]"> </pageable-data> </
div> </swarming-app> <paper-dialog id="prompt" modal="" on-iron-overlay-closed="
_promptClosed"> <h2>Are you sure?</h2> <div>Are you sure you want to [[_dialogPr
ompt]]?</div> <div class="buttons"> <paper-button dialog-dismiss="" autofocus=""
>No</paper-button> <paper-button dialog-confirm="">Yes</paper-button> </div> </p
aper-dialog> </template> <script>!function(){function t(t){return function(e){re
turn this._attribute(e,"human_"+t)[0]}}function e(t){return function(e,a,s){var
r=this._attribute(a,t,"0")[0],n=this._attribute(s,t,"0")[0];return e*(r-n)}}var
a=["deduped_from","name","state","bot","source_revision"],s={abandoned_ts:t("aba
ndoned_ts"),bot:function(t){return this._attribute(t,"bot_id")[0]},completed_ts:
t("completed_ts"),costs_usd:function(t){return this._attribute(t,"costs_usd",0)[
0]},created_ts:t("created_ts"),duration:t("duration"),modified_ts:t("modified_ts
"),source_revision:function(t){var e=this._attribute(t,"source_revision")[0];ret
urn e.substring(0,8)},started_ts:t("started_ts"),state:function(t){var e=this._a
ttribute(t,"state")[0];if("COMPLETED"===e){if(this._attribute(t,"failure",!1)[0]
)return"COMPLETED (FAILURE)";var a=this._attribute(t,"try_number","-1")[0];retur
n"0"===a?"COMPLETED (DEDUPED)":"COMPLETED (SUCCESS)"}return e}},r={abandoned_ts:
"Abandoned On",completed_ts:"Completed On",created_ts:"Created On",duration:"Dur
ation",modified_ts:"Last Modified",started_ts:"Started Working On",user:"Request
ing User"},n={abandoned_ts:e("abandoned_ts"),completed_ts:e("completed_ts"),crea
ted_ts:e("created_ts"),duration:e("duration"),modified_ts:e("modified_ts"),start
ed_ts:e("started_ts")};Polymer({is:"task-list",behaviors:[SwarmingBehaviors.Dyna
micTableBehavior,SwarmingBehaviors.TaskBehavior],properties:{client_id:{type:Str
ing},_busy1:{type:Boolean,value:!1},_busy2:{type:Boolean,value:!1},_parseTasks:{
type:Function,value:function(){return this.$.data.parseTasks.bind(this)}},_toCan
cel:{type:String},_columnMap:{type:Object,value:function(){var t=this._commonCol
umns();for(var e in s)t[e]=s[e];return t}},_headerMap:{type:Object,value:r},_spe
cialColumns:{type:Array,value:a},_specialSort:{type:Object,value:n}},observers:[
"reload(_query_params,_auth_headers)"],_attribute:function(t,e,a){void 0===a&&(a
="none");var s=this._tag(t,e)||t[e]||[a];return Array.isArray(s)?s:[s]},_cannotC
ancel:function(t,e){return!(e&&e.cancel_task&&"PENDING"===this._column("state",t
))},_cancelTask:function(){var t="/api/swarming/v1/task/"+this._toCancel+"/cance
l";swarming.postWithToast(t,"Canceling task "+this._toCancel,this._auth_headers)
,this.set("_toCancel","")},_promptClosed:function(t){t.detail.confirmed&&this._c
ancelTask()},_promptCancel:function(t){var e=t.model.task;return e&&e.task_id?(t
his.set("_toCancel",e.task_id),this.set("_dialogPrompt",'cancel task "'+e.name+'
"'),void this.$.prompt.open()):void console.log("Missing task info",e)},reload:f
unction(){if(this._auth_headers&&this._query_params){var t="/api/swarming/v1/tas
ks/list?"+sk.query.fromParamSet(this._query_params);this.$.page_tasks.load(t,thi
s._auth_headers)}},_sourceLink:function(t){var e=this._attribute(t,"source_revis
ion")[0],a=this._attribute(t,"source_repo")[0];return"none"!==e&&"none"!==a&&a.r
eplace("%s",e)},_tag:function(t,e){if(t&&t.tagMap)return t.tagMap[e]},_taskClass
:function(t){return this.stateClass(this._column("state",t))}})}()</script> </do
m-module> <dom-module id="iron-collapse" assetpath="/res/imp/bower_components/ir
on-collapse/"> <template> <style>:host{display:block;transition-duration:var(--i
ron-collapse-transition-duration,300ms);overflow:visible}:host(.iron-collapse-cl
osed){display:none}:host(:not(.iron-collapse-opened)){overflow:hidden}</style> <
content></content> </template> </dom-module> <script>Polymer({is:"iron-collapse"
,behaviors:[Polymer.IronResizableBehavior],properties:{horizontal:{type:Boolean,
value:!1,observer:"_horizontalChanged"},opened:{type:Boolean,value:!1,notify:!0,
observer:"_openedChanged"},noAnimation:{type:Boolean},_desiredSize:{type:String,
value:""}},get dimension(){return this.horizontal?"width":"height"},get _dimensi
onMax(){return this.horizontal?"maxWidth":"maxHeight"},get _dimensionMaxCss(){re
turn this.horizontal?"max-width":"max-height"},hostAttributes:{role:"group","ari
a-hidden":"true","aria-expanded":"false"},listeners:{transitionend:"_transitionE
nd"},attached:function(){this._transitionEnd()},toggle:function(){this.opened=!t
his.opened},show:function(){this.opened=!0},hide:function(){this.opened=!1},upda
teSize:function(i,t){if(i="auto"===i?"":i,this._desiredSize!==i){this._desiredSi
ze=i,this._updateTransition(!1);var e=t&&!this.noAnimation&&this._isDisplayed;if
(e){var n=this._calcSize();""===i&&(this.style[this._dimensionMax]="",i=this._ca
lcSize()),this.style[this._dimensionMax]=n,this.scrollTop=this.scrollTop,this._u
pdateTransition(!0),e=i!==n}this.style[this._dimensionMax]=i,e||this._transition
End()}},enableTransition:function(i){Polymer.Base._warn("`enableTransition()` is
deprecated, use `noAnimation` instead."),this.noAnimation=!i},_updateTransition
:function(i){this.style.transitionDuration=i&&!this.noAnimation?"":"0s"},_horizo
ntalChanged:function(){this.style.transitionProperty=this._dimensionMaxCss;var i
="maxWidth"===this._dimensionMax?"maxHeight":"maxWidth";this.style[i]="",this.up
dateSize(this.opened?"auto":"0px",!1)},_openedChanged:function(){this.setAttribu
te("aria-expanded",this.opened),this.setAttribute("aria-hidden",!this.opened),th
is.toggleClass("iron-collapse-closed",!1),this.toggleClass("iron-collapse-opened
",!1),this.updateSize(this.opened?"auto":"0px",!0),this.opened&&this.focus()},_t
ransitionEnd:function(){this.style[this._dimensionMax]=this._desiredSize,this.to
ggleClass("iron-collapse-closed",!this.opened),this.toggleClass("iron-collapse-o
pened",this.opened),this._updateTransition(!1),this.notifyResize()},get _isDispl
ayed(){var i=this.getBoundingClientRect();for(var t in i)if(0!==i[t])return!0;re
turn!1},_calcSize:function(){return this.getBoundingClientRect()[this.dimension]
+"px"}})</script> <script>Polymer.IronMenubarBehaviorImpl={hostAttributes:{role:
"menubar"},keyBindings:{left:"_onLeftKey",right:"_onRightKey"},_onUpKey:function
(e){this.focusedItem.click(),e.detail.keyboardEvent.preventDefault()},_onDownKey
:function(e){this.focusedItem.click(),e.detail.keyboardEvent.preventDefault()},g
et _isRTL(){return"rtl"===window.getComputedStyle(this).direction},_onLeftKey:fu
nction(e){this._isRTL?this._focusNext():this._focusPrevious(),e.detail.keyboardE
vent.preventDefault()},_onRightKey:function(e){this._isRTL?this._focusPrevious()
:this._focusNext(),e.detail.keyboardEvent.preventDefault()},_onKeydown:function(
e){this.keyboardEventMatchesKeys(e,"up down left right esc")||this._focusWithKey
boardEvent(e)}},Polymer.IronMenubarBehavior=[Polymer.IronMenuBehavior,Polymer.Ir
onMenubarBehaviorImpl]</script> <iron-iconset-svg name="paper-tabs" size="24"> <
svg><defs> <g id="chevron-left"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.
83 12z"></path></g> <g id="chevron-right"><path d="M10 6L8.59 7.41 13.17 12l-4.5
8 4.59L10 18l6-6z"></path></g> </defs></svg> </iron-iconset-svg> <dom-module id=
"paper-tab" assetpath="/res/imp/bower_components/paper-tabs/"> <template> <style
>:host{@apply(--layout-inline);@apply(--layout-center);@apply(--layout-center-ju
stified);@apply(--layout-flex-auto);position:relative;padding:0 12px;overflow:hi
dden;cursor:pointer;vertical-align:middle;@apply(--paper-font-common-base);@appl
y(--paper-tab)}:host(:focus){outline:0}:host([link]){padding:0}.tab-content{heig
ht:100%;transform:translateZ(0);-webkit-transform:translateZ(0);transition:opaci
ty .1s cubic-bezier(.4,0,1,1);@apply(--layout-horizontal);@apply(--layout-center
-center);@apply(--layout-flex-auto);@apply(--paper-tab-content)}:host(:not(.iron
-selected))>.tab-content{opacity:.8;@apply(--paper-tab-content-unselected)}:host
(:focus) .tab-content{opacity:1;font-weight:700}paper-ripple{color:var(--paper-t
ab-ink,--paper-yellow-a100)}.tab-content>::content>a{@apply(--layout-flex-auto);
height:100%}</style> <div class="tab-content"> <content></content> </div> </temp
late> <script>Polymer({is:"paper-tab",behaviors:[Polymer.IronControlState,Polyme
r.IronButtonState,Polymer.PaperRippleBehavior],properties:{link:{type:Boolean,va
lue:!1,reflectToAttribute:!0}},hostAttributes:{role:"tab"},listeners:{down:"_upd
ateNoink",tap:"_onTap"},attached:function(){this._updateNoink()},get _parentNoin
k(){var t=Polymer.dom(this).parentNode;return!!t&&!!t.noink},_updateNoink:functi
on(){this.noink=!!this.noink||!!this._parentNoink},_onTap:function(t){if(this.li
nk){var e=this.queryEffectiveChildren("a");if(!e)return;if(t.target===e)return;e
.click()}}})</script> </dom-module> <dom-module id="paper-tabs" assetpath="/res/
imp/bower_components/paper-tabs/"> <template> <style>:host{@apply(--layout);@app
ly(--layout-center);height:48px;font-size:14px;font-weight:500;overflow:hidden;-
moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:n
one;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transpar
ent;@apply(--paper-tabs)}:host-context([dir=rtl]){@apply(--layout-horizontal-rev
erse)}#tabsContainer{position:relative;height:100%;white-space:nowrap;overflow:h
idden;@apply(--layout-flex-auto)}#tabsContent{height:100%;-moz-flex-basis:auto;-
ms-flex-basis:auto;flex-basis:auto}#tabsContent.scrollable{position:absolute;whi
te-space:nowrap}#tabsContent.scrollable.fit-container,#tabsContent:not(.scrollab
le){@apply(--layout-horizontal)}#tabsContent.scrollable.fit-container{min-width:
100%}#tabsContent.scrollable.fit-container>::content>*{-ms-flex:1 0 auto;-webkit
-flex:1 0 auto;flex:1 0 auto}.hidden{display:none}.not-visible{opacity:0;cursor:
default}paper-icon-button{width:48px;height:48px;padding:12px;margin:0 4px}#sele
ctionBar{position:absolute;height:2px;bottom:0;left:0;right:0;background-color:v
ar(--paper-tabs-selection-bar-color,--paper-yellow-a100);-webkit-transform:scale
(0);transform:scale(0);-webkit-transform-origin:left center;transform-origin:lef
t center;transition:-webkit-transform;transition:transform;@apply(--paper-tabs-s
election-bar)}#selectionBar.align-bottom{top:0;bottom:auto}#selectionBar.expand{
transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,1,1)}#sele
ctionBar.contract{transition-duration:.18s;transition-timing-function:cubic-bezi
er(0,0,.2,1)}#tabsContent>::content>:not(#selectionBar){height:100%}</style> <pa
per-icon-button icon="paper-tabs:chevron-left" class$="[[_computeScrollButtonCla
ss(_leftHidden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-d
own="_onLeftScrollButtonDown" tabindex="-1"></paper-icon-button> <div id="tabsCo
ntainer" on-track="_scroll" on-down="_down"> <div id="tabsContent" class$="[[_co
mputeTabsContentClass(scrollable, fitContainer)]]"> <div id="selectionBar" class
$="[[_computeSelectionBarClass(noBar, alignBottom)]]" on-transitionend="_onBarTr
ansitionEnd"></div> <content select="*"></content> </div> </div> <paper-icon-but
ton icon="paper-tabs:chevron-right" class$="[[_computeScrollButtonClass(_rightHi
dden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-down="_onRi
ghtScrollButtonDown" tabindex="-1"></paper-icon-button> </template> <script>Poly
mer({is:"paper-tabs",behaviors:[Polymer.IronResizableBehavior,Polymer.IronMenuba
rBehavior],properties:{noink:{type:Boolean,value:!1,observer:"_noinkChanged"},no
Bar:{type:Boolean,value:!1},noSlide:{type:Boolean,value:!1},scrollable:{type:Boo
lean,value:!1},fitContainer:{type:Boolean,value:!1},disableDrag:{type:Boolean,va
lue:!1},hideScrollButtons:{type:Boolean,value:!1},alignBottom:{type:Boolean,valu
e:!1},selectable:{type:String,value:"paper-tab"},autoselect:{type:Boolean,value:
!1},autoselectDelay:{type:Number,value:0},_step:{type:Number,value:10},_holdDela
y:{type:Number,value:1},_leftHidden:{type:Boolean,value:!1},_rightHidden:{type:B
oolean,value:!1},_previousTab:{type:Object}},hostAttributes:{role:"tablist"},lis
teners:{"iron-resize":"_onTabSizingChanged","iron-items-changed":"_onTabSizingCh
anged","iron-select":"_onIronSelect","iron-deselect":"_onIronDeselect"},keyBindi
ngs:{"left:keyup right:keyup":"_onArrowKeyup"},created:function(){this._holdJob=
null,this._pendingActivationItem=void 0,this._pendingActivationTimeout=void 0,th
is._bindDelayedActivationHandler=this._delayedActivationHandler.bind(this),this.
addEventListener("blur",this._onBlurCapture.bind(this),!0)},ready:function(){thi
s.setScrollDirection("y",this.$.tabsContainer)},detached:function(){this._cancel
PendingActivation()},_noinkChanged:function(t){var e=Polymer.dom(this).querySele
ctorAll("paper-tab");e.forEach(t?this._setNoinkAttribute:this._removeNoinkAttrib
ute)},_setNoinkAttribute:function(t){t.setAttribute("noink","")},_removeNoinkAtt
ribute:function(t){t.removeAttribute("noink")},_computeScrollButtonClass:functio
n(t,e,i){return!e||i?"hidden":t?"not-visible":""},_computeTabsContentClass:funct
ion(t,e){return t?"scrollable"+(e?" fit-container":""):" fit-container"},_comput
eSelectionBarClass:function(t,e){return t?"hidden":e?"align-bottom":""},_onTabSi
zingChanged:function(){this.debounce("_onTabSizingChanged",function(){this._scro
ll(),this._tabChanged(this.selectedItem)},10)},_onIronSelect:function(t){this._t
abChanged(t.detail.item,this._previousTab),this._previousTab=t.detail.item,this.
cancelDebouncer("tab-changed")},_onIronDeselect:function(t){this.debounce("tab-c
hanged",function(){this._tabChanged(null,this._previousTab),this._previousTab=nu
ll},1)},_activateHandler:function(){this._cancelPendingActivation(),Polymer.Iron
MenuBehaviorImpl._activateHandler.apply(this,arguments)},_scheduleActivation:fun
ction(t,e){this._pendingActivationItem=t,this._pendingActivationTimeout=this.asy
nc(this._bindDelayedActivationHandler,e)},_delayedActivationHandler:function(){v
ar t=this._pendingActivationItem;this._pendingActivationItem=void 0,this._pendin
gActivationTimeout=void 0,t.fire(this.activateEvent,null,{bubbles:!0,cancelable:
!0})},_cancelPendingActivation:function(){void 0!==this._pendingActivationTimeou
t&&(this.cancelAsync(this._pendingActivationTimeout),this._pendingActivationItem
=void 0,this._pendingActivationTimeout=void 0)},_onArrowKeyup:function(t){this.a
utoselect&&this._scheduleActivation(this.focusedItem,this.autoselectDelay)},_onB
lurCapture:function(t){t.target===this._pendingActivationItem&&this._cancelPendi
ngActivation()},get _tabContainerScrollSize(){return Math.max(0,this.$.tabsConta
iner.scrollWidth-this.$.tabsContainer.offsetWidth)},_scroll:function(t,e){if(thi
s.scrollable){var i=e&&-e.ddx||0;this._affectScroll(i)}},_down:function(t){this.
async(function(){this._defaultFocusAsync&&(this.cancelAsync(this._defaultFocusAs
ync),this._defaultFocusAsync=null)},1)},_affectScroll:function(t){this.$.tabsCon
tainer.scrollLeft+=t;var e=this.$.tabsContainer.scrollLeft;this._leftHidden=0===
e,this._rightHidden=e===this._tabContainerScrollSize},_onLeftScrollButtonDown:fu
nction(){this._scrollToLeft(),this._holdJob=setInterval(this._scrollToLeft.bind(
this),this._holdDelay)},_onRightScrollButtonDown:function(){this._scrollToRight(
),this._holdJob=setInterval(this._scrollToRight.bind(this),this._holdDelay)},_on
ScrollButtonUp:function(){clearInterval(this._holdJob),this._holdJob=null},_scro
llToLeft:function(){this._affectScroll(-this._step)},_scrollToRight:function(){t
his._affectScroll(this._step)},_tabChanged:function(t,e){if(!t)return this.$.sel
ectionBar.classList.remove("expand"),this.$.selectionBar.classList.remove("contr
act"),void this._positionBar(0,0);var i=this.$.tabsContent.getBoundingClientRect
(),n=i.width,o=t.getBoundingClientRect(),s=o.left-i.left;if(this._pos={width:thi
s._calcPercent(o.width,n),left:this._calcPercent(s,n)},this.noSlide||null==e)ret
urn this.$.selectionBar.classList.remove("expand"),this.$.selectionBar.classList
.remove("contract"),void this._positionBar(this._pos.width,this._pos.left);var a
=e.getBoundingClientRect(),l=this.items.indexOf(e),c=this.items.indexOf(t),r=5;t
his.$.selectionBar.classList.add("expand");var h=l<c,d=this._isRTL;d&&(h=!h),h?t
his._positionBar(this._calcPercent(o.left+o.width-a.left,n)-r,this._left):this._
positionBar(this._calcPercent(a.left+a.width-o.left,n)-r,this._calcPercent(s,n)+
r),this.scrollable&&this._scrollToSelectedIfNeeded(o.width,s)},_scrollToSelected
IfNeeded:function(t,e){var i=e-this.$.tabsContainer.scrollLeft;i<0?this.$.tabsCo
ntainer.scrollLeft+=i:(i+=t-this.$.tabsContainer.offsetWidth,i>0&&(this.$.tabsCo
ntainer.scrollLeft+=i))},_calcPercent:function(t,e){return 100*t/e},_positionBar
:function(t,e){t=t||0,e=e||0,this._width=t,this._left=e,this.transform("translat
eX("+e+"%) scaleX("+t/100+")",this.$.selectionBar)},_onBarTransitionEnd:function
(t){var e=this.$.selectionBar.classList;e.contains("expand")?(e.remove("expand")
,e.add("contract"),this._positionBar(this._pos.width,this._pos.left)):e.contains
("contract")&&e.remove("contract")}})</script> </dom-module> <dom-module id="sin
gle-page-style" assetpath="/res/imp/common/"> <template> <style>.header{max-widt
h:800px}.title{font-size:1.5em;font-weight:700;margin:5px}.id_input{margin-left:
5px;--paper-input-container-input:{font-size:2em};}.refresh{max-width:40px;max-h
eight:40px;width:initial;height:initial}button{min-width:4em;max-height:55px}tab
le{border-collapse:collapse;margin-left:5px;margin-bottom:8px}td,th{border:1px s
olid #BBB;padding:5px}.tabs{background-color:#1F78B4;color:#fff;max-width:600px;
margin-left:5px;--paper-checkbox-label-color:#fff}paper-tab{background-color:#A6
CEE3;color:#000}paper-tab.iron-selected{background-color:#1F78B4;color:#fff;font
-weight:700;text-decoration:underline}paper-tab[disabled]{background-color:#AAA;
text-decoration:line-through}.quarantined{background-color:#fdd}.dead{background
-color:#ccc}</style> </template> </dom-module><script>!function(){SwarmingBehavi
ors.BotPageBehavior=[SwarmingBehaviors.CommonBehavior,{}]}()</script> <dom-modul
e id="bot-page-data" assetpath="/res/imp/botpage/"> <script>!function(){function
t(t){if(!s){var e=t.toString();s=e.substring(e.indexOf("("))}return t.toLocaleS
tring()+" "+s}var e,s,i=400,n=["first_seen_ts","last_seen_ts","lease_expiration_
ts"],a=["started_ts","completed_ts","abandoned_ts","modified_ts"];Polymer({is:"b
ot-page-data",behaviors:[SwarmingBehaviors.BotPageBehavior],properties:{auth_hea
ders:{type:Object},bot_id:{type:String},busy:{type:Boolean,computed:"_or(_busy1)
",notify:!0},bot:{type:Object,computed:"_parseBot(_bot)",notify:!0},bot_exists:{
type:Boolean,value:!0,notify:!0},_busy1:{type:Boolean,value:!1},_bot:{type:Objec
t},_events:{type:Object},_tasks:{type:Object}},observers:["request(auth_headers,
bot_id)"],request:function(){this.bot_id&&this.auth_headers&&(e&&this.cancelAsyn
c(e),e=this.async(function(){e=void 0;var t="/api/swarming/v1/bot/"+this.bot_id,
s=this._getJsonAsync("_bot",t+"/get","_busy1",this.auth_headers);s.then(function
(){this.set("bot_exists",!0)}.bind(this)).catch(function(t){404===t.status?this.
set("bot_exists",!1):sk.errorMessage("Http response: "+(t.status||" ")+" "+t.res
ponse)}.bind(this)),this.fire("reload",{id:this.bot_id})},i))},_parseBot:functio
n(e){if(!e)return{};e.state=e.state||"{}",e.state=JSON.parse(e.state)||{};var s=
e.state.disks||{},i=Object.keys(s);if(i.length){e.disks=[];for(var a=0;a<i.lengt
h;a++)e.disks.push({id:i[a],mb:s[i[a]].free_mb});e.disks.sort(function(t,e){retu
rn e.mb-t.mb})}else e.disks=[{id:"unknown",mb:0}];return e.dimensions=e.dimensio
ns||[],e.dimensions.forEach(function(t){swarming.alias.DIMENSIONS_WITH_ALIASES.i
ndexOf(t.key)!==-1&&t.value.forEach(function(e,s){t.value[s]=swarming.alias.appl
y(e,t.key)})}),n.forEach(function(s){e[s]&&(e[s]=new Date(e[s]),e["human_"+s]=t(
e[s]))}),e},parseEvents:function(e){if(!e||!e.items)return[];var e=e.items;retur
n e.forEach(function(e){e.ts&&(e.ts=new Date(e.ts),e.human_ts=t(e.ts))}),e.sort(
function(t,e){return e.ts-t.ts}),e},parseTasks:function(e){if(!e||!e.items)retur
n[];var e=e.items;return e.forEach(function(e){if(a.forEach(function(s){e[s]&&(e
[s]=new Date(e[s]),e["human_"+s]=t(e[s]))}),e.duration)e.human_duration=this._hu
manDuration(e.duration);else{var s=e.completed_ts||e.abandoned_ts||e.modified_ts
||new Date;e.human_duration=this._timeDiffExact(e.started_ts,s),e.duration=(s.ge
tTime()-e.started_ts)/1e3}e.state=e.state||"UNKNOWN","COMPLETED"===e.state&&(e.f
ailure?e.state="FAILURE":e.state="SUCCESS")}.bind(this)),e.sort(function(t,e){re
turn e.started_ts-t.started_ts}),e}})}()</script> </dom-module> <dom-module id="
bot-page-summary" assetpath="/res/imp/botpage/"> <template> <style include="sing
le-page-style">.wrapper{display:table;margin-left:auto;margin-bottom:10px;margin
-right:5px}paper-checkbox{margin-left:5px}.thick{border-top-style:solid}</style>
<url-param name="show_full_names" value="{{_show_full_names}}"> </url-param> <u
rl-param name="show_all_tasks" value="{{_show_all_tasks}}"> </url-param> <url-pa
ram name="sort_stats" value="{{_sortstr}}" default_value="total:desc"> </url-par
am> <div class="wrapper"> <table> <thead on-sort_change="_sortChange"> <tr> <th>
<span>Name</span> <sort-toggle name="full_name" current="[[_sort]]"> </sort-tog
gle> </th> <th> <span>Total</span> <sort-toggle name="total" current="[[_sort]]"
> </sort-toggle> </th> <th> <span>Success</span> <sort-toggle name="success" cur
rent="[[_sort]]"> </sort-toggle> </th> <th> <span>Failed</span> <sort-toggle nam
e="failed" current="[[_sort]]"> </sort-toggle> </th> <th> <span>Died</span> <sor
t-toggle name="bot_died" current="[[_sort]]"> </sort-toggle> </th> <th> <span>Av
erage Duration</span> <sort-toggle name="avg_duration" current="[[_sort]]"> </so
rt-toggle> </th> <th> <span>Total Duration</span> <sort-toggle name="total_time"
current="[[_sort]]"> </sort-toggle> </th> <th>Percent of Total</th> </tr> </the
ad> <tbody> <template is="dom-repeat" items="[[_tasksToShow]]" as="task"> <tr> <
td hidden$="[[_truthy(_show_full_names)]]" title="[[task.full_name]]">[[task.nam
e]]</td> <td hidden$="[[_not(_show_full_names)]]" title="[[task.full_name]]">[[t
ask.full_name]]</td> <td>[[task.total]]</td> <td>[[task.success]]</td> <td>[[tas
k.failed]]</td> <td>[[task.bot_died]]</td> <td>[[_humanDuration(task.avg_duratio
n)]]</td> <td>[[_humanDuration(task.total_time)]]</td> <td>[[task.total_time_per
cent]]%</td> </tr> </template> </tbody> <tbody><tr class="thick"> <td>Total</td>
<td>[[_totalStats.total]]</td> <td>[[_totalStats.success]]</td> <td>[[_totalSta
ts.failed]]</td> <td>[[_totalStats.bot_died]]</td> <td>[[_humanDuration(_totalSt
ats.avg_duration)]]</td> <td>[[_humanDuration(_totalStats.total_time)]]</td> <td
>100.0%</td> </tr> </tbody></table> <div> <table> <thead> <tr> <th title="How mu
ch time passed between the oldest task fetched and now."> Total Wall Time </th>
<th title="How much of the wall time this bot was busy with a task."> Wall Time
Utilization </th> </tr> </thead> <tbody> <tr> <td>[[_humanDuration(_totalStats.w
all_time)]]</td> <td>[[_totalStats.wall_time_utilization]]%</td> </tr> </tbody>
</table> <paper-checkbox checked="{{_show_full_names}}"> Show Full Names </paper
-checkbox> <paper-checkbox hidden$="[[_cannotExpand]]" checked="{{_show_all_task
s}}"> Show All Tasks </paper-checkbox> </div> </div> </template> <script>!functi
on(){var t=15;Polymer({is:"bot-page-summary",behaviors:[SwarmingBehaviors.BotPag
eBehavior],properties:{tasks:{type:Array},_cannotExpand:{type:Boolean,computed:"
_countTasks(_taskStats.*)"},_show_all_tasks:{type:Boolean},_show_full_names:{typ
e:Boolean},_sortstr:{type:String},_sort:{type:Object,computed:"_makeSortObject(_
sortstr)"},_taskStats:{type:Array},_tasksToShow:{type:Array,computed:"_sortAndLi
mitTasks(_taskStats.*,_sort.*,_show_all_tasks)"},_totalStats:{type:Object}},obse
rvers:["_aggregate(tasks.*)"],_aggregate:function(){if(this.tasks&&this.tasks.le
ngth){var t=new Date(1e3*sk.now()),a={},e={total:this.tasks.length,success:0,fai
led:0,bot_died:0,avg_duration:0,total_time:0,wall_time:(t-this.tasks[this.tasks.
length-1].started_ts)/1e3};this.tasks.forEach(function(t){var s=t.name.trim(),i=
s.split("/");5===i.length&&(s=i[0]+"/"+i[3]),a[s]||(a[s]={full_name:s,name:s,tot
al:0,success:0,failed:0,bot_died:0,avg_duration:0,total_time:0}),a[s].total++,t.
failure?(e.failed++,a[s].failed++):t.internal_failure?(e.bot_died++,a[s].bot_die
d++):(e.success++,a[s].success++),e.total_time+=t.duration,a[s].total_time+=t.du
ration}),e.avg_duration=e.total_time/e.total,e.wall_time_utilization=(100*e.tota
l_time/e.wall_time).toFixed(1),this.set("_totalStats",e);var s=Object.keys(a),i=
[];s.forEach(function(t){a[t].avg_duration=a[t].total_time/a[t].total,a[t].total
_time_percent=(100*a[t].total_time/e.total_time).toFixed(1),i.push(a[t])});var o
=new Substrings({minOccurrence:Math.max(2,s.length-1),minLength:6});o.build(s);v
ar n=o.weighByAverage()||[];n.length&&n[0].source.forEach(function(t){var a=i[t]
.full_name;i[t].name=a.replace(n[0].name,"...")}),this.set("_taskStats",i)}},_co
mpare:function(t,a){if(!this._sort)return 0;var e=1;return"desc"===this._sort.di
rection&&(e=-1),e*swarming.naturalCompare(t[this._sort.name],a[this._sort.name])
},_countTasks:function(){return this._taskStats.length<=t},_makeSortObject:funct
ion(t){if(t){var a=t.split(":");return 2!=a.length?{name:"full_name",direction:"
asc"}:{name:a[0],direction:a[1]}}},_sortAndLimitTasks:function(){swarming.stable
Sort(this._taskStats,this._compare.bind(this));var a=this._taskStats.length;retu
rn!this._show_all_tasks&&this._taskStats.length>t&&(a=t),this._taskStats.slice(0
,a)},_sortChange:function(t){t&&t.detail&&t.detail.name&&(t.preventDefault(),t.s
topPropagation(),this.set("_sortstr",t.detail.name+":"+t.detail.direction))}})}(
)</script> </dom-module><dom-module id="bot-page" assetpath="/res/imp/botpage/">
<template> <style include="iron-flex iron-flex-alignment iron-positioning swarm
ing-app-style single-page-style task-style">.message{white-space:pre-line;font-f
amily:monospace}.bot_state{white-space:pre;font-family:monospace;margin-bottom:1
0px}.events_table,.tasks_table{border:3px solid #1F78B4}.old_version{background-
color:#ffd}.stats{min-width:700px;flex-grow:2}#collapse{max-width:700px}.cloud{w
hite-space:nowrap;margin-bottom:5px;margin-top:auto}paper-checkbox{--paper-check
box-label-color:#fff;--paper-checkbox-checked-color:#fff;--paper-checkbox-checkm
ark-color:#000;--paper-checkbox-unchecked-color:#fff;padding:3px}paper-dialog{bo
rder-radius:6px}</style> <url-param name="id" value="{{bot_id}}"> </url-param> <
url-param name="show_all_events" value="{{_show_all}}"> </url-param> <url-param
name="selected" value="{{_selected}}"> </url-param> <url-param name="show_state"
value="{{_show_state}}"> </url-param> <swarming-app client_id="[[client_id]]" a
uth_headers="{{_auth_headers}}" permissions="{{_permissions}}" server_details="{
{_server_details}}" signed_in="{{_signed_in}}" busy="[[_or(_busy1,_busy2,_busy3)
]]" name="Swarming Bot Page"> <h2 hidden$="[[_signed_in]]">You must sign in to s
ee anything useful.</h2> <div hidden$="[[_not(_signed_in)]]"> <bot-page-data id=
"data" auth_headers="[[_auth_headers]]" bot_id="[[bot_id]]" bot="{{_bot}}" bot_e
xists="{{_bot_exists}}" busy="{{_busy1}}" events="{{_events}}" tasks="{{_tasks}}
" on-reload="_clearAndReload"> </bot-page-data> <div class="header horizontal la
yout"> <paper-input class="id_input" label="Bot id" value="{{bot_id}}"></paper-i
nput> <template is="dom-if" if="[[_ccLink(_bot)]]"> <div class="vertical layout"
> <a href$="[[_ccLink(_bot)]]" class="cloud">Cloud Console</a> </div> </template
> <button on-click="_refresh"> <iron-icon class="refresh" icon="icons:refresh"><
/iron-icon> </button> </div> </div> <h2 hidden$="[[_bot_exists]]">Bot not found.
</h2> <div hidden$="[[_not(_bot_exists)]]"> <div class="horizontal wrap layout">
<div class="flex"> <table> <tbody><tr class$="[[_isDead(_bot)]]" title="Last ti
me the bot contacted the server."> <td>Last Seen</td> <td title="[[_bot.human_la
st_seen_ts]]"> [[_timeDiffExact(_bot.last_seen_ts)]] ago</td> <td> <template is=
"dom-if" if="[[_canShutdown(_bot,_permissions)]]"> <button class="raised" on-cli
ck="_promptShutdown"> Shut Down Gracefully </button> </template> <template is="d
om-if" if="[[_canDelete(_bot,_permissions)]]"> <button class="raised" on-click="
_promptDelete"> Delete </button> </template> </td> </tr> <template is="dom-if" i
f="[[_bot.quarantined]]"> <tr class="quarantined"> <td>Quarantined</td> <td cols
pan="2" class="message">[[_quarantineMessage(_bot)]]</td> </tr> </template> <tr>
<td>Current Task</td> <td> <a target="_blank" rel="noopener" href$="[[_taskLink
(_bot.task_id)]]"> [[_task(_bot)]] </a> </td> <td> </td> </tr> <tr> <td rowspan$
="[[_numRows(_bot.dimensions)]]">Dimensions</td> </tr> <template is="dom-repeat"
items="[[_bot.dimensions]]" as="dim"> <tr> <td>[[dim.key]]</td> <td>[[_concat(d
im.value)]]</td> </tr> </template> <tr title="IP address that the server saw the
connection from."> <td>External IP</td> <td><a href$="[[_bot.external_ip]]">[[_
bot.external_ip]]</a></td> <td></td> </tr> <tr class$="[[_classVersion(_server_d
etails.bot_version,_bot.version)]]" title="Version is based on the content of sw
arming_bot.zip which is the swarming bot code. The bot won't update if quarantin
ed, dead, or busy."> <td>Bot Version</td> <td>[[_shorten(_bot.version,'8')]]</td
> <td></td> </tr> <tr title="The version the server expects the bot to be using.
"> <td>Expected Bot Version</td> <td>[[_shorten(_server_details.bot_version,'8')
]]</td> <td></td> </tr> <tr title="First time ever a bot with this id contacted
the server."> <td>First seen</td> <td title="[[_bot.human_first_seen_ts]]"> [[_t
imeDiffApprox(_bot.first_seen_ts)]] ago </td> <td></td> </tr> <tr title="How the
bot is authenticated by the server."> <td>Authenticated as</td> <td colspan="2"
>[[_bot.authenticated_as]]</td> </tr> <template is="dom-if" if="[[_bot.lease_id]
]"> <tr> <td>Machine Provider Lease ID</td> <td colspan="2"> <a href$="[[_mpLink
(_bot,_server_details.machine_provider_template)]]"> [[_bot.lease_id]] </a> </td
> </tr> <tr> <td>Machine Provider Lease Expires</td> <td colspan="2">[[_bot.huma
n_lease_expiration_ts]]</td> </tr> </template> </tbody></table> <span class="tit
le">State</span> <template is="dom-if" if="[[_not(_show_state)]]"> <button on-cl
ick="_toggleState"> <iron-icon icon="icons:add-circle-outline"></iron-icon> </bu
tton> </template> <template is="dom-if" if="[[_show_state]]"> <button on-click="
_toggleState"> <iron-icon icon="icons:remove-circle-outline"></iron-icon> </butt
on> </template> <iron-collapse id="collapse" opened="[[_show_state]]"> <div clas
s="bot_state">[[_prettyPrint(_bot.state)]]</div> </iron-collapse> </div> <div cl
ass="stats flex"> <bot-page-summary tasks="[[_tasks]]"> </bot-page-summary> </di
v> </div> <div class="tabs"> <paper-tabs selected="{{_selected}}" no-bar=""> <pa
per-tab>Tasks</paper-tab> <paper-tab>Events</paper-tab> </paper-tabs> <template
is="dom-if" if="[[_showEvents]]"> <paper-checkbox checked="{{_show_all}}"> Show
all events </paper-checkbox> </template> </div> <template is="dom-if" if="[[_not
(_showEvents)]]"> <table class="tasks_table"> <thead> <tr> <th>Task</th> <th>Sta
rted</th> <th>Duration</th> <th>Result</th> </tr> </thead> <tbody> <template is=
"dom-repeat" items="{{_tasks}}" as="task"> <tr class$="[[_taskClass(task)]]"> <t
d> <a target="_blank" rel="noopener" href$="[[_taskLink(task.task_id)]]"> [[task
.name]] </a> </td> <td>[[task.human_started_ts]]</td> <td title="[[task.human_co
mpleted_ts]]">[[task.human_duration]]</td> <td>[[task.state]]</td> </tr> </templ
ate> </tbody> </table> </template> <template is="dom-if" if="[[_showEvents]]"> <
table class="events_table"> <thead> <tr> <th>Message</th> <th>Type</th> <th>Time
stamp</th> <th>Task ID</th> <th>Version</th> </tr> </thead> <tbody> <template is
="dom-repeat" items="{{_eventList(_show_all,_events.*)}}" as="event"> <tr> <td c
lass="message">[[event.message]]</td> <td>[[event.event_type]]</td> <td>[[event.
human_ts]]</td> <td> <a target="_blank" rel="noopener" href$="[[_taskLink(event.
task_id)]]"> [[event.task_id]] </a> </td> <td class$="[[_classVersion(_server_de
tails.bot_version,event.version)]]"> [[_shorten(event.version,'8')]] </td> </tr>
</template> </tbody> </table> </template> <pageable-data id="page_tasks" hidden
$="[[_showEvents]]" busy="{{_busy2}}" label="Show more tasks" output="{{_tasks}}
" parse="[[_parseTasks]]"> </pageable-data> <pageable-data id="page_events" hidd
en$="[[_not(_showEvents)]]" busy="{{_busy3}}" label="Show more events" output="{
{_events}}" parse="[[_parseEvents]]"> </pageable-data> </div> </swarming-app> <p
aper-dialog id="prompt" modal="" on-iron-overlay-closed="_promptClosed"> <h2>Are
you sure?</h2> <div>Are you sure you want to [[_dialogPrompt]]?</div> <div clas
s="buttons"> <paper-button dialog-dismiss="" autofocus="">No</paper-button> <pap
er-button dialog-confirm="">Yes</paper-button> </div> </paper-dialog> </template
> <script> (function(){ |
| 742 | 738 |
| 743 Polymer({ | 739 Polymer({ |
| 744 is: 'bot-page', | 740 is: 'bot-page', |
| 745 | 741 |
| 746 behaviors: [ | 742 behaviors: [ |
| 747 SwarmingBehaviors.BotPageBehavior, | 743 SwarmingBehaviors.BotPageBehavior, |
| 748 ], | 744 ], |
| 749 | 745 |
| 750 properties: { | 746 properties: { |
| 751 bot_id: { | 747 bot_id: { |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 960 } | 956 } |
| 961 return ""; | 957 return ""; |
| 962 }, | 958 }, |
| 963 | 959 |
| 964 _toggleState: function() { | 960 _toggleState: function() { |
| 965 this.set("_show_state", !this._show_state); | 961 this.set("_show_state", !this._show_state); |
| 966 } | 962 } |
| 967 | 963 |
| 968 }); | 964 }); |
| 969 })(); </script> </dom-module><dom-module id="interval-timer" assetpath="/res/i
mp/common/"> <script>!function(){Polymer({is:"interval-timer",properties:{period
:{type:Number,value:-1,observer:"_periodChanged"}},_periodChanged:function(e){th
is._timeout&&window.clearTimeout(this._timeout),e>0&&(this._timeout=window.setTi
meout(function(){this.fire("trigger"),this._periodChanged(e)}.bind(this),1e3*e))
}})}()</script> </dom-module> <dom-module id="task-page-data" assetpath="/res/im
p/taskpage/"> <script>!function(){var t,e=400,s=["abandoned_ts","completed_ts","
created_ts","modified_ts","started_ts"];Polymer({is:"task-page-data",behaviors:[
SwarmingBehaviors.CommonBehavior,SwarmingBehaviors.TaskBehavior],properties:{aut
h_headers:{type:Object},task_id:{type:String},busy:{type:Boolean,computed:"_or(_
busy1,_busy2,_busy3)",notify:!0},request:{type:Object,computed:"_parseRequest(_r
equest)",notify:!0},result:{type:Object,computed:"_parseResult(_result)",notify:
!0},stdout:{type:String,computed:"_parseStdout(_stdout)",notify:!0},task_exists:
{type:Boolean,value:!0,notify:!0},_busy1:{type:Boolean,value:!1},_busy2:{type:Bo
olean,value:!1},_busy3:{type:Boolean,value:!1},_request:{type:Object},_result:{t
ype:Object},_stdout:{type:Object}},observers:["reload(auth_headers,task_id)"],re
load:function(){if(!this.task_id||!this.auth_headers)return void console.log("ta
sk_id and auth_headers can't be empty");t&&this.cancelAsync(t);var s="/api/swarm
ing/v1/task/"+this.task_id;t=this.async(function(){t=void 0;var e=this._getJsonA
sync("_request",s+"/request","_busy1",this.auth_headers);e.then(function(){this.
set("task_exists",!0)}.bind(this)).catch(function(t){404===t.status?this.set("ta
sk_exists",!1):sk.errorMessage("Http response: "+(t.status||" ")+" "+t.response)
}.bind(this)),this._getJsonAsync("_result",s+"/result?include_performance_stats=
true","_busy2",this.auth_headers),this.reloadStdout()},e)},_parseRequest:functio
n(t){return t?(t.tagMap={},t.tags=t.tags||[],t.tags.forEach(function(e){var s=e.
split(":",1),a=s[0],u=e.substring(a.length+1);t.tagMap[a]=u}),s.forEach(function
(e){t[e]&&(t[e]=new Date(t[e]),t["human_"+e]=sk.human.localeTime(t[e]))}),t):{}}
,_parseResult:function(t){if(!t)return{};var e=new Date;return s.forEach(functio
n(e){t[e]&&(t[e]=new Date(t[e]),t["human_"+e]=sk.human.localeTime(t[e]))}),!t.du
ration&&t.state===this.RUNNING&&t.started_ts&&(t.duration=(e-t.started_ts)/1e3),
t.duration&&(t.human_duration=this._humanDuration(t.duration)),t},_parseStdout:f
unction(t){return t&&t.output?t.output:""},reloadStdout:function(){this._getJson
Async("_stdout","/api/swarming/v1/task/"+this.task_id+"/stdout","_busy3",this.au
th_headers)}})}()</script> </dom-module><dom-module id="task-disambiguation" ass
etpath="/res/imp/taskpage/"> <template> <style include="swarming-app-style singl
e-page-style task-style"></style> <table> <thead> <tr> <th>Try ID</th> <th>Bot I
D</th> <th>Status</th> </tr> </thead> <tbody> <template id="result_list" is="dom
-repeat" items="[[_results]]" as="result" observe="task_id bot_id state"> <tr> <
td> <a href$="[[_taskLink(result.task_id,'true')]]"> [[result.task_id]] </a> </t
d> <td> <a href$="[[_botLink(result.bot_id)]]"> [[result.bot_id]] </a> </td> <td
class$="[[_stateClass(result)]]">[[state(result)]]</td> </tr> </template> </tbo
dy> </table> </template> <script>Polymer({is:"task-disambiguation",behaviors:[Sw
armingBehaviors.CommonBehavior,SwarmingBehaviors.TaskBehavior],properties:{auth_
headers:{type:Object},summary_result:{type:Object},task_id:{type:String},busy:{t
ype:Boolean,value:!1,notify:!0},_busyArr:{type:Array,value:function(){return[]}}
,_results:{type:Array,value:function(){return[]}}},observers:["_fetchRest(auth_h
eaders,task_id,summary_result)","_computeBusy(_busyArr.*)"],_computeBusy:functio
n(){for(var s=0;s<this._busyArr.length;s++)if(this._busyArr[s].status)return!0;r
eturn!1},_fetchRest:function(s,r,t){if(s&&r&&t){var e=t.try_number;this.set("_bu
syArr",[]),this.set("_results",[]);for(var u=r.substring(0,r.length-1),i="/api/s
warming/v1/task/",a=0;a<e-1;a++){var n=u+(a+1);this.splice("_busyArr",a,0,{}),th
is.splice("_results",a,0,{task_id:n}),this._getJsonAsyncArr(a,"_results",i+n+"/r
esult","_busyArr",s)}t.task_id=u+e,this.splice("_results",e-1,1,t)}}})</script>
</dom-module><dom-module id="task-page" assetpath="/res/imp/taskpage/"> <templat
e> <style include="iron-flex iron-flex-alignment swarming-app-style single-page-
style task-style">.milo{width:calc(100% - 11px);height:2000px}.left{min-width:55
0px}.right{min-width:500px;margin-top:8px}.expand{min-width:3em;vertical-align:m
iddle;padding:.5em}.code{font-family:monospace}.stdout{white-space:pre-line;padd
ing:2px}.refresh_input{padding:0 5px}.reproduce{margin-left:5px}.tabbed{border:3
px solid #1F78B4;margin-left:5px;min-height:80vh}</style> <url-param name="id" v
alue="{{task_id}}"> </url-param> <url-param name="try_detail" value="{{_try_deta
il}}"> </url-param> <url-param name="request_detail" value="{{_request_detail}}"
> </url-param> <url-param name="show_raw" value="{{_show_raw}}"> </url-param> <u
rl-param name="refresh" value="{{_refresh_interval}}" default_value="10"> </url-
param> <swarming-app client_id="[[client_id]]" auth_headers="{{_auth_headers}}"
permissions="{{_permissions}}" profile="{{_profile}}" server_details="{{_server_
details}}" signed_in="{{_signed_in}}" busy="[[_or(_busy1,busy2)]]" name="Swarmin
g Task Page"> <h2 hidden$="[[_signed_in]]">You must sign in to see anything usef
ul.</h2> <div hidden$="[[_not(_signed_in)]]"> <task-page-data id="data" auth_hea
ders="[[_auth_headers]]" task_id="[[task_id]]" busy="{{_busy1}}" request="{{_req
uest}}" result="{{_result}}" stdout="{{_stdout}}" task_exists="{{_task_exists}}"
> </task-page-data> <div class="horizontal layout wrap"> <div class="left flex">
<div class="horizontal layout"> <paper-input class="id_input" label="Task id" v
alue="{{task_id}}"></paper-input> <button on-click="_refresh"> <iron-icon class=
"refresh" icon="icons:refresh"></iron-icon> </button> <button on-click="_promptR
etry">Retry</button> <template is="dom-if" if="[[_canCancelTask(_result,_permiss
ions)]]"> <button on-click="_promptCancel">Cancel</button> </template> </div> <h
2 hidden$="[[_task_exists]]">Task not found.</h2> <template is="dom-if" if="[[_d
isambiguate(task_id,_result)]]"> <h2>Displaying a summary for a task with multip
le tries</h2> <task-disambiguation busy="{{busy2}}" auth_headers="[[_auth_header
s]]" task_id="[[task_id]]" summary_result="[[_result]]"> </task-disambiguation>
</template> <table hidden$="[[_not(_task_exists)]]"> <tbody><tr> <td>Name</td> <
td>[[_request.name]]</td> </tr> <tr> <td>State</td> <td class$="[[_stateClass(_r
esult)]]">[[state(_result)]]</td> </tr> <tr> <td>Created</td> <td title$="[[_req
uest.created_ts]]">[[_request.human_created_ts]]</td> </tr> <template is="dom-if
" if="[[_wasPickedUp(_result)]]"> <tr> <td>Started</td> <td title$="[[_result.st
arted_ts]]">[[_result.human_started_ts]]</td> </tr> </template> <template is="do
m-if" if="[[_wasNotPickedUp(_result)]]"> <tr> <td>Expires</td> <td>[[_expires(_r
equest)]]</td> </tr> </template> <template is="dom-if" if="[[_result.human_compl
eted_ts]]"> <tr> <td>Completed</td> <td title$="[[_result.completed_ts]]">[[_res
ult.human_completed_ts]]</td> </tr> </template> <template is="dom-if" if="[[_res
ult.human_abandoned_ts]]"> <tr> <td>Abandoned</td> <td title$="[[_result.abandon
ed_ts]]">[[_result.human_abandoned_ts]]</td> </tr> </template> <tr> <td>Last Upd
ated</td> <td title$="[[_result.modified_ts]]">[[_result.human_modified_ts]]</td
> </tr> <template is="dom-if" if="[[_result.deduped_from]]"> <tr> <td><b>Deduped
from</b></td> <td> <a href$="[[_taskLink(_result.deduped_from)]]"> [[_result.de
duped_from]] </a> </td> </tr> </template> <tr> <td>Pending Time</td> <td>[[_pend
ing(_result)]]</td> </tr> <tr> <td>Duration</td> <td>[[_result.human_duration]]<
/td> </tr> <tr> <td>Priority</td> <td>[[_request.priority]]</td> </tr> <tr> <td>
User</td> <td>[[_request.user]]</td> </tr> <tr> <td>Authenticated</td> <td>[[_re
quest.authenticated]]</td> </tr> <template is="dom-if" if="[[_request.service_ac
count]]"> <tr> <td>Service Account</td> <td>[[_request.service_account]]</td> </
tr> </template> <template is="dom-if" if="[[_request.properties.secret_bytes]]">
<tr> <td>Secret Bytes</td> <td>[[_request.properties.secret_bytes]]</td> </tr>
</template> <template is="dom-if" if="[[_request.parent_task_id]]"> <tr> <td>Par
ent Task</td> <td> <a href$="[[_taskLink(_request.parent_task_id)]]">[[_request.
parent_task_id]]</a> </td> </tr> </template> <tr> <td rowspan$="[[_rowspan(_requ
est.properties.dimensions)]]"> <a title="The list of bots that matches the list
of dimensions" href$="[[_botListLink(_request.properties.dimensions)]]"> Request
ed Dimensions </a> </td> </tr> <template is="dom-repeat" items="{{_request.prope
rties.dimensions}}" as="dimension"> <tr> <td><b>[[dimension.key]]:</b> [[_alias(
dimension)]]</td> </tr> </template> <tr> <td>Isolated Inputs</td> <td> <a href$=
"[[_isolateLink(_request.properties.inputs_ref)]]"> [[_request.properties.inputs
_ref.isolated]] </a> </td> </tr> <template is="dom-if" if="[[_request.properties
.outputs.length]]"> <tr> <td rowspan$="[[_rowspan(_request.properties.outputs)]]
">Expected outputs</td> </tr> <template is="dom-repeat" items="{{_request.proper
ties.outputs}}" as="output"> <tr> <td>[[output]]</td> </tr> </template> </templa
te> <template is="dom-if" if="[[_not(_request_detail)]]"> <tr> <td>More Details<
/td> <td> <button on-click="_toggleDetails"> <iron-icon icon="icons:add-circle-o
utline"></iron-icon> </button> </td> </tr> </template> <template is="dom-if" if=
"[[_request_detail]]"> <tr> <td>Hide Details</td> <td> <button on-click="_toggle
Details"> <iron-icon icon="icons:remove-circle-outline"></iron-icon> </button> <
/td> </tr> </template> <template is="dom-if" if="[[_request_detail]]"> <tr> <td>
Extra Args</td> <td class="code">[[_extraArgs(_request)]]</td> </tr> <tr> <td ro
wspan$="[[_rowspan(_request.tags)]]">Tags</td> </tr> <template is="dom-repeat" i
tems="{{_request.tags}}" as="tag"> <tr> <td>[[tag]]</td> </tr> </template> <tr>
<td>Execution timeout</td> <td>[[_humanDuration(_request.properties.execution_ti
meout_secs)]]</td> </tr> <tr> <td>I/O timeout</td> <td>[[_humanDuration(_request
.properties.io_timeout_secs)]]</td> </tr> <tr> <td>Grace period</td> <td>[[_huma
nDuration(_request.properties.grace_period_secs)]]</td> </tr> <tr> <td>CIPD serv
er</td> <td> <a href$="[[_request.properties.cipd_input.server]]"> [[_request.pr
operties.cipd_input.server]] </a> </td> </tr> <tr> <td>CIPD version</td> <td>[[_
request.properties.cipd_input.client_package.version]]</td> </tr> <template is="
dom-if" if="[[_wasPickedUp(_result)]]"> <tr> <td>CIPD package name</td> <td>[[_r
esult.cipd_pins.client_package.package_name]]</td> </tr> </template> <tr hidden$
="[[_not(_request.properties.cipd_input)]]"> <td rowspan$="[[_cipdRowspan(_reque
st,_result)]]">CIPD packages</td> </tr> <template is="dom-repeat" items="[[_cipd
Packages(_request,_result)]]" as="cipd"> <tr> <td>[[cipd.path]]/</td> </tr> <tr>
<td><b>Requested:</b>[[cipd.requested]]</td> </tr> <tr hidden$="[[_wasNotPicked
Up(_result)]]"> <td><b>Actual:</b>[[cipd.actual]]</td> </tr> </template> <tr hid
den$="[[_empty(_request.properties.caches)]]"> <td rowspan$="[[_rowspan(_request
.properties.caches)]]">Named caches</td> </tr> <template is="dom-repeat" items="
[[_request.properties.caches]]" as="cache"> <tr> <td><span>[[cache.name]]</span>
:<span>[[cache.path]]</span></td> </tr> </template> </template> </tbody></table>
<div class="title" hidden$="[[_not(_task_exists)]]">Task Execution</div> <templ
ate is="dom-if" if="[[_wasPickedUp(_result)]]"> <table hidden$="[[_not(_task_exi
sts)]]"> <tbody><tr> <td>Bot assigned to task</td> <td><a href$="[[_botLink(_res
ult.bot_id)]]">[[_result.bot_id]]</a></td> </tr> <tr> <td rowspan$="[[_rowspan(_
result.bot_dimensions)]]"> <a>Bot Dimensions</a> </td> </tr> <template is="dom-r
epeat" items="[[_result.bot_dimensions]]" as="dimension"> <tr> <td><b>[[dimensio
n.key]]:</b> [[_alias(dimension)]]</td> </tr> </template> <tr> <td>Exit code</td
> <td>[[_result.exit_code]]</td> </tr> <tr> <td>Try number</td> <td>[[_result.tr
y_number]]</td> </tr> <tr> <td>Failure</td> <td class$="[[_failureClass(_result.
failure)]]">[[_result.failure]]</td> </tr> <tr> <td>Internal Failure</td> <td cl
ass$="[[_internalClass(_result.internal_failure)]]">[[_result.internal_failure]]
</td> </tr> <tr> <td>Isolated Outputs</td> <td> <a href$="[[_isolateLink(_result
.outputs_ref)]]"> [[_result.outputs_ref.isolated]] </a> </td> </tr> <tr> <td>Bot
version</td> <td>[[_result.bot_version]]</td> </tr> <tr> <td>Server version</td
> <td>[[_result.server_versions]]</td> </tr> </tbody></table> </template> <templ
ate is="dom-if" if="[[_wasNotPickedUp(_result)]]"> This space left blank until a
bot is assigned to the task. </template> <template is="dom-if" if="[[_result.pe
rformance_stats]]"> <div class="title">Performance Stats</div> <table> <tbody><t
r> <td title="This includes time taken to download inputs, isolate outputs, and
setup CIPD">Total Overhead</td> <td>[[_humanDuration(_result.performance_stats.b
ot_overhead)]]</td> </tr> <tr> <td>Downloading Inputs From Isolate</td> <td>[[_h
umanDuration(_result.performance_stats.isolated_download.duration)]]</td> </tr>
<tr> <td>Uploading Outputs To Isolate</td> <td>[[_humanDuration(_result.performa
nce_stats.isolated_upload.duration)]]</td> </tr> <tr> <td>Initial bot cache</td>
<td>[[_result.performance_stats.isolated_download.initial_number_items]] items;
[[_bytes(_result.performance_stats.isolated_download.initial_size)]]</td> </tr>
</tbody></table> </template> <div class="title">Reproducing the task locally</d
iv> <div class="reproduce"> <div>Download inputs files into directory <i>foo</i>
:</div> <div class="code"> python isolateserver.py download -I [[_request.proper
ties.inputs_ref.isolatedserver]] --namespace [[_request.properties.inputs_ref.na
mespace]] -s [[_request.properties.inputs_ref.isolated]] --target foo</div> <br>
<div>Run this task locally:</div> <div class="code"> python swarming.py reprodu
ce -S [[_host_url]] [[task_id]]</div> <br> <div>Download output results into dir
ectory <i>foo</i>:</div> <div class="code"> python swarming.py collect -S [[_hos
t_url]] --task-output-dir=foo [[task_id]]</div> <br> <div>Looking for <i>swarmin
g.py</i>?</div> <div class="code"> git clone https://github.com/luci/client-py</
div> </div> </div> <div class="flex right" hidden$="[[_not(_task_exists)]]"> <di
v class="horizontal layout"> <div class="tabs"> <paper-tabs selected="{{_show_ra
w}}" no-bar=""> <paper-tab disabled$="[[_noMilo(_request)]]">Milo Output</paper-
tab> <paper-tab>Raw Output</paper-tab> </paper-tabs> </div> <paper-input class="
refresh_input" label="Refresh Interval (seconds)" value="{{_refresh_interval}}"
title="How often to refresh all information about the task" auto-validate="" min
="1" max="1000" pattern="[0-9]+"> </paper-input> </div> <template is="dom-if" if
="[[_supportsMilo(_request,_show_raw)]]"> <div class="milo tabbed" hidden$="[[_i
sSummaryLink(task_id)]]"> Milo results are only generated for task summaires, th
at is, tasks whose ids end in 0. Tasks ending in 1 or 2 represent possible retri
es of tasks. See <a href="//goo.gl/LE4rwV">the docs</a> for more. </div> <iframe
id="miloFrame" class="milo tabbed" src$="[[_getDisplayServerLink(_server_detail
s.display_server_url_template,task_id)]]"></iframe> </template> <template is="do
m-if" if="[[_show_raw]]"> <div class="code stdout tabbed">[[_rawOutput(_stdout,_
result)]]</div> </template> </div> </div> </div> </swarming-app> <paper-dialog i
d="prompt" modal="" on-iron-overlay-closed="_promptClosed"> <h2>Are you sure?</h
2> <div>Are you sure you want to [[_dialog_prompt]]?</div> <div class="buttons">
<paper-button dialog-dismiss="" autofocus="">No</paper-button> <paper-button di
alog-confirm="">Yes</paper-button> </div> </paper-dialog> <interval-timer period
="[[_refresh_interval]]" on-trigger="_softRefresh"> </interval-timer> </template
> <script>!function(){Polymer({is:"task-page",behaviors:[SwarmingBehaviors.Commo
nBehavior,SwarmingBehaviors.TaskBehavior],properties:{task_id:{type:String},clie
nt_id:{type:String},_dialog_prompt:{type:String,value:""},_host_url:{type:String
,value:function(){return window.location.hostname}},_refresh_interval:{type:Numb
er},_request:{type:Object,observer:"_requestUpdated"},_request_detail:{type:Bool
ean},_result:{type:Object},_server_details:{type:Object},_stdout:{type:String}},
_alias:function(t){var e=t.value;return Array.isArray(e)||(e=[e]),swarming.alias
.has(t.key)&&e.forEach(function(i,s){e[s]=swarming.alias.apply(i,t.key)}),e.join
(" | ")},_bytes:function(t){return sk.human.bytes(t)},_canCancelTask:function(t,
e){return t&&"PENDING"===t.state&&e.cancel_task},_cancelTask:function(){var t="/
api/swarming/v1/task/"+this.task_id+"/cancel";swarming.postWithToast(t,"Cancelin
g task "+this.task_id,this._auth_headers)},_cipdRowspan:function(t,e){if(!t||!t.
properties||!t.properties.cipd_input)return 0;var i=(t.properties.cipd_input.pac
kages||[]).length;return i*=e&&e.cipd_pins&&e.cipd_pins.packages?3:2,i+1},_cipdP
ackages:function(t,e){if(!t||!t.properties||!t.properties.cipd_input)return[];va
r i=t.properties.cipd_input.packages||[],s=e&&e.cipd_pins&&e.cipd_pins.packages|
|[];return i.forEach(function(t){t.requested=t.package_name+":"+t.version,s.forE
ach(function(e){e.path===t.path&&(t.actual=e.package_name+":"+e.version)})}),i},
_disambiguate:function(t,e){return!(!t.endsWith("0")||!e)&&e.try_number>1},_empt
y:function(t){return!t||0==t.length},_expires:function(t){var e=parseInt(t.expir
ation_secs);return e?sk.human.localeTime(new Date(t.created_ts.getTime()+1e3*e))
:t.expiration_secs+" seconds from created time"},_extraArgs:function(t){if(!t||!
t.properties)return"";var e=t.properties.extra_args||[];return e.join(" ")},_fai
lureClass:function(t){return t?"failed_task":""},_getDisplayServerLink:function(
t,e){if(t)return t.replace("%s",e)},_internalClass:function(t){return t?"excepti
on":""},_isolateLink:function(t){if(t&&t.isolatedserver)return t.isolatedserver+
"/browse?namespace="+t.namespace+"&hash="+t.isolated},_isSummaryLink:function(t)
{return t&&t.endsWith(0)},_noMilo:function(t){return!this._tag(t,"allow_milo")},
_pending:function(t){if(!t.created_ts)return"";var e=t.started_ts||t.abandoned_t
s||new Date;return e<=t.created_ts?"0s":this._timeDiffExact(t.created_ts,e)},_pr
omptClosed:function(t){t.detail.confirmed&&(this._dialog_prompt.startsWith("canc
el")?this._cancelTask():this._retryTask())},_promptCancel:function(){this.set("_
dialog_prompt","cancel task "+this.task_id),this.$.prompt.open()},_promptRetry:f
unction(){this.set("_dialog_prompt","retry task "+this.task_id),this.$.prompt.op
en()},_rawOutput:function(t,e){return t?t:"PENDING"===e.state||"RUNNING"===e.sta
te?"[No output yet]":"[No output received]"},_refresh:function(){this.$.data.rel
oad()},_requestUpdated:function(t){this._noMilo(t)&&this.set("_show_raw",1)},_so
ftRefresh:function(){if(!this._result||"RUNNING"===this._result.state||"PENDING"
===this._result.state){this.$.data.reload();var t=this.$$("iframe");t&&(t.src=th
is._getDisplayServerLink(this._server_details.display_server_url_template,this.t
ask_id))}},_retryTask:function(){if(!this._request)return void sk.errorMessage("
Task not yet loaded",3e3);var t={expiration_secs:this._request.expiration_secs,n
ame:this._request.name+" (retry)",parent_task_id:this._request.parent_task_id,pr
iority:this._request.priority,properties:this._request.properties,tags:this._req
uest.tags,user:this._profile.email,service_account:this._request.service_account
};swarming.postWithToast("/api/swarming/v1/tasks/new","Retrying task "+this.task
_id,this._auth_headers,t).then(function(t){t=JSON.parse(t),t&&t.task_id&&this.se
t("task_id",t.task_id)}.bind(this),function(t){console.log("Task could not be re
tried",t)})},_rowspan:function(t){return t=t||[],t.length+1},_supportsMilo:funct
ion(t,e){return!e&&t&&this._tag(t,"allow_milo")},_toggleDetails:function(){this.
set("_request_detail",!this._request_detail)},_tag:function(t,e){if(t&&t.tagMap)
return t.tagMap[e]},_wasPickedUp:function(t){return t&&t.state!==this.PENDING&&t
.state!==this.CANCELED&&t.state!=this.EXPIRED},_wasNotPickedUp:function(t){retur
n t&&!this._wasPickedUp(t)}})}()</script> </dom-module> </div></body></html> | 965 })(); </script> </dom-module><dom-module id="interval-timer" assetpath="/res/i
mp/common/"> <script>!function(){Polymer({is:"interval-timer",properties:{period
:{type:Number,value:-1,observer:"_periodChanged"}},_periodChanged:function(e){th
is._timeout&&window.clearTimeout(this._timeout),e>0&&(this._timeout=window.setTi
meout(function(){this.fire("trigger"),this._periodChanged(e)}.bind(this),1e3*e))
}})}()</script> </dom-module> <dom-module id="task-page-data" assetpath="/res/im
p/taskpage/"> <script>!function(){var t,e=400,s=["abandoned_ts","completed_ts","
created_ts","modified_ts","started_ts"];Polymer({is:"task-page-data",behaviors:[
SwarmingBehaviors.CommonBehavior,SwarmingBehaviors.TaskBehavior],properties:{aut
h_headers:{type:Object},task_id:{type:String},busy:{type:Boolean,computed:"_or(_
busy1,_busy2,_busy3)",notify:!0},request:{type:Object,computed:"_parseRequest(_r
equest)",notify:!0},result:{type:Object,computed:"_parseResult(_result)",notify:
!0},stdout:{type:String,computed:"_parseStdout(_stdout)",notify:!0},task_exists:
{type:Boolean,value:!0,notify:!0},_busy1:{type:Boolean,value:!1},_busy2:{type:Bo
olean,value:!1},_busy3:{type:Boolean,value:!1},_request:{type:Object},_result:{t
ype:Object},_stdout:{type:Object}},observers:["reload(auth_headers,task_id)"],re
load:function(){if(!this.task_id||!this.auth_headers)return void console.log("ta
sk_id and auth_headers can't be empty");t&&this.cancelAsync(t);var s="/api/swarm
ing/v1/task/"+this.task_id;t=this.async(function(){t=void 0;var e=this._getJsonA
sync("_request",s+"/request","_busy1",this.auth_headers);e.then(function(){this.
set("task_exists",!0)}.bind(this)).catch(function(t){404===t.status?this.set("ta
sk_exists",!1):sk.errorMessage("Http response: "+(t.status||" ")+" "+t.response)
}.bind(this)),this._getJsonAsync("_result",s+"/result?include_performance_stats=
true","_busy2",this.auth_headers),this.reloadStdout()},e)},_parseRequest:functio
n(t){return t?(t.tagMap={},t.tags=t.tags||[],t.tags.forEach(function(e){var s=e.
split(":",1),a=s[0],u=e.substring(a.length+1);t.tagMap[a]=u}),s.forEach(function
(e){t[e]&&(t[e]=new Date(t[e]),t["human_"+e]=sk.human.localeTime(t[e]))}),t):{}}
,_parseResult:function(t){if(!t)return{};var e=new Date;return s.forEach(functio
n(e){t[e]&&(t[e]=new Date(t[e]),t["human_"+e]=sk.human.localeTime(t[e]))}),!t.du
ration&&t.state===this.RUNNING&&t.started_ts&&(t.duration=(e-t.started_ts)/1e3),
t.duration&&(t.human_duration=this._humanDuration(t.duration)),t},_parseStdout:f
unction(t){return t&&t.output?t.output:""},reloadStdout:function(){this._getJson
Async("_stdout","/api/swarming/v1/task/"+this.task_id+"/stdout","_busy3",this.au
th_headers)}})}()</script> </dom-module><dom-module id="task-disambiguation" ass
etpath="/res/imp/taskpage/"> <template> <style include="swarming-app-style singl
e-page-style task-style"></style> <table> <thead> <tr> <th>Try ID</th> <th>Bot I
D</th> <th>Status</th> </tr> </thead> <tbody> <template id="result_list" is="dom
-repeat" items="[[_results]]" as="result" observe="task_id bot_id state"> <tr> <
td> <a href$="[[_taskLink(result.task_id,'true')]]"> [[result.task_id]] </a> </t
d> <td> <a href$="[[_botLink(result.bot_id)]]"> [[result.bot_id]] </a> </td> <td
class$="[[_stateClass(result)]]">[[state(result)]]</td> </tr> </template> </tbo
dy> </table> </template> <script>Polymer({is:"task-disambiguation",behaviors:[Sw
armingBehaviors.CommonBehavior,SwarmingBehaviors.TaskBehavior],properties:{auth_
headers:{type:Object},summary_result:{type:Object},task_id:{type:String},busy:{t
ype:Boolean,value:!1,notify:!0},_busyArr:{type:Array,value:function(){return[]}}
,_results:{type:Array,value:function(){return[]}}},observers:["_fetchRest(auth_h
eaders,task_id,summary_result)","_computeBusy(_busyArr.*)"],_computeBusy:functio
n(){for(var s=0;s<this._busyArr.length;s++)if(this._busyArr[s].status)return!0;r
eturn!1},_fetchRest:function(s,r,t){if(s&&r&&t){var e=t.try_number;this.set("_bu
syArr",[]),this.set("_results",[]);for(var u=r.substring(0,r.length-1),i="/api/s
warming/v1/task/",a=0;a<e-1;a++){var n=u+(a+1);this.splice("_busyArr",a,0,{}),th
is.splice("_results",a,0,{task_id:n}),this._getJsonAsyncArr(a,"_results",i+n+"/r
esult","_busyArr",s)}t.task_id=u+e,this.splice("_results",e-1,1,t)}}})</script>
</dom-module><dom-module id="task-page" assetpath="/res/imp/taskpage/"> <templat
e> <style include="iron-flex iron-flex-alignment swarming-app-style single-page-
style task-style">.milo{width:calc(100% - 11px);height:2000px}.left{min-width:55
0px}.right{min-width:500px;margin-top:8px}.expand{min-width:3em;vertical-align:m
iddle;padding:.5em}.code{font-family:monospace}.stdout{white-space:pre-line;padd
ing:2px}.refresh_input{padding:0 5px}.reproduce{margin-left:5px}.tabbed{border:3
px solid #1F78B4;margin-left:5px;min-height:80vh}</style> <url-param name="id" v
alue="{{task_id}}"> </url-param> <url-param name="try_detail" value="{{_try_deta
il}}"> </url-param> <url-param name="request_detail" value="{{_request_detail}}"
> </url-param> <url-param name="show_raw" value="{{_show_raw}}"> </url-param> <u
rl-param name="refresh" value="{{_refresh_interval}}" default_value="10"> </url-
param> <swarming-app client_id="[[client_id]]" auth_headers="{{_auth_headers}}"
permissions="{{_permissions}}" profile="{{_profile}}" server_details="{{_server_
details}}" signed_in="{{_signed_in}}" busy="[[_or(_busy1,busy2)]]" name="Swarmin
g Task Page"> <h2 hidden$="[[_signed_in]]">You must sign in to see anything usef
ul.</h2> <div hidden$="[[_not(_signed_in)]]"> <task-page-data id="data" auth_hea
ders="[[_auth_headers]]" task_id="[[task_id]]" busy="{{_busy1}}" request="{{_req
uest}}" result="{{_result}}" stdout="{{_stdout}}" task_exists="{{_task_exists}}"
> </task-page-data> <div class="horizontal layout wrap"> <div class="left flex">
<div class="horizontal layout"> <paper-input class="id_input" label="Task id" v
alue="{{task_id}}"></paper-input> <button on-click="_refresh"> <iron-icon class=
"refresh" icon="icons:refresh"></iron-icon> </button> <button on-click="_promptR
etry">Retry</button> <template is="dom-if" if="[[_canCancelTask(_result,_permiss
ions)]]"> <button on-click="_promptCancel">Cancel</button> </template> </div> <h
2 hidden$="[[_task_exists]]">Task not found.</h2> <template is="dom-if" if="[[_d
isambiguate(task_id,_result)]]"> <h2>Displaying a summary for a task with multip
le tries</h2> <task-disambiguation busy="{{busy2}}" auth_headers="[[_auth_header
s]]" task_id="[[task_id]]" summary_result="[[_result]]"> </task-disambiguation>
</template> <table hidden$="[[_not(_task_exists)]]"> <tbody><tr> <td>Name</td> <
td>[[_request.name]]</td> </tr> <tr> <td>State</td> <td class$="[[_stateClass(_r
esult)]]">[[state(_result)]]</td> </tr> <tr> <td>Created</td> <td title$="[[_req
uest.created_ts]]">[[_request.human_created_ts]]</td> </tr> <template is="dom-if
" if="[[_wasPickedUp(_result)]]"> <tr> <td>Started</td> <td title$="[[_result.st
arted_ts]]">[[_result.human_started_ts]]</td> </tr> </template> <template is="do
m-if" if="[[_wasNotPickedUp(_result)]]"> <tr> <td>Expires</td> <td>[[_expires(_r
equest)]]</td> </tr> </template> <template is="dom-if" if="[[_result.human_compl
eted_ts]]"> <tr> <td>Completed</td> <td title$="[[_result.completed_ts]]">[[_res
ult.human_completed_ts]]</td> </tr> </template> <template is="dom-if" if="[[_res
ult.human_abandoned_ts]]"> <tr> <td>Abandoned</td> <td title$="[[_result.abandon
ed_ts]]">[[_result.human_abandoned_ts]]</td> </tr> </template> <tr> <td>Last Upd
ated</td> <td title$="[[_result.modified_ts]]">[[_result.human_modified_ts]]</td
> </tr> <template is="dom-if" if="[[_result.deduped_from]]"> <tr> <td><b>Deduped
from</b></td> <td> <a href$="[[_taskLink(_result.deduped_from)]]"> [[_result.de
duped_from]] </a> </td> </tr> </template> <tr> <td>Pending Time</td> <td>[[_pend
ing(_result)]]</td> </tr> <tr> <td>Duration</td> <td>[[_result.human_duration]]<
/td> </tr> <tr> <td>Priority</td> <td>[[_request.priority]]</td> </tr> <tr> <td>
User</td> <td>[[_request.user]]</td> </tr> <tr> <td>Authenticated</td> <td>[[_re
quest.authenticated]]</td> </tr> <template is="dom-if" if="[[_request.service_ac
count]]"> <tr> <td>Service Account</td> <td>[[_request.service_account]]</td> </
tr> </template> <template is="dom-if" if="[[_request.properties.secret_bytes]]">
<tr> <td>Secret Bytes</td> <td>[[_request.properties.secret_bytes]]</td> </tr>
</template> <template is="dom-if" if="[[_request.parent_task_id]]"> <tr> <td>Par
ent Task</td> <td> <a href$="[[_taskLink(_request.parent_task_id)]]">[[_request.
parent_task_id]]</a> </td> </tr> </template> <tr> <td rowspan$="[[_rowspan(_requ
est.properties.dimensions)]]"> <a title="The list of bots that matches the list
of dimensions" href$="[[_botListLink(_request.properties.dimensions)]]"> Request
ed Dimensions </a> </td> </tr> <template is="dom-repeat" items="{{_request.prope
rties.dimensions}}" as="dimension"> <tr> <td><b>[[dimension.key]]:</b> [[_alias(
dimension)]]</td> </tr> </template> <tr> <td>Isolated Inputs</td> <td> <a href$=
"[[_isolateLink(_request.properties.inputs_ref)]]"> [[_request.properties.inputs
_ref.isolated]] </a> </td> </tr> <template is="dom-if" if="[[_request.properties
.outputs.length]]"> <tr> <td rowspan$="[[_rowspan(_request.properties.outputs)]]
">Expected outputs</td> </tr> <template is="dom-repeat" items="{{_request.proper
ties.outputs}}" as="output"> <tr> <td>[[output]]</td> </tr> </template> </templa
te> <template is="dom-if" if="[[_not(_request_detail)]]"> <tr> <td>More Details<
/td> <td> <button on-click="_toggleDetails"> <iron-icon icon="icons:add-circle-o
utline"></iron-icon> </button> </td> </tr> </template> <template is="dom-if" if=
"[[_request_detail]]"> <tr> <td>Hide Details</td> <td> <button on-click="_toggle
Details"> <iron-icon icon="icons:remove-circle-outline"></iron-icon> </button> <
/td> </tr> </template> <template is="dom-if" if="[[_request_detail]]"> <tr> <td>
Extra Args</td> <td class="code">[[_extraArgs(_request)]]</td> </tr> <tr> <td ro
wspan$="[[_rowspan(_request.tags)]]">Tags</td> </tr> <template is="dom-repeat" i
tems="{{_request.tags}}" as="tag"> <tr> <td>[[tag]]</td> </tr> </template> <tr>
<td>Execution timeout</td> <td>[[_humanDuration(_request.properties.execution_ti
meout_secs)]]</td> </tr> <tr> <td>I/O timeout</td> <td>[[_humanDuration(_request
.properties.io_timeout_secs)]]</td> </tr> <tr> <td>Grace period</td> <td>[[_huma
nDuration(_request.properties.grace_period_secs)]]</td> </tr> <tr> <td>CIPD serv
er</td> <td> <a href$="[[_request.properties.cipd_input.server]]"> [[_request.pr
operties.cipd_input.server]] </a> </td> </tr> <tr> <td>CIPD version</td> <td>[[_
request.properties.cipd_input.client_package.version]]</td> </tr> <template is="
dom-if" if="[[_wasPickedUp(_result)]]"> <tr> <td>CIPD package name</td> <td>[[_r
esult.cipd_pins.client_package.package_name]]</td> </tr> </template> <tr hidden$
="[[_not(_request.properties.cipd_input)]]"> <td rowspan$="[[_cipdRowspan(_reque
st,_result)]]">CIPD packages</td> </tr> <template is="dom-repeat" items="[[_cipd
Packages(_request,_result)]]" as="cipd"> <tr> <td>[[cipd.path]]/</td> </tr> <tr>
<td><b>Requested:</b>[[cipd.requested]]</td> </tr> <tr hidden$="[[_wasNotPicked
Up(_result)]]"> <td><b>Actual:</b>[[cipd.actual]]</td> </tr> </template> <tr hid
den$="[[_empty(_request.properties.caches)]]"> <td rowspan$="[[_rowspan(_request
.properties.caches)]]">Named caches</td> </tr> <template is="dom-repeat" items="
[[_request.properties.caches]]" as="cache"> <tr> <td><span>[[cache.name]]</span>
:<span>[[cache.path]]</span></td> </tr> </template> </template> </tbody></table>
<div class="title" hidden$="[[_not(_task_exists)]]">Task Execution</div> <templ
ate is="dom-if" if="[[_wasPickedUp(_result)]]"> <table hidden$="[[_not(_task_exi
sts)]]"> <tbody><tr> <td>Bot assigned to task</td> <td><a href$="[[_botLink(_res
ult.bot_id)]]">[[_result.bot_id]]</a></td> </tr> <tr> <td rowspan$="[[_rowspan(_
result.bot_dimensions)]]"> <a>Bot Dimensions</a> </td> </tr> <template is="dom-r
epeat" items="[[_result.bot_dimensions]]" as="dimension"> <tr> <td><b>[[dimensio
n.key]]:</b> [[_alias(dimension)]]</td> </tr> </template> <tr> <td>Exit code</td
> <td>[[_result.exit_code]]</td> </tr> <tr> <td>Try number</td> <td>[[_result.tr
y_number]]</td> </tr> <tr> <td>Failure</td> <td class$="[[_failureClass(_result.
failure)]]">[[_result.failure]]</td> </tr> <tr> <td>Internal Failure</td> <td cl
ass$="[[_internalClass(_result.internal_failure)]]">[[_result.internal_failure]]
</td> </tr> <tr> <td>Isolated Outputs</td> <td> <a href$="[[_isolateLink(_result
.outputs_ref)]]"> [[_result.outputs_ref.isolated]] </a> </td> </tr> <tr> <td>Bot
version</td> <td>[[_result.bot_version]]</td> </tr> <tr> <td>Server version</td
> <td>[[_result.server_versions]]</td> </tr> </tbody></table> </template> <templ
ate is="dom-if" if="[[_wasNotPickedUp(_result)]]"> This space left blank until a
bot is assigned to the task. </template> <template is="dom-if" if="[[_result.pe
rformance_stats]]"> <div class="title">Performance Stats</div> <table> <tbody><t
r> <td title="This includes time taken to download inputs, isolate outputs, and
setup CIPD">Total Overhead</td> <td>[[_humanDuration(_result.performance_stats.b
ot_overhead)]]</td> </tr> <tr> <td>Downloading Inputs From Isolate</td> <td>[[_h
umanDuration(_result.performance_stats.isolated_download.duration)]]</td> </tr>
<tr> <td>Uploading Outputs To Isolate</td> <td>[[_humanDuration(_result.performa
nce_stats.isolated_upload.duration)]]</td> </tr> <tr> <td>Initial bot cache</td>
<td>[[_result.performance_stats.isolated_download.initial_number_items]] items;
[[_bytes(_result.performance_stats.isolated_download.initial_size)]]</td> </tr>
</tbody></table> </template> <div class="title">Reproducing the task locally</d
iv> <div class="reproduce"> <div>Download inputs files into directory <i>foo</i>
:</div> <div class="code"> python isolateserver.py download -I [[_request.proper
ties.inputs_ref.isolatedserver]] --namespace [[_request.properties.inputs_ref.na
mespace]] -s [[_request.properties.inputs_ref.isolated]] --target foo</div> <br>
<div>Run this task locally:</div> <div class="code"> python swarming.py reprodu
ce -S [[_host_url]] [[task_id]]</div> <br> <div>Download output results into dir
ectory <i>foo</i>:</div> <div class="code"> python swarming.py collect -S [[_hos
t_url]] --task-output-dir=foo [[task_id]]</div> <br> <div>Looking for <i>swarmin
g.py</i>?</div> <div class="code"> git clone https://github.com/luci/client-py</
div> </div> </div> <div class="flex right" hidden$="[[_not(_task_exists)]]"> <di
v class="horizontal layout"> <div class="tabs"> <paper-tabs selected="{{_show_ra
w}}" no-bar=""> <paper-tab disabled$="[[_noMilo(_request)]]">Milo Output</paper-
tab> <paper-tab>Raw Output</paper-tab> </paper-tabs> </div> <paper-input class="
refresh_input" label="Refresh Interval (seconds)" value="{{_refresh_interval}}"
title="How often to refresh all information about the task" auto-validate="" min
="1" max="1000" pattern="[0-9]+"> </paper-input> </div> <template is="dom-if" if
="[[_supportsMilo(_request,_show_raw)]]"> <div class="milo tabbed" hidden$="[[_i
sSummaryLink(task_id)]]"> Milo results are only generated for task summaires, th
at is, tasks whose ids end in 0. Tasks ending in 1 or 2 represent possible retri
es of tasks. See <a href="//goo.gl/LE4rwV">the docs</a> for more. </div> <iframe
id="miloFrame" class="milo tabbed" src$="[[_getDisplayServerLink(_server_detail
s.display_server_url_template,task_id)]]"></iframe> </template> <template is="do
m-if" if="[[_show_raw]]"> <div class="code stdout tabbed">[[_rawOutput(_stdout,_
result)]]</div> </template> </div> </div> </div> </swarming-app> <paper-dialog i
d="prompt" modal="" on-iron-overlay-closed="_promptClosed"> <h2>Are you sure?</h
2> <div>Are you sure you want to [[_dialog_prompt]]?</div> <div class="buttons">
<paper-button dialog-dismiss="" autofocus="">No</paper-button> <paper-button di
alog-confirm="">Yes</paper-button> </div> </paper-dialog> <interval-timer period
="[[_refresh_interval]]" on-trigger="_softRefresh"> </interval-timer> </template
> <script>!function(){Polymer({is:"task-page",behaviors:[SwarmingBehaviors.Commo
nBehavior,SwarmingBehaviors.TaskBehavior],properties:{task_id:{type:String},clie
nt_id:{type:String},_dialog_prompt:{type:String,value:""},_host_url:{type:String
,value:function(){return window.location.hostname}},_refresh_interval:{type:Numb
er},_request:{type:Object,observer:"_requestUpdated"},_request_detail:{type:Bool
ean},_result:{type:Object},_server_details:{type:Object},_stdout:{type:String}},
_alias:function(t){var e=t.value;return Array.isArray(e)||(e=[e]),swarming.alias
.has(t.key)&&e.forEach(function(i,s){e[s]=swarming.alias.apply(i,t.key)}),e.join
(" | ")},_bytes:function(t){return sk.human.bytes(t)},_canCancelTask:function(t,
e){return t&&"PENDING"===t.state&&e.cancel_task},_cancelTask:function(){var t="/
api/swarming/v1/task/"+this.task_id+"/cancel";swarming.postWithToast(t,"Cancelin
g task "+this.task_id,this._auth_headers)},_cipdRowspan:function(t,e){if(!t||!t.
properties||!t.properties.cipd_input)return 0;var i=(t.properties.cipd_input.pac
kages||[]).length;return i*=e&&e.cipd_pins&&e.cipd_pins.packages?3:2,i+1},_cipdP
ackages:function(t,e){if(!t||!t.properties||!t.properties.cipd_input)return[];va
r i=t.properties.cipd_input.packages||[],s=e&&e.cipd_pins&&e.cipd_pins.packages|
|[];return i.forEach(function(t){t.requested=t.package_name+":"+t.version,s.forE
ach(function(e){e.path===t.path&&(t.actual=e.package_name+":"+e.version)})}),i},
_disambiguate:function(t,e){return!(!t.endsWith("0")||!e)&&e.try_number>1},_empt
y:function(t){return!t||0==t.length},_expires:function(t){var e=parseInt(t.expir
ation_secs);return e?sk.human.localeTime(new Date(t.created_ts.getTime()+1e3*e))
:t.expiration_secs+" seconds from created time"},_extraArgs:function(t){if(!t||!
t.properties)return"";var e=t.properties.extra_args||[];return e.join(" ")},_fai
lureClass:function(t){return t?"failed_task":""},_getDisplayServerLink:function(
t,e){if(t)return t.replace("%s",e)},_internalClass:function(t){return t?"excepti
on":""},_isolateLink:function(t){if(t&&t.isolatedserver)return t.isolatedserver+
"/browse?namespace="+t.namespace+"&hash="+t.isolated},_isSummaryLink:function(t)
{return t&&t.endsWith(0)},_noMilo:function(t){return!this._tag(t,"allow_milo")},
_pending:function(t){if(!t.created_ts)return"";var e=t.started_ts||t.abandoned_t
s||new Date;return e<=t.created_ts?"0s":this._timeDiffExact(t.created_ts,e)},_pr
omptClosed:function(t){t.detail.confirmed&&(this._dialog_prompt.startsWith("canc
el")?this._cancelTask():this._retryTask())},_promptCancel:function(){this.set("_
dialog_prompt","cancel task "+this.task_id),this.$.prompt.open()},_promptRetry:f
unction(){this.set("_dialog_prompt","retry task "+this.task_id),this.$.prompt.op
en()},_rawOutput:function(t,e){return t?t:"PENDING"===e.state||"RUNNING"===e.sta
te?"[No output yet]":"[No output received]"},_refresh:function(){this.$.data.rel
oad()},_requestUpdated:function(t){this._noMilo(t)&&this.set("_show_raw",1)},_so
ftRefresh:function(){if(!this._result||"RUNNING"===this._result.state||"PENDING"
===this._result.state){this.$.data.reload();var t=this.$$("iframe");t&&(t.src=th
is._getDisplayServerLink(this._server_details.display_server_url_template,this.t
ask_id))}},_retryTask:function(){if(!this._request)return void sk.errorMessage("
Task not yet loaded",3e3);var t={expiration_secs:this._request.expiration_secs,n
ame:this._request.name+" (retry)",parent_task_id:this._request.parent_task_id,pr
iority:this._request.priority,properties:this._request.properties,tags:this._req
uest.tags,user:this._profile.email,service_account:this._request.service_account
};swarming.postWithToast("/api/swarming/v1/tasks/new","Retrying task "+this.task
_id,this._auth_headers,t).then(function(t){t=JSON.parse(t),t&&t.task_id&&this.se
t("task_id",t.task_id)}.bind(this),function(t){console.log("Task could not be re
tried",t)})},_rowspan:function(t){return t=t||[],t.length+1},_supportsMilo:funct
ion(t,e){return!e&&t&&this._tag(t,"allow_milo")},_toggleDetails:function(){this.
set("_request_detail",!this._request_detail)},_tag:function(t,e){if(t&&t.tagMap)
return t.tagMap[e]},_wasPickedUp:function(t){return t&&t.state!==this.PENDING&&t
.state!==this.CANCELED&&t.state!=this.EXPIRED},_wasNotPickedUp:function(t){retur
n t&&!this._wasPickedUp(t)}})}()</script> </dom-module> </div></body></html> |
| OLD | NEW |