Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

angular-particle-effect-button

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-particle-effect-button - npm Package Compare versions

Comparing version 0.0.31 to 0.0.41

2

bundles/angular-particle-effect-button.umd.min.js

@@ -1,2 +0,2 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("animejs"),require("@angular/core")):"function"==typeof define&&define.amd?define("angular-particle-effect-button",["exports","animejs","@angular/core"],e):e(t["angular-particle-effect-button"]={},null,t.ng.core)}(this,function(t,s,i){"use strict";s=s&&s.hasOwnProperty("default")?s["default"]:s;var n=function(t){return"function"==typeof t},e="transform",r=function(t,e){if(e in t.style)return getComputedStyle(t).getPropertyValue(e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase())||"0"}(document.body,e)?e:"-webkit-"+e,a=function(t){return Math.random()*t-t/2},o=function(){return(o=Object.assign||function(t){for(var e,i=1,s=arguments.length;i<s;i++)for(var n in e=arguments[i])Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}).apply(this,arguments)},p=function(){function t(t,e,i){this.el=t,this.options=e,this.renderer=i,this.particles=[],this.frame=null,this.options=o({},e),this.init()}return t.prototype.init=function(){this.canvas=this.renderer.createElement("canvas"),this.ctx=this.canvas.getContext("2d"),this.renderer.setStyle(this.canvas,"position","absolute"),this.renderer.setStyle(this.canvas,"pointerEvents","none"),this.renderer.setStyle(this.canvas,"top","50%"),this.renderer.setStyle(this.canvas,"left","50%"),this.renderer.setStyle(this.canvas,"transform","translate3d(-50%, -50%, 0)"),this.renderer.setStyle(this.canvas,"display","none"),this.wrapper=this.renderer.createElement("div"),this.renderer.setStyle(this.wrapper,"position","relative"),this.renderer.setStyle(this.wrapper,"display","inline-block"),this.renderer.setStyle(this.wrapper,"overflow","hidden"),this.renderer.insertBefore(this.el.parentNode,this.wrapper,this.el),this.renderer.appendChild(this.wrapper,this.el),this.parentWrapper=this.renderer.createElement("div"),this.renderer.setStyle(this.parentWrapper,"position","relative"),this.renderer.setStyle(this.parentWrapper,"display","inline-block"),this.renderer.insertBefore(this.wrapper.parentNode,this.parentWrapper,this.wrapper),this.renderer.appendChild(this.parentWrapper,this.wrapper),this.renderer.appendChild(this.parentWrapper,this.canvas)},t.prototype.setOptions=function(t){this.options=o({},this.options,t)},t.prototype.loop=function(){this.updateParticles(),this.renderParticles(),this.isAnimating()&&(this.frame=requestAnimationFrame(this.loop.bind(this)))},t.prototype.updateParticles=function(){for(var t,e=0;e<this.particles.length;e++)(t=this.particles[e]).life>t.death?this.particles.splice(e,1):(t.x+=t.speed,t.y=this.o.oscillationCoefficient*Math.sin(t.counter*t.increase),t.life++,t.counter+=this.disintegrating?1:-1);this.particles.length||(this.pause(),this.renderer.setStyle(this.canvas,"display","none"),n(this.o.complete)&&this.o.complete())},t.prototype.renderParticles=function(){var t;this.ctx.clearRect(0,0,this.width,this.height);for(var e=0;e<this.particles.length;e++)(t=this.particles[e]).life<t.death&&(this.ctx.translate(t.startX,t.startY),this.ctx.rotate(t.angle*Math.PI/180),this.ctx.globalAlpha=this.disintegrating?1-t.life/t.death:t.life/t.death,this.ctx.fillStyle=this.ctx.strokeStyle=this.o.color,this.ctx.beginPath(),"circle"===this.o.type?this.ctx.arc(t.x,t.y,t.size,0,2*Math.PI):"triangle"===this.o.type?(this.ctx.moveTo(t.x,t.y),this.ctx.lineTo(t.x+t.size,t.y+t.size),this.ctx.lineTo(t.x+t.size,t.y-t.size)):"rectangle"===this.o.type&&this.ctx.rect(t.x,t.y,t.size,t.size),"fill"===this.o.style?this.ctx.fill():"stroke"===this.o.style&&(this.ctx.closePath(),this.ctx.stroke()),this.ctx.globalAlpha=1,this.ctx.rotate(-t.angle*Math.PI/180),this.ctx.translate(-t.startX,-t.startY))},t.prototype.play=function(){this.frame=requestAnimationFrame(this.loop.bind(this))},t.prototype.pause=function(){cancelAnimationFrame(this.frame),this.frame=null},t.prototype.addParticle=function(t){var e=60*this.o.duration/1e3,i=n(this.o.speed)?this.o.speed():this.o.speed;this.particles.push({startX:t.x,startY:t.y,x:this.disintegrating?0:i*-e,y:0,angle:a(360),counter:this.disintegrating?0:e,increase:2*Math.PI/100,life:0,death:this.disintegrating?e-20+40*Math.random():e,speed:i,size:n(this.o.size)?this.o.size():this.o.size})},t.prototype.addParticles=function(t,e){var i=this.disintegrating?e-this.lastProgress:this.lastProgress-e;this.lastProgress=e;var s=this.options.canvasPadding,n=this.options.canvasPadding,r=(this.isHorizontal()?t.width:t.height)*e+i*(this.disintegrating?100:220);this.isHorizontal()?s+="left"===this.o.direction?r:t.width-r:n+="top"===this.o.direction?r:t.height-r;var a=Math.floor(this.o.particlesAmountCoefficient*(100*i+1));if(0<a)for(;a--;)this.addParticle({x:s+(this.isHorizontal()?0:t.width*Math.random()),y:n+(this.isHorizontal()?t.height*Math.random():0)});this.isAnimating()||(this.renderer.setStyle(this.canvas,"display","block"),this.play())},t.prototype.addTransforms=function(t){var e=this.isHorizontal()?"translateX":"translateY",i="left"===this.o.direction||"top"===this.o.direction?t:-t;this.renderer.setStyle(this.wrapper,r,e+"("+i+"%)"),this.renderer.setStyle(this.el,r,e+"("+-i+"%)")},t.prototype.disintegrate=function(t){if(void 0===t&&(t={}),!this.isAnimating()){this.disintegrating=!0,this.lastProgress=0,this.setup(t);var i=this;this.animate(function(t){var e=t.animatables[0].target.value;i.addTransforms(e),i.o.duration&&i.addParticles(i.rect,e/100)})}},t.prototype.integrate=function(t){if(void 0===t&&(t={}),!this.isAnimating()){this.disintegrating=!1,this.lastProgress=1,this.setup(t);var i=this;this.animate(function(t){var e=t.animatables[0].target.value;setTimeout(function(){i.addTransforms(e)},i.o.duration),i.o.duration&&i.addParticles(i.rect,e/100)})}},t.prototype.setup=function(t){this.o=o({},this.options,t),this.renderer.setStyle(this.wrapper,"visibility","visible"),this.o.duration&&(this.rect=this.el.getBoundingClientRect(),this.width=this.canvas.width=this.o.width||this.rect.width+2*this.o.canvasPadding,this.height=this.canvas.height=this.o.height||this.rect.height+2*this.o.canvasPadding)},t.prototype.isDisintegrated=function(){return this.disintegrating},t.prototype.animate=function(t){var e=this,i=this;s({targets:{value:i.disintegrating?0:100},value:i.disintegrating?100:0,duration:i.o.duration,easing:i.o.easing,begin:i.o.begin,update:t,complete:function(){i.disintegrating&&e.renderer.setStyle(i.wrapper,"visibility","hidden")}})},t.prototype.isAnimating=function(){return!!this.frame},t.prototype.isHorizontal=function(){return"left"===this.o.direction||"right"===this.o.direction},t}(),h=function(){function t(t,e){this.renderer=t,this.el=e,this._pHidden=!1,this.pColor="#000",this.pDuration=1e3,this.pEasing="easeInOutCubic",this.pType="circle",this.pStyle="fill",this.pDirection="left",this.pCanvasPadding=150,this.pOscillationCoefficient=30,this.pParticlesAmountCoefficient=3,this.pBegin=new i.EventEmitter,this.pComplete=new i.EventEmitter,this.pSize=function(){return Math.floor(3*Math.random()+1)},this.pSpeed=function(){return a(4)}}return Object.defineProperty(t.prototype,"pHidden",{get:function(){return this._pHidden},set:function(t){this._pHidden=t,this._particles&&(t&&!this._particles.isDisintegrated()?this._particles.disintegrate(this.getFormattedOptions()):!t&&this._particles.isDisintegrated()&&this._particles.integrate(this.getFormattedOptions()))},enumerable:!0,configurable:!0}),t.prototype.ngAfterContentInit=function(){this._particles=new p(this.el.nativeElement,this.getFormattedOptions(),this.renderer)},t.prototype.getFormattedOptions=function(){var t=this;return{color:this.pColor,type:this.pType,style:this.pStyle,canvasPadding:this.pCanvasPadding,duration:this.pDuration,easing:this.pEasing,direction:this.pDirection,size:this.pSize,speed:this.pSpeed,particlesAmountCoefficient:this.pParticlesAmountCoefficient,oscillationCoefficient:this.pOscillationCoefficient,begin:function(){t.pBegin.emit()},complete:function(){t.pComplete.emit()}}},Object.defineProperty(t.prototype,"pOptions",{get:function(){return{pColor:this.pColor,pType:this.pType,pStyle:this.pStyle,pCanvasPadding:this.pCanvasPadding,pDuration:this.pDuration,pEasing:this.pEasing,pDirection:this.pDirection,pSize:this.pSize,pSpeed:this.pSpeed,pParticlesAmountCoefficient:this.pParticlesAmountCoefficient,pOscillationCoefficient:this.pOscillationCoefficient,pBegin:this.pBegin,pComplete:this.pComplete}},set:function(e){var i=this,s=this.pOptions;Object.keys(e).map(function(t){s[t]&&(i[t]=e[t])})},enumerable:!0,configurable:!0}),t.decorators=[{type:i.Directive,args:[{selector:"[libParticleEffectButton]"}]}],t.ctorParameters=function(){return[{type:i.Renderer2},{type:i.ElementRef}]},t.propDecorators={pColor:[{type:i.Input}],pDuration:[{type:i.Input}],pEasing:[{type:i.Input}],pType:[{type:i.Input}],pStyle:[{type:i.Input}],pDirection:[{type:i.Input}],pCanvasPadding:[{type:i.Input}],pOscillationCoefficient:[{type:i.Input}],pParticlesAmountCoefficient:[{type:i.Input}],pBegin:[{type:i.Output}],pComplete:[{type:i.Output}],pSize:[{type:i.Input}],pSpeed:[{type:i.Input}],pHidden:[{type:i.Input,args:["pHidden"]}]},t}(),l=function(){function t(){}return t.decorators=[{type:i.NgModule,args:[{declarations:[h],exports:[h]}]}],t}();t.ParticleEffectButtonDirective=h,t.ParticleEffectButtonModule=l,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("animejs"),require("@angular/core")):"function"==typeof define&&define.amd?define("angular-particle-effect-button",["exports","animejs","@angular/core"],e):e(t["angular-particle-effect-button"]={},t.anime,t.ng.core)}(this,function(t,s,i){"use strict";s=s&&s.hasOwnProperty("default")?s["default"]:s;var n=function(t){return"function"==typeof t},e="transform",r=function(t,e){if(e in t.style)return getComputedStyle(t).getPropertyValue(function(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}(e))||"0"}(document.body,e)?e:"-webkit-"+e,a=function(t){return Math.random()*t-t/2},o=function(){return(o=Object.assign||function(t){for(var e,i=1,s=arguments.length;i<s;i++)for(var n in e=arguments[i])Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}).apply(this,arguments)},p=function(){function t(t,e,i){this.el=t,this.options=e,this.renderer=i,this.particles=[],this.frame=null,this.options=o({},e),this.init()}return t.prototype.init=function(){this.canvas=this.renderer.createElement("canvas"),this.ctx=this.canvas.getContext("2d"),this.renderer.setStyle(this.canvas,"position","absolute"),this.renderer.setStyle(this.canvas,"pointerEvents","none"),this.renderer.setStyle(this.canvas,"top","50%"),this.renderer.setStyle(this.canvas,"left","50%"),this.renderer.setStyle(this.canvas,"transform","translate3d(-50%, -50%, 0)"),this.renderer.setStyle(this.canvas,"display","none"),this.wrapper=this.renderer.createElement("div"),this.renderer.setStyle(this.wrapper,"position","relative"),this.renderer.setStyle(this.wrapper,"display","inline-block"),this.renderer.setStyle(this.wrapper,"overflow","hidden"),this.renderer.insertBefore(this.el.parentNode,this.wrapper,this.el),this.renderer.appendChild(this.wrapper,this.el),this.parentWrapper=this.renderer.createElement("div"),this.renderer.setStyle(this.parentWrapper,"position","relative"),this.renderer.setStyle(this.parentWrapper,"display","inline-block"),this.renderer.insertBefore(this.wrapper.parentNode,this.parentWrapper,this.wrapper),this.renderer.appendChild(this.parentWrapper,this.wrapper),this.renderer.appendChild(this.parentWrapper,this.canvas)},t.prototype.setOptions=function(t){this.options=o({},this.options,t)},t.prototype.loop=function(){this.updateParticles(),this.renderParticles(),this.isAnimating()&&(this.frame=requestAnimationFrame(this.loop.bind(this)))},t.prototype.updateParticles=function(){for(var t,e=0;e<this.particles.length;e++)(t=this.particles[e]).life>t.death?this.particles.splice(e,1):(t.x+=t.speed,t.y=this.o.oscillationCoefficient*Math.sin(t.counter*t.increase),t.life++,t.counter+=this.disintegrating?1:-1);this.particles.length||(this.pause(),this.renderer.setStyle(this.canvas,"display","none"),n(this.o.complete)&&this.o.complete())},t.prototype.renderParticles=function(){var t;this.ctx.clearRect(0,0,this.width,this.height);for(var e=0;e<this.particles.length;e++)(t=this.particles[e]).life<t.death&&(this.ctx.translate(t.startX,t.startY),this.ctx.rotate(t.angle*Math.PI/180),this.ctx.globalAlpha=this.disintegrating?1-t.life/t.death:t.life/t.death,this.ctx.fillStyle=this.ctx.strokeStyle=this.o.color,this.ctx.beginPath(),"circle"===this.o.type?this.ctx.arc(t.x,t.y,t.size,0,2*Math.PI):"triangle"===this.o.type?(this.ctx.moveTo(t.x,t.y),this.ctx.lineTo(t.x+t.size,t.y+t.size),this.ctx.lineTo(t.x+t.size,t.y-t.size)):"rectangle"===this.o.type&&this.ctx.rect(t.x,t.y,t.size,t.size),"fill"===this.o.style?this.ctx.fill():"stroke"===this.o.style&&(this.ctx.closePath(),this.ctx.stroke()),this.ctx.globalAlpha=1,this.ctx.rotate(-t.angle*Math.PI/180),this.ctx.translate(-t.startX,-t.startY))},t.prototype.play=function(){this.frame=requestAnimationFrame(this.loop.bind(this))},t.prototype.pause=function(){cancelAnimationFrame(this.frame),this.frame=null},t.prototype.addParticle=function(t){var e=60*this.o.duration/1e3,i=n(this.o.speed)?this.o.speed():this.o.speed;this.particles.push({startX:t.x,startY:t.y,x:this.disintegrating?0:i*-e,y:0,angle:a(360),counter:this.disintegrating?0:e,increase:2*Math.PI/100,life:0,death:this.disintegrating?e-20+40*Math.random():e,speed:i,size:n(this.o.size)?this.o.size():this.o.size})},t.prototype.addParticles=function(t,e){var i=this.disintegrating?e-this.lastProgress:this.lastProgress-e;this.lastProgress=e;var s=this.options.canvasPadding,n=this.options.canvasPadding,r=(this.isHorizontal()?t.width:t.height)*e+i*(this.disintegrating?100:220);this.isHorizontal()?s+="left"===this.o.direction?r:t.width-r:n+="top"===this.o.direction?r:t.height-r;var a=Math.floor(this.o.particlesAmountCoefficient*(100*i+1));if(0<a)for(;a--;)this.addParticle({x:s+(this.isHorizontal()?0:t.width*Math.random()),y:n+(this.isHorizontal()?t.height*Math.random():0)});this.isAnimating()||(this.renderer.setStyle(this.canvas,"display","block"),this.play())},t.prototype.addTransforms=function(t){var e=this.isHorizontal()?"translateX":"translateY",i="left"===this.o.direction||"top"===this.o.direction?t:-t;this.renderer.setStyle(this.wrapper,r,e+"("+i+"%)"),this.renderer.setStyle(this.el,r,e+"("+-i+"%)")},t.prototype.disintegrate=function(t){if(void 0===t&&(t={}),!this.isAnimating()){this.disintegrating=!0,this.lastProgress=0,this.setup(t);var i=this;this.animate(function(t){var e=t.animatables[0].target.value;i.addTransforms(e),i.o.duration&&i.addParticles(i.rect,e/100)})}},t.prototype.integrate=function(t){if(void 0===t&&(t={}),!this.isAnimating()){this.disintegrating=!1,this.lastProgress=1,this.setup(t);var i=this;this.animate(function(t){var e=t.animatables[0].target.value;setTimeout(function(){i.addTransforms(e)},i.o.duration),i.o.duration&&i.addParticles(i.rect,e/100)})}},t.prototype.setup=function(t){this.o=o({},this.options,t),this.renderer.setStyle(this.wrapper,"visibility","visible"),this.o.duration&&(this.rect=this.el.getBoundingClientRect(),this.width=this.canvas.width=this.o.width||this.rect.width+2*this.o.canvasPadding,this.height=this.canvas.height=this.o.height||this.rect.height+2*this.o.canvasPadding)},t.prototype.isDisintegrated=function(){return this.disintegrating},t.prototype.animate=function(t){var e=this,i=this;s({targets:{value:i.disintegrating?0:100},value:i.disintegrating?100:0,duration:i.o.duration,easing:i.o.easing,begin:i.o.begin,update:t,complete:function(){i.disintegrating&&e.renderer.setStyle(i.wrapper,"visibility","hidden")}})},t.prototype.isAnimating=function(){return!!this.frame},t.prototype.isHorizontal=function(){return"left"===this.o.direction||"right"===this.o.direction},t}(),h=function(){function t(t,e){this.renderer=t,this.el=e,this._pHidden=!1,this.pColor="#000",this.pDuration=1e3,this.pEasing="easeInOutCubic",this.pType="circle",this.pStyle="fill",this.pDirection="left",this.pCanvasPadding=150,this.pOscillationCoefficient=30,this.pParticlesAmountCoefficient=3,this.pBegin=new i.EventEmitter,this.pComplete=new i.EventEmitter,this.pSize=function(){return Math.floor(3*Math.random()+1)},this.pSpeed=function(){return a(4)}}return Object.defineProperty(t.prototype,"pHidden",{get:function(){return this._pHidden},set:function(t){this._pHidden=t,this._particles&&(t&&!this._particles.isDisintegrated()?this._particles.disintegrate(this.getFormattedOptions()):!t&&this._particles.isDisintegrated()&&this._particles.integrate(this.getFormattedOptions()))},enumerable:!0,configurable:!0}),t.prototype.ngAfterContentInit=function(){this._particles=new p(this.el.nativeElement,this.getFormattedOptions(),this.renderer),this._pHidden&&this._particles.disintegrate({duration:0})},t.prototype.getFormattedOptions=function(){var t=this;return{color:this.pColor,type:this.pType,style:this.pStyle,canvasPadding:this.pCanvasPadding,duration:this.pDuration,easing:this.pEasing,direction:this.pDirection,size:this.pSize,speed:this.pSpeed,particlesAmountCoefficient:this.pParticlesAmountCoefficient,oscillationCoefficient:this.pOscillationCoefficient,begin:function(){t.pBegin.emit()},complete:function(){t.pComplete.emit()}}},Object.defineProperty(t.prototype,"pOptions",{get:function(){return{pColor:this.pColor,pType:this.pType,pStyle:this.pStyle,pCanvasPadding:this.pCanvasPadding,pDuration:this.pDuration,pEasing:this.pEasing,pDirection:this.pDirection,pSize:this.pSize,pSpeed:this.pSpeed,pParticlesAmountCoefficient:this.pParticlesAmountCoefficient,pOscillationCoefficient:this.pOscillationCoefficient,pBegin:this.pBegin,pComplete:this.pComplete}},set:function(e){var i=this,s=this.pOptions;Object.keys(e).map(function(t){s[t]&&(i[t]=e[t])})},enumerable:!0,configurable:!0}),t.decorators=[{type:i.Directive,args:[{selector:"[libParticleEffectButton]"}]}],t.ctorParameters=function(){return[{type:i.Renderer2},{type:i.ElementRef}]},t.propDecorators={pColor:[{type:i.Input}],pDuration:[{type:i.Input}],pEasing:[{type:i.Input}],pType:[{type:i.Input}],pStyle:[{type:i.Input}],pDirection:[{type:i.Input}],pCanvasPadding:[{type:i.Input}],pOscillationCoefficient:[{type:i.Input}],pParticlesAmountCoefficient:[{type:i.Input}],pBegin:[{type:i.Output}],pComplete:[{type:i.Output}],pSize:[{type:i.Input}],pSpeed:[{type:i.Input}],pHidden:[{type:i.Input,args:["pHidden"]}]},t}(),l=function(){function t(){}return t.decorators=[{type:i.NgModule,args:[{declarations:[h],exports:[h]}]}],t}();t.ParticleEffectButtonDirective=h,t.ParticleEffectButtonModule=l,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=angular-particle-effect-button.umd.min.js.map
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -9,3 +9,2 @@ /**

export { ParticleEffectButtonDirective, ParticleEffectButtonModule } from './public_api';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLyIsInNvdXJjZXMiOlsiYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSwwRUFBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -57,4 +57,8 @@ import { ElementRef, Input, Directive, EventEmitter, Output, Renderer2 } from '@angular/core';

this._particles = new Particles(this.el.nativeElement, this.getFormattedOptions(), this.renderer);
if (this._pHidden) {
this._particles.disintegrate({ duration: 0 });
}
}
/**
* @private
* @return {?}

@@ -108,3 +112,4 @@ */

set pOptions(options) {
const /** @type {?} */ allowedProps = this.pOptions;
/** @type {?} */
const allowedProps = this.pOptions;
Object.keys(options).map(key => {

@@ -120,3 +125,3 @@ if (allowedProps[key]) {

selector: '[libParticleEffectButton]'
},] },
},] }
];

@@ -144,6 +149,12 @@ /** @nocollapse */

};
function ParticleEffectButtonDirective_tsickle_Closure_declarations() {
/** @type {?} */
if (false) {
/**
* @type {?}
* @private
*/
ParticleEffectButtonDirective.prototype._particles;
/** @type {?} */
/**
* @type {?}
* @private
*/
ParticleEffectButtonDirective.prototype._pHidden;

@@ -176,8 +187,13 @@ /** @type {?} */

ParticleEffectButtonDirective.prototype.pSpeed;
/** @type {?} */
/**
* @type {?}
* @private
*/
ParticleEffectButtonDirective.prototype.renderer;
/** @type {?} */
/**
* @type {?}
* @private
*/
ParticleEffectButtonDirective.prototype.el;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcGFydGljbGUtZWZmZWN0LWJ1dHRvbi8iLCJzb3VyY2VzIjpbImxpYi9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLEtBQUssRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixTQUFTLEVBSVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFXLE1BQU0sYUFBYSxDQUFDO0FBS2pELE1BQU07Ozs7O0lBZ0NKLFlBQW9CLFFBQW1CLEVBQVUsRUFBYztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTt3QkE5QjVDLEtBQUs7c0JBQ04sTUFBTTt5QkFDSCxJQUFJO3VCQUNOLGdCQUFnQjtxQkFDbEIsUUFBUTtzQkFDUCxNQUFNOzBCQUNGLE1BQU07OEJBQ0YsR0FBRzt1Q0FDTSxFQUFFOzJDQUNFLENBQUM7c0JBQ3JCLElBQUksWUFBWSxFQUFRO3lCQUNyQixJQUFJLFlBQVksRUFBUTtxQkFDTixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztzQkFDeEMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQWlCYTs7Ozs7SUFmbkUsSUFDSSxPQUFPLENBQUMsS0FBYztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNwQixF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Z0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjthQUN0Qzs7OztZQVZDLFNBQVM7WUFMVCxVQUFVOzs7cUJBbUJULEtBQUs7d0JBQ0wsS0FBSztzQkFDTCxLQUFLO29CQUNMLEtBQUs7cUJBQ0wsS0FBSzt5QkFDTCxLQUFLOzZCQUNMLEtBQUs7c0NBQ0wsS0FBSzswQ0FDTCxLQUFLO3FCQUNMLE1BQU07d0JBQ04sTUFBTTtvQkFDTixLQUFLO3FCQUNMLEtBQUs7c0JBRUwsS0FBSyxTQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBBZnRlckNvbnRlbnRJbml0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJhbmQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFBhcnRpY2xlcywgSU9wdGlvbiB9IGZyb20gJy4vcGFydGljbGVzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2xpYlBhcnRpY2xlRWZmZWN0QnV0dG9uXSdcbn0pXG5leHBvcnQgY2xhc3MgUGFydGljbGVFZmZlY3RCdXR0b25EaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgcHJpdmF0ZSBfcGFydGljbGVzOiBQYXJ0aWNsZXM7XG4gIHByaXZhdGUgX3BIaWRkZW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcENvbG9yID0gJyMwMDAnO1xuICBASW5wdXQoKSBwRHVyYXRpb24gPSAxMDAwO1xuICBASW5wdXQoKSBwRWFzaW5nID0gJ2Vhc2VJbk91dEN1YmljJztcbiAgQElucHV0KCkgcFR5cGUgPSAnY2lyY2xlJztcbiAgQElucHV0KCkgcFN0eWxlID0gJ2ZpbGwnO1xuICBASW5wdXQoKSBwRGlyZWN0aW9uID0gJ2xlZnQnO1xuICBASW5wdXQoKSBwQ2FudmFzUGFkZGluZyA9IDE1MDtcbiAgQElucHV0KCkgcE9zY2lsbGF0aW9uQ29lZmZpY2llbnQgPSAzMDtcbiAgQElucHV0KCkgcFBhcnRpY2xlc0Ftb3VudENvZWZmaWNpZW50ID0gMztcbiAgQE91dHB1dCgpIHBCZWdpbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHBDb21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQElucHV0KCkgcFNpemU6ICgpID0+IG51bWJlciB8IG51bWJlciA9ICgpID0+IE1hdGguZmxvb3IoKE1hdGgucmFuZG9tKCkgKiAzKSArIDEpO1xuICBASW5wdXQoKSBwU3BlZWQ6ICgpID0+IG51bWJlciB8IG51bWJlciA9ICgpID0+IHJhbmQoNCk7XG5cbiAgQElucHV0KCdwSGlkZGVuJylcbiAgc2V0IHBIaWRkZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9wSGlkZGVuID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuX3BhcnRpY2xlcykge1xuICAgICAgaWYgKHZhbHVlICYmICF0aGlzLl9wYXJ0aWNsZXMuaXNEaXNpbnRlZ3JhdGVkKCkpIHtcbiAgICAgICAgIHRoaXMuX3BhcnRpY2xlcy5kaXNpbnRlZ3JhdGUodGhpcy5nZXRGb3JtYXR0ZWRPcHRpb25zKCkpO1xuICAgICAgfSBlbHNlIGlmICghdmFsdWUgJiYgdGhpcy5fcGFydGljbGVzLmlzRGlzaW50ZWdyYXRlZCgpKSB7XG4gICAgICAgICB0aGlzLl9wYXJ0aWNsZXMuaW50ZWdyYXRlKHRoaXMuZ2V0Rm9ybWF0dGVkT3B0aW9ucygpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZ2V0IHBIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3BIaWRkZW47XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuX3BhcnRpY2xlcyA9IG5ldyBQYXJ0aWNsZXMoXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB0aGlzLmdldEZvcm1hdHRlZE9wdGlvbnMoKSxcbiAgICAgIHRoaXMucmVuZGVyZXJcbiAgICApO1xuICB9XG4gIHByaXZhdGUgZ2V0Rm9ybWF0dGVkT3B0aW9ucygpOiBJT3B0aW9uIHtcbiAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3I6IHRoaXMucENvbG9yLFxuICAgICAgICB0eXBlOiB0aGlzLnBUeXBlLFxuICAgICAgICBzdHlsZTogdGhpcy5wU3R5bGUsXG4gICAgICAgIGNhbnZhc1BhZGRpbmc6IHRoaXMucENhbnZhc1BhZGRpbmcsXG4gICAgICAgIGR1cmF0aW9uOiB0aGlzLnBEdXJhdGlvbixcbiAgICAgICAgZWFzaW5nOiB0aGlzLnBFYXNpbmcsXG4gICAgICAgIGRpcmVjdGlvbjogdGhpcy5wRGlyZWN0aW9uLFxuICAgICAgICBzaXplOiB0aGlzLnBTaXplLFxuICAgICAgICBzcGVlZDogdGhpcy5wU3BlZWQsXG4gICAgICAgIHBhcnRpY2xlc0Ftb3VudENvZWZmaWNpZW50OiB0aGlzLnBQYXJ0aWNsZXNBbW91bnRDb2VmZmljaWVudCxcbiAgICAgICAgb3NjaWxsYXRpb25Db2VmZmljaWVudDogdGhpcy5wT3NjaWxsYXRpb25Db2VmZmljaWVudCxcbiAgICAgICAgYmVnaW46ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnBCZWdpbi5lbWl0KCk7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5wQ29tcGxldGUuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgfVxuICBwdWJsaWMgZ2V0IHBPcHRpb25zKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcENvbG9yOiB0aGlzLnBDb2xvcixcbiAgICAgICAgcFR5cGU6IHRoaXMucFR5cGUsXG4gICAgICAgIHBTdHlsZTogdGhpcy5wU3R5bGUsXG4gICAgICAgIHBDYW52YXNQYWRkaW5nOiB0aGlzLnBDYW52YXNQYWRkaW5nLFxuICAgICAgICBwRHVyYXRpb246IHRoaXMucER1cmF0aW9uLFxuICAgICAgICBwRWFzaW5nOiB0aGlzLnBFYXNpbmcsXG4gICAgICAgIHBEaXJlY3Rpb246IHRoaXMucERpcmVjdGlvbixcbiAgICAgICAgcFNpemU6IHRoaXMucFNpemUsXG4gICAgICAgIHBTcGVlZDogdGhpcy5wU3BlZWQsXG4gICAgICAgIHBQYXJ0aWNsZXNBbW91bnRDb2VmZmljaWVudDogdGhpcy5wUGFydGljbGVzQW1vdW50Q29lZmZpY2llbnQsXG4gICAgICAgIHBPc2NpbGxhdGlvbkNvZWZmaWNpZW50OiB0aGlzLnBPc2NpbGxhdGlvbkNvZWZmaWNpZW50LFxuICAgICAgICBwQmVnaW46IHRoaXMucEJlZ2luLFxuICAgICAgICBwQ29tcGxldGU6IHRoaXMucENvbXBsZXRlXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgc2V0IHBPcHRpb25zKG9wdGlvbnM6IGFueSkge1xuICAgIGNvbnN0IGFsbG93ZWRQcm9wcyA9IHRoaXMucE9wdGlvbnM7XG4gICAgT2JqZWN0LmtleXMob3B0aW9ucykubWFwKCBrZXkgPT4ge1xuICAgICAgaWYgKGFsbG93ZWRQcm9wc1trZXldKSB7XG4gICAgICAgIHRoaXNba2V5XSA9IG9wdGlvbnNba2V5XTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcGFydGljbGUtZWZmZWN0LWJ1dHRvbi8iLCJzb3VyY2VzIjpbImxpYi9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLEtBQUssRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixTQUFTLEVBSVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFXLE1BQU0sYUFBYSxDQUFDO0FBS2pELE1BQU0sT0FBTyw2QkFBNkI7Ozs7O0lBZ0N4QyxZQUFvQixRQUFtQixFQUFVLEVBQWM7UUFBM0MsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLE9BQUUsR0FBRixFQUFFLENBQVk7UUE5QnZELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDaEIsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxnQkFBZ0IsQ0FBQztRQUMzQixVQUFLLEdBQUcsUUFBUSxDQUFDO1FBQ2pCLFdBQU0sR0FBRyxNQUFNLENBQUM7UUFDaEIsZUFBVSxHQUFHLE1BQU0sQ0FBQztRQUNwQixtQkFBYyxHQUFHLEdBQUcsQ0FBQztRQUNyQiw0QkFBdUIsR0FBRyxFQUFFLENBQUM7UUFDN0IsZ0NBQTJCLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2xDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3RDLFVBQUssR0FBMEIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVB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LENBQUM7SUFDSixDQUFDOzs7OztJQUNELElBQVcsUUFBUSxDQUFDLE9BQVk7O2NBQ3hCLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUTtRQUNsQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBRSxHQUFHLENBQUMsRUFBRTtZQUM5QixJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMxQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBN0ZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2FBQ3RDOzs7O1lBVkMsU0FBUztZQUxULFVBQVU7OztxQkFtQlQsS0FBSzt3QkFDTCxLQUFLO3NCQUNMLEtBQUs7b0JBQ0wsS0FBSztxQkFDTCxLQUFLO3lCQUNMLEtBQUs7NkJBQ0wsS0FBSztzQ0FDTCxLQUFLOzBDQUNMLEtBQUs7cUJBQ0wsTUFBTTt3QkFDTixNQUFNO29CQUNOLEtBQUs7cUJBQ0wsS0FBSztzQkFFTCxLQUFLLFNBQUMsU0FBUzs7Ozs7OztJQWhCaEIsbURBQThCOzs7OztJQUM5QixpREFBeUI7O0lBQ3pCLCtDQUF5Qjs7SUFDekIsa0RBQTBCOztJQUMxQixnREFBb0M7O0lBQ3BDLDhDQUEwQjs7SUFDMUIsK0NBQXlCOztJQUN6QixtREFBNkI7O0lBQzdCLHVEQUE4Qjs7SUFDOUIsZ0VBQXNDOztJQUN0QyxvRUFBeUM7O0lBQ3pDLCtDQUE0Qzs7SUFDNUMsa0RBQStDOztJQUMvQyw4Q0FBa0Y7O0lBQ2xGLCtDQUF1RDs7Ozs7SUFpQjNDLGlEQUEyQjs7Ozs7SUFBRSwyQ0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBBZnRlckNvbnRlbnRJbml0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJhbmQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFBhcnRpY2xlcywgSU9wdGlvbiB9IGZyb20gJy4vcGFydGljbGVzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2xpYlBhcnRpY2xlRWZmZWN0QnV0dG9uXSdcbn0pXG5leHBvcnQgY2xhc3MgUGFydGljbGVFZmZlY3RCdXR0b25EaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgcHJpdmF0ZSBfcGFydGljbGVzOiBQYXJ0aWNsZXM7XG4gIHByaXZhdGUgX3BIaWRkZW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcENvbG9yID0gJyMwMDAnO1xuICBASW5wdXQoKSBwRHVyYXRpb24gPSAxMDAwO1xuICBASW5wdXQoKSBwRWFzaW5nID0gJ2Vhc2VJbk91dEN1YmljJztcbiAgQElucHV0KCkgcFR5cGUgPSAnY2lyY2xlJztcbiAgQElucHV0KCkgcFN0eWxlID0gJ2ZpbGwnO1xuICBASW5wdXQoKSBwRGlyZWN0aW9uID0gJ2xlZnQnO1xuICBASW5wdXQoKSBwQ2FudmFzUGFkZGluZyA9IDE1MDtcbiAgQElucHV0KCkgcE9zY2lsbGF0aW9uQ29lZmZpY2llbnQgPSAzMDtcbiAgQElucHV0KCkgcFBhcnRpY2xlc0Ftb3VudENvZWZmaWNpZW50ID0gMztcbiAgQE91dHB1dCgpIHBCZWdpbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHBDb21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQElucHV0KCkgcFNpemU6ICgpID0+IG51bWJlciB8IG51bWJlciA9ICgpID0+IE1hdGguZmxvb3IoKE1hdGgucmFuZG9tKCkgKiAzKSArIDEpO1xuICBASW5wdXQoKSBwU3BlZWQ6ICgpID0+IG51bWJlciB8IG51bWJlciA9ICgpID0+IHJhbmQoNCk7XG5cbiAgQElucHV0KCdwSGlkZGVuJylcbiAgc2V0IHBIaWRkZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9wSGlkZGVuID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuX3BhcnRpY2xlcykge1xuICAgICAgaWYgKHZhbHVlICYmICF0aGlzLl9wYXJ0aWNsZXMuaXNEaXNpbnRlZ3JhdGVkKCkpIHtcbiAgICAgICAgIHRoaXMuX3BhcnRpY2xlcy5kaXNpbnRlZ3JhdGUodGhpcy5nZXRGb3JtYXR0ZWRPcHRpb25zKCkpO1xuICAgICAgfSBlbHNlIGlmICghdmFsdWUgJiYgdGhpcy5fcGFydGljbGVzLmlzRGlzaW50ZWdyYXRlZCgpKSB7XG4gICAgICAgICB0aGlzLl9wYXJ0aWNsZXMuaW50ZWdyYXRlKHRoaXMuZ2V0Rm9ybWF0dGVkT3B0aW9ucygpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZ2V0IHBIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3BIaWRkZW47XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuX3BhcnRpY2xlcyA9IG5ldyBQYXJ0aWNsZXMoXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB0aGlzLmdldEZvcm1hdHRlZE9wdGlvbnMoKSxcbiAgICAgIHRoaXMucmVuZGVyZXJcbiAgICApO1xuXG4gICAgICBpZiAodGhpcy5fcEhpZGRlbikge1xuICAgICAgICAgIHRoaXMuX3BhcnRpY2xlcy5kaXNpbnRlZ3JhdGUoe2R1cmF0aW9uOiAwfSk7XG4gICAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXRGb3JtYXR0ZWRPcHRpb25zKCk6IElPcHRpb24ge1xuICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcjogdGhpcy5wQ29sb3IsXG4gICAgICAgIHR5cGU6IHRoaXMucFR5cGUsXG4gICAgICAgIHN0eWxlOiB0aGlzLnBTdHlsZSxcbiAgICAgICAgY2FudmFzUGFkZGluZzogdGhpcy5wQ2FudmFzUGFkZGluZyxcbiAgICAgICAgZHVyYXRpb246IHRoaXMucER1cmF0aW9uLFxuICAgICAgICBlYXNpbmc6IHRoaXMucEVhc2luZyxcbiAgICAgICAgZGlyZWN0aW9uOiB0aGlzLnBEaXJlY3Rpb24sXG4gICAgICAgIHNpemU6IHRoaXMucFNpemUsXG4gICAgICAgIHNwZWVkOiB0aGlzLnBTcGVlZCxcbiAgICAgICAgcGFydGljbGVzQW1vdW50Q29lZmZpY2llbnQ6IHRoaXMucFBhcnRpY2xlc0Ftb3VudENvZWZmaWNpZW50LFxuICAgICAgICBvc2NpbGxhdGlvbkNvZWZmaWNpZW50OiB0aGlzLnBPc2NpbGxhdGlvbkNvZWZmaWNpZW50LFxuICAgICAgICBiZWdpbjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMucEJlZ2luLmVtaXQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnBDb21wbGV0ZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9O1xuICB9XG4gIHB1YmxpYyBnZXQgcE9wdGlvbnMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwQ29sb3I6IHRoaXMucENvbG9yLFxuICAgICAgICBwVHlwZTogdGhpcy5wVHlwZSxcbiAgICAgICAgcFN0eWxlOiB0aGlzLnBTdHlsZSxcbiAgICAgICAgcENhbnZhc1BhZGRpbmc6IHRoaXMucENhbnZhc1BhZGRpbmcsXG4gICAgICAgIHBEdXJhdGlvbjogdGhpcy5wRHVyYXRpb24sXG4gICAgICAgIHBFYXNpbmc6IHRoaXMucEVhc2luZyxcbiAgICAgICAgcERpcmVjdGlvbjogdGhpcy5wRGlyZWN0aW9uLFxuICAgICAgICBwU2l6ZTogdGhpcy5wU2l6ZSxcbiAgICAgICAgcFNwZWVkOiB0aGlzLnBTcGVlZCxcbiAgICAgICAgcFBhcnRpY2xlc0Ftb3VudENvZWZmaWNpZW50OiB0aGlzLnBQYXJ0aWNsZXNBbW91bnRDb2VmZmljaWVudCxcbiAgICAgICAgcE9zY2lsbGF0aW9uQ29lZmZpY2llbnQ6IHRoaXMucE9zY2lsbGF0aW9uQ29lZmZpY2llbnQsXG4gICAgICAgIHBCZWdpbjogdGhpcy5wQmVnaW4sXG4gICAgICAgIHBDb21wbGV0ZTogdGhpcy5wQ29tcGxldGVcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBzZXQgcE9wdGlvbnMob3B0aW9uczogYW55KSB7XG4gICAgY29uc3QgYWxsb3dlZFByb3BzID0gdGhpcy5wT3B0aW9ucztcbiAgICBPYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIGtleSA9PiB7XG4gICAgICBpZiAoYWxsb3dlZFByb3BzW2tleV0pIHtcbiAgICAgICAgdGhpc1trZXldID0gb3B0aW9uc1trZXldO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -13,5 +13,4 @@ import { NgModule } from '@angular/core';

exports: [ParticleEffectButtonDirective]
},] },
},] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcGFydGljbGUtZWZmZWN0LWJ1dHRvbi8iLCJzb3VyY2VzIjpbImxpYi9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBTTNGLE1BQU07OztZQUpMLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztnQkFDN0MsT0FBTyxFQUFFLENBQUMsNkJBQTZCLENBQUM7YUFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFydGljbGVFZmZlY3RCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuL2FuZ3VsYXItcGFydGljbGUtZWZmZWN0LWJ1dHRvbi5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtQYXJ0aWNsZUVmZmVjdEJ1dHRvbkRpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtQYXJ0aWNsZUVmZmVjdEJ1dHRvbkRpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgUGFydGljbGVFZmZlY3RCdXR0b25Nb2R1bGUgeyB9XG5cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcGFydGljbGUtZWZmZWN0LWJ1dHRvbi8iLCJzb3VyY2VzIjpbImxpYi9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBTTNGLE1BQU0sT0FBTywwQkFBMEI7OztZQUp0QyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsNkJBQTZCLENBQUM7Z0JBQzdDLE9BQU8sRUFBRSxDQUFDLDZCQUE2QixDQUFDO2FBQ3pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhcnRpY2xlRWZmZWN0QnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24uZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUGFydGljbGVFZmZlY3RCdXR0b25EaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbUGFydGljbGVFZmZlY3RCdXR0b25EaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIFBhcnRpY2xlRWZmZWN0QnV0dG9uTW9kdWxlIHsgfVxuXG4iXX0=
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import anime from 'animejs';
import anime from 'animejs'; // tslint:disable-line
import { rand, is, transformString } from './utils';

@@ -11,3 +11,3 @@ /**

export function IOption() { }
function IOption_tsickle_Closure_declarations() {
if (false) {
/** @type {?|undefined} */

@@ -105,4 +105,5 @@ IOption.prototype.color;

updateParticles() {
let /** @type {?} */ p;
for (let /** @type {?} */ i = 0; i < this.particles.length; i++) {
/** @type {?} */
let p;
for (let i = 0; i < this.particles.length; i++) {
p = this.particles[i];

@@ -132,4 +133,5 @@ if (p.life > p.death) {

this.ctx.clearRect(0, 0, this.width, this.height);
let /** @type {?} */ p;
for (let /** @type {?} */ i = 0; i < this.particles.length; i++) {
/** @type {?} */
let p;
for (let i = 0; i < this.particles.length; i++) {
p = this.particles[i];

@@ -186,6 +188,8 @@ if (p.life < p.death) {

addParticle(options) {
const /** @type {?} */ frames = this.o.duration * 60 / 1000;
const /** @type {?} */ speed = /** @type {?} */ ((is.fnc(this.o.speed)
/** @type {?} */
const frames = this.o.duration * 60 / 1000;
/** @type {?} */
const speed = (/** @type {?} */ ((is.fnc(this.o.speed)
? this.o.speed()
: this.o.speed));
: this.o.speed)));
this.particles.push({

@@ -211,9 +215,13 @@ startX: options.x,

addParticles(rect, progress) {
const /** @type {?} */ progressDiff = this.disintegrating
/** @type {?} */
const progressDiff = this.disintegrating
? progress - this.lastProgress
: this.lastProgress - progress;
this.lastProgress = progress;
let /** @type {?} */ x = this.options.canvasPadding;
let /** @type {?} */ y = this.options.canvasPadding;
const /** @type {?} */ progressValue = (this.isHorizontal() ? rect.width : rect.height) * progress +
/** @type {?} */
let x = this.options.canvasPadding;
/** @type {?} */
let y = this.options.canvasPadding;
/** @type {?} */
const progressValue = (this.isHorizontal() ? rect.width : rect.height) * progress +
progressDiff * (this.disintegrating ? 100 : 220);

@@ -232,3 +240,4 @@ if (this.isHorizontal()) {

}
let /** @type {?} */ i = Math.floor(this.o.particlesAmountCoefficient * (progressDiff * 100 + 1));
/** @type {?} */
let i = Math.floor(this.o.particlesAmountCoefficient * (progressDiff * 100 + 1));
if (i > 0) {

@@ -252,4 +261,6 @@ while (i--) {

addTransforms(value) {
const /** @type {?} */ translateProperty = this.isHorizontal() ? 'translateX' : 'translateY';
const /** @type {?} */ translateValue = this.o.direction === 'left' || this.o.direction === 'top'
/** @type {?} */
const translateProperty = this.isHorizontal() ? 'translateX' : 'translateY';
/** @type {?} */
const translateValue = this.o.direction === 'left' || this.o.direction === 'top'
? value

@@ -269,5 +280,7 @@ : -value;

this.setup(options);
const /** @type {?} */ _ = this;
/** @type {?} */
const _ = this;
this.animate(anim => {
const /** @type {?} */ value = anim.animatables[0].target.value;
/** @type {?} */
const value = anim.animatables[0].target.value;
_.addTransforms(value);

@@ -289,5 +302,7 @@ if (_.o.duration) {

this.setup(options);
const /** @type {?} */ _ = this;
/** @type {?} */
const _ = this;
this.animate(anim => {
const /** @type {?} */ value = anim.animatables[0].target.value;
/** @type {?} */
const value = anim.animatables[0].target.value;
setTimeout(() => {

@@ -328,3 +343,4 @@ _.addTransforms(value);

animate(update) {
const /** @type {?} */ _ = this;
/** @type {?} */
const _ = this;
anime({

@@ -357,3 +373,3 @@ targets: { value: _.disintegrating ? 0 : 100 },

}
function Particles_tsickle_Closure_declarations() {
if (false) {
/** @type {?} */

@@ -383,10 +399,18 @@ Particles.prototype.particles;

Particles.prototype.rect;
/** @type {?} */
/**
* @type {?}
* @private
*/
Particles.prototype.el;
/** @type {?} */
/**
* @type {?}
* @private
*/
Particles.prototype.options;
/** @type {?} */
/**
* @type {?}
* @private
*/
Particles.prototype.renderer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljbGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLyIsInNvdXJjZXMiOlsibGliL3BhcnRpY2xlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxLQUFLLE1BQU0sU0FBUyxDQUFDO0FBRzVCLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFnQyxlQUFlLEVBQWMsTUFBTSxTQUFTLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQjlGLE1BQU07Ozs7OztJQWFKLFlBQ1UsSUFDQSxTQUNBO1FBRkEsT0FBRSxHQUFGLEVBQUU7UUFDRixZQUFPLEdBQVAsT0FBTztRQUNQLGFBQVEsR0FBUixRQUFRO3lCQWZOLEVBQUU7cUJBQ04sSUFBSTtRQWdCVixJQUFJLENBQUMsT0FBTyxxQkFBUSxPQUFPLENBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7S0FDYjs7OztJQUVELElBQUk7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENB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QyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQy9DLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjO29CQUN4QyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUs7b0JBQ3RCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUVyQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO29CQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDaEQ7Z0JBQUMs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LEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUU7WUFDOUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRO1lBQ3RCLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU07WUFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztZQUNoQixNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2lCQUMzRDthQUNGO1NBQ0YsQ0FBQyxDQUFDO0tBQ0o7Ozs7SUFDRCxXQUFXO1FBQ1QsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0tBQ3JCOzs7O0lBQ0QsWUFBWTtRQUNWLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssT0FBTyxDQUFDO0tBQ3BFO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYW5pbWUgZnJvbSAnYW5pbWVqcyc7IC8vIHRzbGludDpkaXNhYmxlLWxpbmVcblxuaW1wb3J0IHsgRWxlbWVudFJlZiwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyByYW5kLCBpcywgc3RyaW5nVG9IeXBoZW5zLCBnZXRDU1NWYWx1ZSwgdHJhbnNmb3JtU3RyaW5nLCBnZXRFbGVtZW50IH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9wdGlvbiB7XG4gIGNvbG9yPzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBzdHlsZT86IHN0cmluZztcbiAgY2FudmFzUGFkZGluZz86IG51bWJlcjtcbiAgZHVyYXRpb24/OiBudW1iZXI7XG4gIGVhc2luZz86IEFycmF5PG51bWJlcj4gfCBzdHJpbmc7XG4gIGRpcmVjdGlvbj86IHN0cmluZztcbiAgc2l6ZT86ICgpID0+IG51bWJlciB8IG51bWJlcjtcbiAgc3BlZWQ/OiAoKSA9PiBudW1iZXIgfCBudW1iZXI7XG4gIHBhcnRpY2xlc0Ftb3VudENvZWZmaWNpZW50PzogbnVtYmVyO1xuICBvc2NpbGxhdGlvbkNvZWZmaWNpZW50PzogbnVtYmVyO1xuICBiZWdpbj86ICgpID0+IHZvaWQ7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIGNvbXBsZXRlPzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNsYXNzIFBhcnRpY2xlcyB7XG4gIHBhcnRpY2xlcyA9IFtdO1xuICBmcmFtZSA9IG51bGw7XG4gIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7XG4gIGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEO1xuICB3cmFwcGVyOiBIVE1MRGl2RWxlbWVudDtcbiAgcGFyZW50V3JhcHBlcjogSFRNTERpdkVsZW1lbnQ7XG4gIG86IElPcHRpb247XG4gIGRpc2ludGVncmF0aW5nOiBib29sZWFuO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgbGFzdFByb2dyZXNzOiBudW1iZXI7XG4gIHJlY3Q6IEhUTUxDYW52YXNFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsOiBhbnksXG4gICAgcHJpdmF0ZSBvcHRpb25zOiBJT3B0aW9uLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLm9wdGlvbnMgfTtcbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIGluaXQoKTogdm9pZCB7XG4gICB0aGlzLmNhbnZhcyA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgdGhpcy5jdHggPSB0aGlzLmNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jYW52YXMsICdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jYW52YXMsICdwb2ludGVyRXZlbnRzJywgJ25vbmUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAndG9wJywgJzUwJScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jYW52YXMsICdsZWZ0JywgJzUwJScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jYW52YXMsICd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCknKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAnZGlzcGxheScsICdub25lJyk7XG4gICAgdGhpcy53cmFwcGVyID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMud3JhcHBlciwgJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLndyYXBwZXIsICdkaXNwbGF5JywgJ2lubGluZS1ibG9jaycpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy53cmFwcGVyLCAnb3ZlcmZsb3cnLCAnaGlkZGVuJyk7XG4gICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUodGhpcy5lbC5wYXJlbnROb2RlLCB0aGlzLndyYXBwZXIsIHRoaXMuZWwpO1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy53cmFwcGVyLCB0aGlzLmVsKTtcbiAgICB0aGlzLnBhcmVudFdyYXBwZXIgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wYXJlbnRXcmFwcGVyLCAncG9zaXRpb24nLCAncmVsYXRpdmUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucGFyZW50V3JhcHBlciwgJ2Rpc3BsYXknLCAnaW5saW5lLWJsb2NrJyk7XG4gICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUoXG4gICAgICB0aGlzLndyYXBwZXIucGFyZW50Tm9kZSxcbiAgICAgIHRoaXMucGFyZW50V3JhcHBlcixcbiAgICAgIHRoaXMud3JhcHBlclxuICAgICk7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLnBhcmVudFdyYXBwZXIsIHRoaXMud3JhcHBlcik7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLnBhcmVudFdyYXBwZXIsIHRoaXMuY2FudmFzKTtcbiAgfVxuXG4gIHNldE9wdGlvbnMob3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IHsgLi4udGhpcy5vcHRpb25zLCAuLi5vcHRpb25zIH07XG4gIH1cbiAgbG9vcCgpIHtcbiAgICB0aGlzLnVwZGF0ZVBhcnRpY2xlcygpO1xuICAgIHRoaXMucmVuZGVyUGFydGljbGVzKCk7XG4gICAgaWYgKHRoaXMuaXNBbmltYXRpbmcoKSkge1xuICAgICAgdGhpcy5mcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLmxvb3AuYmluZCh0aGlzKSk7XG4gICAgfVxuICB9XG4gIHVwZGF0ZVBhcnRpY2xlcygpIHtcbiAgICBsZXQgcDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucGFydGljbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBwID0gdGhpcy5wYXJ0aWNsZXNbaV07XG4gICAgICBpZiAocC5saWZlID4gcC5kZWF0aCkge1xuICAgICAgICB0aGlzLnBhcnRpY2xlcy5zcGxpY2UoaSwgMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwLnggKz0gcC5zcGVlZDtcbiAgICAgICAgcC55ID0gdGhpcy5vLm9zY2lsbGF0aW9uQ29lZmZpY2llbnQgKiBNYXRoLnNpbihwLmNvdW50ZXIgKiBwLmluY3JlYXNlKTtcbiAgICAgICAgcC5saWZlKys7XG4gICAgICAgIHAuY291bnRlciArPSB0aGlzLmRpc2ludGVncmF0aW5nID8gMSA6IC0xO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXRoaXMucGFydGljbGVzLmxlbmd0aCkge1xuICAgICAgdGhpcy5wYXVzZSgpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhbnZhcywgJ2Rpc3BsYXknLCAnbm9uZScpO1xuICAgICAgaWYgKGlzLmZuYyh0aGlzLm8uY29tcGxldGUpKSB7XG4gICAgICAgIHRoaXMuby5jb21wbGV0ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZW5kZXJQYXJ0aWNsZXMoKSB7XG4gICAgdGhpcy5jdHguY2xlYXJSZWN0KDAsIDAsIHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0KTtcbiAgICBsZXQgcDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucGFydGljbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBwID0gdGhpcy5wYXJ0aWNsZXNbaV07XG4gICAgICBpZiAocC5saWZlIDwgcC5kZWF0aCkge1xuICAgICAgICB0aGlzLmN0eC50cmFuc2xhdGUocC5zdGFydFgsIHAuc3RhcnRZKTtcbiAgICAgICAgdGhpcy5jdHgucm90YXRlKHAuYW5nbGUgKiBNYXRoLlBJIC8gMTgwKTtcbiAgICAgICAgdGhpcy5jdHguZ2xvYmFsQWxwaGEgPSB0aGlzLmRpc2ludGVncmF0aW5nXG4gICAgICAgICAgPyAxIC0gcC5saWZlIC8gcC5kZWF0aFxuICAgICAgICAgIDogcC5saWZlIC8gcC5kZWF0aDtcbiAgICAgICAgdGhpcy5jdHguZmlsbFN0eWxlID0gdGhpcy5jdHguc3Ryb2tlU3R5bGUgPSB0aGlzLm8uY29sb3I7XG4gICAgICAgIHRoaXMuY3R4LmJlZ2luUGF0aCgpO1xuXG4gICAgICAgIGlmICh0aGlzLm8udHlwZSA9PT0gJ2NpcmNsZScpIHtcbiAgICAgICAgICB0aGlzLmN0eC5hcmMocC54LCBwLnksIHAuc2l6ZSwgMCwgMiAqIE1hdGguUEkpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuby50eXBlID09PSAndHJpYW5nbGUnKSB7XG4gICAgICAgICAgdGhpcy5jdHgubW92ZVRvKHAueCwgcC55KTtcbiAgICAgICAgICB0aGlzLmN0eC5saW5lVG8ocC54ICsgcC5zaXplLCBwLnkgKyBwLnNpemUpO1xuICAgICAgICAgIHRoaXMuY3R4LmxpbmVUbyhwLnggKyBwLnNpemUsIHAueSAtIHAuc2l6ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5vLnR5cGUgPT09ICdyZWN0YW5nbGUnKSB7XG4gICAgICAgICAgdGhpcy5jdHgucmVjdChwLngsIHAueSwgcC5zaXplLCBwLnNpemUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuby5zdHlsZSA9PT0gJ2ZpbGwnKSB7XG4gICAgICAgICAgdGhpcy5jdHguZmlsbCgpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuby5zdHlsZSA9PT0gJ3N0cm9rZScpIHtcbiAgICAgICAgICB0aGlzLmN0eC5jbG9zZVBhdGgoKTtcbiAgICAgICAgICB0aGlzLmN0eC5zdHJva2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3R4Lmdsb2JhbEFscGhhID0gMTtcbiAgICAgICAgdGhpcy5jdHgucm90YXRlKC1wLmFuZ2xlICogTWF0aC5QSSAvIDE4MCk7XG4gICAgICAgIHRoaXMuY3R4LnRyYW5zbGF0ZSgtcC5zdGFydFgsIC1wLnN0YXJ0WSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHBsYXkoKSB7XG4gICAgdGhpcy5mcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLmxvb3AuYmluZCh0aGlzKSk7XG4gIH1cbiAgcGF1c2UoKSB7XG4gICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5mcmFtZSk7XG4gICAgdGhpcy5mcmFtZSA9IG51bGw7XG4gIH1cbiAgYWRkUGFydGljbGUob3B0aW9ucykge1xuICAgIGNvbnN0IGZyYW1lcyA9IHRoaXMuby5kdXJhdGlvbiAqIDYwIC8gMTAwMDtcbiAgICBjb25zdCBzcGVlZDogbnVtYmVyID0gKGlzLmZuYyh0aGlzLm8uc3BlZWQpXG4gICAgICA/IHRoaXMuby5zcGVlZCgpXG4gICAgICA6IHRoaXMuby5zcGVlZCkgYXMgbnVtYmVyO1xuICAgIHRoaXMucGFydGljbGVzLnB1c2goe1xuICAgICAgc3RhcnRYOiBvcHRpb25zLngsXG4gICAgICBzdGFydFk6IG9wdGlvbnMueSxcbiAgICAgIHg6IHRoaXMuZGlzaW50ZWdyYXRpbmcgPyAwIDogc3BlZWQgKiAtZnJhbWVzLFxuICAgICAgeTogMCxcbiAgICAgIGFuZ2xlOiByYW5kKDM2MCksXG4gICAgICBjb3VudGVyOiB0aGlzLmRpc2ludGVncmF0aW5nID8gMCA6IGZyYW1lcyxcbiAgICAgIGluY3JlYXNlOiBNYXRoLlBJICogMiAvIDEwMCxcbiAgICAgIGxpZmU6IDAsXG4gICAgICBkZWF0aDogdGhpcy5kaXNpbnRlZ3JhdGluZyA/IGZyYW1lcyAtIDIwICsgTWF0aC5yYW5kb20oKSAqIDQwIDogZnJhbWVzLFxuICAgICAgc3BlZWQ6IHNwZWVkLFxuICAgICAgc2l6ZTogaXMuZm5jKHRoaXMuby5zaXplKSA/IHRoaXMuby5zaXplKCkgOiB0aGlzLm8uc2l6ZVxuICAgIH0pO1xuICB9XG4gIGFkZFBhcnRpY2xlcyhyZWN0OiBhbnksIHByb2dyZXNzKSB7XG4gICAgY29uc3QgcHJvZ3Jlc3NEaWZmID0gdGhpcy5kaXNpbnRlZ3JhdGluZ1xuICAgICAgPyBwcm9ncmVzcyAtIHRoaXMubGFzdFByb2dyZXNzXG4gICAgICA6IHRoaXMubGFzdFByb2dyZXNzIC0gcHJvZ3Jlc3M7XG4gICAgdGhpcy5sYXN0UHJvZ3Jlc3MgPSBwcm9ncmVzcztcbiAgICBsZXQgeCA9IHRoaXMub3B0aW9ucy5jYW52YXNQYWRkaW5nO1xuICAgIGxldCB5ID0gdGhpcy5vcHRpb25zLmNhbnZhc1BhZGRpbmc7XG4gICAgY29uc3QgcHJvZ3Jlc3NWYWx1ZSA9XG4gICAgICAodGhpcy5pc0hvcml6b250YWwoKSA/IHJlY3Qud2lkdGggOiByZWN0LmhlaWdodCkgKiBwcm9ncmVzcyArXG4gICAgICBwcm9ncmVzc0RpZmYgKiAodGhpcy5kaXNpbnRlZ3JhdGluZyA/IDEwMCA6IDIyMCk7XG4gICAgaWYgKHRoaXMuaXNIb3Jpem9udGFsKCkpIHtcbiAgICAgIHggKz1cbiAgICAgICAgdGhpcy5vLmRpcmVjdGlvbiA9PT0gJ2xlZnQnXG4gICAgICAgICAgPyBwcm9ncmVzc1ZhbHVlXG4gICAgICAgICAgOiByZWN0LndpZHRoIC0gcHJvZ3Jlc3NWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgeSArPVxuICAgICAgICB0aGlzLm8uZGlyZWN0aW9uID09PSAndG9wJ1xuICAgICAgICAgID8gcHJvZ3Jlc3NWYWx1ZVxuICAgICAgICAgIDogcmVjdC5oZWlnaHQgLSBwcm9ncmVzc1ZhbHVlO1xuICAgIH1cbiAgICBsZXQgaSA9IE1hdGguZmxvb3IoXG4gICAgICB0aGlzLm8ucGFydGljbGVzQW1vdW50Q29lZmZpY2llbnQgKiAocHJvZ3Jlc3NEaWZmICogMTAwICsgMSlcbiAgICApO1xuICAgIGlmIChpID4gMCkge1xuICAgICAgd2hpbGUgKGktLSkge1xuICAgICAgICB0aGlzLmFkZFBhcnRpY2xlKHtcbiAgICAgICAgICB4OiB4ICsgKHRoaXMuaXNIb3Jpem9udGFsKCkgPyAwIDogcmVjdC53aWR0aCAqIE1hdGgucmFuZG9tKCkpLFxuICAgICAgICAgIHk6IHkgKyAodGhpcy5pc0hvcml6b250YWwoKSA/IHJlY3QuaGVpZ2h0ICogTWF0aC5yYW5kb20oKSA6IDApXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNBbmltYXRpbmcoKSkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhbnZhcywgJ2Rpc3BsYXknLCAnYmxvY2snKTtcbiAgICAgIHRoaXMucGxheSgpO1xuICAgIH1cbiAgfVxuICBhZGRUcmFuc2Zvcm1zKHZhbHVlKSB7XG4gICAgY29uc3QgdHJhbnNsYXRlUHJvcGVydHkgPSB0aGlzLmlzSG9yaXpvbnRhbCgpID8gJ3RyYW5zbGF0ZVgnIDogJ3RyYW5zbGF0ZVknO1xuICAgIGNvbnN0IHRyYW5zbGF0ZVZhbHVlID1cbiAgICAgIHRoaXMuby5kaXJlY3Rpb24gPT09ICdsZWZ0JyB8fCB0aGlzLm8uZGlyZWN0aW9uID09PSAndG9wJ1xuICAgICAgICA/IHZhbHVlXG4gICAgICAgIDogLXZhbHVlO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy53cmFwcGVyLCB0cmFuc2Zvcm1TdHJpbmcsIGAke3RyYW5zbGF0ZVByb3BlcnR5fSgke3RyYW5zbGF0ZVZhbHVlfSUpYCk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLCB0cmFuc2Zvcm1TdHJpbmcsIGAke3RyYW5zbGF0ZVByb3BlcnR5fSgkey10cmFuc2xhdGVWYWx1ZX0lKWApO1xuICB9XG4gIGRpc2ludGVncmF0ZShvcHRpb25zOiBJT3B0aW9uID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNBbmltYXRpbmcoKSkge1xuICAgICAgdGhpcy5kaXNpbnRlZ3JhdGluZyA9IHRydWU7XG4gICAgICB0aGlzLmxhc3RQcm9ncmVzcyA9IDA7XG4gICAgICB0aGlzLnNldHVwKG9wdGlvbnMpO1xuICAgICAgY29uc3QgXyA9IHRoaXM7XG4gICAgICB0aGlzLmFuaW1hdGUoYW5pbSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gYW5pbS5hbmltYXRhYmxlc1swXS50YXJnZXQudmFsdWU7XG4gICAgICAgIF8uYWRkVHJhbnNmb3Jtcyh2YWx1ZSk7XG4gICAgICAgIGlmIChfLm8uZHVyYXRpb24pIHtcbiAgICAgICAgICBfLmFkZFBhcnRpY2xlcyhfLnJlY3QsIHZhbHVlIC8gMTAwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGludGVncmF0ZShvcHRpb25zOiBJT3B0aW9uID0ge30pIHtcbiAgICBpZiAoIXRoaXMuaXNBbmltYXRpbmcoKSkge1xuICAgICAgdGhpcy5kaXNpbnRlZ3JhdGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5sYXN0UHJvZ3Jlc3MgPSAxO1xuICAgICAgdGhpcy5zZXR1cChvcHRpb25zKTtcbiAgICAgIGNvbnN0IF8gPSB0aGlzO1xuICAgICAgdGhpcy5hbmltYXRlKGFuaW0gPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGFuaW0uYW5pbWF0YWJsZXNbMF0udGFyZ2V0LnZhbHVlO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBfLmFkZFRyYW5zZm9ybXModmFsdWUpO1xuICAgICAgICB9LCBfLm8uZHVyYXRpb24pO1xuICAgICAgICBpZiAoXy5vLmR1cmF0aW9uKSB7XG4gICAgICAgICAgXy5hZGRQYXJ0aWNsZXMoXy5yZWN0LCB2YWx1ZSAvIDEwMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBzZXR1cChvcHRpb25zKSB7XG4gICAgdGhpcy5vID0geyAuLi50aGlzLm9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMud3JhcHBlciwgJ3Zpc2liaWxpdHknLCAndmlzaWJsZScpO1xuICAgIGlmICh0aGlzLm8uZHVyYXRpb24pIHtcbiAgICAgIHRoaXMucmVjdCA9IHRoaXMuZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB0aGlzLndpZHRoID0gdGhpcy5jYW52YXMud2lkdGggPVxuICAgICAgICB0aGlzLm8ud2lkdGggfHwgdGhpcy5yZWN0LndpZHRoICsgdGhpcy5vLmNhbnZhc1BhZGRpbmcgKiAyO1xuICAgICAgdGhpcy5oZWlnaHQgPSB0aGlzLmNhbnZhcy5oZWlnaHQgPVxuICAgICAgICB0aGlzLm8uaGVpZ2h0IHx8IHRoaXMucmVjdC5oZWlnaHQgKyB0aGlzLm8uY2FudmFzUGFkZGluZyAqIDI7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzRGlzaW50ZWdyYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5kaXNpbnRlZ3JhdGluZztcbiAgfVxuICBhbmltYXRlKHVwZGF0ZSkge1xuICAgIGNvbnN0IF8gPSB0aGlzO1xuICAgIGFuaW1lKHtcbiAgICAgIHRhcmdldHM6IHsgdmFsdWU6IF8uZGlzaW50ZWdyYXRpbmcgPyAwIDogMTAwIH0sXG4gICAgICB2YWx1ZTogXy5kaXNpbnRlZ3JhdGluZyA/IDEwMCA6IDAsXG4gICAgICBkdXJhdGlvbjogXy5vLmR1cmF0aW9uLFxuICAgICAgZWFzaW5nOiBfLm8uZWFzaW5nLFxuICAgICAgYmVnaW46IF8uby5iZWdpbixcbiAgICAgIHVwZGF0ZTogdXBkYXRlLFxuICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgaWYgKF8uZGlzaW50ZWdyYXRpbmcpIHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKF8ud3JhcHBlciwgJ3Zpc2liaWxpdHknLCAnaGlkZGVuJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBpc0FuaW1hdGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLmZyYW1lO1xuICB9XG4gIGlzSG9yaXpvbnRhbCgpIHtcbiAgICByZXR1cm4gdGhpcy5vLmRpcmVjdGlvbiA9PT0gJ2xlZnQnIHx8IHRoaXMuby5kaXJlY3Rpb24gPT09ICdyaWdodCc7XG4gIH1cbn1cblxuXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljbGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLyIsInNvdXJjZXMiOlsibGliL3BhcnRpY2xlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxLQUFLLE1BQU0sU0FBUyxDQUFDLENBQUMsc0JBQXNCO0FBR25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFnQyxlQUFlLEVBQWMsTUFBTSxTQUFTLENBQUM7Ozs7QUFFOUYsNkJBZ0JDOzs7SUFmQyx3QkFBZTs7SUFDZix1QkFBYzs7SUFDZCx3QkFBZTs7SUFDZixnQ0FBdUI7O0lBQ3ZCLDJCQUFrQjs7SUFDbEIseUJBQWdDOztJQUNoQyw0QkFBbUI7O0lBQ25CLHVCQUE2Qjs7SUFDN0Isd0JBQThCOztJQUM5Qiw2Q0FBb0M7O0lBQ3BDLHlDQUFnQzs7SUFDaEMsd0JBQW1COztJQUNuQix3QkFBZTs7SUFDZix5QkFBZ0I7O0lBQ2hCLDJCQUFzQjs7QUFHeEIsTUFBTSxPQUFPLFNBQVM7Ozs7OztJQWFwQixZQUNVLEVBQU8sRUFDUCxPQUFnQixFQUNoQixRQUFtQjtRQUZuQixPQUFFLEdBQUYsRUFBRSxDQUFLO1FBQ1AsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBZjdCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixVQUFLLEdBQUcsSUFBSSxDQUFDO1FBZ0JYLElBQUksQ0FBQyxPQUFPLHFCQUFRLE9BQU8sQ0FBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7Ozs7SUFFRCxJQUFJO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFF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QUs7WUFDaEIsTUFBTSxFQUFFLE1BQU07WUFDZCxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNiLElBQUksQ0FBQyxDQUFDLGNBQWMsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7aUJBQzNEO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFDRCxXQUFXO1FBQ1QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDOzs7O0lBQ0QsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQztJQUNyRSxDQUFDO0NBQ0Y7OztJQWpRQyw4QkFBZTs7SUFDZiwwQkFBYTs7SUFDYiwyQkFBMEI7O0lBQzFCLHdCQUE4Qjs7SUFDOUIsNEJBQXdCOztJQUN4QixrQ0FBOEI7O0lBQzlCLHNCQUFXOztJQUNYLG1DQUF3Qjs7SUFDeEIsMEJBQWM7O0lBQ2QsMkJBQWU7O0lBQ2YsaUNBQXFCOztJQUNyQix5QkFBd0I7Ozs7O0lBRXRCLHVCQUFlOzs7OztJQUNmLDRCQUF3Qjs7Ozs7SUFDeEIsNkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFuaW1lIGZyb20gJ2FuaW1lanMnOyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lXG5cbmltcG9ydCB7IEVsZW1lbnRSZWYsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmFuZCwgaXMsIHN0cmluZ1RvSHlwaGVucywgZ2V0Q1NTVmFsdWUsIHRyYW5zZm9ybVN0cmluZywgZ2V0RWxlbWVudCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElPcHRpb24ge1xuICBjb2xvcj86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgc3R5bGU/OiBzdHJpbmc7XG4gIGNhbnZhc1BhZGRpbmc/OiBudW1iZXI7XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xuICBlYXNpbmc/OiBBcnJheTxudW1iZXI+IHwgc3RyaW5nO1xuICBkaXJlY3Rpb24/OiBzdHJpbmc7XG4gIHNpemU/OiAoKSA9PiBudW1iZXIgfCBudW1iZXI7XG4gIHNwZWVkPzogKCkgPT4gbnVtYmVyIHwgbnVtYmVyO1xuICBwYXJ0aWNsZXNBbW91bnRDb2VmZmljaWVudD86IG51bWJlcjtcbiAgb3NjaWxsYXRpb25Db2VmZmljaWVudD86IG51bWJlcjtcbiAgYmVnaW4/OiAoKSA9PiB2b2lkO1xuICB3aWR0aD86IG51bWJlcjtcbiAgaGVpZ2h0PzogbnVtYmVyO1xuICBjb21wbGV0ZT86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJ0aWNsZXMge1xuICBwYXJ0aWNsZXMgPSBbXTtcbiAgZnJhbWUgPSBudWxsO1xuICBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50O1xuICBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDtcbiAgd3JhcHBlcjogSFRNTERpdkVsZW1lbnQ7XG4gIHBhcmVudFdyYXBwZXI6IEhUTUxEaXZFbGVtZW50O1xuICBvOiBJT3B0aW9uO1xuICBkaXNpbnRlZ3JhdGluZzogYm9vbGVhbjtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIGxhc3RQcm9ncmVzczogbnVtYmVyO1xuICByZWN0OiBIVE1MQ2FudmFzRWxlbWVudDtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbDogYW55LFxuICAgIHByaXZhdGUgb3B0aW9uczogSU9wdGlvbixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0geyAuLi5vcHRpb25zIH07XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICBpbml0KCk6IHZvaWQge1xuICAgdGhpcy5jYW52YXMgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIHRoaXMuY3R4ID0gdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAncG9zaXRpb24nLCAnYWJzb2x1dGUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAncG9pbnRlckV2ZW50cycsICdub25lJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhbnZhcywgJ3RvcCcsICc1MCUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAnbGVmdCcsICc1MCUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhbnZhcywgJ2Rpc3BsYXknLCAnbm9uZScpO1xuICAgIHRoaXMud3JhcHBlciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLndyYXBwZXIsICdwb3NpdGlvbicsICdyZWxhdGl2ZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy53cmFwcGVyLCAnZGlzcGxheScsICdpbmxpbmUtYmxvY2snKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMud3JhcHBlciwgJ292ZXJmbG93JywgJ2hpZGRlbicpO1xuICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKHRoaXMuZWwucGFyZW50Tm9kZSwgdGhpcy53cmFwcGVyLCB0aGlzLmVsKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMud3JhcHBlciwgdGhpcy5lbCk7XG4gICAgdGhpcy5wYXJlbnRXcmFwcGVyID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucGFyZW50V3JhcHBlciwgJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnBhcmVudFdyYXBwZXIsICdkaXNwbGF5JywgJ2lubGluZS1ibG9jaycpO1xuICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKFxuICAgICAgdGhpcy53cmFwcGVyLnBhcmVudE5vZGUsXG4gICAgICB0aGlzLnBhcmVudFdyYXBwZXIsXG4gICAgICB0aGlzLndyYXBwZXJcbiAgICApO1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5wYXJlbnRXcmFwcGVyLCB0aGlzLndyYXBwZXIpO1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5wYXJlbnRXcmFwcGVyLCB0aGlzLmNhbnZhcyk7XG4gIH1cblxuICBzZXRPcHRpb25zKG9wdGlvbnMpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLnRoaXMub3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICB9XG4gIGxvb3AoKSB7XG4gICAgdGhpcy51cGRhdGVQYXJ0aWNsZXMoKTtcbiAgICB0aGlzLnJlbmRlclBhcnRpY2xlcygpO1xuICAgIGlmICh0aGlzLmlzQW5pbWF0aW5nKCkpIHtcbiAgICAgIHRoaXMuZnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5sb29wLmJpbmQodGhpcykpO1xuICAgIH1cbiAgfVxuICB1cGRhdGVQYXJ0aWNsZXMoKSB7XG4gICAgbGV0IHA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBhcnRpY2xlcy5sZW5ndGg7IGkrKykge1xuICAgICAgcCA9IHRoaXMucGFydGljbGVzW2ldO1xuICAgICAgaWYgKHAubGlmZSA+IHAuZGVhdGgpIHtcbiAgICAgICAgdGhpcy5wYXJ0aWNsZXMuc3BsaWNlKGksIDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcC54ICs9IHAuc3BlZWQ7XG4gICAgICAgIHAueSA9IHRoaXMuby5vc2NpbGxhdGlvbkNvZWZmaWNpZW50ICogTWF0aC5zaW4ocC5jb3VudGVyICogcC5pbmNyZWFzZSk7XG4gICAgICAgIHAubGlmZSsrO1xuICAgICAgICBwLmNvdW50ZXIgKz0gdGhpcy5kaXNpbnRlZ3JhdGluZyA/IDEgOiAtMTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCF0aGlzLnBhcnRpY2xlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMucGF1c2UoKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jYW52YXMsICdkaXNwbGF5JywgJ25vbmUnKTtcbiAgICAgIGlmIChpcy5mbmModGhpcy5vLmNvbXBsZXRlKSkge1xuICAgICAgICB0aGlzLm8uY29tcGxldGUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmVuZGVyUGFydGljbGVzKCkge1xuICAgIHRoaXMuY3R4LmNsZWFyUmVjdCgwLCAwLCB0aGlzLndpZHRoLCB0aGlzLmhlaWdodCk7XG4gICAgbGV0IHA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBhcnRpY2xlcy5sZW5ndGg7IGkrKykge1xuICAgICAgcCA9IHRoaXMucGFydGljbGVzW2ldO1xuICAgICAgaWYgKHAubGlmZSA8IHAuZGVhdGgpIHtcbiAgICAgICAgdGhpcy5jdHgudHJhbnNsYXRlKHAuc3RhcnRYLCBwLnN0YXJ0WSk7XG4gICAgICAgIHRoaXMuY3R4LnJvdGF0ZShwLmFuZ2xlICogTWF0aC5QSSAvIDE4MCk7XG4gICAgICAgIHRoaXMuY3R4Lmdsb2JhbEFscGhhID0gdGhpcy5kaXNpbnRlZ3JhdGluZ1xuICAgICAgICAgID8gMSAtIHAubGlmZSAvIHAuZGVhdGhcbiAgICAgICAgICA6IHAubGlmZSAvIHAuZGVhdGg7XG4gICAgICAgIHRoaXMuY3R4LmZpbGxTdHlsZSA9IHRoaXMuY3R4LnN0cm9rZVN0eWxlID0gdGhpcy5vLmNvbG9yO1xuICAgICAgICB0aGlzLmN0eC5iZWdpblBhdGgoKTtcblxuICAgICAgICBpZiAodGhpcy5vLnR5cGUgPT09ICdjaXJjbGUnKSB7XG4gICAgICAgICAgdGhpcy5jdHguYXJjKHAueCwgcC55LCBwLnNpemUsIDAsIDIgKiBNYXRoLlBJKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm8udHlwZSA9PT0gJ3RyaWFuZ2xlJykge1xuICAgICAgICAgIHRoaXMuY3R4Lm1vdmVUbyhwLngsIHAueSk7XG4gICAgICAgICAgdGhpcy5jdHgubGluZVRvKHAueCArIHAuc2l6ZSwgcC55ICsgcC5zaXplKTtcbiAgICAgICAgICB0aGlzLmN0eC5saW5lVG8ocC54ICsgcC5zaXplLCBwLnkgLSBwLnNpemUpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuby50eXBlID09PSAncmVjdGFuZ2xlJykge1xuICAgICAgICAgIHRoaXMuY3R4LnJlY3QocC54LCBwLnksIHAuc2l6ZSwgcC5zaXplKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm8uc3R5bGUgPT09ICdmaWxsJykge1xuICAgICAgICAgIHRoaXMuY3R4LmZpbGwoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm8uc3R5bGUgPT09ICdzdHJva2UnKSB7XG4gICAgICAgICAgdGhpcy5jdHguY2xvc2VQYXRoKCk7XG4gICAgICAgICAgdGhpcy5jdHguc3Ryb2tlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmN0eC5nbG9iYWxBbHBoYSA9IDE7XG4gICAgICAgIHRoaXMuY3R4LnJvdGF0ZSgtcC5hbmdsZSAqIE1hdGguUEkgLyAxODApO1xuICAgICAgICB0aGlzLmN0eC50cmFuc2xhdGUoLXAuc3RhcnRYLCAtcC5zdGFydFkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwbGF5KCkge1xuICAgIHRoaXMuZnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5sb29wLmJpbmQodGhpcykpO1xuICB9XG4gIHBhdXNlKCkge1xuICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuZnJhbWUpO1xuICAgIHRoaXMuZnJhbWUgPSBudWxsO1xuICB9XG4gIGFkZFBhcnRpY2xlKG9wdGlvbnMpIHtcbiAgICBjb25zdCBmcmFtZXMgPSB0aGlzLm8uZHVyYXRpb24gKiA2MCAvIDEwMDA7XG4gICAgY29uc3Qgc3BlZWQ6IG51bWJlciA9IChpcy5mbmModGhpcy5vLnNwZWVkKVxuICAgICAgPyB0aGlzLm8uc3BlZWQoKVxuICAgICAgOiB0aGlzLm8uc3BlZWQpIGFzIG51bWJlcjtcbiAgICB0aGlzLnBhcnRpY2xlcy5wdXNoKHtcbiAgICAgIHN0YXJ0WDogb3B0aW9ucy54LFxuICAgICAgc3RhcnRZOiBvcHRpb25zLnksXG4gICAgICB4OiB0aGlzLmRpc2ludGVncmF0aW5nID8gMCA6IHNwZWVkICogLWZyYW1lcyxcbiAgICAgIHk6IDAsXG4gICAgICBhbmdsZTogcmFuZCgzNjApLFxuICAgICAgY291bnRlcjogdGhpcy5kaXNpbnRlZ3JhdGluZyA/IDAgOiBmcmFtZXMsXG4gICAgICBpbmNyZWFzZTogTWF0aC5QSSAqIDIgLyAxMDAsXG4gICAgICBsaWZlOiAwLFxuICAgICAgZGVhdGg6IHRoaXMuZGlzaW50ZWdyYXRpbmcgPyBmcmFtZXMgLSAyMCArIE1hdGgucmFuZG9tKCkgKiA0MCA6IGZyYW1lcyxcbiAgICAgIHNwZWVkOiBzcGVlZCxcbiAgICAgIHNpemU6IGlzLmZuYyh0aGlzLm8uc2l6ZSkgPyB0aGlzLm8uc2l6ZSgpIDogdGhpcy5vLnNpemVcbiAgICB9KTtcbiAgfVxuICBhZGRQYXJ0aWNsZXMocmVjdDogYW55LCBwcm9ncmVzcykge1xuICAgIGNvbnN0IHByb2dyZXNzRGlmZiA9IHRoaXMuZGlzaW50ZWdyYXRpbmdcbiAgICAgID8gcHJvZ3Jlc3MgLSB0aGlzLmxhc3RQcm9ncmVzc1xuICAgICAgOiB0aGlzLmxhc3RQcm9ncmVzcyAtIHByb2dyZXNzO1xuICAgIHRoaXMubGFzdFByb2dyZXNzID0gcHJvZ3Jlc3M7XG4gICAgbGV0IHggPSB0aGlzLm9wdGlvbnMuY2FudmFzUGFkZGluZztcbiAgICBsZXQgeSA9IHRoaXMub3B0aW9ucy5jYW52YXNQYWRkaW5nO1xuICAgIGNvbnN0IHByb2dyZXNzVmFsdWUgPVxuICAgICAgKHRoaXMuaXNIb3Jpem9udGFsKCkgPyByZWN0LndpZHRoIDogcmVjdC5oZWlnaHQpICogcHJvZ3Jlc3MgK1xuICAgICAgcHJvZ3Jlc3NEaWZmICogKHRoaXMuZGlzaW50ZWdyYXRpbmcgPyAxMDAgOiAyMjApO1xuICAgIGlmICh0aGlzLmlzSG9yaXpvbnRhbCgpKSB7XG4gICAgICB4ICs9XG4gICAgICAgIHRoaXMuby5kaXJlY3Rpb24gPT09ICdsZWZ0J1xuICAgICAgICAgID8gcHJvZ3Jlc3NWYWx1ZVxuICAgICAgICAgIDogcmVjdC53aWR0aCAtIHByb2dyZXNzVmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHkgKz1cbiAgICAgICAgdGhpcy5vLmRpcmVjdGlvbiA9PT0gJ3RvcCdcbiAgICAgICAgICA/IHByb2dyZXNzVmFsdWVcbiAgICAgICAgICA6IHJlY3QuaGVpZ2h0IC0gcHJvZ3Jlc3NWYWx1ZTtcbiAgICB9XG4gICAgbGV0IGkgPSBNYXRoLmZsb29yKFxuICAgICAgdGhpcy5vLnBhcnRpY2xlc0Ftb3VudENvZWZmaWNpZW50ICogKHByb2dyZXNzRGlmZiAqIDEwMCArIDEpXG4gICAgKTtcbiAgICBpZiAoaSA+IDApIHtcbiAgICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgdGhpcy5hZGRQYXJ0aWNsZSh7XG4gICAgICAgICAgeDogeCArICh0aGlzLmlzSG9yaXpvbnRhbCgpID8gMCA6IHJlY3Qud2lkdGggKiBNYXRoLnJhbmRvbSgpKSxcbiAgICAgICAgICB5OiB5ICsgKHRoaXMuaXNIb3Jpem9udGFsKCkgPyByZWN0LmhlaWdodCAqIE1hdGgucmFuZG9tKCkgOiAwKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzQW5pbWF0aW5nKCkpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jYW52YXMsICdkaXNwbGF5JywgJ2Jsb2NrJyk7XG4gICAgICB0aGlzLnBsYXkoKTtcbiAgICB9XG4gIH1cbiAgYWRkVHJhbnNmb3Jtcyh2YWx1ZSkge1xuICAgIGNvbnN0IHRyYW5zbGF0ZVByb3BlcnR5ID0gdGhpcy5pc0hvcml6b250YWwoKSA/ICd0cmFuc2xhdGVYJyA6ICd0cmFuc2xhdGVZJztcbiAgICBjb25zdCB0cmFuc2xhdGVWYWx1ZSA9XG4gICAgICB0aGlzLm8uZGlyZWN0aW9uID09PSAnbGVmdCcgfHwgdGhpcy5vLmRpcmVjdGlvbiA9PT0gJ3RvcCdcbiAgICAgICAgPyB2YWx1ZVxuICAgICAgICA6IC12YWx1ZTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMud3JhcHBlciwgdHJhbnNmb3JtU3RyaW5nLCBgJHt0cmFuc2xhdGVQcm9wZXJ0eX0oJHt0cmFuc2xhdGVWYWx1ZX0lKWApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbCwgdHJhbnNmb3JtU3RyaW5nLCBgJHt0cmFuc2xhdGVQcm9wZXJ0eX0oJHstdHJhbnNsYXRlVmFsdWV9JSlgKTtcbiAgfVxuICBkaXNpbnRlZ3JhdGUob3B0aW9uczogSU9wdGlvbiA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzQW5pbWF0aW5nKCkpIHtcbiAgICAgIHRoaXMuZGlzaW50ZWdyYXRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5sYXN0UHJvZ3Jlc3MgPSAwO1xuICAgICAgdGhpcy5zZXR1cChvcHRpb25zKTtcbiAgICAgIGNvbnN0IF8gPSB0aGlzO1xuICAgICAgdGhpcy5hbmltYXRlKGFuaW0gPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGFuaW0uYW5pbWF0YWJsZXNbMF0udGFyZ2V0LnZhbHVlO1xuICAgICAgICBfLmFkZFRyYW5zZm9ybXModmFsdWUpO1xuICAgICAgICBpZiAoXy5vLmR1cmF0aW9uKSB7XG4gICAgICAgICAgXy5hZGRQYXJ0aWNsZXMoXy5yZWN0LCB2YWx1ZSAvIDEwMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBpbnRlZ3JhdGUob3B0aW9uczogSU9wdGlvbiA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzQW5pbWF0aW5nKCkpIHtcbiAgICAgIHRoaXMuZGlzaW50ZWdyYXRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMubGFzdFByb2dyZXNzID0gMTtcbiAgICAgIHRoaXMuc2V0dXAob3B0aW9ucyk7XG4gICAgICBjb25zdCBfID0gdGhpcztcbiAgICAgIHRoaXMuYW5pbWF0ZShhbmltID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBhbmltLmFuaW1hdGFibGVzWzBdLnRhcmdldC52YWx1ZTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgXy5hZGRUcmFuc2Zvcm1zKHZhbHVlKTtcbiAgICAgICAgfSwgXy5vLmR1cmF0aW9uKTtcbiAgICAgICAgaWYgKF8uby5kdXJhdGlvbikge1xuICAgICAgICAgIF8uYWRkUGFydGljbGVzKF8ucmVjdCwgdmFsdWUgLyAxMDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgc2V0dXAob3B0aW9ucykge1xuICAgIHRoaXMubyA9IHsgLi4udGhpcy5vcHRpb25zLCAuLi5vcHRpb25zIH07XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLndyYXBwZXIsICd2aXNpYmlsaXR5JywgJ3Zpc2libGUnKTtcbiAgICBpZiAodGhpcy5vLmR1cmF0aW9uKSB7XG4gICAgICB0aGlzLnJlY3QgPSB0aGlzLmVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdGhpcy53aWR0aCA9IHRoaXMuY2FudmFzLndpZHRoID1cbiAgICAgICAgdGhpcy5vLndpZHRoIHx8IHRoaXMucmVjdC53aWR0aCArIHRoaXMuby5jYW52YXNQYWRkaW5nICogMjtcbiAgICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy5jYW52YXMuaGVpZ2h0ID1cbiAgICAgICAgdGhpcy5vLmhlaWdodCB8fCB0aGlzLnJlY3QuaGVpZ2h0ICsgdGhpcy5vLmNhbnZhc1BhZGRpbmcgKiAyO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0Rpc2ludGVncmF0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzaW50ZWdyYXRpbmc7XG4gIH1cbiAgYW5pbWF0ZSh1cGRhdGUpIHtcbiAgICBjb25zdCBfID0gdGhpcztcbiAgICBhbmltZSh7XG4gICAgICB0YXJnZXRzOiB7IHZhbHVlOiBfLmRpc2ludGVncmF0aW5nID8gMCA6IDEwMCB9LFxuICAgICAgdmFsdWU6IF8uZGlzaW50ZWdyYXRpbmcgPyAxMDAgOiAwLFxuICAgICAgZHVyYXRpb246IF8uby5kdXJhdGlvbixcbiAgICAgIGVhc2luZzogXy5vLmVhc2luZyxcbiAgICAgIGJlZ2luOiBfLm8uYmVnaW4sXG4gICAgICB1cGRhdGU6IHVwZGF0ZSxcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgIGlmIChfLmRpc2ludGVncmF0aW5nKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShfLndyYXBwZXIsICd2aXNpYmlsaXR5JywgJ2hpZGRlbicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgaXNBbmltYXRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5mcmFtZTtcbiAgfVxuICBpc0hvcml6b250YWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuby5kaXJlY3Rpb24gPT09ICdsZWZ0JyB8fCB0aGlzLm8uZGlyZWN0aW9uID09PSAncmlnaHQnO1xuICB9XG59XG5cblxuIl19
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export const /** @type {?} */ is = {
/** @type {?} */
export const is = {
arr: a => Array.isArray(a),

@@ -10,6 +11,8 @@ str: a => typeof a === 'string',

};
export const /** @type {?} */ stringToHyphens = str => {
/** @type {?} */
export const stringToHyphens = str => {
return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
};
export const /** @type {?} */ getCSSValue = (el, prop) => {
/** @type {?} */
export const getCSSValue = (el, prop) => {
if (prop in el.style) {

@@ -19,11 +22,14 @@ return getComputedStyle(el).getPropertyValue(stringToHyphens(prop)) || '0';

};
export const /** @type {?} */ t = 'transform';
export const /** @type {?} */ transformString = getCSSValue(document.body, t) ? t : '-webkit-' + t;
export const /** @type {?} */ rand = value => {
/** @type {?} */
export const t = 'transform';
/** @type {?} */
export const transformString = getCSSValue(document.body, t) ? t : '-webkit-' + t;
/** @type {?} */
export const rand = value => {
return Math.random() * value - value / 2;
};
export const /** @type {?} */ getElement = element => {
/** @type {?} */
export const getElement = element => {
return is.str(element) ? document.querySelector(element) : element;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24vIiwic291cmNlcyI6WyJsaWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE1BQU0sQ0FBQyx1QkFBTSxFQUFFLEdBQUc7SUFDaEIsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDMUIsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUTtJQUMvQixHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxVQUFVO0NBQ2xDLENBQUM7QUFFRixNQUFNLENBQUMsdUJBQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQyxFQUFFO0lBQ25DLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0NBQzlELENBQUM7QUFFRixNQUFNLENBQUMsdUJBQU0sV0FBVyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFO0lBQ3RDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNyQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO0tBQzVFO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyx1QkFBTSxDQUFDLEdBQUcsV0FBVyxDQUFDO0FBQzdCLE1BQU0sQ0FBQyx1QkFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztBQUVsRixNQUFNLENBQUMsdUJBQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO0lBQzFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7Q0FDMUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyx1QkFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEVBQUU7SUFDbEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztDQUNwRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzID0ge1xuICBhcnI6IGEgPT4gQXJyYXkuaXNBcnJheShhKSxcbiAgc3RyOiBhID0+IHR5cGVvZiBhID09PSAnc3RyaW5nJyxcbiAgZm5jOiBhID0+IHR5cGVvZiBhID09PSAnZnVuY3Rpb24nXG59O1xuXG5leHBvcnQgY29uc3Qgc3RyaW5nVG9IeXBoZW5zID0gc3RyID0+IHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCAnJDEtJDInKS50b0xvd2VyQ2FzZSgpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENTU1ZhbHVlID0gKGVsLCBwcm9wKSA9PiB7XG4gIGlmIChwcm9wIGluIGVsLnN0eWxlKSB7XG4gICAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZWwpLmdldFByb3BlcnR5VmFsdWUoc3RyaW5nVG9IeXBoZW5zKHByb3ApKSB8fCAnMCc7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB0ID0gJ3RyYW5zZm9ybSc7XG5leHBvcnQgY29uc3QgdHJhbnNmb3JtU3RyaW5nID0gZ2V0Q1NTVmFsdWUoZG9jdW1lbnQuYm9keSwgdCkgPyB0IDogJy13ZWJraXQtJyArIHQ7XG5cbmV4cG9ydCBjb25zdCByYW5kID0gdmFsdWUgPT4ge1xuICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIHZhbHVlIC0gdmFsdWUgLyAyO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnQgPSBlbGVtZW50ID0+IHtcbiAgcmV0dXJuIGlzLnN0cihlbGVtZW50KSA/IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZWxlbWVudCkgOiBlbGVtZW50O1xufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24vIiwic291cmNlcyI6WyJsaWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxNQUFNLE9BQU8sRUFBRSxHQUFHO0lBQ2hCLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzFCLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVE7SUFDL0IsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssVUFBVTtDQUNsQzs7QUFFRCxNQUFNLE9BQU8sZUFBZSxHQUFHLEdBQUcsQ0FBQyxFQUFFO0lBQ25DLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUMvRCxDQUFDOztBQUVELE1BQU0sT0FBTyxXQUFXLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDdEMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRTtRQUNwQixPQUFPLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQztLQUM1RTtBQUNILENBQUM7O0FBRUQsTUFBTSxPQUFPLENBQUMsR0FBRyxXQUFXOztBQUM1QixNQUFNLE9BQU8sZUFBZSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDOztBQUVqRixNQUFNLE9BQU8sSUFBSSxHQUFHLEtBQUssQ0FBQyxFQUFFO0lBQzFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQzNDLENBQUM7O0FBRUQsTUFBTSxPQUFPLFVBQVUsR0FBRyxPQUFPLENBQUMsRUFBRTtJQUNsQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUNyRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzID0ge1xuICBhcnI6IGEgPT4gQXJyYXkuaXNBcnJheShhKSxcbiAgc3RyOiBhID0+IHR5cGVvZiBhID09PSAnc3RyaW5nJyxcbiAgZm5jOiBhID0+IHR5cGVvZiBhID09PSAnZnVuY3Rpb24nXG59O1xuXG5leHBvcnQgY29uc3Qgc3RyaW5nVG9IeXBoZW5zID0gc3RyID0+IHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCAnJDEtJDInKS50b0xvd2VyQ2FzZSgpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENTU1ZhbHVlID0gKGVsLCBwcm9wKSA9PiB7XG4gIGlmIChwcm9wIGluIGVsLnN0eWxlKSB7XG4gICAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZWwpLmdldFByb3BlcnR5VmFsdWUoc3RyaW5nVG9IeXBoZW5zKHByb3ApKSB8fCAnMCc7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB0ID0gJ3RyYW5zZm9ybSc7XG5leHBvcnQgY29uc3QgdHJhbnNmb3JtU3RyaW5nID0gZ2V0Q1NTVmFsdWUoZG9jdW1lbnQuYm9keSwgdCkgPyB0IDogJy13ZWJraXQtJyArIHQ7XG5cbmV4cG9ydCBjb25zdCByYW5kID0gdmFsdWUgPT4ge1xuICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIHZhbHVlIC0gdmFsdWUgLyAyO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnQgPSBlbGVtZW50ID0+IHtcbiAgcmV0dXJuIGlzLnN0cihlbGVtZW50KSA/IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZWxlbWVudCkgOiBlbGVtZW50O1xufTtcbiJdfQ==
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -10,3 +10,2 @@ /*

export { ParticleEffectButtonModule } from './lib/angular-particle-effect-button.module';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcGFydGljbGUtZWZmZWN0LWJ1dHRvbi8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLDhDQUFjLGdEQUFnRCxDQUFDO0FBQy9ELDJDQUFjLDZDQUE2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b25cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXItcGFydGljbGUtZWZmZWN0LWJ1dHRvbi5tb2R1bGUnO1xuIl19
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -9,3 +9,2 @@ /**

export { ParticleEffectButtonDirective, ParticleEffectButtonModule } from './public_api';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLyIsInNvdXJjZXMiOlsiYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSwwRUFBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -60,7 +60,12 @@ import { ElementRef, Input, Directive, EventEmitter, Output, Renderer2 } from '@angular/core';

this._particles = new Particles(this.el.nativeElement, this.getFormattedOptions(), this.renderer);
if (this._pHidden) {
this._particles.disintegrate({ duration: 0 });
}
};
/**
* @private
* @return {?}
*/
ParticleEffectButtonDirective.prototype.getFormattedOptions = /**
* @private
* @return {?}

@@ -117,3 +122,4 @@ */

var _this = this;
var /** @type {?} */ allowedProps = this.pOptions;
/** @type {?} */
var allowedProps = this.pOptions;
Object.keys(options).map(function (key) {

@@ -131,3 +137,3 @@ if (allowedProps[key]) {

selector: '[libParticleEffectButton]'
},] },
},] }
];

@@ -158,6 +164,12 @@ /** @nocollapse */

export { ParticleEffectButtonDirective };
function ParticleEffectButtonDirective_tsickle_Closure_declarations() {
/** @type {?} */
if (false) {
/**
* @type {?}
* @private
*/
ParticleEffectButtonDirective.prototype._particles;
/** @type {?} */
/**
* @type {?}
* @private
*/
ParticleEffectButtonDirective.prototype._pHidden;

@@ -190,8 +202,13 @@ /** @type {?} */

ParticleEffectButtonDirective.prototype.pSpeed;
/** @type {?} */
/**
* @type {?}
* @private
*/
ParticleEffectButtonDirective.prototype.renderer;
/** @type {?} */
/**
* @type {?}
* @private
*/
ParticleEffectButtonDirective.prototype.el;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcGFydGljbGUtZWZmZWN0LWJ1dHRvbi8iLCJzb3VyY2VzIjpbImxpYi9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLEtBQUssRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixTQUFTLEVBSVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFXLE1BQU0sYUFBYSxDQUFDOztJQXFDL0MsdUNBQW9CLFFBQW1CLEVBQVUsRUFBYztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTt3QkE5QjVDLEtBQUs7c0JBQ04sTUFBTTt5QkFDSCxJQUFJO3VCQUNOLGdCQUFnQjtxQkFDbEIsUUFBUTtzQkFDUCxNQUFNOzBCQUNGLE1BQU07OEJBQ0YsR0FBRzt1Q0FDTSxFQUFFOzJDQUNFLENBQUM7c0JBQ3JCLElBQUksWUFBWSxFQUFRO3lCQUNyQixJQUFJLFlBQVksRUFBUTtxQkFDTixjQUFNLE9BQUEsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBbkMsQ0FBbUM7c0JBQ3hDLGNBQU0sT0FBQSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQVAsQ0FBTztLQWlCYTtJQWZuRSxzQkFDSSxrREFBTzs7OztRQVVYO1lBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDdEI7Ozs7O1FBYkQsVUFDWSxLQUFjO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztpQkFDM0Q7Z0JBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO2lCQUN4RDthQUNGO1NBQ0Y7OztPQUFBOzs7O0lBT0QsMERBQWtCOzs7SUFBbEI7UUFDRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksU0FBUyxDQUM3QixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFDckIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQzFCLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQztLQUNIOzs7O0lBQ08sMkRBQW1COzs7OztRQUN4QixNQUFNLENBQUM7WUFDSixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbEIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2hCLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNsQixhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbEMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDMUIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2hCLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNsQiwwQkFBMEIsRUFBRSxJQUFJLENBQUMsMkJBQTJCO1lBQzVELHNCQUFzQixFQUFFLElBQUksQ0FBQyx1QkFBdUI7WUFDcEQsS0FBSyxFQUFFO2dCQUNMLEtBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDcEI7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsS0FBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUN2QjtTQUNKLENBQUM7OzBCQUVPLG1EQUFROzs7OztZQUNqQixNQUFNLENBQUM7Z0JBQ0gsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUNuQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztnQkFDckIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLDJCQUEyQjtnQkFDN0QsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLHVCQUF1QjtnQkFDckQsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7YUFDNUIsQ0FBQzs7Ozs7O2tCQUVnQixPQUFZOztZQUM5QixxQkFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBRSxVQUFBLEdBQUc7Z0JBQzNCLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3RCLEtBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQzFCO2FBQ0YsQ0FBQyxDQUFDOzs7Ozs7Z0JBeEZOLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2lCQUN0Qzs7OztnQkFWQyxTQUFTO2dCQUxULFVBQVU7Ozt5QkFtQlQsS0FBSzs0QkFDTCxLQUFLOzBCQUNMLEtBQUs7d0JBQ0wsS0FBSzt5QkFDTCxLQUFLOzZCQUNMLEtBQUs7aUNBQ0wsS0FBSzswQ0FDTCxLQUFLOzhDQUNMLEtBQUs7eUJBQ0wsTUFBTTs0QkFDTixNQUFNO3dCQUNOLEtBQUs7eUJBQ0wsS0FBSzswQkFFTCxLQUFLLFNBQUMsU0FBUzs7d0NBbENsQjs7U0FpQmEsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgT25EZXN0cm95LFxuICBPbkluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyByYW5kIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBQYXJ0aWNsZXMsIElPcHRpb24gfSBmcm9tICcuL3BhcnRpY2xlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tsaWJQYXJ0aWNsZUVmZmVjdEJ1dHRvbl0nXG59KVxuZXhwb3J0IGNsYXNzIFBhcnRpY2xlRWZmZWN0QnV0dG9uRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIHByaXZhdGUgX3BhcnRpY2xlczogUGFydGljbGVzO1xuICBwcml2YXRlIF9wSGlkZGVuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBDb2xvciA9ICcjMDAwJztcbiAgQElucHV0KCkgcER1cmF0aW9uID0gMTAwMDtcbiAgQElucHV0KCkgcEVhc2luZyA9ICdlYXNlSW5PdXRDdWJpYyc7XG4gIEBJbnB1dCgpIHBUeXBlID0gJ2NpcmNsZSc7XG4gIEBJbnB1dCgpIHBTdHlsZSA9ICdmaWxsJztcbiAgQElucHV0KCkgcERpcmVjdGlvbiA9ICdsZWZ0JztcbiAgQElucHV0KCkgcENhbnZhc1BhZGRpbmcgPSAxNTA7XG4gIEBJbnB1dCgpIHBPc2NpbGxhdGlvbkNvZWZmaWNpZW50ID0gMzA7XG4gIEBJbnB1dCgpIHBQYXJ0aWNsZXNBbW91bnRDb2VmZmljaWVudCA9IDM7XG4gIEBPdXRwdXQoKSBwQmVnaW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBwQ29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBJbnB1dCgpIHBTaXplOiAoKSA9PiBudW1iZXIgfCBudW1iZXIgPSAoKSA9PiBNYXRoLmZsb29yKChNYXRoLnJhbmRvbSgpICogMykgKyAxKTtcbiAgQElucHV0KCkgcFNwZWVkOiAoKSA9PiBudW1iZXIgfCBudW1iZXIgPSAoKSA9PiByYW5kKDQpO1xuXG4gIEBJbnB1dCgncEhpZGRlbicpXG4gIHNldCBwSGlkZGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcEhpZGRlbiA9IHZhbHVlO1xuICAgIGlmICh0aGlzLl9wYXJ0aWNsZXMpIHtcbiAgICAgIGlmICh2YWx1ZSAmJiAhdGhpcy5fcGFydGljbGVzLmlzRGlzaW50ZWdyYXRlZCgpKSB7XG4gICAgICAgICB0aGlzLl9wYXJ0aWNsZXMuZGlzaW50ZWdyYXRlKHRoaXMuZ2V0Rm9ybWF0dGVkT3B0aW9ucygpKTtcbiAgICAgIH0gZWxzZSBpZiAoIXZhbHVlICYmIHRoaXMuX3BhcnRpY2xlcy5pc0Rpc2ludGVncmF0ZWQoKSkge1xuICAgICAgICAgdGhpcy5fcGFydGljbGVzLmludGVncmF0ZSh0aGlzLmdldEZvcm1hdHRlZE9wdGlvbnMoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGdldCBwSGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wSGlkZGVuO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLl9wYXJ0aWNsZXMgPSBuZXcgUGFydGljbGVzKFxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LFxuICAgICAgdGhpcy5nZXRGb3JtYXR0ZWRPcHRpb25zKCksXG4gICAgICB0aGlzLnJlbmRlcmVyXG4gICAgKTtcbiAgfVxuICBwcml2YXRlIGdldEZvcm1hdHRlZE9wdGlvbnMoKTogSU9wdGlvbiB7XG4gICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOiB0aGlzLnBDb2xvcixcbiAgICAgICAgdHlwZTogdGhpcy5wVHlwZSxcbiAgICAgICAgc3R5bGU6IHRoaXMucFN0eWxlLFxuICAgICAgICBjYW52YXNQYWRkaW5nOiB0aGlzLnBDYW52YXNQYWRkaW5nLFxuICAgICAgICBkdXJhdGlvbjogdGhpcy5wRHVyYXRpb24sXG4gICAgICAgIGVhc2luZzogdGhpcy5wRWFzaW5nLFxuICAgICAgICBkaXJlY3Rpb246IHRoaXMucERpcmVjdGlvbixcbiAgICAgICAgc2l6ZTogdGhpcy5wU2l6ZSxcbiAgICAgICAgc3BlZWQ6IHRoaXMucFNwZWVkLFxuICAgICAgICBwYXJ0aWNsZXNBbW91bnRDb2VmZmljaWVudDogdGhpcy5wUGFydGljbGVzQW1vdW50Q29lZmZpY2llbnQsXG4gICAgICAgIG9zY2lsbGF0aW9uQ29lZmZpY2llbnQ6IHRoaXMucE9zY2lsbGF0aW9uQ29lZmZpY2llbnQsXG4gICAgICAgIGJlZ2luOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5wQmVnaW4uZW1pdCgpO1xuICAgICAgICB9LFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgIHRoaXMucENvbXBsZXRlLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH07XG4gIH1cbiAgcHVibGljIGdldCBwT3B0aW9ucygpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHBDb2xvcjogdGhpcy5wQ29sb3IsXG4gICAgICAgIHBUeXBlOiB0aGlzLnBUeXBlLFxuICAgICAgICBwU3R5bGU6IHRoaXMucFN0eWxlLFxuICAgICAgICBwQ2FudmFzUGFkZGluZzogdGhpcy5wQ2FudmFzUGFkZGluZyxcbiAgICAgICAgcER1cmF0aW9uOiB0aGlzLnBEdXJhdGlvbixcbiAgICAgICAgcEVhc2luZzogdGhpcy5wRWFzaW5nLFxuICAgICAgICBwRGlyZWN0aW9uOiB0aGlzLnBEaXJlY3Rpb24sXG4gICAgICAgIHBTaXplOiB0aGlzLnBTaXplLFxuICAgICAgICBwU3BlZWQ6IHRoaXMucFNwZWVkLFxuICAgICAgICBwUGFydGljbGVzQW1vdW50Q29lZmZpY2llbnQ6IHRoaXMucFBhcnRpY2xlc0Ftb3VudENvZWZmaWNpZW50LFxuICAgICAgICBwT3NjaWxsYXRpb25Db2VmZmljaWVudDogdGhpcy5wT3NjaWxsYXRpb25Db2VmZmljaWVudCxcbiAgICAgICAgcEJlZ2luOiB0aGlzLnBCZWdpbixcbiAgICAgICAgcENvbXBsZXRlOiB0aGlzLnBDb21wbGV0ZVxuICAgIH07XG4gIH1cbiAgcHVibGljIHNldCBwT3B0aW9ucyhvcHRpb25zOiBhbnkpIHtcbiAgICBjb25zdCBhbGxvd2VkUHJvcHMgPSB0aGlzLnBPcHRpb25zO1xuICAgIE9iamVjdC5rZXlzKG9wdGlvbnMpLm1hcCgga2V5ID0+IHtcbiAgICAgIGlmIChhbGxvd2VkUHJvcHNba2V5XSkge1xuICAgICAgICB0aGlzW2tleV0gPSBvcHRpb25zW2tleV07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcGFydGljbGUtZWZmZWN0LWJ1dHRvbi8iLCJzb3VyY2VzIjpbImxpYi9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLEtBQUssRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixTQUFTLEVBSVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFXLE1BQU0sYUFBYSxDQUFDO0FBRWpEO0lBbUNFLHVDQUFvQixRQUFtQixFQUFVLEVBQWM7UUFBM0MsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLE9BQUUsR0FBRixFQUFFLENBQVk7UUE5QnZELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDaEIsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxnQkFBZ0IsQ0FBQztRQUMzQixVQUFLLEdBQUcsUUFBUSxDQUFDO1FBQ2pCLFdBQU0sR0FBRyxNQUFNLENBQUM7UUFDaEIsZUFBVSxHQUFHLE1BQU0sQ0FBQztRQUNwQixtQkFBYyxHQUFHLEdBQUcsQ0FBQztRQUNyQiw0QkFBdUIsR0FBRyxFQUFFLENBQUM7UUFDN0IsZ0NBQTJCLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2xDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3RDLFVBQUssR0FBMEIsY0FBTSxPQUFBLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FB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ZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBBZnRlckNvbnRlbnRJbml0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJhbmQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFBhcnRpY2xlcywgSU9wdGlvbiB9IGZyb20gJy4vcGFydGljbGVzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2xpYlBhcnRpY2xlRWZmZWN0QnV0dG9uXSdcbn0pXG5leHBvcnQgY2xhc3MgUGFydGljbGVFZmZlY3RCdXR0b25EaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgcHJpdmF0ZSBfcGFydGljbGVzOiBQYXJ0aWNsZXM7XG4gIHByaXZhdGUgX3BIaWRkZW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcENvbG9yID0gJyMwMDAnO1xuICBASW5wdXQoKSBwRHVyYXRpb24gPSAxMDAwO1xuICBASW5wdXQoKSBwRWFzaW5nID0gJ2Vhc2VJbk91dEN1YmljJztcbiAgQElucHV0KCkgcFR5cGUgPSAnY2lyY2xlJztcbiAgQElucHV0KCkgcFN0eWxlID0gJ2ZpbGwnO1xuICBASW5wdXQoKSBwRGlyZWN0aW9uID0gJ2xlZnQnO1xuICBASW5wdXQoKSBwQ2FudmFzUGFkZGluZyA9IDE1MDtcbiAgQElucHV0KCkgcE9zY2lsbGF0aW9uQ29lZmZpY2llbnQgPSAzMDtcbiAgQElucHV0KCkgcFBhcnRpY2xlc0Ftb3VudENvZWZmaWNpZW50ID0gMztcbiAgQE91dHB1dCgpIHBCZWdpbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHBDb21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQElucHV0KCkgcFNpemU6ICgpID0+IG51bWJlciB8IG51bWJlciA9ICgpID0+IE1hdGguZmxvb3IoKE1hdGgucmFuZG9tKCkgKiAzKSArIDEpO1xuICBASW5wdXQoKSBwU3BlZWQ6ICgpID0+IG51bWJlciB8IG51bWJlciA9ICgpID0+IHJhbmQoNCk7XG5cbiAgQElucHV0KCdwSGlkZGVuJylcbiAgc2V0IHBIaWRkZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9wSGlkZGVuID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuX3BhcnRpY2xlcykge1xuICAgICAgaWYgKHZhbHVlICYmICF0aGlzLl9wYXJ0aWNsZXMuaXNEaXNpbnRlZ3JhdGVkKCkpIHtcbiAgICAgICAgIHRoaXMuX3BhcnRpY2xlcy5kaXNpbnRlZ3JhdGUodGhpcy5nZXRGb3JtYXR0ZWRPcHRpb25zKCkpO1xuICAgICAgfSBlbHNlIGlmICghdmFsdWUgJiYgdGhpcy5fcGFydGljbGVzLmlzRGlzaW50ZWdyYXRlZCgpKSB7XG4gICAgICAgICB0aGlzLl9wYXJ0aWNsZXMuaW50ZWdyYXRlKHRoaXMuZ2V0Rm9ybWF0dGVkT3B0aW9ucygpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZ2V0IHBIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3BIaWRkZW47XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuX3BhcnRpY2xlcyA9IG5ldyBQYXJ0aWNsZXMoXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB0aGlzLmdldEZvcm1hdHRlZE9wdGlvbnMoKSxcbiAgICAgIHRoaXMucmVuZGVyZXJcbiAgICApO1xuXG4gICAgICBpZiAodGhpcy5fcEhpZGRlbikge1xuICAgICAgICAgIHRoaXMuX3BhcnRpY2xlcy5kaXNpbnRlZ3JhdGUoe2R1cmF0aW9uOiAwfSk7XG4gICAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXRGb3JtYXR0ZWRPcHRpb25zKCk6IElPcHRpb24ge1xuICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcjogdGhpcy5wQ29sb3IsXG4gICAgICAgIHR5cGU6IHRoaXMucFR5cGUsXG4gICAgICAgIHN0eWxlOiB0aGlzLnBTdHlsZSxcbiAgICAgICAgY2FudmFzUGFkZGluZzogdGhpcy5wQ2FudmFzUGFkZGluZyxcbiAgICAgICAgZHVyYXRpb246IHRoaXMucER1cmF0aW9uLFxuICAgICAgICBlYXNpbmc6IHRoaXMucEVhc2luZyxcbiAgICAgICAgZGlyZWN0aW9uOiB0aGlzLnBEaXJlY3Rpb24sXG4gICAgICAgIHNpemU6IHRoaXMucFNpemUsXG4gICAgICAgIHNwZWVkOiB0aGlzLnBTcGVlZCxcbiAgICAgICAgcGFydGljbGVzQW1vdW50Q29lZmZpY2llbnQ6IHRoaXMucFBhcnRpY2xlc0Ftb3VudENvZWZmaWNpZW50LFxuICAgICAgICBvc2NpbGxhdGlvbkNvZWZmaWNpZW50OiB0aGlzLnBPc2NpbGxhdGlvbkNvZWZmaWNpZW50LFxuICAgICAgICBiZWdpbjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMucEJlZ2luLmVtaXQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnBDb21wbGV0ZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9O1xuICB9XG4gIHB1YmxpYyBnZXQgcE9wdGlvbnMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwQ29sb3I6IHRoaXMucENvbG9yLFxuICAgICAgICBwVHlwZTogdGhpcy5wVHlwZSxcbiAgICAgICAgcFN0eWxlOiB0aGlzLnBTdHlsZSxcbiAgICAgICAgcENhbnZhc1BhZGRpbmc6IHRoaXMucENhbnZhc1BhZGRpbmcsXG4gICAgICAgIHBEdXJhdGlvbjogdGhpcy5wRHVyYXRpb24sXG4gICAgICAgIHBFYXNpbmc6IHRoaXMucEVhc2luZyxcbiAgICAgICAgcERpcmVjdGlvbjogdGhpcy5wRGlyZWN0aW9uLFxuICAgICAgICBwU2l6ZTogdGhpcy5wU2l6ZSxcbiAgICAgICAgcFNwZWVkOiB0aGlzLnBTcGVlZCxcbiAgICAgICAgcFBhcnRpY2xlc0Ftb3VudENvZWZmaWNpZW50OiB0aGlzLnBQYXJ0aWNsZXNBbW91bnRDb2VmZmljaWVudCxcbiAgICAgICAgcE9zY2lsbGF0aW9uQ29lZmZpY2llbnQ6IHRoaXMucE9zY2lsbGF0aW9uQ29lZmZpY2llbnQsXG4gICAgICAgIHBCZWdpbjogdGhpcy5wQmVnaW4sXG4gICAgICAgIHBDb21wbGV0ZTogdGhpcy5wQ29tcGxldGVcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBzZXQgcE9wdGlvbnMob3B0aW9uczogYW55KSB7XG4gICAgY29uc3QgYWxsb3dlZFByb3BzID0gdGhpcy5wT3B0aW9ucztcbiAgICBPYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIGtleSA9PiB7XG4gICAgICBpZiAoYWxsb3dlZFByb3BzW2tleV0pIHtcbiAgICAgICAgdGhpc1trZXldID0gb3B0aW9uc1trZXldO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -14,3 +14,3 @@ import { NgModule } from '@angular/core';

exports: [ParticleEffectButtonDirective]
},] },
},] }
];

@@ -20,3 +20,2 @@ return ParticleEffectButtonModule;

export { ParticleEffectButtonModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcGFydGljbGUtZWZmZWN0LWJ1dHRvbi8iLCJzb3VyY2VzIjpbImxpYi9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7OztnQkFFMUYsUUFBUSxTQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLDZCQUE2QixDQUFDO29CQUM3QyxPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztpQkFDekM7O3FDQU5EOztTQU9hLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXJ0aWNsZUVmZmVjdEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4vYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1BhcnRpY2xlRWZmZWN0QnV0dG9uRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW1BhcnRpY2xlRWZmZWN0QnV0dG9uRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBQYXJ0aWNsZUVmZmVjdEJ1dHRvbk1vZHVsZSB7IH1cblxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcGFydGljbGUtZWZmZWN0LWJ1dHRvbi8iLCJzb3VyY2VzIjpbImxpYi9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRTNGO0lBQUE7SUFJMEMsQ0FBQzs7Z0JBSjFDLFFBQVEsU0FBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDN0MsT0FBTyxFQUFFLENBQUMsNkJBQTZCLENBQUM7aUJBQ3pDOztJQUN5QyxpQ0FBQztDQUFBLEFBSjNDLElBSTJDO1NBQTlCLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXJ0aWNsZUVmZmVjdEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4vYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1BhcnRpY2xlRWZmZWN0QnV0dG9uRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW1BhcnRpY2xlRWZmZWN0QnV0dG9uRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBQYXJ0aWNsZUVmZmVjdEJ1dHRvbk1vZHVsZSB7IH1cblxuIl19
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import anime from 'animejs';
import anime from 'animejs'; // tslint:disable-line
import { rand, is, transformString } from './utils';

@@ -12,3 +12,3 @@ /**

export function IOption() { }
function IOption_tsickle_Closure_declarations() {
if (false) {
/** @type {?|undefined} */

@@ -114,4 +114,5 @@ IOption.prototype.color;

function () {
var /** @type {?} */ p;
for (var /** @type {?} */ i = 0; i < this.particles.length; i++) {
/** @type {?} */
var p;
for (var i = 0; i < this.particles.length; i++) {
p = this.particles[i];

@@ -144,4 +145,5 @@ if (p.life > p.death) {

this.ctx.clearRect(0, 0, this.width, this.height);
var /** @type {?} */ p;
for (var /** @type {?} */ i = 0; i < this.particles.length; i++) {
/** @type {?} */
var p;
for (var i = 0; i < this.particles.length; i++) {
p = this.particles[i];

@@ -208,6 +210,8 @@ if (p.life < p.death) {

function (options) {
var /** @type {?} */ frames = this.o.duration * 60 / 1000;
var /** @type {?} */ speed = /** @type {?} */ ((is.fnc(this.o.speed)
/** @type {?} */
var frames = this.o.duration * 60 / 1000;
/** @type {?} */
var speed = (/** @type {?} */ ((is.fnc(this.o.speed)
? this.o.speed()
: this.o.speed));
: this.o.speed)));
this.particles.push({

@@ -238,9 +242,13 @@ startX: options.x,

function (rect, progress) {
var /** @type {?} */ progressDiff = this.disintegrating
/** @type {?} */
var progressDiff = this.disintegrating
? progress - this.lastProgress
: this.lastProgress - progress;
this.lastProgress = progress;
var /** @type {?} */ x = this.options.canvasPadding;
var /** @type {?} */ y = this.options.canvasPadding;
var /** @type {?} */ progressValue = (this.isHorizontal() ? rect.width : rect.height) * progress +
/** @type {?} */
var x = this.options.canvasPadding;
/** @type {?} */
var y = this.options.canvasPadding;
/** @type {?} */
var progressValue = (this.isHorizontal() ? rect.width : rect.height) * progress +
progressDiff * (this.disintegrating ? 100 : 220);

@@ -259,3 +267,4 @@ if (this.isHorizontal()) {

}
var /** @type {?} */ i = Math.floor(this.o.particlesAmountCoefficient * (progressDiff * 100 + 1));
/** @type {?} */
var i = Math.floor(this.o.particlesAmountCoefficient * (progressDiff * 100 + 1));
if (i > 0) {

@@ -283,4 +292,6 @@ while (i--) {

function (value) {
var /** @type {?} */ translateProperty = this.isHorizontal() ? 'translateX' : 'translateY';
var /** @type {?} */ translateValue = this.o.direction === 'left' || this.o.direction === 'top'
/** @type {?} */
var translateProperty = this.isHorizontal() ? 'translateX' : 'translateY';
/** @type {?} */
var translateValue = this.o.direction === 'left' || this.o.direction === 'top'
? value

@@ -305,5 +316,7 @@ : -value;

this.setup(options);
var /** @type {?} */ _1 = this;
/** @type {?} */
var _1 = this;
this.animate(function (anim) {
var /** @type {?} */ value = anim.animatables[0].target.value;
/** @type {?} */
var value = anim.animatables[0].target.value;
_1.addTransforms(value);

@@ -330,5 +343,7 @@ if (_1.o.duration) {

this.setup(options);
var /** @type {?} */ _2 = this;
/** @type {?} */
var _2 = this;
this.animate(function (anim) {
var /** @type {?} */ value = anim.animatables[0].target.value;
/** @type {?} */
var value = anim.animatables[0].target.value;
setTimeout(function () {

@@ -381,3 +396,4 @@ _2.addTransforms(value);

var _this = this;
var /** @type {?} */ _ = this;
/** @type {?} */
var _ = this;
anime({

@@ -418,3 +434,3 @@ targets: { value: _.disintegrating ? 0 : 100 },

export { Particles };
function Particles_tsickle_Closure_declarations() {
if (false) {
/** @type {?} */

@@ -444,10 +460,18 @@ Particles.prototype.particles;

Particles.prototype.rect;
/** @type {?} */
/**
* @type {?}
* @private
*/
Particles.prototype.el;
/** @type {?} */
/**
* @type {?}
* @private
*/
Particles.prototype.options;
/** @type {?} */
/**
* @type {?}
* @private
*/
Particles.prototype.renderer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljbGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLyIsInNvdXJjZXMiOlsibGliL3BhcnRpY2xlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sS0FBSyxNQUFNLFNBQVMsQ0FBQztBQUc1QixPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBZ0MsZUFBZSxFQUFjLE1BQU0sU0FBUyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0I5RixJQUFBO0lBYUUsbUJBQ1UsSUFDQSxTQUNBO1FBRkEsT0FBRSxHQUFGLEVBQUU7UUFDRixZQUFPLEdBQVAsT0FBTztRQUNQLGFBQVEsR0FBUixRQUFRO3lCQWZOLEVBQUU7cUJBQ04sSUFBSTtRQWdCVixJQUFJLENBQUMsT0FBTyx3QkFBUSxPQUFPLENBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7S0FDYjs7OztJQUVELHdCQUFJOzs7SUFBSjtRQUNDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFB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LElBQUksQ0FBQyxjQUFjLENBQUM7Ozs7OztJQUU3QiwyQkFBTzs7OztJQUFQLFVBQVEsTUFBTTtRQUFkLGlCQWVDO1FBZEMscUJBQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNmLEtBQUssQ0FBQztZQUNKLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtZQUM5QyxLQUFLLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVE7WUFDdEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTTtZQUNsQixLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ2hCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsUUFBUSxFQUFFO2dCQUNSLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO29CQUNyQixLQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztpQkFDM0Q7YUFDRjtTQUNGLENBQUMsQ0FBQztLQUNKOzs7O0lBQ0QsK0JBQVc7OztJQUFYO1FBQ0UsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0tBQ3JCOzs7O0lBQ0QsZ0NBQVk7OztJQUFaO1FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUM7S0FDcEU7b0JBeFJIO0lBeVJDLENBQUE7QUFsUUQscUJBa1FDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFuaW1lIGZyb20gJ2FuaW1lanMnOyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lXG5cbmltcG9ydCB7IEVsZW1lbnRSZWYsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmFuZCwgaXMsIHN0cmluZ1RvSHlwaGVucywgZ2V0Q1NTVmFsdWUsIHRyYW5zZm9ybVN0cmluZywgZ2V0RWxlbWVudCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElPcHRpb24ge1xuICBjb2xvcj86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgc3R5bGU/OiBzdHJpbmc7XG4gIGNhbnZhc1BhZGRpbmc/OiBudW1iZXI7XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xuICBlYXNpbmc/OiBBcnJheTxudW1iZXI+IHwgc3RyaW5nO1xuICBkaXJlY3Rpb24/OiBzdHJpbmc7XG4gIHNpemU/OiAoKSA9PiBudW1iZXIgfCBudW1iZXI7XG4gIHNwZWVkPzogKCkgPT4gbnVtYmVyIHwgbnVtYmVyO1xuICBwYXJ0aWNsZXNBbW91bnRDb2VmZmljaWVudD86IG51bWJlcjtcbiAgb3NjaWxsYXRpb25Db2VmZmljaWVudD86IG51bWJlcjtcbiAgYmVnaW4/OiAoKSA9PiB2b2lkO1xuICB3aWR0aD86IG51bWJlcjtcbiAgaGVpZ2h0PzogbnVtYmVyO1xuICBjb21wbGV0ZT86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJ0aWNsZXMge1xuICBwYXJ0aWNsZXMgPSBbXTtcbiAgZnJhbWUgPSBudWxsO1xuICBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50O1xuICBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDtcbiAgd3JhcHBlcjogSFRNTERpdkVsZW1lbnQ7XG4gIHBhcmVudFdyYXBwZXI6IEhUTUxEaXZFbGVtZW50O1xuICBvOiBJT3B0aW9uO1xuICBkaXNpbnRlZ3JhdGluZzogYm9vbGVhbjtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIGxhc3RQcm9ncmVzczogbnVtYmVyO1xuICByZWN0OiBIVE1MQ2FudmFzRWxlbWVudDtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbDogYW55LFxuICAgIHByaXZhdGUgb3B0aW9uczogSU9wdGlvbixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0geyAuLi5vcHRpb25zIH07XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICBpbml0KCk6IHZvaWQge1xuICAgdGhpcy5jYW52YXMgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIHRoaXMuY3R4ID0gdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAncG9zaXRpb24nLCAnYWJzb2x1dGUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAncG9pbnRlckV2ZW50cycsICdub25lJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhbnZhcywgJ3RvcCcsICc1MCUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAnbGVmdCcsICc1MCUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhbnZhcywgJ2Rpc3BsYXknLCAnbm9uZScpO1xuICAgIHRoaXMud3JhcHBlciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLndyYXBwZXIsICdwb3NpdGlvbicsICdyZWxhdGl2ZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy53cmFwcGVyLCAnZGlzcGxheScsICdpbmxpbmUtYmxvY2snKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMud3JhcHBlciwgJ292ZXJmbG93JywgJ2hpZGRlbicpO1xuICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKHRoaXMuZWwucGFyZW50Tm9kZSwgdGhpcy53cmFwcGVyLCB0aGlzLmVsKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMud3JhcHBlciwgdGhpcy5lbCk7XG4gICAgdGhpcy5wYXJlbnRXcmFwcGVyID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucGFyZW50V3JhcHBlciwgJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnBhcmVudFdyYXBwZXIsICdkaXNwbGF5JywgJ2lubGluZS1ibG9jaycpO1xuICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKFxuICAgICAgdGhpcy53cmFwcGVyLnBhcmVudE5vZGUsXG4gICAgICB0aGlzLnBhcmVudFdyYXBwZXIsXG4gICAgICB0aGlzLndyYXBwZXJcbiAgICApO1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5wYXJlbnRXcmFwcGVyLCB0aGlzLndyYXBwZXIpO1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5wYXJlbnRXcmFwcGVyLCB0aGlzLmNhbnZhcyk7XG4gIH1cblxuICBzZXRPcHRpb25zKG9wdGlvbnMpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLnRoaXMub3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICB9XG4gIGxvb3AoKSB7XG4gICAgdGhpcy51cGRhdGVQYXJ0aWNsZXMoKTtcbiAgICB0aGlzLnJlbmRlclBhcnRpY2xlcygpO1xuICAgIGlmICh0aGlzLmlzQW5pbWF0aW5nKCkpIHtcbiAgICAgIHRoaXMuZnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5sb29wLmJpbmQodGhpcykpO1xuICAgIH1cbiAgfVxuICB1cGRhdGVQYXJ0aWNsZXMoKSB7XG4gICAgbGV0IHA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBhcnRpY2xlcy5sZW5ndGg7IGkrKykge1xuICAgICAgcCA9IHRoaXMucGFydGljbGVzW2ldO1xuICAgICAgaWYgKHAubGlmZSA+IHAuZGVhdGgpIHtcbiAgICAgICAgdGhpcy5wYXJ0aWNsZXMuc3BsaWNlKGksIDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcC54ICs9IHAuc3BlZWQ7XG4gICAgICAgIHAueSA9IHRoaXMuby5vc2NpbGxhdGlvbkNvZWZmaWNpZW50ICogTWF0aC5zaW4ocC5jb3VudGVyICogcC5pbmNyZWFzZSk7XG4gICAgICAgIHAubGlmZSsrO1xuICAgICAgICBwLmNvdW50ZXIgKz0gdGhpcy5kaXNpbnRlZ3JhdGluZyA/IDEgOiAtMTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCF0aGlzLnBhcnRpY2xlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMucGF1c2UoKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jYW52YXMsICdkaXNwbGF5JywgJ25vbmUnKTtcbiAgICAgIGlmIChpcy5mbmModGhpcy5vLmNvbXBsZXRlKSkge1xuICAgICAgICB0aGlzLm8uY29tcGxldGUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmVuZGVyUGFydGljbGVzKCkge1xuICAgIHRoaXMuY3R4LmNsZWFyUmVjdCgwLCAwLCB0aGlzLndpZHRoLCB0aGlzLmhlaWdodCk7XG4gICAgbGV0IHA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBhcnRpY2xlcy5sZW5ndGg7IGkrKykge1xuICAgICAgcCA9IHRoaXMucGFydGljbGVzW2ldO1xuICAgICAgaWYgKHAubGlmZSA8IHAuZGVhdGgpIHtcbiAgICAgICAgdGhpcy5jdHgudHJhbnNsYXRlKHAuc3RhcnRYLCBwLnN0YXJ0WSk7XG4gICAgICAgIHRoaXMuY3R4LnJvdGF0ZShwLmFuZ2xlICogTWF0aC5QSSAvIDE4MCk7XG4gICAgICAgIHRoaXMuY3R4Lmdsb2JhbEFscGhhID0gdGhpcy5kaXNpbnRlZ3JhdGluZ1xuICAgICAgICAgID8gMSAtIHAubGlmZSAvIHAuZGVhdGhcbiAgICAgICAgICA6IHAubGlmZSAvIHAuZGVhdGg7XG4gICAgICAgIHRoaXMuY3R4LmZpbGxTdHlsZSA9IHRoaXMuY3R4LnN0cm9rZVN0eWxlID0gdGhpcy5vLmNvbG9yO1xuICAgICAgICB0aGlzLmN0eC5iZWdpblBhdGgoKTtcblxuICAgICAgICBpZiAodGhpcy5vLnR5cGUgPT09ICdjaXJjbGUnKSB7XG4gICAgICAgICAgdGhpcy5jdHguYXJjKHAueCwgcC55LCBwLnNpemUsIDAsIDIgKiBNYXRoLlBJKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm8udHlwZSA9PT0gJ3RyaWFuZ2xlJykge1xuICAgICAgICAgIHRoaXMuY3R4Lm1vdmVUbyhwLngsIHAueSk7XG4gICAgICAgICAgdGhpcy5jdHgubGluZVRvKHAueCArIHAuc2l6ZSwgcC55ICsgcC5zaXplKTtcbiAgICAgICAgICB0aGlzLmN0eC5saW5lVG8ocC54ICsgcC5zaXplLCBwLnkgLSBwLnNpemUpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuby50eXBlID09PSAncmVjdGFuZ2xlJykge1xuICAgICAgICAgIHRoaXMuY3R4LnJlY3QocC54LCBwLnksIHAuc2l6ZSwgcC5zaXplKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm8uc3R5bGUgPT09ICdmaWxsJykge1xuICAgICAgICAgIHRoaXMuY3R4LmZpbGwoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm8uc3R5bGUgPT09ICdzdHJva2UnKSB7XG4gICAgICAgICAgdGhpcy5jdHguY2xvc2VQYXRoKCk7XG4gICAgICAgICAgdGhpcy5jdHguc3Ryb2tlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmN0eC5nbG9iYWxBbHBoYSA9IDE7XG4gICAgICAgIHRoaXMuY3R4LnJvdGF0ZSgtcC5hbmdsZSAqIE1hdGguUEkgLyAxODApO1xuICAgICAgICB0aGlzLmN0eC50cmFuc2xhdGUoLXAuc3RhcnRYLCAtcC5zdGFydFkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwbGF5KCkge1xuICAgIHRoaXMuZnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5sb29wLmJpbmQodGhpcykpO1xuICB9XG4gIHBhdXNlKCkge1xuICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuZnJhbWUpO1xuICAgIHRoaXMuZnJhbWUgPSBudWxsO1xuICB9XG4gIGFkZFBhcnRpY2xlKG9wdGlvbnMpIHtcbiAgICBjb25zdCBmcmFtZXMgPSB0aGlzLm8uZHVyYXRpb24gKiA2MCAvIDEwMDA7XG4gICAgY29uc3Qgc3BlZWQ6IG51bWJlciA9IChpcy5mbmModGhpcy5vLnNwZWVkKVxuICAgICAgPyB0aGlzLm8uc3BlZWQoKVxuICAgICAgOiB0aGlzLm8uc3BlZWQpIGFzIG51bWJlcjtcbiAgICB0aGlzLnBhcnRpY2xlcy5wdXNoKHtcbiAgICAgIHN0YXJ0WDogb3B0aW9ucy54LFxuICAgICAgc3RhcnRZOiBvcHRpb25zLnksXG4gICAgICB4OiB0aGlzLmRpc2ludGVncmF0aW5nID8gMCA6IHNwZWVkICogLWZyYW1lcyxcbiAgICAgIHk6IDAsXG4gICAgICBhbmdsZTogcmFuZCgzNjApLFxuICAgICAgY291bnRlcjogdGhpcy5kaXNpbnRlZ3JhdGluZyA/IDAgOiBmcmFtZXMsXG4gICAgICBpbmNyZWFzZTogTWF0aC5QSSAqIDIgLyAxMDAsXG4gICAgICBsaWZlOiAwLFxuICAgICAgZGVhdGg6IHRoaXMuZGlzaW50ZWdyYXRpbmcgPyBmcmFtZXMgLSAyMCArIE1hdGgucmFuZG9tKCkgKiA0MCA6IGZyYW1lcyxcbiAgICAgIHNwZWVkOiBzcGVlZCxcbiAgICAgIHNpemU6IGlzLmZuYyh0aGlzLm8uc2l6ZSkgPyB0aGlzLm8uc2l6ZSgpIDogdGhpcy5vLnNpemVcbiAgICB9KTtcbiAgfVxuICBhZGRQYXJ0aWNsZXMocmVjdDogYW55LCBwcm9ncmVzcykge1xuICAgIGNvbnN0IHByb2dyZXNzRGlmZiA9IHRoaXMuZGlzaW50ZWdyYXRpbmdcbiAgICAgID8gcHJvZ3Jlc3MgLSB0aGlzLmxhc3RQcm9ncmVzc1xuICAgICAgOiB0aGlzLmxhc3RQcm9ncmVzcyAtIHByb2dyZXNzO1xuICAgIHRoaXMubGFzdFByb2dyZXNzID0gcHJvZ3Jlc3M7XG4gICAgbGV0IHggPSB0aGlzLm9wdGlvbnMuY2FudmFzUGFkZGluZztcbiAgICBsZXQgeSA9IHRoaXMub3B0aW9ucy5jYW52YXNQYWRkaW5nO1xuICAgIGNvbnN0IHByb2dyZXNzVmFsdWUgPVxuICAgICAgKHRoaXMuaXNIb3Jpem9udGFsKCkgPyByZWN0LndpZHRoIDogcmVjdC5oZWlnaHQpICogcHJvZ3Jlc3MgK1xuICAgICAgcHJvZ3Jlc3NEaWZmICogKHRoaXMuZGlzaW50ZWdyYXRpbmcgPyAxMDAgOiAyMjApO1xuICAgIGlmICh0aGlzLmlzSG9yaXpvbnRhbCgpKSB7XG4gICAgICB4ICs9XG4gICAgICAgIHRoaXMuby5kaXJlY3Rpb24gPT09ICdsZWZ0J1xuICAgICAgICAgID8gcHJvZ3Jlc3NWYWx1ZVxuICAgICAgICAgIDogcmVjdC53aWR0aCAtIHByb2dyZXNzVmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHkgKz1cbiAgICAgICAgdGhpcy5vLmRpcmVjdGlvbiA9PT0gJ3RvcCdcbiAgICAgICAgICA/IHByb2dyZXNzVmFsdWVcbiAgICAgICAgICA6IHJlY3QuaGVpZ2h0IC0gcHJvZ3Jlc3NWYWx1ZTtcbiAgICB9XG4gICAgbGV0IGkgPSBNYXRoLmZsb29yKFxuICAgICAgdGhpcy5vLnBhcnRpY2xlc0Ftb3VudENvZWZmaWNpZW50ICogKHByb2dyZXNzRGlmZiAqIDEwMCArIDEpXG4gICAgKTtcbiAgICBpZiAoaSA+IDApIHtcbiAgICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgdGhpcy5hZGRQYXJ0aWNsZSh7XG4gICAgICAgICAgeDogeCArICh0aGlzLmlzSG9yaXpvbnRhbCgpID8gMCA6IHJlY3Qud2lkdGggKiBNYXRoLnJhbmRvbSgpKSxcbiAgICAgICAgICB5OiB5ICsgKHRoaXMuaXNIb3Jpem9udGFsKCkgPyByZWN0LmhlaWdodCAqIE1hdGgucmFuZG9tKCkgOiAwKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzQW5pbWF0aW5nKCkpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jYW52YXMsICdkaXNwbGF5JywgJ2Jsb2NrJyk7XG4gICAgICB0aGlzLnBsYXkoKTtcbiAgICB9XG4gIH1cbiAgYWRkVHJhbnNmb3Jtcyh2YWx1ZSkge1xuICAgIGNvbnN0IHRyYW5zbGF0ZVByb3BlcnR5ID0gdGhpcy5pc0hvcml6b250YWwoKSA/ICd0cmFuc2xhdGVYJyA6ICd0cmFuc2xhdGVZJztcbiAgICBjb25zdCB0cmFuc2xhdGVWYWx1ZSA9XG4gICAgICB0aGlzLm8uZGlyZWN0aW9uID09PSAnbGVmdCcgfHwgdGhpcy5vLmRpcmVjdGlvbiA9PT0gJ3RvcCdcbiAgICAgICAgPyB2YWx1ZVxuICAgICAgICA6IC12YWx1ZTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMud3JhcHBlciwgdHJhbnNmb3JtU3RyaW5nLCBgJHt0cmFuc2xhdGVQcm9wZXJ0eX0oJHt0cmFuc2xhdGVWYWx1ZX0lKWApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbCwgdHJhbnNmb3JtU3RyaW5nLCBgJHt0cmFuc2xhdGVQcm9wZXJ0eX0oJHstdHJhbnNsYXRlVmFsdWV9JSlgKTtcbiAgfVxuICBkaXNpbnRlZ3JhdGUob3B0aW9uczogSU9wdGlvbiA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzQW5pbWF0aW5nKCkpIHtcbiAgICAgIHRoaXMuZGlzaW50ZWdyYXRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5sYXN0UHJvZ3Jlc3MgPSAwO1xuICAgICAgdGhpcy5zZXR1cChvcHRpb25zKTtcbiAgICAgIGNvbnN0IF8gPSB0aGlzO1xuICAgICAgdGhpcy5hbmltYXRlKGFuaW0gPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGFuaW0uYW5pbWF0YWJsZXNbMF0udGFyZ2V0LnZhbHVlO1xuICAgICAgICBfLmFkZFRyYW5zZm9ybXModmFsdWUpO1xuICAgICAgICBpZiAoXy5vLmR1cmF0aW9uKSB7XG4gICAgICAgICAgXy5hZGRQYXJ0aWNsZXMoXy5yZWN0LCB2YWx1ZSAvIDEwMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBpbnRlZ3JhdGUob3B0aW9uczogSU9wdGlvbiA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzQW5pbWF0aW5nKCkpIHtcbiAgICAgIHRoaXMuZGlzaW50ZWdyYXRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMubGFzdFByb2dyZXNzID0gMTtcbiAgICAgIHRoaXMuc2V0dXAob3B0aW9ucyk7XG4gICAgICBjb25zdCBfID0gdGhpcztcbiAgICAgIHRoaXMuYW5pbWF0ZShhbmltID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBhbmltLmFuaW1hdGFibGVzWzBdLnRhcmdldC52YWx1ZTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgXy5hZGRUcmFuc2Zvcm1zKHZhbHVlKTtcbiAgICAgICAgfSwgXy5vLmR1cmF0aW9uKTtcbiAgICAgICAgaWYgKF8uby5kdXJhdGlvbikge1xuICAgICAgICAgIF8uYWRkUGFydGljbGVzKF8ucmVjdCwgdmFsdWUgLyAxMDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgc2V0dXAob3B0aW9ucykge1xuICAgIHRoaXMubyA9IHsgLi4udGhpcy5vcHRpb25zLCAuLi5vcHRpb25zIH07XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLndyYXBwZXIsICd2aXNpYmlsaXR5JywgJ3Zpc2libGUnKTtcbiAgICBpZiAodGhpcy5vLmR1cmF0aW9uKSB7XG4gICAgICB0aGlzLnJlY3QgPSB0aGlzLmVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdGhpcy53aWR0aCA9IHRoaXMuY2FudmFzLndpZHRoID1cbiAgICAgICAgdGhpcy5vLndpZHRoIHx8IHRoaXMucmVjdC53aWR0aCArIHRoaXMuby5jYW52YXNQYWRkaW5nICogMjtcbiAgICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy5jYW52YXMuaGVpZ2h0ID1cbiAgICAgICAgdGhpcy5vLmhlaWdodCB8fCB0aGlzLnJlY3QuaGVpZ2h0ICsgdGhpcy5vLmNhbnZhc1BhZGRpbmcgKiAyO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0Rpc2ludGVncmF0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzaW50ZWdyYXRpbmc7XG4gIH1cbiAgYW5pbWF0ZSh1cGRhdGUpIHtcbiAgICBjb25zdCBfID0gdGhpcztcbiAgICBhbmltZSh7XG4gICAgICB0YXJnZXRzOiB7IHZhbHVlOiBfLmRpc2ludGVncmF0aW5nID8gMCA6IDEwMCB9LFxuICAgICAgdmFsdWU6IF8uZGlzaW50ZWdyYXRpbmcgPyAxMDAgOiAwLFxuICAgICAgZHVyYXRpb246IF8uby5kdXJhdGlvbixcbiAgICAgIGVhc2luZzogXy5vLmVhc2luZyxcbiAgICAgIGJlZ2luOiBfLm8uYmVnaW4sXG4gICAgICB1cGRhdGU6IHVwZGF0ZSxcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgIGlmIChfLmRpc2ludGVncmF0aW5nKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShfLndyYXBwZXIsICd2aXNpYmlsaXR5JywgJ2hpZGRlbicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgaXNBbmltYXRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5mcmFtZTtcbiAgfVxuICBpc0hvcml6b250YWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuby5kaXJlY3Rpb24gPT09ICdsZWZ0JyB8fCB0aGlzLm8uZGlyZWN0aW9uID09PSAncmlnaHQnO1xuICB9XG59XG5cblxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljbGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLyIsInNvdXJjZXMiOlsibGliL3BhcnRpY2xlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sS0FBSyxNQUFNLFNBQVMsQ0FBQyxDQUFDLHNCQUFzQjtBQUduRCxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBZ0MsZUFBZSxFQUFjLE1BQU0sU0FBUyxDQUFDOzs7O0FBRTlGLDZCQWdCQzs7O0lBZkMsd0JBQWU7O0lBQ2YsdUJBQWM7O0lBQ2Qsd0JBQWU7O0lBQ2YsZ0NBQXVCOztJQUN2QiwyQkFBa0I7O0lBQ2xCLHlCQUFnQzs7SUFDaEMsNEJBQW1COztJQUNuQix1QkFBNkI7O0lBQzdCLHdCQUE4Qjs7SUFDOUIsNkNBQW9DOztJQUNwQyx5Q0FBZ0M7O0lBQ2hDLHdCQUFtQjs7SUFDbkIsd0JBQWU7O0lBQ2YseUJBQWdCOztJQUNoQiwyQkFBc0I7O0FBR3hCO0lBYUUsbUJBQ1UsRUFBTyxFQUNQLE9BQWdCLEVBQ2hCLFFBQW1CO1FBRm5CLE9BQUUsR0FBRixFQUFFLENBQUs7UUFDUCxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFmN0IsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLFVBQUssR0FBRyxJQUFJLENBQUM7UUFnQlgsSUFBSSxDQUFDLE9BQU8sd0JBQVEsT0FBTyxDQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQzs7OztJQUVELHdCQUFJOzs7SUFBSjtRQUNDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLENB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QyxDQUFDO1lBQ2pDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVE7WUFDdEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTTtZQUNsQixLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ2hCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsUUFBUSxFQUFFO2dCQUNSLElBQUksQ0FBQyxDQUFDLGNBQWMsRUFBRTtvQkFDcEIsS0FBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7aUJBQzNEO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFDRCwrQkFBVzs7O0lBQVg7UUFDRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7Ozs7SUFDRCxnQ0FBWTs7O0lBQVo7UUFDRSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUM7SUFDckUsQ0FBQztJQUNILGdCQUFDO0FBQUQsQ0FBQyxBQWxRRCxJQWtRQzs7OztJQWpRQyw4QkFBZTs7SUFDZiwwQkFBYTs7SUFDYiwyQkFBMEI7O0lBQzFCLHdCQUE4Qjs7SUFDOUIsNEJBQXdCOztJQUN4QixrQ0FBOEI7O0lBQzlCLHNCQUFXOztJQUNYLG1DQUF3Qjs7SUFDeEIsMEJBQWM7O0lBQ2QsMkJBQWU7O0lBQ2YsaUNBQXFCOztJQUNyQix5QkFBd0I7Ozs7O0lBRXRCLHVCQUFlOzs7OztJQUNmLDRCQUF3Qjs7Ozs7SUFDeEIsNkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFuaW1lIGZyb20gJ2FuaW1lanMnOyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lXG5cbmltcG9ydCB7IEVsZW1lbnRSZWYsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmFuZCwgaXMsIHN0cmluZ1RvSHlwaGVucywgZ2V0Q1NTVmFsdWUsIHRyYW5zZm9ybVN0cmluZywgZ2V0RWxlbWVudCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElPcHRpb24ge1xuICBjb2xvcj86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgc3R5bGU/OiBzdHJpbmc7XG4gIGNhbnZhc1BhZGRpbmc/OiBudW1iZXI7XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xuICBlYXNpbmc/OiBBcnJheTxudW1iZXI+IHwgc3RyaW5nO1xuICBkaXJlY3Rpb24/OiBzdHJpbmc7XG4gIHNpemU/OiAoKSA9PiBudW1iZXIgfCBudW1iZXI7XG4gIHNwZWVkPzogKCkgPT4gbnVtYmVyIHwgbnVtYmVyO1xuICBwYXJ0aWNsZXNBbW91bnRDb2VmZmljaWVudD86IG51bWJlcjtcbiAgb3NjaWxsYXRpb25Db2VmZmljaWVudD86IG51bWJlcjtcbiAgYmVnaW4/OiAoKSA9PiB2b2lkO1xuICB3aWR0aD86IG51bWJlcjtcbiAgaGVpZ2h0PzogbnVtYmVyO1xuICBjb21wbGV0ZT86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBQYXJ0aWNsZXMge1xuICBwYXJ0aWNsZXMgPSBbXTtcbiAgZnJhbWUgPSBudWxsO1xuICBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50O1xuICBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDtcbiAgd3JhcHBlcjogSFRNTERpdkVsZW1lbnQ7XG4gIHBhcmVudFdyYXBwZXI6IEhUTUxEaXZFbGVtZW50O1xuICBvOiBJT3B0aW9uO1xuICBkaXNpbnRlZ3JhdGluZzogYm9vbGVhbjtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIGxhc3RQcm9ncmVzczogbnVtYmVyO1xuICByZWN0OiBIVE1MQ2FudmFzRWxlbWVudDtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbDogYW55LFxuICAgIHByaXZhdGUgb3B0aW9uczogSU9wdGlvbixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0geyAuLi5vcHRpb25zIH07XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICBpbml0KCk6IHZvaWQge1xuICAgdGhpcy5jYW52YXMgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIHRoaXMuY3R4ID0gdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAncG9zaXRpb24nLCAnYWJzb2x1dGUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAncG9pbnRlckV2ZW50cycsICdub25lJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhbnZhcywgJ3RvcCcsICc1MCUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAnbGVmdCcsICc1MCUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhbnZhcywgJ2Rpc3BsYXknLCAnbm9uZScpO1xuICAgIHRoaXMud3JhcHBlciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLndyYXBwZXIsICdwb3NpdGlvbicsICdyZWxhdGl2ZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy53cmFwcGVyLCAnZGlzcGxheScsICdpbmxpbmUtYmxvY2snKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMud3JhcHBlciwgJ292ZXJmbG93JywgJ2hpZGRlbicpO1xuICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKHRoaXMuZWwucGFyZW50Tm9kZSwgdGhpcy53cmFwcGVyLCB0aGlzLmVsKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMud3JhcHBlciwgdGhpcy5lbCk7XG4gICAgdGhpcy5wYXJlbnRXcmFwcGVyID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucGFyZW50V3JhcHBlciwgJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnBhcmVudFdyYXBwZXIsICdkaXNwbGF5JywgJ2lubGluZS1ibG9jaycpO1xuICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKFxuICAgICAgdGhpcy53cmFwcGVyLnBhcmVudE5vZGUsXG4gICAgICB0aGlzLnBhcmVudFdyYXBwZXIsXG4gICAgICB0aGlzLndyYXBwZXJcbiAgICApO1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5wYXJlbnRXcmFwcGVyLCB0aGlzLndyYXBwZXIpO1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5wYXJlbnRXcmFwcGVyLCB0aGlzLmNhbnZhcyk7XG4gIH1cblxuICBzZXRPcHRpb25zKG9wdGlvbnMpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLnRoaXMub3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICB9XG4gIGxvb3AoKSB7XG4gICAgdGhpcy51cGRhdGVQYXJ0aWNsZXMoKTtcbiAgICB0aGlzLnJlbmRlclBhcnRpY2xlcygpO1xuICAgIGlmICh0aGlzLmlzQW5pbWF0aW5nKCkpIHtcbiAgICAgIHRoaXMuZnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5sb29wLmJpbmQodGhpcykpO1xuICAgIH1cbiAgfVxuICB1cGRhdGVQYXJ0aWNsZXMoKSB7XG4gICAgbGV0IHA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBhcnRpY2xlcy5sZW5ndGg7IGkrKykge1xuICAgICAgcCA9IHRoaXMucGFydGljbGVzW2ldO1xuICAgICAgaWYgKHAubGlmZSA+IHAuZGVhdGgpIHtcbiAgICAgICAgdGhpcy5wYXJ0aWNsZXMuc3BsaWNlKGksIDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcC54ICs9IHAuc3BlZWQ7XG4gICAgICAgIHAueSA9IHRoaXMuby5vc2NpbGxhdGlvbkNvZWZmaWNpZW50ICogTWF0aC5zaW4ocC5jb3VudGVyICogcC5pbmNyZWFzZSk7XG4gICAgICAgIHAubGlmZSsrO1xuICAgICAgICBwLmNvdW50ZXIgKz0gdGhpcy5kaXNpbnRlZ3JhdGluZyA/IDEgOiAtMTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCF0aGlzLnBhcnRpY2xlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMucGF1c2UoKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jYW52YXMsICdkaXNwbGF5JywgJ25vbmUnKTtcbiAgICAgIGlmIChpcy5mbmModGhpcy5vLmNvbXBsZXRlKSkge1xuICAgICAgICB0aGlzLm8uY29tcGxldGUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmVuZGVyUGFydGljbGVzKCkge1xuICAgIHRoaXMuY3R4LmNsZWFyUmVjdCgwLCAwLCB0aGlzLndpZHRoLCB0aGlzLmhlaWdodCk7XG4gICAgbGV0IHA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBhcnRpY2xlcy5sZW5ndGg7IGkrKykge1xuICAgICAgcCA9IHRoaXMucGFydGljbGVzW2ldO1xuICAgICAgaWYgKHAubGlmZSA8IHAuZGVhdGgpIHtcbiAgICAgICAgdGhpcy5jdHgudHJhbnNsYXRlKHAuc3RhcnRYLCBwLnN0YXJ0WSk7XG4gICAgICAgIHRoaXMuY3R4LnJvdGF0ZShwLmFuZ2xlICogTWF0aC5QSSAvIDE4MCk7XG4gICAgICAgIHRoaXMuY3R4Lmdsb2JhbEFscGhhID0gdGhpcy5kaXNpbnRlZ3JhdGluZ1xuICAgICAgICAgID8gMSAtIHAubGlmZSAvIHAuZGVhdGhcbiAgICAgICAgICA6IHAubGlmZSAvIHAuZGVhdGg7XG4gICAgICAgIHRoaXMuY3R4LmZpbGxTdHlsZSA9IHRoaXMuY3R4LnN0cm9rZVN0eWxlID0gdGhpcy5vLmNvbG9yO1xuICAgICAgICB0aGlzLmN0eC5iZWdpblBhdGgoKTtcblxuICAgICAgICBpZiAodGhpcy5vLnR5cGUgPT09ICdjaXJjbGUnKSB7XG4gICAgICAgICAgdGhpcy5jdHguYXJjKHAueCwgcC55LCBwLnNpemUsIDAsIDIgKiBNYXRoLlBJKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm8udHlwZSA9PT0gJ3RyaWFuZ2xlJykge1xuICAgICAgICAgIHRoaXMuY3R4Lm1vdmVUbyhwLngsIHAueSk7XG4gICAgICAgICAgdGhpcy5jdHgubGluZVRvKHAueCArIHAuc2l6ZSwgcC55ICsgcC5zaXplKTtcbiAgICAgICAgICB0aGlzLmN0eC5saW5lVG8ocC54ICsgcC5zaXplLCBwLnkgLSBwLnNpemUpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuby50eXBlID09PSAncmVjdGFuZ2xlJykge1xuICAgICAgICAgIHRoaXMuY3R4LnJlY3QocC54LCBwLnksIHAuc2l6ZSwgcC5zaXplKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm8uc3R5bGUgPT09ICdmaWxsJykge1xuICAgICAgICAgIHRoaXMuY3R4LmZpbGwoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm8uc3R5bGUgPT09ICdzdHJva2UnKSB7XG4gICAgICAgICAgdGhpcy5jdHguY2xvc2VQYXRoKCk7XG4gICAgICAgICAgdGhpcy5jdHguc3Ryb2tlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmN0eC5nbG9iYWxBbHBoYSA9IDE7XG4gICAgICAgIHRoaXMuY3R4LnJvdGF0ZSgtcC5hbmdsZSAqIE1hdGguUEkgLyAxODApO1xuICAgICAgICB0aGlzLmN0eC50cmFuc2xhdGUoLXAuc3RhcnRYLCAtcC5zdGFydFkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwbGF5KCkge1xuICAgIHRoaXMuZnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5sb29wLmJpbmQodGhpcykpO1xuICB9XG4gIHBhdXNlKCkge1xuICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuZnJhbWUpO1xuICAgIHRoaXMuZnJhbWUgPSBudWxsO1xuICB9XG4gIGFkZFBhcnRpY2xlKG9wdGlvbnMpIHtcbiAgICBjb25zdCBmcmFtZXMgPSB0aGlzLm8uZHVyYXRpb24gKiA2MCAvIDEwMDA7XG4gICAgY29uc3Qgc3BlZWQ6IG51bWJlciA9IChpcy5mbmModGhpcy5vLnNwZWVkKVxuICAgICAgPyB0aGlzLm8uc3BlZWQoKVxuICAgICAgOiB0aGlzLm8uc3BlZWQpIGFzIG51bWJlcjtcbiAgICB0aGlzLnBhcnRpY2xlcy5wdXNoKHtcbiAgICAgIHN0YXJ0WDogb3B0aW9ucy54LFxuICAgICAgc3RhcnRZOiBvcHRpb25zLnksXG4gICAgICB4OiB0aGlzLmRpc2ludGVncmF0aW5nID8gMCA6IHNwZWVkICogLWZyYW1lcyxcbiAgICAgIHk6IDAsXG4gICAgICBhbmdsZTogcmFuZCgzNjApLFxuICAgICAgY291bnRlcjogdGhpcy5kaXNpbnRlZ3JhdGluZyA/IDAgOiBmcmFtZXMsXG4gICAgICBpbmNyZWFzZTogTWF0aC5QSSAqIDIgLyAxMDAsXG4gICAgICBsaWZlOiAwLFxuICAgICAgZGVhdGg6IHRoaXMuZGlzaW50ZWdyYXRpbmcgPyBmcmFtZXMgLSAyMCArIE1hdGgucmFuZG9tKCkgKiA0MCA6IGZyYW1lcyxcbiAgICAgIHNwZWVkOiBzcGVlZCxcbiAgICAgIHNpemU6IGlzLmZuYyh0aGlzLm8uc2l6ZSkgPyB0aGlzLm8uc2l6ZSgpIDogdGhpcy5vLnNpemVcbiAgICB9KTtcbiAgfVxuICBhZGRQYXJ0aWNsZXMocmVjdDogYW55LCBwcm9ncmVzcykge1xuICAgIGNvbnN0IHByb2dyZXNzRGlmZiA9IHRoaXMuZGlzaW50ZWdyYXRpbmdcbiAgICAgID8gcHJvZ3Jlc3MgLSB0aGlzLmxhc3RQcm9ncmVzc1xuICAgICAgOiB0aGlzLmxhc3RQcm9ncmVzcyAtIHByb2dyZXNzO1xuICAgIHRoaXMubGFzdFByb2dyZXNzID0gcHJvZ3Jlc3M7XG4gICAgbGV0IHggPSB0aGlzLm9wdGlvbnMuY2FudmFzUGFkZGluZztcbiAgICBsZXQgeSA9IHRoaXMub3B0aW9ucy5jYW52YXNQYWRkaW5nO1xuICAgIGNvbnN0IHByb2dyZXNzVmFsdWUgPVxuICAgICAgKHRoaXMuaXNIb3Jpem9udGFsKCkgPyByZWN0LndpZHRoIDogcmVjdC5oZWlnaHQpICogcHJvZ3Jlc3MgK1xuICAgICAgcHJvZ3Jlc3NEaWZmICogKHRoaXMuZGlzaW50ZWdyYXRpbmcgPyAxMDAgOiAyMjApO1xuICAgIGlmICh0aGlzLmlzSG9yaXpvbnRhbCgpKSB7XG4gICAgICB4ICs9XG4gICAgICAgIHRoaXMuby5kaXJlY3Rpb24gPT09ICdsZWZ0J1xuICAgICAgICAgID8gcHJvZ3Jlc3NWYWx1ZVxuICAgICAgICAgIDogcmVjdC53aWR0aCAtIHByb2dyZXNzVmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHkgKz1cbiAgICAgICAgdGhpcy5vLmRpcmVjdGlvbiA9PT0gJ3RvcCdcbiAgICAgICAgICA/IHByb2dyZXNzVmFsdWVcbiAgICAgICAgICA6IHJlY3QuaGVpZ2h0IC0gcHJvZ3Jlc3NWYWx1ZTtcbiAgICB9XG4gICAgbGV0IGkgPSBNYXRoLmZsb29yKFxuICAgICAgdGhpcy5vLnBhcnRpY2xlc0Ftb3VudENvZWZmaWNpZW50ICogKHByb2dyZXNzRGlmZiAqIDEwMCArIDEpXG4gICAgKTtcbiAgICBpZiAoaSA+IDApIHtcbiAgICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgdGhpcy5hZGRQYXJ0aWNsZSh7XG4gICAgICAgICAgeDogeCArICh0aGlzLmlzSG9yaXpvbnRhbCgpID8gMCA6IHJlY3Qud2lkdGggKiBNYXRoLnJhbmRvbSgpKSxcbiAgICAgICAgICB5OiB5ICsgKHRoaXMuaXNIb3Jpem9udGFsKCkgPyByZWN0LmhlaWdodCAqIE1hdGgucmFuZG9tKCkgOiAwKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzQW5pbWF0aW5nKCkpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jYW52YXMsICdkaXNwbGF5JywgJ2Jsb2NrJyk7XG4gICAgICB0aGlzLnBsYXkoKTtcbiAgICB9XG4gIH1cbiAgYWRkVHJhbnNmb3Jtcyh2YWx1ZSkge1xuICAgIGNvbnN0IHRyYW5zbGF0ZVByb3BlcnR5ID0gdGhpcy5pc0hvcml6b250YWwoKSA/ICd0cmFuc2xhdGVYJyA6ICd0cmFuc2xhdGVZJztcbiAgICBjb25zdCB0cmFuc2xhdGVWYWx1ZSA9XG4gICAgICB0aGlzLm8uZGlyZWN0aW9uID09PSAnbGVmdCcgfHwgdGhpcy5vLmRpcmVjdGlvbiA9PT0gJ3RvcCdcbiAgICAgICAgPyB2YWx1ZVxuICAgICAgICA6IC12YWx1ZTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMud3JhcHBlciwgdHJhbnNmb3JtU3RyaW5nLCBgJHt0cmFuc2xhdGVQcm9wZXJ0eX0oJHt0cmFuc2xhdGVWYWx1ZX0lKWApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbCwgdHJhbnNmb3JtU3RyaW5nLCBgJHt0cmFuc2xhdGVQcm9wZXJ0eX0oJHstdHJhbnNsYXRlVmFsdWV9JSlgKTtcbiAgfVxuICBkaXNpbnRlZ3JhdGUob3B0aW9uczogSU9wdGlvbiA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzQW5pbWF0aW5nKCkpIHtcbiAgICAgIHRoaXMuZGlzaW50ZWdyYXRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5sYXN0UHJvZ3Jlc3MgPSAwO1xuICAgICAgdGhpcy5zZXR1cChvcHRpb25zKTtcbiAgICAgIGNvbnN0IF8gPSB0aGlzO1xuICAgICAgdGhpcy5hbmltYXRlKGFuaW0gPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGFuaW0uYW5pbWF0YWJsZXNbMF0udGFyZ2V0LnZhbHVlO1xuICAgICAgICBfLmFkZFRyYW5zZm9ybXModmFsdWUpO1xuICAgICAgICBpZiAoXy5vLmR1cmF0aW9uKSB7XG4gICAgICAgICAgXy5hZGRQYXJ0aWNsZXMoXy5yZWN0LCB2YWx1ZSAvIDEwMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBpbnRlZ3JhdGUob3B0aW9uczogSU9wdGlvbiA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzQW5pbWF0aW5nKCkpIHtcbiAgICAgIHRoaXMuZGlzaW50ZWdyYXRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMubGFzdFByb2dyZXNzID0gMTtcbiAgICAgIHRoaXMuc2V0dXAob3B0aW9ucyk7XG4gICAgICBjb25zdCBfID0gdGhpcztcbiAgICAgIHRoaXMuYW5pbWF0ZShhbmltID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBhbmltLmFuaW1hdGFibGVzWzBdLnRhcmdldC52YWx1ZTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgXy5hZGRUcmFuc2Zvcm1zKHZhbHVlKTtcbiAgICAgICAgfSwgXy5vLmR1cmF0aW9uKTtcbiAgICAgICAgaWYgKF8uby5kdXJhdGlvbikge1xuICAgICAgICAgIF8uYWRkUGFydGljbGVzKF8ucmVjdCwgdmFsdWUgLyAxMDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgc2V0dXAob3B0aW9ucykge1xuICAgIHRoaXMubyA9IHsgLi4udGhpcy5vcHRpb25zLCAuLi5vcHRpb25zIH07XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLndyYXBwZXIsICd2aXNpYmlsaXR5JywgJ3Zpc2libGUnKTtcbiAgICBpZiAodGhpcy5vLmR1cmF0aW9uKSB7XG4gICAgICB0aGlzLnJlY3QgPSB0aGlzLmVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdGhpcy53aWR0aCA9IHRoaXMuY2FudmFzLndpZHRoID1cbiAgICAgICAgdGhpcy5vLndpZHRoIHx8IHRoaXMucmVjdC53aWR0aCArIHRoaXMuby5jYW52YXNQYWRkaW5nICogMjtcbiAgICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy5jYW52YXMuaGVpZ2h0ID1cbiAgICAgICAgdGhpcy5vLmhlaWdodCB8fCB0aGlzLnJlY3QuaGVpZ2h0ICsgdGhpcy5vLmNhbnZhc1BhZGRpbmcgKiAyO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0Rpc2ludGVncmF0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzaW50ZWdyYXRpbmc7XG4gIH1cbiAgYW5pbWF0ZSh1cGRhdGUpIHtcbiAgICBjb25zdCBfID0gdGhpcztcbiAgICBhbmltZSh7XG4gICAgICB0YXJnZXRzOiB7IHZhbHVlOiBfLmRpc2ludGVncmF0aW5nID8gMCA6IDEwMCB9LFxuICAgICAgdmFsdWU6IF8uZGlzaW50ZWdyYXRpbmcgPyAxMDAgOiAwLFxuICAgICAgZHVyYXRpb246IF8uby5kdXJhdGlvbixcbiAgICAgIGVhc2luZzogXy5vLmVhc2luZyxcbiAgICAgIGJlZ2luOiBfLm8uYmVnaW4sXG4gICAgICB1cGRhdGU6IHVwZGF0ZSxcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgIGlmIChfLmRpc2ludGVncmF0aW5nKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShfLndyYXBwZXIsICd2aXNpYmlsaXR5JywgJ2hpZGRlbicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgaXNBbmltYXRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5mcmFtZTtcbiAgfVxuICBpc0hvcml6b250YWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuby5kaXJlY3Rpb24gPT09ICdsZWZ0JyB8fCB0aGlzLm8uZGlyZWN0aW9uID09PSAncmlnaHQnO1xuICB9XG59XG5cblxuIl19
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export var /** @type {?} */ is = {
/** @type {?} */
export var is = {
arr: function (a) { return Array.isArray(a); },

@@ -10,6 +11,8 @@ str: function (a) { return typeof a === 'string'; },

};
export var /** @type {?} */ stringToHyphens = function (str) {
/** @type {?} */
export var stringToHyphens = function (str) {
return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
};
export var /** @type {?} */ getCSSValue = function (el, prop) {
/** @type {?} */
export var getCSSValue = function (el, prop) {
if (prop in el.style) {

@@ -19,11 +22,14 @@ return getComputedStyle(el).getPropertyValue(stringToHyphens(prop)) || '0';

};
export var /** @type {?} */ t = 'transform';
export var /** @type {?} */ transformString = getCSSValue(document.body, t) ? t : '-webkit-' + t;
export var /** @type {?} */ rand = function (value) {
/** @type {?} */
export var t = 'transform';
/** @type {?} */
export var transformString = getCSSValue(document.body, t) ? t : '-webkit-' + t;
/** @type {?} */
export var rand = function (value) {
return Math.random() * value - value / 2;
};
export var /** @type {?} */ getElement = function (element) {
/** @type {?} */
export var getElement = function (element) {
return is.str(element) ? document.querySelector(element) : element;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24vIiwic291cmNlcyI6WyJsaWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE1BQU0sQ0FBQyxxQkFBTSxFQUFFLEdBQUc7SUFDaEIsR0FBRyxFQUFFLFVBQUEsQ0FBQyxJQUFJLE9BQUEsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBaEIsQ0FBZ0I7SUFDMUIsR0FBRyxFQUFFLFVBQUEsQ0FBQyxJQUFJLE9BQUEsT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFyQixDQUFxQjtJQUMvQixHQUFHLEVBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxPQUFPLENBQUMsS0FBSyxVQUFVLEVBQXZCLENBQXVCO0NBQ2xDLENBQUM7QUFFRixNQUFNLENBQUMscUJBQU0sZUFBZSxHQUFHLFVBQUEsR0FBRztJQUNoQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztDQUM5RCxDQUFDO0FBRUYsTUFBTSxDQUFDLHFCQUFNLFdBQVcsR0FBRyxVQUFDLEVBQUUsRUFBRSxJQUFJO0lBQ2xDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNyQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO0tBQzVFO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxxQkFBTSxDQUFDLEdBQUcsV0FBVyxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxxQkFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztBQUVsRixNQUFNLENBQUMscUJBQU0sSUFBSSxHQUFHLFVBQUEsS0FBSztJQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0NBQzFDLENBQUM7QUFFRixNQUFNLENBQUMscUJBQU0sVUFBVSxHQUFHLFVBQUEsT0FBTztJQUMvQixNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0NBQ3BFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgaXMgPSB7XG4gIGFycjogYSA9PiBBcnJheS5pc0FycmF5KGEpLFxuICBzdHI6IGEgPT4gdHlwZW9mIGEgPT09ICdzdHJpbmcnLFxuICBmbmM6IGEgPT4gdHlwZW9mIGEgPT09ICdmdW5jdGlvbidcbn07XG5cbmV4cG9ydCBjb25zdCBzdHJpbmdUb0h5cGhlbnMgPSBzdHIgPT4ge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csICckMS0kMicpLnRvTG93ZXJDYXNlKCk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q1NTVmFsdWUgPSAoZWwsIHByb3ApID0+IHtcbiAgaWYgKHByb3AgaW4gZWwuc3R5bGUpIHtcbiAgICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShlbCkuZ2V0UHJvcGVydHlWYWx1ZShzdHJpbmdUb0h5cGhlbnMocHJvcCkpIHx8ICcwJztcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHQgPSAndHJhbnNmb3JtJztcbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1TdHJpbmcgPSBnZXRDU1NWYWx1ZShkb2N1bWVudC5ib2R5LCB0KSA/IHQgOiAnLXdlYmtpdC0nICsgdDtcblxuZXhwb3J0IGNvbnN0IHJhbmQgPSB2YWx1ZSA9PiB7XG4gIHJldHVybiBNYXRoLnJhbmRvbSgpICogdmFsdWUgLSB2YWx1ZSAvIDI7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RWxlbWVudCA9IGVsZW1lbnQgPT4ge1xuICByZXR1cm4gaXMuc3RyKGVsZW1lbnQpID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlbGVtZW50KSA6IGVsZW1lbnQ7XG59O1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24vIiwic291cmNlcyI6WyJsaWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxNQUFNLEtBQU8sRUFBRSxHQUFHO0lBQ2hCLEdBQUcsRUFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQWhCLENBQWdCO0lBQzFCLEdBQUcsRUFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBckIsQ0FBcUI7SUFDL0IsR0FBRyxFQUFFLFVBQUEsQ0FBQyxJQUFJLE9BQUEsT0FBTyxDQUFDLEtBQUssVUFBVSxFQUF2QixDQUF1QjtDQUNsQzs7QUFFRCxNQUFNLEtBQU8sZUFBZSxHQUFHLFVBQUEsR0FBRztJQUNoQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDL0QsQ0FBQzs7QUFFRCxNQUFNLEtBQU8sV0FBVyxHQUFHLFVBQUMsRUFBRSxFQUFFLElBQUk7SUFDbEMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRTtRQUNwQixPQUFPLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQztLQUM1RTtBQUNILENBQUM7O0FBRUQsTUFBTSxLQUFPLENBQUMsR0FBRyxXQUFXOztBQUM1QixNQUFNLEtBQU8sZUFBZSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDOztBQUVqRixNQUFNLEtBQU8sSUFBSSxHQUFHLFVBQUEsS0FBSztJQUN2QixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxLQUFLLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUMzQyxDQUFDOztBQUVELE1BQU0sS0FBTyxVQUFVLEdBQUcsVUFBQSxPQUFPO0lBQy9CLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgaXMgPSB7XG4gIGFycjogYSA9PiBBcnJheS5pc0FycmF5KGEpLFxuICBzdHI6IGEgPT4gdHlwZW9mIGEgPT09ICdzdHJpbmcnLFxuICBmbmM6IGEgPT4gdHlwZW9mIGEgPT09ICdmdW5jdGlvbidcbn07XG5cbmV4cG9ydCBjb25zdCBzdHJpbmdUb0h5cGhlbnMgPSBzdHIgPT4ge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csICckMS0kMicpLnRvTG93ZXJDYXNlKCk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q1NTVmFsdWUgPSAoZWwsIHByb3ApID0+IHtcbiAgaWYgKHByb3AgaW4gZWwuc3R5bGUpIHtcbiAgICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShlbCkuZ2V0UHJvcGVydHlWYWx1ZShzdHJpbmdUb0h5cGhlbnMocHJvcCkpIHx8ICcwJztcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHQgPSAndHJhbnNmb3JtJztcbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1TdHJpbmcgPSBnZXRDU1NWYWx1ZShkb2N1bWVudC5ib2R5LCB0KSA/IHQgOiAnLXdlYmtpdC0nICsgdDtcblxuZXhwb3J0IGNvbnN0IHJhbmQgPSB2YWx1ZSA9PiB7XG4gIHJldHVybiBNYXRoLnJhbmRvbSgpICogdmFsdWUgLSB2YWx1ZSAvIDI7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RWxlbWVudCA9IGVsZW1lbnQgPT4ge1xuICByZXR1cm4gaXMuc3RyKGVsZW1lbnQpID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlbGVtZW50KSA6IGVsZW1lbnQ7XG59O1xuIl19
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -10,3 +10,2 @@ /*

export { ParticleEffectButtonModule } from './lib/angular-particle-effect-button.module';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcGFydGljbGUtZWZmZWN0LWJ1dHRvbi8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLDhDQUFjLGdEQUFnRCxDQUFDO0FBQy9ELDJDQUFjLDZDQUE2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b25cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXItcGFydGljbGUtZWZmZWN0LWJ1dHRvbi5tb2R1bGUnO1xuIl19

@@ -6,5 +6,6 @@ import anime from 'animejs';

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
const /** @type {?} */ is = {
/** @type {?} */
const is = {
arr: a => Array.isArray(a),

@@ -14,6 +15,8 @@ str: a => typeof a === 'string',

};
const /** @type {?} */ stringToHyphens = str => {
/** @type {?} */
const stringToHyphens = str => {
return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
};
const /** @type {?} */ getCSSValue = (el, prop) => {
/** @type {?} */
const getCSSValue = (el, prop) => {
if (prop in el.style) {

@@ -23,5 +26,8 @@ return getComputedStyle(el).getPropertyValue(stringToHyphens(prop)) || '0';

};
const /** @type {?} */ t = 'transform';
const /** @type {?} */ transformString = getCSSValue(document.body, t) ? t : '-webkit-' + t;
const /** @type {?} */ rand = value => {
/** @type {?} */
const t = 'transform';
/** @type {?} */
const transformString = getCSSValue(document.body, t) ? t : '-webkit-' + t;
/** @type {?} */
const rand = value => {
return Math.random() * value - value / 2;

@@ -32,3 +38,3 @@ };

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -96,4 +102,5 @@ class Particles {

updateParticles() {
let /** @type {?} */ p;
for (let /** @type {?} */ i = 0; i < this.particles.length; i++) {
/** @type {?} */
let p;
for (let i = 0; i < this.particles.length; i++) {
p = this.particles[i];

@@ -123,4 +130,5 @@ if (p.life > p.death) {

this.ctx.clearRect(0, 0, this.width, this.height);
let /** @type {?} */ p;
for (let /** @type {?} */ i = 0; i < this.particles.length; i++) {
/** @type {?} */
let p;
for (let i = 0; i < this.particles.length; i++) {
p = this.particles[i];

@@ -177,6 +185,8 @@ if (p.life < p.death) {

addParticle(options) {
const /** @type {?} */ frames = this.o.duration * 60 / 1000;
const /** @type {?} */ speed = /** @type {?} */ ((is.fnc(this.o.speed)
/** @type {?} */
const frames = this.o.duration * 60 / 1000;
/** @type {?} */
const speed = (/** @type {?} */ ((is.fnc(this.o.speed)
? this.o.speed()
: this.o.speed));
: this.o.speed)));
this.particles.push({

@@ -202,9 +212,13 @@ startX: options.x,

addParticles(rect, progress) {
const /** @type {?} */ progressDiff = this.disintegrating
/** @type {?} */
const progressDiff = this.disintegrating
? progress - this.lastProgress
: this.lastProgress - progress;
this.lastProgress = progress;
let /** @type {?} */ x = this.options.canvasPadding;
let /** @type {?} */ y = this.options.canvasPadding;
const /** @type {?} */ progressValue = (this.isHorizontal() ? rect.width : rect.height) * progress +
/** @type {?} */
let x = this.options.canvasPadding;
/** @type {?} */
let y = this.options.canvasPadding;
/** @type {?} */
const progressValue = (this.isHorizontal() ? rect.width : rect.height) * progress +
progressDiff * (this.disintegrating ? 100 : 220);

@@ -223,3 +237,4 @@ if (this.isHorizontal()) {

}
let /** @type {?} */ i = Math.floor(this.o.particlesAmountCoefficient * (progressDiff * 100 + 1));
/** @type {?} */
let i = Math.floor(this.o.particlesAmountCoefficient * (progressDiff * 100 + 1));
if (i > 0) {

@@ -243,4 +258,6 @@ while (i--) {

addTransforms(value) {
const /** @type {?} */ translateProperty = this.isHorizontal() ? 'translateX' : 'translateY';
const /** @type {?} */ translateValue = this.o.direction === 'left' || this.o.direction === 'top'
/** @type {?} */
const translateProperty = this.isHorizontal() ? 'translateX' : 'translateY';
/** @type {?} */
const translateValue = this.o.direction === 'left' || this.o.direction === 'top'
? value

@@ -260,5 +277,7 @@ : -value;

this.setup(options);
const /** @type {?} */ _ = this;
/** @type {?} */
const _ = this;
this.animate(anim => {
const /** @type {?} */ value = anim.animatables[0].target.value;
/** @type {?} */
const value = anim.animatables[0].target.value;
_.addTransforms(value);

@@ -280,5 +299,7 @@ if (_.o.duration) {

this.setup(options);
const /** @type {?} */ _ = this;
/** @type {?} */
const _ = this;
this.animate(anim => {
const /** @type {?} */ value = anim.animatables[0].target.value;
/** @type {?} */
const value = anim.animatables[0].target.value;
setTimeout(() => {

@@ -319,3 +340,4 @@ _.addTransforms(value);

animate(update) {
const /** @type {?} */ _ = this;
/** @type {?} */
const _ = this;
anime({

@@ -351,3 +373,3 @@ targets: { value: _.disintegrating ? 0 : 100 },

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -403,4 +425,8 @@ class ParticleEffectButtonDirective {

this._particles = new Particles(this.el.nativeElement, this.getFormattedOptions(), this.renderer);
if (this._pHidden) {
this._particles.disintegrate({ duration: 0 });
}
}
/**
* @private
* @return {?}

@@ -454,3 +480,4 @@ */

set pOptions(options) {
const /** @type {?} */ allowedProps = this.pOptions;
/** @type {?} */
const allowedProps = this.pOptions;
Object.keys(options).map(key => {

@@ -466,3 +493,3 @@ if (allowedProps[key]) {

selector: '[libParticleEffectButton]'
},] },
},] }
];

@@ -493,3 +520,3 @@ /** @nocollapse */

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -502,3 +529,3 @@ class ParticleEffectButtonModule {

exports: [ParticleEffectButtonDirective]
},] },
},] }
];

@@ -508,3 +535,3 @@

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -514,3 +541,3 @@

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -520,2 +547,2 @@

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24vbGliL3V0aWxzLnRzIiwibmc6Ly9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24vbGliL3BhcnRpY2xlcy50cyIsIm5nOi8vYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uL2xpYi9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24uZGlyZWN0aXZlLnRzIiwibmc6Ly9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24vbGliL2FuZ3VsYXItcGFydGljbGUtZWZmZWN0LWJ1dHRvbi5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzID0ge1xuICBhcnI6IGEgPT4gQXJyYXkuaXNBcnJheShhKSxcbiAgc3RyOiBhID0+IHR5cGVvZiBhID09PSAnc3RyaW5nJyxcbiAgZm5jOiBhID0+IHR5cGVvZiBhID09PSAnZnVuY3Rpb24nXG59O1xuXG5leHBvcnQgY29uc3Qgc3RyaW5nVG9IeXBoZW5zID0gc3RyID0+IHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCAnJDEtJDInKS50b0xvd2VyQ2FzZSgpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENTU1ZhbHVlID0gKGVsLCBwcm9wKSA9PiB7XG4gIGlmIChwcm9wIGluIGVsLnN0eWxlKSB7XG4gICAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZWwpLmdldFByb3BlcnR5VmFsdWUoc3RyaW5nVG9IeXBoZW5zKHByb3ApKSB8fCAnMCc7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB0ID0gJ3RyYW5zZm9ybSc7XG5leHBvcnQgY29uc3QgdHJhbnNmb3JtU3RyaW5nID0gZ2V0Q1NTVmFsdWUoZG9jdW1lbnQuYm9keSwgdCkgPyB0IDogJy13ZWJraXQtJyArIHQ7XG5cbmV4cG9ydCBjb25zdCByYW5kID0gdmFsdWUgPT4ge1xuICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIHZhbHVlIC0gdmFsdWUgLyAyO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnQgPSBlbGVtZW50ID0+IHtcbiAgcmV0dXJuIGlzLnN0cihlbGVtZW50KSA/IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZWxlbWVudCkgOiBlbGVtZW50O1xufTtcbiIsImltcG9ydCBhbmltZSBmcm9tICdhbmltZWpzJzsgLy8gdHNsaW50OmRpc2FibGUtbGluZVxuXG5pbXBvcnQgeyBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJhbmQsIGlzLCBzdHJpbmdUb0h5cGhlbnMsIGdldENTU1ZhbHVlLCB0cmFuc2Zvcm1TdHJpbmcsIGdldEVsZW1lbnQgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uIHtcbiAgY29sb3I/OiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIHN0eWxlPzogc3RyaW5nO1xuICBjYW52YXNQYWRkaW5nPzogbnVtYmVyO1xuICBkdXJhdGlvbj86IG51bWJlcjtcbiAgZWFzaW5nPzogQXJyYXk8bnVtYmVyPiB8IHN0cmluZztcbiAgZGlyZWN0aW9uPzogc3RyaW5nO1xuICBzaXplPzogKCkgPT4gbnVtYmVyIHwgbnVtYmVyO1xuICBzcGVlZD86ICgpID0+IG51bWJlciB8IG51bWJlcjtcbiAgcGFydGljbGVzQW1vdW50Q29lZmZpY2llbnQ/OiBudW1iZXI7XG4gIG9zY2lsbGF0aW9uQ29lZmZpY2llbnQ/OiBudW1iZXI7XG4gIGJlZ2luPzogKCkgPT4gdm9pZDtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbiAgY29tcGxldGU/OiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgUGFydGljbGVzIHtcbiAgcGFydGljbGVzID0gW107XG4gIGZyYW1lID0gbnVsbDtcbiAgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudDtcbiAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XG4gIHdyYXBwZXI6IEhUTUxEaXZFbGVtZW50O1xuICBwYXJlbnRXcmFwcGVyOiBIVE1MRGl2RWxlbWVudDtcbiAgbzogSU9wdGlvbjtcbiAgZGlzaW50ZWdyYXRpbmc6IGJvb2xlYW47XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBsYXN0UHJvZ3Jlc3M6IG51bWJlcjtcbiAgcmVjdDogSFRNTENhbnZhc0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWw6IGFueSxcbiAgICBwcml2YXRlIG9wdGlvbnM6IElPcHRpb24sXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICAgIHRoaXMub3B0aW9ucyA9IHsgLi4ub3B0aW9ucyB9O1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgaW5pdCgpOiB2b2lkIHtcbiAgIHRoaXMuY2FudmFzID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICB0aGlzLmN0eCA9IHRoaXMuY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhbnZhcywgJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhbnZhcywgJ3BvaW50ZXJFdmVudHMnLCAnbm9uZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jYW52YXMsICd0b3AnLCAnNTAlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhbnZhcywgJ2xlZnQnLCAnNTAlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhbnZhcywgJ3RyYW5zZm9ybScsICd0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jYW52YXMsICdkaXNwbGF5JywgJ25vbmUnKTtcbiAgICB0aGlzLndyYXBwZXIgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy53cmFwcGVyLCAncG9zaXRpb24nLCAncmVsYXRpdmUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMud3JhcHBlciwgJ2Rpc3BsYXknLCAnaW5saW5lLWJsb2NrJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLndyYXBwZXIsICdvdmVyZmxvdycsICdoaWRkZW4nKTtcbiAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZSh0aGlzLmVsLnBhcmVudE5vZGUsIHRoaXMud3JhcHBlciwgdGhpcy5lbCk7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLndyYXBwZXIsIHRoaXMuZWwpO1xuICAgIHRoaXMucGFyZW50V3JhcHBlciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnBhcmVudFdyYXBwZXIsICdwb3NpdGlvbicsICdyZWxhdGl2ZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wYXJlbnRXcmFwcGVyLCAnZGlzcGxheScsICdpbmxpbmUtYmxvY2snKTtcbiAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShcbiAgICAgIHRoaXMud3JhcHBlci5wYXJlbnROb2RlLFxuICAgICAgdGhpcy5wYXJlbnRXcmFwcGVyLFxuICAgICAgdGhpcy53cmFwcGVyXG4gICAgKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMucGFyZW50V3JhcHBlciwgdGhpcy53cmFwcGVyKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMucGFyZW50V3JhcHBlciwgdGhpcy5jYW52YXMpO1xuICB9XG5cbiAgc2V0T3B0aW9ucyhvcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgfVxuICBsb29wKCkge1xuICAgIHRoaXMudXBkYXRlUGFydGljbGVzKCk7XG4gICAgdGhpcy5yZW5kZXJQYXJ0aWNsZXMoKTtcbiAgICBpZiAodGhpcy5pc0FuaW1hdGluZygpKSB7XG4gICAgICB0aGlzLmZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMubG9vcC5iaW5kKHRoaXMpKTtcbiAgICB9XG4gIH1cbiAgdXBkYXRlUGFydGljbGVzKCkge1xuICAgIGxldCBwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXJ0aWNsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHAgPSB0aGlzLnBhcnRpY2xlc1tpXTtcbiAgICAgIGlmIChwLmxpZmUgPiBwLmRlYXRoKSB7XG4gICAgICAgIHRoaXMucGFydGljbGVzLnNwbGljZShpLCAxKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHAueCArPSBwLnNwZWVkO1xuICAgICAgICBwLnkgPSB0aGlzLm8ub3NjaWxsYXRpb25Db2VmZmljaWVudCAqIE1hdGguc2luKHAuY291bnRlciAqIHAuaW5jcmVhc2UpO1xuICAgICAgICBwLmxpZmUrKztcbiAgICAgICAgcC5jb3VudGVyICs9IHRoaXMuZGlzaW50ZWdyYXRpbmcgPyAxIDogLTE7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghdGhpcy5wYXJ0aWNsZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnBhdXNlKCk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAnZGlzcGxheScsICdub25lJyk7XG4gICAgICBpZiAoaXMuZm5jKHRoaXMuby5jb21wbGV0ZSkpIHtcbiAgICAgICAgdGhpcy5vLmNvbXBsZXRlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJlbmRlclBhcnRpY2xlcygpIHtcbiAgICB0aGlzLmN0eC5jbGVhclJlY3QoMCwgMCwgdGhpcy53aWR0aCwgdGhpcy5oZWlnaHQpO1xuICAgIGxldCBwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXJ0aWNsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHAgPSB0aGlzLnBhcnRpY2xlc1tpXTtcbiAgICAgIGlmIChwLmxpZmUgPCBwLmRlYXRoKSB7XG4gICAgICAgIHRoaXMuY3R4LnRyYW5zbGF0ZShwLnN0YXJ0WCwgcC5zdGFydFkpO1xuICAgICAgICB0aGlzLmN0eC5yb3RhdGUocC5hbmdsZSAqIE1hdGguUEkgLyAxODApO1xuICAgICAgICB0aGlzLmN0eC5nbG9iYWxBbHBoYSA9IHRoaXMuZGlzaW50ZWdyYXRpbmdcbiAgICAgICAgICA/IDEgLSBwLmxpZmUgLyBwLmRlYXRoXG4gICAgICAgICAgOiBwLmxpZmUgLyBwLmRlYXRoO1xuICAgICAgICB0aGlzLmN0eC5maWxsU3R5bGUgPSB0aGlzLmN0eC5zdHJva2VTdHlsZSA9IHRoaXMuby5jb2xvcjtcbiAgICAgICAgdGhpcy5jdHguYmVnaW5QYXRoKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuby50eXBlID09PSAnY2lyY2xlJykge1xuICAgICAgICAgIHRoaXMuY3R4LmFyYyhwLngsIHAueSwgcC5zaXplLCAwLCAyICogTWF0aC5QSSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5vLnR5cGUgPT09ICd0cmlhbmdsZScpIHtcbiAgICAgICAgICB0aGlzLmN0eC5tb3ZlVG8ocC54LCBwLnkpO1xuICAgICAgICAgIHRoaXMuY3R4LmxpbmVUbyhwLnggKyBwLnNpemUsIHAueSArIHAuc2l6ZSk7XG4gICAgICAgICAgdGhpcy5jdHgubGluZVRvKHAueCArIHAuc2l6ZSwgcC55IC0gcC5zaXplKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm8udHlwZSA9PT0gJ3JlY3RhbmdsZScpIHtcbiAgICAgICAgICB0aGlzLmN0eC5yZWN0KHAueCwgcC55LCBwLnNpemUsIHAuc2l6ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vLnN0eWxlID09PSAnZmlsbCcpIHtcbiAgICAgICAgICB0aGlzLmN0eC5maWxsKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5vLnN0eWxlID09PSAnc3Ryb2tlJykge1xuICAgICAgICAgIHRoaXMuY3R4LmNsb3NlUGF0aCgpO1xuICAgICAgICAgIHRoaXMuY3R4LnN0cm9rZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdHguZ2xvYmFsQWxwaGEgPSAxO1xuICAgICAgICB0aGlzLmN0eC5yb3RhdGUoLXAuYW5nbGUgKiBNYXRoLlBJIC8gMTgwKTtcbiAgICAgICAgdGhpcy5jdHgudHJhbnNsYXRlKC1wLnN0YXJ0WCwgLXAuc3RhcnRZKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcGxheSgpIHtcbiAgICB0aGlzLmZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMubG9vcC5iaW5kKHRoaXMpKTtcbiAgfVxuICBwYXVzZSgpIHtcbiAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmZyYW1lKTtcbiAgICB0aGlzLmZyYW1lID0gbnVsbDtcbiAgfVxuICBhZGRQYXJ0aWNsZShvcHRpb25zKSB7XG4gICAgY29uc3QgZnJhbWVzID0gdGhpcy5vLmR1cmF0aW9uICogNjAgLyAxMDAwO1xuICAgIGNvbnN0IHNwZWVkOiBudW1iZXIgPSAoaXMuZm5jKHRoaXMuby5zcGVlZClcbiAgICAgID8gdGhpcy5vLnNwZWVkKClcbiAgICAgIDogdGhpcy5vLnNwZWVkKSBhcyBudW1iZXI7XG4gICAgdGhpcy5wYXJ0aWNsZXMucHVzaCh7XG4gICAgICBzdGFydFg6IG9wdGlvbnMueCxcbiAgICAgIHN0YXJ0WTogb3B0aW9ucy55LFxuICAgICAgeDogdGhpcy5kaXNpbnRlZ3JhdGluZyA/IDAgOiBzcGVlZCAqIC1mcmFtZXMsXG4gICAgICB5OiAwLFxuICAgICAgYW5nbGU6IHJhbmQoMzYwKSxcbiAgICAgIGNvdW50ZXI6IHRoaXMuZGlzaW50ZWdyYXRpbmcgPyAwIDogZnJhbWVzLFxuICAgICAgaW5jcmVhc2U6IE1hdGguUEkgKiAyIC8gMTAwLFxuICAgICAgbGlmZTogMCxcbiAgICAgIGRlYXRoOiB0aGlzLmRpc2ludGVncmF0aW5nID8gZnJhbWVzIC0gMjAgKyBNYXRoLnJhbmRvbSgpICogNDAgOiBmcmFtZXMsXG4gICAgICBzcGVlZDogc3BlZWQsXG4gICAgICBzaXplOiBpcy5mbmModGhpcy5vLnNpemUpID8gdGhpcy5vLnNpemUoKSA6IHRoaXMuby5zaXplXG4gICAgfSk7XG4gIH1cbiAgYWRkUGFydGljbGVzKHJlY3Q6IGFueSwgcHJvZ3Jlc3MpIHtcbiAgICBjb25zdCBwcm9ncmVzc0RpZmYgPSB0aGlzLmRpc2ludGVncmF0aW5nXG4gICAgICA/IHByb2dyZXNzIC0gdGhpcy5sYXN0UHJvZ3Jlc3NcbiAgICAgIDogdGhpcy5sYXN0UHJvZ3Jlc3MgLSBwcm9ncmVzcztcbiAgICB0aGlzLmxhc3RQcm9ncmVzcyA9IHByb2dyZXNzO1xuICAgIGxldCB4ID0gdGhpcy5vcHRpb25zLmNhbnZhc1BhZGRpbmc7XG4gICAgbGV0IHkgPSB0aGlzLm9wdGlvbnMuY2FudmFzUGFkZGluZztcbiAgICBjb25zdCBwcm9ncmVzc1ZhbHVlID1cbiAgICAgICh0aGlzLmlzSG9yaXpvbnRhbCgpID8gcmVjdC53aWR0aCA6IHJlY3QuaGVpZ2h0KSAqIHByb2dyZXNzICtcbiAgICAgIHByb2dyZXNzRGlmZiAqICh0aGlzLmRpc2ludGVncmF0aW5nID8gMTAwIDogMjIwKTtcbiAgICBpZiAodGhpcy5pc0hvcml6b250YWwoKSkge1xuICAgICAgeCArPVxuICAgICAgICB0aGlzLm8uZGlyZWN0aW9uID09PSAnbGVmdCdcbiAgICAgICAgICA/IHByb2dyZXNzVmFsdWVcbiAgICAgICAgICA6IHJlY3Qud2lkdGggLSBwcm9ncmVzc1ZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB5ICs9XG4gICAgICAgIHRoaXMuby5kaXJlY3Rpb24gPT09ICd0b3AnXG4gICAgICAgICAgPyBwcm9ncmVzc1ZhbHVlXG4gICAgICAgICAgOiByZWN0LmhlaWdodCAtIHByb2dyZXNzVmFsdWU7XG4gICAgfVxuICAgIGxldCBpID0gTWF0aC5mbG9vcihcbiAgICAgIHRoaXMuby5wYXJ0aWNsZXNBbW91bnRDb2VmZmljaWVudCAqIChwcm9ncmVzc0RpZmYgKiAxMDAgKyAxKVxuICAgICk7XG4gICAgaWYgKGkgPiAwKSB7XG4gICAgICB3aGlsZSAoaS0tKSB7XG4gICAgICAgIHRoaXMuYWRkUGFydGljbGUoe1xuICAgICAgICAgIHg6IHggKyAodGhpcy5pc0hvcml6b250YWwoKSA/IDAgOiByZWN0LndpZHRoICogTWF0aC5yYW5kb20oKSksXG4gICAgICAgICAgeTogeSArICh0aGlzLmlzSG9yaXpvbnRhbCgpID8gcmVjdC5oZWlnaHQgKiBNYXRoLnJhbmRvbSgpIDogMClcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghdGhpcy5pc0FuaW1hdGluZygpKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAnZGlzcGxheScsICdibG9jaycpO1xuICAgICAgdGhpcy5wbGF5KCk7XG4gICAgfVxuICB9XG4gIGFkZFRyYW5zZm9ybXModmFsdWUpIHtcbiAgICBjb25zdCB0cmFuc2xhdGVQcm9wZXJ0eSA9IHRoaXMuaXNIb3Jpem9udGFsKCkgPyAndHJhbnNsYXRlWCcgOiAndHJhbnNsYXRlWSc7XG4gICAgY29uc3QgdHJhbnNsYXRlVmFsdWUgPVxuICAgICAgdGhpcy5vLmRpcmVjdGlvbiA9PT0gJ2xlZnQnIHx8IHRoaXMuby5kaXJlY3Rpb24gPT09ICd0b3AnXG4gICAgICAgID8gdmFsdWVcbiAgICAgICAgOiAtdmFsdWU7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLndyYXBwZXIsIHRyYW5zZm9ybVN0cmluZywgYCR7dHJhbnNsYXRlUHJvcGVydHl9KCR7dHJhbnNsYXRlVmFsdWV9JSlgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwsIHRyYW5zZm9ybVN0cmluZywgYCR7dHJhbnNsYXRlUHJvcGVydHl9KCR7LXRyYW5zbGF0ZVZhbHVlfSUpYCk7XG4gIH1cbiAgZGlzaW50ZWdyYXRlKG9wdGlvbnM6IElPcHRpb24gPSB7fSkge1xuICAgIGlmICghdGhpcy5pc0FuaW1hdGluZygpKSB7XG4gICAgICB0aGlzLmRpc2ludGVncmF0aW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMubGFzdFByb2dyZXNzID0gMDtcbiAgICAgIHRoaXMuc2V0dXAob3B0aW9ucyk7XG4gICAgICBjb25zdCBfID0gdGhpcztcbiAgICAgIHRoaXMuYW5pbWF0ZShhbmltID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBhbmltLmFuaW1hdGFibGVzWzBdLnRhcmdldC52YWx1ZTtcbiAgICAgICAgXy5hZGRUcmFuc2Zvcm1zKHZhbHVlKTtcbiAgICAgICAgaWYgKF8uby5kdXJhdGlvbikge1xuICAgICAgICAgIF8uYWRkUGFydGljbGVzKF8ucmVjdCwgdmFsdWUgLyAxMDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgaW50ZWdyYXRlKG9wdGlvbnM6IElPcHRpb24gPSB7fSkge1xuICAgIGlmICghdGhpcy5pc0FuaW1hdGluZygpKSB7XG4gICAgICB0aGlzLmRpc2ludGVncmF0aW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmxhc3RQcm9ncmVzcyA9IDE7XG4gICAgICB0aGlzLnNldHVwKG9wdGlvbnMpO1xuICAgICAgY29uc3QgXyA9IHRoaXM7XG4gICAgICB0aGlzLmFuaW1hdGUoYW5pbSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gYW5pbS5hbmltYXRhYmxlc1swXS50YXJnZXQudmFsdWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIF8uYWRkVHJhbnNmb3Jtcyh2YWx1ZSk7XG4gICAgICAgIH0sIF8uby5kdXJhdGlvbik7XG4gICAgICAgIGlmIChfLm8uZHVyYXRpb24pIHtcbiAgICAgICAgICBfLmFkZFBhcnRpY2xlcyhfLnJlY3QsIHZhbHVlIC8gMTAwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHNldHVwKG9wdGlvbnMpIHtcbiAgICB0aGlzLm8gPSB7IC4uLnRoaXMub3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy53cmFwcGVyLCAndmlzaWJpbGl0eScsICd2aXNpYmxlJyk7XG4gICAgaWYgKHRoaXMuby5kdXJhdGlvbikge1xuICAgICAgdGhpcy5yZWN0ID0gdGhpcy5lbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHRoaXMud2lkdGggPSB0aGlzLmNhbnZhcy53aWR0aCA9XG4gICAgICAgIHRoaXMuby53aWR0aCB8fCB0aGlzLnJlY3Qud2lkdGggKyB0aGlzLm8uY2FudmFzUGFkZGluZyAqIDI7XG4gICAgICB0aGlzLmhlaWdodCA9IHRoaXMuY2FudmFzLmhlaWdodCA9XG4gICAgICAgIHRoaXMuby5oZWlnaHQgfHwgdGhpcy5yZWN0LmhlaWdodCArIHRoaXMuby5jYW52YXNQYWRkaW5nICogMjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNEaXNpbnRlZ3JhdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmRpc2ludGVncmF0aW5nO1xuICB9XG4gIGFuaW1hdGUodXBkYXRlKSB7XG4gICAgY29uc3QgXyA9IHRoaXM7XG4gICAgYW5pbWUoe1xuICAgICAgdGFyZ2V0czogeyB2YWx1ZTogXy5kaXNpbnRlZ3JhdGluZyA/IDAgOiAxMDAgfSxcbiAgICAgIHZhbHVlOiBfLmRpc2ludGVncmF0aW5nID8gMTAwIDogMCxcbiAgICAgIGR1cmF0aW9uOiBfLm8uZHVyYXRpb24sXG4gICAgICBlYXNpbmc6IF8uby5lYXNpbmcsXG4gICAgICBiZWdpbjogXy5vLmJlZ2luLFxuICAgICAgdXBkYXRlOiB1cGRhdGUsXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICBpZiAoXy5kaXNpbnRlZ3JhdGluZykge1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXy53cmFwcGVyLCAndmlzaWJpbGl0eScsICdoaWRkZW4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGlzQW5pbWF0aW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMuZnJhbWU7XG4gIH1cbiAgaXNIb3Jpem9udGFsKCkge1xuICAgIHJldHVybiB0aGlzLm8uZGlyZWN0aW9uID09PSAnbGVmdCcgfHwgdGhpcy5vLmRpcmVjdGlvbiA9PT0gJ3JpZ2h0JztcbiAgfVxufVxuXG5cbiIsImltcG9ydCB7XG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBEaXJlY3RpdmUsXG4gIEV2ZW50RW1pdHRlcixcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmFuZCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgUGFydGljbGVzLCBJT3B0aW9uIH0gZnJvbSAnLi9wYXJ0aWNsZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbGliUGFydGljbGVFZmZlY3RCdXR0b25dJ1xufSlcbmV4cG9ydCBjbGFzcyBQYXJ0aWNsZUVmZmVjdEJ1dHRvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBwcml2YXRlIF9wYXJ0aWNsZXM6IFBhcnRpY2xlcztcbiAgcHJpdmF0ZSBfcEhpZGRlbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwQ29sb3IgPSAnIzAwMCc7XG4gIEBJbnB1dCgpIHBEdXJhdGlvbiA9IDEwMDA7XG4gIEBJbnB1dCgpIHBFYXNpbmcgPSAnZWFzZUluT3V0Q3ViaWMnO1xuICBASW5wdXQoKSBwVHlwZSA9ICdjaXJjbGUnO1xuICBASW5wdXQoKSBwU3R5bGUgPSAnZmlsbCc7XG4gIEBJbnB1dCgpIHBEaXJlY3Rpb24gPSAnbGVmdCc7XG4gIEBJbnB1dCgpIHBDYW52YXNQYWRkaW5nID0gMTUwO1xuICBASW5wdXQoKSBwT3NjaWxsYXRpb25Db2VmZmljaWVudCA9IDMwO1xuICBASW5wdXQoKSBwUGFydGljbGVzQW1vdW50Q29lZmZpY2llbnQgPSAzO1xuICBAT3V0cHV0KCkgcEJlZ2luID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcENvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBASW5wdXQoKSBwU2l6ZTogKCkgPT4gbnVtYmVyIHwgbnVtYmVyID0gKCkgPT4gTWF0aC5mbG9vcigoTWF0aC5yYW5kb20oKSAqIDMpICsgMSk7XG4gIEBJbnB1dCgpIHBTcGVlZDogKCkgPT4gbnVtYmVyIHwgbnVtYmVyID0gKCkgPT4gcmFuZCg0KTtcblxuICBASW5wdXQoJ3BIaWRkZW4nKVxuICBzZXQgcEhpZGRlbih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3BIaWRkZW4gPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5fcGFydGljbGVzKSB7XG4gICAgICBpZiAodmFsdWUgJiYgIXRoaXMuX3BhcnRpY2xlcy5pc0Rpc2ludGVncmF0ZWQoKSkge1xuICAgICAgICAgdGhpcy5fcGFydGljbGVzLmRpc2ludGVncmF0ZSh0aGlzLmdldEZvcm1hdHRlZE9wdGlvbnMoKSk7XG4gICAgICB9IGVsc2UgaWYgKCF2YWx1ZSAmJiB0aGlzLl9wYXJ0aWNsZXMuaXNEaXNpbnRlZ3JhdGVkKCkpIHtcbiAgICAgICAgIHRoaXMuX3BhcnRpY2xlcy5pbnRlZ3JhdGUodGhpcy5nZXRGb3JtYXR0ZWRPcHRpb25zKCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBnZXQgcEhpZGRlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcEhpZGRlbjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5fcGFydGljbGVzID0gbmV3IFBhcnRpY2xlcyhcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudCxcbiAgICAgIHRoaXMuZ2V0Rm9ybWF0dGVkT3B0aW9ucygpLFxuICAgICAgdGhpcy5yZW5kZXJlclxuICAgICk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRGb3JtYXR0ZWRPcHRpb25zKCk6IElPcHRpb24ge1xuICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcjogdGhpcy5wQ29sb3IsXG4gICAgICAgIHR5cGU6IHRoaXMucFR5cGUsXG4gICAgICAgIHN0eWxlOiB0aGlzLnBTdHlsZSxcbiAgICAgICAgY2FudmFzUGFkZGluZzogdGhpcy5wQ2FudmFzUGFkZGluZyxcbiAgICAgICAgZHVyYXRpb246IHRoaXMucER1cmF0aW9uLFxuICAgICAgICBlYXNpbmc6IHRoaXMucEVhc2luZyxcbiAgICAgICAgZGlyZWN0aW9uOiB0aGlzLnBEaXJlY3Rpb24sXG4gICAgICAgIHNpemU6IHRoaXMucFNpemUsXG4gICAgICAgIHNwZWVkOiB0aGlzLnBTcGVlZCxcbiAgICAgICAgcGFydGljbGVzQW1vdW50Q29lZmZpY2llbnQ6IHRoaXMucFBhcnRpY2xlc0Ftb3VudENvZWZmaWNpZW50LFxuICAgICAgICBvc2NpbGxhdGlvbkNvZWZmaWNpZW50OiB0aGlzLnBPc2NpbGxhdGlvbkNvZWZmaWNpZW50LFxuICAgICAgICBiZWdpbjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMucEJlZ2luLmVtaXQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnBDb21wbGV0ZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9O1xuICB9XG4gIHB1YmxpYyBnZXQgcE9wdGlvbnMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwQ29sb3I6IHRoaXMucENvbG9yLFxuICAgICAgICBwVHlwZTogdGhpcy5wVHlwZSxcbiAgICAgICAgcFN0eWxlOiB0aGlzLnBTdHlsZSxcbiAgICAgICAgcENhbnZhc1BhZGRpbmc6IHRoaXMucENhbnZhc1BhZGRpbmcsXG4gICAgICAgIHBEdXJhdGlvbjogdGhpcy5wRHVyYXRpb24sXG4gICAgICAgIHBFYXNpbmc6IHRoaXMucEVhc2luZyxcbiAgICAgICAgcERpcmVjdGlvbjogdGhpcy5wRGlyZWN0aW9uLFxuICAgICAgICBwU2l6ZTogdGhpcy5wU2l6ZSxcbiAgICAgICAgcFNwZWVkOiB0aGlzLnBTcGVlZCxcbiAgICAgICAgcFBhcnRpY2xlc0Ftb3VudENvZWZmaWNpZW50OiB0aGlzLnBQYXJ0aWNsZXNBbW91bnRDb2VmZmljaWVudCxcbiAgICAgICAgcE9zY2lsbGF0aW9uQ29lZmZpY2llbnQ6IHRoaXMucE9zY2lsbGF0aW9uQ29lZmZpY2llbnQsXG4gICAgICAgIHBCZWdpbjogdGhpcy5wQmVnaW4sXG4gICAgICAgIHBDb21wbGV0ZTogdGhpcy5wQ29tcGxldGVcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBzZXQgcE9wdGlvbnMob3B0aW9uczogYW55KSB7XG4gICAgY29uc3QgYWxsb3dlZFByb3BzID0gdGhpcy5wT3B0aW9ucztcbiAgICBPYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIGtleSA9PiB7XG4gICAgICBpZiAoYWxsb3dlZFByb3BzW2tleV0pIHtcbiAgICAgICAgdGhpc1trZXldID0gb3B0aW9uc1trZXldO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFydGljbGVFZmZlY3RCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuL2FuZ3VsYXItcGFydGljbGUtZWZmZWN0LWJ1dHRvbi5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtQYXJ0aWNsZUVmZmVjdEJ1dHRvbkRpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtQYXJ0aWNsZUVmZmVjdEJ1dHRvbkRpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgUGFydGljbGVFZmZlY3RCdXR0b25Nb2R1bGUgeyB9XG5cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsQUFBTyx1QkFBTSxFQUFFLEdBQUc7SUFDaEIsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMxQixHQUFHLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVE7SUFDL0IsR0FBRyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxVQUFVO0NBQ2xDLENBQUM7QUFFRixBQUFPLHVCQUFNLGVBQWUsR0FBRyxHQUFHO0lBQ2hDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztDQUM5RCxDQUFDO0FBRUYsQUFBTyx1QkFBTSxXQUFXLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSTtJQUNsQyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFO1FBQ3BCLE9BQU8sZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO0tBQzVFO0NBQ0YsQ0FBQztBQUVGLEFBQU8sdUJBQU0sQ0FBQyxHQUFHLFdBQVcsQ0FBQztBQUM3QixBQUFPLHVCQUFNLGVBQWUsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxHQUFHLENBQUMsQ0FBQztBQUVsRixBQUFPLHVCQUFNLElBQUksR0FBRyxLQUFLO0lBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0NBQzFDLENBQUM7Ozs7OztBQ3JCRjs7Ozs7O0lBb0NFLFlBQ1UsSUFDQSxTQUNBO1FBRkEsT0FBRSxHQUFGLEVBQUU7UUFDRixZQUFPLEdB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
//# sourceMappingURL=angular-particle-effect-button.js.map

@@ -7,5 +7,6 @@ import { __assign } from 'tslib';

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var /** @type {?} */ is = {
/** @type {?} */
var is = {
arr: function (a) { return Array.isArray(a); },

@@ -15,6 +16,8 @@ str: function (a) { return typeof a === 'string'; },

};
var /** @type {?} */ stringToHyphens = function (str) {
/** @type {?} */
var stringToHyphens = function (str) {
return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
};
var /** @type {?} */ getCSSValue = function (el, prop) {
/** @type {?} */
var getCSSValue = function (el, prop) {
if (prop in el.style) {

@@ -24,5 +27,8 @@ return getComputedStyle(el).getPropertyValue(stringToHyphens(prop)) || '0';

};
var /** @type {?} */ t = 'transform';
var /** @type {?} */ transformString = getCSSValue(document.body, t) ? t : '-webkit-' + t;
var /** @type {?} */ rand = function (value) {
/** @type {?} */
var t = 'transform';
/** @type {?} */
var transformString = getCSSValue(document.body, t) ? t : '-webkit-' + t;
/** @type {?} */
var rand = function (value) {
return Math.random() * value - value / 2;

@@ -33,3 +39,3 @@ };

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -105,4 +111,5 @@ var Particles = /** @class */ (function () {

function () {
var /** @type {?} */ p;
for (var /** @type {?} */ i = 0; i < this.particles.length; i++) {
/** @type {?} */
var p;
for (var i = 0; i < this.particles.length; i++) {
p = this.particles[i];

@@ -135,4 +142,5 @@ if (p.life > p.death) {

this.ctx.clearRect(0, 0, this.width, this.height);
var /** @type {?} */ p;
for (var /** @type {?} */ i = 0; i < this.particles.length; i++) {
/** @type {?} */
var p;
for (var i = 0; i < this.particles.length; i++) {
p = this.particles[i];

@@ -199,6 +207,8 @@ if (p.life < p.death) {

function (options) {
var /** @type {?} */ frames = this.o.duration * 60 / 1000;
var /** @type {?} */ speed = /** @type {?} */ ((is.fnc(this.o.speed)
/** @type {?} */
var frames = this.o.duration * 60 / 1000;
/** @type {?} */
var speed = (/** @type {?} */ ((is.fnc(this.o.speed)
? this.o.speed()
: this.o.speed));
: this.o.speed)));
this.particles.push({

@@ -229,9 +239,13 @@ startX: options.x,

function (rect, progress) {
var /** @type {?} */ progressDiff = this.disintegrating
/** @type {?} */
var progressDiff = this.disintegrating
? progress - this.lastProgress
: this.lastProgress - progress;
this.lastProgress = progress;
var /** @type {?} */ x = this.options.canvasPadding;
var /** @type {?} */ y = this.options.canvasPadding;
var /** @type {?} */ progressValue = (this.isHorizontal() ? rect.width : rect.height) * progress +
/** @type {?} */
var x = this.options.canvasPadding;
/** @type {?} */
var y = this.options.canvasPadding;
/** @type {?} */
var progressValue = (this.isHorizontal() ? rect.width : rect.height) * progress +
progressDiff * (this.disintegrating ? 100 : 220);

@@ -250,3 +264,4 @@ if (this.isHorizontal()) {

}
var /** @type {?} */ i = Math.floor(this.o.particlesAmountCoefficient * (progressDiff * 100 + 1));
/** @type {?} */
var i = Math.floor(this.o.particlesAmountCoefficient * (progressDiff * 100 + 1));
if (i > 0) {

@@ -274,4 +289,6 @@ while (i--) {

function (value) {
var /** @type {?} */ translateProperty = this.isHorizontal() ? 'translateX' : 'translateY';
var /** @type {?} */ translateValue = this.o.direction === 'left' || this.o.direction === 'top'
/** @type {?} */
var translateProperty = this.isHorizontal() ? 'translateX' : 'translateY';
/** @type {?} */
var translateValue = this.o.direction === 'left' || this.o.direction === 'top'
? value

@@ -296,5 +313,7 @@ : -value;

this.setup(options);
var /** @type {?} */ _1 = this;
/** @type {?} */
var _1 = this;
this.animate(function (anim) {
var /** @type {?} */ value = anim.animatables[0].target.value;
/** @type {?} */
var value = anim.animatables[0].target.value;
_1.addTransforms(value);

@@ -321,5 +340,7 @@ if (_1.o.duration) {

this.setup(options);
var /** @type {?} */ _2 = this;
/** @type {?} */
var _2 = this;
this.animate(function (anim) {
var /** @type {?} */ value = anim.animatables[0].target.value;
/** @type {?} */
var value = anim.animatables[0].target.value;
setTimeout(function () {

@@ -372,3 +393,4 @@ _2.addTransforms(value);

var _this = this;
var /** @type {?} */ _ = this;
/** @type {?} */
var _ = this;
anime({

@@ -411,3 +433,3 @@ targets: { value: _.disintegrating ? 0 : 100 },

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -466,7 +488,12 @@ var ParticleEffectButtonDirective = /** @class */ (function () {

this._particles = new Particles(this.el.nativeElement, this.getFormattedOptions(), this.renderer);
if (this._pHidden) {
this._particles.disintegrate({ duration: 0 });
}
};
/**
* @private
* @return {?}
*/
ParticleEffectButtonDirective.prototype.getFormattedOptions = /**
* @private
* @return {?}

@@ -523,3 +550,4 @@ */

var _this = this;
var /** @type {?} */ allowedProps = this.pOptions;
/** @type {?} */
var allowedProps = this.pOptions;
Object.keys(options).map(function (key) {

@@ -537,3 +565,3 @@ if (allowedProps[key]) {

selector: '[libParticleEffectButton]'
},] },
},] }
];

@@ -566,3 +594,3 @@ /** @nocollapse */

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -576,3 +604,3 @@ var ParticleEffectButtonModule = /** @class */ (function () {

exports: [ParticleEffectButtonDirective]
},] },
},] }
];

@@ -584,3 +612,3 @@ return ParticleEffectButtonModule;

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -590,3 +618,3 @@

* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/

@@ -596,2 +624,2 @@

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24vbGliL3V0aWxzLnRzIiwibmc6Ly9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24vbGliL3BhcnRpY2xlcy50cyIsIm5nOi8vYW5ndWxhci1wYXJ0aWNsZS1lZmZlY3QtYnV0dG9uL2xpYi9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24uZGlyZWN0aXZlLnRzIiwibmc6Ly9hbmd1bGFyLXBhcnRpY2xlLWVmZmVjdC1idXR0b24vbGliL2FuZ3VsYXItcGFydGljbGUtZWZmZWN0LWJ1dHRvbi5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzID0ge1xuICBhcnI6IGEgPT4gQXJyYXkuaXNBcnJheShhKSxcbiAgc3RyOiBhID0+IHR5cGVvZiBhID09PSAnc3RyaW5nJyxcbiAgZm5jOiBhID0+IHR5cGVvZiBhID09PSAnZnVuY3Rpb24nXG59O1xuXG5leHBvcnQgY29uc3Qgc3RyaW5nVG9IeXBoZW5zID0gc3RyID0+IHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCAnJDEtJDInKS50b0xvd2VyQ2FzZSgpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENTU1ZhbHVlID0gKGVsLCBwcm9wKSA9PiB7XG4gIGlmIChwcm9wIGluIGVsLnN0eWxlKSB7XG4gICAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZWwpLmdldFByb3BlcnR5VmFsdWUoc3RyaW5nVG9IeXBoZW5zKHByb3ApKSB8fCAnMCc7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB0ID0gJ3RyYW5zZm9ybSc7XG5leHBvcnQgY29uc3QgdHJhbnNmb3JtU3RyaW5nID0gZ2V0Q1NTVmFsdWUoZG9jdW1lbnQuYm9keSwgdCkgPyB0IDogJy13ZWJraXQtJyArIHQ7XG5cbmV4cG9ydCBjb25zdCByYW5kID0gdmFsdWUgPT4ge1xuICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIHZhbHVlIC0gdmFsdWUgLyAyO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnQgPSBlbGVtZW50ID0+IHtcbiAgcmV0dXJuIGlzLnN0cihlbGVtZW50KSA/IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZWxlbWVudCkgOiBlbGVtZW50O1xufTtcbiIsImltcG9ydCBhbmltZSBmcm9tICdhbmltZWpzJzsgLy8gdHNsaW50OmRpc2FibGUtbGluZVxuXG5pbXBvcnQgeyBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJhbmQsIGlzLCBzdHJpbmdUb0h5cGhlbnMsIGdldENTU1ZhbHVlLCB0cmFuc2Zvcm1TdHJpbmcsIGdldEVsZW1lbnQgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBJT3B0aW9uIHtcbiAgY29sb3I/OiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIHN0eWxlPzogc3RyaW5nO1xuICBjYW52YXNQYWRkaW5nPzogbnVtYmVyO1xuICBkdXJhdGlvbj86IG51bWJlcjtcbiAgZWFzaW5nPzogQXJyYXk8bnVtYmVyPiB8IHN0cmluZztcbiAgZGlyZWN0aW9uPzogc3RyaW5nO1xuICBzaXplPzogKCkgPT4gbnVtYmVyIHwgbnVtYmVyO1xuICBzcGVlZD86ICgpID0+IG51bWJlciB8IG51bWJlcjtcbiAgcGFydGljbGVzQW1vdW50Q29lZmZpY2llbnQ/OiBudW1iZXI7XG4gIG9zY2lsbGF0aW9uQ29lZmZpY2llbnQ/OiBudW1iZXI7XG4gIGJlZ2luPzogKCkgPT4gdm9pZDtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbiAgY29tcGxldGU/OiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgUGFydGljbGVzIHtcbiAgcGFydGljbGVzID0gW107XG4gIGZyYW1lID0gbnVsbDtcbiAgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudDtcbiAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XG4gIHdyYXBwZXI6IEhUTUxEaXZFbGVtZW50O1xuICBwYXJlbnRXcmFwcGVyOiBIVE1MRGl2RWxlbWVudDtcbiAgbzogSU9wdGlvbjtcbiAgZGlzaW50ZWdyYXRpbmc6IGJvb2xlYW47XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBsYXN0UHJvZ3Jlc3M6IG51bWJlcjtcbiAgcmVjdDogSFRNTENhbnZhc0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWw6IGFueSxcbiAgICBwcml2YXRlIG9wdGlvbnM6IElPcHRpb24sXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICAgIHRoaXMub3B0aW9ucyA9IHsgLi4ub3B0aW9ucyB9O1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgaW5pdCgpOiB2b2lkIHtcbiAgIHRoaXMuY2FudmFzID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICB0aGlzLmN0eCA9IHRoaXMuY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhbnZhcywgJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhbnZhcywgJ3BvaW50ZXJFdmVudHMnLCAnbm9uZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jYW52YXMsICd0b3AnLCAnNTAlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhbnZhcywgJ2xlZnQnLCAnNTAlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNhbnZhcywgJ3RyYW5zZm9ybScsICd0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jYW52YXMsICdkaXNwbGF5JywgJ25vbmUnKTtcbiAgICB0aGlzLndyYXBwZXIgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy53cmFwcGVyLCAncG9zaXRpb24nLCAncmVsYXRpdmUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMud3JhcHBlciwgJ2Rpc3BsYXknLCAnaW5saW5lLWJsb2NrJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLndyYXBwZXIsICdvdmVyZmxvdycsICdoaWRkZW4nKTtcbiAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZSh0aGlzLmVsLnBhcmVudE5vZGUsIHRoaXMud3JhcHBlciwgdGhpcy5lbCk7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLndyYXBwZXIsIHRoaXMuZWwpO1xuICAgIHRoaXMucGFyZW50V3JhcHBlciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnBhcmVudFdyYXBwZXIsICdwb3NpdGlvbicsICdyZWxhdGl2ZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wYXJlbnRXcmFwcGVyLCAnZGlzcGxheScsICdpbmxpbmUtYmxvY2snKTtcbiAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShcbiAgICAgIHRoaXMud3JhcHBlci5wYXJlbnROb2RlLFxuICAgICAgdGhpcy5wYXJlbnRXcmFwcGVyLFxuICAgICAgdGhpcy53cmFwcGVyXG4gICAgKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMucGFyZW50V3JhcHBlciwgdGhpcy53cmFwcGVyKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMucGFyZW50V3JhcHBlciwgdGhpcy5jYW52YXMpO1xuICB9XG5cbiAgc2V0T3B0aW9ucyhvcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgfVxuICBsb29wKCkge1xuICAgIHRoaXMudXBkYXRlUGFydGljbGVzKCk7XG4gICAgdGhpcy5yZW5kZXJQYXJ0aWNsZXMoKTtcbiAgICBpZiAodGhpcy5pc0FuaW1hdGluZygpKSB7XG4gICAgICB0aGlzLmZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMubG9vcC5iaW5kKHRoaXMpKTtcbiAgICB9XG4gIH1cbiAgdXBkYXRlUGFydGljbGVzKCkge1xuICAgIGxldCBwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXJ0aWNsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHAgPSB0aGlzLnBhcnRpY2xlc1tpXTtcbiAgICAgIGlmIChwLmxpZmUgPiBwLmRlYXRoKSB7XG4gICAgICAgIHRoaXMucGFydGljbGVzLnNwbGljZShpLCAxKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHAueCArPSBwLnNwZWVkO1xuICAgICAgICBwLnkgPSB0aGlzLm8ub3NjaWxsYXRpb25Db2VmZmljaWVudCAqIE1hdGguc2luKHAuY291bnRlciAqIHAuaW5jcmVhc2UpO1xuICAgICAgICBwLmxpZmUrKztcbiAgICAgICAgcC5jb3VudGVyICs9IHRoaXMuZGlzaW50ZWdyYXRpbmcgPyAxIDogLTE7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghdGhpcy5wYXJ0aWNsZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnBhdXNlKCk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAnZGlzcGxheScsICdub25lJyk7XG4gICAgICBpZiAoaXMuZm5jKHRoaXMuby5jb21wbGV0ZSkpIHtcbiAgICAgICAgdGhpcy5vLmNvbXBsZXRlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJlbmRlclBhcnRpY2xlcygpIHtcbiAgICB0aGlzLmN0eC5jbGVhclJlY3QoMCwgMCwgdGhpcy53aWR0aCwgdGhpcy5oZWlnaHQpO1xuICAgIGxldCBwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXJ0aWNsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHAgPSB0aGlzLnBhcnRpY2xlc1tpXTtcbiAgICAgIGlmIChwLmxpZmUgPCBwLmRlYXRoKSB7XG4gICAgICAgIHRoaXMuY3R4LnRyYW5zbGF0ZShwLnN0YXJ0WCwgcC5zdGFydFkpO1xuICAgICAgICB0aGlzLmN0eC5yb3RhdGUocC5hbmdsZSAqIE1hdGguUEkgLyAxODApO1xuICAgICAgICB0aGlzLmN0eC5nbG9iYWxBbHBoYSA9IHRoaXMuZGlzaW50ZWdyYXRpbmdcbiAgICAgICAgICA/IDEgLSBwLmxpZmUgLyBwLmRlYXRoXG4gICAgICAgICAgOiBwLmxpZmUgLyBwLmRlYXRoO1xuICAgICAgICB0aGlzLmN0eC5maWxsU3R5bGUgPSB0aGlzLmN0eC5zdHJva2VTdHlsZSA9IHRoaXMuby5jb2xvcjtcbiAgICAgICAgdGhpcy5jdHguYmVnaW5QYXRoKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuby50eXBlID09PSAnY2lyY2xlJykge1xuICAgICAgICAgIHRoaXMuY3R4LmFyYyhwLngsIHAueSwgcC5zaXplLCAwLCAyICogTWF0aC5QSSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5vLnR5cGUgPT09ICd0cmlhbmdsZScpIHtcbiAgICAgICAgICB0aGlzLmN0eC5tb3ZlVG8ocC54LCBwLnkpO1xuICAgICAgICAgIHRoaXMuY3R4LmxpbmVUbyhwLnggKyBwLnNpemUsIHAueSArIHAuc2l6ZSk7XG4gICAgICAgICAgdGhpcy5jdHgubGluZVRvKHAueCArIHAuc2l6ZSwgcC55IC0gcC5zaXplKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm8udHlwZSA9PT0gJ3JlY3RhbmdsZScpIHtcbiAgICAgICAgICB0aGlzLmN0eC5yZWN0KHAueCwgcC55LCBwLnNpemUsIHAuc2l6ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vLnN0eWxlID09PSAnZmlsbCcpIHtcbiAgICAgICAgICB0aGlzLmN0eC5maWxsKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5vLnN0eWxlID09PSAnc3Ryb2tlJykge1xuICAgICAgICAgIHRoaXMuY3R4LmNsb3NlUGF0aCgpO1xuICAgICAgICAgIHRoaXMuY3R4LnN0cm9rZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdHguZ2xvYmFsQWxwaGEgPSAxO1xuICAgICAgICB0aGlzLmN0eC5yb3RhdGUoLXAuYW5nbGUgKiBNYXRoLlBJIC8gMTgwKTtcbiAgICAgICAgdGhpcy5jdHgudHJhbnNsYXRlKC1wLnN0YXJ0WCwgLXAuc3RhcnRZKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcGxheSgpIHtcbiAgICB0aGlzLmZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMubG9vcC5iaW5kKHRoaXMpKTtcbiAgfVxuICBwYXVzZSgpIHtcbiAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmZyYW1lKTtcbiAgICB0aGlzLmZyYW1lID0gbnVsbDtcbiAgfVxuICBhZGRQYXJ0aWNsZShvcHRpb25zKSB7XG4gICAgY29uc3QgZnJhbWVzID0gdGhpcy5vLmR1cmF0aW9uICogNjAgLyAxMDAwO1xuICAgIGNvbnN0IHNwZWVkOiBudW1iZXIgPSAoaXMuZm5jKHRoaXMuby5zcGVlZClcbiAgICAgID8gdGhpcy5vLnNwZWVkKClcbiAgICAgIDogdGhpcy5vLnNwZWVkKSBhcyBudW1iZXI7XG4gICAgdGhpcy5wYXJ0aWNsZXMucHVzaCh7XG4gICAgICBzdGFydFg6IG9wdGlvbnMueCxcbiAgICAgIHN0YXJ0WTogb3B0aW9ucy55LFxuICAgICAgeDogdGhpcy5kaXNpbnRlZ3JhdGluZyA/IDAgOiBzcGVlZCAqIC1mcmFtZXMsXG4gICAgICB5OiAwLFxuICAgICAgYW5nbGU6IHJhbmQoMzYwKSxcbiAgICAgIGNvdW50ZXI6IHRoaXMuZGlzaW50ZWdyYXRpbmcgPyAwIDogZnJhbWVzLFxuICAgICAgaW5jcmVhc2U6IE1hdGguUEkgKiAyIC8gMTAwLFxuICAgICAgbGlmZTogMCxcbiAgICAgIGRlYXRoOiB0aGlzLmRpc2ludGVncmF0aW5nID8gZnJhbWVzIC0gMjAgKyBNYXRoLnJhbmRvbSgpICogNDAgOiBmcmFtZXMsXG4gICAgICBzcGVlZDogc3BlZWQsXG4gICAgICBzaXplOiBpcy5mbmModGhpcy5vLnNpemUpID8gdGhpcy5vLnNpemUoKSA6IHRoaXMuby5zaXplXG4gICAgfSk7XG4gIH1cbiAgYWRkUGFydGljbGVzKHJlY3Q6IGFueSwgcHJvZ3Jlc3MpIHtcbiAgICBjb25zdCBwcm9ncmVzc0RpZmYgPSB0aGlzLmRpc2ludGVncmF0aW5nXG4gICAgICA/IHByb2dyZXNzIC0gdGhpcy5sYXN0UHJvZ3Jlc3NcbiAgICAgIDogdGhpcy5sYXN0UHJvZ3Jlc3MgLSBwcm9ncmVzcztcbiAgICB0aGlzLmxhc3RQcm9ncmVzcyA9IHByb2dyZXNzO1xuICAgIGxldCB4ID0gdGhpcy5vcHRpb25zLmNhbnZhc1BhZGRpbmc7XG4gICAgbGV0IHkgPSB0aGlzLm9wdGlvbnMuY2FudmFzUGFkZGluZztcbiAgICBjb25zdCBwcm9ncmVzc1ZhbHVlID1cbiAgICAgICh0aGlzLmlzSG9yaXpvbnRhbCgpID8gcmVjdC53aWR0aCA6IHJlY3QuaGVpZ2h0KSAqIHByb2dyZXNzICtcbiAgICAgIHByb2dyZXNzRGlmZiAqICh0aGlzLmRpc2ludGVncmF0aW5nID8gMTAwIDogMjIwKTtcbiAgICBpZiAodGhpcy5pc0hvcml6b250YWwoKSkge1xuICAgICAgeCArPVxuICAgICAgICB0aGlzLm8uZGlyZWN0aW9uID09PSAnbGVmdCdcbiAgICAgICAgICA/IHByb2dyZXNzVmFsdWVcbiAgICAgICAgICA6IHJlY3Qud2lkdGggLSBwcm9ncmVzc1ZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB5ICs9XG4gICAgICAgIHRoaXMuby5kaXJlY3Rpb24gPT09ICd0b3AnXG4gICAgICAgICAgPyBwcm9ncmVzc1ZhbHVlXG4gICAgICAgICAgOiByZWN0LmhlaWdodCAtIHByb2dyZXNzVmFsdWU7XG4gICAgfVxuICAgIGxldCBpID0gTWF0aC5mbG9vcihcbiAgICAgIHRoaXMuby5wYXJ0aWNsZXNBbW91bnRDb2VmZmljaWVudCAqIChwcm9ncmVzc0RpZmYgKiAxMDAgKyAxKVxuICAgICk7XG4gICAgaWYgKGkgPiAwKSB7XG4gICAgICB3aGlsZSAoaS0tKSB7XG4gICAgICAgIHRoaXMuYWRkUGFydGljbGUoe1xuICAgICAgICAgIHg6IHggKyAodGhpcy5pc0hvcml6b250YWwoKSA/IDAgOiByZWN0LndpZHRoICogTWF0aC5yYW5kb20oKSksXG4gICAgICAgICAgeTogeSArICh0aGlzLmlzSG9yaXpvbnRhbCgpID8gcmVjdC5oZWlnaHQgKiBNYXRoLnJhbmRvbSgpIDogMClcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghdGhpcy5pc0FuaW1hdGluZygpKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2FudmFzLCAnZGlzcGxheScsICdibG9jaycpO1xuICAgICAgdGhpcy5wbGF5KCk7XG4gICAgfVxuICB9XG4gIGFkZFRyYW5zZm9ybXModmFsdWUpIHtcbiAgICBjb25zdCB0cmFuc2xhdGVQcm9wZXJ0eSA9IHRoaXMuaXNIb3Jpem9udGFsKCkgPyAndHJhbnNsYXRlWCcgOiAndHJhbnNsYXRlWSc7XG4gICAgY29uc3QgdHJhbnNsYXRlVmFsdWUgPVxuICAgICAgdGhpcy5vLmRpcmVjdGlvbiA9PT0gJ2xlZnQnIHx8IHRoaXMuby5kaXJlY3Rpb24gPT09ICd0b3AnXG4gICAgICAgID8gdmFsdWVcbiAgICAgICAgOiAtdmFsdWU7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLndyYXBwZXIsIHRyYW5zZm9ybVN0cmluZywgYCR7dHJhbnNsYXRlUHJvcGVydHl9KCR7dHJhbnNsYXRlVmFsdWV9JSlgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwsIHRyYW5zZm9ybVN0cmluZywgYCR7dHJhbnNsYXRlUHJvcGVydHl9KCR7LXRyYW5zbGF0ZVZhbHVlfSUpYCk7XG4gIH1cbiAgZGlzaW50ZWdyYXRlKG9wdGlvbnM6IElPcHRpb24gPSB7fSkge1xuICAgIGlmICghdGhpcy5pc0FuaW1hdGluZygpKSB7XG4gICAgICB0aGlzLmRpc2ludGVncmF0aW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMubGFzdFByb2dyZXNzID0gMDtcbiAgICAgIHRoaXMuc2V0dXAob3B0aW9ucyk7XG4gICAgICBjb25zdCBfID0gdGhpcztcbiAgICAgIHRoaXMuYW5pbWF0ZShhbmltID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBhbmltLmFuaW1hdGFibGVzWzBdLnRhcmdldC52YWx1ZTtcbiAgICAgICAgXy5hZGRUcmFuc2Zvcm1zKHZhbHVlKTtcbiAgICAgICAgaWYgKF8uby5kdXJhdGlvbikge1xuICAgICAgICAgIF8uYWRkUGFydGljbGVzKF8ucmVjdCwgdmFsdWUgLyAxMDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgaW50ZWdyYXRlKG9wdGlvbnM6IElPcHRpb24gPSB7fSkge1xuICAgIGlmICghdGhpcy5pc0FuaW1hdGluZygpKSB7XG4gICAgICB0aGlzLmRpc2ludGVncmF0aW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmxhc3RQcm9ncmVzcyA9IDE7XG4gICAgICB0aGlzLnNldHVwKG9wdGlvbnMpO1xuICAgICAgY29uc3QgXyA9IHRoaXM7XG4gICAgICB0aGlzLmFuaW1hdGUoYW5pbSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gYW5pbS5hbmltYXRhYmxlc1swXS50YXJnZXQudmFsdWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIF8uYWRkVHJhbnNmb3Jtcyh2YWx1ZSk7XG4gICAgICAgIH0sIF8uby5kdXJhdGlvbik7XG4gICAgICAgIGlmIChfLm8uZHVyYXRpb24pIHtcbiAgICAgICAgICBfLmFkZFBhcnRpY2xlcyhfLnJlY3QsIHZhbHVlIC8gMTAwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHNldHVwKG9wdGlvbnMpIHtcbiAgICB0aGlzLm8gPSB7IC4uLnRoaXMub3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy53cmFwcGVyLCAndmlzaWJpbGl0eScsICd2aXNpYmxlJyk7XG4gICAgaWYgKHRoaXMuby5kdXJhdGlvbikge1xuICAgICAgdGhpcy5yZWN0ID0gdGhpcy5lbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHRoaXMud2lkdGggPSB0aGlzLmNhbnZhcy53aWR0aCA9XG4gICAgICAgIHRoaXMuby53aWR0aCB8fCB0aGlzLnJlY3Qud2lkdGggKyB0aGlzLm8uY2FudmFzUGFkZGluZyAqIDI7XG4gICAgICB0aGlzLmhlaWdodCA9IHRoaXMuY2FudmFzLmhlaWdodCA9XG4gICAgICAgIHRoaXMuby5oZWlnaHQgfHwgdGhpcy5yZWN0LmhlaWdodCArIHRoaXMuby5jYW52YXNQYWRkaW5nICogMjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNEaXNpbnRlZ3JhdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmRpc2ludGVncmF0aW5nO1xuICB9XG4gIGFuaW1hdGUodXBkYXRlKSB7XG4gICAgY29uc3QgXyA9IHRoaXM7XG4gICAgYW5pbWUoe1xuICAgICAgdGFyZ2V0czogeyB2YWx1ZTogXy5kaXNpbnRlZ3JhdGluZyA/IDAgOiAxMDAgfSxcbiAgICAgIHZhbHVlOiBfLmRpc2ludGVncmF0aW5nID8gMTAwIDogMCxcbiAgICAgIGR1cmF0aW9uOiBfLm8uZHVyYXRpb24sXG4gICAgICBlYXNpbmc6IF8uby5lYXNpbmcsXG4gICAgICBiZWdpbjogXy5vLmJlZ2luLFxuICAgICAgdXBkYXRlOiB1cGRhdGUsXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICBpZiAoXy5kaXNpbnRlZ3JhdGluZykge1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXy53cmFwcGVyLCAndmlzaWJpbGl0eScsICdoaWRkZW4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGlzQW5pbWF0aW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMuZnJhbWU7XG4gIH1cbiAgaXNIb3Jpem9udGFsKCkge1xuICAgIHJldHVybiB0aGlzLm8uZGlyZWN0aW9uID09PSAnbGVmdCcgfHwgdGhpcy5vLmRpcmVjdGlvbiA9PT0gJ3JpZ2h0JztcbiAgfVxufVxuXG5cbiIsImltcG9ydCB7XG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBEaXJlY3RpdmUsXG4gIEV2ZW50RW1pdHRlcixcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmFuZCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgUGFydGljbGVzLCBJT3B0aW9uIH0gZnJvbSAnLi9wYXJ0aWNsZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbGliUGFydGljbGVFZmZlY3RCdXR0b25dJ1xufSlcbmV4cG9ydCBjbGFzcyBQYXJ0aWNsZUVmZmVjdEJ1dHRvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBwcml2YXRlIF9wYXJ0aWNsZXM6IFBhcnRpY2xlcztcbiAgcHJpdmF0ZSBfcEhpZGRlbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwQ29sb3IgPSAnIzAwMCc7XG4gIEBJbnB1dCgpIHBEdXJhdGlvbiA9IDEwMDA7XG4gIEBJbnB1dCgpIHBFYXNpbmcgPSAnZWFzZUluT3V0Q3ViaWMnO1xuICBASW5wdXQoKSBwVHlwZSA9ICdjaXJjbGUnO1xuICBASW5wdXQoKSBwU3R5bGUgPSAnZmlsbCc7XG4gIEBJbnB1dCgpIHBEaXJlY3Rpb24gPSAnbGVmdCc7XG4gIEBJbnB1dCgpIHBDYW52YXNQYWRkaW5nID0gMTUwO1xuICBASW5wdXQoKSBwT3NjaWxsYXRpb25Db2VmZmljaWVudCA9IDMwO1xuICBASW5wdXQoKSBwUGFydGljbGVzQW1vdW50Q29lZmZpY2llbnQgPSAzO1xuICBAT3V0cHV0KCkgcEJlZ2luID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcENvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBASW5wdXQoKSBwU2l6ZTogKCkgPT4gbnVtYmVyIHwgbnVtYmVyID0gKCkgPT4gTWF0aC5mbG9vcigoTWF0aC5yYW5kb20oKSAqIDMpICsgMSk7XG4gIEBJbnB1dCgpIHBTcGVlZDogKCkgPT4gbnVtYmVyIHwgbnVtYmVyID0gKCkgPT4gcmFuZCg0KTtcblxuICBASW5wdXQoJ3BIaWRkZW4nKVxuICBzZXQgcEhpZGRlbih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3BIaWRkZW4gPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5fcGFydGljbGVzKSB7XG4gICAgICBpZiAodmFsdWUgJiYgIXRoaXMuX3BhcnRpY2xlcy5pc0Rpc2ludGVncmF0ZWQoKSkge1xuICAgICAgICAgdGhpcy5fcGFydGljbGVzLmRpc2ludGVncmF0ZSh0aGlzLmdldEZvcm1hdHRlZE9wdGlvbnMoKSk7XG4gICAgICB9IGVsc2UgaWYgKCF2YWx1ZSAmJiB0aGlzLl9wYXJ0aWNsZXMuaXNEaXNpbnRlZ3JhdGVkKCkpIHtcbiAgICAgICAgIHRoaXMuX3BhcnRpY2xlcy5pbnRlZ3JhdGUodGhpcy5nZXRGb3JtYXR0ZWRPcHRpb25zKCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBnZXQgcEhpZGRlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcEhpZGRlbjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5fcGFydGljbGVzID0gbmV3IFBhcnRpY2xlcyhcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudCxcbiAgICAgIHRoaXMuZ2V0Rm9ybWF0dGVkT3B0aW9ucygpLFxuICAgICAgdGhpcy5yZW5kZXJlclxuICAgICk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRGb3JtYXR0ZWRPcHRpb25zKCk6IElPcHRpb24ge1xuICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcjogdGhpcy5wQ29sb3IsXG4gICAgICAgIHR5cGU6IHRoaXMucFR5cGUsXG4gICAgICAgIHN0eWxlOiB0aGlzLnBTdHlsZSxcbiAgICAgICAgY2FudmFzUGFkZGluZzogdGhpcy5wQ2FudmFzUGFkZGluZyxcbiAgICAgICAgZHVyYXRpb246IHRoaXMucER1cmF0aW9uLFxuICAgICAgICBlYXNpbmc6IHRoaXMucEVhc2luZyxcbiAgICAgICAgZGlyZWN0aW9uOiB0aGlzLnBEaXJlY3Rpb24sXG4gICAgICAgIHNpemU6IHRoaXMucFNpemUsXG4gICAgICAgIHNwZWVkOiB0aGlzLnBTcGVlZCxcbiAgICAgICAgcGFydGljbGVzQW1vdW50Q29lZmZpY2llbnQ6IHRoaXMucFBhcnRpY2xlc0Ftb3VudENvZWZmaWNpZW50LFxuICAgICAgICBvc2NpbGxhdGlvbkNvZWZmaWNpZW50OiB0aGlzLnBPc2NpbGxhdGlvbkNvZWZmaWNpZW50LFxuICAgICAgICBiZWdpbjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMucEJlZ2luLmVtaXQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnBDb21wbGV0ZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9O1xuICB9XG4gIHB1YmxpYyBnZXQgcE9wdGlvbnMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwQ29sb3I6IHRoaXMucENvbG9yLFxuICAgICAgICBwVHlwZTogdGhpcy5wVHlwZSxcbiAgICAgICAgcFN0eWxlOiB0aGlzLnBTdHlsZSxcbiAgICAgICAgcENhbnZhc1BhZGRpbmc6IHRoaXMucENhbnZhc1BhZGRpbmcsXG4gICAgICAgIHBEdXJhdGlvbjogdGhpcy5wRHVyYXRpb24sXG4gICAgICAgIHBFYXNpbmc6IHRoaXMucEVhc2luZyxcbiAgICAgICAgcERpcmVjdGlvbjogdGhpcy5wRGlyZWN0aW9uLFxuICAgICAgICBwU2l6ZTogdGhpcy5wU2l6ZSxcbiAgICAgICAgcFNwZWVkOiB0aGlzLnBTcGVlZCxcbiAgICAgICAgcFBhcnRpY2xlc0Ftb3VudENvZWZmaWNpZW50OiB0aGlzLnBQYXJ0aWNsZXNBbW91bnRDb2VmZmljaWVudCxcbiAgICAgICAgcE9zY2lsbGF0aW9uQ29lZmZpY2llbnQ6IHRoaXMucE9zY2lsbGF0aW9uQ29lZmZpY2llbnQsXG4gICAgICAgIHBCZWdpbjogdGhpcy5wQmVnaW4sXG4gICAgICAgIHBDb21wbGV0ZTogdGhpcy5wQ29tcGxldGVcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBzZXQgcE9wdGlvbnMob3B0aW9uczogYW55KSB7XG4gICAgY29uc3QgYWxsb3dlZFByb3BzID0gdGhpcy5wT3B0aW9ucztcbiAgICBPYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIGtleSA9PiB7XG4gICAgICBpZiAoYWxsb3dlZFByb3BzW2tleV0pIHtcbiAgICAgICAgdGhpc1trZXldID0gb3B0aW9uc1trZXldO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFydGljbGVFZmZlY3RCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuL2FuZ3VsYXItcGFydGljbGUtZWZmZWN0LWJ1dHRvbi5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtQYXJ0aWNsZUVmZmVjdEJ1dHRvbkRpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtQYXJ0aWNsZUVmZmVjdEJ1dHRvbkRpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgUGFydGljbGVFZmZlY3RCdXR0b25Nb2R1bGUgeyB9XG5cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLEFBQU8scUJBQU0sRUFBRSxHQUFHO0lBQ2hCLEdBQUcsRUFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUE7SUFDMUIsR0FBRyxFQUFFLFVBQUEsQ0FBQyxJQUFJLE9BQUEsT0FBTyxDQUFDLEtBQUssUUFBUSxHQUFBO0lBQy9CLEdBQUcsRUFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLE9BQU8sQ0FBQyxLQUFLLFVBQVUsR0FBQTtDQUNsQyxDQUFDO0FBRUYsQUFBTyxxQkFBTSxlQUFlLEdBQUcsVUFBQSxHQUFHO0lBQ2hDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztDQUM5RCxDQUFDO0FBRUYsQUFBTyxxQkFBTSxXQUFXLEdBQUcsVUFBQyxFQUFFLEVBQUUsSUFBSTtJQUNsQyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFO1FBQ3BCLE9BQU8sZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO0tBQzVFO0NBQ0YsQ0FBQztBQUVGLEFBQU8scUJBQU0sQ0FBQyxHQUFHLFdBQVcsQ0FBQztBQUM3QixBQUFPLHFCQUFNLGVBQWUsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxHQUFHLENBQUMsQ0FBQztBQUVsRixBQUFPLHFCQUFNLElBQUksR0FBRyxVQUFBLEtBQUs7SUFDdkIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7Q0FDMUMsQ0FBQzs7Ozs7O0FDRUYsSUFB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
//# sourceMappingURL=angular-particle-effect-button.js.map

@@ -23,4 +23,4 @@ import { ElementRef, EventEmitter, Renderer2, AfterContentInit } from '@angular/core';

ngAfterContentInit(): void;
private getFormattedOptions();
private getFormattedOptions;
pOptions: any;
}
{
"name": "angular-particle-effect-button",
"version": "0.0.31",
"version": "0.0.41",
"peerDependencies": {
"@angular/common": "^6.0.0-rc.0 || ^6.0.0",
"@angular/core": "^6.0.0-rc.0 || ^6.0.0"
"@angular/common": "^7.2.0",
"@angular/core": "^7.2.0"
},

@@ -8,0 +8,0 @@ "dependencies": {

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc