three-nebula 10.0.3 → 11.1.0

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.
Files changed (247) hide show
  1. package/.claude/rules/no-coauthor.md +4 -0
  2. package/CHANGELOG.md +33 -0
  3. package/dist/three-nebula.cjs +109 -0
  4. package/dist/three-nebula.cjs.map +1 -0
  5. package/dist/three-nebula.mjs +2968 -0
  6. package/dist/three-nebula.mjs.map +1 -0
  7. package/dist/three-nebula.umd.js +109 -0
  8. package/dist/three-nebula.umd.js.map +1 -0
  9. package/package.json +32 -56
  10. package/specs/01-emitter-hierarchy.md +200 -0
  11. package/specs/02-determinism-scrubbing.md +188 -0
  12. package/specs/03-sound-renderer.md +183 -0
  13. package/specs/04-schema-versioning.md +140 -0
  14. package/specs/05-content-addressed-assets.md +288 -0
  15. package/specs/README.md +80 -0
  16. package/build/cjs/behaviour/Alpha.js +0 -189
  17. package/build/cjs/behaviour/Attraction.js +0 -189
  18. package/build/cjs/behaviour/Behaviour.js +0 -253
  19. package/build/cjs/behaviour/Collision.js +0 -146
  20. package/build/cjs/behaviour/Color.js +0 -148
  21. package/build/cjs/behaviour/CrossZone.js +0 -141
  22. package/build/cjs/behaviour/Force.js +0 -126
  23. package/build/cjs/behaviour/Gravity.js +0 -78
  24. package/build/cjs/behaviour/RandomDrift.js +0 -153
  25. package/build/cjs/behaviour/Repulsion.js +0 -123
  26. package/build/cjs/behaviour/Rotate.js +0 -265
  27. package/build/cjs/behaviour/Scale.js +0 -177
  28. package/build/cjs/behaviour/Spring.js +0 -133
  29. package/build/cjs/behaviour/constants.js +0 -28
  30. package/build/cjs/behaviour/index.js +0 -112
  31. package/build/cjs/behaviour/types.js +0 -33
  32. package/build/cjs/constants/index.js +0 -61
  33. package/build/cjs/core/Particle.js +0 -390
  34. package/build/cjs/core/Pool.js +0 -203
  35. package/build/cjs/core/System.js +0 -366
  36. package/build/cjs/core/constants.js +0 -163
  37. package/build/cjs/core/fromJSON.js +0 -128
  38. package/build/cjs/core/fromJSONAsync.js +0 -239
  39. package/build/cjs/core/index.js +0 -32
  40. package/build/cjs/core/three/Euler.js +0 -233
  41. package/build/cjs/core/three/Math.js +0 -91
  42. package/build/cjs/core/three/Matrix4.js +0 -745
  43. package/build/cjs/core/three/Quaternion.js +0 -451
  44. package/build/cjs/core/three/Vector3.js +0 -464
  45. package/build/cjs/core/three/constants.js +0 -298
  46. package/build/cjs/core/three/index.js +0 -48
  47. package/build/cjs/core/types.js +0 -13
  48. package/build/cjs/debug/Debug.js +0 -209
  49. package/build/cjs/debug/constants.js +0 -19
  50. package/build/cjs/debug/index.js +0 -24
  51. package/build/cjs/debug/log.js +0 -38
  52. package/build/cjs/ease/index.js +0 -149
  53. package/build/cjs/emitter/Emitter.js +0 -791
  54. package/build/cjs/emitter/FollowEmitter.js +0 -146
  55. package/build/cjs/emitter/constants.js +0 -20
  56. package/build/cjs/emitter/index.js +0 -24
  57. package/build/cjs/emitter/types.js +0 -11
  58. package/build/cjs/events/EventDispatcher.js +0 -105
  59. package/build/cjs/events/constants.js +0 -23
  60. package/build/cjs/events/index.js +0 -27
  61. package/build/cjs/index.js +0 -151
  62. package/build/cjs/initializer/Body.js +0 -122
  63. package/build/cjs/initializer/BodySprite.js +0 -146
  64. package/build/cjs/initializer/Initializer.js +0 -109
  65. package/build/cjs/initializer/InitializerUtil.js +0 -54
  66. package/build/cjs/initializer/Life.js +0 -106
  67. package/build/cjs/initializer/Mass.js +0 -101
  68. package/build/cjs/initializer/Position.js +0 -152
  69. package/build/cjs/initializer/Radius.js +0 -118
  70. package/build/cjs/initializer/Rate.js +0 -150
  71. package/build/cjs/initializer/Texture.js +0 -139
  72. package/build/cjs/initializer/Velocity/PolarVelocity.js +0 -102
  73. package/build/cjs/initializer/Velocity/RadialVelocity.js +0 -111
  74. package/build/cjs/initializer/Velocity/VectorVelocity.js +0 -108
  75. package/build/cjs/initializer/Velocity/Velocity.js +0 -94
  76. package/build/cjs/initializer/Velocity/index.js +0 -32
  77. package/build/cjs/initializer/constants.js +0 -43
  78. package/build/cjs/initializer/index.js +0 -100
  79. package/build/cjs/initializer/types.js +0 -35
  80. package/build/cjs/math/ArraySpan.js +0 -103
  81. package/build/cjs/math/Box.js +0 -46
  82. package/build/cjs/math/ColorSpan.js +0 -113
  83. package/build/cjs/math/MathUtils.js +0 -57
  84. package/build/cjs/math/Polar3D.js +0 -115
  85. package/build/cjs/math/Span.js +0 -88
  86. package/build/cjs/math/Vector3D.js +0 -76
  87. package/build/cjs/math/constants.js +0 -35
  88. package/build/cjs/math/index.js +0 -122
  89. package/build/cjs/math/integration.js +0 -59
  90. package/build/cjs/math/types.js +0 -19
  91. package/build/cjs/renderer/BaseRenderer.js +0 -108
  92. package/build/cjs/renderer/CustomRenderer.js +0 -65
  93. package/build/cjs/renderer/GPURenderer/Desktop/index.js +0 -350
  94. package/build/cjs/renderer/GPURenderer/Desktop/shaders/fragmentShader.js +0 -13
  95. package/build/cjs/renderer/GPURenderer/Desktop/shaders/index.js +0 -22
  96. package/build/cjs/renderer/GPURenderer/Desktop/shaders/vertexShader.js +0 -17
  97. package/build/cjs/renderer/GPURenderer/Mobile/index.js +0 -364
  98. package/build/cjs/renderer/GPURenderer/Mobile/shaders/fragmentShader.js +0 -13
  99. package/build/cjs/renderer/GPURenderer/Mobile/shaders/index.js +0 -22
  100. package/build/cjs/renderer/GPURenderer/Mobile/shaders/vertexShader.js +0 -15
  101. package/build/cjs/renderer/GPURenderer/common/ParticleBuffer/constants.js +0 -53
  102. package/build/cjs/renderer/GPURenderer/common/ParticleBuffer/index.js +0 -93
  103. package/build/cjs/renderer/GPURenderer/common/TextureAtlas/constants.js +0 -9
  104. package/build/cjs/renderer/GPURenderer/common/TextureAtlas/index.js +0 -221
  105. package/build/cjs/renderer/GPURenderer/common/constants.js +0 -22
  106. package/build/cjs/renderer/GPURenderer/common/index.js +0 -38
  107. package/build/cjs/renderer/GPURenderer/common/shaders/constants.js +0 -9
  108. package/build/cjs/renderer/GPURenderer/common/stores/Target.js +0 -43
  109. package/build/cjs/renderer/GPURenderer/common/stores/UniqueList.js +0 -51
  110. package/build/cjs/renderer/GPURenderer/common/stores/index.js +0 -22
  111. package/build/cjs/renderer/GPURenderer/index.js +0 -97
  112. package/build/cjs/renderer/MeshRenderer.js +0 -136
  113. package/build/cjs/renderer/SpriteRenderer.js +0 -63
  114. package/build/cjs/renderer/index.js +0 -40
  115. package/build/cjs/renderer/types.js +0 -21
  116. package/build/cjs/utils/ColorUtil.js +0 -39
  117. package/build/cjs/utils/PUID.js +0 -26
  118. package/build/cjs/utils/THREEUtil.js +0 -40
  119. package/build/cjs/utils/Util.js +0 -69
  120. package/build/cjs/utils/index.js +0 -61
  121. package/build/cjs/utils/uid.js +0 -14
  122. package/build/cjs/zone/BoxZone.js +0 -178
  123. package/build/cjs/zone/LineZone.js +0 -101
  124. package/build/cjs/zone/MeshZone.js +0 -101
  125. package/build/cjs/zone/PointZone.js +0 -99
  126. package/build/cjs/zone/ScreenZone.js +0 -164
  127. package/build/cjs/zone/SphereZone.js +0 -155
  128. package/build/cjs/zone/Zone.js +0 -172
  129. package/build/cjs/zone/index.js +0 -56
  130. package/build/cjs/zone/types.js +0 -21
  131. package/build/esm/behaviour/Alpha.js +0 -134
  132. package/build/esm/behaviour/Attraction.js +0 -135
  133. package/build/esm/behaviour/Behaviour.js +0 -215
  134. package/build/esm/behaviour/Collision.js +0 -100
  135. package/build/esm/behaviour/Color.js +0 -101
  136. package/build/esm/behaviour/CrossZone.js +0 -82
  137. package/build/esm/behaviour/Force.js +0 -83
  138. package/build/esm/behaviour/Gravity.js +0 -40
  139. package/build/esm/behaviour/RandomDrift.js +0 -97
  140. package/build/esm/behaviour/Repulsion.js +0 -81
  141. package/build/esm/behaviour/Rotate.js +0 -214
  142. package/build/esm/behaviour/Scale.js +0 -131
  143. package/build/esm/behaviour/Spring.js +0 -90
  144. package/build/esm/behaviour/constants.js +0 -11
  145. package/build/esm/behaviour/index.js +0 -14
  146. package/build/esm/behaviour/types.js +0 -14
  147. package/build/esm/constants/index.js +0 -42
  148. package/build/esm/core/Particle.js +0 -357
  149. package/build/esm/core/Pool.js +0 -161
  150. package/build/esm/core/System.js +0 -320
  151. package/build/esm/core/constants.js +0 -127
  152. package/build/esm/core/fromJSON.js +0 -107
  153. package/build/esm/core/fromJSONAsync.js +0 -210
  154. package/build/esm/core/index.js +0 -4
  155. package/build/esm/core/three/Euler.js +0 -224
  156. package/build/esm/core/three/Math.js +0 -84
  157. package/build/esm/core/three/Matrix4.js +0 -739
  158. package/build/esm/core/three/Quaternion.js +0 -445
  159. package/build/esm/core/three/Vector3.js +0 -457
  160. package/build/esm/core/three/constants.js +0 -148
  161. package/build/esm/core/three/index.js +0 -5
  162. package/build/esm/core/types.js +0 -4
  163. package/build/esm/debug/Debug.js +0 -195
  164. package/build/esm/debug/constants.js +0 -7
  165. package/build/esm/debug/index.js +0 -3
  166. package/build/esm/debug/log.js +0 -31
  167. package/build/esm/ease/index.js +0 -113
  168. package/build/esm/emitter/Emitter.js +0 -701
  169. package/build/esm/emitter/FollowEmitter.js +0 -97
  170. package/build/esm/emitter/constants.js +0 -7
  171. package/build/esm/emitter/index.js +0 -3
  172. package/build/esm/emitter/types.js +0 -3
  173. package/build/esm/events/EventDispatcher.js +0 -82
  174. package/build/esm/events/constants.js +0 -9
  175. package/build/esm/events/index.js +0 -4
  176. package/build/esm/index.js +0 -13
  177. package/build/esm/initializer/Body.js +0 -83
  178. package/build/esm/initializer/BodySprite.js +0 -108
  179. package/build/esm/initializer/Initializer.js +0 -84
  180. package/build/esm/initializer/InitializerUtil.js +0 -48
  181. package/build/esm/initializer/Life.js +0 -66
  182. package/build/esm/initializer/Mass.js +0 -60
  183. package/build/esm/initializer/Position.js +0 -98
  184. package/build/esm/initializer/Radius.js +0 -75
  185. package/build/esm/initializer/Rate.js +0 -107
  186. package/build/esm/initializer/Texture.js +0 -101
  187. package/build/esm/initializer/Velocity/PolarVelocity.js +0 -63
  188. package/build/esm/initializer/Velocity/RadialVelocity.js +0 -72
  189. package/build/esm/initializer/Velocity/VectorVelocity.js +0 -69
  190. package/build/esm/initializer/Velocity/Velocity.js +0 -52
  191. package/build/esm/initializer/Velocity/index.js +0 -4
  192. package/build/esm/initializer/constants.js +0 -26
  193. package/build/esm/initializer/index.js +0 -11
  194. package/build/esm/initializer/types.js +0 -15
  195. package/build/esm/math/ArraySpan.js +0 -62
  196. package/build/esm/math/Box.js +0 -25
  197. package/build/esm/math/ColorSpan.js +0 -71
  198. package/build/esm/math/MathUtils.js +0 -48
  199. package/build/esm/math/Polar3D.js +0 -81
  200. package/build/esm/math/Span.js +0 -63
  201. package/build/esm/math/Vector3D.js +0 -34
  202. package/build/esm/math/constants.js +0 -24
  203. package/build/esm/math/index.js +0 -10
  204. package/build/esm/math/integration.js +0 -47
  205. package/build/esm/math/types.js +0 -7
  206. package/build/esm/renderer/BaseRenderer.js +0 -78
  207. package/build/esm/renderer/CustomRenderer.js +0 -23
  208. package/build/esm/renderer/GPURenderer/Desktop/index.js +0 -331
  209. package/build/esm/renderer/GPURenderer/Desktop/shaders/fragmentShader.js +0 -23
  210. package/build/esm/renderer/GPURenderer/Desktop/shaders/index.js +0 -3
  211. package/build/esm/renderer/GPURenderer/Desktop/shaders/vertexShader.js +0 -33
  212. package/build/esm/renderer/GPURenderer/Mobile/index.js +0 -349
  213. package/build/esm/renderer/GPURenderer/Mobile/shaders/fragmentShader.js +0 -20
  214. package/build/esm/renderer/GPURenderer/Mobile/shaders/index.js +0 -3
  215. package/build/esm/renderer/GPURenderer/Mobile/shaders/vertexShader.js +0 -30
  216. package/build/esm/renderer/GPURenderer/common/ParticleBuffer/constants.js +0 -27
  217. package/build/esm/renderer/GPURenderer/common/ParticleBuffer/index.js +0 -70
  218. package/build/esm/renderer/GPURenderer/common/TextureAtlas/constants.js +0 -2
  219. package/build/esm/renderer/GPURenderer/common/TextureAtlas/index.js +0 -206
  220. package/build/esm/renderer/GPURenderer/common/constants.js +0 -13
  221. package/build/esm/renderer/GPURenderer/common/index.js +0 -4
  222. package/build/esm/renderer/GPURenderer/common/shaders/constants.js +0 -2
  223. package/build/esm/renderer/GPURenderer/common/stores/Target.js +0 -24
  224. package/build/esm/renderer/GPURenderer/common/stores/UniqueList.js +0 -29
  225. package/build/esm/renderer/GPURenderer/common/stores/index.js +0 -3
  226. package/build/esm/renderer/GPURenderer/index.js +0 -57
  227. package/build/esm/renderer/MeshRenderer.js +0 -94
  228. package/build/esm/renderer/SpriteRenderer.js +0 -26
  229. package/build/esm/renderer/index.js +0 -5
  230. package/build/esm/renderer/types.js +0 -8
  231. package/build/esm/utils/ColorUtil.js +0 -32
  232. package/build/esm/utils/PUID.js +0 -19
  233. package/build/esm/utils/THREEUtil.js +0 -31
  234. package/build/esm/utils/Util.js +0 -60
  235. package/build/esm/utils/index.js +0 -13
  236. package/build/esm/utils/uid.js +0 -3
  237. package/build/esm/zone/BoxZone.js +0 -133
  238. package/build/esm/zone/LineZone.js +0 -61
  239. package/build/esm/zone/MeshZone.js +0 -60
  240. package/build/esm/zone/PointZone.js +0 -59
  241. package/build/esm/zone/ScreenZone.js +0 -116
  242. package/build/esm/zone/SphereZone.js +0 -113
  243. package/build/esm/zone/Zone.js +0 -141
  244. package/build/esm/zone/index.js +0 -7
  245. package/build/esm/zone/types.js +0 -8
  246. package/build/three-nebula.js +0 -2
  247. package/build/three-nebula.js.map +0 -1
@@ -1,128 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports["default"] = void 0;
11
-
12
- var Behaviour = _interopRequireWildcard(require("../behaviour"));
13
-
14
- var Initializer = _interopRequireWildcard(require("../initializer"));
15
-
16
- var _constants = require("../constants");
17
-
18
- var _constants2 = require("./constants");
19
-
20
- var _Rate = _interopRequireDefault(require("../initializer/Rate"));
21
-
22
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
-
24
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
-
26
- /**
27
- * Makes a rate instance.
28
- *
29
- * @param {object} json - The data required to construct a Rate instance
30
- * @return {Rate}
31
- */
32
- var makeRate = function makeRate(json) {
33
- return _Rate["default"].fromJSON(json);
34
- };
35
- /**
36
- * Makes initializers from json items.
37
- *
38
- * @param {array<object>} items - An array of objects which provide initializer constructor params
39
- * @param {object} THREE - The Web GL Api to use
40
- * @return {array<Initializer>}
41
- */
42
-
43
-
44
- var makeInitializers = function makeInitializers(items, THREE) {
45
- var initializers = [];
46
- items.forEach(function (data) {
47
- var type = data.type,
48
- properties = data.properties;
49
-
50
- if (!_constants2.SUPPORTED_JSON_INITIALIZER_TYPES.includes(type)) {
51
- throw new Error("The initializer type ".concat(type, " is invalid or not yet supported"));
52
- }
53
-
54
- if (_constants2.INITIALIZER_TYPES_THAT_REQUIRE_THREE.includes(type)) {
55
- initializers.push(Initializer[type].fromJSON(properties, THREE));
56
- } else {
57
- initializers.push(Initializer[type].fromJSON(properties));
58
- }
59
- });
60
- return initializers;
61
- };
62
- /**
63
- * Makes behaviours from json items.
64
- *
65
- * @param {array<object>} items - An array of objects which provide behaviour constructor params
66
- * @return {array<Behaviour>}
67
- */
68
-
69
-
70
- var makeBehaviours = function makeBehaviours(items) {
71
- var behaviours = [];
72
- items.forEach(function (data) {
73
- var type = data.type,
74
- properties = data.properties;
75
-
76
- if (!_constants2.SUPPORTED_JSON_BEHAVIOUR_TYPES.includes(type)) {
77
- throw new Error("The behaviour type ".concat(type, " is invalid or not yet supported"));
78
- }
79
-
80
- behaviours.push(Behaviour[type].fromJSON(properties));
81
- });
82
- return behaviours;
83
- };
84
- /**
85
- * Creates a System instance from a JSON object.
86
- *
87
- * @deprecated Use fromJSONAsync instead.
88
- *
89
- * @param {object} json - The JSON to create the System instance from
90
- * @param {object} THREE - The Web GL Api to use
91
- * @param {function} System - The system class
92
- * @param {function} Emitter - The emitter class
93
- * @param {number} json.preParticles - The predetermined number of particles
94
- * @param {string} json.integrationType - The integration algorithm to use
95
- * @param {array<object>} json.emitters - The emitters for the system instance
96
- * @return {System}
97
- */
98
-
99
-
100
- var _default = function _default(json, THREE, System, Emitter) {
101
- var _json$preParticles = json.preParticles,
102
- preParticles = _json$preParticles === void 0 ? _constants.POOL_MAX : _json$preParticles,
103
- _json$integrationType = json.integrationType,
104
- integrationType = _json$integrationType === void 0 ? _constants.EULER : _json$integrationType,
105
- _json$emitters = json.emitters,
106
- emitters = _json$emitters === void 0 ? [] : _json$emitters;
107
- var system = new System(THREE, preParticles, integrationType);
108
- emitters.forEach(function (data) {
109
- var emitter = new Emitter();
110
- var rate = data.rate,
111
- rotation = data.rotation,
112
- initializers = data.initializers,
113
- behaviours = data.behaviours,
114
- _data$emitterBehaviou = data.emitterBehaviours,
115
- emitterBehaviours = _data$emitterBehaviou === void 0 ? [] : _data$emitterBehaviou,
116
- position = data.position,
117
- _data$totalEmitTimes = data.totalEmitTimes,
118
- totalEmitTimes = _data$totalEmitTimes === void 0 ? Infinity : _data$totalEmitTimes,
119
- _data$life = data.life,
120
- life = _data$life === void 0 ? Infinity : _data$life;
121
- emitter.setRate(makeRate(rate)).setRotation(rotation).setInitializers(makeInitializers(initializers, THREE)).setBehaviours(makeBehaviours(behaviours)).setEmitterBehaviours(makeBehaviours(emitterBehaviours)).setPosition(position).emit(totalEmitTimes, life);
122
- system.addEmitter(emitter);
123
- });
124
- return system;
125
- };
126
-
127
- exports["default"] = _default;
128
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2Zyb21KU09OLmpzIl0sIm5hbWVzIjpbIm1ha2VSYXRlIiwianNvbiIsIlJhdGUiLCJmcm9tSlNPTiIsIm1ha2VJbml0aWFsaXplcnMiLCJpdGVtcyIsIlRIUkVFIiwiaW5pdGlhbGl6ZXJzIiwiZm9yRWFjaCIsImRhdGEiLCJ0eXBlIiwicHJvcGVydGllcyIsIlNVUFBPUlRFRF9KU09OX0lOSVRJQUxJWkVSX1RZUEVTIiwiaW5jbHVkZXMiLCJFcnJvciIsIklOSVRJQUxJWkVSX1RZUEVTX1RIQVRfUkVRVUlSRV9USFJFRSIsInB1c2giLCJJbml0aWFsaXplciIsIm1ha2VCZWhhdmlvdXJzIiwiYmVoYXZpb3VycyIsIlNVUFBPUlRFRF9KU09OX0JFSEFWSU9VUl9UWVBFUyIsIkJlaGF2aW91ciIsIlN5c3RlbSIsIkVtaXR0ZXIiLCJwcmVQYXJ0aWNsZXMiLCJQT09MX01BWCIsImludGVncmF0aW9uVHlwZSIsIkVVTEVSIiwiZW1pdHRlcnMiLCJzeXN0ZW0iLCJlbWl0dGVyIiwicmF0ZSIsInJvdGF0aW9uIiwiZW1pdHRlckJlaGF2aW91cnMiLCJwb3NpdGlvbiIsInRvdGFsRW1pdFRpbWVzIiwiSW5maW5pdHkiLCJsaWZlIiwic2V0UmF0ZSIsInNldFJvdGF0aW9uIiwic2V0SW5pdGlhbGl6ZXJzIiwic2V0QmVoYXZpb3VycyIsInNldEVtaXR0ZXJCZWhhdmlvdXJzIiwic2V0UG9zaXRpb24iLCJlbWl0IiwiYWRkRW1pdHRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFNQTs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUEsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBQUMsSUFBSTtBQUFBLFNBQUlDLGlCQUFLQyxRQUFMLENBQWNGLElBQWQsQ0FBSjtBQUFBLENBQXJCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNB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LFFBT3JCQSxpQkFQcUIsc0NBT0QsRUFQQztBQUFBLFFBUXJCQyxRQVJxQixHQVduQnpCLElBWG1CLENBUXJCeUIsUUFScUI7QUFBQSwrQkFXbkJ6QixJQVhtQixDQVNyQjBCLGNBVHFCO0FBQUEsUUFTckJBLGNBVHFCLHFDQVNKQyxRQVRJO0FBQUEscUJBV25CM0IsSUFYbUIsQ0FVckI0QixJQVZxQjtBQUFBLFFBVXJCQSxJQVZxQiwyQkFVZEQsUUFWYztBQWF2Qk4sSUFBQUEsT0FBTyxDQUNKUSxPQURILENBQ1d0QyxRQUFRLENBQUMrQixJQUFELENBRG5CLEVBRUdRLFdBRkgsQ0FFZVAsUUFGZixFQUdHUSxlQUhILENBR21CcEMsZ0JBQWdCLENBQUNHLFlBQUQsRUFBZUQsS0FBZixDQUhuQyxFQUlHbUMsYUFKSCxDQUlpQnZCLGNBQWMsQ0FBQ0MsVUFBRCxDQUovQixFQUtHdUIsb0JBTEgsQ0FLd0J4QixjQUFjLENBQUNlLGlCQUFELENBTHRDLEVBTUdVLFdBTkgsQ0FNZVQsUUFOZixFQU9HVSxJQVBILENBT1FULGNBUFIsRUFPd0JFLElBUHhCO0FBU0FSLElBQUFBLE1BQU0sQ0FBQ2dCLFVBQVAsQ0FBa0JmLE9BQWxCO0FBQ0QsR0F2QkQ7QUF5QkEsU0FBT0QsTUFBUDtBQUNELEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBCZWhhdmlvdXIgZnJvbSAnLi4vYmVoYXZpb3VyJztcbmltcG9ydCAqIGFzIEluaXRpYWxpemVyIGZyb20gJy4uL2luaXRpYWxpemVyJztcblxuaW1wb3J0IHsgRVVMRVIsIFBPT0xfTUFYIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIElOSVRJQUxJWkVSX1RZUEVTX1RIQVRfUkVRVUlSRV9USFJFRSxcbiAgU1VQUE9SVEVEX0pTT05fQkVIQVZJT1VSX1RZUEVTLFxuICBTVVBQT1JURURfSlNPTl9JTklUSUFMSVpFUl9UWVBFUyxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgUmF0ZSBmcm9tICcuLi9pbml0aWFsaXplci9SYXRlJztcblxuLyoqXG4gKiBNYWtlcyBhIHJhdGUgaW5zdGFuY2UuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgZGF0YSByZXF1aXJlZCB0byBjb25zdHJ1Y3QgYSBSYXRlIGluc3RhbmNlXG4gKiBAcmV0dXJuIHtSYXRlfVxuICovXG5jb25zdCBtYWtlUmF0ZSA9IGpzb24gPT4gUmF0ZS5mcm9tSlNPTihqc29uKTtcblxuLyoqXG4gKiBNYWtlcyBpbml0aWFsaXplcnMgZnJvbSBqc29uIGl0ZW1zLlxuICpcbiAqIEBwYXJhbSB7YXJyYXk8b2JqZWN0Pn0gaXRlbXMgLSBBbiBhcnJheSBvZiBvYmplY3RzIHdoaWNoIHByb3ZpZGUgaW5pdGlhbGl6ZXIgY29uc3RydWN0b3IgcGFyYW1zXG4gKiBAcGFyYW0ge29iamVjdH0gVEhSRUUgLSBUaGUgV2ViIEdMIEFwaSB0byB1c2VcbiAqIEByZXR1cm4ge2FycmF5PEluaXRpYWxpemVyPn1cbiAqL1xuY29uc3QgbWFrZUluaXRpYWxpemVycyA9IChpdGVtcywgVEhSRUUpID0+IHtcbiAgY29uc3QgaW5pdGlhbGl6ZXJzID0gW107XG5cbiAgaXRlbXMuZm9yRWFjaChkYXRhID0+IHtcbiAgICBjb25zdCB7IHR5cGUsIHByb3BlcnRpZXMgfSA9IGRhdGE7XG5cbiAgICBpZiAoIVNVUFBPUlRFRF9KU09OX0lOSVRJQUxJWkVSX1RZUEVTLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUaGUgaW5pdGlhbGl6ZXIgdHlwZSAke3R5cGV9IGlzIGludmFsaWQgb3Igbm90IHlldCBzdXBwb3J0ZWRgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChJTklUSUFMSVpFUl9UWVBFU19USEFUX1JFUVVJUkVfVEhSRUUuaW5jbHVkZXModHlwZSkpIHtcbiAgICAgIGluaXRpYWxpemVycy5wdXNoKEluaXRpYWxpemVyW3R5cGVdLmZyb21KU09OKHByb3BlcnRpZXMsIFRIUkVFKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluaXRpYWxpemVycy5wdXNoKEluaXRpYWxpemVyW3R5cGVdLmZyb21KU09OKHByb3BlcnRpZXMpKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBpbml0aWFsaXplcnM7XG59O1xuXG4vKipcbiAqIE1ha2VzIGJlaGF2aW91cnMgZnJvbSBqc29uIGl0ZW1zLlxuICpcbiAqIEBwYXJhbSB7YXJyYXk8b2JqZWN0Pn0gaXRlbXMgLSBBbiBhcnJheSBvZiBvYmplY3RzIHdoaWNoIHByb3ZpZGUgYmVoYXZpb3VyIGNvbnN0cnVjdG9yIHBhcmFtc1xuICogQHJldHVybiB7YXJyYXk8QmVoYXZpb3VyPn1cbiAqL1xuY29uc3QgbWFrZUJlaGF2aW91cnMgPSBpdGVtcyA9PiB7XG4gIGNvbnN0IGJlaGF2aW91cnMgPSBbXTtcblxuICBpdGVtcy5mb3JFYWNoKGRhdGEgPT4ge1xuICAgIGNvbnN0IHsgdHlwZSwgcHJvcGVydGllcyB9ID0gZGF0YTtcblxuICAgIGlmICghU1VQUE9SVEVEX0pTT05fQkVIQVZJT1VSX1RZUEVTLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUaGUgYmVoYXZpb3VyIHR5cGUgJHt0eXBlfSBpcyBpbnZhbGlkIG9yIG5vdCB5ZXQgc3VwcG9ydGVkYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBiZWhhdmlvdXJzLnB1c2goQmVoYXZpb3VyW3R5cGVdLmZyb21KU09OKHByb3BlcnRpZXMpKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGJlaGF2aW91cnM7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBTeXN0ZW0gaW5zdGFuY2UgZnJvbSBhIEpTT04gb2JqZWN0LlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSBmcm9tSlNPTkFzeW5jIGluc3RlYWQuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjcmVhdGUgdGhlIFN5c3RlbSBpbnN0YW5jZSBmcm9tXG4gKiBAcGFyYW0ge29iamVjdH0gVEhSRUUgLSBUaGUgV2ViIEdMIEFwaSB0byB1c2VcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IFN5c3RlbSAtIFRoZSBzeXN0ZW0gY2xhc3NcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IEVtaXR0ZXIgLSBUaGUgZW1pdHRlciBjbGFzc1xuICogQHBhcmFtIHtudW1iZXJ9IGpzb24ucHJlUGFydGljbGVzIC0gVGhlIHByZWRldGVybWluZWQgbnVtYmVyIG9mIHBhcnRpY2xlc1xuICogQHBhcmFtIHtzdHJpbmd9IGpzb24uaW50ZWdyYXRpb25UeXBlIC0gVGhlIGludGVncmF0aW9uIGFsZ29yaXRobSB0byB1c2VcbiAqIEBwYXJhbSB7YXJyYXk8b2JqZWN0Pn0ganNvbi5lbWl0dGVycyAtIFRoZSBlbWl0dGVycyBmb3IgdGhlIHN5c3RlbSBpbnN0YW5jZVxuICogQHJldHVybiB7U3lzdGVtfVxuICovXG5leHBvcnQgZGVmYXVsdCAoanNvbiwgVEhSRUUsIFN5c3RlbSwgRW1pdHRlcikgPT4ge1xuICBjb25zdCB7XG4gICAgcHJlUGFydGljbGVzID0gUE9PTF9NQVgsXG4gICAgaW50ZWdyYXRpb25UeXBlID0gRVVMRVIsXG4gICAgZW1pdHRlcnMgPSBbXSxcbiAgfSA9IGpzb247XG4gIGNvbnN0IHN5c3RlbSA9IG5ldyBTeXN0ZW0oVEhSRUUsIHByZVBhcnRpY2xlcywgaW50ZWdyYXRpb25UeXBlKTtcblxuICBlbWl0dGVycy5mb3JFYWNoKGRhdGEgPT4ge1xuICAgIGNvbnN0IGVtaXR0ZXIgPSBuZXcgRW1pdHRlcigpO1xuICAgIGNvbnN0IHtcbiAgICAgIHJhdGUsXG4gICAgICByb3RhdGlvbixcbiAgICAgIGluaXRpYWxpemVycyxcbiAgICAgIGJlaGF2aW91cnMsXG4gICAgICBlbWl0dGVyQmVoYXZpb3VycyA9IFtdLFxuICAgICAgcG9zaXRpb24sXG4gICAgICB0b3RhbEVtaXRUaW1lcyA9IEluZmluaXR5LFxuICAgICAgbGlmZSA9IEluZmluaXR5LFxuICAgIH0gPSBkYXRhO1xuXG4gICAgZW1pdHRlclxuICAgICAgLnNldFJhdGUobWFrZVJhdGUocmF0ZSkpXG4gICAgICAuc2V0Um90YXRpb24ocm90YXRpb24pXG4gICAgICAuc2V0SW5pdGlhbGl6ZXJzKG1ha2VJbml0aWFsaXplcnMoaW5pdGlhbGl6ZXJzLCBUSFJFRSkpXG4gICAgICAuc2V0QmVoYXZpb3VycyhtYWtlQmVoYXZpb3VycyhiZWhhdmlvdXJzKSlcbiAgICAgIC5zZXRFbWl0dGVyQmVoYXZpb3VycyhtYWtlQmVoYXZpb3VycyhlbWl0dGVyQmVoYXZpb3VycykpXG4gICAgICAuc2V0UG9zaXRpb24ocG9zaXRpb24pXG4gICAgICAuZW1pdCh0b3RhbEVtaXRUaW1lcywgbGlmZSk7XG5cbiAgICBzeXN0ZW0uYWRkRW1pdHRlcihlbWl0dGVyKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHN5c3RlbTtcbn07XG4iXX0=
@@ -1,239 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports["default"] = void 0;
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var Behaviour = _interopRequireWildcard(require("../behaviour"));
15
-
16
- var Initializer = _interopRequireWildcard(require("../initializer"));
17
-
18
- var _constants = require("../constants");
19
-
20
- var _constants2 = require("./constants");
21
-
22
- var _Rate = _interopRequireDefault(require("../initializer/Rate"));
23
-
24
- var _Texture = _interopRequireDefault(require("../initializer/Texture"));
25
-
26
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
-
28
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
-
30
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
31
-
32
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
33
-
34
- var DEFAULT_OPTIONS = {
35
- shouldAutoEmit: true
36
- };
37
- /**
38
- * Makes a rate instance.
39
- *
40
- * @param {object} json - The data required to construct a Rate instance
41
- * @return {Rate}
42
- */
43
-
44
- var makeRate = function makeRate(json) {
45
- return _Rate["default"].fromJSON(json);
46
- };
47
- /**
48
- * Makes initializers from json items.
49
- *
50
- * @param {array<object>} items - An array of objects which provide initializer constructor params
51
- * @param {object} THREE - The Web GL Api to use
52
- * @return {array<Initializer>}
53
- */
54
-
55
-
56
- var makeInitializers = function makeInitializers(items, THREE) {
57
- return new Promise(function (resolve, reject) {
58
- if (!items.length) {
59
- return resolve([]);
60
- }
61
-
62
- var numberOfInitializers = items.length;
63
- var madeInitializers = [];
64
- var doNotRequireTextureLoading = items.filter(function (_ref) {
65
- var properties = _ref.properties;
66
- return !properties.texture;
67
- });
68
- var doRequireTextureLoading = items.filter(function (_ref2) {
69
- var properties = _ref2.properties;
70
- return properties.texture;
71
- });
72
- doNotRequireTextureLoading.forEach(function (data) {
73
- var type = data.type,
74
- properties = data.properties;
75
-
76
- if (!_constants2.SUPPORTED_JSON_INITIALIZER_TYPES.includes(type)) {
77
- return reject("The initializer type ".concat(type, " is invalid or not yet supported"));
78
- }
79
-
80
- if (_constants2.INITIALIZER_TYPES_THAT_REQUIRE_THREE.includes(type)) {
81
- madeInitializers.push(Initializer[type].fromJSON(properties, THREE));
82
- } else {
83
- madeInitializers.push(Initializer[type].fromJSON(properties));
84
- }
85
-
86
- if (madeInitializers.length === numberOfInitializers) {
87
- return resolve(madeInitializers);
88
- }
89
- });
90
- doRequireTextureLoading.forEach(function (data) {
91
- var type = data.type,
92
- properties = data.properties,
93
- texture = data.properties.texture;
94
- var textureLoader = new THREE.TextureLoader();
95
-
96
- if (!_constants2.SUPPORTED_JSON_INITIALIZER_TYPES.includes(type)) {
97
- return reject("The initializer type ".concat(type, " is invalid or not yet supported"));
98
- }
99
-
100
- textureLoader.load(texture, function (loadedTexture) {
101
- madeInitializers.push(_Texture["default"].fromJSON(_objectSpread(_objectSpread({}, properties), {}, {
102
- loadedTexture: loadedTexture
103
- }), THREE));
104
-
105
- if (madeInitializers.length === numberOfInitializers) {
106
- return resolve(madeInitializers);
107
- }
108
- }, undefined, reject);
109
- });
110
- });
111
- };
112
- /**
113
- * Makes behaviours from json items.
114
- *
115
- * @param {array<object>} items - An array of objects which provide behaviour constructor params
116
- * @return {Promise<array>}
117
- */
118
-
119
-
120
- var makeBehaviours = function makeBehaviours(items) {
121
- return new Promise(function (resolve, reject) {
122
- if (!items.length) {
123
- return resolve([]);
124
- }
125
-
126
- var numberOfBehaviours = items.length;
127
- var madeBehaviours = [];
128
- items.forEach(function (data) {
129
- var type = data.type,
130
- properties = data.properties;
131
-
132
- if (!_constants2.SUPPORTED_JSON_BEHAVIOUR_TYPES.includes(type)) {
133
- return reject("The behaviour type ".concat(type, " is invalid or not yet supported"));
134
- }
135
-
136
- madeBehaviours.push(Behaviour[type].fromJSON(properties));
137
-
138
- if (madeBehaviours.length === numberOfBehaviours) {
139
- return resolve(madeBehaviours);
140
- }
141
- });
142
- });
143
- };
144
-
145
- var makeEmitters = function makeEmitters(emitters, Emitter, THREE, shouldAutoEmit) {
146
- return new Promise(function (resolve, reject) {
147
- if (!emitters.length) {
148
- return resolve([]);
149
- }
150
-
151
- var madeEmitters = [];
152
- var numberOfEmitters = emitters.length;
153
-
154
- if (!numberOfEmitters) {
155
- return resolve(madeEmitters);
156
- }
157
-
158
- emitters.forEach(function (data) {
159
- var emitter = new Emitter();
160
- var rate = data.rate,
161
- rotation = data.rotation,
162
- initializers = data.initializers,
163
- behaviours = data.behaviours,
164
- _data$emitterBehaviou = data.emitterBehaviours,
165
- emitterBehaviours = _data$emitterBehaviou === void 0 ? [] : _data$emitterBehaviou,
166
- position = data.position,
167
- _data$totalEmitTimes = data.totalEmitTimes,
168
- totalEmitTimes = _data$totalEmitTimes === void 0 ? Infinity : _data$totalEmitTimes,
169
- _data$life = data.life,
170
- life = _data$life === void 0 ? Infinity : _data$life;
171
- emitter.setRate(makeRate(rate)).setRotation(rotation).setPosition(position);
172
- makeInitializers(initializers, THREE).then(function (madeInitializers) {
173
- emitter.setInitializers(madeInitializers);
174
- return makeBehaviours(behaviours);
175
- }).then(function (madeBehaviours) {
176
- emitter.setBehaviours(madeBehaviours);
177
- return makeBehaviours(emitterBehaviours);
178
- }).then(function (madeEmitterBehaviours) {
179
- emitter.setEmitterBehaviours(madeEmitterBehaviours);
180
- return Promise.resolve(emitter);
181
- }).then(function (emitter) {
182
- madeEmitters.push(shouldAutoEmit ? emitter.emit(totalEmitTimes, life) : emitter.setTotalEmitTimes(totalEmitTimes).setLife(life));
183
-
184
- if (madeEmitters.length === numberOfEmitters) {
185
- return resolve(madeEmitters);
186
- }
187
- })["catch"](reject);
188
- });
189
- });
190
- };
191
- /**
192
- * Creates a System instance from a JSON object.
193
- *
194
- * @param {object} json - The JSON to create the System instance from
195
- * @param {number} json.preParticles - The predetermined number of particles
196
- * @param {string} json.integrationType - The integration algorithm to use
197
- * @param {array<object>} json.emitters - The emitters for the system instance
198
- * @param {object} THREE - The Web GL Api to use
199
- * @param {function} System - The system class
200
- * @param {function} Emitter - The emitter class
201
- * @param {object} [options={}] - Optional config options
202
- * @return {Promise<System>}
203
- */
204
-
205
-
206
- var _default = function _default(json, THREE, System, Emitter) {
207
- var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
208
- return new Promise(function (resolve, reject) {
209
- var _json$preParticles = json.preParticles,
210
- preParticles = _json$preParticles === void 0 ? _constants.POOL_MAX : _json$preParticles,
211
- _json$integrationType = json.integrationType,
212
- integrationType = _json$integrationType === void 0 ? _constants.EULER : _json$integrationType,
213
- _json$emitters = json.emitters,
214
- emitters = _json$emitters === void 0 ? [] : _json$emitters;
215
- var system = new System(preParticles, integrationType);
216
-
217
- var _DEFAULT_OPTIONS$opti = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options),
218
- shouldAutoEmit = _DEFAULT_OPTIONS$opti.shouldAutoEmit;
219
-
220
- makeEmitters(emitters, Emitter, THREE, shouldAutoEmit).then(function (madeEmitters) {
221
- var numberOfEmitters = madeEmitters.length;
222
-
223
- if (!numberOfEmitters) {
224
- return resolve(system);
225
- }
226
-
227
- madeEmitters.forEach(function (madeEmitter) {
228
- system.addEmitter(madeEmitter);
229
-
230
- if (system.emitters.length === numberOfEmitters) {
231
- resolve(system);
232
- }
233
- });
234
- })["catch"](reject);
235
- });
236
- };
237
-
238
- exports["default"] = _default;
239
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2Zyb21KU09OQXN5bmMuanMiXSwibmFtZXMiOlsiREVGQVVMVF9PUFRJT05TIiwic2hvdWxkQXV0b0VtaXQiLCJtYWtlUmF0ZSIsImpzb24iLCJSYXRlIiwiZnJvbUpTT04iLCJtYWtlSW5pdGlhbGl6ZXJzIiwiaXRlbXMiLCJUSFJFRSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwibGVuZ3RoIiwibnVtYmVyT2ZJbml0aWFsaXplcnMiLCJtYWRlSW5pdGlhbGl6ZXJzIiwiZG9Ob3RSZXF1aXJlVGV4dHVyZUxvYWRpbmciLCJmaWx0ZXIiLCJwcm9wZXJ0aWVzIiwidGV4dHVyZSIsImRvUmVxdWlyZVRleHR1cmVMb2FkaW5nIiwiZm9yRWFjaCIsImRhdGEiLCJ0eXBlIiwiU1VQUE9SVEVEX0pTT05fSU5JVElBTElaRVJfVFlQRVMiLCJpbmNsdWRlcyIsIklOSVRJQUxJWkVSX1RZUEVTX1RIQVRfUkVRVUlSRV9USFJFRSIsInB1c2giLCJJbml0aWFsaXplciIsInRleHR1cmVMb2FkZXIiLCJUZXh0dXJlTG9hZGVyIiwibG9hZCIsImxvYWRlZFRleHR1cmUiLCJUZXh0dXJlSW5pdGlhbGl6ZXIiLCJ1bmRlZmluZWQiLCJtYWtlQmVoYXZpb3VycyIsIm51bWJlck9mQmVoYXZpb3VycyIsIm1hZGVCZWhhdmlvdXJzIiwiU1VQUE9SVEVEX0pTT05fQkVIQVZJT1VSX1RZUEVTIiwiQmVoYXZpb3VyIiwibWFrZUVtaXR0ZXJzIiwiZW1pdHRlcnMiLCJFbWl0dGVyIiwibWFkZUVtaXR0ZXJzIiwibnVtYmVyT2ZFbWl0dGVycyIsImVtaXR0ZXIiLCJyYXRlIiwicm90YXRpb24iLCJpbml0aWFsaXplcnMiLCJiZWhhdmlvdXJzIiwiZW1pdHRlckJlaGF2aW91cnMiLCJwb3NpdGlvbiIsInRvdGFsRW1pdFRpbWVzIiwiSW5maW5pdHkiLCJsaWZlIiwic2V0UmF0ZSIsInNldFJvdGF0aW9uIiwic2V0UG9zaXRpb24iLCJ0aGVuIiwic2V0SW5pdGlhbGl6ZXJzIiwic2V0QmVoYXZpb3VycyIsIm1hZGVFbWl0dGVyQmVoYXZpb3VycyIsInNldEVtaXR0ZXJCZWhhdmlvdXJzIiwiZW1pdCIsInNldFRvdGFsRW1pdFRpbWVzIiwic2V0TGlmZSIsIlN5c3RlbSIsIm9wdGlvbnMiLCJwcmVQYXJ0aWNsZXMiLCJQT09MX01BWCIsImludGVncmF0aW9uVHlwZSIsIkVVTEVSIiwic3lzdGVtIiwibWFkZUVtaXR0ZXIiLCJhZGRFbWl0dGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBTUE7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxlQUFlLEdBQUc7QUFBRUMsRUFBQUEsY0FBYyxFQUFFO0FBQWxCLENBQXhCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLElBQU1DLFFBQVEsR0FBRyxTQUFYQSxRQUFXLENBQUFDLElBQUk7QUFBQSxTQUFJQyxpQkFBS0MsUUFBTCxDQUFjRixJQUFkLENBQUo7QUFBQSxDQUFyQjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQSxJQUFNRyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQW1CLENBQUNDLEtBQUQsRUFBUUMsS0FBUjtBQUFBLFNBQ3ZCLElBQUlDLE9BQUosQ0FBWSxVQUFDQyxPQUFELEVBQVVDLE1BQVYsRUFBcUI7QUFDL0IsUUFBSSxDQUFDSixLQUFLLENBQUNLLE1BQVgsRUFBbUI7QUFDakIsYUFBT0YsT0FBTyxDQUFDLEVBQUQsQ0FBZDtBQUNEOztBQUVELFFBQU1HLG9CQUFvQixHQUFHTixLQUFLLENBQUNLLE1BQW5DO0FBQ0EsUUFBTUUsZ0JBQWdCLEdBQUcsRUFBekI7QUFDQSxRQUFNQywwQkFBMEIsR0FBR1IsS0FBSyxDQUFDUyxNQUFOLENBQ2pDO0FBQUEsVUFBR0MsVUFBSCxRQUFHQSxVQUFIO0FBQUEsYUFBb0IsQ0FBQ0EsVUFBVSxDQUFDQyxPQUFoQztBQUFBLEtBRGlDLENBQW5DO0FBR0Es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QUNHd0QsSUFESCxDQUNRLFVBQUFmLFlBQVksRUFBSTtBQUNwQixVQUFNQyxnQkFBZ0IsR0FBR0QsWUFBWSxDQUFDOUIsTUFBdEM7O0FBRUEsVUFBSSxDQUFDK0IsZ0JBQUwsRUFBdUI7QUFDckIsZUFBT2pDLE9BQU8sQ0FBQzZELE1BQUQsQ0FBZDtBQUNEOztBQUVEN0IsTUFBQUEsWUFBWSxDQUFDdEIsT0FBYixDQUFxQixVQUFBb0QsV0FBVyxFQUFJO0FBQ2xDRCxRQUFBQSxNQUFNLENBQUNFLFVBQVAsQ0FBa0JELFdBQWxCOztBQUVBLFlBQUlELE1BQU0sQ0FBQy9CLFFBQVAsQ0FBZ0I1QixNQUFoQixLQUEyQitCLGdCQUEvQixFQUFpRDtBQUMvQ2pDLFVBQUFBLE9BQU8sQ0FBQzZELE1BQUQsQ0FBUDtBQUNEO0FBQ0YsT0FORDtBQU9ELEtBZkgsV0FnQlM1RCxNQWhCVDtBQWlCRCxHQTFCRCxDQURhO0FBQUEsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIEJlaGF2aW91ciBmcm9tICcuLi9iZWhhdmlvdXInO1xuaW1wb3J0ICogYXMgSW5pdGlhbGl6ZXIgZnJvbSAnLi4vaW5pdGlhbGl6ZXInO1xuXG5pbXBvcnQgeyBFVUxFUiwgUE9PTF9NQVggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgSU5JVElBTElaRVJfVFlQRVNfVEhBVF9SRVFVSVJFX1RIUkVFLFxuICBTVVBQT1JURURfSlNPTl9CRUhBVklPVVJfVFlQRVMsXG4gIFNVUFBPUlRFRF9KU09OX0lOSVRJQUxJWkVSX1RZUEVTLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmltcG9ydCBSYXRlIGZyb20gJy4uL2luaXRpYWxpemVyL1JhdGUnO1xuaW1wb3J0IFRleHR1cmVJbml0aWFsaXplciBmcm9tICcuLi9pbml0aWFsaXplci9UZXh0dXJlJztcblxuY29uc3QgREVGQVVMVF9PUFRJT05TID0geyBzaG91bGRBdXRvRW1pdDogdHJ1ZSB9O1xuXG4vKipcbiAqIE1ha2VzIGEgcmF0ZSBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIFRoZSBkYXRhIHJlcXVpcmVkIHRvIGNvbnN0cnVjdCBhIFJhdGUgaW5zdGFuY2VcbiAqIEByZXR1cm4ge1JhdGV9XG4gKi9cbmNvbnN0IG1ha2VSYXRlID0ganNvbiA9PiBSYXRlLmZyb21KU09OKGpzb24pO1xuXG4vKipcbiAqIE1ha2VzIGluaXRpYWxpemVycyBmcm9tIGpzb24gaXRlbXMuXG4gKlxuICogQHBhcmFtIHthcnJheTxvYmplY3Q+fSBpdGVtcyAtIEFuIGFycmF5IG9mIG9iamVjdHMgd2hpY2ggcHJvdmlkZSBpbml0aWFsaXplciBjb25zdHJ1Y3RvciBwYXJhbXNcbiAqIEBwYXJhbSB7b2JqZWN0fSBUSFJFRSAtIFRoZSBXZWIgR0wgQXBpIHRvIHVzZVxuICogQHJldHVybiB7YXJyYXk8SW5pdGlhbGl6ZXI+fVxuICovXG5jb25zdCBtYWtlSW5pdGlhbGl6ZXJzID0gKGl0ZW1zLCBUSFJFRSkgPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGlmICghaXRlbXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZShbXSk7XG4gICAgfVxuXG4gICAgY29uc3QgbnVtYmVyT2ZJbml0aWFsaXplcnMgPSBpdGVtcy5sZW5ndGg7XG4gICAgY29uc3QgbWFkZUluaXRpYWxpemVycyA9IFtdO1xuICAgIGNvbnN0IGRvTm90UmVxdWlyZVRleHR1cmVMb2FkaW5nID0gaXRlbXMuZmlsdGVyKFxuICAgICAgKHsgcHJvcGVydGllcyB9KSA9PiAhcHJvcGVydGllcy50ZXh0dXJlXG4gICAgKTtcbiAgICBjb25zdCBkb1JlcXVpcmVUZXh0dXJlTG9hZGluZyA9IGl0ZW1zLmZpbHRlcihcbiAgICAgICh7IHByb3BlcnRpZXMgfSkgPT4gcHJvcGVydGllcy50ZXh0dXJlXG4gICAgKTtcblxuICAgIGRvTm90UmVxdWlyZVRleHR1cmVMb2FkaW5nLmZvckVhY2goZGF0YSA9PiB7XG4gICAgICBjb25zdCB7IHR5cGUsIHByb3BlcnRpZXMgfSA9IGRhdGE7XG5cbiAgICAgIGlmICghU1VQUE9SVEVEX0pTT05fSU5JVElBTElaRVJfVFlQRVMuaW5jbHVkZXModHlwZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChcbiAgICAgICAgICBgVGhlIGluaXRpYWxpemVyIHR5cGUgJHt0eXBlfSBpcyBpbnZhbGlkIG9yIG5vdCB5ZXQgc3VwcG9ydGVkYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoSU5JVElBTElaRVJfVFlQRVNfVEhBVF9SRVFVSVJFX1RIUkVFLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICAgIG1hZGVJbml0aWFsaXplcnMucHVzaChJbml0aWFsaXplclt0eXBlXS5mcm9tSlNPTihwcm9wZXJ0aWVzLCBUSFJFRSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWFkZUluaXRpYWxpemVycy5wdXNoKEluaXRpYWxpemVyW3R5cGVdLmZyb21KU09OKHByb3BlcnRpZXMpKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1hZGVJbml0aWFsaXplcnMubGVuZ3RoID09PSBudW1iZXJPZkluaXRpYWxpemVycykge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZShtYWRlSW5pdGlhbGl6ZXJzKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGRvUmVxdWlyZVRleHR1cmVMb2FkaW5nLmZvckVhY2goZGF0YSA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgIHByb3BlcnRpZXM6IHsgdGV4dHVyZSB9LFxuICAgICAgfSA9IGRhdGE7XG4gICAgICBjb25zdCB0ZXh0dXJlTG9hZGVyID0gbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKTtcblxuICAgICAgaWYgKCFTVVBQT1JURURfSlNPTl9JTklUSUFMSVpFUl9UWVBFUy5pbmNsdWRlcyh0eXBlKSkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KFxuICAgICAgICAgIGBUaGUgaW5pdGlhbGl6ZXIgdHlwZSAke3R5cGV9IGlzIGludmFsaWQgb3Igbm90IHlldCBzdXBwb3J0ZWRgXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRleHR1cmVMb2FkZXIubG9hZChcbiAgICAgICAgdGV4dHVyZSxcbiAgICAgICAgbG9hZGVkVGV4dHVyZSA9PiB7XG4gICAgICAgICAgbWFkZUluaXRpYWxpemVycy5wdXNoKFxuICAgICAgICAgICAgVGV4dHVyZUluaXRpYWxpemVyLmZyb21KU09OKFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4ucHJvcGVydGllcyxcbiAgICAgICAgICAgICAgICBsb2FkZWRUZXh0dXJlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBUSFJFRVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAobWFkZUluaXRpYWxpemVycy5sZW5ndGggPT09IG51bWJlck9mSW5pdGlhbGl6ZXJzKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShtYWRlSW5pdGlhbGl6ZXJzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgcmVqZWN0XG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuLyoqXG4gKiBNYWtlcyBiZWhhdmlvdXJzIGZyb20ganNvbiBpdGVtcy5cbiAqXG4gKiBAcGFyYW0ge2FycmF5PG9iamVjdD59IGl0ZW1zIC0gQW4gYXJyYXkgb2Ygb2JqZWN0cyB3aGljaCBwcm92aWRlIGJlaGF2aW91ciBjb25zdHJ1Y3RvciBwYXJhbXNcbiAqIEByZXR1cm4ge1Byb21pc2U8YXJyYXk+fVxuICovXG5jb25zdCBtYWtlQmVoYXZpb3VycyA9IGl0ZW1zID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAoIWl0ZW1zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHJlc29sdmUoW10pO1xuICAgIH1cblxuICAgIGNvbnN0IG51bWJlck9mQmVoYXZpb3VycyA9IGl0ZW1zLmxlbmd0aDtcbiAgICBjb25zdCBtYWRlQmVoYXZpb3VycyA9IFtdO1xuXG4gICAgaXRlbXMuZm9yRWFjaChkYXRhID0+IHtcbiAgICAgIGNvbnN0IHsgdHlwZSwgcHJvcGVydGllcyB9ID0gZGF0YTtcblxuICAgICAgaWYgKCFTVVBQT1JURURfSlNPTl9CRUhBVklPVVJfVFlQRVMuaW5jbHVkZXModHlwZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChcbiAgICAgICAgICBgVGhlIGJlaGF2aW91ciB0eXBlICR7dHlwZX0gaXMgaW52YWxpZCBvciBub3QgeWV0IHN1cHBvcnRlZGBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgbWFkZUJlaGF2aW91cnMucHVzaChCZWhhdmlvdXJbdHlwZV0uZnJvbUpTT04ocHJvcGVydGllcykpO1xuXG4gICAgICBpZiAobWFkZUJlaGF2aW91cnMubGVuZ3RoID09PSBudW1iZXJPZkJlaGF2aW91cnMpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUobWFkZUJlaGF2aW91cnMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuY29uc3QgbWFrZUVtaXR0ZXJzID0gKGVtaXR0ZXJzLCBFbWl0dGVyLCBUSFJFRSwgc2hvdWxkQXV0b0VtaXQpID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBpZiAoIWVtaXR0ZXJzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHJlc29sdmUoW10pO1xuICAgIH1cblxuICAgIGNvbnN0IG1hZGVFbWl0dGVycyA9IFtdO1xuICAgIGNvbnN0IG51bWJlck9mRW1pdHRlcnMgPSBlbWl0dGVycy5sZW5ndGg7XG5cbiAgICBpZiAoIW51bWJlck9mRW1pdHRlcnMpIHtcbiAgICAgIHJldHVybiByZXNvbHZlKG1hZGVFbWl0dGVycyk7XG4gICAgfVxuXG4gICAgZW1pdHRlcnMuZm9yRWFjaChkYXRhID0+IHtcbiAgICAgIGNvbnN0IGVtaXR0ZXIgPSBuZXcgRW1pdHRlcigpO1xuICAgICAgY29uc3Qge1xuICAgICAgICByYXRlLFxuICAgICAgICByb3RhdGlvbixcbiAgICAgICAgaW5pdGlhbGl6ZXJzLFxuICAgICAgICBiZWhhdmlvdXJzLFxuICAgICAgICBlbWl0dGVyQmVoYXZpb3VycyA9IFtdLFxuICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgdG90YWxFbWl0VGltZXMgPSBJbmZpbml0eSxcbiAgICAgICAgbGlmZSA9IEluZmluaXR5LFxuICAgICAgfSA9IGRhdGE7XG5cbiAgICAgIGVtaXR0ZXJcbiAgICAgICAgLnNldFJhdGUobWFrZVJhdGUocmF0ZSkpXG4gICAgICAgIC5zZXRSb3RhdGlvbihyb3RhdGlvbilcbiAgICAgICAgLnNldFBvc2l0aW9uKHBvc2l0aW9uKTtcblxuICAgICAgbWFrZUluaXRpYWxpemVycyhpbml0aWFsaXplcnMsIFRIUkVFKVxuICAgICAgICAudGhlbihtYWRlSW5pdGlhbGl6ZXJzID0+IHtcbiAgICAgICAgICBlbWl0dGVyLnNldEluaXRpYWxpemVycyhtYWRlSW5pdGlhbGl6ZXJzKTtcblxuICAgICAgICAgIHJldHVybiBtYWtlQmVoYXZpb3VycyhiZWhhdmlvdXJzKTtcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4obWFkZUJlaGF2aW91cnMgPT4ge1xuICAgICAgICAgIGVtaXR0ZXIuc2V0QmVoYXZpb3VycyhtYWRlQmVoYXZpb3Vycyk7XG5cbiAgICAgICAgICByZXR1cm4gbWFrZUJlaGF2aW91cnMoZW1pdHRlckJlaGF2aW91cnMpO1xuICAgICAgICB9KVxuICAgICAgICAudGhlbihtYWRlRW1pdHRlckJlaGF2aW91cnMgPT4ge1xuICAgICAgICAgIGVtaXR0ZXIuc2V0RW1pdHRlckJlaGF2aW91cnMobWFkZUVtaXR0ZXJCZWhhdmlvdXJzKTtcblxuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZW1pdHRlcik7XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKGVtaXR0ZXIgPT4ge1xuICAgICAgICAgIG1hZGVFbWl0dGVycy5wdXNoKFxuICAgICAgICAgICAgc2hvdWxkQXV0b0VtaXRcbiAgICAgICAgICAgICAgPyBlbWl0dGVyLmVtaXQodG90YWxFbWl0VGltZXMsIGxpZmUpXG4gICAgICAgICAgICAgIDogZW1pdHRlci5zZXRUb3RhbEVtaXRUaW1lcyh0b3RhbEVtaXRUaW1lcykuc2V0TGlmZShsaWZlKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAobWFkZUVtaXR0ZXJzLmxlbmd0aCA9PT0gbnVtYmVyT2ZFbWl0dGVycykge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUobWFkZUVtaXR0ZXJzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChyZWplY3QpO1xuICAgIH0pO1xuICB9KTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgU3lzdGVtIGluc3RhbmNlIGZyb20gYSBKU09OIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIFRoZSBKU09OIHRvIGNyZWF0ZSB0aGUgU3lzdGVtIGluc3RhbmNlIGZyb21cbiAqIEBwYXJhbSB7bnVtYmVyfSBqc29uLnByZVBhcnRpY2xlcyAtIFRoZSBwcmVkZXRlcm1pbmVkIG51bWJlciBvZiBwYXJ0aWNsZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBqc29uLmludGVncmF0aW9uVHlwZSAtIFRoZSBpbnRlZ3JhdGlvbiBhbGdvcml0aG0gdG8gdXNlXG4gKiBAcGFyYW0ge2FycmF5PG9iamVjdD59IGpzb24uZW1pdHRlcnMgLSBUaGUgZW1pdHRlcnMgZm9yIHRoZSBzeXN0ZW0gaW5zdGFuY2VcbiAqIEBwYXJhbSB7b2JqZWN0fSBUSFJFRSAtIFRoZSBXZWIgR0wgQXBpIHRvIHVzZVxuICogQHBhcmFtIHtmdW5jdGlvbn0gU3lzdGVtIC0gVGhlIHN5c3RlbSBjbGFzc1xuICogQHBhcmFtIHtmdW5jdGlvbn0gRW1pdHRlciAtIFRoZSBlbWl0dGVyIGNsYXNzXG4gKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnM9e31dIC0gT3B0aW9uYWwgY29uZmlnIG9wdGlvbnNcbiAqIEByZXR1cm4ge1Byb21pc2U8U3lzdGVtPn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgKGpzb24sIFRIUkVFLCBTeXN0ZW0sIEVtaXR0ZXIsIG9wdGlvbnMgPSB7fSkgPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHByZVBhcnRpY2xlcyA9IFBPT0xfTUFYLFxuICAgICAgaW50ZWdyYXRpb25UeXBlID0gRVVMRVIsXG4gICAgICBlbWl0dGVycyA9IFtdLFxuICAgIH0gPSBqc29uO1xuICAgIGNvbnN0IHN5c3RlbSA9IG5ldyBTeXN0ZW0ocHJlUGFydGljbGVzLCBpbnRlZ3JhdGlvblR5cGUpO1xuICAgIGNvbnN0IHsgc2hvdWxkQXV0b0VtaXQgfSA9IHsgLi4uREVGQVVMVF9PUFRJT05TLCAuLi5vcHRpb25zIH07XG5cbiAgICBtYWtlRW1pdHRlcnMoZW1pdHRlcnMsIEVtaXR0ZXIsIFRIUkVFLCBzaG91bGRBdXRvRW1pdClcbiAgICAgIC50aGVuKG1hZGVFbWl0dGVycyA9PiB7XG4gICAgICAgIGNvbnN0IG51bWJlck9mRW1pdHRlcnMgPSBtYWRlRW1pdHRlcnMubGVuZ3RoO1xuXG4gICAgICAgIGlmICghbnVtYmVyT2ZFbWl0dGVycykge1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKHN5c3RlbSk7XG4gICAgICAgIH1cblxuICAgICAgICBtYWRlRW1pdHRlcnMuZm9yRWFjaChtYWRlRW1pdHRlciA9PiB7XG4gICAgICAgICAgc3lzdGVtLmFkZEVtaXR0ZXIobWFkZUVtaXR0ZXIpO1xuXG4gICAgICAgICAgaWYgKHN5c3RlbS5lbWl0dGVycy5sZW5ndGggPT09IG51bWJlck9mRW1pdHRlcnMpIHtcbiAgICAgICAgICAgIHJlc29sdmUoc3lzdGVtKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChyZWplY3QpO1xuICB9KTtcbiJdfQ==
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- Object.defineProperty(exports, "Particle", {
9
- enumerable: true,
10
- get: function get() {
11
- return _Particle["default"];
12
- }
13
- });
14
- Object.defineProperty(exports, "Pool", {
15
- enumerable: true,
16
- get: function get() {
17
- return _Pool["default"];
18
- }
19
- });
20
- Object.defineProperty(exports, "System", {
21
- enumerable: true,
22
- get: function get() {
23
- return _System["default"];
24
- }
25
- });
26
-
27
- var _Particle = _interopRequireDefault(require("./Particle"));
28
-
29
- var _Pool = _interopRequireDefault(require("./Pool"));
30
-
31
- var _System = _interopRequireDefault(require("./System"));
32
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIFBhcnRpY2xlIH0gZnJvbSAnLi9QYXJ0aWNsZSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFBvb2wgfSBmcm9tICcuL1Bvb2wnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTeXN0ZW0gfSBmcm9tICcuL1N5c3RlbSc7XG4iXX0=