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

cytoscape-compound-resize

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cytoscape-compound-resize - npm Package Compare versions

Comparing version 1.0.6 to 1.0.7

26

cytoscape-compound-resize.js

@@ -85,6 +85,6 @@ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.cytoscapeCompoundResize = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){

nodes.each(function (i, ele) {
var paddingLeft = parseInt(ele.css('padding-left'));
var paddingRight = parseInt(ele.css('padding-right'));
var paddingTop = parseInt(ele.css('padding-top'));
var paddingBottom = parseInt(ele.css('padding-bottom'));
var paddingLeft = parseFloat(ele.css('padding-left'));
var paddingRight = parseFloat(ele.css('padding-right'));
var paddingTop = parseFloat(ele.css('padding-top'));
var paddingBottom = parseFloat(ele.css('padding-bottom'));

@@ -126,3 +126,3 @@ var minPaddings = self.getMinimumPaddings(ele);

extremePaddings.left = parseInt(paddings.left);
extremePaddings.left = parseFloat(paddings.left);
}

@@ -136,3 +136,3 @@

extremePaddings.right = parseInt(paddings.right);
extremePaddings.right = parseFloat(paddings.right);
}

@@ -146,3 +146,3 @@

extremePaddings.top = parseInt(paddings.top);
extremePaddings.top = parseFloat(paddings.top);
}

@@ -156,3 +156,3 @@

extremePaddings.bottom = parseInt(paddings.bottom);
extremePaddings.bottom = parseFloat(paddings.bottom);
}

@@ -320,3 +320,3 @@ });

if (topDiff != 0) {
var currentPadding = parseInt(ancestor.css('padding-top'));
var currentPadding = parseFloat(ancestor.css('padding-top'));
paddingTop = currentPadding + topDiff;

@@ -328,3 +328,3 @@ }

if (bottomDiff != 0) {
var currentPadding = parseInt(ancestor.css('padding-bottom'));
var currentPadding = parseFloat(ancestor.css('padding-bottom'));
paddingBottom = currentPadding - bottomDiff;

@@ -336,3 +336,3 @@ }

if (leftDiff != 0) {
var currentPadding = parseInt(ancestor.css('padding-left'));
var currentPadding = parseFloat(ancestor.css('padding-left'));
paddingLeft = currentPadding + leftDiff;

@@ -344,3 +344,3 @@ }

if (rightDiff != 0) {
var currentPadding = parseInt(ancestor.css('padding-right'));
var currentPadding = parseFloat(ancestor.css('padding-right'));
paddingRight = currentPadding - rightDiff;

@@ -475,2 +475,2 @@ }

});
//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJzcmMvY29tcG91bmRSZXNpemVVdGlsaXRpZXMuanMiLCJzcmMvZWxlbWVudFV0aWxpdGllcy5qcyIsInNyYy9pbmRleC5qcyIsInNyYy9zY3JhdGNoVXRpbGl0aWVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkxBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsInZhciBjb21wb3VuZFJlc2l6ZVV0aWxpdGllcyA9IGZ1bmN0aW9uIChjeSwgbW9kZSkge1xuICB2YXIgc2NyYXRjaFV0aWxpdGllcyA9IHJlcXVpcmUoXCIuL3NjcmF0Y2hVdGlsaXRpZXNcIikoKTtcblxuICB2YXIgc2VsZiA9IHtcbiAgICBzZXRNb2RlOiBmdW5jdGlvbihuZXdtb2RlKSB7XG4gICAgICBpZihuZXdtb2RlID09IG1vZGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgXG4gICAgICB2YXIgY29tcG91bmRzID0gY3kubm9kZXMoJyRub2RlID4gbm9kZScpO1xuICAgICAgXG4gICAgICAvLyBJZiB0aGUgbmV3IG1vZGUgaXMgJ2ZyZWUnIHNldCB0aGUgcGFkZGluZ3MgdG8gdGhlIG1pbmltdW1zIGJlZm9yZSBzZXR0aW5nIHRoZSBtb2RlXG4gICAgICBpZiAobmV3bW9kZSA9PT0gJ2ZyZWUnKSB7XG4gICAgICAgIGNvbXBvdW5kcy5lYWNoKGZ1bmN0aW9uIChpLCBlbGUpIHtcbiAgICAgICAgICB2YXIgbWluUGFkZGluZ3MgPSBzZWxmLmdldE1pbmltdW1QYWRkaW5ncyhlbGUpO1xuXG4gICAgICAgICAgZWxlLmNzcygncGFkZGluZy10b3AnLCBtaW5QYWRkaW5ncy50b3ApO1xuICAgICAgICAgIGVsZS5jc3MoJ3BhZGRpbmctYm90dG9tJywgbWluUGFkZGluZ3MuYm90dG9tKTtcbiAgICAgICAgICBlbGUuY3NzKCdwYWRkaW5nLWxlZnQnLCBtaW5QYWRkaW5ncy5sZWZ0KTtcbiAgICAgICAgICBlbGUuY3NzKCdwYWRkaW5nLXJpZ2h0JywgbWluUGFkZGluZ3MucmlnaHQpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgbW9kZSA9IG5ld21vZGU7IC8vIFNldCB0aGUgbmV3IG1vZGVcbiAgICAgIFxuICAgICAgLy8gSWYgdGhlIG5ldyBtb2RlIGlzICdtaW4nIHNldCB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBwYWRkaW5ncyBhZnRlciBzZXR0aW5nIHRoZSBuZXcgbW9kZVxuICAgICAgaWYgKG5ld21vZGUgPT09ICdtaW4nKSB7XG4gICAgICAgIGNvbXBvdW5kcy5lYWNoKGZ1bmN0aW9uIChpLCBlbGUpIHtcbiAgICAgICAgICB2YXIgcGFkZGluZ3MgPSB7XG4gICAgICAgICAgICAndG9wJzogZWxlLmNzcygncGFkZGluZy10b3AnKSxcbiAgICAgICAgICAgICdib3R0b20nOiBlbGUuY3NzKCdwYWRkaW5nLWJvdHRvbScpLFxuICAgICAgICAgICAgJ2xlZnQnOiBlbGUuY3NzKCdwYWRkaW5nLWxlZnQnKSxcbiAgICAgICAgICAgICdyaWdodCc6IGVsZS5jc3MoJ3BhZGRpbmctcmlnaHQnKVxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBzZWxmLnNldEV4dHJlbWVQYWRkaW5ncyhlbGUsIHBhZGRpbmdzLCAnbWluJywgdHJ1ZSk7XG4gICAgICAgICAgc2VsZi5zZXRFeHRyZW1lUGFkZGluZ3MoZWxlLCBwYWRkaW5ncywgJ21heCcsIHRydWUpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGdldE1vZGU6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIG1vZGU7XG4gICAgfSxcbiAgICBzZXRQYWRkaW5nczogZnVuY3Rpb24gKG5vZGVzLCBwYWRkaW5ncykge1xuICAgICAgXG4gICAgICBpZiAobW9kZSAhPT0gJ21pbicpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgXG4gICAgICBjeS5zdGFydEJhdGNoKCk7XG5cbiAgICAgIG5vZGVzLmVhY2goZnVuY3Rpb24gKGksIGVsZSkge1xuICAgICAgICB2YXIgbWluUGFkZGluZ3MgPSBzZWxmLmdldE1pbmltdW1QYWRkaW5ncyhlbGUpO1xuICAgICAgICB2YXIgbWF4UGFkZGluZ3MgPSBzZWxmLmdldE1heGltdW1QYWRkaW5ncyhlbGUpO1xuXG4gICAgICAgIGlmICggcGFkZGluZ3MubGVmdCA+PSBtaW5QYWRkaW5ncy5sZWZ0ICYmIHBhZGRpbmdzLmxlZnQgPD0gbWF4UGFkZGluZ3MubGVmdCApIHtcbiAgICAgICAgICBlbGUuY3NzKCdwYWRkaW5nLWxlZnQnLCBwYWRkaW5ncy5sZWZ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICggcGFkZGluZ3MucmlnaHQgPj0gbWluUGFkZGluZ3MucmlnaHQgJiYgcGFkZGluZ3MucmlnaHQgPD0gbWF4UGFkZGluZ3MucmlnaHQgKSB7XG4gICAgICAgICAgZWxlLmNzcygncGFkZGluZy1yaWdodCcsIHBhZGRpbmdzLnJpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICggcGFkZGluZ3MudG9wID49IG1pblBhZGRpbmdzLnRvcCAmJiBwYWRkaW5ncy50b3AgPD0gbWF4UGFkZGluZ3MudG9wICkge1xuICAgICAgICAgIGVsZS5jc3MoJ3BhZGRpbmctdG9wJywgcGFkZGluZ3MudG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICggcGFkZGluZ3MuYm90dG9tID49IG1pblBhZGRpbmdzLmJvdHRvbSAmJiBwYWRkaW5ncy5ib3R0b20gPD0gbWF4UGFkZGluZ3MuYm90dG9tICkge1xuICAgICAgICAgIGVsZS5jc3MoJ3BhZGRpbmctYm90dG9tJywgcGFkZGluZ3MuYm90dG9tKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIGN5LmVuZEJhdGNoKCk7XG4gICAgfSxcbiAgICAvLyBTZXQgZXh0cmVtZSBwYWRkaW5ncyBvZiB0aGUgbm9kZXMgdXNlIGZvcmNlIHBhcmFtZXRlciBpZiB5b3UgZG8gbm90IG5lZWQgdG8gc2F0aXNmeSAnbWluUGFkZGluZ3MgPD0gbWF4UGFkZGluZ3MnIHJ1bGVcbiAgICBzZXRFeHRyZW1lUGFkZGluZ3M6IGZ1bmN0aW9uIChub2RlcywgX3BhZGRpbmdzLCBtaW5Pck1heCwgZm9yY2UpIHtcbiAgICAgIGlmIChtb2RlICE9PSAnbWluJykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBcbiAgICAgIGN5LnN0YXJ0QmF0Y2goKTtcblxuICAgICAgbm9kZXMuZWFjaChmdW5jdGlvbiAoaSwgZWxlKSB7XG4gICAgICAgIHZhciBwYWRkaW5nTGVmdCA9IHBhcnNlSW50KGVsZS5jc3MoJ3BhZGRpbmctbGVmdCcpKTtcbiAgICAgICAgdmFyIHBhZGRpbmdSaWdodCA9IHBhcnNlSW50KGVsZS5jc3MoJ3BhZGRpbmctcmlnaHQnKSk7XG4gICAgICAgIHZhciBwYWRkaW5nVG9wID0gcGFyc2VJbnQoZWxlLmNzcygncGFkZGluZy10b3AnKSk7XG4gICAgICAgIHZhciBwYWRkaW5nQm90dG9tID0gcGFyc2VJbnQoZWxlLmNzcygncGFkZGluZy1ib3R0b20nKSk7XG5cbiAgICAgICAgdmFyIG1pblBhZGRpbmdzID0gc2VsZi5nZXRNaW5pbXVtUGFkZGluZ3MoZWxlKTtcbiAgICAgICAgdmFyIG1heFBhZGRpbmdzID0gc2VsZi5nZXRNYXhpbXVtUGFkZGluZ3MoZWxlKTtcbiAgICAgICAgXG4gICAgICAgIC8vIEdldCB0aGUgZXh0cmVtZSBwYWRkaW5ncyB0byBzZXQgdGhlbVxuICAgICAgICB2YXIgZXh0cmVtZVBhZGRpbmdzID0gbWluT3JNYXggPT09ICdtaW4nID8gbWluUGFkZGluZ3MgOiBtYXhQYWRkaW5ncztcblxuICAgICAgICB2YXIgc2lnbiA9IG1pbk9yTWF4ID09PSAnbWluJyA/IDEgOiAtMTtcbiAgICAgICAgXG4gICAgICAgIC8vIENsb25lIF9wYWRkaW5ncyBpbnRvIHBhZGRpbmdzIG9iamVjdFxuICAgICAgICB2YXIgcGFkZGluZ3MgPSB7XG4gICAgICAgIH07XG4gICAgICAgIFxuICAgICAgICAvLyBGaWx0ZXIgcGFkZGluZ3MgZnJvbSBfcGFkZGluZ3Mgbm90ZSB0aGF0IHRoZSBydWxlIG9mICdtYXhQYWRkaW5ncyA+PSBtaW5QYWRkaW5ncycgc2hvdWxkIGJlIHNhdGlzZmllZFxuICAgICAgICBpZiAobWluT3JNYXggPT09ICdtaW4nKSB7XG4gICAgICAgICAgZm9yICh2YXIgcHJvcCBpbiBfcGFkZGluZ3MpIHtcbiAgICAgICAgICAgIGlmIChmb3JjZSB8fCBfcGFkZGluZ3NbcHJvcF0gPD0gbWF4UGFkZGluZ3NbcHJvcF0pIHtcbiAgICAgICAgICAgICAgcGFkZGluZ3NbcHJvcF0gPSBfcGFkZGluZ3NbcHJvcF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG1pbk9yTWF4ID09PSAnbWF4Jykge1xuICAgICAgICAgIGZvciAodmFyIHByb3AgaW4gX3BhZGRpbmdzKSB7XG4gICAgICAgICAgICBpZiAoZm9yY2UgfHwgX3BhZGRpbmdzW3Byb3BdID49IG1pblBhZGRpbmdzW3Byb3BdKSB7XG4gICAgICAgICAgICAgIHBhZGRpbmdzW3Byb3BdID0gX3BhZGRpbmdzW3Byb3BdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCB0aGUgZXh0cmVtZSBwYWRkaW5ncyB3aGVyZSBhcHBsaWNhYmxlXG4gICAgICAgIGlmIChwYWRkaW5ncy5sZWZ0KSB7XG4gICAgICAgICAgaWYgKHBhZGRpbmdMZWZ0ICogc2lnbiA8IHBhZGRpbmdzLmxlZnQgKiBzaWduKSB7XG4gICAgICAgICAgICAvLyBQYWRkaW5ncyBjYW5ub3QgYmUgc21hbGxlciB0aGVuIG1pbiBwYWRkaW5ncyBhbmQgY2Fubm90IGJlIGJpZ2dlciB0aGVuIG1heCBwYWRkaW5nc1xuICAgICAgICAgICAgZWxlLmNzcygncGFkZGluZy1sZWZ0JywgcGFkZGluZ3MubGVmdCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXh0cmVtZVBhZGRpbmdzLmxlZnQgPSBwYXJzZUludChwYWRkaW5ncy5sZWZ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYWRkaW5ncy5yaWdodCkge1xuICAgICAgICAgIGlmIChwYWRkaW5nUmlnaHQgKiBzaWduIDwgcGFkZGluZ3MucmlnaHQgKiBzaWduKSB7XG4gICAgICAgICAgICAvLyBQYWRkaW5ncyBjYW5ub3QgYmUgc21hbGxlciB0aGVuIG1pbiBwYWRkaW5ncyBhbmQgY2Fubm90IGJlIGJpZ2dlciB0aGVuIG1heCBwYWRkaW5nc1xuICAgICAgICAgICAgZWxlLmNzcygncGFkZGluZy1yaWdodCcsIHBhZGRpbmdzLnJpZ2h0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBleHRyZW1lUGFkZGluZ3MucmlnaHQgPSBwYXJzZUludChwYWRkaW5ncy5yaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFkZGluZ3MudG9wKSB7XG4gICAgICAgICAgaWYgKHBhZGRpbmdUb3AgKiBzaWduIDwgcGFkZGluZ3MudG9wICogc2lnbikge1xuICAgICAgICAgICAgLy8gUGFkZGluZ3MgY2Fubm90IGJlIHNtYWxsZXIgdGhlbiBtaW4gcGFkZGluZ3MgYW5kIGNhbm5vdCBiZSBiaWdnZXIgdGhlbiBtYXggcGFkZGluZ3NcbiAgICAgICAgICAgIGVsZS5jc3MoJ3BhZGRpbmctdG9wJywgcGFkZGluZ3MudG9wKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBleHRyZW1lUGFkZGluZ3MudG9wID0gcGFyc2VJbnQocGFkZGluZ3MudG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYWRkaW5ncy5ib3R0b20pIHtcbiAgICAgICAgICBpZiAocGFkZGluZ0JvdHRvbSAqIHNpZ24gPCBwYWRkaW5ncy5ib3R0b20gKiBzaWduKSB7XG4gICAgICAgICAgICAvLyBQYWRkaW5ncyBjYW5ub3QgYmUgc21hbGxlciB0aGVuIG1pbiBwYWRkaW5ncyBhbmQgY2Fubm90IGJlIGJpZ2dlciB0aGVuIG1heCBwYWRkaW5nc1xuICAgICAgICAgICAgZWxlLmNzcygncGFkZGluZy1ib3R0b20nLCBwYWRkaW5ncy5ib3R0b20pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGV4dHJlbWVQYWRkaW5ncy5ib3R0b20gPSBwYXJzZUludChwYWRkaW5ncy5ib3R0b20pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgY3kuZW5kQmF0Y2goKTtcbiAgICB9LFxuICAgIGdldE1pbmltdW1QYWRkaW5nczogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIGlmIChtb2RlICE9PSAnbWluJykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgdmFyIHBhZGRpbmdzID0gc2NyYXRjaFV0aWxpdGllcy5nZXRTY3JhdGNoKG5vZGUpLm1pblBhZGRpbmdzO1xuICAgICAgaWYgKCFwYWRkaW5ncykge1xuICAgICAgICBwYWRkaW5ncyA9IHNjcmF0Y2hVdGlsaXRpZXMuZ2V0U2NyYXRjaChub2RlKS5taW5QYWRkaW5ncyA9IHt9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhZGRpbmdzO1xuICAgIH0sXG4gICAgZ2V0TWF4aW11bVBhZGRpbmdzOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgaWYgKG1vZGUgIT09ICdtaW4nKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgXG4gICAgICB2YXIgcGFkZGluZ3MgPSBzY3JhdGNoVXRpbGl0aWVzLmdldFNjcmF0Y2gobm9kZSkubWF4UGFkZGluZ3M7XG4gICAgICBpZiAoIXBhZGRpbmdzKSB7XG4gICAgICAgIHBhZGRpbmdzID0gc2NyYXRjaFV0aWxpdGllcy5nZXRTY3JhdGNoKG5vZGUpLm1heFBhZGRpbmdzID0ge307XG4gICAgICB9XG4gICAgICByZXR1cm4gcGFkZGluZ3M7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBzZWxmO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBjb21wb3VuZFJlc2l6ZVV0aWxpdGllczsiLCJ2YXIgZWxlbWVudFV0aWxpdGllcyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHtcbiAgICAvL3RoaXMgbWV0aG9kIHJldHVybnMgdGhlIG5vZGVzIG5vbiBvZiB3aG9zZSBhbmNlc3RvcnMgaXMgbm90IGluIGdpdmVuIG5vZGVzXG4gICAgZ2V0VG9wTW9zdE5vZGVzOiBmdW5jdGlvbiAobm9kZXMpIHtcbiAgICAgIHZhciBub2Rlc01hcCA9IHt9O1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBub2Rlc01hcFtub2Rlc1tpXS5pZCgpXSA9IHRydWU7XG4gICAgICB9XG4gICAgICB2YXIgcm9vdHMgPSBub2Rlcy5maWx0ZXIoZnVuY3Rpb24gKGksIGVsZSkge1xuICAgICAgICB2YXIgcGFyZW50ID0gZWxlLnBhcmVudCgpWzBdO1xuICAgICAgICB3aGlsZSAocGFyZW50ICE9IG51bGwpIHtcbiAgICAgICAgICBpZiAobm9kZXNNYXBbcGFyZW50LmlkKCldKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQoKVswXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gcm9vdHM7XG4gICAgfSxcbiAgICAvLyBHZXQgdGhlIGNvcm5lciBwb3NpdGlvbnMgb2YgdGhlIG5vZGVcbiAgICBnZXRDb3JuZXJQb3NpdGlvbnM6IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgIHZhciBwb3NYID0gbm9kZS5wb3NpdGlvbigneCcpO1xuICAgICAgdmFyIHBvc1kgPSBub2RlLnBvc2l0aW9uKCd5Jyk7XG4gICAgICB2YXIgaGFsZldpZHRoID0gbm9kZS53aWR0aCgpIC8gMjtcbiAgICAgIHZhciBoYWxmSGVpZ2h0ID0gbm9kZS5oZWlnaHQoKSAvIDI7XG4gICAgICBcbiAgICAgIHJldHVybiB7XG4gICAgICAgICd0b3AnOiBwb3NZIC0gaGFsZkhlaWdodCxcbiAgICAgICAgJ2JvdHRvbSc6IHBvc1kgKyBoYWxmSGVpZ2h0LFxuICAgICAgICAnbGVmdCc6IHBvc1ggLSBoYWxmV2lkdGgsXG4gICAgICAgICdyaWdodCc6IHBvc1ggKyBoYWxmV2lkdGhcbiAgICAgIH07XG4gICAgfVxuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBlbGVtZW50VXRpbGl0aWVzOyIsIjtcbihmdW5jdGlvbiAoKSB7XG4gICd1c2Ugc3RyaWN0JztcbiAgdmFyIGVsZW1lbnRVdGlsaXRpZXMgPSByZXF1aXJlKFwiLi9lbGVtZW50VXRpbGl0aWVzXCIpKCk7XG4gIHZhciBjb21wb3VuZFJlc2l6ZVV0aWxpdGllcztcbiAgdmFyIG1vZGU7XG4gIFxuICAvLyBFdmVudCBmdW5jdGlvbnNcbiAgdmFyIHRhcFN0YXJ0RmNuLCBkcmFnRmNuLCByZXNpemVTdGFydEZjbiwgcmVzaXplRHJhZ0ZjbjtcblxuICAvLyByZWdpc3RlcnMgdGhlIGV4dGVuc2lvbiBvbiBhIGN5dG9zY2FwZSBsaWIgcmVmXG4gIHZhciByZWdpc3RlciA9IGZ1bmN0aW9uIChjeXRvc2NhcGUpIHtcblxuICAgIGlmICghY3l0b3NjYXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBjYW4ndCByZWdpc3RlciBpZiBjeXRvc2NhcGUgdW5zcGVjaWZpZWRcblxuICAgIHZhciB1bmJpbmRFdmVudHMgPSBmdW5jdGlvbiAoY3kpIHtcbiAgICAgIGN5Lm9mZignbm9kZScsIHRhcFN0YXJ0RmNuKTtcbiAgICAgIGN5Lm9mZihkcmFnRmNuKTtcbiAgICAgIGN5Lm9mZihyZXNpemVTdGFydEZjbik7XG4gICAgICBjeS5vZmYocmVzaXplRHJhZ0Zjbik7XG4gICAgfTtcblxuICAgIHZhciBiaW5kRXZlbnRzID0gZnVuY3Rpb24gKGN5KSB7XG4gICAgICB2YXIgYW5jZXN0b3JzQ29ybmVyUG9zaXRpb25zO1xuICAgICAgdmFyIGVmZmVjdGVkTm9kZXM7XG4gICAgICB2YXIgYW5jZXN0b3JNYXA7XG5cbiAgICAgIC8vIEZpbGwgdGhlIGRhdGEgb2YgZWxlbWVudHMgd2hpY2ggd2lsbCBiZSBhZmZlY3RlZCBieSB0aGUgcmVzcG9zaXRpb25pbmcgXG4gICAgICB2YXIgZmlsbEVmZmVjdGVkRGF0YSA9IGZ1bmN0aW9uIChmaWxsQW5jZXN0b3JzTWFwKSB7XG4gICAgICAgIGFuY2VzdG9yc0Nvcm5lclBvc2l0aW9ucyA9IFtdO1xuXG4gICAgICAgIGlmIChmaWxsQW5jZXN0b3JzTWFwKSB7XG4gICAgICAgICAgYW5jZXN0b3JNYXAgPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVmZmVjdGVkTm9kZXMuZWFjaChmdW5jdGlvbiAoaSwgZWxlKSB7XG4gICAgICAgICAgdmFyIGNvcm5lcnMgPSBbXTsgLy8gSXQgd2lsbCBiZSB1c2VkIGxpa2UgYSBxdWV1ZVxuICAgICAgICAgIHZhciBjdXJyZW50QW5jZXN0b3IgPSBlbGUucGFyZW50KClbMF07XG5cbiAgICAgICAgICB3aGlsZSAoY3VycmVudEFuY2VzdG9yKSB7XG4gICAgICAgICAgICB2YXIgaWQgPSBjdXJyZW50QW5jZXN0b3IuaWQoKTtcblxuICAgICAgICAgICAgdmFyIGNvcm5lciA9IGVsZW1lbnRVdGlsaXRpZXMuZ2V0Q29ybmVyUG9zaXRpb25zKGN1cnJlbnRBbmNlc3Rvcik7XG4gICAgICAgICAgICBjb3JuZXIuaWQgPSBpZDtcblxuICAgICAgICAgICAgY29ybmVycy5wdXNoKGNvcm5lcik7XG5cbiAgICAgICAgICAgIGlmIChmaWxsQW5jZXN0b3JzTWFwICYmICFhbmNlc3Rvck1hcFtpZF0pIHtcbiAgICAgICAgICAgICAgYW5jZXN0b3JNYXBbaWRdID0gY3VycmVudEFuY2VzdG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjdXJyZW50QW5jZXN0b3IgPSBjdXJyZW50QW5jZXN0b3IucGFyZW50KClbMF07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYW5jZXN0b3JzQ29ybmVyUG9zaXRpb25zLnB1c2goY29ybmVycyk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgLy8gVXBkYXRlIHRoZSBwYWRkaW5ncyBhY2NvcmRpbmcgdG8gdGhlIG1vdmVtZW50XG4gICAgICB2YXIgdXBkYXRlUGFkZGluZ3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIEtlZXBzIHRoZSBhbHJlYWR5IHByb2Nlc3NlZCBhbmNlc3RvcnNcbiAgICAgICAgdmFyIHByb2Nlc3NlZEFuY2VzdG9ycyA9IHt9O1xuXG4gICAgICAgIGFuY2VzdG9yc0Nvcm5lclBvc2l0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChlbGVtZW50LCBpbmRleCwgYXJyYXkpIHtcbiAgICAgICAgICB2YXIgY29ybmVyc1F1ZXVlID0gZWxlbWVudDtcbiAgICAgICAgICB3aGlsZSAoY29ybmVyc1F1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHZhciBvbGRDb3JuZXJzID0gY29ybmVyc1F1ZXVlLnNoaWZ0KCk7XG5cbiAgICAgICAgICAgIGlmIChwcm9jZXNzZWRBbmNlc3RvcnNbY29ybmVyc1F1ZXVlLmlkXSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcHJvY2Vzc2VkQW5jZXN0b3JzW29sZENvcm5lcnMuaWRdID0gdHJ1ZTtcbiAgICAgICAgICAgIHZhciBhbmNlc3RvciA9IGFuY2VzdG9yTWFwW29sZENvcm5lcnMuaWRdO1xuICAgICAgICAgICAgdmFyIGN1cnJlbnRDb3JuZXJzID0gZWxlbWVudFV0aWxpdGllcy5nZXRDb3JuZXJQb3NpdGlvbnMoYW5jZXN0b3IpO1xuXG4gICAgICAgICAgICBpZiAoY3VycmVudENvcm5lcnMudG9wID09PSBvbGRDb3JuZXJzLnRvcCAmJiBjdXJyZW50Q29ybmVycy5ib3R0b20gPT09IG9sZENvcm5lcnMuYm90dG9tXG4gICAgICAgICAgICAgICAgICAgICYmIGN1cnJlbnRDb3JuZXJzLmxlZnQgPT09IG9sZENvcm5lcnMubGVmdCAmJiBjdXJyZW50Q29ybmVycy5yaWdodCA9PT0gb2xkQ29ybmVycy5yaWdodCkge1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIHBhZGRpbmdUb3AsIHBhZGRpbmdCb3R0b20sIHBhZGRpbmdMZWZ0LCBwYWRkaW5nUmlnaHQ7XG5cbiAgICAgICAgICAgIHZhciB0b3BEaWZmID0gY3VycmVudENvcm5lcnMudG9wIC0gb2xkQ29ybmVycy50b3A7XG5cbiAgICAgICAgICAgIGlmICh0b3BEaWZmICE9IDApIHtcbiAgICAgICAgICAgICAgdmFyIGN1cnJlbnRQYWRkaW5nID0gcGFyc2VJbnQoYW5jZXN0b3IuY3NzKCdwYWRkaW5nLXRvcCcpKTtcbiAgICAgICAgICAgICAgcGFkZGluZ1RvcCA9IGN1cnJlbnRQYWRkaW5nICsgdG9wRGlmZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIGJvdHRvbURpZmYgPSBjdXJyZW50Q29ybmVycy5ib3R0b20gLSBvbGRDb3JuZXJzLmJvdHRvbTtcblxuICAgICAgICAgICAgaWYgKGJvdHRvbURpZmYgIT0gMCkge1xuICAgICAgICAgICAgICB2YXIgY3VycmVudFBhZGRpbmcgPSBwYXJzZUludChhbmNlc3Rvci5jc3MoJ3BhZGRpbmctYm90dG9tJykpO1xuICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tID0gY3VycmVudFBhZGRpbmcgLSBib3R0b21EaWZmO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgbGVmdERpZmYgPSBjdXJyZW50Q29ybmVycy5sZWZ0IC0gb2xkQ29ybmVycy5sZWZ0O1xuXG4gICAgICAgICAgICBpZiAobGVmdERpZmYgIT0gMCkge1xuICAgICAgICAgICAgICB2YXIgY3VycmVudFBhZGRpbmcgPSBwYXJzZUludChhbmNlc3Rvci5jc3MoJ3BhZGRpbmctbGVmdCcpKTtcbiAgICAgICAgICAgICAgcGFkZGluZ0xlZnQgPSBjdXJyZW50UGFkZGluZyArIGxlZnREaWZmO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgcmlnaHREaWZmID0gY3VycmVudENvcm5lcnMucmlnaHQgLSBvbGRDb3JuZXJzLnJpZ2h0O1xuXG4gICAgICAgICAgICBpZiAocmlnaHREaWZmICE9IDApIHtcbiAgICAgICAgICAgICAgdmFyIGN1cnJlbnRQYWRkaW5nID0gcGFyc2VJbnQoYW5jZXN0b3IuY3NzKCdwYWRkaW5nLXJpZ2h0JykpO1xuICAgICAgICAgICAgICBwYWRkaW5nUmlnaHQgPSBjdXJyZW50UGFkZGluZyAtIHJpZ2h0RGlmZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFwYWRkaW5nVG9wICYmICFwYWRkaW5nQm90dG9tICYmICFwYWRkaW5nTGVmdCAmJiAhcGFkZGluZ1JpZ2h0KSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgcGFkZGluZ3MgPSB7fTtcblxuICAgICAgICAgICAgaWYgKHBhZGRpbmdUb3ApIHtcbiAgICAgICAgICAgICAgcGFkZGluZ3MudG9wID0gcGFkZGluZ1RvcDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhZGRpbmdCb3R0b20pIHtcbiAgICAgICAgICAgICAgcGFkZGluZ3MuYm90dG9tID0gcGFkZGluZ0JvdHRvbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhZGRpbmdMZWZ0KSB7XG4gICAgICAgICAgICAgIHBhZGRpbmdzLmxlZnQgPSBwYWRkaW5nTGVmdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhZGRpbmdSaWdodCkge1xuICAgICAgICAgICAgICBwYWRkaW5ncy5yaWdodCA9IHBhZGRpbmdSaWdodDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29tcG91bmRSZXNpemVVdGlsaXRpZXMuc2V0UGFkZGluZ3MoYW5jZXN0b3IsIHBhZGRpbmdzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgY3kub24oJ3RhcHN0YXJ0JywgJ25vZGUnLCB0YXBTdGFydEZjbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYoIG1vZGUgIT09ICdtaW4nICkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdmFyIG5vZGUgPSB0aGlzO1xuXG4gICAgICAgIGlmIChub2RlLnNlbGVjdGVkKCkpIHtcbiAgICAgICAgICBlZmZlY3RlZE5vZGVzID0gY3kuY29sbGVjdGlvbigpLmFkZChub2RlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBlZmZlY3RlZE5vZGVzID0gY3kubm9kZXMoJzpzZWxlY3RlZCcpLmRpZmZlcmVuY2Uobm9kZS5hbmNlc3RvcnMoKSkudW5pb24obm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXZSBjYXJlIGFib3V0IHRoZSBtb3ZlbWVudCBvZiB0b3AgbW9zdCBub2Rlc1xuICAgICAgICBlZmZlY3RlZE5vZGVzID0gZWxlbWVudFV0aWxpdGllcy5nZXRUb3BNb3N0Tm9kZXMoZWZmZWN0ZWROb2Rlcyk7XG5cbiAgICAgICAgZmlsbEVmZmVjdGVkRGF0YSh0cnVlKTtcbiAgICAgIH0pO1xuXG4gICAgICBjeS5vbignZHJhZycsICdub2RlJywgZHJhZ0ZjbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYoIG1vZGUgIT09ICdtaW4nICkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdXBkYXRlUGFkZGluZ3MoKTtcbiAgICAgICAgZmlsbEVmZmVjdGVkRGF0YShmYWxzZSk7XG4gICAgICB9KTtcblxuICAgICAgY3kub24oJ3Jlc2l6ZXN0YXJ0JywgcmVzaXplU3RhcnRGY24gPSBmdW5jdGlvbiAoZSwgdHlwZSwgbm9kZXMpIHtcbiAgICAgICAgaWYoIG1vZGUgIT09ICdtaW4nICkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgZWZmZWN0ZWROb2RlcyA9IG5vZGVzO1xuICAgICAgICBmaWxsRWZmZWN0ZWREYXRhKHRydWUpO1xuICAgICAgfSk7XG5cbiAgICAgIGN5Lm9uKCdyZXNpemVkcmFnJywgcmVzaXplRHJhZ0ZjbiA9IGZ1bmN0aW9uIChlLCB0eXBlLCBub2Rlcykge1xuICAgICAgICBpZiggbW9kZSAhPT0gJ21pbicgKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICB1cGRhdGVQYWRkaW5ncygpO1xuICAgICAgICBmaWxsRWZmZWN0ZWREYXRhKGZhbHNlKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjeXRvc2NhcGUoJ2NvcmUnLCAnY29tcG91bmRSZXNpemUnLCBmdW5jdGlvbiAoX21vZGUpIHtcbiAgICAgIHZhciBjeSA9IHRoaXM7XG4gICAgICBcbiAgICAgIGlmIChfbW9kZSA9PT0gJ2Rlc3Ryb3knKSB7XG4gICAgICAgIHVuYmluZEV2ZW50cyhjeSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgaWYoIF9tb2RlICE9ICdnZXQnICkge1xuICAgICAgICBjb21wb3VuZFJlc2l6ZVV0aWxpdGllcyA9IHJlcXVpcmUoJy4vY29tcG91bmRSZXNpemVVdGlsaXRpZXMnKShjeSk7XG4gICAgICAgIG1vZGUgPSBfbW9kZTtcbiAgICAgICAgY29tcG91bmRSZXNpemVVdGlsaXRpZXMuc2V0TW9kZShtb2RlKTtcbiAgICAgICAgYmluZEV2ZW50cyhjeSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb21wb3VuZFJlc2l6ZVV0aWxpdGllczsgLy8gUHJvdmlkZSBBUElcbiAgICB9KTtcblxuICB9O1xuXG4gIGlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyAmJiBtb2R1bGUuZXhwb3J0cykgeyAvLyBleHBvc2UgYXMgYSBjb21tb25qcyBtb2R1bGVcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHJlZ2lzdGVyO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBkZWZpbmUgIT09ICd1bmRlZmluZWQnICYmIGRlZmluZS5hbWQpIHsgLy8gZXhwb3NlIGFzIGFuIGFtZC9yZXF1aXJlanMgbW9kdWxlXG4gICAgZGVmaW5lKCdjeXRvc2NhcGUtY29tcG91bmQtcmVzaXplJywgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHJlZ2lzdGVyO1xuICAgIH0pO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBjeXRvc2NhcGUgIT09ICd1bmRlZmluZWQnKSB7IC8vIGV4cG9zZSB0byBnbG9iYWwgY3l0b3NjYXBlIChpLmUuIHdpbmRvdy5jeXRvc2NhcGUpXG4gICAgcmVnaXN0ZXIoY3l0b3NjYXBlKTtcbiAgfVxuXG59KSgpO1xuIiwidmFyIHNjcmF0Y2hVdGlsaXRpZXMgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB7XG4gICAgZ2V0U2NyYXRjaDogZnVuY3Rpb24gKGN5T3JFbGUpIHtcbiAgICAgIGlmICghY3lPckVsZS5zY3JhdGNoKCdfY29tcG91bmRSZXNpemUnKSkge1xuICAgICAgICBjeU9yRWxlLnNjcmF0Y2goJ19jb21wb3VuZFJlc2l6ZScsIHt9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjeU9yRWxlLnNjcmF0Y2goJ19jb21wb3VuZFJlc2l6ZScpO1xuICAgIH1cbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gc2NyYXRjaFV0aWxpdGllczsiXX0=
//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJzcmMvY29tcG91bmRSZXNpemVVdGlsaXRpZXMuanMiLCJzcmMvZWxlbWVudFV0aWxpdGllcy5qcyIsInNyYy9pbmRleC5qcyIsInNyYy9zY3JhdGNoVXRpbGl0aWVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FDQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkxBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsInZhciBjb21wb3VuZFJlc2l6ZVV0aWxpdGllcyA9IGZ1bmN0aW9uIChjeSwgbW9kZSkge1xuICB2YXIgc2NyYXRjaFV0aWxpdGllcyA9IHJlcXVpcmUoXCIuL3NjcmF0Y2hVdGlsaXRpZXNcIikoKTtcblxuICB2YXIgc2VsZiA9IHtcbiAgICBzZXRNb2RlOiBmdW5jdGlvbihuZXdtb2RlKSB7XG4gICAgICBpZihuZXdtb2RlID09IG1vZGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgXG4gICAgICB2YXIgY29tcG91bmRzID0gY3kubm9kZXMoJyRub2RlID4gbm9kZScpO1xuICAgICAgXG4gICAgICAvLyBJZiB0aGUgbmV3IG1vZGUgaXMgJ2ZyZWUnIHNldCB0aGUgcGFkZGluZ3MgdG8gdGhlIG1pbmltdW1zIGJlZm9yZSBzZXR0aW5nIHRoZSBtb2RlXG4gICAgICBpZiAobmV3bW9kZSA9PT0gJ2ZyZWUnKSB7XG4gICAgICAgIGNvbXBvdW5kcy5lYWNoKGZ1bmN0aW9uIChpLCBlbGUpIHtcbiAgICAgICAgICB2YXIgbWluUGFkZGluZ3MgPSBzZWxmLmdldE1pbmltdW1QYWRkaW5ncyhlbGUpO1xuXG4gICAgICAgICAgZWxlLmNzcygncGFkZGluZy10b3AnLCBtaW5QYWRkaW5ncy50b3ApO1xuICAgICAgICAgIGVsZS5jc3MoJ3BhZGRpbmctYm90dG9tJywgbWluUGFkZGluZ3MuYm90dG9tKTtcbiAgICAgICAgICBlbGUuY3NzKCdwYWRkaW5nLWxlZnQnLCBtaW5QYWRkaW5ncy5sZWZ0KTtcbiAgICAgICAgICBlbGUuY3NzKCdwYWRkaW5nLXJpZ2h0JywgbWluUGFkZGluZ3MucmlnaHQpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgbW9kZSA9IG5ld21vZGU7IC8vIFNldCB0aGUgbmV3IG1vZGVcbiAgICAgIFxuICAgICAgLy8gSWYgdGhlIG5ldyBtb2RlIGlzICdtaW4nIHNldCB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBwYWRkaW5ncyBhZnRlciBzZXR0aW5nIHRoZSBuZXcgbW9kZVxuICAgICAgaWYgKG5ld21vZGUgPT09ICdtaW4nKSB7XG4gICAgICAgIGNvbXBvdW5kcy5lYWNoKGZ1bmN0aW9uIChpLCBlbGUpIHtcbiAgICAgICAgICB2YXIgcGFkZGluZ3MgPSB7XG4gICAgICAgICAgICAndG9wJzogZWxlLmNzcygncGFkZGluZy10b3AnKSxcbiAgICAgICAgICAgICdib3R0b20nOiBlbGUuY3NzKCdwYWRkaW5nLWJvdHRvbScpLFxuICAgICAgICAgICAgJ2xlZnQnOiBlbGUuY3NzKCdwYWRkaW5nLWxlZnQnKSxcbiAgICAgICAgICAgICdyaWdodCc6IGVsZS5jc3MoJ3BhZGRpbmctcmlnaHQnKVxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBzZWxmLnNldEV4dHJlbWVQYWRkaW5ncyhlbGUsIHBhZGRpbmdzLCAnbWluJywgdHJ1ZSk7XG4gICAgICAgICAgc2VsZi5zZXRFeHRyZW1lUGFkZGluZ3MoZWxlLCBwYWRkaW5ncywgJ21heCcsIHRydWUpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGdldE1vZGU6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIG1vZGU7XG4gICAgfSxcbiAgICBzZXRQYWRkaW5nczogZnVuY3Rpb24gKG5vZGVzLCBwYWRkaW5ncykge1xuICAgICAgXG4gICAgICBpZiAobW9kZSAhPT0gJ21pbicpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgXG4gICAgICBjeS5zdGFydEJhdGNoKCk7XG5cbiAgICAgIG5vZGVzLmVhY2goZnVuY3Rpb24gKGksIGVsZSkge1xuICAgICAgICB2YXIgbWluUGFkZGluZ3MgPSBzZWxmLmdldE1pbmltdW1QYWRkaW5ncyhlbGUpO1xuICAgICAgICB2YXIgbWF4UGFkZGluZ3MgPSBzZWxmLmdldE1heGltdW1QYWRkaW5ncyhlbGUpO1xuXG4gICAgICAgIGlmICggcGFkZGluZ3MubGVmdCA+PSBtaW5QYWRkaW5ncy5sZWZ0ICYmIHBhZGRpbmdzLmxlZnQgPD0gbWF4UGFkZGluZ3MubGVmdCApIHtcbiAgICAgICAgICBlbGUuY3NzKCdwYWRkaW5nLWxlZnQnLCBwYWRkaW5ncy5sZWZ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICggcGFkZGluZ3MucmlnaHQgPj0gbWluUGFkZGluZ3MucmlnaHQgJiYgcGFkZGluZ3MucmlnaHQgPD0gbWF4UGFkZGluZ3MucmlnaHQgKSB7XG4gICAgICAgICAgZWxlLmNzcygncGFkZGluZy1yaWdodCcsIHBhZGRpbmdzLnJpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICggcGFkZGluZ3MudG9wID49IG1pblBhZGRpbmdzLnRvcCAmJiBwYWRkaW5ncy50b3AgPD0gbWF4UGFkZGluZ3MudG9wICkge1xuICAgICAgICAgIGVsZS5jc3MoJ3BhZGRpbmctdG9wJywgcGFkZGluZ3MudG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICggcGFkZGluZ3MuYm90dG9tID49IG1pblBhZGRpbmdzLmJvdHRvbSAmJiBwYWRkaW5ncy5ib3R0b20gPD0gbWF4UGFkZGluZ3MuYm90dG9tICkge1xuICAgICAgICAgIGVsZS5jc3MoJ3BhZGRpbmctYm90dG9tJywgcGFkZGluZ3MuYm90dG9tKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIGN5LmVuZEJhdGNoKCk7XG4gICAgfSxcbiAgICAvLyBTZXQgZXh0cmVtZSBwYWRkaW5ncyBvZiB0aGUgbm9kZXMgdXNlIGZvcmNlIHBhcmFtZXRlciBpZiB5b3UgZG8gbm90IG5lZWQgdG8gc2F0aXNmeSAnbWluUGFkZGluZ3MgPD0gbWF4UGFkZGluZ3MnIHJ1bGVcbiAgICBzZXRFeHRyZW1lUGFkZGluZ3M6IGZ1bmN0aW9uIChub2RlcywgX3BhZGRpbmdzLCBtaW5Pck1heCwgZm9yY2UpIHtcbiAgICAgIGlmIChtb2RlICE9PSAnbWluJykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBcbiAgICAgIGN5LnN0YXJ0QmF0Y2goKTtcblxuICAgICAgbm9kZXMuZWFjaChmdW5jdGlvbiAoaSwgZWxlKSB7XG4gICAgICAgIHZhciBwYWRkaW5nTGVmdCA9IHBhcnNlRmxvYXQoZWxlLmNzcygncGFkZGluZy1sZWZ0JykpO1xuICAgICAgICB2YXIgcGFkZGluZ1JpZ2h0ID0gcGFyc2VGbG9hdChlbGUuY3NzKCdwYWRkaW5nLXJpZ2h0JykpO1xuICAgICAgICB2YXIgcGFkZGluZ1RvcCA9IHBhcnNlRmxvYXQoZWxlLmNzcygncGFkZGluZy10b3AnKSk7XG4gICAgICAgIHZhciBwYWRkaW5nQm90dG9tID0gcGFyc2VGbG9hdChlbGUuY3NzKCdwYWRkaW5nLWJvdHRvbScpKTtcblxuICAgICAgICB2YXIgbWluUGFkZGluZ3MgPSBzZWxmLmdldE1pbmltdW1QYWRkaW5ncyhlbGUpO1xuICAgICAgICB2YXIgbWF4UGFkZGluZ3MgPSBzZWxmLmdldE1heGltdW1QYWRkaW5ncyhlbGUpO1xuICAgICAgICBcbiAgICAgICAgLy8gR2V0IHRoZSBleHRyZW1lIHBhZGRpbmdzIHRvIHNldCB0aGVtXG4gICAgICAgIHZhciBleHRyZW1lUGFkZGluZ3MgPSBtaW5Pck1heCA9PT0gJ21pbicgPyBtaW5QYWRkaW5ncyA6IG1heFBhZGRpbmdzO1xuXG4gICAgICAgIHZhciBzaWduID0gbWluT3JNYXggPT09ICdtaW4nID8gMSA6IC0xO1xuICAgICAgICBcbiAgICAgICAgLy8gQ2xvbmUgX3BhZGRpbmdzIGludG8gcGFkZGluZ3Mgb2JqZWN0XG4gICAgICAgIHZhciBwYWRkaW5ncyA9IHtcbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIC8vIEZpbHRlciBwYWRkaW5ncyBmcm9tIF9wYWRkaW5ncyBub3RlIHRoYXQgdGhlIHJ1bGUgb2YgJ21heFBhZGRpbmdzID49IG1pblBhZGRpbmdzJyBzaG91bGQgYmUgc2F0aXNmaWVkXG4gICAgICAgIGlmIChtaW5Pck1heCA9PT0gJ21pbicpIHtcbiAgICAgICAgICBmb3IgKHZhciBwcm9wIGluIF9wYWRkaW5ncykge1xuICAgICAgICAgICAgaWYgKGZvcmNlIHx8IF9wYWRkaW5nc1twcm9wXSA8PSBtYXhQYWRkaW5nc1twcm9wXSkge1xuICAgICAgICAgICAgICBwYWRkaW5nc1twcm9wXSA9IF9wYWRkaW5nc1twcm9wXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobWluT3JNYXggPT09ICdtYXgnKSB7XG4gICAgICAgICAgZm9yICh2YXIgcHJvcCBpbiBfcGFkZGluZ3MpIHtcbiAgICAgICAgICAgIGlmIChmb3JjZSB8fCBfcGFkZGluZ3NbcHJvcF0gPj0gbWluUGFkZGluZ3NbcHJvcF0pIHtcbiAgICAgICAgICAgICAgcGFkZGluZ3NbcHJvcF0gPSBfcGFkZGluZ3NbcHJvcF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IHRoZSBleHRyZW1lIHBhZGRpbmdzIHdoZXJlIGFwcGxpY2FibGVcbiAgICAgICAgaWYgKHBhZGRpbmdzLmxlZnQpIHtcbiAgICAgICAgICBpZiAocGFkZGluZ0xlZnQgKiBzaWduIDwgcGFkZGluZ3MubGVmdCAqIHNpZ24pIHtcbiAgICAgICAgICAgIC8vIFBhZGRpbmdzIGNhbm5vdCBiZSBzbWFsbGVyIHRoZW4gbWluIHBhZGRpbmdzIGFuZCBjYW5ub3QgYmUgYmlnZ2VyIHRoZW4gbWF4IHBhZGRpbmdzXG4gICAgICAgICAgICBlbGUuY3NzKCdwYWRkaW5nLWxlZnQnLCBwYWRkaW5ncy5sZWZ0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBleHRyZW1lUGFkZGluZ3MubGVmdCA9IHBhcnNlRmxvYXQocGFkZGluZ3MubGVmdCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFkZGluZ3MucmlnaHQpIHtcbiAgICAgICAgICBpZiAocGFkZGluZ1JpZ2h0ICogc2lnbiA8IHBhZGRpbmdzLnJpZ2h0ICogc2lnbikge1xuICAgICAgICAgICAgLy8gUGFkZGluZ3MgY2Fubm90IGJlIHNtYWxsZXIgdGhlbiBtaW4gcGFkZGluZ3MgYW5kIGNhbm5vdCBiZSBiaWdnZXIgdGhlbiBtYXggcGFkZGluZ3NcbiAgICAgICAgICAgIGVsZS5jc3MoJ3BhZGRpbmctcmlnaHQnLCBwYWRkaW5ncy5yaWdodCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXh0cmVtZVBhZGRpbmdzLnJpZ2h0ID0gcGFyc2VGbG9hdChwYWRkaW5ncy5yaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFkZGluZ3MudG9wKSB7XG4gICAgICAgICAgaWYgKHBhZGRpbmdUb3AgKiBzaWduIDwgcGFkZGluZ3MudG9wICogc2lnbikge1xuICAgICAgICAgICAgLy8gUGFkZGluZ3MgY2Fubm90IGJlIHNtYWxsZXIgdGhlbiBtaW4gcGFkZGluZ3MgYW5kIGNhbm5vdCBiZSBiaWdnZXIgdGhlbiBtYXggcGFkZGluZ3NcbiAgICAgICAgICAgIGVsZS5jc3MoJ3BhZGRpbmctdG9wJywgcGFkZGluZ3MudG9wKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBleHRyZW1lUGFkZGluZ3MudG9wID0gcGFyc2VGbG9hdChwYWRkaW5ncy50b3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhZGRpbmdzLmJvdHRvbSkge1xuICAgICAgICAgIGlmIChwYWRkaW5nQm90dG9tICogc2lnbiA8IHBhZGRpbmdzLmJvdHRvbSAqIHNpZ24pIHtcbiAgICAgICAgICAgIC8vIFBhZGRpbmdzIGNhbm5vdCBiZSBzbWFsbGVyIHRoZW4gbWluIHBhZGRpbmdzIGFuZCBjYW5ub3QgYmUgYmlnZ2VyIHRoZW4gbWF4IHBhZGRpbmdzXG4gICAgICAgICAgICBlbGUuY3NzKCdwYWRkaW5nLWJvdHRvbScsIHBhZGRpbmdzLmJvdHRvbSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXh0cmVtZVBhZGRpbmdzLmJvdHRvbSA9IHBhcnNlRmxvYXQocGFkZGluZ3MuYm90dG9tKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGN5LmVuZEJhdGNoKCk7XG4gICAgfSxcbiAgICBnZXRNaW5pbXVtUGFkZGluZ3M6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBpZiAobW9kZSAhPT0gJ21pbicpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBcbiAgICAgIHZhciBwYWRkaW5ncyA9IHNjcmF0Y2hVdGlsaXRpZXMuZ2V0U2NyYXRjaChub2RlKS5taW5QYWRkaW5ncztcbiAgICAgIGlmICghcGFkZGluZ3MpIHtcbiAgICAgICAgcGFkZGluZ3MgPSBzY3JhdGNoVXRpbGl0aWVzLmdldFNjcmF0Y2gobm9kZSkubWluUGFkZGluZ3MgPSB7fTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYWRkaW5ncztcbiAgICB9LFxuICAgIGdldE1heGltdW1QYWRkaW5nczogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIGlmIChtb2RlICE9PSAnbWluJykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgdmFyIHBhZGRpbmdzID0gc2NyYXRjaFV0aWxpdGllcy5nZXRTY3JhdGNoKG5vZGUpLm1heFBhZGRpbmdzO1xuICAgICAgaWYgKCFwYWRkaW5ncykge1xuICAgICAgICBwYWRkaW5ncyA9IHNjcmF0Y2hVdGlsaXRpZXMuZ2V0U2NyYXRjaChub2RlKS5tYXhQYWRkaW5ncyA9IHt9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhZGRpbmdzO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gc2VsZjtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gY29tcG91bmRSZXNpemVVdGlsaXRpZXM7IiwidmFyIGVsZW1lbnRVdGlsaXRpZXMgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB7XG4gICAgLy90aGlzIG1ldGhvZCByZXR1cm5zIHRoZSBub2RlcyBub24gb2Ygd2hvc2UgYW5jZXN0b3JzIGlzIG5vdCBpbiBnaXZlbiBub2Rlc1xuICAgIGdldFRvcE1vc3ROb2RlczogZnVuY3Rpb24gKG5vZGVzKSB7XG4gICAgICB2YXIgbm9kZXNNYXAgPSB7fTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbm9kZXNNYXBbbm9kZXNbaV0uaWQoKV0gPSB0cnVlO1xuICAgICAgfVxuICAgICAgdmFyIHJvb3RzID0gbm9kZXMuZmlsdGVyKGZ1bmN0aW9uIChpLCBlbGUpIHtcbiAgICAgICAgdmFyIHBhcmVudCA9IGVsZS5wYXJlbnQoKVswXTtcbiAgICAgICAgd2hpbGUgKHBhcmVudCAhPSBudWxsKSB7XG4gICAgICAgICAgaWYgKG5vZGVzTWFwW3BhcmVudC5pZCgpXSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50KClbMF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHJvb3RzO1xuICAgIH0sXG4gICAgLy8gR2V0IHRoZSBjb3JuZXIgcG9zaXRpb25zIG9mIHRoZSBub2RlXG4gICAgZ2V0Q29ybmVyUG9zaXRpb25zOiBmdW5jdGlvbihub2RlKSB7XG4gICAgICB2YXIgcG9zWCA9IG5vZGUucG9zaXRpb24oJ3gnKTtcbiAgICAgIHZhciBwb3NZID0gbm9kZS5wb3NpdGlvbigneScpO1xuICAgICAgdmFyIGhhbGZXaWR0aCA9IG5vZGUud2lkdGgoKSAvIDI7XG4gICAgICB2YXIgaGFsZkhlaWdodCA9IG5vZGUuaGVpZ2h0KCkgLyAyO1xuICAgICAgXG4gICAgICByZXR1cm4ge1xuICAgICAgICAndG9wJzogcG9zWSAtIGhhbGZIZWlnaHQsXG4gICAgICAgICdib3R0b20nOiBwb3NZICsgaGFsZkhlaWdodCxcbiAgICAgICAgJ2xlZnQnOiBwb3NYIC0gaGFsZldpZHRoLFxuICAgICAgICAncmlnaHQnOiBwb3NYICsgaGFsZldpZHRoXG4gICAgICB9O1xuICAgIH1cbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZWxlbWVudFV0aWxpdGllczsiLCI7XG4oZnVuY3Rpb24gKCkge1xuICAndXNlIHN0cmljdCc7XG4gIHZhciBlbGVtZW50VXRpbGl0aWVzID0gcmVxdWlyZShcIi4vZWxlbWVudFV0aWxpdGllc1wiKSgpO1xuICB2YXIgY29tcG91bmRSZXNpemVVdGlsaXRpZXM7XG4gIHZhciBtb2RlO1xuICBcbiAgLy8gRXZlbnQgZnVuY3Rpb25zXG4gIHZhciB0YXBTdGFydEZjbiwgZHJhZ0ZjbiwgcmVzaXplU3RhcnRGY24sIHJlc2l6ZURyYWdGY247XG5cbiAgLy8gcmVnaXN0ZXJzIHRoZSBleHRlbnNpb24gb24gYSBjeXRvc2NhcGUgbGliIHJlZlxuICB2YXIgcmVnaXN0ZXIgPSBmdW5jdGlvbiAoY3l0b3NjYXBlKSB7XG5cbiAgICBpZiAoIWN5dG9zY2FwZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gY2FuJ3QgcmVnaXN0ZXIgaWYgY3l0b3NjYXBlIHVuc3BlY2lmaWVkXG5cbiAgICB2YXIgdW5iaW5kRXZlbnRzID0gZnVuY3Rpb24gKGN5KSB7XG4gICAgICBjeS5vZmYoJ25vZGUnLCB0YXBTdGFydEZjbik7XG4gICAgICBjeS5vZmYoZHJhZ0Zjbik7XG4gICAgICBjeS5vZmYocmVzaXplU3RhcnRGY24pO1xuICAgICAgY3kub2ZmKHJlc2l6ZURyYWdGY24pO1xuICAgIH07XG5cbiAgICB2YXIgYmluZEV2ZW50cyA9IGZ1bmN0aW9uIChjeSkge1xuICAgICAgdmFyIGFuY2VzdG9yc0Nvcm5lclBvc2l0aW9ucztcbiAgICAgIHZhciBlZmZlY3RlZE5vZGVzO1xuICAgICAgdmFyIGFuY2VzdG9yTWFwO1xuXG4gICAgICAvLyBGaWxsIHRoZSBkYXRhIG9mIGVsZW1lbnRzIHdoaWNoIHdpbGwgYmUgYWZmZWN0ZWQgYnkgdGhlIHJlc3Bvc2l0aW9uaW5nIFxuICAgICAgdmFyIGZpbGxFZmZlY3RlZERhdGEgPSBmdW5jdGlvbiAoZmlsbEFuY2VzdG9yc01hcCkge1xuICAgICAgICBhbmNlc3RvcnNDb3JuZXJQb3NpdGlvbnMgPSBbXTtcblxuICAgICAgICBpZiAoZmlsbEFuY2VzdG9yc01hcCkge1xuICAgICAgICAgIGFuY2VzdG9yTWFwID0ge307XG4gICAgICAgIH1cblxuICAgICAgICBlZmZlY3RlZE5vZGVzLmVhY2goZnVuY3Rpb24gKGksIGVsZSkge1xuICAgICAgICAgIHZhciBjb3JuZXJzID0gW107IC8vIEl0IHdpbGwgYmUgdXNlZCBsaWtlIGEgcXVldWVcbiAgICAgICAgICB2YXIgY3VycmVudEFuY2VzdG9yID0gZWxlLnBhcmVudCgpWzBdO1xuXG4gICAgICAgICAgd2hpbGUgKGN1cnJlbnRBbmNlc3Rvcikge1xuICAgICAgICAgICAgdmFyIGlkID0gY3VycmVudEFuY2VzdG9yLmlkKCk7XG5cbiAgICAgICAgICAgIHZhciBjb3JuZXIgPSBlbGVtZW50VXRpbGl0aWVzLmdldENvcm5lclBvc2l0aW9ucyhjdXJyZW50QW5jZXN0b3IpO1xuICAgICAgICAgICAgY29ybmVyLmlkID0gaWQ7XG5cbiAgICAgICAgICAgIGNvcm5lcnMucHVzaChjb3JuZXIpO1xuXG4gICAgICAgICAgICBpZiAoZmlsbEFuY2VzdG9yc01hcCAmJiAhYW5jZXN0b3JNYXBbaWRdKSB7XG4gICAgICAgICAgICAgIGFuY2VzdG9yTWFwW2lkXSA9IGN1cnJlbnRBbmNlc3RvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY3VycmVudEFuY2VzdG9yID0gY3VycmVudEFuY2VzdG9yLnBhcmVudCgpWzBdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGFuY2VzdG9yc0Nvcm5lclBvc2l0aW9ucy5wdXNoKGNvcm5lcnMpO1xuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIC8vIFVwZGF0ZSB0aGUgcGFkZGluZ3MgYWNjb3JkaW5nIHRvIHRoZSBtb3ZlbWVudFxuICAgICAgdmFyIHVwZGF0ZVBhZGRpbmdzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBLZWVwcyB0aGUgYWxyZWFkeSBwcm9jZXNzZWQgYW5jZXN0b3JzXG4gICAgICAgIHZhciBwcm9jZXNzZWRBbmNlc3RvcnMgPSB7fTtcblxuICAgICAgICBhbmNlc3RvcnNDb3JuZXJQb3NpdGlvbnMuZm9yRWFjaChmdW5jdGlvbiAoZWxlbWVudCwgaW5kZXgsIGFycmF5KSB7XG4gICAgICAgICAgdmFyIGNvcm5lcnNRdWV1ZSA9IGVsZW1lbnQ7XG4gICAgICAgICAgd2hpbGUgKGNvcm5lcnNRdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB2YXIgb2xkQ29ybmVycyA9IGNvcm5lcnNRdWV1ZS5zaGlmdCgpO1xuXG4gICAgICAgICAgICBpZiAocHJvY2Vzc2VkQW5jZXN0b3JzW2Nvcm5lcnNRdWV1ZS5pZF0pIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHByb2Nlc3NlZEFuY2VzdG9yc1tvbGRDb3JuZXJzLmlkXSA9IHRydWU7XG4gICAgICAgICAgICB2YXIgYW5jZXN0b3IgPSBhbmNlc3Rvck1hcFtvbGRDb3JuZXJzLmlkXTtcbiAgICAgICAgICAgIHZhciBjdXJyZW50Q29ybmVycyA9IGVsZW1lbnRVdGlsaXRpZXMuZ2V0Q29ybmVyUG9zaXRpb25zKGFuY2VzdG9yKTtcblxuICAgICAgICAgICAgaWYgKGN1cnJlbnRDb3JuZXJzLnRvcCA9PT0gb2xkQ29ybmVycy50b3AgJiYgY3VycmVudENvcm5lcnMuYm90dG9tID09PSBvbGRDb3JuZXJzLmJvdHRvbVxuICAgICAgICAgICAgICAgICAgICAmJiBjdXJyZW50Q29ybmVycy5sZWZ0ID09PSBvbGRDb3JuZXJzLmxlZnQgJiYgY3VycmVudENvcm5lcnMucmlnaHQgPT09IG9sZENvcm5lcnMucmlnaHQpIHtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBwYWRkaW5nVG9wLCBwYWRkaW5nQm90dG9tLCBwYWRkaW5nTGVmdCwgcGFkZGluZ1JpZ2h0O1xuXG4gICAgICAgICAgICB2YXIgdG9wRGlmZiA9IGN1cnJlbnRDb3JuZXJzLnRvcCAtIG9sZENvcm5lcnMudG9wO1xuXG4gICAgICAgICAgICBpZiAodG9wRGlmZiAhPSAwKSB7XG4gICAgICAgICAgICAgIHZhciBjdXJyZW50UGFkZGluZyA9IHBhcnNlRmxvYXQoYW5jZXN0b3IuY3NzKCdwYWRkaW5nLXRvcCcpKTtcbiAgICAgICAgICAgICAgcGFkZGluZ1RvcCA9IGN1cnJlbnRQYWRkaW5nICsgdG9wRGlmZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIGJvdHRvbURpZmYgPSBjdXJyZW50Q29ybmVycy5ib3R0b20gLSBvbGRDb3JuZXJzLmJvdHRvbTtcblxuICAgICAgICAgICAgaWYgKGJvdHRvbURpZmYgIT0gMCkge1xuICAgICAgICAgICAgICB2YXIgY3VycmVudFBhZGRpbmcgPSBwYXJzZUZsb2F0KGFuY2VzdG9yLmNzcygncGFkZGluZy1ib3R0b20nKSk7XG4gICAgICAgICAgICAgIHBhZGRpbmdCb3R0b20gPSBjdXJyZW50UGFkZGluZyAtIGJvdHRvbURpZmY7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBsZWZ0RGlmZiA9IGN1cnJlbnRDb3JuZXJzLmxlZnQgLSBvbGRDb3JuZXJzLmxlZnQ7XG5cbiAgICAgICAgICAgIGlmIChsZWZ0RGlmZiAhPSAwKSB7XG4gICAgICAgICAgICAgIHZhciBjdXJyZW50UGFkZGluZyA9IHBhcnNlRmxvYXQoYW5jZXN0b3IuY3NzKCdwYWRkaW5nLWxlZnQnKSk7XG4gICAgICAgICAgICAgIHBhZGRpbmdMZWZ0ID0gY3VycmVudFBhZGRpbmcgKyBsZWZ0RGlmZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIHJpZ2h0RGlmZiA9IGN1cnJlbnRDb3JuZXJzLnJpZ2h0IC0gb2xkQ29ybmVycy5yaWdodDtcblxuICAgICAgICAgICAgaWYgKHJpZ2h0RGlmZiAhPSAwKSB7XG4gICAgICAgICAgICAgIHZhciBjdXJyZW50UGFkZGluZyA9IHBhcnNlRmxvYXQoYW5jZXN0b3IuY3NzKCdwYWRkaW5nLXJpZ2h0JykpO1xuICAgICAgICAgICAgICBwYWRkaW5nUmlnaHQgPSBjdXJyZW50UGFkZGluZyAtIHJpZ2h0RGlmZjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFwYWRkaW5nVG9wICYmICFwYWRkaW5nQm90dG9tICYmICFwYWRkaW5nTGVmdCAmJiAhcGFkZGluZ1JpZ2h0KSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgcGFkZGluZ3MgPSB7fTtcblxuICAgICAgICAgICAgaWYgKHBhZGRpbmdUb3ApIHtcbiAgICAgICAgICAgICAgcGFkZGluZ3MudG9wID0gcGFkZGluZ1RvcDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhZGRpbmdCb3R0b20pIHtcbiAgICAgICAgICAgICAgcGFkZGluZ3MuYm90dG9tID0gcGFkZGluZ0JvdHRvbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhZGRpbmdMZWZ0KSB7XG4gICAgICAgICAgICAgIHBhZGRpbmdzLmxlZnQgPSBwYWRkaW5nTGVmdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhZGRpbmdSaWdodCkge1xuICAgICAgICAgICAgICBwYWRkaW5ncy5yaWdodCA9IHBhZGRpbmdSaWdodDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29tcG91bmRSZXNpemVVdGlsaXRpZXMuc2V0UGFkZGluZ3MoYW5jZXN0b3IsIHBhZGRpbmdzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgY3kub24oJ3RhcHN0YXJ0JywgJ25vZGUnLCB0YXBTdGFydEZjbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYoIG1vZGUgIT09ICdtaW4nICkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdmFyIG5vZGUgPSB0aGlzO1xuXG4gICAgICAgIGlmIChub2RlLnNlbGVjdGVkKCkpIHtcbiAgICAgICAgICBlZmZlY3RlZE5vZGVzID0gY3kuY29sbGVjdGlvbigpLmFkZChub2RlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBlZmZlY3RlZE5vZGVzID0gY3kubm9kZXMoJzpzZWxlY3RlZCcpLmRpZmZlcmVuY2Uobm9kZS5hbmNlc3RvcnMoKSkudW5pb24obm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXZSBjYXJlIGFib3V0IHRoZSBtb3ZlbWVudCBvZiB0b3AgbW9zdCBub2Rlc1xuICAgICAgICBlZmZlY3RlZE5vZGVzID0gZWxlbWVudFV0aWxpdGllcy5nZXRUb3BNb3N0Tm9kZXMoZWZmZWN0ZWROb2Rlcyk7XG5cbiAgICAgICAgZmlsbEVmZmVjdGVkRGF0YSh0cnVlKTtcbiAgICAgIH0pO1xuXG4gICAgICBjeS5vbignZHJhZycsICdub2RlJywgZHJhZ0ZjbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYoIG1vZGUgIT09ICdtaW4nICkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdXBkYXRlUGFkZGluZ3MoKTtcbiAgICAgICAgZmlsbEVmZmVjdGVkRGF0YShmYWxzZSk7XG4gICAgICB9KTtcblxuICAgICAgY3kub24oJ3Jlc2l6ZXN0YXJ0JywgcmVzaXplU3RhcnRGY24gPSBmdW5jdGlvbiAoZSwgdHlwZSwgbm9kZXMpIHtcbiAgICAgICAgaWYoIG1vZGUgIT09ICdtaW4nICkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgZWZmZWN0ZWROb2RlcyA9IG5vZGVzO1xuICAgICAgICBmaWxsRWZmZWN0ZWREYXRhKHRydWUpO1xuICAgICAgfSk7XG5cbiAgICAgIGN5Lm9uKCdyZXNpemVkcmFnJywgcmVzaXplRHJhZ0ZjbiA9IGZ1bmN0aW9uIChlLCB0eXBlLCBub2Rlcykge1xuICAgICAgICBpZiggbW9kZSAhPT0gJ21pbicgKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICB1cGRhdGVQYWRkaW5ncygpO1xuICAgICAgICBmaWxsRWZmZWN0ZWREYXRhKGZhbHNlKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjeXRvc2NhcGUoJ2NvcmUnLCAnY29tcG91bmRSZXNpemUnLCBmdW5jdGlvbiAoX21vZGUpIHtcbiAgICAgIHZhciBjeSA9IHRoaXM7XG4gICAgICBcbiAgICAgIGlmIChfbW9kZSA9PT0gJ2Rlc3Ryb3knKSB7XG4gICAgICAgIHVuYmluZEV2ZW50cyhjeSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgaWYoIF9tb2RlICE9ICdnZXQnICkge1xuICAgICAgICBjb21wb3VuZFJlc2l6ZVV0aWxpdGllcyA9IHJlcXVpcmUoJy4vY29tcG91bmRSZXNpemVVdGlsaXRpZXMnKShjeSk7XG4gICAgICAgIG1vZGUgPSBfbW9kZTtcbiAgICAgICAgY29tcG91bmRSZXNpemVVdGlsaXRpZXMuc2V0TW9kZShtb2RlKTtcbiAgICAgICAgYmluZEV2ZW50cyhjeSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb21wb3VuZFJlc2l6ZVV0aWxpdGllczsgLy8gUHJvdmlkZSBBUElcbiAgICB9KTtcblxuICB9O1xuXG4gIGlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyAmJiBtb2R1bGUuZXhwb3J0cykgeyAvLyBleHBvc2UgYXMgYSBjb21tb25qcyBtb2R1bGVcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHJlZ2lzdGVyO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBkZWZpbmUgIT09ICd1bmRlZmluZWQnICYmIGRlZmluZS5hbWQpIHsgLy8gZXhwb3NlIGFzIGFuIGFtZC9yZXF1aXJlanMgbW9kdWxlXG4gICAgZGVmaW5lKCdjeXRvc2NhcGUtY29tcG91bmQtcmVzaXplJywgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHJlZ2lzdGVyO1xuICAgIH0pO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBjeXRvc2NhcGUgIT09ICd1bmRlZmluZWQnKSB7IC8vIGV4cG9zZSB0byBnbG9iYWwgY3l0b3NjYXBlIChpLmUuIHdpbmRvdy5jeXRvc2NhcGUpXG4gICAgcmVnaXN0ZXIoY3l0b3NjYXBlKTtcbiAgfVxuXG59KSgpO1xuIiwidmFyIHNjcmF0Y2hVdGlsaXRpZXMgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB7XG4gICAgZ2V0U2NyYXRjaDogZnVuY3Rpb24gKGN5T3JFbGUpIHtcbiAgICAgIGlmICghY3lPckVsZS5zY3JhdGNoKCdfY29tcG91bmRSZXNpemUnKSkge1xuICAgICAgICBjeU9yRWxlLnNjcmF0Y2goJ19jb21wb3VuZFJlc2l6ZScsIHt9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjeU9yRWxlLnNjcmF0Y2goJ19jb21wb3VuZFJlc2l6ZScpO1xuICAgIH1cbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gc2NyYXRjaFV0aWxpdGllczsiXX0=
{
"name": "cytoscape-compound-resize",
"version": "1.0.6",
"version": "1.0.7",
"description": "A Cytoscape.js extension to resize compound nodes through setting their paddings",

@@ -5,0 +5,0 @@ "main": "cytoscape-compound-resize.js",

@@ -89,3 +89,3 @@ ;

if (topDiff != 0) {
var currentPadding = parseInt(ancestor.css('padding-top'));
var currentPadding = parseFloat(ancestor.css('padding-top'));
paddingTop = currentPadding + topDiff;

@@ -97,3 +97,3 @@ }

if (bottomDiff != 0) {
var currentPadding = parseInt(ancestor.css('padding-bottom'));
var currentPadding = parseFloat(ancestor.css('padding-bottom'));
paddingBottom = currentPadding - bottomDiff;

@@ -105,3 +105,3 @@ }

if (leftDiff != 0) {
var currentPadding = parseInt(ancestor.css('padding-left'));
var currentPadding = parseFloat(ancestor.css('padding-left'));
paddingLeft = currentPadding + leftDiff;

@@ -113,3 +113,3 @@ }

if (rightDiff != 0) {
var currentPadding = parseInt(ancestor.css('padding-right'));
var currentPadding = parseFloat(ancestor.css('padding-right'));
paddingRight = currentPadding - rightDiff;

@@ -116,0 +116,0 @@ }

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc