@nebula.gl/layers
Advanced tools
Comparing version 0.17.4-alpha.3 to 0.17.4
@@ -192,3 +192,4 @@ "use strict"; | ||
drawEllipseUsing3Points: _editModes.DrawEllipseUsingThreePointsMode, | ||
draw90DegreePolygon: _editModes.Draw90DegreePolygonMode | ||
draw90DegreePolygon: _editModes.Draw90DegreePolygonMode, | ||
drawPolygonByDragging: _editModes.DrawPolygonByDraggingMode | ||
}; | ||
@@ -520,2 +521,2 @@ | ||
EditableGeoJsonLayer.defaultProps = defaultProps; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvZWRpdGFibGUtZ2VvanNvbi1sYXllci5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX0xJTkVfQ09MT1IiLCJERUZBVUxUX0ZJTExfQ09MT1IiLCJERUZBVUxUX1NFTEVDVEVEX0xJTkVfQ09MT1IiLCJERUZBVUxUX1NFTEVDVEVEX0ZJTExfQ09MT1IiLCJERUZBVUxUX0VESVRJTkdfRVhJU1RJTkdfUE9JTlRfQ09MT1IiLCJERUZBVUxUX0VESVRJTkdfSU5URVJNRURJQVRFX1BPSU5UX0NPTE9SIiwiREVGQVVMVF9FRElUSU5HX1NOQVBfUE9JTlRfQ09MT1IiLCJERUZBVUxUX0VESVRJTkdfUE9JTlRfT1VUTElORV9DT0xPUiIsIkRFRkFVTFRfRURJVElOR19FWElTVElOR19QT0lOVF9SQURJVVMiLCJERUZBVUxUX0VESVRJTkdfSU5URVJNRURJQVRFX1BPSU5UX1JBRElVUyIsIkRFRkFVTFRfRURJVElOR19TTkFQX1BPSU5UX1JBRElVUyIsIkRFRkFVTFRfRURJVF9NT0RFIiwiRHJhd1BvbHlnb25Nb2RlIiwiZ3VpZGVBY2Nlc3NvciIsImFjY2Vzc29yIiwiZ3VpZGVNYXliZVdyYXBwZWQiLCJ1bndyYXBHdWlkZSIsIl9fc291cmNlIiwib2JqZWN0Iiwic291cmNlRmVhdHVyZSIsImZlYXR1cmUiLCJnZXRFZGl0SGFuZGxlQ29sb3IiLCJoYW5kbGUiLCJwcm9wZXJ0aWVzIiwiZWRpdEhhbmRsZVR5cGUiLCJnZXRFZGl0SGFuZGxlT3V0bGluZUNvbG9yIiwiZ2V0RWRpdEhhbmRsZVJhZGl1cyIsImRlZmF1bHRQcm9wcyIsIm1vZGUiLCJvbkVkaXQiLCJwaWNrYWJsZSIsInBpY2tpbmdSYWRpdXMiLCJwaWNraW5nRGVwdGgiLCJmcDY0IiwiZmlsbGVkIiwic3Ryb2tlZCIsImxpbmVXaWR0aFNjYWxlIiwibGluZVdpZHRoTWluUGl4ZWxzIiwibGluZVdpZHRoTWF4UGl4ZWxzIiwiTnVtYmVyIiwiTUFYX1NBRkVfSU5URUdFUiIsImxpbmVXaWR0aFVuaXRzIiwibGluZUpvaW50Um91bmRlZCIsImxpbmVNaXRlckxpbWl0IiwicG9pbnRSYWRpdXNTY2FsZSIsInBvaW50UmFkaXVzTWluUGl4ZWxzIiwicG9pbnRSYWRpdXNNYXhQaXhlbHMiLCJnZXRMaW5lQ29sb3IiLCJpc1NlbGVjdGVkIiwiZ2V0RmlsbENvbG9yIiwiZ2V0UmFkaXVzIiwiZiIsInJhZGl1cyIsInNpemUiLCJnZXRMaW5lV2lkdGgiLCJsaW5lV2lkdGgiLCJnZXRUZW50YXRpdmVMaW5lQ29sb3IiLCJnZXRUZW50YXRpdmVGaWxsQ29sb3IiLCJnZXRUZW50YXRpdmVMaW5lV2lkdGgiLCJlZGl0SGFuZGxlUG9pbnRSYWRpdXNTY2FsZSIsImVkaXRIYW5kbGVQb2ludE91dGxpbmUiLCJlZGl0SGFuZGxlUG9pbnRTdHJva2VXaWR0aCIsImVkaXRIYW5kbGVQb2ludFJhZGl1c01pblBpeGVscyIsImVkaXRIYW5kbGVQb2ludFJhZGl1c01heFBpeGVscyIsImdldEVkaXRIYW5kbGVQb2ludENvbG9yIiwiZ2V0RWRpdEhhbmRsZVBvaW50T3V0bGluZUNvbG9yIiwiZ2V0RWRpdEhhbmRsZVBvaW50UmFkaXVzIiwiZWRpdEhhbmRsZUljb25BdGxhcyIsImVkaXRIYW5kbGVJY29uTWFwcGluZyIsImVkaXRIYW5kbGVJY29uU2l6ZVNjYWxlIiwiZ2V0RWRpdEhhbmRsZUljb24iLCJnZXRFZGl0SGFuZGxlSWNvblNpemUiLCJnZXRFZGl0SGFuZGxlSWNvbkNvbG9yIiwiZ2V0RWRpdEhhbmRsZUljb25BbmdsZSIsImJpbGxib2FyZCIsIm1vZGVOYW1lTWFwcGluZyIsInZpZXciLCJWaWV3TW9kZSIsIm1vZGlmeSIsIk1vZGlmeU1vZGUiLCJ0cmFuc2xhdGUiLCJTbmFwcGFibGVNb2RlIiwiVHJhbnNsYXRlTW9kZSIsInRyYW5zZm9ybSIsIlRyYW5zZm9ybU1vZGUiLCJzY2FsZSIsIlNjYWxlTW9kZSIsInJvdGF0ZSIsIlJvdGF0ZU1vZGUiLCJkdXBsaWNhdGUiLCJEdXBsaWNhdGVNb2RlIiwic3BsaXQiLCJTcGxpdFBvbHlnb25Nb2RlIiwiZXh0cnVkZSIsIkV4dHJ1ZGVNb2RlIiwiZWxldmF0aW9uIiwiRWxldmF0aW9uTW9kZSIsImRyYXdQb2ludCIsIkRyYXdQb2ludE1vZGUiLCJkcmF3TGluZVN0cmluZyIsIkRyYXdMaW5lU3RyaW5nTW9kZSIsImRyYXdQb2x5Z29uIiwiZHJhd1JlY3RhbmdsZSIsIkRyYXdSZWN0YW5nbGVNb2RlIiwiZHJhd0NpcmNsZUZyb21DZW50ZXIiLCJEcmF3Q2lyY2xlRnJvbUNlbnRlck1vZGUiLCJkcmF3Q2lyY2xlQnlCb3VuZGluZ0JveCIsIkRyYXdDaXJjbGVCeURpYW1ldGVyTW9kZSIsImRyYXdFbGxpcHNlQnlCb3VuZGluZ0JveCIsIkRyYXdFbGxpcHNlQnlCb3VuZGluZ0JveE1vZGUiLCJkcmF3UmVjdGFuZ2xlVXNpbmczUG9pbnRzIiwiRHJhd1JlY3RhbmdsZVVzaW5nVGhyZWVQb2ludHNNb2RlIiwiZHJhd0VsbGlwc2VVc2luZzNQb2ludHMiLCJEcmF3RWxsaXBzZVVzaW5nVGhyZWVQb2ludHNNb2RlIiwiZHJhdzkwRGVncmVlUG9seWdvbiIsIkRyYXc5MERlZ3JlZVBvbHlnb25Nb2RlIiwiRWRpdGFibGVHZW9Kc29uTGF5ZXIiLCJzdWJMYXllclByb3BzIiwiZ2V0U3ViTGF5ZXJQcm9wcyIsImlkIiwiZGF0YSIsInByb3BzIiwic2VsZWN0aW9uQXdhcmVBY2Nlc3NvciIsIl9zdWJMYXllclByb3BzIiwidXBkYXRlVHJpZ2dlcnMiLCJzZWxlY3RlZEZlYXR1cmVJbmRleGVzIiwibGF5ZXJzIiwiR2VvSnNvbkxheWVyIiwiY29uY2F0IiwiY3JlYXRlR3VpZGVzTGF5ZXJzIiwiY3JlYXRlVG9vbHRpcHNMYXllcnMiLCJzZXRTdGF0ZSIsInNlbGVjdGVkRmVhdHVyZXMiLCJlZGl0SGFuZGxlcyIsIm9wdHMiLCJjaGFuZ2VGbGFncyIsInN0YXRlQ2hhbmdlZCIsIm9sZFByb3BzIiwic3RhdGUiLCJwcm9wc09yRGF0YUNoYW5nZWQiLCJjb25zb2xlIiwid2FybiIsIk1vZGVDb25zdHJ1Y3RvciIsIlN0cmluZyIsImN1cnNvciIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImVsZW0iLCJmZWF0dXJlcyIsIm1vZGVDb25maWciLCJzZWxlY3RlZEluZGV4ZXMiLCJsYXN0UG9pbnRlck1vdmVFdmVudCIsImVkaXRBY3Rpb24iLCJvblVwZGF0ZUN1cnNvciIsImlzRmVhdHVyZVNlbGVjdGVkIiwibGVuZ3RoIiwiZmVhdHVyZUluZGV4IiwiaW5kZXhPZiIsImluY2x1ZGVzIiwiaW5mbyIsInNvdXJjZUxheWVyIiwiZW5kc1dpdGgiLCJpc0d1aWRlIiwiZ2V0QWN0aXZlTW9kZSIsImd1aWRlcyIsImdldEd1aWRlcyIsImdldE1vZGVQcm9wcyIsInBvaW50TGF5ZXJQcm9wcyIsInR5cGUiLCJJY29uTGF5ZXIiLCJpY29uQXRsYXMiLCJpY29uTWFwcGluZyIsInNpemVTY2FsZSIsImdldEljb24iLCJnZXRTaXplIiwiZ2V0Q29sb3IiLCJnZXRBbmdsZSIsIlNjYXR0ZXJwbG90TGF5ZXIiLCJyYWRpdXNTY2FsZSIsInJhZGl1c01pblBpeGVscyIsInJhZGl1c01heFBpeGVscyIsImxheWVyIiwicG9pbnRzIiwidG9vbHRpcHMiLCJnZXRUb29sdGlwcyIsIlRleHRMYXllciIsImV2ZW50IiwiaGFuZGxlQ2xpY2siLCJoYW5kbGVTdGFydERyYWdnaW5nIiwiaGFuZGxlRHJhZ2dpbmciLCJoYW5kbGVTdG9wRHJhZ2dpbmciLCJoYW5kbGVQb2ludGVyTW92ZSIsImlzRHJhZ2dpbmciLCJFZGl0YWJsZUxheWVyIiwibGF5ZXJOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBR0E7O0FBRUE7O0FBa0NBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQU1BLGtCQUFrQixHQUFHLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLElBQWhCLENBQTNCO0FBQ0EsSUFBTUMsa0JBQWtCLEdBQUcsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsRUFB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QUFBLG9CQUFvQixFQUFFbUM7QUFBeEIsT0FBZDtBQUNBLFdBQUt2QixhQUFMLEdBQXFCNEIsaUJBQXJCLENBQXVDTCxLQUF2QyxFQUE4QyxLQUFLcEIsWUFBTCxDQUFrQixLQUFLOUMsS0FBdkIsQ0FBOUM7QUFDRDs7O3FDQUVrRDtBQUFBLFVBQXZDd0UsVUFBdUMsU0FBdkNBLFVBQXVDO0FBQUEsVUFDM0NqRCxNQUQyQyxHQUNoQyxLQUFLTixLQUQyQixDQUMzQ00sTUFEMkM7O0FBRWpELFVBQUksQ0FBQ0EsTUFBTCxFQUFhO0FBQ1g7QUFDQUEsUUFBQUEsTUFBTSxHQUFHaUQsVUFBVSxHQUFHLFVBQUgsR0FBZ0IsTUFBbkM7QUFDRDs7QUFDRCxhQUFPakQsTUFBUDtBQUNEOzs7b0NBRWdDO0FBQy9CLGFBQU8sS0FBS04sS0FBTCxDQUFXOUcsSUFBbEI7QUFDRDs7OztFQTVRK0NzSyxzQjs7O0FBK1FsRDlFLG9CQUFvQixDQUFDK0UsU0FBckIsR0FBaUMsc0JBQWpDO0FBQ0EvRSxvQkFBb0IsQ0FBQ3pGLFlBQXJCLEdBQW9DQSxZQUFwQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBmbG93XG4vKiBlc2xpbnQtZW52IGJyb3dzZXIgKi9cblxuaW1wb3J0IHsgR2VvSnNvbkxheWVyLCBTY2F0dGVycGxvdExheWVyLCBJY29uTGF5ZXIsIFRleHRMYXllciB9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5cbmltcG9ydCB7XG4gIFZpZXdNb2RlLFxuICBNb2RpZnlNb2RlLFxuICBUcmFuc2xhdGVNb2RlLFxuICBTY2FsZU1vZGUsXG4gIFJvdGF0ZU1vZGUsXG4gIER1cGxpY2F0ZU1vZGUsXG4gIFNwbGl0UG9seWdvbk1vZGUsXG4gIEV4dHJ1ZGVNb2RlLFxuICBFbGV2YXRpb25Nb2RlLFxuICBEcmF3UG9pbnRNb2RlLFxuICBEcmF3TGluZVN0cmluZ01vZGUsXG4gIERyYXdQb2x5Z29uTW9kZSxcbiAgRHJhd1JlY3RhbmdsZU1vZGUsXG4gIERyYXdDaXJjbGVGcm9tQ2VudGVyTW9kZSxcbiAgRHJhd0NpcmNsZUJ5RGlhbWV0ZXJNb2RlLFxuICBEcmF3RWxsaXBzZUJ5Qm91bmRpbmdCb3hNb2RlLFxuICBEcmF3UmVjdGFuZ2xlVXNpbmdUaHJlZVBvaW50c01vZGUsXG4gIERyYXdFbGxpcHNlVXNpbmdUaHJlZVBvaW50c01vZGUsXG4gIERyYXc5MERlZ3JlZVBvbHlnb25Nb2RlLFxuICBTbmFwcGFibGVNb2RlLFxuICBUcmFuc2Zvcm1Nb2RlXG59IGZyb20gJ0BuZWJ1bGEuZ2wvZWRpdC1tb2Rlcyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgRWRpdEFjdGlvbixcbiAgQ2xpY2tFdmVudCxcbiAgU3RhcnREcmFnZ2luZ0V2ZW50LFxuICBTdG9wRHJhZ2dpbmdFdmVudCxcbiAgRHJhZ2dpbmdFdmVudCxcbiAgUG9pbnRlck1vdmVFdmVudCxcbiAgR2VvSnNvbkVkaXRNb2RlLFxuICBGZWF0dXJlQ29sbGVjdGlvblxufSBmcm9tICdAbmVidWxhLmdsL2VkaXQtbW9kZXMnO1xuaW1wb3J0IEVkaXRhYmxlTGF5ZXIgZnJvbSAnLi9lZGl0YWJsZS1sYXllci5qcyc7XG5cbmNvbnN0IERFRkFVTFRfTElORV9DT0xPUiA9IFsweDAsIDB4MCwgMHgwLCAweGZmXTtcbmNvbnN0IERFRkFVTFRfRklMTF9DT0xPUiA9IFsweDAsIDB4MCwgMHgwLCAweDkwXTtcbmNvbnN0IERFRkFVTFRfU0VMRUNURURfTElORV9DT0xPUiA9IFsweDkwLCAweDkwLCAweDkwLCAweGZmXTtcbmNvbnN0IERFRkFVTFRfU0VMRUNURURfRklMTF9DT0xPUiA9IFsweDkwLCAweDkwLCAweDkwLCAweDkwXTtcbmNvbnN0IERFRkFVTFRfRURJVElOR19FWElTVElOR19QT0lOVF9DT0xPUiA9IFsweGMwLCAweDAsIDB4MCwgMHhmZl07XG5jb25zdCBERUZBVUxUX0VESVRJTkdfSU5URVJNRURJQVRFX1BPSU5UX0NPTE9SID0gWzB4MCwgMHgwLCAweDAsIDB4ODBdO1xuY29uc3QgREVGQVVMVF9FRElUSU5HX1NOQVBfUE9JTlRfQ09MT1IgPSBbMHg3YywgMHgwMCwgMHhjMCwgMHhmZl07XG5jb25zdCBERUZBVUxUX0VESVRJTkdfUE9JTlRfT1VUTElORV9DT0xPUiA9IFsweGZmLCAweGZmLCAweGZmLCAweGZmXTtcbmNvbnN0IERFRkFVTFRfRURJVElOR19FWElTVElOR19QT0lOVF9SQURJVVMgPSA1O1xuY29uc3QgREVGQVVMVF9FRElUSU5HX0lOVEVSTUVESUFURV9QT0lOVF9SQURJVVMgPSAzO1xuY29uc3QgREVGQVVMVF9FRElUSU5HX1NOQVBfUE9JTlRfUkFESVVTID0gNztcblxuY29uc3QgREVGQVVMVF9FRElUX01PREUgPSBEcmF3UG9seWdvbk1vZGU7XG5cbmZ1bmN0aW9uIGd1aWRlQWNjZXNzb3IoYWNjZXNzb3IpIHtcbiAgaWYgKCFhY2Nlc3NvciB8fCB0eXBlb2YgYWNjZXNzb3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gYWNjZXNzb3I7XG4gIH1cbiAgcmV0dXJuIGd1aWRlTWF5YmVXcmFwcGVkID0+IGFjY2Vzc29yKHVud3JhcEd1aWRlKGd1aWRlTWF5YmVXcmFwcGVkKSk7XG59XG5cbi8vIFRoZSBvYmplY3QgaGFuZGVkIHRvIHVzIGZyb20gZGVjay5nbCBpcyBkaWZmZXJlbnQgZGVwZW5kaW5nIG9uIHRoZSB2ZXJzaW9uIG9mIGRlY2suZ2wgdXNlZCwgdW53cmFwIGFzIG5lY2Vzc2FyeVxuZnVuY3Rpb24gdW53cmFwR3VpZGUoZ3VpZGVNYXliZVdyYXBwZWQpIHtcbiAgaWYgKGd1aWRlTWF5YmVXcmFwcGVkLl9fc291cmNlKSB7XG4gICAgcmV0dXJuIGd1aWRlTWF5YmVXcmFwcGVkLl9fc291cmNlLm9iamVjdDtcbiAgfSBlbHNlIGlmIChndWlkZU1heWJlV3JhcHBlZC5zb3VyY2VGZWF0dXJlKSB7XG4gICAgcmV0dXJuIGd1aWRlTWF5YmVXcmFwcGVkLnNvdXJjZUZlYXR1cmUuZmVhdHVyZTtcbiAgfVxuICAvLyBJdCBpcyBub3Qgd3JhcHBlZCwgcmV0dXJuIGFzIGlzXG4gIHJldHVybiBndWlkZU1heWJlV3JhcHBlZDtcbn1cblxuZnVuY3Rpb24gZ2V0RWRpdEhhbmRsZUNvbG9yKGhhbmRsZSkge1xuICBzd2l0Y2ggKGhhbmRsZS5wcm9wZXJ0aWVzLmVkaXRIYW5kbGVUeXBlKSB7XG4gICAgY2FzZSAnZXhpc3RpbmcnOlxuICAgICAgcmV0dXJuIERFRkFVTFRfRURJVElOR19FWElTVElOR19QT0lOVF9DT0xPUjtcbiAgICBjYXNlICdzbmFwLXNvdXJjZSc6XG4gICAgICByZXR1cm4gREVGQVVMVF9FRElUSU5HX1NOQVBfUE9JTlRfQ09MT1I7XG4gICAgY2FzZSAnaW50ZXJtZWRpYXRlJzpcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIERFRkFVTFRfRURJVElOR19JTlRFUk1FRElBVEVfUE9JTlRfQ09MT1I7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RWRpdEhhbmRsZU91dGxpbmVDb2xvcihoYW5kbGUpIHtcbiAgcmV0dXJuIERFRkFVTFRfRURJVElOR19QT0lOVF9PVVRMSU5FX0NPTE9SO1xufVxuXG5mdW5jdGlvbiBnZXRFZGl0SGFuZGxlUmFkaXVzKGhhbmRsZSkge1xuICBzd2l0Y2ggKGhhbmRsZS5wcm9wZXJ0aWVzLmVkaXRIYW5kbGVUeXBlKSB7XG4gICAgY2FzZSAnZXhpc3RpbmcnOlxuICAgICAgcmV0dXJuIERFRkFVTFRfRURJVElOR19FWElTVElOR19QT0lOVF9SQURJVVM7XG4gICAgY2FzZSAnc25hcCc6XG4gICAgICByZXR1cm4gREVGQVVMVF9FRElUSU5HX1NOQVBfUE9JTlRfUkFESVVTO1xuICAgIGNhc2UgJ2ludGVybWVkaWF0ZSc6XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBERUZBVUxUX0VESVRJTkdfSU5URVJNRURJQVRFX1BPSU5UX1JBRElVUztcbiAgfVxufVxuXG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gIG1vZGU6IERyYXdQb2x5Z29uTW9kZSxcblxuICAvLyBFZGl0IGFuZCBpbnRlcmFjdGlvbiBldmVudHNcbiAgb25FZGl0OiAoKSA9PiB7fSxcblxuICBwaWNrYWJsZTogdHJ1ZSxcbiAgcGlja2luZ1JhZGl1czogMTAsXG4gIHBpY2tpbmdEZXB0aDogNSxcbiAgZnA2NDogZmFsc2UsXG4gIGZpbGxlZDogdHJ1ZSxcbiAgc3Ryb2tlZDogdHJ1ZSxcbiAgbGluZVdpZHRoU2NhbGU6IDEsXG4gIGxpbmVXaWR0aE1pblBpeGVsczogMSxcbiAgbGluZVdpZHRoTWF4UGl4ZWxzOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcbiAgbGluZVdpZHRoVW5pdHM6ICdwaXhlbHMnLFxuICBsaW5lSm9pbnRSb3VuZGVkOiBmYWxzZSxcbiAgbGluZU1pdGVyTGltaXQ6IDQsXG4gIHBvaW50UmFkaXVzU2NhbGU6IDEsXG4gIHBvaW50UmFkaXVzTWluUGl4ZWxzOiAyLFxuICBwb2ludFJhZGl1c01heFBpeGVsczogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXG4gIGdldExpbmVDb2xvcjogKGZlYXR1cmUsIGlzU2VsZWN0ZWQsIG1vZGUpID0+XG4gICAgaXNTZWxlY3RlZCA/IERFRkFVTFRfU0VMRUNURURfTElORV9DT0xPUiA6IERFRkFVTFRfTElORV9DT0xPUixcbiAgZ2V0RmlsbENvbG9yOiAoZmVhdHVyZSwgaXNTZWxlY3RlZCwgbW9kZSkgPT5cbiAgICBpc1NlbGVjdGVkID8gREVGQVVMVF9TRUxFQ1RFRF9GSUxMX0NPTE9SIDogREVGQVVMVF9GSUxMX0NPTE9SLFxuICBnZXRSYWRpdXM6IGYgPT5cbiAgICAoZiAmJiBmLnByb3BlcnRpZXMgJiYgZi5wcm9wZXJ0aWVzLnJhZGl1cykgfHwgKGYgJiYgZi5wcm9wZXJ0aWVzICYmIGYucHJvcGVydGllcy5zaXplKSB8fCAxLFxuICBnZXRMaW5lV2lkdGg6IGYgPT4gKGYgJiYgZi5wcm9wZXJ0aWVzICYmIGYucHJvcGVydGllcy5saW5lV2lkdGgpIHx8IDMsXG5cbiAgLy8gVGVudGF0aXZlIGZlYXR1cmUgcmVuZGVyaW5nXG4gIGdldFRlbnRhdGl2ZUxpbmVDb2xvcjogZiA9PiBERUZBVUxUX1NFTEVDVEVEX0xJTkVfQ09MT1IsXG4gIGdldFRlbnRhdGl2ZUZpbGxDb2xvcjogZiA9PiBERUZBVUxUX1NFTEVDVEVEX0ZJTExfQ09MT1IsXG4gIGdldFRlbnRhdGl2ZUxpbmVXaWR0aDogZiA9PiAoZiAmJiBmLnByb3BlcnRpZXMgJiYgZi5wcm9wZXJ0aWVzLmxpbmVXaWR0aCkgfHwgMyxcblxuICBlZGl0SGFuZGxlVHlwZTogJ3BvaW50JyxcblxuICAvLyBwb2ludCBoYW5kbGVzXG4gIGVkaXRIYW5kbGVQb2ludFJhZGl1c1NjYWxlOiAxLFxuICBlZGl0SGFuZGxlUG9pbnRPdXRsaW5lOiB0cnVlLFxuICBlZGl0SGFuZGxlUG9pbnRTdHJva2VXaWR0aDogMixcbiAgZWRpdEhhbmRsZVBvaW50UmFkaXVzTWluUGl4ZWxzOiA0LFxuICBlZGl0SGFuZGxlUG9pbnRSYWRpdXNNYXhQaXhlbHM6IDgsXG4gIGdldEVkaXRIYW5kbGVQb2ludENvbG9yOiBnZXRFZGl0SGFuZGxlQ29sb3IsXG4gIGdldEVkaXRIYW5kbGVQb2ludE91dGxpbmVDb2xvcjogZ2V0RWRpdEhhbmRsZU91dGxpbmVDb2xvcixcbiAgZ2V0RWRpdEhhbmRsZVBvaW50UmFkaXVzOiBnZXRFZGl0SGFuZGxlUmFkaXVzLFxuXG4gIC8vIGljb24gaGFuZGxlc1xuICBlZGl0SGFuZGxlSWNvbkF0bGFzOiBudWxsLFxuICBlZGl0SGFuZGxlSWNvbk1hcHBpbmc6IG51bGwsXG4gIGVkaXRIYW5kbGVJY29uU2l6ZVNjYWxlOiAxLFxuICBnZXRFZGl0SGFuZGxlSWNvbjogaGFuZGxlID0+IGhhbmRsZS5wcm9wZXJ0aWVzLmVkaXRIYW5kbGVUeXBlLFxuICBnZXRFZGl0SGFuZGxlSWNvblNpemU6IDEwLFxuICBnZXRFZGl0SGFuZGxlSWNvbkNvbG9yOiBnZXRFZGl0SGFuZGxlQ29sb3IsXG4gIGdldEVkaXRIYW5kbGVJY29uQW5nbGU6IDAsXG5cbiAgLy8gbWlzY1xuICBiaWxsYm9hcmQ6IHRydWVcbn07XG5cbi8vIE1hcHBpbmcgb2YgbW9kZSBuYW1lIHRvIG1vZGUgY2xhc3MgKGZvciBsZWdhY3kgcHVycG9zZXMpXG5jb25zdCBtb2RlTmFtZU1hcHBpbmcgPSB7XG4gIHZpZXc6IFZpZXdNb2RlLFxuXG4gIC8vIEFsdGVyIG1vZGVzXG4gIG1vZGlmeTogTW9kaWZ5TW9kZSxcbiAgdHJhbnNsYXRlOiBuZXcgU25hcHBhYmxlTW9kZShuZXcgVHJhbnNsYXRlTW9kZSgpKSxcblxuICB0cmFuc2Zvcm06IG5ldyBTbmFwcGFibGVNb2RlKG5ldyBUcmFuc2Zvcm1Nb2RlKCkpLFxuICBzY2FsZTogU2NhbGVNb2RlLFxuICByb3RhdGU6IFJvdGF0ZU1vZGUsXG4gIGR1cGxpY2F0ZTogRHVwbGljYXRlTW9kZSxcbiAgc3BsaXQ6IFNwbGl0UG9seWdvbk1vZGUsXG4gIGV4dHJ1ZGU6IEV4dHJ1ZGVNb2RlLFxuICBlbGV2YXRpb246IEVsZXZhdGlvbk1vZGUsXG5cbiAgLy8gRHJhdyBtb2Rlc1xuICBkcmF3UG9pbnQ6IERyYXdQb2ludE1vZGUsXG4gIGRyYXdMaW5lU3RyaW5nOiBEcmF3TGluZVN0cmluZ01vZGUsXG4gIGRyYXdQb2x5Z29uOiBEcmF3UG9seWdvbk1vZGUsXG4gIGRyYXdSZWN0YW5nbGU6IERyYXdSZWN0YW5nbGVNb2RlLFxuICBkcmF3Q2lyY2xlRnJvbUNlbnRlcjogRHJhd0NpcmNsZUZyb21DZW50ZXJNb2RlLFxuICBkcmF3Q2lyY2xlQnlCb3VuZGluZ0JveDogRHJhd0NpcmNsZUJ5RGlhbWV0ZXJNb2RlLFxuICBkcmF3RWxsaXBzZUJ5Qm91bmRpbmdCb3g6IERyYXdFbGxpcHNlQnlCb3VuZGluZ0JveE1vZGUsXG4gIGRyYXdSZWN0YW5nbGVVc2luZzNQb2ludHM6IERyYXdSZWN0YW5nbGVVc2luZ1RocmVlUG9pbnRzTW9kZSxcbiAgZHJhd0VsbGlwc2VVc2luZzNQb2ludHM6IERyYXdFbGxpcHNlVXNpbmdUaHJlZVBvaW50c01vZGUsXG4gIGRyYXc5MERlZ3JlZVBvbHlnb246IERyYXc5MERlZ3JlZVBvbHlnb25Nb2RlXG59O1xuXG50eXBlIFByb3BzID0ge1xuICBtb2RlOiBzdHJpbmcgfCBHZW9Kc29uRWRpdE1vZGUgfCBDbGFzczxHZW9Kc29uRWRpdE1vZGU+LFxuICBvbkVkaXQ6IChFZGl0QWN0aW9uPEZlYXR1cmVDb2xsZWN0aW9uPikgPT4gdm9pZCxcbiAgLy8gVE9ETzogdHlwZSB0aGUgcmVzdFxuICBbc3RyaW5nXTogYW55XG59O1xuXG4vLyB0eXBlIFN0YXRlID0ge1xuLy8gICBtb2RlOiBHZW9Kc29uRWRpdE1vZGUsXG4vLyAgIHRlbnRhdGl2ZUZlYXR1cmU6ID9GZWF0dXJlLFxuLy8gICBlZGl0SGFuZGxlczogYW55W10sXG4vLyAgIHNlbGVjdGVkRmVhdHVyZXM6IEZlYXR1cmVbXVxuLy8gfTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRWRpdGFibGVHZW9Kc29uTGF5ZXIgZXh0ZW5kcyBFZGl0YWJsZUxheWVyIHtcbiAgLy8gc3RhdGU6IFN0YXRlO1xuICAvLyBwcm9wczogUHJvcHM7XG4gIC8vIHNldFN0YXRlOiAoJFNoYXBlPFN0YXRlPikgPT4gdm9pZDtcblxuICByZW5kZXJMYXllcnMoKSB7XG4gICAgY29uc3Qgc3ViTGF5ZXJQcm9wcyA9IHRoaXMuZ2V0U3ViTGF5ZXJQcm9wcyh7XG4gICAgICBpZDogJ2dlb2pzb24nLFxuXG4gICAgICAvLyBQcm94eSBtb3N0IEdlb0pzb25MYXllciBwcm9wcyBhcy1pc1xuICAgICAgZGF0YTogdGhpcy5wcm9wcy5kYXRhLFxuICAgICAgZnA2NDogdGhpcy5wcm9wcy5mcDY0LFxuICAgICAgZmlsbGVkOiB0aGlzLnByb3BzLmZpbGxlZCxcbiAgICAgIHN0cm9rZWQ6IHRoaXMucHJvcHMuc3Ryb2tlZCxcbiAgICAgIGxpbmVXaWR0aFNjYWxlOiB0aGlzLnByb3BzLmxpbmVXaWR0aFNjYWxlLFxuICAgICAgbGluZVdpZHRoTWluUGl4ZWxzOiB0aGlzLnByb3BzLmxpbmVXaWR0aE1pblBpeGVscyxcbiAgICAgIGxpbmVXaWR0aE1heFBpeGVsczogdGhpcy5wcm9wcy5saW5lV2lkdGhNYXhQaXhlbHMsXG4gICAgICBsaW5lV2lkdGhVbml0czogdGhpcy5wcm9wcy5saW5lV2lkdGhVbml0cyxcbiAgICAgIGxpbmVKb2ludFJvdW5kZWQ6IHRoaXMucHJvcHMubGluZUpvaW50Um91bmRlZCxcbiAgICAgIGxpbmVNaXRlckxpbWl0OiB0aGlzLnByb3BzLmxpbmVNaXRlckxpbWl0LFxuICAgICAgcG9pbnRSYWRpdXNTY2FsZTogdGhpcy5wcm9wcy5wb2ludFJhZGl1c1NjYWxlLFxuICAgICAgcG9pbnRSYWRpdXNNaW5QaXhlbHM6IHRoaXMucHJvcHMucG9pbnRSYWRpdXNNaW5QaXhlbHMsXG4gICAgICBwb2ludFJhZGl1c01heFBpeGVsczogdGhpcy5wcm9wcy5wb2ludFJhZGl1c01heFBpeGVscyxcbiAgICAgIGdldExpbmVDb2xvcjogdGhpcy5zZWxlY3Rpb25Bd2FyZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0TGluZUNvbG9yKSxcbiAgICAgIGdldEZpbGxDb2xvcjogdGhpcy5zZWxlY3Rpb25Bd2FyZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0RmlsbENvbG9yKSxcbiAgICAgIGdldFJhZGl1czogdGhpcy5zZWxlY3Rpb25Bd2FyZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0UmFkaXVzKSxcbiAgICAgIGdldExpbmVXaWR0aDogdGhpcy5zZWxlY3Rpb25Bd2FyZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0TGluZVdpZHRoKSxcblxuICAgICAgX3N1YkxheWVyUHJvcHM6IHtcbiAgICAgICAgJ2xpbmUtc3RyaW5ncyc6IHtcbiAgICAgICAgICBiaWxsYm9hcmQ6IHRoaXMucHJvcHMuYmlsbGJvYXJkXG4gICAgICAgIH0sXG4gICAgICAgICdwb2x5Z29ucy1zdHJva2UnOiB7XG4gICAgICAgICAgYmlsbGJvYXJkOiB0aGlzLnByb3BzLmJpbGxib2FyZFxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICB1cGRhdGVUcmlnZ2Vyczoge1xuICAgICAgICBnZXRMaW5lQ29sb3I6IFt0aGlzLnByb3BzLnNlbGVjdGVkRmVhdHVyZUluZGV4ZXMsIHRoaXMucHJvcHMubW9kZV0sXG4gICAgICAgIGdldEZpbGxDb2xvcjogW3RoaXMucHJvcHMuc2VsZWN0ZWRGZWF0dXJlSW5kZXhlcywgdGhpcy5wcm9wcy5tb2RlXSxcbiAgICAgICAgZ2V0UmFkaXVzOiBbdGhpcy5wcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzLCB0aGlzLnByb3BzLm1vZGVdLFxuICAgICAgICBnZXRMaW5lV2lkdGg6IFt0aGlzLnByb3BzLnNlbGVjdGVkRmVhdHVyZUluZGV4ZXMsIHRoaXMucHJvcHMubW9kZV1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGxldCBsYXllcnM6IGFueSA9IFtuZXcgR2VvSnNvbkxheWVyKHN1YkxheWVyUHJvcHMpXTtcblxuICAgIGxheWVycyA9IGxheWVycy5jb25jYXQodGhpcy5jcmVhdGVHdWlkZXNMYXllcnMoKSwgdGhpcy5jcmVhdGVUb29sdGlwc0xheWVycygpKTtcblxuICAgIHJldHVybiBsYXllcnM7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgc3VwZXIuaW5pdGlhbGl6ZVN0YXRlKCk7XG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHNlbGVjdGVkRmVhdHVyZXM6IFtdLFxuICAgICAgZWRpdEhhbmRsZXM6IFtdXG4gICAgfSk7XG4gIH1cblxuICAvLyBUT0RPOiBpcyB0aGlzIHRoZSBiZXN0IHdheSB0byBwcm9wZXJseSB1cGRhdGUgc3RhdGUgZnJvbSBhbiBvdXRzaWRlIGV2ZW50IGhhbmRsZXI/XG4gIHNob3VsZFVwZGF0ZVN0YXRlKG9wdHM6IGFueSkge1xuICAgIC8vIGNvbnNvbGUubG9nKFxuICAgIC8vICAgJ3Nob3VsZFVwZGF0ZVN0YXRlJyxcbiAgICAvLyAgIG9wdHMuY2hhbmdlRmxhZ3MucHJvcHNPckRhdGFDaGFuZ2VkLFxuICAgIC8vICAgb3B0cy5jaGFuZ2VGbGFncy5zdGF0ZUNoYW5nZWRcbiAgICAvLyApO1xuICAgIHJldHVybiBzdXBlci5zaG91bGRVcGRhdGVTdGF0ZShvcHRzKSB8fCBvcHRzLmNoYW5nZUZsYWdzLnN0YXRlQ2hhbmdlZDtcbiAgfVxuXG4gIHVwZGF0ZVN0YXRlKHtcbiAgICBwcm9wcyxcbiAgICBvbGRQcm9wcyxcbiAgICBjaGFuZ2VGbGFnc1xuICB9OiB7XG4gICAgcHJvcHM6IFByb3BzLFxuICAgIG9sZFByb3BzOiBQcm9wcyxcbiAgICBjaGFuZ2VGbGFnczogYW55XG4gIH0pIHtcbiAgICBzdXBlci51cGRhdGVTdGF0ZSh7IHByb3BzLCBjaGFuZ2VGbGFncyB9KTtcblxuICAgIGxldCBtb2RlID0gdGhpcy5zdGF0ZS5tb2RlO1xuICAgIGlmIChjaGFuZ2VGbGFncy5wcm9wc09yRGF0YUNoYW5nZWQpIHtcbiAgICAgIGlmIChwcm9wcy5tb2RlICE9PSBvbGRQcm9wcy5tb2RlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgcHJvcHMubW9kZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAvLyBMb29rdXAgdGhlIG1vZGUgYmFzZWQgb24gaXRzIG5hbWUgKGZvciBsZWdhY3kgcHVycG9zZXMpXG4gICAgICAgICAgbW9kZSA9IG1vZGVOYW1lTWFwcGluZ1twcm9wcy5tb2RlXTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIFwiRGVwcmVjYXRlZCB1c2Ugb2YgcGFzc2luZyBgbW9kZWAgYXMgYSBzdHJpbmcuIFBhc3MgdGhlIG1vZGUncyBjbGFzcyBjb25zdHJ1Y3RvciBpbnN0ZWFkLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtb2RlID0gcHJvcHMubW9kZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgbW9kZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGNvbnN0IE1vZGVDb25zdHJ1Y3RvciA9IG1vZGU7XG4gICAgICAgICAgbW9kZSA9IG5ldyBNb2RlQ29uc3RydWN0b3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgTm8gbW9kZSBjb25maWd1cmVkIGZvciAke1N0cmluZyhwcm9wcy5tb2RlKX1gKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlLG5vLXVuZGVmXG4gICAgICAgICAgLy8gVXNlIGRlZmF1bHQgbW9kZVxuICAgICAgICAgIG1vZGUgPSBERUZBVUxUX0VESVRfTU9ERTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtb2RlICE9PSB0aGlzLnN0YXRlLm1vZGUpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbW9kZSwgY3Vyc29yOiBudWxsIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IHNlbGVjdGVkRmVhdHVyZXMgPSBbXTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzKSkge1xuICAgICAgLy8gVE9ETzogbmVlZHMgaW1wcm92ZWQgdGVzdGluZywgaS5lLiBjaGVja2luZyBmb3IgZHVwbGljYXRlcywgTmFOcywgb3V0IG9mIHJhbmdlIG51bWJlcnMsIC4uLlxuICAgICAgc2VsZWN0ZWRGZWF0dXJlcyA9IHByb3BzLnNlbGVjdGVkRmVhdHVyZUluZGV4ZXMubWFwKGVsZW0gPT4gcHJvcHMuZGF0YS5mZWF0dXJlc1tlbGVtXSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7IHNlbGVjdGVkRmVhdHVyZXMgfSk7XG4gIH1cblxuICBnZXRNb2RlUHJvcHMocHJvcHM6IFByb3BzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGVDb25maWc6IHByb3BzLm1vZGVDb25maWcsXG4gICAgICBkYXRhOiBwcm9wcy5kYXRhLFxuICAgICAgc2VsZWN0ZWRJbmRleGVzOiBwcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzLFxuICAgICAgbGFzdFBvaW50ZXJNb3ZlRXZlbnQ6IHRoaXMuc3RhdGUubGFzdFBvaW50ZXJNb3ZlRXZlbnQsXG4gICAgICBjdXJzb3I6IHRoaXMuc3RhdGUuY3Vyc29yLFxuICAgICAgb25FZGl0OiAoZWRpdEFjdGlvbjogRWRpdEFjdGlvbjxGZWF0dXJlQ29sbGVjdGlvbj4pID0+IHtcbiAgICAgICAgcHJvcHMub25FZGl0KGVkaXRBY3Rpb24pO1xuICAgICAgfSxcbiAgICAgIG9uVXBkYXRlQ3Vyc29yOiAoY3Vyc29yOiA/c3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjdXJzb3IgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHNlbGVjdGlvbkF3YXJlQWNjZXNzb3IoYWNjZXNzb3I6IGFueSkge1xuICAgIGlmICh0eXBlb2YgYWNjZXNzb3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBhY2Nlc3NvcjtcbiAgICB9XG4gICAgcmV0dXJuIChmZWF0dXJlOiBPYmplY3QpID0+IGFjY2Vzc29yKGZlYXR1cmUsIHRoaXMuaXNGZWF0dXJlU2VsZWN0ZWQoZmVhdHVyZSksIHRoaXMucHJvcHMubW9kZSk7XG4gIH1cblxuICBpc0ZlYXR1cmVTZWxlY3RlZChmZWF0dXJlOiBPYmplY3QpIHtcbiAgICBpZiAoIXRoaXMucHJvcHMuZGF0YSB8fCAhdGhpcy5wcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICghdGhpcy5wcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBmZWF0dXJlSW5kZXggPSB0aGlzLnByb3BzLmRhdGEuZmVhdHVyZXMuaW5kZXhPZihmZWF0dXJlKTtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzLmluY2x1ZGVzKGZlYXR1cmVJbmRleCk7XG4gIH1cblxuICBnZXRQaWNraW5nSW5mbyh7IGluZm8sIHNvdXJjZUxheWVyIH06IE9iamVjdCkge1xuICAgIGlmIChzb3VyY2VMYXllci5pZC5lbmRzV2l0aCgnZ3VpZGVzJykpIHtcbiAgICAgIC8vIElmIHVzZXIgaXMgcGlja2luZyBhbiBlZGl0aW5nIGhhbmRsZSwgYWRkIGFkZGl0aW9uYWwgZGF0YSB0byB0aGUgaW5mb1xuICAgICAgaW5mby5pc0d1aWRlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5mbztcbiAgfVxuXG4gIGNyZWF0ZUd1aWRlc0xheWVycygpIHtcbiAgICBjb25zdCBtb2RlID0gdGhpcy5nZXRBY3RpdmVNb2RlKCk7XG4gICAgY29uc3QgZ3VpZGVzOiBGZWF0dXJlQ29sbGVjdGlvbiA9IG1vZGUuZ2V0R3VpZGVzKHRoaXMuZ2V0TW9kZVByb3BzKHRoaXMucHJvcHMpKTtcblxuICAgIGlmICghZ3VpZGVzIHx8ICFndWlkZXMuZmVhdHVyZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgbGV0IHBvaW50TGF5ZXJQcm9wcztcbiAgICBpZiAodGhpcy5wcm9wcy5lZGl0SGFuZGxlVHlwZSA9PT0gJ2ljb24nKSB7XG4gICAgICBwb2ludExheWVyUHJvcHMgPSB7XG4gICAgICAgIHR5cGU6IEljb25MYXllcixcbiAgICAgICAgaWNvbkF0bGFzOiB0aGlzLnByb3BzLmVkaXRIYW5kbGVJY29uQXRsYXMsXG4gICAgICAgIGljb25NYXBwaW5nOiB0aGlzLnByb3BzLmVkaXRIYW5kbGVJY29uTWFwcGluZyxcbiAgICAgICAgc2l6ZVNjYWxlOiB0aGlzLnByb3BzLmVkaXRIYW5kbGVJY29uU2l6ZVNjYWxlLFxuICAgICAgICBnZXRJY29uOiBndWlkZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0RWRpdEhhbmRsZUljb24pLFxuICAgICAgICBnZXRTaXplOiBndWlkZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0RWRpdEhhbmRsZUljb25TaXplKSxcbiAgICAgICAgZ2V0Q29sb3I6IGd1aWRlQWNjZXNzb3IodGhpcy5wcm9wcy5nZXRFZGl0SGFuZGxlSWNvbkNvbG9yKSxcbiAgICAgICAgZ2V0QW5nbGU6IGd1aWRlQWNjZXNzb3IodGhpcy5wcm9wcy5nZXRFZGl0SGFuZGxlSWNvbkFuZ2xlKVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcG9pbnRMYXllclByb3BzID0ge1xuICAgICAgICB0eXBlOiBTY2F0dGVycGxvdExheWVyLFxuICAgICAgICByYWRpdXNTY2FsZTogdGhpcy5wcm9wcy5lZGl0SGFuZGxlUG9pbnRSYWRpdXNTY2FsZSxcbiAgICAgICAgc3Ryb2tlZDogdGhpcy5wcm9wcy5lZGl0SGFuZGxlUG9pbnRPdXRsaW5lLFxuICAgICAgICBnZXRMaW5lV2lkdGg6IHRoaXMucHJvcHMuZWRpdEhhbmRsZVBvaW50U3Ryb2tlV2lkdGgsXG4gICAgICAgIHJhZGl1c01pblBpeGVsczogdGhpcy5wcm9wcy5lZGl0SGFuZGxlUG9pbnRSYWRpdXNNaW5QaXhlbHMsXG4gICAgICAgIHJhZGl1c01heFBpeGVsczogdGhpcy5wcm9wcy5lZGl0SGFuZGxlUG9pbnRSYWRpdXNNYXhQaXhlbHMsXG4gICAgICAgIGdldFJhZGl1czogZ3VpZGVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldEVkaXRIYW5kbGVQb2ludFJhZGl1cyksXG4gICAgICAgIGdldEZpbGxDb2xvcjogZ3VpZGVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldEVkaXRIYW5kbGVQb2ludENvbG9yKSxcbiAgICAgICAgZ2V0TGluZUNvbG9yOiBndWlkZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0RWRpdEhhbmRsZVBvaW50T3V0bGluZUNvbG9yKVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBsYXllciA9IG5ldyBHZW9Kc29uTGF5ZXIoXG4gICAgICB0aGlzLmdldFN1YkxheWVyUHJvcHMoe1xuICAgICAgICBpZDogYGd1aWRlc2AsXG4gICAgICAgIGRhdGE6IGd1aWRlcyxcbiAgICAgICAgZnA2NDogdGhpcy5wcm9wcy5mcDY0LFxuICAgICAgICBfc3ViTGF5ZXJQcm9wczoge1xuICAgICAgICAgIHBvaW50czogcG9pbnRMYXllclByb3BzXG4gICAgICAgIH0sXG4gICAgICAgIGxpbmVXaWR0aFNjYWxlOiB0aGlzLnByb3BzLmxpbmVXaWR0aFNjYWxlLFxuICAgICAgICBsaW5lV2lkdGhNaW5QaXhlbHM6IHRoaXMucHJvcHMubGluZVdpZHRoTWluUGl4ZWxzLFxuICAgICAgICBsaW5lV2lkdGhNYXhQaXhlbHM6IHRoaXMucHJvcHMubGluZVdpZHRoTWF4UGl4ZWxzLFxuICAgICAgICBsaW5lV2lkdGhVbml0czogdGhpcy5wcm9wcy5saW5lV2lkdGhVbml0cyxcbiAgICAgICAgbGluZUpvaW50Um91bmRlZDogdGhpcy5wcm9wcy5saW5lSm9pbnRSb3VuZGVkLFxuICAgICAgICBsaW5lTWl0ZXJMaW1pdDogdGhpcy5wcm9wcy5saW5lTWl0ZXJMaW1pdCxcbiAgICAgICAgZ2V0TGluZUNvbG9yOiBndWlkZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0VGVudGF0aXZlTGluZUNvbG9yKSxcbiAgICAgICAgZ2V0TGluZVdpZHRoOiBndWlkZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0VGVudGF0aXZlTGluZVdpZHRoKSxcbiAgICAgICAgZ2V0RmlsbENvbG9yOiBndWlkZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0VGVudGF0aXZlRmlsbENvbG9yKVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgcmV0dXJuIFtsYXllcl07XG4gIH1cblxuICBjcmVhdGVUb29sdGlwc0xheWVycygpIHtcbiAgICBjb25zdCBtb2RlID0gdGhpcy5nZXRBY3RpdmVNb2RlKCk7XG4gICAgY29uc3QgdG9vbHRpcHMgPSBtb2RlLmdldFRvb2x0aXBzKHRoaXMuZ2V0TW9kZVByb3BzKHRoaXMucHJvcHMpKTtcblxuICAgIGNvbnN0IGxheWVyID0gbmV3IFRleHRMYXllcihcbiAgICAgIHRoaXMuZ2V0U3ViTGF5ZXJQcm9wcyh7XG4gICAgICAgIGlkOiBgdG9vbHRpcHNgLFxuICAgICAgICBkYXRhOiB0b29sdGlwc1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgcmV0dXJuIFtsYXllcl07XG4gIH1cblxuICBvbkxheWVyQ2xpY2soZXZlbnQ6IENsaWNrRXZlbnQpIHtcbiAgICB0aGlzLmdldEFjdGl2ZU1vZGUoKS5oYW5kbGVDbGljayhldmVudCwgdGhpcy5nZXRNb2RlUHJvcHModGhpcy5wcm9wcykpO1xuICB9XG5cbiAgb25TdGFydERyYWdnaW5nKGV2ZW50OiBTdGFydERyYWdnaW5nRXZlbnQpIHtcbiAgICB0aGlzLmdldEFjdGl2ZU1vZGUoKS5oYW5kbGVTdGFydERyYWdnaW5nKGV2ZW50LCB0aGlzLmdldE1vZGVQcm9wcyh0aGlzLnByb3BzKSk7XG4gIH1cblxuICBvbkRyYWdnaW5nKGV2ZW50OiBEcmFnZ2luZ0V2ZW50KSB7XG4gICAgdGhpcy5nZXRBY3RpdmVNb2RlKCkuaGFuZGxlRHJhZ2dpbmcoZXZlbnQsIHRoaXMuZ2V0TW9kZVByb3BzKHRoaXMucHJvcHMpKTtcbiAgfVxuXG4gIG9uU3RvcERyYWdnaW5nKGV2ZW50OiBTdG9wRHJhZ2dpbmdFdmVudCkge1xuICAgIHRoaXMuZ2V0QWN0aXZlTW9kZSgpLmhhbmRsZVN0b3BEcmFnZ2luZyhldmVudCwgdGhpcy5nZXRNb2RlUHJvcHModGhpcy5wcm9wcykpO1xuICB9XG5cbiAgb25Qb2ludGVyTW92ZShldmVudDogUG9pbnRlck1vdmVFdmVudCkge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBsYXN0UG9pbnRlck1vdmVFdmVudDogZXZlbnQgfSk7XG4gICAgdGhpcy5nZXRBY3RpdmVNb2RlKCkuaGFuZGxlUG9pbnRlck1vdmUoZXZlbnQsIHRoaXMuZ2V0TW9kZVByb3BzKHRoaXMucHJvcHMpKTtcbiAgfVxuXG4gIGdldEN1cnNvcih7IGlzRHJhZ2dpbmcgfTogeyBpc0RyYWdnaW5nOiBib29sZWFuIH0pIHtcbiAgICBsZXQgeyBjdXJzb3IgfSA9IHRoaXMuc3RhdGU7XG4gICAgaWYgKCFjdXJzb3IpIHtcbiAgICAgIC8vIGRlZmF1bHQgY3Vyc29yXG4gICAgICBjdXJzb3IgPSBpc0RyYWdnaW5nID8gJ2dyYWJiaW5nJyA6ICdncmFiJztcbiAgICB9XG4gICAgcmV0dXJuIGN1cnNvcjtcbiAgfVxuXG4gIGdldEFjdGl2ZU1vZGUoKTogR2VvSnNvbkVkaXRNb2RlIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5tb2RlO1xuICB9XG59XG5cbkVkaXRhYmxlR2VvSnNvbkxheWVyLmxheWVyTmFtZSA9ICdFZGl0YWJsZUdlb0pzb25MYXllcic7XG5FZGl0YWJsZUdlb0pzb25MYXllci5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvZWRpdGFibGUtZ2VvanNvbi1sYXllci5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX0xJTkVfQ09MT1IiLCJERUZBVUxUX0ZJTExfQ09MT1IiLCJERUZBVUxUX1NFTEVDVEVEX0xJTkVfQ09MT1IiLCJERUZBVUxUX1NFTEVDVEVEX0ZJTExfQ09MT1IiLCJERUZBVUxUX0VESVRJTkdfRVhJU1RJTkdfUE9JTlRfQ09MT1IiLCJERUZBVUxUX0VESVRJTkdfSU5URVJNRURJQVRFX1BPSU5UX0NPTE9SIiwiREVGQVVMVF9FRElUSU5HX1NOQVBfUE9JTlRfQ09MT1IiLCJERUZBVUxUX0VESVRJTkdfUE9JTlRfT1VUTElORV9DT0xPUiIsIkRFRkFVTFRfRURJVElOR19FWElTVElOR19QT0lOVF9SQURJVVMiLCJERUZBVUxUX0VESVRJTkdfSU5URVJNRURJQVRFX1BPSU5UX1JBRElVUyIsIkRFRkFVTFRfRURJVElOR19TTkFQX1BPSU5UX1JBRElVUyIsIkRFRkFVTFRfRURJVF9NT0RFIiwiRHJhd1BvbHlnb25Nb2RlIiwiZ3VpZGVBY2Nlc3NvciIsImFjY2Vzc29yIiwiZ3VpZGVNYXliZVdyYXBwZWQiLCJ1bndyYXBHdWlkZSIsIl9fc291cmNlIiwib2JqZWN0Iiwic291cmNlRmVhdHVyZSIsImZlYXR1cmUiLCJnZXRFZGl0SGFuZGxlQ29sb3IiLCJoYW5kbGUiLCJwcm9wZXJ0aWVzIiwiZWRpdEhhbmRsZVR5cGUiLCJnZXRFZGl0SGFuZGxlT3V0bGluZUNvbG9yIiwiZ2V0RWRpdEhhbmRsZVJhZGl1cyIsImRlZmF1bHRQcm9wcyIsIm1vZGUiLCJvbkVkaXQiLCJwaWNrYWJsZSIsInBpY2tpbmdSYWRpdXMiLCJwaWNraW5nRGVwdGgiLCJmcDY0IiwiZmlsbGVkIiwic3Ryb2tlZCIsImxpbmVXaWR0aFNjYWxlIiwibGluZVdpZHRoTWluUGl4ZWxzIiwibGluZVdpZHRoTWF4UGl4ZWxzIiwiTnVtYmVyIiwiTUFYX1NBRkVfSU5URUdFUiIsImxpbmVXaWR0aFVuaXRzIiwibGluZUpvaW50Um91bmRlZCIsImxpbmVNaXRlckxpbWl0IiwicG9pbnRSYWRpdXNTY2FsZSIsInBvaW50UmFkaXVzTWluUGl4ZWxzIiwicG9pbnRSYWRpdXNNYXhQaXhlbHMiLCJnZXRMaW5lQ29sb3IiLCJpc1NlbGVjdGVkIiwiZ2V0RmlsbENvbG9yIiwiZ2V0UmFkaXVzIiwiZiIsInJhZGl1cyIsInNpemUiLCJnZXRMaW5lV2lkdGgiLCJsaW5lV2lkdGgiLCJnZXRUZW50YXRpdmVMaW5lQ29sb3IiLCJnZXRUZW50YXRpdmVGaWxsQ29sb3IiLCJnZXRUZW50YXRpdmVMaW5lV2lkdGgiLCJlZGl0SGFuZGxlUG9pbnRSYWRpdXNTY2FsZSIsImVkaXRIYW5kbGVQb2ludE91dGxpbmUiLCJlZGl0SGFuZGxlUG9pbnRTdHJva2VXaWR0aCIsImVkaXRIYW5kbGVQb2ludFJhZGl1c01pblBpeGVscyIsImVkaXRIYW5kbGVQb2ludFJhZGl1c01heFBpeGVscyIsImdldEVkaXRIYW5kbGVQb2ludENvbG9yIiwiZ2V0RWRpdEhhbmRsZVBvaW50T3V0bGluZUNvbG9yIiwiZ2V0RWRpdEhhbmRsZVBvaW50UmFkaXVzIiwiZWRpdEhhbmRsZUljb25BdGxhcyIsImVkaXRIYW5kbGVJY29uTWFwcGluZyIsImVkaXRIYW5kbGVJY29uU2l6ZVNjYWxlIiwiZ2V0RWRpdEhhbmRsZUljb24iLCJnZXRFZGl0SGFuZGxlSWNvblNpemUiLCJnZXRFZGl0SGFuZGxlSWNvbkNvbG9yIiwiZ2V0RWRpdEhhbmRsZUljb25BbmdsZSIsImJpbGxib2FyZCIsIm1vZGVOYW1lTWFwcGluZyIsInZpZXciLCJWaWV3TW9kZSIsIm1vZGlmeSIsIk1vZGlmeU1vZGUiLCJ0cmFuc2xhdGUiLCJTbmFwcGFibGVNb2RlIiwiVHJhbnNsYXRlTW9kZSIsInRyYW5zZm9ybSIsIlRyYW5zZm9ybU1vZGUiLCJzY2FsZSIsIlNjYWxlTW9kZSIsInJvdGF0ZSIsIlJvdGF0ZU1vZGUiLCJkdXBsaWNhdGUiLCJEdXBsaWNhdGVNb2RlIiwic3BsaXQiLCJTcGxpdFBvbHlnb25Nb2RlIiwiZXh0cnVkZSIsIkV4dHJ1ZGVNb2RlIiwiZWxldmF0aW9uIiwiRWxldmF0aW9uTW9kZSIsImRyYXdQb2ludCIsIkRyYXdQb2ludE1vZGUiLCJkcmF3TGluZVN0cmluZyIsIkRyYXdMaW5lU3RyaW5nTW9kZSIsImRyYXdQb2x5Z29uIiwiZHJhd1JlY3RhbmdsZSIsIkRyYXdSZWN0YW5nbGVNb2RlIiwiZHJhd0NpcmNsZUZyb21DZW50ZXIiLCJEcmF3Q2lyY2xlRnJvbUNlbnRlck1vZGUiLCJkcmF3Q2lyY2xlQnlCb3VuZGluZ0JveCIsIkRyYXdDaXJjbGVCeURpYW1ldGVyTW9kZSIsImRyYXdFbGxpcHNlQnlCb3VuZGluZ0JveCIsIkRyYXdFbGxpcHNlQnlCb3VuZGluZ0JveE1vZGUiLCJkcmF3UmVjdGFuZ2xlVXNpbmczUG9pbnRzIiwiRHJhd1JlY3RhbmdsZVVzaW5nVGhyZWVQb2ludHNNb2RlIiwiZHJhd0VsbGlwc2VVc2luZzNQb2ludHMiLCJEcmF3RWxsaXBzZVVzaW5nVGhyZWVQb2ludHNNb2RlIiwiZHJhdzkwRGVncmVlUG9seWdvbiIsIkRyYXc5MERlZ3JlZVBvbHlnb25Nb2RlIiwiZHJhd1BvbHlnb25CeURyYWdnaW5nIiwiRHJhd1BvbHlnb25CeURyYWdnaW5nTW9kZSIsIkVkaXRhYmxlR2VvSnNvbkxheWVyIiwic3ViTGF5ZXJQcm9wcyIsImdldFN1YkxheWVyUHJvcHMiLCJpZCIsImRhdGEiLCJwcm9wcyIsInNlbGVjdGlvbkF3YXJlQWNjZXNzb3IiLCJfc3ViTGF5ZXJQcm9wcyIsInVwZGF0ZVRyaWdnZXJzIiwic2VsZWN0ZWRGZWF0dXJlSW5kZXhlcyIsImxheWVycyIsIkdlb0pzb25MYXllciIsImNvbmNhdCIsImNyZWF0ZUd1aWRlc0xheWVycyIsImNyZWF0ZVRvb2x0aXBzTGF5ZXJzIiwic2V0U3RhdGUiLCJzZWxlY3RlZEZlYXR1cmVzIiwiZWRpdEhhbmRsZXMiLCJvcHRzIiwiY2hhbmdlRmxhZ3MiLCJzdGF0ZUNoYW5nZWQiLCJvbGRQcm9wcyIsInN0YXRlIiwicHJvcHNPckRhdGFDaGFuZ2VkIiwiY29uc29sZSIsIndhcm4iLCJNb2RlQ29uc3RydWN0b3IiLCJTdHJpbmciLCJjdXJzb3IiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJlbGVtIiwiZmVhdHVyZXMiLCJtb2RlQ29uZmlnIiwic2VsZWN0ZWRJbmRleGVzIiwibGFzdFBvaW50ZXJNb3ZlRXZlbnQiLCJlZGl0QWN0aW9uIiwib25VcGRhdGVDdXJzb3IiLCJpc0ZlYXR1cmVTZWxlY3RlZCIsImxlbmd0aCIsImZlYXR1cmVJbmRleCIsImluZGV4T2YiLCJpbmNsdWRlcyIsImluZm8iLCJzb3VyY2VMYXllciIsImVuZHNXaXRoIiwiaXNHdWlkZSIsImdldEFjdGl2ZU1vZGUiLCJndWlkZXMiLCJnZXRHdWlkZXMiLCJnZXRNb2RlUHJvcHMiLCJwb2ludExheWVyUHJvcHMiLCJ0eXBlIiwiSWNvbkxheWVyIiwiaWNvbkF0bGFzIiwiaWNvbk1hcHBpbmciLCJzaXplU2NhbGUiLCJnZXRJY29uIiwiZ2V0U2l6ZSIsImdldENvbG9yIiwiZ2V0QW5nbGUiLCJTY2F0dGVycGxvdExheWVyIiwicmFkaXVzU2NhbGUiLCJyYWRpdXNNaW5QaXhlbHMiLCJyYWRpdXNNYXhQaXhlbHMiLCJsYXllciIsInBvaW50cyIsInRvb2x0aXBzIiwiZ2V0VG9vbHRpcHMiLCJUZXh0TGF5ZXIiLCJldmVudCIsImhhbmRsZUNsaWNrIiwiaGFuZGxlU3RhcnREcmFnZ2luZyIsImhhbmRsZURyYWdnaW5nIiwiaGFuZGxlU3RvcERyYWdnaW5nIiwiaGFuZGxlUG9pbnRlck1vdmUiLCJpc0RyYWdnaW5nIiwiRWRpdGFibGVMYXllciIsImxheWVyTmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBOztBQUVBOztBQW1DQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxrQkFBa0IsR0FBRyxDQUFDLEdBQUQsRUFBTSxHQUFOLEVBQVcsR0FBWCxFQUFnQixJQUFoQixDQUEzQjtBQUNB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LFlBQUwsQ0FBa0IsS0FBSzlDLEtBQXZCLENBQS9DO0FBQ0Q7OztrQ0FFYWtFLEssRUFBeUI7QUFDckMsV0FBS3hELFFBQUwsQ0FBYztBQUFFcUIsUUFBQUEsb0JBQW9CLEVBQUVtQztBQUF4QixPQUFkO0FBQ0EsV0FBS3ZCLGFBQUwsR0FBcUI0QixpQkFBckIsQ0FBdUNMLEtBQXZDLEVBQThDLEtBQUtwQixZQUFMLENBQWtCLEtBQUs5QyxLQUF2QixDQUE5QztBQUNEOzs7cUNBRWtEO0FBQUEsVUFBdkN3RSxVQUF1QyxTQUF2Q0EsVUFBdUM7QUFBQSxVQUMzQ2pELE1BRDJDLEdBQ2hDLEtBQUtOLEtBRDJCLENBQzNDTSxNQUQyQzs7QUFFakQsVUFBSSxDQUFDQSxNQUFMLEVBQWE7QUFDWDtBQUNBQSxRQUFBQSxNQUFNLEdBQUdpRCxVQUFVLEdBQUcsVUFBSCxHQUFnQixNQUFuQztBQUNEOztBQUNELGFBQU9qRCxNQUFQO0FBQ0Q7OztvQ0FFZ0M7QUFDL0IsYUFBTyxLQUFLTixLQUFMLENBQVdoSCxJQUFsQjtBQUNEOzs7O0VBNVErQ3dLLHNCOzs7QUErUWxEOUUsb0JBQW9CLENBQUMrRSxTQUFyQixHQUFpQyxzQkFBakM7QUFDQS9FLG9CQUFvQixDQUFDM0YsWUFBckIsR0FBb0NBLFlBQXBDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGZsb3dcbi8qIGVzbGludC1lbnYgYnJvd3NlciAqL1xuXG5pbXBvcnQgeyBHZW9Kc29uTGF5ZXIsIFNjYXR0ZXJwbG90TGF5ZXIsIEljb25MYXllciwgVGV4dExheWVyIH0gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzJztcblxuaW1wb3J0IHtcbiAgVmlld01vZGUsXG4gIE1vZGlmeU1vZGUsXG4gIFRyYW5zbGF0ZU1vZGUsXG4gIFNjYWxlTW9kZSxcbiAgUm90YXRlTW9kZSxcbiAgRHVwbGljYXRlTW9kZSxcbiAgU3BsaXRQb2x5Z29uTW9kZSxcbiAgRXh0cnVkZU1vZGUsXG4gIEVsZXZhdGlvbk1vZGUsXG4gIERyYXdQb2ludE1vZGUsXG4gIERyYXdMaW5lU3RyaW5nTW9kZSxcbiAgRHJhd1BvbHlnb25Nb2RlLFxuICBEcmF3UmVjdGFuZ2xlTW9kZSxcbiAgRHJhd0NpcmNsZUZyb21DZW50ZXJNb2RlLFxuICBEcmF3Q2lyY2xlQnlEaWFtZXRlck1vZGUsXG4gIERyYXdFbGxpcHNlQnlCb3VuZGluZ0JveE1vZGUsXG4gIERyYXdSZWN0YW5nbGVVc2luZ1RocmVlUG9pbnRzTW9kZSxcbiAgRHJhd0VsbGlwc2VVc2luZ1RocmVlUG9pbnRzTW9kZSxcbiAgRHJhdzkwRGVncmVlUG9seWdvbk1vZGUsXG4gIERyYXdQb2x5Z29uQnlEcmFnZ2luZ01vZGUsXG4gIFNuYXBwYWJsZU1vZGUsXG4gIFRyYW5zZm9ybU1vZGVcbn0gZnJvbSAnQG5lYnVsYS5nbC9lZGl0LW1vZGVzJztcblxuaW1wb3J0IHR5cGUge1xuICBFZGl0QWN0aW9uLFxuICBDbGlja0V2ZW50LFxuICBTdGFydERyYWdnaW5nRXZlbnQsXG4gIFN0b3BEcmFnZ2luZ0V2ZW50LFxuICBEcmFnZ2luZ0V2ZW50LFxuICBQb2ludGVyTW92ZUV2ZW50LFxuICBHZW9Kc29uRWRpdE1vZGUsXG4gIEZlYXR1cmVDb2xsZWN0aW9uXG59IGZyb20gJ0BuZWJ1bGEuZ2wvZWRpdC1tb2Rlcyc7XG5pbXBvcnQgRWRpdGFibGVMYXllciBmcm9tICcuL2VkaXRhYmxlLWxheWVyLmpzJztcblxuY29uc3QgREVGQVVMVF9MSU5FX0NPTE9SID0gWzB4MCwgMHgwLCAweDAsIDB4ZmZdO1xuY29uc3QgREVGQVVMVF9GSUxMX0NPTE9SID0gWzB4MCwgMHgwLCAweDAsIDB4OTBdO1xuY29uc3QgREVGQVVMVF9TRUxFQ1RFRF9MSU5FX0NPTE9SID0gWzB4OTAsIDB4OTAsIDB4OTAsIDB4ZmZdO1xuY29uc3QgREVGQVVMVF9TRUxFQ1RFRF9GSUxMX0NPTE9SID0gWzB4OTAsIDB4OTAsIDB4OTAsIDB4OTBdO1xuY29uc3QgREVGQVVMVF9FRElUSU5HX0VYSVNUSU5HX1BPSU5UX0NPTE9SID0gWzB4YzAsIDB4MCwgMHgwLCAweGZmXTtcbmNvbnN0IERFRkFVTFRfRURJVElOR19JTlRFUk1FRElBVEVfUE9JTlRfQ09MT1IgPSBbMHgwLCAweDAsIDB4MCwgMHg4MF07XG5jb25zdCBERUZBVUxUX0VESVRJTkdfU05BUF9QT0lOVF9DT0xPUiA9IFsweDdjLCAweDAwLCAweGMwLCAweGZmXTtcbmNvbnN0IERFRkFVTFRfRURJVElOR19QT0lOVF9PVVRMSU5FX0NPTE9SID0gWzB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmZdO1xuY29uc3QgREVGQVVMVF9FRElUSU5HX0VYSVNUSU5HX1BPSU5UX1JBRElVUyA9IDU7XG5jb25zdCBERUZBVUxUX0VESVRJTkdfSU5URVJNRURJQVRFX1BPSU5UX1JBRElVUyA9IDM7XG5jb25zdCBERUZBVUxUX0VESVRJTkdfU05BUF9QT0lOVF9SQURJVVMgPSA3O1xuXG5jb25zdCBERUZBVUxUX0VESVRfTU9ERSA9IERyYXdQb2x5Z29uTW9kZTtcblxuZnVuY3Rpb24gZ3VpZGVBY2Nlc3NvcihhY2Nlc3Nvcikge1xuICBpZiAoIWFjY2Vzc29yIHx8IHR5cGVvZiBhY2Nlc3NvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBhY2Nlc3NvcjtcbiAgfVxuICByZXR1cm4gZ3VpZGVNYXliZVdyYXBwZWQgPT4gYWNjZXNzb3IodW53cmFwR3VpZGUoZ3VpZGVNYXliZVdyYXBwZWQpKTtcbn1cblxuLy8gVGhlIG9iamVjdCBoYW5kZWQgdG8gdXMgZnJvbSBkZWNrLmdsIGlzIGRpZmZlcmVudCBkZXBlbmRpbmcgb24gdGhlIHZlcnNpb24gb2YgZGVjay5nbCB1c2VkLCB1bndyYXAgYXMgbmVjZXNzYXJ5XG5mdW5jdGlvbiB1bndyYXBHdWlkZShndWlkZU1heWJlV3JhcHBlZCkge1xuICBpZiAoZ3VpZGVNYXliZVdyYXBwZWQuX19zb3VyY2UpIHtcbiAgICByZXR1cm4gZ3VpZGVNYXliZVdyYXBwZWQuX19zb3VyY2Uub2JqZWN0O1xuICB9IGVsc2UgaWYgKGd1aWRlTWF5YmVXcmFwcGVkLnNvdXJjZUZlYXR1cmUpIHtcbiAgICByZXR1cm4gZ3VpZGVNYXliZVdyYXBwZWQuc291cmNlRmVhdHVyZS5mZWF0dXJlO1xuICB9XG4gIC8vIEl0IGlzIG5vdCB3cmFwcGVkLCByZXR1cm4gYXMgaXNcbiAgcmV0dXJuIGd1aWRlTWF5YmVXcmFwcGVkO1xufVxuXG5mdW5jdGlvbiBnZXRFZGl0SGFuZGxlQ29sb3IoaGFuZGxlKSB7XG4gIHN3aXRjaCAoaGFuZGxlLnByb3BlcnRpZXMuZWRpdEhhbmRsZVR5cGUpIHtcbiAgICBjYXNlICdleGlzdGluZyc6XG4gICAgICByZXR1cm4gREVGQVVMVF9FRElUSU5HX0VYSVNUSU5HX1BPSU5UX0NPTE9SO1xuICAgIGNhc2UgJ3NuYXAtc291cmNlJzpcbiAgICAgIHJldHVybiBERUZBVUxUX0VESVRJTkdfU05BUF9QT0lOVF9DT0xPUjtcbiAgICBjYXNlICdpbnRlcm1lZGlhdGUnOlxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gREVGQVVMVF9FRElUSU5HX0lOVEVSTUVESUFURV9QT0lOVF9DT0xPUjtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRFZGl0SGFuZGxlT3V0bGluZUNvbG9yKGhhbmRsZSkge1xuICByZXR1cm4gREVGQVVMVF9FRElUSU5HX1BPSU5UX09VVExJTkVfQ09MT1I7XG59XG5cbmZ1bmN0aW9uIGdldEVkaXRIYW5kbGVSYWRpdXMoaGFuZGxlKSB7XG4gIHN3aXRjaCAoaGFuZGxlLnByb3BlcnRpZXMuZWRpdEhhbmRsZVR5cGUpIHtcbiAgICBjYXNlICdleGlzdGluZyc6XG4gICAgICByZXR1cm4gREVGQVVMVF9FRElUSU5HX0VYSVNUSU5HX1BPSU5UX1JBRElVUztcbiAgICBjYXNlICdzbmFwJzpcbiAgICAgIHJldHVybiBERUZBVUxUX0VESVRJTkdfU05BUF9QT0lOVF9SQURJVVM7XG4gICAgY2FzZSAnaW50ZXJtZWRpYXRlJzpcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIERFRkFVTFRfRURJVElOR19JTlRFUk1FRElBVEVfUE9JTlRfUkFESVVTO1xuICB9XG59XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgbW9kZTogRHJhd1BvbHlnb25Nb2RlLFxuXG4gIC8vIEVkaXQgYW5kIGludGVyYWN0aW9uIGV2ZW50c1xuICBvbkVkaXQ6ICgpID0+IHt9LFxuXG4gIHBpY2thYmxlOiB0cnVlLFxuICBwaWNraW5nUmFkaXVzOiAxMCxcbiAgcGlja2luZ0RlcHRoOiA1LFxuICBmcDY0OiBmYWxzZSxcbiAgZmlsbGVkOiB0cnVlLFxuICBzdHJva2VkOiB0cnVlLFxuICBsaW5lV2lkdGhTY2FsZTogMSxcbiAgbGluZVdpZHRoTWluUGl4ZWxzOiAxLFxuICBsaW5lV2lkdGhNYXhQaXhlbHM6IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSLFxuICBsaW5lV2lkdGhVbml0czogJ3BpeGVscycsXG4gIGxpbmVKb2ludFJvdW5kZWQ6IGZhbHNlLFxuICBsaW5lTWl0ZXJMaW1pdDogNCxcbiAgcG9pbnRSYWRpdXNTY2FsZTogMSxcbiAgcG9pbnRSYWRpdXNNaW5QaXhlbHM6IDIsXG4gIHBvaW50UmFkaXVzTWF4UGl4ZWxzOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcbiAgZ2V0TGluZUNvbG9yOiAoZmVhdHVyZSwgaXNTZWxlY3RlZCwgbW9kZSkgPT5cbiAgICBpc1NlbGVjdGVkID8gREVGQVVMVF9TRUxFQ1RFRF9MSU5FX0NPTE9SIDogREVGQVVMVF9MSU5FX0NPTE9SLFxuICBnZXRGaWxsQ29sb3I6IChmZWF0dXJlLCBpc1NlbGVjdGVkLCBtb2RlKSA9PlxuICAgIGlzU2VsZWN0ZWQgPyBERUZBVUxUX1NFTEVDVEVEX0ZJTExfQ09MT1IgOiBERUZBVUxUX0ZJTExfQ09MT1IsXG4gIGdldFJhZGl1czogZiA9PlxuICAgIChmICYmIGYucHJvcGVydGllcyAmJiBmLnByb3BlcnRpZXMucmFkaXVzKSB8fCAoZiAmJiBmLnByb3BlcnRpZXMgJiYgZi5wcm9wZXJ0aWVzLnNpemUpIHx8IDEsXG4gIGdldExpbmVXaWR0aDogZiA9PiAoZiAmJiBmLnByb3BlcnRpZXMgJiYgZi5wcm9wZXJ0aWVzLmxpbmVXaWR0aCkgfHwgMyxcblxuICAvLyBUZW50YXRpdmUgZmVhdHVyZSByZW5kZXJpbmdcbiAgZ2V0VGVudGF0aXZlTGluZUNvbG9yOiBmID0+IERFRkFVTFRfU0VMRUNURURfTElORV9DT0xPUixcbiAgZ2V0VGVudGF0aXZlRmlsbENvbG9yOiBmID0+IERFRkFVTFRfU0VMRUNURURfRklMTF9DT0xPUixcbiAgZ2V0VGVudGF0aXZlTGluZVdpZHRoOiBmID0+IChmICYmIGYucHJvcGVydGllcyAmJiBmLnByb3BlcnRpZXMubGluZVdpZHRoKSB8fCAzLFxuXG4gIGVkaXRIYW5kbGVUeXBlOiAncG9pbnQnLFxuXG4gIC8vIHBvaW50IGhhbmRsZXNcbiAgZWRpdEhhbmRsZVBvaW50UmFkaXVzU2NhbGU6IDEsXG4gIGVkaXRIYW5kbGVQb2ludE91dGxpbmU6IHRydWUsXG4gIGVkaXRIYW5kbGVQb2ludFN0cm9rZVdpZHRoOiAyLFxuICBlZGl0SGFuZGxlUG9pbnRSYWRpdXNNaW5QaXhlbHM6IDQsXG4gIGVkaXRIYW5kbGVQb2ludFJhZGl1c01heFBpeGVsczogOCxcbiAgZ2V0RWRpdEhhbmRsZVBvaW50Q29sb3I6IGdldEVkaXRIYW5kbGVDb2xvcixcbiAgZ2V0RWRpdEhhbmRsZVBvaW50T3V0bGluZUNvbG9yOiBnZXRFZGl0SGFuZGxlT3V0bGluZUNvbG9yLFxuICBnZXRFZGl0SGFuZGxlUG9pbnRSYWRpdXM6IGdldEVkaXRIYW5kbGVSYWRpdXMsXG5cbiAgLy8gaWNvbiBoYW5kbGVzXG4gIGVkaXRIYW5kbGVJY29uQXRsYXM6IG51bGwsXG4gIGVkaXRIYW5kbGVJY29uTWFwcGluZzogbnVsbCxcbiAgZWRpdEhhbmRsZUljb25TaXplU2NhbGU6IDEsXG4gIGdldEVkaXRIYW5kbGVJY29uOiBoYW5kbGUgPT4gaGFuZGxlLnByb3BlcnRpZXMuZWRpdEhhbmRsZVR5cGUsXG4gIGdldEVkaXRIYW5kbGVJY29uU2l6ZTogMTAsXG4gIGdldEVkaXRIYW5kbGVJY29uQ29sb3I6IGdldEVkaXRIYW5kbGVDb2xvcixcbiAgZ2V0RWRpdEhhbmRsZUljb25BbmdsZTogMCxcblxuICAvLyBtaXNjXG4gIGJpbGxib2FyZDogdHJ1ZVxufTtcblxuLy8gTWFwcGluZyBvZiBtb2RlIG5hbWUgdG8gbW9kZSBjbGFzcyAoZm9yIGxlZ2FjeSBwdXJwb3NlcylcbmNvbnN0IG1vZGVOYW1lTWFwcGluZyA9IHtcbiAgdmlldzogVmlld01vZGUsXG5cbiAgLy8gQWx0ZXIgbW9kZXNcbiAgbW9kaWZ5OiBNb2RpZnlNb2RlLFxuICB0cmFuc2xhdGU6IG5ldyBTbmFwcGFibGVNb2RlKG5ldyBUcmFuc2xhdGVNb2RlKCkpLFxuXG4gIHRyYW5zZm9ybTogbmV3IFNuYXBwYWJsZU1vZGUobmV3IFRyYW5zZm9ybU1vZGUoKSksXG4gIHNjYWxlOiBTY2FsZU1vZGUsXG4gIHJvdGF0ZTogUm90YXRlTW9kZSxcbiAgZHVwbGljYXRlOiBEdXBsaWNhdGVNb2RlLFxuICBzcGxpdDogU3BsaXRQb2x5Z29uTW9kZSxcbiAgZXh0cnVkZTogRXh0cnVkZU1vZGUsXG4gIGVsZXZhdGlvbjogRWxldmF0aW9uTW9kZSxcblxuICAvLyBEcmF3IG1vZGVzXG4gIGRyYXdQb2ludDogRHJhd1BvaW50TW9kZSxcbiAgZHJhd0xpbmVTdHJpbmc6IERyYXdMaW5lU3RyaW5nTW9kZSxcbiAgZHJhd1BvbHlnb246IERyYXdQb2x5Z29uTW9kZSxcbiAgZHJhd1JlY3RhbmdsZTogRHJhd1JlY3RhbmdsZU1vZGUsXG4gIGRyYXdDaXJjbGVGcm9tQ2VudGVyOiBEcmF3Q2lyY2xlRnJvbUNlbnRlck1vZGUsXG4gIGRyYXdDaXJjbGVCeUJvdW5kaW5nQm94OiBEcmF3Q2lyY2xlQnlEaWFtZXRlck1vZGUsXG4gIGRyYXdFbGxpcHNlQnlCb3VuZGluZ0JveDogRHJhd0VsbGlwc2VCeUJvdW5kaW5nQm94TW9kZSxcbiAgZHJhd1JlY3RhbmdsZVVzaW5nM1BvaW50czogRHJhd1JlY3RhbmdsZVVzaW5nVGhyZWVQb2ludHNNb2RlLFxuICBkcmF3RWxsaXBzZVVzaW5nM1BvaW50czogRHJhd0VsbGlwc2VVc2luZ1RocmVlUG9pbnRzTW9kZSxcbiAgZHJhdzkwRGVncmVlUG9seWdvbjogRHJhdzkwRGVncmVlUG9seWdvbk1vZGUsXG4gIGRyYXdQb2x5Z29uQnlEcmFnZ2luZzogRHJhd1BvbHlnb25CeURyYWdnaW5nTW9kZVxufTtcblxudHlwZSBQcm9wcyA9IHtcbiAgbW9kZTogc3RyaW5nIHwgR2VvSnNvbkVkaXRNb2RlIHwgQ2xhc3M8R2VvSnNvbkVkaXRNb2RlPixcbiAgb25FZGl0OiAoRWRpdEFjdGlvbjxGZWF0dXJlQ29sbGVjdGlvbj4pID0+IHZvaWQsXG4gIC8vIFRPRE86IHR5cGUgdGhlIHJlc3RcbiAgW3N0cmluZ106IGFueVxufTtcblxuLy8gdHlwZSBTdGF0ZSA9IHtcbi8vICAgbW9kZTogR2VvSnNvbkVkaXRNb2RlLFxuLy8gICB0ZW50YXRpdmVGZWF0dXJlOiA/RmVhdHVyZSxcbi8vICAgZWRpdEhhbmRsZXM6IGFueVtdLFxuLy8gICBzZWxlY3RlZEZlYXR1cmVzOiBGZWF0dXJlW11cbi8vIH07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVkaXRhYmxlR2VvSnNvbkxheWVyIGV4dGVuZHMgRWRpdGFibGVMYXllciB7XG4gIC8vIHN0YXRlOiBTdGF0ZTtcbiAgLy8gcHJvcHM6IFByb3BzO1xuICAvLyBzZXRTdGF0ZTogKCRTaGFwZTxTdGF0ZT4pID0+IHZvaWQ7XG5cbiAgcmVuZGVyTGF5ZXJzKCkge1xuICAgIGNvbnN0IHN1YkxheWVyUHJvcHMgPSB0aGlzLmdldFN1YkxheWVyUHJvcHMoe1xuICAgICAgaWQ6ICdnZW9qc29uJyxcblxuICAgICAgLy8gUHJveHkgbW9zdCBHZW9Kc29uTGF5ZXIgcHJvcHMgYXMtaXNcbiAgICAgIGRhdGE6IHRoaXMucHJvcHMuZGF0YSxcbiAgICAgIGZwNjQ6IHRoaXMucHJvcHMuZnA2NCxcbiAgICAgIGZpbGxlZDogdGhpcy5wcm9wcy5maWxsZWQsXG4gICAgICBzdHJva2VkOiB0aGlzLnByb3BzLnN0cm9rZWQsXG4gICAgICBsaW5lV2lkdGhTY2FsZTogdGhpcy5wcm9wcy5saW5lV2lkdGhTY2FsZSxcbiAgICAgIGxpbmVXaWR0aE1pblBpeGVsczogdGhpcy5wcm9wcy5saW5lV2lkdGhNaW5QaXhlbHMsXG4gICAgICBsaW5lV2lkdGhNYXhQaXhlbHM6IHRoaXMucHJvcHMubGluZVdpZHRoTWF4UGl4ZWxzLFxuICAgICAgbGluZVdpZHRoVW5pdHM6IHRoaXMucHJvcHMubGluZVdpZHRoVW5pdHMsXG4gICAgICBsaW5lSm9pbnRSb3VuZGVkOiB0aGlzLnByb3BzLmxpbmVKb2ludFJvdW5kZWQsXG4gICAgICBsaW5lTWl0ZXJMaW1pdDogdGhpcy5wcm9wcy5saW5lTWl0ZXJMaW1pdCxcbiAgICAgIHBvaW50UmFkaXVzU2NhbGU6IHRoaXMucHJvcHMucG9pbnRSYWRpdXNTY2FsZSxcbiAgICAgIHBvaW50UmFkaXVzTWluUGl4ZWxzOiB0aGlzLnByb3BzLnBvaW50UmFkaXVzTWluUGl4ZWxzLFxuICAgICAgcG9pbnRSYWRpdXNNYXhQaXhlbHM6IHRoaXMucHJvcHMucG9pbnRSYWRpdXNNYXhQaXhlbHMsXG4gICAgICBnZXRMaW5lQ29sb3I6IHRoaXMuc2VsZWN0aW9uQXdhcmVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldExpbmVDb2xvciksXG4gICAgICBnZXRGaWxsQ29sb3I6IHRoaXMuc2VsZWN0aW9uQXdhcmVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldEZpbGxDb2xvciksXG4gICAgICBnZXRSYWRpdXM6IHRoaXMuc2VsZWN0aW9uQXdhcmVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldFJhZGl1cyksXG4gICAgICBnZXRMaW5lV2lkdGg6IHRoaXMuc2VsZWN0aW9uQXdhcmVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldExpbmVXaWR0aCksXG5cbiAgICAgIF9zdWJMYXllclByb3BzOiB7XG4gICAgICAgICdsaW5lLXN0cmluZ3MnOiB7XG4gICAgICAgICAgYmlsbGJvYXJkOiB0aGlzLnByb3BzLmJpbGxib2FyZFxuICAgICAgICB9LFxuICAgICAgICAncG9seWdvbnMtc3Ryb2tlJzoge1xuICAgICAgICAgIGJpbGxib2FyZDogdGhpcy5wcm9wcy5iaWxsYm9hcmRcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgdXBkYXRlVHJpZ2dlcnM6IHtcbiAgICAgICAgZ2V0TGluZUNvbG9yOiBbdGhpcy5wcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzLCB0aGlzLnByb3BzLm1vZGVdLFxuICAgICAgICBnZXRGaWxsQ29sb3I6IFt0aGlzLnByb3BzLnNlbGVjdGVkRmVhdHVyZUluZGV4ZXMsIHRoaXMucHJvcHMubW9kZV0sXG4gICAgICAgIGdldFJhZGl1czogW3RoaXMucHJvcHMuc2VsZWN0ZWRGZWF0dXJlSW5kZXhlcywgdGhpcy5wcm9wcy5tb2RlXSxcbiAgICAgICAgZ2V0TGluZVdpZHRoOiBbdGhpcy5wcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzLCB0aGlzLnByb3BzLm1vZGVdXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBsZXQgbGF5ZXJzOiBhbnkgPSBbbmV3IEdlb0pzb25MYXllcihzdWJMYXllclByb3BzKV07XG5cbiAgICBsYXllcnMgPSBsYXllcnMuY29uY2F0KHRoaXMuY3JlYXRlR3VpZGVzTGF5ZXJzKCksIHRoaXMuY3JlYXRlVG9vbHRpcHNMYXllcnMoKSk7XG5cbiAgICByZXR1cm4gbGF5ZXJzO1xuICB9XG5cbiAgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIHN1cGVyLmluaXRpYWxpemVTdGF0ZSgpO1xuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBzZWxlY3RlZEZlYXR1cmVzOiBbXSxcbiAgICAgIGVkaXRIYW5kbGVzOiBbXVxuICAgIH0pO1xuICB9XG5cbiAgLy8gVE9ETzogaXMgdGhpcyB0aGUgYmVzdCB3YXkgdG8gcHJvcGVybHkgdXBkYXRlIHN0YXRlIGZyb20gYW4gb3V0c2lkZSBldmVudCBoYW5kbGVyP1xuICBzaG91bGRVcGRhdGVTdGF0ZShvcHRzOiBhbnkpIHtcbiAgICAvLyBjb25zb2xlLmxvZyhcbiAgICAvLyAgICdzaG91bGRVcGRhdGVTdGF0ZScsXG4gICAgLy8gICBvcHRzLmNoYW5nZUZsYWdzLnByb3BzT3JEYXRhQ2hhbmdlZCxcbiAgICAvLyAgIG9wdHMuY2hhbmdlRmxhZ3Muc3RhdGVDaGFuZ2VkXG4gICAgLy8gKTtcbiAgICByZXR1cm4gc3VwZXIuc2hvdWxkVXBkYXRlU3RhdGUob3B0cykgfHwgb3B0cy5jaGFuZ2VGbGFncy5zdGF0ZUNoYW5nZWQ7XG4gIH1cblxuICB1cGRhdGVTdGF0ZSh7XG4gICAgcHJvcHMsXG4gICAgb2xkUHJvcHMsXG4gICAgY2hhbmdlRmxhZ3NcbiAgfToge1xuICAgIHByb3BzOiBQcm9wcyxcbiAgICBvbGRQcm9wczogUHJvcHMsXG4gICAgY2hhbmdlRmxhZ3M6IGFueVxuICB9KSB7XG4gICAgc3VwZXIudXBkYXRlU3RhdGUoeyBwcm9wcywgY2hhbmdlRmxhZ3MgfSk7XG5cbiAgICBsZXQgbW9kZSA9IHRoaXMuc3RhdGUubW9kZTtcbiAgICBpZiAoY2hhbmdlRmxhZ3MucHJvcHNPckRhdGFDaGFuZ2VkKSB7XG4gICAgICBpZiAocHJvcHMubW9kZSAhPT0gb2xkUHJvcHMubW9kZSkge1xuICAgICAgICBpZiAodHlwZW9mIHByb3BzLm1vZGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgLy8gTG9va3VwIHRoZSBtb2RlIGJhc2VkIG9uIGl0cyBuYW1lIChmb3IgbGVnYWN5IHB1cnBvc2VzKVxuICAgICAgICAgIG1vZGUgPSBtb2RlTmFtZU1hcHBpbmdbcHJvcHMubW9kZV07XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBcIkRlcHJlY2F0ZWQgdXNlIG9mIHBhc3NpbmcgYG1vZGVgIGFzIGEgc3RyaW5nLiBQYXNzIHRoZSBtb2RlJ3MgY2xhc3MgY29uc3RydWN0b3IgaW5zdGVhZC5cIlxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbW9kZSA9IHByb3BzLm1vZGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIG1vZGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBjb25zdCBNb2RlQ29uc3RydWN0b3IgPSBtb2RlO1xuICAgICAgICAgIG1vZGUgPSBuZXcgTW9kZUNvbnN0cnVjdG9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYE5vIG1vZGUgY29uZmlndXJlZCBmb3IgJHtTdHJpbmcocHJvcHMubW9kZSl9YCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc29sZSxuby11bmRlZlxuICAgICAgICAgIC8vIFVzZSBkZWZhdWx0IG1vZGVcbiAgICAgICAgICBtb2RlID0gREVGQVVMVF9FRElUX01PREU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobW9kZSAhPT0gdGhpcy5zdGF0ZS5tb2RlKSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG1vZGUsIGN1cnNvcjogbnVsbCB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBzZWxlY3RlZEZlYXR1cmVzID0gW107XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcHMuc2VsZWN0ZWRGZWF0dXJlSW5kZXhlcykpIHtcbiAgICAgIC8vIFRPRE86IG5lZWRzIGltcHJvdmVkIHRlc3RpbmcsIGkuZS4gY2hlY2tpbmcgZm9yIGR1cGxpY2F0ZXMsIE5hTnMsIG91dCBvZiByYW5nZSBudW1iZXJzLCAuLi5cbiAgICAgIHNlbGVjdGVkRmVhdHVyZXMgPSBwcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzLm1hcChlbGVtID0+IHByb3BzLmRhdGEuZmVhdHVyZXNbZWxlbV0pO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U3RhdGUoeyBzZWxlY3RlZEZlYXR1cmVzIH0pO1xuICB9XG5cbiAgZ2V0TW9kZVByb3BzKHByb3BzOiBQcm9wcykge1xuICAgIHJldHVybiB7XG4gICAgICBtb2RlQ29uZmlnOiBwcm9wcy5tb2RlQ29uZmlnLFxuICAgICAgZGF0YTogcHJvcHMuZGF0YSxcbiAgICAgIHNlbGVjdGVkSW5kZXhlczogcHJvcHMuc2VsZWN0ZWRGZWF0dXJlSW5kZXhlcyxcbiAgICAgIGxhc3RQb2ludGVyTW92ZUV2ZW50OiB0aGlzLnN0YXRlLmxhc3RQb2ludGVyTW92ZUV2ZW50LFxuICAgICAgY3Vyc29yOiB0aGlzLnN0YXRlLmN1cnNvcixcbiAgICAgIG9uRWRpdDogKGVkaXRBY3Rpb246IEVkaXRBY3Rpb248RmVhdHVyZUNvbGxlY3Rpb24+KSA9PiB7XG4gICAgICAgIHByb3BzLm9uRWRpdChlZGl0QWN0aW9uKTtcbiAgICAgIH0sXG4gICAgICBvblVwZGF0ZUN1cnNvcjogKGN1cnNvcjogP3N0cmluZykgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgY3Vyc29yIH0pO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBzZWxlY3Rpb25Bd2FyZUFjY2Vzc29yKGFjY2Vzc29yOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIGFjY2Vzc29yICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gYWNjZXNzb3I7XG4gICAgfVxuICAgIHJldHVybiAoZmVhdHVyZTogT2JqZWN0KSA9PiBhY2Nlc3NvcihmZWF0dXJlLCB0aGlzLmlzRmVhdHVyZVNlbGVjdGVkKGZlYXR1cmUpLCB0aGlzLnByb3BzLm1vZGUpO1xuICB9XG5cbiAgaXNGZWF0dXJlU2VsZWN0ZWQoZmVhdHVyZTogT2JqZWN0KSB7XG4gICAgaWYgKCF0aGlzLnByb3BzLmRhdGEgfHwgIXRoaXMucHJvcHMuc2VsZWN0ZWRGZWF0dXJlSW5kZXhlcykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucHJvcHMuc2VsZWN0ZWRGZWF0dXJlSW5kZXhlcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgZmVhdHVyZUluZGV4ID0gdGhpcy5wcm9wcy5kYXRhLmZlYXR1cmVzLmluZGV4T2YoZmVhdHVyZSk7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuc2VsZWN0ZWRGZWF0dXJlSW5kZXhlcy5pbmNsdWRlcyhmZWF0dXJlSW5kZXgpO1xuICB9XG5cbiAgZ2V0UGlja2luZ0luZm8oeyBpbmZvLCBzb3VyY2VMYXllciB9OiBPYmplY3QpIHtcbiAgICBpZiAoc291cmNlTGF5ZXIuaWQuZW5kc1dpdGgoJ2d1aWRlcycpKSB7XG4gICAgICAvLyBJZiB1c2VyIGlzIHBpY2tpbmcgYW4gZWRpdGluZyBoYW5kbGUsIGFkZCBhZGRpdGlvbmFsIGRhdGEgdG8gdGhlIGluZm9cbiAgICAgIGluZm8uaXNHdWlkZSA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluZm87XG4gIH1cblxuICBjcmVhdGVHdWlkZXNMYXllcnMoKSB7XG4gICAgY29uc3QgbW9kZSA9IHRoaXMuZ2V0QWN0aXZlTW9kZSgpO1xuICAgIGNvbnN0IGd1aWRlczogRmVhdHVyZUNvbGxlY3Rpb24gPSBtb2RlLmdldEd1aWRlcyh0aGlzLmdldE1vZGVQcm9wcyh0aGlzLnByb3BzKSk7XG5cbiAgICBpZiAoIWd1aWRlcyB8fCAhZ3VpZGVzLmZlYXR1cmVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGxldCBwb2ludExheWVyUHJvcHM7XG4gICAgaWYgKHRoaXMucHJvcHMuZWRpdEhhbmRsZVR5cGUgPT09ICdpY29uJykge1xuICAgICAgcG9pbnRMYXllclByb3BzID0ge1xuICAgICAgICB0eXBlOiBJY29uTGF5ZXIsXG4gICAgICAgIGljb25BdGxhczogdGhpcy5wcm9wcy5lZGl0SGFuZGxlSWNvbkF0bGFzLFxuICAgICAgICBpY29uTWFwcGluZzogdGhpcy5wcm9wcy5lZGl0SGFuZGxlSWNvbk1hcHBpbmcsXG4gICAgICAgIHNpemVTY2FsZTogdGhpcy5wcm9wcy5lZGl0SGFuZGxlSWNvblNpemVTY2FsZSxcbiAgICAgICAgZ2V0SWNvbjogZ3VpZGVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldEVkaXRIYW5kbGVJY29uKSxcbiAgICAgICAgZ2V0U2l6ZTogZ3VpZGVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldEVkaXRIYW5kbGVJY29uU2l6ZSksXG4gICAgICAgIGdldENvbG9yOiBndWlkZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0RWRpdEhhbmRsZUljb25Db2xvciksXG4gICAgICAgIGdldEFuZ2xlOiBndWlkZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0RWRpdEhhbmRsZUljb25BbmdsZSlcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvaW50TGF5ZXJQcm9wcyA9IHtcbiAgICAgICAgdHlwZTogU2NhdHRlcnBsb3RMYXllcixcbiAgICAgICAgcmFkaXVzU2NhbGU6IHRoaXMucHJvcHMuZWRpdEhhbmRsZVBvaW50UmFkaXVzU2NhbGUsXG4gICAgICAgIHN0cm9rZWQ6IHRoaXMucHJvcHMuZWRpdEhhbmRsZVBvaW50T3V0bGluZSxcbiAgICAgICAgZ2V0TGluZVdpZHRoOiB0aGlzLnByb3BzLmVkaXRIYW5kbGVQb2ludFN0cm9rZVdpZHRoLFxuICAgICAgICByYWRpdXNNaW5QaXhlbHM6IHRoaXMucHJvcHMuZWRpdEhhbmRsZVBvaW50UmFkaXVzTWluUGl4ZWxzLFxuICAgICAgICByYWRpdXNNYXhQaXhlbHM6IHRoaXMucHJvcHMuZWRpdEhhbmRsZVBvaW50UmFkaXVzTWF4UGl4ZWxzLFxuICAgICAgICBnZXRSYWRpdXM6IGd1aWRlQWNjZXNzb3IodGhpcy5wcm9wcy5nZXRFZGl0SGFuZGxlUG9pbnRSYWRpdXMpLFxuICAgICAgICBnZXRGaWxsQ29sb3I6IGd1aWRlQWNjZXNzb3IodGhpcy5wcm9wcy5nZXRFZGl0SGFuZGxlUG9pbnRDb2xvciksXG4gICAgICAgIGdldExpbmVDb2xvcjogZ3VpZGVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldEVkaXRIYW5kbGVQb2ludE91dGxpbmVDb2xvcilcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgbGF5ZXIgPSBuZXcgR2VvSnNvbkxheWVyKFxuICAgICAgdGhpcy5nZXRTdWJMYXllclByb3BzKHtcbiAgICAgICAgaWQ6IGBndWlkZXNgLFxuICAgICAgICBkYXRhOiBndWlkZXMsXG4gICAgICAgIGZwNjQ6IHRoaXMucHJvcHMuZnA2NCxcbiAgICAgICAgX3N1YkxheWVyUHJvcHM6IHtcbiAgICAgICAgICBwb2ludHM6IHBvaW50TGF5ZXJQcm9wc1xuICAgICAgICB9LFxuICAgICAgICBsaW5lV2lkdGhTY2FsZTogdGhpcy5wcm9wcy5saW5lV2lkdGhTY2FsZSxcbiAgICAgICAgbGluZVdpZHRoTWluUGl4ZWxzOiB0aGlzLnByb3BzLmxpbmVXaWR0aE1pblBpeGVscyxcbiAgICAgICAgbGluZVdpZHRoTWF4UGl4ZWxzOiB0aGlzLnByb3BzLmxpbmVXaWR0aE1heFBpeGVscyxcbiAgICAgICAgbGluZVdpZHRoVW5pdHM6IHRoaXMucHJvcHMubGluZVdpZHRoVW5pdHMsXG4gICAgICAgIGxpbmVKb2ludFJvdW5kZWQ6IHRoaXMucHJvcHMubGluZUpvaW50Um91bmRlZCxcbiAgICAgICAgbGluZU1pdGVyTGltaXQ6IHRoaXMucHJvcHMubGluZU1pdGVyTGltaXQsXG4gICAgICAgIGdldExpbmVDb2xvcjogZ3VpZGVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldFRlbnRhdGl2ZUxpbmVDb2xvciksXG4gICAgICAgIGdldExpbmVXaWR0aDogZ3VpZGVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldFRlbnRhdGl2ZUxpbmVXaWR0aCksXG4gICAgICAgIGdldEZpbGxDb2xvcjogZ3VpZGVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldFRlbnRhdGl2ZUZpbGxDb2xvcilcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHJldHVybiBbbGF5ZXJdO1xuICB9XG5cbiAgY3JlYXRlVG9vbHRpcHNMYXllcnMoKSB7XG4gICAgY29uc3QgbW9kZSA9IHRoaXMuZ2V0QWN0aXZlTW9kZSgpO1xuICAgIGNvbnN0IHRvb2x0aXBzID0gbW9kZS5nZXRUb29sdGlwcyh0aGlzLmdldE1vZGVQcm9wcyh0aGlzLnByb3BzKSk7XG5cbiAgICBjb25zdCBsYXllciA9IG5ldyBUZXh0TGF5ZXIoXG4gICAgICB0aGlzLmdldFN1YkxheWVyUHJvcHMoe1xuICAgICAgICBpZDogYHRvb2x0aXBzYCxcbiAgICAgICAgZGF0YTogdG9vbHRpcHNcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHJldHVybiBbbGF5ZXJdO1xuICB9XG5cbiAgb25MYXllckNsaWNrKGV2ZW50OiBDbGlja0V2ZW50KSB7XG4gICAgdGhpcy5nZXRBY3RpdmVNb2RlKCkuaGFuZGxlQ2xpY2soZXZlbnQsIHRoaXMuZ2V0TW9kZVByb3BzKHRoaXMucHJvcHMpKTtcbiAgfVxuXG4gIG9uU3RhcnREcmFnZ2luZyhldmVudDogU3RhcnREcmFnZ2luZ0V2ZW50KSB7XG4gICAgdGhpcy5nZXRBY3RpdmVNb2RlKCkuaGFuZGxlU3RhcnREcmFnZ2luZyhldmVudCwgdGhpcy5nZXRNb2RlUHJvcHModGhpcy5wcm9wcykpO1xuICB9XG5cbiAgb25EcmFnZ2luZyhldmVudDogRHJhZ2dpbmdFdmVudCkge1xuICAgIHRoaXMuZ2V0QWN0aXZlTW9kZSgpLmhhbmRsZURyYWdnaW5nKGV2ZW50LCB0aGlzLmdldE1vZGVQcm9wcyh0aGlzLnByb3BzKSk7XG4gIH1cblxuICBvblN0b3BEcmFnZ2luZyhldmVudDogU3RvcERyYWdnaW5nRXZlbnQpIHtcbiAgICB0aGlzLmdldEFjdGl2ZU1vZGUoKS5oYW5kbGVTdG9wRHJhZ2dpbmcoZXZlbnQsIHRoaXMuZ2V0TW9kZVByb3BzKHRoaXMucHJvcHMpKTtcbiAgfVxuXG4gIG9uUG9pbnRlck1vdmUoZXZlbnQ6IFBvaW50ZXJNb3ZlRXZlbnQpIHtcbiAgICB0aGlzLnNldFN0YXRlKHsgbGFzdFBvaW50ZXJNb3ZlRXZlbnQ6IGV2ZW50IH0pO1xuICAgIHRoaXMuZ2V0QWN0aXZlTW9kZSgpLmhhbmRsZVBvaW50ZXJNb3ZlKGV2ZW50LCB0aGlzLmdldE1vZGVQcm9wcyh0aGlzLnByb3BzKSk7XG4gIH1cblxuICBnZXRDdXJzb3IoeyBpc0RyYWdnaW5nIH06IHsgaXNEcmFnZ2luZzogYm9vbGVhbiB9KSB7XG4gICAgbGV0IHsgY3Vyc29yIH0gPSB0aGlzLnN0YXRlO1xuICAgIGlmICghY3Vyc29yKSB7XG4gICAgICAvLyBkZWZhdWx0IGN1cnNvclxuICAgICAgY3Vyc29yID0gaXNEcmFnZ2luZyA/ICdncmFiYmluZycgOiAnZ3JhYic7XG4gICAgfVxuICAgIHJldHVybiBjdXJzb3I7XG4gIH1cblxuICBnZXRBY3RpdmVNb2RlKCk6IEdlb0pzb25FZGl0TW9kZSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUubW9kZTtcbiAgfVxufVxuXG5FZGl0YWJsZUdlb0pzb25MYXllci5sYXllck5hbWUgPSAnRWRpdGFibGVHZW9Kc29uTGF5ZXInO1xuRWRpdGFibGVHZW9Kc29uTGF5ZXIuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuIl19 |
@@ -192,3 +192,4 @@ "use strict"; | ||
drawEllipseUsing3Points: _editModes.DrawEllipseUsingThreePointsMode, | ||
draw90DegreePolygon: _editModes.Draw90DegreePolygonMode | ||
draw90DegreePolygon: _editModes.Draw90DegreePolygonMode, | ||
drawPolygonByDragging: _editModes.DrawPolygonByDraggingMode | ||
}; | ||
@@ -520,2 +521,2 @@ | ||
EditableGeoJsonLayer.defaultProps = defaultProps; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvZWRpdGFibGUtZ2VvanNvbi1sYXllci5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX0xJTkVfQ09MT1IiLCJERUZBVUxUX0ZJTExfQ09MT1IiLCJERUZBVUxUX1NFTEVDVEVEX0xJTkVfQ09MT1IiLCJERUZBVUxUX1NFTEVDVEVEX0ZJTExfQ09MT1IiLCJERUZBVUxUX0VESVRJTkdfRVhJU1RJTkdfUE9JTlRfQ09MT1IiLCJERUZBVUxUX0VESVRJTkdfSU5URVJNRURJQVRFX1BPSU5UX0NPTE9SIiwiREVGQVVMVF9FRElUSU5HX1NOQVBfUE9JTlRfQ09MT1IiLCJERUZBVUxUX0VESVRJTkdfUE9JTlRfT1VUTElORV9DT0xPUiIsIkRFRkFVTFRfRURJVElOR19FWElTVElOR19QT0lOVF9SQURJVVMiLCJERUZBVUxUX0VESVRJTkdfSU5URVJNRURJQVRFX1BPSU5UX1JBRElVUyIsIkRFRkFVTFRfRURJVElOR19TTkFQX1BPSU5UX1JBRElVUyIsIkRFRkFVTFRfRURJVF9NT0RFIiwiRHJhd1BvbHlnb25Nb2RlIiwiZ3VpZGVBY2Nlc3NvciIsImFjY2Vzc29yIiwiZ3VpZGVNYXliZVdyYXBwZWQiLCJ1bndyYXBHdWlkZSIsIl9fc291cmNlIiwib2JqZWN0Iiwic291cmNlRmVhdHVyZSIsImZlYXR1cmUiLCJnZXRFZGl0SGFuZGxlQ29sb3IiLCJoYW5kbGUiLCJwcm9wZXJ0aWVzIiwiZWRpdEhhbmRsZVR5cGUiLCJnZXRFZGl0SGFuZGxlT3V0bGluZUNvbG9yIiwiZ2V0RWRpdEhhbmRsZVJhZGl1cyIsImRlZmF1bHRQcm9wcyIsIm1vZGUiLCJvbkVkaXQiLCJwaWNrYWJsZSIsInBpY2tpbmdSYWRpdXMiLCJwaWNraW5nRGVwdGgiLCJmcDY0IiwiZmlsbGVkIiwic3Ryb2tlZCIsImxpbmVXaWR0aFNjYWxlIiwibGluZVdpZHRoTWluUGl4ZWxzIiwibGluZVdpZHRoTWF4UGl4ZWxzIiwiTnVtYmVyIiwiTUFYX1NBRkVfSU5URUdFUiIsImxpbmVXaWR0aFVuaXRzIiwibGluZUpvaW50Um91bmRlZCIsImxpbmVNaXRlckxpbWl0IiwicG9pbnRSYWRpdXNTY2FsZSIsInBvaW50UmFkaXVzTWluUGl4ZWxzIiwicG9pbnRSYWRpdXNNYXhQaXhlbHMiLCJnZXRMaW5lQ29sb3IiLCJpc1NlbGVjdGVkIiwiZ2V0RmlsbENvbG9yIiwiZ2V0UmFkaXVzIiwiZiIsInJhZGl1cyIsInNpemUiLCJnZXRMaW5lV2lkdGgiLCJsaW5lV2lkdGgiLCJnZXRUZW50YXRpdmVMaW5lQ29sb3IiLCJnZXRUZW50YXRpdmVGaWxsQ29sb3IiLCJnZXRUZW50YXRpdmVMaW5lV2lkdGgiLCJlZGl0SGFuZGxlUG9pbnRSYWRpdXNTY2FsZSIsImVkaXRIYW5kbGVQb2ludE91dGxpbmUiLCJlZGl0SGFuZGxlUG9pbnRTdHJva2VXaWR0aCIsImVkaXRIYW5kbGVQb2ludFJhZGl1c01pblBpeGVscyIsImVkaXRIYW5kbGVQb2ludFJhZGl1c01heFBpeGVscyIsImdldEVkaXRIYW5kbGVQb2ludENvbG9yIiwiZ2V0RWRpdEhhbmRsZVBvaW50T3V0bGluZUNvbG9yIiwiZ2V0RWRpdEhhbmRsZVBvaW50UmFkaXVzIiwiZWRpdEhhbmRsZUljb25BdGxhcyIsImVkaXRIYW5kbGVJY29uTWFwcGluZyIsImVkaXRIYW5kbGVJY29uU2l6ZVNjYWxlIiwiZ2V0RWRpdEhhbmRsZUljb24iLCJnZXRFZGl0SGFuZGxlSWNvblNpemUiLCJnZXRFZGl0SGFuZGxlSWNvbkNvbG9yIiwiZ2V0RWRpdEhhbmRsZUljb25BbmdsZSIsImJpbGxib2FyZCIsIm1vZGVOYW1lTWFwcGluZyIsInZpZXciLCJWaWV3TW9kZSIsIm1vZGlmeSIsIk1vZGlmeU1vZGUiLCJ0cmFuc2xhdGUiLCJTbmFwcGFibGVNb2RlIiwiVHJhbnNsYXRlTW9kZSIsInRyYW5zZm9ybSIsIlRyYW5zZm9ybU1vZGUiLCJzY2FsZSIsIlNjYWxlTW9kZSIsInJvdGF0ZSIsIlJvdGF0ZU1vZGUiLCJkdXBsaWNhdGUiLCJEdXBsaWNhdGVNb2RlIiwic3BsaXQiLCJTcGxpdFBvbHlnb25Nb2RlIiwiZXh0cnVkZSIsIkV4dHJ1ZGVNb2RlIiwiZWxldmF0aW9uIiwiRWxldmF0aW9uTW9kZSIsImRyYXdQb2ludCIsIkRyYXdQb2ludE1vZGUiLCJkcmF3TGluZVN0cmluZyIsIkRyYXdMaW5lU3RyaW5nTW9kZSIsImRyYXdQb2x5Z29uIiwiZHJhd1JlY3RhbmdsZSIsIkRyYXdSZWN0YW5nbGVNb2RlIiwiZHJhd0NpcmNsZUZyb21DZW50ZXIiLCJEcmF3Q2lyY2xlRnJvbUNlbnRlck1vZGUiLCJkcmF3Q2lyY2xlQnlCb3VuZGluZ0JveCIsIkRyYXdDaXJjbGVCeURpYW1ldGVyTW9kZSIsImRyYXdFbGxpcHNlQnlCb3VuZGluZ0JveCIsIkRyYXdFbGxpcHNlQnlCb3VuZGluZ0JveE1vZGUiLCJkcmF3UmVjdGFuZ2xlVXNpbmczUG9pbnRzIiwiRHJhd1JlY3RhbmdsZVVzaW5nVGhyZWVQb2ludHNNb2RlIiwiZHJhd0VsbGlwc2VVc2luZzNQb2ludHMiLCJEcmF3RWxsaXBzZVVzaW5nVGhyZWVQb2ludHNNb2RlIiwiZHJhdzkwRGVncmVlUG9seWdvbiIsIkRyYXc5MERlZ3JlZVBvbHlnb25Nb2RlIiwiRWRpdGFibGVHZW9Kc29uTGF5ZXIiLCJzdWJMYXllclByb3BzIiwiZ2V0U3ViTGF5ZXJQcm9wcyIsImlkIiwiZGF0YSIsInByb3BzIiwic2VsZWN0aW9uQXdhcmVBY2Nlc3NvciIsIl9zdWJMYXllclByb3BzIiwidXBkYXRlVHJpZ2dlcnMiLCJzZWxlY3RlZEZlYXR1cmVJbmRleGVzIiwibGF5ZXJzIiwiR2VvSnNvbkxheWVyIiwiY29uY2F0IiwiY3JlYXRlR3VpZGVzTGF5ZXJzIiwiY3JlYXRlVG9vbHRpcHNMYXllcnMiLCJzZXRTdGF0ZSIsInNlbGVjdGVkRmVhdHVyZXMiLCJlZGl0SGFuZGxlcyIsIm9wdHMiLCJjaGFuZ2VGbGFncyIsInN0YXRlQ2hhbmdlZCIsIm9sZFByb3BzIiwic3RhdGUiLCJwcm9wc09yRGF0YUNoYW5nZWQiLCJjb25zb2xlIiwid2FybiIsIk1vZGVDb25zdHJ1Y3RvciIsIlN0cmluZyIsImN1cnNvciIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImVsZW0iLCJmZWF0dXJlcyIsIm1vZGVDb25maWciLCJzZWxlY3RlZEluZGV4ZXMiLCJsYXN0UG9pbnRlck1vdmVFdmVudCIsImVkaXRBY3Rpb24iLCJvblVwZGF0ZUN1cnNvciIsImlzRmVhdHVyZVNlbGVjdGVkIiwibGVuZ3RoIiwiZmVhdHVyZUluZGV4IiwiaW5kZXhPZiIsImluY2x1ZGVzIiwiaW5mbyIsInNvdXJjZUxheWVyIiwiZW5kc1dpdGgiLCJpc0d1aWRlIiwiZ2V0QWN0aXZlTW9kZSIsImd1aWRlcyIsImdldEd1aWRlcyIsImdldE1vZGVQcm9wcyIsInBvaW50TGF5ZXJQcm9wcyIsInR5cGUiLCJJY29uTGF5ZXIiLCJpY29uQXRsYXMiLCJpY29uTWFwcGluZyIsInNpemVTY2FsZSIsImdldEljb24iLCJnZXRTaXplIiwiZ2V0Q29sb3IiLCJnZXRBbmdsZSIsIlNjYXR0ZXJwbG90TGF5ZXIiLCJyYWRpdXNTY2FsZSIsInJhZGl1c01pblBpeGVscyIsInJhZGl1c01heFBpeGVscyIsImxheWVyIiwicG9pbnRzIiwidG9vbHRpcHMiLCJnZXRUb29sdGlwcyIsIlRleHRMYXllciIsImV2ZW50IiwiaGFuZGxlQ2xpY2siLCJoYW5kbGVTdGFydERyYWdnaW5nIiwiaGFuZGxlRHJhZ2dpbmciLCJoYW5kbGVTdG9wRHJhZ2dpbmciLCJoYW5kbGVQb2ludGVyTW92ZSIsImlzRHJhZ2dpbmciLCJFZGl0YWJsZUxheWVyIiwibGF5ZXJOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBR0E7O0FBRUE7O0FBa0NBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQU1BLGtCQUFrQixHQUFHLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLElBQWhCLENBQTNCO0FBQ0EsSUFBTUMsa0JBQWtCLEdBQUcsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsRUFB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QUFBLG9CQUFvQixFQUFFbUM7QUFBeEIsT0FBZDtBQUNBLFdBQUt2QixhQUFMLEdBQXFCNEIsaUJBQXJCLENBQXVDTCxLQUF2QyxFQUE4QyxLQUFLcEIsWUFBTCxDQUFrQixLQUFLOUMsS0FBdkIsQ0FBOUM7QUFDRDs7O3FDQUVrRDtBQUFBLFVBQXZDd0UsVUFBdUMsU0FBdkNBLFVBQXVDO0FBQUEsVUFDM0NqRCxNQUQyQyxHQUNoQyxLQUFLTixLQUQyQixDQUMzQ00sTUFEMkM7O0FBRWpELFVBQUksQ0FBQ0EsTUFBTCxFQUFhO0FBQ1g7QUFDQUEsUUFBQUEsTUFBTSxHQUFHaUQsVUFBVSxHQUFHLFVBQUgsR0FBZ0IsTUFBbkM7QUFDRDs7QUFDRCxhQUFPakQsTUFBUDtBQUNEOzs7b0NBRWdDO0FBQy9CLGFBQU8sS0FBS04sS0FBTCxDQUFXOUcsSUFBbEI7QUFDRDs7OztFQTVRK0NzSyxzQjs7O0FBK1FsRDlFLG9CQUFvQixDQUFDK0UsU0FBckIsR0FBaUMsc0JBQWpDO0FBQ0EvRSxvQkFBb0IsQ0FBQ3pGLFlBQXJCLEdBQW9DQSxZQUFwQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBmbG93XG4vKiBlc2xpbnQtZW52IGJyb3dzZXIgKi9cblxuaW1wb3J0IHsgR2VvSnNvbkxheWVyLCBTY2F0dGVycGxvdExheWVyLCBJY29uTGF5ZXIsIFRleHRMYXllciB9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5cbmltcG9ydCB7XG4gIFZpZXdNb2RlLFxuICBNb2RpZnlNb2RlLFxuICBUcmFuc2xhdGVNb2RlLFxuICBTY2FsZU1vZGUsXG4gIFJvdGF0ZU1vZGUsXG4gIER1cGxpY2F0ZU1vZGUsXG4gIFNwbGl0UG9seWdvbk1vZGUsXG4gIEV4dHJ1ZGVNb2RlLFxuICBFbGV2YXRpb25Nb2RlLFxuICBEcmF3UG9pbnRNb2RlLFxuICBEcmF3TGluZVN0cmluZ01vZGUsXG4gIERyYXdQb2x5Z29uTW9kZSxcbiAgRHJhd1JlY3RhbmdsZU1vZGUsXG4gIERyYXdDaXJjbGVGcm9tQ2VudGVyTW9kZSxcbiAgRHJhd0NpcmNsZUJ5RGlhbWV0ZXJNb2RlLFxuICBEcmF3RWxsaXBzZUJ5Qm91bmRpbmdCb3hNb2RlLFxuICBEcmF3UmVjdGFuZ2xlVXNpbmdUaHJlZVBvaW50c01vZGUsXG4gIERyYXdFbGxpcHNlVXNpbmdUaHJlZVBvaW50c01vZGUsXG4gIERyYXc5MERlZ3JlZVBvbHlnb25Nb2RlLFxuICBTbmFwcGFibGVNb2RlLFxuICBUcmFuc2Zvcm1Nb2RlXG59IGZyb20gJ0BuZWJ1bGEuZ2wvZWRpdC1tb2Rlcyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgRWRpdEFjdGlvbixcbiAgQ2xpY2tFdmVudCxcbiAgU3RhcnREcmFnZ2luZ0V2ZW50LFxuICBTdG9wRHJhZ2dpbmdFdmVudCxcbiAgRHJhZ2dpbmdFdmVudCxcbiAgUG9pbnRlck1vdmVFdmVudCxcbiAgR2VvSnNvbkVkaXRNb2RlLFxuICBGZWF0dXJlQ29sbGVjdGlvblxufSBmcm9tICdAbmVidWxhLmdsL2VkaXQtbW9kZXMnO1xuaW1wb3J0IEVkaXRhYmxlTGF5ZXIgZnJvbSAnLi9lZGl0YWJsZS1sYXllci5qcyc7XG5cbmNvbnN0IERFRkFVTFRfTElORV9DT0xPUiA9IFsweDAsIDB4MCwgMHgwLCAweGZmXTtcbmNvbnN0IERFRkFVTFRfRklMTF9DT0xPUiA9IFsweDAsIDB4MCwgMHgwLCAweDkwXTtcbmNvbnN0IERFRkFVTFRfU0VMRUNURURfTElORV9DT0xPUiA9IFsweDkwLCAweDkwLCAweDkwLCAweGZmXTtcbmNvbnN0IERFRkFVTFRfU0VMRUNURURfRklMTF9DT0xPUiA9IFsweDkwLCAweDkwLCAweDkwLCAweDkwXTtcbmNvbnN0IERFRkFVTFRfRURJVElOR19FWElTVElOR19QT0lOVF9DT0xPUiA9IFsweGMwLCAweDAsIDB4MCwgMHhmZl07XG5jb25zdCBERUZBVUxUX0VESVRJTkdfSU5URVJNRURJQVRFX1BPSU5UX0NPTE9SID0gWzB4MCwgMHgwLCAweDAsIDB4ODBdO1xuY29uc3QgREVGQVVMVF9FRElUSU5HX1NOQVBfUE9JTlRfQ09MT1IgPSBbMHg3YywgMHgwMCwgMHhjMCwgMHhmZl07XG5jb25zdCBERUZBVUxUX0VESVRJTkdfUE9JTlRfT1VUTElORV9DT0xPUiA9IFsweGZmLCAweGZmLCAweGZmLCAweGZmXTtcbmNvbnN0IERFRkFVTFRfRURJVElOR19FWElTVElOR19QT0lOVF9SQURJVVMgPSA1O1xuY29uc3QgREVGQVVMVF9FRElUSU5HX0lOVEVSTUVESUFURV9QT0lOVF9SQURJVVMgPSAzO1xuY29uc3QgREVGQVVMVF9FRElUSU5HX1NOQVBfUE9JTlRfUkFESVVTID0gNztcblxuY29uc3QgREVGQVVMVF9FRElUX01PREUgPSBEcmF3UG9seWdvbk1vZGU7XG5cbmZ1bmN0aW9uIGd1aWRlQWNjZXNzb3IoYWNjZXNzb3IpIHtcbiAgaWYgKCFhY2Nlc3NvciB8fCB0eXBlb2YgYWNjZXNzb3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gYWNjZXNzb3I7XG4gIH1cbiAgcmV0dXJuIGd1aWRlTWF5YmVXcmFwcGVkID0+IGFjY2Vzc29yKHVud3JhcEd1aWRlKGd1aWRlTWF5YmVXcmFwcGVkKSk7XG59XG5cbi8vIFRoZSBvYmplY3QgaGFuZGVkIHRvIHVzIGZyb20gZGVjay5nbCBpcyBkaWZmZXJlbnQgZGVwZW5kaW5nIG9uIHRoZSB2ZXJzaW9uIG9mIGRlY2suZ2wgdXNlZCwgdW53cmFwIGFzIG5lY2Vzc2FyeVxuZnVuY3Rpb24gdW53cmFwR3VpZGUoZ3VpZGVNYXliZVdyYXBwZWQpIHtcbiAgaWYgKGd1aWRlTWF5YmVXcmFwcGVkLl9fc291cmNlKSB7XG4gICAgcmV0dXJuIGd1aWRlTWF5YmVXcmFwcGVkLl9fc291cmNlLm9iamVjdDtcbiAgfSBlbHNlIGlmIChndWlkZU1heWJlV3JhcHBlZC5zb3VyY2VGZWF0dXJlKSB7XG4gICAgcmV0dXJuIGd1aWRlTWF5YmVXcmFwcGVkLnNvdXJjZUZlYXR1cmUuZmVhdHVyZTtcbiAgfVxuICAvLyBJdCBpcyBub3Qgd3JhcHBlZCwgcmV0dXJuIGFzIGlzXG4gIHJldHVybiBndWlkZU1heWJlV3JhcHBlZDtcbn1cblxuZnVuY3Rpb24gZ2V0RWRpdEhhbmRsZUNvbG9yKGhhbmRsZSkge1xuICBzd2l0Y2ggKGhhbmRsZS5wcm9wZXJ0aWVzLmVkaXRIYW5kbGVUeXBlKSB7XG4gICAgY2FzZSAnZXhpc3RpbmcnOlxuICAgICAgcmV0dXJuIERFRkFVTFRfRURJVElOR19FWElTVElOR19QT0lOVF9DT0xPUjtcbiAgICBjYXNlICdzbmFwLXNvdXJjZSc6XG4gICAgICByZXR1cm4gREVGQVVMVF9FRElUSU5HX1NOQVBfUE9JTlRfQ09MT1I7XG4gICAgY2FzZSAnaW50ZXJtZWRpYXRlJzpcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIERFRkFVTFRfRURJVElOR19JTlRFUk1FRElBVEVfUE9JTlRfQ09MT1I7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RWRpdEhhbmRsZU91dGxpbmVDb2xvcihoYW5kbGUpIHtcbiAgcmV0dXJuIERFRkFVTFRfRURJVElOR19QT0lOVF9PVVRMSU5FX0NPTE9SO1xufVxuXG5mdW5jdGlvbiBnZXRFZGl0SGFuZGxlUmFkaXVzKGhhbmRsZSkge1xuICBzd2l0Y2ggKGhhbmRsZS5wcm9wZXJ0aWVzLmVkaXRIYW5kbGVUeXBlKSB7XG4gICAgY2FzZSAnZXhpc3RpbmcnOlxuICAgICAgcmV0dXJuIERFRkFVTFRfRURJVElOR19FWElTVElOR19QT0lOVF9SQURJVVM7XG4gICAgY2FzZSAnc25hcCc6XG4gICAgICByZXR1cm4gREVGQVVMVF9FRElUSU5HX1NOQVBfUE9JTlRfUkFESVVTO1xuICAgIGNhc2UgJ2ludGVybWVkaWF0ZSc6XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBERUZBVUxUX0VESVRJTkdfSU5URVJNRURJQVRFX1BPSU5UX1JBRElVUztcbiAgfVxufVxuXG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gIG1vZGU6IERyYXdQb2x5Z29uTW9kZSxcblxuICAvLyBFZGl0IGFuZCBpbnRlcmFjdGlvbiBldmVudHNcbiAgb25FZGl0OiAoKSA9PiB7fSxcblxuICBwaWNrYWJsZTogdHJ1ZSxcbiAgcGlja2luZ1JhZGl1czogMTAsXG4gIHBpY2tpbmdEZXB0aDogNSxcbiAgZnA2NDogZmFsc2UsXG4gIGZpbGxlZDogdHJ1ZSxcbiAgc3Ryb2tlZDogdHJ1ZSxcbiAgbGluZVdpZHRoU2NhbGU6IDEsXG4gIGxpbmVXaWR0aE1pblBpeGVsczogMSxcbiAgbGluZVdpZHRoTWF4UGl4ZWxzOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcbiAgbGluZVdpZHRoVW5pdHM6ICdwaXhlbHMnLFxuICBsaW5lSm9pbnRSb3VuZGVkOiBmYWxzZSxcbiAgbGluZU1pdGVyTGltaXQ6IDQsXG4gIHBvaW50UmFkaXVzU2NhbGU6IDEsXG4gIHBvaW50UmFkaXVzTWluUGl4ZWxzOiAyLFxuICBwb2ludFJhZGl1c01heFBpeGVsczogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXG4gIGdldExpbmVDb2xvcjogKGZlYXR1cmUsIGlzU2VsZWN0ZWQsIG1vZGUpID0+XG4gICAgaXNTZWxlY3RlZCA/IERFRkFVTFRfU0VMRUNURURfTElORV9DT0xPUiA6IERFRkFVTFRfTElORV9DT0xPUixcbiAgZ2V0RmlsbENvbG9yOiAoZmVhdHVyZSwgaXNTZWxlY3RlZCwgbW9kZSkgPT5cbiAgICBpc1NlbGVjdGVkID8gREVGQVVMVF9TRUxFQ1RFRF9GSUxMX0NPTE9SIDogREVGQVVMVF9GSUxMX0NPTE9SLFxuICBnZXRSYWRpdXM6IGYgPT5cbiAgICAoZiAmJiBmLnByb3BlcnRpZXMgJiYgZi5wcm9wZXJ0aWVzLnJhZGl1cykgfHwgKGYgJiYgZi5wcm9wZXJ0aWVzICYmIGYucHJvcGVydGllcy5zaXplKSB8fCAxLFxuICBnZXRMaW5lV2lkdGg6IGYgPT4gKGYgJiYgZi5wcm9wZXJ0aWVzICYmIGYucHJvcGVydGllcy5saW5lV2lkdGgpIHx8IDMsXG5cbiAgLy8gVGVudGF0aXZlIGZlYXR1cmUgcmVuZGVyaW5nXG4gIGdldFRlbnRhdGl2ZUxpbmVDb2xvcjogZiA9PiBERUZBVUxUX1NFTEVDVEVEX0xJTkVfQ09MT1IsXG4gIGdldFRlbnRhdGl2ZUZpbGxDb2xvcjogZiA9PiBERUZBVUxUX1NFTEVDVEVEX0ZJTExfQ09MT1IsXG4gIGdldFRlbnRhdGl2ZUxpbmVXaWR0aDogZiA9PiAoZiAmJiBmLnByb3BlcnRpZXMgJiYgZi5wcm9wZXJ0aWVzLmxpbmVXaWR0aCkgfHwgMyxcblxuICBlZGl0SGFuZGxlVHlwZTogJ3BvaW50JyxcblxuICAvLyBwb2ludCBoYW5kbGVzXG4gIGVkaXRIYW5kbGVQb2ludFJhZGl1c1NjYWxlOiAxLFxuICBlZGl0SGFuZGxlUG9pbnRPdXRsaW5lOiB0cnVlLFxuICBlZGl0SGFuZGxlUG9pbnRTdHJva2VXaWR0aDogMixcbiAgZWRpdEhhbmRsZVBvaW50UmFkaXVzTWluUGl4ZWxzOiA0LFxuICBlZGl0SGFuZGxlUG9pbnRSYWRpdXNNYXhQaXhlbHM6IDgsXG4gIGdldEVkaXRIYW5kbGVQb2ludENvbG9yOiBnZXRFZGl0SGFuZGxlQ29sb3IsXG4gIGdldEVkaXRIYW5kbGVQb2ludE91dGxpbmVDb2xvcjogZ2V0RWRpdEhhbmRsZU91dGxpbmVDb2xvcixcbiAgZ2V0RWRpdEhhbmRsZVBvaW50UmFkaXVzOiBnZXRFZGl0SGFuZGxlUmFkaXVzLFxuXG4gIC8vIGljb24gaGFuZGxlc1xuICBlZGl0SGFuZGxlSWNvbkF0bGFzOiBudWxsLFxuICBlZGl0SGFuZGxlSWNvbk1hcHBpbmc6IG51bGwsXG4gIGVkaXRIYW5kbGVJY29uU2l6ZVNjYWxlOiAxLFxuICBnZXRFZGl0SGFuZGxlSWNvbjogaGFuZGxlID0+IGhhbmRsZS5wcm9wZXJ0aWVzLmVkaXRIYW5kbGVUeXBlLFxuICBnZXRFZGl0SGFuZGxlSWNvblNpemU6IDEwLFxuICBnZXRFZGl0SGFuZGxlSWNvbkNvbG9yOiBnZXRFZGl0SGFuZGxlQ29sb3IsXG4gIGdldEVkaXRIYW5kbGVJY29uQW5nbGU6IDAsXG5cbiAgLy8gbWlzY1xuICBiaWxsYm9hcmQ6IHRydWVcbn07XG5cbi8vIE1hcHBpbmcgb2YgbW9kZSBuYW1lIHRvIG1vZGUgY2xhc3MgKGZvciBsZWdhY3kgcHVycG9zZXMpXG5jb25zdCBtb2RlTmFtZU1hcHBpbmcgPSB7XG4gIHZpZXc6IFZpZXdNb2RlLFxuXG4gIC8vIEFsdGVyIG1vZGVzXG4gIG1vZGlmeTogTW9kaWZ5TW9kZSxcbiAgdHJhbnNsYXRlOiBuZXcgU25hcHBhYmxlTW9kZShuZXcgVHJhbnNsYXRlTW9kZSgpKSxcblxuICB0cmFuc2Zvcm06IG5ldyBTbmFwcGFibGVNb2RlKG5ldyBUcmFuc2Zvcm1Nb2RlKCkpLFxuICBzY2FsZTogU2NhbGVNb2RlLFxuICByb3RhdGU6IFJvdGF0ZU1vZGUsXG4gIGR1cGxpY2F0ZTogRHVwbGljYXRlTW9kZSxcbiAgc3BsaXQ6IFNwbGl0UG9seWdvbk1vZGUsXG4gIGV4dHJ1ZGU6IEV4dHJ1ZGVNb2RlLFxuICBlbGV2YXRpb246IEVsZXZhdGlvbk1vZGUsXG5cbiAgLy8gRHJhdyBtb2Rlc1xuICBkcmF3UG9pbnQ6IERyYXdQb2ludE1vZGUsXG4gIGRyYXdMaW5lU3RyaW5nOiBEcmF3TGluZVN0cmluZ01vZGUsXG4gIGRyYXdQb2x5Z29uOiBEcmF3UG9seWdvbk1vZGUsXG4gIGRyYXdSZWN0YW5nbGU6IERyYXdSZWN0YW5nbGVNb2RlLFxuICBkcmF3Q2lyY2xlRnJvbUNlbnRlcjogRHJhd0NpcmNsZUZyb21DZW50ZXJNb2RlLFxuICBkcmF3Q2lyY2xlQnlCb3VuZGluZ0JveDogRHJhd0NpcmNsZUJ5RGlhbWV0ZXJNb2RlLFxuICBkcmF3RWxsaXBzZUJ5Qm91bmRpbmdCb3g6IERyYXdFbGxpcHNlQnlCb3VuZGluZ0JveE1vZGUsXG4gIGRyYXdSZWN0YW5nbGVVc2luZzNQb2ludHM6IERyYXdSZWN0YW5nbGVVc2luZ1RocmVlUG9pbnRzTW9kZSxcbiAgZHJhd0VsbGlwc2VVc2luZzNQb2ludHM6IERyYXdFbGxpcHNlVXNpbmdUaHJlZVBvaW50c01vZGUsXG4gIGRyYXc5MERlZ3JlZVBvbHlnb246IERyYXc5MERlZ3JlZVBvbHlnb25Nb2RlXG59O1xuXG50eXBlIFByb3BzID0ge1xuICBtb2RlOiBzdHJpbmcgfCBHZW9Kc29uRWRpdE1vZGUgfCBDbGFzczxHZW9Kc29uRWRpdE1vZGU+LFxuICBvbkVkaXQ6IChFZGl0QWN0aW9uPEZlYXR1cmVDb2xsZWN0aW9uPikgPT4gdm9pZCxcbiAgLy8gVE9ETzogdHlwZSB0aGUgcmVzdFxuICBbc3RyaW5nXTogYW55XG59O1xuXG4vLyB0eXBlIFN0YXRlID0ge1xuLy8gICBtb2RlOiBHZW9Kc29uRWRpdE1vZGUsXG4vLyAgIHRlbnRhdGl2ZUZlYXR1cmU6ID9GZWF0dXJlLFxuLy8gICBlZGl0SGFuZGxlczogYW55W10sXG4vLyAgIHNlbGVjdGVkRmVhdHVyZXM6IEZlYXR1cmVbXVxuLy8gfTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRWRpdGFibGVHZW9Kc29uTGF5ZXIgZXh0ZW5kcyBFZGl0YWJsZUxheWVyIHtcbiAgLy8gc3RhdGU6IFN0YXRlO1xuICAvLyBwcm9wczogUHJvcHM7XG4gIC8vIHNldFN0YXRlOiAoJFNoYXBlPFN0YXRlPikgPT4gdm9pZDtcblxuICByZW5kZXJMYXllcnMoKSB7XG4gICAgY29uc3Qgc3ViTGF5ZXJQcm9wcyA9IHRoaXMuZ2V0U3ViTGF5ZXJQcm9wcyh7XG4gICAgICBpZDogJ2dlb2pzb24nLFxuXG4gICAgICAvLyBQcm94eSBtb3N0IEdlb0pzb25MYXllciBwcm9wcyBhcy1pc1xuICAgICAgZGF0YTogdGhpcy5wcm9wcy5kYXRhLFxuICAgICAgZnA2NDogdGhpcy5wcm9wcy5mcDY0LFxuICAgICAgZmlsbGVkOiB0aGlzLnByb3BzLmZpbGxlZCxcbiAgICAgIHN0cm9rZWQ6IHRoaXMucHJvcHMuc3Ryb2tlZCxcbiAgICAgIGxpbmVXaWR0aFNjYWxlOiB0aGlzLnByb3BzLmxpbmVXaWR0aFNjYWxlLFxuICAgICAgbGluZVdpZHRoTWluUGl4ZWxzOiB0aGlzLnByb3BzLmxpbmVXaWR0aE1pblBpeGVscyxcbiAgICAgIGxpbmVXaWR0aE1heFBpeGVsczogdGhpcy5wcm9wcy5saW5lV2lkdGhNYXhQaXhlbHMsXG4gICAgICBsaW5lV2lkdGhVbml0czogdGhpcy5wcm9wcy5saW5lV2lkdGhVbml0cyxcbiAgICAgIGxpbmVKb2ludFJvdW5kZWQ6IHRoaXMucHJvcHMubGluZUpvaW50Um91bmRlZCxcbiAgICAgIGxpbmVNaXRlckxpbWl0OiB0aGlzLnByb3BzLmxpbmVNaXRlckxpbWl0LFxuICAgICAgcG9pbnRSYWRpdXNTY2FsZTogdGhpcy5wcm9wcy5wb2ludFJhZGl1c1NjYWxlLFxuICAgICAgcG9pbnRSYWRpdXNNaW5QaXhlbHM6IHRoaXMucHJvcHMucG9pbnRSYWRpdXNNaW5QaXhlbHMsXG4gICAgICBwb2ludFJhZGl1c01heFBpeGVsczogdGhpcy5wcm9wcy5wb2ludFJhZGl1c01heFBpeGVscyxcbiAgICAgIGdldExpbmVDb2xvcjogdGhpcy5zZWxlY3Rpb25Bd2FyZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0TGluZUNvbG9yKSxcbiAgICAgIGdldEZpbGxDb2xvcjogdGhpcy5zZWxlY3Rpb25Bd2FyZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0RmlsbENvbG9yKSxcbiAgICAgIGdldFJhZGl1czogdGhpcy5zZWxlY3Rpb25Bd2FyZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0UmFkaXVzKSxcbiAgICAgIGdldExpbmVXaWR0aDogdGhpcy5zZWxlY3Rpb25Bd2FyZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0TGluZVdpZHRoKSxcblxuICAgICAgX3N1YkxheWVyUHJvcHM6IHtcbiAgICAgICAgJ2xpbmUtc3RyaW5ncyc6IHtcbiAgICAgICAgICBiaWxsYm9hcmQ6IHRoaXMucHJvcHMuYmlsbGJvYXJkXG4gICAgICAgIH0sXG4gICAgICAgICdwb2x5Z29ucy1zdHJva2UnOiB7XG4gICAgICAgICAgYmlsbGJvYXJkOiB0aGlzLnByb3BzLmJpbGxib2FyZFxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICB1cGRhdGVUcmlnZ2Vyczoge1xuICAgICAgICBnZXRMaW5lQ29sb3I6IFt0aGlzLnByb3BzLnNlbGVjdGVkRmVhdHVyZUluZGV4ZXMsIHRoaXMucHJvcHMubW9kZV0sXG4gICAgICAgIGdldEZpbGxDb2xvcjogW3RoaXMucHJvcHMuc2VsZWN0ZWRGZWF0dXJlSW5kZXhlcywgdGhpcy5wcm9wcy5tb2RlXSxcbiAgICAgICAgZ2V0UmFkaXVzOiBbdGhpcy5wcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzLCB0aGlzLnByb3BzLm1vZGVdLFxuICAgICAgICBnZXRMaW5lV2lkdGg6IFt0aGlzLnByb3BzLnNlbGVjdGVkRmVhdHVyZUluZGV4ZXMsIHRoaXMucHJvcHMubW9kZV1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGxldCBsYXllcnM6IGFueSA9IFtuZXcgR2VvSnNvbkxheWVyKHN1YkxheWVyUHJvcHMpXTtcblxuICAgIGxheWVycyA9IGxheWVycy5jb25jYXQodGhpcy5jcmVhdGVHdWlkZXNMYXllcnMoKSwgdGhpcy5jcmVhdGVUb29sdGlwc0xheWVycygpKTtcblxuICAgIHJldHVybiBsYXllcnM7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgc3VwZXIuaW5pdGlhbGl6ZVN0YXRlKCk7XG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHNlbGVjdGVkRmVhdHVyZXM6IFtdLFxuICAgICAgZWRpdEhhbmRsZXM6IFtdXG4gICAgfSk7XG4gIH1cblxuICAvLyBUT0RPOiBpcyB0aGlzIHRoZSBiZXN0IHdheSB0byBwcm9wZXJseSB1cGRhdGUgc3RhdGUgZnJvbSBhbiBvdXRzaWRlIGV2ZW50IGhhbmRsZXI/XG4gIHNob3VsZFVwZGF0ZVN0YXRlKG9wdHM6IGFueSkge1xuICAgIC8vIGNvbnNvbGUubG9nKFxuICAgIC8vICAgJ3Nob3VsZFVwZGF0ZVN0YXRlJyxcbiAgICAvLyAgIG9wdHMuY2hhbmdlRmxhZ3MucHJvcHNPckRhdGFDaGFuZ2VkLFxuICAgIC8vICAgb3B0cy5jaGFuZ2VGbGFncy5zdGF0ZUNoYW5nZWRcbiAgICAvLyApO1xuICAgIHJldHVybiBzdXBlci5zaG91bGRVcGRhdGVTdGF0ZShvcHRzKSB8fCBvcHRzLmNoYW5nZUZsYWdzLnN0YXRlQ2hhbmdlZDtcbiAgfVxuXG4gIHVwZGF0ZVN0YXRlKHtcbiAgICBwcm9wcyxcbiAgICBvbGRQcm9wcyxcbiAgICBjaGFuZ2VGbGFnc1xuICB9OiB7XG4gICAgcHJvcHM6IFByb3BzLFxuICAgIG9sZFByb3BzOiBQcm9wcyxcbiAgICBjaGFuZ2VGbGFnczogYW55XG4gIH0pIHtcbiAgICBzdXBlci51cGRhdGVTdGF0ZSh7IHByb3BzLCBjaGFuZ2VGbGFncyB9KTtcblxuICAgIGxldCBtb2RlID0gdGhpcy5zdGF0ZS5tb2RlO1xuICAgIGlmIChjaGFuZ2VGbGFncy5wcm9wc09yRGF0YUNoYW5nZWQpIHtcbiAgICAgIGlmIChwcm9wcy5tb2RlICE9PSBvbGRQcm9wcy5tb2RlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgcHJvcHMubW9kZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAvLyBMb29rdXAgdGhlIG1vZGUgYmFzZWQgb24gaXRzIG5hbWUgKGZvciBsZWdhY3kgcHVycG9zZXMpXG4gICAgICAgICAgbW9kZSA9IG1vZGVOYW1lTWFwcGluZ1twcm9wcy5tb2RlXTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIFwiRGVwcmVjYXRlZCB1c2Ugb2YgcGFzc2luZyBgbW9kZWAgYXMgYSBzdHJpbmcuIFBhc3MgdGhlIG1vZGUncyBjbGFzcyBjb25zdHJ1Y3RvciBpbnN0ZWFkLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtb2RlID0gcHJvcHMubW9kZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgbW9kZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGNvbnN0IE1vZGVDb25zdHJ1Y3RvciA9IG1vZGU7XG4gICAgICAgICAgbW9kZSA9IG5ldyBNb2RlQ29uc3RydWN0b3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgTm8gbW9kZSBjb25maWd1cmVkIGZvciAke1N0cmluZyhwcm9wcy5tb2RlKX1gKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlLG5vLXVuZGVmXG4gICAgICAgICAgLy8gVXNlIGRlZmF1bHQgbW9kZVxuICAgICAgICAgIG1vZGUgPSBERUZBVUxUX0VESVRfTU9ERTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtb2RlICE9PSB0aGlzLnN0YXRlLm1vZGUpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbW9kZSwgY3Vyc29yOiBudWxsIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IHNlbGVjdGVkRmVhdHVyZXMgPSBbXTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzKSkge1xuICAgICAgLy8gVE9ETzogbmVlZHMgaW1wcm92ZWQgdGVzdGluZywgaS5lLiBjaGVja2luZyBmb3IgZHVwbGljYXRlcywgTmFOcywgb3V0IG9mIHJhbmdlIG51bWJlcnMsIC4uLlxuICAgICAgc2VsZWN0ZWRGZWF0dXJlcyA9IHByb3BzLnNlbGVjdGVkRmVhdHVyZUluZGV4ZXMubWFwKGVsZW0gPT4gcHJvcHMuZGF0YS5mZWF0dXJlc1tlbGVtXSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7IHNlbGVjdGVkRmVhdHVyZXMgfSk7XG4gIH1cblxuICBnZXRNb2RlUHJvcHMocHJvcHM6IFByb3BzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGVDb25maWc6IHByb3BzLm1vZGVDb25maWcsXG4gICAgICBkYXRhOiBwcm9wcy5kYXRhLFxuICAgICAgc2VsZWN0ZWRJbmRleGVzOiBwcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzLFxuICAgICAgbGFzdFBvaW50ZXJNb3ZlRXZlbnQ6IHRoaXMuc3RhdGUubGFzdFBvaW50ZXJNb3ZlRXZlbnQsXG4gICAgICBjdXJzb3I6IHRoaXMuc3RhdGUuY3Vyc29yLFxuICAgICAgb25FZGl0OiAoZWRpdEFjdGlvbjogRWRpdEFjdGlvbjxGZWF0dXJlQ29sbGVjdGlvbj4pID0+IHtcbiAgICAgICAgcHJvcHMub25FZGl0KGVkaXRBY3Rpb24pO1xuICAgICAgfSxcbiAgICAgIG9uVXBkYXRlQ3Vyc29yOiAoY3Vyc29yOiA/c3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjdXJzb3IgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHNlbGVjdGlvbkF3YXJlQWNjZXNzb3IoYWNjZXNzb3I6IGFueSkge1xuICAgIGlmICh0eXBlb2YgYWNjZXNzb3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBhY2Nlc3NvcjtcbiAgICB9XG4gICAgcmV0dXJuIChmZWF0dXJlOiBPYmplY3QpID0+IGFjY2Vzc29yKGZlYXR1cmUsIHRoaXMuaXNGZWF0dXJlU2VsZWN0ZWQoZmVhdHVyZSksIHRoaXMucHJvcHMubW9kZSk7XG4gIH1cblxuICBpc0ZlYXR1cmVTZWxlY3RlZChmZWF0dXJlOiBPYmplY3QpIHtcbiAgICBpZiAoIXRoaXMucHJvcHMuZGF0YSB8fCAhdGhpcy5wcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICghdGhpcy5wcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBmZWF0dXJlSW5kZXggPSB0aGlzLnByb3BzLmRhdGEuZmVhdHVyZXMuaW5kZXhPZihmZWF0dXJlKTtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzLmluY2x1ZGVzKGZlYXR1cmVJbmRleCk7XG4gIH1cblxuICBnZXRQaWNraW5nSW5mbyh7IGluZm8sIHNvdXJjZUxheWVyIH06IE9iamVjdCkge1xuICAgIGlmIChzb3VyY2VMYXllci5pZC5lbmRzV2l0aCgnZ3VpZGVzJykpIHtcbiAgICAgIC8vIElmIHVzZXIgaXMgcGlja2luZyBhbiBlZGl0aW5nIGhhbmRsZSwgYWRkIGFkZGl0aW9uYWwgZGF0YSB0byB0aGUgaW5mb1xuICAgICAgaW5mby5pc0d1aWRlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5mbztcbiAgfVxuXG4gIGNyZWF0ZUd1aWRlc0xheWVycygpIHtcbiAgICBjb25zdCBtb2RlID0gdGhpcy5nZXRBY3RpdmVNb2RlKCk7XG4gICAgY29uc3QgZ3VpZGVzOiBGZWF0dXJlQ29sbGVjdGlvbiA9IG1vZGUuZ2V0R3VpZGVzKHRoaXMuZ2V0TW9kZVByb3BzKHRoaXMucHJvcHMpKTtcblxuICAgIGlmICghZ3VpZGVzIHx8ICFndWlkZXMuZmVhdHVyZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgbGV0IHBvaW50TGF5ZXJQcm9wcztcbiAgICBpZiAodGhpcy5wcm9wcy5lZGl0SGFuZGxlVHlwZSA9PT0gJ2ljb24nKSB7XG4gICAgICBwb2ludExheWVyUHJvcHMgPSB7XG4gICAgICAgIHR5cGU6IEljb25MYXllcixcbiAgICAgICAgaWNvbkF0bGFzOiB0aGlzLnByb3BzLmVkaXRIYW5kbGVJY29uQXRsYXMsXG4gICAgICAgIGljb25NYXBwaW5nOiB0aGlzLnByb3BzLmVkaXRIYW5kbGVJY29uTWFwcGluZyxcbiAgICAgICAgc2l6ZVNjYWxlOiB0aGlzLnByb3BzLmVkaXRIYW5kbGVJY29uU2l6ZVNjYWxlLFxuICAgICAgICBnZXRJY29uOiBndWlkZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0RWRpdEhhbmRsZUljb24pLFxuICAgICAgICBnZXRTaXplOiBndWlkZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0RWRpdEhhbmRsZUljb25TaXplKSxcbiAgICAgICAgZ2V0Q29sb3I6IGd1aWRlQWNjZXNzb3IodGhpcy5wcm9wcy5nZXRFZGl0SGFuZGxlSWNvbkNvbG9yKSxcbiAgICAgICAgZ2V0QW5nbGU6IGd1aWRlQWNjZXNzb3IodGhpcy5wcm9wcy5nZXRFZGl0SGFuZGxlSWNvbkFuZ2xlKVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcG9pbnRMYXllclByb3BzID0ge1xuICAgICAgICB0eXBlOiBTY2F0dGVycGxvdExheWVyLFxuICAgICAgICByYWRpdXNTY2FsZTogdGhpcy5wcm9wcy5lZGl0SGFuZGxlUG9pbnRSYWRpdXNTY2FsZSxcbiAgICAgICAgc3Ryb2tlZDogdGhpcy5wcm9wcy5lZGl0SGFuZGxlUG9pbnRPdXRsaW5lLFxuICAgICAgICBnZXRMaW5lV2lkdGg6IHRoaXMucHJvcHMuZWRpdEhhbmRsZVBvaW50U3Ryb2tlV2lkdGgsXG4gICAgICAgIHJhZGl1c01pblBpeGVsczogdGhpcy5wcm9wcy5lZGl0SGFuZGxlUG9pbnRSYWRpdXNNaW5QaXhlbHMsXG4gICAgICAgIHJhZGl1c01heFBpeGVsczogdGhpcy5wcm9wcy5lZGl0SGFuZGxlUG9pbnRSYWRpdXNNYXhQaXhlbHMsXG4gICAgICAgIGdldFJhZGl1czogZ3VpZGVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldEVkaXRIYW5kbGVQb2ludFJhZGl1cyksXG4gICAgICAgIGdldEZpbGxDb2xvcjogZ3VpZGVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldEVkaXRIYW5kbGVQb2ludENvbG9yKSxcbiAgICAgICAgZ2V0TGluZUNvbG9yOiBndWlkZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0RWRpdEhhbmRsZVBvaW50T3V0bGluZUNvbG9yKVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBsYXllciA9IG5ldyBHZW9Kc29uTGF5ZXIoXG4gICAgICB0aGlzLmdldFN1YkxheWVyUHJvcHMoe1xuICAgICAgICBpZDogYGd1aWRlc2AsXG4gICAgICAgIGRhdGE6IGd1aWRlcyxcbiAgICAgICAgZnA2NDogdGhpcy5wcm9wcy5mcDY0LFxuICAgICAgICBfc3ViTGF5ZXJQcm9wczoge1xuICAgICAgICAgIHBvaW50czogcG9pbnRMYXllclByb3BzXG4gICAgICAgIH0sXG4gICAgICAgIGxpbmVXaWR0aFNjYWxlOiB0aGlzLnByb3BzLmxpbmVXaWR0aFNjYWxlLFxuICAgICAgICBsaW5lV2lkdGhNaW5QaXhlbHM6IHRoaXMucHJvcHMubGluZVdpZHRoTWluUGl4ZWxzLFxuICAgICAgICBsaW5lV2lkdGhNYXhQaXhlbHM6IHRoaXMucHJvcHMubGluZVdpZHRoTWF4UGl4ZWxzLFxuICAgICAgICBsaW5lV2lkdGhVbml0czogdGhpcy5wcm9wcy5saW5lV2lkdGhVbml0cyxcbiAgICAgICAgbGluZUpvaW50Um91bmRlZDogdGhpcy5wcm9wcy5saW5lSm9pbnRSb3VuZGVkLFxuICAgICAgICBsaW5lTWl0ZXJMaW1pdDogdGhpcy5wcm9wcy5saW5lTWl0ZXJMaW1pdCxcbiAgICAgICAgZ2V0TGluZUNvbG9yOiBndWlkZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0VGVudGF0aXZlTGluZUNvbG9yKSxcbiAgICAgICAgZ2V0TGluZVdpZHRoOiBndWlkZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0VGVudGF0aXZlTGluZVdpZHRoKSxcbiAgICAgICAgZ2V0RmlsbENvbG9yOiBndWlkZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0VGVudGF0aXZlRmlsbENvbG9yKVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgcmV0dXJuIFtsYXllcl07XG4gIH1cblxuICBjcmVhdGVUb29sdGlwc0xheWVycygpIHtcbiAgICBjb25zdCBtb2RlID0gdGhpcy5nZXRBY3RpdmVNb2RlKCk7XG4gICAgY29uc3QgdG9vbHRpcHMgPSBtb2RlLmdldFRvb2x0aXBzKHRoaXMuZ2V0TW9kZVByb3BzKHRoaXMucHJvcHMpKTtcblxuICAgIGNvbnN0IGxheWVyID0gbmV3IFRleHRMYXllcihcbiAgICAgIHRoaXMuZ2V0U3ViTGF5ZXJQcm9wcyh7XG4gICAgICAgIGlkOiBgdG9vbHRpcHNgLFxuICAgICAgICBkYXRhOiB0b29sdGlwc1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgcmV0dXJuIFtsYXllcl07XG4gIH1cblxuICBvbkxheWVyQ2xpY2soZXZlbnQ6IENsaWNrRXZlbnQpIHtcbiAgICB0aGlzLmdldEFjdGl2ZU1vZGUoKS5oYW5kbGVDbGljayhldmVudCwgdGhpcy5nZXRNb2RlUHJvcHModGhpcy5wcm9wcykpO1xuICB9XG5cbiAgb25TdGFydERyYWdnaW5nKGV2ZW50OiBTdGFydERyYWdnaW5nRXZlbnQpIHtcbiAgICB0aGlzLmdldEFjdGl2ZU1vZGUoKS5oYW5kbGVTdGFydERyYWdnaW5nKGV2ZW50LCB0aGlzLmdldE1vZGVQcm9wcyh0aGlzLnByb3BzKSk7XG4gIH1cblxuICBvbkRyYWdnaW5nKGV2ZW50OiBEcmFnZ2luZ0V2ZW50KSB7XG4gICAgdGhpcy5nZXRBY3RpdmVNb2RlKCkuaGFuZGxlRHJhZ2dpbmcoZXZlbnQsIHRoaXMuZ2V0TW9kZVByb3BzKHRoaXMucHJvcHMpKTtcbiAgfVxuXG4gIG9uU3RvcERyYWdnaW5nKGV2ZW50OiBTdG9wRHJhZ2dpbmdFdmVudCkge1xuICAgIHRoaXMuZ2V0QWN0aXZlTW9kZSgpLmhhbmRsZVN0b3BEcmFnZ2luZyhldmVudCwgdGhpcy5nZXRNb2RlUHJvcHModGhpcy5wcm9wcykpO1xuICB9XG5cbiAgb25Qb2ludGVyTW92ZShldmVudDogUG9pbnRlck1vdmVFdmVudCkge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBsYXN0UG9pbnRlck1vdmVFdmVudDogZXZlbnQgfSk7XG4gICAgdGhpcy5nZXRBY3RpdmVNb2RlKCkuaGFuZGxlUG9pbnRlck1vdmUoZXZlbnQsIHRoaXMuZ2V0TW9kZVByb3BzKHRoaXMucHJvcHMpKTtcbiAgfVxuXG4gIGdldEN1cnNvcih7IGlzRHJhZ2dpbmcgfTogeyBpc0RyYWdnaW5nOiBib29sZWFuIH0pIHtcbiAgICBsZXQgeyBjdXJzb3IgfSA9IHRoaXMuc3RhdGU7XG4gICAgaWYgKCFjdXJzb3IpIHtcbiAgICAgIC8vIGRlZmF1bHQgY3Vyc29yXG4gICAgICBjdXJzb3IgPSBpc0RyYWdnaW5nID8gJ2dyYWJiaW5nJyA6ICdncmFiJztcbiAgICB9XG4gICAgcmV0dXJuIGN1cnNvcjtcbiAgfVxuXG4gIGdldEFjdGl2ZU1vZGUoKTogR2VvSnNvbkVkaXRNb2RlIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5tb2RlO1xuICB9XG59XG5cbkVkaXRhYmxlR2VvSnNvbkxheWVyLmxheWVyTmFtZSA9ICdFZGl0YWJsZUdlb0pzb25MYXllcic7XG5FZGl0YWJsZUdlb0pzb25MYXllci5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvZWRpdGFibGUtZ2VvanNvbi1sYXllci5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX0xJTkVfQ09MT1IiLCJERUZBVUxUX0ZJTExfQ09MT1IiLCJERUZBVUxUX1NFTEVDVEVEX0xJTkVfQ09MT1IiLCJERUZBVUxUX1NFTEVDVEVEX0ZJTExfQ09MT1IiLCJERUZBVUxUX0VESVRJTkdfRVhJU1RJTkdfUE9JTlRfQ09MT1IiLCJERUZBVUxUX0VESVRJTkdfSU5URVJNRURJQVRFX1BPSU5UX0NPTE9SIiwiREVGQVVMVF9FRElUSU5HX1NOQVBfUE9JTlRfQ09MT1IiLCJERUZBVUxUX0VESVRJTkdfUE9JTlRfT1VUTElORV9DT0xPUiIsIkRFRkFVTFRfRURJVElOR19FWElTVElOR19QT0lOVF9SQURJVVMiLCJERUZBVUxUX0VESVRJTkdfSU5URVJNRURJQVRFX1BPSU5UX1JBRElVUyIsIkRFRkFVTFRfRURJVElOR19TTkFQX1BPSU5UX1JBRElVUyIsIkRFRkFVTFRfRURJVF9NT0RFIiwiRHJhd1BvbHlnb25Nb2RlIiwiZ3VpZGVBY2Nlc3NvciIsImFjY2Vzc29yIiwiZ3VpZGVNYXliZVdyYXBwZWQiLCJ1bndyYXBHdWlkZSIsIl9fc291cmNlIiwib2JqZWN0Iiwic291cmNlRmVhdHVyZSIsImZlYXR1cmUiLCJnZXRFZGl0SGFuZGxlQ29sb3IiLCJoYW5kbGUiLCJwcm9wZXJ0aWVzIiwiZWRpdEhhbmRsZVR5cGUiLCJnZXRFZGl0SGFuZGxlT3V0bGluZUNvbG9yIiwiZ2V0RWRpdEhhbmRsZVJhZGl1cyIsImRlZmF1bHRQcm9wcyIsIm1vZGUiLCJvbkVkaXQiLCJwaWNrYWJsZSIsInBpY2tpbmdSYWRpdXMiLCJwaWNraW5nRGVwdGgiLCJmcDY0IiwiZmlsbGVkIiwic3Ryb2tlZCIsImxpbmVXaWR0aFNjYWxlIiwibGluZVdpZHRoTWluUGl4ZWxzIiwibGluZVdpZHRoTWF4UGl4ZWxzIiwiTnVtYmVyIiwiTUFYX1NBRkVfSU5URUdFUiIsImxpbmVXaWR0aFVuaXRzIiwibGluZUpvaW50Um91bmRlZCIsImxpbmVNaXRlckxpbWl0IiwicG9pbnRSYWRpdXNTY2FsZSIsInBvaW50UmFkaXVzTWluUGl4ZWxzIiwicG9pbnRSYWRpdXNNYXhQaXhlbHMiLCJnZXRMaW5lQ29sb3IiLCJpc1NlbGVjdGVkIiwiZ2V0RmlsbENvbG9yIiwiZ2V0UmFkaXVzIiwiZiIsInJhZGl1cyIsInNpemUiLCJnZXRMaW5lV2lkdGgiLCJsaW5lV2lkdGgiLCJnZXRUZW50YXRpdmVMaW5lQ29sb3IiLCJnZXRUZW50YXRpdmVGaWxsQ29sb3IiLCJnZXRUZW50YXRpdmVMaW5lV2lkdGgiLCJlZGl0SGFuZGxlUG9pbnRSYWRpdXNTY2FsZSIsImVkaXRIYW5kbGVQb2ludE91dGxpbmUiLCJlZGl0SGFuZGxlUG9pbnRTdHJva2VXaWR0aCIsImVkaXRIYW5kbGVQb2ludFJhZGl1c01pblBpeGVscyIsImVkaXRIYW5kbGVQb2ludFJhZGl1c01heFBpeGVscyIsImdldEVkaXRIYW5kbGVQb2ludENvbG9yIiwiZ2V0RWRpdEhhbmRsZVBvaW50T3V0bGluZUNvbG9yIiwiZ2V0RWRpdEhhbmRsZVBvaW50UmFkaXVzIiwiZWRpdEhhbmRsZUljb25BdGxhcyIsImVkaXRIYW5kbGVJY29uTWFwcGluZyIsImVkaXRIYW5kbGVJY29uU2l6ZVNjYWxlIiwiZ2V0RWRpdEhhbmRsZUljb24iLCJnZXRFZGl0SGFuZGxlSWNvblNpemUiLCJnZXRFZGl0SGFuZGxlSWNvbkNvbG9yIiwiZ2V0RWRpdEhhbmRsZUljb25BbmdsZSIsImJpbGxib2FyZCIsIm1vZGVOYW1lTWFwcGluZyIsInZpZXciLCJWaWV3TW9kZSIsIm1vZGlmeSIsIk1vZGlmeU1vZGUiLCJ0cmFuc2xhdGUiLCJTbmFwcGFibGVNb2RlIiwiVHJhbnNsYXRlTW9kZSIsInRyYW5zZm9ybSIsIlRyYW5zZm9ybU1vZGUiLCJzY2FsZSIsIlNjYWxlTW9kZSIsInJvdGF0ZSIsIlJvdGF0ZU1vZGUiLCJkdXBsaWNhdGUiLCJEdXBsaWNhdGVNb2RlIiwic3BsaXQiLCJTcGxpdFBvbHlnb25Nb2RlIiwiZXh0cnVkZSIsIkV4dHJ1ZGVNb2RlIiwiZWxldmF0aW9uIiwiRWxldmF0aW9uTW9kZSIsImRyYXdQb2ludCIsIkRyYXdQb2ludE1vZGUiLCJkcmF3TGluZVN0cmluZyIsIkRyYXdMaW5lU3RyaW5nTW9kZSIsImRyYXdQb2x5Z29uIiwiZHJhd1JlY3RhbmdsZSIsIkRyYXdSZWN0YW5nbGVNb2RlIiwiZHJhd0NpcmNsZUZyb21DZW50ZXIiLCJEcmF3Q2lyY2xlRnJvbUNlbnRlck1vZGUiLCJkcmF3Q2lyY2xlQnlCb3VuZGluZ0JveCIsIkRyYXdDaXJjbGVCeURpYW1ldGVyTW9kZSIsImRyYXdFbGxpcHNlQnlCb3VuZGluZ0JveCIsIkRyYXdFbGxpcHNlQnlCb3VuZGluZ0JveE1vZGUiLCJkcmF3UmVjdGFuZ2xlVXNpbmczUG9pbnRzIiwiRHJhd1JlY3RhbmdsZVVzaW5nVGhyZWVQb2ludHNNb2RlIiwiZHJhd0VsbGlwc2VVc2luZzNQb2ludHMiLCJEcmF3RWxsaXBzZVVzaW5nVGhyZWVQb2ludHNNb2RlIiwiZHJhdzkwRGVncmVlUG9seWdvbiIsIkRyYXc5MERlZ3JlZVBvbHlnb25Nb2RlIiwiZHJhd1BvbHlnb25CeURyYWdnaW5nIiwiRHJhd1BvbHlnb25CeURyYWdnaW5nTW9kZSIsIkVkaXRhYmxlR2VvSnNvbkxheWVyIiwic3ViTGF5ZXJQcm9wcyIsImdldFN1YkxheWVyUHJvcHMiLCJpZCIsImRhdGEiLCJwcm9wcyIsInNlbGVjdGlvbkF3YXJlQWNjZXNzb3IiLCJfc3ViTGF5ZXJQcm9wcyIsInVwZGF0ZVRyaWdnZXJzIiwic2VsZWN0ZWRGZWF0dXJlSW5kZXhlcyIsImxheWVycyIsIkdlb0pzb25MYXllciIsImNvbmNhdCIsImNyZWF0ZUd1aWRlc0xheWVycyIsImNyZWF0ZVRvb2x0aXBzTGF5ZXJzIiwic2V0U3RhdGUiLCJzZWxlY3RlZEZlYXR1cmVzIiwiZWRpdEhhbmRsZXMiLCJvcHRzIiwiY2hhbmdlRmxhZ3MiLCJzdGF0ZUNoYW5nZWQiLCJvbGRQcm9wcyIsInN0YXRlIiwicHJvcHNPckRhdGFDaGFuZ2VkIiwiY29uc29sZSIsIndhcm4iLCJNb2RlQ29uc3RydWN0b3IiLCJTdHJpbmciLCJjdXJzb3IiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJlbGVtIiwiZmVhdHVyZXMiLCJtb2RlQ29uZmlnIiwic2VsZWN0ZWRJbmRleGVzIiwibGFzdFBvaW50ZXJNb3ZlRXZlbnQiLCJlZGl0QWN0aW9uIiwib25VcGRhdGVDdXJzb3IiLCJpc0ZlYXR1cmVTZWxlY3RlZCIsImxlbmd0aCIsImZlYXR1cmVJbmRleCIsImluZGV4T2YiLCJpbmNsdWRlcyIsImluZm8iLCJzb3VyY2VMYXllciIsImVuZHNXaXRoIiwiaXNHdWlkZSIsImdldEFjdGl2ZU1vZGUiLCJndWlkZXMiLCJnZXRHdWlkZXMiLCJnZXRNb2RlUHJvcHMiLCJwb2ludExheWVyUHJvcHMiLCJ0eXBlIiwiSWNvbkxheWVyIiwiaWNvbkF0bGFzIiwiaWNvbk1hcHBpbmciLCJzaXplU2NhbGUiLCJnZXRJY29uIiwiZ2V0U2l6ZSIsImdldENvbG9yIiwiZ2V0QW5nbGUiLCJTY2F0dGVycGxvdExheWVyIiwicmFkaXVzU2NhbGUiLCJyYWRpdXNNaW5QaXhlbHMiLCJyYWRpdXNNYXhQaXhlbHMiLCJsYXllciIsInBvaW50cyIsInRvb2x0aXBzIiwiZ2V0VG9vbHRpcHMiLCJUZXh0TGF5ZXIiLCJldmVudCIsImhhbmRsZUNsaWNrIiwiaGFuZGxlU3RhcnREcmFnZ2luZyIsImhhbmRsZURyYWdnaW5nIiwiaGFuZGxlU3RvcERyYWdnaW5nIiwiaGFuZGxlUG9pbnRlck1vdmUiLCJpc0RyYWdnaW5nIiwiRWRpdGFibGVMYXllciIsImxheWVyTmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBOztBQUVBOztBQW1DQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxrQkFBa0IsR0FBRyxDQUFDLEdBQUQsRUFBTSxHQUFOLEVBQVcsR0FBWCxFQUFnQixJQUFoQixDQUEzQjtBQUNBLElBQU1DLGtCQUFrQixHQUFHLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLElBQWhCLENBQTNCO0FBQ0EsSUFBTUMsMkJBQTJCLEdBQUcsQ0FBQyxJQUFELEVBQU8sSUFBUCxFQUFhLElBQWIsRUFBbUIsSUFBbkIsQ0FBcEM7QUFDQSxJQUFNQywyQkFBMkIsR0FBRyxDQUFDLElBQUQsRUFBTyxJQUFQLEVBQWEsSUFBYixFQUFtQixJQUFuQixDQUFwQztBQUNBLElBQU1DLG9DQUFvQyxHQUFHLENBQUMsSUFBRCxFQUFPLEdBQVAsRUFBWSxHQUFaLEVBQWlCLElBQWpCLENBQTdDO0FBQ0EsSUFBTUMsd0NBQXdDLEdBQUcsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsRUFBZ0IsSUFBaEIsQ0FBakQ7QUFDQSxJQUFNQyxnQ0FBZ0MsR0FBRyxDQUFDLElBQUQsRUFBTyxJQUFQLEVBQWEsSUFBYixFQUFtQixJQUFuQixDQUF6QztBQUNBLElBQU1DLG1DQUFtQyxHQUFHLENBQUMsSUFBRCxFQUFPLElBQVAsRUFBYSxJQUFiLEVBQW1CLElBQW5CLENBQTVDO0FBQ0EsSUFBTUMscUNBQXFDLEdBQUcsQ0FBOUM7QUFDQSxJQUFNQyx5Q0FBeUMsR0FBRyxDQUFsRDtBQUNBLElBQU1DLGlDQUFpQyxHQUFHLENBQTFDO0FBRUEsSUFBTUMsaUJBQWlCLEdBQUdDLDBCQUExQjs7QUFFQSxTQUFTQyxhQUFULENBQXVCQyxRQUF2QixFQUFpQztBQUMvQixNQUFJLENBQUNBLFFBQUQsSUFBYSxPQUFPQSxRQUFQLEtBQW9CLFVBQXJDLEVBQWlEO0FBQy9DLFdBQU9BLFFBQVA7QUFDRDs7QUFDRCxTQUFPLFVBQUFDLGlCQUFpQjtBQUFBLFdBQUlELFFBQVEsQ0FBQ0UsV0FBVyxDQUFDRCxpQkFBRCxDQUFaLENBQVo7QUFBQSxHQUF4QjtBQUNELEMsQ0FFRDs7O0FBQ0EsU0FBU0MsV0FBVCxDQUFxQkQsaUJBQXJCLEVBQXdDO0FBQ3RDLE1BQUlBLGlCQUFpQixDQUFDRSxRQUF0QixFQUFnQztBQUM5QixXQUFPRixpQkFBaUIsQ0FBQ0UsUUFBbEIsQ0FBMkJDLE1BQWxDO0FBQ0QsR0FGRCxNQUVPLElBQUlILGlCQUFpQixDQUFDSSxhQUF0QixFQUFxQztBQUMxQyxXQUFPSixpQkFBaUIsQ0FBQ0ksYUFBbEIsQ0FBZ0NDLE9BQXZDO0FBQ0QsR0FMcUMsQ0FNdEM7OztBQUNBLFNBQU9MLGlCQUFQO0FBQ0Q7O0FBRUQsU0FBU00sa0JBQVQsQ0FBNEJDLE1BQTVCLEVBQW9DO0FBQ2xDLFVBQVFBLE1BQU0sQ0FBQ0MsVUFBUCxDQUFrQkMsY0FBMUI7QUFDRSxTQUFLLFVBQUw7QUFDRSxhQUFPcEIsb0NBQVA7O0FBQ0YsU0FBSyxhQUFMO0FBQ0UsYUFBT0UsZ0NBQVA7O0FBQ0YsU0FBSyxjQUFMO0FBQ0E7QUFDRSxhQUFPRCx3Q0FBUDtBQVBKO0FBU0Q7O0FBRUQsU0FBU29CLHlCQUFULENBQW1DSCxNQUFuQyxFQUEyQztBQUN6QyxTQUFPZixtQ0FBUDtBQUNEOztBQUVELFNBQVNtQixtQkFBVCxDQUE2QkosTUFBN0IsRUFBcUM7QUFDbkMsVUFBUUEsTUFBTSxDQUFDQyxVQUFQLENBQWtCQyxjQUExQjtBQUNFLFNBQUssVUFBTDtBQUNFLGFBQU9oQixxQ0FBUDs7QUFDRixTQUFLLE1BQUw7QUFDRSxhQUFPRSxpQ0FBUDs7QUFDRixTQUFLLGNBQUw7QUFDQTtBQUNFLGFBQU9ELHlDQUFQO0FBUEo7QUFTRDs7QUFFRCxJQUFNa0IsWUFBWSxHQUFHO0FBQ25CQyxFQUFBQSxJQUFJLEVBQUVoQiwwQkFEYTtBQUduQjtBQUNBaUIsRUFBQUEsTUFBTSxFQUFFLGtCQUFNLENBQUUsQ0FKRztBQU1uQkMsRUFBQUEsUUFBUSxFQUFFLElBTlM7QUFPbkJDLEVBQUFBLGFBQWEsRUFBRSxFQVBJO0FBUW5CQyxFQUFBQSxZQUFZLEVBQUUsQ0FSSztBQVNuQkMsRUFBQUEsSUFBSSxFQUFFLEtBVGE7QUFVbkJDLEVBQUFBLE1BQU0sRUFBRSxJQVZXO0FBV25CQyxFQUFBQSxPQUFPLEVBQUUsSUFYVTtBQVluQkMsRUFBQUEsY0FBYyxFQUFFLENBWkc7QUFhbkJDLEVBQUFBLGtCQUFrQixFQUFFLENBYkQ7QUFjbkJDLEVBQUFBLGtCQUFrQixFQUFFQyxNQUFNLENBQUNDLGdCQWRSO0FBZW5CQyxFQUFBQSxjQUFjLEVBQUUsUUFmRztBQWdCbkJDLEVBQUFBLGdCQUFnQixFQUFFLEtBaEJDO0FBaUJuQkMsRUFBQUEsY0FBYyxFQUFFLENBakJHO0FBa0JuQkMsRUFBQUEsZ0JBQWdCLEVBQUUsQ0FsQkM7QUFtQm5CQyxFQUFBQSxvQkFBb0IsRUFBRSxDQW5CSDtBQW9CbkJDLEVBQUFBLG9CQUFvQixFQUFFUCxNQUFNLENBQUNDLGdCQXBCVjtBQXFCbkJPLEVBQUFBLFlBQVksRUFBRSxzQkFBQzNCLE9BQUQsRUFBVTRCLFVBQVYsRUFBc0JwQixJQUF0QjtBQUFBLFdBQ1pvQixVQUFVLEdBQUc5QywyQkFBSCxHQUFpQ0Ysa0JBRC9CO0FBQUEsR0FyQks7QUF1Qm5CaUQsRUFBQUEsWUFBWSxFQUFFLHNCQUFDN0IsT0FBRCxFQUFVNEIsVUFBVixFQUFzQnBCLElBQXRCO0FBQUEsV0FDWm9CLFVBQVUsR0FBRzdDLDJCQUFILEdBQWlDRixrQkFEL0I7QUFBQSxHQXZCSztBQXlCbkJpRCxFQUFBQSxTQUFTLEVBQUUsbUJBQUFDLENBQUM7QUFBQSxXQUNUQSxDQUFDLElBQUlBLENBQUMsQ0FBQzVCLFVBQVAsSUFBcUI0QixDQUFDLENBQUM1QixVQUFGLENBQWE2QixNQUFuQyxJQUErQ0QsQ0FBQyxJQUFJQSxDQUFDLENBQUM1QixVQUFQLElBQXFCNEIsQ0FBQyxDQUFDNUIsVUFBRixDQUFhOEIsSUFBakYsSUFBMEYsQ0FEaEY7QUFBQSxHQXpCTztBQTJCbkJDLEVBQUFBLFlBQVksRUFBRSxzQkFBQUgsQ0FBQztBQUFBLFdBQUtBLENBQUMsSUFBSUEsQ0FBQyxDQUFDNUIsVUFBUCxJQUFxQjRCLENBQUMsQ0FBQzVCLFVBQUYsQ0FBYWdDLFNBQW5DLElBQWlELENBQXJEO0FBQUEsR0EzQkk7QUE2Qm5CO0FBQ0FDLEVBQUFBLHFCQUFxQixFQUFFLCtCQUFBTCxDQUFDO0FBQUEsV0FBSWpELDJCQUFKO0FBQUEsR0E5Qkw7QUErQm5CdUQsRUFBQUEscUJBQXFCLEVBQUUsK0JBQUFOLENBQUM7QUFBQSxXQUFJaEQsMkJBQUo7QUFBQSxHQS9CTDtBQWdDbkJ1RCxFQUFBQSxxQkFBcUIsRUFBRSwrQkFBQVAsQ0FBQztBQUFBLFdBQUtBLENBQUMsSUFBSUEsQ0FBQyxDQUFDNUIsVUFBUCxJQUFxQjRCLENBQUMsQ0FBQzVCLFVBQUYsQ0FBYWdDLFNBQW5DLElBQWlELENBQXJEO0FBQUEsR0FoQ0w7QUFrQ25CL0IsRUFBQUEsY0FBYyxFQUFFLE9BbENHO0FBb0NuQjtBQUNBbUMsRUFBQUEsMEJBQTBCLEVBQUUsQ0FyQ1Q7QUFzQ25CQyxFQUFBQSxzQkFBc0IsRUFBRSxJQXRDTDtBQXVDbkJDLEVBQUFBLDBCQUEwQixFQUFFLENBdkNUO0FBd0NuQkMsRUFBQUEsOEJBQThCLEVBQUUsQ0F4Q2I7QUF5Q25CQyxFQUFBQSw4QkFBOEIsRUFBRSxDQXpDYjtBQTBDbkJDLEVBQUFBLHVCQUF1QixFQUFFM0Msa0JBMUNOO0FBMkNuQjRDLEVBQUFBLDhCQUE4QixFQUFFeEMseUJBM0NiO0FBNENuQnlDLEVBQUFBLHdCQUF3QixFQUFFeEMsbUJBNUNQO0FBOENuQjtBQUNBeUMsRUFBQUEsbUJBQW1CLEVBQUUsSUEvQ0Y7QUFnRG5CQyxFQUFBQSxxQkFBcUIsRUFBRSxJQWhESjtBQWlEbkJDLEVBQUFBLHVCQUF1QixFQUFFLENBakROO0FBa0RuQkMsRUFBQUEsaUJBQWlCLEVBQUUsMkJBQUFoRCxNQUFNO0FBQUEsV0FBSUEsTUFBTSxDQUFDQyxVQUFQLENBQWtCQyxjQUF0QjtBQUFBLEdBbEROO0FBbURuQitDLEVBQUFBLHFCQUFxQixFQUFFLEVBbkRKO0FBb0RuQkMsRUFBQUEsc0JBQXNCLEVBQUVuRCxrQkFwREw7QUFxRG5Cb0QsRUFBQUEsc0JBQXNCLEVBQUUsQ0FyREw7QUF1RG5CO0FBQ0FDLEVBQUFBLFNBQVMsRUFBRTtBQXhEUSxDQUFyQixDLENBMkRBOztBQUNBLElBQU1DLGVBQWUsR0FBRztBQUN0QkMsRUFBQUEsSUFBSSxFQUFFQyxtQkFEZ0I7QUFHdEI7QUFDQUMsRUFBQUEsTUFBTSxFQUFFQyxxQkFKYztBQUt0QkMsRUFBQUEsU0FBUyxFQUFFLElBQUlDLHdCQUFKLENBQWtCLElBQUlDLHdCQUFKLEVBQWxCLENBTFc7QUFPdEJDLEVBQUFBLFNBQVMsRUFBRSxJQUFJRix3QkFBSixDQUFrQixJQUFJRyx3QkFBSixFQUFsQixDQVBXO0FBUXRCQyxFQUFBQSxLQUFLLEVBQUVDLG9CQVJlO0FBU3RCQyxFQUFBQSxNQUFNLEVBQUVDLHFCQVRjO0FBVXRCQyxFQUFBQSxTQUFTLEVBQUVDLHdCQVZXO0FBV3RCQyxFQUFBQSxLQUFLLEVBQUVDLDJCQVhlO0FBWXRCQyxFQUFBQSxPQUFPLEVBQUVDLHNCQVphO0FBYXRCQyxFQUFBQSxTQUFTLEVBQUVDLHdCQWJXO0FBZXRCO0FBQ0FDLEVBQUFBLFNBQVMsRUFBRUMsd0JBaEJXO0FBaUJ0QkMsRUFBQUEsY0FBYyxFQUFFQyw2QkFqQk07QUFrQnRCQyxFQUFBQSxXQUFXLEVBQUV6RiwwQkFsQlM7QUFtQnRCMEYsRUFBQUEsYUFBYSxFQUFFQyw0QkFuQk87QUFvQnRCQyxFQUFBQSxvQkFBb0IsRUFBRUMsbUNBcEJBO0FBcUJ0QkMsRUFBQUEsdUJBQXVCLEVBQUVDLG1DQXJCSDtBQXNCdEJDLEVBQUFBLHdCQUF3QixFQUFFQyx1Q0F0Qko7QUF1QnRCQyxFQUFBQSx5QkFBeUIsRUFBRUMsNENBdkJMO0FBd0J0QkMsRUFBQUEsdUJBQXVCLEVBQUVDLDBDQXhCSDtBQXlCdEJDLEVBQUFBLG1CQUFtQixFQUFFQyxrQ0F6QkM7QUEwQnRCQyxFQUFBQSxxQkFBcUIsRUFBRUM7QUExQkQsQ0FBeEI7O0FBb0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUVxQkMsb0I7Ozs7Ozs7Ozs7Ozs7QUFDbkI7QUFDQTtBQUNBO21DQUVlO0FBQ2IsVUFBTUMsYUFBYSxHQUFHLEtBQUtDLGdCQUFMLENBQXNCO0FBQzFDQyxRQUFBQSxFQUFFLEVBQUUsU0FEc0M7QUFHMUM7QUFDQUMsUUFBQUEsSUFBSSxFQUFFLEtBQUtDLEtBQUwsQ0FBV0QsSUFKeUI7QUFLMUN6RixRQUFBQSxJQUFJLEVBQUUsS0FBSzBGLEtBQUwsQ0FBVzFGLElBTHlCO0FBTTFDQyxRQUFBQSxNQUFNLEVBQUUsS0FBS3lGLEtBQUwsQ0FBV3pGLE1BTnVCO0FBTzFDQyxRQUFBQSxPQUFPLEVBQUUsS0FBS3dGLEtBQUwsQ0FBV3hGLE9BUHNCO0FBUTFDQyxRQUFBQSxjQUFjLEVBQUUsS0FBS3VGLEtBQUwsQ0FBV3ZGLGNBUmU7QUFTMUNDLFFBQUFBLGtCQUFrQixFQUFFLEtBQUtzRixLQUFMLENBQVd0RixrQkFUVztBQVUxQ0MsUUFBQUEsa0JBQWtCLEVBQUUsS0FBS3FGLEtBQUwsQ0FBV3JGLGtCQVZXO0FBVzFDRyxRQUFBQSxjQUFjLEVBQUUsS0FBS2tGLEtBQUwsQ0FBV2xGLGNBWGU7QUFZMUNDLFFBQUFBLGdCQUFnQixFQUFFLEtBQUtpRixLQUFMLENBQVdqRixnQkFaYTtBQWExQ0MsUUFBQUEsY0FBYyxFQUFFLEtBQUtnRixLQUFMLENBQVdoRixjQWJlO0FBYzFDQyxRQUFBQSxnQkFBZ0IsRUFBRSxLQUFLK0UsS0FBTCxDQUFXL0UsZ0JBZGE7QUFlMUNDLFFBQUFBLG9CQUFvQixFQUFFLEtBQUs4RSxLQUFMLENBQVc5RSxvQkFmUztBQWdCMUNDLFFBQUFBLG9CQUFvQixFQUFFLEtBQUs2RSxLQUFMLENBQVc3RSxvQkFoQlM7QUFpQjFDQyxRQUFBQSxZQUFZLEVBQUUsS0FBSzZFLHNCQUFMLENBQTRCLEtBQUtELEtBQUwsQ0FBVzVFLFlBQXZDLENBakI0QjtBQWtCMUNFLFFBQUFBLFlBQVksRUFBRSxLQUFLMkUsc0JBQUwsQ0FBNEIsS0FBS0QsS0FBTCxDQUFXMUUsWUFBdkMsQ0FsQjRCO0FBbUIxQ0MsUUFBQUEsU0FBUyxFQUFFLEtBQUswRSxzQkFBTCxDQUE0QixLQUFLRCxLQUFMLENBQVd6RSxTQUF2QyxDQW5CK0I7QUFvQjFDSSxRQUFBQSxZQUFZLEVBQUUsS0FBS3NFLHNCQUFMLENBQTRCLEtBQUtELEtBQUwsQ0FBV3JFLFlBQXZDLENBcEI0QjtBQXNCMUN1RSxRQUFBQSxjQUFjLEVBQUU7QUFDZCwwQkFBZ0I7QUFDZG5ELFlBQUFBLFNBQVMsRUFBRSxLQUFLaUQsS0FBTCxDQUFXakQ7QUFEUixXQURGO0FBSWQsNkJBQW1CO0FBQ2pCQSxZQUFBQSxTQUFTLEVBQUUsS0FBS2lELEtBQUwsQ0FBV2pEO0FBREw7QUFKTCxTQXRCMEI7QUErQjFDb0QsUUFBQUEsY0FBYyxFQUFFO0FBQ2QvRSxVQUFBQSxZQUFZLEVBQUUsQ0FBQyxLQUFLNEUsS0FBTCxDQUFXSSxzQkFBWixFQUFvQyxLQUFLSixLQUFMLENBQVcvRixJQUEvQyxDQURBO0FBRWRxQixVQUFBQSxZQUFZLEVBQUUsQ0FBQyxLQUFLMEUsS0FBTCxDQUFXSSxzQkFBWixFQUFvQyxLQUFLSixLQUFMLENBQVcvRixJQUEvQyxDQUZBO0FBR2RzQixVQUFBQSxTQUFTLEVBQUUsQ0FBQyxLQUFLeUUsS0FBTCxDQUFXSSxzQkFBWixFQUFvQyxLQUFLSixLQUFMLENBQVcvRixJQUEvQyxDQUhHO0FBSWQwQixVQUFBQSxZQUFZLEVBQUUsQ0FBQyxLQUFLcUUsS0FBTCxDQUFXSSxzQkFBWixFQUFvQyxLQUFLSixLQUFMLENBQVcvRixJQUEvQztBQUpBO0FBL0IwQixPQUF0QixDQUF0QjtBQXVDQSxVQUFJb0csTUFBVyxHQUFHLENBQUMsSUFBSUMsb0JBQUosQ0FBaUJWLGFBQWpCLENBQUQsQ0FBbEI7QUFFQVMsTUFBQUEsTUFBTSxHQUFHQSxNQUFNLENBQUNFLE1BQVAsQ0FBYyxLQUFLQyxrQkFBTCxFQUFkLEVBQXlDLEtBQUtDLG9CQUFMLEVBQXpDLENBQVQ7QUFFQSxhQUFPSixNQUFQO0FBQ0Q7OztzQ0FFaUI7QUFDaEI7O0FBRUEsV0FBS0ssUUFBTCxDQUFjO0FBQ1pDLFFBQUFBLGdCQUFnQixFQUFFLEVBRE47QUFFWkMsUUFBQUEsV0FBVyxFQUFFO0FBRkQsT0FBZDtBQUlELEssQ0FFRDs7OztzQ0FDa0JDLEksRUFBVztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBTyw0RkFBd0JBLElBQXhCLEtBQWlDQSxJQUFJLENBQUNDLFdBQUwsQ0FBaUJDLFlBQXpEO0FBQ0Q7OztzQ0FVRTtBQUFBLFVBUERmLEtBT0MsUUFQREEsS0FPQztBQUFBLFVBTkRnQixRQU1DLFFBTkRBLFFBTUM7QUFBQSxVQUxERixXQUtDLFFBTERBLFdBS0M7O0FBQ0QsNEZBQWtCO0FBQUVkLFFBQUFBLEtBQUssRUFBTEEsS0FBRjtBQUFTYyxRQUFBQSxXQUFXLEVBQVhBO0FBQVQsT0FBbEI7O0FBRUEsVUFBSTdHLElBQUksR0FBRyxLQUFLZ0gsS0FBTCxDQUFXaEgsSUFBdEI7O0FBQ0EsVUFBSTZHLFdBQVcsQ0FBQ0ksa0JBQWhCLEVBQW9DO0FBQ2xDLFlBQUlsQixLQUFLLENBQUMvRixJQUFOLEtBQWUrRyxRQUFRLENBQUMvRyxJQUE1QixFQUFrQztBQUNoQyxjQUFJLE9BQU8rRixLQUFLLENBQUMvRixJQUFiLEtBQXNCLFFBQTFCLEVBQW9DO0FBQ2xDO0FBQ0FBLFlBQUFBLElBQUksR0FBRytDLGVBQWUsQ0FBQ2dELEtBQUssQ0FBQy9GLElBQVAsQ0FBdEIsQ0FGa0MsQ0FHbEM7O0FBQ0FrSCxZQUFBQSxPQUFPLENBQUNDLElBQVIsQ0FDRSwwRkFERjtBQUdELFdBUEQsTUFPTztBQUNMbkgsWUFBQUEsSUFBSSxHQUFHK0YsS0FBSyxDQUFDL0YsSUFBYjtBQUNEOztBQUVELGNBQUksT0FBT0EsSUFBUCxLQUFnQixVQUFwQixFQUFnQztBQUM5QixnQkFBTW9ILGVBQWUsR0FBR3BILElBQXhCO0FBQ0FBLFlBQUFBLElBQUksR0FBRyxJQUFJb0gsZUFBSixFQUFQO0FBQ0Q7O0FBRUQsY0FBSSxDQUFDcEgsSUFBTCxFQUFXO0FBQ1RrSCxZQUFBQSxPQUFPLENBQUNDLElBQVIsa0NBQXVDRSxNQUFNLENBQUN0QixLQUFLLENBQUMvRixJQUFQLENBQTdDLEdBRFMsQ0FDcUQ7QUFDOUQ7O0FBQ0FBLFlBQUFBLElBQUksR0FBR2pCLGlCQUFQO0FBQ0Q7O0FBRUQsY0FBSWlCLElBQUksS0FBSyxLQUFLZ0gsS0FBTCxDQUFXaEgsSUFBeEIsRUFBOEI7QUFDNUIsaUJBQUt5RyxRQUFMLENBQWM7QUFBRXpHLGNBQUFBLElBQUksRUFBSkEsSUFBRjtBQUFRc0gsY0FBQUEsTUFBTSxFQUFFO0FBQWhCLGFBQWQ7QUFDRDtBQUNGO0FBQ0Y7O0FBRUQsVUFBSVosZ0JBQWdCLEdBQUcsRUFBdkI7O0FBQ0EsVUFBSWEsS0FBSyxDQUFDQyxPQUFOLENBQWN6QixLQUFLLENBQUNJLHNCQUFwQixDQUFKLEVBQWlEO0FBQy9DO0FBQ0FPLFFBQUFBLGdCQUFnQixHQUFHWCxLQUFLLENBQUNJLHNCQUFOLENBQTZCc0IsR0FBN0IsQ0FBaUMsVUFBQUMsSUFBSTtBQUFBLGlCQUFJM0IsS0FBSyxDQUFDRCxJQUFOLENBQVc2QixRQUFYLENBQW9CRCxJQUFwQixDQUFKO0FBQUEsU0FBckMsQ0FBbkI7QUFDRDs7QUFFRCxXQUFLakIsUUFBTCxDQUFjO0FBQUVDLFFBQUFBLGdCQUFnQixFQUFoQkE7QUFBRixPQUFkO0FBQ0Q7OztpQ0FFWVgsSyxFQUFjO0FBQUE7O0FBQ3pCLGFBQU87QUFDTDZCLFFBQUFBLFVBQVUsRUFBRTdCLEtBQUssQ0FBQzZCLFVBRGI7QUFFTDlCLFFBQUFBLElBQUksRUFBRUMsS0FBSyxDQUFDRCxJQUZQO0FBR0wrQixRQUFBQSxlQUFlLEVBQUU5QixLQUFLLENBQUNJLHNCQUhsQjtBQUlMMkIsUUFBQUEsb0JBQW9CLEVBQUUsS0FBS2QsS0FBTCxDQUFXYyxvQkFKNUI7QUFLTFIsUUFBQUEsTUFBTSxFQUFFLEtBQUtOLEtBQUwsQ0FBV00sTUFMZDtBQU1MckgsUUFBQUEsTUFBTSxFQUFFLGdCQUFDOEgsVUFBRCxFQUErQztBQUNyRGhDLFVBQUFBLEtBQUssQ0FBQzlGLE1BQU4sQ0FBYThILFVBQWI7QUFDRCxTQVJJO0FBU0xDLFFBQUFBLGNBQWMsRUFBRSx3QkFBQ1YsTUFBRCxFQUFxQjtBQUNuQyxVQUFBLEtBQUksQ0FBQ2IsUUFBTCxDQUFjO0FBQUVhLFlBQUFBLE1BQU0sRUFBTkE7QUFBRixXQUFkO0FBQ0Q7QUFYSSxPQUFQO0FBYUQ7OzsyQ0FFc0JwSSxRLEVBQWU7QUFBQTs7QUFDcEMsVUFBSSxPQUFPQSxRQUFQLEtBQW9CLFVBQXhCLEVBQW9DO0FBQ2xDLGVBQU9BLFFBQVA7QUFDRDs7QUFDRCxhQUFPLFVBQUNNLE9BQUQ7QUFBQSxlQUFxQk4sUUFBUSxDQUFDTSxPQUFELEVBQVUsTUFBSSxDQUFDeUksaUJBQUwsQ0FBdUJ6SSxPQUF2QixDQUFWLEVBQTJDLE1BQUksQ0FBQ3VHLEtBQUwsQ0FBVy9GLElBQXRELENBQTdCO0FBQUEsT0FBUDtBQUNEOzs7c0NBRWlCUixPLEVBQWlCO0FBQ2pDLFVBQUksQ0FBQyxLQUFLdUcsS0FBTCxDQUFXRCxJQUFaLElBQW9CLENBQUMsS0FBS0MsS0FBTCxDQUFXSSxzQkFBcEMsRUFBNEQ7QUFDMUQsZUFBTyxLQUFQO0FBQ0Q7O0FBQ0QsVUFBSSxDQUFDLEtBQUtKLEtBQUwsQ0FBV0ksc0JBQVgsQ0FBa0MrQixNQUF2QyxFQUErQztBQUM3QyxlQUFPLEtBQVA7QUFDRDs7QUFDRCxVQUFNQyxZQUFZLEdBQUcsS0FBS3BDLEtBQUwsQ0FBV0QsSUFBWCxDQUFnQjZCLFFBQWhCLENBQXlCUyxPQUF6QixDQUFpQzVJLE9BQWpDLENBQXJCO0FBQ0EsYUFBTyxLQUFLdUcsS0FBTCxDQUFXSSxzQkFBWCxDQUFrQ2tDLFFBQWxDLENBQTJDRixZQUEzQyxDQUFQO0FBQ0Q7OzswQ0FFNkM7QUFBQSxVQUE3QkcsSUFBNkIsU0FBN0JBLElBQTZCO0FBQUEsVUFBdkJDLFdBQXVCLFNBQXZCQSxXQUF1Qjs7QUFDNUMsVUFBSUEsV0FBVyxDQUFDMUMsRUFBWixDQUFlMkMsUUFBZixDQUF3QixRQUF4QixDQUFKLEVBQXVDO0FBQ3JDO0FBQ0FGLFFBQUFBLElBQUksQ0FBQ0csT0FBTCxHQUFlLElBQWY7QUFDRDs7QUFFRCxhQUFPSCxJQUFQO0FBQ0Q7Ozt5Q0FFb0I7QUFDbkIsVUFBTXRJLElBQUksR0FBRyxLQUFLMEksYUFBTCxFQUFiO0FBQ0EsVUFBTUMsTUFBeUIsR0FBRzNJLElBQUksQ0FBQzRJLFNBQUwsQ0FBZSxLQUFLQyxZQUFMLENBQWtCLEtBQUs5QyxLQUF2QixDQUFmLENBQWxDOztBQUVBLFVBQUksQ0FBQzRDLE1BQUQsSUFBVyxDQUFDQSxNQUFNLENBQUNoQixRQUFQLENBQWdCTyxNQUFoQyxFQUF3QztBQUN0QyxlQUFPLEVBQVA7QUFDRDs7QUFFRCxVQUFJWSxlQUFKOztBQUNBLFVBQUksS0FBSy9DLEtBQUwsQ0FBV25HLGNBQVgsS0FBOEIsTUFBbEMsRUFBMEM7QUFDeENrSixRQUFBQSxlQUFlLEdBQUc7QUFDaEJDLFVBQUFBLElBQUksRUFBRUMsaUJBRFU7QUFFaEJDLFVBQUFBLFNBQVMsRUFBRSxLQUFLbEQsS0FBTCxDQUFXeEQsbUJBRk47QUFHaEIyRyxVQUFBQSxXQUFXLEVBQUUsS0FBS25ELEtBQUwsQ0FBV3ZELHFCQUhSO0FBSWhCMkcsVUFBQUEsU0FBUyxFQUFFLEtBQUtwRCxLQUFMLENBQVd0RCx1QkFKTjtBQUtoQjJHLFVBQUFBLE9BQU8sRUFBRW5LLGFBQWEsQ0FBQyxLQUFLOEcsS0FBTCxDQUFXckQsaUJBQVosQ0FMTjtBQU1oQjJHLFVBQUFBLE9BQU8sRUFBRXBLLGFBQWEsQ0FBQyxLQUFLOEcsS0FBTCxDQUFXcEQscUJBQVosQ0FOTjtBQU9oQjJHLFVBQUFBLFFBQVEsRUFBRXJLLGFBQWEsQ0FBQyxLQUFLOEcsS0FBTCxDQUFXbkQsc0JBQVosQ0FQUDtBQVFoQjJHLFVBQUFBLFFBQVEsRUFBRXRLLGFBQWEsQ0FBQyxLQUFLOEcsS0FBTCxDQUFXbEQsc0JBQVo7QUFSUCxTQUFsQjtBQVVELE9BWEQsTUFXTztBQUNMaUcsUUFBQUEsZUFBZSxHQUFHO0FBQ2hCQyxVQUFBQSxJQUFJLEVBQUVTLHdCQURVO0FBRWhCQyxVQUFBQSxXQUFXLEVBQUUsS0FBSzFELEtBQUwsQ0FBV2hFLDBCQUZSO0FBR2hCeEIsVUFBQUEsT0FBTyxFQUFFLEtBQUt3RixLQUFMLENBQVcvRCxzQkFISjtBQUloQk4sVUFBQUEsWUFBWSxFQUFFLEtBQUtxRSxLQUFMLENBQVc5RCwwQkFKVDtBQUtoQnlILFVBQUFBLGVBQWUsRUFBRSxLQUFLM0QsS0FBTCxDQUFXN0QsOEJBTFo7QUFNaEJ5SCxVQUFBQSxlQUFlLEVBQUUsS0FBSzVELEtBQUwsQ0FBVzVELDhCQU5aO0FBT2hCYixVQUFBQSxTQUFTLEVBQUVyQyxhQUFhLENBQUMsS0FBSzhHLEtBQUwsQ0FBV3pELHdCQUFaLENBUFI7QUFRaEJqQixVQUFBQSxZQUFZLEVBQUVwQyxhQUFhLENBQUMsS0FBSzhHLEtBQUwsQ0FBVzNELHVCQUFaLENBUlg7QUFTaEJqQixVQUFBQSxZQUFZLEVBQUVsQyxhQUFhLENBQUMsS0FBSzhHLEtBQUwsQ0FBVzFELDhCQUFaO0FBVFgsU0FBbEI7QUFXRDs7QUFFRCxVQUFNdUgsS0FBSyxHQUFHLElBQUl2RCxvQkFBSixDQUNaLEtBQUtULGdCQUFMLENBQXNCO0FBQ3BCQyxRQUFBQSxFQUFFLFVBRGtCO0FBRXBCQyxRQUFBQSxJQUFJLEVBQUU2QyxNQUZjO0FBR3BCdEksUUFBQUEsSUFBSSxFQUFFLEtBQUswRixLQUFMLENBQVcxRixJQUhHO0FBSXBCNEYsUUFBQUEsY0FBYyxFQUFFO0FBQ2Q0RCxVQUFBQSxNQUFNLEVBQUVmO0FBRE0sU0FKSTtBQU9wQnRJLFFBQUFBLGNBQWMsRUFBRSxLQUFLdUYsS0FBTCxDQUFXdkYsY0FQUDtBQVFwQkMsUUFBQUEsa0JBQWtCLEVBQUUsS0FBS3NGLEtBQUwsQ0FBV3RGLGtCQVJYO0FBU3BCQyxRQUFBQSxrQkFBa0IsRUFBRSxLQUFLcUYsS0FBTCxDQUFXckYsa0JBVFg7QUFVcEJHLFFBQUFBLGNBQWMsRUFBRSxLQUFLa0YsS0FBTCxDQUFXbEYsY0FWUDtBQVdwQkMsUUFBQUEsZ0JBQWdCLEVBQUUsS0FBS2lGLEtBQUwsQ0FBV2pGLGdCQVhUO0FBWXBCQyxRQUFBQSxjQUFjLEVBQUUsS0FBS2dGLEtBQUwsQ0FBV2hGLGNBWlA7QUFhcEJJLFFBQUFBLFlBQVksRUFBRWxDLGFBQWEsQ0FBQyxLQUFLOEcsS0FBTCxDQUFXbkUscUJBQVosQ0FiUDtBQWNwQkYsUUFBQUEsWUFBWSxFQUFFekMsYUFBYSxDQUFDLEtBQUs4RyxLQUFMLENBQVdqRSxxQkFBWixDQWRQO0FBZXBCVCxRQUFBQSxZQUFZLEVBQUVwQyxhQUFhLENBQUMsS0FBSzhHLEtBQUwsQ0FBV2xFLHFCQUFaO0FBZlAsT0FBdEIsQ0FEWSxDQUFkO0FBb0JBLGFBQU8sQ0FBQytILEtBQUQsQ0FBUDtBQUNEOzs7MkNBRXNCO0FBQ3JCLFVBQU01SixJQUFJLEdBQUcsS0FBSzBJLGFBQUwsRUFBYjtBQUNBLFVBQU1vQixRQUFRLEdBQUc5SixJQUFJLENBQUMrSixXQUFMLENBQWlCLEtBQUtsQixZQUFMLENBQWtCLEtBQUs5QyxLQUF2QixDQUFqQixDQUFqQjtBQUVBLFVBQU02RCxLQUFLLEdBQUcsSUFBSUksaUJBQUosQ0FDWixLQUFLcEUsZ0JBQUwsQ0FBc0I7QUFDcEJDLFFBQUFBLEVBQUUsWUFEa0I7QUFFcEJDLFFBQUFBLElBQUksRUFBRWdFO0FBRmMsT0FBdEIsQ0FEWSxDQUFkO0FBT0EsYUFBTyxDQUFDRixLQUFELENBQVA7QUFDRDs7O2lDQUVZSyxLLEVBQW1CO0FBQzlCLFdBQUt2QixhQUFMLEdBQXFCd0IsV0FBckIsQ0FBaUNELEtBQWpDLEVBQXdDLEtBQUtwQixZQUFMLENBQWtCLEtBQUs5QyxLQUF2QixDQUF4QztBQUNEOzs7b0NBRWVrRSxLLEVBQTJCO0FBQ3pDLFdBQUt2QixhQUFMLEdBQXFCeUIsbUJBQXJCLENBQXlDRixLQUF6QyxFQUFnRCxLQUFLcEIsWUFBTCxDQUFrQixLQUFLOUMsS0FBdkIsQ0FBaEQ7QUFDRDs7OytCQUVVa0UsSyxFQUFzQjtBQUMvQixXQUFLdkIsYUFBTCxHQUFxQjBCLGNBQXJCLENBQW9DSCxLQUFwQyxFQUEyQyxLQUFLcEIsWUFBTCxDQUFrQixLQUFLOUMsS0FBdkIsQ0FBM0M7QUFDRDs7O21DQUVja0UsSyxFQUEwQjtBQUN2QyxXQUFLdkIsYUFBTCxHQUFxQjJCLGtCQUFyQixDQUF3Q0osS0FBeEMsRUFBK0MsS0FBS3BCLFlBQUwsQ0FBa0IsS0FBSzlDLEtBQXZCLENBQS9DO0FBQ0Q7OztrQ0FFYWtFLEssRUFBeUI7QUFDckMsV0FBS3hELFFBQUwsQ0FBYztBQUFFcUIsUUFBQUEsb0JBQW9CLEVBQUVtQztBQUF4QixPQUFkO0FBQ0EsV0FBS3ZCLGFBQUwsR0FBcUI0QixpQkFBckIsQ0FBdUNMLEtBQXZDLEVBQThDLEtBQUtwQixZQUFMLENBQWtCLEtBQUs5QyxLQUF2QixDQUE5QztBQUNEOzs7cUNBRWtEO0FBQUEsVUFBdkN3RSxVQUF1QyxTQUF2Q0EsVUFBdUM7QUFBQSxVQUMzQ2pELE1BRDJDLEdBQ2hDLEtBQUtOLEtBRDJCLENBQzNDTSxNQUQyQzs7QUFFakQsVUFBSSxDQUFDQSxNQUFMLEVBQWE7QUFDWDtBQUNBQSxRQUFBQSxNQUFNLEdBQUdpRCxVQUFVLEdBQUcsVUFBSCxHQUFnQixNQUFuQztBQUNEOztBQUNELGFBQU9qRCxNQUFQO0FBQ0Q7OztvQ0FFZ0M7QUFDL0IsYUFBTyxLQUFLTixLQUFMLENBQVdoSCxJQUFsQjtBQUNEOzs7O0VBNVErQ3dLLHNCOzs7QUErUWxEOUUsb0JBQW9CLENBQUMrRSxTQUFyQixHQUFpQyxzQkFBakM7QUFDQS9FLG9CQUFvQixDQUFDM0YsWUFBckIsR0FBb0NBLFlBQXBDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGZsb3dcbi8qIGVzbGludC1lbnYgYnJvd3NlciAqL1xuXG5pbXBvcnQgeyBHZW9Kc29uTGF5ZXIsIFNjYXR0ZXJwbG90TGF5ZXIsIEljb25MYXllciwgVGV4dExheWVyIH0gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzJztcblxuaW1wb3J0IHtcbiAgVmlld01vZGUsXG4gIE1vZGlmeU1vZGUsXG4gIFRyYW5zbGF0ZU1vZGUsXG4gIFNjYWxlTW9kZSxcbiAgUm90YXRlTW9kZSxcbiAgRHVwbGljYXRlTW9kZSxcbiAgU3BsaXRQb2x5Z29uTW9kZSxcbiAgRXh0cnVkZU1vZGUsXG4gIEVsZXZhdGlvbk1vZGUsXG4gIERyYXdQb2ludE1vZGUsXG4gIERyYXdMaW5lU3RyaW5nTW9kZSxcbiAgRHJhd1BvbHlnb25Nb2RlLFxuICBEcmF3UmVjdGFuZ2xlTW9kZSxcbiAgRHJhd0NpcmNsZUZyb21DZW50ZXJNb2RlLFxuICBEcmF3Q2lyY2xlQnlEaWFtZXRlck1vZGUsXG4gIERyYXdFbGxpcHNlQnlCb3VuZGluZ0JveE1vZGUsXG4gIERyYXdSZWN0YW5nbGVVc2luZ1RocmVlUG9pbnRzTW9kZSxcbiAgRHJhd0VsbGlwc2VVc2luZ1RocmVlUG9pbnRzTW9kZSxcbiAgRHJhdzkwRGVncmVlUG9seWdvbk1vZGUsXG4gIERyYXdQb2x5Z29uQnlEcmFnZ2luZ01vZGUsXG4gIFNuYXBwYWJsZU1vZGUsXG4gIFRyYW5zZm9ybU1vZGVcbn0gZnJvbSAnQG5lYnVsYS5nbC9lZGl0LW1vZGVzJztcblxuaW1wb3J0IHR5cGUge1xuICBFZGl0QWN0aW9uLFxuICBDbGlja0V2ZW50LFxuICBTdGFydERyYWdnaW5nRXZlbnQsXG4gIFN0b3BEcmFnZ2luZ0V2ZW50LFxuICBEcmFnZ2luZ0V2ZW50LFxuICBQb2ludGVyTW92ZUV2ZW50LFxuICBHZW9Kc29uRWRpdE1vZGUsXG4gIEZlYXR1cmVDb2xsZWN0aW9uXG59IGZyb20gJ0BuZWJ1bGEuZ2wvZWRpdC1tb2Rlcyc7XG5pbXBvcnQgRWRpdGFibGVMYXllciBmcm9tICcuL2VkaXRhYmxlLWxheWVyLmpzJztcblxuY29uc3QgREVGQVVMVF9MSU5FX0NPTE9SID0gWzB4MCwgMHgwLCAweDAsIDB4ZmZdO1xuY29uc3QgREVGQVVMVF9GSUxMX0NPTE9SID0gWzB4MCwgMHgwLCAweDAsIDB4OTBdO1xuY29uc3QgREVGQVVMVF9TRUxFQ1RFRF9MSU5FX0NPTE9SID0gWzB4OTAsIDB4OTAsIDB4OTAsIDB4ZmZdO1xuY29uc3QgREVGQVVMVF9TRUxFQ1RFRF9GSUxMX0NPTE9SID0gWzB4OTAsIDB4OTAsIDB4OTAsIDB4OTBdO1xuY29uc3QgREVGQVVMVF9FRElUSU5HX0VYSVNUSU5HX1BPSU5UX0NPTE9SID0gWzB4YzAsIDB4MCwgMHgwLCAweGZmXTtcbmNvbnN0IERFRkFVTFRfRURJVElOR19JTlRFUk1FRElBVEVfUE9JTlRfQ09MT1IgPSBbMHgwLCAweDAsIDB4MCwgMHg4MF07XG5jb25zdCBERUZBVUxUX0VESVRJTkdfU05BUF9QT0lOVF9DT0xPUiA9IFsweDdjLCAweDAwLCAweGMwLCAweGZmXTtcbmNvbnN0IERFRkFVTFRfRURJVElOR19QT0lOVF9PVVRMSU5FX0NPTE9SID0gWzB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmZdO1xuY29uc3QgREVGQVVMVF9FRElUSU5HX0VYSVNUSU5HX1BPSU5UX1JBRElVUyA9IDU7XG5jb25zdCBERUZBVUxUX0VESVRJTkdfSU5URVJNRURJQVRFX1BPSU5UX1JBRElVUyA9IDM7XG5jb25zdCBERUZBVUxUX0VESVRJTkdfU05BUF9QT0lOVF9SQURJVVMgPSA3O1xuXG5jb25zdCBERUZBVUxUX0VESVRfTU9ERSA9IERyYXdQb2x5Z29uTW9kZTtcblxuZnVuY3Rpb24gZ3VpZGVBY2Nlc3NvcihhY2Nlc3Nvcikge1xuICBpZiAoIWFjY2Vzc29yIHx8IHR5cGVvZiBhY2Nlc3NvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBhY2Nlc3NvcjtcbiAgfVxuICByZXR1cm4gZ3VpZGVNYXliZVdyYXBwZWQgPT4gYWNjZXNzb3IodW53cmFwR3VpZGUoZ3VpZGVNYXliZVdyYXBwZWQpKTtcbn1cblxuLy8gVGhlIG9iamVjdCBoYW5kZWQgdG8gdXMgZnJvbSBkZWNrLmdsIGlzIGRpZmZlcmVudCBkZXBlbmRpbmcgb24gdGhlIHZlcnNpb24gb2YgZGVjay5nbCB1c2VkLCB1bndyYXAgYXMgbmVjZXNzYXJ5XG5mdW5jdGlvbiB1bndyYXBHdWlkZShndWlkZU1heWJlV3JhcHBlZCkge1xuICBpZiAoZ3VpZGVNYXliZVdyYXBwZWQuX19zb3VyY2UpIHtcbiAgICByZXR1cm4gZ3VpZGVNYXliZVdyYXBwZWQuX19zb3VyY2Uub2JqZWN0O1xuICB9IGVsc2UgaWYgKGd1aWRlTWF5YmVXcmFwcGVkLnNvdXJjZUZlYXR1cmUpIHtcbiAgICByZXR1cm4gZ3VpZGVNYXliZVdyYXBwZWQuc291cmNlRmVhdHVyZS5mZWF0dXJlO1xuICB9XG4gIC8vIEl0IGlzIG5vdCB3cmFwcGVkLCByZXR1cm4gYXMgaXNcbiAgcmV0dXJuIGd1aWRlTWF5YmVXcmFwcGVkO1xufVxuXG5mdW5jdGlvbiBnZXRFZGl0SGFuZGxlQ29sb3IoaGFuZGxlKSB7XG4gIHN3aXRjaCAoaGFuZGxlLnByb3BlcnRpZXMuZWRpdEhhbmRsZVR5cGUpIHtcbiAgICBjYXNlICdleGlzdGluZyc6XG4gICAgICByZXR1cm4gREVGQVVMVF9FRElUSU5HX0VYSVNUSU5HX1BPSU5UX0NPTE9SO1xuICAgIGNhc2UgJ3NuYXAtc291cmNlJzpcbiAgICAgIHJldHVybiBERUZBVUxUX0VESVRJTkdfU05BUF9QT0lOVF9DT0xPUjtcbiAgICBjYXNlICdpbnRlcm1lZGlhdGUnOlxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gREVGQVVMVF9FRElUSU5HX0lOVEVSTUVESUFURV9QT0lOVF9DT0xPUjtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRFZGl0SGFuZGxlT3V0bGluZUNvbG9yKGhhbmRsZSkge1xuICByZXR1cm4gREVGQVVMVF9FRElUSU5HX1BPSU5UX09VVExJTkVfQ09MT1I7XG59XG5cbmZ1bmN0aW9uIGdldEVkaXRIYW5kbGVSYWRpdXMoaGFuZGxlKSB7XG4gIHN3aXRjaCAoaGFuZGxlLnByb3BlcnRpZXMuZWRpdEhhbmRsZVR5cGUpIHtcbiAgICBjYXNlICdleGlzdGluZyc6XG4gICAgICByZXR1cm4gREVGQVVMVF9FRElUSU5HX0VYSVNUSU5HX1BPSU5UX1JBRElVUztcbiAgICBjYXNlICdzbmFwJzpcbiAgICAgIHJldHVybiBERUZBVUxUX0VESVRJTkdfU05BUF9QT0lOVF9SQURJVVM7XG4gICAgY2FzZSAnaW50ZXJtZWRpYXRlJzpcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIERFRkFVTFRfRURJVElOR19JTlRFUk1FRElBVEVfUE9JTlRfUkFESVVTO1xuICB9XG59XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgbW9kZTogRHJhd1BvbHlnb25Nb2RlLFxuXG4gIC8vIEVkaXQgYW5kIGludGVyYWN0aW9uIGV2ZW50c1xuICBvbkVkaXQ6ICgpID0+IHt9LFxuXG4gIHBpY2thYmxlOiB0cnVlLFxuICBwaWNraW5nUmFkaXVzOiAxMCxcbiAgcGlja2luZ0RlcHRoOiA1LFxuICBmcDY0OiBmYWxzZSxcbiAgZmlsbGVkOiB0cnVlLFxuICBzdHJva2VkOiB0cnVlLFxuICBsaW5lV2lkdGhTY2FsZTogMSxcbiAgbGluZVdpZHRoTWluUGl4ZWxzOiAxLFxuICBsaW5lV2lkdGhNYXhQaXhlbHM6IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSLFxuICBsaW5lV2lkdGhVbml0czogJ3BpeGVscycsXG4gIGxpbmVKb2ludFJvdW5kZWQ6IGZhbHNlLFxuICBsaW5lTWl0ZXJMaW1pdDogNCxcbiAgcG9pbnRSYWRpdXNTY2FsZTogMSxcbiAgcG9pbnRSYWRpdXNNaW5QaXhlbHM6IDIsXG4gIHBvaW50UmFkaXVzTWF4UGl4ZWxzOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcbiAgZ2V0TGluZUNvbG9yOiAoZmVhdHVyZSwgaXNTZWxlY3RlZCwgbW9kZSkgPT5cbiAgICBpc1NlbGVjdGVkID8gREVGQVVMVF9TRUxFQ1RFRF9MSU5FX0NPTE9SIDogREVGQVVMVF9MSU5FX0NPTE9SLFxuICBnZXRGaWxsQ29sb3I6IChmZWF0dXJlLCBpc1NlbGVjdGVkLCBtb2RlKSA9PlxuICAgIGlzU2VsZWN0ZWQgPyBERUZBVUxUX1NFTEVDVEVEX0ZJTExfQ09MT1IgOiBERUZBVUxUX0ZJTExfQ09MT1IsXG4gIGdldFJhZGl1czogZiA9PlxuICAgIChmICYmIGYucHJvcGVydGllcyAmJiBmLnByb3BlcnRpZXMucmFkaXVzKSB8fCAoZiAmJiBmLnByb3BlcnRpZXMgJiYgZi5wcm9wZXJ0aWVzLnNpemUpIHx8IDEsXG4gIGdldExpbmVXaWR0aDogZiA9PiAoZiAmJiBmLnByb3BlcnRpZXMgJiYgZi5wcm9wZXJ0aWVzLmxpbmVXaWR0aCkgfHwgMyxcblxuICAvLyBUZW50YXRpdmUgZmVhdHVyZSByZW5kZXJpbmdcbiAgZ2V0VGVudGF0aXZlTGluZUNvbG9yOiBmID0+IERFRkFVTFRfU0VMRUNURURfTElORV9DT0xPUixcbiAgZ2V0VGVudGF0aXZlRmlsbENvbG9yOiBmID0+IERFRkFVTFRfU0VMRUNURURfRklMTF9DT0xPUixcbiAgZ2V0VGVudGF0aXZlTGluZVdpZHRoOiBmID0+IChmICYmIGYucHJvcGVydGllcyAmJiBmLnByb3BlcnRpZXMubGluZVdpZHRoKSB8fCAzLFxuXG4gIGVkaXRIYW5kbGVUeXBlOiAncG9pbnQnLFxuXG4gIC8vIHBvaW50IGhhbmRsZXNcbiAgZWRpdEhhbmRsZVBvaW50UmFkaXVzU2NhbGU6IDEsXG4gIGVkaXRIYW5kbGVQb2ludE91dGxpbmU6IHRydWUsXG4gIGVkaXRIYW5kbGVQb2ludFN0cm9rZVdpZHRoOiAyLFxuICBlZGl0SGFuZGxlUG9pbnRSYWRpdXNNaW5QaXhlbHM6IDQsXG4gIGVkaXRIYW5kbGVQb2ludFJhZGl1c01heFBpeGVsczogOCxcbiAgZ2V0RWRpdEhhbmRsZVBvaW50Q29sb3I6IGdldEVkaXRIYW5kbGVDb2xvcixcbiAgZ2V0RWRpdEhhbmRsZVBvaW50T3V0bGluZUNvbG9yOiBnZXRFZGl0SGFuZGxlT3V0bGluZUNvbG9yLFxuICBnZXRFZGl0SGFuZGxlUG9pbnRSYWRpdXM6IGdldEVkaXRIYW5kbGVSYWRpdXMsXG5cbiAgLy8gaWNvbiBoYW5kbGVzXG4gIGVkaXRIYW5kbGVJY29uQXRsYXM6IG51bGwsXG4gIGVkaXRIYW5kbGVJY29uTWFwcGluZzogbnVsbCxcbiAgZWRpdEhhbmRsZUljb25TaXplU2NhbGU6IDEsXG4gIGdldEVkaXRIYW5kbGVJY29uOiBoYW5kbGUgPT4gaGFuZGxlLnByb3BlcnRpZXMuZWRpdEhhbmRsZVR5cGUsXG4gIGdldEVkaXRIYW5kbGVJY29uU2l6ZTogMTAsXG4gIGdldEVkaXRIYW5kbGVJY29uQ29sb3I6IGdldEVkaXRIYW5kbGVDb2xvcixcbiAgZ2V0RWRpdEhhbmRsZUljb25BbmdsZTogMCxcblxuICAvLyBtaXNjXG4gIGJpbGxib2FyZDogdHJ1ZVxufTtcblxuLy8gTWFwcGluZyBvZiBtb2RlIG5hbWUgdG8gbW9kZSBjbGFzcyAoZm9yIGxlZ2FjeSBwdXJwb3NlcylcbmNvbnN0IG1vZGVOYW1lTWFwcGluZyA9IHtcbiAgdmlldzogVmlld01vZGUsXG5cbiAgLy8gQWx0ZXIgbW9kZXNcbiAgbW9kaWZ5OiBNb2RpZnlNb2RlLFxuICB0cmFuc2xhdGU6IG5ldyBTbmFwcGFibGVNb2RlKG5ldyBUcmFuc2xhdGVNb2RlKCkpLFxuXG4gIHRyYW5zZm9ybTogbmV3IFNuYXBwYWJsZU1vZGUobmV3IFRyYW5zZm9ybU1vZGUoKSksXG4gIHNjYWxlOiBTY2FsZU1vZGUsXG4gIHJvdGF0ZTogUm90YXRlTW9kZSxcbiAgZHVwbGljYXRlOiBEdXBsaWNhdGVNb2RlLFxuICBzcGxpdDogU3BsaXRQb2x5Z29uTW9kZSxcbiAgZXh0cnVkZTogRXh0cnVkZU1vZGUsXG4gIGVsZXZhdGlvbjogRWxldmF0aW9uTW9kZSxcblxuICAvLyBEcmF3IG1vZGVzXG4gIGRyYXdQb2ludDogRHJhd1BvaW50TW9kZSxcbiAgZHJhd0xpbmVTdHJpbmc6IERyYXdMaW5lU3RyaW5nTW9kZSxcbiAgZHJhd1BvbHlnb246IERyYXdQb2x5Z29uTW9kZSxcbiAgZHJhd1JlY3RhbmdsZTogRHJhd1JlY3RhbmdsZU1vZGUsXG4gIGRyYXdDaXJjbGVGcm9tQ2VudGVyOiBEcmF3Q2lyY2xlRnJvbUNlbnRlck1vZGUsXG4gIGRyYXdDaXJjbGVCeUJvdW5kaW5nQm94OiBEcmF3Q2lyY2xlQnlEaWFtZXRlck1vZGUsXG4gIGRyYXdFbGxpcHNlQnlCb3VuZGluZ0JveDogRHJhd0VsbGlwc2VCeUJvdW5kaW5nQm94TW9kZSxcbiAgZHJhd1JlY3RhbmdsZVVzaW5nM1BvaW50czogRHJhd1JlY3RhbmdsZVVzaW5nVGhyZWVQb2ludHNNb2RlLFxuICBkcmF3RWxsaXBzZVVzaW5nM1BvaW50czogRHJhd0VsbGlwc2VVc2luZ1RocmVlUG9pbnRzTW9kZSxcbiAgZHJhdzkwRGVncmVlUG9seWdvbjogRHJhdzkwRGVncmVlUG9seWdvbk1vZGUsXG4gIGRyYXdQb2x5Z29uQnlEcmFnZ2luZzogRHJhd1BvbHlnb25CeURyYWdnaW5nTW9kZVxufTtcblxudHlwZSBQcm9wcyA9IHtcbiAgbW9kZTogc3RyaW5nIHwgR2VvSnNvbkVkaXRNb2RlIHwgQ2xhc3M8R2VvSnNvbkVkaXRNb2RlPixcbiAgb25FZGl0OiAoRWRpdEFjdGlvbjxGZWF0dXJlQ29sbGVjdGlvbj4pID0+IHZvaWQsXG4gIC8vIFRPRE86IHR5cGUgdGhlIHJlc3RcbiAgW3N0cmluZ106IGFueVxufTtcblxuLy8gdHlwZSBTdGF0ZSA9IHtcbi8vICAgbW9kZTogR2VvSnNvbkVkaXRNb2RlLFxuLy8gICB0ZW50YXRpdmVGZWF0dXJlOiA/RmVhdHVyZSxcbi8vICAgZWRpdEhhbmRsZXM6IGFueVtdLFxuLy8gICBzZWxlY3RlZEZlYXR1cmVzOiBGZWF0dXJlW11cbi8vIH07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVkaXRhYmxlR2VvSnNvbkxheWVyIGV4dGVuZHMgRWRpdGFibGVMYXllciB7XG4gIC8vIHN0YXRlOiBTdGF0ZTtcbiAgLy8gcHJvcHM6IFByb3BzO1xuICAvLyBzZXRTdGF0ZTogKCRTaGFwZTxTdGF0ZT4pID0+IHZvaWQ7XG5cbiAgcmVuZGVyTGF5ZXJzKCkge1xuICAgIGNvbnN0IHN1YkxheWVyUHJvcHMgPSB0aGlzLmdldFN1YkxheWVyUHJvcHMoe1xuICAgICAgaWQ6ICdnZW9qc29uJyxcblxuICAgICAgLy8gUHJveHkgbW9zdCBHZW9Kc29uTGF5ZXIgcHJvcHMgYXMtaXNcbiAgICAgIGRhdGE6IHRoaXMucHJvcHMuZGF0YSxcbiAgICAgIGZwNjQ6IHRoaXMucHJvcHMuZnA2NCxcbiAgICAgIGZpbGxlZDogdGhpcy5wcm9wcy5maWxsZWQsXG4gICAgICBzdHJva2VkOiB0aGlzLnByb3BzLnN0cm9rZWQsXG4gICAgICBsaW5lV2lkdGhTY2FsZTogdGhpcy5wcm9wcy5saW5lV2lkdGhTY2FsZSxcbiAgICAgIGxpbmVXaWR0aE1pblBpeGVsczogdGhpcy5wcm9wcy5saW5lV2lkdGhNaW5QaXhlbHMsXG4gICAgICBsaW5lV2lkdGhNYXhQaXhlbHM6IHRoaXMucHJvcHMubGluZVdpZHRoTWF4UGl4ZWxzLFxuICAgICAgbGluZVdpZHRoVW5pdHM6IHRoaXMucHJvcHMubGluZVdpZHRoVW5pdHMsXG4gICAgICBsaW5lSm9pbnRSb3VuZGVkOiB0aGlzLnByb3BzLmxpbmVKb2ludFJvdW5kZWQsXG4gICAgICBsaW5lTWl0ZXJMaW1pdDogdGhpcy5wcm9wcy5saW5lTWl0ZXJMaW1pdCxcbiAgICAgIHBvaW50UmFkaXVzU2NhbGU6IHRoaXMucHJvcHMucG9pbnRSYWRpdXNTY2FsZSxcbiAgICAgIHBvaW50UmFkaXVzTWluUGl4ZWxzOiB0aGlzLnByb3BzLnBvaW50UmFkaXVzTWluUGl4ZWxzLFxuICAgICAgcG9pbnRSYWRpdXNNYXhQaXhlbHM6IHRoaXMucHJvcHMucG9pbnRSYWRpdXNNYXhQaXhlbHMsXG4gICAgICBnZXRMaW5lQ29sb3I6IHRoaXMuc2VsZWN0aW9uQXdhcmVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldExpbmVDb2xvciksXG4gICAgICBnZXRGaWxsQ29sb3I6IHRoaXMuc2VsZWN0aW9uQXdhcmVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldEZpbGxDb2xvciksXG4gICAgICBnZXRSYWRpdXM6IHRoaXMuc2VsZWN0aW9uQXdhcmVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldFJhZGl1cyksXG4gICAgICBnZXRMaW5lV2lkdGg6IHRoaXMuc2VsZWN0aW9uQXdhcmVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldExpbmVXaWR0aCksXG5cbiAgICAgIF9zdWJMYXllclByb3BzOiB7XG4gICAgICAgICdsaW5lLXN0cmluZ3MnOiB7XG4gICAgICAgICAgYmlsbGJvYXJkOiB0aGlzLnByb3BzLmJpbGxib2FyZFxuICAgICAgICB9LFxuICAgICAgICAncG9seWdvbnMtc3Ryb2tlJzoge1xuICAgICAgICAgIGJpbGxib2FyZDogdGhpcy5wcm9wcy5iaWxsYm9hcmRcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgdXBkYXRlVHJpZ2dlcnM6IHtcbiAgICAgICAgZ2V0TGluZUNvbG9yOiBbdGhpcy5wcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzLCB0aGlzLnByb3BzLm1vZGVdLFxuICAgICAgICBnZXRGaWxsQ29sb3I6IFt0aGlzLnByb3BzLnNlbGVjdGVkRmVhdHVyZUluZGV4ZXMsIHRoaXMucHJvcHMubW9kZV0sXG4gICAgICAgIGdldFJhZGl1czogW3RoaXMucHJvcHMuc2VsZWN0ZWRGZWF0dXJlSW5kZXhlcywgdGhpcy5wcm9wcy5tb2RlXSxcbiAgICAgICAgZ2V0TGluZVdpZHRoOiBbdGhpcy5wcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzLCB0aGlzLnByb3BzLm1vZGVdXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBsZXQgbGF5ZXJzOiBhbnkgPSBbbmV3IEdlb0pzb25MYXllcihzdWJMYXllclByb3BzKV07XG5cbiAgICBsYXllcnMgPSBsYXllcnMuY29uY2F0KHRoaXMuY3JlYXRlR3VpZGVzTGF5ZXJzKCksIHRoaXMuY3JlYXRlVG9vbHRpcHNMYXllcnMoKSk7XG5cbiAgICByZXR1cm4gbGF5ZXJzO1xuICB9XG5cbiAgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIHN1cGVyLmluaXRpYWxpemVTdGF0ZSgpO1xuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBzZWxlY3RlZEZlYXR1cmVzOiBbXSxcbiAgICAgIGVkaXRIYW5kbGVzOiBbXVxuICAgIH0pO1xuICB9XG5cbiAgLy8gVE9ETzogaXMgdGhpcyB0aGUgYmVzdCB3YXkgdG8gcHJvcGVybHkgdXBkYXRlIHN0YXRlIGZyb20gYW4gb3V0c2lkZSBldmVudCBoYW5kbGVyP1xuICBzaG91bGRVcGRhdGVTdGF0ZShvcHRzOiBhbnkpIHtcbiAgICAvLyBjb25zb2xlLmxvZyhcbiAgICAvLyAgICdzaG91bGRVcGRhdGVTdGF0ZScsXG4gICAgLy8gICBvcHRzLmNoYW5nZUZsYWdzLnByb3BzT3JEYXRhQ2hhbmdlZCxcbiAgICAvLyAgIG9wdHMuY2hhbmdlRmxhZ3Muc3RhdGVDaGFuZ2VkXG4gICAgLy8gKTtcbiAgICByZXR1cm4gc3VwZXIuc2hvdWxkVXBkYXRlU3RhdGUob3B0cykgfHwgb3B0cy5jaGFuZ2VGbGFncy5zdGF0ZUNoYW5nZWQ7XG4gIH1cblxuICB1cGRhdGVTdGF0ZSh7XG4gICAgcHJvcHMsXG4gICAgb2xkUHJvcHMsXG4gICAgY2hhbmdlRmxhZ3NcbiAgfToge1xuICAgIHByb3BzOiBQcm9wcyxcbiAgICBvbGRQcm9wczogUHJvcHMsXG4gICAgY2hhbmdlRmxhZ3M6IGFueVxuICB9KSB7XG4gICAgc3VwZXIudXBkYXRlU3RhdGUoeyBwcm9wcywgY2hhbmdlRmxhZ3MgfSk7XG5cbiAgICBsZXQgbW9kZSA9IHRoaXMuc3RhdGUubW9kZTtcbiAgICBpZiAoY2hhbmdlRmxhZ3MucHJvcHNPckRhdGFDaGFuZ2VkKSB7XG4gICAgICBpZiAocHJvcHMubW9kZSAhPT0gb2xkUHJvcHMubW9kZSkge1xuICAgICAgICBpZiAodHlwZW9mIHByb3BzLm1vZGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgLy8gTG9va3VwIHRoZSBtb2RlIGJhc2VkIG9uIGl0cyBuYW1lIChmb3IgbGVnYWN5IHB1cnBvc2VzKVxuICAgICAgICAgIG1vZGUgPSBtb2RlTmFtZU1hcHBpbmdbcHJvcHMubW9kZV07XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBcIkRlcHJlY2F0ZWQgdXNlIG9mIHBhc3NpbmcgYG1vZGVgIGFzIGEgc3RyaW5nLiBQYXNzIHRoZSBtb2RlJ3MgY2xhc3MgY29uc3RydWN0b3IgaW5zdGVhZC5cIlxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbW9kZSA9IHByb3BzLm1vZGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIG1vZGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBjb25zdCBNb2RlQ29uc3RydWN0b3IgPSBtb2RlO1xuICAgICAgICAgIG1vZGUgPSBuZXcgTW9kZUNvbnN0cnVjdG9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYE5vIG1vZGUgY29uZmlndXJlZCBmb3IgJHtTdHJpbmcocHJvcHMubW9kZSl9YCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc29sZSxuby11bmRlZlxuICAgICAgICAgIC8vIFVzZSBkZWZhdWx0IG1vZGVcbiAgICAgICAgICBtb2RlID0gREVGQVVMVF9FRElUX01PREU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobW9kZSAhPT0gdGhpcy5zdGF0ZS5tb2RlKSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG1vZGUsIGN1cnNvcjogbnVsbCB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBzZWxlY3RlZEZlYXR1cmVzID0gW107XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcHMuc2VsZWN0ZWRGZWF0dXJlSW5kZXhlcykpIHtcbiAgICAgIC8vIFRPRE86IG5lZWRzIGltcHJvdmVkIHRlc3RpbmcsIGkuZS4gY2hlY2tpbmcgZm9yIGR1cGxpY2F0ZXMsIE5hTnMsIG91dCBvZiByYW5nZSBudW1iZXJzLCAuLi5cbiAgICAgIHNlbGVjdGVkRmVhdHVyZXMgPSBwcm9wcy5zZWxlY3RlZEZlYXR1cmVJbmRleGVzLm1hcChlbGVtID0+IHByb3BzLmRhdGEuZmVhdHVyZXNbZWxlbV0pO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U3RhdGUoeyBzZWxlY3RlZEZlYXR1cmVzIH0pO1xuICB9XG5cbiAgZ2V0TW9kZVByb3BzKHByb3BzOiBQcm9wcykge1xuICAgIHJldHVybiB7XG4gICAgICBtb2RlQ29uZmlnOiBwcm9wcy5tb2RlQ29uZmlnLFxuICAgICAgZGF0YTogcHJvcHMuZGF0YSxcbiAgICAgIHNlbGVjdGVkSW5kZXhlczogcHJvcHMuc2VsZWN0ZWRGZWF0dXJlSW5kZXhlcyxcbiAgICAgIGxhc3RQb2ludGVyTW92ZUV2ZW50OiB0aGlzLnN0YXRlLmxhc3RQb2ludGVyTW92ZUV2ZW50LFxuICAgICAgY3Vyc29yOiB0aGlzLnN0YXRlLmN1cnNvcixcbiAgICAgIG9uRWRpdDogKGVkaXRBY3Rpb246IEVkaXRBY3Rpb248RmVhdHVyZUNvbGxlY3Rpb24+KSA9PiB7XG4gICAgICAgIHByb3BzLm9uRWRpdChlZGl0QWN0aW9uKTtcbiAgICAgIH0sXG4gICAgICBvblVwZGF0ZUN1cnNvcjogKGN1cnNvcjogP3N0cmluZykgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgY3Vyc29yIH0pO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBzZWxlY3Rpb25Bd2FyZUFjY2Vzc29yKGFjY2Vzc29yOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIGFjY2Vzc29yICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gYWNjZXNzb3I7XG4gICAgfVxuICAgIHJldHVybiAoZmVhdHVyZTogT2JqZWN0KSA9PiBhY2Nlc3NvcihmZWF0dXJlLCB0aGlzLmlzRmVhdHVyZVNlbGVjdGVkKGZlYXR1cmUpLCB0aGlzLnByb3BzLm1vZGUpO1xuICB9XG5cbiAgaXNGZWF0dXJlU2VsZWN0ZWQoZmVhdHVyZTogT2JqZWN0KSB7XG4gICAgaWYgKCF0aGlzLnByb3BzLmRhdGEgfHwgIXRoaXMucHJvcHMuc2VsZWN0ZWRGZWF0dXJlSW5kZXhlcykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucHJvcHMuc2VsZWN0ZWRGZWF0dXJlSW5kZXhlcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgZmVhdHVyZUluZGV4ID0gdGhpcy5wcm9wcy5kYXRhLmZlYXR1cmVzLmluZGV4T2YoZmVhdHVyZSk7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuc2VsZWN0ZWRGZWF0dXJlSW5kZXhlcy5pbmNsdWRlcyhmZWF0dXJlSW5kZXgpO1xuICB9XG5cbiAgZ2V0UGlja2luZ0luZm8oeyBpbmZvLCBzb3VyY2VMYXllciB9OiBPYmplY3QpIHtcbiAgICBpZiAoc291cmNlTGF5ZXIuaWQuZW5kc1dpdGgoJ2d1aWRlcycpKSB7XG4gICAgICAvLyBJZiB1c2VyIGlzIHBpY2tpbmcgYW4gZWRpdGluZyBoYW5kbGUsIGFkZCBhZGRpdGlvbmFsIGRhdGEgdG8gdGhlIGluZm9cbiAgICAgIGluZm8uaXNHdWlkZSA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluZm87XG4gIH1cblxuICBjcmVhdGVHdWlkZXNMYXllcnMoKSB7XG4gICAgY29uc3QgbW9kZSA9IHRoaXMuZ2V0QWN0aXZlTW9kZSgpO1xuICAgIGNvbnN0IGd1aWRlczogRmVhdHVyZUNvbGxlY3Rpb24gPSBtb2RlLmdldEd1aWRlcyh0aGlzLmdldE1vZGVQcm9wcyh0aGlzLnByb3BzKSk7XG5cbiAgICBpZiAoIWd1aWRlcyB8fCAhZ3VpZGVzLmZlYXR1cmVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGxldCBwb2ludExheWVyUHJvcHM7XG4gICAgaWYgKHRoaXMucHJvcHMuZWRpdEhhbmRsZVR5cGUgPT09ICdpY29uJykge1xuICAgICAgcG9pbnRMYXllclByb3BzID0ge1xuICAgICAgICB0eXBlOiBJY29uTGF5ZXIsXG4gICAgICAgIGljb25BdGxhczogdGhpcy5wcm9wcy5lZGl0SGFuZGxlSWNvbkF0bGFzLFxuICAgICAgICBpY29uTWFwcGluZzogdGhpcy5wcm9wcy5lZGl0SGFuZGxlSWNvbk1hcHBpbmcsXG4gICAgICAgIHNpemVTY2FsZTogdGhpcy5wcm9wcy5lZGl0SGFuZGxlSWNvblNpemVTY2FsZSxcbiAgICAgICAgZ2V0SWNvbjogZ3VpZGVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldEVkaXRIYW5kbGVJY29uKSxcbiAgICAgICAgZ2V0U2l6ZTogZ3VpZGVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldEVkaXRIYW5kbGVJY29uU2l6ZSksXG4gICAgICAgIGdldENvbG9yOiBndWlkZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0RWRpdEhhbmRsZUljb25Db2xvciksXG4gICAgICAgIGdldEFuZ2xlOiBndWlkZUFjY2Vzc29yKHRoaXMucHJvcHMuZ2V0RWRpdEhhbmRsZUljb25BbmdsZSlcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvaW50TGF5ZXJQcm9wcyA9IHtcbiAgICAgICAgdHlwZTogU2NhdHRlcnBsb3RMYXllcixcbiAgICAgICAgcmFkaXVzU2NhbGU6IHRoaXMucHJvcHMuZWRpdEhhbmRsZVBvaW50UmFkaXVzU2NhbGUsXG4gICAgICAgIHN0cm9rZWQ6IHRoaXMucHJvcHMuZWRpdEhhbmRsZVBvaW50T3V0bGluZSxcbiAgICAgICAgZ2V0TGluZVdpZHRoOiB0aGlzLnByb3BzLmVkaXRIYW5kbGVQb2ludFN0cm9rZVdpZHRoLFxuICAgICAgICByYWRpdXNNaW5QaXhlbHM6IHRoaXMucHJvcHMuZWRpdEhhbmRsZVBvaW50UmFkaXVzTWluUGl4ZWxzLFxuICAgICAgICByYWRpdXNNYXhQaXhlbHM6IHRoaXMucHJvcHMuZWRpdEhhbmRsZVBvaW50UmFkaXVzTWF4UGl4ZWxzLFxuICAgICAgICBnZXRSYWRpdXM6IGd1aWRlQWNjZXNzb3IodGhpcy5wcm9wcy5nZXRFZGl0SGFuZGxlUG9pbnRSYWRpdXMpLFxuICAgICAgICBnZXRGaWxsQ29sb3I6IGd1aWRlQWNjZXNzb3IodGhpcy5wcm9wcy5nZXRFZGl0SGFuZGxlUG9pbnRDb2xvciksXG4gICAgICAgIGdldExpbmVDb2xvcjogZ3VpZGVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldEVkaXRIYW5kbGVQb2ludE91dGxpbmVDb2xvcilcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgbGF5ZXIgPSBuZXcgR2VvSnNvbkxheWVyKFxuICAgICAgdGhpcy5nZXRTdWJMYXllclByb3BzKHtcbiAgICAgICAgaWQ6IGBndWlkZXNgLFxuICAgICAgICBkYXRhOiBndWlkZXMsXG4gICAgICAgIGZwNjQ6IHRoaXMucHJvcHMuZnA2NCxcbiAgICAgICAgX3N1YkxheWVyUHJvcHM6IHtcbiAgICAgICAgICBwb2ludHM6IHBvaW50TGF5ZXJQcm9wc1xuICAgICAgICB9LFxuICAgICAgICBsaW5lV2lkdGhTY2FsZTogdGhpcy5wcm9wcy5saW5lV2lkdGhTY2FsZSxcbiAgICAgICAgbGluZVdpZHRoTWluUGl4ZWxzOiB0aGlzLnByb3BzLmxpbmVXaWR0aE1pblBpeGVscyxcbiAgICAgICAgbGluZVdpZHRoTWF4UGl4ZWxzOiB0aGlzLnByb3BzLmxpbmVXaWR0aE1heFBpeGVscyxcbiAgICAgICAgbGluZVdpZHRoVW5pdHM6IHRoaXMucHJvcHMubGluZVdpZHRoVW5pdHMsXG4gICAgICAgIGxpbmVKb2ludFJvdW5kZWQ6IHRoaXMucHJvcHMubGluZUpvaW50Um91bmRlZCxcbiAgICAgICAgbGluZU1pdGVyTGltaXQ6IHRoaXMucHJvcHMubGluZU1pdGVyTGltaXQsXG4gICAgICAgIGdldExpbmVDb2xvcjogZ3VpZGVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldFRlbnRhdGl2ZUxpbmVDb2xvciksXG4gICAgICAgIGdldExpbmVXaWR0aDogZ3VpZGVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldFRlbnRhdGl2ZUxpbmVXaWR0aCksXG4gICAgICAgIGdldEZpbGxDb2xvcjogZ3VpZGVBY2Nlc3Nvcih0aGlzLnByb3BzLmdldFRlbnRhdGl2ZUZpbGxDb2xvcilcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHJldHVybiBbbGF5ZXJdO1xuICB9XG5cbiAgY3JlYXRlVG9vbHRpcHNMYXllcnMoKSB7XG4gICAgY29uc3QgbW9kZSA9IHRoaXMuZ2V0QWN0aXZlTW9kZSgpO1xuICAgIGNvbnN0IHRvb2x0aXBzID0gbW9kZS5nZXRUb29sdGlwcyh0aGlzLmdldE1vZGVQcm9wcyh0aGlzLnByb3BzKSk7XG5cbiAgICBjb25zdCBsYXllciA9IG5ldyBUZXh0TGF5ZXIoXG4gICAgICB0aGlzLmdldFN1YkxheWVyUHJvcHMoe1xuICAgICAgICBpZDogYHRvb2x0aXBzYCxcbiAgICAgICAgZGF0YTogdG9vbHRpcHNcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHJldHVybiBbbGF5ZXJdO1xuICB9XG5cbiAgb25MYXllckNsaWNrKGV2ZW50OiBDbGlja0V2ZW50KSB7XG4gICAgdGhpcy5nZXRBY3RpdmVNb2RlKCkuaGFuZGxlQ2xpY2soZXZlbnQsIHRoaXMuZ2V0TW9kZVByb3BzKHRoaXMucHJvcHMpKTtcbiAgfVxuXG4gIG9uU3RhcnREcmFnZ2luZyhldmVudDogU3RhcnREcmFnZ2luZ0V2ZW50KSB7XG4gICAgdGhpcy5nZXRBY3RpdmVNb2RlKCkuaGFuZGxlU3RhcnREcmFnZ2luZyhldmVudCwgdGhpcy5nZXRNb2RlUHJvcHModGhpcy5wcm9wcykpO1xuICB9XG5cbiAgb25EcmFnZ2luZyhldmVudDogRHJhZ2dpbmdFdmVudCkge1xuICAgIHRoaXMuZ2V0QWN0aXZlTW9kZSgpLmhhbmRsZURyYWdnaW5nKGV2ZW50LCB0aGlzLmdldE1vZGVQcm9wcyh0aGlzLnByb3BzKSk7XG4gIH1cblxuICBvblN0b3BEcmFnZ2luZyhldmVudDogU3RvcERyYWdnaW5nRXZlbnQpIHtcbiAgICB0aGlzLmdldEFjdGl2ZU1vZGUoKS5oYW5kbGVTdG9wRHJhZ2dpbmcoZXZlbnQsIHRoaXMuZ2V0TW9kZVByb3BzKHRoaXMucHJvcHMpKTtcbiAgfVxuXG4gIG9uUG9pbnRlck1vdmUoZXZlbnQ6IFBvaW50ZXJNb3ZlRXZlbnQpIHtcbiAgICB0aGlzLnNldFN0YXRlKHsgbGFzdFBvaW50ZXJNb3ZlRXZlbnQ6IGV2ZW50IH0pO1xuICAgIHRoaXMuZ2V0QWN0aXZlTW9kZSgpLmhhbmRsZVBvaW50ZXJNb3ZlKGV2ZW50LCB0aGlzLmdldE1vZGVQcm9wcyh0aGlzLnByb3BzKSk7XG4gIH1cblxuICBnZXRDdXJzb3IoeyBpc0RyYWdnaW5nIH06IHsgaXNEcmFnZ2luZzogYm9vbGVhbiB9KSB7XG4gICAgbGV0IHsgY3Vyc29yIH0gPSB0aGlzLnN0YXRlO1xuICAgIGlmICghY3Vyc29yKSB7XG4gICAgICAvLyBkZWZhdWx0IGN1cnNvclxuICAgICAgY3Vyc29yID0gaXNEcmFnZ2luZyA/ICdncmFiYmluZycgOiAnZ3JhYic7XG4gICAgfVxuICAgIHJldHVybiBjdXJzb3I7XG4gIH1cblxuICBnZXRBY3RpdmVNb2RlKCk6IEdlb0pzb25FZGl0TW9kZSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUubW9kZTtcbiAgfVxufVxuXG5FZGl0YWJsZUdlb0pzb25MYXllci5sYXllck5hbWUgPSAnRWRpdGFibGVHZW9Kc29uTGF5ZXInO1xuRWRpdGFibGVHZW9Kc29uTGF5ZXIuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuIl19 |
@@ -5,3 +5,3 @@ { | ||
"license": "MIT", | ||
"version": "0.17.4-alpha.3", | ||
"version": "0.17.4", | ||
"author": "Georgios Karnas <georgios@uber.com>", | ||
@@ -49,3 +49,3 @@ "repository": { | ||
"dependencies": { | ||
"@nebula.gl/edit-modes": "^0.17.4-alpha.3", | ||
"@nebula.gl/edit-modes": "^0.17.4", | ||
"@turf/bbox": ">=4.0.0", | ||
@@ -85,3 +85,3 @@ "@turf/bbox-polygon": ">=4.0.0", | ||
}, | ||
"gitHead": "633ec52336fec6525818b9b70fbf714f4f4747ea" | ||
"gitHead": "1c1727ae54b495b5d864aa91e86c467d50cf8732" | ||
} |
@@ -26,2 +26,3 @@ // @flow | ||
Draw90DegreePolygonMode, | ||
DrawPolygonByDraggingMode, | ||
SnappableMode, | ||
@@ -188,3 +189,4 @@ TransformMode | ||
drawEllipseUsing3Points: DrawEllipseUsingThreePointsMode, | ||
draw90DegreePolygon: Draw90DegreePolygonMode | ||
draw90DegreePolygon: Draw90DegreePolygonMode, | ||
drawPolygonByDragging: DrawPolygonByDraggingMode | ||
}; | ||
@@ -191,0 +193,0 @@ |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
1439427
14082
0