@decaf-ts/decoration 0.0.22 → 0.0.23
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 +19 -1
- package/dist/decoration.cjs +2 -2
- package/dist/decoration.esm.cjs +2 -2
- package/lib/constants.cjs +0 -1
- package/lib/decoration/Decoration.cjs +0 -1
- package/lib/decoration/index.cjs +0 -1
- package/lib/decoration/types.cjs +0 -1
- package/lib/decorators.cjs +0 -1
- package/lib/esm/constants.js +0 -1
- package/lib/esm/decoration/Decoration.js +0 -1
- package/lib/esm/decoration/index.js +0 -1
- package/lib/esm/decoration/types.js +0 -1
- package/lib/esm/decorators.js +0 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -2
- package/lib/esm/metadata/Metadata.js +0 -1
- package/lib/esm/metadata/index.js +0 -1
- package/lib/esm/metadata/types.js +0 -1
- package/lib/index.cjs +1 -2
- package/lib/index.d.ts +1 -1
- package/lib/metadata/Metadata.cjs +0 -1
- package/lib/metadata/index.cjs +0 -1
- package/lib/metadata/types.cjs +0 -1
- package/package.json +11 -24
package/lib/esm/decorators.js
CHANGED
|
@@ -186,4 +186,3 @@ export function description(desc) {
|
|
|
186
186
|
})
|
|
187
187
|
.apply();
|
|
188
188
|
}
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsK0JBQTRCO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsdUJBQW9CO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUNBQWdDO0FBRXJEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFXLEVBQUUsS0FBVTtJQUM5QyxPQUFPLFNBQVMsUUFBUSxDQUN0QixLQUFVLEVBRVYsSUFBVTtJQUNWLDZEQUE2RDtJQUM3RCxVQUF3QztRQUV4QyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLElBQUk7SUFDbEIsU0FBUyxTQUFTO1FBQ2hCLE9BQU8sU0FBUyxTQUFTLENBQUMsS0FBYSxFQUFFLElBQVU7WUFDakQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FDdkMsY0FBYyxDQUFDLFdBQVcsRUFDMUIsS0FBSyxFQUNMLElBQUksQ0FDTCxDQUFDO1lBQ0YsT0FBTyxRQUFRLENBQ2IsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUM3QyxVQUFVLENBQ1gsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO1NBQzdDLE1BQU0sQ0FBQztRQUNOLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLElBQUksRUFBRSxFQUFF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QztRQUNOLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDO0tBQ2IsQ0FBQztTQUNELEtBQUssRUFBRSxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSBcIi4vbWV0YWRhdGEvTWV0YWRhdGFcIjtcbmltcG9ydCB7IERlY29yYXRpb25LZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBEZWNvcmF0aW9uIH0gZnJvbSBcIi4vZGVjb3JhdGlvbi9EZWNvcmF0aW9uXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEFzc2lnbnMgYXJiaXRyYXJ5IG1ldGFkYXRhIHRvIGEgdGFyZ2V0IHVzaW5nIGEgc3RyaW5nIGtleS5cbiAqIEBzdW1tYXJ5IERlY29yYXRvciBmYWN0b3J5IHRoYXQgc3RvcmVzIGEga2V5L3ZhbHVlIHBhaXIgaW4gdGhlIGNlbnRyYWwgbWV0YWRhdGEgc3RvcmUgZm9yIHRoZSBwcm92aWRlZCBjbGFzcyBvciBtZW1iZXIuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IE1ldGFkYXRhIGtleSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgdGFyZ2V0LlxuICogQHBhcmFtIHthbnl9IHZhbHVlIE1ldGFkYXRhIHZhbHVlIHRvIHN0b3JlIHVuZGVyIHRoZSBnaXZlbiBrZXkuXG4gKiBAcmV0dXJuIHtDbGFzc0RlY29yYXRvcnxNZXRob2REZWNvcmF0b3J8UHJvcGVydHlEZWNvcmF0b3J8UGFyYW1ldGVyRGVjb3JhdG9yfSBEZWNvcmF0b3IgdGhhdCB3cml0ZXMgdGhlIG1ldGFkYXRhIHdoZW4gYXBwbGllZC5cbiAqIEBmdW5jdGlvbiBtZXRhZGF0YVxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ldGFkYXRhKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gIHJldHVybiBmdW5jdGlvbiBtZXRhZGF0YShcbiAgICBtb2RlbDogYW55LFxuXG4gICAgcHJvcD86IGFueSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgZGVzY3JpcHRvcj86IFByb3BlcnR5RGVzY3JpcHRvciB8IG51bWJlclxuICApIHtcbiAgICBNZXRhZGF0YS5zZXQocHJvcCA/IG1vZGVsLmNvbnN0cnVjdG9yIDogbW9kZWwsIGtleSwgdmFsdWUpO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDYXB0dXJlcyBhbmQgc3RvcmVzIGEgcHJvcGVydHkncyBkZXNpZ24gdHlwZS5cbiAqIEBzdW1tYXJ5IERlY29yYXRvciBmYWN0b3J5IHRoYXQgcmVhZHMgdGhlIHJlZmxlY3RlZCBgZGVzaWduOnR5cGVgIGZvciBhIHByb3BlcnR5IGFuZCByZWdpc3RlcnMgaXQgaW4gdGhlIG1ldGFkYXRhIHN0b3JlIHVuZGVyIHRoZSBwcm9wZXJ0aWVzIG1hcC5cbiAqIEByZXR1cm4ge1Byb3BlcnR5RGVjb3JhdG9yfSBEZWNvcmF0b3IgdGhhdCByZWNvcmRzIHRoZSBwcm9wZXJ0eSdzIHR5cGUgbWV0YWRhdGEgd2hlbiBhcHBsaWVkLlxuICogQGZ1bmN0aW9uIHByb3BcbiAqIEBjYXRlZ29yeSBQcm9wZXJ0eSBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9wKCkge1xuICBmdW5jdGlvbiBpbm5lclByb3AoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGlubmVyUHJvcChtb2RlbDogb2JqZWN0LCBwcm9wPzogYW55KSB7XG4gICAgICBjb25zdCBkZXNpZ25UeXBlID0gUmVmbGVjdC5nZXRPd25NZXRhZGF0YShcbiAgICAgICAgRGVjb3JhdGlvbktleXMuREVTSUdOX1RZUEUsXG4gICAgICAgIG1vZGVsLFxuICAgICAgICBwcm9wXG4gICAgICApO1xuICAgICAgcmV0dXJuIG1ldGFkYXRhKFxuICAgICAgICBNZXRhZGF0YS5rZXkoRGVjb3JhdGlvbktleXMuUFJPUEVSVElFUywgcHJvcCksXG4gICAgICAgIGRlc2lnblR5cGVcbiAgICAgICkobW9kZWwsIHByb3ApO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gRGVjb3JhdGlvbi5mb3IoRGVjb3JhdGlvbktleXMuUFJPUEVSVElFUylcbiAgICAuZGVmaW5lKHtcbiAgICAgIGRlY29yYXRvcjogaW5uZXJQcm9wLFxuICAgICAgYXJnczogW10sXG4gICAgfSlcbiAgICAuYXBwbHkoKTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ2FwdHVyZXMgYSBzaW5nbGUgcGFyYW1ldGVyIHR5cGUgZm9yIHRoZSBkZWNvcmF0ZWQgbWV0aG9kLlxuICogQHN1bW1hcnkgRGVjb3JhdG9yIGZhY3RvcnkgdGhhdCBlbnN1cmVzIHRoZSBtZXRob2QgbWV0YWRhdGEgaXMgaW5pdGlhbGlzZWQgYW5kIHN0b3JlcyB0aGUgcmVmbGVjdGVkIHBhcmFtZXRlciBjb25zdHJ1Y3RvciBhdCB0aGUgcHJvdmlkZWQgaW5kZXguXG4gKiBAcmV0dXJuIHtQYXJhbWV0ZXJEZWNvcmF0b3J9IERlY29yYXRvciB0aGF0IHJlY29yZHMgdGhlIHBhcmFtZXRlciB0eXBlIHdoZW4gYXBwbGllZC5cbiAqIEBmdW5jdGlvbiBwYXJhbVxuICogQGNhdGVnb3J5IFBhcmFtZXRlciBEZWNvcmF0b3JzXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IFUgYXMgVXNlciBDb2RlXG4gKiAgIHBhcnRpY2lwYW50IFAgYXMgcGFyYW0oKVxuICogICBwYXJ0aWNpcGFudCBNIGFzIE1ldGFkYXRhXG4gKiAgIFUtPj5QOiBwYXJhbSgpKHRhcmdldCwga2V5LCBpbmRleClcbiAqICAgUC0+PlU6IG1ldGhvZCgpKHRhcmdldCwga2V5LCBkZXNjcmlwdG9yKVxuICogICBQLT4+TTogcGFyYW1zKGNvbnN0cnVjdG9yLCBrZXkpXG4gKiAgIE0tLT4+UDogcGFyYW1ldGVyIGNvbnN0cnVjdG9yc1tdXG4gKiAgIFAtPj5NOiBzZXQobWV0aG9kcy5rZXkuaW5kZXgsIGNvbnN0cnVjdG9yKVxuICogICBQLS0+PlU6IHBhcmFtZXRlciByZWNvcmRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyYW0oKSB7XG4gIHJldHVybiBmdW5jdGlvbiBwYXJhbShcbiAgICBtb2RlbDogb2JqZWN0LFxuICAgIHByb3A6IHN0cmluZyB8IHN5bWJvbCB8IHVuZGVmaW5lZCxcbiAgICBpbmRleDogbnVtYmVyXG4gICkge1xuICAgIGlmICghcHJvcClcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIEBwYXJhbSBkZWNvcmF0b3IgY2FuIG9ubHkgYmUgYXBwbGllZCB0byBtZXRob2RzYCk7XG4gICAgbWV0aG9kKCkobW9kZWwsIHByb3AsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobW9kZWwsIHByb3ApKTtcbiAgICBjb25zdCBwYXJhbVRwZXMgPSBNZXRhZGF0YS5wYXJhbXMobW9kZWwuY29uc3RydWN0b3IgYXMgYW55LCBwcm9wIGFzIHN0cmluZyk7XG4gICAgaWYgKCFwYXJhbVRwZXMpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgcGFyYW1ldGVyIHR5cGVzIGZvciAke1N0cmluZyhwcm9wKX1gKTtcbiAgICBpZiAoaW5kZXggPj0gcGFyYW1UcGVzLmxlbmd0aClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFBhcmFtZXRlciBpbmRleCAke2luZGV4fSBvdXQgb2YgcmFuZ2UgZm9yICR7U3RyaW5nKHByb3ApfWBcbiAgICAgICk7XG4gICAgbWV0YWRhdGEoXG4gICAgICBNZXRhZGF0YS5rZXkoRGVjb3JhdGlvbktleXMuTUVUSE9EUywgcHJvcCBhcyBzdHJpbmcsIGluZGV4LnRvU3RyaW5nKCkpLFxuICAgICAgcGFyYW1UcGVzW2luZGV4XVxuICAgICkobW9kZWwsIHByb3ApO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFeHRlbmRzIGEgcGFyYW1ldGVyIGRlY29yYXRvciB3aXRoIGFkZGl0aW9uYWwgbWV0YWRhdGEuXG4gKiBAc3VtbWFyeSBBcHBsaWVzIHRoZSBkZWZhdWx0IGBwYXJhbSgpYCBkZWNvcmF0b3IgYW5kIGF1Z21lbnRzIHRoZSBzdG9yZWQgbWV0YWRhdGEgd2l0aCBhbiBhcmJpdHJhcnkga2V5L3ZhbHVlIHBhaXIuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IE1ldGFkYXRhIGtleSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgcGFyYW1ldGVyLlxuICogQHBhcmFtIHthbnl9IHZhbHVlIE1ldGFkYXRhIHZhbHVlIHBlcnNpc3RlZCB1bmRlciB0aGUgZ2l2ZW4ga2V5LlxuICogQHJldHVybiB7UGFyYW1ldGVyRGVjb3JhdG9yfSBEZWNvcmF0b3IgdGhhdCByZWNvcmRzIGJvdGggdGhlIHBhcmFtZXRlciBkZXNpZ24gdHlwZSBhbmQgYWRkaXRpb25hbCBtZXRhZGF0YS5cbiAqIEBmdW5jdGlvbiBwYXJhbU1ldGFkYXRhXG4gKiBAY2F0ZWdvcnkgUGFyYW1ldGVyIERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcmFtTWV0YWRhdGEoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHBhcmFtTWV0YWRhdGEodGFyZ2V0OiBhbnksIHByb3A6IGFueSwgaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBhcHBseShcbiAgICAgIHBhcmFtKCksXG4gICAgICBtZXRhZGF0YShNZXRhZGF0YS5rZXkoRGVjb3JhdGlvbktleXMuTUVUSE9EUywgcHJvcCwga2V5KSwgdmFsdWUpXG4gICAgKSh0YXJnZXQsIHByb3AsIGluZGV4KTtcbiAgfTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVjb3JkcyBtZXRob2QgZGVzaWduLXRpbWUgbWV0YWRhdGEuXG4gKiBAc3VtbWFyeSBEZWNvcmF0b3IgZmFjdG9yeSB0aGF0IGNhcHR1cmVzIGEgbWV0aG9kJ3MgcmVmbGVjdGVkIHBhcmFtZXRlciBhbmQgcmV0dXJuIHR5cGVzLCBzdG9yaW5nIHRoZW0gdW5kZXIgdGhlIGFwcHJvcHJpYXRlIG1ldGFkYXRhIGtleXMgc28gdGhleSBjYW4gYmUgaW5zcGVjdGVkIGF0IHJ1bnRpbWUuXG4gKiBAcmV0dXJuIHtNZXRob2REZWNvcmF0b3J9IERlY29yYXRvciB0aGF0IHBlcnNpc3RzIHRoZSBtZXRob2QncyBzaWduYXR1cmUgaW5mb3JtYXRpb24gaW50byB0aGUgbWV0YWRhdGEgc3RvcmUgd2hlbiBhcHBsaWVkLlxuICogQGZ1bmN0aW9uIG1ldGhvZFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBVIGFzIFVzZXIgQ29kZVxuICogICBwYXJ0aWNpcGFudCBGIGFzIG1ldGhvZCgpXG4gKiAgIHBhcnRpY2lwYW50IE0gYXMgTWV0YWRhdGFcbiAqICAgVS0+PkY6IG1ldGhvZCgpKHRhcmdldCwga2V5LCBkZXNjcmlwdG9yKVxuICogICBGLT4+VTogUmVmbGVjdC5nZXRPd25NZXRhZGF0YShkZXNpZ246cGFyYW10eXBlcylcbiAqICAgRi0+PlU6IFJlZmxlY3QuZ2V0T3duTWV0YWRhdGEoZGVzaWduOnJldHVybnR5cGUpXG4gKiAgIEYtPj5NOiBzZXQobWV0aG9kcy5rZXkuZGVzaWduOnBhcmFtdHlwZXMsIHBhcmFtcylcbiAqICAgRi0+Pk06IHNldChtZXRob2RzLmtleS5kZXNpZ246cmV0dXJudHlwZSwgcmV0dXJuVHlwZSlcbiAqICAgRi0tPj5VOiBkZWNvcmF0ZWQgZnVuY3Rpb25cbiAqIEBjYXRlZ29yeSBNZXRob2QgRGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbWV0aG9kKCkge1xuICByZXR1cm4gZnVuY3Rpb24gbWV0aG9kKG9iajogYW55LCBwcm9wPzogYW55LCBkZXNjcmlwdG9yPzogYW55KSB7XG4gICAgY29uc3QgZGVzaWduUGFyYW1zID0gUmVmbGVjdC5nZXRPd25NZXRhZGF0YShcbiAgICAgIERlY29yYXRpb25LZXlzLkRFU0lHTl9QQVJBTVMsXG4gICAgICBvYmosXG4gICAgICBwcm9wXG4gICAgKTtcbiAgICBjb25zdCBkZXNpZ25SZXR1cm4gPSBSZWZsZWN0LmdldE93bk1ldGFkYXRhKFxuICAgICAgRGVjb3JhdGlvbktleXMuREVTSUdOX1JFVFVSTixcbiAgICAgIG9iaixcbiAgICAgIHByb3BcbiAgICApO1xuICAgIHJldHVybiBhcHBseShcbiAgICAgIG1ldGFkYXRhKFxuICAgICAgICBNZXRhZGF0YS5rZXkoXG4gICAgICAgICAgRGVjb3JhdGlvbktleXMuTUVUSE9EUyxcbiAgICAgICAgICBwcm9wLFxuICAgICAgICAgIERlY29yYXRpb25LZXlzLkRFU0lHTl9QQVJBTVNcbiAgICAgICAgKSxcbiAgICAgICAgZGVzaWduUGFyYW1zXG4gICAgICApLFxuICAgICAgbWV0YWRhdGEoXG4gICAgICAgIE1ldGFkYXRhLmtleShcbiAgICAgICAgICBEZWNvcmF0aW9uS2V5cy5NRVRIT0RTLFxuICAgICAgICAgIHByb3AsXG4gICAgICAgICAgRGVjb3JhdGlvbktleXMuREVTSUdOX1JFVFVSTlxuICAgICAgICApLFxuICAgICAgICBkZXNpZ25SZXR1cm5cbiAgICAgIClcbiAgICApKG9iaiwgcHJvcCwgZGVzY3JpcHRvcik7XG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciBmYWN0b3J5IHRoYXQgYXBwbGllcyBtdWx0aXBsZSBkZWNvcmF0b3JzIHRvIGEgc2luZ2xlIHRhcmdldC5cbiAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBjb21wb3NpdGUgZGVjb3JhdG9yIHRoYXQgYXBwbGllcyBtdWx0aXBsZSBkZWNvcmF0b3JzIGluIHNlcXVlbmNlLCBjb3JyZWN0bHkgaGFuZGxpbmcgY2xhc3MsIG1ldGhvZCwgcHJvcGVydHksIGFuZCBwYXJhbWV0ZXIgZGVjb3JhdG9ycy5cbiAqIEBwYXJhbSB7QXJyYXk8Q2xhc3NEZWNvcmF0b3J8TWV0aG9kRGVjb3JhdG9yfFByb3BlcnR5RGVjb3JhdG9yfFBhcmFtZXRlckRlY29yYXRvcj59IGRlY29yYXRvcnMgQ29sbGVjdGlvbiBvZiBkZWNvcmF0b3JzIHRvIGFwcGx5LlxuICogQHJldHVybiB7Q2xhc3NEZWNvcmF0b3J8TWV0aG9kRGVjb3JhdG9yfFByb3BlcnR5RGVjb3JhdG9yfFBhcmFtZXRlckRlY29yYXRvcn0gRGVjb3JhdG9yIGZ1bmN0aW9uIHRoYXQgYXBwbGllcyBhbGwgcHJvdmlkZWQgZGVjb3JhdG9ycyB0byB0aGUgdGFyZ2V0LlxuICogQGZ1bmN0aW9uIGFwcGx5XG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IFUgYXMgVXNlciBDb2RlXG4gKiAgIHBhcnRpY2lwYW50IEEgYXMgYXBwbHkoLi4uZGVjb3JhdG9ycylcbiAqICAgcGFydGljaXBhbnQgRCBhcyBEZWNvcmF0b3JcbiAqICAgVS0+PkE6IGdldCBkZWNvcmF0b3IoLi4uZGVjb3JhdG9ycylcbiAqICAgQS0+PlU6IHJldHVybnMgKHRhcmdldCwga2V5PywgZGVzYz8pID0+IHZvaWRcbiAqICAgVS0+PkE6IGludm9rZSBvbiB0YXJnZXRcbiAqICAgbG9vcCBmb3IgZWFjaCBkZWNvcmF0b3JcbiAqICAgICBBLT4+RDogaW52b2tlIGFwcHJvcHJpYXRlIGRlY29yYXRvciB0eXBlXG4gKiAgIGVuZFxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5KFxuICAuLi5kZWNvcmF0b3JzOiBBcnJheTxcbiAgICBDbGFzc0RlY29yYXRvciB8IE1ldGhvZERlY29yYXRvciB8IFByb3BlcnR5RGVjb3JhdG9yIHwgUGFyYW1ldGVyRGVjb3JhdG9yXG4gID5cbikge1xuICByZXR1cm4gKFxuICAgIHRhcmdldDogb2JqZWN0LFxuICAgIHByb3BlcnR5S2V5Pzogc3RyaW5nIHwgc3ltYm9sIHwgdW5rbm93bixcbiAgICBkZXNjcmlwdG9yPzogUHJvcGVydHlEZXNjcmlwdG9yIHwgbnVtYmVyXG4gICkgPT4ge1xuICAgIGZvciAoY29uc3QgZGVjb3JhdG9yIG9mIGRlY29yYXRvcnMpIHtcbiAgICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBGdW5jdGlvbiAmJiAhZGVzY3JpcHRvcikge1xuICAgICAgICAoZGVjb3JhdG9yIGFzIENsYXNzRGVjb3JhdG9yKSh0YXJnZXQpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIChkZWNvcmF0b3IgYXMgTWV0aG9kRGVjb3JhdG9yIHwgUHJvcGVydHlEZWNvcmF0b3IpKFxuICAgICAgICB0YXJnZXQsXG4gICAgICAgIHByb3BlcnR5S2V5IGFzIHN0cmluZyB8IHN5bWJvbCxcbiAgICAgICAgZGVzY3JpcHRvciBhcyBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjx1bmtub3duPlxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBwcm9wZXJ0eSBtZXRhZGF0YSBkZWNvcmF0b3IuXG4gKiBAc3VtbWFyeSBDb252ZW5pZW5jZSBmYWN0b3J5IHRoYXQgY29tYmluZXMgYG1ldGFkYXRhKGtleSwgdmFsdWUpYCBhbmQgYHByb3AoKWAgdG8gYm90aCBzZXQgYW4gYXJiaXRyYXJ5IG1ldGFkYXRhIGtleSBhbmQgcmVjb3JkIHRoZSBwcm9wZXJ0eSdzIGRlc2lnbiB0eXBlLlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBNZXRhZGF0YSBrZXkgdG8gc2V0IGZvciB0aGUgcHJvcGVydHkuXG4gKiBAcGFyYW0ge2FueX0gdmFsdWUgTWV0YWRhdGEgdmFsdWUgdG8gYXNzb2NpYXRlIHdpdGggdGhlIGtleS5cbiAqIEByZXR1cm4ge1Byb3BlcnR5RGVjb3JhdG9yfSBEZWNvcmF0b3IgdGhhdCBzZXRzIHRoZSBtZXRhZGF0YSBhbmQgY2FwdHVyZXMgdGhlIHByb3BlcnR5J3MgdHlwZS5cbiAqIEBmdW5jdGlvbiBwcm9wTWV0YWRhdGFcbiAqIEBjYXRlZ29yeSBQcm9wZXJ0eSBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9wTWV0YWRhdGEoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuIGFwcGx5KG1ldGFkYXRhKGtleSwgdmFsdWUpLCBwcm9wKCkpO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbWV0aG9kIG1ldGFkYXRhIGRlY29yYXRvci5cbiAqIEBzdW1tYXJ5IENvbnZlbmllbmNlIGZhY3RvcnkgdGhhdCBjb21iaW5lcyBgbWV0YWRhdGEoa2V5LCB2YWx1ZSlgIGFuZCBgbWV0aG9kKClgIHRvIGJvdGggc2V0IGFuIGFyYml0cmFyeSBtZXRhZGF0YSBrZXkgYW5kIHJlY29yZCB0aGUgbWV0aG9kJ3MgZGVzaWduIHJldHVybiBhbmQgcGFyYW0gdHlwZXMuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IE1ldGFkYXRhIGtleSB0byBzZXQgZm9yIHRoZSBwcm9wZXJ0eS5cbiAqIEBwYXJhbSB7YW55fSB2YWx1ZSBNZXRhZGF0YSB2YWx1ZSB0byBhc3NvY2lhdGUgd2l0aCB0aGUga2V5LlxuICogQHJldHVybiB7TWV0aG9kRGVjb3JhdG9yfSBEZWNvcmF0b3IgdGhhdCBzZXRzIHRoZSBtZXRhZGF0YSBhbmQgY2FwdHVyZXMgdGhlIG1ldGhvZCdzIHNpZ25hdHVyZSBtZXRhZGF0YS5cbiAqIEBmdW5jdGlvbiBtZXRob2RNZXRhZGF0YVxuICogQGNhdGVnb3J5IE1ldGhvZCBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXRob2RNZXRhZGF0YShrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICByZXR1cm4gYXBwbHkobWV0YWRhdGEoa2V5LCB2YWx1ZSksIG1ldGhvZCgpKTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQXR0YWNoZXMgYSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiB0byBhIGNsYXNzIG9yIG1lbWJlci5cbiAqIEBzdW1tYXJ5IERlY29yYXRvciBmYWN0b3J5IHRoYXQgc3RvcmVzIGEgdGV4dHVhbCBkZXNjcmlwdGlvbiBpbiB0aGUgbWV0YWRhdGEgc3RvcmUgdW5kZXIgdGhlIGFwcHJvcHJpYXRlIGRlc2NyaXB0aW9uIGtleSBmb3IgYSBjbGFzcyBvciBpdHMgcHJvcGVydHkuXG4gKiBAcGFyYW0ge3N0cmluZ30gZGVzYyBEZXNjcmlwdGl2ZSB0ZXh0IHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBjbGFzcyBvciBwcm9wZXJ0eS5cbiAqIEByZXR1cm4ge0NsYXNzRGVjb3JhdG9yfE1ldGhvZERlY29yYXRvcnxQcm9wZXJ0eURlY29yYXRvcn0gRGVjb3JhdG9yIHRoYXQgcmVjb3JkcyB0aGUgZGVzY3JpcHRpb24gd2hlbiBhcHBsaWVkLlxuICogQGZ1bmN0aW9uIGRlc2NyaXB0aW9uXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yc1xuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmlwdGlvbihkZXNjOiBzdHJpbmcpIHtcbiAgZnVuY3Rpb24gaW5uZXJEZXNjcmlwdGlvbihkZXNjOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gaW5uZXJEZXNjcmlwdGlvbihcbiAgICAgIG9yaWdpbmFsOiBhbnksXG4gICAgICBwcm9wPzogYW55LFxuICAgICAgZGVzY3JpcHRvcj86IGFueVxuICAgICkge1xuICAgICAgcmV0dXJuIG1ldGFkYXRhKFxuICAgICAgICBbXG4gICAgICAgICAgRGVjb3JhdGlvbktleXMuREVTQ1JJUFRJT04sXG4gICAgICAgICAgcHJvcCA/IHByb3AudG9TdHJpbmcoKSA6IERlY29yYXRpb25LZXlzLkNMQVNTLFxuICAgICAgICBdLmpvaW4oTWV0YWRhdGEuc3BsaXR0ZXIpLFxuICAgICAgICBkZXNjXG4gICAgICApKG9yaWdpbmFsLCBwcm9wLCBkZXNjcmlwdG9yKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIERlY29yYXRpb24uZm9yKERlY29yYXRpb25LZXlzLkRFU0NSSVBUSU9OKVxuICAgIC5kZWZpbmUoe1xuICAgICAgZGVjb3JhdG9yOiBpbm5lckRlc2NyaXB0aW9uLFxuICAgICAgYXJnczogW2Rlc2NdLFxuICAgIH0pXG4gICAgLmFwcGx5KCk7XG59XG4iXX0=
|
package/lib/esm/index.d.ts
CHANGED
package/lib/esm/index.js
CHANGED
|
@@ -15,6 +15,5 @@ export * from "./decorators.js";
|
|
|
15
15
|
* @const VERSION
|
|
16
16
|
* @memberOf module:decoration
|
|
17
17
|
*/
|
|
18
|
-
export const VERSION = "0.0.
|
|
18
|
+
export const VERSION = "0.0.22";
|
|
19
19
|
Metadata.registerLibrary("@decaf-ts/decoration", VERSION);
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsNEJBQXlCO0FBRTVDLHNDQUE2QjtBQUM3QixvQ0FBMkI7QUFDM0IsK0JBQTRCO0FBQzVCLGdDQUE2QjtBQUU3Qjs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDO0FBRXJDLFFBQVEsQ0FBQyxlQUFlLENBQUMsc0JBQXNCLEVBQUUsT0FBTyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbiBSb290IGVudHJ5IHBvaW50IGZvciB0aGUgZGVjb3JhdGlvbiBwYWNrYWdlLlxuICogQHN1bW1hcnkgUmUtZXhwb3J0cyB0aGUgYnVpbGRlciBBUEksIGRlY29yYXRvciBoZWxwZXJzLCBtZXRhZGF0YSB1dGlsaXRpZXMsIGFuZCBzaGFyZWQgY29uc3RhbnRzIHNvIGNvbnN1bWVycyBjYW4gaW1wb3J0IHtAbGluayBEZWNvcmF0aW9ufSwge0BsaW5rIE1ldGFkYXRhfSwge0BsaW5rIERlY29yYXRpb25LZXlzfSwgYW5kIHtAbGluayBEZWZhdWx0Rmxhdm91cn0gZnJvbSBhIHNpbmdsZSBzdXJmYWNlLlxuICogQG1vZHVsZSBkZWNvcmF0aW9uXG4gKi9cblxuaW1wb3J0IHsgTWV0YWRhdGEgfSBmcm9tIFwiLi9tZXRhZGF0YS9pbmRleFwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tZXRhZGF0YVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGVjb3JhdGlvbiBwYWNrYWdlLlxuICogQHN1bW1hcnkgU3RvcmVzIHRoZSBzZW1hbnRpYyB2ZXJzaW9uIHN0cmluZyByZWdpc3RlcmVkIHRocm91Z2gge0BsaW5rIE1ldGFkYXRhLnJlZ2lzdGVyTGlicmFyeX0uXG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdGlvblxuICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IFwiIyNWRVJTSU9OIyNcIjtcblxuTWV0YWRhdGEucmVnaXN0ZXJMaWJyYXJ5KFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIiwgVkVSU0lPTik7XG4iXX0=
|
|
@@ -434,4 +434,3 @@ export class Metadata {
|
|
|
434
434
|
return strs.join(this.splitter);
|
|
435
435
|
}
|
|
436
436
|
}
|
|
437
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWV0YWRhdGEvTWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSwwQkFBcUI7QUFDakUsT0FBTyxrQkFBa0IsQ0FBQztBQUUxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLEdBQXdCLEVBQ3hCLElBQVksRUFDWixXQUFtQixpQkFBaUI7SUFFcEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFFbEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUNFLE9BQU8sS0FBSyxJQUFJO1lBQ2hCLE9BQU8sS0FBSyxTQUFTO1lBQ3JCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7WUFFbkQsT0FBTyxTQUFTLENBQUM7UUFDbkIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxHQUF3QixFQUN4QixJQUFZLEVBQ1osS0FBVSxFQUNWLFFBQVEsR0FBRyxpQkFBaUI7SUFFNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUQsSUFBSSxJQUFJLENBQUMsTUFBTSxL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OUIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFlLEVBQUUsT0FBZTtRQUNyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzQyxJQUFJLEdBQUc7WUFDTCxNQUFNLElBQUksS0FBSyxDQUNiLG1CQUFtQixPQUFPLDRCQUE0QixPQUFPLEVBQUUsQ0FDaEUsQ0FBQztRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTO1FBQ2QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBYztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNpY01ldGFkYXRhLCBDb25zdHJ1Y3RvciB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBEZWNvcmF0aW9uS2V5cywgT2JqZWN0S2V5U3BsaXR0ZXIgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgXCJyZWZsZWN0LW1ldGFkYXRhXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyBhIG5lc3RlZCB2YWx1ZSBmcm9tIGFuIG9iamVjdCBnaXZlbiBhIHBhdGguXG4gKiBAc3VtbWFyeSBXYWxrcyBhbiBvYmplY3Qgc3RydWN0dXJlIHVzaW5nIGEgc3BsaXR0ZXItZGVsaW1pdGVkIHBhdGggYW5kIHJldHVybnMgdGhlIHZhbHVlIGF0IHRoYXQgbG9jYXRpb24gb3IgYHVuZGVmaW5lZGAgaWYgYW55IGtleSBpcyBtaXNzaW5nLlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBvYmogT2JqZWN0IHRvIHRyYXZlcnNlIGZvciB0aGUgbG9va3VwLlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGggU3BsaXR0ZXItZGVsaW1pdGVkIHBhdGggdG8gdGhlIGRlc2lyZWQgdmFsdWUgKGUuZy4sIFwiYS5iLmNcIikuXG4gKiBAcGFyYW0ge3N0cmluZ30gW3NwbGl0dGVyPU9iamVjdEtleVNwbGl0dGVyXSBEZWxpbWl0ZXIgdXNlZCB0byBzZXBhcmF0ZSB0aGUgcGF0aCBzZWdtZW50cy5cbiAqIEByZXR1cm4ge2FueXx1bmRlZmluZWR9IFZhbHVlIHJlc29sdmVkIGF0IHRoZSBnaXZlbiBwYXRoIG9yIGB1bmRlZmluZWRgIHdoZW4gbm90IGZvdW5kLlxuICogQGZ1bmN0aW9uIGdldFZhbHVlQnlTcGxpdHRlclxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDIGFzIENhbGxlclxuICogICBwYXJ0aWNpcGFudCBGIGFzIGdldFZhbHVlQnlTcGxpdHRlclxuICogICBwYXJ0aWNpcGFudCBPIGFzIE9iamVjdFxuICogICBDLT4+RjogKG9iaiwgcGF0aCwgc3BsaXR0ZXIpXG4gKiAgIEYtPj5GOiBzcGxpdCBwYXRoIGludG8ga2V5c1xuICogICBsb29wIGZvciBlYWNoIGtleVxuICogICAgIEYtPj5POiBhY2Nlc3MgY3VycmVudFtrZXldXG4gKiAgICAgYWx0IG1pc3Npbmcgb3IgbnVsbGlzaFxuICogICAgICAgRi0tPj5DOiByZXR1cm4gdW5kZWZpbmVkXG4gKiAgICAgZW5kXG4gKiAgIGVuZFxuICogICBGLS0+PkM6IHJldHVybiBmaW5hbCB2YWx1ZVxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWx1ZUJ5U3BsaXR0ZXIoXG4gIG9iajogUmVjb3JkPHN0cmluZywgYW55PixcbiAgcGF0aDogc3RyaW5nLFxuICBzcGxpdHRlcjogc3RyaW5nID0gT2JqZWN0S2V5U3BsaXR0ZXJcbik6IGFueSB7XG4gIGNvbnN0IGtleXMgPSBwYXRoLnNwbGl0KHNwbGl0dGVyKTtcbiAgbGV0IGN1cnJlbnQgPSBvYmo7XG5cbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIGlmIChcbiAgICAgIGN1cnJlbnQgPT09IG51bGwgfHxcbiAgICAgIGN1cnJlbnQgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjdXJyZW50LCBrZXkpXG4gICAgKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjdXJyZW50ID0gY3VycmVudFtrZXldO1xuICB9XG5cbiAgcmV0dXJuIGN1cnJlbnQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFNldHMgYSBuZXN0ZWQgdmFsdWUgb24gYW4gb2JqZWN0IGdpdmVuIGEgcGF0aC5cbiAqIEBzdW1tYXJ5IFRyYXZlcnNlcyBvciBjcmVhdGVzIGludGVybWVkaWF0ZSBvYmplY3RzIGZvbGxvd2luZyBhIHNwbGl0dGVyLWRlbGltaXRlZCBwYXRoIGFuZCBhc3NpZ25zIHRoZSBwcm92aWRlZCB2YWx1ZSBhdCB0aGUgZGVzdGluYXRpb24ga2V5LlxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBvYmogT2JqZWN0IHRvIG11dGF0ZSB3aGlsZSBkcmlsbGluZyBpbnRvIG5lc3RlZCBrZXlzLlxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGggU3BsaXR0ZXItZGVsaW1pdGVkIGRlc3RpbmF0aW9uIHBhdGggKGUuZy4sIFwiYS5iLmNcIikuXG4gKiBAcGFyYW0ge2FueX0gdmFsdWUgVmFsdWUgdG8gc2V0IGF0IHRoZSBkZXN0aW5hdGlvbiBub2RlLlxuICogQHBhcmFtIHtzdHJpbmd9IFtzcGxpdHRlcj1PYmplY3RLZXlTcGxpdHRlcl0gRGVsaW1pdGVyIHVzZWQgdG8gc2VwYXJhdGUgdGhlIHBhdGggc2VnbWVudHMuXG4gKiBAcmV0dXJuIHt2b2lkfVxuICogQGZ1bmN0aW9uIHNldFZhbHVlQnlTcGxpdHRlclxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDIGFzIENhbGxlclxuICogICBwYXJ0aWNpcGFudCBGIGFzIHNldFZhbHVlQnlTcGxpdHRlclxuICogICBwYXJ0aWNpcGFudCBPIGFzIE9iamVjdFxuICogICBDLT4+RjogKG9iaiwgcGF0aCwgdmFsdWUsIHNwbGl0dGVyKVxuICogICBGLT4+Rjogc3BsaXQgcGF0aCBpbnRvIGtleXNcbiAqICAgbG9vcCBmb3IgZWFjaCBrZXlcbiAqICAgICBhbHQga2V5IG1pc3NpbmdcbiAqICAgICAgIEYtPj5POiBjcmVhdGUgaW50ZXJtZWRpYXRlIG9iamVjdFxuICogICAgIGVsc2Uga2V5IGV4aXN0c1xuICogICAgICAgRi0+Pk86IGRlc2NlbmQgaW50byBleGlzdGluZyBvYmplY3RcbiAqICAgICBlbmRcbiAqICAgZW5kXG4gKiAgIEYtLT4+Qzogdm9pZFxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRWYWx1ZUJ5U3BsaXR0ZXIoXG4gIG9iajogUmVjb3JkPHN0cmluZywgYW55PixcbiAgcGF0aDogc3RyaW5nLFxuICB2YWx1ZTogYW55LFxuICBzcGxpdHRlciA9IE9iamVjdEtleVNwbGl0dGVyXG4pOiB2b2lkIHtcbiAgY29uc3Qga2V5cyA9IHBhdGguc3BsaXQoc3BsaXR0ZXIpLmZpbHRlcigoaykgPT4gay5sZW5ndGggPiAwKTtcbiAgaWYgKGtleXMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgbGV0IGN1cnJlbnQ6IFJlY29yZDxhbnksIGFueT4gPSBvYmo7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgIGNvbnN0IGtleSA9IGtleXNbaV07XG4gICAgaWYgKFxuICAgICAgY3VycmVudFtrZXldID09PSB1bmRlZmluZWQgfHxcbiAgICAgIGN1cnJlbnRba2V5XSA9PT0gbnVsbCB8fFxuICAgICAgdHlwZW9mIGN1cnJlbnRba2V5XSAhPT0gXCJvYmplY3RcIlxuICAgICkge1xuICAgICAgY3VycmVudFtrZXldID0ge307XG4gICAgfVxuICAgIGN1cnJlbnQgPSBjdXJyZW50W2tleV07XG4gIH1cblxuICBjb25zdCBsYXN0S2V5ID0ga2V5c1trZXlzLmxlbmd0aCAtIDFdO1xuICBjdXJyZW50W2xhc3RLZXldID0gdmFsdWU7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENlbnRyYWxpemVkIHJ1bnRpbWUgbWV0YWRhdGEgc3RvcmUgYm91bmQgdG8gY29uc3RydWN0b3JzLlxuICogQHN1bW1hcnkgUHJvdmlkZXMgdXRpbGl0aWVzIHRvIHJlYWQgYW5kIHdyaXRlIHN0cnVjdHVyZWQgbWV0YWRhdGEgZm9yIGNsYXNzZXMgYW5kIHRoZWlyIG1lbWJlcnMsIHdpdGggb3B0aW9uYWwgbWlycm9yaW5nIG9udG8gdGhlIGNvbnN0cnVjdG9yIHZpYSBhIHdlbGwta25vd24gc3ltYm9sIGtleS4gU3VwcG9ydHMgbmVzdGVkIGtleSBwYXRocyB1c2luZyBhIGNvbmZpZ3VyYWJsZSBzcGxpdHRlciBhbmQgb2ZmZXJzIGJvdGggaW5zdGFuY2UgYW5kIHN0YXRpYyBBUElzLlxuICogQHRlbXBsYXRlIE0gVGhlIG1vZGVsIHR5cGUgdGhlIG1ldGFkYXRhIGJlbG9uZ3MgdG8uXG4gKiBAdGVtcGxhdGUgTUVUQSBFeHRlbmRzIEJhc2ljTWV0YWRhdGE8TT4gcmVwcmVzZW50aW5nIHRoZSBtZXRhZGF0YSBzdHJ1Y3R1cmUuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2ZsYXZvdXI9RGVmYXVsdEZsYXZvdXJdIE9wdGlvbmFsIGZsYXZvdXIgaWRlbnRpZmllciBhcHBsaWVkIHdoZW4gaW5zdGFudGlhdGluZyBoZWxwZXIgYnVpbGRlcnMuXG4gKiBAY2xhc3NcbiAqIEBleGFtcGxlXG4gKiAvLyBEZWZpbmUgYW5kIHJlYWQgbWV0YWRhdGEgZm9yIGEgY2xhc3NcbiAqIGNsYXNzIFVzZXIgeyBuYW1lITogc3RyaW5nIH1cbiAqIE1ldGFkYXRhLnNldChVc2VyLCBcImRlc2NyaXB0aW9uLmNsYXNzXCIsIFwiQSB1c2VyIG1vZGVsXCIpO1xuICogTWV0YWRhdGEuc2V0KFVzZXIsIFwicHJvcGVydGllcy5uYW1lXCIsIFN0cmluZyk7XG4gKiBjb25zdCBkZXNjID0gTWV0YWRhdGEuZ2V0KFVzZXIsIFwiZGVzY3JpcHRpb24uY2xhc3NcIik7IC8vIFwiQSB1c2VyIG1vZGVsXCJcbiAqIGNvbnN0IHR5cGUgPSBNZXRhZGF0YS50eXBlKFVzZXIsIFwibmFtZVwiKTsgLy8gU3RyaW5nXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEMgYXMgQ29uc3RydWN0b3JcbiAqICAgcGFydGljaXBhbnQgUyBhcyBNZXRhZGF0YSAoc3RhdGljKVxuICogICBDLT4+Uzogc2V0KFVzZXIsIFwicHJvcGVydGllcy5uYW1lXCIsIFN0cmluZylcbiAqICAgQy0+PlM6IGdldChVc2VyLCBcInByb3BlcnRpZXMubmFtZVwiKVxuICogICBTLS0+PkM6IFN0cmluZ1xuICovXG5leHBvcnQgY2xhc3MgTWV0YWRhdGEge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluLW1lbW9yeSBzdG9yYWdlIG9mIG1ldGFkYXRhIGJ5IGNvbnN0cnVjdG9yIHN5bWJvbFxuICAgKiBAc3VtbWFyeSBNYXBzIGEgU3ltYm9sIGRlcml2ZWQgZnJvbSB0aGUgY29uc3RydWN0b3IgdG8gaXRzIG1ldGFkYXRhIG9iamVjdCwgZW5hYmxpbmcgZWZmaWNpZW50IGxvb2t1cC5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIF9tZXRhZGF0YTogUmVjb3JkPHN5bWJvbCwgYW55PiA9IHt9O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUGF0aCBkZWxpbWl0ZXIgZm9yIG5lc3RlZCBtZXRhZGF0YSBrZXlzXG4gICAqIEBzdW1tYXJ5IFVzZWQgYnkgZ2V0L3NldCBvcGVyYXRpb25zIHRvIG5hdmlnYXRlIG5lc3RlZCBzdHJ1Y3R1cmVzLCBkZWZhdWx0cyB0byBPYmplY3RLZXlTcGxpdHRlci5cbiAgICovXG4gIHN0YXRpYyBzcGxpdHRlciA9IE9iamVjdEtleVNwbGl0dGVyO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFN5bWJvbCBrZXkgdXNlZCB0byBtaXJyb3IgbWV0YWRhdGEgb24gdGhlIGNvbnN0cnVjdG9yXG4gICAqIEBzdW1tYXJ5IFdoZW4gbWlycm9yaW5nIGlzIGVuYWJsZWQsIHRoZSBtZXRhZGF0YSBvYmplY3QgaXMgZGVmaW5lZCBvbiB0aGUgY29uc3RydWN0b3IgdW5kZXIgdGhpcyBub24tZW51bWVyYWJsZSBrZXkuXG4gICAqL1xuICBzdGF0aWMgYmFzZUtleSA9IERlY29yYXRpb25LZXlzLlJFRkxFQ1Q7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29udHJvbHMgd2hldGhlciBtZXRhZGF0YSBpcyBtaXJyb3JlZCBvbnRvIHRoZSBjb25zdHJ1Y3RvclxuICAgKiBAc3VtbWFyeSBXaGVuIHRydWUsIHRoZSBtZXRhZGF0YSBvYmplY3QgaXMgZGVmaW5lZCBvbiB0aGUgY29uc3RydWN0b3IgdW5kZXIgdGhlIG5vbi1lbnVtZXJhYmxlIGJhc2VLZXkuXG4gICAqL1xuICBzdGF0aWMgbWlycm9yOiBib29sZWFuID0gdHJ1ZTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cblxuICBzdGF0aWMgU3ltYm9sPE0+KG9iajogQ29uc3RydWN0b3I8TT4pIHtcbiAgICByZXR1cm4gU3ltYm9sLmZvcihbb2JqLnRvU3RyaW5nKCksIG9iai5uYW1lXS5qb2luKFwiIC0gXCIpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTGlzdHMga25vd24gcHJvcGVydHkga2V5cyBmb3IgYSBtb2RlbC5cbiAgICogQHN1bW1hcnkgUmVhZHMgdGhlIG1ldGFkYXRhIGVudHJ5IGFuZCByZXR1cm5zIHRoZSBuYW1lcyBvZiBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSByZWNvcmRlZCB0eXBlIGluZm9ybWF0aW9uLlxuICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yfSBtb2RlbCBUYXJnZXQgY29uc3RydWN0b3Igd2hvc2UgcHJvcGVydHkgbWV0YWRhdGEgc2hvdWxkIGJlIGluc3BlY3RlZC5cbiAgICogQHJldHVybiB7c3RyaW5nW118dW5kZWZpbmVkfSBBcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyBvciBgdW5kZWZpbmVkYCBpZiBubyBtZXRhZGF0YSBleGlzdHMuXG4gICAqL1xuICBzdGF0aWMgcHJvcGVydGllcyhtb2RlbDogQ29uc3RydWN0b3IpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgbWV0YSA9IHRoaXMuZ2V0KG1vZGVsKTtcbiAgICBpZiAoIW1ldGEpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG1ldGEucHJvcGVydGllcyk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIExpc3RzIGtub3duIG1ldGhvZHMgZm9yIGEgbW9kZWwuXG4gICAqIEBzdW1tYXJ5IFJlYWRzIHRoZSBtZXRhZGF0YSBlbnRyeSBhbmQgcmV0dXJucyB0aGUgbWV0aG9kIG5hbWVzIHRoYXQgaGF2ZSByZWNvcmRlZCBzaWduYXR1cmUgbWV0YWRhdGEgZm9yIHRoZSBwcm92aWRlZCBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtDb25zdHJ1Y3Rvcn0gbW9kZWwgVGFyZ2V0IGNvbnN0cnVjdG9yIHdob3NlIG1ldGhvZCBtZXRhZGF0YSBzaG91bGQgYmUgaW5zcGVjdGVkLlxuICAgKiBAcmV0dXJuIHtzdHJpbmdbXXx1bmRlZmluZWR9IEFycmF5IG9mIG1ldGhvZCBuYW1lcyBvciBgdW5kZWZpbmVkYCBpZiBubyBtZXRhZGF0YSBleGlzdHMuXG4gICAqL1xuICBzdGF0aWMgbWV0aG9kcyhtb2RlbDogQ29uc3RydWN0b3IpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgbWV0YSA9IHRoaXMuZ2V0KG1vZGVsLCBEZWNvcmF0aW9uS2V5cy5NRVRIT0RTKTtcbiAgICBpZiAoIW1ldGEpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG1ldGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgYSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBmb3IgYSBjbGFzcyBvciBhIHByb3BlcnR5LlxuICAgKiBAc3VtbWFyeSBMb29rcyB1cCB0aGUgZGVzY3JpcHRpb24gc3RvcmVkIHVuZGVyIHRoZSBtZXRhZGF0YSBcImRlc2NyaXB0aW9uXCIgbWFwLiBJZiBhIHByb3BlcnR5IGtleSBpcyBwcm92aWRlZCwgcmV0dXJucyB0aGUgcHJvcGVydHkncyBkZXNjcmlwdGlvbjsgb3RoZXJ3aXNlIHJldHVybnMgdGhlIGNsYXNzIGRlc2NyaXB0aW9uLlxuICAgKiBAdGVtcGxhdGUgTVxuICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fSBtb2RlbCBUYXJnZXQgY29uc3RydWN0b3Igd2hvc2UgZGVzY3JpcHRpb24gaXMgYmVpbmcgcmV0cmlldmVkLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3Byb3BdIE9wdGlvbmFsIHByb3BlcnR5IGtleSAodHlwZWQgYXMgYGtleW9mIE1gKSBmb3Igd2hpY2ggdG8gZmV0Y2ggdGhlIGRlc2NyaXB0aW9uLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd8dW5kZWZpbmVkfSBEZXNjcmlwdGlvbiB0ZXh0IGlmIHByZXNlbnQsIG90aGVyd2lzZSBgdW5kZWZpbmVkYC5cbiAgICovXG4gIHN0YXRpYyBkZXNjcmlwdGlvbjxNPihcbiAgICBtb2RlbDogQ29uc3RydWN0b3I8TT4sXG4gICAgcHJvcD86IGtleW9mIE1cbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5nZXQoXG4gICAgICBtb2RlbCxcbiAgICAgIHRoaXMua2V5KFxuICAgICAgICBEZWNvcmF0aW9uS2V5cy5ERVNDUklQVElPTixcbiAgICAgICAgKHByb3AgPyBwcm9wIDogRGVjb3JhdGlvbktleXMuQ0xBU1MpIGFzIHN0cmluZ1xuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyB0aGUgcmVjb3JkZWQgcGFyYW1zIGZvciBhIG1ldGhvZC5cbiAgICogQHN1bW1hcnkgUmVhZHMgdGhlIG1ldGFkYXRhIGVudHJ5IHVuZGVyIGBtZXRob2RzLjxwcm9wPi5kZXNpZ246cGFyYW10eXBlc2AgdG8gcmV0dXJuIHRoZSBwYXJhbWV0ZXIgY29uc3RydWN0b3JzIGZvciB0aGUgZ2l2ZW4gbWV0aG9kLlxuICAgKiBAdGVtcGxhdGUgTVxuICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fSBtb2RlbCBUYXJnZXQgY29uc3RydWN0b3Igb3duaW5nIHRoZSBtZXRob2QgbWV0YWRhdGEuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wIE1ldGhvZCBuYW1lIHdob3NlIHBhcmFtZXRlcnMgc2hvdWxkIGJlIGZldGNoZWQuXG4gICAqIEByZXR1cm4ge2FueVtdfHVuZGVmaW5lZH0gQXJyYXkgb2YgY29uc3RydWN0b3IgcmVmZXJlbmNlcyBkZXNjcmliaW5nIGVhY2ggcGFyYW1ldGVyIG9yIGB1bmRlZmluZWRgIHdoZW4gbm90IGF2YWlsYWJsZS5cbiAgICovXG4gIHN0YXRpYyBwYXJhbXM8TT4obW9kZWw6IENvbnN0cnVjdG9yPE0+LCBwcm9wOiBzdHJpbmcpOiBhbnlbXSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KFxuICAgICAgbW9kZWwsXG4gICAgICB0aGlzLmtleShEZWNvcmF0aW9uS2V5cy5NRVRIT0RTLCBwcm9wLCBEZWNvcmF0aW9uS2V5cy5ERVNJR05fUEFSQU1TKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyBhIHNpbmdsZSByZWNvcmRlZCBwYXJhbWV0ZXIgdHlwZSBmb3IgYSBtZXRob2QuXG4gICAqIEBzdW1tYXJ5IExvb2tzIHVwIHRoZSBwYXJhbWV0ZXIgbWV0YWRhdGEgZm9yIHRoZSBwcm92aWRlZCBpbmRleCwgZW5mb3JjaW5nIGJvdW5kcyBhbmQgcmV0dXJuaW5nIHRoZSBjb25zdHJ1Y3RvciByZWZlcmVuY2UgZm9yIHRoYXQgYXJndW1lbnQuXG4gICAqIEB0ZW1wbGF0ZSBNXG4gICAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT59IG1vZGVsIFRhcmdldCBjb25zdHJ1Y3RvciBvd25pbmcgdGhlIG1ldGhvZCBtZXRhZGF0YS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHByb3AgTWV0aG9kIG5hbWUgd2hvc2UgcGFyYW1ldGVyIHNob3VsZCBiZSByZXR1cm5lZC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IFplcm8tYmFzZWQgaW5kZXggb2YgdGhlIGRlc2lyZWQgcGFyYW1ldGVyIG1ldGFkYXRhLlxuICAgKiBAcmV0dXJuIHthbnl8dW5kZWZpbmVkfSBDb25zdHJ1Y3RvciByZWZlcmVuY2UgZm9yIHRoZSBwYXJhbWV0ZXIgb3IgYHVuZGVmaW5lZGAgaWYgbm90IHJlY29yZGVkLlxuICAgKi9cbiAgc3RhdGljIHBhcmFtPE0+KFxuICAgIG1vZGVsOiBDb25zdHJ1Y3RvcjxNPixcbiAgICBwcm9wOiBzdHJpbmcsXG4gICAgaW5kZXg6IG51bWJlclxuICApOiBhbnkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMucGFyYW1zKG1vZGVsLCBwcm9wKTtcbiAgICBpZiAoIXBhcmFtcykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAoaW5kZXggPiBwYXJhbXMubGVuZ3RoIC0gMSlcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFBhcmFtZXRlciBpbmRleCAke2luZGV4fSBvdXQgb2YgcmFuZ2UgZm9yICR7U3RyaW5nKHByb3ApfWBcbiAgICAgICk7XG4gICAgcmV0dXJuIHBhcmFtc1tpbmRleF07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyB0aGUgcmVjb3JkZWQgcmV0dXJuIHR5cGUgZm9yIGEgbWV0aG9kLlxuICAgKiBAc3VtbWFyeSBSZWFkcyB0aGUgbWV0YWRhdGEgZW50cnkgdW5kZXIgYG1ldGhvZHMuPHByb3A+LmRlc2lnbjpyZXR1cm50eXBlYCB0byByZXR1cm4gdGhlIHJldHVybiB0eXBlIGZvciB0aGUgZ2l2ZW4gbWV0aG9kLlxuICAgKiBAdGVtcGxhdGUgTVxuICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fSBtb2RlbCBUYXJnZXQgY29uc3RydWN0b3Igd2hvc2UgbWV0aG9kIG1ldGFkYXRhIHNob3VsZCBiZSBpbnNwZWN0ZWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wIE1ldGhvZCBuYW1lIHdob3NlIHJldHVybiB0eXBlIHNob3VsZCBiZSBmZXRjaGVkLlxuICAgKiBAcmV0dXJuIHthbnl8dW5kZWZpbmVkfSBDb25zdHJ1Y3RvciByZWZlcmVuY2UgZm9yIHRoZSByZXR1cm4gdHlwZSBvciBgdW5kZWZpbmVkYCB3aGVuIG5vdCBhdmFpbGFibGUuXG4gICAqL1xuICBzdGF0aWMgcmV0dXJuPE0+KG1vZGVsOiBDb25zdHJ1Y3RvcjxNPiwgcHJvcDogc3RyaW5nKTogYW55IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5nZXQoXG4gICAgICBtb2RlbCxcbiAgICAgIHRoaXMua2V5KERlY29yYXRpb25LZXlzLk1FVEhPRFMsIHByb3AsIERlY29yYXRpb25LZXlzLkRFU0lHTl9SRVRVUk4pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIHRoZSByZWNvcmRlZCBkZXNpZ24gdHlwZSBmb3IgYSBwcm9wZXJ0eS5cbiAgICogQHN1bW1hcnkgUmVhZHMgdGhlIG1ldGFkYXRhIGVudHJ5IHVuZGVyIGBwcm9wZXJ0aWVzLjxwcm9wPmAgdG8gcmV0dXJuIHRoZSBjb25zdHJ1Y3RvciByZWNvcmRlZCBmb3IgdGhlIGdpdmVuIHByb3BlcnR5IG5hbWUuXG4gICAqIEBwYXJhbSB7Q29uc3RydWN0b3J9IG1vZGVsIFRhcmdldCBjb25zdHJ1Y3RvciB3aG9zZSBwcm9wZXJ0eSBtZXRhZGF0YSBzaG91bGQgYmUgaW5zcGVjdGVkLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcCBQcm9wZXJ0eSBuYW1lIHdob3NlIHR5cGUgbWV0YWRhdGEgc2hvdWxkIGJlIHJldHVybmVkLlxuICAgKiBAcmV0dXJuIHtDb25zdHJ1Y3Rvcnx1bmRlZmluZWR9IENvbnN0cnVjdG9yIHJlZmVyZW5jZSBmb3IgdGhlIHByb3BlcnR5IHR5cGUgb3IgYHVuZGVmaW5lZGAgaWYgbm90IGF2YWlsYWJsZS5cbiAgICovXG4gIHN0YXRpYyB0eXBlKG1vZGVsOiBDb25zdHJ1Y3RvciwgcHJvcDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KG1vZGVsLCB0aGlzLmtleShEZWNvcmF0aW9uS2V5cy5QUk9QRVJUSUVTLCBwcm9wKSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlc29sdmVzIHRoZSBjYW5vbmljYWwgY29uc3RydWN0b3IgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm92aWRlZCBtb2RlbCBoYW5kbGUgYW5kIG1ldGFkYXRhLlxuICAgKiBAc3VtbWFyeSBSZXR1cm5zIHRoZSBzdG9yZWQgY29uc3RydWN0b3IgcmVmZXJlbmNlIHdoZW4gdGhlIHByb3ZpZGVkIG1vZGVsIGlzIGEgcHJveHkgb3IgcmVkdWNlZCB2YWx1ZS4gRmFsbHMgYmFjayB0byB0aGUgb3JpZ2luYWwgbW9kZWwgd2hlbiBubyBjb25zdHJ1Y3RvciBtZXRhZGF0YSBoYXMgYmVlbiByZWNvcmRlZCB5ZXQuXG4gICAqIEB0ZW1wbGF0ZSBNXG4gICAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT59IG1vZGVsIE1vZGVsIHVzZWQgd2hlbiByZWNvcmRpbmcgbWV0YWRhdGEuXG4gICAqIEByZXR1cm4ge0NvbnN0cnVjdG9yPE0+fSBDYW5vbmljYWwgY29uc3RydWN0b3IgaWYgc3RvcmVkLCBvdGhlcndpc2UgdGhlIHByb3ZpZGVkIG9uZWAuXG4gICAqL1xuICBzdGF0aWMgY29uc3RyPE0+KG1vZGVsOiBDb25zdHJ1Y3RvcjxNPik6IENvbnN0cnVjdG9yPE0+IHtcbiAgICByZXR1cm4gbW9kZWxbRGVjb3JhdGlvbktleXMuQ09OU1RSVUNUT1IgYXMga2V5b2YgdHlwZW9mIG1vZGVsXSB8fCBtb2RlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIG1ldGFkYXRhIGZvciBhIG1vZGVsIG9yIGEgc3BlY2lmaWMga2V5IHdpdGhpbiBpdC5cbiAgICogQHN1bW1hcnkgV2hlbiBjYWxsZWQgd2l0aCBhIGNvbnN0cnVjdG9yIG9ubHksIHJldHVybnMgdGhlIGVudGlyZSBtZXRhZGF0YSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBtb2RlbC4gV2hlbiBhIGtleSBwYXRoIGlzIHByb3ZpZGVkLCByZXR1cm5zIHRoZSB2YWx1ZSBzdG9yZWQgYXQgdGhhdCBuZXN0ZWQga2V5LlxuICAgKiBAdGVtcGxhdGUgTVxuICAgKiBAdGVtcGxhdGUgTUVUQVxuICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fSBtb2RlbCBUYXJnZXQgY29uc3RydWN0b3IgdXNlZCB0byBsb2NhdGUgdGhlIG1ldGFkYXRhIHJlY29yZC5cbiAgICogQHJldHVybiB7TUVUQXx1bmRlZmluZWR9IE1ldGFkYXRhIG9iamVjdCwgdGhlIHZhbHVlIGF0IHRoZSBrZXkgcGF0aCwgb3IgYHVuZGVmaW5lZGAgaWYgbm90aGluZyBleGlzdHMuXG4gICAqL1xuICBzdGF0aWMgZ2V0PE0sIE1FVEEgZXh0ZW5kcyBCYXNpY01ldGFkYXRhPE0+ID0gQmFzaWNNZXRhZGF0YTxNPj4oXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yPE0+XG4gICk6IE1FVEEgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIG1ldGFkYXRhIGZvciBhIG1vZGVsIG9yIGEgc3BlY2lmaWMga2V5IHdpdGhpbiBpdC5cbiAgICogQHN1bW1hcnkgV2hlbiBjYWxsZWQgd2l0aCBhIGNvbnN0cnVjdG9yIG9ubHksIHJldHVybnMgdGhlIGVudGlyZSBtZXRhZGF0YSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBtb2RlbC4gV2hlbiBhIGtleSBwYXRoIGlzIHByb3ZpZGVkLCByZXR1cm5zIHRoZSB2YWx1ZSBzdG9yZWQgYXQgdGhhdCBuZXN0ZWQga2V5LlxuICAgKiBAdGVtcGxhdGUgTVxuICAgKiBAdGVtcGxhdGUgTUVUQVxuICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fSBtb2RlbCBUYXJnZXQgY29uc3RydWN0b3IgdXNlZCB0byBsb2NhdGUgdGhlIG1ldGFkYXRhIHJlY29yZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBOZXN0ZWQga2V5IHBhdGggdG8gZmV0Y2ggYSBzcGVjaWZpYyB2YWx1ZS5cbiAgICogQHJldHVybiB7TUVUQXwqfHVuZGVmaW5lZH0gTWV0YWRhdGEgb2JqZWN0LCB0aGUgdmFsdWUgYXQgdGhlIGtleSBwYXRoLCBvciBgdW5kZWZpbmVkYCBpZiBub3RoaW5nIGV4aXN0cy5cbiAgICovXG4gIHN0YXRpYyBnZXQobW9kZWw6IENvbnN0cnVjdG9yLCBrZXk6IHN0cmluZyk6IGFueTtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgbWV0YWRhdGEgZm9yIGEgbW9kZWwgb3IgYSBzcGVjaWZpYyBrZXkgd2l0aGluIGl0LlxuICAgKiBAc3VtbWFyeSBXaGVuIGNhbGxlZCB3aXRoIGEgY29uc3RydWN0b3Igb25seSwgcmV0dXJucyB0aGUgZW50aXJlIG1ldGFkYXRhIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIG1vZGVsLiBXaGVuIGEga2V5IHBhdGggaXMgcHJvdmlkZWQsIHJldHVybnMgdGhlIHZhbHVlIHN0b3JlZCBhdCB0aGF0IG5lc3RlZCBrZXkuXG4gICAqIEB0ZW1wbGF0ZSBNXG4gICAqIEB0ZW1wbGF0ZSBNRVRBXG4gICAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT58c3RyaW5nfSBtb2RlbCBUYXJnZXQgY29uc3RydWN0b3IgdXNlZCB0byBsb2NhdGUgdGhlIG1ldGFkYXRhIHJlY29yZCBvciBhIHByZS1yZXNvbHZlZCBzeW1ib2wgaWRlbnRpZmllci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtrZXldIE9wdGlvbmFsIG5lc3RlZCBrZXkgcGF0aCB0byBmZXRjaCBhIHNwZWNpZmljIHZhbHVlLlxuICAgKiBAcmV0dXJuIHtNRVRBfCp8dW5kZWZpbmVkfSBNZXRhZGF0YSBvYmplY3QsIHRoZSB2YWx1ZSBhdCB0aGUga2V5IHBhdGgsIG9yIGB1bmRlZmluZWRgIGlmIG5vdGhpbmcgZXhpc3RzLlxuICAgKi9cbiAgc3RhdGljIGdldChtb2RlbDogQ29uc3RydWN0b3IsIGtleT86IHN0cmluZykge1xuICAgIGlmIChrZXkgPT09IERlY29yYXRpb25LZXlzLkNPTlNUUlVDVE9SKSByZXR1cm4gdGhpcy5jb25zdHIobW9kZWwpO1xuICAgIGNvbnN0IHJlc29sdmVkTW9kZWwgPSB0aGlzLmNvbnN0cihtb2RlbCk7XG4gICAgY29uc3QgY29uc3RydWN0b3JzID0gdGhpcy5jb2xsZWN0Q29uc3RydWN0b3JDaGFpbihyZXNvbHZlZE1vZGVsKTtcbiAgICBpZiAoY29uc3RydWN0b3JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgZmFsbGJhY2tTeW1ib2wgPSBTeW1ib2wuZm9yKHJlc29sdmVkTW9kZWwudG9TdHJpbmcoKSk7XG4gICAgICByZXR1cm4gdGhpcy5pbm5lckdldChmYWxsYmFja1N5bWJvbCwga2V5KTtcbiAgICB9XG4gICAgY29uc3QgY29sbGVjdGVkVmFsdWVzID0gY29uc3RydWN0b3JzXG4gICAgICAubWFwKChjdG9yKSA9PiB0aGlzLmlubmVyR2V0KHRoaXMuU3ltYm9sKGN0b3IpLCBrZXkpKVxuICAgICAgLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB1bmRlZmluZWQpO1xuXG4gICAgaWYgKGNvbGxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDApIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gdGhpcy5tZXJnZU1ldGFkYXRhQ2hhaW4oY29sbGVjdGVkVmFsdWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIG1ldGFkYXRhIHN0b3JlZCB1bmRlciBhIHN5bWJvbCBrZXkuXG4gICAqIEBzdW1tYXJ5IEludGVybmFsIGhlbHBlciB0aGF0IHJlc29sdmVzIGFuZCBvcHRpb25hbGx5IGRyaWxscyBpbnRvIHRoZSBpbi1tZW1vcnkgbWV0YWRhdGEgbWFwIGZvciB0aGUgcHJvdmlkZWQgc3ltYm9sIGFuZCBrZXkgcGF0aC5cbiAgICogQHBhcmFtIHtzeW1ib2x9IHN5bWJvbCBTeW1ib2wgcmVwcmVzZW50aW5nIHRoZSBtZXRhZGF0YSBidWNrZXQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfHN5bWJvbH0gW2tleV0gT3B0aW9uYWwgbmVzdGVkIGtleSByZWZlcmVuY2luZyBhIHNwZWNpZmljIG1ldGFkYXRhIGVudHJ5LlxuICAgKiBAcmV0dXJuIHthbnl9IFN0b3JlZCBtZXRhZGF0YSBvYmplY3Qgb3IgdmFsdWUgZm9yIHRoZSBwcm92aWRlZCBrZXksIG9yIGB1bmRlZmluZWRgIHdoZW4gYWJzZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgaW5uZXJHZXQoc3ltYm9sOiBzeW1ib2wsIGtleT86IHN0cmluZyB8IHN5bWJvbCkge1xuICAgIGlmICghdGhpcy5fbWV0YWRhdGFbc3ltYm9sXSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAoIWtleSkgcmV0dXJuIHRoaXMuX21ldGFkYXRhW3N5bWJvbF07XG4gICAgaWYgKHR5cGVvZiBrZXkgPT09IFwic3RyaW5nXCIpXG4gICAgICByZXR1cm4gZ2V0VmFsdWVCeVNwbGl0dGVyKHRoaXMuX21ldGFkYXRhW3N5bWJvbF0sIGtleSwgdGhpcy5zcGxpdHRlcik7XG4gICAgcmV0dXJuIHRoaXMuX21ldGFkYXRhW3N5bWJvbF1ba2V5XTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQnVpbGRzIHRoZSBpbmhlcml0YW5jZSBjaGFpbiBmb3IgYSBjb25zdHJ1Y3Rvciwgb3JkZXJlZCBmcm9tIGJhc2UgdG8gbW9zdC1zcGVjaWZpYyBjbGFzcy5cbiAgICogQHN1bW1hcnkgV2Fsa3MgdGhlIHByb3RvdHlwZSBjaGFpbiBzdGFydGluZyBmcm9tIHRoZSBwcm92aWRlZCBjb25zdHJ1Y3RvciB1bnRpbCByZWFjaGluZyBGdW5jdGlvbi9PYmplY3QgYW5kIHJldHVybnMgdGhlIGNvbGxlY3RlZCBjb25zdHJ1Y3RvcnMuXG4gICAqIEBwYXJhbSB7Q29uc3RydWN0b3J9IG1vZGVsIENvbnN0cnVjdG9yIHdob3NlIGNoYWluIHNob3VsZCBiZSBjb2xsZWN0ZWQuXG4gICAqIEByZXR1cm4ge0NvbnN0cnVjdG9yW119IEFycmF5IG9mIGNvbnN0cnVjdG9ycyBvcmRlcmVkIGZyb20gYmFzZSB0byBsZWFmLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgY29sbGVjdENvbnN0cnVjdG9yQ2hhaW4obW9kZWw6IENvbnN0cnVjdG9yKTogQ29uc3RydWN0b3JbXSB7XG4gICAgY29uc3QgY2hhaW46IENvbnN0cnVjdG9yW10gPSBbXTtcbiAgICBsZXQgY3VycmVudDogYW55ID0gbW9kZWw7XG5cbiAgICB3aGlsZSAodHlwZW9mIGN1cnJlbnQgPT09IFwiZnVuY3Rpb25cIiAmJiBjdXJyZW50ICE9PSBGdW5jdGlvbikge1xuICAgICAgY2hhaW4ucHVzaChjdXJyZW50IGFzIENvbnN0cnVjdG9yKTtcbiAgICAgIGNvbnN0IHBhcmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjdXJyZW50KTtcbiAgICAgIGlmICghcGFyZW50IHx8IHBhcmVudCA9PT0gRnVuY3Rpb24gfHwgcGFyZW50ID09PSBPYmplY3QpIGJyZWFrO1xuICAgICAgY3VycmVudCA9IHBhcmVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gY2hhaW4ucmV2ZXJzZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBNZXJnZXMgbWV0YWRhdGEgdmFsdWVzIGNvbGxlY3RlZCBhY3Jvc3MgdGhlIGluaGVyaXRhbmNlIGNoYWluLlxuICAgKiBAc3VtbWFyeSBQZXJmb3JtcyBhIGRlZXAgbWVyZ2UgZm9yIHBsYWluIG9iamVjdHMgd2hpbGUgbGV0dGluZyBub24tb2JqZWN0IHZhbHVlcyBvdmVycmlkZSBlYXJsaWVyIG9uZXMgdG8gcHJlc2VydmUgY2hpbGQgbWV0YWRhdGEgcHJlY2VkZW5jZS5cbiAgICogQHBhcmFtIHthbnlbXX0gdmFsdWVzIE1ldGFkYXRhIHZhbHVlcyBnYXRoZXJlZCBmcm9tIGJhc2UgdG8gY2hpbGQuXG4gICAqIEByZXR1cm4ge2FueX0gQWdncmVnYXRlZCBtZXRhZGF0YSB2YWx1ZSByZXNwZWN0aW5nIGluaGVyaXRhbmNlIHByZWNlZGVuY2UuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBtZXJnZU1ldGFkYXRhQ2hhaW4odmFsdWVzOiBhbnlbXSkge1xuICAgIGxldCBhY2M6IGFueSA9IHVuZGVmaW5lZDtcblxuICAgIGZvciAoY29uc3QgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgICBpZiAoYWNjID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYWNjID0gdGhpcy5jbG9uZU1ldGFkYXRhVmFsdWUodmFsdWUpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaXNQbGFpbk9iamVjdChhY2MpICYmIHRoaXMuaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgYWNjID0gdGhpcy5tZXJnZVBsYWluT2JqZWN0cyhcbiAgICAgICAgICBhY2MgYXMgUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgICAgICB2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgICAgICk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBhY2MgPSB0aGlzLmNsb25lTWV0YWRhdGFWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUHJvZHVjZXMgYSBkZWVwIGNsb25lIG9mIGEgbWV0YWRhdGEgdmFsdWUgd2hlbiBuZWNlc3NhcnkuXG4gICAqIEBzdW1tYXJ5IEFycmF5cyBhcmUgc2hhbGxvdy1jbG9uZWQsIHBsYWluIG9iamVjdHMgYXJlIGRlZXAtY2xvbmVkLCBhbmQgcHJpbWl0aXZlL2Z1bmN0aW9uIHZhbHVlcyBhcmUgcmV0dXJuZWQgYXMtaXMuXG4gICAqIEBwYXJhbSB7YW55fSB2YWx1ZSBNZXRhZGF0YSB2YWx1ZSB0byBjbG9uZS5cbiAgICogQHJldHVybiB7YW55fSBDbG9uZWQgbWV0YWRhdGEgdmFsdWUgcHJldmVudGluZyBtdXRhdGlvbiBvZiB0aGUgYmFja2luZyBzdG9yZS5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGNsb25lTWV0YWRhdGFWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSByZXR1cm4gWy4uLnZhbHVlXTtcbiAgICBpZiAodGhpcy5pc1BsYWluT2JqZWN0KHZhbHVlKSlcbiAgICAgIHJldHVybiB0aGlzLm1lcmdlUGxhaW5PYmplY3RzKHt9LCB2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KTtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlZXBseSBtZXJnZXMgdHdvIHBsYWluIG1ldGFkYXRhIG9iamVjdHMuXG4gICAqIEBzdW1tYXJ5IFJlY3Vyc2l2ZWx5IG1lcmdlcyBuZXN0ZWQgcGxhaW4gb2JqZWN0cyB3aGlsZSBjbG9uaW5nIGFycmF5czsgdmFsdWVzIGZyb20gYHNvdXJjZWAgb3ZlcnJpZGUgdGhvc2UgZnJvbSBgdGFyZ2V0YCB3aGVuIGNvbmZsaWN0cyBvY2N1ci5cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSB0YXJnZXQgQmFzZSBvYmplY3QgdG8gbWVyZ2UgaW50by5cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBzb3VyY2UgT2JqZWN0IHByb3ZpZGluZyBvdmVycmlkaW5nIG1ldGFkYXRhLlxuICAgKiBAcmV0dXJuIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBOZXdseSBtZXJnZWQgbWV0YWRhdGEgb2JqZWN0LlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgbWVyZ2VQbGFpbk9iamVjdHMoXG4gICAgdGFyZ2V0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHNvdXJjZTogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7IC4uLnRhcmdldCB9O1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoc291cmNlKSkge1xuICAgICAgY29uc3Qgc291cmNlVmFsdWUgPSBzb3VyY2Vba2V5XTtcbiAgICAgIGNvbnN0IHRhcmdldFZhbHVlID0gcmVzdWx0W2tleV07XG5cbiAgICAgIGlmICh0aGlzLmlzUGxhaW5PYmplY3Qoc291cmNlVmFsdWUpKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdGhpcy5pc1BsYWluT2JqZWN0KHRhcmdldFZhbHVlKVxuICAgICAgICAgID8gdGhpcy5tZXJnZVBsYWluT2JqZWN0cyhcbiAgICAgICAgICAgICAgdGFyZ2V0VmFsdWUgYXMgUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgICAgICAgICAgc291cmNlVmFsdWUgYXMgUmVjb3JkPHN0cmluZywgYW55PlxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogdGhpcy5tZXJnZVBsYWluT2JqZWN0cyh7fSwgc291cmNlVmFsdWUgYXMgUmVjb3JkPHN0cmluZywgYW55Pik7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShzb3VyY2VWYWx1ZSkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBbLi4uc291cmNlVmFsdWVdO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgcmVzdWx0W2tleV0gPSBzb3VyY2VWYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDaGVja3MgaWYgYSB2YWx1ZSBpcyBhIHBsYWluIG9iamVjdCBzdWl0YWJsZSBmb3IgZGVlcCBtZXJnaW5nLlxuICAgKiBAc3VtbWFyeSBFbnN1cmVzIGFycmF5cyBhbmQgbnVsbCBhcmUgZXhjbHVkZWQgd2hpbGUgYWNjZXB0aW5nIG9iamVjdHMgY3JlYXRlZCB2aWEgbGl0ZXJhbC9jbGFzcyBzeW50YXguXG4gICAqIEBwYXJhbSB7YW55fSB2YWx1ZSBWYWx1ZSB0byBpbnNwZWN0LlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIHdoZW4gdGhlIHZhbHVlIGlzIGEgcGxhaW4gb2JqZWN0LlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgaXNQbGFpbk9iamVjdCh2YWx1ZTogYW55KTogdmFsdWUgaXMgUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSAhPT0gXCJvYmplY3RcIiB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSlcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSk7XG4gICAgcmV0dXJuIHByb3RvID09PSBPYmplY3QucHJvdG90eXBlIHx8IHByb3RvID09PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXcml0ZXMgbWV0YWRhdGEgdW5kZXIgYSBzeW1ib2wga2V5LlxuICAgKiBAc3VtbWFyeSBJbnRlcm5hbCBoZWxwZXIgdGhhdCBlbnN1cmVzIHRoZSBtZXRhZGF0YSBidWNrZXQgZXhpc3RzIGZvciB0aGUgcHJvdmlkZWQgc3ltYm9sIGFuZCBwZXJzaXN0cyB0aGUgZ2l2ZW4gdmFsdWUsIGRyaWxsaW5nIGludG8gbmVzdGVkIHN0cnVjdHVyZXMgd2hlbiB0aGUga2V5IGlzIGEgc3RyaW5nIHBhdGguXG4gICAqIEBwYXJhbSB7c3ltYm9sfSBzeW1ib2wgU3ltYm9sIHJlcHJlc2VudGluZyB0aGUgbWV0YWRhdGEgYnVja2V0LlxuICAgKiBAcGFyYW0ge3N0cmluZ3xzeW1ib2x9IGtleSBOZXN0ZWQga2V5IHBhdGggb3IgZGlyZWN0IHN5bWJvbCB1bmRlciB3aGljaCB0byBzdG9yZSB0aGUgbWV0YWRhdGEgdmFsdWUuXG4gICAqIEBwYXJhbSB7YW55fSB2YWx1ZSBWYWx1ZSBwZXJzaXN0ZWQgaW4gdGhlIG1ldGFkYXRhIHN0b3JlLlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgaW5uZXJTZXQoc3ltYm9sOiBzeW1ib2wsIGtleTogc3RyaW5nIHwgc3ltYm9sLCB2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF0aGlzLl9tZXRhZGF0YVtzeW1ib2xdKSB0aGlzLl9tZXRhZGF0YVtzeW1ib2xdID0ge30gYXMgYW55O1xuICAgIGlmICh0eXBlb2Yga2V5ID09PSBcInN0cmluZ1wiKVxuICAgICAgcmV0dXJuIHNldFZhbHVlQnlTcGxpdHRlcihcbiAgICAgICAgdGhpcy5fbWV0YWRhdGFbc3ltYm9sXSxcbiAgICAgICAga2V5LFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgdGhpcy5zcGxpdHRlclxuICAgICAgKTtcbiAgICB0aGlzLl9tZXRhZGF0YVtzeW1ib2xdW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gV3JpdGVzIGEgbWV0YWRhdGEgdmFsdWUgYXQgYSBnaXZlbiBuZXN0ZWQga2V5IHBhdGguXG4gICAqIEBzdW1tYXJ5IEVuc3VyZXMgdGhlIG1ldGFkYXRhIHJlY29yZCBleGlzdHMgZm9yIHRoZSBjb25zdHJ1Y3RvciwgbWlycm9ycyBpdCBvbiB0aGUgY29uc3RydWN0b3Igd2hlbiBlbmFibGVkLCBhbmQgc2V0cyB0aGUgcHJvdmlkZWQgdmFsdWUgb24gdGhlIG5lc3RlZCBrZXkgcGF0aCB1c2luZyB0aGUgY29uZmlndXJlZCBzcGxpdHRlci5cbiAgICogQHRlbXBsYXRlIE1cbiAgICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPnxzdHJpbmd9IG1vZGVsIFRhcmdldCBjb25zdHJ1Y3RvciB0byB3aGljaCB0aGUgbWV0YWRhdGEgYmVsb25ncyBvciBhIGRpcmVjdCBpZGVudGlmaWVyIHN0cmluZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBOZXN0ZWQga2V5IHBhdGggYXQgd2hpY2ggdG8gc3RvcmUgdGhlIHZhbHVlLlxuICAgKiBAcGFyYW0ge2FueX0gdmFsdWUgVmFsdWUgdG8gc3RvcmUgaW4gdGhlIG1ldGFkYXRhLlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgc3RhdGljIHNldChtb2RlbDogQ29uc3RydWN0b3IgfCBzdHJpbmcsIGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgaWYgKGtleSA9PT0gRGVjb3JhdGlvbktleXMuQ09OU1RSVUNUT1IpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtb2RlbCwgRGVjb3JhdGlvbktleXMuQ09OU1RSVUNUT1IsIHtcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0eXBlb2YgbW9kZWwgIT09IFwic3RyaW5nXCIpIG1vZGVsID0gdGhpcy5jb25zdHIobW9kZWwpIHx8IG1vZGVsO1xuICAgIGNvbnN0IHN5bWJvbCA9XG4gICAgICB0eXBlb2YgbW9kZWwgPT09IFwic3RyaW5nXCIgPyBTeW1ib2wuZm9yKG1vZGVsKSA6IHRoaXMuU3ltYm9sKG1vZGVsKTtcbiAgICB0aGlzLmlubmVyU2V0KHN5bWJvbCwga2V5LCB2YWx1ZSk7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIG1vZGVsICE9PSBcInN0cmluZ1wiICYmXG4gICAgICBNZXRhZGF0YS5taXJyb3IgJiZcbiAgICAgICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kZWwsIHRoaXMuYmFzZUtleSlcbiAgICApIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtb2RlbCwgdGhpcy5iYXNlS2V5LCB7XG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgIHZhbHVlOiB0aGlzLl9tZXRhZGF0YVtzeW1ib2xdLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWdpc3RlcnMgYSBkZWNvcmF0aW9uLWF3YXJlIGxpYnJhcnkgYW5kIGl0cyB2ZXJzaW9uLlxuICAgKiBAc3VtbWFyeSBTdG9yZXMgdGhlIHZlcnNpb24gc3RyaW5nIGZvciBhbiBpbnRlZ3JhdGluZyBsaWJyYXJ5IHVuZGVyIHRoZSBzaGFyZWQgbGlicmFyaWVzIG1ldGFkYXRhIHN5bWJvbCwgcHJldmVudGluZyBkdXBsaWNhdGUgcmVnaXN0cmF0aW9ucyBmb3IgdGhlIHNhbWUgbGlicmFyeSBpZGVudGlmaWVyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbGlicmFyeSBQYWNrYWdlIG5hbWUgb3IgaWRlbnRpZmllciB0byByZWdpc3Rlci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHZlcnNpb24gU2VtYW50aWMgdmVyc2lvbiBzdHJpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBsaWJyYXJ5LlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGxpYnJhcnkgaGFzIGFscmVhZHkgYmVlbiByZWdpc3RlcmVkLlxuICAgKi9cbiAgc3RhdGljIHJlZ2lzdGVyTGlicmFyeShsaWJyYXJ5OiBzdHJpbmcsIHZlcnNpb246IHN0cmluZykge1xuICAgIGNvbnN0IHN5bWJvbCA9IFN5bWJvbC5mb3IoRGVjb3JhdGlvbktleXMuTElCUkFSSUVTKTtcbiAgICBjb25zdCBsaWIgPSB0aGlzLmlubmVyR2V0KHN5bWJvbCwgbGlicmFyeSk7XG4gICAgaWYgKGxpYilcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYExpYnJhcnkgYWxyZWFkeSAke2xpYnJhcnl9IHJlZ2lzdGVyZWQgd2l0aCB2ZXJzaW9uICR7dmVyc2lvbn1gXG4gICAgICApO1xuICAgIHRoaXMuaW5uZXJTZXQoc3ltYm9sLCBsaWJyYXJ5LCB2ZXJzaW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTGlzdHMgcmVnaXN0ZXJlZCBkZWNvcmF0aW9uLWF3YXJlIGxpYnJhcmllcy5cbiAgICogQHN1bW1hcnkgUmV0dXJucyB0aGUgaW4tbWVtb3J5IG1hcCBvZiBsaWJyYXJ5IGlkZW50aWZpZXJzIHRvIHNlbWFudGljIHZlcnNpb25zIHRoYXQgaGF2ZSBiZWVuIHJlZ2lzdGVyZWQgd2l0aCB0aGUgRGVjb3JhdGlvbiBtZXRhZGF0YSBzdG9yZS5cbiAgICogQHJldHVybiB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gTWFwIG9mIHJlZ2lzdGVyZWQgbGlicmFyeSBpZGVudGlmaWVycyB0byB0aGVpciB2ZXJzaW9uIHN0cmluZ3MuXG4gICAqL1xuICBzdGF0aWMgbGlicmFyaWVzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIGNvbnN0IHN5bWJvbCA9IFN5bWJvbC5mb3IoRGVjb3JhdGlvbktleXMuTElCUkFSSUVTKTtcbiAgICByZXR1cm4gdGhpcy5pbm5lckdldChzeW1ib2wpIHx8IHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBKb2lucyBwYXRoIHNlZ21lbnRzIHVzaW5nIHRoZSBjdXJyZW50IHNwbGl0dGVyLlxuICAgKiBAc3VtbWFyeSBDb25zdHJ1Y3RzIGEgbmVzdGVkIG1ldGFkYXRhIGtleSBieSBjb25jYXRlbmF0aW5nIHN0cmluZyBzZWdtZW50cyB3aXRoIHRoZSBjb25maWd1cmVkIHNwbGl0dGVyIGZvciB1c2Ugd2l0aCB0aGUgbWV0YWRhdGEgc3RvcmUuXG4gICAqIEBwYXJhbSB7Li4uc3RyaW5nfSBzdHJzIEtleSBzZWdtZW50cyB0byBqb2luIGludG8gYSBmdWxsIG1ldGFkYXRhIHBhdGguXG4gICAqIEByZXR1cm4ge3N0cmluZ30gU3BsaXR0ZXItam9pbmVkIG1ldGFkYXRhIGtleS5cbiAgICovXG4gIHN0YXRpYyBrZXkoLi4uc3Ryczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gc3Rycy5qb2luKHRoaXMuc3BsaXR0ZXIpO1xuICB9XG59XG4iXX0=
|
|
@@ -4,4 +4,3 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export * from "./Metadata.js";
|
|
6
6
|
export * from "./types.js";
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWV0YWRhdGEvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsOEJBQTJCO0FBQzNCLDJCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uIEFnZ3JlZ2F0ZXMgbWV0YWRhdGEgdXRpbGl0aWVzIGFuZCB0eXBlIGhlbHBlcnNcbiAqIEBzdW1tYXJ5IEV4cG9zZXMgdGhlIHJ1bnRpbWUgTWV0YWRhdGEgc3RvcmUgYW5kIHN1cHBvcnRpbmcgdHlwaW5ncyBmcm9tIGEgc2luZ2xlIG1vZHVsZSBlbnRyeS5cbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vTWV0YWRhdGFcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzXCI7XG4iXX0=
|
|
@@ -1,2 +1 @@
|
|
|
1
1
|
import { DecorationKeys } from "./../constants.js";
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWV0YWRhdGEvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSwwQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWNvcmF0aW9uS2V5cyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gU2hhcGUgb2YgdGhlIG1ldGFkYXRhIHN0b3JlZCBmb3IgYSBkZWNvcmF0ZWQgbW9kZWwuXG4gKiBAc3VtbWFyeSBDYXB0dXJlcyB0aGUgY29uc3RydWN0b3IgcmVmZXJlbmNlIGFsb25nc2lkZSBvcHRpb25hbCBkZXNjcmlwdGlvbiwgcHJvcGVydHksIGFuZCBtZXRob2QgbWV0YWRhdGEgYnVja2V0cyBtYWludGFpbmVkIGJ5IHRoZSBkZWNvcmF0aW9uIHJ1bnRpbWUuXG4gKiBAdGVtcGxhdGUgTVxuICogQHR5cGVEZWYgQmFzaWNNZXRhZGF0YTxNPlxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxNPn0gW0RlY29yYXRpb25LZXlzLkNMQVNTXSBDYW5vbmljYWwgY29uc3RydWN0b3IgYXNzb2NpYXRlZCB3aXRoIHRoZSBtZXRhZGF0YSBlbnRyeS5cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gW0RlY29yYXRpb25LZXlzLkRFU0NSSVBUSU9OXSBIdW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbnMgZm9yIHRoZSBjbGFzcyBhbmQgaXRzIG1lbWJlcnMuXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIENvbnN0cnVjdG9yPE0+fHVuZGVmaW5lZD59IFtEZWNvcmF0aW9uS2V5cy5QUk9QRVJUSUVTXSBSZWZsZWN0ZWQgcHJvcGVydHkgdHlwZSBjb25zdHJ1Y3RvcnMga2V5ZWQgYnkgcHJvcGVydHkgbmFtZS5cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgQ29uc3RydWN0b3I8TT58dW5kZWZpbmVkPn0gW0RlY29yYXRpb25LZXlzLk1FVEhPRFNdIFJlZmxlY3RlZCBtZXRob2Qgc2lnbmF0dXJlIGNvbnN0cnVjdG9ycyBrZXllZCBieSBtZXRob2QgbmFtZS5cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdGlvblxuICovXG4vKiogQGlnbm9yZSAqL1xuZXhwb3J0IHR5cGUgQmFzaWNNZXRhZGF0YTxNPiA9IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDYW5vbmljYWwgY29uc3RydWN0b3IgYXNzb2NpYXRlZCB3aXRoIHRoZSBtZXRhZGF0YSBlbnRyeS5cbiAgICogQHR5cGUge0NvbnN0cnVjdG9yPE0+fVxuICAgKi9cbiAgW0RlY29yYXRpb25LZXlzLkNMQVNTXTogQ29uc3RydWN0b3I8TT47XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTWFwIG9mIGh1bWFuLWZyaWVuZGx5IGRlc2NyaXB0aW9ucyBmb3IgdGhlIGNsYXNzIGFuZCBpdHMgbWVtYmVycy5cbiAgICogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59XG4gICAqL1xuICBbRGVjb3JhdGlvbktleXMuREVTQ1JJUFRJT05dPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQcm9wZXJ0eSBtZXRhZGF0YSBrZXllZCBieSBwcm9wZXJ0eSBuYW1lIGluY2x1ZGluZyByZWNvcmRlZCBkZXNpZ24gdHlwZXMuXG4gICAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBDb25zdHJ1Y3RvcjxNPnx1bmRlZmluZWQ+fVxuICAgKi9cbiAgW0RlY29yYXRpb25LZXlzLlBST1BFUlRJRVNdOiBSZWNvcmQ8c3RyaW5nLCBDb25zdHJ1Y3RvcjxNPiB8IHVuZGVmaW5lZD47XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTWV0aG9kIG1ldGFkYXRhIGtleWVkIGJ5IG1ldGhvZCBuYW1lIGluY2x1ZGluZyByZWNvcmRlZCBkZXNpZ24gc2lnbmF0dXJlcy5cbiAgICogQHR5cGUge1JlY29yZDxzdHJpbmcsIENvbnN0cnVjdG9yPE0+fHVuZGVmaW5lZD59XG4gICAqL1xuICBbRGVjb3JhdGlvbktleXMuTUVUSE9EU106IFJlY29yZDxzdHJpbmcsIENvbnN0cnVjdG9yPE0+IHwgdW5kZWZpbmVkPjtcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnN0cnVjdG9yIHNpZ25hdHVyZSBmb3IgaW5zdGFudGlhdGluZyB0eXBlLXNhZmUgb2JqZWN0cy5cbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgYSBnZW5lcmljIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIGNhcGFibGUgb2YgY3JlYXRpbmcgaW5zdGFuY2VzIG9mIGBPQkpgIHdpdGggYXJiaXRyYXJ5IGFyZ3VtZW50cy5cbiAqIEB0ZW1wbGF0ZSBPQkpcbiAqIEB0eXBlRGVmIENvbnN0cnVjdG9yXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgQ29uc3RydWN0b3I8T0JKID0gYW55PiA9IHsgbmV3ICguLi5hcmdzOiBhbnlbXSk6IE9CSiB9O1xuIl19
|
package/lib/index.cjs
CHANGED
|
@@ -32,6 +32,5 @@ __exportStar(require("./decorators.cjs"), exports);
|
|
|
32
32
|
* @const VERSION
|
|
33
33
|
* @memberOf module:decoration
|
|
34
34
|
*/
|
|
35
|
-
exports.VERSION = "0.0.
|
|
35
|
+
exports.VERSION = "0.0.22";
|
|
36
36
|
index_1.Metadata.registerLibrary("@decaf-ts/decoration", exports.VERSION);
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsZ0RBQTRDO0FBRTVDLHlEQUE2QjtBQUM3Qix1REFBMkI7QUFDM0Isa0RBQTRCO0FBQzVCLG1EQUE2QjtBQUU3Qjs7Ozs7O0dBTUc7QUFDVSxRQUFBLE9BQU8sR0FBRyxhQUFhLENBQUM7QUFFckMsZ0JBQVEsQ0FBQyxlQUFlLENBQUMsc0JBQXNCLEVBQUUsZUFBTyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbiBSb290IGVudHJ5IHBvaW50IGZvciB0aGUgZGVjb3JhdGlvbiBwYWNrYWdlLlxuICogQHN1bW1hcnkgUmUtZXhwb3J0cyB0aGUgYnVpbGRlciBBUEksIGRlY29yYXRvciBoZWxwZXJzLCBtZXRhZGF0YSB1dGlsaXRpZXMsIGFuZCBzaGFyZWQgY29uc3RhbnRzIHNvIGNvbnN1bWVycyBjYW4gaW1wb3J0IHtAbGluayBEZWNvcmF0aW9ufSwge0BsaW5rIE1ldGFkYXRhfSwge0BsaW5rIERlY29yYXRpb25LZXlzfSwgYW5kIHtAbGluayBEZWZhdWx0Rmxhdm91cn0gZnJvbSBhIHNpbmdsZSBzdXJmYWNlLlxuICogQG1vZHVsZSBkZWNvcmF0aW9uXG4gKi9cblxuaW1wb3J0IHsgTWV0YWRhdGEgfSBmcm9tIFwiLi9tZXRhZGF0YS9pbmRleFwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tZXRhZGF0YVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGVjb3JhdGlvbiBwYWNrYWdlLlxuICogQHN1bW1hcnkgU3RvcmVzIHRoZSBzZW1hbnRpYyB2ZXJzaW9uIHN0cmluZyByZWdpc3RlcmVkIHRocm91Z2gge0BsaW5rIE1ldGFkYXRhLnJlZ2lzdGVyTGlicmFyeX0uXG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQGNvbnN0IFZFUlNJT05cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdGlvblxuICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IFwiIyNWRVJTSU9OIyNcIjtcblxuTWV0YWRhdGEucmVnaXN0ZXJMaWJyYXJ5KFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIiwgVkVSU0lPTik7XG4iXX0=
|
package/lib/index.d.ts
CHANGED
|
@@ -440,4 +440,3 @@ class Metadata {
|
|
|
440
440
|
}
|
|
441
441
|
}
|
|
442
442
|
exports.Metadata = Metadata;
|
|
443
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWV0YWRhdGEvTWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNEJBLGdEQW1CQztBQTRCRCxnREF5QkM7QUFuR0Qsa0RBQWlFO0FBQ2pFLDRCQUEwQjtBQUUxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsR0FBd0IsRUFDeEIsSUFBWSxFQUNaLFdBQW1CLDZCQUFpQjtJQUVwQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLElBQUksT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUVsQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQ0UsT0FBTyxLQUFLLElBQUk7WUFDaEIsT0FBTyxLQUFLLFNBQVM7WUFDckIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQztZQUVuRCxPQUFPLFNBQVMsQ0FBQztRQUNuQixPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsR0FBd0IsRUFDeEIsSUFBWSxFQUNaLEtBQVUsRUFDVixRQUFRLEdBQUcsNkJBQWlCO0lBRTVCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTztJQUU5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Q0wsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFlLEVBQUUsT0FBZTtRQUNyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDBCQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDM0MsSUFBSSxHQUFHO1lBQ0wsTUFBTSxJQUFJLEtBQUssQ0FDYixtQkFBbUIsT0FBTyw0QkFBNEIsT0FBTyxFQUFFLENBQ2hFLENBQUM7UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsU0FBUztRQUNkLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsMEJBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFjO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7QUFqYUgsNEJBa2FDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzaWNNZXRhZGF0YSwgQ29uc3RydWN0b3IgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgRGVjb3JhdGlvbktleXMsIE9iamVjdEtleVNwbGl0dGVyIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IFwicmVmbGVjdC1tZXRhZGF0YVwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgYSBuZXN0ZWQgdmFsdWUgZnJvbSBhbiBvYmplY3QgZ2l2ZW4gYSBwYXRoLlxuICogQHN1bW1hcnkgV2Fsa3MgYW4gb2JqZWN0IHN0cnVjdHVyZSB1c2luZyBhIHNwbGl0dGVyLWRlbGltaXRlZCBwYXRoIGFuZCByZXR1cm5zIHRoZSB2YWx1ZSBhdCB0aGF0IGxvY2F0aW9uIG9yIGB1bmRlZmluZWRgIGlmIGFueSBrZXkgaXMgbWlzc2luZy5cbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gb2JqIE9iamVjdCB0byB0cmF2ZXJzZSBmb3IgdGhlIGxvb2t1cC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFNwbGl0dGVyLWRlbGltaXRlZCBwYXRoIHRvIHRoZSBkZXNpcmVkIHZhbHVlIChlLmcuLCBcImEuYi5jXCIpLlxuICogQHBhcmFtIHtzdHJpbmd9IFtzcGxpdHRlcj1PYmplY3RLZXlTcGxpdHRlcl0gRGVsaW1pdGVyIHVzZWQgdG8gc2VwYXJhdGUgdGhlIHBhdGggc2VnbWVudHMuXG4gKiBAcmV0dXJuIHthbnl8dW5kZWZpbmVkfSBWYWx1ZSByZXNvbHZlZCBhdCB0aGUgZ2l2ZW4gcGF0aCBvciBgdW5kZWZpbmVkYCB3aGVuIG5vdCBmb3VuZC5cbiAqIEBmdW5jdGlvbiBnZXRWYWx1ZUJ5U3BsaXR0ZXJcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQyBhcyBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgRiBhcyBnZXRWYWx1ZUJ5U3BsaXR0ZXJcbiAqICAgcGFydGljaXBhbnQgTyBhcyBPYmplY3RcbiAqICAgQy0+PkY6IChvYmosIHBhdGgsIHNwbGl0dGVyKVxuICogICBGLT4+Rjogc3BsaXQgcGF0aCBpbnRvIGtleXNcbiAqICAgbG9vcCBmb3IgZWFjaCBrZXlcbiAqICAgICBGLT4+TzogYWNjZXNzIGN1cnJlbnRba2V5XVxuICogICAgIGFsdCBtaXNzaW5nIG9yIG51bGxpc2hcbiAqICAgICAgIEYtLT4+QzogcmV0dXJuIHVuZGVmaW5lZFxuICogICAgIGVuZFxuICogICBlbmRcbiAqICAgRi0tPj5DOiByZXR1cm4gZmluYWwgdmFsdWVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsdWVCeVNwbGl0dGVyKFxuICBvYmo6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gIHBhdGg6IHN0cmluZyxcbiAgc3BsaXR0ZXI6IHN0cmluZyA9IE9iamVjdEtleVNwbGl0dGVyXG4pOiBhbnkge1xuICBjb25zdCBrZXlzID0gcGF0aC5zcGxpdChzcGxpdHRlcik7XG4gIGxldCBjdXJyZW50ID0gb2JqO1xuXG4gIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICBpZiAoXG4gICAgICBjdXJyZW50ID09PSBudWxsIHx8XG4gICAgICBjdXJyZW50ID09PSB1bmRlZmluZWQgfHxcbiAgICAgICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY3VycmVudCwga2V5KVxuICAgIClcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY3VycmVudCA9IGN1cnJlbnRba2V5XTtcbiAgfVxuXG4gIHJldHVybiBjdXJyZW50O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTZXRzIGEgbmVzdGVkIHZhbHVlIG9uIGFuIG9iamVjdCBnaXZlbiBhIHBhdGguXG4gKiBAc3VtbWFyeSBUcmF2ZXJzZXMgb3IgY3JlYXRlcyBpbnRlcm1lZGlhdGUgb2JqZWN0cyBmb2xsb3dpbmcgYSBzcGxpdHRlci1kZWxpbWl0ZWQgcGF0aCBhbmQgYXNzaWducyB0aGUgcHJvdmlkZWQgdmFsdWUgYXQgdGhlIGRlc3RpbmF0aW9uIGtleS5cbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gb2JqIE9iamVjdCB0byBtdXRhdGUgd2hpbGUgZHJpbGxpbmcgaW50byBuZXN0ZWQga2V5cy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFNwbGl0dGVyLWRlbGltaXRlZCBkZXN0aW5hdGlvbiBwYXRoIChlLmcuLCBcImEuYi5jXCIpLlxuICogQHBhcmFtIHthbnl9IHZhbHVlIFZhbHVlIHRvIHNldCBhdCB0aGUgZGVzdGluYXRpb24gbm9kZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbc3BsaXR0ZXI9T2JqZWN0S2V5U3BsaXR0ZXJdIERlbGltaXRlciB1c2VkIHRvIHNlcGFyYXRlIHRoZSBwYXRoIHNlZ21lbnRzLlxuICogQHJldHVybiB7dm9pZH1cbiAqIEBmdW5jdGlvbiBzZXRWYWx1ZUJ5U3BsaXR0ZXJcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQyBhcyBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgRiBhcyBzZXRWYWx1ZUJ5U3BsaXR0ZXJcbiAqICAgcGFydGljaXBhbnQgTyBhcyBPYmplY3RcbiAqICAgQy0+PkY6IChvYmosIHBhdGgsIHZhbHVlLCBzcGxpdHRlcilcbiAqICAgRi0+PkY6IHNwbGl0IHBhdGggaW50byBrZXlzXG4gKiAgIGxvb3AgZm9yIGVhY2gga2V5XG4gKiAgICAgYWx0IGtleSBtaXNzaW5nXG4gKiAgICAgICBGLT4+TzogY3JlYXRlIGludGVybWVkaWF0ZSBvYmplY3RcbiAqICAgICBlbHNlIGtleSBleGlzdHNcbiAqICAgICAgIEYtPj5POiBkZXNjZW5kIGludG8gZXhpc3Rpbmcgb2JqZWN0XG4gKiAgICAgZW5kXG4gKiAgIGVuZFxuICogICBGLS0+PkM6IHZvaWRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0VmFsdWVCeVNwbGl0dGVyKFxuICBvYmo6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gIHBhdGg6IHN0cmluZyxcbiAgdmFsdWU6IGFueSxcbiAgc3BsaXR0ZXIgPSBPYmplY3RLZXlTcGxpdHRlclxuKTogdm9pZCB7XG4gIGNvbnN0IGtleXMgPSBwYXRoLnNwbGl0KHNwbGl0dGVyKS5maWx0ZXIoKGspID0+IGsubGVuZ3RoID4gMCk7XG4gIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gIGxldCBjdXJyZW50OiBSZWNvcmQ8YW55LCBhbnk+ID0gb2JqO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICBjb25zdCBrZXkgPSBrZXlzW2ldO1xuICAgIGlmIChcbiAgICAgIGN1cnJlbnRba2V5XSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICBjdXJyZW50W2tleV0gPT09IG51bGwgfHxcbiAgICAgIHR5cGVvZiBjdXJyZW50W2tleV0gIT09IFwib2JqZWN0XCJcbiAgICApIHtcbiAgICAgIGN1cnJlbnRba2V5XSA9IHt9O1xuICAgIH1cbiAgICBjdXJyZW50ID0gY3VycmVudFtrZXldO1xuICB9XG5cbiAgY29uc3QgbGFzdEtleSA9IGtleXNba2V5cy5sZW5ndGggLSAxXTtcbiAgY3VycmVudFtsYXN0S2V5XSA9IHZhbHVlO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDZW50cmFsaXplZCBydW50aW1lIG1ldGFkYXRhIHN0b3JlIGJvdW5kIHRvIGNvbnN0cnVjdG9ycy5cbiAqIEBzdW1tYXJ5IFByb3ZpZGVzIHV0aWxpdGllcyB0byByZWFkIGFuZCB3cml0ZSBzdHJ1Y3R1cmVkIG1ldGFkYXRhIGZvciBjbGFzc2VzIGFuZCB0aGVpciBtZW1iZXJzLCB3aXRoIG9wdGlvbmFsIG1pcnJvcmluZyBvbnRvIHRoZSBjb25zdHJ1Y3RvciB2aWEgYSB3ZWxsLWtub3duIHN5bWJvbCBrZXkuIFN1cHBvcnRzIG5lc3RlZCBrZXkgcGF0aHMgdXNpbmcgYSBjb25maWd1cmFibGUgc3BsaXR0ZXIgYW5kIG9mZmVycyBib3RoIGluc3RhbmNlIGFuZCBzdGF0aWMgQVBJcy5cbiAqIEB0ZW1wbGF0ZSBNIFRoZSBtb2RlbCB0eXBlIHRoZSBtZXRhZGF0YSBiZWxvbmdzIHRvLlxuICogQHRlbXBsYXRlIE1FVEEgRXh0ZW5kcyBCYXNpY01ldGFkYXRhPE0+IHJlcHJlc2VudGluZyB0aGUgbWV0YWRhdGEgc3RydWN0dXJlLlxuICogQHBhcmFtIHtzdHJpbmd9IFtmbGF2b3VyPURlZmF1bHRGbGF2b3VyXSBPcHRpb25hbCBmbGF2b3VyIGlkZW50aWZpZXIgYXBwbGllZCB3aGVuIGluc3RhbnRpYXRpbmcgaGVscGVyIGJ1aWxkZXJzLlxuICogQGNsYXNzXG4gKiBAZXhhbXBsZVxuICogLy8gRGVmaW5lIGFuZCByZWFkIG1ldGFkYXRhIGZvciBhIGNsYXNzXG4gKiBjbGFzcyBVc2VyIHsgbmFtZSE6IHN0cmluZyB9XG4gKiBNZXRhZGF0YS5zZXQoVXNlciwgXCJkZXNjcmlwdGlvbi5jbGFzc1wiLCBcIkEgdXNlciBtb2RlbFwiKTtcbiAqIE1ldGFkYXRhLnNldChVc2VyLCBcInByb3BlcnRpZXMubmFtZVwiLCBTdHJpbmcpO1xuICogY29uc3QgZGVzYyA9IE1ldGFkYXRhLmdldChVc2VyLCBcImRlc2NyaXB0aW9uLmNsYXNzXCIpOyAvLyBcIkEgdXNlciBtb2RlbFwiXG4gKiBjb25zdCB0eXBlID0gTWV0YWRhdGEudHlwZShVc2VyLCBcIm5hbWVcIik7IC8vIFN0cmluZ1xuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDIGFzIENvbnN0cnVjdG9yXG4gKiAgIHBhcnRpY2lwYW50IFMgYXMgTWV0YWRhdGEgKHN0YXRpYylcbiAqICAgQy0+PlM6IHNldChVc2VyLCBcInByb3BlcnRpZXMubmFtZVwiLCBTdHJpbmcpXG4gKiAgIEMtPj5TOiBnZXQoVXNlciwgXCJwcm9wZXJ0aWVzLm5hbWVcIilcbiAqICAgUy0tPj5DOiBTdHJpbmdcbiAqL1xuZXhwb3J0IGNsYXNzIE1ldGFkYXRhIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBJbi1tZW1vcnkgc3RvcmFnZSBvZiBtZXRhZGF0YSBieSBjb25zdHJ1Y3RvciBzeW1ib2xcbiAgICogQHN1bW1hcnkgTWFwcyBhIFN5bWJvbCBkZXJpdmVkIGZyb20gdGhlIGNvbnN0cnVjdG9yIHRvIGl0cyBtZXRhZGF0YSBvYmplY3QsIGVuYWJsaW5nIGVmZmljaWVudCBsb29rdXAuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBfbWV0YWRhdGE6IFJlY29yZDxzeW1ib2wsIGFueT4gPSB7fTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhdGggZGVsaW1pdGVyIGZvciBuZXN0ZWQgbWV0YWRhdGEga2V5c1xuICAgKiBAc3VtbWFyeSBVc2VkIGJ5IGdldC9zZXQgb3BlcmF0aW9ucyB0byBuYXZpZ2F0ZSBuZXN0ZWQgc3RydWN0dXJlcywgZGVmYXVsdHMgdG8gT2JqZWN0S2V5U3BsaXR0ZXIuXG4gICAqL1xuICBzdGF0aWMgc3BsaXR0ZXIgPSBPYmplY3RLZXlTcGxpdHRlcjtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBTeW1ib2wga2V5IHVzZWQgdG8gbWlycm9yIG1ldGFkYXRhIG9uIHRoZSBjb25zdHJ1Y3RvclxuICAgKiBAc3VtbWFyeSBXaGVuIG1pcnJvcmluZyBpcyBlbmFibGVkLCB0aGUgbWV0YWRhdGEgb2JqZWN0IGlzIGRlZmluZWQgb24gdGhlIGNvbnN0cnVjdG9yIHVuZGVyIHRoaXMgbm9uLWVudW1lcmFibGUga2V5LlxuICAgKi9cbiAgc3RhdGljIGJhc2VLZXkgPSBEZWNvcmF0aW9uS2V5cy5SRUZMRUNUO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbnRyb2xzIHdoZXRoZXIgbWV0YWRhdGEgaXMgbWlycm9yZWQgb250byB0aGUgY29uc3RydWN0b3JcbiAgICogQHN1bW1hcnkgV2hlbiB0cnVlLCB0aGUgbWV0YWRhdGEgb2JqZWN0IGlzIGRlZmluZWQgb24gdGhlIGNvbnN0cnVjdG9yIHVuZGVyIHRoZSBub24tZW51bWVyYWJsZSBiYXNlS2V5LlxuICAgKi9cbiAgc3RhdGljIG1pcnJvcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgc3RhdGljIFN5bWJvbDxNPihvYmo6IENvbnN0cnVjdG9yPE0+KSB7XG4gICAgcmV0dXJuIFN5bWJvbC5mb3IoW29iai50b1N0cmluZygpLCBvYmoubmFtZV0uam9pbihcIiAtIFwiKSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIExpc3RzIGtub3duIHByb3BlcnR5IGtleXMgZm9yIGEgbW9kZWwuXG4gICAqIEBzdW1tYXJ5IFJlYWRzIHRoZSBtZXRhZGF0YSBlbnRyeSBhbmQgcmV0dXJucyB0aGUgbmFtZXMgb2YgcHJvcGVydGllcyB0aGF0IGhhdmUgcmVjb3JkZWQgdHlwZSBpbmZvcm1hdGlvbi5cbiAgICogQHBhcmFtIHtDb25zdHJ1Y3Rvcn0gbW9kZWwgVGFyZ2V0IGNvbnN0cnVjdG9yIHdob3NlIHByb3BlcnR5IG1ldGFkYXRhIHNob3VsZCBiZSBpbnNwZWN0ZWQuXG4gICAqIEByZXR1cm4ge3N0cmluZ1tdfHVuZGVmaW5lZH0gQXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgb3IgYHVuZGVmaW5lZGAgaWYgbm8gbWV0YWRhdGEgZXhpc3RzLlxuICAgKi9cbiAgc3RhdGljIHByb3BlcnRpZXMobW9kZWw6IENvbnN0cnVjdG9yKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG1ldGEgPSB0aGlzLmdldChtb2RlbCk7XG4gICAgaWYgKCFtZXRhKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhtZXRhLnByb3BlcnRpZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMaXN0cyBrbm93biBtZXRob2RzIGZvciBhIG1vZGVsLlxuICAgKiBAc3VtbWFyeSBSZWFkcyB0aGUgbWV0YWRhdGEgZW50cnkgYW5kIHJldHVybnMgdGhlIG1ldGhvZCBuYW1lcyB0aGF0IGhhdmUgcmVjb3JkZWQgc2lnbmF0dXJlIG1ldGFkYXRhIGZvciB0aGUgcHJvdmlkZWQgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7Q29uc3RydWN0b3J9IG1vZGVsIFRhcmdldCBjb25zdHJ1Y3RvciB3aG9zZSBtZXRob2QgbWV0YWRhdGEgc2hvdWxkIGJlIGluc3BlY3RlZC5cbiAgICogQHJldHVybiB7c3RyaW5nW118dW5kZWZpbmVkfSBBcnJheSBvZiBtZXRob2QgbmFtZXMgb3IgYHVuZGVmaW5lZGAgaWYgbm8gbWV0YWRhdGEgZXhpc3RzLlxuICAgKi9cbiAgc3RhdGljIG1ldGhvZHMobW9kZWw6IENvbnN0cnVjdG9yKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG1ldGEgPSB0aGlzLmdldChtb2RlbCwgRGVjb3JhdGlvbktleXMuTUVUSE9EUyk7XG4gICAgaWYgKCFtZXRhKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhtZXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gZm9yIGEgY2xhc3Mgb3IgYSBwcm9wZXJ0eS5cbiAgICogQHN1bW1hcnkgTG9va3MgdXAgdGhlIGRlc2NyaXB0aW9uIHN0b3JlZCB1bmRlciB0aGUgbWV0YWRhdGEgXCJkZXNjcmlwdGlvblwiIG1hcC4gSWYgYSBwcm9wZXJ0eSBrZXkgaXMgcHJvdmlkZWQsIHJldHVybnMgdGhlIHByb3BlcnR5J3MgZGVzY3JpcHRpb247IG90aGVyd2lzZSByZXR1cm5zIHRoZSBjbGFzcyBkZXNjcmlwdGlvbi5cbiAgICogQHRlbXBsYXRlIE1cbiAgICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gbW9kZWwgVGFyZ2V0IGNvbnN0cnVjdG9yIHdob3NlIGRlc2NyaXB0aW9uIGlzIGJlaW5nIHJldHJpZXZlZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtwcm9wXSBPcHRpb25hbCBwcm9wZXJ0eSBrZXkgKHR5cGVkIGFzIGBrZXlvZiBNYCkgZm9yIHdoaWNoIHRvIGZldGNoIHRoZSBkZXNjcmlwdGlvbi5cbiAgICogQHJldHVybiB7c3RyaW5nfHVuZGVmaW5lZH0gRGVzY3JpcHRpb24gdGV4dCBpZiBwcmVzZW50LCBvdGhlcndpc2UgYHVuZGVmaW5lZGAuXG4gICAqL1xuICBzdGF0aWMgZGVzY3JpcHRpb248TT4oXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yPE0+LFxuICAgIHByb3A/OiBrZXlvZiBNXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KFxuICAgICAgbW9kZWwsXG4gICAgICB0aGlzLmtleShcbiAgICAgICAgRGVjb3JhdGlvbktleXMuREVTQ1JJUFRJT04sXG4gICAgICAgIChwcm9wID8gcHJvcCA6IERlY29yYXRpb25LZXlzLkNMQVNTKSBhcyBzdHJpbmdcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgdGhlIHJlY29yZGVkIHBhcmFtcyBmb3IgYSBtZXRob2QuXG4gICAqIEBzdW1tYXJ5IFJlYWRzIHRoZSBtZXRhZGF0YSBlbnRyeSB1bmRlciBgbWV0aG9kcy48cHJvcD4uZGVzaWduOnBhcmFtdHlwZXNgIHRvIHJldHVybiB0aGUgcGFyYW1ldGVyIGNvbnN0cnVjdG9ycyBmb3IgdGhlIGdpdmVuIG1ldGhvZC5cbiAgICogQHRlbXBsYXRlIE1cbiAgICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gbW9kZWwgVGFyZ2V0IGNvbnN0cnVjdG9yIG93bmluZyB0aGUgbWV0aG9kIG1ldGFkYXRhLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcCBNZXRob2QgbmFtZSB3aG9zZSBwYXJhbWV0ZXJzIHNob3VsZCBiZSBmZXRjaGVkLlxuICAgKiBAcmV0dXJuIHthbnlbXXx1bmRlZmluZWR9IEFycmF5IG9mIGNvbnN0cnVjdG9yIHJlZmVyZW5jZXMgZGVzY3JpYmluZyBlYWNoIHBhcmFtZXRlciBvciBgdW5kZWZpbmVkYCB3aGVuIG5vdCBhdmFpbGFibGUuXG4gICAqL1xuICBzdGF0aWMgcGFyYW1zPE0+KG1vZGVsOiBDb25zdHJ1Y3RvcjxNPiwgcHJvcDogc3RyaW5nKTogYW55W10gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmdldChcbiAgICAgIG1vZGVsLFxuICAgICAgdGhpcy5rZXkoRGVjb3JhdGlvbktleXMuTUVUSE9EUywgcHJvcCwgRGVjb3JhdGlvbktleXMuREVTSUdOX1BBUkFNUylcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgYSBzaW5nbGUgcmVjb3JkZWQgcGFyYW1ldGVyIHR5cGUgZm9yIGEgbWV0aG9kLlxuICAgKiBAc3VtbWFyeSBMb29rcyB1cCB0aGUgcGFyYW1ldGVyIG1ldGFkYXRhIGZvciB0aGUgcHJvdmlkZWQgaW5kZXgsIGVuZm9yY2luZyBib3VuZHMgYW5kIHJldHVybmluZyB0aGUgY29uc3RydWN0b3IgcmVmZXJlbmNlIGZvciB0aGF0IGFyZ3VtZW50LlxuICAgKiBAdGVtcGxhdGUgTVxuICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fSBtb2RlbCBUYXJnZXQgY29uc3RydWN0b3Igb3duaW5nIHRoZSBtZXRob2QgbWV0YWRhdGEuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wIE1ldGhvZCBuYW1lIHdob3NlIHBhcmFtZXRlciBzaG91bGQgYmUgcmV0dXJuZWQuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCBaZXJvLWJhc2VkIGluZGV4IG9mIHRoZSBkZXNpcmVkIHBhcmFtZXRlciBtZXRhZGF0YS5cbiAgICogQHJldHVybiB7YW55fHVuZGVmaW5lZH0gQ29uc3RydWN0b3IgcmVmZXJlbmNlIGZvciB0aGUgcGFyYW1ldGVyIG9yIGB1bmRlZmluZWRgIGlmIG5vdCByZWNvcmRlZC5cbiAgICovXG4gIHN0YXRpYyBwYXJhbTxNPihcbiAgICBtb2RlbDogQ29uc3RydWN0b3I8TT4sXG4gICAgcHJvcDogc3RyaW5nLFxuICAgIGluZGV4OiBudW1iZXJcbiAgKTogYW55IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnBhcmFtcyhtb2RlbCwgcHJvcCk7XG4gICAgaWYgKCFwYXJhbXMpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKGluZGV4ID4gcGFyYW1zLmxlbmd0aCAtIDEpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBQYXJhbWV0ZXIgaW5kZXggJHtpbmRleH0gb3V0IG9mIHJhbmdlIGZvciAke1N0cmluZyhwcm9wKX1gXG4gICAgICApO1xuICAgIHJldHVybiBwYXJhbXNbaW5kZXhdO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgdGhlIHJlY29yZGVkIHJldHVybiB0eXBlIGZvciBhIG1ldGhvZC5cbiAgICogQHN1bW1hcnkgUmVhZHMgdGhlIG1ldGFkYXRhIGVudHJ5IHVuZGVyIGBtZXRob2RzLjxwcm9wPi5kZXNpZ246cmV0dXJudHlwZWAgdG8gcmV0dXJuIHRoZSByZXR1cm4gdHlwZSBmb3IgdGhlIGdpdmVuIG1ldGhvZC5cbiAgICogQHRlbXBsYXRlIE1cbiAgICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gbW9kZWwgVGFyZ2V0IGNvbnN0cnVjdG9yIHdob3NlIG1ldGhvZCBtZXRhZGF0YSBzaG91bGQgYmUgaW5zcGVjdGVkLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcCBNZXRob2QgbmFtZSB3aG9zZSByZXR1cm4gdHlwZSBzaG91bGQgYmUgZmV0Y2hlZC5cbiAgICogQHJldHVybiB7YW55fHVuZGVmaW5lZH0gQ29uc3RydWN0b3IgcmVmZXJlbmNlIGZvciB0aGUgcmV0dXJuIHR5cGUgb3IgYHVuZGVmaW5lZGAgd2hlbiBub3QgYXZhaWxhYmxlLlxuICAgKi9cbiAgc3RhdGljIHJldHVybjxNPihtb2RlbDogQ29uc3RydWN0b3I8TT4sIHByb3A6IHN0cmluZyk6IGFueSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KFxuICAgICAgbW9kZWwsXG4gICAgICB0aGlzLmtleShEZWNvcmF0aW9uS2V5cy5NRVRIT0RTLCBwcm9wLCBEZWNvcmF0aW9uS2V5cy5ERVNJR05fUkVUVVJOKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyB0aGUgcmVjb3JkZWQgZGVzaWduIHR5cGUgZm9yIGEgcHJvcGVydHkuXG4gICAqIEBzdW1tYXJ5IFJlYWRzIHRoZSBtZXRhZGF0YSBlbnRyeSB1bmRlciBgcHJvcGVydGllcy48cHJvcD5gIHRvIHJldHVybiB0aGUgY29uc3RydWN0b3IgcmVjb3JkZWQgZm9yIHRoZSBnaXZlbiBwcm9wZXJ0eSBuYW1lLlxuICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yfSBtb2RlbCBUYXJnZXQgY29uc3RydWN0b3Igd2hvc2UgcHJvcGVydHkgbWV0YWRhdGEgc2hvdWxkIGJlIGluc3BlY3RlZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHByb3AgUHJvcGVydHkgbmFtZSB3aG9zZSB0eXBlIG1ldGFkYXRhIHNob3VsZCBiZSByZXR1cm5lZC5cbiAgICogQHJldHVybiB7Q29uc3RydWN0b3J8dW5kZWZpbmVkfSBDb25zdHJ1Y3RvciByZWZlcmVuY2UgZm9yIHRoZSBwcm9wZXJ0eSB0eXBlIG9yIGB1bmRlZmluZWRgIGlmIG5vdCBhdmFpbGFibGUuXG4gICAqL1xuICBzdGF0aWMgdHlwZShtb2RlbDogQ29uc3RydWN0b3IsIHByb3A6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmdldChtb2RlbCwgdGhpcy5rZXkoRGVjb3JhdGlvbktleXMuUFJPUEVSVElFUywgcHJvcCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXNvbHZlcyB0aGUgY2Fub25pY2FsIGNvbnN0cnVjdG9yIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvdmlkZWQgbW9kZWwgaGFuZGxlIGFuZCBtZXRhZGF0YS5cbiAgICogQHN1bW1hcnkgUmV0dXJucyB0aGUgc3RvcmVkIGNvbnN0cnVjdG9yIHJlZmVyZW5jZSB3aGVuIHRoZSBwcm92aWRlZCBtb2RlbCBpcyBhIHByb3h5IG9yIHJlZHVjZWQgdmFsdWUuIEZhbGxzIGJhY2sgdG8gdGhlIG9yaWdpbmFsIG1vZGVsIHdoZW4gbm8gY29uc3RydWN0b3IgbWV0YWRhdGEgaGFzIGJlZW4gcmVjb3JkZWQgeWV0LlxuICAgKiBAdGVtcGxhdGUgTVxuICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fSBtb2RlbCBNb2RlbCB1c2VkIHdoZW4gcmVjb3JkaW5nIG1ldGFkYXRhLlxuICAgKiBAcmV0dXJuIHtDb25zdHJ1Y3RvcjxNPn0gQ2Fub25pY2FsIGNvbnN0cnVjdG9yIGlmIHN0b3JlZCwgb3RoZXJ3aXNlIHRoZSBwcm92aWRlZCBvbmVgLlxuICAgKi9cbiAgc3RhdGljIGNvbnN0cjxNPihtb2RlbDogQ29uc3RydWN0b3I8TT4pOiBDb25zdHJ1Y3RvcjxNPiB7XG4gICAgcmV0dXJuIG1vZGVsW0RlY29yYXRpb25LZXlzLkNPTlNUUlVDVE9SIGFzIGtleW9mIHR5cGVvZiBtb2RlbF0gfHwgbW9kZWw7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyBtZXRhZGF0YSBmb3IgYSBtb2RlbCBvciBhIHNwZWNpZmljIGtleSB3aXRoaW4gaXQuXG4gICAqIEBzdW1tYXJ5IFdoZW4gY2FsbGVkIHdpdGggYSBjb25zdHJ1Y3RvciBvbmx5LCByZXR1cm5zIHRoZSBlbnRpcmUgbWV0YWRhdGEgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbW9kZWwuIFdoZW4gYSBrZXkgcGF0aCBpcyBwcm92aWRlZCwgcmV0dXJucyB0aGUgdmFsdWUgc3RvcmVkIGF0IHRoYXQgbmVzdGVkIGtleS5cbiAgICogQHRlbXBsYXRlIE1cbiAgICogQHRlbXBsYXRlIE1FVEFcbiAgICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gbW9kZWwgVGFyZ2V0IGNvbnN0cnVjdG9yIHVzZWQgdG8gbG9jYXRlIHRoZSBtZXRhZGF0YSByZWNvcmQuXG4gICAqIEByZXR1cm4ge01FVEF8dW5kZWZpbmVkfSBNZXRhZGF0YSBvYmplY3QsIHRoZSB2YWx1ZSBhdCB0aGUga2V5IHBhdGgsIG9yIGB1bmRlZmluZWRgIGlmIG5vdGhpbmcgZXhpc3RzLlxuICAgKi9cbiAgc3RhdGljIGdldDxNLCBNRVRBIGV4dGVuZHMgQmFzaWNNZXRhZGF0YTxNPiA9IEJhc2ljTWV0YWRhdGE8TT4+KFxuICAgIG1vZGVsOiBDb25zdHJ1Y3RvcjxNPlxuICApOiBNRVRBIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyBtZXRhZGF0YSBmb3IgYSBtb2RlbCBvciBhIHNwZWNpZmljIGtleSB3aXRoaW4gaXQuXG4gICAqIEBzdW1tYXJ5IFdoZW4gY2FsbGVkIHdpdGggYSBjb25zdHJ1Y3RvciBvbmx5LCByZXR1cm5zIHRoZSBlbnRpcmUgbWV0YWRhdGEgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbW9kZWwuIFdoZW4gYSBrZXkgcGF0aCBpcyBwcm92aWRlZCwgcmV0dXJucyB0aGUgdmFsdWUgc3RvcmVkIGF0IHRoYXQgbmVzdGVkIGtleS5cbiAgICogQHRlbXBsYXRlIE1cbiAgICogQHRlbXBsYXRlIE1FVEFcbiAgICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gbW9kZWwgVGFyZ2V0IGNvbnN0cnVjdG9yIHVzZWQgdG8gbG9jYXRlIHRoZSBtZXRhZGF0YSByZWNvcmQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgTmVzdGVkIGtleSBwYXRoIHRvIGZldGNoIGEgc3BlY2lmaWMgdmFsdWUuXG4gICAqIEByZXR1cm4ge01FVEF8Knx1bmRlZmluZWR9IE1ldGFkYXRhIG9iamVjdCwgdGhlIHZhbHVlIGF0IHRoZSBrZXkgcGF0aCwgb3IgYHVuZGVmaW5lZGAgaWYgbm90aGluZyBleGlzdHMuXG4gICAqL1xuICBzdGF0aWMgZ2V0KG1vZGVsOiBDb25zdHJ1Y3Rvciwga2V5OiBzdHJpbmcpOiBhbnk7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIG1ldGFkYXRhIGZvciBhIG1vZGVsIG9yIGEgc3BlY2lmaWMga2V5IHdpdGhpbiBpdC5cbiAgICogQHN1bW1hcnkgV2hlbiBjYWxsZWQgd2l0aCBhIGNvbnN0cnVjdG9yIG9ubHksIHJldHVybnMgdGhlIGVudGlyZSBtZXRhZGF0YSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBtb2RlbC4gV2hlbiBhIGtleSBwYXRoIGlzIHByb3ZpZGVkLCByZXR1cm5zIHRoZSB2YWx1ZSBzdG9yZWQgYXQgdGhhdCBuZXN0ZWQga2V5LlxuICAgKiBAdGVtcGxhdGUgTVxuICAgKiBAdGVtcGxhdGUgTUVUQVxuICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fHN0cmluZ30gbW9kZWwgVGFyZ2V0IGNvbnN0cnVjdG9yIHVzZWQgdG8gbG9jYXRlIHRoZSBtZXRhZGF0YSByZWNvcmQgb3IgYSBwcmUtcmVzb2x2ZWQgc3ltYm9sIGlkZW50aWZpZXIuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBba2V5XSBPcHRpb25hbCBuZXN0ZWQga2V5IHBhdGggdG8gZmV0Y2ggYSBzcGVjaWZpYyB2YWx1ZS5cbiAgICogQHJldHVybiB7TUVUQXwqfHVuZGVmaW5lZH0gTWV0YWRhdGEgb2JqZWN0LCB0aGUgdmFsdWUgYXQgdGhlIGtleSBwYXRoLCBvciBgdW5kZWZpbmVkYCBpZiBub3RoaW5nIGV4aXN0cy5cbiAgICovXG4gIHN0YXRpYyBnZXQobW9kZWw6IENvbnN0cnVjdG9yLCBrZXk/OiBzdHJpbmcpIHtcbiAgICBpZiAoa2V5ID09PSBEZWNvcmF0aW9uS2V5cy5DT05TVFJVQ1RPUikgcmV0dXJuIHRoaXMuY29uc3RyKG1vZGVsKTtcbiAgICBjb25zdCByZXNvbHZlZE1vZGVsID0gdGhpcy5jb25zdHIobW9kZWwpO1xuICAgIGNvbnN0IGNvbnN0cnVjdG9ycyA9IHRoaXMuY29sbGVjdENvbnN0cnVjdG9yQ2hhaW4ocmVzb2x2ZWRNb2RlbCk7XG4gICAgaWYgKGNvbnN0cnVjdG9ycy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IGZhbGxiYWNrU3ltYm9sID0gU3ltYm9sLmZvcihyZXNvbHZlZE1vZGVsLnRvU3RyaW5nKCkpO1xuICAgICAgcmV0dXJuIHRoaXMuaW5uZXJHZXQoZmFsbGJhY2tTeW1ib2wsIGtleSk7XG4gICAgfVxuICAgIGNvbnN0IGNvbGxlY3RlZFZhbHVlcyA9IGNvbnN0cnVjdG9yc1xuICAgICAgLm1hcCgoY3RvcikgPT4gdGhpcy5pbm5lckdldCh0aGlzLlN5bWJvbChjdG9yKSwga2V5KSlcbiAgICAgIC5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKTtcblxuICAgIGlmIChjb2xsZWN0ZWRWYWx1ZXMubGVuZ3RoID09PSAwKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHRoaXMubWVyZ2VNZXRhZGF0YUNoYWluKGNvbGxlY3RlZFZhbHVlcyk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyBtZXRhZGF0YSBzdG9yZWQgdW5kZXIgYSBzeW1ib2wga2V5LlxuICAgKiBAc3VtbWFyeSBJbnRlcm5hbCBoZWxwZXIgdGhhdCByZXNvbHZlcyBhbmQgb3B0aW9uYWxseSBkcmlsbHMgaW50byB0aGUgaW4tbWVtb3J5IG1ldGFkYXRhIG1hcCBmb3IgdGhlIHByb3ZpZGVkIHN5bWJvbCBhbmQga2V5IHBhdGguXG4gICAqIEBwYXJhbSB7c3ltYm9sfSBzeW1ib2wgU3ltYm9sIHJlcHJlc2VudGluZyB0aGUgbWV0YWRhdGEgYnVja2V0LlxuICAgKiBAcGFyYW0ge3N0cmluZ3xzeW1ib2x9IFtrZXldIE9wdGlvbmFsIG5lc3RlZCBrZXkgcmVmZXJlbmNpbmcgYSBzcGVjaWZpYyBtZXRhZGF0YSBlbnRyeS5cbiAgICogQHJldHVybiB7YW55fSBTdG9yZWQgbWV0YWRhdGEgb2JqZWN0IG9yIHZhbHVlIGZvciB0aGUgcHJvdmlkZWQga2V5LCBvciBgdW5kZWZpbmVkYCB3aGVuIGFic2VudC5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGlubmVyR2V0KHN5bWJvbDogc3ltYm9sLCBrZXk/OiBzdHJpbmcgfCBzeW1ib2wpIHtcbiAgICBpZiAoIXRoaXMuX21ldGFkYXRhW3N5bWJvbF0pIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKCFrZXkpIHJldHVybiB0aGlzLl9tZXRhZGF0YVtzeW1ib2xdO1xuICAgIGlmICh0eXBlb2Yga2V5ID09PSBcInN0cmluZ1wiKVxuICAgICAgcmV0dXJuIGdldFZhbHVlQnlTcGxpdHRlcih0aGlzLl9tZXRhZGF0YVtzeW1ib2xdLCBrZXksIHRoaXMuc3BsaXR0ZXIpO1xuICAgIHJldHVybiB0aGlzLl9tZXRhZGF0YVtzeW1ib2xdW2tleV07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEJ1aWxkcyB0aGUgaW5oZXJpdGFuY2UgY2hhaW4gZm9yIGEgY29uc3RydWN0b3IsIG9yZGVyZWQgZnJvbSBiYXNlIHRvIG1vc3Qtc3BlY2lmaWMgY2xhc3MuXG4gICAqIEBzdW1tYXJ5IFdhbGtzIHRoZSBwcm90b3R5cGUgY2hhaW4gc3RhcnRpbmcgZnJvbSB0aGUgcHJvdmlkZWQgY29uc3RydWN0b3IgdW50aWwgcmVhY2hpbmcgRnVuY3Rpb24vT2JqZWN0IGFuZCByZXR1cm5zIHRoZSBjb2xsZWN0ZWQgY29uc3RydWN0b3JzLlxuICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yfSBtb2RlbCBDb25zdHJ1Y3RvciB3aG9zZSBjaGFpbiBzaG91bGQgYmUgY29sbGVjdGVkLlxuICAgKiBAcmV0dXJuIHtDb25zdHJ1Y3RvcltdfSBBcnJheSBvZiBjb25zdHJ1Y3RvcnMgb3JkZXJlZCBmcm9tIGJhc2UgdG8gbGVhZi5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGNvbGxlY3RDb25zdHJ1Y3RvckNoYWluKG1vZGVsOiBDb25zdHJ1Y3Rvcik6IENvbnN0cnVjdG9yW10ge1xuICAgIGNvbnN0IGNoYWluOiBDb25zdHJ1Y3RvcltdID0gW107XG4gICAgbGV0IGN1cnJlbnQ6IGFueSA9IG1vZGVsO1xuXG4gICAgd2hpbGUgKHR5cGVvZiBjdXJyZW50ID09PSBcImZ1bmN0aW9uXCIgJiYgY3VycmVudCAhPT0gRnVuY3Rpb24pIHtcbiAgICAgIGNoYWluLnB1c2goY3VycmVudCBhcyBDb25zdHJ1Y3Rvcik7XG4gICAgICBjb25zdCBwYXJlbnQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoY3VycmVudCk7XG4gICAgICBpZiAoIXBhcmVudCB8fCBwYXJlbnQgPT09IEZ1bmN0aW9uIHx8IHBhcmVudCA9PT0gT2JqZWN0KSBicmVhaztcbiAgICAgIGN1cnJlbnQgPSBwYXJlbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoYWluLnJldmVyc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTWVyZ2VzIG1ldGFkYXRhIHZhbHVlcyBjb2xsZWN0ZWQgYWNyb3NzIHRoZSBpbmhlcml0YW5jZSBjaGFpbi5cbiAgICogQHN1bW1hcnkgUGVyZm9ybXMgYSBkZWVwIG1lcmdlIGZvciBwbGFpbiBvYmplY3RzIHdoaWxlIGxldHRpbmcgbm9uLW9iamVjdCB2YWx1ZXMgb3ZlcnJpZGUgZWFybGllciBvbmVzIHRvIHByZXNlcnZlIGNoaWxkIG1ldGFkYXRhIHByZWNlZGVuY2UuXG4gICAqIEBwYXJhbSB7YW55W119IHZhbHVlcyBNZXRhZGF0YSB2YWx1ZXMgZ2F0aGVyZWQgZnJvbSBiYXNlIHRvIGNoaWxkLlxuICAgKiBAcmV0dXJuIHthbnl9IEFnZ3JlZ2F0ZWQgbWV0YWRhdGEgdmFsdWUgcmVzcGVjdGluZyBpbmhlcml0YW5jZSBwcmVjZWRlbmNlLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgbWVyZ2VNZXRhZGF0YUNoYWluKHZhbHVlczogYW55W10pIHtcbiAgICBsZXQgYWNjOiBhbnkgPSB1bmRlZmluZWQ7XG5cbiAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgICAgaWYgKGFjYyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGFjYyA9IHRoaXMuY2xvbmVNZXRhZGF0YVZhbHVlKHZhbHVlKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmlzUGxhaW5PYmplY3QoYWNjKSAmJiB0aGlzLmlzUGxhaW5PYmplY3QodmFsdWUpKSB7XG4gICAgICAgIGFjYyA9IHRoaXMubWVyZ2VQbGFpbk9iamVjdHMoXG4gICAgICAgICAgYWNjIGFzIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICAgICAgdmFsdWUgYXMgUmVjb3JkPHN0cmluZywgYW55PlxuICAgICAgICApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgYWNjID0gdGhpcy5jbG9uZU1ldGFkYXRhVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiBhY2M7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFByb2R1Y2VzIGEgZGVlcCBjbG9uZSBvZiBhIG1ldGFkYXRhIHZhbHVlIHdoZW4gbmVjZXNzYXJ5LlxuICAgKiBAc3VtbWFyeSBBcnJheXMgYXJlIHNoYWxsb3ctY2xvbmVkLCBwbGFpbiBvYmplY3RzIGFyZSBkZWVwLWNsb25lZCwgYW5kIHByaW1pdGl2ZS9mdW5jdGlvbiB2YWx1ZXMgYXJlIHJldHVybmVkIGFzLWlzLlxuICAgKiBAcGFyYW0ge2FueX0gdmFsdWUgTWV0YWRhdGEgdmFsdWUgdG8gY2xvbmUuXG4gICAqIEByZXR1cm4ge2FueX0gQ2xvbmVkIG1ldGFkYXRhIHZhbHVlIHByZXZlbnRpbmcgbXV0YXRpb24gb2YgdGhlIGJhY2tpbmcgc3RvcmUuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBjbG9uZU1ldGFkYXRhVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkgcmV0dXJuIFsuLi52YWx1ZV07XG4gICAgaWYgKHRoaXMuaXNQbGFpbk9iamVjdCh2YWx1ZSkpXG4gICAgICByZXR1cm4gdGhpcy5tZXJnZVBsYWluT2JqZWN0cyh7fSwgdmFsdWUgYXMgUmVjb3JkPHN0cmluZywgYW55Pik7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWVwbHkgbWVyZ2VzIHR3byBwbGFpbiBtZXRhZGF0YSBvYmplY3RzLlxuICAgKiBAc3VtbWFyeSBSZWN1cnNpdmVseSBtZXJnZXMgbmVzdGVkIHBsYWluIG9iamVjdHMgd2hpbGUgY2xvbmluZyBhcnJheXM7IHZhbHVlcyBmcm9tIGBzb3VyY2VgIG92ZXJyaWRlIHRob3NlIGZyb20gYHRhcmdldGAgd2hlbiBjb25mbGljdHMgb2NjdXIuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gdGFyZ2V0IEJhc2Ugb2JqZWN0IHRvIG1lcmdlIGludG8uXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gc291cmNlIE9iamVjdCBwcm92aWRpbmcgb3ZlcnJpZGluZyBtZXRhZGF0YS5cbiAgICogQHJldHVybiB7UmVjb3JkPHN0cmluZywgYW55Pn0gTmV3bHkgbWVyZ2VkIG1ldGFkYXRhIG9iamVjdC5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIG1lcmdlUGxhaW5PYmplY3RzKFxuICAgIHRhcmdldDogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICBzb3VyY2U6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0geyAuLi50YXJnZXQgfTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHNvdXJjZSkpIHtcbiAgICAgIGNvbnN0IHNvdXJjZVZhbHVlID0gc291cmNlW2tleV07XG4gICAgICBjb25zdCB0YXJnZXRWYWx1ZSA9IHJlc3VsdFtrZXldO1xuXG4gICAgICBpZiAodGhpcy5pc1BsYWluT2JqZWN0KHNvdXJjZVZhbHVlKSkge1xuICAgICAgICByZXN1bHRba2V5XSA9IHRoaXMuaXNQbGFpbk9iamVjdCh0YXJnZXRWYWx1ZSlcbiAgICAgICAgICA/IHRoaXMubWVyZ2VQbGFpbk9iamVjdHMoXG4gICAgICAgICAgICAgIHRhcmdldFZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICAgICAgICAgIHNvdXJjZVZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IHRoaXMubWVyZ2VQbGFpbk9iamVjdHMoe30sIHNvdXJjZVZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlVmFsdWUpKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gWy4uLnNvdXJjZVZhbHVlXTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHJlc3VsdFtrZXldID0gc291cmNlVmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ2hlY2tzIGlmIGEgdmFsdWUgaXMgYSBwbGFpbiBvYmplY3Qgc3VpdGFibGUgZm9yIGRlZXAgbWVyZ2luZy5cbiAgICogQHN1bW1hcnkgRW5zdXJlcyBhcnJheXMgYW5kIG51bGwgYXJlIGV4Y2x1ZGVkIHdoaWxlIGFjY2VwdGluZyBvYmplY3RzIGNyZWF0ZWQgdmlhIGxpdGVyYWwvY2xhc3Mgc3ludGF4LlxuICAgKiBAcGFyYW0ge2FueX0gdmFsdWUgVmFsdWUgdG8gaW5zcGVjdC5cbiAgICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSB3aGVuIHRoZSB2YWx1ZSBpcyBhIHBsYWluIG9iamVjdC5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGlzUGxhaW5PYmplY3QodmFsdWU6IGFueSk6IHZhbHVlIGlzIFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsdWUpO1xuICAgIHJldHVybiBwcm90byA9PT0gT2JqZWN0LnByb3RvdHlwZSB8fCBwcm90byA9PT0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gV3JpdGVzIG1ldGFkYXRhIHVuZGVyIGEgc3ltYm9sIGtleS5cbiAgICogQHN1bW1hcnkgSW50ZXJuYWwgaGVscGVyIHRoYXQgZW5zdXJlcyB0aGUgbWV0YWRhdGEgYnVja2V0IGV4aXN0cyBmb3IgdGhlIHByb3ZpZGVkIHN5bWJvbCBhbmQgcGVyc2lzdHMgdGhlIGdpdmVuIHZhbHVlLCBkcmlsbGluZyBpbnRvIG5lc3RlZCBzdHJ1Y3R1cmVzIHdoZW4gdGhlIGtleSBpcyBhIHN0cmluZyBwYXRoLlxuICAgKiBAcGFyYW0ge3N5bWJvbH0gc3ltYm9sIFN5bWJvbCByZXByZXNlbnRpbmcgdGhlIG1ldGFkYXRhIGJ1Y2tldC5cbiAgICogQHBhcmFtIHtzdHJpbmd8c3ltYm9sfSBrZXkgTmVzdGVkIGtleSBwYXRoIG9yIGRpcmVjdCBzeW1ib2wgdW5kZXIgd2hpY2ggdG8gc3RvcmUgdGhlIG1ldGFkYXRhIHZhbHVlLlxuICAgKiBAcGFyYW0ge2FueX0gdmFsdWUgVmFsdWUgcGVyc2lzdGVkIGluIHRoZSBtZXRhZGF0YSBzdG9yZS5cbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGlubmVyU2V0KHN5bWJvbDogc3ltYm9sLCBrZXk6IHN0cmluZyB8IHN5bWJvbCwgdmFsdWU6IGFueSkge1xuICAgIGlmICghdGhpcy5fbWV0YWRhdGFbc3ltYm9sXSkgdGhpcy5fbWV0YWRhdGFbc3ltYm9sXSA9IHt9IGFzIGFueTtcbiAgICBpZiAodHlwZW9mIGtleSA9PT0gXCJzdHJpbmdcIilcbiAgICAgIHJldHVybiBzZXRWYWx1ZUJ5U3BsaXR0ZXIoXG4gICAgICAgIHRoaXMuX21ldGFkYXRhW3N5bWJvbF0sXG4gICAgICAgIGtleSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHRoaXMuc3BsaXR0ZXJcbiAgICAgICk7XG4gICAgdGhpcy5fbWV0YWRhdGFbc3ltYm9sXVtrZXldID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFdyaXRlcyBhIG1ldGFkYXRhIHZhbHVlIGF0IGEgZ2l2ZW4gbmVzdGVkIGtleSBwYXRoLlxuICAgKiBAc3VtbWFyeSBFbnN1cmVzIHRoZSBtZXRhZGF0YSByZWNvcmQgZXhpc3RzIGZvciB0aGUgY29uc3RydWN0b3IsIG1pcnJvcnMgaXQgb24gdGhlIGNvbnN0cnVjdG9yIHdoZW4gZW5hYmxlZCwgYW5kIHNldHMgdGhlIHByb3ZpZGVkIHZhbHVlIG9uIHRoZSBuZXN0ZWQga2V5IHBhdGggdXNpbmcgdGhlIGNvbmZpZ3VyZWQgc3BsaXR0ZXIuXG4gICAqIEB0ZW1wbGF0ZSBNXG4gICAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT58c3RyaW5nfSBtb2RlbCBUYXJnZXQgY29uc3RydWN0b3IgdG8gd2hpY2ggdGhlIG1ldGFkYXRhIGJlbG9uZ3Mgb3IgYSBkaXJlY3QgaWRlbnRpZmllciBzdHJpbmcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgTmVzdGVkIGtleSBwYXRoIGF0IHdoaWNoIHRvIHN0b3JlIHRoZSB2YWx1ZS5cbiAgICogQHBhcmFtIHthbnl9IHZhbHVlIFZhbHVlIHRvIHN0b3JlIGluIHRoZSBtZXRhZGF0YS5cbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIHN0YXRpYyBzZXQobW9kZWw6IENvbnN0cnVjdG9yIHwgc3RyaW5nLCBrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGlmIChrZXkgPT09IERlY29yYXRpb25LZXlzLkNPTlNUUlVDVE9SKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kZWwsIERlY29yYXRpb25LZXlzLkNPTlNUUlVDVE9SLCB7XG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG1vZGVsICE9PSBcInN0cmluZ1wiKSBtb2RlbCA9IHRoaXMuY29uc3RyKG1vZGVsKSB8fCBtb2RlbDtcbiAgICBjb25zdCBzeW1ib2wgPVxuICAgICAgdHlwZW9mIG1vZGVsID09PSBcInN0cmluZ1wiID8gU3ltYm9sLmZvcihtb2RlbCkgOiB0aGlzLlN5bWJvbChtb2RlbCk7XG4gICAgdGhpcy5pbm5lclNldChzeW1ib2wsIGtleSwgdmFsdWUpO1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiBtb2RlbCAhPT0gXCJzdHJpbmdcIiAmJlxuICAgICAgTWV0YWRhdGEubWlycm9yICYmXG4gICAgICAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZGVsLCB0aGlzLmJhc2VLZXkpXG4gICAgKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kZWwsIHRoaXMuYmFzZUtleSwge1xuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgICB2YWx1ZTogdGhpcy5fbWV0YWRhdGFbc3ltYm9sXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVnaXN0ZXJzIGEgZGVjb3JhdGlvbi1hd2FyZSBsaWJyYXJ5IGFuZCBpdHMgdmVyc2lvbi5cbiAgICogQHN1bW1hcnkgU3RvcmVzIHRoZSB2ZXJzaW9uIHN0cmluZyBmb3IgYW4gaW50ZWdyYXRpbmcgbGlicmFyeSB1bmRlciB0aGUgc2hhcmVkIGxpYnJhcmllcyBtZXRhZGF0YSBzeW1ib2wsIHByZXZlbnRpbmcgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbnMgZm9yIHRoZSBzYW1lIGxpYnJhcnkgaWRlbnRpZmllci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGxpYnJhcnkgUGFja2FnZSBuYW1lIG9yIGlkZW50aWZpZXIgdG8gcmVnaXN0ZXIuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJzaW9uIFNlbWFudGljIHZlcnNpb24gc3RyaW5nIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGlicmFyeS5cbiAgICogQHJldHVybiB7dm9pZH1cbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBsaWJyYXJ5IGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZC5cbiAgICovXG4gIHN0YXRpYyByZWdpc3RlckxpYnJhcnkobGlicmFyeTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzeW1ib2wgPSBTeW1ib2wuZm9yKERlY29yYXRpb25LZXlzLkxJQlJBUklFUyk7XG4gICAgY29uc3QgbGliID0gdGhpcy5pbm5lckdldChzeW1ib2wsIGxpYnJhcnkpO1xuICAgIGlmIChsaWIpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBMaWJyYXJ5IGFscmVhZHkgJHtsaWJyYXJ5fSByZWdpc3RlcmVkIHdpdGggdmVyc2lvbiAke3ZlcnNpb259YFxuICAgICAgKTtcbiAgICB0aGlzLmlubmVyU2V0KHN5bWJvbCwgbGlicmFyeSwgdmVyc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIExpc3RzIHJlZ2lzdGVyZWQgZGVjb3JhdGlvbi1hd2FyZSBsaWJyYXJpZXMuXG4gICAqIEBzdW1tYXJ5IFJldHVybnMgdGhlIGluLW1lbW9yeSBtYXAgb2YgbGlicmFyeSBpZGVudGlmaWVycyB0byBzZW1hbnRpYyB2ZXJzaW9ucyB0aGF0IGhhdmUgYmVlbiByZWdpc3RlcmVkIHdpdGggdGhlIERlY29yYXRpb24gbWV0YWRhdGEgc3RvcmUuXG4gICAqIEByZXR1cm4ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IE1hcCBvZiByZWdpc3RlcmVkIGxpYnJhcnkgaWRlbnRpZmllcnMgdG8gdGhlaXIgdmVyc2lvbiBzdHJpbmdzLlxuICAgKi9cbiAgc3RhdGljIGxpYnJhcmllcygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBjb25zdCBzeW1ib2wgPSBTeW1ib2wuZm9yKERlY29yYXRpb25LZXlzLkxJQlJBUklFUyk7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJHZXQoc3ltYm9sKSB8fCB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSm9pbnMgcGF0aCBzZWdtZW50cyB1c2luZyB0aGUgY3VycmVudCBzcGxpdHRlci5cbiAgICogQHN1bW1hcnkgQ29uc3RydWN0cyBhIG5lc3RlZCBtZXRhZGF0YSBrZXkgYnkgY29uY2F0ZW5hdGluZyBzdHJpbmcgc2VnbWVudHMgd2l0aCB0aGUgY29uZmlndXJlZCBzcGxpdHRlciBmb3IgdXNlIHdpdGggdGhlIG1ldGFkYXRhIHN0b3JlLlxuICAgKiBAcGFyYW0gey4uLnN0cmluZ30gc3RycyBLZXkgc2VnbWVudHMgdG8gam9pbiBpbnRvIGEgZnVsbCBtZXRhZGF0YSBwYXRoLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFNwbGl0dGVyLWpvaW5lZCBtZXRhZGF0YSBrZXkuXG4gICAqL1xuICBzdGF0aWMga2V5KC4uLnN0cnM6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIHN0cnMuam9pbih0aGlzLnNwbGl0dGVyKTtcbiAgfVxufVxuIl19
|
package/lib/metadata/index.cjs
CHANGED
|
@@ -20,4 +20,3 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
20
20
|
*/
|
|
21
21
|
__exportStar(require("./Metadata.cjs"), exports);
|
|
22
22
|
__exportStar(require("./types.cjs"), exports);
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWV0YWRhdGEvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7R0FHRztBQUNILGlEQUEyQjtBQUMzQiw4Q0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbiBBZ2dyZWdhdGVzIG1ldGFkYXRhIHV0aWxpdGllcyBhbmQgdHlwZSBoZWxwZXJzXG4gKiBAc3VtbWFyeSBFeHBvc2VzIHRoZSBydW50aW1lIE1ldGFkYXRhIHN0b3JlIGFuZCBzdXBwb3J0aW5nIHR5cGluZ3MgZnJvbSBhIHNpbmdsZSBtb2R1bGUgZW50cnkuXG4gKi9cbmV4cG9ydCAqIGZyb20gXCIuL01ldGFkYXRhXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc1wiO1xuIl19
|
package/lib/metadata/types.cjs
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const constants_1 = require("./../constants.cjs");
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWV0YWRhdGEvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrREFBOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWNvcmF0aW9uS2V5cyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gU2hhcGUgb2YgdGhlIG1ldGFkYXRhIHN0b3JlZCBmb3IgYSBkZWNvcmF0ZWQgbW9kZWwuXG4gKiBAc3VtbWFyeSBDYXB0dXJlcyB0aGUgY29uc3RydWN0b3IgcmVmZXJlbmNlIGFsb25nc2lkZSBvcHRpb25hbCBkZXNjcmlwdGlvbiwgcHJvcGVydHksIGFuZCBtZXRob2QgbWV0YWRhdGEgYnVja2V0cyBtYWludGFpbmVkIGJ5IHRoZSBkZWNvcmF0aW9uIHJ1bnRpbWUuXG4gKiBAdGVtcGxhdGUgTVxuICogQHR5cGVEZWYgQmFzaWNNZXRhZGF0YTxNPlxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxNPn0gW0RlY29yYXRpb25LZXlzLkNMQVNTXSBDYW5vbmljYWwgY29uc3RydWN0b3IgYXNzb2NpYXRlZCB3aXRoIHRoZSBtZXRhZGF0YSBlbnRyeS5cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gW0RlY29yYXRpb25LZXlzLkRFU0NSSVBUSU9OXSBIdW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbnMgZm9yIHRoZSBjbGFzcyBhbmQgaXRzIG1lbWJlcnMuXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIENvbnN0cnVjdG9yPE0+fHVuZGVmaW5lZD59IFtEZWNvcmF0aW9uS2V5cy5QUk9QRVJUSUVTXSBSZWZsZWN0ZWQgcHJvcGVydHkgdHlwZSBjb25zdHJ1Y3RvcnMga2V5ZWQgYnkgcHJvcGVydHkgbmFtZS5cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgQ29uc3RydWN0b3I8TT58dW5kZWZpbmVkPn0gW0RlY29yYXRpb25LZXlzLk1FVEhPRFNdIFJlZmxlY3RlZCBtZXRob2Qgc2lnbmF0dXJlIGNvbnN0cnVjdG9ycyBrZXllZCBieSBtZXRob2QgbmFtZS5cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdGlvblxuICovXG4vKiogQGlnbm9yZSAqL1xuZXhwb3J0IHR5cGUgQmFzaWNNZXRhZGF0YTxNPiA9IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDYW5vbmljYWwgY29uc3RydWN0b3IgYXNzb2NpYXRlZCB3aXRoIHRoZSBtZXRhZGF0YSBlbnRyeS5cbiAgICogQHR5cGUge0NvbnN0cnVjdG9yPE0+fVxuICAgKi9cbiAgW0RlY29yYXRpb25LZXlzLkNMQVNTXTogQ29uc3RydWN0b3I8TT47XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTWFwIG9mIGh1bWFuLWZyaWVuZGx5IGRlc2NyaXB0aW9ucyBmb3IgdGhlIGNsYXNzIGFuZCBpdHMgbWVtYmVycy5cbiAgICogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59XG4gICAqL1xuICBbRGVjb3JhdGlvbktleXMuREVTQ1JJUFRJT05dPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQcm9wZXJ0eSBtZXRhZGF0YSBrZXllZCBieSBwcm9wZXJ0eSBuYW1lIGluY2x1ZGluZyByZWNvcmRlZCBkZXNpZ24gdHlwZXMuXG4gICAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBDb25zdHJ1Y3RvcjxNPnx1bmRlZmluZWQ+fVxuICAgKi9cbiAgW0RlY29yYXRpb25LZXlzLlBST1BFUlRJRVNdOiBSZWNvcmQ8c3RyaW5nLCBDb25zdHJ1Y3RvcjxNPiB8IHVuZGVmaW5lZD47XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTWV0aG9kIG1ldGFkYXRhIGtleWVkIGJ5IG1ldGhvZCBuYW1lIGluY2x1ZGluZyByZWNvcmRlZCBkZXNpZ24gc2lnbmF0dXJlcy5cbiAgICogQHR5cGUge1JlY29yZDxzdHJpbmcsIENvbnN0cnVjdG9yPE0+fHVuZGVmaW5lZD59XG4gICAqL1xuICBbRGVjb3JhdGlvbktleXMuTUVUSE9EU106IFJlY29yZDxzdHJpbmcsIENvbnN0cnVjdG9yPE0+IHwgdW5kZWZpbmVkPjtcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnN0cnVjdG9yIHNpZ25hdHVyZSBmb3IgaW5zdGFudGlhdGluZyB0eXBlLXNhZmUgb2JqZWN0cy5cbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgYSBnZW5lcmljIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIGNhcGFibGUgb2YgY3JlYXRpbmcgaW5zdGFuY2VzIG9mIGBPQkpgIHdpdGggYXJiaXRyYXJ5IGFyZ3VtZW50cy5cbiAqIEB0ZW1wbGF0ZSBPQkpcbiAqIEB0eXBlRGVmIENvbnN0cnVjdG9yXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgQ29uc3RydWN0b3I8T0JKID0gYW55PiA9IHsgbmV3ICguLi5hcmdzOiBhbnlbXSk6IE9CSiB9O1xuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/decoration",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.23",
|
|
4
4
|
"description": "Decoration and metadata mechanisms for decaf-ts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -55,25 +55,17 @@
|
|
|
55
55
|
"dist"
|
|
56
56
|
],
|
|
57
57
|
"keywords": [
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"mddocs",
|
|
63
|
-
"md",
|
|
64
|
-
"jsdoc",
|
|
65
|
-
"doc",
|
|
66
|
-
"docs",
|
|
67
|
-
"documentation",
|
|
68
|
-
"test",
|
|
69
|
-
"reports",
|
|
70
|
-
"confluence",
|
|
71
|
-
"ci/cd",
|
|
72
|
-
"ci",
|
|
73
|
-
"cd",
|
|
74
|
-
"template",
|
|
58
|
+
"decoration",
|
|
59
|
+
"metadata",
|
|
60
|
+
"decorators",
|
|
61
|
+
"annotations",
|
|
75
62
|
"typescript",
|
|
76
|
-
"
|
|
63
|
+
"decaf",
|
|
64
|
+
"reflection",
|
|
65
|
+
"metadata-driven",
|
|
66
|
+
"runtime",
|
|
67
|
+
"design-time",
|
|
68
|
+
"attributes"
|
|
77
69
|
],
|
|
78
70
|
"author": "Tiago Venceslau and Contributors",
|
|
79
71
|
"bugs": {
|
|
@@ -84,10 +76,6 @@
|
|
|
84
76
|
"@decaf-ts/logging": "latest",
|
|
85
77
|
"@decaf-ts/utils": "latest",
|
|
86
78
|
"@eslint/js": "^9.25.1",
|
|
87
|
-
"@rollup/plugin-commonjs": "^28.0.3",
|
|
88
|
-
"@rollup/plugin-json": "^6.1.0",
|
|
89
|
-
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
90
|
-
"@rollup/plugin-typescript": "^12.1.2",
|
|
91
79
|
"@stylistic/eslint-plugin": "^4.2.0",
|
|
92
80
|
"@types/jest": "^29.5.14",
|
|
93
81
|
"clean-publish": "^5.1.0",
|
|
@@ -107,7 +95,6 @@
|
|
|
107
95
|
"npm-check-updates": "^18.0.0",
|
|
108
96
|
"prettier": "3.5.3",
|
|
109
97
|
"rimraf": "^6.0.1",
|
|
110
|
-
"rollup": "^4.40.0",
|
|
111
98
|
"ts-jest": "^29.3.2",
|
|
112
99
|
"ts-loader": "^9.5.2",
|
|
113
100
|
"ts-node": "^10.9.2",
|