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

@interactjs/inertia

Package Overview
Dependencies
Maintainers
2
Versions
137
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@interactjs/inertia - npm Package Compare versions

Comparing version 1.4.0-rc.3 to 1.4.0-rc.4

inertia.spec.d.ts

30

index.d.ts

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

declare type Scope = import('@interactjs/core/scope').Scope;
declare module '@interactjs/core/InteractEvent' {

@@ -10,3 +9,28 @@ enum EventPhase {

interface Interaction {
inertia?: any;
inertia?: {
active: boolean;
smoothEnd: boolean;
allowResume: boolean;
startEvent?: Interact.InteractEvent;
upCoords: {
page: Interact.Point;
client: Interact.Point;
timeStamp: number;
};
xe?: number;
ye?: number;
sx?: number;
sy?: number;
t0?: number;
te?: number;
v0?: number;
vx0?: number;
vy0?: number;
duration?: number;
modifiedXe?: number;
modifiedYe?: number;
lambda_v0?: number;
one_ve_v0?: number;
timeout: any;
};
}

@@ -26,3 +50,3 @@ }

}
declare function install(scope: Scope): void;
declare function install(scope: Interact.Scope): void;
declare function calcInertia(interaction: Interact.Interaction, state: any): void;

@@ -29,0 +53,0 @@ declare function inertiaTick(interaction: Interact.Interaction): void;

46

index.js

@@ -9,3 +9,2 @@ import { EventPhase } from '@interactjs/core/InteractEvent';

const { interactions, defaults, } = scope;
scope.usePlugin(modifiers);
interactions.signals.on('new', ({ interaction }) => {

@@ -16,15 +15,4 @@ interaction.inertia = {

allowResume: false,
startEvent: null,
upCoords: {},
xe: 0,
ye: 0,
sx: 0,
sy: 0,
t0: 0,
vx0: 0,
vys: 0,
duration: 0,
lambda_v0: 0,
one_ve_v0: 0,
i: null,
timeout: null,
};

@@ -44,2 +32,3 @@ });

};
scope.usePlugin(modifiers);
}

@@ -56,3 +45,3 @@ function resume({ interaction, event, pointer, eventTarget }, scope) {

// stop inertia
raf.cancel(state.i);
raf.cancel(state.timeout);
state.active = false;

@@ -62,3 +51,3 @@ interaction.simulation = null;

interaction.updatePointer(pointer, event, eventTarget, true);
utils.pointer.setCoords(interaction.coords.cur, interaction.pointers.map((p) => p.pointer));
utils.pointer.setCoords(interaction.coords.cur, interaction.pointers.map((p) => p.pointer), interaction._now());
// fire appropriate signals

@@ -87,3 +76,3 @@ const signalArg = {

const options = getOptions(interaction);
const now = new Date().getTime();
const now = interaction._now();
const { client: velocityClient } = interaction.coords.velocity;

@@ -106,6 +95,9 @@ const pointerSpeed = utils.hypot(velocityClient.x, velocityClient.y);

preEnd: true,
requireEndOnly: true,
prevCoords: undefined,
requireEndOnly: null,
};
// smoothEnd
if (inertiaPossible && !inertia) {
modifierArg.prevCoords = interaction.prevEvent.page;
modifierArg.requireEndOnly = false;
modifierResult = modifiers.setAll(modifierArg);

@@ -136,6 +128,8 @@ if (modifierResult.changed) {

modifierArg.pageCoords.y += state.ye;
modifierArg.prevCoords = undefined;
modifierArg.requireEndOnly = true;
modifierResult = modifiers.setAll(modifierArg);
state.modifiedXe += modifierResult.delta.x;
state.modifiedYe += modifierResult.delta.y;
state.i = raf.request(() => inertiaTick(interaction));
state.timeout = raf.request(() => inertiaTick(interaction));
}

@@ -147,3 +141,3 @@ else {

state.sx = state.sy = 0;
state.i = raf.request(() => smothEndTick(interaction));
state.timeout = raf.request(() => smothEndTick(interaction));
}

@@ -155,3 +149,3 @@ return false;

if (state.active) {
raf.cancel(state.i);
raf.cancel(state.timeout);
state.active = false;

@@ -182,3 +176,3 @@ interaction.simulation = null;

const lambda = options.resistance;
const t = new Date().getTime() / 1000 - state.t0;
const t = interaction._now() / 1000 - state.t0;
if (t < state.te) {

@@ -196,3 +190,3 @@ const progress = 1 - (Math.exp(-lambda * t) - state.lambda_v0) / state.one_ve_v0;

interaction.move();
state.i = raf.request(() => inertiaTick(interaction));
state.timeout = raf.request(() => inertiaTick(interaction));
}

@@ -212,3 +206,3 @@ else {

const state = interaction.inertia;
const t = new Date().getTime() - state.t0;
const t = interaction._now() - state.t0;
const { smoothEndDuration: duration } = getOptions(interaction);

@@ -219,3 +213,3 @@ if (t < duration) {

interaction.move();
state.i = raf.request(() => smothEndTick(interaction));
state.timeout = raf.request(() => smothEndTick(interaction));
}

@@ -245,3 +239,3 @@ else {

clientY: clientUp.y + state.sy,
}]);
}], interaction._now());
}

@@ -262,2 +256,2 @@ function getOptions({ interactable, prepared }) {

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDM0QsT0FBTyxTQUFTLE1BQU0sNEJBQTRCLENBQUE7QUFDbEQsT0FBTyxLQUFLLEtBQUssTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQyxPQUFPLEdBQUcsTUFBTSx1QkFBdUIsQ0FBQTtBQStCdEMsVUFBa0IsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO0FBQ3JDLFVBQWtCLENBQUMsWUFBWSxHQUFHLGNBQWMsQ0FBQTtBQUVqRCxTQUFTLE9BQU8sQ0FBRSxLQUFZO0lBQzVCLE1BQU0sRUFDSixZQUFZLEVBQ1osUUFBUSxHQUNULEdBQUcsS0FBSyxDQUFBO0lBRVQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUUxQixZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUU7UUFDakQsV0FBVyxDQUFDLE9BQU8sR0FBRztZQUNwQixNQUFNLEVBQU8sS0FBSztZQUNsQixTQUFTLEVBQUksS0FBSztZQUNsQixXQUFXLEVBQUUsS0FBSztZQUVsQixVQUFVLEVBQUUsSUFBSTtZQUNoQixRQUFRLEVBQUksRUFBRTtZQUVkLEVBQUUsRUFBRSxDQUFDO1lBQ0wsRUFBRSxFQUFFLENBQUM7WUFDTCxFQUFFLEVBQUUsQ0FBQztZQUNMLEVBQUUsRUFBRSxDQUFDO1lBRUwsRUFBRSxFQUFFLENBQUM7WUFDTCxHQUFHLEVBQUUsQ0FBQztZQUNOLEdBQUcsRUFBRSxDQUFDO1lBQ04sUUFBUSxFQUFFLENBQUM7WUFFWCxTQUFTLEVBQUUsQ0FBQztZQUNaLFNBQVMsRUFBRSxDQUFDO1lBQ1osQ0FBQyxFQUFJLElBQUk7U0FDVixDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7SUFFRiw2QkFBNkI7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QU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFBO0FBQy9DLENBQUM7QUFFRCxlQUFlO0lBQ2IsRUFBRSxFQUFFLFNBQVM7SUFDYixPQUFPO0lBQ1AsV0FBVztJQUNYLFdBQVc7SUFDWCxZQUFZO0lBQ1osbUJBQW1CO0NBQ3BCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudFBoYXNlIH0gZnJvbSAnQGludGVyYWN0anMvY29yZS9JbnRlcmFjdEV2ZW50J1xuaW1wb3J0IG1vZGlmaWVycyBmcm9tICdAaW50ZXJhY3Rqcy9tb2RpZmllcnMvYmFzZSdcbmltcG9ydCAqIGFzIHV0aWxzIGZyb20gJ0BpbnRlcmFjdGpzL3V0aWxzJ1xuaW1wb3J0IHJhZiBmcm9tICdAaW50ZXJhY3Rqcy91dGlscy9yYWYnXG5cbnR5cGUgU2NvcGUgPSBpbXBvcnQgKCdAaW50ZXJhY3Rqcy9jb3JlL3Njb3BlJykuU2NvcGVcblxuZGVjbGFyZSBtb2R1bGUgJ0BpbnRlcmFjdGpzL2NvcmUvSW50ZXJhY3RFdmVudCcge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2hhZG93XG4gIGVudW0gRXZlbnRQaGFzZSB7XG4gICAgUmVzdW1lID0gJ3Jlc3VtZScsXG4gICAgSW5lcnRpYVN0YXJ0ID0gJ2luZXJ0aWFzdGFydCcsXG4gIH1cbn1cblxuZGVjbGFyZSBtb2R1bGUgJ0BpbnRlcmFjdGpzL2NvcmUvSW50ZXJhY3Rpb24nIHtcbiAgaW50ZXJmYWNlIEludGVyYWN0aW9uIHtcbiAgICBpbmVydGlhPzogYW55XG4gIH1cbn1cblxuZGVjbGFyZSBtb2R1bGUgJ0BpbnRlcmFjdGpzL2NvcmUvZGVmYXVsdE9wdGlvbnMnIHtcbiAgaW50ZXJmYWNlIFBlckFjdGlvbkRlZmF1bHRzIHtcbiAgICBpbmVydGlhPzoge1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW4sXG4gICAgICByZXNpc3RhbmNlPzogbnVtYmVyLCAgICAgICAgLy8gdGhlIGxhbWJkYSBpbiBleHBvbmVudGlhbCBkZWNheVxuICAgICAgbWluU3BlZWQ/OiBudW1iZXIsICAgICAgICAgIC8vIHRhcmdldCBzcGVlZCBtdXN0IGJlIGFib3ZlIHRoaXMgZm9yIGluZXJ0aWEgdG8gc3RhcnRcbiAgICAgIGVuZFNwZWVkPzogbnVtYmVyLCAgICAgICAgICAvLyB0aGUgc3BlZWQgYXQgd2hpY2ggaW5lcnRpYSBpcyBzbG93IGVub3VnaCB0byBzdG9wXG4gICAgICBhbGxvd1Jlc3VtZT86IHRydWUsICAgICAgICAgLy8gYWxsb3cgcmVzdW1pbmcgYW4gYWN0aW9uIGluIGluZXJ0aWEgcGhhc2VcbiAgICAgIHNtb290aEVuZER1cmF0aW9uPzogbnVtYmVyLCAvLyBhbmltYXRlIHRvIHNuYXAvcmVzdHJpY3QgZW5kT25seSBpZiB0aGVyZSdzIG5vIGluZXJ0aWFcbiAgICB9IHwgYm9vbGVhbiAvLyBGSVhNRVxuICB9XG59XG5cbihFdmVudFBoYXNlIGFzIGFueSkuUmVzdW1lID0gJ3Jlc3VtZSc7XG4oRXZlbnRQaGFzZSBhcyBhbnkpLkluZXJ0aWFTdGFydCA9ICdpbmVydGlhc3RhcnQnXG5cbmZ1bmN0aW9uIGluc3RhbGwgKHNjb3BlOiBTY29wZSkge1xuICBjb25zdCB7XG4gICAgaW50ZXJhY3Rpb25zLFxuICAgIGRlZmF1bHRzLFxuICB9ID0gc2NvcGVcblxuICBzY29wZS51c2VQbHVnaW4obW9kaWZpZXJzKVxuXG4gIGludGVyYWN0aW9ucy5zaWduYWxzLm9uKCduZXcnLCAoeyBpbnRlcmFjdGlvbiB9KSA9PiB7XG4gICAgaW50ZXJhY3Rpb24uaW5lcnRpYSA9IHtcbiAgICAgIGFjdGl2ZSAgICAgOiBmYWxzZSxcbiAgICAgIHNtb290aEVuZCAgOiBmYWxzZSxcbiAgICAgIGFsbG93UmVzdW1lOiBmYWxzZSxcblxuICAgICAgc3RhcnRFdmVudDogbnVsbCxcbiAgICAgIHVwQ29vcmRzICA6IHt9LFxuXG4gICAgICB4ZTogMCxcbiAgICAgIHllOiAwLFxuICAgICAgc3g6IDAsXG4gICAgICBzeTogMCxcblxuICAgICAgdDA6IDAsXG4gICAgICB2eDA6IDAsXG4gICAgICB2eXM6IDAsXG4gICAgICBkdXJhdGlvbjogMCxcblxuICAgICAgbGFtYmRhX3YwOiAwLFxuICAgICAgb25lX3ZlX3YwOiAwLFxuICAgICAgaSAgOiBudWxsLFxuICAgIH1cbiAgfSlcblxuICAvLyBGSVhNRSBwcm9wZXIgc2lnbmFsIHR5cGluZ1xuICBpbnRlcmFjdGlvbnMuc2lnbmFscy5vbignYmVmb3JlLWFjdGlvbi1lbmQnLCAoYXJnKSA9PiByZWxlYXNlKGFyZyBhcyBhbnksIHNjb3BlKSlcbiAgaW50ZXJhY3Rpb25zLnNpZ25hbHMub24oJ2Rvd24nLCAoYXJnKSA9PiByZXN1bWUoYXJnIGFzIGFueSwgc2NvcGUpKVxuICBpbnRlcmFjdGlvbnMuc2lnbmFscy5vbignc3RvcCcsIChhcmcpID0+IHN0b3AoYXJnIGFzIGFueSkpXG5cbiAgZGVmYXVsdHMucGVyQWN0aW9uLmluZXJ0aWEgPSB7XG4gICAgZW5hYmxlZCAgICAgICAgICA6IGZhbHNlLFxuICAgIHJlc2lzdGFuY2UgICAgICAgOiAxMCwgICAgLy8gdGhlIGxhbWJkYSBpbiBleHBvbmVudGlhbCBkZWNheVxuICAgIG1pblNwZWVkICAgICAgICAgOiAxMDAsICAgLy8gdGFyZ2V0IHNwZWVkIG11c3QgYmUgYWJvdmUgdGhpcyBmb3IgaW5lcnRpYSB0byBzdGFydFxuICAgIGVuZFNwZWVkICAgICAgICAgOiAxMCwgICAgLy8gdGhlIHNwZWVkIGF0IHdoaWNoIGluZXJ0aWEgaXMgc2xvdyBlbm91Z2ggdG8gc3RvcFxuICAgIGFsbG93UmVzdW1lICAgICAgOiB0cnVlLCAgLy8gYWxsb3cgcmVzdW1pbmcgYW4gYWN0aW9uIGluIGluZXJ0aWEgcGhhc2VcbiAgICBzbW9vdGhFbmREdXJhdGlvbjogMzAwLCAgIC8vIGFuaW1hdGUgdG8gc25hcC9yZXN0cmljdCBlbmRPbmx5IGlmIHRoZXJlJ3Mgbm8gaW5lcnRpYVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlc3VtZSAoeyBpbnRlcmFjdGlvbiwgZXZlbnQsIHBvaW50ZXIsIGV2ZW50VGFyZ2V0IH06IEludGVyYWN0LlNpZ25hbEFyZywgc2NvcGU6IFNjb3BlKSB7XG4gIGNvbnN0IHN0YXRlID0gaW50ZXJhY3Rpb24uaW5lcnRpYVxuXG4gIC8vIENoZWNrIGlmIHRoZSBkb3duIGV2ZW50IGhpdHMgdGhlIGN1cnJlbnQgaW5lcnRpYSB0YXJnZXRcbiAgaWYgKHN0YXRlLmFjdGl2ZSkge1xuICAgIGxldCBlbGVtZW50ID0gZXZlbnRUYXJnZXRcblxuICAgIC8vIGNsaW1iIHVwIHRoZSBET00gdHJlZSBmcm9tIHRoZSBldmVudCB0YXJnZXRcbiAgICB3aGlsZSAodXRpbHMuaXMuZWxlbWVudChlbGVtZW50KSkge1xuICAgICAgLy8gaWYgaW50ZXJhY3Rpb24gZWxlbWVudCBpcyB0aGUgY3VycmVudCBpbmVydGlhIHRhcmdldCBlbGVtZW50XG4gICAgICBpZiAoZWxlbWVudCA9PT0gaW50ZXJhY3Rpb24uZWxlbWVudCkge1xuICAgICAgICAvLyBzdG9wIGluZXJ0aWFcbiAgICAgICAgcmFmLmNhbmNlbChzdGF0ZS5pKVxuICAgICAgICBzdGF0ZS5hY3RpdmUgPSBmYWxzZVxuICAgICAgICBpbnRlcmFjdGlvbi5zaW11bGF0aW9uID0gbnVsbFxuXG4gICAgICAgIC8vIHVwZGF0ZSBwb2ludGVycyB0byB0aGUgZG93biBldmVudCdzIGNvb3JkaW5hdGVzXG4gICAgICAgIGludGVyYWN0aW9uLnVwZGF0ZVBvaW50ZXIocG9pbnRlciwgZXZlbnQsIGV2ZW50VGFyZ2V0LCB0cnVlKVxuICAgICAgICB1dGlscy5wb2ludGVyLnNldENvb3JkcyhcbiAgICAgICAgICBpbnRlcmFjdGlvbi5jb29yZHMuY3VyLFxuICAgICAgICAgIGludGVyYWN0aW9uLnBvaW50ZXJzLm1hcCgocCkgPT4gcC5wb2ludGVyKVxuICAgICAgICApXG5cbiAgICAgICAgLy8gZmlyZSBhcHByb3ByaWF0ZSBzaWduYWxzXG4gICAgICAgIGNvbnN0IHNpZ25hbEFyZyA9IHtcbiAgICAgICAgICBpbnRlcmFjdGlvbixcbiAgICAgICAgfVxuXG4gICAgICAgIHNjb3BlLmludGVyYWN0aW9ucy5zaWduYWxzLmZpcmUoJ2FjdGlvbi1yZXN1bWUnLCBzaWduYWxBcmcpXG5cbiAgICAgICAgLy8gZmlyZSBhIHJldW1lIGV2ZW50XG4gICAgICAgIGNvbnN0IHJlc3VtZUV2ZW50ID0gbmV3IHNjb3BlLkludGVyYWN0RXZlbnQoXG4gICAgICAgICAgaW50ZXJhY3Rpb24sIGV2ZW50LCBpbnRlcmFjdGlvbi5wcmVwYXJlZC5uYW1lLCBFdmVudFBoYXNlLlJlc3VtZSwgaW50ZXJhY3Rpb24uZWxlbWVudClcblxuICAgICAgICBpbnRlcmFjdGlvbi5fZmlyZUV2ZW50KHJlc3VtZUV2ZW50KVxuXG4gICAgICAgIHV0aWxzLnBvaW50ZXIuY29weUNvb3JkcyhpbnRlcmFjdGlvbi5jb29yZHMucHJldiwgaW50ZXJhY3Rpb24uY29vcmRzLmN1cilcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgZWxlbWVudCA9IHV0aWxzLmRvbS5wYXJlbnROb2RlKGVsZW1lbnQpXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlbGVhc2U8VCBleHRlbmRzIEludGVyYWN0LkFjdGlvbk5hbWU+ICh7IGludGVyYWN0aW9uLCBldmVudCwgbm9QcmVFbmQgfTogSW50ZXJhY3QuU2lnbmFsQXJnLCBzY29wZTogU2NvcGUpIHtcbiAgY29uc3Qgc3RhdGUgPSBpbnRlcmFjdGlvbi5pbmVydGlhXG5cbiAgaWYgKCFpbnRlcmFjdGlvbi5pbnRlcmFjdGluZygpIHx8XG4gICAgKGludGVyYWN0aW9uLnNpbXVsYXRpb24gJiYgaW50ZXJhY3Rpb24uc2ltdWxhdGlvbi5hY3RpdmUpIHx8XG4gIG5vUHJlRW5kKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IG9wdGlvbnMgPSBnZXRPcHRpb25zKGludGVyYWN0aW9uKVxuXG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpXG4gIGNvbnN0IHsgY2xpZW50OiB2ZWxvY2l0eUNsaWVudCB9ID0gaW50ZXJhY3Rpb24uY29vcmRzLnZlbG9jaXR5XG4gIGNvbnN0IHBvaW50ZXJTcGVlZCA9IHV0aWxzLmh5cG90KHZlbG9jaXR5Q2xpZW50LngsIHZlbG9jaXR5Q2xpZW50LnkpXG5cbiAgbGV0IHNtb290aEVuZCA9IGZhbHNlXG4gIGxldCBtb2RpZmllclJlc3VsdDogUmV0dXJuVHlwZTx0eXBlb2YgbW9kaWZpZXJzLnNldEFsbD5cblxuICAvLyBjaGVjayBpZiBpbmVydGlhIHNob3VsZCBiZSBzdGFydGVkXG4gIGNvbnN0IGluZXJ0aWFQb3NzaWJsZSA9IChvcHRpb25zICYmIG9wdGlvbnMuZW5hYmxlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24ucHJlcGFyZWQubmFtZSAhPT0gJ2dlc3R1cmUnICYmXG4gICAgICAgICAgICAgICAgICAgICBldmVudCAhPT0gc3RhdGUuc3RhcnRFdmVudClcblxuICBjb25zdCBpbmVydGlhID0gKGluZXJ0aWFQb3NzaWJsZSAmJlxuICAgIChub3cgLSBpbnRlcmFjdGlvbi5jb29yZHMuY3VyLnRpbWVTdGFtcCkgPCA1MCAmJlxuICAgIHBvaW50ZXJTcGVlZCA+IG9wdGlvbnMubWluU3BlZWQgJiZcbiAgICBwb2ludGVyU3BlZWQgPiBvcHRpb25zLmVuZFNwZWVkKVxuXG4gIGNvbnN0IG1vZGlmaWVyQXJnID0ge1xuICAgIGludGVyYWN0aW9uLFxuICAgIHBhZ2VDb29yZHM6IHV0aWxzLmV4dGVuZCh7fSwgaW50ZXJhY3Rpb24uY29vcmRzLmN1ci5wYWdlKSxcbiAgICBzdGF0ZXM6IGluZXJ0aWFQb3NzaWJsZSAmJiBpbnRlcmFjdGlvbi5tb2RpZmllcnMuc3RhdGVzLm1hcChcbiAgICAgIChtb2RpZmllclN0YXR1cykgPT4gdXRpbHMuZXh0ZW5kKHt9LCBtb2RpZmllclN0YXR1cylcbiAgICApLFxuICAgIHByZUVuZDogdHJ1ZSxcbiAgICByZXF1aXJlRW5kT25seTogdHJ1ZSxcbiAgfVxuXG4gIC8vIHNtb290aEVuZFxuICBpZiAoaW5lcnRpYVBvc3NpYmxlICYmICFpbmVydGlhKSB7XG4gICAgbW9kaWZpZXJSZXN1bHQgPSBtb2RpZmllcnMuc2V0QWxsKG1vZGlmaWVyQXJnKVxuXG4gICAgaWYgKG1vZGlmaWVyUmVzdWx0LmNoYW5nZWQpIHtcbiAgICAgIHNtb290aEVuZCA9IHRydWVcbiAgICB9XG4gIH1cblxuICBpZiAoIShpbmVydGlhIHx8IHNtb290aEVuZCkpIHsgcmV0dXJuIG51bGwgfVxuXG4gIHV0aWxzLnBvaW50ZXIuY29weUNvb3JkcyhzdGF0ZS51cENvb3JkcywgaW50ZXJhY3Rpb24uY29vcmRzLmN1cilcblxuICBpbnRlcmFjdGlvbi5wb2ludGVyc1swXS5wb2ludGVyID0gc3RhdGUuc3RhcnRFdmVudCA9IG5ldyBzY29wZS5JbnRlcmFjdEV2ZW50KFxuICAgIGludGVyYWN0aW9uLFxuICAgIGV2ZW50LFxuICAgIC8vIEZJWE1FIGFkZCBwcm9wZXIgdHlwaW5nIEFjdGlvbi5uYW1lXG4gICAgaW50ZXJhY3Rpb24ucHJlcGFyZWQubmFtZSBhcyBULFxuICAgIEV2ZW50UGhhc2UuSW5lcnRpYVN0YXJ0LFxuICAgIGludGVyYWN0aW9uLmVsZW1lbnQsXG4gIClcblxuICBzdGF0ZS50MCA9IG5vd1xuXG4gIHN0YXRlLmFjdGl2ZSA9IHRydWVcbiAgc3RhdGUuYWxsb3dSZXN1bWUgPSBvcHRpb25zLmFsbG93UmVzdW1lXG4gIGludGVyYWN0aW9uLnNpbXVsYXRpb24gPSBzdGF0ZVxuXG4gIGludGVyYWN0aW9uLmludGVyYWN0YWJsZS5maXJlKHN0YXRlLnN0YXJ0RXZlbnQpXG5cbiAgaWYgKGluZXJ0aWEpIHtcbiAgICBzdGF0ZS52eDAgPSBpbnRlcmFjdGlvbi5jb29yZHMudmVsb2NpdHkuY2xpZW50LnhcbiAgICBzdGF0ZS52eTAgPSBpbnRlcmFjdGlvbi5jb29yZHMudmVsb2NpdHkuY2xpZW50LnlcbiAgICBzdGF0ZS52MCA9IHBvaW50ZXJTcGVlZFxuXG4gICAgY2FsY0luZXJ0aWEoaW50ZXJhY3Rpb24sIHN0YXRlKVxuXG4gICAgdXRpbHMuZXh0ZW5kKG1vZGlmaWVyQXJnLnBhZ2VDb29yZHMsIGludGVyYWN0aW9uLmNvb3Jkcy5jdXIucGFnZSlcblxuICAgIG1vZGlmaWVyQXJnLnBhZ2VDb29yZHMueCArPSBzdGF0ZS54ZVxuICAgIG1vZGlmaWVyQXJnLnBhZ2VDb29yZHMueSArPSBzdGF0ZS55ZVxuXG4gICAgbW9kaWZpZXJSZXN1bHQgPSBtb2RpZmllcnMuc2V0QWxsKG1vZGlmaWVyQXJnKVxuXG4gICAgc3RhdGUubW9kaWZpZWRYZSArPSBtb2RpZmllclJlc3VsdC5kZWx0YS54XG4gICAgc3RhdGUubW9kaWZpZWRZZSArPSBtb2RpZmllclJlc3VsdC5kZWx0YS55XG5cbiAgICBzdGF0ZS5pID0gcmFmLnJlcXVlc3QoKCkgPT4gaW5lcnRpYVRpY2soaW50ZXJhY3Rpb24pKVxuICB9XG4gIGVsc2Uge1xuICAgIHN0YXRlLnNtb290aEVuZCA9IHRydWVcbiAgICBzdGF0ZS54ZSA9IG1vZGlmaWVyUmVzdWx0LmRlbHRhLnhcbiAgICBzdGF0ZS55ZSA9IG1vZGlmaWVyUmVzdWx0LmRlbHRhLnlcblxuICAgIHN0YXRlLnN4ID0gc3RhdGUuc3kgPSAwXG5cbiAgICBzdGF0ZS5pID0gcmFmLnJlcXVlc3QoKCkgPT4gc21vdGhFbmRUaWNrKGludGVyYWN0aW9uKSlcbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG5mdW5jdGlvbiBzdG9wICh7IGludGVyYWN0aW9uIH06IEludGVyYWN0LlNpZ25hbEFyZykge1xuICBjb25zdCBzdGF0ZSA9IGludGVyYWN0aW9uLmluZXJ0aWFcbiAgaWYgKHN0YXRlLmFjdGl2ZSkge1xuICAgIHJhZi5jYW5jZWwoc3RhdGUuaSlcbiAgICBzdGF0ZS5hY3RpdmUgPSBmYWxzZVxuICAgIGludGVyYWN0aW9uLnNpbXVsYXRpb24gPSBudWxsXG4gIH1cbn1cblxuZnVuY3Rpb24gY2FsY0luZXJ0aWEgKGludGVyYWN0aW9uOiBJbnRlcmFjdC5JbnRlcmFjdGlvbiwgc3RhdGUpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGdldE9wdGlvbnMoaW50ZXJhY3Rpb24pXG4gIGNvbnN0IGxhbWJkYSA9IG9wdGlvbnMucmVzaXN0YW5jZVxuICBjb25zdCBpbmVydGlhRHVyID0gLU1hdGgubG9nKG9wdGlvbnMuZW5kU3BlZWQgLyBzdGF0ZS52MCkgLyBsYW1iZGFcblxuICBzdGF0ZS54MCA9IGludGVyYWN0aW9uLnByZXZFdmVudC5wYWdlLnhcbiAgc3RhdGUueTAgPSBpbnRlcmFjdGlvbi5wcmV2RXZlbnQucGFnZS55XG4gIHN0YXRlLnQwID0gc3RhdGUuc3RhcnRFdmVudC50aW1lU3RhbXAgLyAxMDAwXG4gIHN0YXRlLnN4ID0gc3RhdGUuc3kgPSAwXG5cbiAgc3RhdGUubW9kaWZpZWRYZSA9IHN0YXRlLnhlID0gKHN0YXRlLnZ4MCAtIGluZXJ0aWFEdXIpIC8gbGFtYmRhXG4gIHN0YXRlLm1vZGlmaWVkWWUgPSBzdGF0ZS55ZSA9IChzdGF0ZS52eTAgLSBpbmVydGlhRHVyKSAvIGxhbWJkYVxuICBzdGF0ZS50ZSA9IGluZXJ0aWFEdXJcblxuICBzdGF0ZS5sYW1iZGFfdjAgPSBsYW1iZGEgLyBzdGF0ZS52MFxuICBzdGF0ZS5vbmVfdmVfdjAgPSAxIC0gb3B0aW9ucy5lbmRTcGVlZCAvIHN0YXRlLnYwXG59XG5cbmZ1bmN0aW9uIGluZXJ0aWFUaWNrIChpbnRlcmFjdGlvbjogSW50ZXJhY3QuSW50ZXJhY3Rpb24pIHtcbiAgdXBkYXRlSW5lcnRpYUNvb3JkcyhpbnRlcmFjdGlvbilcbiAgdXRpbHMucG9pbnRlci5zZXRDb29yZERlbHRhcyhpbnRlcmFjdGlvbi5jb29yZHMuZGVsdGEsIGludGVyYWN0aW9uLmNvb3Jkcy5wcmV2LCBpbnRlcmFjdGlvbi5jb29yZHMuY3VyKVxuICB1dGlscy5wb2ludGVyLnNldENvb3JkVmVsb2NpdHkoaW50ZXJhY3Rpb24uY29vcmRzLnZlbG9jaXR5LCBpbnRlcmFjdGlvbi5jb29yZHMuZGVsdGEpXG5cbiAgY29uc3Qgc3RhdGUgPSBpbnRlcmFjdGlvbi5pbmVydGlhXG4gIGNvbnN0IG9wdGlvbnMgPSBnZXRPcHRpb25zKGludGVyYWN0aW9uKVxuICBjb25zdCBsYW1iZGEgPSBvcHRpb25zLnJlc2lzdGFuY2VcbiAgY29uc3QgdCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCAtIHN0YXRlLnQwXG5cbiAgaWYgKHQgPCBzdGF0ZS50ZSkge1xuICAgIGNvbnN0IHByb2dyZXNzID0gIDEgLSAoTWF0aC5leHAoLWxhbWJkYSAqIHQpIC0gc3RhdGUubGFtYmRhX3YwKSAvIHN0YXRlLm9uZV92ZV92MFxuXG4gICAgaWYgKHN0YXRlLm1vZGlmaWVkWGUgPT09IHN0YXRlLnhlICYmIHN0YXRlLm1vZGlmaWVkWWUgPT09IHN0YXRlLnllKSB7XG4gICAgICBzdGF0ZS5zeCA9IHN0YXRlLnhlICogcHJvZ3Jlc3NcbiAgICAgIHN0YXRlLnN5ID0gc3RhdGUueWUgKiBwcm9ncmVzc1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IHF1YWRQb2ludCA9IHV0aWxzLmdldFF1YWRyYXRpY0N1cnZlUG9pbnQoXG4gICAgICAgIDAsIDAsXG4gICAgICAgIHN0YXRlLnhlLCBzdGF0ZS55ZSxcbiAgICAgICAgc3RhdGUubW9kaWZpZWRYZSwgc3RhdGUubW9kaWZpZWRZZSxcbiAgICAgICAgcHJvZ3Jlc3MpXG5cbiAgICAgIHN0YXRlLnN4ID0gcXVhZFBvaW50LnhcbiAgICAgIHN0YXRlLnN5ID0gcXVhZFBvaW50LnlcbiAgICB9XG5cbiAgICBpbnRlcmFjdGlvbi5tb3ZlKClcblxuICAgIHN0YXRlLmkgPSByYWYucmVxdWVzdCgoKSA9PiBpbmVydGlhVGljayhpbnRlcmFjdGlvbikpXG4gIH1cbiAgZWxzZSB7XG4gICAgc3RhdGUuc3ggPSBzdGF0ZS5tb2RpZmllZFhlXG4gICAgc3RhdGUuc3kgPSBzdGF0ZS5tb2RpZmllZFllXG5cbiAgICBpbnRlcmFjdGlvbi5tb3ZlKClcbiAgICBpbnRlcmFjdGlvbi5lbmQoc3RhdGUuc3RhcnRFdmVudClcbiAgICBzdGF0ZS5hY3RpdmUgPSBmYWxzZVxuICAgIGludGVyYWN0aW9uLnNpbXVsYXRpb24gPSBudWxsXG4gIH1cblxuICB1dGlscy5wb2ludGVyLmNvcHlDb29yZHMoaW50ZXJhY3Rpb24uY29vcmRzLnByZXYsIGludGVyYWN0aW9uLmNvb3Jkcy5jdXIpXG59XG5cbmZ1bmN0aW9uIHNtb3RoRW5kVGljayAoaW50ZXJhY3Rpb246IEludGVyYWN0LkludGVyYWN0aW9uKSB7XG4gIHVwZGF0ZUluZXJ0aWFDb29yZHMoaW50ZXJhY3Rpb24pXG5cbiAgY29uc3Qgc3RhdGUgPSBpbnRlcmFjdGlvbi5pbmVydGlhXG4gIGNvbnN0IHQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHN0YXRlLnQwXG4gIGNvbnN0IHsgc21vb3RoRW5kRHVyYXRpb246IGR1cmF0aW9uIH0gPSBnZXRPcHRpb25zKGludGVyYWN0aW9uKVxuXG4gIGlmICh0IDwgZHVyYXRpb24pIHtcbiAgICBzdGF0ZS5zeCA9IHV0aWxzLmVhc2VPdXRRdWFkKHQsIDAsIHN0YXRlLnhlLCBkdXJhdGlvbilcbiAgICBzdGF0ZS5zeSA9IHV0aWxzLmVhc2VPdXRRdWFkKHQsIDAsIHN0YXRlLnllLCBkdXJhdGlvbilcblxuICAgIGludGVyYWN0aW9uLm1vdmUoKVxuXG4gICAgc3RhdGUuaSA9IHJhZi5yZXF1ZXN0KCgpID0+IHNtb3RoRW5kVGljayhpbnRlcmFjdGlvbikpXG4gIH1cbiAgZWxzZSB7XG4gICAgc3RhdGUuc3ggPSBzdGF0ZS54ZVxuICAgIHN0YXRlLnN5ID0gc3RhdGUueWVcblxuICAgIGludGVyYWN0aW9uLm1vdmUoKVxuICAgIGludGVyYWN0aW9uLmVuZChzdGF0ZS5zdGFydEV2ZW50KVxuXG4gICAgc3RhdGUuc21vb3RoRW5kID1cbiAgICAgIHN0YXRlLmFjdGl2ZSA9IGZhbHNlXG4gICAgaW50ZXJhY3Rpb24uc2ltdWxhdGlvbiA9IG51bGxcbiAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVJbmVydGlhQ29vcmRzIChpbnRlcmFjdGlvbjogSW50ZXJhY3QuSW50ZXJhY3Rpb24pIHtcbiAgY29uc3Qgc3RhdGUgPSBpbnRlcmFjdGlvbi5pbmVydGlhXG5cbiAgLy8gcmV0dXJuIGlmIGluZXJ0aWEgaXNuJ3QgcnVubmluZ1xuICBpZiAoIXN0YXRlLmFjdGl2ZSkgeyByZXR1cm4gfVxuXG4gIGNvbnN0IHBhZ2VVcCAgID0gc3RhdGUudXBDb29yZHMucGFnZVxuICBjb25zdCBjbGllbnRVcCA9IHN0YXRlLnVwQ29vcmRzLmNsaWVudFxuXG4gIHV0aWxzLnBvaW50ZXIuc2V0Q29vcmRzKGludGVyYWN0aW9uLmNvb3Jkcy5jdXIsIFsge1xuICAgIHBhZ2VYICA6IHBhZ2VVcC54ICAgKyBzdGF0ZS5zeCxcbiAgICBwYWdlWSAgOiBwYWdlVXAueSAgICsgc3RhdGUuc3ksXG4gICAgY2xpZW50WDogY2xpZW50VXAueCArIHN0YXRlLnN4LFxuICAgIGNsaWVudFk6IGNsaWVudFVwLnkgKyBzdGF0ZS5zeSxcbiAgfSBdKVxufVxuXG5mdW5jdGlvbiBnZXRPcHRpb25zICh7IGludGVyYWN0YWJsZSwgcHJlcGFyZWQgfTogSW50ZXJhY3QuSW50ZXJhY3Rpb24pIHtcbiAgcmV0dXJuIGludGVyYWN0YWJsZSAmJlxuICAgIGludGVyYWN0YWJsZS5vcHRpb25zICYmXG4gICAgcHJlcGFyZWQubmFtZSAmJlxuICAgIGludGVyYWN0YWJsZS5vcHRpb25zW3ByZXBhcmVkLm5hbWVdLmluZXJ0aWFcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBpZDogJ2luZXJ0aWEnLFxuICBpbnN0YWxsLFxuICBjYWxjSW5lcnRpYSxcbiAgaW5lcnRpYVRpY2ssXG4gIHNtb3RoRW5kVGljayxcbiAgdXBkYXRlSW5lcnRpYUNvb3Jkcyxcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDM0QsT0FBTyxTQUFTLE1BQU0sNEJBQTRCLENBQUE7QUFDbEQsT0FBTyxLQUFLLEtBQUssTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQyxPQUFPLEdBQUcsTUFBTSx1QkFBdUIsQ0FBQTtBQTBEdEMsVUFBa0IsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO0FBQ3JDLFVBQWtCLENBQUMsWUFBWSxHQUFHLGNBQWMsQ0FBQTtBQUVqRCxTQUFTLE9BQU8sQ0FBRSxLQUFxQjtJQUNyQyxNQUFNLEVBQ0osWUFBWSxFQUNaLFFBQVEsR0FDVCxHQUFHLEtBQUssQ0FBQTtJQUVULFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRTtRQUNqRCxXQUFXLENBQUMsT0FBTyxHQUFHO1lBQ3BCLE1BQU0sRUFBTyxLQUFLO1lBQ2xCLFNBQVMsRUFBSSxLQUFLO1lBQ2xCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFFBQVEsRUFBSyxFQUFTO1lBQ3RCLE9BQU8sRUFBTSxJQUFJO1NBQ2xCLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVGLDZCQUE2QjtJQUM3QixZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ2pGLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ25FLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFD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UUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQTtBQUMvQyxDQUFDO0FBRUQsZUFBZTtJQUNiLEVBQUUsRUFBRSxTQUFTO0lBQ2IsT0FBTztJQUNQLFdBQVc7SUFDWCxXQUFXO0lBQ1gsWUFBWTtJQUNaLG1CQUFtQjtDQUNwQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRQaGFzZSB9IGZyb20gJ0BpbnRlcmFjdGpzL2NvcmUvSW50ZXJhY3RFdmVudCdcbmltcG9ydCBtb2RpZmllcnMgZnJvbSAnQGludGVyYWN0anMvbW9kaWZpZXJzL2Jhc2UnXG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICdAaW50ZXJhY3Rqcy91dGlscydcbmltcG9ydCByYWYgZnJvbSAnQGludGVyYWN0anMvdXRpbHMvcmFmJ1xuXG5kZWNsYXJlIG1vZHVsZSAnQGludGVyYWN0anMvY29yZS9JbnRlcmFjdEV2ZW50JyB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zaGFkb3dcbiAgZW51bSBFdmVudFBoYXNlIHtcbiAgICBSZXN1bWUgPSAncmVzdW1lJyxcbiAgICBJbmVydGlhU3RhcnQgPSAnaW5lcnRpYXN0YXJ0JyxcbiAgfVxufVxuXG5kZWNsYXJlIG1vZHVsZSAnQGludGVyYWN0anMvY29yZS9JbnRlcmFjdGlvbicge1xuICBpbnRlcmZhY2UgSW50ZXJhY3Rpb24ge1xuICAgIGluZXJ0aWE/OiB7XG4gICAgICBhY3RpdmU6IGJvb2xlYW5cbiAgICAgIHNtb290aEVuZDogYm9vbGVhblxuICAgICAgYWxsb3dSZXN1bWU6IGJvb2xlYW5cblxuICAgICAgc3RhcnRFdmVudD86IEludGVyYWN0LkludGVyYWN0RXZlbnRcbiAgICAgIHVwQ29vcmRzOiB7XG4gICAgICAgIHBhZ2U6IEludGVyYWN0LlBvaW50XG4gICAgICAgIGNsaWVudDogSW50ZXJhY3QuUG9pbnRcbiAgICAgICAgdGltZVN0YW1wOiBudW1iZXJcbiAgICAgIH1cblxuICAgICAgeGU/OiBudW1iZXJcbiAgICAgIHllPzogbnVtYmVyXG4gICAgICBzeD86IG51bWJlclxuICAgICAgc3k/OiBudW1iZXJcblxuICAgICAgdDA/OiBudW1iZXJcbiAgICAgIHRlPzogbnVtYmVyXG4gICAgICB2MD86IG51bWJlclxuICAgICAgdngwPzogbnVtYmVyXG4gICAgICB2eTA/OiBudW1iZXJcbiAgICAgIGR1cmF0aW9uPzogbnVtYmVyXG4gICAgICBtb2RpZmllZFhlPzogbnVtYmVyXG4gICAgICBtb2RpZmllZFllPzogbnVtYmVyXG5cbiAgICAgIGxhbWJkYV92MD86IG51bWJlciAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGNhbWVsY2FzZVxuICAgICAgb25lX3ZlX3YwPzogbnVtYmVyIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgY2FtZWxjYXNlXG4gICAgICB0aW1lb3V0OiBhbnlcbiAgICB9XG4gIH1cbn1cblxuZGVjbGFyZSBtb2R1bGUgJ0BpbnRlcmFjdGpzL2NvcmUvZGVmYXVsdE9wdGlvbnMnIHtcbiAgaW50ZXJmYWNlIFBlckFjdGlvbkRlZmF1bHRzIHtcbiAgICBpbmVydGlhPzoge1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW4sXG4gICAgICByZXNpc3RhbmNlPzogbnVtYmVyLCAgICAgICAgLy8gdGhlIGxhbWJkYSBpbiBleHBvbmVudGlhbCBkZWNheVxuICAgICAgbWluU3BlZWQ/OiBudW1iZXIsICAgICAgICAgIC8vIHRhcmdldCBzcGVlZCBtdXN0IGJlIGFib3ZlIHRoaXMgZm9yIGluZXJ0aWEgdG8gc3RhcnRcbiAgICAgIGVuZFNwZWVkPzogbnVtYmVyLCAgICAgICAgICAvLyB0aGUgc3BlZWQgYXQgd2hpY2ggaW5lcnRpYSBpcyBzbG93IGVub3VnaCB0byBzdG9wXG4gICAgICBhbGxvd1Jlc3VtZT86IHRydWUsICAgICAgICAgLy8gYWxsb3cgcmVzdW1pbmcgYW4gYWN0aW9uIGluIGluZXJ0aWEgcGhhc2VcbiAgICAgIHNtb290aEVuZER1cmF0aW9uPzogbnVtYmVyLCAvLyBhbmltYXRlIHRvIHNuYXAvcmVzdHJpY3QgZW5kT25seSBpZiB0aGVyZSdzIG5vIGluZXJ0aWFcbiAgICB9IHwgYm9vbGVhbiAvLyBGSVhNRVxuICB9XG59XG5cbihFdmVudFBoYXNlIGFzIGFueSkuUmVzdW1lID0gJ3Jlc3VtZSc7XG4oRXZlbnRQaGFzZSBhcyBhbnkpLkluZXJ0aWFTdGFydCA9ICdpbmVydGlhc3RhcnQnXG5cbmZ1bmN0aW9uIGluc3RhbGwgKHNjb3BlOiBJbnRlcmFjdC5TY29wZSkge1xuICBjb25zdCB7XG4gICAgaW50ZXJhY3Rpb25zLFxuICAgIGRlZmF1bHRzLFxuICB9ID0gc2NvcGVcblxuICBpbnRlcmFjdGlvbnMuc2lnbmFscy5vbignbmV3JywgKHsgaW50ZXJhY3Rpb24gfSkgPT4ge1xuICAgIGludGVyYWN0aW9uLmluZXJ0aWEgPSB7XG4gICAgICBhY3RpdmUgICAgIDogZmFsc2UsXG4gICAgICBzbW9vdGhFbmQgIDogZmFsc2UsXG4gICAgICBhbGxvd1Jlc3VtZTogZmFsc2UsXG4gICAgICB1cENvb3JkcyAgIDoge30gYXMgYW55LFxuICAgICAgdGltZW91dCAgICA6IG51bGwsXG4gICAgfVxuICB9KVxuXG4gIC8vIEZJWE1FIHByb3BlciBzaWduYWwgdHlwaW5nXG4gIGludGVyYWN0aW9ucy5zaWduYWxzLm9uKCdiZWZvcmUtYWN0aW9uLWVuZCcsIChhcmcpID0+IHJlbGVhc2UoYXJnIGFzIGFueSwgc2NvcGUpKVxuICBpbnRlcmFjdGlvbnMuc2lnbmFscy5vbignZG93bicsIChhcmcpID0+IHJlc3VtZShhcmcgYXMgYW55LCBzY29wZSkpXG4gIGludGVyYWN0aW9ucy5zaWduYWxzLm9uKCdzdG9wJywgKGFyZykgPT4gc3RvcChhcmcgYXMgYW55KSlcblxuICBkZWZhdWx0cy5wZXJBY3Rpb24uaW5lcnRpYSA9IHtcbiAgICBlbmFibGVkICAgICAgICAgIDogZmFsc2UsXG4gICAgcmVzaXN0YW5jZSAgICAgICA6IDEwLCAgICAvLyB0aGUgbGFtYmRhIGluIGV4cG9uZW50aWFsIGRlY2F5XG4gICAgbWluU3BlZWQgICAgICAgICA6IDEwMCwgICAvLyB0YXJnZXQgc3BlZWQgbXVzdCBiZSBhYm92ZSB0aGlzIGZvciBpbmVydGlhIHRvIHN0YXJ0XG4gICAgZW5kU3BlZWQgICAgICAgICA6IDEwLCAgICAvLyB0aGUgc3BlZWQgYXQgd2hpY2ggaW5lcnRpYSBpcyBzbG93IGVub3VnaCB0byBzdG9wXG4gICAgYWxsb3dSZXN1bWUgICAgICA6IHRydWUsICAvLyBhbGxvdyByZXN1bWluZyBhbiBhY3Rpb24gaW4gaW5lcnRpYSBwaGFzZVxuICAgIHNtb290aEVuZER1cmF0aW9uOiAzMDAsICAgLy8gYW5pbWF0ZSB0byBzbmFwL3Jlc3RyaWN0IGVuZE9ubHkgaWYgdGhlcmUncyBubyBpbmVydGlhXG4gIH1cblxuICBzY29wZS51c2VQbHVnaW4obW9kaWZpZXJzKVxufVxuXG5mdW5jdGlvbiByZXN1bWUgKFxuICB7IGludGVyYWN0aW9uLCBldmVudCwgcG9pbnRlciwgZXZlbnRUYXJnZXQgfTogSW50ZXJhY3QuU2lnbmFsQXJnLFxuICBzY29wZTogSW50ZXJhY3QuU2NvcGVcbikge1xuICBjb25zdCBzdGF0ZSA9IGludGVyYWN0aW9uLmluZXJ0aWFcblxuICAvLyBDaGVjayBpZiB0aGUgZG93biBldmVudCBoaXRzIHRoZSBjdXJyZW50IGluZXJ0aWEgdGFyZ2V0XG4gIGlmIChzdGF0ZS5hY3RpdmUpIHtcbiAgICBsZXQgZWxlbWVudCA9IGV2ZW50VGFyZ2V0XG5cbiAgICAvLyBjbGltYiB1cCB0aGUgRE9NIHRyZWUgZnJvbSB0aGUgZXZlbnQgdGFyZ2V0XG4gICAgd2hpbGUgKHV0aWxzLmlzLmVsZW1lbnQoZWxlbWVudCkpIHtcbiAgICAgIC8vIGlmIGludGVyYWN0aW9uIGVsZW1lbnQgaXMgdGhlIGN1cnJlbnQgaW5lcnRpYSB0YXJnZXQgZWxlbWVudFxuICAgICAgaWYgKGVsZW1lbnQgPT09IGludGVyYWN0aW9uLmVsZW1lbnQpIHtcbiAgICAgICAgLy8gc3RvcCBpbmVydGlhXG4gICAgICAgIHJhZi5jYW5jZWwoc3RhdGUudGltZW91dClcbiAgICAgICAgc3RhdGUuYWN0aXZlID0gZmFsc2VcbiAgICAgICAgaW50ZXJhY3Rpb24uc2ltdWxhdGlvbiA9IG51bGxcblxuICAgICAgICAvLyB1cGRhdGUgcG9pbnRlcnMgdG8gdGhlIGRvd24gZXZlbnQncyBjb29yZGluYXRlc1xuICAgICAgICBpbnRlcmFjdGlvbi51cGRhdGVQb2ludGVyKHBvaW50ZXIsIGV2ZW50LCBldmVudFRhcmdldCwgdHJ1ZSlcbiAgICAgICAgdXRpbHMucG9pbnRlci5zZXRDb29yZHMoXG4gICAgICAgICAgaW50ZXJhY3Rpb24uY29vcmRzLmN1cixcbiAgICAgICAgICBpbnRlcmFjdGlvbi5wb2ludGVycy5tYXAoKHApID0+IHAucG9pbnRlciksXG4gICAgICAgICAgaW50ZXJhY3Rpb24uX25vdygpXG4gICAgICAgIClcblxuICAgICAgICAvLyBmaXJlIGFwcHJvcHJpYXRlIHNpZ25hbHNcbiAgICAgICAgY29uc3Qgc2lnbmFsQXJnID0ge1xuICAgICAgICAgIGludGVyYWN0aW9uLFxuICAgICAgICB9XG5cbiAgICAgICAgc2NvcGUuaW50ZXJhY3Rpb25zLnNpZ25hbHMuZmlyZSgnYWN0aW9uLXJlc3VtZScsIHNpZ25hbEFyZylcblxuICAgICAgICAvLyBmaXJlIGEgcmV1bWUgZXZlbnRcbiAgICAgICAgY29uc3QgcmVzdW1lRXZlbnQgPSBuZXcgc2NvcGUuSW50ZXJhY3RFdmVudChcbiAgICAgICAgICBpbnRlcmFjdGlvbiwgZXZlbnQsIGludGVyYWN0aW9uLnByZXBhcmVkLm5hbWUsIEV2ZW50UGhhc2UuUmVzdW1lLCBpbnRlcmFjdGlvbi5lbGVtZW50KVxuXG4gICAgICAgIGludGVyYWN0aW9uLl9maXJlRXZlbnQocmVzdW1lRXZlbnQpXG5cbiAgICAgICAgdXRpbHMucG9pbnRlci5jb3B5Q29vcmRzKGludGVyYWN0aW9uLmNvb3Jkcy5wcmV2LCBpbnRlcmFjdGlvbi5jb29yZHMuY3VyKVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBlbGVtZW50ID0gdXRpbHMuZG9tLnBhcmVudE5vZGUoZWxlbWVudClcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVsZWFzZTxUIGV4dGVuZHMgSW50ZXJhY3QuQWN0aW9uTmFtZT4gKFxuICB7IGludGVyYWN0aW9uLCBldmVudCwgbm9QcmVFbmQgfTogSW50ZXJhY3QuU2lnbmFsQXJnLFxuICBzY29wZTogSW50ZXJhY3QuU2NvcGVcbikge1xuICBjb25zdCBzdGF0ZSA9IGludGVyYWN0aW9uLmluZXJ0aWFcblxuICBpZiAoIWludGVyYWN0aW9uLmludGVyYWN0aW5nKCkgfHxcbiAgICAoaW50ZXJhY3Rpb24uc2ltdWxhdGlvbiAmJiBpbnRlcmFjdGlvbi5zaW11bGF0aW9uLmFjdGl2ZSkgfHxcbiAgbm9QcmVFbmQpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3Qgb3B0aW9ucyA9IGdldE9wdGlvbnMoaW50ZXJhY3Rpb24pXG5cbiAgY29uc3Qgbm93ID0gaW50ZXJhY3Rpb24uX25vdygpXG4gIGNvbnN0IHsgY2xpZW50OiB2ZWxvY2l0eUNsaWVudCB9ID0gaW50ZXJhY3Rpb24uY29vcmRzLnZlbG9jaXR5XG4gIGNvbnN0IHBvaW50ZXJTcGVlZCA9IHV0aWxzLmh5cG90KHZlbG9jaXR5Q2xpZW50LngsIHZlbG9jaXR5Q2xpZW50LnkpXG5cbiAgbGV0IHNtb290aEVuZCA9IGZhbHNlXG4gIGxldCBtb2RpZmllclJlc3VsdDogUmV0dXJuVHlwZTx0eXBlb2YgbW9kaWZpZXJzLnNldEFsbD5cblxuICAvLyBjaGVjayBpZiBpbmVydGlhIHNob3VsZCBiZSBzdGFydGVkXG4gIGNvbnN0IGluZXJ0aWFQb3NzaWJsZSA9IChvcHRpb25zICYmIG9wdGlvbnMuZW5hYmxlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24ucHJlcGFyZWQubmFtZSAhPT0gJ2dlc3R1cmUnICYmXG4gICAgICAgICAgICAgICAgICAgICBldmVudCAhPT0gc3RhdGUuc3RhcnRFdmVudClcblxuICBjb25zdCBpbmVydGlhID0gKGluZXJ0aWFQb3NzaWJsZSAmJlxuICAgIChub3cgLSBpbnRlcmFjdGlvbi5jb29yZHMuY3VyLnRpbWVTdGFtcCkgPCA1MCAmJlxuICAgIHBvaW50ZXJTcGVlZCA+IG9wdGlvbnMubWluU3BlZWQgJiZcbiAgICBwb2ludGVyU3BlZWQgPiBvcHRpb25zLmVuZFNwZWVkKVxuXG4gIGNvbnN0IG1vZGlmaWVyQXJnID0ge1xuICAgIGludGVyYWN0aW9uLFxuICAgIHBhZ2VDb29yZHM6IHV0aWxzLmV4dGVuZCh7fSwgaW50ZXJhY3Rpb24uY29vcmRzLmN1ci5wYWdlKSxcbiAgICBzdGF0ZXM6IGluZXJ0aWFQb3NzaWJsZSAmJiBpbnRlcmFjdGlvbi5tb2RpZmllcnMuc3RhdGVzLm1hcChcbiAgICAgIChtb2RpZmllclN0YXR1cykgPT4gdXRpbHMuZXh0ZW5kKHt9LCBtb2RpZmllclN0YXR1cylcbiAgICApLFxuICAgIHByZUVuZDogdHJ1ZSxcbiAgICBwcmV2Q29vcmRzOiB1bmRlZmluZWQsXG4gICAgcmVxdWlyZUVuZE9ubHk6IG51bGwsXG4gIH1cblxuICAvLyBzbW9vdGhFbmRcbiAgaWYgKGluZXJ0aWFQb3NzaWJsZSAmJiAhaW5lcnRpYSkge1xuICAgIG1vZGlmaWVyQXJnLnByZXZDb29yZHMgPSBpbnRlcmFjdGlvbi5wcmV2RXZlbnQucGFnZVxuICAgIG1vZGlmaWVyQXJnLnJlcXVpcmVFbmRPbmx5ID0gZmFsc2VcbiAgICBtb2RpZmllclJlc3VsdCA9IG1vZGlmaWVycy5zZXRBbGwobW9kaWZpZXJBcmcpXG5cbiAgICBpZiAobW9kaWZpZXJSZXN1bHQuY2hhbmdlZCkge1xuICAgICAgc21vb3RoRW5kID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGlmICghKGluZXJ0aWEgfHwgc21vb3RoRW5kKSkgeyByZXR1cm4gbnVsbCB9XG5cbiAgdXRpbHMucG9pbnRlci5jb3B5Q29vcmRzKHN0YXRlLnVwQ29vcmRzLCBpbnRlcmFjdGlvbi5jb29yZHMuY3VyKVxuXG4gIGludGVyYWN0aW9uLnBvaW50ZXJzWzBdLnBvaW50ZXIgPSBzdGF0ZS5zdGFydEV2ZW50ID0gbmV3IHNjb3BlLkludGVyYWN0RXZlbnQoXG4gICAgaW50ZXJhY3Rpb24sXG4gICAgZXZlbnQsXG4gICAgLy8gRklYTUUgYWRkIHByb3BlciB0eXBpbmcgQWN0aW9uLm5hbWVcbiAgICBpbnRlcmFjdGlvbi5wcmVwYXJlZC5uYW1lIGFzIFQsXG4gICAgRXZlbnRQaGFzZS5JbmVydGlhU3RhcnQsXG4gICAgaW50ZXJhY3Rpb24uZWxlbWVudCxcbiAgKVxuXG4gIHN0YXRlLnQwID0gbm93XG5cbiAgc3RhdGUuYWN0aXZlID0gdHJ1ZVxuICBzdGF0ZS5hbGxvd1Jlc3VtZSA9IG9wdGlvbnMuYWxsb3dSZXN1bWVcbiAgaW50ZXJhY3Rpb24uc2ltdWxhdGlvbiA9IHN0YXRlXG5cbiAgaW50ZXJhY3Rpb24uaW50ZXJhY3RhYmxlLmZpcmUoc3RhdGUuc3RhcnRFdmVudClcblxuICBpZiAoaW5lcnRpYSkge1xuICAgIHN0YXRlLnZ4MCA9IGludGVyYWN0aW9uLmNvb3Jkcy52ZWxvY2l0eS5jbGllbnQueFxuICAgIHN0YXRlLnZ5MCA9IGludGVyYWN0aW9uLmNvb3Jkcy52ZWxvY2l0eS5jbGllbnQueVxuICAgIHN0YXRlLnYwID0gcG9pbnRlclNwZWVkXG5cbiAgICBjYWxjSW5lcnRpYShpbnRlcmFjdGlvbiwgc3RhdGUpXG5cbiAgICB1dGlscy5leHRlbmQobW9kaWZpZXJBcmcucGFnZUNvb3JkcywgaW50ZXJhY3Rpb24uY29vcmRzLmN1ci5wYWdlKVxuXG4gICAgbW9kaWZpZXJBcmcucGFnZUNvb3Jkcy54ICs9IHN0YXRlLnhlXG4gICAgbW9kaWZpZXJBcmcucGFnZUNvb3Jkcy55ICs9IHN0YXRlLnllXG4gICAgbW9kaWZpZXJBcmcucHJldkNvb3JkcyA9IHVuZGVmaW5lZFxuICAgIG1vZGlmaWVyQXJnLnJlcXVpcmVFbmRPbmx5ID0gdHJ1ZVxuXG4gICAgbW9kaWZpZXJSZXN1bHQgPSBtb2RpZmllcnMuc2V0QWxsKG1vZGlmaWVyQXJnKVxuXG4gICAgc3RhdGUubW9kaWZpZWRYZSArPSBtb2RpZmllclJlc3VsdC5kZWx0YS54XG4gICAgc3RhdGUubW9kaWZpZWRZZSArPSBtb2RpZmllclJlc3VsdC5kZWx0YS55XG5cbiAgICBzdGF0ZS50aW1lb3V0ID0gcmFmLnJlcXVlc3QoKCkgPT4gaW5lcnRpYVRpY2soaW50ZXJhY3Rpb24pKVxuICB9XG4gIGVsc2Uge1xuICAgIHN0YXRlLnNtb290aEVuZCA9IHRydWVcbiAgICBzdGF0ZS54ZSA9IG1vZGlmaWVyUmVzdWx0LmRlbHRhLnhcbiAgICBzdGF0ZS55ZSA9IG1vZGlmaWVyUmVzdWx0LmRlbHRhLnlcblxuICAgIHN0YXRlLnN4ID0gc3RhdGUuc3kgPSAwXG5cbiAgICBzdGF0ZS50aW1lb3V0ID0gcmFmLnJlcXVlc3QoKCkgPT4gc21vdGhFbmRUaWNrKGludGVyYWN0aW9uKSlcbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG5mdW5jdGlvbiBzdG9wICh7IGludGVyYWN0aW9uIH06IEludGVyYWN0LlNpZ25hbEFyZykge1xuICBjb25zdCBzdGF0ZSA9IGludGVyYWN0aW9uLmluZXJ0aWFcbiAgaWYgKHN0YXRlLmFjdGl2ZSkge1xuICAgIHJhZi5jYW5jZWwoc3RhdGUudGltZW91dClcbiAgICBzdGF0ZS5hY3RpdmUgPSBmYWxzZVxuICAgIGludGVyYWN0aW9uLnNpbXVsYXRpb24gPSBudWxsXG4gIH1cbn1cblxuZnVuY3Rpb24gY2FsY0luZXJ0aWEgKGludGVyYWN0aW9uOiBJbnRlcmFjdC5JbnRlcmFjdGlvbiwgc3RhdGUpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGdldE9wdGlvbnMoaW50ZXJhY3Rpb24pXG4gIGNvbnN0IGxhbWJkYSA9IG9wdGlvbnMucmVzaXN0YW5jZVxuICBjb25zdCBpbmVydGlhRHVyID0gLU1hdGgubG9nKG9wdGlvbnMuZW5kU3BlZWQgLyBzdGF0ZS52MCkgLyBsYW1iZGFcblxuICBzdGF0ZS54MCA9IGludGVyYWN0aW9uLnByZXZFdmVudC5wYWdlLnhcbiAgc3RhdGUueTAgPSBpbnRlcmFjdGlvbi5wcmV2RXZlbnQucGFnZS55XG4gIHN0YXRlLnQwID0gc3RhdGUuc3RhcnRFdmVudC50aW1lU3RhbXAgLyAxMDAwXG4gIHN0YXRlLnN4ID0gc3RhdGUuc3kgPSAwXG5cbiAgc3RhdGUubW9kaWZpZWRYZSA9IHN0YXRlLnhlID0gKHN0YXRlLnZ4MCAtIGluZXJ0aWFEdXIpIC8gbGFtYmRhXG4gIHN0YXRlLm1vZGlmaWVkWWUgPSBzdGF0ZS55ZSA9IChzdGF0ZS52eTAgLSBpbmVydGlhRHVyKSAvIGxhbWJkYVxuICBzdGF0ZS50ZSA9IGluZXJ0aWFEdXJcblxuICBzdGF0ZS5sYW1iZGFfdjAgPSBsYW1iZGEgLyBzdGF0ZS52MFxuICBzdGF0ZS5vbmVfdmVfdjAgPSAxIC0gb3B0aW9ucy5lbmRTcGVlZCAvIHN0YXRlLnYwXG59XG5cbmZ1bmN0aW9uIGluZXJ0aWFUaWNrIChpbnRlcmFjdGlvbjogSW50ZXJhY3QuSW50ZXJhY3Rpb24pIHtcbiAgdXBkYXRlSW5lcnRpYUNvb3JkcyhpbnRlcmFjdGlvbilcbiAgdXRpbHMucG9pbnRlci5zZXRDb29yZERlbHRhcyhpbnRlcmFjdGlvbi5jb29yZHMuZGVsdGEsIGludGVyYWN0aW9uLmNvb3Jkcy5wcmV2LCBpbnRlcmFjdGlvbi5jb29yZHMuY3VyKVxuICB1dGlscy5wb2ludGVyLnNldENvb3JkVmVsb2NpdHkoaW50ZXJhY3Rpb24uY29vcmRzLnZlbG9jaXR5LCBpbnRlcmFjdGlvbi5jb29yZHMuZGVsdGEpXG5cbiAgY29uc3Qgc3RhdGUgPSBpbnRlcmFjdGlvbi5pbmVydGlhXG4gIGNvbnN0IG9wdGlvbnMgPSBnZXRPcHRpb25zKGludGVyYWN0aW9uKVxuICBjb25zdCBsYW1iZGEgPSBvcHRpb25zLnJlc2lzdGFuY2VcbiAgY29uc3QgdCA9IGludGVyYWN0aW9uLl9ub3coKSAvIDEwMDAgLSBzdGF0ZS50MFxuXG4gIGlmICh0IDwgc3RhdGUudGUpIHtcbiAgICBjb25zdCBwcm9ncmVzcyA9ICAxIC0gKE1hdGguZXhwKC1sYW1iZGEgKiB0KSAtIHN0YXRlLmxhbWJkYV92MCkgLyBzdGF0ZS5vbmVfdmVfdjBcblxuICAgIGlmIChzdGF0ZS5tb2RpZmllZFhlID09PSBzdGF0ZS54ZSAmJiBzdGF0ZS5tb2RpZmllZFllID09PSBzdGF0ZS55ZSkge1xuICAgICAgc3RhdGUuc3ggPSBzdGF0ZS54ZSAqIHByb2dyZXNzXG4gICAgICBzdGF0ZS5zeSA9IHN0YXRlLnllICogcHJvZ3Jlc3NcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjb25zdCBxdWFkUG9pbnQgPSB1dGlscy5nZXRRdWFkcmF0aWNDdXJ2ZVBvaW50KFxuICAgICAgICAwLCAwLFxuICAgICAgICBzdGF0ZS54ZSwgc3RhdGUueWUsXG4gICAgICAgIHN0YXRlLm1vZGlmaWVkWGUsIHN0YXRlLm1vZGlmaWVkWWUsXG4gICAgICAgIHByb2dyZXNzKVxuXG4gICAgICBzdGF0ZS5zeCA9IHF1YWRQb2ludC54XG4gICAgICBzdGF0ZS5zeSA9IHF1YWRQb2ludC55XG4gICAgfVxuXG4gICAgaW50ZXJhY3Rpb24ubW92ZSgpXG5cbiAgICBzdGF0ZS50aW1lb3V0ID0gcmFmLnJlcXVlc3QoKCkgPT4gaW5lcnRpYVRpY2soaW50ZXJhY3Rpb24pKVxuICB9XG4gIGVsc2Uge1xuICAgIHN0YXRlLnN4ID0gc3RhdGUubW9kaWZpZWRYZVxuICAgIHN0YXRlLnN5ID0gc3RhdGUubW9kaWZpZWRZZVxuXG4gICAgaW50ZXJhY3Rpb24ubW92ZSgpXG4gICAgaW50ZXJhY3Rpb24uZW5kKHN0YXRlLnN0YXJ0RXZlbnQpXG4gICAgc3RhdGUuYWN0aXZlID0gZmFsc2VcbiAgICBpbnRlcmFjdGlvbi5zaW11bGF0aW9uID0gbnVsbFxuICB9XG5cbiAgdXRpbHMucG9pbnRlci5jb3B5Q29vcmRzKGludGVyYWN0aW9uLmNvb3Jkcy5wcmV2LCBpbnRlcmFjdGlvbi5jb29yZHMuY3VyKVxufVxuXG5mdW5jdGlvbiBzbW90aEVuZFRpY2sgKGludGVyYWN0aW9uOiBJbnRlcmFjdC5JbnRlcmFjdGlvbikge1xuICB1cGRhdGVJbmVydGlhQ29vcmRzKGludGVyYWN0aW9uKVxuXG4gIGNvbnN0IHN0YXRlID0gaW50ZXJhY3Rpb24uaW5lcnRpYVxuICBjb25zdCB0ID0gaW50ZXJhY3Rpb24uX25vdygpIC0gc3RhdGUudDBcbiAgY29uc3QgeyBzbW9vdGhFbmREdXJhdGlvbjogZHVyYXRpb24gfSA9IGdldE9wdGlvbnMoaW50ZXJhY3Rpb24pXG5cbiAgaWYgKHQgPCBkdXJhdGlvbikge1xuICAgIHN0YXRlLnN4ID0gdXRpbHMuZWFzZU91dFF1YWQodCwgMCwgc3RhdGUueGUsIGR1cmF0aW9uKVxuICAgIHN0YXRlLnN5ID0gdXRpbHMuZWFzZU91dFF1YWQodCwgMCwgc3RhdGUueWUsIGR1cmF0aW9uKVxuXG4gICAgaW50ZXJhY3Rpb24ubW92ZSgpXG5cbiAgICBzdGF0ZS50aW1lb3V0ID0gcmFmLnJlcXVlc3QoKCkgPT4gc21vdGhFbmRUaWNrKGludGVyYWN0aW9uKSlcbiAgfVxuICBlbHNlIHtcbiAgICBzdGF0ZS5zeCA9IHN0YXRlLnhlXG4gICAgc3RhdGUuc3kgPSBzdGF0ZS55ZVxuXG4gICAgaW50ZXJhY3Rpb24ubW92ZSgpXG4gICAgaW50ZXJhY3Rpb24uZW5kKHN0YXRlLnN0YXJ0RXZlbnQpXG5cbiAgICBzdGF0ZS5zbW9vdGhFbmQgPVxuICAgICAgc3RhdGUuYWN0aXZlID0gZmFsc2VcbiAgICBpbnRlcmFjdGlvbi5zaW11bGF0aW9uID0gbnVsbFxuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUluZXJ0aWFDb29yZHMgKGludGVyYWN0aW9uOiBJbnRlcmFjdC5JbnRlcmFjdGlvbikge1xuICBjb25zdCBzdGF0ZSA9IGludGVyYWN0aW9uLmluZXJ0aWFcblxuICAvLyByZXR1cm4gaWYgaW5lcnRpYSBpc24ndCBydW5uaW5nXG4gIGlmICghc3RhdGUuYWN0aXZlKSB7IHJldHVybiB9XG5cbiAgY29uc3QgcGFnZVVwICAgPSBzdGF0ZS51cENvb3Jkcy5wYWdlXG4gIGNvbnN0IGNsaWVudFVwID0gc3RhdGUudXBDb29yZHMuY2xpZW50XG5cbiAgdXRpbHMucG9pbnRlci5zZXRDb29yZHMoaW50ZXJhY3Rpb24uY29vcmRzLmN1ciwgWyB7XG4gICAgcGFnZVggIDogcGFnZVVwLnggICArIHN0YXRlLnN4LFxuICAgIHBhZ2VZICA6IHBhZ2VVcC55ICAgKyBzdGF0ZS5zeSxcbiAgICBjbGllbnRYOiBjbGllbnRVcC54ICsgc3RhdGUuc3gsXG4gICAgY2xpZW50WTogY2xpZW50VXAueSArIHN0YXRlLnN5LFxuICB9IF0sIGludGVyYWN0aW9uLl9ub3coKSlcbn1cblxuZnVuY3Rpb24gZ2V0T3B0aW9ucyAoeyBpbnRlcmFjdGFibGUsIHByZXBhcmVkIH06IEludGVyYWN0LkludGVyYWN0aW9uKSB7XG4gIHJldHVybiBpbnRlcmFjdGFibGUgJiZcbiAgICBpbnRlcmFjdGFibGUub3B0aW9ucyAmJlxuICAgIHByZXBhcmVkLm5hbWUgJiZcbiAgICBpbnRlcmFjdGFibGUub3B0aW9uc1twcmVwYXJlZC5uYW1lXS5pbmVydGlhXG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgaWQ6ICdpbmVydGlhJyxcbiAgaW5zdGFsbCxcbiAgY2FsY0luZXJ0aWEsXG4gIGluZXJ0aWFUaWNrLFxuICBzbW90aEVuZFRpY2ssXG4gIHVwZGF0ZUluZXJ0aWFDb29yZHMsXG59XG4iXX0=
{
"name": "@interactjs/inertia",
"version": "1.4.0-rc.3",
"version": "1.4.0-rc.4",
"peerDependencies": {

@@ -10,6 +10,7 @@ "@interactjs/core": "1.4.0-rc.2",

"devDependencies": {
"@interactjs/_dev": "1.4.0-rc.3",
"@interactjs/core": "1.4.0-rc.3",
"@interactjs/modifiers": "1.4.0-rc.3",
"@interactjs/utils": "1.4.0-rc.3"
"@interactjs/_dev": "1.4.0-rc.4",
"@interactjs/actions": "1.4.0-rc.4",
"@interactjs/core": "1.4.0-rc.4",
"@interactjs/modifiers": "1.4.0-rc.4",
"@interactjs/utils": "1.4.0-rc.4"
},

@@ -16,0 +17,0 @@ "publishConfig": {

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