diff --git a/build/angular2-file-upload-demo.js b/build/angular2-file-upload-demo.js
index f5ffb04..262fe28 100644
--- a/build/angular2-file-upload-demo.js
+++ b/build/angular2-file-upload-demo.js
@@ -1,10 +1,12866 @@
-webpackJsonp([1],[function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=n(172),i=n(3),r=n(7),p=n(243),c=n(229),l=function(){function t(){}return t=s([i.Component({selector:"app"}),i.View({template:'\n \n\n
\n \n\n \n
\n\n \n ',directives:[r.NgClass,p.FileUploadSection]}),a("design:paramtypes",[])],t)}();e.Demo=l,o.bootstrap(l)},,,,,,,,function(t,e,n){"use strict";function s(t){a.isBlank(e.DOM)&&(e.DOM=t)}var a=n(1);e.DOM=null,e.setRootDomAdapter=s;var o=function(){function t(){}return t}();e.DomAdapter=o},,,,,,,function(t,e,n){"use strict";function s(t){return d.StringWrapper.replaceAllMapped(t,f,function(t){return"-"+t[1].toLowerCase()})}function a(t){return d.StringWrapper.replaceAllMapped(t,m,function(t){return t[1].toUpperCase()})}function o(t){return d.isBlank(t)?null:"'"+r(t,g)+"'"}function i(t){return d.isBlank(t)?null:'"'+r(t,y)+'"'}function r(t,e){return d.StringWrapper.replaceAllMapped(t,e,function(t){return"$"==t[0]?d.IS_DART?"\\$":"$":"\n"==t[0]?"\\n":"\r"==t[0]?"\\r":"\\"+t[0]})}function p(t){return d.IS_DART?"const "+t+" = ":"var "+t+" = exports['"+t+"'] = "}function c(t){return d.IS_DART?"const "+t:"new "+t}function l(t,e,n){return void 0===n&&(n=""),d.IS_DART?n+"("+t.join(",")+") => "+e:"function "+n+"("+t.join(",")+") { return "+e+"; }"}function u(t){return d.IS_DART?"'${"+t+"}'":t}function h(t,e){var n=d.StringWrapper.split(t.trim(),/\s*:\s*/g);return n.length>1?n:e}var d=n(1),f=/([A-Z])/g,m=/-([a-z])/g,g=/'|\\|\n|\r|\$/g,y=/"|\\|\n|\r|\$/g;e.MODULE_SUFFIX=d.IS_DART?".dart":".js",e.camelCaseToDashCase=s,e.dashCaseToCamelCase=a,e.escapeSingleQuoteString=o,e.escapeDoubleQuoteString=i,e.codeGenExportVariable=p,e.codeGenConstConstructorCall=c,e.codeGenValueFn=l,e.codeGenToString=u,e.splitAtColon=h},,,,,,,,,function(t,e,n){"use strict";var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=this&&this.__param||function(t,e){return function(n,s){e(n,s,t)}},i=n(1),r=n(4),p=n(5),c=n(57),l=n(2);e.EVENT_MANAGER_PLUGINS=i.CONST_EXPR(new p.OpaqueToken("EventManagerPlugins"));var u=function(){function t(t,e){var n=this;this._zone=e,t.forEach(function(t){return t.manager=n}),this._plugins=l.ListWrapper.reversed(t)}return t.prototype.addEventListener=function(t,e,n){var s=this._findPluginFor(e);s.addEventListener(t,e,n)},t.prototype.addGlobalEventListener=function(t,e,n){var s=this._findPluginFor(e);return s.addGlobalEventListener(t,e,n)},t.prototype.getZone=function(){return this._zone},t.prototype._findPluginFor=function(t){for(var e=this._plugins,n=0;n",harr:"↔",hArr:"⇔",hearts:"♥",hellip:"…",Iacute:"Í",iacute:"í",Icirc:"Î",icirc:"î",iexcl:"¡",Igrave:"Ì",igrave:"ì",image:"ℑ",infin:"∞","int":"∫",Iota:"Ι",iota:"ι",iquest:"¿",isin:"∈",Iuml:"Ï",iuml:"ï",Kappa:"Κ",kappa:"κ",Lambda:"Λ",lambda:"λ",lang:"⟨",laquo:"«",larr:"←",lArr:"⇐",lceil:"⌈",ldquo:"“",le:"≤",lfloor:"⌊",lowast:"∗",loz:"◊",lrm:"",lsaquo:"‹",lsquo:"‘",lt:"<",macr:"¯",mdash:"—",micro:"µ",middot:"·",minus:"−",Mu:"Μ",mu:"μ",nabla:"∇",nbsp:" ",ndash:"–",ne:"≠",ni:"∋",not:"¬",notin:"∉",nsub:"⊄",Ntilde:"Ñ",ntilde:"ñ",Nu:"Ν",nu:"ν",Oacute:"Ó",oacute:"ó",Ocirc:"Ô",ocirc:"ô",OElig:"Œ",oelig:"œ",Ograve:"Ò",ograve:"ò",oline:"‾",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",oplus:"⊕",or:"∨",ordf:"ª",ordm:"º",Oslash:"Ø",oslash:"ø",Otilde:"Õ",otilde:"õ",otimes:"⊗",Ouml:"Ö",ouml:"ö",para:"¶",permil:"‰",perp:"⊥",Phi:"Φ",phi:"φ",Pi:"Π",pi:"π",piv:"ϖ",plusmn:"±",pound:"£",prime:"′",Prime:"″",prod:"∏",prop:"∝",Psi:"Ψ",psi:"ψ",quot:'"',radic:"√",rang:"⟩",raquo:"»",rarr:"→",rArr:"⇒",rceil:"⌉",rdquo:"”",real:"ℜ",reg:"®",rfloor:"⌋",Rho:"Ρ",rho:"ρ",rlm:"",rsaquo:"›",rsquo:"’",sbquo:"‚",Scaron:"Š",scaron:"š",sdot:"⋅",sect:"§",shy:"",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sim:"∼",spades:"♠",sub:"⊂",sube:"⊆",sum:"∑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supe:"⊇",szlig:"ß",Tau:"Τ",tau:"τ",there4:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thinsp:" ",THORN:"Þ",thorn:"þ",tilde:"˜",times:"×",trade:"™",Uacute:"Ú",uacute:"ú",uarr:"↑",uArr:"⇑",Ucirc:"Û",ucirc:"û",Ugrave:"Ù",ugrave:"ù",uml:"¨",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",Uuml:"Ü",uuml:"ü",weierp:"℘",Xi:"Ξ",xi:"ξ",Yacute:"Ý",yacute:"ý",yen:"¥",yuml:"ÿ",Yuml:"Ÿ",Zeta:"Ζ",zeta:"ζ",zwj:"",zwnj:""}),function(t){t[t.RAW_TEXT=0]="RAW_TEXT",t[t.ESCAPABLE_RAW_TEXT=1]="ESCAPABLE_RAW_TEXT",t[t.PARSABLE_DATA=2]="PARSABLE_DATA"}(e.HtmlTagContentType||(e.HtmlTagContentType={}));var r=e.HtmlTagContentType,p=function(){function t(t){var e=this,n=void 0===t?{}:t,s=n.closedByChildren,a=n.requiredParents,o=n.implicitNamespacePrefix,p=n.contentType,c=n.closedByParent,l=n.isVoid,u=n.ignoreFirstLf;this.closedByChildren={},this.closedByParent=!1,i.isPresent(s)&&s.length>0&&s.forEach(function(t){return e.closedByChildren[t]=!0}),this.isVoid=i.normalizeBool(l),this.closedByParent=i.normalizeBool(c)||this.isVoid,i.isPresent(a)&&a.length>0&&(this.requiredParents={},this.parentToAdd=a[0],a.forEach(function(t){return e.requiredParents[t]=!0})),this.implicitNamespacePrefix=o,this.contentType=i.isPresent(p)?p:r.PARSABLE_DATA,this.ignoreFirstLf=i.normalizeBool(u)}return t.prototype.requireExtraParent=function(t){if(i.isBlank(this.requiredParents))return!1;if(i.isBlank(t))return!0;var e=t.toLowerCase();return 1!=this.requiredParents[e]&&"template"!=e},t.prototype.isClosedByChild=function(t){return this.isVoid||i.normalizeBool(this.closedByChildren[t.toLowerCase()])},t}();e.HtmlTagDefinition=p;var c={area:new p({isVoid:!0}),embed:new p({isVoid:!0}),link:new p({isVoid:!0}),img:new p({isVoid:!0}),input:new p({isVoid:!0}),param:new p({isVoid:!0}),hr:new p({isVoid:!0}),br:new p({isVoid:!0}),source:new p({isVoid:!0}),track:new p({isVoid:!0}),wbr:new p({isVoid:!0}),p:new p({closedByChildren:["address","article","aside","blockquote","div","dl","fieldset","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","nav","ol","p","pre","section","table","ul"],closedByParent:!0}),thead:new p({closedByChildren:["tbody","tfoot"]}),tbody:new p({closedByChildren:["tbody","tfoot"],closedByParent:!0}),tfoot:new p({closedByChildren:["tbody"],closedByParent:!0}),tr:new p({closedByChildren:["tr"],requiredParents:["tbody","tfoot","thead"],closedByParent:!0}),td:new p({closedByChildren:["td","th"],closedByParent:!0}),th:new p({closedByChildren:["td","th"],closedByParent:!0}),col:new p({requiredParents:["colgroup"],isVoid:!0}),svg:new p({implicitNamespacePrefix:"svg"}),math:new p({implicitNamespacePrefix:"math"}),li:new p({closedByChildren:["li"],closedByParent:!0}),dt:new p({closedByChildren:["dt","dd"]}),dd:new p({closedByChildren:["dt","dd"],closedByParent:!0}),rb:new p({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rt:new p({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rtc:new p({closedByChildren:["rb","rtc","rp"],closedByParent:!0}),rp:new p({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),optgroup:new p({closedByChildren:["optgroup"],closedByParent:!0}),option:new p({closedByChildren:["option","optgroup"],closedByParent:!0}),pre:new p({ignoreFirstLf:!0}),listing:new p({ignoreFirstLf:!0}),style:new p({contentType:r.RAW_TEXT}),script:new p({contentType:r.RAW_TEXT}),title:new p({contentType:r.ESCAPABLE_RAW_TEXT}),textarea:new p({contentType:r.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})},l=new p;e.getHtmlTagDefinition=s;var u=/^@([^:]+):(.+)/g;e.splitNsName=a,e.getNsPrefix=o},function(t,e,n){"use strict";function s(t){return"#MODULE["+t+"]"}var a=n(1),o=/#MODULE\[([^\]]*)\]/g;e.moduleRef=s;var i=function(){function t(t,e){this.moduleUrl=t,this.sourceWithModuleRefs=e}return t.prototype.getSourceWithImports=function(){var t=this,e={},n=[],s=a.StringWrapper.replaceAllMapped(this.sourceWithModuleRefs,o,function(s){var o=s[1],i=e[o];return a.isBlank(i)&&(o==t.moduleUrl?i="":(i="import"+n.length,n.push([o,i])),e[o]=i),i.length>0?i+".":""});return new c(s,n)},t}();e.SourceModule=i;var r=function(){function t(t,e){this.declarations=t,this.expression=e}return t}();e.SourceExpression=r;var p=function(){function t(t,e){this.declarations=t,this.expressions=e}return t}();e.SourceExpressions=p;var c=function(){function t(t,e){this.source=t,this.imports=e}return t}();e.SourceWithImports=c},function(t,e,n){"use strict";function s(){return new y}function a(t){var e=i(t);return e&&e[v.Scheme]||""}function o(t,e,n,s,a,o,i){var r=[];return f.isPresent(t)&&r.push(t+":"),f.isPresent(n)&&(r.push("//"),f.isPresent(e)&&r.push(e+"@"),r.push(n),f.isPresent(s)&&r.push(":"+s)),f.isPresent(a)&&r.push(a),f.isPresent(o)&&r.push("?"+o),f.isPresent(i)&&r.push("#"+i),r.join("")}function i(t){return f.RegExpWrapper.firstMatch(k,t)}function r(t){if("/"==t)return"/";for(var e="/"==t[0]?"/":"",n="/"===t[t.length-1]?"/":"",s=t.split("/"),a=[],o=0,i=0;i0?a.pop():o++;break;default:a.push(r)}}if(""==e){for(;o-- >0;)a.unshift("..");0===a.length&&a.push(".")}return e+a.join("/")+n}function p(t){var e=t[v.Path];return e=f.isBlank(e)?"":r(e),t[v.Path]=e,o(t[v.Scheme],t[v.UserInfo],t[v.Domain],t[v.Port],e,t[v.QueryData],t[v.Fragment])}function c(t,e){var n=i(encodeURI(e)),s=i(t);if(f.isPresent(n[v.Scheme]))return p(n);n[v.Scheme]=s[v.Scheme];for(var a=v.Scheme;a<=v.Port;a++)f.isBlank(n[a])&&(n[a]=s[a]);if("/"==n[v.Path][0])return p(n);var o=s[v.Path];f.isBlank(o)&&(o="/");var r=o.lastIndexOf("/");return o=o.substring(0,r+1)+n[v.Path],n[v.Path]=o,p(n)}var l=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},u=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},h=this&&this.__param||function(t,e){return function(n,s){e(n,s,t)}},d=n(5),f=n(1),m=n(29),g=n(5);e.createWithoutPackagePrefix=s,e.DEFAULT_PACKAGE_URL_PROVIDER=new g.Provider(m.PACKAGE_ROOT_URL,{useValue:"/"});var y=function(){function t(t){void 0===t&&(t=null),f.isPresent(t)&&(this._packagePrefix=f.StringWrapper.stripRight(t,"/")+"/")}return t.prototype.resolve=function(t,e){var n=e;return f.isPresent(t)&&t.length>0&&(n=c(t,n)),f.isPresent(this._packagePrefix)&&"package"==a(n)&&(n=n.replace("package:",this._packagePrefix)),n},t=l([d.Injectable(),h(0,d.Inject(m.PACKAGE_ROOT_URL)),u("design:paramtypes",[String])],t)}();e.UrlResolver=y,e.getUrlScheme=a;var v,k=f.RegExpWrapper.create("^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([\\w\\d\\-\\u0100-\\uffff.%]*)(?::([0-9]+))?)?([^?#]+)?(?:\\?([^#]*))?(?:#(.*))?$");!function(t){t[t.Scheme=1]="Scheme",t[t.UserInfo=2]="UserInfo",t[t.Domain=3]="Domain",t[t.Port=4]="Port",t[t.Path=5]="Path",t[t.QueryData=6]="QueryData",t[t.Fragment=7]="Fragment"}(v||(v={}))},,,,,,,,,function(t,e,n){"use strict";var s=n(5),a=n(1);e.DOCUMENT=a.CONST_EXPR(new s.OpaqueToken("DocumentToken"))},,function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=n(3),i=function(){function t(t){this.element=t,this.fileOver=new o.EventEmitter}return t.prototype.getOptions=function(){return this.uploader.options},t.prototype.getFilters=function(){},t.prototype.onDrop=function(t){var e=this._getTransfer(t);if(e){var n=this.getOptions(),s=this.getFilters();this._preventAndStop(t),this.uploader.addToQueue(e.files,n,s),this.fileOver.next(!1)}},t.prototype.onDragOver=function(t){var e=this._getTransfer(t);this._haveFiles(e.types)&&(e.dropEffect="copy",this._preventAndStop(t),this.fileOver.next(!0))},t.prototype.onDragLeave=function(t){t.currentTarget!==this.element[0]&&(this._preventAndStop(t),this.fileOver.next(!1))},t.prototype._getTransfer=function(t){return t.dataTransfer?t.dataTransfer:t.originalEvent.dataTransfer},t.prototype._preventAndStop=function(t){t.preventDefault(),t.stopPropagation()},t.prototype._haveFiles=function(t){return t?t.indexOf?-1!==t.indexOf("Files"):t.contains?t.contains("Files"):!1:!1},t.prototype._addOverClass=function(t){t.addOverClass()},t.prototype._removeOverClass=function(t){t.removeOverClass()},t=s([o.Directive({selector:"[ng2-file-drop]",properties:["uploader"],events:["fileOver"],host:{"(drop)":"onDrop($event)","(dragover)":"onDragOver($event)","(dragleave)":"onDragLeave($event)"}}),a("design:paramtypes",[o.ElementRef])],t)}();e.FileDrop=i},function(t,e){function n(t){return!(!t||!(t.nodeName||t.prop&&t.attr&&t.find))}var s=function(){function t(t){var e=n(t),s=e?t.value:t,a="string"==typeof s?"FakePath":"Object",o="_createFrom"+a;this[o](s)}return t.prototype._createFromFakePath=function(t){this.lastModifiedDate=null,this.size=null,this.type="like/"+t.slice(t.lastIndexOf(".")+1).toLowerCase(),this.name=t.slice(t.lastIndexOf("/")+t.lastIndexOf("\\")+2)},t.prototype._createFromObject=function(t){this.size=t.size,this.type=t.type,this.name=t.name},t}();e.FileLikeObject=s},function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=n(3),i=function(){function t(t){this.element=t}return t.prototype.getOptions=function(){return this.uploader.options},t.prototype.getFilters=function(){},t.prototype.isEmptyAfterSelection=function(){return!!this.element.nativeElement.attributes.multiple},t.prototype.onChange=function(){var t=this.element.nativeElement.files,e=this.getOptions(),n=this.getFilters();this.uploader.addToQueue(t,e,n),this.isEmptyAfterSelection()},t=s([o.Directive({selector:"[ng2-file-select]",properties:["uploader"],host:{"(change)":"onChange()"}}),a("design:paramtypes",[o.ElementRef])],t)}();e.FileSelect=i,e.fileUpload=[i]},,,,,function(t,e,n){"use strict";function s(t,e){var n=p.CssSelector.parse(e)[0].getMatchingElementTemplate();return f.create({type:new h({runtime:Object,name:"Host"+t.name,moduleUrl:t.moduleUrl,isHost:!0}),template:new d({template:n,templateUrl:"",styles:[],styleUrls:[],ngContentSelectors:[]}),changeDetection:i.ChangeDetectionStrategy.Default,inputs:[],outputs:[],host:{},lifecycleHooks:[],isComponent:!0,dynamicLoadable:!1,selector:"*"})}var a=n(1),o=n(2),i=n(10),r=n(17),p=n(122),c=n(15),l=n(33),u=/^(?:(?:\[([^\]]+)\])|(?:\(([^\)]+)\)))$/g,h=function(){function t(t){var e=void 0===t?{}:t,n=e.runtime,s=e.name,o=e.moduleUrl,i=e.isHost;this.runtime=n,this.name=s,this.moduleUrl=o,this.isHost=a.normalizeBool(i)}return t.fromJson=function(e){return new t({name:e.name,moduleUrl:e.moduleUrl,isHost:e.isHost})},t.prototype.toJson=function(){return{name:this.name,moduleUrl:this.moduleUrl,isHost:this.isHost}},t}();e.CompileTypeMetadata=h;var d=function(){function t(t){var e=void 0===t?{}:t,n=e.encapsulation,s=e.template,o=e.templateUrl,i=e.styles,p=e.styleUrls,c=e.ngContentSelectors;this.encapsulation=a.isPresent(n)?n:r.ViewEncapsulation.Emulated,this.template=s,this.templateUrl=o,this.styles=a.isPresent(i)?i:[],this.styleUrls=a.isPresent(p)?p:[],this.ngContentSelectors=a.isPresent(c)?c:[]}return t.fromJson=function(e){return new t({encapsulation:a.isPresent(e.encapsulation)?r.VIEW_ENCAPSULATION_VALUES[e.encapsulation]:e.encapsulation,template:e.template,templateUrl:e.templateUrl,styles:e.styles,styleUrls:e.styleUrls,ngContentSelectors:e.ngContentSelectors})},t.prototype.toJson=function(){return{encapsulation:a.isPresent(this.encapsulation)?a.serializeEnum(this.encapsulation):this.encapsulation,template:this.template,templateUrl:this.templateUrl,styles:this.styles,styleUrls:this.styleUrls,ngContentSelectors:this.ngContentSelectors}},t}();e.CompileTemplateMetadata=d;var f=function(){function t(t){var e=void 0===t?{}:t,n=e.type,s=e.isComponent,a=e.dynamicLoadable,o=e.selector,i=e.exportAs,r=e.changeDetection,p=e.inputs,c=e.outputs,l=e.hostListeners,u=e.hostProperties,h=e.hostAttributes,d=e.lifecycleHooks,f=e.template;this.type=n,this.isComponent=s,this.dynamicLoadable=a,this.selector=o,this.exportAs=i,this.changeDetection=r,this.inputs=p,this.outputs=c,this.hostListeners=l,this.hostProperties=u,this.hostAttributes=h,this.lifecycleHooks=d,this.template=f}return t.create=function(e){var n=void 0===e?{}:e,s=n.type,i=n.isComponent,r=n.dynamicLoadable,p=n.selector,l=n.exportAs,h=n.changeDetection,d=n.inputs,f=n.outputs,m=n.host,g=n.lifecycleHooks,y=n.template,v={},k={},_={};a.isPresent(m)&&o.StringMapWrapper.forEach(m,function(t,e){var n=a.RegExpWrapper.firstMatch(u,e);a.isBlank(n)?_[e]=t:a.isPresent(n[1])?k[n[1]]=t:a.isPresent(n[2])&&(v[n[2]]=t)});var b={};a.isPresent(d)&&d.forEach(function(t){var e=c.splitAtColon(t,[t,t]);b[e[0]]=e[1]});var E={};return a.isPresent(f)&&f.forEach(function(t){var e=c.splitAtColon(t,[t,t]);E[e[0]]=e[1]}),new t({type:s,isComponent:a.normalizeBool(i),dynamicLoadable:a.normalizeBool(r),selector:p,exportAs:l,changeDetection:h,inputs:b,outputs:E,hostListeners:v,hostProperties:k,hostAttributes:_,lifecycleHooks:a.isPresent(g)?g:[],template:y})},t.fromJson=function(e){return new t({isComponent:e.isComponent,dynamicLoadable:e.dynamicLoadable,selector:e.selector,exportAs:e.exportAs,type:a.isPresent(e.type)?h.fromJson(e.type):e.type,changeDetection:a.isPresent(e.changeDetection)?i.CHANGE_DETECTION_STRATEGY_VALUES[e.changeDetection]:e.changeDetection,inputs:e.inputs,outputs:e.outputs,hostListeners:e.hostListeners,hostProperties:e.hostProperties,hostAttributes:e.hostAttributes,lifecycleHooks:e.lifecycleHooks.map(function(t){return l.LIFECYCLE_HOOKS_VALUES[t]}),template:a.isPresent(e.template)?d.fromJson(e.template):e.template})},t.prototype.toJson=function(){return{isComponent:this.isComponent,dynamicLoadable:this.dynamicLoadable,selector:this.selector,exportAs:this.exportAs,type:a.isPresent(this.type)?this.type.toJson():this.type,changeDetection:a.isPresent(this.changeDetection)?a.serializeEnum(this.changeDetection):this.changeDetection,inputs:this.inputs,outputs:this.outputs,hostListeners:this.hostListeners,hostProperties:this.hostProperties,hostAttributes:this.hostAttributes,lifecycleHooks:this.lifecycleHooks.map(function(t){return a.serializeEnum(t)}),template:a.isPresent(this.template)?this.template.toJson():this.template}},t}();e.CompileDirectiveMetadata=f,e.createHostComponentMeta=s},function(t,e,n){"use strict";function s(t,e,n){void 0===n&&(n=null);var s=[];return e.forEach(function(e){var o=e.visit(t,n);a.isPresent(o)&&s.push(o)}),s}var a=n(1),o=function(){function t(t,e,n){this.value=t,this.ngContentIndex=e,this.sourceSpan=n}return t.prototype.visit=function(t,e){return t.visitText(this,e)},t}();e.TextAst=o;var i=function(){function t(t,e,n){this.value=t,this.ngContentIndex=e,this.sourceSpan=n}return t.prototype.visit=function(t,e){return t.visitBoundText(this,e)},t}();e.BoundTextAst=i;var r=function(){function t(t,e,n){this.name=t,this.value=e,this.sourceSpan=n}return t.prototype.visit=function(t,e){return t.visitAttr(this,e)},t}();e.AttrAst=r;var p=function(){function t(t,e,n,s,a){this.name=t,this.type=e,this.value=n,this.unit=s,this.sourceSpan=a}return t.prototype.visit=function(t,e){return t.visitElementProperty(this,e)},t}();e.BoundElementPropertyAst=p;var c=function(){function t(t,e,n,s){this.name=t,this.target=e,this.handler=n,this.sourceSpan=s}return t.prototype.visit=function(t,e){return t.visitEvent(this,e)},Object.defineProperty(t.prototype,"fullName",{get:function(){return a.isPresent(this.target)?this.target+":"+this.name:this.name},enumerable:!0,configurable:!0}),t}();e.BoundEventAst=c;var l=function(){function t(t,e,n){this.name=t,this.value=e,this.sourceSpan=n}return t.prototype.visit=function(t,e){return t.visitVariable(this,e)},t}();e.VariableAst=l;var u=function(){function t(t,e,n,s,a,o,i,r,p){this.name=t,this.attrs=e,this.inputs=n,this.outputs=s,this.exportAsVars=a,this.directives=o,this.children=i,this.ngContentIndex=r,this.sourceSpan=p}return t.prototype.visit=function(t,e){return t.visitElement(this,e)},t.prototype.isBound=function(){return this.inputs.length>0||this.outputs.length>0||this.exportAsVars.length>0||this.directives.length>0},t.prototype.getComponent=function(){return this.directives.length>0&&this.directives[0].directive.isComponent?this.directives[0].directive:null},t}();e.ElementAst=u;var h=function(){function t(t,e,n,s,a,o,i){this.attrs=t,this.outputs=e,this.vars=n,this.directives=s,this.children=a,this.ngContentIndex=o,this.sourceSpan=i}return t.prototype.visit=function(t,e){return t.visitEmbeddedTemplate(this,e)},t}();e.EmbeddedTemplateAst=h;var d=function(){function t(t,e,n,s){this.directiveName=t,this.templateName=e,this.value=n,this.sourceSpan=s}return t.prototype.visit=function(t,e){return t.visitDirectiveProperty(this,e)},t}();e.BoundDirectivePropertyAst=d;var f=function(){function t(t,e,n,s,a,o){this.directive=t,this.inputs=e,this.hostProperties=n,this.hostEvents=s,this.exportAsVars=a,this.sourceSpan=o}return t.prototype.visit=function(t,e){return t.visitDirective(this,e)},t}();e.DirectiveAst=f;var m=function(){function t(t,e,n){this.index=t,this.ngContentIndex=e,this.sourceSpan=n}return t.prototype.visit=function(t,e){return t.visitNgContent(this,e)},t}();e.NgContentAst=m,function(t){t[t.Property=0]="Property",t[t.Attribute=1]="Attribute",t[t.Class=2]="Class",t[t.Style=3]="Style"}(e.PropertyBindingType||(e.PropertyBindingType={})),e.PropertyBindingType,e.templateVisitAll=s},function(t,e){"use strict";var n=function(){function t(){}return t.prototype.get=function(t){return null},t}();e.XHR=n},,,,,,,,,,,function(t,e,n){"use strict";var s=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var s in e)e.hasOwnProperty(s)&&(t[s]=e[s]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},a=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},o=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},i=this&&this.__param||function(t,e){return function(n,s){e(n,s,t)}},r=n(8),p=n(5),c=n(2),l=n(37),u=function(){function t(){this._styles=[],this._stylesSet=new Set}return t.prototype.addStyles=function(t){var e=this,n=[];t.forEach(function(t){c.SetWrapper.has(e._stylesSet,t)||(e._stylesSet.add(t),e._styles.push(t),n.push(t))}),this.onStylesAdded(n)},t.prototype.onStylesAdded=function(t){},t.prototype.getAllStyles=function(){return this._styles},t=a([p.Injectable(),o("design:paramtypes",[])],t)}();e.SharedStylesHost=u;var h=function(t){function e(e){t.call(this),this._hostNodes=new Set,this._hostNodes.add(e.head)}return s(e,t),e.prototype._addStylesToHost=function(t,e){for(var n=0;no?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=n(3),i=n(170),r=function(){function t(t){this.el=t,this.onToggle=new o.EventEmitter,this.addClass=!0}return Object.defineProperty(t.prototype,"isOpen",{get:function(){return this._isOpen},set:function(t){this._isOpen=!!t,this.dropdownAppendToBody&&this.menuEl,this.isOpen?(this.dropdownMenuTemplateUrl,this.focusToggleElement(),i.dropdownService.open(this)):(this.dropdownMenuTemplateUrl,i.dropdownService.close(this),this.selectedOption=null),this.onToggle.emit(this.isOpen)},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.autoClose=this.autoClose||i.ALWAYS,this.keyboardNav="undefined"!=typeof this.keyboardNav,this.dropdownAppendToBody="undefined"!=typeof this.dropdownAppendToBody,this.isOpen},t.prototype.ngOnDestroy=function(){this.dropdownAppendToBody&&this.menuEl&&this.menuEl.nativeElement.remove()},Object.defineProperty(t.prototype,"dropDownMenu",{set:function(t){this.menuEl=t.el,t.templateUrl&&(this.dropdownMenuTemplateUrl=t.templateUrl),this.dropdownAppendToBody&&window.document.body.appendChild(this.menuEl.nativeElement)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dropDownToggle",{set:function(t){this.toggleEl=t.el},enumerable:!0,configurable:!0}),t.prototype.toggle=function(t){return this.isOpen=arguments.length?!!t:!this.isOpen},t.prototype.focusDropdownEntry=function(t){var e=this.menuEl?this.menuEl.nativeElement:this.el.nativeElement.getElementsByTagName("ul")[0];if(e){var n=e.getElementsByTagName("a");if(n&&n.length){switch(t){case 40:if("number"!=typeof this.selectedOption){this.selectedOption=0;break}if(this.selectedOption===n.length-1)break;this.selectedOption++;break;case 38:if("number"!=typeof this.selectedOption)return;if(0===this.selectedOption)break;this.selectedOption--}n[this.selectedOption].focus()}}},t.prototype.focusToggleElement=function(){this.toggleEl&&this.toggleEl.nativeElement.focus()},s([o.HostBinding("class.open"),o.Input(),a("design:type",Boolean)],t.prototype,"isOpen",null),s([o.Input(),a("design:type",String)],t.prototype,"autoClose",void 0),s([o.Input(),a("design:type",Boolean)],t.prototype,"keyboardNav",void 0),s([o.Input(),a("design:type",Boolean)],t.prototype,"dropdownAppendToBody",void 0),s([o.Output(),a("design:type",o.EventEmitter)],t.prototype,"onToggle",void 0),s([o.HostBinding("class.dropdown"),a("design:type",Object)],t.prototype,"addClass",void 0),t=s([o.Directive({selector:"[dropdown]"}),a("design:paramtypes",[o.ElementRef])],t)}();e.Dropdown=r},,,,,,,,,,,function(t,e,n){"use strict";function s(t,e,n){return y.templateVisitAll(t,e,n),n}function a(t){for(var e=new Set,n=[],s=0;so?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},d=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0;
-},f=n(1),m=n(2),g=n(52),y=n(47),v=n(27),k=n(15),_=n(5);e.TEMPLATE_COMMANDS_MODULE_REF=v.moduleRef("package:angular2/src/core/linker/template_commands"+k.MODULE_SUFFIX);var b="$implicit",E="class",C="style",T=function(){function t(){}return t.prototype.compileComponentRuntime=function(t,e,n,s){var a=new P(new w(t,s,n),0);return y.templateVisitAll(a,e),a.result},t.prototype.compileComponentCodeGen=function(t,e,n,s){var a=new P(new S(t,s,n),0);return y.templateVisitAll(a,e),new v.SourceExpression([],c(a.result))},t=h([_.Injectable(),d("design:paramtypes",[])],t)}();e.CommandCompiler=T;var w=function(){function t(t,e,n){this.component=t,this.componentTemplateFactory=e,this.changeDetectorFactories=n}return t.prototype._mapDirectives=function(t){return t.map(function(t){return t.type.runtime})},t.prototype.createText=function(t,e,n){return new g.TextCmd(t,e,n)},t.prototype.createNgContent=function(t,e){return new g.NgContentCmd(t,e)},t.prototype.createBeginElement=function(t,e,n,s,a,o,i){return new g.BeginElementCmd(t,e,n,s,this._mapDirectives(a),o,i)},t.prototype.createEndElement=function(){return new g.EndElementCmd},t.prototype.createBeginComponent=function(t,e,n,s,a,o,i){var r=this.componentTemplateFactory(a[0]);return new g.BeginComponentCmd(t,e,n,s,this._mapDirectives(a),o,i,r)},t.prototype.createEndComponent=function(){return new g.EndComponentCmd},t.prototype.createEmbeddedTemplate=function(t,e,n,s,a,o,i){return new g.EmbeddedTemplateCmd(e,n,this._mapDirectives(s),a,o,this.changeDetectorFactories[t],i)},t}(),S=function(){function t(t,e,n){this.component=t,this.componentTemplateFactory=e,this.changeDetectorFactoryExpressions=n}return t.prototype.createText=function(t,n,s){return new O(k.codeGenConstConstructorCall(e.TEMPLATE_COMMANDS_MODULE_REF+"TextCmd")+"("+k.escapeSingleQuoteString(t)+", "+n+", "+s+")")},t.prototype.createNgContent=function(t,n){return new O(k.codeGenConstConstructorCall(e.TEMPLATE_COMMANDS_MODULE_REF+"NgContentCmd")+"("+t+", "+n+")")},t.prototype.createBeginElement=function(t,n,s,a,o,i,r){var p=c(n);return new O(k.codeGenConstConstructorCall(e.TEMPLATE_COMMANDS_MODULE_REF+"BeginElementCmd")+"("+k.escapeSingleQuoteString(t)+", "+p+", "+(c(s)+", "+c(a)+", "+l(o)+", "+i+", "+r+")"))},t.prototype.createEndElement=function(){return new O(k.codeGenConstConstructorCall(e.TEMPLATE_COMMANDS_MODULE_REF+"EndElementCmd")+"()")},t.prototype.createBeginComponent=function(t,n,s,a,o,i,r){var p=c(n);return new O(k.codeGenConstConstructorCall(e.TEMPLATE_COMMANDS_MODULE_REF+"BeginComponentCmd")+"("+k.escapeSingleQuoteString(t)+", "+p+", "+(c(s)+", "+c(a)+", "+l(o)+", "+u(i)+", "+r+", "+this.componentTemplateFactory(o[0])+")"))},t.prototype.createEndComponent=function(){return new O(k.codeGenConstConstructorCall(e.TEMPLATE_COMMANDS_MODULE_REF+"EndComponentCmd")+"()")},t.prototype.createEmbeddedTemplate=function(t,n,s,a,o,i,r){return new O(k.codeGenConstConstructorCall(e.TEMPLATE_COMMANDS_MODULE_REF+"EmbeddedTemplateCmd")+"("+c(n)+", "+c(s)+", "+(l(a)+", "+o+", "+i+", "+this.changeDetectorFactoryExpressions[t]+", "+c(r)+")"))},t}(),P=function(){function t(t,e){this.commandFactory=t,this.embeddedTemplateIndex=e,this.result=[],this.transitiveNgContentCount=0}return t.prototype._readAttrNameAndValues=function(t,e){var n=o(s(this,e,[]));return t.forEach(function(t){m.StringMapWrapper.forEach(t.hostAttributes,function(t,e){var s=n[e];n[e]=f.isPresent(s)?r(e,s,t):t})}),i(n)},t.prototype.visitNgContent=function(t,e){return this.transitiveNgContentCount++,this.result.push(this.commandFactory.createNgContent(t.index,t.ngContentIndex)),null},t.prototype.visitEmbeddedTemplate=function(e,n){var s=this;this.embeddedTemplateIndex++;var a=new t(this.commandFactory,this.embeddedTemplateIndex);y.templateVisitAll(a,e.children);var o=a.transitiveNgContentCount>0,i=[];e.vars.forEach(function(t){i.push(t.name),i.push(t.value.length>0?t.value:b)});var r=[];return m.ListWrapper.forEachWithIndex(e.directives,function(t,e){t.visit(s,new R(e,[],[],r))}),this.result.push(this.commandFactory.createEmbeddedTemplate(this.embeddedTemplateIndex,this._readAttrNameAndValues(r,e.attrs),i,r,o,e.ngContentIndex,a.result)),this.transitiveNgContentCount+=a.transitiveNgContentCount,this.embeddedTemplateIndex=a.embeddedTemplateIndex,null},t.prototype.visitElement=function(t,e){var n=this,o=t.getComponent(),i=s(this,t.outputs,[]),r=[];f.isBlank(o)&&t.exportAsVars.forEach(function(t){r.push(t.name),r.push(null)});var p=[];m.ListWrapper.forEachWithIndex(t.directives,function(t,e){t.visit(n,new R(e,i,r,p))}),i=a(i);var c=this._readAttrNameAndValues(p,t.attrs);return f.isPresent(o)?(this.result.push(this.commandFactory.createBeginComponent(t.name,c,i,r,p,o.template.encapsulation,t.ngContentIndex)),y.templateVisitAll(this,t.children),this.result.push(this.commandFactory.createEndComponent())):(this.result.push(this.commandFactory.createBeginElement(t.name,c,i,r,p,t.isBound(),t.ngContentIndex)),y.templateVisitAll(this,t.children),this.result.push(this.commandFactory.createEndElement())),null},t.prototype.visitVariable=function(t,e){return null},t.prototype.visitAttr=function(t,e){return e.push(t.name),e.push(t.value),null},t.prototype.visitBoundText=function(t,e){return this.result.push(this.commandFactory.createText(null,!0,t.ngContentIndex)),null},t.prototype.visitText=function(t,e){return this.result.push(this.commandFactory.createText(t.value,!1,t.ngContentIndex)),null},t.prototype.visitDirective=function(t,e){return e.targetDirectives.push(t.directive),y.templateVisitAll(this,t.hostEvents,e.eventTargetAndNames),t.exportAsVars.forEach(function(t){e.targetVariableNameAndValues.push(t.name),e.targetVariableNameAndValues.push(e.index)}),null},t.prototype.visitEvent=function(t,e){return e.push(t.target),e.push(t.name),null},t.prototype.visitDirectiveProperty=function(t,e){return null},t.prototype.visitElementProperty=function(t,e){return null},t}(),R=function(){function t(t,e,n,s){this.index=t,this.eventTargetAndNames=e,this.targetVariableNameAndValues=n,this.targetDirectives=s}return t}(),O=function(){function t(t){this.value=t}return t}()},function(t,e,n){"use strict";function s(t,e,n){void 0===n&&(n=null);var s=[];return e.forEach(function(e){var o=e.visit(t,n);a.isPresent(o)&&s.push(o)}),s}var a=n(1),o=function(){function t(t,e){this.value=t,this.sourceSpan=e}return t.prototype.visit=function(t,e){return t.visitText(this,e)},t}();e.HtmlTextAst=o;var i=function(){function t(t,e,n){this.name=t,this.value=e,this.sourceSpan=n}return t.prototype.visit=function(t,e){return t.visitAttr(this,e)},t}();e.HtmlAttrAst=i;var r=function(){function t(t,e,n,s){this.name=t,this.attrs=e,this.children=n,this.sourceSpan=s}return t.prototype.visit=function(t,e){return t.visitElement(this,e)},t}();e.HtmlElementAst=r,e.htmlVisitAll=s},function(t,e,n){"use strict";function s(t,e){return p.isPresent(t)?"@"+t+":"+e:e}function a(t,e,n){return p.isBlank(t)&&(t=f.getHtmlTagDefinition(e).implicitNamespacePrefix,p.isBlank(t)&&p.isPresent(n)&&(t=f.getNsPrefix(n.name))),s(t,e)}var o=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var s in e)e.hasOwnProperty(s)&&(t[s]=e[s]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},i=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},p=n(1),c=n(2),l=n(72),u=n(5),h=n(186),d=n(74),f=n(26),m=function(t){function e(e,n,s){t.call(this,n,s),this.elementName=e}return o(e,t),e.create=function(t,n,s){return new e(t,n,s)},e}(d.ParseError);e.HtmlTreeError=m;var g=function(){function t(t,e){this.rootNodes=t,this.errors=e}return t}();e.HtmlParseTreeResult=g;var y=function(){function t(){}return t.prototype.parse=function(t,e){var n=h.tokenizeHtml(t,e),s=new v(n.tokens).build();return new g(s.rootNodes,n.errors.concat(s.errors))},t=i([u.Injectable(),r("design:paramtypes",[])],t)}();e.HtmlParser=y;var v=function(){function t(t){this.tokens=t,this.index=-1,this.rootNodes=[],this.errors=[],this.elementStack=[],this._advance()}return t.prototype.build=function(){for(;this.peek.type!==h.HtmlTokenType.EOF;)this.peek.type===h.HtmlTokenType.TAG_OPEN_START?this._consumeStartTag(this._advance()):this.peek.type===h.HtmlTokenType.TAG_CLOSE?this._consumeEndTag(this._advance()):this.peek.type===h.HtmlTokenType.CDATA_START?(this._closeVoidElement(),this._consumeCdata(this._advance())):this.peek.type===h.HtmlTokenType.COMMENT_START?(this._closeVoidElement(),this._consumeComment(this._advance())):this.peek.type===h.HtmlTokenType.TEXT||this.peek.type===h.HtmlTokenType.RAW_TEXT||this.peek.type===h.HtmlTokenType.ESCAPABLE_RAW_TEXT?(this._closeVoidElement(),this._consumeText(this._advance())):this._advance();return new g(this.rootNodes,this.errors)},t.prototype._advance=function(){var t=this.peek;return this.index0&&"\n"==e[0]){var n=this._getParentElement();p.isPresent(n)&&0==n.children.length&&f.getHtmlTagDefinition(n.name).ignoreFirstLf&&(e=e.substring(1))}e.length>0&&this._addToParent(new l.HtmlTextAst(e,t.sourceSpan))},t.prototype._closeVoidElement=function(){if(this.elementStack.length>0){var t=c.ListWrapper.last(this.elementStack);f.getHtmlTagDefinition(t.name).isVoid&&this.elementStack.pop()}},t.prototype._consumeStartTag=function(t){for(var e=t.parts[0],n=t.parts[1],s=[];this.peek.type===h.HtmlTokenType.ATTR_NAME;)s.push(this._consumeAttr(this._advance()));var o=a(e,n,this._getParentElement()),i=!1;this.peek.type===h.HtmlTokenType.TAG_OPEN_END_VOID?(this._advance(),i=!0,null!=f.getNsPrefix(o)||f.getHtmlTagDefinition(o).isVoid||this.errors.push(m.create(o,t.sourceSpan.start,'Only void and foreign elements can be self closed "'+t.parts[1]+'"'))):this.peek.type===h.HtmlTokenType.TAG_OPEN_END&&(this._advance(),i=!1);var r=this.peek.sourceSpan.start,p=new l.HtmlElementAst(o,s,[],new d.ParseSourceSpan(t.sourceSpan.start,r));this._pushElement(p),i&&this._popElement(o)},t.prototype._pushElement=function(t){if(this.elementStack.length>0){var e=c.ListWrapper.last(this.elementStack);f.getHtmlTagDefinition(e.name).isClosedByChild(t.name)&&this.elementStack.pop()}var n=f.getHtmlTagDefinition(t.name),e=this._getParentElement();if(n.requireExtraParent(p.isPresent(e)?e.name:null)){var s=new l.HtmlElementAst(n.parentToAdd,[],[t],t.sourceSpan);this._addToParent(s),this.elementStack.push(s),this.elementStack.push(t)}else this._addToParent(t),this.elementStack.push(t)},t.prototype._consumeEndTag=function(t){var e=a(t.parts[0],t.parts[1],this._getParentElement());f.getHtmlTagDefinition(e).isVoid?this.errors.push(m.create(e,t.sourceSpan.start,'Void elements do not have end tags "'+t.parts[1]+'"')):this._popElement(e)||this.errors.push(m.create(e,t.sourceSpan.start,'Unexpected closing tag "'+t.parts[1]+'"'))},t.prototype._popElement=function(t){for(var e=this.elementStack.length-1;e>=0;e--){var n=this.elementStack[e];if(n.name==t)return c.ListWrapper.splice(this.elementStack,e,this.elementStack.length-e),!0;if(!f.getHtmlTagDefinition(n.name).closedByParent)return!1}return!1},t.prototype._consumeAttr=function(t){var e=s(t.parts[0],t.parts[1]),n=t.sourceSpan.end,a="";if(this.peek.type===h.HtmlTokenType.ATTR_VALUE){var o=this._advance();a=o.parts[0],n=o.sourceSpan.end}return new l.HtmlAttrAst(e,a,new d.ParseSourceSpan(t.sourceSpan.start,n))},t.prototype._getParentElement=function(){return this.elementStack.length>0?c.ListWrapper.last(this.elementStack):null},t.prototype._addToParent=function(t){var e=this._getParentElement();p.isPresent(e)?e.children.push(t):this.rootNodes.push(t)},t}()},function(t,e){"use strict";var n=function(){function t(t,e,n,s){this.file=t,this.offset=e,this.line=n,this.col=s}return t.prototype.toString=function(){return this.file.url+"@"+this.line+":"+this.col},t}();e.ParseLocation=n;var s=function(){function t(t,e){this.content=t,this.url=e}return t}();e.ParseSourceFile=s;var a=function(){function t(t,e){this.location=t,this.msg=e}return t.prototype.toString=function(){var t=this.location.file.content,e=this.location.offset;e>t.length-1&&(e=t.length-1);for(var n=e,s=0,a=0;100>s&&e>0&&(e--,s++,"\n"!=t[e]||3!=++a););for(s=0,a=0;100>s&&n]"+t.substring(this.location.offset,n+1);return this.msg+' ("'+o+'"): '+this.location},t}();e.ParseError=a;var o=function(){function t(t,e){this.start=t,this.end=e}return t.prototype.toString=function(){return this.start.file.content.substring(this.start.offset,this.end.offset)},t}();e.ParseSourceSpan=o},function(t,e){"use strict";var n=function(){function t(){}return t.prototype.hasProperty=function(t,e){return!0},t.prototype.getMappedPropName=function(t){return t},t}();e.ElementSchemaRegistry=n},function(t,e,n){"use strict";function s(t){if(o.isBlank(t)||0===t.length||"/"==t[0])return!1;var e=o.RegExpWrapper.firstMatch(p,t);return o.isBlank(e)||"package"==e[1]||"asset"==e[1]}function a(t,e,n){var a=[],p=o.StringWrapper.replaceAllMapped(n,r,function(n){var i=o.isPresent(n[1])?n[1]:n[2];return s(i)?(a.push(t.resolve(e,i)),""):n[0]});return new i(p,a)}var o=n(1),i=function(){function t(t,e){this.style=t,this.styleUrls=e}return t}();e.StyleWithImports=i,e.isStyleUrlResolvable=s,e.extractStyleUrls=a;var r=/@import\s+(?:url\()?\s*(?:(?:['"]([^'"]*))|([^;\)\s]*))[^;]*;?/g,p=/^([a-zA-Z\-\+\.]+):/g},function(t,e,n){"use strict";function s(t){if(!t.isComponent)throw new d.BaseException("Could not compile '"+t.type.name+"' because it is not a component.")}function a(t){return t.name+"Template"}function o(t){return a(t)+"Getter"}function i(t){var e=t.substring(0,t.length-P.MODULE_SUFFIX.length);return e+".template"+P.MODULE_SUFFIX}function r(t,e){for(var n=0;n0;n||e.push(t)}),e}var l=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},u=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},h=n(1),d=n(4),f=n(2),m=n(6),g=n(52),y=n(46),v=n(5),k=n(27),_=n(119),b=n(123),E=n(71),C=n(78),T=n(124),w=n(121),S=n(71),P=n(15),R=function(){function t(t,e,n,s,a,o){this._runtimeMetadataResolver=t,this._templateNormalizer=e,this._templateParser=n,this._styleCompiler=s,this._commandCompiler=a,this._cdCompiler=o,this._hostCacheKeys=new Map,this._compiledTemplateCache=new Map,this._compiledTemplateDone=new Map,this._nextTemplateId=0}return t.prototype.normalizeDirectiveMetadata=function(t){return t.isComponent?this._templateNormalizer.normalizeTemplate(t.type,t.template).then(function(e){return new y.CompileDirectiveMetadata({type:t.type,isComponent:t.isComponent,dynamicLoadable:t.dynamicLoadable,selector:t.selector,exportAs:t.exportAs,changeDetection:t.changeDetection,inputs:t.inputs,outputs:t.outputs,hostListeners:t.hostListeners,hostProperties:t.hostProperties,hostAttributes:t.hostAttributes,lifecycleHooks:t.lifecycleHooks,template:e})}):m.PromiseWrapper.resolve(t)},t.prototype.compileHostComponentRuntime=function(t){var e=this._hostCacheKeys.get(t);if(h.isBlank(e)){e=new Object,this._hostCacheKeys.set(t,e);var n=this._runtimeMetadataResolver.getMetadata(t);s(n);var a=y.createHostComponentMeta(n.type,n.selector);this._compileComponentRuntime(e,a,[n],new Set)}return this._compiledTemplateDone.get(e).then(function(t){return new g.CompiledHostTemplate(t)})},t.prototype.clearCache=function(){this._hostCacheKeys.clear(),this._styleCompiler.clearCache(),this._compiledTemplateCache.clear(),this._compiledTemplateDone.clear()},t.prototype._compileComponentRuntime=function(t,e,n,s){var a=this,o=c(n),i=this._compiledTemplateCache.get(t),r=this._compiledTemplateDone.get(t);if(h.isBlank(i)){var p,l=[],u=[],d=h.stringify(e.type.runtime)+"Template"+this._nextTemplateId++;i=new g.CompiledComponentTemplate(d,function(t){return p(t)},u,l),this._compiledTemplateCache.set(t,i),s.add(t),r=m.PromiseWrapper.all([this._styleCompiler.compileComponentRuntime(e.template)].concat(o.map(function(t){return a.normalizeDirectiveMetadata(t)}))).then(function(t){var n=[],o=t.slice(1),i=a._templateParser.parse(e.template.template,o,e.type.name),r=a._cdCompiler.compileComponentRuntime(e.type,e.changeDetection,i);p=r[0];var c=t[0];c.forEach(function(t){return l.push(t)});var h=a._compileCommandsRuntime(e,i,r,s,n);return h.forEach(function(t){return u.push(t)}),m.PromiseWrapper.all(n)}).then(function(e){return f.SetWrapper["delete"](s,t),i}),this._compiledTemplateDone.set(t,r)}return i},t.prototype._compileCommandsRuntime=function(t,e,n,s,a){var o=this,i=this._commandCompiler.compileComponentRuntime(t,e,n,function(t){var e=t.type.runtime,n=o._runtimeMetadataResolver.getViewDirectivesMetadata(t.type.runtime),i=f.SetWrapper.has(s,e),r=o._compileComponentRuntime(e,t,n,s);return i||a.push(o._compiledTemplateDone.get(e)),function(){return r}});return i.forEach(function(t){t instanceof g.BeginComponentCmd&&t.templateGetter()}),i},t.prototype.compileTemplatesCodeGen=function(t){var e=this;if(0===t.length)throw new d.BaseException("No components given");var n=[],r=[],p=[];t.forEach(function(t){var a=t.component;if(s(a),p.push(a),e._processTemplateCodeGen(a,t.directives,n,r),a.dynamicLoadable){var o=y.createHostComponentMeta(a.type,a.selector);p.push(o),e._processTemplateCodeGen(o,[a],n,r)}}),f.ListWrapper.forEachWithIndex(p,function(t,e){var s,i=t.type.moduleUrl+"|"+t.type.name,p=h.IS_DART?"const":"new",c=p+" "+S.TEMPLATE_COMMANDS_MODULE_REF+"CompiledComponentTemplate('"+i+"',"+r[e].join(",")+")";s=t.type.isHost?p+" "+S.TEMPLATE_COMMANDS_MODULE_REF+"CompiledHostTemplate("+c+")":c;var l=a(t.type);n.push(""+P.codeGenExportVariable(l)+s+";"),n.push(P.codeGenValueFn([],l,o(t.type))+";")});var c=t[0].component.type.moduleUrl;return new k.SourceModule(""+i(c),n.join("\n"))},t.prototype.compileStylesheetCodeGen=function(t,e){return this._styleCompiler.compileStylesheetCodeGen(t,e)},t.prototype._processTemplateCodeGen=function(t,e,n,s){var a=c(e),o=this._styleCompiler.compileComponentCodeGen(t.template),i=this._templateParser.parse(t.template.template,a,t.type.name),l=this._cdCompiler.compileComponentCodeGen(t.type,t.changeDetection,i),u=this._commandCompiler.compileComponentCodeGen(t,i,l.expressions,p);r(o.declarations,n),r(l.declarations,n),r(u.declarations,n),s.push([l.expressions[0],u.expression,o.expression])},t=l([v.Injectable(),u("design:paramtypes",[w.RuntimeMetadataResolver,T.TemplateNormalizer,C.TemplateParser,b.StyleCompiler,E.CommandCompiler,_.ChangeDetectionCompiler])],t)}();e.TemplateCompiler=R;var O=function(){function t(t,e){this.component=t,this.directives=e}return t}();e.NormalizedComponentWithViewDirectives=O},function(t,e,n){"use strict";function s(t){return l.StringWrapper.split(t.trim(),/\s+/g)}function a(t,e){var n=new k.CssSelector,a=g.splitNsName(t)[1];n.setElement(a);for(var o=0;oo?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},p=this&&this.__param||function(t,e){return function(n,s){e(n,s,t)}},c=n(2),l=n(1),u=n(3),h=n(1),d=n(4),f=n(10),m=n(73),g=n(26),y=n(74),v=n(47),k=n(122),_=n(75),b=n(125),E=n(76),C=n(72),T=n(15),w=/^(?:(?:(?:(bind-)|(var-|#)|(on-)|(bindon-))(.+))|\[\(([^\)]+)\)\]|\[([^\]]+)\]|\(([^\)]+)\))$/g,S="template",P="template",R="*",O="class",A=".",D="attr",x="class",M="style",I=k.CssSelector.parse("*")[0];e.TEMPLATE_TRANSFORMS=h.CONST_EXPR(new u.OpaqueToken("TemplateTransforms"));var N=function(t){function e(e,n){t.call(this,n,e)}return o(e,t),e}(y.ParseError);e.TemplateParseError=N;var B=function(){function t(t,e,n,s){this._exprParser=t,this._schemaRegistry=e,this._htmlParser=n,this.transforms=s}return t.prototype.parse=function(t,e,n){var s=new L(e,this._exprParser,this._schemaRegistry),a=this._htmlParser.parse(t,n),o=C.htmlVisitAll(s,a.rootNodes,F),i=a.errors.concat(s.errors);if(i.length>0){var r=i.join("\n");throw new d.BaseException("Template parse errors:\n"+r)}return l.isPresent(this.transforms)&&this.transforms.forEach(function(t){o=v.templateVisitAll(t,o)}),o},t=i([u.Injectable(),p(3,u.Optional()),p(3,u.Inject(e.TEMPLATE_TRANSFORMS)),r("design:paramtypes",[f.Parser,_.ElementSchemaRegistry,m.HtmlParser,Array])],t)}();e.TemplateParser=B;var L=function(){function t(t,e,n){var s=this;this._exprParser=e,this._schemaRegistry=n,this.errors=[],this.directivesIndex=new Map,this.ngContentCount=0,this.selectorMatcher=new k.SelectorMatcher,c.ListWrapper.forEachWithIndex(t,function(t,e){var n=k.CssSelector.parse(t.selector);s.selectorMatcher.addSelectables(n,t),s.directivesIndex.set(t,e)})}return t.prototype._reportError=function(t,e){this.errors.push(new N(t,e.start))},t.prototype._parseInterpolation=function(t,e){var n=e.start.toString();try{return this._exprParser.parseInterpolation(t,n)}catch(s){return this._reportError(""+s,e),this._exprParser.wrapLiteralPrimitive("ERROR",n)}},t.prototype._parseAction=function(t,e){var n=e.start.toString();try{return this._exprParser.parseAction(t,n)}catch(s){return this._reportError(""+s,e),this._exprParser.wrapLiteralPrimitive("ERROR",n)}},t.prototype._parseBinding=function(t,e){var n=e.start.toString();try{return this._exprParser.parseBinding(t,n)}catch(s){return this._reportError(""+s,e),this._exprParser.wrapLiteralPrimitive("ERROR",n)}},t.prototype._parseTemplateBindings=function(t,e){var n=e.start.toString();try{return this._exprParser.parseTemplateBindings(t,n)}catch(s){return this._reportError(""+s,e),[]}},t.prototype.visitText=function(t,e){var n=e.findNgContentIndex(I),s=this._parseInterpolation(t.value,t.sourceSpan);return l.isPresent(s)?new v.BoundTextAst(s,n,t.sourceSpan):new v.TextAst(t.value,n,t.sourceSpan)},t.prototype.visitAttr=function(t,e){return new v.AttrAst(t.name,t.value,t.sourceSpan)},t.prototype.visitElement=function(t,e){var n=this,s=t.name,o=b.preparseElement(t);if(o.type===b.PreparsedElementType.SCRIPT||o.type===b.PreparsedElementType.STYLE)return null;if(o.type===b.PreparsedElementType.STYLESHEET&&E.isStyleUrlResolvable(o.hrefAttr))return null;var i=[],r=[],p=[],c=[],u=[],h=[],d=[],f=!1,m=[];t.attrs.forEach(function(t){i.push([t.name,t.value]);var e=n._parseAttr(t,i,r,c,p),s=n._parseInlineTemplateBinding(t,d,u,h);e||s||m.push(n.visitAttr(t,null)),s&&(f=!0)});var y,k=g.splitNsName(s.toLowerCase())[1],_=k==S,T=a(s,i),w=this._createDirectiveAsts(t.name,this._parseDirectives(this.selectorMatcher,T),r,_?[]:p,t.sourceSpan),P=this._createElementPropertyAsts(t.name,r,w),R=C.htmlVisitAll(o.nonBindable?V:this,t.children,H.create(w)),O=f?null:e.findNgContentIndex(T);if(o.type===b.PreparsedElementType.NG_CONTENT)l.isPresent(t.children)&&t.children.length>0&&this._reportError(" element cannot have content. must be immediately followed by ",t.sourceSpan),y=new v.NgContentAst(this.ngContentCount++,O,t.sourceSpan);else if(_)this._assertAllEventsPublishedByDirectives(w,c),this._assertNoComponentsNorElementBindingsOnTemplate(w,P,t.sourceSpan),y=new v.EmbeddedTemplateAst(m,c,p,w,R,O,t.sourceSpan);else{this._assertOnlyOneComponent(w,t.sourceSpan);var A=p.filter(function(t){return 0===t.value.length});y=new v.ElementAst(s,m,P,c,A,w,R,O,t.sourceSpan)}if(f){var D=a(S,d),x=this._createDirectiveAsts(t.name,this._parseDirectives(this.selectorMatcher,D),u,[],t.sourceSpan),M=this._createElementPropertyAsts(t.name,u,x);this._assertNoComponentsNorElementBindingsOnTemplate(x,M,t.sourceSpan),y=new v.EmbeddedTemplateAst([],[],h,x,[y],e.findNgContentIndex(D),t.sourceSpan)}return y},t.prototype._parseInlineTemplateBinding=function(t,e,n,s){var a=null;if(t.name==P)a=t.value;else if(t.name.startsWith(R)){var o=t.name.substring(R.length);a=0==t.value.length?o:o+" "+t.value}if(l.isPresent(a)){for(var i=this._parseTemplateBindings(a,t.sourceSpan),r=0;r-1&&this._reportError('"-" is not allowed in variable names',n),s.push(new v.VariableAst(t,e,n))},t.prototype._parseProperty=function(t,e,n,s,a){this._parsePropertyAst(t,this._parseBinding(e,n),n,s,a)},t.prototype._parsePropertyInterpolation=function(t,e,n,s,a){var o=this._parseInterpolation(e,n);return l.isPresent(o)?(this._parsePropertyAst(t,o,n,s,a),!0):!1},t.prototype._parsePropertyAst=function(t,e,n,s,a){s.push([t,e.source]),a.push(new U(t,e,!1,n))},t.prototype._parseAssignmentEvent=function(t,e,n,s,a){this._parseEvent(t+"Change",e+"=$event",n,s,a)},t.prototype._parseEvent=function(t,e,n,s,a){var o=T.splitAtColon(t,[null,t]),i=o[0],r=o[1];a.push(new v.BoundEventAst(r,i,this._parseAction(e,n),n))},t.prototype._parseLiteralAttr=function(t,e,n,s){s.push(new U(t,this._exprParser.wrapLiteralPrimitive(e,""),!0,n))},t.prototype._parseDirectives=function(t,e){var n=this,s=[];return t.match(e,function(t,e){s.push(e)}),c.ListWrapper.sort(s,function(t,e){var s=t.isComponent,a=e.isComponent;return s&&!a?-1:!s&&a?1:n.directivesIndex.get(t)-n.directivesIndex.get(e)}),s},t.prototype._createDirectiveAsts=function(t,e,n,s,a){var o=this,i=new Set,r=e.map(function(e){var r=[],p=[],c=[];o._createDirectiveHostPropertyAsts(t,e.hostProperties,a,r),o._createDirectiveHostEventAsts(e.hostListeners,a,p),o._createDirectivePropertyAsts(e.inputs,n,c);var l=[];return s.forEach(function(t){(0===t.value.length&&e.isComponent||e.exportAs==t.value)&&(l.push(t),i.add(t.name))}),new v.DirectiveAst(e,c,r,p,l,a)});return s.forEach(function(t){t.value.length>0&&!c.SetWrapper.has(i,t.name)&&o._reportError('There is no directive with "exportAs" set to "'+t.value+'"',t.sourceSpan)}),r},t.prototype._createDirectiveHostPropertyAsts=function(t,e,n,s){var a=this;l.isPresent(e)&&c.StringMapWrapper.forEach(e,function(e,o){var i=a._parseBinding(e,n);s.push(a._createElementPropertyAst(t,o,i,n))})},t.prototype._createDirectiveHostEventAsts=function(t,e,n){var s=this;l.isPresent(t)&&c.StringMapWrapper.forEach(t,function(t,a){s._parseEvent(a,t,e,[],n)})},t.prototype._createDirectivePropertyAsts=function(t,e,n){if(l.isPresent(t)){var s=new Map;e.forEach(function(t){var e=s.get(t.name);(l.isBlank(e)||e.isLiteral)&&s.set(t.name,t)}),c.StringMapWrapper.forEach(t,function(t,e){var a=s.get(t);l.isPresent(a)&&n.push(new v.BoundDirectivePropertyAst(e,a.name,a.expression,a.sourceSpan))})}},t.prototype._createElementPropertyAsts=function(t,e,n){var s=this,a=[],o=new Map;return n.forEach(function(t){t.inputs.forEach(function(t){o.set(t.templateName,t)})}),e.forEach(function(e){!e.isLiteral&&l.isBlank(o.get(e.name))&&a.push(s._createElementPropertyAst(t,e.name,e.expression,e.sourceSpan))}),a},t.prototype._createElementPropertyAst=function(t,e,n,s){var a,o,i=null,r=e.split(A);return 1===r.length?(o=this._schemaRegistry.getMappedPropName(r[0]),a=v.PropertyBindingType.Property,this._schemaRegistry.hasProperty(t,o)||this._reportError("Can't bind to '"+o+"' since it isn't a known native property",s)):r[0]==D?(o=r[1],a=v.PropertyBindingType.Attribute):r[0]==x?(o=r[1],a=v.PropertyBindingType.Class):r[0]==M?(i=r.length>2?r[2]:null,o=r[1],a=v.PropertyBindingType.Style):(this._reportError("Invalid property name '"+e+"'",s),a=null),new v.BoundElementPropertyAst(o,a,n,i,s)},t.prototype._findComponentDirectiveNames=function(t){var e=[];return t.forEach(function(t){var n=t.directive.type.name;t.directive.isComponent&&e.push(n)}),e},t.prototype._assertOnlyOneComponent=function(t,e){var n=this._findComponentDirectiveNames(t);n.length>1&&this._reportError("More than one component: "+n.join(","),e)},t.prototype._assertNoComponentsNorElementBindingsOnTemplate=function(t,e,n){var s=this,a=this._findComponentDirectiveNames(t);a.length>0&&this._reportError("Components on an embedded template: "+a.join(","),n),e.forEach(function(t){s._reportError("Property binding "+t.name+" not used by any directive on an embedded template",n)})},t.prototype._assertAllEventsPublishedByDirectives=function(t,e){var n=this,s=new Set;t.forEach(function(t){c.StringMapWrapper.forEach(t.directive.outputs,function(t,e){s.add(t)})}),e.forEach(function(t){(l.isPresent(t.target)||!c.SetWrapper.has(s,t.name))&&n._reportError("Event binding "+t.fullName+" not emitted by any directive on an embedded template",t.sourceSpan)})},t}(),j=function(){function t(){}return t.prototype.visitElement=function(t,e){var n=b.preparseElement(t);if(n.type===b.PreparsedElementType.SCRIPT||n.type===b.PreparsedElementType.STYLE||n.type===b.PreparsedElementType.STYLESHEET)return null;var s=t.attrs.map(function(t){return[t.name,t.value]}),o=a(t.name,s),i=e.findNgContentIndex(o),r=C.htmlVisitAll(this,t.children,F);return new v.ElementAst(t.name,C.htmlVisitAll(this,t.attrs),[],[],[],[],r,i,t.sourceSpan)},t.prototype.visitAttr=function(t,e){return new v.AttrAst(t.name,t.value,t.sourceSpan)},t.prototype.visitText=function(t,e){var n=e.findNgContentIndex(I);
-return new v.TextAst(t.value,n,t.sourceSpan)},t}(),U=function(){function t(t,e,n,s){this.name=t,this.expression=e,this.isLiteral=n,this.sourceSpan=s}return t}();e.splitClasses=s;var H=function(){function t(t,e){this.ngContentIndexMatcher=t,this.wildcardNgContentIndex=e}return t.create=function(e){if(0===e.length||!e[0].directive.isComponent)return F;for(var n=new k.SelectorMatcher,s=e[0].directive.template.ngContentSelectors,a=null,o=0;o0?e[0]:null},t}(),F=new H(new k.SelectorMatcher,null),V=new j},,,,,,,,,,,,,,,,,,,function(t,e,n){var s=n(40),a=function(){function t(t,e,n){this.uploader=t,this.some=e,this.options=n,this.alias="file",this.url="/",this.method="POST",this.headers=[],this.withCredentials=!0,this.formData=[],this.isReady=!1,this.isUploading=!1,this.isUploaded=!1,this.isSuccess=!1,this.isCancel=!1,this.isError=!1,this.progress=0,this.index=null,this.file=new s.FileLikeObject(e),this._file=e,this.url=t.url}return t.prototype.upload=function(){try{this.uploader.uploadItem(this)}catch(t){this.uploader._onCompleteItem(this,"",0,[]),this.uploader._onErrorItem(this,"",0,[])}},t.prototype.cancel=function(){this.uploader.cancelItem(this)},t.prototype.remove=function(){this.uploader.removeFromQueue(this)},t.prototype.onBeforeUpload=function(){},t.prototype.onProgress=function(t){},t.prototype.onSuccess=function(t,e,n){},t.prototype.onError=function(t,e,n){},t.prototype.onCancel=function(t,e,n){},t.prototype.onComplete=function(t,e,n){},t.prototype._onBeforeUpload=function(){this.isReady=!0,this.isUploading=!0,this.isUploaded=!1,this.isSuccess=!1,this.isCancel=!1,this.isError=!1,this.progress=0,this.onBeforeUpload()},t.prototype._onProgress=function(t){this.progress=t,this.onProgress(t)},t.prototype._onSuccess=function(t,e,n){this.isReady=!1,this.isUploading=!1,this.isUploaded=!0,this.isSuccess=!0,this.isCancel=!1,this.isError=!1,this.progress=100,this.index=null,this.onSuccess(t,e,n)},t.prototype._onError=function(t,e,n){this.isReady=!1,this.isUploading=!1,this.isUploaded=!0,this.isSuccess=!1,this.isCancel=!1,this.isError=!0,this.progress=0,this.index=null,this.onError(t,e,n)},t.prototype._onCancel=function(t,e,n){this.isReady=!1,this.isUploading=!1,this.isUploaded=!1,this.isSuccess=!1,this.isCancel=!0,this.isError=!1,this.progress=0,this.index=null,this.onCancel(t,e,n)},t.prototype._onComplete=function(t,e,n){this.onComplete(t,e,n),this.uploader.removeAfterUpload&&this.remove()},t.prototype._prepareToUploading=function(){this.index=this.index||++this.uploader._nextIndex,this.isReady=!0},t}();e.FileItem=a},function(t,e,n){function s(t){return File&&t instanceof File}var a=n(40),o=n(97),i=function(){function t(t){this.options=t,this.isUploading=!1,this.queue=[],this.progress=0,this.autoUpload=!1,this.isHTML5=!0,this.removeAfterUpload=!1,this._nextIndex=0,this.filters=[],this.url=t.url,this.authToken=t.authToken,this.filters.unshift({name:"queueLimit",fn:this._queueLimitFilter}),this.filters.unshift({name:"folder",fn:this._folderFilter})}return t.prototype.addToQueue=function(t,e,n){for(var s=this,i=[],r=0;r=200&&300>t||304===t},t.prototype._transformResponse=function(t,e){return t},t.prototype._parseHeaders=function(t){var e,n,s,a={};return t?(t.split("\n").map(function(t){s=t.indexOf(":"),e=t.slice(0,s).trim().toLowerCase(),n=t.slice(s+1).trim(),e&&(a[e]=a[e]?a[e]+", "+n:n)}),a):a},t.prototype._headersGetter=function(t){return function(e){return e?t[e.toLowerCase()]||null:t}},t.prototype._xhrTransport=function(t){var e=this,n=t._xhr=new XMLHttpRequest,s=new FormData;if(this._onBeforeUploadItem(t),"number"!=typeof t._file.size)throw new TypeError("The file specified is no longer valid");s.append(t.alias,t._file,t.file.name),n.upload.onprogress=function(n){var s=Math.round(n.lengthComputable?100*n.loaded/n.total:0);e._onProgressItem(t,s)},n.onload=function(){var s=e._parseHeaders(n.getAllResponseHeaders()),a=e._transformResponse(n.response,s),o=e._isSuccessCode(n.status)?"Success":"Error",i="_on"+o+"Item";e[i](t,a,n.status,s),e._onCompleteItem(t,a,n.status,s)},n.onerror=function(){var s=e._parseHeaders(n.getAllResponseHeaders()),a=e._transformResponse(n.response,s);e._onErrorItem(t,a,n.status,s),e._onCompleteItem(t,a,n.status,s)},n.onabort=function(){var s=e._parseHeaders(n.getAllResponseHeaders()),a=e._transformResponse(n.response,s);e._onCancelItem(t,a,n.status,s),e._onCompleteItem(t,a,n.status,s)},n.open(t.method,t.url,!0),n.withCredentials=t.withCredentials,this.authToken&&n.setRequestHeader("Authorization",this.authToken),n.send(s),this._render()},t.prototype._iframeTransport=function(t){},t.prototype._onWhenAddingFileFailed=function(t,e,n){this.onWhenAddingFileFailed(t,e,n)},t.prototype._onAfterAddingFile=function(t){this.onAfterAddingFile(t)},t.prototype._onAfterAddingAll=function(t){this.onAfterAddingAll(t)},t.prototype._onBeforeUploadItem=function(t){t._onBeforeUpload(),this.onBeforeUploadItem(t)},t.prototype._onProgressItem=function(t,e){var n=this._getTotalProgress(e);this.progress=n,t._onProgress(e),this.onProgressItem(t,e),this.onProgressAll(n),this._render()},t.prototype._onSuccessItem=function(t,e,n,s){t._onSuccess(e,n,s),this.onSuccessItem(t,e,n,s)},t.prototype._onErrorItem=function(t,e,n,s){t._onError(e,n,s),this.onErrorItem(t,e,n,s)},t.prototype._onCancelItem=function(t,e,n,s){t._onCancel(e,n,s),this.onCancelItem(t,e,n,s)},t.prototype._onCompleteItem=function(t,e,n,s){t._onComplete(e,n,s),this.onCompleteItem(t,e,n,s);var a=this.getReadyItems()[0];return this.isUploading=!1,a?void a.upload():(this.onCompleteAll(),this.progress=this._getTotalProgress(),void this._render())},t}();e.FileUploader=i},function(t,e,n){function s(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}s(n(41)),s(n(39)),s(n(98));var a=n(41),o=n(39);e.FILE_UPLOAD_DIRECTIVES=[a.FileSelect,o.FileDrop]},function(t,e){!function(t){t[t.BS3=1]="BS3",t[t.BS4=2]="BS4"}(e.Ng2BootstrapTheme||(e.Ng2BootstrapTheme={}));var n=e.Ng2BootstrapTheme,s=function(){function t(){}return Object.defineProperty(t,"theme",{get:function(){var t=window;return t&&"bs4"===t.__theme?n.BS4:this._theme||n.BS3},set:function(t){this._theme=t},enumerable:!0,configurable:!0}),t}();e.Ng2BootstrapConfig=s},function(t,e){var n=function(){function t(){}return Object.defineProperty(t.prototype,"window",{get:function(){return window},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"document",{get:function(){return window.document},enumerable:!0,configurable:!0}),t.prototype.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:this.window.getComputedStyle?this.window.getComputedStyle(t)[e]:t.style[e]},t.prototype.isStaticPositioned=function(t){return"static"===(this.getStyle(t,"position")||"static")},t.prototype.parentOffsetEl=function(t){for(var e=t.offsetParent||this.document;e&&e!==this.document&&this.isStaticPositioned(e);)e=e.offsetParent;return e||this.document},t.prototype.position=function(t){var e=this.offset(t),n={top:0,left:0},s=this.parentOffsetEl(t);s!==this.document&&(n=this.offset(s),n.top+=s.clientTop-s.scrollTop,n.left+=s.clientLeft-s.scrollLeft);var a=t.getBoundingClientRect();return{width:a.width||t.offsetWidth,height:a.height||t.offsetHeight,top:e.top-n.top,left:e.left-n.left}},t.prototype.offset=function(t){var e=t.getBoundingClientRect();return{width:e.width||t.offsetWidth,height:e.height||t.offsetHeight,top:e.top+(this.window.pageYOffset||this.document.documentElement.scrollTop),left:e.left+(this.window.pageXOffset||this.document.documentElement.scrollLeft)}},t.prototype.positionElements=function(t,e,n,s){var a,o=n.split("-"),i=o[0],r=o[1]||"center",p=s?this.offset(t):this.position(t),c=e.offsetWidth,l=e.offsetHeight,u={center:function(){return p.left+p.width/2-c/2},left:function(){return p.left},right:function(){return p.left+p.width}},h={center:function(){return p.top+p.height/2-l/2},top:function(){return p.top},bottom:function(){return p.top+p.height}};switch(i){case"right":a={top:h[r](),left:u[i]()};break;case"left":a={top:h[r](),left:p.left-c};break;case"bottom":a={top:h[i](),left:u[r]()};break;default:a={top:p.top-l,left:u[r]()}}return a},t}();e.PositionService=n,e.positionService=new n},function(t,e,n){"use strict";function s(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}s(n(28)),s(n(48)),s(n(185))},function(t,e,n){"use strict";var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=n(5),i=n(175),r=n(104),p=function(){function t(t){this.browserDetails=t}return t.prototype.css=function(){return new i.CssAnimationBuilder(this.browserDetails)},t=s([o.Injectable(),a("design:paramtypes",[r.BrowserDetails])],t)}();e.AnimationBuilder=p},function(t,e,n){"use strict";var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=n(5),i=n(156),r=n(8),p=function(){function t(){this.elapsedTimeIncludesDelay=!1,this.doesElapsedTimeIncludesDelay()}return t.prototype.doesElapsedTimeIncludesDelay=function(){var t=this,e=r.DOM.createElement("div");r.DOM.setAttribute(e,"style","position: absolute; top: -9999px; left: -9999px; width: 1px;\n height: 1px; transition: all 1ms linear 1ms;"),this.raf(function(n){r.DOM.on(e,"transitionend",function(n){var s=i.Math.round(1e3*n.elapsedTime);t.elapsedTimeIncludesDelay=2==s,r.DOM.remove(e)}),r.DOM.setStyle(e,"width","2px")},2)},t.prototype.raf=function(t,e){void 0===e&&(e=1);var n=new c(t,e);return function(){return n.cancel()}},t=s([o.Injectable(),a("design:paramtypes",[])],t)}();e.BrowserDetails=p;var c=function(){function t(t,e){this.callback=t,this.frames=e,this._raf()}return t.prototype._raf=function(){var t=this;this.currentFrameId=r.DOM.requestAnimationFrame(function(e){return t._nextFrame(e)})},t.prototype._nextFrame=function(t){this.frames--,this.frames>0?this._raf():this.callback(t)},t.prototype.cancel=function(){r.DOM.cancelAnimationFrame(this.currentFrameId),this.currentFrameId=null},t}()},,,,,,,,,,,,,,,function(t,e,n){"use strict";var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=n(27),i=n(130),r=n(184),p=n(1),c=n(10),l=n(227),u=n(15),h=n(5),d="AbstractChangeDetector",f="ChangeDetectionUtil",m="ChangeDetectorState",g=o.moduleRef("package:angular2/src/core/change_detection/abstract_change_detector"+u.MODULE_SUFFIX),y=o.moduleRef("package:angular2/src/core/change_detection/change_detection_util"+u.MODULE_SUFFIX),v=o.moduleRef("package:angular2/src/core/change_detection/pregen_proto_change_detector"+u.MODULE_SUFFIX),k=o.moduleRef("package:angular2/src/core/change_detection/constants"+u.MODULE_SUFFIX),_=function(){function t(t){this._genConfig=t}return t.prototype.compileComponentRuntime=function(t,e,n){var s=this,a=r.createChangeDetectorDefinitions(t,e,this._genConfig,n);return a.map(function(t){return s._createChangeDetectorFactory(t)})},t.prototype._createChangeDetectorFactory=function(t){if(p.IS_DART||!this._genConfig.useJit){var e=new c.DynamicProtoChangeDetector(t);return function(t){return e.instantiate(t)}}return new i.ChangeDetectorJITGenerator(t,f,d,m).generate()},t.prototype.compileComponentCodeGen=function(t,e,n){var s=r.createChangeDetectorDefinitions(t,e,this._genConfig,n),a=[],c=0,u=s.map(function(e){var n,s;if(p.IS_DART){n=new l.Codegen(v);var r="_"+e.id,u=0===c&&t.isHost?"dynamic":""+o.moduleRef(t.moduleUrl)+t.name;n.generate(u,r,e),a.push(r+".newChangeDetector"),s=n.toString()}else n=new i.ChangeDetectorJITGenerator(e,""+y+f,""+g+d,""+k+m),a.push("function(dispatcher) { return new "+n.typeName+"(dispatcher); }"),s=n.generateSource();return c++,s});return new o.SourceExpressions(u,a)},t=s([h.Injectable(),a("design:paramtypes",[c.ChangeDetectorGenConfig])],t)}();e.ChangeDetectionCompiler=_},function(t,e,n){"use strict";var s=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var s in e)e.hasOwnProperty(s)&&(t[s]=e[s]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},a=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},o=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},i=n(23),r=n(51),p=n(77),c=n(5),l=function(t){function e(){t.apply(this,arguments)}return s(e,t),e}(i.Compiler);e.RuntimeCompiler=l;var u=function(t){function e(e,n){t.call(this,e),this._templateCompiler=n}return s(e,t),e.prototype.compileInHost=function(t){var e=this;return this._templateCompiler.compileHostComponentRuntime(t).then(function(t){return i.internalCreateProtoView(e,t)})},e.prototype.clearCache=function(){t.prototype.clearCache.call(this),this._templateCompiler.clearCache()},e=a([c.Injectable(),o("design:paramtypes",[r.ProtoViewFactory,p.TemplateCompiler])],e)}(i.Compiler_);e.RuntimeCompiler_=u},function(t,e,n){"use strict";function s(t,e){var n=[];return u.isPresent(e)&&a(e,n),u.isPresent(t.directives)&&a(t.directives,n),n}function a(t,e){for(var n=0;n0?n:"package:"+n+E.MODULE_SUFFIX}return k.reflector.importUri(t)}var r=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},p=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},c=this&&this.__param||function(t,e){return function(n,s){e(n,s,t)}},l=n(5),u=n(1),h=n(4),d=n(46),f=n(35),m=n(50),g=n(54),y=n(143),v=n(33),k=n(9),_=n(5),b=n(55),E=n(15),C=n(28),T=function(){function t(t,e,n){this._directiveResolver=t,this._viewResolver=e,this._platformDirectives=n,this._cache=new Map}return t.prototype.getMetadata=function(t){var e=this._cache.get(t);if(u.isBlank(e)){var n=this._directiveResolver.resolve(t),s=null,a=null,o=null;if(n instanceof f.ComponentMetadata){var r=n;s=i(t,r);var p=this._viewResolver.resolve(t);a=new d.CompileTemplateMetadata({encapsulation:p.encapsulation,template:p.template,templateUrl:p.templateUrl,styles:p.styles,styleUrls:p.styleUrls}),o=r.changeDetection}e=d.CompileDirectiveMetadata.create({selector:n.selector,exportAs:n.exportAs,isComponent:u.isPresent(a),dynamicLoadable:!0,type:new d.CompileTypeMetadata({name:u.stringify(t),moduleUrl:s,runtime:t}),template:a,changeDetection:o,inputs:n.inputs,outputs:n.outputs,host:n.host,lifecycleHooks:v.LIFECYCLE_HOOKS_VALUES.filter(function(e){return y.hasLifecycleHook(e,t)})}),this._cache.set(t,e)}return e},t.prototype.getViewDirectivesMetadata=function(t){for(var e=this,n=this._viewResolver.resolve(t),a=s(n,this._platformDirectives),i=0;i0&&a.isBlank(e.element)&&s.ListWrapper.isEmpty(e.classNames)&&s.ListWrapper.isEmpty(e.attrs)&&(e.element="*"),t.push(e)},c=new t,l=a.RegExpWrapper.matcher(r,e),u=c,h=!1;a.isPresent(n=a.RegExpMatcherWrapper.next(l));){if(a.isPresent(n[1])){if(h)throw new o.BaseException("Nesting :not is not allowed in a selector");h=!0,u=new t,c.notSelectors.push(u)}if(a.isPresent(n[2])&&u.setElement(n[2]),a.isPresent(n[3])&&u.addClassName(n[3]),a.isPresent(n[4])&&u.addAttribute(n[4],n[5]),a.isPresent(n[6])&&(h=!1,u=c),a.isPresent(n[7])){if(h)throw new o.BaseException("Multiple selectors in :not are not supported");p(i,c),c=u=new t}}return p(i,c),i},t.prototype.isElementSelector=function(){return a.isPresent(this.element)&&s.ListWrapper.isEmpty(this.classNames)&&s.ListWrapper.isEmpty(this.attrs)&&0===this.notSelectors.length},t.prototype.setElement=function(t){void 0===t&&(t=null),this.element=t},t.prototype.getMatchingElementTemplate=function(){for(var t=a.isPresent(this.element)?this.element:"div",e=this.classNames.length>0?' class="'+this.classNames.join(" ")+'"':"",n="",s=0;s"+t+">"},t.prototype.addAttribute=function(t,e){void 0===e&&(e=i),this.attrs.push(t),e=a.isPresent(e)?e.toLowerCase():i,this.attrs.push(e)},t.prototype.addClassName=function(t){this.classNames.push(t.toLowerCase())},t.prototype.toString=function(){var t="";if(a.isPresent(this.element)&&(t+=this.element),a.isPresent(this.classNames))for(var e=0;e0&&(t+="="+s),t+="]"}return this.notSelectors.forEach(function(e){return t+=":not("+e+")"}),t},t}();e.CssSelector=p;var c=function(){function t(){this._elementMap=new s.Map,this._elementPartialMap=new s.Map,this._classMap=new s.Map,this._classPartialMap=new s.Map,this._attrValueMap=new s.Map,this._attrValuePartialMap=new s.Map,this._listContexts=[]}return t.createNotMatcher=function(e){var n=new t;return n.addSelectables(e,null),n},t.prototype.addSelectables=function(t,e){var n=null;t.length>1&&(n=new l(t),this._listContexts.push(n));for(var s=0;s0&&(a.isBlank(this.listContext)||!this.listContext.alreadyMatched)){var s=c.createNotMatcher(this.notSelectors);n=!s.match(t,null)}return n&&a.isPresent(e)&&(a.isBlank(this.listContext)||!this.listContext.alreadyMatched)&&(a.isPresent(this.listContext)&&(this.listContext.alreadyMatched=!0),e(this.selector,this.cbContext)),n},t}();e.SelectorContext=u},function(t,e,n){"use strict";var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=n(27),i=n(17),r=n(48),p=n(1),c=n(6),l=n(188),u=n(28),h=n(76),d=n(15),f=n(5),m=n(154),g=function(){function t(t,e){this._xhr=t,this._urlResolver=e,this._styleCache=new Map,this._shadowCss=new l.ShadowCss}return t.prototype.compileComponentRuntime=function(t){var e=t.styles,n=t.styleUrls;return this._loadStyles(e,n,t.encapsulation===i.ViewEncapsulation.Emulated)},t.prototype.compileComponentCodeGen=function(t){var e=t.encapsulation===i.ViewEncapsulation.Emulated;return this._styleCodeGen(t.styles,t.styleUrls,e)},t.prototype.compileStylesheetCodeGen=function(t,e){var n=h.extractStyleUrls(this._urlResolver,t,e);return[this._styleModule(t,!1,this._styleCodeGen([n.style],n.styleUrls,!1)),this._styleModule(t,!0,this._styleCodeGen([n.style],n.styleUrls,!0))]},t.prototype.clearCache=function(){this._styleCache.clear()},t.prototype._loadStyles=function(t,e,n){var s=this,a=e.map(function(t){var e=""+t+(n?".shim":""),a=s._styleCache.get(e);return p.isBlank(a)&&(a=s._xhr.get(t).then(function(e){var a=h.extractStyleUrls(s._urlResolver,t,e);return s._loadStyles([a.style],a.styleUrls,n)}),s._styleCache.set(e,a)),a});return c.PromiseWrapper.all(a).then(function(e){var a=t.map(function(t){return s._shimIfNeeded(t,n)});return e.forEach(function(t){return a.push(t)}),a})},t.prototype._styleCodeGen=function(t,e,n){for(var s=this,a=p.IS_DART?"const":"",i=t.map(function(t){return d.escapeSingleQuoteString(s._shimIfNeeded(t,n))}),r=0;ro?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=n(46),i=n(1),r=n(4),p=n(6),c=n(48),l=n(28),u=n(76),h=n(5),d=n(17),f=n(72),m=n(73),g=n(125),y=function(){function t(t,e,n){this._xhr=t,this._urlResolver=e,this._htmlParser=n}return t.prototype.normalizeTemplate=function(t,e){var n=this;if(i.isPresent(e.template))return p.PromiseWrapper.resolve(this.normalizeLoadedTemplate(t,e,e.template,t.moduleUrl));if(i.isPresent(e.templateUrl)){var s=this._urlResolver.resolve(t.moduleUrl,e.templateUrl);return this._xhr.get(s).then(function(a){return n.normalizeLoadedTemplate(t,e,a,s)})}throw new r.BaseException("No template specified for component "+t.name)},t.prototype.normalizeLoadedTemplate=function(t,e,n,s){var a=this,i=this._htmlParser.parse(n,t.name);if(i.errors.length>0){var p=i.errors.join("\n");throw new r.BaseException("Template parse errors:\n"+p)}var c=new v;f.htmlVisitAll(c,i.rootNodes);var l=e.styles.concat(c.styles),h=c.styleUrls.filter(u.isStyleUrlResolvable).map(function(t){return a._urlResolver.resolve(s,t)}).concat(e.styleUrls.filter(u.isStyleUrlResolvable).map(function(e){return a._urlResolver.resolve(t.moduleUrl,e)})),m=l.map(function(t){var e=u.extractStyleUrls(a._urlResolver,s,t);return e.styleUrls.forEach(function(t){return h.push(t)}),e.style}),g=e.encapsulation;return g===d.ViewEncapsulation.Emulated&&0===m.length&&0===h.length&&(g=d.ViewEncapsulation.None),new o.CompileTemplateMetadata({encapsulation:g,template:n,templateUrl:s,styles:m,styleUrls:h,ngContentSelectors:c.ngContentSelectors})},t=s([h.Injectable(),a("design:paramtypes",[c.XHR,l.UrlResolver,m.HtmlParser])],t)}();e.TemplateNormalizer=y;var v=function(){function t(){this.ngContentSelectors=[],this.styles=[],this.styleUrls=[],this.ngNonBindableStackCount=0}return t.prototype.visitElement=function(t,e){var n=g.preparseElement(t);switch(n.type){case g.PreparsedElementType.NG_CONTENT:0===this.ngNonBindableStackCount&&this.ngContentSelectors.push(n.selectAttr);break;case g.PreparsedElementType.STYLE:var s="";t.children.forEach(function(t){t instanceof f.HtmlTextAst&&(s+=t.value)}),this.styles.push(s);break;case g.PreparsedElementType.STYLESHEET:this.styleUrls.push(n.hrefAttr)}return n.nonBindable&&this.ngNonBindableStackCount++,f.htmlVisitAll(this,t.children),n.nonBindable&&this.ngNonBindableStackCount--,null},t.prototype.visitAttr=function(t,e){return null},t.prototype.visitText=function(t,e){return null},t}()},function(t,e,n){"use strict";function s(t){var e=null,n=null,s=null,o=!1;t.attrs.forEach(function(t){var a=t.name.toLowerCase();a==r?e=t.value:a==u?n=t.value:a==l?s=t.value:t.name==m&&(o=!0)}),e=a(e);var v=t.name.toLowerCase(),k=g.OTHER;return i.splitNsName(v)[1]==p?k=g.NG_CONTENT:v==d?k=g.STYLE:v==f?k=g.SCRIPT:v==c&&s==h&&(k=g.STYLESHEET),new y(k,e,n,o)}function a(t){return o.isBlank(t)||0===t.length?"*":t}var o=n(1),i=n(26),r="select",p="ng-content",c="link",l="rel",u="href",h="stylesheet",d="style",f="script",m="ngNonBindable";e.preparseElement=s,function(t){t[t.NG_CONTENT=0]="NG_CONTENT",t[t.STYLE=1]="STYLE",t[t.STYLESHEET=2]="STYLESHEET",t[t.SCRIPT=3]="SCRIPT",t[t.OTHER=4]="OTHER"}(e.PreparsedElementType||(e.PreparsedElementType={}));var g=e.PreparsedElementType,y=function(){function t(t,e,n,s){
-this.type=t,this.selectAttr=e,this.hrefAttr=n,this.nonBindable=s}return t}();e.PreparsedElement=y},,,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){"use strict";var s=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var s in e)e.hasOwnProperty(s)&&(t[s]=e[s]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},a=n(4),o=n(2),i=n(1),r=n(18),p=function(t){function e(e,n){t.call(this),this.template=e,this.cmds=n}return s(e,t),e}(r.RenderProtoViewRef);e.DefaultProtoViewRef=p;var c=function(t){function e(e){t.call(this),this.nodes=e}return s(e,t),e}(r.RenderFragmentRef);e.DefaultRenderFragmentRef=c;var l=function(t){function e(e,n,s,a,o,i){t.call(this),this.fragments=e,this.boundTextNodes=n,this.boundElements=s,this.nativeShadowRoots=a,this.globalEventAdders=o,this.rootContentInsertionPoints=i,this.hydrated=!1,this.eventDispatcher=null,this.globalEventRemovers=null}return s(e,t),e.prototype.hydrate=function(){if(this.hydrated)throw new a.BaseException("The view is already hydrated.");this.hydrated=!0,this.globalEventRemovers=o.ListWrapper.createFixedSize(this.globalEventAdders.length);for(var t=0;ta.length){var d,f=h.ListWrapper.createFixedSize(l);for(d=0;d0},e.prototype.tagName=function(t){return t.tagName},e.prototype.attributeMap=function(t){for(var e=new Map,n=t.attributes,s=0;s=200&&300>=a?e.resolve(s):e.reject("Failed to load "+t,null)},n.onerror=function(){e.reject("Failed to load "+t,null)},n.send(),e.promise},e}(i.XHR);e.XHRImpl=r},function(t,e,n){"use strict";function s(){return new p.ExceptionHandler(u.DOM,!i.IS_DART)}function a(){return u.DOM.defaultDoc()}function o(){b.BrowserDomAdapter.makeCurrent(),C.wtfInit(),E.BrowserGetTestability.init()}var i=n(1),r=n(5),p=n(3),c=n(7),l=n(56),u=n(8),h=n(161),d=n(226),f=n(225),m=n(37),g=n(160),y=n(59),v=n(59),k=n(104),_=n(103),b=n(157),E=n(218),C=n(210),T=n(24),w=n(37);e.DOCUMENT=w.DOCUMENT;var S=n(219);e.Title=S.Title;var P=n(173);e.DebugElementViewListener=P.DebugElementViewListener,e.ELEMENT_PROBE_PROVIDERS=P.ELEMENT_PROBE_PROVIDERS,e.ELEMENT_PROBE_BINDINGS=P.ELEMENT_PROBE_BINDINGS,e.inspectNativeElement=P.inspectNativeElement,e.By=P.By;var R=n(157);e.BrowserDomAdapter=R.BrowserDomAdapter;var O=n(221);e.enableDebugTools=O.enableDebugTools,e.disableDebugTools=O.disableDebugTools,e.BROWSER_PROVIDERS=i.CONST_EXPR([p.PLATFORM_COMMON_PROVIDERS,new r.Provider(p.PLATFORM_INITIALIZER,{useValue:o,multi:!0})]),e.BROWSER_APP_COMMON_PROVIDERS=i.CONST_EXPR([p.APPLICATION_COMMON_PROVIDERS,c.FORM_PROVIDERS,new r.Provider(p.PLATFORM_PIPES,{useValue:c.COMMON_PIPES,multi:!0}),new r.Provider(p.PLATFORM_DIRECTIVES,{useValue:c.COMMON_DIRECTIVES,multi:!0}),new r.Provider(p.ExceptionHandler,{useFactory:s,deps:[]}),new r.Provider(m.DOCUMENT,{useFactory:a,deps:[]}),new r.Provider(T.EVENT_MANAGER_PLUGINS,{useClass:h.DomEventsPlugin,multi:!0}),new r.Provider(T.EVENT_MANAGER_PLUGINS,{useClass:d.KeyEventsPlugin,multi:!0}),new r.Provider(T.EVENT_MANAGER_PLUGINS,{useClass:f.HammerGesturesPlugin,multi:!0}),new r.Provider(g.DomRenderer,{useClass:g.DomRenderer_}),new r.Provider(p.Renderer,{useExisting:g.DomRenderer}),new r.Provider(v.SharedStylesHost,{useExisting:y.DomSharedStylesHost}),y.DomSharedStylesHost,l.Testability,k.BrowserDetails,_.AnimationBuilder,T.EventManager]),e.initDomAdapter=o},function(t,e,n){"use strict";function s(t){return t}function a(t){return t.nodes}function o(t,e){var n=T.DOM.parentElement(t);if(e.length>0&&f.isPresent(n)){var s=T.DOM.nextSibling(t);if(f.isPresent(s))for(var a=0;ao?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},l=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},u=this&&this.__param||function(t,e){return function(n,s){e(n,s,t)}},h=n(5),d=n(103),f=n(1),m=n(4),g=n(59),y=n(36),v=n(3),k=n(24),_=n(37),b=n(154),E=n(153),C=n(16),T=n(8),w=n(162),S=f.CONST_EXPR({xlink:"http://www.w3.org/1999/xlink",svg:"http://www.w3.org/2000/svg"}),P="template bindings={}",R=/^template bindings=(.*)$/g,O=function(t){function e(){t.apply(this,arguments)}return p(e,t),e.prototype.getNativeElementSync=function(t){return s(t.renderView).boundElements[t.boundElementIndex]},e.prototype.getRootNodes=function(t){return a(t)},e.prototype.attachFragmentAfterFragment=function(t,e){var n=a(t);if(n.length>0){var s=n[n.length-1],i=a(e);o(s,i),this.animateNodesEnter(i)}},e.prototype.animateNodesEnter=function(t){for(var e=0;eo?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},o=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},i=n(8),r=n(3),p=n(24),c=function(t){function e(){t.apply(this,arguments)}return s(e,t),e.prototype.supports=function(t){return!0},e.prototype.addEventListener=function(t,e,n){var s=this.manager.getZone(),a=function(t){return s.run(function(){return n(t)})};this.manager.getZone().runOutsideAngular(function(){i.DOM.on(t,e,a)})},e.prototype.addGlobalEventListener=function(t,e,n){var s=i.DOM.getGlobalEventTarget(t),a=this.manager.getZone(),o=function(t){return a.run(function(){return n(t)})};return this.manager.getZone().runOutsideAngular(function(){return i.DOM.onAndCancel(s,e,o)})},e=a([r.Injectable(),o("design:paramtypes",[])],e)}(p.EventManagerPlugin);e.DomEventsPlugin=c},function(t,e,n){"use strict";function s(t){return o.StringWrapper.replaceAllMapped(t,i,function(t){return"-"+t[1].toLowerCase()})}function a(t){return o.StringWrapper.replaceAllMapped(t,r,function(t){return t[1].toUpperCase()})}var o=n(1),i=/([A-Z])/g,r=/-([a-z])/g;e.camelCaseToDashCase=s,e.dashCaseToCamelCase=a},,,,,function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=n(3),i=function(){function t(){this.isExpanded=!0,this.isCollapsed=!1,this.isCollapse=!0,this.isCollapsing=!1}return Object.defineProperty(t.prototype,"collapse",{get:function(){return this.isExpanded},set:function(t){this.isExpanded=t,this.toggle()},enumerable:!0,configurable:!0}),t.prototype.toggle=function(){this.isExpanded?this.hide():this.show()},t.prototype.hide=function(){var t=this;this.isCollapse=!1,this.isCollapsing=!0,this.isExpanded=!1,this.isCollapsed=!0,setTimeout(function(){t.height="0",t.isCollapse=!0,t.isCollapsing=!1},4)},t.prototype.show=function(){var t=this;this.isCollapse=!1,this.isCollapsing=!0,this.isExpanded=!0,this.isCollapsed=!1,setTimeout(function(){t.height="auto",t.isCollapse=!0,t.isCollapsing=!1},4)},s([o.HostBinding("style.height"),a("design:type",String)],t.prototype,"height",void 0),s([o.HostBinding("class.in"),o.HostBinding("attr.aria-expanded"),a("design:type",Boolean)],t.prototype,"isExpanded",void 0),s([o.HostBinding("attr.aria-hidden"),a("design:type",Boolean)],t.prototype,"isCollapsed",void 0),s([o.HostBinding("class.collapse"),a("design:type",Boolean)],t.prototype,"isCollapse",void 0),s([o.HostBinding("class.collapsing"),a("design:type",Boolean)],t.prototype,"isCollapsing",void 0),s([o.Input(),a("design:type",Boolean),a("design:paramtypes",[Boolean])],t.prototype,"collapse",null),t=s([o.Directive({selector:"[collapse]"}),a("design:paramtypes",[])],t)}();e.Collapse=i},function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=this&&this.__param||function(t,e){return function(n,s){e(n,s,t)}},i=n(3),r=function(){function t(t){this.viewRef=t}return Object.defineProperty(t.prototype,"ngTransclude",{get:function(){return this._ngTransclude},set:function(t){this._ngTransclude=t,t&&this.viewRef.createEmbeddedView(t)},enumerable:!0,configurable:!0}),t=s([i.Directive({selector:"[ngTransclude]",properties:["ngTransclude"]}),o(0,i.Inject(i.ViewContainerRef)),a("design:paramtypes",[i.ViewContainerRef])],t)}();e.NgTransclude=r},function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=this&&this.__param||function(t,e){return function(n,s){e(n,s,t)}},i=n(3),r=n(60),p=function(){function t(t,e){
-this.dropdown=t,this.el=e}return t.prototype.ngOnInit=function(){this.dropdown.dropDownMenu=this},s([i.Input(),a("design:type",String)],t.prototype,"templateUrl",void 0),t=s([i.Directive({selector:"[dropdown-menu]"}),o(0,i.Host()),a("design:paramtypes",[r.Dropdown,i.ElementRef])],t)}();e.DropdownMenu=p},function(t,e){e.ALWAYS="always",e.DISABLED="disabled",e.OUTSIDECLICK="outsideClick";var n=function(){function t(){this.closeDropdownBind=this.closeDropdown.bind(this),this.keybindFilterBind=this.keybindFilter.bind(this)}return t.prototype.open=function(t){this.openScope||(window.document.addEventListener("click",this.closeDropdownBind),window.document.addEventListener("keydown",this.keybindFilterBind)),this.openScope&&this.openScope!==this.dropdownScope&&(this.openScope.isOpen=!1),this.openScope=t},t.prototype.close=function(t){this.openScope===t&&(this.openScope=null,window.document.removeEventListener("click",this.closeDropdownBind),window.document.removeEventListener("keydown",this.keybindFilterBind))},t.prototype.closeDropdown=function(t){this.openScope&&(t&&this.openScope.autoClose===e.DISABLED||t&&this.openScope.toggleEl&&this.openScope.toggleEl.nativeElement===t.target||t&&this.openScope.autoClose===e.OUTSIDECLICK&&this.openScope.menuEl&&this.openScope.menuEl.nativeElement===t.target||(this.openScope.isOpen=!1))},t.prototype.keybindFilter=function(t){return 27===t.which?(this.openScope.focusToggleElement(),void this.closeDropdown(null)):void(this.openScope.keyboardNav&&this.openScope.isOpen&&(38===t.which||40===t.which)&&(t.preventDefault(),t.stopPropagation(),this.openScope.focusDropdownEntry(t.which)))},t}();e.DropdownService=n,e.dropdownService=new n},function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=this&&this.__param||function(t,e){return function(n,s){e(n,s,t)}},i=n(3),r=n(60),p=function(){function t(t,e){this.dropdown=t,this.el=e,this.disabled=!1,this.addClass=!0}return t.prototype.ngOnInit=function(){this.dropdown.dropDownToggle=this},Object.defineProperty(t.prototype,"isOpen",{get:function(){return this.dropdown.isOpen},enumerable:!0,configurable:!0}),t.prototype.toggleDropdown=function(t){return t.stopPropagation(),this.disabled||this.dropdown.toggle(),!1},s([i.HostBinding("class.disabled"),i.Input(),a("design:type",Boolean)],t.prototype,"disabled",void 0),s([i.HostBinding("class.dropdown-toggle"),i.HostBinding("attr.aria-haspopup"),a("design:type",Object)],t.prototype,"addClass",void 0),s([i.HostBinding("attr.aria-expanded"),a("design:type",Object)],t.prototype,"isOpen",null),s([i.HostListener("click",["$event"]),a("design:type",Function),a("design:paramtypes",[MouseEvent]),a("design:returntype",void 0)],t.prototype,"toggleDropdown",null),t=s([i.Directive({selector:"[dropdown-toggle]"}),o(0,i.Host()),a("design:paramtypes",[r.Dropdown,i.ElementRef])],t)}();e.DropdownToggle=p},function(t,e,n){"use strict";function s(t,n){c.reflector.reflectionCapabilities=new l.ReflectionCapabilities;var s=i.isPresent(n)?[e.BROWSER_APP_PROVIDERS,n]:e.BROWSER_APP_PROVIDERS;return c.platform(r.BROWSER_PROVIDERS).application(s).bootstrap(t)}var a=n(189);e.AngularEntrypoint=a.AngularEntrypoint;var o=n(159);e.BROWSER_PROVIDERS=o.BROWSER_PROVIDERS,e.ELEMENT_PROBE_BINDINGS=o.ELEMENT_PROBE_BINDINGS,e.ELEMENT_PROBE_PROVIDERS=o.ELEMENT_PROBE_PROVIDERS,e.inspectNativeElement=o.inspectNativeElement,e.BrowserDomAdapter=o.BrowserDomAdapter,e.By=o.By,e.Title=o.Title,e.DOCUMENT=o.DOCUMENT,e.enableDebugTools=o.enableDebugTools,e.disableDebugTools=o.disableDebugTools;var i=n(1),r=n(159),p=n(102),c=n(3),l=n(151),u=n(158),h=n(102),d=n(5);e.BROWSER_APP_PROVIDERS=i.CONST_EXPR([r.BROWSER_APP_COMMON_PROVIDERS,p.COMPILER_PROVIDERS,new d.Provider(h.XHR,{useClass:u.XHRImpl})]),e.bootstrap=s},function(t,e,n){"use strict";function s(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}var a=n(8);e.DOM=a.DOM,e.setRootDomAdapter=a.setRootDomAdapter,e.DomAdapter=a.DomAdapter;var o=n(160);e.DomRenderer=o.DomRenderer;var i=n(37);e.DOCUMENT=i.DOCUMENT;var r=n(59);e.SharedStylesHost=r.SharedStylesHost,e.DomSharedStylesHost=r.DomSharedStylesHost;var p=n(161);e.DomEventsPlugin=p.DomEventsPlugin;var c=n(24);e.EVENT_MANAGER_PLUGINS=c.EVENT_MANAGER_PLUGINS,e.EventManager=c.EventManager,e.EventManagerPlugin=c.EventManagerPlugin,s(n(222)),s(n(223))},function(t,e,n){"use strict";var s=n(1),a=n(156),o=n(162),i=n(2),r=n(8),p=function(){function t(t,e,n){var a=this;this.element=t,this.data=e,this.browserDetails=n,this.callbacks=[],this.eventClearFunctions=[],this.completed=!1,this._stringPrefix="",this.startTime=s.DateWrapper.toMillis(s.DateWrapper.now()),this._stringPrefix=r.DOM.getAnimationPrefix(),this.setup(),this.wait(function(t){return a.start()})}return Object.defineProperty(t.prototype,"totalTime",{get:function(){var t=null!=this.computedDelay?this.computedDelay:0,e=null!=this.computedDuration?this.computedDuration:0;return t+e},enumerable:!0,configurable:!0}),t.prototype.wait=function(t){this.browserDetails.raf(t,2)},t.prototype.setup=function(){null!=this.data.fromStyles&&this.applyStyles(this.data.fromStyles),null!=this.data.duration&&this.applyStyles({transitionDuration:this.data.duration.toString()+"ms"}),null!=this.data.delay&&this.applyStyles({transitionDelay:this.data.delay.toString()+"ms"})},t.prototype.start=function(){this.addClasses(this.data.classesToAdd),this.addClasses(this.data.animationClasses),this.removeClasses(this.data.classesToRemove),null!=this.data.toStyles&&this.applyStyles(this.data.toStyles);var t=r.DOM.getComputedStyle(this.element);this.computedDelay=a.Math.max(this.parseDurationString(t.getPropertyValue(this._stringPrefix+"transition-delay")),this.parseDurationString(this.element.style.getPropertyValue(this._stringPrefix+"transition-delay"))),this.computedDuration=a.Math.max(this.parseDurationString(t.getPropertyValue(this._stringPrefix+"transition-duration")),this.parseDurationString(this.element.style.getPropertyValue(this._stringPrefix+"transition-duration"))),this.addEvents()},t.prototype.applyStyles=function(t){var e=this;i.StringMapWrapper.forEach(t,function(t,n){var a=o.camelCaseToDashCase(n);s.isPresent(r.DOM.getStyle(e.element,a))?r.DOM.setStyle(e.element,a,t.toString()):r.DOM.setStyle(e.element,e._stringPrefix+a,t.toString())})},t.prototype.addClasses=function(t){for(var e=0,n=t.length;n>e;e++)r.DOM.addClass(this.element,t[e])},t.prototype.removeClasses=function(t){for(var e=0,n=t.length;n>e;e++)r.DOM.removeClass(this.element,t[e])},t.prototype.addEvents=function(){var t=this;this.totalTime>0?this.eventClearFunctions.push(r.DOM.onAndCancel(this.element,r.DOM.getTransitionEnd(),function(e){return t.handleAnimationEvent(e)})):this.handleAnimationCompleted()},t.prototype.handleAnimationEvent=function(t){var e=a.Math.round(1e3*t.elapsedTime);this.browserDetails.elapsedTimeIncludesDelay||(e+=this.computedDelay),t.stopPropagation(),e>=this.totalTime&&this.handleAnimationCompleted()},t.prototype.handleAnimationCompleted=function(){this.removeClasses(this.data.animationClasses),this.callbacks.forEach(function(t){return t()}),this.callbacks=[],this.eventClearFunctions.forEach(function(t){return t()}),this.eventClearFunctions=[],this.completed=!0},t.prototype.onComplete=function(t){return this.completed?t():this.callbacks.push(t),this},t.prototype.parseDurationString=function(t){var e=0;if(null==t||t.length<2)return e;if("ms"==t.substring(t.length-2)){var n=s.NumberWrapper.parseInt(this.stripLetters(t),10);n>e&&(e=n)}else if("s"==t.substring(t.length-1)){var o=1e3*s.NumberWrapper.parseFloat(this.stripLetters(t)),n=a.Math.floor(o);n>e&&(e=n)}return e},t.prototype.stripLetters=function(t){return s.StringWrapper.replaceAll(t,s.RegExpWrapper.create("[^0-9]+$",""),"")},t}();e.Animation=p},function(t,e,n){"use strict";var s=n(176),a=n(174),o=function(){function t(t){this.browserDetails=t,this.data=new s.CssAnimationOptions}return t.prototype.addAnimationClass=function(t){return this.data.animationClasses.push(t),this},t.prototype.addClass=function(t){return this.data.classesToAdd.push(t),this},t.prototype.removeClass=function(t){return this.data.classesToRemove.push(t),this},t.prototype.setDuration=function(t){return this.data.duration=t,this},t.prototype.setDelay=function(t){return this.data.delay=t,this},t.prototype.setStyles=function(t,e){return this.setFromStyles(t).setToStyles(e)},t.prototype.setFromStyles=function(t){return this.data.fromStyles=t,this},t.prototype.setToStyles=function(t){return this.data.toStyles=t,this},t.prototype.start=function(t){return new a.Animation(t,this.data,this.browserDetails)},t}();e.CssAnimationBuilder=o},function(t,e){"use strict";var n=function(){function t(){this.classesToAdd=[],this.classesToRemove=[],this.animationClasses=[]}return t}();e.CssAnimationOptions=n},,,,,,,,function(t,e,n){"use strict";function s(t,e,n,s){var o=[],i=new h(null,o,e);return l.templateVisitAll(i,s),a(o,t,n)}function a(t,e,n){var s=o(t);return t.map(function(t){var a=e.name+"_"+t.viewIndex;return new c.ChangeDetectorDefinition(a,t.strategy,s[t.viewIndex],t.bindingRecords,t.eventRecords,t.directiveRecords,n)})}function o(t){var e=i.ListWrapper.createFixedSize(t.length);return t.forEach(function(t){var n=r.isPresent(t.parent)?e[t.parent.viewIndex]:[];e[t.viewIndex]=n.concat(t.variableNames)}),e}var i=n(2),r=n(1),p=n(9),c=n(10),l=n(47),u=n(33);e.createChangeDetectorDefinitions=s;var h=function(){function t(t,e,n){this.parent=t,this.allVisitors=e,this.strategy=n,this.boundTextCount=0,this.boundElementCount=0,this.variableNames=[],this.bindingRecords=[],this.eventRecords=[],this.directiveRecords=[],this.viewIndex=e.length,e.push(this)}return t.prototype.visitEmbeddedTemplate=function(e,n){this.boundElementCount++,l.templateVisitAll(this,e.outputs);for(var s=0;s;" or ";" syntax'}function i(t){return!r(t)||t===w}function r(t){return t>=S&&O>=t||t===J}function p(t){return r(t)||t===W||t===B||t===I||t===D||t===V}function c(t){return($>t||t>Y)&&(z>t||t>G)&&(L>t||t>U)}function l(t){return t==j||t==w||!f(t)}function u(t){return t==j||t==w||!d(t)}function h(t){return t===F||t===w}function d(t){return t>=$&&Y>=t}function f(t){return t>=$&&K>=t||t>=L&&U>=t}function m(t){for(var e,n=[],s=0;s=this.length)throw this._createError(a(w),this._getLocation());this.peek===P?(this.line++,this.column=0):this.peek!==P&&this.peek!==R&&this.column++,this.index++,this.peek=this.index>=this.length?w:y.StringWrapper.charCodeAt(this.inputLowercase,this.index)},t.prototype._attemptChar=function(t){return this.peek===t?(this._advance(),!0):!1},t.prototype._requireChar=function(t){var e=this._getLocation();if(!this._attemptChar(t))throw this._createError(a(this.peek),e)},t.prototype._attemptChars=function(t){for(var e=0;es.offset&&o.push(this.input.substring(s.offset,this.index));this.peek!==e;)o.push(this._readChar(t));return this._endToken([this._processCarriageReturns(o.join(""))],s)},t.prototype._consumeComment=function(t){var e=this;this._beginToken(b.COMMENT_START,t),this._requireChar(N),this._endToken([]);var n=this._consumeRawText(!1,N,function(){return e._attemptChars("->")});this._beginToken(b.COMMENT_END,n.sourceSpan.end),this._endToken([])},t.prototype._consumeCdata=function(t){var e=this;this._beginToken(b.CDATA_START,t),this._requireChars("cdata["),this._endToken([]);var n=this._consumeRawText(!1,X,function(){return e._attemptChars("]>")});this._beginToken(b.CDATA_END,n.sourceSpan.end),this._endToken([])},t.prototype._consumeDocType=function(t){this._beginToken(b.DOC_TYPE,t),this._attemptUntilChar(W),this._advance(),this._endToken([this.input.substring(t.offset+2,this.index-1)])},t.prototype._consumePrefixAndName=function(){for(var t=this.index,e=null;this.peek!==H&&!c(this.peek);)this._advance();var n;this.peek===H?(this._advance(),e=this.input.substring(t,this.index-1),n=this.index):n=t,this._requireUntilFn(p,this.index===n?1:0);var s=this.input.substring(n,this.index);return[e,s]},t.prototype._consumeTagOpen=function(t){var e,n=this._savePosition();try{if(!d(this.peek))throw this._createError(a(this.peek),this._getLocation());var s=this.index;for(this._consumeTagOpenStart(t),e=this.inputLowercase.substring(s,this.index),this._attemptUntilFn(i);this.peek!==B&&this.peek!==W;)this._consumeAttributeName(),this._attemptUntilFn(i),this._attemptChar(V)&&(this._attemptUntilFn(i),this._consumeAttributeValue()),this._attemptUntilFn(i);this._consumeTagOpenEnd()}catch(o){if(o instanceof tt)return this._restorePosition(n),this._beginToken(b.TEXT,t),void this._endToken(["<"]);throw o}var r=_.getHtmlTagDefinition(e).contentType;r===_.HtmlTagContentType.RAW_TEXT?this._consumeRawTextWithTagClose(e,!1):r===_.HtmlTagContentType.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(e,!0)},t.prototype._consumeRawTextWithTagClose=function(t,e){var n=this,s=this._consumeRawText(e,F,function(){return n._attemptChar(B)?(n._attemptUntilFn(i),n._attemptChars(t)?(n._attemptUntilFn(i),n._attemptChar(W)?!0:!1):!1):!1});this._beginToken(b.TAG_CLOSE,s.sourceSpan.end),this._endToken([null,t])},t.prototype._consumeTagOpenStart=function(t){this._beginToken(b.TAG_OPEN_START,t);var e=this._consumePrefixAndName();this._endToken(e)},t.prototype._consumeAttributeName=function(){this._beginToken(b.ATTR_NAME);var t=this._consumePrefixAndName();this._endToken(t)},t.prototype._consumeAttributeValue=function(){this._beginToken(b.ATTR_VALUE);var t;if(this.peek===I||this.peek===D){var e=this.peek;this._advance();for(var n=[];this.peek!==e;)n.push(this._readChar(!0));t=n.join(""),this._advance()}else{var s=this.index;this._requireUntilFn(p,1),t=this.input.substring(s,this.index)}this._endToken([this._processCarriageReturns(t)])},t.prototype._consumeTagOpenEnd=function(){var t=this._attemptChar(B)?b.TAG_OPEN_END_VOID:b.TAG_OPEN_END;this._beginToken(t),this._requireChar(W),this._endToken([])},t.prototype._consumeTagClose=function(t){this._beginToken(b.TAG_CLOSE,t),this._attemptUntilFn(i);var e;e=this._consumePrefixAndName(),this._attemptUntilFn(i),this._requireChar(W),this._endToken(e)},t.prototype._consumeText=function(){var t=this._getLocation();this._beginToken(b.TEXT,t);for(var e=[this._readChar(!0)];!h(this.peek);)e.push(this._readChar(!0));this._endToken([this._processCarriageReturns(e.join(""))])},t.prototype._savePosition=function(){return[this.peek,this.index,this.column,this.line,this.tokens.length]},t.prototype._restorePosition=function(t){this.peek=t[0],this.index=t[1],this.column=t[2],this.line=t[3];var e=t[4];eo?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},o=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},i=n(5),r=n(1),p=n(2),c=n(8),l=n(26),u=n(75),h=r.CONST_EXPR({xlink:"http://www.w3.org/1999/xlink",svg:"http://www.w3.org/2000/svg"}),d=function(t){function e(){t.apply(this,arguments),this._protoElements=new Map}return s(e,t),e.prototype._getProtoElement=function(t){var e=this._protoElements.get(t);if(r.isBlank(e)){var n=l.splitNsName(t);e=r.isPresent(n[0])?c.DOM.createElementNS(h[n[0]],n[1]):c.DOM.createElement(n[1]),this._protoElements.set(t,e)}return e},e.prototype.hasProperty=function(t,e){if(-1!==t.indexOf("-"))return!0;var n=this._getProtoElement(t);return c.DOM.hasProperty(n,e)},e.prototype.getMappedPropName=function(t){var e=p.StringMapWrapper.get(c.DOM.attrToPropMap,t);return r.isPresent(e)?e:t},e=a([i.Injectable(),o("design:paramtypes",[])],e)}(u.ElementSchemaRegistry);e.DomElementSchemaRegistry=d},function(t,e,n){"use strict";function s(t){return r.StringWrapper.replaceAllMapped(t,C,function(t){return""})}function a(t,e){var n=o(t),s=0;return r.StringWrapper.replaceAllMapped(n.escapedString,T,function(t){var a=t[2],o="",i=t[4],p="";r.isPresent(t[4])&&t[4].startsWith("{"+R)&&(o=n.blocks[s++],i=t[4].substring(R.length+1),p="{");var c=e(new O(a,o));return""+t[1]+c.selector+t[3]+p+c.content+i})}function o(t){for(var e=r.StringWrapper.split(t,w),n=[],s=[],a=0,o=[],i=0;i0?o.push(p):(o.length>0&&(s.push(o.join("")),n.push(R),o=[]),n.push(p)),p==S&&a++}return o.length>0&&(s.push(o.join("")),n.push(R)),new A(n.join(""),s)}var i=n(2),r=n(1),p=function(){function t(){this.strictStyling=!0}return t.prototype.shimCssText=function(t,e,n){return void 0===n&&(n=""),t=s(t),t=this._insertDirectives(t),this._scopeCssText(t,e,n)},t.prototype._insertDirectives=function(t){return t=this._insertPolyfillDirectivesInCssText(t),this._insertPolyfillRulesInCssText(t)},t.prototype._insertPolyfillDirectivesInCssText=function(t){return r.StringWrapper.replaceAllMapped(t,c,function(t){return t[1]+"{"})},t.prototype._insertPolyfillRulesInCssText=function(t){return r.StringWrapper.replaceAllMapped(t,l,function(t){var e=t[0];return e=r.StringWrapper.replace(e,t[1],""),e=r.StringWrapper.replace(e,t[2],""),t[3]+e})},t.prototype._scopeCssText=function(t,e,n){var s=this._extractUnscopedRulesFromCssText(t);return t=this._insertPolyfillHostInCssText(t),t=this._convertColonHost(t),t=this._convertColonHostContext(t),t=this._convertShadowDOMSelectors(t),r.isPresent(e)&&(t=this._scopeSelectors(t,e,n)),t=t+"\n"+s,t.trim()},t.prototype._extractUnscopedRulesFromCssText=function(t){for(var e,n="",s=r.RegExpWrapper.matcher(u,t);r.isPresent(e=r.RegExpMatcherWrapper.next(s));){var a=e[0];a=r.StringWrapper.replace(a,e[2],""),a=r.StringWrapper.replace(a,e[1],e[3]),n+=a+"\n\n"}return n},t.prototype._convertColonHost=function(t){return this._convertColonRule(t,m,this._colonHostPartReplacer)},t.prototype._convertColonHostContext=function(t){return this._convertColonRule(t,g,this._colonHostContextPartReplacer)},t.prototype._convertColonRule=function(t,e,n){return r.StringWrapper.replaceAllMapped(t,e,function(t){if(r.isPresent(t[2])){for(var e=t[2].split(","),s=[],a=0;a","+","~"],a=t,o="["+e+"]",p=0;p0&&!i.ListWrapper.contains(s,e)&&!r.StringWrapper.contains(e,o)){var n=/([^:]*)(:*)(.*)/g,a=r.RegExpWrapper.firstMatch(n,e);r.isPresent(a)&&(t=a[1]+o+a[2]+a[3])}return t}).join(c)}return a},t.prototype._insertPolyfillHostInCssText=function(t){return t=r.StringWrapper.replaceAll(t,E,d),t=r.StringWrapper.replaceAll(t,b,h)},t}();e.ShadowCss=p;var c=/polyfill-next-selector[^}]*content:[\s]*?['"](.*?)['"][;\s]*}([^{]*?){/gim,l=/(polyfill-rule)[^}]*(content:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim,u=/(polyfill-unscoped-rule)[^}]*(content:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim,h="-shadowcsshost",d="-shadowcsscontext",f=")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)",m=r.RegExpWrapper.create("("+h+f,"im"),g=r.RegExpWrapper.create("("+d+f,"im"),y=h+"-no-combinator",v=[/>>>/g,/::shadow/g,/::content/g,/\/deep\//g,/\/shadow-deep\//g,/\/shadow\//g],k="([>\\s~+[.,{:][\\s\\S]*)?$",_=r.RegExpWrapper.create(h,"im"),b=/:host/gim,E=/:host-context/gim,C=/\/\*[\s\S]*?\*\//g,T=/(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g,w=/([{}])/g,S="{",P="}",R="%BLOCK%",O=function(){function t(t,e){this.selector=t,this.content=e}return t}();e.CssRule=O,e.processRules=a;var A=function(){function t(t,e){this.escapedString=t,this.blocks=e}return t}()},function(t,e,n){"use strict";var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),
-i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=n(1),i=function(){function t(t){this.name=t}return t=s([o.CONST(),a("design:paramtypes",[String])],t)}();e.AngularEntrypoint=i},,,,,,,,,,,,,,,,,,,,,function(t,e){"use strict";function n(){}e.wtfInit=n},,,,,function(t,e){"use strict";var n=window;e.window=n,e.document=window.document,e.location=window.location,e.gc=window.gc?function(){return window.gc()}:function(){return null},e.performance=window.performance?window.performance:null,e.Event=window.Event,e.MouseEvent=window.MouseEvent,e.KeyboardEvent=window.KeyboardEvent,e.EventTarget=window.EventTarget,e.History=window.History,e.Location=window.Location,e.EventListener=window.EventListener},,function(t,e,n){"use strict";var s=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var s in e)e.hasOwnProperty(s)&&(t[s]=e[s]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},a=n(2),o=n(1),i=n(8),r=n(158),p=function(t){function e(){var e=this;t.call(this),this._animationPrefix=null,this._transitionEnd=null;try{var n=this.createElement("div",this.defaultDoc());if(o.isPresent(this.getStyle(n,"animationName")))this._animationPrefix="";else for(var s=["Webkit","Moz","O","ms"],i=0;ip||i.DOM.performanceNow()-r<500;)this.appRef.tick(),p++;var c=i.DOM.performanceNow();e&&s&&o.window.console.profileEnd(n);var l=(c-r)/p;o.window.console.log("ran "+p+" change detection cycles"),o.window.console.log(a.NumberWrapper.toFixed(l,2)+" ms per check")},t}();e.AngularProfiler=p},function(t,e,n){"use strict";function s(t){r.ng=new i.AngularTools(t)}function a(){delete r.ng}var o=n(1),i=n(220),r=o.global;e.enableDebugTools=s,e.disableDebugTools=a},function(t,e,n){"use strict";var s=n(1),a=n(8),o=function(){function t(){}return t.all=function(){return function(t){return!0}},t.css=function(t){return function(e){return s.isPresent(e.nativeElement)?a.DOM.elementMatches(e.nativeElement,t):!1}},t.directive=function(t){return function(e){return e.hasDirective(t)}},t}();e.By=o},function(t,e,n){"use strict";function s(t,e){p.isPresent(t)&&h.DOM.isElementNode(t)&&h.DOM.setData(t,m,e.join(y))}function a(t){var e=h.DOM.getData(t,m);return p.isPresent(e)?e.split(y).map(function(t){return p.NumberWrapper.parseInt(t,10)}):null}function o(t){var e=a(t);if(p.isPresent(e)){var n=k.get(e[0]);if(p.isPresent(n))return new f.DebugElement_(n,e[1])}return null}var i=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},p=n(1),c=n(2),l=n(5),u=n(89),h=n(8),d=n(18),f=n(140),m="ngid",g="ng.probe",y="#",v=new c.Map,k=new c.Map,_=0;e.inspectNativeElement=o;var b=function(){function t(t){this._renderer=t,h.DOM.setGlobalVar(g,o)}return t.prototype.onViewCreated=function(t){var e=_++;k.set(e,t),v.set(t,e);for(var n=0;no?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},o=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},i=n(224),r=n(1),p=n(4),c=n(5),l=function(t){function e(){t.apply(this,arguments)}return s(e,t),e.prototype.supports=function(e){if(!t.prototype.supports.call(this,e))return!1;if(!r.isPresent(window.Hammer))throw new p.BaseException("Hammer.js is not loaded, can not bind "+e+" event");return!0},e.prototype.addEventListener=function(t,e,n){var s=this.manager.getZone();e=e.toLowerCase(),s.runOutsideAngular(function(){var a=new Hammer(t);a.get("pinch").set({enable:!0}),a.get("rotate").set({enable:!0}),a.on(e,function(t){s.run(function(){n(t)})})})},e=a([c.Injectable(),o("design:paramtypes",[])],e)}(i.HammerGesturesPluginCommon);e.HammerGesturesPlugin=l},function(t,e,n){"use strict";var s=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var s in e)e.hasOwnProperty(s)&&(t[s]=e[s]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},a=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},o=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},i=n(8),r=n(1),p=n(2),c=n(24),l=n(5),u=["alt","control","meta","shift"],h={alt:function(t){return t.altKey},control:function(t){return t.ctrlKey},meta:function(t){return t.metaKey},shift:function(t){return t.shiftKey}},d=function(t){function e(){t.call(this)}return s(e,t),e.prototype.supports=function(t){return r.isPresent(e.parseEventName(t))},e.prototype.addEventListener=function(t,n,s){var a=e.parseEventName(n),o=e.eventCallback(t,p.StringMapWrapper.get(a,"fullKey"),s,this.manager.getZone());this.manager.getZone().runOutsideAngular(function(){i.DOM.on(t,p.StringMapWrapper.get(a,"domEventName"),o)})},e.parseEventName=function(t){var n=t.toLowerCase().split("."),s=n.shift();if(0===n.length||!r.StringWrapper.equals(s,"keydown")&&!r.StringWrapper.equals(s,"keyup"))return null;var a=e._normalizeKey(n.pop()),o="";if(u.forEach(function(t){p.ListWrapper.contains(n,t)&&(p.ListWrapper.remove(n,t),o+=t+".")}),o+=a,0!=n.length||0===a.length)return null;var i=p.StringMapWrapper.create();return p.StringMapWrapper.set(i,"domEventName",s),p.StringMapWrapper.set(i,"fullKey",o),i},e.getEventFullKey=function(t){var e="",n=i.DOM.getEventKey(t);return n=n.toLowerCase(),r.StringWrapper.equals(n," ")?n="space":r.StringWrapper.equals(n,".")&&(n="dot"),u.forEach(function(s){if(s!=n){var a=p.StringMapWrapper.get(h,s);a(t)&&(e+=s+".")}}),e+=n},e.eventCallback=function(t,n,s,a){return function(t){r.StringWrapper.equals(e.getEventFullKey(t),n)&&a.run(function(){return s(t)})}},e._normalizeKey=function(t){switch(t){case"esc":return"escape";default:return t}},e=a([l.Injectable(),o("design:paramtypes",[])],e)}(c.EventManagerPlugin);e.KeyEventsPlugin=d},function(t,e){"use strict";var n=function(){function t(t){}return t.prototype.generate=function(t,e,n){throw"Not implemented in JS"},t.prototype.toString=function(){throw"Not implemented in JS"},t}();e.Codegen=n},function(t,e){t.exports='Usage \nimport { FileSelect, FileDrop, FileUploader} from \'ng2-file-upload\' ; \n \nAnnotations \n\n@Directive ( { \n selector: \'[ng2-file-select]\' , \n properties: [ \'uploader\' ] , \n host: { \n \'(change)\' : \'onChange()\' \n } \n} ) \n \n\n@Directive ( { \n selector: \'[ng2-file-drop]\' , \n properties: [ \'uploader\' ] , \n events: [ \'fileOver\' ] , \n host: { \n \'(drop)\' : \'onDrop($event)\' , \n \'(dragover)\' : \'onDragOver($event)\' , \n \'(dragleave)\' : \'onDragLeave($event)\' \n } \n} ) \n \nFileSelect API \nProperties \n\nuploader - (FileUploader) - uploader object. See using in demo
\nParameters that supported by this object:
\n \nurl - URL of File Uploader's route
\n \nauthToken - auth token that will be applied as 'Authorization' header during file send. \n \nFileDrop API \nProperties \n\nuploader - (FileUploader) - uploader object. See using in demo \n \nEvents \n\nfile-over - it fires during 'over' and 'out' events for Drop Area; returns boolean: true if file is over Drop Area, false in case of out.\nSee using in ts demo and\nhtml demo \n \n'},function(t,e){t.exports='Getting started \nFirst of all, Welcome! \nInstall \nInstall the components
\nnpm install ng2-file-upload --save\n '},function(t,e){t.exports='var express = require ( \'express\' ) ; \nvar multer = require ( \'multer\' ) ; \nvar fs = require ( \'fs\' ) ; \nvar app = express ( ) ; \n\nvar DIR = \'./uploads/\' ; \n\nvar upload = multer ( { dest: DIR} ) ; \n\napp. use ( function ( req, res, next) { \n res. setHeader ( \'Access-Control-Allow-Origin\' , \'http://valor-software.github.io\' ) ; \n res. setHeader ( \'Access-Control-Allow-Methods\' , \'POST\' ) ; \n res. setHeader ( \'Access-Control-Allow-Headers\' , \'X-Requested-With,content-type\' ) ; \n res. setHeader ( \'Access-Control-Allow-Credentials\' , true ) ; \n next ( ) ; \n} ) ; \n\napp. use ( multer ( { \n dest: DIR, \n rename: function ( fieldname, filename) { \n return filename + Date. now ( ) ; \n } , \n onFileUploadStart: function ( file) { \n console. log ( file. originalname + \' is starting ...\' ) ; \n } , \n onFileUploadComplete: function ( file) { \n console. log ( file. fieldname + \' uploaded to \' + file. path) ; \n } \n} ) ) ; \n\napp. get ( \'/api\' , function ( req, res) { \n res. end ( \'file catcher example\' ) ; \n} ) ; \n\napp. post ( \'/api\' , function ( req, res) { \n upload ( req, res, function ( err) { \n if ( err) { \n return res. end ( err. toString ( ) ) ; \n } \n\n res. end ( \'File is uploaded\' ) ; \n } ) ; \n} ) ; \n\nvar PORT = process. env. PORT || 3000 ; \n\napp. listen ( PORT, function ( ) { \n console. log ( \'Working on port \' + PORT) ; \n} ) ; \n'},function(t,e){t.exports='< style> \n .my-drop-zone { border : dotted 3px lightgray; } \n .nv-file-over { border : dotted 3px red; } \n .another-file-over-class { border : dotted 3px green; } \n\n html, body { height : 100%; } \n</ style> \n\n< div class = " container" > \n\n < div class = " navbar navbar-default" > \n < div class = " navbar-header" > \n < a class = " navbar-brand" href > Angular2 File Upload</ a> \n </ div> \n </ div> \n\n < div class = " row" > \n\n < div class = " col-md-3" > \n\n < h3> Select files</ h3> \n\n < div ng2-file-drop \n [ngClass] = " {\' nv-file-over\' : hasBaseDropZoneOver}" \n (file-over) = " fileOverBase($event)" \n [uploader] = " uploader" \n class = " well my-drop-zone" > \n Base drop zone\n </ div> \n\n < div ng2-file-drop \n [ngClass] = " {\' another-file-over-class\' : hasAnotherDropZoneOver}" \n (file-over) = " fileOverAnother($event)" \n [uploader] = " uploader" \n class = " well my-drop-zone" > \n Another drop zone\n </ div> \n\n Multiple\n < input type = " file" ng2-file-select [uploader] = " uploader" multiple /> < br/> \n\n Single\n < input type = " file" ng2-file-select [uploader] = " uploader" /> \n </ div> \n\n < div class = " col-md-9" style =" margin-bottom : 40px" > \n\n < h3> Upload queue</ h3> \n < p> Queue length: {{ uploader?.queue?.length }}</ p> \n\n < table class = " table" > \n < thead> \n < tr> \n < th width = " 50%" > Name</ th> \n < th> Size</ th> \n < th> Progress</ th> \n < th> Status</ th> \n < th> Actions</ th> \n </ tr> \n </ thead> \n < tbody> \n < tr *ngFor = " #item of uploader.queue" > \n < td> < strong> {{ item?.file?.name }}</ strong> </ td> \n < td *ngIf = " uploader.isHTML5" nowrap > {{ item?.file?.size/1024/1024 | number:\'.2\' }} MB</ td> \n < td *ngIf = " uploader.isHTML5" > \n < div class = " progress" style =" margin-bottom : 0; " > \n < div class = " progress-bar" role = " progressbar" [ngStyle] = " { \' width\' : item.progress + \' %\' }" > </ div> \n </ div> \n </ td> \n < td class = " text-center" > \n < span *ngIf = " item.isSuccess" > < i class = " glyphicon glyphicon-ok" > </ i> </ span> \n < span *ngIf = " item.isCancel" > < i class = " glyphicon glyphicon-ban-circle" > </ i> </ span> \n < span *ngIf = " item.isError" > < i class = " glyphicon glyphicon-remove" > </ i> </ span> \n </ td> \n < td nowrap > \n < button type = " button" class = " btn btn-success btn-xs" \n (click) = " item.upload()" [disabled] = " item.isReady || item.isUploading || item.isSuccess" > \n < span class = " glyphicon glyphicon-upload" > </ span> Upload\n </ button> \n < button type = " button" class = " btn btn-warning btn-xs" \n (click) = " item.cancel()" [disabled] = " !item.isUploading" > \n < span class = " glyphicon glyphicon-ban-circle" > </ span> Cancel\n </ button> \n < button type = " button" class = " btn btn-danger btn-xs" \n (click) = " item.remove()" > \n < span class = " glyphicon glyphicon-trash" > </ span> Remove\n </ button> \n </ td> \n </ tr> \n </ tbody> \n </ table> \n\n < div> \n < div> \n Queue progress:\n < div class = " progress" style =" " > \n < div class = " progress-bar" role = " progressbar" [ngStyle] = " { \' width\' : uploader.progress + \' %\' }" > </ div> \n </ div> \n </ div> \n < button type = " button" class = " btn btn-success btn-s" \n (click) = " uploader.uploadAll()" [disabled] = " !uploader.getNotUploadedItems().length" > \n < span class = " glyphicon glyphicon-upload" > </ span> Upload all\n </ button> \n < button type = " button" class = " btn btn-warning btn-s" \n (click) = " uploader.cancelAll()" [disabled] = " !uploader.isUploading" > \n < span class = " glyphicon glyphicon-ban-circle" > </ span> Cancel all\n </ button> \n < button type = " button" class = " btn btn-danger btn-s" \n (click) = " uploader.clearQueue()" [disabled] = " !uploader.queue.length" > \n < span class = " glyphicon glyphicon-trash" > </ span> Remove all\n </ button> \n </ div> \n\n </ div> \n\n </ div> \n\n</ div> \n';
-},function(t,e){t.exports='\n\nimport { Component} from \'angular2/core\' ; \nimport { CORE_DIRECTIVES, FORM_DIRECTIVES, NgClass, NgStyle} from \'angular2/common\' ; \nimport { FILE_UPLOAD_DIRECTIVES, FileUploader} from \'../../../ng2-file-upload\' ; \n\n\nlet template = require ( \'./simple-demo.html\' ) ; \n\n\nconst URL = \'https://evening-anchorage-3159.herokuapp.com/api/\' ; \n\n@Component ( { \n selector: \'simple-demo\' , \n template: template, \n directives: [ FILE_UPLOAD_DIRECTIVES, NgClass, NgStyle, CORE_DIRECTIVES, FORM_DIRECTIVES] \n} ) \nexport class SimpleDemo { \n private uploader: FileUploader = new FileUploader ( { url: URL} ) ; \n private hasBaseDropZoneOver: boolean = false ; \n private hasAnotherDropZoneOver: boolean = false ; \n\n private fileOverBase ( e: any ) { \n this . hasBaseDropZoneOver = e; \n } \n\n private fileOverAnother ( e: any ) { \n this . hasAnotherDropZoneOver = e; \n } \n} \n'},function(t,e){t.exports='\n\n\n\n
\n \n
\n\n
\n\n
\n\n
Select files \n\n
\n Base drop zone\n
\n\n
\n Another drop zone\n
\n\n Multiple\n
\n\n Single\n
\n
\n\n
\n\n
Upload queue \n
Queue length: {{ uploader?.queue?.length }}
\n\n
\n \n \n Name \n Size \n Progress \n Status \n Actions \n \n \n \n \n {{ item?.file?.name }} \n {{ item?.file?.size/1024/1024 | number:\'.2\' }} MB \n \n \n \n \n \n \n \n \n \n \n Upload\n \n \n Cancel\n \n \n Remove\n \n \n \n \n
\n\n
\n
\n
\n Upload all\n \n
\n Cancel all\n \n
\n Remove all\n \n
\n\n
\n\n
\n\n
\n'},,,,,,,,,,function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=n(3),i=n(7),r=n(260),p=n(244),c="File Upload",l=n(228),u=[{heading:"Simple",ts:n(232),html:n(231),js:n(230)}],h="";u.forEach(function(t){h+='\n \n \n\n <'+t.heading.toLowerCase()+"-demo *ngIf=\"currentHeading === '"+t.heading+"'\">"+t.heading.toLowerCase()+'-demo>\n\n
\n\n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n \n "});var d=function(){function t(){this.currentHeading="Simple"}return t.prototype.select=function(t){t.heading&&(this.currentHeading=t.heading)},t=s([o.Component({selector:"file-upload-section",template:'\n \n \n \n\n '+h+'\n\n \n
\n\n \n \n ",directives:[p.SimpleDemo,r.TAB_DIRECTIVES,i.CORE_DIRECTIVES]}),a("design:paramtypes",[])],t)}();e.FileUploadSection=d},function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=n(3),i=n(7),r=n(99),p=n(233),c="https://evening-anchorage-3159.herokuapp.com/api/",l=function(){function t(){this.uploader=new r.FileUploader({url:c}),this.hasBaseDropZoneOver=!1,this.hasAnotherDropZoneOver=!1}return t.prototype.fileOverBase=function(t){this.hasBaseDropZoneOver=t},t.prototype.fileOverAnother=function(t){this.hasAnotherDropZoneOver=t},t=s([o.Component({selector:"simple-demo",template:p,directives:[r.FILE_UPLOAD_DIRECTIVES,i.NgClass,i.NgStyle,i.CORE_DIRECTIVES,i.FORM_DIRECTIVES]}),a("design:paramtypes",[])],t)}();e.SimpleDemo=l},function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=this&&this.__param||function(t,e){return function(n,s){e(n,s,t)}},i=n(3),r=n(7),p=n(167),c=function(){function t(){this.addPanelGroupClass=!0,this.groups=[]}return t.prototype.closeOtherGroups=function(t){this.closeOthers&&this.groups.forEach(function(e){e!==t&&(e.isOpen=!1)})},t.prototype.addGroup=function(t){this.groups.push(t)},t.prototype.removeGroup=function(t){var e=this.groups.indexOf(t);-1!==e&&this.groups.slice(e,1)},s([i.Input(),a("design:type",String)],t.prototype,"templateUrl",void 0),s([i.Input(),a("design:type",Boolean)],t.prototype,"closeOthers",void 0),s([i.HostBinding("class.panel-group"),a("design:type",Object)],t.prototype,"addPanelGroupClass",void 0),t=s([i.Component({selector:"accordion",template:" "}),a("design:paramtypes",[])],t)}();e.Accordion=c;var l=function(){function t(t){this.viewRef=t}return t.prototype.ngOnInit=function(){this.accordionTransclude&&this.viewRef.createEmbeddedView(this.accordionTransclude)},s([i.Input(),a("design:type",i.TemplateRef)],t.prototype,"accordionTransclude",void 0),t=s([i.Directive({selector:"[accordionTransclude]"}),o(0,i.Inject(i.ViewContainerRef)),a("design:paramtypes",[i.ViewContainerRef])],t)}();e.AccordionTransclude=l;var u=function(){function t(t){this.accordion=t}return Object.defineProperty(t.prototype,"isOpen",{get:function(){return this._isOpen},set:function(t){this._isOpen=t,t&&this.accordion.closeOtherGroups(this)},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.panelClass=this.panelClass||"panel-default",this.accordion.addGroup(this)},t.prototype.ngOnDestroy=function(){this.accordion.removeGroup(this)},t.prototype.toggleOpen=function(t){t.preventDefault(),this.isDisabled||(this.isOpen=!this.isOpen)},s([i.Input(),a("design:type",String)],t.prototype,"templateUrl",void 0),s([i.Input(),a("design:type",String)],t.prototype,"heading",void 0),s([i.Input(),a("design:type",String)],t.prototype,"panelClass",void 0),s([i.Input(),a("design:type",Boolean)],t.prototype,"isDisabled",void 0),s([i.HostBinding("class.panel-open"),i.Input(),a("design:type",Boolean)],t.prototype,"isOpen",null),t=s([i.Component({selector:"accordion-group",directives:[p.Collapse,l,r.NgClass],template:'\n \n '}),a("design:paramtypes",[c])],t)}();e.AccordionGroup=u;var h=function(){function t(t,e){this.group=t,this.templateRef=e,t.headingTemplate=e}return t=s([i.Directive({selector:"[accordion-heading]"}),a("design:paramtypes",[u,i.TemplateRef])],t)}();e.AccordionHeading=h,e.ACCORDION_DIRECTIVES=[c,u,h],e.accordion=[c,u,h]},function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=n(3),i=n(7),r='\n \n \n × \n Close \n \n \n
\n ',p=function(){function t(t){this.el=t,this.type="warning",this.close=new o.EventEmitter,this.classes=[],this.dismissible=this.dismissible||t.nativeElement.getAttribute("(close)")}return t.prototype.ngOnInit=function(){var t=this;this.classes[0]="alert-"+this.type,this.dismissible?this.classes[1]="alert-dismissible":this.classes.length=1,this.dismissOnTimeout&&setTimeout(function(){return t.onClose()},this.dismissOnTimeout)},t.prototype.onClose=function(){this.close.next(this),this.closed=!0},s([o.Input(),a("design:type",String)],t.prototype,"type",void 0),s([o.Input(),a("design:type",Boolean)],t.prototype,"dismissible",void 0),s([o.Input(),a("design:type",Number)],t.prototype,"dismissOnTimeout",void 0),s([o.Output(),a("design:type",o.EventEmitter)],t.prototype,"close",void 0),t=s([o.Component({selector:"alert",directives:[i.NgIf,i.NgClass],template:r}),a("design:paramtypes",[o.ElementRef])],t)}();e.Alert=p},function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=this&&this.__param||function(t,e){return function(n,s){e(n,s,t)}},i=n(3),r=n(7),p=function(){function t(t){this.cd=t,this.state=!1,this.onChange=function(t){},this.onTouched=function(){},t.valueAccessor=this}return t.prototype.onClick=function(){this.toggle(!this.state),this.cd.viewToModelUpdate(this.value)},t.prototype.ngOnInit=function(){this.toggle(this.trueValue===this.value)},Object.defineProperty(t.prototype,"trueValue",{get:function(){return"undefined"!=typeof this.btnCheckboxTrue?this.btnCheckboxTrue:!0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"falseValue",{get:function(){return"undefined"!=typeof this.btnCheckboxFalse?this.btnCheckboxFalse:!1},enumerable:!0,configurable:!0}),t.prototype.toggle=function(t){this.state=t,this.value=this.state?this.trueValue:this.falseValue},t.prototype.writeValue=function(t){this.state=this.trueValue===t,this.value=t},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},s([i.Input(),a("design:type",Object)],t.prototype,"btnCheckboxTrue",void 0),s([i.Input(),a("design:type",Object)],t.prototype,"btnCheckboxFalse",void 0),s([i.HostBinding("class.active"),a("design:type",Boolean)],t.prototype,"state",void 0),s([i.HostListener("click"),a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",void 0)],t.prototype,"onClick",null),t=s([i.Directive({selector:"[btnCheckbox][ngModel]"}),o(0,i.Self()),a("design:paramtypes",[r.NgModel])],t)}();e.ButtonCheckbox=p},function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=this&&this.__param||function(t,e){return function(n,s){e(n,s,t)}},i=n(3),r=n(7),p=function(){function t(t,e){this.cd=t,this.el=e,this.onChange=function(t){},this.onTouched=function(){},t.valueAccessor=this}return Object.defineProperty(t.prototype,"isActive",{get:function(){return this.btnRadio===this.value},enumerable:!0,configurable:!0}),t.prototype.onClick=function(){return this.uncheckable&&this.btnRadio===this.value?this.cd.viewToModelUpdate(null):void this.cd.viewToModelUpdate(this.btnRadio)},t.prototype.ngOnInit=function(){this.uncheckable="undefined"!=typeof this.uncheckable},Object.defineProperty(t.prototype,"value",{get:function(){return this.cd.viewModel},set:function(t){this.cd.viewModel=t},enumerable:!0,configurable:!0}),t.prototype.writeValue=function(t){this.value=t},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},s([i.Input(),a("design:type",String)],t.prototype,"btnRadio",void 0),s([i.Input(),a("design:type",Boolean)],t.prototype,"uncheckable",void 0),s([i.HostBinding("class.active"),a("design:type",Object)],t.prototype,"isActive",null),s([i.HostListener("click"),a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",void 0)],t.prototype,"onClick",null),t=s([i.Directive({selector:"[btnRadio][ngModel]"}),o(0,i.Self()),a("design:paramtypes",[r.NgModel,i.ElementRef])],t)}();e.ButtonRadio=p},function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=n(3),i=n(7),r=n(100);!function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.NEXT=1]="NEXT",t[t.PREV=2]="PREV"}(e.Direction||(e.Direction={}));var p=e.Direction,c=(h={},h[r.Ng2BootstrapTheme.BS4]='\n \n \n Previous \n \n \n \n Next \n \n ',h[r.Ng2BootstrapTheme.BS3]='\n \n \n \n \n \n \n ',h),l=function(){function t(){this.slides=[],this.destroyed=!1}return Object.defineProperty(t.prototype,"interval",{get:function(){return this._interval},set:function(t){this._interval=t,this.restartTimer()},enumerable:!0,configurable:!0}),t.prototype.ngOnDestroy=function(){this.destroyed=!0},t.prototype.select=function(t,e){void 0===e&&(e=p.UNKNOWN);var n=t.index;e===p.UNKNOWN&&(e=n>this.getCurrentIndex()?p.NEXT:p.PREV),t&&t!==this.currentSlide&&this.goNext(t,e)},t.prototype.goNext=function(t,e){this.destroyed||(t.direction=e,t.active=!0,this.currentSlide&&(this.currentSlide.direction=e,this.currentSlide.active=!1),this.currentSlide=t,this.restartTimer())},t.prototype.getSlideByIndex=function(t){for(var e=this.slides.length,n=0;e>n;++n)if(this.slides[n].index===t)return this.slides[n]},t.prototype.getCurrentIndex=function(){return this.currentSlide?this.currentSlide.index:0},t.prototype.next=function(){var t=(this.getCurrentIndex()+1)%this.slides.length;return 0===t&&this.noWrap?void this.pause():this.select(this.getSlideByIndex(t),p.NEXT)},t.prototype.prev=function(){var t=this.getCurrentIndex()-1<0?this.slides.length-1:this.getCurrentIndex()-1;return this.noWrap&&t===this.slides.length-1?void this.pause():this.select(this.getSlideByIndex(t),p.PREV)},t.prototype.restartTimer=function(){var t=this;this.resetTimer();var e=+this.interval;!isNaN(e)&&e>0&&(this.currentInterval=setInterval(function(){var e=+t.interval;t.isPlaying&&!isNaN(t.interval)&&e>0&&t.slides.length?t.next():t.pause()},e))},t.prototype.resetTimer=function(){this.currentInterval&&(clearInterval(this.currentInterval),this.currentInterval=null)},t.prototype.play=function(){this.isPlaying||(this.isPlaying=!0,this.restartTimer())},t.prototype.pause=function(){this.noPause||(this.isPlaying=!1,this.resetTimer())},t.prototype.addSlide=function(t){t.index=this.slides.length,this.slides.push(t),1===this.slides.length||t.active?(this.select(this.slides[this.slides.length-1]),1===this.slides.length&&this.play()):t.active=!1},t.prototype.removeSlide=function(t){if(this.slides.splice(t.index,1),0===this.slides.length)return void(this.currentSlide=null);for(var e=0;e\n \n \n \n
\n '+c[r.Ng2BootstrapConfig.theme]+"\n \n "}),a("design:paramtypes",[])],t)}();e.Carousel=l;var u=function(){function t(t){this.carousel=t,this.addClass=!0}return t.prototype.ngOnInit=function(){this.carousel.addSlide(this)},t.prototype.ngOnDestroy=function(){this.carousel.removeSlide(this)},s([o.Input(),a("design:type",Number)],t.prototype,"index",void 0),s([o.Input(),a("design:type",Number)],t.prototype,"direction",void 0),s([o.HostBinding("class.active"),o.Input(),a("design:type",Boolean)],t.prototype,"active",void 0),s([o.HostBinding("class.item"),o.HostBinding("class.carousel-item"),a("design:type",Boolean)],t.prototype,"addClass",void 0),t=s([o.Component({selector:"slide",directives:[i.NgClass],template:'\n \n \n
\n '}),a("design:paramtypes",[l])],t)}();e.Slide=u,e.CAROUSEL_DIRECTIVES=[l,u],e.carousel=[l,u];var h},function(t,e,n){var s=n(60),a=n(169),o=n(171);e.DROPDOWN_DIRECTIVES=[s.Dropdown,a.DropdownMenu,o.DropdownToggle],e.dropdown=[s.Dropdown,a.DropdownMenu,o.DropdownToggle]},function(t,e,n){var s=this&&this.__extends||function(t,e){function n(){this.constructor=t}for(var s in e)e.hasOwnProperty(s)&&(t[s]=e[s]);t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},a=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},o=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},i=this&&this.__param||function(t,e){return function(n,s){e(n,s,t)}},r=n(3),p=n(7),c={maxSize:void 0,itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0},l='\n \n ',u=function(){function t(t,e,n){this.cd=t,this.renderer=e,this.elementRef=n,this.numPages=new r.EventEmitter,this.pageChanged=new r.EventEmitter,this.inited=!1,this.onChange=function(t){},this.onTouched=function(){},t.valueAccessor=this,this.config=this.config||c}return Object.defineProperty(t.prototype,"itemsPerPage",{get:function(){return this._itemsPerPage},set:function(t){this._itemsPerPage=t,this.totalPages=this.calculateTotalPages()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"totalItems",{get:function(){return this._totalItems},set:function(t){this._totalItems=t,this.totalPages=this.calculateTotalPages()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"totalPages",{get:function(){return this._totalPages},set:function(t){this._totalPages=t,this.numPages.emit(t),this.inited&&this.selectPage(this.page)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"page",{get:function(){return this._page},set:function(t){this._page=t>this.totalPages?this.totalPages:t||1,this.pageChanged.emit({page:this._page,itemsPerPage:this.itemsPerPage})},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.classMap=this.elementRef.nativeElement.getAttribute("class")||"",this.maxSize="undefined"!=typeof this.maxSize?this.maxSize:c.maxSize,this.rotate="undefined"!=typeof this.rotate?this.rotate:c.rotate,
-this.boundaryLinks="undefined"!=typeof this.boundaryLinks?this.boundaryLinks:c.boundaryLinks,this.directionLinks="undefined"!=typeof this.directionLinks?this.directionLinks:c.directionLinks,this.itemsPerPage="undefined"!=typeof this.itemsPerPage?this.itemsPerPage:c.itemsPerPage,this.totalPages=this.calculateTotalPages(),this.pages=this.getPages(this.page,this.totalPages),this.page=this.cd.value,this.inited=!0},t.prototype.writeValue=function(t){this.page=t,this.pages=this.getPages(this.page,this.totalPages)},t.prototype.selectPage=function(t,e){if(e&&e.preventDefault(),!this.disabled){if(e&&e.target){var n=e.target;n.blur()}this.writeValue(t),this.cd.viewToModelUpdate(this.page)}},t.prototype.getText=function(t){return this[t+"Text"]||c[t+"Text"]},t.prototype.noPrevious=function(){return 1===this.page},t.prototype.noNext=function(){return this.page===this.totalPages},t.prototype.makePage=function(t,e,n){return{number:t,text:e,active:n}},t.prototype.getPages=function(t,e){var n=[],s=1,a=e,o="undefined"!=typeof this.maxSize&&this.maxSizee&&(a=e,s=a-this.maxSize+1)):(s=(Math.ceil(t/this.maxSize)-1)*this.maxSize+1,a=Math.min(s+this.maxSize-1,e)));for(var i=s;a>=i;i++){var r=this.makePage(i,i.toString(),i===t);n.push(r)}if(o&&!this.rotate){if(s>1){var p=this.makePage(s-1,"...",!1);n.unshift(p)}if(e>a){var c=this.makePage(a+1,"...",!1);n.push(c)}}return n},t.prototype.calculateTotalPages=function(){var t=this.itemsPerPage<1?1:Math.ceil(this.totalItems/this.itemsPerPage);return Math.max(t||0,1)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},a([r.Input(),o("design:type",Number)],t.prototype,"maxSize",void 0),a([r.Input(),o("design:type",Boolean)],t.prototype,"boundaryLinks",void 0),a([r.Input(),o("design:type",Boolean)],t.prototype,"directionLinks",void 0),a([r.Input(),o("design:type",String)],t.prototype,"firstText",void 0),a([r.Input(),o("design:type",String)],t.prototype,"previousText",void 0),a([r.Input(),o("design:type",String)],t.prototype,"nextText",void 0),a([r.Input(),o("design:type",String)],t.prototype,"lastText",void 0),a([r.Input(),o("design:type",Boolean)],t.prototype,"rotate",void 0),a([r.Input(),o("design:type",Boolean)],t.prototype,"disabled",void 0),a([r.Output(),o("design:type",r.EventEmitter)],t.prototype,"numPages",void 0),a([r.Output(),o("design:type",r.EventEmitter)],t.prototype,"pageChanged",void 0),a([r.Input(),o("design:type",Object)],t.prototype,"itemsPerPage",null),a([r.Input(),o("design:type",Number)],t.prototype,"totalItems",null),t=a([r.Component({selector:"pagination[ngModel]",template:l,directives:[p.NgFor,p.NgIf]}),i(0,r.Self()),o("design:paramtypes",[p.NgModel,r.Renderer,r.ElementRef])],t)}();e.Pagination=u;var h={itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0},d='\n \n',f=function(t){function e(e,n,s){t.call(this,e,n,s),this.config=h}return s(e,t),e=a([r.Component({selector:"pager[ngModel]",properties:["align","totalItems","itemsPerPage","previousText","nextText"],template:d,directives:[p.NgClass]}),i(0,r.Self()),o("design:paramtypes",[p.NgModel,r.Renderer,r.ElementRef])],e)}(u);e.Pager=f,e.PAGINATION_DIRECTIVES=[u,f],e.pagination=[u,f]},function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=this&&this.__param||function(t,e){return function(n,s){e(n,s,t)}},i=n(3),r=n(7),p={animate:!0,max:100},c=function(){function t(){this.addClass="progress",this.bars=[]}return Object.defineProperty(t.prototype,"max",{get:function(){return this._max},set:function(t){this._max=t,this.bars.forEach(function(t){t.recalculatePercentage()})},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.animate=this.animate!==!1,this.max="number"==typeof this.max?this.max:p.max},t.prototype.addBar=function(t){this.animate||(t.transition="none"),this.bars.push(t)},t.prototype.removeBar=function(t){this.bars.splice(this.bars.indexOf(t),1)},s([i.Input(),a("design:type",Boolean)],t.prototype,"animate",void 0),s([i.HostBinding("attr.max"),i.Input(),a("design:type",Number)],t.prototype,"max",null),s([i.HostBinding("class"),a("design:type",Object)],t.prototype,"addClass",void 0),t=s([i.Directive({selector:"bs-progress, [progress]"}),a("design:paramtypes",[])],t)}();e.Progress=c;var l=function(){function t(t){this.progress=t,this.percent=0}return Object.defineProperty(t.prototype,"value",{get:function(){return this._value},set:function(t){(t||0===t)&&(this._value=t,this.recalculatePercentage())},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.progress.addBar(this)},t.prototype.ngOnDestroy=function(){this.progress.removeBar(this)},t.prototype.recalculatePercentage=function(){this.percent=+(100*this.value/this.progress.max).toFixed(2);var t=this.progress.bars.reduce(function(t,e){return t+e.percent},0);t>100&&(this.percent-=t-100)},s([i.Input(),a("design:type",String)],t.prototype,"type",void 0),s([i.Input(),a("design:type",Number)],t.prototype,"value",null),t=s([i.Component({selector:"bar, [bar]",directives:[r.NgClass,r.NgStyle],template:'\n
\n'}),o(0,i.Host()),a("design:paramtypes",[c])],t)}();e.Bar=l;var u=function(){function t(){}return s([i.Input(),a("design:type",Boolean)],t.prototype,"animate",void 0),s([i.Input(),a("design:type",Number)],t.prototype,"max",void 0),s([i.Input(),a("design:type",String)],t.prototype,"type",void 0),s([i.Input(),a("design:type",Number)],t.prototype,"value",void 0),t=s([i.Component({selector:"progressbar, [progressbar]",directives:[c,l],template:'\n \n \n \n \n
\n '}),a("design:paramtypes",[])],t)}();e.Progressbar=u,e.PROGRESSBAR_DIRECTIVES=[c,l,u],e.progressbar=[c,l,u]},function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=this&&this.__param||function(t,e){return function(n,s){e(n,s,t)}},i=n(3),r=n(7),p=function(){function t(t){this.cd=t,this.onHover=new i.EventEmitter,this.onLeave=new i.EventEmitter,this.onChange=function(t){},this.onTouched=function(){},t.valueAccessor=this}return t.prototype.onKeydown=function(t){if(-1!==[37,38,39,40].indexOf(t.which)){t.preventDefault(),t.stopPropagation();var e=38===t.which||39===t.which?1:-1;this.rate(this.value+e)}},t.prototype.ngOnInit=function(){this.max="undefined"!=typeof this.max?this.max:5,this.readonly=this.readonly===!0,this.stateOn="undefined"!=typeof this.stateOn?this.stateOn:"glyphicon-star",this.stateOff="undefined"!=typeof this.stateOff?this.stateOff:"glyphicon-star-empty",this.titles="undefined"!=typeof this.titles&&this.titles.length>0?this.titles:["one","two","three","four","five"],this.range=this.buildTemplateObjects(this.ratingStates,this.max)},t.prototype.writeValue=function(t){return t%1!==t?(this.value=Math.round(t),void(this.preValue=t)):(this.preValue=t,void(this.value=t))},t.prototype.buildTemplateObjects=function(t,e){t=t||[];for(var n=t.length||e,s=[],a=0;n>a;a++)s.push(Object.assign({index:a,stateOn:this.stateOn,stateOff:this.stateOff,title:this.titles[a]||a+1},t[a]||{}));return s},t.prototype.rate=function(t){!this.readonly&&t>=0&&t<=this.range.length&&(this.writeValue(t),this.cd.viewToModelUpdate(t))},t.prototype.enter=function(t){this.readonly||(this.value=t,this.onHover.next(t))},t.prototype.reset=function(){this.value=this.preValue,this.onLeave.next(this.value)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},s([i.Input(),a("design:type",Number)],t.prototype,"max",void 0),s([i.Input(),a("design:type",String)],t.prototype,"stateOn",void 0),s([i.Input(),a("design:type",String)],t.prototype,"stateOff",void 0),s([i.Input(),a("design:type",Boolean)],t.prototype,"readonly",void 0),s([i.Input(),a("design:type",Array)],t.prototype,"titles",void 0),s([i.Input(),a("design:type",Array)],t.prototype,"ratingStates",void 0),s([i.Output(),a("design:type",i.EventEmitter)],t.prototype,"onHover",void 0),s([i.Output(),a("design:type",i.EventEmitter)],t.prototype,"onLeave",void 0),s([i.HostListener("keydown",["$event"]),a("design:type",Function),a("design:paramtypes",[KeyboardEvent]),a("design:returntype",void 0)],t.prototype,"onKeydown",null),t=s([i.Component({selector:"rating[ngModel]",directives:[r.NgFor],template:'\n \n \n ({{ index < value ? \'*\' : \' \' }}) \n \n \n \n '}),o(0,i.Self()),a("design:paramtypes",[r.NgModel])],t)}();e.Rating=p},function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=n(3),i=n(7),r=n(168),p=function(){function t(){this.tabs=[],this.classMap={}}return Object.defineProperty(t.prototype,"vertical",{get:function(){return this._vertical},set:function(t){this._vertical=t,this.setClassMap()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"justified",{get:function(){return this._justified},set:function(t){this._justified=t,this.setClassMap()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"type",{get:function(){return this._type},set:function(t){this._type=t,this.setClassMap()},enumerable:!0,configurable:!0}),t.prototype.setClassMap=function(){this.classMap=(t={"nav-stacked":this.vertical,"nav-justified":this.justified},t["nav-"+(this.type||"tabs")]=!0,t);var t},t.prototype.ngOnInit=function(){this.type="undefined"!==this.type?this.type:"tabs"},t.prototype.addTab=function(t){this.tabs.push(t),t.active=1===this.tabs.length&&t.active!==!1},t.prototype.removeTab=function(t){var e=this.tabs.indexOf(t);if(-1!==e){if(t.active&&this.tabs.length>1){var n=e===this.tabs.length-1?e-1:e+1;this.tabs[n].active=!0}this.tabs.slice(e,1)}},s([o.Input(),a("design:type",Object)],t.prototype,"vertical",null),s([o.Input(),a("design:type",Object)],t.prototype,"justified",null),s([o.Input(),a("design:type",Object)],t.prototype,"type",null),t=s([o.Component({selector:"tabset",directives:[i.NgClass,r.NgTransclude],template:'\n \n \n \n
\n '}),a("design:paramtypes",[])],t)}();e.Tabset=p;var c=function(){function t(t){this.tabset=t,this.select=new o.EventEmitter,this.deselect=new o.EventEmitter,this.addClass=!0,this.tabset.addTab(this)}return Object.defineProperty(t.prototype,"active",{get:function(){return this._active},set:function(t){var e=this;return this.disabled&&t||!t?(t||(this._active=t),void this.deselect.emit(this)):(this._active=t,this.select.emit(this),void this.tabset.tabs.forEach(function(t){t!==e&&(t.active=!1)}))},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){return!0},t.prototype.ngOnInit=function(){},t.prototype.ngOnDestroy=function(){this.tabset.removeTab(this)},s([o.Input(),a("design:type",String)],t.prototype,"heading",void 0),s([o.Input(),a("design:type",Boolean)],t.prototype,"disabled",void 0),s([o.HostBinding("class.active"),o.Input(),a("design:type",Object)],t.prototype,"active",null),s([o.Output(),a("design:type",o.EventEmitter)],t.prototype,"select",void 0),s([o.Output(),a("design:type",o.EventEmitter)],t.prototype,"deselect",void 0),s([o.HostBinding("class.tab-pane"),a("design:type",Object)],t.prototype,"addClass",void 0),t=s([o.Directive({selector:"tab, [tab]"}),a("design:paramtypes",[p])],t)}();e.Tab=c;var l=function(){function t(t,e){this.templateRef=t,e.headingRef=t}return t=s([o.Directive({selector:"[tab-heading]"}),a("design:paramtypes",[o.TemplateRef,c])],t)}();e.TabHeading=l,e.TAB_DIRECTIVES=[c,l,p],e.tabs=[c,l,p]},function(t,e,n){function s(t){return"undefined"!=typeof t}function a(t,e,n){return e(t)?t:n}function o(t,e){var n=new Date(t.getTime()+6e4*e),s=new Date(t);return s.setHours(n.getHours(),n.getMinutes()),s}var i=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},p=this&&this.__param||function(t,e){return function(n,s){e(n,s,t)}},c=n(3),l=n(7);e.timepickerConfig={hourStep:1,minuteStep:1,showMeridian:!0,meridians:null,readonlyInput:!1,mousewheel:!0,arrowkeys:!0,showSpinners:!0,min:void 0,max:void 0};var u=function(){function t(t){this.cd=t,this.meridians=["AM","PM"],this._selected=new Date,this.onChange=function(t){},this.onTouched=function(){},t.valueAccessor=this}return Object.defineProperty(t.prototype,"showMeridian",{get:function(){return this._showMeridian},set:function(t){return this._showMeridian=t,void this.updateTemplate()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"selected",{get:function(){return this._selected},set:function(t){t&&(this._selected=t,this.updateTemplate(),this.cd.viewToModelUpdate(this.selected))},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.meridians=a(this.meridians,s,e.timepickerConfig.meridians)||["AM","PM"],this.mousewheel=a(this.mousewheel,s,e.timepickerConfig.mousewheel),this.mousewheel&&this.setupMousewheelEvents(),this.arrowkeys=a(this.arrowkeys,s,e.timepickerConfig.arrowkeys),this.arrowkeys&&this.setupArrowkeyEvents(),this.readonlyInput=a(this.readonlyInput,s,e.timepickerConfig.readonlyInput),this.setupInputEvents(),this.hourStep=a(this.hourStep,s,e.timepickerConfig.hourStep),this.minuteStep=a(this.minuteStep,s,e.timepickerConfig.minuteStep),this.min=a(this.min,s,e.timepickerConfig.min),this.max=a(this.max,s,e.timepickerConfig.max),this.showMeridian=a(this.showMeridian,s,e.timepickerConfig.showMeridian),this.showSpinners=a(this.showSpinners,s,e.timepickerConfig.showSpinners)},t.prototype.writeValue=function(t){return t!==this.selected?t&&t instanceof Date?void(this.selected=t):void(this.selected=t?new Date(t):null):void 0},t.prototype.refresh=function(t){this.updateTemplate(),this.cd.viewToModelUpdate(this.selected)},t.prototype.updateTemplate=function(t){var e=this.selected.getHours(),n=this.selected.getMinutes();this.showMeridian&&(e=0===e||12===e?12:e%12),this.hours=this.pad(e),this.minutes=this.pad(n),this.meridian=this.selected.getHours()<12?this.meridians[0]:this.meridians[1]},t.prototype.getHoursFromTemplate=function(){var t=parseInt(this.hours,10),e=this.showMeridian?t>0&&13>t:t>=0&&24>t;return e?(this.showMeridian&&(12===t&&(t=0),this.meridian===this.meridians[1]&&(t+=12)),t):void 0},t.prototype.getMinutesFromTemplate=function(){var t=parseInt(this.minutes,10);return t>=0&&60>t?t:void 0},t.prototype.pad=function(t){return s(t)&&t.toString().length<2?"0"+t:t.toString()},t.prototype.setupMousewheelEvents=function(){},t.prototype.setupArrowkeyEvents=function(){},t.prototype.setupInputEvents=function(){},t.prototype.updateHours=function(){if(!this.readonlyInput){var t=this.getHoursFromTemplate(),e=this.getMinutesFromTemplate();!s(t)||!s(e),this.selected.setHours(t),this.selectedthis.max||this.refresh("h")}},t.prototype.hoursOnBlur=function(t){this.readonlyInput||!this.invalidHours&&parseInt(this.hours,10)<10&&(this.hours=this.pad(this.hours))},t.prototype.updateMinutes=function(){if(!this.readonlyInput){var t=this.getMinutesFromTemplate(),e=this.getHoursFromTemplate();!s(t)||!s(e),this.selected.setMinutes(t),this.selectedthis.max||this.refresh("m")}},t.prototype.minutesOnBlur=function(t){this.readonlyInput||!this.invalidMinutes&&parseInt(this.minutes,10)<10&&(this.minutes=this.pad(this.minutes))},t.prototype.noIncrementHours=function(){var t=o(this.selected,60*this.hourStep);return t>this.max||tthis.selected&&t>this.max},t.prototype.noIncrementMinutes=function(){var t=o(this.selected,this.minuteStep);return t>this.max||tthis.selected&&t>this.max},t.prototype.addMinutesToSelected=function(t){this.selected=o(this.selected,t),this.refresh()},t.prototype.noToggleMeridian=function(){return this.selected.getHours()<13?o(this.selected,720)>this.max:o(this.selected,-720)\n \n \n \n \n \n \n \n \n \n \n \n : \n \n \n \n {{meridian}} \n \n \n \n \n \n \n \n \n \n '}),p(0,c.Self()),r("design:paramtypes",[l.NgModel])],t)}();e.Timepicker=u},function(t,e,n){var s=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},a=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},o=n(3),i=n(7),r=n(3),p=n(101),c=function(){function t(t){Object.assign(this,t)}return t}(),l=function(){function t(t,e){this.element=t,Object.assign(this,e),this.classMap={"in":!1},this.classMap[e.placement]=!0}return t.prototype.position=function(t){this.display="block",this.top="0px",this.left="0px";var e=p.positionService.positionElements(t.nativeElement,this.element.nativeElement.children[0],this.placement,this.appendToBody);this.top=e.top+"px",this.left=e.left+"px",this.classMap["in"]=!0},t=s([o.Component({selector:"tooltip-container",directives:[i.NgClass,i.NgStyle],template:'\n '}),a("design:paramtypes",[o.ElementRef,c])],t)}(),u=function(){function t(t,e){this.element=t,this.loader=e,this.placement="top",this.visible=!1}return t.prototype.ngOnInit=function(){},t.prototype.show=function(){var t=this;if(!this.visible){this.visible=!0;var e=new c({content:this.content,placement:this.placement}),n=r.Injector.resolve([r.bind(c).toValue(e)]);this.tooltip=this.loader.loadNextToLocation(l,this.element,n).then(function(e){return e.instance.position(t.element),e})}},t.prototype.hide=function(){this.visible&&(this.visible=!1,this.tooltip.then(function(t){return t.dispose(),t}))},s([o.Input("tooltip"),a("design:type",String)],t.prototype,"content",void 0),s([o.Input("tooltip-placement"),a("design:type",String)],t.prototype,"placement",void 0),s([o.Input("tooltip-isOpen"),a("design:type",Boolean)],t.prototype,"isOpen",void 0),s([o.Input("tooltip-enable"),a("design:type",Boolean)],t.prototype,"enable",void 0),s([o.Input(),a("design:type",Boolean)],t.prototype,"appendToBody",void 0),s([o.HostListener("focusin",["$event","$target"]),o.HostListener("mouseenter",["$event","$target"]),a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",void 0)],t.prototype,"show",null),s([o.HostListener("focusout",["$event","$target"]),o.HostListener("mouseleave",["$event","$target"]),a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",void 0)],t.prototype,"hide",null),t=s([o.Directive({selector:"[tooltip]"}),a("design:paramtypes",[o.ElementRef,o.DynamicComponentLoader])],t)}();e.Tooltip=u,e.TOOLTIP_DIRECTIVES=[u,l],e.tooltip=[u,l]},function(t,e){e.latinMap={"Á":"A","Ă":"A","Ắ":"A","Ặ":"A","Ằ":"A","Ẳ":"A","Ẵ":"A","Ǎ":"A","Â":"A","Ấ":"A","Ậ":"A","Ầ":"A","Ẩ":"A","Ẫ":"A","Ä":"A","Ǟ":"A","Ȧ":"A","Ǡ":"A","Ạ":"A","Ȁ":"A","À":"A","Ả":"A","Ȃ":"A","Ā":"A","Ą":"A","Å":"A","Ǻ":"A","Ḁ":"A","Ⱥ":"A","Ã":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ḃ":"B","Ḅ":"B","Ɓ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ć":"C","Č":"C","Ç":"C","Ḉ":"C","Ĉ":"C","Ċ":"C","Ƈ":"C","Ȼ":"C","Ď":"D","Ḑ":"D","Ḓ":"D","Ḋ":"D","Ḍ":"D","Ɗ":"D","Ḏ":"D","Dz":"D","Dž":"D","Đ":"D","Ƌ":"D","DZ":"DZ","DŽ":"DZ","É":"E","Ĕ":"E","Ě":"E","Ȩ":"E","Ḝ":"E","Ê":"E","Ế":"E","Ệ":"E","Ề":"E","Ể":"E","Ễ":"E","Ḙ":"E","Ë":"E","Ė":"E","Ẹ":"E","Ȅ":"E","È":"E","Ẻ":"E","Ȇ":"E","Ē":"E","Ḗ":"E","Ḕ":"E","Ę":"E","Ɇ":"E","Ẽ":"E","Ḛ":"E","Ꝫ":"ET","Ḟ":"F","Ƒ":"F","Ǵ":"G","Ğ":"G","Ǧ":"G","Ģ":"G","Ĝ":"G","Ġ":"G","Ɠ":"G","Ḡ":"G","Ǥ":"G","Ḫ":"H","Ȟ":"H","Ḩ":"H","Ĥ":"H","Ⱨ":"H","Ḧ":"H","Ḣ":"H","Ḥ":"H","Ħ":"H","Í":"I","Ĭ":"I","Ǐ":"I","Î":"I","Ï":"I","Ḯ":"I","İ":"I","Ị":"I","Ȉ":"I","Ì":"I","Ỉ":"I","Ȋ":"I","Ī":"I","Į":"I","Ɨ":"I","Ĩ":"I","Ḭ":"I","Ꝺ":"D","Ꝼ":"F","Ᵹ":"G","Ꞃ":"R","Ꞅ":"S","Ꞇ":"T","Ꝭ":"IS","Ĵ":"J","Ɉ":"J","Ḱ":"K","Ǩ":"K","Ķ":"K","Ⱪ":"K","Ꝃ":"K","Ḳ":"K","Ƙ":"K","Ḵ":"K","Ꝁ":"K","Ꝅ":"K","Ĺ":"L","Ƚ":"L","Ľ":"L","Ļ":"L","Ḽ":"L","Ḷ":"L","Ḹ":"L","Ⱡ":"L","Ꝉ":"L","Ḻ":"L","Ŀ":"L","Ɫ":"L","Lj":"L","Ł":"L","LJ":"LJ","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ń":"N","Ň":"N","Ņ":"N","Ṋ":"N","Ṅ":"N","Ṇ":"N","Ǹ":"N","Ɲ":"N","Ṉ":"N","Ƞ":"N","Nj":"N","Ñ":"N","NJ":"NJ","Ó":"O","Ŏ":"O","Ǒ":"O","Ô":"O","Ố":"O","Ộ":"O","Ồ":"O","Ổ":"O","Ỗ":"O","Ö":"O","Ȫ":"O","Ȯ":"O","Ȱ":"O","Ọ":"O","Ő":"O","Ȍ":"O","Ò":"O","Ỏ":"O","Ơ":"O","Ớ":"O","Ợ":"O","Ờ":"O","Ở":"O","Ỡ":"O","Ȏ":"O","Ꝋ":"O","Ꝍ":"O","Ō":"O","Ṓ":"O","Ṑ":"O","Ɵ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Õ":"O","Ṍ":"O","Ṏ":"O","Ȭ":"O","Ƣ":"OI","Ꝏ":"OO","Ɛ":"E","Ɔ":"O","Ȣ":"OU","Ṕ":"P","Ṗ":"P","Ꝓ":"P","Ƥ":"P","Ꝕ":"P","Ᵽ":"P","Ꝑ":"P","Ꝙ":"Q","Ꝗ":"Q","Ŕ":"R","Ř":"R","Ŗ":"R","Ṙ":"R","Ṛ":"R","Ṝ":"R","Ȑ":"R","Ȓ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꜿ":"C","Ǝ":"E","Ś":"S","Ṥ":"S","Š":"S","Ṧ":"S","Ş":"S","Ŝ":"S","Ș":"S","Ṡ":"S","Ṣ":"S","Ṩ":"S","Ť":"T","Ţ":"T","Ṱ":"T","Ț":"T","Ⱦ":"T","Ṫ":"T","Ṭ":"T","Ƭ":"T","Ṯ":"T","Ʈ":"T","Ŧ":"T","Ɐ":"A","Ꞁ":"L","Ɯ":"M","Ʌ":"V","Ꜩ":"TZ","Ú":"U","Ŭ":"U","Ǔ":"U","Û":"U","Ṷ":"U","Ü":"U","Ǘ":"U","Ǚ":"U","Ǜ":"U","Ǖ":"U","Ṳ":"U","Ụ":"U","Ű":"U","Ȕ":"U","Ù":"U","Ủ":"U","Ư":"U","Ứ":"U","Ự":"U","Ừ":"U","Ử":"U","Ữ":"U","Ȗ":"U","Ū":"U","Ṻ":"U","Ų":"U","Ů":"U","Ũ":"U","Ṹ":"U","Ṵ":"U","Ꝟ":"V","Ṿ":"V","Ʋ":"V","Ṽ":"V","Ꝡ":"VY","Ẃ":"W","Ŵ":"W","Ẅ":"W","Ẇ":"W","Ẉ":"W","Ẁ":"W","Ⱳ":"W","Ẍ":"X","Ẋ":"X","Ý":"Y","Ŷ":"Y","Ÿ":"Y","Ẏ":"Y","Ỵ":"Y","Ỳ":"Y","Ƴ":"Y","Ỷ":"Y","Ỿ":"Y","Ȳ":"Y","Ɏ":"Y","Ỹ":"Y","Ź":"Z","Ž":"Z","Ẑ":"Z","Ⱬ":"Z","Ż":"Z","Ẓ":"Z","Ȥ":"Z","Ẕ":"Z","Ƶ":"Z","IJ":"IJ","Œ":"OE","ᴀ":"A","ᴁ":"AE","ʙ":"B","ᴃ":"B","ᴄ":"C","ᴅ":"D","ᴇ":"E","ꜰ":"F","ɢ":"G","ʛ":"G","ʜ":"H","ɪ":"I","ʁ":"R","ᴊ":"J","ᴋ":"K","ʟ":"L","ᴌ":"L","ᴍ":"M","ɴ":"N","ᴏ":"O","ɶ":"OE","ᴐ":"O","ᴕ":"OU","ᴘ":"P","ʀ":"R","ᴎ":"N","ᴙ":"R","ꜱ":"S","ᴛ":"T","ⱻ":"E","ᴚ":"R","ᴜ":"U","ᴠ":"V","ᴡ":"W","ʏ":"Y","ᴢ":"Z","á":"a","ă":"a","ắ":"a","ặ":"a","ằ":"a","ẳ":"a","ẵ":"a","ǎ":"a","â":"a","ấ":"a","ậ":"a","ầ":"a","ẩ":"a","ẫ":"a","ä":"a","ǟ":"a","ȧ":"a","ǡ":"a","ạ":"a","ȁ":"a","à":"a","ả":"a","ȃ":"a","ā":"a","ą":"a","ᶏ":"a","ẚ":"a","å":"a","ǻ":"a","ḁ":"a","ⱥ":"a","ã":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ḃ":"b","ḅ":"b","ɓ":"b","ḇ":"b","ᵬ":"b","ᶀ":"b","ƀ":"b","ƃ":"b","ɵ":"o","ć":"c","č":"c","ç":"c","ḉ":"c","ĉ":"c","ɕ":"c","ċ":"c","ƈ":"c","ȼ":"c","ď":"d","ḑ":"d","ḓ":"d","ȡ":"d","ḋ":"d","ḍ":"d","ɗ":"d","ᶑ":"d","ḏ":"d","ᵭ":"d","ᶁ":"d","đ":"d","ɖ":"d","ƌ":"d","ı":"i","ȷ":"j","ɟ":"j","ʄ":"j","dz":"dz","dž":"dz","é":"e","ĕ":"e","ě":"e","ȩ":"e","ḝ":"e","ê":"e","ế":"e","ệ":"e","ề":"e","ể":"e","ễ":"e","ḙ":"e","ë":"e","ė":"e","ẹ":"e","ȅ":"e","è":"e","ẻ":"e","ȇ":"e","ē":"e","ḗ":"e","ḕ":"e","ⱸ":"e","ę":"e","ᶒ":"e","ɇ":"e","ẽ":"e","ḛ":"e","ꝫ":"et","ḟ":"f","ƒ":"f","ᵮ":"f","ᶂ":"f","ǵ":"g","ğ":"g","ǧ":"g","ģ":"g","ĝ":"g","ġ":"g","ɠ":"g","ḡ":"g","ᶃ":"g","ǥ":"g","ḫ":"h","ȟ":"h","ḩ":"h","ĥ":"h","ⱨ":"h","ḧ":"h","ḣ":"h","ḥ":"h","ɦ":"h","ẖ":"h","ħ":"h","ƕ":"hv","í":"i","ĭ":"i","ǐ":"i","î":"i","ï":"i","ḯ":"i","ị":"i","ȉ":"i","ì":"i","ỉ":"i","ȋ":"i","ī":"i","į":"i","ᶖ":"i","ɨ":"i","ĩ":"i","ḭ":"i","ꝺ":"d","ꝼ":"f","ᵹ":"g","ꞃ":"r","ꞅ":"s","ꞇ":"t","ꝭ":"is","ǰ":"j","ĵ":"j","ʝ":"j","ɉ":"j","ḱ":"k","ǩ":"k","ķ":"k","ⱪ":"k","ꝃ":"k","ḳ":"k","ƙ":"k","ḵ":"k","ᶄ":"k","ꝁ":"k","ꝅ":"k","ĺ":"l","ƚ":"l","ɬ":"l","ľ":"l","ļ":"l","ḽ":"l","ȴ":"l","ḷ":"l","ḹ":"l","ⱡ":"l","ꝉ":"l","ḻ":"l","ŀ":"l","ɫ":"l","ᶅ":"l","ɭ":"l","ł":"l","lj":"lj","ſ":"s","ẜ":"s","ẛ":"s","ẝ":"s","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ᵯ":"m","ᶆ":"m","ń":"n","ň":"n","ņ":"n","ṋ":"n","ȵ":"n","ṅ":"n","ṇ":"n","ǹ":"n","ɲ":"n","ṉ":"n","ƞ":"n","ᵰ":"n","ᶇ":"n","ɳ":"n","ñ":"n","nj":"nj","ó":"o","ŏ":"o","ǒ":"o","ô":"o","ố":"o","ộ":"o","ồ":"o","ổ":"o","ỗ":"o","ö":"o","ȫ":"o","ȯ":"o","ȱ":"o","ọ":"o","ő":"o","ȍ":"o","ò":"o","ỏ":"o","ơ":"o","ớ":"o","ợ":"o","ờ":"o","ở":"o","ỡ":"o","ȏ":"o","ꝋ":"o","ꝍ":"o","ⱺ":"o","ō":"o","ṓ":"o","ṑ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","õ":"o","ṍ":"o","ṏ":"o","ȭ":"o","ƣ":"oi","ꝏ":"oo","ɛ":"e","ᶓ":"e","ɔ":"o","ᶗ":"o","ȣ":"ou","ṕ":"p","ṗ":"p","ꝓ":"p","ƥ":"p","ᵱ":"p","ᶈ":"p","ꝕ":"p","ᵽ":"p","ꝑ":"p","ꝙ":"q","ʠ":"q","ɋ":"q","ꝗ":"q","ŕ":"r","ř":"r","ŗ":"r","ṙ":"r","ṛ":"r","ṝ":"r","ȑ":"r","ɾ":"r","ᵳ":"r","ȓ":"r","ṟ":"r","ɼ":"r","ᵲ":"r","ᶉ":"r","ɍ":"r","ɽ":"r","ↄ":"c","ꜿ":"c","ɘ":"e","ɿ":"r","ś":"s","ṥ":"s","š":"s","ṧ":"s","ş":"s","ŝ":"s","ș":"s","ṡ":"s","ṣ":"s","ṩ":"s","ʂ":"s","ᵴ":"s","ᶊ":"s","ȿ":"s","ɡ":"g","ᴑ":"o","ᴓ":"o","ᴝ":"u","ť":"t","ţ":"t","ṱ":"t","ț":"t","ȶ":"t","ẗ":"t","ⱦ":"t","ṫ":"t","ṭ":"t","ƭ":"t","ṯ":"t","ᵵ":"t","ƫ":"t","ʈ":"t","ŧ":"t","ᵺ":"th","ɐ":"a","ᴂ":"ae","ǝ":"e","ᵷ":"g","ɥ":"h","ʮ":"h","ʯ":"h","ᴉ":"i","ʞ":"k","ꞁ":"l","ɯ":"m","ɰ":"m","ᴔ":"oe","ɹ":"r","ɻ":"r","ɺ":"r","ⱹ":"r","ʇ":"t","ʌ":"v","ʍ":"w","ʎ":"y","ꜩ":"tz","ú":"u","ŭ":"u","ǔ":"u","û":"u","ṷ":"u","ü":"u","ǘ":"u","ǚ":"u","ǜ":"u","ǖ":"u","ṳ":"u","ụ":"u","ű":"u","ȕ":"u","ù":"u","ủ":"u","ư":"u","ứ":"u","ự":"u",
-"ừ":"u","ử":"u","ữ":"u","ȗ":"u","ū":"u","ṻ":"u","ų":"u","ᶙ":"u","ů":"u","ũ":"u","ṹ":"u","ṵ":"u","ᵫ":"ue","ꝸ":"um","ⱴ":"v","ꝟ":"v","ṿ":"v","ʋ":"v","ᶌ":"v","ⱱ":"v","ṽ":"v","ꝡ":"vy","ẃ":"w","ŵ":"w","ẅ":"w","ẇ":"w","ẉ":"w","ẁ":"w","ⱳ":"w","ẘ":"w","ẍ":"x","ẋ":"x","ᶍ":"x","ý":"y","ŷ":"y","ÿ":"y","ẏ":"y","ỵ":"y","ỳ":"y","ƴ":"y","ỷ":"y","ỿ":"y","ȳ":"y","ẙ":"y","ɏ":"y","ỹ":"y","ź":"z","ž":"z","ẑ":"z","ʑ":"z","ⱬ":"z","ż":"z","ẓ":"z","ȥ":"z","ẕ":"z","ᵶ":"z","ᶎ":"z","ʐ":"z","ƶ":"z","ɀ":"z","ff":"ff","ffi":"ffi","ffl":"ffl","fi":"fi","fl":"fl","ij":"ij","œ":"oe","st":"st","ₐ":"a","ₑ":"e","ᵢ":"i","ⱼ":"j","ₒ":"o","ᵣ":"r","ᵤ":"u","ᵥ":"v","ₓ":"x"}},function(t,e,n){var s=n(257),a=function(){function t(){}return t.latinize=function(e){return e.replace(/[^A-Za-z0-9\[\] ]/g,function(e){return t.latinMap[e]||e})},t.escapeRegexp=function(t){return t.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")},t.tokenize=function(t,e,n){void 0===e&&(e=" "),void 0===n&&(n="");for(var s,a="(?:["+n+"])([^"+n+"]+)(?:["+n+"])|([^"+e+"]+)",o=t.split(new RegExp(a,"g")),i=[],r=o.length,p=new RegExp("["+n+"]+","g"),c=0;r>c;c+=1)s=o[c],s&&s.length&&s!==e&&i.push(s.replace(p,""));return i},t.latinMap=s.latinMap,t}();e.TypeaheadUtils=a},function(t,e,n){function s(t,e,n,s){t.setElementProperty(e,n,s)}var a=this&&this.__decorate||function(t,e,n,s){var a,o=arguments.length,i=3>o?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,s);else for(var r=t.length-1;r>=0;r--)(a=t[r])&&(i=(3>o?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},o=this&&this.__metadata||function(t,e){return"object"==typeof Reflect&&"function"==typeof Reflect.metadata?Reflect.metadata(t,e):void 0},i=n(3),r=n(7),p=n(3),c=n(100),l=n(101),u=n(258),h=(g={},g[c.Ng2BootstrapTheme.BS4]='\n \n ',g[c.Ng2BootstrapTheme.BS3]='\n \n ',g),d=function(){function t(t){Object.assign(this,t)}return t}();e.TypeaheadOptions=d;var f=function(){function t(t,e){this.element=t,this._matches=[],Object.assign(this,e)}return Object.defineProperty(t.prototype,"matches",{get:function(){return this._matches},set:function(t){this._matches=t,this._matches.length>0&&(this._active=this._matches[0])},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"field",{set:function(t){this._field=t},enumerable:!0,configurable:!0}),t.prototype.position=function(t){this.display="block",this.top="0px",this.left="0px";var e=l.positionService.positionElements(t.nativeElement,this.element.nativeElement.children[0],this.placement,!1);this.top=e.top+"px",this.left=e.left+"px"},t.prototype.selectActiveMatch=function(){this.selectMatch(this._active)},t.prototype.prevActiveMatch=function(){var t=this.matches.indexOf(this._active);this._active=this.matches[0>t-1?this.matches.length-1:t-1]},t.prototype.nextActiveMatch=function(){var t=this.matches.indexOf(this._active);this._active=this.matches[t+1>this.matches.length-1?0:t+1]},t.prototype.selectActive=function(t){this._active=t},t.prototype.isActive=function(t){return this._active===t},t.prototype.selectMatch=function(t,e){return void 0===e&&(e=null),e&&(e.stopPropagation(),e.preventDefault()),this.parent.changeModel(t),this.parent.typeaheadOnSelect.next({item:t}),!1},t.prototype.hightlight=function(t,e){var n,s,a=("object"==typeof t&&this._field?t[this._field]:t).toString(),o=(this.parent.latinize?u.TypeaheadUtils.latinize(a):a).toLowerCase();if("object"==typeof e)for(var i=e.length,r=0;i>r;r+=1)n=o.indexOf(e[r]),s=e[r].length,n>=0&&s>0&&(a=a.substring(0,n)+""+a.substring(n,n+s)+" "+a.substring(n+s),o=o.substring(0,n)+" "+" ".repeat(s)+" "+o.substring(n+s));else e&&(n=o.indexOf(e),s=e.length,n>=0&&s>0&&(a=a.substring(0,n)+""+a.substring(n,n+s)+" "+a.substring(n+s)));return a},t=a([i.Component({selector:"typeahead-container",directives:[r.CORE_DIRECTIVES],template:h[c.Ng2BootstrapConfig.theme],encapsulation:i.ViewEncapsulation.None}),o("design:paramtypes",[i.ElementRef,d])],t)}();e.TypeaheadContainer=f;var m=function(){function t(t,e,n,s){this.cd=t,this.element=e,this.renderer=n,this.loader=s,this.typeaheadLoading=new i.EventEmitter,this.typeaheadNoResults=new i.EventEmitter,this.typeaheadOnSelect=new i.EventEmitter,this.latinize=!0,this.singleWords=!0,this.async=null,this.wordDelimiters=" ",this.phraseDelimiters="'\"",this._matches=[],this.placement="bottom-left"}return Object.defineProperty(t.prototype,"matches",{get:function(){return this._matches},enumerable:!0,configurable:!0}),t.prototype.debounce=function(t,e){var n,s,a,o=e;return function(){s=[].slice.call(arguments,0),a=Date.now(),e=this.container?o:this.waitMs;var i=function(){var o=Date.now()-a;e>o?n=setTimeout(i,e-o):(n=null,t.apply(this,s))};n||(n=setTimeout(i,e))}},t.prototype.processMatches=function(){if(this._matches=[],this.cd.model.toString().length>=this.minLength){var t=(this.latinize?u.TypeaheadUtils.latinize(this.cd.model):this.cd.model).toString().toLowerCase();t=this.singleWords?u.TypeaheadUtils.tokenize(t,this.wordDelimiters,this.phraseDelimiters):t;for(var e=0;ethis.optionsLimit-1))break}else console.log("Invalid match type",typeof this.source[e],this.field)}}},t.prototype.testMatch=function(t,e){var n;if("object"==typeof e){n=e.length;for(var s=0;n>s;s+=1)if(e[s].length>0&&t.indexOf(e[s])<0)return!1;return!0}return t.indexOf(e)>=0},t.prototype.finalizeAsyncCall=function(){if(this.typeaheadLoading.next(!1),this.typeaheadNoResults.next(this.cd.model.toString().length>=this.minLength&&this.matches.length<=0),this.cd.model.toString().length<=0||this._matches.length<=0)return void this.hide();if(this.container&&this._matches.length>0){var t=(this.latinize?u.TypeaheadUtils.latinize(this.cd.model):this.cd.model).toString().toLowerCase();this.container.query=this.singleWords?u.TypeaheadUtils.tokenize(t,this.wordDelimiters,this.phraseDelimiters):t,this.container.matches=this._matches}!this.container&&this._matches.length>0&&this.show(this._matches)},t.prototype.ngOnInit=function(){var t=this;this.optionsLimit=this.optionsLimit||20,this.minLength=this.minLength||1,this.waitMs=this.waitMs||0,null===this.async&&"function"!=typeof this.source&&(this.async=!1),"function"==typeof this.source&&(this.async=!0),this.async===!0&&(this.debouncer=this.debounce(function(){"function"==typeof t.source&&t.source().then(function(e){if(t._matches=[],t.cd.model.toString().length>=t.minLength)for(var n=0;nt.optionsLimit-1));n++);t.finalizeAsyncCall()}),"object"==typeof t.source&&t.source.length&&(t.processMatches(),t.finalizeAsyncCall())},100))},t.prototype.onChange=function(t){if(this.container){if(27===t.keyCode)return void this.hide();if(38===t.keyCode)return void this.container.prevActiveMatch();if(40===t.keyCode)return void this.container.nextActiveMatch();if(13===t.keyCode)return void this.container.selectActiveMatch()}this.typeaheadLoading.next(!0),this.async===!0&&this.debouncer(),this.async===!1&&(this.processMatches(),this.finalizeAsyncCall())},t.prototype.changeModel=function(t){var e=("object"==typeof t&&this.field?t[this.field]:t).toString();this.cd.viewToModelUpdate(e),s(this.renderer,this.element,"value",e),this.hide()},t.prototype.show=function(t){var e=this,n=new d({placement:this.placement,animation:!1}),s=p.Injector.resolve([p.bind(d).toValue(n)]);this.popup=this.loader.loadNextToLocation(f,this.element,s).then(function(n){n.instance.position(e.element),e.container=n.instance,e.container.parent=e;var s=(e.latinize?u.TypeaheadUtils.latinize(e.cd.model):e.cd.model).toString().toLowerCase();return e.container.query=e.singleWords?u.TypeaheadUtils.tokenize(s,e.wordDelimiters,e.phraseDelimiters):s,e.container.matches=t,e.container.field=e.field,e.element.nativeElement.focus(),n})},t.prototype.hide=function(){var t=this;this.container&&this.popup.then(function(e){return e.dispose(),t.container=null,e})},t=a([i.Directive({selector:"typeahead, [typeahead]",properties:["source:typeahead","appendToBody:typeaheadAppendToBody","editable:typeaheadEditable","focusFirst:typeaheadFocusFirst","inputFormatter:typeaheadInputFormatter","minLength:typeaheadMinLength","selectOnExact:typeaheadSelectOnExact","templateUrl:typeaheadTemplateUrl","popupTemplateUrl:typeaheadPopupTemplateUrl","waitMs:typeaheadWaitMs","optionsLimit:typeaheadOptionsLimit","selectOnBlur:typeaheadSelectOnBlur","focusOnSelect:typeaheadFocusOnSelect","field:typeaheadOptionField","async:typeaheadAsync","latinize:typeaheadLatinize","singleWords:typeaheadSingleWords","wordDelimiters:typeaheadWordDelimiters","phraseDelimiters:typeaheadPhraseDelimiters"],events:["typeaheadLoading","typeaheadNoResults","typeaheadOnSelect"],host:{"(keyup)":"onChange($event)"}}),o("design:paramtypes",[r.NgModel,i.ElementRef,i.Renderer,i.DynamicComponentLoader])],t)}();e.Typeahead=m;var g},function(t,e,n){function s(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}s(n(245)),s(n(246)),s(n(248)),s(n(247)),s(n(250)),s(n(60)),s(n(169)),s(n(170)),s(n(171)),s(n(249)),s(n(167)),s(n(251)),s(n(252)),s(n(253)),s(n(254)),s(n(255)),s(n(256)),s(n(259)),s(n(101)),s(n(168)),s(n(100))}]);
+webpackJsonp([1],[
+/* 0 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+ var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+ };
+ var browser_1 = __webpack_require__(172);
+ var core_1 = __webpack_require__(3);
+ var common_1 = __webpack_require__(7);
+ var file_upload_section_1 = __webpack_require__(243);
+ var gettingStarted = __webpack_require__(229);
+ var Demo = (function () {
+ function Demo() {
+ }
+ Demo = __decorate([
+ core_1.Component({
+ selector: 'app'
+ }),
+ core_1.View({
+ template: "\n \n\n \n \n\n \n
\n\n \n ",
+ directives: [
+ common_1.NgClass,
+ file_upload_section_1.FileUploadSection
+ ]
+ }),
+ __metadata('design:paramtypes', [])
+ ], Demo);
+ return Demo;
+ })();
+ exports.Demo = Demo;
+ browser_1.bootstrap(Demo);
+
+
+/***/ },
+/* 1 */,
+/* 2 */,
+/* 3 */,
+/* 4 */,
+/* 5 */,
+/* 6 */,
+/* 7 */,
+/* 8 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';var lang_1 = __webpack_require__(1);
+ exports.DOM = null;
+ function setRootDomAdapter(adapter) {
+ if (lang_1.isBlank(exports.DOM)) {
+ exports.DOM = adapter;
+ }
+ }
+ exports.setRootDomAdapter = setRootDomAdapter;
+ /* tslint:disable:requireParameterType */
+ /**
+ * Provides DOM operations in an environment-agnostic way.
+ */
+ var DomAdapter = (function () {
+ function DomAdapter() {
+ }
+ return DomAdapter;
+ })();
+ exports.DomAdapter = DomAdapter;
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tX2FkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbmd1bGFyMi9zcmMvcGxhdGZvcm0vZG9tL2RvbV9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbInNldFJvb3REb21BZGFwdGVyIiwiRG9tQWRhcHRlciIsIkRvbUFkYXB0ZXIuY29uc3RydWN0b3IiXSwibWFwcGluZ3MiOiJBQUFBLHFCQUE0QiwwQkFBMEIsQ0FBQyxDQUFBO0FBRTVDLFdBQUcsR0FBZSxJQUFJLENBQUM7QUFFbEMsMkJBQWtDLE9BQW1CO0lBQ25EQSxFQUFFQSxDQUFDQSxDQUFDQSxjQUFPQSxDQUFDQSxXQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNqQkEsV0FBR0EsR0FBR0EsT0FBT0EsQ0FBQ0E7SUFDaEJBLENBQUNBO0FBQ0hBLENBQUNBO0FBSmUseUJBQWlCLG9CQUloQyxDQUFBO0FBRUQseUNBQXlDO0FBQ3pDOztHQUVHO0FBQ0g7SUFBQUM7SUF5SEFDLENBQUNBO0lBQURELGlCQUFDQTtBQUFEQSxDQUFDQSxBQXpIRCxJQXlIQztBQXpIcUIsa0JBQVUsYUF5SC9CLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2lzQmxhbmssIFR5cGV9IGZyb20gJ2FuZ3VsYXIyL3NyYy9mYWNhZGUvbGFuZyc7XG5cbmV4cG9ydCB2YXIgRE9NOiBEb21BZGFwdGVyID0gbnVsbDtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFJvb3REb21BZGFwdGVyKGFkYXB0ZXI6IERvbUFkYXB0ZXIpIHtcbiAgaWYgKGlzQmxhbmsoRE9NKSkge1xuICAgIERPTSA9IGFkYXB0ZXI7XG4gIH1cbn1cblxuLyogdHNsaW50OmRpc2FibGU6cmVxdWlyZVBhcmFtZXRlclR5cGUgKi9cbi8qKlxuICogUHJvdmlkZXMgRE9NIG9wZXJhdGlvbnMgaW4gYW4gZW52aXJvbm1lbnQtYWdub3N0aWMgd2F5LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRG9tQWRhcHRlciB7XG4gIGFic3RyYWN0IGhhc1Byb3BlcnR5KGVsZW1lbnQsIG5hbWU6IHN0cmluZyk6IGJvb2xlYW47XG4gIGFic3RyYWN0IHNldFByb3BlcnR5KGVsOiBFbGVtZW50LCBuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpO1xuICBhYnN0cmFjdCBnZXRQcm9wZXJ0eShlbDogRWxlbWVudCwgbmFtZTogc3RyaW5nKTogYW55O1xuICBhYnN0cmFjdCBpbnZva2UoZWw6IEVsZW1lbnQsIG1ldGhvZE5hbWU6IHN0cmluZywgYXJnczogYW55W10pOiBhbnk7XG5cbiAgYWJzdHJhY3QgbG9nRXJyb3IoZXJyb3IpO1xuICBhYnN0cmFjdCBsb2coZXJyb3IpO1xuICBhYnN0cmFjdCBsb2dHcm91cChlcnJvcik7XG4gIGFic3RyYWN0IGxvZ0dyb3VwRW5kKCk7XG5cbiAgYWJzdHJhY3QgZ2V0WEhSKCk6IFR5cGU7XG5cbiAgLyoqXG4gICAqIE1hcHMgYXR0cmlidXRlIG5hbWVzIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgbmFtZXMgZm9yIGNhc2VzXG4gICAqIHdoZXJlIGF0dHJpYnV0ZSBuYW1lIGRvZXNuJ3QgbWF0Y2ggcHJvcGVydHkgbmFtZS5cbiAgICovXG4gIGF0dHJUb1Byb3BNYXA6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xuXG4gIGFic3RyYWN0IHBhcnNlKHRlbXBsYXRlSHRtbDogc3RyaW5nKTtcbiAgYWJzdHJhY3QgcXVlcnkoc2VsZWN0b3I6IHN0cmluZyk6IGFueTtcbiAgYWJzdHJhY3QgcXVlcnlTZWxlY3RvcihlbCwgc2VsZWN0b3I6IHN0cmluZyk6IEhUTUxFbGVtZW50O1xuICBhYnN0cmFjdCBxdWVyeVNlbGVjdG9yQWxsKGVsLCBzZWxlY3Rvcjogc3RyaW5nKTogYW55W107XG4gIGFic3RyYWN0IG9uKGVsLCBldnQsIGxpc3RlbmVyKTtcbiAgYWJzdHJhY3Qgb25BbmRDYW5jZWwoZWwsIGV2dCwgbGlzdGVuZXIpOiBGdW5jdGlvbjtcbiAgYWJzdHJhY3QgZGlzcGF0Y2hFdmVudChlbCwgZXZ0KTtcbiAgYWJzdHJhY3QgY3JlYXRlTW91c2VFdmVudChldmVudFR5cGUpOiBhbnk7XG4gIGFic3RyYWN0IGNyZWF0ZUV2ZW50KGV2ZW50VHlwZTogc3RyaW5nKTogYW55O1xuICBhYnN0cmFjdCBwcmV2ZW50RGVmYXVsdChldnQpO1xuICBhYnN0cmFjdCBpc1ByZXZlbnRlZChldnQpOiBib29sZWFuO1xuICBhYnN0cmFjdCBnZXRJbm5lckhUTUwoZWwpOiBzdHJpbmc7XG4gIGFic3RyYWN0IGdldE91dGVySFRNTChlbCk6IHN0cmluZztcbiAgYWJzdHJhY3Qgbm9kZU5hbWUobm9kZSk6IHN0cmluZztcbiAgYWJzdHJhY3Qgbm9kZVZhbHVlKG5vZGUpOiBzdHJpbmc7XG4gIGFic3RyYWN0IHR5cGUobm9kZSk6IHN0cmluZztcbiAgYWJzdHJhY3QgY29udGVudChub2RlKTogYW55O1xuICBhYnN0cmFjdCBmaXJzdENoaWxkKGVsKTogTm9kZTtcbiAgYWJzdHJhY3QgbmV4dFNpYmxpbmcoZWwpOiBOb2RlO1xuICBhYnN0cmFjdCBwYXJlbnRFbGVtZW50KGVsKTogTm9kZTtcbiAgYWJzdHJhY3QgY2hpbGROb2RlcyhlbCk6IE5vZGVbXTtcbiAgYWJzdHJhY3QgY2hpbGROb2Rlc0FzTGlzdChlbCk6IE5vZGVbXTtcbiAgYWJzdHJhY3QgY2xlYXJOb2RlcyhlbCk7XG4gIGFic3RyYWN0IGFwcGVuZENoaWxkKGVsLCBub2RlKTtcbiAgYWJzdHJhY3QgcmVtb3ZlQ2hpbGQoZWwsIG5vZGUpO1xuICBhYnN0cmFjdCByZXBsYWNlQ2hpbGQoZWwsIG5ld05vZGUsIG9sZE5vZGUpO1xuICBhYnN0cmFjdCByZW1vdmUoZWwpOiBOb2RlO1xuICBhYnN0cmFjdCBpbnNlcnRCZWZvcmUoZWwsIG5vZGUpO1xuICBhYnN0cmFjdCBpbnNlcnRBbGxCZWZvcmUoZWwsIG5vZGVzKTtcbiAgYWJzdHJhY3QgaW5zZXJ0QWZ0ZXIoZWwsIG5vZGUpO1xuICBhYnN0cmFjdCBzZXRJbm5lckhUTUwoZWwsIHZhbHVlKTtcbiAgYWJzdHJhY3QgZ2V0VGV4dChlbCk6IHN0cmluZztcbiAgYWJzdHJhY3Qgc2V0VGV4dChlbCwgdmFsdWU6IHN0cmluZyk7XG4gIGFic3RyYWN0IGdldFZhbHVlKGVsKTogc3RyaW5nO1xuICBhYnN0cmFjdCBzZXRWYWx1ZShlbCwgdmFsdWU6IHN0cmluZyk7XG4gIGFic3RyYWN0IGdldENoZWNrZWQoZWwpOiBib29sZWFuO1xuICBhYnN0cmFjdCBzZXRDaGVja2VkKGVsLCB2YWx1ZTogYm9vbGVhbik7XG4gIGFic3RyYWN0IGNyZWF0ZUNvbW1lbnQodGV4dDogc3RyaW5nKTogYW55O1xuICBhYnN0cmFjdCBjcmVhdGVUZW1wbGF0ZShodG1sKTogSFRNTEVsZW1lbnQ7XG4gIGFic3RyYWN0IGNyZWF0ZUVsZW1lbnQodGFnTmFtZSwgZG9jPyk6IEhUTUxFbGVtZW50O1xuICBhYnN0cmFjdCBjcmVhdGVFbGVtZW50TlMobnM6IHN0cmluZywgdGFnTmFtZTogc3RyaW5nLCBkb2M/KTogRWxlbWVudDtcbiAgYWJzdHJhY3QgY3JlYXRlVGV4dE5vZGUodGV4dDogc3RyaW5nLCBkb2M/KTogVGV4dDtcbiAgYWJzdHJhY3QgY3JlYXRlU2NyaXB0VGFnKGF0dHJOYW1lOiBzdHJpbmcsIGF0dHJWYWx1ZTogc3RyaW5nLCBkb2M/KTogSFRNTEVsZW1lbnQ7XG4gIGFic3RyYWN0IGNyZWF0ZVN0eWxlRWxlbWVudChjc3M6IHN0cmluZywgZG9jPyk6IEhUTUxTdHlsZUVsZW1lbnQ7XG4gIGFic3RyYWN0IGNyZWF0ZVNoYWRvd1Jvb3QoZWwpOiBhbnk7XG4gIGFic3RyYWN0IGdldFNoYWRvd1Jvb3QoZWwpOiBhbnk7XG4gIGFic3RyYWN0IGdldEhvc3QoZWwpOiBhbnk7XG4gIGFic3RyYWN0IGdldERpc3RyaWJ1dGVkTm9kZXMoZWwpOiBOb2RlW107XG4gIGFic3RyYWN0IGNsb25lIC8qPFQgZXh0ZW5kcyBOb2RlPiovIChub2RlOiBOb2RlIC8qVCovKTogTm9kZSAvKlQqLztcbiAgYWJzdHJhY3QgZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShlbGVtZW50LCBuYW1lOiBzdHJpbmcpOiBIVE1MRWxlbWVudFtdO1xuICBhYnN0cmFjdCBnZXRFbGVtZW50c0J5VGFnTmFtZShlbGVtZW50LCBuYW1lOiBzdHJpbmcpOiBIVE1MRWxlbWVudFtdO1xuICBhYnN0cmFjdCBjbGFzc0xpc3QoZWxlbWVudCk6IGFueVtdO1xuICBhYnN0cmFjdCBhZGRDbGFzcyhlbGVtZW50LCBjbGFzc05hbWU6IHN0cmluZyk7XG4gIGFic3RyYWN0IHJlbW92ZUNsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZTogc3RyaW5nKTtcbiAgYWJzdHJhY3QgaGFzQ2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lOiBzdHJpbmcpOiBib29sZWFuO1xuICBhYnN0cmFjdCBzZXRTdHlsZShlbGVtZW50LCBzdHlsZU5hbWU6IHN0cmluZywgc3R5bGVWYWx1ZTogc3RyaW5nKTtcbiAgYWJzdHJhY3QgcmVtb3ZlU3R5bGUoZWxlbWVudCwgc3R5bGVOYW1lOiBzdHJpbmcpO1xuICBhYnN0cmFjdCBnZXRTdHlsZShlbGVtZW50LCBzdHlsZU5hbWU6IHN0cmluZyk6IHN0cmluZztcbiAgYWJzdHJhY3QgaGFzU3R5bGUoZWxlbWVudCwgc3R5bGVOYW1lOiBzdHJpbmcsIHN0eWxlVmFsdWU/OiBzdHJpbmcpOiBib29sZWFuO1xuICBhYnN0cmFjdCB0YWdOYW1lKGVsZW1lbnQpOiBzdHJpbmc7XG4gIGFic3RyYWN0IGF0dHJpYnV0ZU1hcChlbGVtZW50KTogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgYWJzdHJhY3QgaGFzQXR0cmlidXRlKGVsZW1lbnQsIGF0dHJpYnV0ZTogc3RyaW5nKTogYm9vbGVhbjtcbiAgYWJzdHJhY3QgZ2V0QXR0cmlidXRlKGVsZW1lbnQsIGF0dHJpYnV0ZTogc3RyaW5nKTogc3RyaW5nO1xuICBhYnN0cmFjdCBzZXRBdHRyaWJ1dGUoZWxlbWVudCwgbmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTtcbiAgYWJzdHJhY3Qgc2V0QXR0cmlidXRlTlMoZWxlbWVudCwgbnM6IHN0cmluZywgbmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTtcbiAgYWJzdHJhY3QgcmVtb3ZlQXR0cmlidXRlKGVsZW1lbnQsIGF0dHJpYnV0ZTogc3RyaW5nKTtcbiAgYWJzdHJhY3QgdGVtcGxhdGVBd2FyZVJvb3QoZWwpO1xuICBhYnN0cmFjdCBjcmVhdGVIdG1sRG9jdW1lbnQoKTogSFRNTERvY3VtZW50O1xuICBhYnN0cmFjdCBkZWZhdWx0RG9jKCk6IEhUTUxEb2N1bWVudDtcbiAgYWJzdHJhY3QgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsKTtcbiAgYWJzdHJhY3QgZ2V0VGl0bGUoKTogc3RyaW5nO1xuICBhYnN0cmFjdCBzZXRUaXRsZShuZXdUaXRsZTogc3RyaW5nKTtcbiAgYWJzdHJhY3QgZWxlbWVudE1hdGNoZXMobiwgc2VsZWN0b3I6IHN0cmluZyk6IGJvb2xlYW47XG4gIGFic3RyYWN0IGlzVGVtcGxhdGVFbGVtZW50KGVsOiBhbnkpOiBib29sZWFuO1xuICBhYnN0cmFjdCBpc1RleHROb2RlKG5vZGUpOiBib29sZWFuO1xuICBhYnN0cmFjdCBpc0NvbW1lbnROb2RlKG5vZGUpOiBib29sZWFuO1xuICBhYnN0cmFjdCBpc0VsZW1lbnROb2RlKG5vZGUpOiBib29sZWFuO1xuICBhYnN0cmFjdCBoYXNTaGFkb3dSb290KG5vZGUpOiBib29sZWFuO1xuICBhYnN0cmFjdCBpc1NoYWRvd1Jvb3Qobm9kZSk6IGJvb2xlYW47XG4gIGFic3RyYWN0IGltcG9ydEludG9Eb2MgLyo8VCBleHRlbmRzIE5vZGU+Ki8gKG5vZGU6IE5vZGUgLypUKi8pOiBOb2RlIC8qVCovO1xuICBhYnN0cmFjdCBhZG9wdE5vZGUgLyo8VCBleHRlbmRzIE5vZGU+Ki8gKG5vZGU6IE5vZGUgLypUKi8pOiBOb2RlIC8qVCovO1xuICBhYnN0cmFjdCBnZXRIcmVmKGVsZW1lbnQpOiBzdHJpbmc7XG4gIGFic3RyYWN0IGdldEV2ZW50S2V5KGV2ZW50KTogc3RyaW5nO1xuICBhYnN0cmFjdCByZXNvbHZlQW5kU2V0SHJlZihlbGVtZW50LCBiYXNlVXJsOiBzdHJpbmcsIGhyZWY6IHN0cmluZyk7XG4gIGFic3RyYWN0IHN1cHBvcnRzRE9NRXZlbnRzKCk6IGJvb2xlYW47XG4gIGFic3RyYWN0IHN1cHBvcnRzTmF0aXZlU2hhZG93RE9NKCk6IGJvb2xlYW47XG4gIGFic3RyYWN0IGdldEdsb2JhbEV2ZW50VGFyZ2V0KHRhcmdldDogc3RyaW5nKTogYW55O1xuICBhYnN0cmFjdCBnZXRIaXN0b3J5KCk6IEhpc3Rvcnk7XG4gIGFic3RyYWN0IGdldExvY2F0aW9uKCk6IExvY2F0aW9uO1xuICBhYnN0cmFjdCBnZXRCYXNlSHJlZigpOiBzdHJpbmc7XG4gIGFic3RyYWN0IHJlc2V0QmFzZUVsZW1lbnQoKTogdm9pZDtcbiAgYWJzdHJhY3QgZ2V0VXNlckFnZW50KCk6IHN0cmluZztcbiAgYWJzdHJhY3Qgc2V0RGF0YShlbGVtZW50LCBuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpO1xuICBhYnN0cmFjdCBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpOiBhbnk7XG4gIGFic3RyYWN0IGdldERhdGEoZWxlbWVudCwgbmFtZTogc3RyaW5nKTogc3RyaW5nO1xuICBhYnN0cmFjdCBzZXRHbG9iYWxWYXIobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTtcbiAgYWJzdHJhY3QgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrKTogbnVtYmVyO1xuICBhYnN0cmFjdCBjYW5jZWxBbmltYXRpb25GcmFtZShpZCk7XG4gIGFic3RyYWN0IHBlcmZvcm1hbmNlTm93KCk6IG51bWJlcjtcbiAgYWJzdHJhY3QgZ2V0QW5pbWF0aW9uUHJlZml4KCk6IHN0cmluZztcbiAgYWJzdHJhY3QgZ2V0VHJhbnNpdGlvbkVuZCgpOiBzdHJpbmc7XG4gIGFic3RyYWN0IHN1cHBvcnRzQW5pbWF0aW9uKCk6IGJvb2xlYW47XG59XG4iXX0=
+
+/***/ },
+/* 9 */,
+/* 10 */,
+/* 11 */,
+/* 12 */,
+/* 13 */,
+/* 14 */,
+/* 15 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';var lang_1 = __webpack_require__(1);
+ var CAMEL_CASE_REGEXP = /([A-Z])/g;
+ var DASH_CASE_REGEXP = /-([a-z])/g;
+ var SINGLE_QUOTE_ESCAPE_STRING_RE = /'|\\|\n|\r|\$/g;
+ var DOUBLE_QUOTE_ESCAPE_STRING_RE = /"|\\|\n|\r|\$/g;
+ exports.MODULE_SUFFIX = lang_1.IS_DART ? '.dart' : '.js';
+ function camelCaseToDashCase(input) {
+ return lang_1.StringWrapper.replaceAllMapped(input, CAMEL_CASE_REGEXP, function (m) { return '-' + m[1].toLowerCase(); });
+ }
+ exports.camelCaseToDashCase = camelCaseToDashCase;
+ function dashCaseToCamelCase(input) {
+ return lang_1.StringWrapper.replaceAllMapped(input, DASH_CASE_REGEXP, function (m) { return m[1].toUpperCase(); });
+ }
+ exports.dashCaseToCamelCase = dashCaseToCamelCase;
+ function escapeSingleQuoteString(input) {
+ if (lang_1.isBlank(input)) {
+ return null;
+ }
+ return "'" + escapeString(input, SINGLE_QUOTE_ESCAPE_STRING_RE) + "'";
+ }
+ exports.escapeSingleQuoteString = escapeSingleQuoteString;
+ function escapeDoubleQuoteString(input) {
+ if (lang_1.isBlank(input)) {
+ return null;
+ }
+ return "\"" + escapeString(input, DOUBLE_QUOTE_ESCAPE_STRING_RE) + "\"";
+ }
+ exports.escapeDoubleQuoteString = escapeDoubleQuoteString;
+ function escapeString(input, re) {
+ return lang_1.StringWrapper.replaceAllMapped(input, re, function (match) {
+ if (match[0] == '$') {
+ return lang_1.IS_DART ? '\\$' : '$';
+ }
+ else if (match[0] == '\n') {
+ return '\\n';
+ }
+ else if (match[0] == '\r') {
+ return '\\r';
+ }
+ else {
+ return "\\" + match[0];
+ }
+ });
+ }
+ function codeGenExportVariable(name) {
+ if (lang_1.IS_DART) {
+ return "const " + name + " = ";
+ }
+ else {
+ return "var " + name + " = exports['" + name + "'] = ";
+ }
+ }
+ exports.codeGenExportVariable = codeGenExportVariable;
+ function codeGenConstConstructorCall(name) {
+ if (lang_1.IS_DART) {
+ return "const " + name;
+ }
+ else {
+ return "new " + name;
+ }
+ }
+ exports.codeGenConstConstructorCall = codeGenConstConstructorCall;
+ function codeGenValueFn(params, value, fnName) {
+ if (fnName === void 0) { fnName = ''; }
+ if (lang_1.IS_DART) {
+ return fnName + "(" + params.join(',') + ") => " + value;
+ }
+ else {
+ return "function " + fnName + "(" + params.join(',') + ") { return " + value + "; }";
+ }
+ }
+ exports.codeGenValueFn = codeGenValueFn;
+ function codeGenToString(expr) {
+ if (lang_1.IS_DART) {
+ return "'${" + expr + "}'";
+ }
+ else {
+ // JS automatically convets to string...
+ return expr;
+ }
+ }
+ exports.codeGenToString = codeGenToString;
+ function splitAtColon(input, defaultValues) {
+ var parts = lang_1.StringWrapper.split(input.trim(), /\s*:\s*/g);
+ if (parts.length > 1) {
+ return parts;
+ }
+ else {
+ return defaultValues;
+ }
+ }
+ exports.splitAtColon = splitAtColon;
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFuZ3VsYXIyL3NyYy9jb21waWxlci91dGlsLnRzIl0sIm5hbWVzIjpbImNhbWVsQ2FzZVRvRGFzaENhc2UiLCJkYXNoQ2FzZVRvQ2FtZWxDYXNlIiwiZXNjYXBlU2luZ2xlUXVvdGVTdHJpbmciLCJlc2NhcGVEb3VibGVRdW90ZVN0cmluZyIsImVzY2FwZVN0cmluZyIsImNvZGVHZW5FeHBvcnRWYXJpYWJsZSIsImNvZGVHZW5Db25zdENvbnN0cnVjdG9yQ2FsbCIsImNvZGVHZW5WYWx1ZUZuIiwiY29kZUdlblRvU3RyaW5nIiwic3BsaXRBdENvbG9uIl0sIm1hcHBpbmdzIjoiQUFBQSxxQkFBOEMsMEJBQTBCLENBQUMsQ0FBQTtBQUV6RSxJQUFJLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztBQUNuQyxJQUFJLGdCQUFnQixHQUFHLFdBQVcsQ0FBQztBQUNuQyxJQUFJLDZCQUE2QixHQUFHLGdCQUFnQixDQUFDO0FBQ3JELElBQUksNkJBQTZCLEdBQUcsZ0JBQWdCLENBQUM7QUFFMUMscUJBQWEsR0FBRyxjQUFPLEdBQUcsT0FBTyxHQUFHLEtBQUssQ0FBQztBQUVyRCw2QkFBb0MsS0FBYTtJQUMvQ0EsTUFBTUEsQ0FBQ0Esb0JBQWFBLENBQUNBLGdCQUFnQkEsQ0FBQ0EsS0FBS0EsRUFBRUEsaUJBQWlCQSxFQUN4QkEsVUFBQ0EsQ0FBQ0EsSUFBT0EsTUFBTUEsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsV0FBV0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7QUFDckZBLENBQUNBO0FBSGUsMkJBQW1CLHNCQUdsQyxDQUFBO0FBRUQsNkJBQW9DLEtBQWE7SUFDL0NDLE1BQU1BLENBQUNBLG9CQUFhQSxDQUFDQSxnQkFBZ0JBLENBQUNBLEtBQUtBLEVBQUVBLGdCQUFnQkEsRUFDdkJBLFVBQUNBLENBQUNBLElBQU9BLE1BQU1BLENBQUNB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U19EQVJULCBTdHJpbmdXcmFwcGVyLCBpc0JsYW5rfSBmcm9tICdhbmd1bGFyMi9zcmMvZmFjYWRlL2xhbmcnO1xuXG52YXIgQ0FNRUxfQ0FTRV9SRUdFWFAgPSAvKFtBLVpdKS9nO1xudmFyIERBU0hfQ0FTRV9SRUdFWFAgPSAvLShbYS16XSkvZztcbnZhciBTSU5HTEVfUVVPVEVfRVNDQVBFX1NUUklOR19SRSA9IC8nfFxcXFx8XFxufFxccnxcXCQvZztcbnZhciBET1VCTEVfUVVPVEVfRVNDQVBFX1NUUklOR19SRSA9IC9cInxcXFxcfFxcbnxcXHJ8XFwkL2c7XG5cbmV4cG9ydCB2YXIgTU9EVUxFX1NVRkZJWCA9IElTX0RBUlQgPyAnLmRhcnQnIDogJy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjYW1lbENhc2VUb0Rhc2hDYXNlKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gU3RyaW5nV3JhcHBlci5yZXBsYWNlQWxsTWFwcGVkKGlucHV0LCBDQU1FTF9DQVNFX1JFR0VYUCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobSkgPT4geyByZXR1cm4gJy0nICsgbVsxXS50b0xvd2VyQ2FzZSgpOyB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhc2hDYXNlVG9DYW1lbENhc2UoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBTdHJpbmdXcmFwcGVyLnJlcGxhY2VBbGxNYXBwZWQoaW5wdXQsIERBU0hfQ0FTRV9SRUdFWFAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG0pID0+IHsgcmV0dXJuIG1bMV0udG9VcHBlckNhc2UoKTsgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVTaW5nbGVRdW90ZVN0cmluZyhpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGlzQmxhbmsoaW5wdXQpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIGAnJHtlc2NhcGVTdHJpbmcoaW5wdXQsIFNJTkdMRV9RVU9URV9FU0NBUEVfU1RSSU5HX1JFKX0nYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZURvdWJsZVF1b3RlU3RyaW5nKGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoaXNCbGFuayhpbnB1dCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICByZXR1cm4gYFwiJHtlc2NhcGVTdHJpbmcoaW5wdXQsIERPVUJMRV9RVU9URV9FU0NBUEVfU1RSSU5HX1JFKX1cImA7XG59XG5cbmZ1bmN0aW9uIGVzY2FwZVN0cmluZyhpbnB1dDogc3RyaW5nLCByZTogUmVnRXhwKTogc3RyaW5nIHtcbiAgcmV0dXJuIFN0cmluZ1dyYXBwZXIucmVwbGFjZUFsbE1hcHBlZChpbnB1dCwgcmUsIChtYXRjaCkgPT4ge1xuICAgIGlmIChtYXRjaFswXSA9PSAnJCcpIHtcbiAgICAgIHJldHVybiBJU19EQVJUID8gJ1xcXFwkJyA6ICckJztcbiAgICB9IGVsc2UgaWYgKG1hdGNoWzBdID09ICdcXG4nKSB7XG4gICAgICByZXR1cm4gJ1xcXFxuJztcbiAgICB9IGVsc2UgaWYgKG1hdGNoWzBdID09ICdcXHInKSB7XG4gICAgICByZXR1cm4gJ1xcXFxyJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGBcXFxcJHttYXRjaFswXX1gO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb2RlR2VuRXhwb3J0VmFyaWFibGUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKElTX0RBUlQpIHtcbiAgICByZXR1cm4gYGNvbnN0ICR7bmFtZX0gPSBgO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBgdmFyICR7bmFtZX0gPSBleHBvcnRzWycke25hbWV9J10gPSBgO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb2RlR2VuQ29uc3RDb25zdHJ1Y3RvckNhbGwobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKElTX0RBUlQpIHtcbiAgICByZXR1cm4gYGNvbnN0ICR7bmFtZX1gO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBgbmV3ICR7bmFtZX1gO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb2RlR2VuVmFsdWVGbihwYXJhbXM6IHN0cmluZ1tdLCB2YWx1ZTogc3RyaW5nLCBmbk5hbWU6IHN0cmluZyA9ICcnKTogc3RyaW5nIHtcbiAgaWYgKElTX0RBUlQpIHtcbiAgICByZXR1cm4gYCR7Zm5OYW1lfSgke3BhcmFtcy5qb2luKCcsJyl9KSA9PiAke3ZhbHVlfWA7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGBmdW5jdGlvbiAke2ZuTmFtZX0oJHtwYXJhbXMuam9pbignLCcpfSkgeyByZXR1cm4gJHt2YWx1ZX07IH1gO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb2RlR2VuVG9TdHJpbmcoZXhwcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKElTX0RBUlQpIHtcbiAgICByZXR1cm4gYCdcXCR7JHtleHByfX0nYDtcbiAgfSBlbHNlIHtcbiAgICAvLyBKUyBhdXRvbWF0aWNhbGx5IGNvbnZldHMgdG8gc3RyaW5nLi4uXG4gICAgcmV0dXJuIGV4cHI7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0QXRDb2xvbihpbnB1dDogc3RyaW5nLCBkZWZhdWx0VmFsdWVzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgdmFyIHBhcnRzID0gU3RyaW5nV3JhcHBlci5zcGxpdChpbnB1dC50cmltKCksIC9cXHMqOlxccyovZyk7XG4gIGlmIChwYXJ0cy5sZW5ndGggPiAxKSB7XG4gICAgcmV0dXJuIHBhcnRzO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBkZWZhdWx0VmFsdWVzO1xuICB9XG59XG4iXX0=
+
+/***/ },
+/* 16 */,
+/* 17 */,
+/* 18 */,
+/* 19 */,
+/* 20 */,
+/* 21 */,
+/* 22 */,
+/* 23 */,
+/* 24 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+ var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+ };
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
+ return function (target, key) { decorator(target, key, paramIndex); }
+ };
+ var lang_1 = __webpack_require__(1);
+ var exceptions_1 = __webpack_require__(4);
+ var di_1 = __webpack_require__(5);
+ var ng_zone_1 = __webpack_require__(57);
+ var collection_1 = __webpack_require__(2);
+ exports.EVENT_MANAGER_PLUGINS = lang_1.CONST_EXPR(new di_1.OpaqueToken("EventManagerPlugins"));
+ var EventManager = (function () {
+ function EventManager(plugins, _zone) {
+ var _this = this;
+ this._zone = _zone;
+ plugins.forEach(function (p) { return p.manager = _this; });
+ this._plugins = collection_1.ListWrapper.reversed(plugins);
+ }
+ EventManager.prototype.addEventListener = function (element, eventName, handler) {
+ var plugin = this._findPluginFor(eventName);
+ plugin.addEventListener(element, eventName, handler);
+ };
+ EventManager.prototype.addGlobalEventListener = function (target, eventName, handler) {
+ var plugin = this._findPluginFor(eventName);
+ return plugin.addGlobalEventListener(target, eventName, handler);
+ };
+ EventManager.prototype.getZone = function () { return this._zone; };
+ /** @internal */
+ EventManager.prototype._findPluginFor = function (eventName) {
+ var plugins = this._plugins;
+ for (var i = 0; i < plugins.length; i++) {
+ var plugin = plugins[i];
+ if (plugin.supports(eventName)) {
+ return plugin;
+ }
+ }
+ throw new exceptions_1.BaseException("No event manager plugin found for event " + eventName);
+ };
+ EventManager = __decorate([
+ di_1.Injectable(),
+ __param(0, di_1.Inject(exports.EVENT_MANAGER_PLUGINS)),
+ __metadata('design:paramtypes', [Array, ng_zone_1.NgZone])
+ ], EventManager);
+ return EventManager;
+ })();
+ exports.EventManager = EventManager;
+ var EventManagerPlugin = (function () {
+ function EventManagerPlugin() {
+ }
+ // That is equivalent to having supporting $event.target
+ EventManagerPlugin.prototype.supports = function (eventName) { return false; };
+ EventManagerPlugin.prototype.addEventListener = function (element, eventName, handler) {
+ throw "not implemented";
+ };
+ EventManagerPlugin.prototype.addGlobalEventListener = function (element, eventName, handler) {
+ throw "not implemented";
+ };
+ return EventManagerPlugin;
+ })();
+ exports.EventManagerPlugin = EventManagerPlugin;
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRfbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFuZ3VsYXIyL3NyYy9wbGF0Zm9ybS9kb20vZXZlbnRzL2V2ZW50X21hbmFnZXIudHMiXSwibmFtZXMiOlsiRXZlbnRNYW5hZ2VyIiwiRXZlbnRNYW5hZ2VyLmNvbnN0cnVjdG9yIiwiRXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIiLCJFdmVudE1hbmFnZXIuYWRkR2xvYmFsRXZlbnRMaXN0ZW5lciIsIkV2ZW50TWFuYWdlci5nZXRab25lIiwiRXZlbnRNYW5hZ2VyLl9maW5kUGx1Z2luRm9yIiwiRXZlbnRNYW5hZ2VyUGx1Z2luIiwiRXZlbnRNYW5hZ2VyUGx1Z2luLmNvbnN0cnVjdG9yIiwiRXZlbnRNYW5hZ2VyUGx1Z2luLnN1cHBvcnRzIiwiRXZlbnRNYW5hZ2VyUGx1Z2luLmFkZEV2ZW50TGlzdGVuZXIiLCJFdmVudE1hbmFnZXJQbHVnaW4uYWRkR2xvYmFsRXZlbnRMaXN0ZW5lciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEscUJBQXlCLDBCQUEwQixDQUFDLENBQUE7QUFDcEQsMkJBQThDLGdDQUFnQyxDQUFDLENBQUE7QUFDL0UsbUJBQThDLHNCQUFzQixDQUFDLENBQUE7QUFDckUsd0JBQXFCLGdDQUFnQyxDQUFDLENBQUE7QUFDdEQsMkJBQTBCLGdDQUFnQyxDQUFDLENBQUE7QUFFOUMsNkJBQXFCLEdBQzlCLGlCQUFVLENBQUMsSUFBSSxnQkFBVyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztBQUV2RDtJQUlFQSxzQkFBMkNBLE9BQTZCQSxFQUFVQSxLQUFhQTtRQUpqR0MsaUJBZ0NDQTtRQTVCbUZBLFVBQUtBLEdBQUxBLEtBQUtBLENBQVFBO1FBQzdGQSxPQUFPQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFBQSxDQUFDQSxJQUFJQSxPQUFBQSxDQUFDQSxDQUFDQSxPQUFPQSxHQUFHQSxLQUFJQSxFQUFoQkEsQ0FBZ0JBLENBQUNBLENBQUNBO1FBQ3ZDQSxJQUFJQSxDQUFDQSxRQUFRQSxHQUFHQSx3QkFBV0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7SUFDaERBLENBQUNBO0lBRURELHVDQUFnQkEsR0FBaEJBLFVBQWlCQSxPQUFvQkEsRUFBRUEsU0FBaUJBLEVBQUVBLE9BQWlCQTtRQUN6RUUsSUFBSUEsTUFBTUEsR0FBR0EsSUFBSUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0E7UUFDNUNBLE1BQU1BLENBQUNBLGdCQUFnQkEsQ0FBQ0EsT0FBT0EsRUFBRUEsU0FBU0EsRUFBRUEsT0FBT0EsQ0FBQ0EsQ0FBQ0E7SUFDdkRBLENBQUNBO0lBRURGLDZDQUFzQkEsR0FBdEJBLFVBQXVCQSxNQUFjQSxFQUFFQSxTQUFpQkEsRUFBRUEsT0FBaUJBO1FBQ3pFRyxJQUFJQSxNQUFNQSxHQUFHQSxJQUFJQSxDQUFDQSxjQUFjQSxDQUFDQSxTQUFTQSxDQUFDQSxDQUFDQTtRQUM1Q0EsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0Esc0JBQXNCQSxDQUFDQSxNQUFNQSxFQUFFQSxTQUFTQSxFQUFFQSxPQUFPQSxDQUFDQSxDQUFDQTtJQUNuRUEsQ0FBQ0E7SUFFREgsOEJBQU9BLEdBQVBBLGNBQW9CSSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUV4Q0osZ0JBQWdCQTtJQUNoQkEscUNBQWNBLEdBQWRBLFVBQWVBLFNBQWlCQTtRQUM5QkssSUFBSUEsT0FBT0EsR0FBR0EsSUFBSUEsQ0FBQ0EsUUFBUUEsQ0FBQ0E7UUFDNUJBLEdBQUdBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEVBQUVBLENBQUNBLEdBQUdBLE9BQU9BLENBQUNBLE1BQU1BLEVBQUVBLENBQUNBLEVBQUVBLEVBQUVBLENBQUNBO1lBQ3hDQSxJQUFJQSxNQUFNQSxHQUFHQSxPQUFPQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUN4QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQy9CQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQTtZQUNoQkEsQ0FBQ0E7UUFDSEEsQ0FBQ0E7UUFDREEsTUFBTUEsSUFBSUEsMEJBQWFBLENBQUNBLDZDQUEyQ0EsU0FBV0EsQ0FBQ0EsQ0FBQ0E7SUFDbEZBLENBQUNBO0lBL0JITDtRQUFDQSxlQUFVQSxFQUFFQTtRQUlDQSxXQUFDQSxXQUFNQSxDQUFDQSw2QkFBcUJBLENBQUNBLENBQUFBOztxQkE0QjNDQTtJQUFEQSxtQkFBQ0E7QUFBREEsQ0FBQ0EsQUFoQ0QsSUFnQ0M7QUEvQlksb0JBQVksZUErQnhCLENBQUE7QUFFRDtJQUFBTTtJQWFBQyxDQUFDQTtJQVZDRCx3REFBd0RBO0lBQ3hEQSxxQ0FBUUEsR0FBUkEsVUFBU0EsU0FBaUJBLElBQWFFLE1BQU1BLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBO0lBRXRERiw2Q0FBZ0JBLEdBQWhCQSxVQUFpQkEsT0FBb0JBLEVBQUVBLFNBQWlCQSxFQUFFQSxPQUFpQkE7UUFDekVHLE1BQU1BLGlCQUFpQkEsQ0FBQ0E7SUFDMUJBLENBQUNBO0lBRURILG1EQUFzQkEsR0FBdEJBLFVBQXVCQSxPQUFlQSxFQUFFQSxTQUFpQkEsRUFBRUEsT0FBaUJBO1FBQzFFSSxNQUFNQSxpQkFBaUJBLENBQUNBO0lBQzFCQSxDQUFDQTtJQUNISix5QkFBQ0E7QUFBREEsQ0FBQ0EsQUFiRCxJQWFDO0FBYlksMEJBQWtCLHFCQWE5QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDT05TVF9FWFBSfSBmcm9tICdhbmd1bGFyMi9zcmMvZmFjYWRlL2xhbmcnO1xuaW1wb3J0IHtCYXNlRXhjZXB0aW9uLCBXcmFwcGVkRXhjZXB0aW9ufSBmcm9tICdhbmd1bGFyMi9zcmMvZmFjYWRlL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHtJbmplY3RhYmxlLCBJbmplY3QsIE9wYXF1ZVRva2VufSBmcm9tICdhbmd1bGFyMi9zcmMvY29yZS9kaSc7XG5pbXBvcnQge05nWm9uZX0gZnJvbSAnYW5ndWxhcjIvc3JjL2NvcmUvem9uZS9uZ196b25lJztcbmltcG9ydCB7TGlzdFdyYXBwZXJ9IGZyb20gJ2FuZ3VsYXIyL3NyYy9mYWNhZGUvY29sbGVjdGlvbic7XG5cbmV4cG9ydCBjb25zdCBFVkVOVF9NQU5BR0VSX1BMVUdJTlM6IE9wYXF1ZVRva2VuID1cbiAgICBDT05TVF9FWFBSKG5ldyBPcGFxdWVUb2tlbihcIkV2ZW50TWFuYWdlclBsdWdpbnNcIikpO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXZlbnRNYW5hZ2VyIHtcbiAgcHJpdmF0ZSBfcGx1Z2luczogRXZlbnRNYW5hZ2VyUGx1Z2luW107XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChFVkVOVF9NQU5BR0VSX1BMVUdJTlMpIHBsdWdpbnM6IEV2ZW50TWFuYWdlclBsdWdpbltdLCBwcml2YXRlIF96b25lOiBOZ1pvbmUpIHtcbiAgICBwbHVnaW5zLmZvckVhY2gocCA9PiBwLm1hbmFnZXIgPSB0aGlzKTtcbiAgICB0aGlzLl9wbHVnaW5zID0gTGlzdFdyYXBwZXIucmV2ZXJzZWQocGx1Z2lucyk7XG4gIH1cblxuICBhZGRFdmVudExpc3RlbmVyKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBldmVudE5hbWU6IHN0cmluZywgaGFuZGxlcjogRnVuY3Rpb24pIHtcbiAgICB2YXIgcGx1Z2luID0gdGhpcy5fZmluZFBsdWdpbkZvcihldmVudE5hbWUpO1xuICAgIHBsdWdpbi5hZGRFdmVudExpc3RlbmVyKGVsZW1lbnQsIGV2ZW50TmFtZSwgaGFuZGxlcik7XG4gIH1cblxuICBhZGRHbG9iYWxFdmVudExpc3RlbmVyKHRhcmdldDogc3RyaW5nLCBldmVudE5hbWU6IHN0cmluZywgaGFuZGxlcjogRnVuY3Rpb24pOiBGdW5jdGlvbiB7XG4gICAgdmFyIHBsdWdpbiA9IHRoaXMuX2ZpbmRQbHVnaW5Gb3IoZXZlbnROYW1lKTtcbiAgICByZXR1cm4gcGx1Z2luLmFkZEdsb2JhbEV2ZW50TGlzdGVuZXIodGFyZ2V0LCBldmVudE5hbWUsIGhhbmRsZXIpO1xuICB9XG5cbiAgZ2V0Wm9uZSgpOiBOZ1pvbmUgeyByZXR1cm4gdGhpcy5fem9uZTsgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgX2ZpbmRQbHVnaW5Gb3IoZXZlbnROYW1lOiBzdHJpbmcpOiBFdmVudE1hbmFnZXJQbHVnaW4ge1xuICAgIHZhciBwbHVnaW5zID0gdGhpcy5fcGx1Z2lucztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBsdWdpbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBwbHVnaW4gPSBwbHVnaW5zW2ldO1xuICAgICAgaWYgKHBsdWdpbi5zdXBwb3J0cyhldmVudE5hbWUpKSB7XG4gICAgICAgIHJldHVybiBwbHVnaW47XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBCYXNlRXhjZXB0aW9uKGBObyBldmVudCBtYW5hZ2VyIHBsdWdpbiBmb3VuZCBmb3IgZXZlbnQgJHtldmVudE5hbWV9YCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEV2ZW50TWFuYWdlclBsdWdpbiB7XG4gIG1hbmFnZXI6IEV2ZW50TWFuYWdlcjtcblxuICAvLyBUaGF0IGlzIGVxdWl2YWxlbnQgdG8gaGF2aW5nIHN1cHBvcnRpbmcgJGV2ZW50LnRhcmdldFxuICBzdXBwb3J0cyhldmVudE5hbWU6IHN0cmluZyk6IGJvb2xlYW4geyByZXR1cm4gZmFsc2U7IH1cblxuICBhZGRFdmVudExpc3RlbmVyKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBldmVudE5hbWU6IHN0cmluZywgaGFuZGxlcjogRnVuY3Rpb24pIHtcbiAgICB0aHJvdyBcIm5vdCBpbXBsZW1lbnRlZFwiO1xuICB9XG5cbiAgYWRkR2xvYmFsRXZlbnRMaXN0ZW5lcihlbGVtZW50OiBzdHJpbmcsIGV2ZW50TmFtZTogc3RyaW5nLCBoYW5kbGVyOiBGdW5jdGlvbik6IEZ1bmN0aW9uIHtcbiAgICB0aHJvdyBcIm5vdCBpbXBsZW1lbnRlZFwiO1xuICB9XG59Il19
+
+/***/ },
+/* 25 */,
+/* 26 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';var lang_1 = __webpack_require__(1);
+ // see http://www.w3.org/TR/html51/syntax.html#named-character-references
+ // see https://html.spec.whatwg.org/multipage/entities.json
+ // This list is not exhaustive to keep the compiler footprint low.
+ // The `{` / `ƫ` syntax should be used when the named character reference does not exist.
+ exports.NAMED_ENTITIES = lang_1.CONST_EXPR({
+ 'Aacute': '\u00C1',
+ 'aacute': '\u00E1',
+ 'Acirc': '\u00C2',
+ 'acirc': '\u00E2',
+ 'acute': '\u00B4',
+ 'AElig': '\u00C6',
+ 'aelig': '\u00E6',
+ 'Agrave': '\u00C0',
+ 'agrave': '\u00E0',
+ 'alefsym': '\u2135',
+ 'Alpha': '\u0391',
+ 'alpha': '\u03B1',
+ 'amp': '&',
+ 'and': '\u2227',
+ 'ang': '\u2220',
+ 'apos': '\u0027',
+ 'Aring': '\u00C5',
+ 'aring': '\u00E5',
+ 'asymp': '\u2248',
+ 'Atilde': '\u00C3',
+ 'atilde': '\u00E3',
+ 'Auml': '\u00C4',
+ 'auml': '\u00E4',
+ 'bdquo': '\u201E',
+ 'Beta': '\u0392',
+ 'beta': '\u03B2',
+ 'brvbar': '\u00A6',
+ 'bull': '\u2022',
+ 'cap': '\u2229',
+ 'Ccedil': '\u00C7',
+ 'ccedil': '\u00E7',
+ 'cedil': '\u00B8',
+ 'cent': '\u00A2',
+ 'Chi': '\u03A7',
+ 'chi': '\u03C7',
+ 'circ': '\u02C6',
+ 'clubs': '\u2663',
+ 'cong': '\u2245',
+ 'copy': '\u00A9',
+ 'crarr': '\u21B5',
+ 'cup': '\u222A',
+ 'curren': '\u00A4',
+ 'dagger': '\u2020',
+ 'Dagger': '\u2021',
+ 'darr': '\u2193',
+ 'dArr': '\u21D3',
+ 'deg': '\u00B0',
+ 'Delta': '\u0394',
+ 'delta': '\u03B4',
+ 'diams': '\u2666',
+ 'divide': '\u00F7',
+ 'Eacute': '\u00C9',
+ 'eacute': '\u00E9',
+ 'Ecirc': '\u00CA',
+ 'ecirc': '\u00EA',
+ 'Egrave': '\u00C8',
+ 'egrave': '\u00E8',
+ 'empty': '\u2205',
+ 'emsp': '\u2003',
+ 'ensp': '\u2002',
+ 'Epsilon': '\u0395',
+ 'epsilon': '\u03B5',
+ 'equiv': '\u2261',
+ 'Eta': '\u0397',
+ 'eta': '\u03B7',
+ 'ETH': '\u00D0',
+ 'eth': '\u00F0',
+ 'Euml': '\u00CB',
+ 'euml': '\u00EB',
+ 'euro': '\u20AC',
+ 'exist': '\u2203',
+ 'fnof': '\u0192',
+ 'forall': '\u2200',
+ 'frac12': '\u00BD',
+ 'frac14': '\u00BC',
+ 'frac34': '\u00BE',
+ 'frasl': '\u2044',
+ 'Gamma': '\u0393',
+ 'gamma': '\u03B3',
+ 'ge': '\u2265',
+ 'gt': '>',
+ 'harr': '\u2194',
+ 'hArr': '\u21D4',
+ 'hearts': '\u2665',
+ 'hellip': '\u2026',
+ 'Iacute': '\u00CD',
+ 'iacute': '\u00ED',
+ 'Icirc': '\u00CE',
+ 'icirc': '\u00EE',
+ 'iexcl': '\u00A1',
+ 'Igrave': '\u00CC',
+ 'igrave': '\u00EC',
+ 'image': '\u2111',
+ 'infin': '\u221E',
+ 'int': '\u222B',
+ 'Iota': '\u0399',
+ 'iota': '\u03B9',
+ 'iquest': '\u00BF',
+ 'isin': '\u2208',
+ 'Iuml': '\u00CF',
+ 'iuml': '\u00EF',
+ 'Kappa': '\u039A',
+ 'kappa': '\u03BA',
+ 'Lambda': '\u039B',
+ 'lambda': '\u03BB',
+ 'lang': '\u27E8',
+ 'laquo': '\u00AB',
+ 'larr': '\u2190',
+ 'lArr': '\u21D0',
+ 'lceil': '\u2308',
+ 'ldquo': '\u201C',
+ 'le': '\u2264',
+ 'lfloor': '\u230A',
+ 'lowast': '\u2217',
+ 'loz': '\u25CA',
+ 'lrm': '\u200E',
+ 'lsaquo': '\u2039',
+ 'lsquo': '\u2018',
+ 'lt': '<',
+ 'macr': '\u00AF',
+ 'mdash': '\u2014',
+ 'micro': '\u00B5',
+ 'middot': '\u00B7',
+ 'minus': '\u2212',
+ 'Mu': '\u039C',
+ 'mu': '\u03BC',
+ 'nabla': '\u2207',
+ 'nbsp': '\u00A0',
+ 'ndash': '\u2013',
+ 'ne': '\u2260',
+ 'ni': '\u220B',
+ 'not': '\u00AC',
+ 'notin': '\u2209',
+ 'nsub': '\u2284',
+ 'Ntilde': '\u00D1',
+ 'ntilde': '\u00F1',
+ 'Nu': '\u039D',
+ 'nu': '\u03BD',
+ 'Oacute': '\u00D3',
+ 'oacute': '\u00F3',
+ 'Ocirc': '\u00D4',
+ 'ocirc': '\u00F4',
+ 'OElig': '\u0152',
+ 'oelig': '\u0153',
+ 'Ograve': '\u00D2',
+ 'ograve': '\u00F2',
+ 'oline': '\u203E',
+ 'Omega': '\u03A9',
+ 'omega': '\u03C9',
+ 'Omicron': '\u039F',
+ 'omicron': '\u03BF',
+ 'oplus': '\u2295',
+ 'or': '\u2228',
+ 'ordf': '\u00AA',
+ 'ordm': '\u00BA',
+ 'Oslash': '\u00D8',
+ 'oslash': '\u00F8',
+ 'Otilde': '\u00D5',
+ 'otilde': '\u00F5',
+ 'otimes': '\u2297',
+ 'Ouml': '\u00D6',
+ 'ouml': '\u00F6',
+ 'para': '\u00B6',
+ 'permil': '\u2030',
+ 'perp': '\u22A5',
+ 'Phi': '\u03A6',
+ 'phi': '\u03C6',
+ 'Pi': '\u03A0',
+ 'pi': '\u03C0',
+ 'piv': '\u03D6',
+ 'plusmn': '\u00B1',
+ 'pound': '\u00A3',
+ 'prime': '\u2032',
+ 'Prime': '\u2033',
+ 'prod': '\u220F',
+ 'prop': '\u221D',
+ 'Psi': '\u03A8',
+ 'psi': '\u03C8',
+ 'quot': '\u0022',
+ 'radic': '\u221A',
+ 'rang': '\u27E9',
+ 'raquo': '\u00BB',
+ 'rarr': '\u2192',
+ 'rArr': '\u21D2',
+ 'rceil': '\u2309',
+ 'rdquo': '\u201D',
+ 'real': '\u211C',
+ 'reg': '\u00AE',
+ 'rfloor': '\u230B',
+ 'Rho': '\u03A1',
+ 'rho': '\u03C1',
+ 'rlm': '\u200F',
+ 'rsaquo': '\u203A',
+ 'rsquo': '\u2019',
+ 'sbquo': '\u201A',
+ 'Scaron': '\u0160',
+ 'scaron': '\u0161',
+ 'sdot': '\u22C5',
+ 'sect': '\u00A7',
+ 'shy': '\u00AD',
+ 'Sigma': '\u03A3',
+ 'sigma': '\u03C3',
+ 'sigmaf': '\u03C2',
+ 'sim': '\u223C',
+ 'spades': '\u2660',
+ 'sub': '\u2282',
+ 'sube': '\u2286',
+ 'sum': '\u2211',
+ 'sup': '\u2283',
+ 'sup1': '\u00B9',
+ 'sup2': '\u00B2',
+ 'sup3': '\u00B3',
+ 'supe': '\u2287',
+ 'szlig': '\u00DF',
+ 'Tau': '\u03A4',
+ 'tau': '\u03C4',
+ 'there4': '\u2234',
+ 'Theta': '\u0398',
+ 'theta': '\u03B8',
+ 'thetasym': '\u03D1',
+ 'thinsp': '\u2009',
+ 'THORN': '\u00DE',
+ 'thorn': '\u00FE',
+ 'tilde': '\u02DC',
+ 'times': '\u00D7',
+ 'trade': '\u2122',
+ 'Uacute': '\u00DA',
+ 'uacute': '\u00FA',
+ 'uarr': '\u2191',
+ 'uArr': '\u21D1',
+ 'Ucirc': '\u00DB',
+ 'ucirc': '\u00FB',
+ 'Ugrave': '\u00D9',
+ 'ugrave': '\u00F9',
+ 'uml': '\u00A8',
+ 'upsih': '\u03D2',
+ 'Upsilon': '\u03A5',
+ 'upsilon': '\u03C5',
+ 'Uuml': '\u00DC',
+ 'uuml': '\u00FC',
+ 'weierp': '\u2118',
+ 'Xi': '\u039E',
+ 'xi': '\u03BE',
+ 'Yacute': '\u00DD',
+ 'yacute': '\u00FD',
+ 'yen': '\u00A5',
+ 'yuml': '\u00FF',
+ 'Yuml': '\u0178',
+ 'Zeta': '\u0396',
+ 'zeta': '\u03B6',
+ 'zwj': '\u200D',
+ 'zwnj': '\u200C',
+ });
+ (function (HtmlTagContentType) {
+ HtmlTagContentType[HtmlTagContentType["RAW_TEXT"] = 0] = "RAW_TEXT";
+ HtmlTagContentType[HtmlTagContentType["ESCAPABLE_RAW_TEXT"] = 1] = "ESCAPABLE_RAW_TEXT";
+ HtmlTagContentType[HtmlTagContentType["PARSABLE_DATA"] = 2] = "PARSABLE_DATA";
+ })(exports.HtmlTagContentType || (exports.HtmlTagContentType = {}));
+ var HtmlTagContentType = exports.HtmlTagContentType;
+ var HtmlTagDefinition = (function () {
+ function HtmlTagDefinition(_a) {
+ var _this = this;
+ var _b = _a === void 0 ? {} : _a, closedByChildren = _b.closedByChildren, requiredParents = _b.requiredParents, implicitNamespacePrefix = _b.implicitNamespacePrefix, contentType = _b.contentType, closedByParent = _b.closedByParent, isVoid = _b.isVoid, ignoreFirstLf = _b.ignoreFirstLf;
+ this.closedByChildren = {};
+ this.closedByParent = false;
+ if (lang_1.isPresent(closedByChildren) && closedByChildren.length > 0) {
+ closedByChildren.forEach(function (tagName) { return _this.closedByChildren[tagName] = true; });
+ }
+ this.isVoid = lang_1.normalizeBool(isVoid);
+ this.closedByParent = lang_1.normalizeBool(closedByParent) || this.isVoid;
+ if (lang_1.isPresent(requiredParents) && requiredParents.length > 0) {
+ this.requiredParents = {};
+ this.parentToAdd = requiredParents[0];
+ requiredParents.forEach(function (tagName) { return _this.requiredParents[tagName] = true; });
+ }
+ this.implicitNamespacePrefix = implicitNamespacePrefix;
+ this.contentType = lang_1.isPresent(contentType) ? contentType : HtmlTagContentType.PARSABLE_DATA;
+ this.ignoreFirstLf = lang_1.normalizeBool(ignoreFirstLf);
+ }
+ HtmlTagDefinition.prototype.requireExtraParent = function (currentParent) {
+ if (lang_1.isBlank(this.requiredParents)) {
+ return false;
+ }
+ if (lang_1.isBlank(currentParent)) {
+ return true;
+ }
+ var lcParent = currentParent.toLowerCase();
+ return this.requiredParents[lcParent] != true && lcParent != 'template';
+ };
+ HtmlTagDefinition.prototype.isClosedByChild = function (name) {
+ return this.isVoid || lang_1.normalizeBool(this.closedByChildren[name.toLowerCase()]);
+ };
+ return HtmlTagDefinition;
+ })();
+ exports.HtmlTagDefinition = HtmlTagDefinition;
+ // see http://www.w3.org/TR/html51/syntax.html#optional-tags
+ // This implementation does not fully conform to the HTML5 spec.
+ var TAG_DEFINITIONS = {
+ 'area': new HtmlTagDefinition({ isVoid: true }),
+ 'embed': new HtmlTagDefinition({ isVoid: true }),
+ 'link': new HtmlTagDefinition({ isVoid: true }),
+ 'img': new HtmlTagDefinition({ isVoid: true }),
+ 'input': new HtmlTagDefinition({ isVoid: true }),
+ 'param': new HtmlTagDefinition({ isVoid: true }),
+ 'hr': new HtmlTagDefinition({ isVoid: true }),
+ 'br': new HtmlTagDefinition({ isVoid: true }),
+ 'source': new HtmlTagDefinition({ isVoid: true }),
+ 'track': new HtmlTagDefinition({ isVoid: true }),
+ 'wbr': new HtmlTagDefinition({ isVoid: true }),
+ 'p': new HtmlTagDefinition({
+ closedByChildren: [
+ 'address',
+ 'article',
+ 'aside',
+ 'blockquote',
+ 'div',
+ 'dl',
+ 'fieldset',
+ 'footer',
+ 'form',
+ 'h1',
+ 'h2',
+ 'h3',
+ 'h4',
+ 'h5',
+ 'h6',
+ 'header',
+ 'hgroup',
+ 'hr',
+ 'main',
+ 'nav',
+ 'ol',
+ 'p',
+ 'pre',
+ 'section',
+ 'table',
+ 'ul'
+ ],
+ closedByParent: true
+ }),
+ 'thead': new HtmlTagDefinition({ closedByChildren: ['tbody', 'tfoot'] }),
+ 'tbody': new HtmlTagDefinition({ closedByChildren: ['tbody', 'tfoot'], closedByParent: true }),
+ 'tfoot': new HtmlTagDefinition({ closedByChildren: ['tbody'], closedByParent: true }),
+ 'tr': new HtmlTagDefinition({
+ closedByChildren: ['tr'],
+ requiredParents: ['tbody', 'tfoot', 'thead'],
+ closedByParent: true
+ }),
+ 'td': new HtmlTagDefinition({ closedByChildren: ['td', 'th'], closedByParent: true }),
+ 'th': new HtmlTagDefinition({ closedByChildren: ['td', 'th'], closedByParent: true }),
+ 'col': new HtmlTagDefinition({ requiredParents: ['colgroup'], isVoid: true }),
+ 'svg': new HtmlTagDefinition({ implicitNamespacePrefix: 'svg' }),
+ 'math': new HtmlTagDefinition({ implicitNamespacePrefix: 'math' }),
+ 'li': new HtmlTagDefinition({ closedByChildren: ['li'], closedByParent: true }),
+ 'dt': new HtmlTagDefinition({ closedByChildren: ['dt', 'dd'] }),
+ 'dd': new HtmlTagDefinition({ closedByChildren: ['dt', 'dd'], closedByParent: true }),
+ 'rb': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),
+ 'rt': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),
+ 'rtc': new HtmlTagDefinition({ closedByChildren: ['rb', 'rtc', 'rp'], closedByParent: true }),
+ 'rp': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),
+ 'optgroup': new HtmlTagDefinition({ closedByChildren: ['optgroup'], closedByParent: true }),
+ 'option': new HtmlTagDefinition({ closedByChildren: ['option', 'optgroup'], closedByParent: true }),
+ 'pre': new HtmlTagDefinition({ ignoreFirstLf: true }),
+ 'listing': new HtmlTagDefinition({ ignoreFirstLf: true }),
+ 'style': new HtmlTagDefinition({ contentType: HtmlTagContentType.RAW_TEXT }),
+ 'script': new HtmlTagDefinition({ contentType: HtmlTagContentType.RAW_TEXT }),
+ 'title': new HtmlTagDefinition({ contentType: HtmlTagContentType.ESCAPABLE_RAW_TEXT }),
+ 'textarea': new HtmlTagDefinition({ contentType: HtmlTagContentType.ESCAPABLE_RAW_TEXT, ignoreFirstLf: true }),
+ };
+ var DEFAULT_TAG_DEFINITION = new HtmlTagDefinition();
+ function getHtmlTagDefinition(tagName) {
+ var result = TAG_DEFINITIONS[tagName.toLowerCase()];
+ return lang_1.isPresent(result) ? result : DEFAULT_TAG_DEFINITION;
+ }
+ exports.getHtmlTagDefinition = getHtmlTagDefinition;
+ var NS_PREFIX_RE = /^@([^:]+):(.+)/g;
+ function splitNsName(elementName) {
+ if (elementName[0] != '@') {
+ return [null, elementName];
+ }
+ var match = lang_1.RegExpWrapper.firstMatch(NS_PREFIX_RE, elementName);
+ return [match[1], match[2]];
+ }
+ exports.splitNsName = splitNsName;
+ function getNsPrefix(elementName) {
+ return splitNsName(elementName)[0];
+ }
+ exports.getNsPrefix = getNsPrefix;
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbF90YWdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW5ndWxhcjIvc3JjL2NvbXBpbGVyL2h0bWxfdGFncy50cyJdLCJuYW1lcyI6WyJIdG1sVGFnQ29udGVudFR5cGUiLCJIdG1sVGFnRGVmaW5pdGlvbiIsIkh0bWxUYWdEZWZpbml0aW9uLmNvbnN0cnVjdG9yIiwiSHRtbFRhZ0RlZmluaXRpb24ucmVxdWlyZUV4dHJhUGFyZW50IiwiSHRtbFRhZ0RlZmluaXRpb24uaXNDbG9zZWRCeUNoaWxkIiwiZ2V0SHRtbFRhZ0RlZmluaXRpb24iLCJzcGxpdE5zTmFtZSIsImdldE5zUHJlZml4Il0sIm1hcHBpbmdzIjoiQUFBQSxxQkFNTywwQkFBMEIsQ0FBQyxDQUFBO0FBRWxDLHlFQUF5RTtBQUN6RSwyREFBMkQ7QUFDM0Qsa0VBQWtFO0FBQ2xFLG9HQUFvRztBQUN2RixzQkFBYyxHQUFHLGlCQUFVLENBQUM7SUFDdkMsUUFBUSxFQUFFLFFBQVE7SUFDbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsU0FBUyxFQUFFLFFBQVE7SUFDbkIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsS0FBSyxFQUFFLEdBQUc7SUFDVixLQUFLLEVBQUUsUUFBUTtJQUNmLEtBQUssRUFBRSxRQUFRO0lBQ2YsTUFBTSxFQUFFLFFBQVE7SUFDaEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsS0FBSyxFQUFFLFFBQVE7SUFDZixRQUFRLEVBQUUsUUFBUTtJQUNsQixRQUFRLEVBQUUsUUFBUTtJQUNsQixPQUFPLEVBQUUsUUFBUTtJQUNqQixNQUFNLEVBQUUsUUFBUTtJQUNoQixLQUFLLEVBQUUsUUFBUTtJQUNmLEtBQUssRUFBRSxRQUFRO0lBQ2YsTUFBTSxFQUFFLFFBQVE7SUFDaEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsS0FBSyxFQUFFLFFBQVE7SUFDZixRQUFRLEVBQUUsUUFBUTtJQUNsQixRQUFRLEVBQUUsUUFBUTtJQUNsQixRQUFRLEVBQUUsUUFBUTtJQUNsQixNQUFNLEVBQUUsUUFBUTtJQUNoQixNQUFNLEVBQUUsUUFBUTtJQUNoQixLQUFLLEVBQUUsUUFBUTtJQUNmLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFNBQVMsRUFBRSxRQUFRO0lBQ25CLFNBQVMsRUFBRSxRQUFRO0lBQ25CLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLEtBQUssRUFBRSxRQUFRO0lBQ2YsS0FBSyxFQUFFLFFBQVE7SUFDZixLQUFLLEVBQUUsUUFBUTtJQUNmLEtBQUssRUFBRSxRQUFRO0lBQ2YsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsSUFBSSxFQUFFLFFBQVE7SUFDZCxJQUFJLEVBQUUsR0FBRztJQUNULE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLEtBQUssRUFBRSxRQUFRO0lBQ2YsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsSUFBSSxFQUFFLFFBQVE7SUFDZCxRQUFRLEVBQUUsUUFBUTtJQUNsQixRQUFRLEVBQUUsUUFBUTtJQUNsQixLQUFLLEVBQUUsUUFBUTtJQUNmLEtBQUssRUFBRSxRQUFRO0lBQ2YsUUFBUSxFQUFFLFFBQVE7SUFDbEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsSUFBSSxFQUFFLEdBQUc7SUFDVCxNQUFNLEVBQUUsUUFBUTtJQUNoQixPQUFPLEVBQUUsUUFBUTtJQUNqQixPQUFPLEVBQUUsUUFBUTtJQUNqQixRQUFRLEVBQUUsUUFBUTtJQUNsQixPQUFPLEVBQUUsUUFBUTtJQUNqQixJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxRQUFRO0lBQ2QsT0FBTyxFQUFFLFFBQVE7SUFDakIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsSUFBSSxFQUFFLFFBQVE7SUFDZCxJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxRQUFRO0lBQ2YsT0FBTyxFQUFFLFFBQVE7SUFDakIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsSUFBSSxFQUFFLFFBQVE7SUFDZCxJQUFJLEVBQUUsUUFBUTtJQUNkLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFNBQVMsRUFBRSxRQUFRO0lBQ25CLFNBQVMsRUFBRSxRQUFRO0lBQ25CLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLElBQUksRUFBRSxRQUFRO0lBQ2QsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsS0FBSyxFQUFFLFFBQVE7SUFDZixLQUFLLEVBQUUsUUFBUTtJQUNmLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsUUFBUTtJQUNmLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEtBQUssRUFBRSxRQUFRO0lBQ2YsS0FBSyxFQUFFLFFBQVE7SUFDZixNQUFNLEVBQUUsUUFBUTtJQUNoQixPQUFPLEVBQUUsUUFBUTtJQUNqQixNQUFNLEVBQUUsUUFBUTtJQUNoQixPQUFPLEVBQUUsUUFBUTtJQUNqQixNQUFNLEVBQUUsUUFBUTtJQUNoQixNQUFNLEVBQUUsUUFBUTtJQUNoQixPQUFPLEVBQUUsUUFBUTtJQUNqQixPQUFPLEVBQUUsUUFBUTtJQUNqQixNQUFNLEVBQUUsUUFBUTtJQUNoQixLQUFLLEVBQUUsUUFBUTtJQUNmLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEtBQUssRUFBRSxRQUFRO0lBQ2YsS0FBSyxFQUFFLFFBQVE7SUFDZixLQUFLLEVBQUUsUUFBUTtJQUNmLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEtBQUssRUFBRSxRQUFRO0lBQ2YsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsS0FBSyxFQUFFLFFBQVE7SUFDZixRQUFRLEVBQUUsUUFBUTtJQUNsQixLQUFLLEVBQUUsUUFBUTtJQUNmLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEtBQUssRUFBRSxRQUFRO0lBQ2YsS0FBSyxFQUFFLFFBQVE7SUFDZixNQUFNLEVBQUUsUUFBUTtJQUNoQixNQUFNLEVBQUUsUUFBUTtJQUNoQixNQUFNLEVBQUUsUUFBUTtJQUNoQixNQUFNLEVBQUUsUUFBUTtJQUNoQixPQUFPLEVBQUUsUUFBUTtJQUNqQixLQUFLLEVBQUUsUUFBUTtJQUNmLEtBQUssRUFBRSxRQUFRO0lBQ2YsUUFBUSxFQUFFLFFBQVE7SUFDbEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsVUFBVSxFQUFFLFFBQVE7SUFDcEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsS0FBSyxFQUFFLFFBQVE7SUFDZixPQUFPLEVBQUUsUUFBUTtJQUNqQixTQUFTLEVBQUUsUUFBUTtJQUNuQixTQUFTLEVBQUUsUUFBUTtJQUNuQixNQUFNLEVBQUUsUUFBUTtJQUNoQixNQUFNLEVBQUUsUUFBUTtJQUNoQixRQUFRLEVBQUUsUUFBUTtJQUNsQixJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxRQUFRO0lBQ2QsUUFBUSxFQUFFLFFBQVE7SUFDbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsS0FBSyxFQUFFLFFBQVE7SUFDZixNQUFNLEVBQUUsUUFBUTtJQUNoQixNQUFNLEVBQUUsUUFBUTtJQUNoQixNQUFNLEVBQUUsUUFBUTtJQUNoQixNQUFNLEVBQUUsUUFBUTtJQUNoQixLQUFLLEVBQUUsUUFBUTtJQUNmLE1BQU0sRUFBRSxRQUFRO0NBQ2pCLENBQUMsQ0FBQztBQUVILFdBQVksa0JBQWtCO0lBQzVCQSxtRUFBUUEsQ0FBQUE7SUFDUkEsdUZBQWtCQSxDQUFBQTtJQUNsQkEsNkVBQWFBLENBQUFBO0FBQ2ZBLENBQUNBLEVBSlcsMEJBQWtCLEtBQWxCLDBCQUFrQixRQUk3QjtBQUpELElBQVksa0JBQWtCLEdBQWxCLDBCQUlYLENBQUE7QUFFRDtJQVVFQywyQkFBWUEsRUFTTkE7UUFuQlJDLGlCQW1EQ0E7aUNBaENLQSxFQUFFQSxPQVRPQSxnQkFBZ0JBLHdCQUFFQSxlQUFlQSx1QkFBRUEsdUJBQXVCQSwrQkFBRUEsV0FBV0EsbUJBQ3ZFQSxjQUFjQSxzQkFBRUEsTUFBTUEsY0FBRUEsYUFBYUE7UUFWMUNBLHFCQUFnQkEsR0FBNkJBLEVBQUVBLENBQUNBO1FBQ2pEQSxtQkFBY0EsR0FBWUEsS0FBS0EsQ0FBQ0E7UUFrQnJDQSxFQUFFQSxDQUFDQSxDQUFDQSxnQkFBU0EsQ0FBQ0EsZ0JBQWdCQSxDQUFDQSxJQUFJQSxnQkFBZ0JBLENBQUNBLE1BQU1BLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQy9EQSxnQkFBZ0JBLENBQUNBLE9BQU9BLENBQUNBLFVBQUFBLE9BQU9BLElBQUlBLE9BQUFBLEtBQUlBLENBQUNBLGdCQUFnQkEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsR0FBR0EsSUFBSUEsRUFBckNBLENBQXFDQSxDQUFDQSxDQUFDQTtRQUM3RUEsQ0FBQ0E7UUFDREEsSUFBSUEsQ0FBQ0EsTUFBTUEsR0FBR0Esb0JBQWFBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO1FBQ3BDQSxJQUFJQSxDQUFDQSxjQUFjQSxHQUFHQSxvQkFBYUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsSUFBSUEsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7UUFDbkVBLEVBQUVBLENBQUNBLENBQUNBLGdCQUFTQSxDQUFDQSxlQUFlQSxDQUFDQSxJQUFJQSxlQUFlQSxDQUFDQSxNQUFNQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUM3REEsSUFBSUEsQ0FBQ0EsZUFBZUEsR0FBR0EsRUFBRUEsQ0FBQ0E7WUFDMUJBLElBQUlBLENBQUNBLFdBQVdBLEdBQUdBLGVBQWVBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3RDQSxlQUFlQSxDQUFDQSxPQUFPQSxDQUFDQSxVQUFBQSxPQUFPQSxJQUFJQSxPQUFBQSxLQUFJQSxDQUFDQSxlQUFlQSxDQUFDQSxPQUFPQSxDQUFDQSxHQUFHQSxJQUFJQSxFQUFwQ0EsQ0FBb0NBLENBQUNBLENBQUNBO1FBQzNFQSxDQUFDQTtRQUNEQSxJQUFJQSxDQUFDQSx1QkFBdUJBLEdBQUdBLHVCQUF1QkEsQ0FBQ0E7UUFDdkRBLElBQUlBLENBQUNBLFdBQVdBLEdBQUdBLGdCQUFTQSxDQUFDQSxXQUFXQSxDQUFDQSxHQUFHQSxXQUFXQSxHQUFHQSxrQkFBa0JBLENBQUNBLGFBQWFBLENBQUNBO1FBQzNGQSxJQUFJQSxDQUFDQSxhQUFhQSxHQUFHQSxvQkFBYUEsQ0FBQ0EsYUFBYUEsQ0FBQ0EsQ0FBQ0E7SUFDcERBLENBQUNBO0lBRURELDhDQUFrQkEsR0FBbEJBLFVBQW1CQSxhQUFxQkE7UUFDdENFLEVBQUVBLENBQUNBLENBQUNBLGNBQU9BLENBQUNBLElBQUlBLENBQUNBLGVBQWVBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ2xDQSxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQTtRQUNmQSxDQUFDQTtRQUVEQSxFQUFFQSxDQUFDQSxDQUFDQSxjQUFPQSxDQUFDQSxhQUFhQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUMzQkEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0E7UUFDZEEsQ0FBQ0E7UUFFREEsSUFBSUEsUUFBUUEsR0FBR0EsYUFBYUEsQ0FBQ0EsV0FBV0EsRUFBRUEsQ0FBQ0E7UUFDM0NBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLGVBQWVBLENBQUNBLFFBQVFBLENBQUNBLElBQUlBLElBQUlBLElBQUlBLFFBQVFBLElBQUlBLFVBQVVBLENBQUNBO0lBQzFFQSxDQUFDQTtJQUVERiwyQ0FBZUEsR0FBZkEsVUFBZ0JBLElBQVlBO1FBQzFCRyxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxNQUFNQSxJQUFJQSxvQkFBYUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsZ0JBQWdCQSxDQUFDQSxJQUFJQSxDQUFDQSxXQUFXQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUNqRkEsQ0FBQ0E7SUFDSEgsd0JBQUNBO0FBQURBLENBQUNBLEFBbkRELElBbURDO0FBbkRZLHlCQUFpQixvQkFtRDdCLENBQUE7QUFFRCw0REFBNEQ7QUFDNUQsZ0VBQWdFO0FBQ2hFLElBQUksZUFBZSxHQUF1QztJQUN4RCxNQUFNLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUM3QyxPQUFPLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUM5QyxNQUFNLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUM3QyxLQUFLLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUM1QyxPQUFPLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUM5QyxPQUFPLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUM5QyxJQUFJLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUMzQyxJQUFJLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUMzQyxRQUFRLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUMvQyxPQUFPLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUM5QyxLQUFLLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUM1QyxHQUFHLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQztRQUN6QixnQkFBZ0IsRUFBRTtZQUNoQixTQUFTO1lBQ1QsU0FBUztZQUNULE9BQU87WUFDUCxZQUFZO1lBQ1osS0FBSztZQUNMLElBQUk7WUFDSixVQUFVO1lBQ1YsUUFBUTtZQUNSLE1BQU07WUFDTixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixRQUFRO1lBQ1IsUUFBUTtZQUNSLElBQUk7WUFDSixNQUFNO1lBQ04sS0FBSztZQUNMLElBQUk7WUFDSixHQUFHO1lBQ0gsS0FBSztZQUNMLFNBQVM7WUFDVCxPQUFPO1lBQ1AsSUFBSTtTQUNMO1FBQ0QsY0FBYyxFQUFFLElBQUk7S0FDckIsQ0FBQztJQUNGLE9BQU8sRUFBRSxJQUFJLGlCQUFpQixDQUFDLEVBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUMsQ0FBQztJQUN0RSxPQUFPLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLGdCQUFnQixFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUM1RixPQUFPLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLGdCQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBQyxDQUFDO0lBQ25GLElBQUksRUFBRSxJQUFJLGlCQUFpQixDQUFDO1FBQzFCLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ3hCLGVBQWUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDO1FBQzVDLGNBQWMsRUFBRSxJQUFJO0tBQ3JCLENBQUM7SUFDRixJQUFJLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUNuRixJQUFJLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUNuRixLQUFLLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLGVBQWUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUMzRSxLQUFLLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLHVCQUF1QixFQUFFLEtBQUssRUFBQyxDQUFDO0lBQzlELE1BQU0sRUFBRSxJQUFJLGlCQUFpQixDQUFDLEVBQUMsdUJBQXVCLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDaEUsSUFBSSxFQUFFLElBQUksaUJBQWlCLENBQUMsRUFBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUM3RSxJQUFJLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFDLENBQUM7SUFDN0QsSUFBSSxFQUFFLElBQUksaUJBQWlCLENBQUMsRUFBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDbkYsSUFBSSxFQUFFLElBQUksaUJBQWlCLENBQUMsRUFBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUNoRyxJQUFJLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBQyxDQUFDO0lBQ2hHLEtBQUssRUFBRSxJQUFJLGlCQUFpQixDQUFDLEVBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUMzRixJQUFJLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxFQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBQyxDQUFDO0lBQ2hHLFVBQVUsRUFBRSxJQUFJLGlCQUFpQixDQUFDLEVBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDekYsUUFBUSxFQUFFLElBQUksaUJBQWlCLENBQUMsRUFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDakcsS0FBSyxFQUFFLElBQUksaUJBQWlCLENBQUMsRUFBQyxhQUFhLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDbkQsU0FBUyxFQUFFLElBQUksaUJBQWlCLENBQUMsRUFBQyxhQUFhLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDdkQsT0FBTyxFQUFFLElBQUksaUJBQWlCLENBQUMsRUFBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFDLENBQUM7SUFDMUUsUUFBUSxFQUFFLElBQUksaUJBQWlCLENBQUMsRUFBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFDLENBQUM7SUFDM0UsT0FBTyxFQUFFLElBQUksaUJBQWlCLENBQUMsRUFBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsa0JBQWtCLEVBQUMsQ0FBQztJQUNwRixVQUFVLEVBQUUsSUFBSSxpQkFBaUIsQ0FDN0IsRUFBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBQyxDQUFDO0NBQy9FLENBQUM7QUFFRixJQUFJLHNCQUFzQixHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztBQUVyRCw4QkFBcUMsT0FBZTtJQUNsREksSUFBSUEsTUFBTUEsR0FBR0EsZUFBZUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsV0FBV0EsRUFBRUEsQ0FBQ0EsQ0FBQ0E7SUFDcERBLE1BQU1BLENBQUNBLGdCQUFTQSxDQUFDQSxNQUFNQSxDQUFDQSxHQUFHQSxNQUFNQSxHQUFHQSxzQkFBc0JBLENBQUNBO0FBQzdEQSxDQUFDQTtBQUhlLDRCQUFvQix1QkFHbkMsQ0FBQTtBQUVELElBQUksWUFBWSxHQUFHLGlCQUFpQixDQUFDO0FBRXJDLHFCQUE0QixXQUFtQjtJQUM3Q0MsRUFBRUEsQ0FBQ0EsQ0FBQ0EsV0FBV0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDMUJBLE1BQU1BLENBQUNBLENBQUNBLElBQUlBLEVBQUVBLFdBQVdBLENBQUNBLENBQUNBO0lBQzdCQSxDQUFDQTtJQUNEQSxJQUFJQSxLQUFLQSxHQUFHQSxvQkFBYUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsWUFBWUEsRUFBRUEsV0FBV0EsQ0FBQ0EsQ0FBQ0E7SUFDaEVBLE1BQU1BLENBQUNBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLEVBQUVBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBQzlCQSxDQUFDQTtBQU5lLG1CQUFXLGNBTTFCLENBQUE7QUFFRCxxQkFBNEIsV0FBbUI7SUFDN0NDLE1BQU1BLENBQUNBLFdBQVdBLENBQUNBLFdBQVdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBQ3JDQSxDQUFDQTtBQUZlLG1CQUFXLGNBRTFCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBpc1ByZXNlbnQsXG4gIGlzQmxhbmssXG4gIG5vcm1hbGl6ZUJvb2wsXG4gIFJlZ0V4cFdyYXBwZXIsXG4gIENPTlNUX0VYUFJcbn0gZnJvbSAnYW5ndWxhcjIvc3JjL2ZhY2FkZS9sYW5nJztcblxuLy8gc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1MS9zeW50YXguaHRtbCNuYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlc1xuLy8gc2VlIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2VudGl0aWVzLmpzb25cbi8vIFRoaXMgbGlzdCBpcyBub3QgZXhoYXVzdGl2ZSB0byBrZWVwIHRoZSBjb21waWxlciBmb290cHJpbnQgbG93LlxuLy8gVGhlIGAmIzEyMztgIC8gYCYjeDFhYjtgIHN5bnRheCBzaG91bGQgYmUgdXNlZCB3aGVuIHRoZSBuYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlIGRvZXMgbm90IGV4aXN0LlxuZXhwb3J0IGNvbnN0IE5BTUVEX0VOVElUSUVTID0gQ09OU1RfRVhQUih7XG4gICdBYWN1dGUnOiAnXFx1MDBDMScsXG4gICdhYWN1dGUnOiAnXFx1MDBFMScsXG4gICdBY2lyYyc6ICdcXHUwMEMyJyxcbiAgJ2FjaXJjJzogJ1xcdTAwRTInLFxuICAnYWN1dGUnOiAnXFx1MDBCNCcsXG4gICdBRWxpZyc6ICdcXHUwMEM2JyxcbiAgJ2FlbGlnJzogJ1xcdTAwRTYnLFxuICAnQWdyYXZlJzogJ1xcdTAwQzAnLFxuICAnYWdyYXZlJzogJ1xcdTAwRTAnLFxuICAnYWxlZnN5bSc6ICdcXHUyMTM1JyxcbiAgJ0FscGhhJzogJ1xcdTAzOTEnLFxuICAnYWxwaGEnOiAnXFx1MDNCMScsXG4gICdhbXAnOiAnJicsXG4gICdhbmQnOiAnXFx1MjIyNycsXG4gICdhbmcnOiAnXFx1MjIyMCcsXG4gICdhcG9zJzogJ1xcdTAwMjcnLFxuICAnQXJpbmcnOiAnXFx1MDBDNScsXG4gICdhcmluZyc6ICdcXHUwMEU1JyxcbiAgJ2FzeW1wJzogJ1xcdTIyNDgnLFxuICAnQXRpbGRlJzogJ1xcdTAwQzMnLFxuICAnYXRpbGRlJzogJ1xcdTAwRTMnLFxuICAnQXVtbCc6ICdcXHUwMEM0JyxcbiAgJ2F1bWwnOiAnXFx1MDBFNCcsXG4gICdiZHF1byc6ICdcXHUyMDFFJyxcbiAgJ0JldGEnOiAnXFx1MDM5MicsXG4gICdiZXRhJzogJ1xcdTAzQjInLFxuICAnYnJ2YmFyJzogJ1xcdTAwQTYnLFxuICAnYnVsbCc6ICdcXHUyMDIyJyxcbiAgJ2NhcCc6ICdcXHUyMjI5JyxcbiAgJ0NjZWRpbCc6ICdcXHUwMEM3JyxcbiAgJ2NjZWRpbCc6ICdcXHUwMEU3JyxcbiAgJ2NlZGlsJzogJ1xcdTAwQjgnLFxuICAnY2VudCc6ICdcXHUwMEEyJyxcbiAgJ0NoaSc6ICdcXHUwM0E3JyxcbiAgJ2NoaSc6ICdcXHUwM0M3JyxcbiAgJ2NpcmMnOiAnXFx1MDJDNicsXG4gICdjbHVicyc6ICdcXHUyNjYzJyxcbiAgJ2NvbmcnOiAnXFx1MjI0NScsXG4gICdjb3B5JzogJ1xcdTAwQTknLFxuICAnY3JhcnInOiAnXFx1MjFCNScsXG4gICdjdXAnOiAnXFx1MjIyQScsXG4gICdjdXJyZW4nOiAnXFx1MDBBNCcsXG4gICdkYWdnZXInOiAnXFx1MjAyMCcsXG4gICdEYWdnZXInOiAnXFx1MjAyMScsXG4gICdkYXJyJzogJ1xcdTIxOTMnLFxuICAnZEFycic6ICdcXHUyMUQzJyxcbiAgJ2RlZyc6ICdcXHUwMEIwJyxcbiAgJ0RlbHRhJzogJ1xcdTAzOTQnLFxuICAnZGVsdGEnOiAnXFx1MDNCNCcsXG4gICdkaWFtcyc6ICdcXHUyNjY2JyxcbiAgJ2RpdmlkZSc6ICdcXHUwMEY3JyxcbiAgJ0VhY3V0ZSc6ICdcXHUwMEM5JyxcbiAgJ2VhY3V0ZSc6ICdcXHUwMEU5JyxcbiAgJ0VjaXJjJzogJ1xcdTAwQ0EnLFxuICAnZWNpcmMnOiAnXFx1MDBFQScsXG4gICdFZ3JhdmUnOiAnXFx1MDBDOCcsXG4gICdlZ3JhdmUnOiAnXFx1MDBFOCcsXG4gICdlbXB0eSc6ICdcXHUyMjA1JyxcbiAgJ2Vtc3AnOiAnXFx1MjAwMycsXG4gICdlbnNwJzogJ1xcdTIwMDInLFxuICAnRXBzaWxvbic6ICdcXHUwMzk1JyxcbiAgJ2Vwc2lsb24nOiAnXFx1MDNCNScsXG4gICdlcXVpdic6ICdcXHUyMjYxJyxcbiAgJ0V0YSc6ICdcXHUwMzk3JyxcbiAgJ2V0YSc6ICdcXHUwM0I3JyxcbiAgJ0VUSCc6ICdcXHUwMEQwJyxcbiAgJ2V0aCc6ICdcXHUwMEYwJyxcbiAgJ0V1bWwnOiAnXFx1MDBDQicsXG4gICdldW1sJzogJ1xcdTAwRUInLFxuICAnZXVybyc6ICdcXHUyMEFDJyxcbiAgJ2V4aXN0JzogJ1xcdTIyMDMnLFxuICAnZm5vZic6ICdcXHUwMTkyJyxcbiAgJ2ZvcmFsbCc6ICdcXHUyMjAwJyxcbiAgJ2ZyYWMxMic6ICdcXHUwMEJEJyxcbiAgJ2ZyYWMxNCc6ICdcXHUwMEJDJyxcbiAgJ2ZyYWMzNCc6ICdcXHUwMEJFJyxcbiAgJ2ZyYXNsJzogJ1xcdTIwNDQnLFxuICAnR2FtbWEnOiAnXFx1MDM5MycsXG4gICdnYW1tYSc6ICdcXHUwM0IzJyxcbiAgJ2dlJzogJ1xcdTIyNjUnLFxuICAnZ3QnOiAnPicsXG4gICdoYXJyJzogJ1xcdTIxOTQnLFxuICAnaEFycic6ICdcXHUyMUQ0JyxcbiAgJ2hlYXJ0cyc6ICdcXHUyNjY1JyxcbiAgJ2hlbGxpcCc6ICdcXHUyMDI2JyxcbiAgJ0lhY3V0ZSc6ICdcXHUwMENEJyxcbiAgJ2lhY3V0ZSc6ICdcXHUwMEVEJyxcbiAgJ0ljaXJjJzogJ1xcdTAwQ0UnLFxuICAnaWNpcmMnOiAnXFx1MDBFRScsXG4gICdpZXhjbCc6ICdcXHUwMEExJyxcbiAgJ0lncmF2ZSc6ICdcXHUwMENDJyxcbiAgJ2lncmF2ZSc6ICdcXHUwMEVDJyxcbiAgJ2ltYWdlJzogJ1xcdTIxMTEnLFxuICAnaW5maW4nOiAnXFx1MjIxRScsXG4gICdpbnQnOiAnXFx1MjIyQicsXG4gICdJb3RhJzogJ1xcdTAzOTknLFxuICAnaW90YSc6ICdcXHUwM0I5JyxcbiAgJ2lxdWVzdCc6ICdcXHUwMEJGJyxcbiAgJ2lzaW4nOiAnXFx1MjIwOCcsXG4gICdJdW1sJzogJ1xcdTAwQ0YnLFxuICAnaXVtbCc6ICdcXHUwMEVGJyxcbiAgJ0thcHBhJzogJ1xcdTAzOUEnLFxuICAna2FwcGEnOiAnXFx1MDNCQScsXG4gICdMYW1iZGEnOiAnXFx1MDM5QicsXG4gICdsYW1iZGEnOiAnXFx1MDNCQicsXG4gICdsYW5nJzogJ1xcdTI3RTgnLFxuICAnbGFxdW8nOiAnXFx1MDBBQicsXG4gICdsYXJyJzogJ1xcdTIxOTAnLFxuICAnbEFycic6ICdcXHUyMUQwJyxcbiAgJ2xjZWlsJzogJ1xcdTIzMDgnLFxuICAnbGRxdW8nOiAnXFx1MjAxQycsXG4gICdsZSc6ICdcXHUyMjY0JyxcbiAgJ2xmbG9vcic6ICdcXHUyMzBBJyxcbiAgJ2xvd2FzdCc6ICdcXHUyMjE3JyxcbiAgJ2xveic6ICdcXHUyNUNBJyxcbiAgJ2xybSc6ICdcXHUyMDBFJyxcbiAgJ2xzYXF1byc6ICdcXHUyMDM5JyxcbiAgJ2xzcXVvJzogJ1xcdTIwMTgnLFxuICAnbHQnOiAnPCcsXG4gICdtYWNyJzogJ1xcdTAwQUYnLFxuICAnbWRhc2gnOiAnXFx1MjAxNCcsXG4gICdtaWNybyc6ICdcXHUwMEI1JyxcbiAgJ21pZGRvdCc6ICdcXHUwMEI3JyxcbiAgJ21pbnVzJzogJ1xcdTIyMTInLFxuICAnTXUnOiAnXFx1MDM5QycsXG4gICdtdSc6ICdcXHUwM0JDJyxcbiAgJ25hYmxhJzogJ1xcdTIyMDcnLFxuICAnbmJzcCc6ICdcXHUwMEEwJyxcbiAgJ25kYXNoJzogJ1xcdTIwMTMnLFxuICAnbmUnOiAnXFx1MjI2MCcsXG4gICduaSc6ICdcXHUyMjBCJyxcbiAgJ25vdCc6ICdcXHUwMEFDJyxcbiAgJ25vdGluJzogJ1xcdTIyMDknLFxuICAnbnN1Yic6ICdcXHUyMjg0JyxcbiAgJ050aWxkZSc6ICdcXHUwMEQxJyxcbiAgJ250aWxkZSc6ICdcXHUwMEYxJyxcbiAgJ051JzogJ1xcdTAzOUQnLFxuICAnbnUnOiAnXFx1MDNCRCcsXG4gICdPYWN1dGUnOiAnXFx1MDBEMycsXG4gICdvYWN1dGUnOiAnXFx1MDBGMycsXG4gICdPY2lyYyc6ICdcXHUwMEQ0JyxcbiAgJ29jaXJjJzogJ1xcdTAwRjQnLFxuICAnT0VsaWcnOiAnXFx1MDE1MicsXG4gICdvZWxpZyc6ICdcXHUwMTUzJyxcbiAgJ09ncmF2ZSc6ICdcXHUwMEQyJyxcbiAgJ29ncmF2ZSc6ICdcXHUwMEYyJyxcbiAgJ29saW5lJzogJ1xcdTIwM0UnLFxuICAnT21lZ2EnOiAnXFx1MDNBOScsXG4gICdvbWVnYSc6ICdcXHUwM0M5JyxcbiAgJ09taWNyb24nOiAnXFx1MDM5RicsXG4gICdvbWljcm9uJzogJ1xcdTAzQkYnLFxuICAnb3BsdXMnOiAnXFx1MjI5NScsXG4gICdvcic6ICdcXHUyMjI4JyxcbiAgJ29yZGYnOiAnXFx1MDBBQScsXG4gICdvcmRtJzogJ1xcdTAwQkEnLFxuICAnT3NsYXNoJzogJ1xcdTAwRDgnLFxuICAnb3NsYXNoJzogJ1xcdTAwRjgnLFxuICAnT3RpbGRlJzogJ1xcdTAwRDUnLFxuICAnb3RpbGRlJzogJ1xcdTAwRjUnLFxuICAnb3RpbWVzJzogJ1xcdTIyOTcnLFxuICAnT3VtbCc6ICdcXHUwMEQ2JyxcbiAgJ291bWwnOiAnXFx1MDBGNicsXG4gICdwYXJhJzogJ1xcdTAwQjYnLFxuICAncGVybWlsJzogJ1xcdTIwMzAnLFxuICAncGVycCc6ICdcXHUyMkE1JyxcbiAgJ1BoaSc6ICdcXHUwM0E2JyxcbiAgJ3BoaSc6ICdcXHUwM0M2JyxcbiAgJ1BpJzogJ1xcdTAzQTAnLFxuICAncGknOiAnXFx1MDNDMCcsXG4gICdwaXYnOiAnXFx1MDNENicsXG4gICdwbHVzbW4nOiAnXFx1MDBCMScsXG4gICdwb3VuZCc6ICdcXHUwMEEzJyxcbiAgJ3ByaW1lJzogJ1xcdTIwMzInLFxuICAnUHJpbWUnOiAnXFx1MjAzMycsXG4gICdwcm9kJzogJ1xcdTIyMEYnLFxuICAncHJvcCc6ICdcXHUyMjFEJyxcbiAgJ1BzaSc6ICdcXHUwM0E4JyxcbiAgJ3BzaSc6ICdcXHUwM0M4JyxcbiAgJ3F1b3QnOiAnXFx1MDAyMicsXG4gICdyYWRpYyc6ICdcXHUyMjFBJyxcbiAgJ3JhbmcnOiAnXFx1MjdFOScsXG4gICdyYXF1byc6ICdcXHUwMEJCJyxcbiAgJ3JhcnInOiAnXFx1MjE5MicsXG4gICdyQXJyJzogJ1xcdTIxRDInLFxuICAncmNlaWwnOiAnXFx1MjMwOScsXG4gICdyZHF1byc6ICdcXHUyMDFEJyxcbiAgJ3JlYWwnOiAnXFx1MjExQycsXG4gICdyZWcnOiAnXFx1MDBBRScsXG4gICdyZmxvb3InOiAnXFx1MjMwQicsXG4gICdSaG8nOiAnXFx1MDNBMScsXG4gICdyaG8nOiAnXFx1MDNDMScsXG4gICdybG0nOiAnXFx1MjAwRicsXG4gICdyc2FxdW8nOiAnXFx1MjAzQScsXG4gICdyc3F1byc6ICdcXHUyMDE5JyxcbiAgJ3NicXVvJzogJ1xcdTIwMUEnLFxuICAnU2Nhcm9uJzogJ1xcdTAxNjAnLFxuICAnc2Nhcm9uJzogJ1xcdTAxNjEnLFxuICAnc2RvdCc6ICdcXHUyMkM1JyxcbiAgJ3NlY3QnOiAnXFx1MDBBNycsXG4gICdzaHknOiAnXFx1MDBBRCcsXG4gICdTaWdtYSc6ICdcXHUwM0EzJyxcbiAgJ3NpZ21hJzogJ1xcdTAzQzMnLFxuICAnc2lnbWFmJzogJ1xcdTAzQzInLFxuICAnc2ltJzogJ1xcdTIyM0MnLFxuICAnc3BhZGVzJzogJ1xcdTI2NjAnLFxuICAnc3ViJzogJ1xcdTIyODInLFxuICAnc3ViZSc6ICdcXHUyMjg2JyxcbiAgJ3N1bSc6ICdcXHUyMjExJyxcbiAgJ3N1cCc6ICdcXHUyMjgzJyxcbiAgJ3N1cDEnOiAnXFx1MDBCOScsXG4gICdzdXAyJzogJ1xcdTAwQjInLFxuICAnc3VwMyc6ICdcXHUwMEIzJyxcbiAgJ3N1cGUnOiAnXFx1MjI4NycsXG4gICdzemxpZyc6ICdcXHUwMERGJyxcbiAgJ1RhdSc6ICdcXHUwM0E0JyxcbiAgJ3RhdSc6ICdcXHUwM0M0JyxcbiAgJ3RoZXJlNCc6ICdcXHUyMjM0JyxcbiAgJ1RoZXRhJzogJ1xcdTAzOTgnLFxuICAndGhldGEnOiAnXFx1MDNCOCcsXG4gICd0aGV0YXN5bSc6ICdcXHUwM0QxJyxcbiAgJ3RoaW5zcCc6ICdcXHUyMDA5JyxcbiAgJ1RIT1JOJzogJ1xcdTAwREUnLFxuICAndGhvcm4nOiAnXFx1MDBGRScsXG4gICd0aWxkZSc6ICdcXHUwMkRDJyxcbiAgJ3RpbWVzJzogJ1xcdTAwRDcnLFxuICAndHJhZGUnOiAnXFx1MjEyMicsXG4gICdVYWN1dGUnOiAnXFx1MDBEQScsXG4gICd1YWN1dGUnOiAnXFx1MDBGQScsXG4gICd1YXJyJzogJ1xcdTIxOTEnLFxuICAndUFycic6ICdcXHUyMUQxJyxcbiAgJ1VjaXJjJzogJ1xcdTAwREInLFxuICAndWNpcmMnOiAnXFx1MDBGQicsXG4gICdVZ3JhdmUnOiAnXFx1MDBEOScsXG4gICd1Z3JhdmUnOiAnXFx1MDBGOScsXG4gICd1bWwnOiAnXFx1MDBBOCcsXG4gICd1cHNpaCc6ICdcXHUwM0QyJyxcbiAgJ1Vwc2lsb24nOiAnXFx1MDNBNScsXG4gICd1cHNpbG9uJzogJ1xcdTAzQzUnLFxuICAnVXVtbCc6ICdcXHUwMERDJyxcbiAgJ3V1bWwnOiAnXFx1MDBGQycsXG4gICd3ZWllcnAnOiAnXFx1MjExOCcsXG4gICdYaSc6ICdcXHUwMzlFJyxcbiAgJ3hpJzogJ1xcdTAzQkUnLFxuICAnWWFjdXRlJzogJ1xcdTAwREQnLFxuICAneWFjdXRlJzogJ1xcdTAwRkQnLFxuICAneWVuJzogJ1xcdTAwQTUnLFxuICAneXVtbCc6ICdcXHUwMEZGJyxcbiAgJ1l1bWwnOiAnXFx1MDE3OCcsXG4gICdaZXRhJzogJ1xcdTAzOTYnLFxuICAnemV0YSc6ICdcXHUwM0I2JyxcbiAgJ3p3aic6ICdcXHUyMDBEJyxcbiAgJ3p3bmonOiAnXFx1MjAwQycsXG59KTtcblxuZXhwb3J0IGVudW0gSHRtbFRhZ0NvbnRlbnRUeXBlIHtcbiAgUkFXX1RFWFQsXG4gIEVTQ0FQQUJMRV9SQVdfVEVYVCxcbiAgUEFSU0FCTEVfREFUQVxufVxuXG5leHBvcnQgY2xhc3MgSHRtbFRhZ0RlZmluaXRpb24ge1xuICBwcml2YXRlIGNsb3NlZEJ5Q2hpbGRyZW46IHtba2V5OiBzdHJpbmddOiBib29sZWFufSA9IHt9O1xuICBwdWJsaWMgY2xvc2VkQnlQYXJlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHJlcXVpcmVkUGFyZW50czoge1trZXk6IHN0cmluZ106IGJvb2xlYW59O1xuICBwdWJsaWMgcGFyZW50VG9BZGQ6IHN0cmluZztcbiAgcHVibGljIGltcGxpY2l0TmFtZXNwYWNlUHJlZml4OiBzdHJpbmc7XG4gIHB1YmxpYyBjb250ZW50VHlwZTogSHRtbFRhZ0NvbnRlbnRUeXBlO1xuICBwdWJsaWMgaXNWb2lkOiBib29sZWFuO1xuICBwdWJsaWMgaWdub3JlRmlyc3RMZjogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcih7Y2xvc2VkQnlDaGlsZHJlbiwgcmVxdWlyZWRQYXJlbnRzLCBpbXBsaWNpdE5hbWVzcGFjZVByZWZpeCwgY29udGVudFR5cGUsXG4gICAgICAgICAgICAgICBjbG9zZWRCeVBhcmVudCwgaXNWb2lkLCBpZ25vcmVGaXJzdExmfToge1xuICAgIGNsb3NlZEJ5Q2hpbGRyZW4/OiBzdHJpbmdbXSxcbiAgICBjbG9zZWRCeVBhcmVudD86IGJvb2xlYW4sXG4gICAgcmVxdWlyZWRQYXJlbnRzPzogc3RyaW5nW10sXG4gICAgaW1wbGljaXROYW1lc3BhY2VQcmVmaXg/OiBzdHJpbmcsXG4gICAgY29udGVudFR5cGU/OiBIdG1sVGFnQ29udGVudFR5cGUsXG4gICAgaXNWb2lkPzogYm9vbGVhbixcbiAgICBpZ25vcmVGaXJzdExmPzogYm9vbGVhblxuICB9ID0ge30pIHtcbiAgICBpZiAoaXNQcmVzZW50KGNsb3NlZEJ5Q2hpbGRyZW4pICYmIGNsb3NlZEJ5Q2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgY2xvc2VkQnlDaGlsZHJlbi5mb3JFYWNoKHRhZ05hbWUgPT4gdGhpcy5jbG9zZWRCeUNoaWxkcmVuW3RhZ05hbWVdID0gdHJ1ZSk7XG4gICAgfVxuICAgIHRoaXMuaXNWb2lkID0gbm9ybWFsaXplQm9vbChpc1ZvaWQpO1xuICAgIHRoaXMuY2xvc2VkQnlQYXJlbnQgPSBub3JtYWxpemVCb29sKGNsb3NlZEJ5UGFyZW50KSB8fCB0aGlzLmlzVm9pZDtcbiAgICBpZiAoaXNQcmVzZW50KHJlcXVpcmVkUGFyZW50cykgJiYgcmVxdWlyZWRQYXJlbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMucmVxdWlyZWRQYXJlbnRzID0ge307XG4gICAgICB0aGlzLnBhcmVudFRvQWRkID0gcmVxdWlyZWRQYXJlbnRzWzBdO1xuICAgICAgcmVxdWlyZWRQYXJlbnRzLmZvckVhY2godGFnTmFtZSA9PiB0aGlzLnJlcXVpcmVkUGFyZW50c1t0YWdOYW1lXSA9IHRydWUpO1xuICAgIH1cbiAgICB0aGlzLmltcGxpY2l0TmFtZXNwYWNlUHJlZml4ID0gaW1wbGljaXROYW1lc3BhY2VQcmVmaXg7XG4gICAgdGhpcy5jb250ZW50VHlwZSA9IGlzUHJlc2VudChjb250ZW50VHlwZSkgPyBjb250ZW50VHlwZSA6IEh0bWxUYWdDb250ZW50VHlwZS5QQVJTQUJMRV9EQVRBO1xuICAgIHRoaXMuaWdub3JlRmlyc3RMZiA9IG5vcm1hbGl6ZUJvb2woaWdub3JlRmlyc3RMZik7XG4gIH1cblxuICByZXF1aXJlRXh0cmFQYXJlbnQoY3VycmVudFBhcmVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKGlzQmxhbmsodGhpcy5yZXF1aXJlZFBhcmVudHMpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGlzQmxhbmsoY3VycmVudFBhcmVudCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGxldCBsY1BhcmVudCA9IGN1cnJlbnRQYXJlbnQudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlZFBhcmVudHNbbGNQYXJlbnRdICE9IHRydWUgJiYgbGNQYXJlbnQgIT0gJ3RlbXBsYXRlJztcbiAgfVxuXG4gIGlzQ2xvc2VkQnlDaGlsZChuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZvaWQgfHwgbm9ybWFsaXplQm9vbCh0aGlzLmNsb3NlZEJ5Q2hpbGRyZW5bbmFtZS50b0xvd2VyQ2FzZSgpXSk7XG4gIH1cbn1cblxuLy8gc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1MS9zeW50YXguaHRtbCNvcHRpb25hbC10YWdzXG4vLyBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXMgbm90IGZ1bGx5IGNvbmZvcm0gdG8gdGhlIEhUTUw1IHNwZWMuXG52YXIgVEFHX0RFRklOSVRJT05TOiB7W2tleTogc3RyaW5nXTogSHRtbFRhZ0RlZmluaXRpb259ID0ge1xuICAnYXJlYSc6IG5ldyBIdG1sVGFnRGVmaW5pdGlvbih7aXNWb2lkOiB0cnVlfSksXG4gICdlbWJlZCc6IG5ldyBIdG1sVGFnRGVmaW5pdGlvbih7aXNWb2lkOiB0cnVlfSksXG4gICdsaW5rJzogbmV3IEh0bWxUYWdEZWZpbml0aW9uKHtpc1ZvaWQ6IHRydWV9KSxcbiAgJ2ltZyc6IG5ldyBIdG1sVGFnRGVmaW5pdGlvbih7aXNWb2lkOiB0cnVlfSksXG4gICdpbnB1dCc6IG5ldyBIdG1sVGFnRGVmaW5pdGlvbih7aXNWb2lkOiB0cnVlfSksXG4gICdwYXJhbSc6IG5ldyBIdG1sVGFnRGVmaW5pdGlvbih7aXNWb2lkOiB0cnVlfSksXG4gICdocic6IG5ldyBIdG1sVGFnRGVmaW5pdGlvbih7aXNWb2lkOiB0cnVlfSksXG4gICdicic6IG5ldyBIdG1sVGFnRGVmaW5pdGlvbih7aXNWb2lkOiB0cnVlfSksXG4gICdzb3VyY2UnOiBuZXcgSHRtbFRhZ0RlZmluaXRpb24oe2lzVm9pZDogdHJ1ZX0pLFxuICAndHJhY2snOiBuZXcgSHRtbFRhZ0RlZmluaXRpb24oe2lzVm9pZDogdHJ1ZX0pLFxuICAnd2JyJzogbmV3IEh0bWxUYWdEZWZpbml0aW9uKHtpc1ZvaWQ6IHRydWV9KSxcbiAgJ3AnOiBuZXcgSHRtbFRhZ0RlZmluaXRpb24oe1xuICAgIGNsb3NlZEJ5Q2hpbGRyZW46IFtcbiAgICAgICdhZGRyZXNzJyxcbiAgICAgICdhcnRpY2xlJyxcbiAgICAgICdhc2lkZScsXG4gICAgICAnYmxvY2txdW90ZScsXG4gICAgICAnZGl2JyxcbiAgICAgICdkbCcsXG4gICAgICAnZmllbGRzZXQnLFxuICAgICAgJ2Zvb3RlcicsXG4gICAgICAnZm9ybScsXG4gICAgICAnaDEnLFxuICAgICAgJ2gyJyxcbiAgICAgICdoMycsXG4gICAgICAnaDQnLFxuICAgICAgJ2g1JyxcbiAgICAgICdoNicsXG4gICAgICAnaGVhZGVyJyxcbiAgICAgICdoZ3JvdXAnLFxuICAgICAgJ2hyJyxcbiAgICAgICdtYWluJyxcbiAgICAgICduYXYnLFxuICAgICAgJ29sJyxcbiAgICAgICdwJyxcbiAgICAgICdwcmUnLFxuICAgICAgJ3NlY3Rpb24nLFxuICAgICAgJ3RhYmxlJyxcbiAgICAgICd1bCdcbiAgICBdLFxuICAgIGNsb3NlZEJ5UGFyZW50OiB0cnVlXG4gIH0pLFxuICAndGhlYWQnOiBuZXcgSHRtbFRhZ0RlZmluaXRpb24oe2Nsb3NlZEJ5Q2hpbGRyZW46IFsndGJvZHknLCAndGZvb3QnXX0pLFxuICAndGJvZHknOiBuZXcgSHRtbFRhZ0RlZmluaXRpb24oe2Nsb3NlZEJ5Q2hpbGRyZW46IFsndGJvZHknLCAndGZvb3QnXSwgY2xvc2VkQnlQYXJlbnQ6IHRydWV9KSxcbiAgJ3Rmb290JzogbmV3IEh0bWxUYWdEZWZpbml0aW9uKHtjbG9zZWRCeUNoaWxkcmVuOiBbJ3Rib2R5J10sIGNsb3NlZEJ5UGFyZW50OiB0cnVlfSksXG4gICd0cic6IG5ldyBIdG1sVGFnRGVmaW5pdGlvbih7XG4gICAgY2xvc2VkQnlDaGlsZHJlbjogWyd0ciddLFxuICAgIHJlcXVpcmVkUGFyZW50czogWyd0Ym9keScsICd0Zm9vdCcsICd0aGVhZCddLFxuICAgIGNsb3NlZEJ5UGFyZW50OiB0cnVlXG4gIH0pLFxuICAndGQnOiBuZXcgSHRtbFRhZ0RlZmluaXRpb24oe2Nsb3NlZEJ5Q2hpbGRyZW46IFsndGQnLCAndGgnXSwgY2xvc2VkQnlQYXJlbnQ6IHRydWV9KSxcbiAgJ3RoJzogbmV3IEh0bWxUYWdEZWZpbml0aW9uKHtjbG9zZWRCeUNoaWxkcmVuOiBbJ3RkJywgJ3RoJ10sIGNsb3NlZEJ5UGFyZW50OiB0cnVlfSksXG4gICdjb2wnOiBuZXcgSHRtbFRhZ0RlZmluaXRpb24oe3JlcXVpcmVkUGFyZW50czogWydjb2xncm91cCddLCBpc1ZvaWQ6IHRydWV9KSxcbiAgJ3N2Zyc6IG5ldyBIdG1sVGFnRGVmaW5pdGlvbih7aW1wbGljaXROYW1lc3BhY2VQcmVmaXg6ICdzdmcnfSksXG4gICdtYXRoJzogbmV3IEh0bWxUYWdEZWZpbml0aW9uKHtpbXBsaWNpdE5hbWVzcGFjZVByZWZpeDogJ21hdGgnfSksXG4gICdsaSc6IG5ldyBIdG1sVGFnRGVmaW5pdGlvbih7Y2xvc2VkQnlDaGlsZHJlbjogWydsaSddLCBjbG9zZWRCeVBhcmVudDogdHJ1ZX0pLFxuICAnZHQnOiBuZXcgSHRtbFRhZ0RlZmluaXRpb24oe2Nsb3NlZEJ5Q2hpbGRyZW46IFsnZHQnLCAnZGQnXX0pLFxuICAnZGQnOiBuZXcgSHRtbFRhZ0RlZmluaXRpb24oe2Nsb3NlZEJ5Q2hpbGRyZW46IFsnZHQnLCAnZGQnXSwgY2xvc2VkQnlQYXJlbnQ6IHRydWV9KSxcbiAgJ3JiJzogbmV3IEh0bWxUYWdEZWZpbml0aW9uKHtjbG9zZWRCeUNoaWxkcmVuOiBbJ3JiJywgJ3J0JywgJ3J0YycsICdycCddLCBjbG9zZWRCeVBhcmVudDogdHJ1ZX0pLFxuICAncnQnOiBuZXcgSHRtbFRhZ0RlZmluaXRpb24oe2Nsb3NlZEJ5Q2hpbGRyZW46IFsncmInLCAncnQnLCAncnRjJywgJ3JwJ10sIGNsb3NlZEJ5UGFyZW50OiB0cnVlfSksXG4gICdydGMnOiBuZXcgSHRtbFRhZ0RlZmluaXRpb24oe2Nsb3NlZEJ5Q2hpbGRyZW46IFsncmInLCAncnRjJywgJ3JwJ10sIGNsb3NlZEJ5UGFyZW50OiB0cnVlfSksXG4gICdycCc6IG5ldyBIdG1sVGFnRGVmaW5pdGlvbih7Y2xvc2VkQnlDaGlsZHJlbjogWydyYicsICdydCcsICdydGMnLCAncnAnXSwgY2xvc2VkQnlQYXJlbnQ6IHRydWV9KSxcbiAgJ29wdGdyb3VwJzogbmV3IEh0bWxUYWdEZWZpbml0aW9uKHtjbG9zZWRCeUNoaWxkcmVuOiBbJ29wdGdyb3VwJ10sIGNsb3NlZEJ5UGFyZW50OiB0cnVlfSksXG4gICdvcHRpb24nOiBuZXcgSHRtbFRhZ0RlZmluaXRpb24oe2Nsb3NlZEJ5Q2hpbGRyZW46IFsnb3B0aW9uJywgJ29wdGdyb3VwJ10sIGNsb3NlZEJ5UGFyZW50OiB0cnVlfSksXG4gICdwcmUnOiBuZXcgSHRtbFRhZ0RlZmluaXRpb24oe2lnbm9yZUZpcnN0TGY6IHRydWV9KSxcbiAgJ2xpc3RpbmcnOiBuZXcgSHRtbFRhZ0RlZmluaXRpb24oe2lnbm9yZUZpcnN0TGY6IHRydWV9KSxcbiAgJ3N0eWxlJzogbmV3IEh0bWxUYWdEZWZpbml0aW9uKHtjb250ZW50VHlwZTogSHRtbFRhZ0NvbnRlbnRUeXBlLlJBV19URVhUfSksXG4gICdzY3JpcHQnOiBuZXcgSHRtbFRhZ0RlZmluaXRpb24oe2NvbnRlbnRUeXBlOiBIdG1sVGFnQ29udGVudFR5cGUuUkFXX1RFWFR9KSxcbiAgJ3RpdGxlJzogbmV3IEh0bWxUYWdEZWZpbml0aW9uKHtjb250ZW50VHlwZTogSHRtbFRhZ0NvbnRlbnRUeXBlLkVTQ0FQQUJMRV9SQVdfVEVYVH0pLFxuICAndGV4dGFyZWEnOiBuZXcgSHRtbFRhZ0RlZmluaXRpb24oXG4gICAgICB7Y29udGVudFR5cGU6IEh0bWxUYWdDb250ZW50VHlwZS5FU0NBUEFCTEVfUkFXX1RFWFQsIGlnbm9yZUZpcnN0TGY6IHRydWV9KSxcbn07XG5cbnZhciBERUZBVUxUX1RBR19ERUZJTklUSU9OID0gbmV3IEh0bWxUYWdEZWZpbml0aW9uKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIdG1sVGFnRGVmaW5pdGlvbih0YWdOYW1lOiBzdHJpbmcpOiBIdG1sVGFnRGVmaW5pdGlvbiB7XG4gIHZhciByZXN1bHQgPSBUQUdfREVGSU5JVElPTlNbdGFnTmFtZS50b0xvd2VyQ2FzZSgpXTtcbiAgcmV0dXJuIGlzUHJlc2VudChyZXN1bHQpID8gcmVzdWx0IDogREVGQVVMVF9UQUdfREVGSU5JVElPTjtcbn1cblxudmFyIE5TX1BSRUZJWF9SRSA9IC9eQChbXjpdKyk6KC4rKS9nO1xuXG5leHBvcnQgZnVuY3Rpb24gc3BsaXROc05hbWUoZWxlbWVudE5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgaWYgKGVsZW1lbnROYW1lWzBdICE9ICdAJykge1xuICAgIHJldHVybiBbbnVsbCwgZWxlbWVudE5hbWVdO1xuICB9XG4gIGxldCBtYXRjaCA9IFJlZ0V4cFdyYXBwZXIuZmlyc3RNYXRjaChOU19QUkVGSVhfUkUsIGVsZW1lbnROYW1lKTtcbiAgcmV0dXJuIFttYXRjaFsxXSwgbWF0Y2hbMl1dO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TnNQcmVmaXgoZWxlbWVudE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzcGxpdE5zTmFtZShlbGVtZW50TmFtZSlbMF07XG59XG4iXX0=
+
+/***/ },
+/* 27 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';var lang_1 = __webpack_require__(1);
+ var MODULE_REGEXP = /#MODULE\[([^\]]*)\]/g;
+ function moduleRef(moduleUrl) {
+ return "#MODULE[" + moduleUrl + "]";
+ }
+ exports.moduleRef = moduleRef;
+ /**
+ * Represents generated source code with module references. Internal to the Angular compiler.
+ */
+ var SourceModule = (function () {
+ function SourceModule(moduleUrl, sourceWithModuleRefs) {
+ this.moduleUrl = moduleUrl;
+ this.sourceWithModuleRefs = sourceWithModuleRefs;
+ }
+ SourceModule.prototype.getSourceWithImports = function () {
+ var _this = this;
+ var moduleAliases = {};
+ var imports = [];
+ var newSource = lang_1.StringWrapper.replaceAllMapped(this.sourceWithModuleRefs, MODULE_REGEXP, function (match) {
+ var moduleUrl = match[1];
+ var alias = moduleAliases[moduleUrl];
+ if (lang_1.isBlank(alias)) {
+ if (moduleUrl == _this.moduleUrl) {
+ alias = '';
+ }
+ else {
+ alias = "import" + imports.length;
+ imports.push([moduleUrl, alias]);
+ }
+ moduleAliases[moduleUrl] = alias;
+ }
+ return alias.length > 0 ? alias + "." : '';
+ });
+ return new SourceWithImports(newSource, imports);
+ };
+ return SourceModule;
+ })();
+ exports.SourceModule = SourceModule;
+ var SourceExpression = (function () {
+ function SourceExpression(declarations, expression) {
+ this.declarations = declarations;
+ this.expression = expression;
+ }
+ return SourceExpression;
+ })();
+ exports.SourceExpression = SourceExpression;
+ var SourceExpressions = (function () {
+ function SourceExpressions(declarations, expressions) {
+ this.declarations = declarations;
+ this.expressions = expressions;
+ }
+ return SourceExpressions;
+ })();
+ exports.SourceExpressions = SourceExpressions;
+ /**
+ * Represents generated source code with imports. Internal to the Angular compiler.
+ */
+ var SourceWithImports = (function () {
+ function SourceWithImports(source, imports) {
+ this.source = source;
+ this.imports = imports;
+ }
+ return SourceWithImports;
+ })();
+ exports.SourceWithImports = SourceWithImports;
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlX21vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFuZ3VsYXIyL3NyYy9jb21waWxlci9zb3VyY2VfbW9kdWxlLnRzIl0sIm5hbWVzIjpbIm1vZHVsZVJlZiIsIlNvdXJjZU1vZHVsZSIsIlNvdXJjZU1vZHVsZS5jb25zdHJ1Y3RvciIsIlNvdXJjZU1vZHVsZS5nZXRTb3VyY2VXaXRoSW1wb3J0cyIsIlNvdXJjZUV4cHJlc3Npb24iLCJTb3VyY2VFeHByZXNzaW9uLmNvbnN0cnVjdG9yIiwiU291cmNlRXhwcmVzc2lvbnMiLCJTb3VyY2VFeHByZXNzaW9ucy5jb25zdHJ1Y3RvciIsIlNvdXJjZVdpdGhJbXBvcnRzIiwiU291cmNlV2l0aEltcG9ydHMuY29uc3RydWN0b3IiXSwibWFwcGluZ3MiOiJBQUFBLHFCQUFxQywwQkFBMEIsQ0FBQyxDQUFBO0FBRWhFLElBQUksYUFBYSxHQUFHLHNCQUFzQixDQUFDO0FBRTNDLG1CQUEwQixTQUFTO0lBQ2pDQSxNQUFNQSxDQUFDQSxhQUFXQSxTQUFTQSxNQUFHQSxDQUFDQTtBQUNqQ0EsQ0FBQ0E7QUFGZSxpQkFBUyxZQUV4QixDQUFBO0FBRUQ7O0dBRUc7QUFDSDtJQUNFQyxzQkFBbUJBLFNBQWlCQSxFQUFTQSxvQkFBNEJBO1FBQXREQyxjQUFTQSxHQUFUQSxTQUFTQSxDQUFRQTtRQUFTQSx5QkFBb0JBLEdBQXBCQSxvQkFBb0JBLENBQVFBO0lBQUdBLENBQUNBO0lBRTdFRCwyQ0FBb0JBLEdBQXBCQTtRQUFBRSxpQkFtQkNBO1FBbEJDQSxJQUFJQSxhQUFhQSxHQUFHQSxFQUFFQSxDQUFDQTtRQUN2QkEsSUFBSUEsT0FBT0EsR0FBZUEsRUFBRUEsQ0FBQ0E7UUFDN0JBLElBQUlBLFNBQVNBLEdBQ1RBLG9CQUFhQSxDQUFDQSxnQkFBZ0JBLENBQUNBLElBQUlBLENBQUNBLG9CQUFvQkEsRUFBRUEsYUFBYUEsRUFBRUEsVUFBQ0EsS0FBS0E7WUFDN0VBLElBQUlBLFNBQVNBLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3pCQSxJQUFJQSxLQUFLQSxHQUFHQSxhQUFhQSxDQUFDQSxTQUFTQSxDQUFDQSxDQUFDQTtZQUNyQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsY0FBT0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ25CQSxFQUFFQSxDQUFDQSxDQUFDQSxTQUFTQSxJQUFJQSxLQUFJQSxDQUFDQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDaENBLEtBQUtBLEdBQUdBLEVBQUVBLENBQUNBO2dCQUNiQSxDQUFDQTtnQkFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7b0JBQ05BLEtBQUtBLEdBQUdBLFdBQVNBLE9BQU9BLENBQUNBLE1BQVFBLENBQUNBO29CQUNsQ0EsT0FBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsU0FBU0EsRUFBRUEsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ25DQSxDQUFDQTtnQkFDREEsYUFBYUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsR0FBR0EsS0FBS0EsQ0FBQ0E7WUFDbkNBLENBQUNBO1lBQ0RBLE1BQU1BLENBQUNBLEtBQUtBLENBQUNBLE1BQU1BLEdBQUdBLENBQUNBLEdBQU1BLEtBQUtBLE1BQUdBLEdBQUdBLEVBQUVBLENBQUNBO1FBQzdDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNQQSxNQUFNQSxDQUFDQSxJQUFJQSxpQkFBaUJBLENBQUNBLFNBQVNBLEVBQUVBLE9BQU9BLENBQUNBLENBQUNBO0lBQ25EQSxDQUFDQTtJQUNIRixtQkFBQ0E7QUFBREEsQ0FBQ0EsQUF2QkQsSUF1QkM7QUF2Qlksb0JBQVksZUF1QnhCLENBQUE7QUFFRDtJQUNFRywwQkFBbUJBLFlBQXNCQSxFQUFTQSxVQUFrQkE7UUFBakRDLGlCQUFZQSxHQUFaQSxZQUFZQSxDQUFVQTtRQUFTQSxlQUFVQSxHQUFWQSxVQUFVQSxDQUFRQTtJQUFHQSxDQUFDQTtJQUMxRUQsdUJBQUNBO0FBQURBLENBQUNBLEFBRkQsSUFFQztBQUZZLHdCQUFnQixtQkFFNUIsQ0FBQTtBQUVEO0lBQ0VFLDJCQUFtQkEsWUFBc0JBLEVBQVNBLFdBQXFCQTtRQUFwREMsaUJBQVlBLEdBQVpBLFlBQVlBLENBQVVBO1FBQVNBLGdCQUFXQSxHQUFYQSxXQUFXQSxDQUFVQTtJQUFHQSxDQUFDQTtJQUM3RUQsd0JBQUNBO0FBQURBLENBQUNBLEFBRkQsSUFFQztBQUZZLHlCQUFpQixvQkFFN0IsQ0FBQTtBQUVEOztHQUVHO0FBQ0g7SUFDRUUsMkJBQW1CQSxNQUFjQSxFQUFTQSxPQUFtQkE7UUFBMUNDLFdBQU1BLEdBQU5BLE1BQU1BLENBQVFBO1FBQVNBLFlBQU9BLEdBQVBBLE9BQU9BLENBQVlBO0lBQUdBLENBQUNBO0lBQ25FRCx3QkFBQ0E7QUFBREEsQ0FBQ0EsQUFGRCxJQUVDO0FBRlkseUJBQWlCLG9CQUU3QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTdHJpbmdXcmFwcGVyLCBpc0JsYW5rfSBmcm9tICdhbmd1bGFyMi9zcmMvZmFjYWRlL2xhbmcnO1xuXG52YXIgTU9EVUxFX1JFR0VYUCA9IC8jTU9EVUxFXFxbKFteXFxdXSopXFxdL2c7XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2R1bGVSZWYobW9kdWxlVXJsKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAjTU9EVUxFWyR7bW9kdWxlVXJsfV1gO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgZ2VuZXJhdGVkIHNvdXJjZSBjb2RlIHdpdGggbW9kdWxlIHJlZmVyZW5jZXMuIEludGVybmFsIHRvIHRoZSBBbmd1bGFyIGNvbXBpbGVyLlxuICovXG5leHBvcnQgY2xhc3MgU291cmNlTW9kdWxlIHtcbiAgY29uc3RydWN0b3IocHVibGljIG1vZHVsZVVybDogc3RyaW5nLCBwdWJsaWMgc291cmNlV2l0aE1vZHVsZVJlZnM6IHN0cmluZykge31cblxuICBnZXRTb3VyY2VXaXRoSW1wb3J0cygpOiBTb3VyY2VXaXRoSW1wb3J0cyB7XG4gICAgdmFyIG1vZHVsZUFsaWFzZXMgPSB7fTtcbiAgICB2YXIgaW1wb3J0czogc3RyaW5nW11bXSA9IFtdO1xuICAgIHZhciBuZXdTb3VyY2UgPVxuICAgICAgICBTdHJpbmdXcmFwcGVyLnJlcGxhY2VBbGxNYXBwZWQodGhpcy5zb3VyY2VXaXRoTW9kdWxlUmVmcywgTU9EVUxFX1JFR0VYUCwgKG1hdGNoKSA9PiB7XG4gICAgICAgICAgdmFyIG1vZHVsZVVybCA9IG1hdGNoWzFdO1xuICAgICAgICAgIHZhciBhbGlhcyA9IG1vZHVsZUFsaWFzZXNbbW9kdWxlVXJsXTtcbiAgICAgICAgICBpZiAoaXNCbGFuayhhbGlhcykpIHtcbiAgICAgICAgICAgIGlmIChtb2R1bGVVcmwgPT0gdGhpcy5tb2R1bGVVcmwpIHtcbiAgICAgICAgICAgICAgYWxpYXMgPSAnJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGFsaWFzID0gYGltcG9ydCR7aW1wb3J0cy5sZW5ndGh9YDtcbiAgICAgICAgICAgICAgaW1wb3J0cy5wdXNoKFttb2R1bGVVcmwsIGFsaWFzXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtb2R1bGVBbGlhc2VzW21vZHVsZVVybF0gPSBhbGlhcztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFsaWFzLmxlbmd0aCA+IDAgPyBgJHthbGlhc30uYCA6ICcnO1xuICAgICAgICB9KTtcbiAgICByZXR1cm4gbmV3IFNvdXJjZVdpdGhJbXBvcnRzKG5ld1NvdXJjZSwgaW1wb3J0cyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNvdXJjZUV4cHJlc3Npb24ge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGVjbGFyYXRpb25zOiBzdHJpbmdbXSwgcHVibGljIGV4cHJlc3Npb246IHN0cmluZykge31cbn1cblxuZXhwb3J0IGNsYXNzIFNvdXJjZUV4cHJlc3Npb25zIHtcbiAgY29uc3RydWN0b3IocHVibGljIGRlY2xhcmF0aW9uczogc3RyaW5nW10sIHB1YmxpYyBleHByZXNzaW9uczogc3RyaW5nW10pIHt9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBnZW5lcmF0ZWQgc291cmNlIGNvZGUgd2l0aCBpbXBvcnRzLiBJbnRlcm5hbCB0byB0aGUgQW5ndWxhciBjb21waWxlci5cbiAqL1xuZXhwb3J0IGNsYXNzIFNvdXJjZVdpdGhJbXBvcnRzIHtcbiAgY29uc3RydWN0b3IocHVibGljIHNvdXJjZTogc3RyaW5nLCBwdWJsaWMgaW1wb3J0czogc3RyaW5nW11bXSkge31cbn1cbiJdfQ==
+
+/***/ },
+/* 28 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+ var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+ };
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
+ return function (target, key) { decorator(target, key, paramIndex); }
+ };
+ var di_1 = __webpack_require__(5);
+ var lang_1 = __webpack_require__(1);
+ var application_tokens_1 = __webpack_require__(29);
+ var di_2 = __webpack_require__(5);
+ /**
+ * Create a {@link UrlResolver} with no package prefix.
+ */
+ function createWithoutPackagePrefix() {
+ return new UrlResolver();
+ }
+ exports.createWithoutPackagePrefix = createWithoutPackagePrefix;
+ /**
+ * A default provider for {@link PACKAGE_ROOT_URL} that maps to '/'.
+ */
+ exports.DEFAULT_PACKAGE_URL_PROVIDER = new di_2.Provider(application_tokens_1.PACKAGE_ROOT_URL, { useValue: "/" });
+ /**
+ * Used by the {@link Compiler} when resolving HTML and CSS template URLs.
+ *
+ * This class can be overridden by the application developer to create custom behavior.
+ *
+ * See {@link Compiler}
+ *
+ * ## Example
+ *
+ * {@example compiler/ts/url_resolver/url_resolver.ts region='url_resolver'}
+ */
+ var UrlResolver = (function () {
+ function UrlResolver(packagePrefix) {
+ if (packagePrefix === void 0) { packagePrefix = null; }
+ if (lang_1.isPresent(packagePrefix)) {
+ this._packagePrefix = lang_1.StringWrapper.stripRight(packagePrefix, "/") + "/";
+ }
+ }
+ /**
+ * Resolves the `url` given the `baseUrl`:
+ * - when the `url` is null, the `baseUrl` is returned,
+ * - if `url` is relative ('path/to/here', './path/to/here'), the resolved url is a combination of
+ * `baseUrl` and `url`,
+ * - if `url` is absolute (it has a scheme: 'http://', 'https://' or start with '/'), the `url` is
+ * returned as is (ignoring the `baseUrl`)
+ *
+ * @param {string} baseUrl
+ * @param {string} url
+ * @returns {string} the resolved URL
+ */
+ UrlResolver.prototype.resolve = function (baseUrl, url) {
+ var resolvedUrl = url;
+ if (lang_1.isPresent(baseUrl) && baseUrl.length > 0) {
+ resolvedUrl = _resolveUrl(baseUrl, resolvedUrl);
+ }
+ if (lang_1.isPresent(this._packagePrefix) && getUrlScheme(resolvedUrl) == "package") {
+ resolvedUrl = resolvedUrl.replace("package:", this._packagePrefix);
+ }
+ return resolvedUrl;
+ };
+ UrlResolver = __decorate([
+ di_1.Injectable(),
+ __param(0, di_1.Inject(application_tokens_1.PACKAGE_ROOT_URL)),
+ __metadata('design:paramtypes', [String])
+ ], UrlResolver);
+ return UrlResolver;
+ })();
+ exports.UrlResolver = UrlResolver;
+ /**
+ * Extract the scheme of a URL.
+ */
+ function getUrlScheme(url) {
+ var match = _split(url);
+ return (match && match[_ComponentIndex.Scheme]) || "";
+ }
+ exports.getUrlScheme = getUrlScheme;
+ // The code below is adapted from Traceur:
+ // https://github.com/google/traceur-compiler/blob/9511c1dafa972bf0de1202a8a863bad02f0f95a8/src/runtime/url.js
+ /**
+ * Builds a URI string from already-encoded parts.
+ *
+ * No encoding is performed. Any component may be omitted as either null or
+ * undefined.
+ *
+ * @param {?string=} opt_scheme The scheme such as 'http'.
+ * @param {?string=} opt_userInfo The user name before the '@'.
+ * @param {?string=} opt_domain The domain such as 'www.google.com', already
+ * URI-encoded.
+ * @param {(string|null)=} opt_port The port number.
+ * @param {?string=} opt_path The path, already URI-encoded. If it is not
+ * empty, it must begin with a slash.
+ * @param {?string=} opt_queryData The URI-encoded query data.
+ * @param {?string=} opt_fragment The URI-encoded fragment identifier.
+ * @return {string} The fully combined URI.
+ */
+ function _buildFromEncodedParts(opt_scheme, opt_userInfo, opt_domain, opt_port, opt_path, opt_queryData, opt_fragment) {
+ var out = [];
+ if (lang_1.isPresent(opt_scheme)) {
+ out.push(opt_scheme + ':');
+ }
+ if (lang_1.isPresent(opt_domain)) {
+ out.push('//');
+ if (lang_1.isPresent(opt_userInfo)) {
+ out.push(opt_userInfo + '@');
+ }
+ out.push(opt_domain);
+ if (lang_1.isPresent(opt_port)) {
+ out.push(':' + opt_port);
+ }
+ }
+ if (lang_1.isPresent(opt_path)) {
+ out.push(opt_path);
+ }
+ if (lang_1.isPresent(opt_queryData)) {
+ out.push('?' + opt_queryData);
+ }
+ if (lang_1.isPresent(opt_fragment)) {
+ out.push('#' + opt_fragment);
+ }
+ return out.join('');
+ }
+ /**
+ * A regular expression for breaking a URI into its component parts.
+ *
+ * {@link http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#RFC2234} says
+ * As the "first-match-wins" algorithm is identical to the "greedy"
+ * disambiguation method used by POSIX regular expressions, it is natural and
+ * commonplace to use a regular expression for parsing the potential five
+ * components of a URI reference.
+ *
+ * The following line is the regular expression for breaking-down a
+ * well-formed URI reference into its components.
+ *
+ *
+ * ^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?
+ * 12 3 4 5 6 7 8 9
+ *
+ *
+ * The numbers in the second line above are only to assist readability; they
+ * indicate the reference points for each subexpression (i.e., each paired
+ * parenthesis). We refer to the value matched for subexpression as $.
+ * For example, matching the above expression to
+ *
+ * http://www.ics.uci.edu/pub/ietf/uri/#Related
+ *
+ * results in the following subexpression matches:
+ *
+ * $1 = http:
+ * $2 = http
+ * $3 = //www.ics.uci.edu
+ * $4 = www.ics.uci.edu
+ * $5 = /pub/ietf/uri/
+ * $6 =
+ * $7 =
+ * $8 = #Related
+ * $9 = Related
+ *
+ * where indicates that the component is not present, as is the
+ * case for the query component in the above example. Therefore, we can
+ * determine the value of the five components as
+ *
+ * scheme = $2
+ * authority = $4
+ * path = $5
+ * query = $7
+ * fragment = $9
+ *
+ *
+ * The regular expression has been modified slightly to expose the
+ * userInfo, domain, and port separately from the authority.
+ * The modified version yields
+ *
+ * $1 = http scheme
+ * $2 = userInfo -\
+ * $3 = www.ics.uci.edu domain | authority
+ * $4 = port -/
+ * $5 = /pub/ietf/uri/ path
+ * $6 = query without ?
+ * $7 = Related fragment without #
+ *
+ * @type {!RegExp}
+ * @internal
+ */
+ var _splitRe = lang_1.RegExpWrapper.create('^' +
+ '(?:' +
+ '([^:/?#.]+)' +
+ // used by other URL parts such as :,
+ // ?, /, #, and .
+ ':)?' +
+ '(?://' +
+ '(?:([^/?#]*)@)?' +
+ '([\\w\\d\\-\\u0100-\\uffff.%]*)' +
+ // digits, dashes, dots, percent
+ // escapes, and unicode characters.
+ '(?::([0-9]+))?' +
+ ')?' +
+ '([^?#]+)?' +
+ '(?:\\?([^#]*))?' +
+ '(?:#(.*))?' +
+ '$');
+ /**
+ * The index of each URI component in the return value of goog.uri.utils.split.
+ * @enum {number}
+ */
+ var _ComponentIndex;
+ (function (_ComponentIndex) {
+ _ComponentIndex[_ComponentIndex["Scheme"] = 1] = "Scheme";
+ _ComponentIndex[_ComponentIndex["UserInfo"] = 2] = "UserInfo";
+ _ComponentIndex[_ComponentIndex["Domain"] = 3] = "Domain";
+ _ComponentIndex[_ComponentIndex["Port"] = 4] = "Port";
+ _ComponentIndex[_ComponentIndex["Path"] = 5] = "Path";
+ _ComponentIndex[_ComponentIndex["QueryData"] = 6] = "QueryData";
+ _ComponentIndex[_ComponentIndex["Fragment"] = 7] = "Fragment";
+ })(_ComponentIndex || (_ComponentIndex = {}));
+ /**
+ * Splits a URI into its component parts.
+ *
+ * Each component can be accessed via the component indices; for example:
+ *
+ * goog.uri.utils.split(someStr)[goog.uri.utils.CompontentIndex.QUERY_DATA];
+ *
+ *
+ * @param {string} uri The URI string to examine.
+ * @return {!Array.} Each component still URI-encoded.
+ * Each component that is present will contain the encoded value, whereas
+ * components that are not present will be undefined or empty, depending
+ * on the browser's regular expression implementation. Never null, since
+ * arbitrary strings may still look like path names.
+ */
+ function _split(uri) {
+ return lang_1.RegExpWrapper.firstMatch(_splitRe, uri);
+ }
+ /**
+ * Removes dot segments in given path component, as described in
+ * RFC 3986, section 5.2.4.
+ *
+ * @param {string} path A non-empty path component.
+ * @return {string} Path component with removed dot segments.
+ */
+ function _removeDotSegments(path) {
+ if (path == '/')
+ return '/';
+ var leadingSlash = path[0] == '/' ? '/' : '';
+ var trailingSlash = path[path.length - 1] === '/' ? '/' : '';
+ var segments = path.split('/');
+ var out = [];
+ var up = 0;
+ for (var pos = 0; pos < segments.length; pos++) {
+ var segment = segments[pos];
+ switch (segment) {
+ case '':
+ case '.':
+ break;
+ case '..':
+ if (out.length > 0) {
+ out.pop();
+ }
+ else {
+ up++;
+ }
+ break;
+ default:
+ out.push(segment);
+ }
+ }
+ if (leadingSlash == '') {
+ while (up-- > 0) {
+ out.unshift('..');
+ }
+ if (out.length === 0)
+ out.push('.');
+ }
+ return leadingSlash + out.join('/') + trailingSlash;
+ }
+ /**
+ * Takes an array of the parts from split and canonicalizes the path part
+ * and then joins all the parts.
+ * @param {Array.} parts
+ * @return {string}
+ */
+ function _joinAndCanonicalizePath(parts) {
+ var path = parts[_ComponentIndex.Path];
+ path = lang_1.isBlank(path) ? '' : _removeDotSegments(path);
+ parts[_ComponentIndex.Path] = path;
+ return _buildFromEncodedParts(parts[_ComponentIndex.Scheme], parts[_ComponentIndex.UserInfo], parts[_ComponentIndex.Domain], parts[_ComponentIndex.Port], path, parts[_ComponentIndex.QueryData], parts[_ComponentIndex.Fragment]);
+ }
+ /**
+ * Resolves a URL.
+ * @param {string} base The URL acting as the base URL.
+ * @param {string} to The URL to resolve.
+ * @return {string}
+ */
+ function _resolveUrl(base, url) {
+ var parts = _split(encodeURI(url));
+ var baseParts = _split(base);
+ if (lang_1.isPresent(parts[_ComponentIndex.Scheme])) {
+ return _joinAndCanonicalizePath(parts);
+ }
+ else {
+ parts[_ComponentIndex.Scheme] = baseParts[_ComponentIndex.Scheme];
+ }
+ for (var i = _ComponentIndex.Scheme; i <= _ComponentIndex.Port; i++) {
+ if (lang_1.isBlank(parts[i])) {
+ parts[i] = baseParts[i];
+ }
+ }
+ if (parts[_ComponentIndex.Path][0] == '/') {
+ return _joinAndCanonicalizePath(parts);
+ }
+ var path = baseParts[_ComponentIndex.Path];
+ if (lang_1.isBlank(path))
+ path = '/';
+ var index = path.lastIndexOf('/');
+ path = path.substring(0, index + 1) + parts[_ComponentIndex.Path];
+ parts[_ComponentIndex.Path] = path;
+ return _joinAndCanonicalizePath(parts);
+ }
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsX3Jlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW5ndWxhcjIvc3JjL2NvbXBpbGVyL3VybF9yZXNvbHZlci50cyJdLCJuYW1lcyI6WyJjcmVhdGVXaXRob3V0UGFja2FnZVByZWZpeCIsIlVybFJlc29sdmVyIiwiVXJsUmVzb2x2ZXIuY29uc3RydWN0b3IiLCJVcmxSZXNvbHZlci5yZXNvbHZlIiwiZ2V0VXJsU2NoZW1lIiwiX2J1aWxkRnJvbUVuY29kZWRQYXJ0cyIsIl9Db21wb25lbnRJbmRleCIsIl9zcGxpdCIsIl9yZW1vdmVEb3RTZWdtZW50cyIsIl9qb2luQW5kQ2Fub25pY2FsaXplUGF0aCIsIl9yZXNvbHZlVXJsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxtQkFBaUMsc0JBQXNCLENBQUMsQ0FBQTtBQUN4RCxxQkFNTywwQkFBMEIsQ0FBQyxDQUFBO0FBR2xDLG1DQUErQixzQ0FBc0MsQ0FBQyxDQUFBO0FBQ3RFLG1CQUF1QixzQkFBc0IsQ0FBQyxDQUFBO0FBRTlDOztHQUVHO0FBQ0g7SUFDRUEsTUFBTUEsQ0FBQ0EsSUFBSUEsV0FBV0EsRUFBRUEsQ0FBQ0E7QUFDM0JBLENBQUNBO0FBRmUsa0NBQTBCLDZCQUV6QyxDQUFBO0FBRUQ7O0dBRUc7QUFDUSxvQ0FBNEIsR0FBRyxJQUFJLGFBQVEsQ0FBQyxxQ0FBZ0IsRUFBRSxFQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDO0FBRTFGOzs7Ozs7Ozs7O0dBVUc7QUFDSDtJQUlFQyxxQkFBc0NBLGFBQTRCQTtRQUF0REMsNkJBQXNEQSxHQUF0REEsb0JBQXNEQTtRQUNoRUEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsZ0JBQVNBLENBQUNBLGFBQWFBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQzdCQSxJQUFJQSxDQUFDQSxjQUFjQSxHQUFHQSxvQkFBYUEsQ0FBQ0EsVUFBVUEsQ0FBQ0EsYUFBYUEsRUFBRUEsR0FBR0EsQ0FBQ0EsR0FBR0EsR0FBR0Es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QUlBLENBQUNBLEdBQUdBLElBQUlBLENBQUNBO0lBRW5DQSxNQUFNQSxDQUFDQSxzQkFBc0JBLENBQUNBLEtBQUtBLENBQUNBLGVBQWVBLENBQUNBLE1BQU1BLENBQUNBLEVBQUVBLEtBQUtBLENBQUNBLGVBQWVBLENBQUNBLFFBQVFBLENBQUNBLEVBQzlEQSxLQUFLQSxDQUFDQSxlQUFlQSxDQUFDQSxNQUFNQSxDQUFDQSxFQUFFQSxLQUFLQSxDQUFDQSxlQUFlQSxDQUFDQSxJQUFJQSxDQUFDQSxFQUFFQSxJQUFJQSxFQUNoRUEsS0FBS0EsQ0FBQ0EsZUFBZUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsRUFBRUEsS0FBS0EsQ0FBQ0EsZUFBZUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7QUFDbkdBLENBQUNBO0FBRUQ7Ozs7O0dBS0c7QUFDSCxxQkFBcUIsSUFBWSxFQUFFLEdBQVc7SUFDNUNDLElBQUlBLEtBQUtBLEdBQUdBLE1BQU1BLENBQUNBLFNBQVNBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBO0lBQ25DQSxJQUFJQSxTQUFTQSxHQUFHQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtJQUU3QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsZ0JBQVNBLENBQUNBLEtBQUtBLENBQUNBLGVBQWVBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQzdDQSxNQUFNQSxDQUFDQSx3QkFBd0JBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBO0lBQ3pDQSxDQUFDQTtJQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUNOQSxLQUFLQSxDQUFDQSxlQUFlQSxDQUFDQSxNQUFNQSxDQUFDQSxHQUFHQSxTQUFTQSxDQUFDQSxlQUFlQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQTtJQUNwRUEsQ0FBQ0E7SUFFREEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsZUFBZUEsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0EsSUFBSUEsZUFBZUEsQ0FBQ0EsSUFBSUEsRUFBRUEsQ0FBQ0EsRUFBRUEsRUFBRUEsQ0FBQ0E7UUFDcEVBLEVBQUVBLENBQUNBLENBQUNBLGNBQU9BLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3RCQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxHQUFHQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUMxQkEsQ0FBQ0E7SUFDSEEsQ0FBQ0E7SUFFREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsZUFBZUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDMUNBLE1BQU1BLENBQUNBLHdCQUF3QkEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0E7SUFDekNBLENBQUNBO0lBRURBLElBQUlBLElBQUlBLEdBQUdBLFNBQVNBLENBQUNBLGVBQWVBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO0lBQzNDQSxFQUFFQSxDQUFDQSxDQUFDQSxjQUFPQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUFDQSxJQUFJQSxHQUFHQSxHQUFHQSxDQUFDQTtJQUM5QkEsSUFBSUEsS0FBS0EsR0FBR0EsSUFBSUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7SUFDbENBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLFNBQVNBLENBQUNBLENBQUNBLEVBQUVBLEtBQUtBLEdBQUdBLENBQUNBLENBQUNBLEdBQUdBLEtBQUtBLENBQUNBLGVBQWVBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO0lBQ2xFQSxLQUFLQSxDQUFDQSxlQUFlQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQTtJQUNuQ0EsTUFBTUEsQ0FBQ0Esd0JBQXdCQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQTtBQUN6Q0EsQ0FBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIEluamVjdH0gZnJvbSAnYW5ndWxhcjIvc3JjL2NvcmUvZGknO1xuaW1wb3J0IHtcbiAgU3RyaW5nV3JhcHBlcixcbiAgaXNQcmVzZW50LFxuICBpc0JsYW5rLFxuICBSZWdFeHBXcmFwcGVyLFxuICBub3JtYWxpemVCbGFua1xufSBmcm9tICdhbmd1bGFyMi9zcmMvZmFjYWRlL2xhbmcnO1xuaW1wb3J0IHtCYXNlRXhjZXB0aW9uLCBXcmFwcGVkRXhjZXB0aW9ufSBmcm9tICdhbmd1bGFyMi9zcmMvZmFjYWRlL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHtMaXN0V3JhcHBlcn0gZnJvbSAnYW5ndWxhcjIvc3JjL2ZhY2FkZS9jb2xsZWN0aW9uJztcbmltcG9ydCB7UEFDS0FHRV9ST09UX1VSTH0gZnJvbSAnYW5ndWxhcjIvc3JjL2NvcmUvYXBwbGljYXRpb25fdG9rZW5zJztcbmltcG9ydCB7UHJvdmlkZXJ9IGZyb20gJ2FuZ3VsYXIyL3NyYy9jb3JlL2RpJztcblxuLyoqXG4gKiBDcmVhdGUgYSB7QGxpbmsgVXJsUmVzb2x2ZXJ9IHdpdGggbm8gcGFja2FnZSBwcmVmaXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVXaXRob3V0UGFja2FnZVByZWZpeCgpOiBVcmxSZXNvbHZlciB7XG4gIHJldHVybiBuZXcgVXJsUmVzb2x2ZXIoKTtcbn1cblxuLyoqXG4gKiBBIGRlZmF1bHQgcHJvdmlkZXIgZm9yIHtAbGluayBQQUNLQUdFX1JPT1RfVVJMfSB0aGF0IG1hcHMgdG8gJy8nLlxuICovXG5leHBvcnQgdmFyIERFRkFVTFRfUEFDS0FHRV9VUkxfUFJPVklERVIgPSBuZXcgUHJvdmlkZXIoUEFDS0FHRV9ST09UX1VSTCwge3VzZVZhbHVlOiBcIi9cIn0pO1xuXG4vKipcbiAqIFVzZWQgYnkgdGhlIHtAbGluayBDb21waWxlcn0gd2hlbiByZXNvbHZpbmcgSFRNTCBhbmQgQ1NTIHRlbXBsYXRlIFVSTHMuXG4gKlxuICogVGhpcyBjbGFzcyBjYW4gYmUgb3ZlcnJpZGRlbiBieSB0aGUgYXBwbGljYXRpb24gZGV2ZWxvcGVyIHRvIGNyZWF0ZSBjdXN0b20gYmVoYXZpb3IuXG4gKlxuICogU2VlIHtAbGluayBDb21waWxlcn1cbiAqXG4gKiAjIyBFeGFtcGxlXG4gKlxuICoge0BleGFtcGxlIGNvbXBpbGVyL3RzL3VybF9yZXNvbHZlci91cmxfcmVzb2x2ZXIudHMgcmVnaW9uPSd1cmxfcmVzb2x2ZXInfVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVXJsUmVzb2x2ZXIge1xuICBwcml2YXRlIF9wYWNrYWdlUHJlZml4OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChQQUNLQUdFX1JPT1RfVVJMKSBwYWNrYWdlUHJlZml4OiBzdHJpbmcgPSBudWxsKSB7XG4gICAgaWYgKGlzUHJlc2VudChwYWNrYWdlUHJlZml4KSkge1xuICAgICAgdGhpcy5fcGFja2FnZVByZWZpeCA9IFN0cmluZ1dyYXBwZXIuc3RyaXBSaWdodChwYWNrYWdlUHJlZml4LCBcIi9cIikgKyBcIi9cIjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIGB1cmxgIGdpdmVuIHRoZSBgYmFzZVVybGA6XG4gICAqIC0gd2hlbiB0aGUgYHVybGAgaXMgbnVsbCwgdGhlIGBiYXNlVXJsYCBpcyByZXR1cm5lZCxcbiAgICogLSBpZiBgdXJsYCBpcyByZWxhdGl2ZSAoJ3BhdGgvdG8vaGVyZScsICcuL3BhdGgvdG8vaGVyZScpLCB0aGUgcmVzb2x2ZWQgdXJsIGlzIGEgY29tYmluYXRpb24gb2ZcbiAgICogYGJhc2VVcmxgIGFuZCBgdXJsYCxcbiAgICogLSBpZiBgdXJsYCBpcyBhYnNvbHV0ZSAoaXQgaGFzIGEgc2NoZW1lOiAnaHR0cDovLycsICdodHRwczovLycgb3Igc3RhcnQgd2l0aCAnLycpLCB0aGUgYHVybGAgaXNcbiAgICogcmV0dXJuZWQgYXMgaXMgKGlnbm9yaW5nIHRoZSBgYmFzZVVybGApXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBiYXNlVXJsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmxcbiAgICogQHJldHVybnMge3N0cmluZ30gdGhlIHJlc29sdmVkIFVSTFxuICAgKi9cbiAgcmVzb2x2ZShiYXNlVXJsOiBzdHJpbmcsIHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB2YXIgcmVzb2x2ZWRVcmwgPSB1cmw7XG4gICAgaWYgKGlzUHJlc2VudChiYXNlVXJsKSAmJiBiYXNlVXJsLmxlbmd0aCA+IDApIHtcbiAgICAgIHJlc29sdmVkVXJsID0gX3Jlc29sdmVVcmwoYmFzZVVybCwgcmVzb2x2ZWRVcmwpO1xuICAgIH1cbiAgICBpZiAoaXNQcmVzZW50KHRoaXMuX3BhY2thZ2VQcmVmaXgpICYmIGdldFVybFNjaGVtZShyZXNvbHZlZFVybCkgPT0gXCJwYWNrYWdlXCIpIHtcbiAgICAgIHJlc29sdmVkVXJsID0gcmVzb2x2ZWRVcmwucmVwbGFjZShcInBhY2thZ2U6XCIsIHRoaXMuX3BhY2thZ2VQcmVmaXgpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZWRVcmw7XG4gIH1cbn1cblxuLyoqXG4gKiBFeHRyYWN0IHRoZSBzY2hlbWUgb2YgYSBVUkwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRVcmxTY2hlbWUodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICB2YXIgbWF0Y2ggPSBfc3BsaXQodXJsKTtcbiAgcmV0dXJuIChtYXRjaCAmJiBtYXRjaFtfQ29tcG9uZW50SW5kZXguU2NoZW1lXSkgfHwgXCJcIjtcbn1cblxuLy8gVGhlIGNvZGUgYmVsb3cgaXMgYWRhcHRlZCBmcm9tIFRyYWNldXI6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL3RyYWNldXItY29tcGlsZXIvYmxvYi85NTExYzFkYWZhOTcyYmYwZGUxMjAyYThhODYzYmFkMDJmMGY5NWE4L3NyYy9ydW50aW1lL3VybC5qc1xuXG4vKipcbiAqIEJ1aWxkcyBhIFVSSSBzdHJpbmcgZnJvbSBhbHJlYWR5LWVuY29kZWQgcGFydHMuXG4gKlxuICogTm8gZW5jb2RpbmcgaXMgcGVyZm9ybWVkLiAgQW55IGNvbXBvbmVudCBtYXkgYmUgb21pdHRlZCBhcyBlaXRoZXIgbnVsbCBvclxuICogdW5kZWZpbmVkLlxuICpcbiAqIEBwYXJhbSB7P3N0cmluZz19IG9wdF9zY2hlbWUgVGhlIHNjaGVtZSBzdWNoIGFzICdodHRwJy5cbiAqIEBwYXJhbSB7P3N0cmluZz19IG9wdF91c2VySW5mbyBUaGUgdXNlciBuYW1lIGJlZm9yZSB0aGUgJ0AnLlxuICogQHBhcmFtIHs/c3RyaW5nPX0gb3B0X2RvbWFpbiBUaGUgZG9tYWluIHN1Y2ggYXMgJ3d3dy5nb29nbGUuY29tJywgYWxyZWFkeVxuICogICAgIFVSSS1lbmNvZGVkLlxuICogQHBhcmFtIHsoc3RyaW5nfG51bGwpPX0gb3B0X3BvcnQgVGhlIHBvcnQgbnVtYmVyLlxuICogQHBhcmFtIHs/c3RyaW5nPX0gb3B0X3BhdGggVGhlIHBhdGgsIGFscmVhZHkgVVJJLWVuY29kZWQuICBJZiBpdCBpcyBub3RcbiAqICAgICBlbXB0eSwgaXQgbXVzdCBiZWdpbiB3aXRoIGEgc2xhc2guXG4gKiBAcGFyYW0gez9zdHJpbmc9fSBvcHRfcXVlcnlEYXRhIFRoZSBVUkktZW5jb2RlZCBxdWVyeSBkYXRhLlxuICogQHBhcmFtIHs/c3RyaW5nPX0gb3B0X2ZyYWdtZW50IFRoZSBVUkktZW5jb2RlZCBmcmFnbWVudCBpZGVudGlmaWVyLlxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgZnVsbHkgY29tYmluZWQgVVJJLlxuICovXG5mdW5jdGlvbiBfYnVpbGRGcm9tRW5jb2RlZFBhcnRzKG9wdF9zY2hlbWU/OiBzdHJpbmcsIG9wdF91c2VySW5mbz86IHN0cmluZywgb3B0X2RvbWFpbj86IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0X3BvcnQ/OiBzdHJpbmcsIG9wdF9wYXRoPzogc3RyaW5nLCBvcHRfcXVlcnlEYXRhPzogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRfZnJhZ21lbnQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICB2YXIgb3V0ID0gW107XG5cbiAgaWYgKGlzUHJlc2VudChvcHRfc2NoZW1lKSkge1xuICAgIG91dC5wdXNoKG9wdF9zY2hlbWUgKyAnOicpO1xuICB9XG5cbiAgaWYgKGlzUHJlc2VudChvcHRfZG9tYWluKSkge1xuICAgIG91dC5wdXNoKCcvLycpO1xuXG4gICAgaWYgKGlzUHJlc2VudChvcHRfdXNlckluZm8pKSB7XG4gICAgICBvdXQucHVzaChvcHRfdXNlckluZm8gKyAnQCcpO1xuICAgIH1cblxuICAgIG91dC5wdXNoKG9wdF9kb21haW4pO1xuXG4gICAgaWYgKGlzUHJlc2VudChvcHRfcG9ydCkpIHtcbiAgICAgIG91dC5wdXNoKCc6JyArIG9wdF9wb3J0KTtcbiAgICB9XG4gIH1cblxuICBpZiAoaXNQcmVzZW50KG9wdF9wYXRoKSkge1xuICAgIG91dC5wdXNoKG9wdF9wYXRoKTtcbiAgfVxuXG4gIGlmIChpc1ByZXNlbnQob3B0X3F1ZXJ5RGF0YSkpIHtcbiAgICBvdXQucHVzaCgnPycgKyBvcHRfcXVlcnlEYXRhKTtcbiAgfVxuXG4gIGlmIChpc1ByZXNlbnQob3B0X2ZyYWdtZW50KSkge1xuICAgIG91dC5wdXNoKCcjJyArIG9wdF9mcmFnbWVudCk7XG4gIH1cblxuICByZXR1cm4gb3V0LmpvaW4oJycpO1xufVxuXG4vKipcbiAqIEEgcmVndWxhciBleHByZXNzaW9uIGZvciBicmVha2luZyBhIFVSSSBpbnRvIGl0cyBjb21wb25lbnQgcGFydHMuXG4gKlxuICoge0BsaW5rIGh0dHA6Ly93d3cuZ2Jpdi5jb20vcHJvdG9jb2xzL3VyaS9yZmMvcmZjMzk4Ni5odG1sI1JGQzIyMzR9IHNheXNcbiAqIEFzIHRoZSBcImZpcnN0LW1hdGNoLXdpbnNcIiBhbGdvcml0aG0gaXMgaWRlbnRpY2FsIHRvIHRoZSBcImdyZWVkeVwiXG4gKiBkaXNhbWJpZ3VhdGlvbiBtZXRob2QgdXNlZCBieSBQT1NJWCByZWd1bGFyIGV4cHJlc3Npb25zLCBpdCBpcyBuYXR1cmFsIGFuZFxuICogY29tbW9ucGxhY2UgdG8gdXNlIGEgcmVndWxhciBleHByZXNzaW9uIGZvciBwYXJzaW5nIHRoZSBwb3RlbnRpYWwgZml2ZVxuICogY29tcG9uZW50cyBvZiBhIFVSSSByZWZlcmVuY2UuXG4gKlxuICogVGhlIGZvbGxvd2luZyBsaW5lIGlzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIGJyZWFraW5nLWRvd24gYVxuICogd2VsbC1mb3JtZWQgVVJJIHJlZmVyZW5jZSBpbnRvIGl0cyBjb21wb25lbnRzLlxuICpcbiAqIDxwcmU+XG4gKiBeKChbXjovPyNdKyk6KT8oLy8oW14vPyNdKikpPyhbXj8jXSopKFxcPyhbXiNdKikpPygjKC4qKSk/XG4gKiAgMTIgICAgICAgICAgICAzICA0ICAgICAgICAgIDUgICAgICAgNiAgNyAgICAgICAgOCA5XG4gKiA8L3ByZT5cbiAqXG4gKiBUaGUgbnVtYmVycyBpbiB0aGUgc2Vjb25kIGxpbmUgYWJvdmUgYXJlIG9ubHkgdG8gYXNzaXN0IHJlYWRhYmlsaXR5OyB0aGV5XG4gKiBpbmRpY2F0ZSB0aGUgcmVmZXJlbmNlIHBvaW50cyBmb3IgZWFjaCBzdWJleHByZXNzaW9uIChpLmUuLCBlYWNoIHBhaXJlZFxuICogcGFyZW50aGVzaXMpLiBXZSByZWZlciB0byB0aGUgdmFsdWUgbWF0Y2hlZCBmb3Igc3ViZXhwcmVzc2lvbiA8bj4gYXMgJDxuPi5cbiAqIEZvciBleGFtcGxlLCBtYXRjaGluZyB0aGUgYWJvdmUgZXhwcmVzc2lvbiB0b1xuICogPHByZT5cbiAqICAgICBodHRwOi8vd3d3Lmljcy51Y2kuZWR1L3B1Yi9pZXRmL3VyaS8jUmVsYXRlZFxuICogPC9wcmU+XG4gKiByZXN1bHRzIGluIHRoZSBmb2xsb3dpbmcgc3ViZXhwcmVzc2lvbiBtYXRjaGVzOlxuICogPHByZT5cbiAqICAgICQxID0gaHR0cDpcbiAqICAgICQyID0gaHR0cFxuICogICAgJDMgPSAvL3d3dy5pY3MudWNpLmVkdVxuICogICAgJDQgPSB3d3cuaWNzLnVjaS5lZHVcbiAqICAgICQ1ID0gL3B1Yi9pZXRmL3VyaS9cbiAqICAgICQ2ID0gPHVuZGVmaW5lZD5cbiAqICAgICQ3ID0gPHVuZGVmaW5lZD5cbiAqICAgICQ4ID0gI1JlbGF0ZWRcbiAqICAgICQ5ID0gUmVsYXRlZFxuICogPC9wcmU+XG4gKiB3aGVyZSA8dW5kZWZpbmVkPiBpbmRpY2F0ZXMgdGhhdCB0aGUgY29tcG9uZW50IGlzIG5vdCBwcmVzZW50LCBhcyBpcyB0aGVcbiAqIGNhc2UgZm9yIHRoZSBxdWVyeSBjb21wb25lbnQgaW4gdGhlIGFib3ZlIGV4YW1wbGUuIFRoZXJlZm9yZSwgd2UgY2FuXG4gKiBkZXRlcm1pbmUgdGhlIHZhbHVlIG9mIHRoZSBmaXZlIGNvbXBvbmVudHMgYXNcbiAqIDxwcmU+XG4gKiAgICBzY2hlbWUgICAgPSAkMlxuICogICAgYXV0aG9yaXR5ID0gJDRcbiAqICAgIHBhdGggICAgICA9ICQ1XG4gKiAgICBxdWVyeSAgICAgPSAkN1xuICogICAgZnJhZ21lbnQgID0gJDlcbiAqIDwvcHJlPlxuICpcbiAqIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gaGFzIGJlZW4gbW9kaWZpZWQgc2xpZ2h0bHkgdG8gZXhwb3NlIHRoZVxuICogdXNlckluZm8sIGRvbWFpbiwgYW5kIHBvcnQgc2VwYXJhdGVseSBmcm9tIHRoZSBhdXRob3JpdHkuXG4gKiBUaGUgbW9kaWZpZWQgdmVyc2lvbiB5aWVsZHNcbiAqIDxwcmU+XG4gKiAgICAkMSA9IGh0dHAgICAgICAgICAgICAgIHNjaGVtZVxuICogICAgJDIgPSA8dW5kZWZpbmVkPiAgICAgICB1c2VySW5mbyAtXFxcbiAqICAgICQzID0gd3d3Lmljcy51Y2kuZWR1ICAgZG9tYWluICAgICB8IGF1dGhvcml0eVxuICogICAgJDQgPSA8dW5kZWZpbmVkPiAgICAgICBwb3J0ICAgICAtL1xuICogICAgJDUgPSAvcHViL2lldGYvdXJpLyAgICBwYXRoXG4gKiAgICAkNiA9IDx1bmRlZmluZWQ+ICAgICAgIHF1ZXJ5IHdpdGhvdXQgP1xuICogICAgJDcgPSBSZWxhdGVkICAgICAgICAgICBmcmFnbWVudCB3aXRob3V0ICNcbiAqIDwvcHJlPlxuICogQHR5cGUgeyFSZWdFeHB9XG4gKiBAaW50ZXJuYWxcbiAqL1xudmFyIF9zcGxpdFJlID1cbiAgICBSZWdFeHBXcmFwcGVyLmNyZWF0ZSgnXicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICcoPzonICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAnKFteOi8/Iy5dKyknICsgIC8vIHNjaGVtZSAtIGlnbm9yZSBzcGVjaWFsIGNoYXJhY3RlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVzZWQgYnkgb3RoZXIgVVJMIHBhcnRzIHN1Y2ggYXMgOixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vID8sIC8sICMsIGFuZCAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgJzopPycgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICcoPzovLycgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICcoPzooW14vPyNdKilAKT8nICsgICAgICAgICAgICAgICAgICAvLyB1c2VySW5mb1xuICAgICAgICAgICAgICAgICAgICAgICAgICcoW1xcXFx3XFxcXGRcXFxcLVxcXFx1MDEwMC1cXFxcdWZmZmYuJV0qKScgKyAgLy8gZG9tYWluIC0gcmVzdHJpY3QgdG8gbGV0dGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGlnaXRzLCBkYXNoZXMsIGRvdHMsIHBlcmNlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNjYXBlcywgYW5kIHVuaWNvZGUgY2hhcmFjdGVycy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAnKD86OihbMC05XSspKT8nICsgICAgICAgICAgICAgICAgICAgLy8gcG9ydFxuICAgICAgICAgICAgICAgICAgICAgICAgICcpPycgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICcoW14/I10rKT8nICsgICAgICAgIC8vIHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAnKD86XFxcXD8oW14jXSopKT8nICsgIC8vIHF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgJyg/OiMoLiopKT8nICsgICAgICAgLy8gZnJhZ21lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAnJCcpO1xuXG4vKipcbiAqIFRoZSBpbmRleCBvZiBlYWNoIFVSSSBjb21wb25lbnQgaW4gdGhlIHJldHVybiB2YWx1ZSBvZiBnb29nLnVyaS51dGlscy5zcGxpdC5cbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbmVudW0gX0NvbXBvbmVudEluZGV4IHtcbiAgU2NoZW1lID0gMSxcbiAgVXNlckluZm8sXG4gIERvbWFpbixcbiAgUG9ydCxcbiAgUGF0aCxcbiAgUXVlcnlEYXRhLFxuICBGcmFnbWVudFxufVxuXG4vKipcbiAqIFNwbGl0cyBhIFVSSSBpbnRvIGl0cyBjb21wb25lbnQgcGFydHMuXG4gKlxuICogRWFjaCBjb21wb25lbnQgY2FuIGJlIGFjY2Vzc2VkIHZpYSB0aGUgY29tcG9uZW50IGluZGljZXM7IGZvciBleGFtcGxlOlxuICogPHByZT5cbiAqIGdvb2cudXJpLnV0aWxzLnNwbGl0KHNvbWVTdHIpW2dvb2cudXJpLnV0aWxzLkNvbXBvbnRlbnRJbmRleC5RVUVSWV9EQVRBXTtcbiAqIDwvcHJlPlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmkgVGhlIFVSSSBzdHJpbmcgdG8gZXhhbWluZS5cbiAqIEByZXR1cm4geyFBcnJheS48c3RyaW5nfHVuZGVmaW5lZD59IEVhY2ggY29tcG9uZW50IHN0aWxsIFVSSS1lbmNvZGVkLlxuICogICAgIEVhY2ggY29tcG9uZW50IHRoYXQgaXMgcHJlc2VudCB3aWxsIGNvbnRhaW4gdGhlIGVuY29kZWQgdmFsdWUsIHdoZXJlYXNcbiAqICAgICBjb21wb25lbnRzIHRoYXQgYXJlIG5vdCBwcmVzZW50IHdpbGwgYmUgdW5kZWZpbmVkIG9yIGVtcHR5LCBkZXBlbmRpbmdcbiAqICAgICBvbiB0aGUgYnJvd3NlcidzIHJlZ3VsYXIgZXhwcmVzc2lvbiBpbXBsZW1lbnRhdGlvbi4gIE5ldmVyIG51bGwsIHNpbmNlXG4gKiAgICAgYXJiaXRyYXJ5IHN0cmluZ3MgbWF5IHN0aWxsIGxvb2sgbGlrZSBwYXRoIG5hbWVzLlxuICovXG5mdW5jdGlvbiBfc3BsaXQodXJpOiBzdHJpbmcpOiBBcnJheTxzdHJpbmcgfCBhbnk+IHtcbiAgcmV0dXJuIFJlZ0V4cFdyYXBwZXIuZmlyc3RNYXRjaChfc3BsaXRSZSwgdXJpKTtcbn1cblxuLyoqXG4gICogUmVtb3ZlcyBkb3Qgc2VnbWVudHMgaW4gZ2l2ZW4gcGF0aCBjb21wb25lbnQsIGFzIGRlc2NyaWJlZCBpblxuICAqIFJGQyAzOTg2LCBzZWN0aW9uIDUuMi40LlxuICAqXG4gICogQHBhcmFtIHtzdHJpbmd9IHBhdGggQSBub24tZW1wdHkgcGF0aCBjb21wb25lbnQuXG4gICogQHJldHVybiB7c3RyaW5nfSBQYXRoIGNvbXBvbmVudCB3aXRoIHJlbW92ZWQgZG90IHNlZ21lbnRzLlxuICAqL1xuZnVuY3Rpb24gX3JlbW92ZURvdFNlZ21lbnRzKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChwYXRoID09ICcvJykgcmV0dXJuICcvJztcblxuICB2YXIgbGVhZGluZ1NsYXNoID0gcGF0aFswXSA9PSAnLycgPyAnLycgOiAnJztcbiAgdmFyIHRyYWlsaW5nU2xhc2ggPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV0gPT09ICcvJyA/ICcvJyA6ICcnO1xuICB2YXIgc2VnbWVudHMgPSBwYXRoLnNwbGl0KCcvJyk7XG5cbiAgdmFyIG91dDogc3RyaW5nW10gPSBbXTtcbiAgdmFyIHVwID0gMDtcbiAgZm9yICh2YXIgcG9zID0gMDsgcG9zIDwgc2VnbWVudHMubGVuZ3RoOyBwb3MrKykge1xuICAgIHZhciBzZWdtZW50ID0gc2VnbWVudHNbcG9zXTtcbiAgICBzd2l0Y2ggKHNlZ21lbnQpIHtcbiAgICAgIGNhc2UgJyc6XG4gICAgICBjYXNlICcuJzpcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICcuLic6XG4gICAgICAgIGlmIChvdXQubGVuZ3RoID4gMCkge1xuICAgICAgICAgIG91dC5wb3AoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cCsrO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgb3V0LnB1c2goc2VnbWVudCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGxlYWRpbmdTbGFzaCA9PSAnJykge1xuICAgIHdoaWxlICh1cC0tID4gMCkge1xuICAgICAgb3V0LnVuc2hpZnQoJy4uJyk7XG4gICAgfVxuXG4gICAgaWYgKG91dC5sZW5ndGggPT09IDApIG91dC5wdXNoKCcuJyk7XG4gIH1cblxuICByZXR1cm4gbGVhZGluZ1NsYXNoICsgb3V0LmpvaW4oJy8nKSArIHRyYWlsaW5nU2xhc2g7XG59XG5cbi8qKlxuICogVGFrZXMgYW4gYXJyYXkgb2YgdGhlIHBhcnRzIGZyb20gc3BsaXQgYW5kIGNhbm9uaWNhbGl6ZXMgdGhlIHBhdGggcGFydFxuICogYW5kIHRoZW4gam9pbnMgYWxsIHRoZSBwYXJ0cy5cbiAqIEBwYXJhbSB7QXJyYXkuPHN0cmluZz8+fSBwYXJ0c1xuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBfam9pbkFuZENhbm9uaWNhbGl6ZVBhdGgocGFydHM6IGFueVtdKTogc3RyaW5nIHtcbiAgdmFyIHBhdGggPSBwYXJ0c1tfQ29tcG9uZW50SW5kZXguUGF0aF07XG4gIHBhdGggPSBpc0JsYW5rKHBhdGgpID8gJycgOiBfcmVtb3ZlRG90U2VnbWVudHMocGF0aCk7XG4gIHBhcnRzW19Db21wb25lbnRJbmRleC5QYXRoXSA9IHBhdGg7XG5cbiAgcmV0dXJuIF9idWlsZEZyb21FbmNvZGVkUGFydHMocGFydHNbX0NvbXBvbmVudEluZGV4LlNjaGVtZV0sIHBhcnRzW19Db21wb25lbnRJbmRleC5Vc2VySW5mb10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRzW19Db21wb25lbnRJbmRleC5Eb21haW5dLCBwYXJ0c1tfQ29tcG9uZW50SW5kZXguUG9ydF0sIHBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRzW19Db21wb25lbnRJbmRleC5RdWVyeURhdGFdLCBwYXJ0c1tfQ29tcG9uZW50SW5kZXguRnJhZ21lbnRdKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBhIFVSTC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBiYXNlIFRoZSBVUkwgYWN0aW5nIGFzIHRoZSBiYXNlIFVSTC5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0byBUaGUgVVJMIHRvIHJlc29sdmUuXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIF9yZXNvbHZlVXJsKGJhc2U6IHN0cmluZywgdXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICB2YXIgcGFydHMgPSBfc3BsaXQoZW5jb2RlVVJJKHVybCkpO1xuICB2YXIgYmFzZVBhcnRzID0gX3NwbGl0KGJhc2UpO1xuXG4gIGlmIChpc1ByZXNlbnQocGFydHNbX0NvbXBvbmVudEluZGV4LlNjaGVtZV0pKSB7XG4gICAgcmV0dXJuIF9qb2luQW5kQ2Fub25pY2FsaXplUGF0aChwYXJ0cyk7XG4gIH0gZWxzZSB7XG4gICAgcGFydHNbX0NvbXBvbmVudEluZGV4LlNjaGVtZV0gPSBiYXNlUGFydHNbX0NvbXBvbmVudEluZGV4LlNjaGVtZV07XG4gIH1cblxuICBmb3IgKHZhciBpID0gX0NvbXBvbmVudEluZGV4LlNjaGVtZTsgaSA8PSBfQ29tcG9uZW50SW5kZXguUG9ydDsgaSsrKSB7XG4gICAgaWYgKGlzQmxhbmsocGFydHNbaV0pKSB7XG4gICAgICBwYXJ0c1tpXSA9IGJhc2VQYXJ0c1tpXTtcbiAgICB9XG4gIH1cblxuICBpZiAocGFydHNbX0NvbXBvbmVudEluZGV4LlBhdGhdWzBdID09ICcvJykge1xuICAgIHJldHVybiBfam9pbkFuZENhbm9uaWNhbGl6ZVBhdGgocGFydHMpO1xuICB9XG5cbiAgdmFyIHBhdGggPSBiYXNlUGFydHNbX0NvbXBvbmVudEluZGV4LlBhdGhdO1xuICBpZiAoaXNCbGFuayhwYXRoKSkgcGF0aCA9ICcvJztcbiAgdmFyIGluZGV4ID0gcGF0aC5sYXN0SW5kZXhPZignLycpO1xuICBwYXRoID0gcGF0aC5zdWJzdHJpbmcoMCwgaW5kZXggKyAxKSArIHBhcnRzW19Db21wb25lbnRJbmRleC5QYXRoXTtcbiAgcGFydHNbX0NvbXBvbmVudEluZGV4LlBhdGhdID0gcGF0aDtcbiAgcmV0dXJuIF9qb2luQW5kQ2Fub25pY2FsaXplUGF0aChwYXJ0cyk7XG59XG4iXX0=
+
+/***/ },
+/* 29 */,
+/* 30 */,
+/* 31 */,
+/* 32 */,
+/* 33 */,
+/* 34 */,
+/* 35 */,
+/* 36 */,
+/* 37 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';var di_1 = __webpack_require__(5);
+ var lang_1 = __webpack_require__(1);
+ /**
+ * A DI Token representing the main rendering context. In a browser this is the DOM Document.
+ *
+ * Note: Document might not be available in the Application Context when Application and Rendering
+ * Contexts are not the same (e.g. when running the application into a Web Worker).
+ */
+ exports.DOCUMENT = lang_1.CONST_EXPR(new di_1.OpaqueToken('DocumentToken'));
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tX3Rva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFuZ3VsYXIyL3NyYy9wbGF0Zm9ybS9kb20vZG9tX3Rva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQkFBMEIsc0JBQXNCLENBQUMsQ0FBQTtBQUNqRCxxQkFBeUIsMEJBQTBCLENBQUMsQ0FBQTtBQUVwRDs7Ozs7R0FLRztBQUNVLGdCQUFRLEdBQWdCLGlCQUFVLENBQUMsSUFBSSxnQkFBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09wYXF1ZVRva2VufSBmcm9tICdhbmd1bGFyMi9zcmMvY29yZS9kaSc7XG5pbXBvcnQge0NPTlNUX0VYUFJ9IGZyb20gJ2FuZ3VsYXIyL3NyYy9mYWNhZGUvbGFuZyc7XG5cbi8qKlxuICogQSBESSBUb2tlbiByZXByZXNlbnRpbmcgdGhlIG1haW4gcmVuZGVyaW5nIGNvbnRleHQuIEluIGEgYnJvd3NlciB0aGlzIGlzIHRoZSBET00gRG9jdW1lbnQuXG4gKlxuICogTm90ZTogRG9jdW1lbnQgbWlnaHQgbm90IGJlIGF2YWlsYWJsZSBpbiB0aGUgQXBwbGljYXRpb24gQ29udGV4dCB3aGVuIEFwcGxpY2F0aW9uIGFuZCBSZW5kZXJpbmdcbiAqIENvbnRleHRzIGFyZSBub3QgdGhlIHNhbWUgKGUuZy4gd2hlbiBydW5uaW5nIHRoZSBhcHBsaWNhdGlvbiBpbnRvIGEgV2ViIFdvcmtlcikuXG4gKi9cbmV4cG9ydCBjb25zdCBET0NVTUVOVDogT3BhcXVlVG9rZW4gPSBDT05TVF9FWFBSKG5ldyBPcGFxdWVUb2tlbignRG9jdW1lbnRUb2tlbicpKTtcbiJdfQ==
+
+/***/ },
+/* 38 */,
+/* 39 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+ var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+ };
+ var core_1 = __webpack_require__(3);
+ var FileDrop = (function () {
+ function FileDrop(element) {
+ this.element = element;
+ this.fileOver = new core_1.EventEmitter();
+ }
+ FileDrop.prototype.getOptions = function () {
+ return this.uploader.options;
+ };
+ FileDrop.prototype.getFilters = function () {
+ };
+ FileDrop.prototype.onDrop = function (event) {
+ var transfer = this._getTransfer(event);
+ if (!transfer) {
+ return;
+ }
+ var options = this.getOptions();
+ var filters = this.getFilters();
+ this._preventAndStop(event);
+ this.uploader.addToQueue(transfer.files, options, filters);
+ this.fileOver.next(false);
+ };
+ FileDrop.prototype.onDragOver = function (event) {
+ var transfer = this._getTransfer(event);
+ if (!this._haveFiles(transfer.types)) {
+ return;
+ }
+ transfer.dropEffect = 'copy';
+ this._preventAndStop(event);
+ this.fileOver.next(true);
+ };
+ FileDrop.prototype.onDragLeave = function (event) {
+ if (event.currentTarget === this.element[0]) {
+ return;
+ }
+ this._preventAndStop(event);
+ this.fileOver.next(false);
+ };
+ FileDrop.prototype._getTransfer = function (event) {
+ return event.dataTransfer ? event.dataTransfer : event.originalEvent.dataTransfer;
+ };
+ FileDrop.prototype._preventAndStop = function (event) {
+ event.preventDefault();
+ event.stopPropagation();
+ };
+ FileDrop.prototype._haveFiles = function (types) {
+ if (!types) {
+ return false;
+ }
+ if (types.indexOf) {
+ return types.indexOf('Files') !== -1;
+ }
+ else if (types.contains) {
+ return types.contains('Files');
+ }
+ else {
+ return false;
+ }
+ };
+ FileDrop.prototype._addOverClass = function (item) {
+ item.addOverClass();
+ };
+ FileDrop.prototype._removeOverClass = function (item) {
+ item.removeOverClass();
+ };
+ FileDrop = __decorate([
+ core_1.Directive({
+ selector: '[ng2-file-drop]',
+ properties: ['uploader'],
+ events: ['fileOver'],
+ host: {
+ '(drop)': 'onDrop($event)',
+ '(dragover)': 'onDragOver($event)',
+ '(dragleave)': 'onDragLeave($event)'
+ }
+ }),
+ __metadata('design:paramtypes', [core_1.ElementRef])
+ ], FileDrop);
+ return FileDrop;
+ })();
+ exports.FileDrop = FileDrop;
+
+
+/***/ },
+/* 40 */
+/***/ function(module, exports) {
+
+ function isElement(node) {
+ return !!(node && (node.nodeName || node.prop && node.attr && node.find));
+ }
+ var FileLikeObject = (function () {
+ function FileLikeObject(fileOrInput) {
+ var isInput = isElement(fileOrInput);
+ var fakePathOrObject = isInput ? fileOrInput.value : fileOrInput;
+ var postfix = typeof fakePathOrObject === 'string' ? 'FakePath' : 'Object';
+ var method = '_createFrom' + postfix;
+ this[method](fakePathOrObject);
+ }
+ FileLikeObject.prototype._createFromFakePath = function (path) {
+ this.lastModifiedDate = null;
+ this.size = null;
+ this.type = 'like/' + path.slice(path.lastIndexOf('.') + 1).toLowerCase();
+ this.name = path.slice(path.lastIndexOf('/') + path.lastIndexOf('\\') + 2);
+ };
+ FileLikeObject.prototype._createFromObject = function (object) {
+ this.size = object.size;
+ this.type = object.type;
+ this.name = object.name;
+ };
+ return FileLikeObject;
+ })();
+ exports.FileLikeObject = FileLikeObject;
+
+
+/***/ },
+/* 41 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+ var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+ };
+ var core_1 = __webpack_require__(3);
+ var FileSelect = (function () {
+ function FileSelect(element) {
+ this.element = element;
+ }
+ FileSelect.prototype.getOptions = function () {
+ return this.uploader.options;
+ };
+ FileSelect.prototype.getFilters = function () {
+ };
+ FileSelect.prototype.isEmptyAfterSelection = function () {
+ return !!this.element.nativeElement.attributes.multiple;
+ };
+ FileSelect.prototype.onChange = function () {
+ var files = this.element.nativeElement.files;
+ var options = this.getOptions();
+ var filters = this.getFilters();
+ this.uploader.addToQueue(files, options, filters);
+ if (this.isEmptyAfterSelection()) {
+ }
+ };
+ FileSelect = __decorate([
+ core_1.Directive({
+ selector: '[ng2-file-select]',
+ properties: ['uploader'],
+ host: {
+ '(change)': 'onChange()'
+ }
+ }),
+ __metadata('design:paramtypes', [core_1.ElementRef])
+ ], FileSelect);
+ return FileSelect;
+ })();
+ exports.FileSelect = FileSelect;
+ exports.fileUpload = [FileSelect];
+
+
+/***/ },
+/* 42 */,
+/* 43 */,
+/* 44 */,
+/* 45 */,
+/* 46 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';var lang_1 = __webpack_require__(1);
+ var collection_1 = __webpack_require__(2);
+ var change_detection_1 = __webpack_require__(10);
+ var view_1 = __webpack_require__(17);
+ var selector_1 = __webpack_require__(122);
+ var util_1 = __webpack_require__(15);
+ var interfaces_1 = __webpack_require__(33);
+ // group 1: "property" from "[property]"
+ // group 2: "event" from "(event)"
+ var HOST_REG_EXP = /^(?:(?:\[([^\]]+)\])|(?:\(([^\)]+)\)))$/g;
+ /**
+ * Metadata regarding compilation of a type.
+ */
+ var CompileTypeMetadata = (function () {
+ function CompileTypeMetadata(_a) {
+ var _b = _a === void 0 ? {} : _a, runtime = _b.runtime, name = _b.name, moduleUrl = _b.moduleUrl, isHost = _b.isHost;
+ this.runtime = runtime;
+ this.name = name;
+ this.moduleUrl = moduleUrl;
+ this.isHost = lang_1.normalizeBool(isHost);
+ }
+ CompileTypeMetadata.fromJson = function (data) {
+ return new CompileTypeMetadata({ name: data['name'], moduleUrl: data['moduleUrl'], isHost: data['isHost'] });
+ };
+ CompileTypeMetadata.prototype.toJson = function () {
+ return {
+ // Note: Runtime type can't be serialized...
+ 'name': this.name,
+ 'moduleUrl': this.moduleUrl,
+ 'isHost': this.isHost
+ };
+ };
+ return CompileTypeMetadata;
+ })();
+ exports.CompileTypeMetadata = CompileTypeMetadata;
+ /**
+ * Metadata regarding compilation of a template.
+ */
+ var CompileTemplateMetadata = (function () {
+ function CompileTemplateMetadata(_a) {
+ var _b = _a === void 0 ? {} : _a, encapsulation = _b.encapsulation, template = _b.template, templateUrl = _b.templateUrl, styles = _b.styles, styleUrls = _b.styleUrls, ngContentSelectors = _b.ngContentSelectors;
+ this.encapsulation = lang_1.isPresent(encapsulation) ? encapsulation : view_1.ViewEncapsulation.Emulated;
+ this.template = template;
+ this.templateUrl = templateUrl;
+ this.styles = lang_1.isPresent(styles) ? styles : [];
+ this.styleUrls = lang_1.isPresent(styleUrls) ? styleUrls : [];
+ this.ngContentSelectors = lang_1.isPresent(ngContentSelectors) ? ngContentSelectors : [];
+ }
+ CompileTemplateMetadata.fromJson = function (data) {
+ return new CompileTemplateMetadata({
+ encapsulation: lang_1.isPresent(data['encapsulation']) ?
+ view_1.VIEW_ENCAPSULATION_VALUES[data['encapsulation']] :
+ data['encapsulation'],
+ template: data['template'],
+ templateUrl: data['templateUrl'],
+ styles: data['styles'],
+ styleUrls: data['styleUrls'],
+ ngContentSelectors: data['ngContentSelectors']
+ });
+ };
+ CompileTemplateMetadata.prototype.toJson = function () {
+ return {
+ 'encapsulation': lang_1.isPresent(this.encapsulation) ? lang_1.serializeEnum(this.encapsulation) : this.encapsulation,
+ 'template': this.template,
+ 'templateUrl': this.templateUrl,
+ 'styles': this.styles,
+ 'styleUrls': this.styleUrls,
+ 'ngContentSelectors': this.ngContentSelectors
+ };
+ };
+ return CompileTemplateMetadata;
+ })();
+ exports.CompileTemplateMetadata = CompileTemplateMetadata;
+ /**
+ * Metadata regarding compilation of a directive.
+ */
+ var CompileDirectiveMetadata = (function () {
+ function CompileDirectiveMetadata(_a) {
+ var _b = _a === void 0 ? {} : _a, type = _b.type, isComponent = _b.isComponent, dynamicLoadable = _b.dynamicLoadable, selector = _b.selector, exportAs = _b.exportAs, changeDetection = _b.changeDetection, inputs = _b.inputs, outputs = _b.outputs, hostListeners = _b.hostListeners, hostProperties = _b.hostProperties, hostAttributes = _b.hostAttributes, lifecycleHooks = _b.lifecycleHooks, template = _b.template;
+ this.type = type;
+ this.isComponent = isComponent;
+ this.dynamicLoadable = dynamicLoadable;
+ this.selector = selector;
+ this.exportAs = exportAs;
+ this.changeDetection = changeDetection;
+ this.inputs = inputs;
+ this.outputs = outputs;
+ this.hostListeners = hostListeners;
+ this.hostProperties = hostProperties;
+ this.hostAttributes = hostAttributes;
+ this.lifecycleHooks = lifecycleHooks;
+ this.template = template;
+ }
+ CompileDirectiveMetadata.create = function (_a) {
+ var _b = _a === void 0 ? {} : _a, type = _b.type, isComponent = _b.isComponent, dynamicLoadable = _b.dynamicLoadable, selector = _b.selector, exportAs = _b.exportAs, changeDetection = _b.changeDetection, inputs = _b.inputs, outputs = _b.outputs, host = _b.host, lifecycleHooks = _b.lifecycleHooks, template = _b.template;
+ var hostListeners = {};
+ var hostProperties = {};
+ var hostAttributes = {};
+ if (lang_1.isPresent(host)) {
+ collection_1.StringMapWrapper.forEach(host, function (value, key) {
+ var matches = lang_1.RegExpWrapper.firstMatch(HOST_REG_EXP, key);
+ if (lang_1.isBlank(matches)) {
+ hostAttributes[key] = value;
+ }
+ else if (lang_1.isPresent(matches[1])) {
+ hostProperties[matches[1]] = value;
+ }
+ else if (lang_1.isPresent(matches[2])) {
+ hostListeners[matches[2]] = value;
+ }
+ });
+ }
+ var inputsMap = {};
+ if (lang_1.isPresent(inputs)) {
+ inputs.forEach(function (bindConfig) {
+ // canonical syntax: `dirProp: elProp`
+ // if there is no `:`, use dirProp = elProp
+ var parts = util_1.splitAtColon(bindConfig, [bindConfig, bindConfig]);
+ inputsMap[parts[0]] = parts[1];
+ });
+ }
+ var outputsMap = {};
+ if (lang_1.isPresent(outputs)) {
+ outputs.forEach(function (bindConfig) {
+ // canonical syntax: `dirProp: elProp`
+ // if there is no `:`, use dirProp = elProp
+ var parts = util_1.splitAtColon(bindConfig, [bindConfig, bindConfig]);
+ outputsMap[parts[0]] = parts[1];
+ });
+ }
+ return new CompileDirectiveMetadata({
+ type: type,
+ isComponent: lang_1.normalizeBool(isComponent),
+ dynamicLoadable: lang_1.normalizeBool(dynamicLoadable),
+ selector: selector,
+ exportAs: exportAs,
+ changeDetection: changeDetection,
+ inputs: inputsMap,
+ outputs: outputsMap,
+ hostListeners: hostListeners,
+ hostProperties: hostProperties,
+ hostAttributes: hostAttributes,
+ lifecycleHooks: lang_1.isPresent(lifecycleHooks) ? lifecycleHooks : [],
+ template: template
+ });
+ };
+ CompileDirectiveMetadata.fromJson = function (data) {
+ return new CompileDirectiveMetadata({
+ isComponent: data['isComponent'],
+ dynamicLoadable: data['dynamicLoadable'],
+ selector: data['selector'],
+ exportAs: data['exportAs'],
+ type: lang_1.isPresent(data['type']) ? CompileTypeMetadata.fromJson(data['type']) : data['type'],
+ changeDetection: lang_1.isPresent(data['changeDetection']) ?
+ change_detection_1.CHANGE_DETECTION_STRATEGY_VALUES[data['changeDetection']] :
+ data['changeDetection'],
+ inputs: data['inputs'],
+ outputs: data['outputs'],
+ hostListeners: data['hostListeners'],
+ hostProperties: data['hostProperties'],
+ hostAttributes: data['hostAttributes'],
+ lifecycleHooks: data['lifecycleHooks'].map(function (hookValue) { return interfaces_1.LIFECYCLE_HOOKS_VALUES[hookValue]; }),
+ template: lang_1.isPresent(data['template']) ? CompileTemplateMetadata.fromJson(data['template']) :
+ data['template']
+ });
+ };
+ CompileDirectiveMetadata.prototype.toJson = function () {
+ return {
+ 'isComponent': this.isComponent,
+ 'dynamicLoadable': this.dynamicLoadable,
+ 'selector': this.selector,
+ 'exportAs': this.exportAs,
+ 'type': lang_1.isPresent(this.type) ? this.type.toJson() : this.type,
+ 'changeDetection': lang_1.isPresent(this.changeDetection) ? lang_1.serializeEnum(this.changeDetection) :
+ this.changeDetection,
+ 'inputs': this.inputs,
+ 'outputs': this.outputs,
+ 'hostListeners': this.hostListeners,
+ 'hostProperties': this.hostProperties,
+ 'hostAttributes': this.hostAttributes,
+ 'lifecycleHooks': this.lifecycleHooks.map(function (hook) { return lang_1.serializeEnum(hook); }),
+ 'template': lang_1.isPresent(this.template) ? this.template.toJson() : this.template
+ };
+ };
+ return CompileDirectiveMetadata;
+ })();
+ exports.CompileDirectiveMetadata = CompileDirectiveMetadata;
+ /**
+ * Construct {@link CompileDirectiveMetadata} from {@link ComponentTypeMetadata} and a selector.
+ */
+ function createHostComponentMeta(componentType, componentSelector) {
+ var template = selector_1.CssSelector.parse(componentSelector)[0].getMatchingElementTemplate();
+ return CompileDirectiveMetadata.create({
+ type: new CompileTypeMetadata({
+ runtime: Object,
+ name: "Host" + componentType.name,
+ moduleUrl: componentType.moduleUrl,
+ isHost: true
+ }),
+ template: new CompileTemplateMetadata({ template: template, templateUrl: '', styles: [], styleUrls: [], ngContentSelectors: [] }),
+ changeDetection: change_detection_1.ChangeDetectionStrategy.Default,
+ inputs: [],
+ outputs: [],
+ host: {},
+ lifecycleHooks: [],
+ isComponent: true,
+ dynamicLoadable: false,
+ selector: '*'
+ });
+ }
+ exports.createHostComponentMeta = createHostComponentMeta;
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlX21ldGFkYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW5ndWxhcjIvc3JjL2NvbXBpbGVyL2RpcmVjdGl2ZV9tZXRhZGF0YS50cyJdLCJuYW1lcyI6WyJDb21waWxlVHlwZU1ldGFkYXRhIiwiQ29tcGlsZVR5cGVNZXRhZGF0YS5jb25zdHJ1Y3RvciIsIkNvbXBpbGVUeXBlTWV0YWRhdGEuZnJvbUpzb24iLCJDb21waWxlVHlwZU1ldGFkYXRhLnRvSnNvbiIsIkNvbXBpbGVUZW1wbGF0ZU1ldGFkYXRhIiwiQ29tcGlsZVRlbXBsYXRlTWV0YWRhdGEuY29uc3RydWN0b3IiLCJDb21waWxlVGVtcGxhdGVNZXRhZGF0YS5mcm9tSnNvbiIsIkNvbXBpbGVUZW1wbGF0ZU1ldGFkYXRhLnRvSnNvbiIsIkNvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YSIsIkNvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YS5jb25zdHJ1Y3RvciIsIkNvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YS5jcmVhdGUiLCJDb21waWxlRGlyZWN0aXZlTWV0YWRhdGEuZnJvbUpzb24iLCJDb21waWxlRGlyZWN0aXZlTWV0YWRhdGEudG9Kc29uIiwiY3JlYXRlSG9zdENvbXBvbmVudE1ldGEiXSwibWFwcGluZ3MiOiJBQUFBLHFCQVFPLDBCQUEwQixDQUFDLENBQUE7QUFDbEMsMkJBQStCLGdDQUFnQyxDQUFDLENBQUE7QUFDaEUsaUNBR08scURBQXFELENBQUMsQ0FBQTtBQUM3RCxxQkFBMkQsaUNBQWlDLENBQUMsQ0FBQTtBQUM3Rix5QkFBMEIsZ0NBQWdDLENBQUMsQ0FBQTtBQUMzRCxxQkFBMkIsUUFBUSxDQUFDLENBQUE7QUFDcEMsMkJBQXFELHFDQUFxQyxDQUFDLENBQUE7QUFFM0Ysd0NBQXdDO0FBQ3hDLGtDQUFrQztBQUNsQyxJQUFJLFlBQVksR0FBRywwQ0FBMEMsQ0FBQztBQUU5RDs7R0FFRztBQUNIO0lBS0VBLDZCQUFZQSxFQUM4RUE7aUNBQUZDLEVBQUVBLE9B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QUVBLEtBQUtBO1FBQ3RCQSxRQUFRQSxFQUFFQSxHQUFHQTtLQUNkQSxDQUFDQSxDQUFDQTtBQUNMQSxDQUFDQTtBQXJCZSwrQkFBdUIsMEJBcUJ0QyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaXNQcmVzZW50LFxuICBpc0JsYW5rLFxuICBub3JtYWxpemVCb29sLFxuICBzZXJpYWxpemVFbnVtLFxuICBUeXBlLFxuICBSZWdFeHBXcmFwcGVyLFxuICBTdHJpbmdXcmFwcGVyXG59IGZyb20gJ2FuZ3VsYXIyL3NyYy9mYWNhZGUvbGFuZyc7XG5pbXBvcnQge1N0cmluZ01hcFdyYXBwZXJ9IGZyb20gJ2FuZ3VsYXIyL3NyYy9mYWNhZGUvY29sbGVjdGlvbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ0hBTkdFX0RFVEVDVElPTl9TVFJBVEVHWV9WQUxVRVNcbn0gZnJvbSAnYW5ndWxhcjIvc3JjL2NvcmUvY2hhbmdlX2RldGVjdGlvbi9jaGFuZ2VfZGV0ZWN0aW9uJztcbmltcG9ydCB7Vmlld0VuY2Fwc3VsYXRpb24sIFZJRVdfRU5DQVBTVUxBVElPTl9WQUxVRVN9IGZyb20gJ2FuZ3VsYXIyL3NyYy9jb3JlL21ldGFkYXRhL3ZpZXcnO1xuaW1wb3J0IHtDc3NTZWxlY3Rvcn0gZnJvbSAnYW5ndWxhcjIvc3JjL2NvbXBpbGVyL3NlbGVjdG9yJztcbmltcG9ydCB7c3BsaXRBdENvbG9ufSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHtMaWZlY3ljbGVIb29rcywgTElGRUNZQ0xFX0hPT0tTX1ZBTFVFU30gZnJvbSAnYW5ndWxhcjIvc3JjL2NvcmUvbGlua2VyL2ludGVyZmFjZXMnO1xuXG4vLyBncm91cCAxOiBcInByb3BlcnR5XCIgZnJvbSBcIltwcm9wZXJ0eV1cIlxuLy8gZ3JvdXAgMjogXCJldmVudFwiIGZyb20gXCIoZXZlbnQpXCJcbnZhciBIT1NUX1JFR19FWFAgPSAvXig/Oig/OlxcWyhbXlxcXV0rKVxcXSl8KD86XFwoKFteXFwpXSspXFwpKSkkL2c7XG5cbi8qKlxuICogTWV0YWRhdGEgcmVnYXJkaW5nIGNvbXBpbGF0aW9uIG9mIGEgdHlwZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbXBpbGVUeXBlTWV0YWRhdGEge1xuICBydW50aW1lOiBUeXBlO1xuICBuYW1lOiBzdHJpbmc7XG4gIG1vZHVsZVVybDogc3RyaW5nO1xuICBpc0hvc3Q6IGJvb2xlYW47XG4gIGNvbnN0cnVjdG9yKHtydW50aW1lLCBuYW1lLCBtb2R1bGVVcmwsIGlzSG9zdH06XG4gICAgICAgICAgICAgICAgICB7cnVudGltZT86IFR5cGUsIG5hbWU/OiBzdHJpbmcsIG1vZHVsZVVybD86IHN0cmluZywgaXNIb3N0PzogYm9vbGVhbn0gPSB7fSkge1xuICAgIHRoaXMucnVudGltZSA9IHJ1bnRpbWU7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLm1vZHVsZVVybCA9IG1vZHVsZVVybDtcbiAgICB0aGlzLmlzSG9zdCA9IG5vcm1hbGl6ZUJvb2woaXNIb3N0KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSnNvbihkYXRhOiB7W2tleTogc3RyaW5nXTogYW55fSk6IENvbXBpbGVUeXBlTWV0YWRhdGEge1xuICAgIHJldHVybiBuZXcgQ29tcGlsZVR5cGVNZXRhZGF0YShcbiAgICAgICAge25hbWU6IGRhdGFbJ25hbWUnXSwgbW9kdWxlVXJsOiBkYXRhWydtb2R1bGVVcmwnXSwgaXNIb3N0OiBkYXRhWydpc0hvc3QnXX0pO1xuICB9XG5cbiAgdG9Kc29uKCk6IHtba2V5OiBzdHJpbmddOiBhbnl9IHtcbiAgICByZXR1cm4ge1xuICAgICAgLy8gTm90ZTogUnVudGltZSB0eXBlIGNhbid0IGJlIHNlcmlhbGl6ZWQuLi5cbiAgICAgICduYW1lJzogdGhpcy5uYW1lLFxuICAgICAgJ21vZHVsZVVybCc6IHRoaXMubW9kdWxlVXJsLFxuICAgICAgJ2lzSG9zdCc6IHRoaXMuaXNIb3N0XG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIE1ldGFkYXRhIHJlZ2FyZGluZyBjb21waWxhdGlvbiBvZiBhIHRlbXBsYXRlLlxuICovXG5leHBvcnQgY2xhc3MgQ29tcGlsZVRlbXBsYXRlTWV0YWRhdGEge1xuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbjtcbiAgdGVtcGxhdGU6IHN0cmluZztcbiAgdGVtcGxhdGVVcmw6IHN0cmluZztcbiAgc3R5bGVzOiBzdHJpbmdbXTtcbiAgc3R5bGVVcmxzOiBzdHJpbmdbXTtcbiAgbmdDb250ZW50U2VsZWN0b3JzOiBzdHJpbmdbXTtcbiAgY29uc3RydWN0b3Ioe2VuY2Fwc3VsYXRpb24sIHRlbXBsYXRlLCB0ZW1wbGF0ZVVybCwgc3R5bGVzLCBzdHlsZVVybHMsIG5nQ29udGVudFNlbGVjdG9yc306IHtcbiAgICBlbmNhcHN1bGF0aW9uPzogVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgdGVtcGxhdGU/OiBzdHJpbmcsXG4gICAgdGVtcGxhdGVVcmw/OiBzdHJpbmcsXG4gICAgc3R5bGVzPzogc3RyaW5nW10sXG4gICAgc3R5bGVVcmxzPzogc3RyaW5nW10sXG4gICAgbmdDb250ZW50U2VsZWN0b3JzPzogc3RyaW5nW11cbiAgfSA9IHt9KSB7XG4gICAgdGhpcy5lbmNhcHN1bGF0aW9uID0gaXNQcmVzZW50KGVuY2Fwc3VsYXRpb24pID8gZW5jYXBzdWxhdGlvbiA6IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkO1xuICAgIHRoaXMudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICB0aGlzLnRlbXBsYXRlVXJsID0gdGVtcGxhdGVVcmw7XG4gICAgdGhpcy5zdHlsZXMgPSBpc1ByZXNlbnQoc3R5bGVzKSA/IHN0eWxlcyA6IFtdO1xuICAgIHRoaXMuc3R5bGVVcmxzID0gaXNQcmVzZW50KHN0eWxlVXJscykgPyBzdHlsZVVybHMgOiBbXTtcbiAgICB0aGlzLm5nQ29udGVudFNlbGVjdG9ycyA9IGlzUHJlc2VudChuZ0NvbnRlbnRTZWxlY3RvcnMpID8gbmdDb250ZW50U2VsZWN0b3JzIDogW107XG4gIH1cblxuICBzdGF0aWMgZnJvbUpzb24oZGF0YToge1trZXk6IHN0cmluZ106IGFueX0pOiBDb21waWxlVGVtcGxhdGVNZXRhZGF0YSB7XG4gICAgcmV0dXJuIG5ldyBDb21waWxlVGVtcGxhdGVNZXRhZGF0YSh7XG4gICAgICBlbmNhcHN1bGF0aW9uOiBpc1ByZXNlbnQoZGF0YVsnZW5jYXBzdWxhdGlvbiddKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgVklFV19FTkNBUFNVTEFUSU9OX1ZBTFVFU1tkYXRhWydlbmNhcHN1bGF0aW9uJ11dIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWydlbmNhcHN1bGF0aW9uJ10sXG4gICAgICB0ZW1wbGF0ZTogZGF0YVsndGVtcGxhdGUnXSxcbiAgICAgIHRlbXBsYXRlVXJsOiBkYXRhWyd0ZW1wbGF0ZVVybCddLFxuICAgICAgc3R5bGVzOiBkYXRhWydzdHlsZXMnXSxcbiAgICAgIHN0eWxlVXJsczogZGF0YVsnc3R5bGVVcmxzJ10sXG4gICAgICBuZ0NvbnRlbnRTZWxlY3RvcnM6IGRhdGFbJ25nQ29udGVudFNlbGVjdG9ycyddXG4gICAgfSk7XG4gIH1cblxuICB0b0pzb24oKToge1trZXk6IHN0cmluZ106IGFueX0ge1xuICAgIHJldHVybiB7XG4gICAgICAnZW5jYXBzdWxhdGlvbic6XG4gICAgICAgICAgaXNQcmVzZW50KHRoaXMuZW5jYXBzdWxhdGlvbikgPyBzZXJpYWxpemVFbnVtKHRoaXMuZW5jYXBzdWxhdGlvbikgOiB0aGlzLmVuY2Fwc3VsYXRpb24sXG4gICAgICAndGVtcGxhdGUnOiB0aGlzLnRlbXBsYXRlLFxuICAgICAgJ3RlbXBsYXRlVXJsJzogdGhpcy50ZW1wbGF0ZVVybCxcbiAgICAgICdzdHlsZXMnOiB0aGlzLnN0eWxlcyxcbiAgICAgICdzdHlsZVVybHMnOiB0aGlzLnN0eWxlVXJscyxcbiAgICAgICduZ0NvbnRlbnRTZWxlY3RvcnMnOiB0aGlzLm5nQ29udGVudFNlbGVjdG9yc1xuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBNZXRhZGF0YSByZWdhcmRpbmcgY29tcGlsYXRpb24gb2YgYSBkaXJlY3RpdmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21waWxlRGlyZWN0aXZlTWV0YWRhdGEge1xuICBzdGF0aWMgY3JlYXRlKHt0eXBlLCBpc0NvbXBvbmVudCwgZHluYW1pY0xvYWRhYmxlLCBzZWxlY3RvciwgZXhwb3J0QXMsIGNoYW5nZURldGVjdGlvbiwgaW5wdXRzLFxuICAgICAgICAgICAgICAgICBvdXRwdXRzLCBob3N0LCBsaWZlY3ljbGVIb29rcywgdGVtcGxhdGV9OiB7XG4gICAgdHlwZT86IENvbXBpbGVUeXBlTWV0YWRhdGEsXG4gICAgaXNDb21wb25lbnQ/OiBib29sZWFuLFxuICAgIGR5bmFtaWNMb2FkYWJsZT86IGJvb2xlYW4sXG4gICAgc2VsZWN0b3I/OiBzdHJpbmcsXG4gICAgZXhwb3J0QXM/OiBzdHJpbmcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uPzogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgaW5wdXRzPzogc3RyaW5nW10sXG4gICAgb3V0cHV0cz86IHN0cmluZ1tdLFxuICAgIGhvc3Q/OiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSxcbiAgICBsaWZlY3ljbGVIb29rcz86IExpZmVjeWNsZUhvb2tzW10sXG4gICAgdGVtcGxhdGU/OiBDb21waWxlVGVtcGxhdGVNZXRhZGF0YVxuICB9ID0ge30pOiBDb21waWxlRGlyZWN0aXZlTWV0YWRhdGEge1xuICAgIHZhciBob3N0TGlzdGVuZXJzOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHt9O1xuICAgIHZhciBob3N0UHJvcGVydGllczoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7fTtcbiAgICB2YXIgaG9zdEF0dHJpYnV0ZXM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge307XG4gICAgaWYgKGlzUHJlc2VudChob3N0KSkge1xuICAgICAgU3RyaW5nTWFwV3JhcHBlci5mb3JFYWNoKGhvc3QsICh2YWx1ZTogc3RyaW5nLCBrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICB2YXIgbWF0Y2hlcyA9IFJlZ0V4cFdyYXBwZXIuZmlyc3RNYXRjaChIT1NUX1JFR19FWFAsIGtleSk7XG4gICAgICAgIGlmIChpc0JsYW5rKG1hdGNoZXMpKSB7XG4gICAgICAgICAgaG9zdEF0dHJpYnV0ZXNba2V5XSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKGlzUHJlc2VudChtYXRjaGVzWzFdKSkge1xuICAgICAgICAgIGhvc3RQcm9wZXJ0aWVzW21hdGNoZXNbMV1dID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNQcmVzZW50KG1hdGNoZXNbMl0pKSB7XG4gICAgICAgICAgaG9zdExpc3RlbmVyc1ttYXRjaGVzWzJdXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgdmFyIGlucHV0c01hcDoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7fTtcbiAgICBpZiAoaXNQcmVzZW50KGlucHV0cykpIHtcbiAgICAgIGlucHV0cy5mb3JFYWNoKChiaW5kQ29uZmlnOiBzdHJpbmcpID0+IHtcbiAgICAgICAgLy8gY2Fub25pY2FsIHN5bnRheDogYGRpclByb3A6IGVsUHJvcGBcbiAgICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gYDpgLCB1c2UgZGlyUHJvcCA9IGVsUHJvcFxuICAgICAgICB2YXIgcGFydHMgPSBzcGxpdEF0Q29sb24oYmluZENvbmZpZywgW2JpbmRDb25maWcsIGJpbmRDb25maWddKTtcbiAgICAgICAgaW5wdXRzTWFwW3BhcnRzWzBdXSA9IHBhcnRzWzFdO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHZhciBvdXRwdXRzTWFwOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHt9O1xuICAgIGlmIChpc1ByZXNlbnQob3V0cHV0cykpIHtcbiAgICAgIG91dHB1dHMuZm9yRWFjaCgoYmluZENvbmZpZzogc3RyaW5nKSA9PiB7XG4gICAgICAgIC8vIGNhbm9uaWNhbCBzeW50YXg6IGBkaXJQcm9wOiBlbFByb3BgXG4gICAgICAgIC8vIGlmIHRoZXJlIGlzIG5vIGA6YCwgdXNlIGRpclByb3AgPSBlbFByb3BcbiAgICAgICAgdmFyIHBhcnRzID0gc3BsaXRBdENvbG9uKGJpbmRDb25maWcsIFtiaW5kQ29uZmlnLCBiaW5kQ29uZmlnXSk7XG4gICAgICAgIG91dHB1dHNNYXBbcGFydHNbMF1dID0gcGFydHNbMV07XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YSh7XG4gICAgICB0eXBlOiB0eXBlLFxuICAgICAgaXNDb21wb25lbnQ6IG5vcm1hbGl6ZUJvb2woaXNDb21wb25lbnQpLFxuICAgICAgZHluYW1pY0xvYWRhYmxlOiBub3JtYWxpemVCb29sKGR5bmFtaWNMb2FkYWJsZSksXG4gICAgICBzZWxlY3Rvcjogc2VsZWN0b3IsXG4gICAgICBleHBvcnRBczogZXhwb3J0QXMsXG4gICAgICBjaGFuZ2VEZXRlY3Rpb246IGNoYW5nZURldGVjdGlvbixcbiAgICAgIGlucHV0czogaW5wdXRzTWFwLFxuICAgICAgb3V0cHV0czogb3V0cHV0c01hcCxcbiAgICAgIGhvc3RMaXN0ZW5lcnM6IGhvc3RMaXN0ZW5lcnMsXG4gICAgICBob3N0UHJvcGVydGllczogaG9zdFByb3BlcnRpZXMsXG4gICAgICBob3N0QXR0cmlidXRlczogaG9zdEF0dHJpYnV0ZXMsXG4gICAgICBsaWZlY3ljbGVIb29rczogaXNQcmVzZW50KGxpZmVjeWNsZUhvb2tzKSA/IGxpZmVjeWNsZUhvb2tzIDogW10sXG4gICAgICB0ZW1wbGF0ZTogdGVtcGxhdGVcbiAgICB9KTtcbiAgfVxuXG4gIHR5cGU6IENvbXBpbGVUeXBlTWV0YWRhdGE7XG4gIGlzQ29tcG9uZW50OiBib29sZWFuO1xuICBkeW5hbWljTG9hZGFibGU6IGJvb2xlYW47XG4gIHNlbGVjdG9yOiBzdHJpbmc7XG4gIGV4cG9ydEFzOiBzdHJpbmc7XG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3k7XG4gIGlucHV0czoge1trZXk6IHN0cmluZ106IHN0cmluZ307XG4gIG91dHB1dHM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xuICBob3N0TGlzdGVuZXJzOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfTtcbiAgaG9zdFByb3BlcnRpZXM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xuICBob3N0QXR0cmlidXRlczoge1trZXk6IHN0cmluZ106IHN0cmluZ307XG4gIGxpZmVjeWNsZUhvb2tzOiBMaWZlY3ljbGVIb29rc1tdO1xuICB0ZW1wbGF0ZTogQ29tcGlsZVRlbXBsYXRlTWV0YWRhdGE7XG4gIGNvbnN0cnVjdG9yKHt0eXBlLCBpc0NvbXBvbmVudCwgZHluYW1pY0xvYWRhYmxlLCBzZWxlY3RvciwgZXhwb3J0QXMsIGNoYW5nZURldGVjdGlvbiwgaW5wdXRzLFxuICAgICAgICAgICAgICAgb3V0cHV0cywgaG9zdExpc3RlbmVycywgaG9zdFByb3BlcnRpZXMsIGhvc3RBdHRyaWJ1dGVzLCBsaWZlY3ljbGVIb29rcywgdGVtcGxhdGV9OiB7XG4gICAgdHlwZT86IENvbXBpbGVUeXBlTWV0YWRhdGEsXG4gICAgaXNDb21wb25lbnQ/OiBib29sZWFuLFxuICAgIGR5bmFtaWNMb2FkYWJsZT86IGJvb2xlYW4sXG4gICAgc2VsZWN0b3I/OiBzdHJpbmcsXG4gICAgZXhwb3J0QXM/OiBzdHJpbmcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uPzogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgaW5wdXRzPzoge1trZXk6IHN0cmluZ106IHN0cmluZ30sXG4gICAgb3V0cHV0cz86IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9LFxuICAgIGhvc3RMaXN0ZW5lcnM/OiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSxcbiAgICBob3N0UHJvcGVydGllcz86IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9LFxuICAgIGhvc3RBdHRyaWJ1dGVzPzoge1trZXk6IHN0cmluZ106IHN0cmluZ30sXG4gICAgbGlmZWN5Y2xlSG9va3M/OiBMaWZlY3ljbGVIb29rc1tdLFxuICAgIHRlbXBsYXRlPzogQ29tcGlsZVRlbXBsYXRlTWV0YWRhdGFcbiAgfSA9IHt9KSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLmlzQ29tcG9uZW50ID0gaXNDb21wb25lbnQ7XG4gICAgdGhpcy5keW5hbWljTG9hZGFibGUgPSBkeW5hbWljTG9hZGFibGU7XG4gICAgdGhpcy5zZWxlY3RvciA9IHNlbGVjdG9yO1xuICAgIHRoaXMuZXhwb3J0QXMgPSBleHBvcnRBcztcbiAgICB0aGlzLmNoYW5nZURldGVjdGlvbiA9IGNoYW5nZURldGVjdGlvbjtcbiAgICB0aGlzLmlucHV0cyA9IGlucHV0cztcbiAgICB0aGlzLm91dHB1dHMgPSBvdXRwdXRzO1xuICAgIHRoaXMuaG9zdExpc3RlbmVycyA9IGhvc3RMaXN0ZW5lcnM7XG4gICAgdGhpcy5ob3N0UHJvcGVydGllcyA9IGhvc3RQcm9wZXJ0aWVzO1xuICAgIHRoaXMuaG9zdEF0dHJpYnV0ZXMgPSBob3N0QXR0cmlidXRlcztcbiAgICB0aGlzLmxpZmVjeWNsZUhvb2tzID0gbGlmZWN5Y2xlSG9va3M7XG4gICAgdGhpcy50ZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Kc29uKGRhdGE6IHtba2V5OiBzdHJpbmddOiBhbnl9KTogQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhIHtcbiAgICByZXR1cm4gbmV3IENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YSh7XG4gICAgICBpc0NvbXBvbmVudDogZGF0YVsnaXNDb21wb25lbnQnXSxcbiAgICAgIGR5bmFtaWNMb2FkYWJsZTogZGF0YVsnZHluYW1pY0xvYWRhYmxlJ10sXG4gICAgICBzZWxlY3RvcjogZGF0YVsnc2VsZWN0b3InXSxcbiAgICAgIGV4cG9ydEFzOiBkYXRhWydleHBvcnRBcyddLFxuICAgICAgdHlwZTogaXNQcmVzZW50KGRhdGFbJ3R5cGUnXSkgPyBDb21waWxlVHlwZU1ldGFkYXRhLmZyb21Kc29uKGRhdGFbJ3R5cGUnXSkgOiBkYXRhWyd0eXBlJ10sXG4gICAgICBjaGFuZ2VEZXRlY3Rpb246IGlzUHJlc2VudChkYXRhWydjaGFuZ2VEZXRlY3Rpb24nXSkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0hBTkdFX0RFVEVDVElPTl9TVFJBVEVHWV9WQUxVRVNbZGF0YVsnY2hhbmdlRGV0ZWN0aW9uJ11dIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbJ2NoYW5nZURldGVjdGlvbiddLFxuICAgICAgaW5wdXRzOiBkYXRhWydpbnB1dHMnXSxcbiAgICAgIG91dHB1dHM6IGRhdGFbJ291dHB1dHMnXSxcbiAgICAgIGhvc3RMaXN0ZW5lcnM6IGRhdGFbJ2hvc3RMaXN0ZW5lcnMnXSxcbiAgICAgIGhvc3RQcm9wZXJ0aWVzOiBkYXRhWydob3N0UHJvcGVydGllcyddLFxuICAgICAgaG9zdEF0dHJpYnV0ZXM6IGRhdGFbJ2hvc3RBdHRyaWJ1dGVzJ10sXG4gICAgICBsaWZlY3ljbGVIb29rczpcbiAgICAgICAgICAoPGFueVtdPmRhdGFbJ2xpZmVjeWNsZUhvb2tzJ10pLm1hcChob29rVmFsdWUgPT4gTElGRUNZQ0xFX0hPT0tTX1ZBTFVFU1tob29rVmFsdWVdKSxcbiAgICAgIHRlbXBsYXRlOiBpc1ByZXNlbnQoZGF0YVsndGVtcGxhdGUnXSkgPyBDb21waWxlVGVtcGxhdGVNZXRhZGF0YS5mcm9tSnNvbihkYXRhWyd0ZW1wbGF0ZSddKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsndGVtcGxhdGUnXVxuICAgIH0pO1xuICB9XG5cbiAgdG9Kc29uKCk6IHtba2V5OiBzdHJpbmddOiBhbnl9IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2lzQ29tcG9uZW50JzogdGhpcy5pc0NvbXBvbmVudCxcbiAgICAgICdkeW5hbWljTG9hZGFibGUnOiB0aGlzLmR5bmFtaWNMb2FkYWJsZSxcbiAgICAgICdzZWxlY3Rvcic6IHRoaXMuc2VsZWN0b3IsXG4gICAgICAnZXhwb3J0QXMnOiB0aGlzLmV4cG9ydEFzLFxuICAgICAgJ3R5cGUnOiBpc1ByZXNlbnQodGhpcy50eXBlKSA/IHRoaXMudHlwZS50b0pzb24oKSA6IHRoaXMudHlwZSxcbiAgICAgICdjaGFuZ2VEZXRlY3Rpb24nOiBpc1ByZXNlbnQodGhpcy5jaGFuZ2VEZXRlY3Rpb24pID8gc2VyaWFsaXplRW51bSh0aGlzLmNoYW5nZURldGVjdGlvbikgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdGlvbixcbiAgICAgICdpbnB1dHMnOiB0aGlzLmlucHV0cyxcbiAgICAgICdvdXRwdXRzJzogdGhpcy5vdXRwdXRzLFxuICAgICAgJ2hvc3RMaXN0ZW5lcnMnOiB0aGlzLmhvc3RMaXN0ZW5lcnMsXG4gICAgICAnaG9zdFByb3BlcnRpZXMnOiB0aGlzLmhvc3RQcm9wZXJ0aWVzLFxuICAgICAgJ2hvc3RBdHRyaWJ1dGVzJzogdGhpcy5ob3N0QXR0cmlidXRlcyxcbiAgICAgICdsaWZlY3ljbGVIb29rcyc6IHRoaXMubGlmZWN5Y2xlSG9va3MubWFwKGhvb2sgPT4gc2VyaWFsaXplRW51bShob29rKSksXG4gICAgICAndGVtcGxhdGUnOiBpc1ByZXNlbnQodGhpcy50ZW1wbGF0ZSkgPyB0aGlzLnRlbXBsYXRlLnRvSnNvbigpIDogdGhpcy50ZW1wbGF0ZVxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3Qge0BsaW5rIENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YX0gZnJvbSB7QGxpbmsgQ29tcG9uZW50VHlwZU1ldGFkYXRhfSBhbmQgYSBzZWxlY3Rvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUhvc3RDb21wb25lbnRNZXRhKGNvbXBvbmVudFR5cGU6IENvbXBpbGVUeXBlTWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50U2VsZWN0b3I6IHN0cmluZyk6IENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YSB7XG4gIHZhciB0ZW1wbGF0ZSA9IENzc1NlbGVjdG9yLnBhcnNlKGNvbXBvbmVudFNlbGVjdG9yKVswXS5nZXRNYXRjaGluZ0VsZW1lbnRUZW1wbGF0ZSgpO1xuICByZXR1cm4gQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhLmNyZWF0ZSh7XG4gICAgdHlwZTogbmV3IENvbXBpbGVUeXBlTWV0YWRhdGEoe1xuICAgICAgcnVudGltZTogT2JqZWN0LFxuICAgICAgbmFtZTogYEhvc3Qke2NvbXBvbmVudFR5cGUubmFtZX1gLFxuICAgICAgbW9kdWxlVXJsOiBjb21wb25lbnRUeXBlLm1vZHVsZVVybCxcbiAgICAgIGlzSG9zdDogdHJ1ZVxuICAgIH0pLFxuICAgIHRlbXBsYXRlOiBuZXcgQ29tcGlsZVRlbXBsYXRlTWV0YWRhdGEoXG4gICAgICAgIHt0ZW1wbGF0ZTogdGVtcGxhdGUsIHRlbXBsYXRlVXJsOiAnJywgc3R5bGVzOiBbXSwgc3R5bGVVcmxzOiBbXSwgbmdDb250ZW50U2VsZWN0b3JzOiBbXX0pLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgICBpbnB1dHM6IFtdLFxuICAgIG91dHB1dHM6IFtdLFxuICAgIGhvc3Q6IHt9LFxuICAgIGxpZmVjeWNsZUhvb2tzOiBbXSxcbiAgICBpc0NvbXBvbmVudDogdHJ1ZSxcbiAgICBkeW5hbWljTG9hZGFibGU6IGZhbHNlLFxuICAgIHNlbGVjdG9yOiAnKidcbiAgfSk7XG59XG4iXX0=
+
+/***/ },
+/* 47 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';var lang_1 = __webpack_require__(1);
+ /**
+ * A segment of text within the template.
+ */
+ var TextAst = (function () {
+ function TextAst(value, ngContentIndex, sourceSpan) {
+ this.value = value;
+ this.ngContentIndex = ngContentIndex;
+ this.sourceSpan = sourceSpan;
+ }
+ TextAst.prototype.visit = function (visitor, context) { return visitor.visitText(this, context); };
+ return TextAst;
+ })();
+ exports.TextAst = TextAst;
+ /**
+ * A bound expression within the text of a template.
+ */
+ var BoundTextAst = (function () {
+ function BoundTextAst(value, ngContentIndex, sourceSpan) {
+ this.value = value;
+ this.ngContentIndex = ngContentIndex;
+ this.sourceSpan = sourceSpan;
+ }
+ BoundTextAst.prototype.visit = function (visitor, context) {
+ return visitor.visitBoundText(this, context);
+ };
+ return BoundTextAst;
+ })();
+ exports.BoundTextAst = BoundTextAst;
+ /**
+ * A plain attribute on an element.
+ */
+ var AttrAst = (function () {
+ function AttrAst(name, value, sourceSpan) {
+ this.name = name;
+ this.value = value;
+ this.sourceSpan = sourceSpan;
+ }
+ AttrAst.prototype.visit = function (visitor, context) { return visitor.visitAttr(this, context); };
+ return AttrAst;
+ })();
+ exports.AttrAst = AttrAst;
+ /**
+ * A binding for an element property (e.g. `[property]="expression"`).
+ */
+ var BoundElementPropertyAst = (function () {
+ function BoundElementPropertyAst(name, type, value, unit, sourceSpan) {
+ this.name = name;
+ this.type = type;
+ this.value = value;
+ this.unit = unit;
+ this.sourceSpan = sourceSpan;
+ }
+ BoundElementPropertyAst.prototype.visit = function (visitor, context) {
+ return visitor.visitElementProperty(this, context);
+ };
+ return BoundElementPropertyAst;
+ })();
+ exports.BoundElementPropertyAst = BoundElementPropertyAst;
+ /**
+ * A binding for an element event (e.g. `(event)="handler()"`).
+ */
+ var BoundEventAst = (function () {
+ function BoundEventAst(name, target, handler, sourceSpan) {
+ this.name = name;
+ this.target = target;
+ this.handler = handler;
+ this.sourceSpan = sourceSpan;
+ }
+ BoundEventAst.prototype.visit = function (visitor, context) {
+ return visitor.visitEvent(this, context);
+ };
+ Object.defineProperty(BoundEventAst.prototype, "fullName", {
+ get: function () {
+ if (lang_1.isPresent(this.target)) {
+ return this.target + ":" + this.name;
+ }
+ else {
+ return this.name;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return BoundEventAst;
+ })();
+ exports.BoundEventAst = BoundEventAst;
+ /**
+ * A variable declaration on an element (e.g. `#var="expression"`).
+ */
+ var VariableAst = (function () {
+ function VariableAst(name, value, sourceSpan) {
+ this.name = name;
+ this.value = value;
+ this.sourceSpan = sourceSpan;
+ }
+ VariableAst.prototype.visit = function (visitor, context) {
+ return visitor.visitVariable(this, context);
+ };
+ return VariableAst;
+ })();
+ exports.VariableAst = VariableAst;
+ /**
+ * An element declaration in a template.
+ */
+ var ElementAst = (function () {
+ function ElementAst(name, attrs, inputs, outputs, exportAsVars, directives, children, ngContentIndex, sourceSpan) {
+ this.name = name;
+ this.attrs = attrs;
+ this.inputs = inputs;
+ this.outputs = outputs;
+ this.exportAsVars = exportAsVars;
+ this.directives = directives;
+ this.children = children;
+ this.ngContentIndex = ngContentIndex;
+ this.sourceSpan = sourceSpan;
+ }
+ ElementAst.prototype.visit = function (visitor, context) {
+ return visitor.visitElement(this, context);
+ };
+ /**
+ * Whether the element has any active bindings (inputs, outputs, vars, or directives).
+ */
+ ElementAst.prototype.isBound = function () {
+ return (this.inputs.length > 0 || this.outputs.length > 0 || this.exportAsVars.length > 0 ||
+ this.directives.length > 0);
+ };
+ /**
+ * Get the component associated with this element, if any.
+ */
+ ElementAst.prototype.getComponent = function () {
+ return this.directives.length > 0 && this.directives[0].directive.isComponent ?
+ this.directives[0].directive :
+ null;
+ };
+ return ElementAst;
+ })();
+ exports.ElementAst = ElementAst;
+ /**
+ * A `` element included in an Angular template.
+ */
+ var EmbeddedTemplateAst = (function () {
+ function EmbeddedTemplateAst(attrs, outputs, vars, directives, children, ngContentIndex, sourceSpan) {
+ this.attrs = attrs;
+ this.outputs = outputs;
+ this.vars = vars;
+ this.directives = directives;
+ this.children = children;
+ this.ngContentIndex = ngContentIndex;
+ this.sourceSpan = sourceSpan;
+ }
+ EmbeddedTemplateAst.prototype.visit = function (visitor, context) {
+ return visitor.visitEmbeddedTemplate(this, context);
+ };
+ return EmbeddedTemplateAst;
+ })();
+ exports.EmbeddedTemplateAst = EmbeddedTemplateAst;
+ /**
+ * A directive property with a bound value (e.g. `*ngIf="condition").
+ */
+ var BoundDirectivePropertyAst = (function () {
+ function BoundDirectivePropertyAst(directiveName, templateName, value, sourceSpan) {
+ this.directiveName = directiveName;
+ this.templateName = templateName;
+ this.value = value;
+ this.sourceSpan = sourceSpan;
+ }
+ BoundDirectivePropertyAst.prototype.visit = function (visitor, context) {
+ return visitor.visitDirectiveProperty(this, context);
+ };
+ return BoundDirectivePropertyAst;
+ })();
+ exports.BoundDirectivePropertyAst = BoundDirectivePropertyAst;
+ /**
+ * A directive declared on an element.
+ */
+ var DirectiveAst = (function () {
+ function DirectiveAst(directive, inputs, hostProperties, hostEvents, exportAsVars, sourceSpan) {
+ this.directive = directive;
+ this.inputs = inputs;
+ this.hostProperties = hostProperties;
+ this.hostEvents = hostEvents;
+ this.exportAsVars = exportAsVars;
+ this.sourceSpan = sourceSpan;
+ }
+ DirectiveAst.prototype.visit = function (visitor, context) {
+ return visitor.visitDirective(this, context);
+ };
+ return DirectiveAst;
+ })();
+ exports.DirectiveAst = DirectiveAst;
+ /**
+ * Position where content is to be projected (instance of `` in a template).
+ */
+ var NgContentAst = (function () {
+ function NgContentAst(index, ngContentIndex, sourceSpan) {
+ this.index = index;
+ this.ngContentIndex = ngContentIndex;
+ this.sourceSpan = sourceSpan;
+ }
+ NgContentAst.prototype.visit = function (visitor, context) {
+ return visitor.visitNgContent(this, context);
+ };
+ return NgContentAst;
+ })();
+ exports.NgContentAst = NgContentAst;
+ /**
+ * Enumeration of types of property bindings.
+ */
+ (function (PropertyBindingType) {
+ /**
+ * A normal binding to a property (e.g. `[property]="expression"`).
+ */
+ PropertyBindingType[PropertyBindingType["Property"] = 0] = "Property";
+ /**
+ * A binding to an element attribute (e.g. `[attr.name]="expression"`).
+ */
+ PropertyBindingType[PropertyBindingType["Attribute"] = 1] = "Attribute";
+ /**
+ * A binding to a CSS class (e.g. `[class.name]="condition"`).
+ */
+ PropertyBindingType[PropertyBindingType["Class"] = 2] = "Class";
+ /**
+ * A binding to a style rule (e.g. `[style.rule]="expression"`).
+ */
+ PropertyBindingType[PropertyBindingType["Style"] = 3] = "Style";
+ })(exports.PropertyBindingType || (exports.PropertyBindingType = {}));
+ var PropertyBindingType = exports.PropertyBindingType;
+ /**
+ * Visit every node in a list of {@link TemplateAst}s with the given {@link TemplateAstVisitor}.
+ */
+ function templateVisitAll(visitor, asts, context) {
+ if (context === void 0) { context = null; }
+ var result = [];
+ asts.forEach(function (ast) {
+ var astResult = ast.visit(visitor, context);
+ if (lang_1.isPresent(astResult)) {
+ result.push(astResult);
+ }
+ });
+ return result;
+ }
+ exports.templateVisitAll = templateVisitAll;
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVfYXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW5ndWxhcjIvc3JjL2NvbXBpbGVyL3RlbXBsYXRlX2FzdC50cyJdLCJuYW1lcyI6WyJUZXh0QXN0IiwiVGV4dEFzdC5jb25zdHJ1Y3RvciIsIlRleHRBc3QudmlzaXQiLCJCb3VuZFRleHRBc3QiLCJCb3VuZFRleHRBc3QuY29uc3RydWN0b3IiLCJCb3VuZFRleHRBc3QudmlzaXQiLCJBdHRyQXN0IiwiQXR0ckFzdC5jb25zdHJ1Y3RvciIsIkF0dHJBc3QudmlzaXQiLCJCb3VuZEVsZW1lbnRQcm9wZXJ0eUFzdCIsIkJvdW5kRWxlbWVudFByb3BlcnR5QXN0LmNvbnN0cnVjdG9yIiwiQm91bmRFbGVtZW50UHJvcGVydHlBc3QudmlzaXQiLCJCb3VuZEV2ZW50QXN0IiwiQm91bmRFdmVudEFzdC5jb25zdHJ1Y3RvciIsIkJvdW5kRXZlbnRBc3QudmlzaXQiLCJCb3VuZEV2ZW50QXN0LmZ1bGxOYW1lIiwiVmFyaWFibGVBc3QiLCJWYXJpYWJsZUFzdC5jb25zdHJ1Y3RvciIsIlZhcmlhYmxlQXN0LnZpc2l0IiwiRWxlbWVudEFzdCIsIkVsZW1lbnRBc3QuY29uc3RydWN0b3IiLCJFbGVtZW50QXN0LnZpc2l0IiwiRWxlbWVudEFzdC5pc0JvdW5kIiwiRWxlbWVudEFzdC5nZXRDb21wb25lbnQiLCJFbWJlZGRlZFRlbXBsYXRlQXN0IiwiRW1iZWRkZWRUZW1wbGF0ZUFzdC5jb25zdHJ1Y3RvciIsIkVtYmVkZGVkVGVtcGxhdGVBc3QudmlzaXQiLCJCb3VuZERpcmVjdGl2ZVByb3BlcnR5QXN0IiwiQm91bmREaXJlY3RpdmVQcm9wZXJ0eUFzdC5jb25zdHJ1Y3RvciIsIkJvdW5kRGlyZWN0aXZlUHJvcGVydHlBc3QudmlzaXQiLCJEaXJlY3RpdmVBc3QiLCJEaXJlY3RpdmVBc3QuY29uc3RydWN0b3IiLCJEaXJlY3RpdmVBc3QudmlzaXQiLCJOZ0NvbnRlbnRBc3QiLCJOZ0NvbnRlbnRBc3QuY29uc3RydWN0b3IiLCJOZ0NvbnRlbnRBc3QudmlzaXQiLCJQcm9wZXJ0eUJpbmRpbmdUeXBlIiwidGVtcGxhdGVWaXNpdEFsbCJdLCJtYXBwaW5ncyI6IkFBQ0EscUJBQXdCLDBCQUEwQixDQUFDLENBQUE7QUFtQm5EOztHQUVHO0FBQ0g7SUFDRUEsaUJBQW1CQSxLQUFhQSxFQUFTQSxjQUFzQkEsRUFDNUNBLFVBQTJCQTtRQUQzQkMsVUFBS0EsR0FBTEEsS0FBS0EsQ0FBUUE7UUFBU0EsbUJBQWNBLEdBQWRBLGNBQWNBLENBQVFBO1FBQzVDQSxlQUFVQSxHQUFWQSxVQUFVQSxDQUFpQkE7SUFBR0EsQ0FBQ0E7SUFDbERELHVCQUFLQSxHQUFMQSxVQUFNQSxPQUEyQkEsRUFBRUEsT0FBWUEsSUFBU0UsTUFBTUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsSUFBSUEsRUFBRUEsT0FBT0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFDcEdGLGNBQUNBO0FBQURBLENBQUNBLEFBSkQsSUFJQztBQUpZLGVBQU8sVUFJbkIsQ0FBQTtBQUVEOztHQUVHO0FBQ0g7SUFDRUcsc0JBQW1CQSxLQUFVQSxFQUFTQSxjQUFzQkEsRUFDekNBLFVBQTJCQTtRQUQzQkMsVUFBS0EsR0FBTEEsS0FBS0EsQ0FBS0E7UUFBU0EsbUJBQWNBLEdBQWRBLGNBQWNBLENBQVFBO1FBQ3pDQSxlQUFVQSxHQUFWQSxVQUFVQSxDQUFpQkE7SUFBR0EsQ0FBQ0E7SUFDbERELDRCQUFLQSxHQUFMQSxVQUFNQSxPQUEyQkEsRUFBRUEsT0FBWUE7UUFDN0NFLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBLGNBQWNBLENBQUNBLElBQUlBLEVBQUVBLE9BQU9BLENBQUNBLENBQUNBO0lBQy9DQSxDQUFDQTtJQUNIRixtQkFBQ0E7QUFBREEsQ0FBQ0EsQUFORCxJQU1DO0FBTlksb0JBQVksZUFNeEIsQ0FBQTtBQUVEOztHQUVHO0FBQ0g7SUFDRUcsaUJBQW1CQSxJQUFZQSxFQUFTQSxLQUFhQSxFQUFTQSxVQUEyQkE7UUFBdEVD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QSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QVNUfSBmcm9tICdhbmd1bGFyMi9zcmMvY29yZS9jaGFuZ2VfZGV0ZWN0aW9uL2NoYW5nZV9kZXRlY3Rpb24nO1xuaW1wb3J0IHtpc1ByZXNlbnR9IGZyb20gJ2FuZ3VsYXIyL3NyYy9mYWNhZGUvbGFuZyc7XG5pbXBvcnQge0NvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YX0gZnJvbSAnLi9kaXJlY3RpdmVfbWV0YWRhdGEnO1xuaW1wb3J0IHtQYXJzZVNvdXJjZVNwYW59IGZyb20gJy4vcGFyc2VfdXRpbCc7XG5cbi8qKlxuICogQW4gQWJzdHJhY3QgU3ludGF4IFRyZWUgbm9kZSByZXByZXNlbnRpbmcgcGFydCBvZiBhIHBhcnNlZCBBbmd1bGFyIHRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlQXN0IHtcbiAgLyoqXG4gICAqIFRoZSBzb3VyY2Ugc3BhbiBmcm9tIHdoaWNoIHRoaXMgbm9kZSB3YXMgcGFyc2VkLlxuICAgKi9cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xuXG4gIC8qKlxuICAgKiBWaXNpdCB0aGlzIG5vZGUgYW5kIHBvc3NpYmx5IHRyYW5zZm9ybSBpdC5cbiAgICovXG4gIHZpc2l0KHZpc2l0b3I6IFRlbXBsYXRlQXN0VmlzaXRvciwgY29udGV4dDogYW55KTogYW55O1xufVxuXG4vKipcbiAqIEEgc2VnbWVudCBvZiB0ZXh0IHdpdGhpbiB0aGUgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBUZXh0QXN0IGltcGxlbWVudHMgVGVtcGxhdGVBc3Qge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IHN0cmluZywgcHVibGljIG5nQ29udGVudEluZGV4OiBudW1iZXIsXG4gICAgICAgICAgICAgIHB1YmxpYyBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pIHt9XG4gIHZpc2l0KHZpc2l0b3I6IFRlbXBsYXRlQXN0VmlzaXRvciwgY29udGV4dDogYW55KTogYW55IHsgcmV0dXJuIHZpc2l0b3IudmlzaXRUZXh0KHRoaXMsIGNvbnRleHQpOyB9XG59XG5cbi8qKlxuICogQSBib3VuZCBleHByZXNzaW9uIHdpdGhpbiB0aGUgdGV4dCBvZiBhIHRlbXBsYXRlLlxuICovXG5leHBvcnQgY2xhc3MgQm91bmRUZXh0QXN0IGltcGxlbWVudHMgVGVtcGxhdGVBc3Qge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IEFTVCwgcHVibGljIG5nQ29udGVudEluZGV4OiBudW1iZXIsXG4gICAgICAgICAgICAgIHB1YmxpYyBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pIHt9XG4gIHZpc2l0KHZpc2l0b3I6IFRlbXBsYXRlQXN0VmlzaXRvciwgY29udGV4dDogYW55KTogYW55IHtcbiAgICByZXR1cm4gdmlzaXRvci52aXNpdEJvdW5kVGV4dCh0aGlzLCBjb250ZXh0KTtcbiAgfVxufVxuXG4vKipcbiAqIEEgcGxhaW4gYXR0cmlidXRlIG9uIGFuIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBBdHRyQXN0IGltcGxlbWVudHMgVGVtcGxhdGVBc3Qge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nLCBwdWJsaWMgdmFsdWU6IHN0cmluZywgcHVibGljIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbikge31cbiAgdmlzaXQodmlzaXRvcjogVGVtcGxhdGVBc3RWaXNpdG9yLCBjb250ZXh0OiBhbnkpOiBhbnkgeyByZXR1cm4gdmlzaXRvci52aXNpdEF0dHIodGhpcywgY29udGV4dCk7IH1cbn1cblxuLyoqXG4gKiBBIGJpbmRpbmcgZm9yIGFuIGVsZW1lbnQgcHJvcGVydHkgKGUuZy4gYFtwcm9wZXJ0eV09XCJleHByZXNzaW9uXCJgKS5cbiAqL1xuZXhwb3J0IGNsYXNzIEJvdW5kRWxlbWVudFByb3BlcnR5QXN0IGltcGxlbWVudHMgVGVtcGxhdGVBc3Qge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nLCBwdWJsaWMgdHlwZTogUHJvcGVydHlCaW5kaW5nVHlwZSwgcHVibGljIHZhbHVlOiBBU1QsXG4gICAgICAgICAgICAgIHB1YmxpYyB1bml0OiBzdHJpbmcsIHB1YmxpYyBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pIHt9XG4gIHZpc2l0KHZpc2l0b3I6IFRlbXBsYXRlQXN0VmlzaXRvciwgY29udGV4dDogYW55KTogYW55IHtcbiAgICByZXR1cm4gdmlzaXRvci52aXNpdEVsZW1lbnRQcm9wZXJ0eSh0aGlzLCBjb250ZXh0KTtcbiAgfVxufVxuXG4vKipcbiAqIEEgYmluZGluZyBmb3IgYW4gZWxlbWVudCBldmVudCAoZS5nLiBgKGV2ZW50KT1cImhhbmRsZXIoKVwiYCkuXG4gKi9cbmV4cG9ydCBjbGFzcyBCb3VuZEV2ZW50QXN0IGltcGxlbWVudHMgVGVtcGxhdGVBc3Qge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nLCBwdWJsaWMgdGFyZ2V0OiBzdHJpbmcsIHB1YmxpYyBoYW5kbGVyOiBBU1QsXG4gICAgICAgICAgICAgIHB1YmxpYyBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pIHt9XG4gIHZpc2l0KHZpc2l0b3I6IFRlbXBsYXRlQXN0VmlzaXRvciwgY29udGV4dDogYW55KTogYW55IHtcbiAgICByZXR1cm4gdmlzaXRvci52aXNpdEV2ZW50KHRoaXMsIGNvbnRleHQpO1xuICB9XG4gIGdldCBmdWxsTmFtZSgpIHtcbiAgICBpZiAoaXNQcmVzZW50KHRoaXMudGFyZ2V0KSkge1xuICAgICAgcmV0dXJuIGAke3RoaXMudGFyZ2V0fToke3RoaXMubmFtZX1gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5uYW1lO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEEgdmFyaWFibGUgZGVjbGFyYXRpb24gb24gYW4gZWxlbWVudCAoZS5nLiBgI3Zhcj1cImV4cHJlc3Npb25cImApLlxuICovXG5leHBvcnQgY2xhc3MgVmFyaWFibGVBc3QgaW1wbGVtZW50cyBUZW1wbGF0ZUFzdCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcsIHB1YmxpYyB2YWx1ZTogc3RyaW5nLCBwdWJsaWMgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKSB7fVxuICB2aXNpdCh2aXNpdG9yOiBUZW1wbGF0ZUFzdFZpc2l0b3IsIGNvbnRleHQ6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHZpc2l0b3IudmlzaXRWYXJpYWJsZSh0aGlzLCBjb250ZXh0KTtcbiAgfVxufVxuXG4vKipcbiAqIEFuIGVsZW1lbnQgZGVjbGFyYXRpb24gaW4gYSB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEVsZW1lbnRBc3QgaW1wbGVtZW50cyBUZW1wbGF0ZUFzdCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcsIHB1YmxpYyBhdHRyczogQXR0ckFzdFtdLFxuICAgICAgICAgICAgICBwdWJsaWMgaW5wdXRzOiBCb3VuZEVsZW1lbnRQcm9wZXJ0eUFzdFtdLCBwdWJsaWMgb3V0cHV0czogQm91bmRFdmVudEFzdFtdLFxuICAgICAgICAgICAgICBwdWJsaWMgZXhwb3J0QXNWYXJzOiBWYXJpYWJsZUFzdFtdLCBwdWJsaWMgZGlyZWN0aXZlczogRGlyZWN0aXZlQXN0W10sXG4gICAgICAgICAgICAgIHB1YmxpYyBjaGlsZHJlbjogVGVtcGxhdGVBc3RbXSwgcHVibGljIG5nQ29udGVudEluZGV4OiBudW1iZXIsXG4gICAgICAgICAgICAgIHB1YmxpYyBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pIHt9XG4gIHZpc2l0KHZpc2l0b3I6IFRlbXBsYXRlQXN0VmlzaXRvciwgY29udGV4dDogYW55KTogYW55IHtcbiAgICByZXR1cm4gdmlzaXRvci52aXNpdEVsZW1lbnQodGhpcywgY29udGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZWxlbWVudCBoYXMgYW55IGFjdGl2ZSBiaW5kaW5ncyAoaW5wdXRzLCBvdXRwdXRzLCB2YXJzLCBvciBkaXJlY3RpdmVzKS5cbiAgICovXG4gIGlzQm91bmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLmlucHV0cy5sZW5ndGggPiAwIHx8IHRoaXMub3V0cHV0cy5sZW5ndGggPiAwIHx8IHRoaXMuZXhwb3J0QXNWYXJzLmxlbmd0aCA+IDAgfHxcbiAgICAgICAgICAgIHRoaXMuZGlyZWN0aXZlcy5sZW5ndGggPiAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGNvbXBvbmVudCBhc3NvY2lhdGVkIHdpdGggdGhpcyBlbGVtZW50LCBpZiBhbnkuXG4gICAqL1xuICBnZXRDb21wb25lbnQoKTogQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhIHtcbiAgICByZXR1cm4gdGhpcy5kaXJlY3RpdmVzLmxlbmd0aCA+IDAgJiYgdGhpcy5kaXJlY3RpdmVzWzBdLmRpcmVjdGl2ZS5pc0NvbXBvbmVudCA/XG4gICAgICAgICAgICAgICB0aGlzLmRpcmVjdGl2ZXNbMF0uZGlyZWN0aXZlIDpcbiAgICAgICAgICAgICAgIG51bGw7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGA8dGVtcGxhdGU+YCBlbGVtZW50IGluY2x1ZGVkIGluIGFuIEFuZ3VsYXIgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBFbWJlZGRlZFRlbXBsYXRlQXN0IGltcGxlbWVudHMgVGVtcGxhdGVBc3Qge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgYXR0cnM6IEF0dHJBc3RbXSwgcHVibGljIG91dHB1dHM6IEJvdW5kRXZlbnRBc3RbXSwgcHVibGljIHZhcnM6IFZhcmlhYmxlQXN0W10sXG4gICAgICAgICAgICAgIHB1YmxpYyBkaXJlY3RpdmVzOiBEaXJlY3RpdmVBc3RbXSwgcHVibGljIGNoaWxkcmVuOiBUZW1wbGF0ZUFzdFtdLFxuICAgICAgICAgICAgICBwdWJsaWMgbmdDb250ZW50SW5kZXg6IG51bWJlciwgcHVibGljIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbikge31cbiAgdmlzaXQodmlzaXRvcjogVGVtcGxhdGVBc3RWaXNpdG9yLCBjb250ZXh0OiBhbnkpOiBhbnkge1xuICAgIHJldHVybiB2aXNpdG9yLnZpc2l0RW1iZWRkZWRUZW1wbGF0ZSh0aGlzLCBjb250ZXh0KTtcbiAgfVxufVxuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHByb3BlcnR5IHdpdGggYSBib3VuZCB2YWx1ZSAoZS5nLiBgKm5nSWY9XCJjb25kaXRpb25cIikuXG4gKi9cbmV4cG9ydCBjbGFzcyBCb3VuZERpcmVjdGl2ZVByb3BlcnR5QXN0IGltcGxlbWVudHMgVGVtcGxhdGVBc3Qge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlyZWN0aXZlTmFtZTogc3RyaW5nLCBwdWJsaWMgdGVtcGxhdGVOYW1lOiBzdHJpbmcsIHB1YmxpYyB2YWx1ZTogQVNULFxuICAgICAgICAgICAgICBwdWJsaWMgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKSB7fVxuICB2aXNpdCh2aXNpdG9yOiBUZW1wbGF0ZUFzdFZpc2l0b3IsIGNvbnRleHQ6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHZpc2l0b3IudmlzaXREaXJlY3RpdmVQcm9wZXJ0eSh0aGlzLCBjb250ZXh0KTtcbiAgfVxufVxuXG4vKipcbiAqIEEgZGlyZWN0aXZlIGRlY2xhcmVkIG9uIGFuIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBEaXJlY3RpdmVBc3QgaW1wbGVtZW50cyBUZW1wbGF0ZUFzdCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaXJlY3RpdmU6IENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YSxcbiAgICAgICAgICAgICAgcHVibGljIGlucHV0czogQm91bmREaXJlY3RpdmVQcm9wZXJ0eUFzdFtdLFxuICAgICAgICAgICAgICBwdWJsaWMgaG9zdFByb3BlcnRpZXM6IEJvdW5kRWxlbWVudFByb3BlcnR5QXN0W10sIHB1YmxpYyBob3N0RXZlbnRzOiBCb3VuZEV2ZW50QXN0W10sXG4gICAgICAgICAgICAgIHB1YmxpYyBleHBvcnRBc1ZhcnM6IFZhcmlhYmxlQXN0W10sIHB1YmxpYyBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pIHt9XG4gIHZpc2l0KHZpc2l0b3I6IFRlbXBsYXRlQXN0VmlzaXRvciwgY29udGV4dDogYW55KTogYW55IHtcbiAgICByZXR1cm4gdmlzaXRvci52aXNpdERpcmVjdGl2ZSh0aGlzLCBjb250ZXh0KTtcbiAgfVxufVxuXG4vKipcbiAqIFBvc2l0aW9uIHdoZXJlIGNvbnRlbnQgaXMgdG8gYmUgcHJvamVjdGVkIChpbnN0YW5jZSBvZiBgPG5nLWNvbnRlbnQ+YCBpbiBhIHRlbXBsYXRlKS5cbiAqL1xuZXhwb3J0IGNsYXNzIE5nQ29udGVudEFzdCBpbXBsZW1lbnRzIFRlbXBsYXRlQXN0IHtcbiAgY29uc3RydWN0b3IocHVibGljIGluZGV4OiBudW1iZXIsIHB1YmxpYyBuZ0NvbnRlbnRJbmRleDogbnVtYmVyLFxuICAgICAgICAgICAgICBwdWJsaWMgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKSB7fVxuICB2aXNpdCh2aXNpdG9yOiBUZW1wbGF0ZUFzdFZpc2l0b3IsIGNvbnRleHQ6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHZpc2l0b3IudmlzaXROZ0NvbnRlbnQodGhpcywgY29udGV4dCk7XG4gIH1cbn1cblxuLyoqXG4gKiBFbnVtZXJhdGlvbiBvZiB0eXBlcyBvZiBwcm9wZXJ0eSBiaW5kaW5ncy5cbiAqL1xuZXhwb3J0IGVudW0gUHJvcGVydHlCaW5kaW5nVHlwZSB7XG5cbiAgLyoqXG4gICAqIEEgbm9ybWFsIGJpbmRpbmcgdG8gYSBwcm9wZXJ0eSAoZS5nLiBgW3Byb3BlcnR5XT1cImV4cHJlc3Npb25cImApLlxuICAgKi9cbiAgUHJvcGVydHksXG5cbiAgLyoqXG4gICAqIEEgYmluZGluZyB0byBhbiBlbGVtZW50IGF0dHJpYnV0ZSAoZS5nLiBgW2F0dHIubmFtZV09XCJleHByZXNzaW9uXCJgKS5cbiAgICovXG4gIEF0dHJpYnV0ZSxcblxuICAvKipcbiAgICogQSBiaW5kaW5nIHRvIGEgQ1NTIGNsYXNzIChlLmcuIGBbY2xhc3MubmFtZV09XCJjb25kaXRpb25cImApLlxuICAgKi9cbiAgQ2xhc3MsXG5cbiAgLyoqXG4gICAqIEEgYmluZGluZyB0byBhIHN0eWxlIHJ1bGUgKGUuZy4gYFtzdHlsZS5ydWxlXT1cImV4cHJlc3Npb25cImApLlxuICAgKi9cbiAgU3R5bGVcbn1cblxuLyoqXG4gKiBBIHZpc2l0b3IgZm9yIHtAbGluayBUZW1wbGF0ZUFzdH0gdHJlZXMgdGhhdCB3aWxsIHByb2Nlc3MgZWFjaCBub2RlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlQXN0VmlzaXRvciB7XG4gIHZpc2l0TmdDb250ZW50KGFzdDogTmdDb250ZW50QXN0LCBjb250ZXh0OiBhbnkpOiBhbnk7XG4gIHZpc2l0RW1iZWRkZWRUZW1wbGF0ZShhc3Q6IEVtYmVkZGVkVGVtcGxhdGVBc3QsIGNvbnRleHQ6IGFueSk6IGFueTtcbiAgdmlzaXRFbGVtZW50KGFzdDogRWxlbWVudEFzdCwgY29udGV4dDogYW55KTogYW55O1xuICB2aXNpdFZhcmlhYmxlKGFzdDogVmFyaWFibGVBc3QsIGNvbnRleHQ6IGFueSk6IGFueTtcbiAgdmlzaXRFdmVudChhc3Q6IEJvdW5kRXZlbnRBc3QsIGNvbnRleHQ6IGFueSk6IGFueTtcbiAgdmlzaXRFbGVtZW50UHJvcGVydHkoYXN0OiBCb3VuZEVsZW1lbnRQcm9wZXJ0eUFzdCwgY29udGV4dDogYW55KTogYW55O1xuICB2aXNpdEF0dHIoYXN0OiBBdHRyQXN0LCBjb250ZXh0OiBhbnkpOiBhbnk7XG4gIHZpc2l0Qm91bmRUZXh0KGFzdDogQm91bmRUZXh0QXN0LCBjb250ZXh0OiBhbnkpOiBhbnk7XG4gIHZpc2l0VGV4dChhc3Q6IFRleHRBc3QsIGNvbnRleHQ6IGFueSk6IGFueTtcbiAgdmlzaXREaXJlY3RpdmUoYXN0OiBEaXJlY3RpdmVBc3QsIGNvbnRleHQ6IGFueSk6IGFueTtcbiAgdmlzaXREaXJlY3RpdmVQcm9wZXJ0eShhc3Q6IEJvdW5kRGlyZWN0aXZlUHJvcGVydHlBc3QsIGNvbnRleHQ6IGFueSk6IGFueTtcbn1cblxuLyoqXG4gKiBWaXNpdCBldmVyeSBub2RlIGluIGEgbGlzdCBvZiB7QGxpbmsgVGVtcGxhdGVBc3R9cyB3aXRoIHRoZSBnaXZlbiB7QGxpbmsgVGVtcGxhdGVBc3RWaXNpdG9yfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlbXBsYXRlVmlzaXRBbGwodmlzaXRvcjogVGVtcGxhdGVBc3RWaXNpdG9yLCBhc3RzOiBUZW1wbGF0ZUFzdFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogYW55ID0gbnVsbCk6IGFueVtdIHtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBhc3RzLmZvckVhY2goYXN0ID0+IHtcbiAgICB2YXIgYXN0UmVzdWx0ID0gYXN0LnZpc2l0KHZpc2l0b3IsIGNvbnRleHQpO1xuICAgIGlmIChpc1ByZXNlbnQoYXN0UmVzdWx0KSkge1xuICAgICAgcmVzdWx0LnB1c2goYXN0UmVzdWx0KTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuIl19
+
+/***/ },
+/* 48 */
+/***/ function(module, exports) {
+
+ 'use strict';// TODO: vsavkin rename it into TemplateLoader
+ /**
+ * An interface for retrieving documents by URL that the compiler uses
+ * to load templates.
+ */
+ var XHR = (function () {
+ function XHR() {
+ }
+ XHR.prototype.get = function (url) { return null; };
+ return XHR;
+ })();
+ exports.XHR = XHR;
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGhyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW5ndWxhcjIvc3JjL2NvbXBpbGVyL3hoci50cyJdLCJuYW1lcyI6WyJYSFIiLCJYSFIuY29uc3RydWN0b3IiLCJYSFIuZ2V0Il0sIm1hcHBpbmdzIjoiQUFFQSw4Q0FBOEM7QUFDOUM7OztHQUdHO0FBQ0g7SUFBQUE7SUFFQUMsQ0FBQ0E7SUFEQ0QsaUJBQUdBLEdBQUhBLFVBQUlBLEdBQVdBLElBQXFCRSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUNwREYsVUFBQ0E7QUFBREEsQ0FBQ0EsQUFGRCxJQUVDO0FBRlksV0FBRyxNQUVmLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1Byb21pc2V9IGZyb20gJ2FuZ3VsYXIyL3NyYy9mYWNhZGUvYXN5bmMnO1xuXG4vLyBUT0RPOiB2c2F2a2luIHJlbmFtZSBpdCBpbnRvIFRlbXBsYXRlTG9hZGVyXG4vKipcbiAqIEFuIGludGVyZmFjZSBmb3IgcmV0cmlldmluZyBkb2N1bWVudHMgYnkgVVJMIHRoYXQgdGhlIGNvbXBpbGVyIHVzZXNcbiAqIHRvIGxvYWQgdGVtcGxhdGVzLlxuICovXG5leHBvcnQgY2xhc3MgWEhSIHtcbiAgZ2V0KHVybDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHsgcmV0dXJuIG51bGw7IH1cbn1cbiJdfQ==
+
+/***/ },
+/* 49 */,
+/* 50 */,
+/* 51 */,
+/* 52 */,
+/* 53 */,
+/* 54 */,
+/* 55 */,
+/* 56 */,
+/* 57 */,
+/* 58 */,
+/* 59 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+ var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+ };
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
+ return function (target, key) { decorator(target, key, paramIndex); }
+ };
+ var dom_adapter_1 = __webpack_require__(8);
+ var di_1 = __webpack_require__(5);
+ var collection_1 = __webpack_require__(2);
+ var dom_tokens_1 = __webpack_require__(37);
+ var SharedStylesHost = (function () {
+ function SharedStylesHost() {
+ /** @internal */
+ this._styles = [];
+ /** @internal */
+ this._stylesSet = new Set();
+ }
+ SharedStylesHost.prototype.addStyles = function (styles) {
+ var _this = this;
+ var additions = [];
+ styles.forEach(function (style) {
+ if (!collection_1.SetWrapper.has(_this._stylesSet, style)) {
+ _this._stylesSet.add(style);
+ _this._styles.push(style);
+ additions.push(style);
+ }
+ });
+ this.onStylesAdded(additions);
+ };
+ SharedStylesHost.prototype.onStylesAdded = function (additions) { };
+ SharedStylesHost.prototype.getAllStyles = function () { return this._styles; };
+ SharedStylesHost = __decorate([
+ di_1.Injectable(),
+ __metadata('design:paramtypes', [])
+ ], SharedStylesHost);
+ return SharedStylesHost;
+ })();
+ exports.SharedStylesHost = SharedStylesHost;
+ var DomSharedStylesHost = (function (_super) {
+ __extends(DomSharedStylesHost, _super);
+ function DomSharedStylesHost(doc) {
+ _super.call(this);
+ this._hostNodes = new Set();
+ this._hostNodes.add(doc.head);
+ }
+ /** @internal */
+ DomSharedStylesHost.prototype._addStylesToHost = function (styles, host) {
+ for (var i = 0; i < styles.length; i++) {
+ var style = styles[i];
+ dom_adapter_1.DOM.appendChild(host, dom_adapter_1.DOM.createStyleElement(style));
+ }
+ };
+ DomSharedStylesHost.prototype.addHost = function (hostNode) {
+ this._addStylesToHost(this._styles, hostNode);
+ this._hostNodes.add(hostNode);
+ };
+ DomSharedStylesHost.prototype.removeHost = function (hostNode) { collection_1.SetWrapper.delete(this._hostNodes, hostNode); };
+ DomSharedStylesHost.prototype.onStylesAdded = function (additions) {
+ var _this = this;
+ this._hostNodes.forEach(function (hostNode) { _this._addStylesToHost(additions, hostNode); });
+ };
+ DomSharedStylesHost = __decorate([
+ di_1.Injectable(),
+ __param(0, di_1.Inject(dom_tokens_1.DOCUMENT)),
+ __metadata('design:paramtypes', [Object])
+ ], DomSharedStylesHost);
+ return DomSharedStylesHost;
+ })(SharedStylesHost);
+ exports.DomSharedStylesHost = DomSharedStylesHost;
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkX3N0eWxlc19ob3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW5ndWxhcjIvc3JjL3BsYXRmb3JtL2RvbS9zaGFyZWRfc3R5bGVzX2hvc3QudHMiXSwibmFtZXMiOlsiU2hhcmVkU3R5bGVzSG9zdCIsIlNoYXJlZFN0eWxlc0hvc3QuY29uc3RydWN0b3IiLCJTaGFyZWRTdHlsZXNIb3N0LmFkZFN0eWxlcyIsIlNoYXJlZFN0eWxlc0hvc3Qub25TdHlsZXNBZGRlZCIsIlNoYXJlZFN0eWxlc0hvc3QuZ2V0QWxsU3R5bGVzIiwiRG9tU2hhcmVkU3R5bGVzSG9zdCIsIkRvbVNoYXJlZFN0eWxlc0hvc3QuY29uc3RydWN0b3IiLCJEb21TaGFyZWRTdHlsZXNIb3N0Ll9hZGRTdHlsZXNUb0hvc3QiLCJEb21TaGFyZWRTdHlsZXNIb3N0LmFkZEhvc3QiLCJEb21TaGFyZWRTdHlsZXNIb3N0LnJlbW92ZUhvc3QiLCJEb21TaGFyZWRTdHlsZXNIb3N0Lm9uU3R5bGVzQWRkZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNEJBQWtCLHVDQUF1QyxDQUFDLENBQUE7QUFDMUQsbUJBQWlDLHNCQUFzQixDQUFDLENBQUE7QUFDeEQsMkJBQXlCLGdDQUFnQyxDQUFDLENBQUE7QUFDMUQsMkJBQXVCLGNBQWMsQ0FBQyxDQUFBO0FBRXRDO0lBT0VBO1FBTEFDLGdCQUFnQkE7UUFDaEJBLFlBQU9BLEdBQWFBLEVBQUVBLENBQUNBO1FBQ3ZCQSxnQkFBZ0JBO1FBQ2hCQSxlQUFVQSxHQUFHQSxJQUFJQSxHQUFHQSxFQUFVQSxDQUFDQTtJQUVoQkEsQ0FBQ0E7SUFFaEJELG9DQUFTQSxHQUFUQSxVQUFVQSxNQUFnQkE7UUFBMUJFLGlCQVVDQTtRQVRDQSxJQUFJQSxTQUFTQSxHQUFHQSxFQUFFQSxDQUFDQTtRQUNuQkEsTUFBTUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsVUFBQUEsS0FBS0E7WUFDbEJBLEVBQUVBLENBQUNBLENBQUNBLENBQUNB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ZnJvbSAnYW5ndWxhcjIvc3JjL3BsYXRmb3JtL2RvbS9kb21fYWRhcHRlcic7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnYW5ndWxhcjIvc3JjL2NvcmUvZGknO1xuaW1wb3J0IHtTZXRXcmFwcGVyfSBmcm9tICdhbmd1bGFyMi9zcmMvZmFjYWRlL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnLi9kb21fdG9rZW5zJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNoYXJlZFN0eWxlc0hvc3Qge1xuICAvKiogQGludGVybmFsICovXG4gIF9zdHlsZXM6IHN0cmluZ1tdID0gW107XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgX3N0eWxlc1NldCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBhZGRTdHlsZXMoc3R5bGVzOiBzdHJpbmdbXSkge1xuICAgIHZhciBhZGRpdGlvbnMgPSBbXTtcbiAgICBzdHlsZXMuZm9yRWFjaChzdHlsZSA9PiB7XG4gICAgICBpZiAoIVNldFdyYXBwZXIuaGFzKHRoaXMuX3N0eWxlc1NldCwgc3R5bGUpKSB7XG4gICAgICAgIHRoaXMuX3N0eWxlc1NldC5hZGQoc3R5bGUpO1xuICAgICAgICB0aGlzLl9zdHlsZXMucHVzaChzdHlsZSk7XG4gICAgICAgIGFkZGl0aW9ucy5wdXNoKHN0eWxlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm9uU3R5bGVzQWRkZWQoYWRkaXRpb25zKTtcbiAgfVxuXG4gIG9uU3R5bGVzQWRkZWQoYWRkaXRpb25zOiBzdHJpbmdbXSkge31cblxuICBnZXRBbGxTdHlsZXMoKTogc3RyaW5nW10geyByZXR1cm4gdGhpcy5fc3R5bGVzOyB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEb21TaGFyZWRTdHlsZXNIb3N0IGV4dGVuZHMgU2hhcmVkU3R5bGVzSG9zdCB7XG4gIHByaXZhdGUgX2hvc3ROb2RlcyA9IG5ldyBTZXQ8Tm9kZT4oKTtcbiAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgZG9jOiBhbnkpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX2hvc3ROb2Rlcy5hZGQoZG9jLmhlYWQpO1xuICB9XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgX2FkZFN0eWxlc1RvSG9zdChzdHlsZXM6IHN0cmluZ1tdLCBob3N0OiBOb2RlKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzdHlsZSA9IHN0eWxlc1tpXTtcbiAgICAgIERPTS5hcHBlbmRDaGlsZChob3N0LCBET00uY3JlYXRlU3R5bGVFbGVtZW50KHN0eWxlKSk7XG4gICAgfVxuICB9XG4gIGFkZEhvc3QoaG9zdE5vZGU6IE5vZGUpIHtcbiAgICB0aGlzLl9hZGRTdHlsZXNUb0hvc3QodGhpcy5fc3R5bGVzLCBob3N0Tm9kZSk7XG4gICAgdGhpcy5faG9zdE5vZGVzLmFkZChob3N0Tm9kZSk7XG4gIH1cbiAgcmVtb3ZlSG9zdChob3N0Tm9kZTogTm9kZSkgeyBTZXRXcmFwcGVyLmRlbGV0ZSh0aGlzLl9ob3N0Tm9kZXMsIGhvc3ROb2RlKTsgfVxuXG4gIG9uU3R5bGVzQWRkZWQoYWRkaXRpb25zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX2hvc3ROb2Rlcy5mb3JFYWNoKChob3N0Tm9kZSkgPT4geyB0aGlzLl9hZGRTdHlsZXNUb0hvc3QoYWRkaXRpb25zLCBob3N0Tm9kZSk7IH0pO1xuICB9XG59XG4iXX0=
+
+/***/ },
+/* 60 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+ var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+ };
+ var core_1 = __webpack_require__(3);
+ var dropdown_service_1 = __webpack_require__(170);
+ var Dropdown = (function () {
+ function Dropdown(el) {
+ this.el = el;
+ this.onToggle = new core_1.EventEmitter();
+ this.addClass = true;
+ }
+ Object.defineProperty(Dropdown.prototype, "isOpen", {
+ get: function () {
+ return this._isOpen;
+ },
+ set: function (value) {
+ this._isOpen = !!value;
+ if (this.dropdownAppendToBody && this.menuEl) {
+ }
+ if (this.isOpen) {
+ if (this.dropdownMenuTemplateUrl) {
+ }
+ this.focusToggleElement();
+ dropdown_service_1.dropdownService.open(this);
+ }
+ else {
+ if (this.dropdownMenuTemplateUrl) {
+ }
+ dropdown_service_1.dropdownService.close(this);
+ this.selectedOption = null;
+ }
+ this.onToggle.emit(this.isOpen);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Dropdown.prototype.ngOnInit = function () {
+ this.autoClose = this.autoClose || dropdown_service_1.ALWAYS;
+ this.keyboardNav = typeof this.keyboardNav !== 'undefined';
+ this.dropdownAppendToBody = typeof this.dropdownAppendToBody !== 'undefined';
+ if (this.isOpen) {
+ }
+ };
+ Dropdown.prototype.ngOnDestroy = function () {
+ if (this.dropdownAppendToBody && this.menuEl) {
+ this.menuEl.nativeElement.remove();
+ }
+ };
+ Object.defineProperty(Dropdown.prototype, "dropDownMenu", {
+ set: function (dropdownMenu) {
+ this.menuEl = dropdownMenu.el;
+ if (dropdownMenu.templateUrl) {
+ this.dropdownMenuTemplateUrl = dropdownMenu.templateUrl;
+ }
+ if (this.dropdownAppendToBody) {
+ window.document.body.appendChild(this.menuEl.nativeElement);
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Dropdown.prototype, "dropDownToggle", {
+ set: function (dropdownToggle) {
+ this.toggleEl = dropdownToggle.el;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Dropdown.prototype.toggle = function (open) {
+ return this.isOpen = arguments.length ? !!open : !this.isOpen;
+ };
+ Dropdown.prototype.focusDropdownEntry = function (keyCode) {
+ var hostEl = this.menuEl ?
+ this.menuEl.nativeElement :
+ this.el.nativeElement.getElementsByTagName('ul')[0];
+ if (!hostEl) {
+ return;
+ }
+ var elems = hostEl.getElementsByTagName('a');
+ if (!elems || !elems.length) {
+ return;
+ }
+ switch (keyCode) {
+ case (40):
+ if (typeof this.selectedOption !== 'number') {
+ this.selectedOption = 0;
+ break;
+ }
+ if (this.selectedOption === elems.length - 1) {
+ break;
+ }
+ this.selectedOption++;
+ break;
+ case (38):
+ if (typeof this.selectedOption !== 'number') {
+ return;
+ }
+ if (this.selectedOption === 0) {
+ break;
+ }
+ this.selectedOption--;
+ break;
+ }
+ elems[this.selectedOption].focus();
+ };
+ Dropdown.prototype.focusToggleElement = function () {
+ if (this.toggleEl) {
+ this.toggleEl.nativeElement.focus();
+ }
+ };
+ __decorate([
+ core_1.HostBinding('class.open'),
+ core_1.Input(),
+ __metadata('design:type', Boolean)
+ ], Dropdown.prototype, "isOpen", null);
+ __decorate([
+ core_1.Input(),
+ __metadata('design:type', String)
+ ], Dropdown.prototype, "autoClose", void 0);
+ __decorate([
+ core_1.Input(),
+ __metadata('design:type', Boolean)
+ ], Dropdown.prototype, "keyboardNav", void 0);
+ __decorate([
+ core_1.Input(),
+ __metadata('design:type', Boolean)
+ ], Dropdown.prototype, "dropdownAppendToBody", void 0);
+ __decorate([
+ core_1.Output(),
+ __metadata('design:type', core_1.EventEmitter)
+ ], Dropdown.prototype, "onToggle", void 0);
+ __decorate([
+ core_1.HostBinding('class.dropdown'),
+ __metadata('design:type', Object)
+ ], Dropdown.prototype, "addClass", void 0);
+ Dropdown = __decorate([
+ core_1.Directive({ selector: '[dropdown]' }),
+ __metadata('design:paramtypes', [core_1.ElementRef])
+ ], Dropdown);
+ return Dropdown;
+ })();
+ exports.Dropdown = Dropdown;
+
+
+/***/ },
+/* 61 */,
+/* 62 */,
+/* 63 */,
+/* 64 */,
+/* 65 */,
+/* 66 */,
+/* 67 */,
+/* 68 */,
+/* 69 */,
+/* 70 */,
+/* 71 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+ var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+ };
+ var lang_1 = __webpack_require__(1);
+ var collection_1 = __webpack_require__(2);
+ var template_commands_1 = __webpack_require__(52);
+ var template_ast_1 = __webpack_require__(47);
+ var source_module_1 = __webpack_require__(27);
+ var util_1 = __webpack_require__(15);
+ var di_1 = __webpack_require__(5);
+ exports.TEMPLATE_COMMANDS_MODULE_REF = source_module_1.moduleRef("package:angular2/src/core/linker/template_commands" + util_1.MODULE_SUFFIX);
+ var IMPLICIT_TEMPLATE_VAR = '\$implicit';
+ var CLASS_ATTR = 'class';
+ var STYLE_ATTR = 'style';
+ var CommandCompiler = (function () {
+ function CommandCompiler() {
+ }
+ CommandCompiler.prototype.compileComponentRuntime = function (component, template, changeDetectorFactories, componentTemplateFactory) {
+ var visitor = new CommandBuilderVisitor(new RuntimeCommandFactory(component, componentTemplateFactory, changeDetectorFactories), 0);
+ template_ast_1.templateVisitAll(visitor, template);
+ return visitor.result;
+ };
+ CommandCompiler.prototype.compileComponentCodeGen = function (component, template, changeDetectorFactoryExpressions, componentTemplateFactory) {
+ var visitor = new CommandBuilderVisitor(new CodegenCommandFactory(component, componentTemplateFactory, changeDetectorFactoryExpressions), 0);
+ template_ast_1.templateVisitAll(visitor, template);
+ return new source_module_1.SourceExpression([], codeGenArray(visitor.result));
+ };
+ CommandCompiler = __decorate([
+ di_1.Injectable(),
+ __metadata('design:paramtypes', [])
+ ], CommandCompiler);
+ return CommandCompiler;
+ })();
+ exports.CommandCompiler = CommandCompiler;
+ var RuntimeCommandFactory = (function () {
+ function RuntimeCommandFactory(component, componentTemplateFactory, changeDetectorFactories) {
+ this.component = component;
+ this.componentTemplateFactory = componentTemplateFactory;
+ this.changeDetectorFactories = changeDetectorFactories;
+ }
+ RuntimeCommandFactory.prototype._mapDirectives = function (directives) {
+ return directives.map(function (directive) { return directive.type.runtime; });
+ };
+ RuntimeCommandFactory.prototype.createText = function (value, isBound, ngContentIndex) {
+ return new template_commands_1.TextCmd(value, isBound, ngContentIndex);
+ };
+ RuntimeCommandFactory.prototype.createNgContent = function (index, ngContentIndex) {
+ return new template_commands_1.NgContentCmd(index, ngContentIndex);
+ };
+ RuntimeCommandFactory.prototype.createBeginElement = function (name, attrNameAndValues, eventTargetAndNames, variableNameAndValues, directives, isBound, ngContentIndex) {
+ return new template_commands_1.BeginElementCmd(name, attrNameAndValues, eventTargetAndNames, variableNameAndValues, this._mapDirectives(directives), isBound, ngContentIndex);
+ };
+ RuntimeCommandFactory.prototype.createEndElement = function () { return new template_commands_1.EndElementCmd(); };
+ RuntimeCommandFactory.prototype.createBeginComponent = function (name, attrNameAndValues, eventTargetAndNames, variableNameAndValues, directives, encapsulation, ngContentIndex) {
+ var nestedTemplateAccessor = this.componentTemplateFactory(directives[0]);
+ return new template_commands_1.BeginComponentCmd(name, attrNameAndValues, eventTargetAndNames, variableNameAndValues, this._mapDirectives(directives), encapsulation, ngContentIndex, nestedTemplateAccessor);
+ };
+ RuntimeCommandFactory.prototype.createEndComponent = function () { return new template_commands_1.EndComponentCmd(); };
+ RuntimeCommandFactory.prototype.createEmbeddedTemplate = function (embeddedTemplateIndex, attrNameAndValues, variableNameAndValues, directives, isMerged, ngContentIndex, children) {
+ return new template_commands_1.EmbeddedTemplateCmd(attrNameAndValues, variableNameAndValues, this._mapDirectives(directives), isMerged, ngContentIndex, this.changeDetectorFactories[embeddedTemplateIndex], children);
+ };
+ return RuntimeCommandFactory;
+ })();
+ var CodegenCommandFactory = (function () {
+ function CodegenCommandFactory(component, componentTemplateFactory, changeDetectorFactoryExpressions) {
+ this.component = component;
+ this.componentTemplateFactory = componentTemplateFactory;
+ this.changeDetectorFactoryExpressions = changeDetectorFactoryExpressions;
+ }
+ CodegenCommandFactory.prototype.createText = function (value, isBound, ngContentIndex) {
+ return new Expression(util_1.codeGenConstConstructorCall(exports.TEMPLATE_COMMANDS_MODULE_REF + 'TextCmd') + "(" + util_1.escapeSingleQuoteString(value) + ", " + isBound + ", " + ngContentIndex + ")");
+ };
+ CodegenCommandFactory.prototype.createNgContent = function (index, ngContentIndex) {
+ return new Expression(util_1.codeGenConstConstructorCall(exports.TEMPLATE_COMMANDS_MODULE_REF + 'NgContentCmd') + "(" + index + ", " + ngContentIndex + ")");
+ };
+ CodegenCommandFactory.prototype.createBeginElement = function (name, attrNameAndValues, eventTargetAndNames, variableNameAndValues, directives, isBound, ngContentIndex) {
+ var attrsExpression = codeGenArray(attrNameAndValues);
+ return new Expression((util_1.codeGenConstConstructorCall(exports.TEMPLATE_COMMANDS_MODULE_REF + 'BeginElementCmd') + "(" + util_1.escapeSingleQuoteString(name) + ", " + attrsExpression + ", ") +
+ (codeGenArray(eventTargetAndNames) + ", " + codeGenArray(variableNameAndValues) + ", " + codeGenDirectivesArray(directives) + ", " + isBound + ", " + ngContentIndex + ")"));
+ };
+ CodegenCommandFactory.prototype.createEndElement = function () {
+ return new Expression(util_1.codeGenConstConstructorCall(exports.TEMPLATE_COMMANDS_MODULE_REF + 'EndElementCmd') + "()");
+ };
+ CodegenCommandFactory.prototype.createBeginComponent = function (name, attrNameAndValues, eventTargetAndNames, variableNameAndValues, directives, encapsulation, ngContentIndex) {
+ var attrsExpression = codeGenArray(attrNameAndValues);
+ return new Expression((util_1.codeGenConstConstructorCall(exports.TEMPLATE_COMMANDS_MODULE_REF + 'BeginComponentCmd') + "(" + util_1.escapeSingleQuoteString(name) + ", " + attrsExpression + ", ") +
+ (codeGenArray(eventTargetAndNames) + ", " + codeGenArray(variableNameAndValues) + ", " + codeGenDirectivesArray(directives) + ", " + codeGenViewEncapsulation(encapsulation) + ", " + ngContentIndex + ", " + this.componentTemplateFactory(directives[0]) + ")"));
+ };
+ CodegenCommandFactory.prototype.createEndComponent = function () {
+ return new Expression(util_1.codeGenConstConstructorCall(exports.TEMPLATE_COMMANDS_MODULE_REF + 'EndComponentCmd') + "()");
+ };
+ CodegenCommandFactory.prototype.createEmbeddedTemplate = function (embeddedTemplateIndex, attrNameAndValues, variableNameAndValues, directives, isMerged, ngContentIndex, children) {
+ return new Expression((util_1.codeGenConstConstructorCall(exports.TEMPLATE_COMMANDS_MODULE_REF + 'EmbeddedTemplateCmd') + "(" + codeGenArray(attrNameAndValues) + ", " + codeGenArray(variableNameAndValues) + ", ") +
+ (codeGenDirectivesArray(directives) + ", " + isMerged + ", " + ngContentIndex + ", " + this.changeDetectorFactoryExpressions[embeddedTemplateIndex] + ", " + codeGenArray(children) + ")"));
+ };
+ return CodegenCommandFactory;
+ })();
+ function visitAndReturnContext(visitor, asts, context) {
+ template_ast_1.templateVisitAll(visitor, asts, context);
+ return context;
+ }
+ var CommandBuilderVisitor = (function () {
+ function CommandBuilderVisitor(commandFactory, embeddedTemplateIndex) {
+ this.commandFactory = commandFactory;
+ this.embeddedTemplateIndex = embeddedTemplateIndex;
+ this.result = [];
+ this.transitiveNgContentCount = 0;
+ }
+ CommandBuilderVisitor.prototype._readAttrNameAndValues = function (directives, attrAsts) {
+ var attrs = keyValueArrayToMap(visitAndReturnContext(this, attrAsts, []));
+ directives.forEach(function (directiveMeta) {
+ collection_1.StringMapWrapper.forEach(directiveMeta.hostAttributes, function (value, name) {
+ var prevValue = attrs[name];
+ attrs[name] = lang_1.isPresent(prevValue) ? mergeAttributeValue(name, prevValue, value) : value;
+ });
+ });
+ return mapToKeyValueArray(attrs);
+ };
+ CommandBuilderVisitor.prototype.visitNgContent = function (ast, context) {
+ this.transitiveNgContentCount++;
+ this.result.push(this.commandFactory.createNgContent(ast.index, ast.ngContentIndex));
+ return null;
+ };
+ CommandBuilderVisitor.prototype.visitEmbeddedTemplate = function (ast, context) {
+ var _this = this;
+ this.embeddedTemplateIndex++;
+ var childVisitor = new CommandBuilderVisitor(this.commandFactory, this.embeddedTemplateIndex);
+ template_ast_1.templateVisitAll(childVisitor, ast.children);
+ var isMerged = childVisitor.transitiveNgContentCount > 0;
+ var variableNameAndValues = [];
+ ast.vars.forEach(function (varAst) {
+ variableNameAndValues.push(varAst.name);
+ variableNameAndValues.push(varAst.value.length > 0 ? varAst.value : IMPLICIT_TEMPLATE_VAR);
+ });
+ var directives = [];
+ collection_1.ListWrapper.forEachWithIndex(ast.directives, function (directiveAst, index) {
+ directiveAst.visit(_this, new DirectiveContext(index, [], [], directives));
+ });
+ this.result.push(this.commandFactory.createEmbeddedTemplate(this.embeddedTemplateIndex, this._readAttrNameAndValues(directives, ast.attrs), variableNameAndValues, directives, isMerged, ast.ngContentIndex, childVisitor.result));
+ this.transitiveNgContentCount += childVisitor.transitiveNgContentCount;
+ this.embeddedTemplateIndex = childVisitor.embeddedTemplateIndex;
+ return null;
+ };
+ CommandBuilderVisitor.prototype.visitElement = function (ast, context) {
+ var _this = this;
+ var component = ast.getComponent();
+ var eventTargetAndNames = visitAndReturnContext(this, ast.outputs, []);
+ var variableNameAndValues = [];
+ if (lang_1.isBlank(component)) {
+ ast.exportAsVars.forEach(function (varAst) {
+ variableNameAndValues.push(varAst.name);
+ variableNameAndValues.push(null);
+ });
+ }
+ var directives = [];
+ collection_1.ListWrapper.forEachWithIndex(ast.directives, function (directiveAst, index) {
+ directiveAst.visit(_this, new DirectiveContext(index, eventTargetAndNames, variableNameAndValues, directives));
+ });
+ eventTargetAndNames = removeKeyValueArrayDuplicates(eventTargetAndNames);
+ var attrNameAndValues = this._readAttrNameAndValues(directives, ast.attrs);
+ if (lang_1.isPresent(component)) {
+ this.result.push(this.commandFactory.createBeginComponent(ast.name, attrNameAndValues, eventTargetAndNames, variableNameAndValues, directives, component.template.encapsulation, ast.ngContentIndex));
+ template_ast_1.templateVisitAll(this, ast.children);
+ this.result.push(this.commandFactory.createEndComponent());
+ }
+ else {
+ this.result.push(this.commandFactory.createBeginElement(ast.name, attrNameAndValues, eventTargetAndNames, variableNameAndValues, directives, ast.isBound(), ast.ngContentIndex));
+ template_ast_1.templateVisitAll(this, ast.children);
+ this.result.push(this.commandFactory.createEndElement());
+ }
+ return null;
+ };
+ CommandBuilderVisitor.prototype.visitVariable = function (ast, ctx) { return null; };
+ CommandBuilderVisitor.prototype.visitAttr = function (ast, attrNameAndValues) {
+ attrNameAndValues.push(ast.name);
+ attrNameAndValues.push(ast.value);
+ return null;
+ };
+ CommandBuilderVisitor.prototype.visitBoundText = function (ast, context) {
+ this.result.push(this.commandFactory.createText(null, true, ast.ngContentIndex));
+ return null;
+ };
+ CommandBuilderVisitor.prototype.visitText = function (ast, context) {
+ this.result.push(this.commandFactory.createText(ast.value, false, ast.ngContentIndex));
+ return null;
+ };
+ CommandBuilderVisitor.prototype.visitDirective = function (ast, ctx) {
+ ctx.targetDirectives.push(ast.directive);
+ template_ast_1.templateVisitAll(this, ast.hostEvents, ctx.eventTargetAndNames);
+ ast.exportAsVars.forEach(function (varAst) {
+ ctx.targetVariableNameAndValues.push(varAst.name);
+ ctx.targetVariableNameAndValues.push(ctx.index);
+ });
+ return null;
+ };
+ CommandBuilderVisitor.prototype.visitEvent = function (ast, eventTargetAndNames) {
+ eventTargetAndNames.push(ast.target);
+ eventTargetAndNames.push(ast.name);
+ return null;
+ };
+ CommandBuilderVisitor.prototype.visitDirectiveProperty = function (ast, context) { return null; };
+ CommandBuilderVisitor.prototype.visitElementProperty = function (ast, context) { return null; };
+ return CommandBuilderVisitor;
+ })();
+ function removeKeyValueArrayDuplicates(keyValueArray) {
+ var knownPairs = new Set();
+ var resultKeyValueArray = [];
+ for (var i = 0; i < keyValueArray.length; i += 2) {
+ var key = keyValueArray[i];
+ var value = keyValueArray[i + 1];
+ var pairId = key + ":" + value;
+ if (!collection_1.SetWrapper.has(knownPairs, pairId)) {
+ resultKeyValueArray.push(key);
+ resultKeyValueArray.push(value);
+ knownPairs.add(pairId);
+ }
+ }
+ return resultKeyValueArray;
+ }
+ function keyValueArrayToMap(keyValueArr) {
+ var data = {};
+ for (var i = 0; i < keyValueArr.length; i += 2) {
+ data[keyValueArr[i]] = keyValueArr[i + 1];
+ }
+ return data;
+ }
+ function mapToKeyValueArray(data) {
+ var entryArray = [];
+ collection_1.StringMapWrapper.forEach(data, function (value, name) { entryArray.push([name, value]); });
+ // We need to sort to get a defined output order
+ // for tests and for caching generated artifacts...
+ collection_1.ListWrapper.sort(entryArray, function (entry1, entry2) { return lang_1.StringWrapper.compare(entry1[0], entry2[0]); });
+ var keyValueArray = [];
+ entryArray.forEach(function (entry) {
+ keyValueArray.push(entry[0]);
+ keyValueArray.push(entry[1]);
+ });
+ return keyValueArray;
+ }
+ function mergeAttributeValue(attrName, attrValue1, attrValue2) {
+ if (attrName == CLASS_ATTR || attrName == STYLE_ATTR) {
+ return attrValue1 + " " + attrValue2;
+ }
+ else {
+ return attrValue2;
+ }
+ }
+ var DirectiveContext = (function () {
+ function DirectiveContext(index, eventTargetAndNames, targetVariableNameAndValues, targetDirectives) {
+ this.index = index;
+ this.eventTargetAndNames = eventTargetAndNames;
+ this.targetVariableNameAndValues = targetVariableNameAndValues;
+ this.targetDirectives = targetDirectives;
+ }
+ return DirectiveContext;
+ })();
+ var Expression = (function () {
+ function Expression(value) {
+ this.value = value;
+ }
+ return Expression;
+ })();
+ function escapeValue(value) {
+ if (value instanceof Expression) {
+ return value.value;
+ }
+ else if (lang_1.isString(value)) {
+ return util_1.escapeSingleQuoteString(value);
+ }
+ else if (lang_1.isBlank(value)) {
+ return 'null';
+ }
+ else {
+ return "" + value;
+ }
+ }
+ function codeGenArray(data) {
+ var base = "[" + data.map(escapeValue).join(',') + "]";
+ return lang_1.IS_DART ? "const " + base : base;
+ }
+ function codeGenDirectivesArray(directives) {
+ var expressions = directives.map(function (directiveType) { return ("" + source_module_1.moduleRef(directiveType.type.moduleUrl) + directiveType.type.name); });
+ var base = "[" + expressions.join(',') + "]";
+ return lang_1.IS_DART ? "const " + base : base;
+ }
+ function codeGenViewEncapsulation(value) {
+ if (lang_1.IS_DART) {
+ return "" + exports.TEMPLATE_COMMANDS_MODULE_REF + value;
+ }
+ else {
+ return "" + value;
+ }
+ }
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZF9jb21waWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFuZ3VsYXIyL3NyYy9jb21waWxlci9jb21tYW5kX2NvbXBpbGVyLnRzIl0sIm5hbWVzIjpbIkNvbW1hbmRDb21waWxlciIsIkNvbW1hbmRDb21waWxlci5jb25zdHJ1Y3RvciIsIkNvbW1hbmRDb21waWxlci5jb21waWxlQ29tcG9uZW50UnVudGltZSIsIkNvbW1hbmRDb21waWxlci5jb21waWxlQ29tcG9uZW50Q29kZUdlbiIsIlJ1bnRpbWVDb21tYW5kRmFjdG9yeSIsIlJ1bnRpbWVDb21tYW5kRmFjdG9yeS5jb25zdHJ1Y3RvciIsIlJ1bnRpbWVDb21tYW5kRmFjdG9yeS5fbWFwRGlyZWN0aXZlcyIsIlJ1bnRpbWVDb21tYW5kRmFjdG9yeS5jcmVhdGVUZXh0IiwiUnVudGltZUNvbW1hbmRGYWN0b3J5LmNyZWF0ZU5nQ29udGVudCIsIlJ1bnRpbWVDb21tYW5kRmFjdG9yeS5jcmVhdGVCZWdpbkVsZW1lbnQiLCJSdW50aW1lQ29tbWFuZEZhY3RvcnkuY3JlYXRlRW5kRWxlbWVudCIsIlJ1bnRpbWVDb21tYW5kRmFjdG9yeS5jcmVhdGVCZWdpbkNvbXBvbmVudCIsIlJ1bnRpbWVDb21tYW5kRmFjdG9yeS5jcmVhdGVFbmRDb21wb25lbnQiLCJSdW50aW1lQ29tbWFuZEZhY3RvcnkuY3JlYXRlRW1iZWRkZWRUZW1wbGF0ZSIsIkNvZGVnZW5Db21tYW5kRmFjdG9yeSIsIkNvZGVnZW5Db21tYW5kRmFjdG9yeS5jb25zdHJ1Y3RvciIsIkNvZGVnZW5Db21tYW5kRmFjdG9yeS5jcmVhdGVUZXh0IiwiQ29kZWdlbkNvbW1hbmRGYWN0b3J5LmNyZWF0ZU5nQ29udGVudCIsIkNvZGVnZW5Db21tYW5kRmFjdG9yeS5jcmVhdGVCZWdpbkVsZW1lbnQiLCJDb2RlZ2VuQ29tbWFuZEZhY3RvcnkuY3JlYXRlRW5kRWxlbWVudCIsIkNvZGVnZW5Db21tYW5kRmFjdG9yeS5jcmVhdGVCZWdpbkNvbXBvbmVudCIsIkNvZGVnZW5Db21tYW5kRmFjdG9yeS5jcmVhdGVFbmRDb21wb25lbnQiLCJDb2RlZ2VuQ29tbWFuZEZhY3RvcnkuY3JlYXRlRW1iZWRkZWRUZW1wbGF0ZSIsInZpc2l0QW5kUmV0dXJuQ29udGV4dCIsIkNvbW1hbmRCdWlsZGVyVmlzaXRvciIsIkNvbW1hbmRCdWlsZGVyVmlzaXRvci5jb25zdHJ1Y3RvciIsIkNvbW1hbmRCdWlsZGVyVmlzaXRvci5fcmVhZEF0dHJOYW1lQW5kVmFsdWVzIiwiQ29tbWFuZEJ1aWxkZXJWaXNpdG9yLnZpc2l0TmdDb250ZW50IiwiQ29tbWFuZEJ1aWxkZXJWaXNpdG9yLnZpc2l0RW1iZWRkZWRUZW1wbGF0ZSIsIkNvbW1hbmRCdWlsZGVyVmlzaXRvci52aXNpdEVsZW1lbnQiLCJDb21tYW5kQnVpbGRlclZpc2l0b3IudmlzaXRWYXJpYWJsZSIsIkNvbW1hbmRCdWlsZGVyVmlzaXRvci52aXNpdEF0dHIiLCJDb21tYW5kQnVpbGRlclZpc2l0b3IudmlzaXRCb3VuZFRleHQiLCJDb21tYW5kQnVpbGRlclZpc2l0b3IudmlzaXRUZXh0IiwiQ29tbWFuZEJ1aWxkZXJWaXNpdG9yLnZpc2l0RGlyZWN0aXZlIiwiQ29tbWFuZEJ1aWxkZXJWaXNpdG9yLnZpc2l0RXZlbnQiLCJDb21tYW5kQnVpbGRlclZpc2l0b3IudmlzaXREaXJlY3RpdmVQcm9wZXJ0eSIsIkNvbW1hbmRCdWlsZGVyVmlzaXRvci52aXNpdEVsZW1lbnRQcm9wZXJ0eSIsInJlbW92ZUtleVZhbHVlQXJyYXlEdXBsaWNhdGVzIiwia2V5VmFsdWVBcnJheVRvTWFwIiwibWFwVG9LZXlWYWx1ZUFycmF5IiwibWVyZ2VBdHRyaWJ1dGVWYWx1ZSIsIkRpcmVjdGl2ZUNvbnRleHQiLCJEaXJlY3RpdmVDb250ZXh0LmNvbnN0cnVjdG9yIiwiRXhwcmVzc2lvbiIsIkV4cHJlc3Npb24uY29uc3RydWN0b3IiLCJlc2NhcGVWYWx1ZSIsImNvZGVHZW5BcnJheSIsImNvZGVHZW5EaXJlY3RpdmVzQXJy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QSxXQUFXQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxDQUFDQSxNQUFHQSxDQUFDQTtJQUNsREEsTUFBTUEsQ0FBQ0EsY0FBT0EsR0FBR0EsV0FBU0EsSUFBTUEsR0FBR0EsSUFBSUEsQ0FBQ0E7QUFDMUNBLENBQUNBO0FBRUQsZ0NBQWdDLFVBQXNDO0lBQ3BFQyxJQUFJQSxXQUFXQSxHQUFHQSxVQUFVQSxDQUFDQSxHQUFHQSxDQUM1QkEsVUFBQUEsYUFBYUEsSUFBSUEsT0FBQUEsTUFBR0EseUJBQVNBLENBQUNBLGFBQWFBLENBQUNBLElBQUlBLENBQUNBLFNBQVNBLENBQUNBLEdBQUdBLGFBQWFBLENBQUNBLElBQUlBLENBQUNBLElBQUlBLENBQUVBLEVBQXRFQSxDQUFzRUEsQ0FBQ0EsQ0FBQ0E7SUFDN0ZBLElBQUlBLElBQUlBLEdBQUdBLE1BQUlBLFdBQVdBLENBQUNBLElBQUlBLENBQUNBLEdBQUdBLENBQUNBLE1BQUdBLENBQUNBO0lBQ3hDQSxNQUFNQSxDQUFDQSxjQUFPQSxHQUFHQSxXQUFTQSxJQUFNQSxHQUFHQSxJQUFJQSxDQUFDQTtBQUMxQ0EsQ0FBQ0E7QUFFRCxrQ0FBa0MsS0FBd0I7SUFDeERDLEVBQUVBLENBQUNBLENBQUNBLGNBQU9BLENBQUNBLENBQUNBLENBQUNBO1FBQ1pBLE1BQU1BLENBQUNBLEtBQUdBLG9DQUE0QkEsR0FBR0EsS0FBT0EsQ0FBQ0E7SUFDbkRBLENBQUNBO0lBQUNBLElBQUlBLENBQUNBLENBQUNBO1FBQ05BLE1BQU1BLENBQUNBLEtBQUdBLEtBQU9BLENBQUNBO0lBQ3BCQSxDQUFDQTtBQUNIQSxDQUFDQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNQcmVzZW50LCBpc0JsYW5rLCBUeXBlLCBpc1N0cmluZywgU3RyaW5nV3JhcHBlciwgSVNfREFSVH0gZnJvbSAnYW5ndWxhcjIvc3JjL2ZhY2FkZS9sYW5nJztcbmltcG9ydCB7U2V0V3JhcHBlciwgU3RyaW5nTWFwV3JhcHBlciwgTGlzdFdyYXBwZXJ9IGZyb20gJ2FuZ3VsYXIyL3NyYy9mYWNhZGUvY29sbGVjdGlvbic7XG5pbXBvcnQge1xuICBUZW1wbGF0ZUNtZCxcbiAgVGV4dENtZCxcbiAgTmdDb250ZW50Q21kLFxuICBCZWdpbkVsZW1lbnRDbWQsXG4gIEVuZEVsZW1lbnRDbWQsXG4gIEJlZ2luQ29tcG9uZW50Q21kLFxuICBFbmRDb21wb25lbnRDbWQsXG4gIEVtYmVkZGVkVGVtcGxhdGVDbWQsXG4gIENvbXBpbGVkQ29tcG9uZW50VGVtcGxhdGVcbn0gZnJvbSAnYW5ndWxhcjIvc3JjL2NvcmUvbGlua2VyL3RlbXBsYXRlX2NvbW1hbmRzJztcbmltcG9ydCB7XG4gIFRlbXBsYXRlQXN0LFxuICBUZW1wbGF0ZUFzdFZpc2l0b3IsXG4gIE5nQ29udGVudEFzdCxcbiAgRW1iZWRkZWRUZW1wbGF0ZUFzdCxcbiAgRWxlbWVudEFzdCxcbiAgVmFyaWFibGVBc3QsXG4gIEJvdW5kRXZlbnRBc3QsXG4gIEJvdW5kRWxlbWVudFByb3BlcnR5QXN0LFxuICBBdHRyQXN0LFxuICBCb3VuZFRleHRBc3QsXG4gIFRleHRBc3QsXG4gIERpcmVjdGl2ZUFzdCxcbiAgQm91bmREaXJlY3RpdmVQcm9wZXJ0eUFzdCxcbiAgdGVtcGxhdGVWaXNpdEFsbFxufSBmcm9tICcuL3RlbXBsYXRlX2FzdCc7XG5pbXBvcnQge0NvbXBpbGVUeXBlTWV0YWRhdGEsIENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YX0gZnJvbSAnLi9kaXJlY3RpdmVfbWV0YWRhdGEnO1xuaW1wb3J0IHtTb3VyY2VFeHByZXNzaW9ucywgU291cmNlRXhwcmVzc2lvbiwgbW9kdWxlUmVmfSBmcm9tICcuL3NvdXJjZV9tb2R1bGUnO1xuXG5pbXBvcnQge1ZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdhbmd1bGFyMi9zcmMvY29yZS9tZXRhZGF0YS92aWV3JztcbmltcG9ydCB7XG4gIGVzY2FwZVNpbmdsZVF1b3RlU3RyaW5nLFxuICBjb2RlR2VuQ29uc3RDb25zdHJ1Y3RvckNhbGwsXG4gIGNvZGVHZW5WYWx1ZUZuLFxuICBNT0RVTEVfU1VGRklYXG59IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ2FuZ3VsYXIyL3NyYy9jb3JlL2RpJztcblxuZXhwb3J0IHZhciBURU1QTEFURV9DT01NQU5EU19NT0RVTEVfUkVGID1cbiAgICBtb2R1bGVSZWYoYHBhY2thZ2U6YW5ndWxhcjIvc3JjL2NvcmUvbGlua2VyL3RlbXBsYXRlX2NvbW1hbmRzJHtNT0RVTEVfU1VGRklYfWApO1xuXG5jb25zdCBJTVBMSUNJVF9URU1QTEFURV9WQVIgPSAnXFwkaW1wbGljaXQnO1xuY29uc3QgQ0xBU1NfQVRUUiA9ICdjbGFzcyc7XG5jb25zdCBTVFlMRV9BVFRSID0gJ3N0eWxlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbW1hbmRDb21waWxlciB7XG4gIGNvbXBpbGVDb21wb25lbnRSdW50aW1lKGNvbXBvbmVudDogQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhLCB0ZW1wbGF0ZTogVGVtcGxhdGVBc3RbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0b3JGYWN0b3JpZXM6IEZ1bmN0aW9uW10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFRlbXBsYXRlRmFjdG9yeTogRnVuY3Rpb24pOiBUZW1wbGF0ZUNtZFtdIHtcbiAgICB2YXIgdmlzaXRvciA9IG5ldyBDb21tYW5kQnVpbGRlclZpc2l0b3IoXG4gICAgICAgIG5ldyBSdW50aW1lQ29tbWFuZEZhY3RvcnkoY29tcG9uZW50LCBjb21wb25lbnRUZW1wbGF0ZUZhY3RvcnksIGNoYW5nZURldGVjdG9yRmFjdG9yaWVzKSwgMCk7XG4gICAgdGVtcGxhdGVWaXNpdEFsbCh2aXNpdG9yLCB0ZW1wbGF0ZSk7XG4gICAgcmV0dXJuIHZpc2l0b3IucmVzdWx0O1xuICB9XG5cbiAgY29tcGlsZUNvbXBvbmVudENvZGVHZW4oY29tcG9uZW50OiBDb21waWxlRGlyZWN0aXZlTWV0YWRhdGEsIHRlbXBsYXRlOiBUZW1wbGF0ZUFzdFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3RvckZhY3RvcnlFeHByZXNzaW9uczogc3RyaW5nW10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFRlbXBsYXRlRmFjdG9yeTogRnVuY3Rpb24pOiBTb3VyY2VFeHByZXNzaW9uIHtcbiAgICB2YXIgdmlzaXRvciA9XG4gICAgICAgIG5ldyBDb21tYW5kQnVpbGRlclZpc2l0b3IobmV3IENvZGVnZW5Db21tYW5kRmFjdG9yeShjb21wb25lbnQsIGNvbXBvbmVudFRlbXBsYXRlRmFjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdG9yRmFjdG9yeUV4cHJlc3Npb25zKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTtcbiAgICB0ZW1wbGF0ZVZpc2l0QWxsKHZpc2l0b3IsIHRlbXBsYXRlKTtcbiAgICByZXR1cm4gbmV3IFNvdXJjZUV4cHJlc3Npb24oW10sIGNvZGVHZW5BcnJheSh2aXNpdG9yLnJlc3VsdCkpO1xuICB9XG59XG5cbmludGVyZmFjZSBDb21tYW5kRmFjdG9yeTxSPiB7XG4gIGNyZWF0ZVRleHQodmFsdWU6IHN0cmluZywgaXNCb3VuZDogYm9vbGVhbiwgbmdDb250ZW50SW5kZXg6IG51bWJlcik6IFI7XG4gIGNyZWF0ZU5nQ29udGVudChpbmRleDogbnVtYmVyLCBuZ0NvbnRlbnRJbmRleDogbnVtYmVyKTogUjtcbiAgY3JlYXRlQmVnaW5FbGVtZW50KG5hbWU6IHN0cmluZywgYXR0ck5hbWVBbmRWYWx1ZXM6IHN0cmluZ1tdLCBldmVudFRhcmdldEFuZE5hbWVzOiBzdHJpbmdbXSxcbiAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlTmFtZUFuZFZhbHVlczogc3RyaW5nW10sIGRpcmVjdGl2ZXM6IENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YVtdLFxuICAgICAgICAgICAgICAgICAgICAgaXNCb3VuZDogYm9vbGVhbiwgbmdDb250ZW50SW5kZXg6IG51bWJlcik6IFI7XG4gIGNyZWF0ZUVuZEVsZW1lbnQoKTogUjtcbiAgY3JlYXRlQmVnaW5Db21wb25lbnQobmFtZTogc3RyaW5nLCBhdHRyTmFtZUFuZFZhbHVlczogc3RyaW5nW10sIGV2ZW50VGFyZ2V0QW5kTmFtZXM6IHN0cmluZ1tdLFxuICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZU5hbWVBbmRWYWx1ZXM6IHN0cmluZ1tdLCBkaXJlY3RpdmVzOiBDb21waWxlRGlyZWN0aXZlTWV0YWRhdGFbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24sIG5nQ29udGVudEluZGV4OiBudW1iZXIpOiBSO1xuICBjcmVhdGVFbmRDb21wb25lbnQoKTogUjtcbiAgY3JlYXRlRW1iZWRkZWRUZW1wbGF0ZShlbWJlZGRlZFRlbXBsYXRlSW5kZXg6IG51bWJlciwgYXR0ck5hbWVBbmRWYWx1ZXM6IHN0cmluZ1tdLFxuICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlTmFtZUFuZFZhbHVlczogc3RyaW5nW10sIGRpcmVjdGl2ZXM6IENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YVtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgIGlzTWVyZ2VkOiBib29sZWFuLCBuZ0NvbnRlbnRJbmRleDogbnVtYmVyLCBjaGlsZHJlbjogUltdKTogUjtcbn1cblxuY2xhc3MgUnVudGltZUNvbW1hbmRGYWN0b3J5IGltcGxlbWVudHMgQ29tbWFuZEZhY3Rvcnk8VGVtcGxhdGVDbWQ+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21wb25lbnQ6IENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRUZW1wbGF0ZUZhY3Rvcnk6IEZ1bmN0aW9uLFxuICAgICAgICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yRmFjdG9yaWVzOiBGdW5jdGlvbltdKSB7fVxuICBwcml2YXRlIF9tYXBEaXJlY3RpdmVzKGRpcmVjdGl2ZXM6IENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YVtdKTogVHlwZVtdIHtcbiAgICByZXR1cm4gZGlyZWN0aXZlcy5tYXAoZGlyZWN0aXZlID0+IGRpcmVjdGl2ZS50eXBlLnJ1bnRpbWUpO1xuICB9XG5cbiAgY3JlYXRlVGV4dCh2YWx1ZTogc3RyaW5nLCBpc0JvdW5kOiBib29sZWFuLCBuZ0NvbnRlbnRJbmRleDogbnVtYmVyKTogVGVtcGxhdGVDbWQge1xuICAgIHJldHVybiBuZXcgVGV4dENtZCh2YWx1ZSwgaXNCb3VuZCwgbmdDb250ZW50SW5kZXgpO1xuICB9XG4gIGNyZWF0ZU5nQ29udGVudChpbmRleDogbnVtYmVyLCBuZ0NvbnRlbnRJbmRleDogbnVtYmVyKTogVGVtcGxhdGVDbWQge1xuICAgIHJldHVybiBuZXcgTmdDb250ZW50Q21kKGluZGV4LCBuZ0NvbnRlbnRJbmRleCk7XG4gIH1cbiAgY3JlYXRlQmVnaW5FbGVtZW50KG5hbWU6IHN0cmluZywgYXR0ck5hbWVBbmRWYWx1ZXM6IHN0cmluZ1tdLCBldmVudFRhcmdldEFuZE5hbWVzOiBzdHJpbmdbXSxcbiAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlTmFtZUFuZFZhbHVlczogc3RyaW5nW10sIGRpcmVjdGl2ZXM6IENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YVtdLFxuICAgICAgICAgICAgICAgICAgICAgaXNCb3VuZDogYm9vbGVhbiwgbmdDb250ZW50SW5kZXg6IG51bWJlcik6IFRlbXBsYXRlQ21kIHtcbiAgICByZXR1cm4gbmV3IEJlZ2luRWxlbWVudENtZChuYW1lLCBhdHRyTmFtZUFuZFZhbHVlcywgZXZlbnRUYXJnZXRBbmROYW1lcywgdmFyaWFibGVOYW1lQW5kVmFsdWVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21hcERpcmVjdGl2ZXMoZGlyZWN0aXZlcyksIGlzQm91bmQsIG5nQ29udGVudEluZGV4KTtcbiAgfVxuICBjcmVhdGVFbmRFbGVtZW50KCk6IFRlbXBsYXRlQ21kIHsgcmV0dXJuIG5ldyBFbmRFbGVtZW50Q21kKCk7IH1cbiAgY3JlYXRlQmVnaW5Db21wb25lbnQobmFtZTogc3RyaW5nLCBhdHRyTmFtZUFuZFZhbHVlczogc3RyaW5nW10sIGV2ZW50VGFyZ2V0QW5kTmFtZXM6IHN0cmluZ1tdLFxuICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZU5hbWVBbmRWYWx1ZXM6IHN0cmluZ1tdLCBkaXJlY3RpdmVzOiBDb21waWxlRGlyZWN0aXZlTWV0YWRhdGFbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24sIG5nQ29udGVudEluZGV4OiBudW1iZXIpOiBUZW1wbGF0ZUNtZCB7XG4gICAgdmFyIG5lc3RlZFRlbXBsYXRlQWNjZXNzb3IgPSB0aGlzLmNvbXBvbmVudFRlbXBsYXRlRmFjdG9yeShkaXJlY3RpdmVzWzBdKTtcbiAgICByZXR1cm4gbmV3IEJlZ2luQ29tcG9uZW50Q21kKG5hbWUsIGF0dHJOYW1lQW5kVmFsdWVzLCBldmVudFRhcmdldEFuZE5hbWVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVOYW1lQW5kVmFsdWVzLCB0aGlzLl9tYXBEaXJlY3RpdmVzKGRpcmVjdGl2ZXMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jYXBzdWxhdGlvbiwgbmdDb250ZW50SW5kZXgsIG5lc3RlZFRlbXBsYXRlQWNjZXNzb3IpO1xuICB9XG4gIGNyZWF0ZUVuZENvbXBvbmVudCgpOiBUZW1wbGF0ZUNtZCB7IHJldHVybiBuZXcgRW5kQ29tcG9uZW50Q21kKCk7IH1cbiAgY3JlYXRlRW1iZWRkZWRUZW1wbGF0ZShlbWJlZGRlZFRlbXBsYXRlSW5kZXg6IG51bWJlciwgYXR0ck5hbWVBbmRWYWx1ZXM6IHN0cmluZ1tdLFxuICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlTmFtZUFuZFZhbHVlczogc3RyaW5nW10sIGRpcmVjdGl2ZXM6IENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YVtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgIGlzTWVyZ2VkOiBib29sZWFuLCBuZ0NvbnRlbnRJbmRleDogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBUZW1wbGF0ZUNtZFtdKTogVGVtcGxhdGVDbWQge1xuICAgIHJldHVybiBuZXcgRW1iZWRkZWRUZW1wbGF0ZUNtZChhdHRyTmFtZUFuZFZhbHVlcywgdmFyaWFibGVOYW1lQW5kVmFsdWVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXBEaXJlY3RpdmVzKGRpcmVjdGl2ZXMpLCBpc01lcmdlZCwgbmdDb250ZW50SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JGYWN0b3JpZXNbZW1iZWRkZWRUZW1wbGF0ZUluZGV4XSwgY2hpbGRyZW4pO1xuICB9XG59XG5cbmNsYXNzIENvZGVnZW5Db21tYW5kRmFjdG9yeSBpbXBsZW1lbnRzIENvbW1hbmRGYWN0b3J5PEV4cHJlc3Npb24+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21wb25lbnQ6IENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRUZW1wbGF0ZUZhY3Rvcnk6IEZ1bmN0aW9uLFxuICAgICAgICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yRmFjdG9yeUV4cHJlc3Npb25zOiBzdHJpbmdbXSkge31cblxuICBjcmVhdGVUZXh0KHZhbHVlOiBzdHJpbmcsIGlzQm91bmQ6IGJvb2xlYW4sIG5nQ29udGVudEluZGV4OiBudW1iZXIpOiBFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gbmV3IEV4cHJlc3Npb24oXG4gICAgICAgIGAke2NvZGVHZW5Db25zdENvbnN0cnVjdG9yQ2FsbChURU1QTEFURV9DT01NQU5EU19NT0RVTEVfUkVGKydUZXh0Q21kJyl9KCR7ZXNjYXBlU2luZ2xlUXVvdGVTdHJpbmcodmFsdWUpfSwgJHtpc0JvdW5kfSwgJHtuZ0NvbnRlbnRJbmRleH0pYCk7XG4gIH1cbiAgY3JlYXRlTmdDb250ZW50KGluZGV4OiBudW1iZXIsIG5nQ29udGVudEluZGV4OiBudW1iZXIpOiBFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gbmV3IEV4cHJlc3Npb24oXG4gICAgICAgIGAke2NvZGVHZW5Db25zdENvbnN0cnVjdG9yQ2FsbChURU1QTEFURV9DT01NQU5EU19NT0RVTEVfUkVGKydOZ0NvbnRlbnRDbWQnKX0oJHtpbmRleH0sICR7bmdDb250ZW50SW5kZXh9KWApO1xuICB9XG4gIGNyZWF0ZUJlZ2luRWxlbWVudChuYW1lOiBzdHJpbmcsIGF0dHJOYW1lQW5kVmFsdWVzOiBzdHJpbmdbXSwgZXZlbnRUYXJnZXRBbmROYW1lczogc3RyaW5nW10sXG4gICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZU5hbWVBbmRWYWx1ZXM6IHN0cmluZ1tdLCBkaXJlY3RpdmVzOiBDb21waWxlRGlyZWN0aXZlTWV0YWRhdGFbXSxcbiAgICAgICAgICAgICAgICAgICAgIGlzQm91bmQ6IGJvb2xlYW4sIG5nQ29udGVudEluZGV4OiBudW1iZXIpOiBFeHByZXNzaW9uIHtcbiAgICB2YXIgYXR0cnNFeHByZXNzaW9uID0gY29kZUdlbkFycmF5KGF0dHJOYW1lQW5kVmFsdWVzKTtcbiAgICByZXR1cm4gbmV3IEV4cHJlc3Npb24oXG4gICAgICAgIGAke2NvZGVHZW5Db25zdENvbnN0cnVjdG9yQ2FsbChURU1QTEFURV9DT01NQU5EU19NT0RVTEVfUkVGKydCZWdpbkVsZW1lbnRDbWQnKX0oJHtlc2NhcGVTaW5nbGVRdW90ZVN0cmluZyhuYW1lKX0sICR7YXR0cnNFeHByZXNzaW9ufSwgYCArXG4gICAgICAgIGAke2NvZGVHZW5BcnJheShldmVudFRhcmdldEFuZE5hbWVzKX0sICR7Y29kZUdlbkFycmF5KHZhcmlhYmxlTmFtZUFuZFZhbHVlcyl9LCAke2NvZGVHZW5EaXJlY3RpdmVzQXJyYXkoZGlyZWN0aXZlcyl9LCAke2lzQm91bmR9LCAke25nQ29udGVudEluZGV4fSlgKTtcbiAgfVxuICBjcmVhdGVFbmRFbGVtZW50KCk6IEV4cHJlc3Npb24ge1xuICAgIHJldHVybiBuZXcgRXhwcmVzc2lvbihcbiAgICAgICAgYCR7Y29kZUdlbkNvbnN0Q29uc3RydWN0b3JDYWxsKFRFTVBMQVRFX0NPTU1BTkRTX01PRFVMRV9SRUYrJ0VuZEVsZW1lbnRDbWQnKX0oKWApO1xuICB9XG4gIGNyZWF0ZUJlZ2luQ29tcG9uZW50KG5hbWU6IHN0cmluZywgYXR0ck5hbWVBbmRWYWx1ZXM6IHN0cmluZ1tdLCBldmVudFRhcmdldEFuZE5hbWVzOiBzdHJpbmdbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVOYW1lQW5kVmFsdWVzOiBzdHJpbmdbXSwgZGlyZWN0aXZlczogQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhW10sXG4gICAgICAgICAgICAgICAgICAgICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLCBuZ0NvbnRlbnRJbmRleDogbnVtYmVyKTogRXhwcmVzc2lvbiB7XG4gICAgdmFyIGF0dHJzRXhwcmVzc2lvbiA9IGNvZGVHZW5BcnJheShhdHRyTmFtZUFuZFZhbHVlcyk7XG4gICAgcmV0dXJuIG5ldyBFeHByZXNzaW9uKFxuICAgICAgICBgJHtjb2RlR2VuQ29uc3RDb25zdHJ1Y3RvckNhbGwoVEVNUExBVEVfQ09NTUFORFNfTU9EVUxFX1JFRisnQmVnaW5Db21wb25lbnRDbWQnKX0oJHtlc2NhcGVTaW5nbGVRdW90ZVN0cmluZyhuYW1lKX0sICR7YXR0cnNFeHByZXNzaW9ufSwgYCArXG4gICAgICAgIGAke2NvZGVHZW5BcnJheShldmVudFRhcmdldEFuZE5hbWVzKX0sICR7Y29kZUdlbkFycmF5KHZhcmlhYmxlTmFtZUFuZFZhbHVlcyl9LCAke2NvZGVHZW5EaXJlY3RpdmVzQXJyYXkoZGlyZWN0aXZlcyl9LCAke2NvZGVHZW5WaWV3RW5jYXBzdWxhdGlvbihlbmNhcHN1bGF0aW9uKX0sICR7bmdDb250ZW50SW5kZXh9LCAke3RoaXMuY29tcG9uZW50VGVtcGxhdGVGYWN0b3J5KGRpcmVjdGl2ZXNbMF0pfSlgKTtcbiAgfVxuICBjcmVhdGVFbmRDb21wb25lbnQoKTogRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBFeHByZXNzaW9uKFxuICAgICAgICBgJHtjb2RlR2VuQ29uc3RDb25zdHJ1Y3RvckNhbGwoVEVNUExBVEVfQ09NTUFORFNfTU9EVUxFX1JFRisnRW5kQ29tcG9uZW50Q21kJyl9KClgKTtcbiAgfVxuICBjcmVhdGVFbWJlZGRlZFRlbXBsYXRlKGVtYmVkZGVkVGVtcGxhdGVJbmRleDogbnVtYmVyLCBhdHRyTmFtZUFuZFZhbHVlczogc3RyaW5nW10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVOYW1lQW5kVmFsdWVzOiBzdHJpbmdbXSwgZGlyZWN0aXZlczogQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhW10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgaXNNZXJnZWQ6IGJvb2xlYW4sIG5nQ29udGVudEluZGV4OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IEV4cHJlc3Npb25bXSk6IEV4cHJlc3Npb24ge1xuICAgIHJldHVybiBuZXcgRXhwcmVzc2lvbihcbiAgICAgICAgYCR7Y29kZUdlbkNvbnN0Q29uc3RydWN0b3JDYWxsKFRFTVBMQVRFX0NPTU1BTkRTX01PRFVMRV9SRUYrJ0VtYmVkZGVkVGVtcGxhdGVDbWQnKX0oJHtjb2RlR2VuQXJyYXkoYXR0ck5hbWVBbmRWYWx1ZXMpfSwgJHtjb2RlR2VuQXJyYXkodmFyaWFibGVOYW1lQW5kVmFsdWVzKX0sIGAgK1xuICAgICAgICBgJHtjb2RlR2VuRGlyZWN0aXZlc0FycmF5KGRpcmVjdGl2ZXMpfSwgJHtpc01lcmdlZH0sICR7bmdDb250ZW50SW5kZXh9LCAke3RoaXMuY2hhbmdlRGV0ZWN0b3JGYWN0b3J5RXhwcmVzc2lvbnNbZW1iZWRkZWRUZW1wbGF0ZUluZGV4XX0sICR7Y29kZUdlbkFycmF5KGNoaWxkcmVuKX0pYCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdmlzaXRBbmRSZXR1cm5Db250ZXh0KHZpc2l0b3I6IFRlbXBsYXRlQXN0VmlzaXRvciwgYXN0czogVGVtcGxhdGVBc3RbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBhbnkpOiBhbnkge1xuICB0ZW1wbGF0ZVZpc2l0QWxsKHZpc2l0b3IsIGFzdHMsIGNvbnRleHQpO1xuICByZXR1cm4gY29udGV4dDtcbn1cblxuY2xhc3MgQ29tbWFuZEJ1aWxkZXJWaXNpdG9yPFI+IGltcGxlbWVudHMgVGVtcGxhdGVBc3RWaXNpdG9yIHtcbiAgcmVzdWx0OiBSW10gPSBbXTtcbiAgdHJhbnNpdGl2ZU5nQ29udGVudENvdW50OiBudW1iZXIgPSAwO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgY29tbWFuZEZhY3Rvcnk6IENvbW1hbmRGYWN0b3J5PFI+LCBwdWJsaWMgZW1iZWRkZWRUZW1wbGF0ZUluZGV4OiBudW1iZXIpIHt9XG5cbiAgcHJpdmF0ZSBfcmVhZEF0dHJOYW1lQW5kVmFsdWVzKGRpcmVjdGl2ZXM6IENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YVtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ckFzdHM6IFRlbXBsYXRlQXN0W10pOiBzdHJpbmdbXSB7XG4gICAgdmFyIGF0dHJzID0ga2V5VmFsdWVBcnJheVRvTWFwKHZpc2l0QW5kUmV0dXJuQ29udGV4dCh0aGlzLCBhdHRyQXN0cywgW10pKTtcbiAgICBkaXJlY3RpdmVzLmZvckVhY2goZGlyZWN0aXZlTWV0YSA9PiB7XG4gICAgICBTdHJpbmdNYXBXcmFwcGVyLmZvckVhY2goZGlyZWN0aXZlTWV0YS5ob3N0QXR0cmlidXRlcywgKHZhbHVlLCBuYW1lKSA9PiB7XG4gICAgICAgIHZhciBwcmV2VmFsdWUgPSBhdHRyc1tuYW1lXTtcbiAgICAgICAgYXR0cnNbbmFtZV0gPSBpc1ByZXNlbnQocHJldlZhbHVlKSA/IG1lcmdlQXR0cmlidXRlVmFsdWUobmFtZSwgcHJldlZhbHVlLCB2YWx1ZSkgOiB2YWx1ZTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBtYXBUb0tleVZhbHVlQXJyYXkoYXR0cnMpO1xuICB9XG5cbiAgdmlzaXROZ0NvbnRlbnQoYXN0OiBOZ0NvbnRlbnRBc3QsIGNvbnRleHQ6IGFueSk6IGFueSB7XG4gICAgdGhpcy50cmFuc2l0aXZlTmdDb250ZW50Q291bnQrKztcbiAgICB0aGlzLnJlc3VsdC5wdXNoKHRoaXMuY29tbWFuZEZhY3RvcnkuY3JlYXRlTmdDb250ZW50KGFzdC5pbmRleCwgYXN0Lm5nQ29udGVudEluZGV4KSk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgdmlzaXRFbWJlZGRlZFRlbXBsYXRlKGFzdDogRW1iZWRkZWRUZW1wbGF0ZUFzdCwgY29udGV4dDogYW55KTogYW55IHtcbiAgICB0aGlzLmVtYmVkZGVkVGVtcGxhdGVJbmRleCsrO1xuICAgIHZhciBjaGlsZFZpc2l0b3IgPSBuZXcgQ29tbWFuZEJ1aWxkZXJWaXNpdG9yKHRoaXMuY29tbWFuZEZhY3RvcnksIHRoaXMuZW1iZWRkZWRUZW1wbGF0ZUluZGV4KTtcbiAgICB0ZW1wbGF0ZVZpc2l0QWxsKGNoaWxkVmlzaXRvciwgYXN0LmNoaWxkcmVuKTtcbiAgICB2YXIgaXNNZXJnZWQgPSBjaGlsZFZpc2l0b3IudHJhbnNpdGl2ZU5nQ29udGVudENvdW50ID4gMDtcbiAgICB2YXIgdmFyaWFibGVOYW1lQW5kVmFsdWVzID0gW107XG4gICAgYXN0LnZhcnMuZm9yRWFjaCgodmFyQXN0KSA9PiB7XG4gICAgICB2YXJpYWJsZU5hbWVBbmRWYWx1ZXMucHVzaCh2YXJBc3QubmFtZSk7XG4gICAgICB2YXJpYWJsZU5hbWVBbmRWYWx1ZXMucHVzaCh2YXJBc3QudmFsdWUubGVuZ3RoID4gMCA/IHZhckFzdC52YWx1ZSA6IElNUExJQ0lUX1RFTVBMQVRFX1ZBUik7XG4gICAgfSk7XG4gICAgdmFyIGRpcmVjdGl2ZXMgPSBbXTtcbiAgICBMaXN0V3JhcHBlci5mb3JFYWNoV2l0aEluZGV4KGFzdC5kaXJlY3RpdmVzLCAoZGlyZWN0aXZlQXN0OiBEaXJlY3RpdmVBc3QsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGRpcmVjdGl2ZUFzdC52aXNpdCh0aGlzLCBuZXcgRGlyZWN0aXZlQ29udGV4dChpbmRleCwgW10sIFtdLCBkaXJlY3RpdmVzKSk7XG4gICAgfSk7XG4gICAgdGhpcy5yZXN1bHQucHVzaCh0aGlzLmNvbW1hbmRGYWN0b3J5LmNyZWF0ZUVtYmVkZGVkVGVtcGxhdGUoXG4gICAgICAgIHRoaXMuZW1iZWRkZWRUZW1wbGF0ZUluZGV4LCB0aGlzLl9yZWFkQXR0ck5hbWVBbmRWYWx1ZXMoZGlyZWN0aXZlcywgYXN0LmF0dHJzKSxcbiAgICAgICAgdmFyaWFibGVOYW1lQW5kVmFsdWVzLCBkaXJlY3RpdmVzLCBpc01lcmdlZCwgYXN0Lm5nQ29udGVudEluZGV4LCBjaGlsZFZpc2l0b3IucmVzdWx0KSk7XG4gICAgdGhpcy50cmFuc2l0aXZlTmdDb250ZW50Q291bnQgKz0gY2hpbGRWaXNpdG9yLnRyYW5zaXRpdmVOZ0NvbnRlbnRDb3VudDtcbiAgICB0aGlzLmVtYmVkZGVkVGVtcGxhdGVJbmRleCA9IGNoaWxkVmlzaXRvci5lbWJlZGRlZFRlbXBsYXRlSW5kZXg7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgdmlzaXRFbGVtZW50KGFzdDogRWxlbWVudEFzdCwgY29udGV4dDogYW55KTogYW55IHtcbiAgICB2YXIgY29tcG9uZW50ID0gYXN0LmdldENvbXBvbmVudCgpO1xuICAgIHZhciBldmVudFRhcmdldEFuZE5hbWVzID0gdmlzaXRBbmRSZXR1cm5Db250ZXh0KHRoaXMsIGFzdC5vdXRwdXRzLCBbXSk7XG4gICAgdmFyIHZhcmlhYmxlTmFtZUFuZFZhbHVlcyA9IFtdO1xuICAgIGlmIChpc0JsYW5rKGNvbXBvbmVudCkpIHtcbiAgICAgIGFzdC5leHBvcnRBc1ZhcnMuZm9yRWFjaCgodmFyQXN0KSA9PiB7XG4gICAgICAgIHZhcmlhYmxlTmFtZUFuZFZhbHVlcy5wdXNoKHZhckFzdC5uYW1lKTtcbiAgICAgICAgdmFyaWFibGVOYW1lQW5kVmFsdWVzLnB1c2gobnVsbCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdmFyIGRpcmVjdGl2ZXMgPSBbXTtcbiAgICBMaXN0V3JhcHBlci5mb3JFYWNoV2l0aEluZGV4KGFzdC5kaXJlY3RpdmVzLCAoZGlyZWN0aXZlQXN0OiBEaXJlY3RpdmVBc3QsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGRpcmVjdGl2ZUFzdC52aXNpdCh0aGlzLCBuZXcgRGlyZWN0aXZlQ29udGV4dChpbmRleCwgZXZlbnRUYXJnZXRBbmROYW1lcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZU5hbWVBbmRWYWx1ZXMsIGRpcmVjdGl2ZXMpKTtcbiAgICB9KTtcbiAgICBldmVudFRhcmdldEFuZE5hbWVzID0gcmVtb3ZlS2V5VmFsdWVBcnJheUR1cGxpY2F0ZXMoZXZlbnRUYXJnZXRBbmROYW1lcyk7XG5cbiAgICB2YXIgYXR0ck5hbWVBbmRWYWx1ZXMgPSB0aGlzLl9yZWFkQXR0ck5hbWVBbmRWYWx1ZXMoZGlyZWN0aXZlcywgYXN0LmF0dHJzKTtcbiAgICBpZiAoaXNQcmVzZW50KGNvbXBvbmVudCkpIHtcbiAgICAgIHRoaXMucmVzdWx0LnB1c2godGhpcy5jb21tYW5kRmFjdG9yeS5jcmVhdGVCZWdpbkNvbXBvbmVudChcbiAgICAgICAgICBhc3QubmFtZSwgYXR0ck5hbWVBbmRWYWx1ZXMsIGV2ZW50VGFyZ2V0QW5kTmFtZXMsIHZhcmlhYmxlTmFtZUFuZFZhbHVlcywgZGlyZWN0aXZlcyxcbiAgICAgICAgICBjb21wb25lbnQudGVtcGxhdGUuZW5jYXBzdWxhdGlvbiwgYXN0Lm5nQ29udGVudEluZGV4KSk7XG4gICAgICB0ZW1wbGF0ZVZpc2l0QWxsKHRoaXMsIGFzdC5jaGlsZHJlbik7XG4gICAgICB0aGlzLnJlc3VsdC5wdXNoKHRoaXMuY29tbWFuZEZhY3RvcnkuY3JlYXRlRW5kQ29tcG9uZW50KCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlc3VsdC5wdXNoKHRoaXMuY29tbWFuZEZhY3RvcnkuY3JlYXRlQmVnaW5FbGVtZW50KFxuICAgICAgICAgIGFzdC5uYW1lLCBhdHRyTmFtZUFuZFZhbHVlcywgZXZlbnRUYXJnZXRBbmROYW1lcywgdmFyaWFibGVOYW1lQW5kVmFsdWVzLCBkaXJlY3RpdmVzLFxuICAgICAgICAgIGFzdC5pc0JvdW5kKCksIGFzdC5uZ0NvbnRlbnRJbmRleCkpO1xuICAgICAgdGVtcGxhdGVWaXNpdEFsbCh0aGlzLCBhc3QuY2hpbGRyZW4pO1xuICAgICAgdGhpcy5yZXN1bHQucHVzaCh0aGlzLmNvbW1hbmRGYWN0b3J5LmNyZWF0ZUVuZEVsZW1lbnQoKSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHZpc2l0VmFyaWFibGUoYXN0OiBWYXJpYWJsZUFzdCwgY3R4OiBhbnkpOiBhbnkgeyByZXR1cm4gbnVsbDsgfVxuICB2aXNpdEF0dHIoYXN0OiBBdHRyQXN0LCBhdHRyTmFtZUFuZFZhbHVlczogc3RyaW5nW10pOiBhbnkge1xuICAgIGF0dHJOYW1lQW5kVmFsdWVzLnB1c2goYXN0Lm5hbWUpO1xuICAgIGF0dHJOYW1lQW5kVmFsdWVzLnB1c2goYXN0LnZhbHVlKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICB2aXNpdEJvdW5kVGV4dChhc3Q6IEJvdW5kVGV4dEFzdCwgY29udGV4dDogYW55KTogYW55IHtcbiAgICB0aGlzLnJlc3VsdC5wdXNoKHRoaXMuY29tbWFuZEZhY3RvcnkuY3JlYXRlVGV4dChudWxsLCB0cnVlLCBhc3QubmdDb250ZW50SW5kZXgpKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICB2aXNpdFRleHQoYXN0OiBUZXh0QXN0LCBjb250ZXh0OiBhbnkpOiBhbnkge1xuICAgIHRoaXMucmVzdWx0LnB1c2godGhpcy5jb21tYW5kRmFjdG9yeS5jcmVhdGVUZXh0KGFzdC52YWx1ZSwgZmFsc2UsIGFzdC5uZ0NvbnRlbnRJbmRleCkpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHZpc2l0RGlyZWN0aXZlKGFzdDogRGlyZWN0aXZlQXN0LCBjdHg6IERpcmVjdGl2ZUNvbnRleHQpOiBhbnkge1xuICAgIGN0eC50YXJnZXREaXJlY3RpdmVzLnB1c2goYXN0LmRpcmVjdGl2ZSk7XG4gICAgdGVtcGxhdGVWaXNpdEFsbCh0aGlzLCBhc3QuaG9zdEV2ZW50cywgY3R4LmV2ZW50VGFyZ2V0QW5kTmFtZXMpO1xuICAgIGFzdC5leHBvcnRBc1ZhcnMuZm9yRWFjaCh2YXJBc3QgPT4ge1xuICAgICAgY3R4LnRhcmdldFZhcmlhYmxlTmFtZUFuZFZhbHVlcy5wdXNoKHZhckFzdC5uYW1lKTtcbiAgICAgIGN0eC50YXJnZXRWYXJpYWJsZU5hbWVBbmRWYWx1ZXMucHVzaChjdHguaW5kZXgpO1xuICAgIH0pO1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHZpc2l0RXZlbnQoYXN0OiBCb3VuZEV2ZW50QXN0LCBldmVudFRhcmdldEFuZE5hbWVzOiBzdHJpbmdbXSk6IGFueSB7XG4gICAgZXZlbnRUYXJnZXRBbmROYW1lcy5wdXNoKGFzdC50YXJnZXQpO1xuICAgIGV2ZW50VGFyZ2V0QW5kTmFtZXMucHVzaChhc3QubmFtZSk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgdmlzaXREaXJlY3RpdmVQcm9wZXJ0eShhc3Q6IEJvdW5kRGlyZWN0aXZlUHJvcGVydHlBc3QsIGNvbnRleHQ6IGFueSk6IGFueSB7IHJldHVybiBudWxsOyB9XG4gIHZpc2l0RWxlbWVudFByb3BlcnR5KGFzdDogQm91bmRFbGVtZW50UHJvcGVydHlBc3QsIGNvbnRleHQ6IGFueSk6IGFueSB7IHJldHVybiBudWxsOyB9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUtleVZhbHVlQXJyYXlEdXBsaWNhdGVzKGtleVZhbHVlQXJyYXk6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICB2YXIga25vd25QYWlycyA9IG5ldyBTZXQoKTtcbiAgdmFyIHJlc3VsdEtleVZhbHVlQXJyYXkgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlWYWx1ZUFycmF5Lmxlbmd0aDsgaSArPSAyKSB7XG4gICAgdmFyIGtleSA9IGtleVZhbHVlQXJyYXlbaV07XG4gICAgdmFyIHZhbHVlID0ga2V5VmFsdWVBcnJheVtpICsgMV07XG4gICAgdmFyIHBhaXJJZCA9IGAke2tleX06JHt2YWx1ZX1gO1xuICAgIGlmICghU2V0V3JhcHBlci5oYXMoa25vd25QYWlycywgcGFpcklkKSkge1xuICAgICAgcmVzdWx0S2V5VmFsdWVBcnJheS5wdXNoKGtleSk7XG4gICAgICByZXN1bHRLZXlWYWx1ZUFycmF5LnB1c2godmFsdWUpO1xuICAgICAga25vd25QYWlycy5hZGQocGFpcklkKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdEtleVZhbHVlQXJyYXk7XG59XG5cbmZ1bmN0aW9uIGtleVZhbHVlQXJyYXlUb01hcChrZXlWYWx1ZUFycjogc3RyaW5nW10pOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSB7XG4gIHZhciBkYXRhOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHt9O1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGtleVZhbHVlQXJyLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgZGF0YVtrZXlWYWx1ZUFycltpXV0gPSBrZXlWYWx1ZUFycltpICsgMV07XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIG1hcFRvS2V5VmFsdWVBcnJheShkYXRhOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSk6IHN0cmluZ1tdIHtcbiAgdmFyIGVudHJ5QXJyYXkgPSBbXTtcbiAgU3RyaW5nTWFwV3JhcHBlci5mb3JFYWNoKGRhdGEsICh2YWx1ZSwgbmFtZSkgPT4geyBlbnRyeUFycmF5LnB1c2goW25hbWUsIHZhbHVlXSk7IH0pO1xuICAvLyBXZSBuZWVkIHRvIHNvcnQgdG8gZ2V0IGEgZGVmaW5lZCBvdXRwdXQgb3JkZXJcbiAgLy8gZm9yIHRlc3RzIGFuZCBmb3IgY2FjaGluZyBnZW5lcmF0ZWQgYXJ0aWZhY3RzLi4uXG4gIExpc3RXcmFwcGVyLnNvcnQoZW50cnlBcnJheSwgKGVudHJ5MSwgZW50cnkyKSA9PiBTdHJpbmdXcmFwcGVyLmNvbXBhcmUoZW50cnkxWzBdLCBlbnRyeTJbMF0pKTtcbiAgdmFyIGtleVZhbHVlQXJyYXkgPSBbXTtcbiAgZW50cnlBcnJheS5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgIGtleVZhbHVlQXJyYXkucHVzaChlbnRyeVswXSk7XG4gICAga2V5VmFsdWVBcnJheS5wdXNoKGVudHJ5WzFdKTtcbiAgfSk7XG4gIHJldHVybiBrZXlWYWx1ZUFycmF5O1xufVxuXG5mdW5jdGlvbiBtZXJnZUF0dHJpYnV0ZVZhbHVlKGF0dHJOYW1lOiBzdHJpbmcsIGF0dHJWYWx1ZTE6IHN0cmluZywgYXR0clZhbHVlMjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGF0dHJOYW1lID09IENMQVNTX0FUVFIgfHwgYXR0ck5hbWUgPT0gU1RZTEVfQVRUUikge1xuICAgIHJldHVybiBgJHthdHRyVmFsdWUxfSAke2F0dHJWYWx1ZTJ9YDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYXR0clZhbHVlMjtcbiAgfVxufVxuXG5jbGFzcyBEaXJlY3RpdmVDb250ZXh0IHtcbiAgY29uc3RydWN0b3IocHVibGljIGluZGV4OiBudW1iZXIsIHB1YmxpYyBldmVudFRhcmdldEFuZE5hbWVzOiBzdHJpbmdbXSxcbiAgICAgICAgICAgICAgcHVibGljIHRhcmdldFZhcmlhYmxlTmFtZUFuZFZhbHVlczogYW55W10sXG4gICAgICAgICAgICAgIHB1YmxpYyB0YXJnZXREaXJlY3RpdmVzOiBDb21waWxlRGlyZWN0aXZlTWV0YWRhdGFbXSkge31cbn1cblxuY2xhc3MgRXhwcmVzc2lvbiB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2YWx1ZTogc3RyaW5nKSB7fVxufVxuXG5mdW5jdGlvbiBlc2NhcGVWYWx1ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRXhwcmVzc2lvbikge1xuICAgIHJldHVybiB2YWx1ZS52YWx1ZTtcbiAgfSBlbHNlIGlmIChpc1N0cmluZyh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZXNjYXBlU2luZ2xlUXVvdGVTdHJpbmcodmFsdWUpO1xuICB9IGVsc2UgaWYgKGlzQmxhbmsodmFsdWUpKSB7XG4gICAgcmV0dXJuICdudWxsJztcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYCR7dmFsdWV9YDtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb2RlR2VuQXJyYXkoZGF0YTogYW55W10pOiBzdHJpbmcge1xuICB2YXIgYmFzZSA9IGBbJHtkYXRhLm1hcChlc2NhcGVWYWx1ZSkuam9pbignLCcpfV1gO1xuICByZXR1cm4gSVNfREFSVCA/IGBjb25zdCAke2Jhc2V9YCA6IGJhc2U7XG59XG5cbmZ1bmN0aW9uIGNvZGVHZW5EaXJlY3RpdmVzQXJyYXkoZGlyZWN0aXZlczogQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhW10pOiBzdHJpbmcge1xuICB2YXIgZXhwcmVzc2lvbnMgPSBkaXJlY3RpdmVzLm1hcChcbiAgICAgIGRpcmVjdGl2ZVR5cGUgPT4gYCR7bW9kdWxlUmVmKGRpcmVjdGl2ZVR5cGUudHlwZS5tb2R1bGVVcmwpfSR7ZGlyZWN0aXZlVHlwZS50eXBlLm5hbWV9YCk7XG4gIHZhciBiYXNlID0gYFske2V4cHJlc3Npb25zLmpvaW4oJywnKX1dYDtcbiAgcmV0dXJuIElTX0RBUlQgPyBgY29uc3QgJHtiYXNlfWAgOiBiYXNlO1xufVxuXG5mdW5jdGlvbiBjb2RlR2VuVmlld0VuY2Fwc3VsYXRpb24odmFsdWU6IFZpZXdFbmNhcHN1bGF0aW9uKTogc3RyaW5nIHtcbiAgaWYgKElTX0RBUlQpIHtcbiAgICByZXR1cm4gYCR7VEVNUExBVEVfQ09NTUFORFNfTU9EVUxFX1JFRn0ke3ZhbHVlfWA7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGAke3ZhbHVlfWA7XG4gIH1cbn1cbiJdfQ==
+
+/***/ },
+/* 72 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';var lang_1 = __webpack_require__(1);
+ var HtmlTextAst = (function () {
+ function HtmlTextAst(value, sourceSpan) {
+ this.value = value;
+ this.sourceSpan = sourceSpan;
+ }
+ HtmlTextAst.prototype.visit = function (visitor, context) { return visitor.visitText(this, context); };
+ return HtmlTextAst;
+ })();
+ exports.HtmlTextAst = HtmlTextAst;
+ var HtmlAttrAst = (function () {
+ function HtmlAttrAst(name, value, sourceSpan) {
+ this.name = name;
+ this.value = value;
+ this.sourceSpan = sourceSpan;
+ }
+ HtmlAttrAst.prototype.visit = function (visitor, context) { return visitor.visitAttr(this, context); };
+ return HtmlAttrAst;
+ })();
+ exports.HtmlAttrAst = HtmlAttrAst;
+ var HtmlElementAst = (function () {
+ function HtmlElementAst(name, attrs, children, sourceSpan) {
+ this.name = name;
+ this.attrs = attrs;
+ this.children = children;
+ this.sourceSpan = sourceSpan;
+ }
+ HtmlElementAst.prototype.visit = function (visitor, context) { return visitor.visitElement(this, context); };
+ return HtmlElementAst;
+ })();
+ exports.HtmlElementAst = HtmlElementAst;
+ function htmlVisitAll(visitor, asts, context) {
+ if (context === void 0) { context = null; }
+ var result = [];
+ asts.forEach(function (ast) {
+ var astResult = ast.visit(visitor, context);
+ if (lang_1.isPresent(astResult)) {
+ result.push(astResult);
+ }
+ });
+ return result;
+ }
+ exports.htmlVisitAll = htmlVisitAll;
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbF9hc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbmd1bGFyMi9zcmMvY29tcGlsZXIvaHRtbF9hc3QudHMiXSwibmFtZXMiOlsiSHRtbFRleHRBc3QiLCJIdG1sVGV4dEFzdC5jb25zdHJ1Y3RvciIsIkh0bWxUZXh0QXN0LnZpc2l0IiwiSHRtbEF0dHJBc3QiLCJIdG1sQXR0ckFzdC5jb25zdHJ1Y3RvciIsIkh0bWxBdHRyQXN0LnZpc2l0IiwiSHRtbEVsZW1lbnRBc3QiLCJIdG1sRWxlbWVudEFzdC5jb25zdHJ1Y3RvciIsIkh0bWxFbGVtZW50QXN0LnZpc2l0IiwiaHRtbFZpc2l0QWxsIl0sIm1hcHBpbmdzIjoiQUFBQSxxQkFBd0IsMEJBQTBCLENBQUMsQ0FBQTtBQVNuRDtJQUNFQSxxQkFBbUJBLEtBQWFBLEVBQVNBLFVBQTJCQTtRQUFqREMsVUFBS0EsR0FBTEEsS0FBS0EsQ0FBUUE7UUFBU0EsZUFBVUEsR0FBVkEsVUFBVUEsQ0FBaUJBO0lBQUdBLENBQUNBO0lBQ3hFRCwyQkFBS0EsR0FBTEEsVUFBTUEsT0FBdUJBLEVBQUVBLE9BQVlBLElBQVNFLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBLFNBQVNBLENBQUNBLElBQUlBLEVBQUVBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0lBQ2hHRixrQkFBQ0E7QUFBREEsQ0FBQ0EsQUFIRCxJQUdDO0FBSFksbUJBQVcsY0FHdkIsQ0FBQTtBQUVEO0lBQ0VHLHFCQUFtQkEsSUFBWUEsRUFBU0EsS0FBYUEsRUFBU0EsVUFBMkJBO1FBQXRFQyxTQUFJQSxHQUFKQSxJQUFJQSxDQUFRQTtRQUFTQSxVQUFLQSxHQUFMQSxLQUFLQSxDQUFRQTtRQUFTQSxlQUFVQSxHQUFWQSxVQUFVQSxDQUFpQkE7SUFBR0EsQ0FBQ0E7SUFDN0ZELDJCQUFLQSxHQUFMQSxVQUFNQSxPQUF1QkEsRUFBRUEsT0FBWUEsSUFBU0UsTUFBTUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsSUFBSUEsRUFBRUEsT0FBT0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFDaEdGLGtCQUFDQTtBQUFEQSxDQUFDQSxBQUhELElBR0M7QUFIWSxtQkFBVyxjQUd2QixDQUFBO0FBRUQ7SUFDRUcsd0JBQW1CQSxJQUFZQSxFQUFTQSxLQUFvQkEsRUFBU0EsUUFBbUJBLEVBQ3JFQSxVQUEyQkE7UUFEM0JDLFNBQUlBLEdBQUpBLElBQUlBLENBQVFBO1FBQVNBLFVBQUtBLEdBQUxBLEtBQUtBLENBQWVBO1FBQVNBLGFBQVFBLEdBQVJBLFFBQVFBLENBQVdBO1FBQ3JFQSxlQUFVQSxHQUFWQSxVQUFVQSxDQUFpQkE7SUFBR0EsQ0FBQ0E7SUFDbERELDhCQUFLQSxHQUFMQSxVQUFNQSxPQUF1QkEsRUFBRUEsT0FBWUEsSUFBU0UsTUFBTUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsWUFBWUEsQ0FBQ0EsSUFBSUEsRUFBRUEsT0FBT0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFDbkdGLHFCQUFDQTtBQUFEQSxDQUFDQSxBQUpELElBSUM7QUFKWSxzQkFBYyxpQkFJMUIsQ0FBQTtBQVFELHNCQUE2QixPQUF1QixFQUFFLElBQWUsRUFBRSxPQUFtQjtJQUFuQkcsdUJBQW1CQSxHQUFuQkEsY0FBbUJBO0lBQ3hGQSxJQUFJQSxNQUFNQSxHQUFHQSxFQUFFQSxDQUFDQTtJQUNoQkEsSUFBSUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsVUFBQUEsR0FBR0E7UUFDZEEsSUFBSUEsU0FBU0EsR0FBR0EsR0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsT0FBT0EsRUFBRUEsT0FBT0EsQ0FBQ0EsQ0FBQ0E7UUFDNUNBLEVBQUVBLENBQUNBLENBQUNBLGdCQUFTQSxDQUFDQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUN6QkEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0E7UUFDekJBLENBQUNBO0lBQ0hBLENBQUNBLENBQUNBLENBQUNBO0lBQ0hBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBO0FBQ2hCQSxDQUFDQTtBQVRlLG9CQUFZLGVBUzNCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2lzUHJlc2VudH0gZnJvbSAnYW5ndWxhcjIvc3JjL2ZhY2FkZS9sYW5nJztcblxuaW1wb3J0IHtQYXJzZVNvdXJjZVNwYW59IGZyb20gJy4vcGFyc2VfdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHRtbEFzdCB7XG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3BhbjtcbiAgdmlzaXQodmlzaXRvcjogSHRtbEFzdFZpc2l0b3IsIGNvbnRleHQ6IGFueSk6IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIEh0bWxUZXh0QXN0IGltcGxlbWVudHMgSHRtbEFzdCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2YWx1ZTogc3RyaW5nLCBwdWJsaWMgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKSB7fVxuICB2aXNpdCh2aXNpdG9yOiBIdG1sQXN0VmlzaXRvciwgY29udGV4dDogYW55KTogYW55IHsgcmV0dXJuIHZpc2l0b3IudmlzaXRUZXh0KHRoaXMsIGNvbnRleHQpOyB9XG59XG5cbmV4cG9ydCBjbGFzcyBIdG1sQXR0ckFzdCBpbXBsZW1lbnRzIEh0bWxBc3Qge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nLCBwdWJsaWMgdmFsdWU6IHN0cmluZywgcHVibGljIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbikge31cbiAgdmlzaXQodmlzaXRvcjogSHRtbEFzdFZpc2l0b3IsIGNvbnRleHQ6IGFueSk6IGFueSB7IHJldHVybiB2aXNpdG9yLnZpc2l0QXR0cih0aGlzLCBjb250ZXh0KTsgfVxufVxuXG5leHBvcnQgY2xhc3MgSHRtbEVsZW1lbnRBc3QgaW1wbGVtZW50cyBIdG1sQXN0IHtcbiAgY29uc3RydWN0b3IocHVibGljIG5hbWU6IHN0cmluZywgcHVibGljIGF0dHJzOiBIdG1sQXR0ckFzdFtdLCBwdWJsaWMgY2hpbGRyZW46IEh0bWxBc3RbXSxcbiAgICAgICAgICAgICAgcHVibGljIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbikge31cbiAgdmlzaXQodmlzaXRvcjogSHRtbEFzdFZpc2l0b3IsIGNvbnRleHQ6IGFueSk6IGFueSB7IHJldHVybiB2aXNpdG9yLnZpc2l0RWxlbWVudCh0aGlzLCBjb250ZXh0KTsgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEh0bWxBc3RWaXNpdG9yIHtcbiAgdmlzaXRFbGVtZW50KGFzdDogSHRtbEVsZW1lbnRBc3QsIGNvbnRleHQ6IGFueSk6IGFueTtcbiAgdmlzaXRBdHRyKGFzdDogSHRtbEF0dHJBc3QsIGNvbnRleHQ6IGFueSk6IGFueTtcbiAgdmlzaXRUZXh0KGFzdDogSHRtbFRleHRBc3QsIGNvbnRleHQ6IGFueSk6IGFueTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh0bWxWaXNpdEFsbCh2aXNpdG9yOiBIdG1sQXN0VmlzaXRvciwgYXN0czogSHRtbEFzdFtdLCBjb250ZXh0OiBhbnkgPSBudWxsKTogYW55W10ge1xuICB2YXIgcmVzdWx0ID0gW107XG4gIGFzdHMuZm9yRWFjaChhc3QgPT4ge1xuICAgIHZhciBhc3RSZXN1bHQgPSBhc3QudmlzaXQodmlzaXRvciwgY29udGV4dCk7XG4gICAgaWYgKGlzUHJlc2VudChhc3RSZXN1bHQpKSB7XG4gICAgICByZXN1bHQucHVzaChhc3RSZXN1bHQpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
+
+/***/ },
+/* 73 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+ var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+ };
+ var lang_1 = __webpack_require__(1);
+ var collection_1 = __webpack_require__(2);
+ var html_ast_1 = __webpack_require__(72);
+ var di_1 = __webpack_require__(5);
+ var html_lexer_1 = __webpack_require__(186);
+ var parse_util_1 = __webpack_require__(74);
+ var html_tags_1 = __webpack_require__(26);
+ var HtmlTreeError = (function (_super) {
+ __extends(HtmlTreeError, _super);
+ function HtmlTreeError(elementName, location, msg) {
+ _super.call(this, location, msg);
+ this.elementName = elementName;
+ }
+ HtmlTreeError.create = function (elementName, location, msg) {
+ return new HtmlTreeError(elementName, location, msg);
+ };
+ return HtmlTreeError;
+ })(parse_util_1.ParseError);
+ exports.HtmlTreeError = HtmlTreeError;
+ var HtmlParseTreeResult = (function () {
+ function HtmlParseTreeResult(rootNodes, errors) {
+ this.rootNodes = rootNodes;
+ this.errors = errors;
+ }
+ return HtmlParseTreeResult;
+ })();
+ exports.HtmlParseTreeResult = HtmlParseTreeResult;
+ var HtmlParser = (function () {
+ function HtmlParser() {
+ }
+ HtmlParser.prototype.parse = function (sourceContent, sourceUrl) {
+ var tokensAndErrors = html_lexer_1.tokenizeHtml(sourceContent, sourceUrl);
+ var treeAndErrors = new TreeBuilder(tokensAndErrors.tokens).build();
+ return new HtmlParseTreeResult(treeAndErrors.rootNodes, tokensAndErrors.errors
+ .concat(treeAndErrors.errors));
+ };
+ HtmlParser = __decorate([
+ di_1.Injectable(),
+ __metadata('design:paramtypes', [])
+ ], HtmlParser);
+ return HtmlParser;
+ })();
+ exports.HtmlParser = HtmlParser;
+ var TreeBuilder = (function () {
+ function TreeBuilder(tokens) {
+ this.tokens = tokens;
+ this.index = -1;
+ this.rootNodes = [];
+ this.errors = [];
+ this.elementStack = [];
+ this._advance();
+ }
+ TreeBuilder.prototype.build = function () {
+ while (this.peek.type !== html_lexer_1.HtmlTokenType.EOF) {
+ if (this.peek.type === html_lexer_1.HtmlTokenType.TAG_OPEN_START) {
+ this._consumeStartTag(this._advance());
+ }
+ else if (this.peek.type === html_lexer_1.HtmlTokenType.TAG_CLOSE) {
+ this._consumeEndTag(this._advance());
+ }
+ else if (this.peek.type === html_lexer_1.HtmlTokenType.CDATA_START) {
+ this._closeVoidElement();
+ this._consumeCdata(this._advance());
+ }
+ else if (this.peek.type === html_lexer_1.HtmlTokenType.COMMENT_START) {
+ this._closeVoidElement();
+ this._consumeComment(this._advance());
+ }
+ else if (this.peek.type === html_lexer_1.HtmlTokenType.TEXT ||
+ this.peek.type === html_lexer_1.HtmlTokenType.RAW_TEXT ||
+ this.peek.type === html_lexer_1.HtmlTokenType.ESCAPABLE_RAW_TEXT) {
+ this._closeVoidElement();
+ this._consumeText(this._advance());
+ }
+ else {
+ // Skip all other tokens...
+ this._advance();
+ }
+ }
+ return new HtmlParseTreeResult(this.rootNodes, this.errors);
+ };
+ TreeBuilder.prototype._advance = function () {
+ var prev = this.peek;
+ if (this.index < this.tokens.length - 1) {
+ // Note: there is always an EOF token at the end
+ this.index++;
+ }
+ this.peek = this.tokens[this.index];
+ return prev;
+ };
+ TreeBuilder.prototype._advanceIf = function (type) {
+ if (this.peek.type === type) {
+ return this._advance();
+ }
+ return null;
+ };
+ TreeBuilder.prototype._consumeCdata = function (startToken) {
+ this._consumeText(this._advance());
+ this._advanceIf(html_lexer_1.HtmlTokenType.CDATA_END);
+ };
+ TreeBuilder.prototype._consumeComment = function (startToken) {
+ this._advanceIf(html_lexer_1.HtmlTokenType.RAW_TEXT);
+ this._advanceIf(html_lexer_1.HtmlTokenType.COMMENT_END);
+ };
+ TreeBuilder.prototype._consumeText = function (token) {
+ var text = token.parts[0];
+ if (text.length > 0 && text[0] == '\n') {
+ var parent_1 = this._getParentElement();
+ if (lang_1.isPresent(parent_1) && parent_1.children.length == 0 &&
+ html_tags_1.getHtmlTagDefinition(parent_1.name).ignoreFirstLf) {
+ text = text.substring(1);
+ }
+ }
+ if (text.length > 0) {
+ this._addToParent(new html_ast_1.HtmlTextAst(text, token.sourceSpan));
+ }
+ };
+ TreeBuilder.prototype._closeVoidElement = function () {
+ if (this.elementStack.length > 0) {
+ var el = collection_1.ListWrapper.last(this.elementStack);
+ if (html_tags_1.getHtmlTagDefinition(el.name).isVoid) {
+ this.elementStack.pop();
+ }
+ }
+ };
+ TreeBuilder.prototype._consumeStartTag = function (startTagToken) {
+ var prefix = startTagToken.parts[0];
+ var name = startTagToken.parts[1];
+ var attrs = [];
+ while (this.peek.type === html_lexer_1.HtmlTokenType.ATTR_NAME) {
+ attrs.push(this._consumeAttr(this._advance()));
+ }
+ var fullName = getElementFullName(prefix, name, this._getParentElement());
+ var selfClosing = false;
+ // Note: There could have been a tokenizer error
+ // so that we don't get a token for the end tag...
+ if (this.peek.type === html_lexer_1.HtmlTokenType.TAG_OPEN_END_VOID) {
+ this._advance();
+ selfClosing = true;
+ if (html_tags_1.getNsPrefix(fullName) == null && !html_tags_1.getHtmlTagDefinition(fullName).isVoid) {
+ this.errors.push(HtmlTreeError.create(fullName, startTagToken.sourceSpan.start, "Only void and foreign elements can be self closed \"" + startTagToken.parts[1] + "\""));
+ }
+ }
+ else if (this.peek.type === html_lexer_1.HtmlTokenType.TAG_OPEN_END) {
+ this._advance();
+ selfClosing = false;
+ }
+ var end = this.peek.sourceSpan.start;
+ var el = new html_ast_1.HtmlElementAst(fullName, attrs, [], new parse_util_1.ParseSourceSpan(startTagToken.sourceSpan.start, end));
+ this._pushElement(el);
+ if (selfClosing) {
+ this._popElement(fullName);
+ }
+ };
+ TreeBuilder.prototype._pushElement = function (el) {
+ if (this.elementStack.length > 0) {
+ var parentEl = collection_1.ListWrapper.last(this.elementStack);
+ if (html_tags_1.getHtmlTagDefinition(parentEl.name).isClosedByChild(el.name)) {
+ this.elementStack.pop();
+ }
+ }
+ var tagDef = html_tags_1.getHtmlTagDefinition(el.name);
+ var parentEl = this._getParentElement();
+ if (tagDef.requireExtraParent(lang_1.isPresent(parentEl) ? parentEl.name : null)) {
+ var newParent = new html_ast_1.HtmlElementAst(tagDef.parentToAdd, [], [el], el.sourceSpan);
+ this._addToParent(newParent);
+ this.elementStack.push(newParent);
+ this.elementStack.push(el);
+ }
+ else {
+ this._addToParent(el);
+ this.elementStack.push(el);
+ }
+ };
+ TreeBuilder.prototype._consumeEndTag = function (endTagToken) {
+ var fullName = getElementFullName(endTagToken.parts[0], endTagToken.parts[1], this._getParentElement());
+ if (html_tags_1.getHtmlTagDefinition(fullName).isVoid) {
+ this.errors.push(HtmlTreeError.create(fullName, endTagToken.sourceSpan.start, "Void elements do not have end tags \"" + endTagToken.parts[1] + "\""));
+ }
+ else if (!this._popElement(fullName)) {
+ this.errors.push(HtmlTreeError.create(fullName, endTagToken.sourceSpan.start, "Unexpected closing tag \"" + endTagToken.parts[1] + "\""));
+ }
+ };
+ TreeBuilder.prototype._popElement = function (fullName) {
+ for (var stackIndex = this.elementStack.length - 1; stackIndex >= 0; stackIndex--) {
+ var el = this.elementStack[stackIndex];
+ if (el.name == fullName) {
+ collection_1.ListWrapper.splice(this.elementStack, stackIndex, this.elementStack.length - stackIndex);
+ return true;
+ }
+ if (!html_tags_1.getHtmlTagDefinition(el.name).closedByParent) {
+ return false;
+ }
+ }
+ return false;
+ };
+ TreeBuilder.prototype._consumeAttr = function (attrName) {
+ var fullName = mergeNsAndName(attrName.parts[0], attrName.parts[1]);
+ var end = attrName.sourceSpan.end;
+ var value = '';
+ if (this.peek.type === html_lexer_1.HtmlTokenType.ATTR_VALUE) {
+ var valueToken = this._advance();
+ value = valueToken.parts[0];
+ end = valueToken.sourceSpan.end;
+ }
+ return new html_ast_1.HtmlAttrAst(fullName, value, new parse_util_1.ParseSourceSpan(attrName.sourceSpan.start, end));
+ };
+ TreeBuilder.prototype._getParentElement = function () {
+ return this.elementStack.length > 0 ? collection_1.ListWrapper.last(this.elementStack) : null;
+ };
+ TreeBuilder.prototype._addToParent = function (node) {
+ var parent = this._getParentElement();
+ if (lang_1.isPresent(parent)) {
+ parent.children.push(node);
+ }
+ else {
+ this.rootNodes.push(node);
+ }
+ };
+ return TreeBuilder;
+ })();
+ function mergeNsAndName(prefix, localName) {
+ return lang_1.isPresent(prefix) ? "@" + prefix + ":" + localName : localName;
+ }
+ function getElementFullName(prefix, localName, parentElement) {
+ if (lang_1.isBlank(prefix)) {
+ prefix = html_tags_1.getHtmlTagDefinition(localName).implicitNamespacePrefix;
+ if (lang_1.isBlank(prefix) && lang_1.isPresent(parentElement)) {
+ prefix = html_tags_1.getNsPrefix(parentElement.name);
+ }
+ }
+ return mergeNsAndName(prefix, localName);
+ }
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbF9wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbmd1bGFyMi9zcmMvY29tcGlsZXIvaHRtbF9wYXJzZXIudHMiXSwibmFtZXMiOlsiSHRtbFRyZWVFcnJvciIsIkh0bWxUcmVlRXJyb3IuY29uc3RydWN0b3IiLCJIdG1sVHJlZUVycm9yLmNyZWF0ZSIsIkh0bWxQYXJzZVRyZWVSZXN1bHQiLCJIdG1sUGFyc2VUcmVlUmVzdWx0LmNvbnN0cnVjdG9yIiwiSHRtbFBhcnNlciIsIkh0bWxQYXJzZXIuY29uc3RydWN0b3IiLCJIdG1sUGFyc2VyLnBhcnNlIiwiVHJlZUJ1aWxkZXIiLCJUcmVlQnVpbGRlci5jb25zdHJ1Y3RvciIsIlRyZWVCdWlsZGVyLmJ1aWxkIiwiVHJlZUJ1aWxkZXIuX2FkdmFuY2UiLCJUcmVlQnVpbGRlci5fYWR2YW5jZUlmIiwiVHJlZUJ1aWxkZXIuX2NvbnN1bWVDZGF0YSIsIlRyZWVCdWlsZGVyLl9jb25zdW1lQ29tbWVudCIsIlRyZWVCdWlsZGVyLl9jb25zdW1lVGV4dCIsIlRyZWVCdWlsZGVyLl9jbG9zZVZvaWRFbGVtZW50IiwiVHJlZUJ1aWxkZXIuX2NvbnN1bWVTdGFydFRhZyIsIlRyZWVCdWlsZGVyLl9wdXNoRWxlbWVudCIsIlRyZWVCdWlsZGVyLl9jb25zdW1lRW5kVGFnIiwiVHJlZUJ1aWxkZXIuX3BvcEVsZW1lbnQiLCJUcmVlQnVpbGRlci5fY29uc3VtZUF0dHIiLCJUcmVlQnVpbGRlci5fZ2V0UGFyZW50RWxlbWVudCIsIlRyZWVCdWlsZGVyLl9hZGRUb1BhcmVudCIsIm1lcmdlTnNBbmROYW1lIiwiZ2V0RWxlbWVudEZ1bGxOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLHFCQVNPLDBCQUEwQixDQUFDLENBQUE7QUFFbEMsMkJBQTBCLGdDQUFnQyxDQUFDLENBQUE7QUFFM0QseUJBQWdFLFlBQVksQ0FBQyxDQUFBO0FBRTdFLG1CQUF5QixzQkFBc0IsQ0FBQyxDQUFBO0FB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QUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUMzQ0EsQ0FBQ0E7SUFDSEEsQ0FBQ0E7SUFFREEsTUFBTUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsTUFBTUEsRUFBRUEsU0FBU0EsQ0FBQ0EsQ0FBQ0E7QUFDM0NBLENBQUNBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaXNQcmVzZW50LFxuICBpc0JsYW5rLFxuICBTdHJpbmdXcmFwcGVyLFxuICBzdHJpbmdpZnksXG4gIGFzc2VydGlvbnNFbmFibGVkLFxuICBTdHJpbmdKb2luZXIsXG4gIHNlcmlhbGl6ZUVudW0sXG4gIENPTlNUX0VYUFJcbn0gZnJvbSAnYW5ndWxhcjIvc3JjL2ZhY2FkZS9sYW5nJztcblxuaW1wb3J0IHtMaXN0V3JhcHBlcn0gZnJvbSAnYW5ndWxhcjIvc3JjL2ZhY2FkZS9jb2xsZWN0aW9uJztcblxuaW1wb3J0IHtIdG1sQXN0LCBIdG1sQXR0ckFzdCwgSHRtbFRleHRBc3QsIEh0bWxFbGVtZW50QXN0fSBmcm9tICcuL2h0bWxfYXN0JztcblxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdhbmd1bGFyMi9zcmMvY29yZS9kaSc7XG5pbXBvcnQge0h0bWxUb2tlbiwgSHRtbFRva2VuVHlwZSwgdG9rZW5pemVIdG1sfSBmcm9tICcuL2h0bWxfbGV4ZXInO1xuaW1wb3J0IHtQYXJzZUVycm9yLCBQYXJzZUxvY2F0aW9uLCBQYXJzZVNvdXJjZVNwYW59IGZyb20gJy4vcGFyc2VfdXRpbCc7XG5pbXBvcnQge0h0bWxUYWdEZWZpbml0aW9uLCBnZXRIdG1sVGFnRGVmaW5pdGlvbiwgZ2V0TnNQcmVmaXh9IGZyb20gJy4vaHRtbF90YWdzJztcblxuZXhwb3J0IGNsYXNzIEh0bWxUcmVlRXJyb3IgZXh0ZW5kcyBQYXJzZUVycm9yIHtcbiAgc3RhdGljIGNyZWF0ZShlbGVtZW50TmFtZTogc3RyaW5nLCBsb2NhdGlvbjogUGFyc2VMb2NhdGlvbiwgbXNnOiBzdHJpbmcpOiBIdG1sVHJlZUVycm9yIHtcbiAgICByZXR1cm4gbmV3IEh0bWxUcmVlRXJyb3IoZWxlbWVudE5hbWUsIGxvY2F0aW9uLCBtc2cpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnROYW1lOiBzdHJpbmcsIGxvY2F0aW9uOiBQYXJzZUxvY2F0aW9uLCBtc2c6IHN0cmluZykge1xuICAgIHN1cGVyKGxvY2F0aW9uLCBtc2cpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBIdG1sUGFyc2VUcmVlUmVzdWx0IHtcbiAgY29uc3RydWN0b3IocHVibGljIHJvb3ROb2RlczogSHRtbEFzdFtdLCBwdWJsaWMgZXJyb3JzOiBQYXJzZUVycm9yW10pIHt9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIdG1sUGFyc2VyIHtcbiAgcGFyc2Uoc291cmNlQ29udGVudDogc3RyaW5nLCBzb3VyY2VVcmw6IHN0cmluZyk6IEh0bWxQYXJzZVRyZWVSZXN1bHQge1xuICAgIHZhciB0b2tlbnNBbmRFcnJvcnMgPSB0b2tlbml6ZUh0bWwoc291cmNlQ29udGVudCwgc291cmNlVXJsKTtcbiAgICB2YXIgdHJlZUFuZEVycm9ycyA9IG5ldyBUcmVlQnVpbGRlcih0b2tlbnNBbmRFcnJvcnMudG9rZW5zKS5idWlsZCgpO1xuICAgIHJldHVybiBuZXcgSHRtbFBhcnNlVHJlZVJlc3VsdCh0cmVlQW5kRXJyb3JzLnJvb3ROb2RlcywgKDxQYXJzZUVycm9yW10+dG9rZW5zQW5kRXJyb3JzLmVycm9ycylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29uY2F0KHRyZWVBbmRFcnJvcnMuZXJyb3JzKSk7XG4gIH1cbn1cblxuY2xhc3MgVHJlZUJ1aWxkZXIge1xuICBwcml2YXRlIGluZGV4OiBudW1iZXIgPSAtMTtcbiAgcHJpdmF0ZSBwZWVrOiBIdG1sVG9rZW47XG5cbiAgcHJpdmF0ZSByb290Tm9kZXM6IEh0bWxBc3RbXSA9IFtdO1xuICBwcml2YXRlIGVycm9yczogSHRtbFRyZWVFcnJvcltdID0gW107XG5cbiAgcHJpdmF0ZSBlbGVtZW50U3RhY2s6IEh0bWxFbGVtZW50QXN0W10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRva2VuczogSHRtbFRva2VuW10pIHsgdGhpcy5fYWR2YW5jZSgpOyB9XG5cbiAgYnVpbGQoKTogSHRtbFBhcnNlVHJlZVJlc3VsdCB7XG4gICAgd2hpbGUgKHRoaXMucGVlay50eXBlICE9PSBIdG1sVG9rZW5UeXBlLkVPRikge1xuICAgICAgaWYgKHRoaXMucGVlay50eXBlID09PSBIdG1sVG9rZW5UeXBlLlRBR19PUEVOX1NUQVJUKSB7XG4gICAgICAgIHRoaXMuX2NvbnN1bWVTdGFydFRhZyh0aGlzLl9hZHZhbmNlKCkpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnBlZWsudHlwZSA9PT0gSHRtbFRva2VuVHlwZS5UQUdfQ0xPU0UpIHtcbiAgICAgICAgdGhpcy5fY29uc3VtZUVuZFRhZyh0aGlzLl9hZHZhbmNlKCkpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnBlZWsudHlwZSA9PT0gSHRtbFRva2VuVHlwZS5DREFUQV9TVEFSVCkge1xuICAgICAgICB0aGlzLl9jbG9zZVZvaWRFbGVtZW50KCk7XG4gICAgICAgIHRoaXMuX2NvbnN1bWVDZGF0YSh0aGlzLl9hZHZhbmNlKCkpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnBlZWsudHlwZSA9PT0gSHRtbFRva2VuVHlwZS5DT01NRU5UX1NUQVJUKSB7XG4gICAgICAgIHRoaXMuX2Nsb3NlVm9pZEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy5fY29uc3VtZUNvbW1lbnQodGhpcy5fYWR2YW5jZSgpKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5wZWVrLnR5cGUgPT09IEh0bWxUb2tlblR5cGUuVEVYVCB8fFxuICAgICAgICAgICAgICAgICB0aGlzLnBlZWsudHlwZSA9PT0gSHRtbFRva2VuVHlwZS5SQVdfVEVYVCB8fFxuICAgICAgICAgICAgICAgICB0aGlzLnBlZWsudHlwZSA9PT0gSHRtbFRva2VuVHlwZS5FU0NBUEFCTEVfUkFXX1RFWFQpIHtcbiAgICAgICAgdGhpcy5fY2xvc2VWb2lkRWxlbWVudCgpO1xuICAgICAgICB0aGlzLl9jb25zdW1lVGV4dCh0aGlzLl9hZHZhbmNlKCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2tpcCBhbGwgb3RoZXIgdG9rZW5zLi4uXG4gICAgICAgIHRoaXMuX2FkdmFuY2UoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBIdG1sUGFyc2VUcmVlUmVzdWx0KHRoaXMucm9vdE5vZGVzLCB0aGlzLmVycm9ycyk7XG4gIH1cblxuICBwcml2YXRlIF9hZHZhbmNlKCk6IEh0bWxUb2tlbiB7XG4gICAgdmFyIHByZXYgPSB0aGlzLnBlZWs7XG4gICAgaWYgKHRoaXMuaW5kZXggPCB0aGlzLnRva2Vucy5sZW5ndGggLSAxKSB7XG4gICAgICAvLyBOb3RlOiB0aGVyZSBpcyBhbHdheXMgYW4gRU9GIHRva2VuIGF0IHRoZSBlbmRcbiAgICAgIHRoaXMuaW5kZXgrKztcbiAgICB9XG4gICAgdGhpcy5wZWVrID0gdGhpcy50b2tlbnNbdGhpcy5pbmRleF07XG4gICAgcmV0dXJuIHByZXY7XG4gIH1cblxuICBwcml2YXRlIF9hZHZhbmNlSWYodHlwZTogSHRtbFRva2VuVHlwZSk6IEh0bWxUb2tlbiB7XG4gICAgaWYgKHRoaXMucGVlay50eXBlID09PSB0eXBlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fYWR2YW5jZSgpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbnN1bWVDZGF0YShzdGFydFRva2VuOiBIdG1sVG9rZW4pIHtcbiAgICB0aGlzLl9jb25zdW1lVGV4dCh0aGlzLl9hZHZhbmNlKCkpO1xuICAgIHRoaXMuX2FkdmFuY2VJZihIdG1sVG9rZW5UeXBlLkNEQVRBX0VORCk7XG4gIH1cblxuICBwcml2YXRlIF9jb25zdW1lQ29tbWVudChzdGFydFRva2VuOiBIdG1sVG9rZW4pIHtcbiAgICB0aGlzLl9hZHZhbmNlSWYoSHRtbFRva2VuVHlwZS5SQVdfVEVYVCk7XG4gICAgdGhpcy5fYWR2YW5jZUlmKEh0bWxUb2tlblR5cGUuQ09NTUVOVF9FTkQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29uc3VtZVRleHQodG9rZW46IEh0bWxUb2tlbikge1xuICAgIGxldCB0ZXh0ID0gdG9rZW4ucGFydHNbMF07XG4gICAgaWYgKHRleHQubGVuZ3RoID4gMCAmJiB0ZXh0WzBdID09ICdcXG4nKSB7XG4gICAgICBsZXQgcGFyZW50ID0gdGhpcy5fZ2V0UGFyZW50RWxlbWVudCgpO1xuICAgICAgaWYgKGlzUHJlc2VudChwYXJlbnQpICYmIHBhcmVudC5jaGlsZHJlbi5sZW5ndGggPT0gMCAmJlxuICAgICAgICAgIGdldEh0bWxUYWdEZWZpbml0aW9uKHBhcmVudC5uYW1lKS5pZ25vcmVGaXJzdExmKSB7XG4gICAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cmluZygxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGV4dC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9hZGRUb1BhcmVudChuZXcgSHRtbFRleHRBc3QodGV4dCwgdG9rZW4uc291cmNlU3BhbikpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlVm9pZEVsZW1lbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZWxlbWVudFN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCBlbCA9IExpc3RXcmFwcGVyLmxhc3QodGhpcy5lbGVtZW50U3RhY2spO1xuXG4gICAgICBpZiAoZ2V0SHRtbFRhZ0RlZmluaXRpb24oZWwubmFtZSkuaXNWb2lkKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudFN0YWNrLnBvcCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NvbnN1bWVTdGFydFRhZyhzdGFydFRhZ1Rva2VuOiBIdG1sVG9rZW4pIHtcbiAgICB2YXIgcHJlZml4ID0gc3RhcnRUYWdUb2tlbi5wYXJ0c1swXTtcbiAgICB2YXIgbmFtZSA9IHN0YXJ0VGFnVG9rZW4ucGFydHNbMV07XG4gICAgdmFyIGF0dHJzID0gW107XG4gICAgd2hpbGUgKHRoaXMucGVlay50eXBlID09PSBIdG1sVG9rZW5UeXBlLkFUVFJfTkFNRSkge1xuICAgICAgYXR0cnMucHVzaCh0aGlzLl9jb25zdW1lQXR0cih0aGlzLl9hZHZhbmNlKCkpKTtcbiAgICB9XG4gICAgdmFyIGZ1bGxOYW1lID0gZ2V0RWxlbWVudEZ1bGxOYW1lKHByZWZpeCwgbmFtZSwgdGhpcy5fZ2V0UGFyZW50RWxlbWVudCgpKTtcbiAgICB2YXIgc2VsZkNsb3NpbmcgPSBmYWxzZTtcbiAgICAvLyBOb3RlOiBUaGVyZSBjb3VsZCBoYXZlIGJlZW4gYSB0b2tlbml6ZXIgZXJyb3JcbiAgICAvLyBzbyB0aGF0IHdlIGRvbid0IGdldCBhIHRva2VuIGZvciB0aGUgZW5kIHRhZy4uLlxuICAgIGlmICh0aGlzLnBlZWsudHlwZSA9PT0gSHRtbFRva2VuVHlwZS5UQUdfT1BFTl9FTkRfVk9JRCkge1xuICAgICAgdGhpcy5fYWR2YW5jZSgpO1xuICAgICAgc2VsZkNsb3NpbmcgPSB0cnVlO1xuICAgICAgaWYgKGdldE5zUHJlZml4KGZ1bGxOYW1lKSA9PSBudWxsICYmICFnZXRIdG1sVGFnRGVmaW5pdGlvbihmdWxsTmFtZSkuaXNWb2lkKSB7XG4gICAgICAgIHRoaXMuZXJyb3JzLnB1c2goSHRtbFRyZWVFcnJvci5jcmVhdGUoXG4gICAgICAgICAgICBmdWxsTmFtZSwgc3RhcnRUYWdUb2tlbi5zb3VyY2VTcGFuLnN0YXJ0LFxuICAgICAgICAgICAgYE9ubHkgdm9pZCBhbmQgZm9yZWlnbiBlbGVtZW50cyBjYW4gYmUgc2VsZiBjbG9zZWQgXCIke3N0YXJ0VGFnVG9rZW4ucGFydHNbMV19XCJgKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnBlZWsudHlwZSA9PT0gSHRtbFRva2VuVHlwZS5UQUdfT1BFTl9FTkQpIHtcbiAgICAgIHRoaXMuX2FkdmFuY2UoKTtcbiAgICAgIHNlbGZDbG9zaW5nID0gZmFsc2U7XG4gICAgfVxuICAgIHZhciBlbmQgPSB0aGlzLnBlZWsuc291cmNlU3Bhbi5zdGFydDtcbiAgICB2YXIgZWwgPSBuZXcgSHRtbEVsZW1lbnRBc3QoZnVsbE5hbWUsIGF0dHJzLCBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFBhcnNlU291cmNlU3BhbihzdGFydFRhZ1Rva2VuLnNvdXJjZVNwYW4uc3RhcnQsIGVuZCkpO1xuICAgIHRoaXMuX3B1c2hFbGVtZW50KGVsKTtcbiAgICBpZiAoc2VsZkNsb3NpbmcpIHtcbiAgICAgIHRoaXMuX3BvcEVsZW1lbnQoZnVsbE5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3B1c2hFbGVtZW50KGVsOiBIdG1sRWxlbWVudEFzdCkge1xuICAgIGlmICh0aGlzLmVsZW1lbnRTdGFjay5sZW5ndGggPiAwKSB7XG4gICAgICB2YXIgcGFyZW50RWwgPSBMaXN0V3JhcHBlci5sYXN0KHRoaXMuZWxlbWVudFN0YWNrKTtcbiAgICAgIGlmIChnZXRIdG1sVGFnRGVmaW5pdGlvbihwYXJlbnRFbC5uYW1lKS5pc0Nsb3NlZEJ5Q2hpbGQoZWwubmFtZSkpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50U3RhY2sucG9wKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHRhZ0RlZiA9IGdldEh0bWxUYWdEZWZpbml0aW9uKGVsLm5hbWUpO1xuICAgIHZhciBwYXJlbnRFbCA9IHRoaXMuX2dldFBhcmVudEVsZW1lbnQoKTtcbiAgICBpZiAodGFnRGVmLnJlcXVpcmVFeHRyYVBhcmVudChpc1ByZXNlbnQocGFyZW50RWwpID8gcGFyZW50RWwubmFtZSA6IG51bGwpKSB7XG4gICAgICB2YXIgbmV3UGFyZW50ID0gbmV3IEh0bWxFbGVtZW50QXN0KHRhZ0RlZi5wYXJlbnRUb0FkZCwgW10sIFtlbF0sIGVsLnNvdXJjZVNwYW4pO1xuICAgICAgdGhpcy5fYWRkVG9QYXJlbnQobmV3UGFyZW50KTtcbiAgICAgIHRoaXMuZWxlbWVudFN0YWNrLnB1c2gobmV3UGFyZW50KTtcbiAgICAgIHRoaXMuZWxlbWVudFN0YWNrLnB1c2goZWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9hZGRUb1BhcmVudChlbCk7XG4gICAgICB0aGlzLmVsZW1lbnRTdGFjay5wdXNoKGVsKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jb25zdW1lRW5kVGFnKGVuZFRhZ1Rva2VuOiBIdG1sVG9rZW4pIHtcbiAgICB2YXIgZnVsbE5hbWUgPVxuICAgICAgICBnZXRFbGVtZW50RnVsbE5hbWUoZW5kVGFnVG9rZW4ucGFydHNbMF0sIGVuZFRhZ1Rva2VuLnBhcnRzWzFdLCB0aGlzLl9nZXRQYXJlbnRFbGVtZW50KCkpO1xuXG4gICAgaWYgKGdldEh0bWxUYWdEZWZpbml0aW9uKGZ1bGxOYW1lKS5pc1ZvaWQpIHtcbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goXG4gICAgICAgICAgSHRtbFRyZWVFcnJvci5jcmVhdGUoZnVsbE5hbWUsIGVuZFRhZ1Rva2VuLnNvdXJjZVNwYW4uc3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFZvaWQgZWxlbWVudHMgZG8gbm90IGhhdmUgZW5kIHRhZ3MgXCIke2VuZFRhZ1Rva2VuLnBhcnRzWzFdfVwiYCkpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuX3BvcEVsZW1lbnQoZnVsbE5hbWUpKSB7XG4gICAgICB0aGlzLmVycm9ycy5wdXNoKEh0bWxUcmVlRXJyb3IuY3JlYXRlKGZ1bGxOYW1lLCBlbmRUYWdUb2tlbi5zb3VyY2VTcGFuLnN0YXJ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgVW5leHBlY3RlZCBjbG9zaW5nIHRhZyBcIiR7ZW5kVGFnVG9rZW4ucGFydHNbMV19XCJgKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcG9wRWxlbWVudChmdWxsTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgZm9yIChsZXQgc3RhY2tJbmRleCA9IHRoaXMuZWxlbWVudFN0YWNrLmxlbmd0aCAtIDE7IHN0YWNrSW5kZXggPj0gMDsgc3RhY2tJbmRleC0tKSB7XG4gICAgICBsZXQgZWwgPSB0aGlzLmVsZW1lbnRTdGFja1tzdGFja0luZGV4XTtcbiAgICAgIGlmIChlbC5uYW1lID09IGZ1bGxOYW1lKSB7XG4gICAgICAgIExpc3RXcmFwcGVyLnNwbGljZSh0aGlzLmVsZW1lbnRTdGFjaywgc3RhY2tJbmRleCwgdGhpcy5lbGVtZW50U3RhY2subGVuZ3RoIC0gc3RhY2tJbmRleCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWdldEh0bWxUYWdEZWZpbml0aW9uKGVsLm5hbWUpLmNsb3NlZEJ5UGFyZW50KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29uc3VtZUF0dHIoYXR0ck5hbWU6IEh0bWxUb2tlbik6IEh0bWxBdHRyQXN0IHtcbiAgICB2YXIgZnVsbE5hbWUgPSBtZXJnZU5zQW5kTmFtZShhdHRyTmFtZS5wYXJ0c1swXSwgYXR0ck5hbWUucGFydHNbMV0pO1xuICAgIHZhciBlbmQgPSBhdHRyTmFtZS5zb3VyY2VTcGFuLmVuZDtcbiAgICB2YXIgdmFsdWUgPSAnJztcbiAgICBpZiAodGhpcy5wZWVrLnR5cGUgPT09IEh0bWxUb2tlblR5cGUuQVRUUl9WQUxVRSkge1xuICAgICAgdmFyIHZhbHVlVG9rZW4gPSB0aGlzLl9hZHZhbmNlKCk7XG4gICAgICB2YWx1ZSA9IHZhbHVlVG9rZW4ucGFydHNbMF07XG4gICAgICBlbmQgPSB2YWx1ZVRva2VuLnNvdXJjZVNwYW4uZW5kO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEh0bWxBdHRyQXN0KGZ1bGxOYW1lLCB2YWx1ZSwgbmV3IFBhcnNlU291cmNlU3BhbihhdHRyTmFtZS5zb3VyY2VTcGFuLnN0YXJ0LCBlbmQpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFBhcmVudEVsZW1lbnQoKTogSHRtbEVsZW1lbnRBc3Qge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRTdGFjay5sZW5ndGggPiAwID8gTGlzdFdyYXBwZXIubGFzdCh0aGlzLmVsZW1lbnRTdGFjaykgOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkVG9QYXJlbnQobm9kZTogSHRtbEFzdCkge1xuICAgIHZhciBwYXJlbnQgPSB0aGlzLl9nZXRQYXJlbnRFbGVtZW50KCk7XG4gICAgaWYgKGlzUHJlc2VudChwYXJlbnQpKSB7XG4gICAgICBwYXJlbnQuY2hpbGRyZW4ucHVzaChub2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb290Tm9kZXMucHVzaChub2RlKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbWVyZ2VOc0FuZE5hbWUocHJlZml4OiBzdHJpbmcsIGxvY2FsTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGlzUHJlc2VudChwcmVmaXgpID8gYEAke3ByZWZpeH06JHtsb2NhbE5hbWV9YCA6IGxvY2FsTmFtZTtcbn1cblxuZnVuY3Rpb24gZ2V0RWxlbWVudEZ1bGxOYW1lKHByZWZpeDogc3RyaW5nLCBsb2NhbE5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRFbGVtZW50OiBIdG1sRWxlbWVudEFzdCk6IHN0cmluZyB7XG4gIGlmIChpc0JsYW5rKHByZWZpeCkpIHtcbiAgICBwcmVmaXggPSBnZXRIdG1sVGFnRGVmaW5pdGlvbihsb2NhbE5hbWUpLmltcGxpY2l0TmFtZXNwYWNlUHJlZml4O1xuICAgIGlmIChpc0JsYW5rKHByZWZpeCkgJiYgaXNQcmVzZW50KHBhcmVudEVsZW1lbnQpKSB7XG4gICAgICBwcmVmaXggPSBnZXROc1ByZWZpeChwYXJlbnRFbGVtZW50Lm5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXJnZU5zQW5kTmFtZShwcmVmaXgsIGxvY2FsTmFtZSk7XG59XG4iXX0=
+
+/***/ },
+/* 74 */
+/***/ function(module, exports) {
+
+ 'use strict';var ParseLocation = (function () {
+ function ParseLocation(file, offset, line, col) {
+ this.file = file;
+ this.offset = offset;
+ this.line = line;
+ this.col = col;
+ }
+ ParseLocation.prototype.toString = function () { return this.file.url + "@" + this.line + ":" + this.col; };
+ return ParseLocation;
+ })();
+ exports.ParseLocation = ParseLocation;
+ var ParseSourceFile = (function () {
+ function ParseSourceFile(content, url) {
+ this.content = content;
+ this.url = url;
+ }
+ return ParseSourceFile;
+ })();
+ exports.ParseSourceFile = ParseSourceFile;
+ var ParseError = (function () {
+ function ParseError(location, msg) {
+ this.location = location;
+ this.msg = msg;
+ }
+ ParseError.prototype.toString = function () {
+ var source = this.location.file.content;
+ var ctxStart = this.location.offset;
+ if (ctxStart > source.length - 1) {
+ ctxStart = source.length - 1;
+ }
+ var ctxEnd = ctxStart;
+ var ctxLen = 0;
+ var ctxLines = 0;
+ while (ctxLen < 100 && ctxStart > 0) {
+ ctxStart--;
+ ctxLen++;
+ if (source[ctxStart] == "\n") {
+ if (++ctxLines == 3) {
+ break;
+ }
+ }
+ }
+ ctxLen = 0;
+ ctxLines = 0;
+ while (ctxLen < 100 && ctxEnd < source.length - 1) {
+ ctxEnd++;
+ ctxLen++;
+ if (source[ctxEnd] == "\n") {
+ if (++ctxLines == 3) {
+ break;
+ }
+ }
+ }
+ var context = source.substring(ctxStart, this.location.offset) + '[ERROR ->]' +
+ source.substring(this.location.offset, ctxEnd + 1);
+ return this.msg + " (\"" + context + "\"): " + this.location;
+ };
+ return ParseError;
+ })();
+ exports.ParseError = ParseError;
+ var ParseSourceSpan = (function () {
+ function ParseSourceSpan(start, end) {
+ this.start = start;
+ this.end = end;
+ }
+ ParseSourceSpan.prototype.toString = function () {
+ return this.start.file.content.substring(this.start.offset, this.end.offset);
+ };
+ return ParseSourceSpan;
+ })();
+ exports.ParseSourceSpan = ParseSourceSpan;
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFuZ3VsYXIyL3NyYy9jb21waWxlci9wYXJzZV91dGlsLnRzIl0sIm5hbWVzIjpbIlBhcnNlTG9jYXRpb24iLCJQYXJzZUxvY2F0aW9uLmNvbnN0cnVjdG9yIiwiUGFyc2VMb2NhdGlvbi50b1N0cmluZyIsIlBhcnNlU291cmNlRmlsZSIsIlBhcnNlU291cmNlRmlsZS5jb25zdHJ1Y3RvciIsIlBhcnNlRXJyb3IiLCJQYXJzZUVycm9yLmNvbnN0cnVjdG9yIiwiUGFyc2VFcnJvci50b1N0cmluZyIsIlBhcnNlU291cmNlU3BhbiIsIlBhcnNlU291cmNlU3Bhbi5jb25zdHJ1Y3RvciIsIlBhcnNlU291cmNlU3Bhbi50b1N0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7SUFDRUEsdUJBQW1CQSxJQUFxQkEsRUFBU0EsTUFBY0EsRUFBU0EsSUFBWUEsRUFDakVBLEdBQVdBO1FBRFhDLFNBQUlBLEdBQUpBLElBQUlBLENBQWlCQTtRQUFTQSxXQUFNQSxHQUFOQSxNQUFNQSxDQUFRQTtRQUFTQSxTQUFJQSxHQUFKQSxJQUFJQSxDQUFRQTtRQUNqRUEsUUFBR0EsR0FBSEEsR0FBR0EsQ0FBUUE7SUFBR0EsQ0FBQ0E7SUFFbENELGdDQUFRQSxHQUFSQSxjQUFxQkUsTUFBTUEsQ0FBSUEsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsR0FBR0EsU0FBSUEsSUFBSUEsQ0FBQ0EsSUFBSUEsU0FBSUEsSUFBSUEsQ0FBQ0EsR0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFDNUVGLG9CQUFDQTtBQUFEQSxDQUFDQSxBQUxELElBS0M7QUFMWSxxQkFBYSxnQkFLekIsQ0FBQTtBQUVEO0lBQ0VHLHlCQUFtQkEsT0FBZUEsRUFBU0EsR0FBV0E7UUFBbkNDLFlBQU9BLEdBQVBBLE9BQU9BLENBQVFBO1FBQVNBLFFBQUdBLEdBQUhBLEdBQUdBLENBQVFBO0lBQUdBLENBQUNBO0lBQzVERCxzQkFBQ0E7QUFBREEsQ0FB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QUNBLEtBQUtBLENBQUNBLElBQUlBLENBQUNBLE9BQU9BLENBQUNBLFNBQVNBLENBQUNBLElBQUlBLENBQUNBLEtBQUtBLENBQUNBLE1BQU1BLEVBQUVBLElBQUlBLENBQUNBLEdBQUdBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO0lBQy9FQSxDQUFDQTtJQUNIRixzQkFBQ0E7QUFBREEsQ0FBQ0EsQUFORCxJQU1DO0FBTlksdUJBQWUsa0JBTTNCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUGFyc2VMb2NhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmaWxlOiBQYXJzZVNvdXJjZUZpbGUsIHB1YmxpYyBvZmZzZXQ6IG51bWJlciwgcHVibGljIGxpbmU6IG51bWJlcixcbiAgICAgICAgICAgICAgcHVibGljIGNvbDogbnVtYmVyKSB7fVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7IHJldHVybiBgJHt0aGlzLmZpbGUudXJsfUAke3RoaXMubGluZX06JHt0aGlzLmNvbH1gOyB9XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJzZVNvdXJjZUZpbGUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgY29udGVudDogc3RyaW5nLCBwdWJsaWMgdXJsOiBzdHJpbmcpIHt9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQYXJzZUVycm9yIHtcbiAgY29uc3RydWN0b3IocHVibGljIGxvY2F0aW9uOiBQYXJzZUxvY2F0aW9uLCBwdWJsaWMgbXNnOiBzdHJpbmcpIHt9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICB2YXIgc291cmNlID0gdGhpcy5sb2NhdGlvbi5maWxlLmNvbnRlbnQ7XG4gICAgdmFyIGN0eFN0YXJ0ID0gdGhpcy5sb2NhdGlvbi5vZmZzZXQ7XG4gICAgaWYgKGN0eFN0YXJ0ID4gc291cmNlLmxlbmd0aCAtIDEpIHtcbiAgICAgIGN0eFN0YXJ0ID0gc291cmNlLmxlbmd0aCAtIDE7XG4gICAgfVxuICAgIHZhciBjdHhFbmQgPSBjdHhTdGFydDtcbiAgICB2YXIgY3R4TGVuID0gMDtcbiAgICB2YXIgY3R4TGluZXMgPSAwO1xuXG4gICAgd2hpbGUgKGN0eExlbiA8IDEwMCAmJiBjdHhTdGFydCA+IDApIHtcbiAgICAgIGN0eFN0YXJ0LS07XG4gICAgICBjdHhMZW4rKztcbiAgICAgIGlmIChzb3VyY2VbY3R4U3RhcnRdID09IFwiXFxuXCIpIHtcbiAgICAgICAgaWYgKCsrY3R4TGluZXMgPT0gMykge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY3R4TGVuID0gMDtcbiAgICBjdHhMaW5lcyA9IDA7XG4gICAgd2hpbGUgKGN0eExlbiA8IDEwMCAmJiBjdHhFbmQgPCBzb3VyY2UubGVuZ3RoIC0gMSkge1xuICAgICAgY3R4RW5kKys7XG4gICAgICBjdHhMZW4rKztcbiAgICAgIGlmIChzb3VyY2VbY3R4RW5kXSA9PSBcIlxcblwiKSB7XG4gICAgICAgIGlmICgrK2N0eExpbmVzID09IDMpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBjb250ZXh0ID0gc291cmNlLnN1YnN0cmluZyhjdHhTdGFydCwgdGhpcy5sb2NhdGlvbi5vZmZzZXQpICsgJ1tFUlJPUiAtPl0nICtcbiAgICAgICAgICAgICAgICAgIHNvdXJjZS5zdWJzdHJpbmcodGhpcy5sb2NhdGlvbi5vZmZzZXQsIGN0eEVuZCArIDEpO1xuXG4gICAgcmV0dXJuIGAke3RoaXMubXNnfSAoXCIke2NvbnRleHR9XCIpOiAke3RoaXMubG9jYXRpb259YDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGFyc2VTb3VyY2VTcGFuIHtcbiAgY29uc3RydWN0b3IocHVibGljIHN0YXJ0OiBQYXJzZUxvY2F0aW9uLCBwdWJsaWMgZW5kOiBQYXJzZUxvY2F0aW9uKSB7fVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQuZmlsZS5jb250ZW50LnN1YnN0cmluZyh0aGlzLnN0YXJ0Lm9mZnNldCwgdGhpcy5lbmQub2Zmc2V0KTtcbiAgfVxufVxuIl19
+
+/***/ },
+/* 75 */
+/***/ function(module, exports) {
+
+ 'use strict';var ElementSchemaRegistry = (function () {
+ function ElementSchemaRegistry() {
+ }
+ ElementSchemaRegistry.prototype.hasProperty = function (tagName, propName) { return true; };
+ ElementSchemaRegistry.prototype.getMappedPropName = function (propName) { return propName; };
+ return ElementSchemaRegistry;
+ })();
+ exports.ElementSchemaRegistry = ElementSchemaRegistry;
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudF9zY2hlbWFfcmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbmd1bGFyMi9zcmMvY29tcGlsZXIvc2NoZW1hL2VsZW1lbnRfc2NoZW1hX3JlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbIkVsZW1lbnRTY2hlbWFSZWdpc3RyeSIsIkVsZW1lbnRTY2hlbWFSZWdpc3RyeS5jb25zdHJ1Y3RvciIsIkVsZW1lbnRTY2hlbWFSZWdpc3RyeS5oYXNQcm9wZXJ0eSIsIkVsZW1lbnRTY2hlbWFSZWdpc3RyeS5nZXRNYXBwZWRQcm9wTmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7SUFBQUE7SUFHQUMsQ0FBQ0E7SUFGQ0QsMkNBQVdBLEdBQVhBLFVBQVlBLE9BQWVBLEVBQUVBLFFBQWdCQSxJQUFhRSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUN4RUYsaURBQWlCQSxHQUFqQkEsVUFBa0JBLFFBQWdCQSxJQUFZRyxNQUFNQSxDQUFDQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUNsRUgsNEJBQUNBO0FBQURBLENBQUNBLEFBSEQsSUFHQztBQUhZLDZCQUFxQix3QkFHakMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFbGVtZW50U2NoZW1hUmVnaXN0cnkge1xuICBoYXNQcm9wZXJ0eSh0YWdOYW1lOiBzdHJpbmcsIHByb3BOYW1lOiBzdHJpbmcpOiBib29sZWFuIHsgcmV0dXJuIHRydWU7IH1cbiAgZ2V0TWFwcGVkUHJvcE5hbWUocHJvcE5hbWU6IHN0cmluZyk6IHN0cmluZyB7IHJldHVybiBwcm9wTmFtZTsgfVxufVxuIl19
+
+/***/ },
+/* 76 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';// Some of the code comes from WebComponents.JS
+ // https://github.com/webcomponents/webcomponentsjs/blob/master/src/HTMLImports/path.js
+ var lang_1 = __webpack_require__(1);
+ var StyleWithImports = (function () {
+ function StyleWithImports(style, styleUrls) {
+ this.style = style;
+ this.styleUrls = styleUrls;
+ }
+ return StyleWithImports;
+ })();
+ exports.StyleWithImports = StyleWithImports;
+ function isStyleUrlResolvable(url) {
+ if (lang_1.isBlank(url) || url.length === 0 || url[0] == '/')
+ return false;
+ var schemeMatch = lang_1.RegExpWrapper.firstMatch(_urlWithSchemaRe, url);
+ return lang_1.isBlank(schemeMatch) || schemeMatch[1] == 'package' || schemeMatch[1] == 'asset';
+ }
+ exports.isStyleUrlResolvable = isStyleUrlResolvable;
+ /**
+ * Rewrites stylesheets by resolving and removing the @import urls that
+ * are either relative or don't have a `package:` scheme
+ */
+ function extractStyleUrls(resolver, baseUrl, cssText) {
+ var foundUrls = [];
+ var modifiedCssText = lang_1.StringWrapper.replaceAllMapped(cssText, _cssImportRe, function (m) {
+ var url = lang_1.isPresent(m[1]) ? m[1] : m[2];
+ if (!isStyleUrlResolvable(url)) {
+ // Do not attempt to resolve non-package absolute URLs with URI scheme
+ return m[0];
+ }
+ foundUrls.push(resolver.resolve(baseUrl, url));
+ return '';
+ });
+ return new StyleWithImports(modifiedCssText, foundUrls);
+ }
+ exports.extractStyleUrls = extractStyleUrls;
+ var _cssImportRe = /@import\s+(?:url\()?\s*(?:(?:['"]([^'"]*))|([^;\)\s]*))[^;]*;?/g;
+ // TODO: can't use /^[^:/?#.]+:/g due to clang-format bug:
+ // https://github.com/angular/angular/issues/4596
+ var _urlWithSchemaRe = /^([a-zA-Z\-\+\.]+):/g;
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVfdXJsX3Jlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW5ndWxhcjIvc3JjL2NvbXBpbGVyL3N0eWxlX3VybF9yZXNvbHZlci50cyJdLCJuYW1lcyI6WyJTdHlsZVdpdGhJbXBvcnRzIiwiU3R5bGVXaXRoSW1wb3J0cy5jb25zdHJ1Y3RvciIsImlzU3R5bGVVcmxSZXNvbHZhYmxlIiwiZXh0cmFjdFN0eWxlVXJscyJdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHVGQUF1RjtBQUV2RixxQkFBdUUsMEJBQTBCLENBQUMsQ0FBQTtBQUdsRztJQUNFQSwwQkFBbUJBLEtBQWFBLEVBQVNBLFNBQW1CQTtRQUF6Q0MsVUFBS0EsR0FBTEEsS0FBS0EsQ0FBUUE7UUFBU0EsY0FBU0EsR0FBVEEsU0FBU0EsQ0FBVUE7SUFBR0EsQ0FBQ0E7SUFDbEVELHVCQUFDQTtBQUFEQSxDQUFDQSxBQUZELElBRUM7QUFGWSx3QkFBZ0IsbUJBRTVCLENBQUE7QUFFRCw4QkFBcUMsR0FBVztJQUM5Q0UsRUFBRUEsQ0FBQ0EsQ0FBQ0EsY0FBT0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsR0FBR0EsQ0FBQ0EsTUFBTUEsS0FBS0EsQ0FBQ0EsSUFBSUEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsR0FBR0EsQ0FBQ0E7UUFBQ0EsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0E7SUFDcEVBLElBQUlBLFdBQVdBLEdBQUdBLG9CQUFhQSxDQUFDQSxVQUFVQSxDQUFDQSxnQkFBZ0JBLEVBQUVBLEdBQUdBLENBQUNBLENBQUNBO0lBQ2xFQSxNQUFNQSxDQUFDQSxjQUFPQSxDQUFDQSxXQUFXQSxDQUFDQSxJQUFJQSxXQUFXQSxDQUFDQSxDQUFDQSxDQUFDQSxJQUFJQSxTQUFTQSxJQUFJQSxXQUFXQSxDQUFDQSxDQUFDQSxDQUFDQSxJQUFJQSxPQUFPQSxDQUFDQTtBQUMxRkEsQ0FBQ0E7QUFKZSw0QkFBb0IsdUJBSW5DLENBQUE7QUFFRDs7O0dBR0c7QUFDSCwwQkFBaUMsUUFBcUIsRUFBRSxPQUFlLEVBQ3RDLE9BQWU7SUFDOUNDLElBQUlBLFNBQVNBLEdBQUdBLEVBQUVBLENBQUNBO0lBQ25CQSxJQUFJQSxlQUFlQSxHQUFHQSxvQkFBYUEsQ0FBQ0EsZ0JBQWdCQSxDQUFDQSxPQUFPQSxFQUFFQSxZQUFZQSxFQUFFQSxVQUFDQSxDQUFDQTtRQUM1RUEsSUFBSUEsR0FBR0EsR0FBR0EsZ0JBQVNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQ3hDQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxvQkFBb0JBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQy9CQSxzRUFBc0VBO1lBQ3RFQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNkQSxDQUFDQTtRQUNEQSxTQUFTQSxDQUFDQSxJQUFJQSxDQUFDQSxRQUFRQSxDQUFDQSxPQUFPQSxDQUFDQSxPQUFPQSxFQUFFQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUMvQ0EsTUFBTUEsQ0FBQ0EsRUFBRUEsQ0FBQ0E7SUFDWkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFDSEEsTUFBTUEsQ0FBQ0EsSUFBSUEsZ0JBQWdCQSxDQUFDQSxlQUFlQSxFQUFFQSxTQUFTQSxDQUFDQSxDQUFDQTtBQUMxREEsQ0FBQ0E7QUFiZSx3QkFBZ0IsbUJBYS9CLENBQUE7QUFFRCxJQUFJLFlBQVksR0FBRyxpRUFBaUUsQ0FBQztBQUNyRiwwREFBMEQ7QUFDMUQsdURBQXVEO0FBQ3ZELElBQUksZ0JBQWdCLEdBQUcsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTb21lIG9mIHRoZSBjb2RlIGNvbWVzIGZyb20gV2ViQ29tcG9uZW50cy5KU1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3dlYmNvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL2Jsb2IvbWFzdGVyL3NyYy9IVE1MSW1wb3J0cy9wYXRoLmpzXG5cbmltcG9ydCB7UmVnRXhwLCBSZWdFeHBXcmFwcGVyLCBTdHJpbmdXcmFwcGVyLCBpc1ByZXNlbnQsIGlzQmxhbmt9IGZyb20gJ2FuZ3VsYXIyL3NyYy9mYWNhZGUvbGFuZyc7XG5pbXBvcnQge1VybFJlc29sdmVyfSBmcm9tICdhbmd1bGFyMi9zcmMvY29tcGlsZXIvdXJsX3Jlc29sdmVyJztcblxuZXhwb3J0IGNsYXNzIFN0eWxlV2l0aEltcG9ydHMge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgc3R5bGU6IHN0cmluZywgcHVibGljIHN0eWxlVXJsczogc3RyaW5nW10pIHt9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0eWxlVXJsUmVzb2x2YWJsZSh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoaXNCbGFuayh1cmwpIHx8IHVybC5sZW5ndGggPT09IDAgfHwgdXJsWzBdID09ICcvJykgcmV0dXJuIGZhbHNlO1xuICB2YXIgc2NoZW1lTWF0Y2ggPSBSZWdFeHBXcmFwcGVyLmZpcnN0TWF0Y2goX3VybFdpdGhTY2hlbWFSZSwgdXJsKTtcbiAgcmV0dXJuIGlzQmxhbmsoc2NoZW1lTWF0Y2gpIHx8IHNjaGVtZU1hdGNoWzFdID09ICdwYWNrYWdlJyB8fCBzY2hlbWVNYXRjaFsxXSA9PSAnYXNzZXQnO1xufVxuXG4vKipcbiAqIFJld3JpdGVzIHN0eWxlc2hlZXRzIGJ5IHJlc29sdmluZyBhbmQgcmVtb3ZpbmcgdGhlIEBpbXBvcnQgdXJscyB0aGF0XG4gKiBhcmUgZWl0aGVyIHJlbGF0aXZlIG9yIGRvbid0IGhhdmUgYSBgcGFja2FnZTpgIHNjaGVtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFN0eWxlVXJscyhyZXNvbHZlcjogVXJsUmVzb2x2ZXIsIGJhc2VVcmw6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzc1RleHQ6IHN0cmluZyk6IFN0eWxlV2l0aEltcG9ydHMge1xuICB2YXIgZm91bmRVcmxzID0gW107XG4gIHZhciBtb2RpZmllZENzc1RleHQgPSBTdHJpbmdXcmFwcGVyLnJlcGxhY2VBbGxNYXBwZWQoY3NzVGV4dCwgX2Nzc0ltcG9ydFJlLCAobSkgPT4ge1xuICAgIHZhciB1cmwgPSBpc1ByZXNlbnQobVsxXSkgPyBtWzFdIDogbVsyXTtcbiAgICBpZiAoIWlzU3R5bGVVcmxSZXNvbHZhYmxlKHVybCkpIHtcbiAgICAgIC8vIERvIG5vdCBhdHRlbXB0IHRvIHJlc29sdmUgbm9uLXBhY2thZ2UgYWJzb2x1dGUgVVJMcyB3aXRoIFVSSSBzY2hlbWVcbiAgICAgIHJldHVybiBtWzBdO1xuICAgIH1cbiAgICBmb3VuZFVybHMucHVzaChyZXNvbHZlci5yZXNvbHZlKGJhc2VVcmwsIHVybCkpO1xuICAgIHJldHVybiAnJztcbiAgfSk7XG4gIHJldHVybiBuZXcgU3R5bGVXaXRoSW1wb3J0cyhtb2RpZmllZENzc1RleHQsIGZvdW5kVXJscyk7XG59XG5cbnZhciBfY3NzSW1wb3J0UmUgPSAvQGltcG9ydFxccysoPzp1cmxcXCgpP1xccyooPzooPzpbJ1wiXShbXidcIl0qKSl8KFteO1xcKVxcc10qKSlbXjtdKjs/L2c7XG4vLyBUT0RPOiBjYW4ndCB1c2UgL15bXjovPyMuXSs6L2cgZHVlIHRvIGNsYW5nLWZvcm1hdCBidWc6XG4vLyAgICAgICBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy80NTk2XG52YXIgX3VybFdpdGhTY2hlbWFSZSA9IC9eKFthLXpBLVpcXC1cXCtcXC5dKyk6L2c7XG4iXX0=
+
+/***/ },
+/* 77 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+ var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+ };
+ var lang_1 = __webpack_require__(1);
+ var exceptions_1 = __webpack_require__(4);
+ var collection_1 = __webpack_require__(2);
+ var async_1 = __webpack_require__(6);
+ var template_commands_1 = __webpack_require__(52);
+ var directive_metadata_1 = __webpack_require__(46);
+ var di_1 = __webpack_require__(5);
+ var source_module_1 = __webpack_require__(27);
+ var change_detector_compiler_1 = __webpack_require__(119);
+ var style_compiler_1 = __webpack_require__(123);
+ var command_compiler_1 = __webpack_require__(71);
+ var template_parser_1 = __webpack_require__(78);
+ var template_normalizer_1 = __webpack_require__(124);
+ var runtime_metadata_1 = __webpack_require__(121);
+ var command_compiler_2 = __webpack_require__(71);
+ var util_1 = __webpack_require__(15);
+ /**
+ * An internal module of the Angular compiler that begins with component types,
+ * extracts templates, and eventually produces a compiled version of the component
+ * ready for linking into an application.
+ */
+ var TemplateCompiler = (function () {
+ function TemplateCompiler(_runtimeMetadataResolver, _templateNormalizer, _templateParser, _styleCompiler, _commandCompiler, _cdCompiler) {
+ this._runtimeMetadataResolver = _runtimeMetadataResolver;
+ this._templateNormalizer = _templateNormalizer;
+ this._templateParser = _templateParser;
+ this._styleCompiler = _styleCompiler;
+ this._commandCompiler = _commandCompiler;
+ this._cdCompiler = _cdCompiler;
+ this._hostCacheKeys = new Map();
+ this._compiledTemplateCache = new Map();
+ this._compiledTemplateDone = new Map();
+ this._nextTemplateId = 0;
+ }
+ TemplateCompiler.prototype.normalizeDirectiveMetadata = function (directive) {
+ if (!directive.isComponent) {
+ // For non components there is nothing to be normalized yet.
+ return async_1.PromiseWrapper.resolve(directive);
+ }
+ return this._templateNormalizer.normalizeTemplate(directive.type, directive.template)
+ .then(function (normalizedTemplate) { return new directive_metadata_1.CompileDirectiveMetadata({
+ type: directive.type,
+ isComponent: directive.isComponent,
+ dynamicLoadable: directive.dynamicLoadable,
+ selector: directive.selector,
+ exportAs: directive.exportAs,
+ changeDetection: directive.changeDetection,
+ inputs: directive.inputs,
+ outputs: directive.outputs,
+ hostListeners: directive.hostListeners,
+ hostProperties: directive.hostProperties,
+ hostAttributes: directive.hostAttributes,
+ lifecycleHooks: directive.lifecycleHooks,
+ template: normalizedTemplate
+ }); });
+ };
+ TemplateCompiler.prototype.compileHostComponentRuntime = function (type) {
+ var hostCacheKey = this._hostCacheKeys.get(type);
+ if (lang_1.isBlank(hostCacheKey)) {
+ hostCacheKey = new Object();
+ this._hostCacheKeys.set(type, hostCacheKey);
+ var compMeta = this._runtimeMetadataResolver.getMetadata(type);
+ assertComponent(compMeta);
+ var hostMeta = directive_metadata_1.createHostComponentMeta(compMeta.type, compMeta.selector);
+ this._compileComponentRuntime(hostCacheKey, hostMeta, [compMeta], new Set());
+ }
+ return this._compiledTemplateDone.get(hostCacheKey)
+ .then(function (compiledTemplate) { return new template_commands_1.CompiledHostTemplate(compiledTemplate); });
+ };
+ TemplateCompiler.prototype.clearCache = function () {
+ this._hostCacheKeys.clear();
+ this._styleCompiler.clearCache();
+ this._compiledTemplateCache.clear();
+ this._compiledTemplateDone.clear();
+ };
+ TemplateCompiler.prototype._compileComponentRuntime = function (cacheKey, compMeta, viewDirectives, compilingComponentCacheKeys) {
+ var _this = this;
+ var uniqViewDirectives = removeDuplicates(viewDirectives);
+ var compiledTemplate = this._compiledTemplateCache.get(cacheKey);
+ var done = this._compiledTemplateDone.get(cacheKey);
+ if (lang_1.isBlank(compiledTemplate)) {
+ var styles = [];
+ var changeDetectorFactory;
+ var commands = [];
+ var templateId = lang_1.stringify(compMeta.type.runtime) + "Template" + this._nextTemplateId++;
+ compiledTemplate = new template_commands_1.CompiledComponentTemplate(templateId, function (dispatcher) { return changeDetectorFactory(dispatcher); }, commands, styles);
+ this._compiledTemplateCache.set(cacheKey, compiledTemplate);
+ compilingComponentCacheKeys.add(cacheKey);
+ done = async_1.PromiseWrapper
+ .all([this._styleCompiler.compileComponentRuntime(compMeta.template)].concat(uniqViewDirectives.map(function (dirMeta) { return _this.normalizeDirectiveMetadata(dirMeta); })))
+ .then(function (stylesAndNormalizedViewDirMetas) {
+ var childPromises = [];
+ var normalizedViewDirMetas = stylesAndNormalizedViewDirMetas.slice(1);
+ var parsedTemplate = _this._templateParser.parse(compMeta.template.template, normalizedViewDirMetas, compMeta.type.name);
+ var changeDetectorFactories = _this._cdCompiler.compileComponentRuntime(compMeta.type, compMeta.changeDetection, parsedTemplate);
+ changeDetectorFactory = changeDetectorFactories[0];
+ var tmpStyles = stylesAndNormalizedViewDirMetas[0];
+ tmpStyles.forEach(function (style) { return styles.push(style); });
+ var tmpCommands = _this._compileCommandsRuntime(compMeta, parsedTemplate, changeDetectorFactories, compilingComponentCacheKeys, childPromises);
+ tmpCommands.forEach(function (cmd) { return commands.push(cmd); });
+ return async_1.PromiseWrapper.all(childPromises);
+ })
+ .then(function (_) {
+ collection_1.SetWrapper.delete(compilingComponentCacheKeys, cacheKey);
+ return compiledTemplate;
+ });
+ this._compiledTemplateDone.set(cacheKey, done);
+ }
+ return compiledTemplate;
+ };
+ TemplateCompiler.prototype._compileCommandsRuntime = function (compMeta, parsedTemplate, changeDetectorFactories, compilingComponentCacheKeys, childPromises) {
+ var _this = this;
+ var cmds = this._commandCompiler.compileComponentRuntime(compMeta, parsedTemplate, changeDetectorFactories, function (childComponentDir) {
+ var childCacheKey = childComponentDir.type.runtime;
+ var childViewDirectives = _this._runtimeMetadataResolver.getViewDirectivesMetadata(childComponentDir.type.runtime);
+ var childIsRecursive = collection_1.SetWrapper.has(compilingComponentCacheKeys, childCacheKey);
+ var childTemplate = _this._compileComponentRuntime(childCacheKey, childComponentDir, childViewDirectives, compilingComponentCacheKeys);
+ if (!childIsRecursive) {
+ // Only wait for a child if it is not a cycle
+ childPromises.push(_this._compiledTemplateDone.get(childCacheKey));
+ }
+ return function () { return childTemplate; };
+ });
+ cmds.forEach(function (cmd) {
+ if (cmd instanceof template_commands_1.BeginComponentCmd) {
+ cmd.templateGetter();
+ }
+ });
+ return cmds;
+ };
+ TemplateCompiler.prototype.compileTemplatesCodeGen = function (components) {
+ var _this = this;
+ if (components.length === 0) {
+ throw new exceptions_1.BaseException('No components given');
+ }
+ var declarations = [];
+ var templateArguments = [];
+ var componentMetas = [];
+ components.forEach(function (componentWithDirs) {
+ var compMeta = componentWithDirs.component;
+ assertComponent(compMeta);
+ componentMetas.push(compMeta);
+ _this._processTemplateCodeGen(compMeta, componentWithDirs.directives, declarations, templateArguments);
+ if (compMeta.dynamicLoadable) {
+ var hostMeta = directive_metadata_1.createHostComponentMeta(compMeta.type, compMeta.selector);
+ componentMetas.push(hostMeta);
+ _this._processTemplateCodeGen(hostMeta, [compMeta], declarations, templateArguments);
+ }
+ });
+ collection_1.ListWrapper.forEachWithIndex(componentMetas, function (compMeta, index) {
+ var templateId = compMeta.type.moduleUrl + "|" + compMeta.type.name;
+ var constructionKeyword = lang_1.IS_DART ? 'const' : 'new';
+ var compiledTemplateExpr = constructionKeyword + " " + command_compiler_2.TEMPLATE_COMMANDS_MODULE_REF + "CompiledComponentTemplate('" + templateId + "'," + templateArguments[index].join(',') + ")";
+ var variableValueExpr;
+ if (compMeta.type.isHost) {
+ variableValueExpr =
+ constructionKeyword + " " + command_compiler_2.TEMPLATE_COMMANDS_MODULE_REF + "CompiledHostTemplate(" + compiledTemplateExpr + ")";
+ }
+ else {
+ variableValueExpr = compiledTemplateExpr;
+ }
+ var varName = templateVariableName(compMeta.type);
+ declarations.push("" + util_1.codeGenExportVariable(varName) + variableValueExpr + ";");
+ declarations.push(util_1.codeGenValueFn([], varName, templateGetterName(compMeta.type)) + ";");
+ });
+ var moduleUrl = components[0].component.type.moduleUrl;
+ return new source_module_1.SourceModule("" + templateModuleUrl(moduleUrl), declarations.join('\n'));
+ };
+ TemplateCompiler.prototype.compileStylesheetCodeGen = function (stylesheetUrl, cssText) {
+ return this._styleCompiler.compileStylesheetCodeGen(stylesheetUrl, cssText);
+ };
+ TemplateCompiler.prototype._processTemplateCodeGen = function (compMeta, directives, targetDeclarations, targetTemplateArguments) {
+ var uniqueDirectives = removeDuplicates(directives);
+ var styleExpr = this._styleCompiler.compileComponentCodeGen(compMeta.template);
+ var parsedTemplate = this._templateParser.parse(compMeta.template.template, uniqueDirectives, compMeta.type.name);
+ var changeDetectorsExprs = this._cdCompiler.compileComponentCodeGen(compMeta.type, compMeta.changeDetection, parsedTemplate);
+ var commandsExpr = this._commandCompiler.compileComponentCodeGen(compMeta, parsedTemplate, changeDetectorsExprs.expressions, codeGenComponentTemplateFactory);
+ addAll(styleExpr.declarations, targetDeclarations);
+ addAll(changeDetectorsExprs.declarations, targetDeclarations);
+ addAll(commandsExpr.declarations, targetDeclarations);
+ targetTemplateArguments.push([changeDetectorsExprs.expressions[0], commandsExpr.expression, styleExpr.expression]);
+ };
+ TemplateCompiler = __decorate([
+ di_1.Injectable(),
+ __metadata('design:paramtypes', [runtime_metadata_1.RuntimeMetadataResolver, template_normalizer_1.TemplateNormalizer, template_parser_1.TemplateParser, style_compiler_1.StyleCompiler, command_compiler_1.CommandCompiler, change_detector_compiler_1.ChangeDetectionCompiler])
+ ], TemplateCompiler);
+ return TemplateCompiler;
+ })();
+ exports.TemplateCompiler = TemplateCompiler;
+ var NormalizedComponentWithViewDirectives = (function () {
+ function NormalizedComponentWithViewDirectives(component, directives) {
+ this.component = component;
+ this.directives = directives;
+ }
+ return NormalizedComponentWithViewDirectives;
+ })();
+ exports.NormalizedComponentWithViewDirectives = NormalizedComponentWithViewDirectives;
+ function assertComponent(meta) {
+ if (!meta.isComponent) {
+ throw new exceptions_1.BaseException("Could not compile '" + meta.type.name + "' because it is not a component.");
+ }
+ }
+ function templateVariableName(type) {
+ return type.name + "Template";
+ }
+ function templateGetterName(type) {
+ return templateVariableName(type) + "Getter";
+ }
+ function templateModuleUrl(moduleUrl) {
+ var urlWithoutSuffix = moduleUrl.substring(0, moduleUrl.length - util_1.MODULE_SUFFIX.length);
+ return urlWithoutSuffix + ".template" + util_1.MODULE_SUFFIX;
+ }
+ function addAll(source, target) {
+ for (var i = 0; i < source.length; i++) {
+ target.push(source[i]);
+ }
+ }
+ function codeGenComponentTemplateFactory(nestedCompType) {
+ return "" + source_module_1.moduleRef(templateModuleUrl(nestedCompType.type.moduleUrl)) + templateGetterName(nestedCompType.type);
+ }
+ function removeDuplicates(items) {
+ var res = [];
+ items.forEach(function (item) {
+ var hasMatch = res.filter(function (r) { return r.type.name == item.type.name && r.type.moduleUrl == item.type.moduleUrl &&
+ r.type.runtime == item.type.runtime; })
+ .length > 0;
+ if (!hasMatch) {
+ res.push(item);
+ }
+ });
+ return res;
+ }
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVfY29tcGlsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbmd1bGFyMi9zcmMvY29tcGlsZXIvdGVtcGxhdGVfY29tcGlsZXIudHMiXSwibmFtZXMiOlsiVGVtcGxhdGVDb21waWxlciIsIlRlbXBsYXRlQ29tcGlsZXIuY29uc3RydWN0b3IiLCJUZW1wbGF0ZUNvbXBpbGVyLm5vcm1hbGl6ZURpcmVjdGl2ZU1ldGFkYXRhIiwiVGVtcGxhdGVDb21waWxlci5jb21waWxlSG9zdENvbXBvbmVudFJ1bnRpbWUiLCJUZW1wbGF0ZUNvbXBpbGVyLmNsZWFyQ2FjaGUiLCJUZW1wbGF0ZUNvbXBpbGVyLl9jb21waWxlQ29tcG9uZW50UnVudGltZSIsIlRlbXBsYXRlQ29tcGlsZXIuX2NvbXBpbGVDb21tYW5kc1J1bnRpbWUiLCJUZW1wbGF0ZUNvbXBpbGVyLmNvbXBpbGVUZW1wbGF0ZXNDb2RlR2VuIiwiVGVtcGxhdGVDb21waWxlci5jb21waWxlU3R5bGVzaGVldENvZGVHZW4iLCJUZW1wbGF0ZUNvbXBpbGVyLl9wcm9jZXNzVGVtcGxhdGVDb2RlR2VuIiwiTm9ybWFsaXplZENvbXBvbmVudFdpdGhWaWV3RGlyZWN0aXZlcyIsIk5vcm1hbGl6ZWRDb21wb25lbnRXaXRoVmlld0RpcmVjdGl2ZXMuY29uc3RydWN0b3IiLCJhc3NlcnRDb21wb25lbnQiLCJ0ZW1wbGF0ZVZhcmlhYmxlTmFtZSIsInRlbXBsYXRlR2V0dGVyTmFtZSIsInRlbXBsYXRlTW9kdWxlVXJsIiwiYWRkQWxsIiwiY29kZUdlbkNvbXBvbmVudFRlbXBsYXRlRmFjdG9yeSIsInJlbW92ZUR1cGxpY2F0ZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLHFCQUFzRCwwQkFBMEIsQ0FBQyxDQUFBO0FBQ2pGLDJCQUE0QixnQ0FBZ0MsQ0FBQyxDQUFBO0FBQzdELDJCQUFrRCxnQ0FBZ0MsQ0FBQyxDQUFBO0FBQ25GLHNCQUFzQywyQkFBMkIsQ0FBQyxDQUFBO0FBQ2xFLGtD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QUlBLEdBQUdBLEdBQUdBLEVBQUVBLENBQUNBO0lBQ2JBLEtBQUtBLENBQUNBLE9BQU9BLENBQUNBLFVBQUFBLElBQUlBO1FBQ2hCQSxJQUFJQSxRQUFRQSxHQUNSQSxHQUFHQSxDQUFDQSxNQUFNQSxDQUFDQSxVQUFBQSxDQUFDQSxJQUFJQSxPQUFBQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxJQUFJQSxJQUFJQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQSxJQUFJQSxJQUFJQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxTQUFTQSxJQUFJQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQSxTQUFTQTtZQUN4RUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsSUFBSUEsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsT0FBT0EsRUFEbkNBLENBQ21DQSxDQUFDQTthQUMvQ0EsTUFBTUEsR0FBR0EsQ0FBQ0EsQ0FBQ0E7UUFDcEJBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBO1lBQ2RBLEdBQUdBLENBQUNBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1FBQ2pCQSxDQUFDQTtJQUNIQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUNIQSxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQTtBQUNiQSxDQUFDQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SVNfREFSVCwgVHlwZSwgSnNvbiwgaXNCbGFuaywgc3RyaW5naWZ5fSBmcm9tICdhbmd1bGFyMi9zcmMvZmFjYWRlL2xhbmcnO1xuaW1wb3J0IHtCYXNlRXhjZXB0aW9ufSBmcm9tICdhbmd1bGFyMi9zcmMvZmFjYWRlL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHtMaXN0V3JhcHBlciwgU2V0V3JhcHBlciwgTWFwV3JhcHBlcn0gZnJvbSAnYW5ndWxhcjIvc3JjL2ZhY2FkZS9jb2xsZWN0aW9uJztcbmltcG9ydCB7UHJvbWlzZVdyYXBwZXIsIFByb21pc2V9IGZyb20gJ2FuZ3VsYXIyL3NyYy9mYWNhZGUvYXN5bmMnO1xuaW1wb3J0IHtcbiAgQ29tcGlsZWRDb21wb25lbnRUZW1wbGF0ZSxcbiAgVGVtcGxhdGVDbWQsXG4gIENvbXBpbGVkSG9zdFRlbXBsYXRlLFxuICBCZWdpbkNvbXBvbmVudENtZFxufSBmcm9tICdhbmd1bGFyMi9zcmMvY29yZS9saW5rZXIvdGVtcGxhdGVfY29tbWFuZHMnO1xuaW1wb3J0IHtcbiAgY3JlYXRlSG9zdENvbXBvbmVudE1ldGEsXG4gIENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YSxcbiAgQ29tcGlsZVR5cGVNZXRhZGF0YSxcbiAgQ29tcGlsZVRlbXBsYXRlTWV0YWRhdGFcbn0gZnJvbSAnLi9kaXJlY3RpdmVfbWV0YWRhdGEnO1xuaW1wb3J0IHtUZW1wbGF0ZUFzdH0gZnJvbSAnLi90ZW1wbGF0ZV9hc3QnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdhbmd1bGFyMi9zcmMvY29yZS9kaSc7XG5pbXBvcnQge1NvdXJjZU1vZHVsZSwgbW9kdWxlUmVmfSBmcm9tICcuL3NvdXJjZV9tb2R1bGUnO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25Db21waWxlcn0gZnJvbSAnLi9jaGFuZ2VfZGV0ZWN0b3JfY29tcGlsZXInO1xuaW1wb3J0IHtTdHlsZUNvbXBpbGVyfSBmcm9tICcuL3N0eWxlX2NvbXBpbGVyJztcbmltcG9ydCB7Q29tbWFuZENvbXBpbGVyfSBmcm9tICcuL2NvbW1hbmRfY29tcGlsZXInO1xuaW1wb3J0IHtUZW1wbGF0ZVBhcnNlcn0gZnJvbSAnLi90ZW1wbGF0ZV9wYXJzZXInO1xuaW1wb3J0IHtUZW1wbGF0ZU5vcm1hbGl6ZXJ9IGZyb20gJy4vdGVtcGxhdGVfbm9ybWFsaXplcic7XG5pbXBvcnQge1J1bnRpbWVNZXRhZGF0YVJlc29sdmVyfSBmcm9tICcuL3J1bnRpbWVfbWV0YWRhdGEnO1xuXG5pbXBvcnQge1RFTVBMQVRFX0NPTU1BTkRTX01PRFVMRV9SRUZ9IGZyb20gJy4vY29tbWFuZF9jb21waWxlcic7XG5pbXBvcnQge1xuICBjb2RlR2VuRXhwb3J0VmFyaWFibGUsXG4gIGVzY2FwZVNpbmdsZVF1b3RlU3RyaW5nLFxuICBjb2RlR2VuVmFsdWVGbixcbiAgTU9EVUxFX1NVRkZJWFxufSBmcm9tICcuL3V0aWwnO1xuXG4vKipcbiAqIEFuIGludGVybmFsIG1vZHVsZSBvZiB0aGUgQW5ndWxhciBjb21waWxlciB0aGF0IGJlZ2lucyB3aXRoIGNvbXBvbmVudCB0eXBlcyxcbiAqIGV4dHJhY3RzIHRlbXBsYXRlcywgYW5kIGV2ZW50dWFsbHkgcHJvZHVjZXMgYSBjb21waWxlZCB2ZXJzaW9uIG9mIHRoZSBjb21wb25lbnRcbiAqIHJlYWR5IGZvciBsaW5raW5nIGludG8gYW4gYXBwbGljYXRpb24uXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUNvbXBpbGVyIHtcbiAgcHJpdmF0ZSBfaG9zdENhY2hlS2V5cyA9IG5ldyBNYXA8VHlwZSwgYW55PigpO1xuICBwcml2YXRlIF9jb21waWxlZFRlbXBsYXRlQ2FjaGUgPSBuZXcgTWFwPGFueSwgQ29tcGlsZWRDb21wb25lbnRUZW1wbGF0ZT4oKTtcbiAgcHJpdmF0ZSBfY29tcGlsZWRUZW1wbGF0ZURvbmUgPSBuZXcgTWFwPGFueSwgUHJvbWlzZTxDb21waWxlZENvbXBvbmVudFRlbXBsYXRlPj4oKTtcbiAgcHJpdmF0ZSBfbmV4dFRlbXBsYXRlSWQ6IG51bWJlciA9IDA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfcnVudGltZU1ldGFkYXRhUmVzb2x2ZXI6IFJ1bnRpbWVNZXRhZGF0YVJlc29sdmVyLFxuICAgICAgICAgICAgICBwcml2YXRlIF90ZW1wbGF0ZU5vcm1hbGl6ZXI6IFRlbXBsYXRlTm9ybWFsaXplcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdGVtcGxhdGVQYXJzZXI6IFRlbXBsYXRlUGFyc2VyLCBwcml2YXRlIF9zdHlsZUNvbXBpbGVyOiBTdHlsZUNvbXBpbGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIF9jb21tYW5kQ29tcGlsZXI6IENvbW1hbmRDb21waWxlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfY2RDb21waWxlcjogQ2hhbmdlRGV0ZWN0aW9uQ29tcGlsZXIpIHt9XG5cbiAgbm9ybWFsaXplRGlyZWN0aXZlTWV0YWRhdGEoZGlyZWN0aXZlOiBDb21waWxlRGlyZWN0aXZlTWV0YWRhdGEpOlxuICAgICAgUHJvbWlzZTxDb21waWxlRGlyZWN0aXZlTWV0YWRhdGE+IHtcbiAgICBpZiAoIWRpcmVjdGl2ZS5pc0NvbXBvbmVudCkge1xuICAgICAgLy8gRm9yIG5vbiBjb21wb25lbnRzIHRoZXJlIGlzIG5vdGhpbmcgdG8gYmUgbm9ybWFsaXplZCB5ZXQuXG4gICAgICByZXR1cm4gUHJvbWlzZVdyYXBwZXIucmVzb2x2ZShkaXJlY3RpdmUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl90ZW1wbGF0ZU5vcm1hbGl6ZXIubm9ybWFsaXplVGVtcGxhdGUoZGlyZWN0aXZlLnR5cGUsIGRpcmVjdGl2ZS50ZW1wbGF0ZSlcbiAgICAgICAgLnRoZW4oKG5vcm1hbGl6ZWRUZW1wbGF0ZTogQ29tcGlsZVRlbXBsYXRlTWV0YWRhdGEpID0+IG5ldyBDb21waWxlRGlyZWN0aXZlTWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgIHR5cGU6IGRpcmVjdGl2ZS50eXBlLFxuICAgICAgICAgICAgICAgIGlzQ29tcG9uZW50OiBkaXJlY3RpdmUuaXNDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgZHluYW1pY0xvYWRhYmxlOiBkaXJlY3RpdmUuZHluYW1pY0xvYWRhYmxlLFxuICAgICAgICAgICAgICAgIHNlbGVjdG9yOiBkaXJlY3RpdmUuc2VsZWN0b3IsXG4gICAgICAgICAgICAgICAgZXhwb3J0QXM6IGRpcmVjdGl2ZS5leHBvcnRBcyxcbiAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3Rpb246IGRpcmVjdGl2ZS5jaGFuZ2VEZXRlY3Rpb24sXG4gICAgICAgICAgICAgICAgaW5wdXRzOiBkaXJlY3RpdmUuaW5wdXRzLFxuICAgICAgICAgICAgICAgIG91dHB1dHM6IGRpcmVjdGl2ZS5vdXRwdXRzLFxuICAgICAgICAgICAgICAgIGhvc3RMaXN0ZW5lcnM6IGRpcmVjdGl2ZS5ob3N0TGlzdGVuZXJzLFxuICAgICAgICAgICAgICAgIGhvc3RQcm9wZXJ0aWVzOiBkaXJlY3RpdmUuaG9zdFByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgaG9zdEF0dHJpYnV0ZXM6IGRpcmVjdGl2ZS5ob3N0QXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICBsaWZlY3ljbGVIb29rczogZGlyZWN0aXZlLmxpZmVjeWNsZUhvb2tzLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlOiBub3JtYWxpemVkVGVtcGxhdGVcbiAgICAgICAgICAgICAgfSkpO1xuICB9XG5cbiAgY29tcGlsZUhvc3RDb21wb25lbnRSdW50aW1lKHR5cGU6IFR5cGUpOiBQcm9taXNlPENvbXBpbGVkSG9zdFRlbXBsYXRlPiB7XG4gICAgdmFyIGhvc3RDYWNoZUtleSA9IHRoaXMuX2hvc3RDYWNoZUtleXMuZ2V0KHR5cGUpO1xuICAgIGlmIChpc0JsYW5rKGhvc3RDYWNoZUtleSkpIHtcbiAgICAgIGhvc3RDYWNoZUtleSA9IG5ldyBPYmplY3QoKTtcbiAgICAgIHRoaXMuX2hvc3RDYWNoZUtleXMuc2V0KHR5cGUsIGhvc3RDYWNoZUtleSk7XG4gICAgICB2YXIgY29tcE1ldGE6IENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YSA9IHRoaXMuX3J1bnRpbWVNZXRhZGF0YVJlc29sdmVyLmdldE1ldGFkYXRhKHR5cGUpO1xuICAgICAgYXNzZXJ0Q29tcG9uZW50KGNvbXBNZXRhKTtcbiAgICAgIHZhciBob3N0TWV0YTogQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhID1cbiAgICAgICAgICBjcmVhdGVIb3N0Q29tcG9uZW50TWV0YShjb21wTWV0YS50eXBlLCBjb21wTWV0YS5zZWxlY3Rvcik7XG5cbiAgICAgIHRoaXMuX2NvbXBpbGVDb21wb25lbnRSdW50aW1lKGhvc3RDYWNoZUtleSwgaG9zdE1ldGEsIFtjb21wTWV0YV0sIG5ldyBTZXQoKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jb21waWxlZFRlbXBsYXRlRG9uZS5nZXQoaG9zdENhY2hlS2V5KVxuICAgICAgICAudGhlbihjb21waWxlZFRlbXBsYXRlID0+IG5ldyBDb21waWxlZEhvc3RUZW1wbGF0ZShjb21waWxlZFRlbXBsYXRlKSk7XG4gIH1cblxuICBjbGVhckNhY2hlKCkge1xuICAgIHRoaXMuX2hvc3RDYWNoZUtleXMuY2xlYXIoKTtcbiAgICB0aGlzLl9zdHlsZUNvbXBpbGVyLmNsZWFyQ2FjaGUoKTtcbiAgICB0aGlzLl9jb21waWxlZFRlbXBsYXRlQ2FjaGUuY2xlYXIoKTtcbiAgICB0aGlzLl9jb21waWxlZFRlbXBsYXRlRG9uZS5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tcGlsZUNvbXBvbmVudFJ1bnRpbWUoXG4gICAgICBjYWNoZUtleTogYW55LCBjb21wTWV0YTogQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhLCB2aWV3RGlyZWN0aXZlczogQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhW10sXG4gICAgICBjb21waWxpbmdDb21wb25lbnRDYWNoZUtleXM6IFNldDxhbnk+KTogQ29tcGlsZWRDb21wb25lbnRUZW1wbGF0ZSB7XG4gICAgbGV0IHVuaXFWaWV3RGlyZWN0aXZlcyA9IHJlbW92ZUR1cGxpY2F0ZXModmlld0RpcmVjdGl2ZXMpO1xuICAgIHZhciBjb21waWxlZFRlbXBsYXRlID0gdGhpcy5fY29tcGlsZWRUZW1wbGF0ZUNhY2hlLmdldChjYWNoZUtleSk7XG4gICAgdmFyIGRvbmUgPSB0aGlzLl9jb21waWxlZFRlbXBsYXRlRG9uZS5nZXQoY2FjaGVLZXkpO1xuICAgIGlmIChpc0JsYW5rKGNvbXBpbGVkVGVtcGxhdGUpKSB7XG4gICAgICB2YXIgc3R5bGVzID0gW107XG4gICAgICB2YXIgY2hhbmdlRGV0ZWN0b3JGYWN0b3J5O1xuICAgICAgdmFyIGNvbW1hbmRzID0gW107XG4gICAgICB2YXIgdGVtcGxhdGVJZCA9IGAke3N0cmluZ2lmeShjb21wTWV0YS50eXBlLnJ1bnRpbWUpfVRlbXBsYXRlJHt0aGlzLl9uZXh0VGVtcGxhdGVJZCsrfWA7XG4gICAgICBjb21waWxlZFRlbXBsYXRlID0gbmV3IENvbXBpbGVkQ29tcG9uZW50VGVtcGxhdGUoXG4gICAgICAgICAgdGVtcGxhdGVJZCwgKGRpc3BhdGNoZXIpID0+IGNoYW5nZURldGVjdG9yRmFjdG9yeShkaXNwYXRjaGVyKSwgY29tbWFuZHMsIHN0eWxlcyk7XG4gICAgICB0aGlzLl9jb21waWxlZFRlbXBsYXRlQ2FjaGUuc2V0KGNhY2hlS2V5LCBjb21waWxlZFRlbXBsYXRlKTtcbiAgICAgIGNvbXBpbGluZ0NvbXBvbmVudENhY2hlS2V5cy5hZGQoY2FjaGVLZXkpO1xuICAgICAgZG9uZSA9IFByb21pc2VXcmFwcGVyXG4gICAgICAgICAgICAgICAgIC5hbGwoWzxhbnk+dGhpcy5fc3R5bGVDb21waWxlci5jb21waWxlQ29tcG9uZW50UnVudGltZShjb21wTWV0YS50ZW1wbGF0ZSldLmNvbmNhdChcbiAgICAgICAgICAgICAgICAgICAgIHVuaXFWaWV3RGlyZWN0aXZlcy5tYXAoZGlyTWV0YSA9PiB0aGlzLm5vcm1hbGl6ZURpcmVjdGl2ZU1ldGFkYXRhKGRpck1ldGEpKSkpXG4gICAgICAgICAgICAgICAgIC50aGVuKChzdHlsZXNBbmROb3JtYWxpemVkVmlld0Rpck1ldGFzOiBhbnlbXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgIHZhciBjaGlsZFByb21pc2VzID0gW107XG4gICAgICAgICAgICAgICAgICAgdmFyIG5vcm1hbGl6ZWRWaWV3RGlyTWV0YXMgPSBzdHlsZXNBbmROb3JtYWxpemVkVmlld0Rpck1ldGFzLnNsaWNlKDEpO1xuICAgICAgICAgICAgICAgICAgIHZhciBwYXJzZWRUZW1wbGF0ZSA9IHRoaXMuX3RlbXBsYXRlUGFyc2VyLnBhcnNlKFxuICAgICAgICAgICAgICAgICAgICAgICBjb21wTWV0YS50ZW1wbGF0ZS50ZW1wbGF0ZSwgbm9ybWFsaXplZFZpZXdEaXJNZXRhcywgY29tcE1ldGEudHlwZS5uYW1lKTtcblxuICAgICAgICAgICAgICAgICAgIHZhciBjaGFuZ2VEZXRlY3RvckZhY3RvcmllcyA9IHRoaXMuX2NkQ29tcGlsZXIuY29tcGlsZUNvbXBvbmVudFJ1bnRpbWUoXG4gICAgICAgICAgICAgICAgICAgICAgIGNvbXBNZXRhLnR5cGUsIGNvbXBNZXRhLmNoYW5nZURldGVjdGlvbiwgcGFyc2VkVGVtcGxhdGUpO1xuICAgICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdG9yRmFjdG9yeSA9IGNoYW5nZURldGVjdG9yRmFjdG9yaWVzWzBdO1xuICAgICAgICAgICAgICAgICAgIHZhciB0bXBTdHlsZXM6IHN0cmluZ1tdID0gc3R5bGVzQW5kTm9ybWFsaXplZFZpZXdEaXJNZXRhc1swXTtcbiAgICAgICAgICAgICAgICAgICB0bXBTdHlsZXMuZm9yRWFjaChzdHlsZSA9PiBzdHlsZXMucHVzaChzdHlsZSkpO1xuICAgICAgICAgICAgICAgICAgIHZhciB0bXBDb21tYW5kczogVGVtcGxhdGVDbWRbXSA9IHRoaXMuX2NvbXBpbGVDb21tYW5kc1J1bnRpbWUoXG4gICAgICAgICAgICAgICAgICAgICAgIGNvbXBNZXRhLCBwYXJzZWRUZW1wbGF0ZSwgY2hhbmdlRGV0ZWN0b3JGYWN0b3JpZXMsXG4gICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGluZ0NvbXBvbmVudENhY2hlS2V5cywgY2hpbGRQcm9taXNlcyk7XG4gICAgICAgICAgICAgICAgICAgdG1wQ29tbWFuZHMuZm9yRWFjaChjbWQgPT4gY29tbWFuZHMucHVzaChjbWQpKTtcbiAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZVdyYXBwZXIuYWxsKGNoaWxkUHJvbWlzZXMpO1xuICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAudGhlbigoXykgPT4ge1xuICAgICAgICAgICAgICAgICAgIFNldFdyYXBwZXIuZGVsZXRlKGNvbXBpbGluZ0NvbXBvbmVudENhY2hlS2V5cywgY2FjaGVLZXkpO1xuICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21waWxlZFRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICB9KTtcbiAgICAgIHRoaXMuX2NvbXBpbGVkVGVtcGxhdGVEb25lLnNldChjYWNoZUtleSwgZG9uZSk7XG4gICAgfVxuICAgIHJldHVybiBjb21waWxlZFRlbXBsYXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tcGlsZUNvbW1hbmRzUnVudGltZShjb21wTWV0YTogQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhLCBwYXJzZWRUZW1wbGF0ZTogVGVtcGxhdGVBc3RbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3RvckZhY3RvcmllczogRnVuY3Rpb25bXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxpbmdDb21wb25lbnRDYWNoZUtleXM6IFNldDxUeXBlPixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFByb21pc2VzOiBQcm9taXNlPGFueT5bXSk6IFRlbXBsYXRlQ21kW10ge1xuICAgIHZhciBjbWRzOiBUZW1wbGF0ZUNtZFtdID0gdGhpcy5fY29tbWFuZENvbXBpbGVyLmNvbXBpbGVDb21wb25lbnRSdW50aW1lKFxuICAgICAgICBjb21wTWV0YSwgcGFyc2VkVGVtcGxhdGUsIGNoYW5nZURldGVjdG9yRmFjdG9yaWVzLFxuICAgICAgICAoY2hpbGRDb21wb25lbnREaXI6IENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YSkgPT4ge1xuICAgICAgICAgIHZhciBjaGlsZENhY2hlS2V5ID0gY2hpbGRDb21wb25lbnREaXIudHlwZS5ydW50aW1lO1xuICAgICAgICAgIHZhciBjaGlsZFZpZXdEaXJlY3RpdmVzOiBDb21waWxlRGlyZWN0aXZlTWV0YWRhdGFbXSA9XG4gICAgICAgICAgICAgIHRoaXMuX3J1bnRpbWVNZXRhZGF0YVJlc29sdmVyLmdldFZpZXdEaXJlY3RpdmVzTWV0YWRhdGEoXG4gICAgICAgICAgICAgICAgICBjaGlsZENvbXBvbmVudERpci50eXBlLnJ1bnRpbWUpO1xuICAgICAgICAgIHZhciBjaGlsZElzUmVjdXJzaXZlID0gU2V0V3JhcHBlci5oYXMoY29tcGlsaW5nQ29tcG9uZW50Q2FjaGVLZXlzLCBjaGlsZENhY2hlS2V5KTtcbiAgICAgICAgICB2YXIgY2hpbGRUZW1wbGF0ZSA9IHRoaXMuX2NvbXBpbGVDb21wb25lbnRSdW50aW1lKFxuICAgICAgICAgICAgICBjaGlsZENhY2hlS2V5LCBjaGlsZENvbXBvbmVudERpciwgY2hpbGRWaWV3RGlyZWN0aXZlcywgY29tcGlsaW5nQ29tcG9uZW50Q2FjaGVLZXlzKTtcbiAgICAgICAgICBpZiAoIWNoaWxkSXNSZWN1cnNpdmUpIHtcbiAgICAgICAgICAgIC8vIE9ubHkgd2FpdCBmb3IgYSBjaGlsZCBpZiBpdCBpcyBub3QgYSBjeWNsZVxuICAgICAgICAgICAgY2hpbGRQcm9taXNlcy5wdXNoKHRoaXMuX2NvbXBpbGVkVGVtcGxhdGVEb25lLmdldChjaGlsZENhY2hlS2V5KSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAoKSA9PiBjaGlsZFRlbXBsYXRlO1xuICAgICAgICB9KTtcbiAgICBjbWRzLmZvckVhY2goY21kID0+IHtcbiAgICAgIGlmIChjbWQgaW5zdGFuY2VvZiBCZWdpbkNvbXBvbmVudENtZCkge1xuICAgICAgICBjbWQudGVtcGxhdGVHZXR0ZXIoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY21kcztcbiAgfVxuXG4gIGNvbXBpbGVUZW1wbGF0ZXNDb2RlR2VuKGNvbXBvbmVudHM6IE5vcm1hbGl6ZWRDb21wb25lbnRXaXRoVmlld0RpcmVjdGl2ZXNbXSk6IFNvdXJjZU1vZHVsZSB7XG4gICAgaWYgKGNvbXBvbmVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQmFzZUV4Y2VwdGlvbignTm8gY29tcG9uZW50cyBnaXZlbicpO1xuICAgIH1cbiAgICB2YXIgZGVjbGFyYXRpb25zID0gW107XG4gICAgdmFyIHRlbXBsYXRlQXJndW1lbnRzID0gW107XG4gICAgdmFyIGNvbXBvbmVudE1ldGFzOiBDb21waWxlRGlyZWN0aXZlTWV0YWRhdGFbXSA9IFtdO1xuICAgIGNvbXBvbmVudHMuZm9yRWFjaChjb21wb25lbnRXaXRoRGlycyA9PiB7XG4gICAgICB2YXIgY29tcE1ldGEgPSA8Q29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhPmNvbXBvbmVudFdpdGhEaXJzLmNvbXBvbmVudDtcbiAgICAgIGFzc2VydENvbXBvbmVudChjb21wTWV0YSk7XG4gICAgICBjb21wb25lbnRNZXRhcy5wdXNoKGNvbXBNZXRhKTtcblxuICAgICAgdGhpcy5fcHJvY2Vzc1RlbXBsYXRlQ29kZUdlbihjb21wTWV0YSwgY29tcG9uZW50V2l0aERpcnMuZGlyZWN0aXZlcywgZGVjbGFyYXRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZUFyZ3VtZW50cyk7XG4gICAgICBpZiAoY29tcE1ldGEuZHluYW1pY0xvYWRhYmxlKSB7XG4gICAgICAgIHZhciBob3N0TWV0YSA9IGNyZWF0ZUhvc3RDb21wb25lbnRNZXRhKGNvbXBNZXRhLnR5cGUsIGNvbXBNZXRhLnNlbGVjdG9yKTtcbiAgICAgICAgY29tcG9uZW50TWV0YXMucHVzaChob3N0TWV0YSk7XG4gICAgICAgIHRoaXMuX3Byb2Nlc3NUZW1wbGF0ZUNvZGVHZW4oaG9zdE1ldGEsIFtjb21wTWV0YV0sIGRlY2xhcmF0aW9ucywgdGVtcGxhdGVBcmd1bWVudHMpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIExpc3RXcmFwcGVyLmZvckVhY2hXaXRoSW5kZXgoY29tcG9uZW50TWV0YXMsIChjb21wTWV0YTogQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICB2YXIgdGVtcGxhdGVJZCA9IGAke2NvbXBNZXRhLnR5cGUubW9kdWxlVXJsfXwke2NvbXBNZXRhLnR5cGUubmFtZX1gO1xuICAgICAgdmFyIGNvbnN0cnVjdGlvbktleXdvcmQgPSBJU19EQVJUID8gJ2NvbnN0JyA6ICduZXcnO1xuICAgICAgdmFyIGNvbXBpbGVkVGVtcGxhdGVFeHByID1cbiAgICAgICAgICBgJHtjb25zdHJ1Y3Rpb25LZXl3b3JkfSAke1RFTVBMQVRFX0NPTU1BTkRTX01PRFVMRV9SRUZ9Q29tcGlsZWRDb21wb25lbnRUZW1wbGF0ZSgnJHt0ZW1wbGF0ZUlkfScsJHsoPGFueVtdPnRlbXBsYXRlQXJndW1lbnRzW2luZGV4XSkuam9pbignLCcpfSlgO1xuICAgICAgdmFyIHZhcmlhYmxlVmFsdWVFeHByO1xuICAgICAgaWYgKGNvbXBNZXRhLnR5cGUuaXNIb3N0KSB7XG4gICAgICAgIHZhcmlhYmxlVmFsdWVFeHByID1cbiAgICAgICAgICAgIGAke2NvbnN0cnVjdGlvbktleXdvcmR9ICR7VEVNUExBVEVfQ09NTUFORFNfTU9EVUxFX1JFRn1Db21waWxlZEhvc3RUZW1wbGF0ZSgke2NvbXBpbGVkVGVtcGxhdGVFeHByfSlgO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyaWFibGVWYWx1ZUV4cHIgPSBjb21waWxlZFRlbXBsYXRlRXhwcjtcbiAgICAgIH1cbiAgICAgIHZhciB2YXJOYW1lID0gdGVtcGxhdGVWYXJpYWJsZU5hbWUoY29tcE1ldGEudHlwZSk7XG4gICAgICBkZWNsYXJhdGlvbnMucHVzaChgJHtjb2RlR2VuRXhwb3J0VmFyaWFibGUodmFyTmFtZSl9JHt2YXJpYWJsZVZhbHVlRXhwcn07YCk7XG4gICAgICBkZWNsYXJhdGlvbnMucHVzaChgJHtjb2RlR2VuVmFsdWVGbihbXSwgdmFyTmFtZSwgdGVtcGxhdGVHZXR0ZXJOYW1lKGNvbXBNZXRhLnR5cGUpKX07YCk7XG4gICAgfSk7XG4gICAgdmFyIG1vZHVsZVVybCA9IGNvbXBvbmVudHNbMF0uY29tcG9uZW50LnR5cGUubW9kdWxlVXJsO1xuICAgIHJldHVybiBuZXcgU291cmNlTW9kdWxlKGAke3RlbXBsYXRlTW9kdWxlVXJsKG1vZHVsZVVybCl9YCwgZGVjbGFyYXRpb25zLmpvaW4oJ1xcbicpKTtcbiAgfVxuXG4gIGNvbXBpbGVTdHlsZXNoZWV0Q29kZUdlbihzdHlsZXNoZWV0VXJsOiBzdHJpbmcsIGNzc1RleHQ6IHN0cmluZyk6IFNvdXJjZU1vZHVsZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fc3R5bGVDb21waWxlci5jb21waWxlU3R5bGVzaGVldENvZGVHZW4oc3R5bGVzaGVldFVybCwgY3NzVGV4dCk7XG4gIH1cblxuICBwcml2YXRlIF9wcm9jZXNzVGVtcGxhdGVDb2RlR2VuKGNvbXBNZXRhOiBDb21waWxlRGlyZWN0aXZlTWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aXZlczogQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhW10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0RGVjbGFyYXRpb25zOiBzdHJpbmdbXSwgdGFyZ2V0VGVtcGxhdGVBcmd1bWVudHM6IGFueVtdW10pIHtcbiAgICBsZXQgdW5pcXVlRGlyZWN0aXZlcyA9IHJlbW92ZUR1cGxpY2F0ZXMoZGlyZWN0aXZlcyk7XG4gICAgdmFyIHN0eWxlRXhwciA9IHRoaXMuX3N0eWxlQ29tcGlsZXIuY29tcGlsZUNvbXBvbmVudENvZGVHZW4oY29tcE1ldGEudGVtcGxhdGUpO1xuICAgIHZhciBwYXJzZWRUZW1wbGF0ZSA9IHRoaXMuX3RlbXBsYXRlUGFyc2VyLnBhcnNlKGNvbXBNZXRhLnRlbXBsYXRlLnRlbXBsYXRlLCB1bmlxdWVEaXJlY3RpdmVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBNZXRhLnR5cGUubmFtZSk7XG4gICAgdmFyIGNoYW5nZURldGVjdG9yc0V4cHJzID0gdGhpcy5fY2RDb21waWxlci5jb21waWxlQ29tcG9uZW50Q29kZUdlbihcbiAgICAgICAgY29tcE1ldGEudHlwZSwgY29tcE1ldGEuY2hhbmdlRGV0ZWN0aW9uLCBwYXJzZWRUZW1wbGF0ZSk7XG4gICAgdmFyIGNvbW1hbmRzRXhwciA9IHRoaXMuX2NvbW1hbmRDb21waWxlci5jb21waWxlQ29tcG9uZW50Q29kZUdlbihcbiAgICAgICAgY29tcE1ldGEsIHBhcnNlZFRlbXBsYXRlLCBjaGFuZ2VEZXRlY3RvcnNFeHBycy5leHByZXNzaW9ucyxcbiAgICAgICAgY29kZUdlbkNvbXBvbmVudFRlbXBsYXRlRmFjdG9yeSk7XG5cbiAgICBhZGRBbGwoc3R5bGVFeHByLmRlY2xhcmF0aW9ucywgdGFyZ2V0RGVjbGFyYXRpb25zKTtcbiAgICBhZGRBbGwoY2hhbmdlRGV0ZWN0b3JzRXhwcnMuZGVjbGFyYXRpb25zLCB0YXJnZXREZWNsYXJhdGlvbnMpO1xuICAgIGFkZEFsbChjb21tYW5kc0V4cHIuZGVjbGFyYXRpb25zLCB0YXJnZXREZWNsYXJhdGlvbnMpO1xuXG4gICAgdGFyZ2V0VGVtcGxhdGVBcmd1bWVudHMucHVzaChcbiAgICAgICAgW2NoYW5nZURldGVjdG9yc0V4cHJzLmV4cHJlc3Npb25zWzBdLCBjb21tYW5kc0V4cHIuZXhwcmVzc2lvbiwgc3R5bGVFeHByLmV4cHJlc3Npb25dKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTm9ybWFsaXplZENvbXBvbmVudFdpdGhWaWV3RGlyZWN0aXZlcyB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb21wb25lbnQ6IENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YSxcbiAgICAgICAgICAgICAgcHVibGljIGRpcmVjdGl2ZXM6IENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YVtdKSB7fVxufVxuXG5mdW5jdGlvbiBhc3NlcnRDb21wb25lbnQobWV0YTogQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhKSB7XG4gIGlmICghbWV0YS5pc0NvbXBvbmVudCkge1xuICAgIHRocm93IG5ldyBCYXNlRXhjZXB0aW9uKGBDb3VsZCBub3QgY29tcGlsZSAnJHttZXRhLnR5cGUubmFtZX0nIGJlY2F1c2UgaXQgaXMgbm90IGEgY29tcG9uZW50LmApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRlbXBsYXRlVmFyaWFibGVOYW1lKHR5cGU6IENvbXBpbGVUeXBlTWV0YWRhdGEpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7dHlwZS5uYW1lfVRlbXBsYXRlYDtcbn1cblxuZnVuY3Rpb24gdGVtcGxhdGVHZXR0ZXJOYW1lKHR5cGU6IENvbXBpbGVUeXBlTWV0YWRhdGEpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7dGVtcGxhdGVWYXJpYWJsZU5hbWUodHlwZSl9R2V0dGVyYDtcbn1cblxuZnVuY3Rpb24gdGVtcGxhdGVNb2R1bGVVcmwobW9kdWxlVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICB2YXIgdXJsV2l0aG91dFN1ZmZpeCA9IG1vZHVsZVVybC5zdWJzdHJpbmcoMCwgbW9kdWxlVXJsLmxlbmd0aCAtIE1PRFVMRV9TVUZGSVgubGVuZ3RoKTtcbiAgcmV0dXJuIGAke3VybFdpdGhvdXRTdWZmaXh9LnRlbXBsYXRlJHtNT0RVTEVfU1VGRklYfWA7XG59XG5cbmZ1bmN0aW9uIGFkZEFsbChzb3VyY2U6IGFueVtdLCB0YXJnZXQ6IGFueVtdKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc291cmNlLmxlbmd0aDsgaSsrKSB7XG4gICAgdGFyZ2V0LnB1c2goc291cmNlW2ldKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb2RlR2VuQ29tcG9uZW50VGVtcGxhdGVGYWN0b3J5KG5lc3RlZENvbXBUeXBlOiBDb21waWxlRGlyZWN0aXZlTWV0YWRhdGEpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7bW9kdWxlUmVmKHRlbXBsYXRlTW9kdWxlVXJsKG5lc3RlZENvbXBUeXBlLnR5cGUubW9kdWxlVXJsKSl9JHt0ZW1wbGF0ZUdldHRlck5hbWUobmVzdGVkQ29tcFR5cGUudHlwZSl9YDtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlRHVwbGljYXRlcyhpdGVtczogQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhW10pOiBDb21waWxlRGlyZWN0aXZlTWV0YWRhdGFbXSB7XG4gIGxldCByZXMgPSBbXTtcbiAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICBsZXQgaGFzTWF0Y2ggPVxuICAgICAgICByZXMuZmlsdGVyKHIgPT4gci50eXBlLm5hbWUgPT0gaXRlbS50eXBlLm5hbWUgJiYgci50eXBlLm1vZHVsZVVybCA9PSBpdGVtLnR5cGUubW9kdWxlVXJsICYmXG4gICAgICAgICAgICAgICAgICAgICAgICByLnR5cGUucnVudGltZSA9PSBpdGVtLnR5cGUucnVudGltZSlcbiAgICAgICAgICAgIC5sZW5ndGggPiAwO1xuICAgIGlmICghaGFzTWF0Y2gpIHtcbiAgICAgIHJlcy5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXM7XG59XG4iXX0=
+
+/***/ },
+/* 78 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+ };
+ var __metadata = (this && this.__metadata) || function (k, v) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
+ };
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
+ return function (target, key) { decorator(target, key, paramIndex); }
+ };
+ var collection_1 = __webpack_require__(2);
+ var lang_1 = __webpack_require__(1);
+ var core_1 = __webpack_require__(3);
+ var lang_2 = __webpack_require__(1);
+ var exceptions_1 = __webpack_require__(4);
+ var change_detection_1 = __webpack_require__(10);
+ var html_parser_1 = __webpack_require__(73);
+ var html_tags_1 = __webpack_require__(26);
+ var parse_util_1 = __webpack_require__(74);
+ var template_ast_1 = __webpack_require__(47);
+ var selector_1 = __webpack_require__(122);
+ var element_schema_registry_1 = __webpack_require__(75);
+ var template_preparser_1 = __webpack_require__(125);
+ var style_url_resolver_1 = __webpack_require__(76);
+ var html_ast_1 = __webpack_require__(72);
+ var util_1 = __webpack_require__(15);
+ // Group 1 = "bind-"
+ // Group 2 = "var-" or "#"
+ // Group 3 = "on-"
+ // Group 4 = "bindon-"
+ // Group 5 = the identifier after "bind-", "var-/#", or "on-"
+ // Group 6 = idenitifer inside [()]
+ // Group 7 = idenitifer inside []
+ // Group 8 = identifier inside ()
+ var BIND_NAME_REGEXP = /^(?:(?:(?:(bind-)|(var-|#)|(on-)|(bindon-))(.+))|\[\(([^\)]+)\)\]|\[([^\]]+)\]|\(([^\)]+)\))$/g;
+ var TEMPLATE_ELEMENT = 'template';
+ var TEMPLATE_ATTR = 'template';
+ var TEMPLATE_ATTR_PREFIX = '*';
+ var CLASS_ATTR = 'class';
+ var PROPERTY_PARTS_SEPARATOR = '.';
+ var ATTRIBUTE_PREFIX = 'attr';
+ var CLASS_PREFIX = 'class';
+ var STYLE_PREFIX = 'style';
+ var TEXT_CSS_SELECTOR = selector_1.CssSelector.parse('*')[0];
+ /**
+ * Provides an array of {@link TemplateAstVisitor}s which will be used to transform
+ * parsed templates before compilation is invoked, allowing custom expression syntax
+ * and other advanced transformations.
+ *
+ * This is currently an internal-only feature and not meant for general use.
+ */
+ exports.TEMPLATE_TRANSFORMS = lang_2.CONST_EXPR(new core_1.OpaqueToken('TemplateTransforms'));
+ var TemplateParseError = (function (_super) {
+ __extends(TemplateParseError, _super);
+ function TemplateParseError(message, location) {
+ _super.call(this, location, message);
+ }
+ return TemplateParseError;
+ })(parse_util_1.ParseError);
+ exports.TemplateParseError = TemplateParseError;
+ var TemplateParser = (function () {
+ function TemplateParser(_exprParser, _schemaRegistry, _htmlParser, transforms) {
+ this._exprParser = _exprParser;
+ this._schemaRegistry = _schemaRegistry;
+ this._htmlParser = _htmlParser;
+ this.transforms = transforms;
+ }
+ TemplateParser.prototype.parse = function (template, directives, templateUrl) {
+ var parseVisitor = new TemplateParseVisitor(directives, this._exprParser, this._schemaRegistry);
+ var htmlAstWithErrors = this._htmlParser.parse(template, templateUrl);
+ var result = html_ast_1.htmlVisitAll(parseVisitor, htmlAstWithErrors.rootNodes, EMPTY_COMPONENT);
+ var errors = htmlAstWithErrors.errors.concat(parseVisitor.errors);
+ if (errors.length > 0) {
+ var errorString = errors.join('\n');
+ throw new exceptions_1.BaseException("Template parse errors:\n" + errorString);
+ }
+ if (lang_1.isPresent(this.transforms)) {
+ this.transforms.forEach(function (transform) { result = template_ast_1.templateVisitAll(transform, result); });
+ }
+ return result;
+ };
+ TemplateParser = __decorate([
+ core_1.Injectable(),
+ __param(3, core_1.Optional()),
+ __param(3, core_1.Inject(exports.TEMPLATE_TRANSFORMS)),
+ __metadata('design:paramtypes', [change_detection_1.Parser, element_schema_registry_1.ElementSchemaRegistry, html_parser_1.HtmlParser, Array])
+ ], TemplateParser);
+ return TemplateParser;
+ })();
+ exports.TemplateParser = TemplateParser;
+ var TemplateParseVisitor = (function () {
+ function TemplateParseVisitor(directives, _exprParser, _schemaRegistry) {
+ var _this = this;
+ this._exprParser = _exprParser;
+ this._schemaRegistry = _schemaRegistry;
+ this.errors = [];
+ this.directivesIndex = new Map();
+ this.ngContentCount = 0;
+ this.selectorMatcher = new selector_1.SelectorMatcher();
+ collection_1.ListWrapper.forEachWithIndex(directives, function (directive, index) {
+ var selector = selector_1.CssSelector.parse(directive.selector);
+ _this.selectorMatcher.addSelectables(selector, directive);
+ _this.directivesIndex.set(directive, index);
+ });
+ }
+ TemplateParseVisitor.prototype._reportError = function (message, sourceSpan) {
+ this.errors.push(new TemplateParseError(message, sourceSpan.start));
+ };
+ TemplateParseVisitor.prototype._parseInterpolation = function (value, sourceSpan) {
+ var sourceInfo = sourceSpan.start.toString();
+ try {
+ return this._exprParser.parseInterpolation(value, sourceInfo);
+ }
+ catch (e) {
+ this._reportError("" + e, sourceSpan);
+ return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo);
+ }
+ };
+ TemplateParseVisitor.prototype._parseAction = function (value, sourceSpan) {
+ var sourceInfo = sourceSpan.start.toString();
+ try {
+ return this._exprParser.parseAction(value, sourceInfo);
+ }
+ catch (e) {
+ this._reportError("" + e, sourceSpan);
+ return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo);
+ }
+ };
+ TemplateParseVisitor.prototype._parseBinding = function (value, sourceSpan) {
+ var sourceInfo = sourceSpan.start.toString();
+ try {
+ return this._exprParser.parseBinding(value, sourceInfo);
+ }
+ catch (e) {
+ this._reportError("" + e, sourceSpan);
+ return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo);
+ }
+ };
+ TemplateParseVisitor.prototype._parseTemplateBindings = function (value, sourceSpan) {
+ var sourceInfo = sourceSpan.start.toString();
+ try {
+ return this._exprParser.parseTemplateBindings(value, sourceInfo);
+ }
+ catch (e) {
+ this._reportError("" + e, sourceSpan);
+ return [];
+ }
+ };
+ TemplateParseVisitor.prototype.visitText = function (ast, component) {
+ var ngContentIndex = component.findNgContentIndex(TEXT_CSS_SELECTOR);
+ var expr = this._parseInterpolation(ast.value, ast.sourceSpan);
+ if (lang_1.isPresent(expr)) {
+ return new template_ast_1.BoundTextAst(expr, ngContentIndex, ast.sourceSpan);
+ }
+ else {
+ return new template_ast_1.TextAst(ast.value, ngContentIndex, ast.sourceSpan);
+ }
+ };
+ TemplateParseVisitor.prototype.visitAttr = function (ast, contex) {
+ return new template_ast_1.AttrAst(ast.name, ast.value, ast.sourceSpan);
+ };
+ TemplateParseVisitor.prototype.visitElement = function (element, component) {
+ var _this = this;
+ var nodeName = element.name;
+ var preparsedElement = template_preparser_1.preparseElement(element);
+ if (preparsedElement.type === template_preparser_1.PreparsedElementType.SCRIPT ||
+ preparsedElement.type === template_preparser_1.PreparsedElementType.STYLE) {
+ // Skipping