highmark-cli 0.0.133 → 0.0.135

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.
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "leafNodesFromNodeList", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return leafNodesFromNodeList;
9
+ }
10
+ });
11
+ var _necessary = require("necessary");
12
+ function _array_like_to_array(arr, len) {
13
+ if (len == null || len > arr.length) len = arr.length;
14
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
15
+ return arr2;
16
+ }
17
+ function _array_without_holes(arr) {
18
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
19
+ }
20
+ function _iterable_to_array(iter) {
21
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
22
+ }
23
+ function _non_iterable_spread() {
24
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
25
+ }
26
+ function _to_consumable_array(arr) {
27
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
28
+ }
29
+ function _unsupported_iterable_to_array(o, minLen) {
30
+ if (!o) return;
31
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
32
+ var n = Object.prototype.toString.call(o).slice(8, -1);
33
+ if (n === "Object" && o.constructor) n = o.constructor.name;
34
+ if (n === "Map" || n === "Set") return Array.from(n);
35
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
36
+ }
37
+ var filter = _necessary.arrayUtilities.filter;
38
+ function leafNodesFromNodeList(nodeList) {
39
+ var nodes = _to_consumable_array(nodeList);
40
+ filter(nodes, function(node) {
41
+ var childNodeList = node.childNodes, childNodes = _to_consumable_array(childNodeList), childNodesIncludesNodes = nodes.some(function(node) {
42
+ var childNodesIncludesNode = childNodes.includes(node);
43
+ if (childNodesIncludesNode) {
44
+ return true;
45
+ }
46
+ });
47
+ if (!childNodesIncludesNodes) {
48
+ return true;
49
+ }
50
+ });
51
+ var leafNodes = nodes; ///
52
+ return leafNodes;
53
+ }
54
+
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdHJlZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgZmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIGxlYWZOb2Rlc0Zyb21Ob2RlTGlzdChub2RlTGlzdCkge1xuICBjb25zdCBub2RlcyA9IFsgLi4ubm9kZUxpc3QgXTtcblxuICBmaWx0ZXIobm9kZXMsIChub2RlKSA9PiB7XG4gICAgY29uc3QgeyBjaGlsZE5vZGVzOiBjaGlsZE5vZGVMaXN0IH0gPSBub2RlLFxuICAgICAgICAgIGNoaWxkTm9kZXMgPSBbIC4uLmNoaWxkTm9kZUxpc3QgXSxcbiAgICAgICAgICBjaGlsZE5vZGVzSW5jbHVkZXNOb2RlcyA9IG5vZGVzLnNvbWUoKG5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkTm9kZXNJbmNsdWRlc05vZGUgPSBjaGlsZE5vZGVzLmluY2x1ZGVzKG5vZGUpO1xuXG4gICAgICAgICAgICBpZiAoY2hpbGROb2Rlc0luY2x1ZGVzTm9kZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIGlmICghY2hpbGROb2Rlc0luY2x1ZGVzTm9kZXMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgbGVhZk5vZGVzID0gbm9kZXM7ICAvLy9cblxuICByZXR1cm4gbGVhZk5vZGVzO1xufVxuIl0sIm5hbWVzIjpbImxlYWZOb2Rlc0Zyb21Ob2RlTGlzdCIsImZpbHRlciIsImFycmF5VXRpbGl0aWVzIiwibm9kZUxpc3QiLCJub2RlcyIsIm5vZGUiLCJjaGlsZE5vZGVzIiwiY2hpbGROb2RlTGlzdCIsImNoaWxkTm9kZXNJbmNsdWRlc05vZGVzIiwic29tZSIsImNoaWxkTm9kZXNJbmNsdWRlc05vZGUiLCJpbmNsdWRlcyIsImxlYWZOb2RlcyJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNZ0JBOzs7ZUFBQUE7Ozt5QkFKZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFL0IsSUFBTSxBQUFFQyxTQUFXQyx5QkFBYyxDQUF6QkQ7QUFFRCxTQUFTRCxzQkFBc0JHLFFBQVE7SUFDNUMsSUFBTUMsUUFBVSxxQkFBR0Q7SUFFbkJGLE9BQU9HLE9BQU8sU0FBQ0M7UUFDYixJQUFRQyxBQUFZQyxnQkFBa0JGLEtBQTlCQyxZQUNGQSxhQUFlLHFCQUFHQyxnQkFDbEJDLDBCQUEwQkosTUFBTUssSUFBSSxDQUFDLFNBQUNKO1lBQ3BDLElBQU1LLHlCQUF5QkosV0FBV0ssUUFBUSxDQUFDTjtZQUVuRCxJQUFJSyx3QkFBd0I7Z0JBQzFCLE9BQU87WUFDVDtRQUNGO1FBRU4sSUFBSSxDQUFDRix5QkFBeUI7WUFDNUIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxJQUFNSSxZQUFZUixPQUFRLEdBQUc7SUFFN0IsT0FBT1E7QUFDVCJ9
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return Velocity;
9
+ }
10
+ });
11
+ function _class_call_check(instance, Constructor) {
12
+ if (!(instance instanceof Constructor)) {
13
+ throw new TypeError("Cannot call a class as a function");
14
+ }
15
+ }
16
+ function _defineProperties(target, props) {
17
+ for(var i = 0; i < props.length; i++){
18
+ var descriptor = props[i];
19
+ descriptor.enumerable = descriptor.enumerable || false;
20
+ descriptor.configurable = true;
21
+ if ("value" in descriptor) descriptor.writable = true;
22
+ Object.defineProperty(target, descriptor.key, descriptor);
23
+ }
24
+ }
25
+ function _create_class(Constructor, protoProps, staticProps) {
26
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
+ if (staticProps) _defineProperties(Constructor, staticProps);
28
+ return Constructor;
29
+ }
30
+ var Velocity = /*#__PURE__*/ function() {
31
+ function Velocity(time, magnitude, direction) {
32
+ _class_call_check(this, Velocity);
33
+ this.time = time;
34
+ this.magnitude = magnitude;
35
+ this.direction = direction;
36
+ }
37
+ _create_class(Velocity, [
38
+ {
39
+ key: "getTime",
40
+ value: function getTime() {
41
+ return this.time;
42
+ }
43
+ },
44
+ {
45
+ key: "getMagnitude",
46
+ value: function getMagnitude() {
47
+ return this.magnitude;
48
+ }
49
+ },
50
+ {
51
+ key: "getDirection",
52
+ value: function getDirection() {
53
+ return this.direction;
54
+ }
55
+ },
56
+ {
57
+ key: "getSpeed",
58
+ value: function getSpeed() {
59
+ var speed = this.time === 0 ? 0 : this.magnitude / this.time;
60
+ return speed;
61
+ }
62
+ },
63
+ {
64
+ key: "getAbsoluteDirection",
65
+ value: function getAbsoluteDirection() {
66
+ var absoluteDirection = Math.abs(this.direction);
67
+ return absoluteDirection;
68
+ }
69
+ }
70
+ ], [
71
+ {
72
+ key: "fromPositionAndStartPosition",
73
+ value: function fromPositionAndStartPosition(position, startPosition) {
74
+ var relativePosition = position.minus(startPosition), time = relativePosition.getTime(), magnitude = relativePosition.getMagnitude(), direction = relativePosition.getDirection(), velocity = new Velocity(time, magnitude, direction);
75
+ return velocity;
76
+ }
77
+ }
78
+ ]);
79
+ return Velocity;
80
+ }();
81
+
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92ZWxvY2l0eS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2NpdHkge1xuICBjb25zdHJ1Y3Rvcih0aW1lLCBtYWduaXR1ZGUsIGRpcmVjdGlvbikge1xuICAgIHRoaXMudGltZSA9IHRpbWU7XG4gICAgdGhpcy5tYWduaXR1ZGUgPSBtYWduaXR1ZGU7XG4gICAgdGhpcy5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gIH1cblxuICBnZXRUaW1lKCkge1xuICAgIHJldHVybiB0aGlzLnRpbWU7XG4gIH1cblxuICBnZXRNYWduaXR1ZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFnbml0dWRlO1xuICB9XG5cbiAgZ2V0RGlyZWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmRpcmVjdGlvbjtcbiAgfVxuXG4gIGdldFNwZWVkKCkge1xuICAgIGNvbnN0IHNwZWVkID0gKHRoaXMudGltZSA9PT0gMCkgP1xuICAgICAgICAgICAgICAgICAgICAwIDogLy8vXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYWduaXR1ZGUgLyB0aGlzLnRpbWU7XG5cbiAgICByZXR1cm4gc3BlZWQ7XG4gIH1cblxuICBnZXRBYnNvbHV0ZURpcmVjdGlvbigpIHtcbiAgICBjb25zdCBhYnNvbHV0ZURpcmVjdGlvbiA9IE1hdGguYWJzKHRoaXMuZGlyZWN0aW9uKTtcblxuICAgIHJldHVybiBhYnNvbHV0ZURpcmVjdGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUG9zaXRpb25BbmRTdGFydFBvc2l0aW9uKHBvc2l0aW9uLCBzdGFydFBvc2l0aW9uKSB7XG4gICAgY29uc3QgcmVsYXRpdmVQb3NpdGlvbiA9IHBvc2l0aW9uLm1pbnVzKHN0YXJ0UG9zaXRpb24pLFxuICAgICAgICAgIHRpbWUgPSByZWxhdGl2ZVBvc2l0aW9uLmdldFRpbWUoKSxcbiAgICAgICAgICBtYWduaXR1ZGUgPSByZWxhdGl2ZVBvc2l0aW9uLmdldE1hZ25pdHVkZSgpLFxuICAgICAgICAgIGRpcmVjdGlvbiA9IHJlbGF0aXZlUG9zaXRpb24uZ2V0RGlyZWN0aW9uKCksXG4gICAgICAgICAgdmVsb2NpdHkgPSBuZXcgVmVsb2NpdHkodGltZSwgbWFnbml0dWRlLCBkaXJlY3Rpb24pO1xuXG4gICAgcmV0dXJuIHZlbG9jaXR5O1xuICB9XG59XG4iXSwibmFtZXMiOlsiVmVsb2NpdHkiLCJ0aW1lIiwibWFnbml0dWRlIiwiZGlyZWN0aW9uIiwiZ2V0VGltZSIsImdldE1hZ25pdHVkZSIsImdldERpcmVjdGlvbiIsImdldFNwZWVkIiwic3BlZWQiLCJnZXRBYnNvbHV0ZURpcmVjdGlvbiIsImFic29sdXRlRGlyZWN0aW9uIiwiTWF0aCIsImFicyIsImZyb21Qb3NpdGlvbkFuZFN0YXJ0UG9zaXRpb24iLCJwb3NpdGlvbiIsInN0YXJ0UG9zaXRpb24iLCJyZWxhdGl2ZVBvc2l0aW9uIiwibWludXMiLCJ2ZWxvY2l0eSJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBRXFCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFOLElBQUEsQUFBTUEseUJBQUQsQUFBTDthQUFNQSxTQUNQQyxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsU0FBUztnQ0FEbkJIO1FBRWpCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENBQUNDLFNBQVMsR0FBR0E7O2tCQUpBSDs7WUFPbkJJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsSUFBSTtZQUNsQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsU0FBUztZQUN2Qjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsU0FBUztZQUN2Qjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxRQUFRLEFBQUMsSUFBSSxDQUFDUCxJQUFJLEtBQUssSUFDYixJQUNFLElBQUksQ0FBQ0MsU0FBUyxHQUFHLElBQUksQ0FBQ0QsSUFBSTtnQkFFNUMsT0FBT087WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxvQkFBb0JDLEtBQUtDLEdBQUcsQ0FBQyxJQUFJLENBQUNULFNBQVM7Z0JBRWpELE9BQU9PO1lBQ1Q7Ozs7WUFFT0csS0FBQUE7bUJBQVAsU0FBT0EsNkJBQTZCQyxRQUFRLEVBQUVDLGFBQWE7Z0JBQ3pELElBQU1DLG1CQUFtQkYsU0FBU0csS0FBSyxDQUFDRixnQkFDbENkLE9BQU9lLGlCQUFpQlosT0FBTyxJQUMvQkYsWUFBWWMsaUJBQWlCWCxZQUFZLElBQ3pDRixZQUFZYSxpQkFBaUJWLFlBQVksSUFDekNZLFdBQVcsSUF0Q0FsQixTQXNDYUMsTUFBTUMsV0FBV0M7Z0JBRS9DLE9BQU9lO1lBQ1Q7OztXQXpDbUJsQiJ9
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ var _easy = require("easy");
12
+ var _easywithstyle = /*#__PURE__*/ _interop_require_default(require("easy-with-style"));
13
+ var _event = /*#__PURE__*/ _interop_require_default(require("../../mixins/event"));
14
+ var _touch = /*#__PURE__*/ _interop_require_default(require("../../mixins/touch"));
15
+ function _assert_this_initialized(self) {
16
+ if (self === void 0) {
17
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
18
+ }
19
+ return self;
20
+ }
21
+ function _class_call_check(instance, Constructor) {
22
+ if (!(instance instanceof Constructor)) {
23
+ throw new TypeError("Cannot call a class as a function");
24
+ }
25
+ }
26
+ function _construct(Parent, args, Class) {
27
+ if (_is_native_reflect_construct()) {
28
+ _construct = Reflect.construct;
29
+ } else {
30
+ _construct = function construct(Parent, args, Class) {
31
+ var a = [
32
+ null
33
+ ];
34
+ a.push.apply(a, args);
35
+ var Constructor = Function.bind.apply(Parent, a);
36
+ var instance = new Constructor();
37
+ if (Class) _set_prototype_of(instance, Class.prototype);
38
+ return instance;
39
+ };
40
+ }
41
+ return _construct.apply(null, arguments);
42
+ }
43
+ function _defineProperties(target, props) {
44
+ for(var i = 0; i < props.length; i++){
45
+ var descriptor = props[i];
46
+ descriptor.enumerable = descriptor.enumerable || false;
47
+ descriptor.configurable = true;
48
+ if ("value" in descriptor) descriptor.writable = true;
49
+ Object.defineProperty(target, descriptor.key, descriptor);
50
+ }
51
+ }
52
+ function _create_class(Constructor, protoProps, staticProps) {
53
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
54
+ if (staticProps) _defineProperties(Constructor, staticProps);
55
+ return Constructor;
56
+ }
57
+ function _define_property(obj, key, value) {
58
+ if (key in obj) {
59
+ Object.defineProperty(obj, key, {
60
+ value: value,
61
+ enumerable: true,
62
+ configurable: true,
63
+ writable: true
64
+ });
65
+ } else {
66
+ obj[key] = value;
67
+ }
68
+ return obj;
69
+ }
70
+ function _get_prototype_of(o) {
71
+ _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
72
+ return o.__proto__ || Object.getPrototypeOf(o);
73
+ };
74
+ return _get_prototype_of(o);
75
+ }
76
+ function _inherits(subClass, superClass) {
77
+ if (typeof superClass !== "function" && superClass !== null) {
78
+ throw new TypeError("Super expression must either be null or a function");
79
+ }
80
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
81
+ constructor: {
82
+ value: subClass,
83
+ writable: true,
84
+ configurable: true
85
+ }
86
+ });
87
+ if (superClass) _set_prototype_of(subClass, superClass);
88
+ }
89
+ function _interop_require_default(obj) {
90
+ return obj && obj.__esModule ? obj : {
91
+ default: obj
92
+ };
93
+ }
94
+ function _is_native_function(fn) {
95
+ return Function.toString.call(fn).indexOf("[native code]") !== -1;
96
+ }
97
+ function _possible_constructor_return(self, call) {
98
+ if (call && (_type_of(call) === "object" || typeof call === "function")) {
99
+ return call;
100
+ }
101
+ return _assert_this_initialized(self);
102
+ }
103
+ function _set_prototype_of(o, p) {
104
+ _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
105
+ o.__proto__ = p;
106
+ return o;
107
+ };
108
+ return _set_prototype_of(o, p);
109
+ }
110
+ function _tagged_template_literal(strings, raw) {
111
+ if (!raw) {
112
+ raw = strings.slice(0);
113
+ }
114
+ return Object.freeze(Object.defineProperties(strings, {
115
+ raw: {
116
+ value: Object.freeze(raw)
117
+ }
118
+ }));
119
+ }
120
+ function _type_of(obj) {
121
+ "@swc/helpers - typeof";
122
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
123
+ }
124
+ function _wrap_native_super(Class) {
125
+ var _cache = typeof Map === "function" ? new Map() : undefined;
126
+ _wrap_native_super = function wrapNativeSuper(Class) {
127
+ if (Class === null || !_is_native_function(Class)) return Class;
128
+ if (typeof Class !== "function") {
129
+ throw new TypeError("Super expression must either be null or a function");
130
+ }
131
+ if (typeof _cache !== "undefined") {
132
+ if (_cache.has(Class)) return _cache.get(Class);
133
+ _cache.set(Class, Wrapper);
134
+ }
135
+ function Wrapper() {
136
+ return _construct(Class, arguments, _get_prototype_of(this).constructor);
137
+ }
138
+ Wrapper.prototype = Object.create(Class.prototype, {
139
+ constructor: {
140
+ value: Wrapper,
141
+ enumerable: false,
142
+ writable: true,
143
+ configurable: true
144
+ }
145
+ });
146
+ return _set_prototype_of(Wrapper, Class);
147
+ };
148
+ return _wrap_native_super(Class);
149
+ }
150
+ function _is_native_reflect_construct() {
151
+ if (typeof Reflect === "undefined" || !Reflect.construct) return false;
152
+ if (Reflect.construct.sham) return false;
153
+ if (typeof Proxy === "function") return true;
154
+ try {
155
+ Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
156
+ return true;
157
+ } catch (e) {
158
+ return false;
159
+ }
160
+ }
161
+ function _create_super(Derived) {
162
+ var hasNativeReflectConstruct = _is_native_reflect_construct();
163
+ return function _createSuperInternal() {
164
+ var Super = _get_prototype_of(Derived), result;
165
+ if (hasNativeReflectConstruct) {
166
+ var NewTarget = _get_prototype_of(this).constructor;
167
+ result = Reflect.construct(Super, arguments, NewTarget);
168
+ } else {
169
+ result = Super.apply(this, arguments);
170
+ }
171
+ return _possible_constructor_return(this, result);
172
+ };
173
+ }
174
+ function _templateObject() {
175
+ var data = _tagged_template_literal([
176
+ "\n\n width: 100vw;\n position: absolute;\n min-height: 100vh;\n \n @keyframes wiggle {\n 0% { transform: translateX(-5px); }\n 50% { transform: translateX(5px); }\n 100% { transform: translateX(-5px); }\n }\n \n .wiggle {\n animation: wiggle 0.5s ease-in-out 1;\n }\n\n"
177
+ ]);
178
+ _templateObject = function _templateObject() {
179
+ return data;
180
+ };
181
+ return data;
182
+ }
183
+ var LeafDiv = /*#__PURE__*/ function(Element) {
184
+ _inherits(LeafDiv, Element);
185
+ var _super = _create_super(LeafDiv);
186
+ function LeafDiv() {
187
+ _class_call_check(this, LeafDiv);
188
+ return _super.apply(this, arguments);
189
+ }
190
+ _create_class(LeafDiv, [
191
+ {
192
+ key: "wiggle",
193
+ value: function wiggle() {
194
+ this.removeClass("wiggle");
195
+ this.addClass("wiggle");
196
+ }
197
+ },
198
+ {
199
+ key: "didMount",
200
+ value: function didMount() {
201
+ this.enableTouch();
202
+ }
203
+ },
204
+ {
205
+ key: "willUnmount",
206
+ value: function willUnmount() {
207
+ this.disableTouch();
208
+ }
209
+ }
210
+ ]);
211
+ return LeafDiv;
212
+ }(_wrap_native_super(_easy.Element));
213
+ _define_property(LeafDiv, "tagName", "div");
214
+ _define_property(LeafDiv, "defaultProperties", {
215
+ className: "leaf"
216
+ });
217
+ Object.assign(LeafDiv.prototype, _event.default);
218
+ Object.assign(LeafDiv.prototype, _touch.default);
219
+ var _default = (0, _easywithstyle.default)(LeafDiv)(_templateObject());
220
+
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92aWV3L2Rpdi9sZWFmLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcImVhc3lcIjtcblxuaW1wb3J0IHdpdGhTdHlsZSBmcm9tIFwiZWFzeS13aXRoLXN0eWxlXCI7ICAvLy9cblxuaW1wb3J0IGV2ZW50TWl4aW5zIGZyb20gXCIuLi8uLi9taXhpbnMvZXZlbnRcIjtcbmltcG9ydCB0b3VjaE1peGlucyBmcm9tIFwiLi4vLi4vbWl4aW5zL3RvdWNoXCI7XG5cbmNsYXNzIExlYWZEaXYgZXh0ZW5kcyBFbGVtZW50IHtcbiAgd2lnZ2xlKCkge1xuICAgIHRoaXMucmVtb3ZlQ2xhc3MoXCJ3aWdnbGVcIik7XG4gICAgdGhpcy5hZGRDbGFzcyhcIndpZ2dsZVwiKTtcbiAgfVxuXG4gIGRpZE1vdW50KCkge1xuICAgIHRoaXMuZW5hYmxlVG91Y2goKTtcbiAgfVxuXG4gIHdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMuZGlzYWJsZVRvdWNoKCk7XG4gIH1cblxuICBzdGF0aWMgdGFnTmFtZSA9IFwiZGl2XCI7XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wZXJ0aWVzID0ge1xuICAgIGNsYXNzTmFtZTogXCJsZWFmXCJcbiAgfTtcbn1cblxuT2JqZWN0LmFzc2lnbihMZWFmRGl2LnByb3RvdHlwZSwgZXZlbnRNaXhpbnMpO1xuT2JqZWN0LmFzc2lnbihMZWFmRGl2LnByb3RvdHlwZSwgdG91Y2hNaXhpbnMpO1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGUoTGVhZkRpdilgXG5cbiAgd2lkdGg6IDEwMHZ3O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBcbiAgQGtleWZyYW1lcyB3aWdnbGUge1xuICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01cHgpOyB9XG4gICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01cHgpOyB9XG4gIH1cbiAgXG4gIC53aWdnbGUge1xuICAgIGFuaW1hdGlvbjogd2lnZ2xlIDAuNXMgZWFzZS1pbi1vdXQgMTtcbiAgfVxuXG5gO1xuIl0sIm5hbWVzIjpbIkxlYWZEaXYiLCJ3aWdnbGUiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwiZGlkTW91bnQiLCJlbmFibGVUb3VjaCIsIndpbGxVbm1vdW50IiwiZGlzYWJsZVRvdWNoIiwiRWxlbWVudCIsInRhZ05hbWUiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSIsIk9iamVjdCIsImFzc2lnbiIsInByb3RvdHlwZSIsImV2ZW50TWl4aW5zIiwidG91Y2hNaXhpbnMiLCJ3aXRoU3R5bGUiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWlDQTs7O2VBQUE7OztvQkEvQndCO29FQUVGOzREQUVFOzREQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXhCLElBQUEsQUFBTUEsd0JBQUQsQUFBTDtjQUFNQTsrQkFBQUE7YUFBQUE7Z0NBQUFBOzs7a0JBQUFBOztZQUNKQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBSSxDQUFDQyxXQUFXLENBQUM7Z0JBQ2pCLElBQUksQ0FBQ0MsUUFBUSxDQUFDO1lBQ2hCOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUksQ0FBQ0MsV0FBVztZQUNsQjs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFJLENBQUNDLFlBQVk7WUFDbkI7OztXQVpJUDtxQkFBZ0JRLGFBQU87QUFjM0IsaUJBZElSLFNBY0dTLFdBQVU7QUFFakIsaUJBaEJJVCxTQWdCR1UscUJBQW9CO0lBQ3pCQyxXQUFXO0FBQ2I7QUFHRkMsT0FBT0MsTUFBTSxDQUFDYixRQUFRYyxTQUFTLEVBQUVDLGNBQVc7QUFDNUNILE9BQU9DLE1BQU0sQ0FBQ2IsUUFBUWMsU0FBUyxFQUFFRSxjQUFXO0lBRTVDLFdBQWVDLElBQUFBLHNCQUFTLEVBQUNqQiJ9
package/lib/view.js CHANGED
@@ -8,7 +8,12 @@ Object.defineProperty(exports, "default", {
8
8
  return View;
9
9
  }
10
10
  });
11
+ var _necessary = require("necessary");
11
12
  var _easy = require("easy");
13
+ var _leaf = /*#__PURE__*/ _interop_require_default(require("./view/div/leaf"));
14
+ var _tree = require("./utilities/tree");
15
+ var _element = require("./utilities/element");
16
+ var _constants = require("./constants");
12
17
  function _assert_this_initialized(self) {
13
18
  if (self === void 0) {
14
19
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
@@ -83,6 +88,11 @@ function _inherits(subClass, superClass) {
83
88
  });
84
89
  if (superClass) _set_prototype_of(subClass, superClass);
85
90
  }
91
+ function _interop_require_default(obj) {
92
+ return obj && obj.__esModule ? obj : {
93
+ default: obj
94
+ };
95
+ }
86
96
  function _is_native_function(fn) {
87
97
  return Function.toString.call(fn).indexOf("[native code]") !== -1;
88
98
  }
@@ -153,18 +163,234 @@ function _create_super(Derived) {
153
163
  return _possible_constructor_return(this, result);
154
164
  };
155
165
  }
166
+ 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;
156
167
  var View = /*#__PURE__*/ function(Element) {
157
168
  _inherits(View, Element);
158
169
  var _super = _create_super(View);
159
170
  function View() {
160
171
  _class_call_check(this, View);
161
- return _super.apply(this, arguments);
172
+ var _this;
173
+ _this = _super.apply(this, arguments);
174
+ _define_property(_assert_this_initialized(_this), "swipeRightCustomHandler", function(event, element) {
175
+ var swipesDisabled = _this.areSwipesDisabled();
176
+ if (swipesDisabled) {
177
+ return;
178
+ }
179
+ _this.disableSwipes();
180
+ _this.showLeftLeafDiv();
181
+ _this.waitToEnableSwipes();
182
+ });
183
+ _define_property(_assert_this_initialized(_this), "swipeLeftCustomHandler", function(event, element) {
184
+ var swipesDisabled = _this.areSwipesDisabled();
185
+ if (swipesDisabled) {
186
+ return;
187
+ }
188
+ _this.disableSwipes();
189
+ _this.showRightLeftDiv();
190
+ _this.waitToEnableSwipes();
191
+ });
192
+ _define_property(_assert_this_initialized(_this), "tapCustomHandler", function(event, element) {
193
+ ///
194
+ });
195
+ _define_property(_assert_this_initialized(_this), "clickHandler", function(event, element) {
196
+ var pageX = event.pageX, width = _this.getWidth(), clickWidthRatio = pageX / width;
197
+ if (clickWidthRatio < _constants.MAXIMUM_CLICK_WIDTH_RATIO) {
198
+ _this.showLeftLeafDiv();
199
+ }
200
+ if (1 - clickWidthRatio < _constants.MAXIMUM_CLICK_WIDTH_RATIO) {
201
+ _this.showRightLeftDiv();
202
+ }
203
+ });
204
+ _define_property(_assert_this_initialized(_this), "keyDownHandler", function(event, element) {
205
+ var keyCode = event.keyCode;
206
+ switch(keyCode){
207
+ case ENTER_KEY_CODE:
208
+ case ARROW_RIGHT_KEY_CODE:
209
+ {
210
+ _this.showRightLeftDiv();
211
+ event.preventDefault();
212
+ break;
213
+ }
214
+ case BACKSPACE_KEY_CODE:
215
+ case ARROW_LEFT_KEY_CODE:
216
+ {
217
+ _this.showLeftLeafDiv();
218
+ event.preventDefault();
219
+ break;
220
+ }
221
+ case ESCAPE_KEY_CODE:
222
+ {
223
+ break;
224
+ }
225
+ case ARROW_UP_KEY_CODE:
226
+ {
227
+ _this.showFirstLeftDiv();
228
+ event.preventDefault();
229
+ break;
230
+ }
231
+ case ARROW_DOWN_KEY_CODE:
232
+ {
233
+ _this.showLastLeafDiv();
234
+ event.preventDefault();
235
+ break;
236
+ }
237
+ }
238
+ });
239
+ return _this;
162
240
  }
163
241
  _create_class(View, [
242
+ {
243
+ key: "showFirstLeftDiv",
244
+ value: function showFirstLeftDiv() {
245
+ var showingLeafDiv = this.findShowingLeafDiv(), leafDivs = this.getLeafDivs(), index = leafDivs.indexOf(showingLeafDiv), nextIndex = 0, previousIndex = index; ///
246
+ this.showNextLeafDiv(nextIndex, previousIndex);
247
+ }
248
+ },
249
+ {
250
+ key: "showLeftLeafDiv",
251
+ value: function showLeftLeafDiv() {
252
+ var showingLeafDiv = this.findShowingLeafDiv(), leafDivs = this.getLeafDivs(), index = leafDivs.indexOf(showingLeafDiv), nextIndex = index - 1, previousIndex = index; ///
253
+ this.showNextLeafDiv(nextIndex, previousIndex);
254
+ }
255
+ },
256
+ {
257
+ key: "showRightLeftDiv",
258
+ value: function showRightLeftDiv() {
259
+ var showingLeafDiv = this.findShowingLeafDiv(), leafDivs = this.getLeafDivs(), index = leafDivs.indexOf(showingLeafDiv), nextIndex = index + 1, previousIndex = index; ///
260
+ this.showNextLeafDiv(nextIndex, previousIndex);
261
+ }
262
+ },
263
+ {
264
+ key: "showLastLeafDiv",
265
+ value: function showLastLeafDiv() {
266
+ var showingLeafDiv = this.findShowingLeafDiv(), leafDivs = this.getLeafDivs(), index = leafDivs.indexOf(showingLeafDiv), nextIndex = leafDivs.length - 1, previousIndex = index; ///
267
+ this.showNextLeafDiv(nextIndex, previousIndex);
268
+ }
269
+ },
270
+ {
271
+ key: "showNextLeafDiv",
272
+ value: function showNextLeafDiv(nextIndex, previousIndex) {
273
+ var leafDivs = this.getLeafDivs(), leafDivsLength = leafDivs.length, previousLeafDiv = leafDivs[previousIndex];
274
+ if (nextIndex === -1 || nextIndex === previousIndex || nextIndex === leafDivsLength) {
275
+ previousLeafDiv.wiggle();
276
+ return;
277
+ }
278
+ var nextLeafDiv = leafDivs[nextIndex];
279
+ nextLeafDiv.show();
280
+ previousLeafDiv.hide();
281
+ }
282
+ },
283
+ {
284
+ key: "forEachLeafDiv",
285
+ value: function forEachLeafDiv(callback) {
286
+ var leafDivs = this.getLeafDivs();
287
+ leafDivs.forEach(callback);
288
+ }
289
+ },
290
+ {
291
+ key: "findShowingLeafDiv",
292
+ value: function findShowingLeafDiv() {
293
+ var leafDivs = this.getLeafDivs(), showingLeafDiv = leafDivs.find(function(leafDiv) {
294
+ var showing = leafDiv.isShowing();
295
+ if (showing) {
296
+ return true;
297
+ }
298
+ });
299
+ return showingLeafDiv;
300
+ }
301
+ },
302
+ {
303
+ key: "disableSwipes",
304
+ value: function disableSwipes() {
305
+ var swipesDisabled = true;
306
+ this.setSwipesDisabled(swipesDisabled);
307
+ }
308
+ },
309
+ {
310
+ key: "enableSwipes",
311
+ value: function enableSwipes() {
312
+ var swipesDisabled = false;
313
+ this.setSwipesDisabled(swipesDisabled);
314
+ }
315
+ },
316
+ {
317
+ key: "waitToEnableSwipes",
318
+ value: function waitToEnableSwipes() {
319
+ var _this = this;
320
+ var delay = _constants.ENABLE_SWIPES_DELAY;
321
+ setTimeout(function() {
322
+ _this.enableSwipes();
323
+ }, delay);
324
+ }
325
+ },
326
+ {
327
+ key: "getLeafDivs",
328
+ value: function getLeafDivs() {
329
+ var leafDivs = this.getState().leafDivs;
330
+ return leafDivs;
331
+ }
332
+ },
333
+ {
334
+ key: "setLeftDivs",
335
+ value: function setLeftDivs(leafDivs) {
336
+ this.updateState({
337
+ leafDivs: leafDivs
338
+ });
339
+ }
340
+ },
341
+ {
342
+ key: "areSwipesDisabled",
343
+ value: function areSwipesDisabled() {
344
+ var swipesDisabled = this.getState().swipesDisabled;
345
+ return swipesDisabled;
346
+ }
347
+ },
348
+ {
349
+ key: "setSwipesDisabled",
350
+ value: function setSwipesDisabled(swipesDisabled) {
351
+ this.updateState({
352
+ swipesDisabled: swipesDisabled
353
+ });
354
+ }
355
+ },
356
+ {
357
+ key: "setInitialState",
358
+ value: function setInitialState() {
359
+ var _this = this;
360
+ var viewChildDivDOMElementNodeList = document.querySelectorAll(_constants.VIEW_CHILD_DIVS_SELECTOR), viewChildDivDOMElements = (0, _tree.leafNodesFromNodeList)(viewChildDivDOMElementNodeList), leafDivs = (0, _element.elementsFromDOMElements)(viewChildDivDOMElements, function() {
361
+ return /*#__PURE__*/ React.createElement(_leaf.default, {
362
+ onCustomTap: _this.tapCustomHandler,
363
+ onCustomSwipeLeft: _this.swipeLeftCustomHandler,
364
+ onCustomSwipeRight: _this.swipeRightCustomHandler
365
+ });
366
+ }), swipesDisabled = false;
367
+ this.setState({
368
+ leafDivs: leafDivs,
369
+ swipesDisabled: swipesDisabled
370
+ });
371
+ }
372
+ },
373
+ {
374
+ key: "didMount",
375
+ value: function didMount() {
376
+ this.onClick(this.clickHandler);
377
+ _easy.window.onKeyDown(this.keyDownHandler);
378
+ }
379
+ },
380
+ {
381
+ key: "willUnmount",
382
+ value: function willUnmount() {
383
+ this.offClick(this.clickHandler);
384
+ _easy.window.offKeyDown(this.keyDownHandler);
385
+ }
386
+ },
164
387
  {
165
388
  key: "initialise",
166
389
  value: function initialise() {
167
- this.assignContext();
390
+ this.setInitialState();
391
+ this.forEachLeafDiv(function(leafDiv, index) {
392
+ index === 0 ? leafDiv.show() : leafDiv.hide();
393
+ });
168
394
  }
169
395
  }
170
396
  ]);
@@ -175,4 +401,4 @@ _define_property(View, "defaultProperties", {
175
401
  className: "view"
176
402
  });
177
403
 
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92aWV3LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcImVhc3lcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmlldyBleHRlbmRzIEVsZW1lbnQge1xuICBpbml0aWFsaXNlKCkge1xuICAgIHRoaXMuYXNzaWduQ29udGV4dCgpO1xuICB9XG5cbiAgc3RhdGljIHRhZ05hbWUgPSBcImRpdlwiO1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwidmlld1wiXG4gIH07XG59XG4iXSwibmFtZXMiOlsiVmlldyIsImluaXRpYWxpc2UiLCJhc3NpZ25Db250ZXh0IiwiRWxlbWVudCIsInRhZ05hbWUiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQUlxQkE7OztvQkFGRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVULElBQUEsQUFBTUEscUJBQUQsQUFBTDtjQUFNQTsrQkFBQUE7YUFBQUE7Z0NBQUFBOzs7a0JBQUFBOztZQUNuQkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUksQ0FBQ0MsYUFBYTtZQUNwQjs7O1dBSG1CRjtxQkFBYUcsYUFBTztBQUt2QyxpQkFMbUJILE1BS1pJLFdBQVU7QUFFakIsaUJBUG1CSixNQU9aSyxxQkFBb0I7SUFDekJDLFdBQVc7QUFDYiJ9
404
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92aWV3LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBrZXlDb2RlcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcbmltcG9ydCB7IEVsZW1lbnQsIHdpbmRvdyB9IGZyb20gXCJlYXN5XCI7XG5cbmltcG9ydCBMZWFmRGl2IGZyb20gXCIuL3ZpZXcvZGl2L2xlYWZcIjtcblxuaW1wb3J0IHsgbGVhZk5vZGVzRnJvbU5vZGVMaXN0IH0gZnJvbSBcIi4vdXRpbGl0aWVzL3RyZWVcIjtcbmltcG9ydCB7IGVsZW1lbnRzRnJvbURPTUVsZW1lbnRzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcbmltcG9ydCB7IEVOQUJMRV9TV0lQRVNfREVMQVksIE1BWElNVU1fQ0xJQ0tfV0lEVEhfUkFUSU8sIFZJRVdfQ0hJTERfRElWU19TRUxFQ1RPUiB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5jb25zdCB7IEVOVEVSX0tFWV9DT0RFLFxuICAgICAgICBFU0NBUEVfS0VZX0NPREUsXG4gICAgICAgIEJBQ0tTUEFDRV9LRVlfQ09ERSxcbiAgICAgICAgQVJST1dfVVBfS0VZX0NPREUsXG4gICAgICAgIEFSUk9XX0RPV05fS0VZX0NPREUsXG4gICAgICAgIEFSUk9XX0xFRlRfS0VZX0NPREUsXG4gICAgICAgIEFSUk9XX1JJR0hUX0tFWV9DT0RFIH0gPSBrZXlDb2RlcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmlldyBleHRlbmRzIEVsZW1lbnQge1xuICBzd2lwZVJpZ2h0Q3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHN3aXBlc0Rpc2FibGVkID0gdGhpcy5hcmVTd2lwZXNEaXNhYmxlZCgpO1xuXG4gICAgaWYgKHN3aXBlc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kaXNhYmxlU3dpcGVzKCk7XG4gICAgdGhpcy5zaG93TGVmdExlYWZEaXYoKTtcbiAgICB0aGlzLndhaXRUb0VuYWJsZVN3aXBlcygpO1xuICB9XG5cbiAgc3dpcGVMZWZ0Q3VzdG9tSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHN3aXBlc0Rpc2FibGVkID0gdGhpcy5hcmVTd2lwZXNEaXNhYmxlZCgpO1xuXG4gICAgaWYgKHN3aXBlc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kaXNhYmxlU3dpcGVzKCk7XG4gICAgdGhpcy5zaG93UmlnaHRMZWZ0RGl2KCk7XG4gICAgdGhpcy53YWl0VG9FbmFibGVTd2lwZXMoKTtcbiAgfVxuXG4gIHRhcEN1c3RvbUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICAvLy9cbiAgfVxuXG4gIGNsaWNrSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHsgcGFnZVggfSA9IGV2ZW50LFxuICAgICAgICAgIHdpZHRoID0gdGhpcy5nZXRXaWR0aCgpLFxuICAgICAgICAgIGNsaWNrV2lkdGhSYXRpbyA9IHBhZ2VYIC8gd2lkdGg7XG5cbiAgICBpZiAoY2xpY2tXaWR0aFJhdGlvIDwgTUFYSU1VTV9DTElDS19XSURUSF9SQVRJTykge1xuICAgICAgdGhpcy5zaG93TGVmdExlYWZEaXYoKTtcbiAgICB9XG5cbiAgICBpZiAoKDEgLSBjbGlja1dpZHRoUmF0aW8pIDwgTUFYSU1VTV9DTElDS19XSURUSF9SQVRJTykge1xuICAgICAgdGhpcy5zaG93UmlnaHRMZWZ0RGl2KCk7XG4gICAgfVxuICB9XG5cbiAga2V5RG93bkhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICBjb25zdCB7IGtleUNvZGUgfSA9IGV2ZW50O1xuXG4gICAgc3dpdGNoIChrZXlDb2RlKSB7XG4gICAgICBjYXNlIEVOVEVSX0tFWV9DT0RFOlxuICAgICAgY2FzZSBBUlJPV19SSUdIVF9LRVlfQ09ERToge1xuICAgICAgICB0aGlzLnNob3dSaWdodExlZnREaXYoKTtcblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIEJBQ0tTUEFDRV9LRVlfQ09ERTpcbiAgICAgIGNhc2UgQVJST1dfTEVGVF9LRVlfQ09ERToge1xuICAgICAgICB0aGlzLnNob3dMZWZ0TGVhZkRpdigpO1xuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgRVNDQVBFX0tFWV9DT0RFOiB7XG4gICAgICAgIC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIEFSUk9XX1VQX0tFWV9DT0RFOiB7XG4gICAgICAgIHRoaXMuc2hvd0ZpcnN0TGVmdERpdigpO1xuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgQVJST1dfRE9XTl9LRVlfQ09ERToge1xuICAgICAgICB0aGlzLnNob3dMYXN0TGVhZkRpdigpO1xuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2hvd0ZpcnN0TGVmdERpdigpIHtcbiAgICBjb25zdCBzaG93aW5nTGVhZkRpdiA9IHRoaXMuZmluZFNob3dpbmdMZWFmRGl2KCksXG4gICAgICAgICAgbGVhZkRpdnMgPSB0aGlzLmdldExlYWZEaXZzKCksXG4gICAgICAgICAgaW5kZXggPSBsZWFmRGl2cy5pbmRleE9mKHNob3dpbmdMZWFmRGl2KSxcbiAgICAgICAgICBuZXh0SW5kZXggPSAwLFxuICAgICAgICAgIHByZXZpb3VzSW5kZXggPSBpbmRleDsgIC8vL1xuXG4gICAgdGhpcy5zaG93TmV4dExlYWZEaXYobmV4dEluZGV4LCBwcmV2aW91c0luZGV4KTtcbiAgfVxuXG4gIHNob3dMZWZ0TGVhZkRpdigpIHtcbiAgICBjb25zdCBzaG93aW5nTGVhZkRpdiA9IHRoaXMuZmluZFNob3dpbmdMZWFmRGl2KCksXG4gICAgICAgICAgbGVhZkRpdnMgPSB0aGlzLmdldExlYWZEaXZzKCksXG4gICAgICAgICAgaW5kZXggPSBsZWFmRGl2cy5pbmRleE9mKHNob3dpbmdMZWFmRGl2KSxcbiAgICAgICAgICBuZXh0SW5kZXggPSBpbmRleCAtIDEsXG4gICAgICAgICAgcHJldmlvdXNJbmRleCA9IGluZGV4OyAgLy8vXG5cbiAgICB0aGlzLnNob3dOZXh0TGVhZkRpdihuZXh0SW5kZXgsIHByZXZpb3VzSW5kZXgpO1xuICB9XG5cbiAgc2hvd1JpZ2h0TGVmdERpdigpIHtcbiAgICBjb25zdCBzaG93aW5nTGVhZkRpdiA9IHRoaXMuZmluZFNob3dpbmdMZWFmRGl2KCksXG4gICAgICAgICAgbGVhZkRpdnMgPSB0aGlzLmdldExlYWZEaXZzKCksXG4gICAgICAgICAgaW5kZXggPSBsZWFmRGl2cy5pbmRleE9mKHNob3dpbmdMZWFmRGl2KSxcbiAgICAgICAgICBuZXh0SW5kZXggPSBpbmRleCArIDEsXG4gICAgICAgICAgcHJldmlvdXNJbmRleCA9IGluZGV4OyAgLy8vXG5cbiAgICB0aGlzLnNob3dOZXh0TGVhZkRpdihuZXh0SW5kZXgsIHByZXZpb3VzSW5kZXgpO1xuICB9XG5cbiAgc2hvd0xhc3RMZWFmRGl2KCkge1xuICAgIGNvbnN0IHNob3dpbmdMZWFmRGl2ID0gdGhpcy5maW5kU2hvd2luZ0xlYWZEaXYoKSxcbiAgICAgICAgICBsZWFmRGl2cyA9IHRoaXMuZ2V0TGVhZkRpdnMoKSxcbiAgICAgICAgICBpbmRleCA9IGxlYWZEaXZzLmluZGV4T2Yoc2hvd2luZ0xlYWZEaXYpLFxuICAgICAgICAgIG5leHRJbmRleCA9IGxlYWZEaXZzLmxlbmd0aCAtIDEsXG4gICAgICAgICAgcHJldmlvdXNJbmRleCA9IGluZGV4OyAgLy8vXG5cbiAgICB0aGlzLnNob3dOZXh0TGVhZkRpdihuZXh0SW5kZXgsIHByZXZpb3VzSW5kZXgpO1xuICB9XG5cbiAgc2hvd05leHRMZWFmRGl2KG5leHRJbmRleCwgcHJldmlvdXNJbmRleCkge1xuICAgIGNvbnN0IGxlYWZEaXZzID0gdGhpcy5nZXRMZWFmRGl2cygpLFxuICAgICAgICAgIGxlYWZEaXZzTGVuZ3RoID0gbGVhZkRpdnMubGVuZ3RoLFxuICAgICAgICAgIHByZXZpb3VzTGVhZkRpdiA9IGxlYWZEaXZzW3ByZXZpb3VzSW5kZXhdO1xuXG4gICAgaWYgKChuZXh0SW5kZXggPT09IC0xKSB8fCAobmV4dEluZGV4ID09PSBwcmV2aW91c0luZGV4KSB8fCAobmV4dEluZGV4ID09PSBsZWFmRGl2c0xlbmd0aCkpIHtcbiAgICAgIHByZXZpb3VzTGVhZkRpdi53aWdnbGUoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHRMZWFmRGl2ID0gbGVhZkRpdnNbbmV4dEluZGV4XTtcblxuICAgIG5leHRMZWFmRGl2LnNob3coKTtcblxuICAgIHByZXZpb3VzTGVhZkRpdi5oaWRlKCk7XG4gIH1cblxuICBmb3JFYWNoTGVhZkRpdihjYWxsYmFjaykge1xuICAgIGNvbnN0IGxlYWZEaXZzID0gdGhpcy5nZXRMZWFmRGl2cygpO1xuXG4gICAgbGVhZkRpdnMuZm9yRWFjaChjYWxsYmFjayk7XG4gIH1cblxuICBmaW5kU2hvd2luZ0xlYWZEaXYoKSB7XG4gICAgY29uc3QgbGVhZkRpdnMgPSB0aGlzLmdldExlYWZEaXZzKCksXG4gICAgICAgICAgc2hvd2luZ0xlYWZEaXYgPSBsZWFmRGl2cy5maW5kKChsZWFmRGl2KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzaG93aW5nID0gbGVhZkRpdi5pc1Nob3dpbmcoKTtcblxuICAgICAgICAgICAgaWYgKHNob3dpbmcpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICByZXR1cm4gc2hvd2luZ0xlYWZEaXY7XG4gIH1cblxuICBkaXNhYmxlU3dpcGVzKCkge1xuICAgIGNvbnN0IHN3aXBlc0Rpc2FibGVkID0gdHJ1ZTtcblxuICAgIHRoaXMuc2V0U3dpcGVzRGlzYWJsZWQoc3dpcGVzRGlzYWJsZWQpO1xuICB9XG5cbiAgZW5hYmxlU3dpcGVzKCkge1xuICAgIGNvbnN0IHN3aXBlc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICB0aGlzLnNldFN3aXBlc0Rpc2FibGVkKHN3aXBlc0Rpc2FibGVkKTtcbiAgfVxuXG4gIHdhaXRUb0VuYWJsZVN3aXBlcygpIHtcbiAgICBjb25zdCBkZWxheSA9IEVOQUJMRV9TV0lQRVNfREVMQVk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZW5hYmxlU3dpcGVzKCk7XG4gICAgfSwgZGVsYXkpO1xuICB9XG5cbiAgZ2V0TGVhZkRpdnMoKSB7XG4gICAgY29uc3QgeyBsZWFmRGl2cyB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gICAgcmV0dXJuIGxlYWZEaXZzO1xuICB9XG5cbiAgc2V0TGVmdERpdnMobGVhZkRpdnMpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICAgIGxlYWZEaXZzXG4gICAgfSk7XG4gIH1cblxuICBhcmVTd2lwZXNEaXNhYmxlZCgpIHtcbiAgICBjb25zdCB7IHN3aXBlc0Rpc2FibGVkIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgICByZXR1cm4gc3dpcGVzRGlzYWJsZWQ7XG4gIH1cblxuICBzZXRTd2lwZXNEaXNhYmxlZChzd2lwZXNEaXNhYmxlZCkge1xuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgICAgc3dpcGVzRGlzYWJsZWRcbiAgICB9KTtcbiAgfVxuXG4gIHNldEluaXRpYWxTdGF0ZSgpIHtcbiAgICBjb25zdCB2aWV3Q2hpbGREaXZET01FbGVtZW50Tm9kZUxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFZJRVdfQ0hJTERfRElWU19TRUxFQ1RPUiksXG4gICAgICAgICAgdmlld0NoaWxkRGl2RE9NRWxlbWVudHMgPSBsZWFmTm9kZXNGcm9tTm9kZUxpc3Qodmlld0NoaWxkRGl2RE9NRWxlbWVudE5vZGVMaXN0KSwgIC8vL1xuICAgICAgICAgIGxlYWZEaXZzID0gZWxlbWVudHNGcm9tRE9NRWxlbWVudHModmlld0NoaWxkRGl2RE9NRWxlbWVudHMsICgpID0+XG5cbiAgICAgICAgICAgIDxMZWFmRGl2IG9uQ3VzdG9tVGFwPXt0aGlzLnRhcEN1c3RvbUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICBvbkN1c3RvbVN3aXBlTGVmdD17dGhpcy5zd2lwZUxlZnRDdXN0b21IYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgb25DdXN0b21Td2lwZVJpZ2h0PXt0aGlzLnN3aXBlUmlnaHRDdXN0b21IYW5kbGVyfSAvPlxuXG4gICAgICAgICAgKSxcbiAgICAgICAgICBzd2lwZXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBsZWFmRGl2cyxcbiAgICAgIHN3aXBlc0Rpc2FibGVkXG4gICAgfSk7XG4gIH1cblxuICBkaWRNb3VudCgpIHtcbiAgICB0aGlzLm9uQ2xpY2sodGhpcy5jbGlja0hhbmRsZXIpO1xuXG4gICAgd2luZG93Lm9uS2V5RG93bih0aGlzLmtleURvd25IYW5kbGVyKTtcbiAgfVxuXG4gIHdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMub2ZmQ2xpY2sodGhpcy5jbGlja0hhbmRsZXIpO1xuXG4gICAgd2luZG93Lm9mZktleURvd24odGhpcy5rZXlEb3duSGFuZGxlcik7XG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XG5cbiAgICB0aGlzLmZvckVhY2hMZWFmRGl2KChsZWFmRGl2LCBpbmRleCkgPT4ge1xuICAgICAgKGluZGV4ID09PSAwKSA/XG4gICAgICAgIGxlYWZEaXYuc2hvdygpIDpcbiAgICAgICAgICBsZWFmRGl2LmhpZGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyB0YWdOYW1lID0gXCJkaXZcIjtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcInZpZXdcIlxuICB9O1xufVxuIl0sIm5hbWVzIjpbIlZpZXciLCJFTlRFUl9LRVlfQ09ERSIsImtleUNvZGVzIiwiRVNDQVBFX0tFWV9DT0RFIiwiQkFDS1NQQUNFX0tFWV9DT0RFIiwiQVJST1dfVVBfS0VZX0NPREUiLCJBUlJPV19ET1dOX0tFWV9DT0RFIiwiQVJST1dfTEVGVF9LRVlfQ09ERSIsIkFSUk9XX1JJR0hUX0tFWV9DT0RFIiwic3dpcGVSaWdodEN1c3RvbUhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJzd2lwZXNEaXNhYmxlZCIsImFyZVN3aXBlc0Rpc2FibGVkIiwiZGlzYWJsZVN3aXBlcyIsInNob3dMZWZ0TGVhZkRpdiIsIndhaXRUb0VuYWJsZVN3aXBlcyIsInN3aXBlTGVmdEN1c3RvbUhhbmRsZXIiLCJzaG93UmlnaHRMZWZ0RGl2IiwidGFwQ3VzdG9tSGFuZGxlciIsImNsaWNrSGFuZGxlciIsInBhZ2VYIiwid2lkdGgiLCJnZXRXaWR0aCIsImNsaWNrV2lkdGhSYXRpbyIsIk1BWElNVU1fQ0xJQ0tfV0lEVEhfUkFUSU8iLCJrZXlEb3duSGFuZGxlciIsImtleUNvZGUiLCJwcmV2ZW50RGVmYXVsdCIsInNob3dGaXJzdExlZnREaXYiLCJzaG93TGFzdExlYWZEaXYiLCJzaG93aW5nTGVhZkRpdiIsImZpbmRTaG93aW5nTGVhZkRpdiIsImxlYWZEaXZzIiwiZ2V0TGVhZkRpdnMiLCJpbmRleCIsImluZGV4T2YiLCJuZXh0SW5kZXgiLCJwcmV2aW91c0luZGV4Iiwic2hvd05leHRMZWFmRGl2IiwibGVuZ3RoIiwibGVhZkRpdnNMZW5ndGgiLCJwcmV2aW91c0xlYWZEaXYiLCJ3aWdnbGUiLCJuZXh0TGVhZkRpdiIsInNob3ciLCJoaWRlIiwiZm9yRWFjaExlYWZEaXYiLCJjYWxsYmFjayIsImZvckVhY2giLCJmaW5kIiwibGVhZkRpdiIsInNob3dpbmciLCJpc1Nob3dpbmciLCJzZXRTd2lwZXNEaXNhYmxlZCIsImVuYWJsZVN3aXBlcyIsImRlbGF5IiwiRU5BQkxFX1NXSVBFU19ERUxBWSIsInNldFRpbWVvdXQiLCJnZXRTdGF0ZSIsInNldExlZnREaXZzIiwidXBkYXRlU3RhdGUiLCJzZXRJbml0aWFsU3RhdGUiLCJ2aWV3Q2hpbGREaXZET01FbGVtZW50Tm9kZUxpc3QiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJWSUVXX0NISUxEX0RJVlNfU0VMRUNUT1IiLCJ2aWV3Q2hpbGREaXZET01FbGVtZW50cyIsImxlYWZOb2Rlc0Zyb21Ob2RlTGlzdCIsImVsZW1lbnRzRnJvbURPTUVsZW1lbnRzIiwiTGVhZkRpdiIsIm9uQ3VzdG9tVGFwIiwib25DdXN0b21Td2lwZUxlZnQiLCJvbkN1c3RvbVN3aXBlUmlnaHQiLCJzZXRTdGF0ZSIsImRpZE1vdW50Iiwib25DbGljayIsIndpbmRvdyIsIm9uS2V5RG93biIsIndpbGxVbm1vdW50Iiwib2ZmQ2xpY2siLCJvZmZLZXlEb3duIiwiaW5pdGlhbGlzZSIsIkVsZW1lbnQiLCJ0YWdOYW1lIiwiZGVmYXVsdFByb3BlcnRpZXMiLCJjbGFzc05hbWUiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBbUJxQkE7Ozt5QkFqQkk7b0JBQ087MkRBRVo7b0JBRWtCO3VCQUNFO3lCQUNpRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXpGLElBQVFDLGlCQU15QkMsbUJBQVEsQ0FOakNELGdCQUNBRSxrQkFLeUJELG1CQUFRLENBTGpDQyxpQkFDQUMscUJBSXlCRixtQkFBUSxDQUpqQ0Usb0JBQ0FDLG9CQUd5QkgsbUJBQVEsQ0FIakNHLG1CQUNBQyxzQkFFeUJKLG1CQUFRLENBRmpDSSxxQkFDQUMsc0JBQ3lCTCxtQkFBUSxDQURqQ0sscUJBQ0FDLHVCQUF5Qk4sbUJBQVEsQ0FBakNNO0FBRU8sSUFBQSxBQUFNUixxQkFBRCxBQUFMO2NBQU1BOytCQUFBQTthQUFBQTtnQ0FBQUE7OztRQUNuQlMsa0RBQUFBLDJCQUEwQixTQUFDQyxPQUFPQztZQUNoQyxJQUFNQyxpQkFBaUIsTUFBS0MsaUJBQWlCO1lBRTdDLElBQUlELGdCQUFnQjtnQkFDbEI7WUFDRjtZQUVBLE1BQUtFLGFBQWE7WUFDbEIsTUFBS0MsZUFBZTtZQUNwQixNQUFLQyxrQkFBa0I7UUFDekI7UUFFQUMsa0RBQUFBLDBCQUF5QixTQUFDUCxPQUFPQztZQUMvQixJQUFNQyxpQkFBaUIsTUFBS0MsaUJBQWlCO1lBRTdDLElBQUlELGdCQUFnQjtnQkFDbEI7WUFDRjtZQUVBLE1BQUtFLGFBQWE7WUFDbEIsTUFBS0ksZ0JBQWdCO1lBQ3JCLE1BQUtGLGtCQUFrQjtRQUN6QjtRQUVBRyxrREFBQUEsb0JBQW1CLFNBQUNULE9BQU9DO1FBQ3pCLEdBQUc7UUFDTDtRQUVBUyxrREFBQUEsZ0JBQWUsU0FBQ1YsT0FBT0M7WUFDckIsSUFBTSxBQUFFVSxRQUFVWCxNQUFWVyxPQUNGQyxRQUFRLE1BQUtDLFFBQVEsSUFDckJDLGtCQUFrQkgsUUFBUUM7WUFFaEMsSUFBSUUsa0JBQWtCQyxvQ0FBeUIsRUFBRTtnQkFDL0MsTUFBS1YsZUFBZTtZQUN0QjtZQUVBLElBQUksQUFBQyxJQUFJUyxrQkFBbUJDLG9DQUF5QixFQUFFO2dCQUNyRCxNQUFLUCxnQkFBZ0I7WUFDdkI7UUFDRjtRQUVBUSxrREFBQUEsa0JBQWlCLFNBQUNoQixPQUFPQztZQUN2QixJQUFNLEFBQUVnQixVQUFZakIsTUFBWmlCO1lBRVIsT0FBUUE7Z0JBQ04sS0FBSzFCO2dCQUNMLEtBQUtPO29CQUFzQjt3QkFDekIsTUFBS1UsZ0JBQWdCO3dCQUVyQlIsTUFBTWtCLGNBQWM7d0JBRXBCO29CQUNGO2dCQUVBLEtBQUt4QjtnQkFDTCxLQUFLRztvQkFBcUI7d0JBQ3hCLE1BQUtRLGVBQWU7d0JBRXBCTCxNQUFNa0IsY0FBYzt3QkFFcEI7b0JBQ0Y7Z0JBRUEsS0FBS3pCO29CQUFpQjt3QkFHcEI7b0JBQ0Y7Z0JBRUEsS0FBS0U7b0JBQW1CO3dCQUN0QixNQUFLd0IsZ0JBQWdCO3dCQUVyQm5CLE1BQU1rQixjQUFjO3dCQUVwQjtvQkFDRjtnQkFFQSxLQUFLdEI7b0JBQXFCO3dCQUN4QixNQUFLd0IsZUFBZTt3QkFFcEJwQixNQUFNa0IsY0FBYzt3QkFFcEI7b0JBQ0Y7WUFDRjtRQUNGOzs7a0JBdkZtQjVCOztZQXlGbkI2QixLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUUsaUJBQWlCLElBQUksQ0FBQ0Msa0JBQWtCLElBQ3hDQyxXQUFXLElBQUksQ0FBQ0MsV0FBVyxJQUMzQkMsUUFBUUYsU0FBU0csT0FBTyxDQUFDTCxpQkFDekJNLFlBQVksR0FDWkMsZ0JBQWdCSCxPQUFRLEdBQUc7Z0JBRWpDLElBQUksQ0FBQ0ksZUFBZSxDQUFDRixXQUFXQztZQUNsQzs7O1lBRUF2QixLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTWdCLGlCQUFpQixJQUFJLENBQUNDLGtCQUFrQixJQUN4Q0MsV0FBVyxJQUFJLENBQUNDLFdBQVcsSUFDM0JDLFFBQVFGLFNBQVNHLE9BQU8sQ0FBQ0wsaUJBQ3pCTSxZQUFZRixRQUFRLEdBQ3BCRyxnQkFBZ0JILE9BQVEsR0FBRztnQkFFakMsSUFBSSxDQUFDSSxlQUFlLENBQUNGLFdBQVdDO1lBQ2xDOzs7WUFFQXBCLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNYSxpQkFBaUIsSUFBSSxDQUFDQyxrQkFBa0IsSUFDeENDLFdBQVcsSUFBSSxDQUFDQyxXQUFXLElBQzNCQyxRQUFRRixTQUFTRyxPQUFPLENBQUNMLGlCQUN6Qk0sWUFBWUYsUUFBUSxHQUNwQkcsZ0JBQWdCSCxPQUFRLEdBQUc7Z0JBRWpDLElBQUksQ0FBQ0ksZUFBZSxDQUFDRixXQUFXQztZQUNsQzs7O1lBRUFSLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxpQkFBaUIsSUFBSSxDQUFDQyxrQkFBa0IsSUFDeENDLFdBQVcsSUFBSSxDQUFDQyxXQUFXLElBQzNCQyxRQUFRRixTQUFTRyxPQUFPLENBQUNMLGlCQUN6Qk0sWUFBWUosU0FBU08sTUFBTSxHQUFHLEdBQzlCRixnQkFBZ0JILE9BQVEsR0FBRztnQkFFakMsSUFBSSxDQUFDSSxlQUFlLENBQUNGLFdBQVdDO1lBQ2xDOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLGdCQUFnQkYsU0FBUyxFQUFFQyxhQUFhO2dCQUN0QyxJQUFNTCxXQUFXLElBQUksQ0FBQ0MsV0FBVyxJQUMzQk8saUJBQWlCUixTQUFTTyxNQUFNLEVBQ2hDRSxrQkFBa0JULFFBQVEsQ0FBQ0ssY0FBYztnQkFFL0MsSUFBSSxBQUFDRCxjQUFjLENBQUMsS0FBT0EsY0FBY0MsaUJBQW1CRCxjQUFjSSxnQkFBaUI7b0JBQ3pGQyxnQkFBZ0JDLE1BQU07b0JBRXRCO2dCQUNGO2dCQUVBLElBQU1DLGNBQWNYLFFBQVEsQ0FBQ0ksVUFBVTtnQkFFdkNPLFlBQVlDLElBQUk7Z0JBRWhCSCxnQkFBZ0JJLElBQUk7WUFDdEI7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsZUFBZUMsUUFBUTtnQkFDckIsSUFBTWYsV0FBVyxJQUFJLENBQUNDLFdBQVc7Z0JBRWpDRCxTQUFTZ0IsT0FBTyxDQUFDRDtZQUNuQjs7O1lBRUFoQixLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsV0FBVyxJQUFJLENBQUNDLFdBQVcsSUFDM0JILGlCQUFpQkUsU0FBU2lCLElBQUksQ0FBQyxTQUFDQztvQkFDOUIsSUFBTUMsVUFBVUQsUUFBUUUsU0FBUztvQkFFakMsSUFBSUQsU0FBUzt3QkFDWCxPQUFPO29CQUNUO2dCQUNGO2dCQUVOLE9BQU9yQjtZQUNUOzs7WUFFQWpCLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNRixpQkFBaUI7Z0JBRXZCLElBQUksQ0FBQzBDLGlCQUFpQixDQUFDMUM7WUFDekI7OztZQUVBMkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU0zQyxpQkFBaUI7Z0JBRXZCLElBQUksQ0FBQzBDLGlCQUFpQixDQUFDMUM7WUFDekI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7O2dCQUNFLElBQU13QyxRQUFRQyw4QkFBbUI7Z0JBRWpDQyxXQUFXO29CQUNULE1BQUtILFlBQVk7Z0JBQ25CLEdBQUdDO1lBQ0w7OztZQUVBdEIsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU0sQUFBRUQsV0FBYSxJQUFJLENBQUMwQixRQUFRLEdBQTFCMUI7Z0JBRVIsT0FBT0E7WUFDVDs7O1lBRUEyQixLQUFBQTttQkFBQUEsU0FBQUEsWUFBWTNCLFFBQVE7Z0JBQ2xCLElBQUksQ0FBQzRCLFdBQVcsQ0FBQztvQkFDZjVCLFVBQUFBO2dCQUNGO1lBQ0Y7OztZQUVBcEIsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU0sQUFBRUQsaUJBQW1CLElBQUksQ0FBQytDLFFBQVEsR0FBaEMvQztnQkFFUixPQUFPQTtZQUNUOzs7WUFFQTBDLEtBQUFBO21CQUFBQSxTQUFBQSxrQkFBa0IxQyxjQUFjO2dCQUM5QixJQUFJLENBQUNpRCxXQUFXLENBQUM7b0JBQ2ZqRCxnQkFBQUE7Z0JBQ0Y7WUFDRjs7O1lBRUFrRCxLQUFBQTttQkFBQUEsU0FBQUE7O2dCQUNFLElBQU1DLGlDQUFpQ0MsU0FBU0MsZ0JBQWdCLENBQUNDLG1DQUF3QixHQUNuRkMsMEJBQTBCQyxJQUFBQSwyQkFBcUIsRUFBQ0wsaUNBQ2hEOUIsV0FBV29DLElBQUFBLGdDQUF1QixFQUFDRix5QkFBeUI7eUNBRTFELG9CQUFDRyxhQUFPO3dCQUFDQyxhQUFhLE1BQUtwRCxnQkFBZ0I7d0JBQ2xDcUQsbUJBQW1CLE1BQUt2RCxzQkFBc0I7d0JBQzlDd0Qsb0JBQW9CLE1BQUtoRSx1QkFBdUI7O29CQUczREcsaUJBQWlCO2dCQUV2QixJQUFJLENBQUM4RCxRQUFRLENBQUM7b0JBQ1p6QyxVQUFBQTtvQkFDQXJCLGdCQUFBQTtnQkFDRjtZQUNGOzs7WUFFQStELEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFJLENBQUNDLE9BQU8sQ0FBQyxJQUFJLENBQUN4RCxZQUFZO2dCQUU5QnlELFlBQU0sQ0FBQ0MsU0FBUyxDQUFDLElBQUksQ0FBQ3BELGNBQWM7WUFDdEM7OztZQUVBcUQsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUksQ0FBQ0MsUUFBUSxDQUFDLElBQUksQ0FBQzVELFlBQVk7Z0JBRS9CeUQsWUFBTSxDQUFDSSxVQUFVLENBQUMsSUFBSSxDQUFDdkQsY0FBYztZQUN2Qzs7O1lBRUF3RCxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBSSxDQUFDcEIsZUFBZTtnQkFFcEIsSUFBSSxDQUFDZixjQUFjLENBQUMsU0FBQ0ksU0FBU2hCO29CQUMzQkEsVUFBVSxJQUNUZ0IsUUFBUU4sSUFBSSxLQUNWTSxRQUFRTCxJQUFJO2dCQUNsQjtZQUNGOzs7V0F4UG1COUM7cUJBQWFtRixhQUFPO0FBMFB2QyxpQkExUG1CbkYsTUEwUFpvRixXQUFVO0FBRWpCLGlCQTVQbUJwRixNQTRQWnFGLHFCQUFvQjtJQUN6QkMsV0FBVztBQUNiIn0=