storm-cookie-banner
Advanced tools
Comparing version 0.3.1 to 0.3.2
/** | ||
* @name storm-cookie-banner: | ||
* @version 0.3.0: Mon, 17 Dec 2018 11:58:36 GMT | ||
* @version 0.3.1: Tue, 18 Dec 2018 08:53:45 GMT | ||
* @author stormid | ||
@@ -5,0 +5,0 @@ * @license MIT |
@@ -1,2 +0,2 @@ | ||
import { composeUpdateUIModel, shouldExecute, writeCookie, deleteCookies } from './utils'; | ||
import { composeUpdateUIModel, shouldReturn, writeCookie, deleteCookies } from './utils'; | ||
import { TRIGGER_EVENTS } from './constants'; | ||
@@ -14,3 +14,3 @@ import { apply } from './consent'; | ||
btn.addEventListener(ev, e => { | ||
if(!shouldExecute(e)) return; | ||
if(shouldReturn(e)) return; | ||
@@ -49,3 +49,3 @@ const consent = fields.reduce((acc, field) => { return acc[field.value] = field.checked, acc }, {}); | ||
const handler = e => { | ||
if(!shouldExecute(e)) return; | ||
if(shouldReturn(e)) return; | ||
Store.update(updateConsent, {}, [ initBanner(Store), () => { | ||
@@ -52,0 +52,0 @@ e.target.setAttribute('disabled', 'disabled'); |
@@ -61,2 +61,2 @@ import { TRIGGER_KEYCODES } from './constants'; | ||
export const shouldExecute = e => (!!e.keyCode && !TRIGGER_KEYCODES.includes(e.keyCode)) || !(e.which === 3 || e.button === 2); | ||
export const shouldReturn = e => (!!e.keyCode && !~TRIGGER_KEYCODES.indexOf(e.keyCode) || (e.which && e.which === 3)); |
/** | ||
* @name storm-cookie-banner: | ||
* @version 0.3.0: Mon, 17 Dec 2018 11:58:36 GMT | ||
* @version 0.3.1: Tue, 18 Dec 2018 08:53:47 GMT | ||
* @author stormid | ||
@@ -84,4 +84,4 @@ * @license MIT | ||
var shouldExecute = function shouldExecute(e) { | ||
return !!e.keyCode && !TRIGGER_KEYCODES.includes(e.keyCode) || !(e.which === 3 || e.button === 2); | ||
var shouldReturn = function shouldReturn(e) { | ||
return !!e.keyCode && !~TRIGGER_KEYCODES.indexOf(e.keyCode) || e.which && e.which === 3; | ||
}; | ||
@@ -153,3 +153,3 @@ | ||
btn.addEventListener(ev, function (e) { | ||
if (!shouldExecute(e)) return; | ||
if (shouldReturn(e)) return; | ||
@@ -179,3 +179,3 @@ var consent = fields.reduce(function (acc, field) { | ||
var handler = function handler(e) { | ||
if (!shouldExecute(e)) return; | ||
if (shouldReturn(e)) return; | ||
Store.update(updateConsent, {}, [initBanner(Store), function () { | ||
@@ -182,0 +182,0 @@ e.target.setAttribute('disabled', 'disabled'); |
@@ -253,3 +253,3 @@ (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){ | ||
btn.addEventListener(ev, function (e) { | ||
if (!(0, _utils.shouldExecute)(e)) return; | ||
if ((0, _utils.shouldReturn)(e)) return; | ||
@@ -279,3 +279,3 @@ var consent = fields.reduce(function (acc, field) { | ||
var handler = function handler(e) { | ||
if (!(0, _utils.shouldExecute)(e)) return; | ||
if ((0, _utils.shouldReturn)(e)) return; | ||
Store.update(_reducers.updateConsent, {}, [initBanner(Store), function () { | ||
@@ -301,3 +301,3 @@ e.target.setAttribute('disabled', 'disabled'); | ||
}); | ||
exports.shouldExecute = exports.composeUpdateUIModel = exports.deleteCookies = exports.readCookie = exports.writeCookie = exports.cookiesEnabled = undefined; | ||
exports.shouldReturn = exports.composeUpdateUIModel = exports.deleteCookies = exports.readCookie = exports.writeCookie = exports.cookiesEnabled = undefined; | ||
@@ -360,7 +360,7 @@ var _constants = require('./constants'); | ||
var shouldExecute = exports.shouldExecute = function shouldExecute(e) { | ||
return !!e.keyCode && !_constants.TRIGGER_KEYCODES.includes(e.keyCode) || !(e.which === 3 || e.button === 2); | ||
var shouldReturn = exports.shouldReturn = function shouldReturn(e) { | ||
return !!e.keyCode && !~_constants.TRIGGER_KEYCODES.indexOf(e.keyCode) || e.which && e.which === 3; | ||
}; | ||
},{"./constants":4}]},{},[1]) | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJleGFtcGxlL3NyYy9hcHAuanMiLCJzcmMvaW5kZXguanMiLCJzcmMvbGliL2NvbnNlbnQuanMiLCJzcmMvbGliL2NvbnN0YW50cy5qcyIsInNyYy9saWIvZGVmYXVsdHMuanMiLCJzcmMvbGliL2luZGV4LmpzIiwic3JjL2xpYi9yZWR1Y2Vycy5qcyIsInNyYy9saWIvc3RvcmUuanMiLCJzcmMvbGliL3VpLmpzIiwic3JjL2xpYi91dGlscy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0FDQUEsSUFBQSxPQUFBLFFBQUEsV0FBQSxDQUFBOzs7Ozs7OztBQUVBLE9BQUEsZ0JBQUEsQ0FBQSxrQkFBQSxFQUE0QyxZQUFNO0FBQzlDLFVBQUEsT0FBQSxDQUFBLElBQUEsQ0FBa0I7QUFDZCxlQUFPO0FBQ0gseUJBQWE7QUFDVCxxQkFBSyxDQUNELFlBQU07QUFBRSw0QkFBQSxHQUFBLENBQUEsY0FBQTtBQURQLGlCQUFBO0FBREksYUFEVjtBQU1ILDJCQUFlO0FBQ1gseUJBRFcsSUFBQTtBQUVYLHFCQUFLLENBQ0QsWUFBTTtBQUFFLDRCQUFBLEdBQUEsQ0FBQSxnQkFBQTtBQURQLGlCQUFBO0FBRk0sYUFOWjtBQVlILHlDQUE2QjtBQUN6Qix5QkFEeUIsS0FBQTtBQUV6QixxQkFBSyxDQUNELFlBQU07QUFBRSw0QkFBQSxHQUFBLENBQUEsOEJBQUE7QUFEUCxpQkFBQTtBQUZvQjtBQVoxQjtBQURPLEtBQWxCO0FBREosQ0FBQTs7Ozs7Ozs7O0FDRkEsSUFBQSxZQUFBLFFBQUEsZ0JBQUEsQ0FBQTs7OztBQUNBLElBQUEsT0FBQSxRQUFBLE9BQUEsQ0FBQTs7Ozs7Ozs7a0JBRWU7QUFDWCxVQUFNLFNBQUEsSUFBQSxDQUFBLElBQUEsRUFBQTtBQUFBLGVBQVEsQ0FBQSxHQUFBLE1BQUEsT0FBQSxFQUFRLE9BQUEsTUFBQSxDQUFBLEVBQUEsRUFBa0IsV0FBbEIsT0FBQSxF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TUFBQSxRQUFBLENBQUEsS0FBQSxDQUFBLElBQUEsRUFBMkI7QUFEeEMsaUJBQTlDLENBQVo7QUFESixhQUFBLE1BSU8sSUFBQSxJQUFBLElBQVksTUFBQSxRQUFBLENBQUEsS0FBQSxDQUFaLElBQVksQ0FBWjtBQUNQLG1CQUFBLEdBQUE7QUFORyxTQUFBLEVBQUEsRUFBQTtBQUQ4QixLQUFsQyxDQUFQO0FBREcsQ0FBQTs7QUFhQSxJQUFNLGdCQUFBLFFBQUEsYUFBQSxHQUFnQixTQUFoQixhQUFnQixDQUFBLENBQUEsRUFBQTtBQUFBLFdBQU0sQ0FBQyxDQUFDLEVBQUYsT0FBQSxJQUFlLENBQUMsV0FBQSxnQkFBQSxDQUFBLFFBQUEsQ0FBMEIsRUFBM0MsT0FBaUIsQ0FBaEIsSUFBeUQsRUFBRSxFQUFBLEtBQUEsS0FBQSxDQUFBLElBQWlCLEVBQUEsTUFBQSxLQUFsRixDQUErRCxDQUEvRDtBQUF0QixDQUFBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiaW1wb3J0IENvb2tpZUJhbm5lciBmcm9tICcuLi8uLi9zcmMnO1xuICAgIFxud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCAoKSA9PiB7XG4gICAgQ29va2llQmFubmVyLmluaXQoe1xuICAgICAgICB0eXBlczoge1xuICAgICAgICAgICAgJ25lY2Vzc2FyeSc6IHtcbiAgICAgICAgICAgICAgICBmbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgKCkgPT4geyBjb25zb2xlLmxvZygnTmVjZXNzYXJ5IGZuJyk7IH0sXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdwZXJmb3JtYW5jZSc6IHtcbiAgICAgICAgICAgICAgICBjaGVja2VkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGZuczogW1xuICAgICAgICAgICAgICAgICAgICAoKSA9PiB7IGNvbnNvbGUubG9nKCdQZXJmb3JtYW5jZSBmbicpOyB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdhZHZlcnRpc2luZyBhbmQgbWFya2V0aW5nJzoge1xuICAgICAgICAgICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGZuczogW1xuICAgICAgICAgICAgICAgICAgICAoKSA9PiB7IGNvbnNvbGUubG9nKCdBZHZlcnRpc2luZyBhbmQgbWFya2V0aW5nIGZuJyk7IH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn0pOyIsImltcG9ydCBkZWZhdWx0cyBmcm9tICcuL2xpYi9kZWZhdWx0cyc7XG5pbXBvcnQgZmFjdG9yeSBmcm9tICcuL2xpYic7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBpbml0OiBvcHRzID0+IGZhY3RvcnkoT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdHMsIG9wdHMsIHtcbiAgICAgICAgdHlwZXM6IE9iamVjdC5rZXlzKG9wdHMudHlwZXMpLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiB7XG4gICAgICAgICAgICBpZihhY2NbY3Vycl0pIHtcbiAgICAgICAgICAgICAgICBhY2NbY3Vycl0gPSBPYmplY3QuYXNzaWduKHt9LCBhY2NbY3Vycl0sIHtcbiAgICAgICAgICAgICAgICAgICAgZm5zOiBhY2NbY3Vycl0uZm5zLmNvbmNhdChvcHRzLnR5cGVzW2N1cnJdLmZucyksXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ6IG9wdHMudHlwZXNbY3Vycl0uY2hlY2tlZCAhPT0gdW5kZWZpbmVkID8gb3B0cy50eXBlc1tjdXJyXS5jaGVja2VkIDogZGVmYXVsdHMudHlwZXNbY3Vycl0uY2hlY2tlZCAhPT0gdW5kZWZpbmVkID8gZGVmYXVsdHMudHlwZXNbY3Vycl0uY2hlY2tlZCA6IGZhbHNlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9ICBlbHNlIGFjY1tjdXJyXSA9IG9wdHMudHlwZXNbY3Vycl07XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCBkZWZhdWx0cy50eXBlcylcbiAgICB9KSlcbn07IiwiZXhwb3J0IGNvbnN0IGFwcGx5ID0gKHBlcmYgPSAnYWRkJykgPT4gc3RhdGUgPT4ge1xuICAgIC8vO187IG5lZWRzIHByb3BlciBlbnVtXG4gICAgY29uc3QgYXBwbGllZFN0YXRlID0gcGVyZiA9PT0gJ2FkZCcgXG4gICAgICAgICAgICAgICAgICAgICAgICA/IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7IGNvbnNlbnQ6ICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5jb25zZW50LCB7IHBlcmZvcm1hbmNlOiB0cnVlIH0pIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHBlcmYgPT09ICdyZW1vdmUnXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgeyBjb25zZW50OiAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuY29uc2VudCwgeyBwZXJmb3JtYW5jZTogZmFsc2UgfSl9KVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzdGF0ZTtcblxuICAgIE9iamVjdC5rZXlzKGFwcGxpZWRTdGF0ZS5jb25zZW50KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIChhcHBsaWVkU3RhdGUuY29uc2VudFtrZXldICYmIGFwcGxpZWRTdGF0ZS5zZXR0aW5ncy50eXBlc1trZXldKSAmJiBhcHBsaWVkU3RhdGUuc2V0dGluZ3MudHlwZXNba2V5XS5mbnMuZm9yRWFjaChmbiA9PiBmbihhcHBsaWVkU3RhdGUpKTtcbiAgICB9KTtcbn07IiwiZXhwb3J0IGNvbnN0IFRSSUdHRVJfRVZFTlRTID0gd2luZG93LlBvaW50ZXJFdmVudCA/IFsncG9pbnRlcnVwJywgJ2tleWRvd24nXSA6IFsnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cgPyAndG91Y2hzdGFydCcgOiAnY2xpY2snLCAna2V5ZG93bicgXTtcblxuZXhwb3J0IGNvbnN0IFRSSUdHRVJfS0VZQ09ERVMgPSBbMTMsIDMyXTtcblxuZXhwb3J0IGNvbnN0IENMQVNTTkFNRSA9IHtcbiAgICBCQU5ORVI6ICdwcmVmZXJlbmNlcy1iYW5uZXInLFxuICAgIEZJRUxEOiAncHJlZmVyZW5jZXMtYmFubmVyX19maWVsZCcsXG4gICAgQlROOiAncHJlZmVyZW5jZXMtYmFubmVyX19idG4nXG59O1xuXG5leHBvcnQgY29uc3QgREFUQV9BVFRSSUJVVEUgPSB7XG4gICAgVFlQRTogJ2RhdGEtY29uc2VudC10eXBlJyxcbiAgICBJRDogJ2RhdGEtY29uc2VudC1pZCdcbn07IiwiaW1wb3J0IHsgd3JpdGVDb29raWUgfSBmcm9tICcuL3V0aWxzJzsgXG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0bmFtZTogJ0Nvb2tpZVByZWZlcmVuY2VzJyxcblx0cGF0aDogJy8nLFxuXHRkb21haW46ICcnLFxuXHRzZWN1cmU6IHRydWUsXG5cdGV4cGlyeTogMzY1LFxuXHR0eXBlczoge1xuXHRcdCduZWNlc3NhcnknOiB7XG5cdFx0XHRjaGVja2VkOiB0cnVlLFxuXHRcdFx0ZGlzYWJsZWQ6IHRydWUsXG5cdFx0XHRmbnM6IFtdXG5cdFx0fVxuXHR9LFxuXHRwb2xpY3lVUkw6ICcvY29va2llLXBvbGljeScsXG5cdGNsYXNzTmFtZXM6IHtcblx0XHRiYW5uZXI6ICdwcmVmZXJlbmNlcy1iYW5uZXInLFxuXHRcdGJ0bjogJ3ByZWZlcmVuY2VzLWJhbm5lcl9fYnRuJyxcblx0XHRmaWVsZDogJ3ByZWZlcmVuY2VzLWJhbm5lcl9fZmllbGQnLFxuXHRcdHVwZGF0ZUJ0bkNvbnRhaW5lcjogJ3ByZWZlcmVuY2VzLWJhbm5lcl9fdXBkYXRlJyxcblx0XHR1cGRhdGVCdG46ICdwcmVmZXJlbmNlcy1iYW5uZXJfX3VwZGF0ZS1idG4nXG5cdH0sXG5cdHVwZGF0ZUJ0blRlbXBsYXRlKG1vZGVsKXtcblx0XHRyZXR1cm4gYDxidXR0b24gY2xhc3M9XCIke21vZGVsLmNsYXNzTmFtZXMudXBkYXRlQnRufVwiPlVwZGF0ZSBjb29raWUgcHJlZmVyZW5jZXM8L2J1dHRvbj5gXG5cdH0sXG5cdGJhbm5lclRlbXBsYXRlKG1vZGVsKXtcblx0XHRyZXR1cm4gYDxzZWN0aW9uIHJvbGU9XCJkaWFsb2dcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIiBhcmlhLWxhYmVsPVwiQ29va2llIGNvbnNlbnRcIiBhcmlhLWRlc2NyaWJlZGJ5PVwicHJlZmVyZW5jZXMtYmFubmVyX19kZXNjXCIgY2xhc3M9XCIke21vZGVsLmNsYXNzTmFtZXMuYmFubmVyfVwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cInByZWZlcmVuY2VzLWNvbnRlbnRcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cIndyYXBcIj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHRcdFx0XHQ8IS0tZ29vZ2xlb2ZmOiBhbGwtLT5cblx0XHRcdFx0XHRcdDxkaXYgaWQ9XCJwcmVmZXJlbmNlcy1iYW5uZXJfX2Rlc2NcIj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInByZWZlcmVuY2VzLWJhbm5lcl9faGVhZGluZ1wiPlRoaXMgd2Vic2l0ZSB1c2VzIGNvb2tpZXMuPC9kaXY+XG5cdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwicHJlZmVyZW5jZXMtYmFubmVyX190ZXh0XCI+V2UgdXNlIGNvb2tpZXMgdG8gYW5hbHlzZSBvdXIgdHJhZmZpYyBhbmQgdG8gcHJvdmlkZSBzb2NpYWwgbWVkaWEgZmVhdHVyZXMuIFlvdSBjYW4gY2hvb3NlIHdoaWNoIGNhdGVnb3JpZXMgb2YgY29va2llcyB5b3UgY29uc2VudCB0bywgb3IgYWNjZXB0IG91ciByZWNvbW1lbmRlZCBzZXR0aW5ncy5cblx0XHRcdFx0XHRcdFx0PGEgY2xhc3M9XCJwcmVmZXJlbmNlcy1iYW5uZXJfX2xpbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyIG5vZm9sbG93XCIgaHJlZj1cIiR7bW9kZWwucG9saWN5VVJMfVwiPiBGaW5kIG91dCBtb3JlIGFib3V0IHRoZSBjb29raWVzIHdlIHVzZS48L2E+PC9wPlxuXHRcdFx0XHRcdFx0XHQ8dWwgY2xhc3M9XCJwcmVmZXJlbmNlcy1iYW5uZXJfX2xpc3RcIj5cblx0XHRcdFx0XHRcdFx0XHQke09iamVjdC5rZXlzKG1vZGVsLnR5cGVzKS5tYXAodHlwZSA9PiBgPGxpIGNsYXNzPVwicHJlZmVyZW5jZXMtYmFubmVyX19saXN0LWl0ZW1cIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBpZD1cInByZWZlcmVuY2VzLWJhbm5lcl9fJHt0eXBlLnNwbGl0KCcgJylbMF0ucmVwbGFjZSgnICcsICctJyl9XCIgY2xhc3M9XCIke21vZGVsLmNsYXNzTmFtZXMuZmllbGR9XCIgdmFsdWU9XCIke3R5cGV9XCIgdHlwZT1cImNoZWNrYm94XCIke21vZGVsLnR5cGVzW3R5cGVdLmNoZWNrZWQgPyBgIGNoZWNrZWRgIDogJyd9JHttb2RlbC50eXBlc1t0eXBlXS5kaXNhYmxlZCA/IGAgZGlzYWJsZWRgIDogJyd9PlxuXHRcdFx0XHRcdFx0XHRcdFx0PGxhYmVsIGNsYXNzPVwicHJlZmVyZW5jZXMtYmFubmVyX19sYWJlbFwiIGZvcj1cInByZWZlcmVuY2VzLWJhbm5lcl9fJHt0eXBlLnNwbGl0KCcgJylbMF0ucmVwbGFjZSgnICcsICctJyl9XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCR7dHlwZS5zdWJzdHIoMCwgMSkudG9VcHBlckNhc2UoKX0ke3R5cGUuc3Vic3RyKDEpfSBjb29raWVzXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2xhYmVsPiAgXG5cdFx0XHRcdFx0XHRcdFx0PC9saT5gKS5qb2luKCcnKX1cblx0XHRcdFx0XHRcdFx0PC91bD5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cIiR7bW9kZWwuY2xhc3NOYW1lcy5idG59XCI+T0s8L2J1dHRvbj5cblx0XHRcdFx0XHRcdDwhLS1nb29nbGVvbjogYWxsLS0+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9zZWN0aW9uPmA7XG5cdH1cbn07IiwiaW1wb3J0IHsgY29va2llc0VuYWJsZWQsIHJlYWRDb29raWUgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IGluaXRCYW5uZXIsIGluaXRVcGRhdGVCdG4gfSBmcm9tICcuL3VpJztcbmltcG9ydCB7IGFwcGx5IH0gZnJvbSAnLi9jb25zZW50JztcbmltcG9ydCBDcmVhdGVTdG9yZSBmcm9tICcuL3N0b3JlJztcbmltcG9ydCB7IGluaXRpYWxTdGF0ZSB9IGZyb20gJy4vcmVkdWNlcnMnO1xuXG5leHBvcnQgZGVmYXVsdCBzZXR0aW5ncyA9PiB7XG4gICAgaWYoIWNvb2tpZXNFbmFibGVkKCkpIHJldHVybjtcbiAgICBcbiAgICBjb25zdCBTdG9yZSA9IENyZWF0ZVN0b3JlKCk7XG4gICAgY29uc3QgY29va2llcyA9IHJlYWRDb29raWUoc2V0dGluZ3MpO1xuICAgIFN0b3JlLnVwZGF0ZShcbiAgICAgICAgaW5pdGlhbFN0YXRlLFxuICAgICAgICB7IFxuICAgICAgICAgICAgc2V0dGluZ3MsXG4gICAgICAgICAgICBjb25zZW50OiBjb29raWVzID8gSlNPTi5wYXJzZShjb29raWVzLnZhbHVlKSA6IHt9IFxuICAgICAgICB9LFxuICAgICAgICBbYXBwbHkoIWNvb2tpZXMgPyAnYWRkJyA6ICdyZW1haW4nKSwgY29va2llcyA/IGluaXRVcGRhdGVCdG4oU3RvcmUpIDogaW5pdEJhbm5lcihTdG9yZSldXG4gICAgKTtcbn07IiwiZXhwb3J0IGNvbnN0IGluaXRpYWxTdGF0ZSA9IChzdGF0ZSwgZGF0YSkgPT4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIGRhdGEpO1xuZXhwb3J0IGNvbnN0IHNldENvbnNlbnQgPSAoc3RhdGUsIGRhdGEpID0+IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCBkYXRhKTtcbmV4cG9ydCBjb25zdCB1cGRhdGVDb25zZW50ID0gKHN0YXRlLCBkYXRhKSA9PiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgZGF0YSk7IiwiZXhwb3J0IGRlZmF1bHQgKCkgPT4gKHtcbiAgICBzdGF0ZToge30sXG4gICAgdXBkYXRlKHJlZHVjZXIsIG5leHRTdGF0ZSwgZWZmZWN0cyA9IFtdKXsgXG4gICAgICAgIHRoaXMuc3RhdGUgPSByZWR1Y2VyKHRoaXMuc3RhdGUsIG5leHRTdGF0ZSk7XG4gICAgICAgIGlmKGVmZmVjdHMubGVuZ3RoID4gMCkgZWZmZWN0cy5mb3JFYWNoKGVmZmVjdCA9PiB7IGVmZmVjdCh0aGlzLnN0YXRlKSB9KTtcbiAgICB9LFxuICAgIGdldFN0YXRlKCkgeyByZXR1cm4gdGhpcy5zdGF0ZSB9XG59KTsiLCJpbXBvcnQgeyBjb21wb3NlVXBkYXRlVUlNb2RlbCwgc2hvdWxkRXhlY3V0ZSwgd3JpdGVDb29raWUsIGRlbGV0ZUNvb2tpZXMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFRSSUdHRVJfRVZFTlRTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYXBwbHkgfSBmcm9tICcuL2NvbnNlbnQnO1xuaW1wb3J0IHsgc2V0Q29uc2VudCwgdXBkYXRlQ29uc2VudCB9IGZyb20gJy4vcmVkdWNlcnMnO1xuXG5leHBvcnQgY29uc3QgaW5pdEJhbm5lciA9IFN0b3JlID0+IHN0YXRlID0+IHtcbiAgICBkb2N1bWVudC5ib2R5LmZpcnN0RWxlbWVudENoaWxkLmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlYmVnaW4nLCBzdGF0ZS5zZXR0aW5ncy5iYW5uZXJUZW1wbGF0ZShjb21wb3NlVXBkYXRlVUlNb2RlbChzdGF0ZSkpKTtcbiAgICBjb25zdCBmaWVsZHMgPSBbXS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYC4ke3N0YXRlLnNldHRpbmdzLmNsYXNzTmFtZXMuZmllbGR9YCkpO1xuICAgIGNvbnN0IGJhbm5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke3N0YXRlLnNldHRpbmdzLmNsYXNzTmFtZXMuYmFubmVyfWApO1xuICAgIGNvbnN0IGJ0biA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke3N0YXRlLnNldHRpbmdzLmNsYXNzTmFtZXMuYnRufWApO1xuXG4gICAgVFJJR0dFUl9FVkVOVFMuZm9yRWFjaChldiA9PiB7XG4gICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKGV2LCBlID0+IHtcbiAgICAgICAgICAgIGlmKCFzaG91bGRFeGVjdXRlKGUpKSByZXR1cm47XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnNlbnQgPSBmaWVsZHMucmVkdWNlKChhY2MsIGZpZWxkKSA9PiB7IHJldHVybiBhY2NbZmllbGQudmFsdWVdID0gZmllbGQuY2hlY2tlZCwgYWNjIH0sIHt9KTtcbiAgICAgICAgICAgIFN0b3JlLnVwZGF0ZShcbiAgICAgICAgICAgICAgICBzZXRDb25zZW50LFxuICAgICAgICAgICAgICAgIHsgY29uc2VudCB9LFxuICAgICAgICAgICAgICAgICFjb25zZW50LnBlcmZvcm1hbmNlIFxuICAgICAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgICAgICBkZWxldGVDb29raWVzLFxuICAgICAgICAgICAgICAgICAgICB3cml0ZUNvb2tpZSxcbiAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gbG9jYXRpb24ucmVsb2FkKCksIDYwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVDb29raWUsXG4gICAgICAgICAgICAgICAgICAgIGFwcGx5KHN0YXRlLmNvbnNlbnQucGVyZm9ybWFuY2UgPyAncmVtYWluJyA6ICdyZW1vdmUnKSxcbiAgICAgICAgICAgICAgICAgICAgKCkgPT4geyBcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhbm5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGJhbm5lcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0VXBkYXRlQnRuKFN0b3JlKShzdGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGluaXRVcGRhdGVCdG4gPSBTdG9yZSA9PiBzdGF0ZSA9PiB7XG4gICAgY29uc3QgdXBkYXRlQnRuQ29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLiR7c3RhdGUuc2V0dGluZ3MuY2xhc3NOYW1lcy51cGRhdGVCdG5Db250YWluZXJ9YCk7XG4gICAgaWYoIXVwZGF0ZUJ0bkNvbnRhaW5lcikgcmV0dXJuO1xuICAgIGNvbnN0IHVwZGF0ZUJ0biA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke3N0YXRlLnNldHRpbmdzLmNsYXNzTmFtZXMudXBkYXRlQnRufWApO1xuICAgIGlmKHVwZGF0ZUJ0bikgdXBkYXRlQnRuLnJlbW92ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKTtcbiAgICBlbHNlIHVwZGF0ZUJ0bkNvbnRhaW5lci5pbm5lckhUTUwgPSBzdGF0ZS5zZXR0aW5ncy51cGRhdGVCdG5UZW1wbGF0ZShzdGF0ZS5zZXR0aW5ncyk7XG4gICAgY29uc3QgaGFuZGxlciA9IGUgPT4ge1xuICAgICAgICBpZighc2hvdWxkRXhlY3V0ZShlKSkgcmV0dXJuO1xuICAgICAgICBTdG9yZS51cGRhdGUodXBkYXRlQ29uc2VudCwge30sIFsgaW5pdEJhbm5lcihTdG9yZSksICgpID0+IHsgXG4gICAgICAgICAgICBlLnRhcmdldC5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICBUUklHR0VSX0VWRU5UUy5mb3JFYWNoKGV2ID0+IHtcbiAgICAgICAgICAgICAgICBlLnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKGV2LCBoYW5kbGVyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XSk7XG4gICAgfTtcblxuICAgIFRSSUdHRVJfRVZFTlRTLmZvckVhY2goZXYgPT4ge1xuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHtzdGF0ZS5zZXR0aW5ncy5jbGFzc05hbWVzLnVwZGF0ZUJ0bn1gKS5hZGRFdmVudExpc3RlbmVyKGV2LCBoYW5kbGVyKTtcbiAgICB9KTtcbn07IiwiaW1wb3J0IHsgVFJJR0dFUl9LRVlDT0RFUyB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuLy9Nb2Rlcm5penIgY29va2llIHRlc3RcbmV4cG9ydCBjb25zdCBjb29raWVzRW5hYmxlZCA9ICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgICBkb2N1bWVudC5jb29raWUgPSAnY29va2lldGVzdD0xJztcbiAgICAgICAgY29uc3QgcmV0ID0gZG9jdW1lbnQuY29va2llLmluZGV4T2YoJ2Nvb2tpZXRlc3Q9JykgIT09IC0xO1xuICAgICAgICBkb2N1bWVudC5jb29raWUgPSAnY29va2lldGVzdD0xOyBleHBpcmVzPVRodSwgMDEtSmFuLTE5NzAgMDA6MDA6MDEgR01UJztcbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH1cbiAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCB3cml0ZUNvb2tpZSA9IHN0YXRlID0+IGRvY3VtZW50LmNvb2tpZSA9IFtcbiAgICBgJHtzdGF0ZS5zZXR0aW5ncy5uYW1lfT0ke0pTT04uc3RyaW5naWZ5KE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLmNvbnNlbnQsIHsgaW50ZW50OiBzdGF0ZS5pbnRlbnQgfSkpfTtgLFxuICAgIGBleHBpcmVzPSR7KG5ldyBEYXRlKG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgKHN0YXRlLnNldHRpbmdzLmV4cGlyeSoyNCo2MCo2MCoxMDAwKSkpLnRvR01UU3RyaW5nKCl9O2AsXG4gICAgYHBhdGg9JHtzdGF0ZS5zZXR0aW5ncy5wYXRofTtgLFxuICAgIHN0YXRlLnNldHRpbmdzLmRvbWFpbiA/IGBkb21haW49JHtzdGF0ZS5zZXR0aW5ncy5kb21haW59YCA6ICcnLFxuICAgIHN0YXRlLnNldHRpbmdzLnNlY3VyZSA/IGBzZWN1cmVgIDogJydcbl0uam9pbignJyk7XG5cbmV4cG9ydCBjb25zdCByZWFkQ29va2llID0gc2V0dGluZ3MgPT4ge1xuICAgIGNvbnN0IGNvb2tpZSA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOyAnKS5tYXAocGFydCA9PiAoeyBuYW1lOiBwYXJ0LnNwbGl0KCc9JylbMF0sIHZhbHVlOiBwYXJ0LnNwbGl0KCc9JylbMV0gfSkpLmZpbHRlcihwYXJ0ID0+IHBhcnQubmFtZSA9PT0gc2V0dGluZ3MubmFtZSlbMF07XG4gICAgcmV0dXJuIGNvb2tpZSAhPT0gdW5kZWZpbmVkID8gY29va2llIDogZmFsc2U7XG59O1xuXG5jb25zdCB1cGRhdGVDb29raWUgPSBzdGF0ZSA9PiBtb2RlbCA9PiBkb2N1bWVudC5jb29raWUgPSBbXG4gICAgYCR7bW9kZWwubmFtZX09JHttb2RlbC52YWx1ZX07YCxcbiAgICBgZXhwaXJlcz0ke21vZGVsLmV4cGlyeX07YCxcbiAgICBgcGF0aD0ke3N0YXRlLnNldHRpbmdzLnBhdGh9O2AsXG4gICAgc3RhdGUuc2V0dGluZ3MuZG9tYWluID8gYGRvbWFpbj0ke3N0YXRlLnNldHRpbmdzLmRvbWFpbn07YCA6ICcnLFxuICAgIHN0YXRlLnNldHRpbmdzLnNlY3VyZSA/IGBzZWN1cmVgIDogJydcbl0uam9pbignJyk7XG5cbmV4cG9ydCBjb25zdCBkZWxldGVDb29raWVzID0gc3RhdGUgPT4ge1xuICAgIGRvY3VtZW50LmNvb2tpZVxuICAgICAgICAuc3BsaXQoJzsgJylcbiAgICAgICAgLm1hcChwYXJ0ID0+ICh7IFxuICAgICAgICAgICAgbmFtZTogcGFydC5zcGxpdCgnPScpWzBdLFxuICAgICAgICAgICAgdmFsdWU6IHBhcnQuc3BsaXQoJz0nKVsxXSxcbiAgICAgICAgICAgIGV4cGlyeTogJ1RodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UJ1xuICAgICAgICB9KSlcbiAgICAgICAgLm1hcCh1cGRhdGVDb29raWUoc3RhdGUpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb21wb3NlVXBkYXRlVUlNb2RlbCA9IHN0YXRlID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc2V0dGluZ3MsIHtcbiAgICAgICAgdHlwZXM6IE9iamVjdC5rZXlzKHN0YXRlLnNldHRpbmdzLnR5cGVzKS5yZWR1Y2UoKGFjYywgdHlwZSkgPT4ge1xuICAgICAgICAgICAgaWYoc3RhdGUuY29uc2VudFt0eXBlXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgYWNjW3R5cGVdID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuc2V0dGluZ3MudHlwZXNbdHlwZV0sIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tlZDogc3RhdGUuY29uc2VudFt0eXBlXSAhPT0gdW5kZWZpbmVkID8gc3RhdGUuY29uc2VudFt0eXBlXSA6IHN0YXRlLnNldHRpbmdzLnR5cGVzW3R5cGVdLmNoZWNrZWRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBhY2NbdHlwZV0gPSBzdGF0ZS5zZXR0aW5ncy50eXBlc1t0eXBlXTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KVxuICAgIH0pXG59O1xuXG5leHBvcnQgY29uc3Qgc2hvdWxkRXhlY3V0ZSA9IGUgPT4gKCEhZS5rZXlDb2RlICYmICFUUklHR0VSX0tFWUNPREVTLmluY2x1ZGVzKGUua2V5Q29kZSkpIHx8ICEoZS53aGljaCA9PT0gMyB8fCBlLmJ1dHRvbiA9PT0gMik7Il19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJleGFtcGxlL3NyYy9hcHAuanMiLCJzcmMvaW5kZXguanMiLCJzcmMvbGliL2NvbnNlbnQuanMiLCJzcmMvbGliL2NvbnN0YW50cy5qcyIsInNyYy9saWIvZGVmYXVsdHMuanMiLCJzcmMvbGliL2luZGV4LmpzIiwic3JjL2xpYi9yZWR1Y2Vycy5qcyIsInNyYy9saWIvc3RvcmUuanMiLCJzcmMvbGliL3VpLmpzIiwic3JjL2xpYi91dGlscy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0FDQUEsSUFBQSxPQUFBLFFBQUEsV0FBQSxDQUFBOzs7Ozs7OztBQUVBLE9BQUEsZ0JBQUEsQ0FBQSxrQkFBQSxFQUE0QyxZQUFNO0FBQzlDLFVBQUEsT0FBQSxDQUFBLElBQUEsQ0FBa0I7QUFDZCxlQUFPO0FBQ0gseUJBQWE7QUFDVCxxQkFBSyxDQUNELFlBQU07QUFBRSw0QkFBQSxHQUFBLENBQUEsY0FBQTtBQURQLGlCQUFBO0FBREksYUFEVjtBQU1ILDJCQUFlO0FBQ1gseUJBRFcsSUFBQTtBQUVYLHFCQUFLLENBQ0QsWUFBTTtBQUFFLDRCQUFBLEdBQUEsQ0FBQSxnQkFBQTtBQURQLGlCQUFBO0FBRk0sYUFOWjtBQVlILHlDQUE2QjtBQUN6Qix5QkFEeUIsS0FBQTtBQUV6QixxQkFBSyxDQUNELFlBQU07QUFBRSw0QkFBQSxHQUFBLENBQUEsOEJBQUE7QUFEUCxpQkFBQTtBQUZvQjtBQVoxQjtBQURPLEtBQWxCO0FBREosQ0FBQTs7Ozs7Ozs7O0FDRkEsSUFBQSxZQUFBLFFBQUEsZ0JBQUEsQ0FBQTs7OztBQUNBLElBQUEsT0FBQSxRQUFBLE9BQUEsQ0FBQTs7Ozs7Ozs7a0JBRWU7QUFDWCxVQUFNLFNBQUEsSUFBQSxDQUFBLElBQUEsRUFBQTtBQUFBLGVBQVEsQ0FBQSxHQUFBLE1BQUEsT0FBQSxFQUFRLE9BQUEsTUFBQSxDQUFBLEVBQUEsRUFBa0IsV0FBbEIsT0FBQSxF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Q0FBQSxLQUFBLENBQUEsSUFBQSxFQUEyQjtBQUR4QyxpQkFBOUMsQ0FBWjtBQURKLGFBQUEsTUFJTyxJQUFBLElBQUEsSUFBWSxNQUFBLFFBQUEsQ0FBQSxLQUFBLENBQVosSUFBWSxDQUFaO0FBQ1AsbUJBQUEsR0FBQTtBQU5HLFNBQUEsRUFBQSxFQUFBO0FBRDhCLEtBQWxDLENBQVA7QUFERyxDQUFBOztBQWFBLElBQU0sZUFBQSxRQUFBLFlBQUEsR0FBZSxTQUFmLFlBQWUsQ0FBQSxDQUFBLEVBQUE7QUFBQSxXQUFNLENBQUMsQ0FBQyxFQUFGLE9BQUEsSUFBZSxDQUFDLENBQUMsV0FBQSxnQkFBQSxDQUFBLE9BQUEsQ0FBeUIsRUFBMUMsT0FBaUIsQ0FBakIsSUFBeUQsRUFBQSxLQUFBLElBQVcsRUFBQSxLQUFBLEtBQTFFLENBQUE7QUFBckIsQ0FBQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsImltcG9ydCBDb29raWVCYW5uZXIgZnJvbSAnLi4vLi4vc3JjJztcbiAgICBcbndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgKCkgPT4ge1xuICAgIENvb2tpZUJhbm5lci5pbml0KHtcbiAgICAgICAgdHlwZXM6IHtcbiAgICAgICAgICAgICduZWNlc3NhcnknOiB7XG4gICAgICAgICAgICAgICAgZm5zOiBbXG4gICAgICAgICAgICAgICAgICAgICgpID0+IHsgY29uc29sZS5sb2coJ05lY2Vzc2FyeSBmbicpOyB9LFxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAncGVyZm9ybWFuY2UnOiB7XG4gICAgICAgICAgICAgICAgY2hlY2tlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBmbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgKCkgPT4geyBjb25zb2xlLmxvZygnUGVyZm9ybWFuY2UgZm4nKTsgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAnYWR2ZXJ0aXNpbmcgYW5kIG1hcmtldGluZyc6IHtcbiAgICAgICAgICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBmbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgKCkgPT4geyBjb25zb2xlLmxvZygnQWR2ZXJ0aXNpbmcgYW5kIG1hcmtldGluZyBmbicpOyB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG59KTsiLCJpbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi9saWIvZGVmYXVsdHMnO1xuaW1wb3J0IGZhY3RvcnkgZnJvbSAnLi9saWInO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgaW5pdDogb3B0cyA9PiBmYWN0b3J5KE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRzLCBvcHRzLCB7XG4gICAgICAgIHR5cGVzOiBPYmplY3Qua2V5cyhvcHRzLnR5cGVzKS5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgICAgICAgICAgaWYoYWNjW2N1cnJdKSB7XG4gICAgICAgICAgICAgICAgYWNjW2N1cnJdID0gT2JqZWN0LmFzc2lnbih7fSwgYWNjW2N1cnJdLCB7XG4gICAgICAgICAgICAgICAgICAgIGZuczogYWNjW2N1cnJdLmZucy5jb25jYXQob3B0cy50eXBlc1tjdXJyXS5mbnMpLFxuICAgICAgICAgICAgICAgICAgICBjaGVja2VkOiBvcHRzLnR5cGVzW2N1cnJdLmNoZWNrZWQgIT09IHVuZGVmaW5lZCA/IG9wdHMudHlwZXNbY3Vycl0uY2hlY2tlZCA6IGRlZmF1bHRzLnR5cGVzW2N1cnJdLmNoZWNrZWQgIT09IHVuZGVmaW5lZCA/IGRlZmF1bHRzLnR5cGVzW2N1cnJdLmNoZWNrZWQgOiBmYWxzZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSAgZWxzZSBhY2NbY3Vycl0gPSBvcHRzLnR5cGVzW2N1cnJdO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwgZGVmYXVsdHMudHlwZXMpXG4gICAgfSkpXG59OyIsImV4cG9ydCBjb25zdCBhcHBseSA9IChwZXJmID0gJ2FkZCcpID0+IHN0YXRlID0+IHtcbiAgICAvLztfOyBuZWVkcyBwcm9wZXIgZW51bVxuICAgIGNvbnN0IGFwcGxpZWRTdGF0ZSA9IHBlcmYgPT09ICdhZGQnIFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgeyBjb25zZW50OiAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuY29uc2VudCwgeyBwZXJmb3JtYW5jZTogdHJ1ZSB9KSB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwZXJmID09PSAncmVtb3ZlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHsgY29uc2VudDogIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLmNvbnNlbnQsIHsgcGVyZm9ybWFuY2U6IGZhbHNlIH0pfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc3RhdGU7XG5cbiAgICBPYmplY3Qua2V5cyhhcHBsaWVkU3RhdGUuY29uc2VudCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAoYXBwbGllZFN0YXRlLmNvbnNlbnRba2V5XSAmJiBhcHBsaWVkU3RhdGUuc2V0dGluZ3MudHlwZXNba2V5XSkgJiYgYXBwbGllZFN0YXRlLnNldHRpbmdzLnR5cGVzW2tleV0uZm5zLmZvckVhY2goZm4gPT4gZm4oYXBwbGllZFN0YXRlKSk7XG4gICAgfSk7XG59OyIsImV4cG9ydCBjb25zdCBUUklHR0VSX0VWRU5UUyA9IHdpbmRvdy5Qb2ludGVyRXZlbnQgPyBbJ3BvaW50ZXJ1cCcsICdrZXlkb3duJ10gOiBbJ29udG91Y2hzdGFydCcgaW4gd2luZG93ID8gJ3RvdWNoc3RhcnQnIDogJ2NsaWNrJywgJ2tleWRvd24nIF07XG5cbmV4cG9ydCBjb25zdCBUUklHR0VSX0tFWUNPREVTID0gWzEzLCAzMl07XG5cbmV4cG9ydCBjb25zdCBDTEFTU05BTUUgPSB7XG4gICAgQkFOTkVSOiAncHJlZmVyZW5jZXMtYmFubmVyJyxcbiAgICBGSUVMRDogJ3ByZWZlcmVuY2VzLWJhbm5lcl9fZmllbGQnLFxuICAgIEJUTjogJ3ByZWZlcmVuY2VzLWJhbm5lcl9fYnRuJ1xufTtcblxuZXhwb3J0IGNvbnN0IERBVEFfQVRUUklCVVRFID0ge1xuICAgIFRZUEU6ICdkYXRhLWNvbnNlbnQtdHlwZScsXG4gICAgSUQ6ICdkYXRhLWNvbnNlbnQtaWQnXG59OyIsImltcG9ydCB7IHdyaXRlQ29va2llIH0gZnJvbSAnLi91dGlscyc7IFxuXG5leHBvcnQgZGVmYXVsdCB7XG5cdG5hbWU6ICdDb29raWVQcmVmZXJlbmNlcycsXG5cdHBhdGg6ICcvJyxcblx0ZG9tYWluOiAnJyxcblx0c2VjdXJlOiB0cnVlLFxuXHRleHBpcnk6IDM2NSxcblx0dHlwZXM6IHtcblx0XHQnbmVjZXNzYXJ5Jzoge1xuXHRcdFx0Y2hlY2tlZDogdHJ1ZSxcblx0XHRcdGRpc2FibGVkOiB0cnVlLFxuXHRcdFx0Zm5zOiBbXVxuXHRcdH1cblx0fSxcblx0cG9saWN5VVJMOiAnL2Nvb2tpZS1wb2xpY3knLFxuXHRjbGFzc05hbWVzOiB7XG5cdFx0YmFubmVyOiAncHJlZmVyZW5jZXMtYmFubmVyJyxcblx0XHRidG46ICdwcmVmZXJlbmNlcy1iYW5uZXJfX2J0bicsXG5cdFx0ZmllbGQ6ICdwcmVmZXJlbmNlcy1iYW5uZXJfX2ZpZWxkJyxcblx0XHR1cGRhdGVCdG5Db250YWluZXI6ICdwcmVmZXJlbmNlcy1iYW5uZXJfX3VwZGF0ZScsXG5cdFx0dXBkYXRlQnRuOiAncHJlZmVyZW5jZXMtYmFubmVyX191cGRhdGUtYnRuJ1xuXHR9LFxuXHR1cGRhdGVCdG5UZW1wbGF0ZShtb2RlbCl7XG5cdFx0cmV0dXJuIGA8YnV0dG9uIGNsYXNzPVwiJHttb2RlbC5jbGFzc05hbWVzLnVwZGF0ZUJ0bn1cIj5VcGRhdGUgY29va2llIHByZWZlcmVuY2VzPC9idXR0b24+YFxuXHR9LFxuXHRiYW5uZXJUZW1wbGF0ZShtb2RlbCl7XG5cdFx0cmV0dXJuIGA8c2VjdGlvbiByb2xlPVwiZGlhbG9nXCIgYXJpYS1saXZlPVwicG9saXRlXCIgYXJpYS1sYWJlbD1cIkNvb2tpZSBjb25zZW50XCIgYXJpYS1kZXNjcmliZWRieT1cInByZWZlcmVuY2VzLWJhbm5lcl9fZGVzY1wiIGNsYXNzPVwiJHttb2RlbC5jbGFzc05hbWVzLmJhbm5lcn1cIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJwcmVmZXJlbmNlcy1jb250ZW50XCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJ3cmFwXCI+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0XHRcdFx0PCEtLWdvb2dsZW9mZjogYWxsLS0+XG5cdFx0XHRcdFx0XHQ8ZGl2IGlkPVwicHJlZmVyZW5jZXMtYmFubmVyX19kZXNjXCI+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJwcmVmZXJlbmNlcy1iYW5uZXJfX2hlYWRpbmdcIj5UaGlzIHdlYnNpdGUgdXNlcyBjb29raWVzLjwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8cCBjbGFzcz1cInByZWZlcmVuY2VzLWJhbm5lcl9fdGV4dFwiPldlIHVzZSBjb29raWVzIHRvIGFuYWx5c2Ugb3VyIHRyYWZmaWMgYW5kIHRvIHByb3ZpZGUgc29jaWFsIG1lZGlhIGZlYXR1cmVzLiBZb3UgY2FuIGNob29zZSB3aGljaCBjYXRlZ29yaWVzIG9mIGNvb2tpZXMgeW91IGNvbnNlbnQgdG8sIG9yIGFjY2VwdCBvdXIgcmVjb21tZW5kZWQgc2V0dGluZ3MuXG5cdFx0XHRcdFx0XHRcdDxhIGNsYXNzPVwicHJlZmVyZW5jZXMtYmFubmVyX19saW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlciBub2ZvbGxvd1wiIGhyZWY9XCIke21vZGVsLnBvbGljeVVSTH1cIj4gRmluZCBvdXQgbW9yZSBhYm91dCB0aGUgY29va2llcyB3ZSB1c2UuPC9hPjwvcD5cblx0XHRcdFx0XHRcdFx0PHVsIGNsYXNzPVwicHJlZmVyZW5jZXMtYmFubmVyX19saXN0XCI+XG5cdFx0XHRcdFx0XHRcdFx0JHtPYmplY3Qua2V5cyhtb2RlbC50eXBlcykubWFwKHR5cGUgPT4gYDxsaSBjbGFzcz1cInByZWZlcmVuY2VzLWJhbm5lcl9fbGlzdC1pdGVtXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW5wdXQgaWQ9XCJwcmVmZXJlbmNlcy1iYW5uZXJfXyR7dHlwZS5zcGxpdCgnICcpWzBdLnJlcGxhY2UoJyAnLCAnLScpfVwiIGNsYXNzPVwiJHttb2RlbC5jbGFzc05hbWVzLmZpZWxkfVwiIHZhbHVlPVwiJHt0eXBlfVwiIHR5cGU9XCJjaGVja2JveFwiJHttb2RlbC50eXBlc1t0eXBlXS5jaGVja2VkID8gYCBjaGVja2VkYCA6ICcnfSR7bW9kZWwudHlwZXNbdHlwZV0uZGlzYWJsZWQgPyBgIGRpc2FibGVkYCA6ICcnfT5cblx0XHRcdFx0XHRcdFx0XHRcdDxsYWJlbCBjbGFzcz1cInByZWZlcmVuY2VzLWJhbm5lcl9fbGFiZWxcIiBmb3I9XCJwcmVmZXJlbmNlcy1iYW5uZXJfXyR7dHlwZS5zcGxpdCgnICcpWzBdLnJlcGxhY2UoJyAnLCAnLScpfVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQke3R5cGUuc3Vic3RyKDAsIDEpLnRvVXBwZXJDYXNlKCl9JHt0eXBlLnN1YnN0cigxKX0gY29va2llc1xuXHRcdFx0XHRcdFx0XHRcdFx0PC9sYWJlbD4gIFxuXHRcdFx0XHRcdFx0XHRcdDwvbGk+YCkuam9pbignJyl9XG5cdFx0XHRcdFx0XHRcdDwvdWw+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCIke21vZGVsLmNsYXNzTmFtZXMuYnRufVwiPk9LPC9idXR0b24+XG5cdFx0XHRcdFx0XHQ8IS0tZ29vZ2xlb246IGFsbC0tPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvc2VjdGlvbj5gO1xuXHR9XG59OyIsImltcG9ydCB7IGNvb2tpZXNFbmFibGVkLCByZWFkQ29va2llIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBpbml0QmFubmVyLCBpbml0VXBkYXRlQnRuIH0gZnJvbSAnLi91aSc7XG5pbXBvcnQgeyBhcHBseSB9IGZyb20gJy4vY29uc2VudCc7XG5pbXBvcnQgQ3JlYXRlU3RvcmUgZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyBpbml0aWFsU3RhdGUgfSBmcm9tICcuL3JlZHVjZXJzJztcblxuZXhwb3J0IGRlZmF1bHQgc2V0dGluZ3MgPT4ge1xuICAgIGlmKCFjb29raWVzRW5hYmxlZCgpKSByZXR1cm47XG4gICAgXG4gICAgY29uc3QgU3RvcmUgPSBDcmVhdGVTdG9yZSgpO1xuICAgIGNvbnN0IGNvb2tpZXMgPSByZWFkQ29va2llKHNldHRpbmdzKTtcbiAgICBTdG9yZS51cGRhdGUoXG4gICAgICAgIGluaXRpYWxTdGF0ZSxcbiAgICAgICAgeyBcbiAgICAgICAgICAgIHNldHRpbmdzLFxuICAgICAgICAgICAgY29uc2VudDogY29va2llcyA/IEpTT04ucGFyc2UoY29va2llcy52YWx1ZSkgOiB7fSBcbiAgICAgICAgfSxcbiAgICAgICAgW2FwcGx5KCFjb29raWVzID8gJ2FkZCcgOiAncmVtYWluJyksIGNvb2tpZXMgPyBpbml0VXBkYXRlQnRuKFN0b3JlKSA6IGluaXRCYW5uZXIoU3RvcmUpXVxuICAgICk7XG59OyIsImV4cG9ydCBjb25zdCBpbml0aWFsU3RhdGUgPSAoc3RhdGUsIGRhdGEpID0+IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCBkYXRhKTtcbmV4cG9ydCBjb25zdCBzZXRDb25zZW50ID0gKHN0YXRlLCBkYXRhKSA9PiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgZGF0YSk7XG5leHBvcnQgY29uc3QgdXBkYXRlQ29uc2VudCA9IChzdGF0ZSwgZGF0YSkgPT4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIGRhdGEpOyIsImV4cG9ydCBkZWZhdWx0ICgpID0+ICh7XG4gICAgc3RhdGU6IHt9LFxuICAgIHVwZGF0ZShyZWR1Y2VyLCBuZXh0U3RhdGUsIGVmZmVjdHMgPSBbXSl7IFxuICAgICAgICB0aGlzLnN0YXRlID0gcmVkdWNlcih0aGlzLnN0YXRlLCBuZXh0U3RhdGUpO1xuICAgICAgICBpZihlZmZlY3RzLmxlbmd0aCA+IDApIGVmZmVjdHMuZm9yRWFjaChlZmZlY3QgPT4geyBlZmZlY3QodGhpcy5zdGF0ZSkgfSk7XG4gICAgfSxcbiAgICBnZXRTdGF0ZSgpIHsgcmV0dXJuIHRoaXMuc3RhdGUgfVxufSk7IiwiaW1wb3J0IHsgY29tcG9zZVVwZGF0ZVVJTW9kZWwsIHNob3VsZFJldHVybiwgd3JpdGVDb29raWUsIGRlbGV0ZUNvb2tpZXMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFRSSUdHRVJfRVZFTlRTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYXBwbHkgfSBmcm9tICcuL2NvbnNlbnQnO1xuaW1wb3J0IHsgc2V0Q29uc2VudCwgdXBkYXRlQ29uc2VudCB9IGZyb20gJy4vcmVkdWNlcnMnO1xuXG5leHBvcnQgY29uc3QgaW5pdEJhbm5lciA9IFN0b3JlID0+IHN0YXRlID0+IHtcbiAgICBkb2N1bWVudC5ib2R5LmZpcnN0RWxlbWVudENoaWxkLmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlYmVnaW4nLCBzdGF0ZS5zZXR0aW5ncy5iYW5uZXJUZW1wbGF0ZShjb21wb3NlVXBkYXRlVUlNb2RlbChzdGF0ZSkpKTtcbiAgICBjb25zdCBmaWVsZHMgPSBbXS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYC4ke3N0YXRlLnNldHRpbmdzLmNsYXNzTmFtZXMuZmllbGR9YCkpO1xuICAgIGNvbnN0IGJhbm5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke3N0YXRlLnNldHRpbmdzLmNsYXNzTmFtZXMuYmFubmVyfWApO1xuICAgIGNvbnN0IGJ0biA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke3N0YXRlLnNldHRpbmdzLmNsYXNzTmFtZXMuYnRufWApO1xuXG4gICAgVFJJR0dFUl9FVkVOVFMuZm9yRWFjaChldiA9PiB7XG4gICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKGV2LCBlID0+IHtcbiAgICAgICAgICAgIGlmKHNob3VsZFJldHVybihlKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBjb25zZW50ID0gZmllbGRzLnJlZHVjZSgoYWNjLCBmaWVsZCkgPT4geyByZXR1cm4gYWNjW2ZpZWxkLnZhbHVlXSA9IGZpZWxkLmNoZWNrZWQsIGFjYyB9LCB7fSk7XG4gICAgICAgICAgICBTdG9yZS51cGRhdGUoXG4gICAgICAgICAgICAgICAgc2V0Q29uc2VudCxcbiAgICAgICAgICAgICAgICB7IGNvbnNlbnQgfSxcbiAgICAgICAgICAgICAgICAhY29uc2VudC5wZXJmb3JtYW5jZSBcbiAgICAgICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlQ29va2llcyxcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVDb29raWUsXG4gICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IGxvY2F0aW9uLnJlbG9hZCgpLCA2MCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgOiBbXG4gICAgICAgICAgICAgICAgICAgIHdyaXRlQ29va2llLFxuICAgICAgICAgICAgICAgICAgICBhcHBseShzdGF0ZS5jb25zZW50LnBlcmZvcm1hbmNlID8gJ3JlbWFpbicgOiAncmVtb3ZlJyksXG4gICAgICAgICAgICAgICAgICAgICgpID0+IHsgXG4gICAgICAgICAgICAgICAgICAgICAgICBiYW5uZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiYW5uZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdFVwZGF0ZUJ0bihTdG9yZSkoc3RhdGUpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpbml0VXBkYXRlQnRuID0gU3RvcmUgPT4gc3RhdGUgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZUJ0bkNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke3N0YXRlLnNldHRpbmdzLmNsYXNzTmFtZXMudXBkYXRlQnRuQ29udGFpbmVyfWApO1xuICAgIGlmKCF1cGRhdGVCdG5Db250YWluZXIpIHJldHVybjtcbiAgICBjb25zdCB1cGRhdGVCdG4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAuJHtzdGF0ZS5zZXR0aW5ncy5jbGFzc05hbWVzLnVwZGF0ZUJ0bn1gKTtcbiAgICBpZih1cGRhdGVCdG4pIHVwZGF0ZUJ0bi5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7XG4gICAgZWxzZSB1cGRhdGVCdG5Db250YWluZXIuaW5uZXJIVE1MID0gc3RhdGUuc2V0dGluZ3MudXBkYXRlQnRuVGVtcGxhdGUoc3RhdGUuc2V0dGluZ3MpO1xuICAgIGNvbnN0IGhhbmRsZXIgPSBlID0+IHtcbiAgICAgICAgaWYoc2hvdWxkUmV0dXJuKGUpKSByZXR1cm47XG4gICAgICAgIFN0b3JlLnVwZGF0ZSh1cGRhdGVDb25zZW50LCB7fSwgWyBpbml0QmFubmVyKFN0b3JlKSwgKCkgPT4geyBcbiAgICAgICAgICAgIGUudGFyZ2V0LnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIFRSSUdHRVJfRVZFTlRTLmZvckVhY2goZXYgPT4ge1xuICAgICAgICAgICAgICAgIGUudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXYsIGhhbmRsZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1dKTtcbiAgICB9O1xuXG4gICAgVFJJR0dFUl9FVkVOVFMuZm9yRWFjaChldiA9PiB7XG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke3N0YXRlLnNldHRpbmdzLmNsYXNzTmFtZXMudXBkYXRlQnRufWApLmFkZEV2ZW50TGlzdGVuZXIoZXYsIGhhbmRsZXIpO1xuICAgIH0pO1xufTsiLCJpbXBvcnQgeyBUUklHR0VSX0tFWUNPREVTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG4vL01vZGVybml6ciBjb29raWUgdGVzdFxuZXhwb3J0IGNvbnN0IGNvb2tpZXNFbmFibGVkID0gKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICdjb29raWV0ZXN0PTEnO1xuICAgICAgICBjb25zdCByZXQgPSBkb2N1bWVudC5jb29raWUuaW5kZXhPZignY29va2lldGVzdD0nKSAhPT0gLTE7XG4gICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICdjb29raWV0ZXN0PTE7IGV4cGlyZXM9VGh1LCAwMS1KYW4tMTk3MCAwMDowMDowMSBHTVQnO1xuICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgfVxuICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHdyaXRlQ29va2llID0gc3RhdGUgPT4gZG9jdW1lbnQuY29va2llID0gW1xuICAgIGAke3N0YXRlLnNldHRpbmdzLm5hbWV9PSR7SlNPTi5zdHJpbmdpZnkoT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUuY29uc2VudCwgeyBpbnRlbnQ6IHN0YXRlLmludGVudCB9KSl9O2AsXG4gICAgYGV4cGlyZXM9JHsobmV3IERhdGUobmV3IERhdGUoKS5nZXRUaW1lKCkgKyAoc3RhdGUuc2V0dGluZ3MuZXhwaXJ5KjI0KjYwKjYwKjEwMDApKSkudG9HTVRTdHJpbmcoKX07YCxcbiAgICBgcGF0aD0ke3N0YXRlLnNldHRpbmdzLnBhdGh9O2AsXG4gICAgc3RhdGUuc2V0dGluZ3MuZG9tYWluID8gYGRvbWFpbj0ke3N0YXRlLnNldHRpbmdzLmRvbWFpbn1gIDogJycsXG4gICAgc3RhdGUuc2V0dGluZ3Muc2VjdXJlID8gYHNlY3VyZWAgOiAnJ1xuXS5qb2luKCcnKTtcblxuZXhwb3J0IGNvbnN0IHJlYWRDb29raWUgPSBzZXR0aW5ncyA9PiB7XG4gICAgY29uc3QgY29va2llID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCc7ICcpLm1hcChwYXJ0ID0+ICh7IG5hbWU6IHBhcnQuc3BsaXQoJz0nKVswXSwgdmFsdWU6IHBhcnQuc3BsaXQoJz0nKVsxXSB9KSkuZmlsdGVyKHBhcnQgPT4gcGFydC5uYW1lID09PSBzZXR0aW5ncy5uYW1lKVswXTtcbiAgICByZXR1cm4gY29va2llICE9PSB1bmRlZmluZWQgPyBjb29raWUgOiBmYWxzZTtcbn07XG5cbmNvbnN0IHVwZGF0ZUNvb2tpZSA9IHN0YXRlID0+IG1vZGVsID0+IGRvY3VtZW50LmNvb2tpZSA9IFtcbiAgICBgJHttb2RlbC5uYW1lfT0ke21vZGVsLnZhbHVlfTtgLFxuICAgIGBleHBpcmVzPSR7bW9kZWwuZXhwaXJ5fTtgLFxuICAgIGBwYXRoPSR7c3RhdGUuc2V0dGluZ3MucGF0aH07YCxcbiAgICBzdGF0ZS5zZXR0aW5ncy5kb21haW4gPyBgZG9tYWluPSR7c3RhdGUuc2V0dGluZ3MuZG9tYWlufTtgIDogJycsXG4gICAgc3RhdGUuc2V0dGluZ3Muc2VjdXJlID8gYHNlY3VyZWAgOiAnJ1xuXS5qb2luKCcnKTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZUNvb2tpZXMgPSBzdGF0ZSA9PiB7XG4gICAgZG9jdW1lbnQuY29va2llXG4gICAgICAgIC5zcGxpdCgnOyAnKVxuICAgICAgICAubWFwKHBhcnQgPT4gKHsgXG4gICAgICAgICAgICBuYW1lOiBwYXJ0LnNwbGl0KCc9JylbMF0sXG4gICAgICAgICAgICB2YWx1ZTogcGFydC5zcGxpdCgnPScpWzFdLFxuICAgICAgICAgICAgZXhwaXJ5OiAnVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQnXG4gICAgICAgIH0pKVxuICAgICAgICAubWFwKHVwZGF0ZUNvb2tpZShzdGF0ZSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbXBvc2VVcGRhdGVVSU1vZGVsID0gc3RhdGUgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncywge1xuICAgICAgICB0eXBlczogT2JqZWN0LmtleXMoc3RhdGUuc2V0dGluZ3MudHlwZXMpLnJlZHVjZSgoYWNjLCB0eXBlKSA9PiB7XG4gICAgICAgICAgICBpZihzdGF0ZS5jb25zZW50W3R5cGVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBhY2NbdHlwZV0gPSBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zZXR0aW5ncy50eXBlc1t0eXBlXSwge1xuICAgICAgICAgICAgICAgICAgICBjaGVja2VkOiBzdGF0ZS5jb25zZW50W3R5cGVdICE9PSB1bmRlZmluZWQgPyBzdGF0ZS5jb25zZW50W3R5cGVdIDogc3RhdGUuc2V0dGluZ3MudHlwZXNbdHlwZV0uY2hlY2tlZFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGFjY1t0eXBlXSA9IHN0YXRlLnNldHRpbmdzLnR5cGVzW3R5cGVdO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pXG4gICAgfSlcbn07XG5cbmV4cG9ydCBjb25zdCBzaG91bGRSZXR1cm4gPSBlID0+ICghIWUua2V5Q29kZSAmJiAhflRSSUdHRVJfS0VZQ09ERVMuaW5kZXhPZihlLmtleUNvZGUpIHx8IChlLndoaWNoICYmIGUud2hpY2ggPT09IDMpKTsiXX0= |
{ | ||
"name": "storm-cookie-banner", | ||
"version": "0.3.1", | ||
"version": "0.3.2", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "author": "stormid", |
@@ -1,2 +0,2 @@ | ||
import { composeUpdateUIModel, shouldExecute, writeCookie, deleteCookies } from './utils'; | ||
import { composeUpdateUIModel, shouldReturn, writeCookie, deleteCookies } from './utils'; | ||
import { TRIGGER_EVENTS } from './constants'; | ||
@@ -14,3 +14,3 @@ import { apply } from './consent'; | ||
btn.addEventListener(ev, e => { | ||
if(!shouldExecute(e)) return; | ||
if(shouldReturn(e)) return; | ||
@@ -49,3 +49,3 @@ const consent = fields.reduce((acc, field) => { return acc[field.value] = field.checked, acc }, {}); | ||
const handler = e => { | ||
if(!shouldExecute(e)) return; | ||
if(shouldReturn(e)) return; | ||
Store.update(updateConsent, {}, [ initBanner(Store), () => { | ||
@@ -52,0 +52,0 @@ e.target.setAttribute('disabled', 'disabled'); |
@@ -61,2 +61,2 @@ import { TRIGGER_KEYCODES } from './constants'; | ||
export const shouldExecute = e => (!!e.keyCode && !TRIGGER_KEYCODES.includes(e.keyCode)) || !(e.which === 3 || e.button === 2); | ||
export const shouldReturn = e => (!!e.keyCode && !~TRIGGER_KEYCODES.indexOf(e.keyCode) || (e.which && e.which === 3)); |
100793