mnemonica 0.9.997 → 0.9.9976

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -17,7 +17,7 @@ abstract technique that aids information retention : instance inheritance system
17
17
  ---
18
18
 
19
19
  [![Coverage Status](https://coveralls.io/repos/github/wentout/mnemonica/badge.svg?branch=master)](https://coveralls.io/github/wentout/mnemonica?branch=master)
20
- ![Travis (.org)](https://img.shields.io/travis/wentout/mnemonica)
20
+
21
21
  ![NPM](https://img.shields.io/npm/l/mnemonica)
22
22
  ![GitHub package.json version](https://img.shields.io/github/package-json/v/wentout/mnemonica)
23
23
  ![GitHub last commit](https://img.shields.io/github/last-commit/wentout/mnemonica)
@@ -54,15 +54,10 @@ const TypeModificationProcedure = function (opts) {
54
54
  Object.assign(this, opts);
55
55
  };
56
56
 
57
- // prototype definition is NOT obligatory
58
- const TypeModificationPrototypeProperties = {
59
- description : 'SomeType Constructor'
60
- };
61
-
62
57
  // SomeTypeConstructor -- is a constructor.name
63
58
  const SomeType = define('SomeTypeConstructor',
64
- TypeModificationProcedure,
65
- TypeModificationPrototypeProperties);
59
+ TypeModificationProcedure,
60
+ );
66
61
 
67
62
  ```
68
63
 
@@ -590,7 +585,7 @@ Also nothing will warn you from doing this for SubTypes:
590
585
 
591
586
  ```js
592
587
  const NestedAsyncType = AsyncType
593
- .define('NestedAsyncType',async function (data) {
588
+ .define('NestedAsyncType', async function (data) {
594
589
  return Object.assign(this, {
595
590
  data
596
591
  });
@@ -38,7 +38,7 @@ exports.TypeProxy.prototype.set = function (__, name, value) {
38
38
  const { __type__: type } = this;
39
39
  if (name === 'prototype') {
40
40
  checkProto(value);
41
- type.proto = value;
41
+ Object.assign(type.proto, value);
42
42
  return true;
43
43
  }
44
44
  if (typeof name !== 'string' || !name.length) {
@@ -70,4 +70,4 @@ exports.TypeProxy.prototype.construct = function (__, args) {
70
70
  const instance = new InstanceCreator_1.InstanceCreator(type, mnemosyneProxy, args);
71
71
  return instance;
72
72
  };
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZVByb3h5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90eXBlcy9UeXBlUHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsWUFBWSxDQUFDOzs7QUFLYixvQ0FBa0M7QUFDbEMsTUFBTSxFQUNMLFVBQVUsR0FDVixHQUFHLGVBQVUsQ0FBQztBQUVmLHlDQUFzQztBQUV0QyxxREFBdUQ7QUFDdkQsTUFBTSxFQUNMLHFCQUFxQixHQUNyQixHQUFHLG9CQUFXLENBQUM7QUFFaEIsMkNBQXFDO0FBQ3JDLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxtQkFBVSxDQUFDO0FBRXZDLHVEQUFvRDtBQUl2QyxRQUFBLFNBQVMsR0FBRyxVQUFXLFFBQWEsRUFBRSxNQUFlO0lBQ2pFLE1BQU0sQ0FBQyxNQUFNLENBQUUsSUFBSSxFQUFFO1FBQ3BCLFFBQVE7UUFDUixNQUFNO0tBQ04sQ0FBRSxDQUFDO0lBQ0osTUFBTSxTQUFTLEdBQUcsSUFBSSxLQUFLLENBQUUsaUNBQWUsRUFBRSxJQUFJLENBQUUsQ0FBQztJQUNyRCxPQUFPLFNBQVMsQ0FBQztBQUNsQixDQUE2QixDQUFDO0FBRTlCLGlCQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxVQUFXLE1BQVcsRUFBRSxJQUFtQjtJQUlwRSxNQUFNLEVBQ0wsUUFBUSxFQUFFLElBQUksRUFDZCxHQUFHLElBQUksQ0FBQztJQUtULElBQUssSUFBSSxLQUFLLFdBQVcsRUFBRyxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFFLElBQUksQ0FBRSxDQUFDO0lBQ3JDLElBQUssZUFBZSxFQUFHLENBQUM7UUFDdkIsT0FBTyxlQUFlLENBQUM7SUFDeEIsQ0FBQztJQUlELElBQUssSUFBQSxTQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBRSxFQUFHLENBQUM7UUFDekIsT0FBTyxlQUFlLENBQUM7SUFDeEIsQ0FBQztJQUdELElBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUUsSUFBSSxDQUFFLEVBQUcsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFFLElBQUksQ0FBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUUsTUFBTSxFQUFFLElBQUksQ0FBRSxDQUFDO0FBRXBDLENBQUMsQ0FBQztBQUVGLGlCQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxVQUFXLEVBQU8sRUFBRSxJQUFZLEVBQUUsS0FBVTtJQUVyRSxNQUFNLEVBQ0wsUUFBUSxFQUFFLElBQUksRUFDZCxHQUFHLElBQUksQ0FBQztJQUdULElBQUssSUFBSSxLQUFLLFdBQVcsRUFBRyxDQUFDO1FBQzVCLFVBQVUsQ0FBRSxLQUFLLENBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRCxJQUFLLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUcsQ0FBQztRQUNoRCxNQUFNLElBQUkscUJBQXFCLENBQUUseUNBQXlDLENBQUUsQ0FBQztJQUM5RSxDQUFDO0lBRUQsSUFBSyxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUcsQ0FBQztRQUNuQyxNQUFNLElBQUkscUJBQXFCLENBQUUseUNBQXlDLENBQUUsQ0FBQztJQUM5RSxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQztJQUUxQixJQUFJLENBQUMsTUFBTSxDQUFFLFFBQVEsRUFBRSxXQUFXLENBQUUsQ0FBQztJQUNyQyxPQUFPLElBQUksQ0FBQztBQUViLENBQUMsQ0FBQztBQUdGLGlCQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxVQUFXLEVBQVcsRUFBRSxNQUFlLEVBQUUsSUFBZTtJQUNuRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzNCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQztJQUNwQixJQUFLLE1BQU0sRUFBRyxDQUFDO1FBQ2QsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGlCQUFTLENBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBRSxDQUFDO1FBQzNELFFBQVEsR0FBRyxJQUFJLG9CQUFvQixDQUFFLEdBQUcsSUFBSSxDQUFFLENBQUM7SUFDaEQsQ0FBQztTQUFNLENBQUM7UUFDUCxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBRSxJQUFJLEVBQUUsSUFBSSxDQUFFLENBQUM7SUFDekMsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQUtGLGlCQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxVQUFXLEVBQVcsRUFBRSxJQUFlO0lBSXRFLE1BQU0sRUFDTCxRQUFRLEVBQUUsSUFBSSxFQUNkLE1BQU0sRUFDTixHQUFHLElBQUksQ0FBQztJQUVULE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGlDQUFlLENBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUUsQ0FBQztJQUNuRSxPQUFPLFFBQVEsQ0FBQztBQUVqQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4ndXNlIHN0cmljdCc7XG5cbmltcG9ydCB7IENvbnN0cnVjdG9yRnVuY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cblxuaW1wb3J0IFR5cGVzVXRpbHMgZnJvbSAnLi4vdXRpbHMnO1xuY29uc3Qge1xuXHRjaGVja1Byb3RvLFxufSA9IFR5cGVzVXRpbHM7XG5cbmltcG9ydCB7IGhvcCB9IGZyb20gJy4uLy4uL3V0aWxzL2hvcCc7XG5cbmltcG9ydCB7IEVycm9yc1R5cGVzIH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvZXJyb3JzJztcbmNvbnN0IHtcblx0V1JPTkdfVFlQRV9ERUZJTklUSU9OLFxufSA9IEVycm9yc1R5cGVzO1xuXG5pbXBvcnQgbW5lbW9zeW5lcyBmcm9tICcuL01uZW1vc3luZSc7XG5jb25zdCB7IGNyZWF0ZU1uZW1vc3luZSB9ID0gbW5lbW9zeW5lcztcblxuaW1wb3J0IHsgSW5zdGFuY2VDcmVhdG9yIH0gZnJvbSAnLi9JbnN0YW5jZUNyZWF0b3InO1xuXG5pbXBvcnQgeyAvKiBfZ2V0UHJvcHMsIFByb3BzLCAqLyBUeXBlRGVmIH0gZnJvbSAnLi9Qcm9wcyc7XG5cbmV4cG9ydCBjb25zdCBUeXBlUHJveHkgPSBmdW5jdGlvbiAoIF9fdHlwZV9fOiBhbnksIFVyYW51czogdW5rbm93biApIHtcblx0T2JqZWN0LmFzc2lnbiggdGhpcywge1xuXHRcdF9fdHlwZV9fLFxuXHRcdFVyYW51c1xuXHR9ICk7XG5cdGNvbnN0IHR5cGVQcm94eSA9IG5ldyBQcm94eSggSW5zdGFuY2VDcmVhdG9yLCB0aGlzICk7XG5cdHJldHVybiB0eXBlUHJveHk7XG59IGFzIENvbnN0cnVjdG9yRnVuY3Rpb248YW55PjtcblxuVHlwZVByb3h5LnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAoIHRhcmdldDogYW55LCBwcm9wOiBrZXlvZiBUeXBlRGVmICkge1xuXHRcblx0Ly8gY29uc3QgcHJvcHMgPSBfZ2V0UHJvcHModGhpcykgYXMgUHJvcHM7XG5cblx0Y29uc3Qge1xuXHRcdF9fdHlwZV9fOiB0eXBlXG5cdH0gPSB0aGlzO1xuXG5cdC8vIHByb3RvdHlwZSBvZiBwcm94eVxuXHQvLyBjb25zdCBpbnN0YW5jZSA9IFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YocmVjZWl2ZXIpO1xuXG5cdGlmICggcHJvcCA9PT0gJ3Byb3RvdHlwZScgKSB7XG5cdFx0cmV0dXJuIHR5cGUucHJvdG87XG5cdH1cblxuXHRjb25zdCBwcm9wRGVjbGFyYXRpb24gPSB0eXBlWyBwcm9wIF07XG5cdGlmICggcHJvcERlY2xhcmF0aW9uICkge1xuXHRcdHJldHVybiBwcm9wRGVjbGFyYXRpb247XG5cdH1cblxuXHQvLyB1c2VkIGZvciBleGlzdGVudCBwcm9wcyB3aXRoIHZhbHVlXG5cdC8vIHVuZGVmaW5lZCB8fCBudWxsIHx8IGZhbHNlXG5cdGlmICggaG9wKCB0eXBlLCBwcm9wICkgKSB7XG5cdFx0cmV0dXJuIHByb3BEZWNsYXJhdGlvbjtcblx0fVxuXG5cdC8vIFNvbWVUeXBlLlNvbWVTdWJUeXBlXG5cdGlmICggdHlwZS5zdWJ0eXBlcy5oYXMoIHByb3AgKSApIHtcblx0XHRyZXR1cm4gdHlwZS5zdWJ0eXBlcy5nZXQoIHByb3AgKTtcblx0fVxuXG5cdHJldHVybiBSZWZsZWN0LmdldCggdGFyZ2V0LCBwcm9wICk7XG5cbn07XG5cblR5cGVQcm94eS5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKCBfXzogYW55LCBuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkgKSB7XG5cblx0Y29uc3Qge1xuXHRcdF9fdHlwZV9fOiB0eXBlXG5cdH0gPSB0aGlzO1xuXG5cdC8vIGlzIGFib3V0IHNldHRpbmcgYSBwcm90b3R5cGUgdG8gVHlwZVxuXHRpZiAoIG5hbWUgPT09ICdwcm90b3R5cGUnICkge1xuXHRcdGNoZWNrUHJvdG8oIHZhbHVlICk7XG5cdFx0dHlwZS5wcm90byA9IHZhbHVlO1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0aWYgKCB0eXBlb2YgbmFtZSAhPT0gJ3N0cmluZycgfHwgIW5hbWUubGVuZ3RoICkge1xuXHRcdHRocm93IG5ldyBXUk9OR19UWVBFX0RFRklOSVRJT04oICdzaG91bGQgdXNlIG5vbiBlbXB0eSBzdHJpbmcgYXMgVHlwZU5hbWUnICk7XG5cdH1cblxuXHRpZiAoIHR5cGVvZiB2YWx1ZSAhPT0gJ2Z1bmN0aW9uJyApIHtcblx0XHR0aHJvdyBuZXcgV1JPTkdfVFlQRV9ERUZJTklUSU9OKCAnc2hvdWxkIHVzZSBmdW5jdGlvbiBmb3IgdHlwZSBkZWZpbml0aW9uJyApO1xuXHR9XG5cblx0Y29uc3QgVHlwZU5hbWUgPSBuYW1lO1xuXHRjb25zdCBDb25zdHJ1Y3RvciA9IHZhbHVlO1xuXG5cdHR5cGUuZGVmaW5lKCBUeXBlTmFtZSwgQ29uc3RydWN0b3IgKTtcblx0cmV0dXJuIHRydWU7XG5cbn07XG5cblxuVHlwZVByb3h5LnByb3RvdHlwZS5hcHBseSA9IGZ1bmN0aW9uICggX186IHVua25vd24sIFVyYW51czogdW5rbm93biwgYXJnczogdW5rbm93bltdICkge1xuXHRjb25zdCB0eXBlID0gdGhpcy5fX3R5cGVfXztcblx0bGV0IGluc3RhbmNlID0gbnVsbDtcblx0aWYgKCBVcmFudXMgKSB7XG5cdFx0Y29uc3QgSW5zdGFuY2VDcmVhdG9yUHJveHkgPSBuZXcgVHlwZVByb3h5KCB0eXBlLCBVcmFudXMgKTtcblx0XHRpbnN0YW5jZSA9IG5ldyBJbnN0YW5jZUNyZWF0b3JQcm94eSggLi4uYXJncyApO1xuXHR9IGVsc2Uge1xuXHRcdGluc3RhbmNlID0gdGhpcy5jb25zdHJ1Y3QoIG51bGwsIGFyZ3MgKTtcblx0fVxuXHRyZXR1cm4gaW5zdGFuY2U7XG59O1xuXG5cblxuXG5UeXBlUHJveHkucHJvdG90eXBlLmNvbnN0cnVjdCA9IGZ1bmN0aW9uICggX186IHVua25vd24sIGFyZ3M6IHVua25vd25bXSApIHtcblxuXHQvLyBuZXcudGFyZ2V0IGlkIGVxdWFsIHdpdGggdGFyZ2V0IGhlcmVcblx0XG5cdGNvbnN0IHtcblx0XHRfX3R5cGVfXzogdHlwZSxcblx0XHRVcmFudXNcblx0fSA9IHRoaXM7XG5cblx0Y29uc3QgbW5lbW9zeW5lUHJveHkgPSBjcmVhdGVNbmVtb3N5bmUoVXJhbnVzKTtcblxuXHRjb25zdCBpbnN0YW5jZSA9IG5ldyBJbnN0YW5jZUNyZWF0b3IoIHR5cGUsIG1uZW1vc3luZVByb3h5LCBhcmdzICk7XG5cdHJldHVybiBpbnN0YW5jZTtcblxufTtcbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZVByb3h5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90eXBlcy9UeXBlUHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsWUFBWSxDQUFDOzs7QUFLYixvQ0FBa0M7QUFDbEMsTUFBTSxFQUNMLFVBQVUsR0FDVixHQUFHLGVBQVUsQ0FBQztBQUVmLHlDQUFzQztBQUV0QyxxREFBdUQ7QUFDdkQsTUFBTSxFQUNMLHFCQUFxQixHQUNyQixHQUFHLG9CQUFXLENBQUM7QUFFaEIsMkNBQXFDO0FBQ3JDLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxtQkFBVSxDQUFDO0FBRXZDLHVEQUFvRDtBQUl2QyxRQUFBLFNBQVMsR0FBRyxVQUFXLFFBQWEsRUFBRSxNQUFlO0lBQ2pFLE1BQU0sQ0FBQyxNQUFNLENBQUUsSUFBSSxFQUFFO1FBQ3BCLFFBQVE7UUFDUixNQUFNO0tBQ04sQ0FBRSxDQUFDO0lBQ0osTUFBTSxTQUFTLEdBQUcsSUFBSSxLQUFLLENBQUUsaUNBQWUsRUFBRSxJQUFJLENBQUUsQ0FBQztJQUNyRCxPQUFPLFNBQVMsQ0FBQztBQUNsQixDQUE2QixDQUFDO0FBRTlCLGlCQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxVQUFXLE1BQVcsRUFBRSxJQUFtQjtJQUlwRSxNQUFNLEVBQ0wsUUFBUSxFQUFFLElBQUksRUFDZCxHQUFHLElBQUksQ0FBQztJQUtULElBQUssSUFBSSxLQUFLLFdBQVcsRUFBRyxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFFLElBQUksQ0FBRSxDQUFDO0lBQ3JDLElBQUssZUFBZSxFQUFHLENBQUM7UUFDdkIsT0FBTyxlQUFlLENBQUM7SUFDeEIsQ0FBQztJQUlELElBQUssSUFBQSxTQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBRSxFQUFHLENBQUM7UUFDekIsT0FBTyxlQUFlLENBQUM7SUFDeEIsQ0FBQztJQUdELElBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUUsSUFBSSxDQUFFLEVBQUcsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFFLElBQUksQ0FBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUUsTUFBTSxFQUFFLElBQUksQ0FBRSxDQUFDO0FBRXBDLENBQUMsQ0FBQztBQUVGLGlCQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxVQUFXLEVBQU8sRUFBRSxJQUFZLEVBQUUsS0FBVTtJQUVyRSxNQUFNLEVBQ0wsUUFBUSxFQUFFLElBQUksRUFDZCxHQUFHLElBQUksQ0FBQztJQUdULElBQUssSUFBSSxLQUFLLFdBQVcsRUFBRyxDQUFDO1FBQzVCLFVBQVUsQ0FBRSxLQUFLLENBQUUsQ0FBQztRQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRUQsSUFBSyxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFHLENBQUM7UUFDaEQsTUFBTSxJQUFJLHFCQUFxQixDQUFFLHlDQUF5QyxDQUFFLENBQUM7SUFDOUUsQ0FBQztJQUVELElBQUssT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFHLENBQUM7UUFDbkMsTUFBTSxJQUFJLHFCQUFxQixDQUFFLHlDQUF5QyxDQUFFLENBQUM7SUFDOUUsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQztJQUN0QixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFFMUIsSUFBSSxDQUFDLE1BQU0sQ0FBRSxRQUFRLEVBQUUsV0FBVyxDQUFFLENBQUM7SUFDckMsT0FBTyxJQUFJLENBQUM7QUFFYixDQUFDLENBQUM7QUFHRixpQkFBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsVUFBVyxFQUFXLEVBQUUsTUFBZSxFQUFFLElBQWU7SUFDbkYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUMzQixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDcEIsSUFBSyxNQUFNLEVBQUcsQ0FBQztRQUNkLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxpQkFBUyxDQUFFLElBQUksRUFBRSxNQUFNLENBQUUsQ0FBQztRQUMzRCxRQUFRLEdBQUcsSUFBSSxvQkFBb0IsQ0FBRSxHQUFHLElBQUksQ0FBRSxDQUFDO0lBQ2hELENBQUM7U0FBTSxDQUFDO1FBQ1AsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUUsSUFBSSxFQUFFLElBQUksQ0FBRSxDQUFDO0lBQ3pDLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNqQixDQUFDLENBQUM7QUFLRixpQkFBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsVUFBVyxFQUFXLEVBQUUsSUFBZTtJQUl0RSxNQUFNLEVBQ0wsUUFBUSxFQUFFLElBQUksRUFDZCxNQUFNLEVBQ04sR0FBRyxJQUFJLENBQUM7SUFFVCxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxpQ0FBZSxDQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFFLENBQUM7SUFDbkUsT0FBTyxRQUFRLENBQUM7QUFFakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3RvckZ1bmN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5cbmltcG9ydCBUeXBlc1V0aWxzIGZyb20gJy4uL3V0aWxzJztcbmNvbnN0IHtcblx0Y2hlY2tQcm90byxcbn0gPSBUeXBlc1V0aWxzO1xuXG5pbXBvcnQgeyBob3AgfSBmcm9tICcuLi8uLi91dGlscy9ob3AnO1xuXG5pbXBvcnQgeyBFcnJvcnNUeXBlcyB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3JzL2Vycm9ycyc7XG5jb25zdCB7XG5cdFdST05HX1RZUEVfREVGSU5JVElPTixcbn0gPSBFcnJvcnNUeXBlcztcblxuaW1wb3J0IG1uZW1vc3luZXMgZnJvbSAnLi9NbmVtb3N5bmUnO1xuY29uc3QgeyBjcmVhdGVNbmVtb3N5bmUgfSA9IG1uZW1vc3luZXM7XG5cbmltcG9ydCB7IEluc3RhbmNlQ3JlYXRvciB9IGZyb20gJy4vSW5zdGFuY2VDcmVhdG9yJztcblxuaW1wb3J0IHsgLyogX2dldFByb3BzLCBQcm9wcywgKi8gVHlwZURlZiB9IGZyb20gJy4vUHJvcHMnO1xuXG5leHBvcnQgY29uc3QgVHlwZVByb3h5ID0gZnVuY3Rpb24gKCBfX3R5cGVfXzogYW55LCBVcmFudXM6IHVua25vd24gKSB7XG5cdE9iamVjdC5hc3NpZ24oIHRoaXMsIHtcblx0XHRfX3R5cGVfXyxcblx0XHRVcmFudXNcblx0fSApO1xuXHRjb25zdCB0eXBlUHJveHkgPSBuZXcgUHJveHkoIEluc3RhbmNlQ3JlYXRvciwgdGhpcyApO1xuXHRyZXR1cm4gdHlwZVByb3h5O1xufSBhcyBDb25zdHJ1Y3RvckZ1bmN0aW9uPGFueT47XG5cblR5cGVQcm94eS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKCB0YXJnZXQ6IGFueSwgcHJvcDoga2V5b2YgVHlwZURlZiApIHtcblx0XG5cdC8vIGNvbnN0IHByb3BzID0gX2dldFByb3BzKHRoaXMpIGFzIFByb3BzO1xuXG5cdGNvbnN0IHtcblx0XHRfX3R5cGVfXzogdHlwZVxuXHR9ID0gdGhpcztcblxuXHQvLyBwcm90b3R5cGUgb2YgcHJveHlcblx0Ly8gY29uc3QgaW5zdGFuY2UgPSBSZWZsZWN0LmdldFByb3RvdHlwZU9mKHJlY2VpdmVyKTtcblxuXHRpZiAoIHByb3AgPT09ICdwcm90b3R5cGUnICkge1xuXHRcdHJldHVybiB0eXBlLnByb3RvO1xuXHR9XG5cblx0Y29uc3QgcHJvcERlY2xhcmF0aW9uID0gdHlwZVsgcHJvcCBdO1xuXHRpZiAoIHByb3BEZWNsYXJhdGlvbiApIHtcblx0XHRyZXR1cm4gcHJvcERlY2xhcmF0aW9uO1xuXHR9XG5cblx0Ly8gdXNlZCBmb3IgZXhpc3RlbnQgcHJvcHMgd2l0aCB2YWx1ZVxuXHQvLyB1bmRlZmluZWQgfHwgbnVsbCB8fCBmYWxzZVxuXHRpZiAoIGhvcCggdHlwZSwgcHJvcCApICkge1xuXHRcdHJldHVybiBwcm9wRGVjbGFyYXRpb247XG5cdH1cblxuXHQvLyBTb21lVHlwZS5Tb21lU3ViVHlwZVxuXHRpZiAoIHR5cGUuc3VidHlwZXMuaGFzKCBwcm9wICkgKSB7XG5cdFx0cmV0dXJuIHR5cGUuc3VidHlwZXMuZ2V0KCBwcm9wICk7XG5cdH1cblxuXHRyZXR1cm4gUmVmbGVjdC5nZXQoIHRhcmdldCwgcHJvcCApO1xuXG59O1xuXG5UeXBlUHJveHkucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uICggX186IGFueSwgbmFtZTogc3RyaW5nLCB2YWx1ZTogYW55ICkge1xuXG5cdGNvbnN0IHtcblx0XHRfX3R5cGVfXzogdHlwZVxuXHR9ID0gdGhpcztcblxuXHQvLyBpcyBhYm91dCBzZXR0aW5nIGEgcHJvdG90eXBlIHRvIFR5cGVcblx0aWYgKCBuYW1lID09PSAncHJvdG90eXBlJyApIHtcblx0XHRjaGVja1Byb3RvKCB2YWx1ZSApO1xuXHRcdE9iamVjdC5hc3NpZ24odHlwZS5wcm90bywgdmFsdWUpO1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0aWYgKCB0eXBlb2YgbmFtZSAhPT0gJ3N0cmluZycgfHwgIW5hbWUubGVuZ3RoICkge1xuXHRcdHRocm93IG5ldyBXUk9OR19UWVBFX0RFRklOSVRJT04oICdzaG91bGQgdXNlIG5vbiBlbXB0eSBzdHJpbmcgYXMgVHlwZU5hbWUnICk7XG5cdH1cblxuXHRpZiAoIHR5cGVvZiB2YWx1ZSAhPT0gJ2Z1bmN0aW9uJyApIHtcblx0XHR0aHJvdyBuZXcgV1JPTkdfVFlQRV9ERUZJTklUSU9OKCAnc2hvdWxkIHVzZSBmdW5jdGlvbiBmb3IgdHlwZSBkZWZpbml0aW9uJyApO1xuXHR9XG5cblx0Y29uc3QgVHlwZU5hbWUgPSBuYW1lO1xuXHRjb25zdCBDb25zdHJ1Y3RvciA9IHZhbHVlO1xuXG5cdHR5cGUuZGVmaW5lKCBUeXBlTmFtZSwgQ29uc3RydWN0b3IgKTtcblx0cmV0dXJuIHRydWU7XG5cbn07XG5cblxuVHlwZVByb3h5LnByb3RvdHlwZS5hcHBseSA9IGZ1bmN0aW9uICggX186IHVua25vd24sIFVyYW51czogdW5rbm93biwgYXJnczogdW5rbm93bltdICkge1xuXHRjb25zdCB0eXBlID0gdGhpcy5fX3R5cGVfXztcblx0bGV0IGluc3RhbmNlID0gbnVsbDtcblx0aWYgKCBVcmFudXMgKSB7XG5cdFx0Y29uc3QgSW5zdGFuY2VDcmVhdG9yUHJveHkgPSBuZXcgVHlwZVByb3h5KCB0eXBlLCBVcmFudXMgKTtcblx0XHRpbnN0YW5jZSA9IG5ldyBJbnN0YW5jZUNyZWF0b3JQcm94eSggLi4uYXJncyApO1xuXHR9IGVsc2Uge1xuXHRcdGluc3RhbmNlID0gdGhpcy5jb25zdHJ1Y3QoIG51bGwsIGFyZ3MgKTtcblx0fVxuXHRyZXR1cm4gaW5zdGFuY2U7XG59O1xuXG5cblxuXG5UeXBlUHJveHkucHJvdG90eXBlLmNvbnN0cnVjdCA9IGZ1bmN0aW9uICggX186IHVua25vd24sIGFyZ3M6IHVua25vd25bXSApIHtcblxuXHQvLyBuZXcudGFyZ2V0IGlkIGVxdWFsIHdpdGggdGFyZ2V0IGhlcmVcblx0XG5cdGNvbnN0IHtcblx0XHRfX3R5cGVfXzogdHlwZSxcblx0XHRVcmFudXNcblx0fSA9IHRoaXM7XG5cblx0Y29uc3QgbW5lbW9zeW5lUHJveHkgPSBjcmVhdGVNbmVtb3N5bmUoVXJhbnVzKTtcblxuXHRjb25zdCBpbnN0YW5jZSA9IG5ldyBJbnN0YW5jZUNyZWF0b3IoIHR5cGUsIG1uZW1vc3luZVByb3h5LCBhcmdzICk7XG5cdHJldHVybiBpbnN0YW5jZTtcblxufTtcbiJdfQ==
@@ -10,7 +10,7 @@ const hooksApi = require("../hooks");
10
10
  const TypeProxy_1 = require("./TypeProxy");
11
11
  const compileNewModificatorFunctionBody_1 = require("./compileNewModificatorFunctionBody");
12
12
  const utils_1 = require("../utils");
13
- const { checkProto, getTypeChecker, CreationHandler, getTypeSplitPath, checkTypeName, isClass, } = utils_1.default;
13
+ const { getTypeChecker, CreationHandler, getTypeSplitPath, checkTypeName, isClass, } = utils_1.default;
14
14
  const errors_2 = require("../errors");
15
15
  const TypeDescriptor = function (defineOrigin, types, TypeName, constructHandler, proto, config) {
16
16
  const parentType = types[SymbolParentType] || null;
@@ -19,7 +19,6 @@ const TypeDescriptor = function (defineOrigin, types, TypeName, constructHandler
19
19
  if (types.has(TypeName)) {
20
20
  throw new ALREADY_DECLARED;
21
21
  }
22
- checkProto(proto);
23
22
  const subtypes = new Map();
24
23
  const title = `${TYPE_TITLE_PREFIX}${TypeName}`;
25
24
  config = Object.assign({}, collection[SymbolConfig], config);
@@ -91,37 +90,13 @@ const defineUsingType = function (subtypes, constructHandlerGetter, config) {
91
90
  config.asClass = asClass;
92
91
  return new TypeDescriptor(this, subtypes, TypeName, makeConstructHandler, type.prototype, config);
93
92
  };
94
- const extractNonEnumerableProps = (_obj) => {
95
- const extracted = Object.entries(Object.getOwnPropertyDescriptors(_obj)).reduce((obj, entry) => {
96
- const [name, { value }] = entry;
97
- odp(obj, name, {
98
- value,
99
- configurable: true,
100
- enumerable: true,
101
- writable: true,
102
- });
103
- return obj;
104
- }, {});
105
- return extracted;
106
- };
107
- const defineUsingFunction = function (subtypes, TypeName, constructHandler = function () { }, proto, config = {}) {
93
+ const defineUsingFunction = function (subtypes, TypeName, constructHandler = function () { }, config = {}) {
108
94
  if (typeof constructHandler !== 'function') {
109
95
  throw new HANDLER_MUST_BE_A_FUNCTION;
110
96
  }
111
97
  const asClass = isClass(constructHandler);
112
98
  const modificatorBody = (0, compileNewModificatorFunctionBody_1.default)(TypeName, asClass);
113
99
  const makeConstructHandler = modificatorBody(constructHandler, CreationHandler, SymbolConstructorName);
114
- if (!proto) {
115
- if ((0, hop_1.hop)(constructHandler, 'prototype')) {
116
- proto = Object.assign({}, constructHandler.prototype);
117
- }
118
- else {
119
- proto = {};
120
- }
121
- }
122
- if (asClass) {
123
- proto = extractNonEnumerableProps(proto);
124
- }
125
100
  if (config instanceof Function) {
126
101
  config = {
127
102
  ModificationConstructor: config
@@ -131,12 +106,16 @@ const defineUsingFunction = function (subtypes, TypeName, constructHandler = fun
131
106
  config = {};
132
107
  }
133
108
  config.asClass = asClass;
109
+ const proto = (0, hop_1.hop)(constructHandler, 'prototype') &&
110
+ (constructHandler.prototype instanceof Object) ?
111
+ Object.assign({}, constructHandler.prototype) :
112
+ {};
134
113
  return new TypeDescriptor(this, subtypes, TypeName, makeConstructHandler, proto, config);
135
114
  };
136
- const define = function (subtypes, TypeOrTypeName, constructHandlerOrConfig, proto, config) {
115
+ const define = function (subtypes, TypeOrTypeName, constructHandlerOrConfig, config) {
137
116
  if (typeof TypeOrTypeName === 'function') {
138
117
  if (TypeOrTypeName.name) {
139
- return exports.define.call(this, subtypes, TypeOrTypeName.name, TypeOrTypeName, constructHandlerOrConfig || TypeOrTypeName.prototype, config);
118
+ return exports.define.call(this, subtypes, TypeOrTypeName.name, TypeOrTypeName, config);
140
119
  }
141
120
  else {
142
121
  return defineUsingType.call(this, subtypes, TypeOrTypeName, constructHandlerOrConfig);
@@ -148,15 +127,15 @@ const define = function (subtypes, TypeOrTypeName, constructHandlerOrConfig, pro
148
127
  const Type = exports.lookup.call(subtypes, split[0]);
149
128
  if (!Type) {
150
129
  if (split.length === 1) {
151
- return defineUsingFunction.call(this, subtypes, TypeOrTypeName, constructHandlerOrConfig, proto, config);
130
+ return defineUsingFunction.call(this, subtypes, TypeOrTypeName, constructHandlerOrConfig, config);
152
131
  }
153
132
  throw new WRONG_TYPE_DEFINITION(`${split[0]} definition is not yet exists`);
154
133
  }
155
134
  const TypeName = split.slice(1).join('.');
156
135
  if (split.length > 1) {
157
- return exports.define.call(this, Type.subtypes, TypeName, constructHandlerOrConfig, proto, config);
136
+ return exports.define.call(this, Type.subtypes, TypeName, constructHandlerOrConfig, config);
158
137
  }
159
- return exports.define.call(this, Type.subtypes, constructHandlerOrConfig, proto, config);
138
+ return exports.define.call(this, Type.subtypes, constructHandlerOrConfig, config);
160
139
  }
161
140
  throw new WRONG_TYPE_DEFINITION('definition is not provided');
162
141
  };
@@ -178,4 +157,4 @@ const lookup = function (TypeNestedPath) {
178
157
  return exports.lookup.call(type.subtypes, NextNestedPath);
179
158
  };
180
159
  exports.lookup = lookup;
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7O0FBSWIseUNBQXNDO0FBRXRDLCtDQUE0QztBQUM1QyxNQUFNLEVBQ0wsR0FBRyxFQUNILGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsWUFBWSxFQUVaLGlCQUFpQixFQUNqQixTQUFTLEdBRVQsR0FBRyxxQkFBUyxDQUFDO0FBRWQscURBQXVEO0FBR3ZELE1BQU0sRUFDTCxnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6QiwwQkFBMEIsR0FDMUIsR0FBRyxvQkFBVyxDQUFDO0FBS2hCLHFDQUFxQztBQUNyQywyQ0FBd0M7QUFFeEMsMkZBQW9GO0FBRXBGLG9DQUFrQztBQUNsQyxNQUFNLEVBQ0wsVUFBVSxFQUNWLGNBQWMsRUFDZCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixPQUFPLEdBQ1AsR0FBRyxlQUFVLENBQUM7QUFFZixzQ0FBcUM7QUFFckMsTUFBTSxjQUFjLEdBQUcsVUFFdEIsWUFBOEIsRUFDOUIsS0FBVSxFQUNWLFFBQWdCLEVBQ2hCLGdCQUFrQyxFQUNsQyxLQUFxQyxFQUNyQyxNQUFzQztJQUt0QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUUsZ0JBQWdCLENBQUUsSUFBSSxJQUFJLENBQUM7SUFFckQsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUU1QyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBRSxTQUFTLENBQUUsQ0FBQztJQUUxRSxJQUFLLEtBQUssQ0FBQyxHQUFHLENBQUUsUUFBUSxDQUFFLEVBQUcsQ0FBQztRQUM3QixNQUFNLElBQUksZ0JB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RyxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUUsQ0FBQyxDQUFFLENBQUMsSUFBSSxDQUFFLEdBQUcsQ0FBRSxDQUFDO0lBQ3BELE9BQU8sY0FBTSxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBRSxDQUFDO0FBRXJELENBQUMsQ0FBQztBQXJCVyxRQUFBLE1BQU0sVUFxQmpCIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3RvckZ1bmN0aW9uLCBUeXBlRGVzY3JpcHRvckluc3RhbmNlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBob3AgfSBmcm9tICcuLi8uLi91dGlscy9ob3AnO1xuXG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuY29uc3Qge1xuXHRvZHAsXG5cdFN5bWJvbFBhcmVudFR5cGUsXG5cdFN5bWJvbENvbnN0cnVjdG9yTmFtZSxcblx0U3ltYm9sQ29uZmlnLFxuXG5cdFRZUEVfVElUTEVfUFJFRklYLFxuXHRNTkVNT1NZTkUsXG5cbn0gPSBjb25zdGFudHM7XG5cbmltcG9ydCB7IEVycm9yc1R5cGVzIH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvZXJyb3JzJztcbi8vIGltcG9ydCB7IGRlc2NyaXB0b3JzIH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMnO1xuXG5jb25zdCB7XG5cdEFMUkVBRFlfREVDTEFSRUQsXG5cdFdST05HX1RZUEVfREVGSU5JVElPTixcblx0VFlQRU5BTUVfTVVTVF9CRV9BX1NUUklORyxcblx0SEFORExFUl9NVVNUX0JFX0FfRlVOQ1RJT04sXG59ID0gRXJyb3JzVHlwZXM7XG5cbi8vIGludm9rZUhvb2tcbi8vIHJlZ2lzdGVySG9va1xuLy8gcmVnaXN0ZXJGbG93Q2hlY2tlclxuaW1wb3J0ICogYXMgaG9va3NBcGkgZnJvbSAnLi4vaG9va3MnO1xuaW1wb3J0IHsgVHlwZVByb3h5IH0gZnJvbSAnLi9UeXBlUHJveHknO1xuXG5pbXBvcnQgY29tcGlsZU5ld01vZGlmaWNhdG9yRnVuY3Rpb25Cb2R5IGZyb20gJy4vY29tcGlsZU5ld01vZGlmaWNhdG9yRnVuY3Rpb25Cb2R5JztcblxuaW1wb3J0IFR5cGVzVXRpbHMgZnJvbSAnLi4vdXRpbHMnO1xuY29uc3Qge1xuXHRjaGVja1Byb3RvLFxuXHRnZXRUeXBlQ2hlY2tlcixcblx0Q3JlYXRpb25IYW5kbGVyLFxuXHRnZXRUeXBlU3BsaXRQYXRoLFxuXHRjaGVja1R5cGVOYW1lLFxuXHRpc0NsYXNzLFxufSA9IFR5cGVzVXRpbHM7XG5cbmltcG9ydCB7IGdldFN0YWNrIH0gZnJvbSAnLi4vZXJyb3JzJztcblxuY29uc3QgVHlwZURlc2NyaXB0b3IgPSBmdW5jdGlvbiAoXG5cdHRoaXM6IGFueSxcblx0ZGVmaW5lT3JpZ2luOiBDYWxsYWJsZUZ1bmN0aW9uLFxuXHR0eXBlczogYW55LFxuXHRUeXBlTmFtZTogc3RyaW5nLFxuXHRjb25zdHJ1Y3RIYW5kbGVyOiBDYWxsYWJsZUZ1bmN0aW9uLFxuXHRwcm90bzogeyBbIGluZGV4OiBzdHJpbmcgXTogdW5rbm93biB9LFxuXHRjb25maWc6IHsgWyBpbmRleDogc3RyaW5nIF06IHVua25vd24gfSxcbikge1xuXG5cdC8vIGhlcmUgXCJ0eXBlc1wiIHJlZmVycyB0byBzdWJ0eXBlcyBvZiB0eXBlIG9yIGNvbGxlY3Rpb24gb2JqZWN0IHt9XG5cblx0Y29uc3QgcGFyZW50VHlwZSA9IHR5cGVzWyBTeW1ib2xQYXJlbnRUeXBlIF0gfHwgbnVsbDtcblxuXHRjb25zdCBpc1N1YlR5cGUgPSBwYXJlbnRUeXBlID8gdHJ1ZSA6IGZhbHNlO1xuXG5cdGNvbnN0IGNvbGxlY3Rpb24gPSBpc1N1YlR5cGUgPyBwYXJlbnRUeXBlLmNvbGxlY3Rpb24gOiB0eXBlc1sgTU5FTU9TWU5FIF07XG5cblx0aWYgKCB0eXBlcy5oYXMoIFR5cGVOYW1lICkgKSB7XG5cdFx0dGhyb3cgbmV3IEFMUkVBRFlfREVDTEFSRUQ7XG5cdH1cblxuXHRjaGVja1Byb3RvKCBwcm90byApO1xuXG5cdC8vIGNvbnN0IHN1YnR5cGVzID0gZGVzY3JpcHRvcnMuY3JlYXRlVHlwZXNDb2xsZWN0aW9uKCk7XG5cdGNvbnN0IHN1YnR5cGVzID0gbmV3IE1hcCgpO1xuXG5cdGNvbnN0IHRpdGxlID0gYCR7VFlQRV9USVRMRV9QUkVGSVh9JHtUeXBlTmFtZX1gO1xuXG5cdGNvbmZpZyA9IE9iamVjdC5hc3NpZ24oIHt9LCBjb2xsZWN0aW9uWyBTeW1ib2xDb25maWcgXSwgY29uZmlnICk7XG5cblx0Y29uc3QgdHlwZSA9IE9iamVjdC5hc3NpZ24oIHRoaXMsIHtcblxuXHRcdGdldCBjb25zdHJ1Y3RIYW5kbGVyICgpIHtcblx0XHRcdHJldHVybiBjb25zdHJ1Y3RIYW5kbGVyO1xuXHRcdH0sXG5cblxuXHRcdFR5cGVOYW1lLFxuXHRcdHByb3RvLFxuXG5cdFx0aXNTdWJUeXBlLFxuXHRcdHN1YnR5cGVzLFxuXHRcdHBhcmVudFR5cGUsXG5cblx0XHRjb2xsZWN0aW9uLFxuXG5cdFx0dGl0bGUsXG5cblx0XHRjb25maWcsXG5cblx0XHRob29rcyA6IE9iamVjdC5jcmVhdGUoIG51bGwgKVxuXG5cdH0gKTtcblxuXHRnZXRTdGFjay5jYWxsKCB0aGlzLCBgRGVmaW5pdGlvbiBvZiBbICR7VHlwZU5hbWV9IF0gbWFkZSBhdDpgLCBbXSwgZGVmaW5lT3JpZ2luICk7XG5cblx0b2RwKCBzdWJ0eXBlcywgU3ltYm9sUGFyZW50VHlwZSwge1xuXHRcdGdldCAoKSB7XG5cdFx0XHRyZXR1cm4gdHlwZTtcblx0XHR9XG5cdH0gKTtcblxuXHR0eXBlcy5zZXQoIFR5cGVOYW1lLCBuZXcgVHlwZVByb3h5KCB0eXBlICkgKTtcblxuXHRyZXR1cm4gdHlwZXMuZ2V0KCBUeXBlTmFtZSApO1xuXG59IGFzIENvbnN0cnVjdG9yRnVuY3Rpb248VHlwZURlc2NyaXB0b3JJbnN0YW5jZT47XG5cbk9iamVjdC5hc3NpZ24oIFR5cGVEZXNjcmlwdG9yLnByb3RvdHlwZSwgaG9va3NBcGkgKTtcblxuVHlwZURlc2NyaXB0b3IucHJvdG90eXBlLmRlZmluZSA9IGZ1bmN0aW9uICggLi4uYXJnczogYW55W10gKSB7XG5cdHJldHVybiBkZWZpbmUuY2FsbCggZGVmaW5lLCB0aGlzLnN1YnR5cGVzLCAuLi5hcmdzICk7XG59O1xuXG5UeXBlRGVzY3JpcHRvci5wcm90b3R5cGUubG9va3VwID0gZnVuY3Rpb24gKCAuLi5hcmdzOiBhbnlbXSApIHtcblx0cmV0dXJuIGxvb2t1cC5jYWxsKCB0aGlzLnN1YnR5cGVzLCAuLi5hcmdzICk7XG59O1xuXG5vZHAoIFR5cGVEZXNjcmlwdG9yLnByb3RvdHlwZSwgU3ltYm9sLmhhc0luc3RhbmNlLCB7XG5cdGdldCAoKSB7XG5cdFx0cmV0dXJuIGdldFR5cGVDaGVja2VyKCB0aGlzLlR5cGVOYW1lICk7XG5cdH1cbn0gKTtcblxuY29uc3QgZGVmaW5lVXNpbmdUeXBlID0gZnVuY3Rpb24gKCB0aGlzOiBhbnksIHN1YnR5cGVzOiBhbnksIGNvbnN0cnVjdEhhbmRsZXJHZXR0ZXI6IENhbGxhYmxlRnVuY3Rpb24sIGNvbmZpZzogYW55ICkge1xuXHQvLyB3ZSBuZWVkIHRoaXMgdG8gZXh0cmFjdCBUeXBlTmFtZVxuXHRjb25zdCB0eXBlID0gY29uc3RydWN0SGFuZGxlckdldHRlcigpO1xuXG5cdGlmICggdHlwZW9mIHR5cGUgIT09ICdmdW5jdGlvbicgKSB7XG5cdFx0dGhyb3cgbmV3IEhBTkRMRVJfTVVTVF9CRV9BX0ZVTkNUSU9OO1xuXHR9XG5cblx0Y29uc3QgVHlwZU5hbWUgPSB0eXBlLm5hbWU7XG5cblx0aWYgKCAhVHlwZU5hbWUgKSB7XG5cdFx0dGhyb3cgbmV3IFRZUEVOQU1FX01VU1RfQkVfQV9TVFJJTkc7XG5cdH1cblxuXHRjb25zdCBhc0NsYXNzID0gaXNDbGFzcyggdHlwZSApO1xuXG5cdGNvbnN0IG1ha2VDb25zdHJ1Y3RIYW5kbGVyID0gKCkgPT4ge1xuXHRcdGNvbnN0IGNvbnN0cnVjdEhhbmRsZXIgPSBjb25zdHJ1Y3RIYW5kbGVyR2V0dGVyKCk7XG5cdFx0Ly8gY29uc3RydWN0SGFuZGxlcltTeW1ib2xDb25zdHJ1Y3Rvck5hbWVdID0gVHlwZU5hbWU7XG5cdFx0b2RwKCBjb25zdHJ1Y3RIYW5kbGVyLCBTeW1ib2xDb25zdHJ1Y3Rvck5hbWUsIHtcblx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdHJldHVybiBUeXBlTmFtZTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdFx0Y29uc3QgcHJvdG9EZXNjOiBhbnkgPSBPYmplY3Rcblx0XHRcdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoIGNvbnN0cnVjdEhhbmRsZXIsICdwcm90b3R5cGUnICk7XG5cdFx0aWYgKCBwcm90b0Rlc2Mud3JpdGFibGUgKSB7XG5cdFx0XHRjb25zdHJ1Y3RIYW5kbGVyLnByb3RvdHlwZSA9IHt9O1xuXHRcdH1cblx0XHRyZXR1cm4gY29uc3RydWN0SGFuZGxlcjtcblx0fTtcblxuXHRpZiAoIHR5cGVvZiBjb25maWcgPT09ICdvYmplY3QnICkge1xuXHRcdGNvbmZpZyA9IE9iamVjdC5hc3NpZ24oIHt9LCBjb25maWcgKTtcblx0fSBlbHNlIHtcblx0XHRjb25maWcgPSB7fTtcblx0fVxuXG5cdGNvbmZpZy5hc0NsYXNzID0gYXNDbGFzcztcblxuXHRyZXR1cm4gbmV3IFR5cGVEZXNjcmlwdG9yKFxuXHRcdHRoaXMsXG5cdFx0c3VidHlwZXMsXG5cdFx0VHlwZU5hbWUsXG5cdFx0bWFrZUNvbnN0cnVjdEhhbmRsZXIsXG5cdFx0dHlwZS5wcm90b3R5cGUsXG5cdFx0Y29uZmlnXG5cdCk7XG59O1xuXG5jb25zdCBleHRyYWN0Tm9uRW51bWVyYWJsZVByb3BzID0gKCBfb2JqOiBvYmplY3QgKSA9PiB7XG5cdGNvbnN0IGV4dHJhY3RlZCA9IE9iamVjdC5lbnRyaWVzKCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyggX29iaiApICkucmVkdWNlKCAoIG9iaiwgZW50cnkgKSA9PiB7XG5cdFx0Y29uc3QgWyBuYW1lLCB7IHZhbHVlIH0gXSA9IGVudHJ5O1xuXHRcdG9kcCggb2JqLCBuYW1lLCB7XG5cdFx0XHR2YWx1ZSxcblx0XHRcdGNvbmZpZ3VyYWJsZSA6IHRydWUsXG5cdFx0XHRlbnVtZXJhYmxlICAgOiB0cnVlLFxuXHRcdFx0d3JpdGFibGUgICAgIDogdHJ1ZSxcblx0XHR9XG5cdFx0KTtcblx0XHRyZXR1cm4gb2JqO1xuXHR9LCB7fSApO1xuXHRyZXR1cm4gZXh0cmFjdGVkO1xufTtcblxuXG5jb25zdCBkZWZpbmVVc2luZ0Z1bmN0aW9uID0gZnVuY3Rpb24gKFxuXHR0aGlzOiBhbnksXG5cdHN1YnR5cGVzOiBhbnksXG5cdFR5cGVOYW1lOiBzdHJpbmcsXG5cdGNvbnN0cnVjdEhhbmRsZXIgPSBmdW5jdGlvbiAoKSB7IH0sXG5cdHByb3RvOiBhbnksXG5cdGNvbmZpZzogYW55ID0ge31cbikge1xuXG5cdGlmICggdHlwZW9mIGNvbnN0cnVjdEhhbmRsZXIgIT09ICdmdW5jdGlvbicgKSB7XG5cdFx0dGhyb3cgbmV3IEhBTkRMRVJfTVVTVF9CRV9BX0ZVTkNUSU9OO1xuXHR9XG5cblx0Y29uc3QgYXNDbGFzcyA9IGlzQ2xhc3MoIGNvbnN0cnVjdEhhbmRsZXIgKTtcblx0Y29uc3QgbW9kaWZpY2F0b3JCb2R5ID0gY29tcGlsZU5ld01vZGlmaWNhdG9yRnVuY3Rpb25Cb2R5KCBUeXBlTmFtZSwgYXNDbGFzcyApO1xuXG5cdGNvbnN0IG1ha2VDb25zdHJ1Y3RIYW5kbGVyID0gbW9kaWZpY2F0b3JCb2R5KFxuXHRcdGNvbnN0cnVjdEhhbmRsZXIsXG5cdFx0Q3JlYXRpb25IYW5kbGVyLFxuXHRcdFN5bWJvbENvbnN0cnVjdG9yTmFtZVxuXHQpO1xuXG5cdGlmICggIXByb3RvICkge1xuXHRcdGlmICggaG9wKCBjb25zdHJ1Y3RIYW5kbGVyLCAncHJvdG90eXBlJyApICkge1xuXHRcdFx0cHJvdG8gPSBPYmplY3QuYXNzaWduKCB7fSwgY29uc3RydWN0SGFuZGxlci5wcm90b3R5cGUgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cHJvdG8gPSB7fTtcblx0XHR9XG5cdH1cblxuXHRpZiAoIGFzQ2xhc3MgKSB7XG5cdFx0cHJvdG8gPSBleHRyYWN0Tm9uRW51bWVyYWJsZVByb3BzKCBwcm90byApO1xuXHR9XG5cblx0aWYgKCBjb25maWcgaW5zdGFuY2VvZiBGdW5jdGlvbiApIHtcblx0XHRjb25maWcgPSB7XG5cdFx0XHRNb2RpZmljYXRpb25Db25zdHJ1Y3RvciA6IGNvbmZpZ1xuXHRcdH07XG5cdH1cblxuXHRpZiAoIHR5cGVvZiBjb25maWcgIT09ICdvYmplY3QnICkge1xuXHRcdGNvbmZpZyA9IHt9O1xuXHR9XG5cblxuXHRjb25maWcuYXNDbGFzcyA9IGFzQ2xhc3M7XG5cblx0cmV0dXJuIG5ldyBUeXBlRGVzY3JpcHRvcihcblx0XHR0aGlzLFxuXHRcdHN1YnR5cGVzLFxuXHRcdFR5cGVOYW1lLFxuXHRcdG1ha2VDb25zdHJ1Y3RIYW5kbGVyLFxuXHRcdHByb3RvLFxuXHRcdGNvbmZpZ1xuXHQpO1xuXG59O1xuXG5cbmV4cG9ydCBjb25zdCBkZWZpbmU6IGFueSA9IGZ1bmN0aW9uICggdGhpczogYW55LCBzdWJ0eXBlczogYW55LCBUeXBlT3JUeXBlTmFtZTogc3RyaW5nIHwgYW55LCBjb25zdHJ1Y3RIYW5kbGVyT3JDb25maWc6IGFueSwgcHJvdG86IG9iamVjdCwgY29uZmlnOiBvYmplY3QgKSB7XG5cblx0aWYgKCB0eXBlb2YgVHlwZU9yVHlwZU5hbWUgPT09ICdmdW5jdGlvbicgKSB7XG5cdFx0aWYgKCBUeXBlT3JUeXBlTmFtZS5uYW1lICkge1xuXHRcdFx0cmV0dXJuIGRlZmluZS5jYWxsKCB0aGlzLCBzdWJ0eXBlcywgVHlwZU9yVHlwZU5hbWUubmFtZSwgVHlwZU9yVHlwZU5hbWUsIGNvbnN0cnVjdEhhbmRsZXJPckNvbmZpZyB8fCBUeXBlT3JUeXBlTmFtZS5wcm90b3R5cGUsIGNvbmZpZyApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gZGVmaW5lVXNpbmdUeXBlLmNhbGwoIHRoaXMsIHN1YnR5cGVzLCBUeXBlT3JUeXBlTmFtZSwgY29uc3RydWN0SGFuZGxlck9yQ29uZmlnICk7XG5cdFx0fVxuXHR9XG5cblx0aWYgKCB0eXBlb2YgVHlwZU9yVHlwZU5hbWUgPT09ICdzdHJpbmcnICkge1xuXG5cdFx0Y2hlY2tUeXBlTmFtZSggVHlwZU9yVHlwZU5hbWUgKTtcblxuXHRcdGNvbnN0IHNwbGl0ID0gZ2V0VHlwZVNwbGl0UGF0aCggVHlwZU9yVHlwZU5hbWUgKTtcblxuXHRcdGNvbnN0IFR5cGUgPSBsb29rdXAuY2FsbCggc3VidHlwZXMsIHNwbGl0WyAwIF0gKTtcblxuXHRcdGlmICggIVR5cGUgKSB7XG5cblx0XHRcdGlmICggc3BsaXQubGVuZ3RoID09PSAxICkge1xuXHRcdFx0XHRyZXR1cm4gZGVmaW5lVXNpbmdGdW5jdGlvbi5jYWxsKCB0aGlzLCBzdWJ0eXBlcywgVHlwZU9yVHlwZU5hbWUsIGNvbnN0cnVjdEhhbmRsZXJPckNvbmZpZywgcHJvdG8sIGNvbmZpZyApO1xuXHRcdFx0fVxuXG5cdFx0XHR0aHJvdyBuZXcgV1JPTkdfVFlQRV9ERUZJTklUSU9OKCBgJHtzcGxpdFsgMCBdfSBkZWZpbml0aW9uIGlzIG5vdCB5ZXQgZXhpc3RzYCApO1xuXHRcdH1cblxuXHRcdGNvbnN0IFR5cGVOYW1lID0gc3BsaXQuc2xpY2UoIDEgKS5qb2luKCAnLicgKTtcblxuXHRcdGlmICggc3BsaXQubGVuZ3RoID4gMSApIHtcblx0XHRcdHJldHVybiBkZWZpbmUuY2FsbCggdGhpcywgVHlwZS5zdWJ0eXBlcywgVHlwZU5hbWUsIGNvbnN0cnVjdEhhbmRsZXJPckNvbmZpZywgcHJvdG8sIGNvbmZpZyApO1xuXHRcdH1cblxuXHRcdC8vIHNvLCBoZXJlIHdlIGdvIHdpdGhcblx0XHQvLyBkZWZpbmVVc2luZ1R5cGUuY2FsbFxuXHRcdC8vIGZyb20gdGhlIG5leHQgc3RlcFxuXHRcdHJldHVybiBkZWZpbmUuY2FsbCggdGhpcywgVHlwZS5zdWJ0eXBlcywgY29uc3RydWN0SGFuZGxlck9yQ29uZmlnLCBwcm90bywgY29uZmlnICk7XG5cblx0fVxuXG5cdHRocm93IG5ldyBXUk9OR19UWVBFX0RFRklOSVRJT04oICdkZWZpbml0aW9uIGlzIG5vdCBwcm92aWRlZCcgKTtcblxufTtcblxuZXhwb3J0IGNvbnN0IGxvb2t1cDogYW55ID0gZnVuY3Rpb24gKCB0aGlzOiBhbnksIFR5cGVOZXN0ZWRQYXRoOiBzdHJpbmcgKSB7XG5cblx0aWYgKCB0eXBlb2YgVHlwZU5lc3RlZFBhdGggIT09ICdzdHJpbmcnICkge1xuXHRcdHRocm93IG5ldyBXUk9OR19UWVBFX0RFRklOSVRJT04oICdhcmcgOiB0eXBlIG5lc3RlZCBwYXRoIG11c3QgYmUgYSBzdHJpbmcnICk7XG5cdH1cblxuXHRpZiAoICFUeXBlTmVzdGVkUGF0aC5sZW5ndGggKSB7XG5cdFx0dGhyb3cgbmV3IFdST05HX1RZUEVfREVGSU5JVElPTiggJ2FyZyA6IHR5cGUgbmVzdGVkIHBhdGggaGFzIG5vIHBhdGgnICk7XG5cdH1cblxuXHRjb25zdCBzcGxpdCA9IGdldFR5cGVTcGxpdFBhdGgoIFR5cGVOZXN0ZWRQYXRoICk7XG5cblx0Y29uc3QgWyBuYW1lIF0gPSBzcGxpdDtcblx0Y29uc3QgdHlwZSA9IHRoaXMuZ2V0KCBuYW1lICk7XG5cdGlmICggc3BsaXQubGVuZ3RoID09PSAxICkge1xuXHRcdHJldHVybiB0eXBlO1xuXHR9XG5cblx0Y29uc3QgTmV4dE5lc3RlZFBhdGggPSBzcGxpdC5zbGljZSggMSApLmpvaW4oICcuJyApO1xuXHRyZXR1cm4gbG9va3VwLmNhbGwoIHR5cGUuc3VidHlwZXMsIE5leHROZXN0ZWRQYXRoICk7XG5cbn07XG5cblxuXG4iXX0=
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7O0FBSWIseUNBQXNDO0FBRXRDLCtDQUE0QztBQUM1QyxNQUFNLEVBQ0wsR0FBRyxFQUNILGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsWUFBWSxFQUVaLGlCQUFpQixFQUNqQixTQUFTLEdBRVQsR0FBRyxxQkFBUyxDQUFDO0FBRWQscURBQXVEO0FBR3ZELE1BQU0sRUFDTCxnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6QiwwQkFBMEIsR0FDMUIsR0FBRyxvQkFBVyxDQUFDO0FBS2hCLHFDQUFxQztBQUNyQywyQ0FBd0M7QUFFeEMsMkZBQW9GO0FBRXBGLG9DQUFrQztBQUNsQyxNQUFNLEVBQ0wsY0FBYyxFQUNkLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLE9BQU8sR0FDUCxHQUFHLGVBQVUsQ0FBQztBQUVmLHNDQUFxQztBQUVyQyxNQUFNLGNBQWMsR0FBRyxVQUV0QixZQUE4QixFQUM5QixLQUFVLEVBQ1YsUUFBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLEtBQXFDLEVBQ3JDLE1BQXNDO0lBS3RDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBRSxnQkFBZ0IsQ0FBRSxJQUFJLElBQUksQ0FBQztJQUVyRCxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBRTVDLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFFLFNBQVMsQ0FBRSxDQUFDO0lBRTFFLElBQUssS0FBSyxDQUFDLEdBQUcsQ0FBRSxRQUFRLENBQUUsRUFBRyxDQUFDO1FBQzdCLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQztJ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QU0sSUFBSSxxQkFBcUIsQ0FBRSxvQ0FBb0MsQ0FBRSxDQUFDO0lBQ3pFLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBRSxjQUFjLENBQUUsQ0FBQztJQUVqRCxNQUFNLENBQUUsSUFBSSxDQUFFLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUUsSUFBSSxDQUFFLENBQUM7SUFDOUIsSUFBSyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRyxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUUsQ0FBQyxDQUFFLENBQUMsSUFBSSxDQUFFLEdBQUcsQ0FBRSxDQUFDO0lBQ3BELE9BQU8sY0FBTSxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBRSxDQUFDO0FBRXJELENBQUMsQ0FBQztBQXJCVyxRQUFBLE1BQU0sVUFxQmpCIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3RvckZ1bmN0aW9uLCBUeXBlRGVzY3JpcHRvckluc3RhbmNlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBob3AgfSBmcm9tICcuLi8uLi91dGlscy9ob3AnO1xuXG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuY29uc3Qge1xuXHRvZHAsXG5cdFN5bWJvbFBhcmVudFR5cGUsXG5cdFN5bWJvbENvbnN0cnVjdG9yTmFtZSxcblx0U3ltYm9sQ29uZmlnLFxuXG5cdFRZUEVfVElUTEVfUFJFRklYLFxuXHRNTkVNT1NZTkUsXG5cbn0gPSBjb25zdGFudHM7XG5cbmltcG9ydCB7IEVycm9yc1R5cGVzIH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvZXJyb3JzJztcbi8vIGltcG9ydCB7IGRlc2NyaXB0b3JzIH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMnO1xuXG5jb25zdCB7XG5cdEFMUkVBRFlfREVDTEFSRUQsXG5cdFdST05HX1RZUEVfREVGSU5JVElPTixcblx0VFlQRU5BTUVfTVVTVF9CRV9BX1NUUklORyxcblx0SEFORExFUl9NVVNUX0JFX0FfRlVOQ1RJT04sXG59ID0gRXJyb3JzVHlwZXM7XG5cbi8vIGludm9rZUhvb2tcbi8vIHJlZ2lzdGVySG9va1xuLy8gcmVnaXN0ZXJGbG93Q2hlY2tlclxuaW1wb3J0ICogYXMgaG9va3NBcGkgZnJvbSAnLi4vaG9va3MnO1xuaW1wb3J0IHsgVHlwZVByb3h5IH0gZnJvbSAnLi9UeXBlUHJveHknO1xuXG5pbXBvcnQgY29tcGlsZU5ld01vZGlmaWNhdG9yRnVuY3Rpb25Cb2R5IGZyb20gJy4vY29tcGlsZU5ld01vZGlmaWNhdG9yRnVuY3Rpb25Cb2R5JztcblxuaW1wb3J0IFR5cGVzVXRpbHMgZnJvbSAnLi4vdXRpbHMnO1xuY29uc3Qge1xuXHRnZXRUeXBlQ2hlY2tlcixcblx0Q3JlYXRpb25IYW5kbGVyLFxuXHRnZXRUeXBlU3BsaXRQYXRoLFxuXHRjaGVja1R5cGVOYW1lLFxuXHRpc0NsYXNzLFxufSA9IFR5cGVzVXRpbHM7XG5cbmltcG9ydCB7IGdldFN0YWNrIH0gZnJvbSAnLi4vZXJyb3JzJztcblxuY29uc3QgVHlwZURlc2NyaXB0b3IgPSBmdW5jdGlvbiAoXG5cdHRoaXM6IGFueSxcblx0ZGVmaW5lT3JpZ2luOiBDYWxsYWJsZUZ1bmN0aW9uLFxuXHR0eXBlczogYW55LFxuXHRUeXBlTmFtZTogc3RyaW5nLFxuXHRjb25zdHJ1Y3RIYW5kbGVyOiBDYWxsYWJsZUZ1bmN0aW9uLFxuXHRwcm90bzogeyBbIGluZGV4OiBzdHJpbmcgXTogdW5rbm93biB9LFxuXHRjb25maWc6IHsgWyBpbmRleDogc3RyaW5nIF06IHVua25vd24gfSxcbikge1xuXG5cdC8vIGhlcmUgXCJ0eXBlc1wiIHJlZmVycyB0byBzdWJ0eXBlcyBvZiB0eXBlIG9yIGNvbGxlY3Rpb24gb2JqZWN0IHt9XG5cblx0Y29uc3QgcGFyZW50VHlwZSA9IHR5cGVzWyBTeW1ib2xQYXJlbnRUeXBlIF0gfHwgbnVsbDtcblxuXHRjb25zdCBpc1N1YlR5cGUgPSBwYXJlbnRUeXBlID8gdHJ1ZSA6IGZhbHNlO1xuXG5cdGNvbnN0IGNvbGxlY3Rpb24gPSBpc1N1YlR5cGUgPyBwYXJlbnRUeXBlLmNvbGxlY3Rpb24gOiB0eXBlc1sgTU5FTU9TWU5FIF07XG5cblx0aWYgKCB0eXBlcy5oYXMoIFR5cGVOYW1lICkgKSB7XG5cdFx0dGhyb3cgbmV3IEFMUkVBRFlfREVDTEFSRUQ7XG5cdH1cblxuXHQvLyBjb25zdCBzdWJ0eXBlcyA9IGRlc2NyaXB0b3JzLmNyZWF0ZVR5cGVzQ29sbGVjdGlvbigpO1xuXHRjb25zdCBzdWJ0eXBlcyA9IG5ldyBNYXAoKTtcblxuXHRjb25zdCB0aXRsZSA9IGAke1RZUEVfVElUTEVfUFJFRklYfSR7VHlwZU5hbWV9YDtcblxuXHRjb25maWcgPSBPYmplY3QuYXNzaWduKCB7fSwgY29sbGVjdGlvblsgU3ltYm9sQ29uZmlnIF0sIGNvbmZpZyApO1xuXG5cdGNvbnN0IHR5cGUgPSBPYmplY3QuYXNzaWduKCB0aGlzLCB7XG5cblx0XHRnZXQgY29uc3RydWN0SGFuZGxlciAoKSB7XG5cdFx0XHRyZXR1cm4gY29uc3RydWN0SGFuZGxlcjtcblx0XHR9LFxuXG5cblx0XHRUeXBlTmFtZSxcblx0XHRwcm90byxcblxuXHRcdGlzU3ViVHlwZSxcblx0XHRzdWJ0eXBlcyxcblx0XHRwYXJlbnRUeXBlLFxuXG5cdFx0Y29sbGVjdGlvbixcblxuXHRcdHRpdGxlLFxuXG5cdFx0Y29uZmlnLFxuXG5cdFx0aG9va3MgOiBPYmplY3QuY3JlYXRlKCBudWxsIClcblxuXHR9ICk7XG5cblx0Z2V0U3RhY2suY2FsbCggdGhpcywgYERlZmluaXRpb24gb2YgWyAke1R5cGVOYW1lfSBdIG1hZGUgYXQ6YCwgW10sIGRlZmluZU9yaWdpbiApO1xuXG5cdG9kcCggc3VidHlwZXMsIFN5bWJvbFBhcmVudFR5cGUsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIHR5cGU7XG5cdFx0fVxuXHR9ICk7XG5cblx0dHlwZXMuc2V0KCBUeXBlTmFtZSwgbmV3IFR5cGVQcm94eSggdHlwZSApICk7XG5cblx0cmV0dXJuIHR5cGVzLmdldCggVHlwZU5hbWUgKTtcblxufSBhcyBDb25zdHJ1Y3RvckZ1bmN0aW9uPFR5cGVEZXNjcmlwdG9ySW5zdGFuY2U+O1xuXG5PYmplY3QuYXNzaWduKCBUeXBlRGVzY3JpcHRvci5wcm90b3R5cGUsIGhvb2tzQXBpICk7XG5cblR5cGVEZXNjcmlwdG9yLnByb3RvdHlwZS5kZWZpbmUgPSBmdW5jdGlvbiAoIC4uLmFyZ3M6IGFueVtdICkge1xuXHRyZXR1cm4gZGVmaW5lLmNhbGwoIGRlZmluZSwgdGhpcy5zdWJ0eXBlcywgLi4uYXJncyApO1xufTtcblxuVHlwZURlc2NyaXB0b3IucHJvdG90eXBlLmxvb2t1cCA9IGZ1bmN0aW9uICggLi4uYXJnczogYW55W10gKSB7XG5cdHJldHVybiBsb29rdXAuY2FsbCggdGhpcy5zdWJ0eXBlcywgLi4uYXJncyApO1xufTtcblxub2RwKCBUeXBlRGVzY3JpcHRvci5wcm90b3R5cGUsIFN5bWJvbC5oYXNJbnN0YW5jZSwge1xuXHRnZXQgKCkge1xuXHRcdHJldHVybiBnZXRUeXBlQ2hlY2tlciggdGhpcy5UeXBlTmFtZSApO1xuXHR9XG59ICk7XG5cbmNvbnN0IGRlZmluZVVzaW5nVHlwZSA9IGZ1bmN0aW9uICggdGhpczogYW55LCBzdWJ0eXBlczogYW55LCBjb25zdHJ1Y3RIYW5kbGVyR2V0dGVyOiBDYWxsYWJsZUZ1bmN0aW9uLCBjb25maWc6IGFueSApIHtcblx0Ly8gd2UgbmVlZCB0aGlzIHRvIGV4dHJhY3QgVHlwZU5hbWVcblx0Y29uc3QgdHlwZSA9IGNvbnN0cnVjdEhhbmRsZXJHZXR0ZXIoKTtcblxuXHRpZiAoIHR5cGVvZiB0eXBlICE9PSAnZnVuY3Rpb24nICkge1xuXHRcdHRocm93IG5ldyBIQU5ETEVSX01VU1RfQkVfQV9GVU5DVElPTjtcblx0fVxuXG5cdGNvbnN0IFR5cGVOYW1lID0gdHlwZS5uYW1lO1xuXG5cdGlmICggIVR5cGVOYW1lICkge1xuXHRcdHRocm93IG5ldyBUWVBFTkFNRV9NVVNUX0JFX0FfU1RSSU5HO1xuXHR9XG5cblx0Y29uc3QgYXNDbGFzcyA9IGlzQ2xhc3MoIHR5cGUgKTtcblxuXHRjb25zdCBtYWtlQ29uc3RydWN0SGFuZGxlciA9ICgpID0+IHtcblx0XHRjb25zdCBjb25zdHJ1Y3RIYW5kbGVyID0gY29uc3RydWN0SGFuZGxlckdldHRlcigpO1xuXHRcdC8vIGNvbnN0cnVjdEhhbmRsZXJbU3ltYm9sQ29uc3RydWN0b3JOYW1lXSA9IFR5cGVOYW1lO1xuXHRcdG9kcCggY29uc3RydWN0SGFuZGxlciwgU3ltYm9sQ29uc3RydWN0b3JOYW1lLCB7XG5cdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRyZXR1cm4gVHlwZU5hbWU7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHRcdGNvbnN0IHByb3RvRGVzYzogYW55ID0gT2JqZWN0XG5cdFx0XHQuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKCBjb25zdHJ1Y3RIYW5kbGVyLCAncHJvdG90eXBlJyApO1xuXHRcdGlmICggcHJvdG9EZXNjLndyaXRhYmxlICkge1xuXHRcdFx0Y29uc3RydWN0SGFuZGxlci5wcm90b3R5cGUgPSB7fTtcblx0XHR9XG5cdFx0cmV0dXJuIGNvbnN0cnVjdEhhbmRsZXI7XG5cdH07XG5cblx0aWYgKCB0eXBlb2YgY29uZmlnID09PSAnb2JqZWN0JyApIHtcblx0XHRjb25maWcgPSBPYmplY3QuYXNzaWduKCB7fSwgY29uZmlnICk7XG5cdH0gZWxzZSB7XG5cdFx0Y29uZmlnID0ge307XG5cdH1cblxuXHRjb25maWcuYXNDbGFzcyA9IGFzQ2xhc3M7XG5cblx0cmV0dXJuIG5ldyBUeXBlRGVzY3JpcHRvcihcblx0XHR0aGlzLFxuXHRcdHN1YnR5cGVzLFxuXHRcdFR5cGVOYW1lLFxuXHRcdG1ha2VDb25zdHJ1Y3RIYW5kbGVyLFxuXHRcdHR5cGUucHJvdG90eXBlLFxuXHRcdGNvbmZpZ1xuXHQpO1xufTtcblxuY29uc3QgZGVmaW5lVXNpbmdGdW5jdGlvbiA9IGZ1bmN0aW9uIChcblx0dGhpczogYW55LFxuXHRzdWJ0eXBlczogYW55LFxuXHRUeXBlTmFtZTogc3RyaW5nLFxuXHRjb25zdHJ1Y3RIYW5kbGVyID0gZnVuY3Rpb24gKCkgeyB9LFxuXHRjb25maWc6IGFueSA9IHt9XG4pIHtcblxuXHRpZiAoIHR5cGVvZiBjb25zdHJ1Y3RIYW5kbGVyICE9PSAnZnVuY3Rpb24nICkge1xuXHRcdHRocm93IG5ldyBIQU5ETEVSX01VU1RfQkVfQV9GVU5DVElPTjtcblx0fVxuXG5cdGNvbnN0IGFzQ2xhc3MgPSBpc0NsYXNzKCBjb25zdHJ1Y3RIYW5kbGVyICk7XG5cdGNvbnN0IG1vZGlmaWNhdG9yQm9keSA9IGNvbXBpbGVOZXdNb2RpZmljYXRvckZ1bmN0aW9uQm9keSggVHlwZU5hbWUsIGFzQ2xhc3MgKTtcblxuXHRjb25zdCBtYWtlQ29uc3RydWN0SGFuZGxlciA9IG1vZGlmaWNhdG9yQm9keShcblx0XHRjb25zdHJ1Y3RIYW5kbGVyLFxuXHRcdENyZWF0aW9uSGFuZGxlcixcblx0XHRTeW1ib2xDb25zdHJ1Y3Rvck5hbWVcblx0KTtcblxuXHRpZiAoIGNvbmZpZyBpbnN0YW5jZW9mIEZ1bmN0aW9uICkge1xuXHRcdGNvbmZpZyA9IHtcblx0XHRcdE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yIDogY29uZmlnXG5cdFx0fTtcblx0fVxuXG5cdGlmICggdHlwZW9mIGNvbmZpZyAhPT0gJ29iamVjdCcgKSB7XG5cdFx0Y29uZmlnID0ge307XG5cdH1cblxuXG5cdGNvbmZpZy5hc0NsYXNzID0gYXNDbGFzcztcblxuXHRjb25zdCBwcm90byA9IGhvcCggY29uc3RydWN0SGFuZGxlciwgJ3Byb3RvdHlwZScgKSAmJlxuXHRcdCggY29uc3RydWN0SGFuZGxlci5wcm90b3R5cGUgaW5zdGFuY2VvZiBPYmplY3QgKSA/XG5cdFx0T2JqZWN0LmFzc2lnbigge30sIGNvbnN0cnVjdEhhbmRsZXIucHJvdG90eXBlICkgOlxuXHRcdHt9O1xuXG5cdHJldHVybiBuZXcgVHlwZURlc2NyaXB0b3IoXG5cdFx0dGhpcyxcblx0XHRzdWJ0eXBlcyxcblx0XHRUeXBlTmFtZSxcblx0XHRtYWtlQ29uc3RydWN0SGFuZGxlcixcblx0XHQvLyBwcm90byBwcm9wIGZvciBUeXBlRGVzY3JpcHRvclxuXHRcdHByb3RvLFxuXHRcdGNvbmZpZ1xuXHQpO1xuXG59O1xuXG5cbmV4cG9ydCBjb25zdCBkZWZpbmU6IGFueSA9IGZ1bmN0aW9uICggdGhpczogYW55LCBzdWJ0eXBlczogYW55LCBUeXBlT3JUeXBlTmFtZTogc3RyaW5nIHwgYW55LCBjb25zdHJ1Y3RIYW5kbGVyT3JDb25maWc6IGFueSwgY29uZmlnOiBvYmplY3QgKSB7XG5cblx0aWYgKCB0eXBlb2YgVHlwZU9yVHlwZU5hbWUgPT09ICdmdW5jdGlvbicgKSB7XG5cdFx0aWYgKCBUeXBlT3JUeXBlTmFtZS5uYW1lICkge1xuXHRcdFx0cmV0dXJuIGRlZmluZS5jYWxsKCB0aGlzLCBzdWJ0eXBlcywgVHlwZU9yVHlwZU5hbWUubmFtZSwgVHlwZU9yVHlwZU5hbWUsIGNvbmZpZyApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gZGVmaW5lVXNpbmdUeXBlLmNhbGwoIHRoaXMsIHN1YnR5cGVzLCBUeXBlT3JUeXBlTmFtZSwgY29uc3RydWN0SGFuZGxlck9yQ29uZmlnICk7XG5cdFx0fVxuXHR9XG5cblx0aWYgKCB0eXBlb2YgVHlwZU9yVHlwZU5hbWUgPT09ICdzdHJpbmcnICkge1xuXG5cdFx0Y2hlY2tUeXBlTmFtZSggVHlwZU9yVHlwZU5hbWUgKTtcblxuXHRcdGNvbnN0IHNwbGl0ID0gZ2V0VHlwZVNwbGl0UGF0aCggVHlwZU9yVHlwZU5hbWUgKTtcblxuXHRcdGNvbnN0IFR5cGUgPSBsb29rdXAuY2FsbCggc3VidHlwZXMsIHNwbGl0WyAwIF0gKTtcblxuXHRcdGlmICggIVR5cGUgKSB7XG5cblx0XHRcdGlmICggc3BsaXQubGVuZ3RoID09PSAxICkge1xuXHRcdFx0XHRyZXR1cm4gZGVmaW5lVXNpbmdGdW5jdGlvbi5jYWxsKCB0aGlzLCBzdWJ0eXBlcywgVHlwZU9yVHlwZU5hbWUsIGNvbnN0cnVjdEhhbmRsZXJPckNvbmZpZywgY29uZmlnICk7XG5cdFx0XHR9XG5cblx0XHRcdHRocm93IG5ldyBXUk9OR19UWVBFX0RFRklOSVRJT04oIGAke3NwbGl0WyAwIF19IGRlZmluaXRpb24gaXMgbm90IHlldCBleGlzdHNgICk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgVHlwZU5hbWUgPSBzcGxpdC5zbGljZSggMSApLmpvaW4oICcuJyApO1xuXG5cdFx0aWYgKCBzcGxpdC5sZW5ndGggPiAxICkge1xuXHRcdFx0cmV0dXJuIGRlZmluZS5jYWxsKCB0aGlzLCBUeXBlLnN1YnR5cGVzLCBUeXBlTmFtZSwgY29uc3RydWN0SGFuZGxlck9yQ29uZmlnLCBjb25maWcgKTtcblx0XHR9XG5cblx0XHQvLyBzbywgaGVyZSB3ZSBnbyB3aXRoXG5cdFx0Ly8gZGVmaW5lVXNpbmdUeXBlLmNhbGxcblx0XHQvLyBmcm9tIHRoZSBuZXh0IHN0ZXBcblx0XHRyZXR1cm4gZGVmaW5lLmNhbGwoIHRoaXMsIFR5cGUuc3VidHlwZXMsIGNvbnN0cnVjdEhhbmRsZXJPckNvbmZpZywgY29uZmlnICk7XG5cblx0fVxuXG5cdHRocm93IG5ldyBXUk9OR19UWVBFX0RFRklOSVRJT04oICdkZWZpbml0aW9uIGlzIG5vdCBwcm92aWRlZCcgKTtcblxufTtcblxuZXhwb3J0IGNvbnN0IGxvb2t1cDogYW55ID0gZnVuY3Rpb24gKCB0aGlzOiBhbnksIFR5cGVOZXN0ZWRQYXRoOiBzdHJpbmcgKSB7XG5cblx0aWYgKCB0eXBlb2YgVHlwZU5lc3RlZFBhdGggIT09ICdzdHJpbmcnICkge1xuXHRcdHRocm93IG5ldyBXUk9OR19UWVBFX0RFRklOSVRJT04oICdhcmcgOiB0eXBlIG5lc3RlZCBwYXRoIG11c3QgYmUgYSBzdHJpbmcnICk7XG5cdH1cblxuXHRpZiAoICFUeXBlTmVzdGVkUGF0aC5sZW5ndGggKSB7XG5cdFx0dGhyb3cgbmV3IFdST05HX1RZUEVfREVGSU5JVElPTiggJ2FyZyA6IHR5cGUgbmVzdGVkIHBhdGggaGFzIG5vIHBhdGgnICk7XG5cdH1cblxuXHRjb25zdCBzcGxpdCA9IGdldFR5cGVTcGxpdFBhdGgoIFR5cGVOZXN0ZWRQYXRoICk7XG5cblx0Y29uc3QgWyBuYW1lIF0gPSBzcGxpdDtcblx0Y29uc3QgdHlwZSA9IHRoaXMuZ2V0KCBuYW1lICk7XG5cdGlmICggc3BsaXQubGVuZ3RoID09PSAxICkge1xuXHRcdHJldHVybiB0eXBlO1xuXHR9XG5cblx0Y29uc3QgTmV4dE5lc3RlZFBhdGggPSBzcGxpdC5zbGljZSggMSApLmpvaW4oICcuJyApO1xuXHRyZXR1cm4gbG9va3VwLmNhbGwoIHR5cGUuc3VidHlwZXMsIE5leHROZXN0ZWRQYXRoICk7XG5cbn07XG5cblxuXG4iXX0=
@@ -99,7 +99,7 @@ const findSubTypeFromParent = (instance, subType) => {
99
99
  return findSubTypeFromParent(props.__parent__, subType);
100
100
  };
101
101
  const isClass = (fn) => {
102
- if (typeof fn.prototype !== 'object') {
102
+ if (!(fn.prototype instanceof Object)) {
103
103
  return false;
104
104
  }
105
105
  if (fn.prototype.constructor !== fn) {
@@ -150,4 +150,4 @@ const TypesUtils = {
150
150
  reflectPrimitiveWrappers
151
151
  };
152
152
  exports.default = TypesUtils;
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7QUFFYiwrQ0FBNEM7QUFDNUMscURBQXVEO0FBQ3ZELHVDQUFvQztBQUVwQyxNQUFNLEVBQ0wsR0FBRyxFQUNILHFCQUFxQixFQUNyQixTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFDSixNQUFNLEVBQ04sR0FBRyxxQkFBUyxDQUFDO0FBRWQsTUFBTSxFQUNMLHFCQUFxQixHQUNyQixHQUFHLG9CQUFXLENBQUM7QUFFaEIsTUFBTSxFQUNMLG1CQUFtQixFQUNuQixHQUFHLGFBQUssQ0FBQztBQUVWLDBDQUFrRDtBQUdsRCxNQUFNLGVBQWUsR0FBRyxVQUEwQixrQkFBMkI7SUFTNUUsSUFBSyxrQkFBa0IsWUFBWSxNQUFNLEVBQUcsQ0FBQztRQUM1QyxPQUFPLGtCQUFrQixDQUFDO0lBQzNCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNiLENBQUMsQ0FBQztBQUVGLGtHQUEyRjtBQUUzRixNQUFNLFVBQVUsR0FBRyxDQUFFLEtBQWMsRUFBRyxFQUFFO0lBQ3ZDLElBQUssQ0FBQyxDQUFFLEtBQUssWUFBWSxNQUFNLENBQUUsRUFBRyxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxxQkFBcUIsQ0FBRSxrQ0FBa0MsQ0FBRSxDQUFDO0lBQ3ZFLENBQUM7QUFDRixDQUFDLENBQUM7QUFFRixNQUFNLGNBQWMsR0FBRyxDQUFFLFFBQWdCLEVBQUcsRUFBRTtJQUM3QyxNQUFNLE1BQU0sR0FBWSxDQUFFLFFBQWdCLEVBQUcsRUFBRTtRQUU5QyxJQUFLLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRyxDQUFDO1lBQ3BDLE9BQU8sS0FBSyxDQUFDO1FBQ2QsQ0FBQztRQUdELElBQUssQ0FBQyxRQUFTLENBQUMsV0FBVyxFQUFHLENBQUM7WUFDOUIsT0FBTyxLQUFLLENBQUM7UUFDZCxDQUFDO1FBR0QsSUFBSyxPQUFPLENBQUMsY0FBYyxDQUFFLFFBQVEsQ0FBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFHLENBQUM7WUFJekUsT0FBTyxRQUFRLENBQUUscUJBQXFCLENBQUUsS0FBSyxRQUFRLENBQUM7UUFDdkQsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUVkLG1CQUFtQixDQUFFLFFBQVEsQ0FBRSxDQUFDO1FBR3BDLE9BQU8sWUFBWSxDQUFFLFFBQVEsQ0FBRSxJQUFJLEtBQUssQ0FBQztJQUUxQyxDQUFDLENBQUM7SUFDRixPQUFPLE1BQU0sQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBRSxJQUFZLEVBQUcsRUFBRTtJQUMzQyxNQUFNLEtBQUssR0FBRyxJQUFJO1NBRWhCLE9BQU8sQ0FBRSxVQUFVLEVBQUUsRUFBRSxDQUFFO1NBQ3pCLE9BQU8sQ0FBRSxZQUFZLEVBQUUsS0FBSyxDQUFFO1NBQzlCLE9BQU8sQ0FBRSxLQUFLLEVBQUUsRUFBRSxDQUFFO1NBQ3BCLEtBQUssQ0FBRSxTQUFTLENBQUUsQ0FBQztJQUNyQixPQUFPLEtBQUssQ0FBQztBQUNkLENBQUMsQ0FBQztBQVVGLE1BQU0scUJBQXFCLEdBQUcsQ0FBRSxnQkFBNEIsRUFBWSxFQUFFO0lBRXpFLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNqQixJQUFJLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQztJQUU3QixPQUFRLEtBQUssRUFBRyxDQUFDO1FBRWhCLE1BQU0sS0FBSyxHQUFHLElBQUEsaUJBQVMsRUFBQyxLQUFLLENBQVUsQ0FBQztRQUV4QyxJQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRyxDQUFDO1lBQ3hCLE1BQU07UUFDUCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsS0FBSzthQUNsQixTQUFTO2FBQ1QsS0FBSyxDQUFFLElBQUksQ0FBRTthQUNiLE1BQU0sQ0FBRSxDQUFFLEdBQWEsRUFBRSxJQUFZLEVBQUcsRUFBRTtZQUMxQyxJQUFLLElBQUksQ0FBQyxNQUFNLEVBQUcsQ0FBQztnQkFDbkIsR0FBRyxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUUsQ0FBQztZQUNsQixDQUFDO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDWixDQUFDLEVBQUUsRUFBRSxDQUFFLENBQUM7UUFFVCxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRXZCLE1BQU0sVUFBVSxHQUFHLElBQUEsaUJBQVMsRUFBQyxLQUFLLENBQVUsQ0FBQztRQUU3QyxJQUFLLEtBQUssSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRyxDQUFDO1lBRWxELElBQUssVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUcsQ0FBQztnQkFDckMsS0FBSyxDQUFDLElBQUksQ0FBRSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBRSxDQUFFLENBQUM7WUFDdkMsQ0FBQztpQkFBTSxDQUFDO2dCQUNQLEtBQUssQ0FBQyxJQUFJLENBQUUsR0FBRyxNQUFNLENBQUUsQ0FBQztZQUN6QixDQUFDO1FBRUYsQ0FBQzthQUFNLENBQUM7WUFDUCxLQUFLLENBQUMsSUFBSSxDQUFFLEdBQUcsTUFBTSxDQUFFLENBQUM7WUFDeEIsTUFBTTtRQUNQLENBQUM7SUFDRixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFFZCxDQUFDLENBQUM7QUFFRixNQUFNLGNBQWMsR0FBRyxDQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBRSxDQUFDO0FBRTlELE1BQU0sYUFBYSxHQUFHLENBQUUsSUFBWSxFQUFHLEVBQUU7SUFFeEMsSUFBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUcsQ0FBQztRQUNwQixNQUFNLElBQUkscUJBQXFCLENBQUUsNEJBQTRCLENBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSyxJQUFJLENBQUUsQ0FBQyxDQUFFLEtBQUssSUFBSSxDQUFFLENBQUMsQ0FBRSxDQUFDLFdBQVcsRUFBRSxFQUFHLENBQUM7UUFDN0MsTUFBTSxJQUFJLHFCQUFxQixDQUFFLDZDQUE2QyxDQUFFLENBQUM7SUFDbEYsQ0FBQztJQUVELElBQUssY0FBYyxDQUFDLFFBQVEsQ0FBRSxJQUFJLENBQUUsRUFBRyxDQUFDO1FBQ3ZDLE1BQU0sSUFBSSxxQkFBcUIsQ0FBRSw4QkFBOEIsQ0FBRSxDQUFDO0lBQ25FLENBQUM7QUFFRixDQUFDLENBQUM7QUFTRixNQUFNLHFCQUFxQixHQUFHLENBQUUsUUFBbUIsRUFBRSxPQUFlLEVBQTBCLEVBQUU7SUFDL0YsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBWW5CLE1BQU0sS0FBSyxHQUFHLElBQUEsaUJBQVMsRUFBQyxRQUFRLENBQVUsQ0FBQztJQUUzQyxJQUFLLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBRSxPQUFPLENBQUUsRUFBRyxDQUFDO1FBQzlDLE9BQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUUsT0FBTyxDQUFFLENBQUM7UUFHakQsT0FBTyxPQUFPLENBQUM7SUFDaEIsQ0FBQztJQUNELE9BQU8scUJBQXFCLENBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUUsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFTRixNQUFNLE9BQU8sR0FBRyxDQUFFLEVBQW9CLEVBQUcsRUFBRTtJQU0xQyxJQUFLLE9BQU8sRUFBRSxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUcsQ0FBQztRQUN4QyxPQUFPLEtBQUssQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUMsV0FBVyxLQUFLLEVBQUUsRUFBRyxDQUFDO1FBQ3ZDLE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDLHdCQUF3QixDQUFFLEVBQUUsRUFBRSxXQUFXLENBQUcsQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDO0FBQ2hGLENBQUMsQ0FBQztBQUVGLE1BQU0sdUJBQXVCLEdBQUcsQ0FDL0IsUUFBZ0IsRUFDaEIsZUFBZSxHQUFHLGNBQWMsQ0FBQyxFQUNoQyxFQUFFO0lBRUgsTUFBTSxlQUFlLEdBQUcsSUFBQSwyQ0FBaUMsRUFBRSxRQUFRLENBQUUsQ0FBQztJQUV0RSxNQUFNLGVBQWUsR0FBRyxlQUFlLENBQ3RDLGVBQWUsRUFDZixlQUFlLEVBQ2YscUJBQXFCLENBQ3JCLENBQUM7SUFFRixPQUFPLGVBQWUsRUFBRSxDQUFDO0FBRTFCLENBQUMsQ0FBQztBQUVGLE1BQU0sd0JBQXdCLEdBQUcsQ0FBRSxRQUFpQixFQUFHLEVBQUU7SUFDeEQsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDO0lBRXZCLElBQUssUUFBUSxLQUFLLElBQUksRUFBRyxDQUFDO1FBQ3pCLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFFLElBQUksQ0FBRSxDQUFDO1FBQ2hDLEdBQUcsQ0FBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRTtZQUNqQyxHQUFHO2dCQUNGLE9BQU8sR0FBRyxFQUFFO29CQUNYLE9BQU8sUUFBUSxDQUFDO2dCQUNqQixDQUFDLENBQUM7WUFDSCxDQUFDO1NBQ0QsQ0FBRSxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQ0MsUUFBUSxZQUFZLE1BQU07UUFDMUIsUUFBUSxZQUFZLE9BQU87UUFDM0IsUUFBUSxZQUFZLE1BQU0sRUFDekIsQ0FBQztRQUNGLEdBQUcsQ0FBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRTtZQUNqQyxHQUFHO2dCQUNGLE9BQU8sR0FBRyxFQUFFO29CQUNYLE9BQU8sUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUMzQixDQUFDLENBQUM7WUFDSCxDQUFDO1NBQ0QsQ0FBRSxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxHQUFHO0lBQ2xCLE9BQU87SUFDUCxlQUFlO0lBQ2YsVUFBVTtJQUNWLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIscUJBQXFCO0lBQ3JCLGFBQWE7SUFDYixxQkFBcUI7SUFDckIsdUJBQXVCO0lBQ3ZCLHdCQUF3QjtDQUN4QixDQUFDO0FBRUYsa0JBQWUsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRXJyb3JzVHlwZXMgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9ycy9lcnJvcnMnO1xuaW1wb3J0IHsgdXRpbHMgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmNvbnN0IHtcblx0b2RwLFxuXHRTeW1ib2xDb25zdHJ1Y3Rvck5hbWUsXG5cdE1ORU1PTklDQSxcblx0TU5FTU9TWU5FLFxuXHRHQUlBLFxuXHRVUkFOVVNcbn0gPSBjb25zdGFudHM7XG5cbmNvbnN0IHtcblx0V1JPTkdfVFlQRV9ERUZJTklUSU9OLFxufSA9IEVycm9yc1R5cGVzO1xuXG5jb25zdCB7XG5cdGNvbGxlY3RDb25zdHJ1Y3RvcnNcbn0gPSB1dGlscztcblxuaW1wb3J0IHsgX2dldFByb3BzLCBQcm9wcyB9IGZyb20gJy4uL3R5cGVzL1Byb3BzJztcblxuXG5jb25zdCBDcmVhdGlvbkhhbmRsZXIgPSBmdW5jdGlvbiAoIHRoaXM6IHVua25vd24sIGNvbnN0cnVjdGlvbkFuc3dlcjogdW5rbm93biApIHtcblx0Ly8gc3RhbmRhcmQgc2F5cyA6XG5cdC8vIGlmIGNvbnN0cnVjdG9yIHJldHVybnMgc29tZXRoaW5nXG5cdC8vIHRoZW4gdGhpcyBpcyBhIHRveVxuXHQvLyB3ZSBoYXZlIHRvIHBsYXkgd2l0aFxuXHQvLyByZXNwZWN0aXZlbHlcblx0Ly8gc28gd2Ugd2lsbCBub3QgZm9sbG93IHRoZSBydWxlXG5cdC8vIGlmIChjb25zdHJ1Y3Rpb25BbnN3ZXIgaW5zdGFuY2VvZiB0eXBlc1tUeXBlTmFtZV0pIHtcblx0Ly8gYW5kIGluc3RlYWQgZm9sbG93IHRoZSBsaW5lIGJlbG93XG5cdGlmICggY29uc3RydWN0aW9uQW5zd2VyIGluc3RhbmNlb2YgT2JqZWN0ICkge1xuXHRcdHJldHVybiBjb25zdHJ1Y3Rpb25BbnN3ZXI7XG5cdH1cblx0cmV0dXJuIHRoaXM7XG59O1xuXG5pbXBvcnQgY29tcGlsZU5ld01vZGlmaWNhdG9yRnVuY3Rpb25Cb2R5IGZyb20gJy4uL3R5cGVzL2NvbXBpbGVOZXdNb2RpZmljYXRvckZ1bmN0aW9uQm9keSc7XG5cbmNvbnN0IGNoZWNrUHJvdG8gPSAoIHByb3RvOiB1bmtub3duICkgPT4ge1xuXHRpZiAoICEoIHByb3RvIGluc3RhbmNlb2YgT2JqZWN0ICkgKSB7XG5cdFx0dGhyb3cgbmV3IFdST05HX1RZUEVfREVGSU5JVElPTiggJ2V4cGVjdCBwcm90b3R5cGUgdG8gYmUgYW4gb2JqZWN0JyApO1xuXHR9XG59O1xuXG5jb25zdCBnZXRUeXBlQ2hlY2tlciA9ICggVHlwZU5hbWU6IHN0cmluZyApID0+IHtcblx0Y29uc3Qgc2Vla2VyOiB1bmtub3duID0gKCBpbnN0YW5jZTogb2JqZWN0ICkgPT4ge1xuXG5cdFx0aWYgKCB0eXBlb2YgaW5zdGFuY2UgIT09ICdvYmplY3QnICkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG5cdFx0aWYgKCAhaW5zdGFuY2UhLmNvbnN0cnVjdG9yICkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdGlmICggUmVmbGVjdC5nZXRQcm90b3R5cGVPZiggaW5zdGFuY2UgKS5jb25zdHJ1Y3Rvci5uYW1lID09PSAnUHJvbWlzZScgKSB7XG5cdFx0XHQvLyBpZiAoIGluc3RhbmNlIGluc3RhbmNlb2YgUHJvbWlzZSApIHtcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0XHRcdC8vIEB0cy1pZ25vcmVcblx0XHRcdHJldHVybiBpbnN0YW5jZVsgU3ltYm9sQ29uc3RydWN0b3JOYW1lIF0gPT09IFR5cGVOYW1lO1xuXHRcdH1cblxuXHRcdGNvbnN0IGNvbnN0cnVjdG9yczoge1xuXHRcdFx0c3RyaW5nOiBuZXcgKCkgPT4gdW5rbm93blxuXHRcdH0gPSBjb2xsZWN0Q29uc3RydWN0b3JzKCBpbnN0YW5jZSApO1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0XHQvLyBAdHMtaWdub3JlXG5cdFx0cmV0dXJuIGNvbnN0cnVjdG9yc1sgVHlwZU5hbWUgXSB8fCBmYWxzZTtcblxuXHR9O1xuXHRyZXR1cm4gc2Vla2VyO1xufTtcblxuY29uc3QgZ2V0VHlwZVNwbGl0UGF0aCA9ICggcGF0aDogc3RyaW5nICkgPT4ge1xuXHRjb25zdCBzcGxpdCA9IHBhdGhcblx0XHQvLyBiZWF1dGlmdWxsIG5hbWVzXG5cdFx0LnJlcGxhY2UoIC9cXG58XFx0fCAvZywgJycgKVxuXHRcdC5yZXBsYWNlKCAvXFxbKFxcdyspXFxdL2csICcuJDEnIClcblx0XHQucmVwbGFjZSggL15cXC4vLCAnJyApXG5cdFx0LnNwbGl0KCAvXFwufFxcL3w6LyApO1xuXHRyZXR1cm4gc3BsaXQ7XG59O1xuXG5leHBvcnQgdHlwZSBhc3luY1N0YWNrID0ge1xuXHRfX3N0YWNrX18/OiBzdHJpbmdcblx0X190eXBlX186IHtcblx0XHRpc1N1YlR5cGU6IGJvb2xlYW5cblx0fVxuXHRwYXJlbnQ6ICgpID0+IGFzeW5jU3RhY2tcbn1cblxuY29uc3QgZ2V0RXhpc3RlbnRBc3luY1N0YWNrID0gKCBleGlzdGVudEluc3RhbmNlOiBhc3luY1N0YWNrICk6IHVua25vd24gPT4ge1xuXG5cdGNvbnN0IHN0YWNrID0gW107XG5cdGxldCBwcm90byA9IGV4aXN0ZW50SW5zdGFuY2U7XG5cblx0d2hpbGUgKCBwcm90byApIHtcblxuXHRcdGNvbnN0IHByb3BzID0gX2dldFByb3BzKHByb3RvKSBhcyBQcm9wcztcblxuXHRcdGlmICggIXByb3BzLl9fc3RhY2tfXyApIHtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblxuXHRcdGNvbnN0IHBzdGFjayA9IHByb3BzXG5cdFx0XHQuX19zdGFja19fXG5cdFx0XHQuc3BsaXQoICdcXG4nIClcblx0XHRcdC5yZWR1Y2UoICggYXJyOiBzdHJpbmdbXSwgbGluZTogc3RyaW5nICkgPT4ge1xuXHRcdFx0XHRpZiAoIGxpbmUubGVuZ3RoICkge1xuXHRcdFx0XHRcdGFyci5wdXNoKCBsaW5lICk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGFycjtcblx0XHRcdH0sIFtdICk7XG5cblx0XHRwcm90byA9IHByb3RvLnBhcmVudCgpO1xuXG5cdFx0Y29uc3QgcHJvdG9Qcm9wcyA9IF9nZXRQcm9wcyhwcm90bykgYXMgUHJvcHM7XG5cblx0XHRpZiAoIHByb3RvICYmIHByb3RvUHJvcHMgJiYgcHJvdG9Qcm9wcy5fX3R5cGVfXyApIHtcblxuXHRcdFx0aWYgKCBwcm90b1Byb3BzLl9fdHlwZV9fLmlzU3ViVHlwZSApIHtcblx0XHRcdFx0c3RhY2sucHVzaCggLi4ucHN0YWNrLnNsaWNlKCAwLCAxICkgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHN0YWNrLnB1c2goIC4uLnBzdGFjayApO1xuXHRcdFx0fVxuXG5cdFx0fSBlbHNlIHtcblx0XHRcdHN0YWNrLnB1c2goIC4uLnBzdGFjayApO1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHN0YWNrO1xuXG59O1xuXG5jb25zdCBmb3JiaWRkZW5OYW1lcyA9IFsgTU5FTU9OSUNBLCBNTkVNT1NZTkUsIEdBSUEsIFVSQU5VUyBdO1xuXG5jb25zdCBjaGVja1R5cGVOYW1lID0gKCBuYW1lOiBzdHJpbmcgKSA9PiB7XG5cblx0aWYgKCAhbmFtZS5sZW5ndGggKSB7XG5cdFx0dGhyb3cgbmV3IFdST05HX1RZUEVfREVGSU5JVElPTiggJ1R5cGVOYW1lIG11c3Qgbm90IGJlIGVtcHR5JyApO1xuXHR9XG5cblx0aWYgKCBuYW1lWyAwIF0gIT09IG5hbWVbIDAgXS50b1VwcGVyQ2FzZSgpICkge1xuXHRcdHRocm93IG5ldyBXUk9OR19UWVBFX0RFRklOSVRJT04oICdUeXBlTmFtZSBzaG91bGQgc3RhcnQgd2l0aCBVcHBlcmNhc2UgTGV0dGVyJyApO1xuXHR9XG5cblx0aWYgKCBmb3JiaWRkZW5OYW1lcy5pbmNsdWRlcyggbmFtZSApICkge1xuXHRcdHRocm93IG5ldyBXUk9OR19UWVBFX0RFRklOSVRJT04oICdUeXBlTmFtZSBvZiByZXNlcnZlZCBrZXl3b3JkJyApO1xuXHR9XG5cbn07XG5cbnR5cGUgcGFyZW50U3ViID0ge1xuXHRfX3R5cGVfXzoge1xuXHRcdHN1YnR5cGVzOiBNYXA8c3RyaW5nLCBwYXJlbnRTdWI+XG5cdH1cblx0X19wYXJlbnRfXzogcGFyZW50U3ViXG59XG5cbmNvbnN0IGZpbmRTdWJUeXBlRnJvbVBhcmVudCA9ICggaW5zdGFuY2U6IHBhcmVudFN1Yiwgc3ViVHlwZTogc3RyaW5nICk6IHBhcmVudFN1YiB8IHVuZGVmaW5lZCA9PiB7XG5cdGxldCBzdWJ0eXBlID0gbnVsbDtcblxuXHQvLyBpZiAoIWluc3RhbmNlLl9fc3VidHlwZXNfXykge1xuXG5cdC8vIGlmICggIWluc3RhbmNlLl9fdHlwZV9fICkge1xuXG5cdC8vIFx0Ly8gbW9jaGEgKyBjaGFpIG1ha2VzIC5pbnNwZWN0IDQgU2hhcGVyIGNsYXNzXG5cdC8vIFx0Ly8gb3IgLnNob3dEaWZmIGlmIHNvbWV0aGluZyB3cm9uZyB3aXRoIGNvbnN0cnVjdG9yXG5cdC8vIFx0Ly8gZGVidWdnZXI7XG5cdC8vIFx0cmV0dXJuIG51bGw7XG5cdC8vIH1cblxuXHRjb25zdCBwcm9wcyA9IF9nZXRQcm9wcyhpbnN0YW5jZSkgYXMgUHJvcHM7XG5cblx0aWYgKCBwcm9wcy5fX3R5cGVfXy5zdWJ0eXBlcy5oYXMoIHN1YlR5cGUgKSApIHtcblx0XHRzdWJ0eXBlID0gcHJvcHMuX190eXBlX18uc3VidHlwZXMuZ2V0KCBzdWJUeXBlICk7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHRyZXR1cm4gc3VidHlwZTtcblx0fVxuXHRyZXR1cm4gZmluZFN1YlR5cGVGcm9tUGFyZW50KCBwcm9wcy5fX3BhcmVudF9fLCBzdWJUeXBlICk7XG59O1xuXG4vLyBjb25zdCBpc0NsYXNzID0gKCBmdW5jdGlvblBvaW50ZXI6IENhbGxhYmxlRnVuY3Rpb24gKSA9PiB7XG4vLyBcdGNvbnN0IHZhbHVlID0gRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoIGZ1bmN0aW9uUG9pbnRlciApO1xuLy8gXHRyZXR1cm4gL15cXHMqY2xhc3NcXHMrLy50ZXN0KCB2YWx1ZS50cmltKCkgKTtcbi8vIH07XG5cbi8vIGFjY29yZGluZ2x5IHRvIHRoZSBnaXN0IGZyb20gaGVyZTpcbi8vIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL3dlbnRvdXQvZWEzYWZlOWM4MjJhNmI2ZWYzMmY5ZTRmM2U5OGIxYmFcbmNvbnN0IGlzQ2xhc3MgPSAoIGZuOiBDYWxsYWJsZUZ1bmN0aW9uICkgPT4ge1xuXHQvLyBub3QgbmVjZXNzYXJ5IHRvIGNoZWNrIGZuIGZvciB0eXBlb2Zcblx0Ly8gYmVjYXVzZSBvZiBvdGhlciBjaGVja3MgbWFkZSBiZWZvcmVcblx0Ly8gaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuXHQvLyBcdHJldHVybiBmYWxzZTtcblx0Ly8gfVxuXHRpZiAoIHR5cGVvZiBmbi5wcm90b3R5cGUgIT09ICdvYmplY3QnICkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXHRpZiAoIGZuLnByb3RvdHlwZS5jb25zdHJ1Y3RvciAhPT0gZm4gKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG5cdHJldHVybiBSZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciggZm4sICdwcm90b3R5cGUnICkhLndyaXRhYmxlID09PSBmYWxzZTtcbn07XG5cbmNvbnN0IG1ha2VGYWtlTW9kaWZpY2F0b3JUeXBlID0gKFxuXHRUeXBlTmFtZTogc3RyaW5nLFxuXHRmYWtlTW9kaWZpY2F0b3IgPSBmdW5jdGlvbiAoKSB7IH1cbikgPT4ge1xuXG5cdGNvbnN0IG1vZGlmaWNhdG9yQm9keSA9IGNvbXBpbGVOZXdNb2RpZmljYXRvckZ1bmN0aW9uQm9keSggVHlwZU5hbWUgKTtcblxuXHRjb25zdCBtb2RpZmljYXRvclR5cGUgPSBtb2RpZmljYXRvckJvZHkoXG5cdFx0ZmFrZU1vZGlmaWNhdG9yLFxuXHRcdENyZWF0aW9uSGFuZGxlcixcblx0XHRTeW1ib2xDb25zdHJ1Y3Rvck5hbWVcblx0KTtcblxuXHRyZXR1cm4gbW9kaWZpY2F0b3JUeXBlKCk7XG5cbn07XG5cbmNvbnN0IHJlZmxlY3RQcmltaXRpdmVXcmFwcGVycyA9ICggX3RoaXNBcmc6IHVua25vd24gKSA9PiB7XG5cdGxldCB0aGlzQXJnID0gX3RoaXNBcmc7XG5cblx0aWYgKCBfdGhpc0FyZyA9PT0gbnVsbCApIHtcblx0XHR0aGlzQXJnID0gT2JqZWN0LmNyZWF0ZSggbnVsbCApO1xuXHRcdG9kcCggdGhpc0FyZywgU3ltYm9sLnRvUHJpbWl0aXZlLCB7XG5cdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBfdGhpc0FyZztcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH1cblxuXHRpZiAoXG5cdFx0X3RoaXNBcmcgaW5zdGFuY2VvZiBOdW1iZXIgfHxcblx0XHRfdGhpc0FyZyBpbnN0YW5jZW9mIEJvb2xlYW4gfHxcblx0XHRfdGhpc0FyZyBpbnN0YW5jZW9mIFN0cmluZ1xuXHQpIHtcblx0XHRvZHAoIHRoaXNBcmcsIFN5bWJvbC50b1ByaW1pdGl2ZSwge1xuXHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gX3RoaXNBcmcudmFsdWVPZigpO1xuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fVxuXG5cdHJldHVybiB0aGlzQXJnO1xufTtcblxuY29uc3QgVHlwZXNVdGlscyA9IHtcblx0aXNDbGFzcyxcblx0Q3JlYXRpb25IYW5kbGVyLFxuXHRjaGVja1Byb3RvLFxuXHRnZXRUeXBlQ2hlY2tlcixcblx0Z2V0VHlwZVNwbGl0UGF0aCxcblx0Z2V0RXhpc3RlbnRBc3luY1N0YWNrLFxuXHRjaGVja1R5cGVOYW1lLFxuXHRmaW5kU3ViVHlwZUZyb21QYXJlbnQsXG5cdG1ha2VGYWtlTW9kaWZpY2F0b3JUeXBlLFxuXHRyZWZsZWN0UHJpbWl0aXZlV3JhcHBlcnNcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFR5cGVzVXRpbHM7XG4iXX0=
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7QUFFYiwrQ0FBNEM7QUFDNUMscURBQXVEO0FBQ3ZELHVDQUFvQztBQUVwQyxNQUFNLEVBQ0wsR0FBRyxFQUNILHFCQUFxQixFQUNyQixTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFDSixNQUFNLEVBQ04sR0FBRyxxQkFBUyxDQUFDO0FBRWQsTUFBTSxFQUNMLHFCQUFxQixHQUNyQixHQUFHLG9CQUFXLENBQUM7QUFFaEIsTUFBTSxFQUNMLG1CQUFtQixFQUNuQixHQUFHLGFBQUssQ0FBQztBQUVWLDBDQUFrRDtBQUdsRCxNQUFNLGVBQWUsR0FBRyxVQUEwQixrQkFBMkI7SUFTNUUsSUFBSyxrQkFBa0IsWUFBWSxNQUFNLEVBQUcsQ0FBQztRQUM1QyxPQUFPLGtCQUFrQixDQUFDO0lBQzNCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNiLENBQUMsQ0FBQztBQUVGLGtHQUEyRjtBQUUzRixNQUFNLFVBQVUsR0FBRyxDQUFFLEtBQWMsRUFBRyxFQUFFO0lBQ3ZDLElBQUssQ0FBQyxDQUFFLEtBQUssWUFBWSxNQUFNLENBQUUsRUFBRyxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxxQkFBcUIsQ0FBRSxrQ0FBa0MsQ0FBRSxDQUFDO0lBQ3ZFLENBQUM7QUFDRixDQUFDLENBQUM7QUFFRixNQUFNLGNBQWMsR0FBRyxDQUFFLFFBQWdCLEVBQUcsRUFBRTtJQUM3QyxNQUFNLE1BQU0sR0FBWSxDQUFFLFFBQWdCLEVBQUcsRUFBRTtRQUU5QyxJQUFLLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRyxDQUFDO1lBQ3BDLE9BQU8sS0FBSyxDQUFDO1FBQ2QsQ0FBQztRQUdELElBQUssQ0FBQyxRQUFTLENBQUMsV0FBVyxFQUFHLENBQUM7WUFDOUIsT0FBTyxLQUFLLENBQUM7UUFD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cUJBQXFCO0lBQ3JCLHVCQUF1QjtJQUN2Qix3QkFBd0I7Q0FDeEIsQ0FBQztBQUVGLGtCQUFlLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHsgY29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEVycm9yc1R5cGVzIH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvZXJyb3JzJztcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5jb25zdCB7XG5cdG9kcCxcblx0U3ltYm9sQ29uc3RydWN0b3JOYW1lLFxuXHRNTkVNT05JQ0EsXG5cdE1ORU1PU1lORSxcblx0R0FJQSxcblx0VVJBTlVTXG59ID0gY29uc3RhbnRzO1xuXG5jb25zdCB7XG5cdFdST05HX1RZUEVfREVGSU5JVElPTixcbn0gPSBFcnJvcnNUeXBlcztcblxuY29uc3Qge1xuXHRjb2xsZWN0Q29uc3RydWN0b3JzXG59ID0gdXRpbHM7XG5cbmltcG9ydCB7IF9nZXRQcm9wcywgUHJvcHMgfSBmcm9tICcuLi90eXBlcy9Qcm9wcyc7XG5cblxuY29uc3QgQ3JlYXRpb25IYW5kbGVyID0gZnVuY3Rpb24gKCB0aGlzOiB1bmtub3duLCBjb25zdHJ1Y3Rpb25BbnN3ZXI6IHVua25vd24gKSB7XG5cdC8vIHN0YW5kYXJkIHNheXMgOlxuXHQvLyBpZiBjb25zdHJ1Y3RvciByZXR1cm5zIHNvbWV0aGluZ1xuXHQvLyB0aGVuIHRoaXMgaXMgYSB0b3lcblx0Ly8gd2UgaGF2ZSB0byBwbGF5IHdpdGhcblx0Ly8gcmVzcGVjdGl2ZWx5XG5cdC8vIHNvIHdlIHdpbGwgbm90IGZvbGxvdyB0aGUgcnVsZVxuXHQvLyBpZiAoY29uc3RydWN0aW9uQW5zd2VyIGluc3RhbmNlb2YgdHlwZXNbVHlwZU5hbWVdKSB7XG5cdC8vIGFuZCBpbnN0ZWFkIGZvbGxvdyB0aGUgbGluZSBiZWxvd1xuXHRpZiAoIGNvbnN0cnVjdGlvbkFuc3dlciBpbnN0YW5jZW9mIE9iamVjdCApIHtcblx0XHRyZXR1cm4gY29uc3RydWN0aW9uQW5zd2VyO1xuXHR9XG5cdHJldHVybiB0aGlzO1xufTtcblxuaW1wb3J0IGNvbXBpbGVOZXdNb2RpZmljYXRvckZ1bmN0aW9uQm9keSBmcm9tICcuLi90eXBlcy9jb21waWxlTmV3TW9kaWZpY2F0b3JGdW5jdGlvbkJvZHknO1xuXG5jb25zdCBjaGVja1Byb3RvID0gKCBwcm90bzogdW5rbm93biApID0+IHtcblx0aWYgKCAhKCBwcm90byBpbnN0YW5jZW9mIE9iamVjdCApICkge1xuXHRcdHRocm93IG5ldyBXUk9OR19UWVBFX0RFRklOSVRJT04oICdleHBlY3QgcHJvdG90eXBlIHRvIGJlIGFuIG9iamVjdCcgKTtcblx0fVxufTtcblxuY29uc3QgZ2V0VHlwZUNoZWNrZXIgPSAoIFR5cGVOYW1lOiBzdHJpbmcgKSA9PiB7XG5cdGNvbnN0IHNlZWtlcjogdW5rbm93biA9ICggaW5zdGFuY2U6IG9iamVjdCApID0+IHtcblxuXHRcdGlmICggdHlwZW9mIGluc3RhbmNlICE9PSAnb2JqZWN0JyApIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuXHRcdGlmICggIWluc3RhbmNlIS5jb25zdHJ1Y3RvciApIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHRpZiAoIFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YoIGluc3RhbmNlICkuY29uc3RydWN0b3IubmFtZSA9PT0gJ1Byb21pc2UnICkge1xuXHRcdFx0Ly8gaWYgKCBpbnN0YW5jZSBpbnN0YW5jZW9mIFByb21pc2UgKSB7XG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0XHQvLyBAdHMtaWdub3JlXG5cdFx0XHRyZXR1cm4gaW5zdGFuY2VbIFN5bWJvbENvbnN0cnVjdG9yTmFtZSBdID09PSBUeXBlTmFtZTtcblx0XHR9XG5cblx0XHRjb25zdCBjb25zdHJ1Y3RvcnM6IHtcblx0XHRcdHN0cmluZzogbmV3ICgpID0+IHVua25vd25cblx0XHR9ID0gY29sbGVjdENvbnN0cnVjdG9ycyggaW5zdGFuY2UgKTtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdHJldHVybiBjb25zdHJ1Y3RvcnNbIFR5cGVOYW1lIF0gfHwgZmFsc2U7XG5cblx0fTtcblx0cmV0dXJuIHNlZWtlcjtcbn07XG5cbmNvbnN0IGdldFR5cGVTcGxpdFBhdGggPSAoIHBhdGg6IHN0cmluZyApID0+IHtcblx0Y29uc3Qgc3BsaXQgPSBwYXRoXG5cdFx0Ly8gYmVhdXRpZnVsbCBuYW1lc1xuXHRcdC5yZXBsYWNlKCAvXFxufFxcdHwgL2csICcnIClcblx0XHQucmVwbGFjZSggL1xcWyhcXHcrKVxcXS9nLCAnLiQxJyApXG5cdFx0LnJlcGxhY2UoIC9eXFwuLywgJycgKVxuXHRcdC5zcGxpdCggL1xcLnxcXC98Oi8gKTtcblx0cmV0dXJuIHNwbGl0O1xufTtcblxuZXhwb3J0IHR5cGUgYXN5bmNTdGFjayA9IHtcblx0X19zdGFja19fPzogc3RyaW5nXG5cdF9fdHlwZV9fOiB7XG5cdFx0aXNTdWJUeXBlOiBib29sZWFuXG5cdH1cblx0cGFyZW50OiAoKSA9PiBhc3luY1N0YWNrXG59XG5cbmNvbnN0IGdldEV4aXN0ZW50QXN5bmNTdGFjayA9ICggZXhpc3RlbnRJbnN0YW5jZTogYXN5bmNTdGFjayApOiB1bmtub3duID0+IHtcblxuXHRjb25zdCBzdGFjayA9IFtdO1xuXHRsZXQgcHJvdG8gPSBleGlzdGVudEluc3RhbmNlO1xuXG5cdHdoaWxlICggcHJvdG8gKSB7XG5cblx0XHRjb25zdCBwcm9wcyA9IF9nZXRQcm9wcyhwcm90bykgYXMgUHJvcHM7XG5cblx0XHRpZiAoICFwcm9wcy5fX3N0YWNrX18gKSB7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cblx0XHRjb25zdCBwc3RhY2sgPSBwcm9wc1xuXHRcdFx0Ll9fc3RhY2tfX1xuXHRcdFx0LnNwbGl0KCAnXFxuJyApXG5cdFx0XHQucmVkdWNlKCAoIGFycjogc3RyaW5nW10sIGxpbmU6IHN0cmluZyApID0+IHtcblx0XHRcdFx0aWYgKCBsaW5lLmxlbmd0aCApIHtcblx0XHRcdFx0XHRhcnIucHVzaCggbGluZSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBhcnI7XG5cdFx0XHR9LCBbXSApO1xuXG5cdFx0cHJvdG8gPSBwcm90by5wYXJlbnQoKTtcblxuXHRcdGNvbnN0IHByb3RvUHJvcHMgPSBfZ2V0UHJvcHMocHJvdG8pIGFzIFByb3BzO1xuXG5cdFx0aWYgKCBwcm90byAmJiBwcm90b1Byb3BzICYmIHByb3RvUHJvcHMuX190eXBlX18gKSB7XG5cblx0XHRcdGlmICggcHJvdG9Qcm9wcy5fX3R5cGVfXy5pc1N1YlR5cGUgKSB7XG5cdFx0XHRcdHN0YWNrLnB1c2goIC4uLnBzdGFjay5zbGljZSggMCwgMSApICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzdGFjay5wdXNoKCAuLi5wc3RhY2sgKTtcblx0XHRcdH1cblxuXHRcdH0gZWxzZSB7XG5cdFx0XHRzdGFjay5wdXNoKCAuLi5wc3RhY2sgKTtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBzdGFjaztcblxufTtcblxuY29uc3QgZm9yYmlkZGVuTmFtZXMgPSBbIE1ORU1PTklDQSwgTU5FTU9TWU5FLCBHQUlBLCBVUkFOVVMgXTtcblxuY29uc3QgY2hlY2tUeXBlTmFtZSA9ICggbmFtZTogc3RyaW5nICkgPT4ge1xuXG5cdGlmICggIW5hbWUubGVuZ3RoICkge1xuXHRcdHRocm93IG5ldyBXUk9OR19UWVBFX0RFRklOSVRJT04oICdUeXBlTmFtZSBtdXN0IG5vdCBiZSBlbXB0eScgKTtcblx0fVxuXG5cdGlmICggbmFtZVsgMCBdICE9PSBuYW1lWyAwIF0udG9VcHBlckNhc2UoKSApIHtcblx0XHR0aHJvdyBuZXcgV1JPTkdfVFlQRV9ERUZJTklUSU9OKCAnVHlwZU5hbWUgc2hvdWxkIHN0YXJ0IHdpdGggVXBwZXJjYXNlIExldHRlcicgKTtcblx0fVxuXG5cdGlmICggZm9yYmlkZGVuTmFtZXMuaW5jbHVkZXMoIG5hbWUgKSApIHtcblx0XHR0aHJvdyBuZXcgV1JPTkdfVFlQRV9ERUZJTklUSU9OKCAnVHlwZU5hbWUgb2YgcmVzZXJ2ZWQga2V5d29yZCcgKTtcblx0fVxuXG59O1xuXG50eXBlIHBhcmVudFN1YiA9IHtcblx0X190eXBlX186IHtcblx0XHRzdWJ0eXBlczogTWFwPHN0cmluZywgcGFyZW50U3ViPlxuXHR9XG5cdF9fcGFyZW50X186IHBhcmVudFN1YlxufVxuXG5jb25zdCBmaW5kU3ViVHlwZUZyb21QYXJlbnQgPSAoIGluc3RhbmNlOiBwYXJlbnRTdWIsIHN1YlR5cGU6IHN0cmluZyApOiBwYXJlbnRTdWIgfCB1bmRlZmluZWQgPT4ge1xuXHRsZXQgc3VidHlwZSA9IG51bGw7XG5cblx0Ly8gaWYgKCFpbnN0YW5jZS5fX3N1YnR5cGVzX18pIHtcblxuXHQvLyBpZiAoICFpbnN0YW5jZS5fX3R5cGVfXyApIHtcblxuXHQvLyBcdC8vIG1vY2hhICsgY2hhaSBtYWtlcyAuaW5zcGVjdCA0IFNoYXBlciBjbGFzc1xuXHQvLyBcdC8vIG9yIC5zaG93RGlmZiBpZiBzb21ldGhpbmcgd3Jvbmcgd2l0aCBjb25zdHJ1Y3RvclxuXHQvLyBcdC8vIGRlYnVnZ2VyO1xuXHQvLyBcdHJldHVybiBudWxsO1xuXHQvLyB9XG5cblx0Y29uc3QgcHJvcHMgPSBfZ2V0UHJvcHMoaW5zdGFuY2UpIGFzIFByb3BzO1xuXG5cdGlmICggcHJvcHMuX190eXBlX18uc3VidHlwZXMuaGFzKCBzdWJUeXBlICkgKSB7XG5cdFx0c3VidHlwZSA9IHByb3BzLl9fdHlwZV9fLnN1YnR5cGVzLmdldCggc3ViVHlwZSApO1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0XHQvLyBAdHMtaWdub3JlXG5cdFx0cmV0dXJuIHN1YnR5cGU7XG5cdH1cblx0cmV0dXJuIGZpbmRTdWJUeXBlRnJvbVBhcmVudCggcHJvcHMuX19wYXJlbnRfXywgc3ViVHlwZSApO1xufTtcblxuLy8gY29uc3QgaXNDbGFzcyA9ICggZnVuY3Rpb25Qb2ludGVyOiBDYWxsYWJsZUZ1bmN0aW9uICkgPT4ge1xuLy8gXHRjb25zdCB2YWx1ZSA9IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKCBmdW5jdGlvblBvaW50ZXIgKTtcbi8vIFx0cmV0dXJuIC9eXFxzKmNsYXNzXFxzKy8udGVzdCggdmFsdWUudHJpbSgpICk7XG4vLyB9O1xuXG4vLyBhY2NvcmRpbmdseSB0byB0aGUgZ2lzdCBmcm9tIGhlcmU6XG4vLyBodHRwczovL2dpc3QuZ2l0aHViLmNvbS93ZW50b3V0L2VhM2FmZTljODIyYTZiNmVmMzJmOWU0ZjNlOThiMWJhXG5jb25zdCBpc0NsYXNzID0gKCBmbjogQ2FsbGFibGVGdW5jdGlvbiApID0+IHtcblx0Ly8gbm90IG5lY2Vzc2FyeSB0byBjaGVjayBmbiBmb3IgdHlwZW9mXG5cdC8vIGJlY2F1c2Ugb2Ygb3RoZXIgY2hlY2tzIG1hZGUgYmVmb3JlXG5cdC8vIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcblx0Ly8gXHRyZXR1cm4gZmFsc2U7XG5cdC8vIH1cblx0aWYgKCAhKGZuLnByb3RvdHlwZSBpbnN0YW5jZW9mIE9iamVjdCkgKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cdGlmICggZm4ucHJvdG90eXBlLmNvbnN0cnVjdG9yICE9PSBmbiApIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cblx0cmV0dXJuIFJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKCBmbiwgJ3Byb3RvdHlwZScgKSEud3JpdGFibGUgPT09IGZhbHNlO1xufTtcblxuY29uc3QgbWFrZUZha2VNb2RpZmljYXRvclR5cGUgPSAoXG5cdFR5cGVOYW1lOiBzdHJpbmcsXG5cdGZha2VNb2RpZmljYXRvciA9IGZ1bmN0aW9uICgpIHsgfVxuKSA9PiB7XG5cblx0Y29uc3QgbW9kaWZpY2F0b3JCb2R5ID0gY29tcGlsZU5ld01vZGlmaWNhdG9yRnVuY3Rpb25Cb2R5KCBUeXBlTmFtZSApO1xuXG5cdGNvbnN0IG1vZGlmaWNhdG9yVHlwZSA9IG1vZGlmaWNhdG9yQm9keShcblx0XHRmYWtlTW9kaWZpY2F0b3IsXG5cdFx0Q3JlYXRpb25IYW5kbGVyLFxuXHRcdFN5bWJvbENvbnN0cnVjdG9yTmFtZVxuXHQpO1xuXG5cdHJldHVybiBtb2RpZmljYXRvclR5cGUoKTtcblxufTtcblxuY29uc3QgcmVmbGVjdFByaW1pdGl2ZVdyYXBwZXJzID0gKCBfdGhpc0FyZzogdW5rbm93biApID0+IHtcblx0bGV0IHRoaXNBcmcgPSBfdGhpc0FyZztcblxuXHRpZiAoIF90aGlzQXJnID09PSBudWxsICkge1xuXHRcdHRoaXNBcmcgPSBPYmplY3QuY3JlYXRlKCBudWxsICk7XG5cdFx0b2RwKCB0aGlzQXJnLCBTeW1ib2wudG9QcmltaXRpdmUsIHtcblx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIF90aGlzQXJnO1xuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fVxuXG5cdGlmIChcblx0XHRfdGhpc0FyZyBpbnN0YW5jZW9mIE51bWJlciB8fFxuXHRcdF90aGlzQXJnIGluc3RhbmNlb2YgQm9vbGVhbiB8fFxuXHRcdF90aGlzQXJnIGluc3RhbmNlb2YgU3RyaW5nXG5cdCkge1xuXHRcdG9kcCggdGhpc0FyZywgU3ltYm9sLnRvUHJpbWl0aXZlLCB7XG5cdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBfdGhpc0FyZy52YWx1ZU9mKCk7XG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9XG5cblx0cmV0dXJuIHRoaXNBcmc7XG59O1xuXG5jb25zdCBUeXBlc1V0aWxzID0ge1xuXHRpc0NsYXNzLFxuXHRDcmVhdGlvbkhhbmRsZXIsXG5cdGNoZWNrUHJvdG8sXG5cdGdldFR5cGVDaGVja2VyLFxuXHRnZXRUeXBlU3BsaXRQYXRoLFxuXHRnZXRFeGlzdGVudEFzeW5jU3RhY2ssXG5cdGNoZWNrVHlwZU5hbWUsXG5cdGZpbmRTdWJUeXBlRnJvbVBhcmVudCxcblx0bWFrZUZha2VNb2RpZmljYXRvclR5cGUsXG5cdHJlZmxlY3RQcmltaXRpdmVXcmFwcGVyc1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVHlwZXNVdGlscztcbiJdfQ==
package/build/index.d.ts CHANGED
@@ -2,12 +2,12 @@ import { TypeLookup, IDEF, hook, hooksTypes, constructorOptions, Proto, SN, IDef
2
2
  export type { IDEF, ConstructorFunction } from './types';
3
3
  export { getProps, setProps } from './api/types/Props';
4
4
  export declare const defaultTypes: any;
5
- export declare const define: <T, P extends object, N extends Proto<P, T>, S extends SN & N, R extends IDefinitorInstance<N, S>>(this: unknown, TypeName?: string, constructHandler?: IDEF<T>, proto?: P, config?: constructorOptions) => R;
5
+ export declare const define: <T, P extends object, N extends Proto<P, T>, S extends SN & N, R extends IDefinitorInstance<N, S>>(this: unknown, TypeName?: string, constructHandler?: IDEF<T>, config?: constructorOptions) => R;
6
6
  export declare const lookup: TypeLookup;
7
7
  export declare const apply: <E extends object, T extends object, S extends Proto<E, T>>(entity: E, Constructor: IDEF<T>, args?: unknown[]) => { [key in keyof S]: S[key]; };
8
8
  export declare const call: <E extends object, T extends object, S extends Proto<E, T>>(entity: E, Constructor: IDEF<T>, ...args: unknown[]) => { [key in keyof S]: S[key]; };
9
9
  export declare const bind: <E extends object, T extends object, S extends Proto<E, T>>(entity: E, Constructor: IDEF<T>) => (...args: unknown[]) => { [key in keyof S]: S[key]; };
10
- export declare const decorate: (parentClass?: unknown, proto?: object, config?: constructorOptions) => <T extends {
10
+ export declare const decorate: (parentClass?: unknown, config?: constructorOptions) => <T extends {
11
11
  new (): unknown;
12
12
  }>(cstr: T, s: ClassDecoratorContext<T>) => T;
13
13
  export declare const registerHook: <T extends object>(Constructor: IDEF<T>, hookType: hooksTypes, cb: hook) => void;
package/build/index.js CHANGED
@@ -12,9 +12,9 @@ exports.defaultTypes = descriptors_1.descriptors.defaultTypes;
12
12
  function checkThis(pointer) {
13
13
  return pointer === exports.mnemonica || pointer === exports;
14
14
  }
15
- const define = function (TypeName, constructHandler, proto, config) {
15
+ const define = function (TypeName, constructHandler, config) {
16
16
  const types = checkThis(this) ? exports.defaultTypes : this || exports.defaultTypes;
17
- return types.define(TypeName, constructHandler, proto, config);
17
+ return types.define(TypeName, constructHandler, config);
18
18
  };
19
19
  exports.define = define;
20
20
  exports.lookup = function (TypeNestedPath) {
@@ -38,12 +38,12 @@ const bind = function (entity, Constructor) {
38
38
  };
39
39
  };
40
40
  exports.bind = bind;
41
- const decorate = function (parentClass = undefined, proto, config) {
41
+ const decorate = function (parentClass = undefined, config) {
42
42
  const decorator = function (cstr, s) {
43
43
  if (parentClass === undefined) {
44
- return (0, exports.define)(s.name, cstr, proto, config);
44
+ return (0, exports.define)(s.name, cstr, config);
45
45
  }
46
- return parentClass.define(s.name, cstr, proto, config);
46
+ return parentClass.define(s.name, cstr, config);
47
47
  };
48
48
  return decorator;
49
49
  };
@@ -75,4 +75,4 @@ var utils_1 = require("./utils");
75
75
  Object.defineProperty(exports, "utils", { enumerable: true, get: function () { return utils_1.utils; } });
76
76
  var utils_2 = require("./utils");
77
77
  Object.defineProperty(exports, "defineStackCleaner", { enumerable: true, get: function () { return utils_2.defineStackCleaner; } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsWUFBWSxDQUFDOzs7QUFhYiwyQ0FBd0Q7QUFBOUMsaUdBQUEsUUFBUSxPQUFBO0FBQUUsaUdBQUEsUUFBUSxPQUFBO0FBRTVCLDJDQUF3QztBQUN4QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcscUJBQVMsQ0FBQztBQUUxQiwwQ0FBMEM7QUFDMUMsK0NBQTRDO0FBRzNDLG9CQUFZLEdBQ1QseUJBQVcsY0FBQztBQUVoQixTQUFTLFNBQVMsQ0FBRyxPQUFvRDtJQUN4RSxPQUFPLE9BQU8sS0FBSyxpQkFBUyxJQUFJLE9BQU8sS0FBSyxPQUFPLENBQUM7QUFDckQsQ0FBQztBQUVNLE1BQU0sTUFBTSxHQUFHLFVBYXJCLFFBQWlCLEVBQ2pCLGdCQUEwQixFQUMxQixLQUFTLEVBQ1QsTUFBMkI7SUFFM0IsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsQ0FBQyxvQkFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksb0JBQVksQ0FBQztJQUN0RSxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxNQUFNLENBQUUsQ0FBQztBQUNsRSxDQUFDLENBQUM7QUFwQlcsUUFBQSxNQUFNLFVBb0JqQjtBQUVXLFFBQUEsTUFBTSxHQUFHLFVBQVcsY0FBYztJQUM5QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxDQUFDLG9CQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxvQkFBWSxDQUFDO0lBQ3RFLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBRSxjQUFjLENBQUUsQ0FBQztBQUN2QyxDQUFlLENBQUM7QUFFVCxNQUFNLEtBQUssR0FBRyxVQUF1RSxNQUFTLEVBQUUsV0FBb0IsRUFBRSxPQUFrQixFQUFFO0lBSWhKLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUUsQ0FBRSxHQUFHLElBQUksQ0FBRSxDQUFDO0lBQzdELE9BQU8sTUFBTSxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBTlcsUUFBQSxLQUFLLFNBTWhCO0FBRUssTUFBTSxJQUFJLEdBQUcsVUFBdUUsTUFBUyxFQUFFLFdBQW9CLEVBQUUsR0FBRyxJQUFlO0lBSTdJLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUUsQ0FBRSxHQUFHLElBQUksQ0FBRSxDQUFDO0lBQzdELE9BQU8sTUFBTSxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBTlcsUUFBQSxJQUFJLFFBTWY7QUFFSyxNQUFNLElBQUksR0FBRyxVQUF1RSxNQUFTLEVBQUUsV0FBb0I7SUFHekgsT0FBTyxDQUFFLEdBQUcsSUFBSSxFQUFHLEVBQUU7UUFFcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBRSxDQUFFLEdBQUcsSUFBSSxDQUFFLENBQUM7UUFDN0QsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDLENBQUM7QUFDSCxDQUFDLENBQUM7QUFSVyxRQUFBLElBQUksUUFRZjtBQUVLLE1BQU0sUUFBUSxHQUFHLFVBQVcsY0FBdUIsU0FBUyxFQUFFLEtBQWMsRUFBRSxNQUEyQjtJQUMvRyxNQUFNLFNBQVMsR0FBRyxVQUEwQyxJQUFPLEVBQUUsQ0FBMkI7UUFDL0YsSUFBSyxXQUFXLEtBQUssU0FBUyxFQUFHLENBQUM7WUFDakMsT0FBTyxJQUFBLGNBQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFrQixDQUFFO1FBQy9ELENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBa0IsQ0FBQztJQUMxRSxDQUFDLENBQUM7SUFDRixPQUFPLFNBQVMsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFUVyxRQUFBLFFBQVEsWUFTbkI7QUFFSyxNQUFNLFlBQVksR0FBRyxVQUE4QixXQUFvQixFQUFFLFFBQW9CLEVBQUUsRUFBUTtJQUU3RyxXQUFXLENBQUMsWUFBWSxDQUFFLFFBQVEsRUFBRSxFQUFFLENBQUUsQ0FBQztBQUMxQyxDQUFDLENBQUM7QUFIVyxRQUFBLFlBQVksZ0JBR3ZCO0FBRVcsUUFBQSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sNkNBRXRDLE1BQU0sRUFBTixjQUFNO0lBQ04sTUFBTSxFQUFOLGNBQU07SUFDTixLQUFLLEVBQUwsYUFBSztJQUNMLElBQUksRUFBSixZQUFJO0lBQ0osSUFBSSxFQUFKLFlBQUk7SUFDSixRQUFRLEVBQVIsZ0JBQVE7SUFDUixZQUFZLEVBQVosb0JBQVksSUFFVCx5QkFBVyxHQUVYLFNBQVMsR0FDVCxxQkFBUyxFQUVWLENBQUMsTUFBTSxDQUFFLENBQUUsR0FBbUMsRUFBRSxLQUEwQixFQUFHLEVBQUU7SUFDakYsTUFBTSxDQUFFLElBQUksRUFBRSxJQUFJLENBQUUsR0FBRyxLQUFLLENBQUM7SUFDN0IsR0FBRyxDQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUU7UUFDZixHQUFHO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDYixDQUFDO1FBQ0QsVUFBVSxFQUFHLElBQUk7S0FDakIsQ0FBRSxDQUFDO0lBQ0osT0FBTyxHQUFHLENBQUM7QUFDWixDQUFDLEVBQUUsRUFBRSxDQUFFLENBQUM7QUFJUCx3QkFBZ0IsR0FjYixpQkFBUyxtQkFiWiw2QkFBcUIsR0FhbEIsaUJBQVMsd0JBWlosa0JBQVUsR0FZUCxpQkFBUyxhQVhaLDJCQUFtQixHQVdoQixpQkFBUyxzQkFWWixvQ0FBNEIsR0FVekIsaUJBQVMsK0JBVFosb0JBQVksR0FTVCxpQkFBUyxlQVJaLGlCQUFTLEdBUU4saUJBQVMsWUFQWixpQkFBUyxHQU9OLGlCQUFTLFlBTlosWUFBSSxHQU1ELGlCQUFTLE9BTFosY0FBTSxHQUtILGlCQUFTLFNBSloseUJBQWlCLEdBSWQsaUJBQVMsb0JBSFoscUJBQWEsR0FHVixpQkFBUyxnQkFGWiw2QkFBcUIsR0FFbEIsaUJBQVMsdUJBQUM7QUFHRCxRQUFBLGlCQUFpQixHQUFHLG9CQUFZLENBQUMsUUFBUSxDQUFDO0FBQzFDLFFBQUEsTUFBTSxHQUFHLHlCQUFXLENBQUMsV0FBVyxDQUFDO0FBRTlDLGlDQUFnQztBQUF2Qiw4RkFBQSxLQUFLLE9BQUE7QUFDZCxpQ0FBNkM7QUFBcEMsMkdBQUEsa0JBQWtCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnQsIGluZGVudCwgbmV3LWNhcCwgc3BhY2UtYmVmb3JlLWZ1bmN0aW9uLXBhcmVuICovXG4ndXNlIHN0cmljdCc7XG5cbmltcG9ydCB7XG5cdFR5cGVMb29rdXAsXG5cdElERUYsXG5cdGhvb2ssXG5cdGhvb2tzVHlwZXMsXG5cdGNvbnN0cnVjdG9yT3B0aW9ucyxcblx0UHJvdG8sXG5cdFNOLFxuXHRJRGVmaW5pdG9ySW5zdGFuY2Vcbn0gZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgdHlwZSB7IElERUYsIENvbnN0cnVjdG9yRnVuY3Rpb24gfSBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCB7ICBnZXRQcm9wcywgc2V0UHJvcHMgfSBmcm9tICcuL2FwaS90eXBlcy9Qcm9wcyc7XG5cbmltcG9ydCB7IGNvbnN0YW50cyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IHsgb2RwIH0gPSBjb25zdGFudHM7XG5cbmltcG9ydCAqIGFzIGVycm9yc0FwaSBmcm9tICcuL2FwaS9lcnJvcnMnO1xuaW1wb3J0IHsgZGVzY3JpcHRvcnMgfSBmcm9tICcuL2Rlc2NyaXB0b3JzJztcblxuZXhwb3J0IGNvbnN0IHtcblx0ZGVmYXVsdFR5cGVzLFxufSA9IGRlc2NyaXB0b3JzO1xuXG5mdW5jdGlvbiBjaGVja1RoaXMgKCBwb2ludGVyOiB0eXBlb2YgbW5lbW9uaWNhIHwgdHlwZW9mIGV4cG9ydHMgfCB1bmtub3duICk6IGJvb2xlYW4ge1xuXHRyZXR1cm4gcG9pbnRlciA9PT0gbW5lbW9uaWNhIHx8IHBvaW50ZXIgPT09IGV4cG9ydHM7XG59XG5cbmV4cG9ydCBjb25zdCBkZWZpbmUgPSBmdW5jdGlvbiA8XG5cdFQsXG5cdC8vIEsgZXh0ZW5kcyBJREVGPFQ+LFxuXHQvLyBIIGV4dGVuZHMgVGhpc1R5cGU8SURFRjxUPj4sXG5cdFAgZXh0ZW5kcyBvYmplY3QsXG5cdE4gZXh0ZW5kcyBQcm90bzxQLCBUPixcblx0Ly8gc28gUyBpdCBqdXN0IGJhc2ljYWxseSBhbGxvd3MgbmVzdGVkIGNvbnN0cnVjdG9yc1xuXHQvLyBhbmQgZ2l2ZXMgZXh0cmFjdGVkIHByb3BzIGZyb20gY29uc3RydWN0SGFuZGxlciAmIHByb3RvXG5cdC8vIHRoZW4gaXQgZ29lcyB0byBuZXcoKSBrZXl3b3JkIG9mIGRlZmluZSBvdXRwdXRcblx0UyBleHRlbmRzIFNOICYgTixcblx0UiBleHRlbmRzIElEZWZpbml0b3JJbnN0YW5jZTxOLCBTPlxuPiAoXG5cdHRoaXM6IHVua25vd24sXG5cdFR5cGVOYW1lPzogc3RyaW5nLFxuXHRjb25zdHJ1Y3RIYW5kbGVyPzogSURFRjxUPixcblx0cHJvdG8/OiBQLFxuXHRjb25maWc/OiBjb25zdHJ1Y3Rvck9wdGlvbnMsXG4pOiBSIHtcblx0Y29uc3QgdHlwZXMgPSBjaGVja1RoaXMoIHRoaXMgKSA/IGRlZmF1bHRUeXBlcyA6IHRoaXMgfHwgZGVmYXVsdFR5cGVzO1xuXHRyZXR1cm4gdHlwZXMuZGVmaW5lKCBUeXBlTmFtZSwgY29uc3RydWN0SGFuZGxlciwgcHJvdG8sIGNvbmZpZyApO1xufTtcblxuZXhwb3J0IGNvbnN0IGxvb2t1cCA9IGZ1bmN0aW9uICggVHlwZU5lc3RlZFBhdGggKSB7XG5cdGNvbnN0IHR5cGVzID0gY2hlY2tUaGlzKCB0aGlzICkgPyBkZWZhdWx0VHlwZXMgOiB0aGlzIHx8IGRlZmF1bHRUeXBlcztcblx0cmV0dXJuIHR5cGVzLmxvb2t1cCggVHlwZU5lc3RlZFBhdGggKTtcbn0gYXMgVHlwZUxvb2t1cDtcblxuZXhwb3J0IGNvbnN0IGFwcGx5ID0gZnVuY3Rpb24gPEUgZXh0ZW5kcyBvYmplY3QsIFQgZXh0ZW5kcyBvYmplY3QsIFMgZXh0ZW5kcyBQcm90bzxFLCBUPj4gKCBlbnRpdHk6IEUsIENvbnN0cnVjdG9yOiBJREVGPFQ+LCBhcmdzOiB1bmtub3duW10gPSBbXSApOiB7XG5cdFsga2V5IGluIGtleW9mIFMgXTogU1sga2V5IF1cbn0ge1xuXHQvLyBAdHMtaWdub3JlXG5cdGNvbnN0IHJlc3VsdCA9IG5ldyBlbnRpdHlbIENvbnN0cnVjdG9yLlR5cGVOYW1lIF0oIC4uLmFyZ3MgKTtcblx0cmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBjb25zdCBjYWxsID0gZnVuY3Rpb24gPEUgZXh0ZW5kcyBvYmplY3QsIFQgZXh0ZW5kcyBvYmplY3QsIFMgZXh0ZW5kcyBQcm90bzxFLCBUPj4gKCBlbnRpdHk6IEUsIENvbnN0cnVjdG9yOiBJREVGPFQ+LCAuLi5hcmdzOiB1bmtub3duW10gKToge1xuXHRbIGtleSBpbiBrZXlvZiBTIF06IFNbIGtleSBdXG59IHtcblx0Ly8gQHRzLWlnbm9yZVxuXHRjb25zdCByZXN1bHQgPSBuZXcgZW50aXR5WyBDb25zdHJ1Y3Rvci5UeXBlTmFtZSBdKCAuLi5hcmdzICk7XG5cdHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgYmluZCA9IGZ1bmN0aW9uIDxFIGV4dGVuZHMgb2JqZWN0LCBUIGV4dGVuZHMgb2JqZWN0LCBTIGV4dGVuZHMgUHJvdG88RSwgVD4+ICggZW50aXR5OiBFLCBDb25zdHJ1Y3RvcjogSURFRjxUPiApOiAoIC4uLmFyZ3M6IHVua25vd25bXSApID0+IHtcblx0WyBrZXkgaW4ga2V5b2YgUyBdOiBTWyBrZXkgXVxufSB7XG5cdHJldHVybiAoIC4uLmFyZ3MgKSA9PiB7XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdGNvbnN0IHJlc3VsdCA9IG5ldyBlbnRpdHlbIENvbnN0cnVjdG9yLlR5cGVOYW1lIF0oIC4uLmFyZ3MgKTtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlY29yYXRlID0gZnVuY3Rpb24gKCBwYXJlbnRDbGFzczogdW5rbm93biA9IHVuZGVmaW5lZCwgcHJvdG8/OiBvYmplY3QsIGNvbmZpZz86IGNvbnN0cnVjdG9yT3B0aW9ucyApIHtcblx0Y29uc3QgZGVjb3JhdG9yID0gZnVuY3Rpb24gPFQgZXh0ZW5kcyB7IG5ldygpOiB1bmtub3duIH0+ICggY3N0cjogVCwgczogQ2xhc3NEZWNvcmF0b3JDb250ZXh0PFQ+ICk6IFQge1xuXHRcdGlmICggcGFyZW50Q2xhc3MgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdHJldHVybiBkZWZpbmUoIHMubmFtZSwgY3N0ciwgcHJvdG8sIGNvbmZpZyApIGFzIHVua25vd24gYXMgVCA7XG5cdFx0fVxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHRyZXR1cm4gcGFyZW50Q2xhc3MuZGVmaW5lKCBzLm5hbWUsIGNzdHIsIHByb3RvLCBjb25maWcgKSBhcyB1bmtub3duIGFzIFQ7XG5cdH07XG5cdHJldHVybiBkZWNvcmF0b3I7XG59O1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJIb29rID0gZnVuY3Rpb24gPFQgZXh0ZW5kcyBvYmplY3Q+ICggQ29uc3RydWN0b3I6IElERUY8VD4sIGhvb2tUeXBlOiBob29rc1R5cGVzLCBjYjogaG9vayApOiB2b2lkIHtcblx0Ly8gQHRzLWlnbm9yZVxuXHRDb25zdHJ1Y3Rvci5yZWdpc3Rlckhvb2soIGhvb2tUeXBlLCBjYiApO1xufTtcblxuZXhwb3J0IGNvbnN0IG1uZW1vbmljYSA9IE9iamVjdC5lbnRyaWVzKCB7XG5cblx0ZGVmaW5lLFxuXHRsb29rdXAsXG5cdGFwcGx5LFxuXHRjYWxsLFxuXHRiaW5kLFxuXHRkZWNvcmF0ZSxcblx0cmVnaXN0ZXJIb29rLFxuXG5cdC4uLmRlc2NyaXB0b3JzLFxuXG5cdC4uLmVycm9yc0FwaSxcblx0Li4uY29uc3RhbnRzLFxuXG59ICkucmVkdWNlKCAoIGFjYzogeyBbIGluZGV4OiBzdHJpbmcgXTogdW5rbm93biB9LCBlbnRyeTogWyBzdHJpbmcsIHVua25vd24gXSApID0+IHtcblx0Y29uc3QgWyBuYW1lLCBjb2RlIF0gPSBlbnRyeTtcblx0b2RwKCBhY2MsIG5hbWUsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGNvZGU7XG5cdFx0fSxcblx0XHRlbnVtZXJhYmxlIDogdHJ1ZVxuXHR9ICk7XG5cdHJldHVybiBhY2M7XG59LCB7fSApO1xuXG5leHBvcnQgY29uc3Qge1xuXG5cdFN5bWJvbFBhcmVudFR5cGUsXG5cdFN5bWJvbENvbnN0cnVjdG9yTmFtZSxcblx0U3ltYm9sR2FpYSxcblx0U3ltYm9sUmVwbGFjZVVyYW51cyxcblx0U3ltYm9sRGVmYXVsdFR5cGVzQ29sbGVjdGlvbixcblx0U3ltYm9sQ29uZmlnLFxuXHRNTkVNT05JQ0EsXG5cdE1ORU1PU1lORSxcblx0R0FJQSxcblx0VVJBTlVTLFxuXHRUWVBFX1RJVExFX1BSRUZJWCxcblx0RXJyb3JNZXNzYWdlcyxcblx0Y3JlYXRlVHlwZXNDb2xsZWN0aW9uLFxuXG59ID0gbW5lbW9uaWNhO1xuXG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0Q29sbGVjdGlvbiA9IGRlZmF1bHRUeXBlcy5zdWJ0eXBlcztcbmV4cG9ydCBjb25zdCBlcnJvcnMgPSBkZXNjcmlwdG9ycy5FcnJvcnNUeXBlcztcblxuZXhwb3J0IHsgdXRpbHMgfSBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCB7IGRlZmluZVN0YWNrQ2xlYW5lciB9IGZyb20gJy4vdXRpbHMnO1xuLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnQsIGluZGVudCwgbmV3LWNhcCwgc3BhY2UtYmVmb3JlLWZ1bmN0aW9uLXBhcmVuICovXG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsWUFBWSxDQUFDOzs7QUFhYiwyQ0FBd0Q7QUFBOUMsaUdBQUEsUUFBUSxPQUFBO0FBQUUsaUdBQUEsUUFBUSxPQUFBO0FBRTVCLDJDQUF3QztBQUN4QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcscUJBQVMsQ0FBQztBQUUxQiwwQ0FBMEM7QUFDMUMsK0NBQTRDO0FBRzNDLG9CQUFZLEdBQ1QseUJBQVcsY0FBQztBQUVoQixTQUFTLFNBQVMsQ0FBRyxPQUFvRDtJQUN4RSxPQUFPLE9BQU8sS0FBSyxpQkFBUyxJQUFJLE9BQU8sS0FBSyxPQUFPLENBQUM7QUFDckQsQ0FBQztBQUVNLE1BQU0sTUFBTSxHQUFHLFVBYXJCLFFBQWlCLEVBQ2pCLGdCQUEwQixFQUMxQixNQUEyQjtJQUUzQixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQyxDQUFDLG9CQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxvQkFBWSxDQUFDO0lBQ3RFLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFFLENBQUM7QUFDM0QsQ0FBQyxDQUFDO0FBbkJXLFFBQUEsTUFBTSxVQW1CakI7QUFFVyxRQUFBLE1BQU0sR0FBRyxVQUFXLGNBQWM7SUFDOUMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFFLElBQUksQ0FBRSxDQUFDLENBQUMsQ0FBQyxvQkFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksb0JBQVksQ0FBQztJQUN0RSxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUUsY0FBYyxDQUFFLENBQUM7QUFDdkMsQ0FBZSxDQUFDO0FBRVQsTUFBTSxLQUFLLEdBQUcsVUFBdUUsTUFBUyxFQUFFLFdBQW9CLEVBQUUsT0FBa0IsRUFBRTtJQUloSixNQUFNLE1BQU0sR0FB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NkJBQXFCLEdBRWxCLGlCQUFTLHVCQUFDO0FBR0QsUUFBQSxpQkFBaUIsR0FBRyxvQkFBWSxDQUFDLFFBQVEsQ0FBQztBQUMxQyxRQUFBLE1BQU0sR0FBRyx5QkFBVyxDQUFDLFdBQVcsQ0FBQztBQUU5QyxpQ0FBZ0M7QUFBdkIsOEZBQUEsS0FBSyxPQUFBO0FBQ2QsaUNBQTZDO0FBQXBDLDJHQUFBLGtCQUFrQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50LCBpbmRlbnQsIG5ldy1jYXAsIHNwYWNlLWJlZm9yZS1mdW5jdGlvbi1wYXJlbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQge1xuXHRUeXBlTG9va3VwLFxuXHRJREVGLFxuXHRob29rLFxuXHRob29rc1R5cGVzLFxuXHRjb25zdHJ1Y3Rvck9wdGlvbnMsXG5cdFByb3RvLFxuXHRTTixcblx0SURlZmluaXRvckluc3RhbmNlXG59IGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0IHR5cGUgeyBJREVGLCBDb25zdHJ1Y3RvckZ1bmN0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgeyAgZ2V0UHJvcHMsIHNldFByb3BzIH0gZnJvbSAnLi9hcGkvdHlwZXMvUHJvcHMnO1xuXG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5jb25zdCB7IG9kcCB9ID0gY29uc3RhbnRzO1xuXG5pbXBvcnQgKiBhcyBlcnJvcnNBcGkgZnJvbSAnLi9hcGkvZXJyb3JzJztcbmltcG9ydCB7IGRlc2NyaXB0b3JzIH0gZnJvbSAnLi9kZXNjcmlwdG9ycyc7XG5cbmV4cG9ydCBjb25zdCB7XG5cdGRlZmF1bHRUeXBlcyxcbn0gPSBkZXNjcmlwdG9ycztcblxuZnVuY3Rpb24gY2hlY2tUaGlzICggcG9pbnRlcjogdHlwZW9mIG1uZW1vbmljYSB8IHR5cGVvZiBleHBvcnRzIHwgdW5rbm93biApOiBib29sZWFuIHtcblx0cmV0dXJuIHBvaW50ZXIgPT09IG1uZW1vbmljYSB8fCBwb2ludGVyID09PSBleHBvcnRzO1xufVxuXG5leHBvcnQgY29uc3QgZGVmaW5lID0gZnVuY3Rpb24gPFxuXHRULFxuXHQvLyBLIGV4dGVuZHMgSURFRjxUPixcblx0Ly8gSCBleHRlbmRzIFRoaXNUeXBlPElERUY8VD4+LFxuXHRQIGV4dGVuZHMgb2JqZWN0LFxuXHROIGV4dGVuZHMgUHJvdG88UCwgVD4sXG5cdC8vIHNvIFMgaXQganVzdCBiYXNpY2FsbHkgYWxsb3dzIG5lc3RlZCBjb25zdHJ1Y3RvcnNcblx0Ly8gYW5kIGdpdmVzIGV4dHJhY3RlZCBwcm9wcyBmcm9tIGNvbnN0cnVjdEhhbmRsZXIgJiBwcm90b1xuXHQvLyB0aGVuIGl0IGdvZXMgdG8gbmV3KCkga2V5d29yZCBvZiBkZWZpbmUgb3V0cHV0XG5cdFMgZXh0ZW5kcyBTTiAmIE4sXG5cdFIgZXh0ZW5kcyBJRGVmaW5pdG9ySW5zdGFuY2U8TiwgUz5cbj4gKFxuXHR0aGlzOiB1bmtub3duLFxuXHRUeXBlTmFtZT86IHN0cmluZyxcblx0Y29uc3RydWN0SGFuZGxlcj86IElERUY8VD4sXG5cdGNvbmZpZz86IGNvbnN0cnVjdG9yT3B0aW9ucyxcbik6IFIge1xuXHRjb25zdCB0eXBlcyA9IGNoZWNrVGhpcyggdGhpcyApID8gZGVmYXVsdFR5cGVzIDogdGhpcyB8fCBkZWZhdWx0VHlwZXM7XG5cdHJldHVybiB0eXBlcy5kZWZpbmUoIFR5cGVOYW1lLCBjb25zdHJ1Y3RIYW5kbGVyLCBjb25maWcgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBsb29rdXAgPSBmdW5jdGlvbiAoIFR5cGVOZXN0ZWRQYXRoICkge1xuXHRjb25zdCB0eXBlcyA9IGNoZWNrVGhpcyggdGhpcyApID8gZGVmYXVsdFR5cGVzIDogdGhpcyB8fCBkZWZhdWx0VHlwZXM7XG5cdHJldHVybiB0eXBlcy5sb29rdXAoIFR5cGVOZXN0ZWRQYXRoICk7XG59IGFzIFR5cGVMb29rdXA7XG5cbmV4cG9ydCBjb25zdCBhcHBseSA9IGZ1bmN0aW9uIDxFIGV4dGVuZHMgb2JqZWN0LCBUIGV4dGVuZHMgb2JqZWN0LCBTIGV4dGVuZHMgUHJvdG88RSwgVD4+ICggZW50aXR5OiBFLCBDb25zdHJ1Y3RvcjogSURFRjxUPiwgYXJnczogdW5rbm93bltdID0gW10gKToge1xuXHRbIGtleSBpbiBrZXlvZiBTIF06IFNbIGtleSBdXG59IHtcblx0Ly8gQHRzLWlnbm9yZVxuXHRjb25zdCByZXN1bHQgPSBuZXcgZW50aXR5WyBDb25zdHJ1Y3Rvci5UeXBlTmFtZSBdKCAuLi5hcmdzICk7XG5cdHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgY2FsbCA9IGZ1bmN0aW9uIDxFIGV4dGVuZHMgb2JqZWN0LCBUIGV4dGVuZHMgb2JqZWN0LCBTIGV4dGVuZHMgUHJvdG88RSwgVD4+ICggZW50aXR5OiBFLCBDb25zdHJ1Y3RvcjogSURFRjxUPiwgLi4uYXJnczogdW5rbm93bltdICk6IHtcblx0WyBrZXkgaW4ga2V5b2YgUyBdOiBTWyBrZXkgXVxufSB7XG5cdC8vIEB0cy1pZ25vcmVcblx0Y29uc3QgcmVzdWx0ID0gbmV3IGVudGl0eVsgQ29uc3RydWN0b3IuVHlwZU5hbWUgXSggLi4uYXJncyApO1xuXHRyZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGJpbmQgPSBmdW5jdGlvbiA8RSBleHRlbmRzIG9iamVjdCwgVCBleHRlbmRzIG9iamVjdCwgUyBleHRlbmRzIFByb3RvPEUsIFQ+PiAoIGVudGl0eTogRSwgQ29uc3RydWN0b3I6IElERUY8VD4gKTogKCAuLi5hcmdzOiB1bmtub3duW10gKSA9PiB7XG5cdFsga2V5IGluIGtleW9mIFMgXTogU1sga2V5IF1cbn0ge1xuXHRyZXR1cm4gKCAuLi5hcmdzICkgPT4ge1xuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHRjb25zdCByZXN1bHQgPSBuZXcgZW50aXR5WyBDb25zdHJ1Y3Rvci5UeXBlTmFtZSBdKCAuLi5hcmdzICk7XG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWNvcmF0ZSA9IGZ1bmN0aW9uICggcGFyZW50Q2xhc3M6IHVua25vd24gPSB1bmRlZmluZWQsIGNvbmZpZz86IGNvbnN0cnVjdG9yT3B0aW9ucyApIHtcblx0Y29uc3QgZGVjb3JhdG9yID0gZnVuY3Rpb24gPFQgZXh0ZW5kcyB7IG5ldygpOiB1bmtub3duIH0+ICggY3N0cjogVCwgczogQ2xhc3NEZWNvcmF0b3JDb250ZXh0PFQ+ICk6IFQge1xuXHRcdGlmICggcGFyZW50Q2xhc3MgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdHJldHVybiBkZWZpbmUoIHMubmFtZSwgY3N0ciwgY29uZmlnICkgYXMgdW5rbm93biBhcyBUIDtcblx0XHR9XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdHJldHVybiBwYXJlbnRDbGFzcy5kZWZpbmUoIHMubmFtZSwgY3N0ciwgY29uZmlnICkgYXMgdW5rbm93biBhcyBUO1xuXHR9O1xuXHRyZXR1cm4gZGVjb3JhdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVySG9vayA9IGZ1bmN0aW9uIDxUIGV4dGVuZHMgb2JqZWN0PiAoIENvbnN0cnVjdG9yOiBJREVGPFQ+LCBob29rVHlwZTogaG9va3NUeXBlcywgY2I6IGhvb2sgKTogdm9pZCB7XG5cdC8vIEB0cy1pZ25vcmVcblx0Q29uc3RydWN0b3IucmVnaXN0ZXJIb29rKCBob29rVHlwZSwgY2IgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBtbmVtb25pY2EgPSBPYmplY3QuZW50cmllcygge1xuXG5cdGRlZmluZSxcblx0bG9va3VwLFxuXHRhcHBseSxcblx0Y2FsbCxcblx0YmluZCxcblx0ZGVjb3JhdGUsXG5cdHJlZ2lzdGVySG9vayxcblxuXHQuLi5kZXNjcmlwdG9ycyxcblxuXHQuLi5lcnJvcnNBcGksXG5cdC4uLmNvbnN0YW50cyxcblxufSApLnJlZHVjZSggKCBhY2M6IHsgWyBpbmRleDogc3RyaW5nIF06IHVua25vd24gfSwgZW50cnk6IFsgc3RyaW5nLCB1bmtub3duIF0gKSA9PiB7XG5cdGNvbnN0IFsgbmFtZSwgY29kZSBdID0gZW50cnk7XG5cdG9kcCggYWNjLCBuYW1lLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBjb2RlO1xuXHRcdH0sXG5cdFx0ZW51bWVyYWJsZSA6IHRydWVcblx0fSApO1xuXHRyZXR1cm4gYWNjO1xufSwge30gKTtcblxuZXhwb3J0IGNvbnN0IHtcblxuXHRTeW1ib2xQYXJlbnRUeXBlLFxuXHRTeW1ib2xDb25zdHJ1Y3Rvck5hbWUsXG5cdFN5bWJvbEdhaWEsXG5cdFN5bWJvbFJlcGxhY2VVcmFudXMsXG5cdFN5bWJvbERlZmF1bHRUeXBlc0NvbGxlY3Rpb24sXG5cdFN5bWJvbENvbmZpZyxcblx0TU5FTU9OSUNBLFxuXHRNTkVNT1NZTkUsXG5cdEdBSUEsXG5cdFVSQU5VUyxcblx0VFlQRV9USVRMRV9QUkVGSVgsXG5cdEVycm9yTWVzc2FnZXMsXG5cdGNyZWF0ZVR5cGVzQ29sbGVjdGlvbixcblxufSA9IG1uZW1vbmljYTtcblxuXG5leHBvcnQgY29uc3QgZGVmYXVsdENvbGxlY3Rpb24gPSBkZWZhdWx0VHlwZXMuc3VidHlwZXM7XG5leHBvcnQgY29uc3QgZXJyb3JzID0gZGVzY3JpcHRvcnMuRXJyb3JzVHlwZXM7XG5cbmV4cG9ydCB7IHV0aWxzIH0gZnJvbSAnLi91dGlscyc7XG5leHBvcnQgeyBkZWZpbmVTdGFja0NsZWFuZXIgfSBmcm9tICcuL3V0aWxzJztcbi8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50LCBpbmRlbnQsIG5ldy1jYXAsIHNwYWNlLWJlZm9yZS1mdW5jdGlvbi1wYXJlbiAqL1xuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mnemonica",
3
- "version": "0.9.997",
3
+ "version": "0.9.9976",
4
4
  "description": "abstract technique that aids information retention : instance inheritance system",
5
5
  "type": "commonjs",
6
6
  "main": "./build/index.js",
@@ -64,7 +64,7 @@
64
64
  "homepage": "https://github.com/wentout/mnemonica#readme",
65
65
  "devDependencies": {
66
66
  "@types/jest": "^29.5.14",
67
- "@types/node": "^18.19.124",
67
+ "@types/node": "^18.19.130",
68
68
  "@typescript-eslint/eslint-plugin": "^5.62.0",
69
69
  "@typescript-eslint/parser": "^5.62.0",
70
70
  "chai": "^4.5.0",
@@ -79,8 +79,8 @@
79
79
  "mocha": "^10.8.2",
80
80
  "mocha-lcov-reporter": "^1.3.0",
81
81
  "nyc": "^15.1.0",
82
- "ts-jest": "^29.4.1",
83
- "typescript": "^5.9.2"
82
+ "ts-jest": "^29.4.5",
83
+ "typescript": "^5.9.3"
84
84
  },
85
85
  "engines": {
86
86
  "node": ">=16 <24"