mnemonica 0.9.99781 → 0.9.99782
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 +23 -0
- package/build/index.d.ts +4 -0
- package/build/index.js +7 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -356,6 +356,29 @@ const SomeType = lookup('SomeType');
|
|
|
356
356
|
const SomeNestedType = lookup('SomeType.SomeNestedType');
|
|
357
357
|
```
|
|
358
358
|
|
|
359
|
+
#### `lookupTyped(typeNestedPath)`
|
|
360
|
+
|
|
361
|
+
Type-safe lookup function for use with tactica-generated type definitions. Requires TypeRegistry augmentation from tactica.
|
|
362
|
+
|
|
363
|
+
```typescript
|
|
364
|
+
import { lookupTyped } from 'mnemonica';
|
|
365
|
+
|
|
366
|
+
// Type-safe lookup - returns properly typed constructor
|
|
367
|
+
const UserType = lookupTyped('UserType');
|
|
368
|
+
const user = new UserType({ name: 'John' }); // Full type safety!
|
|
369
|
+
|
|
370
|
+
// Works with nested types too
|
|
371
|
+
const SubType = lookupTyped('Parent.SubType');
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
To enable type safety, generate types with tactica:
|
|
375
|
+
|
|
376
|
+
```bash
|
|
377
|
+
npx tactica
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
Then include the generated types in your project. See [Usage with @mnemonica/tactica](#usage-with-mnemonicatactica) for details.
|
|
381
|
+
|
|
359
382
|
#### `apply(entity, Constructor, args?)`
|
|
360
383
|
|
|
361
384
|
Applies a constructor to an entity with an array of arguments.
|
package/build/index.d.ts
CHANGED
|
@@ -5,6 +5,10 @@ export { getProps, setProps } from './api/types/Props';
|
|
|
5
5
|
export declare const defaultTypes: import("./types").TypesCollection;
|
|
6
6
|
export declare const define: TypeAbsorber;
|
|
7
7
|
export declare const lookup: (this: unknown, TypeNestedPath: string) => TypeClass | undefined;
|
|
8
|
+
export interface TypeRegistry {
|
|
9
|
+
[key: string]: new (...args: unknown[]) => unknown;
|
|
10
|
+
}
|
|
11
|
+
export declare const lookupTyped: <const K extends keyof TypeRegistry>(this: unknown, TypeNestedPath: K) => TypeRegistry[K] | undefined;
|
|
8
12
|
export declare const apply: <E extends object, T extends object, S extends Proto<E, T>>(entity: E, Ctor: IDEF<T>, args?: unknown[]) => { [key in keyof S]: S[key]; };
|
|
9
13
|
export declare const call: <E extends object, T extends object, S extends Proto<E, T>>(entity: E, Ctor: IDEF<T>, ...args: unknown[]) => { [key in keyof S]: S[key]; };
|
|
10
14
|
export declare const bind: <E extends object, T extends object, S extends Proto<E, T>>(entity: E, Ctor: IDEF<T>) => (...args: unknown[]) => { [key in keyof S]: S[key]; };
|
package/build/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.defineStackCleaner = exports.utils = exports.errors = exports.defaultCollection = exports.createTypesCollection = exports.ErrorMessages = exports.TYPE_TITLE_PREFIX = exports.MNEMOSYNE = exports.MNEMONICA = exports.SymbolConfig = exports.SymbolDefaultTypesCollection = exports.SymbolConstructorName = exports.SymbolParentType = exports._lookup = exports._define = exports.mnemonica = exports.registerHook = exports.decorate = exports.bind = exports.call = exports.apply = exports.lookup = exports.define = exports.defaultTypes = exports.setProps = exports.getProps = exports.findSubTypeFromParent = exports.isClass = void 0;
|
|
4
|
+
exports.defineStackCleaner = exports.utils = exports.errors = exports.defaultCollection = exports.createTypesCollection = exports.ErrorMessages = exports.TYPE_TITLE_PREFIX = exports.MNEMOSYNE = exports.MNEMONICA = exports.SymbolConfig = exports.SymbolDefaultTypesCollection = exports.SymbolConstructorName = exports.SymbolParentType = exports._lookup = exports._define = exports.mnemonica = exports.registerHook = exports.decorate = exports.bind = exports.call = exports.apply = exports.lookupTyped = exports.lookup = exports.define = exports.defaultTypes = exports.setProps = exports.getProps = exports.findSubTypeFromParent = exports.isClass = void 0;
|
|
5
5
|
const index_1 = require("./api/utils/index");
|
|
6
6
|
exports.isClass = index_1.default.isClass, exports.findSubTypeFromParent = index_1.default.findSubTypeFromParent;
|
|
7
7
|
var Props_1 = require("./api/types/Props");
|
|
@@ -27,6 +27,11 @@ const lookup = function (TypeNestedPath) {
|
|
|
27
27
|
return types.lookup(TypeNestedPath);
|
|
28
28
|
};
|
|
29
29
|
exports.lookup = lookup;
|
|
30
|
+
const lookupTyped = function (TypeNestedPath) {
|
|
31
|
+
const types = checkThis(this) ? exports.defaultTypes : this || exports.defaultTypes;
|
|
32
|
+
return types.lookup(TypeNestedPath);
|
|
33
|
+
};
|
|
34
|
+
exports.lookupTyped = lookupTyped;
|
|
30
35
|
const $run = function (entity, Ctor, args) {
|
|
31
36
|
const { TypeName } = Ctor;
|
|
32
37
|
const Cstr = prepareSubtypeForConstruction(TypeName, entity);
|
|
@@ -98,4 +103,4 @@ var utils_1 = require("./utils");
|
|
|
98
103
|
Object.defineProperty(exports, "utils", { enumerable: true, get: function () { return utils_1.utils; } });
|
|
99
104
|
var utils_2 = require("./utils");
|
|
100
105
|
Object.defineProperty(exports, "defineStackCleaner", { enumerable: true, get: function () { return utils_2.defineStackCleaner; } });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsWUFBWSxDQUFDOzs7O0FBa0JiLDZDQUEyQztBQUUxQyxlQUFPLEdBRUosZUFBVSxVQURiLDZCQUFxQixHQUNsQixlQUFVLHVCQUFDO0FBR2YsMkNBQXVEO0FBQTlDLGlHQUFBLFFBQVEsT0FBQTtBQUFFLGlHQUFBLFFBQVEsT0FBQTtBQUUzQiwyQ0FBd0M7QUFDeEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLHFCQUFTLENBQUM7QUFFMUIsMENBQTBDO0FBQzFDLCtDQUE0QztBQUU1QyxNQUFNLEVBQUUsMEJBQTBCLEVBQUUsR0FBRyx5QkFBVyxDQUFDLFdBQVcsQ0FBQztBQUUvRCxxREFBK0M7QUFDL0MsTUFBTSxFQUFFLDZCQUE2QixFQUFFLEdBQUcsbUJBQVUsQ0FBQztBQUdwRCxvQkFBWSxHQUNULHlCQUFXLGNBQUM7QUFFaEIsU0FBUyxTQUFTLENBQUMsT0FBb0Q7SUFDdEUsT0FBTyxPQUFPLEtBQUssaUJBQVMsSUFBSSxPQUFPLEtBQUssT0FBTyxDQUFDO0FBQ3JELENBQUM7QUFHWSxRQUFBLE1BQU0sR0FBRyxVQU1yQixRQUFvQyxFQUVwQyxnQkFBZ0UsRUFDaEUsTUFBMkI7SUFFM0IsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksb0JBQVksQ0FBQztJQUVwRSxPQUFRLEtBQWtDLENBQUMsTUFBTSxDQUFDLFFBQWtCLEVBQUUsZ0JBQTJCLEVBQUUsTUFBTSxDQUE2RCxDQUFDO0FBQ3hLLENBQWlCLENBQUM7QUFFWCxNQUFNLE1BQU0sR0FBRyxVQUVyQixjQUFzQjtJQUV0QixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFZLENBQUMsQ0FBQyxDQUFDLElB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bmN0aW9uLXBhcmVuICovXG4ndXNlIHN0cmljdCc7XG5cbmltcG9ydCB0eXBlIHtcblx0Q3JlYXRlVHlwZXNDb2xsZWN0aW9uRnVuY3Rpb24sXG5cdElERUYsXG5cdGhvb2ssXG5cdGhvb2tzVHlwZXMsXG5cdGNvbnN0cnVjdG9yT3B0aW9ucyxcblx0UHJvdG8sXG5cdFNOLFxuXHRJRGVmaW5pdG9ySW5zdGFuY2UsXG5cdENvbnN0cnVjdG9yLFxuXHREZWNvcmF0ZWRDbGFzcyxcblx0VHlwZUNsYXNzLFxuXHRUeXBlQWJzb3JiZXIsXG5cdE1uZW1vbmljYU1vZHVsZVxufSBmcm9tICcuL3R5cGVzJztcblxuaW1wb3J0IFR5cGVzVXRpbHMgZnJvbSAnLi9hcGkvdXRpbHMvaW5kZXgnO1xuZXhwb3J0IGNvbnN0IHtcblx0aXNDbGFzcyxcblx0ZmluZFN1YlR5cGVGcm9tUGFyZW50LFxufSA9IFR5cGVzVXRpbHM7XG5cbmV4cG9ydCB0eXBlIHsgSURFRiwgQ29uc3RydWN0b3JGdW5jdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0IHsgZ2V0UHJvcHMsIHNldFByb3BzIH0gZnJvbSAnLi9hcGkvdHlwZXMvUHJvcHMnO1xuXG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5jb25zdCB7IG9kcCB9ID0gY29uc3RhbnRzO1xuXG5pbXBvcnQgKiBhcyBlcnJvcnNBcGkgZnJvbSAnLi9hcGkvZXJyb3JzJztcbmltcG9ydCB7IGRlc2NyaXB0b3JzIH0gZnJvbSAnLi9kZXNjcmlwdG9ycyc7XG5cbmNvbnN0IHsgV1JPTkdfTU9ESUZJQ0FUSU9OX1BBVFRFUk4gfSA9IGRlc2NyaXB0b3JzLkVycm9yc1R5cGVzO1xuXG5pbXBvcnQgbW5lbW9zeW5lcyBmcm9tICcuL2FwaS90eXBlcy9NbmVtb3N5bmUnO1xuY29uc3QgeyBwcmVwYXJlU3VidHlwZUZvckNvbnN0cnVjdGlvbiB9ID0gbW5lbW9zeW5lcztcblxuZXhwb3J0IGNvbnN0IHtcblx0ZGVmYXVsdFR5cGVzLFxufSA9IGRlc2NyaXB0b3JzO1xuXG5mdW5jdGlvbiBjaGVja1RoaXMocG9pbnRlcjogdHlwZW9mIG1uZW1vbmljYSB8IHR5cGVvZiBleHBvcnRzIHwgdW5rbm93bik6IGJvb2xlYW4ge1xuXHRyZXR1cm4gcG9pbnRlciA9PT0gbW5lbW9uaWNhIHx8IHBvaW50ZXIgPT09IGV4cG9ydHM7XG59XG5cbi8vIERlZmluZSBmdW5jdGlvbiB1c2luZyBUeXBlQWJzb3JiZXIgaW50ZXJmYWNlIHdpdGggcHJvcGVyIHR5cGUgY2FzdGluZ1xuZXhwb3J0IGNvbnN0IGRlZmluZSA9IGZ1bmN0aW9uIDxcblx0VCBleHRlbmRzIG9iamVjdCxcblx0UCBleHRlbmRzIG9iamVjdCA9IG9iamVjdCxcblx0TiBleHRlbmRzIFByb3RvPFAsIFQ+ID0gUHJvdG88UCwgVD5cbj4oXG5cdHRoaXM6IHVua25vd24sXG5cdFR5cGVOYW1lPzogc3RyaW5nIHwgQ2FsbGFibGVGdW5jdGlvbixcblx0Ly8gQWxsb3cgYm90aCBzdHJpY3QgSURFRiBhbmQgbW9yZSBmbGV4aWJsZSBmdW5jdGlvbiBzaWduYXR1cmVzXG5cdGNvbnN0cnVjdEhhbmRsZXI/OiBJREVGPFQ+IHwgQ2FsbGFibGVGdW5jdGlvbiB8IG9iamVjdCB8IGJvb2xlYW4sXG5cdGNvbmZpZz86IGNvbnN0cnVjdG9yT3B0aW9ucyxcbik6IElEZWZpbml0b3JJbnN0YW5jZTxOLCBTTiwgY29uc3RydWN0b3JPcHRpb25zPiB7XG5cdGNvbnN0IHR5cGVzID0gY2hlY2tUaGlzKHRoaXMpID8gZGVmYXVsdFR5cGVzIDogdGhpcyB8fCBkZWZhdWx0VHlwZXM7XG5cdC8vIFR5cGUgYXNzZXJ0aW9uIG5lZWRlZCBiZWNhdXNlIFR5cGVzQ29sbGVjdGlvblByb3h5IGlzIGEgUHJveHlcblx0cmV0dXJuICh0eXBlcyBhcyB7IGRlZmluZTogVHlwZUFic29yYmVyIH0pLmRlZmluZShUeXBlTmFtZSBhcyBzdHJpbmcsIGNvbnN0cnVjdEhhbmRsZXIgYXMgSURFRjxUPiwgY29uZmlnKSBhcyB1bmtub3duIGFzIElEZWZpbml0b3JJbnN0YW5jZTxOLCBTTiwgY29uc3RydWN0b3JPcHRpb25zPjtcbn0gYXMgVHlwZUFic29yYmVyO1xuXG5leHBvcnQgY29uc3QgbG9va3VwID0gZnVuY3Rpb24gKFxuXHR0aGlzOiB1bmtub3duLFxuXHRUeXBlTmVzdGVkUGF0aDogc3RyaW5nXG4pOiBUeXBlQ2xhc3MgfCB1bmRlZmluZWQge1xuXHRjb25zdCB0eXBlcyA9IGNoZWNrVGhpcyh0aGlzKSA/IGRlZmF1bHRUeXBlcyA6IHRoaXMgfHwgZGVmYXVsdFR5cGVzO1xuXHQvLyBUeXBlIGFzc2VydGlvbiBuZWVkZWQgYmVjYXVzZSBUeXBlc0NvbGxlY3Rpb25Qcm94eSBpcyBhIFByb3h5XG5cdHJldHVybiAodHlwZXMgYXMgeyBsb29rdXA6IChwYXRoOiBzdHJpbmcpID0+IFR5cGVDbGFzcyB8IHVuZGVmaW5lZCB9KS5sb29rdXAoVHlwZU5lc3RlZFBhdGgpO1xufTtcblxuXG5jb25zdCAkcnVuID0gZnVuY3Rpb24gPEUgZXh0ZW5kcyBvYmplY3QsIFQgZXh0ZW5kcyBvYmplY3QsIFMgZXh0ZW5kcyBQcm90bzxFLCBUPj4oXG5cdGVudGl0eTogRSxcblx0Q3RvcjogSURFRjxUPixcblx0YXJnczogdW5rbm93bltdXG4pOiB7XG5cdFx0W2tleSBpbiBrZXlvZiBTXTogU1trZXldXG5cdH0ge1xuXG5cdC8vIGRlYnVnZ2VyO1xuXHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gZXh0cmFjdGluZyBUeXBlTmFtZSBmcm9tIGZ1bmN0aW9uXG5cdGNvbnN0IHsgVHlwZU5hbWUgfSA9IEN0b3I7XG5cdGNvbnN0IENzdHIgPSBwcmVwYXJlU3VidHlwZUZvckNvbnN0cnVjdGlvbihUeXBlTmFtZSwgZW50aXR5KSBhcyB7IG5ldyguLi5hcnM6IHVua25vd25bXSk6IHVua25vd24gfTtcblx0Ly8gVE9ETzogY2hlY2sgbGluZXMgYmVsb3cgYW5kIGlmIENvbnN0cnVjdG9yIGlzIG5vdCBtbmVtb25pemVkIC4uLlxuXHRpZiAoQ3N0ciA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IChXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiBhcyB1bmtub3duIGFzIG5ldyAobXNnOiBzdHJpbmcpID0+IEVycm9yKShgWyAke1R5cGVOYW1lfSBdIGlzIG5vdCBkZWZpbmVkIGFzIGEgVHlwZSBDb25zdHJ1Y3RvciBvbiB1c2VkIGluc3RhbmNlYCk7XG5cdH1cblx0Y29uc3QgcmVzdWx0ID0gbmV3IENzdHIoLi4uYXJncyk7XG5cdC8vIEB0cy1leHBlY3QtZXJyb3IgLSByZXR1cm5pbmcgcmVzdWx0IGFzIG1lcmdlZCBwcm90byB0eXBlXG5cdHJldHVybiByZXN1bHQ7XG59O1xuXG4vLyBUT0RPOiBhcHBseSBpbnN0YW5jZSAudG8gdHlwZSAud2l0aCBhcmd1bWVudHNcbmV4cG9ydCBjb25zdCBhcHBseSA9IGZ1bmN0aW9uIDxFIGV4dGVuZHMgb2JqZWN0LCBUIGV4dGVuZHMgb2JqZWN0LCBTIGV4dGVuZHMgUHJvdG88RSwgVD4+KFxuXHRlbnRpdHk6IEUsXG5cdEN0b3I6IElERUY8VD4sXG5cdGFyZ3M6IHVua25vd25bXSA9IFtdXG4pOiB7XG5cdFx0W2tleSBpbiBrZXlvZiBTXTogU1trZXldXG5cdH0ge1xuXHRyZXR1cm4gJHJ1bjxFLCBULCBTPihlbnRpdHksIEN0b3IsIGFyZ3MpO1xufTtcblxuLy8gVE9ETzogY2FsbCB0eXBlIC5ieSBpbnN0YW5jZSAud2l0aCBhcmd1bWVudHNcbmV4cG9ydCBjb25zdCBjYWxsID0gZnVuY3Rpb24gPEUgZXh0ZW5kcyBvYmplY3QsIFQgZXh0ZW5kcyBvYmplY3QsIFMgZXh0ZW5kcyBQcm90bzxFLCBUPj4oXG5cdGVudGl0eTogRSxcblx0Q3RvcjogSURFRjxUPixcblx0Li4uYXJnczogdW5rbm93bltdXG4pOiB7XG5cdFx0W2tleSBpbiBrZXlvZiBTXTogU1trZXldXG5cdH0ge1xuXHRyZXR1cm4gJHJ1bjxFLCBULCBTPihlbnRpdHksIEN0b3IsIGFyZ3MpO1xufTtcblxuLy8gVE9ETzogYmluZCB0eXBlIC53aXRoIGluc3RhbmNlIOKGkiAoLi4uYXJncylcbmV4cG9ydCBjb25zdCBiaW5kID0gZnVuY3Rpb24gPEUgZXh0ZW5kcyBvYmplY3QsIFQgZXh0ZW5kcyBvYmplY3QsIFMgZXh0ZW5kcyBQcm90bzxFLCBUPj4oXG5cdGVudGl0eTogRSxcblx0Q3RvcjogSURFRjxUPlxuKTogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuXHRba2V5IGluIGtleW9mIFNdOiBTW2tleV1cbn0ge1xuXHRyZXR1cm4gKC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuXHRcdHJldHVybiAkcnVuPEUsIFQsIFM+KGVudGl0eSwgQ3RvciwgYXJncyk7XG5cdH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVjb3JhdGUgPSBmdW5jdGlvbiA8XG5cdFQgZXh0ZW5kcyBDb25zdHJ1Y3RvcjxvYmplY3Q+IHwgY29uc3RydWN0b3JPcHRpb25zIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4+KFxuXHR0YXJnZXQ/OiBULFxuXHRjb25maWc/OiBjb25zdHJ1Y3Rvck9wdGlvbnNcbik6IDxVIGV4dGVuZHMgQ29uc3RydWN0b3I8b2JqZWN0Pj4oY3N0cjogVSkgPT4gRGVjb3JhdGVkQ2xhc3M8VT4ge1xuXHRjb25zdCBvcHRzID0gKGNvbmZpZyA9PT0gdW5kZWZpbmVkICYmIHR5cGVvZiB0YXJnZXQgPT09ICdvYmplY3QnICYmICEodGFyZ2V0IGluc3RhbmNlb2YgRnVuY3Rpb24pKVxuXHRcdD8gdGFyZ2V0IGFzIGNvbnN0cnVjdG9yT3B0aW9uc1xuXHRcdDogY29uZmlnO1xuXG5cdGNvbnN0IHBhcmVudFR5cGUgPSAodGFyZ2V0IGluc3RhbmNlb2YgRnVuY3Rpb24pXG5cdFx0PyB0YXJnZXQgYXMgQ29uc3RydWN0b3I8b2JqZWN0PlxuXHRcdDogdW5kZWZpbmVkO1xuXG5cdGNvbnN0IGRlY29yYXRvciA9IGZ1bmN0aW9uIDxVIGV4dGVuZHMgQ29uc3RydWN0b3I8b2JqZWN0Pj4oY3N0cjogVSk6IERlY29yYXRlZENsYXNzPFU+IHtcblx0XHRjb25zdCB7IG5hbWUgfSA9IGNzdHI7XG5cdFx0aWYgKHBhcmVudFR5cGUgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cmV0dXJuIGRlZmluZShuYW1lLCBjc3RyIGFzIElERUY8b2JqZWN0Piwgb3B0cykgYXMgdW5rbm93biBhcyBEZWNvcmF0ZWRDbGFzczxVPjtcblx0XHR9XG5cdFx0Y29uc3QgcGFyZW50ID0gcGFyZW50VHlwZSBhcyB1bmtub3duIGFzIHtcblx0XHRcdGRlZmluZTogVHlwZUFic29yYmVyO1xuXHRcdH07XG5cdFx0cmV0dXJuIHBhcmVudC5kZWZpbmUobmFtZSwgY3N0ciBhcyBJREVGPG9iamVjdD4sIG9wdHMpIGFzIHVua25vd24gYXMgRGVjb3JhdGVkQ2xhc3M8VT47XG5cdH07XG5cdHJldHVybiBkZWNvcmF0b3I7XG59O1xuXG5cbmV4cG9ydCBjb25zdCByZWdpc3Rlckhvb2sgPSBmdW5jdGlvbiA8VCBleHRlbmRzIENvbnN0cnVjdG9yPFQ+PihDdG9yOiBEZWNvcmF0ZWRDbGFzczxUPiwgaG9va1R5cGU6IGhvb2tzVHlwZXMsIGNiOiBob29rKTogdm9pZCB7XG5cdEN0b3IucmVnaXN0ZXJIb29rKGhvb2tUeXBlLCBjYik7XG59O1xuXG5leHBvcnQgY29uc3QgbW5lbW9uaWNhID0gT2JqZWN0LmVudHJpZXMoe1xuXG5cdGRlZmluZSxcblx0bG9va3VwLFxuXHRhcHBseSxcblx0Y2FsbCxcblx0YmluZCxcblx0ZGVjb3JhdGUsXG5cdHJlZ2lzdGVySG9vayxcblxuXHQuLi5kZXNjcmlwdG9ycyxcblxuXHQuLi5lcnJvcnNBcGksXG5cdC4uLmNvbnN0YW50cyxcblxufSkucmVkdWNlKChhY2M6IHsgW2luZGV4OiBzdHJpbmddOiB1bmtub3duIH0sIGVudHJ5OiBbc3RyaW5nLCB1bmtub3duXSkgPT4ge1xuXHRjb25zdCBbIG5hbWUsIGNvZGUgXSA9IGVudHJ5O1xuXHRvZHAoYWNjLCBuYW1lLCB7XG5cdFx0Z2V0KCkge1xuXHRcdFx0cmV0dXJuIGNvZGU7XG5cdFx0fSxcblx0XHRlbnVtZXJhYmxlIDogdHJ1ZVxuXHR9KTtcblx0cmV0dXJuIGFjYztcbn0sIHt9KSBhcyBNbmVtb25pY2FNb2R1bGU7XG5cbmltcG9ydCAqIGFzIGFwaSBmcm9tICcuL2FwaSc7XG5cbmV4cG9ydCBjb25zdCB7XG5cdGRlZmluZTogX2RlZmluZSxcblx0bG9va3VwOiBfbG9va3VwXG59ID0gYXBpLnR5cGVzO1xuXG5leHBvcnQgY29uc3Qge1xuXG5cdFN5bWJvbFBhcmVudFR5cGUsXG5cdFN5bWJvbENvbnN0cnVjdG9yTmFtZSxcblx0U3ltYm9sRGVmYXVsdFR5cGVzQ29sbGVjdGlvbixcblx0U3ltYm9sQ29uZmlnLFxuXHRNTkVNT05JQ0EsXG5cdE1ORU1PU1lORSxcblx0VFlQRV9USVRMRV9QUkVGSVgsXG5cdEVycm9yTWVzc2FnZXMsXG5cbn0gPSBtbmVtb25pY2E7XG5cbi8vIEV4cG9ydCBjcmVhdGVUeXBlc0NvbGxlY3Rpb24gd2l0aCBwcm9wZXIgdHlwZVxuZXhwb3J0IGNvbnN0IGNyZWF0ZVR5cGVzQ29sbGVjdGlvbjogQ3JlYXRlVHlwZXNDb2xsZWN0aW9uRnVuY3Rpb24gPSBtbmVtb25pY2EuY3JlYXRlVHlwZXNDb2xsZWN0aW9uIGFzIENyZWF0ZVR5cGVzQ29sbGVjdGlvbkZ1bmN0aW9uO1xuXG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0Q29sbGVjdGlvbiA9IChkZWZhdWx0VHlwZXMgYXMgeyBzdWJ0eXBlczogTWFwPHN0cmluZywgb2JqZWN0PiB9KS5zdWJ0eXBlcztcbmV4cG9ydCBjb25zdCBlcnJvcnMgPSBkZXNjcmlwdG9ycy5FcnJvcnNUeXBlcztcblxuZXhwb3J0IHsgdXRpbHMgfSBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCB7IGRlZmluZVN0YWNrQ2xlYW5lciB9IGZyb20gJy4vdXRpbHMnO1xuLyogZXNsaW50LWVuYWJsZSBzcGFjZS1iZWZvcmUtZnVuY3Rpb24tcGFyZW4gKi9cbiJdfQ==
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsWUFBWSxDQUFDOzs7O0FBa0JiLDZDQUEyQztBQUUxQyxlQUFPLEdBRUosZUFBVSxVQURiLDZCQUFxQixHQUNsQixlQUFVLHVCQUFDO0FBR2YsMkNBQXVEO0FBQTlDLGlHQUFBLFFBQVEsT0FBQTtBQUFFLGlHQUFBLFFBQVEsT0FBQTtBQUUzQiwyQ0FBd0M7QUFDeEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLHFCQUFTLENBQUM7QUFFMUIsMENBQTBDO0FBQzFDLCtDQUE0QztBQUU1QyxNQUFNLEVBQUUsMEJBQTBCLEVBQUUsR0FBRyx5QkFBVyxDQUFDLFdBQVcsQ0FBQztBQUUvRCxxREFBK0M7QUFDL0MsTUFBTSxFQUFFLDZCQUE2QixFQUFFLEdBQUcsbUJBQVUsQ0FBQztBQUdwRCxvQkFBWSxHQUNULHlCQUFXLGNBQUM7QUFFaEIsU0FBUyxTQUFTLENBQUMsT0FBb0Q7SUFDdEUsT0FBTyxPQUFPLEtBQUssaUJBQVMsSUFBSSxPQUFPLEtBQUssT0FBTyxDQUFDO0FBQ3JELENBQUM7QUFHWSxRQUFBLE1BQU0sR0FBRyxVQU1yQixRQUFvQyxFQUVwQyxnQkFBZ0UsRUFDaEUsTUFBMkI7SUFFM0IsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksb0JBQVksQ0FBQztJQUVwRSxPQUFRLEtBQWtDLENBQUMsTUFBTSxDQUFDLFFBQWtCLEVBQUUsZ0JBQTJCLEVBQUUsTUFBTSxDQUE2RCxDQUFDO0FBQ3hLLENBQWlCLENBQUM7QUFFWCxNQUFNLE1BQU0sR0FBRyxVQUVyQixjQUFzQjtJQUV0QixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFZLENBQUMsQ0FBQyxDQUFDLElB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LENBQUM7QUFHeEgsUUFBQSxpQkFBaUIsR0FBSSxvQkFBa0QsQ0FBQyxRQUFRLENBQUM7QUFDakYsUUFBQSxNQUFNLEdBQUcseUJBQVcsQ0FBQyxXQUFXLENBQUM7QUFFOUMsaUNBQWdDO0FBQXZCLDhGQUFBLEtBQUssT0FBQTtBQUNkLGlDQUE2QztBQUFwQywyR0FBQSxrQkFBa0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHNwYWNlLWJlZm9yZS1mdW5jdGlvbi1wYXJlbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdHlwZSB7XG5cdENyZWF0ZVR5cGVzQ29sbGVjdGlvbkZ1bmN0aW9uLFxuXHRJREVGLFxuXHRob29rLFxuXHRob29rc1R5cGVzLFxuXHRjb25zdHJ1Y3Rvck9wdGlvbnMsXG5cdFByb3RvLFxuXHRTTixcblx0SURlZmluaXRvckluc3RhbmNlLFxuXHRDb25zdHJ1Y3Rvcixcblx0RGVjb3JhdGVkQ2xhc3MsXG5cdFR5cGVDbGFzcyxcblx0VHlwZUFic29yYmVyLFxuXHRNbmVtb25pY2FNb2R1bGVcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmltcG9ydCBUeXBlc1V0aWxzIGZyb20gJy4vYXBpL3V0aWxzL2luZGV4JztcbmV4cG9ydCBjb25zdCB7XG5cdGlzQ2xhc3MsXG5cdGZpbmRTdWJUeXBlRnJvbVBhcmVudCxcbn0gPSBUeXBlc1V0aWxzO1xuXG5leHBvcnQgdHlwZSB7IElERUYsIENvbnN0cnVjdG9yRnVuY3Rpb24gfSBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCB7IGdldFByb3BzLCBzZXRQcm9wcyB9IGZyb20gJy4vYXBpL3R5cGVzL1Byb3BzJztcblxuaW1wb3J0IHsgY29uc3RhbnRzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuY29uc3QgeyBvZHAgfSA9IGNvbnN0YW50cztcblxuaW1wb3J0ICogYXMgZXJyb3JzQXBpIGZyb20gJy4vYXBpL2Vycm9ycyc7XG5pbXBvcnQgeyBkZXNjcmlwdG9ycyB9IGZyb20gJy4vZGVzY3JpcHRvcnMnO1xuXG5jb25zdCB7IFdST05HX01PRElGSUNBVElPTl9QQVRURVJOIH0gPSBkZXNjcmlwdG9ycy5FcnJvcnNUeXBlcztcblxuaW1wb3J0IG1uZW1vc3luZXMgZnJvbSAnLi9hcGkvdHlwZXMvTW5lbW9zeW5lJztcbmNvbnN0IHsgcHJlcGFyZVN1YnR5cGVGb3JDb25zdHJ1Y3Rpb24gfSA9IG1uZW1vc3luZXM7XG5cbmV4cG9ydCBjb25zdCB7XG5cdGRlZmF1bHRUeXBlcyxcbn0gPSBkZXNjcmlwdG9ycztcblxuZnVuY3Rpb24gY2hlY2tUaGlzKHBvaW50ZXI6IHR5cGVvZiBtbmVtb25pY2EgfCB0eXBlb2YgZXhwb3J0cyB8IHVua25vd24pOiBib29sZWFuIHtcblx0cmV0dXJuIHBvaW50ZXIgPT09IG1uZW1vbmljYSB8fCBwb2ludGVyID09PSBleHBvcnRzO1xufVxuXG4vLyBEZWZpbmUgZnVuY3Rpb24gdXNpbmcgVHlwZUFic29yYmVyIGludGVyZmFjZSB3aXRoIHByb3BlciB0eXBlIGNhc3RpbmdcbmV4cG9ydCBjb25zdCBkZWZpbmUgPSBmdW5jdGlvbiA8XG5cdFQgZXh0ZW5kcyBvYmplY3QsXG5cdFAgZXh0ZW5kcyBvYmplY3QgPSBvYmplY3QsXG5cdE4gZXh0ZW5kcyBQcm90bzxQLCBUPiA9IFByb3RvPFAsIFQ+XG4+KFxuXHR0aGlzOiB1bmtub3duLFxuXHRUeXBlTmFtZT86IHN0cmluZyB8IENhbGxhYmxlRnVuY3Rpb24sXG5cdC8vIEFsbG93IGJvdGggc3RyaWN0IElERUYgYW5kIG1vcmUgZmxleGlibGUgZnVuY3Rpb24gc2lnbmF0dXJlc1xuXHRjb25zdHJ1Y3RIYW5kbGVyPzogSURFRjxUPiB8IENhbGxhYmxlRnVuY3Rpb24gfCBvYmplY3QgfCBib29sZWFuLFxuXHRjb25maWc/OiBjb25zdHJ1Y3Rvck9wdGlvbnMsXG4pOiBJRGVmaW5pdG9ySW5zdGFuY2U8TiwgU04sIGNvbnN0cnVjdG9yT3B0aW9ucz4ge1xuXHRjb25zdCB0eXBlcyA9IGNoZWNrVGhpcyh0aGlzKSA/IGRlZmF1bHRUeXBlcyA6IHRoaXMgfHwgZGVmYXVsdFR5cGVzO1xuXHQvLyBUeXBlIGFzc2VydGlvbiBuZWVkZWQgYmVjYXVzZSBUeXBlc0NvbGxlY3Rpb25Qcm94eSBpcyBhIFByb3h5XG5cdHJldHVybiAodHlwZXMgYXMgeyBkZWZpbmU6IFR5cGVBYnNvcmJlciB9KS5kZWZpbmUoVHlwZU5hbWUgYXMgc3RyaW5nLCBjb25zdHJ1Y3RIYW5kbGVyIGFzIElERUY8VD4sIGNvbmZpZykgYXMgdW5rbm93biBhcyBJRGVmaW5pdG9ySW5zdGFuY2U8TiwgU04sIGNvbnN0cnVjdG9yT3B0aW9ucz47XG59IGFzIFR5cGVBYnNvcmJlcjtcblxuZXhwb3J0IGNvbnN0IGxvb2t1cCA9IGZ1bmN0aW9uIChcblx0dGhpczogdW5rbm93bixcblx0VHlwZU5lc3RlZFBhdGg6IHN0cmluZ1xuKTogVHlwZUNsYXNzIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgdHlwZXMgPSBjaGVja1RoaXModGhpcykgPyBkZWZhdWx0VHlwZXMgOiB0aGlzIHx8IGRlZmF1bHRUeXBlcztcblx0Ly8gVHlwZSBhc3NlcnRpb24gbmVlZGVkIGJlY2F1c2UgVHlwZXNDb2xsZWN0aW9uUHJveHkgaXMgYSBQcm94eVxuXHRyZXR1cm4gKHR5cGVzIGFzIHsgbG9va3VwOiAocGF0aDogc3RyaW5nKSA9PiBUeXBlQ2xhc3MgfCB1bmRlZmluZWQgfSkubG9va3VwKFR5cGVOZXN0ZWRQYXRoKTtcbn07XG5cbi8qKlxuICogRGVmYXVsdCBUeXBlUmVnaXN0cnkgaW50ZXJmYWNlIC0gYXVnbWVudCB0aGlzIGluIHlvdXIgcHJvamVjdFxuICogdmlhIGRlY2xhcmF0aW9uIG1lcmdpbmcgd2hlbiB1c2luZyB0YWN0aWNhXG4gKlxuICogRXhhbXBsZSAoZ2VuZXJhdGVkIGJ5IHRhY3RpY2EgaW4gLnRhY3RpY2EvcmVnaXN0cnkudHMpOlxuICogICBkZWNsYXJlIG1vZHVsZSAnbW5lbW9uaWNhJyB7XG4gKiAgICAgaW50ZXJmYWNlIFR5cGVSZWdpc3RyeSB7XG4gKiAgICAgICAnTXlUeXBlJzogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IE15VHlwZUluc3RhbmNlO1xuICogICAgIH1cbiAqICAgfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVSZWdpc3RyeSB7XG5cdFtrZXk6IHN0cmluZ106IG5ldyAoLi4uYXJnczogdW5rbm93bltdKSA9PiB1bmtub3duO1xufVxuXG4vKipcbiAqIFR5cGUtc2FmZSBsb29rdXAgZnVuY3Rpb24gLSByZXF1aXJlcyBUeXBlUmVnaXN0cnkgYXVnbWVudGF0aW9uIGZyb20gdGFjdGljYVxuICogR2VuZXJhdGUgdHlwZXMgd2l0aCB0YWN0aWNhLCB0aGVuIHVzZTpcbiAqICAgY29uc3QgU29tZVR5cGUgPSBsb29rdXBUeXBlZCgnU29tZVR5cGUnKTtcbiAqICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgU29tZVR5cGUoeyAuLi4gfSk7IC8vIEZ1bGwgdHlwZSBzYWZldHkhXG4gKi9cbmV4cG9ydCBjb25zdCBsb29rdXBUeXBlZCA9IGZ1bmN0aW9uIDxcblx0Y29uc3QgSyBleHRlbmRzIGtleW9mIFR5cGVSZWdpc3RyeVxuPihcblx0dGhpczogdW5rbm93bixcblx0VHlwZU5lc3RlZFBhdGg6IEtcbik6IFR5cGVSZWdpc3RyeVtLXSB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IHR5cGVzID0gY2hlY2tUaGlzKHRoaXMpID8gZGVmYXVsdFR5cGVzIDogdGhpcyB8fCBkZWZhdWx0VHlwZXM7XG5cdHJldHVybiAodHlwZXMgYXMgeyBsb29rdXA6IChwYXRoOiBzdHJpbmcpID0+IHVua25vd24gfSkubG9va3VwKFR5cGVOZXN0ZWRQYXRoIGFzIHN0cmluZykgYXMgVHlwZVJlZ2lzdHJ5W0tdIHwgdW5kZWZpbmVkO1xufTtcblxuXG5jb25zdCAkcnVuID0gZnVuY3Rpb24gPEUgZXh0ZW5kcyBvYmplY3QsIFQgZXh0ZW5kcyBvYmplY3QsIFMgZXh0ZW5kcyBQcm90bzxFLCBUPj4oXG5cdGVudGl0eTogRSxcblx0Q3RvcjogSURFRjxUPixcblx0YXJnczogdW5rbm93bltdXG4pOiB7XG5cdFx0W2tleSBpbiBrZXlvZiBTXTogU1trZXldXG5cdH0ge1xuXG5cdC8vIGRlYnVnZ2VyO1xuXHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gZXh0cmFjdGluZyBUeXBlTmFtZSBmcm9tIGZ1bmN0aW9uXG5cdGNvbnN0IHsgVHlwZU5hbWUgfSA9IEN0b3I7XG5cdGNvbnN0IENzdHIgPSBwcmVwYXJlU3VidHlwZUZvckNvbnN0cnVjdGlvbihUeXBlTmFtZSwgZW50aXR5KSBhcyB7IG5ldyguLi5hcnM6IHVua25vd25bXSk6IHVua25vd24gfTtcblx0Ly8gVE9ETzogY2hlY2sgbGluZXMgYmVsb3cgYW5kIGlmIENvbnN0cnVjdG9yIGlzIG5vdCBtbmVtb25pemVkIC4uLlxuXHRpZiAoQ3N0ciA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IChXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiBhcyB1bmtub3duIGFzIG5ldyAobXNnOiBzdHJpbmcpID0+IEVycm9yKShgWyAke1R5cGVOYW1lfSBdIGlzIG5vdCBkZWZpbmVkIGFzIGEgVHlwZSBDb25zdHJ1Y3RvciBvbiB1c2VkIGluc3RhbmNlYCk7XG5cdH1cblx0Y29uc3QgcmVzdWx0ID0gbmV3IENzdHIoLi4uYXJncyk7XG5cdC8vIEB0cy1leHBlY3QtZXJyb3IgLSByZXR1cm5pbmcgcmVzdWx0IGFzIG1lcmdlZCBwcm90byB0eXBlXG5cdHJldHVybiByZXN1bHQ7XG59O1xuXG4vLyBUT0RPOiBhcHBseSBpbnN0YW5jZSAudG8gdHlwZSAud2l0aCBhcmd1bWVudHNcbmV4cG9ydCBjb25zdCBhcHBseSA9IGZ1bmN0aW9uIDxFIGV4dGVuZHMgb2JqZWN0LCBUIGV4dGVuZHMgb2JqZWN0LCBTIGV4dGVuZHMgUHJvdG88RSwgVD4+KFxuXHRlbnRpdHk6IEUsXG5cdEN0b3I6IElERUY8VD4sXG5cdGFyZ3M6IHVua25vd25bXSA9IFtdXG4pOiB7XG5cdFx0W2tleSBpbiBrZXlvZiBTXTogU1trZXldXG5cdH0ge1xuXHRyZXR1cm4gJHJ1bjxFLCBULCBTPihlbnRpdHksIEN0b3IsIGFyZ3MpO1xufTtcblxuLy8gVE9ETzogY2FsbCB0eXBlIC5ieSBpbnN0YW5jZSAud2l0aCBhcmd1bWVudHNcbmV4cG9ydCBjb25zdCBjYWxsID0gZnVuY3Rpb24gPEUgZXh0ZW5kcyBvYmplY3QsIFQgZXh0ZW5kcyBvYmplY3QsIFMgZXh0ZW5kcyBQcm90bzxFLCBUPj4oXG5cdGVudGl0eTogRSxcblx0Q3RvcjogSURFRjxUPixcblx0Li4uYXJnczogdW5rbm93bltdXG4pOiB7XG5cdFx0W2tleSBpbiBrZXlvZiBTXTogU1trZXldXG5cdH0ge1xuXHRyZXR1cm4gJHJ1bjxFLCBULCBTPihlbnRpdHksIEN0b3IsIGFyZ3MpO1xufTtcblxuLy8gVE9ETzogYmluZCB0eXBlIC53aXRoIGluc3RhbmNlIOKGkiAoLi4uYXJncylcbmV4cG9ydCBjb25zdCBiaW5kID0gZnVuY3Rpb24gPEUgZXh0ZW5kcyBvYmplY3QsIFQgZXh0ZW5kcyBvYmplY3QsIFMgZXh0ZW5kcyBQcm90bzxFLCBUPj4oXG5cdGVudGl0eTogRSxcblx0Q3RvcjogSURFRjxUPlxuKTogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuXHRba2V5IGluIGtleW9mIFNdOiBTW2tleV1cbn0ge1xuXHRyZXR1cm4gKC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuXHRcdHJldHVybiAkcnVuPEUsIFQsIFM+KGVudGl0eSwgQ3RvciwgYXJncyk7XG5cdH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVjb3JhdGUgPSBmdW5jdGlvbiA8XG5cdFQgZXh0ZW5kcyBDb25zdHJ1Y3RvcjxvYmplY3Q+IHwgY29uc3RydWN0b3JPcHRpb25zIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4+KFxuXHR0YXJnZXQ/OiBULFxuXHRjb25maWc/OiBjb25zdHJ1Y3Rvck9wdGlvbnNcbik6IDxVIGV4dGVuZHMgQ29uc3RydWN0b3I8b2JqZWN0Pj4oY3N0cjogVSkgPT4gRGVjb3JhdGVkQ2xhc3M8VT4ge1xuXHRjb25zdCBvcHRzID0gKGNvbmZpZyA9PT0gdW5kZWZpbmVkICYmIHR5cGVvZiB0YXJnZXQgPT09ICdvYmplY3QnICYmICEodGFyZ2V0IGluc3RhbmNlb2YgRnVuY3Rpb24pKVxuXHRcdD8gdGFyZ2V0IGFzIGNvbnN0cnVjdG9yT3B0aW9uc1xuXHRcdDogY29uZmlnO1xuXG5cdGNvbnN0IHBhcmVudFR5cGUgPSAodGFyZ2V0IGluc3RhbmNlb2YgRnVuY3Rpb24pXG5cdFx0PyB0YXJnZXQgYXMgQ29uc3RydWN0b3I8b2JqZWN0PlxuXHRcdDogdW5kZWZpbmVkO1xuXG5cdGNvbnN0IGRlY29yYXRvciA9IGZ1bmN0aW9uIDxVIGV4dGVuZHMgQ29uc3RydWN0b3I8b2JqZWN0Pj4oY3N0cjogVSk6IERlY29yYXRlZENsYXNzPFU+IHtcblx0XHRjb25zdCB7IG5hbWUgfSA9IGNzdHI7XG5cdFx0aWYgKHBhcmVudFR5cGUgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cmV0dXJuIGRlZmluZShuYW1lLCBjc3RyIGFzIElERUY8b2JqZWN0Piwgb3B0cykgYXMgdW5rbm93biBhcyBEZWNvcmF0ZWRDbGFzczxVPjtcblx0XHR9XG5cdFx0Y29uc3QgcGFyZW50ID0gcGFyZW50VHlwZSBhcyB1bmtub3duIGFzIHtcblx0XHRcdGRlZmluZTogVHlwZUFic29yYmVyO1xuXHRcdH07XG5cdFx0cmV0dXJuIHBhcmVudC5kZWZpbmUobmFtZSwgY3N0ciBhcyBJREVGPG9iamVjdD4sIG9wdHMpIGFzIHVua25vd24gYXMgRGVjb3JhdGVkQ2xhc3M8VT47XG5cdH07XG5cdHJldHVybiBkZWNvcmF0b3I7XG59O1xuXG5cbmV4cG9ydCBjb25zdCByZWdpc3Rlckhvb2sgPSBmdW5jdGlvbiA8VCBleHRlbmRzIENvbnN0cnVjdG9yPFQ+PihDdG9yOiBEZWNvcmF0ZWRDbGFzczxUPiwgaG9va1R5cGU6IGhvb2tzVHlwZXMsIGNiOiBob29rKTogdm9pZCB7XG5cdEN0b3IucmVnaXN0ZXJIb29rKGhvb2tUeXBlLCBjYik7XG59O1xuXG5leHBvcnQgY29uc3QgbW5lbW9uaWNhID0gT2JqZWN0LmVudHJpZXMoe1xuXG5cdGRlZmluZSxcblx0bG9va3VwLFxuXHRhcHBseSxcblx0Y2FsbCxcblx0YmluZCxcblx0ZGVjb3JhdGUsXG5cdHJlZ2lzdGVySG9vayxcblxuXHQuLi5kZXNjcmlwdG9ycyxcblxuXHQuLi5lcnJvcnNBcGksXG5cdC4uLmNvbnN0YW50cyxcblxufSkucmVkdWNlKChhY2M6IHsgW2luZGV4OiBzdHJpbmddOiB1bmtub3duIH0sIGVudHJ5OiBbc3RyaW5nLCB1bmtub3duXSkgPT4ge1xuXHRjb25zdCBbIG5hbWUsIGNvZGUgXSA9IGVudHJ5O1xuXHRvZHAoYWNjLCBuYW1lLCB7XG5cdFx0Z2V0KCkge1xuXHRcdFx0cmV0dXJuIGNvZGU7XG5cdFx0fSxcblx0XHRlbnVtZXJhYmxlIDogdHJ1ZVxuXHR9KTtcblx0cmV0dXJuIGFjYztcbn0sIHt9KSBhcyBNbmVtb25pY2FNb2R1bGU7XG5cbmltcG9ydCAqIGFzIGFwaSBmcm9tICcuL2FwaSc7XG5cbmV4cG9ydCBjb25zdCB7XG5cdGRlZmluZTogX2RlZmluZSxcblx0bG9va3VwOiBfbG9va3VwXG59ID0gYXBpLnR5cGVzO1xuXG5leHBvcnQgY29uc3Qge1xuXG5cdFN5bWJvbFBhcmVudFR5cGUsXG5cdFN5bWJvbENvbnN0cnVjdG9yTmFtZSxcblx0U3ltYm9sRGVmYXVsdFR5cGVzQ29sbGVjdGlvbixcblx0U3ltYm9sQ29uZmlnLFxuXHRNTkVNT05JQ0EsXG5cdE1ORU1PU1lORSxcblx0VFlQRV9USVRMRV9QUkVGSVgsXG5cdEVycm9yTWVzc2FnZXMsXG5cbn0gPSBtbmVtb25pY2E7XG5cbi8vIEV4cG9ydCBjcmVhdGVUeXBlc0NvbGxlY3Rpb24gd2l0aCBwcm9wZXIgdHlwZVxuZXhwb3J0IGNvbnN0IGNyZWF0ZVR5cGVzQ29sbGVjdGlvbjogQ3JlYXRlVHlwZXNDb2xsZWN0aW9uRnVuY3Rpb24gPSBtbmVtb25pY2EuY3JlYXRlVHlwZXNDb2xsZWN0aW9uIGFzIENyZWF0ZVR5cGVzQ29sbGVjdGlvbkZ1bmN0aW9uO1xuXG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0Q29sbGVjdGlvbiA9IChkZWZhdWx0VHlwZXMgYXMgeyBzdWJ0eXBlczogTWFwPHN0cmluZywgb2JqZWN0PiB9KS5zdWJ0eXBlcztcbmV4cG9ydCBjb25zdCBlcnJvcnMgPSBkZXNjcmlwdG9ycy5FcnJvcnNUeXBlcztcblxuZXhwb3J0IHsgdXRpbHMgfSBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCB7IGRlZmluZVN0YWNrQ2xlYW5lciB9IGZyb20gJy4vdXRpbHMnO1xuLyogZXNsaW50LWVuYWJsZSBzcGFjZS1iZWZvcmUtZnVuY3Rpb24tcGFyZW4gKi9cbiJdfQ==
|