Socket
Socket
Sign inDemoInstall

@interactjs/modifiers

Package Overview
Dependencies
Maintainers
2
Versions
136
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@interactjs/modifiers - npm Package Compare versions

Comparing version 1.4.0-alpha.28 to 1.4.0-alpha.29

base.spec.d.ts

10

base.js

@@ -53,3 +53,3 @@ import extend from '@interactjs/utils/extend';

function start({ interaction, phase }, pageCoords, registeredModifiers) {
const { target: interactable, element } = interaction;
const { interactable, element } = interaction;
const modifierList = getModifierList(interaction, registeredModifiers);

@@ -134,3 +134,3 @@ const states = prepareStates(modifierList);

function beforeMove({ interaction, phase, preEnd, skipModifiers }) {
const { target: interactable, element } = interaction;
const { interactable, element } = interaction;
const modifierResult = setAll({

@@ -185,3 +185,3 @@ interaction,

states,
interactable: interaction.target,
interactable: interaction.interactable,
element: interaction.element,

@@ -224,3 +224,3 @@ }, arg);

function getModifierList(interaction, registeredModifiers) {
const actionOptions = interaction.target.options[interaction.prepared.name];
const actionOptions = interaction.interactable.options[interaction.prepared.name];
const actionModifiers = actionOptions.modifiers;

@@ -294,2 +294,2 @@ if (actionModifiers && actionModifiers.length) {

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxNQUFNLE1BQU0sMEJBQTBCLENBQUE7QUFvQjdDLFNBQVMsT0FBTyxDQUFFLEtBQVk7SUFDNUIsTUFBTSxFQUNKLFlBQVksR0FDYixHQUFHLEtBQUssQ0FBQTtJQUVULEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUE7SUFDdkMsS0FBSyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUE7SUFFcEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFO1FBQ2pELFdBQVcsQ0FBQyxTQUFTLEdBQUc7WUFDdEIsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRTtZQUNyRCxPQUFPLEVBQU0sRUFBRTtZQUNmLE1BQU0sRUFBSyxJQUFJO1lBQ2YsTUFBTSxFQUFPLElBQUk7U0FDbEIsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0lBRUYsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNyRCxLQUFLLENBQUMsR0FBVSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3ZFLENBQUMsQ0FBQyxDQUFBO0lBRUYsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDL0MsVUFBVSxDQUFDLEdBQVUsQ0FBQyxDQUFBO1FBQ3RCLEtBQUssQ0FBQyxHQUFVLEVBQUUsR0FBRyxDQUFDLFdB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QUNSLE1BQU0sRUFDTixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBRWxCLDhCQUE4QjtRQUM5QixRQUFRLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQTtRQUM3QixRQUFRLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQTtLQUM1QjtJQUVELE9BQU8sUUFBUSxDQUFBO0FBQ2pCLENBQUM7QUFFRCxlQUFlO0lBQ2IsT0FBTztJQUNQLFFBQVE7SUFDUixNQUFNO0lBQ04sYUFBYTtJQUNiLEtBQUs7SUFDTCxVQUFVO0lBQ1YsU0FBUztJQUNULElBQUk7SUFDSixRQUFRO0lBQ1IsZUFBZTtJQUNmLGFBQWE7SUFDYixZQUFZO0NBQ2IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjb3BlIH0gZnJvbSAnQGludGVyYWN0anMvY29yZS9zY29wZSdcbmltcG9ydCBleHRlbmQgZnJvbSAnQGludGVyYWN0anMvdXRpbHMvZXh0ZW5kJ1xuXG5kZWNsYXJlIG1vZHVsZSAnQGludGVyYWN0anMvY29yZS9zY29wZScge1xuICBpbnRlcmZhY2UgU2NvcGUge1xuICAgIG1vZGlmaWVycz86IGFueVxuICB9XG59XG5cbmRlY2xhcmUgbW9kdWxlICdAaW50ZXJhY3Rqcy9jb3JlL0ludGVyYWN0aW9uJyB7XG4gIGludGVyZmFjZSBJbnRlcmFjdGlvbiB7XG4gICAgbW9kaWZpZXJzPzogYW55XG4gIH1cbn1cblxuZGVjbGFyZSBtb2R1bGUgJ0BpbnRlcmFjdGpzL2NvcmUvZGVmYXVsdE9wdGlvbnMnIHtcbiAgaW50ZXJmYWNlIFBlckFjdGlvbkRlZmF1bHRzIHtcbiAgICBtb2RpZmllcnM/OiBhbnlbXVxuICB9XG59XG5cbmZ1bmN0aW9uIGluc3RhbGwgKHNjb3BlOiBTY29wZSkge1xuICBjb25zdCB7XG4gICAgaW50ZXJhY3Rpb25zLFxuICB9ID0gc2NvcGVcblxuICBzY29wZS5kZWZhdWx0cy5wZXJBY3Rpb24ubW9kaWZpZXJzID0gW11cbiAgc2NvcGUubW9kaWZpZXJzID0ge31cblxuICBpbnRlcmFjdGlvbnMuc2lnbmFscy5vbignbmV3JywgKHsgaW50ZXJhY3Rpb24gfSkgPT4ge1xuICAgIGludGVyYWN0aW9uLm1vZGlmaWVycyA9IHtcbiAgICAgIHN0YXJ0T2Zmc2V0OiB7IGxlZnQ6IDAsIHJpZ2h0OiAwLCB0b3A6IDAsIGJvdHRvbTogMCB9LFxuICAgICAgb2Zmc2V0cyAgICA6IHt9LFxuICAgICAgc3RhdGVzICAgOiBudWxsLFxuICAgICAgcmVzdWx0ICAgICA6IG51bGwsXG4gICAgfVxuICB9KVxuXG4gIGludGVyYWN0aW9ucy5zaWduYWxzLm9uKCdiZWZvcmUtYWN0aW9uLXN0YXJ0JywgKGFyZykgPT4ge1xuICAgIHN0YXJ0KGFyZyBhcyBhbnksIGFyZy5pbnRlcmFjdGlvbi5jb29yZHMuc3RhcnQucGFnZSwgc2NvcGUubW9kaWZpZXJzKVxuICB9KVxuXG4gIGludGVyYWN0aW9ucy5zaWduYWxzLm9uKCdhY3Rpb24tcmVzdW1lJywgKGFyZykgPT4ge1xuICAgIGJlZm9yZU1vdmUoYXJnIGFzIGFueSlcbiAgICBzdGFydChhcmcgYXMgYW55LCBhcmcuaW50ZXJhY3Rpb24uY29vcmRzLmN1ci5wYWdlLCBzY29wZS5tb2RpZmllcnMpXG4gIH0pXG5cbiAgaW50ZXJhY3Rpb25zLnNpZ25hbHMub24oJ2JlZm9yZS1hY3Rpb24tbW92ZScsIGJlZm9yZU1vdmUpXG4gIGludGVyYWN0aW9ucy5zaWduYWxzLm9uKCdiZWZvcmUtYWN0aW9uLWVuZCcsIGJlZm9yZUVuZClcblxuICBpbnRlcmFjdGlvbnMuc2lnbmFscy5vbignYmVmb3JlLWFjdGlvbi1zdGFydCcsIHNldENvb3JkcylcbiAgaW50ZXJhY3Rpb25zLnNpZ25hbHMub24oJ2JlZm9yZS1hY3Rpb24tbW92ZScsIHNldENvb3JkcylcblxuICBpbnRlcmFjdGlvbnMuc2lnbmFscy5vbignYWZ0ZXItYWN0aW9uLXN0YXJ0JywgcmVzdG9yZUNvb3JkcyBhcyBhbnkpXG4gIGludGVyYWN0aW9ucy5zaWduYWxzLm9uKCdhZnRlci1hY3Rpb24tbW92ZScsIHJlc3RvcmVDb29yZHMgYXMgYW55KVxuICBpbnRlcmFjdGlvbnMuc2lnbmFscy5vbignc3RvcCcsIHN0b3ApXG59XG5cbmZ1bmN0aW9uIHN0YXJ0QWxsIChhcmcpIHtcbiAgZm9yIChjb25zdCBzdGF0ZSBvZiBhcmcuc3RhdGVzKSB7XG4gICAgaWYgKHN0YXRlLm1ldGhvZHMuc3RhcnQpIHtcbiAgICAgIGFyZy5zdGF0ZSA9IHN0YXRlXG4gICAgICBzdGF0ZS5tZXRob2RzLnN0YXJ0KGFyZylcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0UmVjdE9mZnNldCAocmVjdCwgY29vcmRzKSB7XG4gIHJldHVybiByZWN0XG4gICAgPyB7XG4gICAgICBsZWZ0ICA6IGNvb3Jkcy54IC0gcmVjdC5sZWZ0LFxuICAgICAgdG9wICAgOiBjb29yZHMueSAtIHJlY3QudG9wLFxuICAgICAgcmlnaHQgOiByZWN0LnJpZ2h0ICAtIGNvb3Jkcy54LFxuICAgICAgYm90dG9tOiByZWN0LmJvdHRvbSAtIGNvb3Jkcy55LFxuICAgIH1cbiAgICA6IHtcbiAgICAgIGxlZnQgIDogMCxcbiAgICAgIHRvcCAgIDogMCxcbiAgICAgIHJpZ2h0IDogMCxcbiAgICAgIGJvdHRvbTogMCxcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHN0YXJ0IChcbiAgeyBpbnRlcmFjdGlvbiwgcGhhc2UgfTogSW50ZXJhY3QuU2lnbmFsQXJnLFxuICBwYWdlQ29vcmRzOiBJbnRlcmFjdC5Qb2ludCxcbiAgcmVnaXN0ZXJlZE1vZGlmaWVycyxcbikge1xuICBjb25zdCB7IHRhcmdldDogaW50ZXJhY3RhYmxlLCBlbGVtZW50IH0gPSBpbnRlcmFjdGlvblxuICBjb25zdCBtb2RpZmllckxpc3QgPSBnZXRNb2RpZmllckxpc3QoaW50ZXJhY3Rpb24sIHJlZ2lzdGVyZWRNb2RpZmllcnMpXG4gIGNvbnN0IHN0YXRlcyA9IHByZXBhcmVTdGF0ZXMobW9kaWZpZXJMaXN0KVxuXG4gIGNvbnN0IHJlY3QgPSBleHRlbmQoe30sIGludGVyYWN0YWJsZS5nZXRSZWN0KGVsZW1lbnQpKSBhcyAgSW50ZXJhY3QuUmVjdCAmIEludGVyYWN0LlJlY3QyXG5cbiAgaWYgKCEoJ3dpZHRoJyAgaW4gcmVjdCkpIHsgcmVjdC53aWR0aCAgPSByZWN0LnJpZ2h0ICAtIHJlY3QubGVmdCB9XG4gIGlmICghKCdoZWlnaHQnIGluIHJlY3QpKSB7IHJlY3QuaGVpZ2h0ID0gcmVjdC5ib3R0b20gLSByZWN0LnRvcCAgfVxuXG4gIGNvbnN0IHN0YXJ0T2Zmc2V0ID0gZ2V0UmVjdE9mZnNldChyZWN0LCBwYWdlQ29vcmRzKVxuXG4gIGludGVyYWN0aW9uLm1vZGlmaWVycy5zdGFydE9mZnNldCA9IHN0YXJ0T2Zmc2V0XG4gIGludGVyYWN0aW9uLm1vZGlmaWVycy5zdGFydERlbHRhID0geyB4OiAwLCB5OiAwIH1cblxuICBjb25zdCBhcmc6IFBhcnRpYWw8SW50ZXJhY3QuU2lnbmFsQXJnPiA9IHtcbiAgICBpbnRlcmFjdGlvbixcbiAgICBpbnRlcmFjdGFibGUsXG4gICAgZWxlbWVudCxcbiAgICBwYWdlQ29vcmRzLFxuICAgIHBoYXNlLFxuICAgIHJlY3QsXG4gICAgc3RhcnRPZmZzZXQsXG4gICAgc3RhdGVzLFxuICAgIHByZUVuZDogZmFsc2UsXG4gICAgcmVxdWlyZUVuZE9ubHk6IGZhbHNlLFxuICB9XG5cbiAgaW50ZXJhY3Rpb24ubW9kaWZpZXJzLnN0YXRlcyA9IHN0YXRlc1xuICBpbnRlcmFjdGlvbi5tb2RpZmllcnMucmVzdWx0ID0gbnVsbFxuICBzdGFydEFsbChhcmcpXG5cbiAgYXJnLnBhZ2VDb29yZHMgPSBleHRlbmQoe30sIGludGVyYWN0aW9uLmNvb3Jkcy5zdGFydC5wYWdlKVxuXG4gIGNvbnN0IHJlc3VsdCA9IGludGVyYWN0aW9uLm1vZGlmaWVycy5yZXN1bHQgPSBzZXRBbGwoYXJnKVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuZnVuY3Rpb24gc2V0QWxsIChhcmc6IFBhcnRpYWw8SW50ZXJhY3QuU2lnbmFsQXJnPikge1xuICBjb25zdCB7IGludGVyYWN0aW9uLCBwaGFzZSwgcHJlRW5kLCByZXF1aXJlRW5kT25seSwgcmVjdCwgc2tpcE1vZGlmaWVycyB9ID0gYXJnXG5cbiAgY29uc3Qgc3RhdGVzID0gc2tpcE1vZGlmaWVyc1xuICAgID8gYXJnLnN0YXRlcy5zbGljZShpbnRlcmFjdGlvbi5tb2RpZmllcnMuc2tpcClcbiAgICA6IGFyZy5zdGF0ZXNcblxuICBhcmcuY29vcmRzID0gZXh0ZW5kKHt9LCBhcmcucGFnZUNvb3JkcylcbiAgYXJnLnJlY3QgPSBleHRlbmQoe30sIHJlY3QpXG5cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIGRlbHRhOiB7IHg6IDAsIHk6IDAgfSxcbiAgICBjb29yZHM6IGFyZy5jb29yZHMsXG4gICAgY2hhbmdlZDogdHJ1ZSxcbiAgfVxuXG4gIGZvciAoY29uc3Qgc3RhdGUgb2Ygc3RhdGVzKSB7XG4gICAgY29uc3QgeyBvcHRpb25zIH0gPSBzdGF0ZVxuXG4gICAgaWYgKCFzdGF0ZS5tZXRob2RzLnNldCB8fFxuICAgICAgIXNob3VsZERvKG9wdGlvbnMsIHByZUVuZCwgcmVxdWlyZUVuZE9ubHksIHBoYXNlKSkgeyBjb250aW51ZSB9XG5cbiAgICBhcmcuc3RhdGUgPSBzdGF0ZVxuICAgIHN0YXRlLm1ldGhvZHMuc2V0KGFyZylcbiAgfVxuXG4gIHJlc3VsdC5kZWx0YS54ID0gYXJnLmNvb3Jkcy54IC0gYXJnLnBhZ2VDb29yZHMueFxuICByZXN1bHQuZGVsdGEueSA9IGFyZy5jb29yZHMueSAtIGFyZy5wYWdlQ29vcmRzLnlcblxuICBjb25zdCBwcmV2Q29vcmRzID0gaW50ZXJhY3Rpb24ubW9kaWZpZXJzLnJlc3VsdFxuICAgID8gaW50ZXJhY3Rpb24ubW9kaWZpZXJzLnJlc3VsdC5jb29yZHNcbiAgICA6IGludGVyYWN0aW9uLmNvb3Jkcy5wcmV2LnBhZ2VcblxuICByZXN1bHQuY2hhbmdlZCA9IChcbiAgICBwcmV2Q29vcmRzLnggIT09IHJlc3VsdC5jb29yZHMueCB8fFxuICAgIHByZXZDb29yZHMueSAhPT0gcmVzdWx0LmNvb3Jkcy55KVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuZnVuY3Rpb24gcHJlcGFyZVN0YXRlcyAobW9kaWZpZXJMaXN0KSB7XG4gIGNvbnN0IHN0YXRlcyA9IFtdXG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG1vZGlmaWVyTGlzdC5sZW5ndGg7IGluZGV4KyspIHtcbiAgICBjb25zdCB7IG9wdGlvbnMsIG1ldGhvZHMsIG5hbWUgfSA9IG1vZGlmaWVyTGlzdFtpbmRleF1cblxuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZW5hYmxlZCA9PT0gZmFsc2UpIHsgY29udGludWUgfVxuXG4gICAgY29uc3Qgc3RhdGUgPSB7XG4gICAgICBvcHRpb25zLFxuICAgICAgbWV0aG9kcyxcbiAgICAgIGluZGV4LFxuICAgICAgbmFtZSxcbiAgICB9XG5cbiAgICBzdGF0ZXMucHVzaChzdGF0ZSlcbiAgfVxuXG4gIHJldHVybiBzdGF0ZXNcbn1cblxuZnVuY3Rpb24gYmVmb3JlTW92ZSAoeyBpbnRlcmFjdGlvbiwgcGhhc2UsIHByZUVuZCwgc2tpcE1vZGlmaWVycyB9KTogdm9pZCB8IGZhbHNlIHtcbiAgY29uc3QgeyB0YXJnZXQ6IGludGVyYWN0YWJsZSwgZWxlbWVudCB9ID0gaW50ZXJhY3Rpb25cbiAgY29uc3QgbW9kaWZpZXJSZXN1bHQgPSBzZXRBbGwoXG4gICAge1xuICAgICAgaW50ZXJhY3Rpb24sXG4gICAgICBpbnRlcmFjdGFibGUsXG4gICAgICBlbGVtZW50LFxuICAgICAgcHJlRW5kLFxuICAgICAgcGhhc2UsXG4gICAgICBwYWdlQ29vcmRzOiBpbnRlcmFjdGlvbi5jb29yZHMuY3VyLnBhZ2UsXG4gICAgICByZWN0OiBpbnRlcmFjdGFibGUuZ2V0UmVjdChlbGVtZW50KSxcbiAgICAgIHN0YXRlczogaW50ZXJhY3Rpb24ubW9kaWZpZXJzLnN0YXRlcyxcbiAgICAgIHJlcXVpcmVFbmRPbmx5OiBmYWxzZSxcbiAgICAgIHNraXBNb2RpZmllcnMsXG4gICAgfSlcblxuICBpbnRlcmFjdGlvbi5tb2RpZmllcnMucmVzdWx0ID0gbW9kaWZpZXJSZXN1bHRcblxuICAvLyBkb24ndCBmaXJlIGFuIGFjdGlvbiBtb3ZlIGlmIGEgbW9kaWZpZXIgd291bGQga2VlcCB0aGUgZXZlbnQgaW4gdGhlIHNhbWVcbiAgLy8gY29yZGluYXRlcyBhcyBiZWZvcmVcbiAgaWYgKCFtb2RpZmllclJlc3VsdC5jaGFuZ2VkICYmIGludGVyYWN0aW9uLmludGVyYWN0aW5nKCkpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5mdW5jdGlvbiBiZWZvcmVFbmQgKGFyZyk6IHZvaWQgfCBmYWxzZSB7XG4gIGNvbnN0IHsgaW50ZXJhY3Rpb24sIGV2ZW50LCBub1ByZUVuZCB9ID0gYXJnXG4gIGNvbnN0IHN0YXRlcyA9IGludGVyYWN0aW9uLm1vZGlmaWVycy5zdGF0ZXNcblxuICBpZiAobm9QcmVFbmQgfHwgIXN0YXRlcyB8fCAhc3RhdGVzLmxlbmd0aCkge1xuICAgIHJldHVyblxuICB9XG5cbiAgbGV0IGRpZFByZUVuZCA9IGZhbHNlXG5cbiAgZm9yIChjb25zdCBzdGF0ZSBvZiBzdGF0ZXMpIHtcbiAgICBhcmcuc3RhdGUgPSBzdGF0ZVxuICAgIGNvbnN0IHsgb3B0aW9ucywgbWV0aG9kcyB9ID0gc3RhdGVcblxuICAgIGNvbnN0IGVuZFJlc3VsdCA9IG1ldGhvZHMuYmVmb3JlRW5kICYmIG1ldGhvZHMuYmVmb3JlRW5kKGFyZylcblxuICAgIGlmIChlbmRSZXN1bHQgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICAvLyBpZiB0aGUgZW5kT25seSBvcHRpb24gaXMgdHJ1ZSBmb3IgYW55IG1vZGlmaWVyXG4gICAgaWYgKCFkaWRQcmVFbmQgJiYgc2hvdWxkRG8ob3B0aW9ucywgdHJ1ZSwgdHJ1ZSkpIHtcbiAgICAgIC8vIGZpcmUgYSBtb3ZlIGV2ZW50IGF0IHRoZSBtb2RpZmllZCBjb29yZGluYXRlc1xuICAgICAgaW50ZXJhY3Rpb24ubW92ZSh7IGV2ZW50LCBwcmVFbmQ6IHRydWUgfSlcbiAgICAgIGRpZFByZUVuZCA9IHRydWVcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc3RvcCAoYXJnKSB7XG4gIGNvbnN0IHsgaW50ZXJhY3Rpb24gfSA9IGFyZ1xuICBjb25zdCBzdGF0ZXMgPSBpbnRlcmFjdGlvbi5tb2RpZmllcnMuc3RhdGVzXG5cbiAgaWYgKCFzdGF0ZXMgfHwgIXN0YXRlcy5sZW5ndGgpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IG1vZGlmaWVyQXJnID0gZXh0ZW5kKHtcbiAgICBzdGF0ZXMsXG4gICAgaW50ZXJhY3RhYmxlOiBpbnRlcmFjdGlvbi50YXJnZXQsXG4gICAgZWxlbWVudDogaW50ZXJhY3Rpb24uZWxlbWVudCxcbiAgfSwgYXJnKVxuXG4gIHJlc3RvcmVDb29yZHMoYXJnKVxuXG4gIGZvciAoY29uc3Qgc3RhdGUgb2Ygc3RhdGVzKSB7XG4gICAgbW9kaWZpZXJBcmcuc3RhdGUgPSBzdGF0ZVxuXG4gICAgaWYgKHN0YXRlLm1ldGhvZHMuc3RvcCkgeyBzdGF0ZS5tZXRob2RzLnN0b3AobW9kaWZpZXJBcmcpIH1cbiAgfVxuXG4gIGFyZy5pbnRlcmFjdGlvbi5tb2RpZmllcnMuc3RhdGVzID0gbnVsbFxufVxuXG5mdW5jdGlvbiBzZXRDb29yZHMgKGFyZykge1xuICBjb25zdCB7IGludGVyYWN0aW9uLCBwaGFzZSB9ID0gYXJnXG4gIGNvbnN0IGN1ckNvb3JkcyA9IGFyZy5jdXJDb29yZHMgfHwgaW50ZXJhY3Rpb24uY29vcmRzLmN1clxuICBjb25zdCBzdGFydENvb3JkcyA9IGFyZy5zdGFydENvb3JkcyB8fCBpbnRlcmFjdGlvbi5jb29yZHMuc3RhcnRcbiAgY29uc3QgeyByZXN1bHQsIHN0YXJ0RGVsdGEgfSA9IGludGVyYWN0aW9uLm1vZGlmaWVyc1xuICBjb25zdCBjdXJEZWx0YSA9IHJlc3VsdC5kZWx0YVxuXG4gIGlmIChwaGFzZSA9PT0gJ3N0YXJ0Jykge1xuICAgIGV4dGVuZChpbnRlcmFjdGlvbi5tb2RpZmllcnMuc3RhcnREZWx0YSwgcmVzdWx0LmRlbHRhKVxuICB9XG5cbiAgZm9yIChjb25zdCBbY29vcmRzU2V0LCBkZWx0YV0gb2YgW1tzdGFydENvb3Jkcywgc3RhcnREZWx0YV0sIFtjdXJDb29yZHMsIGN1ckRlbHRhXV0pIHtcbiAgICBjb29yZHNTZXQucGFnZS54ICAgKz0gZGVsdGEueFxuICAgIGNvb3Jkc1NldC5wYWdlLnkgICArPSBkZWx0YS55XG4gICAgY29vcmRzU2V0LmNsaWVudC54ICs9IGRlbHRhLnhcbiAgICBjb29yZHNTZXQuY2xpZW50LnkgKz0gZGVsdGEueVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlc3RvcmVDb29yZHMgKHsgaW50ZXJhY3Rpb246IHsgY29vcmRzLCBtb2RpZmllcnMgfSB9KSB7XG4gIGNvbnN0IHsgc3RhcnREZWx0YSwgcmVzdWx0OiB7IGRlbHRhOiBjdXJEZWx0YSB9IH0gPSBtb2RpZmllcnNcblxuICBmb3IgKGNvbnN0IFtjb29yZHNTZXQsIGRlbHRhXSBvZiBbW2Nvb3Jkcy5zdGFydCwgc3RhcnREZWx0YV0sIFtjb29yZHMuY3VyLCBjdXJEZWx0YV1dKSB7XG4gICAgY29vcmRzU2V0LnBhZ2UueCAtPSBkZWx0YS54XG4gICAgY29vcmRzU2V0LnBhZ2UueSAtPSBkZWx0YS55XG4gICAgY29vcmRzU2V0LmNsaWVudC54IC09IGRlbHRhLnhcbiAgICBjb29yZHNTZXQuY2xpZW50LnkgLT0gZGVsdGEueVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldE1vZGlmaWVyTGlzdCAoaW50ZXJhY3Rpb24sIHJlZ2lzdGVyZWRNb2RpZmllcnMpIHtcbiAgY29uc3QgYWN0aW9uT3B0aW9ucyA9IGludGVyYWN0aW9uLnRhcmdldC5vcHRpb25zW2ludGVyYWN0aW9uLnByZXBhcmVkLm5hbWVdXG4gIGNvbnN0IGFjdGlvbk1vZGlmaWVycyA9IGFjdGlvbk9wdGlvbnMubW9kaWZpZXJzXG5cbiAgaWYgKGFjdGlvbk1vZGlmaWVycyAmJiBhY3Rpb25Nb2RpZmllcnMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGFjdGlvbk1vZGlmaWVycy5tYXAoKG1vZGlmaWVyKSA9PiB7XG4gICAgICBpZiAoIW1vZGlmaWVyLm1ldGhvZHMgJiYgbW9kaWZpZXIudHlwZSkge1xuICAgICAgICByZXR1cm4gcmVnaXN0ZXJlZE1vZGlmaWVyc1ttb2RpZmllci50eXBlXShtb2RpZmllcilcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG1vZGlmaWVyXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBbJ3NuYXAnLCAnc25hcFNpemUnLCAnc25hcEVkZ2VzJywgJ3Jlc3RyaWN0JywgJ3Jlc3RyaWN0RWRnZXMnLCAncmVzdHJpY3RTaXplJ11cbiAgICAubWFwKCh0eXBlKSA9PiB7XG4gICAgICBjb25zdCBvcHRpb25zID0gYWN0aW9uT3B0aW9uc1t0eXBlXVxuXG4gICAgICByZXR1cm4gb3B0aW9ucyAmJiBvcHRpb25zLmVuYWJsZWQgJiYge1xuICAgICAgICBvcHRpb25zLFxuICAgICAgICBtZXRob2RzOiBvcHRpb25zLl9tZXRob2RzLFxuICAgICAgfVxuICAgIH0pXG4gICAgLmZpbHRlcigobSkgPT4gISFtKVxufVxuXG5mdW5jdGlvbiBzaG91bGREbyAob3B0aW9ucywgcHJlRW5kPzogYm9vbGVhbiwgcmVxdWlyZUVuZE9ubHk/OiBib29sZWFuLCBwaGFzZT86IHN0cmluZykge1xuICByZXR1cm4gb3B0aW9uc1xuICAgID8gb3B0aW9ucy5lbmFibGVkICE9PSBmYWxzZSAmJlxuICAgICAgKHByZUVuZCB8fCAhb3B0aW9ucy5lbmRPbmx5KSAmJlxuICAgICAgKCFyZXF1aXJlRW5kT25seSB8fCBvcHRpb25zLmVuZE9ubHkpICYmXG4gICAgICAob3B0aW9ucy5zZXRTdGFydCB8fCBwaGFzZSAhPT0gJ3N0YXJ0JylcbiAgICA6ICFyZXF1aXJlRW5kT25seVxufVxuXG5mdW5jdGlvbiBtYWtlTW9kaWZpZXIgKG1vZHVsZSwgbmFtZT86IHN0cmluZykge1xuICBjb25zdCB7IGRlZmF1bHRzIH0gPSBtb2R1bGVcbiAgY29uc3QgbWV0aG9kcyA9IHtcbiAgICBzdGFydDogbW9kdWxlLnN0YXJ0LFxuICAgIHNldDogbW9kdWxlLnNldCxcbiAgICBiZWZvcmVFbmQ6IG1vZHVsZS5iZWZvcmVFbmQsXG4gICAgc3RvcDogbW9kdWxlLnN0b3AsXG4gIH1cblxuICBjb25zdCBtb2RpZmllciA9IChvcHRpb25zKSA9PiB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge31cblxuICAgIC8vIGFkZCBtaXNzaW5nIGRlZmF1bHRzIHRvIG9wdGlvbnNcbiAgICBvcHRpb25zLmVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZWQgIT09IGZhbHNlXG5cbiAgICBmb3IgKGNvbnN0IHByb3AgaW4gZGVmYXVsdHMpIHtcbiAgICAgIGlmICghKHByb3AgaW4gb3B0aW9ucykpIHtcbiAgICAgICAgb3B0aW9uc1twcm9wXSA9IGRlZmF1bHRzW3Byb3BdXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgb3B0aW9ucywgbWV0aG9kcywgbmFtZSB9XG4gIH1cblxuICBpZiAodHlwZW9mIG5hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFxuICAgICAgbW9kaWZpZXIsXG4gICAgICAnbmFtZScsXG4gICAgICB7IHZhbHVlOiBuYW1lIH0pXG5cbiAgICAvLyBmb3IgYmFja3dyYWRzIGNvbXBhdGliaWxpdHlcbiAgICBtb2RpZmllci5fZGVmYXVsdHMgPSBkZWZhdWx0c1xuICAgIG1vZGlmaWVyLl9tZXRob2RzID0gbWV0aG9kc1xuICB9XG5cbiAgcmV0dXJuIG1vZGlmaWVyXG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgaW5zdGFsbCxcbiAgc3RhcnRBbGwsXG4gIHNldEFsbCxcbiAgcHJlcGFyZVN0YXRlcyxcbiAgc3RhcnQsXG4gIGJlZm9yZU1vdmUsXG4gIGJlZm9yZUVuZCxcbiAgc3RvcCxcbiAgc2hvdWxkRG8sXG4gIGdldE1vZGlmaWVyTGlzdCxcbiAgZ2V0UmVjdE9mZnNldCxcbiAgbWFrZU1vZGlmaWVyLFxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxNQUFNLE1BQU0sMEJBQTBCLENBQUE7QUFvQjdDLFNBQVMsT0FBTyxDQUFFLEtBQVk7SUFDNUIsTUFBTSxFQUNKLFlBQVksR0FDYixHQUFHLEtBQUssQ0FBQTtJQUVULEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUE7SUFDdkMsS0FBSyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUE7SUFFcEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFO1FBQ2pELFdBQVcsQ0FBQyxTQUFTLEdBQUc7WUFDdEIsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRTtZQUNyRCxPQUFPLEVBQU0sRUFBRTtZQUNmLE1BQU0sRUFBSyxJQUFJO1lBQ2YsTUFBTSxFQUFPLElBQUk7U0FDbEIsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0lBRUYsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNyRCxLQUFLLENBQUMsR0FBVSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3ZFLENBQUMsQ0FBQyxDQUFBO0lBRUYsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDL0MsVUFBVSxDQUFDLEdBQVUsQ0FBQyxDQUFBO1FBQ3RCLEtBQUssQ0FBQyxHQUFVLEVBQUUsR0FBRyxDQUFDLFdB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O1FBQ3JCLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7S0FDdkQ7SUFFRCxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFO1FBQ25GLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFNLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDN0IsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQU0sS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUM3QixTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQzdCLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUE7S0FDOUI7QUFDSCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUU7SUFDNUQsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxTQUFTLENBQUE7SUFFN0QsS0FBSyxNQUFNLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFO1FBQ3JGLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDM0IsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUMzQixTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQzdCLFNBQVMsQ0FBQyxN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QUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUVsQiw4QkFBOEI7UUFDOUIsUUFBUSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUE7UUFDN0IsUUFBUSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUE7S0FDNUI7SUFFRCxPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDO0FBRUQsZUFBZTtJQUNiLE9BQU87SUFDUCxRQUFRO0lBQ1IsTUFBTTtJQUNOLGFBQWE7SUFDYixLQUFLO0lBQ0wsVUFBVTtJQUNWLFNBQVM7SUFDVCxJQUFJO0lBQ0osUUFBUTtJQUNSLGVBQWU7SUFDZixhQUFhO0lBQ2IsWUFBWTtDQUNiLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY29wZSB9IGZyb20gJ0BpbnRlcmFjdGpzL2NvcmUvc2NvcGUnXG5pbXBvcnQgZXh0ZW5kIGZyb20gJ0BpbnRlcmFjdGpzL3V0aWxzL2V4dGVuZCdcblxuZGVjbGFyZSBtb2R1bGUgJ0BpbnRlcmFjdGpzL2NvcmUvc2NvcGUnIHtcbiAgaW50ZXJmYWNlIFNjb3BlIHtcbiAgICBtb2RpZmllcnM/OiBhbnlcbiAgfVxufVxuXG5kZWNsYXJlIG1vZHVsZSAnQGludGVyYWN0anMvY29yZS9JbnRlcmFjdGlvbicge1xuICBpbnRlcmZhY2UgSW50ZXJhY3Rpb24ge1xuICAgIG1vZGlmaWVycz86IGFueVxuICB9XG59XG5cbmRlY2xhcmUgbW9kdWxlICdAaW50ZXJhY3Rqcy9jb3JlL2RlZmF1bHRPcHRpb25zJyB7XG4gIGludGVyZmFjZSBQZXJBY3Rpb25EZWZhdWx0cyB7XG4gICAgbW9kaWZpZXJzPzogYW55W11cbiAgfVxufVxuXG5mdW5jdGlvbiBpbnN0YWxsIChzY29wZTogU2NvcGUpIHtcbiAgY29uc3Qge1xuICAgIGludGVyYWN0aW9ucyxcbiAgfSA9IHNjb3BlXG5cbiAgc2NvcGUuZGVmYXVsdHMucGVyQWN0aW9uLm1vZGlmaWVycyA9IFtdXG4gIHNjb3BlLm1vZGlmaWVycyA9IHt9XG5cbiAgaW50ZXJhY3Rpb25zLnNpZ25hbHMub24oJ25ldycsICh7IGludGVyYWN0aW9uIH0pID0+IHtcbiAgICBpbnRlcmFjdGlvbi5tb2RpZmllcnMgPSB7XG4gICAgICBzdGFydE9mZnNldDogeyBsZWZ0OiAwLCByaWdodDogMCwgdG9wOiAwLCBib3R0b206IDAgfSxcbiAgICAgIG9mZnNldHMgICAgOiB7fSxcbiAgICAgIHN0YXRlcyAgIDogbnVsbCxcbiAgICAgIHJlc3VsdCAgICAgOiBudWxsLFxuICAgIH1cbiAgfSlcblxuICBpbnRlcmFjdGlvbnMuc2lnbmFscy5vbignYmVmb3JlLWFjdGlvbi1zdGFydCcsIChhcmcpID0+IHtcbiAgICBzdGFydChhcmcgYXMgYW55LCBhcmcuaW50ZXJhY3Rpb24uY29vcmRzLnN0YXJ0LnBhZ2UsIHNjb3BlLm1vZGlmaWVycylcbiAgfSlcblxuICBpbnRlcmFjdGlvbnMuc2lnbmFscy5vbignYWN0aW9uLXJlc3VtZScsIChhcmcpID0+IHtcbiAgICBiZWZvcmVNb3ZlKGFyZyBhcyBhbnkpXG4gICAgc3RhcnQoYXJnIGFzIGFueSwgYXJnLmludGVyYWN0aW9uLmNvb3Jkcy5jdXIucGFnZSwgc2NvcGUubW9kaWZpZXJzKVxuICB9KVxuXG4gIGludGVyYWN0aW9ucy5zaWduYWxzLm9uKCdiZWZvcmUtYWN0aW9uLW1vdmUnLCBiZWZvcmVNb3ZlKVxuICBpbnRlcmFjdGlvbnMuc2lnbmFscy5vbignYmVmb3JlLWFjdGlvbi1lbmQnLCBiZWZvcmVFbmQpXG5cbiAgaW50ZXJhY3Rpb25zLnNpZ25hbHMub24oJ2JlZm9yZS1hY3Rpb24tc3RhcnQnLCBzZXRDb29yZHMpXG4gIGludGVyYWN0aW9ucy5zaWduYWxzLm9uKCdiZWZvcmUtYWN0aW9uLW1vdmUnLCBzZXRDb29yZHMpXG5cbiAgaW50ZXJhY3Rpb25zLnNpZ25hbHMub24oJ2FmdGVyLWFjdGlvbi1zdGFydCcsIHJlc3RvcmVDb29yZHMgYXMgYW55KVxuICBpbnRlcmFjdGlvbnMuc2lnbmFscy5vbignYWZ0ZXItYWN0aW9uLW1vdmUnLCByZXN0b3JlQ29vcmRzIGFzIGFueSlcbiAgaW50ZXJhY3Rpb25zLnNpZ25hbHMub24oJ3N0b3AnLCBzdG9wKVxufVxuXG5mdW5jdGlvbiBzdGFydEFsbCAoYXJnKSB7XG4gIGZvciAoY29uc3Qgc3RhdGUgb2YgYXJnLnN0YXRlcykge1xuICAgIGlmIChzdGF0ZS5tZXRob2RzLnN0YXJ0KSB7XG4gICAgICBhcmcuc3RhdGUgPSBzdGF0ZVxuICAgICAgc3RhdGUubWV0aG9kcy5zdGFydChhcmcpXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldFJlY3RPZmZzZXQgKHJlY3QsIGNvb3Jkcykge1xuICByZXR1cm4gcmVjdFxuICAgID8ge1xuICAgICAgbGVmdCAgOiBjb29yZHMueCAtIHJlY3QubGVmdCxcbiAgICAgIHRvcCAgIDogY29vcmRzLnkgLSByZWN0LnRvcCxcbiAgICAgIHJpZ2h0IDogcmVjdC5yaWdodCAgLSBjb29yZHMueCxcbiAgICAgIGJvdHRvbTogcmVjdC5ib3R0b20gLSBjb29yZHMueSxcbiAgICB9XG4gICAgOiB7XG4gICAgICBsZWZ0ICA6IDAsXG4gICAgICB0b3AgICA6IDAsXG4gICAgICByaWdodCA6IDAsXG4gICAgICBib3R0b206IDAsXG4gICAgfVxufVxuXG5mdW5jdGlvbiBzdGFydCAoXG4gIHsgaW50ZXJhY3Rpb24sIHBoYXNlIH06IEludGVyYWN0LlNpZ25hbEFyZyxcbiAgcGFnZUNvb3JkczogSW50ZXJhY3QuUG9pbnQsXG4gIHJlZ2lzdGVyZWRNb2RpZmllcnMsXG4pIHtcbiAgY29uc3QgeyBpbnRlcmFjdGFibGUsIGVsZW1lbnQgfSA9IGludGVyYWN0aW9uXG4gIGNvbnN0IG1vZGlmaWVyTGlzdCA9IGdldE1vZGlmaWVyTGlzdChpbnRlcmFjdGlvbiwgcmVnaXN0ZXJlZE1vZGlmaWVycylcbiAgY29uc3Qgc3RhdGVzID0gcHJlcGFyZVN0YXRlcyhtb2RpZmllckxpc3QpXG5cbiAgY29uc3QgcmVjdCA9IGV4dGVuZCh7fSwgaW50ZXJhY3RhYmxlLmdldFJlY3QoZWxlbWVudCkpIGFzICBJbnRlcmFjdC5SZWN0ICYgSW50ZXJhY3QuUmVjdDJcblxuICBpZiAoISgnd2lkdGgnICBpbiByZWN0KSkgeyByZWN0LndpZHRoICA9IHJlY3QucmlnaHQgIC0gcmVjdC5sZWZ0IH1cbiAgaWYgKCEoJ2hlaWdodCcgaW4gcmVjdCkpIHsgcmVjdC5oZWlnaHQgPSByZWN0LmJvdHRvbSAtIHJlY3QudG9wICB9XG5cbiAgY29uc3Qgc3RhcnRPZmZzZXQgPSBnZXRSZWN0T2Zmc2V0KHJlY3QsIHBhZ2VDb29yZHMpXG5cbiAgaW50ZXJhY3Rpb24ubW9kaWZpZXJzLnN0YXJ0T2Zmc2V0ID0gc3RhcnRPZmZzZXRcbiAgaW50ZXJhY3Rpb24ubW9kaWZpZXJzLnN0YXJ0RGVsdGEgPSB7IHg6IDAsIHk6IDAgfVxuXG4gIGNvbnN0IGFyZzogUGFydGlhbDxJbnRlcmFjdC5TaWduYWxBcmc+ID0ge1xuICAgIGludGVyYWN0aW9uLFxuICAgIGludGVyYWN0YWJsZSxcbiAgICBlbGVtZW50LFxuICAgIHBhZ2VDb29yZHMsXG4gICAgcGhhc2UsXG4gICAgcmVjdCxcbiAgICBzdGFydE9mZnNldCxcbiAgICBzdGF0ZXMsXG4gICAgcHJlRW5kOiBmYWxzZSxcbiAgICByZXF1aXJlRW5kT25seTogZmFsc2UsXG4gIH1cblxuICBpbnRlcmFjdGlvbi5tb2RpZmllcnMuc3RhdGVzID0gc3RhdGVzXG4gIGludGVyYWN0aW9uLm1vZGlmaWVycy5yZXN1bHQgPSBudWxsXG4gIHN0YXJ0QWxsKGFyZylcblxuICBhcmcucGFnZUNvb3JkcyA9IGV4dGVuZCh7fSwgaW50ZXJhY3Rpb24uY29vcmRzLnN0YXJ0LnBhZ2UpXG5cbiAgY29uc3QgcmVzdWx0ID0gaW50ZXJhY3Rpb24ubW9kaWZpZXJzLnJlc3VsdCA9IHNldEFsbChhcmcpXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5mdW5jdGlvbiBzZXRBbGwgKGFyZzogUGFydGlhbDxJbnRlcmFjdC5TaWduYWxBcmc+KSB7XG4gIGNvbnN0IHsgaW50ZXJhY3Rpb24sIHBoYXNlLCBwcmVFbmQsIHJlcXVpcmVFbmRPbmx5LCByZWN0LCBza2lwTW9kaWZpZXJzIH0gPSBhcmdcblxuICBjb25zdCBzdGF0ZXMgPSBza2lwTW9kaWZpZXJzXG4gICAgPyBhcmcuc3RhdGVzLnNsaWNlKGludGVyYWN0aW9uLm1vZGlmaWVycy5za2lwKVxuICAgIDogYXJnLnN0YXRlc1xuXG4gIGFyZy5jb29yZHMgPSBleHRlbmQoe30sIGFyZy5wYWdlQ29vcmRzKVxuICBhcmcucmVjdCA9IGV4dGVuZCh7fSwgcmVjdClcblxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgZGVsdGE6IHsgeDogMCwgeTogMCB9LFxuICAgIGNvb3JkczogYXJnLmNvb3JkcyxcbiAgICBjaGFuZ2VkOiB0cnVlLFxuICB9XG5cbiAgZm9yIChjb25zdCBzdGF0ZSBvZiBzdGF0ZXMpIHtcbiAgICBjb25zdCB7IG9wdGlvbnMgfSA9IHN0YXRlXG5cbiAgICBpZiAoIXN0YXRlLm1ldGhvZHMuc2V0IHx8XG4gICAgICAhc2hvdWxkRG8ob3B0aW9ucywgcHJlRW5kLCByZXF1aXJlRW5kT25seSwgcGhhc2UpKSB7IGNvbnRpbnVlIH1cblxuICAgIGFyZy5zdGF0ZSA9IHN0YXRlXG4gICAgc3RhdGUubWV0aG9kcy5zZXQoYXJnKVxuICB9XG5cbiAgcmVzdWx0LmRlbHRhLnggPSBhcmcuY29vcmRzLnggLSBhcmcucGFnZUNvb3Jkcy54XG4gIHJlc3VsdC5kZWx0YS55ID0gYXJnLmNvb3Jkcy55IC0gYXJnLnBhZ2VDb29yZHMueVxuXG4gIGNvbnN0IHByZXZDb29yZHMgPSBpbnRlcmFjdGlvbi5tb2RpZmllcnMucmVzdWx0XG4gICAgPyBpbnRlcmFjdGlvbi5tb2RpZmllcnMucmVzdWx0LmNvb3Jkc1xuICAgIDogaW50ZXJhY3Rpb24uY29vcmRzLnByZXYucGFnZVxuXG4gIHJlc3VsdC5jaGFuZ2VkID0gKFxuICAgIHByZXZDb29yZHMueCAhPT0gcmVzdWx0LmNvb3Jkcy54IHx8XG4gICAgcHJldkNvb3Jkcy55ICE9PSByZXN1bHQuY29vcmRzLnkpXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5mdW5jdGlvbiBwcmVwYXJlU3RhdGVzIChtb2RpZmllckxpc3QpIHtcbiAgY29uc3Qgc3RhdGVzID0gW11cblxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbW9kaWZpZXJMaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgIGNvbnN0IHsgb3B0aW9ucywgbWV0aG9kcywgbmFtZSB9ID0gbW9kaWZpZXJMaXN0W2luZGV4XVxuXG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5lbmFibGVkID09PSBmYWxzZSkgeyBjb250aW51ZSB9XG5cbiAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgIG9wdGlvbnMsXG4gICAgICBtZXRob2RzLFxuICAgICAgaW5kZXgsXG4gICAgICBuYW1lLFxuICAgIH1cblxuICAgIHN0YXRlcy5wdXNoKHN0YXRlKVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlc1xufVxuXG5mdW5jdGlvbiBiZWZvcmVNb3ZlICh7IGludGVyYWN0aW9uLCBwaGFzZSwgcHJlRW5kLCBza2lwTW9kaWZpZXJzIH0pOiB2b2lkIHwgZmFsc2Uge1xuICBjb25zdCB7IGludGVyYWN0YWJsZSwgZWxlbWVudCB9ID0gaW50ZXJhY3Rpb25cbiAgY29uc3QgbW9kaWZpZXJSZXN1bHQgPSBzZXRBbGwoXG4gICAge1xuICAgICAgaW50ZXJhY3Rpb24sXG4gICAgICBpbnRlcmFjdGFibGUsXG4gICAgICBlbGVtZW50LFxuICAgICAgcHJlRW5kLFxuICAgICAgcGhhc2UsXG4gICAgICBwYWdlQ29vcmRzOiBpbnRlcmFjdGlvbi5jb29yZHMuY3VyLnBhZ2UsXG4gICAgICByZWN0OiBpbnRlcmFjdGFibGUuZ2V0UmVjdChlbGVtZW50KSxcbiAgICAgIHN0YXRlczogaW50ZXJhY3Rpb24ubW9kaWZpZXJzLnN0YXRlcyxcbiAgICAgIHJlcXVpcmVFbmRPbmx5OiBmYWxzZSxcbiAgICAgIHNraXBNb2RpZmllcnMsXG4gICAgfSlcblxuICBpbnRlcmFjdGlvbi5tb2RpZmllcnMucmVzdWx0ID0gbW9kaWZpZXJSZXN1bHRcblxuICAvLyBkb24ndCBmaXJlIGFuIGFjdGlvbiBtb3ZlIGlmIGEgbW9kaWZpZXIgd291bGQga2VlcCB0aGUgZXZlbnQgaW4gdGhlIHNhbWVcbiAgLy8gY29yZGluYXRlcyBhcyBiZWZvcmVcbiAgaWYgKCFtb2RpZmllclJlc3VsdC5jaGFuZ2VkICYmIGludGVyYWN0aW9uLmludGVyYWN0aW5nKCkpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5mdW5jdGlvbiBiZWZvcmVFbmQgKGFyZyk6IHZvaWQgfCBmYWxzZSB7XG4gIGNvbnN0IHsgaW50ZXJhY3Rpb24sIGV2ZW50LCBub1ByZUVuZCB9ID0gYXJnXG4gIGNvbnN0IHN0YXRlcyA9IGludGVyYWN0aW9uLm1vZGlmaWVycy5zdGF0ZXNcblxuICBpZiAobm9QcmVFbmQgfHwgIXN0YXRlcyB8fCAhc3RhdGVzLmxlbmd0aCkge1xuICAgIHJldHVyblxuICB9XG5cbiAgbGV0IGRpZFByZUVuZCA9IGZhbHNlXG5cbiAgZm9yIChjb25zdCBzdGF0ZSBvZiBzdGF0ZXMpIHtcbiAgICBhcmcuc3RhdGUgPSBzdGF0ZVxuICAgIGNvbnN0IHsgb3B0aW9ucywgbWV0aG9kcyB9ID0gc3RhdGVcblxuICAgIGNvbnN0IGVuZFJlc3VsdCA9IG1ldGhvZHMuYmVmb3JlRW5kICYmIG1ldGhvZHMuYmVmb3JlRW5kKGFyZylcblxuICAgIGlmIChlbmRSZXN1bHQgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICAvLyBpZiB0aGUgZW5kT25seSBvcHRpb24gaXMgdHJ1ZSBmb3IgYW55IG1vZGlmaWVyXG4gICAgaWYgKCFkaWRQcmVFbmQgJiYgc2hvdWxkRG8ob3B0aW9ucywgdHJ1ZSwgdHJ1ZSkpIHtcbiAgICAgIC8vIGZpcmUgYSBtb3ZlIGV2ZW50IGF0IHRoZSBtb2RpZmllZCBjb29yZGluYXRlc1xuICAgICAgaW50ZXJhY3Rpb24ubW92ZSh7IGV2ZW50LCBwcmVFbmQ6IHRydWUgfSlcbiAgICAgIGRpZFByZUVuZCA9IHRydWVcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc3RvcCAoYXJnKSB7XG4gIGNvbnN0IHsgaW50ZXJhY3Rpb24gfSA9IGFyZ1xuICBjb25zdCBzdGF0ZXMgPSBpbnRlcmFjdGlvbi5tb2RpZmllcnMuc3RhdGVzXG5cbiAgaWYgKCFzdGF0ZXMgfHwgIXN0YXRlcy5sZW5ndGgpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IG1vZGlmaWVyQXJnID0gZXh0ZW5kKHtcbiAgICBzdGF0ZXMsXG4gICAgaW50ZXJhY3RhYmxlOiBpbnRlcmFjdGlvbi5pbnRlcmFjdGFibGUsXG4gICAgZWxlbWVudDogaW50ZXJhY3Rpb24uZWxlbWVudCxcbiAgfSwgYXJnKVxuXG4gIHJlc3RvcmVDb29yZHMoYXJnKVxuXG4gIGZvciAoY29uc3Qgc3RhdGUgb2Ygc3RhdGVzKSB7XG4gICAgbW9kaWZpZXJBcmcuc3RhdGUgPSBzdGF0ZVxuXG4gICAgaWYgKHN0YXRlLm1ldGhvZHMuc3RvcCkgeyBzdGF0ZS5tZXRob2RzLnN0b3AobW9kaWZpZXJBcmcpIH1cbiAgfVxuXG4gIGFyZy5pbnRlcmFjdGlvbi5tb2RpZmllcnMuc3RhdGVzID0gbnVsbFxufVxuXG5mdW5jdGlvbiBzZXRDb29yZHMgKGFyZykge1xuICBjb25zdCB7IGludGVyYWN0aW9uLCBwaGFzZSB9ID0gYXJnXG4gIGNvbnN0IGN1ckNvb3JkcyA9IGFyZy5jdXJDb29yZHMgfHwgaW50ZXJhY3Rpb24uY29vcmRzLmN1clxuICBjb25zdCBzdGFydENvb3JkcyA9IGFyZy5zdGFydENvb3JkcyB8fCBpbnRlcmFjdGlvbi5jb29yZHMuc3RhcnRcbiAgY29uc3QgeyByZXN1bHQsIHN0YXJ0RGVsdGEgfSA9IGludGVyYWN0aW9uLm1vZGlmaWVyc1xuICBjb25zdCBjdXJEZWx0YSA9IHJlc3VsdC5kZWx0YVxuXG4gIGlmIChwaGFzZSA9PT0gJ3N0YXJ0Jykge1xuICAgIGV4dGVuZChpbnRlcmFjdGlvbi5tb2RpZmllcnMuc3RhcnREZWx0YSwgcmVzdWx0LmRlbHRhKVxuICB9XG5cbiAgZm9yIChjb25zdCBbY29vcmRzU2V0LCBkZWx0YV0gb2YgW1tzdGFydENvb3Jkcywgc3RhcnREZWx0YV0sIFtjdXJDb29yZHMsIGN1ckRlbHRhXV0pIHtcbiAgICBjb29yZHNTZXQucGFnZS54ICAgKz0gZGVsdGEueFxuICAgIGNvb3Jkc1NldC5wYWdlLnkgICArPSBkZWx0YS55XG4gICAgY29vcmRzU2V0LmNsaWVudC54ICs9IGRlbHRhLnhcbiAgICBjb29yZHNTZXQuY2xpZW50LnkgKz0gZGVsdGEueVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlc3RvcmVDb29yZHMgKHsgaW50ZXJhY3Rpb246IHsgY29vcmRzLCBtb2RpZmllcnMgfSB9KSB7XG4gIGNvbnN0IHsgc3RhcnREZWx0YSwgcmVzdWx0OiB7IGRlbHRhOiBjdXJEZWx0YSB9IH0gPSBtb2RpZmllcnNcblxuICBmb3IgKGNvbnN0IFtjb29yZHNTZXQsIGRlbHRhXSBvZiBbW2Nvb3Jkcy5zdGFydCwgc3RhcnREZWx0YV0sIFtjb29yZHMuY3VyLCBjdXJEZWx0YV1dKSB7XG4gICAgY29vcmRzU2V0LnBhZ2UueCAtPSBkZWx0YS54XG4gICAgY29vcmRzU2V0LnBhZ2UueSAtPSBkZWx0YS55XG4gICAgY29vcmRzU2V0LmNsaWVudC54IC09IGRlbHRhLnhcbiAgICBjb29yZHNTZXQuY2xpZW50LnkgLT0gZGVsdGEueVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldE1vZGlmaWVyTGlzdCAoaW50ZXJhY3Rpb24sIHJlZ2lzdGVyZWRNb2RpZmllcnMpIHtcbiAgY29uc3QgYWN0aW9uT3B0aW9ucyA9IGludGVyYWN0aW9uLmludGVyYWN0YWJsZS5vcHRpb25zW2ludGVyYWN0aW9uLnByZXBhcmVkLm5hbWVdXG4gIGNvbnN0IGFjdGlvbk1vZGlmaWVycyA9IGFjdGlvbk9wdGlvbnMubW9kaWZpZXJzXG5cbiAgaWYgKGFjdGlvbk1vZGlmaWVycyAmJiBhY3Rpb25Nb2RpZmllcnMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGFjdGlvbk1vZGlmaWVycy5tYXAoKG1vZGlmaWVyKSA9PiB7XG4gICAgICBpZiAoIW1vZGlmaWVyLm1ldGhvZHMgJiYgbW9kaWZpZXIudHlwZSkge1xuICAgICAgICByZXR1cm4gcmVnaXN0ZXJlZE1vZGlmaWVyc1ttb2RpZmllci50eXBlXShtb2RpZmllcilcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG1vZGlmaWVyXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBbJ3NuYXAnLCAnc25hcFNpemUnLCAnc25hcEVkZ2VzJywgJ3Jlc3RyaWN0JywgJ3Jlc3RyaWN0RWRnZXMnLCAncmVzdHJpY3RTaXplJ11cbiAgICAubWFwKCh0eXBlKSA9PiB7XG4gICAgICBjb25zdCBvcHRpb25zID0gYWN0aW9uT3B0aW9uc1t0eXBlXVxuXG4gICAgICByZXR1cm4gb3B0aW9ucyAmJiBvcHRpb25zLmVuYWJsZWQgJiYge1xuICAgICAgICBvcHRpb25zLFxuICAgICAgICBtZXRob2RzOiBvcHRpb25zLl9tZXRob2RzLFxuICAgICAgfVxuICAgIH0pXG4gICAgLmZpbHRlcigobSkgPT4gISFtKVxufVxuXG5mdW5jdGlvbiBzaG91bGREbyAob3B0aW9ucywgcHJlRW5kPzogYm9vbGVhbiwgcmVxdWlyZUVuZE9ubHk/OiBib29sZWFuLCBwaGFzZT86IHN0cmluZykge1xuICByZXR1cm4gb3B0aW9uc1xuICAgID8gb3B0aW9ucy5lbmFibGVkICE9PSBmYWxzZSAmJlxuICAgICAgKHByZUVuZCB8fCAhb3B0aW9ucy5lbmRPbmx5KSAmJlxuICAgICAgKCFyZXF1aXJlRW5kT25seSB8fCBvcHRpb25zLmVuZE9ubHkpICYmXG4gICAgICAob3B0aW9ucy5zZXRTdGFydCB8fCBwaGFzZSAhPT0gJ3N0YXJ0JylcbiAgICA6ICFyZXF1aXJlRW5kT25seVxufVxuXG5mdW5jdGlvbiBtYWtlTW9kaWZpZXIgKG1vZHVsZSwgbmFtZT86IHN0cmluZykge1xuICBjb25zdCB7IGRlZmF1bHRzIH0gPSBtb2R1bGVcbiAgY29uc3QgbWV0aG9kcyA9IHtcbiAgICBzdGFydDogbW9kdWxlLnN0YXJ0LFxuICAgIHNldDogbW9kdWxlLnNldCxcbiAgICBiZWZvcmVFbmQ6IG1vZHVsZS5iZWZvcmVFbmQsXG4gICAgc3RvcDogbW9kdWxlLnN0b3AsXG4gIH1cblxuICBjb25zdCBtb2RpZmllciA9IChvcHRpb25zKSA9PiB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge31cblxuICAgIC8vIGFkZCBtaXNzaW5nIGRlZmF1bHRzIHRvIG9wdGlvbnNcbiAgICBvcHRpb25zLmVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZWQgIT09IGZhbHNlXG5cbiAgICBmb3IgKGNvbnN0IHByb3AgaW4gZGVmYXVsdHMpIHtcbiAgICAgIGlmICghKHByb3AgaW4gb3B0aW9ucykpIHtcbiAgICAgICAgb3B0aW9uc1twcm9wXSA9IGRlZmF1bHRzW3Byb3BdXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgb3B0aW9ucywgbWV0aG9kcywgbmFtZSB9XG4gIH1cblxuICBpZiAodHlwZW9mIG5hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFxuICAgICAgbW9kaWZpZXIsXG4gICAgICAnbmFtZScsXG4gICAgICB7IHZhbHVlOiBuYW1lIH0pXG5cbiAgICAvLyBmb3IgYmFja3dyYWRzIGNvbXBhdGliaWxpdHlcbiAgICBtb2RpZmllci5fZGVmYXVsdHMgPSBkZWZhdWx0c1xuICAgIG1vZGlmaWVyLl9tZXRob2RzID0gbWV0aG9kc1xuICB9XG5cbiAgcmV0dXJuIG1vZGlmaWVyXG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgaW5zdGFsbCxcbiAgc3RhcnRBbGwsXG4gIHNldEFsbCxcbiAgcHJlcGFyZVN0YXRlcyxcbiAgc3RhcnQsXG4gIGJlZm9yZU1vdmUsXG4gIGJlZm9yZUVuZCxcbiAgc3RvcCxcbiAgc2hvdWxkRG8sXG4gIGdldE1vZGlmaWVyTGlzdCxcbiAgZ2V0UmVjdE9mZnNldCxcbiAgbWFrZU1vZGlmaWVyLFxufVxuIl19
{
"name": "@interactjs/modifiers",
"version": "1.4.0-alpha.28+sha.e624c4d",
"version": "1.4.0-alpha.29+sha.7c21d3d",
"peerDependencies": {
"@interactjs/core": "1.4.0-alpha.28+sha.e624c4d",
"@interactjs/utils": "1.4.0-alpha.28+sha.e624c4d"
"@interactjs/core": "1.4.0-alpha.29+sha.7c21d3d",
"@interactjs/utils": "1.4.0-alpha.29+sha.7c21d3d"
},
"devDependencies": {
"@interactjs/_dev": "1.4.0-alpha.28+sha.e624c4d",
"@interactjs/core": "1.4.0-alpha.28+sha.e624c4d",
"@interactjs/utils": "1.4.0-alpha.28+sha.e624c4d"
"@interactjs/_dev": "1.4.0-alpha.29+sha.7c21d3d",
"@interactjs/core": "1.4.0-alpha.29+sha.7c21d3d",
"@interactjs/utils": "1.4.0-alpha.29+sha.7c21d3d"
},

@@ -13,0 +13,0 @@ "publishConfig": {

@@ -39,6 +39,6 @@ import * as is from '@interactjs/utils/is';

if (is.func(value)) {
return rectUtils.resolveRectLike(value, interaction.target, interaction.element, [coords.x, coords.y, interaction]);
return rectUtils.resolveRectLike(value, interaction.interactable, interaction.element, [coords.x, coords.y, interaction]);
}
else {
return rectUtils.resolveRectLike(value, interaction.target, interaction.element);
return rectUtils.resolveRectLike(value, interaction.interactable, interaction.element);
}

@@ -57,2 +57,2 @@ }

export default restrict;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBvaW50ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUMxQyxPQUFPLFNBQVMsTUFBTSx3QkFBd0IsQ0FBQTtBQUU5QyxTQUFTLEtBQUssQ0FBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO0lBQzFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFDekIsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQTtJQUMvQixNQUFNLE1BQU0sR0FBRyxFQUErQixDQUFBO0lBRTlDLElBQUksSUFBSSxJQUFJLFdBQVcsRUFBRTtRQUN2QixNQUFNLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNqRSxNQUFNLENBQUMsR0FBRyxHQUFJLFdBQVcsQ0FBQyxHQUFHLEdBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUVoRSxNQUFNLENBQUMsS0FBSyxHQUFJLFdBQVcsQ0FBQyxLQUFLLEdBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFJLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQzVFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7S0FDOUU7U0FDSTtRQUNILE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFBO0tBQzVEO0lBRUQsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7QUFDdkIsQ0FBQztBQUVELFNBQVMsR0FBRyxDQUFFLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7SUFDMUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFakMsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFFaEYsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFBO0tBQUU7SUFFbEMsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFBO0lBRXhCLDRCQUE0QjtJQUM1Qix5QkFBeUI7SUFDekIsMkJBQTJCO0lBQzNCLElBQUksR0FBRyxJQUFJLFdBQVcsSUFBSSxHQUFHLElBQUksV0FBVyxFQUFFO1FBQzVDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBSSxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNsRyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7S0FDbkc7U0FDSTtRQUNILE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDNUYsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtLQUM3RjtBQUNILENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBdUI7SUFDdEUsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ2xCLE9BQU8sU0FBUyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUE7S0FDcEg7U0FBTTtRQUNMLE9BQU8sU0FBUyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUE7S0FDakY7QUFDSCxDQUFDO0FBRUQsTUFBTSxRQUFRLEdBQUc7SUFDZixLQUFLO0lBQ0wsR0FBRztJQUNILGtCQUFrQjtJQUNsQixRQUFRLEVBQUU7UUFDUixPQUFPLEVBQUUsS0FBSztRQUNkLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFdBQVcsRUFBRSxJQUFJO0tBQ2xCO0NBQ0YsQ0FBQTtBQUVELGVBQWUsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaXMgZnJvbSAnQGludGVyYWN0anMvdXRpbHMvaXMnXG5pbXBvcnQgcmVjdFV0aWxzIGZyb20gJ0BpbnRlcmFjdGpzL3V0aWxzL3JlY3QnXG5cbmZ1bmN0aW9uIHN0YXJ0ICh7IHJlY3QsIHN0YXJ0T2Zmc2V0LCBzdGF0ZSB9KSB7XG4gIGNvbnN0IHsgb3B0aW9ucyB9ID0gc3RhdGVcbiAgY29uc3QgeyBlbGVtZW50UmVjdCB9ID0gb3B0aW9uc1xuICBjb25zdCBvZmZzZXQgPSB7fSBhcyB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9XG5cbiAgaWYgKHJlY3QgJiYgZWxlbWVudFJlY3QpIHtcbiAgICBvZmZzZXQubGVmdCA9IHN0YXJ0T2Zmc2V0LmxlZnQgLSAocmVjdC53aWR0aCAgKiBlbGVtZW50UmVjdC5sZWZ0KVxuICAgIG9mZnNldC50b3AgID0gc3RhcnRPZmZzZXQudG9wICAtIChyZWN0LmhlaWdodCAqIGVsZW1lbnRSZWN0LnRvcClcblxuICAgIG9mZnNldC5yaWdodCAgPSBzdGFydE9mZnNldC5yaWdodCAgLSAocmVjdC53aWR0aCAgKiAoMSAtIGVsZW1lbnRSZWN0LnJpZ2h0KSlcbiAgICBvZmZzZXQuYm90dG9tID0gc3RhcnRPZmZzZXQuYm90dG9tIC0gKHJlY3QuaGVpZ2h0ICogKDEgLSBlbGVtZW50UmVjdC5ib3R0b20pKVxuICB9XG4gIGVsc2Uge1xuICAgIG9mZnNldC5sZWZ0ID0gb2Zmc2V0LnRvcCA9IG9mZnNldC5yaWdodCA9IG9mZnNldC5ib3R0b20gPSAwXG4gIH1cblxuICBzdGF0ZS5vZmZzZXQgPSBvZmZzZXRcbn1cblxuZnVuY3Rpb24gc2V0ICh7IGNvb3JkcywgaW50ZXJhY3Rpb24sIHN0YXRlIH0pIHtcbiAgY29uc3QgeyBvcHRpb25zLCBvZmZzZXQgfSA9IHN0YXRlXG5cbiAgY29uc3QgcmVzdHJpY3Rpb24gPSBnZXRSZXN0cmljdGlvblJlY3Qob3B0aW9ucy5yZXN0cmljdGlvbiwgaW50ZXJhY3Rpb24sIGNvb3JkcylcblxuICBpZiAoIXJlc3RyaWN0aW9uKSB7IHJldHVybiBzdGF0ZSB9XG5cbiAgY29uc3QgcmVjdCA9IHJlc3RyaWN0aW9uXG5cbiAgLy8gb2JqZWN0IGlzIGFzc3VtZWQgdG8gaGF2ZVxuICAvLyB4LCB5LCB3aWR0aCwgaGVpZ2h0IG9yXG4gIC8vIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbVxuICBpZiAoJ3gnIGluIHJlc3RyaWN0aW9uICYmICd5JyBpbiByZXN0cmljdGlvbikge1xuICAgIGNvb3Jkcy54ID0gTWF0aC5tYXgoTWF0aC5taW4ocmVjdC54ICsgcmVjdC53aWR0aCAgLSBvZmZzZXQucmlnaHQsIGNvb3Jkcy54KSwgcmVjdC54ICsgb2Zmc2V0LmxlZnQpXG4gICAgY29vcmRzLnkgPSBNYXRoLm1heChNYXRoLm1pbihyZWN0LnkgKyByZWN0LmhlaWdodCAtIG9mZnNldC5ib3R0b20sIGNvb3Jkcy55KSwgcmVjdC55ICsgb2Zmc2V0LnRvcClcbiAgfVxuICBlbHNlIHtcbiAgICBjb29yZHMueCA9IE1hdGgubWF4KE1hdGgubWluKHJlY3QucmlnaHQgIC0gb2Zmc2V0LnJpZ2h0LCBjb29yZHMueCksIHJlY3QubGVmdCArIG9mZnNldC5sZWZ0KVxuICAgIGNvb3Jkcy55ID0gTWF0aC5tYXgoTWF0aC5taW4ocmVjdC5ib3R0b20gLSBvZmZzZXQuYm90dG9tLCBjb29yZHMueSksIHJlY3QudG9wICArIG9mZnNldC50b3ApXG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0UmVzdHJpY3Rpb25SZWN0ICh2YWx1ZSwgaW50ZXJhY3Rpb24sIGNvb3Jkcz86IEludGVyYWN0LlBvaW50KSB7XG4gIGlmIChpcy5mdW5jKHZhbHVlKSkge1xuICAgIHJldHVybiByZWN0VXRpbHMucmVzb2x2ZVJlY3RMaWtlKHZhbHVlLCBpbnRlcmFjdGlvbi50YXJnZXQsIGludGVyYWN0aW9uLmVsZW1lbnQsIFtjb29yZHMueCwgY29vcmRzLnksIGludGVyYWN0aW9uXSlcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcmVjdFV0aWxzLnJlc29sdmVSZWN0TGlrZSh2YWx1ZSwgaW50ZXJhY3Rpb24udGFyZ2V0LCBpbnRlcmFjdGlvbi5lbGVtZW50KVxuICB9XG59XG5cbmNvbnN0IHJlc3RyaWN0ID0ge1xuICBzdGFydCxcbiAgc2V0LFxuICBnZXRSZXN0cmljdGlvblJlY3QsXG4gIGRlZmF1bHRzOiB7XG4gICAgZW5hYmxlZDogZmFsc2UsXG4gICAgcmVzdHJpY3Rpb246IG51bGwsXG4gICAgZWxlbWVudFJlY3Q6IG51bGwsXG4gIH0sXG59XG5cbmV4cG9ydCBkZWZhdWx0IHJlc3RyaWN0XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBvaW50ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUMxQyxPQUFPLFNBQVMsTUFBTSx3QkFBd0IsQ0FBQTtBQUU5QyxTQUFTLEtBQUssQ0FBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO0lBQzFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFDekIsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQTtJQUMvQixNQUFNLE1BQU0sR0FBRyxFQUErQixDQUFBO0lBRTlDLElBQUksSUFBSSxJQUFJLFdBQVcsRUFBRTtRQUN2QixNQUFNLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNqRSxNQUFNLENBQUMsR0FBRyxHQUFJLFdBQVcsQ0FBQyxHQUFHLEdBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUVoRSxNQUFNLENBQUMsS0FBSyxHQUFJLFdBQVcsQ0FBQyxLQUFLLEdBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFJLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQzVFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7S0FDOUU7U0FDSTtRQUNILE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFBO0tBQzVEO0lBRUQsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7QUFDdkIsQ0FBQztBQUVELFNBQVMsR0FBRyxDQUFFLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7SUFDMUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFakMsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFFaEYsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFBO0tBQUU7SUFFbEMsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFBO0lBRXhCLDRCQUE0QjtJQUM1Qix5QkFBeUI7SUFDekIsMkJBQTJCO0lBQzNCLElBQUksR0FBRyxJQUFJLFdBQVcsSUFBSSxHQUFHLElBQUksV0FBVyxFQUFFO1FBQzVDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBSSxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNsRyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7S0FDbkc7U0FDSTtRQUNILE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDNUYsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtLQUM3RjtBQUNILENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBdUI7SUFDdEUsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ2xCLE9BQU8sU0FBUyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUE7S0FDMUg7U0FBTTtRQUNMLE9BQU8sU0FBUyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUE7S0FDdkY7QUFDSCxDQUFDO0FBRUQsTUFBTSxRQUFRLEdBQUc7SUFDZixLQUFLO0lBQ0wsR0FBRztJQUNILGtCQUFrQjtJQUNsQixRQUFRLEVBQUU7UUFDUixPQUFPLEVBQUUsS0FBSztRQUNkLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFdBQVcsRUFBRSxJQUFJO0tBQ2xCO0NBQ0YsQ0FBQTtBQUVELGVBQWUsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaXMgZnJvbSAnQGludGVyYWN0anMvdXRpbHMvaXMnXG5pbXBvcnQgcmVjdFV0aWxzIGZyb20gJ0BpbnRlcmFjdGpzL3V0aWxzL3JlY3QnXG5cbmZ1bmN0aW9uIHN0YXJ0ICh7IHJlY3QsIHN0YXJ0T2Zmc2V0LCBzdGF0ZSB9KSB7XG4gIGNvbnN0IHsgb3B0aW9ucyB9ID0gc3RhdGVcbiAgY29uc3QgeyBlbGVtZW50UmVjdCB9ID0gb3B0aW9uc1xuICBjb25zdCBvZmZzZXQgPSB7fSBhcyB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9XG5cbiAgaWYgKHJlY3QgJiYgZWxlbWVudFJlY3QpIHtcbiAgICBvZmZzZXQubGVmdCA9IHN0YXJ0T2Zmc2V0LmxlZnQgLSAocmVjdC53aWR0aCAgKiBlbGVtZW50UmVjdC5sZWZ0KVxuICAgIG9mZnNldC50b3AgID0gc3RhcnRPZmZzZXQudG9wICAtIChyZWN0LmhlaWdodCAqIGVsZW1lbnRSZWN0LnRvcClcblxuICAgIG9mZnNldC5yaWdodCAgPSBzdGFydE9mZnNldC5yaWdodCAgLSAocmVjdC53aWR0aCAgKiAoMSAtIGVsZW1lbnRSZWN0LnJpZ2h0KSlcbiAgICBvZmZzZXQuYm90dG9tID0gc3RhcnRPZmZzZXQuYm90dG9tIC0gKHJlY3QuaGVpZ2h0ICogKDEgLSBlbGVtZW50UmVjdC5ib3R0b20pKVxuICB9XG4gIGVsc2Uge1xuICAgIG9mZnNldC5sZWZ0ID0gb2Zmc2V0LnRvcCA9IG9mZnNldC5yaWdodCA9IG9mZnNldC5ib3R0b20gPSAwXG4gIH1cblxuICBzdGF0ZS5vZmZzZXQgPSBvZmZzZXRcbn1cblxuZnVuY3Rpb24gc2V0ICh7IGNvb3JkcywgaW50ZXJhY3Rpb24sIHN0YXRlIH0pIHtcbiAgY29uc3QgeyBvcHRpb25zLCBvZmZzZXQgfSA9IHN0YXRlXG5cbiAgY29uc3QgcmVzdHJpY3Rpb24gPSBnZXRSZXN0cmljdGlvblJlY3Qob3B0aW9ucy5yZXN0cmljdGlvbiwgaW50ZXJhY3Rpb24sIGNvb3JkcylcblxuICBpZiAoIXJlc3RyaWN0aW9uKSB7IHJldHVybiBzdGF0ZSB9XG5cbiAgY29uc3QgcmVjdCA9IHJlc3RyaWN0aW9uXG5cbiAgLy8gb2JqZWN0IGlzIGFzc3VtZWQgdG8gaGF2ZVxuICAvLyB4LCB5LCB3aWR0aCwgaGVpZ2h0IG9yXG4gIC8vIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbVxuICBpZiAoJ3gnIGluIHJlc3RyaWN0aW9uICYmICd5JyBpbiByZXN0cmljdGlvbikge1xuICAgIGNvb3Jkcy54ID0gTWF0aC5tYXgoTWF0aC5taW4ocmVjdC54ICsgcmVjdC53aWR0aCAgLSBvZmZzZXQucmlnaHQsIGNvb3Jkcy54KSwgcmVjdC54ICsgb2Zmc2V0LmxlZnQpXG4gICAgY29vcmRzLnkgPSBNYXRoLm1heChNYXRoLm1pbihyZWN0LnkgKyByZWN0LmhlaWdodCAtIG9mZnNldC5ib3R0b20sIGNvb3Jkcy55KSwgcmVjdC55ICsgb2Zmc2V0LnRvcClcbiAgfVxuICBlbHNlIHtcbiAgICBjb29yZHMueCA9IE1hdGgubWF4KE1hdGgubWluKHJlY3QucmlnaHQgIC0gb2Zmc2V0LnJpZ2h0LCBjb29yZHMueCksIHJlY3QubGVmdCArIG9mZnNldC5sZWZ0KVxuICAgIGNvb3Jkcy55ID0gTWF0aC5tYXgoTWF0aC5taW4ocmVjdC5ib3R0b20gLSBvZmZzZXQuYm90dG9tLCBjb29yZHMueSksIHJlY3QudG9wICArIG9mZnNldC50b3ApXG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0UmVzdHJpY3Rpb25SZWN0ICh2YWx1ZSwgaW50ZXJhY3Rpb24sIGNvb3Jkcz86IEludGVyYWN0LlBvaW50KSB7XG4gIGlmIChpcy5mdW5jKHZhbHVlKSkge1xuICAgIHJldHVybiByZWN0VXRpbHMucmVzb2x2ZVJlY3RMaWtlKHZhbHVlLCBpbnRlcmFjdGlvbi5pbnRlcmFjdGFibGUsIGludGVyYWN0aW9uLmVsZW1lbnQsIFtjb29yZHMueCwgY29vcmRzLnksIGludGVyYWN0aW9uXSlcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcmVjdFV0aWxzLnJlc29sdmVSZWN0TGlrZSh2YWx1ZSwgaW50ZXJhY3Rpb24uaW50ZXJhY3RhYmxlLCBpbnRlcmFjdGlvbi5lbGVtZW50KVxuICB9XG59XG5cbmNvbnN0IHJlc3RyaWN0ID0ge1xuICBzdGFydCxcbiAgc2V0LFxuICBnZXRSZXN0cmljdGlvblJlY3QsXG4gIGRlZmF1bHRzOiB7XG4gICAgZW5hYmxlZDogZmFsc2UsXG4gICAgcmVzdHJpY3Rpb246IG51bGwsXG4gICAgZWxlbWVudFJlY3Q6IG51bGwsXG4gIH0sXG59XG5cbmV4cG9ydCBkZWZhdWx0IHJlc3RyaWN0XG4iXX0=

@@ -40,3 +40,3 @@ import * as utils from '@interactjs/utils';

const { options, offsets } = state;
const origin = utils.getOriginXY(interaction.target, interaction.element, interaction.prepared.name);
const origin = utils.getOriginXY(interaction.interactable, interaction.element, interaction.prepared.name);
const page = utils.extend({}, coords);

@@ -130,2 +130,2 @@ const targets = [];

export default snap;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBvaW50ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxtQkFBbUIsQ0FBQTtBQUUxQyxTQUFTLEtBQUssQ0FBRSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQzlFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFDekIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFBO0lBQ2xCLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQ3JGLE1BQU0sTUFBTSxHQUFHLGFBQWEsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUVuRyxJQUFJLFVBQVUsQ0FBQTtJQUVkLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxhQUFhLEVBQUU7UUFDcEMsVUFBVSxHQUFHO1lBQ1gsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDN0MsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7U0FDOUMsQ0FBQTtLQUNGO1NBQ0s7UUFDSixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO1FBRW5HLFVBQVUsR0FBRyxL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TUFBTSxDQUFBO1lBQ3ZCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1lBQzNCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1lBQ3JCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1lBQ3pCLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFBO1lBQ2YsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUE7WUFFZixLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtTQUNwQjtLQUNGO0lBRUQsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFO1FBQ25CLE1BQU0sQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFDM0IsTUFBTSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtLQUM1QjtJQUVELEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO0FBQ3pCLENBQUM7QUFFRCxNQUFNLElBQUksR0FBRztJQUNYLEtBQUs7SUFDTCxHQUFHO0lBQ0gsUUFBUSxFQUFFO1FBQ1IsT0FBTyxFQUFFLEtBQUs7UUFDZCxLQUFLLEVBQUksUUFBUTtRQUNqQixPQUFPLEVBQUUsSUFBSTtRQUNiLE1BQU0sRUFBRSxJQUFJO1FBRVosY0FBYyxFQUFFLElBQUk7S0FDckI7Q0FDRixDQUFBO0FBRUQsZUFBZSxJQUFJLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dGlscyBmcm9tICdAaW50ZXJhY3Rqcy91dGlscydcblxuZnVuY3Rpb24gc3RhcnQgKHsgaW50ZXJhY3Rpb24sIGludGVyYWN0YWJsZSwgZWxlbWVudCwgcmVjdCwgc3RhdGUsIHN0YXJ0T2Zmc2V0IH0pIHtcbiAgY29uc3QgeyBvcHRpb25zIH0gPSBzdGF0ZVxuICBjb25zdCBvZmZzZXRzID0gW11cbiAgY29uc3Qgb3B0aW9uc09yaWdpbiA9IHV0aWxzLnJlY3QucmVjdFRvWFkodXRpbHMucmVjdC5yZXNvbHZlUmVjdExpa2Uob3B0aW9ucy5vcmlnaW4pKVxuICBjb25zdCBvcmlnaW4gPSBvcHRpb25zT3JpZ2luIHx8IHV0aWxzLmdldE9yaWdpblhZKGludGVyYWN0YWJsZSwgZWxlbWVudCwgaW50ZXJhY3Rpb24ucHJlcGFyZWQubmFtZSlcblxuICBsZXQgc25hcE9mZnNldFxuXG4gIGlmIChvcHRpb25zLm9mZnNldCA9PT0gJ3N0YXJ0Q29vcmRzJykge1xuICAgIHNuYXBPZmZzZXQgPSB7XG4gICAgICB4OiBpbnRlcmFjdGlvbi5jb29yZHMuc3RhcnQucGFnZS54IC0gb3JpZ2luLngsXG4gICAgICB5OiBpbnRlcmFjdGlvbi5jb29yZHMuc3RhcnQucGFnZS55IC0gb3JpZ2luLnksXG4gICAgfVxuICB9XG4gIGVsc2UgIHtcbiAgICBjb25zdCBvZmZzZXRSZWN0ID0gdXRpbHMucmVjdC5yZXNvbHZlUmVjdExpa2Uob3B0aW9ucy5vZmZzZXQsIGludGVyYWN0YWJsZSwgZWxlbWVudCwgW2ludGVyYWN0aW9uXSlcblxuICAgIHNuYXBPZmZzZXQgPSB1dGlscy5yZWN0LnJlY3RUb1hZKG9mZnNldFJlY3QpIHx8IHsgeDogMCwgeTogMCB9XG4gIH1cblxuICBjb25zdCByZWxhdGl2ZVBvaW50cyA9IG9wdGlvbnMucmVsYXRpdmVQb2ludHMgfHwgW11cblxuICBpZiAocmVjdCAmJiBvcHRpb25zLnJlbGF0aXZlUG9pbnRzICYmIG9wdGlvbnMucmVsYXRpdmVQb2ludHMubGVuZ3RoKSB7XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHJlbGF0aXZlUG9pbnRzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgcmVsYXRpdmVQb2ludCA9IHJlbGF0aXZlUG9pbnRzW2luZGV4XVxuXG4gICAgICBvZmZzZXRzLnB1c2goe1xuICAgICAgICBpbmRleCxcbiAgICAgICAgcmVsYXRpdmVQb2ludCxcbiAgICAgICAgeDogc3RhcnRPZmZzZXQubGVmdCAtIChyZWN0LndpZHRoICAqIHJlbGF0aXZlUG9pbnQueCkgKyBzbmFwT2Zmc2V0LngsXG4gICAgICAgIHk6IHN0YXJ0T2Zmc2V0LnRvcCAgLSAocmVjdC5oZWlnaHQgKiByZWxhdGl2ZVBvaW50LnkpICsgc25hcE9mZnNldC55LFxuICAgICAgfSlcbiAgICB9XG4gIH1cbiAgZWxzZSB7XG4gICAgb2Zmc2V0cy5wdXNoKHV0aWxzLmV4dGVuZCh7XG4gICAgICBpbmRleDogMCxcbiAgICAgIHJlbGF0aXZlUG9pbnQ6IG51bGwsXG4gICAgfSwgc25hcE9mZnNldCkpXG4gIH1cblxuICBzdGF0ZS5vZmZzZXRzID0gb2Zmc2V0c1xufVxuXG5mdW5jdGlvbiBzZXQgKHsgaW50ZXJhY3Rpb24sIGNvb3Jkcywgc3RhdGUgfSkge1xuICBjb25zdCB7IG9wdGlvbnMsIG9mZnNldHMgfSA9IHN0YXRlXG5cbiAgY29uc3Qgb3JpZ2luID0gdXRpbHMuZ2V0T3JpZ2luWFkoaW50ZXJhY3Rpb24udGFyZ2V0LCBpbnRlcmFjdGlvbi5lbGVtZW50LCBpbnRlcmFjdGlvbi5wcmVwYXJlZC5uYW1lKVxuICBjb25zdCBwYWdlID0gdXRpbHMuZXh0ZW5kKHt9LCBjb29yZHMpXG4gIGNvbnN0IHRhcmdldHMgPSBbXVxuICBsZXQgdGFyZ2V0XG4gIGxldCBpXG5cbiAgcGFnZS54IC09IG9yaWdpbi54XG4gIHBhZ2UueSAtPSBvcmlnaW4ueVxuXG4gIHN0YXRlLnJlYWxYID0gcGFnZS54XG4gIHN0YXRlLnJlYWxZID0gcGFnZS55XG5cbiAgbGV0IGxlbiA9IG9wdGlvbnMudGFyZ2V0cyA/IG9wdGlvbnMudGFyZ2V0cy5sZW5ndGggOiAwXG5cbiAgZm9yIChjb25zdCBvZmZzZXQgb2Ygb2Zmc2V0cykge1xuICAgIGNvbnN0IHJlbGF0aXZlWCA9IHBhZ2UueCAtIG9mZnNldC54XG4gICAgY29uc3QgcmVsYXRpdmVZID0gcGFnZS55IC0gb2Zmc2V0LnlcblxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBvcHRpb25zLnRhcmdldHMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBzbmFwVGFyZ2V0ID0gb3B0aW9ucy50YXJnZXRzW2luZGV4XVxuICAgICAgaWYgKHV0aWxzLmlzLmZ1bmMoc25hcFRhcmdldCkpIHtcbiAgICAgICAgdGFyZ2V0ID0gc25hcFRhcmdldChyZWxhdGl2ZVgsIHJlbGF0aXZlWSwgaW50ZXJhY3Rpb24sIG9mZnNldCwgaW5kZXgpXG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGFyZ2V0ID0gc25hcFRhcmdldFxuICAgICAgfVxuXG4gICAgICBpZiAoIXRhcmdldCkgeyBjb250aW51ZSB9XG5cbiAgICAgIHRhcmdldHMucHVzaCh7XG4gICAgICAgIHg6IHV0aWxzLmlzLm51bWJlcih0YXJnZXQueCkgPyAodGFyZ2V0LnggKyBvZmZzZXQueCkgOiByZWxhdGl2ZVgsXG4gICAgICAgIHk6IHV0aWxzLmlzLm51bWJlcih0YXJnZXQueSkgPyAodGFyZ2V0LnkgKyBvZmZzZXQueSkgOiByZWxhdGl2ZVksXG5cbiAgICAgICAgcmFuZ2U6IHV0aWxzLmlzLm51bWJlcih0YXJnZXQucmFuZ2UpID8gdGFyZ2V0LnJhbmdlIDogb3B0aW9ucy5yYW5nZSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgY29uc3QgY2xvc2VzdCA9IHtcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgaW5SYW5nZTogZmFsc2UsXG4gICAgZGlzdGFuY2U6IDAsXG4gICAgcmFuZ2U6IDAsXG4gICAgZHg6IDAsXG4gICAgZHk6IDAsXG4gIH1cblxuICBmb3IgKGkgPSAwLCBsZW4gPSB0YXJnZXRzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdGFyZ2V0ID0gdGFyZ2V0c1tpXVxuXG4gICAgY29uc3QgcmFuZ2UgPSB0YXJnZXQucmFuZ2VcbiAgICBjb25zdCBkeCA9IHRhcmdldC54IC0gcGFnZS54XG4gICAgY29uc3QgZHkgPSB0YXJnZXQueSAtIHBhZ2UueVxuICAgIGNvbnN0IGRpc3RhbmNlID0gdXRpbHMuaHlwb3QoZHgsIGR5KVxuICAgIGxldCBpblJhbmdlID0gZGlzdGFuY2UgPD0gcmFuZ2VcblxuICAgIC8vIEluZmluaXRlIHRhcmdldHMgY291bnQgYXMgYmVpbmcgb3V0IG9mIHJhbmdlXG4gICAgLy8gY29tcGFyZWQgdG8gbm9uIGluZmluaXRlIG9uZXMgdGhhdCBhcmUgaW4gcmFuZ2VcbiAgICBpZiAocmFuZ2UgPT09IEluZmluaXR5ICYmIGNsb3Nlc3QuaW5SYW5nZSAmJiBjbG9zZXN0LnJhbmdlICE9PSBJbmZpbml0eSkge1xuICAgICAgaW5SYW5nZSA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKCFjbG9zZXN0LnRhcmdldCB8fCAoaW5SYW5nZVxuICAgICAgLy8gaXMgdGhlIGNsb3Nlc3QgdGFyZ2V0IGluIHJhbmdlP1xuICAgICAgPyAoY2xvc2VzdC5pblJhbmdlICYmIHJhbmdlICE9PSBJbmZpbml0eVxuICAgICAgICAvLyB0aGUgcG9pbnRlciBpcyByZWxhdGl2ZWx5IGRlZXBlciBpbiB0aGlzIHRhcmdldFxuICAgICAgICA/IGRpc3RhbmNlIC8gcmFuZ2UgPCBjbG9zZXN0LmRpc3RhbmNlIC8gY2xvc2VzdC5yYW5nZVxuICAgICAgICAvLyB0aGlzIHRhcmdldCBoYXMgSW5maW5pdGUgcmFuZ2UgYW5kIHRoZSBjbG9zZXN0IGRvZXNuJ3RcbiAgICAgICAgOiAocmFuZ2UgPT09IEluZmluaXR5ICYmIGNsb3Nlc3QucmFuZ2UgIT09IEluZmluaXR5KSB8fFxuICAgICAgICAgIC8vIE9SIHRoaXMgdGFyZ2V0IGlzIGNsb3NlciB0aGF0IHRoZSBwcmV2aW91cyBjbG9zZXN0XG4gICAgICAgICAgZGlzdGFuY2UgPCBjbG9zZXN0LmRpc3RhbmNlKVxuICAgICAgLy8gVGhlIG90aGVyIGlzIG5vdCBpbiByYW5nZSBhbmQgdGhlIHBvaW50ZXIgaXMgY2xvc2VyIHRvIHRoaXMgdGFyZ2V0XG4gICAgICA6ICghY2xvc2VzdC5pblJhbmdlICYmIGRpc3RhbmNlIDwgY2xvc2VzdC5kaXN0YW5jZSkpKSB7XG4gICAgICBjbG9zZXN0LnRhcmdldCA9IHRhcmdldFxuICAgICAgY2xvc2VzdC5kaXN0YW5jZSA9IGRpc3RhbmNlXG4gICAgICBjbG9zZXN0LnJhbmdlID0gcmFuZ2VcbiAgICAgIGNsb3Nlc3QuaW5SYW5nZSA9IGluUmFuZ2VcbiAgICAgIGNsb3Nlc3QuZHggPSBkeFxuICAgICAgY2xvc2VzdC5keSA9IGR5XG5cbiAgICAgIHN0YXRlLnJhbmdlID0gcmFuZ2VcbiAgICB9XG4gIH1cblxuICBpZiAoY2xvc2VzdC5pblJhbmdlKSB7XG4gICAgY29vcmRzLnggPSBjbG9zZXN0LnRhcmdldC54XG4gICAgY29vcmRzLnkgPSBjbG9zZXN0LnRhcmdldC55XG4gIH1cblxuICBzdGF0ZS5jbG9zZXN0ID0gY2xvc2VzdFxufVxuXG5jb25zdCBzbmFwID0ge1xuICBzdGFydCxcbiAgc2V0LFxuICBkZWZhdWx0czoge1xuICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIHJhbmdlICA6IEluZmluaXR5LFxuICAgIHRhcmdldHM6IG51bGwsXG4gICAgb2Zmc2V0OiBudWxsLFxuXG4gICAgcmVsYXRpdmVQb2ludHM6IG51bGwsXG4gIH0sXG59XG5cbmV4cG9ydCBkZWZhdWx0IHNuYXBcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBvaW50ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxtQkFBbUIsQ0FBQTtBQUUxQyxTQUFTLEtBQUssQ0FBRSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQzlFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFDekIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFBO0lBQ2xCLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQ3JGLE1BQU0sTUFBTSxHQUFHLGFBQWEsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUVuRyxJQUFJLFVBQVUsQ0FBQTtJQUVkLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxhQUFhLEVBQUU7UUFDcEMsVUFBVSxHQUFHO1lBQ1gsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDN0MsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7U0FDOUMsQ0FBQTtLQUNGO1NBQ0s7UUFDSixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO1FBRW5HLFVBQVUsR0FBRyxL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TUFBTSxDQUFBO1lBQ3ZCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1lBQzNCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1lBQ3JCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1lBQ3pCLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFBO1lBQ2YsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUE7WUFFZixLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtTQUNwQjtLQUNGO0lBRUQsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFO1FBQ25CLE1BQU0sQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFDM0IsTUFBTSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtLQUM1QjtJQUVELEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO0FBQ3pCLENBQUM7QUFFRCxNQUFNLElBQUksR0FBRztJQUNYLEtBQUs7SUFDTCxHQUFHO0lBQ0gsUUFBUSxFQUFFO1FBQ1IsT0FBTyxFQUFFLEtBQUs7UUFDZCxLQUFLLEVBQUksUUFBUTtRQUNqQixPQUFPLEVBQUUsSUFBSTtRQUNiLE1BQU0sRUFBRSxJQUFJO1FBRVosY0FBYyxFQUFFLElBQUk7S0FDckI7Q0FDRixDQUFBO0FBRUQsZUFBZSxJQUFJLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dGlscyBmcm9tICdAaW50ZXJhY3Rqcy91dGlscydcblxuZnVuY3Rpb24gc3RhcnQgKHsgaW50ZXJhY3Rpb24sIGludGVyYWN0YWJsZSwgZWxlbWVudCwgcmVjdCwgc3RhdGUsIHN0YXJ0T2Zmc2V0IH0pIHtcbiAgY29uc3QgeyBvcHRpb25zIH0gPSBzdGF0ZVxuICBjb25zdCBvZmZzZXRzID0gW11cbiAgY29uc3Qgb3B0aW9uc09yaWdpbiA9IHV0aWxzLnJlY3QucmVjdFRvWFkodXRpbHMucmVjdC5yZXNvbHZlUmVjdExpa2Uob3B0aW9ucy5vcmlnaW4pKVxuICBjb25zdCBvcmlnaW4gPSBvcHRpb25zT3JpZ2luIHx8IHV0aWxzLmdldE9yaWdpblhZKGludGVyYWN0YWJsZSwgZWxlbWVudCwgaW50ZXJhY3Rpb24ucHJlcGFyZWQubmFtZSlcblxuICBsZXQgc25hcE9mZnNldFxuXG4gIGlmIChvcHRpb25zLm9mZnNldCA9PT0gJ3N0YXJ0Q29vcmRzJykge1xuICAgIHNuYXBPZmZzZXQgPSB7XG4gICAgICB4OiBpbnRlcmFjdGlvbi5jb29yZHMuc3RhcnQucGFnZS54IC0gb3JpZ2luLngsXG4gICAgICB5OiBpbnRlcmFjdGlvbi5jb29yZHMuc3RhcnQucGFnZS55IC0gb3JpZ2luLnksXG4gICAgfVxuICB9XG4gIGVsc2UgIHtcbiAgICBjb25zdCBvZmZzZXRSZWN0ID0gdXRpbHMucmVjdC5yZXNvbHZlUmVjdExpa2Uob3B0aW9ucy5vZmZzZXQsIGludGVyYWN0YWJsZSwgZWxlbWVudCwgW2ludGVyYWN0aW9uXSlcblxuICAgIHNuYXBPZmZzZXQgPSB1dGlscy5yZWN0LnJlY3RUb1hZKG9mZnNldFJlY3QpIHx8IHsgeDogMCwgeTogMCB9XG4gIH1cblxuICBjb25zdCByZWxhdGl2ZVBvaW50cyA9IG9wdGlvbnMucmVsYXRpdmVQb2ludHMgfHwgW11cblxuICBpZiAocmVjdCAmJiBvcHRpb25zLnJlbGF0aXZlUG9pbnRzICYmIG9wdGlvbnMucmVsYXRpdmVQb2ludHMubGVuZ3RoKSB7XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHJlbGF0aXZlUG9pbnRzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgcmVsYXRpdmVQb2ludCA9IHJlbGF0aXZlUG9pbnRzW2luZGV4XVxuXG4gICAgICBvZmZzZXRzLnB1c2goe1xuICAgICAgICBpbmRleCxcbiAgICAgICAgcmVsYXRpdmVQb2ludCxcbiAgICAgICAgeDogc3RhcnRPZmZzZXQubGVmdCAtIChyZWN0LndpZHRoICAqIHJlbGF0aXZlUG9pbnQueCkgKyBzbmFwT2Zmc2V0LngsXG4gICAgICAgIHk6IHN0YXJ0T2Zmc2V0LnRvcCAgLSAocmVjdC5oZWlnaHQgKiByZWxhdGl2ZVBvaW50LnkpICsgc25hcE9mZnNldC55LFxuICAgICAgfSlcbiAgICB9XG4gIH1cbiAgZWxzZSB7XG4gICAgb2Zmc2V0cy5wdXNoKHV0aWxzLmV4dGVuZCh7XG4gICAgICBpbmRleDogMCxcbiAgICAgIHJlbGF0aXZlUG9pbnQ6IG51bGwsXG4gICAgfSwgc25hcE9mZnNldCkpXG4gIH1cblxuICBzdGF0ZS5vZmZzZXRzID0gb2Zmc2V0c1xufVxuXG5mdW5jdGlvbiBzZXQgKHsgaW50ZXJhY3Rpb24sIGNvb3Jkcywgc3RhdGUgfSkge1xuICBjb25zdCB7IG9wdGlvbnMsIG9mZnNldHMgfSA9IHN0YXRlXG5cbiAgY29uc3Qgb3JpZ2luID0gdXRpbHMuZ2V0T3JpZ2luWFkoaW50ZXJhY3Rpb24uaW50ZXJhY3RhYmxlLCBpbnRlcmFjdGlvbi5lbGVtZW50LCBpbnRlcmFjdGlvbi5wcmVwYXJlZC5uYW1lKVxuICBjb25zdCBwYWdlID0gdXRpbHMuZXh0ZW5kKHt9LCBjb29yZHMpXG4gIGNvbnN0IHRhcmdldHMgPSBbXVxuICBsZXQgdGFyZ2V0XG4gIGxldCBpXG5cbiAgcGFnZS54IC09IG9yaWdpbi54XG4gIHBhZ2UueSAtPSBvcmlnaW4ueVxuXG4gIHN0YXRlLnJlYWxYID0gcGFnZS54XG4gIHN0YXRlLnJlYWxZID0gcGFnZS55XG5cbiAgbGV0IGxlbiA9IG9wdGlvbnMudGFyZ2V0cyA/IG9wdGlvbnMudGFyZ2V0cy5sZW5ndGggOiAwXG5cbiAgZm9yIChjb25zdCBvZmZzZXQgb2Ygb2Zmc2V0cykge1xuICAgIGNvbnN0IHJlbGF0aXZlWCA9IHBhZ2UueCAtIG9mZnNldC54XG4gICAgY29uc3QgcmVsYXRpdmVZID0gcGFnZS55IC0gb2Zmc2V0LnlcblxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBvcHRpb25zLnRhcmdldHMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBzbmFwVGFyZ2V0ID0gb3B0aW9ucy50YXJnZXRzW2luZGV4XVxuICAgICAgaWYgKHV0aWxzLmlzLmZ1bmMoc25hcFRhcmdldCkpIHtcbiAgICAgICAgdGFyZ2V0ID0gc25hcFRhcmdldChyZWxhdGl2ZVgsIHJlbGF0aXZlWSwgaW50ZXJhY3Rpb24sIG9mZnNldCwgaW5kZXgpXG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGFyZ2V0ID0gc25hcFRhcmdldFxuICAgICAgfVxuXG4gICAgICBpZiAoIXRhcmdldCkgeyBjb250aW51ZSB9XG5cbiAgICAgIHRhcmdldHMucHVzaCh7XG4gICAgICAgIHg6IHV0aWxzLmlzLm51bWJlcih0YXJnZXQueCkgPyAodGFyZ2V0LnggKyBvZmZzZXQueCkgOiByZWxhdGl2ZVgsXG4gICAgICAgIHk6IHV0aWxzLmlzLm51bWJlcih0YXJnZXQueSkgPyAodGFyZ2V0LnkgKyBvZmZzZXQueSkgOiByZWxhdGl2ZVksXG5cbiAgICAgICAgcmFuZ2U6IHV0aWxzLmlzLm51bWJlcih0YXJnZXQucmFuZ2UpID8gdGFyZ2V0LnJhbmdlIDogb3B0aW9ucy5yYW5nZSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgY29uc3QgY2xvc2VzdCA9IHtcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgaW5SYW5nZTogZmFsc2UsXG4gICAgZGlzdGFuY2U6IDAsXG4gICAgcmFuZ2U6IDAsXG4gICAgZHg6IDAsXG4gICAgZHk6IDAsXG4gIH1cblxuICBmb3IgKGkgPSAwLCBsZW4gPSB0YXJnZXRzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdGFyZ2V0ID0gdGFyZ2V0c1tpXVxuXG4gICAgY29uc3QgcmFuZ2UgPSB0YXJnZXQucmFuZ2VcbiAgICBjb25zdCBkeCA9IHRhcmdldC54IC0gcGFnZS54XG4gICAgY29uc3QgZHkgPSB0YXJnZXQueSAtIHBhZ2UueVxuICAgIGNvbnN0IGRpc3RhbmNlID0gdXRpbHMuaHlwb3QoZHgsIGR5KVxuICAgIGxldCBpblJhbmdlID0gZGlzdGFuY2UgPD0gcmFuZ2VcblxuICAgIC8vIEluZmluaXRlIHRhcmdldHMgY291bnQgYXMgYmVpbmcgb3V0IG9mIHJhbmdlXG4gICAgLy8gY29tcGFyZWQgdG8gbm9uIGluZmluaXRlIG9uZXMgdGhhdCBhcmUgaW4gcmFuZ2VcbiAgICBpZiAocmFuZ2UgPT09IEluZmluaXR5ICYmIGNsb3Nlc3QuaW5SYW5nZSAmJiBjbG9zZXN0LnJhbmdlICE9PSBJbmZpbml0eSkge1xuICAgICAgaW5SYW5nZSA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKCFjbG9zZXN0LnRhcmdldCB8fCAoaW5SYW5nZVxuICAgICAgLy8gaXMgdGhlIGNsb3Nlc3QgdGFyZ2V0IGluIHJhbmdlP1xuICAgICAgPyAoY2xvc2VzdC5pblJhbmdlICYmIHJhbmdlICE9PSBJbmZpbml0eVxuICAgICAgICAvLyB0aGUgcG9pbnRlciBpcyByZWxhdGl2ZWx5IGRlZXBlciBpbiB0aGlzIHRhcmdldFxuICAgICAgICA/IGRpc3RhbmNlIC8gcmFuZ2UgPCBjbG9zZXN0LmRpc3RhbmNlIC8gY2xvc2VzdC5yYW5nZVxuICAgICAgICAvLyB0aGlzIHRhcmdldCBoYXMgSW5maW5pdGUgcmFuZ2UgYW5kIHRoZSBjbG9zZXN0IGRvZXNuJ3RcbiAgICAgICAgOiAocmFuZ2UgPT09IEluZmluaXR5ICYmIGNsb3Nlc3QucmFuZ2UgIT09IEluZmluaXR5KSB8fFxuICAgICAgICAgIC8vIE9SIHRoaXMgdGFyZ2V0IGlzIGNsb3NlciB0aGF0IHRoZSBwcmV2aW91cyBjbG9zZXN0XG4gICAgICAgICAgZGlzdGFuY2UgPCBjbG9zZXN0LmRpc3RhbmNlKVxuICAgICAgLy8gVGhlIG90aGVyIGlzIG5vdCBpbiByYW5nZSBhbmQgdGhlIHBvaW50ZXIgaXMgY2xvc2VyIHRvIHRoaXMgdGFyZ2V0XG4gICAgICA6ICghY2xvc2VzdC5pblJhbmdlICYmIGRpc3RhbmNlIDwgY2xvc2VzdC5kaXN0YW5jZSkpKSB7XG4gICAgICBjbG9zZXN0LnRhcmdldCA9IHRhcmdldFxuICAgICAgY2xvc2VzdC5kaXN0YW5jZSA9IGRpc3RhbmNlXG4gICAgICBjbG9zZXN0LnJhbmdlID0gcmFuZ2VcbiAgICAgIGNsb3Nlc3QuaW5SYW5nZSA9IGluUmFuZ2VcbiAgICAgIGNsb3Nlc3QuZHggPSBkeFxuICAgICAgY2xvc2VzdC5keSA9IGR5XG5cbiAgICAgIHN0YXRlLnJhbmdlID0gcmFuZ2VcbiAgICB9XG4gIH1cblxuICBpZiAoY2xvc2VzdC5pblJhbmdlKSB7XG4gICAgY29vcmRzLnggPSBjbG9zZXN0LnRhcmdldC54XG4gICAgY29vcmRzLnkgPSBjbG9zZXN0LnRhcmdldC55XG4gIH1cblxuICBzdGF0ZS5jbG9zZXN0ID0gY2xvc2VzdFxufVxuXG5jb25zdCBzbmFwID0ge1xuICBzdGFydCxcbiAgc2V0LFxuICBkZWZhdWx0czoge1xuICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIHJhbmdlICA6IEluZmluaXR5LFxuICAgIHRhcmdldHM6IG51bGwsXG4gICAgb2Zmc2V0OiBudWxsLFxuXG4gICAgcmVsYXRpdmVQb2ludHM6IG51bGwsXG4gIH0sXG59XG5cbmV4cG9ydCBkZWZhdWx0IHNuYXBcbiJdfQ==
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