New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

flummox

Package Overview
Dependencies
Maintainers
2
Versions
68
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

flummox - npm Package Compare versions

Comparing version 3.6.8 to 3.6.9

231

dist/flummox.js

@@ -53,2 +53,4 @@ var Flummox =

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _Store2 = __webpack_require__(1);

@@ -62,9 +64,9 @@

var _flux = __webpack_require__(3);
var _flux = __webpack_require__(4);
var _eventemitter = __webpack_require__(4);
var _eventemitter = __webpack_require__(5);
var _eventemitter2 = _interopRequireDefault(_eventemitter);
var _objectAssign = __webpack_require__(5);
var _objectAssign = __webpack_require__(3);

@@ -75,4 +77,2 @@ var _objectAssign2 = _interopRequireDefault(_objectAssign);

function _typeof(obj) { return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

@@ -88,3 +88,3 @@

var Flux = (function (_EventEmitter) {
var Flux = function (_EventEmitter) {
_inherits(Flux, _EventEmitter);

@@ -154,7 +154,7 @@

var properties = _Actions;
_Actions = (function (_Actions2) {
_inherits(_class, _Actions2);
_Actions = function (_Actions2) {
_inherits(_Actions, _Actions2);
function _class() {
_classCallCheck(this, _class);
function _Actions() {
_classCallCheck(this, _Actions);

@@ -164,5 +164,5 @@ return _possibleConstructorReturn(this, _Actions2.apply(this, arguments));

return _class;
})(_Actions4['default']);
(0, _objectAssign2.default)(_Actions.prototype, properties);
return _Actions;
}(_Actions4['default']);
(0, _objectAssign2['default'])(_Actions.prototype, properties);
}

@@ -295,7 +295,7 @@ }

var _serialize = store.constructor.serialize;
var serialize = store.constructor.serialize;
if (typeof _serialize !== 'function') continue;
if (typeof serialize !== 'function') continue;
var serializedStoreState = _serialize(store.state);
var serializedStoreState = serialize(store.state);

@@ -313,6 +313,6 @@ if (typeof serializedStoreState !== 'string') {

if (typeof store.constructor.deserialize !== 'function') {
var className = store.constructor.name;
var _className = store.constructor.name;
if ((undefined) !== 'production') {
console.warn('The class `' + className + '` has a `serialize()` method, but no ' + 'corresponding `deserialize()` method.');
console.warn('The class `' + _className + '` has a `serialize()` method, but no ' + 'corresponding `deserialize()` method.');
}

@@ -326,3 +326,3 @@ }

Flux.prototype.deserialize = function deserialize(serializedState) {
var stateMap = undefined;
var stateMap = void 0;

@@ -344,8 +344,8 @@ try {

var _deserialize = store.constructor.deserialize;
var deserialize = store.constructor.deserialize;
if (typeof _deserialize !== 'function') continue;
if (typeof deserialize !== 'function') continue;
var storeStateString = stateMap[key];
var storeState = _deserialize(storeStateString);
var storeState = deserialize(storeStateString);

@@ -355,6 +355,6 @@ store.replaceState(storeState);

if (typeof store.constructor.serialize !== 'function') {
var className = store.constructor.name;
var _className2 = store.constructor.name;
if ((undefined) !== 'production') {
console.warn('The class `' + className + '` has a `deserialize()` method, but no ' + 'corresponding `serialize()` method.');
console.warn('The class `' + _className2 + '` has a `deserialize()` method, but no ' + 'corresponding `serialize()` method.');
}

@@ -366,7 +366,8 @@ }

return Flux;
})(_eventemitter2.default);
}(_eventemitter2['default']);
// Aliases
exports.default = Flux;
exports['default'] = Flux;
Flux.prototype.getConstants = Flux.prototype.getActionIds;

@@ -408,7 +409,7 @@ Flux.prototype.getAllConstants = Flux.prototype.getAllActionIds;

var _eventemitter = __webpack_require__(4);
var _eventemitter = __webpack_require__(5);
var _eventemitter2 = _interopRequireDefault(_eventemitter);
var _objectAssign = __webpack_require__(5);
var _objectAssign = __webpack_require__(3);

@@ -432,3 +433,3 @@ var _objectAssign2 = _interopRequireDefault(_objectAssign);

var Store = (function (_EventEmitter) {
var Store = function (_EventEmitter) {
_inherits(Store, _EventEmitter);

@@ -440,3 +441,2 @@

*/
function Store() {

@@ -492,3 +492,3 @@ _classCallCheck(this, Store);

Store.assignState = function assignState(oldState, newState) {
return (0, _objectAssign2.default)({}, oldState, newState);
return (0, _objectAssign2['default'])({}, oldState, newState);
};

@@ -569,8 +569,9 @@

Store.prototype.handler = function handler(payload) {
var body = payload.body;
var actionId = payload.actionId;
var _async = payload['async'];
var actionArgs = payload.actionArgs;
var error = payload.error;
var body = payload.body,
actionId = payload.actionId,
_async = payload['async'],
actionArgs = payload.actionArgs,
error = payload.error;
var _allHandlers = this._catchAllHandlers;

@@ -631,6 +632,7 @@ var _handler = this._handlers[actionId];

return Store;
})(_eventemitter2.default);
}(_eventemitter2['default']);
exports.default = Store;
exports['default'] = Store;
function ensureActionId(actionOrActionId) {

@@ -668,7 +670,7 @@ return typeof actionOrActionId === 'function' ? actionOrActionId._id : actionOrActionId;

var Actions = (function () {
var Actions = function () {
function Actions() {
_classCallCheck(this, Actions);
this._baseId = (0, _uniqueid2.default)();
this._baseId = (0, _uniqueid2['default'])();

@@ -735,2 +737,3 @@ var methodNames = this._getActionMethodNames();

Actions.prototype._createActionId = function _createActionId(methodName) {

@@ -765,6 +768,7 @@ return this._baseId + '-' + methodName;

return Actions;
})();
}();
exports.default = Actions;
exports['default'] = Actions;
function isPromise(value) {

@@ -778,2 +782,98 @@ return value && typeof value.then === 'function';

/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
'use strict';
/* eslint-disable no-unused-vars */
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
function toObject(val) {
if (val === null || val === undefined) {
throw new TypeError('Object.assign cannot be called with null or undefined');
}
return Object(val);
}
function shouldUseNative() {
try {
if (!Object.assign) {
return false;
}
// Detect buggy property enumeration order in older V8 versions.
// https://bugs.chromium.org/p/v8/issues/detail?id=4118
var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
test1[5] = 'de';
if (Object.getOwnPropertyNames(test1)[0] === '5') {
return false;
}
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test2 = {};
for (var i = 0; i < 10; i++) {
test2['_' + String.fromCharCode(i)] = i;
}
var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
return test2[n];
});
if (order2.join('') !== '0123456789') {
return false;
}
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test3 = {};
'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
test3[letter] = letter;
});
if (Object.keys(Object.assign({}, test3)).join('') !==
'abcdefghijklmnopqrst') {
return false;
}
return true;
} catch (err) {
// We don't expect any of the above to throw, but better to be safe.
return false;
}
}
module.exports = shouldUseNative() ? Object.assign : function (target, source) {
var from;
var to = toObject(target);
var symbols;
for (var s = 1; s < arguments.length; s++) {
from = Object(arguments[s]);
for (var key in from) {
if (hasOwnProperty.call(from, key)) {
to[key] = from[key];
}
}
if (getOwnPropertySymbols) {
symbols = getOwnPropertySymbols(from);
for (var i = 0; i < symbols.length; i++) {
if (propIsEnumerable.call(from, symbols[i])) {
to[symbols[i]] = from[symbols[i]];
}
}
}
}
return to;
};
/***/ },
/* 4 */
/***/ function(module, exports, __webpack_require__) {
/**

@@ -792,3 +892,3 @@ * Copyright (c) 2014-2015, Facebook, Inc.

/***/ },
/* 4 */
/* 5 */
/***/ function(module, exports, __webpack_require__) {

@@ -1028,47 +1128,2 @@

/***/ },
/* 5 */
/***/ function(module, exports, __webpack_require__) {
/* eslint-disable no-unused-vars */
'use strict';
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
function toObject(val) {
if (val === null || val === undefined) {
throw new TypeError('Object.assign cannot be called with null or undefined');
}
return Object(val);
}
module.exports = Object.assign || function (target, source) {
var from;
var to = toObject(target);
var symbols;
for (var s = 1; s < arguments.length; s++) {
from = Object(arguments[s]);
for (var key in from) {
if (hasOwnProperty.call(from, key)) {
to[key] = from[key];
}
}
if (Object.getOwnPropertySymbols) {
symbols = Object.getOwnPropertySymbols(from);
for (var i = 0; i < symbols.length; i++) {
if (propIsEnumerable.call(from, symbols[i])) {
to[symbols[i]] = from[symbols[i]];
}
}
}
}
return to;
};
/***/ },
/* 6 */

@@ -1075,0 +1130,0 @@ /***/ function(module, exports, __webpack_require__) {

@@ -1,1 +0,6 @@

var Flummox=function(t){function e(i){if(n[i])return n[i].exports;var s=n[i]={exports:{},id:i,loaded:!1};return t[i].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function a(t){return t.prototype.constructor.name}function c(t){var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(t[n]);return e}e.__esModule=!0,e.Actions=e.Store=e.Flummox=e.Flux=void 0;var h=n(1),p=i(h),u=n(2),f=i(u),l=n(3),d=n(5),y=i(d),_=n(4),v=i(_),g=function(t){function e(){s(this,e);var n=r(this,t.call(this));return n.dispatcher=new l.Dispatcher,n._stores={},n._actions={},n}return o(e,t),e.prototype.createStore=function(t,e){if(!(e.prototype instanceof p["default"])){var n=a(e);throw new Error("You've attempted to create a store from the class "+n+", which does not have the base Store class in its prototype chain. Make sure "+("you're using the `extends` keyword: `class "+n+" extends ")+"Store { ... }`")}if(this._stores.hasOwnProperty(t)&&this._stores[t])throw new Error("You've attempted to create multiple stores with key "+t+". Keys must be unique.");for(var i=arguments.length,s=Array(i>2?i-2:0),r=2;i>r;r++)s[r-2]=arguments[r];var o=new(Function.prototype.bind.apply(e,[null].concat(s))),c=this.dispatcher.register(o.handler.bind(o));return o._waitFor=this.waitFor.bind(this),o._token=c,o._getAllActionIds=this.getAllActionIds.bind(this),this._stores[t]=o,o},e.prototype.getStore=function(t){return this._stores.hasOwnProperty(t)?this._stores[t]:void 0},e.prototype.removeStore=function(t){if(!this._stores.hasOwnProperty(t))throw new Error("You've attempted to remove store with key "+t+" which does not exist.");this._stores[t].removeAllListeners(),this.dispatcher.unregister(this._stores[t]._token),delete this._stores[t]},e.prototype.createActions=function(t,e){if(!(e.prototype instanceof f["default"])&&e!==f["default"]){if("function"==typeof e){var n=a(e);throw new Error("You've attempted to create actions from the class "+n+", which does not have the base Actions class in its prototype chain. Make "+("sure you're using the `extends` keyword: `class "+n+" ")+"extends Actions { ... }`")}var i=e;e=function(t){function e(){return s(this,e),r(this,t.apply(this,arguments))}return o(e,t),e}(f["default"]),v["default"](e.prototype,i)}if(this._actions.hasOwnProperty(t)&&this._actions[t])throw new Error("You've attempted to create multiple actions with key "+t+". Keys must be unique.");for(var c=arguments.length,h=Array(c>2?c-2:0),p=2;c>p;p++)h[p-2]=arguments[p];var u=new(Function.prototype.bind.apply(e,[null].concat(h)));return u.dispatch=this.dispatch.bind(this),u.dispatchAsync=this.dispatchAsync.bind(this),this._actions[t]=u,u},e.prototype.getActions=function(t){return this._actions.hasOwnProperty(t)?this._actions[t]:void 0},e.prototype.getActionIds=function(t){var e=this.getActions(t);if(e)return e.getConstants()},e.prototype.removeActions=function(t){if(!this._actions.hasOwnProperty(t))throw new Error("You've attempted to remove actions with key "+t+" which does not exist.");delete this._actions[t]},e.prototype.getAllActionIds=function(){var t=[];for(var e in this._actions)if(this._actions.hasOwnProperty(e)){var n=this._actions[e].getConstants();t=t.concat(c(n))}return t},e.prototype.dispatch=function(t,e){this._dispatch({actionId:t,body:e})},e.prototype.dispatchAsync=function(t,e,n){var i=this,s={actionId:t,async:"begin"};return n&&(s.actionArgs=n),this._dispatch(s),e.then(function(e){return i._dispatch({actionId:t,body:e,async:"success"}),e},function(e){i._dispatch({actionId:t,error:e,async:"failure"})})["catch"](function(t){throw i.emit("error",t),t})},e.prototype._dispatch=function(t){this.dispatcher.dispatch(t),this.emit("dispatch",t)},e.prototype.waitFor=function(t){Array.isArray(t)||(t=[t]);var e=function(t){return t instanceof p["default"]?t._token:t},n=t.map(e);this.dispatcher.waitFor(n)},e.prototype.removeAllStoreListeners=function(t){for(var e in this._stores)if(this._stores.hasOwnProperty(e)){var n=this._stores[e];n.removeAllListeners(t)}},e.prototype.serialize=function(){var t={};for(var e in this._stores)if(this._stores.hasOwnProperty(e)){var n=this._stores[e],i=n.constructor.serialize;if("function"==typeof i){var s=i(n.state);if("string"!=typeof s){n.constructor.name}if(t[e]=s,"function"!=typeof n.constructor.deserialize){n.constructor.name}}}return JSON.stringify(t)},e.prototype.deserialize=function(t){var e=void 0;try{e=JSON.parse(t)}catch(n){this.constructor.name}for(var i in this._stores)if(this._stores.hasOwnProperty(i)){var s=this._stores[i],r=s.constructor.deserialize;if("function"==typeof r){var o=e[i],a=r(o);if(s.replaceState(a),"function"!=typeof s.constructor.serialize){s.constructor.name}}}},e}(y["default"]);e["default"]=g,g.prototype.getConstants=g.prototype.getActionIds,g.prototype.getAllConstants=g.prototype.getAllActionIds,g.prototype.dehydrate=g.prototype.serialize,g.prototype.hydrate=g.prototype.deserialize;var m=g;e.Flux=g,e.Flummox=m,e.Store=p["default"],e.Actions=f["default"]},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function a(t){return"function"==typeof t?t._id:t}e.__esModule=!0;var c=n(5),h=i(c),p=n(4),u=i(p),f=function(t){function e(){s(this,e);var n=r(this,t.call(this));return n.state=null,n._handlers={},n._asyncHandlers={},n._catchAllHandlers=[],n._catchAllAsyncHandlers={begin:[],success:[],failure:[]},n}return o(e,t),e.prototype.setState=function(t){if("function"==typeof t){var e=this._isHandlingDispatch?this._pendingState:this.state;t=t(e)}this._isHandlingDispatch?(this._pendingState=this._assignState(this._pendingState,t),this._emitChangeAfterHandlingDispatch=!0):(this.state=this._assignState(this.state,t),this.emit("change"))},e.prototype.replaceState=function(t){this._isHandlingDispatch?(this._pendingState=this._assignState(void 0,t),this._emitChangeAfterHandlingDispatch=!0):(this.state=this._assignState(void 0,t),this.emit("change"))},e.prototype.getStateAsObject=function(){return this.state},e.assignState=function(t,e){return u["default"]({},t,e)},e.prototype._assignState=function(){return(this.constructor.assignState||e.assignState).apply(void 0,arguments)},e.prototype.forceUpdate=function(){this._isHandlingDispatch?this._emitChangeAfterHandlingDispatch=!0:this.emit("change")},e.prototype.register=function(t,e){t=a(t),"function"==typeof e&&(this._handlers[t]=e.bind(this))},e.prototype.registerAsync=function(t,e,n,i){t=a(t);var s=this._bindAsyncHandlers({begin:e,success:n,failure:i});this._asyncHandlers[t]=s},e.prototype.registerAll=function(t){"function"==typeof t&&this._catchAllHandlers.push(t.bind(this))},e.prototype.registerAllAsync=function(t,e,n){var i=this,s=this._bindAsyncHandlers({begin:t,success:e,failure:n});Object.keys(s).forEach(function(t){i._catchAllAsyncHandlers[t].push(s[t])})},e.prototype._bindAsyncHandlers=function(t){for(var e in t)if(t.hasOwnProperty(e)){var n=t[e];"function"==typeof n?t[e]=n.bind(this):delete t[e]}return t},e.prototype.waitFor=function(t){this._waitFor(t)},e.prototype.handler=function(t){var e=t.body,n=t.actionId,i=t.async,s=t.actionArgs,r=t.error,o=this._catchAllHandlers,a=this._handlers[n],c=this._catchAllAsyncHandlers[i],h=this._asyncHandlers[n]&&this._asyncHandlers[n][i];if(i){var p=c.concat([h]);switch(i){case"begin":return void this._performHandler(p,s);case"failure":return void this._performHandler(p,[r]);case"success":return void this._performHandler(c.concat([h||a].concat(h&&[]||o)),[e]);default:return}}this._performHandler(o.concat([a]),[e])},e.prototype._performHandler=function(t,e){this._isHandlingDispatch=!0,this._pendingState=this._assignState(void 0,this.state),this._emitChangeAfterHandlingDispatch=!1;try{this._performHandlers(t,e)}finally{this._emitChangeAfterHandlingDispatch&&(this.state=this._pendingState,this.emit("change")),this._isHandlingDispatch=!1,this._pendingState=void 0,this._emitChangeAfterHandlingDispatch=!1}},e.prototype._performHandlers=function(t,e){var n=this;t.forEach(function(t){return"function"==typeof t&&t.apply(n,e)})},e}(h["default"]);e["default"]=f},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t){return t&&"function"==typeof t.then}e.__esModule=!0;var o=n(7),a=i(o),c=function(){function t(){s(this,t),this._baseId=a["default"]();for(var e=this._getActionMethodNames(),n=0;n<e.length;n++){var i=e[n];this._wrapAction(i)}this.getConstants=this.getActionIds}return t.prototype.getActionIds=function(){var t=this;return this._getActionMethodNames().reduce(function(e,n){return e[n]=t[n]._id,e},{})},t.prototype._getActionMethodNames=function(t){var e=this;return Object.getOwnPropertyNames(this.constructor.prototype).filter(function(t){return"constructor"!==t&&"function"==typeof e[t]})},t.prototype._wrapAction=function(t){var e=this,n=this[t],i=this._createActionId(t),s=function(){for(var s=arguments.length,o=Array(s),a=0;s>a;a++)o[a]=arguments[a];var c=n.apply(e,o);if(r(c)){var h=c;e._dispatchAsync(i,h,o,t)}else e._dispatch(i,c,o,t);return c};s._id=i,this[t]=s},t.prototype._createActionId=function(t){return this._baseId+"-"+t},t.prototype._dispatch=function(t,e,n,i){return"function"==typeof this.dispatch&&"undefined"!=typeof e&&this.dispatch(t,e,n),e},t.prototype._dispatchAsync=function(t,e,n,i){"function"==typeof this.dispatchAsync&&this.dispatchAsync(t,e,n)},t}();e["default"]=c},function(t,e,n){t.exports.Dispatcher=n(6)},function(t,e,n){"use strict";function i(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}var s=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;t.exports=Object.assign||function(t,e){for(var n,o,a=i(t),c=1;c<arguments.length;c++){n=Object(arguments[c]);for(var h in n)s.call(n,h)&&(a[h]=n[h]);if(Object.getOwnPropertySymbols){o=Object.getOwnPropertySymbols(n);for(var p=0;p<o.length;p++)r.call(n,o[p])&&(a[o[p]]=n[o[p]])}}return a}},function(t,e,n){"use strict";function i(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function s(){}s.prototype._events=void 0,s.prototype.listeners=function(t){if(!this._events||!this._events[t])return[];if(this._events[t].fn)return[this._events[t].fn];for(var e=0,n=this._events[t].length,i=new Array(n);n>e;e++)i[e]=this._events[t][e].fn;return i},s.prototype.emit=function(t,e,n,i,s,r){if(!this._events||!this._events[t])return!1;var o,a,c=this._events[t],h=arguments.length;if("function"==typeof c.fn){switch(c.once&&this.removeListener(t,c.fn,!0),h){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,e),!0;case 3:return c.fn.call(c.context,e,n),!0;case 4:return c.fn.call(c.context,e,n,i),!0;case 5:return c.fn.call(c.context,e,n,i,s),!0;case 6:return c.fn.call(c.context,e,n,i,s,r),!0}for(a=1,o=new Array(h-1);h>a;a++)o[a-1]=arguments[a];c.fn.apply(c.context,o)}else{var p,u=c.length;for(a=0;u>a;a++)switch(c[a].once&&this.removeListener(t,c[a].fn,!0),h){case 1:c[a].fn.call(c[a].context);break;case 2:c[a].fn.call(c[a].context,e);break;case 3:c[a].fn.call(c[a].context,e,n);break;default:if(!o)for(p=1,o=new Array(h-1);h>p;p++)o[p-1]=arguments[p];c[a].fn.apply(c[a].context,o)}}return!0},s.prototype.on=function(t,e,n){var s=new i(e,n||this);return this._events||(this._events={}),this._events[t]?this._events[t].fn?this._events[t]=[this._events[t],s]:this._events[t].push(s):this._events[t]=s,this},s.prototype.once=function(t,e,n){var s=new i(e,n||this,!0);return this._events||(this._events={}),this._events[t]?this._events[t].fn?this._events[t]=[this._events[t],s]:this._events[t].push(s):this._events[t]=s,this},s.prototype.removeListener=function(t,e,n){if(!this._events||!this._events[t])return this;var i=this._events[t],s=[];if(e&&(i.fn&&(i.fn!==e||n&&!i.once)&&s.push(i),!i.fn))for(var r=0,o=i.length;o>r;r++)(i[r].fn!==e||n&&!i[r].once)&&s.push(i[r]);return s.length?this._events[t]=1===s.length?s[0]:s:delete this._events[t],this},s.prototype.removeAllListeners=function(t){return this._events?(t?delete this._events[t]:this._events={},this):this},s.prototype.off=s.prototype.removeListener,s.prototype.addListener=s.prototype.on,s.prototype.setMaxListeners=function(){return this},s.EventEmitter=s,s.EventEmitter2=s,s.EventEmitter3=s,t.exports=s},function(t,e,n){"use strict";function i(){this.$Dispatcher_callbacks={},this.$Dispatcher_isPending={},this.$Dispatcher_isHandled={},this.$Dispatcher_isDispatching=!1,this.$Dispatcher_pendingPayload=null}var s=n(8),r=1,o="ID_";i.prototype.register=function(t){var e=o+r++;return this.$Dispatcher_callbacks[e]=t,e},i.prototype.unregister=function(t){s(this.$Dispatcher_callbacks[t],"Dispatcher.unregister(...): `%s` does not map to a registered callback.",t),delete this.$Dispatcher_callbacks[t]},i.prototype.waitFor=function(t){s(this.$Dispatcher_isDispatching,"Dispatcher.waitFor(...): Must be invoked while dispatching.");for(var e=0;e<t.length;e++){var n=t[e];this.$Dispatcher_isPending[n]?s(this.$Dispatcher_isHandled[n],"Dispatcher.waitFor(...): Circular dependency detected while waiting for `%s`.",n):(s(this.$Dispatcher_callbacks[n],"Dispatcher.waitFor(...): `%s` does not map to a registered callback.",n),this.$Dispatcher_invokeCallback(n))}},i.prototype.dispatch=function(t){s(!this.$Dispatcher_isDispatching,"Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch."),this.$Dispatcher_startDispatching(t);try{for(var e in this.$Dispatcher_callbacks)this.$Dispatcher_isPending[e]||this.$Dispatcher_invokeCallback(e)}finally{this.$Dispatcher_stopDispatching()}},i.prototype.isDispatching=function(){return this.$Dispatcher_isDispatching},i.prototype.$Dispatcher_invokeCallback=function(t){this.$Dispatcher_isPending[t]=!0,this.$Dispatcher_callbacks[t](this.$Dispatcher_pendingPayload),this.$Dispatcher_isHandled[t]=!0},i.prototype.$Dispatcher_startDispatching=function(t){for(var e in this.$Dispatcher_callbacks)this.$Dispatcher_isPending[e]=!1,this.$Dispatcher_isHandled[e]=!1;this.$Dispatcher_pendingPayload=t,this.$Dispatcher_isDispatching=!0},i.prototype.$Dispatcher_stopDispatching=function(){this.$Dispatcher_pendingPayload=null,this.$Dispatcher_isDispatching=!1},t.exports=i},function(t,e,n){"use strict";var i=0,s=t.exports=function(t){t=t||{};var e=t.prefix,n=t.suffix,s=++i*(t.multiplier||1);return null==e&&(e=""),null==n&&(n=""),String(e)+s+String(n)};s.reset=function(){return i=0}},function(t,e,n){"use strict";var i=function(t,e,n,i,s,r,o,a){if(!t){var c;if(void 0===e)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var h=[n,i,s,r,o,a],p=0;c=new Error("Invariant Violation: "+e.replace(/%s/g,function(){return h[p++]}))}throw c.framesToPop=1,c}};t.exports=i}]);
var Flummox=function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return t[i].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function a(t){return t.prototype.constructor.name}function c(t){var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(t[n]);return e}e.__esModule=!0,e.Actions=e.Store=e.Flummox=e.Flux=void 0;var h=("function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(1)),p=i(h),u=n(2),f=i(u),l=n(3),d=n(4),y=i(d),_=n(5),v=i(_),g=function(t){function e(){r(this,e);var n=s(this,t.call(this));return n.dispatcher=new l.Dispatcher,n._stores={},n._actions={},n}return o(e,t),e.prototype.createStore=function(t,e){if(!(e.prototype instanceof p["default"])){var n=a(e);throw new Error("You've attempted to create a store from the class "+n+", which does not have the base Store class in its prototype chain. Make sure "+("you're using the `extends` keyword: `class "+n+" extends ")+"Store { ... }`")}if(this._stores.hasOwnProperty(t)&&this._stores[t])throw new Error("You've attempted to create multiple stores with key "+t+". Keys must be unique.");for(var i=arguments.length,r=Array(i>2?i-2:0),s=2;i>s;s++)r[s-2]=arguments[s];var o=new(Function.prototype.bind.apply(e,[null].concat(r))),c=this.dispatcher.register(o.handler.bind(o));return o._waitFor=this.waitFor.bind(this),o._token=c,o._getAllActionIds=this.getAllActionIds.bind(this),this._stores[t]=o,o},e.prototype.getStore=function(t){return this._stores.hasOwnProperty(t)?this._stores[t]:void 0},e.prototype.removeStore=function(t){if(!this._stores.hasOwnProperty(t))throw new Error("You've attempted to remove store with key "+t+" which does not exist.");this._stores[t].removeAllListeners(),this.dispatcher.unregister(this._stores[t]._token),delete this._stores[t]},e.prototype.createActions=function(t,e){if(!(e.prototype instanceof f["default"])&&e!==f["default"]){if("function"==typeof e){var n=a(e);throw new Error("You've attempted to create actions from the class "+n+", which does not have the base Actions class in its prototype chain. Make "+("sure you're using the `extends` keyword: `class "+n+" ")+"extends Actions { ... }`")}var i=e;e=function(t){function e(){return r(this,e),s(this,t.apply(this,arguments))}return o(e,t),e}(f["default"]),v["default"](e.prototype,i)}if(this._actions.hasOwnProperty(t)&&this._actions[t])throw new Error("You've attempted to create multiple actions with key "+t+". Keys must be unique.");for(var c=arguments.length,h=Array(c>2?c-2:0),p=2;c>p;p++)h[p-2]=arguments[p];var u=new(Function.prototype.bind.apply(e,[null].concat(h)));return u.dispatch=this.dispatch.bind(this),u.dispatchAsync=this.dispatchAsync.bind(this),this._actions[t]=u,u},e.prototype.getActions=function(t){return this._actions.hasOwnProperty(t)?this._actions[t]:void 0},e.prototype.getActionIds=function(t){var e=this.getActions(t);if(e)return e.getConstants()},e.prototype.removeActions=function(t){if(!this._actions.hasOwnProperty(t))throw new Error("You've attempted to remove actions with key "+t+" which does not exist.");delete this._actions[t]},e.prototype.getAllActionIds=function(){var t=[];for(var e in this._actions)if(this._actions.hasOwnProperty(e)){var n=this._actions[e].getConstants();t=t.concat(c(n))}return t},e.prototype.dispatch=function(t,e){this._dispatch({actionId:t,body:e})},e.prototype.dispatchAsync=function(t,e,n){var i=this,r={actionId:t,async:"begin"};return n&&(r.actionArgs=n),this._dispatch(r),e.then(function(e){return i._dispatch({actionId:t,body:e,async:"success"}),e},function(e){i._dispatch({actionId:t,error:e,async:"failure"})})["catch"](function(t){throw i.emit("error",t),t})},e.prototype._dispatch=function(t){this.dispatcher.dispatch(t),this.emit("dispatch",t)},e.prototype.waitFor=function(t){Array.isArray(t)||(t=[t]);var e=function(t){return t instanceof p["default"]?t._token:t},n=t.map(e);this.dispatcher.waitFor(n)},e.prototype.removeAllStoreListeners=function(t){for(var e in this._stores)if(this._stores.hasOwnProperty(e)){var n=this._stores[e];n.removeAllListeners(t)}},e.prototype.serialize=function n(){var t={};for(var e in this._stores)if(this._stores.hasOwnProperty(e)){var i=this._stores[e],n=i.constructor.serialize;if("function"==typeof n){var r=n(i.state);if("string"!=typeof r){i.constructor.name}if(t[e]=r,"function"!=typeof i.constructor.deserialize){i.constructor.name}}}return JSON.stringify(t)},e.prototype.deserialize=function i(t){var e=void 0;try{e=JSON.parse(t)}catch(n){this.constructor.name}for(var r in this._stores)if(this._stores.hasOwnProperty(r)){var s=this._stores[r],i=s.constructor.deserialize;if("function"==typeof i){var o=e[r],a=i(o);if(s.replaceState(a),"function"!=typeof s.constructor.serialize){s.constructor.name}}}},e}(y["default"]);e["default"]=g,g.prototype.getConstants=g.prototype.getActionIds,g.prototype.getAllConstants=g.prototype.getAllActionIds,g.prototype.dehydrate=g.prototype.serialize,g.prototype.hydrate=g.prototype.deserialize;var m=g;e.Flux=g,e.Flummox=m,e.Store=p["default"],e.Actions=f["default"]},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function a(t){return"function"==typeof t?t._id:t}e.__esModule=!0;var c=n(4),h=i(c),p=n(5),u=i(p),f=function(t){function e(){r(this,e);var n=s(this,t.call(this));return n.state=null,n._handlers={},n._asyncHandlers={},n._catchAllHandlers=[],n._catchAllAsyncHandlers={begin:[],success:[],failure:[]},n}return o(e,t),e.prototype.setState=function(t){if("function"==typeof t){var e=this._isHandlingDispatch?this._pendingState:this.state;t=t(e)}this._isHandlingDispatch?(this._pendingState=this._assignState(this._pendingState,t),this._emitChangeAfterHandlingDispatch=!0):(this.state=this._assignState(this.state,t),this.emit("change"))},e.prototype.replaceState=function(t){this._isHandlingDispatch?(this._pendingState=this._assignState(void 0,t),this._emitChangeAfterHandlingDispatch=!0):(this.state=this._assignState(void 0,t),this.emit("change"))},e.prototype.getStateAsObject=function(){return this.state},e.assignState=function(t,e){return u["default"]({},t,e)},e.prototype._assignState=function(){return(this.constructor.assignState||e.assignState).apply(void 0,arguments)},e.prototype.forceUpdate=function(){this._isHandlingDispatch?this._emitChangeAfterHandlingDispatch=!0:this.emit("change")},e.prototype.register=function(t,e){t=a(t),"function"==typeof e&&(this._handlers[t]=e.bind(this))},e.prototype.registerAsync=function(t,e,n,i){t=a(t);var r=this._bindAsyncHandlers({begin:e,success:n,failure:i});this._asyncHandlers[t]=r},e.prototype.registerAll=function(t){"function"==typeof t&&this._catchAllHandlers.push(t.bind(this))},e.prototype.registerAllAsync=function(t,e,n){var i=this,r=this._bindAsyncHandlers({begin:t,success:e,failure:n});Object.keys(r).forEach(function(t){i._catchAllAsyncHandlers[t].push(r[t])})},e.prototype._bindAsyncHandlers=function(t){for(var e in t)if(t.hasOwnProperty(e)){var n=t[e];"function"==typeof n?t[e]=n.bind(this):delete t[e]}return t},e.prototype.waitFor=function(t){this._waitFor(t)},e.prototype.handler=function(t){var e=t.body,n=t.actionId,i=t.async,r=t.actionArgs,s=t.error,o=this._catchAllHandlers,a=this._handlers[n],c=this._catchAllAsyncHandlers[i],h=this._asyncHandlers[n]&&this._asyncHandlers[n][i];if(i){var p=c.concat([h]);switch(i){case"begin":return void this._performHandler(p,r);case"failure":return void this._performHandler(p,[s]);case"success":return void this._performHandler(c.concat([h||a].concat(h&&[]||o)),[e]);default:return}}this._performHandler(o.concat([a]),[e])},e.prototype._performHandler=function(t,e){this._isHandlingDispatch=!0,this._pendingState=this._assignState(void 0,this.state),this._emitChangeAfterHandlingDispatch=!1;try{this._performHandlers(t,e)}finally{this._emitChangeAfterHandlingDispatch&&(this.state=this._pendingState,this.emit("change")),this._isHandlingDispatch=!1,this._pendingState=void 0,this._emitChangeAfterHandlingDispatch=!1}},e.prototype._performHandlers=function(t,e){var n=this;t.forEach(function(t){return"function"==typeof t&&t.apply(n,e)})},e}(h["default"]);e["default"]=f},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t){return t&&"function"==typeof t.then}e.__esModule=!0;var o=n(7),a=i(o),c=function(){function t(){r(this,t),this._baseId=a["default"]();for(var e=this._getActionMethodNames(),n=0;n<e.length;n++){var i=e[n];this._wrapAction(i)}this.getConstants=this.getActionIds}return t.prototype.getActionIds=function(){var t=this;return this._getActionMethodNames().reduce(function(e,n){return e[n]=t[n]._id,e},{})},t.prototype._getActionMethodNames=function(t){var e=this;return Object.getOwnPropertyNames(this.constructor.prototype).filter(function(t){return"constructor"!==t&&"function"==typeof e[t]})},t.prototype._wrapAction=function(t){var e=this,n=this[t],i=this._createActionId(t),r=function(){for(var r=arguments.length,o=Array(r),a=0;r>a;a++)o[a]=arguments[a];var c=n.apply(e,o);if(s(c)){var h=c;e._dispatchAsync(i,h,o,t)}else e._dispatch(i,c,o,t);return c};r._id=i,this[t]=r},t.prototype._createActionId=function(t){return this._baseId+"-"+t},t.prototype._dispatch=function(t,e,n,i){return"function"==typeof this.dispatch&&"undefined"!=typeof e&&this.dispatch(t,e,n),e},t.prototype._dispatchAsync=function(t,e,n,i){"function"==typeof this.dispatchAsync&&this.dispatchAsync(t,e,n)},t}();e["default"]=c},function(t,e,n){t.exports.Dispatcher=n(6)},function(t,e,n){"use strict";function i(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function r(){}r.prototype._events=void 0,r.prototype.listeners=function(t){if(!this._events||!this._events[t])return[];if(this._events[t].fn)return[this._events[t].fn];for(var e=0,n=this._events[t].length,i=new Array(n);n>e;e++)i[e]=this._events[t][e].fn;return i},r.prototype.emit=function(t,e,n,i,r,s){if(!this._events||!this._events[t])return!1;var o,a,c=this._events[t],h=arguments.length;if("function"==typeof c.fn){switch(c.once&&this.removeListener(t,c.fn,!0),h){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,e),!0;case 3:return c.fn.call(c.context,e,n),!0;case 4:return c.fn.call(c.context,e,n,i),!0;case 5:return c.fn.call(c.context,e,n,i,r),!0;case 6:return c.fn.call(c.context,e,n,i,r,s),!0}for(a=1,o=new Array(h-1);h>a;a++)o[a-1]=arguments[a];c.fn.apply(c.context,o)}else{var p,u=c.length;for(a=0;u>a;a++)switch(c[a].once&&this.removeListener(t,c[a].fn,!0),h){case 1:c[a].fn.call(c[a].context);break;case 2:c[a].fn.call(c[a].context,e);break;case 3:c[a].fn.call(c[a].context,e,n);break;default:if(!o)for(p=1,o=new Array(h-1);h>p;p++)o[p-1]=arguments[p];c[a].fn.apply(c[a].context,o)}}return!0},r.prototype.on=function(t,e,n){var r=new i(e,n||this);return this._events||(this._events={}),this._events[t]?this._events[t].fn?this._events[t]=[this._events[t],r]:this._events[t].push(r):this._events[t]=r,this},r.prototype.once=function(t,e,n){var r=new i(e,n||this,!0);return this._events||(this._events={}),this._events[t]?this._events[t].fn?this._events[t]=[this._events[t],r]:this._events[t].push(r):this._events[t]=r,this},r.prototype.removeListener=function(t,e,n){if(!this._events||!this._events[t])return this;var i=this._events[t],r=[];if(e&&(i.fn&&(i.fn!==e||n&&!i.once)&&r.push(i),!i.fn))for(var s=0,o=i.length;o>s;s++)(i[s].fn!==e||n&&!i[s].once)&&r.push(i[s]);return r.length?this._events[t]=1===r.length?r[0]:r:delete this._events[t],this},r.prototype.removeAllListeners=function(t){return this._events?(t?delete this._events[t]:this._events={},this):this},r.prototype.off=r.prototype.removeListener,r.prototype.addListener=r.prototype.on,r.prototype.setMaxListeners=function(){return this},r.EventEmitter=r,r.EventEmitter2=r,r.EventEmitter3=r,t.exports=r},function(t,e,n){/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
"use strict";function i(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function r(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;10>n;n++)e["_"+String.fromCharCode(n)]=n;var i=Object.getOwnPropertyNames(e).map(function(t){return e[t]});if("0123456789"!==i.join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"!==Object.keys(Object.assign({},r)).join("")?!1:!0}catch(s){return!1}}var s=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;t.exports=r()?Object.assign:function(t,e){for(var n,r,c=i(t),h=1;h<arguments.length;h++){n=Object(arguments[h]);for(var p in n)o.call(n,p)&&(c[p]=n[p]);if(s){r=s(n);for(var u=0;u<r.length;u++)a.call(n,r[u])&&(c[r[u]]=n[r[u]])}}return c}},function(t,e,n){"use strict";function i(){this.$Dispatcher_callbacks={},this.$Dispatcher_isPending={},this.$Dispatcher_isHandled={},this.$Dispatcher_isDispatching=!1,this.$Dispatcher_pendingPayload=null}var r=n(8),s=1,o="ID_";i.prototype.register=function(t){var e=o+s++;return this.$Dispatcher_callbacks[e]=t,e},i.prototype.unregister=function(t){r(this.$Dispatcher_callbacks[t],"Dispatcher.unregister(...): `%s` does not map to a registered callback.",t),delete this.$Dispatcher_callbacks[t]},i.prototype.waitFor=function(t){r(this.$Dispatcher_isDispatching,"Dispatcher.waitFor(...): Must be invoked while dispatching.");for(var e=0;e<t.length;e++){var n=t[e];this.$Dispatcher_isPending[n]?r(this.$Dispatcher_isHandled[n],"Dispatcher.waitFor(...): Circular dependency detected while waiting for `%s`.",n):(r(this.$Dispatcher_callbacks[n],"Dispatcher.waitFor(...): `%s` does not map to a registered callback.",n),this.$Dispatcher_invokeCallback(n))}},i.prototype.dispatch=function(t){r(!this.$Dispatcher_isDispatching,"Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch."),this.$Dispatcher_startDispatching(t);try{for(var e in this.$Dispatcher_callbacks)this.$Dispatcher_isPending[e]||this.$Dispatcher_invokeCallback(e)}finally{this.$Dispatcher_stopDispatching()}},i.prototype.isDispatching=function(){return this.$Dispatcher_isDispatching},i.prototype.$Dispatcher_invokeCallback=function(t){this.$Dispatcher_isPending[t]=!0,this.$Dispatcher_callbacks[t](this.$Dispatcher_pendingPayload),this.$Dispatcher_isHandled[t]=!0},i.prototype.$Dispatcher_startDispatching=function(t){for(var e in this.$Dispatcher_callbacks)this.$Dispatcher_isPending[e]=!1,this.$Dispatcher_isHandled[e]=!1;this.$Dispatcher_pendingPayload=t,this.$Dispatcher_isDispatching=!0},i.prototype.$Dispatcher_stopDispatching=function(){this.$Dispatcher_pendingPayload=null,this.$Dispatcher_isDispatching=!1},t.exports=i},function(t,e,n){"use strict";var i=0,r=t.exports=function(t){t=t||{};var e=t.prefix,n=t.suffix,r=++i*(t.multiplier||1);return null==e&&(e=""),null==n&&(n=""),String(e)+r+String(n)};r.reset=function(){return i=0}},function(t,e,n){"use strict";var i=function(t,e,n,i,r,s,o,a){if(!t){var c;if(void 0===e)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var h=[n,i,r,s,o,a],p=0;c=new Error("Invariant Violation: "+e.replace(/%s/g,function(){return h[p++]}))}throw c.framesToPop=1,c}};t.exports=i}]);

@@ -25,7 +25,7 @@ 'use strict';

var Actions = (function () {
var Actions = function () {
function Actions() {
_classCallCheck(this, Actions);
this._baseId = (0, _uniqueid2.default)();
this._baseId = (0, _uniqueid2['default'])();

@@ -92,2 +92,3 @@ var methodNames = this._getActionMethodNames();

Actions.prototype._createActionId = function _createActionId(methodName) {

@@ -122,9 +123,10 @@ return this._baseId + '-' + methodName;

return Actions;
})();
}();
exports.default = Actions;
exports['default'] = Actions;
function isPromise(value) {
return value && typeof value.then === 'function';
}
//# sourceMappingURL=data:application/json;base64,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Q0wsVUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxZQUFZLEVBQUU7QUFDekMsZUFBTyxDQUFDLElBQUksQ0FDViw4Q0FDRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksU0FBSSxVQUFVLGtDQUE2Qix3QkFDOUMsQ0FDdEIsQ0FBQztPQUNIO0tBQ0Y7O0FBRUQsV0FBTyxJQUFJLENBQUM7R0FDYjs7QUE3RWtCLFNBQU8sV0ErRTFCLGNBQWMsMkJBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO0FBQ2xELFFBQUksT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLFVBQVUsRUFBRTtBQUM1QyxVQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDN0MsTUFBTTtBQUNMLFVBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssWUFBWSxFQUFFO0FBQ3pDLGVBQU8sQ0FBQyxJQUFJLENBQ1YsMkRBQ0csSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFNBQUksVUFBVSxrQ0FBNkIsd0JBQzlDLENBQ3RCLENBQUM7T0FDSDtLQUNGO0dBQ0Y7O1NBM0ZrQixPQUFPOzs7a0JBQVAsT0FBTzs7QUErRjVCLFNBQVMsU0FBUyxDQUFDLEtBQUssRUFBRTtBQUN4QixTQUFPLEtBQUssSUFBSSxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0NBQ2xEIiwiZmlsZSI6IkFjdGlvbnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFjdGlvbnNcbiAqXG4gKiBJbnN0YW5jZXMgb2YgdGhlIEFjdGlvbnMgY2xhc3MgcmVwcmVzZW50IGEgc2V0IG9mIGFjdGlvbnMuIChJbiBGbHV4IHBhcmxhbmNlLFxuICogdGhlc2UgbWlnaHQgYmUgbW9yZSBhY2N1cmF0ZWx5IGRlbm90ZWQgYXMgQWN0aW9uIENyZWF0b3JzLCB3aGlsZSBBY3Rpb25cbiAqIHJlZmVycyB0byB0aGUgcGF5bG9hZCBzZW50IHRvIHRoZSBkaXNwYXRjaGVyLCBidXQgdGhpcyBpcy4uLiBjb25mdXNpbmcuIFdlXG4gKiB3aWxsIHVzZSBBY3Rpb24gdG8gbWVhbiB0aGUgZnVuY3Rpb24geW91IGNhbGwgdG8gdHJpZ2dlciBhIGRpc3BhdGNoLilcbiAqXG4gKiBDcmVhdGUgYWN0aW9ucyBieSBleHRlbmRpbmcgZnJvbSB0aGUgYmFzZSBBY3Rpb25zIGNsYXNzIGFuZCBhZGRpbmcgbWV0aG9kcy5cbiAqIEFsbCBtZXRob2RzIG9uIHRoZSBwcm90b3R5cGUgKGV4Y2VwdCB0aGUgY29uc3RydWN0b3IpIHdpbGwgYmVcbiAqIGNvbnZlcnRlZCBpbnRvIGFjdGlvbnMuIFRoZSByZXR1cm4gdmFsdWUgb2YgYW4gYWN0aW9uIGlzIHVzZWQgYXMgdGhlIGJvZHlcbiAqIG9mIHRoZSBwYXlsb2FkIHNlbnQgdG8gdGhlIGRpc3BhdGNoZXIuXG4gKi9cblxuaW1wb3J0IHVuaXF1ZUlkIGZyb20gJ3VuaXF1ZWlkJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWN0aW9ucyB7XG5cbiAgY29uc3RydWN0b3IoKSB7XG5cbiAgICB0aGlzLl9iYXNlSWQgPSB1bmlxdWVJZCgpO1xuXG4gICAgY29uc3QgbWV0aG9kTmFtZXMgPSB0aGlzLl9nZXRBY3Rpb25NZXRob2ROYW1lcygpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWV0aG9kTmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSBtZXRob2ROYW1lc1tpXTtcbiAgICAgIHRoaXMuX3dyYXBBY3Rpb24obWV0aG9kTmFtZSk7XG4gICAgfVxuXG4gICAgdGhpcy5nZXRDb25zdGFudHMgPSB0aGlzLmdldEFjdGlvbklkcztcbiAgfVxuXG4gIGdldEFjdGlvbklkcygpIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0QWN0aW9uTWV0aG9kTmFtZXMoKS5yZWR1Y2UoKHJlc3VsdCwgYWN0aW9uTmFtZSkgPT4ge1xuICAgICAgcmVzdWx0W2FjdGlvbk5hbWVdID0gdGhpc1thY3Rpb25OYW1lXS5faWQ7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sIHt9KTtcbiAgfVxuXG4gIF9nZXRBY3Rpb25NZXRob2ROYW1lcyhpbnN0YW5jZSkge1xuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzLmNvbnN0cnVjdG9yLnByb3RvdHlwZSlcbiAgICAgIC5maWx0ZXIobmFtZSA9PlxuICAgICAgICBuYW1lICE9PSAnY29uc3RydWN0b3InICYmXG4gICAgICAgIHR5cGVvZiB0aGlzW25hbWVdID09PSAnZnVuY3Rpb24nXG4gICAgICApO1xuICB9XG5cbiAgX3dyYXBBY3Rpb24obWV0aG9kTmFtZSkge1xuICAgIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gdGhpc1ttZXRob2ROYW1lXTtcbiAgICBjb25zdCBhY3Rpb25JZCA9IHRoaXMuX2NyZWF0ZUFjdGlvbklkKG1ldGhvZE5hbWUpO1xuXG4gICAgY29uc3QgYWN0aW9uID0gKC4uLmFyZ3MpID0+IHtcbiAgICAgIGNvbnN0IGJvZHkgPSBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBhcmdzKTtcblxuICAgICAgaWYgKGlzUHJvbWlzZShib2R5KSkge1xuICAgICAgICBjb25zdCBwcm9taXNlID0gYm9keTtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hBc3luYyhhY3Rpb25JZCwgcHJvbWlzZSwgYXJncywgbWV0aG9kTmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9kaXNwYXRjaChhY3Rpb25JZCwgYm9keSwgYXJncywgbWV0aG9kTmFtZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFJldHVybiBvcmlnaW5hbCBtZXRob2QncyByZXR1cm4gdmFsdWUgdG8gY2FsbGVyXG4gICAgICByZXR1cm4gYm9keTtcbiAgICB9O1xuXG4gICAgYWN0aW9uLl9pZCA9IGFjdGlvbklkO1xuXG4gICAgdGhpc1ttZXRob2ROYW1lXSA9IGFjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdW5pcXVlIHN0cmluZyBjb25zdGFudCBmb3IgYW4gYWN0aW9uIG1ldGhvZCwgdXNpbmdcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZE5hbWUgLSBOYW1lIG9mIHRoZSBhY3Rpb24gbWV0aG9kXG4gICAqL1xuICBfY3JlYXRlQWN0aW9uSWQobWV0aG9kTmFtZSkge1xuICAgIHJldHVybiBgJHt0aGlzLl9iYXNlSWR9LSR7bWV0aG9kTmFtZX1gO1xuICB9XG5cbiAgX2Rpc3BhdGNoKGFjdGlvbklkLCBib2R5LCBhcmdzLCBtZXRob2ROYW1lKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmRpc3BhdGNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAodHlwZW9mIGJvZHkgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2goYWN0aW9uSWQsIGJvZHksIGFyZ3MpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFlvdSd2ZSBhdHRlbXB0ZWQgdG8gcGVyZm9ybSB0aGUgYWN0aW9uIGBcbiAgICAgICAgKyBgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9IyR7bWV0aG9kTmFtZX0sIGJ1dCBpdCBoYXNuJ3QgYmVlbiBhZGRlZCBgXG4gICAgICAgICsgYHRvIGEgRmx1eCBpbnN0YW5jZS5gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGJvZHk7XG4gIH1cblxuICBfZGlzcGF0Y2hBc3luYyhhY3Rpb25JZCwgcHJvbWlzZSwgYXJncywgbWV0aG9kTmFtZSkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5kaXNwYXRjaEFzeW5jID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLmRpc3BhdGNoQXN5bmMoYWN0aW9uSWQsIHByb21pc2UsIGFyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFlvdSd2ZSBhdHRlbXB0ZWQgdG8gcGVyZm9ybSB0aGUgYXN5bmNocm9ub3VzIGFjdGlvbiBgXG4gICAgICAgICsgYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSMke21ldGhvZE5hbWV9LCBidXQgaXQgaGFzbid0IGJlZW4gYWRkZWQgYFxuICAgICAgICArIGB0byBhIEZsdXggaW5zdGFuY2UuYFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbmZ1bmN0aW9uIGlzUHJvbWlzZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlLnRoZW4gPT09ICdmdW5jdGlvbic7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9BY3Rpb25zLmpzIl0sIm5hbWVzIjpbIkFjdGlvbnMiLCJfYmFzZUlkIiwibWV0aG9kTmFtZXMiLCJfZ2V0QWN0aW9uTWV0aG9kTmFtZXMiLCJpIiwibGVuZ3RoIiwibWV0aG9kTmFtZSIsIl93cmFwQWN0aW9uIiwiZ2V0Q29uc3RhbnRzIiwiZ2V0QWN0aW9uSWRzIiwicmVkdWNlIiwicmVzdWx0IiwiYWN0aW9uTmFtZSIsIl9pZCIsImluc3RhbmNlIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiZmlsdGVyIiwibmFtZSIsIm9yaWdpbmFsTWV0aG9kIiwiYWN0aW9uSWQiLCJfY3JlYXRlQWN0aW9uSWQiLCJhY3Rpb24iLCJhcmdzIiwiYm9keSIsImFwcGx5IiwiaXNQcm9taXNlIiwicHJvbWlzZSIsIl9kaXNwYXRjaEFzeW5jIiwiX2Rpc3BhdGNoIiwiZGlzcGF0Y2giLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjb25zb2xlIiwid2FybiIsImRpc3BhdGNoQXN5bmMiLCJ2YWx1ZSIsInRoZW4iXSwibWFwcGluZ3MiOiI7Ozs7QUFjQTs7Ozs7OzBKQWRBOzs7Ozs7Ozs7Ozs7OztJQWdCcUJBLE87QUFFbkIscUJBQWM7QUFBQTs7QUFFWixTQUFLQyxPQUFMLEdBQWUsNEJBQWY7O0FBRUEsUUFBTUMsY0FBYyxLQUFLQyxxQkFBTCxFQUFwQjtBQUNBLFNBQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJRixZQUFZRyxNQUFoQyxFQUF3Q0QsR0FBeEMsRUFBNkM7QUFDM0MsVUFBTUUsYUFBYUosWUFBWUUsQ0FBWixDQUFuQjtBQUNBLFdBQUtHLFdBQUwsQ0FBaUJELFVBQWpCO0FBQ0Q7O0FBRUQsU0FBS0UsWUFBTCxHQUFvQixLQUFLQyxZQUF6QjtBQUNEOztvQkFFREEsWSwyQkFBZTtBQUFBOztBQUNiLFdBQU8sS0FBS04scUJBQUwsR0FBNkJPLE1BQTdCLENBQW9DLFVBQUNDLE1BQUQsRUFBU0MsVUFBVCxFQUF3QjtBQUNqRUQsYUFBT0MsVUFBUCxJQUFxQixNQUFLQSxVQUFMLEVBQWlCQyxHQUF0QztBQUNBLGFBQU9GLE1BQVA7QUFDRCxLQUhNLEVBR0osRUFISSxDQUFQO0FBSUQsRzs7b0JBRURSLHFCLGtDQUFzQlcsUSxFQUFVO0FBQUE7O0FBQzlCLFdBQU9DLE9BQU9DLG1CQUFQLENBQTJCLEtBQUtDLFdBQUwsQ0FBaUJDLFNBQTVDLEVBQ0pDLE1BREksQ0FDRztBQUFBLGFBQ05DLFNBQVMsYUFBVCxJQUNBLE9BQU8sT0FBS0EsSUFBTCxDQUFQLEtBQXNCLFVBRmhCO0FBQUEsS0FESCxDQUFQO0FBS0QsRzs7b0JBRURiLFcsd0JBQVlELFUsRUFBWTtBQUFBOztBQUN0QixRQUFNZSxpQkFBaUIsS0FBS2YsVUFBTCxDQUF2QjtBQUNBLFFBQU1nQixXQUFXLEtBQUtDLGVBQUwsQ0FBcUJqQixVQUFyQixDQUFqQjs7QUFFQSxRQUFNa0IsU0FBUyxTQUFUQSxNQUFTLEdBQWE7QUFBQSx3Q0FBVEMsSUFBUztBQUFUQSxZQUFTO0FBQUE7O0FBQzFCLFVBQU1DLE9BQU9MLGVBQWVNLEtBQWYsU0FBMkJGLElBQTNCLENBQWI7O0FBRUEsVUFBSUcsVUFBVUYsSUFBVixDQUFKLEVBQXFCO0FBQ25CLFlBQU1HLFVBQVVILElBQWhCO0FBQ0EsZUFBS0ksY0FBTCxDQUFvQlIsUUFBcEIsRUFBOEJPLE9BQTlCLEVBQXVDSixJQUF2QyxFQUE2Q25CLFVBQTdDO0FBQ0QsT0FIRCxNQUdPO0FBQ0wsZUFBS3lCLFNBQUwsQ0FBZVQsUUFBZixFQUF5QkksSUFBekIsRUFBK0JELElBQS9CLEVBQXFDbkIsVUFBckM7QUFDRDs7QUFFRDtBQUNBLGFBQU9vQixJQUFQO0FBQ0QsS0FaRDs7QUFjQUYsV0FBT1gsR0FBUCxHQUFhUyxRQUFiOztBQUVBLFNBQUtoQixVQUFMLElBQW1Ca0IsTUFBbkI7QUFDRCxHOztBQUVEOzs7Ozs7b0JBSUFELGUsNEJBQWdCakIsVSxFQUFZO0FBQzFCLFdBQVUsS0FBS0wsT0FBZixTQUEwQkssVUFBMUI7QUFDRCxHOztvQkFFRHlCLFMsc0JBQVVULFEsRUFBVUksSSxFQUFNRCxJLEVBQU1uQixVLEVBQVk7QUFDMUMsUUFBSSxPQUFPLEtBQUswQixRQUFaLEtBQXlCLFVBQTdCLEVBQXlDO0FBQ3ZDLFVBQUksT0FBT04sSUFBUCxLQUFnQixXQUFwQixFQUFpQztBQUMvQixhQUFLTSxRQUFMLENBQWNWLFFBQWQsRUFBd0JJLElBQXhCLEVBQThCRCxJQUE5QjtBQUNEO0FBQ0YsS0FKRCxNQUlPO0FBQ0wsVUFBSVEsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQTdCLEVBQTJDO0FBQ3pDQyxnQkFBUUMsSUFBUixDQUNFLDhDQUNHLEtBQUtwQixXQUFMLENBQWlCRyxJQURwQixTQUM0QmQsVUFENUIsMERBREY7QUFLRDtBQUNGOztBQUVELFdBQU9vQixJQUFQO0FBQ0QsRzs7b0JBRURJLGMsMkJBQWVSLFEsRUFBVU8sTyxFQUFTSixJLEVBQU1uQixVLEVBQVk7QUFDbEQsUUFBSSxPQUFPLEtBQUtnQyxhQUFaLEtBQThCLFVBQWxDLEVBQThDO0FBQzVDLFdBQUtBLGFBQUwsQ0FBbUJoQixRQUFuQixFQUE2Qk8sT0FBN0IsRUFBc0NKLElBQXRDO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsVUFBSVEsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQTdCLEVBQTJDO0FBQ3pDQyxnQkFBUUMsSUFBUixDQUNFLDJEQUNHLEtBQUtwQixXQUFMLENBQWlCRyxJQURwQixTQUM0QmQsVUFENUIsMERBREY7QUFLRDtBQUNGO0FBQ0YsRzs7Ozs7cUJBM0ZrQk4sTzs7O0FBK0ZyQixTQUFTNEIsU0FBVCxDQUFtQlcsS0FBbkIsRUFBMEI7QUFDeEIsU0FBT0EsU0FBUyxPQUFPQSxNQUFNQyxJQUFiLEtBQXNCLFVBQXRDO0FBQ0QiLCJmaWxlIjoiQWN0aW9ucy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWN0aW9uc1xuICpcbiAqIEluc3RhbmNlcyBvZiB0aGUgQWN0aW9ucyBjbGFzcyByZXByZXNlbnQgYSBzZXQgb2YgYWN0aW9ucy4gKEluIEZsdXggcGFybGFuY2UsXG4gKiB0aGVzZSBtaWdodCBiZSBtb3JlIGFjY3VyYXRlbHkgZGVub3RlZCBhcyBBY3Rpb24gQ3JlYXRvcnMsIHdoaWxlIEFjdGlvblxuICogcmVmZXJzIHRvIHRoZSBwYXlsb2FkIHNlbnQgdG8gdGhlIGRpc3BhdGNoZXIsIGJ1dCB0aGlzIGlzLi4uIGNvbmZ1c2luZy4gV2VcbiAqIHdpbGwgdXNlIEFjdGlvbiB0byBtZWFuIHRoZSBmdW5jdGlvbiB5b3UgY2FsbCB0byB0cmlnZ2VyIGEgZGlzcGF0Y2guKVxuICpcbiAqIENyZWF0ZSBhY3Rpb25zIGJ5IGV4dGVuZGluZyBmcm9tIHRoZSBiYXNlIEFjdGlvbnMgY2xhc3MgYW5kIGFkZGluZyBtZXRob2RzLlxuICogQWxsIG1ldGhvZHMgb24gdGhlIHByb3RvdHlwZSAoZXhjZXB0IHRoZSBjb25zdHJ1Y3Rvcikgd2lsbCBiZVxuICogY29udmVydGVkIGludG8gYWN0aW9ucy4gVGhlIHJldHVybiB2YWx1ZSBvZiBhbiBhY3Rpb24gaXMgdXNlZCBhcyB0aGUgYm9keVxuICogb2YgdGhlIHBheWxvYWQgc2VudCB0byB0aGUgZGlzcGF0Y2hlci5cbiAqL1xuXG5pbXBvcnQgdW5pcXVlSWQgZnJvbSAndW5pcXVlaWQnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBY3Rpb25zIHtcblxuICBjb25zdHJ1Y3RvcigpIHtcblxuICAgIHRoaXMuX2Jhc2VJZCA9IHVuaXF1ZUlkKCk7XG5cbiAgICBjb25zdCBtZXRob2ROYW1lcyA9IHRoaXMuX2dldEFjdGlvbk1ldGhvZE5hbWVzKCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZXRob2ROYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgbWV0aG9kTmFtZSA9IG1ldGhvZE5hbWVzW2ldO1xuICAgICAgdGhpcy5fd3JhcEFjdGlvbihtZXRob2ROYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLmdldENvbnN0YW50cyA9IHRoaXMuZ2V0QWN0aW9uSWRzO1xuICB9XG5cbiAgZ2V0QWN0aW9uSWRzKCkge1xuICAgIHJldHVybiB0aGlzLl9nZXRBY3Rpb25NZXRob2ROYW1lcygpLnJlZHVjZSgocmVzdWx0LCBhY3Rpb25OYW1lKSA9PiB7XG4gICAgICByZXN1bHRbYWN0aW9uTmFtZV0gPSB0aGlzW2FjdGlvbk5hbWVdLl9pZDtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSwge30pO1xuICB9XG5cbiAgX2dldEFjdGlvbk1ldGhvZE5hbWVzKGluc3RhbmNlKSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMuY29uc3RydWN0b3IucHJvdG90eXBlKVxuICAgICAgLmZpbHRlcihuYW1lID0+XG4gICAgICAgIG5hbWUgIT09ICdjb25zdHJ1Y3RvcicgJiZcbiAgICAgICAgdHlwZW9mIHRoaXNbbmFtZV0gPT09ICdmdW5jdGlvbidcbiAgICAgICk7XG4gIH1cblxuICBfd3JhcEFjdGlvbihtZXRob2ROYW1lKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSB0aGlzW21ldGhvZE5hbWVdO1xuICAgIGNvbnN0IGFjdGlvbklkID0gdGhpcy5fY3JlYXRlQWN0aW9uSWQobWV0aG9kTmFtZSk7XG5cbiAgICBjb25zdCBhY3Rpb24gPSAoLi4uYXJncykgPT4ge1xuICAgICAgY29uc3QgYm9keSA9IG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRoaXMsIGFyZ3MpO1xuXG4gICAgICBpZiAoaXNQcm9taXNlKGJvZHkpKSB7XG4gICAgICAgIGNvbnN0IHByb21pc2UgPSBib2R5O1xuICAgICAgICB0aGlzLl9kaXNwYXRjaEFzeW5jKGFjdGlvbklkLCBwcm9taXNlLCBhcmdzLCBtZXRob2ROYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2Rpc3BhdGNoKGFjdGlvbklkLCBib2R5LCBhcmdzLCBtZXRob2ROYW1lKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmV0dXJuIG9yaWdpbmFsIG1ldGhvZCdzIHJldHVybiB2YWx1ZSB0byBjYWxsZXJcbiAgICAgIHJldHVybiBib2R5O1xuICAgIH07XG5cbiAgICBhY3Rpb24uX2lkID0gYWN0aW9uSWQ7XG5cbiAgICB0aGlzW21ldGhvZE5hbWVdID0gYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB1bmlxdWUgc3RyaW5nIGNvbnN0YW50IGZvciBhbiBhY3Rpb24gbWV0aG9kLCB1c2luZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kTmFtZSAtIE5hbWUgb2YgdGhlIGFjdGlvbiBtZXRob2RcbiAgICovXG4gIF9jcmVhdGVBY3Rpb25JZChtZXRob2ROYW1lKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuX2Jhc2VJZH0tJHttZXRob2ROYW1lfWA7XG4gIH1cblxuICBfZGlzcGF0Y2goYWN0aW9uSWQsIGJvZHksIGFyZ3MsIG1ldGhvZE5hbWUpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuZGlzcGF0Y2ggPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmICh0eXBlb2YgYm9keSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaChhY3Rpb25JZCwgYm9keSwgYXJncyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgWW91J3ZlIGF0dGVtcHRlZCB0byBwZXJmb3JtIHRoZSBhY3Rpb24gYFxuICAgICAgICArIGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0jJHttZXRob2ROYW1lfSwgYnV0IGl0IGhhc24ndCBiZWVuIGFkZGVkIGBcbiAgICAgICAgKyBgdG8gYSBGbHV4IGluc3RhbmNlLmBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYm9keTtcbiAgfVxuXG4gIF9kaXNwYXRjaEFzeW5jKGFjdGlvbklkLCBwcm9taXNlLCBhcmdzLCBtZXRob2ROYW1lKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmRpc3BhdGNoQXN5bmMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuZGlzcGF0Y2hBc3luYyhhY3Rpb25JZCwgcHJvbWlzZSwgYXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgWW91J3ZlIGF0dGVtcHRlZCB0byBwZXJmb3JtIHRoZSBhc3luY2hyb25vdXMgYWN0aW9uIGBcbiAgICAgICAgKyBgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9IyR7bWV0aG9kTmFtZX0sIGJ1dCBpdCBoYXNuJ3QgYmVlbiBhZGRlZCBgXG4gICAgICAgICsgYHRvIGEgRmx1eCBpbnN0YW5jZS5gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuZnVuY3Rpb24gaXNQcm9taXNlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJztcbn1cbiJdfQ==
'use strict';
exports.__esModule = true;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
exports.__esModule = true;
var _react = require('react');

@@ -27,4 +27,4 @@

exports.default = function (BaseComponent, stores, stateGetter) {
var ConnectedComponent = (function (_React$Component) {
exports['default'] = function (BaseComponent, stores, stateGetter) {
var ConnectedComponent = function (_React$Component) {
_inherits(ConnectedComponent, _React$Component);

@@ -44,14 +44,14 @@

ConnectedComponent.prototype.render = function render() {
return _react2.default.createElement(BaseComponent, _extends({}, this.state, this.props));
return _react2['default'].createElement(BaseComponent, _extends({}, this.state, this.props));
};
return ConnectedComponent;
})(_react2.default.Component);
}(_react2['default'].Component);
(0, _objectAssign2.default)(ConnectedComponent.prototype, _reactComponentMethods.instanceMethods);
(0, _objectAssign2['default'])(ConnectedComponent.prototype, _reactComponentMethods.instanceMethods);
(0, _objectAssign2.default)(ConnectedComponent, _reactComponentMethods.staticProperties);
(0, _objectAssign2['default'])(ConnectedComponent, _reactComponentMethods.staticProperties);
return ConnectedComponent;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRvbnMvY29ubmVjdFRvU3RvcmVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tCQVFlLFVBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUs7QUFDckQsTUFBTSxrQkFBa0I7Y0FBbEIsa0JBQWtCOztBQUN0QixhQURJLGtCQUFrQixDQUNWLEtBQUssRUFBRSxPQUFPLEVBQUU7NEJBRHhCLGtCQUFrQjs7bURBRXBCLDRCQUFNLEtBQUssRUFBRSxPQUFPLENBQUM7O0FBRXJCLFlBQUssVUFBVSxFQUFFLENBQUM7O0FBRWxCLFlBQUssS0FBSyxHQUFHLE1BQUssZUFBZSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQzs7S0FDeEQ7O0FBUEcsc0JBQWtCLFdBU3RCLE1BQU0scUJBQUc7QUFDUCxhQUFPLDhCQUFDLGFBQWEsZUFBSyxJQUFJLENBQUMsS0FBSyxFQUFNLElBQUksQ0FBQyxLQUFLLEVBQUksQ0FBQztLQUMxRDs7V0FYRyxrQkFBa0I7S0FBaUIsZ0JBQU0sU0FBUyxDQVl2RCxDQUFDOztBQUVGLDhCQUNFLGtCQUFrQixDQUFDLFNBQVMseUJBbkJ2QixlQUFlLENBcUJyQixDQUFDOztBQUVGLDhCQUFPLGtCQUFrQix5QkF2QkQsZ0JBQWdCLENBdUJJLENBQUM7O0FBRTdDLFNBQU8sa0JBQWtCLENBQUM7Q0FDM0IiLCJmaWxlIjoiY29ubmVjdFRvU3RvcmVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBIaWdoZXItb3JkZXIgY29tcG9uZW50IGZvcm0gb2YgY29ubmVjdFRvU3RvcmVzXG4gKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGluc3RhbmNlTWV0aG9kcywgc3RhdGljUHJvcGVydGllcyB9IGZyb20gJy4vcmVhY3RDb21wb25lbnRNZXRob2RzJztcbmltcG9ydCBhc3NpZ24gZnJvbSAnb2JqZWN0LWFzc2lnbic7XG5cbmV4cG9ydCBkZWZhdWx0IChCYXNlQ29tcG9uZW50LCBzdG9yZXMsIHN0YXRlR2V0dGVyKSA9PiB7XG4gIGNvbnN0IENvbm5lY3RlZENvbXBvbmVudCA9IGNsYXNzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcywgY29udGV4dCkge1xuICAgICAgc3VwZXIocHJvcHMsIGNvbnRleHQpO1xuXG4gICAgICB0aGlzLmluaXRpYWxpemUoKTtcblxuICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMuY29ubmVjdFRvU3RvcmVzKHN0b3Jlcywgc3RhdGVHZXR0ZXIpO1xuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiA8QmFzZUNvbXBvbmVudCB7Li4udGhpcy5zdGF0ZX0gey4uLnRoaXMucHJvcHN9IC8+O1xuICAgIH1cbiAgfTtcblxuICBhc3NpZ24oXG4gICAgQ29ubmVjdGVkQ29tcG9uZW50LnByb3RvdHlwZSxcbiAgICBpbnN0YW5jZU1ldGhvZHNcbiAgKTtcblxuICBhc3NpZ24oQ29ubmVjdGVkQ29tcG9uZW50LCBzdGF0aWNQcm9wZXJ0aWVzKTtcblxuICByZXR1cm4gQ29ubmVjdGVkQ29tcG9uZW50O1xufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRvbnMvY29ubmVjdFRvU3RvcmVzLmpzIl0sIm5hbWVzIjpbIkJhc2VDb21wb25lbnQiLCJzdG9yZXMiLCJzdGF0ZUdldHRlciIsIkNvbm5lY3RlZENvbXBvbmVudCIsInByb3BzIiwiY29udGV4dCIsImluaXRpYWxpemUiLCJzdGF0ZSIsImNvbm5lY3RUb1N0b3JlcyIsInJlbmRlciIsIkNvbXBvbmVudCIsInByb3RvdHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBSUE7Ozs7QUFDQTs7QUFDQTs7Ozs7Ozs7OzsrZUFOQTs7OztxQkFRZSxVQUFDQSxhQUFELEVBQWdCQyxNQUFoQixFQUF3QkMsV0FBeEIsRUFBd0M7QUFDckQsTUFBTUM7QUFBQTs7QUFDSixnQ0FBWUMsS0FBWixFQUFtQkMsT0FBbkIsRUFBNEI7QUFBQTs7QUFBQSxtREFDMUIsNEJBQU1ELEtBQU4sRUFBYUMsT0FBYixDQUQwQjs7QUFHMUIsWUFBS0MsVUFBTDs7QUFFQSxZQUFLQyxLQUFMLEdBQWEsTUFBS0MsZUFBTCxDQUFxQlAsTUFBckIsRUFBNkJDLFdBQTdCLENBQWI7QUFMMEI7QUFNM0I7O0FBUEcsaUNBU0pPLE1BVEkscUJBU0s7QUFDUCxhQUFPLGlDQUFDLGFBQUQsZUFBbUIsS0FBS0YsS0FBeEIsRUFBbUMsS0FBS0gsS0FBeEMsRUFBUDtBQUNELEtBWEc7O0FBQUE7QUFBQSxJQUFtQyxtQkFBTU0sU0FBekMsQ0FBTjs7QUFjQSxpQ0FDRVAsbUJBQW1CUSxTQURyQjs7QUFLQSxpQ0FBT1Isa0JBQVA7O0FBRUEsU0FBT0Esa0JBQVA7QUFDRCxDIiwiZmlsZSI6ImNvbm5lY3RUb1N0b3Jlcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSGlnaGVyLW9yZGVyIGNvbXBvbmVudCBmb3JtIG9mIGNvbm5lY3RUb1N0b3Jlc1xuICovXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBpbnN0YW5jZU1ldGhvZHMsIHN0YXRpY1Byb3BlcnRpZXMgfSBmcm9tICcuL3JlYWN0Q29tcG9uZW50TWV0aG9kcyc7XG5pbXBvcnQgYXNzaWduIGZyb20gJ29iamVjdC1hc3NpZ24nO1xuXG5leHBvcnQgZGVmYXVsdCAoQmFzZUNvbXBvbmVudCwgc3RvcmVzLCBzdGF0ZUdldHRlcikgPT4ge1xuICBjb25zdCBDb25uZWN0ZWRDb21wb25lbnQgPSBjbGFzcyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3IocHJvcHMsIGNvbnRleHQpIHtcbiAgICAgIHN1cGVyKHByb3BzLCBjb250ZXh0KTtcblxuICAgICAgdGhpcy5pbml0aWFsaXplKCk7XG5cbiAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLmNvbm5lY3RUb1N0b3JlcyhzdG9yZXMsIHN0YXRlR2V0dGVyKTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gPEJhc2VDb21wb25lbnQgey4uLnRoaXMuc3RhdGV9IHsuLi50aGlzLnByb3BzfSAvPjtcbiAgICB9XG4gIH07XG5cbiAgYXNzaWduKFxuICAgIENvbm5lY3RlZENvbXBvbmVudC5wcm90b3R5cGUsXG4gICAgaW5zdGFuY2VNZXRob2RzXG4gICk7XG5cbiAgYXNzaWduKENvbm5lY3RlZENvbXBvbmVudCwgc3RhdGljUHJvcGVydGllcyk7XG5cbiAgcmV0dXJuIENvbm5lY3RlZENvbXBvbmVudDtcbn07XG4iXX0=

@@ -70,3 +70,3 @@ 'use strict';

var FluxComponent = (function (_React$Component) {
var FluxComponent = function (_React$Component) {
_inherits(FluxComponent, _React$Component);

@@ -88,16 +88,15 @@

FluxComponent.prototype.wrapChild = function wrapChild(child) {
return _react2.default.cloneElement(child, this.getChildProps());
return _react2['default'].cloneElement(child, this.getChildProps());
};
FluxComponent.prototype.getChildProps = function getChildProps() {
var _props = this.props;
var children = _props.children;
var render = _props.render;
var connectToStores = _props.connectToStores;
var stateGetter = _props.stateGetter;
var flux = _props.flux;
var _props = this.props,
children = _props.children,
render = _props.render,
connectToStores = _props.connectToStores,
stateGetter = _props.stateGetter,
flux = _props.flux,
extraProps = _objectWithoutProperties(_props, ['children', 'render', 'connectToStores', 'stateGetter', 'flux']);
var extraProps = _objectWithoutProperties(_props, ['children', 'render', 'connectToStores', 'stateGetter', 'flux']);
return (0, _objectAssign2.default)({ flux: this.getFlux() }, // TODO: remove in next major version
return (0, _objectAssign2['default'])({ flux: this.getFlux() }, // TODO: remove in next major version
this.state, extraProps);

@@ -107,6 +106,7 @@ };

FluxComponent.prototype.render = function render() {
var _props2 = this.props;
var children = _props2.children;
var internalRender = _props2.render;
var _props2 = this.props,
children = _props2.children,
internalRender = _props2.render;
if (typeof internalRender === 'function') {

@@ -122,6 +122,6 @@ return internalRender(this.getChildProps(), this.getFlux());

} else {
return _react2.default.createElement(
return _react2['default'].createElement(
'span',
null,
_react2.default.Children.map(children, this.wrapChild)
_react2['default'].Children.map(children, this.wrapChild)
);

@@ -132,9 +132,9 @@ }

return FluxComponent;
})(_react2.default.Component);
}(_react2['default'].Component);
(0, _objectAssign2.default)(FluxComponent.prototype, _reactComponentMethods.instanceMethods);
(0, _objectAssign2['default'])(FluxComponent.prototype, _reactComponentMethods.instanceMethods);
(0, _objectAssign2.default)(FluxComponent, _reactComponentMethods.staticProperties);
(0, _objectAssign2['default'])(FluxComponent, _reactComponentMethods.staticProperties);
exports.default = FluxComponent;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRvbnMvRmx1eENvbXBvbmVudC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFtRE0sYUFBYTtZQUFiLGFBQWE7O0FBQ2pCLFdBREksYUFBYSxDQUNMLEtBQUssRUFBRSxPQUFPLEVBQUU7MEJBRHhCLGFBQWE7O2lEQUVmLDRCQUFNLEtBQUssRUFBRSxPQUFPLENBQUM7O0FBRXJCLFVBQUssVUFBVSxFQUFFLENBQUM7O0FBRWxCLFVBQUssS0FBSyxHQUFHLE1BQUssZUFBZSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDOztBQUU1RSxVQUFLLFNBQVMsR0FBRyxNQUFLLFNBQVMsQ0FBQyxJQUFJLE9BQU0sQ0FBQzs7R0FDNUM7O0FBVEcsZUFBYSxXQVdqQixTQUFTLHNCQUFDLEtBQUssRUFBRTtBQUNmLFdBQU8sZ0JBQU0sWUFBWSxDQUN2QixLQUFLLEVBQ0wsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUNyQixDQUFDO0dBQ0g7O0FBaEJHLGVBQWEsV0FrQmpCLGFBQWEsNEJBQUc7aUJBT00sSUFBSSxDQUFDLEtBQUs7UUFMNUIsUUFBUSxVQUFSLFFBQVE7UUFDUixNQUFNLFVBQU4sTUFBTTtRQUNOLGVBQWUsVUFBZixlQUFlO1FBQ2YsV0FBVyxVQUFYLFdBQVc7UUFDWCxJQUFJLFVBQUosSUFBSTs7UUFDRCxVQUFVOztBQUVmLFdBQU8sNEJBQ0wsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO0FBQ3hCLFFBQUksQ0FBQyxLQUFLLEVBQ1YsVUFBVSxDQUNYLENBQUM7R0FDSDs7QUFoQ0csZUFBYSxXQWtDakIsTUFBTSxxQkFBRztrQkFDb0MsSUFBSSxDQUFDLEtBQUs7UUFBL0MsUUFBUSxXQUFSLFFBQVE7UUFBVSxjQUFjLFdBQXRCLE1BQU07O0FBRXRCLFFBQUksT0FBTyxjQUFjLEtBQUssVUFBVSxFQUFFO0FBQ3hDLGFBQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztLQUM3RDs7QUFFRCxRQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sSUFBSSxDQUFDOztBQUUzQixRQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtBQUM1QixVQUFNLEtBQUssR0FBRyxRQUFRLENBQUM7QUFDdkIsYUFBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzlCLE1BQU07QUFDTCxhQUFPOzs7UUFBTyxnQkFBTSxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO09BQVEsQ0FBQztLQUNwRTtHQUNGOztTQWpERyxhQUFhO0dBQVMsZ0JBQU0sU0FBUzs7QUFvRDNDLDRCQUNFLGFBQWEsQ0FBQyxTQUFTLHlCQXhEaEIsZUFBZSxDQTBEdkIsQ0FBQzs7QUFFRiw0QkFBTyxhQUFhLHlCQTVETSxnQkFBZ0IsQ0E0REgsQ0FBQzs7a0JBRXpCLGFBQWEiLCJmaWxlIjoiRmx1eENvbXBvbmVudC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRmx1eCBDb21wb25lbnRcbiAqXG4gKiBDb21wb25lbnQgaW50ZXJmYWNlIHRvIHJlYWN0Q29tcG9uZW50TWV0aG9kcyBtb2R1bGUuXG4gKlxuICogQ2hpbGRyZW4gb2YgRmx1eENvbXBvbmVudCBhcmUgZ2l2ZW4gYWNjZXNzIHRvIHRoZSBmbHV4IGluc3RhbmNlIHZpYVxuICogYGNvbnRleHQuZmx1eGAuIFVzZSB0aGlzIG5lYXIgdGhlIHRvcCBvZiB5b3VyIGFwcCBoaWVyYXJjaHkgYW5kIGFsbCBjaGlsZHJlblxuICogd2lsbCBoYXZlIGVhc3kgYWNjZXNzIHRvIHRoZSBmbHV4IGluc3RhbmNlIChpbmNsdWRpbmcsIG9mIGNvdXJzZSwgb3RoZXJcbiAqIEZsdXggY29tcG9uZW50cyEpOlxuICpcbiAqIDxGbHV4Q29tcG9uZW50IGZsdXg9e2ZsdXh9PlxuICogICAgLi4udGhlIHJlc3Qgb2YgeW91ciBhcHBcbiAqIDwvRmx1eENvbXBvbmVudD5cbiAqXG4gKiBOb3cgYW55IGNoaWxkIGNhbiBhY2Nlc3MgdGhlIGZsdXggaW5zdGFuY2UgYWdhaW4gbGlrZSB0aGlzOlxuICpcbiAqIDxGbHV4Q29tcG9uZW50PlxuICogICAgLi4uY2hpbGRyZW5cbiAqIDwvRmx1eENvbXBvbmVudD5cbiAqXG4gKiBXZSBkb24ndCBuZWVkIHRoZSBmbHV4IHByb3AgdGhpcyB0aW1lIGJlY2F1c2UgZmx1eCBpcyBhbHJlYWR5IHBhcnQgb2ZcbiAqIHRoZSBjb250ZXh0LlxuICpcbiAqIEFkZGl0aW9uYWxseSwgaW1tZWRpYXRlIGNoaWxkcmVuIGFyZSBnaXZlbiBhIGBmbHV4YCBwcm9wLlxuICpcbiAqIFRoZSBjb21wb25lbnQgaGFzIGFuIG9wdGlvbmFsIHByb3AgYGNvbm5lY3RUb1N0b3Jlc2AsIHdoaWNoIGlzIHBhc3NlZCB0b1xuICogYHRoaXMuY29ubmVjdFRvU3RvcmVzYCBhbmQgdXNlZCB0byBzZXQgdGhlIGluaXRpYWwgc3RhdGUuIFRoZSBjb21wb25lbnQnc1xuICogc3RhdGUgaXMgaW5qZWN0ZWQgYXMgcHJvcHMgdG8gdGhlIGNoaWxkIGNvbXBvbmVudHMuXG4gKlxuICogVGhlIHByYWN0aWNhbCB1cHNob3Qgb2YgYWxsIHRoaXMgaXMgdGhhdCBmbHV4TWl4aW4sIHN0YXRlIGNoYW5nZXMsIGFuZFxuICogY29udGV4dCBhcmUgbm93IHNpbXBseSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLiBBbW9uZyBvdGhlciB0aGluZ3MsIHRoaXMgbWVhbnNcbiAqIHlvdSBjYW4gd3JpdGUgeW91ciBjb21wb25lbnRzIGFzIHBsYWluIEVTNiBjbGFzc2VzLiBIZXJlJ3MgYW4gZXhhbXBsZTpcbiAqXG4gKiBjbGFzcyBQYXJlbnRDb21wb25lbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICpcbiAqICAgcmVuZGVyKCkge1xuICogICAgIDxGbHV4Q29tcG9uZW50IGNvbm5lY3RUb1N0b3Jlcz1cImZvb1N0b3JlXCI+XG4gKiAgICAgICA8Q2hpbGRDb21wb25lbnQgLz5cbiAqICAgICA8L0ZsdXhDb21wb25lbnQ+XG4gKiAgIH1cbiAqXG4gKiB9XG4gKlxuICogQ2hpbGRDb21wb25lbnQgaW4gdGhpcyBleGFtcGxlIGhhcyBwcm9wIGBmbHV4YCBjb250YWluaW5nIHRoZSBmbHV4IGluc3RhbmNlLFxuICogYW5kIHByb3BzIHRoYXQgc3luYyB3aXRoIGVhY2ggb2YgdGhlIHN0YXRlIGtleXMgb2YgZm9vU3RvcmUuXG4gKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGluc3RhbmNlTWV0aG9kcywgc3RhdGljUHJvcGVydGllcyB9IGZyb20gJy4vcmVhY3RDb21wb25lbnRNZXRob2RzJztcbmltcG9ydCBhc3NpZ24gZnJvbSAnb2JqZWN0LWFzc2lnbic7XG5cbmNsYXNzIEZsdXhDb21wb25lbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9wcywgY29udGV4dCkge1xuICAgIHN1cGVyKHByb3BzLCBjb250ZXh0KTtcblxuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHRoaXMuY29ubmVjdFRvU3RvcmVzKHByb3BzLmNvbm5lY3RUb1N0b3JlcywgcHJvcHMuc3RhdGVHZXR0ZXIpO1xuXG4gICAgdGhpcy53cmFwQ2hpbGQgPSB0aGlzLndyYXBDaGlsZC5iaW5kKHRoaXMpO1xuICB9XG5cbiAgd3JhcENoaWxkKGNoaWxkKSB7XG4gICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChcbiAgICAgIGNoaWxkLFxuICAgICAgdGhpcy5nZXRDaGlsZFByb3BzKClcbiAgICApO1xuICB9XG5cbiAgZ2V0Q2hpbGRQcm9wcygpIHtcbiAgICBjb25zdCB7XG4gICAgICBjaGlsZHJlbixcbiAgICAgIHJlbmRlcixcbiAgICAgIGNvbm5lY3RUb1N0b3JlcyxcbiAgICAgIHN0YXRlR2V0dGVyLFxuICAgICAgZmx1eCxcbiAgICAgIC4uLmV4dHJhUHJvcHMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gYXNzaWduKFxuICAgICAgeyBmbHV4OiB0aGlzLmdldEZsdXgoKSB9LCAvLyBUT0RPOiByZW1vdmUgaW4gbmV4dCBtYWpvciB2ZXJzaW9uXG4gICAgICB0aGlzLnN0YXRlLFxuICAgICAgZXh0cmFQcm9wc1xuICAgICk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgbGV0IHsgY2hpbGRyZW4sIHJlbmRlcjogaW50ZXJuYWxSZW5kZXIgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAodHlwZW9mIGludGVybmFsUmVuZGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gaW50ZXJuYWxSZW5kZXIodGhpcy5nZXRDaGlsZFByb3BzKCksIHRoaXMuZ2V0Rmx1eCgpKTtcbiAgICB9XG5cbiAgICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gbnVsbDtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgIGNvbnN0IGNoaWxkID0gY2hpbGRyZW47XG4gICAgICByZXR1cm4gdGhpcy53cmFwQ2hpbGQoY2hpbGQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gPHNwYW4+e1JlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgdGhpcy53cmFwQ2hpbGQpfTwvc3Bhbj47XG4gICAgfVxuICB9XG59XG5cbmFzc2lnbihcbiAgRmx1eENvbXBvbmVudC5wcm90b3R5cGUsXG4gIGluc3RhbmNlTWV0aG9kc1xuKTtcblxuYXNzaWduKEZsdXhDb21wb25lbnQsIHN0YXRpY1Byb3BlcnRpZXMpO1xuXG5leHBvcnQgZGVmYXVsdCBGbHV4Q29tcG9uZW50O1xuIl19
exports['default'] = FluxComponent;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRvbnMvRmx1eENvbXBvbmVudC5qcyJdLCJuYW1lcyI6WyJGbHV4Q29tcG9uZW50IiwicHJvcHMiLCJjb250ZXh0IiwiaW5pdGlhbGl6ZSIsInN0YXRlIiwiY29ubmVjdFRvU3RvcmVzIiwic3RhdGVHZXR0ZXIiLCJ3cmFwQ2hpbGQiLCJiaW5kIiwiY2hpbGQiLCJjbG9uZUVsZW1lbnQiLCJnZXRDaGlsZFByb3BzIiwiY2hpbGRyZW4iLCJyZW5kZXIiLCJmbHV4IiwiZXh0cmFQcm9wcyIsImdldEZsdXgiLCJpbnRlcm5hbFJlbmRlciIsIkFycmF5IiwiaXNBcnJheSIsIkNoaWxkcmVuIiwibWFwIiwiQ29tcG9uZW50IiwicHJvdG90eXBlIl0sIm1hcHBpbmdzIjoiOzs7O0FBK0NBOzs7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7OzsrZUFqREE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBbURNQSxhOzs7QUFDSix5QkFBWUMsS0FBWixFQUFtQkMsT0FBbkIsRUFBNEI7QUFBQTs7QUFBQSxpREFDMUIsNEJBQU1ELEtBQU4sRUFBYUMsT0FBYixDQUQwQjs7QUFHMUIsVUFBS0MsVUFBTDs7QUFFQSxVQUFLQyxLQUFMLEdBQWEsTUFBS0MsZUFBTCxDQUFxQkosTUFBTUksZUFBM0IsRUFBNENKLE1BQU1LLFdBQWxELENBQWI7O0FBRUEsVUFBS0MsU0FBTCxHQUFpQixNQUFLQSxTQUFMLENBQWVDLElBQWYsT0FBakI7QUFQMEI7QUFRM0I7OzBCQUVERCxTLHNCQUFVRSxLLEVBQU87QUFDZixXQUFPLG1CQUFNQyxZQUFOLENBQ0xELEtBREssRUFFTCxLQUFLRSxhQUFMLEVBRkssQ0FBUDtBQUlELEc7OzBCQUVEQSxhLDRCQUFnQjtBQUFBLGlCQU9NLEtBQUtWLEtBUFg7QUFBQSxRQUVaVyxRQUZZLFVBRVpBLFFBRlk7QUFBQSxRQUdaQyxNQUhZLFVBR1pBLE1BSFk7QUFBQSxRQUlaUixlQUpZLFVBSVpBLGVBSlk7QUFBQSxRQUtaQyxXQUxZLFVBS1pBLFdBTFk7QUFBQSxRQU1aUSxJQU5ZLFVBTVpBLElBTlk7QUFBQSxRQU9UQyxVQVBTOztBQVNkLFdBQU8sK0JBQ0wsRUFBRUQsTUFBTSxLQUFLRSxPQUFMLEVBQVIsRUFESyxFQUNxQjtBQUMxQixTQUFLWixLQUZBLEVBR0xXLFVBSEssQ0FBUDtBQUtELEc7OzBCQUVERixNLHFCQUFTO0FBQUEsa0JBQ29DLEtBQUtaLEtBRHpDO0FBQUEsUUFDRFcsUUFEQyxXQUNEQSxRQURDO0FBQUEsUUFDaUJLLGNBRGpCLFdBQ1NKLE1BRFQ7OztBQUdQLFFBQUksT0FBT0ksY0FBUCxLQUEwQixVQUE5QixFQUEwQztBQUN4QyxhQUFPQSxlQUFlLEtBQUtOLGFBQUwsRUFBZixFQUFxQyxLQUFLSyxPQUFMLEVBQXJDLENBQVA7QUFDRDs7QUFFRCxRQUFJLENBQUNKLFFBQUwsRUFBZSxPQUFPLElBQVA7O0FBRWYsUUFBSSxDQUFDTSxNQUFNQyxPQUFOLENBQWNQLFFBQWQsQ0FBTCxFQUE4QjtBQUM1QixVQUFNSCxRQUFRRyxRQUFkO0FBQ0EsYUFBTyxLQUFLTCxTQUFMLENBQWVFLEtBQWYsQ0FBUDtBQUNELEtBSEQsTUFHTztBQUNMLGFBQU87QUFBQTtBQUFBO0FBQU8sMkJBQU1XLFFBQU4sQ0FBZUMsR0FBZixDQUFtQlQsUUFBbkIsRUFBNkIsS0FBS0wsU0FBbEM7QUFBUCxPQUFQO0FBQ0Q7QUFDRixHOzs7RUFqRHlCLG1CQUFNZSxTOztBQW9EbEMsK0JBQ0V0QixjQUFjdUIsU0FEaEI7O0FBS0EsK0JBQU92QixhQUFQOztxQkFFZUEsYSIsImZpbGUiOiJGbHV4Q29tcG9uZW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGbHV4IENvbXBvbmVudFxuICpcbiAqIENvbXBvbmVudCBpbnRlcmZhY2UgdG8gcmVhY3RDb21wb25lbnRNZXRob2RzIG1vZHVsZS5cbiAqXG4gKiBDaGlsZHJlbiBvZiBGbHV4Q29tcG9uZW50IGFyZSBnaXZlbiBhY2Nlc3MgdG8gdGhlIGZsdXggaW5zdGFuY2UgdmlhXG4gKiBgY29udGV4dC5mbHV4YC4gVXNlIHRoaXMgbmVhciB0aGUgdG9wIG9mIHlvdXIgYXBwIGhpZXJhcmNoeSBhbmQgYWxsIGNoaWxkcmVuXG4gKiB3aWxsIGhhdmUgZWFzeSBhY2Nlc3MgdG8gdGhlIGZsdXggaW5zdGFuY2UgKGluY2x1ZGluZywgb2YgY291cnNlLCBvdGhlclxuICogRmx1eCBjb21wb25lbnRzISk6XG4gKlxuICogPEZsdXhDb21wb25lbnQgZmx1eD17Zmx1eH0+XG4gKiAgICAuLi50aGUgcmVzdCBvZiB5b3VyIGFwcFxuICogPC9GbHV4Q29tcG9uZW50PlxuICpcbiAqIE5vdyBhbnkgY2hpbGQgY2FuIGFjY2VzcyB0aGUgZmx1eCBpbnN0YW5jZSBhZ2FpbiBsaWtlIHRoaXM6XG4gKlxuICogPEZsdXhDb21wb25lbnQ+XG4gKiAgICAuLi5jaGlsZHJlblxuICogPC9GbHV4Q29tcG9uZW50PlxuICpcbiAqIFdlIGRvbid0IG5lZWQgdGhlIGZsdXggcHJvcCB0aGlzIHRpbWUgYmVjYXVzZSBmbHV4IGlzIGFscmVhZHkgcGFydCBvZlxuICogdGhlIGNvbnRleHQuXG4gKlxuICogQWRkaXRpb25hbGx5LCBpbW1lZGlhdGUgY2hpbGRyZW4gYXJlIGdpdmVuIGEgYGZsdXhgIHByb3AuXG4gKlxuICogVGhlIGNvbXBvbmVudCBoYXMgYW4gb3B0aW9uYWwgcHJvcCBgY29ubmVjdFRvU3RvcmVzYCwgd2hpY2ggaXMgcGFzc2VkIHRvXG4gKiBgdGhpcy5jb25uZWN0VG9TdG9yZXNgIGFuZCB1c2VkIHRvIHNldCB0aGUgaW5pdGlhbCBzdGF0ZS4gVGhlIGNvbXBvbmVudCdzXG4gKiBzdGF0ZSBpcyBpbmplY3RlZCBhcyBwcm9wcyB0byB0aGUgY2hpbGQgY29tcG9uZW50cy5cbiAqXG4gKiBUaGUgcHJhY3RpY2FsIHVwc2hvdCBvZiBhbGwgdGhpcyBpcyB0aGF0IGZsdXhNaXhpbiwgc3RhdGUgY2hhbmdlcywgYW5kXG4gKiBjb250ZXh0IGFyZSBub3cgc2ltcGx5IGltcGxlbWVudGF0aW9uIGRldGFpbHMuIEFtb25nIG90aGVyIHRoaW5ncywgdGhpcyBtZWFuc1xuICogeW91IGNhbiB3cml0ZSB5b3VyIGNvbXBvbmVudHMgYXMgcGxhaW4gRVM2IGNsYXNzZXMuIEhlcmUncyBhbiBleGFtcGxlOlxuICpcbiAqIGNsYXNzIFBhcmVudENvbXBvbmVudCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gKlxuICogICByZW5kZXIoKSB7XG4gKiAgICAgPEZsdXhDb21wb25lbnQgY29ubmVjdFRvU3RvcmVzPVwiZm9vU3RvcmVcIj5cbiAqICAgICAgIDxDaGlsZENvbXBvbmVudCAvPlxuICogICAgIDwvRmx1eENvbXBvbmVudD5cbiAqICAgfVxuICpcbiAqIH1cbiAqXG4gKiBDaGlsZENvbXBvbmVudCBpbiB0aGlzIGV4YW1wbGUgaGFzIHByb3AgYGZsdXhgIGNvbnRhaW5pbmcgdGhlIGZsdXggaW5zdGFuY2UsXG4gKiBhbmQgcHJvcHMgdGhhdCBzeW5jIHdpdGggZWFjaCBvZiB0aGUgc3RhdGUga2V5cyBvZiBmb29TdG9yZS5cbiAqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgaW5zdGFuY2VNZXRob2RzLCBzdGF0aWNQcm9wZXJ0aWVzIH0gZnJvbSAnLi9yZWFjdENvbXBvbmVudE1ldGhvZHMnO1xuaW1wb3J0IGFzc2lnbiBmcm9tICdvYmplY3QtYXNzaWduJztcblxuY2xhc3MgRmx1eENvbXBvbmVudCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzLCBjb250ZXh0KSB7XG4gICAgc3VwZXIocHJvcHMsIGNvbnRleHQpO1xuXG4gICAgdGhpcy5pbml0aWFsaXplKCk7XG5cbiAgICB0aGlzLnN0YXRlID0gdGhpcy5jb25uZWN0VG9TdG9yZXMocHJvcHMuY29ubmVjdFRvU3RvcmVzLCBwcm9wcy5zdGF0ZUdldHRlcik7XG5cbiAgICB0aGlzLndyYXBDaGlsZCA9IHRoaXMud3JhcENoaWxkLmJpbmQodGhpcyk7XG4gIH1cblxuICB3cmFwQ2hpbGQoY2hpbGQpIHtcbiAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KFxuICAgICAgY2hpbGQsXG4gICAgICB0aGlzLmdldENoaWxkUHJvcHMoKVxuICAgICk7XG4gIH1cblxuICBnZXRDaGlsZFByb3BzKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgcmVuZGVyLFxuICAgICAgY29ubmVjdFRvU3RvcmVzLFxuICAgICAgc3RhdGVHZXR0ZXIsXG4gICAgICBmbHV4LFxuICAgICAgLi4uZXh0cmFQcm9wcyB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiBhc3NpZ24oXG4gICAgICB7IGZsdXg6IHRoaXMuZ2V0Rmx1eCgpIH0sIC8vIFRPRE86IHJlbW92ZSBpbiBuZXh0IG1ham9yIHZlcnNpb25cbiAgICAgIHRoaXMuc3RhdGUsXG4gICAgICBleHRyYVByb3BzXG4gICAgKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQgeyBjaGlsZHJlbiwgcmVuZGVyOiBpbnRlcm5hbFJlbmRlciB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmICh0eXBlb2YgaW50ZXJuYWxSZW5kZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBpbnRlcm5hbFJlbmRlcih0aGlzLmdldENoaWxkUHJvcHMoKSwgdGhpcy5nZXRGbHV4KCkpO1xuICAgIH1cblxuICAgIGlmICghY2hpbGRyZW4pIHJldHVybiBudWxsO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgICAgY29uc3QgY2hpbGQgPSBjaGlsZHJlbjtcbiAgICAgIHJldHVybiB0aGlzLndyYXBDaGlsZChjaGlsZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA8c3Bhbj57UmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCB0aGlzLndyYXBDaGlsZCl9PC9zcGFuPjtcbiAgICB9XG4gIH1cbn1cblxuYXNzaWduKFxuICBGbHV4Q29tcG9uZW50LnByb3RvdHlwZSxcbiAgaW5zdGFuY2VNZXRob2RzXG4pO1xuXG5hc3NpZ24oRmx1eENvbXBvbmVudCwgc3RhdGljUHJvcGVydGllcyk7XG5cbmV4cG9ydCBkZWZhdWx0IEZsdXhDb21wb25lbnQ7XG4iXX0=

@@ -6,4 +6,6 @@ 'use strict';

var _react = require('react');
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _Flux = require('../Flux');

@@ -53,4 +55,4 @@

return (0, _objectAssign2.default)({ getInitialState: getInitialState }, _reactComponentMethods.instanceMethods, _reactComponentMethods.staticProperties);
return (0, _objectAssign2['default'])({ getInitialState: getInitialState }, _reactComponentMethods.instanceMethods, _reactComponentMethods.staticProperties);
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRvbnMvZmx1eE1peGluLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztxQkE2QndCLFNBQVM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQWxCLFNBQVMsU0FBUyxHQUFVO29DQUFOLElBQUk7QUFBSixRQUFJOzs7QUFDdkMsV0FBUyxlQUFlLEdBQUc7QUFDekIsUUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ2xCLFdBQU8sSUFBSSxDQUFDLGVBQWUsTUFBQSxDQUFwQixJQUFJLEVBQW9CLElBQUksQ0FBQyxDQUFDO0dBQ3RDOztBQUVELFNBQU8sNEJBQ0wsRUFBRSxlQUFlLEVBQWYsZUFBZSxFQUFFLHlCQVZkLGVBQWUseUJBQUUsZ0JBQWdCLENBYXZDLENBQUM7Q0FDSCxDQUFDIiwiZmlsZSI6ImZsdXhNaXhpbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZmx1eE1peGluXG4gKlxuICogRXhwb3J0cyBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhIFJlYWN0IGNvbXBvbmVudCBtaXhpbi4gSW1wbGVtZW50cyBtZXRob2RzXG4gKiBmcm9tIHJlYWN0Q29tcG9uZW50TWV0aG9kcy5cbiAqXG4gKiBBbnkgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgbWl4aW4gY3JlYXRvciBhcmUgcGFzc2VkIHRvIGBjb25uZWN0VG9TdG9yZXMoKWBcbiAqIGFuZCB1c2VkIGFzIHRoZSByZXR1cm4gdmFsdWUgb2YgYGdldEluaXRpYWxTdGF0ZSgpYC4gVGhpcyBsZXRzIHlvdSBoYW5kbGVcbiAqIGFsbCBvZiB0aGUgc3RhdGUgaW5pdGlhbGl6YXRpb24gYW5kIHVwZGF0ZXMgaW4gYSBzaW5nbGUgcGxhY2UsIHdoaWxlIHJlbW92aW5nXG4gKiB0aGUgYnVyZGVuIG9mIG1hbnVhbGx5IGFkZGluZyBhbmQgcmVtb3Zpbmcgc3RvcmUgbGlzdGVuZXJzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBsZXQgQ29tcG9uZW50ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICogICBtaXhpbnM6IFtmbHV4TWl4aW4oe1xuICogICAgIHN0b3JlQTogc3RvcmUgPT4gKHtcbiAqICAgICAgIGZvbzogc3RvcmUuc3RhdGUuYSxcbiAqICAgICB9KSxcbiAqICAgICBzdG9yZUI6IHN0b3JlID0+ICh7XG4gKiAgICAgICBiYXI6IHN0b3JlLnN0YXRlLmIsXG4gKiAgICAgfSlcbiAqICAgfV1cbiAqIH0pO1xuICovXG5cbmltcG9ydCB7IFByb3BUeXBlcyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZsdXggfSBmcm9tICcuLi9GbHV4JztcbmltcG9ydCB7IGluc3RhbmNlTWV0aG9kcywgc3RhdGljUHJvcGVydGllcyB9IGZyb20gJy4vcmVhY3RDb21wb25lbnRNZXRob2RzJztcbmltcG9ydCBhc3NpZ24gZnJvbSAnb2JqZWN0LWFzc2lnbic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZsdXhNaXhpbiguLi5hcmdzKSB7XG4gIGZ1bmN0aW9uIGdldEluaXRpYWxTdGF0ZSgpIHtcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgICByZXR1cm4gdGhpcy5jb25uZWN0VG9TdG9yZXMoLi4uYXJncyk7XG4gIH1cblxuICByZXR1cm4gYXNzaWduKFxuICAgIHsgZ2V0SW5pdGlhbFN0YXRlIH0sXG4gICAgaW5zdGFuY2VNZXRob2RzLFxuICAgIHN0YXRpY1Byb3BlcnRpZXNcbiAgKTtcbn07XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRvbnMvZmx1eE1peGluLmpzIl0sIm5hbWVzIjpbImZsdXhNaXhpbiIsImFyZ3MiLCJnZXRJbml0aWFsU3RhdGUiLCJpbml0aWFsaXplIiwiY29ubmVjdFRvU3RvcmVzIl0sIm1hcHBpbmdzIjoiOzs7cUJBNkJ3QkEsUzs7QUFMeEI7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBM0JBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2QmUsU0FBU0EsU0FBVCxHQUE0QjtBQUFBLG9DQUFOQyxJQUFNO0FBQU5BLFFBQU07QUFBQTs7QUFDekMsV0FBU0MsZUFBVCxHQUEyQjtBQUN6QixTQUFLQyxVQUFMO0FBQ0EsV0FBTyxLQUFLQyxlQUFMLGFBQXdCSCxJQUF4QixDQUFQO0FBQ0Q7O0FBRUQsU0FBTywrQkFDTCxFQUFFQyxnQ0FBRixFQURLLGtGQUFQO0FBS0QiLCJmaWxlIjoiZmx1eE1peGluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBmbHV4TWl4aW5cbiAqXG4gKiBFeHBvcnRzIGEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGEgUmVhY3QgY29tcG9uZW50IG1peGluLiBJbXBsZW1lbnRzIG1ldGhvZHNcbiAqIGZyb20gcmVhY3RDb21wb25lbnRNZXRob2RzLlxuICpcbiAqIEFueSBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBtaXhpbiBjcmVhdG9yIGFyZSBwYXNzZWQgdG8gYGNvbm5lY3RUb1N0b3JlcygpYFxuICogYW5kIHVzZWQgYXMgdGhlIHJldHVybiB2YWx1ZSBvZiBgZ2V0SW5pdGlhbFN0YXRlKClgLiBUaGlzIGxldHMgeW91IGhhbmRsZVxuICogYWxsIG9mIHRoZSBzdGF0ZSBpbml0aWFsaXphdGlvbiBhbmQgdXBkYXRlcyBpbiBhIHNpbmdsZSBwbGFjZSwgd2hpbGUgcmVtb3ZpbmdcbiAqIHRoZSBidXJkZW4gb2YgbWFudWFsbHkgYWRkaW5nIGFuZCByZW1vdmluZyBzdG9yZSBsaXN0ZW5lcnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGxldCBDb21wb25lbnQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gKiAgIG1peGluczogW2ZsdXhNaXhpbih7XG4gKiAgICAgc3RvcmVBOiBzdG9yZSA9PiAoe1xuICogICAgICAgZm9vOiBzdG9yZS5zdGF0ZS5hLFxuICogICAgIH0pLFxuICogICAgIHN0b3JlQjogc3RvcmUgPT4gKHtcbiAqICAgICAgIGJhcjogc3RvcmUuc3RhdGUuYixcbiAqICAgICB9KVxuICogICB9XVxuICogfSk7XG4gKi9cblxuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IHsgRmx1eCB9IGZyb20gJy4uL0ZsdXgnO1xuaW1wb3J0IHsgaW5zdGFuY2VNZXRob2RzLCBzdGF0aWNQcm9wZXJ0aWVzIH0gZnJvbSAnLi9yZWFjdENvbXBvbmVudE1ldGhvZHMnO1xuaW1wb3J0IGFzc2lnbiBmcm9tICdvYmplY3QtYXNzaWduJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZmx1eE1peGluKC4uLmFyZ3MpIHtcbiAgZnVuY3Rpb24gZ2V0SW5pdGlhbFN0YXRlKCkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICAgIHJldHVybiB0aGlzLmNvbm5lY3RUb1N0b3JlcyguLi5hcmdzKTtcbiAgfVxuXG4gIHJldHVybiBhc3NpZ24oXG4gICAgeyBnZXRJbml0aWFsU3RhdGUgfSxcbiAgICBpbnN0YW5jZU1ldGhvZHMsXG4gICAgc3RhdGljUHJvcGVydGllc1xuICApO1xufTtcbiJdfQ==

@@ -10,2 +10,6 @@ 'use strict';

var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _Flux = require('../Flux');

@@ -19,2 +23,15 @@

/**
* React Component methods. These are the primitives used to implement
* fluxMixin and FluxComponent.
*
* Exposes a Flux instance as `this.flux`. This requires that flux be passed as
* either context or as a prop (prop takes precedence). Children also are given
* access to flux instance as `context.flux`.
*
* It also adds the method `connectToStores()`, which ensures that the component
* state stays in sync with the specified Flux stores. See the inline docs
* of `connectToStores` for details.
*/
var instanceMethods = {

@@ -59,3 +76,3 @@ getChildContext: function getChildContext() {

updateStores: function updateStores() {
var props = arguments.length <= 0 || arguments[0] === undefined ? this.props : arguments[0];
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;

@@ -66,13 +83,14 @@ var state = this.getStoreState(props);

getStoreState: function getStoreState() {
var props = arguments.length <= 0 || arguments[0] === undefined ? this.props : arguments[0];
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
return this._fluxStateGetters.reduce(function (result, stateGetter) {
var getter = stateGetter.getter;
var stores = stateGetter.stores;
var getter = stateGetter.getter,
stores = stateGetter.stores;
var stateFromStores = getter(stores, props);
return (0, _objectAssign2.default)(result, stateFromStores);
return (0, _objectAssign2['default'])(result, stateFromStores);
}, {});
},
/**

@@ -107,4 +125,4 @@ * Connect component to stores, get the combined initial state, and

var stateGetterMap = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
var stateGetter = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];
var stateGetterMap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var stateGetter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;

@@ -134,25 +152,23 @@ var flux = this.getFlux();

} else if (Array.isArray(stateGetterMap)) {
(function () {
var stores = stateGetterMap.map(getStore);
var getter = stateGetter || defaultReduceStateGetter;
var stores = stateGetterMap.map(getStore);
var _getter = stateGetter || defaultReduceStateGetter;
_this._fluxStateGetters.push({ stores: stores, getter: getter });
var listener = createStoreListener(_this, stores, getter);
this._fluxStateGetters.push({ stores: stores, getter: _getter });
var _listener = createStoreListener(this, stores, _getter);
stateGetterMap.forEach(function (key, index) {
var store = stores[index];
store.addListener('change', listener);
_this._fluxListeners[key] = listener;
});
})();
stateGetterMap.forEach(function (key, index) {
var store = stores[index];
store.addListener('change', _listener);
_this._fluxListeners[key] = _listener;
});
} else {
for (var key in stateGetterMap) {
var store = getStore(key);
var getter = stateGetterMap[key] || defaultStateGetter;
for (var _key in stateGetterMap) {
var _store = getStore(_key);
var _getter2 = stateGetterMap[_key] || defaultStateGetter;
this._fluxStateGetters.push({ stores: store, getter: getter });
var listener = createStoreListener(this, store, getter);
this._fluxStateGetters.push({ stores: _store, getter: _getter2 });
var _listener2 = createStoreListener(this, _store, _getter2);
store.addListener('change', listener);
this._fluxListeners[key] = listener;
_store.addListener('change', _listener2);
this._fluxListeners[_key] = _listener2;
}

@@ -163,29 +179,18 @@ }

}
}; /**
* React Component methods. These are the primitives used to implement
* fluxMixin and FluxComponent.
*
* Exposes a Flux instance as `this.flux`. This requires that flux be passed as
* either context or as a prop (prop takes precedence). Children also are given
* access to flux instance as `context.flux`.
*
* It also adds the method `connectToStores()`, which ensures that the component
* state stays in sync with the specified Flux stores. See the inline docs
* of `connectToStores` for details.
*/
};
var staticProperties = {
contextTypes: {
flux: _react.PropTypes.instanceOf(_Flux.Flux)
flux: _propTypes2['default'].instanceOf(_Flux.Flux)
},
childContextTypes: {
flux: _react.PropTypes.instanceOf(_Flux.Flux)
flux: _propTypes2['default'].instanceOf(_Flux.Flux)
},
propTypes: {
connectToStores: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.arrayOf(_react.PropTypes.string), _react.PropTypes.object]),
flux: _react.PropTypes.instanceOf(_Flux.Flux),
render: _react2.default.PropTypes.func,
stateGetter: _react2.default.PropTypes.func
connectToStores: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].arrayOf(_propTypes2['default'].string), _propTypes2['default'].object]),
flux: _propTypes2['default'].instanceOf(_Flux.Flux),
render: _propTypes2['default'].func,
stateGetter: _propTypes2['default'].func
}

@@ -197,7 +202,8 @@ };

function createStoreListener(component, store, storeStateGetter) {
return (function () {
return function () {
var state = storeStateGetter(store, this.props);
this.setState(state);
}).bind(component);
}.bind(component);
}

@@ -211,5 +217,5 @@

return stores.reduce(function (result, store) {
return (0, _objectAssign2.default)(result, store.getStateAsObject());
return (0, _objectAssign2['default'])(result, store.getStateAsObject());
}, {});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRvbnMvcmVhY3RDb21wb25lbnRNZXRob2RzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBaUJBLElBQU0sZUFBZSxHQUFHO0FBRXRCLGlCQUFlLDZCQUFHO0FBQ2hCLFFBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzs7QUFFNUIsUUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQzs7QUFFckIsV0FBTyxFQUFFLElBQUksRUFBSixJQUFJLEVBQUUsQ0FBQztHQUNqQjtBQUVELFNBQU8scUJBQUc7QUFDUixXQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0dBQzdDO0FBRUQsWUFBVSx3QkFBRztBQUNYLFFBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUFDNUIsUUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7QUFDekIsUUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7O0FBRTNCLFFBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxrQkF0QlYsSUFBSSxDQXNCc0IsQUFBQyxFQUFFOztBQUVoQyxZQUFNLElBQUksS0FBSyxDQUNiLCtIQUMwRCxDQUMzRCxDQUFDO0tBQ0g7R0FDRjtBQUVELHNCQUFvQixrQ0FBRztBQUNyQixRQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7O0FBRTVCLFNBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtBQUNuQyxVQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUzs7QUFFdkQsVUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqQyxVQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsRUFB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SnFCLFNBQVMsQ0ErSnBCLE1BQU0sRUFDaEIsT0FoS3FCLFNBQVMsQ0FnS3BCLE9BQU8sQ0FBQyxPQWhLRyxTQUFTLENBZ0tGLE1BQU0sQ0FBQyxFQUNuQyxPQWpLcUIsU0FBUyxDQWlLcEIsTUFBTSxDQUNqQixDQUFDO0FBQ0YsUUFBSSxFQUFFLE9BbktpQixTQUFTLENBbUtoQixVQUFVLE9BbEtyQixJQUFJLENBa0t1QjtBQUNoQyxVQUFNLEVBQUUsUUFwS0gsT0FBTyxDQW9LRSxTQUFTLENBQUMsSUFBSTtBQUM1QixlQUFXLEVBQUUsUUFyS1IsT0FBTyxDQXFLTyxTQUFTLENBQUMsSUFBSTtHQUNsQztDQUNGLENBQUM7O1FBRU8sZUFBZSxHQUFmLGVBQWU7UUFBRSxnQkFBZ0IsR0FBaEIsZ0JBQWdCOztBQUUxQyxTQUFTLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7QUFDL0QsU0FBTyxDQUFBLFlBQVc7QUFDaEIsUUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsRCxRQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0dBQ3RCLENBQUEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Q0FDbkI7O0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7QUFDakMsU0FBTyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztDQUNqQzs7QUFFRCxTQUFTLHdCQUF3QixDQUFDLE1BQU0sRUFBRTtBQUN4QyxTQUFPLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLFVBQUMsTUFBTSxFQUFFLEtBQUs7V0FBSyw0QkFBTyxNQUFNLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7R0FBQSxFQUMzRCxFQUFFLENBQ0gsQ0FBQztDQUNIIiwiZmlsZSI6InJlYWN0Q29tcG9uZW50TWV0aG9kcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVhY3QgQ29tcG9uZW50IG1ldGhvZHMuIFRoZXNlIGFyZSB0aGUgcHJpbWl0aXZlcyB1c2VkIHRvIGltcGxlbWVudFxuICogZmx1eE1peGluIGFuZCBGbHV4Q29tcG9uZW50LlxuICpcbiAqIEV4cG9zZXMgYSBGbHV4IGluc3RhbmNlIGFzIGB0aGlzLmZsdXhgLiBUaGlzIHJlcXVpcmVzIHRoYXQgZmx1eCBiZSBwYXNzZWQgYXNcbiAqIGVpdGhlciBjb250ZXh0IG9yIGFzIGEgcHJvcCAocHJvcCB0YWtlcyBwcmVjZWRlbmNlKS4gQ2hpbGRyZW4gYWxzbyBhcmUgZ2l2ZW5cbiAqIGFjY2VzcyB0byBmbHV4IGluc3RhbmNlIGFzIGBjb250ZXh0LmZsdXhgLlxuICpcbiAqIEl0IGFsc28gYWRkcyB0aGUgbWV0aG9kIGBjb25uZWN0VG9TdG9yZXMoKWAsIHdoaWNoIGVuc3VyZXMgdGhhdCB0aGUgY29tcG9uZW50XG4gKiBzdGF0ZSBzdGF5cyBpbiBzeW5jIHdpdGggdGhlIHNwZWNpZmllZCBGbHV4IHN0b3Jlcy4gU2VlIHRoZSBpbmxpbmUgZG9jc1xuICogb2YgYGNvbm5lY3RUb1N0b3Jlc2AgZm9yIGRldGFpbHMuXG4gKi9cblxuaW1wb3J0IHsgZGVmYXVsdCBhcyBSZWFjdCwgUHJvcFR5cGVzIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRmx1eCB9IGZyb20gJy4uL0ZsdXgnO1xuaW1wb3J0IGFzc2lnbiBmcm9tICdvYmplY3QtYXNzaWduJztcblxuY29uc3QgaW5zdGFuY2VNZXRob2RzID0ge1xuXG4gIGdldENoaWxkQ29udGV4dCgpIHtcbiAgICBjb25zdCBmbHV4ID0gdGhpcy5nZXRGbHV4KCk7XG5cbiAgICBpZiAoIWZsdXgpIHJldHVybiB7fTtcblxuICAgIHJldHVybiB7IGZsdXggfTtcbiAgfSxcblxuICBnZXRGbHV4KCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmZsdXggfHwgdGhpcy5jb250ZXh0LmZsdXg7XG4gIH0sXG5cbiAgaW5pdGlhbGl6ZSgpIHtcbiAgICB0aGlzLl9mbHV4U3RhdGVHZXR0ZXJzID0gW107XG4gICAgdGhpcy5fZmx1eExpc3RlbmVycyA9IHt9O1xuICAgIHRoaXMuZmx1eCA9IHRoaXMuZ2V0Rmx1eCgpO1xuXG4gICAgaWYgKCEodGhpcy5mbHV4IGluc3RhbmNlb2YgRmx1eCkpIHtcbiAgICAgIC8vIFRPRE86IHByaW50IHRoZSBhY3R1YWwgY2xhc3MgbmFtZSBoZXJlXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBmbHV4TWl4aW46IENvdWxkIG5vdCBmaW5kIEZsdXggaW5zdGFuY2UuIEVuc3VyZSB0aGF0IHlvdXIgY29tcG9uZW50IGBcbiAgICAgICsgYGhhcyBlaXRoZXIgXFxgdGhpcy5jb250ZXh0LmZsdXhcXGAgb3IgXFxgdGhpcy5wcm9wcy5mbHV4XFxgLmBcbiAgICAgICk7XG4gICAgfVxuICB9LFxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIGNvbnN0IGZsdXggPSB0aGlzLmdldEZsdXgoKTtcblxuICAgIGZvciAobGV0IGtleSBpbiB0aGlzLl9mbHV4TGlzdGVuZXJzKSB7XG4gICAgICBpZiAoIXRoaXMuX2ZsdXhMaXN0ZW5lcnMuaGFzT3duUHJvcGVydHkoa2V5KSkgY29udGludWU7XG5cbiAgICAgIGNvbnN0IHN0b3JlID0gZmx1eC5nZXRTdG9yZShrZXkpO1xuICAgICAgaWYgKHR5cGVvZiBzdG9yZSA9PT0gJ3VuZGVmaW5lZCcpIGNvbnRpbnVlO1xuXG4gICAgICBjb25zdCBsaXN0ZW5lciA9IHRoaXMuX2ZsdXhMaXN0ZW5lcnNba2V5XTtcblxuICAgICAgc3RvcmUucmVtb3ZlTGlzdGVuZXIoJ2NoYW5nZScsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH0sXG5cbiAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICB0aGlzLnVwZGF0ZVN0b3JlcyhuZXh0UHJvcHMpO1xuICB9LFxuXG4gIHVwZGF0ZVN0b3Jlcyhwcm9wcyA9IHRoaXMucHJvcHMpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZ2V0U3RvcmVTdGF0ZShwcm9wcyk7XG4gICAgdGhpcy5zZXRTdGF0ZShzdGF0ZSk7XG4gIH0sXG5cbiAgZ2V0U3RvcmVTdGF0ZShwcm9wcyA9IHRoaXMucHJvcHMpIHtcbiAgICByZXR1cm4gdGhpcy5fZmx1eFN0YXRlR2V0dGVycy5yZWR1Y2UoXG4gICAgICAocmVzdWx0LCBzdGF0ZUdldHRlcikgPT4ge1xuICAgICAgICBjb25zdCB7IGdldHRlciwgc3RvcmVzIH0gPSBzdGF0ZUdldHRlcjtcbiAgICAgICAgY29uc3Qgc3RhdGVGcm9tU3RvcmVzID0gZ2V0dGVyKHN0b3JlcywgcHJvcHMpO1xuICAgICAgICByZXR1cm4gYXNzaWduKHJlc3VsdCwgc3RhdGVGcm9tU3RvcmVzKTtcbiAgICAgIH0sIHt9XG4gICAgKTtcbiAgfSxcblxuICAgLyoqXG4gICAgKiBDb25uZWN0IGNvbXBvbmVudCB0byBzdG9yZXMsIGdldCB0aGUgY29tYmluZWQgaW5pdGlhbCBzdGF0ZSwgYW5kXG4gICAgKiBzdWJzY3JpYmUgdG8gZnV0dXJlIGNoYW5nZXMuIFRoZXJlIGFyZSB0aHJlZSB3YXlzIHRvIGNhbGwgaXQuIFRoZVxuICAgICogc2ltcGxlc3QgaXMgdG8gcGFzcyBhIHNpbmdsZSBzdG9yZSBrZXkgYW5kLCBvcHRpb25hbGx5LCBhIHN0YXRlIGdldHRlci5cbiAgICAqIFRoZSBzdGF0ZSBnZXR0ZXIgaXMgYSBmdW5jdGlvbiB0aGF0IHRha2VzIHRoZSBzdG9yZSBhcyBhIHBhcmFtZXRlciBhbmRcbiAgICAqIHJldHVybnMgdGhlIHN0YXRlIHRoYXQgc2hvdWxkIGJlIHBhc3NlZCB0byB0aGUgY29tcG9uZW50J3MgYHNldFN0YXRlKClgLlxuICAgICogSWYgbm8gc3RhdGUgZ2V0dGVyIGlzIHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgZ2V0dGVyIGlzIHVzZWQsIHdoaWNoIHNpbXBseVxuICAgICogcmV0dXJucyB0aGUgZW50aXJlIHN0b3JlIHN0YXRlLlxuICAgICpcbiAgICAqIFRoZSBzZWNvbmQgZm9ybSBhY2NlcHRzIGFuIGFycmF5IG9mIHN0b3JlIGtleXMuIFdpdGggdGhpcyBmb3JtLCB0aGUgc3RhdGVcbiAgICAqIGdldHRlciBpcyBjYWxsZWQgb25jZSB3aXRoIGFuIGFycmF5IG9mIHN0b3JlIGluc3RhbmNlcyAoaW4gdGhlIHNhbWUgb3JkZXJcbiAgICAqIGFzIHRoZSBzdG9yZSBrZXlzKS4gdGhlIGRlZmF1bHQgZ2V0dGVyIHBlcmZvcm1hbmNlIGEgcmVkdWNlIG9uIHRoZSBlbnRpcmVcbiAgICAqIHN0YXRlIGZvciBlYWNoIHN0b3JlLlxuICAgICpcbiAgICAqIFRoZSBsYXN0IGZvcm0gYWNjZXB0cyBhbiBvYmplY3Qgb2Ygc3RvcmUga2V5cyBtYXBwZWQgdG8gc3RhdGUgZ2V0dGVycy4gQXNcbiAgICAqIGEgc2hvcnRjdXQsIHlvdSBjYW4gcGFzcyBgbnVsbGAgYXMgYSBzdGF0ZSBnZXR0ZXIgdG8gdXNlIHRoZSBkZWZhdWx0XG4gICAgKiBzdGF0ZSBnZXR0ZXIuXG4gICAgKlxuICAgICogUmV0dXJucyB0aGUgY29tYmluZWQgaW5pdGlhbCBzdGF0ZSBvZiBhbGwgc3BlY2lmaWVkIHN0b3Jlcy5cbiAgICAqXG4gICAgKiBUaGlzIHdheSB5b3UgY2FuIHdyaXRlIGFsbCB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIHVwZGF0ZSBsb2dpYyBpbiBhIHNpbmdsZVxuICAgICogbG9jYXRpb24sIHdpdGhvdXQgaGF2aW5nIHRvIG1lc3Mgd2l0aCBhZGRpbmcvcmVtb3ZpbmcgbGlzdGVuZXJzLlxuICAgICpcbiAgICAqIEB0eXBlIHtzdHJpbmd8YXJyYXl8b2JqZWN0fSBzdGF0ZUdldHRlck1hcCAtIG1hcCBvZiBrZXlzIHRvIGdldHRlcnNcbiAgICAqIEByZXR1cm5zIHtvYmplY3R9IENvbWJpbmVkIGluaXRpYWwgc3RhdGUgb2Ygc3RvcmVzXG4gICAgKi9cbiAgY29ubmVjdFRvU3RvcmVzKHN0YXRlR2V0dGVyTWFwID0ge30sIHN0YXRlR2V0dGVyID0gbnVsbCkge1xuICAgIGNvbnN0IGZsdXggPSB0aGlzLmdldEZsdXgoKTtcblxuICAgIGNvbnN0IGdldFN0b3JlID0gKGtleSkgPT4ge1xuICAgICAgY29uc3Qgc3RvcmUgPSBmbHV4LmdldFN0b3JlKGtleSk7XG5cbiAgICAgIGlmICh0eXBlb2Ygc3RvcmUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgY29ubmVjdFRvU3RvcmVzKCk6IFN0b3JlIHdpdGgga2V5ICcke2tleX0nIGRvZXMgbm90IGV4aXN0LmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHN0b3JlO1xuICAgIH07XG5cbiAgICBpZiAodHlwZW9mIHN0YXRlR2V0dGVyTWFwID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3Qga2V5ID0gc3RhdGVHZXR0ZXJNYXA7XG4gICAgICBjb25zdCBzdG9yZSA9IGdldFN0b3JlKGtleSk7XG4gICAgICBjb25zdCBnZXR0ZXIgPSBzdGF0ZUdldHRlciB8fCBkZWZhdWx0U3RhdGVHZXR0ZXI7XG5cbiAgICAgIHRoaXMuX2ZsdXhTdGF0ZUdldHRlcnMucHVzaCh7IHN0b3Jlczogc3RvcmUsIGdldHRlciB9KTtcbiAgICAgIGNvbnN0IGxpc3RlbmVyID0gY3JlYXRlU3RvcmVMaXN0ZW5lcih0aGlzLCBzdG9yZSwgZ2V0dGVyKTtcblxuICAgICAgc3RvcmUuYWRkTGlzdGVuZXIoJ2NoYW5nZScsIGxpc3RlbmVyKTtcbiAgICAgIHRoaXMuX2ZsdXhMaXN0ZW5lcnNba2V5XSA9IGxpc3RlbmVyO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShzdGF0ZUdldHRlck1hcCkpIHtcbiAgICAgIGNvbnN0IHN0b3JlcyA9IHN0YXRlR2V0dGVyTWFwLm1hcChnZXRTdG9yZSk7XG4gICAgICBjb25zdCBnZXR0ZXIgPSBzdGF0ZUdldHRlciB8fCBkZWZhdWx0UmVkdWNlU3RhdGVHZXR0ZXI7XG5cbiAgICAgIHRoaXMuX2ZsdXhTdGF0ZUdldHRlcnMucHVzaCh7IHN0b3JlcywgZ2V0dGVyIH0pO1xuICAgICAgY29uc3QgbGlzdGVuZXIgPSBjcmVhdGVTdG9yZUxpc3RlbmVyKHRoaXMsIHN0b3JlcywgZ2V0dGVyKTtcblxuICAgICAgc3RhdGVHZXR0ZXJNYXAuZm9yRWFjaCgoa2V5LCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBzdG9yZSA9IHN0b3Jlc1tpbmRleF07XG4gICAgICAgIHN0b3JlLmFkZExpc3RlbmVyKCdjaGFuZ2UnLCBsaXN0ZW5lcik7XG4gICAgICAgIHRoaXMuX2ZsdXhMaXN0ZW5lcnNba2V5XSA9IGxpc3RlbmVyO1xuICAgICAgfSk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgIGZvciAobGV0IGtleSBpbiBzdGF0ZUdldHRlck1hcCkge1xuICAgICAgICBjb25zdCBzdG9yZSA9IGdldFN0b3JlKGtleSk7XG4gICAgICAgIGNvbnN0IGdldHRlciA9IHN0YXRlR2V0dGVyTWFwW2tleV0gfHwgZGVmYXVsdFN0YXRlR2V0dGVyO1xuXG4gICAgICAgIHRoaXMuX2ZsdXhTdGF0ZUdldHRlcnMucHVzaCh7IHN0b3Jlczogc3RvcmUsIGdldHRlciB9KTtcbiAgICAgICAgY29uc3QgbGlzdGVuZXIgPSBjcmVhdGVTdG9yZUxpc3RlbmVyKHRoaXMsIHN0b3JlLCBnZXR0ZXIpO1xuXG4gICAgICAgIHN0b3JlLmFkZExpc3RlbmVyKCdjaGFuZ2UnLCBsaXN0ZW5lcik7XG4gICAgICAgIHRoaXMuX2ZsdXhMaXN0ZW5lcnNba2V5XSA9IGxpc3RlbmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmdldFN0b3JlU3RhdGUoKTtcbiAgfVxuXG59O1xuXG5jb25zdCBzdGF0aWNQcm9wZXJ0aWVzID0ge1xuICBjb250ZXh0VHlwZXM6IHtcbiAgICBmbHV4OiBQcm9wVHlwZXMuaW5zdGFuY2VPZihGbHV4KSxcbiAgfSxcblxuICBjaGlsZENvbnRleHRUeXBlczoge1xuICAgIGZsdXg6IFByb3BUeXBlcy5pbnN0YW5jZU9mKEZsdXgpLFxuICB9LFxuXG4gIHByb3BUeXBlczoge1xuICAgIGNvbm5lY3RUb1N0b3JlczogUHJvcFR5cGVzLm9uZU9mVHlwZShbXG4gICAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICBQcm9wVHlwZXMub2JqZWN0XG4gICAgXSksXG4gICAgZmx1eDogUHJvcFR5cGVzLmluc3RhbmNlT2YoRmx1eCksXG4gICAgcmVuZGVyOiBSZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICBzdGF0ZUdldHRlcjogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gIH0sXG59O1xuXG5leHBvcnQgeyBpbnN0YW5jZU1ldGhvZHMsIHN0YXRpY1Byb3BlcnRpZXMgfTtcblxuZnVuY3Rpb24gY3JlYXRlU3RvcmVMaXN0ZW5lcihjb21wb25lbnQsIHN0b3JlLCBzdG9yZVN0YXRlR2V0dGVyKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHN0b3JlU3RhdGVHZXR0ZXIoc3RvcmUsIHRoaXMucHJvcHMpO1xuICAgIHRoaXMuc2V0U3RhdGUoc3RhdGUpO1xuICB9LmJpbmQoY29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdFN0YXRlR2V0dGVyKHN0b3JlKSB7XG4gIHJldHVybiBzdG9yZS5nZXRTdGF0ZUFzT2JqZWN0KCk7XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRSZWR1Y2VTdGF0ZUdldHRlcihzdG9yZXMpIHtcbiAgcmV0dXJuIHN0b3Jlcy5yZWR1Y2UoXG4gICAgKHJlc3VsdCwgc3RvcmUpID0+IGFzc2lnbihyZXN1bHQsIHN0b3JlLmdldFN0YXRlQXNPYmplY3QoKSksXG4gICAge31cbiAgKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRvbnMvcmVhY3RDb21wb25lbnRNZXRob2RzLmpzIl0sIm5hbWVzIjpbImluc3RhbmNlTWV0aG9kcyIsImdldENoaWxkQ29udGV4dCIsImZsdXgiLCJnZXRGbHV4IiwicHJvcHMiLCJjb250ZXh0IiwiaW5pdGlhbGl6ZSIsIl9mbHV4U3RhdGVHZXR0ZXJzIiwiX2ZsdXhMaXN0ZW5lcnMiLCJFcnJvciIsImNvbXBvbmVudFdpbGxVbm1vdW50Iiwia2V5IiwiaGFzT3duUHJvcGVydHkiLCJzdG9yZSIsImdldFN0b3JlIiwibGlzdGVuZXIiLCJyZW1vdmVMaXN0ZW5lciIsImNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMiLCJuZXh0UHJvcHMiLCJ1cGRhdGVTdG9yZXMiLCJzdGF0ZSIsImdldFN0b3JlU3RhdGUiLCJzZXRTdGF0ZSIsInJlZHVjZSIsInJlc3VsdCIsInN0YXRlR2V0dGVyIiwiZ2V0dGVyIiwic3RvcmVzIiwic3RhdGVGcm9tU3RvcmVzIiwiY29ubmVjdFRvU3RvcmVzIiwic3RhdGVHZXR0ZXJNYXAiLCJkZWZhdWx0U3RhdGVHZXR0ZXIiLCJwdXNoIiwiY3JlYXRlU3RvcmVMaXN0ZW5lciIsImFkZExpc3RlbmVyIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwiZGVmYXVsdFJlZHVjZVN0YXRlR2V0dGVyIiwiZm9yRWFjaCIsImluZGV4Iiwic3RhdGljUHJvcGVydGllcyIsImNvbnRleHRUeXBlcyIsImluc3RhbmNlT2YiLCJjaGlsZENvbnRleHRUeXBlcyIsInByb3BUeXBlcyIsIm9uZU9mVHlwZSIsInN0cmluZyIsImFycmF5T2YiLCJvYmplY3QiLCJyZW5kZXIiLCJmdW5jIiwiY29tcG9uZW50Iiwic3RvcmVTdGF0ZUdldHRlciIsImJpbmQiLCJnZXRTdGF0ZUFzT2JqZWN0Il0sIm1hcHBpbmdzIjoiOzs7OztBQWFBOzs7O0FBQ0E7Ozs7QUFDQTs7QUFDQTs7Ozs7O0FBaEJBOzs7Ozs7Ozs7Ozs7O0FBa0JBLElBQU1BLGtC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QUFOLEVBQVA7QUFDRDs7QUFFRCxTQUFTakIsd0JBQVQsQ0FBa0NYLE1BQWxDLEVBQTBDO0FBQ3hDLFNBQU9BLE9BQU9KLE1BQVAsQ0FDTCxVQUFDQyxNQUFELEVBQVNYLEtBQVQ7QUFBQSxXQUFtQiwrQkFBT1csTUFBUCxFQUFlWCxNQUFNMEMsZ0JBQU4sRUFBZixDQUFuQjtBQUFBLEdBREssRUFFTCxFQUZLLENBQVA7QUFJRCIsImZpbGUiOiJyZWFjdENvbXBvbmVudE1ldGhvZHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlYWN0IENvbXBvbmVudCBtZXRob2RzLiBUaGVzZSBhcmUgdGhlIHByaW1pdGl2ZXMgdXNlZCB0byBpbXBsZW1lbnRcbiAqIGZsdXhNaXhpbiBhbmQgRmx1eENvbXBvbmVudC5cbiAqXG4gKiBFeHBvc2VzIGEgRmx1eCBpbnN0YW5jZSBhcyBgdGhpcy5mbHV4YC4gVGhpcyByZXF1aXJlcyB0aGF0IGZsdXggYmUgcGFzc2VkIGFzXG4gKiBlaXRoZXIgY29udGV4dCBvciBhcyBhIHByb3AgKHByb3AgdGFrZXMgcHJlY2VkZW5jZSkuIENoaWxkcmVuIGFsc28gYXJlIGdpdmVuXG4gKiBhY2Nlc3MgdG8gZmx1eCBpbnN0YW5jZSBhcyBgY29udGV4dC5mbHV4YC5cbiAqXG4gKiBJdCBhbHNvIGFkZHMgdGhlIG1ldGhvZCBgY29ubmVjdFRvU3RvcmVzKClgLCB3aGljaCBlbnN1cmVzIHRoYXQgdGhlIGNvbXBvbmVudFxuICogc3RhdGUgc3RheXMgaW4gc3luYyB3aXRoIHRoZSBzcGVjaWZpZWQgRmx1eCBzdG9yZXMuIFNlZSB0aGUgaW5saW5lIGRvY3NcbiAqIG9mIGBjb25uZWN0VG9TdG9yZXNgIGZvciBkZXRhaWxzLlxuICovXG5cbmltcG9ydCB7IGRlZmF1bHQgYXMgUmVhY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgRmx1eCB9IGZyb20gJy4uL0ZsdXgnO1xuaW1wb3J0IGFzc2lnbiBmcm9tICdvYmplY3QtYXNzaWduJztcblxuY29uc3QgaW5zdGFuY2VNZXRob2RzID0ge1xuXG4gIGdldENoaWxkQ29udGV4dCgpIHtcbiAgICBjb25zdCBmbHV4ID0gdGhpcy5nZXRGbHV4KCk7XG5cbiAgICBpZiAoIWZsdXgpIHJldHVybiB7fTtcblxuICAgIHJldHVybiB7IGZsdXggfTtcbiAgfSxcblxuICBnZXRGbHV4KCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmZsdXggfHwgdGhpcy5jb250ZXh0LmZsdXg7XG4gIH0sXG5cbiAgaW5pdGlhbGl6ZSgpIHtcbiAgICB0aGlzLl9mbHV4U3RhdGVHZXR0ZXJzID0gW107XG4gICAgdGhpcy5fZmx1eExpc3RlbmVycyA9IHt9O1xuICAgIHRoaXMuZmx1eCA9IHRoaXMuZ2V0Rmx1eCgpO1xuXG4gICAgaWYgKCEodGhpcy5mbHV4IGluc3RhbmNlb2YgRmx1eCkpIHtcbiAgICAgIC8vIFRPRE86IHByaW50IHRoZSBhY3R1YWwgY2xhc3MgbmFtZSBoZXJlXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBmbHV4TWl4aW46IENvdWxkIG5vdCBmaW5kIEZsdXggaW5zdGFuY2UuIEVuc3VyZSB0aGF0IHlvdXIgY29tcG9uZW50IGBcbiAgICAgICsgYGhhcyBlaXRoZXIgXFxgdGhpcy5jb250ZXh0LmZsdXhcXGAgb3IgXFxgdGhpcy5wcm9wcy5mbHV4XFxgLmBcbiAgICAgICk7XG4gICAgfVxuICB9LFxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIGNvbnN0IGZsdXggPSB0aGlzLmdldEZsdXgoKTtcblxuICAgIGZvciAobGV0IGtleSBpbiB0aGlzLl9mbHV4TGlzdGVuZXJzKSB7XG4gICAgICBpZiAoIXRoaXMuX2ZsdXhMaXN0ZW5lcnMuaGFzT3duUHJvcGVydHkoa2V5KSkgY29udGludWU7XG5cbiAgICAgIGNvbnN0IHN0b3JlID0gZmx1eC5nZXRTdG9yZShrZXkpO1xuICAgICAgaWYgKHR5cGVvZiBzdG9yZSA9PT0gJ3VuZGVmaW5lZCcpIGNvbnRpbnVlO1xuXG4gICAgICBjb25zdCBsaXN0ZW5lciA9IHRoaXMuX2ZsdXhMaXN0ZW5lcnNba2V5XTtcblxuICAgICAgc3RvcmUucmVtb3ZlTGlzdGVuZXIoJ2NoYW5nZScsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH0sXG5cbiAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICB0aGlzLnVwZGF0ZVN0b3JlcyhuZXh0UHJvcHMpO1xuICB9LFxuXG4gIHVwZGF0ZVN0b3Jlcyhwcm9wcyA9IHRoaXMucHJvcHMpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZ2V0U3RvcmVTdGF0ZShwcm9wcyk7XG4gICAgdGhpcy5zZXRTdGF0ZShzdGF0ZSk7XG4gIH0sXG5cbiAgZ2V0U3RvcmVTdGF0ZShwcm9wcyA9IHRoaXMucHJvcHMpIHtcbiAgICByZXR1cm4gdGhpcy5fZmx1eFN0YXRlR2V0dGVycy5yZWR1Y2UoXG4gICAgICAocmVzdWx0LCBzdGF0ZUdldHRlcikgPT4ge1xuICAgICAgICBjb25zdCB7IGdldHRlciwgc3RvcmVzIH0gPSBzdGF0ZUdldHRlcjtcbiAgICAgICAgY29uc3Qgc3RhdGVGcm9tU3RvcmVzID0gZ2V0dGVyKHN0b3JlcywgcHJvcHMpO1xuICAgICAgICByZXR1cm4gYXNzaWduKHJlc3VsdCwgc3RhdGVGcm9tU3RvcmVzKTtcbiAgICAgIH0sIHt9XG4gICAgKTtcbiAgfSxcblxuICAgLyoqXG4gICAgKiBDb25uZWN0IGNvbXBvbmVudCB0byBzdG9yZXMsIGdldCB0aGUgY29tYmluZWQgaW5pdGlhbCBzdGF0ZSwgYW5kXG4gICAgKiBzdWJzY3JpYmUgdG8gZnV0dXJlIGNoYW5nZXMuIFRoZXJlIGFyZSB0aHJlZSB3YXlzIHRvIGNhbGwgaXQuIFRoZVxuICAgICogc2ltcGxlc3QgaXMgdG8gcGFzcyBhIHNpbmdsZSBzdG9yZSBrZXkgYW5kLCBvcHRpb25hbGx5LCBhIHN0YXRlIGdldHRlci5cbiAgICAqIFRoZSBzdGF0ZSBnZXR0ZXIgaXMgYSBmdW5jdGlvbiB0aGF0IHRha2VzIHRoZSBzdG9yZSBhcyBhIHBhcmFtZXRlciBhbmRcbiAgICAqIHJldHVybnMgdGhlIHN0YXRlIHRoYXQgc2hvdWxkIGJlIHBhc3NlZCB0byB0aGUgY29tcG9uZW50J3MgYHNldFN0YXRlKClgLlxuICAgICogSWYgbm8gc3RhdGUgZ2V0dGVyIGlzIHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgZ2V0dGVyIGlzIHVzZWQsIHdoaWNoIHNpbXBseVxuICAgICogcmV0dXJucyB0aGUgZW50aXJlIHN0b3JlIHN0YXRlLlxuICAgICpcbiAgICAqIFRoZSBzZWNvbmQgZm9ybSBhY2NlcHRzIGFuIGFycmF5IG9mIHN0b3JlIGtleXMuIFdpdGggdGhpcyBmb3JtLCB0aGUgc3RhdGVcbiAgICAqIGdldHRlciBpcyBjYWxsZWQgb25jZSB3aXRoIGFuIGFycmF5IG9mIHN0b3JlIGluc3RhbmNlcyAoaW4gdGhlIHNhbWUgb3JkZXJcbiAgICAqIGFzIHRoZSBzdG9yZSBrZXlzKS4gdGhlIGRlZmF1bHQgZ2V0dGVyIHBlcmZvcm1hbmNlIGEgcmVkdWNlIG9uIHRoZSBlbnRpcmVcbiAgICAqIHN0YXRlIGZvciBlYWNoIHN0b3JlLlxuICAgICpcbiAgICAqIFRoZSBsYXN0IGZvcm0gYWNjZXB0cyBhbiBvYmplY3Qgb2Ygc3RvcmUga2V5cyBtYXBwZWQgdG8gc3RhdGUgZ2V0dGVycy4gQXNcbiAgICAqIGEgc2hvcnRjdXQsIHlvdSBjYW4gcGFzcyBgbnVsbGAgYXMgYSBzdGF0ZSBnZXR0ZXIgdG8gdXNlIHRoZSBkZWZhdWx0XG4gICAgKiBzdGF0ZSBnZXR0ZXIuXG4gICAgKlxuICAgICogUmV0dXJucyB0aGUgY29tYmluZWQgaW5pdGlhbCBzdGF0ZSBvZiBhbGwgc3BlY2lmaWVkIHN0b3Jlcy5cbiAgICAqXG4gICAgKiBUaGlzIHdheSB5b3UgY2FuIHdyaXRlIGFsbCB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIHVwZGF0ZSBsb2dpYyBpbiBhIHNpbmdsZVxuICAgICogbG9jYXRpb24sIHdpdGhvdXQgaGF2aW5nIHRvIG1lc3Mgd2l0aCBhZGRpbmcvcmVtb3ZpbmcgbGlzdGVuZXJzLlxuICAgICpcbiAgICAqIEB0eXBlIHtzdHJpbmd8YXJyYXl8b2JqZWN0fSBzdGF0ZUdldHRlck1hcCAtIG1hcCBvZiBrZXlzIHRvIGdldHRlcnNcbiAgICAqIEByZXR1cm5zIHtvYmplY3R9IENvbWJpbmVkIGluaXRpYWwgc3RhdGUgb2Ygc3RvcmVzXG4gICAgKi9cbiAgY29ubmVjdFRvU3RvcmVzKHN0YXRlR2V0dGVyTWFwID0ge30sIHN0YXRlR2V0dGVyID0gbnVsbCkge1xuICAgIGNvbnN0IGZsdXggPSB0aGlzLmdldEZsdXgoKTtcblxuICAgIGNvbnN0IGdldFN0b3JlID0gKGtleSkgPT4ge1xuICAgICAgY29uc3Qgc3RvcmUgPSBmbHV4LmdldFN0b3JlKGtleSk7XG5cbiAgICAgIGlmICh0eXBlb2Ygc3RvcmUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgY29ubmVjdFRvU3RvcmVzKCk6IFN0b3JlIHdpdGgga2V5ICcke2tleX0nIGRvZXMgbm90IGV4aXN0LmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHN0b3JlO1xuICAgIH07XG5cbiAgICBpZiAodHlwZW9mIHN0YXRlR2V0dGVyTWFwID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3Qga2V5ID0gc3RhdGVHZXR0ZXJNYXA7XG4gICAgICBjb25zdCBzdG9yZSA9IGdldFN0b3JlKGtleSk7XG4gICAgICBjb25zdCBnZXR0ZXIgPSBzdGF0ZUdldHRlciB8fCBkZWZhdWx0U3RhdGVHZXR0ZXI7XG5cbiAgICAgIHRoaXMuX2ZsdXhTdGF0ZUdldHRlcnMucHVzaCh7IHN0b3Jlczogc3RvcmUsIGdldHRlciB9KTtcbiAgICAgIGNvbnN0IGxpc3RlbmVyID0gY3JlYXRlU3RvcmVMaXN0ZW5lcih0aGlzLCBzdG9yZSwgZ2V0dGVyKTtcblxuICAgICAgc3RvcmUuYWRkTGlzdGVuZXIoJ2NoYW5nZScsIGxpc3RlbmVyKTtcbiAgICAgIHRoaXMuX2ZsdXhMaXN0ZW5lcnNba2V5XSA9IGxpc3RlbmVyO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShzdGF0ZUdldHRlck1hcCkpIHtcbiAgICAgIGNvbnN0IHN0b3JlcyA9IHN0YXRlR2V0dGVyTWFwLm1hcChnZXRTdG9yZSk7XG4gICAgICBjb25zdCBnZXR0ZXIgPSBzdGF0ZUdldHRlciB8fCBkZWZhdWx0UmVkdWNlU3RhdGVHZXR0ZXI7XG5cbiAgICAgIHRoaXMuX2ZsdXhTdGF0ZUdldHRlcnMucHVzaCh7IHN0b3JlcywgZ2V0dGVyIH0pO1xuICAgICAgY29uc3QgbGlzdGVuZXIgPSBjcmVhdGVTdG9yZUxpc3RlbmVyKHRoaXMsIHN0b3JlcywgZ2V0dGVyKTtcblxuICAgICAgc3RhdGVHZXR0ZXJNYXAuZm9yRWFjaCgoa2V5LCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBzdG9yZSA9IHN0b3Jlc1tpbmRleF07XG4gICAgICAgIHN0b3JlLmFkZExpc3RlbmVyKCdjaGFuZ2UnLCBsaXN0ZW5lcik7XG4gICAgICAgIHRoaXMuX2ZsdXhMaXN0ZW5lcnNba2V5XSA9IGxpc3RlbmVyO1xuICAgICAgfSk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgIGZvciAobGV0IGtleSBpbiBzdGF0ZUdldHRlck1hcCkge1xuICAgICAgICBjb25zdCBzdG9yZSA9IGdldFN0b3JlKGtleSk7XG4gICAgICAgIGNvbnN0IGdldHRlciA9IHN0YXRlR2V0dGVyTWFwW2tleV0gfHwgZGVmYXVsdFN0YXRlR2V0dGVyO1xuXG4gICAgICAgIHRoaXMuX2ZsdXhTdGF0ZUdldHRlcnMucHVzaCh7IHN0b3Jlczogc3RvcmUsIGdldHRlciB9KTtcbiAgICAgICAgY29uc3QgbGlzdGVuZXIgPSBjcmVhdGVTdG9yZUxpc3RlbmVyKHRoaXMsIHN0b3JlLCBnZXR0ZXIpO1xuXG4gICAgICAgIHN0b3JlLmFkZExpc3RlbmVyKCdjaGFuZ2UnLCBsaXN0ZW5lcik7XG4gICAgICAgIHRoaXMuX2ZsdXhMaXN0ZW5lcnNba2V5XSA9IGxpc3RlbmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmdldFN0b3JlU3RhdGUoKTtcbiAgfVxuXG59O1xuXG5jb25zdCBzdGF0aWNQcm9wZXJ0aWVzID0ge1xuICBjb250ZXh0VHlwZXM6IHtcbiAgICBmbHV4OiBQcm9wVHlwZXMuaW5zdGFuY2VPZihGbHV4KSxcbiAgfSxcblxuICBjaGlsZENvbnRleHRUeXBlczoge1xuICAgIGZsdXg6IFByb3BUeXBlcy5pbnN0YW5jZU9mKEZsdXgpLFxuICB9LFxuXG4gIHByb3BUeXBlczoge1xuICAgIGNvbm5lY3RUb1N0b3JlczogUHJvcFR5cGVzLm9uZU9mVHlwZShbXG4gICAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICBQcm9wVHlwZXMub2JqZWN0XG4gICAgXSksXG4gICAgZmx1eDogUHJvcFR5cGVzLmluc3RhbmNlT2YoRmx1eCksXG4gICAgcmVuZGVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBzdGF0ZUdldHRlcjogUHJvcFR5cGVzLmZ1bmMsXG4gIH0sXG59O1xuXG5leHBvcnQgeyBpbnN0YW5jZU1ldGhvZHMsIHN0YXRpY1Byb3BlcnRpZXMgfTtcblxuZnVuY3Rpb24gY3JlYXRlU3RvcmVMaXN0ZW5lcihjb21wb25lbnQsIHN0b3JlLCBzdG9yZVN0YXRlR2V0dGVyKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHN0b3JlU3RhdGVHZXR0ZXIoc3RvcmUsIHRoaXMucHJvcHMpO1xuICAgIHRoaXMuc2V0U3RhdGUoc3RhdGUpO1xuICB9LmJpbmQoY29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdFN0YXRlR2V0dGVyKHN0b3JlKSB7XG4gIHJldHVybiBzdG9yZS5nZXRTdGF0ZUFzT2JqZWN0KCk7XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRSZWR1Y2VTdGF0ZUdldHRlcihzdG9yZXMpIHtcbiAgcmV0dXJuIHN0b3Jlcy5yZWR1Y2UoXG4gICAgKHJlc3VsdCwgc3RvcmUpID0+IGFzc2lnbihyZXN1bHQsIHN0b3JlLmdldFN0YXRlQXNPYmplY3QoKSksXG4gICAge31cbiAgKTtcbn1cbiJdfQ==

@@ -61,2 +61,2 @@ 'use strict';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRvbnMvVGVzdFV0aWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztRQUlnQixjQUFjLEdBQWQsY0FBYztRQW1CZCxtQkFBbUIsR0FBbkIsbUJBQW1COzs7OztBQW5CNUIsU0FBUyxjQUFjLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7QUFDbEQsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hDLE9BQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxRQUFRLEVBQVIsUUFBUSxFQUFFLElBQUksRUFBSixJQUFJLEVBQUUsQ0FBQyxDQUFDO0NBQ25DOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsQUFnQk0sU0FBUyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBVztBQUN2RSxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDeEMsTUFBTSxPQUFPLEdBQUc7QUFDZCxZQUFRLEVBQVIsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXO0dBQzdCLENBQUM7O29DQUorRCxJQUFJO0FBQUosUUFBSTs7O0FBTXJFLFVBQU8sV0FBVztBQUNoQixTQUFLLE9BQU87QUFDVixVQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7QUFDZixlQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztPQUMzQjtBQUNELFlBQU07QUFBQSxBQUNSLFNBQUssU0FBUztBQUNaLGFBQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLFlBQU07QUFBQSxBQUNSLFNBQUssU0FBUztBQUNaLGFBQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLFlBQU07QUFBQSxBQUNSO0FBQ0UsWUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0FBQUEsR0FDNUU7O0FBRUQsT0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztDQUN4Qjs7QUFFRCxTQUFTLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRTtBQUN4QyxTQUFPLE9BQU8sZ0JBQWdCLEtBQUssVUFBVSxHQUN6QyxnQkFBZ0IsQ0FBQyxHQUFHLEdBQ3BCLGdCQUFnQixDQUFDO0NBQ3RCIiwiZmlsZSI6IlRlc3RVdGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVXNlZCBmb3Igc2ltdWxhdGluZyBhY3Rpb25zIG9uIHN0b3JlcyB3aGVuIHRlc3RpbmcuXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2ltdWxhdGVBY3Rpb24oc3RvcmUsIGFjdGlvbiwgYm9keSkge1xuICBjb25zdCBhY3Rpb25JZCA9IGVuc3VyZUFjdGlvbklkKGFjdGlvbik7XG4gIHN0b3JlLmhhbmRsZXIoeyBhY3Rpb25JZCwgYm9keSB9KTtcbn1cblxuLyoqXG4gKiBVc2VkIGZvciBzaW11bGF0aW5nIGFzeW5jaHJvbm91cyBhY3Rpb25zIG9uIHN0b3JlcyB3aGVuIHRlc3RpbmcuXG4gKlxuICogYXN5bmNBY3Rpb24gbXVzdCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzogYmVnaW4sIHN1Y2Nlc3Mgb3IgZmFpbHVyZS5cbiAqXG4gKiBXaGVuIHNpbXVsYXRpbmcgdGhlICdiZWdpbicgYWN0aW9uLCBhbGwgYXJndW1lbnRzIGFmdGVyICdiZWdpbicgd2lsbFxuICogYmUgcGFzc2VkIHRvIHRoZSBhY3Rpb24gaGFuZGxlciBpbiB0aGUgc3RvcmUuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBUZXN0VXRpbHMuc2ltdWxhdGVBY3Rpb25Bc3luYyhzdG9yZSwgJ2FjdGlvbklkJywgJ2JlZ2luJywgJ2FyZzEnLCAnYXJnMicpO1xuICogVGVzdFV0aWxzLnNpbXVsYXRlQWN0aW9uQXN5bmMoc3RvcmUsICdhY3Rpb25JZCcsICdzdWNjZXNzJywgeyBmb286ICdiYXInIH0pO1xuICogVGVzdFV0aWxzLnNpbXVsYXRlQWN0aW9uQXN5bmMoc3RvcmUsICdhY3Rpb25JZCcsICdmYWlsdXJlJywgbmV3IEVycm9yKCdhY3Rpb24gZmFpbGVkJykpO1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2ltdWxhdGVBY3Rpb25Bc3luYyhzdG9yZSwgYWN0aW9uLCBhc3luY0FjdGlvbiwgLi4uYXJncykge1xuICBjb25zdCBhY3Rpb25JZCA9IGVuc3VyZUFjdGlvbklkKGFjdGlvbik7XG4gIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgYWN0aW9uSWQsIGFzeW5jOiBhc3luY0FjdGlvblxuICB9O1xuXG4gIHN3aXRjaChhc3luY0FjdGlvbikge1xuICAgIGNhc2UgJ2JlZ2luJzpcbiAgICAgIGlmIChhcmdzLmxlbmd0aCkge1xuICAgICAgICBwYXlsb2FkLmFjdGlvbkFyZ3MgPSBhcmdzO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICBwYXlsb2FkLmJvZHkgPSBhcmdzWzBdO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZmFpbHVyZSc6XG4gICAgICBwYXlsb2FkLmVycm9yID0gYXJnc1swXTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FzeW5jQWN0aW9uIG11c3QgYmUgb25lIG9mOiBiZWdpbiwgc3VjY2VzcyBvciBmYWlsdXJlJyk7XG4gIH1cblxuICBzdG9yZS5oYW5kbGVyKHBheWxvYWQpO1xufVxuXG5mdW5jdGlvbiBlbnN1cmVBY3Rpb25JZChhY3Rpb25PckFjdGlvbklkKSB7XG4gIHJldHVybiB0eXBlb2YgYWN0aW9uT3JBY3Rpb25JZCA9PT0gJ2Z1bmN0aW9uJ1xuICAgID8gYWN0aW9uT3JBY3Rpb25JZC5faWRcbiAgICA6IGFjdGlvbk9yQWN0aW9uSWQ7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRvbnMvVGVzdFV0aWxzLmpzIl0sIm5hbWVzIjpbInNpbXVsYXRlQWN0aW9uIiwic2ltdWxhdGVBY3Rpb25Bc3luYyIsInN0b3JlIiwiYWN0aW9uIiwiYm9keSIsImFjdGlvbklkIiwiZW5zdXJlQWN0aW9uSWQiLCJoYW5kbGVyIiwiYXN5bmNBY3Rpb24iLCJwYXlsb2FkIiwiYXN5bmMiLCJhcmdzIiwibGVuZ3RoIiwiYWN0aW9uQXJncyIsImVycm9yIiwiRXJyb3IiLCJhY3Rpb25PckFjdGlvbklkIiwiX2lkIl0sIm1hcHBpbmdzIjoiOzs7UUFJZ0JBLGMsR0FBQUEsYztRQW1CQUMsbUIsR0FBQUEsbUI7QUF2QmhCOzs7O0FBSU8sU0FBU0QsY0FBVCxDQUF3QkUsS0FBeEIsRUFBK0JDLE1BQS9CLEVBQXVDQyxJQUF2QyxFQUE2QztBQUNsRCxNQUFNQyxXQUFXQyxlQUFlSCxNQUFmLENBQWpCO0FBQ0FELFFBQU1LLE9BQU4sQ0FBYyxFQUFFRixrQkFBRixFQUFZRCxVQUFaLEVBQWQ7QUFDRDs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7QUFjTyxTQUFTSCxtQkFBVCxDQUE2QkMsS0FBN0IsRUFBb0NDLE1BQXBDLEVBQTRDSyxXQUE1QyxFQUFrRTtBQUN2RSxNQUFNSCxXQUFXQyxlQUFlSCxNQUFmLENBQWpCO0FBQ0EsTUFBTU0sVUFBVTtBQUNkSixzQkFEYyxFQUNKSyxPQUFPRjtBQURILEdBQWhCOztBQUZ1RSxvQ0FBTkcsSUFBTTtBQUFOQSxRQUFNO0FBQUE7O0FBTXZFLFVBQU9ILFdBQVA7QUFDRSxTQUFLLE9BQUw7QUFDRSxVQUFJRyxLQUFLQyxNQUFULEVBQWlCO0FBQ2ZILGdCQUFRSSxVQUFSLEdBQXFCRixJQUFyQjtBQUNEO0FBQ0Q7QUFDRixTQUFLLFNBQUw7QUFDRUYsY0FBUUwsSUFBUixHQUFlTyxLQUFLLENBQUwsQ0FBZjtBQUNBO0FBQ0YsU0FBSyxTQUFMO0FBQ0VGLGNBQVFLLEtBQVIsR0FBZ0JILEtBQUssQ0FBTCxDQUFoQjtBQUNBO0FBQ0Y7QUFDRSxZQUFNLElBQUlJLEtBQUosQ0FBVSx1REFBVixDQUFOO0FBYko7O0FBZ0JBYixRQUFNSyxPQUFOLENBQWNFLE9BQWQ7QUFDRDs7QUFFRCxTQUFTSCxjQUFULENBQXdCVSxnQkFBeEIsRUFBMEM7QUFDeEMsU0FBTyxPQUFPQSxnQkFBUCxLQUE0QixVQUE1QixHQUNIQSxpQkFBaUJDLEdBRGQsR0FFSEQsZ0JBRko7QUFHRCIsImZpbGUiOiJUZXN0VXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFVzZWQgZm9yIHNpbXVsYXRpbmcgYWN0aW9ucyBvbiBzdG9yZXMgd2hlbiB0ZXN0aW5nLlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpbXVsYXRlQWN0aW9uKHN0b3JlLCBhY3Rpb24sIGJvZHkpIHtcbiAgY29uc3QgYWN0aW9uSWQgPSBlbnN1cmVBY3Rpb25JZChhY3Rpb24pO1xuICBzdG9yZS5oYW5kbGVyKHsgYWN0aW9uSWQsIGJvZHkgfSk7XG59XG5cbi8qKlxuICogVXNlZCBmb3Igc2ltdWxhdGluZyBhc3luY2hyb25vdXMgYWN0aW9ucyBvbiBzdG9yZXMgd2hlbiB0ZXN0aW5nLlxuICpcbiAqIGFzeW5jQWN0aW9uIG11c3QgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6IGJlZ2luLCBzdWNjZXNzIG9yIGZhaWx1cmUuXG4gKlxuICogV2hlbiBzaW11bGF0aW5nIHRoZSAnYmVnaW4nIGFjdGlvbiwgYWxsIGFyZ3VtZW50cyBhZnRlciAnYmVnaW4nIHdpbGxcbiAqIGJlIHBhc3NlZCB0byB0aGUgYWN0aW9uIGhhbmRsZXIgaW4gdGhlIHN0b3JlLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogVGVzdFV0aWxzLnNpbXVsYXRlQWN0aW9uQXN5bmMoc3RvcmUsICdhY3Rpb25JZCcsICdiZWdpbicsICdhcmcxJywgJ2FyZzInKTtcbiAqIFRlc3RVdGlscy5zaW11bGF0ZUFjdGlvbkFzeW5jKHN0b3JlLCAnYWN0aW9uSWQnLCAnc3VjY2VzcycsIHsgZm9vOiAnYmFyJyB9KTtcbiAqIFRlc3RVdGlscy5zaW11bGF0ZUFjdGlvbkFzeW5jKHN0b3JlLCAnYWN0aW9uSWQnLCAnZmFpbHVyZScsIG5ldyBFcnJvcignYWN0aW9uIGZhaWxlZCcpKTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpbXVsYXRlQWN0aW9uQXN5bmMoc3RvcmUsIGFjdGlvbiwgYXN5bmNBY3Rpb24sIC4uLmFyZ3MpIHtcbiAgY29uc3QgYWN0aW9uSWQgPSBlbnN1cmVBY3Rpb25JZChhY3Rpb24pO1xuICBjb25zdCBwYXlsb2FkID0ge1xuICAgIGFjdGlvbklkLCBhc3luYzogYXN5bmNBY3Rpb25cbiAgfTtcblxuICBzd2l0Y2goYXN5bmNBY3Rpb24pIHtcbiAgICBjYXNlICdiZWdpbic6XG4gICAgICBpZiAoYXJncy5sZW5ndGgpIHtcbiAgICAgICAgcGF5bG9hZC5hY3Rpb25BcmdzID0gYXJncztcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgcGF5bG9hZC5ib2R5ID0gYXJnc1swXTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2ZhaWx1cmUnOlxuICAgICAgcGF5bG9hZC5lcnJvciA9IGFyZ3NbMF07XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhc3luY0FjdGlvbiBtdXN0IGJlIG9uZSBvZjogYmVnaW4sIHN1Y2Nlc3Mgb3IgZmFpbHVyZScpO1xuICB9XG5cbiAgc3RvcmUuaGFuZGxlcihwYXlsb2FkKTtcbn1cblxuZnVuY3Rpb24gZW5zdXJlQWN0aW9uSWQoYWN0aW9uT3JBY3Rpb25JZCkge1xuICByZXR1cm4gdHlwZW9mIGFjdGlvbk9yQWN0aW9uSWQgPT09ICdmdW5jdGlvbidcbiAgICA/IGFjdGlvbk9yQWN0aW9uSWQuX2lkXG4gICAgOiBhY3Rpb25PckFjdGlvbklkO1xufVxuIl19

@@ -6,2 +6,4 @@ 'use strict';

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _Store2 = require('./Store');

@@ -27,4 +29,2 @@

function _typeof(obj) { return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

@@ -40,3 +40,3 @@

var Flux = (function (_EventEmitter) {
var Flux = function (_EventEmitter) {
_inherits(Flux, _EventEmitter);

@@ -106,7 +106,7 @@

var properties = _Actions;
_Actions = (function (_Actions2) {
_inherits(_class, _Actions2);
_Actions = function (_Actions2) {
_inherits(_Actions, _Actions2);
function _class() {
_classCallCheck(this, _class);
function _Actions() {
_classCallCheck(this, _Actions);

@@ -116,5 +116,5 @@ return _possibleConstructorReturn(this, _Actions2.apply(this, arguments));

return _class;
})(_Actions4['default']);
(0, _objectAssign2.default)(_Actions.prototype, properties);
return _Actions;
}(_Actions4['default']);
(0, _objectAssign2['default'])(_Actions.prototype, properties);
}

@@ -247,7 +247,7 @@ }

var _serialize = store.constructor.serialize;
var serialize = store.constructor.serialize;
if (typeof _serialize !== 'function') continue;
if (typeof serialize !== 'function') continue;
var serializedStoreState = _serialize(store.state);
var serializedStoreState = serialize(store.state);

@@ -265,6 +265,6 @@ if (typeof serializedStoreState !== 'string') {

if (typeof store.constructor.deserialize !== 'function') {
var className = store.constructor.name;
var _className = store.constructor.name;
if (process.env.NODE_ENV !== 'production') {
console.warn('The class `' + className + '` has a `serialize()` method, but no ' + 'corresponding `deserialize()` method.');
console.warn('The class `' + _className + '` has a `serialize()` method, but no ' + 'corresponding `deserialize()` method.');
}

@@ -278,3 +278,3 @@ }

Flux.prototype.deserialize = function deserialize(serializedState) {
var stateMap = undefined;
var stateMap = void 0;

@@ -296,8 +296,8 @@ try {

var _deserialize = store.constructor.deserialize;
var deserialize = store.constructor.deserialize;
if (typeof _deserialize !== 'function') continue;
if (typeof deserialize !== 'function') continue;
var storeStateString = stateMap[key];
var storeState = _deserialize(storeStateString);
var storeState = deserialize(storeStateString);

@@ -307,6 +307,6 @@ store.replaceState(storeState);

if (typeof store.constructor.serialize !== 'function') {
var className = store.constructor.name;
var _className2 = store.constructor.name;
if (process.env.NODE_ENV !== 'production') {
console.warn('The class `' + className + '` has a `deserialize()` method, but no ' + 'corresponding `serialize()` method.');
console.warn('The class `' + _className2 + '` has a `deserialize()` method, but no ' + 'corresponding `serialize()` method.');
}

@@ -318,7 +318,8 @@ }

return Flux;
})(_eventemitter2.default);
}(_eventemitter2['default']);
// Aliases
exports.default = Flux;
exports['default'] = Flux;
Flux.prototype.getConstants = Flux.prototype.getActionIds;

@@ -351,2 +352,2 @@ Flux.prototype.getAllConstants = Flux.prototype.getAllActionIds;

exports.Actions = _Actions4['default'];
//# sourceMappingURL=data:application/json;base64,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UyxTQUFTLENBQUMsTUFBTSxFQUFFO0FBQ3pCLE1BQUksTUFBTSxHQUFHLEVBQUUsQ0FBQzs7QUFFaEIsT0FBSyxJQUFJLEdBQUcsSUFBSSxNQUFNLEVBQUU7QUFDdEIsUUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUzs7QUFFMUMsVUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztHQUMxQjs7QUFFRCxTQUFPLE1BQU0sQ0FBQztDQUNmOztBQUVELElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQzs7UUFHbkIsSUFBSSxHQUFKLElBQUk7UUFDSixPQUFPLEdBQVAsT0FBTztRQUNQLEtBQUs7UUFDTCxPQUFPIiwiZmlsZSI6IkZsdXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZsdXhcbiAqXG4gKiBUaGUgbWFpbiBGbHV4IGNsYXNzLlxuICovXG5cbmltcG9ydCBTdG9yZSBmcm9tICcuL1N0b3JlJztcbmltcG9ydCBBY3Rpb25zIGZyb20gJy4vQWN0aW9ucyc7XG5pbXBvcnQgeyBEaXNwYXRjaGVyIH0gZnJvbSAnZmx1eCc7XG5pbXBvcnQgRXZlbnRFbWl0dGVyIGZyb20gJ2V2ZW50ZW1pdHRlcjMnO1xuaW1wb3J0IGFzc2lnbiBmcm9tICdvYmplY3QtYXNzaWduJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmx1eCBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuZGlzcGF0Y2hlciA9IG5ldyBEaXNwYXRjaGVyKCk7XG5cbiAgICB0aGlzLl9zdG9yZXMgPSB7fTtcbiAgICB0aGlzLl9hY3Rpb25zID0ge307XG4gIH1cblxuICBjcmVhdGVTdG9yZShrZXksIF9TdG9yZSwgLi4uY29uc3RydWN0b3JBcmdzKSB7XG5cbiAgICBpZiAoIShfU3RvcmUucHJvdG90eXBlIGluc3RhbmNlb2YgU3RvcmUpKSB7XG4gICAgICBjb25zdCBjbGFzc05hbWUgPSBnZXRDbGFzc05hbWUoX1N0b3JlKTtcblxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgWW91J3ZlIGF0dGVtcHRlZCB0byBjcmVhdGUgYSBzdG9yZSBmcm9tIHRoZSBjbGFzcyAke2NsYXNzTmFtZX0sIHdoaWNoIGBcbiAgICAgICsgYGRvZXMgbm90IGhhdmUgdGhlIGJhc2UgU3RvcmUgY2xhc3MgaW4gaXRzIHByb3RvdHlwZSBjaGFpbi4gTWFrZSBzdXJlIGBcbiAgICAgICsgYHlvdSdyZSB1c2luZyB0aGUgXFxgZXh0ZW5kc1xcYCBrZXl3b3JkOiBcXGBjbGFzcyAke2NsYXNzTmFtZX0gZXh0ZW5kcyBgXG4gICAgICArIGBTdG9yZSB7IC4uLiB9XFxgYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fc3RvcmVzLmhhc093blByb3BlcnR5KGtleSkgJiYgdGhpcy5fc3RvcmVzW2tleV0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFlvdSd2ZSBhdHRlbXB0ZWQgdG8gY3JlYXRlIG11bHRpcGxlIHN0b3JlcyB3aXRoIGtleSAke2tleX0uIEtleXMgbXVzdCBgXG4gICAgICArIGBiZSB1bmlxdWUuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdG9yZSA9IG5ldyBfU3RvcmUoLi4uY29uc3RydWN0b3JBcmdzKTtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMuZGlzcGF0Y2hlci5yZWdpc3RlcihzdG9yZS5oYW5kbGVyLmJpbmQoc3RvcmUpKTtcblxuICAgIHN0b3JlLl93YWl0Rm9yID0gdGhpcy53YWl0Rm9yLmJpbmQodGhpcyk7XG4gICAgc3RvcmUuX3Rva2VuID0gdG9rZW47XG4gICAgc3RvcmUuX2dldEFsbEFjdGlvbklkcyA9IHRoaXMuZ2V0QWxsQWN0aW9uSWRzLmJpbmQodGhpcyk7XG5cbiAgICB0aGlzLl9zdG9yZXNba2V5XSA9IHN0b3JlO1xuXG4gICAgcmV0dXJuIHN0b3JlO1xuICB9XG5cbiAgZ2V0U3RvcmUoa2V5KSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3Jlcy5oYXNPd25Qcm9wZXJ0eShrZXkpID8gdGhpcy5fc3RvcmVzW2tleV0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICByZW1vdmVTdG9yZShrZXkpIHtcbiAgICBpZiAodGhpcy5fc3RvcmVzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIHRoaXMuX3N0b3Jlc1trZXldLnJlbW92ZUFsbExpc3RlbmVycygpO1xuICAgICAgdGhpcy5kaXNwYXRjaGVyLnVucmVnaXN0ZXIodGhpcy5fc3RvcmVzW2tleV0uX3Rva2VuKTtcbiAgICAgIGRlbGV0ZSB0aGlzLl9zdG9yZXNba2V5XTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgWW91J3ZlIGF0dGVtcHRlZCB0byByZW1vdmUgc3RvcmUgd2l0aCBrZXkgJHtrZXl9IHdoaWNoIGRvZXMgbm90IGV4aXN0LmBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlQWN0aW9ucyhrZXksIF9BY3Rpb25zLCAuLi5jb25zdHJ1Y3RvckFyZ3MpIHtcbiAgICBpZiAoIShfQWN0aW9ucy5wcm90b3R5cGUgaW5zdGFuY2VvZiBBY3Rpb25zKSAmJiBfQWN0aW9ucyAhPT0gQWN0aW9ucykge1xuICAgICAgaWYgKHR5cGVvZiBfQWN0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBnZXRDbGFzc05hbWUoX0FjdGlvbnMpO1xuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgWW91J3ZlIGF0dGVtcHRlZCB0byBjcmVhdGUgYWN0aW9ucyBmcm9tIHRoZSBjbGFzcyAke2NsYXNzTmFtZX0sIHdoaWNoIGBcbiAgICAgICAgKyBgZG9lcyBub3QgaGF2ZSB0aGUgYmFzZSBBY3Rpb25zIGNsYXNzIGluIGl0cyBwcm90b3R5cGUgY2hhaW4uIE1ha2UgYFxuICAgICAgICArIGBzdXJlIHlvdSdyZSB1c2luZyB0aGUgXFxgZXh0ZW5kc1xcYCBrZXl3b3JkOiBcXGBjbGFzcyAke2NsYXNzTmFtZX0gYFxuICAgICAgICArIGBleHRlbmRzIEFjdGlvbnMgeyAuLi4gfVxcYGBcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBfQWN0aW9ucztcbiAgICAgICAgX0FjdGlvbnMgPSBjbGFzcyBleHRlbmRzIEFjdGlvbnMge307XG4gICAgICAgIGFzc2lnbihfQWN0aW9ucy5wcm90b3R5cGUsIHByb3BlcnRpZXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9hY3Rpb25zLmhhc093blByb3BlcnR5KGtleSkgJiYgdGhpcy5fYWN0aW9uc1trZXldKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBZb3UndmUgYXR0ZW1wdGVkIHRvIGNyZWF0ZSBtdWx0aXBsZSBhY3Rpb25zIHdpdGgga2V5ICR7a2V5fS4gS2V5cyBgXG4gICAgICArIGBtdXN0IGJlIHVuaXF1ZS5gXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGFjdGlvbnMgPSBuZXcgX0FjdGlvbnMoLi4uY29uc3RydWN0b3JBcmdzKTtcbiAgICBhY3Rpb25zLmRpc3BhdGNoID0gdGhpcy5kaXNwYXRjaC5iaW5kKHRoaXMpO1xuICAgIGFjdGlvbnMuZGlzcGF0Y2hBc3luYyA9IHRoaXMuZGlzcGF0Y2hBc3luYy5iaW5kKHRoaXMpO1xuXG4gICAgdGhpcy5fYWN0aW9uc1trZXldID0gYWN0aW9ucztcblxuICAgIHJldHVybiBhY3Rpb25zO1xuICB9XG5cbiAgZ2V0QWN0aW9ucyhrZXkpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9ucy5oYXNPd25Qcm9wZXJ0eShrZXkpID8gdGhpcy5fYWN0aW9uc1trZXldIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0QWN0aW9uSWRzKGtleSkge1xuICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLmdldEFjdGlvbnMoa2V5KTtcblxuICAgIGlmICghYWN0aW9ucykgcmV0dXJuO1xuXG4gICAgcmV0dXJuIGFjdGlvbnMuZ2V0Q29uc3RhbnRzKCk7XG4gIH1cblxuICByZW1vdmVBY3Rpb25zKGtleSkge1xuICAgIGlmICh0aGlzLl9hY3Rpb25zLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLl9hY3Rpb25zW2tleV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFlvdSd2ZSBhdHRlbXB0ZWQgdG8gcmVtb3ZlIGFjdGlvbnMgd2l0aCBrZXkgJHtrZXl9IHdoaWNoIGRvZXMgbm90IGV4aXN0LmBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgZ2V0QWxsQWN0aW9uSWRzKCkge1xuICAgIGxldCBhY3Rpb25JZHMgPSBbXTtcblxuICAgIGZvciAobGV0IGtleSBpbiB0aGlzLl9hY3Rpb25zKSB7XG4gICAgICBpZiAoIXRoaXMuX2FjdGlvbnMuaGFzT3duUHJvcGVydHkoa2V5KSkgY29udGludWU7XG5cbiAgICAgIGNvbnN0IGFjdGlvbkNvbnN0YW50cyA9IHRoaXMuX2FjdGlvbnNba2V5XS5nZXRDb25zdGFudHMoKTtcblxuICAgICAgYWN0aW9uSWRzID0gYWN0aW9uSWRzLmNvbmNhdChnZXRWYWx1ZXMoYWN0aW9uQ29uc3RhbnRzKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjdGlvbklkcztcbiAgfVxuXG4gIGRpc3BhdGNoKGFjdGlvbklkLCBib2R5KSB7XG4gICAgdGhpcy5fZGlzcGF0Y2goeyBhY3Rpb25JZCwgYm9keSB9KTtcbiAgfVxuXG4gIGRpc3BhdGNoQXN5bmMoYWN0aW9uSWQsIHByb21pc2UsIGFjdGlvbkFyZ3MpIHtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgYWN0aW9uSWQsXG4gICAgICBhc3luYzogJ2JlZ2luJ1xuICAgIH07XG5cbiAgICBpZiAoYWN0aW9uQXJncykgcGF5bG9hZC5hY3Rpb25BcmdzID0gYWN0aW9uQXJncztcblxuICAgIHRoaXMuX2Rpc3BhdGNoKHBheWxvYWQpO1xuXG4gICAgcmV0dXJuIHByb21pc2VcbiAgICAgIC50aGVuKFxuICAgICAgICBib2R5ID0+IHtcbiAgICAgICAgICB0aGlzLl9kaXNwYXRjaCh7XG4gICAgICAgICAgICBhY3Rpb25JZCxcbiAgICAgICAgICAgIGJvZHksXG4gICAgICAgICAgICBhc3luYzogJ3N1Y2Nlc3MnXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXR1cm4gYm9keTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoKHtcbiAgICAgICAgICAgIGFjdGlvbklkLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBhc3luYzogJ2ZhaWx1cmUnXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuZW1pdCgnZXJyb3InLCBlcnJvcik7XG5cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgfVxuXG4gIF9kaXNwYXRjaChwYXlsb2FkKSB7XG4gICAgdGhpcy5kaXNwYXRjaGVyLmRpc3BhdGNoKHBheWxvYWQpO1xuICAgIHRoaXMuZW1pdCgnZGlzcGF0Y2gnLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHdhaXRGb3IodG9rZW5zT3JTdG9yZXMpIHtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0b2tlbnNPclN0b3JlcykpIHRva2Vuc09yU3RvcmVzID0gW3Rva2Vuc09yU3RvcmVzXTtcblxuICAgIGNvbnN0IGVuc3VyZUlzVG9rZW4gPSB0b2tlbk9yU3RvcmUgPT4ge1xuICAgICAgcmV0dXJuIHRva2VuT3JTdG9yZSBpbnN0YW5jZW9mIFN0b3JlXG4gICAgICAgID8gdG9rZW5PclN0b3JlLl90b2tlblxuICAgICAgICA6IHRva2VuT3JTdG9yZTtcbiAgICB9O1xuXG4gICAgY29uc3QgdG9rZW5zID0gdG9rZW5zT3JTdG9yZXMubWFwKGVuc3VyZUlzVG9rZW4pO1xuXG4gICAgdGhpcy5kaXNwYXRjaGVyLndhaXRGb3IodG9rZW5zKTtcbiAgfVxuXG4gIHJlbW92ZUFsbFN0b3JlTGlzdGVuZXJzKGV2ZW50KSB7XG4gICAgZm9yIChsZXQga2V5IGluIHRoaXMuX3N0b3Jlcykge1xuICAgICAgaWYgKCF0aGlzLl9zdG9yZXMuaGFzT3duUHJvcGVydHkoa2V5KSkgY29udGludWU7XG5cbiAgICAgIGNvbnN0IHN0b3JlID0gdGhpcy5fc3RvcmVzW2tleV07XG5cbiAgICAgIHN0b3JlLnJlbW92ZUFsbExpc3RlbmVycyhldmVudCk7XG4gICAgfVxuICB9XG5cbiAgc2VyaWFsaXplKCkge1xuICAgIGNvbnN0IHN0YXRlVHJlZSA9IHt9O1xuXG4gICAgZm9yIChsZXQga2V5IGluIHRoaXMuX3N0b3Jlcykge1xuICAgICAgaWYgKCF0aGlzLl9zdG9yZXMuaGFzT3duUHJvcGVydHkoa2V5KSkgY29udGludWU7XG5cbiAgICAgIGNvbnN0IHN0b3JlID0gdGhpcy5fc3RvcmVzW2tleV07XG5cbiAgICAgIGNvbnN0IHNlcmlhbGl6ZSA9IHN0b3JlLmNvbnN0cnVjdG9yLnNlcmlhbGl6ZTtcblxuICAgICAgaWYgKHR5cGVvZiBzZXJpYWxpemUgIT09ICdmdW5jdGlvbicpIGNvbnRpbnVlO1xuXG4gICAgICBjb25zdCBzZXJpYWxpemVkU3RvcmVTdGF0ZSA9IHNlcmlhbGl6ZShzdG9yZS5zdGF0ZSk7XG5cbiAgICAgIGlmICh0eXBlb2Ygc2VyaWFsaXplZFN0b3JlU3RhdGUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IHN0b3JlLmNvbnN0cnVjdG9yLm5hbWU7XG5cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgVGhlIHN0b3JlIHdpdGgga2V5ICcke2tleX0nIHdhcyBub3Qgc2VyaWFsaXplZCBiZWNhdXNlIHRoZSBzdGF0aWMgYFxuICAgICAgICAgICsgYG1ldGhvZCBcXGAke2NsYXNzTmFtZX0uc2VyaWFsaXplKClcXGAgcmV0dXJuZWQgYSBub24tc3RyaW5nIHdpdGggdHlwZSBgXG4gICAgICAgICAgKyBgJyR7dHlwZW9mIHNlcmlhbGl6ZWRTdG9yZVN0YXRlfScuYFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3RhdGVUcmVlW2tleV0gPSBzZXJpYWxpemVkU3RvcmVTdGF0ZTtcblxuICAgICAgaWYgKHR5cGVvZiBzdG9yZS5jb25zdHJ1Y3Rvci5kZXNlcmlhbGl6ZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBzdG9yZS5jb25zdHJ1Y3Rvci5uYW1lO1xuXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFRoZSBjbGFzcyBcXGAke2NsYXNzTmFtZX1cXGAgaGFzIGEgXFxgc2VyaWFsaXplKClcXGAgbWV0aG9kLCBidXQgbm8gYFxuICAgICAgICAgICsgYGNvcnJlc3BvbmRpbmcgXFxgZGVzZXJpYWxpemUoKVxcYCBtZXRob2QuYFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cblxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShzdGF0ZVRyZWUpO1xuICB9XG5cbiAgZGVzZXJpYWxpemUoc2VyaWFsaXplZFN0YXRlKSB7XG4gICAgbGV0IHN0YXRlTWFwO1xuXG4gICAgdHJ5IHtcbiAgICAgIHN0YXRlTWFwID0gSlNPTi5wYXJzZShzZXJpYWxpemVkU3RhdGUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBjbGFzc05hbWUgPSB0aGlzLmNvbnN0cnVjdG9yLm5hbWU7XG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCB2YWx1ZSBwYXNzZWQgdG8gXFxgJHtjbGFzc05hbWV9I2Rlc2VyaWFsaXplKClcXGA6IGBcbiAgICAgICAgKyBgJHtzZXJpYWxpemVkU3RhdGV9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAobGV0IGtleSBpbiB0aGlzLl9zdG9yZXMpIHtcbiAgICAgIGlmICghdGhpcy5fc3RvcmVzLmhhc093blByb3BlcnR5KGtleSkpIGNvbnRpbnVlO1xuXG4gICAgICBjb25zdCBzdG9yZSA9IHRoaXMuX3N0b3Jlc1trZXldO1xuXG4gICAgICBjb25zdCBkZXNlcmlhbGl6ZSA9IHN0b3JlLmNvbnN0cnVjdG9yLmRlc2VyaWFsaXplO1xuXG4gICAgICBpZiAodHlwZW9mIGRlc2VyaWFsaXplICE9PSAnZnVuY3Rpb24nKSBjb250aW51ZTtcblxuICAgICAgY29uc3Qgc3RvcmVTdGF0ZVN0cmluZyA9IHN0YXRlTWFwW2tleV07XG4gICAgICBjb25zdCBzdG9yZVN0YXRlID0gZGVzZXJpYWxpemUoc3RvcmVTdGF0ZVN0cmluZyk7XG5cbiAgICAgIHN0b3JlLnJlcGxhY2VTdGF0ZShzdG9yZVN0YXRlKTtcblxuICAgICAgaWYgKHR5cGVvZiBzdG9yZS5jb25zdHJ1Y3Rvci5zZXJpYWxpemUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gc3RvcmUuY29uc3RydWN0b3IubmFtZTtcblxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBUaGUgY2xhc3MgXFxgJHtjbGFzc05hbWV9XFxgIGhhcyBhIFxcYGRlc2VyaWFsaXplKClcXGAgbWV0aG9kLCBidXQgbm8gYFxuICAgICAgICAgICsgYGNvcnJlc3BvbmRpbmcgXFxgc2VyaWFsaXplKClcXGAgbWV0aG9kLmBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuLy8gQWxpYXNlc1xuRmx1eC5wcm90b3R5cGUuZ2V0Q29uc3RhbnRzID0gRmx1eC5wcm90b3R5cGUuZ2V0QWN0aW9uSWRzO1xuRmx1eC5wcm90b3R5cGUuZ2V0QWxsQ29uc3RhbnRzID0gRmx1eC5wcm90b3R5cGUuZ2V0QWxsQWN0aW9uSWRzO1xuRmx1eC5wcm90b3R5cGUuZGVoeWRyYXRlID0gRmx1eC5wcm90b3R5cGUuc2VyaWFsaXplO1xuRmx1eC5wcm90b3R5cGUuaHlkcmF0ZSA9IEZsdXgucHJvdG90eXBlLmRlc2VyaWFsaXplO1xuXG5mdW5jdGlvbiBnZXRDbGFzc05hbWUoQ2xhc3MpIHtcbiAgcmV0dXJuIENsYXNzLnByb3RvdHlwZS5jb25zdHJ1Y3Rvci5uYW1lO1xufVxuXG5mdW5jdGlvbiBnZXRWYWx1ZXMob2JqZWN0KSB7XG4gIGxldCB2YWx1ZXMgPSBbXTtcblxuICBmb3IgKGxldCBrZXkgaW4gb2JqZWN0KSB7XG4gICAgaWYgKCFvYmplY3QuaGFzT3duUHJvcGVydHkoa2V5KSkgY29udGludWU7XG5cbiAgICB2YWx1ZXMucHVzaChvYmplY3Rba2V5XSk7XG4gIH1cblxuICByZXR1cm4gdmFsdWVzO1xufVxuXG5jb25zdCBGbHVtbW94ID0gRmx1eDtcblxuZXhwb3J0IHtcbiAgRmx1eCxcbiAgRmx1bW1veCxcbiAgU3RvcmUsXG4gIEFjdGlvbnMsXG59O1xuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9GbHV4LmpzIl0sIm5hbWVzIjpbIkZsdXgiLCJkaXNwYXRjaGVyIiwiX3N0b3JlcyIsIl9hY3Rpb25zIiwiY3JlYXRlU3RvcmUiLCJrZXkiLCJfU3RvcmUiLCJwcm90b3R5cGUiLCJjbGFzc05hbWUiLCJnZXRDbGFzc05hbWUiLCJFcnJvciIsImhhc093blByb3BlcnR5IiwiY29uc3RydWN0b3JBcmdzIiwic3RvcmUiLCJ0b2tlbiIsInJlZ2lzdGVyIiwiaGFuZGxlciIsImJpbmQiLCJfd2FpdEZvciIsIndhaXRGb3IiLCJfdG9rZW4iLCJfZ2V0QWxsQWN0aW9uSWRzIiwiZ2V0QWxsQWN0aW9uSWRzIiwiZ2V0U3RvcmUiLCJ1bmRlZmluZWQiLCJyZW1vdmVTdG9yZSIsInJlbW92ZUFsbExpc3RlbmVycyIsInVucmVnaXN0ZXIiLCJjcmVhdGVBY3Rpb25zIiwiX0FjdGlvbnMiLCJwcm9wZXJ0aWVzIiwiYWN0aW9ucyIsImRpc3BhdGNoIiwiZGlzcGF0Y2hBc3luYyIsImdldEFjdGlvbnMiLCJnZXRBY3Rpb25JZHMiLCJnZXRDb25zdGFudHMiLCJyZW1vdmVBY3Rpb25zIiwiYWN0aW9uSWRzIiwiYWN0aW9uQ29uc3RhbnRzIiwiY29uY2F0IiwiZ2V0VmFsdWVzIiwiYWN0aW9uSWQiLCJib2R5IiwiX2Rpc3BhdGNoIiwicHJvbWlzZSIsImFjdGlvbkFyZ3MiLCJwYXlsb2FkIiwiYXN5bmMiLCJ0aGVuIiwiZXJyb3IiLCJlbWl0IiwidG9rZW5zT3JTdG9yZXMiLCJBcnJheSIsImlzQXJyYXkiLCJlbnN1cmVJc1Rva2VuIiwidG9rZW5PclN0b3JlIiwidG9rZW5zIiwibWFwIiwicmVtb3ZlQWxsU3RvcmVMaXN0ZW5lcnMiLCJldmVudCIsInNlcmlhbGl6ZSIsInN0YXRlVHJlZSIsImNvbnN0cnVjdG9yIiwic2VyaWFsaXplZFN0b3JlU3RhdGUiLCJzdGF0ZSIsIm5hbWUiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjb25zb2xlIiwid2FybiIsImRlc2VyaWFsaXplIiwiSlNPTiIsInN0cmluZ2lmeSIsInNlcmlhbGl6ZWRTdGF0ZSIsInN0YXRlTWFwIiwicGFyc2UiLCJzdG9yZVN0YXRlU3RyaW5nIiwic3RvcmVTdGF0ZSIsInJlcGxhY2VTdGF0ZSIsImdldEFsbENvbnN0YW50cyIsImRlaHlkcmF0ZSIsImh5ZHJhdGUiLCJDbGFzcyIsIm9iamVjdCIsInZhbHVlcyIsInB1c2giLCJGbHVtbW94IiwiU3RvcmUiLCJBY3Rpb25zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBTUE7Ozs7QUFDQTs7OztBQUNBOztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7K2VBVkE7Ozs7OztJQVlxQkEsSTs7O0FBRW5CLGtCQUFjO0FBQUE7O0FBQUEsaURBQ1osd0JBRFk7O0FBR1osVUFBS0MsVUFBTCxHQUFrQixzQkFBbEI7O0FBRUEsVUFBS0MsT0FBTCxHQUFlLEVBQWY7QUFDQSxVQUFLQyxRQUFMLEdBQWdCLEVBQWhCO0FBTlk7QUFPYjs7aUJBRURDLFcsd0JBQVlDLEcsRUFBS0MsTSxFQUE0Qjs7QUFFM0MsUUFBSSxFQUFFQSxPQUFPQyxTQUFQLDhCQUFGLENBQUosRUFBMEM7QUFDeEMsVUFBTUMsWUFBWUMsYUFBYUgsTUFBYixDQUFsQjs7QUFFQSxZQUFNLElBQUlJLEtBQUosQ0FDSix3REFBcURGLFNBQXJELDRJQUVpREEsU0FGakQsa0NBREksQ0FBTjtBQU1EOztBQUVELFFBQUksS0FBS04sT0FBTCxDQUFhUyxjQUFiLENBQTRCTixHQUE1QixLQUFvQyxLQUFLSCxPQUFMLENBQWFHLEdBQWIsQ0FBeEMsRUFBMkQ7QUFDekQsWUFBTSxJQUFJSyxLQUFKLENBQ0osMERBQXVETCxHQUF2RCxnQ0FESSxDQUFOO0FBSUQ7O0FBbEIwQyxzQ0FBakJPLGVBQWlCO0FBQWpCQSxxQkFBaUI7QUFBQTs7QUFvQjNDLFFBQU1DLDJDQUFZUCxNQUFaLGdCQUFzQk0sZUFBdEIsS0FBTjtBQUNBLFFBQU1FLFFBQVEsS0FBS2IsVUFBTCxDQUFnQmMsUUFBaEIsQ0FBeUJGLE1BQU1H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RixLQUFLTyxTQUFMLENBQWVpRSxXQUF4Qzs7QUFFQSxTQUFTL0QsWUFBVCxDQUFzQjJFLEtBQXRCLEVBQTZCO0FBQzNCLFNBQU9BLE1BQU03RSxTQUFOLENBQWdCd0QsV0FBaEIsQ0FBNEJHLElBQW5DO0FBQ0Q7O0FBRUQsU0FBU3pCLFNBQVQsQ0FBbUI0QyxNQUFuQixFQUEyQjtBQUN6QixNQUFJQyxTQUFTLEVBQWI7O0FBRUEsT0FBSyxJQUFJakYsR0FBVCxJQUFnQmdGLE1BQWhCLEVBQXdCO0FBQ3RCLFFBQUksQ0FBQ0EsT0FBTzFFLGNBQVAsQ0FBc0JOLEdBQXRCLENBQUwsRUFBaUM7O0FBRWpDaUYsV0FBT0MsSUFBUCxDQUFZRixPQUFPaEYsR0FBUCxDQUFaO0FBQ0Q7O0FBRUQsU0FBT2lGLE1BQVA7QUFDRDs7QUFFRCxJQUFNRSxVQUFVeEYsSUFBaEI7O1FBR0VBLEksR0FBQUEsSTtRQUNBd0YsTyxHQUFBQSxPO1FBQ0FDLEs7UUFDQUMsTyIsImZpbGUiOiJGbHV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGbHV4XG4gKlxuICogVGhlIG1haW4gRmx1eCBjbGFzcy5cbiAqL1xuXG5pbXBvcnQgU3RvcmUgZnJvbSAnLi9TdG9yZSc7XG5pbXBvcnQgQWN0aW9ucyBmcm9tICcuL0FjdGlvbnMnO1xuaW1wb3J0IHsgRGlzcGF0Y2hlciB9IGZyb20gJ2ZsdXgnO1xuaW1wb3J0IEV2ZW50RW1pdHRlciBmcm9tICdldmVudGVtaXR0ZXIzJztcbmltcG9ydCBhc3NpZ24gZnJvbSAnb2JqZWN0LWFzc2lnbic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZsdXggZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmRpc3BhdGNoZXIgPSBuZXcgRGlzcGF0Y2hlcigpO1xuXG4gICAgdGhpcy5fc3RvcmVzID0ge307XG4gICAgdGhpcy5fYWN0aW9ucyA9IHt9O1xuICB9XG5cbiAgY3JlYXRlU3RvcmUoa2V5LCBfU3RvcmUsIC4uLmNvbnN0cnVjdG9yQXJncykge1xuXG4gICAgaWYgKCEoX1N0b3JlLnByb3RvdHlwZSBpbnN0YW5jZW9mIFN0b3JlKSkge1xuICAgICAgY29uc3QgY2xhc3NOYW1lID0gZ2V0Q2xhc3NOYW1lKF9TdG9yZSk7XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFlvdSd2ZSBhdHRlbXB0ZWQgdG8gY3JlYXRlIGEgc3RvcmUgZnJvbSB0aGUgY2xhc3MgJHtjbGFzc05hbWV9LCB3aGljaCBgXG4gICAgICArIGBkb2VzIG5vdCBoYXZlIHRoZSBiYXNlIFN0b3JlIGNsYXNzIGluIGl0cyBwcm90b3R5cGUgY2hhaW4uIE1ha2Ugc3VyZSBgXG4gICAgICArIGB5b3UncmUgdXNpbmcgdGhlIFxcYGV4dGVuZHNcXGAga2V5d29yZDogXFxgY2xhc3MgJHtjbGFzc05hbWV9IGV4dGVuZHMgYFxuICAgICAgKyBgU3RvcmUgeyAuLi4gfVxcYGBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3N0b3Jlcy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIHRoaXMuX3N0b3Jlc1trZXldKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBZb3UndmUgYXR0ZW1wdGVkIHRvIGNyZWF0ZSBtdWx0aXBsZSBzdG9yZXMgd2l0aCBrZXkgJHtrZXl9LiBLZXlzIG11c3QgYFxuICAgICAgKyBgYmUgdW5pcXVlLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RvcmUgPSBuZXcgX1N0b3JlKC4uLmNvbnN0cnVjdG9yQXJncyk7XG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLmRpc3BhdGNoZXIucmVnaXN0ZXIoc3RvcmUuaGFuZGxlci5iaW5kKHN0b3JlKSk7XG5cbiAgICBzdG9yZS5fd2FpdEZvciA9IHRoaXMud2FpdEZvci5iaW5kKHRoaXMpO1xuICAgIHN0b3JlLl90b2tlbiA9IHRva2VuO1xuICAgIHN0b3JlLl9nZXRBbGxBY3Rpb25JZHMgPSB0aGlzLmdldEFsbEFjdGlvbklkcy5iaW5kKHRoaXMpO1xuXG4gICAgdGhpcy5fc3RvcmVzW2tleV0gPSBzdG9yZTtcblxuICAgIHJldHVybiBzdG9yZTtcbiAgfVxuXG4gIGdldFN0b3JlKGtleSkge1xuICAgIHJldHVybiB0aGlzLl9zdG9yZXMuaGFzT3duUHJvcGVydHkoa2V5KSA/IHRoaXMuX3N0b3Jlc1trZXldIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcmVtb3ZlU3RvcmUoa2V5KSB7XG4gICAgaWYgKHRoaXMuX3N0b3Jlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICB0aGlzLl9zdG9yZXNba2V5XS5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcbiAgICAgIHRoaXMuZGlzcGF0Y2hlci51bnJlZ2lzdGVyKHRoaXMuX3N0b3Jlc1trZXldLl90b2tlbik7XG4gICAgICBkZWxldGUgdGhpcy5fc3RvcmVzW2tleV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFlvdSd2ZSBhdHRlbXB0ZWQgdG8gcmVtb3ZlIHN0b3JlIHdpdGgga2V5ICR7a2V5fSB3aGljaCBkb2VzIG5vdCBleGlzdC5gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZUFjdGlvbnMoa2V5LCBfQWN0aW9ucywgLi4uY29uc3RydWN0b3JBcmdzKSB7XG4gICAgaWYgKCEoX0FjdGlvbnMucHJvdG90eXBlIGluc3RhbmNlb2YgQWN0aW9ucykgJiYgX0FjdGlvbnMgIT09IEFjdGlvbnMpIHtcbiAgICAgIGlmICh0eXBlb2YgX0FjdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gZ2V0Q2xhc3NOYW1lKF9BY3Rpb25zKTtcblxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFlvdSd2ZSBhdHRlbXB0ZWQgdG8gY3JlYXRlIGFjdGlvbnMgZnJvbSB0aGUgY2xhc3MgJHtjbGFzc05hbWV9LCB3aGljaCBgXG4gICAgICAgICsgYGRvZXMgbm90IGhhdmUgdGhlIGJhc2UgQWN0aW9ucyBjbGFzcyBpbiBpdHMgcHJvdG90eXBlIGNoYWluLiBNYWtlIGBcbiAgICAgICAgKyBgc3VyZSB5b3UncmUgdXNpbmcgdGhlIFxcYGV4dGVuZHNcXGAga2V5d29yZDogXFxgY2xhc3MgJHtjbGFzc05hbWV9IGBcbiAgICAgICAgKyBgZXh0ZW5kcyBBY3Rpb25zIHsgLi4uIH1cXGBgXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gX0FjdGlvbnM7XG4gICAgICAgIF9BY3Rpb25zID0gY2xhc3MgZXh0ZW5kcyBBY3Rpb25zIHt9O1xuICAgICAgICBhc3NpZ24oX0FjdGlvbnMucHJvdG90eXBlLCBwcm9wZXJ0aWVzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5fYWN0aW9ucy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIHRoaXMuX2FjdGlvbnNba2V5XSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgWW91J3ZlIGF0dGVtcHRlZCB0byBjcmVhdGUgbXVsdGlwbGUgYWN0aW9ucyB3aXRoIGtleSAke2tleX0uIEtleXMgYFxuICAgICAgKyBgbXVzdCBiZSB1bmlxdWUuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBhY3Rpb25zID0gbmV3IF9BY3Rpb25zKC4uLmNvbnN0cnVjdG9yQXJncyk7XG4gICAgYWN0aW9ucy5kaXNwYXRjaCA9IHRoaXMuZGlzcGF0Y2guYmluZCh0aGlzKTtcbiAgICBhY3Rpb25zLmRpc3BhdGNoQXN5bmMgPSB0aGlzLmRpc3BhdGNoQXN5bmMuYmluZCh0aGlzKTtcblxuICAgIHRoaXMuX2FjdGlvbnNba2V5XSA9IGFjdGlvbnM7XG5cbiAgICByZXR1cm4gYWN0aW9ucztcbiAgfVxuXG4gIGdldEFjdGlvbnMoa2V5KSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnMuaGFzT3duUHJvcGVydHkoa2V5KSA/IHRoaXMuX2FjdGlvbnNba2V5XSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldEFjdGlvbklkcyhrZXkpIHtcbiAgICBjb25zdCBhY3Rpb25zID0gdGhpcy5nZXRBY3Rpb25zKGtleSk7XG5cbiAgICBpZiAoIWFjdGlvbnMpIHJldHVybjtcblxuICAgIHJldHVybiBhY3Rpb25zLmdldENvbnN0YW50cygpO1xuICB9XG5cbiAgcmVtb3ZlQWN0aW9ucyhrZXkpIHtcbiAgICBpZiAodGhpcy5fYWN0aW9ucy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICBkZWxldGUgdGhpcy5fYWN0aW9uc1trZXldO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBZb3UndmUgYXR0ZW1wdGVkIHRvIHJlbW92ZSBhY3Rpb25zIHdpdGgga2V5ICR7a2V5fSB3aGljaCBkb2VzIG5vdCBleGlzdC5gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGdldEFsbEFjdGlvbklkcygpIHtcbiAgICBsZXQgYWN0aW9uSWRzID0gW107XG5cbiAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5fYWN0aW9ucykge1xuICAgICAgaWYgKCF0aGlzLl9hY3Rpb25zLmhhc093blByb3BlcnR5KGtleSkpIGNvbnRpbnVlO1xuXG4gICAgICBjb25zdCBhY3Rpb25Db25zdGFudHMgPSB0aGlzLl9hY3Rpb25zW2tleV0uZ2V0Q29uc3RhbnRzKCk7XG5cbiAgICAgIGFjdGlvbklkcyA9IGFjdGlvbklkcy5jb25jYXQoZ2V0VmFsdWVzKGFjdGlvbkNvbnN0YW50cykpO1xuICAgIH1cblxuICAgIHJldHVybiBhY3Rpb25JZHM7XG4gIH1cblxuICBkaXNwYXRjaChhY3Rpb25JZCwgYm9keSkge1xuICAgIHRoaXMuX2Rpc3BhdGNoKHsgYWN0aW9uSWQsIGJvZHkgfSk7XG4gIH1cblxuICBkaXNwYXRjaEFzeW5jKGFjdGlvbklkLCBwcm9taXNlLCBhY3Rpb25BcmdzKSB7XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIGFjdGlvbklkLFxuICAgICAgYXN5bmM6ICdiZWdpbidcbiAgICB9O1xuXG4gICAgaWYgKGFjdGlvbkFyZ3MpIHBheWxvYWQuYWN0aW9uQXJncyA9IGFjdGlvbkFyZ3M7XG5cbiAgICB0aGlzLl9kaXNwYXRjaChwYXlsb2FkKTtcblxuICAgIHJldHVybiBwcm9taXNlXG4gICAgICAudGhlbihcbiAgICAgICAgYm9keSA9PiB7XG4gICAgICAgICAgdGhpcy5fZGlzcGF0Y2goe1xuICAgICAgICAgICAgYWN0aW9uSWQsXG4gICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgYXN5bmM6ICdzdWNjZXNzJ1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgcmV0dXJuIGJvZHk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLl9kaXNwYXRjaCh7XG4gICAgICAgICAgICBhY3Rpb25JZCxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgYXN5bmM6ICdmYWlsdXJlJ1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICApXG4gICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyb3IpO1xuXG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gIH1cblxuICBfZGlzcGF0Y2gocGF5bG9hZCkge1xuICAgIHRoaXMuZGlzcGF0Y2hlci5kaXNwYXRjaChwYXlsb2FkKTtcbiAgICB0aGlzLmVtaXQoJ2Rpc3BhdGNoJywgcGF5bG9hZCk7XG4gIH1cblxuICB3YWl0Rm9yKHRva2Vuc09yU3RvcmVzKSB7XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodG9rZW5zT3JTdG9yZXMpKSB0b2tlbnNPclN0b3JlcyA9IFt0b2tlbnNPclN0b3Jlc107XG5cbiAgICBjb25zdCBlbnN1cmVJc1Rva2VuID0gdG9rZW5PclN0b3JlID0+IHtcbiAgICAgIHJldHVybiB0b2tlbk9yU3RvcmUgaW5zdGFuY2VvZiBTdG9yZVxuICAgICAgICA/IHRva2VuT3JTdG9yZS5fdG9rZW5cbiAgICAgICAgOiB0b2tlbk9yU3RvcmU7XG4gICAgfTtcblxuICAgIGNvbnN0IHRva2VucyA9IHRva2Vuc09yU3RvcmVzLm1hcChlbnN1cmVJc1Rva2VuKTtcblxuICAgIHRoaXMuZGlzcGF0Y2hlci53YWl0Rm9yKHRva2Vucyk7XG4gIH1cblxuICByZW1vdmVBbGxTdG9yZUxpc3RlbmVycyhldmVudCkge1xuICAgIGZvciAobGV0IGtleSBpbiB0aGlzLl9zdG9yZXMpIHtcbiAgICAgIGlmICghdGhpcy5fc3RvcmVzLmhhc093blByb3BlcnR5KGtleSkpIGNvbnRpbnVlO1xuXG4gICAgICBjb25zdCBzdG9yZSA9IHRoaXMuX3N0b3Jlc1trZXldO1xuXG4gICAgICBzdG9yZS5yZW1vdmVBbGxMaXN0ZW5lcnMoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHNlcmlhbGl6ZSgpIHtcbiAgICBjb25zdCBzdGF0ZVRyZWUgPSB7fTtcblxuICAgIGZvciAobGV0IGtleSBpbiB0aGlzLl9zdG9yZXMpIHtcbiAgICAgIGlmICghdGhpcy5fc3RvcmVzLmhhc093blByb3BlcnR5KGtleSkpIGNvbnRpbnVlO1xuXG4gICAgICBjb25zdCBzdG9yZSA9IHRoaXMuX3N0b3Jlc1trZXldO1xuXG4gICAgICBjb25zdCBzZXJpYWxpemUgPSBzdG9yZS5jb25zdHJ1Y3Rvci5zZXJpYWxpemU7XG5cbiAgICAgIGlmICh0eXBlb2Ygc2VyaWFsaXplICE9PSAnZnVuY3Rpb24nKSBjb250aW51ZTtcblxuICAgICAgY29uc3Qgc2VyaWFsaXplZFN0b3JlU3RhdGUgPSBzZXJpYWxpemUoc3RvcmUuc3RhdGUpO1xuXG4gICAgICBpZiAodHlwZW9mIHNlcmlhbGl6ZWRTdG9yZVN0YXRlICE9PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBzdG9yZS5jb25zdHJ1Y3Rvci5uYW1lO1xuXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFRoZSBzdG9yZSB3aXRoIGtleSAnJHtrZXl9JyB3YXMgbm90IHNlcmlhbGl6ZWQgYmVjYXVzZSB0aGUgc3RhdGljIGBcbiAgICAgICAgICArIGBtZXRob2QgXFxgJHtjbGFzc05hbWV9LnNlcmlhbGl6ZSgpXFxgIHJldHVybmVkIGEgbm9uLXN0cmluZyB3aXRoIHR5cGUgYFxuICAgICAgICAgICsgYCcke3R5cGVvZiBzZXJpYWxpemVkU3RvcmVTdGF0ZX0nLmBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHN0YXRlVHJlZVtrZXldID0gc2VyaWFsaXplZFN0b3JlU3RhdGU7XG5cbiAgICAgIGlmICh0eXBlb2Ygc3RvcmUuY29uc3RydWN0b3IuZGVzZXJpYWxpemUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gc3RvcmUuY29uc3RydWN0b3IubmFtZTtcblxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBUaGUgY2xhc3MgXFxgJHtjbGFzc05hbWV9XFxgIGhhcyBhIFxcYHNlcmlhbGl6ZSgpXFxgIG1ldGhvZCwgYnV0IG5vIGBcbiAgICAgICAgICArIGBjb3JyZXNwb25kaW5nIFxcYGRlc2VyaWFsaXplKClcXGAgbWV0aG9kLmBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoc3RhdGVUcmVlKTtcbiAgfVxuXG4gIGRlc2VyaWFsaXplKHNlcmlhbGl6ZWRTdGF0ZSkge1xuICAgIGxldCBzdGF0ZU1hcDtcblxuICAgIHRyeSB7XG4gICAgICBzdGF0ZU1hcCA9IEpTT04ucGFyc2Uoc2VyaWFsaXplZFN0YXRlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc3QgY2xhc3NOYW1lID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEludmFsaWQgdmFsdWUgcGFzc2VkIHRvIFxcYCR7Y2xhc3NOYW1lfSNkZXNlcmlhbGl6ZSgpXFxgOiBgXG4gICAgICAgICsgYCR7c2VyaWFsaXplZFN0YXRlfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5fc3RvcmVzKSB7XG4gICAgICBpZiAoIXRoaXMuX3N0b3Jlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSBjb250aW51ZTtcblxuICAgICAgY29uc3Qgc3RvcmUgPSB0aGlzLl9zdG9yZXNba2V5XTtcblxuICAgICAgY29uc3QgZGVzZXJpYWxpemUgPSBzdG9yZS5jb25zdHJ1Y3Rvci5kZXNlcmlhbGl6ZTtcblxuICAgICAgaWYgKHR5cGVvZiBkZXNlcmlhbGl6ZSAhPT0gJ2Z1bmN0aW9uJykgY29udGludWU7XG5cbiAgICAgIGNvbnN0IHN0b3JlU3RhdGVTdHJpbmcgPSBzdGF0ZU1hcFtrZXldO1xuICAgICAgY29uc3Qgc3RvcmVTdGF0ZSA9IGRlc2VyaWFsaXplKHN0b3JlU3RhdGVTdHJpbmcpO1xuXG4gICAgICBzdG9yZS5yZXBsYWNlU3RhdGUoc3RvcmVTdGF0ZSk7XG5cbiAgICAgIGlmICh0eXBlb2Ygc3RvcmUuY29uc3RydWN0b3Iuc2VyaWFsaXplICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IHN0b3JlLmNvbnN0cnVjdG9yLm5hbWU7XG5cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgVGhlIGNsYXNzIFxcYCR7Y2xhc3NOYW1lfVxcYCBoYXMgYSBcXGBkZXNlcmlhbGl6ZSgpXFxgIG1ldGhvZCwgYnV0IG5vIGBcbiAgICAgICAgICArIGBjb3JyZXNwb25kaW5nIFxcYHNlcmlhbGl6ZSgpXFxgIG1ldGhvZC5gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbi8vIEFsaWFzZXNcbkZsdXgucHJvdG90eXBlLmdldENvbnN0YW50cyA9IEZsdXgucHJvdG90eXBlLmdldEFjdGlvbklkcztcbkZsdXgucHJvdG90eXBlLmdldEFsbENvbnN0YW50cyA9IEZsdXgucHJvdG90eXBlLmdldEFsbEFjdGlvbklkcztcbkZsdXgucHJvdG90eXBlLmRlaHlkcmF0ZSA9IEZsdXgucHJvdG90eXBlLnNlcmlhbGl6ZTtcbkZsdXgucHJvdG90eXBlLmh5ZHJhdGUgPSBGbHV4LnByb3RvdHlwZS5kZXNlcmlhbGl6ZTtcblxuZnVuY3Rpb24gZ2V0Q2xhc3NOYW1lKENsYXNzKSB7XG4gIHJldHVybiBDbGFzcy5wcm90b3R5cGUuY29uc3RydWN0b3IubmFtZTtcbn1cblxuZnVuY3Rpb24gZ2V0VmFsdWVzKG9iamVjdCkge1xuICBsZXQgdmFsdWVzID0gW107XG5cbiAgZm9yIChsZXQga2V5IGluIG9iamVjdCkge1xuICAgIGlmICghb2JqZWN0Lmhhc093blByb3BlcnR5KGtleSkpIGNvbnRpbnVlO1xuXG4gICAgdmFsdWVzLnB1c2gob2JqZWN0W2tleV0pO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlcztcbn1cblxuY29uc3QgRmx1bW1veCA9IEZsdXg7XG5cbmV4cG9ydCB7XG4gIEZsdXgsXG4gIEZsdW1tb3gsXG4gIFN0b3JlLFxuICBBY3Rpb25zLFxufTtcbiJdfQ==

@@ -28,3 +28,3 @@ 'use strict';

var Store = (function (_EventEmitter) {
var Store = function (_EventEmitter) {
_inherits(Store, _EventEmitter);

@@ -36,3 +36,2 @@

*/
function Store() {

@@ -88,3 +87,3 @@ _classCallCheck(this, Store);

Store.assignState = function assignState(oldState, newState) {
return (0, _objectAssign2.default)({}, oldState, newState);
return (0, _objectAssign2['default'])({}, oldState, newState);
};

@@ -165,8 +164,9 @@

Store.prototype.handler = function handler(payload) {
var body = payload.body;
var actionId = payload.actionId;
var _async = payload['async'];
var actionArgs = payload.actionArgs;
var error = payload.error;
var body = payload.body,
actionId = payload.actionId,
_async = payload['async'],
actionArgs = payload.actionArgs,
error = payload.error;
var _allHandlers = this._catchAllHandlers;

@@ -227,9 +227,10 @@ var _handler = this._handlers[actionId];

return Store;
})(_eventemitter2.default);
}(_eventemitter2['default']);
exports.default = Store;
exports['default'] = Store;
function ensureActionId(actionOrActionId) {
return typeof actionOrActionId === 'function' ? actionOrActionId._id : actionOrActionId;
}
//# sourceMappingURL=data:application/json;base64,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QUFTO0FBQ1IsVUFBSSxJQUFJLENBQUMsZ0NBQWdDLEVBQUU7QUFDekMsWUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO0FBQ2hDLFlBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7T0FDckI7O0FBRUQsVUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztBQUNqQyxVQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztBQUMvQixVQUFJLENBQUMsZ0NBQWdDLEdBQUcsS0FBSyxDQUFDO0tBQy9DO0dBQ0Y7O0FBMUxrQixPQUFLLFdBNEx4QixnQkFBZ0IsNkJBQUMsU0FBUyxFQUFFLElBQUksRUFBRTs7O0FBQ2hDLGFBQVMsQ0FBQyxPQUFPLENBQUMsVUFBQSxRQUFRO2FBQ3hCLEFBQUMsT0FBTyxRQUFRLEtBQUssVUFBVSxJQUFLLFFBQVEsQ0FBQyxLQUFLLFNBQU8sSUFBSSxDQUFDO0tBQUEsQ0FBQyxDQUFDO0dBQ25FOztTQS9Ma0IsS0FBSzs7O2tCQUFMLEtBQUs7O0FBa00xQixTQUFTLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRTtBQUN4QyxTQUFPLE9BQU8sZ0JBQWdCLEtBQUssVUFBVSxHQUN6QyxnQkFBZ0IsQ0FBQyxHQUFHLEdBQ3BCLGdCQUFnQixDQUFDO0NBQ3RCIiwiZmlsZSI6IlN0b3JlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdG9yZVxuICpcbiAqIFN0b3JlcyBob2xkIGFwcGxpY2F0aW9uIHN0YXRlLiBUaGV5IHJlc3BvbmQgdG8gYWN0aW9ucyBzZW50IGJ5IHRoZSBkaXNwYXRjaGVyXG4gKiBhbmQgYnJvYWRjYXN0IGNoYW5nZSBldmVudHMgdG8gbGlzdGVuZXJzLCBzbyB0aGV5IGNhbiBncmFiIHRoZSBsYXRlc3QgZGF0YS5cbiAqIFRoZSBrZXkgdGhpbmcgdG8gcmVtZW1iZXIgaXMgdGhhdCB0aGUgb25seSB3YXkgc3RvcmVzIHJlY2VpdmUgaW5mb3JtYXRpb25cbiAqIGZyb20gdGhlIG91dHNpZGUgd29ybGQgaXMgdmlhIHRoZSBkaXNwYXRjaGVyLlxuICovXG5cbmltcG9ydCBFdmVudEVtaXR0ZXIgZnJvbSAnZXZlbnRlbWl0dGVyMyc7XG5pbXBvcnQgYXNzaWduIGZyb20gJ29iamVjdC1hc3NpZ24nO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdG9yZSBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG5cbiAgLyoqXG4gICAqIFN0b3JlcyBhcmUgaW5pdGlhbGl6ZWQgd2l0aCBhIHJlZmVyZW5jZVxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuc3RhdGUgPSBudWxsO1xuXG4gICAgdGhpcy5faGFuZGxlcnMgPSB7fTtcbiAgICB0aGlzLl9hc3luY0hhbmRsZXJzID0ge307XG4gICAgdGhpcy5fY2F0Y2hBbGxIYW5kbGVycyA9IFtdO1xuICAgIHRoaXMuX2NhdGNoQWxsQXN5bmNIYW5kbGVycyA9IHtcbiAgICAgIGJlZ2luOiBbXSxcbiAgICAgIHN1Y2Nlc3M6IFtdLFxuICAgICAgZmFpbHVyZTogW10sXG4gICAgfTtcbiAgfVxuXG4gIHNldFN0YXRlKG5ld1N0YXRlKSB7XG4gICAgLy8gRG8gYSB0cmFuc2FjdGlvbmFsIHN0YXRlIHVwZGF0ZSBpZiBhIGZ1bmN0aW9uIGlzIHBhc3NlZFxuICAgIGlmICh0eXBlb2YgbmV3U3RhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IHByZXZTdGF0ZSA9IHRoaXMuX2lzSGFuZGxpbmdEaXNwYXRjaFxuICAgICAgICA/IHRoaXMuX3BlbmRpbmdTdGF0ZVxuICAgICAgICA6IHRoaXMuc3RhdGU7XG5cbiAgICAgIG5ld1N0YXRlID0gbmV3U3RhdGUocHJldlN0YXRlKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5faXNIYW5kbGluZ0Rpc3BhdGNoKSB7XG4gICAgICB0aGlzLl9wZW5kaW5nU3RhdGUgPSB0aGlzLl9hc3NpZ25TdGF0ZSh0aGlzLl9wZW5kaW5nU3RhdGUsIG5ld1N0YXRlKTtcbiAgICAgIHRoaXMuX2VtaXRDaGFuZ2VBZnRlckhhbmRsaW5nRGlzcGF0Y2ggPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YXRlID0gdGhpcy5fYXNzaWduU3RhdGUodGhpcy5zdGF0ZSwgbmV3U3RhdGUpO1xuICAgICAgdGhpcy5lbWl0KCdjaGFuZ2UnKTtcbiAgICB9XG4gIH1cblxuICByZXBsYWNlU3RhdGUobmV3U3RhdGUpIHtcbiAgICBpZiAodGhpcy5faXNIYW5kbGluZ0Rpc3BhdGNoKSB7XG4gICAgICB0aGlzLl9wZW5kaW5nU3RhdGUgPSB0aGlzLl9hc3NpZ25TdGF0ZSh1bmRlZmluZWQsIG5ld1N0YXRlKTtcbiAgICAgIHRoaXMuX2VtaXRDaGFuZ2VBZnRlckhhbmRsaW5nRGlzcGF0Y2ggPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YXRlID0gdGhpcy5fYXNzaWduU3RhdGUodW5kZWZpbmVkLCBuZXdTdGF0ZSk7XG4gICAgICB0aGlzLmVtaXQoJ2NoYW5nZScpO1xuICAgIH1cbiAgfVxuXG4gIGdldFN0YXRlQXNPYmplY3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGU7XG4gIH1cblxuICBzdGF0aWMgYXNzaWduU3RhdGUob2xkU3RhdGUsIG5ld1N0YXRlKSB7XG4gICAgcmV0dXJuIGFzc2lnbih7fSwgb2xkU3RhdGUsIG5ld1N0YXRlKTtcbiAgfVxuXG4gIF9hc3NpZ25TdGF0ZSguLi5hcmdzKXtcbiAgICByZXR1cm4gKHRoaXMuY29uc3RydWN0b3IuYXNzaWduU3RhdGUgfHwgU3RvcmUuYXNzaWduU3RhdGUpKC4uLmFyZ3MpO1xuICB9XG5cbiAgZm9yY2VVcGRhdGUoKSB7XG4gICAgaWYgKHRoaXMuX2lzSGFuZGxpbmdEaXNwYXRjaCkge1xuICAgICAgdGhpcy5fZW1pdENoYW5nZUFmdGVySGFuZGxpbmdEaXNwYXRjaCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW1pdCgnY2hhbmdlJyk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXIoYWN0aW9uSWQsIGhhbmRsZXIpIHtcbiAgICBhY3Rpb25JZCA9IGVuc3VyZUFjdGlvbklkKGFjdGlvbklkKTtcblxuICAgIGlmICh0eXBlb2YgaGFuZGxlciAhPT0gJ2Z1bmN0aW9uJykgcmV0dXJuO1xuXG4gICAgdGhpcy5faGFuZGxlcnNbYWN0aW9uSWRdID0gaGFuZGxlci5iaW5kKHRoaXMpO1xuICB9XG5cbiAgcmVnaXN0ZXJBc3luYyhhY3Rpb25JZCwgYmVnaW5IYW5kbGVyLCBzdWNjZXNzSGFuZGxlciwgZmFpbHVyZUhhbmRsZXIpIHtcbiAgICBhY3Rpb25JZCA9IGVuc3VyZUFjdGlvbklkKGFjdGlvbklkKTtcblxuICAgIGNvbnN0IGFzeW5jSGFuZGxlcnMgPSB0aGlzLl9iaW5kQXN5bmNIYW5kbGVycyh7XG4gICAgICBiZWdpbjogYmVnaW5IYW5kbGVyLFxuICAgICAgc3VjY2Vzczogc3VjY2Vzc0hhbmRsZXIsXG4gICAgICBmYWlsdXJlOiBmYWlsdXJlSGFuZGxlcixcbiAgICB9KTtcblxuICAgIHRoaXMuX2FzeW5jSGFuZGxlcnNbYWN0aW9uSWRdID0gYXN5bmNIYW5kbGVycztcbiAgfVxuXG4gIHJlZ2lzdGVyQWxsKGhhbmRsZXIpIHtcbiAgICBpZiAodHlwZW9mIGhhbmRsZXIgIT09ICdmdW5jdGlvbicpIHJldHVybjtcblxuICAgIHRoaXMuX2NhdGNoQWxsSGFuZGxlcnMucHVzaChoYW5kbGVyLmJpbmQodGhpcykpO1xuICB9XG5cbiAgcmVnaXN0ZXJBbGxBc3luYyhiZWdpbkhhbmRsZXIsIHN1Y2Nlc3NIYW5kbGVyLCBmYWlsdXJlSGFuZGxlcikge1xuICAgIGNvbnN0IGFzeW5jSGFuZGxlcnMgPSB0aGlzLl9iaW5kQXN5bmNIYW5kbGVycyh7XG4gICAgICBiZWdpbjogYmVnaW5IYW5kbGVyLFxuICAgICAgc3VjY2Vzczogc3VjY2Vzc0hhbmRsZXIsXG4gICAgICBmYWlsdXJlOiBmYWlsdXJlSGFuZGxlcixcbiAgICB9KTtcblxuICAgIE9iamVjdC5rZXlzKGFzeW5jSGFuZGxlcnMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgdGhpcy5fY2F0Y2hBbGxBc3luY0hhbmRsZXJzW2tleV0ucHVzaChcbiAgICAgICAgYXN5bmNIYW5kbGVyc1trZXldXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgX2JpbmRBc3luY0hhbmRsZXJzKGFzeW5jSGFuZGxlcnMpIHtcbiAgICBmb3IgKGxldCBrZXkgaW4gYXN5bmNIYW5kbGVycykge1xuICAgICAgaWYgKCFhc3luY0hhbmRsZXJzLmhhc093blByb3BlcnR5KGtleSkpIGNvbnRpbnVlO1xuXG4gICAgICBjb25zdCBoYW5kbGVyID0gYXN5bmNIYW5kbGVyc1trZXldO1xuXG4gICAgICBpZiAodHlwZW9mIGhhbmRsZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgYXN5bmNIYW5kbGVyc1trZXldID0gaGFuZGxlci5iaW5kKHRoaXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIGFzeW5jSGFuZGxlcnNba2V5XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYXN5bmNIYW5kbGVycztcbiAgfVxuXG4gIHdhaXRGb3IodG9rZW5zT3JTdG9yZXMpIHtcbiAgICB0aGlzLl93YWl0Rm9yKHRva2Vuc09yU3RvcmVzKTtcbiAgfVxuXG4gIGhhbmRsZXIocGF5bG9hZCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGJvZHksXG4gICAgICBhY3Rpb25JZCxcbiAgICAgICdhc3luYyc6IF9hc3luYyxcbiAgICAgIGFjdGlvbkFyZ3MsXG4gICAgICBlcnJvclxuICAgIH0gPSBwYXlsb2FkO1xuXG4gICAgY29uc3QgX2FsbEhhbmRsZXJzID0gdGhpcy5fY2F0Y2hBbGxIYW5kbGVycztcbiAgICBjb25zdCBfaGFuZGxlciA9IHRoaXMuX2hhbmRsZXJzW2FjdGlvbklkXTtcblxuICAgIGNvbnN0IF9hbGxBc3luY0hhbmRsZXJzID0gdGhpcy5fY2F0Y2hBbGxBc3luY0hhbmRsZXJzW19hc3luY107XG4gICAgY29uc3QgX2FzeW5jSGFuZGxlciA9IHRoaXMuX2FzeW5jSGFuZGxlcnNbYWN0aW9uSWRdXG4gICAgICAmJiB0aGlzLl9hc3luY0hhbmRsZXJzW2FjdGlvbklkXVtfYXN5bmNdO1xuXG4gICAgaWYgKF9hc3luYykge1xuICAgICAgbGV0IGJlZ2luT3JGYWlsdXJlSGFuZGxlcnMgPSBfYWxsQXN5bmNIYW5kbGVycy5jb25jYXQoW19hc3luY0hhbmRsZXJdKTtcblxuICAgICAgc3dpdGNoIChfYXN5bmMpIHtcbiAgICAgICAgY2FzZSAnYmVnaW4nOlxuICAgICAgICAgIHRoaXMuX3BlcmZvcm1IYW5kbGVyKGJlZ2luT3JGYWlsdXJlSGFuZGxlcnMsIGFjdGlvbkFyZ3MpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSAnZmFpbHVyZSc6XG4gICAgICAgICAgdGhpcy5fcGVyZm9ybUhhbmRsZXIoYmVnaW5PckZhaWx1cmVIYW5kbGVycywgW2Vycm9yXSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgICB0aGlzLl9wZXJmb3JtSGFuZGxlcihfYWxsQXN5bmNIYW5kbGVycy5jb25jYXQoW1xuICAgICAgICAgICAgKF9hc3luY0hhbmRsZXIgfHwgX2hhbmRsZXIpXG4gICAgICAgICAgXS5jb25jYXQoX2FzeW5jSGFuZGxlciAmJiBbXSB8fCBfYWxsSGFuZGxlcnMpKSwgW2JvZHldKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX3BlcmZvcm1IYW5kbGVyKF9hbGxIYW5kbGVycy5jb25jYXQoW19oYW5kbGVyXSksIFtib2R5XSk7XG4gIH1cblxuICBfcGVyZm9ybUhhbmRsZXIoX2hhbmRsZXJzLCBhcmdzKSB7XG4gICAgdGhpcy5faXNIYW5kbGluZ0Rpc3BhdGNoID0gdHJ1ZTtcbiAgICB0aGlzLl9wZW5kaW5nU3RhdGUgPSB0aGlzLl9hc3NpZ25TdGF0ZSh1bmRlZmluZWQsIHRoaXMuc3RhdGUpO1xuICAgIHRoaXMuX2VtaXRDaGFuZ2VBZnRlckhhbmRsaW5nRGlzcGF0Y2ggPSBmYWxzZTtcblxuICAgIHRyeSB7XG4gICAgICB0aGlzLl9wZXJmb3JtSGFuZGxlcnMoX2hhbmRsZXJzLCBhcmdzKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKHRoaXMuX2VtaXRDaGFuZ2VBZnRlckhhbmRsaW5nRGlzcGF0Y2gpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMuX3BlbmRpbmdTdGF0ZTtcbiAgICAgICAgdGhpcy5lbWl0KCdjaGFuZ2UnKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5faXNIYW5kbGluZ0Rpc3BhdGNoID0gZmFsc2U7XG4gICAgICB0aGlzLl9wZW5kaW5nU3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl9lbWl0Q2hhbmdlQWZ0ZXJIYW5kbGluZ0Rpc3BhdGNoID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgX3BlcmZvcm1IYW5kbGVycyhfaGFuZGxlcnMsIGFyZ3MpIHtcbiAgICBfaGFuZGxlcnMuZm9yRWFjaChfaGFuZGxlciA9PlxuICAgICAgKHR5cGVvZiBfaGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykgJiYgX2hhbmRsZXIuYXBwbHkodGhpcywgYXJncykpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGVuc3VyZUFjdGlvbklkKGFjdGlvbk9yQWN0aW9uSWQpIHtcbiAgcmV0dXJuIHR5cGVvZiBhY3Rpb25PckFjdGlvbklkID09PSAnZnVuY3Rpb24nXG4gICAgPyBhY3Rpb25PckFjdGlvbklkLl9pZFxuICAgIDogYWN0aW9uT3JBY3Rpb25JZDtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9TdG9yZS5qcyJdLCJuYW1lcyI6WyJTdG9yZSIsInN0YXRlIiwiX2hhbmRsZXJzIiwiX2FzeW5jSGFuZGxlcnMiLCJfY2F0Y2hBbGxIYW5kbGVycyIsIl9jYXRjaEFsbEFzeW5jSGFuZGxlcnMiLCJiZWdpbiIsInN1Y2Nlc3MiLCJmYWlsdXJlIiwic2V0U3RhdGUiLCJuZXdTdGF0ZSIsInByZXZTdGF0ZSIsIl9pc0hhbmRsaW5nRGlzcGF0Y2giLCJfcGVuZGluZ1N0YXRlIiwiX2Fzc2lnblN0YXRlIiwiX2VtaXRDaGFuZ2VBZnRlckhhbmRsaW5nRGlzcGF0Y2giLCJlbWl0IiwicmVwbGFjZVN0YXRlIiwidW5kZWZpbmVkIiwiZ2V0U3RhdGVBc09iamVjdCIsImFzc2lnblN0YXRlIiwib2xkU3RhdGUiLCJjb25zdHJ1Y3RvciIsImZvcmNlVXBkYXRlIiwicmVnaXN0ZXIiLCJhY3Rpb25JZCIsImhhbmRsZXIiLCJlbnN1cmVBY3Rpb25JZCIsImJpbmQiLCJyZWdpc3RlckFzeW5jIiwiYmVnaW5IYW5kbGVyIiwic3VjY2Vzc0hhbmRsZXIiLCJmYWlsdXJlSGFuZGxlciIsImFzeW5jSGFuZGxlcnMiLCJfYmluZEFzeW5jSGFuZGxlcnMiLCJyZWdpc3RlckFsbCIsInB1c2giLCJyZWdpc3RlckFsbEFzeW5jIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJoYXNPd25Qcm9wZXJ0eSIsIndhaXRGb3IiLCJ0b2tlbnNPclN0b3JlcyIsIl93YWl0Rm9yIiwicGF5bG9hZCIsImJvZHkiLCJfYXN5bmMiLCJhY3Rpb25BcmdzIiwiZXJyb3IiLCJfYWxsSGFuZGxlcnMiLCJfaGFuZGxlciIsIl9hbGxBc3luY0hhbmRsZXJzIiwiX2FzeW5jSGFuZGxlciIsImJlZ2luT3JGYWlsdXJlSGFuZGxlcnMiLCJjb25jYXQiLCJfcGVyZm9ybUhhbmRsZXIiLCJhcmdzIiwiX3BlcmZvcm1IYW5kbGVycyIsImFwcGx5IiwiYWN0aW9uT3JBY3Rpb25JZCIsIl9pZCJdLCJtYXBwaW5ncyI6Ijs7OztBQVNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7K2VBVkE7Ozs7Ozs7OztJQVlxQkEsSzs7O0FBRW5COzs7O0FBSUEsbUJBQWM7QUFBQTs7QUFBQSxpREFDWix3QkFEWTs7QUFHWixVQUFLQyxLQUFMLEdBQWEsSUFBYjs7QUFFQSxVQUFLQyxTQUFMLEdBQWlCLEVBQWpCO0FBQ0EsVUFBS0MsY0FBTCxHQUFzQixFQUF0QjtBQUNBLFVBQUtDLGlCQUFMLEdBQXlCLEVBQXpCO0FBQ0EsVUFBS0Msc0JBQUwsR0FBOEI7QUFDNUJDLGFBQU8sRUFEcUI7QUFFNUJDLGVBQVMsRUFGbUI7QUFHNUJDLGVBQVM7QUFIbUIsS0FBOUI7QUFSWTtBQWFiOztrQkFFREMsUSxxQkFBU0MsUSxFQUFVO0FBQ2pCO0FBQ0EsUUFBSSxPQUFPQSxRQUFQLEtBQW9CLFVBQXhCLEVBQW9DO0FBQ2xDLFVBQU1DLFlBQVksS0FBS0MsbUJBQUwsR0FDZCxLQUFLQyxhQURTLEdBRWQsS0FBS1osS0FGVDs7QUFJQVMsaUJBQVdBLFNBQVNDLFNBQVQsQ0FBWDtBQUNEOztBQUVELFFBQUksS0FBS0MsbUJBQVQsRUFBOEI7QUFDNUIsV0FBS0MsYUFBTCxHQUFxQixLQUFLQyxZQUFMLENBQWtCLEtBQUtELGFBQXZCLEVBQXNDSCxRQUF0QyxDQUFyQjtBQUNBLFdBQUtLLGdDQUFMLEdBQXdDLElBQXhDO0FBQ0QsS0FIRCxNQUdPO0FBQ0wsV0FBS2QsS0FBTCxHQUFhLEtBQUthLFlBQUwsQ0FBa0IsS0FBS2IsS0FBdkIsRUFBOEJTLFFBQTlCLENBQWI7QUFDQSxXQUFLTSxJQUFMLENBQVUsUUFBVjtBQUNEO0FBQ0YsRzs7a0JBRURDLFkseUJBQWFQLFEsRUFBVTtBQUNyQixRQUFJLEtBQUtFLG1CQUFULEVBQThCO0FBQzVCLFdBQUtDLGFBQUwsR0FBcUIsS0FBS0MsWUFBTCxDQUFrQkksU0FBbEIsRUFBNkJSLFFBQTdCLENBQXJCO0FBQ0EsV0FBS0ssZ0NBQUwsR0FBd0MsSUFBeEM7QUFDRCxLQUhELE1BR087QUFDTCxXQUFLZCxLQUFMLEdBQWEsS0FBS2EsWUFBTCxDQUFrQkksU0FBbEIsRUFBNkJSLFFBQTdCLENBQWI7QUFDQSxXQUFLTSxJQUFMLENBQVUsUUFBVjtBQUNEO0FBQ0YsRzs7a0JBRURHLGdCLCtCQUFtQjtBQUNqQixXQUFPLEtBQUtsQixLQUFaO0FBQ0QsRzs7UUFFTW1CLFcsd0JBQVlDLFEsRUFBVVgsUSxFQUFVO0FBQ3JDLFdBQU8sK0JBQU8sRUFBUCxFQUFXVyxRQUFYLEVBQXFCWCxRQUFyQixDQUFQO0FBQ0QsRzs7a0JBRURJLFksMkJBQXFCO0FBQ25CLFdBQU8sQ0FBQyxLQUFLUSxXQUFMLENBQWlCRixXQUFqQixJQUFnQ3BCLE1BQU1vQixXQUF2Qyw2QkFBUDtBQUNELEc7O2tCQUVERyxXLDBCQUFjO0FBQ1osUUFBSSxLQUFLWCxtQkFBVCxFQUE4QjtBQUM1QixXQUFLRyxnQ0FBTCxHQUF3QyxJQUF4QztBQUNELEtBRkQsTUFFTztBQUNMLFdBQUtDLElBQUwsQ0FBVSxRQUFWO0FBQ0Q7QUFDRixHOztrQkFFRFEsUSxxQkFBU0MsUSxFQUFVQyxPLEVBQVM7QUFDMUJELGVBQVdFLGVBQWVGLFFBQWYsQ0FBWDs7QUFFQSxRQUFJLE9BQU9DLE9BQVAsS0FBbUIsVUFBdkIsRUFBbUM7O0FBRW5DLFNBQUt4QixTQUFMLENBQWV1QixRQUFmLElBQTJCQyxRQUFRRSxJQUFSLENBQWEsSUFBYixDQUEzQjtBQUNELEc7O2tCQUVEQyxhLDBCQUFjSixRLEVBQVVLLFksRUFBY0MsYyxFQUFnQkMsYyxFQUFnQjtBQUNwRVAsZUFBV0UsZUFBZUYsUUFBZixDQUFYOztBQUVBLFFBQU1RLGdCQUFnQixLQUFLQyxrQkFBTCxDQUF3QjtBQUM1QzVCLGFBQU93QixZQURxQztBQUU1Q3ZCLGVBQVN3QixjQUZtQztBQUc1Q3ZCLGVBQVN3QjtBQUhtQyxLQUF4QixDQUF0Qjs7QUFNQSxTQUFLN0IsY0FBTCxDQUFvQnNCLFFBQXBCLElBQWdDUSxhQUFoQztBQUNELEc7O2tCQUVERSxXLHdCQUFZVCxPLEVBQVM7QUFDbkIsUUFBSSxPQUFPQSxPQUFQLEtBQW1CLFVBQXZCLEVBQW1DOztBQUVuQyxTQUFLdEIsaUJBQUwsQ0FBdUJnQyxJQUF2QixDQUE0QlYsUUFBUUUsSUFBUixDQUFhLElBQWIsQ0FBNUI7QUFDRCxHOztrQkFFRFMsZ0IsNkJBQWlCUCxZLEVBQWNDLGMsRUFBZ0JDLGMsRUFBZ0I7QUFBQTs7QUFDN0QsUUFBTUMsZ0JBQWdCLEtBQUtDLGtCQUFMLENBQXdCO0FBQzVDNUIsYUFBT3dCLFlBRHFDO0FBRTVDdkIsZUFBU3dCLGNBRm1DO0FBRzVDdkIsZUFBU3dCO0FBSG1DLEtBQXhCLENBQXRCOztBQU1BTSxXQUFPQyxJQUFQLENBQVlOLGFBQVosRUFBMkJPLE9BQTNCLENBQW1DLFVBQUNDLEdBQUQsRUFBUztBQUMxQyxhQUFLcEMsc0JBQUwsQ0FBNEJvQyxHQUE1QixFQUFpQ0wsSUFBakMsQ0FDRUgsY0FBY1EsR0FBZCxDQURGO0FBR0QsS0FKRDtBQUtELEc7O2tCQUVEUCxrQiwrQkFBbUJELGEsRUFBZTtBQUNoQyxTQUFLLElBQUlRLEdBQVQsSUFBZ0JSLGFBQWhCLEVBQStCO0FBQzdCLFVBQUksQ0FBQ0EsY0FBY1MsY0FBZCxDQUE2QkQsR0FBN0IsQ0FBTCxFQUF3Qzs7QUFFeEMsVUFBTWYsVUFBVU8sY0FBY1EsR0FBZCxDQUFoQjs7QUFFQSxVQUFJLE9BQU9mLE9BQVAsS0FBbUIsVUFBdkIsRUFBbUM7QUFDakNPLHNCQUFjUSxHQUFkLElBQXFCZixRQUFRRSxJQUFSLENBQWEsSUFBYixDQUFyQjtBQUNELE9BRkQsTUFFTztBQUNMLGVBQU9LLGNBQWNRLEdBQWQsQ0FBUDtBQUNEO0FBQ0Y7O0FBRUQsV0FBT1IsYUFBUDtBQUNELEc7O2tCQUVEVSxPLG9CQUFRQyxjLEVBQWdCO0FBQ3RCLFNBQUtDLFFBQUwsQ0FBY0QsY0FBZDtBQUNELEc7O2tCQUVEbEIsTyxvQkFBUW9CLE8sRUFBUztBQUFBLFFBRWJDLElBRmEsR0FPWEQsT0FQVyxDQUViQyxJQUZhO0FBQUEsUUFHYnRCLFFBSGEsR0FPWHFCLE9BUFcsQ0FHYnJCLFFBSGE7QUFBQSxRQUlKdUIsTUFKSSxHQU9YRixPQVBXLENBSWIsT0FKYTtBQUFBLFFBS2JHLFVBTGEsR0FPWEgsT0FQVyxDQUtiRyxVQUxhO0FBQUEsUUFNYkMsS0FOYSxHQU9YSixPQVBXLENBTWJJLEtBTmE7OztBQVNmLFFBQU1DLGVBQWUsS0FBSy9DLGlCQUExQjtBQUNBLFFBQU1nRCxXQUFXLEtBQUtsRCxTQUFMLENBQWV1QixRQUFmLENBQWpCOztBQUVBLFFBQU00QixvQkFBb0IsS0FBS2hELHNCQUFMLENBQTRCMkMsTUFBNUIsQ0FBMUI7QUFDQSxRQUFNTSxnQkFBZ0IsS0FBS25ELGNBQUwsQ0FBb0JzQixRQUFwQixLQUNqQixLQUFLdEIsY0FBTCxDQUFvQnNCLFFBQXBCLEVBQThCdUIsTUFBOUIsQ0FETDs7QUFHQSxRQUFJQSxNQUFKLEVBQVk7QUFDVixVQUFJTyx5QkFBeUJGLGtCQUFrQkcsTUFBbEIsQ0FBeUIsQ0FBQ0YsYUFBRCxDQUF6QixDQUE3Qjs7QUFFQSxjQUFRTixNQUFSO0FBQ0UsYUFBSyxPQUFMO0FBQ0UsZUFBS1MsZUFBTCxDQUFxQkYsc0JBQXJCLEVBQTZDTixVQUE3QztBQUNBO0FBQ0YsYUFBSyxTQUFMO0FBQ0UsZUFBS1EsZUFBTCxDQUFxQkYsc0JBQXJCLEVBQTZDLENBQUNMLEtBQUQsQ0FBN0M7QUFDQTtBQUNGLGFBQUssU0FBTDtBQUNFLGVBQUtPLGVBQUwsQ0FBcUJKLGtCQUFrQkcsTUFBbEIsQ0FBeUIsQ0FDM0NGLGlCQUFpQkYsUUFEMEIsRUFFNUNJLE1BRjRDLENBRXJDRixpQkFBaUIsRUFBakIsSUFBdUJILFlBRmMsQ0FBekIsQ0FBckIsRUFFZ0QsQ0FBQ0osSUFBRCxDQUZoRDtBQUdBO0FBQ0Y7QUFDRTtBQWJKO0FBZUQ7O0FBRUQsU0FBS1UsZUFBTCxDQUFxQk4sYUFBYUssTUFBYixDQUFvQixDQUFDSixRQUFELENBQXBCLENBQXJCLEVBQXNELENBQUNMLElBQUQsQ0FBdEQ7QUFDRCxHOztrQkFFRFUsZSw0QkFBZ0J2RCxTLEVBQVd3RCxJLEVBQU07QUFDL0IsU0FBSzlDLG1CQUFMLEdBQTJCLElBQTNCO0FBQ0EsU0FBS0MsYUFBTCxHQUFxQixLQUFLQyxZQUFMLENBQWtCSSxTQUFsQixFQUE2QixLQUFLakIsS0FBbEMsQ0FBckI7QUFDQSxTQUFLYyxnQ0FBTCxHQUF3QyxLQUF4Qzs7QUFFQSxRQUFJO0FBQ0YsV0FBSzRDLGdCQUFMLENBQXNCekQsU0FBdEIsRUFBaUN3RCxJQUFqQztBQUNELEtBRkQsU0FFVTtBQUNSLFVBQUksS0FBSzNDLGdDQUFULEVBQTJDO0FBQ3pDLGFBQUtkLEtBQUwsR0FBYSxLQUFLWSxhQUFsQjtBQUNBLGFBQUtHLElBQUwsQ0FBVSxRQUFWO0FBQ0Q7O0FBRUQsV0FBS0osbUJBQUwsR0FBMkIsS0FBM0I7QUFDQSxXQUFLQyxhQUFMLEdBQXFCSyxTQUFyQjtBQUNBLFdBQUtILGdDQUFMLEdBQXdDLEtBQXhDO0FBQ0Q7QUFDRixHOztrQkFFRDRDLGdCLDZCQUFpQnpELFMsRUFBV3dELEksRUFBTTtBQUFBOztBQUNoQ3hELGNBQVVzQyxPQUFWLENBQWtCO0FBQUEsYUFDZixPQUFPWSxRQUFQLEtBQW9CLFVBQXJCLElBQW9DQSxTQUFTUSxLQUFULFNBQXFCRixJQUFyQixDQURwQjtBQUFBLEtBQWxCO0FBRUQsRzs7Ozs7cUJBL0xrQjFELEs7OztBQWtNckIsU0FBUzJCLGNBQVQsQ0FBd0JrQyxnQkFBeEIsRUFBMEM7QUFDeEMsU0FBTyxPQUFPQSxnQkFBUCxLQUE0QixVQUE1QixHQUNIQSxpQkFBaUJDLEdBRGQsR0FFSEQsZ0JBRko7QUFHRCIsImZpbGUiOiJTdG9yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3RvcmVcbiAqXG4gKiBTdG9yZXMgaG9sZCBhcHBsaWNhdGlvbiBzdGF0ZS4gVGhleSByZXNwb25kIHRvIGFjdGlvbnMgc2VudCBieSB0aGUgZGlzcGF0Y2hlclxuICogYW5kIGJyb2FkY2FzdCBjaGFuZ2UgZXZlbnRzIHRvIGxpc3RlbmVycywgc28gdGhleSBjYW4gZ3JhYiB0aGUgbGF0ZXN0IGRhdGEuXG4gKiBUaGUga2V5IHRoaW5nIHRvIHJlbWVtYmVyIGlzIHRoYXQgdGhlIG9ubHkgd2F5IHN0b3JlcyByZWNlaXZlIGluZm9ybWF0aW9uXG4gKiBmcm9tIHRoZSBvdXRzaWRlIHdvcmxkIGlzIHZpYSB0aGUgZGlzcGF0Y2hlci5cbiAqL1xuXG5pbXBvcnQgRXZlbnRFbWl0dGVyIGZyb20gJ2V2ZW50ZW1pdHRlcjMnO1xuaW1wb3J0IGFzc2lnbiBmcm9tICdvYmplY3QtYXNzaWduJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3RvcmUgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuXG4gIC8qKlxuICAgKiBTdG9yZXMgYXJlIGluaXRpYWxpemVkIHdpdGggYSByZWZlcmVuY2VcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnN0YXRlID0gbnVsbDtcblxuICAgIHRoaXMuX2hhbmRsZXJzID0ge307XG4gICAgdGhpcy5fYXN5bmNIYW5kbGVycyA9IHt9O1xuICAgIHRoaXMuX2NhdGNoQWxsSGFuZGxlcnMgPSBbXTtcbiAgICB0aGlzLl9jYXRjaEFsbEFzeW5jSGFuZGxlcnMgPSB7XG4gICAgICBiZWdpbjogW10sXG4gICAgICBzdWNjZXNzOiBbXSxcbiAgICAgIGZhaWx1cmU6IFtdLFxuICAgIH07XG4gIH1cblxuICBzZXRTdGF0ZShuZXdTdGF0ZSkge1xuICAgIC8vIERvIGEgdHJhbnNhY3Rpb25hbCBzdGF0ZSB1cGRhdGUgaWYgYSBmdW5jdGlvbiBpcyBwYXNzZWRcbiAgICBpZiAodHlwZW9mIG5ld1N0YXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCBwcmV2U3RhdGUgPSB0aGlzLl9pc0hhbmRsaW5nRGlzcGF0Y2hcbiAgICAgICAgPyB0aGlzLl9wZW5kaW5nU3RhdGVcbiAgICAgICAgOiB0aGlzLnN0YXRlO1xuXG4gICAgICBuZXdTdGF0ZSA9IG5ld1N0YXRlKHByZXZTdGF0ZSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2lzSGFuZGxpbmdEaXNwYXRjaCkge1xuICAgICAgdGhpcy5fcGVuZGluZ1N0YXRlID0gdGhpcy5fYXNzaWduU3RhdGUodGhpcy5fcGVuZGluZ1N0YXRlLCBuZXdTdGF0ZSk7XG4gICAgICB0aGlzLl9lbWl0Q2hhbmdlQWZ0ZXJIYW5kbGluZ0Rpc3BhdGNoID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMuX2Fzc2lnblN0YXRlKHRoaXMuc3RhdGUsIG5ld1N0YXRlKTtcbiAgICAgIHRoaXMuZW1pdCgnY2hhbmdlJyk7XG4gICAgfVxuICB9XG5cbiAgcmVwbGFjZVN0YXRlKG5ld1N0YXRlKSB7XG4gICAgaWYgKHRoaXMuX2lzSGFuZGxpbmdEaXNwYXRjaCkge1xuICAgICAgdGhpcy5fcGVuZGluZ1N0YXRlID0gdGhpcy5fYXNzaWduU3RhdGUodW5kZWZpbmVkLCBuZXdTdGF0ZSk7XG4gICAgICB0aGlzLl9lbWl0Q2hhbmdlQWZ0ZXJIYW5kbGluZ0Rpc3BhdGNoID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMuX2Fzc2lnblN0YXRlKHVuZGVmaW5lZCwgbmV3U3RhdGUpO1xuICAgICAgdGhpcy5lbWl0KCdjaGFuZ2UnKTtcbiAgICB9XG4gIH1cblxuICBnZXRTdGF0ZUFzT2JqZWN0KCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlO1xuICB9XG5cbiAgc3RhdGljIGFzc2lnblN0YXRlKG9sZFN0YXRlLCBuZXdTdGF0ZSkge1xuICAgIHJldHVybiBhc3NpZ24oe30sIG9sZFN0YXRlLCBuZXdTdGF0ZSk7XG4gIH1cblxuICBfYXNzaWduU3RhdGUoLi4uYXJncyl7XG4gICAgcmV0dXJuICh0aGlzLmNvbnN0cnVjdG9yLmFzc2lnblN0YXRlIHx8IFN0b3JlLmFzc2lnblN0YXRlKSguLi5hcmdzKTtcbiAgfVxuXG4gIGZvcmNlVXBkYXRlKCkge1xuICAgIGlmICh0aGlzLl9pc0hhbmRsaW5nRGlzcGF0Y2gpIHtcbiAgICAgIHRoaXMuX2VtaXRDaGFuZ2VBZnRlckhhbmRsaW5nRGlzcGF0Y2ggPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtaXQoJ2NoYW5nZScpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyKGFjdGlvbklkLCBoYW5kbGVyKSB7XG4gICAgYWN0aW9uSWQgPSBlbnN1cmVBY3Rpb25JZChhY3Rpb25JZCk7XG5cbiAgICBpZiAodHlwZW9mIGhhbmRsZXIgIT09ICdmdW5jdGlvbicpIHJldHVybjtcblxuICAgIHRoaXMuX2hhbmRsZXJzW2FjdGlvbklkXSA9IGhhbmRsZXIuYmluZCh0aGlzKTtcbiAgfVxuXG4gIHJlZ2lzdGVyQXN5bmMoYWN0aW9uSWQsIGJlZ2luSGFuZGxlciwgc3VjY2Vzc0hhbmRsZXIsIGZhaWx1cmVIYW5kbGVyKSB7XG4gICAgYWN0aW9uSWQgPSBlbnN1cmVBY3Rpb25JZChhY3Rpb25JZCk7XG5cbiAgICBjb25zdCBhc3luY0hhbmRsZXJzID0gdGhpcy5fYmluZEFzeW5jSGFuZGxlcnMoe1xuICAgICAgYmVnaW46IGJlZ2luSGFuZGxlcixcbiAgICAgIHN1Y2Nlc3M6IHN1Y2Nlc3NIYW5kbGVyLFxuICAgICAgZmFpbHVyZTogZmFpbHVyZUhhbmRsZXIsXG4gICAgfSk7XG5cbiAgICB0aGlzLl9hc3luY0hhbmRsZXJzW2FjdGlvbklkXSA9IGFzeW5jSGFuZGxlcnM7XG4gIH1cblxuICByZWdpc3RlckFsbChoYW5kbGVyKSB7XG4gICAgaWYgKHR5cGVvZiBoYW5kbGVyICE9PSAnZnVuY3Rpb24nKSByZXR1cm47XG5cbiAgICB0aGlzLl9jYXRjaEFsbEhhbmRsZXJzLnB1c2goaGFuZGxlci5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIHJlZ2lzdGVyQWxsQXN5bmMoYmVnaW5IYW5kbGVyLCBzdWNjZXNzSGFuZGxlciwgZmFpbHVyZUhhbmRsZXIpIHtcbiAgICBjb25zdCBhc3luY0hhbmRsZXJzID0gdGhpcy5fYmluZEFzeW5jSGFuZGxlcnMoe1xuICAgICAgYmVnaW46IGJlZ2luSGFuZGxlcixcbiAgICAgIHN1Y2Nlc3M6IHN1Y2Nlc3NIYW5kbGVyLFxuICAgICAgZmFpbHVyZTogZmFpbHVyZUhhbmRsZXIsXG4gICAgfSk7XG5cbiAgICBPYmplY3Qua2V5cyhhc3luY0hhbmRsZXJzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIHRoaXMuX2NhdGNoQWxsQXN5bmNIYW5kbGVyc1trZXldLnB1c2goXG4gICAgICAgIGFzeW5jSGFuZGxlcnNba2V5XVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIF9iaW5kQXN5bmNIYW5kbGVycyhhc3luY0hhbmRsZXJzKSB7XG4gICAgZm9yIChsZXQga2V5IGluIGFzeW5jSGFuZGxlcnMpIHtcbiAgICAgIGlmICghYXN5bmNIYW5kbGVycy5oYXNPd25Qcm9wZXJ0eShrZXkpKSBjb250aW51ZTtcblxuICAgICAgY29uc3QgaGFuZGxlciA9IGFzeW5jSGFuZGxlcnNba2V5XTtcblxuICAgICAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGFzeW5jSGFuZGxlcnNba2V5XSA9IGhhbmRsZXIuYmluZCh0aGlzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlbGV0ZSBhc3luY0hhbmRsZXJzW2tleV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzeW5jSGFuZGxlcnM7XG4gIH1cblxuICB3YWl0Rm9yKHRva2Vuc09yU3RvcmVzKSB7XG4gICAgdGhpcy5fd2FpdEZvcih0b2tlbnNPclN0b3Jlcyk7XG4gIH1cblxuICBoYW5kbGVyKHBheWxvYWQpIHtcbiAgICBjb25zdCB7XG4gICAgICBib2R5LFxuICAgICAgYWN0aW9uSWQsXG4gICAgICAnYXN5bmMnOiBfYXN5bmMsXG4gICAgICBhY3Rpb25BcmdzLFxuICAgICAgZXJyb3JcbiAgICB9ID0gcGF5bG9hZDtcblxuICAgIGNvbnN0IF9hbGxIYW5kbGVycyA9IHRoaXMuX2NhdGNoQWxsSGFuZGxlcnM7XG4gICAgY29uc3QgX2hhbmRsZXIgPSB0aGlzLl9oYW5kbGVyc1thY3Rpb25JZF07XG5cbiAgICBjb25zdCBfYWxsQXN5bmNIYW5kbGVycyA9IHRoaXMuX2NhdGNoQWxsQXN5bmNIYW5kbGVyc1tfYXN5bmNdO1xuICAgIGNvbnN0IF9hc3luY0hhbmRsZXIgPSB0aGlzLl9hc3luY0hhbmRsZXJzW2FjdGlvbklkXVxuICAgICAgJiYgdGhpcy5fYXN5bmNIYW5kbGVyc1thY3Rpb25JZF1bX2FzeW5jXTtcblxuICAgIGlmIChfYXN5bmMpIHtcbiAgICAgIGxldCBiZWdpbk9yRmFpbHVyZUhhbmRsZXJzID0gX2FsbEFzeW5jSGFuZGxlcnMuY29uY2F0KFtfYXN5bmNIYW5kbGVyXSk7XG5cbiAgICAgIHN3aXRjaCAoX2FzeW5jKSB7XG4gICAgICAgIGNhc2UgJ2JlZ2luJzpcbiAgICAgICAgICB0aGlzLl9wZXJmb3JtSGFuZGxlcihiZWdpbk9yRmFpbHVyZUhhbmRsZXJzLCBhY3Rpb25BcmdzKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgJ2ZhaWx1cmUnOlxuICAgICAgICAgIHRoaXMuX3BlcmZvcm1IYW5kbGVyKGJlZ2luT3JGYWlsdXJlSGFuZGxlcnMsIFtlcnJvcl0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgICAgdGhpcy5fcGVyZm9ybUhhbmRsZXIoX2FsbEFzeW5jSGFuZGxlcnMuY29uY2F0KFtcbiAgICAgICAgICAgIChfYXN5bmNIYW5kbGVyIHx8IF9oYW5kbGVyKVxuICAgICAgICAgIF0uY29uY2F0KF9hc3luY0hhbmRsZXIgJiYgW10gfHwgX2FsbEhhbmRsZXJzKSksIFtib2R5XSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9wZXJmb3JtSGFuZGxlcihfYWxsSGFuZGxlcnMuY29uY2F0KFtfaGFuZGxlcl0pLCBbYm9keV0pO1xuICB9XG5cbiAgX3BlcmZvcm1IYW5kbGVyKF9oYW5kbGVycywgYXJncykge1xuICAgIHRoaXMuX2lzSGFuZGxpbmdEaXNwYXRjaCA9IHRydWU7XG4gICAgdGhpcy5fcGVuZGluZ1N0YXRlID0gdGhpcy5fYXNzaWduU3RhdGUodW5kZWZpbmVkLCB0aGlzLnN0YXRlKTtcbiAgICB0aGlzLl9lbWl0Q2hhbmdlQWZ0ZXJIYW5kbGluZ0Rpc3BhdGNoID0gZmFsc2U7XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5fcGVyZm9ybUhhbmRsZXJzKF9oYW5kbGVycywgYXJncyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmICh0aGlzLl9lbWl0Q2hhbmdlQWZ0ZXJIYW5kbGluZ0Rpc3BhdGNoKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLl9wZW5kaW5nU3RhdGU7XG4gICAgICAgIHRoaXMuZW1pdCgnY2hhbmdlJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2lzSGFuZGxpbmdEaXNwYXRjaCA9IGZhbHNlO1xuICAgICAgdGhpcy5fcGVuZGluZ1N0YXRlID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5fZW1pdENoYW5nZUFmdGVySGFuZGxpbmdEaXNwYXRjaCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIF9wZXJmb3JtSGFuZGxlcnMoX2hhbmRsZXJzLCBhcmdzKSB7XG4gICAgX2hhbmRsZXJzLmZvckVhY2goX2hhbmRsZXIgPT5cbiAgICAgICh0eXBlb2YgX2hhbmRsZXIgPT09ICdmdW5jdGlvbicpICYmIF9oYW5kbGVyLmFwcGx5KHRoaXMsIGFyZ3MpKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBlbnN1cmVBY3Rpb25JZChhY3Rpb25PckFjdGlvbklkKSB7XG4gIHJldHVybiB0eXBlb2YgYWN0aW9uT3JBY3Rpb25JZCA9PT0gJ2Z1bmN0aW9uJ1xuICAgID8gYWN0aW9uT3JBY3Rpb25JZC5faWRcbiAgICA6IGFjdGlvbk9yQWN0aW9uSWQ7XG59XG4iXX0=
{
"name": "flummox",
"version": "3.6.8",
"version": "3.6.9",
"description": "Idiomatic, modular, testable, isomorphic Flux. No singletons required.",

@@ -58,4 +58,5 @@ "main": "lib/Flux.js",

"object-assign": "^4.0.1",
"prop-types": "^15.5.10",
"uniqueid": "~0.1.0"
}
}
SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc