@data-client/rest 0.18.0 → 0.18.2
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/CHANGELOG.md +198 -1
- package/dist/index.js +16 -7
- package/dist/index.umd.min.js +1 -1
- package/legacy/RestEndpoint.js +6 -5
- package/legacy/RestEndpointTypes.js +1 -1
- package/legacy/extractCollection.js +3 -1
- package/legacy/paramsToString.js +1 -1
- package/legacy/paramsToString.native.js +1 -1
- package/legacy/pathTypes.js +1 -1
- package/legacy/resource.js +10 -4
- package/legacy/resourceExtendable.js +1 -1
- package/legacy/resourceExtensionTypes.js +1 -1
- package/legacy/resourceTypes.js +1 -1
- package/lib/NetworkError.d.ts.map +1 -1
- package/lib/RestEndpoint.js +6 -5
- package/lib/RestEndpointTypes.d.ts +49 -20
- package/lib/RestEndpointTypes.d.ts.map +1 -1
- package/lib/RestEndpointTypes.js +1 -1
- package/lib/extractCollection.d.ts +8 -1
- package/lib/extractCollection.d.ts.map +1 -1
- package/lib/extractCollection.js +3 -1
- package/lib/paramsToString.d.ts.map +1 -1
- package/lib/paramsToString.js +1 -1
- package/lib/paramsToString.native.d.ts.map +1 -1
- package/lib/paramsToString.native.js +1 -1
- package/lib/pathTypes.d.ts +33 -7
- package/lib/pathTypes.d.ts.map +1 -1
- package/lib/pathTypes.js +1 -1
- package/lib/resource.d.ts +1 -1
- package/lib/resource.d.ts.map +1 -1
- package/lib/resource.js +10 -4
- package/lib/resourceExtendable.d.ts +4 -4
- package/lib/resourceExtendable.d.ts.map +1 -1
- package/lib/resourceExtendable.js +1 -1
- package/lib/resourceExtensionTypes.d.ts +7 -7
- package/lib/resourceExtensionTypes.d.ts.map +1 -1
- package/lib/resourceExtensionTypes.js +1 -1
- package/lib/resourceTypes.d.ts +8 -2
- package/lib/resourceTypes.d.ts.map +1 -1
- package/lib/resourceTypes.js +1 -1
- package/lib/test-fixtures.d.ts +7 -7
- package/lib/test-fixtures.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/RestEndpoint.js +8 -7
- package/src/RestEndpointTypes.ts +116 -53
- package/src/__tests__/RestEndpoint.ts +23 -7
- package/src/__tests__/__snapshots__/RestEndpoint.ts.snap +1 -1
- package/src/__tests__/resource-construction.test.ts +47 -0
- package/src/extractCollection.ts +3 -0
- package/src/paramsToString.native.ts +1 -5
- package/src/paramsToString.ts +1 -5
- package/src/pathTypes.ts +105 -31
- package/src/resource.ts +11 -6
- package/src/resourceExtendable.ts +15 -11
- package/src/resourceExtensionTypes.ts +16 -10
- package/src/resourceTypes.ts +6 -4
- package/ts4.0/RestEndpointTypes.d.ts +57 -22
- package/ts4.0/extractCollection.d.ts +8 -1
- package/ts4.0/mapCollection.d.ts +11 -16
- package/ts4.0/resource.d.ts +1 -1
- package/ts4.0/resourceExtendable.d.ts +4 -4
- package/ts4.0/resourceExtensionTypes.d.ts +7 -7
- package/ts4.0/resourceTypes.d.ts +8 -2
- package/ts4.0/test-fixtures.d.ts +7 -7
- package/ts4.1/RestEndpointTypes.d.ts +57 -22
- package/ts4.1/extractCollection.d.ts +8 -1
- package/ts4.1/mapCollection.d.ts +11 -16
- package/ts4.1/pathTypes.d.ts +33 -7
- package/ts4.1/resource.d.ts +1 -1
- package/ts4.1/resourceExtendable.d.ts +4 -4
- package/ts4.1/resourceExtensionTypes.d.ts +7 -7
- package/ts4.1/resourceTypes.d.ts +8 -2
- package/ts4.1/test-fixtures.d.ts +7 -7
package/lib/RestEndpointTypes.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludFR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRGVub3JtYWxpemUsXG4gIEVuZHBvaW50RXh0cmFPcHRpb25zLFxuICBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLFxuICBTY2hlbWEsXG4gIEZldGNoRnVuY3Rpb24sXG4gIFJlc29sdmVUeXBlLFxufSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQgdHlwZSB7IEV4dHJhY3RDb2xsZWN0aW9uIH0gZnJvbSAnLi9leHRyYWN0Q29sbGVjdGlvbi5qcyc7XG5pbXBvcnQge1xuICBPcHRpb25zVG9Cb2R5QXJndW1lbnQsXG4gIE9wdGlvbnNUb0Z1bmN0aW9uLFxufSBmcm9tICcuL09wdGlvbnNUb0Z1bmN0aW9uLmpzJztcbmltcG9ydCB7IFBhdGhBcmdzLCBTb2Z0UGF0aEFyZ3MgfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQgeyBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSAnLi9SZXN0RW5kcG9pbnRUeXBlSGVscC5qcyc7XG5cbmV4cG9ydCB0eXBlIENvbnRlbnRUeXBlID0gJ2pzb24nIHwgJ2Jsb2InIHwgJ3RleHQnIHwgJ2FycmF5QnVmZmVyJyB8ICdzdHJlYW0nO1xuXG5pbnRlcmZhY2UgQ29udGVudFR5cGVNYXAge1xuICBibG9iOiBCbG9iO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGFycmF5QnVmZmVyOiBBcnJheUJ1ZmZlcjtcbiAgc3RyZWFtOiBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PjtcbiAganNvbjogYW55O1xufVxuXG50eXBlIENvbnRlbnRSZXR1cm5UeXBlPEMgZXh0ZW5kcyBDb250ZW50VHlwZT4gPSBDb250ZW50VHlwZU1hcFtDXTtcblxudHlwZSBDb250ZW50U2NoZW1hR3VhcmQ8Tz4gPVxuICBPIGV4dGVuZHMgeyBjb250ZW50OiAnYmxvYicgfCAndGV4dCcgfCAnYXJyYXlCdWZmZXInIHwgJ3N0cmVhbScgfSA/XG4gICAgeyBzY2hlbWE/OiB1bmRlZmluZWQgfVxuICA6IHt9O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RJbnN0YW5jZUJhc2U8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IGFueSxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5PzogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICBtZXRob2Q/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZyB9LFxuPiBleHRlbmRzIEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2U8RiwgUywgTT4ge1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2JvZHkgKi9cbiAgcmVhZG9ubHkgYm9keT86ICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBhbnk7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjc2VhcmNoUGFyYW1zICovXG4gIHJlYWRvbmx5IHNlYXJjaFBhcmFtcz86ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NlYXJjaFBhcmFtcyddXG4gIDogLy8gdW5rbm93biBpcyBpZGVudGl0eSB3aXRoICcmJyB0eXBlIG9wZXJhdG9yXG4gICAgdW5rbm93bjtcblxuICAvKiogUGF0dGVybiB0byBjb25zdHJ1Y3QgdXJsIGJhc2VkIG9uIFVybCBQYXJhbWV0ZXJzXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYXRoXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBPWydwYXRoJ107XG4gIC8qKiBQcmVwZW5kZWQgdG8gYWxsIHVybHNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3VybFByZWZpeFxuICAgKi9cbiAgcmVhZG9ubHkgdXJsUHJlZml4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlcXVlc3RJbml0OiBSZXF1ZXN0SW5pdDtcbiAgLyoqIEhUVFAgcmVxdWVzdCBtZXRob2RcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I21ldGhvZFxuICAgKi9cbiAgcmVhZG9ubHkgbWV0aG9kOiAoTyAmIHsgbWV0aG9kOiBzdHJpbmcgfSlbJ21ldGhvZCddO1xuICByZWFkb25seSBzaWduYWw6IEFib3J0U2lnbmFsIHwgdW5kZWZpbmVkO1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhZ2luYXRpb25GaWVsZCAqL1xuICByZWFkb25seSBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjY29udGVudCAqL1xuICByZWFkb25seSBjb250ZW50PzogQ29udGVudFR5cGU7XG5cbiAgLyogZmV0Y2ggbGlmZWN5Y2xlcyAqL1xuICAvKiBiZWZvcmUtZmV0Y2ggKi9cbiAgLyoqIEJ1aWxkcyB0aGUgVVJMIHRvIGZldGNoXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCN1cmxcbiAgICovXG4gIHVybCguLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogc3RyaW5nO1xuICAvKiogRW5jb2RlIHRoZSBzZWFyY2hQYXJhbXMgY29tcG9uZW50IG9mIHRoZSB1cmxcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3NlYXJjaFRvU3RyaW5nXG4gICAqL1xuICBzZWFyY2hUb1N0cmluZyhzZWFyY2hQYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBzdHJpbmc7XG4gIC8qKiBQcmVwYXJlcyBSZXF1ZXN0SW5pdCB1c2VkIGluIGZldGNoLiBUaGlzIGlzIHNlbnQgdG8gZmV0Y2hSZXNwb25zZSgpXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRSZXF1ZXN0SW5pdFxuICAgKi9cbiAgZ2V0UmVxdWVzdEluaXQoXG4gICAgdGhpczogYW55LFxuICAgIGJvZHk/OiBSZXF1ZXN0SW5pdFsnYm9keSddIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICk6IFByb21pc2U8UmVxdWVzdEluaXQ+IHwgUmVxdWVzdEluaXQ7XG4gIC8qKiBDYWxsZWQgYnkgZ2V0UmVxdWVzdEluaXQgdG8gZGV0ZXJtaW5lIEhUVFAgSGVhZGVyc1xuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjZ2V0SGVhZGVyc1xuICAgKi9cbiAgZ2V0SGVhZGVycyhoZWFkZXJzOiBIZWFkZXJzSW5pdCk6IFByb21pc2U8SGVhZGVyc0luaXQ+IHwgSGVhZGVyc0luaXQ7XG4gIC8qIGFmdGVyLWZldGNoICovXG4gIC8qKiBQZXJmb3JtcyB0aGUgZmV0Y2ggY2FsbFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjZmV0Y2hSZXNwb25zZVxuICAgKi9cbiAgZmV0Y2hSZXNwb25zZShpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ6IFJlcXVlc3RJbml0KTogUHJvbWlzZTxSZXNwb25zZT47XG4gIC8qKiBUYWtlcyB0aGUgUmVzcG9uc2UgYW5kIHBhcnNlcyB2aWEgLnRleHQoKSBvciAuanNvbigpXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYXJzZVJlc3BvbnNlXG4gICAqL1xuICBwYXJzZVJlc3BvbnNlKHJlc3BvbnNlOiBSZXNwb25zZSk6IFByb21pc2U8YW55PjtcbiAgLyoqIFBlcmZvcm0gYW55IHRyYW5zZm9ybXMgd2l0aCB0aGUgcGFyc2VkIHJlc3VsdC5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Byb2Nlc3NcbiAgICovXG4gIHByb2Nlc3ModmFsdWU6IGFueSwgLi4uYXJnczogUGFyYW1ldGVyczxGPik6IFJlc29sdmVUeXBlPEY+O1xuXG4gIC8qIHV0aWxpdGllcyAqL1xuICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBwcm92aWRlZCAoZmV0Y2gpIGtleSBtYXRjaGVzIHRoaXMgZW5kcG9pbnQuXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCN0ZXN0S2V5XG4gICAqL1xuICB0ZXN0S2V5KGtleTogc3RyaW5nKTogYm9vbGVhbjtcblxuICAvKiBleHRlbmRlcnMgKi9cbiAgLy8gVE9ETzogZmlndXJlIG91dCBiZXR0ZXIgd2F5IHRoYW4gd3JhcHBpbmcgd2hvbGUgb3B0aW9ucyBpbiBSZWFkb25seTw+ICsgbWFraW5nIE8gZXh0ZW5kIGZyb20ge31cbiAgLy8gICAgICAgdGhpcyBpcyBqdXN0IGEgaGFjayB0byBoYW5kbGUgd2hlbiBubyBtZW1iZXJzIG9mIFBhcnRpYWxSZXN0R2VuZXJpY3MgYXJlIHByZXNlbnRcbiAgLy8gICAgICAgTm90ZTogVXNpbmcgb3ZlcmxvYWRpbmcgKGxpa2UgcGFnaW5hdGVkIGRpZCkgc3RydWdnbGVzIGJlY2F1c2UgdHlwZXNjcmlwdCBkb2VzIG5vdCBoYXZlIGEgY2xlYXIgd2F5IG9mIGRpc3Rpbmd1aXNoaW5nIG9uZVxuICAvLyAgICAgICBzaG91bGQgYmUgdXNlZCBmcm9tIHRoZSBvdGhlciAoZHVlIHRvIHNhbWUgcHJvYmxlbSB3aXRoIGV2ZXJ5IG1lbWJlciBiZWluZyBwYXJ0aWFsKVxuICAvKiogQ3JlYXRlcyBhIGNoaWxkIGVuZHBvaW50IHRoYXQgaW5oZXJpdHMgZnJvbSB0aGlzIHdoaWxlIG92ZXJyaWRpbmcgcHJvdmlkZWQgYG9wdGlvbnNgLlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjZXh0ZW5kXG4gICAqL1xuICBleHRlbmQ8XG4gICAgRSBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2UsXG4gICAgRXh0ZW5kT3B0aW9ucyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MgfCB7fSxcbiAgPihcbiAgICB0aGlzOiBFLFxuICAgIG9wdGlvbnM6IFJlYWRvbmx5PFxuICAgICAgUmVzdEVuZHBvaW50RXh0ZW5kT3B0aW9uczxFeHRlbmRPcHRpb25zLCBFLCBGPiAmIEV4dGVuZE9wdGlvbnNcbiAgICA+ICZcbiAgICAgIENvbnRlbnRTY2hlbWFHdWFyZDxFeHRlbmRPcHRpb25zPixcbiAgKTogUmVzdEV4dGVuZGVkRW5kcG9pbnQ8RXh0ZW5kT3B0aW9ucywgRT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEluc3RhbmNlPFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiA9IEZldGNoRnVuY3Rpb24sXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBhbnksXG4gIE0gZXh0ZW5kcyBib29sZWFuIHwgdW5kZWZpbmVkID0gYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gICAgbWV0aG9kPzogc3RyaW5nO1xuICAgIHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgfSA9IHsgcGF0aDogc3RyaW5nIH0sXG4+IGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGLCBTLCBNLCBPPiB7XG4gIC8qKiBDcmVhdGVzIGFuIEVuZHBvaW50IHRvIGFwcGVuZCB0aGUgbmV4dCBwYWdlIGV4dGVuZGluZyBhIGxpc3QgZm9yIHBhZ2luYXRpb25cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhZ2luYXRlZFxuICAgKi9cbiAgcGFnaW5hdGVkPFxuICAgIEUgZXh0ZW5kcyBSZXN0SW5zdGFuY2VCYXNlPEZldGNoRnVuY3Rpb24sIGFueSwgdW5kZWZpbmVkPixcbiAgICBBIGV4dGVuZHMgYW55W10sXG4gID4oXG4gICAgdGhpczogRSxcbiAgICByZW1vdmVDdXJzb3I6ICguLi5hcmdzOiBBKSA9PiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl0sXG4gICk6IFBhZ2luYXRpb25FbmRwb2ludDxFLCBBPjtcbiAgcGFnaW5hdGVkPFxuICAgIEUgZXh0ZW5kcyBSZXN0SW5zdGFuY2VCYXNlPEZldGNoRnVuY3Rpb24sIGFueSwgdW5kZWZpbmVkPixcbiAgICBDIGV4dGVuZHMgc3RyaW5nLFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgY3Vyc29yRmllbGQ6IEMsXG4gICk6IFBhZ2luYXRpb25GaWVsZEVuZHBvaW50PEUsIEM+O1xuICAvKiogQ29uY2F0aW5hdGUgdGhlIG5leHQgcGFnZSBvZiByZXN1bHRzIChHRVQpXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRQYWdlXG4gICAqL1xuICBnZXRQYWdlOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddIGV4dGVuZHMgc3RyaW5nID9cbiAgICAgIFBhZ2luYXRpb25GaWVsZEVuZHBvaW50PFxuICAgICAgICBGICYgeyBzY2hlbWE6IFM7IHNpZGVFZmZlY3Q6IE0gfSAmIE8sXG4gICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICA+XG4gICAgOiB1bmRlZmluZWRcbiAgOiB1bmRlZmluZWQ7XG4gIC8qKiBDcmVhdGUgYSBuZXcgaXRlbSAoUE9TVCkgYW5kIGBwdXNoYCB0byB0aGUgZW5kXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwdXNoXG4gICAqL1xuICBwdXNoOiBBZGRFbmRwb2ludDxcbiAgICBGLFxuICAgIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydwdXNoJ10sXG4gICAgT21pdDxPLCAnYm9keScgfCAnbWV0aG9kJz4gJiB7XG4gICAgICBib2R5OlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8sIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydwdXNoJ10+XG4gICAgICAgIHwgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TywgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3B1c2gnXT5bXVxuICAgICAgICB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbiAgLyoqIENyZWF0ZSBhIG5ldyBpdGVtIChQT1NUKSBhbmQgYHVuc2hpZnRgIHRvIHRoZSBiZWdpbm5pbmdcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Vuc2hpZnRcbiAgICovXG4gIHVuc2hpZnQ6IEFkZEVuZHBvaW50PFxuICAgIEYsXG4gICAgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3Vuc2hpZnQnXSxcbiAgICBPbWl0PE8sICdib2R5JyB8ICdtZXRob2QnPiAmIHtcbiAgICAgIGJvZHk6XG4gICAgICAgIHwgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TywgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3Vuc2hpZnQnXT5cbiAgICAgICAgfCBPcHRpb25zVG9BZGRlckJvZHlBcmd1bWVudDxPLCBFeHRyYWN0Q29sbGVjdGlvbjxTPlsndW5zaGlmdCddPltdXG4gICAgICAgIHwgRm9ybURhdGE7XG4gICAgfVxuICA+O1xuICAvKiogQ3JlYXRlIG5ldyBpdGVtKHMpIChQT1NUKSBhbmQgYE9iamVjdC5hc3NpZ25gIG1lcmdlXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNhc3NpZ25cbiAgICovXG4gIGFzc2lnbjogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPixcbiAgICBPbWl0PE8sICdib2R5JyB8ICdtZXRob2QnPiAmIHtcbiAgICAgIGJvZHk6XG4gICAgICAgIHwgUmVjb3JkPFxuICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TywgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ2Fzc2lnbiddPlxuICAgICAgICAgID5cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBSZW1vdmUgaXRlbShzKSAoUEFUQ0gpIGZyb20gY29sbGVjdGlvblxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcmVtb3ZlXG4gICAqL1xuICByZW1vdmU6IFJlbW92ZUVuZHBvaW50PFxuICAgIEYsXG4gICAgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3JlbW92ZSddLFxuICAgIE9taXQ8TywgJ2JvZHknIHwgJ21ldGhvZCc+ICYge1xuICAgICAgYm9keTpcbiAgICAgICAgfCBQYXJ0aWFsPE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8sIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydyZW1vdmUnXT4+XG4gICAgICAgIHwgUGFydGlhbDxcbiAgICAgICAgICAgIE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8sIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydyZW1vdmUnXT5cbiAgICAgICAgICA+W11cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBNb3ZlIGl0ZW0gYmV0d2VlbiBjb2xsZWN0aW9ucyAoUEFUQ0gpIC0gcmVtb3ZlcyBmcm9tIG9sZCwgYWRkcyB0byBuZXdcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I21vdmVcbiAgICovXG4gIG1vdmU6IE1vdmVFbmRwb2ludDxcbiAgICBGLFxuICAgIEV4dHJhY3RDb2xsZWN0aW9uPFM+Wydtb3ZlJ10sXG4gICAge1xuICAgICAgcGF0aDogJ21vdmVQYXRoJyBleHRlbmRzIGtleW9mIE8gPyBPWydtb3ZlUGF0aCddICYgc3RyaW5nIDogT1sncGF0aCddO1xuICAgICAgYm9keTpcbiAgICAgICAgfCBQYXJ0aWFsPE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8sIEV4dHJhY3RDb2xsZWN0aW9uPFM+Wydtb3ZlJ10+PlxuICAgICAgICB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVzdEVuZHBvaW50RXh0ZW5kT3B0aW9uczxcbiAgTyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIEUgZXh0ZW5kcyB7IGJvZHk/OiBhbnk7IHBhdGg/OiBzdHJpbmc7IHNjaGVtYT86IFNjaGVtYTsgbWV0aG9kPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9IFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gIE9wdGlvbnNUb0Z1bmN0aW9uPE8sIEUsIEY+LFxuICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NjaGVtYSddLCBTY2hlbWEgfCB1bmRlZmluZWQ+XG4gIDogRVsnc2NoZW1hJ11cbj4gJlxuICBQYXJ0aWFsPFxuICAgIE9taXQ8XG4gICAgICBFLFxuICAgICAgS2V5b2ZSZXN0RW5kcG9pbnQgfCBrZXlvZiBQYXJ0aWFsUmVzdEdlbmVyaWNzIHwga2V5b2YgUmVzdEVuZHBvaW50T3B0aW9uc1xuICAgID5cbiAgPjtcblxudHlwZSBPcHRpb25zVG9SZXN0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzLFxuICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZSAmIHsgYm9keT86IGFueTsgcGFnaW5hdGlvbkZpZWxkPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9XG4gICdwYXRoJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFJlc3RUeXBlPFxuICAgICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgW09bJ3NlYXJjaFBhcmFtcyddXSBleHRlbmRzIFt1bmRlZmluZWRdID9cbiAgICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPIDogRSxcbiAgICAgICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXVxuICAgICAgPixcbiAgICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogRVsnc2NoZW1hJ10sXG4gICAgICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gICAgICA6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT5cbiAgICAgIDogRVsnc2lkZUVmZmVjdCddLFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT5cbiAgICAgIDogJ2NvbnRlbnQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIENvbnRlbnRSZXR1cm5UeXBlPE9bJ2NvbnRlbnQnXSAmIENvbnRlbnRUeXBlPlxuICAgICAgOiBSZXNvbHZlVHlwZTxGPixcbiAgICAgIHtcbiAgICAgICAgcGF0aDogRXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD47XG4gICAgICAgIGJvZHk6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBFWydib2R5J107XG4gICAgICAgIHNlYXJjaFBhcmFtczogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgICAgICAgOiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgbWV0aG9kOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddO1xuICAgICAgICBwYWdpbmF0aW9uRmllbGQ6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgICAgOiBFWydwYWdpbmF0aW9uRmllbGQnXTtcbiAgICAgIH1cbiAgICA+XG4gIDogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgUmVzdFR5cGU8XG4gICAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBbT1snc2VhcmNoUGFyYW1zJ11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgICAgIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxFWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgICAgTyxcbiAgICAgICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXVxuICAgICAgPixcbiAgICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogRVsnc2NoZW1hJ10sXG4gICAgICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gICAgICA6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT5cbiAgICAgIDogRVsnc2lkZUVmZmVjdCddLFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT5cbiAgICAgIDogJ2NvbnRlbnQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIENvbnRlbnRSZXR1cm5UeXBlPE9bJ2NvbnRlbnQnXSAmIENvbnRlbnRUeXBlPlxuICAgICAgOiBSZXNvbHZlVHlwZTxGPixcbiAgICAgIHtcbiAgICAgICAgcGF0aDogRVsncGF0aCddO1xuICAgICAgICBib2R5OiBPWydib2R5J107XG4gICAgICAgIHNlYXJjaFBhcmFtczogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgICAgICAgOiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgbWV0aG9kOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddO1xuICAgICAgICBwYWdpbmF0aW9uRmllbGQ6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgICAgOiBFeHRyYWN0PEVbJ3BhZ2luYXRpb25GaWVsZCddLCBzdHJpbmc+O1xuICAgICAgfVxuICAgID5cbiAgOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFJlc3RUeXBlPFxuICAgICAgW09bJ3NlYXJjaFBhcmFtcyddXSBleHRlbmRzIFt1bmRlZmluZWRdID9cbiAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxFWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICBFLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddXG4gICAgICA+LFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgYm9vbGVhbiB8IHVuZGVmaW5lZD5cbiAgICAgIDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPlxuICAgICAgOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPlxuICAgICAgOiAnY29udGVudCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgQ29udGVudFJldHVyblR5cGU8T1snY29udGVudCddICYgQ29udGVudFR5cGU+XG4gICAgICA6IFJlc29sdmVUeXBlPEY+LFxuICAgICAge1xuICAgICAgICBwYXRoOiBFWydwYXRoJ107XG4gICAgICAgIGJvZHk6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiBPWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgbWV0aG9kOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddO1xuICAgICAgICBwYWdpbmF0aW9uRmllbGQ6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgICAgOiBFeHRyYWN0PEVbJ3BhZ2luYXRpb25GaWVsZCddLCBzdHJpbmc+O1xuICAgICAgfVxuICAgID5cbiAgOiBSZXN0SW5zdGFuY2U8XG4gICAgICBGLFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgYm9vbGVhbiB8IHVuZGVmaW5lZD5cbiAgICAgIDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPlxuICAgICAgOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdwYXRoJyBleHRlbmRzIGtleW9mIE8gPyBFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPlxuICAgICAgICA6IEVbJ3BhdGgnXTtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gPyBPWydzZWFyY2hQYXJhbXMnXVxuICAgICAgICA6IEVbJ3NlYXJjaFBhcmFtcyddO1xuICAgICAgICBtZXRob2Q6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ107XG4gICAgICAgIHBhZ2luYXRpb25GaWVsZDogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgICBPWydwYWdpbmF0aW9uRmllbGQnXVxuICAgICAgICA6IEVbJ3BhZ2luYXRpb25GaWVsZCddO1xuICAgICAgfVxuICAgID47XG5cbmV4cG9ydCB0eXBlIFJlc3RFeHRlbmRlZEVuZHBvaW50PFxuICBPIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyxcbiAgRSBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2UgJiB7IGdldFBhZ2U/OiB1bmtub3duIH0sXG4+ID0gT3B0aW9uc1RvUmVzdEVuZHBvaW50PFxuICBPLFxuICBFICZcbiAgICAoRSBleHRlbmRzIHsgZ2V0UGFnZTogeyBwYWdpbmF0aW9uRmllbGQ6IHN0cmluZyB9IH0gP1xuICAgICAgeyBwYWdpbmF0aW9uRmllbGQ6IEVbJ2dldFBhZ2UnXVsncGFnaW5hdGlvbkZpZWxkJ10gfVxuICAgIDogdW5rbm93biksXG4gIFJlc3RJbnN0YW5jZTxcbiAgICAoLi4uYXJnczogUGFyYW1ldGVyczxFPikgPT4gT1sncHJvY2VzcyddIGV4dGVuZHMge30gP1xuICAgICAgUHJvbWlzZTxSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT4+XG4gICAgOiAnY29udGVudCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgIFByb21pc2U8Q29udGVudFJldHVyblR5cGU8T1snY29udGVudCddICYgQ29udGVudFR5cGU+PlxuICAgIDogUmV0dXJuVHlwZTxFPixcbiAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgYm9vbGVhbiB8IHVuZGVmaW5lZD5cbiAgICA6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT5cbiAgICA6IEVbJ3NpZGVFZmZlY3QnXVxuICA+XG4+ICZcbiAgT21pdDxPLCBLZXlvZlJlc3RFbmRwb2ludD4gJlxuICBPbWl0PEUsIEtleW9mUmVzdEVuZHBvaW50IHwga2V5b2YgTz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGlhbFJlc3RHZW5lcmljcyB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGF0aCAqL1xuICByZWFkb25seSBwYXRoPzogc3RyaW5nO1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3NjaGVtYSAqL1xuICByZWFkb25seSBzY2hlbWE/OiBTY2hlbWEgfCB1bmRlZmluZWQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjbWV0aG9kICovXG4gIHJlYWRvbmx5IG1ldGhvZD86IHN0cmluZztcbiAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNib2R5ICovXG4gIGJvZHk/OiBhbnk7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjc2VhcmNoUGFyYW1zICovXG4gIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYWdpbmF0aW9uZmllbGQgKi9cbiAgcmVhZG9ubHkgcGFnaW5hdGlvbkZpZWxkPzogc3RyaW5nO1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Byb2Nlc3MgKi9cbiAgcHJvY2Vzcz8odmFsdWU6IGFueSwgLi4uYXJnczogYW55KTogYW55O1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2NvbnRlbnQgKi9cbiAgcmVhZG9ubHkgY29udGVudD86IENvbnRlbnRUeXBlO1xufVxuLyoqIEdlbmVyaWMgdHlwZXMgd2hlbiBjb25zdHJ1Y3RpbmcgYSBSZXN0RW5kcG9pbnRcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjaW5oZXJpdGFuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXN0R2VuZXJpY3MgZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzIHtcbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uRW5kcG9pbnQ8XG4gIEUgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uICYgUmVzdEdlbmVyaWNzICYgeyBzaWRlRWZmZWN0PzogYm9vbGVhbiB8IHVuZGVmaW5lZCB9LFxuICBBIGV4dGVuZHMgYW55W10sXG4+ID0gUmVzdEluc3RhbmNlQmFzZTxcbiAgUGFyYW1GZXRjaE5vQm9keTxBWzBdLCBSZXNvbHZlVHlwZTxFPj4sXG4gIEVbJ3NjaGVtYSddLFxuICBFWydzaWRlRWZmZWN0J10sXG4gIFBpY2s8RSwgJ3BhdGgnIHwgJ3NlYXJjaFBhcmFtcycgfCAnYm9keSc+ICYge1xuICAgIHNlYXJjaFBhcmFtczogT21pdDxBWzBdLCBrZXlvZiBQYXRoQXJnczxFWydwYXRoJ10+PjtcbiAgfVxuPjtcbi8qKiBNZXJnZSBwYWdpbmF0aW9uIGZpZWxkIEMgaW50byBib2R5LCBtYWtpbmcgaXQgcmVxdWlyZWQgKi9cbnR5cGUgUGFnaW5hdGlvbkludG9Cb2R5PEJvZHksIEMgZXh0ZW5kcyBzdHJpbmc+ID0gQm9keSAmIHtcbiAgW0sgaW4gQ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW47XG59O1xuXG4vKiogUGFnaW5hdGVkIHNlYXJjaFBhcmFtcyB0eXBlICovXG50eXBlIFBhZ2luYXRlZFNlYXJjaFBhcmFtczxcbiAgRSBleHRlbmRzIHsgc2VhcmNoUGFyYW1zPzogYW55OyBwYXRoPzogc3RyaW5nIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID0ge1xuICBbSyBpbiBDXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcbn0gJiBFWydzZWFyY2hQYXJhbXMnXSAmXG4gIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PjtcblxuLyoqIHNlYXJjaFBhcmFtcyB2ZXJzaW9uOiBwYWdpbmF0aW9uIGluIHNlYXJjaFBhcmFtcywgb3B0aW9uYWwgYm9keSBzdXBwb3J0ICovXG50eXBlIFBhZ2luYXRpb25GaWVsZEluU2VhcmNoUGFyYW1zPFxuICBFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIFJlc3RHZW5lcmljcyAmIHsgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQgfSxcbiAgQyBleHRlbmRzIHN0cmluZyxcbj4gPSBSZXN0SW5zdGFuY2VCYXNlPFxuICAvLyBVbmlvbiBhbGxvd3MgY2FsbGluZyB3aXRoIGp1c3Qgc2VhcmNoUGFyYW1zIG9yIHdpdGggc2VhcmNoUGFyYW1zICsgYm9keVxuICB8IFBhcmFtRmV0Y2hOb0JvZHk8UGFnaW5hdGVkU2VhcmNoUGFyYW1zPEUsIEM+LCBSZXNvbHZlVHlwZTxFPj5cbiAgfCBQYXJhbUZldGNoV2l0aEJvZHk8XG4gICAgICBQYWdpbmF0ZWRTZWFyY2hQYXJhbXM8RSwgQz4sXG4gICAgICBOb25OdWxsYWJsZTxFWydib2R5J10+LFxuICAgICAgUmVzb2x2ZVR5cGU8RT5cbiAgICA+LFxuICBFWydzY2hlbWEnXSxcbiAgRVsnc2lkZUVmZmVjdCddLFxuICBQaWNrPEUsICdwYXRoJyB8ICdzZWFyY2hQYXJhbXMnIHwgJ2JvZHknPiAmIHtcbiAgICBzZWFyY2hQYXJhbXM6IHtcbiAgICAgIFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuO1xuICAgIH0gJiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgfVxuPiAmIHsgcGFnaW5hdGlvbkZpZWxkOiBDIH07XG5cbi8qKiBib2R5IHZlcnNpb246IHBhZ2luYXRpb24gZmllbGQgaXMgaW4gYm9keSAoYm9keSByZXF1aXJlZCkgKi9cbnR5cGUgUGFnaW5hdGlvbkZpZWxkSW5Cb2R5PFxuICBFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIFJlc3RHZW5lcmljcyAmIHsgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQgfSxcbiAgQyBleHRlbmRzIHN0cmluZyxcbj4gPSBSZXN0SW5zdGFuY2VCYXNlPFxuICBQYXJhbUZldGNoV2l0aEJvZHk8XG4gICAgRVsnc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgUGFnaW5hdGlvbkludG9Cb2R5PEVbJ2JvZHknXSwgQz4sXG4gICAgUmVzb2x2ZVR5cGU8RT5cbiAgPixcbiAgRVsnc2NoZW1hJ10sXG4gIEVbJ3NpZGVFZmZlY3QnXSxcbiAgUGljazxFLCAncGF0aCcgfCAnc2VhcmNoUGFyYW1zJz4gJiB7XG4gICAgYm9keTogUGFnaW5hdGlvbkludG9Cb2R5PEVbJ2JvZHknXSwgQz47XG4gIH1cbj4gJiB7IHBhZ2luYXRpb25GaWVsZDogQyB9O1xuXG4vKiogUmV0cmlldmVzIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cyBieSBwYWdpbmF0aW9uIGZpZWxkICovXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxcbiAgRSBleHRlbmRzIEZldGNoRnVuY3Rpb24gJiBSZXN0R2VuZXJpY3MgJiB7IHNpZGVFZmZlY3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID1cbiAgLy8gSWYgYm9keSBjYW4gYmUgdW5kZWZpbmVkIG9yIHBhZ2luYXRpb24gZmllbGQgbm90IGluIGJvZHksIHVzZSBzZWFyY2hQYXJhbXNcbiAgdW5kZWZpbmVkIGV4dGVuZHMgRVsnYm9keSddID8gUGFnaW5hdGlvbkZpZWxkSW5TZWFyY2hQYXJhbXM8RSwgQz5cbiAgOiAvLyBJZiBwYWdpbmF0aW9uIGZpZWxkIEMgaXMgYSBrZXkgb2YgYm9keSwgbWVyZ2UgaW50byBib2R5XG4gIEMgZXh0ZW5kcyBrZXlvZiBFWydib2R5J10gPyBQYWdpbmF0aW9uRmllbGRJbkJvZHk8RSwgQz5cbiAgOiAvLyBPdGhlcndpc2UgdXNlIHNlYXJjaFBhcmFtc1xuICAgIFBhZ2luYXRpb25GaWVsZEluU2VhcmNoUGFyYW1zPEUsIEM+O1xuXG5leHBvcnQgdHlwZSBBZGRFbmRwb2ludDxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFJlc3RGZXRjaDxcbiAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgW09bJ3NlYXJjaFBhcmFtcyddXSBleHRlbmRzIFt1bmRlZmluZWRdID9cbiAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgOiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgT1snYm9keSddLFxuICAgIFJlc29sdmVUeXBlPEY+XG4gID4sXG4gIFMsXG4gIHRydWUsXG4gIE9taXQ8TywgJ21ldGhvZCc+ICYgeyBtZXRob2Q6ICdQT1NUJyB9XG4+O1xuZXhwb3J0IHR5cGUgUmVtb3ZlRW5kcG9pbnQ8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IGFueSxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keTogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgfSA9IHsgcGF0aDogc3RyaW5nOyBib2R5OiBhbnkgfSxcbj4gPSBSZXN0SW5zdGFuY2VCYXNlPFxuICBSZXN0RmV0Y2g8XG4gICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICAgIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgIDogUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgIE9bJ2JvZHknXSxcbiAgICBSZXNvbHZlVHlwZTxGPlxuICA+LFxuICBTLFxuICB0cnVlLFxuICBPbWl0PE8sICdtZXRob2QnPiAmIHsgbWV0aG9kOiAnUEFUQ0gnIH1cbj47XG5leHBvcnQgdHlwZSBNb3ZlRW5kcG9pbnQ8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IGFueSxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keTogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFJlc3RGZXRjaDxQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj4sIE9bJ2JvZHknXSwgUmVzb2x2ZVR5cGU8Rj4+LFxuICBTLFxuICB0cnVlLFxuICBPbWl0PE8sICdtZXRob2QnIHwgJ3NlYXJjaFBhcmFtcyc+ICYgeyBtZXRob2Q6ICdQQVRDSCcgfVxuPjtcblxudHlwZSBPcHRpb25zQm9keURlZmF1bHQ8TyBleHRlbmRzIFJlc3RHZW5lcmljcz4gPVxuICAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID8gT1xuICA6IE9bJ21ldGhvZCddIGV4dGVuZHMgJ1BPU1QnIHwgJ1BVVCcgfCAnUEFUQ0gnID8gTyAmIHsgYm9keTogYW55IH1cbiAgOiBPICYgeyBib2R5OiB1bmRlZmluZWQgfTtcblxuLyoqIFdoZW4gYG1ldGhvZGAgaXMgb21pdHRlZCBmcm9tIGBPYCwgaW5mZXIgaXQgKG11c3Qgc3RheSBhbGlnbmVkIHdpdGggYE9wdGlvbnNUb0JvZHlBcmd1bWVudGApLiAqL1xudHlwZSBJbmZlclJlc3RNZXRob2RXaGVuT21pdHRlZDxPIGV4dGVuZHMgUmVzdEdlbmVyaWNzPiA9XG4gIE8gZXh0ZW5kcyB7IHNpZGVFZmZlY3Q6IHRydWUgfSA/ICdQT1NUJ1xuICA6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFtPWydib2R5J11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgJ0dFVCdcbiAgICA6ICdQT1NUJ1xuICA6ICdHRVQnO1xuXG50eXBlIE1ldGhvZEFyZ0ZvckJvZHlJbmZlcmVuY2U8TyBleHRlbmRzIFJlc3RHZW5lcmljcz4gPVxuICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEluZmVyUmVzdE1ldGhvZFdoZW5PbWl0dGVkPE8+O1xuXG50eXBlIE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8gZXh0ZW5kcyB7IGJvZHk/OiBhbnkgfSwgRW50aXR5U2NoZW1hID0gYW55PiA9XG4gICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBQYXJ0aWFsPERlbm9ybWFsaXplPEVudGl0eVNjaGVtYT4+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbj4gZXh0ZW5kcyBFbmRwb2ludEV4dHJhT3B0aW9uczxGPiB7XG4gIC8qKiBQcmVwZW5kZWQgdG8gYWxsIHVybHNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3VybFByZWZpeFxuICAgKi9cbiAgdXJsUHJlZml4Pzogc3RyaW5nO1xuICByZXF1ZXN0SW5pdD86IFJlcXVlc3RJbml0O1xuICAvKiogQ2FsbGVkIGJ5IGdldFJlcXVlc3RJbml0IHRvIGRldGVybWluZSBIVFRQIEhlYWRlcnNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldEhlYWRlcnNcbiAgICovXG4gIGdldEhlYWRlcnM/KGhlYWRlcnM6IEhlYWRlcnNJbml0KTogUHJvbWlzZTxIZWFkZXJzSW5pdD4gfCBIZWFkZXJzSW5pdDtcbiAgLyoqIFByZXBhcmVzIFJlcXVlc3RJbml0IHVzZWQgaW4gZmV0Y2guIFRoaXMgaXMgc2VudCB0byBmZXRjaFJlc3BvbnNlKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFJlcXVlc3RJbml0XG4gICAqL1xuICBnZXRSZXF1ZXN0SW5pdD8oYm9keTogYW55KTogUHJvbWlzZTxSZXF1ZXN0SW5pdD4gfCBSZXF1ZXN0SW5pdDtcbiAgLyoqIFBlcmZvcm1zIHRoZSBmZXRjaCBjYWxsXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNmZXRjaFJlc3BvbnNlXG4gICAqL1xuICBmZXRjaFJlc3BvbnNlPyhpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ6IFJlcXVlc3RJbml0KTogUHJvbWlzZTxhbnk+O1xuICAvKiogVGFrZXMgdGhlIFJlc3BvbnNlIGFuZCBwYXJzZXMgdmlhIC50ZXh0KCkgb3IgLmpzb24oKVxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFyc2VSZXNwb25zZVxuICAgKi9cbiAgcGFyc2VSZXNwb25zZT8ocmVzcG9uc2U6IFJlc3BvbnNlKTogUHJvbWlzZTxhbnk+O1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2NvbnRlbnQgKi9cbiAgY29udGVudD86IENvbnRlbnRUeXBlO1xuXG4gIHNpZGVFZmZlY3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBuYW1lPzogc3RyaW5nO1xuICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgZmV0Y2g/OiBGO1xuICBrZXk/KC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBzdHJpbmc7XG4gIHVybD8oLi4uYXJnczogUGFyYW1ldGVyczxGPik6IHN0cmluZztcbiAgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxGLCBTPjtcbn1cblxuLy8gV2hlbiBzdWJjbGFzc2luZyBSZXN0RW5kcG9pbnQgd2l0aCBgTyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueWAsIE8gZGVmYXVsdHNcbi8vIHRvIGBhbnlgLiBUaGUgYHVua25vd24gZXh0ZW5kcyBPID8gYW55YCBndWFyZCBjYXRjaGVzIE89YW55IGJlZm9yZSBpdCByZWFjaGVzXG4vLyBQYXRoQXJncyAoc2VlICMzNzgyKS4gU29mdFBhdGhBcmdzIGNvbGxhcHNlcyBQYXRoQXJnczxzdHJpbmc+IHRvIGB1bmtub3duYFxuLy8gd2hlbiBhIGNvbmNyZXRlIGJvZHkgaXMgcHJlc2VudCwgcHJldmVudGluZyB1bmlvbiBvdmVybG9hZHMgdGhhdCBicmVha1xuLy8gZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlIGNhbGxiYWNrcy4gTWV0aG9kIGluZmVyZW5jZSB0cmVhdHMgZXhwbGljaXQgYm9keSBhcyBQT1NULlxuZXhwb3J0IHR5cGUgUmVzdEVuZHBvaW50Q29uc3RydWN0b3JPcHRpb25zPE8gZXh0ZW5kcyBSZXN0R2VuZXJpY3MgPSBhbnk+ID1cbiAgUmVzdEVuZHBvaW50T3B0aW9uczxcbiAgICBSZXN0RmV0Y2g8XG4gICAgICB1bmtub3duIGV4dGVuZHMgTyA/IGFueVxuICAgICAgOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBbT1snc2VhcmNoUGFyYW1zJ11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgICAgIFNvZnRQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBTb2Z0UGF0aEFyZ3M8T1sncGF0aCddPlxuICAgICAgOiBTb2Z0UGF0aEFyZ3M8T1sncGF0aCddPixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxPLCBNZXRob2RBcmdGb3JCb2R5SW5mZXJlbmNlPE8+PixcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+XG4gICAgICA6ICdjb250ZW50JyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBDb250ZW50UmV0dXJuVHlwZTxPWydjb250ZW50J10gJiBDb250ZW50VHlwZT5cbiAgICAgIDogYW55IC8qRGVub3JtYWxpemU8T1snc2NoZW1hJ10+Ki9cbiAgICA+LFxuICAgIE9bJ3NjaGVtYSddXG4gID47XG5cbi8qKiBTaW1wbGlmaWVzIGVuZHBvaW50IGRlZmluaXRpb25zIHRoYXQgZm9sbG93IFJFU1QgcGF0dGVybnNcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXN0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyBSZXN0R2VuZXJpY3MgPSBhbnksXG4+IGV4dGVuZHMgUmVzdEluc3RhbmNlPFxuICBSZXN0RmV0Y2g8XG4gICAgdW5rbm93biBleHRlbmRzIE8gPyBhbnlcbiAgICA6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICBbT1snc2VhcmNoUGFyYW1zJ11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgICBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgIDogUGF0aEFyZ3M8T1sncGF0aCddPixcbiAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8TywgTWV0aG9kQXJnRm9yQm9keUluZmVyZW5jZTxPPj4sXG4gICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT5cbiAgICA6ICdjb250ZW50JyBleHRlbmRzIGtleW9mIE8gPyBDb250ZW50UmV0dXJuVHlwZTxPWydjb250ZW50J10gJiBDb250ZW50VHlwZT5cbiAgICA6IGFueSAvKkRlbm9ybWFsaXplPE9bJ3NjaGVtYSddPiovXG4gID4sXG4gICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogdW5kZWZpbmVkLFxuICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID8gRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gIDogTWV0aG9kVG9TaWRlPE1ldGhvZEFyZ0ZvckJvZHlJbmZlcmVuY2U8Tz4+LFxuICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPXG4gIDogTyAmIHtcbiAgICAgIG1ldGhvZDogSW5mZXJSZXN0TWV0aG9kV2hlbk9taXR0ZWQ8Tz47XG4gICAgfVxuPiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RFbmRwb2ludENvbnN0cnVjdG9yIHtcbiAgLyoqIFNpbXBsaWZpZXMgZW5kcG9pbnQgZGVmaW5pdGlvbnMgdGhhdCBmb2xsb3cgUkVTVCBwYXR0ZXJuc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnRcbiAgICovXG4gIG5ldyA8TyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueT4oe1xuICAgIG1ldGhvZCxcbiAgICBzaWRlRWZmZWN0LFxuICAgIG5hbWUsXG4gICAgLi4ub3B0aW9uc1xuICB9OiBSZXN0RW5kcG9pbnRDb25zdHJ1Y3Rvck9wdGlvbnM8Tz4gJlxuICAgIFJlYWRvbmx5PE8+ICZcbiAgICBDb250ZW50U2NoZW1hR3VhcmQ8Tz4pOiBSZXN0RW5kcG9pbnQ8Tz47XG4gIHJlYWRvbmx5IHByb3RvdHlwZTogUmVzdEluc3RhbmNlQmFzZTtcbn1cblxuZXhwb3J0IHR5cGUgTWV0aG9kVG9TaWRlPE0+ID1cbiAgTSBleHRlbmRzIHN0cmluZyA/XG4gICAgTSBleHRlbmRzICdHRVQnID9cbiAgICAgIHVuZGVmaW5lZFxuICAgIDogdHJ1ZVxuICA6IHVuZGVmaW5lZDtcblxuLyoqIFJlc3RFbmRwb2ludCB0eXBlcyBzaW1wbGlmaWVkICovXG5leHBvcnQgdHlwZSBSZXN0VHlwZTxcbiAgVXJsUGFyYW1zID0gYW55LFxuICBCb2R5ID0gYW55LFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIFIgPSBhbnksXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgfSA9IHsgcGF0aDogc3RyaW5nOyBwYWdpbmF0aW9uRmllbGQ6IHN0cmluZyB9LFxuPiA9IElmVHlwZVNjcmlwdExvb3NlTnVsbDxcbiAgUmVzdEluc3RhbmNlPFJlc3RGZXRjaDxVcmxQYXJhbXMsIEJvZHksIFI+LCBTLCBNLCBPPixcbiAgQm9keSBleHRlbmRzIHt9ID8gUmVzdFR5cGVXaXRoQm9keTxVcmxQYXJhbXMsIFMsIE0sIEJvZHksIFIsIE8+XG4gIDogUmVzdFR5cGVOb0JvZHk8VXJsUGFyYW1zLCBTLCBNLCBSLCBPPlxuPjtcblxuZXhwb3J0IHR5cGUgUmVzdFR5cGVXaXRoQm9keTxcbiAgVXJsUGFyYW1zID0gYW55LFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIEJvZHkgPSBhbnksXG4gIFIgPSBhbnkgLypEZW5vcm1hbGl6ZTxTPiovLFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5PzogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgfSA9IHsgcGF0aDogc3RyaW5nOyBib2R5OiBhbnkgfSxcbj4gPSBSZXN0SW5zdGFuY2U8UGFyYW1GZXRjaFdpdGhCb2R5PFVybFBhcmFtcywgQm9keSwgUj4sIFMsIE0sIE8+O1xuXG5leHBvcnQgdHlwZSBSZXN0VHlwZU5vQm9keTxcbiAgVXJsUGFyYW1zID0gYW55LFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIFIgPSBhbnkgLypEZW5vcm1hbGl6ZTxTPiovLFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5PzogdW5kZWZpbmVkO1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgfSA9IHsgcGF0aDogc3RyaW5nOyBib2R5OiB1bmRlZmluZWQgfSxcbj4gPSBSZXN0SW5zdGFuY2U8UGFyYW1GZXRjaE5vQm9keTxVcmxQYXJhbXMsIFI+LCBTLCBNLCBPPjtcblxuLyoqIFNpbXBsZSBwYXJhbWV0ZXJzLCBhbmQgYm9keSBmZXRjaCBmdW5jdGlvbnMgKi9cbmV4cG9ydCB0eXBlIFJlc3RGZXRjaDxcbiAgVXJsUGFyYW1zLFxuICBCb2R5ID0ge30sXG4gIFJlc29sdmUgPSBhbnksXG4+ID0gSWZUeXBlU2NyaXB0TG9vc2VOdWxsPFxuICB8IFBhcmFtRmV0Y2hOb0JvZHk8VXJsUGFyYW1zLCBSZXNvbHZlPlxuICB8IFBhcmFtRmV0Y2hXaXRoQm9keTxVcmxQYXJhbXMsIEJvZHksIFJlc29sdmU+LFxuICBCb2R5IGV4dGVuZHMge30gPyBQYXJhbUZldGNoV2l0aEJvZHk8VXJsUGFyYW1zLCBCb2R5LCBSZXNvbHZlPlxuICA6IFBhcmFtRmV0Y2hOb0JvZHk8VXJsUGFyYW1zLCBSZXNvbHZlPlxuPjtcblxuZXhwb3J0IHR5cGUgUGFyYW1GZXRjaFdpdGhCb2R5PFAsIEIgPSB7fSwgUiA9IGFueT4gPVxuICAvLyB3ZSBtdXN0IGFsd2F5cyBhbGxvdyB1bmRlZmluZWQgaW4gYSB1bmlvbiBhbmQgZ2l2ZSBpdCBhIHR5cGUgd2l0aG91dCBwYXJhbXNcbiAgUCBleHRlbmRzIHVuZGVmaW5lZCA/ICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+XG4gIDogLy8gZXZlbiB3aXRoIGxvb3NlIG51bGwsIHRoaXMgd2lsbCBvbmx5IGJlIHRydWUgd2hlbiBhbGwgbWVtYmVycyBhcmUgb3B0aW9uYWxcbiAge30gZXh0ZW5kcyBQID9cbiAgICAvLyB0aGlzIHNhZmVseSBoYW5kbGVzIFBhdGhBcmdzIHdpdGggbm8gbWVtYmVycyB0aGF0IHJlc3VsdHMgaW4gYSBzaW1wbGUgYHVua25vd25gIHR5cGVcbiAgICBrZXlvZiBQIGV4dGVuZHMgbmV2ZXIgP1xuICAgICAgKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIGJvZHk6IEIpID0+IFByb21pc2U8Uj5cbiAgICA6IHwgKCh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBwYXJhbXM6IFAsIGJvZHk6IEIpID0+IFByb21pc2U8Uj4pXG4gICAgICB8ICgodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgYm9keTogQikgPT4gUHJvbWlzZTxSPilcbiAgOiAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgcGFyYW1zOiBQLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+O1xuXG5leHBvcnQgdHlwZSBQYXJhbUZldGNoTm9Cb2R5PFAsIFIgPSBhbnk+ID1cbiAgLy8gd2UgbXVzdCBhbHdheXMgYWxsb3cgdW5kZWZpbmVkIGluIGEgdW5pb24gYW5kIGdpdmUgaXQgYSB0eXBlIHdpdGhvdXQgcGFyYW1zXG4gIFAgZXh0ZW5kcyB1bmRlZmluZWQgPyAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSkgPT4gUHJvbWlzZTxSPlxuICA6IC8vIGV2ZW4gd2l0aCBsb29zZSBudWxsLCB0aGlzIHdpbGwgb25seSBiZSB0cnVlIHdoZW4gYWxsIG1lbWJlcnMgYXJlIG9wdGlvbmFsXG4gIHt9IGV4dGVuZHMgUCA/XG4gICAgLy8gdGhpcyBzYWZlbHkgaGFuZGxlcyBQYXRoQXJncyB3aXRoIG5vIG1lbWJlcnMgdGhhdCByZXN1bHRzIGluIGEgc2ltcGxlIGB1bmtub3duYCB0eXBlXG4gICAga2V5b2YgUCBleHRlbmRzIG5ldmVyID9cbiAgICAgICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlKSA9PiBQcm9taXNlPFI+XG4gICAgOiB8ICgodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgcGFyYW1zOiBQKSA9PiBQcm9taXNlPFI+KVxuICAgICAgfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UpID0+IFByb21pc2U8Uj4pXG4gIDogKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCkgPT4gUHJvbWlzZTxSPjtcblxuLy8gc2FtZSBhbGdvcml0aG0sIGJ1dCBmb3IgQXJncyAoYWthIHJlYWRvbmx5IGFueVtdKVxuZXhwb3J0IHR5cGUgUGFyYW1Ub0FyZ3M8UD4gPVxuICBQIGV4dGVuZHMgdW5kZWZpbmVkID8gW11cbiAgOiB7fSBleHRlbmRzIFAgP1xuICAgIGtleW9mIFAgZXh0ZW5kcyBuZXZlciA/XG4gICAgICBbXVxuICAgIDogW10gfCBbUF1cbiAgOiBbUF07XG5cbnR5cGUgSWZUeXBlU2NyaXB0TG9vc2VOdWxsPFksIE4+ID0gMSB8IHVuZGVmaW5lZCBleHRlbmRzIDEgPyBZIDogTjtcblxuZXhwb3J0IHR5cGUgS2V5b2ZSZXN0RW5kcG9pbnQgPSBrZXlvZiBSZXN0SW5zdGFuY2U7XG5cbmV4cG9ydCB0eXBlIEZyb21GYWxsQmFjazxLIGV4dGVuZHMga2V5b2YgRSwgTywgRT4gPVxuICBLIGV4dGVuZHMga2V5b2YgTyA/IE9bS10gOiBFW0tdO1xuXG5leHBvcnQgdHlwZSBGZXRjaE11dGF0ZTxcbiAgQSBleHRlbmRzIHJlYWRvbmx5IGFueVtdID0gW2FueSwge31dIHwgW3t9XSxcbiAgUiA9IGFueSxcbj4gPSAodGhpczogUmVzdEluc3RhbmNlLCAuLi5hcmdzOiBBKSA9PiBQcm9taXNlPFI+O1xuXG5leHBvcnQgdHlwZSBGZXRjaEdldDxBIGV4dGVuZHMgcmVhZG9ubHkgYW55W10gPSBbYW55XSwgUiA9IGFueT4gPSAoXG4gIHRoaXM6IFJlc3RJbnN0YW5jZSxcbiAgLi4uYXJnczogQVxuKSA9PiBQcm9taXNlPFI+O1xuXG5leHBvcnQgdHlwZSBEZWZhdWx0czxPLCBEPiA9IHtcbiAgW0sgaW4ga2V5b2YgTyB8IGtleW9mIERdOiBLIGV4dGVuZHMga2V5b2YgTyA/IEV4Y2x1ZGU8T1tLXSwgdW5kZWZpbmVkPlxuICA6IERbRXh0cmFjdDxLLCBrZXlvZiBEPl07XG59O1xuXG5leHBvcnQgdHlwZSBHZXRFbmRwb2ludDxcbiAgTyBleHRlbmRzIHtcbiAgICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgc2NoZW1hOiBTY2hlbWE7XG4gICAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgICByZWFkb25seSBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gICAgcmVhZG9ubHkgcGFnaW5hdGlvbkZpZWxkPzogc3RyaW5nO1xuICB9ID0ge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBzY2hlbWE6IFNjaGVtYTtcbiAgfSxcbj4gPSBSZXN0VHlwZU5vQm9keTxcbiAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBbT1snc2VhcmNoUGFyYW1zJ11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gIDogUGF0aEFyZ3M8T1sncGF0aCddPixcbiAgT1snc2NoZW1hJ10sXG4gIHVuZGVmaW5lZCxcbiAgYW55LFxuICBPICYgeyBtZXRob2Q6ICdHRVQnIH1cbj47XG5cbmV4cG9ydCB0eXBlIE11dGF0ZUVuZHBvaW50PFxuICBPIGV4dGVuZHMge1xuICAgIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgICByZWFkb25seSBzY2hlbWE6IFNjaGVtYTtcbiAgICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAgIHJlYWRvbmx5IHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAgIHJlYWRvbmx5IGJvZHk/OiBhbnk7XG4gIH0gPSB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk6IGFueTtcbiAgICBzY2hlbWE6IFNjaGVtYTtcbiAgfSxcbj4gPSBSZXN0VHlwZVdpdGhCb2R5PFxuICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgOiBQYXRoQXJnczxPWydwYXRoJ10+LFxuICBPWydzY2hlbWEnXSxcbiAgdHJ1ZSxcbiAgT1snYm9keSddLFxuICBhbnksXG4gIE8gJiB7IGJvZHk6IGFueTsgbWV0aG9kOiAnUE9TVCcgfCAnUFVUJyB8ICdQQVRDSCcgfCAnREVMRVRFJyB9XG4+O1xuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludFR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRGVub3JtYWxpemUsXG4gIEVuZHBvaW50RXh0cmFPcHRpb25zLFxuICBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLFxuICBTY2hlbWEsXG4gIEZldGNoRnVuY3Rpb24sXG4gIFJlc29sdmVUeXBlLFxufSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQgdHlwZSB7IEV4dHJhY3RDb2xsZWN0aW9uIH0gZnJvbSAnLi9leHRyYWN0Q29sbGVjdGlvbi5qcyc7XG5pbXBvcnQge1xuICBPcHRpb25zVG9Cb2R5QXJndW1lbnQsXG4gIE9wdGlvbnNUb0Z1bmN0aW9uLFxufSBmcm9tICcuL09wdGlvbnNUb0Z1bmN0aW9uLmpzJztcbmltcG9ydCB7IFBhdGhBcmdzLCBTb2Z0UGF0aEFyZ3MgfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQgeyBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSAnLi9SZXN0RW5kcG9pbnRUeXBlSGVscC5qcyc7XG5cbmV4cG9ydCB0eXBlIENvbnRlbnRUeXBlID0gJ2pzb24nIHwgJ2Jsb2InIHwgJ3RleHQnIHwgJ2FycmF5QnVmZmVyJyB8ICdzdHJlYW0nO1xuXG5pbnRlcmZhY2UgQ29udGVudFR5cGVNYXAge1xuICBibG9iOiBCbG9iO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGFycmF5QnVmZmVyOiBBcnJheUJ1ZmZlcjtcbiAgc3RyZWFtOiBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PjtcbiAganNvbjogYW55O1xufVxuXG50eXBlIENvbnRlbnRSZXR1cm5UeXBlPEMgZXh0ZW5kcyBDb250ZW50VHlwZT4gPSBDb250ZW50VHlwZU1hcFtDXTtcblxudHlwZSBDb250ZW50U2NoZW1hR3VhcmQ8Tz4gPVxuICBPIGV4dGVuZHMgeyBjb250ZW50OiAnYmxvYicgfCAndGV4dCcgfCAnYXJyYXlCdWZmZXInIHwgJ3N0cmVhbScgfSA/XG4gICAgeyBzY2hlbWE/OiB1bmRlZmluZWQgfVxuICA6IHt9O1xuXG4vKiBHZW5lcmljIGB0aGlzOiBFYCBtZXRob2RzIChleHRlbmQsIHBhZ2luYXRlZCkgbGl2ZSBpbiBub24tZ2VuZXJpYyBtaXhpblxuICogaW50ZXJmYWNlcy4gVHlwZVNjcmlwdCByZS1pbnN0YW50aWF0ZXMgZXZlcnkgbWVtYmVyIG9mIGEgZ2VuZXJpYyBpbnRlcmZhY2VcbiAqICh3aXRoIGZyZXNoIHNpZ25hdHVyZSB0eXBlIHBhcmFtZXRlcnMpIGZvciBlYWNoIGRpc3RpbmN0IGluc3RhbnRpYXRpb247XG4gKiBoZXJlIHRoZSBzaWduYXR1cmVzIGFyZSBzaGFyZWQgYWNyb3NzIGFsbCBlbmRwb2ludHMsIGFuZCBjb21wYXJlIGFzXG4gKiBpZGVudGljYWwgd2hlbiByZWxhdGluZyBvbmUgUmVzdEluc3RhbmNlQmFzZSB0byBhbm90aGVyLiBleHRlbmQoKSByZWFkc1xuICogYEVbJ2ZldGNoJ11gIGluc3RlYWQgb2YgYEZgIHNvIGl0IGRvZXNuJ3QgZGVwZW5kIG9uIHRoZSBvdXRlciBnZW5lcmljcy5cbiAqL1xuaW50ZXJmYWNlIFJlc3RJbnN0YW5jZUV4dGVuZGVycyB7XG4gIC8vIFRPRE86IGBFeHRlbmRPcHRpb25zIGV4dGVuZHMgRXh0ZW5kYWJsZVJlc3RHZW5lcmljcyB8IHt9YCBpcyBhIGhhY2sgZm9yIG9wdGlvbnMgd2l0aCBub1xuICAvLyAgICAgICBQYXJ0aWFsUmVzdEdlbmVyaWNzIG1lbWJlcnMuIE92ZXJsb2FkcyAobGlrZSBwYWdpbmF0ZWQpIGNhbid0IHRlbGwgdGhlIGNhc2VzIGFwYXJ0XG4gIC8vICAgICAgIHNpbmNlIGV2ZXJ5IG1lbWJlciBpcyBvcHRpb25hbC5cbiAgLyoqIENyZWF0ZXMgYSBjaGlsZCBlbmRwb2ludCB0aGF0IGluaGVyaXRzIGZyb20gdGhpcyB3aGlsZSBvdmVycmlkaW5nIHByb3ZpZGVkIGBvcHRpb25zYC5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2V4dGVuZFxuICAgKi9cbiAgZXh0ZW5kPFxuICAgIEUgZXh0ZW5kcyBSZXN0SW5zdGFuY2VCYXNlLFxuICAgIEV4dGVuZE9wdGlvbnMgZXh0ZW5kcyBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzIHwge30sXG4gID4oXG4gICAgdGhpczogRSxcbiAgICBvcHRpb25zOiBSZWFkb25seTxcbiAgICAgIFJlc3RFbmRwb2ludEV4dGVuZE9wdGlvbnM8RXh0ZW5kT3B0aW9ucywgRSwgRVsnZmV0Y2gnXT4gJiBFeHRlbmRPcHRpb25zXG4gICAgPiAmXG4gICAgICAvLyBuYWtlZCBFeHRlbmRPcHRpb25zIHdpbnMgaW5mZXJlbmNlIChwbGFpbiBvYmplY3QgdHlwZSBpbnN0ZWFkIG9mIGFcbiAgICAgIC8vIHJldmVyc2UtbWFwcGVkIHR5cGUpOyBSZWFkb25seTw+IHN0aWxsIHByb3ZpZGVzIGxpdGVyYWwtcHJlc2VydmluZ1xuICAgICAgLy8gY29udGV4dHVhbCB0eXBlcyBmb3IgcGF0aC9tZXRob2QvZXRjLlxuICAgICAgRXh0ZW5kT3B0aW9ucyAmXG4gICAgICBDb250ZW50U2NoZW1hR3VhcmQ8RXh0ZW5kT3B0aW9ucz4sXG4gICk6IFJlc3RFeHRlbmRlZEVuZHBvaW50PEV4dGVuZE9wdGlvbnMsIEU+O1xufVxuXG5pbnRlcmZhY2UgUmVzdEluc3RhbmNlUGFnaW5hdG9ycyB7XG4gIC8qKiBDcmVhdGVzIGFuIEVuZHBvaW50IHRvIGFwcGVuZCB0aGUgbmV4dCBwYWdlIGV4dGVuZGluZyBhIGxpc3QgZm9yIHBhZ2luYXRpb25cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhZ2luYXRlZFxuICAgKi9cbiAgcGFnaW5hdGVkPFxuICAgIEUgZXh0ZW5kcyBSZXN0SW5zdGFuY2VCYXNlPEZldGNoRnVuY3Rpb24sIGFueSwgdW5kZWZpbmVkPixcbiAgICBBIGV4dGVuZHMgYW55W10sXG4gID4oXG4gICAgdGhpczogRSxcbiAgICByZW1vdmVDdXJzb3I6ICguLi5hcmdzOiBBKSA9PiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl0sXG4gICk6IFBhZ2luYXRpb25FbmRwb2ludDxFLCBBPjtcbiAgcGFnaW5hdGVkPFxuICAgIEUgZXh0ZW5kcyBSZXN0SW5zdGFuY2VCYXNlPEZldGNoRnVuY3Rpb24sIGFueSwgdW5kZWZpbmVkPixcbiAgICBDIGV4dGVuZHMgc3RyaW5nLFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgY3Vyc29yRmllbGQ6IEMsXG4gICk6IFBhZ2luYXRpb25GaWVsZEVuZHBvaW50PEUsIEM+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RJbnN0YW5jZUJhc2U8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IGFueSxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5PzogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICBtZXRob2Q/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZyB9LFxuPlxuICBleHRlbmRzIEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2U8RiwgUywgTT4sIFJlc3RJbnN0YW5jZUV4dGVuZGVycyB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICByZWFkb25seSBib2R5PzogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IGFueTtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzZWFyY2hQYXJhbXMgKi9cbiAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgOiAvLyB1bmtub3duIGlzIGlkZW50aXR5IHdpdGggJyYnIHR5cGUgb3BlcmF0b3JcbiAgICB1bmtub3duO1xuXG4gIC8qKiBQYXR0ZXJuIHRvIGNvbnN0cnVjdCB1cmwgYmFzZWQgb24gVXJsIFBhcmFtZXRlcnNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGhcbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IE9bJ3BhdGgnXTtcbiAgLyoqIFByZXBlbmRlZCB0byBhbGwgdXJsc1xuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjdXJsUHJlZml4XG4gICAqL1xuICByZWFkb25seSB1cmxQcmVmaXg6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVxdWVzdEluaXQ6IFJlcXVlc3RJbml0O1xuICAvKiogSFRUUCByZXF1ZXN0IG1ldGhvZFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjbWV0aG9kXG4gICAqL1xuICByZWFkb25seSBtZXRob2Q6IChPICYgeyBtZXRob2Q6IHN0cmluZyB9KVsnbWV0aG9kJ107XG4gIHJlYWRvbmx5IHNpZ25hbDogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbkZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNjb250ZW50ICovXG4gIHJlYWRvbmx5IGNvbnRlbnQ/OiBDb250ZW50VHlwZTtcblxuICAvKiBmZXRjaCBsaWZlY3ljbGVzICovXG4gIC8qIGJlZm9yZS1mZXRjaCAqL1xuICAvKiogQnVpbGRzIHRoZSBVUkwgdG8gZmV0Y2hcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3VybFxuICAgKi9cbiAgdXJsKC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBzdHJpbmc7XG4gIC8qKiBFbmNvZGUgdGhlIHNlYXJjaFBhcmFtcyBjb21wb25lbnQgb2YgdGhlIHVybFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjc2VhcmNoVG9TdHJpbmdcbiAgICovXG4gIHNlYXJjaFRvU3RyaW5nKHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZztcbiAgLyoqIFByZXBhcmVzIFJlcXVlc3RJbml0IHVzZWQgaW4gZmV0Y2guIFRoaXMgaXMgc2VudCB0byBmZXRjaFJlc3BvbnNlKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFJlcXVlc3RJbml0XG4gICAqL1xuICBnZXRSZXF1ZXN0SW5pdChcbiAgICB0aGlzOiBhbnksXG4gICAgYm9keT86IFJlcXVlc3RJbml0Wydib2R5J10gfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHJlYWRvbmx5IHVua25vd25bXSxcbiAgKTogUHJvbWlzZTxSZXF1ZXN0SW5pdD4gfCBSZXF1ZXN0SW5pdDtcbiAgLyoqIENhbGxlZCBieSBnZXRSZXF1ZXN0SW5pdCB0byBkZXRlcm1pbmUgSFRUUCBIZWFkZXJzXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRIZWFkZXJzXG4gICAqL1xuICBnZXRIZWFkZXJzKGhlYWRlcnM6IEhlYWRlcnNJbml0KTogUHJvbWlzZTxIZWFkZXJzSW5pdD4gfCBIZWFkZXJzSW5pdDtcbiAgLyogYWZ0ZXItZmV0Y2ggKi9cbiAgLyoqIFBlcmZvcm1zIHRoZSBmZXRjaCBjYWxsXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNmZXRjaFJlc3BvbnNlXG4gICAqL1xuICBmZXRjaFJlc3BvbnNlKGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdDogUmVxdWVzdEluaXQpOiBQcm9taXNlPFJlc3BvbnNlPjtcbiAgLyoqIFRha2VzIHRoZSBSZXNwb25zZSBhbmQgcGFyc2VzIHZpYSAudGV4dCgpIG9yIC5qc29uKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhcnNlUmVzcG9uc2VcbiAgICovXG4gIHBhcnNlUmVzcG9uc2UocmVzcG9uc2U6IFJlc3BvbnNlKTogUHJvbWlzZTxhbnk+O1xuICAvKiogUGVyZm9ybSBhbnkgdHJhbnNmb3JtcyB3aXRoIHRoZSBwYXJzZWQgcmVzdWx0LlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcHJvY2Vzc1xuICAgKi9cbiAgcHJvY2Vzcyh2YWx1ZTogYW55LCAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogUmVzb2x2ZVR5cGU8Rj47XG5cbiAgLyogdXRpbGl0aWVzICovXG4gIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3ZpZGVkIChmZXRjaCkga2V5IG1hdGNoZXMgdGhpcyBlbmRwb2ludC5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Rlc3RLZXlcbiAgICovXG4gIHRlc3RLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RJbnN0YW5jZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgICBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZyB9LFxuPlxuICBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2U8RiwgUywgTSwgTz4sIFJlc3RJbnN0YW5jZVBhZ2luYXRvcnMge1xuICAvKiogQ29uY2F0aW5hdGUgdGhlIG5leHQgcGFnZSBvZiByZXN1bHRzIChHRVQpXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRQYWdlXG4gICAqL1xuICBnZXRQYWdlOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddIGV4dGVuZHMgc3RyaW5nID9cbiAgICAgIFBhZ2luYXRpb25GaWVsZEVuZHBvaW50PFxuICAgICAgICAvLyBBIHBsYWluIGZldGNoIGZ1bmN0aW9uIChubyBtZW1iZXJzKSBvbmx5IGNvbnRyaWJ1dGVzIFJlc29sdmVUeXBlPD47XG4gICAgICAgIC8vIGNvbGxhcHNpbmcgaXQgdG8gb25lIHNpZ25hdHVyZSBhdm9pZHMgZGlzdHJpYnV0aW5nIHRoaXMgaW50ZXJzZWN0aW9uXG4gICAgICAgIC8vIG92ZXIgZWFjaCBtZW1iZXIgd2hlbiBGIGlzIGEgdW5pb24gb2YgZmV0Y2ggc2lnbmF0dXJlcy5cbiAgICAgICAgKFtrZXlvZiBGXSBleHRlbmRzIFtuZXZlcl0gPyAoLi4uYXJnczogYW55KSA9PiBSZXR1cm5UeXBlPEY+IDogRikgJiB7XG4gICAgICAgICAgc2NoZW1hOiBTO1xuICAgICAgICAgIHNpZGVFZmZlY3Q6IE07XG4gICAgICAgIH0gJiBPLFxuICAgICAgICAvLyBUeXBlU2NyaXB0IDw0LjYgZG9lc24ndCBuYXJyb3cgT1sncGFnaW5hdGlvbkZpZWxkJ10gaGVyZVxuICAgICAgICBFeHRyYWN0PE9bJ3BhZ2luYXRpb25GaWVsZCddLCBzdHJpbmc+XG4gICAgICA+XG4gICAgOiB1bmRlZmluZWRcbiAgOiB1bmRlZmluZWQ7XG4gIC8qKiBDcmVhdGUgYSBuZXcgaXRlbSAoUE9TVCkgYW5kIGBwdXNoYCB0byB0aGUgZW5kXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwdXNoXG4gICAqL1xuICBwdXNoOiBBZGRFbmRwb2ludDxcbiAgICBGLFxuICAgIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydwdXNoJ10sXG4gICAgT21pdDxPLCAnYm9keScgfCAnbWV0aG9kJz4gJiB7XG4gICAgICBib2R5OlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8sIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydwdXNoJ10+XG4gICAgICAgIHwgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TywgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3B1c2gnXT5bXVxuICAgICAgICB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbiAgLyoqIENyZWF0ZSBhIG5ldyBpdGVtIChQT1NUKSBhbmQgYHVuc2hpZnRgIHRvIHRoZSBiZWdpbm5pbmdcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Vuc2hpZnRcbiAgICovXG4gIHVuc2hpZnQ6IEFkZEVuZHBvaW50PFxuICAgIEYsXG4gICAgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3Vuc2hpZnQnXSxcbiAgICBPbWl0PE8sICdib2R5JyB8ICdtZXRob2QnPiAmIHtcbiAgICAgIGJvZHk6XG4gICAgICAgIHwgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TywgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3Vuc2hpZnQnXT5cbiAgICAgICAgfCBPcHRpb25zVG9BZGRlckJvZHlBcmd1bWVudDxPLCBFeHRyYWN0Q29sbGVjdGlvbjxTPlsndW5zaGlmdCddPltdXG4gICAgICAgIHwgRm9ybURhdGE7XG4gICAgfVxuICA+O1xuICAvKiogQ3JlYXRlIG5ldyBpdGVtKHMpIChQT1NUKSBhbmQgYE9iamVjdC5hc3NpZ25gIG1lcmdlXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNhc3NpZ25cbiAgICovXG4gIGFzc2lnbjogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPixcbiAgICBPbWl0PE8sICdib2R5JyB8ICdtZXRob2QnPiAmIHtcbiAgICAgIGJvZHk6XG4gICAgICAgIHwgUmVjb3JkPFxuICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TywgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ2Fzc2lnbiddPlxuICAgICAgICAgID5cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBSZW1vdmUgaXRlbShzKSAoUEFUQ0gpIGZyb20gY29sbGVjdGlvblxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcmVtb3ZlXG4gICAqL1xuICByZW1vdmU6IFJlbW92ZUVuZHBvaW50PFxuICAgIEYsXG4gICAgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3JlbW92ZSddLFxuICAgIE9taXQ8TywgJ2JvZHknIHwgJ21ldGhvZCc+ICYge1xuICAgICAgYm9keTpcbiAgICAgICAgfCBQYXJ0aWFsPE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8sIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydyZW1vdmUnXT4+XG4gICAgICAgIHwgUGFydGlhbDxcbiAgICAgICAgICAgIE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8sIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydyZW1vdmUnXT5cbiAgICAgICAgICA+W11cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBNb3ZlIGl0ZW0gYmV0d2VlbiBjb2xsZWN0aW9ucyAoUEFUQ0gpIC0gcmVtb3ZlcyBmcm9tIG9sZCwgYWRkcyB0byBuZXdcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I21vdmVcbiAgICovXG4gIG1vdmU6IE1vdmVFbmRwb2ludDxcbiAgICBGLFxuICAgIEV4dHJhY3RDb2xsZWN0aW9uPFM+Wydtb3ZlJ10sXG4gICAge1xuICAgICAgcGF0aDogJ21vdmVQYXRoJyBleHRlbmRzIGtleW9mIE8gPyBPWydtb3ZlUGF0aCddICYgc3RyaW5nIDogT1sncGF0aCddO1xuICAgICAgYm9keTpcbiAgICAgICAgfCBQYXJ0aWFsPE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8sIEV4dHJhY3RDb2xsZWN0aW9uPFM+Wydtb3ZlJ10+PlxuICAgICAgICB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVzdEVuZHBvaW50RXh0ZW5kT3B0aW9uczxcbiAgTyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIEUgZXh0ZW5kcyB7IGJvZHk/OiBhbnk7IHBhdGg/OiBzdHJpbmc7IHNjaGVtYT86IFNjaGVtYTsgbWV0aG9kPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9IFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gIE9wdGlvbnNUb0Z1bmN0aW9uPE8sIEUsIEY+LFxuICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NjaGVtYSddLCBTY2hlbWEgfCB1bmRlZmluZWQ+XG4gIDogRVsnc2NoZW1hJ11cbj4gJlxuICAvLyBTYW1lIGFzIFBhcnRpYWw8T21pdDxFLCBFeHRlbmRPbWl0S2V5cz4+LCBidXQgc2tpcHMgdGhlIHBlci1rZXkgRXhjbHVkZTw+IHdvcmtcbiAgLy8gKGFuZCB0aGUgZG91YmxlIG1hcHBlZCB0eXBlKSB3aGVuIEUgaGFzIG5vIG1lbWJlcnMgYmV5b25kIHRoZSBzdGFuZGFyZCBvbmVzLlxuICAvLyBLZWVwIHRoZSBndWFyZCBpbnNpZGUgdGhlIG1hcHBlZCB0eXBlJ3Mga2V5czogYSBgPyB1bmtub3duIDogLi4uYCBjb25kaXRpb25hbFxuICAvLyBoZXJlIHdvdWxkIGJlIGRlZmVycmVkIGFuZCBicmVhayBFeHRlbmRPcHRpb25zIGluZmVyZW5jZSBvbiBjaGFpbmVkIGV4dGVuZCgpLlxuICBQYXJ0aWFsUGljazxcbiAgICBFLFxuICAgIGtleW9mIEUgZXh0ZW5kcyBFeHRlbmRPbWl0S2V5cyA/IG5ldmVyIDogRXhjbHVkZTxrZXlvZiBFLCBFeHRlbmRPbWl0S2V5cz5cbiAgPjtcblxuLyoqIEFyZ3VtZW50IEkgcGFzc2VkIHRvIHByb2Nlc3MoKSwgZnJvbSBQYXJhbWV0ZXJzPEY+LlxuICogSW5kZXhpbmcgYSB1bmlvbiBsaWtlIGBbcGFyYW1zXSB8IFtdYCBvciBgW3BhcmFtcywgYm9keV0gfCBbYm9keV1gIChzZWUgUGFyYW1GZXRjaE5vQm9keS9QYXJhbUZldGNoV2l0aEJvZHkpXG4gKiBtZXJnZXMgcG9zaXRpb24td2lzZSwgZ2l2aW5nIGB1bmRlZmluZWRgIHdoZXJlIHNvbWUgY2FsbCBvbWl0cyB0aGUgYXJndW1lbnQuXG4gKiBFbmRwb2ludHMgdGhhdCB0YWtlIG5vIGFyZ3Mga2VlcCBgYW55YCwgc28gcHJvY2Vzcyh2YWx1ZSwgcGFyYW1zOiBhbnkpIGFuZCBzaW1pbGFyIHN0aWxsIGNvbXBpbGUuXG4gKi9cbnR5cGUgUHJvY2Vzc0FyZzxBIGV4dGVuZHMgcmVhZG9ubHkgYW55W10sIEkgZXh0ZW5kcyAwIHwgMT4gPVxuICBbQVsnbGVuZ3RoJ11dIGV4dGVuZHMgWzBdID8gYW55IDogQVtJXTtcblxudHlwZSBFeHRlbmRPbWl0S2V5cyA9XG4gIEtleW9mUmVzdEVuZHBvaW50IHwga2V5b2YgUGFydGlhbFJlc3RHZW5lcmljcyB8IGtleW9mIFJlc3RFbmRwb2ludE9wdGlvbnM7XG5cbi8qKiBQYXJ0aWFsPFBpY2s8VCwgSz4+IGFzIGEgc2luZ2xlIGhvbW9tb3JwaGljIG1hcHBlZCB0eXBlICovXG50eXBlIFBhcnRpYWxQaWNrPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IHsgW1AgaW4gS10/OiBUW1BdIH07XG5cbnR5cGUgT3B0aW9uc1RvUmVzdEVuZHBvaW50PFxuICBPIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyxcbiAgRSBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2UgJiB7IGJvZHk/OiBhbnk7IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZyB9LFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbixcbj4gPVxuICAncGF0aCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgIDogUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID8gTyA6IEUsXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ11cbiAgICAgID4sXG4gICAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICAgJ3NpZGVFZmZlY3QnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIEV4dHJhY3Q8T1snc2lkZUVmZmVjdCddLCBib29sZWFuIHwgdW5kZWZpbmVkPlxuICAgICAgOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBNZXRob2RUb1NpZGU8T1snbWV0aG9kJ10+XG4gICAgICA6IEVbJ3NpZGVFZmZlY3QnXSxcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+XG4gICAgICA6ICdjb250ZW50JyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBDb250ZW50UmV0dXJuVHlwZTxPWydjb250ZW50J10gJiBDb250ZW50VHlwZT5cbiAgICAgIDogUmVzb2x2ZVR5cGU8Rj4sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+O1xuICAgICAgICBib2R5OiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID8gT1snYm9keSddIDogRVsnYm9keSddO1xuICAgICAgICBzZWFyY2hQYXJhbXM6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NlYXJjaFBhcmFtcyddXG4gICAgICAgIDogRVsnc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1ldGhvZDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXTtcbiAgICAgICAgcGFnaW5hdGlvbkZpZWxkOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICAgIDogRVsncGFnaW5hdGlvbkZpZWxkJ107XG4gICAgICB9XG4gICAgPlxuICA6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFJlc3RUeXBlPFxuICAgICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgW09bJ3NlYXJjaFBhcmFtcyddXSBleHRlbmRzIFt1bmRlZmluZWRdID9cbiAgICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgIE8sXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ11cbiAgICAgID4sXG4gICAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICAgJ3NpZGVFZmZlY3QnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIEV4dHJhY3Q8T1snc2lkZUVmZmVjdCddLCBib29sZWFuIHwgdW5kZWZpbmVkPlxuICAgICAgOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBNZXRob2RUb1NpZGU8T1snbWV0aG9kJ10+XG4gICAgICA6IEVbJ3NpZGVFZmZlY3QnXSxcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+XG4gICAgICA6ICdjb250ZW50JyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBDb250ZW50UmV0dXJuVHlwZTxPWydjb250ZW50J10gJiBDb250ZW50VHlwZT5cbiAgICAgIDogUmVzb2x2ZVR5cGU8Rj4sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IEVbJ3BhdGgnXTtcbiAgICAgICAgYm9keTogT1snYm9keSddO1xuICAgICAgICBzZWFyY2hQYXJhbXM6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NlYXJjaFBhcmFtcyddXG4gICAgICAgIDogRVsnc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1ldGhvZDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXTtcbiAgICAgICAgcGFnaW5hdGlvbkZpZWxkOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICAgIDogRXh0cmFjdDxFWydwYWdpbmF0aW9uRmllbGQnXSwgc3RyaW5nPjtcbiAgICAgIH1cbiAgICA+XG4gIDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICAgIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgICAgRSxcbiAgICAgICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXVxuICAgICAgPixcbiAgICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogRVsnc2NoZW1hJ10sXG4gICAgICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gICAgICA6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT5cbiAgICAgIDogRVsnc2lkZUVmZmVjdCddLFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT5cbiAgICAgIDogJ2NvbnRlbnQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIENvbnRlbnRSZXR1cm5UeXBlPE9bJ2NvbnRlbnQnXSAmIENvbnRlbnRUeXBlPlxuICAgICAgOiBSZXNvbHZlVHlwZTxGPixcbiAgICAgIHtcbiAgICAgICAgcGF0aDogRVsncGF0aCddO1xuICAgICAgICBib2R5OiBFWydib2R5J107XG4gICAgICAgIHNlYXJjaFBhcmFtczogT1snc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1ldGhvZDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXTtcbiAgICAgICAgcGFnaW5hdGlvbkZpZWxkOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICAgIDogRXh0cmFjdDxFWydwYWdpbmF0aW9uRmllbGQnXSwgc3RyaW5nPjtcbiAgICAgIH1cbiAgICA+XG4gIDogUmVzdEluc3RhbmNlPFxuICAgICAgRixcbiAgICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogRVsnc2NoZW1hJ10sXG4gICAgICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gICAgICA6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT5cbiAgICAgIDogRVsnc2lkZUVmZmVjdCddLFxuICAgICAge1xuICAgICAgICBwYXRoOiAncGF0aCcgZXh0ZW5kcyBrZXlvZiBPID8gRXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD5cbiAgICAgICAgOiBFWydwYXRoJ107XG4gICAgICAgIGJvZHk6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBFWydib2R5J107XG4gICAgICAgIHNlYXJjaFBhcmFtczogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgICAgICAgOiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgbWV0aG9kOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddO1xuICAgICAgICBwYWdpbmF0aW9uRmllbGQ6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgICAgOiBFWydwYWdpbmF0aW9uRmllbGQnXTtcbiAgICAgIH1cbiAgICA+O1xuXG5leHBvcnQgdHlwZSBSZXN0RXh0ZW5kZWRFbmRwb2ludDxcbiAgTyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIEUgZXh0ZW5kcyBSZXN0SW5zdGFuY2VCYXNlICYgeyBnZXRQYWdlPzogdW5rbm93biB9LFxuPiA9IE9wdGlvbnNUb1Jlc3RFbmRwb2ludDxcbiAgTyxcbiAgRSAmXG4gICAgKEUgZXh0ZW5kcyB7IGdldFBhZ2U6IHsgcGFnaW5hdGlvbkZpZWxkOiBzdHJpbmcgfSB9ID9cbiAgICAgIHsgcGFnaW5hdGlvbkZpZWxkOiBFWydnZXRQYWdlJ11bJ3BhZ2luYXRpb25GaWVsZCddIH1cbiAgICA6IHVua25vd24pLFxuICBSZXN0SW5zdGFuY2U8XG4gICAgKC4uLmFyZ3M6IFBhcmFtZXRlcnM8RT4pID0+IE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID9cbiAgICAgIFByb21pc2U8UmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+PlxuICAgIDogJ2NvbnRlbnQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICBQcm9taXNlPENvbnRlbnRSZXR1cm5UeXBlPE9bJ2NvbnRlbnQnXSAmIENvbnRlbnRUeXBlPj5cbiAgICA6IFJldHVyblR5cGU8RT4sXG4gICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID8gRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gICAgOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBNZXRob2RUb1NpZGU8T1snbWV0aG9kJ10+XG4gICAgOiBFWydzaWRlRWZmZWN0J11cbiAgPlxuPiAmXG4gIC8vIEVxdWl2YWxlbnQgdG8gT21pdDxPLCBLZXlvZlJlc3RFbmRwb2ludD4gJiBPbWl0PEUsIEtleW9mUmVzdEVuZHBvaW50IHwga2V5b2YgTz47XG4gIC8vIHRoZSBndWFyZHMgYXZvaWQgcGVyLWtleSBFeGNsdWRlPD4gd29yayB3aGVuIHRoZXJlIGFyZSBubyBleHRyYSBtZW1iZXJzXG4gIChrZXlvZiBPIGV4dGVuZHMgS2V5b2ZSZXN0RW5kcG9pbnQgPyB1bmtub3duIDogT21pdDxPLCBLZXlvZlJlc3RFbmRwb2ludD4pICZcbiAgKGtleW9mIEUgZXh0ZW5kcyBLZXlvZlJlc3RFbmRwb2ludCA/IHVua25vd25cbiAgOiBPbWl0PEUsIEtleW9mUmVzdEVuZHBvaW50IHwga2V5b2YgTz4pO1xuXG4vKiogUGFydGlhbFJlc3RHZW5lcmljcyB3aXRob3V0IGBwcm9jZXNzYC4gT3B0aW9ucyBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLCBleHRlbmQoKSBhbmRcbiAqIHJlc291cmNlKCkuZXh0ZW5kKCkgYXJlIGNvbnN0cmFpbmVkIGJ5IHRoaXMsIHNvIFJlc3RFbmRwb2ludE9wdGlvbnMnIHR5cGVkIGBwcm9jZXNzYCBtZW1iZXIgaXNcbiAqIHRoZSBvbmx5IGNvbnRleHR1YWwgdHlwZSBmb3IgcHJvY2VzcygpIHBhcmFtcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzIHtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYXRoICovXG4gIHJlYWRvbmx5IHBhdGg/OiBzdHJpbmc7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjc2NoZW1hICovXG4gIHJlYWRvbmx5IHNjaGVtYT86IFNjaGVtYSB8IHVuZGVmaW5lZDtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNtZXRob2QgKi9cbiAgcmVhZG9ubHkgbWV0aG9kPzogc3RyaW5nO1xuICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2JvZHkgKi9cbiAgYm9keT86IGFueTtcbiAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzZWFyY2hQYXJhbXMgKi9cbiAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhZ2luYXRpb25maWVsZCAqL1xuICByZWFkb25seSBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjY29udGVudCAqL1xuICByZWFkb25seSBjb250ZW50PzogQ29udGVudFR5cGU7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxSZXN0R2VuZXJpY3MgZXh0ZW5kcyBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzIHtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwcm9jZXNzICovXG4gIHByb2Nlc3M/KHZhbHVlOiBhbnksIC4uLmFyZ3M6IGFueSk6IGFueTtcbn1cbi8qKiBHZW5lcmljIHR5cGVzIHdoZW4gY29uc3RydWN0aW5nIGEgUmVzdEVuZHBvaW50XG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2luaGVyaXRhbmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEdlbmVyaWNzIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cbi8qKiBSZXN0R2VuZXJpY3Mgd2l0aG91dCBgcHJvY2Vzc2A7IHNlZSBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzICovXG5pbnRlcmZhY2UgQ29uc3RydWN0b3JSZXN0R2VuZXJpY3MgZXh0ZW5kcyBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzIHtcbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uRW5kcG9pbnQ8XG4gIEUgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uICYgUmVzdEdlbmVyaWNzICYgeyBzaWRlRWZmZWN0PzogYm9vbGVhbiB8IHVuZGVmaW5lZCB9LFxuICBBIGV4dGVuZHMgYW55W10sXG4+ID0gUmVzdEluc3RhbmNlQmFzZTxcbiAgUGFyYW1GZXRjaE5vQm9keTxBWzBdLCBSZXNvbHZlVHlwZTxFPj4sXG4gIEVbJ3NjaGVtYSddLFxuICBFWydzaWRlRWZmZWN0J10sXG4gIFBpY2s8RSwgJ3BhdGgnIHwgJ3NlYXJjaFBhcmFtcycgfCAnYm9keSc+ICYge1xuICAgIHNlYXJjaFBhcmFtczogT21pdDxBWzBdLCBrZXlvZiBQYXRoQXJnczxFWydwYXRoJ10+PjtcbiAgfVxuPjtcbi8qKiBNZXJnZSBwYWdpbmF0aW9uIGZpZWxkIEMgaW50byBib2R5LCBtYWtpbmcgaXQgcmVxdWlyZWQgKi9cbnR5cGUgUGFnaW5hdGlvbkludG9Cb2R5PEJvZHksIEMgZXh0ZW5kcyBzdHJpbmc+ID0gQm9keSAmIHtcbiAgW0sgaW4gQ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW47XG59O1xuXG4vKiogUGFnaW5hdGVkIHNlYXJjaFBhcmFtcyB0eXBlICovXG50eXBlIFBhZ2luYXRlZFNlYXJjaFBhcmFtczxcbiAgRSBleHRlbmRzIHsgc2VhcmNoUGFyYW1zPzogYW55OyBwYXRoPzogc3RyaW5nIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID0ge1xuICBbSyBpbiBDXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcbn0gJiBFWydzZWFyY2hQYXJhbXMnXSAmXG4gIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PjtcblxuLyoqIHNlYXJjaFBhcmFtcyB2ZXJzaW9uOiBwYWdpbmF0aW9uIGluIHNlYXJjaFBhcmFtcywgb3B0aW9uYWwgYm9keSBzdXBwb3J0ICovXG50eXBlIFBhZ2luYXRpb25GaWVsZEluU2VhcmNoUGFyYW1zPFxuICBFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIFJlc3RHZW5lcmljcyAmIHsgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQgfSxcbiAgQyBleHRlbmRzIHN0cmluZyxcbj4gPSBSZXN0SW5zdGFuY2VCYXNlPFxuICAvLyBVbmlvbiBhbGxvd3MgY2FsbGluZyB3aXRoIGp1c3Qgc2VhcmNoUGFyYW1zIG9yIHdpdGggc2VhcmNoUGFyYW1zICsgYm9keVxuICB8IFBhcmFtRmV0Y2hOb0JvZHk8UGFnaW5hdGVkU2VhcmNoUGFyYW1zPEUsIEM+LCBSZXNvbHZlVHlwZTxFPj5cbiAgfCBQYXJhbUZldGNoV2l0aEJvZHk8XG4gICAgICBQYWdpbmF0ZWRTZWFyY2hQYXJhbXM8RSwgQz4sXG4gICAgICBOb25OdWxsYWJsZTxFWydib2R5J10+LFxuICAgICAgUmVzb2x2ZVR5cGU8RT5cbiAgICA+LFxuICBFWydzY2hlbWEnXSxcbiAgRVsnc2lkZUVmZmVjdCddLFxuICBQaWNrPEUsICdwYXRoJyB8ICdzZWFyY2hQYXJhbXMnIHwgJ2JvZHknPiAmIHtcbiAgICBzZWFyY2hQYXJhbXM6IHtcbiAgICAgIFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuO1xuICAgIH0gJiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgfVxuPiAmIHsgcGFnaW5hdGlvbkZpZWxkOiBDIH07XG5cbi8qKiBib2R5IHZlcnNpb246IHBhZ2luYXRpb24gZmllbGQgaXMgaW4gYm9keSAoYm9keSByZXF1aXJlZCkgKi9cbnR5cGUgUGFnaW5hdGlvbkZpZWxkSW5Cb2R5PFxuICBFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIFJlc3RHZW5lcmljcyAmIHsgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQgfSxcbiAgQyBleHRlbmRzIHN0cmluZyxcbj4gPSBSZXN0SW5zdGFuY2VCYXNlPFxuICBQYXJhbUZldGNoV2l0aEJvZHk8XG4gICAgRVsnc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgUGFnaW5hdGlvbkludG9Cb2R5PEVbJ2JvZHknXSwgQz4sXG4gICAgUmVzb2x2ZVR5cGU8RT5cbiAgPixcbiAgRVsnc2NoZW1hJ10sXG4gIEVbJ3NpZGVFZmZlY3QnXSxcbiAgUGljazxFLCAncGF0aCcgfCAnc2VhcmNoUGFyYW1zJz4gJiB7XG4gICAgYm9keTogUGFnaW5hdGlvbkludG9Cb2R5PEVbJ2JvZHknXSwgQz47XG4gIH1cbj4gJiB7IHBhZ2luYXRpb25GaWVsZDogQyB9O1xuXG4vKiogUmV0cmlldmVzIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cyBieSBwYWdpbmF0aW9uIGZpZWxkICovXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxcbiAgRSBleHRlbmRzIEZldGNoRnVuY3Rpb24gJiBSZXN0R2VuZXJpY3MgJiB7IHNpZGVFZmZlY3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID1cbiAgLy8gSWYgYm9keSBjYW4gYmUgdW5kZWZpbmVkIG9yIHBhZ2luYXRpb24gZmllbGQgbm90IGluIGJvZHksIHVzZSBzZWFyY2hQYXJhbXNcbiAgdW5kZWZpbmVkIGV4dGVuZHMgRVsnYm9keSddID8gUGFnaW5hdGlvbkZpZWxkSW5TZWFyY2hQYXJhbXM8RSwgQz5cbiAgOiAvLyBJZiBwYWdpbmF0aW9uIGZpZWxkIEMgaXMgYSBrZXkgb2YgYm9keSwgbWVyZ2UgaW50byBib2R5XG4gIEMgZXh0ZW5kcyBrZXlvZiBFWydib2R5J10gPyBQYWdpbmF0aW9uRmllbGRJbkJvZHk8RSwgQz5cbiAgOiAvLyBPdGhlcndpc2UgdXNlIHNlYXJjaFBhcmFtc1xuICAgIFBhZ2luYXRpb25GaWVsZEluU2VhcmNoUGFyYW1zPEUsIEM+O1xuXG5leHBvcnQgdHlwZSBBZGRFbmRwb2ludDxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFJlc3RGZXRjaDxcbiAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgW09bJ3NlYXJjaFBhcmFtcyddXSBleHRlbmRzIFt1bmRlZmluZWRdID9cbiAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgOiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgT1snYm9keSddLFxuICAgIFJlc29sdmVUeXBlPEY+XG4gID4sXG4gIFMsXG4gIHRydWUsXG4gIE9taXQ8TywgJ21ldGhvZCc+ICYgeyBtZXRob2Q6ICdQT1NUJyB9XG4+O1xuZXhwb3J0IHR5cGUgUmVtb3ZlRW5kcG9pbnQ8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IGFueSxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keTogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgfSA9IHsgcGF0aDogc3RyaW5nOyBib2R5OiBhbnkgfSxcbj4gPSBSZXN0SW5zdGFuY2VCYXNlPFxuICBSZXN0RmV0Y2g8XG4gICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICAgIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgIDogUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgIE9bJ2JvZHknXSxcbiAgICBSZXNvbHZlVHlwZTxGPlxuICA+LFxuICBTLFxuICB0cnVlLFxuICBPbWl0PE8sICdtZXRob2QnPiAmIHsgbWV0aG9kOiAnUEFUQ0gnIH1cbj47XG5leHBvcnQgdHlwZSBNb3ZlRW5kcG9pbnQ8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IGFueSxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keTogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFJlc3RGZXRjaDxQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj4sIE9bJ2JvZHknXSwgUmVzb2x2ZVR5cGU8Rj4+LFxuICBTLFxuICB0cnVlLFxuICBPbWl0PE8sICdtZXRob2QnIHwgJ3NlYXJjaFBhcmFtcyc+ICYgeyBtZXRob2Q6ICdQQVRDSCcgfVxuPjtcblxudHlwZSBPcHRpb25zQm9keURlZmF1bHQ8TyBleHRlbmRzIFJlc3RHZW5lcmljcz4gPVxuICAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID8gT1xuICA6IE9bJ21ldGhvZCddIGV4dGVuZHMgJ1BPU1QnIHwgJ1BVVCcgfCAnUEFUQ0gnID8gTyAmIHsgYm9keTogYW55IH1cbiAgOiBPICYgeyBib2R5OiB1bmRlZmluZWQgfTtcblxuLyoqIFdoZW4gYG1ldGhvZGAgaXMgb21pdHRlZCBmcm9tIGBPYCwgaW5mZXIgaXQgKG11c3Qgc3RheSBhbGlnbmVkIHdpdGggYE9wdGlvbnNUb0JvZHlBcmd1bWVudGApLiAqL1xudHlwZSBJbmZlclJlc3RNZXRob2RXaGVuT21pdHRlZDxPIGV4dGVuZHMgUmVzdEdlbmVyaWNzPiA9XG4gIE8gZXh0ZW5kcyB7IHNpZGVFZmZlY3Q6IHRydWUgfSA/ICdQT1NUJ1xuICA6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFtPWydib2R5J11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgJ0dFVCdcbiAgICA6ICdQT1NUJ1xuICA6ICdHRVQnO1xuXG50eXBlIE1ldGhvZEFyZ0ZvckJvZHlJbmZlcmVuY2U8TyBleHRlbmRzIFJlc3RHZW5lcmljcz4gPVxuICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEluZmVyUmVzdE1ldGhvZFdoZW5PbWl0dGVkPE8+O1xuXG50eXBlIE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8gZXh0ZW5kcyB7IGJvZHk/OiBhbnkgfSwgRW50aXR5U2NoZW1hID0gYW55PiA9XG4gICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBQYXJ0aWFsPERlbm9ybWFsaXplPEVudGl0eVNjaGVtYT4+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbj4gZXh0ZW5kcyBFbmRwb2ludEV4dHJhT3B0aW9uczxGPiB7XG4gIC8qKiBQcmVwZW5kZWQgdG8gYWxsIHVybHNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3VybFByZWZpeFxuICAgKi9cbiAgdXJsUHJlZml4Pzogc3RyaW5nO1xuICByZXF1ZXN0SW5pdD86IFJlcXVlc3RJbml0O1xuICAvKiogQ2FsbGVkIGJ5IGdldFJlcXVlc3RJbml0IHRvIGRldGVybWluZSBIVFRQIEhlYWRlcnNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldEhlYWRlcnNcbiAgICovXG4gIGdldEhlYWRlcnM/KGhlYWRlcnM6IEhlYWRlcnNJbml0KTogUHJvbWlzZTxIZWFkZXJzSW5pdD4gfCBIZWFkZXJzSW5pdDtcbiAgLyoqIFByZXBhcmVzIFJlcXVlc3RJbml0IHVzZWQgaW4gZmV0Y2guIFRoaXMgaXMgc2VudCB0byBmZXRjaFJlc3BvbnNlKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFJlcXVlc3RJbml0XG4gICAqL1xuICBnZXRSZXF1ZXN0SW5pdD8oYm9keTogYW55KTogUHJvbWlzZTxSZXF1ZXN0SW5pdD4gfCBSZXF1ZXN0SW5pdDtcbiAgLyoqIFBlcmZvcm1zIHRoZSBmZXRjaCBjYWxsXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNmZXRjaFJlc3BvbnNlXG4gICAqL1xuICBmZXRjaFJlc3BvbnNlPyhpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ6IFJlcXVlc3RJbml0KTogUHJvbWlzZTxhbnk+O1xuICAvKiogVGFrZXMgdGhlIFJlc3BvbnNlIGFuZCBwYXJzZXMgdmlhIC50ZXh0KCkgb3IgLmpzb24oKVxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFyc2VSZXNwb25zZVxuICAgKi9cbiAgcGFyc2VSZXNwb25zZT8ocmVzcG9uc2U6IFJlc3BvbnNlKTogUHJvbWlzZTxhbnk+O1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2NvbnRlbnQgKi9cbiAgY29udGVudD86IENvbnRlbnRUeXBlO1xuXG4gIHNpZGVFZmZlY3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBuYW1lPzogc3RyaW5nO1xuICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgZmV0Y2g/OiBGO1xuICBrZXk/KC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBzdHJpbmc7XG4gIHVybD8oLi4uYXJnczogUGFyYW1ldGVyczxGPik6IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwcm9jZXNzICovXG4gIC8vIFBvc2l0aW9uYWwgcmF0aGVyIHRoYW4gYSByZXN0IHR1cGxlOiB3aGVuIEYgaXMgZ2VuZXJpYyAobGlrZSBhIHBhdGggdHlwZSBwYXJhbWV0ZXIpLFxuICAvLyBhIGRlZmVycmVkIHJlc3QgdHVwbGUgd291bGQgcmVqZWN0IHByb2Nlc3ModmFsdWUsIHBhcmFtcykgZm9yIGhhdmluZyB0b28gbWFueSBwYXJhbXMuXG4gIHByb2Nlc3M/KFxuICAgIHZhbHVlOiBhbnksXG4gICAgcGFyYW1zOiBQcm9jZXNzQXJnPFBhcmFtZXRlcnM8Rj4sIDA+LFxuICAgIGJvZHk6IFByb2Nlc3NBcmc8UGFyYW1ldGVyczxGPiwgMT4sXG4gICAgLi4ucmVzdDogYW55W11cbiAgKTogYW55O1xuICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEYsIFM+O1xufVxuXG4vLyBXaGVuIHN1YmNsYXNzaW5nIFJlc3RFbmRwb2ludCB3aXRoIGBPIGV4dGVuZHMgUmVzdEdlbmVyaWNzID0gYW55YCwgTyBkZWZhdWx0c1xuLy8gdG8gYGFueWAuIFRoZSBgdW5rbm93biBleHRlbmRzIE8gPyBhbnlgIGd1YXJkIGNhdGNoZXMgTz1hbnkgYmVmb3JlIGl0IHJlYWNoZXNcbi8vIFBhdGhBcmdzIChzZWUgIzM3ODIpLiBTb2Z0UGF0aEFyZ3MgY29sbGFwc2VzIFBhdGhBcmdzPHN0cmluZz4gdG8gYHVua25vd25gXG4vLyB3aGVuIGEgY29uY3JldGUgYm9keSBpcyBwcmVzZW50LCBwcmV2ZW50aW5nIHVuaW9uIG92ZXJsb2FkcyB0aGF0IGJyZWFrXG4vLyBnZXRPcHRpbWlzdGljUmVzcG9uc2UgY2FsbGJhY2tzLiBNZXRob2QgaW5mZXJlbmNlIHRyZWF0cyBleHBsaWNpdCBib2R5IGFzIFBPU1QuXG5leHBvcnQgdHlwZSBSZXN0RW5kcG9pbnRDb25zdHJ1Y3Rvck9wdGlvbnM8TyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueT4gPVxuICBSZXN0RW5kcG9pbnRPcHRpb25zPFxuICAgIFJlc3RGZXRjaDxcbiAgICAgIHVua25vd24gZXh0ZW5kcyBPID8gYW55XG4gICAgICA6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICAgICAgU29mdFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFNvZnRQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICA6IFNvZnRQYXRoQXJnczxPWydwYXRoJ10+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PE8sIE1ldGhvZEFyZ0ZvckJvZHlJbmZlcmVuY2U8Tz4+LFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT5cbiAgICAgIDogJ2NvbnRlbnQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIENvbnRlbnRSZXR1cm5UeXBlPE9bJ2NvbnRlbnQnXSAmIENvbnRlbnRUeXBlPlxuICAgICAgOiBhbnkgLypEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4qL1xuICAgID4sXG4gICAgT1snc2NoZW1hJ11cbiAgPjtcblxuLyoqIFNpbXBsaWZpZXMgZW5kcG9pbnQgZGVmaW5pdGlvbnMgdGhhdCBmb2xsb3cgUkVTVCBwYXR0ZXJuc1xuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RFbmRwb2ludDxcbiAgTyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueSxcbj4gZXh0ZW5kcyBSZXN0SW5zdGFuY2U8XG4gIFJlc3RGZXRjaDxcbiAgICB1bmtub3duIGV4dGVuZHMgTyA/IGFueVxuICAgIDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgOiBQYXRoQXJnczxPWydwYXRoJ10+LFxuICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxPLCBNZXRob2RBcmdGb3JCb2R5SW5mZXJlbmNlPE8+PixcbiAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPlxuICAgIDogJ2NvbnRlbnQnIGV4dGVuZHMga2V5b2YgTyA/IENvbnRlbnRSZXR1cm5UeXBlPE9bJ2NvbnRlbnQnXSAmIENvbnRlbnRUeXBlPlxuICAgIDogYW55IC8qRGVub3JtYWxpemU8T1snc2NoZW1hJ10+Ki9cbiAgPixcbiAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiB1bmRlZmluZWQsXG4gICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgYm9vbGVhbiB8IHVuZGVmaW5lZD5cbiAgOiBNZXRob2RUb1NpZGU8TWV0aG9kQXJnRm9yQm9keUluZmVyZW5jZTxPPj4sXG4gICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9cbiAgOiBPICYge1xuICAgICAgbWV0aG9kOiBJbmZlclJlc3RNZXRob2RXaGVuT21pdHRlZDxPPjtcbiAgICB9XG4+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEVuZHBvaW50Q29uc3RydWN0b3Ige1xuICAvKiogU2ltcGxpZmllcyBlbmRwb2ludCBkZWZpbml0aW9ucyB0aGF0IGZvbGxvdyBSRVNUIHBhdHRlcm5zXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludFxuICAgKi9cbiAgbmV3IDxPIGV4dGVuZHMgQ29uc3RydWN0b3JSZXN0R2VuZXJpY3MgPSBhbnk+KHtcbiAgICBtZXRob2QsXG4gICAgc2lkZUVmZmVjdCxcbiAgICBuYW1lLFxuICAgIC4uLm9wdGlvbnNcbiAgfTogUmVzdEVuZHBvaW50Q29uc3RydWN0b3JPcHRpb25zPE8+ICZcbiAgICBSZWFkb25seTxPPiAmXG4gICAgLy8gbmFrZWQgTyB3aW5zIGluZmVyZW5jZSAocGxhaW4gb2JqZWN0IHR5cGUgaW5zdGVhZCBvZiBhIHJldmVyc2UtbWFwcGVkIHR5cGUpXG4gICAgTyAmXG4gICAgQ29udGVudFNjaGVtYUd1YXJkPE8+KTogUmVzdEVuZHBvaW50PE8+O1xuICByZWFkb25seSBwcm90b3R5cGU6IFJlc3RJbnN0YW5jZUJhc2U7XG59XG5cbmV4cG9ydCB0eXBlIE1ldGhvZFRvU2lkZTxNPiA9XG4gIE0gZXh0ZW5kcyBzdHJpbmcgP1xuICAgIE0gZXh0ZW5kcyAnR0VUJyA/XG4gICAgICB1bmRlZmluZWRcbiAgICA6IHRydWVcbiAgOiB1bmRlZmluZWQ7XG5cbi8qKiBSZXN0RW5kcG9pbnQgdHlwZXMgc2ltcGxpZmllZCAqL1xuZXhwb3J0IHR5cGUgUmVzdFR5cGU8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgQm9keSA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBSID0gYW55LFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5PzogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgcGFnaW5hdGlvbkZpZWxkOiBzdHJpbmcgfSxcbj4gPSBJZlR5cGVTY3JpcHRMb29zZU51bGw8XG4gIFJlc3RJbnN0YW5jZTxSZXN0RmV0Y2g8VXJsUGFyYW1zLCBCb2R5LCBSPiwgUywgTSwgTz4sXG4gIEJvZHkgZXh0ZW5kcyB7fSA/IFJlc3RUeXBlV2l0aEJvZHk8VXJsUGFyYW1zLCBTLCBNLCBCb2R5LCBSLCBPPlxuICA6IFJlc3RUeXBlTm9Cb2R5PFVybFBhcmFtcywgUywgTSwgUiwgTz5cbj47XG5cbmV4cG9ydCB0eXBlIFJlc3RUeXBlV2l0aEJvZHk8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBCb2R5ID0gYW55LFxuICBSID0gYW55IC8qRGVub3JtYWxpemU8Uz4qLyxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgYm9keTogYW55IH0sXG4+ID0gUmVzdEluc3RhbmNlPFBhcmFtRmV0Y2hXaXRoQm9keTxVcmxQYXJhbXMsIEJvZHksIFI+LCBTLCBNLCBPPjtcblxuZXhwb3J0IHR5cGUgUmVzdFR5cGVOb0JvZHk8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBSID0gYW55IC8qRGVub3JtYWxpemU8Uz4qLyxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IHVuZGVmaW5lZDtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgYm9keTogdW5kZWZpbmVkIH0sXG4+ID0gUmVzdEluc3RhbmNlPFBhcmFtRmV0Y2hOb0JvZHk8VXJsUGFyYW1zLCBSPiwgUywgTSwgTz47XG5cbi8qKiBTaW1wbGUgcGFyYW1ldGVycywgYW5kIGJvZHkgZmV0Y2ggZnVuY3Rpb25zICovXG5leHBvcnQgdHlwZSBSZXN0RmV0Y2g8XG4gIFVybFBhcmFtcyxcbiAgQm9keSA9IHt9LFxuICBSZXNvbHZlID0gYW55LFxuPiA9IElmVHlwZVNjcmlwdExvb3NlTnVsbDxcbiAgfCBQYXJhbUZldGNoTm9Cb2R5PFVybFBhcmFtcywgUmVzb2x2ZT5cbiAgfCBQYXJhbUZldGNoV2l0aEJvZHk8VXJsUGFyYW1zLCBCb2R5LCBSZXNvbHZlPixcbiAgQm9keSBleHRlbmRzIHt9ID8gUGFyYW1GZXRjaFdpdGhCb2R5PFVybFBhcmFtcywgQm9keSwgUmVzb2x2ZT5cbiAgOiBQYXJhbUZldGNoTm9Cb2R5PFVybFBhcmFtcywgUmVzb2x2ZT5cbj47XG5cbmV4cG9ydCB0eXBlIFBhcmFtRmV0Y2hXaXRoQm9keTxQLCBCID0ge30sIFIgPSBhbnk+ID1cbiAgLy8gd2UgbXVzdCBhbHdheXMgYWxsb3cgdW5kZWZpbmVkIGluIGEgdW5pb24gYW5kIGdpdmUgaXQgYSB0eXBlIHdpdGhvdXQgcGFyYW1zXG4gIFAgZXh0ZW5kcyB1bmRlZmluZWQgPyAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgYm9keTogQikgPT4gUHJvbWlzZTxSPlxuICA6IC8vIGV2ZW4gd2l0aCBsb29zZSBudWxsLCB0aGlzIHdpbGwgb25seSBiZSB0cnVlIHdoZW4gYWxsIG1lbWJlcnMgYXJlIG9wdGlvbmFsXG4gIHt9IGV4dGVuZHMgUCA/XG4gICAgLy8gdGhpcyBzYWZlbHkgaGFuZGxlcyBQYXRoQXJncyB3aXRoIG5vIG1lbWJlcnMgdGhhdCByZXN1bHRzIGluIGEgc2ltcGxlIGB1bmtub3duYCB0eXBlXG4gICAga2V5b2YgUCBleHRlbmRzIG5ldmVyID9cbiAgICAgICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+XG4gICAgOiB8ICgodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgcGFyYW1zOiBQLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+KVxuICAgICAgfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIGJvZHk6IEIpID0+IFByb21pc2U8Uj4pXG4gIDogKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCwgYm9keTogQikgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgUGFyYW1GZXRjaE5vQm9keTxQLCBSID0gYW55PiA9XG4gIC8vIHdlIG11c3QgYWx3YXlzIGFsbG93IHVuZGVmaW5lZCBpbiBhIHVuaW9uIGFuZCBnaXZlIGl0IGEgdHlwZSB3aXRob3V0IHBhcmFtc1xuICBQIGV4dGVuZHMgdW5kZWZpbmVkID8gKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UpID0+IFByb21pc2U8Uj5cbiAgOiAvLyBldmVuIHdpdGggbG9vc2UgbnVsbCwgdGhpcyB3aWxsIG9ubHkgYmUgdHJ1ZSB3aGVuIGFsbCBtZW1iZXJzIGFyZSBvcHRpb25hbFxuICB7fSBleHRlbmRzIFAgP1xuICAgIC8vIHRoaXMgc2FmZWx5IGhhbmRsZXMgUGF0aEFyZ3Mgd2l0aCBubyBtZW1iZXJzIHRoYXQgcmVzdWx0cyBpbiBhIHNpbXBsZSBgdW5rbm93bmAgdHlwZVxuICAgIGtleW9mIFAgZXh0ZW5kcyBuZXZlciA/XG4gICAgICAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSkgPT4gUHJvbWlzZTxSPlxuICAgIDogfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCkgPT4gUHJvbWlzZTxSPilcbiAgICAgIHwgKCh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlKSA9PiBQcm9taXNlPFI+KVxuICA6ICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBwYXJhbXM6IFApID0+IFByb21pc2U8Uj47XG5cbi8vIHNhbWUgYWxnb3JpdGhtLCBidXQgZm9yIEFyZ3MgKGFrYSByZWFkb25seSBhbnlbXSlcbmV4cG9ydCB0eXBlIFBhcmFtVG9BcmdzPFA+ID1cbiAgUCBleHRlbmRzIHVuZGVmaW5lZCA/IFtdXG4gIDoge30gZXh0ZW5kcyBQID9cbiAgICBrZXlvZiBQIGV4dGVuZHMgbmV2ZXIgP1xuICAgICAgW11cbiAgICA6IFtdIHwgW1BdXG4gIDogW1BdO1xuXG50eXBlIElmVHlwZVNjcmlwdExvb3NlTnVsbDxZLCBOPiA9IDEgfCB1bmRlZmluZWQgZXh0ZW5kcyAxID8gWSA6IE47XG5cbmV4cG9ydCB0eXBlIEtleW9mUmVzdEVuZHBvaW50ID0ga2V5b2YgUmVzdEluc3RhbmNlO1xuXG5leHBvcnQgdHlwZSBGcm9tRmFsbEJhY2s8SyBleHRlbmRzIGtleW9mIEUsIE8sIEU+ID1cbiAgSyBleHRlbmRzIGtleW9mIE8gPyBPW0tdIDogRVtLXTtcblxuZXhwb3J0IHR5cGUgRmV0Y2hNdXRhdGU8XG4gIEEgZXh0ZW5kcyByZWFkb25seSBhbnlbXSA9IFthbnksIHt9XSB8IFt7fV0sXG4gIFIgPSBhbnksXG4+ID0gKHRoaXM6IFJlc3RJbnN0YW5jZSwgLi4uYXJnczogQSkgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgRmV0Y2hHZXQ8QSBleHRlbmRzIHJlYWRvbmx5IGFueVtdID0gW2FueV0sIFIgPSBhbnk+ID0gKFxuICB0aGlzOiBSZXN0SW5zdGFuY2UsXG4gIC4uLmFyZ3M6IEFcbikgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdHM8TywgRD4gPSB7XG4gIFtLIGluIGtleW9mIE8gfCBrZXlvZiBEXTogSyBleHRlbmRzIGtleW9mIE8gPyBFeGNsdWRlPE9bS10sIHVuZGVmaW5lZD5cbiAgOiBEW0V4dHJhY3Q8Sywga2V5b2YgRD5dO1xufTtcblxuZXhwb3J0IHR5cGUgR2V0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyB7XG4gICAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHNjaGVtYTogU2NoZW1hO1xuICAgIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gICAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgfSA9IHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgc2NoZW1hOiBTY2hlbWE7XG4gIH0sXG4+ID0gUmVzdFR5cGVOb0JvZHk8XG4gICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgW09bJ3NlYXJjaFBhcmFtcyddXSBleHRlbmRzIFt1bmRlZmluZWRdID9cbiAgICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICA6IFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gIE9bJ3NjaGVtYSddLFxuICB1bmRlZmluZWQsXG4gIGFueSxcbiAgTyAmIHsgbWV0aG9kOiAnR0VUJyB9XG4+O1xuXG5leHBvcnQgdHlwZSBNdXRhdGVFbmRwb2ludDxcbiAgTyBleHRlbmRzIHtcbiAgICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgc2NoZW1hOiBTY2hlbWE7XG4gICAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgICByZWFkb25seSBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gICAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgICByZWFkb25seSBib2R5PzogYW55O1xuICB9ID0ge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5OiBhbnk7XG4gICAgc2NoZW1hOiBTY2hlbWE7XG4gIH0sXG4+ID0gUmVzdFR5cGVXaXRoQm9keTxcbiAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBbT1snc2VhcmNoUGFyYW1zJ11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gIDogUGF0aEFyZ3M8T1sncGF0aCddPixcbiAgT1snc2NoZW1hJ10sXG4gIHRydWUsXG4gIE9bJ2JvZHknXSxcbiAgYW55LFxuICBPICYgeyBib2R5OiBhbnk7IG1ldGhvZDogJ1BPU1QnIHwgJ1BVVCcgfCAnUEFUQ0gnIHwgJ0RFTEVURScgfVxuPjtcbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import { Schema, schema } from '@data-client/endpoint';
|
|
2
2
|
import { ExtractObject } from './extractObject.js';
|
|
3
3
|
export default function extractCollection<M extends <C extends schema.Collection>(collection: C) => any, S extends Schema | undefined>(s: S, mapper: M): ExtractCollection<S> | undefined;
|
|
4
|
+
/** Searches wrappers like Query and Lazy through their `schema` (Entity classes have a `prototype`) */
|
|
4
5
|
export type ExtractCollection<S extends Schema | undefined> = S extends ({
|
|
5
6
|
push: any;
|
|
6
7
|
unshift: any;
|
|
7
8
|
assign: any;
|
|
8
9
|
remove: any;
|
|
9
10
|
schema: Schema;
|
|
10
|
-
}) ? S : S extends schema.Object<infer T> ? ExtractObject<T> : S extends
|
|
11
|
+
}) ? S : S extends schema.Object<infer T> ? ExtractObject<T> : S extends {
|
|
12
|
+
schema: infer Q;
|
|
13
|
+
denormalize: any;
|
|
14
|
+
prototype?: undefined;
|
|
15
|
+
} ? ExtractObject<{
|
|
16
|
+
schema: Q;
|
|
17
|
+
}> : S extends Exclude<Schema, {
|
|
11
18
|
[K: string]: any;
|
|
12
19
|
}> ? never : S extends {
|
|
13
20
|
[K: string]: Schema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractCollection.d.ts","sourceRoot":"","sources":["../src/extractCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACvC,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,KAAK,GAAG,EAC7D,CAAC,SAAS,MAAM,GAAG,SAAS,EAC5B,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,SAAS,CAanD;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,IACxD,CAAC,SAAS,CACR;IACE,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,GAAG,CAAC;IACb,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CACF,GACC,CAAC,GACD,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GACnD,CAAC,SAAS,OAAO,CAAC,MAAM,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC,GAAG,KAAK,GACvD,CAAC,SAAS;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC,CAAC,GACpD,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"extractCollection.d.ts","sourceRoot":"","sources":["../src/extractCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACvC,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,KAAK,GAAG,EAC7D,CAAC,SAAS,MAAM,GAAG,SAAS,EAC5B,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,SAAS,CAanD;AAED,uGAAuG;AACvG,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,IACxD,CAAC,SAAS,CACR;IACE,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,GAAG,CAAC;IACb,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CACF,GACC,CAAC,GACD,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GACnD,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,WAAW,EAAE,GAAG,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,GACtE,aAAa,CAAC;IAAE,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC,GAC5B,CAAC,SAAS,OAAO,CAAC,MAAM,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC,GAAG,KAAK,GACvD,CAAC,SAAS;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAAG,aAAa,CAAC,CAAC,CAAC,GACpD,KAAK,CAAC"}
|
package/lib/extractCollection.js
CHANGED
|
@@ -13,4 +13,6 @@ export default function extractCollection(s, mapper) {
|
|
|
13
13
|
if (collection) return collection;
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
|
|
16
|
+
|
|
17
|
+
/** Searches wrappers like Query and Lazy through their `schema` (Entity classes have a `prototype`) */
|
|
18
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJleHRyYWN0Q29sbGVjdGlvbiIsInMiLCJtYXBwZXIiLCJ1bmRlZmluZWQiLCJBcnJheSIsImlzQXJyYXkiLCJDb2xsZWN0aW9uIiwib2JqQ29weSIsIk9iamVjdCIsImsiLCJjb2xsZWN0aW9uIl0sInNvdXJjZXMiOlsiLi4vc3JjL2V4dHJhY3RDb2xsZWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjaGVtYSwgc2NoZW1hIH0gZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcblxuaW1wb3J0IHsgRXh0cmFjdE9iamVjdCB9IGZyb20gJy4vZXh0cmFjdE9iamVjdC5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGV4dHJhY3RDb2xsZWN0aW9uPFxuICBNIGV4dGVuZHMgPEMgZXh0ZW5kcyBzY2hlbWEuQ29sbGVjdGlvbj4oY29sbGVjdGlvbjogQykgPT4gYW55LFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkLFxuPihzOiBTLCBtYXBwZXI6IE0pOiBFeHRyYWN0Q29sbGVjdGlvbjxTPiB8IHVuZGVmaW5lZCB7XG4gIGlmICh0eXBlb2YgcyAhPT0gJ29iamVjdCcgfHwgcyA9PT0gdW5kZWZpbmVkIHx8IEFycmF5LmlzQXJyYXkocykpIHJldHVybjtcbiAgaWYgKHMgaW5zdGFuY2VvZiBzY2hlbWEuQ29sbGVjdGlvbikge1xuICAgIHJldHVybiBtYXBwZXIocyBhcyBhbnkpO1xuICB9XG4gIGNvbnN0IG9iakNvcHk6IFJlY29yZDxzdHJpbmcsIFNjaGVtYT4gPSB7XG4gICAgLi4uKHMgaW5zdGFuY2VvZiBzY2hlbWEuT2JqZWN0ID8gKHMgYXMgYW55KS5zY2hlbWEgOiBzKSxcbiAgfTtcbiAgZm9yIChjb25zdCBrIGluIG9iakNvcHkpIHtcbiAgICBpZiAoIW9iakNvcHlba10pIGNvbnRpbnVlO1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBleHRyYWN0Q29sbGVjdGlvbihvYmpDb3B5W2tdLCBtYXBwZXIpO1xuICAgIGlmIChjb2xsZWN0aW9uKSByZXR1cm4gY29sbGVjdGlvbjtcbiAgfVxufVxuXG4vKiogU2VhcmNoZXMgd3JhcHBlcnMgbGlrZSBRdWVyeSBhbmQgTGF6eSB0aHJvdWdoIHRoZWlyIGBzY2hlbWFgIChFbnRpdHkgY2xhc3NlcyBoYXZlIGEgYHByb3RvdHlwZWApICovXG5leHBvcnQgdHlwZSBFeHRyYWN0Q29sbGVjdGlvbjxTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkPiA9XG4gIFMgZXh0ZW5kcyAoXG4gICAge1xuICAgICAgcHVzaDogYW55O1xuICAgICAgdW5zaGlmdDogYW55O1xuICAgICAgYXNzaWduOiBhbnk7XG4gICAgICByZW1vdmU6IGFueTtcbiAgICAgIHNjaGVtYTogU2NoZW1hO1xuICAgIH1cbiAgKSA/XG4gICAgU1xuICA6IFMgZXh0ZW5kcyBzY2hlbWEuT2JqZWN0PGluZmVyIFQ+ID8gRXh0cmFjdE9iamVjdDxUPlxuICA6IFMgZXh0ZW5kcyB7IHNjaGVtYTogaW5mZXIgUTsgZGVub3JtYWxpemU6IGFueTsgcHJvdG90eXBlPzogdW5kZWZpbmVkIH0gP1xuICAgIEV4dHJhY3RPYmplY3Q8eyBzY2hlbWE6IFEgfT5cbiAgOiBTIGV4dGVuZHMgRXhjbHVkZTxTY2hlbWEsIHsgW0s6IHN0cmluZ106IGFueSB9PiA/IG5ldmVyXG4gIDogUyBleHRlbmRzIHsgW0s6IHN0cmluZ106IFNjaGVtYSB9ID8gRXh0cmFjdE9iamVjdDxTPlxuICA6IG5ldmVyO1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFpQkEsTUFBTSxRQUFRLHVCQUF1QjtBQUl0RCxlQUFlLFNBQVNDLGlCQUFpQkEsQ0FHdkNDLENBQUksRUFBRUMsTUFBUyxFQUFvQztFQUNuRCxJQUFJLE9BQU9ELENBQUMsS0FBSyxRQUFRLElBQUlBLENBQUMsS0FBS0UsU0FBUyxJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0osQ0FBQyxDQUFDLEVBQUU7RUFDbEUsSUFBSUEsQ0FBQyxZQUFZRixNQUFNLENBQUNPLFVBQVUsRUFBRTtJQUNsQyxPQUFPSixNQUFNLENBQUNELENBQVEsQ0FBQztFQUN6QjtFQUNBLE1BQU1NLE9BQStCLEdBQUc7SUFDdEMsSUFBSU4sQ0FBQyxZQUFZRixNQUFNLENBQUNTLE1BQU0sR0FBSVAsQ0FBQyxDQUFTRixNQUFNLEdBQUdFLENBQUM7RUFDeEQsQ0FBQztFQUNELEtBQUssTUFBTVEsQ0FBQyxJQUFJRixPQUFPLEVBQUU7SUFDdkIsSUFBSSxDQUFDQSxPQUFPLENBQUNFLENBQUMsQ0FBQyxFQUFFO0lBQ2pCLE1BQU1DLFVBQVUsR0FBR1YsaUJBQWlCLENBQUNPLE9BQU8sQ0FBQ0UsQ0FBQyxDQUFDLEVBQUVQLE1BQU0sQ0FBQztJQUN4RCxJQUFJUSxVQUFVLEVBQUUsT0FBT0EsVUFBVTtFQUNuQztBQUNGOztBQUVBIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paramsToString.d.ts","sourceRoot":"","sources":["../src/paramsToString.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"paramsToString.d.ts","sourceRoot":"","sources":["../src/paramsToString.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,YAAY,CAAC,EACX,MAAM,GAAG,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,EAAE,GAAG,SAAS,UAK7E"}
|
package/lib/paramsToString.js
CHANGED
|
@@ -3,4 +3,4 @@ export default function paramsToString(searchParams) {
|
|
|
3
3
|
params.sort();
|
|
4
4
|
return params.toString();
|
|
5
5
|
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJhbXNUb1N0cmluZyIsInNlYXJjaFBhcmFtcyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsInNvcnQiLCJ0b1N0cmluZyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJhbXNUb1N0cmluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwYXJhbXNUb1N0cmluZyhcbiAgc2VhcmNoUGFyYW1zPzpcbiAgICBzdHJpbmcgfCBVUkxTZWFyY2hQYXJhbXMgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgc3RyaW5nW11bXSB8IHVuZGVmaW5lZCxcbikge1xuICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHNlYXJjaFBhcmFtcyk7XG4gIHBhcmFtcy5zb3J0KCk7XG4gIHJldHVybiBwYXJhbXMudG9TdHJpbmcoKTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZSxTQUFTQSxjQUFjQSxDQUNwQ0MsWUFDNEUsRUFDNUU7RUFDQSxNQUFNQyxNQUFNLEdBQUcsSUFBSUMsZUFBZSxDQUFDRixZQUFZLENBQUM7RUFDaERDLE1BQU0sQ0FBQ0UsSUFBSSxDQUFDLENBQUM7RUFDYixPQUFPRixNQUFNLENBQUNHLFFBQVEsQ0FBQyxDQUFDO0FBQzFCIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paramsToString.native.d.ts","sourceRoot":"","sources":["../src/paramsToString.native.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"paramsToString.native.d.ts","sourceRoot":"","sources":["../src/paramsToString.native.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,YAAY,CAAC,EACX,MAAM,GAAG,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,EAAE,GAAG,SAAS,UAQ7E"}
|
|
@@ -6,4 +6,4 @@ export default function paramsToString(searchParams) {
|
|
|
6
6
|
} catch {}
|
|
7
7
|
return params.toString();
|
|
8
8
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJhbXNUb1N0cmluZyIsInNlYXJjaFBhcmFtcyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsInNvcnQiLCJ0b1N0cmluZyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJhbXNUb1N0cmluZy5uYXRpdmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcGFyYW1zVG9TdHJpbmcoXG4gIHNlYXJjaFBhcmFtcz86XG4gICAgc3RyaW5nIHwgVVJMU2VhcmNoUGFyYW1zIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHN0cmluZ1tdW10gfCB1bmRlZmluZWQsXG4pIHtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhzZWFyY2hQYXJhbXMgYXMgYW55KTtcbiAgdHJ5IHtcbiAgICBwYXJhbXMuc29ydCgpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eVxuICB9IGNhdGNoIHt9XG4gIHJldHVybiBwYXJhbXMudG9TdHJpbmcoKTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZSxTQUFTQSxjQUFjQSxDQUNwQ0MsWUFDNEUsRUFDNUU7RUFDQSxNQUFNQyxNQUFNLEdBQUcsSUFBSUMsZUFBZSxDQUFDRixZQUFtQixDQUFDO0VBQ3ZELElBQUk7SUFDRkMsTUFBTSxDQUFDRSxJQUFJLENBQUMsQ0FBQztJQUNiO0VBQ0YsQ0FBQyxDQUFDLE1BQU0sQ0FBQztFQUNULE9BQU9GLE1BQU0sQ0FBQ0csUUFBUSxDQUFDLENBQUM7QUFDMUIiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/lib/pathTypes.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
type CleanKey<S extends string> = S extends `"${infer K}"` ? K : S;
|
|
2
|
-
type KeyName<K extends string> = CleanKey<K extends `*${infer N}}` ? N : K extends `*${infer N}` ? N : K extends `${infer N}}` ? N : K>;
|
|
1
|
+
type CleanKey<S extends string> = S extends `"${string}"` ? S extends `"${infer K}"` ? K : S : S;
|
|
2
|
+
type KeyName<K extends string> = K extends `*${string}` | `${string}}` ? CleanKey<K extends `*${infer N}}` ? N : K extends `*${infer N}` ? N : K extends `${infer N}}` ? N : K> : CleanKey<K>;
|
|
3
3
|
type KeyVal<K extends string> = K extends `*${string}` ? string[] : string | number;
|
|
4
4
|
/** Parameters for a given path */
|
|
5
5
|
export type PathArgs<S extends string> = unknown extends S ? any : PathKeys<S> extends never ? unknown : KeysToArgs<PathKeys<S>>;
|
|
@@ -7,13 +7,39 @@ export type PathArgs<S extends string> = unknown extends S ? any : PathKeys<S> e
|
|
|
7
7
|
* preventing `(params, body) | (body)` union overloads in ParamFetchWithBody. */
|
|
8
8
|
export type SoftPathArgs<P extends string> = unknown extends P ? any : string extends P ? unknown : PathArgs<P>;
|
|
9
9
|
/** Computes the union of keys for a path string */
|
|
10
|
-
export type PathKeys<S extends string> = string extends S ? string : S extends `${infer A}\\${':' | '*' | '}'}${infer B}` ? PathKeys<A> | PathKeys<B> :
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
export type PathKeys<S extends string> = string extends S ? string : S extends `${string}\\${string}` ? S extends `${infer A}\\${':' | '*' | '}'}${infer B}` ? PathKeys<A> | PathKeys<B> : ColonSplits<S> | StarSplits<S> : ColonSplits<S> | StarSplits<S>;
|
|
11
|
+
/** Characters that end a :param or *wildcard token */
|
|
12
|
+
type PathDelimiter = '/' | '\\' | '%' | '&' | '*' | ':' | '{' | ';' | ',' | '!' | '@';
|
|
13
|
+
/** Token after every ':' in S */
|
|
14
|
+
type ColonSplits<S extends string> = S extends `${string}:${infer K}` ? PathToken<K> | ColonSplits<K> : never;
|
|
15
|
+
/** `*`-prefixed token after every '*' in S */
|
|
16
|
+
type StarSplits<S extends string> = S extends `${string}*${infer K}` ? `*${PathToken<K>}` | StarSplits<K> : never;
|
|
17
|
+
/** Prefix of K up to (excluding) its first PathDelimiter.
|
|
18
|
+
*
|
|
19
|
+
* Fast path: no delimiter at all, or the first '/' ends a delimiter-free token.
|
|
20
|
+
* The delimiter-union templates without `infer` are matched without instantiation. */
|
|
21
|
+
type PathToken<K extends string> = K extends `${string}${PathDelimiter}${string}` ? K extends `${infer H}/${string}` ? H extends `${string}${PathDelimiter}${string}` ? PathTokenSlow<H> : H : PathTokenSlow<K> : K;
|
|
22
|
+
/** Cuts at the first occurrence of each delimiter (union); recursing on each
|
|
23
|
+
* candidate converges on the shortest, delimiter-free prefix. */
|
|
24
|
+
type PathTokenSlow<K extends string> = K extends `${infer H}${PathDelimiter}${string}` ? PathToken<H> : K;
|
|
25
|
+
export type KeysToArgs<Key extends string> = OptionalArgs<Key> & (RequiredPathKeys<Key> extends never ? unknown : RequiredArgs<Key>);
|
|
26
|
+
/** Wide keys (`string`, template patterns) keep the original key-remapping
|
|
27
|
+
* form so index signatures (and their `keyof`) stay exactly the same. */
|
|
28
|
+
type HasWideKey<Key extends string> = true extends (Key extends string ? {} extends {
|
|
29
|
+
[P in Key]: 1;
|
|
30
|
+
} ? true : never : never) ? true : false;
|
|
31
|
+
type OptionalArgs<Key extends string> = HasWideKey<Key> extends true ? {
|
|
13
32
|
[K in Key as K extends `${string}}` ? KeyName<K> : never]?: KeyVal<K>;
|
|
14
|
-
}
|
|
33
|
+
} : {
|
|
34
|
+
[N in KeyName<OptionalPathKeys<Key>>]?: (N extends KeyName<Extract<OptionalPathKeys<Key>, `*${string}`>> ? string[] : never) | (N extends KeyName<Exclude<OptionalPathKeys<Key>, `*${string}`>> ? string | number : never);
|
|
35
|
+
};
|
|
36
|
+
type RequiredArgs<Key extends string> = HasWideKey<Key> extends true ? {
|
|
15
37
|
[K in Key as K extends `${string}}` ? never : KeyName<K>]: KeyVal<K>;
|
|
16
|
-
}
|
|
38
|
+
} : {
|
|
39
|
+
[N in KeyName<RequiredPathKeys<Key>>]: (N extends KeyName<Extract<RequiredPathKeys<Key>, `*${string}`>> ? string[] : never) | (N extends KeyName<Exclude<RequiredPathKeys<Key>, `*${string}`>> ? string | number : never);
|
|
40
|
+
};
|
|
41
|
+
type OptionalPathKeys<Key extends string> = Extract<Key, `${string}}`>;
|
|
42
|
+
type RequiredPathKeys<Key extends string> = Exclude<Key, `${string}}`>;
|
|
17
43
|
export type PathArgsAndSearch<S extends string> = unknown extends S ? any : Exclude<PathKeys<S>, `${string}}`> extends never ? Record<string, number | string | boolean> | undefined : {
|
|
18
44
|
[K in PathKeys<S> as K extends `${string}}` ? never : KeyName<K>]: KeyVal<K>;
|
|
19
45
|
} & Record<string, number | string | string[]>;
|
package/lib/pathTypes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pathTypes.d.ts","sourceRoot":"","sources":["../src/pathTypes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pathTypes.d.ts","sourceRoot":"","sources":["../src/pathTypes.ts"],"names":[],"mappings":"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"}
|
package/lib/pathTypes.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3BhdGhUeXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGUgbm9uLWBpbmZlcmAgcHJlLWNoZWNrcyBhcmUgbWF0Y2hlZCB3aXRob3V0IGluc3RhbnRpYXRpbmcgYW55IHR5cGVzLFxuLy8gc28gcGxhaW4ga2V5cyAodGhlIGNvbW1vbiBjYXNlKSBza2lwIHRoZSBpbmZlcnJpbmcgdGVtcGxhdGVzIGVudGlyZWx5LlxudHlwZSBDbGVhbktleTxTIGV4dGVuZHMgc3RyaW5nPiA9XG4gIFMgZXh0ZW5kcyBgXCIke3N0cmluZ31cImAgP1xuICAgIFMgZXh0ZW5kcyBgXCIke2luZmVyIEt9XCJgID9cbiAgICAgIEtcbiAgICA6IFNcbiAgOiBTO1xuXG50eXBlIEtleU5hbWU8SyBleHRlbmRzIHN0cmluZz4gPVxuICBLIGV4dGVuZHMgYCoke3N0cmluZ31gIHwgYCR7c3RyaW5nfX1gID9cbiAgICBDbGVhbktleTxcbiAgICAgIEsgZXh0ZW5kcyBgKiR7aW5mZXIgTn19YCA/IE5cbiAgICAgIDogSyBleHRlbmRzIGAqJHtpbmZlciBOfWAgPyBOXG4gICAgICA6IEsgZXh0ZW5kcyBgJHtpbmZlciBOfX1gID8gTlxuICAgICAgOiBLXG4gICAgPlxuICA6IENsZWFuS2V5PEs+O1xuXG50eXBlIEtleVZhbDxLIGV4dGVuZHMgc3RyaW5nPiA9XG4gIEsgZXh0ZW5kcyBgKiR7c3RyaW5nfWAgPyBzdHJpbmdbXSA6IHN0cmluZyB8IG51bWJlcjtcblxuLyoqIFBhcmFtZXRlcnMgZm9yIGEgZ2l2ZW4gcGF0aCAqL1xuZXhwb3J0IHR5cGUgUGF0aEFyZ3M8UyBleHRlbmRzIHN0cmluZz4gPVxuICB1bmtub3duIGV4dGVuZHMgUyA/IGFueVxuICA6IFBhdGhLZXlzPFM+IGV4dGVuZHMgbmV2ZXIgP1xuICAgIC8vIHVua25vd24gaXMgaWRlbnRpdHkgZm9yIGludGVyc2VjdGlvbiAoJyYnKVxuICAgIHVua25vd25cbiAgOiBLZXlzVG9BcmdzPFBhdGhLZXlzPFM+PjtcblxuLyoqIExpa2Uge0BsaW5rIFBhdGhBcmdzfSBidXQgd2lkZW5lZCBgcGF0aDogc3RyaW5nYCBjb2xsYXBzZXMgdG8gYHVua25vd25gLFxuICogIHByZXZlbnRpbmcgYChwYXJhbXMsIGJvZHkpIHwgKGJvZHkpYCB1bmlvbiBvdmVybG9hZHMgaW4gUGFyYW1GZXRjaFdpdGhCb2R5LiAqL1xuZXhwb3J0IHR5cGUgU29mdFBhdGhBcmdzPFAgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgdW5rbm93biBleHRlbmRzIFAgPyBhbnlcbiAgOiBzdHJpbmcgZXh0ZW5kcyBQID8gdW5rbm93blxuICA6IFBhdGhBcmdzPFA+O1xuXG4vKiogQ29tcHV0ZXMgdGhlIHVuaW9uIG9mIGtleXMgZm9yIGEgcGF0aCBzdHJpbmcgKi9cbmV4cG9ydCB0eXBlIFBhdGhLZXlzPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgc3RyaW5nIGV4dGVuZHMgUyA/IHN0cmluZ1xuICA6IC8vIGNoZWFwIChub24taW5mZXJyaW5nKSBwcmUtY2hlY2sgYmVmb3JlIHRoZSAzLXdheSBlc2NhcGUgc3BsaXRcbiAgUyBleHRlbmRzIGAke3N0cmluZ31cXFxcJHtzdHJpbmd9YCA/XG4gICAgUyBleHRlbmRzIGAke2luZmVyIEF9XFxcXCR7JzonIHwgJyonIHwgJ30nfSR7aW5mZXIgQn1gID9cbiAgICAgIFBhdGhLZXlzPEE+IHwgUGF0aEtleXM8Qj5cbiAgICA6IENvbG9uU3BsaXRzPFM+IHwgU3RhclNwbGl0czxTPlxuICA6IENvbG9uU3BsaXRzPFM+IHwgU3RhclNwbGl0czxTPjtcblxuLyoqIENoYXJhY3RlcnMgdGhhdCBlbmQgYSA6cGFyYW0gb3IgKndpbGRjYXJkIHRva2VuICovXG50eXBlIFBhdGhEZWxpbWl0ZXIgPVxuICAnLycgfCAnXFxcXCcgfCAnJScgfCAnJicgfCAnKicgfCAnOicgfCAneycgfCAnOycgfCAnLCcgfCAnIScgfCAnQCc7XG5cbi8qKiBUb2tlbiBhZnRlciBldmVyeSAnOicgaW4gUyAqL1xudHlwZSBDb2xvblNwbGl0czxTIGV4dGVuZHMgc3RyaW5nPiA9XG4gIFMgZXh0ZW5kcyBgJHtzdHJpbmd9OiR7aW5mZXIgS31gID8gUGF0aFRva2VuPEs+IHwgQ29sb25TcGxpdHM8Sz4gOiBuZXZlcjtcblxuLyoqIGAqYC1wcmVmaXhlZCB0b2tlbiBhZnRlciBldmVyeSAnKicgaW4gUyAqL1xudHlwZSBTdGFyU3BsaXRzPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgUyBleHRlbmRzIGAke3N0cmluZ30qJHtpbmZlciBLfWAgPyBgKiR7UGF0aFRva2VuPEs+fWAgfCBTdGFyU3BsaXRzPEs+IDogbmV2ZXI7XG5cbi8qKiBQcmVmaXggb2YgSyB1cCB0byAoZXhjbHVkaW5nKSBpdHMgZmlyc3QgUGF0aERlbGltaXRlci5cbiAqXG4gKiBGYXN0IHBhdGg6IG5vIGRlbGltaXRlciBhdCBhbGwsIG9yIHRoZSBmaXJzdCAnLycgZW5kcyBhIGRlbGltaXRlci1mcmVlIHRva2VuLlxuICogVGhlIGRlbGltaXRlci11bmlvbiB0ZW1wbGF0ZXMgd2l0aG91dCBgaW5mZXJgIGFyZSBtYXRjaGVkIHdpdGhvdXQgaW5zdGFudGlhdGlvbi4gKi9cbnR5cGUgUGF0aFRva2VuPEsgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgSyBleHRlbmRzIGAke3N0cmluZ30ke1BhdGhEZWxpbWl0ZXJ9JHtzdHJpbmd9YCA/XG4gICAgSyBleHRlbmRzIGAke2luZmVyIEh9LyR7c3RyaW5nfWAgP1xuICAgICAgSCBleHRlbmRzIGAke3N0cmluZ30ke1BhdGhEZWxpbWl0ZXJ9JHtzdHJpbmd9YCA/XG4gICAgICAgIFBhdGhUb2tlblNsb3c8SD5cbiAgICAgIDogSFxuICAgIDogUGF0aFRva2VuU2xvdzxLPlxuICA6IEs7XG5cbi8qKiBDdXRzIGF0IHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGVhY2ggZGVsaW1pdGVyICh1bmlvbik7IHJlY3Vyc2luZyBvbiBlYWNoXG4gKiBjYW5kaWRhdGUgY29udmVyZ2VzIG9uIHRoZSBzaG9ydGVzdCwgZGVsaW1pdGVyLWZyZWUgcHJlZml4LiAqL1xudHlwZSBQYXRoVG9rZW5TbG93PEsgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgSyBleHRlbmRzIGAke2luZmVyIEh9JHtQYXRoRGVsaW1pdGVyfSR7c3RyaW5nfWAgPyBQYXRoVG9rZW48SD4gOiBLO1xuXG5leHBvcnQgdHlwZSBLZXlzVG9BcmdzPEtleSBleHRlbmRzIHN0cmluZz4gPSBPcHRpb25hbEFyZ3M8S2V5PiAmXG4gIChSZXF1aXJlZFBhdGhLZXlzPEtleT4gZXh0ZW5kcyBuZXZlciA/IHVua25vd24gOiBSZXF1aXJlZEFyZ3M8S2V5Pik7XG5cbi8qKiBXaWRlIGtleXMgKGBzdHJpbmdgLCB0ZW1wbGF0ZSBwYXR0ZXJucykga2VlcCB0aGUgb3JpZ2luYWwga2V5LXJlbWFwcGluZ1xuICogZm9ybSBzbyBpbmRleCBzaWduYXR1cmVzIChhbmQgdGhlaXIgYGtleW9mYCkgc3RheSBleGFjdGx5IHRoZSBzYW1lLiAqL1xudHlwZSBIYXNXaWRlS2V5PEtleSBleHRlbmRzIHN0cmluZz4gPVxuICB0cnVlIGV4dGVuZHMgKFxuICAgIEtleSBleHRlbmRzIHN0cmluZyA/XG4gICAgICB7fSBleHRlbmRzIHsgW1AgaW4gS2V5XTogMSB9ID9cbiAgICAgICAgdHJ1ZVxuICAgICAgOiBuZXZlclxuICAgIDogbmV2ZXJcbiAgKSA/XG4gICAgdHJ1ZVxuICA6IGZhbHNlO1xuXG4vLyBMaXRlcmFsIGtleXM6IG1hcHBlZCBvdmVyIHRoZSBjb21wdXRlZCBuYW1lcyB3aXRob3V0IGFuIGBhc2AgY2xhdXNlLlxuLy8gYGFzYCBjbGF1c2VzIGdldCByZS1pbnN0YW50aWF0ZWQgZXZlcnkgdGltZSBUeXBlU2NyaXB0IGFza3Mgd2hldGhlciB0aGVcbi8vIG1hcHBlZCB0eXBlIGlzIGdlbmVyaWMgKG9uIGV2ZXJ5IHJlbGF0aW9uIGNoZWNrIG9mIGhvb2svZmV0Y2ggcGFyYW1zKS5cbi8vIEVhY2ggdmFsdWUgaXMgdGhlIEtleVZhbCBvZiB0aGUga2V5KHMpIG5hbWVkIE4gKGlubGluZWQgc28gZXJyb3JzIHNob3cgdGhlXG4vLyByZXNvbHZlZCB0eXBlIHJhdGhlciB0aGFuIGFuIGFsaWFzKS5cbnR5cGUgT3B0aW9uYWxBcmdzPEtleSBleHRlbmRzIHN0cmluZz4gPVxuICBIYXNXaWRlS2V5PEtleT4gZXh0ZW5kcyB0cnVlID9cbiAgICB7IFtLIGluIEtleSBhcyBLIGV4dGVuZHMgYCR7c3RyaW5nfX1gID8gS2V5TmFtZTxLPiA6IG5ldmVyXT86IEtleVZhbDxLPiB9XG4gIDoge1xuICAgICAgW04gaW4gS2V5TmFtZTxPcHRpb25hbFBhdGhLZXlzPEtleT4+XT86XG4gICAgICAgIHwgKE4gZXh0ZW5kcyBLZXlOYW1lPEV4dHJhY3Q8T3B0aW9uYWxQYXRoS2V5czxLZXk+LCBgKiR7c3RyaW5nfWA+PiA/XG4gICAgICAgICAgICBzdHJpbmdbXVxuICAgICAgICAgIDogbmV2ZXIpXG4gICAgICAgIHwgKE4gZXh0ZW5kcyBLZXlOYW1lPEV4Y2x1ZGU8T3B0aW9uYWxQYXRoS2V5czxLZXk+LCBgKiR7c3RyaW5nfWA+PiA/XG4gICAgICAgICAgICBzdHJpbmcgfCBudW1iZXJcbiAgICAgICAgICA6IG5ldmVyKTtcbiAgICB9O1xuXG50eXBlIFJlcXVpcmVkQXJnczxLZXkgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgSGFzV2lkZUtleTxLZXk+IGV4dGVuZHMgdHJ1ZSA/XG4gICAgeyBbSyBpbiBLZXkgYXMgSyBleHRlbmRzIGAke3N0cmluZ319YCA/IG5ldmVyIDogS2V5TmFtZTxLPl06IEtleVZhbDxLPiB9XG4gIDoge1xuICAgICAgW04gaW4gS2V5TmFtZTxSZXF1aXJlZFBhdGhLZXlzPEtleT4+XTpcbiAgICAgICAgfCAoTiBleHRlbmRzIEtleU5hbWU8RXh0cmFjdDxSZXF1aXJlZFBhdGhLZXlzPEtleT4sIGAqJHtzdHJpbmd9YD4+ID9cbiAgICAgICAgICAgIHN0cmluZ1tdXG4gICAgICAgICAgOiBuZXZlcilcbiAgICAgICAgfCAoTiBleHRlbmRzIEtleU5hbWU8RXhjbHVkZTxSZXF1aXJlZFBhdGhLZXlzPEtleT4sIGAqJHtzdHJpbmd9YD4+ID9cbiAgICAgICAgICAgIHN0cmluZyB8IG51bWJlclxuICAgICAgICAgIDogbmV2ZXIpO1xuICAgIH07XG5cbnR5cGUgT3B0aW9uYWxQYXRoS2V5czxLZXkgZXh0ZW5kcyBzdHJpbmc+ID0gRXh0cmFjdDxLZXksIGAke3N0cmluZ319YD47XG50eXBlIFJlcXVpcmVkUGF0aEtleXM8S2V5IGV4dGVuZHMgc3RyaW5nPiA9IEV4Y2x1ZGU8S2V5LCBgJHtzdHJpbmd9fWA+O1xuXG5leHBvcnQgdHlwZSBQYXRoQXJnc0FuZFNlYXJjaDxTIGV4dGVuZHMgc3RyaW5nPiA9XG4gIHVua25vd24gZXh0ZW5kcyBTID8gYW55XG4gIDogRXhjbHVkZTxQYXRoS2V5czxTPiwgYCR7c3RyaW5nfX1gPiBleHRlbmRzIG5ldmVyID9cbiAgICBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuPiB8IHVuZGVmaW5lZFxuICA6IHtcbiAgICAgIFtcbiAgICAgICAgSyBpbiBQYXRoS2V5czxTPiBhcyBLIGV4dGVuZHMgYCR7c3RyaW5nfX1gID8gbmV2ZXIgOiBLZXlOYW1lPEs+XG4gICAgICBdOiBLZXlWYWw8Sz47XG4gICAgfSAmIFJlY29yZDxzdHJpbmcsIG51bWJlciB8IHN0cmluZyB8IHN0cmluZ1tdPjtcblxuLyoqIFJlbW92ZXMgdGhlIGxhc3QgOnBhcmFtIG9yICp3aWxkY2FyZCB0b2tlbiAqL1xuZXhwb3J0IHR5cGUgU2hvcnRlblBhdGg8UyBleHRlbmRzIHN0cmluZz4gPVxuICBzdHJpbmcgZXh0ZW5kcyBTID8gc3RyaW5nXG4gIDogUyBleHRlbmRzIGAke2luZmVyIEJ9OiR7aW5mZXIgUn1gID8gVHJpbVRva2VuPGAke0J9OiR7U2hvcnRlblBhdGg8Uj59YD5cbiAgOiBTIGV4dGVuZHMgYCR7aW5mZXIgQn0qJHtpbmZlciBSfWAgPyBUcmltVG9rZW48YCR7Qn0qJHtTaG9ydGVuUGF0aDxSPn1gPlxuICA6ICcnO1xuXG50eXBlIFRyaW1Ub2tlbjxTIGV4dGVuZHMgc3RyaW5nPiA9XG4gIHN0cmluZyBleHRlbmRzIFMgPyBzdHJpbmdcbiAgOiBTIGV4dGVuZHMgYCR7aW5mZXIgUn06YCA/IFJcbiAgOiBTIGV4dGVuZHMgYCR7aW5mZXIgUn0qYCA/IFJcbiAgOiBTO1xuXG5leHBvcnQgdHlwZSBSZXNvdXJjZVBhdGggPSBzdHJpbmc7IC8vIGAke3N0cmluZ306JHtzdHJpbmd9YDsgVE9ETzogTWF5YmUgZG8gdGhpcyBpbiB0aGUgZnV0dXJlPyBTZWVtcyB0byBoYXJkIHRvIHVuZGVyc3RhbmQgZm9yIG5vd1xuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
|
package/lib/resource.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ import { ResourceGenerics, ResourceOptions, Resource } from './resourceTypes.js'
|
|
|
3
3
|
*
|
|
4
4
|
* @see https://dataclient.io/rest/api/resource
|
|
5
5
|
*/
|
|
6
|
-
export default function resource<O extends ResourceGenerics>({ path, schema, Endpoint, Collection, nonFilterArgumentKeys, optimistic, paginationField, ...extraOptions }: Readonly<O> & ResourceOptions): Resource<O>;
|
|
6
|
+
export default function resource<O extends ResourceGenerics>({ path, schema, Endpoint, Collection, nonFilterArgumentKeys, optimistic, paginationField, ...extraOptions }: Readonly<O> & O & ResourceOptions): Resource<O>;
|
|
7
7
|
//# sourceMappingURL=resource.d.ts.map
|
package/lib/resource.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,QAAQ,EAET,MAAM,oBAAoB,CAAC;AAW5B;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,SAAS,gBAAgB,EAAE,EAC3D,IAAI,EACJ,MAAM,EACN,QAAuB,EACvB,UAA2B,EAC3B,qBAAqB,EACrB,UAAU,EACV,eAAe,EACf,GAAG,YAAY,EAChB,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,QAAQ,EAET,MAAM,oBAAoB,CAAC;AAW5B;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,SAAS,gBAAgB,EAAE,EAC3D,IAAI,EACJ,MAAM,EACN,QAAuB,EACvB,UAA2B,EAC3B,qBAAqB,EACrB,UAAU,EACV,eAAe,EACf,GAAG,YAAY,EAChB,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,CA6JjD"}
|
package/lib/resource.js
CHANGED
|
@@ -44,14 +44,20 @@ This warning will not show in production.`);
|
|
|
44
44
|
function extendMember(extended, key, options) {
|
|
45
45
|
extended[key] = extended[key].extend(options);
|
|
46
46
|
}
|
|
47
|
+
|
|
48
|
+
// Loosely typed: the public signature infers O from the naked `O` position,
|
|
49
|
+
// so spreading the generic rest into `new Endpoint()` would otherwise leave
|
|
50
|
+
// ContentSchemaGuard<O> as an unresolvable (deferred) conditional.
|
|
51
|
+
// Retype this if a future TypeScript resolves that conditional here.
|
|
52
|
+
const extraBaseOptions = extraOptions;
|
|
47
53
|
const extraMutateOptions = {
|
|
48
|
-
...
|
|
54
|
+
...extraBaseOptions
|
|
49
55
|
};
|
|
50
56
|
const extraPartialOptions = {
|
|
51
|
-
...
|
|
57
|
+
...extraBaseOptions
|
|
52
58
|
};
|
|
53
59
|
const get = new Endpoint({
|
|
54
|
-
...
|
|
60
|
+
...extraBaseOptions,
|
|
55
61
|
path,
|
|
56
62
|
schema,
|
|
57
63
|
name: getName('get')
|
|
@@ -166,4 +172,4 @@ function optimisticDelete(snap, params) {
|
|
|
166
172
|
function ensurePojo(body) {
|
|
167
173
|
return body instanceof FormData ? Object.fromEntries(body.entries()) : body;
|
|
168
174
|
}
|
|
169
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJSZXN0RW5kcG9pbnQiLCJzaG9ydGVuUGF0aCIsIkludmFsaWRhdGUiLCJDb2xsZWN0aW9uIiwiQmFzZUNvbGxlY3Rpb24iLCJyZXNvdXJjZSIsInBhdGgiLCJFbmRwb2ludCIsIm5vbkZpbHRlckFyZ3VtZW50S2V5cyIsIm9wdGltaXN0aWMiLCJwYWdpbmF0aW9uRmllbGQiLCJleHRyYU9wdGlvbnMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJpc1Byb3RvdHlwZU9mIiwiY2FsbCIsImNvbnNvbGUiLCJ3YXJuIiwic2hvcnRlbmVkUGF0aCIsImdldE5hbWUiLCJuYW1lIiwiZXh0ZW5kTWVtYmVyIiwiZXh0ZW5kZWQiLCJrZXkiLCJvcHRpb25zIiwiZXh0ZW5kIiwiZXh0cmFNdXRhdGVPcHRpb25zIiwiZXh0cmFQYXJ0aWFsT3B0aW9ucyIsImdldCIsImdldE9wdGltaXN0aWNSZXNwb25zZSIsIm9wdGltaXN0aWNVcGRhdGUiLCJvcHRpbWlzdGljUGFydGlhbCIsImdldExpc3QiLCJtb3ZlUGF0aCIsInVuZGVmaW5lZCIsInJldCIsImNyZWF0ZSIsInB1c2giLCJ1cGRhdGUiLCJtZXRob2QiLCJwYXJ0aWFsVXBkYXRlIiwiZGVsZXRlIiwiX2hvaXN0YWJsZSIsInJlcyIsInBhcmFtcyIsImtleXMiLCJsZW5ndGgiLCJvcHRpbWlzdGljRGVsZXRlIiwiYXJncyIsIm92ZXJyaWRlcyIsInNuYXAiLCJib2R5IiwiZW5zdXJlUG9qbyIsImRhdGEiLCJhYm9ydCIsIkZvcm1EYXRhIiwiZnJvbUVudHJpZXMiLCJlbnRyaWVzIl0sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc291cmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNjaGVtYSB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5pbXBvcnQgdHlwZSB7IFNuYXBzaG90SW50ZXJmYWNlLCBRdWVyeWFibGUgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQge1xuICBSZXNvdXJjZUdlbmVyaWNzLFxuICBSZXNvdXJjZU9wdGlvbnMsXG4gIFJlc291cmNlLFxuICBSZXNvdXJjZUludGVyZmFjZSxcbn0gZnJvbSAnLi9yZXNvdXJjZVR5cGVzLmpzJztcbmltcG9ydCBSZXN0RW5kcG9pbnQsIHtcbiAgR2V0RW5kcG9pbnQsXG4gIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIFJlc3RFbmRwb2ludE9wdGlvbnMsXG4gIFJlc3RJbnN0YW5jZUJhc2UsXG59IGZyb20gJy4vUmVzdEVuZHBvaW50LmpzJztcbmltcG9ydCB7IHNob3J0ZW5QYXRoIH0gZnJvbSAnLi9SZXN0SGVscGVycy5qcyc7XG5cbmNvbnN0IHsgSW52YWxpZGF0ZSwgQ29sbGVjdGlvbjogQmFzZUNvbGxlY3Rpb24gfSA9IHNjaGVtYTtcblxuLyoqIENyZWF0ZXMgY29sbGVjdGlvbiBvZiBFbmRwb2ludHMgZm9yIGNvbW1vbiBvcGVyYXRpb25zIG9uIGEgZ2l2ZW4gZGF0YS9zY2hlbWEuXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVzb3VyY2U8TyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3M+KHtcbiAgcGF0aCxcbiAgc2NoZW1hLFxuICBFbmRwb2ludCA9IFJlc3RFbmRwb2ludCxcbiAgQ29sbGVjdGlvbiA9IEJhc2VDb2xsZWN0aW9uLFxuICBub25GaWx0ZXJBcmd1bWVudEtleXMsXG4gIG9wdGltaXN0aWMsXG4gIHBhZ2luYXRpb25GaWVsZCxcbiAgLi4uZXh0cmFPcHRpb25zXG59OiBSZWFkb25seTxPPiAmIFJlc291cmNlT3B0aW9ucyk6IFJlc291cmNlPE8+IHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBpZiB0aGV5IGxvd2VyY2FzZSBhbmQgaXQgbG9va3MgbGlrZSB0aGV5IG1lYW50IHRvIHVzZSB1cHBlci1jYXNlIHZlcnNpb25cbiAgICBpZiAoXG4gICAgICAnZW5kcG9pbnQnIGluIGV4dHJhT3B0aW9ucyAmJlxuICAgICAgRW5kcG9pbnQgPT09IFJlc3RFbmRwb2ludCAmJlxuICAgICAgdHlwZW9mIGV4dHJhT3B0aW9uc1snZW5kcG9pbnQnXSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgZXh0cmFPcHRpb25zWydlbmRwb2ludCddICYmXG4gICAgICBPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YuY2FsbChcbiAgICAgICAgUmVzdEVuZHBvaW50LnByb3RvdHlwZSxcbiAgICAgICAgKGV4dHJhT3B0aW9uc1snZW5kcG9pbnQnXSBhcyBhbnkpLnByb3RvdHlwZSxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFlvdSBwYXNzZWQgJ2VuZHBvaW50JyBvcHRpb247IGRpZCB5b3UgbWVhbiB0byB1c2UgRW5kcG9pbnQ/XG5odHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjZW5kcG9pbnRcblRoaXMgcGFyYW1ldGVyIG11c3QgYmUgY2FwaXRhbGl6ZWQuXG5cblRoaXMgd2FybmluZyB3aWxsIG5vdCBzaG93IGluIHByb2R1Y3Rpb24uYCxcbiAgICAgICk7XG4gICAgfVxuICAgIC8vIGlmIHRoZXkgbG93ZXJjYXNlIGFuZCBpdCBsb29rcyBsaWtlIHRoZXkgbWVhbnQgdG8gdXNlIHVwcGVyLWNhc2UgdmVyc2lvblxuICAgIGlmIChcbiAgICAgICdjb2xsZWN0aW9uJyBpbiBleHRyYU9wdGlvbnMgJiZcbiAgICAgIENvbGxlY3Rpb24gPT09IEJhc2VDb2xsZWN0aW9uICYmXG4gICAgICB0eXBlb2YgZXh0cmFPcHRpb25zWydjb2xsZWN0aW9uJ10gPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIGV4dHJhT3B0aW9uc1snY29sbGVjdGlvbiddICYmXG4gICAgICBPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YuY2FsbChcbiAgICAgICAgQmFzZUNvbGxlY3Rpb24ucHJvdG90eXBlLFxuICAgICAgICAoZXh0cmFPcHRpb25zWydjb2xsZWN0aW9uJ10gYXMgYW55KS5wcm90b3R5cGUsXG4gICAgICApXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBZb3UgcGFzc2VkICdjb2xsZWN0aW9uJyBvcHRpb247IGRpZCB5b3UgbWVhbiB0byB1c2UgQ29sbGVjdGlvbj9cbmh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNjb2xsZWN0aW9uXG5UaGlzIHBhcmFtZXRlciBtdXN0IGJlIGNhcGl0YWxpemVkLlxuXG5UaGlzIHdhcm5pbmcgd2lsbCBub3Qgc2hvdyBpbiBwcm9kdWN0aW9uLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBjb25zdCBzaG9ydGVuZWRQYXRoID0gc2hvcnRlblBhdGgocGF0aCk7XG4gIGNvbnN0IGdldE5hbWUgPSAobmFtZTogc3RyaW5nKSA9PiBgJHsoc2NoZW1hIGFzIGFueSk/Lm5hbWV9LiR7bmFtZX1gO1xuICAvLyB0aGlzIGFjY291bnRzIGZvciBkZXJpdmF0aXZlIGVuZHBvaW50c1xuICBmdW5jdGlvbiBleHRlbmRNZW1iZXIoZXh0ZW5kZWQ6IGFueSwga2V5OiBzdHJpbmcsIG9wdGlvbnM6IGFueSkge1xuICAgIGV4dGVuZGVkW2tleV0gPSBleHRlbmRlZFtrZXldLmV4dGVuZChvcHRpb25zKTtcbiAgfVxuXG4gIGNvbnN0IGV4dHJhTXV0YXRlT3B0aW9ucyA9IHsgLi4uZXh0cmFPcHRpb25zIH07XG4gIGNvbnN0IGV4dHJhUGFydGlhbE9wdGlvbnMgPSB7IC4uLmV4dHJhT3B0aW9ucyB9O1xuICBjb25zdCBnZXQ6IEdldEVuZHBvaW50PHsgcGF0aDogT1sncGF0aCddOyBzY2hlbWE6IE9bJ3NjaGVtYSddIH0+ID1cbiAgICBuZXcgRW5kcG9pbnQoe1xuICAgICAgLi4uZXh0cmFPcHRpb25zLFxuICAgICAgcGF0aCxcbiAgICAgIHNjaGVtYSxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ2dldCcpLFxuICAgIH0pIGFzIGFueTtcbiAgaWYgKG9wdGltaXN0aWMpIHtcbiAgICAoZXh0cmFNdXRhdGVPcHRpb25zIGFzIGFueSkuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlID0gb3B0aW1pc3RpY1VwZGF0ZTtcbiAgICAvLyBUT0RPOiBDaGVjayB0aGF0IHNjaGVtYSBpcyBhIHF1ZXJ5YWJsZSwgb3RoZXJ3aXNlIHRoaXMgZG9lc24ndCBtYWtlIHNlbnNlXG4gICAgKGV4dHJhUGFydGlhbE9wdGlvbnMgYXMgYW55KS5nZXRPcHRpbWlzdGljUmVzcG9uc2UgPSBvcHRpbWlzdGljUGFydGlhbChcbiAgICAgIHNjaGVtYSBhcyBhbnksXG4gICAgKTtcbiAgfVxuICBjb25zdCBnZXRMaXN0ID0gbmV3IEVuZHBvaW50KHtcbiAgICAuLi5leHRyYU11dGF0ZU9wdGlvbnMsXG4gICAgcGFnaW5hdGlvbkZpZWxkOiBwYWdpbmF0aW9uRmllbGQgYXMgc3RyaW5nLFxuICAgIG1vdmVQYXRoOiBwYXRoLFxuICAgIHBhdGg6IHNob3J0ZW5lZFBhdGgsXG4gICAgc2NoZW1hOiBuZXcgQ29sbGVjdGlvbihcbiAgICAgIFtzY2hlbWEgYXMgYW55XSxcbiAgICAgIG5vbkZpbHRlckFyZ3VtZW50S2V5cyA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogKFxuICAgICAgICB7IG5vbkZpbHRlckFyZ3VtZW50S2V5cyB9XG4gICAgICApLFxuICAgICksXG4gICAgbmFtZTogZ2V0TmFtZSgnZ2V0TGlzdCcpLFxuICB9KTtcbiAgY29uc3QgcmV0ID0ge1xuICAgIGdldCxcbiAgICBnZXRMaXN0LFxuICAgIC8vIFRPRE8oZGVwcmVjYXRlZCk6IHJlbW92ZSB0aGlzIG9uY2Ugd2UgcmVtb3ZlIGNyZWF0ZXNcbiAgICBjcmVhdGU6IGdldExpc3QucHVzaC5leHRlbmQoeyBuYW1lOiBnZXROYW1lKCdjcmVhdGUnKSB9KSxcbiAgICB1cGRhdGU6IG5ldyBFbmRwb2ludCh7XG4gICAgICAuLi5leHRyYU11dGF0ZU9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ3VwZGF0ZScpLFxuICAgIH0pLFxuICAgIC8vIFRPRE8oYnJlYWtpbmcpOiBNb3ZlIHRvIGdldExpc3QubW92ZVxuICAgIHBhcnRpYWxVcGRhdGU6IG5ldyBFbmRwb2ludCh7XG4gICAgICAuLi5leHRyYVBhcnRpYWxPcHRpb25zLFxuICAgICAgcGF0aCxcbiAgICAgIHNjaGVtYSxcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ3BhcnRpYWxVcGRhdGUnKSxcbiAgICB9KSxcbiAgICBkZWxldGU6IG5ldyBFbmRwb2ludCh7XG4gICAgICAuLi5leHRyYU11dGF0ZU9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hOlxuICAgICAgICAvLyBFbnRpdHkgfHwgVW5pb25cbiAgICAgICAgKHNjaGVtYSBhcyBhbnkpLnByb2Nlc3MgfHwgKHNjaGVtYSBhcyBhbnkpLl9ob2lzdGFibGUgP1xuICAgICAgICAgIG5ldyBJbnZhbGlkYXRlKHNjaGVtYSBhcyBhbnkpXG4gICAgICAgIDogc2NoZW1hLFxuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ2RlbGV0ZScpLFxuICAgICAgcHJvY2VzcyhyZXM6IGFueSwgcGFyYW1zOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHJlcyAmJiBPYmplY3Qua2V5cyhyZXMpLmxlbmd0aCA/IHJlcyA6IHBhcmFtcztcbiAgICAgIH0sXG4gICAgICBnZXRPcHRpbWlzdGljUmVzcG9uc2U6IG9wdGltaXN0aWMgPyAob3B0aW1pc3RpY0RlbGV0ZSBhcyBhbnkpIDogdW5kZWZpbmVkLFxuICAgIH0pLFxuICAgIGV4dGVuZChcbiAgICAgIC4uLmFyZ3M6XG4gICAgICAgIHwgW3N0cmluZywgUmVzdEVuZHBvaW50T3B0aW9ucyAmIFBhcnRpYWxSZXN0R2VuZXJpY3NdXG4gICAgICAgIHwgW1Jlc3RFbmRwb2ludE9wdGlvbnMgJiBQYXJ0aWFsUmVzdEdlbmVyaWNzXVxuICAgICAgICB8IFtcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgYmFzZVJlc291cmNlOiBSZXNvdXJjZUludGVyZmFjZSxcbiAgICAgICAgICAgICkgPT4gUmVjb3JkPHN0cmluZywgUmVzdEluc3RhbmNlQmFzZT4sXG4gICAgICAgICAgXVxuICAgICkge1xuICAgICAgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBba2V5LCBvcHRpb25zXSA9IGFyZ3M7XG4gICAgICAgIGlmIChrZXkgaW4gdGhpcykge1xuICAgICAgICAgIGNvbnN0IGV4dGVuZGVkID0geyAuLi50aGlzIH07XG4gICAgICAgICAgZXh0ZW5kTWVtYmVyKGV4dGVuZGVkLCBrZXksIG9wdGlvbnMpO1xuICAgICAgICAgIHJldHVybiBleHRlbmRlZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udGhpcyxcbiAgICAgICAgICAgIFtrZXldOiB0aGlzLmdldC5leHRlbmQob3B0aW9ucyksXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgYXJnc1swXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCBleHRlbmRlZCA9IGFyZ3NbMF0odGhpcyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4udGhpcyxcbiAgICAgICAgICAuLi5leHRlbmRlZCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG92ZXJyaWRlcyA9IGFyZ3NbMF07XG4gICAgICBjb25zdCBleHRlbmRlZCA9IHsgLi4udGhpcyB9O1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gb3ZlcnJpZGVzKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBleHRlbmRNZW1iZXIoZXh0ZW5kZWQsIGtleSwgb3ZlcnJpZGVzW2tleV0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4dGVuZGVkO1xuICAgIH0sXG4gIH0gYXMgYW55O1xuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBvcHRpbWlzdGljVXBkYXRlKHNuYXA6IFNuYXBzaG90SW50ZXJmYWNlLCBwYXJhbXM6IGFueSwgYm9keTogYW55KSB7XG4gIHJldHVybiB7XG4gICAgLi4ucGFyYW1zLFxuICAgIC4uLmVuc3VyZVBvam8oYm9keSksXG4gIH07XG59XG5mdW5jdGlvbiBvcHRpbWlzdGljUGFydGlhbChzY2hlbWE6IFF1ZXJ5YWJsZSkge1xuICByZXR1cm4gZnVuY3Rpb24gKHNuYXA6IFNuYXBzaG90SW50ZXJmYWNlLCBwYXJhbXM6IGFueSwgYm9keTogYW55KSB7XG4gICAgY29uc3QgZGF0YSA9IHNuYXAuZ2V0KHNjaGVtYSwgcGFyYW1zKTtcbiAgICBpZiAoIWRhdGEpIHRocm93IHNuYXAuYWJvcnQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIC4uLmRhdGEsXG4gICAgICAvLyBldmVuIHRobyB3ZSBkb24ndCBhbHdheXMgaGF2ZSB0d28gYXJndW1lbnRzLCB0aGUgZXh0cmEgb25lIHdpbGwgc2ltcGx5IGJlIHVuZGVmaW5lZCB3aGljaCBzcHJlYWRzIGZpbmVcbiAgICAgIC4uLmVuc3VyZVBvam8oYm9keSksXG4gICAgfTtcbiAgfTtcbn1cbmZ1bmN0aW9uIG9wdGltaXN0aWNEZWxldGUoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55KSB7XG4gIHJldHVybiBwYXJhbXM7XG59XG5mdW5jdGlvbiBlbnN1cmVQb2pvKGJvZHk6IGFueSkge1xuICByZXR1cm4gYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhID9cbiAgICAgIE9iamVjdC5mcm9tRW50cmllcygoYm9keSBhcyBhbnkpLmVudHJpZXMoKSlcbiAgICA6IGJvZHk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE1BQU0sUUFBUSx1QkFBdUI7QUFTOUMsT0FBT0MsWUFBWSxNQUtaLG1CQUFtQjtBQUMxQixTQUFTQyxXQUFXLFFBQVEsa0JBQWtCO0FBRTlDLE1BQU07RUFBRUMsVUFBVTtFQUFFQyxVQUFVLEVBQUVDO0FBQWUsQ0FBQyxHQUFHTCxNQUFNOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsU0FBU00sUUFBUUEsQ0FBNkI7RUFDM0RDLElBQUk7RUFDSlAsTUFBTTtFQUNOUSxRQUFRLEdBQUdQLFlBQVk7RUFDdkJHLFVBQVUsR0FBR0MsY0FBYztFQUMzQkkscUJBQXFCO0VBQ3JCQyxVQUFVO0VBQ1ZDLGVBQWU7RUFDZixHQUFHQztBQUMwQixDQUFDLEVBQWU7RUFDN0MsSUFBSUMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7SUFDekM7SUFDQSxJQUNFLFVBQVUsSUFBSUgsWUFBWSxJQUMxQkosUUFBUSxLQUFLUCxZQUFZLElBQ3pCLE9BQU9XLFlBQVksQ0FBQyxVQUFVLENBQUMsS0FBSyxVQUFVLElBQzlDQSxZQUFZLENBQUMsVUFBVSxDQUFDLElBQ3hCSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsYUFBYSxDQUFDQyxJQUFJLENBQ2pDbEIsWUFBWSxDQUFDZ0IsU0FBUyxFQUNyQkwsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFTSyxTQUNwQyxDQUFDLEVBQ0Q7TUFDQUcsT0FBTyxDQUFDQyxJQUFJLENBQ1Y7QUFDUjtBQUNBO0FBQ0E7QUFDQSwwQ0FDTSxDQUFDO0lBQ0g7SUFDQTtJQUNBLElBQ0UsWUFBWSxJQUFJVCxZQUFZLElBQzVCUixVQUFVLEtBQUtDLGNBQWMsSUFDN0IsT0FBT08sWUFBWSxDQUFDLFlBQVksQ0FBQyxLQUFLLFVBQVUsSUFDaERBLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFDMUJJLE1BQU0sQ0FB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
|
|
175
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJSZXN0RW5kcG9pbnQiLCJzaG9ydGVuUGF0aCIsIkludmFsaWRhdGUiLCJDb2xsZWN0aW9uIiwiQmFzZUNvbGxlY3Rpb24iLCJyZXNvdXJjZSIsInBhdGgiLCJFbmRwb2ludCIsIm5vbkZpbHRlckFyZ3VtZW50S2V5cyIsIm9wdGltaXN0aWMiLCJwYWdpbmF0aW9uRmllbGQiLCJleHRyYU9wdGlvbnMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJpc1Byb3RvdHlwZU9mIiwiY2FsbCIsImNvbnNvbGUiLCJ3YXJuIiwic2hvcnRlbmVkUGF0aCIsImdldE5hbWUiLCJuYW1lIiwiZXh0ZW5kTWVtYmVyIiwiZXh0ZW5kZWQiLCJrZXkiLCJvcHRpb25zIiwiZXh0ZW5kIiwiZXh0cmFCYXNlT3B0aW9ucyIsImV4dHJhTXV0YXRlT3B0aW9ucyIsImV4dHJhUGFydGlhbE9wdGlvbnMiLCJnZXQiLCJnZXRPcHRpbWlzdGljUmVzcG9uc2UiLCJvcHRpbWlzdGljVXBkYXRlIiwib3B0aW1pc3RpY1BhcnRpYWwiLCJnZXRMaXN0IiwibW92ZVBhdGgiLCJ1bmRlZmluZWQiLCJyZXQiLCJjcmVhdGUiLCJwdXNoIiwidXBkYXRlIiwibWV0aG9kIiwicGFydGlhbFVwZGF0ZSIsImRlbGV0ZSIsIl9ob2lzdGFibGUiLCJyZXMiLCJwYXJhbXMiLCJrZXlzIiwibGVuZ3RoIiwib3B0aW1pc3RpY0RlbGV0ZSIsImFyZ3MiLCJvdmVycmlkZXMiLCJzbmFwIiwiYm9keSIsImVuc3VyZVBvam8iLCJkYXRhIiwiYWJvcnQiLCJGb3JtRGF0YSIsImZyb21FbnRyaWVzIiwiZW50cmllcyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXNvdXJjZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHR5cGUgeyBTbmFwc2hvdEludGVyZmFjZSwgUXVlcnlhYmxlIH0gZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcblxuaW1wb3J0IHtcbiAgUmVzb3VyY2VHZW5lcmljcyxcbiAgUmVzb3VyY2VPcHRpb25zLFxuICBSZXNvdXJjZSxcbiAgUmVzb3VyY2VJbnRlcmZhY2UsXG59IGZyb20gJy4vcmVzb3VyY2VUeXBlcy5qcyc7XG5pbXBvcnQgUmVzdEVuZHBvaW50LCB7XG4gIEdldEVuZHBvaW50LFxuICBQYXJ0aWFsUmVzdEdlbmVyaWNzLFxuICBSZXN0RW5kcG9pbnRPcHRpb25zLFxuICBSZXN0SW5zdGFuY2VCYXNlLFxufSBmcm9tICcuL1Jlc3RFbmRwb2ludC5qcyc7XG5pbXBvcnQgeyBzaG9ydGVuUGF0aCB9IGZyb20gJy4vUmVzdEhlbHBlcnMuanMnO1xuXG5jb25zdCB7IEludmFsaWRhdGUsIENvbGxlY3Rpb246IEJhc2VDb2xsZWN0aW9uIH0gPSBzY2hlbWE7XG5cbi8qKiBDcmVhdGVzIGNvbGxlY3Rpb24gb2YgRW5kcG9pbnRzIGZvciBjb21tb24gb3BlcmF0aW9ucyBvbiBhIGdpdmVuIGRhdGEvc2NoZW1hLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc291cmNlPE8gZXh0ZW5kcyBSZXNvdXJjZUdlbmVyaWNzPih7XG4gIHBhdGgsXG4gIHNjaGVtYSxcbiAgRW5kcG9pbnQgPSBSZXN0RW5kcG9pbnQsXG4gIENvbGxlY3Rpb24gPSBCYXNlQ29sbGVjdGlvbixcbiAgbm9uRmlsdGVyQXJndW1lbnRLZXlzLFxuICBvcHRpbWlzdGljLFxuICBwYWdpbmF0aW9uRmllbGQsXG4gIC4uLmV4dHJhT3B0aW9uc1xufTogUmVhZG9ubHk8Tz4gJiBPICYgUmVzb3VyY2VPcHRpb25zKTogUmVzb3VyY2U8Tz4ge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIC8vIGlmIHRoZXkgbG93ZXJjYXNlIGFuZCBpdCBsb29rcyBsaWtlIHRoZXkgbWVhbnQgdG8gdXNlIHVwcGVyLWNhc2UgdmVyc2lvblxuICAgIGlmIChcbiAgICAgICdlbmRwb2ludCcgaW4gZXh0cmFPcHRpb25zICYmXG4gICAgICBFbmRwb2ludCA9PT0gUmVzdEVuZHBvaW50ICYmXG4gICAgICB0eXBlb2YgZXh0cmFPcHRpb25zWydlbmRwb2ludCddID09PSAnZnVuY3Rpb24nICYmXG4gICAgICBleHRyYU9wdGlvbnNbJ2VuZHBvaW50J10gJiZcbiAgICAgIE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZi5jYWxsKFxuICAgICAgICBSZXN0RW5kcG9pbnQucHJvdG90eXBlLFxuICAgICAgICAoZXh0cmFPcHRpb25zWydlbmRwb2ludCddIGFzIGFueSkucHJvdG90eXBlLFxuICAgICAgKVxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgWW91IHBhc3NlZCAnZW5kcG9pbnQnIG9wdGlvbjsgZGlkIHlvdSBtZWFuIHRvIHVzZSBFbmRwb2ludD9cbmh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNlbmRwb2ludFxuVGhpcyBwYXJhbWV0ZXIgbXVzdCBiZSBjYXBpdGFsaXplZC5cblxuVGhpcyB3YXJuaW5nIHdpbGwgbm90IHNob3cgaW4gcHJvZHVjdGlvbi5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgLy8gaWYgdGhleSBsb3dlcmNhc2UgYW5kIGl0IGxvb2tzIGxpa2UgdGhleSBtZWFudCB0byB1c2UgdXBwZXItY2FzZSB2ZXJzaW9uXG4gICAgaWYgKFxuICAgICAgJ2NvbGxlY3Rpb24nIGluIGV4dHJhT3B0aW9ucyAmJlxuICAgICAgQ29sbGVjdGlvbiA9PT0gQmFzZUNvbGxlY3Rpb24gJiZcbiAgICAgIHR5cGVvZiBleHRyYU9wdGlvbnNbJ2NvbGxlY3Rpb24nXSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgZXh0cmFPcHRpb25zWydjb2xsZWN0aW9uJ10gJiZcbiAgICAgIE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZi5jYWxsKFxuICAgICAgICBCYXNlQ29sbGVjdGlvbi5wcm90b3R5cGUsXG4gICAgICAgIChleHRyYU9wdGlvbnNbJ2NvbGxlY3Rpb24nXSBhcyBhbnkpLnByb3RvdHlwZSxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFlvdSBwYXNzZWQgJ2NvbGxlY3Rpb24nIG9wdGlvbjsgZGlkIHlvdSBtZWFuIHRvIHVzZSBDb2xsZWN0aW9uP1xuaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI2NvbGxlY3Rpb25cblRoaXMgcGFyYW1ldGVyIG11c3QgYmUgY2FwaXRhbGl6ZWQuXG5cblRoaXMgd2FybmluZyB3aWxsIG5vdCBzaG93IGluIHByb2R1Y3Rpb24uYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIGNvbnN0IHNob3J0ZW5lZFBhdGggPSBzaG9ydGVuUGF0aChwYXRoKTtcbiAgY29uc3QgZ2V0TmFtZSA9IChuYW1lOiBzdHJpbmcpID0+IGAkeyhzY2hlbWEgYXMgYW55KT8ubmFtZX0uJHtuYW1lfWA7XG4gIC8vIHRoaXMgYWNjb3VudHMgZm9yIGRlcml2YXRpdmUgZW5kcG9pbnRzXG4gIGZ1bmN0aW9uIGV4dGVuZE1lbWJlcihleHRlbmRlZDogYW55LCBrZXk6IHN0cmluZywgb3B0aW9uczogYW55KSB7XG4gICAgZXh0ZW5kZWRba2V5XSA9IGV4dGVuZGVkW2tleV0uZXh0ZW5kKG9wdGlvbnMpO1xuICB9XG5cbiAgLy8gTG9vc2VseSB0eXBlZDogdGhlIHB1YmxpYyBzaWduYXR1cmUgaW5mZXJzIE8gZnJvbSB0aGUgbmFrZWQgYE9gIHBvc2l0aW9uLFxuICAvLyBzbyBzcHJlYWRpbmcgdGhlIGdlbmVyaWMgcmVzdCBpbnRvIGBuZXcgRW5kcG9pbnQoKWAgd291bGQgb3RoZXJ3aXNlIGxlYXZlXG4gIC8vIENvbnRlbnRTY2hlbWFHdWFyZDxPPiBhcyBhbiB1bnJlc29sdmFibGUgKGRlZmVycmVkKSBjb25kaXRpb25hbC5cbiAgLy8gUmV0eXBlIHRoaXMgaWYgYSBmdXR1cmUgVHlwZVNjcmlwdCByZXNvbHZlcyB0aGF0IGNvbmRpdGlvbmFsIGhlcmUuXG4gIGNvbnN0IGV4dHJhQmFzZU9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBleHRyYU9wdGlvbnM7XG4gIGNvbnN0IGV4dHJhTXV0YXRlT3B0aW9ucyA9IHsgLi4uZXh0cmFCYXNlT3B0aW9ucyB9O1xuICBjb25zdCBleHRyYVBhcnRpYWxPcHRpb25zID0geyAuLi5leHRyYUJhc2VPcHRpb25zIH07XG4gIGNvbnN0IGdldDogR2V0RW5kcG9pbnQ8eyBwYXRoOiBPWydwYXRoJ107IHNjaGVtYTogT1snc2NoZW1hJ10gfT4gPVxuICAgIG5ldyBFbmRwb2ludCh7XG4gICAgICAuLi5leHRyYUJhc2VPcHRpb25zLFxuICAgICAgcGF0aCxcbiAgICAgIHNjaGVtYSxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ2dldCcpLFxuICAgIH0pIGFzIGFueTtcbiAgaWYgKG9wdGltaXN0aWMpIHtcbiAgICBleHRyYU11dGF0ZU9wdGlvbnMuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlID0gb3B0aW1pc3RpY1VwZGF0ZTtcbiAgICAvLyBUT0RPOiBDaGVjayB0aGF0IHNjaGVtYSBpcyBhIHF1ZXJ5YWJsZSwgb3RoZXJ3aXNlIHRoaXMgZG9lc24ndCBtYWtlIHNlbnNlXG4gICAgZXh0cmFQYXJ0aWFsT3B0aW9ucy5nZXRPcHRpbWlzdGljUmVzcG9uc2UgPSBvcHRpbWlzdGljUGFydGlhbChcbiAgICAgIHNjaGVtYSBhcyBhbnksXG4gICAgKTtcbiAgfVxuICBjb25zdCBnZXRMaXN0ID0gbmV3IEVuZHBvaW50KHtcbiAgICAuLi5leHRyYU11dGF0ZU9wdGlvbnMsXG4gICAgcGFnaW5hdGlvbkZpZWxkOiBwYWdpbmF0aW9uRmllbGQgYXMgc3RyaW5nLFxuICAgIG1vdmVQYXRoOiBwYXRoLFxuICAgIHBhdGg6IHNob3J0ZW5lZFBhdGgsXG4gICAgc2NoZW1hOiBuZXcgQ29sbGVjdGlvbihcbiAgICAgIFtzY2hlbWEgYXMgYW55XSxcbiAgICAgIG5vbkZpbHRlckFyZ3VtZW50S2V5cyA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogKFxuICAgICAgICB7IG5vbkZpbHRlckFyZ3VtZW50S2V5cyB9XG4gICAgICApLFxuICAgICksXG4gICAgbmFtZTogZ2V0TmFtZSgnZ2V0TGlzdCcpLFxuICB9KTtcbiAgY29uc3QgcmV0ID0ge1xuICAgIGdldCxcbiAgICBnZXRMaXN0LFxuICAgIC8vIFRPRE8oZGVwcmVjYXRlZCk6IHJlbW92ZSB0aGlzIG9uY2Ugd2UgcmVtb3ZlIGNyZWF0ZXNcbiAgICBjcmVhdGU6IGdldExpc3QucHVzaC5leHRlbmQoeyBuYW1lOiBnZXROYW1lKCdjcmVhdGUnKSB9KSxcbiAgICB1cGRhdGU6IG5ldyBFbmRwb2ludCh7XG4gICAgICAuLi5leHRyYU11dGF0ZU9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ3VwZGF0ZScpLFxuICAgIH0pLFxuICAgIC8vIFRPRE8oYnJlYWtpbmcpOiBNb3ZlIHRvIGdldExpc3QubW92ZVxuICAgIHBhcnRpYWxVcGRhdGU6IG5ldyBFbmRwb2ludCh7XG4gICAgICAuLi5leHRyYVBhcnRpYWxPcHRpb25zLFxuICAgICAgcGF0aCxcbiAgICAgIHNjaGVtYSxcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ3BhcnRpYWxVcGRhdGUnKSxcbiAgICB9KSxcbiAgICBkZWxldGU6IG5ldyBFbmRwb2ludCh7XG4gICAgICAuLi5leHRyYU11dGF0ZU9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hOlxuICAgICAgICAvLyBFbnRpdHkgfHwgVW5pb25cbiAgICAgICAgKHNjaGVtYSBhcyBhbnkpLnByb2Nlc3MgfHwgKHNjaGVtYSBhcyBhbnkpLl9ob2lzdGFibGUgP1xuICAgICAgICAgIG5ldyBJbnZhbGlkYXRlKHNjaGVtYSBhcyBhbnkpXG4gICAgICAgIDogc2NoZW1hLFxuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ2RlbGV0ZScpLFxuICAgICAgcHJvY2VzcyhyZXM6IGFueSwgcGFyYW1zOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHJlcyAmJiBPYmplY3Qua2V5cyhyZXMpLmxlbmd0aCA/IHJlcyA6IHBhcmFtcztcbiAgICAgIH0sXG4gICAgICBnZXRPcHRpbWlzdGljUmVzcG9uc2U6IG9wdGltaXN0aWMgPyAob3B0aW1pc3RpY0RlbGV0ZSBhcyBhbnkpIDogdW5kZWZpbmVkLFxuICAgIH0pLFxuICAgIGV4dGVuZChcbiAgICAgIC4uLmFyZ3M6XG4gICAgICAgIHwgW3N0cmluZywgUmVzdEVuZHBvaW50T3B0aW9ucyAmIFBhcnRpYWxSZXN0R2VuZXJpY3NdXG4gICAgICAgIHwgW1Jlc3RFbmRwb2ludE9wdGlvbnMgJiBQYXJ0aWFsUmVzdEdlbmVyaWNzXVxuICAgICAgICB8IFtcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgYmFzZVJlc291cmNlOiBSZXNvdXJjZUludGVyZmFjZSxcbiAgICAgICAgICAgICkgPT4gUmVjb3JkPHN0cmluZywgUmVzdEluc3RhbmNlQmFzZT4sXG4gICAgICAgICAgXVxuICAgICkge1xuICAgICAgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBba2V5LCBvcHRpb25zXSA9IGFyZ3M7XG4gICAgICAgIGlmIChrZXkgaW4gdGhpcykge1xuICAgICAgICAgIGNvbnN0IGV4dGVuZGVkID0geyAuLi50aGlzIH07XG4gICAgICAgICAgZXh0ZW5kTWVtYmVyKGV4dGVuZGVkLCBrZXksIG9wdGlvbnMpO1xuICAgICAgICAgIHJldHVybiBleHRlbmRlZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udGhpcyxcbiAgICAgICAgICAgIFtrZXldOiB0aGlzLmdldC5leHRlbmQob3B0aW9ucyksXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgYXJnc1swXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCBleHRlbmRlZCA9IGFyZ3NbMF0odGhpcyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4udGhpcyxcbiAgICAgICAgICAuLi5leHRlbmRlZCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG92ZXJyaWRlcyA9IGFyZ3NbMF07XG4gICAgICBjb25zdCBleHRlbmRlZCA9IHsgLi4udGhpcyB9O1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gb3ZlcnJpZGVzKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBleHRlbmRNZW1iZXIoZXh0ZW5kZWQsIGtleSwgb3ZlcnJpZGVzW2tleV0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4dGVuZGVkO1xuICAgIH0sXG4gIH0gYXMgYW55O1xuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBvcHRpbWlzdGljVXBkYXRlKHNuYXA6IFNuYXBzaG90SW50ZXJmYWNlLCBwYXJhbXM6IGFueSwgYm9keTogYW55KSB7XG4gIHJldHVybiB7XG4gICAgLi4ucGFyYW1zLFxuICAgIC4uLmVuc3VyZVBvam8oYm9keSksXG4gIH07XG59XG5mdW5jdGlvbiBvcHRpbWlzdGljUGFydGlhbChzY2hlbWE6IFF1ZXJ5YWJsZSkge1xuICByZXR1cm4gZnVuY3Rpb24gKHNuYXA6IFNuYXBzaG90SW50ZXJmYWNlLCBwYXJhbXM6IGFueSwgYm9keTogYW55KSB7XG4gICAgY29uc3QgZGF0YSA9IHNuYXAuZ2V0KHNjaGVtYSwgcGFyYW1zKTtcbiAgICBpZiAoIWRhdGEpIHRocm93IHNuYXAuYWJvcnQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIC4uLmRhdGEsXG4gICAgICAvLyBldmVuIHRobyB3ZSBkb24ndCBhbHdheXMgaGF2ZSB0d28gYXJndW1lbnRzLCB0aGUgZXh0cmEgb25lIHdpbGwgc2ltcGx5IGJlIHVuZGVmaW5lZCB3aGljaCBzcHJlYWRzIGZpbmVcbiAgICAgIC4uLmVuc3VyZVBvam8oYm9keSksXG4gICAgfTtcbiAgfTtcbn1cbmZ1bmN0aW9uIG9wdGltaXN0aWNEZWxldGUoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55KSB7XG4gIHJldHVybiBwYXJhbXM7XG59XG5mdW5jdGlvbiBlbnN1cmVQb2pvKGJvZHk6IGFueSkge1xuICByZXR1cm4gYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhID9cbiAgICAgIE9iamVjdC5mcm9tRW50cmllcygoYm9keSBhcyBhbnkpLmVudHJpZXMoKSlcbiAgICA6IGJvZHk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE1BQU0sUUFBUSx1QkFBdUI7QUFTOUMsT0FBT0MsWUFBWSxNQUtaLG1CQUFtQjtBQUMxQixTQUFTQyxXQUFXLFFBQVEsa0JBQWtCO0FBRTlDLE1BQU07RUFBRUMsVUFBVTtFQUFFQyxVQUFVLEVBQUVDO0FBQWUsQ0FBQyxHQUFHTCxNQUFNOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsU0FBU00sUUFBUUEsQ0FBNkI7RUFDM0RDLElBQUk7RUFDSlAsTUFBTTtFQUNOUSxRQUFRLEdBQUdQLFlBQVk7RUFDdkJHLFVBQVUsR0FBR0MsY0FBYztFQUMzQkkscUJBQXFCO0VBQ3JCQyxVQUFVO0VBQ1ZDLGVBQWU7RUFDZixHQUFHQztBQUM4QixDQUFDLEVBQWU7RUFDakQsSUFBSUMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7SUFDekM7SUFDQSxJQUNFLFVBQVUsSUFBSUgsWUFBWSxJQUMxQkosUUFBUSxLQUFLUCxZQUFZLElBQ3pC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
|
|
@@ -2,7 +2,7 @@ import type { EndpointInterface, EndpointToFunction } from '@data-client/endpoin
|
|
|
2
2
|
import type { ResourcePath } from './pathTypes.js';
|
|
3
3
|
import type { ResourceExtension, ResourceEndpointExtensions, CustomResource, ExtendedResource } from './resourceExtensionTypes.js';
|
|
4
4
|
import type { ResourceGenerics, ResourceInterface } from './resourceTypes.js';
|
|
5
|
-
import type {
|
|
5
|
+
import type { ExtendableRestGenerics, RestEndpointExtendOptions, RestExtendedEndpoint, RestInstanceBase } from './RestEndpoint.js';
|
|
6
6
|
export interface Extendable<O extends ResourceGenerics = {
|
|
7
7
|
path: ResourcePath;
|
|
8
8
|
schema: any;
|
|
@@ -13,13 +13,13 @@ export interface Extendable<O extends ResourceGenerics = {
|
|
|
13
13
|
*/
|
|
14
14
|
extend<R extends {
|
|
15
15
|
[K in ExtendKey]: RestInstanceBase;
|
|
16
|
-
}, const ExtendKey extends Exclude<Extract<keyof R, string>, 'extend'>, ExtendOptions extends
|
|
16
|
+
}, const ExtendKey extends Exclude<Extract<keyof R, string>, 'extend'>, ExtendOptions extends ExtendableRestGenerics | {}>(this: R, key: ExtendKey, options: Readonly<RestEndpointExtendOptions<ExtendOptions, R[ExtendKey], EndpointToFunction<R[ExtendKey]>> & ExtendOptions> & ExtendOptions): ResourceExtension<R, ExtendKey, ExtendOptions>;
|
|
17
17
|
extend<R extends {
|
|
18
18
|
get: RestInstanceBase;
|
|
19
|
-
}, const ExtendKey extends string, ExtendOptions extends
|
|
19
|
+
}, const ExtendKey extends string, ExtendOptions extends ExtendableRestGenerics | {}>(this: R, key: ExtendKey, options: Readonly<RestEndpointExtendOptions<ExtendOptions, R['get'], EndpointToFunction<R['get']>> & ExtendOptions> & ExtendOptions): R & {
|
|
20
20
|
[key in ExtendKey]: RestExtendedEndpoint<ExtendOptions, R['get']>;
|
|
21
21
|
};
|
|
22
|
-
extend<R extends ResourceInterface, Get extends
|
|
22
|
+
extend<R extends ResourceInterface, Get extends ExtendableRestGenerics = {}, GetList extends ExtendableRestGenerics = {}, Update extends ExtendableRestGenerics = {}, PartialUpdate extends ExtendableRestGenerics = {}, Delete extends ExtendableRestGenerics = {}>(this: R, options: ResourceEndpointExtensions<R, Get, GetList, Update, PartialUpdate, Delete>): CustomResource<R, O, Get, GetList, Update, PartialUpdate, Delete> & Omit<R, keyof ResourceInterface | 'extend'>;
|
|
23
23
|
extend<R extends ResourceInterface, T extends Record<string, EndpointInterface>>(this: R, extender: (baseResource: R) => T): ExtendedResource<R, T>;
|
|
24
24
|
}
|
|
25
25
|
//# sourceMappingURL=resourceExtendable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resourceExtendable.d.ts","sourceRoot":"","sources":["../src/resourceExtendable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EACV,iBAAiB,EACjB,0BAA0B,EAC1B,cAAc,EACd,gBAAgB,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAEV,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"resourceExtendable.d.ts","sourceRoot":"","sources":["../src/resourceExtendable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EACV,iBAAiB,EACjB,0BAA0B,EAC1B,cAAc,EACd,gBAAgB,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAEV,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,UAAU,CACzB,CAAC,SAAS,gBAAgB,GAAG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE;IAEhE;;;OAGG;IACH,MAAM,CACJ,CAAC,SAAS;SACP,CAAC,IAAI,SAAS,GAAG,gBAAgB;KACnC,EACD,KAAK,CAAC,SAAS,SAAS,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,EAEnE,aAAa,SAAS,sBAAsB,GAAG,EAAE,EAEjD,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,QAAQ,CACf,yBAAyB,CACvB,aAAa,EACb,CAAC,CAAC,SAAS,CAAC,EACZ,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CACjC,GACC,aAAa,CAChB,GACC,aAAa,GACd,iBAAiB,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAClD,MAAM,CACJ,CAAC,SAAS;QAAE,GAAG,EAAE,gBAAgB,CAAA;KAAE,EACnC,KAAK,CAAC,SAAS,SAAS,MAAM,EAE9B,aAAa,SAAS,sBAAsB,GAAG,EAAE,EAEjD,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,QAAQ,CACf,yBAAyB,CACvB,aAAa,EACb,CAAC,CAAC,KAAK,CAAC,EACR,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAC7B,GACC,aAAa,CAChB,GACC,aAAa,GACd,CAAC,GAAG;SACJ,GAAG,IAAI,SAAS,GAAG,oBAAoB,CAAC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;KAClE,CAAC;IACF,MAAM,CACJ,CAAC,SAAS,iBAAiB,EAC3B,GAAG,SAAS,sBAAsB,GAAG,EAAE,EACvC,OAAO,SAAS,sBAAsB,GAAG,EAAE,EAC3C,MAAM,SAAS,sBAAsB,GAAG,EAAE,EAC1C,aAAa,SAAS,sBAAsB,GAAG,EAAE,EACjD,MAAM,SAAS,sBAAsB,GAAG,EAAE,EAE1C,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,0BAA0B,CACjC,CAAC,EACD,GAAG,EACH,OAAO,EACP,MAAM,EACN,aAAa,EACb,MAAM,CACP,GACA,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,GAElE,IAAI,CAAC,CAAC,EAAE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,CAAC;IAC9C,MAAM,CACJ,CAAC,SAAS,iBAAiB,EAC3B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAE3C,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAC/B,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC3B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc291cmNlRXh0ZW5kYWJsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEVuZHBvaW50SW50ZXJmYWNlLFxuICBFbmRwb2ludFRvRnVuY3Rpb24sXG59IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHsgUmVzb3VyY2VQYXRoIH0gZnJvbSAnLi9wYXRoVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBSZXNvdXJjZUV4dGVuc2lvbixcbiAgUmVzb3VyY2VFbmRwb2ludEV4dGVuc2lvbnMsXG4gIEN1c3RvbVJlc291cmNlLFxuICBFeHRlbmRlZFJlc291cmNlLFxufSBmcm9tICcuL3Jlc291cmNlRXh0ZW5zaW9uVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBSZXNvdXJjZSxcbiAgUmVzb3VyY2VHZW5lcmljcyxcbiAgUmVzb3VyY2VJbnRlcmZhY2UsXG59IGZyb20gJy4vcmVzb3VyY2VUeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEV4dGVuZGFibGVSZXN0R2VuZXJpY3MsXG4gIFJlc3RFbmRwb2ludEV4dGVuZE9wdGlvbnMsXG4gIFJlc3RFeHRlbmRlZEVuZHBvaW50LFxuICBSZXN0SW5zdGFuY2VCYXNlLFxufSBmcm9tICcuL1Jlc3RFbmRwb2ludC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5kYWJsZTxcbiAgTyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3MgPSB7IHBhdGg6IFJlc291cmNlUGF0aDsgc2NoZW1hOiBhbnkgfSxcbj4ge1xuICAvKiogQWxsb3dzIGN1c3RvbWl6aW5nIGluZGl2aWR1YWwgZW5kcG9pbnRzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI2V4dGVuZFxuICAgKi9cbiAgZXh0ZW5kPFxuICAgIFIgZXh0ZW5kcyB7XG4gICAgICBbSyBpbiBFeHRlbmRLZXldOiBSZXN0SW5zdGFuY2VCYXNlO1xuICAgIH0sXG4gICAgY29uc3QgRXh0ZW5kS2V5IGV4dGVuZHMgRXhjbHVkZTxFeHRyYWN0PGtleW9mIFIsIHN0cmluZz4sICdleHRlbmQnPixcbiAgICAvLyBUT0RPOiBzZWUgUmVzdEVuZHBvaW50LmV4dGVuZCBUT0RPXG4gICAgRXh0ZW5kT3B0aW9ucyBleHRlbmRzIEV4dGVuZGFibGVSZXN0R2VuZXJpY3MgfCB7fSxcbiAgPihcbiAgICB0aGlzOiBSLFxuICAgIGtleTogRXh0ZW5kS2V5LFxuICAgIG9wdGlvbnM6IFJlYWRvbmx5PFxuICAgICAgUmVzdEVuZHBvaW50RXh0ZW5kT3B0aW9uczxcbiAgICAgICAgRXh0ZW5kT3B0aW9ucyxcbiAgICAgICAgUltFeHRlbmRLZXldLFxuICAgICAgICBFbmRwb2ludFRvRnVuY3Rpb248UltFeHRlbmRLZXldPlxuICAgICAgPiAmXG4gICAgICAgIEV4dGVuZE9wdGlvbnNcbiAgICA+ICZcbiAgICAgIEV4dGVuZE9wdGlvbnMsXG4gICk6IFJlc291cmNlRXh0ZW5zaW9uPFIsIEV4dGVuZEtleSwgRXh0ZW5kT3B0aW9ucz47XG4gIGV4dGVuZDxcbiAgICBSIGV4dGVuZHMgeyBnZXQ6IFJlc3RJbnN0YW5jZUJhc2UgfSxcbiAgICBjb25zdCBFeHRlbmRLZXkgZXh0ZW5kcyBzdHJpbmcsXG4gICAgLy8gVE9ETzogc2VlIFJlc3RFbmRwb2ludC5leHRlbmQgVE9ET1xuICAgIEV4dGVuZE9wdGlvbnMgZXh0ZW5kcyBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzIHwge30sXG4gID4oXG4gICAgdGhpczogUixcbiAgICBrZXk6IEV4dGVuZEtleSxcbiAgICBvcHRpb25zOiBSZWFkb25seTxcbiAgICAgIFJlc3RFbmRwb2ludEV4dGVuZE9wdGlvbnM8XG4gICAgICAgIEV4dGVuZE9wdGlvbnMsXG4gICAgICAgIFJbJ2dldCddLFxuICAgICAgICBFbmRwb2ludFRvRnVuY3Rpb248UlsnZ2V0J10+XG4gICAgICA+ICZcbiAgICAgICAgRXh0ZW5kT3B0aW9uc1xuICAgID4gJlxuICAgICAgRXh0ZW5kT3B0aW9ucyxcbiAgKTogUiAmIHtcbiAgICBba2V5IGluIEV4dGVuZEtleV06IFJlc3RFeHRlbmRlZEVuZHBvaW50PEV4dGVuZE9wdGlvbnMsIFJbJ2dldCddPjtcbiAgfTtcbiAgZXh0ZW5kPFxuICAgIFIgZXh0ZW5kcyBSZXNvdXJjZUludGVyZmFjZSxcbiAgICBHZXQgZXh0ZW5kcyBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzID0ge30sXG4gICAgR2V0TGlzdCBleHRlbmRzIEV4dGVuZGFibGVSZXN0R2VuZXJpY3MgPSB7fSxcbiAgICBVcGRhdGUgZXh0ZW5kcyBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzID0ge30sXG4gICAgUGFydGlhbFVwZGF0ZSBleHRlbmRzIEV4dGVuZGFibGVSZXN0R2VuZXJpY3MgPSB7fSxcbiAgICBEZWxldGUgZXh0ZW5kcyBFeHRlbmRhYmxlUmVzdEdlbmVyaWNzID0ge30sXG4gID4oXG4gICAgdGhpczogUixcbiAgICBvcHRpb25zOiBSZXNvdXJjZUVuZHBvaW50RXh0ZW5zaW9uczxcbiAgICAgIFIsXG4gICAgICBHZXQsXG4gICAgICBHZXRMaXN0LFxuICAgICAgVXBkYXRlLFxuICAgICAgUGFydGlhbFVwZGF0ZSxcbiAgICAgIERlbGV0ZVxuICAgID4sXG4gICk6IEN1c3RvbVJlc291cmNlPFIsIE8sIEdldCwgR2V0TGlzdCwgVXBkYXRlLCBQYXJ0aWFsVXBkYXRlLCBEZWxldGU+ICZcbiAgICAvLyBrZWVwcyBtZW1iZXJzIGxpa2UgdGhvc2UgYWRkZWQgYnkgZXh0ZW5kKCdrZXknLCBvcHRpb25zKVxuICAgIE9taXQ8Uiwga2V5b2YgUmVzb3VyY2VJbnRlcmZhY2UgfCAnZXh0ZW5kJz47XG4gIGV4dGVuZDxcbiAgICBSIGV4dGVuZHMgUmVzb3VyY2VJbnRlcmZhY2UsXG4gICAgVCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIEVuZHBvaW50SW50ZXJmYWNlPixcbiAgPihcbiAgICB0aGlzOiBSLFxuICAgIGV4dGVuZGVyOiAoYmFzZVJlc291cmNlOiBSKSA9PiBULFxuICApOiBFeHRlbmRlZFJlc291cmNlPFIsIFQ+O1xufVxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
|