highmark-cli 0.0.159 → 0.0.162

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/constants.js CHANGED
@@ -30,30 +30,15 @@ _export(exports, {
30
30
  LANDSCAPE_ORIENTATION: function() {
31
31
  return LANDSCAPE_ORIENTATION;
32
32
  },
33
- MAXIMUM_SPREAD: function() {
34
- return MAXIMUM_SPREAD;
35
- },
36
- MAXIMUM_TAP_TIME: function() {
37
- return MAXIMUM_TAP_TIME;
38
- },
39
33
  MENU_ZOOM_RATIO: function() {
40
34
  return MENU_ZOOM_RATIO;
41
35
  },
42
- MINIMUM_SWIPE_SPEED: function() {
43
- return MINIMUM_SWIPE_SPEED;
44
- },
45
36
  OPEN_MENU_TAP_AREA_HEIGHT: function() {
46
37
  return OPEN_MENU_TAP_AREA_HEIGHT;
47
38
  },
48
39
  ORIENTATION_PORTRAIT_QUERY: function() {
49
40
  return ORIENTATION_PORTRAIT_QUERY;
50
41
  },
51
- PI: function() {
52
- return PI;
53
- },
54
- PI_OVER_TWO: function() {
55
- return PI_OVER_TWO;
56
- },
57
42
  PORTRAIT_ORIENTATION: function() {
58
43
  return PORTRAIT_ORIENTATION;
59
44
  },
@@ -63,32 +48,23 @@ _export(exports, {
63
48
  STATE_KEY: function() {
64
49
  return STATE_KEY;
65
50
  },
66
- TAP_DELAY: function() {
67
- return TAP_DELAY;
68
- },
69
51
  UP_DIRECTION: function() {
70
52
  return UP_DIRECTION;
71
53
  }
72
54
  });
73
- var PI = Math.PI;
74
55
  var HASH = "#";
75
56
  var GRID = "grid";
76
57
  var STATE_KEY = "state";
77
- var TAP_DELAY = 250;
78
- var PI_OVER_TWO = PI / 2;
79
58
  var EMPTY_STRING = "";
80
59
  var SCROLL_DELAY = 10;
81
60
  var DECELERATION = 0.0333333;
82
61
  var UP_DIRECTION = +1;
83
62
  var DOWN_DIRECTION = -1;
84
- var MAXIMUM_SPREAD = PI / 4;
85
63
  var MENU_ZOOM_RATIO = 1.1;
86
- var MAXIMUM_TAP_TIME = 125;
87
64
  var BACKGROUND_COLOUR = "background-color"; ///
88
- var MINIMUM_SWIPE_SPEED = 1;
89
65
  var PORTRAIT_ORIENTATION = "portrait";
90
66
  var LANDSCAPE_ORIENTATION = "landscape";
91
67
  var OPEN_MENU_TAP_AREA_HEIGHT = 128;
92
68
  var ORIENTATION_PORTRAIT_QUERY = "(orientation: portrait)";
93
69
 
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCB7IFBJIH0gPSBNYXRoO1xuXG5leHBvcnQgY29uc3QgSEFTSCA9IFwiI1wiO1xuZXhwb3J0IGNvbnN0IEdSSUQgPSBcImdyaWRcIjtcbmV4cG9ydCBjb25zdCBTVEFURV9LRVkgPSBcInN0YXRlXCI7XG5leHBvcnQgY29uc3QgVEFQX0RFTEFZID0gMjUwO1xuZXhwb3J0IGNvbnN0IFBJX09WRVJfVFdPID0gUEkgLyAyO1xuZXhwb3J0IGNvbnN0IEVNUFRZX1NUUklORyA9IFwiXCI7XG5leHBvcnQgY29uc3QgU0NST0xMX0RFTEFZID0gMTA7XG5leHBvcnQgY29uc3QgREVDRUxFUkFUSU9OID0gMC4wMzMzMzMzO1xuZXhwb3J0IGNvbnN0IFVQX0RJUkVDVElPTiA9ICsxO1xuZXhwb3J0IGNvbnN0IERPV05fRElSRUNUSU9OID0gLTE7XG5leHBvcnQgY29uc3QgTUFYSU1VTV9TUFJFQUQgPSBQSSAvIDQ7XG5leHBvcnQgY29uc3QgTUVOVV9aT09NX1JBVElPID0gMS4xO1xuZXhwb3J0IGNvbnN0IE1BWElNVU1fVEFQX1RJTUUgPSAxMjU7XG5leHBvcnQgY29uc3QgQkFDS0dST1VORF9DT0xPVVIgPSBcImJhY2tncm91bmQtY29sb3JcIjsgLy8vXG5leHBvcnQgY29uc3QgTUlOSU1VTV9TV0lQRV9TUEVFRCA9IDE7XG5leHBvcnQgY29uc3QgUE9SVFJBSVRfT1JJRU5UQVRJT04gPSBcInBvcnRyYWl0XCI7XG5leHBvcnQgY29uc3QgTEFORFNDQVBFX09SSUVOVEFUSU9OID0gXCJsYW5kc2NhcGVcIjtcbmV4cG9ydCBjb25zdCBPUEVOX01FTlVfVEFQX0FSRUFfSEVJR0hUID0gMTI4O1xuZXhwb3J0IGNvbnN0IE9SSUVOVEFUSU9OX1BPUlRSQUlUX1FVRVJZID0gXCIob3JpZW50YXRpb246IHBvcnRyYWl0KVwiO1xuIl0sIm5hbWVzIjpbIkJBQ0tHUk9VTkRfQ09MT1VSIiwiREVDRUxFUkFUSU9OIiwiRE9XTl9ESVJFQ1RJT04iLCJFTVBUWV9TVFJJTkciLCJHUklEIiwiSEFTSCIsIkxBTkRTQ0FQRV9PUklFTlRBVElPTiIsIk1BWElNVU1fU1BSRUFEIiwiTUFYSU1VTV9UQVBfVElNRSIsIk1FTlVfWk9PTV9SQVRJTyIsIk1JTklNVU1fU1dJUEVfU1BFRUQiLCJPUEVOX01FTlVfVEFQX0FSRUFfSEVJR0hUIiwiT1JJRU5UQVRJT05fUE9SVFJBSVRfUVVFUlkiLCJQSSIsIlBJX09WRVJfVFdPIiwiUE9SVFJBSVRfT1JJRU5UQVRJT04iLCJTQ1JPTExfREVMQVkiLCJTVEFURV9LRVkiLCJUQVBfREVMQVkiLCJVUF9ESVJFQ1RJT04iLCJNYXRoIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQWlCYUEsaUJBQWlCO2VBQWpCQTs7SUFOQUMsWUFBWTtlQUFaQTs7SUFFQUMsY0FBYztlQUFkQTs7SUFKQUMsWUFBWTtlQUFaQTs7SUFKQUMsSUFBSTtlQUFKQTs7SUFEQUMsSUFBSTtlQUFKQTs7SUFnQkFDLHFCQUFxQjtlQUFyQkE7O0lBTkFDLGNBQWM7ZUFBZEE7O0lBRUFDLGdCQUFnQjtlQUFoQkE7O0lBREFDLGVBQWU7ZUFBZkE7O0lBR0FDLG1CQUFtQjtlQUFuQkE7O0lBR0FDLHlCQUF5QjtlQUF6QkE7O0lBQ0FDLDBCQUEwQjtlQUExQkE7O0lBcEJFQyxFQUFFO2VBQUZBOztJQU1GQyxXQUFXO2VBQVhBOztJQVdBQyxvQkFBb0I7ZUFBcEJBOztJQVRBQyxZQUFZO2VBQVpBOztJQUpBQyxTQUFTO2VBQVRBOztJQUNBQyxTQUFTO2VBQVRBOztJQUtBQyxZQUFZO2VBQVpBOzs7QUFWTixJQUFNLEFBQUVOLEtBQU9PLEtBQVBQO0FBRVIsSUFBTVIsT0FBTztBQUNiLElBQU1ELE9BQU87QUFDYixJQUFNYSxZQUFZO0FBQ2xCLElBQU1DLFlBQVk7QUFDbEIsSUFBTUosY0FBY0QsS0FBSztBQUN6QixJQUFNVixlQUFlO0FBQ3JCLElBQU1hLGVBQWU7QUFDckIsSUFBTWYsZUFBZTtBQUNyQixJQUFNa0IsZUFBZSxDQUFDO0FBQ3RCLElBQU1qQixpQkFBaUIsQ0FBQztBQUN4QixJQUFNSyxpQkFBaUJNLEtBQUs7QUFDNUIsSUFBTUosa0JBQWtCO0FBQ3hCLElBQU1ELG1CQUFtQjtBQUN6QixJQUFNUixvQkFBb0Isb0JBQW9CLEdBQUc7QUFDakQsSUFBTVUsc0JBQXNCO0FBQzVCLElBQU1LLHVCQUF1QjtBQUM3QixJQUFNVCx3QkFBd0I7QUFDOUIsSUFBTUssNEJBQTRCO0FBQ2xDLElBQU1DLDZCQUE2QiJ9
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBIQVNIID0gXCIjXCI7XG5leHBvcnQgY29uc3QgR1JJRCA9IFwiZ3JpZFwiO1xuZXhwb3J0IGNvbnN0IFNUQVRFX0tFWSA9IFwic3RhdGVcIjtcbmV4cG9ydCBjb25zdCBFTVBUWV9TVFJJTkcgPSBcIlwiO1xuZXhwb3J0IGNvbnN0IFNDUk9MTF9ERUxBWSA9IDEwO1xuZXhwb3J0IGNvbnN0IERFQ0VMRVJBVElPTiA9IDAuMDMzMzMzMztcbmV4cG9ydCBjb25zdCBVUF9ESVJFQ1RJT04gPSArMTtcbmV4cG9ydCBjb25zdCBET1dOX0RJUkVDVElPTiA9IC0xO1xuZXhwb3J0IGNvbnN0IE1FTlVfWk9PTV9SQVRJTyA9IDEuMTtcbmV4cG9ydCBjb25zdCBCQUNLR1JPVU5EX0NPTE9VUiA9IFwiYmFja2dyb3VuZC1jb2xvclwiOyAvLy9cbmV4cG9ydCBjb25zdCBQT1JUUkFJVF9PUklFTlRBVElPTiA9IFwicG9ydHJhaXRcIjtcbmV4cG9ydCBjb25zdCBMQU5EU0NBUEVfT1JJRU5UQVRJT04gPSBcImxhbmRzY2FwZVwiO1xuZXhwb3J0IGNvbnN0IE9QRU5fTUVOVV9UQVBfQVJFQV9IRUlHSFQgPSAxMjg7XG5leHBvcnQgY29uc3QgT1JJRU5UQVRJT05fUE9SVFJBSVRfUVVFUlkgPSBcIihvcmllbnRhdGlvbjogcG9ydHJhaXQpXCI7XG4iXSwibmFtZXMiOlsiQkFDS0dST1VORF9DT0xPVVIiLCJERUNFTEVSQVRJT04iLCJET1dOX0RJUkVDVElPTiIsIkVNUFRZX1NUUklORyIsIkdSSUQiLCJIQVNIIiwiTEFORFNDQVBFX09SSUVOVEFUSU9OIiwiTUVOVV9aT09NX1JBVElPIiwiT1BFTl9NRU5VX1RBUF9BUkVBX0hFSUdIVCIsIk9SSUVOVEFUSU9OX1BPUlRSQUlUX1FVRVJZIiwiUE9SVFJBSVRfT1JJRU5UQVRJT04iLCJTQ1JPTExfREVMQVkiLCJTVEFURV9LRVkiLCJVUF9ESVJFQ1RJT04iXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBV2FBLGlCQUFpQjtlQUFqQkE7O0lBSkFDLFlBQVk7ZUFBWkE7O0lBRUFDLGNBQWM7ZUFBZEE7O0lBSkFDLFlBQVk7ZUFBWkE7O0lBRkFDLElBQUk7ZUFBSkE7O0lBREFDLElBQUk7ZUFBSkE7O0lBV0FDLHFCQUFxQjtlQUFyQkE7O0lBSEFDLGVBQWU7ZUFBZkE7O0lBSUFDLHlCQUF5QjtlQUF6QkE7O0lBQ0FDLDBCQUEwQjtlQUExQkE7O0lBSEFDLG9CQUFvQjtlQUFwQkE7O0lBTkFDLFlBQVk7ZUFBWkE7O0lBRkFDLFNBQVM7ZUFBVEE7O0lBSUFDLFlBQVk7ZUFBWkE7OztBQU5OLElBQU1SLE9BQU87QUFDYixJQUFNRCxPQUFPO0FBQ2IsSUFBTVEsWUFBWTtBQUNsQixJQUFNVCxlQUFlO0FBQ3JCLElBQU1RLGVBQWU7QUFDckIsSUFBTVYsZUFBZTtBQUNyQixJQUFNWSxlQUFlLENBQUM7QUFDdEIsSUFBTVgsaUJBQWlCLENBQUM7QUFDeEIsSUFBTUssa0JBQWtCO0FBQ3hCLElBQU1QLG9CQUFvQixvQkFBb0IsR0FBRztBQUNqRCxJQUFNVSx1QkFBdUI7QUFDN0IsSUFBTUosd0JBQXdCO0FBQzlCLElBQU1FLDRCQUE0QjtBQUNsQyxJQUFNQyw2QkFBNkIifQ==
package/lib/state.js CHANGED
@@ -40,7 +40,7 @@ _export(exports, {
40
40
  return setOverlayZoom;
41
41
  }
42
42
  });
43
- var _fullScreen = require("./utilities/fullScreen");
43
+ var _easymobile = require("easy-mobile");
44
44
  var _localStorage = require("./localStorage");
45
45
  function _define_property(obj, key, value) {
46
46
  if (key in obj) {
@@ -55,6 +55,7 @@ function _define_property(obj, key, value) {
55
55
  }
56
56
  return obj;
57
57
  }
58
+ var isFullScreen = _easymobile.fullScreenUtilities.isFullScreen;
58
59
  var orientation = null, state = {
59
60
  orientation: orientation
60
61
  };
@@ -84,7 +85,7 @@ function setMenuZoom(menuZoom) {
84
85
  }
85
86
  function getOverlayZoom() {
86
87
  stateFromPersistentState();
87
- var fullScreen = (0, _fullScreen.isFullScreen)(), orientation = getOrientation();
88
+ var fullScreen = isFullScreen(), orientation = getOrientation();
88
89
  var overlayZoom;
89
90
  if (fullScreen) {
90
91
  var ref;
@@ -98,7 +99,7 @@ function getOverlayZoom() {
98
99
  }
99
100
  function setOverlayZoom(overlayZoom) {
100
101
  stateFromPersistentState();
101
- var fullScreen = (0, _fullScreen.isFullScreen)(), orientation = getOrientation();
102
+ var fullScreen = isFullScreen(), orientation = getOrientation();
102
103
  var orientedOverlayZoom = overlayZoom; ///
103
104
  if (fullScreen) {
104
105
  var ref;
@@ -148,4 +149,4 @@ function stateFromPersistentState() {
148
149
  Object.assign(state, persistentState);
149
150
  }
150
151
 
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGF0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgaXNGdWxsU2NyZWVuIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2Z1bGxTY3JlZW5cIjtcbmltcG9ydCB7IGdldFBlcnNpc3RlbnRTdGF0ZSwgc2V0UGVyc2lzdGVudFN0YXRlIH0gZnJvbSBcIi4vbG9jYWxTdG9yYWdlXCI7XG5cbmNvbnN0IG9yaWVudGF0aW9uID0gbnVsbCxcbiAgICAgIHN0YXRlID0ge1xuICAgICAgICBvcmllbnRhdGlvblxuICAgICAgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9yaWVudGF0aW9uKCkge1xuICBjb25zdCB7IG9yaWVudGF0aW9uIH0gPSBzdGF0ZTtcblxuICByZXR1cm4gb3JpZW50YXRpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRPcmllbnRhdGlvbihvcmllbnRhdGlvbikge1xuICBPYmplY3QuYXNzaWduKHN0YXRlLCB7XG4gICAgb3JpZW50YXRpb25cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNZW51Wm9vbSgpIHtcbiAgc3RhdGVGcm9tUGVyc2lzdGVudFN0YXRlKCk7XG5cbiAgbGV0IG1lbnVab29tO1xuXG4gICh7IG1lbnVab29tIH0gPSBzdGF0ZSk7XG5cbiAgY29uc3QgeyBvcmllbnRhdGlvbiB9ID0gc3RhdGUsXG4gICAgICAgIG9yaWVudGVkTWVudVpvb20gPSBtZW51Wm9vbVtvcmllbnRhdGlvbl07IC8vL1xuXG4gIG1lbnVab29tID0gb3JpZW50ZWRNZW51Wm9vbTsgIC8vL1xuXG4gIHJldHVybiBtZW51Wm9vbTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldE1lbnVab29tKG1lbnVab29tKSB7XG4gIHN0YXRlRnJvbVBlcnNpc3RlbnRTdGF0ZSgpO1xuXG4gIGNvbnN0IHsgb3JpZW50YXRpb24gfSA9IHN0YXRlLFxuICAgICAgICBvcmllbnRlZE1lbnVab29tID0gbWVudVpvb207ICAvLy9cblxuICAoeyBtZW51Wm9vbSB9ID0gc3RhdGUpO1xuXG4gIE9iamVjdC5hc3NpZ24obWVudVpvb20sIHtcbiAgICBbb3JpZW50YXRpb25dOiBvcmllbnRlZE1lbnVab29tXG4gIH0pO1xuXG4gIHN0YXRlVG9QZXJzaXN0ZW50U3RhdGUoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE92ZXJsYXlab29tKCkge1xuICBzdGF0ZUZyb21QZXJzaXN0ZW50U3RhdGUoKTtcblxuICBjb25zdCBmdWxsU2NyZWVuID0gaXNGdWxsU2NyZWVuKCksXG4gICAgICAgIG9yaWVudGF0aW9uID0gZ2V0T3JpZW50YXRpb24oKTtcblxuICBsZXQgb3ZlcmxheVpvb207XG5cbiAgaWYgKGZ1bGxTY3JlZW4pIHtcbiAgICAoeyBmdWxsU2NyZWVuT3ZlcmxheVpvb206IG92ZXJsYXlab29tIH0gPSBzdGF0ZSk7XG4gIH0gZWxzZSB7XG4gICAgKHsgb3ZlcmxheVpvb20gfSA9IHN0YXRlKTtcbiAgfVxuXG4gIGNvbnN0IG9yaWVudGVkT3ZlcmxheVpvb20gPSBvdmVybGF5Wm9vbVtvcmllbnRhdGlvbl07IC8vL1xuXG4gIG92ZXJsYXlab29tID0gb3JpZW50ZWRPdmVybGF5Wm9vbTsgIC8vL1xuXG4gIHJldHVybiBvdmVybGF5Wm9vbTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldE92ZXJsYXlab29tKG92ZXJsYXlab29tKSB7XG4gIHN0YXRlRnJvbVBlcnNpc3RlbnRTdGF0ZSgpO1xuXG4gIGNvbnN0IGZ1bGxTY3JlZW4gPSBpc0Z1bGxTY3JlZW4oKSxcbiAgICAgICAgb3JpZW50YXRpb24gPSBnZXRPcmllbnRhdGlvbigpO1xuXG4gIGNvbnN0IG9yaWVudGVkT3ZlcmxheVpvb20gPSBvdmVybGF5Wm9vbTsgIC8vL1xuXG4gIGlmIChmdWxsU2NyZWVuKSB7XG4gICAgKHsgZnVsbFNjcmVlbk92ZXJsYXlab29tOiBvdmVybGF5Wm9vbSB9ID0gc3RhdGUpO1xuICB9IGVsc2Uge1xuICAgICh7IG92ZXJsYXlab29tIH0gPSBzdGF0ZSk7XG4gIH1cblxuICBPYmplY3QuYXNzaWduKG92ZXJsYXlab29tLCB7XG4gICAgW29yaWVudGF0aW9uXTogb3JpZW50ZWRPdmVybGF5Wm9vbVxuICB9KTtcblxuICBzdGF0ZVRvUGVyc2lzdGVudFN0YXRlKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcmVOYXRpdmVHZXN0dXJlc1Jlc3RvcmVkKCkge1xuICBzdGF0ZUZyb21QZXJzaXN0ZW50U3RhdGUoKTtcblxuICBjb25zdCB7IG5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQgfSA9IHN0YXRlO1xuXG4gIHJldHVybiBuYXRpdmVHZXN0dXJlc1Jlc3RvcmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0TmF0aXZlR2VzdHVyZXNSZXN0b3JlZChuYXRpdmVHZXN0dXJlc1Jlc3RvcmVkKSB7XG4gIHN0YXRlRnJvbVBlcnNpc3RlbnRTdGF0ZSgpO1xuXG4gIE9iamVjdC5hc3NpZ24oc3RhdGUsIHtcbiAgICBuYXRpdmVHZXN0dXJlc1Jlc3RvcmVkXG4gIH0pO1xuXG4gIHN0YXRlVG9QZXJzaXN0ZW50U3RhdGUoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFyZUNvbG91cnNJbnZlcnRlZCgpIHtcbiAgc3RhdGVGcm9tUGVyc2lzdGVudFN0YXRlKCk7XG5cbiAgY29uc3QgeyBjb2xvdXJzSW52ZXJ0ZWQgfSA9IHN0YXRlO1xuXG4gIHJldHVybiBjb2xvdXJzSW52ZXJ0ZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRDb2xvdXJzSW52ZXJ0ZWQoY29sb3Vyc0ludmVydGVkKSB7XG4gIHN0YXRlRnJvbVBlcnNpc3RlbnRTdGF0ZSgpO1xuXG4gIE9iamVjdC5hc3NpZ24oc3RhdGUsIHtcbiAgICBjb2xvdXJzSW52ZXJ0ZWRcbiAgfSk7XG5cbiAgc3RhdGVUb1BlcnNpc3RlbnRTdGF0ZSgpO1xufVxuXG5mdW5jdGlvbiBzdGF0ZVRvUGVyc2lzdGVudFN0YXRlKCkge1xuICBjb25zdCB7IG1lbnVab29tLCBvdmVybGF5Wm9vbSwgZnVsbFNjcmVlbk92ZXJsYXlab29tLCBuYXRpdmVHZXN0dXJlc1Jlc3RvcmVkLCBjb2xvdXJzSW52ZXJ0ZWQgfSA9IHN0YXRlLFxuICAgICAgICBwZXJzaXN0ZW50U3RhdGUgPSB7XG4gICAgICAgICAgbWVudVpvb20sXG4gICAgICAgICAgb3ZlcmxheVpvb20sXG4gICAgICAgICAgZnVsbFNjcmVlbk92ZXJsYXlab29tLFxuICAgICAgICAgIG5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQsXG4gICAgICAgICAgY29sb3Vyc0ludmVydGVkXG4gICAgICAgIH07XG5cbiAgc2V0UGVyc2lzdGVudFN0YXRlKHBlcnNpc3RlbnRTdGF0ZSk7XG59XG5cbmZ1bmN0aW9uIHN0YXRlRnJvbVBlcnNpc3RlbnRTdGF0ZSgpIHtcbiAgY29uc3QgcGVyc2lzdGVudFN0YXRlID0gZ2V0UGVyc2lzdGVudFN0YXRlKCk7XG5cbiAgT2JqZWN0LmFzc2lnbihzdGF0ZSwgcGVyc2lzdGVudFN0YXRlKTtcbn1cbiJdLCJuYW1lcyI6WyJhcmVDb2xvdXJzSW52ZXJ0ZWQiLCJhcmVOYXRpdmVHZXN0dXJlc1Jlc3RvcmVkIiwiZ2V0TWVudVpvb20iLCJnZXRPcmllbnRhdGlvbiIsImdldE92ZXJsYXlab29tIiwic2V0Q29sb3Vyc0ludmVydGVkIiwic2V0TWVudVpvb20iLCJzZXROYXRpdmVHZXN0dXJlc1Jlc3RvcmVkIiwic2V0T3JpZW50YXRpb24iLCJzZXRPdmVybGF5Wm9vbSIsIm9yaWVudGF0aW9uIiwic3RhdGUiLCJPYmplY3QiLCJhc3NpZ24iLCJzdGF0ZUZyb21QZXJzaXN0ZW50U3RhdGUiLCJtZW51Wm9vbSIsIm9yaWVudGVkTWVudVpvb20iLCJzdGF0ZVRvUGVyc2lzdGVudFN0YXRlIiwiZnVsbFNjcmVlbiIsImlzRnVsbFNjcmVlbiIsIm92ZXJsYXlab29tIiwiZnVsbFNjcmVlbk92ZXJsYXlab29tIiwib3JpZW50ZWRPdmVybGF5Wm9vbSIsIm5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQiLCJjb2xvdXJzSW52ZXJ0ZWQiLCJwZXJzaXN0ZW50U3RhdGUiLCJzZXRQZXJzaXN0ZW50U3RhdGUiLCJnZXRQZXJzaXN0ZW50U3RhdGUiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBZ0hnQkEsa0JBQWtCO2VBQWxCQTs7SUFsQkFDLHlCQUF5QjtlQUF6QkE7O0lBeEVBQyxXQUFXO2VBQVhBOztJQVpBQyxjQUFjO2VBQWRBOztJQTBDQUMsY0FBYztlQUFkQTs7SUFvRUFDLGtCQUFrQjtlQUFsQkE7O0lBbkZBQyxXQUFXO2VBQVhBOztJQWlFQUMseUJBQXlCO2VBQXpCQTs7SUF0RkFDLGNBQWM7ZUFBZEE7O0lBeURBQyxjQUFjO2VBQWRBOzs7MEJBdkVhOzRCQUMwQjs7Ozs7Ozs7Ozs7Ozs7QUFFdkQsSUFBTUMsY0FBYyxNQUNkQyxRQUFRO0lBQ05ELGFBQUFBO0FBQ0Y7QUFFQyxTQUFTUDtJQUNkLElBQU0sQUFBRU8sY0FBZ0JDLE1BQWhCRDtJQUVSLE9BQU9BO0FBQ1Q7QUFFTyxTQUFTRixlQUFlRSxXQUFXO0lBQ3hDRSxPQUFPQyxNQUFNLENBQUNGLE9BQU87UUFDbkJELGFBQUFBO0lBQ0Y7QUFDRjtBQUVPLFNBQVNSO0lBQ2RZO0lBRUEsSUFBSUM7SUFFREEsV0FBYUosTUFBYkk7SUFFSCxJQUFNLEFBQUVMLGNBQWdCQyxNQUFoQkQsYUFDRk0sbUJBQW1CRCxRQUFRLENBQUNMLFlBQVksRUFBRSxHQUFHO0lBRW5ESyxXQUFXQyxrQkFBbUIsR0FBRztJQUVqQyxPQUFPRDtBQUNUO0FBRU8sU0FBU1QsWUFBWVMsUUFBUTtJQUNsQ0Q7SUFFQSxJQUFNLEFBQUVKLGNBQWdCQyxNQUFoQkQsYUFDRk0sbUJBQW1CRCxVQUFXLEdBQUc7SUFFcENBLFdBQWFKLE1BQWJJO0lBRUhILE9BQU9DLE1BQU0sQ0FBQ0UsVUFDWixxQkFBQ0wsYUFBY007SUFHakJDO0FBQ0Y7QUFFTyxTQUFTYjtJQUNkVTtJQUVBLElBQU1JLGFBQWFDLElBQUFBLHdCQUFZLEtBQ3pCVCxjQUFjUDtJQUVwQixJQUFJaUI7SUFFSixJQUFJRixZQUFZOztjQUM0QlAsT0FBaEJTLGtCQUF2QkM7SUFDTCxPQUFPO1FBQ0ZELGNBQWdCVCxNQUFoQlM7SUFDTDtJQUVBLElBQU1FLHNCQUFzQkYsV0FBVyxDQUFDVixZQUFZLEVBQUUsR0FBRztJQUV6RFUsY0FBY0UscUJBQXNCLEdBQUc7SUFFdkMsT0FBT0Y7QUFDVDtBQUVPLFNBQVNYLGVBQWVXLFdBQVc7SUFDeENOO0lBRUEsSUFBTUksYUFBYUMsSUFBQUEsd0JBQVksS0FDekJULGNBQWNQO0lBRXBCLElBQU1tQixzQkFBc0JGLGFBQWMsR0FBRztJQUU3QyxJQUFJRixZQUFZOztjQUM0QlAsT0FBaEJTLGtCQUF2QkM7SUFDTCxPQUFPO1FBQ0ZELGNBQWdCVCxNQUFoQlM7SUFDTDtJQUVBUixPQUFPQyxNQUFNLENBQUNPLGFBQ1oscUJBQUNWLGFBQWNZO0lBR2pCTDtBQUNGO0FBRU8sU0FBU2hCO0lBQ2RhO0lBRUEsSUFBTSxBQUFFUyx5QkFBMkJaLE1BQTNCWTtJQUVSLE9BQU9BO0FBQ1Q7QUFFTyxTQUFTaEIsMEJBQTBCZ0Isc0JBQXNCO0lBQzlEVDtJQUVBRixPQUFPQyxNQUFNLENBQUNGLE9BQU87UUFDbkJZLHdCQUFBQTtJQUNGO0lBRUFOO0FBQ0Y7QUFFTyxTQUFTakI7SUFDZGM7SUFFQSxJQUFNLEFBQUVVLGtCQUFvQmIsTUFBcEJhO0lBRVIsT0FBT0E7QUFDVDtBQUVPLFNBQVNuQixtQkFBbUJtQixlQUFlO0lBQ2hEVjtJQUVBRixPQUFPQyxNQUFNLENBQUNGLE9BQU87UUFDbkJhLGlCQUFBQTtJQUNGO0lBRUFQO0FBQ0Y7QUFFQSxTQUFTQTtJQUNQLElBQVFGLFdBQTBGSixNQUExRkksVUFBVUssY0FBZ0ZULE1BQWhGUyxhQUFhQyx3QkFBbUVWLE1BQW5FVSx1QkFBdUJFLHlCQUE0Q1osTUFBNUNZLHdCQUF3QkMsa0JBQW9CYixNQUFwQmEsaUJBQ3hFQyxrQkFBa0I7UUFDaEJWLFVBQUFBO1FBQ0FLLGFBQUFBO1FBQ0FDLHVCQUFBQTtRQUNBRSx3QkFBQUE7UUFDQUMsaUJBQUFBO0lBQ0Y7SUFFTkUsSUFBQUEsZ0NBQWtCLEVBQUNEO0FBQ3JCO0FBRUEsU0FBU1g7SUFDUCxJQUFNVyxrQkFBa0JFLElBQUFBLGdDQUFrQjtJQUUxQ2YsT0FBT0MsTUFBTSxDQUFDRixPQUFPYztBQUN2QiJ9
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGF0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZnVsbFNjcmVlblV0aWxpdGllcyB9IGZyb20gXCJlYXN5LW1vYmlsZVwiO1xuXG5pbXBvcnQgeyBnZXRQZXJzaXN0ZW50U3RhdGUsIHNldFBlcnNpc3RlbnRTdGF0ZSB9IGZyb20gXCIuL2xvY2FsU3RvcmFnZVwiO1xuXG5jb25zdCB7IGlzRnVsbFNjcmVlbiB9ID0gZnVsbFNjcmVlblV0aWxpdGllcztcblxuY29uc3Qgb3JpZW50YXRpb24gPSBudWxsLFxuICAgICAgc3RhdGUgPSB7XG4gICAgICAgIG9yaWVudGF0aW9uXG4gICAgICB9O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3JpZW50YXRpb24oKSB7XG4gIGNvbnN0IHsgb3JpZW50YXRpb24gfSA9IHN0YXRlO1xuXG4gIHJldHVybiBvcmllbnRhdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldE9yaWVudGF0aW9uKG9yaWVudGF0aW9uKSB7XG4gIE9iamVjdC5hc3NpZ24oc3RhdGUsIHtcbiAgICBvcmllbnRhdGlvblxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1lbnVab29tKCkge1xuICBzdGF0ZUZyb21QZXJzaXN0ZW50U3RhdGUoKTtcblxuICBsZXQgbWVudVpvb207XG5cbiAgKHsgbWVudVpvb20gfSA9IHN0YXRlKTtcblxuICBjb25zdCB7IG9yaWVudGF0aW9uIH0gPSBzdGF0ZSxcbiAgICAgICAgb3JpZW50ZWRNZW51Wm9vbSA9IG1lbnVab29tW29yaWVudGF0aW9uXTsgLy8vXG5cbiAgbWVudVpvb20gPSBvcmllbnRlZE1lbnVab29tOyAgLy8vXG5cbiAgcmV0dXJuIG1lbnVab29tO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0TWVudVpvb20obWVudVpvb20pIHtcbiAgc3RhdGVGcm9tUGVyc2lzdGVudFN0YXRlKCk7XG5cbiAgY29uc3QgeyBvcmllbnRhdGlvbiB9ID0gc3RhdGUsXG4gICAgICAgIG9yaWVudGVkTWVudVpvb20gPSBtZW51Wm9vbTsgIC8vL1xuXG4gICh7IG1lbnVab29tIH0gPSBzdGF0ZSk7XG5cbiAgT2JqZWN0LmFzc2lnbihtZW51Wm9vbSwge1xuICAgIFtvcmllbnRhdGlvbl06IG9yaWVudGVkTWVudVpvb21cbiAgfSk7XG5cbiAgc3RhdGVUb1BlcnNpc3RlbnRTdGF0ZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3ZlcmxheVpvb20oKSB7XG4gIHN0YXRlRnJvbVBlcnNpc3RlbnRTdGF0ZSgpO1xuXG4gIGNvbnN0IGZ1bGxTY3JlZW4gPSBpc0Z1bGxTY3JlZW4oKSxcbiAgICAgICAgb3JpZW50YXRpb24gPSBnZXRPcmllbnRhdGlvbigpO1xuXG4gIGxldCBvdmVybGF5Wm9vbTtcblxuICBpZiAoZnVsbFNjcmVlbikge1xuICAgICh7IGZ1bGxTY3JlZW5PdmVybGF5Wm9vbTogb3ZlcmxheVpvb20gfSA9IHN0YXRlKTtcbiAgfSBlbHNlIHtcbiAgICAoeyBvdmVybGF5Wm9vbSB9ID0gc3RhdGUpO1xuICB9XG5cbiAgY29uc3Qgb3JpZW50ZWRPdmVybGF5Wm9vbSA9IG92ZXJsYXlab29tW29yaWVudGF0aW9uXTsgLy8vXG5cbiAgb3ZlcmxheVpvb20gPSBvcmllbnRlZE92ZXJsYXlab29tOyAgLy8vXG5cbiAgcmV0dXJuIG92ZXJsYXlab29tO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0T3ZlcmxheVpvb20ob3ZlcmxheVpvb20pIHtcbiAgc3RhdGVGcm9tUGVyc2lzdGVudFN0YXRlKCk7XG5cbiAgY29uc3QgZnVsbFNjcmVlbiA9IGlzRnVsbFNjcmVlbigpLFxuICAgICAgICBvcmllbnRhdGlvbiA9IGdldE9yaWVudGF0aW9uKCk7XG5cbiAgY29uc3Qgb3JpZW50ZWRPdmVybGF5Wm9vbSA9IG92ZXJsYXlab29tOyAgLy8vXG5cbiAgaWYgKGZ1bGxTY3JlZW4pIHtcbiAgICAoeyBmdWxsU2NyZWVuT3ZlcmxheVpvb206IG92ZXJsYXlab29tIH0gPSBzdGF0ZSk7XG4gIH0gZWxzZSB7XG4gICAgKHsgb3ZlcmxheVpvb20gfSA9IHN0YXRlKTtcbiAgfVxuXG4gIE9iamVjdC5hc3NpZ24ob3ZlcmxheVpvb20sIHtcbiAgICBbb3JpZW50YXRpb25dOiBvcmllbnRlZE92ZXJsYXlab29tXG4gIH0pO1xuXG4gIHN0YXRlVG9QZXJzaXN0ZW50U3RhdGUoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFyZU5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQoKSB7XG4gIHN0YXRlRnJvbVBlcnNpc3RlbnRTdGF0ZSgpO1xuXG4gIGNvbnN0IHsgbmF0aXZlR2VzdHVyZXNSZXN0b3JlZCB9ID0gc3RhdGU7XG5cbiAgcmV0dXJuIG5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXROYXRpdmVHZXN0dXJlc1Jlc3RvcmVkKG5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQpIHtcbiAgc3RhdGVGcm9tUGVyc2lzdGVudFN0YXRlKCk7XG5cbiAgT2JqZWN0LmFzc2lnbihzdGF0ZSwge1xuICAgIG5hdGl2ZUdlc3R1cmVzUmVzdG9yZWRcbiAgfSk7XG5cbiAgc3RhdGVUb1BlcnNpc3RlbnRTdGF0ZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJlQ29sb3Vyc0ludmVydGVkKCkge1xuICBzdGF0ZUZyb21QZXJzaXN0ZW50U3RhdGUoKTtcblxuICBjb25zdCB7IGNvbG91cnNJbnZlcnRlZCB9ID0gc3RhdGU7XG5cbiAgcmV0dXJuIGNvbG91cnNJbnZlcnRlZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldENvbG91cnNJbnZlcnRlZChjb2xvdXJzSW52ZXJ0ZWQpIHtcbiAgc3RhdGVGcm9tUGVyc2lzdGVudFN0YXRlKCk7XG5cbiAgT2JqZWN0LmFzc2lnbihzdGF0ZSwge1xuICAgIGNvbG91cnNJbnZlcnRlZFxuICB9KTtcblxuICBzdGF0ZVRvUGVyc2lzdGVudFN0YXRlKCk7XG59XG5cbmZ1bmN0aW9uIHN0YXRlVG9QZXJzaXN0ZW50U3RhdGUoKSB7XG4gIGNvbnN0IHsgbWVudVpvb20sIG92ZXJsYXlab29tLCBmdWxsU2NyZWVuT3ZlcmxheVpvb20sIG5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQsIGNvbG91cnNJbnZlcnRlZCB9ID0gc3RhdGUsXG4gICAgICAgIHBlcnNpc3RlbnRTdGF0ZSA9IHtcbiAgICAgICAgICBtZW51Wm9vbSxcbiAgICAgICAgICBvdmVybGF5Wm9vbSxcbiAgICAgICAgICBmdWxsU2NyZWVuT3ZlcmxheVpvb20sXG4gICAgICAgICAgbmF0aXZlR2VzdHVyZXNSZXN0b3JlZCxcbiAgICAgICAgICBjb2xvdXJzSW52ZXJ0ZWRcbiAgICAgICAgfTtcblxuICBzZXRQZXJzaXN0ZW50U3RhdGUocGVyc2lzdGVudFN0YXRlKTtcbn1cblxuZnVuY3Rpb24gc3RhdGVGcm9tUGVyc2lzdGVudFN0YXRlKCkge1xuICBjb25zdCBwZXJzaXN0ZW50U3RhdGUgPSBnZXRQZXJzaXN0ZW50U3RhdGUoKTtcblxuICBPYmplY3QuYXNzaWduKHN0YXRlLCBwZXJzaXN0ZW50U3RhdGUpO1xufVxuIl0sIm5hbWVzIjpbImFyZUNvbG91cnNJbnZlcnRlZCIsImFyZU5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQiLCJnZXRNZW51Wm9vbSIsImdldE9yaWVudGF0aW9uIiwiZ2V0T3ZlcmxheVpvb20iLCJzZXRDb2xvdXJzSW52ZXJ0ZWQiLCJzZXRNZW51Wm9vbSIsInNldE5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQiLCJzZXRPcmllbnRhdGlvbiIsInNldE92ZXJsYXlab29tIiwiaXNGdWxsU2NyZWVuIiwiZnVsbFNjcmVlblV0aWxpdGllcyIsIm9yaWVudGF0aW9uIiwic3RhdGUiLCJPYmplY3QiLCJhc3NpZ24iLCJzdGF0ZUZyb21QZXJzaXN0ZW50U3RhdGUiLCJtZW51Wm9vbSIsIm9yaWVudGVkTWVudVpvb20iLCJzdGF0ZVRvUGVyc2lzdGVudFN0YXRlIiwiZnVsbFNjcmVlbiIsIm92ZXJsYXlab29tIiwiZnVsbFNjcmVlbk92ZXJsYXlab29tIiwib3JpZW50ZWRPdmVybGF5Wm9vbSIsIm5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQiLCJjb2xvdXJzSW52ZXJ0ZWQiLCJwZXJzaXN0ZW50U3RhdGUiLCJzZXRQZXJzaXN0ZW50U3RhdGUiLCJnZXRQZXJzaXN0ZW50U3RhdGUiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQW1IZ0JBLGtCQUFrQjtlQUFsQkE7O0lBbEJBQyx5QkFBeUI7ZUFBekJBOztJQXhFQUMsV0FBVztlQUFYQTs7SUFaQUMsY0FBYztlQUFkQTs7SUEwQ0FDLGNBQWM7ZUFBZEE7O0lBb0VBQyxrQkFBa0I7ZUFBbEJBOztJQW5GQUMsV0FBVztlQUFYQTs7SUFpRUFDLHlCQUF5QjtlQUF6QkE7O0lBdEZBQyxjQUFjO2VBQWRBOztJQXlEQUMsY0FBYztlQUFkQTs7OzBCQTFFb0I7NEJBRW1COzs7Ozs7Ozs7Ozs7OztBQUV2RCxJQUFNLEFBQUVDLGVBQWlCQywrQkFBbUIsQ0FBcENEO0FBRVIsSUFBTUUsY0FBYyxNQUNkQyxRQUFRO0lBQ05ELGFBQUFBO0FBQ0Y7QUFFQyxTQUFTVDtJQUNkLElBQU0sQUFBRVMsY0FBZ0JDLE1BQWhCRDtJQUVSLE9BQU9BO0FBQ1Q7QUFFTyxTQUFTSixlQUFlSSxXQUFXO0lBQ3hDRSxPQUFPQyxNQUFNLENBQUNGLE9BQU87UUFDbkJELGFBQUFBO0lBQ0Y7QUFDRjtBQUVPLFNBQVNWO0lBQ2RjO0lBRUEsSUFBSUM7SUFFREEsV0FBYUosTUFBYkk7SUFFSCxJQUFNLEFBQUVMLGNBQWdCQyxNQUFoQkQsYUFDRk0sbUJBQW1CRCxRQUFRLENBQUNMLFlBQVksRUFBRSxHQUFHO0lBRW5ESyxXQUFXQyxrQkFBbUIsR0FBRztJQUVqQyxPQUFPRDtBQUNUO0FBRU8sU0FBU1gsWUFBWVcsUUFBUTtJQUNsQ0Q7SUFFQSxJQUFNLEFBQUVKLGNBQWdCQyxNQUFoQkQsYUFDRk0sbUJBQW1CRCxVQUFXLEdBQUc7SUFFcENBLFdBQWFKLE1BQWJJO0lBRUhILE9BQU9DLE1BQU0sQ0FBQ0UsVUFDWixxQkFBQ0wsYUFBY007SUFHakJDO0FBQ0Y7QUFFTyxTQUFTZjtJQUNkWTtJQUVBLElBQU1JLGFBQWFWLGdCQUNiRSxjQUFjVDtJQUVwQixJQUFJa0I7SUFFSixJQUFJRCxZQUFZOztjQUM0QlAsT0FBaEJRLGtCQUF2QkM7SUFDTCxPQUFPO1FBQ0ZELGNBQWdCUixNQUFoQlE7SUFDTDtJQUVBLElBQU1FLHNCQUFzQkYsV0FBVyxDQUFDVCxZQUFZLEVBQUUsR0FBRztJQUV6RFMsY0FBY0UscUJBQXNCLEdBQUc7SUFFdkMsT0FBT0Y7QUFDVDtBQUVPLFNBQVNaLGVBQWVZLFdBQVc7SUFDeENMO0lBRUEsSUFBTUksYUFBYVYsZ0JBQ2JFLGNBQWNUO0lBRXBCLElBQU1vQixzQkFBc0JGLGFBQWMsR0FBRztJQUU3QyxJQUFJRCxZQUFZOztjQUM0QlAsT0FBaEJRLGtCQUF2QkM7SUFDTCxPQUFPO1FBQ0ZELGNBQWdCUixNQUFoQlE7SUFDTDtJQUVBUCxPQUFPQyxNQUFNLENBQUNNLGFBQ1oscUJBQUNULGFBQWNXO0lBR2pCSjtBQUNGO0FBRU8sU0FBU2xCO0lBQ2RlO0lBRUEsSUFBTSxBQUFFUSx5QkFBMkJYLE1BQTNCVztJQUVSLE9BQU9BO0FBQ1Q7QUFFTyxTQUFTakIsMEJBQTBCaUIsc0JBQXNCO0lBQzlEUjtJQUVBRixPQUFPQyxNQUFNLENBQUNGLE9BQU87UUFDbkJXLHdCQUFBQTtJQUNGO0lBRUFMO0FBQ0Y7QUFFTyxTQUFTbkI7SUFDZGdCO0lBRUEsSUFBTSxBQUFFUyxrQkFBb0JaLE1BQXBCWTtJQUVSLE9BQU9BO0FBQ1Q7QUFFTyxTQUFTcEIsbUJBQW1Cb0IsZUFBZTtJQUNoRFQ7SUFFQUYsT0FBT0MsTUFBTSxDQUFDRixPQUFPO1FBQ25CWSxpQkFBQUE7SUFDRjtJQUVBTjtBQUNGO0FBRUEsU0FBU0E7SUFDUCxJQUFRRixXQUEwRkosTUFBMUZJLFVBQVVJLGNBQWdGUixNQUFoRlEsYUFBYUMsd0JBQW1FVCxNQUFuRVMsdUJBQXVCRSx5QkFBNENYLE1BQTVDVyx3QkFBd0JDLGtCQUFvQlosTUFBcEJZLGlCQUN4RUMsa0JBQWtCO1FBQ2hCVCxVQUFBQTtRQUNBSSxhQUFBQTtRQUNBQyx1QkFBQUE7UUFDQUUsd0JBQUFBO1FBQ0FDLGlCQUFBQTtJQUNGO0lBRU5FLElBQUFBLGdDQUFrQixFQUFDRDtBQUNyQjtBQUVBLFNBQVNWO0lBQ1AsSUFBTVUsa0JBQWtCRSxJQUFBQSxnQ0FBa0I7SUFFMUNkLE9BQU9DLE1BQU0sQ0FBQ0YsT0FBT2E7QUFDdkIifQ==
@@ -8,8 +8,8 @@ Object.defineProperty(exports, "default", {
8
8
  return FullScreenCheckboxDiv;
9
9
  }
10
10
  });
11
+ var _easymobile = require("easy-mobile");
11
12
  var _checkbox = /*#__PURE__*/ _interop_require_default(require("../../div/checkbox"));
12
- var _fullScreen = require("../../../utilities/fullScreen");
13
13
  function _assert_this_initialized(self) {
14
14
  if (self === void 0) {
15
15
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
@@ -113,6 +113,7 @@ function _create_super(Derived) {
113
113
  return _possible_constructor_return(this, result);
114
114
  };
115
115
  }
116
+ var isFullScreen = _easymobile.fullScreenUtilities.isFullScreen;
116
117
  var FullScreenCheckboxDiv = /*#__PURE__*/ function(CheckboxDiv) {
117
118
  _inherits(FullScreenCheckboxDiv, CheckboxDiv);
118
119
  var _super = _create_super(FullScreenCheckboxDiv);
@@ -130,7 +131,7 @@ var FullScreenCheckboxDiv = /*#__PURE__*/ function(CheckboxDiv) {
130
131
  {
131
132
  key: "update",
132
133
  value: function update() {
133
- var fullScreen = (0, _fullScreen.isFullScreen)();
134
+ var fullScreen = isFullScreen();
134
135
  fullScreen ? this.checkCheckbox() : this.uncheckCheckbox();
135
136
  }
136
137
  },
@@ -151,4 +152,4 @@ _define_property(FullScreenCheckboxDiv, "defaultProperties", {
151
152
  className: "full-screen"
152
153
  });
153
154
 
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy92aWV3L2Rpdi9jaGVja2JveC9mdWxsU2NyZWVuLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgQ2hlY2tib3hEaXYgZnJvbSBcIi4uLy4uL2Rpdi9jaGVja2JveFwiO1xuXG5pbXBvcnQgeyBpc0Z1bGxTY3JlZW4gfSBmcm9tIFwiLi4vLi4vLi4vdXRpbGl0aWVzL2Z1bGxTY3JlZW5cIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRnVsbFNjcmVlbkNoZWNrYm94RGl2IGV4dGVuZHMgQ2hlY2tib3hEaXYge1xuICBjaGFuZ2VIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgY29uc3QgY2hlY2tib3hDaGVja2VkID0gdGhpcy5pc0NoZWNrYm94Q2hlY2tlZCgpO1xuXG4gICAgY2hlY2tib3hDaGVja2VkID9cbiAgICAgIGNvbnRyb2xsZXIuZW50ZXJGdWxsU2NyZWVuKCkgOlxuICAgICAgICBjb250cm9sbGVyLmV4aXRGdWxsU2NyZWVuKCk7XG4gIH1cblxuICB1cGRhdGUoKSB7XG4gICAgY29uc3QgZnVsbFNjcmVlbiA9IGlzRnVsbFNjcmVlbigpO1xuXG4gICAgZnVsbFNjcmVlbiA/XG4gICAgICB0aGlzLmNoZWNrQ2hlY2tib3goKSA6XG4gICAgICAgIHRoaXMudW5jaGVja0NoZWNrYm94KCk7XG4gIH1cblxuICBwYXJlbnRDb250ZXh0KCkge1xuICAgIGNvbnN0IHVwZGF0ZUZ1bGxTY3JlZW5DaGVja2JveERpdiA9IHRoaXMudXBkYXRlLmJpbmQodGhpcyk7IC8vL1xuXG4gICAgcmV0dXJuICh7XG4gICAgICB1cGRhdGVGdWxsU2NyZWVuQ2hlY2tib3hEaXZcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBtZXNzYWdlID0gYEZ1bGwgc2NyZWVuXG4oZG91YmxlIHRhcCB0byBleGl0KWA7XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wZXJ0aWVzID0ge1xuICAgIGNsYXNzTmFtZTogXCJmdWxsLXNjcmVlblwiXG4gIH07XG59XG4iXSwibmFtZXMiOlsiRnVsbFNjcmVlbkNoZWNrYm94RGl2IiwiY2hhbmdlSGFuZGxlciIsImV2ZW50IiwiZWxlbWVudCIsImNoZWNrYm94Q2hlY2tlZCIsImlzQ2hlY2tib3hDaGVja2VkIiwiY29udHJvbGxlciIsImVudGVyRnVsbFNjcmVlbiIsImV4aXRGdWxsU2NyZWVuIiwidXBkYXRlIiwiZnVsbFNjcmVlbiIsImlzRnVsbFNjcmVlbiIsImNoZWNrQ2hlY2tib3giLCJ1bmNoZWNrQ2hlY2tib3giLCJwYXJlbnRDb250ZXh0IiwidXBkYXRlRnVsbFNjcmVlbkNoZWNrYm94RGl2IiwiYmluZCIsIkNoZWNrYm94RGl2IiwibWVzc2FnZSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBTXFCQTs7OytEQUpHOzBCQUVLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVkLElBQUEsQUFBTUEsc0NBQUQsQUFBTDtjQUFNQTsrQkFBQUE7YUFBQUE7Z0NBQUFBOzs7UUFDbkJDLGtEQUFBQSxpQkFBZ0IsU0FBQ0MsT0FBT0M7WUFDdEIsSUFBTUMsa0JBQWtCLE1BQUtDLGlCQUFpQjtZQUU5Q0Qsa0JBQ0VFLFdBQVdDLGVBQWUsS0FDeEJELFdBQVdFLGNBQWM7UUFDL0I7OztrQkFQbUJSOztZQVNuQlMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLGFBQWFDLElBQUFBLHdCQUFZO2dCQUUvQkQsYUFDRSxJQUFJLENBQUNFLGFBQWEsS0FDaEIsSUFBSSxDQUFDQyxlQUFlO1lBQzFCOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLDhCQUE4QixJQUFJLENBQUNOLE1BQU0sQ0FBQ08sSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHO2dCQUUvRCxPQUFRO29CQUNORCw2QkFBQUE7Z0JBQ0Y7WUFDRjs7O1dBdkJtQmY7RUFBOEJpQixpQkFBVztBQXlCNUQsaUJBekJtQmpCLHVCQXlCWmtCLFdBQVc7QUFHbEIsaUJBNUJtQmxCLHVCQTRCWm1CLHFCQUFvQjtJQUN6QkMsV0FBVztBQUNiIn0=
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy92aWV3L2Rpdi9jaGVja2JveC9mdWxsU2NyZWVuLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBmdWxsU2NyZWVuVXRpbGl0aWVzIH0gZnJvbSBcImVhc3ktbW9iaWxlXCI7XG5cbmltcG9ydCBDaGVja2JveERpdiBmcm9tIFwiLi4vLi4vZGl2L2NoZWNrYm94XCI7XG5cbmNvbnN0IHsgaXNGdWxsU2NyZWVuIH0gPSBmdWxsU2NyZWVuVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGdWxsU2NyZWVuQ2hlY2tib3hEaXYgZXh0ZW5kcyBDaGVja2JveERpdiB7XG4gIGNoYW5nZUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBjaGVja2JveENoZWNrZWQgPSB0aGlzLmlzQ2hlY2tib3hDaGVja2VkKCk7XG5cbiAgICBjaGVja2JveENoZWNrZWQgP1xuICAgICAgY29udHJvbGxlci5lbnRlckZ1bGxTY3JlZW4oKSA6XG4gICAgICAgIGNvbnRyb2xsZXIuZXhpdEZ1bGxTY3JlZW4oKTtcbiAgfVxuXG4gIHVwZGF0ZSgpIHtcbiAgICBjb25zdCBmdWxsU2NyZWVuID0gaXNGdWxsU2NyZWVuKCk7XG5cbiAgICBmdWxsU2NyZWVuID9cbiAgICAgIHRoaXMuY2hlY2tDaGVja2JveCgpIDpcbiAgICAgICAgdGhpcy51bmNoZWNrQ2hlY2tib3goKTtcbiAgfVxuXG4gIHBhcmVudENvbnRleHQoKSB7XG4gICAgY29uc3QgdXBkYXRlRnVsbFNjcmVlbkNoZWNrYm94RGl2ID0gdGhpcy51cGRhdGUuYmluZCh0aGlzKTsgLy8vXG5cbiAgICByZXR1cm4gKHtcbiAgICAgIHVwZGF0ZUZ1bGxTY3JlZW5DaGVja2JveERpdlxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIG1lc3NhZ2UgPSBgRnVsbCBzY3JlZW5cbihkb3VibGUgdGFwIHRvIGV4aXQpYDtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcImZ1bGwtc2NyZWVuXCJcbiAgfTtcbn1cbiJdLCJuYW1lcyI6WyJGdWxsU2NyZWVuQ2hlY2tib3hEaXYiLCJpc0Z1bGxTY3JlZW4iLCJmdWxsU2NyZWVuVXRpbGl0aWVzIiwiY2hhbmdlSGFuZGxlciIsImV2ZW50IiwiZWxlbWVudCIsImNoZWNrYm94Q2hlY2tlZCIsImlzQ2hlY2tib3hDaGVja2VkIiwiY29udHJvbGxlciIsImVudGVyRnVsbFNjcmVlbiIsImV4aXRGdWxsU2NyZWVuIiwidXBkYXRlIiwiZnVsbFNjcmVlbiIsImNoZWNrQ2hlY2tib3giLCJ1bmNoZWNrQ2hlY2tib3giLCJwYXJlbnRDb250ZXh0IiwidXBkYXRlRnVsbFNjcmVlbkNoZWNrYm94RGl2IiwiYmluZCIsIkNoZWNrYm94RGl2IiwibWVzc2FnZSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVFxQkE7OzswQkFOZTsrREFFWjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFeEIsSUFBTSxBQUFFQyxlQUFpQkMsK0JBQW1CLENBQXBDRDtBQUVPLElBQUEsQUFBTUQsc0NBQUQsQUFBTDtjQUFNQTsrQkFBQUE7YUFBQUE7Z0NBQUFBOzs7UUFDbkJHLGtEQUFBQSxpQkFBZ0IsU0FBQ0MsT0FBT0M7WUFDdEIsSUFBTUMsa0JBQWtCLE1BQUtDLGlCQUFpQjtZQUU5Q0Qsa0JBQ0VFLFdBQVdDLGVBQWUsS0FDeEJELFdBQVdFLGNBQWM7UUFDL0I7OztrQkFQbUJWOztZQVNuQlcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLGFBQWFYO2dCQUVuQlcsYUFDRSxJQUFJLENBQUNDLGFBQWEsS0FDaEIsSUFBSSxDQUFDQyxlQUFlO1lBQzFCOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLDhCQUE4QixJQUFJLENBQUNMLE1BQU0sQ0FBQ00sSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHO2dCQUUvRCxPQUFRO29CQUNORCw2QkFBQUE7Z0JBQ0Y7WUFDRjs7O1dBdkJtQmhCO0VBQThCa0IsaUJBQVc7QUF5QjVELGlCQXpCbUJsQix1QkF5QlptQixXQUFXO0FBR2xCLGlCQTVCbUJuQix1QkE0QlpvQixxQkFBb0I7SUFDekJDLFdBQVc7QUFDYiJ9
@@ -11,11 +11,9 @@ Object.defineProperty(exports, "default", {
11
11
  var _easywithstyle = /*#__PURE__*/ _interop_require_default(require("easy-with-style"));
12
12
  var _easy = require("easy");
13
13
  var _necessary = require("necessary");
14
+ var _easymobile = require("easy-mobile");
14
15
  var _div = /*#__PURE__*/ _interop_require_default(require("../div"));
15
16
  var _element = /*#__PURE__*/ _interop_require_default(require("../element"));
16
- var _touch = /*#__PURE__*/ _interop_require_default(require("../../mixins/touch"));
17
- var _fullsrean = /*#__PURE__*/ _interop_require_default(require("../../mixins/fullsrean"));
18
- var _fullScreen = require("../../utilities/fullScreen");
19
17
  var _fragment = require("../../utilities/fragment");
20
18
  var _element1 = require("../../utilities/element");
21
19
  var _state = require("../../state");
@@ -213,7 +211,7 @@ function _templateObject() {
213
211
  };
214
212
  return data;
215
213
  }
216
- var ENTER_KEY_CODE = _necessary.keyCodes.ENTER_KEY_CODE, ESCAPE_KEY_CODE = _necessary.keyCodes.ESCAPE_KEY_CODE, BACKSPACE_KEY_CODE = _necessary.keyCodes.BACKSPACE_KEY_CODE, ARROW_UP_KEY_CODE = _necessary.keyCodes.ARROW_UP_KEY_CODE, ARROW_DOWN_KEY_CODE = _necessary.keyCodes.ARROW_DOWN_KEY_CODE, ARROW_LEFT_KEY_CODE = _necessary.keyCodes.ARROW_LEFT_KEY_CODE, ARROW_RIGHT_KEY_CODE = _necessary.keyCodes.ARROW_RIGHT_KEY_CODE;
214
+ var isFullScreen = _easymobile.fullScreenUtilities.isFullScreen, ENTER_KEY_CODE = _necessary.keyCodes.ENTER_KEY_CODE, ESCAPE_KEY_CODE = _necessary.keyCodes.ESCAPE_KEY_CODE, BACKSPACE_KEY_CODE = _necessary.keyCodes.BACKSPACE_KEY_CODE, ARROW_UP_KEY_CODE = _necessary.keyCodes.ARROW_UP_KEY_CODE, ARROW_DOWN_KEY_CODE = _necessary.keyCodes.ARROW_DOWN_KEY_CODE, ARROW_LEFT_KEY_CODE = _necessary.keyCodes.ARROW_LEFT_KEY_CODE, ARROW_RIGHT_KEY_CODE = _necessary.keyCodes.ARROW_RIGHT_KEY_CODE;
217
215
  var OverlayDiv = /*#__PURE__*/ function(Element) {
218
216
  _inherits(OverlayDiv, Element);
219
217
  var _super = _create_super(OverlayDiv);
@@ -226,7 +224,7 @@ var OverlayDiv = /*#__PURE__*/ function(Element) {
226
224
  _this.updateOverlayZoom();
227
225
  });
228
226
  _define_property(_assert_this_initialized(_this), "doubleTapCustomHandler", function(event, element, top, left) {
229
- var fullScreen = (0, _fullScreen.isFullScreen)();
227
+ var fullScreen = isFullScreen();
230
228
  if (fullScreen) {
231
229
  controller.exitFullScreen();
232
230
  return;
@@ -242,10 +240,10 @@ var OverlayDiv = /*#__PURE__*/ function(Element) {
242
240
  var startZoom = _this.getStartZoom(), overlayZoom = startZoom * Math.sqrt(ratio); ///
243
241
  controller.zoomOverlay(overlayZoom);
244
242
  });
245
- _define_property(_assert_this_initialized(_this), "swipeRightCustomHandler", function(event, element) {
243
+ _define_property(_assert_this_initialized(_this), "swipeRightCustomHandler", function(event, element, top, left, spped) {
246
244
  _this.showLeftDiv();
247
245
  });
248
- _define_property(_assert_this_initialized(_this), "swipeLeftCustomHandler", function(event, element) {
246
+ _define_property(_assert_this_initialized(_this), "swipeLeftCustomHandler", function(event, element, top, left, spped) {
249
247
  _this.showRightDiv();
250
248
  });
251
249
  _define_property(_assert_this_initialized(_this), "swipeDownCustomHandler", function(event, element, top, left, speed) {
@@ -299,7 +297,7 @@ var OverlayDiv = /*#__PURE__*/ function(Element) {
299
297
  }
300
298
  case ESCAPE_KEY_CODE:
301
299
  {
302
- var fullScreen = (0, _fullScreen.isFullScreen)();
300
+ var fullScreen = isFullScreen();
303
301
  if (fullScreen) {
304
302
  controller.exitFullScreen();
305
303
  }
@@ -639,11 +637,11 @@ _define_property(OverlayDiv, "ignoredProperties", [
639
637
  _define_property(OverlayDiv, "defaultProperties", {
640
638
  className: "overlay"
641
639
  });
642
- Object.assign(OverlayDiv.prototype, _touch.default);
643
- Object.assign(OverlayDiv.prototype, _fullsrean.default);
640
+ Object.assign(OverlayDiv.prototype, _easymobile.touchMixins);
641
+ Object.assign(OverlayDiv.prototype, _easymobile.fullScreenMixins);
644
642
  var _default = (0, _easywithstyle.default)(OverlayDiv)(_templateObject());
645
643
  function defer(func) {
646
644
  setTimeout(func, 0);
647
645
  }
648
646
 
649
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92aWV3L2Rpdi9vdmVybGF5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgeyB3aW5kb3cgfSBmcm9tIFwiZWFzeVwiO1xuaW1wb3J0IHsga2V5Q29kZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBEaXYgZnJvbSBcIi4uL2RpdlwiO1xuaW1wb3J0IEVsZW1lbnQgZnJvbSBcIi4uL2VsZW1lbnRcIjtcbmltcG9ydCB0b3VjaE1peGlucyBmcm9tIFwiLi4vLi4vbWl4aW5zL3RvdWNoXCI7XG5pbXBvcnQgZnVsbFNjcmVlbk1peGlucyBmcm9tIFwiLi4vLi4vbWl4aW5zL2Z1bGxzcmVhblwiO1xuXG5pbXBvcnQgeyBpc0Z1bGxTY3JlZW4gfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2Z1bGxTY3JlZW5cIjtcbmltcG9ydCB7IHJlc2V0RnJhZ21lbnQgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2ZyYWdtZW50XCI7XG5pbXBvcnQgeyBlbGVtZW50c0Zyb21ET01FbGVtZW50cyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgc2Nyb2xsVG9BbmNob3IsIGZpbmREaXZCeUFuY2hvcklkIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5pbXBvcnQgeyBnZXRPdmVybGF5Wm9vbSBhcyBnZXRab29tLCBhcmVDb2xvdXJzSW52ZXJ0ZWQsIGFyZU5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQgfSBmcm9tIFwiLi4vLi4vc3RhdGVcIjtcbmltcG9ydCB7IFNDUk9MTF9ERUxBWSwgVVBfRElSRUNUSU9OLCBERUNFTEVSQVRJT04sIERPV05fRElSRUNUSU9OLCBPUEVOX01FTlVfVEFQX0FSRUFfSEVJR0hUIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuXG5jb25zdCB7IEVOVEVSX0tFWV9DT0RFLFxuICAgICAgICBFU0NBUEVfS0VZX0NPREUsXG4gICAgICAgIEJBQ0tTUEFDRV9LRVlfQ09ERSxcbiAgICAgICAgQVJST1dfVVBfS0VZX0NPREUsXG4gICAgICAgIEFSUk9XX0RPV05fS0VZX0NPREUsXG4gICAgICAgIEFSUk9XX0xFRlRfS0VZX0NPREUsXG4gICAgICAgIEFSUk9XX1JJR0hUX0tFWV9DT0RFIH0gPSBrZXlDb2RlcztcblxuY2xhc3MgT3ZlcmxheURpdiBleHRlbmRzIEVsZW1lbnQge1xuICBmdWxsU2NyZWVuQ2hhbmdlQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIGNvbnRyb2xsZXIudXBkYXRlRnVsbFNjcmVlbigpO1xuXG4gICAgdGhpcy51cGRhdGVPdmVybGF5Wm9vbSgpO1xuICB9XG5cbiAgZG91YmxlVGFwQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgdG9wLCBsZWZ0KSA9PiB7XG4gICAgY29uc3QgZnVsbFNjcmVlbiA9IGlzRnVsbFNjcmVlbigpO1xuXG4gICAgaWYgKGZ1bGxTY3JlZW4pIHtcbiAgICAgIGNvbnRyb2xsZXIuZXhpdEZ1bGxTY3JlZW4oKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQgPSBhcmVOYXRpdmVHZXN0dXJlc1Jlc3RvcmVkKCk7XG5cbiAgICBuYXRpdmVHZXN0dXJlc1Jlc3RvcmVkID9cbiAgICAgIGNvbnRyb2xsZXIuc3VwcHJlc3NOYXRpdmVHZXN0dXJlcygpIDpcbiAgICAgICAgY29udHJvbGxlci5yZXN0b3JlTmF0aXZlR2VzdHVyZXMoKTtcblxuICB9XG5cbiAgcGluY2hTdGFydEN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICBjb25zdCB6b29tID0gZ2V0Wm9vbSgpLFxuICAgICAgICAgIHN0YXJ0Wm9vbSA9IHpvb207IC8vL1xuXG4gICAgdGhpcy5zZXRTdGFydFpvb20oc3RhcnRab29tKTtcbiAgfVxuXG4gIHBpbmNoTW92ZUN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQsIHJhdGlvKSA9PiB7XG4gICAgY29uc3Qgc3RhcnRab29tID0gdGhpcy5nZXRTdGFydFpvb20oKSxcbiAgICAgICAgICBvdmVybGF5Wm9vbSA9IHN0YXJ0Wm9vbSAqIE1hdGguc3FydChyYXRpbyk7ICAvLy9cblxuICAgIGNvbnRyb2xsZXIuem9vbU92ZXJsYXkob3ZlcmxheVpvb20pO1xuICB9XG5cbiAgc3dpcGVSaWdodEN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICB0aGlzLnNob3dMZWZ0RGl2KCk7XG4gIH1cblxuICBzd2lwZUxlZnRDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgdGhpcy5zaG93UmlnaHREaXYoKTtcbiAgfVxuXG4gIHN3aXBlRG93bkN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQsIHRvcCwgbGVmdCwgc3BlZWQpID0+IHtcbiAgICBjb25zdCBkaXJlY3Rpb24gPSBET1dOX0RJUkVDVElPTjtcblxuICAgIHRoaXMuc3RhcnRTY3JvbGxpbmcoc3BlZWQsIGRpcmVjdGlvbik7XG4gIH1cblxuICBzd2lwZVVwQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgdG9wLCBsZWZ0LCBzcGVlZCkgPT4ge1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IFVQX0RJUkVDVElPTjtcblxuICAgIHRoaXMuc3RhcnRTY3JvbGxpbmcoc3BlZWQsIGRpcmVjdGlvbik7XG4gIH1cblxuICBkcmFnU3RhcnRDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50LCB0b3AsIGxlZnQpID0+IHtcbiAgICBjb25zdCBzY3JvbGxUb3AgPSB0aGlzLmdldFNjcm9sbFRvcCgpLFxuICAgICAgICAgIHN0YXJ0U2Nyb2xsVG9wID0gc2Nyb2xsVG9wOyAvLy9cblxuICAgIHRoaXMuc2V0U3RhcnRTY3JvbGxUb3Aoc3RhcnRTY3JvbGxUb3ApO1xuICB9XG5cbiAgZHJhZ0Rvd25DdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50LCB0b3AsIGxlZnQpID0+IHtcbiAgICBjb25zdCBzdGFydFNjcm9sbFRvcCA9IHRoaXMuZ2V0U3RhcnRTY3JvbGxUb3AoKTtcblxuICAgIGlmIChzdGFydFNjcm9sbFRvcCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHN0YXJ0U2Nyb2xsVG9wIC0gdG9wO1xuXG4gICAgdGhpcy5zZXRTY3JvbGxUb3Aoc2Nyb2xsVG9wKTtcbiAgfVxuXG4gIGRyYWdVcEN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQsIHRvcCwgbGVmdCkgPT4ge1xuICAgIGNvbnN0IHN0YXJ0U2Nyb2xsVG9wID0gdGhpcy5nZXRTdGFydFNjcm9sbFRvcCgpO1xuXG4gICAgaWYgKHN0YXJ0U2Nyb2xsVG9wID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gc3RhcnRTY3JvbGxUb3AgLSB0b3A7XG5cbiAgICB0aGlzLnNldFNjcm9sbFRvcChzY3JvbGxUb3ApO1xuICB9XG5cbiAgdGFwQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgdG9wLCBsZWZ0KSA9PiB7XG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5nZXRIZWlnaHQoKSxcbiAgICAgICAgICBib3R0b20gPSBoZWlnaHQgLSB0b3A7XG5cbiAgICBpZiAoYm90dG9tIDwgT1BFTl9NRU5VX1RBUF9BUkVBX0hFSUdIVCkge1xuICAgICAgY29udHJvbGxlci5vcGVuTWVudSgpO1xuICAgIH1cbiAgfVxuXG4gIGtleURvd25IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgY29uc3QgeyBrZXlDb2RlIH0gPSBldmVudDtcblxuICAgIHN3aXRjaCAoa2V5Q29kZSkge1xuICAgICAgY2FzZSBFTlRFUl9LRVlfQ09ERTpcbiAgICAgIGNhc2UgQVJST1dfUklHSFRfS0VZX0NPREU6IHtcbiAgICAgICAgdGhpcy5zaG93UmlnaHREaXYoKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBCQUNLU1BBQ0VfS0VZX0NPREU6XG4gICAgICBjYXNlIEFSUk9XX0xFRlRfS0VZX0NPREU6IHtcbiAgICAgICAgdGhpcy5zaG93TGVmdERpdigpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIEVTQ0FQRV9LRVlfQ09ERToge1xuICAgICAgICBjb25zdCBmdWxsU2NyZWVuID0gaXNGdWxsU2NyZWVuKCk7XG5cbiAgICAgICAgaWYgKGZ1bGxTY3JlZW4pIHtcbiAgICAgICAgICBjb250cm9sbGVyLmV4aXRGdWxsU2NyZWVuKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb250cm9sbGVyLmNsb3NlTWVudSgpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIEFSUk9XX1VQX0tFWV9DT0RFOiB7XG4gICAgICAgIHRoaXMuc2hvd0ZpcnN0RGl2KCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgQVJST1dfRE9XTl9LRVlfQ09ERToge1xuICAgICAgICB0aGlzLnNob3dMYXN0RGl2KCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2Nyb2xsVG9BbmNob3IoYW5jaG9ySWQpIHtcbiAgICBsZXQgZGl2O1xuXG4gICAgZGl2ID0gZmluZERpdkJ5QW5jaG9ySWQoYW5jaG9ySWQpO1xuXG4gICAgY29uc3QgbmV4dERpdiA9IGRpdjsgIC8vL1xuXG4gICAgZGl2ID0gdGhpcy5maW5kRGl2KCk7XG5cbiAgICBjb25zdCBwcmV2aW91c0RpdiA9IGRpdjsgIC8vL1xuXG4gICAgY29uc3QgZGl2cyA9IHRoaXMuZ2V0RGl2cygpLFxuICAgICAgICAgIG5leHRJbmRleCA9IGRpdnMuaW5kZXhPZihuZXh0RGl2KSwgIC8vL1xuICAgICAgICAgIHByZXZpb3VzSW5kZXggPSBkaXZzLmluZGV4T2YocHJldmlvdXNEaXYpOyAgLy8vXG5cbiAgICB0aGlzLnNob3dOZXh0RGl2KG5leHRJbmRleCwgcHJldmlvdXNJbmRleCwgKCkgPT4ge1xuICAgICAgc2Nyb2xsVG9BbmNob3IoYW5jaG9ySWQpO1xuICAgIH0pO1xuICB9XG5cbiAgc2Nyb2xsVG9Ub3AoKSB7XG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gMDtcblxuICAgIHRoaXMuc2V0U2Nyb2xsVG9wKHNjcm9sbFRvcCk7XG4gIH1cblxuICBzdG9wU2Nyb2xsaW5nKCkge1xuICAgIGxldCBpbnRlcnZhbCA9IHRoaXMuZ2V0SW50ZXJ2YWwoKTtcblxuICAgIGlmIChpbnRlcnZhbCAhPT0gbnVsbCkge1xuICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG5cbiAgICAgIGludGVydmFsID0gbnVsbDtcblxuICAgICAgdGhpcy5zZXRJbnRlcnZhbChpbnRlcnZhbCk7XG4gICAgfVxuICB9XG5cbiAgc3RhcnRTY3JvbGxpbmcoc3BlZWQsIGRpcmVjdGlvbikge1xuICAgIGxldCBzY3JvbGxUb3AgPSB0aGlzLmdldFNjcm9sbFRvcCgpO1xuXG4gICAgc2Nyb2xsVG9wICs9IHNwZWVkICogU0NST0xMX0RFTEFZO1xuXG4gICAgdGhpcy5zZXRTY3JvbGxUb3Aoc2Nyb2xsVG9wKTtcblxuICAgIGxldCBpbnRlcnZhbCA9IHRoaXMuZ2V0SW50ZXJ2YWwoKTtcblxuICAgIGlmIChpbnRlcnZhbCAhPT0gbnVsbCkge1xuICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG4gICAgfVxuXG4gICAgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBzcGVlZCA9IHNwZWVkIC0gZGlyZWN0aW9uICogREVDRUxFUkFUSU9OO1xuXG4gICAgICBpZiAoKHNwZWVkICogZGlyZWN0aW9uKSA8IDApIHtcbiAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG5cbiAgICAgICAgaW50ZXJ2YWwgPSBudWxsO1xuXG4gICAgICAgIHRoaXMuc2V0SW50ZXJ2YWwoaW50ZXJ2YWwpO1xuICAgICAgfVxuXG4gICAgICBsZXQgc2Nyb2xsVG9wID0gdGhpcy5nZXRTY3JvbGxUb3AoKTtcblxuICAgICAgc2Nyb2xsVG9wICs9IHNwZWVkICogU0NST0xMX0RFTEFZO1xuXG4gICAgICB0aGlzLnNldFNjcm9sbFRvcChzY3JvbGxUb3ApO1xuICAgIH0sIFNDUk9MTF9ERUxBWSk7XG5cbiAgICB0aGlzLnNldEludGVydmFsKGludGVydmFsKTtcbiAgfVxuXG4gIGVudGVyRnVsbFNjcmVlbigpIHtcbiAgICB0aGlzLnJlcXVlc3RGdWxsU2NyZWVuKCk7XG4gIH1cblxuICB1cGRhdGVPdmVybGF5Wm9vbSgpIHtcbiAgICBjb25zdCBkaXYgPSB0aGlzLmZpbmREaXYoKSxcbiAgICAgICAgICB6b29tID0gZ2V0Wm9vbSgpO1xuXG4gICAgZGl2Lnpvb20oem9vbSk7XG4gIH1cblxuICB1cGRhdGVPdmVybGF5Q29sb3VycygpIHtcbiAgICBjb25zdCBjb2xvdXJzSW52ZXJ0ZWQgPSBhcmVDb2xvdXJzSW52ZXJ0ZWQoKTtcblxuICAgIGNvbG91cnNJbnZlcnRlZCA/XG4gICAgICB0aGlzLmFkZENsYXNzKFwiaW52ZXJ0ZWQtY29sb3Vyc1wiKSA6XG4gICAgICAgIHRoaXMucmVtb3ZlQ2xhc3MoXCJpbnZlcnRlZC1jb2xvdXJzXCIpO1xuICB9XG5cbiAgdXBkYXRlTmF0aXZlR2VzdHVyZXMoKSB7XG4gICAgY29uc3QgbmF0aXZlR2VzdHVyZXNSZXN0b3JlZCA9IGFyZU5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQoKTtcblxuICAgIG5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQgP1xuICAgICAgdGhpcy5hZGRDbGFzcyhcIm5hdGl2ZS1nZXN0dXJlc1wiKSA6XG4gICAgICAgIHRoaXMucmVtb3ZlQ2xhc3MoXCJuYXRpdmUtZ2VzdHVyZXNcIik7XG5cbiAgICBuYXRpdmVHZXN0dXJlc1Jlc3RvcmVkID9cbiAgICAgIHRoaXMuZGlzYWJsZUN1c3RvbUdlc3R1cmVzKCkgOlxuICAgICAgICB0aGlzLmVuYWJsZUN1c3RvbUdlc3R1cmVzKCk7XG4gIH1cblxuICBhcmVOYXRpdmVHZXN0dXJlc1Jlc3RvcmVkKCkge1xuICAgIGNvbnN0IG5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQgPSB0aGlzLmhhc0NsYXNzKFwibmF0aXZlLWdlc3R1cmVzXCIpO1xuXG4gICAgcmV0dXJuIG5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQ7XG4gIH1cblxuICBzaG93UmlnaHREaXYoKSB7XG4gICAgY29uc3QgZGl2ID0gdGhpcy5maW5kRGl2KCksXG4gICAgICAgICAgZGl2cyA9IHRoaXMuZ2V0RGl2cygpLFxuICAgICAgICAgIGRpdnNMZW5ndGggPSBkaXZzLmxlbmd0aCxcbiAgICAgICAgICBpbmRleCA9IGRpdnMuaW5kZXhPZihkaXYpLFxuICAgICAgICAgIG5leHRJbmRleCA9IGluZGV4ICsgMSxcbiAgICAgICAgICBwcmV2aW91c0luZGV4ID0gaW5kZXg7ICAvLy9cblxuICAgIGlmIChuZXh0SW5kZXggPT09IGRpdnNMZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3dOZXh0RGl2KG5leHRJbmRleCwgcHJldmlvdXNJbmRleCk7XG4gIH1cblxuICBzaG93TGVmdERpdigpIHtcbiAgICBjb25zdCBkaXYgPSB0aGlzLmZpbmREaXYoKSxcbiAgICAgICAgICBkaXZzID0gdGhpcy5nZXREaXZzKCksXG4gICAgICAgICAgaW5kZXggPSBkaXZzLmluZGV4T2YoZGl2KSxcbiAgICAgICAgICBuZXh0SW5kZXggPSBpbmRleCAtIDEsXG4gICAgICAgICAgcHJldmlvdXNJbmRleCA9IGluZGV4OyAgLy8vXG5cbiAgICBpZiAobmV4dEluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd05leHREaXYobmV4dEluZGV4LCBwcmV2aW91c0luZGV4KTtcbiAgfVxuXG4gIHNob3dMYXN0RGl2KCkge1xuICAgIGNvbnN0IGRpdiA9IHRoaXMuZmluZERpdigpLFxuICAgICAgICAgIGRpdnMgPSB0aGlzLmdldERpdnMoKSxcbiAgICAgICAgICBkaXZzTGVuZ3RoID0gZGl2cy5sZW5ndGgsXG4gICAgICAgICAgaW5kZXggPSAoZGl2ID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgIC0xIDpcbiAgICAgICAgICAgICAgICAgICAgICBkaXZzLmluZGV4T2YoZGl2KSxcbiAgICAgICAgICBuZXh0SW5kZXggPSBkaXZzTGVuZ3RoIC0gMSxcbiAgICAgICAgICBwcmV2aW91c0luZGV4ID0gaW5kZXg7ICAvLy9cblxuICAgIGlmIChuZXh0SW5kZXggPT09IHByZXZpb3VzSW5kZXgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3dOZXh0RGl2KG5leHRJbmRleCwgcHJldmlvdXNJbmRleCk7XG4gIH1cblxuICBzaG93Rmlyc3REaXYoKSB7XG4gICAgY29uc3QgZGl2ID0gdGhpcy5maW5kRGl2KCksXG4gICAgICAgICAgZGl2cyA9IHRoaXMuZ2V0RGl2cygpLFxuICAgICAgICAgIGluZGV4ID0gKGRpdiA9PT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAtMSA6XG4gICAgICAgICAgICAgICAgICAgICAgZGl2cy5pbmRleE9mKGRpdiksXG4gICAgICAgICAgbmV4dEluZGV4ID0gMCxcbiAgICAgICAgICBwcmV2aW91c0luZGV4ID0gaW5kZXg7ICAvLy9cblxuICAgIGlmIChuZXh0SW5kZXggPT09IHByZXZpb3VzSW5kZXgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3dOZXh0RGl2KG5leHRJbmRleCwgcHJldmlvdXNJbmRleCk7XG4gIH1cblxuICBzaG93TmV4dERpdihuZXh0SW5kZXgsIHByZXZpb3VzSW5kZXgsIGRvbmUgPSAoKSA9PiB7fSkge1xuICAgIHJlc2V0RnJhZ21lbnQoKTtcblxuICAgIGNvbnN0IGRpdnMgPSB0aGlzLmdldERpdnMoKTtcblxuICAgIGlmIChwcmV2aW91c0luZGV4ICE9PSAtMSkge1xuICAgICAgY29uc3QgcHJldmlvdXNEaXYgPSBkaXZzW3ByZXZpb3VzSW5kZXhdO1xuXG4gICAgICBwcmV2aW91c0Rpdi5oaWRlKCk7XG4gICAgfVxuXG4gICAgY29uc3Qgem9vbSA9IGdldFpvb20oKSxcbiAgICAgICAgICBuZXh0RGl2ID0gZGl2c1tuZXh0SW5kZXhdO1xuXG4gICAgdGhpcy5zdG9wU2Nyb2xsaW5nKCk7XG5cbiAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XG5cbiAgICBuZXh0RGl2Lnpvb20oem9vbSk7XG5cbiAgICBuZXh0RGl2LnNob3coKTtcblxuICAgIGRlZmVyKCgpID0+IHtcbiAgICAgIGNvbnN0IGJhY2tncm91bmRDb2xvdXIgPSBuZXh0RGl2LmdldEJhY2tncm91bmRDb2xvdXIoKTtcblxuICAgICAgdGhpcy5zZXRCYWNrZ3JvdW5kQ29sb3VyKGJhY2tncm91bmRDb2xvdXIpO1xuXG4gICAgICBkb25lKCk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRCYWNrZ3JvdW5kQ29sb3VyKGJhY2tncm91bmRDb2xvdXIpIHtcbiAgICBjb25zdCBiYWNrZ3JvdW5kQ29sb3IgPSBiYWNrZ3JvdW5kQ29sb3VyLCAvLy9cbiAgICAgICAgICBjc3MgPSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3JcbiAgICAgICAgICB9O1xuXG4gICAgdGhpcy5jc3MoY3NzKTtcbiAgfVxuXG4gIGZpbmREaXYoKSB7XG4gICAgY29uc3QgZGl2cyA9IHRoaXMuZ2V0RGl2cygpLFxuICAgICAgICAgIGRpdiA9IGRpdnMuZmluZCgoZGl2KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzaG93aW5nID0gZGl2LmlzU2hvd2luZygpO1xuXG4gICAgICAgICAgICBpZiAoc2hvd2luZykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIGRpdjtcbiAgfVxuXG4gIGdldERpdnMoKSB7XG4gICAgY29uc3QgY2hpbGRFbGVtZW50cyA9IHRoaXMuZ2V0Q2hpbGRFbGVtZW50cygpLFxuICAgICAgICAgIGRpdnMgPSBjaGlsZEVsZW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBkaXZzO1xuICB9XG5cbiAgZ2V0SW50ZXJ2YWwoKSB7XG4gICAgY29uc3QgeyBpbnRlcnZhbCB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gICAgcmV0dXJuIGludGVydmFsO1xuICB9XG5cbiAgc2V0SW50ZXJ2YWwoaW50ZXJ2YWwpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICAgIGludGVydmFsXG4gICAgfSk7XG4gIH1cblxuICBnZXRTdGFydFpvb20oKSB7XG4gICAgY29uc3QgeyBzdGFydFpvb20gfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICAgIHJldHVybiBzdGFydFpvb207XG4gIH1cblxuICBzZXRTdGFydFpvb20oc3RhcnRab29tKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgICBzdGFydFpvb21cbiAgICB9KTtcbiAgfVxuXG4gIGdldFN0YXJ0U2Nyb2xsVG9wKCkge1xuICAgIGNvbnN0IHsgc3RhcnRTY3JvbGxUb3AgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICAgIHJldHVybiBzdGFydFNjcm9sbFRvcDtcbiAgfVxuXG4gIHNldFN0YXJ0U2Nyb2xsVG9wKHN0YXJ0U2Nyb2xsVG9wKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgICBzdGFydFNjcm9sbFRvcFxuICAgIH0pO1xuICB9XG5cbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xuICAgIGNvbnN0IGludGVydmFsID0gbnVsbCxcbiAgICAgICAgICBzdGFydFpvb20gPSBudWxsLFxuICAgICAgICAgIHN0YXJ0U2Nyb2xsVG9wID0gbnVsbDtcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgaW50ZXJ2YWwsXG4gICAgICBzdGFydFpvb20sXG4gICAgICBzdGFydFNjcm9sbFRvcFxuICAgIH0pO1xuICB9XG5cbiAgZGlkTW91bnQoKSB7XG4gICAgd2luZG93Lm9uS2V5RG93bih0aGlzLmtleURvd25IYW5kbGVyKTtcblxuICAgIHRoaXMub25DdXN0b21UYXAodGhpcy50YXBDdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9uQ3VzdG9tRHJhZ1VwKHRoaXMuZHJhZ1VwQ3VzdG9tSGFuZGxlcik7XG4gICAgdGhpcy5vbkN1c3RvbURyYWdEb3duKHRoaXMuZHJhZ0Rvd25DdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9uQ3VzdG9tRHJhZ1N0YXJ0KHRoaXMuZHJhZ1N0YXJ0Q3VzdG9tSGFuZGxlcik7XG4gICAgdGhpcy5vbkN1c3RvbVN3aXBlVXAodGhpcy5zd2lwZVVwQ3VzdG9tSGFuZGxlcik7XG4gICAgdGhpcy5vbkN1c3RvbVN3aXBlRG93bih0aGlzLnN3aXBlRG93bkN1c3RvbUhhbmRsZXIpO1xuICAgIHRoaXMub25DdXN0b21Td2lwZUxlZnQodGhpcy5zd2lwZUxlZnRDdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9uQ3VzdG9tU3dpcGVSaWdodCh0aGlzLnN3aXBlUmlnaHRDdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9uQ3VzdG9tUGluY2hNb3ZlKHRoaXMucGluY2hNb3ZlQ3VzdG9tSGFuZGxlcik7XG4gICAgdGhpcy5vbkN1c3RvbVBpbmNoU3RhcnQodGhpcy5waW5jaFN0YXJ0Q3VzdG9tSGFuZGxlcik7XG4gICAgdGhpcy5vbkN1c3RvbURvdWJsZVRhcCh0aGlzLmRvdWJsZVRhcEN1c3RvbUhhbmRsZXIpO1xuXG4gICAgdGhpcy5vbkN1c3RvbUZ1bGxTY3JlZW5DaGFuZ2UodGhpcy5mdWxsU2NyZWVuQ2hhbmdlQ3VzdG9tSGFuZGxlcik7XG5cbiAgICB0aGlzLmVuYWJsZUZ1bGxTY3JlZW4oKTtcblxuICAgIHRoaXMuZW5hYmxlVG91Y2goKTtcbiAgfVxuXG4gIHdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMuZGlzYWJsZVRvdWNoKCk7XG5cbiAgICB0aGlzLmRpc2FibGVGdWxsU2NyZWVuKCk7XG5cbiAgICB0aGlzLm9mZkN1c3RvbVRhcCh0aGlzLnRhcEN1c3RvbUhhbmRsZXIpO1xuICAgIHRoaXMub2ZmQ3VzdG9tRHJhZ1VwKHRoaXMuZHJhZ1VwQ3VzdG9tSGFuZGxlcik7XG4gICAgdGhpcy5vZmZDdXN0b21EcmFnRG93bih0aGlzLmRyYWdEb3duQ3VzdG9tSGFuZGxlcik7XG4gICAgdGhpcy5vZmZDdXN0b21EcmFnU3RhcnQodGhpcy5kcmFnU3RhcnRDdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9mZkN1c3RvbVN3aXBlVXAodGhpcy5zd2lwZVVwQ3VzdG9tSGFuZGxlcik7XG4gICAgdGhpcy5vZmZDdXN0b21Td2lwZURvd24odGhpcy5zd2lwZURvd25DdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9mZkN1c3RvbVN3aXBlTGVmdCh0aGlzLnN3aXBlTGVmdEN1c3RvbUhhbmRsZXIpO1xuICAgIHRoaXMub2ZmQ3VzdG9tU3dpcGVSaWdodCh0aGlzLnN3aXBlUmlnaHRDdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9mZkN1c3RvbVBpbmNoTW92ZSh0aGlzLnBpbmNoTW92ZUN1c3RvbUhhbmRsZXIpO1xuICAgIHRoaXMub2ZmQ3VzdG9tUGluY2hTdGFydCh0aGlzLnBpbmNoU3RhcnRDdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9mZkN1c3RvbURvdWJsZVRhcCh0aGlzLmRvdWJsZVRhcEN1c3RvbUhhbmRsZXIpO1xuXG4gICAgdGhpcy5vZmZDdXN0b21GdWxsU2NyZWVuQ2hhbmdlKHRoaXMuZnVsbFNjcmVlbkNoYW5nZUN1c3RvbUhhbmRsZXIpO1xuXG4gICAgd2luZG93Lm9mZktleURvd24odGhpcy5rZXlEb3duSGFuZGxlcik7XG4gIH1cblxuICBjaGlsZEVsZW1lbnRzKCkge1xuICAgIGNvbnN0IHsgZGl2RE9NRWxlbWVudHMgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICBkaXZzID0gZWxlbWVudHNGcm9tRE9NRWxlbWVudHMoZGl2RE9NRWxlbWVudHMsIERpdiksXG4gICAgICAgICAgY2hpbGRFbGVtZW50cyA9IFtcbiAgICAgICAgICAgIC4uLmRpdnNcbiAgICAgICAgICBdO1xuXG4gICAgcmV0dXJuIGNoaWxkRWxlbWVudHM7XG4gIH1cblxuICBwYXJlbnRDb250ZXh0KCkge1xuICAgIGNvbnN0IHNob3dGaXJzdERpdiA9IHRoaXMuc2hvd0ZpcnN0RGl2LmJpbmQodGhpcyksXG4gICAgICAgICAgc2Nyb2xsVG9BbmNob3IgPSB0aGlzLnNjcm9sbFRvQW5jaG9yLmJpbmQodGhpcyksXG4gICAgICAgICAgZXhpdEZ1bGxTY3JlZW4gPSB0aGlzLmV4aXRGdWxsU2NyZWVuLmJpbmQodGhpcyksXG4gICAgICAgICAgZW50ZXJGdWxsU2NyZWVuID0gdGhpcy5lbnRlckZ1bGxTY3JlZW4uYmluZCh0aGlzKSxcbiAgICAgICAgICB1cGRhdGVPdmVybGF5Wm9vbSA9IHRoaXMudXBkYXRlT3ZlcmxheVpvb20uYmluZCh0aGlzKSxcbiAgICAgICAgICB1cGRhdGVPdmVybGF5Q29sb3VycyA9IHRoaXMudXBkYXRlT3ZlcmxheUNvbG91cnMuYmluZCh0aGlzKSxcbiAgICAgICAgICB1cGRhdGVOYXRpdmVHZXN0dXJlcyA9IHRoaXMudXBkYXRlTmF0aXZlR2VzdHVyZXMuYmluZCh0aGlzKTtcblxuICAgIHJldHVybiAoe1xuICAgICAgc2hvd0ZpcnN0RGl2LFxuICAgICAgc2Nyb2xsVG9BbmNob3IsXG4gICAgICBleGl0RnVsbFNjcmVlbixcbiAgICAgIGVudGVyRnVsbFNjcmVlbixcbiAgICAgIHVwZGF0ZU92ZXJsYXlab29tLFxuICAgICAgdXBkYXRlT3ZlcmxheUNvbG91cnMsXG4gICAgICB1cGRhdGVOYXRpdmVHZXN0dXJlc1xuICAgIH0pO1xuICB9XG5cbiAgaW5pdGlhbGlzZSgpIHtcbiAgICB0aGlzLmFzc2lnbkNvbnRleHQoKTtcblxuICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XG4gIH1cblxuICBzdGF0aWMgdGFnTmFtZSA9IFwiZGl2XCI7XG5cbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xuICAgIFwiZGl2RE9NRWxlbWVudHNcIlxuICBdO1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwib3ZlcmxheVwiXG4gIH07XG59XG5cbk9iamVjdC5hc3NpZ24oT3ZlcmxheURpdi5wcm90b3R5cGUsIHRvdWNoTWl4aW5zKTtcbk9iamVjdC5hc3NpZ24oT3ZlcmxheURpdi5wcm90b3R5cGUsIGZ1bGxTY3JlZW5NaXhpbnMpO1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGUoT3ZlcmxheURpdilgXG4gIFxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgICBcbiAgLm5hdGl2ZS1nZXN0dXJlcyB7XG4gICAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgICB0b3VjaC1hY3Rpb246IGF1dG87XG4gIH1cbiAgXG4gIC5pbnZlcnRlZC1jb2xvdXJzIHtcbiAgICBmaWx0ZXI6IGludmVydCgxKTtcbiAgfVxuICAgIFxuYDtcblxuZnVuY3Rpb24gZGVmZXIoZnVuYykge1xuICBzZXRUaW1lb3V0KGZ1bmMsIDApO1xufVxuIl0sIm5hbWVzIjpbIkVOVEVSX0tFWV9DT0RFIiwia2V5Q29kZXMiLCJFU0NBUEVfS0VZX0NPREUiLCJCQUNLU1BBQ0VfS0VZX0NPREUiLCJBUlJPV19VUF9LRVlfQ09ERSIsIkFSUk9XX0RPV05fS0VZX0NPREUiLCJBUlJPV19MRUZUX0tFWV9DT0RFIiwiQVJST1dfUklHSFRfS0VZX0NPREUiLCJPdmVybGF5RGl2IiwiZnVsbFNjcmVlbkNoYW5nZUN1c3RvbUhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJjb250cm9sbGVyIiwidXBkYXRlRnVsbFNjcmVlbiIsInVwZGF0ZU92ZXJsYXlab29tIiwiZG91YmxlVGFwQ3VzdG9tSGFuZGxlciIsInRvcCIsImxlZnQiLCJmdWxsU2NyZWVuIiwiaXNGdWxsU2NyZWVuIiwiZXhpdEZ1bGxTY3JlZW4iLCJuYXRpdmVHZXN0dXJlc1Jlc3RvcmVkIiwiYXJlTmF0aXZlR2VzdHVyZXNSZXN0b3JlZCIsInN1cHByZXNzTmF0aXZlR2VzdHVyZXMiLCJyZXN0b3JlTmF0aXZlR2VzdHVyZXMiLCJwaW5jaFN0YXJ0Q3VzdG9tSGFuZGxlciIsInpvb20iLCJnZXRab29tIiwic3RhcnRab29tIiwic2V0U3RhcnRab29tIiwicGluY2hNb3ZlQ3VzdG9tSGFuZGxlciIsInJhdGlvIiwiZ2V0U3RhcnRab29tIiwib3ZlcmxheVpvb20iLCJNYXRoIiwic3FydCIsInpvb21PdmVybGF5Iiwic3dpcGVSaWdodEN1c3RvbUhhbmRsZXIiLCJzaG93TGVmdERpdiIsInN3aXBlTGVmdEN1c3RvbUhhbmRsZXIiLCJzaG93UmlnaHREaXYiLCJzd2lwZURvd25DdXN0b21IYW5kbGVyIiwic3BlZWQiLCJkaXJlY3Rpb24iLCJET1dOX0RJUkVDVElPTiIsInN0YXJ0U2Nyb2xsaW5nIiwic3dpcGVVcEN1c3RvbUhhbmRsZXIiLCJVUF9ESVJFQ1RJT04iLCJkcmFnU3RhcnRDdXN0b21IYW5kbGVyIiwic2Nyb2xsVG9wIiwiZ2V0U2Nyb2xsVG9wIiwic3RhcnRTY3JvbGxUb3AiLCJzZXRTdGFydFNjcm9sbFRvcCIsImRyYWdEb3duQ3VzdG9tSGFuZGxlciIsImdldFN0YXJ0U2Nyb2xsVG9wIiwic2V0U2Nyb2xsVG9wIiwiZHJhZ1VwQ3VzdG9tSGFuZGxlciIsInRhcEN1c3RvbUhhbmRsZXIiLCJoZWlnaHQiLCJnZXRIZWlnaHQiLCJib3R0b20iLCJPUEVOX01FTlVfVEFQX0FSRUFfSEVJR0hUIiwib3Blbk1lbnUiLCJrZXlEb3duSGFuZGxlciIsImtleUNvZGUiLCJjbG9zZU1lbnUiLCJzaG93Rmlyc3REaXYiLCJzaG93TGFzdERpdiIsInNjcm9sbFRvQW5jaG9yIiwiYW5jaG9ySWQiLCJkaXYiLCJmaW5kRGl2QnlBbmNob3JJZCIsIm5leHREaXYiLCJmaW5kRGl2IiwicHJldmlvdXNEaXYiLCJkaXZzIiwiZ2V0RGl2cyIsIm5leHRJbmRleCIsImluZGV4T2YiLCJwcmV2aW91c0luZGV4Iiwic2hvd05leHREaXYiLCJzY3JvbGxUb1RvcCIsInN0b3BTY3JvbGxpbmciLCJpbnRlcnZhbCIsImdldEludGVydmFsIiwiY2xlYXJJbnRlcnZhbCIsInNldEludGVydmFsIiwiU0NST0xMX0RFTEFZIiwiREVDRUxFUkFUSU9OIiwiZW50ZXJGdWxsU2NyZWVuIiwicmVxdWVzdEZ1bGxTY3JlZW4iLCJ1cGRhdGVPdmVybGF5Q29sb3VycyIsImNvbG91cnNJbnZlcnRlZCIsImFyZUNvbG91cnNJbnZlcnRlZCIsImFkZENsYXNzIiwicmVtb3ZlQ2xhc3MiLCJ1cGRhdGVOYXRpdmVHZXN0dXJlcyIsImRpc2FibGVDdXN0b21HZXN0dXJlcyIsImVuYWJsZUN1c3RvbUdlc3R1cmVzIiwiaGFzQ2xhc3MiLCJkaXZzTGVuZ3RoIiwibGVuZ3RoIiwiaW5kZXgiLCJkb25lIiwicmVzZXRGcmFnbWVudCIsImhpZGUiLCJzaG93IiwiZGVmZXIiLCJiYWNrZ3JvdW5kQ29sb3VyIiwiZ2V0QmFja2dyb3VuZENvbG91ciIsInNldEJhY2tncm91bmRDb2xvdXIiLCJiYWNrZ3JvdW5kQ29sb3IiLCJjc3MiLCJmaW5kIiwic2hvd2luZyIsImlzU2hvd2luZyIsImNoaWxkRWxlbWVudHMiLCJnZXRDaGlsZEVsZW1lbnRzIiwiZ2V0U3RhdGUiLCJ1cGRhdGVTdGF0ZSIsInNldEluaXRpYWxTdGF0ZSIsInNldFN0YXRlIiwiZGlkTW91bnQiLCJ3aW5kb3ciLCJvbktleURvd24iLCJvbkN1c3RvbVRhcCIsIm9uQ3VzdG9tRHJhZ1VwIiwib25DdXN0b21EcmFnRG93biIsIm9uQ3VzdG9tRHJhZ1N0YXJ0Iiwib25DdXN0b21Td2lwZVVwIiwib25DdXN0b21Td2lwZURvd24iLCJvbkN1c3RvbVN3aXBlTGVmdCIsIm9uQ3VzdG9tU3dpcGVSaWdodCIsIm9uQ3VzdG9tUGluY2hNb3ZlIiwib25DdXN0b21QaW5jaFN0YXJ0Iiwib25DdXN0b21Eb3VibGVUYXAiLCJvbkN1c3RvbUZ1bGxTY3JlZW5DaGFuZ2UiLCJlbmFibGVGdWxsU2NyZWVuIiwiZW5hYmxlVG91Y2giLCJ3aWxsVW5tb3VudCIsImRpc2FibGVUb3VjaCIsImRpc2FibGVGdWxsU2NyZWVuIiwib2ZmQ3VzdG9tVGFwIiwib2ZmQ3VzdG9tRHJhZ1VwIiwib2ZmQ3VzdG9tRHJhZ0Rvd24iLCJvZmZDdXN0b21EcmFnU3RhcnQiLCJvZmZDdXN0b21Td2lwZVVwIiwib2ZmQ3VzdG9tU3dpcGVEb3duIiwib2ZmQ3VzdG9tU3dpcGVMZWZ0Iiwib2ZmQ3VzdG9tU3dpcGVSaWdodCIsIm9mZkN1c3RvbVBpbmNoTW92ZSIsIm9mZkN1c3RvbVBpbmNoU3RhcnQiLCJvZmZDdXN0b21Eb3VibGVUYXAiLCJvZmZDdXN0b21GdWxsU2NyZWVuQ2hhbmdlIiwib2ZmS2V5RG93biIsImRpdkRPTUVsZW1lbnRzIiwicHJvcGVydGllcyIsImVsZW1lbnRzRnJvbURPTUVsZW1lbnRzIiwiRGl2IiwicGFyZW50Q29udGV4dCIsImJpbmQiLCJpbml0aWFsaXNlIiwiYXNzaWduQ29udGV4dCIsIkVsZW1lbnQiLCJ0YWdOYW1lIiwiaWdub3JlZFByb3BlcnRpZXMiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSIsIk9iamVjdCIsImFzc2lnbiIsInByb3RvdHlwZSIsInRvdWNoTWl4aW5zIiwiZnVsbFNjcmVlbk1peGlucyIsIndpdGhTdHlsZSIsImZ1bmMiLCJzZXRUaW1lb3V0Il0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
647
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92aWV3L2Rpdi9vdmVybGF5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgeyB3aW5kb3cgfSBmcm9tIFwiZWFzeVwiO1xuaW1wb3J0IHsga2V5Q29kZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5pbXBvcnQgeyB0b3VjaE1peGlucywgZnVsbFNjcmVlbk1peGlucywgZnVsbFNjcmVlblV0aWxpdGllcyB9IGZyb20gXCJlYXN5LW1vYmlsZVwiO1xuXG5pbXBvcnQgRGl2IGZyb20gXCIuLi9kaXZcIjtcbmltcG9ydCBFbGVtZW50IGZyb20gXCIuLi9lbGVtZW50XCI7XG5cbmltcG9ydCB7IHJlc2V0RnJhZ21lbnQgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2ZyYWdtZW50XCI7XG5pbXBvcnQgeyBlbGVtZW50c0Zyb21ET01FbGVtZW50cyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgc2Nyb2xsVG9BbmNob3IsIGZpbmREaXZCeUFuY2hvcklkIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5pbXBvcnQgeyBnZXRPdmVybGF5Wm9vbSBhcyBnZXRab29tLCBhcmVDb2xvdXJzSW52ZXJ0ZWQsIGFyZU5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQgfSBmcm9tIFwiLi4vLi4vc3RhdGVcIjtcbmltcG9ydCB7IFNDUk9MTF9ERUxBWSwgVVBfRElSRUNUSU9OLCBERUNFTEVSQVRJT04sIERPV05fRElSRUNUSU9OLCBPUEVOX01FTlVfVEFQX0FSRUFfSEVJR0hUIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuXG5jb25zdCB7IGlzRnVsbFNjcmVlbiB9ID0gZnVsbFNjcmVlblV0aWxpdGllcyxcbiAgICAgIHsgRU5URVJfS0VZX0NPREUsXG4gICAgICAgIEVTQ0FQRV9LRVlfQ09ERSxcbiAgICAgICAgQkFDS1NQQUNFX0tFWV9DT0RFLFxuICAgICAgICBBUlJPV19VUF9LRVlfQ09ERSxcbiAgICAgICAgQVJST1dfRE9XTl9LRVlfQ09ERSxcbiAgICAgICAgQVJST1dfTEVGVF9LRVlfQ09ERSxcbiAgICAgICAgQVJST1dfUklHSFRfS0VZX0NPREUgfSA9IGtleUNvZGVzO1xuXG5jbGFzcyBPdmVybGF5RGl2IGV4dGVuZHMgRWxlbWVudCB7XG4gIGZ1bGxTY3JlZW5DaGFuZ2VDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgY29udHJvbGxlci51cGRhdGVGdWxsU2NyZWVuKCk7XG5cbiAgICB0aGlzLnVwZGF0ZU92ZXJsYXlab29tKCk7XG4gIH1cblxuICBkb3VibGVUYXBDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50LCB0b3AsIGxlZnQpID0+IHtcbiAgICBjb25zdCBmdWxsU2NyZWVuID0gaXNGdWxsU2NyZWVuKCk7XG5cbiAgICBpZiAoZnVsbFNjcmVlbikge1xuICAgICAgY29udHJvbGxlci5leGl0RnVsbFNjcmVlbigpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmF0aXZlR2VzdHVyZXNSZXN0b3JlZCA9IGFyZU5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQoKTtcblxuICAgIG5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQgP1xuICAgICAgY29udHJvbGxlci5zdXBwcmVzc05hdGl2ZUdlc3R1cmVzKCkgOlxuICAgICAgICBjb250cm9sbGVyLnJlc3RvcmVOYXRpdmVHZXN0dXJlcygpO1xuICB9XG5cbiAgcGluY2hTdGFydEN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICBjb25zdCB6b29tID0gZ2V0Wm9vbSgpLFxuICAgICAgICAgIHN0YXJ0Wm9vbSA9IHpvb207IC8vL1xuXG4gICAgdGhpcy5zZXRTdGFydFpvb20oc3RhcnRab29tKTtcbiAgfVxuXG4gIHBpbmNoTW92ZUN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQsIHJhdGlvKSA9PiB7XG4gICAgY29uc3Qgc3RhcnRab29tID0gdGhpcy5nZXRTdGFydFpvb20oKSxcbiAgICAgICAgICBvdmVybGF5Wm9vbSA9IHN0YXJ0Wm9vbSAqIE1hdGguc3FydChyYXRpbyk7ICAvLy9cblxuICAgIGNvbnRyb2xsZXIuem9vbU92ZXJsYXkob3ZlcmxheVpvb20pO1xuICB9XG5cbiAgc3dpcGVSaWdodEN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQsIHRvcCwgbGVmdCwgc3BwZWQpID0+IHtcbiAgICB0aGlzLnNob3dMZWZ0RGl2KCk7XG4gIH1cblxuICBzd2lwZUxlZnRDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50LCB0b3AsIGxlZnQsIHNwcGVkKSA9PiB7XG4gICAgdGhpcy5zaG93UmlnaHREaXYoKTtcbiAgfVxuXG4gIHN3aXBlRG93bkN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQsIHRvcCwgbGVmdCwgc3BlZWQpID0+IHtcbiAgICBjb25zdCBkaXJlY3Rpb24gPSBET1dOX0RJUkVDVElPTjtcblxuICAgIHRoaXMuc3RhcnRTY3JvbGxpbmcoc3BlZWQsIGRpcmVjdGlvbik7XG4gIH1cblxuICBzd2lwZVVwQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgdG9wLCBsZWZ0LCBzcGVlZCkgPT4ge1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IFVQX0RJUkVDVElPTjtcblxuICAgIHRoaXMuc3RhcnRTY3JvbGxpbmcoc3BlZWQsIGRpcmVjdGlvbik7XG4gIH1cblxuICBkcmFnU3RhcnRDdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50LCB0b3AsIGxlZnQpID0+IHtcbiAgICBjb25zdCBzY3JvbGxUb3AgPSB0aGlzLmdldFNjcm9sbFRvcCgpLFxuICAgICAgICAgIHN0YXJ0U2Nyb2xsVG9wID0gc2Nyb2xsVG9wOyAvLy9cblxuICAgIHRoaXMuc2V0U3RhcnRTY3JvbGxUb3Aoc3RhcnRTY3JvbGxUb3ApO1xuICB9XG5cbiAgZHJhZ0Rvd25DdXN0b21IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50LCB0b3AsIGxlZnQpID0+IHtcbiAgICBjb25zdCBzdGFydFNjcm9sbFRvcCA9IHRoaXMuZ2V0U3RhcnRTY3JvbGxUb3AoKTtcblxuICAgIGlmIChzdGFydFNjcm9sbFRvcCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHN0YXJ0U2Nyb2xsVG9wIC0gdG9wO1xuXG4gICAgdGhpcy5zZXRTY3JvbGxUb3Aoc2Nyb2xsVG9wKTtcbiAgfVxuXG4gIGRyYWdVcEN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQsIHRvcCwgbGVmdCkgPT4ge1xuICAgIGNvbnN0IHN0YXJ0U2Nyb2xsVG9wID0gdGhpcy5nZXRTdGFydFNjcm9sbFRvcCgpO1xuXG4gICAgaWYgKHN0YXJ0U2Nyb2xsVG9wID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gc3RhcnRTY3JvbGxUb3AgLSB0b3A7XG5cbiAgICB0aGlzLnNldFNjcm9sbFRvcChzY3JvbGxUb3ApO1xuICB9XG5cbiAgdGFwQ3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgdG9wLCBsZWZ0KSA9PiB7XG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5nZXRIZWlnaHQoKSxcbiAgICAgICAgICBib3R0b20gPSBoZWlnaHQgLSB0b3A7XG5cbiAgICBpZiAoYm90dG9tIDwgT1BFTl9NRU5VX1RBUF9BUkVBX0hFSUdIVCkge1xuICAgICAgY29udHJvbGxlci5vcGVuTWVudSgpO1xuICAgIH1cbiAgfVxuXG4gIGtleURvd25IYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgY29uc3QgeyBrZXlDb2RlIH0gPSBldmVudDtcblxuICAgIHN3aXRjaCAoa2V5Q29kZSkge1xuICAgICAgY2FzZSBFTlRFUl9LRVlfQ09ERTpcbiAgICAgIGNhc2UgQVJST1dfUklHSFRfS0VZX0NPREU6IHtcbiAgICAgICAgdGhpcy5zaG93UmlnaHREaXYoKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBCQUNLU1BBQ0VfS0VZX0NPREU6XG4gICAgICBjYXNlIEFSUk9XX0xFRlRfS0VZX0NPREU6IHtcbiAgICAgICAgdGhpcy5zaG93TGVmdERpdigpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIEVTQ0FQRV9LRVlfQ09ERToge1xuICAgICAgICBjb25zdCBmdWxsU2NyZWVuID0gaXNGdWxsU2NyZWVuKCk7XG5cbiAgICAgICAgaWYgKGZ1bGxTY3JlZW4pIHtcbiAgICAgICAgICBjb250cm9sbGVyLmV4aXRGdWxsU2NyZWVuKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb250cm9sbGVyLmNsb3NlTWVudSgpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIEFSUk9XX1VQX0tFWV9DT0RFOiB7XG4gICAgICAgIHRoaXMuc2hvd0ZpcnN0RGl2KCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgQVJST1dfRE9XTl9LRVlfQ09ERToge1xuICAgICAgICB0aGlzLnNob3dMYXN0RGl2KCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2Nyb2xsVG9BbmNob3IoYW5jaG9ySWQpIHtcbiAgICBsZXQgZGl2O1xuXG4gICAgZGl2ID0gZmluZERpdkJ5QW5jaG9ySWQoYW5jaG9ySWQpO1xuXG4gICAgY29uc3QgbmV4dERpdiA9IGRpdjsgIC8vL1xuXG4gICAgZGl2ID0gdGhpcy5maW5kRGl2KCk7XG5cbiAgICBjb25zdCBwcmV2aW91c0RpdiA9IGRpdjsgIC8vL1xuXG4gICAgY29uc3QgZGl2cyA9IHRoaXMuZ2V0RGl2cygpLFxuICAgICAgICAgIG5leHRJbmRleCA9IGRpdnMuaW5kZXhPZihuZXh0RGl2KSwgIC8vL1xuICAgICAgICAgIHByZXZpb3VzSW5kZXggPSBkaXZzLmluZGV4T2YocHJldmlvdXNEaXYpOyAgLy8vXG5cbiAgICB0aGlzLnNob3dOZXh0RGl2KG5leHRJbmRleCwgcHJldmlvdXNJbmRleCwgKCkgPT4ge1xuICAgICAgc2Nyb2xsVG9BbmNob3IoYW5jaG9ySWQpO1xuICAgIH0pO1xuICB9XG5cbiAgc2Nyb2xsVG9Ub3AoKSB7XG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gMDtcblxuICAgIHRoaXMuc2V0U2Nyb2xsVG9wKHNjcm9sbFRvcCk7XG4gIH1cblxuICBzdG9wU2Nyb2xsaW5nKCkge1xuICAgIGxldCBpbnRlcnZhbCA9IHRoaXMuZ2V0SW50ZXJ2YWwoKTtcblxuICAgIGlmIChpbnRlcnZhbCAhPT0gbnVsbCkge1xuICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG5cbiAgICAgIGludGVydmFsID0gbnVsbDtcblxuICAgICAgdGhpcy5zZXRJbnRlcnZhbChpbnRlcnZhbCk7XG4gICAgfVxuICB9XG5cbiAgc3RhcnRTY3JvbGxpbmcoc3BlZWQsIGRpcmVjdGlvbikge1xuICAgIGxldCBzY3JvbGxUb3AgPSB0aGlzLmdldFNjcm9sbFRvcCgpO1xuXG4gICAgc2Nyb2xsVG9wICs9IHNwZWVkICogU0NST0xMX0RFTEFZO1xuXG4gICAgdGhpcy5zZXRTY3JvbGxUb3Aoc2Nyb2xsVG9wKTtcblxuICAgIGxldCBpbnRlcnZhbCA9IHRoaXMuZ2V0SW50ZXJ2YWwoKTtcblxuICAgIGlmIChpbnRlcnZhbCAhPT0gbnVsbCkge1xuICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG4gICAgfVxuXG4gICAgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBzcGVlZCA9IHNwZWVkIC0gZGlyZWN0aW9uICogREVDRUxFUkFUSU9OO1xuXG4gICAgICBpZiAoKHNwZWVkICogZGlyZWN0aW9uKSA8IDApIHtcbiAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG5cbiAgICAgICAgaW50ZXJ2YWwgPSBudWxsO1xuXG4gICAgICAgIHRoaXMuc2V0SW50ZXJ2YWwoaW50ZXJ2YWwpO1xuICAgICAgfVxuXG4gICAgICBsZXQgc2Nyb2xsVG9wID0gdGhpcy5nZXRTY3JvbGxUb3AoKTtcblxuICAgICAgc2Nyb2xsVG9wICs9IHNwZWVkICogU0NST0xMX0RFTEFZO1xuXG4gICAgICB0aGlzLnNldFNjcm9sbFRvcChzY3JvbGxUb3ApO1xuICAgIH0sIFNDUk9MTF9ERUxBWSk7XG5cbiAgICB0aGlzLnNldEludGVydmFsKGludGVydmFsKTtcbiAgfVxuXG4gIGVudGVyRnVsbFNjcmVlbigpIHtcbiAgICB0aGlzLnJlcXVlc3RGdWxsU2NyZWVuKCk7XG4gIH1cblxuICB1cGRhdGVPdmVybGF5Wm9vbSgpIHtcbiAgICBjb25zdCBkaXYgPSB0aGlzLmZpbmREaXYoKSxcbiAgICAgICAgICB6b29tID0gZ2V0Wm9vbSgpO1xuXG4gICAgZGl2Lnpvb20oem9vbSk7XG4gIH1cblxuICB1cGRhdGVPdmVybGF5Q29sb3VycygpIHtcbiAgICBjb25zdCBjb2xvdXJzSW52ZXJ0ZWQgPSBhcmVDb2xvdXJzSW52ZXJ0ZWQoKTtcblxuICAgIGNvbG91cnNJbnZlcnRlZCA/XG4gICAgICB0aGlzLmFkZENsYXNzKFwiaW52ZXJ0ZWQtY29sb3Vyc1wiKSA6XG4gICAgICAgIHRoaXMucmVtb3ZlQ2xhc3MoXCJpbnZlcnRlZC1jb2xvdXJzXCIpO1xuICB9XG5cbiAgdXBkYXRlTmF0aXZlR2VzdHVyZXMoKSB7XG4gICAgY29uc3QgbmF0aXZlR2VzdHVyZXNSZXN0b3JlZCA9IGFyZU5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQoKTtcblxuICAgIG5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQgP1xuICAgICAgdGhpcy5hZGRDbGFzcyhcIm5hdGl2ZS1nZXN0dXJlc1wiKSA6XG4gICAgICAgIHRoaXMucmVtb3ZlQ2xhc3MoXCJuYXRpdmUtZ2VzdHVyZXNcIik7XG5cbiAgICBuYXRpdmVHZXN0dXJlc1Jlc3RvcmVkID9cbiAgICAgIHRoaXMuZGlzYWJsZUN1c3RvbUdlc3R1cmVzKCkgOlxuICAgICAgICB0aGlzLmVuYWJsZUN1c3RvbUdlc3R1cmVzKCk7XG4gIH1cblxuICBhcmVOYXRpdmVHZXN0dXJlc1Jlc3RvcmVkKCkge1xuICAgIGNvbnN0IG5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQgPSB0aGlzLmhhc0NsYXNzKFwibmF0aXZlLWdlc3R1cmVzXCIpO1xuXG4gICAgcmV0dXJuIG5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQ7XG4gIH1cblxuICBzaG93UmlnaHREaXYoKSB7XG4gICAgY29uc3QgZGl2ID0gdGhpcy5maW5kRGl2KCksXG4gICAgICAgICAgZGl2cyA9IHRoaXMuZ2V0RGl2cygpLFxuICAgICAgICAgIGRpdnNMZW5ndGggPSBkaXZzLmxlbmd0aCxcbiAgICAgICAgICBpbmRleCA9IGRpdnMuaW5kZXhPZihkaXYpLFxuICAgICAgICAgIG5leHRJbmRleCA9IGluZGV4ICsgMSxcbiAgICAgICAgICBwcmV2aW91c0luZGV4ID0gaW5kZXg7ICAvLy9cblxuICAgIGlmIChuZXh0SW5kZXggPT09IGRpdnNMZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3dOZXh0RGl2KG5leHRJbmRleCwgcHJldmlvdXNJbmRleCk7XG4gIH1cblxuICBzaG93TGVmdERpdigpIHtcbiAgICBjb25zdCBkaXYgPSB0aGlzLmZpbmREaXYoKSxcbiAgICAgICAgICBkaXZzID0gdGhpcy5nZXREaXZzKCksXG4gICAgICAgICAgaW5kZXggPSBkaXZzLmluZGV4T2YoZGl2KSxcbiAgICAgICAgICBuZXh0SW5kZXggPSBpbmRleCAtIDEsXG4gICAgICAgICAgcHJldmlvdXNJbmRleCA9IGluZGV4OyAgLy8vXG5cbiAgICBpZiAobmV4dEluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd05leHREaXYobmV4dEluZGV4LCBwcmV2aW91c0luZGV4KTtcbiAgfVxuXG4gIHNob3dMYXN0RGl2KCkge1xuICAgIGNvbnN0IGRpdiA9IHRoaXMuZmluZERpdigpLFxuICAgICAgICAgIGRpdnMgPSB0aGlzLmdldERpdnMoKSxcbiAgICAgICAgICBkaXZzTGVuZ3RoID0gZGl2cy5sZW5ndGgsXG4gICAgICAgICAgaW5kZXggPSAoZGl2ID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgIC0xIDpcbiAgICAgICAgICAgICAgICAgICAgICBkaXZzLmluZGV4T2YoZGl2KSxcbiAgICAgICAgICBuZXh0SW5kZXggPSBkaXZzTGVuZ3RoIC0gMSxcbiAgICAgICAgICBwcmV2aW91c0luZGV4ID0gaW5kZXg7ICAvLy9cblxuICAgIGlmIChuZXh0SW5kZXggPT09IHByZXZpb3VzSW5kZXgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3dOZXh0RGl2KG5leHRJbmRleCwgcHJldmlvdXNJbmRleCk7XG4gIH1cblxuICBzaG93Rmlyc3REaXYoKSB7XG4gICAgY29uc3QgZGl2ID0gdGhpcy5maW5kRGl2KCksXG4gICAgICAgICAgZGl2cyA9IHRoaXMuZ2V0RGl2cygpLFxuICAgICAgICAgIGluZGV4ID0gKGRpdiA9PT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAtMSA6XG4gICAgICAgICAgICAgICAgICAgICAgZGl2cy5pbmRleE9mKGRpdiksXG4gICAgICAgICAgbmV4dEluZGV4ID0gMCxcbiAgICAgICAgICBwcmV2aW91c0luZGV4ID0gaW5kZXg7ICAvLy9cblxuICAgIGlmIChuZXh0SW5kZXggPT09IHByZXZpb3VzSW5kZXgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3dOZXh0RGl2KG5leHRJbmRleCwgcHJldmlvdXNJbmRleCk7XG4gIH1cblxuICBzaG93TmV4dERpdihuZXh0SW5kZXgsIHByZXZpb3VzSW5kZXgsIGRvbmUgPSAoKSA9PiB7fSkge1xuICAgIHJlc2V0RnJhZ21lbnQoKTtcblxuICAgIGNvbnN0IGRpdnMgPSB0aGlzLmdldERpdnMoKTtcblxuICAgIGlmIChwcmV2aW91c0luZGV4ICE9PSAtMSkge1xuICAgICAgY29uc3QgcHJldmlvdXNEaXYgPSBkaXZzW3ByZXZpb3VzSW5kZXhdO1xuXG4gICAgICBwcmV2aW91c0Rpdi5oaWRlKCk7XG4gICAgfVxuXG4gICAgY29uc3Qgem9vbSA9IGdldFpvb20oKSxcbiAgICAgICAgICBuZXh0RGl2ID0gZGl2c1tuZXh0SW5kZXhdO1xuXG4gICAgdGhpcy5zdG9wU2Nyb2xsaW5nKCk7XG5cbiAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XG5cbiAgICBuZXh0RGl2Lnpvb20oem9vbSk7XG5cbiAgICBuZXh0RGl2LnNob3coKTtcblxuICAgIGRlZmVyKCgpID0+IHtcbiAgICAgIGNvbnN0IGJhY2tncm91bmRDb2xvdXIgPSBuZXh0RGl2LmdldEJhY2tncm91bmRDb2xvdXIoKTtcblxuICAgICAgdGhpcy5zZXRCYWNrZ3JvdW5kQ29sb3VyKGJhY2tncm91bmRDb2xvdXIpO1xuXG4gICAgICBkb25lKCk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRCYWNrZ3JvdW5kQ29sb3VyKGJhY2tncm91bmRDb2xvdXIpIHtcbiAgICBjb25zdCBiYWNrZ3JvdW5kQ29sb3IgPSBiYWNrZ3JvdW5kQ29sb3VyLCAvLy9cbiAgICAgICAgICBjc3MgPSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3JcbiAgICAgICAgICB9O1xuXG4gICAgdGhpcy5jc3MoY3NzKTtcbiAgfVxuXG4gIGZpbmREaXYoKSB7XG4gICAgY29uc3QgZGl2cyA9IHRoaXMuZ2V0RGl2cygpLFxuICAgICAgICAgIGRpdiA9IGRpdnMuZmluZCgoZGl2KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzaG93aW5nID0gZGl2LmlzU2hvd2luZygpO1xuXG4gICAgICAgICAgICBpZiAoc2hvd2luZykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIGRpdjtcbiAgfVxuXG4gIGdldERpdnMoKSB7XG4gICAgY29uc3QgY2hpbGRFbGVtZW50cyA9IHRoaXMuZ2V0Q2hpbGRFbGVtZW50cygpLFxuICAgICAgICAgIGRpdnMgPSBjaGlsZEVsZW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBkaXZzO1xuICB9XG5cbiAgZ2V0SW50ZXJ2YWwoKSB7XG4gICAgY29uc3QgeyBpbnRlcnZhbCB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gICAgcmV0dXJuIGludGVydmFsO1xuICB9XG5cbiAgc2V0SW50ZXJ2YWwoaW50ZXJ2YWwpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICAgIGludGVydmFsXG4gICAgfSk7XG4gIH1cblxuICBnZXRTdGFydFpvb20oKSB7XG4gICAgY29uc3QgeyBzdGFydFpvb20gfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICAgIHJldHVybiBzdGFydFpvb207XG4gIH1cblxuICBzZXRTdGFydFpvb20oc3RhcnRab29tKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgICBzdGFydFpvb21cbiAgICB9KTtcbiAgfVxuXG4gIGdldFN0YXJ0U2Nyb2xsVG9wKCkge1xuICAgIGNvbnN0IHsgc3RhcnRTY3JvbGxUb3AgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICAgIHJldHVybiBzdGFydFNjcm9sbFRvcDtcbiAgfVxuXG4gIHNldFN0YXJ0U2Nyb2xsVG9wKHN0YXJ0U2Nyb2xsVG9wKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgICBzdGFydFNjcm9sbFRvcFxuICAgIH0pO1xuICB9XG5cbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xuICAgIGNvbnN0IGludGVydmFsID0gbnVsbCxcbiAgICAgICAgICBzdGFydFpvb20gPSBudWxsLFxuICAgICAgICAgIHN0YXJ0U2Nyb2xsVG9wID0gbnVsbDtcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgaW50ZXJ2YWwsXG4gICAgICBzdGFydFpvb20sXG4gICAgICBzdGFydFNjcm9sbFRvcFxuICAgIH0pO1xuICB9XG5cbiAgZGlkTW91bnQoKSB7XG4gICAgd2luZG93Lm9uS2V5RG93bih0aGlzLmtleURvd25IYW5kbGVyKTtcblxuICAgIHRoaXMub25DdXN0b21UYXAodGhpcy50YXBDdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9uQ3VzdG9tRHJhZ1VwKHRoaXMuZHJhZ1VwQ3VzdG9tSGFuZGxlcik7XG4gICAgdGhpcy5vbkN1c3RvbURyYWdEb3duKHRoaXMuZHJhZ0Rvd25DdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9uQ3VzdG9tRHJhZ1N0YXJ0KHRoaXMuZHJhZ1N0YXJ0Q3VzdG9tSGFuZGxlcik7XG4gICAgdGhpcy5vbkN1c3RvbVN3aXBlVXAodGhpcy5zd2lwZVVwQ3VzdG9tSGFuZGxlcik7XG4gICAgdGhpcy5vbkN1c3RvbVN3aXBlRG93bih0aGlzLnN3aXBlRG93bkN1c3RvbUhhbmRsZXIpO1xuICAgIHRoaXMub25DdXN0b21Td2lwZUxlZnQodGhpcy5zd2lwZUxlZnRDdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9uQ3VzdG9tU3dpcGVSaWdodCh0aGlzLnN3aXBlUmlnaHRDdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9uQ3VzdG9tUGluY2hNb3ZlKHRoaXMucGluY2hNb3ZlQ3VzdG9tSGFuZGxlcik7XG4gICAgdGhpcy5vbkN1c3RvbVBpbmNoU3RhcnQodGhpcy5waW5jaFN0YXJ0Q3VzdG9tSGFuZGxlcik7XG4gICAgdGhpcy5vbkN1c3RvbURvdWJsZVRhcCh0aGlzLmRvdWJsZVRhcEN1c3RvbUhhbmRsZXIpO1xuXG4gICAgdGhpcy5vbkN1c3RvbUZ1bGxTY3JlZW5DaGFuZ2UodGhpcy5mdWxsU2NyZWVuQ2hhbmdlQ3VzdG9tSGFuZGxlcik7XG5cbiAgICB0aGlzLmVuYWJsZUZ1bGxTY3JlZW4oKTtcblxuICAgIHRoaXMuZW5hYmxlVG91Y2goKTtcbiAgfVxuXG4gIHdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMuZGlzYWJsZVRvdWNoKCk7XG5cbiAgICB0aGlzLmRpc2FibGVGdWxsU2NyZWVuKCk7XG5cbiAgICB0aGlzLm9mZkN1c3RvbVRhcCh0aGlzLnRhcEN1c3RvbUhhbmRsZXIpO1xuICAgIHRoaXMub2ZmQ3VzdG9tRHJhZ1VwKHRoaXMuZHJhZ1VwQ3VzdG9tSGFuZGxlcik7XG4gICAgdGhpcy5vZmZDdXN0b21EcmFnRG93bih0aGlzLmRyYWdEb3duQ3VzdG9tSGFuZGxlcik7XG4gICAgdGhpcy5vZmZDdXN0b21EcmFnU3RhcnQodGhpcy5kcmFnU3RhcnRDdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9mZkN1c3RvbVN3aXBlVXAodGhpcy5zd2lwZVVwQ3VzdG9tSGFuZGxlcik7XG4gICAgdGhpcy5vZmZDdXN0b21Td2lwZURvd24odGhpcy5zd2lwZURvd25DdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9mZkN1c3RvbVN3aXBlTGVmdCh0aGlzLnN3aXBlTGVmdEN1c3RvbUhhbmRsZXIpO1xuICAgIHRoaXMub2ZmQ3VzdG9tU3dpcGVSaWdodCh0aGlzLnN3aXBlUmlnaHRDdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9mZkN1c3RvbVBpbmNoTW92ZSh0aGlzLnBpbmNoTW92ZUN1c3RvbUhhbmRsZXIpO1xuICAgIHRoaXMub2ZmQ3VzdG9tUGluY2hTdGFydCh0aGlzLnBpbmNoU3RhcnRDdXN0b21IYW5kbGVyKTtcbiAgICB0aGlzLm9mZkN1c3RvbURvdWJsZVRhcCh0aGlzLmRvdWJsZVRhcEN1c3RvbUhhbmRsZXIpO1xuXG4gICAgdGhpcy5vZmZDdXN0b21GdWxsU2NyZWVuQ2hhbmdlKHRoaXMuZnVsbFNjcmVlbkNoYW5nZUN1c3RvbUhhbmRsZXIpO1xuXG4gICAgd2luZG93Lm9mZktleURvd24odGhpcy5rZXlEb3duSGFuZGxlcik7XG4gIH1cblxuICBjaGlsZEVsZW1lbnRzKCkge1xuICAgIGNvbnN0IHsgZGl2RE9NRWxlbWVudHMgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICBkaXZzID0gZWxlbWVudHNGcm9tRE9NRWxlbWVudHMoZGl2RE9NRWxlbWVudHMsIERpdiksXG4gICAgICAgICAgY2hpbGRFbGVtZW50cyA9IFtcbiAgICAgICAgICAgIC4uLmRpdnNcbiAgICAgICAgICBdO1xuXG4gICAgcmV0dXJuIGNoaWxkRWxlbWVudHM7XG4gIH1cblxuICBwYXJlbnRDb250ZXh0KCkge1xuICAgIGNvbnN0IHNob3dGaXJzdERpdiA9IHRoaXMuc2hvd0ZpcnN0RGl2LmJpbmQodGhpcyksXG4gICAgICAgICAgc2Nyb2xsVG9BbmNob3IgPSB0aGlzLnNjcm9sbFRvQW5jaG9yLmJpbmQodGhpcyksXG4gICAgICAgICAgZXhpdEZ1bGxTY3JlZW4gPSB0aGlzLmV4aXRGdWxsU2NyZWVuLmJpbmQodGhpcyksXG4gICAgICAgICAgZW50ZXJGdWxsU2NyZWVuID0gdGhpcy5lbnRlckZ1bGxTY3JlZW4uYmluZCh0aGlzKSxcbiAgICAgICAgICB1cGRhdGVPdmVybGF5Wm9vbSA9IHRoaXMudXBkYXRlT3ZlcmxheVpvb20uYmluZCh0aGlzKSxcbiAgICAgICAgICB1cGRhdGVPdmVybGF5Q29sb3VycyA9IHRoaXMudXBkYXRlT3ZlcmxheUNvbG91cnMuYmluZCh0aGlzKSxcbiAgICAgICAgICB1cGRhdGVOYXRpdmVHZXN0dXJlcyA9IHRoaXMudXBkYXRlTmF0aXZlR2VzdHVyZXMuYmluZCh0aGlzKTtcblxuICAgIHJldHVybiAoe1xuICAgICAgc2hvd0ZpcnN0RGl2LFxuICAgICAgc2Nyb2xsVG9BbmNob3IsXG4gICAgICBleGl0RnVsbFNjcmVlbixcbiAgICAgIGVudGVyRnVsbFNjcmVlbixcbiAgICAgIHVwZGF0ZU92ZXJsYXlab29tLFxuICAgICAgdXBkYXRlT3ZlcmxheUNvbG91cnMsXG4gICAgICB1cGRhdGVOYXRpdmVHZXN0dXJlc1xuICAgIH0pO1xuICB9XG5cbiAgaW5pdGlhbGlzZSgpIHtcbiAgICB0aGlzLmFzc2lnbkNvbnRleHQoKTtcblxuICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XG4gIH1cblxuICBzdGF0aWMgdGFnTmFtZSA9IFwiZGl2XCI7XG5cbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xuICAgIFwiZGl2RE9NRWxlbWVudHNcIlxuICBdO1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwib3ZlcmxheVwiXG4gIH07XG59XG5cbk9iamVjdC5hc3NpZ24oT3ZlcmxheURpdi5wcm90b3R5cGUsIHRvdWNoTWl4aW5zKTtcbk9iamVjdC5hc3NpZ24oT3ZlcmxheURpdi5wcm90b3R5cGUsIGZ1bGxTY3JlZW5NaXhpbnMpO1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGUoT3ZlcmxheURpdilgXG4gIFxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgICBcbiAgLm5hdGl2ZS1nZXN0dXJlcyB7XG4gICAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgICB0b3VjaC1hY3Rpb246IGF1dG87XG4gIH1cbiAgXG4gIC5pbnZlcnRlZC1jb2xvdXJzIHtcbiAgICBmaWx0ZXI6IGludmVydCgxKTtcbiAgfVxuICAgIFxuYDtcblxuZnVuY3Rpb24gZGVmZXIoZnVuYykge1xuICBzZXRUaW1lb3V0KGZ1bmMsIDApO1xufVxuIl0sIm5hbWVzIjpbImlzRnVsbFNjcmVlbiIsImZ1bGxTY3JlZW5VdGlsaXRpZXMiLCJFTlRFUl9LRVlfQ09ERSIsImtleUNvZGVzIiwiRVNDQVBFX0tFWV9DT0RFIiwiQkFDS1NQQUNFX0tFWV9DT0RFIiwiQVJST1dfVVBfS0VZX0NPREUiLCJBUlJPV19ET1dOX0tFWV9DT0RFIiwiQVJST1dfTEVGVF9LRVlfQ09ERSIsIkFSUk9XX1JJR0hUX0tFWV9DT0RFIiwiT3ZlcmxheURpdiIsImZ1bGxTY3JlZW5DaGFuZ2VDdXN0b21IYW5kbGVyIiwiZXZlbnQiLCJlbGVtZW50IiwiY29udHJvbGxlciIsInVwZGF0ZUZ1bGxTY3JlZW4iLCJ1cGRhdGVPdmVybGF5Wm9vbSIsImRvdWJsZVRhcEN1c3RvbUhhbmRsZXIiLCJ0b3AiLCJsZWZ0IiwiZnVsbFNjcmVlbiIsImV4aXRGdWxsU2NyZWVuIiwibmF0aXZlR2VzdHVyZXNSZXN0b3JlZCIsImFyZU5hdGl2ZUdlc3R1cmVzUmVzdG9yZWQiLCJzdXBwcmVzc05hdGl2ZUdlc3R1cmVzIiwicmVzdG9yZU5hdGl2ZUdlc3R1cmVzIiwicGluY2hTdGFydEN1c3RvbUhhbmRsZXIiLCJ6b29tIiwiZ2V0Wm9vbSIsInN0YXJ0Wm9vbSIsInNldFN0YXJ0Wm9vbSIsInBpbmNoTW92ZUN1c3RvbUhhbmRsZXIiLCJyYXRpbyIsImdldFN0YXJ0Wm9vbSIsIm92ZXJsYXlab29tIiwiTWF0aCIsInNxcnQiLCJ6b29tT3ZlcmxheSIsInN3aXBlUmlnaHRDdXN0b21IYW5kbGVyIiwic3BwZWQiLCJzaG93TGVmdERpdiIsInN3aXBlTGVmdEN1c3RvbUhhbmRsZXIiLCJzaG93UmlnaHREaXYiLCJzd2lwZURvd25DdXN0b21IYW5kbGVyIiwic3BlZWQiLCJkaXJlY3Rpb24iLCJET1dOX0RJUkVDVElPTiIsInN0YXJ0U2Nyb2xsaW5nIiwic3dpcGVVcEN1c3RvbUhhbmRsZXIiLCJVUF9ESVJFQ1RJT04iLCJkcmFnU3RhcnRDdXN0b21IYW5kbGVyIiwic2Nyb2xsVG9wIiwiZ2V0U2Nyb2xsVG9wIiwic3RhcnRTY3JvbGxUb3AiLCJzZXRTdGFydFNjcm9sbFRvcCIsImRyYWdEb3duQ3VzdG9tSGFuZGxlciIsImdldFN0YXJ0U2Nyb2xsVG9wIiwic2V0U2Nyb2xsVG9wIiwiZHJhZ1VwQ3VzdG9tSGFuZGxlciIsInRhcEN1c3RvbUhhbmRsZXIiLCJoZWlnaHQiLCJnZXRIZWlnaHQiLCJib3R0b20iLCJPUEVOX01FTlVfVEFQX0FSRUFfSEVJR0hUIiwib3Blbk1lbnUiLCJrZXlEb3duSGFuZGxlciIsImtleUNvZGUiLCJjbG9zZU1lbnUiLCJzaG93Rmlyc3REaXYiLCJzaG93TGFzdERpdiIsInNjcm9sbFRvQW5jaG9yIiwiYW5jaG9ySWQiLCJkaXYiLCJmaW5kRGl2QnlBbmNob3JJZCIsIm5leHREaXYiLCJmaW5kRGl2IiwicHJldmlvdXNEaXYiLCJkaXZzIiwiZ2V0RGl2cyIsIm5leHRJbmRleCIsImluZGV4T2YiLCJwcmV2aW91c0luZGV4Iiwic2hvd05leHREaXYiLCJzY3JvbGxUb1RvcCIsInN0b3BTY3JvbGxpbmciLCJpbnRlcnZhbCIsImdldEludGVydmFsIiwiY2xlYXJJbnRlcnZhbCIsInNldEludGVydmFsIiwiU0NST0xMX0RFTEFZIiwiREVDRUxFUkFUSU9OIiwiZW50ZXJGdWxsU2NyZWVuIiwicmVxdWVzdEZ1bGxTY3JlZW4iLCJ1cGRhdGVPdmVybGF5Q29sb3VycyIsImNvbG91cnNJbnZlcnRlZCIsImFyZUNvbG91cnNJbnZlcnRlZCIsImFkZENsYXNzIiwicmVtb3ZlQ2xhc3MiLCJ1cGRhdGVOYXRpdmVHZXN0dXJlcyIsImRpc2FibGVDdXN0b21HZXN0dXJlcyIsImVuYWJsZUN1c3RvbUdlc3R1cmVzIiwiaGFzQ2xhc3MiLCJkaXZzTGVuZ3RoIiwibGVuZ3RoIiwiaW5kZXgiLCJkb25lIiwicmVzZXRGcmFnbWVudCIsImhpZGUiLCJzaG93IiwiZGVmZXIiLCJiYWNrZ3JvdW5kQ29sb3VyIiwiZ2V0QmFja2dyb3VuZENvbG91ciIsInNldEJhY2tncm91bmRDb2xvdXIiLCJiYWNrZ3JvdW5kQ29sb3IiLCJjc3MiLCJmaW5kIiwic2hvd2luZyIsImlzU2hvd2luZyIsImNoaWxkRWxlbWVudHMiLCJnZXRDaGlsZEVsZW1lbnRzIiwiZ2V0U3RhdGUiLCJ1cGRhdGVTdGF0ZSIsInNldEluaXRpYWxTdGF0ZSIsInNldFN0YXRlIiwiZGlkTW91bnQiLCJ3aW5kb3ciLCJvbktleURvd24iLCJvbkN1c3RvbVRhcCIsIm9uQ3VzdG9tRHJhZ1VwIiwib25DdXN0b21EcmFnRG93biIsIm9uQ3VzdG9tRHJhZ1N0YXJ0Iiwib25DdXN0b21Td2lwZVVwIiwib25DdXN0b21Td2lwZURvd24iLCJvbkN1c3RvbVN3aXBlTGVmdCIsIm9uQ3VzdG9tU3dpcGVSaWdodCIsIm9uQ3VzdG9tUGluY2hNb3ZlIiwib25DdXN0b21QaW5jaFN0YXJ0Iiwib25DdXN0b21Eb3VibGVUYXAiLCJvbkN1c3RvbUZ1bGxTY3JlZW5DaGFuZ2UiLCJlbmFibGVGdWxsU2NyZWVuIiwiZW5hYmxlVG91Y2giLCJ3aWxsVW5tb3VudCIsImRpc2FibGVUb3VjaCIsImRpc2FibGVGdWxsU2NyZWVuIiwib2ZmQ3VzdG9tVGFwIiwib2ZmQ3VzdG9tRHJhZ1VwIiwib2ZmQ3VzdG9tRHJhZ0Rvd24iLCJvZmZDdXN0b21EcmFnU3RhcnQiLCJvZmZDdXN0b21Td2lwZVVwIiwib2ZmQ3VzdG9tU3dpcGVEb3duIiwib2ZmQ3VzdG9tU3dpcGVMZWZ0Iiwib2ZmQ3VzdG9tU3dpcGVSaWdodCIsIm9mZkN1c3RvbVBpbmNoTW92ZSIsIm9mZkN1c3RvbVBpbmNoU3RhcnQiLCJvZmZDdXN0b21Eb3VibGVUYXAiLCJvZmZDdXN0b21GdWxsU2NyZWVuQ2hhbmdlIiwib2ZmS2V5RG93biIsImRpdkRPTUVsZW1lbnRzIiwicHJvcGVydGllcyIsImVsZW1lbnRzRnJvbURPTUVsZW1lbnRzIiwiRGl2IiwicGFyZW50Q29udGV4dCIsImJpbmQiLCJpbml0aWFsaXNlIiwiYXNzaWduQ29udGV4dCIsIkVsZW1lbnQiLCJ0YWdOYW1lIiwiaWdub3JlZFByb3BlcnRpZXMiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSIsIk9iamVjdCIsImFzc2lnbiIsInByb3RvdHlwZSIsInRvdWNoTWl4aW5zIiwiZnVsbFNjcmVlbk1peGlucyIsIndpdGhTdHlsZSIsImZ1bmMiLCJzZXRUaW1lb3V0Il0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "highmark-cli",
3
3
  "author": "James Smith",
4
- "version": "0.0.159",
4
+ "version": "0.0.162",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/highmark-cli",
7
7
  "description": "Extensible, styleable Markdown.",
@@ -19,9 +19,10 @@
19
19
  "occam-entities": "^1.0.92"
20
20
  },
21
21
  "devDependencies": {
22
- "@swc/core": "1.2.52",
22
+ "@swc/core": "^1.2.50",
23
23
  "easy": "^17.1.1",
24
24
  "easy-layout": "^6.0.151",
25
+ "easy-mobile": "^1.0.7",
25
26
  "easy-with-style": "^3.0.354",
26
27
  "esbuild": "^0.9.2",
27
28
  "fragmented": "^3.1.2",
package/src/constants.js CHANGED
@@ -1,22 +1,15 @@
1
1
  "use strict";
2
2
 
3
- export const { PI } = Math;
4
-
5
3
  export const HASH = "#";
6
4
  export const GRID = "grid";
7
5
  export const STATE_KEY = "state";
8
- export const TAP_DELAY = 250;
9
- export const PI_OVER_TWO = PI / 2;
10
6
  export const EMPTY_STRING = "";
11
7
  export const SCROLL_DELAY = 10;
12
8
  export const DECELERATION = 0.0333333;
13
9
  export const UP_DIRECTION = +1;
14
10
  export const DOWN_DIRECTION = -1;
15
- export const MAXIMUM_SPREAD = PI / 4;
16
11
  export const MENU_ZOOM_RATIO = 1.1;
17
- export const MAXIMUM_TAP_TIME = 125;
18
12
  export const BACKGROUND_COLOUR = "background-color"; ///
19
- export const MINIMUM_SWIPE_SPEED = 1;
20
13
  export const PORTRAIT_ORIENTATION = "portrait";
21
14
  export const LANDSCAPE_ORIENTATION = "landscape";
22
15
  export const OPEN_MENU_TAP_AREA_HEIGHT = 128;
package/src/state.js CHANGED
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import { isFullScreen } from "./utilities/fullScreen";
3
+ import { fullScreenUtilities } from "easy-mobile";
4
+
4
5
  import { getPersistentState, setPersistentState } from "./localStorage";
5
6
 
7
+ const { isFullScreen } = fullScreenUtilities;
8
+
6
9
  const orientation = null,
7
10
  state = {
8
11
  orientation
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
 
3
+ import { fullScreenUtilities } from "easy-mobile";
4
+
3
5
  import CheckboxDiv from "../../div/checkbox";
4
6
 
5
- import { isFullScreen } from "../../../utilities/fullScreen";
7
+ const { isFullScreen } = fullScreenUtilities;
6
8
 
7
9
  export default class FullScreenCheckboxDiv extends CheckboxDiv {
8
10
  changeHandler = (event, element) => {
@@ -4,20 +4,19 @@ import withStyle from "easy-with-style"; ///
4
4
 
5
5
  import { window } from "easy";
6
6
  import { keyCodes } from "necessary";
7
+ import { touchMixins, fullScreenMixins, fullScreenUtilities } from "easy-mobile";
7
8
 
8
9
  import Div from "../div";
9
10
  import Element from "../element";
10
- import touchMixins from "../../mixins/touch";
11
- import fullScreenMixins from "../../mixins/fullsrean";
12
11
 
13
- import { isFullScreen } from "../../utilities/fullScreen";
14
12
  import { resetFragment } from "../../utilities/fragment";
15
13
  import { elementsFromDOMElements } from "../../utilities/element";
16
14
  import { scrollToAnchor, findDivByAnchorId } from "../../utilities/element";
17
15
  import { getOverlayZoom as getZoom, areColoursInverted, areNativeGesturesRestored } from "../../state";
18
16
  import { SCROLL_DELAY, UP_DIRECTION, DECELERATION, DOWN_DIRECTION, OPEN_MENU_TAP_AREA_HEIGHT } from "../../constants";
19
17
 
20
- const { ENTER_KEY_CODE,
18
+ const { isFullScreen } = fullScreenUtilities,
19
+ { ENTER_KEY_CODE,
21
20
  ESCAPE_KEY_CODE,
22
21
  BACKSPACE_KEY_CODE,
23
22
  ARROW_UP_KEY_CODE,
@@ -46,7 +45,6 @@ class OverlayDiv extends Element {
46
45
  nativeGesturesRestored ?
47
46
  controller.suppressNativeGestures() :
48
47
  controller.restoreNativeGestures();
49
-
50
48
  }
51
49
 
52
50
  pinchStartCustomHandler = (event, element) => {
@@ -63,11 +61,11 @@ class OverlayDiv extends Element {
63
61
  controller.zoomOverlay(overlayZoom);
64
62
  }
65
63
 
66
- swipeRightCustomHandler = (event, element) => {
64
+ swipeRightCustomHandler = (event, element, top, left, spped) => {
67
65
  this.showLeftDiv();
68
66
  }
69
67
 
70
- swipeLeftCustomHandler = (event, element) => {
68
+ swipeLeftCustomHandler = (event, element, top, left, spped) => {
71
69
  this.showRightDiv();
72
70
  }
73
71
 
package/lib/eventTypes.js DELETED
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- FULLSCREENCHANGE_EVENT_TYPE: function() {
13
- return FULLSCREENCHANGE_EVENT_TYPE;
14
- },
15
- TOUCHEND_EVENT_TYPE: function() {
16
- return TOUCHEND_EVENT_TYPE;
17
- },
18
- TOUCHMOVE_EVENT_TYPE: function() {
19
- return TOUCHMOVE_EVENT_TYPE;
20
- },
21
- TOUCHSTART_EVENT_TYPE: function() {
22
- return TOUCHSTART_EVENT_TYPE;
23
- }
24
- });
25
- var FULLSCREENCHANGE_EVENT_TYPE = "fullscreenchange";
26
- var TOUCHSTART_EVENT_TYPE = "touchstart";
27
- var TOUCHMOVE_EVENT_TYPE = "touchmove";
28
- var TOUCHEND_EVENT_TYPE = "touchend";
29
-
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ldmVudFR5cGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgY29uc3QgRlVMTFNDUkVFTkNIQU5HRV9FVkVOVF9UWVBFID0gXCJmdWxsc2NyZWVuY2hhbmdlXCI7XG5leHBvcnQgY29uc3QgVE9VQ0hTVEFSVF9FVkVOVF9UWVBFID0gXCJ0b3VjaHN0YXJ0XCI7XG5leHBvcnQgY29uc3QgVE9VQ0hNT1ZFX0VWRU5UX1RZUEUgPSBcInRvdWNobW92ZVwiO1xuZXhwb3J0IGNvbnN0IFRPVUNIRU5EX0VWRU5UX1RZUEUgPSBcInRvdWNoZW5kXCI7XG4iXSwibmFtZXMiOlsiRlVMTFNDUkVFTkNIQU5HRV9FVkVOVF9UWVBFIiwiVE9VQ0hFTkRfRVZFTlRfVFlQRSIsIlRPVUNITU9WRV9FVkVOVF9UWVBFIiwiVE9VQ0hTVEFSVF9FVkVOVF9UWVBFIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBRWFBLDJCQUEyQjtlQUEzQkE7O0lBR0FDLG1CQUFtQjtlQUFuQkE7O0lBREFDLG9CQUFvQjtlQUFwQkE7O0lBREFDLHFCQUFxQjtlQUFyQkE7OztBQUROLElBQU1ILDhCQUE4QjtBQUNwQyxJQUFNRyx3QkFBd0I7QUFDOUIsSUFBTUQsdUJBQXVCO0FBQzdCLElBQU1ELHNCQUFzQiJ9