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

aws-api-gateway-client

Package Overview
Dependencies
Maintainers
1
Versions
37
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aws-api-gateway-client - npm Package Compare versions

Comparing version 0.3.2 to 0.3.3

8

dist/lib/apiGatewayCore/sigV4Client.js

@@ -83,3 +83,3 @@ "use strict";

for (var property in queryParams) {
if (Object.prototype.hasOwnProperty.call(queryParams, "property")) {
if (Object.prototype.hasOwnProperty.call(queryParams, property)) {
sortedQueryParams.push(property);

@@ -110,3 +110,3 @@ }

for (var property in headers) {
if (Object.prototype.hasOwnProperty.call(headers, "property")) {
if (Object.prototype.hasOwnProperty.call(headers, property)) {
sortedKeys.push(property);

@@ -129,3 +129,3 @@ }

for (var property in headers) {
if (Object.prototype.hasOwnProperty.call(headers, "property")) {
if (Object.prototype.hasOwnProperty.call(headers, property)) {
sortedKeys.push(property.toLowerCase());

@@ -303,2 +303,2 @@ }

exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYXBpR2F0ZXdheUNvcmUvc2lnVjRDbGllbnQuanMiXSwibmFtZXMiOlsic2lnVjRDbGllbnRGYWN0b3J5IiwibmV3Q2xpZW50IiwiY29uZmlnIiwiQVdTX1NIQV8yNTYiLCJBV1M0X1JFUVVFU1QiLCJBV1M0IiwiWF9BTVpfREFURSIsIlhfQU1aX1NFQ1VSSVRZX1RPS0VOIiwiSE9TVCIsIkFVVEhPUklaQVRJT04iLCJoYXNoIiwidmFsdWUiLCJoZXhFbmNvZGUiLCJ0b1N0cmluZyIsImVuY0hleCIsImhtYWMiLCJzZWNyZXQiLCJhc0J5dGVzIiwiYnVpbGRDYW5vbmljYWxSZXF1ZXN0IiwibWV0aG9kIiwicGF0aCIsInF1ZXJ5UGFyYW1zIiwiaGVhZGVycyIsInBheWxvYWQiLCJidWlsZENhbm9uaWNhbFVyaSIsImJ1aWxkQ2Fub25pY2FsUXVlcnlTdHJpbmciLCJidWlsZENhbm9uaWNhbEhlYWRlcnMiLCJidWlsZENhbm9uaWNhbFNpZ25lZEhlYWRlcnMiLCJoYXNoQ2Fub25pY2FsUmVxdWVzdCIsInJlcXVlc3QiLCJ1cmkiLCJlbmNvZGVVUkkiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwic29ydGVkUXVlcnlQYXJhbXMiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInB1c2giLCJzb3J0IiwiY2Fub25pY2FsUXVlcnlTdHJpbmciLCJpIiwiZml4ZWRFbmNvZGVVUklDb21wb25lbnQiLCJzdWJzdHIiLCJzdHIiLCJlbmNvZGVVUklDb21wb25lbnQiLCJyZXBsYWNlIiwiYyIsImNoYXJDb2RlQXQiLCJjYW5vbmljYWxIZWFkZXJzIiwic29ydGVkS2V5cyIsInRvTG93ZXJDYXNlIiwiam9pbiIsImJ1aWxkU3RyaW5nVG9TaWduIiwiZGF0ZXRpbWUiLCJjcmVkZW50aWFsU2NvcGUiLCJoYXNoZWRDYW5vbmljYWxSZXF1ZXN0IiwiYnVpbGRDcmVkZW50aWFsU2NvcGUiLCJyZWdpb24iLCJzZXJ2aWNlIiwiY2FsY3VsYXRlU2lnbmluZ0tleSIsInNlY3JldEtleSIsImNhbGN1bGF0ZVNpZ25hdHVyZSIsImtleSIsInN0cmluZ1RvU2lnbiIsImJ1aWxkQXV0aG9yaXphdGlvbkhlYWRlciIsImFjY2Vzc0tleSIsInNpZ25hdHVyZSIsImF3c1NpZ1Y0Q2xpZW50IiwidW5kZWZpbmVkIiwidXRpbHMiLCJhc3NlcnREZWZpbmVkIiwic2Vzc2lvblRva2VuIiwic2VydmljZU5hbWUiLCJlbmRwb2ludCIsInJldHJpZXMiLCJyZXRyeUNvbmRpdGlvbiIsInJldHJ5RGVsYXkiLCJob3N0IiwibWFrZVJlcXVlc3QiLCJ2ZXJiIiwiY29weSIsInRpbWVvdXQiLCJkZWZhdWx0Q29udGVudFR5cGUiLCJkZWZhdWx0QWNjZXB0VHlwZSIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwiRGF0ZSIsImdldFRpbWUiLCJzeXN0ZW1DbG9ja09mZnNldCIsInRvSVNPU3RyaW5nIiwicGFyc2VyIiwidXJsUGFyc2VyIiwicGFyc2UiLCJob3N0bmFtZSIsImNhbm9uaWNhbFJlcXVlc3QiLCJzaWduaW5nS2V5IiwidXJsIiwicXVlcnlTdHJpbmciLCJzaWduZWRSZXF1ZXN0IiwiZGF0YSIsImJhc2VVUkwiLCJjbGllbnQiLCJheGlvcyIsImNyZWF0ZSIsImF4aW9zUmV0cnkiLCJleHBvbmVudGlhbERlbGF5IiwicGFyc2VJbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQWVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQXJCQTs7Ozs7Ozs7Ozs7Ozs7QUF1QkEsSUFBTUEsa0JBQWtCLEdBQUcsRUFBM0I7O0FBQ0FBLGtCQUFrQixDQUFDQyxTQUFuQixHQUErQixVQUFTQyxNQUFULEVBQWlCO0FBQzlDLE1BQUlDLFdBQVcsR0FBRyxrQkFBbEI7QUFDQSxNQUFJQyxZQUFZLEdBQUcsY0FBbkI7QUFDQSxNQUFJQyxJQUFJLEdBQUcsTUFBWDtBQUNBLE1BQUlDLFVBQVUsR0FBRyxZQUFqQjtB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UUFBQUEsT0FBTyxFQUFFM0UsTUFBTSxDQUFDMkUsT0FEQztBQUVqQkMsUUFBQUEsY0FBYyxFQUFFNUUsTUFBTSxDQUFDNEUsY0FGTjtBQUdqQkMsUUFBQUEsVUFBVSxFQUFWQTtBQUhpQixPQUFuQjtBQUtBLGFBQU8wQixNQUFNLENBQUM1RSxPQUFQLENBQWU7QUFBQ1YsUUFBQUEsTUFBTSxFQUFFK0Q7QUFBVCxPQUFmLENBQVA7QUFDRDs7QUFDRG9CLElBQUFBLGFBQWEsQ0FBQ25GLE1BQWQsR0FBdUIrRCxJQUF2QjtBQUNBb0IsSUFBQUEsYUFBYSxDQUFDRixHQUFkLEdBQW9CQSxHQUFwQjtBQUNBLFdBQU8sdUJBQU1FLGFBQU4sQ0FBUDtBQUNELEdBdkhEOztBQXlIQSxTQUFPaEMsY0FBUDtBQUNELENBalFEOztlQW1RZXRFLGtCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDEwLTIwMTYgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLlxuICogWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgaHR0cDovL2F3cy5hbWF6b24uY29tL2FwYWNoZTIuMFxuICpcbiAqIG9yIGluIHRoZSBcImxpY2Vuc2VcIiBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZFxuICogb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyXG4gKiBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZ1xuICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgYXhpb3NSZXRyeSBmcm9tICdheGlvcy1yZXRyeSc7XG5pbXBvcnQgU0hBMjU2IGZyb20gJ2NyeXB0by1qcy9zaGEyNTYnO1xuaW1wb3J0IGVuY0hleCBmcm9tICdjcnlwdG8tanMvZW5jLWhleCc7XG5pbXBvcnQgSG1hY1NIQTI1NiBmcm9tICdjcnlwdG8tanMvaG1hYy1zaGEyNTYnO1xuaW1wb3J0IHVybFBhcnNlciBmcm9tICd1cmwnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBzaWdWNENsaWVudEZhY3RvcnkgPSB7fTtcbnNpZ1Y0Q2xpZW50RmFjdG9yeS5uZXdDbGllbnQgPSBmdW5jdGlvbihjb25maWcpIHtcbiAgbGV0IEFXU19TSEFfMjU2ID0gJ0FXUzQtSE1BQy1TSEEyNTYnO1xuICBsZXQgQVdTNF9SRVFVRVNUID0gJ2F3czRfcmVxdWVzdCc7XG4gIGxldCBBV1M0ID0gJ0FXUzQnO1xuICBsZXQgWF9BTVpfREFURSA9ICd4LWFtei1kYXRlJztcbiAgbGV0IFhfQU1aX1NFQ1VSSVRZX1RPS0VOID0gJ3gtYW16LXNlY3VyaXR5LXRva2VuJztcbiAgbGV0IEhPU1QgPSAnaG9zdCc7XG4gIGxldCBBVVRIT1JJWkFUSU9OID0gJ0F1dGhvcml6YXRpb24nO1xuXG4gIGZ1bmN0aW9uIGhhc2godmFsdWUpIHtcbiAgICByZXR1cm4gU0hBMjU2KHZhbHVlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICB9XG5cbiAgZnVuY3Rpb24gaGV4RW5jb2RlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKGVuY0hleCk7XG4gIH1cblxuICBmdW5jdGlvbiBobWFjKHNlY3JldCwgdmFsdWUpIHtcbiAgICByZXR1cm4gSG1hY1NIQTI1Nih2YWx1ZSwgc2VjcmV0LCB7YXNCeXRlczogdHJ1ZX0pOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gIH1cblxuICBmdW5jdGlvbiBidWlsZENhbm9uaWNhbFJlcXVlc3QobWV0aG9kLCBwYXRoLCBxdWVyeVBhcmFtcywgaGVhZGVycywgcGF5bG9hZCkge1xuICAgIHJldHVybiBtZXRob2QgKyAnXFxuJyArXG4gICAgICBidWlsZENhbm9uaWNhbFVyaShwYXRoKSArICdcXG4nICtcbiAgICAgIGJ1aWxkQ2Fub25pY2FsUXVlcnlTdHJpbmcocXVlcnlQYXJhbXMpICsgJ1xcbicgK1xuICAgICAgYnVpbGRDYW5vbmljYWxIZWFkZXJzKGhlYWRlcnMpICsgJ1xcbicgK1xuICAgICAgYnVpbGRDYW5vbmljYWxTaWduZWRIZWFkZXJzKGhlYWRlcnMpICsgJ1xcbicgK1xuICAgICAgaGV4RW5jb2RlKGhhc2gocGF5bG9hZCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFzaENhbm9uaWNhbFJlcXVlc3QocmVxdWVzdCkge1xuICAgIHJldHVybiBoZXhFbmNvZGUoaGFzaChyZXF1ZXN0KSk7XG4gIH1cblxuICBmdW5jdGlvbiBidWlsZENhbm9uaWNhbFVyaSh1cmkpIHtcbiAgICByZXR1cm4gZW5jb2RlVVJJKHVyaSk7XG4gIH1cblxuICBmdW5jdGlvbiBidWlsZENhbm9uaWNhbFF1ZXJ5U3RyaW5nKHF1ZXJ5UGFyYW1zKSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKHF1ZXJ5UGFyYW1zKS5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgbGV0IHNvcnRlZFF1ZXJ5UGFyYW1zID0gW107XG4gICAgZm9yIChsZXQgcHJvcGVydHkgaW4gcXVlcnlQYXJhbXMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocXVlcnlQYXJhbXMsIFwicHJvcGVydHlcIikpIHtcbiAgICAgICAgc29ydGVkUXVlcnlQYXJhbXMucHVzaChwcm9wZXJ0eSk7XG4gICAgICB9XG4gICAgfVxuICAgIHNvcnRlZFF1ZXJ5UGFyYW1zLnNvcnQoKTtcblxuICAgIGxldCBjYW5vbmljYWxRdWVyeVN0cmluZyA9ICcnO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc29ydGVkUXVlcnlQYXJhbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNhbm9uaWNhbFF1ZXJ5U3RyaW5nICs9IHNvcnRlZFF1ZXJ5UGFyYW1zW2ldXG4gICAgICAgICsgJz0nICsgZml4ZWRFbmNvZGVVUklDb21wb25lbnQocXVlcnlQYXJhbXNbc29ydGVkUXVlcnlQYXJhbXNbaV1dKSArICcmJztcbiAgICB9XG4gICAgcmV0dXJuIGNhbm9uaWNhbFF1ZXJ5U3RyaW5nLnN1YnN0cigwLCBjYW5vbmljYWxRdWVyeVN0cmluZy5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZpeGVkRW5jb2RlVVJJQ29tcG9uZW50KHN0cikge1xuICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoc3RyKS5yZXBsYWNlKC9bIScoKSpdL2csIGZ1bmN0aW9uKGMpIHtcbiAgICAgIHJldHVybiAnJScgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpO1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRDYW5vbmljYWxIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICBsZXQgY2Fub25pY2FsSGVhZGVycyA9ICcnO1xuICAgIGxldCBzb3J0ZWRLZXlzID0gW107XG4gICAgZm9yIChsZXQgcHJvcGVydHkgaW4gaGVhZGVycykge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChoZWFkZXJzLCBcInByb3BlcnR5XCIpKSB7XG4gICAgICAgIHNvcnRlZEtleXMucHVzaChwcm9wZXJ0eSk7XG4gICAgICB9XG4gICAgfVxuICAgIHNvcnRlZEtleXMuc29ydCgpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzb3J0ZWRLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjYW5vbmljYWxIZWFkZXJzICs9IHNvcnRlZEtleXNbaV0udG9Mb3dlckNhc2UoKSArICc6JyArIGhlYWRlcnNbc29ydGVkS2V5c1tpXV0gKyAnXFxuJztcbiAgICB9XG4gICAgcmV0dXJuIGNhbm9uaWNhbEhlYWRlcnM7XG4gIH1cblxuICBmdW5jdGlvbiBidWlsZENhbm9uaWNhbFNpZ25lZEhlYWRlcnMoaGVhZGVycykge1xuICAgIGxldCBzb3J0ZWRLZXlzID0gW107XG4gICAgZm9yIChsZXQgcHJvcGVydHkgaW4gaGVhZGVycykge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChoZWFkZXJzLCBcInByb3BlcnR5XCIpKSB7XG4gICAgICAgIHNvcnRlZEtleXMucHVzaChwcm9wZXJ0eS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgc29ydGVkS2V5cy5zb3J0KCk7XG5cbiAgICByZXR1cm4gc29ydGVkS2V5cy5qb2luKCc7Jyk7XG4gIH1cblxuICBmdW5jdGlvbiBidWlsZFN0cmluZ1RvU2lnbihkYXRldGltZSwgY3JlZGVudGlhbFNjb3BlLCBoYXNoZWRDYW5vbmljYWxSZXF1ZXN0KSB7XG4gICAgcmV0dXJuIEFXU19TSEFfMjU2ICsgJ1xcbicgK1xuICAgICAgZGF0ZXRpbWUgKyAnXFxuJyArXG4gICAgICBjcmVkZW50aWFsU2NvcGUgKyAnXFxuJyArXG4gICAgICBoYXNoZWRDYW5vbmljYWxSZXF1ZXN0O1xuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRDcmVkZW50aWFsU2NvcGUoZGF0ZXRpbWUsIHJlZ2lvbiwgc2VydmljZSkge1xuICAgIHJldHVybiBkYXRldGltZS5zdWJzdHIoMCwgOCkgKyAnLycgKyByZWdpb24gKyAnLycgKyBzZXJ2aWNlICsgJy8nICsgQVdTNF9SRVFVRVNUO1xuICB9XG5cbiAgZnVuY3Rpb24gY2FsY3VsYXRlU2lnbmluZ0tleShzZWNyZXRLZXksIGRhdGV0aW1lLCByZWdpb24sIHNlcnZpY2UpIHtcbiAgICByZXR1cm4gaG1hYyhobWFjKGhtYWMoXG4gICAgICBobWFjKEFXUzQgKyBzZWNyZXRLZXksIGRhdGV0aW1lLnN1YnN0cigwLCA4KSksXG4gICAgICByZWdpb25cbiAgICApLCBzZXJ2aWNlKSwgQVdTNF9SRVFVRVNUKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNhbGN1bGF0ZVNpZ25hdHVyZShrZXksIHN0cmluZ1RvU2lnbikge1xuICAgIHJldHVybiBoZXhFbmNvZGUoaG1hYyhrZXksIHN0cmluZ1RvU2lnbikpO1xuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRBdXRob3JpemF0aW9uSGVhZGVyKGFjY2Vzc0tleSwgY3JlZGVudGlhbFNjb3BlLCBoZWFkZXJzLCBzaWduYXR1cmUpIHtcbiAgICByZXR1cm4gQVdTX1NIQV8yNTYgKyAnIENyZWRlbnRpYWw9JyArIGFjY2Vzc0tleSArICcvJyArIGNyZWRlbnRpYWxTY29wZVxuICAgICAgKyAnLCBTaWduZWRIZWFkZXJzPScgKyBidWlsZENhbm9uaWNhbFNpZ25lZEhlYWRlcnMoaGVhZGVycykgKyAnLCBTaWduYXR1cmU9JyArIHNpZ25hdHVyZTtcbiAgfVxuXG4gIGxldCBhd3NTaWdWNENsaWVudCA9IHsgfTtcbiAgaWYgKGNvbmZpZy5hY2Nlc3NLZXkgPT09IHVuZGVmaW5lZCB8fCBjb25maWcuc2VjcmV0S2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gYXdzU2lnVjRDbGllbnQ7XG4gIH1cbiAgYXdzU2lnVjRDbGllbnQuYWNjZXNzS2V5ID0gdXRpbHMuYXNzZXJ0RGVmaW5lZChjb25maWcuYWNjZXNzS2V5LCAnYWNjZXNzS2V5Jyk7XG4gIGF3c1NpZ1Y0Q2xpZW50LnNlY3JldEtleSA9IHV0aWxzLmFzc2VydERlZmluZWQoY29uZmlnLnNlY3JldEtleSwgJ3NlY3JldEtleScpO1xuICBhd3NTaWdWNENsaWVudC5zZXNzaW9uVG9rZW4gPSBjb25maWcuc2Vzc2lvblRva2VuO1xuICBhd3NTaWdWNENsaWVudC5zZXJ2aWNlTmFtZSA9IHV0aWxzLmFzc2VydERlZmluZWQoY29uZmlnLnNlcnZpY2VOYW1lLCAnc2VydmljZU5hbWUnKTtcbiAgYXdzU2lnVjRDbGllbnQucmVnaW9uID0gdXRpbHMuYXNzZXJ0RGVmaW5lZChjb25maWcucmVnaW9uLCAncmVnaW9uJyk7XG4gIGF3c1NpZ1Y0Q2xpZW50LmVuZHBvaW50ID0gdXRpbHMuYXNzZXJ0RGVmaW5lZChjb25maWcuZW5kcG9pbnQsICdlbmRwb2ludCcpO1xuICBhd3NTaWdWNENsaWVudC5yZXRyaWVzID0gY29uZmlnLnJldHJpZXM7XG4gIGF3c1NpZ1Y0Q2xpZW50LnJldHJ5Q29uZGl0aW9uID0gY29uZmlnLnJldHJ5Q29uZGl0aW9uO1xuICBhd3NTaWdWNENsaWVudC5yZXRyeURlbGF5ID0gY29uZmlnLnJldHJ5RGVsYXk7XG4gIGF3c1NpZ1Y0Q2xpZW50Lmhvc3QgPSBjb25maWcuaG9zdDtcblxuICBhd3NTaWdWNENsaWVudC5tYWtlUmVxdWVzdCA9IGZ1bmN0aW9uKHJlcXVlc3QpIHtcbiAgICBsZXQgdmVyYiA9IHV0aWxzLmFzc2VydERlZmluZWQocmVxdWVzdC52ZXJiLCAndmVyYicpO1xuICAgIGxldCBwYXRoID0gdXRpbHMuYXNzZXJ0RGVmaW5lZChyZXF1ZXN0LnBhdGgsICdwYXRoJyk7XG4gICAgbGV0IHF1ZXJ5UGFyYW1zID0gdXRpbHMuY29weShyZXF1ZXN0LnF1ZXJ5UGFyYW1zKTtcbiAgICBsZXQgdGltZW91dCA9IHV0aWxzLmNvcHkocmVxdWVzdC50aW1lb3V0KTtcblxuICAgIGlmIChxdWVyeVBhcmFtcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIH1cblxuICAgIGlmICh0aW1lb3V0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRpbWVvdXQgPSAwO1xuICAgIH1cbiAgICBsZXQgaGVhZGVycyA9IHV0aWxzLmNvcHkocmVxdWVzdC5oZWFkZXJzKTtcbiAgICBpZiAoaGVhZGVycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBoZWFkZXJzID0ge307XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIHVzZXIgaGFzIG5vdCBzcGVjaWZpZWQgYW4gb3ZlcnJpZGUgZm9yIENvbnRlbnQgdHlwZSB0aGUgdXNlIGRlZmF1bHRcbiAgICBpZiAoaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSBjb25maWcuZGVmYXVsdENvbnRlbnRUeXBlO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSB1c2VyIGhhcyBub3Qgc3BlY2lmaWVkIGFuIG92ZXJyaWRlIGZvciBBY2NlcHQgdHlwZSB0aGUgdXNlIGRlZmF1bHRcbiAgICBpZiAoaGVhZGVyc1snQWNjZXB0J10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgaGVhZGVyc1snQWNjZXB0J10gPSBjb25maWcuZGVmYXVsdEFjY2VwdFR5cGU7XG4gICAgfVxuXG4gICAgbGV0IGJvZHkgPSB1dGlscy5jb3B5KHJlcXVlc3QuYm9keSk7XG5cbiAgICAvLyBzdHJpbmdpZnkgcmVxdWVzdCBib2R5IGlmIGNvbnRlbnQgdHlwZSBpcyBKU09OXG4gICAgaWYgKGJvZHkgJiYgaGVhZGVyc1snQ29udGVudC1UeXBlJ10gJiYgaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPT09ICdhcHBsaWNhdGlvbi9qc29uJykge1xuICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuICAgIH1cblxuICAgIC8vIElmIHRoZXJlIGlzIG5vIGJvZHkgcmVtb3ZlIHRoZSBjb250ZW50LXR5cGUgaGVhZGVyIHNvIGl0IGlzIG5vdCBpbmNsdWRlZCBpbiBTaWdWNCBjYWxjdWxhdGlvblxuICAgIGlmIChib2R5ID09PSAnJyB8fCBib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgZGVsZXRlIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICAgIH1cblxuICAgIGxldCBkYXRldGltZSA9IG5ldyBEYXRlKG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0KS50b0lTT1N0cmluZygpXG4gICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcLlxcZHszfVokLywgJ1onKS5yZXBsYWNlKC9bOi1dfFxcLlxcZHszfS9nLCAnJyk7XG4gICAgaGVhZGVyc1tYX0FNWl9EQVRFXSA9IGRhdGV0aW1lO1xuXG4gICAgaWYgKGF3c1NpZ1Y0Q2xpZW50Lmhvc3QpIHtcbiAgICAgIGhlYWRlcnNbSE9TVF0gPSBhd3NTaWdWNENsaWVudC5ob3N0O1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgcGFyc2VyID0gdXJsUGFyc2VyLnBhcnNlKGF3c1NpZ1Y0Q2xpZW50LmVuZHBvaW50KTtcbiAgICAgIGhlYWRlcnNbSE9TVF0gPSBwYXJzZXIuaG9zdG5hbWU7XG4gICAgfVxuXG4gICAgbGV0IGNhbm9uaWNhbFJlcXVlc3QgPSBidWlsZENhbm9uaWNhbFJlcXVlc3QodmVyYiwgcGF0aCwgcXVlcnlQYXJhbXMsIGhlYWRlcnMsIGJvZHkpO1xuICAgIGxldCBoYXNoZWRDYW5vbmljYWxSZXF1ZXN0ID0gaGFzaENhbm9uaWNhbFJlcXVlc3QoY2Fub25pY2FsUmVxdWVzdCk7XG4gICAgbGV0IGNyZWRlbnRpYWxTY29wZSA9IGJ1aWxkQ3JlZGVudGlhbFNjb3BlKFxuICAgICAgZGF0ZXRpbWUsXG4gICAgICBhd3NTaWdWNENsaWVudC5yZWdpb24sXG4gICAgICBhd3NTaWdWNENsaWVudC5zZXJ2aWNlTmFtZVxuICAgICk7XG4gICAgbGV0IHN0cmluZ1RvU2lnbiA9IGJ1aWxkU3RyaW5nVG9TaWduKGRhdGV0aW1lLCBjcmVkZW50aWFsU2NvcGUsIGhhc2hlZENhbm9uaWNhbFJlcXVlc3QpO1xuICAgIGxldCBzaWduaW5nS2V5ID0gY2FsY3VsYXRlU2lnbmluZ0tleShcbiAgICAgIGF3c1NpZ1Y0Q2xpZW50LnNlY3JldEtleSxcbiAgICAgIGRhdGV0aW1lLFxuICAgICAgYXdzU2lnVjRDbGllbnQucmVnaW9uLFxuICAgICAgYXdzU2lnVjRDbGllbnQuc2VydmljZU5hbWVcbiAgICApO1xuICAgIGxldCBzaWduYXR1cmUgPSBjYWxjdWxhdGVTaWduYXR1cmUoc2lnbmluZ0tleSwgc3RyaW5nVG9TaWduKTtcbiAgICBoZWFkZXJzW0FVVEhPUklaQVRJT05dID0gYnVpbGRBdXRob3JpemF0aW9uSGVhZGVyKFxuICAgICAgYXdzU2lnVjRDbGllbnQuYWNjZXNzS2V5LFxuICAgICAgY3JlZGVudGlhbFNjb3BlLFxuICAgICAgaGVhZGVycyxcbiAgICAgIHNpZ25hdHVyZVxuICAgICk7XG4gICAgaWYgKGF3c1NpZ1Y0Q2xpZW50LnNlc3Npb25Ub2tlbiAhPT0gdW5kZWZpbmVkICYmIGF3c1NpZ1Y0Q2xpZW50LnNlc3Npb25Ub2tlbiAhPT0gJycpIHtcbiAgICAgIGhlYWRlcnNbWF9BTVpfU0VDVVJJVFlfVE9LRU5dID0gYXdzU2lnVjRDbGllbnQuc2Vzc2lvblRva2VuO1xuICAgIH1cbiAgICBkZWxldGUgaGVhZGVyc1tIT1NUXTtcblxuICAgIGxldCB1cmwgPSBjb25maWcuZW5kcG9pbnQgKyBwYXRoO1xuICAgIGxldCBxdWVyeVN0cmluZyA9IGJ1aWxkQ2Fub25pY2FsUXVlcnlTdHJpbmcocXVlcnlQYXJhbXMpO1xuICAgIGlmIChxdWVyeVN0cmluZyAhPT0gJycpIHtcbiAgICAgIHVybCArPSAnPycgKyBxdWVyeVN0cmluZztcbiAgICB9XG5cbiAgICAvLyBOZWVkIHRvIHJlLWF0dGFjaCBDb250ZW50LVR5cGUgaWYgaXQgaXMgbm90IHNwZWNpZmllZCBhdCB0aGlzIHBvaW50XG4gICAgaWYgKGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gY29uZmlnLmRlZmF1bHRDb250ZW50VHlwZTtcbiAgICB9XG5cbiAgICBsZXQgc2lnbmVkUmVxdWVzdCA9IHtcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICB0aW1lb3V0OiB0aW1lb3V0LFxuICAgICAgZGF0YTogYm9keVxuICAgIH07XG4gICAgaWYgKGNvbmZpZy5yZXRyaWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHNpZ25lZFJlcXVlc3QuYmFzZVVSTCA9IHVybDtcbiAgICAgIGxldCBjbGllbnQgPSBheGlvcy5jcmVhdGUoc2lnbmVkUmVxdWVzdCk7XG5cbiAgICAgIC8vIEFsbG93IHVzZXIgY29uZmlndXJhYmxlIGRlbGF5LCBvciBidWlsdC1pbiBleHBvbmVudGlhbCBkZWxheVxuICAgICAgbGV0IHJldHJ5RGVsYXkgPSBmdW5jdGlvbigpIHtcbiByZXR1cm4gMDtcbn07XG4gICAgICBpZiAoY29uZmlnLnJldHJ5RGVsYXkgPT09ICdleHBvbmVudGlhbCcpIHtcbiAgICAgICAgcmV0cnlEZWxheSA9IGF4aW9zUmV0cnkuZXhwb25lbnRpYWxEZWxheTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbmZpZy5yZXRyeURlbGF5ID09PSAnbnVtYmVyJykge1xuICAgICAgICByZXRyeURlbGF5ID0gKCkgPT4gcGFyc2VJbnQoY29uZmlnLnJldHJ5RGVsYXkpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY29uZmlnLnJldHJ5RGVsYXkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0cnlEZWxheSA9IGNvbmZpZy5yZXRyeURlbGF5O1xuICAgICAgfVxuXG4gICAgICBheGlvc1JldHJ5KGNsaWVudCwge1xuICAgICAgICByZXRyaWVzOiBjb25maWcucmV0cmllcyxcbiAgICAgICAgcmV0cnlDb25kaXRpb246IGNvbmZpZy5yZXRyeUNvbmRpdGlvbixcbiAgICAgICAgcmV0cnlEZWxheSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNsaWVudC5yZXF1ZXN0KHttZXRob2Q6IHZlcmJ9KTtcbiAgICB9XG4gICAgc2lnbmVkUmVxdWVzdC5tZXRob2QgPSB2ZXJiO1xuICAgIHNpZ25lZFJlcXVlc3QudXJsID0gdXJsO1xuICAgIHJldHVybiBheGlvcyhzaWduZWRSZXF1ZXN0KTtcbiAgfTtcblxuICByZXR1cm4gYXdzU2lnVjRDbGllbnQ7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBzaWdWNENsaWVudEZhY3Rvcnk7XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYXBpR2F0ZXdheUNvcmUvc2lnVjRDbGllbnQuanMiXSwibmFtZXMiOlsic2lnVjRDbGllbnRGYWN0b3J5IiwibmV3Q2xpZW50IiwiY29uZmlnIiwiQVdTX1NIQV8yNTYiLCJBV1M0X1JFUVVFU1QiLCJBV1M0IiwiWF9BTVpfREFURSIsIlhfQU1aX1NFQ1VSSVRZX1RPS0VOIiwiSE9TVCIsIkFVVEhPUklaQVRJT04iLCJoYXNoIiwidmFsdWUiLCJoZXhFbmNvZGUiLCJ0b1N0cmluZyIsImVuY0hleCIsImhtYWMiLCJzZWNyZXQiLCJhc0J5dGVzIiwiYnVpbGRDYW5vbmljYWxSZXF1ZXN0IiwibWV0aG9kIiwicGF0aCIsInF1ZXJ5UGFyYW1zIiwiaGVhZGVycyIsInBheWxvYWQiLCJidWlsZENhbm9uaWNhbFVyaSIsImJ1aWxkQ2Fub25pY2FsUXVlcnlTdHJpbmciLCJidWlsZENhbm9uaWNhbEhlYWRlcnMiLCJidWlsZENhbm9uaWNhbFNpZ25lZEhlYWRlcnMiLCJoYXNoQ2Fub25pY2FsUmVxdWVzdCIsInJlcXVlc3QiLCJ1cmkiLCJlbmNvZGVVUkkiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwic29ydGVkUXVlcnlQYXJhbXMiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInB1c2giLCJzb3J0IiwiY2Fub25pY2FsUXVlcnlTdHJpbmciLCJpIiwiZml4ZWRFbmNvZGVVUklDb21wb25lbnQiLCJzdWJzdHIiLCJzdHIiLCJlbmNvZGVVUklDb21wb25lbnQiLCJyZXBsYWNlIiwiYyIsImNoYXJDb2RlQXQiLCJjYW5vbmljYWxIZWFkZXJzIiwic29ydGVkS2V5cyIsInRvTG93ZXJDYXNlIiwiam9pbiIsImJ1aWxkU3RyaW5nVG9TaWduIiwiZGF0ZXRpbWUiLCJjcmVkZW50aWFsU2NvcGUiLCJoYXNoZWRDYW5vbmljYWxSZXF1ZXN0IiwiYnVpbGRDcmVkZW50aWFsU2NvcGUiLCJyZWdpb24iLCJzZXJ2aWNlIiwiY2FsY3VsYXRlU2lnbmluZ0tleSIsInNlY3JldEtleSIsImNhbGN1bGF0ZVNpZ25hdHVyZSIsImtleSIsInN0cmluZ1RvU2lnbiIsImJ1aWxkQXV0aG9yaXphdGlvbkhlYWRlciIsImFjY2Vzc0tleSIsInNpZ25hdHVyZSIsImF3c1NpZ1Y0Q2xpZW50IiwidW5kZWZpbmVkIiwidXRpbHMiLCJhc3NlcnREZWZpbmVkIiwic2Vzc2lvblRva2VuIiwic2VydmljZU5hbWUiLCJlbmRwb2ludCIsInJldHJpZXMiLCJyZXRyeUNvbmRpdGlvbiIsInJldHJ5RGVsYXkiLCJob3N0IiwibWFrZVJlcXVlc3QiLCJ2ZXJiIiwiY29weSIsInRpbWVvdXQiLCJkZWZhdWx0Q29udGVudFR5cGUiLCJkZWZhdWx0QWNjZXB0VHlwZSIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwiRGF0ZSIsImdldFRpbWUiLCJzeXN0ZW1DbG9ja09mZnNldCIsInRvSVNPU3RyaW5nIiwicGFyc2VyIiwidXJsUGFyc2VyIiwicGFyc2UiLCJob3N0bmFtZSIsImNhbm9uaWNhbFJlcXVlc3QiLCJzaWduaW5nS2V5IiwidXJsIiwicXVlcnlTdHJpbmciLCJzaWduZWRSZXF1ZXN0IiwiZGF0YSIsImJhc2VVUkwiLCJjbGllbnQiLCJheGlvcyIsImNyZWF0ZSIsImF4aW9zUmV0cnkiLCJleHBvbmVudGlhbERlbGF5IiwicGFyc2VJbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQWVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQXJCQTs7Ozs7Ozs7Ozs7Ozs7QUF1QkEsSUFBTUEsa0JBQWtCLEdBQUcsRUFBM0I7O0FBQ0FBLGtCQUFrQixDQUFDQyxTQUFuQixHQUErQixVQUFTQyxNQUFULEVBQWlCO0FBQzlDLE1BQUlDLFdBQVcsR0FBRyxrQkFBbEI7QUFDQSxNQUFJQyxZQUFZLEdBQUcsY0FBbkI7QUFDQSxNQUFJQyxJQUFJLEdBQUcsTUFBWDtBQUNBLE1BQUlDLFVBQVUsR0FBRyxZQUFqQjtB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NUIsUUFBQUEsT0FBTyxFQUFFM0UsTUFBTSxDQUFDMkUsT0FEQztBQUVqQkMsUUFBQUEsY0FBYyxFQUFFNUUsTUFBTSxDQUFDNEUsY0FGTjtBQUdqQkMsUUFBQUEsVUFBVSxFQUFWQTtBQUhpQixPQUFuQjtBQUtBLGFBQU8wQixNQUFNLENBQUM1RSxPQUFQLENBQWU7QUFBQ1YsUUFBQUEsTUFBTSxFQUFFK0Q7QUFBVCxPQUFmLENBQVA7QUFDRDs7QUFDRG9CLElBQUFBLGFBQWEsQ0FBQ25GLE1BQWQsR0FBdUIrRCxJQUF2QjtBQUNBb0IsSUFBQUEsYUFBYSxDQUFDRixHQUFkLEdBQW9CQSxHQUFwQjtBQUNBLFdBQU8sdUJBQU1FLGFBQU4sQ0FBUDtBQUNELEdBdkhEOztBQXlIQSxTQUFPaEMsY0FBUDtBQUNELENBalFEOztlQW1RZXRFLGtCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDEwLTIwMTYgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLlxuICogWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgaHR0cDovL2F3cy5hbWF6b24uY29tL2FwYWNoZTIuMFxuICpcbiAqIG9yIGluIHRoZSBcImxpY2Vuc2VcIiBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZFxuICogb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyXG4gKiBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZ1xuICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgYXhpb3NSZXRyeSBmcm9tICdheGlvcy1yZXRyeSc7XG5pbXBvcnQgU0hBMjU2IGZyb20gJ2NyeXB0by1qcy9zaGEyNTYnO1xuaW1wb3J0IGVuY0hleCBmcm9tICdjcnlwdG8tanMvZW5jLWhleCc7XG5pbXBvcnQgSG1hY1NIQTI1NiBmcm9tICdjcnlwdG8tanMvaG1hYy1zaGEyNTYnO1xuaW1wb3J0IHVybFBhcnNlciBmcm9tICd1cmwnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBzaWdWNENsaWVudEZhY3RvcnkgPSB7fTtcbnNpZ1Y0Q2xpZW50RmFjdG9yeS5uZXdDbGllbnQgPSBmdW5jdGlvbihjb25maWcpIHtcbiAgbGV0IEFXU19TSEFfMjU2ID0gJ0FXUzQtSE1BQy1TSEEyNTYnO1xuICBsZXQgQVdTNF9SRVFVRVNUID0gJ2F3czRfcmVxdWVzdCc7XG4gIGxldCBBV1M0ID0gJ0FXUzQnO1xuICBsZXQgWF9BTVpfREFURSA9ICd4LWFtei1kYXRlJztcbiAgbGV0IFhfQU1aX1NFQ1VSSVRZX1RPS0VOID0gJ3gtYW16LXNlY3VyaXR5LXRva2VuJztcbiAgbGV0IEhPU1QgPSAnaG9zdCc7XG4gIGxldCBBVVRIT1JJWkFUSU9OID0gJ0F1dGhvcml6YXRpb24nO1xuXG4gIGZ1bmN0aW9uIGhhc2godmFsdWUpIHtcbiAgICByZXR1cm4gU0hBMjU2KHZhbHVlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICB9XG5cbiAgZnVuY3Rpb24gaGV4RW5jb2RlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKGVuY0hleCk7XG4gIH1cblxuICBmdW5jdGlvbiBobWFjKHNlY3JldCwgdmFsdWUpIHtcbiAgICByZXR1cm4gSG1hY1NIQTI1Nih2YWx1ZSwgc2VjcmV0LCB7YXNCeXRlczogdHJ1ZX0pOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gIH1cblxuICBmdW5jdGlvbiBidWlsZENhbm9uaWNhbFJlcXVlc3QobWV0aG9kLCBwYXRoLCBxdWVyeVBhcmFtcywgaGVhZGVycywgcGF5bG9hZCkge1xuICAgIHJldHVybiBtZXRob2QgKyAnXFxuJyArXG4gICAgICBidWlsZENhbm9uaWNhbFVyaShwYXRoKSArICdcXG4nICtcbiAgICAgIGJ1aWxkQ2Fub25pY2FsUXVlcnlTdHJpbmcocXVlcnlQYXJhbXMpICsgJ1xcbicgK1xuICAgICAgYnVpbGRDYW5vbmljYWxIZWFkZXJzKGhlYWRlcnMpICsgJ1xcbicgK1xuICAgICAgYnVpbGRDYW5vbmljYWxTaWduZWRIZWFkZXJzKGhlYWRlcnMpICsgJ1xcbicgK1xuICAgICAgaGV4RW5jb2RlKGhhc2gocGF5bG9hZCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFzaENhbm9uaWNhbFJlcXVlc3QocmVxdWVzdCkge1xuICAgIHJldHVybiBoZXhFbmNvZGUoaGFzaChyZXF1ZXN0KSk7XG4gIH1cblxuICBmdW5jdGlvbiBidWlsZENhbm9uaWNhbFVyaSh1cmkpIHtcbiAgICByZXR1cm4gZW5jb2RlVVJJKHVyaSk7XG4gIH1cblxuICBmdW5jdGlvbiBidWlsZENhbm9uaWNhbFF1ZXJ5U3RyaW5nKHF1ZXJ5UGFyYW1zKSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKHF1ZXJ5UGFyYW1zKS5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgbGV0IHNvcnRlZFF1ZXJ5UGFyYW1zID0gW107XG4gICAgZm9yIChsZXQgcHJvcGVydHkgaW4gcXVlcnlQYXJhbXMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocXVlcnlQYXJhbXMsIHByb3BlcnR5KSkge1xuICAgICAgICBzb3J0ZWRRdWVyeVBhcmFtcy5wdXNoKHByb3BlcnR5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgc29ydGVkUXVlcnlQYXJhbXMuc29ydCgpO1xuXG4gICAgbGV0IGNhbm9uaWNhbFF1ZXJ5U3RyaW5nID0gJyc7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzb3J0ZWRRdWVyeVBhcmFtcy5sZW5ndGg7IGkrKykge1xuICAgICAgY2Fub25pY2FsUXVlcnlTdHJpbmcgKz0gc29ydGVkUXVlcnlQYXJhbXNbaV1cbiAgICAgICAgKyAnPScgKyBmaXhlZEVuY29kZVVSSUNvbXBvbmVudChxdWVyeVBhcmFtc1tzb3J0ZWRRdWVyeVBhcmFtc1tpXV0pICsgJyYnO1xuICAgIH1cbiAgICByZXR1cm4gY2Fub25pY2FsUXVlcnlTdHJpbmcuc3Vic3RyKDAsIGNhbm9uaWNhbFF1ZXJ5U3RyaW5nLmxlbmd0aCAtIDEpO1xuICB9XG5cbiAgZnVuY3Rpb24gZml4ZWRFbmNvZGVVUklDb21wb25lbnQoc3RyKSB7XG4gICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChzdHIpLnJlcGxhY2UoL1shJygpKl0vZywgZnVuY3Rpb24oYykge1xuICAgICAgcmV0dXJuICclJyArIGMuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNik7XG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBidWlsZENhbm9uaWNhbEhlYWRlcnMoaGVhZGVycykge1xuICAgIGxldCBjYW5vbmljYWxIZWFkZXJzID0gJyc7XG4gICAgbGV0IHNvcnRlZEtleXMgPSBbXTtcbiAgICBmb3IgKGxldCBwcm9wZXJ0eSBpbiBoZWFkZXJzKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGhlYWRlcnMsIHByb3BlcnR5KSkge1xuICAgICAgICBzb3J0ZWRLZXlzLnB1c2gocHJvcGVydHkpO1xuICAgICAgfVxuICAgIH1cbiAgICBzb3J0ZWRLZXlzLnNvcnQoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc29ydGVkS2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgY2Fub25pY2FsSGVhZGVycyArPSBzb3J0ZWRLZXlzW2ldLnRvTG93ZXJDYXNlKCkgKyAnOicgKyBoZWFkZXJzW3NvcnRlZEtleXNbaV1dICsgJ1xcbic7XG4gICAgfVxuICAgIHJldHVybiBjYW5vbmljYWxIZWFkZXJzO1xuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRDYW5vbmljYWxTaWduZWRIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICBsZXQgc29ydGVkS2V5cyA9IFtdO1xuICAgIGZvciAobGV0IHByb3BlcnR5IGluIGhlYWRlcnMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaGVhZGVycywgcHJvcGVydHkpKSB7XG4gICAgICAgIHNvcnRlZEtleXMucHVzaChwcm9wZXJ0eS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgc29ydGVkS2V5cy5zb3J0KCk7XG5cbiAgICByZXR1cm4gc29ydGVkS2V5cy5qb2luKCc7Jyk7XG4gIH1cblxuICBmdW5jdGlvbiBidWlsZFN0cmluZ1RvU2lnbihkYXRldGltZSwgY3JlZGVudGlhbFNjb3BlLCBoYXNoZWRDYW5vbmljYWxSZXF1ZXN0KSB7XG4gICAgcmV0dXJuIEFXU19TSEFfMjU2ICsgJ1xcbicgK1xuICAgICAgZGF0ZXRpbWUgKyAnXFxuJyArXG4gICAgICBjcmVkZW50aWFsU2NvcGUgKyAnXFxuJyArXG4gICAgICBoYXNoZWRDYW5vbmljYWxSZXF1ZXN0O1xuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRDcmVkZW50aWFsU2NvcGUoZGF0ZXRpbWUsIHJlZ2lvbiwgc2VydmljZSkge1xuICAgIHJldHVybiBkYXRldGltZS5zdWJzdHIoMCwgOCkgKyAnLycgKyByZWdpb24gKyAnLycgKyBzZXJ2aWNlICsgJy8nICsgQVdTNF9SRVFVRVNUO1xuICB9XG5cbiAgZnVuY3Rpb24gY2FsY3VsYXRlU2lnbmluZ0tleShzZWNyZXRLZXksIGRhdGV0aW1lLCByZWdpb24sIHNlcnZpY2UpIHtcbiAgICByZXR1cm4gaG1hYyhobWFjKGhtYWMoXG4gICAgICBobWFjKEFXUzQgKyBzZWNyZXRLZXksIGRhdGV0aW1lLnN1YnN0cigwLCA4KSksXG4gICAgICByZWdpb25cbiAgICApLCBzZXJ2aWNlKSwgQVdTNF9SRVFVRVNUKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNhbGN1bGF0ZVNpZ25hdHVyZShrZXksIHN0cmluZ1RvU2lnbikge1xuICAgIHJldHVybiBoZXhFbmNvZGUoaG1hYyhrZXksIHN0cmluZ1RvU2lnbikpO1xuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRBdXRob3JpemF0aW9uSGVhZGVyKGFjY2Vzc0tleSwgY3JlZGVudGlhbFNjb3BlLCBoZWFkZXJzLCBzaWduYXR1cmUpIHtcbiAgICByZXR1cm4gQVdTX1NIQV8yNTYgKyAnIENyZWRlbnRpYWw9JyArIGFjY2Vzc0tleSArICcvJyArIGNyZWRlbnRpYWxTY29wZVxuICAgICAgKyAnLCBTaWduZWRIZWFkZXJzPScgKyBidWlsZENhbm9uaWNhbFNpZ25lZEhlYWRlcnMoaGVhZGVycykgKyAnLCBTaWduYXR1cmU9JyArIHNpZ25hdHVyZTtcbiAgfVxuXG4gIGxldCBhd3NTaWdWNENsaWVudCA9IHsgfTtcbiAgaWYgKGNvbmZpZy5hY2Nlc3NLZXkgPT09IHVuZGVmaW5lZCB8fCBjb25maWcuc2VjcmV0S2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gYXdzU2lnVjRDbGllbnQ7XG4gIH1cbiAgYXdzU2lnVjRDbGllbnQuYWNjZXNzS2V5ID0gdXRpbHMuYXNzZXJ0RGVmaW5lZChjb25maWcuYWNjZXNzS2V5LCAnYWNjZXNzS2V5Jyk7XG4gIGF3c1NpZ1Y0Q2xpZW50LnNlY3JldEtleSA9IHV0aWxzLmFzc2VydERlZmluZWQoY29uZmlnLnNlY3JldEtleSwgJ3NlY3JldEtleScpO1xuICBhd3NTaWdWNENsaWVudC5zZXNzaW9uVG9rZW4gPSBjb25maWcuc2Vzc2lvblRva2VuO1xuICBhd3NTaWdWNENsaWVudC5zZXJ2aWNlTmFtZSA9IHV0aWxzLmFzc2VydERlZmluZWQoY29uZmlnLnNlcnZpY2VOYW1lLCAnc2VydmljZU5hbWUnKTtcbiAgYXdzU2lnVjRDbGllbnQucmVnaW9uID0gdXRpbHMuYXNzZXJ0RGVmaW5lZChjb25maWcucmVnaW9uLCAncmVnaW9uJyk7XG4gIGF3c1NpZ1Y0Q2xpZW50LmVuZHBvaW50ID0gdXRpbHMuYXNzZXJ0RGVmaW5lZChjb25maWcuZW5kcG9pbnQsICdlbmRwb2ludCcpO1xuICBhd3NTaWdWNENsaWVudC5yZXRyaWVzID0gY29uZmlnLnJldHJpZXM7XG4gIGF3c1NpZ1Y0Q2xpZW50LnJldHJ5Q29uZGl0aW9uID0gY29uZmlnLnJldHJ5Q29uZGl0aW9uO1xuICBhd3NTaWdWNENsaWVudC5yZXRyeURlbGF5ID0gY29uZmlnLnJldHJ5RGVsYXk7XG4gIGF3c1NpZ1Y0Q2xpZW50Lmhvc3QgPSBjb25maWcuaG9zdDtcblxuICBhd3NTaWdWNENsaWVudC5tYWtlUmVxdWVzdCA9IGZ1bmN0aW9uKHJlcXVlc3QpIHtcbiAgICBsZXQgdmVyYiA9IHV0aWxzLmFzc2VydERlZmluZWQocmVxdWVzdC52ZXJiLCAndmVyYicpO1xuICAgIGxldCBwYXRoID0gdXRpbHMuYXNzZXJ0RGVmaW5lZChyZXF1ZXN0LnBhdGgsICdwYXRoJyk7XG4gICAgbGV0IHF1ZXJ5UGFyYW1zID0gdXRpbHMuY29weShyZXF1ZXN0LnF1ZXJ5UGFyYW1zKTtcbiAgICBsZXQgdGltZW91dCA9IHV0aWxzLmNvcHkocmVxdWVzdC50aW1lb3V0KTtcblxuICAgIGlmIChxdWVyeVBhcmFtcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIH1cblxuICAgIGlmICh0aW1lb3V0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRpbWVvdXQgPSAwO1xuICAgIH1cbiAgICBsZXQgaGVhZGVycyA9IHV0aWxzLmNvcHkocmVxdWVzdC5oZWFkZXJzKTtcbiAgICBpZiAoaGVhZGVycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBoZWFkZXJzID0ge307XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIHVzZXIgaGFzIG5vdCBzcGVjaWZpZWQgYW4gb3ZlcnJpZGUgZm9yIENvbnRlbnQgdHlwZSB0aGUgdXNlIGRlZmF1bHRcbiAgICBpZiAoaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSBjb25maWcuZGVmYXVsdENvbnRlbnRUeXBlO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSB1c2VyIGhhcyBub3Qgc3BlY2lmaWVkIGFuIG92ZXJyaWRlIGZvciBBY2NlcHQgdHlwZSB0aGUgdXNlIGRlZmF1bHRcbiAgICBpZiAoaGVhZGVyc1snQWNjZXB0J10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgaGVhZGVyc1snQWNjZXB0J10gPSBjb25maWcuZGVmYXVsdEFjY2VwdFR5cGU7XG4gICAgfVxuXG4gICAgbGV0IGJvZHkgPSB1dGlscy5jb3B5KHJlcXVlc3QuYm9keSk7XG5cbiAgICAvLyBzdHJpbmdpZnkgcmVxdWVzdCBib2R5IGlmIGNvbnRlbnQgdHlwZSBpcyBKU09OXG4gICAgaWYgKGJvZHkgJiYgaGVhZGVyc1snQ29udGVudC1UeXBlJ10gJiYgaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPT09ICdhcHBsaWNhdGlvbi9qc29uJykge1xuICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuICAgIH1cblxuICAgIC8vIElmIHRoZXJlIGlzIG5vIGJvZHkgcmVtb3ZlIHRoZSBjb250ZW50LXR5cGUgaGVhZGVyIHNvIGl0IGlzIG5vdCBpbmNsdWRlZCBpbiBTaWdWNCBjYWxjdWxhdGlvblxuICAgIGlmIChib2R5ID09PSAnJyB8fCBib2R5ID09PSB1bmRlZmluZWQgfHwgYm9keSA9PT0gbnVsbCkge1xuICAgICAgZGVsZXRlIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICAgIH1cblxuICAgIGxldCBkYXRldGltZSA9IG5ldyBEYXRlKG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgY29uZmlnLnN5c3RlbUNsb2NrT2Zmc2V0KS50b0lTT1N0cmluZygpXG4gICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcLlxcZHszfVokLywgJ1onKS5yZXBsYWNlKC9bOi1dfFxcLlxcZHszfS9nLCAnJyk7XG4gICAgaGVhZGVyc1tYX0FNWl9EQVRFXSA9IGRhdGV0aW1lO1xuXG4gICAgaWYgKGF3c1NpZ1Y0Q2xpZW50Lmhvc3QpIHtcbiAgICAgIGhlYWRlcnNbSE9TVF0gPSBhd3NTaWdWNENsaWVudC5ob3N0O1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgcGFyc2VyID0gdXJsUGFyc2VyLnBhcnNlKGF3c1NpZ1Y0Q2xpZW50LmVuZHBvaW50KTtcbiAgICAgIGhlYWRlcnNbSE9TVF0gPSBwYXJzZXIuaG9zdG5hbWU7XG4gICAgfVxuXG4gICAgbGV0IGNhbm9uaWNhbFJlcXVlc3QgPSBidWlsZENhbm9uaWNhbFJlcXVlc3QodmVyYiwgcGF0aCwgcXVlcnlQYXJhbXMsIGhlYWRlcnMsIGJvZHkpO1xuICAgIGxldCBoYXNoZWRDYW5vbmljYWxSZXF1ZXN0ID0gaGFzaENhbm9uaWNhbFJlcXVlc3QoY2Fub25pY2FsUmVxdWVzdCk7XG4gICAgbGV0IGNyZWRlbnRpYWxTY29wZSA9IGJ1aWxkQ3JlZGVudGlhbFNjb3BlKFxuICAgICAgZGF0ZXRpbWUsXG4gICAgICBhd3NTaWdWNENsaWVudC5yZWdpb24sXG4gICAgICBhd3NTaWdWNENsaWVudC5zZXJ2aWNlTmFtZVxuICAgICk7XG4gICAgbGV0IHN0cmluZ1RvU2lnbiA9IGJ1aWxkU3RyaW5nVG9TaWduKGRhdGV0aW1lLCBjcmVkZW50aWFsU2NvcGUsIGhhc2hlZENhbm9uaWNhbFJlcXVlc3QpO1xuICAgIGxldCBzaWduaW5nS2V5ID0gY2FsY3VsYXRlU2lnbmluZ0tleShcbiAgICAgIGF3c1NpZ1Y0Q2xpZW50LnNlY3JldEtleSxcbiAgICAgIGRhdGV0aW1lLFxuICAgICAgYXdzU2lnVjRDbGllbnQucmVnaW9uLFxuICAgICAgYXdzU2lnVjRDbGllbnQuc2VydmljZU5hbWVcbiAgICApO1xuICAgIGxldCBzaWduYXR1cmUgPSBjYWxjdWxhdGVTaWduYXR1cmUoc2lnbmluZ0tleSwgc3RyaW5nVG9TaWduKTtcbiAgICBoZWFkZXJzW0FVVEhPUklaQVRJT05dID0gYnVpbGRBdXRob3JpemF0aW9uSGVhZGVyKFxuICAgICAgYXdzU2lnVjRDbGllbnQuYWNjZXNzS2V5LFxuICAgICAgY3JlZGVudGlhbFNjb3BlLFxuICAgICAgaGVhZGVycyxcbiAgICAgIHNpZ25hdHVyZVxuICAgICk7XG4gICAgaWYgKGF3c1NpZ1Y0Q2xpZW50LnNlc3Npb25Ub2tlbiAhPT0gdW5kZWZpbmVkICYmIGF3c1NpZ1Y0Q2xpZW50LnNlc3Npb25Ub2tlbiAhPT0gJycpIHtcbiAgICAgIGhlYWRlcnNbWF9BTVpfU0VDVVJJVFlfVE9LRU5dID0gYXdzU2lnVjRDbGllbnQuc2Vzc2lvblRva2VuO1xuICAgIH1cbiAgICBkZWxldGUgaGVhZGVyc1tIT1NUXTtcblxuICAgIGxldCB1cmwgPSBjb25maWcuZW5kcG9pbnQgKyBwYXRoO1xuICAgIGxldCBxdWVyeVN0cmluZyA9IGJ1aWxkQ2Fub25pY2FsUXVlcnlTdHJpbmcocXVlcnlQYXJhbXMpO1xuICAgIGlmIChxdWVyeVN0cmluZyAhPT0gJycpIHtcbiAgICAgIHVybCArPSAnPycgKyBxdWVyeVN0cmluZztcbiAgICB9XG5cbiAgICAvLyBOZWVkIHRvIHJlLWF0dGFjaCBDb250ZW50LVR5cGUgaWYgaXQgaXMgbm90IHNwZWNpZmllZCBhdCB0aGlzIHBvaW50XG4gICAgaWYgKGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gY29uZmlnLmRlZmF1bHRDb250ZW50VHlwZTtcbiAgICB9XG5cbiAgICBsZXQgc2lnbmVkUmVxdWVzdCA9IHtcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICB0aW1lb3V0OiB0aW1lb3V0LFxuICAgICAgZGF0YTogYm9keVxuICAgIH07XG4gICAgaWYgKGNvbmZpZy5yZXRyaWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHNpZ25lZFJlcXVlc3QuYmFzZVVSTCA9IHVybDtcbiAgICAgIGxldCBjbGllbnQgPSBheGlvcy5jcmVhdGUoc2lnbmVkUmVxdWVzdCk7XG5cbiAgICAgIC8vIEFsbG93IHVzZXIgY29uZmlndXJhYmxlIGRlbGF5LCBvciBidWlsdC1pbiBleHBvbmVudGlhbCBkZWxheVxuICAgICAgbGV0IHJldHJ5RGVsYXkgPSBmdW5jdGlvbigpIHtcbiByZXR1cm4gMDtcbn07XG4gICAgICBpZiAoY29uZmlnLnJldHJ5RGVsYXkgPT09ICdleHBvbmVudGlhbCcpIHtcbiAgICAgICAgcmV0cnlEZWxheSA9IGF4aW9zUmV0cnkuZXhwb25lbnRpYWxEZWxheTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbmZpZy5yZXRyeURlbGF5ID09PSAnbnVtYmVyJykge1xuICAgICAgICByZXRyeURlbGF5ID0gKCkgPT4gcGFyc2VJbnQoY29uZmlnLnJldHJ5RGVsYXkpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY29uZmlnLnJldHJ5RGVsYXkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0cnlEZWxheSA9IGNvbmZpZy5yZXRyeURlbGF5O1xuICAgICAgfVxuXG4gICAgICBheGlvc1JldHJ5KGNsaWVudCwge1xuICAgICAgICByZXRyaWVzOiBjb25maWcucmV0cmllcyxcbiAgICAgICAgcmV0cnlDb25kaXRpb246IGNvbmZpZy5yZXRyeUNvbmRpdGlvbixcbiAgICAgICAgcmV0cnlEZWxheSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNsaWVudC5yZXF1ZXN0KHttZXRob2Q6IHZlcmJ9KTtcbiAgICB9XG4gICAgc2lnbmVkUmVxdWVzdC5tZXRob2QgPSB2ZXJiO1xuICAgIHNpZ25lZFJlcXVlc3QudXJsID0gdXJsO1xuICAgIHJldHVybiBheGlvcyhzaWduZWRSZXF1ZXN0KTtcbiAgfTtcblxuICByZXR1cm4gYXdzU2lnVjRDbGllbnQ7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBzaWdWNENsaWVudEZhY3Rvcnk7XG4iXX0=

@@ -34,3 +34,3 @@ "use strict";

for (var property in queryParams) {
if (Object.prototype.hasOwnProperty.call(queryParams, "property")) {
if (Object.prototype.hasOwnProperty.call(queryParams, property)) {
canonicalQueryString += encodeURIComponent(property) + '=' + encodeURIComponent(queryParams[property]) + '&';

@@ -130,2 +130,2 @@ }

exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYXBpR2F0ZXdheUNvcmUvc2ltcGxlSHR0cENsaWVudC5qcyJdLCJuYW1lcyI6WyJzaW1wbGVIdHRwQ2xpZW50RmFjdG9yeSIsIm5ld0NsaWVudCIsImNvbmZpZyIsImJ1aWxkQ2Fub25pY2FsUXVlcnlTdHJpbmciLCJxdWVyeVBhcmFtcyIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJjYW5vbmljYWxRdWVyeVN0cmluZyIsInByb3BlcnR5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwic3Vic3RyIiwic2ltcGxlSHR0cENsaWVudCIsImVuZHBvaW50IiwidXRpbHMiLCJhc3NlcnREZWZpbmVkIiwibWFrZVJlcXVlc3QiLCJyZXF1ZXN0IiwidmVyYiIsInBhdGgiLCJjb3B5IiwidGltZW91dCIsInVuZGVmaW5lZCIsImhlYWRlcnMiLCJkZWZhdWx0Q29udGVudFR5cGUiLCJkZWZhdWx0QWNjZXB0VHlwZSIsImJvZHkiLCJ1cmwiLCJxdWVyeVN0cmluZyIsInNpbXBsZUh0dHBSZXF1ZXN0IiwiZGF0YSIsInJldHJpZXMiLCJiYXNlVVJMIiwiY2xpZW50IiwiYXhpb3MiLCJjcmVhdGUiLCJyZXRyeURlbGF5IiwiYXhpb3NSZXRyeSIsImV4cG9uZW50aWFsRGVsYXkiLCJwYXJzZUludCIsInJldHJ5Q29uZGl0aW9uIiwibWV0aG9kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWVBOztBQUNBOztBQUNBOzs7Ozs7QUFFQSxJQUFNQSx1QkFBdUIsR0FBRyxFQUFoQzs7QUFDQUEsdUJBQXVCLENBQUNDLFNBQXhCLEdBQW9DLFVBQUNDLE1BQUQsRUFBWTtBQUM5QyxXQUFTQyx5QkFBVCxDQUFtQ0MsV0FBbkMsRUFBZ0Q7QUFDOUM7QUFDQSxRQUFJQyxNQUFNLENBQUNDLElBQVAsQ0FBWUYsV0FBWixFQUF5QkcsTUFBekIsR0FBa0MsQ0FBdEMsRUFBeUM7QUFDdkMsYUFB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bmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuXG4gKiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICBodHRwOi8vYXdzLmFtYXpvbi5jb20vYXBhY2hlMi4wXG4gKlxuICogb3IgaW4gdGhlIFwibGljZW5zZVwiIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkXG4gKiBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXJcbiAqIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nXG4gKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCBheGlvc1JldHJ5IGZyb20gJ2F4aW9zLXJldHJ5JztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuY29uc3Qgc2ltcGxlSHR0cENsaWVudEZhY3RvcnkgPSB7fTtcbnNpbXBsZUh0dHBDbGllbnRGYWN0b3J5Lm5ld0NsaWVudCA9IChjb25maWcpID0+IHtcbiAgZnVuY3Rpb24gYnVpbGRDYW5vbmljYWxRdWVyeVN0cmluZyhxdWVyeVBhcmFtcykge1xuICAgIC8vIEJ1aWxkIGEgcHJvcGVybHkgZW5jb2RlZCBxdWVyeSBzdHJpbmcgZnJvbSBhIFF1ZXJ5UGFyYW0gb2JqZWN0XG4gICAgaWYgKE9iamVjdC5rZXlzKHF1ZXJ5UGFyYW1zKS5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgbGV0IGNhbm9uaWNhbFF1ZXJ5U3RyaW5nID0gJyc7XG4gICAgZm9yIChsZXQgcHJvcGVydHkgaW4gcXVlcnlQYXJhbXMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocXVlcnlQYXJhbXMsIFwicHJvcGVydHlcIikpIHtcbiAgICAgICAgY2Fub25pY2FsUXVlcnlTdHJpbmcgKz0gZW5jb2RlVVJJQ29tcG9uZW50KHByb3BlcnR5KVxuICAgICAgICAgICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXJ5UGFyYW1zW3Byb3BlcnR5XSkgKyAnJic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbm9uaWNhbFF1ZXJ5U3RyaW5nLnN1YnN0cigwLCBjYW5vbmljYWxRdWVyeVN0cmluZy5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIGxldCBzaW1wbGVIdHRwQ2xpZW50ID0geyB9O1xuICBzaW1wbGVIdHRwQ2xpZW50LmVuZHBvaW50ID0gdXRpbHMuYXNzZXJ0RGVmaW5lZChjb25maWcuZW5kcG9pbnQsICdlbmRwb2ludCcpO1xuXG4gIHNpbXBsZUh0dHBDbGllbnQubWFrZVJlcXVlc3QgPSBmdW5jdGlvbihyZXF1ZXN0KSB7XG4gICAgbGV0IHZlcmIgPSB1dGlscy5hc3NlcnREZWZpbmVkKHJlcXVlc3QudmVyYiwgJ3ZlcmInKTtcbiAgICBsZXQgcGF0aCA9IHV0aWxzLmFzc2VydERlZmluZWQocmVxdWVzdC5wYXRoLCAncGF0aCcpO1xuICAgIGxldCBxdWVyeVBhcmFtcyA9IHV0aWxzLmNvcHkocmVxdWVzdC5xdWVyeVBhcmFtcyk7XG4gICAgbGV0IHRpbWVvdXQgPSB1dGlscy5jb3B5KHJlcXVlc3QudGltZW91dCk7XG4gICAgaWYgKHF1ZXJ5UGFyYW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgfVxuICAgIGlmICh0aW1lb3V0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRpbWVvdXQgPSAwO1xuICAgIH1cbiAgICBsZXQgaGVhZGVycyA9IHsuLi51dGlscy5jb3B5KHJlcXVlc3QuaGVhZGVycyksIC4uLmNvbmZpZy5oZWFkZXJzfTtcblxuICAgIC8vIElmIHRoZSB1c2VyIGhhcyBub3Qgc3BlY2lmaWVkIGFuIG92ZXJyaWRlIGZvciBDb250ZW50IHR5cGUgdGhlIHVzZSBkZWZhdWx0XG4gICAgaWYgKGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gY29uZmlnLmRlZmF1bHRDb250ZW50VHlwZTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgdXNlciBoYXMgbm90IHNwZWNpZmllZCBhbiBvdmVycmlkZSBmb3IgQWNjZXB0IHR5cGUgdGhlIHVzZSBkZWZhdWx0XG4gICAgaWYgKGhlYWRlcnNbJ0FjY2VwdCddID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGhlYWRlcnNbJ0FjY2VwdCddID0gY29uZmlnLmRlZmF1bHRBY2NlcHRUeXBlO1xuICAgIH1cblxuICAgIGxldCBib2R5ID0gdXRpbHMuY29weShyZXF1ZXN0LmJvZHkpO1xuXG4gICAgbGV0IHVybCA9IGNvbmZpZy5lbmRwb2ludCArIHBhdGg7XG4gICAgbGV0IHF1ZXJ5U3RyaW5nID0gYnVpbGRDYW5vbmljYWxRdWVyeVN0cmluZyhxdWVyeVBhcmFtcyk7XG4gICAgaWYgKHF1ZXJ5U3RyaW5nICE9PSAnJykge1xuICAgICAgdXJsICs9ICc/JyArIHF1ZXJ5U3RyaW5nO1xuICAgIH1cblxuICAgIGxldCBzaW1wbGVIdHRwUmVxdWVzdCA9IHtcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICB0aW1lb3V0OiB0aW1lb3V0LFxuICAgICAgZGF0YTogYm9keVxuICAgIH07XG4gICAgaWYgKGNvbmZpZy5yZXRyaWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHNpbXBsZUh0dHBSZXF1ZXN0LmJhc2VVUkwgPSB1cmw7XG4gICAgICBsZXQgY2xpZW50ID0gYXhpb3MuY3JlYXRlKHNpbXBsZUh0dHBSZXF1ZXN0KTtcblxuICAgICAgLy8gQWxsb3cgdXNlciBjb25maWd1cmFibGUgZGVsYXksIG9yIGJ1aWx0LWluIGV4cG9uZW50aWFsIGRlbGF5XG4gICAgICBsZXQgcmV0cnlEZWxheSA9ICgpID0+IDA7XG4gICAgICBpZiAoY29uZmlnLnJldHJ5RGVsYXkgPT09ICdleHBvbmVudGlhbCcpIHtcbiAgICAgICAgcmV0cnlEZWxheSA9IGF4aW9zUmV0cnkuZXhwb25lbnRpYWxEZWxheTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbmZpZy5yZXRyeURlbGF5ID09PSAnbnVtYmVyJykge1xuICAgICAgICByZXRyeURlbGF5ID0gKCkgPT4gcGFyc2VJbnQoY29uZmlnLnJldHJ5RGVsYXkpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY29uZmlnLnJldHJ5RGVsYXkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0cnlEZWxheSA9IGNvbmZpZy5yZXRyeURlbGF5O1xuICAgICAgfVxuXG4gICAgICBheGlvc1JldHJ5KGNsaWVudCwge1xuICAgICAgICByZXRyaWVzOiBjb25maWcucmV0cmllcyxcbiAgICAgICAgcmV0cnlDb25kaXRpb246IGNvbmZpZy5yZXRyeUNvbmRpdGlvbixcbiAgICAgICAgcmV0cnlEZWxheSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNsaWVudC5yZXF1ZXN0KHttZXRob2Q6IHZlcmJ9KTtcbiAgICB9XG4gICAgc2ltcGxlSHR0cFJlcXVlc3QubWV0aG9kID0gdmVyYjtcbiAgICBzaW1wbGVIdHRwUmVxdWVzdC51cmwgPSB1cmw7XG4gICAgcmV0dXJuIGF4aW9zKHNpbXBsZUh0dHBSZXF1ZXN0KTtcbiAgfTtcblxuICByZXR1cm4gc2ltcGxlSHR0cENsaWVudDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHNpbXBsZUh0dHBDbGllbnRGYWN0b3J5O1xuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYXBpR2F0ZXdheUNvcmUvc2ltcGxlSHR0cENsaWVudC5qcyJdLCJuYW1lcyI6WyJzaW1wbGVIdHRwQ2xpZW50RmFjdG9yeSIsIm5ld0NsaWVudCIsImNvbmZpZyIsImJ1aWxkQ2Fub25pY2FsUXVlcnlTdHJpbmciLCJxdWVyeVBhcmFtcyIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJjYW5vbmljYWxRdWVyeVN0cmluZyIsInByb3BlcnR5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwic3Vic3RyIiwic2ltcGxlSHR0cENsaWVudCIsImVuZHBvaW50IiwidXRpbHMiLCJhc3NlcnREZWZpbmVkIiwibWFrZVJlcXVlc3QiLCJyZXF1ZXN0IiwidmVyYiIsInBhdGgiLCJjb3B5IiwidGltZW91dCIsInVuZGVmaW5lZCIsImhlYWRlcnMiLCJkZWZhdWx0Q29udGVudFR5cGUiLCJkZWZhdWx0QWNjZXB0VHlwZSIsImJvZHkiLCJ1cmwiLCJxdWVyeVN0cmluZyIsInNpbXBsZUh0dHBSZXF1ZXN0IiwiZGF0YSIsInJldHJpZXMiLCJiYXNlVVJMIiwiY2xpZW50IiwiYXhpb3MiLCJjcmVhdGUiLCJyZXRyeURlbGF5IiwiYXhpb3NSZXRyeSIsImV4cG9uZW50aWFsRGVsYXkiLCJwYXJzZUludCIsInJldHJ5Q29uZGl0aW9uIiwibWV0aG9kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWVBOztBQUNBOztBQUNBOzs7Ozs7QUFFQSxJQUFNQSx1QkFBdUIsR0FBRyxFQUFoQzs7QUFDQUEsdUJBQXVCLENBQUNDLFNBQXhCLEdBQW9DLFVBQUNDLE1BQUQsRUFBWTtBQUM5QyxXQUFTQyx5QkFBVCxDQUFtQ0MsV0FBbkMsRUFBZ0Q7QUFDOUM7QUFDQSxRQUFJQyxNQUFNLENBQUNDLElBQVAsQ0FBWUYsV0FBWixFQUF5QkcsTUFBekIsR0FBa0MsQ0FBdEMsRUFBeUM7QUFDdkMsYUFB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SW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLlxuICogWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgaHR0cDovL2F3cy5hbWF6b24uY29tL2FwYWNoZTIuMFxuICpcbiAqIG9yIGluIHRoZSBcImxpY2Vuc2VcIiBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZFxuICogb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyXG4gKiBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZ1xuICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgYXhpb3NSZXRyeSBmcm9tICdheGlvcy1yZXRyeSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IHNpbXBsZUh0dHBDbGllbnRGYWN0b3J5ID0ge307XG5zaW1wbGVIdHRwQ2xpZW50RmFjdG9yeS5uZXdDbGllbnQgPSAoY29uZmlnKSA9PiB7XG4gIGZ1bmN0aW9uIGJ1aWxkQ2Fub25pY2FsUXVlcnlTdHJpbmcocXVlcnlQYXJhbXMpIHtcbiAgICAvLyBCdWlsZCBhIHByb3Blcmx5IGVuY29kZWQgcXVlcnkgc3RyaW5nIGZyb20gYSBRdWVyeVBhcmFtIG9iamVjdFxuICAgIGlmIChPYmplY3Qua2V5cyhxdWVyeVBhcmFtcykubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGxldCBjYW5vbmljYWxRdWVyeVN0cmluZyA9ICcnO1xuICAgIGZvciAobGV0IHByb3BlcnR5IGluIHF1ZXJ5UGFyYW1zKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHF1ZXJ5UGFyYW1zLCBwcm9wZXJ0eSkpIHtcbiAgICAgICAgY2Fub25pY2FsUXVlcnlTdHJpbmcgKz0gZW5jb2RlVVJJQ29tcG9uZW50KHByb3BlcnR5KVxuICAgICAgICAgICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXJ5UGFyYW1zW3Byb3BlcnR5XSkgKyAnJic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbm9uaWNhbFF1ZXJ5U3RyaW5nLnN1YnN0cigwLCBjYW5vbmljYWxRdWVyeVN0cmluZy5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIGxldCBzaW1wbGVIdHRwQ2xpZW50ID0geyB9O1xuICBzaW1wbGVIdHRwQ2xpZW50LmVuZHBvaW50ID0gdXRpbHMuYXNzZXJ0RGVmaW5lZChjb25maWcuZW5kcG9pbnQsICdlbmRwb2ludCcpO1xuXG4gIHNpbXBsZUh0dHBDbGllbnQubWFrZVJlcXVlc3QgPSBmdW5jdGlvbihyZXF1ZXN0KSB7XG4gICAgbGV0IHZlcmIgPSB1dGlscy5hc3NlcnREZWZpbmVkKHJlcXVlc3QudmVyYiwgJ3ZlcmInKTtcbiAgICBsZXQgcGF0aCA9IHV0aWxzLmFzc2VydERlZmluZWQocmVxdWVzdC5wYXRoLCAncGF0aCcpO1xuICAgIGxldCBxdWVyeVBhcmFtcyA9IHV0aWxzLmNvcHkocmVxdWVzdC5xdWVyeVBhcmFtcyk7XG4gICAgbGV0IHRpbWVvdXQgPSB1dGlscy5jb3B5KHJlcXVlc3QudGltZW91dCk7XG4gICAgaWYgKHF1ZXJ5UGFyYW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgfVxuICAgIGlmICh0aW1lb3V0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRpbWVvdXQgPSAwO1xuICAgIH1cbiAgICBsZXQgaGVhZGVycyA9IHsuLi51dGlscy5jb3B5KHJlcXVlc3QuaGVhZGVycyksIC4uLmNvbmZpZy5oZWFkZXJzfTtcblxuICAgIC8vIElmIHRoZSB1c2VyIGhhcyBub3Qgc3BlY2lmaWVkIGFuIG92ZXJyaWRlIGZvciBDb250ZW50IHR5cGUgdGhlIHVzZSBkZWZhdWx0XG4gICAgaWYgKGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gY29uZmlnLmRlZmF1bHRDb250ZW50VHlwZTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgdXNlciBoYXMgbm90IHNwZWNpZmllZCBhbiBvdmVycmlkZSBmb3IgQWNjZXB0IHR5cGUgdGhlIHVzZSBkZWZhdWx0XG4gICAgaWYgKGhlYWRlcnNbJ0FjY2VwdCddID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGhlYWRlcnNbJ0FjY2VwdCddID0gY29uZmlnLmRlZmF1bHRBY2NlcHRUeXBlO1xuICAgIH1cblxuICAgIGxldCBib2R5ID0gdXRpbHMuY29weShyZXF1ZXN0LmJvZHkpO1xuXG4gICAgbGV0IHVybCA9IGNvbmZpZy5lbmRwb2ludCArIHBhdGg7XG4gICAgbGV0IHF1ZXJ5U3RyaW5nID0gYnVpbGRDYW5vbmljYWxRdWVyeVN0cmluZyhxdWVyeVBhcmFtcyk7XG4gICAgaWYgKHF1ZXJ5U3RyaW5nICE9PSAnJykge1xuICAgICAgdXJsICs9ICc/JyArIHF1ZXJ5U3RyaW5nO1xuICAgIH1cblxuICAgIGxldCBzaW1wbGVIdHRwUmVxdWVzdCA9IHtcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICB0aW1lb3V0OiB0aW1lb3V0LFxuICAgICAgZGF0YTogYm9keVxuICAgIH07XG4gICAgaWYgKGNvbmZpZy5yZXRyaWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHNpbXBsZUh0dHBSZXF1ZXN0LmJhc2VVUkwgPSB1cmw7XG4gICAgICBsZXQgY2xpZW50ID0gYXhpb3MuY3JlYXRlKHNpbXBsZUh0dHBSZXF1ZXN0KTtcblxuICAgICAgLy8gQWxsb3cgdXNlciBjb25maWd1cmFibGUgZGVsYXksIG9yIGJ1aWx0LWluIGV4cG9uZW50aWFsIGRlbGF5XG4gICAgICBsZXQgcmV0cnlEZWxheSA9ICgpID0+IDA7XG4gICAgICBpZiAoY29uZmlnLnJldHJ5RGVsYXkgPT09ICdleHBvbmVudGlhbCcpIHtcbiAgICAgICAgcmV0cnlEZWxheSA9IGF4aW9zUmV0cnkuZXhwb25lbnRpYWxEZWxheTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbmZpZy5yZXRyeURlbGF5ID09PSAnbnVtYmVyJykge1xuICAgICAgICByZXRyeURlbGF5ID0gKCkgPT4gcGFyc2VJbnQoY29uZmlnLnJldHJ5RGVsYXkpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY29uZmlnLnJldHJ5RGVsYXkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0cnlEZWxheSA9IGNvbmZpZy5yZXRyeURlbGF5O1xuICAgICAgfVxuXG4gICAgICBheGlvc1JldHJ5KGNsaWVudCwge1xuICAgICAgICByZXRyaWVzOiBjb25maWcucmV0cmllcyxcbiAgICAgICAgcmV0cnlDb25kaXRpb246IGNvbmZpZy5yZXRyeUNvbmRpdGlvbixcbiAgICAgICAgcmV0cnlEZWxheSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNsaWVudC5yZXF1ZXN0KHttZXRob2Q6IHZlcmJ9KTtcbiAgICB9XG4gICAgc2ltcGxlSHR0cFJlcXVlc3QubWV0aG9kID0gdmVyYjtcbiAgICBzaW1wbGVIdHRwUmVxdWVzdC51cmwgPSB1cmw7XG4gICAgcmV0dXJuIGF4aW9zKHNpbXBsZUh0dHBSZXF1ZXN0KTtcbiAgfTtcblxuICByZXR1cm4gc2ltcGxlSHR0cENsaWVudDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHNpbXBsZUh0dHBDbGllbnRGYWN0b3J5O1xuIl19

@@ -87,3 +87,3 @@ "use strict";

for (attr in obj) {
if (Object.prototype.hasOwnProperty.call(obj, "attr")) copy[attr] = obj[attr];
if (Object.prototype.hasOwnProperty.call(obj, attr)) copy[attr] = obj[attr];
}

@@ -99,3 +99,3 @@

for (attr in baseObj) {
if (Object.prototype.hasOwnProperty.call(baseObj, "attr")) merged[attr] = baseObj[attr];
if (Object.prototype.hasOwnProperty.call(baseObj, attr)) merged[attr] = baseObj[attr];
}

@@ -106,3 +106,3 @@

for (attr in additionalProps) {
if (Object.prototype.hasOwnProperty.call(additionalProps, "attr")) {
if (Object.prototype.hasOwnProperty.call(additionalProps, attr)) {
merged[attr] = additionalProps[attr];

@@ -117,2 +117,2 @@ }

exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYXBpR2F0ZXdheUNvcmUvdXRpbHMuanMiXSwibmFtZXMiOlsidXRpbHMiLCJhc3NlcnREZWZpbmVkIiwib2JqZWN0IiwibmFtZSIsInVuZGVmaW5lZCIsIkVycm9yIiwiYXNzZXJ0UGFyYW1ldGVyc0RlZmluZWQiLCJwYXJhbXMiLCJrZXlzIiwiaWdub3JlIiwibGVuZ3RoIiwiaSIsImNvbnRhaW5zIiwicGFyc2VQYXJhbWV0ZXJzVG9PYmplY3QiLCJhIiwib2JqIiwiY29weSIsIkJ1ZmZlciIsInJlcXVpcmUiLCJpc0J1ZmZlciIsImZyb20iLCJjb25zdHJ1Y3RvciIsImF0dHIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJtZXJnZUludG8iLCJiYXNlT2JqIiwiYWRkaXRpb25hbFByb3BzIiwibWVyZ2VkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOzs7Ozs7Ozs7Ozs7OztBQWVBLElBQU1BLEtBQUssR0FBRztBQUNaQyxFQUFBQSxhQUFhLEVBQUUsdUJBQVNDLE1BQVQsRUFBaUJDLElBQWpCLEVBQXVCO0FBQ3BDLFFBQUlELE1BQU0sS0FBS0UsU0FBZixFQUEwQjtBQUN4QixZQUFNLElBQUlDLEtBQUosV0FBYUYsSUFBYixzQkFBTjtBQUNELEtBRkQsTUFFTztBQUNMLGFBQU9ELE1BQVA7QUFDRDtBQUNGLEdBUFc7QUFRWkksRUFBQUEsdUJBQXVCLEVBQUUsaUNBQVNDLE1BQVQsRUFBaUJDLElBQWpCLEVBQXVCQyxNQUF2QixFQUErQjtBQUN0RCxRQUFJRCxJQUFJLEtBQUtKLFNBQWIsRUFBd0I7QUFDdEI7QUFDRDs7QUFDRCxRQUFJSSxJQUFJLENBQUNFLE1BQUwsR0FBYyxDQUFkLElBQW1CSCxNQUFNLEtBQUtILFNBQWxDLEVBQTZDO0FBQzNDRyxNQUFBQSxNQUFNLEdBQUcsRUFBVDtBQUNEOztBQUNELFNBQUssSUFBSUksQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMs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TyxlQUFSLElBQTJCLHFDQUFtQkEsZUFBbkIsQ0FBL0IsRUFBbUUsT0FBT0QsT0FBUDs7QUFDbkUsU0FBS04sSUFBTCxJQUFhTyxlQUFiLEVBQThCO0FBQzVCLFVBQUlOLE1BQU0sQ0FBQ0MsU0FBUCxDQUFpQkMsY0FBakIsQ0FBZ0NDLElBQWhDLENBQXFDRyxlQUFyQyxFQUFzRCxNQUF0RCxDQUFKLEVBQW1FO0FBQ2pFQyxRQUFBQSxNQUFNLENBQUNSLElBQUQsQ0FBTixHQUFlTyxlQUFlLENBQUNQLElBQUQsQ0FBOUI7QUFDRDtBQUNGOztBQUNELFdBQU9RLE1BQVA7QUFDRDtBQXBFVyxDQUFkO2VBdUVlOUIsSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxMC0yMDE2IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS5cbiAqIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogIGh0dHA6Ly9hd3MuYW1hem9uLmNvbS9hcGFjaGUyLjBcbiAqXG4gKiBvciBpbiB0aGUgXCJsaWNlbnNlXCIgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWRcbiAqIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlclxuICogZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmdcbiAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5jb25zdCB1dGlscyA9IHtcbiAgYXNzZXJ0RGVmaW5lZDogZnVuY3Rpb24ob2JqZWN0LCBuYW1lKSB7XG4gICAgaWYgKG9iamVjdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7bmFtZX0gbXVzdCBiZSBkZWZpbmVkYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfVxuICB9LFxuICBhc3NlcnRQYXJhbWV0ZXJzRGVmaW5lZDogZnVuY3Rpb24ocGFyYW1zLCBrZXlzLCBpZ25vcmUpIHtcbiAgICBpZiAoa2V5cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChrZXlzLmxlbmd0aCA+IDAgJiYgcGFyYW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcmFtcyA9IHt9O1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghdXRpbHMuY29udGFpbnMoaWdub3JlLCBrZXlzW2ldKSkge1xuICAgICAgICB1dGlscy5hc3NlcnREZWZpbmVkKHBhcmFtc1trZXlzW2ldXSwga2V5c1tpXSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBwYXJzZVBhcmFtZXRlcnNUb09iamVjdDogZnVuY3Rpb24ocGFyYW1zLCBrZXlzKSB7XG4gICAgaWYgKHBhcmFtcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGxldCBvYmplY3QgPSB7IH07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBvYmplY3Rba2V5c1tpXV0gPSBwYXJhbXNba2V5c1tpXV07XG4gICAgfVxuICAgIHJldHVybiBvYmplY3Q7XG4gIH0sXG4gIGNvbnRhaW5zOiBmdW5jdGlvbihhLCBvYmopIHtcbiAgICBpZiAoYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBpID0gYS5sZW5ndGg7XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgaWYgKGFbaV0gPT09IG9iaikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxuICBjb3B5OiBmdW5jdGlvbihvYmopIHtcbiAgICBpZiAobnVsbCA9PT0gb2JqIHx8ICdvYmplY3QnICE9PSB0eXBlb2Ygb2JqKSByZXR1cm4gb2JqO1xuICAgIGxldCBCdWZmZXIgPSByZXF1aXJlKCdidWZmZXInKS5CdWZmZXI7XG4gICAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihvYmopKSByZXR1cm4gQnVmZmVyLmZyb20ob2JqKTtcbiAgICBsZXQgY29weSA9IG9iai5jb25zdHJ1Y3RvcigpO1xuICAgIGxldCBhdHRyID0gbnVsbDtcbiAgICBmb3IgKGF0dHIgaW4gb2JqKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgXCJhdHRyXCIpKSBjb3B5W2F0dHJdID0gb2JqW2F0dHJdO1xuICAgIH1cbiAgICByZXR1cm4gY29weTtcbiAgfSxcbiAgbWVyZ2VJbnRvOiBmdW5jdGlvbihiYXNlT2JqLCBhZGRpdGlvbmFsUHJvcHMpIHtcbiAgICBpZiAobnVsbCA9PT0gYmFzZU9iaiB8fCAnb2JqZWN0JyAhPT0gdHlwZW9mIGJhc2VPYmopIHJldHVybiBiYXNlT2JqO1xuICAgIGxldCBtZXJnZWQgPSBiYXNlT2JqLmNvbnN0cnVjdG9yKCk7XG4gICAgbGV0IGF0dHIgPSBudWxsO1xuICAgIGZvciAoYXR0ciBpbiBiYXNlT2JqKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGJhc2VPYmosIFwiYXR0clwiKSkgbWVyZ2VkW2F0dHJdID0gYmFzZU9ialthdHRyXTtcbiAgICB9XG4gICAgaWYgKG51bGwgPT0gYWRkaXRpb25hbFByb3BzIHx8ICdvYmplY3QnICE9IHR5cGVvZiBhZGRpdGlvbmFsUHJvcHMpIHJldHVybiBiYXNlT2JqO1xuICAgIGZvciAoYXR0ciBpbiBhZGRpdGlvbmFsUHJvcHMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYWRkaXRpb25hbFByb3BzLCBcImF0dHJcIikpIHtcbiAgICAgICAgbWVyZ2VkW2F0dHJdID0gYWRkaXRpb25hbFByb3BzW2F0dHJdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWVyZ2VkO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYXBpR2F0ZXdheUNvcmUvdXRpbHMuanMiXSwibmFtZXMiOlsidXRpbHMiLCJhc3NlcnREZWZpbmVkIiwib2JqZWN0IiwibmFtZSIsInVuZGVmaW5lZCIsIkVycm9yIiwiYXNzZXJ0UGFyYW1ldGVyc0RlZmluZWQiLCJwYXJhbXMiLCJrZXlzIiwiaWdub3JlIiwibGVuZ3RoIiwiaSIsImNvbnRhaW5zIiwicGFyc2VQYXJhbWV0ZXJzVG9PYmplY3QiLCJhIiwib2JqIiwiY29weSIsIkJ1ZmZlciIsInJlcXVpcmUiLCJpc0J1ZmZlciIsImZyb20iLCJjb25zdHJ1Y3RvciIsImF0dHIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJtZXJnZUludG8iLCJiYXNlT2JqIiwiYWRkaXRpb25hbFByb3BzIiwibWVyZ2VkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOzs7Ozs7Ozs7Ozs7OztBQWVBLElBQU1BLEtBQUssR0FBRztBQUNaQyxFQUFBQSxhQUFhLEVBQUUsdUJBQVNDLE1BQVQsRUFBaUJDLElBQWpCLEVBQXVCO0FBQ3BDLFFBQUlELE1BQU0sS0FBS0UsU0FBZixFQUEwQjtBQUN4QixZQUFNLElBQUlDLEtBQUosV0FBYUYsSUFBYixzQkFBTjtBQUNELEtBRkQsTUFFTztBQUNMLGFBQU9ELE1BQVA7QUFDRDtBQUNGLEdBUFc7QUFRWkksRUFBQUEsdUJBQXVCLEVBQUUsaUNBQVNDLE1BQVQsRUFBaUJDLElBQWpCLEVBQXVCQyxNQUF2QixFQUErQjtBQUN0RCxRQUFJRCxJQUFJLEtBQUtKLFNBQWIsRUFBd0I7QUFDdEI7QUFDRDs7QUFDRCxRQUFJSSxJQUFJLENBQUNFLE1BQUwsR0FBYyxDQUFkLElBQW1CSCxNQUFNLEtBQUtILFNBQWxDLEVBQTZDO0FBQzNDRyxNQUFBQSxNQUFNLEdBQUcsRUFBVDtBQUNEOztBQUNELFNBQUssSUFBSUksQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMs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QVFPLGVBQVIsSUFBMkIscUNBQW1CQSxlQUFuQixDQUEvQixFQUFtRSxPQUFPRCxPQUFQOztBQUNuRSxTQUFLTixJQUFMLElBQWFPLGVBQWIsRUFBOEI7QUFDNUIsVUFBSU4sTUFBTSxDQUFDQyxTQUFQLENBQWlCQyxjQUFqQixDQUFnQ0MsSUFBaEMsQ0FBcUNHLGVBQXJDLEVBQXNEUCxJQUF0RCxDQUFKLEVBQWlFO0FBQy9EUSxRQUFBQSxNQUFNLENBQUNSLElBQUQsQ0FBTixHQUFlTyxlQUFlLENBQUNQLElBQUQsQ0FBOUI7QUFDRDtBQUNGOztBQUNELFdBQU9RLE1BQVA7QUFDRDtBQXBFVyxDQUFkO2VBdUVlOUIsSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxMC0yMDE2IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS5cbiAqIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogIGh0dHA6Ly9hd3MuYW1hem9uLmNvbS9hcGFjaGUyLjBcbiAqXG4gKiBvciBpbiB0aGUgXCJsaWNlbnNlXCIgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWRcbiAqIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlclxuICogZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmdcbiAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5jb25zdCB1dGlscyA9IHtcbiAgYXNzZXJ0RGVmaW5lZDogZnVuY3Rpb24ob2JqZWN0LCBuYW1lKSB7XG4gICAgaWYgKG9iamVjdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7bmFtZX0gbXVzdCBiZSBkZWZpbmVkYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfVxuICB9LFxuICBhc3NlcnRQYXJhbWV0ZXJzRGVmaW5lZDogZnVuY3Rpb24ocGFyYW1zLCBrZXlzLCBpZ25vcmUpIHtcbiAgICBpZiAoa2V5cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChrZXlzLmxlbmd0aCA+IDAgJiYgcGFyYW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcmFtcyA9IHt9O1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghdXRpbHMuY29udGFpbnMoaWdub3JlLCBrZXlzW2ldKSkge1xuICAgICAgICB1dGlscy5hc3NlcnREZWZpbmVkKHBhcmFtc1trZXlzW2ldXSwga2V5c1tpXSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBwYXJzZVBhcmFtZXRlcnNUb09iamVjdDogZnVuY3Rpb24ocGFyYW1zLCBrZXlzKSB7XG4gICAgaWYgKHBhcmFtcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGxldCBvYmplY3QgPSB7IH07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBvYmplY3Rba2V5c1tpXV0gPSBwYXJhbXNba2V5c1tpXV07XG4gICAgfVxuICAgIHJldHVybiBvYmplY3Q7XG4gIH0sXG4gIGNvbnRhaW5zOiBmdW5jdGlvbihhLCBvYmopIHtcbiAgICBpZiAoYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBpID0gYS5sZW5ndGg7XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgaWYgKGFbaV0gPT09IG9iaikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxuICBjb3B5OiBmdW5jdGlvbihvYmopIHtcbiAgICBpZiAobnVsbCA9PT0gb2JqIHx8ICdvYmplY3QnICE9PSB0eXBlb2Ygb2JqKSByZXR1cm4gb2JqO1xuICAgIGxldCBCdWZmZXIgPSByZXF1aXJlKCdidWZmZXInKS5CdWZmZXI7XG4gICAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihvYmopKSByZXR1cm4gQnVmZmVyLmZyb20ob2JqKTtcbiAgICBsZXQgY29weSA9IG9iai5jb25zdHJ1Y3RvcigpO1xuICAgIGxldCBhdHRyID0gbnVsbDtcbiAgICBmb3IgKGF0dHIgaW4gb2JqKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgYXR0cikpIGNvcHlbYXR0cl0gPSBvYmpbYXR0cl07XG4gICAgfVxuICAgIHJldHVybiBjb3B5O1xuICB9LFxuICBtZXJnZUludG86IGZ1bmN0aW9uKGJhc2VPYmosIGFkZGl0aW9uYWxQcm9wcykge1xuICAgIGlmIChudWxsID09PSBiYXNlT2JqIHx8ICdvYmplY3QnICE9PSB0eXBlb2YgYmFzZU9iaikgcmV0dXJuIGJhc2VPYmo7XG4gICAgbGV0IG1lcmdlZCA9IGJhc2VPYmouY29uc3RydWN0b3IoKTtcbiAgICBsZXQgYXR0ciA9IG51bGw7XG4gICAgZm9yIChhdHRyIGluIGJhc2VPYmopIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYmFzZU9iaiwgYXR0cikpIG1lcmdlZFthdHRyXSA9IGJhc2VPYmpbYXR0cl07XG4gICAgfVxuICAgIGlmIChudWxsID09IGFkZGl0aW9uYWxQcm9wcyB8fCAnb2JqZWN0JyAhPSB0eXBlb2YgYWRkaXRpb25hbFByb3BzKSByZXR1cm4gYmFzZU9iajtcbiAgICBmb3IgKGF0dHIgaW4gYWRkaXRpb25hbFByb3BzKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGFkZGl0aW9uYWxQcm9wcywgYXR0cikpIHtcbiAgICAgICAgbWVyZ2VkW2F0dHJdID0gYWRkaXRpb25hbFByb3BzW2F0dHJdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWVyZ2VkO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
{
"name": "aws-api-gateway-client",
"version": "0.3.2",
"version": "0.3.3",
"description": "A module for AWS API Gateway client",

@@ -5,0 +5,0 @@ "repository": {

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