tsparticles
Advanced tools
Comparing version 1.3.0 to 1.3.1
@@ -259,3 +259,3 @@ "use strict"; | ||
var response, img; | ||
var img; | ||
return _regenerator["default"].wrap(function _callee$(_context) { | ||
@@ -267,58 +267,26 @@ while (1) { | ||
if (!(this.options.particles.shape.image.src != '')) { | ||
_context.next = 22; | ||
break; | ||
} | ||
if (this.options.particles.shape.image.src != '') { | ||
// if (type == 'svg') { | ||
// let response = await fetch(this.options.particles.shape.image.src); | ||
// if (response.ok) { | ||
// this.svg.source = await response.text(); | ||
// this.checkBeforeDraw(); | ||
// } else { | ||
// console.error('Error pJS - Image not found'); | ||
// this.img.error = true; | ||
// } | ||
// } else { | ||
img = new Image(); | ||
img.addEventListener('load', function () { | ||
_this3.img.obj = img; | ||
if (!(type == 'svg')) { | ||
_context.next = 17; | ||
break; | ||
_this3.checkBeforeDraw(); | ||
}); | ||
img.src = this.options.particles.shape.image.src; // } | ||
} else { | ||
console.error('Error pJS - No image.src'); | ||
this.img.error = true; | ||
} | ||
_context.next = 5; | ||
return fetch(this.options.particles.shape.image.src); | ||
case 5: | ||
response = _context.sent; | ||
if (!response.ok) { | ||
_context.next = 13; | ||
break; | ||
} | ||
_context.next = 9; | ||
return response.text(); | ||
case 9: | ||
this.svg.source = _context.sent; | ||
this.checkBeforeDraw(); | ||
_context.next = 15; | ||
break; | ||
case 13: | ||
console.error('Error pJS - Image not found'); | ||
this.img.error = true; | ||
case 15: | ||
_context.next = 20; | ||
break; | ||
case 17: | ||
img = new Image(); | ||
img.addEventListener('load', function () { | ||
_this3.img.obj = img; | ||
_this3.checkBeforeDraw(); | ||
}); | ||
img.src = this.options.particles.shape.image.src; | ||
case 20: | ||
_context.next = 24; | ||
break; | ||
case 22: | ||
console.error('Error pJS - No image.src'); | ||
this.img.error = true; | ||
case 24: | ||
case 2: | ||
case "end": | ||
@@ -367,39 +335,34 @@ return _context.stop(); | ||
if (this.options.particles.shape.type == _pjsenums.pJSShapeType.image) { | ||
if (this.img.type == 'svg') { | ||
if (this.drawAnimFrame && this.svg.count >= this.options.particles.number.value) { | ||
this.particles.draw(delta); | ||
// if (this.img.type == 'svg') { | ||
// if (this.drawAnimFrame && this.svg.count >= this.options.particles.number.value) { | ||
// this.particles.draw(delta); | ||
// if (!this.options.particles.move.enable) { | ||
// this.cancelAnimation(this.drawAnimFrame); | ||
// } else { | ||
// this.drawAnimFrame = this.requestFrame(timestamp => this.draw(timestamp)); | ||
// } | ||
// } else { | ||
// if (!this.img.error) { | ||
// this.drawAnimFrame = this.requestFrame(timestamp => this.draw(timestamp)); | ||
// } | ||
// } | ||
// } else { | ||
if (this.img.obj != undefined) { | ||
this.particles.draw(delta); | ||
if (!this.options.particles.move.enable) { | ||
this.cancelAnimation(this.drawAnimFrame); | ||
} else { | ||
this.drawAnimFrame = this.requestFrame(function (timestamp) { | ||
return _this4.draw(timestamp); | ||
}); | ||
} | ||
if (this.drawAnimFrame !== undefined && !this.options.particles.move.enable) { | ||
this.cancelAnimation(this.drawAnimFrame); | ||
} else { | ||
if (!this.img.error) { | ||
this.drawAnimFrame = this.requestFrame(function (timestamp) { | ||
return _this4.draw(timestamp); | ||
}); | ||
} | ||
this.drawAnimFrame = this.requestFrame(function (timestamp) { | ||
return _this4.draw(timestamp); | ||
}); | ||
} | ||
} else { | ||
if (this.img.obj != undefined) { | ||
this.particles.draw(delta); | ||
if (!this.img.error) { | ||
this.drawAnimFrame = this.requestFrame(function (timestamp) { | ||
return _this4.draw(timestamp); | ||
}); | ||
} | ||
} // } | ||
if (this.drawAnimFrame !== undefined && !this.options.particles.move.enable) { | ||
this.cancelAnimation(this.drawAnimFrame); | ||
} else { | ||
this.drawAnimFrame = this.requestFrame(function (timestamp) { | ||
return _this4.draw(timestamp); | ||
}); | ||
} | ||
} else { | ||
if (!this.img.error) { | ||
this.drawAnimFrame = this.requestFrame(function (timestamp) { | ||
return _this4.draw(timestamp); | ||
}); | ||
} | ||
} | ||
} | ||
} else { | ||
@@ -424,16 +387,17 @@ this.particles.draw(delta); | ||
if (this.options.particles.shape.type == _pjsenums.pJSShapeType.image) { | ||
if (this.img.type == 'svg' && this.svg.source == undefined) { | ||
this.checkAnimFrame = this.requestFrame(function () {//TODO: Questo check non è da nessuna parte | ||
//check(); | ||
}); | ||
} else { | ||
if (this.checkAnimFrame) { | ||
this.cancelAnimation(this.checkAnimFrame); | ||
} | ||
// if (this.img.type == 'svg' && this.svg.source == undefined) { | ||
// this.checkAnimFrame = this.requestFrame(() => { | ||
// //TODO: Can't find anywhere this check | ||
// //check(); | ||
// }); | ||
// } else { | ||
if (this.checkAnimFrame) { | ||
this.cancelAnimation(this.checkAnimFrame); | ||
} | ||
if (!this.img.error) { | ||
this.init(); | ||
this.draw(0); | ||
} | ||
} | ||
if (!this.img.error) { | ||
this.init(); | ||
this.draw(0); | ||
} // } | ||
} else { | ||
@@ -532,2 +496,2 @@ this.init(); | ||
exports.pJSContainer = pJSContainer; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wanNjb250YWluZXIudHMiXSwibmFtZXMiOlsicEpTQ29udGFpbmVyIiwidGFnX2lkIiwicGFyYW1zIiwicmV0aW5hIiwicEpTUmV0aW5hIiwiY2FudmFzIiwicEpTQ2FudmFzIiwicGFydGljbGVzIiwicEpTUGFydGljbGVzIiwiaW50ZXJhY3Rpdml0eSIsIm1vdXNlIiwic3ZnIiwic291cmNlIiwidW5kZWZpbmVkIiwiY291bnQiLCJpbWciLCJidWJibGUiLCJyZXB1bHNlIiwib3B0aW9ucyIsInBKU0NvbnN0YW50cyIsImRlZmF1bHRPcHRpb25zIiwicEpTVXRpbHMiLCJkZWVwRXh0ZW5kIiwiZXZlbnRzTGlzdGVuZXJzIiwic3RhcnQiLCJ0aGVuIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwiaGFuZGxlVmlzaWJpbGl0eUNoYW5nZSIsImhpZGRlbiIsInBhZ2VIaWRkZW4iLCJkcmF3QW5pbUZyYW1lIiwiY2FuY2VsQW5pbWF0aW9uIiwibGFzdEZyYW1lVGltZSIsInBlcmZvcm1hbmNlIiwibm93IiwiZHJhdyIsImRldGVjdF9vbiIsInBKU0ludGVyYWN0aXZpdHlEZXRlY3QiLCJ3aW5kb3ciLCJlbCIsInBhcmVudE5vZGUiLCJldmVudHMiLCJvbmhvdmVyIiwiZW5hYmxlIiwib25jbGljayIsImUiLCJwb3NfeCIsInBvc195IiwibW91c2VFdmVudCIsImNsaWVudFgiLCJjbGllbnRZIiwicGFyZW50Iiwic3JjRWxlbWVudCIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJzb3VyY2VSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidGFyZ2V0UmVjdCIsIm9mZnNldFgiLCJsZWZ0Iiwib2Zmc2V0WSIsInRvcCIsImlzUmV0aW5hIiwicHhyYXRpbyIsInN0YXR1cyIsImNsaWNrX3Bvc194IiwiY2xpY2tfcG9zX3kiLCJjbGlja190aW1lIiwiRGF0ZSIsImdldFRpbWUiLCJtb2RlIiwicEpTQ2xpY2tNb2RlIiwicHVzaCIsIm1vdmUiLCJtb2RlcyIsInBhcnRpY2xlc19uYiIsInJlbW92ZSIsImNsaWNraW5nIiwiZmluaXNoIiwic2V0VGltZW91dCIsImR1cmF0aW9uIiwibnVtYmVyIiwiZGVuc2l0eSIsImFyZWEiLCJ3aWR0aCIsImhlaWdodCIsIm5iX3BhcnRpY2xlcyIsInZhbHVlIiwidmFsdWVfYXJlYSIsIm1pc3NpbmdfcGFydGljbGVzIiwiYXJyYXkiLCJsZW5ndGgiLCJNYXRoIiwiYWJzIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJwSlNMb2FkZXIiLCJwSlNEb21TZXQiLCJvcGVuIiwidG9EYXRhVVJMIiwidHlwZSIsImVycm9yIiwic2hhcGUiLCJpbWFnZSIsInNyYyIsImZldGNoIiwicmVzcG9uc2UiLCJvayIsInRleHQiLCJjaGVja0JlZm9yZURyYXciLCJjb25zb2xlIiwiSW1hZ2UiLCJvYmoiLCJjYWxsYmFjayIsInJlcXVlc3RBbmltRnJhbWUiLCJoYW5kbGUiLCJ0aW1lc3RhbXAiLCJmcHNfbGltaXQiLCJyZXF1ZXN0RnJhbWUiLCJkZWx0YSIsInBKU1NoYXBlVHlwZSIsImNoZWNrQW5pbUZyYW1lIiwiaW5pdCIsInAiLCJkaXN0X21vdXNlIiwidGltZV9zcGVudCIsImJ1YmJsZV9wYXJhbSIsInBhcnRpY2xlc19wYXJhbSIsInBfb2JqX2J1YmJsZSIsInBfb2JqIiwiaWQiLCJwSlMiLCJkdXJhdGlvbl9lbmQiLCJkaXN0YW5jZSIsInBKU1Byb2Nlc3NCdWJibGVUeXBlIiwic2l6ZSIsInJhZGl1c19idWJibGUiLCJvcGFjaXR5Iiwib3BhY2l0eV9idWJibGUiLCJ2YWx1ZV90bXAiLCJkaWYiLCJwYWludCIsImNyZWF0ZSIsImRlbnNpdHlBdXRvUGFydGljbGVzIiwic3Vic3RyIiwibG9hZEltZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUVBOztJQUVhQSxZOzs7QUFtQlQsd0JBQVlDLE1BQVosRUFBNEJD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LENBQWFYLFNBQWIsQ0FBdUIrRixLQUF2QixDQUE2QkMsS0FBN0IsQ0FBbUNDLEdBQW5DLENBQXVDWixNQUF2QyxHQUFnRCxDQUE5RixDQUFoQjs7dUJBQ00sS0FBS3FELE9BQUwsQ0FBYSxLQUFLbEksR0FBTCxDQUFTcUYsSUFBdEIsQzs7Ozs7OztBQUdOLHFCQUFLUyxlQUFMIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBwSlNVdGlscyB9IGZyb20gJy4vcGpzdXRpbHMnO1xuaW1wb3J0IHsgcEpTT3B0aW9ucywgcEpTQ29udGFpbmVySW50ZXJhY3Rpdml0eSwgcEpTU3ZnLCBwSlNJbWcsIHBKU0J1YmJsZSwgcEpTUmVwdWxzZSB9IGZyb20gJy4vcGpzaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBwSlNSZXRpbmEgfSBmcm9tICcuL3Bqc3JldGluYSc7XG5pbXBvcnQgeyBwSlNDYW52YXMgfSBmcm9tICcuL3Bqc2NhbnZhcyc7XG5pbXBvcnQgeyBwSlNQYXJ0aWNsZXMgfSBmcm9tICcuL3Bqc3BhcnRpY2xlcyc7XG5pbXBvcnQgeyBwSlNTaGFwZVR5cGUsIHBKU091dE1vZGUsIHBKU0ludGVyYWN0aXZpdHlEZXRlY3QsIHBKU0NsaWNrTW9kZSwgcEpTUHJvY2Vzc0J1YmJsZVR5cGUgfSBmcm9tICcuL3Bqc2VudW1zJztcbmltcG9ydCB7IHBKU0xvYWRlciB9IGZyb20gJy4vcGpzbG9hZGVyJztcbmltcG9ydCB7IHBKU1BhcnRpY2xlIH0gZnJvbSAnLi9wanNwYXJ0aWNsZSc7XG5pbXBvcnQgeyBwSlNDb25zdGFudHMgfSBmcm9tICcuL3Bqc2NvbnN0YW50cyc7XG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0IGNsYXNzIHBKU0NvbnRhaW5lciB7XG4gICAgaW50ZXJhY3Rpdml0eTogcEpTQ29udGFpbmVySW50ZXJhY3Rpdml0eTtcbiAgICBvcHRpb25zOiBwSlNPcHRpb25zO1xuXG4gICAgcmV0aW5hOiBwSlNSZXRpbmE7XG4gICAgY2FudmFzOiBwSlNDYW52YXM7XG4gICAgcGFydGljbGVzOiBwSlNQYXJ0aWNsZXM7XG5cbiAgICBjaGVja0FuaW1GcmFtZT86IG51bWJlcjtcbiAgICBkcmF3QW5pbUZyYW1lPzogbnVtYmVyO1xuXG4gICAgYnViYmxlOiBwSlNCdWJibGU7XG4gICAgcmVwdWxzZTogcEpTUmVwdWxzZTtcbiAgICBzdmc6IHBKU1N2ZztcbiAgICBpbWc6IHBKU0ltZztcblxuICAgIGxhc3RGcmFtZVRpbWUgPSAwO1xuICAgIHBhZ2VIaWRkZW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHRhZ19pZDogc3RyaW5nLCBwYXJhbXM6IHBKU09wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5yZXRpbmEgPSBuZXcgcEpTUmV0aW5hKHRoaXMpO1xuICAgICAgICB0aGlzLmNhbnZhcyA9IG5ldyBwSlNDYW52YXModGhpcywgdGFnX2lkKTtcbiAgICAgICAgdGhpcy5wYXJ0aWNsZXMgPSBuZXcgcEpTUGFydGljbGVzKHRoaXMpO1xuXG4gICAgICAgIHRoaXMuaW50ZXJhY3Rpdml0eSA9IHtcbiAgICAgICAgICAgIG1vdXNlOiB7fVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuc3ZnID0ge1xuICAgICAgICAgICAgc291cmNlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBjb3VudDogMFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuaW1nID0ge307XG4gICAgICAgIHRoaXMuYnViYmxlID0ge307XG4gICAgICAgIHRoaXMucmVwdWxzZSA9IHt9O1xuXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHBKU0NvbnN0YW50cy5kZWZhdWx0T3B0aW9ucztcblxuICAgICAgICAvKiBwYXJ0aWNsZXMuanMgdmFyaWFibGVzIHdpdGggZGVmYXVsdCB2YWx1ZXMgKi9cblxuICAgICAgICAvKiBwYXJhbXMgc2V0dGluZ3MgKi9cbiAgICAgICAgaWYgKHBhcmFtcykge1xuICAgICAgICAgICAgcEpTVXRpbHMuZGVlcEV4dGVuZCh0aGlzLm9wdGlvbnMsIHBhcmFtcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiAtLS0tLS0tLS0tIHBKUyAtIHN0YXJ0IC0tLS0tLS0tLS0tLSAqL1xuICAgICAgICB0aGlzLmV2ZW50c0xpc3RlbmVycygpO1xuXG4gICAgICAgIC8vVE9ETzogU3RhcnQgw6ggYXN5bmNcbiAgICAgICAgdGhpcy5zdGFydCgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICBDYW5jZWwgYW5pbWF0aW9uIGlmIHBhZ2UgaXMgbm90IGluIGZvY3VzXG4gICAgICAgICAgICAgICAgQnJvd3NlcnMgd2lsbCBkbyB0aGlzIGFueXdheSwgaG93ZXZlciB0aGVcbiAgICAgICAgICAgICAgICBEZWx0YSB0aW1lIG11c3QgYWxzbyBiZSByZXNldCwgc28gY2FuY2VsaW5nXG4gICAgICAgICAgICAgICAgdGhlIG9sZCBmcmFtZSBhbmQgc3RhcnRpbmcgYSBuZXcgb25lIGlzIG5lY2Vzc2FyeVxuICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsICgpID0+IHRoaXMuaGFuZGxlVmlzaWJpbGl0eUNoYW5nZSgpLCBmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGhhbmRsZVZpc2liaWxpdHlDaGFuZ2UoKSB7XG4gICAgICAgIGlmIChkb2N1bWVudC5oaWRkZW4pIHtcbiAgICAgICAgICAgIHRoaXMucGFnZUhpZGRlbiA9IHRydWU7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmRyYXdBbmltRnJhbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbEFuaW1hdGlvbih0aGlzLmRyYXdBbmltRnJhbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wYWdlSGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmxhc3RGcmFtZVRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgICAgICAgIHRoaXMuZHJhdygwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIC0tLS0tLS0tLS0gcEpTIGZ1bmN0aW9ucyAtIHZlbmRvcnMgLS0tLS0tLS0tLS0tICovXG4gICAgZXZlbnRzTGlzdGVuZXJzKCkge1xuICAgICAgICAvKiBldmVudHMgdGFyZ2V0IGVsZW1lbnQgKi9cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5pbnRlcmFjdGl2aXR5LmRldGVjdF9vbiA9PSBwSlNJbnRlcmFjdGl2aXR5RGV0ZWN0LndpbmRvdykge1xuICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5LmVsID0gd2luZG93O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy5pbnRlcmFjdGl2aXR5LmRldGVjdF9vbiA9PSAncGFyZW50Jykge1xuICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5LmVsID0gdGhpcy5jYW52YXMuZWwucGFyZW50Tm9kZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJhY3Rpdml0eS5lbCA9IHRoaXMuY2FudmFzLmVsO1xuICAgICAgICB9XG4gICAgICAgIC8qIGRldGVjdCBtb3VzZSBwb3MgLSBvbiBob3ZlciAvIGNsaWNrIGV2ZW50ICovXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMub25ob3Zlci5lbmFibGUgfHwgdGhpcy5vcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLm9uY2xpY2suZW5hYmxlKSB7XG4gICAgICAgICAgICAvKiBlbCBvbiBtb3VzZW1vdmUgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLmludGVyYWN0aXZpdHkuZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmludGVyYWN0aXZpdHkuZWwuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwb3NfeDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBvc195O1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCBtb3VzZUV2ZW50ID0gZSBhcyBNb3VzZUV2ZW50O1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmludGVyYWN0aXZpdHkuZWwgPT0gd2luZG93KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NfeCA9IG1vdXNlRXZlbnQuY2xpZW50WDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc195ID0gbW91c2VFdmVudC5jbGllbnRZO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy5pbnRlcmFjdGl2aXR5LmRldGVjdF9vbiA9PSBwSlNJbnRlcmFjdGl2aXR5RGV0ZWN0LnBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNvdXJjZSA9IG1vdXNlRXZlbnQuc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXQgPSBtb3VzZUV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2UgJiYgdGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNvdXJjZVJlY3QgPSBzb3VyY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldFJlY3QgPSB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zX3ggPSBtb3VzZUV2ZW50Lm9mZnNldFggKyBzb3VyY2VSZWN0LmxlZnQgLSB0YXJnZXRSZWN0LmxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zX3kgPSBtb3VzZUV2ZW50Lm9mZnNldFkgKyBzb3VyY2VSZWN0LnRvcCAtIHRhcmdldFJlY3QudG9wO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NfeCA9IG1vdXNlRXZlbnQub2Zmc2V0WCB8fCBtb3VzZUV2ZW50LmNsaWVudFg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zX3kgPSBtb3VzZUV2ZW50Lm9mZnNldFkgfHwgbW91c2VFdmVudC5jbGllbnRZO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zX3ggPSBtb3VzZUV2ZW50Lm9mZnNldFggfHwgbW91c2VFdmVudC5jbGllbnRYO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zX3kgPSBtb3VzZUV2ZW50Lm9mZnNldFkgfHwgbW91c2VFdmVudC5jbGllbnRZO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc194ID0gcG9zX3ggKiAodGhpcy5yZXRpbmEuaXNSZXRpbmEgPyB0aGlzLmNhbnZhcy5weHJhdGlvIDogMSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NfeSA9IHBvc195ICogKHRoaXMucmV0aW5hLmlzUmV0aW5hID8gdGhpcy5jYW52YXMucHhyYXRpbyA6IDEpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJhY3Rpdml0eS5zdGF0dXMgPSAnbW91c2Vtb3ZlJztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvKiBlbCBvbiBvbm1vdXNlbGVhdmUgKi9cbiAgICAgICAgICAgICAgICB0aGlzLmludGVyYWN0aXZpdHkuZWwuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc194ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc195ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5LnN0YXR1cyA9ICdtb3VzZWxlYXZlJztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG9uIGNsaWNrIGV2ZW50ICovXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMub25jbGljay5lbmFibGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmludGVyYWN0aXZpdHkuZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmludGVyYWN0aXZpdHkuZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJhY3Rpdml0eS5tb3VzZS5jbGlja19wb3NfeCA9IHRoaXMuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NfeDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5Lm1vdXNlLmNsaWNrX3Bvc195ID0gdGhpcy5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc195O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmludGVyYWN0aXZpdHkubW91c2UuY2xpY2tfdGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMub25jbGljay5lbmFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5vcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLm9uY2xpY2subW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgcEpTQ2xpY2tNb2RlLnB1c2g6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMucGFydGljbGVzLm1vdmUuZW5hYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcnRpY2xlcy5wdXNoKHRoaXMub3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLnB1c2gucGFydGljbGVzX25iLCB0aGlzLmludGVyYWN0aXZpdHkubW91c2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLnB1c2gucGFydGljbGVzX25iID09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcnRpY2xlcy5wdXNoKHRoaXMub3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLnB1c2gucGFydGljbGVzX25iLCB0aGlzLmludGVyYWN0aXZpdHkubW91c2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5vcHRpb25zLmludGVyYWN0aXZpdHkubW9kZXMucHVzaC5wYXJ0aWNsZXNfbmIgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNsZXMucHVzaCh0aGlzLm9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5wdXNoLnBhcnRpY2xlc19uYik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBwSlNDbGlja01vZGUucmVtb3ZlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcnRpY2xlcy5yZW1vdmUodGhpcy5vcHRpb25zLmludGVyYWN0aXZpdHkubW9kZXMucmVtb3ZlLnBhcnRpY2xlc19uYik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgcEpTQ2xpY2tNb2RlLmJ1YmJsZTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5idWJibGUuY2xpY2tpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHBKU0NsaWNrTW9kZS5yZXB1bHNlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcHVsc2UuY2xpY2tpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcHVsc2UuY291bnQgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcHVsc2UuZmluaXNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXB1bHNlLmNsaWNraW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHRoaXMub3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLnJlcHVsc2UuZHVyYXRpb24gKiAxMDAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlbnNpdHlBdXRvUGFydGljbGVzKCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnBhcnRpY2xlcy5udW1iZXIuZGVuc2l0eS5lbmFibGUpIHtcbiAgICAgICAgICAgIC8qIGNhbGMgYXJlYSAqL1xuICAgICAgICAgICAgbGV0IGFyZWEgPSB0aGlzLmNhbnZhcy5lbC53aWR0aCAqIHRoaXMuY2FudmFzLmVsLmhlaWdodCAvIDEwMDA7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnJldGluYS5pc1JldGluYSkge1xuICAgICAgICAgICAgICAgIGFyZWEgPSBhcmVhIC8gKCh0aGlzLmNhbnZhcy5weHJhdGlvKSAqIDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogY2FsYyBudW1iZXIgb2YgcGFydGljbGVzIGJhc2VkIG9uIGRlbnNpdHkgYXJlYSAqL1xuICAgICAgICAgICAgbGV0IG5iX3BhcnRpY2xlcyA9IGFyZWEgKiB0aGlzLm9wdGlvbnMucGFydGljbGVzLm51bWJlci52YWx1ZSAvIHRoaXMub3B0aW9ucy5wYXJ0aWNsZXMubnVtYmVyLmRlbnNpdHkudmFsdWVfYXJlYTtcblxuICAgICAgICAgICAgLyogYWRkIG9yIHJlbW92ZSBYIHBhcnRpY2xlcyAqL1xuICAgICAgICAgICAgbGV0IG1pc3NpbmdfcGFydGljbGVzID0gdGhpcy5wYXJ0aWNsZXMuYXJyYXkubGVuZ3RoIC0gbmJfcGFydGljbGVzO1xuXG4gICAgICAgICAgICBpZiAobWlzc2luZ19wYXJ0aWNsZXMgPCAwKVxuICAgICAgICAgICAgICAgIHRoaXMucGFydGljbGVzLnB1c2goTWF0aC5hYnMobWlzc2luZ19wYXJ0aWNsZXMpKTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnRpY2xlcy5yZW1vdmUobWlzc2luZ19wYXJ0aWNsZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVzdHJveXBKUygpIHtcbiAgICAgICAgaWYgKHRoaXMuZHJhd0FuaW1GcmFtZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5kcmF3QW5pbUZyYW1lKTtcblxuICAgICAgICB0aGlzLmNhbnZhcy5lbC5yZW1vdmUoKTtcblxuICAgICAgICBwSlNMb2FkZXIucEpTRG9tU2V0KFtdKTtcbiAgICB9XG5cbiAgICBleHBvcnRJbWcoKSB7XG4gICAgICAgIHdpbmRvdy5vcGVuKHRoaXMuY2FudmFzLmVsLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJyksICdfYmxhbmsnKTtcbiAgICB9XG5cbiAgICBhc3luYyBsb2FkSW1nKHR5cGU6IHN0cmluZykge1xuICAgICAgICB0aGlzLmltZy5lcnJvciA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5wYXJ0aWNsZXMuc2hhcGUuaW1hZ2Uuc3JjICE9ICcnKSB7XG4gICAgICAgICAgICBpZiAodHlwZSA9PSAnc3ZnJykge1xuICAgICAgICAgICAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRoaXMub3B0aW9ucy5wYXJ0aWNsZXMuc2hhcGUuaW1hZ2Uuc3JjKTtcblxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN2Zy5zb3VyY2UgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja0JlZm9yZURyYXcoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwSlMgLSBJbWFnZSBub3QgZm91bmQnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbWcuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBpbWcgPSBuZXcgSW1hZ2UoKTtcblxuICAgICAgICAgICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmltZy5vYmogPSBpbWc7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja0JlZm9yZURyYXcoKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGltZy5zcmMgPSB0aGlzLm9wdGlvbnMucGFydGljbGVzLnNoYXBlLmltYWdlLnNyYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBKUyAtIE5vIGltYWdlLnNyYycpO1xuICAgICAgICAgICAgdGhpcy5pbWcuZXJyb3IgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVxdWVzdEZyYW1lKGNhbGxiYWNrOiBGcmFtZVJlcXVlc3RDYWxsYmFjaykge1xuICAgICAgICByZXR1cm4gd2luZG93LnJlcXVlc3RBbmltRnJhbWUoY2FsbGJhY2spO1xuICAgIH1cblxuICAgIGNhbmNlbEFuaW1hdGlvbihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGhhbmRsZSk7XG4gICAgfVxuXG4gICAgZHJhdyh0aW1lc3RhbXA6IERPTUhpZ2hSZXNUaW1lU3RhbXApIHtcbiAgICAgICAgLy8gRlBTIGxpbWl0IGxvZ2ljXG4gICAgICAgIC8vIElmIHdlIGFyZSB0b28gZmFzdCwganVzdCBkcmF3IHdpdGhvdXQgdXBkYXRpbmdcbiAgICAgICAgdmFyIGZwc19saW1pdCA9IHRoaXMub3B0aW9ucy5mcHNfbGltaXQ7XG4gICAgICAgIGlmIChmcHNfbGltaXQgPiAwICYmIHRpbWVzdGFtcCA8IHRoaXMubGFzdEZyYW1lVGltZSArICgxMDAwIC8gZnBzX2xpbWl0KSkge1xuICAgICAgICAgICAgdGhpcy5yZXF1ZXN0RnJhbWUodGltZXN0YW1wID0+IHRoaXMuZHJhdyh0aW1lc3RhbXApKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlbHRhID0gdGltZXN0YW1wIC0gdGhpcy5sYXN0RnJhbWVUaW1lO1xuICAgICAgICB0aGlzLmxhc3RGcmFtZVRpbWUgPSB0aW1lc3RhbXA7XG5cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5wYXJ0aWNsZXMuc2hhcGUudHlwZSA9PSBwSlNTaGFwZVR5cGUuaW1hZ2UpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmltZy50eXBlID09ICdzdmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZHJhd0FuaW1GcmFtZSAmJiB0aGlzLnN2Zy5jb3VudCA+PSB0aGlzLm9wdGlvbnMucGFydGljbGVzLm51bWJlci52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcnRpY2xlcy5kcmF3KGRlbHRhKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5wYXJ0aWNsZXMubW92ZS5lbmFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsQW5pbWF0aW9uKHRoaXMuZHJhd0FuaW1GcmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRyYXdBbmltRnJhbWUgPSB0aGlzLnJlcXVlc3RGcmFtZSh0aW1lc3RhbXAgPT4gdGhpcy5kcmF3KHRpbWVzdGFtcCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmltZy5lcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3QW5pbUZyYW1lID0gdGhpcy5yZXF1ZXN0RnJhbWUodGltZXN0YW1wID0+IHRoaXMuZHJhdyh0aW1lc3RhbXApKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaW1nLm9iaiAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNsZXMuZHJhdyhkZWx0YSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZHJhd0FuaW1GcmFtZSAhPT0gdW5kZWZpbmVkICYmICF0aGlzLm9wdGlvbnMucGFydGljbGVzLm1vdmUuZW5hYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbEFuaW1hdGlvbih0aGlzLmRyYXdBbmltRnJhbWUpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3QW5pbUZyYW1lID0gdGhpcy5yZXF1ZXN0RnJhbWUodGltZXN0YW1wID0+IHRoaXMuZHJhdyh0aW1lc3RhbXApKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pbWcuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhd0FuaW1GcmFtZSA9IHRoaXMucmVxdWVzdEZyYW1lKHRpbWVzdGFtcCA9PiB0aGlzLmRyYXcodGltZXN0YW1wKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBhcnRpY2xlcy5kcmF3KGRlbHRhKTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMucGFydGljbGVzLm1vdmUuZW5hYmxlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZHJhd0FuaW1GcmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsQW5pbWF0aW9uKHRoaXMuZHJhd0FuaW1GcmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYXdBbmltRnJhbWUgPSB0aGlzLnJlcXVlc3RGcmFtZSh0aW1lc3RhbXAgPT4gdGhpcy5kcmF3KHRpbWVzdGFtcCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hlY2tCZWZvcmVEcmF3KCkge1xuICAgICAgICAvLyBpZiBzaGFwZSBpcyBpbWFnZVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnBhcnRpY2xlcy5zaGFwZS50eXBlID09IHBKU1NoYXBlVHlwZS5pbWFnZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaW1nLnR5cGUgPT0gJ3N2ZycgJiYgdGhpcy5zdmcuc291cmNlID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tBbmltRnJhbWUgPSB0aGlzLnJlcXVlc3RGcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vVE9ETzogUXVlc3RvIGNoZWNrIG5vbiDDqCBkYSBuZXNzdW5hIHBhcnRlXG4gICAgICAgICAgICAgICAgICAgIC8vY2hlY2soKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrQW5pbUZyYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsQW5pbWF0aW9uKHRoaXMuY2hlY2tBbmltRnJhbWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pbWcuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhdygwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmluaXQoKTtcbiAgICAgICAgICAgIHRoaXMuZHJhdygwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb2Nlc3NCdWJibGUocDogcEpTUGFydGljbGUsIGRpc3RfbW91c2U6IG51bWJlciwgdGltZV9zcGVudDogbnVtYmVyLCBidWJibGVfcGFyYW06IG51bWJlciwgcGFydGljbGVzX3BhcmFtOiBudW1iZXIsIHBfb2JqX2J1YmJsZTogbnVtYmVyIHwgdW5kZWZpbmVkLCBwX29iajogbnVtYmVyLCBpZDogcEpTUHJvY2Vzc0J1YmJsZVR5cGUpIHtcbiAgICAgICAgY29uc3QgcEpTID0gdGhpcztcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHBKUy5vcHRpb25zO1xuXG4gICAgICAgIGlmIChidWJibGVfcGFyYW0gIT0gcGFydGljbGVzX3BhcmFtKSB7XG4gICAgICAgICAgICBpZiAoIXBKUy5idWJibGUuZHVyYXRpb25fZW5kKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRpc3RfbW91c2UgPD0gb3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5kaXN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgb2JqO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChwX29ial9idWJibGUgIT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgb2JqID0gcF9vYmpfYnViYmxlO1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBvYmogPSBwX29iajtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9iaiAhPSBidWJibGVfcGFyYW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHBfb2JqIC0gKHRpbWVfc3BlbnQgKiAocF9vYmogLSBidWJibGVfcGFyYW0pIC8gb3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5kdXJhdGlvbik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSBwSlNQcm9jZXNzQnViYmxlVHlwZS5zaXplKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAucmFkaXVzX2J1YmJsZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHBKU1Byb2Nlc3NCdWJibGVUeXBlLm9wYWNpdHkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5vcGFjaXR5X2J1YmJsZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHBKU1Byb2Nlc3NCdWJibGVUeXBlLnNpemUpXG4gICAgICAgICAgICAgICAgICAgICAgICBwLnJhZGl1c19idWJibGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSBwSlNQcm9jZXNzQnViYmxlVHlwZS5vcGFjaXR5KVxuICAgICAgICAgICAgICAgICAgICAgICAgcC5vcGFjaXR5X2J1YmJsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBfb2JqX2J1YmJsZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWVfdG1wID0gcF9vYmogLSAodGltZV9zcGVudCAqIChwX29iaiAtIGJ1YmJsZV9wYXJhbSkgLyBvcHRpb25zLmludGVyYWN0aXZpdHkubW9kZXMuYnViYmxlLmR1cmF0aW9uKSwgZGlmID0gYnViYmxlX3BhcmFtIC0gdmFsdWVfdG1wO1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGJ1YmJsZV9wYXJhbSArIGRpZjtcblxuICAgICAgICAgICAgICAgIGlmIChpZCA9PSBwSlNQcm9jZXNzQnViYmxlVHlwZS5zaXplKVxuICAgICAgICAgICAgICAgICAgICBwLnJhZGl1c19idWJibGUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAoaWQgPT0gcEpTUHJvY2Vzc0J1YmJsZVR5cGUub3BhY2l0eSlcbiAgICAgICAgICAgICAgICAgICAgcC5vcGFjaXR5X2J1YmJsZSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5pdCgpIHtcbiAgICAgICAgLyogaW5pdCBjYW52YXMgKyBwYXJ0aWNsZXMgKi9cbiAgICAgICAgdGhpcy5yZXRpbmEuaW5pdCgpO1xuICAgICAgICB0aGlzLmNhbnZhcy5pbml0KCk7XG4gICAgICAgIHRoaXMuY2FudmFzLnNpemUoKTtcbiAgICAgICAgdGhpcy5jYW52YXMucGFpbnQoKTtcbiAgICAgICAgdGhpcy5wYXJ0aWNsZXMuY3JlYXRlKCk7XG4gICAgICAgIHRoaXMuZGVuc2l0eUF1dG9QYXJ0aWNsZXMoKTtcbiAgICB9XG5cbiAgICBhc3luYyBzdGFydCgpIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5wYXJ0aWNsZXMuc2hhcGUudHlwZSA9PSBwSlNTaGFwZVR5cGUuaW1hZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuaW1nLnR5cGUgPSB0aGlzLm9wdGlvbnMucGFydGljbGVzLnNoYXBlLmltYWdlLnNyYy5zdWJzdHIodGhpcy5vcHRpb25zLnBhcnRpY2xlcy5zaGFwZS5pbWFnZS5zcmMubGVuZ3RoIC0gMyk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRJbWcodGhpcy5pbWcudHlwZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrQmVmb3JlRHJhdygpO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wanNjb250YWluZXIudHMiXSwibmFtZXMiOlsicEpTQ29udGFpbmVyIiwidGFnX2lkIiwicGFyYW1zIiwicmV0aW5hIiwicEpTUmV0aW5hIiwiY2FudmFzIiwicEpTQ2FudmFzIiwicGFydGljbGVzIiwicEpTUGFydGljbGVzIiwiaW50ZXJhY3Rpdml0eSIsIm1vdXNlIiwic3ZnIiwic291cmNlIiwidW5kZWZpbmVkIiwiY291bnQiLCJpbWciLCJidWJibGUiLCJyZXB1bHNlIiwib3B0aW9ucyIsInBKU0NvbnN0YW50cyIsImRlZmF1bHRPcHRpb25zIiwicEpTVXRpbHMiLCJkZWVwRXh0ZW5kIiwiZXZlbnRzTGlzdGVuZXJzIiwic3RhcnQiLCJ0aGVuIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwiaGFuZGxlVmlzaWJpbGl0eUNoYW5nZSIsImhpZGRlbiIsInBhZ2VIaWRkZW4iLCJkcmF3QW5pbUZyYW1lIiwiY2FuY2VsQW5pbWF0aW9uIiwibGFzdEZyYW1lVGltZSIsInBlcmZvcm1hbmNlIiwibm93IiwiZHJhdyIsImRldGVjdF9vbiIsInBKU0ludGVyYWN0aXZpdHlEZXRlY3QiLCJ3aW5kb3ciLCJlbCIsInBhcmVudE5vZGUiLCJldmVudHMiLCJvbmhvdmVyIiwiZW5hYmxlIiwib25jbGljayIsImUiLCJwb3NfeCIsInBvc195IiwibW91c2VFdmVudCIsImNsaWVudFgiLCJjbGllbnRZIiwicGFyZW50Iiwic3JjRWxlbWVudCIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJzb3VyY2VSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidGFyZ2V0UmVjdCIsIm9mZnNldFgiLCJsZWZ0Iiwib2Zmc2V0WSIsInRvcCIsImlzUmV0aW5hIiwicHhyYXRpbyIsInN0YXR1cyIsImNsaWNrX3Bvc194IiwiY2xpY2tfcG9zX3kiLCJjbGlja190aW1lIiwiRGF0ZSIsImdldFRpbWUiLCJtb2RlIiwicEpTQ2xpY2tNb2RlIiwicHVzaCIsIm1vdmUiLCJtb2RlcyIsInBhcnRpY2xlc19uYiIsInJlbW92ZSIsImNsaWNraW5nIiwiZmluaXNoIiwic2V0VGltZW91dCIsImR1cmF0aW9uIiwibnVtYmVyIiwiZGVuc2l0eSIsImFyZWEiLCJ3aWR0aCIsImhlaWdodCIsIm5iX3BhcnRpY2xlcyIsInZhbHVlIiwidmFsdWVfYXJlYSIsIm1pc3NpbmdfcGFydGljbGVzIiwiYXJyYXkiLCJsZW5ndGgiLCJNYXRoIiwiYWJzIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJwSlNMb2FkZXIiLCJwSlNEb21TZXQiLCJvcGVuIiwidG9EYXRhVVJMIiwidHlwZSIsImVycm9yIiwic2hhcGUiLCJpbWFnZSIsInNyYyIsIkltYWdlIiwib2JqIiwiY2hlY2tCZWZvcmVEcmF3IiwiY29uc29sZSIsImNhbGxiYWNrIiwicmVxdWVzdEFuaW1GcmFtZSIsImhhbmRsZSIsInRpbWVzdGFtcCIsImZwc19saW1pdCIsInJlcXVlc3RGcmFtZSIsImRlbHRhIiwicEpTU2hhcGVUeXBlIiwiY2hlY2tBbmltRnJhbWUiLCJpbml0IiwicCIsImRpc3RfbW91c2UiLCJ0aW1lX3NwZW50IiwiYnViYmxlX3BhcmFtIiwicGFydGljbGVzX3BhcmFtIiwicF9vYmpfYnViYmxlIiwicF9vYmoiLCJpZCIsInBKUyIsImR1cmF0aW9uX2VuZCIsImRpc3RhbmNlIiwicEpTUHJvY2Vzc0J1YmJsZVR5cGUiLCJzaXplIiwicmFkaXVzX2J1YmJsZSIsIm9wYWNpdHkiLCJvcGFjaXR5X2J1YmJsZSIsInZhbHVlX3RtcCIsImRpZiIsInBhaW50IiwiY3JlYXRlIiwiZGVuc2l0eUF1dG9QYXJ0aWNsZXMiLCJzdWJzdHIiLCJsb2FkSW1nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBRUE7O0lBRWFBLFk7OztBQW1CVCx3QkFBWUMsTUFBWixFQUE0QkMsTUFBNUIsRUFBZ0Q7QUFBQTs7QUFBQTtBQUFBO0FB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QUE5RixDQUFoQjs7dUJBQ00sS0FBS2lELE9BQUwsQ0FBYSxLQUFLOUgsR0FBTCxDQUFTcUYsSUFBdEIsQzs7Ozs7OztBQUdOLHFCQUFLTyxlQUFMIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBwSlNVdGlscyB9IGZyb20gJy4vcGpzdXRpbHMnO1xuaW1wb3J0IHsgcEpTT3B0aW9ucywgcEpTQ29udGFpbmVySW50ZXJhY3Rpdml0eSwgcEpTU3ZnLCBwSlNJbWcsIHBKU0J1YmJsZSwgcEpTUmVwdWxzZSB9IGZyb20gJy4vcGpzaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBwSlNSZXRpbmEgfSBmcm9tICcuL3Bqc3JldGluYSc7XG5pbXBvcnQgeyBwSlNDYW52YXMgfSBmcm9tICcuL3Bqc2NhbnZhcyc7XG5pbXBvcnQgeyBwSlNQYXJ0aWNsZXMgfSBmcm9tICcuL3Bqc3BhcnRpY2xlcyc7XG5pbXBvcnQgeyBwSlNTaGFwZVR5cGUsIHBKU091dE1vZGUsIHBKU0ludGVyYWN0aXZpdHlEZXRlY3QsIHBKU0NsaWNrTW9kZSwgcEpTUHJvY2Vzc0J1YmJsZVR5cGUgfSBmcm9tICcuL3Bqc2VudW1zJztcbmltcG9ydCB7IHBKU0xvYWRlciB9IGZyb20gJy4vcGpzbG9hZGVyJztcbmltcG9ydCB7IHBKU1BhcnRpY2xlIH0gZnJvbSAnLi9wanNwYXJ0aWNsZSc7XG5pbXBvcnQgeyBwSlNDb25zdGFudHMgfSBmcm9tICcuL3Bqc2NvbnN0YW50cyc7XG5cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0IGNsYXNzIHBKU0NvbnRhaW5lciB7XG4gICAgaW50ZXJhY3Rpdml0eTogcEpTQ29udGFpbmVySW50ZXJhY3Rpdml0eTtcbiAgICBvcHRpb25zOiBwSlNPcHRpb25zO1xuXG4gICAgcmV0aW5hOiBwSlNSZXRpbmE7XG4gICAgY2FudmFzOiBwSlNDYW52YXM7XG4gICAgcGFydGljbGVzOiBwSlNQYXJ0aWNsZXM7XG5cbiAgICBjaGVja0FuaW1GcmFtZT86IG51bWJlcjtcbiAgICBkcmF3QW5pbUZyYW1lPzogbnVtYmVyO1xuXG4gICAgYnViYmxlOiBwSlNCdWJibGU7XG4gICAgcmVwdWxzZTogcEpTUmVwdWxzZTtcbiAgICBzdmc6IHBKU1N2ZztcbiAgICBpbWc6IHBKU0ltZztcblxuICAgIGxhc3RGcmFtZVRpbWUgPSAwO1xuICAgIHBhZ2VIaWRkZW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHRhZ19pZDogc3RyaW5nLCBwYXJhbXM6IHBKU09wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5yZXRpbmEgPSBuZXcgcEpTUmV0aW5hKHRoaXMpO1xuICAgICAgICB0aGlzLmNhbnZhcyA9IG5ldyBwSlNDYW52YXModGhpcywgdGFnX2lkKTtcbiAgICAgICAgdGhpcy5wYXJ0aWNsZXMgPSBuZXcgcEpTUGFydGljbGVzKHRoaXMpO1xuXG4gICAgICAgIHRoaXMuaW50ZXJhY3Rpdml0eSA9IHtcbiAgICAgICAgICAgIG1vdXNlOiB7fVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuc3ZnID0ge1xuICAgICAgICAgICAgc291cmNlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBjb3VudDogMFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuaW1nID0ge307XG4gICAgICAgIHRoaXMuYnViYmxlID0ge307XG4gICAgICAgIHRoaXMucmVwdWxzZSA9IHt9O1xuXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHBKU0NvbnN0YW50cy5kZWZhdWx0T3B0aW9ucztcblxuICAgICAgICAvKiBwYXJ0aWNsZXMuanMgdmFyaWFibGVzIHdpdGggZGVmYXVsdCB2YWx1ZXMgKi9cblxuICAgICAgICAvKiBwYXJhbXMgc2V0dGluZ3MgKi9cbiAgICAgICAgaWYgKHBhcmFtcykge1xuICAgICAgICAgICAgcEpTVXRpbHMuZGVlcEV4dGVuZCh0aGlzLm9wdGlvbnMsIHBhcmFtcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiAtLS0tLS0tLS0tIHBKUyAtIHN0YXJ0IC0tLS0tLS0tLS0tLSAqL1xuICAgICAgICB0aGlzLmV2ZW50c0xpc3RlbmVycygpO1xuXG4gICAgICAgIC8vVE9ETzogU3RhcnQgw6ggYXN5bmNcbiAgICAgICAgdGhpcy5zdGFydCgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICBDYW5jZWwgYW5pbWF0aW9uIGlmIHBhZ2UgaXMgbm90IGluIGZvY3VzXG4gICAgICAgICAgICAgICAgQnJvd3NlcnMgd2lsbCBkbyB0aGlzIGFueXdheSwgaG93ZXZlciB0aGVcbiAgICAgICAgICAgICAgICBEZWx0YSB0aW1lIG11c3QgYWxzbyBiZSByZXNldCwgc28gY2FuY2VsaW5nXG4gICAgICAgICAgICAgICAgdGhlIG9sZCBmcmFtZSBhbmQgc3RhcnRpbmcgYSBuZXcgb25lIGlzIG5lY2Vzc2FyeVxuICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsICgpID0+IHRoaXMuaGFuZGxlVmlzaWJpbGl0eUNoYW5nZSgpLCBmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGhhbmRsZVZpc2liaWxpdHlDaGFuZ2UoKSB7XG4gICAgICAgIGlmIChkb2N1bWVudC5oaWRkZW4pIHtcbiAgICAgICAgICAgIHRoaXMucGFnZUhpZGRlbiA9IHRydWU7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmRyYXdBbmltRnJhbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbEFuaW1hdGlvbih0aGlzLmRyYXdBbmltRnJhbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wYWdlSGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmxhc3RGcmFtZVRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgICAgICAgIHRoaXMuZHJhdygwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIC0tLS0tLS0tLS0gcEpTIGZ1bmN0aW9ucyAtIHZlbmRvcnMgLS0tLS0tLS0tLS0tICovXG4gICAgZXZlbnRzTGlzdGVuZXJzKCkge1xuICAgICAgICAvKiBldmVudHMgdGFyZ2V0IGVsZW1lbnQgKi9cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5pbnRlcmFjdGl2aXR5LmRldGVjdF9vbiA9PSBwSlNJbnRlcmFjdGl2aXR5RGV0ZWN0LndpbmRvdykge1xuICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5LmVsID0gd2luZG93O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy5pbnRlcmFjdGl2aXR5LmRldGVjdF9vbiA9PSAncGFyZW50Jykge1xuICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5LmVsID0gdGhpcy5jYW52YXMuZWwucGFyZW50Tm9kZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJhY3Rpdml0eS5lbCA9IHRoaXMuY2FudmFzLmVsO1xuICAgICAgICB9XG4gICAgICAgIC8qIGRldGVjdCBtb3VzZSBwb3MgLSBvbiBob3ZlciAvIGNsaWNrIGV2ZW50ICovXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMub25ob3Zlci5lbmFibGUgfHwgdGhpcy5vcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLm9uY2xpY2suZW5hYmxlKSB7XG4gICAgICAgICAgICAvKiBlbCBvbiBtb3VzZW1vdmUgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLmludGVyYWN0aXZpdHkuZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmludGVyYWN0aXZpdHkuZWwuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwb3NfeDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBvc195O1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCBtb3VzZUV2ZW50ID0gZSBhcyBNb3VzZUV2ZW50O1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmludGVyYWN0aXZpdHkuZWwgPT0gd2luZG93KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NfeCA9IG1vdXNlRXZlbnQuY2xpZW50WDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc195ID0gbW91c2VFdmVudC5jbGllbnRZO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy5pbnRlcmFjdGl2aXR5LmRldGVjdF9vbiA9PSBwSlNJbnRlcmFjdGl2aXR5RGV0ZWN0LnBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNvdXJjZSA9IG1vdXNlRXZlbnQuc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXQgPSBtb3VzZUV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2UgJiYgdGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNvdXJjZVJlY3QgPSBzb3VyY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldFJlY3QgPSB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zX3ggPSBtb3VzZUV2ZW50Lm9mZnNldFggKyBzb3VyY2VSZWN0LmxlZnQgLSB0YXJnZXRSZWN0LmxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zX3kgPSBtb3VzZUV2ZW50Lm9mZnNldFkgKyBzb3VyY2VSZWN0LnRvcCAtIHRhcmdldFJlY3QudG9wO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NfeCA9IG1vdXNlRXZlbnQub2Zmc2V0WCB8fCBtb3VzZUV2ZW50LmNsaWVudFg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zX3kgPSBtb3VzZUV2ZW50Lm9mZnNldFkgfHwgbW91c2VFdmVudC5jbGllbnRZO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zX3ggPSBtb3VzZUV2ZW50Lm9mZnNldFggfHwgbW91c2VFdmVudC5jbGllbnRYO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zX3kgPSBtb3VzZUV2ZW50Lm9mZnNldFkgfHwgbW91c2VFdmVudC5jbGllbnRZO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc194ID0gcG9zX3ggKiAodGhpcy5yZXRpbmEuaXNSZXRpbmEgPyB0aGlzLmNhbnZhcy5weHJhdGlvIDogMSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NfeSA9IHBvc195ICogKHRoaXMucmV0aW5hLmlzUmV0aW5hID8gdGhpcy5jYW52YXMucHhyYXRpbyA6IDEpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJhY3Rpdml0eS5zdGF0dXMgPSAnbW91c2Vtb3ZlJztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvKiBlbCBvbiBvbm1vdXNlbGVhdmUgKi9cbiAgICAgICAgICAgICAgICB0aGlzLmludGVyYWN0aXZpdHkuZWwuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc194ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc195ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5LnN0YXR1cyA9ICdtb3VzZWxlYXZlJztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG9uIGNsaWNrIGV2ZW50ICovXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMub25jbGljay5lbmFibGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmludGVyYWN0aXZpdHkuZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmludGVyYWN0aXZpdHkuZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJhY3Rpdml0eS5tb3VzZS5jbGlja19wb3NfeCA9IHRoaXMuaW50ZXJhY3Rpdml0eS5tb3VzZS5wb3NfeDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGl2aXR5Lm1vdXNlLmNsaWNrX3Bvc195ID0gdGhpcy5pbnRlcmFjdGl2aXR5Lm1vdXNlLnBvc195O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmludGVyYWN0aXZpdHkubW91c2UuY2xpY2tfdGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuaW50ZXJhY3Rpdml0eS5ldmVudHMub25jbGljay5lbmFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5vcHRpb25zLmludGVyYWN0aXZpdHkuZXZlbnRzLm9uY2xpY2subW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgcEpTQ2xpY2tNb2RlLnB1c2g6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMucGFydGljbGVzLm1vdmUuZW5hYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcnRpY2xlcy5wdXNoKHRoaXMub3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLnB1c2gucGFydGljbGVzX25iLCB0aGlzLmludGVyYWN0aXZpdHkubW91c2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLnB1c2gucGFydGljbGVzX25iID09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcnRpY2xlcy5wdXNoKHRoaXMub3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLnB1c2gucGFydGljbGVzX25iLCB0aGlzLmludGVyYWN0aXZpdHkubW91c2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5vcHRpb25zLmludGVyYWN0aXZpdHkubW9kZXMucHVzaC5wYXJ0aWNsZXNfbmIgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNsZXMucHVzaCh0aGlzLm9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5wdXNoLnBhcnRpY2xlc19uYik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBwSlNDbGlja01vZGUucmVtb3ZlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcnRpY2xlcy5yZW1vdmUodGhpcy5vcHRpb25zLmludGVyYWN0aXZpdHkubW9kZXMucmVtb3ZlLnBhcnRpY2xlc19uYik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgcEpTQ2xpY2tNb2RlLmJ1YmJsZTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5idWJibGUuY2xpY2tpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHBKU0NsaWNrTW9kZS5yZXB1bHNlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcHVsc2UuY2xpY2tpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcHVsc2UuY291bnQgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcHVsc2UuZmluaXNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXB1bHNlLmNsaWNraW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHRoaXMub3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLnJlcHVsc2UuZHVyYXRpb24gKiAxMDAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlbnNpdHlBdXRvUGFydGljbGVzKCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnBhcnRpY2xlcy5udW1iZXIuZGVuc2l0eS5lbmFibGUpIHtcbiAgICAgICAgICAgIC8qIGNhbGMgYXJlYSAqL1xuICAgICAgICAgICAgbGV0IGFyZWEgPSB0aGlzLmNhbnZhcy5lbC53aWR0aCAqIHRoaXMuY2FudmFzLmVsLmhlaWdodCAvIDEwMDA7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnJldGluYS5pc1JldGluYSkge1xuICAgICAgICAgICAgICAgIGFyZWEgPSBhcmVhIC8gKCh0aGlzLmNhbnZhcy5weHJhdGlvKSAqIDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogY2FsYyBudW1iZXIgb2YgcGFydGljbGVzIGJhc2VkIG9uIGRlbnNpdHkgYXJlYSAqL1xuICAgICAgICAgICAgbGV0IG5iX3BhcnRpY2xlcyA9IGFyZWEgKiB0aGlzLm9wdGlvbnMucGFydGljbGVzLm51bWJlci52YWx1ZSAvIHRoaXMub3B0aW9ucy5wYXJ0aWNsZXMubnVtYmVyLmRlbnNpdHkudmFsdWVfYXJlYTtcblxuICAgICAgICAgICAgLyogYWRkIG9yIHJlbW92ZSBYIHBhcnRpY2xlcyAqL1xuICAgICAgICAgICAgbGV0IG1pc3NpbmdfcGFydGljbGVzID0gdGhpcy5wYXJ0aWNsZXMuYXJyYXkubGVuZ3RoIC0gbmJfcGFydGljbGVzO1xuXG4gICAgICAgICAgICBpZiAobWlzc2luZ19wYXJ0aWNsZXMgPCAwKVxuICAgICAgICAgICAgICAgIHRoaXMucGFydGljbGVzLnB1c2goTWF0aC5hYnMobWlzc2luZ19wYXJ0aWNsZXMpKTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnRpY2xlcy5yZW1vdmUobWlzc2luZ19wYXJ0aWNsZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVzdHJveXBKUygpIHtcbiAgICAgICAgaWYgKHRoaXMuZHJhd0FuaW1GcmFtZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5kcmF3QW5pbUZyYW1lKTtcblxuICAgICAgICB0aGlzLmNhbnZhcy5lbC5yZW1vdmUoKTtcblxuICAgICAgICBwSlNMb2FkZXIucEpTRG9tU2V0KFtdKTtcbiAgICB9XG5cbiAgICBleHBvcnRJbWcoKSB7XG4gICAgICAgIHdpbmRvdy5vcGVuKHRoaXMuY2FudmFzLmVsLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJyksICdfYmxhbmsnKTtcbiAgICB9XG5cbiAgICBhc3luYyBsb2FkSW1nKHR5cGU6IHN0cmluZykge1xuICAgICAgICB0aGlzLmltZy5lcnJvciA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5wYXJ0aWNsZXMuc2hhcGUuaW1hZ2Uuc3JjICE9ICcnKSB7XG4gICAgICAgICAgICAvLyBpZiAodHlwZSA9PSAnc3ZnJykge1xuICAgICAgICAgICAgLy8gICAgIGxldCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRoaXMub3B0aW9ucy5wYXJ0aWNsZXMuc2hhcGUuaW1hZ2Uuc3JjKTtcblxuICAgICAgICAgICAgLy8gICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICAgICAgLy8gICAgICAgICB0aGlzLnN2Zy5zb3VyY2UgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5jaGVja0JlZm9yZURyYXcoKTtcbiAgICAgICAgICAgIC8vICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwSlMgLSBJbWFnZSBub3QgZm91bmQnKTtcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5pbWcuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgLy8gICAgIH1cbiAgICAgICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbGV0IGltZyA9IG5ldyBJbWFnZSgpO1xuXG4gICAgICAgICAgICAgICAgaW1nLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW1nLm9iaiA9IGltZztcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrQmVmb3JlRHJhdygpO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaW1nLnNyYyA9IHRoaXMub3B0aW9ucy5wYXJ0aWNsZXMuc2hhcGUuaW1hZ2Uuc3JjO1xuICAgICAgICAgICAgLy8gfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcEpTIC0gTm8gaW1hZ2Uuc3JjJyk7XG4gICAgICAgICAgICB0aGlzLmltZy5lcnJvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXF1ZXN0RnJhbWUoY2FsbGJhY2s6IEZyYW1lUmVxdWVzdENhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3cucmVxdWVzdEFuaW1GcmFtZShjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgY2FuY2VsQW5pbWF0aW9uKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaGFuZGxlKTtcbiAgICB9XG5cbiAgICBkcmF3KHRpbWVzdGFtcDogRE9NSGlnaFJlc1RpbWVTdGFtcCkge1xuICAgICAgICAvLyBGUFMgbGltaXQgbG9naWNcbiAgICAgICAgLy8gSWYgd2UgYXJlIHRvbyBmYXN0LCBqdXN0IGRyYXcgd2l0aG91dCB1cGRhdGluZ1xuICAgICAgICB2YXIgZnBzX2xpbWl0ID0gdGhpcy5vcHRpb25zLmZwc19saW1pdDtcbiAgICAgICAgaWYgKGZwc19saW1pdCA+IDAgJiYgdGltZXN0YW1wIDwgdGhpcy5sYXN0RnJhbWVUaW1lICsgKDEwMDAgLyBmcHNfbGltaXQpKSB7XG4gICAgICAgICAgICB0aGlzLnJlcXVlc3RGcmFtZSh0aW1lc3RhbXAgPT4gdGhpcy5kcmF3KHRpbWVzdGFtcCkpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVsdGEgPSB0aW1lc3RhbXAgLSB0aGlzLmxhc3RGcmFtZVRpbWU7XG4gICAgICAgIHRoaXMubGFzdEZyYW1lVGltZSA9IHRpbWVzdGFtcDtcblxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnBhcnRpY2xlcy5zaGFwZS50eXBlID09IHBKU1NoYXBlVHlwZS5pbWFnZSkge1xuICAgICAgICAgICAgLy8gaWYgKHRoaXMuaW1nLnR5cGUgPT0gJ3N2ZycpIHtcbiAgICAgICAgICAgIC8vICAgICBpZiAodGhpcy5kcmF3QW5pbUZyYW1lICYmIHRoaXMuc3ZnLmNvdW50ID49IHRoaXMub3B0aW9ucy5wYXJ0aWNsZXMubnVtYmVyLnZhbHVlKSB7XG4gICAgICAgICAgICAvLyAgICAgICAgIHRoaXMucGFydGljbGVzLmRyYXcoZGVsdGEpO1xuXG4gICAgICAgICAgICAvLyAgICAgICAgIGlmICghdGhpcy5vcHRpb25zLnBhcnRpY2xlcy5tb3ZlLmVuYWJsZSkge1xuICAgICAgICAgICAgLy8gICAgICAgICAgICAgdGhpcy5jYW5jZWxBbmltYXRpb24odGhpcy5kcmF3QW5pbUZyYW1lKTtcbiAgICAgICAgICAgIC8vICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgIHRoaXMuZHJhd0FuaW1GcmFtZSA9IHRoaXMucmVxdWVzdEZyYW1lKHRpbWVzdGFtcCA9PiB0aGlzLmRyYXcodGltZXN0YW1wKSk7XG4gICAgICAgICAgICAvLyAgICAgICAgIH1cbiAgICAgICAgICAgIC8vICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gICAgICAgICBpZiAoIXRoaXMuaW1nLmVycm9yKSB7XG4gICAgICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLmRyYXdBbmltRnJhbWUgPSB0aGlzLnJlcXVlc3RGcmFtZSh0aW1lc3RhbXAgPT4gdGhpcy5kcmF3KHRpbWVzdGFtcCkpO1xuICAgICAgICAgICAgLy8gICAgICAgICB9XG4gICAgICAgICAgICAvLyAgICAgfVxuICAgICAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWcub2JqICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcnRpY2xlcy5kcmF3KGRlbHRhKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5kcmF3QW5pbUZyYW1lICE9PSB1bmRlZmluZWQgJiYgIXRoaXMub3B0aW9ucy5wYXJ0aWNsZXMubW92ZS5lbmFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsQW5pbWF0aW9uKHRoaXMuZHJhd0FuaW1GcmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRyYXdBbmltRnJhbWUgPSB0aGlzLnJlcXVlc3RGcmFtZSh0aW1lc3RhbXAgPT4gdGhpcy5kcmF3KHRpbWVzdGFtcCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmltZy5lcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3QW5pbUZyYW1lID0gdGhpcy5yZXF1ZXN0RnJhbWUodGltZXN0YW1wID0+IHRoaXMuZHJhdyh0aW1lc3RhbXApKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGFydGljbGVzLmRyYXcoZGVsdGEpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5wYXJ0aWNsZXMubW92ZS5lbmFibGUpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kcmF3QW5pbUZyYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW5jZWxBbmltYXRpb24odGhpcy5kcmF3QW5pbUZyYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhd0FuaW1GcmFtZSA9IHRoaXMucmVxdWVzdEZyYW1lKHRpbWVzdGFtcCA9PiB0aGlzLmRyYXcodGltZXN0YW1wKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGVja0JlZm9yZURyYXcoKSB7XG4gICAgICAgIC8vIGlmIHNoYXBlIGlzIGltYWdlXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucGFydGljbGVzLnNoYXBlLnR5cGUgPT0gcEpTU2hhcGVUeXBlLmltYWdlKSB7XG4gICAgICAgICAgICAvLyBpZiAodGhpcy5pbWcudHlwZSA9PSAnc3ZnJyAmJiB0aGlzLnN2Zy5zb3VyY2UgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyAgICAgdGhpcy5jaGVja0FuaW1GcmFtZSA9IHRoaXMucmVxdWVzdEZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIC8vICAgICAgICAgLy9UT0RPOiBDYW4ndCBmaW5kIGFueXdoZXJlIHRoaXMgY2hlY2tcbiAgICAgICAgICAgIC8vICAgICAgICAgLy9jaGVjaygpO1xuICAgICAgICAgICAgLy8gICAgIH0pO1xuICAgICAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jaGVja0FuaW1GcmFtZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbEFuaW1hdGlvbih0aGlzLmNoZWNrQW5pbUZyYW1lKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaW1nLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRyYXcoMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbml0KCk7XG4gICAgICAgICAgICB0aGlzLmRyYXcoMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm9jZXNzQnViYmxlKHA6IHBKU1BhcnRpY2xlLCBkaXN0X21vdXNlOiBudW1iZXIsIHRpbWVfc3BlbnQ6IG51bWJlciwgYnViYmxlX3BhcmFtOiBudW1iZXIsIHBhcnRpY2xlc19wYXJhbTogbnVtYmVyLCBwX29ial9idWJibGU6IG51bWJlciB8IHVuZGVmaW5lZCwgcF9vYmo6IG51bWJlciwgaWQ6IHBKU1Byb2Nlc3NCdWJibGVUeXBlKSB7XG4gICAgICAgIGNvbnN0IHBKUyA9IHRoaXM7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBwSlMub3B0aW9ucztcblxuICAgICAgICBpZiAoYnViYmxlX3BhcmFtICE9IHBhcnRpY2xlc19wYXJhbSkge1xuICAgICAgICAgICAgaWYgKCFwSlMuYnViYmxlLmR1cmF0aW9uX2VuZCkge1xuICAgICAgICAgICAgICAgIGlmIChkaXN0X21vdXNlIDw9IG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUuZGlzdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG9iajtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocF9vYmpfYnViYmxlICE9IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iaiA9IHBfb2JqX2J1YmJsZTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgb2JqID0gcF9vYmo7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvYmogIT0gYnViYmxlX3BhcmFtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBwX29iaiAtICh0aW1lX3NwZW50ICogKHBfb2JqIC0gYnViYmxlX3BhcmFtKSAvIG9wdGlvbnMuaW50ZXJhY3Rpdml0eS5tb2Rlcy5idWJibGUuZHVyYXRpb24pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gcEpTUHJvY2Vzc0J1YmJsZVR5cGUuc2l6ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLnJhZGl1c19idWJibGUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSBwSlNQcm9jZXNzQnViYmxlVHlwZS5vcGFjaXR5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAub3BhY2l0eV9idWJibGUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSBwSlNQcm9jZXNzQnViYmxlVHlwZS5zaXplKVxuICAgICAgICAgICAgICAgICAgICAgICAgcC5yYWRpdXNfYnViYmxlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gcEpTUHJvY2Vzc0J1YmJsZVR5cGUub3BhY2l0eSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHAub3BhY2l0eV9idWJibGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChwX29ial9idWJibGUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlX3RtcCA9IHBfb2JqIC0gKHRpbWVfc3BlbnQgKiAocF9vYmogLSBidWJibGVfcGFyYW0pIC8gb3B0aW9ucy5pbnRlcmFjdGl2aXR5Lm1vZGVzLmJ1YmJsZS5kdXJhdGlvbiksIGRpZiA9IGJ1YmJsZV9wYXJhbSAtIHZhbHVlX3RtcDtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBidWJibGVfcGFyYW0gKyBkaWY7XG5cbiAgICAgICAgICAgICAgICBpZiAoaWQgPT0gcEpTUHJvY2Vzc0J1YmJsZVR5cGUuc2l6ZSlcbiAgICAgICAgICAgICAgICAgICAgcC5yYWRpdXNfYnViYmxlID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKGlkID09IHBKU1Byb2Nlc3NCdWJibGVUeXBlLm9wYWNpdHkpXG4gICAgICAgICAgICAgICAgICAgIHAub3BhY2l0eV9idWJibGUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGluaXQoKSB7XG4gICAgICAgIC8qIGluaXQgY2FudmFzICsgcGFydGljbGVzICovXG4gICAgICAgIHRoaXMucmV0aW5hLmluaXQoKTtcbiAgICAgICAgdGhpcy5jYW52YXMuaW5pdCgpO1xuICAgICAgICB0aGlzLmNhbnZhcy5zaXplKCk7XG4gICAgICAgIHRoaXMuY2FudmFzLnBhaW50KCk7XG4gICAgICAgIHRoaXMucGFydGljbGVzLmNyZWF0ZSgpO1xuICAgICAgICB0aGlzLmRlbnNpdHlBdXRvUGFydGljbGVzKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgc3RhcnQoKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucGFydGljbGVzLnNoYXBlLnR5cGUgPT0gcEpTU2hhcGVUeXBlLmltYWdlKSB7XG4gICAgICAgICAgICB0aGlzLmltZy50eXBlID0gdGhpcy5vcHRpb25zLnBhcnRpY2xlcy5zaGFwZS5pbWFnZS5zcmMuc3Vic3RyKHRoaXMub3B0aW9ucy5wYXJ0aWNsZXMuc2hhcGUuaW1hZ2Uuc3JjLmxlbmd0aCAtIDMpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkSW1nKHRoaXMuaW1nLnR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGVja0JlZm9yZURyYXcoKTtcbiAgICAgICAgfVxuICAgIH1cbn0iXX0= |
@@ -33,3 +33,2 @@ import { pJSParticleImage, pJSColor, pJSCoordinates } from './pjsinterfaces'; | ||
checkOverlap(position?: pJSCoordinates): void; | ||
createSvgImg(): void; | ||
initBubble(): void; | ||
@@ -36,0 +35,0 @@ grab(): void; |
@@ -1,1 +0,1 @@ | ||
!function(i){var a={};function r(t){if(a[t])return a[t].exports;var e=a[t]={i:t,l:!1,exports:{}};return i[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}r.m=i,r.c=a,r.d=function(t,e,i){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(i,a,function(t){return e[t]}.bind(null,a));return i},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=10)}([function(t,e){t.exports=function(t){return t&&t.__esModule?t:{default:t}}},function(t,e){t.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e){function a(t,e){for(var i=0;i<e.length;i++){var a=e[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}t.exports=function(t,e,i){return e&&a(t.prototype,e),i&&a(t,i),t}},function(t,e){t.exports=function(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}},function(t,e,i){t.exports=i(11)},function(t,e){function c(t,e,i,a,r,n,s){try{var o=t[n](s),c=o.value}catch(t){return void i(t)}o.done?e(c):Promise.resolve(c).then(a,r)}t.exports=function(o){return function(){var t=this,s=arguments;return new Promise(function(e,i){var a=o.apply(t,s);function r(t){c(a,e,i,r,n,"next",t)}function n(t){c(a,e,i,r,n,"throw",t)}r(void 0)})}}},function(t,e,i){"use strict";var a,r,n,s,o,c,l,u,h,p,v,d,f,y;Object.defineProperty(e,"__esModule",{value:!0}),e.pJSProcessBubbleType=e.pJSClickMode=e.pJSHoverMode=e.pJSInteractivityDetect=e.pJSOutMode=e.pJSMoveDirection=e.pJSShapeType=void 0,e.pJSShapeType=a,(r=a||(e.pJSShapeType=a={})).circle="circle",r.edge="edge",r.triangle="triangle",r.polygon="polygon",r.star="star",r.image="image",r.square="square",r.heart="heart",r.char="char",r.character="character",r.line="line",e.pJSMoveDirection=n,(s=n||(e.pJSMoveDirection=n={})).none="none",s.top="top",s.topRight="top-right",s.right="right",s.bottomRight="bottom-right",s.bottom="bottom",s.bottomLeft="bottom-left",s.left="left",s.topLeft="top-left",e.pJSOutMode=o,(c=o||(e.pJSOutMode=o={})).out="out",c.bounce="bounce",c.bounceVertical="bounce-vertical",c.bounceHorizontal="bounce-horizontal",e.pJSInteractivityDetect=l,(u=l||(e.pJSInteractivityDetect=l={})).canvas="canvas",u.window="window",u.parent="parent",e.pJSHoverMode=h,(p=h||(e.pJSHoverMode=h={})).grab="grab",p.bubble="bubble",p.repulse="repulse",e.pJSClickMode=v,(d=v||(e.pJSClickMode=v={})).push="push",d.remove="remove",d.bubble="bubble",d.repulse="repulse",e.pJSProcessBubbleType=f,(y=f||(e.pJSProcessBubbleType=f={})).size="size",y.opacity="opacity"},function(t,e,i){"use strict";var a=i(0);Object.defineProperty(e,"__esModule",{value:!0}),e.pJSUtils=void 0;var r=a(i(1)),n=a(i(2)),s=function(){function a(){(0,r.default)(this,a)}return(0,n.default)(a,null,[{key:"hexToRgb",value:function(t){t=t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(t,e,i,a){return e+e+i+i+a+a});var e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}},{key:"clamp",value:function(t,e,i){return Math.min(Math.max(t,e),i)}},{key:"isInArray",value:function(t,e){return t==e||-1<e.indexOf(t)}},{key:"deepExtend",value:function(t,e){for(var i in e)e[i]&&e[i].constructor&&e[i].constructor===Object?(t[i]=t[i]||{},a.deepExtend(t[i],e[i])):t[i]=e[i];return t}}]),a}();e.pJSUtils=s},function(t,e,i){"use strict";var a=i(0);Object.defineProperty(e,"__esModule",{value:!0}),e.pJSConstants=void 0;function r(){(0,n.default)(this,r)}var n=a(i(1)),s=a(i(3)),o=i(6);e.pJSConstants=r,(0,s.default)(r,"canvasClass","particles-canvas-el"),(0,s.default)(r,"defaultOptions",{particles:{number:{value:400,density:{enable:!0,value_area:800}},color:{value:"#fff"},shape:{type:o.pJSShapeType.circle,stroke:{width:0,color:"#ff0000"},polygon:{nb_sides:5},character:{value:"*",font:"Verdana",weight:"400"},image:{src:"",width:100,height:100,replace_color:!0}},opacity:{value:1,random:!1,anim:{enable:!1,speed:2,opacity_min:0,sync:!1}},size:{value:20,random:!1,anim:{enable:!1,speed:20,size_min:0,sync:!1}},line_linked:{enable:!0,distance:100,color:"#fff",opacity:1,width:1},move:{enable:!0,speed:2,direction:o.pJSMoveDirection.none,random:!1,straight:!1,out_mode:o.pJSOutMode.out,bounce:!1,attract:{enable:!1,rotateX:3e3,rotateY:3e3}}},interactivity:{detect_on:o.pJSInteractivityDetect.canvas,events:{onhover:{enable:!0,mode:o.pJSHoverMode.grab,parallax:{enable:!1,force:2,smooth:10}},onclick:{enable:!0,mode:o.pJSClickMode.push},resize:!0},modes:{grab:{distance:100,line_linked:{opacity:1}},bubble:{distance:200,size:80,duration:.4,opacity:1},repulse:{distance:200,duration:.4},push:{particles_nb:4},remove:{particles_nb:2}}},retina_detect:!1,fps_limit:60})},function(t,e,i){"use strict";var a=i(0);Object.defineProperty(e,"__esModule",{value:!0}),e.pJSLoader=void 0;var s=a(i(4)),r=a(i(5)),n=a(i(1)),o=a(i(2)),u=i(12),h=i(8),c=[],l=function(){function l(){(0,n.default)(this,l)}var a;return(0,o.default)(l,null,[{key:"pJSDom",value:function(){return c||l.pJSDomSet([]),c}},{key:"pJSDomSet",value:function(t){c=t}},{key:"load",value:function(t,e){var i,a=document.getElementById(t);if(a){var r=a.getElementsByClassName(h.pJSConstants.canvasClass);if(r.length)for(;0<r.length;)a.removeChild(r[0])}var n=document.createElement("canvas");if(n.className=h.pJSConstants.canvasClass,n.style.width="100%",n.style.height="100%",null!=(null===(i=document.getElementById(t))||void 0===i?void 0:i.appendChild(n))){for(var s=new u.pJSContainer(t,e),o=!1,c=0;c<l.pJSDom().length;c++)l.pJSDom()[c].canvas.tag_id==t&&(o=!0,l.pJSDom()[c]=s);return o||l.pJSDom().push(s),s}}},{key:"loadJSON",value:(a=(0,r.default)(s.default.mark(function t(e,i,a){var r,n;return s.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,fetch(i);case 2:if((r=t.sent).ok)return t.next=6,r.json();t.next=11;break;case 6:n=t.sent,l.load(e,n),a&&a(),t.next=13;break;case 11:console.error("Error pJS - fetch status: ".concat(r.status)),console.error("Error pJS - File config not found");case 13:case"end":return t.stop()}},t)})),function(t,e,i){return a.apply(this,arguments)})}]),l}();e.pJSLoader=l},function(t,e,i){"use strict";var a=i(0),r=a(i(4)),n=a(i(5)),s=i(9);window.requestAnimFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)},window.cancelRequestAnimFrame=window.cancelAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame||window.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame||clearTimeout,window.particlesJS=function(t,e){s.pJSLoader.load(t,e)},window.particlesJS.load=function(){var a=(0,n.default)(r.default.mark(function t(e,i,a){return r.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,s.pJSLoader.loadJSON(e,i,a);case 2:case"end":return t.stop()}},t)}));return function(t,e,i){return a.apply(this,arguments)}}(),window.particlesJS.setOnClickHandler=function(t){var e=s.pJSLoader.pJSDom();if(0==e.length)throw new Error("Can only set click handlers after calling particlesJS.load() or particlesJS()");for(var i=0;i<e.length;i++){var a=e[i].interactivity.el;a&&a.addEventListener("click",t)}},window.pJSDom=function(){return s.pJSLoader.pJSDom()}},function(t,e,i){var a=function(n){"use strict";var c,t=Object.prototype,l=t.hasOwnProperty,e="function"==typeof Symbol?Symbol:{},r=e.iterator||"@@iterator",i=e.asyncIterator||"@@asyncIterator",a=e.toStringTag||"@@toStringTag";function s(t,e,i,a){var n,s,o,c,r=e&&e.prototype instanceof m?e:m,l=Object.create(r.prototype),u=new C(a||[]);return l._invoke=(n=t,s=i,o=u,c=p,function(t,e){if(c===d)throw new Error("Generator is already running");if(c===f){if("throw"===t)throw e;return A()}for(o.method=t,o.arg=e;;){var i=o.delegate;if(i){var a=k(i,o);if(a){if(a===y)continue;return a}}if("next"===o.method)o.sent=o._sent=o.arg;else if("throw"===o.method){if(c===p)throw c=f,o.arg;o.dispatchException(o.arg)}else"return"===o.method&&o.abrupt("return",o.arg);c=d;var r=h(n,s,o);if("normal"===r.type){if(c=o.done?f:v,r.arg===y)continue;return{value:r.arg,done:o.done}}"throw"===r.type&&(c=f,o.method="throw",o.arg=r.arg)}}),l}function h(t,e,i){try{return{type:"normal",arg:t.call(e,i)}}catch(t){return{type:"throw",arg:t}}}n.wrap=s;var p="suspendedStart",v="suspendedYield",d="executing",f="completed",y={};function m(){}function o(){}function u(){}var b={};b[r]=function(){return this};var g=Object.getPrototypeOf,x=g&&g(g(T([])));x&&x!==t&&l.call(x,r)&&(b=x);var S=u.prototype=m.prototype=Object.create(b);function w(t){["next","throw","return"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function _(c){var e;this._invoke=function(i,a){function t(){return new Promise(function(t,e){!function e(t,i,a,r){var n=h(c[t],c,i);if("throw"!==n.type){var s=n.arg,o=s.value;return o&&"object"==typeof o&&l.call(o,"__await")?Promise.resolve(o.__await).then(function(t){e("next",t,a,r)},function(t){e("throw",t,a,r)}):Promise.resolve(o).then(function(t){s.value=t,a(s)},function(t){return e("throw",t,a,r)})}r(n.arg)}(i,a,t,e)})}return e=e?e.then(t,t):t()}}function k(t,e){var i=t.iterator[e.method];if(i===c){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=c,k(t,e),"throw"===e.method))return y;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return y}var a=h(i,t.iterator,e.arg);if("throw"===a.type)return e.method="throw",e.arg=a.arg,e.delegate=null,y;var r=a.arg;return r?r.done?(e[t.resultName]=r.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=c),e.delegate=null,y):r:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,y)}function J(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function M(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function C(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(J,this),this.reset(!0)}function T(e){if(e){var t=e[r];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function t(){for(;++i<e.length;)if(l.call(e,i))return t.value=e[i],t.done=!1,t;return t.value=c,t.done=!0,t};return a.next=a}}return{next:A}}function A(){return{value:c,done:!0}}return o.prototype=S.constructor=u,u.constructor=o,u[a]=o.displayName="GeneratorFunction",n.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===o||"GeneratorFunction"===(e.displayName||e.name))},n.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,u):(t.__proto__=u,a in t||(t[a]="GeneratorFunction")),t.prototype=Object.create(S),t},n.awrap=function(t){return{__await:t}},w(_.prototype),_.prototype[i]=function(){return this},n.AsyncIterator=_,n.async=function(t,e,i,a){var r=new _(s(t,e,i,a));return n.isGeneratorFunction(e)?r:r.next().then(function(t){return t.done?t.value:r.next()})},w(S),S[a]="Generator",S[r]=function(){return this},S.toString=function(){return"[object Generator]"},n.keys=function(i){var a=[];for(var t in i)a.push(t);return a.reverse(),function t(){for(;a.length;){var e=a.pop();if(e in i)return t.value=e,t.done=!1,t}return t.done=!0,t}},n.values=T,C.prototype={constructor:C,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=c,this.done=!1,this.delegate=null,this.method="next",this.arg=c,this.tryEntries.forEach(M),!t)for(var e in this)"t"===e.charAt(0)&&l.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=c)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(i){if(this.done)throw i;var a=this;function t(t,e){return n.type="throw",n.arg=i,a.next=t,e&&(a.method="next",a.arg=c),!!e}for(var e=this.tryEntries.length-1;0<=e;--e){var r=this.tryEntries[e],n=r.completion;if("root"===r.tryLoc)return t("end");if(r.tryLoc<=this.prev){var s=l.call(r,"catchLoc"),o=l.call(r,"finallyLoc");if(s&&o){if(this.prev<r.catchLoc)return t(r.catchLoc,!0);if(this.prev<r.finallyLoc)return t(r.finallyLoc)}else if(s){if(this.prev<r.catchLoc)return t(r.catchLoc,!0)}else{if(!o)throw new Error("try statement without catch or finally");if(this.prev<r.finallyLoc)return t(r.finallyLoc)}}}},abrupt:function(t,e){for(var i=this.tryEntries.length-1;0<=i;--i){var a=this.tryEntries[i];if(a.tryLoc<=this.prev&&l.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var r=a;break}}r&&("break"===t||"continue"===t)&&r.tryLoc<=e&&e<=r.finallyLoc&&(r=null);var n=r?r.completion:{};return n.type=t,n.arg=e,r?(this.method="next",this.next=r.finallyLoc,y):this.complete(n)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;0<=e;--e){var i=this.tryEntries[e];if(i.finallyLoc===t)return this.complete(i.completion,i.afterLoc),M(i),y}},catch:function(t){for(var e=this.tryEntries.length-1;0<=e;--e){var i=this.tryEntries[e];if(i.tryLoc===t){var a=i.completion;if("throw"===a.type){var r=a.arg;M(i)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,i){return this.delegate={iterator:T(t),resultName:e,nextLoc:i},"next"===this.method&&(this.arg=c),y}},n}(t.exports);try{regeneratorRuntime=a}catch(t){Function("r","regeneratorRuntime = r")(a)}},function(t,e,i){"use strict";var a=i(0);Object.defineProperty(e,"__esModule",{value:!0}),e.pJSContainer=void 0;var n=a(i(4)),r=a(i(5)),s=a(i(1)),o=a(i(2)),c=a(i(3)),l=i(7),u=i(13),h=i(14),p=i(15),v=i(6),d=i(9),f=i(8),y=function(){function a(t,e){var i=this;(0,s.default)(this,a),(0,c.default)(this,"interactivity",void 0),(0,c.default)(this,"options",void 0),(0,c.default)(this,"retina",void 0),(0,c.default)(this,"canvas",void 0),(0,c.default)(this,"particles",void 0),(0,c.default)(this,"checkAnimFrame",void 0),(0,c.default)(this,"drawAnimFrame",void 0),(0,c.default)(this,"bubble",void 0),(0,c.default)(this,"repulse",void 0),(0,c.default)(this,"svg",void 0),(0,c.default)(this,"img",void 0),(0,c.default)(this,"lastFrameTime",0),(0,c.default)(this,"pageHidden",!1),this.retina=new u.pJSRetina(this),this.canvas=new h.pJSCanvas(this,t),this.particles=new p.pJSParticles(this),this.interactivity={mouse:{}},this.svg={source:void 0,count:0},this.img={},this.bubble={},this.repulse={},this.options=f.pJSConstants.defaultOptions,e&&l.pJSUtils.deepExtend(this.options,e),this.eventsListeners(),this.start().then(function(){document.addEventListener("visibilitychange",function(){return i.handleVisibilityChange()},!1)})}var t,e;return(0,o.default)(a,[{key:"handleVisibilityChange",value:function(){document.hidden?(this.pageHidden=!0,this.drawAnimFrame&&this.cancelAnimation(this.drawAnimFrame)):(this.pageHidden=!1,this.lastFrameTime=performance.now(),this.draw(0))}},{key:"eventsListeners",value:function(){var c=this;this.options.interactivity.detect_on==v.pJSInteractivityDetect.window?this.interactivity.el=window:"parent"==this.options.interactivity.detect_on?this.interactivity.el=this.canvas.el.parentNode:this.interactivity.el=this.canvas.el,(this.options.interactivity.events.onhover.enable||this.options.interactivity.events.onclick.enable)&&this.interactivity.el&&(this.interactivity.el.addEventListener("mousemove",function(t){var e,i,a=t;if(c.interactivity.el==window)e=a.clientX,i=a.clientY;else if(c.options.interactivity.detect_on==v.pJSInteractivityDetect.parent){var r=a.srcElement,n=a.currentTarget;if(r&&n){var s=r.getBoundingClientRect(),o=n.getBoundingClientRect();e=a.offsetX+s.left-o.left,i=a.offsetY+s.top-o.top}else e=a.offsetX||a.clientX,i=a.offsetY||a.clientY}else e=a.offsetX||a.clientX,i=a.offsetY||a.clientY;c.interactivity.mouse.pos_x=e*(c.retina.isRetina?c.canvas.pxratio:1),c.interactivity.mouse.pos_y=i*(c.retina.isRetina?c.canvas.pxratio:1),c.interactivity.status="mousemove"}),this.interactivity.el.addEventListener("mouseleave",function(){c.interactivity.mouse.pos_x=null,c.interactivity.mouse.pos_y=null,c.interactivity.status="mouseleave"})),this.options.interactivity.events.onclick.enable&&this.interactivity.el&&this.interactivity.el.addEventListener("click",function(){if(c.interactivity.mouse.click_pos_x=c.interactivity.mouse.pos_x,c.interactivity.mouse.click_pos_y=c.interactivity.mouse.pos_y,c.interactivity.mouse.click_time=(new Date).getTime(),c.options.interactivity.events.onclick.enable)switch(c.options.interactivity.events.onclick.mode){case v.pJSClickMode.push:c.options.particles.move.enable||1==c.options.interactivity.modes.push.particles_nb?c.particles.push(c.options.interactivity.modes.push.particles_nb,c.interactivity.mouse):1<c.options.interactivity.modes.push.particles_nb&&c.particles.push(c.options.interactivity.modes.push.particles_nb);break;case v.pJSClickMode.remove:c.particles.remove(c.options.interactivity.modes.remove.particles_nb);break;case v.pJSClickMode.bubble:c.bubble.clicking=!0;break;case v.pJSClickMode.repulse:c.repulse.clicking=!0,c.repulse.count=0,c.repulse.finish=!1,setTimeout(function(){c.repulse.clicking=!1},1e3*c.options.interactivity.modes.repulse.duration)}})}},{key:"densityAutoParticles",value:function(){if(this.options.particles.number.density.enable){var t=this.canvas.el.width*this.canvas.el.height/1e3;this.retina.isRetina&&(t/=2*this.canvas.pxratio);var e=t*this.options.particles.number.value/this.options.particles.number.density.value_area,i=this.particles.array.length-e;i<0?this.particles.push(Math.abs(i)):this.particles.remove(i)}}},{key:"destroypJS",value:function(){void 0!==this.drawAnimFrame&&cancelAnimationFrame(this.drawAnimFrame),this.canvas.el.remove(),d.pJSLoader.pJSDomSet([])}},{key:"exportImg",value:function(){window.open(this.canvas.el.toDataURL("image/png"),"_blank")}},{key:"loadImg",value:(e=(0,r.default)(n.default.mark(function t(e){var i,a,r=this;return n.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(this.img.error=void 0,""==this.options.particles.shape.image.src){t.next=22;break}if("svg"==e)return t.next=5,fetch(this.options.particles.shape.image.src);t.next=17;break;case 5:if((i=t.sent).ok)return t.next=9,i.text();t.next=13;break;case 9:this.svg.source=t.sent,this.checkBeforeDraw(),t.next=15;break;case 13:console.error("Error pJS - Image not found"),this.img.error=!0;case 15:t.next=20;break;case 17:(a=new Image).addEventListener("load",function(){r.img.obj=a,r.checkBeforeDraw()}),a.src=this.options.particles.shape.image.src;case 20:t.next=24;break;case 22:console.error("Error pJS - No image.src"),this.img.error=!0;case 24:case"end":return t.stop()}},t,this)})),function(t){return e.apply(this,arguments)})},{key:"requestFrame",value:function(t){return window.requestAnimFrame(t)}},{key:"cancelAnimation",value:function(t){return window.cancelAnimationFrame(t)}},{key:"draw",value:function(t){var e=this,i=this.options.fps_limit;if(0<i&&t<this.lastFrameTime+1e3/i)this.requestFrame(function(t){return e.draw(t)});else{var a=t-this.lastFrameTime;this.lastFrameTime=t,this.options.particles.shape.type==v.pJSShapeType.image?"svg"==this.img.type?this.drawAnimFrame&&this.svg.count>=this.options.particles.number.value?(this.particles.draw(a),this.options.particles.move.enable?this.drawAnimFrame=this.requestFrame(function(t){return e.draw(t)}):this.cancelAnimation(this.drawAnimFrame)):this.img.error||(this.drawAnimFrame=this.requestFrame(function(t){return e.draw(t)})):null!=this.img.obj?(this.particles.draw(a),void 0===this.drawAnimFrame||this.options.particles.move.enable?this.drawAnimFrame=this.requestFrame(function(t){return e.draw(t)}):this.cancelAnimation(this.drawAnimFrame)):this.img.error||(this.drawAnimFrame=this.requestFrame(function(t){return e.draw(t)})):(this.particles.draw(a),this.options.particles.move.enable?this.drawAnimFrame=this.requestFrame(function(t){return e.draw(t)}):void 0!==this.drawAnimFrame&&this.cancelAnimation(this.drawAnimFrame))}}},{key:"checkBeforeDraw",value:function(){this.options.particles.shape.type==v.pJSShapeType.image?"svg"==this.img.type&&null==this.svg.source?this.checkAnimFrame=this.requestFrame(function(){}):(this.checkAnimFrame&&this.cancelAnimation(this.checkAnimFrame),this.img.error||(this.init(),this.draw(0))):(this.init(),this.draw(0))}},{key:"processBubble",value:function(t,e,i,a,r,n,s,o){var c=this.options;if(a!=r)if(this.bubble.duration_end){if(null!=n){var l=a+(a-(s-i*(s-a)/c.interactivity.modes.bubble.duration));o==v.pJSProcessBubbleType.size&&(t.radius_bubble=l),o==v.pJSProcessBubbleType.opacity&&(t.opacity_bubble=l)}}else if(e<=c.interactivity.modes.bubble.distance){if((null!=n?n:s)!=a){var u=s-i*(s-a)/c.interactivity.modes.bubble.duration;o==v.pJSProcessBubbleType.size&&(t.radius_bubble=u),o==v.pJSProcessBubbleType.opacity&&(t.opacity_bubble=u)}}else o==v.pJSProcessBubbleType.size&&(t.radius_bubble=void 0),o==v.pJSProcessBubbleType.opacity&&(t.opacity_bubble=void 0)}},{key:"init",value:function(){this.retina.init(),this.canvas.init(),this.canvas.size(),this.canvas.paint(),this.particles.create(),this.densityAutoParticles()}},{key:"start",value:(t=(0,r.default)(n.default.mark(function t(){return n.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(this.options.particles.shape.type==v.pJSShapeType.image)return this.img.type=this.options.particles.shape.image.src.substr(this.options.particles.shape.image.src.length-3),t.next=4,this.loadImg(this.img.type);t.next=6;break;case 4:t.next=7;break;case 6:this.checkBeforeDraw();case 7:case"end":return t.stop()}},t,this)})),function(){return t.apply(this,arguments)})}]),a}();e.pJSContainer=y},function(t,e,i){"use strict";var a=i(0);Object.defineProperty(e,"__esModule",{value:!0}),e.pJSRetina=void 0;var r=a(i(1)),n=a(i(2)),s=a(i(3)),o=function(){function e(t){(0,r.default)(this,e),(0,s.default)(this,"pJSContainer",void 0),(0,s.default)(this,"isRetina",void 0),this.pJSContainer=t,this.isRetina=!1}return(0,n.default)(e,[{key:"init",value:function(){var t=this.pJSContainer,e=t.options;e.retina_detect&&1<window.devicePixelRatio?(t.canvas.pxratio=window.devicePixelRatio,this.isRetina=!0):(t.canvas.pxratio=1,this.isRetina=!1),t.canvas.w=t.canvas.el.offsetWidth*t.canvas.pxratio,t.canvas.h=t.canvas.el.offsetHeight*t.canvas.pxratio,e.particles.size.value=e.particles.size.value*t.canvas.pxratio,e.particles.size.anim.speed=e.particles.size.anim.speed*t.canvas.pxratio,e.particles.move.speed=e.particles.move.speed*t.canvas.pxratio,e.particles.line_linked.distance=e.particles.line_linked.distance*t.canvas.pxratio,e.interactivity.modes.grab.distance=e.interactivity.modes.grab.distance*t.canvas.pxratio,e.interactivity.modes.bubble.distance=e.interactivity.modes.bubble.distance*t.canvas.pxratio,e.particles.line_linked.width=e.particles.line_linked.width*t.canvas.pxratio,e.interactivity.modes.bubble.size=e.interactivity.modes.bubble.size*t.canvas.pxratio,e.interactivity.modes.repulse.distance=e.interactivity.modes.repulse.distance*t.canvas.pxratio}}]),e}();e.pJSRetina=o},function(t,e,i){"use strict";var a=i(0);Object.defineProperty(e,"__esModule",{value:!0}),e.pJSCanvas=void 0;var r=a(i(1)),n=a(i(2)),s=a(i(3)),o=i(8),c=function(){function a(t,e){(0,r.default)(this,a),(0,s.default)(this,"pJSContainer",void 0),(0,s.default)(this,"el",void 0),(0,s.default)(this,"ctx",void 0),(0,s.default)(this,"w",void 0),(0,s.default)(this,"h",void 0),(0,s.default)(this,"tag_id",void 0),(0,s.default)(this,"pxratio",void 0);var i=document.querySelector("#".concat(e," > .").concat(o.pJSConstants.canvasClass));this.pJSContainer=t,this.el=i,this.w=i.offsetWidth,this.h=i.offsetHeight,this.tag_id=e,this.pxratio=1,this.ctx=this.el.getContext("2d")}return(0,n.default)(a,[{key:"init",value:function(){}},{key:"size",value:function(){var t=this,e=this.pJSContainer,i=e.options;this.el.width=this.w,this.el.height=this.h,e&&i.interactivity.events.resize&&window.addEventListener("resize",function(){t.w=t.el.offsetWidth,t.h=t.el.offsetHeight,e.retina.isRetina&&(t.w*=t.pxratio,t.h*=t.pxratio),t.el.width=t.w,t.el.height=t.h,i.particles.move.enable||(e.particles.empty(),e.particles.create(),e.particles.draw(0)),e.densityAutoParticles()})}},{key:"paint",value:function(){this.ctx&&this.ctx.fillRect(0,0,this.w,this.h)}},{key:"clear",value:function(){this.ctx&&this.ctx.clearRect(0,0,this.w,this.h)}}]),a}();e.pJSCanvas=c},function(t,e,i){"use strict";var a=i(0);Object.defineProperty(e,"__esModule",{value:!0}),e.pJSParticles=void 0;var r=a(i(4)),n=a(i(5)),s=a(i(1)),o=a(i(2)),c=a(i(3)),l=i(16),p=i(7),v=i(6),u=function(){function e(t){(0,s.default)(this,e),(0,c.default)(this,"pJSContainer",void 0),(0,c.default)(this,"array",void 0),(0,c.default)(this,"pushing",void 0),this.pJSContainer=t,this.array=[]}var t;return(0,o.default)(e,[{key:"create",value:function(){for(var t=this.pJSContainer,e=t.options,i=0;i<e.particles.number.value;i++){var a=new l.pJSParticle(t,e.particles.color,e.particles.opacity.value);this.array.push(a)}}},{key:"update",value:function(t){for(var e=this.pJSContainer,i=e.options,a=this.array.length,r=0;r<a;r++){var n=this.array[r];if(i.particles.move.enable){var s=i.particles.move.speed/10;n.x+=n.vx*s*t,n.y+=n.vy*s*t}if(e.interactivity.mouse.pos_x&&i.interactivity.events.onhover.parallax.enable){var o=(e.interactivity.mouse.pos_x-window.innerWidth/2)*(n.radius/i.interactivity.events.onhover.parallax.force);n.offsetX+=(o-n.offsetX)/i.interactivity.events.onhover.parallax.smooth;var c=((e.interactivity.mouse.pos_y||0)-window.innerHeight/2)*(n.radius/i.interactivity.events.onhover.parallax.force);n.offsetY+=(c-n.offsetY)/i.interactivity.events.onhover.parallax.smooth}i.particles.opacity.anim.enable&&(1==n.opacity_status?(n.opacity>=i.particles.opacity.value&&(n.opacity_status=!1),n.opacity+=n.vo||0):(n.opacity<=i.particles.opacity.anim.opacity_min&&(n.opacity_status=!0),n.opacity-=n.vo||0),n.opacity<0&&(n.opacity=0)),i.particles.size.anim.enable&&(1==n.size_status?(n.radius>=i.particles.size.value&&(n.size_status=!1),n.radius+=n.vs||0):(n.radius<=i.particles.size.anim.size_min&&(n.size_status=!0),n.radius-=n.vs||0),n.radius<0&&(n.radius=0));var l=void 0;switch(l=i.particles.move.out_mode==v.pJSOutMode.bounce||i.particles.move.out_mode==v.pJSOutMode.bounceVertical?{x_left:n.radius,x_right:e.canvas.w,y_top:n.radius,y_bottom:e.canvas.h}:{x_left:-n.radius-n.offsetX,x_right:e.canvas.w+n.radius+n.offsetX,y_top:-n.radius-n.offsetY,y_bottom:e.canvas.h+n.radius-n.offsetY},n.x-n.radius>e.canvas.w-n.offsetX?(n.x=l.x_left,n.y=Math.random()*e.canvas.h):n.x+n.radius<0-n.offsetX&&(n.x=l.x_right,n.y=Math.random()*e.canvas.h),n.y-n.radius>e.canvas.h-n.offsetY?(n.y=l.y_top,n.x=Math.random()*e.canvas.w):n.y+n.radius<0-n.offsetY&&(n.y=l.y_bottom,n.x=Math.random()*e.canvas.w),i.particles.move.out_mode){case v.pJSOutMode.bounce:(n.x+n.offsetX+n.radius>e.canvas.w||n.x+n.offsetX-n.radius<0)&&(n.vx=-n.vx),(n.y+n.offsetY+n.radius>e.canvas.h||n.y+n.offsetY-n.radius<0)&&(n.vy=-n.vy);break;case v.pJSOutMode.bounceVertical:n.y+n.radius>e.canvas.h&&(n.vy=-n.vy),n.y-n.radius<0&&(n.vy=-n.vy);break;case v.pJSOutMode.bounceHorizontal:(n.x+n.radius>e.canvas.w||n.x-n.radius<0)&&(n.vx=-n.vx)}if(p.pJSUtils.isInArray(v.pJSHoverMode.grab,i.interactivity.events.onhover.mode)&&n.grab(),(p.pJSUtils.isInArray(v.pJSHoverMode.bubble,i.interactivity.events.onhover.mode)||p.pJSUtils.isInArray(v.pJSClickMode.bubble,i.interactivity.events.onclick.mode))&&n.bubble(),(p.pJSUtils.isInArray(v.pJSHoverMode.repulse,i.interactivity.events.onhover.mode)||p.pJSUtils.isInArray(v.pJSClickMode.repulse,i.interactivity.events.onclick.mode))&&n.repulse(),i.particles.line_linked.enable||i.particles.move.attract.enable)for(var u=r+1;u<a;u++){var h=this.array[u];i.particles.line_linked.enable&&n.link(h),i.particles.move.attract.enable&&n.attract(h),i.particles.move.bounce&&n.bounce(h)}}}},{key:"draw",value:function(t){var e=this.pJSContainer;e.canvas.ctx&&e.canvas.ctx.clearRect(0,0,e.canvas.w,e.canvas.h),e.particles.update(t);var i=!0,a=!1,r=void 0;try{for(var n,s=this.array[Symbol.iterator]();!(i=(n=s.next()).done);i=!0){n.value.draw()}}catch(t){a=!0,r=t}finally{try{i||null==s.return||s.return()}finally{if(a)throw r}}}},{key:"empty",value:function(){this.array=[]}},{key:"push",value:function(t,e){var i=this.pJSContainer,a=i.options;this.pushing=!0;for(var r=0;r<t;r++){var n=new l.pJSParticle(i,a.particles.color,a.particles.opacity.value,{x:e&&e.pos_x?e.pos_x:Math.random()*i.canvas.w,y:e&&e.pos_y?e.pos_y:Math.random()*i.canvas.h});this.array.push(n)}a.particles.move.enable||this.draw(0),this.pushing=!1}},{key:"remove",value:function(t){var e=this.pJSContainer.options;this.array.splice(0,t),e.particles.move.enable||this.draw(0)}},{key:"refresh",value:(t=(0,n.default)(r.default.mark(function t(){var e;return r.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return(e=this.pJSContainer).checkAnimFrame&&e.cancelAnimation(e.checkAnimFrame),e.drawAnimFrame&&e.cancelAnimation(e.drawAnimFrame),e.svg.source=void 0,e.svg.count=0,e.img.obj=void 0,this.empty(),e.canvas.clear(),t.next=10,e.start();case 10:case"end":return t.stop()}},t,this)})),function(){return t.apply(this,arguments)})}]),e}();e.pJSParticles=u},function(t,e,i){"use strict";var a=i(0);Object.defineProperty(e,"__esModule",{value:!0}),e.pJSParticle=void 0;var d=a(i(17)),f=a(i(1)),r=a(i(2)),y=a(i(3)),m=i(7),g=i(6),n=function(){function v(t,e,i,a){(0,f.default)(this,v),(0,y.default)(this,"pJSContainer",void 0),(0,y.default)(this,"radius",void 0),(0,y.default)(this,"size_status",void 0),(0,y.default)(this,"vs",void 0),(0,y.default)(this,"x",void 0),(0,y.default)(this,"y",void 0),(0,y.default)(this,"offsetX",void 0),(0,y.default)(this,"offsetY",void 0),(0,y.default)(this,"color",void 0),(0,y.default)(this,"opacity",void 0),(0,y.default)(this,"opacity_status",void 0),(0,y.default)(this,"vo",void 0),(0,y.default)(this,"vx",void 0),(0,y.default)(this,"vy",void 0),(0,y.default)(this,"vx_i",void 0),(0,y.default)(this,"vy_i",void 0),(0,y.default)(this,"shape",void 0),(0,y.default)(this,"img",void 0),(0,y.default)(this,"radius_bubble",void 0),(0,y.default)(this,"opacity_bubble",void 0),(0,y.default)(this,"text",void 0);var r,n=(this.pJSContainer=t).options;if(this.radius=(n.particles.size.random?Math.random():1)*n.particles.size.value,n.particles.size.anim.enable&&(this.size_status=!1,this.vs=n.particles.size.anim.speed/100,n.particles.size.anim.sync||(this.vs=this.vs*Math.random())),this.x=a?a.x:Math.random()*t.canvas.w,this.y=a?a.y:Math.random()*t.canvas.h,this.x>t.canvas.w-2*this.radius?this.x=this.x-this.radius:this.x<2*this.radius&&(this.x=this.x+this.radius),this.y>t.canvas.h-2*this.radius?this.y=this.y-this.radius:this.y<2*this.radius&&(this.y=this.y+this.radius),this.offsetX=0,this.offsetY=0,n.particles.move.bounce&&this.checkOverlap(a),this.color={},"object"==(0,d.default)(e.value))if(e.value instanceof Array){var s=n.particles.color.value,o=e.value[Math.floor(Math.random()*s.length)];this.color.rgb=m.pJSUtils.hexToRgb(o)}else{var c=e.value;c&&null!=c.r&&null!=c.g&&null!=c.b&&(this.color.rgb={r:c.r,g:c.g,b:c.b});var l=e.value;null!=l.h&&null!=l.s&&null!=l.l&&(this.color.hsl={h:l.h,s:l.s,l:l.l})}else"string"==typeof e.value&&("random"==e.value?this.color.rgb={r:Math.floor(256*Math.random())+0,g:Math.floor(256*Math.random())+0,b:Math.floor(256*Math.random())+0}:(this.color={},this.color.rgb=m.pJSUtils.hexToRgb(e.value)));switch(this.opacity=(n.particles.opacity.random?Math.random():1)*n.particles.opacity.value,n.particles.opacity.anim.enable&&(this.opacity_status=!1,this.vo=n.particles.opacity.anim.speed/100,n.particles.opacity.anim.sync||(this.vo=this.vo*Math.random())),n.particles.move.direction){case g.pJSMoveDirection.top:r={x:0,y:-1};break;case g.pJSMoveDirection.topRight:r={x:.5,y:-.5};break;case g.pJSMoveDirection.right:r={x:1,y:-0};break;case g.pJSMoveDirection.bottomRight:r={x:.5,y:.5};break;case g.pJSMoveDirection.bottom:r={x:0,y:1};break;case g.pJSMoveDirection.bottomLeft:r={x:-.5,y:1};break;case g.pJSMoveDirection.left:r={x:-1,y:0};break;case g.pJSMoveDirection.topLeft:r={x:-.5,y:-.5};break;default:r={x:0,y:0}}n.particles.move.straight?(this.vx=r.x,this.vy=r.y,n.particles.move.random&&(this.vx=this.vx*Math.random(),this.vy=this.vy*Math.random())):(this.vx=r.x+Math.random()-.5,this.vy=r.y+Math.random()-.5),this.vx_i=this.vx,this.vy_i=this.vy;var u=n.particles.shape.type;if(u instanceof Array){var h=u[Math.floor(Math.random()*u.length)];this.shape=h}else this.shape=u;if(this.shape==g.pJSShapeType.image){var p=n.particles.shape;this.img={src:p.image.src,ratio:p.image.width/p.image.height,replace_color:p.image.replace_color},this.img.ratio||(this.img.ratio=1),"svg"==t.img.type&&null!=t.svg.source&&(this.createSvgImg(),t.particles.pushing&&(this.img.loaded=!1))}this.shape!=g.pJSShapeType.char&&this.shape!=g.pJSShapeType.character||("string"==typeof n.particles.shape.character.value?this.text=n.particles.shape.character.value:this.text=n.particles.shape.character.value[Math.floor(Math.random()*n.particles.shape.character.value.length)])}return(0,r.default)(v,[{key:"draw",value:function(){var t,e,i,a=this.pJSContainer,r=a.options;if(t=null!=this.radius_bubble?this.radius_bubble:this.radius,e=null!=this.opacity_bubble?this.opacity_bubble:this.opacity,this.color.rgb?i="rgba(".concat(this.color.rgb.r,",").concat(this.color.rgb.g,",").concat(this.color.rgb.b,",").concat(e,")"):this.color.hsl&&(i="hsla(".concat(this.color.hsl.h,",").concat(this.color.hsl.s,"%,").concat(this.color.hsl.l,"%,").concat(e,")")),a.canvas.ctx&&i){a.canvas.ctx.fillStyle=i,a.canvas.ctx.beginPath();var n=this.x+this.offsetX,s=this.y+this.offsetY,o=a.canvas.ctx;switch(this.shape){case g.pJSShapeType.line:o.moveTo(this.x,this.y),o.lineTo(this.x,this.y+t),o.strokeStyle=r.particles.shape.stroke.color,o.lineWidth=r.particles.shape.stroke.width,o.stroke();break;case g.pJSShapeType.circle:o.arc(n,s,t,0,2*Math.PI,!1);break;case g.pJSShapeType.edge:case g.pJSShapeType.square:o.rect(this.x-t,this.y-t,2*t,2*t);break;case g.pJSShapeType.triangle:this.drawShape(o,this.x-t,this.y+t/1.66,2*t,3,2);break;case g.pJSShapeType.polygon:var c=this.x-t/(r.particles.shape.polygon.nb_sides/3.5),l=this.y-t/.76,u=2.66*t/(r.particles.shape.polygon.nb_sides/3),h=r.particles.shape.polygon.nb_sides;this.drawShape(o,c,l,u,h,1);break;case g.pJSShapeType.star:var p=this.x-2*t/(r.particles.shape.polygon.nb_sides/4),v=this.y-t/1.52,d=2*t*2.66/(r.particles.shape.polygon.nb_sides/3),f=r.particles.shape.polygon.nb_sides;this.drawShape(o,p,v,d,f,2);break;case g.pJSShapeType.heart:var y=this.x-t/2,m=this.y-t/2;o.moveTo(y,m+t/4),o.quadraticCurveTo(y,m,y+t/4,m),o.quadraticCurveTo(y+t/2,m,y+t/2,m+t/4),o.quadraticCurveTo(y+t/2,m,y+3*t/4,m),o.quadraticCurveTo(y+t,m,y+t,m+t/4),o.quadraticCurveTo(y+t,m+t/2,y+3*t/4,m+3*t/4),o.lineTo(y+t/2,m+t),o.lineTo(y+t/4,m+3*t/4),o.quadraticCurveTo(y,m+t/2,y,m+t/4);break;case g.pJSShapeType.char:case g.pJSShapeType.character:o.font="".concat(r.particles.shape.character.style," ").concat(r.particles.shape.character.weight," ").concat(2*Math.round(t),"px ").concat(r.particles.shape.character.font),void 0!==this.text&&o.strokeText(this.text,this.x-t/2,this.y+t/2);break;case g.pJSShapeType.image:var b;(b="svg"==a.img.type&&this.img?this.img.obj:a.img.obj)&&this.subDraw(o,b,t)}a.canvas.ctx.closePath(),0<r.particles.shape.stroke.width&&(a.canvas.ctx.strokeStyle=r.particles.shape.stroke.color,a.canvas.ctx.lineWidth=r.particles.shape.stroke.width,a.canvas.ctx.stroke()),a.canvas.ctx.fill()}}},{key:"subDraw",value:function(t,e,i){var a=1;this.img&&(a=this.img.ratio),t.drawImage(e,this.x-i,this.y-i,2*i,2*i/a)}},{key:"drawShape",value:function(t,e,i,a,r,n){var s=r*n,o=r/n,c=180*(o-2)/o,l=Math.PI-Math.PI*c/180;t.save(),t.beginPath(),t.translate(e,i),t.moveTo(0,0);for(var u=0;u<s;u++)t.lineTo(a,0),t.translate(a,0),t.rotate(l);t.fill(),t.restore()}},{key:"checkOverlap",value:function(t){var e=this.pJSContainer,i=this,a=!0,r=!1,n=void 0;try{for(var s,o=e.particles.array[Symbol.iterator]();!(a=(s=o.next()).done);a=!0){var c=s.value,l=i.x-c.x,u=i.y-c.y;Math.sqrt(l*l+u*u)<=i.radius+c.radius&&(i.x=t?t.x:Math.random()*e.canvas.w,i.y=t?t.y:Math.random()*e.canvas.h,i.checkOverlap())}}catch(t){r=!0,n=t}finally{try{a||null==o.return||o.return()}finally{if(r)throw n}}}},{key:"createSvgImg",value:function(){var t=this.pJSContainer,i=this,e=t.svg.source;if(e){var a;if(this.img&&this.img.replace_color){a="data:image/svg+xml;utf8,"+e.replace(/#([0-9A-F]{3,6})/gi,function(t){var e;return i.color.rgb?e="rgb(".concat(i.color.rgb.r,",").concat(i.color.rgb.g,",").concat(i.color.rgb.b,")"):i.color.hsl&&(e="hsl(".concat(i.color.hsl.h,",").concat(i.color.hsl.s,"%,").concat(i.color.hsl.l,"%)")),e||t})}else a="data:image/svg+xml;utf8,"+e;var r=new Image;r.addEventListener("load",function(){i.img&&(i.img.obj=r,i.img.loaded=!0),t.svg.count||(t.svg.count=0),t.svg.count++}),r.src=a}}},{key:"initBubble",value:function(){this.opacity_bubble=this.opacity,this.radius_bubble=this.radius}},{key:"grab",value:function(){var t=this.pJSContainer,e=t.options;if(e.interactivity.events.onhover.enable&&"mousemove"==t.interactivity.status){var i=this.x-(t.interactivity.mouse.pos_x||0),a=this.y-(t.interactivity.mouse.pos_y||0),r=Math.sqrt(i*i+a*a);if(r<=e.interactivity.modes.grab.distance){var n=e.interactivity.modes.grab.line_linked.opacity-r/(1/e.interactivity.modes.grab.line_linked.opacity)/e.interactivity.modes.grab.distance;if(0<n){e.particles.line_linked.color_rgb=e.particles.line_linked.color_rgb||m.pJSUtils.hexToRgb(e.particles.line_linked.color);var s=e.particles.line_linked.color_rgb||{r:127,g:127,b:127};t.canvas.ctx&&(t.canvas.ctx.strokeStyle="rgba(".concat(s.r,",").concat(s.g,",").concat(s.b,",").concat(n,")"),t.canvas.ctx.lineWidth=e.particles.line_linked.width,t.canvas.ctx.beginPath(),t.canvas.ctx.moveTo(this.x+this.offsetX,this.y+this.offsetY),t.canvas.ctx.lineTo(t.interactivity.mouse.pos_x||0,t.interactivity.mouse.pos_y||0),t.canvas.ctx.stroke(),t.canvas.ctx.closePath())}}}}},{key:"bubble",value:function(){var t=this.pJSContainer,e=t.options;if(e.interactivity.events.onhover.enable&&m.pJSUtils.isInArray(g.pJSHoverMode.bubble,e.interactivity.events.onhover.mode)){var i=this.x+this.offsetX-(t.interactivity.mouse.pos_x||0),a=this.y+this.offsetY-(t.interactivity.mouse.pos_y||0),r=Math.sqrt(i*i+a*a),n=1-r/e.interactivity.modes.bubble.distance;if(r<=e.interactivity.modes.bubble.distance){if(0<=n&&"mousemove"==t.interactivity.status){if(e.interactivity.modes.bubble.size!=e.particles.size.value)if(e.interactivity.modes.bubble.size>e.particles.size.value){var s=this.radius+e.interactivity.modes.bubble.size*n;0<=s&&(this.radius_bubble=s)}else{var o=this.radius-e.interactivity.modes.bubble.size,c=this.radius-o*n;this.radius_bubble=0<c?c:0}if(e.interactivity.modes.bubble.opacity!=e.particles.opacity.value)if(e.interactivity.modes.bubble.opacity>e.particles.opacity.value){var l=e.interactivity.modes.bubble.opacity*n;l>this.opacity&&l<=e.interactivity.modes.bubble.opacity&&(this.opacity_bubble=l)}else{var u=this.opacity-(e.particles.opacity.value-e.interactivity.modes.bubble.opacity)*n;u<this.opacity&&u>=e.interactivity.modes.bubble.opacity&&(this.opacity_bubble=u)}}}else this.initBubble();"mouseleave"==t.interactivity.status&&this.initBubble()}else if(e.interactivity.events.onclick.enable&&m.pJSUtils.isInArray(g.pJSClickMode.bubble,e.interactivity.events.onclick.mode)){var h=this.x-(t.interactivity.mouse.click_pos_x||0),p=this.y-(t.interactivity.mouse.click_pos_y||0),v=Math.sqrt(h*h+p*p),d=((new Date).getTime()-(t.interactivity.mouse.click_time||0))/1e3;t.bubble.clicking&&(d>e.interactivity.modes.bubble.duration&&(t.bubble.duration_end=!0),d>2*e.interactivity.modes.bubble.duration&&(t.bubble.clicking=!1,t.bubble.duration_end=!1)),t.bubble.clicking&&(t.processBubble(this,v,d,e.interactivity.modes.bubble.size,e.particles.size.value,this.radius_bubble,this.radius,g.pJSProcessBubbleType.size),t.processBubble(this,v,d,e.interactivity.modes.bubble.opacity,e.particles.opacity.value,this.opacity_bubble,this.opacity,g.pJSProcessBubbleType.opacity))}}},{key:"repulse",value:function(){var t=this.pJSContainer,e=t.options;if(e.interactivity.events.onhover.enable&&m.pJSUtils.isInArray(g.pJSHoverMode.repulse,e.interactivity.events.onhover.mode)&&"mousemove"==t.interactivity.status){var i=this.x-(t.interactivity.mouse.pos_x||0),a=this.y-(t.interactivity.mouse.pos_y||0),r=Math.sqrt(i*i+a*a),n=i/r,s=a/r,o=e.interactivity.modes.repulse.distance,c=m.pJSUtils.clamp(1/o*(-1*Math.pow(r/o,2)+1)*o*100,0,50),l={x:this.x+n*c,y:this.y+s*c};e.particles.move.out_mode==g.pJSOutMode.bounce||e.particles.move.out_mode==g.pJSOutMode.bounceVertical?(0<l.x-this.radius&&l.x+this.radius<t.canvas.w&&(this.x=l.x),0<l.y-this.radius&&l.y+this.radius<t.canvas.h&&(this.y=l.y)):(this.x=l.x,this.y=l.y)}else if(e.interactivity.events.onclick.enable&&m.pJSUtils.isInArray(g.pJSClickMode.repulse,e.interactivity.events.onclick.mode))if(t.repulse.finish||(t.repulse.count||(t.repulse.count=0),t.repulse.count++,t.repulse.count==t.particles.array.length&&(t.repulse.finish=!0)),t.repulse.clicking){var u=Math.pow(e.interactivity.modes.repulse.distance/6,3),h=(t.interactivity.mouse.click_pos_x||0)-this.x,p=(t.interactivity.mouse.click_pos_y||0)-this.y,v=Math.sqrt(h*h+p*p),d=-u/(v*v);v<=u&&this.processRepulse(h,p,d)}else!1===t.repulse.clicking&&(this.vx=this.vx_i,this.vy=this.vy_i)}},{key:"processRepulse",value:function(t,e,i){var a=this.pJSContainer,r=a.options,n=Math.atan2(e,t);if(this.vx=i*Math.cos(n),this.vy=i*Math.sin(n),r.particles.move.out_mode==g.pJSOutMode.bounce||r.particles.move.out_mode==g.pJSOutMode.bounceVertical){var s=this.x+this.vx,o=this.y+this.vy;(s+this.radius>a.canvas.w||s-this.radius<0)&&(this.vx=-this.vx),(o+this.radius>a.canvas.h||o-this.radius<0)&&(this.vy=-this.vy)}}},{key:"link",value:function(t){var e=this.pJSContainer,i=e.options,a=this.x+this.offsetX,r=t.x+t.offsetX,n=a-r,s=this.y+this.offsetY,o=t.y+t.offsetY,c=s-o,l=Math.sqrt(n*n+c*c);if(l<=i.particles.line_linked.distance){var u=i.particles.line_linked.opacity-l*i.particles.line_linked.opacity/i.particles.line_linked.distance;if(0<u){if(i.particles.line_linked.color_rgb||(i.particles.line_linked.color_rgb=m.pJSUtils.hexToRgb(i.particles.line_linked.color)),!e.canvas.ctx)return;var h=e.canvas.ctx,p=i.particles.line_linked.color_rgb;p&&(h.strokeStyle="rgba(".concat(p.r,",").concat(p.g,",").concat(p.b,",").concat(u,")")),h.lineWidth=i.particles.line_linked.width,h.beginPath(),h.moveTo(a,s),h.lineTo(r,o),h.stroke(),h.closePath()}}}},{key:"attract",value:function(t){var e=this.pJSContainer.options,i=this.x-t.x,a=this.y-t.y;if(Math.sqrt(i*i+a*a)<=e.particles.line_linked.distance){var r=i/(1e3*e.particles.move.attract.rotateX),n=a/(1e3*e.particles.move.attract.rotateY);this.vx-=r,this.vy-=n,t.vx+=r,t.vy+=n}}},{key:"bounce",value:function(t){var e=this.x-t.x,i=this.y-t.y;Math.sqrt(e*e+i*i)<=this.radius+t.radius&&(this.vx=-this.vx,this.vy=-this.vy,t.vx=-t.vx,t.vy=-t.vy)}}]),v}();e.pJSParticle=n},function(e,t){function i(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=i=function(t){return typeof t}:e.exports=i=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}e.exports=i}]); | ||
!function(i){var a={};function r(t){if(a[t])return a[t].exports;var e=a[t]={i:t,l:!1,exports:{}};return i[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}r.m=i,r.c=a,r.d=function(t,e,i){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(i,a,function(t){return e[t]}.bind(null,a));return i},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=10)}([function(t,e){t.exports=function(t){return t&&t.__esModule?t:{default:t}}},function(t,e){t.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e){function a(t,e){for(var i=0;i<e.length;i++){var a=e[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}t.exports=function(t,e,i){return e&&a(t.prototype,e),i&&a(t,i),t}},function(t,e){t.exports=function(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}},function(t,e,i){t.exports=i(11)},function(t,e){function c(t,e,i,a,r,n,s){try{var o=t[n](s),c=o.value}catch(t){return void i(t)}o.done?e(c):Promise.resolve(c).then(a,r)}t.exports=function(o){return function(){var t=this,s=arguments;return new Promise(function(e,i){var a=o.apply(t,s);function r(t){c(a,e,i,r,n,"next",t)}function n(t){c(a,e,i,r,n,"throw",t)}r(void 0)})}}},function(t,e,i){"use strict";var a,r,n,s,o,c,l,u,h,p,v,d,f,y;Object.defineProperty(e,"__esModule",{value:!0}),e.pJSProcessBubbleType=e.pJSClickMode=e.pJSHoverMode=e.pJSInteractivityDetect=e.pJSOutMode=e.pJSMoveDirection=e.pJSShapeType=void 0,e.pJSShapeType=a,(r=a||(e.pJSShapeType=a={})).circle="circle",r.edge="edge",r.triangle="triangle",r.polygon="polygon",r.star="star",r.image="image",r.square="square",r.heart="heart",r.char="char",r.character="character",r.line="line",e.pJSMoveDirection=n,(s=n||(e.pJSMoveDirection=n={})).none="none",s.top="top",s.topRight="top-right",s.right="right",s.bottomRight="bottom-right",s.bottom="bottom",s.bottomLeft="bottom-left",s.left="left",s.topLeft="top-left",e.pJSOutMode=o,(c=o||(e.pJSOutMode=o={})).out="out",c.bounce="bounce",c.bounceVertical="bounce-vertical",c.bounceHorizontal="bounce-horizontal",e.pJSInteractivityDetect=l,(u=l||(e.pJSInteractivityDetect=l={})).canvas="canvas",u.window="window",u.parent="parent",e.pJSHoverMode=h,(p=h||(e.pJSHoverMode=h={})).grab="grab",p.bubble="bubble",p.repulse="repulse",e.pJSClickMode=v,(d=v||(e.pJSClickMode=v={})).push="push",d.remove="remove",d.bubble="bubble",d.repulse="repulse",e.pJSProcessBubbleType=f,(y=f||(e.pJSProcessBubbleType=f={})).size="size",y.opacity="opacity"},function(t,e,i){"use strict";var a=i(0);Object.defineProperty(e,"__esModule",{value:!0}),e.pJSUtils=void 0;var r=a(i(1)),n=a(i(2)),s=function(){function a(){(0,r.default)(this,a)}return(0,n.default)(a,null,[{key:"hexToRgb",value:function(t){t=t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(t,e,i,a){return e+e+i+i+a+a});var e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}},{key:"clamp",value:function(t,e,i){return Math.min(Math.max(t,e),i)}},{key:"isInArray",value:function(t,e){return t==e||-1<e.indexOf(t)}},{key:"deepExtend",value:function(t,e){for(var i in e)e[i]&&e[i].constructor&&e[i].constructor===Object?(t[i]=t[i]||{},a.deepExtend(t[i],e[i])):t[i]=e[i];return t}}]),a}();e.pJSUtils=s},function(t,e,i){"use strict";var a=i(0);Object.defineProperty(e,"__esModule",{value:!0}),e.pJSConstants=void 0;function r(){(0,n.default)(this,r)}var n=a(i(1)),s=a(i(3)),o=i(6);e.pJSConstants=r,(0,s.default)(r,"canvasClass","particles-canvas-el"),(0,s.default)(r,"defaultOptions",{particles:{number:{value:400,density:{enable:!0,value_area:800}},color:{value:"#fff"},shape:{type:o.pJSShapeType.circle,stroke:{width:0,color:"#ff0000"},polygon:{nb_sides:5},character:{value:"*",font:"Verdana",weight:"400"},image:{src:"",width:100,height:100,replace_color:!0}},opacity:{value:1,random:!1,anim:{enable:!1,speed:2,opacity_min:0,sync:!1}},size:{value:20,random:!1,anim:{enable:!1,speed:20,size_min:0,sync:!1}},line_linked:{enable:!0,distance:100,color:"#fff",opacity:1,width:1},move:{enable:!0,speed:2,direction:o.pJSMoveDirection.none,random:!1,straight:!1,out_mode:o.pJSOutMode.out,bounce:!1,attract:{enable:!1,rotateX:3e3,rotateY:3e3}}},interactivity:{detect_on:o.pJSInteractivityDetect.canvas,events:{onhover:{enable:!0,mode:o.pJSHoverMode.grab,parallax:{enable:!1,force:2,smooth:10}},onclick:{enable:!0,mode:o.pJSClickMode.push},resize:!0},modes:{grab:{distance:100,line_linked:{opacity:1}},bubble:{distance:200,size:80,duration:.4,opacity:1},repulse:{distance:200,duration:.4},push:{particles_nb:4},remove:{particles_nb:2}}},retina_detect:!1,fps_limit:60})},function(t,e,i){"use strict";var a=i(0);Object.defineProperty(e,"__esModule",{value:!0}),e.pJSLoader=void 0;var s=a(i(4)),r=a(i(5)),n=a(i(1)),o=a(i(2)),u=i(12),h=i(8),c=[],l=function(){function l(){(0,n.default)(this,l)}var a;return(0,o.default)(l,null,[{key:"pJSDom",value:function(){return c||l.pJSDomSet([]),c}},{key:"pJSDomSet",value:function(t){c=t}},{key:"load",value:function(t,e){var i,a=document.getElementById(t);if(a){var r=a.getElementsByClassName(h.pJSConstants.canvasClass);if(r.length)for(;0<r.length;)a.removeChild(r[0])}var n=document.createElement("canvas");if(n.className=h.pJSConstants.canvasClass,n.style.width="100%",n.style.height="100%",null!=(null===(i=document.getElementById(t))||void 0===i?void 0:i.appendChild(n))){for(var s=new u.pJSContainer(t,e),o=!1,c=0;c<l.pJSDom().length;c++)l.pJSDom()[c].canvas.tag_id==t&&(o=!0,l.pJSDom()[c]=s);return o||l.pJSDom().push(s),s}}},{key:"loadJSON",value:(a=(0,r.default)(s.default.mark(function t(e,i,a){var r,n;return s.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,fetch(i);case 2:if((r=t.sent).ok)return t.next=6,r.json();t.next=11;break;case 6:n=t.sent,l.load(e,n),a&&a(),t.next=13;break;case 11:console.error("Error pJS - fetch status: ".concat(r.status)),console.error("Error pJS - File config not found");case 13:case"end":return t.stop()}},t)})),function(t,e,i){return a.apply(this,arguments)})}]),l}();e.pJSLoader=l},function(t,e,i){"use strict";var a=i(0),r=a(i(4)),n=a(i(5)),s=i(9);window.requestAnimFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)},window.cancelRequestAnimFrame=window.cancelAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame||window.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame||clearTimeout,window.particlesJS=function(t,e){s.pJSLoader.load(t,e)},window.particlesJS.load=function(){var a=(0,n.default)(r.default.mark(function t(e,i,a){return r.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,s.pJSLoader.loadJSON(e,i,a);case 2:case"end":return t.stop()}},t)}));return function(t,e,i){return a.apply(this,arguments)}}(),window.particlesJS.setOnClickHandler=function(t){var e=s.pJSLoader.pJSDom();if(0==e.length)throw new Error("Can only set click handlers after calling particlesJS.load() or particlesJS()");for(var i=0;i<e.length;i++){var a=e[i].interactivity.el;a&&a.addEventListener("click",t)}},window.pJSDom=function(){return s.pJSLoader.pJSDom()}},function(t,e,i){var a=function(n){"use strict";var c,t=Object.prototype,l=t.hasOwnProperty,e="function"==typeof Symbol?Symbol:{},r=e.iterator||"@@iterator",i=e.asyncIterator||"@@asyncIterator",a=e.toStringTag||"@@toStringTag";function s(t,e,i,a){var n,s,o,c,r=e&&e.prototype instanceof m?e:m,l=Object.create(r.prototype),u=new T(a||[]);return l._invoke=(n=t,s=i,o=u,c=p,function(t,e){if(c===d)throw new Error("Generator is already running");if(c===f){if("throw"===t)throw e;return A()}for(o.method=t,o.arg=e;;){var i=o.delegate;if(i){var a=k(i,o);if(a){if(a===y)continue;return a}}if("next"===o.method)o.sent=o._sent=o.arg;else if("throw"===o.method){if(c===p)throw c=f,o.arg;o.dispatchException(o.arg)}else"return"===o.method&&o.abrupt("return",o.arg);c=d;var r=h(n,s,o);if("normal"===r.type){if(c=o.done?f:v,r.arg===y)continue;return{value:r.arg,done:o.done}}"throw"===r.type&&(c=f,o.method="throw",o.arg=r.arg)}}),l}function h(t,e,i){try{return{type:"normal",arg:t.call(e,i)}}catch(t){return{type:"throw",arg:t}}}n.wrap=s;var p="suspendedStart",v="suspendedYield",d="executing",f="completed",y={};function m(){}function o(){}function u(){}var b={};b[r]=function(){return this};var g=Object.getPrototypeOf,x=g&&g(g(C([])));x&&x!==t&&l.call(x,r)&&(b=x);var S=u.prototype=m.prototype=Object.create(b);function w(t){["next","throw","return"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function _(c){var e;this._invoke=function(i,a){function t(){return new Promise(function(t,e){!function e(t,i,a,r){var n=h(c[t],c,i);if("throw"!==n.type){var s=n.arg,o=s.value;return o&&"object"==typeof o&&l.call(o,"__await")?Promise.resolve(o.__await).then(function(t){e("next",t,a,r)},function(t){e("throw",t,a,r)}):Promise.resolve(o).then(function(t){s.value=t,a(s)},function(t){return e("throw",t,a,r)})}r(n.arg)}(i,a,t,e)})}return e=e?e.then(t,t):t()}}function k(t,e){var i=t.iterator[e.method];if(i===c){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=c,k(t,e),"throw"===e.method))return y;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return y}var a=h(i,t.iterator,e.arg);if("throw"===a.type)return e.method="throw",e.arg=a.arg,e.delegate=null,y;var r=a.arg;return r?r.done?(e[t.resultName]=r.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=c),e.delegate=null,y):r:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,y)}function J(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function M(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(J,this),this.reset(!0)}function C(e){if(e){var t=e[r];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function t(){for(;++i<e.length;)if(l.call(e,i))return t.value=e[i],t.done=!1,t;return t.value=c,t.done=!0,t};return a.next=a}}return{next:A}}function A(){return{value:c,done:!0}}return o.prototype=S.constructor=u,u.constructor=o,u[a]=o.displayName="GeneratorFunction",n.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===o||"GeneratorFunction"===(e.displayName||e.name))},n.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,u):(t.__proto__=u,a in t||(t[a]="GeneratorFunction")),t.prototype=Object.create(S),t},n.awrap=function(t){return{__await:t}},w(_.prototype),_.prototype[i]=function(){return this},n.AsyncIterator=_,n.async=function(t,e,i,a){var r=new _(s(t,e,i,a));return n.isGeneratorFunction(e)?r:r.next().then(function(t){return t.done?t.value:r.next()})},w(S),S[a]="Generator",S[r]=function(){return this},S.toString=function(){return"[object Generator]"},n.keys=function(i){var a=[];for(var t in i)a.push(t);return a.reverse(),function t(){for(;a.length;){var e=a.pop();if(e in i)return t.value=e,t.done=!1,t}return t.done=!0,t}},n.values=C,T.prototype={constructor:T,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=c,this.done=!1,this.delegate=null,this.method="next",this.arg=c,this.tryEntries.forEach(M),!t)for(var e in this)"t"===e.charAt(0)&&l.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=c)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(i){if(this.done)throw i;var a=this;function t(t,e){return n.type="throw",n.arg=i,a.next=t,e&&(a.method="next",a.arg=c),!!e}for(var e=this.tryEntries.length-1;0<=e;--e){var r=this.tryEntries[e],n=r.completion;if("root"===r.tryLoc)return t("end");if(r.tryLoc<=this.prev){var s=l.call(r,"catchLoc"),o=l.call(r,"finallyLoc");if(s&&o){if(this.prev<r.catchLoc)return t(r.catchLoc,!0);if(this.prev<r.finallyLoc)return t(r.finallyLoc)}else if(s){if(this.prev<r.catchLoc)return t(r.catchLoc,!0)}else{if(!o)throw new Error("try statement without catch or finally");if(this.prev<r.finallyLoc)return t(r.finallyLoc)}}}},abrupt:function(t,e){for(var i=this.tryEntries.length-1;0<=i;--i){var a=this.tryEntries[i];if(a.tryLoc<=this.prev&&l.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var r=a;break}}r&&("break"===t||"continue"===t)&&r.tryLoc<=e&&e<=r.finallyLoc&&(r=null);var n=r?r.completion:{};return n.type=t,n.arg=e,r?(this.method="next",this.next=r.finallyLoc,y):this.complete(n)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;0<=e;--e){var i=this.tryEntries[e];if(i.finallyLoc===t)return this.complete(i.completion,i.afterLoc),M(i),y}},catch:function(t){for(var e=this.tryEntries.length-1;0<=e;--e){var i=this.tryEntries[e];if(i.tryLoc===t){var a=i.completion;if("throw"===a.type){var r=a.arg;M(i)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,i){return this.delegate={iterator:C(t),resultName:e,nextLoc:i},"next"===this.method&&(this.arg=c),y}},n}(t.exports);try{regeneratorRuntime=a}catch(t){Function("r","regeneratorRuntime = r")(a)}},function(t,e,i){"use strict";var a=i(0);Object.defineProperty(e,"__esModule",{value:!0}),e.pJSContainer=void 0;var r=a(i(4)),n=a(i(5)),s=a(i(1)),o=a(i(2)),c=a(i(3)),l=i(7),u=i(13),h=i(14),p=i(15),v=i(6),d=i(9),f=i(8),y=function(){function a(t,e){var i=this;(0,s.default)(this,a),(0,c.default)(this,"interactivity",void 0),(0,c.default)(this,"options",void 0),(0,c.default)(this,"retina",void 0),(0,c.default)(this,"canvas",void 0),(0,c.default)(this,"particles",void 0),(0,c.default)(this,"checkAnimFrame",void 0),(0,c.default)(this,"drawAnimFrame",void 0),(0,c.default)(this,"bubble",void 0),(0,c.default)(this,"repulse",void 0),(0,c.default)(this,"svg",void 0),(0,c.default)(this,"img",void 0),(0,c.default)(this,"lastFrameTime",0),(0,c.default)(this,"pageHidden",!1),this.retina=new u.pJSRetina(this),this.canvas=new h.pJSCanvas(this,t),this.particles=new p.pJSParticles(this),this.interactivity={mouse:{}},this.svg={source:void 0,count:0},this.img={},this.bubble={},this.repulse={},this.options=f.pJSConstants.defaultOptions,e&&l.pJSUtils.deepExtend(this.options,e),this.eventsListeners(),this.start().then(function(){document.addEventListener("visibilitychange",function(){return i.handleVisibilityChange()},!1)})}var t,e;return(0,o.default)(a,[{key:"handleVisibilityChange",value:function(){document.hidden?(this.pageHidden=!0,this.drawAnimFrame&&this.cancelAnimation(this.drawAnimFrame)):(this.pageHidden=!1,this.lastFrameTime=performance.now(),this.draw(0))}},{key:"eventsListeners",value:function(){var c=this;this.options.interactivity.detect_on==v.pJSInteractivityDetect.window?this.interactivity.el=window:"parent"==this.options.interactivity.detect_on?this.interactivity.el=this.canvas.el.parentNode:this.interactivity.el=this.canvas.el,(this.options.interactivity.events.onhover.enable||this.options.interactivity.events.onclick.enable)&&this.interactivity.el&&(this.interactivity.el.addEventListener("mousemove",function(t){var e,i,a=t;if(c.interactivity.el==window)e=a.clientX,i=a.clientY;else if(c.options.interactivity.detect_on==v.pJSInteractivityDetect.parent){var r=a.srcElement,n=a.currentTarget;if(r&&n){var s=r.getBoundingClientRect(),o=n.getBoundingClientRect();e=a.offsetX+s.left-o.left,i=a.offsetY+s.top-o.top}else e=a.offsetX||a.clientX,i=a.offsetY||a.clientY}else e=a.offsetX||a.clientX,i=a.offsetY||a.clientY;c.interactivity.mouse.pos_x=e*(c.retina.isRetina?c.canvas.pxratio:1),c.interactivity.mouse.pos_y=i*(c.retina.isRetina?c.canvas.pxratio:1),c.interactivity.status="mousemove"}),this.interactivity.el.addEventListener("mouseleave",function(){c.interactivity.mouse.pos_x=null,c.interactivity.mouse.pos_y=null,c.interactivity.status="mouseleave"})),this.options.interactivity.events.onclick.enable&&this.interactivity.el&&this.interactivity.el.addEventListener("click",function(){if(c.interactivity.mouse.click_pos_x=c.interactivity.mouse.pos_x,c.interactivity.mouse.click_pos_y=c.interactivity.mouse.pos_y,c.interactivity.mouse.click_time=(new Date).getTime(),c.options.interactivity.events.onclick.enable)switch(c.options.interactivity.events.onclick.mode){case v.pJSClickMode.push:c.options.particles.move.enable||1==c.options.interactivity.modes.push.particles_nb?c.particles.push(c.options.interactivity.modes.push.particles_nb,c.interactivity.mouse):1<c.options.interactivity.modes.push.particles_nb&&c.particles.push(c.options.interactivity.modes.push.particles_nb);break;case v.pJSClickMode.remove:c.particles.remove(c.options.interactivity.modes.remove.particles_nb);break;case v.pJSClickMode.bubble:c.bubble.clicking=!0;break;case v.pJSClickMode.repulse:c.repulse.clicking=!0,c.repulse.count=0,c.repulse.finish=!1,setTimeout(function(){c.repulse.clicking=!1},1e3*c.options.interactivity.modes.repulse.duration)}})}},{key:"densityAutoParticles",value:function(){if(this.options.particles.number.density.enable){var t=this.canvas.el.width*this.canvas.el.height/1e3;this.retina.isRetina&&(t/=2*this.canvas.pxratio);var e=t*this.options.particles.number.value/this.options.particles.number.density.value_area,i=this.particles.array.length-e;i<0?this.particles.push(Math.abs(i)):this.particles.remove(i)}}},{key:"destroypJS",value:function(){void 0!==this.drawAnimFrame&&cancelAnimationFrame(this.drawAnimFrame),this.canvas.el.remove(),d.pJSLoader.pJSDomSet([])}},{key:"exportImg",value:function(){window.open(this.canvas.el.toDataURL("image/png"),"_blank")}},{key:"loadImg",value:(e=(0,n.default)(r.default.mark(function t(e){var i,a=this;return r.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:this.img.error=void 0,""!=this.options.particles.shape.image.src?((i=new Image).addEventListener("load",function(){a.img.obj=i,a.checkBeforeDraw()}),i.src=this.options.particles.shape.image.src):(console.error("Error pJS - No image.src"),this.img.error=!0);case 2:case"end":return t.stop()}},t,this)})),function(t){return e.apply(this,arguments)})},{key:"requestFrame",value:function(t){return window.requestAnimFrame(t)}},{key:"cancelAnimation",value:function(t){return window.cancelAnimationFrame(t)}},{key:"draw",value:function(t){var e=this,i=this.options.fps_limit;if(0<i&&t<this.lastFrameTime+1e3/i)this.requestFrame(function(t){return e.draw(t)});else{var a=t-this.lastFrameTime;this.lastFrameTime=t,this.options.particles.shape.type==v.pJSShapeType.image?null!=this.img.obj?(this.particles.draw(a),void 0===this.drawAnimFrame||this.options.particles.move.enable?this.drawAnimFrame=this.requestFrame(function(t){return e.draw(t)}):this.cancelAnimation(this.drawAnimFrame)):this.img.error||(this.drawAnimFrame=this.requestFrame(function(t){return e.draw(t)})):(this.particles.draw(a),this.options.particles.move.enable?this.drawAnimFrame=this.requestFrame(function(t){return e.draw(t)}):void 0!==this.drawAnimFrame&&this.cancelAnimation(this.drawAnimFrame))}}},{key:"checkBeforeDraw",value:function(){this.options.particles.shape.type==v.pJSShapeType.image?(this.checkAnimFrame&&this.cancelAnimation(this.checkAnimFrame),this.img.error||(this.init(),this.draw(0))):(this.init(),this.draw(0))}},{key:"processBubble",value:function(t,e,i,a,r,n,s,o){var c=this.options;if(a!=r)if(this.bubble.duration_end){if(null!=n){var l=a+(a-(s-i*(s-a)/c.interactivity.modes.bubble.duration));o==v.pJSProcessBubbleType.size&&(t.radius_bubble=l),o==v.pJSProcessBubbleType.opacity&&(t.opacity_bubble=l)}}else if(e<=c.interactivity.modes.bubble.distance){if((null!=n?n:s)!=a){var u=s-i*(s-a)/c.interactivity.modes.bubble.duration;o==v.pJSProcessBubbleType.size&&(t.radius_bubble=u),o==v.pJSProcessBubbleType.opacity&&(t.opacity_bubble=u)}}else o==v.pJSProcessBubbleType.size&&(t.radius_bubble=void 0),o==v.pJSProcessBubbleType.opacity&&(t.opacity_bubble=void 0)}},{key:"init",value:function(){this.retina.init(),this.canvas.init(),this.canvas.size(),this.canvas.paint(),this.particles.create(),this.densityAutoParticles()}},{key:"start",value:(t=(0,n.default)(r.default.mark(function t(){return r.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(this.options.particles.shape.type==v.pJSShapeType.image)return this.img.type=this.options.particles.shape.image.src.substr(this.options.particles.shape.image.src.length-3),t.next=4,this.loadImg(this.img.type);t.next=6;break;case 4:t.next=7;break;case 6:this.checkBeforeDraw();case 7:case"end":return t.stop()}},t,this)})),function(){return t.apply(this,arguments)})}]),a}();e.pJSContainer=y},function(t,e,i){"use strict";var a=i(0);Object.defineProperty(e,"__esModule",{value:!0}),e.pJSRetina=void 0;var r=a(i(1)),n=a(i(2)),s=a(i(3)),o=function(){function e(t){(0,r.default)(this,e),(0,s.default)(this,"pJSContainer",void 0),(0,s.default)(this,"isRetina",void 0),this.pJSContainer=t,this.isRetina=!1}return(0,n.default)(e,[{key:"init",value:function(){var t=this.pJSContainer,e=t.options;e.retina_detect&&1<window.devicePixelRatio?(t.canvas.pxratio=window.devicePixelRatio,this.isRetina=!0):(t.canvas.pxratio=1,this.isRetina=!1),t.canvas.w=t.canvas.el.offsetWidth*t.canvas.pxratio,t.canvas.h=t.canvas.el.offsetHeight*t.canvas.pxratio,e.particles.size.value=e.particles.size.value*t.canvas.pxratio,e.particles.size.anim.speed=e.particles.size.anim.speed*t.canvas.pxratio,e.particles.move.speed=e.particles.move.speed*t.canvas.pxratio,e.particles.line_linked.distance=e.particles.line_linked.distance*t.canvas.pxratio,e.interactivity.modes.grab.distance=e.interactivity.modes.grab.distance*t.canvas.pxratio,e.interactivity.modes.bubble.distance=e.interactivity.modes.bubble.distance*t.canvas.pxratio,e.particles.line_linked.width=e.particles.line_linked.width*t.canvas.pxratio,e.interactivity.modes.bubble.size=e.interactivity.modes.bubble.size*t.canvas.pxratio,e.interactivity.modes.repulse.distance=e.interactivity.modes.repulse.distance*t.canvas.pxratio}}]),e}();e.pJSRetina=o},function(t,e,i){"use strict";var a=i(0);Object.defineProperty(e,"__esModule",{value:!0}),e.pJSCanvas=void 0;var r=a(i(1)),n=a(i(2)),s=a(i(3)),o=i(8),c=function(){function a(t,e){(0,r.default)(this,a),(0,s.default)(this,"pJSContainer",void 0),(0,s.default)(this,"el",void 0),(0,s.default)(this,"ctx",void 0),(0,s.default)(this,"w",void 0),(0,s.default)(this,"h",void 0),(0,s.default)(this,"tag_id",void 0),(0,s.default)(this,"pxratio",void 0);var i=document.querySelector("#".concat(e," > .").concat(o.pJSConstants.canvasClass));this.pJSContainer=t,this.el=i,this.w=i.offsetWidth,this.h=i.offsetHeight,this.tag_id=e,this.pxratio=1,this.ctx=this.el.getContext("2d")}return(0,n.default)(a,[{key:"init",value:function(){}},{key:"size",value:function(){var t=this,e=this.pJSContainer,i=e.options;this.el.width=this.w,this.el.height=this.h,e&&i.interactivity.events.resize&&window.addEventListener("resize",function(){t.w=t.el.offsetWidth,t.h=t.el.offsetHeight,e.retina.isRetina&&(t.w*=t.pxratio,t.h*=t.pxratio),t.el.width=t.w,t.el.height=t.h,i.particles.move.enable||(e.particles.empty(),e.particles.create(),e.particles.draw(0)),e.densityAutoParticles()})}},{key:"paint",value:function(){this.ctx&&this.ctx.fillRect(0,0,this.w,this.h)}},{key:"clear",value:function(){this.ctx&&this.ctx.clearRect(0,0,this.w,this.h)}}]),a}();e.pJSCanvas=c},function(t,e,i){"use strict";var a=i(0);Object.defineProperty(e,"__esModule",{value:!0}),e.pJSParticles=void 0;var r=a(i(4)),n=a(i(5)),s=a(i(1)),o=a(i(2)),c=a(i(3)),l=i(16),p=i(7),v=i(6),u=function(){function e(t){(0,s.default)(this,e),(0,c.default)(this,"pJSContainer",void 0),(0,c.default)(this,"array",void 0),(0,c.default)(this,"pushing",void 0),this.pJSContainer=t,this.array=[]}var t;return(0,o.default)(e,[{key:"create",value:function(){for(var t=this.pJSContainer,e=t.options,i=0;i<e.particles.number.value;i++){var a=new l.pJSParticle(t,e.particles.color,e.particles.opacity.value);this.array.push(a)}}},{key:"update",value:function(t){for(var e=this.pJSContainer,i=e.options,a=this.array.length,r=0;r<a;r++){var n=this.array[r];if(i.particles.move.enable){var s=i.particles.move.speed/10;n.x+=n.vx*s*t,n.y+=n.vy*s*t}if(e.interactivity.mouse.pos_x&&i.interactivity.events.onhover.parallax.enable){var o=(e.interactivity.mouse.pos_x-window.innerWidth/2)*(n.radius/i.interactivity.events.onhover.parallax.force);n.offsetX+=(o-n.offsetX)/i.interactivity.events.onhover.parallax.smooth;var c=((e.interactivity.mouse.pos_y||0)-window.innerHeight/2)*(n.radius/i.interactivity.events.onhover.parallax.force);n.offsetY+=(c-n.offsetY)/i.interactivity.events.onhover.parallax.smooth}i.particles.opacity.anim.enable&&(1==n.opacity_status?(n.opacity>=i.particles.opacity.value&&(n.opacity_status=!1),n.opacity+=n.vo||0):(n.opacity<=i.particles.opacity.anim.opacity_min&&(n.opacity_status=!0),n.opacity-=n.vo||0),n.opacity<0&&(n.opacity=0)),i.particles.size.anim.enable&&(1==n.size_status?(n.radius>=i.particles.size.value&&(n.size_status=!1),n.radius+=n.vs||0):(n.radius<=i.particles.size.anim.size_min&&(n.size_status=!0),n.radius-=n.vs||0),n.radius<0&&(n.radius=0));var l=void 0;switch(l=i.particles.move.out_mode==v.pJSOutMode.bounce||i.particles.move.out_mode==v.pJSOutMode.bounceVertical?{x_left:n.radius,x_right:e.canvas.w,y_top:n.radius,y_bottom:e.canvas.h}:{x_left:-n.radius-n.offsetX,x_right:e.canvas.w+n.radius+n.offsetX,y_top:-n.radius-n.offsetY,y_bottom:e.canvas.h+n.radius-n.offsetY},n.x-n.radius>e.canvas.w-n.offsetX?(n.x=l.x_left,n.y=Math.random()*e.canvas.h):n.x+n.radius<0-n.offsetX&&(n.x=l.x_right,n.y=Math.random()*e.canvas.h),n.y-n.radius>e.canvas.h-n.offsetY?(n.y=l.y_top,n.x=Math.random()*e.canvas.w):n.y+n.radius<0-n.offsetY&&(n.y=l.y_bottom,n.x=Math.random()*e.canvas.w),i.particles.move.out_mode){case v.pJSOutMode.bounce:(n.x+n.offsetX+n.radius>e.canvas.w||n.x+n.offsetX-n.radius<0)&&(n.vx=-n.vx),(n.y+n.offsetY+n.radius>e.canvas.h||n.y+n.offsetY-n.radius<0)&&(n.vy=-n.vy);break;case v.pJSOutMode.bounceVertical:n.y+n.radius>e.canvas.h&&(n.vy=-n.vy),n.y-n.radius<0&&(n.vy=-n.vy);break;case v.pJSOutMode.bounceHorizontal:(n.x+n.radius>e.canvas.w||n.x-n.radius<0)&&(n.vx=-n.vx)}if(p.pJSUtils.isInArray(v.pJSHoverMode.grab,i.interactivity.events.onhover.mode)&&n.grab(),(p.pJSUtils.isInArray(v.pJSHoverMode.bubble,i.interactivity.events.onhover.mode)||p.pJSUtils.isInArray(v.pJSClickMode.bubble,i.interactivity.events.onclick.mode))&&n.bubble(),(p.pJSUtils.isInArray(v.pJSHoverMode.repulse,i.interactivity.events.onhover.mode)||p.pJSUtils.isInArray(v.pJSClickMode.repulse,i.interactivity.events.onclick.mode))&&n.repulse(),i.particles.line_linked.enable||i.particles.move.attract.enable)for(var u=r+1;u<a;u++){var h=this.array[u];i.particles.line_linked.enable&&n.link(h),i.particles.move.attract.enable&&n.attract(h),i.particles.move.bounce&&n.bounce(h)}}}},{key:"draw",value:function(t){var e=this.pJSContainer;e.canvas.ctx&&e.canvas.ctx.clearRect(0,0,e.canvas.w,e.canvas.h),e.particles.update(t);var i=!0,a=!1,r=void 0;try{for(var n,s=this.array[Symbol.iterator]();!(i=(n=s.next()).done);i=!0){n.value.draw()}}catch(t){a=!0,r=t}finally{try{i||null==s.return||s.return()}finally{if(a)throw r}}}},{key:"empty",value:function(){this.array=[]}},{key:"push",value:function(t,e){var i=this.pJSContainer,a=i.options;this.pushing=!0;for(var r=0;r<t;r++){var n=new l.pJSParticle(i,a.particles.color,a.particles.opacity.value,{x:e&&e.pos_x?e.pos_x:Math.random()*i.canvas.w,y:e&&e.pos_y?e.pos_y:Math.random()*i.canvas.h});this.array.push(n)}a.particles.move.enable||this.draw(0),this.pushing=!1}},{key:"remove",value:function(t){var e=this.pJSContainer.options;this.array.splice(0,t),e.particles.move.enable||this.draw(0)}},{key:"refresh",value:(t=(0,n.default)(r.default.mark(function t(){var e;return r.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return(e=this.pJSContainer).checkAnimFrame&&e.cancelAnimation(e.checkAnimFrame),e.drawAnimFrame&&e.cancelAnimation(e.drawAnimFrame),e.svg.source=void 0,e.svg.count=0,e.img.obj=void 0,this.empty(),e.canvas.clear(),t.next=10,e.start();case 10:case"end":return t.stop()}},t,this)})),function(){return t.apply(this,arguments)})}]),e}();e.pJSParticles=u},function(t,e,i){"use strict";var a=i(0);Object.defineProperty(e,"__esModule",{value:!0}),e.pJSParticle=void 0;var d=a(i(17)),f=a(i(1)),r=a(i(2)),y=a(i(3)),m=i(7),g=i(6),n=function(){function v(t,e,i,a){(0,f.default)(this,v),(0,y.default)(this,"pJSContainer",void 0),(0,y.default)(this,"radius",void 0),(0,y.default)(this,"size_status",void 0),(0,y.default)(this,"vs",void 0),(0,y.default)(this,"x",void 0),(0,y.default)(this,"y",void 0),(0,y.default)(this,"offsetX",void 0),(0,y.default)(this,"offsetY",void 0),(0,y.default)(this,"color",void 0),(0,y.default)(this,"opacity",void 0),(0,y.default)(this,"opacity_status",void 0),(0,y.default)(this,"vo",void 0),(0,y.default)(this,"vx",void 0),(0,y.default)(this,"vy",void 0),(0,y.default)(this,"vx_i",void 0),(0,y.default)(this,"vy_i",void 0),(0,y.default)(this,"shape",void 0),(0,y.default)(this,"img",void 0),(0,y.default)(this,"radius_bubble",void 0),(0,y.default)(this,"opacity_bubble",void 0),(0,y.default)(this,"text",void 0);var r,n=(this.pJSContainer=t).options;if(this.radius=(n.particles.size.random?Math.random():1)*n.particles.size.value,n.particles.size.anim.enable&&(this.size_status=!1,this.vs=n.particles.size.anim.speed/100,n.particles.size.anim.sync||(this.vs=this.vs*Math.random())),this.x=a?a.x:Math.random()*t.canvas.w,this.y=a?a.y:Math.random()*t.canvas.h,this.x>t.canvas.w-2*this.radius?this.x=this.x-this.radius:this.x<2*this.radius&&(this.x=this.x+this.radius),this.y>t.canvas.h-2*this.radius?this.y=this.y-this.radius:this.y<2*this.radius&&(this.y=this.y+this.radius),this.offsetX=0,this.offsetY=0,n.particles.move.bounce&&this.checkOverlap(a),this.color={},"object"==(0,d.default)(e.value))if(e.value instanceof Array){var s=n.particles.color.value,o=e.value[Math.floor(Math.random()*s.length)];this.color.rgb=m.pJSUtils.hexToRgb(o)}else{var c=e.value;c&&null!=c.r&&null!=c.g&&null!=c.b&&(this.color.rgb={r:c.r,g:c.g,b:c.b});var l=e.value;null!=l.h&&null!=l.s&&null!=l.l&&(this.color.hsl={h:l.h,s:l.s,l:l.l})}else"string"==typeof e.value&&("random"==e.value?this.color.rgb={r:Math.floor(256*Math.random())+0,g:Math.floor(256*Math.random())+0,b:Math.floor(256*Math.random())+0}:(this.color={},this.color.rgb=m.pJSUtils.hexToRgb(e.value)));switch(this.opacity=(n.particles.opacity.random?Math.random():1)*n.particles.opacity.value,n.particles.opacity.anim.enable&&(this.opacity_status=!1,this.vo=n.particles.opacity.anim.speed/100,n.particles.opacity.anim.sync||(this.vo=this.vo*Math.random())),n.particles.move.direction){case g.pJSMoveDirection.top:r={x:0,y:-1};break;case g.pJSMoveDirection.topRight:r={x:.5,y:-.5};break;case g.pJSMoveDirection.right:r={x:1,y:-0};break;case g.pJSMoveDirection.bottomRight:r={x:.5,y:.5};break;case g.pJSMoveDirection.bottom:r={x:0,y:1};break;case g.pJSMoveDirection.bottomLeft:r={x:-.5,y:1};break;case g.pJSMoveDirection.left:r={x:-1,y:0};break;case g.pJSMoveDirection.topLeft:r={x:-.5,y:-.5};break;default:r={x:0,y:0}}n.particles.move.straight?(this.vx=r.x,this.vy=r.y,n.particles.move.random&&(this.vx=this.vx*Math.random(),this.vy=this.vy*Math.random())):(this.vx=r.x+Math.random()-.5,this.vy=r.y+Math.random()-.5),this.vx_i=this.vx,this.vy_i=this.vy;var u=n.particles.shape.type;if(u instanceof Array){var h=u[Math.floor(Math.random()*u.length)];this.shape=h}else this.shape=u;if(this.shape==g.pJSShapeType.image){var p=n.particles.shape;this.img={src:p.image.src,ratio:p.image.width/p.image.height,replace_color:p.image.replace_color},this.img.ratio||(this.img.ratio=1)}this.shape!=g.pJSShapeType.char&&this.shape!=g.pJSShapeType.character||("string"==typeof n.particles.shape.character.value?this.text=n.particles.shape.character.value:this.text=n.particles.shape.character.value[Math.floor(Math.random()*n.particles.shape.character.value.length)])}return(0,r.default)(v,[{key:"draw",value:function(){var t,e,i,a=this.pJSContainer,r=a.options;if(t=null!=this.radius_bubble?this.radius_bubble:this.radius,e=null!=this.opacity_bubble?this.opacity_bubble:this.opacity,this.color.rgb?i="rgba(".concat(this.color.rgb.r,",").concat(this.color.rgb.g,",").concat(this.color.rgb.b,",").concat(e,")"):this.color.hsl&&(i="hsla(".concat(this.color.hsl.h,",").concat(this.color.hsl.s,"%,").concat(this.color.hsl.l,"%,").concat(e,")")),a.canvas.ctx&&i){a.canvas.ctx.fillStyle=i,a.canvas.ctx.beginPath();var n=this.x+this.offsetX,s=this.y+this.offsetY,o=a.canvas.ctx;switch(this.shape){case g.pJSShapeType.line:o.moveTo(this.x,this.y),o.lineTo(this.x,this.y+t),o.strokeStyle=r.particles.shape.stroke.color,o.lineWidth=r.particles.shape.stroke.width,o.stroke();break;case g.pJSShapeType.circle:o.arc(n,s,t,0,2*Math.PI,!1);break;case g.pJSShapeType.edge:case g.pJSShapeType.square:o.rect(this.x-t,this.y-t,2*t,2*t);break;case g.pJSShapeType.triangle:this.drawShape(o,this.x-t,this.y+t/1.66,2*t,3,2);break;case g.pJSShapeType.polygon:var c=this.x-t/(r.particles.shape.polygon.nb_sides/3.5),l=this.y-t/.76,u=2.66*t/(r.particles.shape.polygon.nb_sides/3),h=r.particles.shape.polygon.nb_sides;this.drawShape(o,c,l,u,h,1);break;case g.pJSShapeType.star:var p=this.x-2*t/(r.particles.shape.polygon.nb_sides/4),v=this.y-t/1.52,d=2*t*2.66/(r.particles.shape.polygon.nb_sides/3),f=r.particles.shape.polygon.nb_sides;this.drawShape(o,p,v,d,f,2);break;case g.pJSShapeType.heart:var y=this.x-t/2,m=this.y-t/2;o.moveTo(y,m+t/4),o.quadraticCurveTo(y,m,y+t/4,m),o.quadraticCurveTo(y+t/2,m,y+t/2,m+t/4),o.quadraticCurveTo(y+t/2,m,y+3*t/4,m),o.quadraticCurveTo(y+t,m,y+t,m+t/4),o.quadraticCurveTo(y+t,m+t/2,y+3*t/4,m+3*t/4),o.lineTo(y+t/2,m+t),o.lineTo(y+t/4,m+3*t/4),o.quadraticCurveTo(y,m+t/2,y,m+t/4);break;case g.pJSShapeType.char:case g.pJSShapeType.character:o.font="".concat(r.particles.shape.character.style," ").concat(r.particles.shape.character.weight," ").concat(2*Math.round(t),"px ").concat(r.particles.shape.character.font),void 0!==this.text&&o.strokeText(this.text,this.x-t/2,this.y+t/2);break;case g.pJSShapeType.image:var b;(b=a.img.obj)&&this.subDraw(o,b,t)}a.canvas.ctx.closePath(),0<r.particles.shape.stroke.width&&(a.canvas.ctx.strokeStyle=r.particles.shape.stroke.color,a.canvas.ctx.lineWidth=r.particles.shape.stroke.width,a.canvas.ctx.stroke()),a.canvas.ctx.fill()}}},{key:"subDraw",value:function(t,e,i){var a=1;this.img&&(a=this.img.ratio),t.drawImage(e,this.x-i,this.y-i,2*i,2*i/a)}},{key:"drawShape",value:function(t,e,i,a,r,n){var s=r*n,o=r/n,c=180*(o-2)/o,l=Math.PI-Math.PI*c/180;t.save(),t.beginPath(),t.translate(e,i),t.moveTo(0,0);for(var u=0;u<s;u++)t.lineTo(a,0),t.translate(a,0),t.rotate(l);t.fill(),t.restore()}},{key:"checkOverlap",value:function(t){var e=this.pJSContainer,i=this,a=!0,r=!1,n=void 0;try{for(var s,o=e.particles.array[Symbol.iterator]();!(a=(s=o.next()).done);a=!0){var c=s.value,l=i.x-c.x,u=i.y-c.y;Math.sqrt(l*l+u*u)<=i.radius+c.radius&&(i.x=t?t.x:Math.random()*e.canvas.w,i.y=t?t.y:Math.random()*e.canvas.h,i.checkOverlap())}}catch(t){r=!0,n=t}finally{try{a||null==o.return||o.return()}finally{if(r)throw n}}}},{key:"initBubble",value:function(){this.opacity_bubble=this.opacity,this.radius_bubble=this.radius}},{key:"grab",value:function(){var t=this.pJSContainer,e=t.options;if(e.interactivity.events.onhover.enable&&"mousemove"==t.interactivity.status){var i=this.x-(t.interactivity.mouse.pos_x||0),a=this.y-(t.interactivity.mouse.pos_y||0),r=Math.sqrt(i*i+a*a);if(r<=e.interactivity.modes.grab.distance){var n=e.interactivity.modes.grab.line_linked.opacity-r/(1/e.interactivity.modes.grab.line_linked.opacity)/e.interactivity.modes.grab.distance;if(0<n){e.particles.line_linked.color_rgb=e.particles.line_linked.color_rgb||m.pJSUtils.hexToRgb(e.particles.line_linked.color);var s=e.particles.line_linked.color_rgb||{r:127,g:127,b:127};t.canvas.ctx&&(t.canvas.ctx.strokeStyle="rgba(".concat(s.r,",").concat(s.g,",").concat(s.b,",").concat(n,")"),t.canvas.ctx.lineWidth=e.particles.line_linked.width,t.canvas.ctx.beginPath(),t.canvas.ctx.moveTo(this.x+this.offsetX,this.y+this.offsetY),t.canvas.ctx.lineTo(t.interactivity.mouse.pos_x||0,t.interactivity.mouse.pos_y||0),t.canvas.ctx.stroke(),t.canvas.ctx.closePath())}}}}},{key:"bubble",value:function(){var t=this.pJSContainer,e=t.options;if(e.interactivity.events.onhover.enable&&m.pJSUtils.isInArray(g.pJSHoverMode.bubble,e.interactivity.events.onhover.mode)){var i=this.x+this.offsetX-(t.interactivity.mouse.pos_x||0),a=this.y+this.offsetY-(t.interactivity.mouse.pos_y||0),r=Math.sqrt(i*i+a*a),n=1-r/e.interactivity.modes.bubble.distance;if(r<=e.interactivity.modes.bubble.distance){if(0<=n&&"mousemove"==t.interactivity.status){if(e.interactivity.modes.bubble.size!=e.particles.size.value)if(e.interactivity.modes.bubble.size>e.particles.size.value){var s=this.radius+e.interactivity.modes.bubble.size*n;0<=s&&(this.radius_bubble=s)}else{var o=this.radius-e.interactivity.modes.bubble.size,c=this.radius-o*n;this.radius_bubble=0<c?c:0}if(e.interactivity.modes.bubble.opacity!=e.particles.opacity.value)if(e.interactivity.modes.bubble.opacity>e.particles.opacity.value){var l=e.interactivity.modes.bubble.opacity*n;l>this.opacity&&l<=e.interactivity.modes.bubble.opacity&&(this.opacity_bubble=l)}else{var u=this.opacity-(e.particles.opacity.value-e.interactivity.modes.bubble.opacity)*n;u<this.opacity&&u>=e.interactivity.modes.bubble.opacity&&(this.opacity_bubble=u)}}}else this.initBubble();"mouseleave"==t.interactivity.status&&this.initBubble()}else if(e.interactivity.events.onclick.enable&&m.pJSUtils.isInArray(g.pJSClickMode.bubble,e.interactivity.events.onclick.mode)){var h=this.x-(t.interactivity.mouse.click_pos_x||0),p=this.y-(t.interactivity.mouse.click_pos_y||0),v=Math.sqrt(h*h+p*p),d=((new Date).getTime()-(t.interactivity.mouse.click_time||0))/1e3;t.bubble.clicking&&(d>e.interactivity.modes.bubble.duration&&(t.bubble.duration_end=!0),d>2*e.interactivity.modes.bubble.duration&&(t.bubble.clicking=!1,t.bubble.duration_end=!1)),t.bubble.clicking&&(t.processBubble(this,v,d,e.interactivity.modes.bubble.size,e.particles.size.value,this.radius_bubble,this.radius,g.pJSProcessBubbleType.size),t.processBubble(this,v,d,e.interactivity.modes.bubble.opacity,e.particles.opacity.value,this.opacity_bubble,this.opacity,g.pJSProcessBubbleType.opacity))}}},{key:"repulse",value:function(){var t=this.pJSContainer,e=t.options;if(e.interactivity.events.onhover.enable&&m.pJSUtils.isInArray(g.pJSHoverMode.repulse,e.interactivity.events.onhover.mode)&&"mousemove"==t.interactivity.status){var i=this.x-(t.interactivity.mouse.pos_x||0),a=this.y-(t.interactivity.mouse.pos_y||0),r=Math.sqrt(i*i+a*a),n=i/r,s=a/r,o=e.interactivity.modes.repulse.distance,c=m.pJSUtils.clamp(1/o*(-1*Math.pow(r/o,2)+1)*o*100,0,50),l={x:this.x+n*c,y:this.y+s*c};e.particles.move.out_mode==g.pJSOutMode.bounce||e.particles.move.out_mode==g.pJSOutMode.bounceVertical?(0<l.x-this.radius&&l.x+this.radius<t.canvas.w&&(this.x=l.x),0<l.y-this.radius&&l.y+this.radius<t.canvas.h&&(this.y=l.y)):(this.x=l.x,this.y=l.y)}else if(e.interactivity.events.onclick.enable&&m.pJSUtils.isInArray(g.pJSClickMode.repulse,e.interactivity.events.onclick.mode))if(t.repulse.finish||(t.repulse.count||(t.repulse.count=0),t.repulse.count++,t.repulse.count==t.particles.array.length&&(t.repulse.finish=!0)),t.repulse.clicking){var u=Math.pow(e.interactivity.modes.repulse.distance/6,3),h=(t.interactivity.mouse.click_pos_x||0)-this.x,p=(t.interactivity.mouse.click_pos_y||0)-this.y,v=Math.sqrt(h*h+p*p),d=-u/(v*v);v<=u&&this.processRepulse(h,p,d)}else!1===t.repulse.clicking&&(this.vx=this.vx_i,this.vy=this.vy_i)}},{key:"processRepulse",value:function(t,e,i){var a=this.pJSContainer,r=a.options,n=Math.atan2(e,t);if(this.vx=i*Math.cos(n),this.vy=i*Math.sin(n),r.particles.move.out_mode==g.pJSOutMode.bounce||r.particles.move.out_mode==g.pJSOutMode.bounceVertical){var s=this.x+this.vx,o=this.y+this.vy;(s+this.radius>a.canvas.w||s-this.radius<0)&&(this.vx=-this.vx),(o+this.radius>a.canvas.h||o-this.radius<0)&&(this.vy=-this.vy)}}},{key:"link",value:function(t){var e=this.pJSContainer,i=e.options,a=this.x+this.offsetX,r=t.x+t.offsetX,n=a-r,s=this.y+this.offsetY,o=t.y+t.offsetY,c=s-o,l=Math.sqrt(n*n+c*c);if(l<=i.particles.line_linked.distance){var u=i.particles.line_linked.opacity-l*i.particles.line_linked.opacity/i.particles.line_linked.distance;if(0<u){if(i.particles.line_linked.color_rgb||(i.particles.line_linked.color_rgb=m.pJSUtils.hexToRgb(i.particles.line_linked.color)),!e.canvas.ctx)return;var h=e.canvas.ctx,p=i.particles.line_linked.color_rgb;p&&(h.strokeStyle="rgba(".concat(p.r,",").concat(p.g,",").concat(p.b,",").concat(u,")")),h.lineWidth=i.particles.line_linked.width,h.beginPath(),h.moveTo(a,s),h.lineTo(r,o),h.stroke(),h.closePath()}}}},{key:"attract",value:function(t){var e=this.pJSContainer.options,i=this.x-t.x,a=this.y-t.y;if(Math.sqrt(i*i+a*a)<=e.particles.line_linked.distance){var r=i/(1e3*e.particles.move.attract.rotateX),n=a/(1e3*e.particles.move.attract.rotateY);this.vx-=r,this.vy-=n,t.vx+=r,t.vy+=n}}},{key:"bounce",value:function(t){var e=this.x-t.x,i=this.y-t.y;Math.sqrt(e*e+i*i)<=this.radius+t.radius&&(this.vx=-this.vx,this.vy=-this.vy,t.vx=-t.vx,t.vy=-t.vy)}}]),v}();e.pJSParticle=n},function(e,t){function i(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=i=function(t){return typeof t}:e.exports=i=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}e.exports=i}]); |
{ | ||
"name": "tsparticles", | ||
"version": "1.3.0", | ||
"version": "1.3.1", | ||
"description": "Port of Vincent Garreau' particles.js which was originally a port of Vincent Garreau' particles.js, written in Typescript.", | ||
@@ -5,0 +5,0 @@ "homepage": "https://github.com/matteobruni/tsparticles", |
@@ -57,18 +57,10 @@ # TypeScript Particles | ||
# Original Readme | ||
--- | ||
### `Demo / Generator` | ||
[![Particles Generator](http://vincentgarreau.com/particles.js/assets/img/github-screen.jpg)](http://vincentgarreau.com/particles.js/) | ||
[![Particles Generator](https://tsparticles.matteobruni.it/demo/img/demo.png)](https://tsparticles.matteobruni.it/demo/) | ||
Configure, export, and share your particles.js configuration on CodePen: | ||
<http://vincentgarreau.com/particles.js/> | ||
<https://tsparticles.matteobruni.it/demo/> | ||
CodePen demo: | ||
<http://codepen.io/VincentGarreau/pen/pnlso> | ||
--- | ||
@@ -75,0 +67,0 @@ |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
3
443469
5140
241