ngrx-entity-crud 16.0.0 → 16.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/entity_state.mjs +2 -1
- package/esm2020/lib/models.mjs +1 -1
- package/esm2020/lib/reducer.mjs +10 -2
- package/esm2020/lib/state_selectors.mjs +7 -5
- package/fesm2015/ngrx-entity-crud.mjs +13 -5
- package/fesm2015/ngrx-entity-crud.mjs.map +1 -1
- package/fesm2020/ngrx-entity-crud.mjs +16 -5
- package/fesm2020/ngrx-entity-crud.mjs.map +1 -1
- package/lib/entity_state.d.ts.map +1 -1
- package/lib/models.d.ts +18 -17
- package/lib/models.d.ts.map +1 -1
- package/lib/reducer.d.ts.map +1 -1
- package/lib/state_selectors.d.ts.map +1 -1
- package/package.json +1 -1
- package/schematics/store/files/crud-store/singular/__clazz@dasherize__-store/__clazz@dasherize__.selectors.ts +1 -0
|
@@ -17,6 +17,7 @@ export function getInitialEntityCrudState() {
|
|
|
17
17
|
export function getInitialSingleCrudState() {
|
|
18
18
|
return {
|
|
19
19
|
item: null,
|
|
20
|
+
itemSelected: null,
|
|
20
21
|
isLoading: false,
|
|
21
22
|
isLoaded: false,
|
|
22
23
|
error: null,
|
|
@@ -30,4 +31,4 @@ export function createInitialCrudStateFactory() {
|
|
|
30
31
|
}
|
|
31
32
|
return { getInitialCrudState };
|
|
32
33
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5X3N0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdyeC1lbnRpdHktY3J1ZC9zcmMvbGliL2VudGl0eV9zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUseUJBQXlCO0lBQ3ZDLE9BQU87UUFDTCxHQUFHLEVBQUUsRUFBRTtRQUNQLFFBQVEsRUFBRSxFQUFFO1FBQ1osU0FBUyxFQUFFLEtBQUs7UUFDaEIsUUFBUSxFQUFFLEtBQUs7UUFDZixLQUFLLEVBQUUsSUFBSTtRQUNYLE9BQU8sRUFBRSxFQUFFO1FBQ1gsWUFBWSxFQUFFLElBQUk7UUFDbEIsZ0JBQWdCLEVBQUUsRUFBRTtRQUNwQixXQUFXLEVBQUUsRUFBRTtRQUNmLFlBQVksRUFBRSxJQUFJO1FBQ2xCLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFNBQVMsRUFBRSxFQUFFO0tBQ2QsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCO0lBQ3ZDLE9BQU87UUFDTCxJQUFJLEVBQUMsSUFBSTtRQUNULFlBQVksRUFBQyxJQUFJO1FBQ2pCLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsS0FBSyxFQUFFLElBQUk7UUFDWCxZQUFZLEVBQUUsSUFBSTtRQUNsQixTQUFTLEVBQUUsRUFBRTtLQUNkLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLDZCQUE2QjtJQUszQyxTQUFTLG1CQUFtQixDQUFDLGtCQUF1QixFQUFFO1FBQ3BELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsQ0FBQztBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFbnRpdHlDcnVkU3RhdGUsIEVudGl0eVNpbmdsZUNydWRTdGF0ZX0gZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5pdGlhbEVudGl0eUNydWRTdGF0ZTxWPigpOiBFbnRpdHlDcnVkU3RhdGU8Vj4ge1xuICByZXR1cm4ge1xuICAgIGlkczogW10sXG4gICAgZW50aXRpZXM6IHt9LFxuICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgIGVycm9yOiBudWxsLFxuICAgIGZpbHRlcnM6IHt9LFxuICAgIGxhc3RDcml0ZXJpYTogbnVsbCxcbiAgICBlbnRpdGllc1NlbGVjdGVkOiB7fSxcbiAgICBpZHNTZWxlY3RlZDogW10sXG4gICAgaXRlbVNlbGVjdGVkOiBudWxsLFxuICAgIGlkU2VsZWN0ZWQ6IG51bGwsXG4gICAgcmVzcG9uc2VzOiBbXVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5pdGlhbFNpbmdsZUNydWRTdGF0ZTxWPigpOiBFbnRpdHlTaW5nbGVDcnVkU3RhdGU8Vj4ge1xuICByZXR1cm4ge1xuICAgIGl0ZW06bnVsbCxcbiAgICBpdGVtU2VsZWN0ZWQ6bnVsbCxcbiAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgIGlzTG9hZGVkOiBmYWxzZSxcbiAgICBlcnJvcjogbnVsbCxcbiAgICBsYXN0Q3JpdGVyaWE6IG51bGwsXG4gICAgcmVzcG9uc2VzOiBbXVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSW5pdGlhbENydWRTdGF0ZUZhY3Rvcnk8Vj4oKSB7XG4gIGZ1bmN0aW9uIGdldEluaXRpYWxDcnVkU3RhdGUoKTogRW50aXR5Q3J1ZFN0YXRlPFY+O1xuICBmdW5jdGlvbiBnZXRJbml0aWFsQ3J1ZFN0YXRlPFMgZXh0ZW5kcyBvYmplY3Q+KFxuICAgIGFkZGl0aW9uYWxTdGF0ZTogU1xuICApOiBFbnRpdHlDcnVkU3RhdGU8Vj4gJiBTO1xuICBmdW5jdGlvbiBnZXRJbml0aWFsQ3J1ZFN0YXRlKGFkZGl0aW9uYWxTdGF0ZTogYW55ID0ge30pOiBhbnkge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGdldEluaXRpYWxFbnRpdHlDcnVkU3RhdGUoKSwgYWRkaXRpb25hbFN0YXRlKTtcbiAgfVxuXG4gIHJldHVybiB7Z2V0SW5pdGlhbENydWRTdGF0ZX07XG59XG4iXX0=
|
package/esm2020/lib/models.mjs
CHANGED
|
@@ -14,4 +14,4 @@ export var ActionEnum;
|
|
|
14
14
|
ActionEnum["FAILURE"] = "Failure";
|
|
15
15
|
ActionEnum["SUCCESS"] = "Success";
|
|
16
16
|
})(ActionEnum || (ActionEnum = {}));
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdyeC1lbnRpdHktY3J1ZC9zcmMvbGliL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3REEsTUFBTSxDQUFOLElBQVksUUFPWDtBQVBELFdBQVksUUFBUTtJQUNsQiw2QkFBaUIsQ0FBQTtJQUNqQiw2QkFBaUIsQ0FBQTtJQUNqQiw2QkFBaUIsQ0FBQTtJQUNqQix5QkFBYSxDQUFBO0lBQ2IsNkJBQWlCLENBQUE7SUFDakIsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBUFcsUUFBUSxLQUFSLFFBQVEsUUFPbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxVQUtYO0FBTEQsV0FBWSxVQUFVO0lBQ3BCLG1DQUFxQixDQUFBO0lBQ3JCLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxVQUFVLEtBQVYsVUFBVSxRQUtyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RW50aXR5QWRhcHRlciwgRW50aXR5U3RhdGV9IGZyb20gJ0BuZ3J4L2VudGl0eSc7XG5pbXBvcnQge0FjdGlvbiwgQWN0aW9uQ3JlYXRvciwgTWVtb2l6ZWRTZWxlY3Rvcn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuXG4vLyBDT1BJQVRPIERBIEBuZ3J4L3N0b3JlL3NyYy9tb2RlbHNcbi8vIHNlIHZpZW5lIGltcG9ydGF0byBkYSBAbmdyeC9zdG9yZS9zcmMvbW9kZWxzLCBkYSBlcnJvcmkgbmVpIHByb2dldHRpIGRvdmUgdmllbmUgdXRpbGl6emF0by5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUeXBlZEFjdGlvbjxUIGV4dGVuZHMgc3RyaW5nPiBleHRlbmRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGU6IFQ7XG59XG5cbi8vIENPUElBVE8gREEgQG5ncngvc3RvcmUvc3JjL21vZGVsc1xuLy8gc2UgdmllbmUgaW1wb3J0YXRvIGRhIEBuZ3J4L2VudGl0eS9zcmMvbW9kZWxzLCBkYSBlcnJvcmkgbmVpIHByb2dldHRpIGRvdmUgdmllbmUgdXRpbGl6emF0by5cbmV4cG9ydCBpbnRlcmZhY2UgRGljdGlvbmFyeU51bTxUPiB7XG4gIFtpZDogbnVtYmVyXTogVCB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgRGljdGlvbmFyeTxUPiBpbXBsZW1lbnRzIERpY3Rpb25hcnlOdW08VD4ge1xuICBbaWQ6IHN0cmluZ106IFQgfCB1bmRlZmluZWQ7XG59XG5cbi8vIENPUElBVE8gREEgQG5ncngvc3RvcmUvc3JjL21vZGVsc1xuLy8gc2UgdmllbmUgaW1wb3J0YXRvIGRhIEBuZ3J4L2VudGl0eS9zcmMvbW9kZWxzLCBkYSBlcnJvcmkgbmVpIHByb2dldHRpIGRvdmUgdmllbmUgdXRpbGl6emF0by5cbmV4cG9ydCB0eXBlIElkU2VsZWN0b3JTdHI8VD4gPSAobW9kZWw6IFQpID0+IHN0cmluZztcbmV4cG9ydCB0eXBlIElkU2VsZWN0b3JOdW08VD4gPSAobW9kZWw6IFQpID0+IG51bWJlcjtcbi8vIENPUElBVE8gREEgQG5ncngvc3RvcmUvc3JjL21vZGVsc1xuLy8gc2UgdmllbmUgaW1wb3J0YXRvIGRhIEBuZ3J4L2VudGl0eS9zcmMvbW9kZWxzLCBkYSBlcnJvcmkgbmVpIHByb2dldHRpIGRvdmUgdmllbmUgdXRpbGl6emF0by5cbmV4cG9ydCB0eXBlIElkU2VsZWN0b3I8VD4gPSBJZFNlbGVjdG9yU3RyPFQ+IHwgSWRTZWxlY3Rvck51bTxUPjtcblxuLy8gcGVyIGV2aXRhcmUgbCdpbXBvcnRhemlvbmVcbi8vIGltcG9ydCB7Q29tcGFyZXIsIEVudGl0eUFkYXB0ZXIsIElkU2VsZWN0b3J9IGZyb20gJ0BuZ3J4L2VudGl0eS9zcmMvbW9kZWxzJztcbi8vIGhvIGNvcGlhdG8gaSBzZWd1ZW50aSB0eXBlXG5leHBvcnQgZGVjbGFyZSB0eXBlIENvbXBhcmVyU3RyPFQ+ID0gKGE6IFQsIGI6IFQpID0+IHN0cmluZztcbmV4cG9ydCBkZWNsYXJlIHR5cGUgQ29tcGFyZXI8VD4gPSAoYTogVCwgYjogVCkgPT4gbnVtYmVyO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVNlbGVjdG9yczxULCBWPiB7XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGEgZ3JvdXAgb2YgaWRzXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IHN0cmluZ1tdIHwgbnVtYmVyW11cbiAgICovXG4gIHNlbGVjdElkczogKHN0YXRlOiBWKSA9PiBzdHJpbmdbXSB8IG51bWJlcltdO1xuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBhIGdyb3VwIG9mIGVudGl0aWVzXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IERpY3Rpb25hcnk8VD5cbiAgICovXG4gIHNlbGVjdEVudGl0aWVzOiAoc3RhdGU6IFYpID0+IERpY3Rpb25hcnk8VD47XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGFsbCBpdGVtc1xuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBUW11cbiAgICovXG4gIHNlbGVjdEFsbDogKHN0YXRlOiBWKSA9PiBUW107XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IHRoZSBzdW0gb2YgaXRlbXNcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4gbnVtYmVyXG4gICAqL1xuICBzZWxlY3RUb3RhbDogKHN0YXRlOiBWKSA9PiBudW1iZXI7XG59XG5cbmV4cG9ydCBlbnVtIENydWRFbnVtIHtcbiAgU0VBUkNIID0gJ1NlYXJjaCcsXG4gIERFTEVURSA9ICdEZWxldGUnLFxuICBDUkVBVEUgPSAnQ3JlYXRlJyxcbiAgRURJVCA9ICdFZGl0JyxcbiAgU0VMRUNUID0gJ1NlbGVjdCcsXG4gIFJFU0VUID0gJ1Jlc2V0Jyxcbn1cblxuZXhwb3J0IGVudW0gQWN0aW9uRW51bSB7XG4gIFJFU1BPTlNFID0gJ1Jlc3BvbnNlJyxcbiAgUkVRVUVTVCA9ICdSZXF1ZXN0JyxcbiAgRkFJTFVSRSA9ICdGYWlsdXJlJyxcbiAgU1VDQ0VTUyA9ICdTdWNjZXNzJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRSZXF1ZXN0QmFzZSB7XG4gIC8qKlxuICAgKiBpcyBhZGRlZCB0byB0aGUgc2VydmljZSByb3V0ZSxcbiAgICogaW4gc29tZSBjYXNlcyBpdCBpcyBuZWNlc3NhcnkgdG8gaW52b2tlIGEgc3ViLXJvdXRlLlxuICAgKiBpZiB0aGUgc2VydmljZSB3YXMgXCJ1c2VyXCIgYW5kIHRoZSBzdWItcm91dGUgXCJ1c2VyL2FjY2VwdFwiOlxuICAgKiBwYXRoOltcImFjY2VwdFwiXVxuICAgKi9cbiAgcGF0aD86IGFueVtdO1xuICAvKipcbiAgICogRGlzcGF0Y2hlZCBhY3Rpb25zIGluIGNhc2Ugb2YgZXJyb3IuXG4gICAqL1xuICBvbkZhdWx0PzogQWN0aW9uW107XG4gIC8qKlxuICAgKiBEaXNwYXRjaGVkIGFjdGlvbnMgaW4gdGhlIGV2ZW50IG9mIGEgcG9zaXRpdmUgcmVzcG9uc2VcbiAgICovXG4gIG9uUmVzdWx0PzogQWN0aW9uW107XG5cbiAgLyoqXG4gICAqIHNlIHRydWUsIGFsIGNvbXBsZXRhbWVudG8gZGVsbGEgY2hpYW1hdGEgYXNpbmNyb25hLCB2ZXJyw6AgaW52aWF0YSB1bidhemlvbmUgZGkgdGlwbyBSZXNwb25zZSxcbiAgICogY29udGVuZW50ZSBsZSBpbmZvcm1hemlvbmkgc3VsbGEgY2hpYW1hdGEgZSBsYSByaXNwb3N0YS5cbiAgICogSW4gcXVlc3RvIG1vZG8gc2Fyw6AgcG9zc2liaWxlIGFuYWxpenphcmUgbCdhbmRhbWVudG9cbiAgICovXG4gIGRpc3BhdGNoUmVzcG9uc2U/OiBib29sZWFuO1xuICBcbiAgLyoqXG4gICogdXNlZCB0byBvdmVycmlkZSB0aGUgcm9vdCBvZiB0aGUgc2VydmljZSBcbiAgKi9cbiAgYmFzZVBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogLSBjcml0ZXJpYTogSUNyaXRlcmlhOiBjcml0ZXJpYSBkaSByaWNlcmNhXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNyaXRlcmlhPFFQID0gYW55PiBleHRlbmRzIE9wdFJlcXVlc3RCYXNlIHtcbiAgLyoqXG4gICAqXG4gICAqIFwiUkVGUkVTSFwiIHRoZSBzdG9yZSB3aWxsIGJlIGRlbGV0ZWQgYmVmb3JlIG1ha2luZyB0aGUgcmVtb3RlIGNhbGwsIGFsbCB0aGUgZWxlbWVudHMgd2lsbCBiZSBhZGRlZCB0byB0aGUgY2FsbCByZXN1bHQuXG4gICAqXG4gICAqL1xuICBtb2RlPzogJ1JFRlJFU0gnIHwgJ3Vwc2VydE1hbnknIHwgJ3Vwc2VydE1hbnktdXBkYXRlTWFueS1zZWxlY3RlZCcgfCAnYWRkQWxsJztcblxuICBxdWVyeVBhcmFtcz86IFFQO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wdFJlcXVlc3Q8VCA9IGFueT4gZXh0ZW5kcyBPcHRSZXF1ZXN0QmFzZSB7XG4gIG11dGF0aW9uUGFyYW1zOiBUO1xuICAvKipcbiAgICogb3B0aW9ucyBvcHRpb25hbFxuICAgKi9cbiAgb3B0aW9ucz86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRSZXNwb25zZTxUPiB7XG4gIGFjdGlvblR5cGU6IHN0cmluZztcbiAgcmVzcG9uc2U6IFJlc3BvbnNlPFQ+O1xuICByZXF1ZXN0OiBJQ3JpdGVyaWEgfCBPcHRSZXF1ZXN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wdEVmZmVjdCB7XG4gIC8qKlxuICAgKiBwZXIgb2duaSBzdHJpbmdhIHByZXNlbnRlIG5lbGwnYXR0cmlidXRvLCB2ZXJyw6Agc3BlZGl0YSB1bmEgbm90aWZpY2EgUmVzcG9uc2UuXG4gICAqIGluIHF1ZXN0byBtb2RvLCBjaGkgaW52aWEgbGEgbm90aWZpY2EgcG90csOgIHBvaSBmaWx0cmFyZSBpIGRhdGkgaW4gYmFzZSBhbGxhIGNoaWF2ZSBpbnZpYXRhLlxuICAgKi9cbiAgZGlzcGF0Y2hSZXNwb25zZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2U8VD4ge1xuICBkYXRhOiBUIHwgYW55O1xuICBoYXNFcnJvcjogYm9vbGVhbjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlck1ldGFkYXRhIHtcbiAgdmFsdWU/OiBhbnk7XG4gIG1hdGNoTW9kZT86IHN0cmluZztcbiAgcmVuZGVyRnVuY3Rpb24/OiAodmFsdWU6IGFueSkgPT4gc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENydWRCYXNlU3RhdGU8VD4ge1xuICBlcnJvcjogc3RyaW5nO1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIGlzTG9hZGVkOiBib29sZWFuO1xuICBsYXN0Q3JpdGVyaWE6IElDcml0ZXJpYTtcbiAgcmVzcG9uc2VzOiBPcHRSZXNwb25zZTxUPltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpbmdsZUNydWRTdGF0ZTxUPiBleHRlbmRzIENydWRCYXNlU3RhdGU8VD4ge1xuICBpdGVtOiBUXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3J1ZFN0YXRlPFQ+IGV4dGVuZHMgQ3J1ZEJhc2VTdGF0ZTxUPiwgRW50aXR5U3RhdGU8VD4ge1xuICBmaWx0ZXJzOiB7IFtzOiBzdHJpbmddOiBGaWx0ZXJNZXRhZGF0YTsgfTtcbiAgaWRzU2VsZWN0ZWQ6IHN0cmluZ1tdIHwgbnVtYmVyW107XG4gIGl0ZW1TZWxlY3RlZDogVDtcbiAgaWRTZWxlY3RlZDogc3RyaW5nIHwgbnVtYmVyO1xuICBlbnRpdGllc1NlbGVjdGVkOiBEaWN0aW9uYXJ5PFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUNydWRCYXNlU2VsZWN0b3JzPFQsIFY+IHtcblxuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBsYXN0IGNyaXRlcmlhXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IElDcml0ZXJpYVxuICAgKi9cbiAgc2VsZWN0TGFzdENyaXRlcmlhOiAoc3RhdGU6IFYpID0+IElDcml0ZXJpYTtcbiAgLyoqXG4gICAqIC0gdXNlZCB0byBzZWxlY3QgYW4gZXJyb3JcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4gc3RyaW5nXG4gICAqL1xuICBzZWxlY3RFcnJvcjogKHN0YXRlOiBWKSA9PiBzdHJpbmc7XG4gIC8qKlxuICAgKiAtIHJldHVybnMgdHJ1ZSBpZiB0aGVyZSBhcmUgY2FsbHMgaW4gcHJvZ3Jlc3NcbiAgICogQEBwYXJhbSAoc3RhdGU6IFYpID0+IGJvb2xlYW5cbiAgICovXG4gIHNlbGVjdElzTG9hZGluZzogKHN0YXRlOiBWKSA9PiBib29sZWFuO1xuICAvKipcbiAgICogLSByZXR1cm5zIHRydWUgaWYgYWxsIGNhbGxzIGFyZSBjb21wbGV0ZWRcbiAgICogQEBwYXJhbSAoc3RhdGU6IFYpID0+IGJvb2xlYW5cbiAgICovXG4gIHNlbGVjdElzTG9hZGVkOiAoc3RhdGU6IFYpID0+IGJvb2xlYW47XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IHJlc3BvbnNlIHZhcmlhYmxlIGNvbnRhaW5lZCBpbiB0aGUgZm9ybXVsYVxuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBPcHRSZXNwb25zZTxUPltdXG4gICAqL1xuICBzZWxlY3RSZXNwb25zZXM6IChzdGF0ZTogVikgPT4gT3B0UmVzcG9uc2U8VD5bXTtcblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVNpbmdsZUNydWRTZWxlY3RvcnM8VCwgVj4gZXh0ZW5kcyBFbnRpdHlDcnVkQmFzZVNlbGVjdG9yczxULCBWPiB7XG4gIHNlbGVjdEl0ZW06IChzdGF0ZTogVikgPT4gVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlDcnVkU2VsZWN0b3JzPFQsIFY+IGV4dGVuZHMgRW50aXR5Q3J1ZEJhc2VTZWxlY3RvcnM8VCwgVj4sIEVudGl0eVNlbGVjdG9yczxULCBWPiB7XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IHNlbGVjdGVkIGlkXG4gICAqIC0gcG9wdWxhdGVkIHdpdGggYWN0aW9uIFwiLi4uU2VsZWN0ZWRJdGVtKHtpdGVtfSlcIixcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4gc3RyaW5nIHwgbnVtYmVyXG4gICAqL1xuICBzZWxlY3RJZFNlbGVjdGVkOiAoc3RhdGU6IFYpID0+IHN0cmluZyB8IG51bWJlcjtcbiAgLyoqXG4gICAqIC0gdXNlZCB0byBzZWxlY3Qgc2VsZWN0ZWQgaWRzXG4gICAqIC0gcG9wdWxhdGVkIHdpdGggYWN0aW9uIFwiLi4uU2VsZWN0ZWRJdGVtcyh7aXRlbX0pXCIsXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IHN0cmluZ1tdIHwgbnVtYmVyW11cbiAgICovXG4gIHNlbGVjdElkc1NlbGVjdGVkOiAoc3RhdGU6IFYpID0+IHN0cmluZ1tdIHwgbnVtYmVyW107XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IHNlbGVjdGVkSXRlbVxuICAgKiAtIHBvcHVsYXRlZCB3aXRoIGFjdGlvbiBcIi4uLlNlbGVjdGVkSXRlbXMoe2l0ZW19KVwiLFxuICAgKiAtIGxvY2FsIGNsb25lLCBkb2VzIG5vdCBtYXRjaCB0aGUgaW5zdGFuY2UgaW4gdGhlIHN0b3JlXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IFRcbiAgICovXG4gIHNlbGVjdEl0ZW1TZWxlY3RlZDogKHN0YXRlOiBWKSA9PiBUO1xuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBzZWxlY3RlZCBpdGVtXG4gICAqIC0gcG9wdWxhdGVkIHdpdGggYWN0aW9uIFwiLi4uU2VsZWN0ZWRJdGVtcyh7aXRlbTp7aWQ6c3RyaW5nIC4uLn19KVwiLFxuICAgKiAtIHNhbWUgaW5zdGFuY2Ugb2YgdGhlIHN0b3JlIChzdGF0ZS5lbnRpdGllcylcbiAgICogLSB0aGUgc2VsZWN0b3IgaXMgY3JlYXRlZCB3aXRoOlxuICAgKiAgICAtIHNlbGVjdElkU2VsZWN0ZWQgKyBzZWxlY3RFbnRpdGllcyxcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4gVFxuICAgKi9cbiAgc2VsZWN0SXRlbVNlbGVjdGVkT3JpZ2luOiAoc3RhdGU6IFYpID0+IFQ7XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGEgZ3JvdXAgb2Ygc2VsZWN0ZWQgaXRlbXNcbiAgICogLSBwb3B1bGF0ZWQgd2l0aCBhY3Rpb24gXCIuLi5TZWxlY3RlZEl0ZW1zKHtpdGVtfSlcIixcbiAgICogLSBsb2NhbCBjbG9uZSwgZG9lcyBub3QgbWF0Y2ggdGhlIGluc3RhbmNlIGluIHRoZSBzdG9yZVxuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBUW11cbiAgICovXG4gIHNlbGVjdEl0ZW1zU2VsZWN0ZWQ6IChzdGF0ZTogVikgPT4gVFtdO1xuXG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGEgZ3JvdXAgb2Ygc2VsZWN0ZWQgZW50aXRpZXNcbiAgICogLSBwb3B1bGF0ZWQgd2l0aCBhY3Rpb24gXCIuLi5TZWxlY3RlZEl0ZW1zKHtpdGVtfSlcIixcbiAgICogLSBsb2NhbCBjbG9uZSwgZG9lcyBub3QgbWF0Y2ggdGhlIGluc3RhbmNlIGluIHRoZSBzdG9yZVxuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBEaWN0aW9uYXJ5PFQ+XG4gICAqL1xuICBzZWxlY3RFbnRpdGllc1NlbGVjdGVkOiAoc3RhdGU6IFYpID0+IERpY3Rpb25hcnk8VD47XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGEgZ3JvdXAgb2Ygc2VsZWN0ZWQgaXRlbXNcbiAgICogLSBwb3B1bGF0ZWQgd2l0aCBhY3Rpb24gXCIuLi5TZWxlY3RlZEl0ZW1zKHtpdGVtfSlcIixcbiAgICogLSBzYW1lIGluc3RhbmNlIG9mIHRoZSBzdG9yZSAoc3RhdGUuZW50aXRpZXMpXG4gICAqICAgIC0gc2VsZWN0SWRzU2VsZWN0ZWQgKyBzZWxlY3RFbnRpdGllcyxcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4gVFtdXG4gICAqL1xuICBzZWxlY3RJdGVtc1NlbGVjdGVkT3JpZ2luOiAoc3RhdGU6IFYpID0+IFRbXTtcbiAgLyoqXG4gICAqIC0gdXNlZCB0byBzZWxlY3QgZmlsdGVyc1xuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiB7W3M6IHN0cmluZ106IEZpbHRlck1ldGFkYXRhO31cbiAgICovXG4gIHNlbGVjdEZpbHRlcnM6IChzdGF0ZTogVikgPT4geyBbczogc3RyaW5nXTogRmlsdGVyTWV0YWRhdGE7IH07XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGZpbHRlcmVkIGl0ZW1zXG4gICAqIEBwYXJhbSBNZW1vaXplZFNlbGVjdG9yPFYsIFRbXT5cbiAgICovXG4gIHNlbGVjdEZpbHRlcmVkSXRlbXM6IE1lbW9pemVkU2VsZWN0b3I8ViwgVFtdPjtcblxufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5Q3J1ZEJhc2VTdGF0ZTxUPiB7XG4gIGVycm9yOiBzdHJpbmc7XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgaXNMb2FkZWQ6IGJvb2xlYW47XG4gIGxhc3RDcml0ZXJpYTogSUNyaXRlcmlhO1xuICAvLyBvZ25pIGVudGl0w6AgcmVnaXN0cmEgbCdhemlvbmUgc2NhdGVuYXRhIGUgbGEgcmlzcG9zdGEgZGFsIHNlcnZlci5cbiAgcmVzcG9uc2VzOiBPcHRSZXNwb25zZTxUPltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVNpbmdsZUNydWRTdGF0ZTxUPiBleHRlbmRzIEVudGl0eUNydWRCYXNlU3RhdGU8VD4ge1xuICBpdGVtOiBUXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5Q3J1ZFN0YXRlPFQ+IGV4dGVuZHMgRW50aXR5Q3J1ZEJhc2VTdGF0ZTxUPiwgRW50aXR5U3RhdGU8VD4ge1xuICBmaWx0ZXJzOiB7IFtzOiBzdHJpbmddOiBGaWx0ZXJNZXRhZGF0YTsgfTtcbiAgaXRlbVNlbGVjdGVkOiBUO1xuICBpZFNlbGVjdGVkOiBzdHJpbmcgfCBudW1iZXI7XG5cbiAgZW50aXRpZXNTZWxlY3RlZDogRGljdGlvbmFyeTxUPjtcblxuICBpZHNTZWxlY3RlZDogc3RyaW5nW10gfCBudW1iZXJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlDcnVkQWRhcHRlcjxUPiBleHRlbmRzIEVudGl0eUFkYXB0ZXI8VD4ge1xuICBnZXRJbml0aWFsQ3J1ZFN0YXRlKCk6IEVudGl0eUNydWRTdGF0ZTxUPjtcblxuICBnZXRJbml0aWFsQ3J1ZFN0YXRlPFMgZXh0ZW5kcyBvYmplY3Q+KHN0YXRlOiBTKTogRW50aXR5Q3J1ZFN0YXRlPFQ+ICYgUztcblxuICBnZXRDcnVkU2VsZWN0b3JzPFY+KHNlbGVjdFN0YXRlOiAoc3RhdGU6IFYpID0+IEVudGl0eUNydWRTdGF0ZTxUPik6IEVudGl0eUNydWRTZWxlY3RvcnM8VCwgVj47XG5cbiAgY3JlYXRlQ3J1ZEFjdGlvbnMobmFtZTogc3RyaW5nKTogQWN0aW9uczxUPjtcblxuICAvLyB0b2RvIG1vZGlmaWNhcmUgbGEgZmlybWEgZGVsIG1ldG9kbywgdGlwaXp6YXJlIEFjdGlvbnM8YW55PlxuICBjcmVhdGVDcnVkUmVkdWNlcjxTPihpbml0aWFsU3RhdGU6IFMsIGFjdGlvbnM6IEFjdGlvbnM8YW55Pik7XG59XG5cbmludGVyZmFjZSBQcm9wc1NlYXJjaFN1Y2Nlc3M8VD4ge1xuICBpdGVtczogVDtcbiAgcmVxdWVzdDogSUNyaXRlcmlhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpbmd1bGFyQWN0aW9uczxUPiB7XG4gIC8vIGF6aW9uZSBkaXNwYWNjaWF0YSBkYWxsJ2VmZmVjdCBzZTpcbiAgLy8gT3B0UmVxdWVzdEJhc2UuZGlzcGF0Y2hSZXNwb25zZSA9PT0gdHJ1ZVxuICAvLyBPcHRFZmZlY3QuZGlzcGF0Y2hSZXNwb25zZSA9PT0gdHJ1ZVxuICBSZXNwb25zZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogT3B0UmVzcG9uc2U8VCB8IFRbXT4pID0+IE9wdFJlc3BvbnNlPFQgfCBUW10+ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIFJlc2V0UmVzcG9uc2VzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKCkgPT4geyB0eXBlOiBzdHJpbmc7IH0+O1xuXG4gIC8qKlxuICAgKiAgLSBhY3Rpb24gdXNlZCB0byBleGVjdXRlIGEgcmVxdWVzdCB0byBzZWxlY3QgYW4gaXRlbVxuICAgKiBAZXhhbXBsZSBzdG9yZS5kaXNwYXRjaChhY3Rpb25zLlNlbGVjdFJlcXVlc3QocGF5bG9hZCkpO1xuICAgKiBAcGFyYW0gaXRlbTogVFxuICAgKiBAcGFyYW0gcGF0aD86IGFueVtdXG4gICAqIEBwYXJhbSBvbkZhdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIG9uUmVzdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIGRpc3BhdGNoUmVzcG9uc2U/OiBib29sZWFuXG4gICAqL1xuICBTZWxlY3RSZXF1ZXN0OiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiBJQ3JpdGVyaWEpID0+IElDcml0ZXJpYSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBTZWxlY3RGYWlsdXJlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGVycm9yOiBzdHJpbmc7IH0pID0+IHsgZXJyb3I6IHN0cmluZzsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBTZWxlY3RTdWNjZXNzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW06IFQsIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSkgPT4geyBpdGVtOiBULCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcblxuXG4gIC8qKlxuICAgKiAgLSBhY3Rpb24gdXNlZCB0byBleGVjdXRlIGEgcmVxdWVzdCB0byBtb2RpZnkgYW4gaXRlbVxuICAgKiBAZXhhbXBsZSBzdG9yZS5kaXNwYXRjaChhY3Rpb25zLkVkaXRSZXF1ZXN0KHBheWxvYWQpKTtcbiAgICogQHBhcmFtIGl0ZW06IFRcbiAgICogQHBhcmFtIHBhdGg/OiBhbnlbXVxuICAgKiBAcGFyYW0gb25GYXVsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBvblJlc3VsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBkaXNwYXRjaFJlc3BvbnNlPzogYm9vbGVhblxuICAgKi9cbiAgRWRpdFJlcXVlc3Q6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IE9wdFJlcXVlc3QpID0+IE9wdFJlcXVlc3QgJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgRWRpdEZhaWx1cmU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgZXJyb3I6IHN0cmluZzsgfSkgPT4geyBlcnJvcjogc3RyaW5nOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIEVkaXRTdWNjZXNzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW06IFQsIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSkgPT4geyBpdGVtOiBULCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcblxuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byBleGVjdXRlIGEgc3RvcmUgcmVzZXRcbiAgICogQGV4YW1wbGUgc3RvcmUuZGlzcGF0Y2goYWN0aW9ucy5SZXNldCgpKTtcbiAgICogQHBhcmFtIHR5cGU6IHN0cmluZ1xuICAgKi9cbiAgUmVzZXQ6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAoKSA9PiB7IHR5cGU6IHN0cmluZzsgfT47XG5cbiAgLyoqXG4gICAqIC0gYWN0aW9uIHVzZWQgdG8gbW9kaWZ5IGFuIGl0ZW0gb24gdGhlIHN0b3JlXG4gICAqIEBleGFtcGxlIHN0b3JlLmRpc3BhdGNoKGFjdGlvbnMuRWRpdChwYXlsb2FkKSk7XG4gICAqIEBwYXJhbSBpdGVtOiBUXG4gICAqL1xuICBFZGl0OiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW06IFQ7IH0pID0+IHsgaXRlbTogVDsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbnM8VD4gZXh0ZW5kcyBTaW5ndWxhckFjdGlvbnM8VD4ge1xuXG4gIC8qKlxuICAgKiAtIGFjdGlvbiB1c2VkIHRvIGV4ZWN1dGUgYXN5bmNocm9ub3VzIHJlc2VhcmNoZXNcbiAgICogQGV4YW1wbGUgU3RvcmVBY3Rpb25zLlNlYXJjaFJlcXVlc3Qoe3F1ZXJ5UGFyYW1zOiB7fX0pXG4gICAqIC0gbW9kZT86ICdSRUZSRVNIJzogc2UgdmllbmUgcGFzc2F0byBpbCB2YWxvcmUgUkVGUkVTSCwgaWwgZGF0byBwcmVzZW50ZSBuZWxsbyBzdG9yZSB2aWVuZSBjYW5jZWxsYXRvIHByaW1hIGRpIGVzZWd1aXJlIGxhIGNoaWFtYXRhLFxuICAgKiAgICAgICAgYWx0cmltZW50aSBpbCBkYXRvIHZlcnLDoCBzb3N0aXR1aXRvIGFsIHJlc3VsdCBkZWxsYSBjaGlhbWF0YVxuICAgKiBAcGFyYW0gbW9kZT86ICdSRUZSRVNIJyB8ICd1cHNlcnRNYW55JyB8ICdhZGRBbGwnXG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtcz86IGFueVxuICAgKiBAcGFyYW0gcGF0aD86IGFueVtdXG4gICAqIEBwYXJhbSBvbkZhdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIG9uUmVzdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIGRpc3BhdGNoUmVzcG9uc2U/OiBib29sZWFuXG4gICAqIEBwYXJhbSB0eXBlOiBzdHJpbmdcbiAgICpcbiAgICovXG4gIFNlYXJjaFJlcXVlc3Q6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IElDcml0ZXJpYSkgPT4gSUNyaXRlcmlhICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIFNlYXJjaEZhaWx1cmU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgZXJyb3I6IHN0cmluZzsgfSkgPT4geyBlcnJvcjogc3RyaW5nOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIFNlYXJjaFN1Y2Nlc3M6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgaXRlbXM6IFRbXSwgcmVxdWVzdDogSUNyaXRlcmlhIH0pID0+IHsgaXRlbXM6IFRbXSwgcmVxdWVzdDogSUNyaXRlcmlhIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcblxuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byBleGVjdXRlIGEgcmVxdWVzdCB0byByZW1vdmUgYW4gaXRlbVxuICAgKiBAZXhhbXBsZSBjb25zdCB0b1N0YXRlOiBTdGF0ZSA9IGZlYXR1cmVSZWR1Y2VyKHN0YXRlLCBhY3Rpb25zLkRlbGV0ZVJlcXVlc3QocGF5bG9hZCkpO1xuICAgKiBAcGFyYW0gaXRlbTogVFxuICAgKiBAcGFyYW0gcGF0aD86IGFueVtdXG4gICAqIEBwYXJhbSBvbkZhdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIG9uUmVzdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIGRpc3BhdGNoUmVzcG9uc2U/OiBib29sZWFuXG4gICAqL1xuICBEZWxldGVSZXF1ZXN0OiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiBPcHRSZXF1ZXN0KSA9PiBPcHRSZXF1ZXN0ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIERlbGV0ZUZhaWx1cmU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgZXJyb3I6IHN0cmluZzsgfSkgPT4geyBlcnJvcjogc3RyaW5nOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIERlbGV0ZVN1Y2Nlc3M6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgaWQ6IHN0cmluZywgcmVxdWVzdDogT3B0UmVxdWVzdCB9KSA9PiB7IGlkOiBzdHJpbmcsIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuXG4gIC8qKlxuICAgKiAtIGFjdGlvbiB1c2VkIHRvIGV4ZWN1dGUgYSByZXF1ZXN0IHRvIHJlbW92ZSBtb3JlIGl0ZW1zXG4gICAqIEBleGFtcGxlIHRoaXMuc3RvcmUkLmRpc3BhdGNoKDwlPSBjbGF6eiAlPlN0b3JlQWN0aW9ucy5EZWxldGVNYW55UmVxdWVzdCh7aXRlbXN9KSk7XG4gICAqIEBwYXJhbSBpdGVtczogVFtdXG4gICAqIEBwYXJhbSBwYXRoPzogYW55W11cbiAgICogQHBhcmFtIG9uRmF1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gb25SZXN1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gZGlzcGF0Y2hSZXNwb25zZT86IGJvb2xlYW5cbiAgICovXG4gIERlbGV0ZU1hbnlSZXF1ZXN0OiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiBPcHRSZXF1ZXN0KSA9PiBPcHRSZXF1ZXN0ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIERlbGV0ZU1hbnlGYWlsdXJlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGVycm9yOiBzdHJpbmc7IH0pID0+IHsgZXJyb3I6IHN0cmluZzsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBEZWxldGVNYW55U3VjY2VzczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpZHM6IHN0cmluZ1tdLCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0pID0+IHsgaWRzOiBzdHJpbmdbXSwgcmVxdWVzdDogT3B0UmVxdWVzdCB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG5cbiAgLyoqXG4gICAqIC0gYWN0aW9uIHVzZWQgdG8gZXhlY3V0ZSBhIHJlcXVlc3QgdG8gY3JlYXRlIGEgbmV3IGl0ZW1cbiAgICogQGV4YW1wbGUgIHN0b3JlLmRpc3BhdGNoKGFjdGlvbnMuQ3JlYXRlUmVxdWVzdChwYXlsb2FkKSk7XG4gICAqIEBwYXJhbSBpdGVtOiBUXG4gICAqIEBwYXJhbSBwYXRoPzogYW55W11cbiAgICogQHBhcmFtIG9uRmF1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gb25SZXN1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gZGlzcGF0Y2hSZXNwb25zZT86IGJvb2xlYW5cbiAgICovXG4gIENyZWF0ZVJlcXVlc3Q6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IE9wdFJlcXVlc3QpID0+IE9wdFJlcXVlc3QgJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgQ3JlYXRlRmFpbHVyZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBlcnJvcjogc3RyaW5nOyB9KSA9PiB7IGVycm9yOiBzdHJpbmc7IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgQ3JlYXRlU3VjY2VzczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpdGVtOiBULCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0pID0+IHsgaXRlbTogVCwgcmVxdWVzdDogT3B0UmVxdWVzdCB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG5cbiAgLyoqXG4gICAqIC0gYWN0aW9uIHVzZWQgdG8gZXhlY3V0ZSBhIHJlcXVlc3QgdG8gY3JlYXRlIG1vcmUgbmV3IGl0ZW1zXG4gICAqIEBleGFtcGxlIHN0b3JlLmRpc3BhdGNoKGFjdGlvbnMuQ3JlYXRlTWFueVJlcXVlc3QocGF5bG9hZCkpO1xuICAgKiBAcGFyYW0gaXRlbXM6IFRbXVxuICAgKiBAcGFyYW0gcGF0aD86IGFueVtdXG4gICAqIEBwYXJhbSBvbkZhdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIG9uUmVzdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIGRpc3BhdGNoUmVzcG9uc2U/OiBib29sZWFuXG4gICAqL1xuICBDcmVhdGVNYW55UmVxdWVzdDogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogT3B0UmVxdWVzdDxUW10gfCBUPikgPT4gT3B0UmVxdWVzdDxUW10gfCBUPiAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBDcmVhdGVNYW55RmFpbHVyZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBlcnJvcjogc3RyaW5nOyB9KSA9PiB7IGVycm9yOiBzdHJpbmc7IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgQ3JlYXRlTWFueVN1Y2Nlc3M6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgaXRlbXM6IFRbXSwgcmVxdWVzdDogT3B0UmVxdWVzdCB9KSA9PiB7IGl0ZW1zOiBUW10sIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuXG4gIC8qKlxuICAgKiAgLSBhY3Rpb24gdXNlZCB0byBleGVjdXRlIGEgcmVxdWVzdCB0byBtb2RpZnkgbW9yZSBpdGVtc1xuICAgKiBAZXhhbXBsZSBzdG9yZS5kaXNwYXRjaChhY3Rpb25zLkVkaXRNYW55UmVxdWVzdChwYXlsb2FkKSk7XG4gICAqIEBwYXJhbSBpdGVtczogVFtdXG4gICAqIEBwYXJhbSBwYXRoPzogYW55W11cbiAgICogQHBhcmFtIG9uRmF1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gb25SZXN1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gZGlzcGF0Y2hSZXNwb25zZT86IGJvb2xlYW5cbiAgICovXG4gIEVkaXRNYW55UmVxdWVzdDogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogT3B0UmVxdWVzdCkgPT4gT3B0UmVxdWVzdCAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBFZGl0TWFueUZhaWx1cmU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgZXJyb3I6IHN0cmluZzsgfSkgPT4geyBlcnJvcjogc3RyaW5nOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIEVkaXRNYW55U3VjY2VzczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpdGVtczogVFtdLCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0pID0+IHsgaXRlbXM6IFRbXSwgcmVxdWVzdDogT3B0UmVxdWVzdCB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG5cbiAgLyoqXG4gICAqIC0gYWN0aW9uIHVzZWQgdG8gYXBwbHkgc29tZSBmaWx0ZXJzIG9uIGRhdGFcbiAgICogQGV4YW1wbGUgc3RvcmUuZGlzcGF0Y2goYWN0aW9ucy5GaWx0ZXJzKHBheWxvYWQpKTtcbiAgICogQHBhcmFtIGZpbHRlcnM6IHsgW3M6IHN0cmluZ106IEZpbHRlck1ldGFkYXRhO31cbiAgICovXG4gIEZpbHRlcnM6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgZmlsdGVyczogeyBbczogc3RyaW5nXTogRmlsdGVyTWV0YWRhdGE7IH07IH0pID0+IHsgZmlsdGVyczogeyBbczogc3RyaW5nXTogRmlsdGVyTWV0YWRhdGE7IH07IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcblxuICAvLyBzZWxlemlvbmUgbG9jYWxlIGRpICsgZWxlbWVudGlcbiAgLyoqXG4gICAqIC0gYWN0aW9uIHVzZWQgdG8gaWRlbnRpZnkgYSBncm91cCBvZiBpdGVtcyB0byBzZWxlY3RcbiAgICogQGV4YW1wbGUgc3RvcmUuZGlzcGF0Y2goYWN0aW9ucy5TZWxlY3RJdGVtcyhwYXlsb2FkKSk7XG4gICAqIEBwYXJhbSBpdGVtczogVFtdXG4gICAqL1xuICBTZWxlY3RJdGVtczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpdGVtczogVFtdOyB9KSA9PiB7IGl0ZW1zOiBUW107IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgLy8gVE9ETzogZG9jXG4gIEFkZE1hbnlTZWxlY3RlZDogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpdGVtczogVFtdOyB9KSA9PiB7IGl0ZW1zOiBUW107IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgLy8gVE9ETzogZG9jXG4gIFJlbW92ZU1hbnlTZWxlY3RlZDogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpZHM6IHN0cmluZ1tdOyB9KSA9PiB7IGlkczogc3RyaW5nW107IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgLy8gVE9ETzogZG9jXG4gIFJlbW92ZUFsbFNlbGVjdGVkOiBBY3Rpb25DcmVhdG9yPHN0cmluZz47XG4gIC8qKlxuICAgKiAtIGFjdGlvbiB1c2VkIHRvIGlkZW50aWZ5IGEgc2luZ2xlIGl0ZW0gdG8gc2VsZWN0XG4gICAqIEBleGFtcGxlIHN0b3JlLmRpc3BhdGNoKGFjdGlvbnMuU2VsZWN0SXRlbShwYXlsb2FkKSk7XG4gICAqIEBwYXJhbSBpdGVtOiBUXG4gICAqL1xuICBTZWxlY3RJdGVtOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW06IFQ7IH0pID0+IHsgaXRlbTogVDsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuXG4gIC8qKlxuICAgKiAtIGFjdGlvbiB1c2VkIHRvIGNyZWF0ZSBhbiBpdGVtIG9uIHRoZSBzdG9yZVxuICAgKiBAZXhhbXBsZSBzdG9yZS5kaXNwYXRjaChhY3Rpb25zLkNyZWF0ZShwYXlsb2FkKSk7XG4gICAqIEBwYXJhbSBpdGVtOiBUXG4gICAqL1xuICBDcmVhdGU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgaXRlbTogVDsgfSkgPT4geyBpdGVtOiBUOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG5cbiAgLyoqXG4gICAqIC0gYWN0aW9uIHVzZWQgdG8gcmVtb3ZlIGFuIGl0ZW0gb24gdGhlIHN0b3JlXG4gICAqIEBleGFtcGxlIGNvbnN0IHRvU3RhdGU6IFN0YXRlID0gZmVhdHVyZVJlZHVjZXIoZXhwZWN0U3RhdGUsIGFjdGlvbnMuRGVsZXRlKHBheWxvYWQpKTtcbiAgICogQHBhcmFtIGlkOiBzdHJpbmdcbiAgICovXG4gIERlbGV0ZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpZDogc3RyaW5nOyB9KSA9PiB7IGlkOiBzdHJpbmc7IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcblxufVxuIl19
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdyeC1lbnRpdHktY3J1ZC9zcmMvbGliL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3REEsTUFBTSxDQUFOLElBQVksUUFPWDtBQVBELFdBQVksUUFBUTtJQUNsQiw2QkFBaUIsQ0FBQTtJQUNqQiw2QkFBaUIsQ0FBQTtJQUNqQiw2QkFBaUIsQ0FBQTtJQUNqQix5QkFBYSxDQUFBO0lBQ2IsNkJBQWlCLENBQUE7SUFDakIsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBUFcsUUFBUSxLQUFSLFFBQVEsUUFPbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxVQUtYO0FBTEQsV0FBWSxVQUFVO0lBQ3BCLG1DQUFxQixDQUFBO0lBQ3JCLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxVQUFVLEtBQVYsVUFBVSxRQUtyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RW50aXR5QWRhcHRlciwgRW50aXR5U3RhdGV9IGZyb20gJ0BuZ3J4L2VudGl0eSc7XG5pbXBvcnQge0FjdGlvbiwgQWN0aW9uQ3JlYXRvciwgTWVtb2l6ZWRTZWxlY3Rvcn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuXG4vLyBDT1BJQVRPIERBIEBuZ3J4L3N0b3JlL3NyYy9tb2RlbHNcbi8vIHNlIHZpZW5lIGltcG9ydGF0byBkYSBAbmdyeC9zdG9yZS9zcmMvbW9kZWxzLCBkYSBlcnJvcmkgbmVpIHByb2dldHRpIGRvdmUgdmllbmUgdXRpbGl6emF0by5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUeXBlZEFjdGlvbjxUIGV4dGVuZHMgc3RyaW5nPiBleHRlbmRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGU6IFQ7XG59XG5cbi8vIENPUElBVE8gREEgQG5ncngvc3RvcmUvc3JjL21vZGVsc1xuLy8gc2UgdmllbmUgaW1wb3J0YXRvIGRhIEBuZ3J4L2VudGl0eS9zcmMvbW9kZWxzLCBkYSBlcnJvcmkgbmVpIHByb2dldHRpIGRvdmUgdmllbmUgdXRpbGl6emF0by5cbmV4cG9ydCBpbnRlcmZhY2UgRGljdGlvbmFyeU51bTxUPiB7XG4gIFtpZDogbnVtYmVyXTogVCB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgRGljdGlvbmFyeTxUPiBpbXBsZW1lbnRzIERpY3Rpb25hcnlOdW08VD4ge1xuICBbaWQ6IHN0cmluZ106IFQgfCB1bmRlZmluZWQ7XG59XG5cbi8vIENPUElBVE8gREEgQG5ncngvc3RvcmUvc3JjL21vZGVsc1xuLy8gc2UgdmllbmUgaW1wb3J0YXRvIGRhIEBuZ3J4L2VudGl0eS9zcmMvbW9kZWxzLCBkYSBlcnJvcmkgbmVpIHByb2dldHRpIGRvdmUgdmllbmUgdXRpbGl6emF0by5cbmV4cG9ydCB0eXBlIElkU2VsZWN0b3JTdHI8VD4gPSAobW9kZWw6IFQpID0+IHN0cmluZztcbmV4cG9ydCB0eXBlIElkU2VsZWN0b3JOdW08VD4gPSAobW9kZWw6IFQpID0+IG51bWJlcjtcbi8vIENPUElBVE8gREEgQG5ncngvc3RvcmUvc3JjL21vZGVsc1xuLy8gc2UgdmllbmUgaW1wb3J0YXRvIGRhIEBuZ3J4L2VudGl0eS9zcmMvbW9kZWxzLCBkYSBlcnJvcmkgbmVpIHByb2dldHRpIGRvdmUgdmllbmUgdXRpbGl6emF0by5cbmV4cG9ydCB0eXBlIElkU2VsZWN0b3I8VD4gPSBJZFNlbGVjdG9yU3RyPFQ+IHwgSWRTZWxlY3Rvck51bTxUPjtcblxuLy8gcGVyIGV2aXRhcmUgbCdpbXBvcnRhemlvbmVcbi8vIGltcG9ydCB7Q29tcGFyZXIsIEVudGl0eUFkYXB0ZXIsIElkU2VsZWN0b3J9IGZyb20gJ0BuZ3J4L2VudGl0eS9zcmMvbW9kZWxzJztcbi8vIGhvIGNvcGlhdG8gaSBzZWd1ZW50aSB0eXBlXG5leHBvcnQgZGVjbGFyZSB0eXBlIENvbXBhcmVyU3RyPFQ+ID0gKGE6IFQsIGI6IFQpID0+IHN0cmluZztcbmV4cG9ydCBkZWNsYXJlIHR5cGUgQ29tcGFyZXI8VD4gPSAoYTogVCwgYjogVCkgPT4gbnVtYmVyO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVNlbGVjdG9yczxULCBWPiB7XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGEgZ3JvdXAgb2YgaWRzXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IHN0cmluZ1tdIHwgbnVtYmVyW11cbiAgICovXG4gIHNlbGVjdElkczogKHN0YXRlOiBWKSA9PiBzdHJpbmdbXSB8IG51bWJlcltdO1xuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBhIGdyb3VwIG9mIGVudGl0aWVzXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IERpY3Rpb25hcnk8VD5cbiAgICovXG4gIHNlbGVjdEVudGl0aWVzOiAoc3RhdGU6IFYpID0+IERpY3Rpb25hcnk8VD47XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGFsbCBpdGVtc1xuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBUW11cbiAgICovXG4gIHNlbGVjdEFsbDogKHN0YXRlOiBWKSA9PiBUW107XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IHRoZSBzdW0gb2YgaXRlbXNcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4gbnVtYmVyXG4gICAqL1xuICBzZWxlY3RUb3RhbDogKHN0YXRlOiBWKSA9PiBudW1iZXI7XG59XG5cbmV4cG9ydCBlbnVtIENydWRFbnVtIHtcbiAgU0VBUkNIID0gJ1NlYXJjaCcsXG4gIERFTEVURSA9ICdEZWxldGUnLFxuICBDUkVBVEUgPSAnQ3JlYXRlJyxcbiAgRURJVCA9ICdFZGl0JyxcbiAgU0VMRUNUID0gJ1NlbGVjdCcsXG4gIFJFU0VUID0gJ1Jlc2V0Jyxcbn1cblxuZXhwb3J0IGVudW0gQWN0aW9uRW51bSB7XG4gIFJFU1BPTlNFID0gJ1Jlc3BvbnNlJyxcbiAgUkVRVUVTVCA9ICdSZXF1ZXN0JyxcbiAgRkFJTFVSRSA9ICdGYWlsdXJlJyxcbiAgU1VDQ0VTUyA9ICdTdWNjZXNzJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRSZXF1ZXN0QmFzZSB7XG4gIC8qKlxuICAgKiBpcyBhZGRlZCB0byB0aGUgc2VydmljZSByb3V0ZSxcbiAgICogaW4gc29tZSBjYXNlcyBpdCBpcyBuZWNlc3NhcnkgdG8gaW52b2tlIGEgc3ViLXJvdXRlLlxuICAgKiBpZiB0aGUgc2VydmljZSB3YXMgXCJ1c2VyXCIgYW5kIHRoZSBzdWItcm91dGUgXCJ1c2VyL2FjY2VwdFwiOlxuICAgKiBwYXRoOltcImFjY2VwdFwiXVxuICAgKi9cbiAgcGF0aD86IGFueVtdO1xuICAvKipcbiAgICogRGlzcGF0Y2hlZCBhY3Rpb25zIGluIGNhc2Ugb2YgZXJyb3IuXG4gICAqL1xuICBvbkZhdWx0PzogQWN0aW9uW107XG4gIC8qKlxuICAgKiBEaXNwYXRjaGVkIGFjdGlvbnMgaW4gdGhlIGV2ZW50IG9mIGEgcG9zaXRpdmUgcmVzcG9uc2VcbiAgICovXG4gIG9uUmVzdWx0PzogQWN0aW9uW107XG5cbiAgLyoqXG4gICAqIHNlIHRydWUsIGFsIGNvbXBsZXRhbWVudG8gZGVsbGEgY2hpYW1hdGEgYXNpbmNyb25hLCB2ZXJyw6AgaW52aWF0YSB1bidhemlvbmUgZGkgdGlwbyBSZXNwb25zZSxcbiAgICogY29udGVuZW50ZSBsZSBpbmZvcm1hemlvbmkgc3VsbGEgY2hpYW1hdGEgZSBsYSByaXNwb3N0YS5cbiAgICogSW4gcXVlc3RvIG1vZG8gc2Fyw6AgcG9zc2liaWxlIGFuYWxpenphcmUgbCdhbmRhbWVudG9cbiAgICovXG4gIGRpc3BhdGNoUmVzcG9uc2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAqIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIHJvb3Qgb2YgdGhlIHNlcnZpY2VcbiAgKi9cbiAgYmFzZVBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogLSBjcml0ZXJpYTogSUNyaXRlcmlhOiBjcml0ZXJpYSBkaSByaWNlcmNhXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNyaXRlcmlhPFFQID0gYW55PiBleHRlbmRzIE9wdFJlcXVlc3RCYXNlIHtcbiAgLyoqXG4gICAqXG4gICAqIFwiUkVGUkVTSFwiIHRoZSBzdG9yZSB3aWxsIGJlIGRlbGV0ZWQgYmVmb3JlIG1ha2luZyB0aGUgcmVtb3RlIGNhbGwsIGFsbCB0aGUgZWxlbWVudHMgd2lsbCBiZSBhZGRlZCB0byB0aGUgY2FsbCByZXN1bHQuXG4gICAqXG4gICAqL1xuICBtb2RlPzogJ1JFRlJFU0gnIHwgJ3Vwc2VydE1hbnknIHwgJ3Vwc2VydE1hbnktdXBkYXRlTWFueS1zZWxlY3RlZCcgfCAnYWRkQWxsJztcblxuICBxdWVyeVBhcmFtcz86IFFQO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wdFJlcXVlc3Q8VCA9IGFueT4gZXh0ZW5kcyBPcHRSZXF1ZXN0QmFzZSB7XG4gIG11dGF0aW9uUGFyYW1zOiBUO1xuICAvKipcbiAgICogb3B0aW9ucyBvcHRpb25hbFxuICAgKi9cbiAgb3B0aW9ucz86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRSZXNwb25zZTxUPiB7XG4gIGFjdGlvblR5cGU6IHN0cmluZztcbiAgcmVzcG9uc2U6IFJlc3BvbnNlPFQ+O1xuICByZXF1ZXN0OiBJQ3JpdGVyaWEgfCBPcHRSZXF1ZXN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wdEVmZmVjdCB7XG4gIC8qKlxuICAgKiBwZXIgb2duaSBzdHJpbmdhIHByZXNlbnRlIG5lbGwnYXR0cmlidXRvLCB2ZXJyw6Agc3BlZGl0YSB1bmEgbm90aWZpY2EgUmVzcG9uc2UuXG4gICAqIGluIHF1ZXN0byBtb2RvLCBjaGkgaW52aWEgbGEgbm90aWZpY2EgcG90csOgIHBvaSBmaWx0cmFyZSBpIGRhdGkgaW4gYmFzZSBhbGxhIGNoaWF2ZSBpbnZpYXRhLlxuICAgKi9cbiAgZGlzcGF0Y2hSZXNwb25zZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2U8VD4ge1xuICBkYXRhOiBUIHwgYW55O1xuICBoYXNFcnJvcjogYm9vbGVhbjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlck1ldGFkYXRhIHtcbiAgdmFsdWU/OiBhbnk7XG4gIG1hdGNoTW9kZT86IHN0cmluZztcbiAgcmVuZGVyRnVuY3Rpb24/OiAodmFsdWU6IGFueSkgPT4gc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENydWRCYXNlU3RhdGU8VD4ge1xuICBlcnJvcjogc3RyaW5nO1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIGlzTG9hZGVkOiBib29sZWFuO1xuICBsYXN0Q3JpdGVyaWE6IElDcml0ZXJpYTtcbiAgcmVzcG9uc2VzOiBPcHRSZXNwb25zZTxUPltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpbmdsZUNydWRTdGF0ZTxUPiBleHRlbmRzIENydWRCYXNlU3RhdGU8VD4ge1xuICBpdGVtOiBUXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3J1ZFN0YXRlPFQ+IGV4dGVuZHMgQ3J1ZEJhc2VTdGF0ZTxUPiwgRW50aXR5U3RhdGU8VD4ge1xuICBmaWx0ZXJzOiB7IFtzOiBzdHJpbmddOiBGaWx0ZXJNZXRhZGF0YTsgfTtcbiAgaWRzU2VsZWN0ZWQ6IHN0cmluZ1tdIHwgbnVtYmVyW107XG4gIGl0ZW1TZWxlY3RlZDogVDtcbiAgaWRTZWxlY3RlZDogc3RyaW5nIHwgbnVtYmVyO1xuICBlbnRpdGllc1NlbGVjdGVkOiBEaWN0aW9uYXJ5PFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUNydWRCYXNlU2VsZWN0b3JzPFQsIFY+IHtcblxuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBsYXN0IGNyaXRlcmlhXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IElDcml0ZXJpYVxuICAgKi9cbiAgc2VsZWN0TGFzdENyaXRlcmlhOiAoc3RhdGU6IFYpID0+IElDcml0ZXJpYTtcbiAgLyoqXG4gICAqIC0gdXNlZCB0byBzZWxlY3QgYW4gZXJyb3JcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4gc3RyaW5nXG4gICAqL1xuICBzZWxlY3RFcnJvcjogKHN0YXRlOiBWKSA9PiBzdHJpbmc7XG4gIC8qKlxuICAgKiAtIHJldHVybnMgdHJ1ZSBpZiB0aGVyZSBhcmUgY2FsbHMgaW4gcHJvZ3Jlc3NcbiAgICogQEBwYXJhbSAoc3RhdGU6IFYpID0+IGJvb2xlYW5cbiAgICovXG4gIHNlbGVjdElzTG9hZGluZzogKHN0YXRlOiBWKSA9PiBib29sZWFuO1xuICAvKipcbiAgICogLSByZXR1cm5zIHRydWUgaWYgYWxsIGNhbGxzIGFyZSBjb21wbGV0ZWRcbiAgICogQEBwYXJhbSAoc3RhdGU6IFYpID0+IGJvb2xlYW5cbiAgICovXG4gIHNlbGVjdElzTG9hZGVkOiAoc3RhdGU6IFYpID0+IGJvb2xlYW47XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IHJlc3BvbnNlIHZhcmlhYmxlIGNvbnRhaW5lZCBpbiB0aGUgZm9ybXVsYVxuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBPcHRSZXNwb25zZTxUPltdXG4gICAqL1xuICBzZWxlY3RSZXNwb25zZXM6IChzdGF0ZTogVikgPT4gT3B0UmVzcG9uc2U8VD5bXTtcblxuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBzZWxlY3RlZEl0ZW1cbiAgICogLSBwb3B1bGF0ZWQgd2l0aCBhY3Rpb24gXCIuLi5TZWxlY3RlZEl0ZW1zKHtpdGVtfSlcIixcbiAgICogLSBsb2NhbCBjbG9uZSwgZG9lcyBub3QgbWF0Y2ggdGhlIGluc3RhbmNlIGluIHRoZSBzdG9yZVxuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBUXG4gICAqL1xuICBzZWxlY3RJdGVtU2VsZWN0ZWQ6IChzdGF0ZTogVikgPT4gVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTaW5nbGVDcnVkU2VsZWN0b3JzPFQsIFY+IGV4dGVuZHMgRW50aXR5Q3J1ZEJhc2VTZWxlY3RvcnM8VCwgVj4ge1xuICBzZWxlY3RJdGVtOiAoc3RhdGU6IFYpID0+IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5Q3J1ZFNlbGVjdG9yczxULCBWPiBleHRlbmRzIEVudGl0eUNydWRCYXNlU2VsZWN0b3JzPFQsIFY+LCBFbnRpdHlTZWxlY3RvcnM8VCwgVj4ge1xuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBzZWxlY3RlZCBpZFxuICAgKiAtIHBvcHVsYXRlZCB3aXRoIGFjdGlvbiBcIi4uLlNlbGVjdGVkSXRlbSh7aXRlbX0pXCIsXG4gICAqIEBwYXJhbSAoc3RhdGU6IFYpID0+IHN0cmluZyB8IG51bWJlclxuICAgKi9cbiAgc2VsZWN0SWRTZWxlY3RlZDogKHN0YXRlOiBWKSA9PiBzdHJpbmcgfCBudW1iZXI7XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IHNlbGVjdGVkIGlkc1xuICAgKiAtIHBvcHVsYXRlZCB3aXRoIGFjdGlvbiBcIi4uLlNlbGVjdGVkSXRlbXMoe2l0ZW19KVwiLFxuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBzdHJpbmdbXSB8IG51bWJlcltdXG4gICAqL1xuICBzZWxlY3RJZHNTZWxlY3RlZDogKHN0YXRlOiBWKSA9PiBzdHJpbmdbXSB8IG51bWJlcltdO1xuICAvKipcbiAgICogLSB1c2VkIHRvIHNlbGVjdCBzZWxlY3RlZCBpdGVtXG4gICAqIC0gcG9wdWxhdGVkIHdpdGggYWN0aW9uIFwiLi4uU2VsZWN0ZWRJdGVtcyh7aXRlbTp7aWQ6c3RyaW5nIC4uLn19KVwiLFxuICAgKiAtIHNhbWUgaW5zdGFuY2Ugb2YgdGhlIHN0b3JlIChzdGF0ZS5lbnRpdGllcylcbiAgICogLSB0aGUgc2VsZWN0b3IgaXMgY3JlYXRlZCB3aXRoOlxuICAgKiAgICAtIHNlbGVjdElkU2VsZWN0ZWQgKyBzZWxlY3RFbnRpdGllcyxcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4gVFxuICAgKi9cbiAgc2VsZWN0SXRlbVNlbGVjdGVkT3JpZ2luOiAoc3RhdGU6IFYpID0+IFQ7XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGEgZ3JvdXAgb2Ygc2VsZWN0ZWQgaXRlbXNcbiAgICogLSBwb3B1bGF0ZWQgd2l0aCBhY3Rpb24gXCIuLi5TZWxlY3RlZEl0ZW1zKHtpdGVtfSlcIixcbiAgICogLSBsb2NhbCBjbG9uZSwgZG9lcyBub3QgbWF0Y2ggdGhlIGluc3RhbmNlIGluIHRoZSBzdG9yZVxuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBUW11cbiAgICovXG4gIHNlbGVjdEl0ZW1zU2VsZWN0ZWQ6IChzdGF0ZTogVikgPT4gVFtdO1xuXG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGEgZ3JvdXAgb2Ygc2VsZWN0ZWQgZW50aXRpZXNcbiAgICogLSBwb3B1bGF0ZWQgd2l0aCBhY3Rpb24gXCIuLi5TZWxlY3RlZEl0ZW1zKHtpdGVtfSlcIixcbiAgICogLSBsb2NhbCBjbG9uZSwgZG9lcyBub3QgbWF0Y2ggdGhlIGluc3RhbmNlIGluIHRoZSBzdG9yZVxuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiBEaWN0aW9uYXJ5PFQ+XG4gICAqL1xuICBzZWxlY3RFbnRpdGllc1NlbGVjdGVkOiAoc3RhdGU6IFYpID0+IERpY3Rpb25hcnk8VD47XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGEgZ3JvdXAgb2Ygc2VsZWN0ZWQgaXRlbXNcbiAgICogLSBwb3B1bGF0ZWQgd2l0aCBhY3Rpb24gXCIuLi5TZWxlY3RlZEl0ZW1zKHtpdGVtfSlcIixcbiAgICogLSBzYW1lIGluc3RhbmNlIG9mIHRoZSBzdG9yZSAoc3RhdGUuZW50aXRpZXMpXG4gICAqICAgIC0gc2VsZWN0SWRzU2VsZWN0ZWQgKyBzZWxlY3RFbnRpdGllcyxcbiAgICogQHBhcmFtIChzdGF0ZTogVikgPT4gVFtdXG4gICAqL1xuICBzZWxlY3RJdGVtc1NlbGVjdGVkT3JpZ2luOiAoc3RhdGU6IFYpID0+IFRbXTtcbiAgLyoqXG4gICAqIC0gdXNlZCB0byBzZWxlY3QgZmlsdGVyc1xuICAgKiBAcGFyYW0gKHN0YXRlOiBWKSA9PiB7W3M6IHN0cmluZ106IEZpbHRlck1ldGFkYXRhO31cbiAgICovXG4gIHNlbGVjdEZpbHRlcnM6IChzdGF0ZTogVikgPT4geyBbczogc3RyaW5nXTogRmlsdGVyTWV0YWRhdGE7IH07XG4gIC8qKlxuICAgKiAtIHVzZWQgdG8gc2VsZWN0IGZpbHRlcmVkIGl0ZW1zXG4gICAqIEBwYXJhbSBNZW1vaXplZFNlbGVjdG9yPFYsIFRbXT5cbiAgICovXG4gIHNlbGVjdEZpbHRlcmVkSXRlbXM6IE1lbW9pemVkU2VsZWN0b3I8ViwgVFtdPjtcblxufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5Q3J1ZEJhc2VTdGF0ZTxUPiB7XG4gIGVycm9yOiBzdHJpbmc7XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgaXNMb2FkZWQ6IGJvb2xlYW47XG4gIGxhc3RDcml0ZXJpYTogSUNyaXRlcmlhO1xuICAvLyBvZ25pIGVudGl0w6AgcmVnaXN0cmEgbCdhemlvbmUgc2NhdGVuYXRhIGUgbGEgcmlzcG9zdGEgZGFsIHNlcnZlci5cbiAgcmVzcG9uc2VzOiBPcHRSZXNwb25zZTxUPltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVNpbmdsZUNydWRTdGF0ZTxUPiBleHRlbmRzIEVudGl0eUNydWRCYXNlU3RhdGU8VD4ge1xuICBpdGVtOiBUO1xuICBpdGVtU2VsZWN0ZWQ6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5Q3J1ZFN0YXRlPFQ+IGV4dGVuZHMgRW50aXR5Q3J1ZEJhc2VTdGF0ZTxUPiwgRW50aXR5U3RhdGU8VD4ge1xuICBmaWx0ZXJzOiB7IFtzOiBzdHJpbmddOiBGaWx0ZXJNZXRhZGF0YTsgfTtcbiAgaXRlbVNlbGVjdGVkOiBUO1xuICBpZFNlbGVjdGVkOiBzdHJpbmcgfCBudW1iZXI7XG5cbiAgZW50aXRpZXNTZWxlY3RlZDogRGljdGlvbmFyeTxUPjtcblxuICBpZHNTZWxlY3RlZDogc3RyaW5nW10gfCBudW1iZXJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlDcnVkQWRhcHRlcjxUPiBleHRlbmRzIEVudGl0eUFkYXB0ZXI8VD4ge1xuICBnZXRJbml0aWFsQ3J1ZFN0YXRlKCk6IEVudGl0eUNydWRTdGF0ZTxUPjtcblxuICBnZXRJbml0aWFsQ3J1ZFN0YXRlPFMgZXh0ZW5kcyBvYmplY3Q+KHN0YXRlOiBTKTogRW50aXR5Q3J1ZFN0YXRlPFQ+ICYgUztcblxuICBnZXRDcnVkU2VsZWN0b3JzPFY+KHNlbGVjdFN0YXRlOiAoc3RhdGU6IFYpID0+IEVudGl0eUNydWRTdGF0ZTxUPik6IEVudGl0eUNydWRTZWxlY3RvcnM8VCwgVj47XG5cbiAgY3JlYXRlQ3J1ZEFjdGlvbnMobmFtZTogc3RyaW5nKTogQWN0aW9uczxUPjtcblxuICAvLyB0b2RvIG1vZGlmaWNhcmUgbGEgZmlybWEgZGVsIG1ldG9kbywgdGlwaXp6YXJlIEFjdGlvbnM8YW55PlxuICBjcmVhdGVDcnVkUmVkdWNlcjxTPihpbml0aWFsU3RhdGU6IFMsIGFjdGlvbnM6IEFjdGlvbnM8YW55Pik7XG59XG5cbmludGVyZmFjZSBQcm9wc1NlYXJjaFN1Y2Nlc3M8VD4ge1xuICBpdGVtczogVDtcbiAgcmVxdWVzdDogSUNyaXRlcmlhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpbmd1bGFyQWN0aW9uczxUPiB7XG4gIC8vIGF6aW9uZSBkaXNwYWNjaWF0YSBkYWxsJ2VmZmVjdCBzZTpcbiAgLy8gT3B0UmVxdWVzdEJhc2UuZGlzcGF0Y2hSZXNwb25zZSA9PT0gdHJ1ZVxuICAvLyBPcHRFZmZlY3QuZGlzcGF0Y2hSZXNwb25zZSA9PT0gdHJ1ZVxuICBSZXNwb25zZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogT3B0UmVzcG9uc2U8VCB8IFRbXT4pID0+IE9wdFJlc3BvbnNlPFQgfCBUW10+ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIFJlc2V0UmVzcG9uc2VzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKCkgPT4geyB0eXBlOiBzdHJpbmc7IH0+O1xuXG4gIC8qKlxuICAgKiAgLSBhY3Rpb24gdXNlZCB0byBleGVjdXRlIGEgcmVxdWVzdCB0byBzZWxlY3QgYW4gaXRlbVxuICAgKiBAZXhhbXBsZSBzdG9yZS5kaXNwYXRjaChhY3Rpb25zLlNlbGVjdFJlcXVlc3QocGF5bG9hZCkpO1xuICAgKiBAcGFyYW0gaXRlbTogVFxuICAgKiBAcGFyYW0gcGF0aD86IGFueVtdXG4gICAqIEBwYXJhbSBvbkZhdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIG9uUmVzdWx0PzogQWN0aW9uW11cbiAgICogQHBhcmFtIGRpc3BhdGNoUmVzcG9uc2U/OiBib29sZWFuXG4gICAqL1xuICBTZWxlY3RSZXF1ZXN0OiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiBJQ3JpdGVyaWEpID0+IElDcml0ZXJpYSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBTZWxlY3RGYWlsdXJlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGVycm9yOiBzdHJpbmc7IH0pID0+IHsgZXJyb3I6IHN0cmluZzsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBTZWxlY3RTdWNjZXNzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW06IFQsIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSkgPT4geyBpdGVtOiBULCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcblxuXG4gIC8qKlxuICAgKiAgLSBhY3Rpb24gdXNlZCB0byBleGVjdXRlIGEgcmVxdWVzdCB0byBtb2RpZnkgYW4gaXRlbVxuICAgKiBAZXhhbXBsZSBzdG9yZS5kaXNwYXRjaChhY3Rpb25zLkVkaXRSZXF1ZXN0KHBheWxvYWQpKTtcbiAgICogQHBhcmFtIGl0ZW06IFRcbiAgICogQHBhcmFtIHBhdGg/OiBhbnlbXVxuICAgKiBAcGFyYW0gb25GYXVsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBvblJlc3VsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBkaXNwYXRjaFJlc3BvbnNlPzogYm9vbGVhblxuICAgKi9cbiAgRWRpdFJlcXVlc3Q6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IE9wdFJlcXVlc3QpID0+IE9wdFJlcXVlc3QgJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgRWRpdEZhaWx1cmU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgZXJyb3I6IHN0cmluZzsgfSkgPT4geyBlcnJvcjogc3RyaW5nOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIEVkaXRTdWNjZXNzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW06IFQsIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSkgPT4geyBpdGVtOiBULCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcblxuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byBleGVjdXRlIGEgc3RvcmUgcmVzZXRcbiAgICogQGV4YW1wbGUgc3RvcmUuZGlzcGF0Y2goYWN0aW9ucy5SZXNldCgpKTtcbiAgICogQHBhcmFtIHR5cGU6IHN0cmluZ1xuICAgKi9cbiAgUmVzZXQ6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAoKSA9PiB7IHR5cGU6IHN0cmluZzsgfT47XG5cbiAgLyoqXG4gICAqIC0gYWN0aW9uIHVzZWQgdG8gbW9kaWZ5IGFuIGl0ZW0gb24gdGhlIHN0b3JlXG4gICAqIEBleGFtcGxlIHN0b3JlLmRpc3BhdGNoKGFjdGlvbnMuRWRpdChwYXlsb2FkKSk7XG4gICAqIEBwYXJhbSBpdGVtOiBUXG4gICAqL1xuICBFZGl0OiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW06IFQ7IH0pID0+IHsgaXRlbTogVDsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuXG4gIC8qKlxuICAgKiAtIGFjdGlvbiB1c2VkIHRvIGlkZW50aWZ5IGEgc2luZ2xlIGl0ZW0gdG8gc2VsZWN0XG4gICAqIEBleGFtcGxlIHN0b3JlLmRpc3BhdGNoKGFjdGlvbnMuU2VsZWN0SXRlbShwYXlsb2FkKSk7XG4gICAqIEBwYXJhbSBpdGVtOiBUXG4gICAqL1xuICBTZWxlY3RJdGVtOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW06IFQ7IH0pID0+IHsgaXRlbTogVDsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uczxUPiBleHRlbmRzIFNpbmd1bGFyQWN0aW9uczxUPiB7XG5cbiAgLyoqXG4gICAqIC0gYWN0aW9uIHVzZWQgdG8gZXhlY3V0ZSBhc3luY2hyb25vdXMgcmVzZWFyY2hlc1xuICAgKiBAZXhhbXBsZSBTdG9yZUFjdGlvbnMuU2VhcmNoUmVxdWVzdCh7cXVlcnlQYXJhbXM6IHt9fSlcbiAgICogLSBtb2RlPzogJ1JFRlJFU0gnOiBzZSB2aWVuZSBwYXNzYXRvIGlsIHZhbG9yZSBSRUZSRVNILCBpbCBkYXRvIHByZXNlbnRlIG5lbGxvIHN0b3JlIHZpZW5lIGNhbmNlbGxhdG8gcHJpbWEgZGkgZXNlZ3VpcmUgbGEgY2hpYW1hdGEsXG4gICAqICAgICAgICBhbHRyaW1lbnRpIGlsIGRhdG8gdmVycsOgIHNvc3RpdHVpdG8gYWwgcmVzdWx0IGRlbGxhIGNoaWFtYXRhXG4gICAqIEBwYXJhbSBtb2RlPzogJ1JFRlJFU0gnIHwgJ3Vwc2VydE1hbnknIHwgJ2FkZEFsbCdcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zPzogYW55XG4gICAqIEBwYXJhbSBwYXRoPzogYW55W11cbiAgICogQHBhcmFtIG9uRmF1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gb25SZXN1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gZGlzcGF0Y2hSZXNwb25zZT86IGJvb2xlYW5cbiAgICogQHBhcmFtIHR5cGU6IHN0cmluZ1xuICAgKlxuICAgKi9cbiAgU2VhcmNoUmVxdWVzdDogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogSUNyaXRlcmlhKSA9PiBJQ3JpdGVyaWEgJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgU2VhcmNoRmFpbHVyZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBlcnJvcjogc3RyaW5nOyB9KSA9PiB7IGVycm9yOiBzdHJpbmc7IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgU2VhcmNoU3VjY2VzczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpdGVtczogVFtdLCByZXF1ZXN0OiBJQ3JpdGVyaWEgfSkgPT4geyBpdGVtczogVFtdLCByZXF1ZXN0OiBJQ3JpdGVyaWEgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuXG4gIC8qKlxuICAgKiAtIGFjdGlvbiB1c2VkIHRvIGV4ZWN1dGUgYSByZXF1ZXN0IHRvIHJlbW92ZSBhbiBpdGVtXG4gICAqIEBleGFtcGxlIGNvbnN0IHRvU3RhdGU6IFN0YXRlID0gZmVhdHVyZVJlZHVjZXIoc3RhdGUsIGFjdGlvbnMuRGVsZXRlUmVxdWVzdChwYXlsb2FkKSk7XG4gICAqIEBwYXJhbSBpdGVtOiBUXG4gICAqIEBwYXJhbSBwYXRoPzogYW55W11cbiAgICogQHBhcmFtIG9uRmF1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gb25SZXN1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gZGlzcGF0Y2hSZXNwb25zZT86IGJvb2xlYW5cbiAgICovXG4gIERlbGV0ZVJlcXVlc3Q6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IE9wdFJlcXVlc3QpID0+IE9wdFJlcXVlc3QgJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgRGVsZXRlRmFpbHVyZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBlcnJvcjogc3RyaW5nOyB9KSA9PiB7IGVycm9yOiBzdHJpbmc7IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgRGVsZXRlU3VjY2VzczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpZDogc3RyaW5nLCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0pID0+IHsgaWQ6IHN0cmluZywgcmVxdWVzdDogT3B0UmVxdWVzdCB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG5cbiAgLyoqXG4gICAqIC0gYWN0aW9uIHVzZWQgdG8gZXhlY3V0ZSBhIHJlcXVlc3QgdG8gcmVtb3ZlIG1vcmUgaXRlbXNcbiAgICogQGV4YW1wbGUgdGhpcy5zdG9yZSQuZGlzcGF0Y2goPCU9IGNsYXp6ICU+U3RvcmVBY3Rpb25zLkRlbGV0ZU1hbnlSZXF1ZXN0KHtpdGVtc30pKTtcbiAgICogQHBhcmFtIGl0ZW1zOiBUW11cbiAgICogQHBhcmFtIHBhdGg/OiBhbnlbXVxuICAgKiBAcGFyYW0gb25GYXVsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBvblJlc3VsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBkaXNwYXRjaFJlc3BvbnNlPzogYm9vbGVhblxuICAgKi9cbiAgRGVsZXRlTWFueVJlcXVlc3Q6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IE9wdFJlcXVlc3QpID0+IE9wdFJlcXVlc3QgJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgRGVsZXRlTWFueUZhaWx1cmU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgZXJyb3I6IHN0cmluZzsgfSkgPT4geyBlcnJvcjogc3RyaW5nOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIERlbGV0ZU1hbnlTdWNjZXNzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGlkczogc3RyaW5nW10sIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSkgPT4geyBpZHM6IHN0cmluZ1tdLCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcblxuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byBleGVjdXRlIGEgcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcgaXRlbVxuICAgKiBAZXhhbXBsZSAgc3RvcmUuZGlzcGF0Y2goYWN0aW9ucy5DcmVhdGVSZXF1ZXN0KHBheWxvYWQpKTtcbiAgICogQHBhcmFtIGl0ZW06IFRcbiAgICogQHBhcmFtIHBhdGg/OiBhbnlbXVxuICAgKiBAcGFyYW0gb25GYXVsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBvblJlc3VsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBkaXNwYXRjaFJlc3BvbnNlPzogYm9vbGVhblxuICAgKi9cbiAgQ3JlYXRlUmVxdWVzdDogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogT3B0UmVxdWVzdCkgPT4gT3B0UmVxdWVzdCAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBDcmVhdGVGYWlsdXJlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGVycm9yOiBzdHJpbmc7IH0pID0+IHsgZXJyb3I6IHN0cmluZzsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBDcmVhdGVTdWNjZXNzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW06IFQsIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSkgPT4geyBpdGVtOiBULCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcblxuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byBleGVjdXRlIGEgcmVxdWVzdCB0byBjcmVhdGUgbW9yZSBuZXcgaXRlbXNcbiAgICogQGV4YW1wbGUgc3RvcmUuZGlzcGF0Y2goYWN0aW9ucy5DcmVhdGVNYW55UmVxdWVzdChwYXlsb2FkKSk7XG4gICAqIEBwYXJhbSBpdGVtczogVFtdXG4gICAqIEBwYXJhbSBwYXRoPzogYW55W11cbiAgICogQHBhcmFtIG9uRmF1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gb25SZXN1bHQ/OiBBY3Rpb25bXVxuICAgKiBAcGFyYW0gZGlzcGF0Y2hSZXNwb25zZT86IGJvb2xlYW5cbiAgICovXG4gIENyZWF0ZU1hbnlSZXF1ZXN0OiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiBPcHRSZXF1ZXN0PFRbXSB8IFQ+KSA9PiBPcHRSZXF1ZXN0PFRbXSB8IFQ+ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIENyZWF0ZU1hbnlGYWlsdXJlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGVycm9yOiBzdHJpbmc7IH0pID0+IHsgZXJyb3I6IHN0cmluZzsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICBDcmVhdGVNYW55U3VjY2VzczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBpdGVtczogVFtdLCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0pID0+IHsgaXRlbXM6IFRbXSwgcmVxdWVzdDogT3B0UmVxdWVzdCB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG5cbiAgLyoqXG4gICAqICAtIGFjdGlvbiB1c2VkIHRvIGV4ZWN1dGUgYSByZXF1ZXN0IHRvIG1vZGlmeSBtb3JlIGl0ZW1zXG4gICAqIEBleGFtcGxlIHN0b3JlLmRpc3BhdGNoKGFjdGlvbnMuRWRpdE1hbnlSZXF1ZXN0KHBheWxvYWQpKTtcbiAgICogQHBhcmFtIGl0ZW1zOiBUW11cbiAgICogQHBhcmFtIHBhdGg/OiBhbnlbXVxuICAgKiBAcGFyYW0gb25GYXVsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBvblJlc3VsdD86IEFjdGlvbltdXG4gICAqIEBwYXJhbSBkaXNwYXRjaFJlc3BvbnNlPzogYm9vbGVhblxuICAgKi9cbiAgRWRpdE1hbnlSZXF1ZXN0OiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiBPcHRSZXF1ZXN0KSA9PiBPcHRSZXF1ZXN0ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG4gIEVkaXRNYW55RmFpbHVyZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBlcnJvcjogc3RyaW5nOyB9KSA9PiB7IGVycm9yOiBzdHJpbmc7IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcbiAgRWRpdE1hbnlTdWNjZXNzOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW1zOiBUW10sIHJlcXVlc3Q6IE9wdFJlcXVlc3QgfSkgPT4geyBpdGVtczogVFtdLCByZXF1ZXN0OiBPcHRSZXF1ZXN0IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcblxuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byBhcHBseSBzb21lIGZpbHRlcnMgb24gZGF0YVxuICAgKiBAZXhhbXBsZSBzdG9yZS5kaXNwYXRjaChhY3Rpb25zLkZpbHRlcnMocGF5bG9hZCkpO1xuICAgKiBAcGFyYW0gZmlsdGVyczogeyBbczogc3RyaW5nXTogRmlsdGVyTWV0YWRhdGE7fVxuICAgKi9cbiAgRmlsdGVyczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBmaWx0ZXJzOiB7IFtzOiBzdHJpbmddOiBGaWx0ZXJNZXRhZGF0YTsgfTsgfSkgPT4geyBmaWx0ZXJzOiB7IFtzOiBzdHJpbmddOiBGaWx0ZXJNZXRhZGF0YTsgfTsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuXG4gIC8vIHNlbGV6aW9uZSBsb2NhbGUgZGkgKyBlbGVtZW50aVxuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byBpZGVudGlmeSBhIGdyb3VwIG9mIGl0ZW1zIHRvIHNlbGVjdFxuICAgKiBAZXhhbXBsZSBzdG9yZS5kaXNwYXRjaChhY3Rpb25zLlNlbGVjdEl0ZW1zKHBheWxvYWQpKTtcbiAgICogQHBhcmFtIGl0ZW1zOiBUW11cbiAgICovXG4gIFNlbGVjdEl0ZW1zOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW1zOiBUW107IH0pID0+IHsgaXRlbXM6IFRbXTsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICAvLyBUT0RPOiBkb2NcbiAgQWRkTWFueVNlbGVjdGVkOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW1zOiBUW107IH0pID0+IHsgaXRlbXM6IFRbXTsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICAvLyBUT0RPOiBkb2NcbiAgUmVtb3ZlTWFueVNlbGVjdGVkOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGlkczogc3RyaW5nW107IH0pID0+IHsgaWRzOiBzdHJpbmdbXTsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuICAvLyBUT0RPOiBkb2NcbiAgUmVtb3ZlQWxsU2VsZWN0ZWQ6IEFjdGlvbkNyZWF0b3I8c3RyaW5nPjtcblxuICAvKipcbiAgICogLSBhY3Rpb24gdXNlZCB0byBjcmVhdGUgYW4gaXRlbSBvbiB0aGUgc3RvcmVcbiAgICogQGV4YW1wbGUgc3RvcmUuZGlzcGF0Y2goYWN0aW9ucy5DcmVhdGUocGF5bG9hZCkpO1xuICAgKiBAcGFyYW0gaXRlbTogVFxuICAgKi9cbiAgQ3JlYXRlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGl0ZW06IFQ7IH0pID0+IHsgaXRlbTogVDsgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xuXG4gIC8qKlxuICAgKiAtIGFjdGlvbiB1c2VkIHRvIHJlbW92ZSBhbiBpdGVtIG9uIHRoZSBzdG9yZVxuICAgKiBAZXhhbXBsZSBjb25zdCB0b1N0YXRlOiBTdGF0ZSA9IGZlYXR1cmVSZWR1Y2VyKGV4cGVjdFN0YXRlLCBhY3Rpb25zLkRlbGV0ZShwYXlsb2FkKSk7XG4gICAqIEBwYXJhbSBpZDogc3RyaW5nXG4gICAqL1xuICBEZWxldGU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgaWQ6IHN0cmluZzsgfSkgPT4geyBpZDogc3RyaW5nOyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XG5cbn1cbiJdfQ==
|
package/esm2020/lib/reducer.mjs
CHANGED
|
@@ -349,7 +349,7 @@ export function createSingularCrudOns(initialState, actions) {
|
|
|
349
349
|
const selectRequestOn = on(actions.SelectRequest, (state, { type }) => ({
|
|
350
350
|
...state,
|
|
351
351
|
isLoading: true,
|
|
352
|
-
error:
|
|
352
|
+
error: initialState.error
|
|
353
353
|
}));
|
|
354
354
|
const selectSuccessOn = on(actions.SelectSuccess, (state, { type, item }) => ({
|
|
355
355
|
...state,
|
|
@@ -398,6 +398,13 @@ export function createSingularCrudOns(initialState, actions) {
|
|
|
398
398
|
return { ...state, ...{ responses } };
|
|
399
399
|
});
|
|
400
400
|
const resetOn = on(actions.Reset, (state) => ({ ...state, ...initialState }));
|
|
401
|
+
const selectItemOn = on(actions.SelectItem, (state, { type, item }) => {
|
|
402
|
+
const result = {
|
|
403
|
+
...state,
|
|
404
|
+
itemSelected: item
|
|
405
|
+
};
|
|
406
|
+
return result;
|
|
407
|
+
});
|
|
401
408
|
return {
|
|
402
409
|
responseOn,
|
|
403
410
|
resetResponsesOn,
|
|
@@ -407,8 +414,9 @@ export function createSingularCrudOns(initialState, actions) {
|
|
|
407
414
|
editRequestOn,
|
|
408
415
|
editSuccessOn,
|
|
409
416
|
editFailureOn,
|
|
417
|
+
selectItemOn,
|
|
410
418
|
resetOn,
|
|
411
419
|
editOn,
|
|
412
420
|
};
|
|
413
421
|
}
|
|
414
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25ncngtZW50aXR5LWNydWQvc3JjL2xpYi9yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLEVBQUUsRUFBZSxNQUFNLGFBQWEsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxFQUFFLFlBQVksRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUVwRCxNQUFNLFVBQVUsUUFBUSxDQUFJLEVBQVcsRUFBRSxNQUFXLElBQUk7SUFDdEQsSUFBSTtRQUNGLE9BQU8sRUFBRSxFQUFFLENBQUM7S0FDYjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxHQUFHLENBQUM7S0FDWjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFrQyxPQUF5QixFQUFFLFlBQWUsRUFBRSxPQUFtQjtJQUM1SCxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQVEsRUFBRSxRQUFtQixFQUFFLEVBQUU7UUFDbEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRTtZQUM3RCxNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxDQUFDLENBQUM7U0FDeEY7UUFFRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUM5QixrQ0FBa0M7UUFDbEMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDOUMsTUFBTSxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ3hFLG9CQUFvQixHQUFHLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUMsQ0FBQztTQUNsRjthQUFNO1lBQ0wsTUFBTSxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFDLEdBQUcsWUFBWSxDQUFDO1lBQy9FLG9CQUFvQixHQUFHLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUMsQ0FBQztTQUNsRjtRQUVELE1BQU0sTUFBTSxHQUFHO1lBQ2IsR0FBRyxLQUFLO1lBQ1IsU0FBUyxFQUFFLElBQUk7WUFDZixLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7WUFDekIsWUFBWSxFQUFFLFFBQVE7WUFDdEIsR0FBRyxvQkFBb0I7U0FDeEIsQ0FBQTtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3ZFLE9BQU8sTUFBTSxDQUFBO1NBQ2Q7UUFFRCxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQVEsRUFBRSxPQUFtQixFQUFFLEVBQUU7UUFDbEYsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUNsQixFQUFFLEVBQ0YsS0FBSyxFQUNMLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUssRUFBQyxDQUM3QyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxLQUFRLEVBQUUsT0FBbUIsRUFBRSxFQUFFO1FBQzFGLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FDbEIsRUFBRSxFQUNGLEtBQUssRUFDTCxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLLEVBQUMsQ0FDN0MsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFRLEVBQUUsT0FBbUIsRUFBRSxFQUFFO1FBQzlFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FDbEIsRUFBRSxFQUNGLEtBQUssRUFDTCxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLLEVBQUMsQ0FDN0MsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDLEtBQVEsRUFBRSxPQUFtQixFQUFFLEVBQUU7UUFDdEYsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUNsQixFQUFFLEVBQ0YsS0FBSyxFQUNMLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUssRUFBQyxDQUM3QyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQVEsRUFBRSxPQUFtQixFQUFFLEVBQUU7UUFDbEYsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUNsQixFQUFFLEVBQ0YsS0FBSyxFQUNMLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUssRUFBQyxDQUM3QyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxLQUFRLEVBQUUsT0FBbUIsRUFBRSxFQUFFO1FBQzFGLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FDbEIsRUFBRSxFQUNGLEtBQUssRUFDTCxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLLEVBQUMsQ0FDN0MsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFRLEVBQUUsT0FBa0IsRUFBRSxFQUFFO1FBQ2pGLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FDbEIsRUFBRSxFQUNGLEtBQUssRUFDTCxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLLEVBQUMsQ0FDN0MsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFRLEVBQUUsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBQyxFQUFFLEVBQUU7UUFDckYsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDO1FBQzVELElBQUksTUFBTSxDQUFDO1FBRVgsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1NBQ3pCO2FBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzVDLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1NBQzdCO2FBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3hDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1NBQ3pCO2FBQU07WUFDTCxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUN6QjtRQUVELE1BQU0sb0JBQW9CLEdBQUcsRUFBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUMsQ0FBQztRQUN4RyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUM5QyxrRUFBa0U7WUFDbEUsTUFBTSxhQUFhLEdBQUc7Z0JBQ3BCLFFBQVEsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO2dCQUNoQyxHQUFHLEVBQUUsS0FBSyxDQUFDLFdBQVc7YUFDdkIsQ0FBQTtZQUNELDBEQUEwRDtZQUMxRCxNQUFNLE1BQU0sR0FBUSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFHLGdGQUFnRjtZQUNoRixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxhQUFvQixFQUFDLENBQUMsQ0FBQztZQUUvRSxvQkFBb0IsQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7WUFDbEUsb0JBQW9CLENBQUMsV0FBVyxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQztTQUN6RDtRQUVELE9BQU8sTUFBTSxDQUFDLEtBQUssRUFDakI7WUFDRSxHQUFHLEtBQUs7WUFDUixHQUFHLG9CQUFvQjtZQUN2QixRQUFRLEVBQUUsSUFBSTtZQUNkLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQVEsRUFBRSxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUMsRUFBRSxFQUFFO1FBRXZFLHNEQUFzRDtRQUN0RCxNQUFNLFdBQVcsR0FBSSxLQUFLLENBQUMsV0FBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM3RSxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVQLDBEQUEwRDtRQUMxRCxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsVUFBVSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQzNGLE1BQU0sWUFBWSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFFN0QsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FDWCxFQUFFLEVBQUUsS0FBSyxFQUNUO1lBQ0UsUUFBUSxFQUFFLElBQUk7WUFDZCxTQUFTLEVBQUUsS0FBSztZQUNoQixLQUFLLEVBQUUsSUFBSTtZQUNYLFVBQVU7WUFDVixXQUFXO1lBQ1gsWUFBWTtZQUNaLGdCQUFnQjtTQUNqQixDQUNGLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FDRixDQUFDO0lBRUYsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsS0FBUSxFQUFFLEVBQUMsSUFBSSxFQUFFLEdBQUcsRUFBQyxFQUFFLEVBQUU7UUFFbEYsd0VBQXdFO1FBQ3hFLE1BQU0sV0FBVyxHQUFjLEtBQUssQ0FBQyxXQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRVAsMERBQTBEO1FBQzFELE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDM0YsTUFBTSxZQUFZLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUM3RCxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUMzQixNQUFNLENBQUMsTUFBTSxDQUNYLEVBQUUsRUFBRSxLQUFLLEVBQ1Q7WUFDRSxRQUFRLEVBQUUsSUFBSTtZQUNkLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLEtBQUssRUFBRSxJQUFJO1lBQ1gsVUFBVTtZQUNWLFdBQVc7WUFDWCxZQUFZO1lBQ1osZ0JBQWdCO1NBQ2pCLENBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQVEsRUFBRSxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUMsRUFBRSxFQUFFO1FBQ3pELHNEQUFzRDtRQUN0RCxNQUFNLFdBQVcsR0FBSSxLQUFLLENBQUMsV0FBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUU3RSwwREFBMEQ7UUFDMUQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUUzRixPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUN6QixNQUFNLENBQUMsTUFBTSxDQUNYLEVBQUUsRUFBRSxLQUFLLEVBQ1Q7WUFDRSxRQUFRLEVBQUUsSUFBSTtZQUNkLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLEtBQUssRUFBRSxJQUFJO1lBQ1gsVUFBVTtZQUNWLFdBQVc7U0FDWixDQUNGLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FDRixDQUFDO0lBQ0YsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUU7UUFDN0QsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakQsT0FBTyxFQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBQyxTQUFTLEVBQUMsRUFBQyxDQUFDO0lBQzNDLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLEtBQVEsRUFBRSxFQUFFO1FBQzdELE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNyQixPQUFPLEVBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFDLFNBQVMsRUFBQyxFQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUNGLENBQUM7SUFDRixNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQVEsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQy9GLE1BQU0sQ0FBQyxNQUFNLENBQ1gsRUFBRSxFQUFFLEtBQUssRUFDVDtRQUNFLFFBQVEsRUFBRSxJQUFJO1FBQ2QsU0FBUyxFQUFFLEtBQUs7UUFDaEIsS0FBSyxFQUFFLElBQUk7S0FDWixDQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ04sTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsS0FBUSxFQUFFLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFDMUcsTUFBTSxDQUFDLE1BQU0sQ0FDWCxFQUFFLEVBQUUsS0FBSyxFQUNUO1FBQ0UsUUFBUSxFQUFFLElBQUk7UUFDZCxTQUFTLEVBQUUsS0FBSztRQUNoQixLQUFLLEVBQUUsSUFBSTtLQUNaLENBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDTixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQVEsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQ2pGLE1BQU0sQ0FBQyxNQUFNLENBQ1gsRUFBRSxFQUFFLEtBQUssRUFDVDtRQUNFLFFBQVEsRUFBRSxJQUFJO1FBQ2QsU0FBUyxFQUFFLEtBQUs7UUFDaEIsS0FBSyxFQUFFLElBQUk7S0FDWixDQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ04sTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFRLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUM5RixNQUFNLENBQUMsTUFBTSxDQUNYLEVBQUUsRUFBRSxLQUFLLEVBQ1Q7UUFDRSxRQUFRLEVBQUUsSUFBSTtRQUNkLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLEtBQUssRUFBRSxJQUFJO0tBQ1osQ0FDRixDQUFDLENBQUMsQ0FBQztJQUNOLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFRLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUN6RyxNQUFNLENBQUMsTUFBTSxDQUNYLEVBQUUsRUFBRSxLQUFLLEVBQ1Q7UUFDRSxRQUFRLEVBQUUsSUFBSTtRQUNkLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLEtBQUssRUFBRSxJQUFJO0tBQ1osQ0FDRixDQUFDLENBQUMsQ0FBQztJQUNOLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBUSxFQUFFLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFDaEYsTUFBTSxDQUFDLE1BQU0sQ0FDWCxFQUFFLEVBQUUsS0FBSyxFQUNUO1FBQ0UsUUFBUSxFQUFFLElBQUk7UUFDZCxTQUFTLEVBQUUsS0FBSztRQUNoQixLQUFLLEVBQUUsSUFBSTtLQUNaLENBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDTixNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQVEsRUFBRSxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTFHLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEtBQVEsRUFBRSxFQUFDLElBQUksRUFBbUIsRUFBRSxFQUFFO1FBQy9GLE1BQU0sTUFBTSxHQUFHO1lBQ2IsR0FBRyxLQUFLO1lBQ1IsV0FBVyxFQUFFLEVBQUU7WUFDZixvRkFBb0Y7WUFDcEYsZ0JBQWdCLEVBQUUsRUFBRTtTQUNyQixDQUFDO1FBRUYsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBUSxFQUFFLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBK0IsRUFBRSxFQUFFO1FBQzlHLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxFQUFDLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsWUFBWSxFQUFDLENBQUM7UUFDdEUsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sTUFBTSxHQUFHO1lBQ2IsR0FBRyxLQUFLO1lBQ1IsV0FBVztZQUNYLHVGQUF1RjtZQUN2RixnQkFBZ0I7U0FDakIsQ0FBQztRQUVGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUMsS0FBUSxFQUFFLEVBQUMsSUFBSSxFQUFFLEdBQUcsRUFBa0MsRUFBRSxFQUFFO1FBQ3JILE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDekMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckcsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuSCx5REFBeUQ7UUFFekQsTUFBTSxNQUFNLEdBQUc7WUFDYixHQUFHLEtBQUs7WUFDUixXQUFXO1lBQ1gsZ0ZBQWdGO1lBQ2hGLGdCQUFnQjtTQUNqQixDQUFDO1FBRUYsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQVEsRUFBRSxFQUFDLElBQUksRUFBRSxLQUFLLEVBQUMsRUFBRSxFQUFFO1FBQ3hFLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN0RCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsTUFBTSxNQUFNLEdBQUc7WUFDYixHQUFHLEtBQUs7WUFDUixXQUFXO1lBQ1gsd0JBQXdCO1lBQ3hCLGdCQUFnQjtTQUNqQixDQUFDO1FBRUYsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQVEsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsRUFBRSxFQUFFO1FBQ3JFLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sTUFBTSxHQUFHO1lBQ2IsR0FBRyxLQUFLO1lBQ1IsVUFBVTtZQUNWLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUM7UUFFRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBUSxFQUFFLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxFQUFFLEVBQUU7UUFDekUsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekQsTUFBTSxNQUFNLEdBQUc7WUFDYixHQUFHLEtBQUs7WUFDUixVQUFVO1lBQ1YsWUFBWSxFQUFFLElBQUk7WUFDbEIsUUFBUSxFQUFFLElBQUk7WUFDZCxTQUFTLEVBQUUsS0FBSztZQUNoQixLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUM7UUFFRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQ0YsQ0FBQztJQUNGLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FDeEIsT0FBTyxDQUFDLGFBQWEsRUFDckIsQ0FBQyxLQUFRLEVBQUUsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ3hDLEVBQUUsRUFDRixLQUFLLEVBQ0w7UUFDRSxRQUFRLEVBQUUsS0FBSztRQUNmLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLEtBQUs7S0FDTixDQUNGLENBQUMsQ0FBQztJQUNMLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FDeEIsT0FBTyxDQUFDLGFBQWEsRUFDckIsQ0FBQyxLQUFRLEVBQUUsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ3hDLEVBQUUsRUFDRixLQUFLLEVBQ0w7UUFDRSxRQUFRLEVBQUUsS0FBSztRQUNmLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLEtBQUs7S0FDTixDQUNGLENBQUMsQ0FBQztJQUNMLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUM1QixPQUFPLENBQUMsaUJBQWlCLEVBQ3pCLENBQUMsS0FBUSxFQUFFLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUN4QyxFQUFFLEVBQ0YsS0FBSyxFQUNMO1FBQ0UsUUFBUSxFQUFFLEtBQUs7UUFDZixTQUFTLEVBQUUsS0FBSztRQUNoQixLQUFLO0tBQ04sQ0FDRixDQUFDLENBQUM7SUFDTCxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQ3hCLE9BQU8sQ0FBQyxhQUFhLEVBQ3JCLENBQUMsS0FBUSxFQUFFLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUN4QyxFQUFFLEVBQ0YsS0FBSyxFQUNMO1FBQ0UsUUFBUSxFQUFFLEtBQUs7UUFDZixTQUFTLEVBQUUsS0FBSztRQUNoQixLQUFLO0tBQ04sQ0FDRixDQUFDLENBQUM7SUFDTCxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FDNUIsT0FBTyxDQUFDLGlCQUFpQixFQUN6QixDQUFDLEtBQVEsRUFBRSxFQUFDLElBQUksRUFBRSxLQUFLLEVBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDeEMsRUFBRSxFQUNGLEtBQUssRUFDTDtRQUNFLFFBQVEsRUFBRSxLQUFLO1FBQ2YsU0FBUyxFQUFFLEtBQUs7UUFDaEIsS0FBSztLQUNOLENBQ0YsQ0FBQyxDQUFDO0lBQ0wsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUN0QixPQUFPLENBQUMsV0FBVyxFQUNuQixDQUFDLEtBQVEsRUFBRSxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDeEMsRUFBRSxFQUNGLEtBQUssRUFDTDtRQUNFLFFBQVEsRUFBRSxLQUFLO1FBQ2YsU0FBUyxFQUFFLEtBQUs7UUFDaEIsS0FBSztLQUNOLENBQ0YsQ0FBQyxDQUFDO0lBQ0wsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQzFCLE9BQU8sQ0FBQyxlQUFlLEVBQ3ZCLENBQUMsS0FBUSxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUN4QyxFQUFFLEVBQ0YsS0FBSyxFQUNMO1FBQ0UsUUFBUSxFQUFFLEtBQUs7UUFDZixTQUFTLEVBQUUsS0FBSztRQUNoQixLQUFLO0tBQ04sQ0FDRixDQUFDLENBQUM7SUFDTCxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQ3hCLE9BQU8sQ0FBQyxhQUFhLEVBQ3JCLENBQUMsS0FBUSxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUN4QyxFQUFFLEVBQ0YsS0FBSyxFQUNMO1FBQ0UsUUFBUSxFQUFFLEtBQUs7UUFDZixTQUFTLEVBQUUsS0FBSztRQUNoQixLQUFLO0tBQ04sQ0FDRixDQUFDLENBQUM7SUFDTCxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsWUFBWSxFQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9FLE9BQU87UUFDTCxVQUFVO1FBQ1YsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2YsZUFBZTtRQUNmLGVBQWU7UUFDZixtQkFBbUI7UUFDbkIsZUFBZTtRQUNmLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2YsYUFBYTtRQUNiLGlCQUFpQjtRQUNqQixlQUFlO1FBQ2YsZUFBZTtRQUNmLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLGVBQWU7UUFDZixhQUFhO1FBQ2IsaUJBQWlCO1FBQ2pCLE9BQU87UUFDUCxTQUFTO1FBQ1QsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsb0JBQW9CO1FBQ3BCLFlBQVk7UUFDWixNQUFNO1FBQ04sUUFBUTtRQUNSLFFBQVE7S0FDVCxDQUFDO0FBRUosQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBSSxPQUF5QjtJQUNuRSxTQUFTLGlCQUFpQixDQUErQixZQUFlLEVBQUUsT0FBbUIsRUFBRSxHQUFHLEdBQXVDO1FBQ3ZJLE1BQU0sRUFBQyxHQUFHLE9BQU8sRUFBQyxHQUFHLGFBQWEsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE1BQU0sUUFBUSxHQUF1QztZQUNuRCxHQUFHLEdBQUc7WUFDTixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1NBQzFCLENBQUM7UUFDRixPQUFPLGFBQWEsQ0FBSSxZQUFZLEVBQ2xDLEdBQUcsUUFBUSxDQUNaLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTztRQUNMLGlCQUFpQjtLQUNsQixDQUFDO0FBQ0osQ0FBQztBQUdELE1BQU0sVUFBVSxxQkFBcUIsQ0FBd0MsWUFBZSxFQUFFLE9BQTJCO0lBRXZILE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBUSxFQUFFLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQ3RFO1FBQ0UsR0FBRyxLQUFLO1FBQ1IsU0FBUyxFQUFFLElBQUk7UUFDZixLQUFLLEVBQUUsSUFBSTtLQUNaLENBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFRLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQzVFO1FBQ0UsR0FBRyxLQUFLO1FBQ1IsSUFBSTtRQUNKLFFBQVEsRUFBRSxJQUFJO1FBQ2QsU0FBUyxFQUFFLEtBQUs7UUFDaEIsS0FBSyxFQUFFLElBQUk7S0FDWixDQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBUSxFQUFFLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLEdBQUcsS0FBSztRQUNSLFFBQVEsRUFBRSxLQUFLO1FBQ2YsU0FBUyxFQUFFLEtBQUs7UUFDaEIsS0FBSztLQUNOLENBQUMsQ0FBQyxDQUFDO0lBRUosTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFRLEVBQUUsRUFBRSxDQUFDLENBQzFEO1FBQ0UsR0FBRyxLQUFLO1FBQ1IsU0FBUyxFQUFFLElBQUk7UUFDZixLQUFLLEVBQUUsSUFBSTtLQUNaLENBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFRLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQ3hFO1FBQ0UsR0FBRyxLQUFLO1FBQ1IsSUFBSTtRQUNKLFFBQVEsRUFBRSxJQUFJO1FBQ2QsU0FBUyxFQUFFLEtBQUs7UUFDaEIsS0FBSyxFQUFFLElBQUk7S0FDWixDQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBUSxFQUFFLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUMxRDtRQUNFLEdBQUcsS0FBSztRQUNSLElBQUk7UUFDSixRQUFRLEVBQUUsSUFBSTtRQUNkLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLEtBQUssRUFBRSxJQUFJO0tBQ1osQ0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQVEsRUFBRSxFQUFDLElBQUksRUFBRSxLQUFLLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxRSxHQUFHLEtBQUs7UUFDUixRQUFRLEVBQUUsS0FBSztRQUNmLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLEtBQUs7S0FDTixDQUFDLENBQUMsQ0FBQztJQUVKLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBUSxFQUFFLFFBQVEsRUFBRSxFQUFFO1FBQzdELE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sRUFBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUMsU0FBUyxFQUFDLEVBQUMsQ0FBQztJQUMzQyxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFRLEVBQUUsRUFBRTtRQUM3RCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDckIsT0FBTyxFQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBQyxTQUFTLEVBQUMsRUFBQyxDQUFDO0lBQ3BDLENBQUMsQ0FDRixDQUFDO0lBRUYsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLEtBQUssRUFBRSxHQUFHLFlBQVksRUFBQyxDQUFDLENBQUMsQ0FBQztJQUMvRSxPQUFPO1FBQ0wsVUFBVTtRQUNWLGdCQUFnQjtRQUVoQixlQUFlO1FBQ2YsZUFBZTtRQUNmLGVBQWU7UUFFZixhQUFhO1FBQ2IsYUFBYTtRQUNiLGFBQWE7UUFFYixPQUFPO1FBQ1AsTUFBTTtLQUNQLENBQUM7QUFFSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY3Rpb25zLCBFbnRpdHlDcnVkU3RhdGUsIEVudGl0eVNpbmdsZUNydWRTdGF0ZSwgSUNyaXRlcmlhLCBPcHRSZXF1ZXN0LCBTaW5ndWxhckFjdGlvbnN9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7RW50aXR5QWRhcHRlcn0gZnJvbSAnQG5ncngvZW50aXR5JztcbmltcG9ydCB7QWN0aW9uQ3JlYXRvciwgY3JlYXRlUmVkdWNlciwgb24sIFJlZHVjZXJUeXBlc30gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtzZWxlY3RJZFZhbHVlLCB0b0RpY3Rpb25hcnl9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZXZhbERhdGE8VD4oZm46ICgpID0+IFQsIGRlZjogYW55ID0gbnVsbCk6IFQge1xuICB0cnkge1xuICAgIHJldHVybiBmbigpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGRlZjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ3J1ZE9uczxULCBTIGV4dGVuZHMgRW50aXR5Q3J1ZFN0YXRlPFQ+PihhZGFwdGVyOiBFbnRpdHlBZGFwdGVyPFQ+LCBpbml0aWFsU3RhdGU6IFMsIGFjdGlvbnM6IEFjdGlvbnM8VD4pOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgY29uc3Qgc2VhcmNoUmVxdWVzdE9uID0gb24oYWN0aW9ucy5TZWFyY2hSZXF1ZXN0LCAoc3RhdGU6IFMsIGNyaXRlcmlhOiBJQ3JpdGVyaWEpID0+IHtcbiAgICBpZiAoIWNyaXRlcmlhLnBhdGggJiYgIWNyaXRlcmlhLm1vZGUgJiYgIWNyaXRlcmlhLnF1ZXJ5UGFyYW1zKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0l0IGlzIG5vdCBwb3NzaWJsZSBhIHNlYXJjaCB3aXRob3V0IHBheWxvYWQsIHVzZSA6XFwne2NyaXRlcmlhOnt9fVxcJycpO1xuICAgIH1cblxuICAgIGNvbnN0IG1vZGUgPSBjcml0ZXJpYS5tb2RlIHx8ICcnO1xuICAgIGxldCBzZWxlY3RlZFN0YXRlUGFydGlhbCA9IHt9O1xuICAgIC8vIHNlIG5lbGxhIHN0cmluZ2EgZGVsbGEgbW9kYWxpdCdcbiAgICBpZiAobW9kZS5pbmRleE9mKCd1cGRhdGVNYW55LXNlbGVjdGVkJykgIT09IC0xKSB7XG4gICAgICBjb25zdCB7aXRlbVNlbGVjdGVkLCBpZFNlbGVjdGVkLCBlbnRpdGllc1NlbGVjdGVkLCBpZHNTZWxlY3RlZH0gPSBzdGF0ZTtcbiAgICAgIHNlbGVjdGVkU3RhdGVQYXJ0aWFsID0ge2l0ZW1TZWxlY3RlZCwgaWRTZWxlY3RlZCwgZW50aXRpZXNTZWxlY3RlZCwgaWRzU2VsZWN0ZWR9O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB7aXRlbVNlbGVjdGVkLCBpZFNlbGVjdGVkLCBlbnRpdGllc1NlbGVjdGVkLCBpZHNTZWxlY3RlZH0gPSBpbml0aWFsU3RhdGU7XG4gICAgICBzZWxlY3RlZFN0YXRlUGFydGlhbCA9IHtpdGVtU2VsZWN0ZWQsIGlkU2VsZWN0ZWQsIGVudGl0aWVzU2VsZWN0ZWQsIGlkc1NlbGVjdGVkfTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGlzTG9hZGluZzogdHJ1ZSxcbiAgICAgIGVycm9yOiBpbml0aWFsU3RhdGUuZXJyb3IsXG4gICAgICBsYXN0Q3JpdGVyaWE6IGNyaXRlcmlhLFxuICAgICAgLi4uc2VsZWN0ZWRTdGF0ZVBhcnRpYWxcbiAgICB9XG5cbiAgICBpZiAobW9kZS5pbmRleE9mKCdSRUZSRVNIJykgIT09IC0xIHx8IG1vZGUuaW5kZXhPZigndXBzZXJ0TWFueScpICE9PSAtMSkge1xuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH1cblxuICAgIHJldHVybiBhZGFwdGVyLnJlbW92ZUFsbChyZXN1bHQpO1xuICB9KTtcbiAgY29uc3QgZGVsZXRlUmVxdWVzdE9uID0gb24oYWN0aW9ucy5EZWxldGVSZXF1ZXN0LCAoc3RhdGU6IFMsIHJlcXVlc3Q6IE9wdFJlcXVlc3QpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7aXNMb2FkaW5nOiB0cnVlLCBlcnJvcjogaW5pdGlhbFN0YXRlLmVycm9yfVxuICAgICk7XG4gIH0pO1xuICBjb25zdCBkZWxldGVNYW55UmVxdWVzdE9uID0gb24oYWN0aW9ucy5EZWxldGVNYW55UmVxdWVzdCwgKHN0YXRlOiBTLCByZXF1ZXN0OiBPcHRSZXF1ZXN0KSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge2lzTG9hZGluZzogdHJ1ZSwgZXJyb3I6IGluaXRpYWxTdGF0ZS5lcnJvcn1cbiAgICApO1xuICB9KTtcbiAgY29uc3QgZWRpdFJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuRWRpdFJlcXVlc3QsIChzdGF0ZTogUywgcmVxdWVzdDogT3B0UmVxdWVzdCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtpc0xvYWRpbmc6IHRydWUsIGVycm9yOiBpbml0aWFsU3RhdGUuZXJyb3J9XG4gICAgKTtcbiAgfSk7XG4gIGNvbnN0IGVkaXRNYW55UmVxdWVzdE9uID0gb24oYWN0aW9ucy5FZGl0TWFueVJlcXVlc3QsIChzdGF0ZTogUywgcmVxdWVzdDogT3B0UmVxdWVzdCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtpc0xvYWRpbmc6IHRydWUsIGVycm9yOiBpbml0aWFsU3RhdGUuZXJyb3J9XG4gICAgKTtcbiAgfSk7XG4gIGNvbnN0IGNyZWF0ZVJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuQ3JlYXRlUmVxdWVzdCwgKHN0YXRlOiBTLCByZXF1ZXN0OiBPcHRSZXF1ZXN0KSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge2lzTG9hZGluZzogdHJ1ZSwgZXJyb3I6IGluaXRpYWxTdGF0ZS5lcnJvcn1cbiAgICApO1xuICB9KTtcbiAgY29uc3QgY3JlYXRlTWFueVJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuQ3JlYXRlTWFueVJlcXVlc3QsIChzdGF0ZTogUywgcmVxdWVzdDogT3B0UmVxdWVzdCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtpc0xvYWRpbmc6IHRydWUsIGVycm9yOiBpbml0aWFsU3RhdGUuZXJyb3J9XG4gICAgKTtcbiAgfSk7XG4gIGNvbnN0IHNlbGVjdFJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuU2VsZWN0UmVxdWVzdCwgKHN0YXRlOiBTLCByZXF1ZXN0OiBJQ3JpdGVyaWEpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7aXNMb2FkaW5nOiB0cnVlLCBlcnJvcjogaW5pdGlhbFN0YXRlLmVycm9yfVxuICAgICk7XG4gIH0pO1xuXG4gIGNvbnN0IHNlYXJjaFN1Y2Nlc3NPbiA9IG9uKGFjdGlvbnMuU2VhcmNoU3VjY2VzcywgKHN0YXRlOiBTLCB7dHlwZSwgaXRlbXMsIHJlcXVlc3R9KSA9PiB7XG4gICAgY29uc3QgbW9kZSA9IGV2YWxEYXRhKCgpID0+IHJlcXVlc3QubW9kZSwgbnVsbCkgfHwgJ3NldEFsbCc7XG4gICAgbGV0IG1ldGhvZDtcblxuICAgIGlmIChtb2RlLmluZGV4T2YoJ1JFRlJFU0gnKSAhPT0gLTEpIHtcbiAgICAgIG1ldGhvZCA9IGFkYXB0ZXIuc2V0QWxsO1xuICAgIH0gZWxzZSBpZiAobW9kZS5pbmRleE9mKCd1cHNlcnRNYW55JykgIT09IC0xKSB7XG4gICAgICBtZXRob2QgPSBhZGFwdGVyLnVwc2VydE1hbnk7XG4gICAgfSBlbHNlIGlmIChtb2RlLmluZGV4T2YoJ3NldEFsbCcpICE9PSAtMSkge1xuICAgICAgbWV0aG9kID0gYWRhcHRlci5zZXRBbGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1ldGhvZCA9IGFkYXB0ZXIuc2V0QWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGVjdGVkU3RhdGVQYXJ0aWFsID0ge2VudGl0aWVzU2VsZWN0ZWQ6IHN0YXRlLmVudGl0aWVzU2VsZWN0ZWQsIGlkc1NlbGVjdGVkOiBzdGF0ZS5pZHNTZWxlY3RlZH07XG4gICAgaWYgKG1vZGUuaW5kZXhPZigndXBkYXRlTWFueS1zZWxlY3RlZCcpICE9PSAtMSkge1xuICAgICAgLy8gY3JlbyB1bm8gc3RhdGUgdGVtcG9yYW5lbyBjb24gaSBkYXRpIGRlZ2xpIGVsZW1lbnRpIHNlbGV6aW9uYXRpXG4gICAgICBjb25zdCBzZWxlY3RlZFN0YXRlID0ge1xuICAgICAgICBlbnRpdGllczogc3RhdGUuZW50aXRpZXNTZWxlY3RlZCxcbiAgICAgICAgaWRzOiBzdGF0ZS5pZHNTZWxlY3RlZFxuICAgICAgfVxuICAgICAgLy8gcHJlcGFybyBnbGkgaXRlbSByaXRvcm5hdGkgZGFsbGEgcmljZXJjYSBwZXIgYWdnaW9ybmFyZVxuICAgICAgY29uc3QgaXRlbXNCOiBhbnkgPSBpdGVtcy5tYXAoKGl0ZW0pID0+IChPYmplY3QuYXNzaWduKHt9LCB7aWQ6IGFkYXB0ZXIuc2VsZWN0SWQoaXRlbSksIGNoYW5nZXM6IGl0ZW19KSkpO1xuICAgICAgLy8gdXRpbGl6em8gaWwgbWV0b2RvIGFkYXB0ZXIudXBkYXRlTWFueSBwZXIgYWdnaW9ybmFyZSBnbGkgZWxlbWVudGkgc2VsZXppb25hdGlcbiAgICAgIGNvbnN0IG5ld1NlbGVjdGVkU3RhdGUgPSBhZGFwdGVyLnVwZGF0ZU1hbnkoaXRlbXNCLCB7Li4uc2VsZWN0ZWRTdGF0ZSBhcyBhbnl9KTtcblxuICAgICAgc2VsZWN0ZWRTdGF0ZVBhcnRpYWwuZW50aXRpZXNTZWxlY3RlZCA9IG5ld1NlbGVjdGVkU3RhdGUuZW50aXRpZXM7XG4gICAgICBzZWxlY3RlZFN0YXRlUGFydGlhbC5pZHNTZWxlY3RlZCA9IG5ld1NlbGVjdGVkU3RhdGUuaWRzO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRob2QoaXRlbXMsXG4gICAgICB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAuLi5zZWxlY3RlZFN0YXRlUGFydGlhbCxcbiAgICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBudWxsXG4gICAgICB9XG4gICAgKTtcbiAgfSk7XG4gIGNvbnN0IGRlbGV0ZVN1Y2Nlc3NPbiA9IG9uKGFjdGlvbnMuRGVsZXRlU3VjY2VzcywgKHN0YXRlOiBTLCB7dHlwZSwgaWR9KSA9PiB7XG5cbiAgICAgIC8vIHRvbGdvIGRhbGxvIHN0b3JlLmlkc1NlbGVjdGVkIGwnZWxlbWVudG8gY2FuY2VsbGF0b1xuICAgICAgY29uc3QgaWRzU2VsZWN0ZWQgPSAoc3RhdGUuaWRzU2VsZWN0ZWQgYXMgYW55W10pLmZpbHRlcigoaWRBKSA9PiBpZEEgPT09IGlkKTtcbiAgICAgIGNvbnN0IGVudGl0aWVzU2VsZWN0ZWQgPSBpZHNTZWxlY3RlZC5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHtcbiAgICAgICAgcHJldltjdXJyXSA9IHN0YXRlLmVudGl0aWVzU2VsZWN0ZWRbY3Vycl07XG4gICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgfSwge30pO1xuXG4gICAgICAvLyBzZSBobyBjYW5jZWxsYXRvIGwnaWQgc2VlemlvbmF0bywgbG8gdG9sZ28gZGFsbG8gc3RvcmUuXG4gICAgICBjb25zdCBpZFNlbGVjdGVkID0gISFzdGF0ZS5pZFNlbGVjdGVkICYmIHN0YXRlLmlkU2VsZWN0ZWQgPT09IGlkID8gbnVsbCA6IHN0YXRlLmlkU2VsZWN0ZWQ7XG4gICAgICBjb25zdCBpdGVtU2VsZWN0ZWQgPSAhaWRTZWxlY3RlZCA/IG51bGwgOiBzdGF0ZS5pdGVtU2VsZWN0ZWQ7XG5cbiAgICAgIHJldHVybiBhZGFwdGVyLnJlbW92ZU9uZShpZCxcbiAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7fSwgc3RhdGUsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgICBpZFNlbGVjdGVkLFxuICAgICAgICAgICAgaWRzU2VsZWN0ZWQsXG4gICAgICAgICAgICBpdGVtU2VsZWN0ZWQsXG4gICAgICAgICAgICBlbnRpdGllc1NlbGVjdGVkXG4gICAgICAgICAgfVxuICAgICAgICApKTtcbiAgICB9XG4gICk7XG5cbiAgY29uc3QgZGVsZXRlTWFueVN1Y2Nlc3NPbiA9IG9uKGFjdGlvbnMuRGVsZXRlTWFueVN1Y2Nlc3MsIChzdGF0ZTogUywge3R5cGUsIGlkc30pID0+IHtcblxuICAgIC8vIHRvbGdvIGRhbGxvIHN0b3JlLmlkc1NlbGVjdGVkIGdsaSBlbGVtZW50aSBjaGUgc29ubyBzdGF0aSBjYW5jZWxsYXRpLlxuICAgIGNvbnN0IGlkc1NlbGVjdGVkOiBzdHJpbmdbXSA9IChzdGF0ZS5pZHNTZWxlY3RlZCBhcyBhbnlbXSkuZmlsdGVyKChpZCkgPT4gIShpZCBpbiBpZHMpKTtcbiAgICBjb25zdCBlbnRpdGllc1NlbGVjdGVkID0gaWRzU2VsZWN0ZWQucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICBwcmV2W2N1cnJdID0gc3RhdGUuZW50aXRpZXNTZWxlY3RlZFtjdXJyXTtcbiAgICAgIHJldHVybiBwcmV2O1xuICAgIH0sIHt9KTtcblxuICAgIC8vIHNlIGhvIGNhbmNlbGxhdG8gbCdpZCBzZWV6aW9uYXRvLCBsbyB0b2xnbyBkYWxsbyBzdG9yZS5cbiAgICBjb25zdCBpZFNlbGVjdGVkID0gISFzdGF0ZS5pZFNlbGVjdGVkICYmIHN0YXRlLmlkU2VsZWN0ZWQgaW4gaWRzID8gbnVsbCA6IHN0YXRlLmlkU2VsZWN0ZWQ7XG4gICAgY29uc3QgaXRlbVNlbGVjdGVkID0gIWlkU2VsZWN0ZWQgPyBudWxsIDogc3RhdGUuaXRlbVNlbGVjdGVkO1xuICAgIHJldHVybiBhZGFwdGVyLnJlbW92ZU1hbnkoaWRzLFxuICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30sIHN0YXRlLFxuICAgICAgICB7XG4gICAgICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICBpZFNlbGVjdGVkLFxuICAgICAgICAgIGlkc1NlbGVjdGVkLFxuICAgICAgICAgIGl0ZW1TZWxlY3RlZCxcbiAgICAgICAgICBlbnRpdGllc1NlbGVjdGVkXG4gICAgICAgIH1cbiAgICAgICkpO1xuICB9KTtcblxuICBjb25zdCBkZWxldGVPbiA9IG9uKGFjdGlvbnMuRGVsZXRlLCAoc3RhdGU6IFMsIHt0eXBlLCBpZH0pID0+IHtcbiAgICAgIC8vIHRvbGdvIGRhbGxvIHN0b3JlLmlkc1NlbGVjdGVkIGwnZWxlbWVudG8gY2FuY2VsbGF0b1xuICAgICAgY29uc3QgaWRzU2VsZWN0ZWQgPSAoc3RhdGUuaWRzU2VsZWN0ZWQgYXMgYW55W10pLmZpbHRlcigoaWRBKSA9PiBpZEEgPT09IGlkKTtcblxuICAgICAgLy8gc2UgaG8gY2FuY2VsbGF0byBsJ2lkIHNlZXppb25hdG8sIGxvIHRvbGdvIGRhbGxvIHN0b3JlLlxuICAgICAgY29uc3QgaWRTZWxlY3RlZCA9ICEhc3RhdGUuaWRTZWxlY3RlZCAmJiBzdGF0ZS5pZFNlbGVjdGVkID09PSBpZCA/IG51bGwgOiBzdGF0ZS5pZFNlbGVjdGVkO1xuXG4gICAgICByZXR1cm4gYWRhcHRlci5yZW1vdmVPbmUoaWQsXG4gICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAge30sIHN0YXRlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgaWRTZWxlY3RlZCxcbiAgICAgICAgICAgIGlkc1NlbGVjdGVkXG4gICAgICAgICAgfVxuICAgICAgICApKTtcbiAgICB9XG4gICk7XG4gIGNvbnN0IHJlc3BvbnNlT24gPSBvbihhY3Rpb25zLlJlc3BvbnNlLCAoc3RhdGU6IFMsIHJlc3BvbnNlKSA9PiB7XG4gICAgY29uc3QgcmVzcG9uc2VzID0gWy4uLnN0YXRlLnJlc3BvbnNlcywgcmVzcG9uc2VdO1xuICAgIHJldHVybiB7Li4ue30sIC4uLnN0YXRlLCAuLi57cmVzcG9uc2VzfX07XG4gIH0pO1xuXG4gIGNvbnN0IHJlc2V0UmVzcG9uc2VzT24gPSBvbihhY3Rpb25zLlJlc2V0UmVzcG9uc2VzLCAoc3RhdGU6IFMpID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlcyA9IFtdO1xuICAgICAgcmV0dXJuIHsuLi5zdGF0ZSwgLi4ue3Jlc3BvbnNlc319O1xuICAgIH1cbiAgKTtcbiAgY29uc3QgY3JlYXRlU3VjY2Vzc09uID0gb24oYWN0aW9ucy5DcmVhdGVTdWNjZXNzLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtfSkgPT4gYWRhcHRlci5hZGRPbmUoaXRlbSxcbiAgICBPYmplY3QuYXNzaWduKFxuICAgICAge30sIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgIH1cbiAgICApKSk7XG4gIGNvbnN0IGNyZWF0ZU1hbnlTdWNjZXNzT24gPSBvbihhY3Rpb25zLkNyZWF0ZU1hbnlTdWNjZXNzLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtc30pID0+IGFkYXB0ZXIuYWRkTWFueShpdGVtcyxcbiAgICBPYmplY3QuYXNzaWduKFxuICAgICAge30sIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgIH1cbiAgICApKSk7XG4gIGNvbnN0IGNyZWF0ZU9uID0gb24oYWN0aW9ucy5DcmVhdGUsIChzdGF0ZTogUywge3R5cGUsIGl0ZW19KSA9PiBhZGFwdGVyLmFkZE9uZShpdGVtLFxuICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSwgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgfVxuICAgICkpKTtcbiAgY29uc3QgZWRpdFN1Y2Nlc3NPbiA9IG9uKGFjdGlvbnMuRWRpdFN1Y2Nlc3MsIChzdGF0ZTogUywge2l0ZW0sIHR5cGV9KSA9PiBhZGFwdGVyLnVwc2VydE9uZShpdGVtLFxuICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSwgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgfVxuICAgICkpKTtcbiAgY29uc3QgZWRpdE1hbnlTdWNjZXNzT24gPSBvbihhY3Rpb25zLkVkaXRNYW55U3VjY2VzcywgKHN0YXRlOiBTLCB7aXRlbXMsIHR5cGV9KSA9PiBhZGFwdGVyLnVwc2VydE1hbnkoaXRlbXMsXG4gICAgT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LCBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBudWxsXG4gICAgICB9XG4gICAgKSkpO1xuICBjb25zdCBlZGl0T24gPSBvbihhY3Rpb25zLkVkaXQsIChzdGF0ZTogUywge2l0ZW0sIHR5cGV9KSA9PiBhZGFwdGVyLnVwc2VydE9uZShpdGVtLFxuICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSwgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgfVxuICAgICkpKTtcbiAgY29uc3QgZmlsdGVyc09uID0gb24oYWN0aW9ucy5GaWx0ZXJzLCAoc3RhdGU6IFMsIHt0eXBlLCBmaWx0ZXJzfSkgPT4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHtmaWx0ZXJzfSkpO1xuXG4gIGNvbnN0IHJlbW92ZUFsbFNlbGVjdGVkT24gPSBvbihhY3Rpb25zLlJlbW92ZUFsbFNlbGVjdGVkLCAoc3RhdGU6IFMsIHt0eXBlfTogeyB0eXBlOiBzdHJpbmcgfSkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaWRzU2VsZWN0ZWQ6IFtdLFxuICAgICAgLy8gaXRlbXNTZWxlY3RlZDogW10sIC8vdG9kbzogQGRlcHJlY2F0ZWQgZGEgY2FuY2VsbGFyZSBxdWVzdG8gdGlwbyBkaSBhc3NlZ25hemlvbmUuXG4gICAgICBlbnRpdGllc1NlbGVjdGVkOiB7fVxuICAgIH07XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcblxuICBjb25zdCBhZGRNYW55U2VsZWN0ZWRPbiA9IG9uKGFjdGlvbnMuQWRkTWFueVNlbGVjdGVkLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtc306IHsgdHlwZTogc3RyaW5nLCBpdGVtczogVFtdIH0pID0+IHtcbiAgICBjb25zdCBlbnRpdGllc0N1cnIgPSB0b0RpY3Rpb25hcnkoaXRlbXMsIGFkYXB0ZXIpO1xuICAgIGNvbnN0IGVudGl0aWVzU2VsZWN0ZWQgPSB7Li4uc3RhdGUuZW50aXRpZXNTZWxlY3RlZCwgLi4uZW50aXRpZXNDdXJyfTtcbiAgICBjb25zdCBpZHNTZWxlY3RlZCA9IE9iamVjdC5rZXlzKGVudGl0aWVzU2VsZWN0ZWQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaWRzU2VsZWN0ZWQsXG4gICAgICAvLyBpdGVtc1NlbGVjdGVkOiBpdGVtcywgLy90b2RvOiBAZGVwcmVjYXRlZCBkYSBjYW5jZWxsYXJlIHF1ZXN0byB0aXBvIGRpIGFzc2VnbmF6aW9uZS5cbiAgICAgIGVudGl0aWVzU2VsZWN0ZWRcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG5cbiAgY29uc3QgcmVtb3ZlTWFueVNlbGVjdGVkT24gPSBvbihhY3Rpb25zLlJlbW92ZU1hbnlTZWxlY3RlZCwgKHN0YXRlOiBTLCB7dHlwZSwgaWRzfTogeyB0eXBlOiBzdHJpbmcsIGlkczogc3RyaW5nW10gfSkgPT4ge1xuICAgIGNvbnN0IGlkc0FzU3RyaW5nID0gaWRzLm1hcCh4ID0+IHggKyAnJyk7XG4gICAgY29uc3QgaWRzU2VsZWN0ZWQgPSBPYmplY3Qua2V5cyhzdGF0ZS5lbnRpdGllc1NlbGVjdGVkKS5maWx0ZXIoaWQgPT4gIWlkc0FzU3RyaW5nLmluY2x1ZGVzKGlkICsgJycpKTtcbiAgICBjb25zdCBlbnRpdGllc1NlbGVjdGVkID0gaWRzU2VsZWN0ZWQucmVkdWNlKChwcmVjLCBjdXJyKSA9PiAoey4uLnByZWMsIFtjdXJyXTogc3RhdGUuZW50aXRpZXNTZWxlY3RlZFtjdXJyXX0pLCB7fSk7XG4gICAgLy8gY29uc3QgaXRlbXNTZWxlY3RlZCA9IE9iamVjdC52YWx1ZXMoZW50aXRpZXNTZWxlY3RlZCk7XG5cbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGlkc1NlbGVjdGVkLFxuICAgICAgLy8gaXRlbXNTZWxlY3RlZCwgLy90b2RvOiBAZGVwcmVjYXRlZCBkYSBjYW5jZWxsYXJlIHF1ZXN0byB0aXBvIGRpIGFzc2VnbmF6aW9uZS5cbiAgICAgIGVudGl0aWVzU2VsZWN0ZWRcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG5cbiAgY29uc3Qgc2VsZWN0SXRlbXNPbiA9IG9uKGFjdGlvbnMuU2VsZWN0SXRlbXMsIChzdGF0ZTogUywge3R5cGUsIGl0ZW1zfSkgPT4ge1xuICAgIGNvbnN0IGVudGl0aWVzU2VsZWN0ZWQgPSB0b0RpY3Rpb25hcnkoaXRlbXMsIGFkYXB0ZXIpO1xuICAgIGNvbnN0IGlkc1NlbGVjdGVkID0gT2JqZWN0LmtleXMoZW50aXRpZXNTZWxlY3RlZCk7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBpZHNTZWxlY3RlZCxcbiAgICAgIC8vIGl0ZW1zU2VsZWN0ZWQ6IGl0ZW1zLFxuICAgICAgZW50aXRpZXNTZWxlY3RlZFxuICAgIH07XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcbiAgY29uc3Qgc2VsZWN0SXRlbU9uID0gb24oYWN0aW9ucy5TZWxlY3RJdGVtLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtfSkgPT4ge1xuICAgIGNvbnN0IGlkU2VsZWN0ZWQgPSBzZWxlY3RJZFZhbHVlKGl0ZW0sIGFkYXB0ZXIuc2VsZWN0SWQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaWRTZWxlY3RlZCxcbiAgICAgIGl0ZW1TZWxlY3RlZDogaXRlbVxuICAgIH07XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcbiAgY29uc3Qgc2VsZWN0U3VjY2Vzc09uID0gb24oYWN0aW9ucy5TZWxlY3RTdWNjZXNzLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtfSkgPT4ge1xuICAgICAgY29uc3QgaWRTZWxlY3RlZCA9IHNlbGVjdElkVmFsdWUoaXRlbSwgYWRhcHRlci5zZWxlY3RJZCk7XG4gICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBpZFNlbGVjdGVkLFxuICAgICAgICBpdGVtU2VsZWN0ZWQ6IGl0ZW0sXG4gICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICk7XG4gIGNvbnN0IHNlYXJjaEZhaWx1cmVPbiA9IG9uKFxuICAgIGFjdGlvbnMuU2VhcmNoRmFpbHVyZSxcbiAgICAoc3RhdGU6IFMsIHt0eXBlLCBlcnJvcn0pID0+IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yXG4gICAgICB9XG4gICAgKSk7XG4gIGNvbnN0IGRlbGV0ZUZhaWx1cmVPbiA9IG9uKFxuICAgIGFjdGlvbnMuRGVsZXRlRmFpbHVyZSxcbiAgICAoc3RhdGU6IFMsIHt0eXBlLCBlcnJvcn0pID0+IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yXG4gICAgICB9XG4gICAgKSk7XG4gIGNvbnN0IGRlbGV0ZU1hbnlGYWlsdXJlT24gPSBvbihcbiAgICBhY3Rpb25zLkRlbGV0ZU1hbnlGYWlsdXJlLFxuICAgIChzdGF0ZTogUywge3R5cGUsIGVycm9yfSkgPT4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiBmYWxzZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3JcbiAgICAgIH1cbiAgICApKTtcbiAgY29uc3QgY3JlYXRlRmFpbHVyZU9uID0gb24oXG4gICAgYWN0aW9ucy5DcmVhdGVGYWlsdXJlLFxuICAgIChzdGF0ZTogUywge3R5cGUsIGVycm9yfSkgPT4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiBmYWxzZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3JcbiAgICAgIH1cbiAgICApKTtcbiAgY29uc3QgY3JlYXRlTWFueUZhaWx1cmVPbiA9IG9uKFxuICAgIGFjdGlvbnMuQ3JlYXRlTWFueUZhaWx1cmUsXG4gICAgKHN0YXRlOiBTLCB7dHlwZSwgZXJyb3J9KSA9PiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgICkpO1xuICBjb25zdCBlZGl0RmFpbHVyZU9uID0gb24oXG4gICAgYWN0aW9ucy5FZGl0RmFpbHVyZSxcbiAgICAoc3RhdGU6IFMsIHtlcnJvciwgdHlwZX0pID0+IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yXG4gICAgICB9XG4gICAgKSk7XG4gIGNvbnN0IGVkaXRNYW55RmFpbHVyZU9uID0gb24oXG4gICAgYWN0aW9ucy5FZGl0TWFueUZhaWx1cmUsXG4gICAgKHN0YXRlOiBTLCB7ZXJyb3IsIHR5cGV9KSA9PiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgICkpO1xuICBjb25zdCBzZWxlY3RGYWlsdXJlT24gPSBvbihcbiAgICBhY3Rpb25zLlNlbGVjdEZhaWx1cmUsXG4gICAgKHN0YXRlOiBTLCB7ZXJyb3IsIHR5cGV9KSA9PiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgICkpO1xuICBjb25zdCByZXNldE9uID0gb24oYWN0aW9ucy5SZXNldCwgKHN0YXRlOiBTKSA9PiAoey4uLnN0YXRlLCAuLi5pbml0aWFsU3RhdGV9KSk7XG4gIHJldHVybiB7XG4gICAgcmVzcG9uc2VPbixcbiAgICByZXNldFJlc3BvbnNlc09uLFxuICAgIHNlYXJjaFJlcXVlc3RPbixcbiAgICBkZWxldGVSZXF1ZXN0T24sXG4gICAgZGVsZXRlTWFueVJlcXVlc3RPbixcbiAgICBlZGl0UmVxdWVzdE9uLFxuICAgIGVkaXRNYW55UmVxdWVzdE9uLFxuICAgIGNyZWF0ZVJlcXVlc3RPbixcbiAgICBjcmVhdGVNYW55UmVxdWVzdE9uLFxuICAgIHNlbGVjdFJlcXVlc3RPbixcbiAgICBzZWFyY2hTdWNjZXNzT24sXG4gICAgZGVsZXRlU3VjY2Vzc09uLFxuICAgIGRlbGV0ZU1hbnlTdWNjZXNzT24sXG4gICAgY3JlYXRlU3VjY2Vzc09uLFxuICAgIGNyZWF0ZU1hbnlTdWNjZXNzT24sXG4gICAgc2VsZWN0U3VjY2Vzc09uLFxuICAgIGVkaXRTdWNjZXNzT24sXG4gICAgZWRpdE1hbnlTdWNjZXNzT24sXG4gICAgc2VhcmNoRmFpbHVyZU9uLFxuICAgIGRlbGV0ZUZhaWx1cmVPbixcbiAgICBkZWxldGVNYW55RmFpbHVyZU9uLFxuICAgIGNyZWF0ZUZhaWx1cmVPbixcbiAgICBjcmVhdGVNYW55RmFpbHVyZU9uLFxuICAgIHNlbGVjdEZhaWx1cmVPbixcbiAgICBlZGl0RmFpbHVyZU9uLFxuICAgIGVkaXRNYW55RmFpbHVyZU9uLFxuICAgIHJlc2V0T24sXG4gICAgZmlsdGVyc09uLFxuICAgIHNlbGVjdEl0ZW1zT24sXG4gICAgcmVtb3ZlQWxsU2VsZWN0ZWRPbixcbiAgICBhZGRNYW55U2VsZWN0ZWRPbixcbiAgICByZW1vdmVNYW55U2VsZWN0ZWRPbixcbiAgICBzZWxlY3RJdGVtT24sXG4gICAgZWRpdE9uLFxuICAgIGNyZWF0ZU9uLFxuICAgIGRlbGV0ZU9uXG4gIH07XG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNydWRSZWR1Y2VyRmFjdG9yeTxUPihhZGFwdGVyOiBFbnRpdHlBZGFwdGVyPFQ+KSB7XG4gIGZ1bmN0aW9uIGNyZWF0ZUNydWRSZWR1Y2VyPFMgZXh0ZW5kcyBFbnRpdHlDcnVkU3RhdGU8VD4+KGluaXRpYWxTdGF0ZTogUywgYWN0aW9uczogQWN0aW9uczxUPiwgLi4ub25zOiBSZWR1Y2VyVHlwZXM8UywgQWN0aW9uQ3JlYXRvcltdPltdKSB7XG4gICAgY29uc3Qgey4uLmNydWRPbnN9ID0gY3JlYXRlQ3J1ZE9ucyhhZGFwdGVyLCBpbml0aWFsU3RhdGUsIGFjdGlvbnMpO1xuICAgIGNvbnN0IHRvdGFsT25zOiBSZWR1Y2VyVHlwZXM8UywgQWN0aW9uQ3JlYXRvcltdPltdID0gW1xuICAgICAgLi4ub25zLFxuICAgICAgLi4uT2JqZWN0LnZhbHVlcyhjcnVkT25zKVxuICAgIF07XG4gICAgcmV0dXJuIGNyZWF0ZVJlZHVjZXI8Uz4oaW5pdGlhbFN0YXRlLFxuICAgICAgLi4udG90YWxPbnNcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBjcmVhdGVDcnVkUmVkdWNlclxuICB9O1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTaW5ndWxhckNydWRPbnM8VCwgUyBleHRlbmRzIEVudGl0eVNpbmdsZUNydWRTdGF0ZTxUPj4oaW5pdGlhbFN0YXRlOiBTLCBhY3Rpb25zOiBTaW5ndWxhckFjdGlvbnM8VD4pOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcblxuICBjb25zdCBzZWxlY3RSZXF1ZXN0T24gPSBvbihhY3Rpb25zLlNlbGVjdFJlcXVlc3QsIChzdGF0ZTogUywge3R5cGV9KSA9PiAoXG4gICAge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBpc0xvYWRpbmc6IHRydWUsXG4gICAgICBlcnJvcjogbnVsbFxuICAgIH1cbiAgKSk7XG5cbiAgY29uc3Qgc2VsZWN0U3VjY2Vzc09uID0gb24oYWN0aW9ucy5TZWxlY3RTdWNjZXNzLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtfSkgPT4gKFxuICAgIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaXRlbSxcbiAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgIGVycm9yOiBudWxsXG4gICAgfVxuICApKTtcblxuICBjb25zdCBzZWxlY3RGYWlsdXJlT24gPSBvbihhY3Rpb25zLlNlbGVjdEZhaWx1cmUsIChzdGF0ZTogUywge3R5cGUsIGVycm9yfSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICBlcnJvclxuICB9KSk7XG5cbiAgY29uc3QgZWRpdFJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuRWRpdFJlcXVlc3QsIChzdGF0ZTogUykgPT4gKFxuICAgIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgZXJyb3I6IG51bGxcbiAgICB9XG4gICkpO1xuXG4gIGNvbnN0IGVkaXRTdWNjZXNzT24gPSBvbihhY3Rpb25zLkVkaXRTdWNjZXNzLCAoc3RhdGU6IFMsIHtpdGVtLCB0eXBlfSkgPT4gKFxuICAgIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaXRlbSxcbiAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgIGVycm9yOiBudWxsXG4gICAgfVxuICApKTtcblxuICBjb25zdCBlZGl0T24gPSBvbihhY3Rpb25zLkVkaXQsIChzdGF0ZTogUywge2l0ZW0sIHR5cGV9KSA9PiAoXG4gICAge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBpdGVtLFxuICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgZXJyb3I6IG51bGxcbiAgICB9XG4gICkpO1xuXG4gIGNvbnN0IGVkaXRGYWlsdXJlT24gPSBvbihhY3Rpb25zLkVkaXRGYWlsdXJlLCAoc3RhdGU6IFMsIHt0eXBlLCBlcnJvcn0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgZXJyb3JcbiAgfSkpO1xuXG4gIGNvbnN0IHJlc3BvbnNlT24gPSBvbihhY3Rpb25zLlJlc3BvbnNlLCAoc3RhdGU6IFMsIHJlc3BvbnNlKSA9PiB7XG4gICAgY29uc3QgcmVzcG9uc2VzID0gWy4uLnN0YXRlLnJlc3BvbnNlcywgcmVzcG9uc2VdO1xuICAgIHJldHVybiB7Li4ue30sIC4uLnN0YXRlLCAuLi57cmVzcG9uc2VzfX07XG4gIH0pO1xuXG4gIGNvbnN0IHJlc2V0UmVzcG9uc2VzT24gPSBvbihhY3Rpb25zLlJlc2V0UmVzcG9uc2VzLCAoc3RhdGU6IFMpID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlcyA9IFtdO1xuICAgICAgcmV0dXJuIHsuLi5zdGF0ZSwgLi4ue3Jlc3BvbnNlc319O1xuICAgIH1cbiAgKTtcblxuICBjb25zdCByZXNldE9uID0gb24oYWN0aW9ucy5SZXNldCwgKHN0YXRlOiBTKSA9PiAoey4uLnN0YXRlLCAuLi5pbml0aWFsU3RhdGV9KSk7XG4gIHJldHVybiB7XG4gICAgcmVzcG9uc2VPbixcbiAgICByZXNldFJlc3BvbnNlc09uLFxuXG4gICAgc2VsZWN0UmVxdWVzdE9uLFxuICAgIHNlbGVjdFN1Y2Nlc3NPbixcbiAgICBzZWxlY3RGYWlsdXJlT24sXG5cbiAgICBlZGl0UmVxdWVzdE9uLFxuICAgIGVkaXRTdWNjZXNzT24sXG4gICAgZWRpdEZhaWx1cmVPbixcblxuICAgIHJlc2V0T24sXG4gICAgZWRpdE9uLFxuICB9O1xuXG59XG4iXX0=
|
|
422
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25ncngtZW50aXR5LWNydWQvc3JjL2xpYi9yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLEVBQUUsRUFBZSxNQUFNLGFBQWEsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxFQUFFLFlBQVksRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUVwRCxNQUFNLFVBQVUsUUFBUSxDQUFJLEVBQVcsRUFBRSxNQUFXLElBQUk7SUFDdEQsSUFBSTtRQUNGLE9BQU8sRUFBRSxFQUFFLENBQUM7S0FDYjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxHQUFHLENBQUM7S0FDWjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFrQyxPQUF5QixFQUFFLFlBQWUsRUFBRSxPQUFtQjtJQUM1SCxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQVEsRUFBRSxRQUFtQixFQUFFLEVBQUU7UUFDbEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRTtZQUM3RCxNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxDQUFDLENBQUM7U0FDeEY7UUFFRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUM5QixrQ0FBa0M7UUFDbEMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDOUMsTUFBTSxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ3hFLG9CQUFv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O0FBRUosQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWN0aW9ucywgRW50aXR5Q3J1ZFN0YXRlLCBFbnRpdHlTaW5nbGVDcnVkU3RhdGUsIElDcml0ZXJpYSwgT3B0UmVxdWVzdCwgU2luZ3VsYXJBY3Rpb25zfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQge0VudGl0eUFkYXB0ZXJ9IGZyb20gJ0BuZ3J4L2VudGl0eSc7XG5pbXBvcnQge0FjdGlvbkNyZWF0b3IsIGNyZWF0ZVJlZHVjZXIsIG9uLCBSZWR1Y2VyVHlwZXN9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7c2VsZWN0SWRWYWx1ZSwgdG9EaWN0aW9uYXJ5fSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGV2YWxEYXRhPFQ+KGZuOiAoKSA9PiBULCBkZWY6IGFueSA9IG51bGwpOiBUIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZm4oKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBkZWY7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNydWRPbnM8VCwgUyBleHRlbmRzIEVudGl0eUNydWRTdGF0ZTxUPj4oYWRhcHRlcjogRW50aXR5QWRhcHRlcjxUPiwgaW5pdGlhbFN0YXRlOiBTLCBhY3Rpb25zOiBBY3Rpb25zPFQ+KTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gIGNvbnN0IHNlYXJjaFJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuU2VhcmNoUmVxdWVzdCwgKHN0YXRlOiBTLCBjcml0ZXJpYTogSUNyaXRlcmlhKSA9PiB7XG4gICAgaWYgKCFjcml0ZXJpYS5wYXRoICYmICFjcml0ZXJpYS5tb2RlICYmICFjcml0ZXJpYS5xdWVyeVBhcmFtcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJdCBpcyBub3QgcG9zc2libGUgYSBzZWFyY2ggd2l0aG91dCBwYXlsb2FkLCB1c2UgOlxcJ3tjcml0ZXJpYTp7fX1cXCcnKTtcbiAgICB9XG5cbiAgICBjb25zdCBtb2RlID0gY3JpdGVyaWEubW9kZSB8fCAnJztcbiAgICBsZXQgc2VsZWN0ZWRTdGF0ZVBhcnRpYWwgPSB7fTtcbiAgICAvLyBzZSBuZWxsYSBzdHJpbmdhIGRlbGxhIG1vZGFsaXQnXG4gICAgaWYgKG1vZGUuaW5kZXhPZigndXBkYXRlTWFueS1zZWxlY3RlZCcpICE9PSAtMSkge1xuICAgICAgY29uc3Qge2l0ZW1TZWxlY3RlZCwgaWRTZWxlY3RlZCwgZW50aXRpZXNTZWxlY3RlZCwgaWRzU2VsZWN0ZWR9ID0gc3RhdGU7XG4gICAgICBzZWxlY3RlZFN0YXRlUGFydGlhbCA9IHtpdGVtU2VsZWN0ZWQsIGlkU2VsZWN0ZWQsIGVudGl0aWVzU2VsZWN0ZWQsIGlkc1NlbGVjdGVkfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qge2l0ZW1TZWxlY3RlZCwgaWRTZWxlY3RlZCwgZW50aXRpZXNTZWxlY3RlZCwgaWRzU2VsZWN0ZWR9ID0gaW5pdGlhbFN0YXRlO1xuICAgICAgc2VsZWN0ZWRTdGF0ZVBhcnRpYWwgPSB7aXRlbVNlbGVjdGVkLCBpZFNlbGVjdGVkLCBlbnRpdGllc1NlbGVjdGVkLCBpZHNTZWxlY3RlZH07XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBpc0xvYWRpbmc6IHRydWUsXG4gICAgICBlcnJvcjogaW5pdGlhbFN0YXRlLmVycm9yLFxuICAgICAgbGFzdENyaXRlcmlhOiBjcml0ZXJpYSxcbiAgICAgIC4uLnNlbGVjdGVkU3RhdGVQYXJ0aWFsXG4gICAgfVxuXG4gICAgaWYgKG1vZGUuaW5kZXhPZignUkVGUkVTSCcpICE9PSAtMSB8fCBtb2RlLmluZGV4T2YoJ3Vwc2VydE1hbnknKSAhPT0gLTEpIHtcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICByZXR1cm4gYWRhcHRlci5yZW1vdmVBbGwocmVzdWx0KTtcbiAgfSk7XG4gIGNvbnN0IGRlbGV0ZVJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuRGVsZXRlUmVxdWVzdCwgKHN0YXRlOiBTLCByZXF1ZXN0OiBPcHRSZXF1ZXN0KSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge2lzTG9hZGluZzogdHJ1ZSwgZXJyb3I6IGluaXRpYWxTdGF0ZS5lcnJvcn1cbiAgICApO1xuICB9KTtcbiAgY29uc3QgZGVsZXRlTWFueVJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuRGVsZXRlTWFueVJlcXVlc3QsIChzdGF0ZTogUywgcmVxdWVzdDogT3B0UmVxdWVzdCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtpc0xvYWRpbmc6IHRydWUsIGVycm9yOiBpbml0aWFsU3RhdGUuZXJyb3J9XG4gICAgKTtcbiAgfSk7XG4gIGNvbnN0IGVkaXRSZXF1ZXN0T24gPSBvbihhY3Rpb25zLkVkaXRSZXF1ZXN0LCAoc3RhdGU6IFMsIHJlcXVlc3Q6IE9wdFJlcXVlc3QpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7aXNMb2FkaW5nOiB0cnVlLCBlcnJvcjogaW5pdGlhbFN0YXRlLmVycm9yfVxuICAgICk7XG4gIH0pO1xuICBjb25zdCBlZGl0TWFueVJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuRWRpdE1hbnlSZXF1ZXN0LCAoc3RhdGU6IFMsIHJlcXVlc3Q6IE9wdFJlcXVlc3QpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7aXNMb2FkaW5nOiB0cnVlLCBlcnJvcjogaW5pdGlhbFN0YXRlLmVycm9yfVxuICAgICk7XG4gIH0pO1xuICBjb25zdCBjcmVhdGVSZXF1ZXN0T24gPSBvbihhY3Rpb25zLkNyZWF0ZVJlcXVlc3QsIChzdGF0ZTogUywgcmVxdWVzdDogT3B0UmVxdWVzdCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtpc0xvYWRpbmc6IHRydWUsIGVycm9yOiBpbml0aWFsU3RhdGUuZXJyb3J9XG4gICAgKTtcbiAgfSk7XG4gIGNvbnN0IGNyZWF0ZU1hbnlSZXF1ZXN0T24gPSBvbihhY3Rpb25zLkNyZWF0ZU1hbnlSZXF1ZXN0LCAoc3RhdGU6IFMsIHJlcXVlc3Q6IE9wdFJlcXVlc3QpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7aXNMb2FkaW5nOiB0cnVlLCBlcnJvcjogaW5pdGlhbFN0YXRlLmVycm9yfVxuICAgICk7XG4gIH0pO1xuICBjb25zdCBzZWxlY3RSZXF1ZXN0T24gPSBvbihhY3Rpb25zLlNlbGVjdFJlcXVlc3QsIChzdGF0ZTogUywgcmVxdWVzdDogSUNyaXRlcmlhKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge2lzTG9hZGluZzogdHJ1ZSwgZXJyb3I6IGluaXRpYWxTdGF0ZS5lcnJvcn1cbiAgICApO1xuICB9KTtcblxuICBjb25zdCBzZWFyY2hTdWNjZXNzT24gPSBvbihhY3Rpb25zLlNlYXJjaFN1Y2Nlc3MsIChzdGF0ZTogUywge3R5cGUsIGl0ZW1zLCByZXF1ZXN0fSkgPT4ge1xuICAgIGNvbnN0IG1vZGUgPSBldmFsRGF0YSgoKSA9PiByZXF1ZXN0Lm1vZGUsIG51bGwpIHx8ICdzZXRBbGwnO1xuICAgIGxldCBtZXRob2Q7XG5cbiAgICBpZiAobW9kZS5pbmRleE9mKCdSRUZSRVNIJykgIT09IC0xKSB7XG4gICAgICBtZXRob2QgPSBhZGFwdGVyLnNldEFsbDtcbiAgICB9IGVsc2UgaWYgKG1vZGUuaW5kZXhPZigndXBzZXJ0TWFueScpICE9PSAtMSkge1xuICAgICAgbWV0aG9kID0gYWRhcHRlci51cHNlcnRNYW55O1xuICAgIH0gZWxzZSBpZiAobW9kZS5pbmRleE9mKCdzZXRBbGwnKSAhPT0gLTEpIHtcbiAgICAgIG1ldGhvZCA9IGFkYXB0ZXIuc2V0QWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBtZXRob2QgPSBhZGFwdGVyLnNldEFsbDtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZFN0YXRlUGFydGlhbCA9IHtlbnRpdGllc1NlbGVjdGVkOiBzdGF0ZS5lbnRpdGllc1NlbGVjdGVkLCBpZHNTZWxlY3RlZDogc3RhdGUuaWRzU2VsZWN0ZWR9O1xuICAgIGlmIChtb2RlLmluZGV4T2YoJ3VwZGF0ZU1hbnktc2VsZWN0ZWQnKSAhPT0gLTEpIHtcbiAgICAgIC8vIGNyZW8gdW5vIHN0YXRlIHRlbXBvcmFuZW8gY29uIGkgZGF0aSBkZWdsaSBlbGVtZW50aSBzZWxlemlvbmF0aVxuICAgICAgY29uc3Qgc2VsZWN0ZWRTdGF0ZSA9IHtcbiAgICAgICAgZW50aXRpZXM6IHN0YXRlLmVudGl0aWVzU2VsZWN0ZWQsXG4gICAgICAgIGlkczogc3RhdGUuaWRzU2VsZWN0ZWRcbiAgICAgIH1cbiAgICAgIC8vIHByZXBhcm8gZ2xpIGl0ZW0gcml0b3JuYXRpIGRhbGxhIHJpY2VyY2EgcGVyIGFnZ2lvcm5hcmVcbiAgICAgIGNvbnN0IGl0ZW1zQjogYW55ID0gaXRlbXMubWFwKChpdGVtKSA9PiAoT2JqZWN0LmFzc2lnbih7fSwge2lkOiBhZGFwdGVyLnNlbGVjdElkKGl0ZW0pLCBjaGFuZ2VzOiBpdGVtfSkpKTtcbiAgICAgIC8vIHV0aWxpenpvIGlsIG1ldG9kbyBhZGFwdGVyLnVwZGF0ZU1hbnkgcGVyIGFnZ2lvcm5hcmUgZ2xpIGVsZW1lbnRpIHNlbGV6aW9uYXRpXG4gICAgICBjb25zdCBuZXdTZWxlY3RlZFN0YXRlID0gYWRhcHRlci51cGRhdGVNYW55KGl0ZW1zQiwgey4uLnNlbGVjdGVkU3RhdGUgYXMgYW55fSk7XG5cbiAgICAgIHNlbGVjdGVkU3RhdGVQYXJ0aWFsLmVudGl0aWVzU2VsZWN0ZWQgPSBuZXdTZWxlY3RlZFN0YXRlLmVudGl0aWVzO1xuICAgICAgc2VsZWN0ZWRTdGF0ZVBhcnRpYWwuaWRzU2VsZWN0ZWQgPSBuZXdTZWxlY3RlZFN0YXRlLmlkcztcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0aG9kKGl0ZW1zLFxuICAgICAge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgLi4uc2VsZWN0ZWRTdGF0ZVBhcnRpYWwsXG4gICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgfVxuICAgICk7XG4gIH0pO1xuICBjb25zdCBkZWxldGVTdWNjZXNzT24gPSBvbihhY3Rpb25zLkRlbGV0ZVN1Y2Nlc3MsIChzdGF0ZTogUywge3R5cGUsIGlkfSkgPT4ge1xuXG4gICAgICAvLyB0b2xnbyBkYWxsbyBzdG9yZS5pZHNTZWxlY3RlZCBsJ2VsZW1lbnRvIGNhbmNlbGxhdG9cbiAgICAgIGNvbnN0IGlkc1NlbGVjdGVkID0gKHN0YXRlLmlkc1NlbGVjdGVkIGFzIGFueVtdKS5maWx0ZXIoKGlkQSkgPT4gaWRBID09PSBpZCk7XG4gICAgICBjb25zdCBlbnRpdGllc1NlbGVjdGVkID0gaWRzU2VsZWN0ZWQucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgIHByZXZbY3Vycl0gPSBzdGF0ZS5lbnRpdGllc1NlbGVjdGVkW2N1cnJdO1xuICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgIH0sIHt9KTtcblxuICAgICAgLy8gc2UgaG8gY2FuY2VsbGF0byBsJ2lkIHNlZXppb25hdG8sIGxvIHRvbGdvIGRhbGxvIHN0b3JlLlxuICAgICAgY29uc3QgaWRTZWxlY3RlZCA9ICEhc3RhdGUuaWRTZWxlY3RlZCAmJiBzdGF0ZS5pZFNlbGVjdGVkID09PSBpZCA/IG51bGwgOiBzdGF0ZS5pZFNlbGVjdGVkO1xuICAgICAgY29uc3QgaXRlbVNlbGVjdGVkID0gIWlkU2VsZWN0ZWQgPyBudWxsIDogc3RhdGUuaXRlbVNlbGVjdGVkO1xuXG4gICAgICByZXR1cm4gYWRhcHRlci5yZW1vdmVPbmUoaWQsXG4gICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAge30sIHN0YXRlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgaWRTZWxlY3RlZCxcbiAgICAgICAgICAgIGlkc1NlbGVjdGVkLFxuICAgICAgICAgICAgaXRlbVNlbGVjdGVkLFxuICAgICAgICAgICAgZW50aXRpZXNTZWxlY3RlZFxuICAgICAgICAgIH1cbiAgICAgICAgKSk7XG4gICAgfVxuICApO1xuXG4gIGNvbnN0IGRlbGV0ZU1hbnlTdWNjZXNzT24gPSBvbihhY3Rpb25zLkRlbGV0ZU1hbnlTdWNjZXNzLCAoc3RhdGU6IFMsIHt0eXBlLCBpZHN9KSA9PiB7XG5cbiAgICAvLyB0b2xnbyBkYWxsbyBzdG9yZS5pZHNTZWxlY3RlZCBnbGkgZWxlbWVudGkgY2hlIHNvbm8gc3RhdGkgY2FuY2VsbGF0aS5cbiAgICBjb25zdCBpZHNTZWxlY3RlZDogc3RyaW5nW10gPSAoc3RhdGUuaWRzU2VsZWN0ZWQgYXMgYW55W10pLmZpbHRlcigoaWQpID0+ICEoaWQgaW4gaWRzKSk7XG4gICAgY29uc3QgZW50aXRpZXNTZWxlY3RlZCA9IGlkc1NlbGVjdGVkLnJlZHVjZSgocHJldiwgY3VycikgPT4ge1xuICAgICAgcHJldltjdXJyXSA9IHN0YXRlLmVudGl0aWVzU2VsZWN0ZWRbY3Vycl07XG4gICAgICByZXR1cm4gcHJldjtcbiAgICB9LCB7fSk7XG5cbiAgICAvLyBzZSBobyBjYW5jZWxsYXRvIGwnaWQgc2VlemlvbmF0bywgbG8gdG9sZ28gZGFsbG8gc3RvcmUuXG4gICAgY29uc3QgaWRTZWxlY3RlZCA9ICEhc3RhdGUuaWRTZWxlY3RlZCAmJiBzdGF0ZS5pZFNlbGVjdGVkIGluIGlkcyA/IG51bGwgOiBzdGF0ZS5pZFNlbGVjdGVkO1xuICAgIGNvbnN0IGl0ZW1TZWxlY3RlZCA9ICFpZFNlbGVjdGVkID8gbnVsbCA6IHN0YXRlLml0ZW1TZWxlY3RlZDtcbiAgICByZXR1cm4gYWRhcHRlci5yZW1vdmVNYW55KGlkcyxcbiAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgIHt9LCBzdGF0ZSxcbiAgICAgICAge1xuICAgICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgaWRTZWxlY3RlZCxcbiAgICAgICAgICBpZHNTZWxlY3RlZCxcbiAgICAgICAgICBpdGVtU2VsZWN0ZWQsXG4gICAgICAgICAgZW50aXRpZXNTZWxlY3RlZFxuICAgICAgICB9XG4gICAgICApKTtcbiAgfSk7XG5cbiAgY29uc3QgZGVsZXRlT24gPSBvbihhY3Rpb25zLkRlbGV0ZSwgKHN0YXRlOiBTLCB7dHlwZSwgaWR9KSA9PiB7XG4gICAgICAvLyB0b2xnbyBkYWxsbyBzdG9yZS5pZHNTZWxlY3RlZCBsJ2VsZW1lbnRvIGNhbmNlbGxhdG9cbiAgICAgIGNvbnN0IGlkc1NlbGVjdGVkID0gKHN0YXRlLmlkc1NlbGVjdGVkIGFzIGFueVtdKS5maWx0ZXIoKGlkQSkgPT4gaWRBID09PSBpZCk7XG5cbiAgICAgIC8vIHNlIGhvIGNhbmNlbGxhdG8gbCdpZCBzZWV6aW9uYXRvLCBsbyB0b2xnbyBkYWxsbyBzdG9yZS5cbiAgICAgIGNvbnN0IGlkU2VsZWN0ZWQgPSAhIXN0YXRlLmlkU2VsZWN0ZWQgJiYgc3RhdGUuaWRTZWxlY3RlZCA9PT0gaWQgPyBudWxsIDogc3RhdGUuaWRTZWxlY3RlZDtcblxuICAgICAgcmV0dXJuIGFkYXB0ZXIucmVtb3ZlT25lKGlkLFxuICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgIHt9LCBzdGF0ZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICAgIGlkU2VsZWN0ZWQsXG4gICAgICAgICAgICBpZHNTZWxlY3RlZFxuICAgICAgICAgIH1cbiAgICAgICAgKSk7XG4gICAgfVxuICApO1xuICBjb25zdCByZXNwb25zZU9uID0gb24oYWN0aW9ucy5SZXNwb25zZSwgKHN0YXRlOiBTLCByZXNwb25zZSkgPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlcyA9IFsuLi5zdGF0ZS5yZXNwb25zZXMsIHJlc3BvbnNlXTtcbiAgICByZXR1cm4gey4uLnt9LCAuLi5zdGF0ZSwgLi4ue3Jlc3BvbnNlc319O1xuICB9KTtcblxuICBjb25zdCByZXNldFJlc3BvbnNlc09uID0gb24oYWN0aW9ucy5SZXNldFJlc3BvbnNlcywgKHN0YXRlOiBTKSA9PiB7XG4gICAgICBjb25zdCByZXNwb25zZXMgPSBbXTtcbiAgICAgIHJldHVybiB7Li4uc3RhdGUsIC4uLntyZXNwb25zZXN9fTtcbiAgICB9XG4gICk7XG4gIGNvbnN0IGNyZWF0ZVN1Y2Nlc3NPbiA9IG9uKGFjdGlvbnMuQ3JlYXRlU3VjY2VzcywgKHN0YXRlOiBTLCB7dHlwZSwgaXRlbX0pID0+IGFkYXB0ZXIuYWRkT25lKGl0ZW0sXG4gICAgT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LCBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBudWxsXG4gICAgICB9XG4gICAgKSkpO1xuICBjb25zdCBjcmVhdGVNYW55U3VjY2Vzc09uID0gb24oYWN0aW9ucy5DcmVhdGVNYW55U3VjY2VzcywgKHN0YXRlOiBTLCB7dHlwZSwgaXRlbXN9KSA9PiBhZGFwdGVyLmFkZE1hbnkoaXRlbXMsXG4gICAgT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LCBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IHRydWUsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBudWxsXG4gICAgICB9XG4gICAgKSkpO1xuICBjb25zdCBjcmVhdGVPbiA9IG9uKGFjdGlvbnMuQ3JlYXRlLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtfSkgPT4gYWRhcHRlci5hZGRPbmUoaXRlbSxcbiAgICBPYmplY3QuYXNzaWduKFxuICAgICAge30sIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgIH1cbiAgICApKSk7XG4gIGNvbnN0IGVkaXRTdWNjZXNzT24gPSBvbihhY3Rpb25zLkVkaXRTdWNjZXNzLCAoc3RhdGU6IFMsIHtpdGVtLCB0eXBlfSkgPT4gYWRhcHRlci51cHNlcnRPbmUoaXRlbSxcbiAgICBPYmplY3QuYXNzaWduKFxuICAgICAge30sIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgIH1cbiAgICApKSk7XG4gIGNvbnN0IGVkaXRNYW55U3VjY2Vzc09uID0gb24oYWN0aW9ucy5FZGl0TWFueVN1Y2Nlc3MsIChzdGF0ZTogUywge2l0ZW1zLCB0eXBlfSkgPT4gYWRhcHRlci51cHNlcnRNYW55KGl0ZW1zLFxuICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSwgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgfVxuICAgICkpKTtcbiAgY29uc3QgZWRpdE9uID0gb24oYWN0aW9ucy5FZGl0LCAoc3RhdGU6IFMsIHtpdGVtLCB0eXBlfSkgPT4gYWRhcHRlci51cHNlcnRPbmUoaXRlbSxcbiAgICBPYmplY3QuYXNzaWduKFxuICAgICAge30sIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgIH1cbiAgICApKSk7XG4gIGNvbnN0IGZpbHRlcnNPbiA9IG9uKGFjdGlvbnMuRmlsdGVycywgKHN0YXRlOiBTLCB7dHlwZSwgZmlsdGVyc30pID0+IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7ZmlsdGVyc30pKTtcblxuICBjb25zdCByZW1vdmVBbGxTZWxlY3RlZE9uID0gb24oYWN0aW9ucy5SZW1vdmVBbGxTZWxlY3RlZCwgKHN0YXRlOiBTLCB7dHlwZX06IHsgdHlwZTogc3RyaW5nIH0pID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGlkc1NlbGVjdGVkOiBbXSxcbiAgICAgIC8vIGl0ZW1zU2VsZWN0ZWQ6IFtdLCAvL3RvZG86IEBkZXByZWNhdGVkIGRhIGNhbmNlbGxhcmUgcXVlc3RvIHRpcG8gZGkgYXNzZWduYXppb25lLlxuICAgICAgZW50aXRpZXNTZWxlY3RlZDoge31cbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG5cbiAgY29uc3QgYWRkTWFueVNlbGVjdGVkT24gPSBvbihhY3Rpb25zLkFkZE1hbnlTZWxlY3RlZCwgKHN0YXRlOiBTLCB7dHlwZSwgaXRlbXN9OiB7IHR5cGU6IHN0cmluZywgaXRlbXM6IFRbXSB9KSA9PiB7XG4gICAgY29uc3QgZW50aXRpZXNDdXJyID0gdG9EaWN0aW9uYXJ5KGl0ZW1zLCBhZGFwdGVyKTtcbiAgICBjb25zdCBlbnRpdGllc1NlbGVjdGVkID0gey4uLnN0YXRlLmVudGl0aWVzU2VsZWN0ZWQsIC4uLmVudGl0aWVzQ3Vycn07XG4gICAgY29uc3QgaWRzU2VsZWN0ZWQgPSBPYmplY3Qua2V5cyhlbnRpdGllc1NlbGVjdGVkKTtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGlkc1NlbGVjdGVkLFxuICAgICAgLy8gaXRlbXNTZWxlY3RlZDogaXRlbXMsIC8vdG9kbzogQGRlcHJlY2F0ZWQgZGEgY2FuY2VsbGFyZSBxdWVzdG8gdGlwbyBkaSBhc3NlZ25hemlvbmUuXG4gICAgICBlbnRpdGllc1NlbGVjdGVkXG4gICAgfTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xuXG4gIGNvbnN0IHJlbW92ZU1hbnlTZWxlY3RlZE9uID0gb24oYWN0aW9ucy5SZW1vdmVNYW55U2VsZWN0ZWQsIChzdGF0ZTogUywge3R5cGUsIGlkc306IHsgdHlwZTogc3RyaW5nLCBpZHM6IHN0cmluZ1tdIH0pID0+IHtcbiAgICBjb25zdCBpZHNBc1N0cmluZyA9IGlkcy5tYXAoeCA9PiB4ICsgJycpO1xuICAgIGNvbnN0IGlkc1NlbGVjdGVkID0gT2JqZWN0LmtleXMoc3RhdGUuZW50aXRpZXNTZWxlY3RlZCkuZmlsdGVyKGlkID0+ICFpZHNBc1N0cmluZy5pbmNsdWRlcyhpZCArICcnKSk7XG4gICAgY29uc3QgZW50aXRpZXNTZWxlY3RlZCA9IGlkc1NlbGVjdGVkLnJlZHVjZSgocHJlYywgY3VycikgPT4gKHsuLi5wcmVjLCBbY3Vycl06IHN0YXRlLmVudGl0aWVzU2VsZWN0ZWRbY3Vycl19KSwge30pO1xuICAgIC8vIGNvbnN0IGl0ZW1zU2VsZWN0ZWQgPSBPYmplY3QudmFsdWVzKGVudGl0aWVzU2VsZWN0ZWQpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBpZHNTZWxlY3RlZCxcbiAgICAgIC8vIGl0ZW1zU2VsZWN0ZWQsIC8vdG9kbzogQGRlcHJlY2F0ZWQgZGEgY2FuY2VsbGFyZSBxdWVzdG8gdGlwbyBkaSBhc3NlZ25hemlvbmUuXG4gICAgICBlbnRpdGllc1NlbGVjdGVkXG4gICAgfTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xuXG4gIGNvbnN0IHNlbGVjdEl0ZW1zT24gPSBvbihhY3Rpb25zLlNlbGVjdEl0ZW1zLCAoc3RhdGU6IFMsIHt0eXBlLCBpdGVtc30pID0+IHtcbiAgICBjb25zdCBlbnRpdGllc1NlbGVjdGVkID0gdG9EaWN0aW9uYXJ5KGl0ZW1zLCBhZGFwdGVyKTtcbiAgICBjb25zdCBpZHNTZWxlY3RlZCA9IE9iamVjdC5rZXlzKGVudGl0aWVzU2VsZWN0ZWQpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaWRzU2VsZWN0ZWQsXG4gICAgICAvLyBpdGVtc1NlbGVjdGVkOiBpdGVtcyxcbiAgICAgIGVudGl0aWVzU2VsZWN0ZWRcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG4gIGNvbnN0IHNlbGVjdEl0ZW1PbiA9IG9uKGFjdGlvbnMuU2VsZWN0SXRlbSwgKHN0YXRlOiBTLCB7dHlwZSwgaXRlbX0pID0+IHtcbiAgICBjb25zdCBpZFNlbGVjdGVkID0gc2VsZWN0SWRWYWx1ZShpdGVtLCBhZGFwdGVyLnNlbGVjdElkKTtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGlkU2VsZWN0ZWQsXG4gICAgICBpdGVtU2VsZWN0ZWQ6IGl0ZW1cbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG4gIGNvbnN0IHNlbGVjdFN1Y2Nlc3NPbiA9IG9uKGFjdGlvbnMuU2VsZWN0U3VjY2VzcywgKHN0YXRlOiBTLCB7dHlwZSwgaXRlbX0pID0+IHtcbiAgICAgIGNvbnN0IGlkU2VsZWN0ZWQgPSBzZWxlY3RJZFZhbHVlKGl0ZW0sIGFkYXB0ZXIuc2VsZWN0SWQpO1xuICAgICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgaWRTZWxlY3RlZCxcbiAgICAgICAgaXRlbVNlbGVjdGVkOiBpdGVtLFxuICAgICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICApO1xuICBjb25zdCBzZWFyY2hGYWlsdXJlT24gPSBvbihcbiAgICBhY3Rpb25zLlNlYXJjaEZhaWx1cmUsXG4gICAgKHN0YXRlOiBTLCB7dHlwZSwgZXJyb3J9KSA9PiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgICkpO1xuICBjb25zdCBkZWxldGVGYWlsdXJlT24gPSBvbihcbiAgICBhY3Rpb25zLkRlbGV0ZUZhaWx1cmUsXG4gICAgKHN0YXRlOiBTLCB7dHlwZSwgZXJyb3J9KSA9PiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgICkpO1xuICBjb25zdCBkZWxldGVNYW55RmFpbHVyZU9uID0gb24oXG4gICAgYWN0aW9ucy5EZWxldGVNYW55RmFpbHVyZSxcbiAgICAoc3RhdGU6IFMsIHt0eXBlLCBlcnJvcn0pID0+IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yXG4gICAgICB9XG4gICAgKSk7XG4gIGNvbnN0IGNyZWF0ZUZhaWx1cmVPbiA9IG9uKFxuICAgIGFjdGlvbnMuQ3JlYXRlRmFpbHVyZSxcbiAgICAoc3RhdGU6IFMsIHt0eXBlLCBlcnJvcn0pID0+IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHN0YXRlLFxuICAgICAge1xuICAgICAgICBpc0xvYWRlZDogZmFsc2UsXG4gICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yXG4gICAgICB9XG4gICAgKSk7XG4gIGNvbnN0IGNyZWF0ZU1hbnlGYWlsdXJlT24gPSBvbihcbiAgICBhY3Rpb25zLkNyZWF0ZU1hbnlGYWlsdXJlLFxuICAgIChzdGF0ZTogUywge3R5cGUsIGVycm9yfSkgPT4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiBmYWxzZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3JcbiAgICAgIH1cbiAgICApKTtcbiAgY29uc3QgZWRpdEZhaWx1cmVPbiA9IG9uKFxuICAgIGFjdGlvbnMuRWRpdEZhaWx1cmUsXG4gICAgKHN0YXRlOiBTLCB7ZXJyb3IsIHR5cGV9KSA9PiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBzdGF0ZSxcbiAgICAgIHtcbiAgICAgICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgICkpO1xuICBjb25zdCBlZGl0TWFueUZhaWx1cmVPbiA9IG9uKFxuICAgIGFjdGlvbnMuRWRpdE1hbnlGYWlsdXJlLFxuICAgIChzdGF0ZTogUywge2Vycm9yLCB0eXBlfSkgPT4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiBmYWxzZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3JcbiAgICAgIH1cbiAgICApKTtcbiAgY29uc3Qgc2VsZWN0RmFpbHVyZU9uID0gb24oXG4gICAgYWN0aW9ucy5TZWxlY3RGYWlsdXJlLFxuICAgIChzdGF0ZTogUywge2Vycm9yLCB0eXBlfSkgPT4gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgc3RhdGUsXG4gICAgICB7XG4gICAgICAgIGlzTG9hZGVkOiBmYWxzZSxcbiAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3JcbiAgICAgIH1cbiAgICApKTtcbiAgY29uc3QgcmVzZXRPbiA9IG9uKGFjdGlvbnMuUmVzZXQsIChzdGF0ZTogUykgPT4gKHsuLi5zdGF0ZSwgLi4uaW5pdGlhbFN0YXRlfSkpO1xuICByZXR1cm4ge1xuICAgIHJlc3BvbnNlT24sXG4gICAgcmVzZXRSZXNwb25zZXNPbixcbiAgICBzZWFyY2hSZXF1ZXN0T24sXG4gICAgZGVsZXRlUmVxdWVzdE9uLFxuICAgIGRlbGV0ZU1hbnlSZXF1ZXN0T24sXG4gICAgZWRpdFJlcXVlc3RPbixcbiAgICBlZGl0TWFueVJlcXVlc3RPbixcbiAgICBjcmVhdGVSZXF1ZXN0T24sXG4gICAgY3JlYXRlTWFueVJlcXVlc3RPbixcbiAgICBzZWxlY3RSZXF1ZXN0T24sXG4gICAgc2VhcmNoU3VjY2Vzc09uLFxuICAgIGRlbGV0ZVN1Y2Nlc3NPbixcbiAgICBkZWxldGVNYW55U3VjY2Vzc09uLFxuICAgIGNyZWF0ZVN1Y2Nlc3NPbixcbiAgICBjcmVhdGVNYW55U3VjY2Vzc09uLFxuICAgIHNlbGVjdFN1Y2Nlc3NPbixcbiAgICBlZGl0U3VjY2Vzc09uLFxuICAgIGVkaXRNYW55U3VjY2Vzc09uLFxuICAgIHNlYXJjaEZhaWx1cmVPbixcbiAgICBkZWxldGVGYWlsdXJlT24sXG4gICAgZGVsZXRlTWFueUZhaWx1cmVPbixcbiAgICBjcmVhdGVGYWlsdXJlT24sXG4gICAgY3JlYXRlTWFueUZhaWx1cmVPbixcbiAgICBzZWxlY3RGYWlsdXJlT24sXG4gICAgZWRpdEZhaWx1cmVPbixcbiAgICBlZGl0TWFueUZhaWx1cmVPbixcbiAgICByZXNldE9uLFxuICAgIGZpbHRlcnNPbixcbiAgICBzZWxlY3RJdGVtc09uLFxuICAgIHJlbW92ZUFsbFNlbGVjdGVkT24sXG4gICAgYWRkTWFueVNlbGVjdGVkT24sXG4gICAgcmVtb3ZlTWFueVNlbGVjdGVkT24sXG4gICAgc2VsZWN0SXRlbU9uLFxuICAgIGVkaXRPbixcbiAgICBjcmVhdGVPbixcbiAgICBkZWxldGVPblxuICB9O1xuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDcnVkUmVkdWNlckZhY3Rvcnk8VD4oYWRhcHRlcjogRW50aXR5QWRhcHRlcjxUPikge1xuICBmdW5jdGlvbiBjcmVhdGVDcnVkUmVkdWNlcjxTIGV4dGVuZHMgRW50aXR5Q3J1ZFN0YXRlPFQ+Pihpbml0aWFsU3RhdGU6IFMsIGFjdGlvbnM6IEFjdGlvbnM8VD4sIC4uLm9uczogUmVkdWNlclR5cGVzPFMsIEFjdGlvbkNyZWF0b3JbXT5bXSkge1xuICAgIGNvbnN0IHsuLi5jcnVkT25zfSA9IGNyZWF0ZUNydWRPbnMoYWRhcHRlciwgaW5pdGlhbFN0YXRlLCBhY3Rpb25zKTtcbiAgICBjb25zdCB0b3RhbE9uczogUmVkdWNlclR5cGVzPFMsIEFjdGlvbkNyZWF0b3JbXT5bXSA9IFtcbiAgICAgIC4uLm9ucyxcbiAgICAgIC4uLk9iamVjdC52YWx1ZXMoY3J1ZE9ucylcbiAgICBdO1xuICAgIHJldHVybiBjcmVhdGVSZWR1Y2VyPFM+KGluaXRpYWxTdGF0ZSxcbiAgICAgIC4uLnRvdGFsT25zXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgY3JlYXRlQ3J1ZFJlZHVjZXJcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNpbmd1bGFyQ3J1ZE9uczxULCBTIGV4dGVuZHMgRW50aXR5U2luZ2xlQ3J1ZFN0YXRlPFQ+Pihpbml0aWFsU3RhdGU6IFMsIGFjdGlvbnM6IFNpbmd1bGFyQWN0aW9uczxUPik6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuXG4gIGNvbnN0IHNlbGVjdFJlcXVlc3RPbiA9IG9uKGFjdGlvbnMuU2VsZWN0UmVxdWVzdCwgKHN0YXRlOiBTLCB7dHlwZX0pID0+IChcbiAgICB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGlzTG9hZGluZzogdHJ1ZSxcbiAgICAgIGVycm9yOiBpbml0aWFsU3RhdGUuZXJyb3JcbiAgICB9XG4gICkpO1xuXG4gIGNvbnN0IHNlbGVjdFN1Y2Nlc3NPbiA9IG9uKGFjdGlvbnMuU2VsZWN0U3VjY2VzcywgKHN0YXRlOiBTLCB7dHlwZSwgaXRlbX0pID0+IChcbiAgICB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGl0ZW0sXG4gICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICBlcnJvcjogbnVsbFxuICAgIH1cbiAgKSk7XG5cbiAgY29uc3Qgc2VsZWN0RmFpbHVyZU9uID0gb24oYWN0aW9ucy5TZWxlY3RGYWlsdXJlLCAoc3RhdGU6IFMsIHt0eXBlLCBlcnJvcn0pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgaXNMb2FkZWQ6IGZhbHNlLFxuICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgZXJyb3JcbiAgfSkpO1xuXG4gIGNvbnN0IGVkaXRSZXF1ZXN0T24gPSBvbihhY3Rpb25zLkVkaXRSZXF1ZXN0LCAoc3RhdGU6IFMpID0+IChcbiAgICB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGlzTG9hZGluZzogdHJ1ZSxcbiAgICAgIGVycm9yOiBudWxsXG4gICAgfVxuICApKTtcblxuICBjb25zdCBlZGl0U3VjY2Vzc09uID0gb24oYWN0aW9ucy5FZGl0U3VjY2VzcywgKHN0YXRlOiBTLCB7aXRlbSwgdHlwZX0pID0+IChcbiAgICB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGl0ZW0sXG4gICAgICBpc0xvYWRlZDogdHJ1ZSxcbiAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICBlcnJvcjogbnVsbFxuICAgIH1cbiAgKSk7XG5cbiAgY29uc3QgZWRpdE9uID0gb24oYWN0aW9ucy5FZGl0LCAoc3RhdGU6IFMsIHtpdGVtLCB0eXBlfSkgPT4gKFxuICAgIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgaXRlbSxcbiAgICAgIGlzTG9hZGVkOiB0cnVlLFxuICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgIGVycm9yOiBudWxsXG4gICAgfVxuICApKTtcblxuICBjb25zdCBlZGl0RmFpbHVyZU9uID0gb24oYWN0aW9ucy5FZGl0RmFpbHVyZSwgKHN0YXRlOiBTLCB7dHlwZSwgZXJyb3J9KSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGlzTG9hZGVkOiBmYWxzZSxcbiAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgIGVycm9yXG4gIH0pKTtcblxuICBjb25zdCByZXNwb25zZU9uID0gb24oYWN0aW9ucy5SZXNwb25zZSwgKHN0YXRlOiBTLCByZXNwb25zZSkgPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlcyA9IFsuLi5zdGF0ZS5yZXNwb25zZXMsIHJlc3BvbnNlXTtcbiAgICByZXR1cm4gey4uLnt9LCAuLi5zdGF0ZSwgLi4ue3Jlc3BvbnNlc319O1xuICB9KTtcblxuICBjb25zdCByZXNldFJlc3BvbnNlc09uID0gb24oYWN0aW9ucy5SZXNldFJlc3BvbnNlcywgKHN0YXRlOiBTKSA9PiB7XG4gICAgICBjb25zdCByZXNwb25zZXMgPSBbXTtcbiAgICAgIHJldHVybiB7Li4uc3RhdGUsIC4uLntyZXNwb25zZXN9fTtcbiAgICB9XG4gICk7XG5cbiAgY29uc3QgcmVzZXRPbiA9IG9uKGFjdGlvbnMuUmVzZXQsIChzdGF0ZTogUykgPT4gKHsuLi5zdGF0ZSwgLi4uaW5pdGlhbFN0YXRlfSkpO1xuXG4gIGNvbnN0IHNlbGVjdEl0ZW1PbiA9IG9uKGFjdGlvbnMuU2VsZWN0SXRlbSwgKHN0YXRlOiBTLCB7dHlwZSwgaXRlbX0pID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGl0ZW1TZWxlY3RlZDogaXRlbVxuICAgIH07XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcblxuICByZXR1cm4ge1xuICAgIHJlc3BvbnNlT24sXG4gICAgcmVzZXRSZXNwb25zZXNPbixcblxuICAgIHNlbGVjdFJlcXVlc3RPbixcbiAgICBzZWxlY3RTdWNjZXNzT24sXG4gICAgc2VsZWN0RmFpbHVyZU9uLFxuXG4gICAgZWRpdFJlcXVlc3RPbixcbiAgICBlZGl0U3VjY2Vzc09uLFxuICAgIGVkaXRGYWlsdXJlT24sXG5cbiAgICBzZWxlY3RJdGVtT24sXG5cbiAgICByZXNldE9uLFxuICAgIGVkaXRPbixcbiAgfTtcblxufVxuIl19
|
|
@@ -17,16 +17,18 @@ export function getCrudBaseSelectors(selectState) {
|
|
|
17
17
|
const selectIsLoaded = createSelector(selectState, getIsLoaded);
|
|
18
18
|
const selectLastCriteria = createSelector(selectState, getLastCriteria);
|
|
19
19
|
const selectResponses = createSelector(selectState, getRespones);
|
|
20
|
+
const selectItemSelected = createSelector(selectState, getItemSelected);
|
|
20
21
|
return {
|
|
21
22
|
selectError,
|
|
22
23
|
selectIsLoading,
|
|
23
24
|
selectIsLoaded,
|
|
24
25
|
selectLastCriteria,
|
|
25
26
|
selectResponses,
|
|
27
|
+
selectItemSelected
|
|
26
28
|
};
|
|
27
29
|
}
|
|
28
30
|
export function getSingeCrudSelectors(selectState) {
|
|
29
|
-
const { selectError, selectIsLoading, selectIsLoaded, selectLastCriteria, selectResponses } = getCrudBaseSelectors(selectState);
|
|
31
|
+
const { selectError, selectIsLoading, selectIsLoaded, selectLastCriteria, selectResponses, selectItemSelected } = getCrudBaseSelectors(selectState);
|
|
30
32
|
const selectItem = createSelector(selectState, getItem);
|
|
31
33
|
return {
|
|
32
34
|
selectItem,
|
|
@@ -34,18 +36,18 @@ export function getSingeCrudSelectors(selectState) {
|
|
|
34
36
|
selectIsLoading,
|
|
35
37
|
selectIsLoaded,
|
|
36
38
|
selectLastCriteria,
|
|
37
|
-
selectResponses
|
|
39
|
+
selectResponses,
|
|
40
|
+
selectItemSelected
|
|
38
41
|
};
|
|
39
42
|
}
|
|
40
43
|
export function createCrudSelectorsFactory(adapter) {
|
|
41
44
|
function getCrudSelectors(selectState) {
|
|
42
45
|
const selectFilters = createSelector(selectState, getFilters);
|
|
43
|
-
const selectItemSelected = createSelector(selectState, getItemSelected);
|
|
44
46
|
const selectEntitiesSelected = createSelector(selectState, getEntitiesSelected);
|
|
45
47
|
const selectItemsSelected = createSelector(selectEntitiesSelected, (entities) => Object.values(entities));
|
|
46
48
|
const selectIdSelected = createSelector(selectState, getIdSelected);
|
|
47
49
|
const selectIdsSelected = createSelector(selectState, getIdsSelected);
|
|
48
|
-
const { selectError, selectIsLoading, selectIsLoaded, selectLastCriteria, selectResponses } = getCrudBaseSelectors(selectState);
|
|
50
|
+
const { selectError, selectIsLoading, selectIsLoaded, selectLastCriteria, selectResponses, selectItemSelected } = getCrudBaseSelectors(selectState);
|
|
49
51
|
const { selectAll, selectEntities, selectIds, selectTotal } = adapter.getSelectors(selectState);
|
|
50
52
|
const selectItemsSelectedOrigin = createSelector(selectIdsSelected, selectEntities, (ids, entities) => ids.map((id) => entities[id]));
|
|
51
53
|
const selectItemSelectedOrigin = createSelector(selectIdSelected, selectEntities, (id, entities) => entities[id]);
|
|
@@ -75,4 +77,4 @@ export function createCrudSelectorsFactory(adapter) {
|
|
|
75
77
|
}
|
|
76
78
|
return { getCrudSelectors };
|
|
77
79
|
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVfc2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdyeC1lbnRpdHktY3J1ZC9zcmMvbGliL3N0YXRlX3NlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsY0FBYyxFQUFtQixNQUFNLGFBQWEsQ0FBQztBQUM3RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFNUMsTUFBTSxRQUFRLEdBQUcsQ0FBSSxLQUF1QixFQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0FBQ2xFLE1BQU0sWUFBWSxHQUFHLENBQUksS0FBdUIsRUFBVyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztBQUM5RSxNQUFNLFdBQVcsR0FBRyxDQUFJLEtBQXVCLEVBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7QUFDNUUsTUFBTSxVQUFVLEdBQUcsQ0FBSSxLQUFtQixFQUFvQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztBQUMvRixNQUFNLGVBQWUsR0FBRyxDQUFJLEtBQXVCLEVBQWEsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7QUFDdEYsTUFBTSxlQUFlLEdBQUcsQ0FBSSxLQUFtQixFQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO0FBQzFFLE1BQU0sYUFBYSxHQUFHLENBQUksS0FBbUIsRUFBbUIsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7QUFDcEYsTUFBTSxtQkFBbUIsR0FBRyxDQUFJLEtBQW1CLEVBQWlCLEVBQUUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7QUFDOUYsTUFBTSxjQUFjLEdBQUcsQ0FBSSxLQUFtQixFQUF1QixFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztBQUMxRixNQUFNLFdBQVcsR0FBRyxDQUFJLEtBQXVCLEVBQW9CLEVBQUUsQ0FB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LGFBQWEsQ0FBQyxFQUMvRixDQUFDLFFBQWEsRUFBRSxPQUF5QyxFQUFPLEVBQUU7WUFDaEUsT0FBTyxXQUFXLENBQUksUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FDRixDQUFDO1FBRUYsT0FBTztZQUNMLFdBQVc7WUFDWCxlQUFlO1lBQ2YsY0FBYztZQUNkLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsU0FBUztZQUNULGNBQWM7WUFDZCxTQUFTO1lBQ1QsV0FBVztZQUNYLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsa0JBQWtCO1lBQ2xCLHdCQUF3QjtZQUN4QixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLHNCQUFzQjtZQUN0Qix5QkFBeUI7WUFDekIsZUFBZTtTQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NydWRCYXNlU3RhdGUsIENydWRTdGF0ZSwgRGljdGlvbmFyeSwgRW50aXR5Q3J1ZEJhc2VTZWxlY3RvcnMsIEVudGl0eUNydWRCYXNlU3RhdGUsIEVudGl0eUNydWRTZWxlY3RvcnMsIEVudGl0eUNydWRTdGF0ZSwgRW50aXR5U2luZ2xlQ3J1ZFNlbGVjdG9ycywgRW50aXR5U2luZ2xlQ3J1ZFN0YXRlLCBGaWx0ZXJNZXRhZGF0YSwgSUNyaXRlcmlhLCBPcHRSZXNwb25zZSwgU2luZ2xlQ3J1ZFN0YXRlfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yLCBNZW1vaXplZFNlbGVjdG9yfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge2pOZ3J4RmlsdGVyfSBmcm9tICcuL2otbmdyeC1maWx0ZXInO1xuXG5jb25zdCBnZXRFcnJvciA9IDxUPihzdGF0ZTogQ3J1ZEJhc2VTdGF0ZTxUPik6IGFueSA9PiBzdGF0ZS5lcnJvcjtcbmNvbnN0IGdldElzTG9hZGluZyA9IDxUPihzdGF0ZTogQ3J1ZEJhc2VTdGF0ZTxUPik6IGJvb2xlYW4gPT4gc3RhdGUuaXNMb2FkaW5nO1xuY29uc3QgZ2V0SXNMb2FkZWQgPSA8VD4oc3RhdGU6IENydWRCYXNlU3RhdGU8VD4pOiBib29sZWFuID0+IHN0YXRlLmlzTG9hZGVkO1xuY29uc3QgZ2V0RmlsdGVycyA9IDxUPihzdGF0ZTogQ3J1ZFN0YXRlPFQ+KTogeyBbczogc3RyaW5nXTogRmlsdGVyTWV0YWRhdGE7IH0gPT4gc3RhdGUuZmlsdGVycztcbmNvbnN0IGdldExhc3RDcml0ZXJpYSA9IDxUPihzdGF0ZTogQ3J1ZEJhc2VTdGF0ZTxUPik6IElDcml0ZXJpYSA9PiBzdGF0ZS5sYXN0Q3JpdGVyaWE7XG5jb25zdCBnZXRJdGVtU2VsZWN0ZWQgPSA8VD4oc3RhdGU6IENydWRTdGF0ZTxUPik6IFQgPT4gc3RhdGUuaXRlbVNlbGVjdGVkO1xuY29uc3QgZ2V0SWRTZWxlY3RlZCA9IDxUPihzdGF0ZTogQ3J1ZFN0YXRlPFQ+KTogc3RyaW5nIHwgbnVtYmVyID0+IHN0YXRlLmlkU2VsZWN0ZWQ7XG5jb25zdCBnZXRFbnRpdGllc1NlbGVjdGVkID0gPFQ+KHN0YXRlOiBDcnVkU3RhdGU8VD4pOiBEaWN0aW9uYXJ5PFQ+ID0+IHN0YXRlLmVudGl0aWVzU2VsZWN0ZWQ7XG5jb25zdCBnZXRJZHNTZWxlY3RlZCA9IDxUPihzdGF0ZTogQ3J1ZFN0YXRlPFQ+KTogc3RyaW5nW10gfCBudW1iZXJbXSA9PiBzdGF0ZS5pZHNTZWxlY3RlZDtcbmNvbnN0IGdldFJlc3BvbmVzID0gPFQ+KHN0YXRlOiBDcnVkQmFzZVN0YXRlPFQ+KTogT3B0UmVzcG9uc2U8VD5bXSA9PiBzdGF0ZS5yZXNwb25zZXM7XG5jb25zdCBnZXRJdGVtID0gPFQ+KHN0YXRlOiBTaW5nbGVDcnVkU3RhdGU8VD4pOiBUID0+IHN0YXRlLml0ZW07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDcnVkQmFzZVNlbGVjdG9yczxULCBWPihcbiAgc2VsZWN0U3RhdGU6IChzdGF0ZTogVikgPT4gRW50aXR5Q3J1ZEJhc2VTdGF0ZTxUPlxuKTogRW50aXR5Q3J1ZEJhc2VTZWxlY3RvcnM8VCwgVj4ge1xuICBjb25zdCBzZWxlY3RFcnJvcjogTWVtb2l6ZWRTZWxlY3RvcjxWLCBhbnk+ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIGdldEVycm9yKTtcbiAgY29uc3Qgc2VsZWN0SXNMb2FkaW5nOiBNZW1vaXplZFNlbGVjdG9yPFYsIGJvb2xlYW4+ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIGdldElzTG9hZGluZyk7XG4gIGNvbnN0IHNlbGVjdElzTG9hZGVkOiBNZW1vaXplZFNlbGVjdG9yPFYsIGJvb2xlYW4+ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIGdldElzTG9hZGVkKTtcbiAgY29uc3Qgc2VsZWN0TGFzdENyaXRlcmlhOiBNZW1vaXplZFNlbGVjdG9yPFYsIElDcml0ZXJpYT4gPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgZ2V0TGFzdENyaXRlcmlhKTtcbiAgY29uc3Qgc2VsZWN0UmVzcG9uc2VzOiBNZW1vaXplZFNlbGVjdG9yPFYsIE9wdFJlc3BvbnNlPFQ+W10+ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIGdldFJlc3BvbmVzKTtcblxuICByZXR1cm4ge1xuICAgIHNlbGVjdEVycm9yLFxuICAgIHNlbGVjdElzTG9hZGluZyxcbiAgICBzZWxlY3RJc0xvYWRlZCxcbiAgICBzZWxlY3RMYXN0Q3JpdGVyaWEsXG4gICAgc2VsZWN0UmVzcG9uc2VzLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2luZ2VDcnVkU2VsZWN0b3JzPFQsIFY+KFxuICBzZWxlY3RTdGF0ZTogKHN0YXRlOiBWKSA9PiBFbnRpdHlTaW5nbGVDcnVkU3RhdGU8VD5cbik6IEVudGl0eVNpbmdsZUNydWRTZWxlY3RvcnM8VCwgVj4ge1xuICBjb25zdCB7XG4gICAgc2VsZWN0RXJyb3IsXG4gICAgc2VsZWN0SXNMb2FkaW5nLFxuICAgIHNlbGVjdElzTG9hZGVkLFxuICAgIHNlbGVjdExhc3RDcml0ZXJpYSxcbiAgICBzZWxlY3RSZXNwb25zZXNcbiAgfSA9IGdldENydWRCYXNlU2VsZWN0b3JzKHNlbGVjdFN0YXRlKTtcblxuICBjb25zdCBzZWxlY3RJdGVtOiBNZW1vaXplZFNlbGVjdG9yPFYsIFQ+ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIGdldEl0ZW0pIGFzIE1lbW9pemVkU2VsZWN0b3I8ViwgVD5cbiAgcmV0dXJuIHtcbiAgICBzZWxlY3RJdGVtLFxuICAgIHNlbGVjdEVycm9yLFxuICAgIHNlbGVjdElzTG9hZGluZyxcbiAgICBzZWxlY3RJc0xvYWRlZCxcbiAgICBzZWxlY3RMYXN0Q3JpdGVyaWEsXG4gICAgc2VsZWN0UmVzcG9uc2VzXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDcnVkU2VsZWN0b3JzRmFjdG9yeTxUPihhZGFwdGVyKSB7XG4gIGZ1bmN0aW9uIGdldENydWRTZWxlY3RvcnM8Vj4oXG4gICAgc2VsZWN0U3RhdGU6IChzdGF0ZTogVikgPT4gRW50aXR5Q3J1ZFN0YXRlPFQ+XG4gICk6IEVudGl0eUNydWRTZWxlY3RvcnM8VCwgVj4ge1xuXG4gICAgY29uc3Qgc2VsZWN0RmlsdGVyczogTWVtb2l6ZWRTZWxlY3RvcjxWLCB7IFtzOiBzdHJpbmddOiBGaWx0ZXJNZXRhZGF0YTsgfT4gPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHNlbGVjdFN0YXRlLFxuICAgICAgZ2V0RmlsdGVyc1xuICAgICk7XG5cbiAgICBjb25zdCBzZWxlY3RJdGVtU2VsZWN0ZWQ6IE1lbW9pemVkU2VsZWN0b3I8ViwgVD4gPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgZ2V0SXRlbVNlbGVjdGVkKSBhcyBNZW1vaXplZFNlbGVjdG9yPFYsIFQ+O1xuICAgIGNvbnN0IHNlbGVjdEVudGl0aWVzU2VsZWN0ZWQ6IE1lbW9pemVkU2VsZWN0b3I8ViwgRGljdGlvbmFyeTxUPj4gPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgZ2V0RW50aXRpZXNTZWxlY3RlZCkgYXMgTWVtb2l6ZWRTZWxlY3RvcjxWLCBEaWN0aW9uYXJ5PFQ+PlxuICAgIGNvbnN0IHNlbGVjdEl0ZW1zU2VsZWN0ZWQ6IE1lbW9pemVkU2VsZWN0b3I8ViwgVFtdPiA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdEVudGl0aWVzU2VsZWN0ZWQsIChlbnRpdGllczogRGljdGlvbmFyeTxUPikgPT4gT2JqZWN0LnZhbHVlcyhlbnRpdGllcykpIGFzIE1lbW9pemVkU2VsZWN0b3I8ViwgVFtdPlxuXG4gICAgY29uc3Qgc2VsZWN0SWRTZWxlY3RlZDogTWVtb2l6ZWRTZWxlY3RvcjxWLCBzdHJpbmcgfCBudW1iZXI+ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIGdldElkU2VsZWN0ZWQpO1xuICAgIGNvbnN0IHNlbGVjdElkc1NlbGVjdGVkOiBNZW1vaXplZFNlbGVjdG9yPFYsIHN0cmluZ1tdIHwgbnVtYmVyW10+ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIGdldElkc1NlbGVjdGVkKTtcblxuICAgIGNvbnN0IHtcbiAgICAgIHNlbGVjdEVycm9yLFxuICAgICAgc2VsZWN0SXNMb2FkaW5nLFxuICAgICAgc2VsZWN0SXNMb2FkZWQsXG4gICAgICBzZWxlY3RMYXN0Q3JpdGVyaWEsXG4gICAgICBzZWxlY3RSZXNwb25zZXNcbiAgICB9ID0gZ2V0Q3J1ZEJhc2VTZWxlY3RvcnMoc2VsZWN0U3RhdGUpO1xuXG4gICAgY29uc3Qge1xuICAgICAgc2VsZWN0QWxsLFxuICAgICAgc2VsZWN0RW50aXRpZXMsXG4gICAgICBzZWxlY3RJZHMsXG4gICAgICBzZWxlY3RUb3RhbFxuICAgIH0gPSBhZGFwdGVyLmdldFNlbGVjdG9ycyhzZWxlY3RTdGF0ZSk7XG5cbiAgICBjb25zdCBzZWxlY3RJdGVtc1NlbGVjdGVkT3JpZ2luID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBzZWxlY3RJZHNTZWxlY3RlZCxcbiAgICAgIHNlbGVjdEVudGl0aWVzLFxuICAgICAgKGlkczogYW55W10sIGVudGl0aWVzOiBEaWN0aW9uYXJ5PFQ+KTogYW55ID0+XG4gICAgICAgIGlkcy5tYXAoKGlkOiBhbnkpID0+IChlbnRpdGllc1tpZF0gYXMgVCkpXG4gICAgKTtcblxuICAgIGNvbnN0IHNlbGVjdEl0ZW1TZWxlY3RlZE9yaWdpbiA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgc2VsZWN0SWRTZWxlY3RlZCxcbiAgICAgIHNlbGVjdEVudGl0aWVzLFxuICAgICAgKGlkLCBlbnRpdGllczogRGljdGlvbmFyeTxUPik6IGFueSA9PiBlbnRpdGllc1tpZF1cbiAgICApO1xuXG4gICAgY29uc3Qgc2VsZWN0RmlsdGVyZWRJdGVtczogTWVtb2l6ZWRTZWxlY3RvcjxhbnksIFRbXT4gPSBjcmVhdGVTZWxlY3Rvcihbc2VsZWN0QWxsLCBzZWxlY3RGaWx0ZXJzXSxcbiAgICAgIChhbGxUYXNrczogVFtdLCBmaWx0ZXJzOiB7IFtzOiBzdHJpbmddOiBGaWx0ZXJNZXRhZGF0YTsgfSk6IFRbXSA9PiB7XG4gICAgICAgIHJldHVybiBqTmdyeEZpbHRlcjxUPihhbGxUYXNrcywgZmlsdGVycyk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBzZWxlY3RFcnJvcixcbiAgICAgIHNlbGVjdElzTG9hZGluZyxcbiAgICAgIHNlbGVjdElzTG9hZGVkLFxuICAgICAgc2VsZWN0RmlsdGVycyxcbiAgICAgIHNlbGVjdEZpbHRlcmVkSXRlbXMsXG4gICAgICBzZWxlY3RBbGwsXG4gICAgICBzZWxlY3RFbnRpdGllcyxcbiAgICAgIHNlbGVjdElkcyxcbiAgICAgIHNlbGVjdFRvdGFsLFxuICAgICAgc2VsZWN0TGFzdENyaXRlcmlhLFxuICAgICAgc2VsZWN0SWRTZWxlY3RlZCxcbiAgICAgIHNlbGVjdEl0ZW1TZWxlY3RlZCxcbiAgICAgIHNlbGVjdEl0ZW1TZWxlY3RlZE9yaWdpbixcbiAgICAgIHNlbGVjdElkc1NlbGVjdGVkLFxuICAgICAgc2VsZWN0SXRlbXNTZWxlY3RlZCxcbiAgICAgIHNlbGVjdEVudGl0aWVzU2VsZWN0ZWQsXG4gICAgICBzZWxlY3RJdGVtc1NlbGVjdGVkT3JpZ2luLFxuICAgICAgc2VsZWN0UmVzcG9uc2VzLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge2dldENydWRTZWxlY3RvcnN9O1xufVxuIl19
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVfc2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdyeC1lbnRpdHktY3J1ZC9zcmMvbGliL3N0YXRlX3NlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsY0FBYyxFQUFtQixNQUFNLGFBQWEsQ0FBQztBQUM3RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFNUMsTUFBTSxRQUFRLEdBQUcsQ0FBSSxLQUF1QixFQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0FBQ2xFLE1BQU0sWUFBWSxHQUFHLENBQUksS0FBdUIsRUFBVyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztBQUM5RSxNQUFNLFdBQVcsR0FBRyxDQUFJLEtBQXVCLEVBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7QUFDNUUsTUFBTSxVQUFVLEdBQUcsQ0FBSSxLQUFtQixFQUFvQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztBQUMvRixNQUFNLGVBQWUsR0FBRyxDQUFJLEtBQXVCLEVBQWEsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7QUFDdEYsTUFBTSxlQUFlLEdBQUcsQ0FBSSxLQUFtQixFQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO0FBQzFFLE1BQU0sYUFBYSxHQUFHLENBQUksS0FBbUIsRUFBbUIsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7QUFDcEYsTUFBTSxtQkFBbUIsR0FBRyxDQUFJLEtBQW1CLEVBQWlCLEVBQUUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7QUFDOUYsTUFBTSxjQUFjLEdBQUcsQ0FBSSxLQUFtQixFQUF1QixFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztBQUMxRixNQUFNLFdBQVcsR0FBRyxDQUFJLEtBQXVCLEVBQW9CLEVBQUUsQ0FB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O1FBRUYsTUFBTSxtQkFBbUIsR0FBK0IsY0FBYyxDQUFDLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxFQUMvRixDQUFDLFFBQWEsRUFBRSxPQUF5QyxFQUFPLEVBQUU7WUFDaEUsT0FBTyxXQUFXLENBQUksUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FDRixDQUFDO1FBRUYsT0FBTztZQUNMLFdBQVc7WUFDWCxlQUFlO1lBQ2YsY0FBYztZQUNkLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsU0FBUztZQUNULGNBQWM7WUFDZCxTQUFTO1lBQ1QsV0FBVztZQUNYLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsa0JBQWtCO1lBQ2xCLHdCQUF3QjtZQUN4QixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLHNCQUFzQjtZQUN0Qix5QkFBeUI7WUFDekIsZUFBZTtTQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NydWRCYXNlU3RhdGUsIENydWRTdGF0ZSwgRGljdGlvbmFyeSwgRW50aXR5Q3J1ZEJhc2VTZWxlY3RvcnMsIEVudGl0eUNydWRCYXNlU3RhdGUsIEVudGl0eUNydWRTZWxlY3RvcnMsIEVudGl0eUNydWRTdGF0ZSwgRW50aXR5U2luZ2xlQ3J1ZFNlbGVjdG9ycywgRW50aXR5U2luZ2xlQ3J1ZFN0YXRlLCBGaWx0ZXJNZXRhZGF0YSwgSUNyaXRlcmlhLCBPcHRSZXNwb25zZSwgU2luZ2xlQ3J1ZFN0YXRlfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yLCBNZW1vaXplZFNlbGVjdG9yfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge2pOZ3J4RmlsdGVyfSBmcm9tICcuL2otbmdyeC1maWx0ZXInO1xuXG5jb25zdCBnZXRFcnJvciA9IDxUPihzdGF0ZTogQ3J1ZEJhc2VTdGF0ZTxUPik6IGFueSA9PiBzdGF0ZS5lcnJvcjtcbmNvbnN0IGdldElzTG9hZGluZyA9IDxUPihzdGF0ZTogQ3J1ZEJhc2VTdGF0ZTxUPik6IGJvb2xlYW4gPT4gc3RhdGUuaXNMb2FkaW5nO1xuY29uc3QgZ2V0SXNMb2FkZWQgPSA8VD4oc3RhdGU6IENydWRCYXNlU3RhdGU8VD4pOiBib29sZWFuID0+IHN0YXRlLmlzTG9hZGVkO1xuY29uc3QgZ2V0RmlsdGVycyA9IDxUPihzdGF0ZTogQ3J1ZFN0YXRlPFQ+KTogeyBbczogc3RyaW5nXTogRmlsdGVyTWV0YWRhdGE7IH0gPT4gc3RhdGUuZmlsdGVycztcbmNvbnN0IGdldExhc3RDcml0ZXJpYSA9IDxUPihzdGF0ZTogQ3J1ZEJhc2VTdGF0ZTxUPik6IElDcml0ZXJpYSA9PiBzdGF0ZS5sYXN0Q3JpdGVyaWE7XG5jb25zdCBnZXRJdGVtU2VsZWN0ZWQgPSA8VD4oc3RhdGU6IENydWRTdGF0ZTxUPik6IFQgPT4gc3RhdGUuaXRlbVNlbGVjdGVkO1xuY29uc3QgZ2V0SWRTZWxlY3RlZCA9IDxUPihzdGF0ZTogQ3J1ZFN0YXRlPFQ+KTogc3RyaW5nIHwgbnVtYmVyID0+IHN0YXRlLmlkU2VsZWN0ZWQ7XG5jb25zdCBnZXRFbnRpdGllc1NlbGVjdGVkID0gPFQ+KHN0YXRlOiBDcnVkU3RhdGU8VD4pOiBEaWN0aW9uYXJ5PFQ+ID0+IHN0YXRlLmVudGl0aWVzU2VsZWN0ZWQ7XG5jb25zdCBnZXRJZHNTZWxlY3RlZCA9IDxUPihzdGF0ZTogQ3J1ZFN0YXRlPFQ+KTogc3RyaW5nW10gfCBudW1iZXJbXSA9PiBzdGF0ZS5pZHNTZWxlY3RlZDtcbmNvbnN0IGdldFJlc3BvbmVzID0gPFQ+KHN0YXRlOiBDcnVkQmFzZVN0YXRlPFQ+KTogT3B0UmVzcG9uc2U8VD5bXSA9PiBzdGF0ZS5yZXNwb25zZXM7XG5jb25zdCBnZXRJdGVtID0gPFQ+KHN0YXRlOiBTaW5nbGVDcnVkU3RhdGU8VD4pOiBUID0+IHN0YXRlLml0ZW07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDcnVkQmFzZVNlbGVjdG9yczxULCBWPihcbiAgc2VsZWN0U3RhdGU6IChzdGF0ZTogVikgPT4gRW50aXR5Q3J1ZEJhc2VTdGF0ZTxUPlxuKTogRW50aXR5Q3J1ZEJhc2VTZWxlY3RvcnM8VCwgVj4ge1xuICBjb25zdCBzZWxlY3RFcnJvcjogTWVtb2l6ZWRTZWxlY3RvcjxWLCBhbnk+ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIGdldEVycm9yKTtcbiAgY29uc3Qgc2VsZWN0SXNMb2FkaW5nOiBNZW1vaXplZFNlbGVjdG9yPFYsIGJvb2xlYW4+ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIGdldElzTG9hZGluZyk7XG4gIGNvbnN0IHNlbGVjdElzTG9hZGVkOiBNZW1vaXplZFNlbGVjdG9yPFYsIGJvb2xlYW4+ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIGdldElzTG9hZGVkKTtcbiAgY29uc3Qgc2VsZWN0TGFzdENyaXRlcmlhOiBNZW1vaXplZFNlbGVjdG9yPFYsIElDcml0ZXJpYT4gPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgZ2V0TGFzdENyaXRlcmlhKTtcbiAgY29uc3Qgc2VsZWN0UmVzcG9uc2VzOiBNZW1vaXplZFNlbGVjdG9yPFYsIE9wdFJlc3BvbnNlPFQ+W10+ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIGdldFJlc3BvbmVzKTtcblxuICBjb25zdCBzZWxlY3RJdGVtU2VsZWN0ZWQ6IE1lbW9pemVkU2VsZWN0b3I8ViwgVD4gPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgZ2V0SXRlbVNlbGVjdGVkKSBhcyBNZW1vaXplZFNlbGVjdG9yPFYsIFQ+O1xuXG4gIHJldHVybiB7XG4gICAgc2VsZWN0RXJyb3IsXG4gICAgc2VsZWN0SXNMb2FkaW5nLFxuICAgIHNlbGVjdElzTG9hZGVkLFxuICAgIHNlbGVjdExhc3RDcml0ZXJpYSxcbiAgICBzZWxlY3RSZXNwb25zZXMsXG4gICAgc2VsZWN0SXRlbVNlbGVjdGVkXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaW5nZUNydWRTZWxlY3RvcnM8VCwgVj4oXG4gIHNlbGVjdFN0YXRlOiAoc3RhdGU6IFYpID0+IEVudGl0eVNpbmdsZUNydWRTdGF0ZTxUPlxuKTogRW50aXR5U2luZ2xlQ3J1ZFNlbGVjdG9yczxULCBWPiB7XG4gIGNvbnN0IHtcbiAgICBzZWxlY3RFcnJvcixcbiAgICBzZWxlY3RJc0xvYWRpbmcsXG4gICAgc2VsZWN0SXNMb2FkZWQsXG4gICAgc2VsZWN0TGFzdENyaXRlcmlhLFxuICAgIHNlbGVjdFJlc3BvbnNlcyxcbiAgICBzZWxlY3RJdGVtU2VsZWN0ZWRcbiAgfSA9IGdldENydWRCYXNlU2VsZWN0b3JzKHNlbGVjdFN0YXRlKTtcblxuICBjb25zdCBzZWxlY3RJdGVtOiBNZW1vaXplZFNlbGVjdG9yPFYsIFQ+ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U3RhdGUsIGdldEl0ZW0pIGFzIE1lbW9pemVkU2VsZWN0b3I8ViwgVD5cbiAgcmV0dXJuIHtcbiAgICBzZWxlY3RJdGVtLFxuICAgIHNlbGVjdEVycm9yLFxuICAgIHNlbGVjdElzTG9hZGluZyxcbiAgICBzZWxlY3RJc0xvYWRlZCxcbiAgICBzZWxlY3RMYXN0Q3JpdGVyaWEsXG4gICAgc2VsZWN0UmVzcG9uc2VzLFxuICAgIHNlbGVjdEl0ZW1TZWxlY3RlZFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ3J1ZFNlbGVjdG9yc0ZhY3Rvcnk8VD4oYWRhcHRlcikge1xuICBmdW5jdGlvbiBnZXRDcnVkU2VsZWN0b3JzPFY+KFxuICAgIHNlbGVjdFN0YXRlOiAoc3RhdGU6IFYpID0+IEVudGl0eUNydWRTdGF0ZTxUPlxuICApOiBFbnRpdHlDcnVkU2VsZWN0b3JzPFQsIFY+IHtcblxuICAgIGNvbnN0IHNlbGVjdEZpbHRlcnM6IE1lbW9pemVkU2VsZWN0b3I8ViwgeyBbczogc3RyaW5nXTogRmlsdGVyTWV0YWRhdGE7IH0+ID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBzZWxlY3RTdGF0ZSxcbiAgICAgIGdldEZpbHRlcnNcbiAgICApO1xuXG4gICAgY29uc3Qgc2VsZWN0RW50aXRpZXNTZWxlY3RlZDogTWVtb2l6ZWRTZWxlY3RvcjxWLCBEaWN0aW9uYXJ5PFQ+PiA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFN0YXRlLCBnZXRFbnRpdGllc1NlbGVjdGVkKSBhcyBNZW1vaXplZFNlbGVjdG9yPFYsIERpY3Rpb25hcnk8VD4+XG4gICAgY29uc3Qgc2VsZWN0SXRlbXNTZWxlY3RlZDogTWVtb2l6ZWRTZWxlY3RvcjxWLCBUW10+ID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0RW50aXRpZXNTZWxlY3RlZCwgKGVudGl0aWVzOiBEaWN0aW9uYXJ5PFQ+KSA9PiBPYmplY3QudmFsdWVzKGVudGl0aWVzKSkgYXMgTWVtb2l6ZWRTZWxlY3RvcjxWLCBUW10+XG5cbiAgICBjb25zdCBzZWxlY3RJZFNlbGVjdGVkOiBNZW1vaXplZFNlbGVjdG9yPFYsIHN0cmluZyB8IG51bWJlcj4gPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgZ2V0SWRTZWxlY3RlZCk7XG4gICAgY29uc3Qgc2VsZWN0SWRzU2VsZWN0ZWQ6IE1lbW9pemVkU2VsZWN0b3I8Viwgc3RyaW5nW10gfCBudW1iZXJbXT4gPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RTdGF0ZSwgZ2V0SWRzU2VsZWN0ZWQpO1xuXG4gICAgY29uc3Qge1xuICAgICAgc2VsZWN0RXJyb3IsXG4gICAgICBzZWxlY3RJc0xvYWRpbmcsXG4gICAgICBzZWxlY3RJc0xvYWRlZCxcbiAgICAgIHNlbGVjdExhc3RDcml0ZXJpYSxcbiAgICAgIHNlbGVjdFJlc3BvbnNlcyxcbiAgICAgIHNlbGVjdEl0ZW1TZWxlY3RlZFxuICAgIH0gPSBnZXRDcnVkQmFzZVNlbGVjdG9ycyhzZWxlY3RTdGF0ZSk7XG5cbiAgICBjb25zdCB7XG4gICAgICBzZWxlY3RBbGwsXG4gICAgICBzZWxlY3RFbnRpdGllcyxcbiAgICAgIHNlbGVjdElkcyxcbiAgICAgIHNlbGVjdFRvdGFsXG4gICAgfSA9IGFkYXB0ZXIuZ2V0U2VsZWN0b3JzKHNlbGVjdFN0YXRlKTtcblxuICAgIGNvbnN0IHNlbGVjdEl0ZW1zU2VsZWN0ZWRPcmlnaW4gPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHNlbGVjdElkc1NlbGVjdGVkLFxuICAgICAgc2VsZWN0RW50aXRpZXMsXG4gICAgICAoaWRzOiBhbnlbXSwgZW50aXRpZXM6IERpY3Rpb25hcnk8VD4pOiBhbnkgPT5cbiAgICAgICAgaWRzLm1hcCgoaWQ6IGFueSkgPT4gKGVudGl0aWVzW2lkXSBhcyBUKSlcbiAgICApO1xuXG4gICAgY29uc3Qgc2VsZWN0SXRlbVNlbGVjdGVkT3JpZ2luID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBzZWxlY3RJZFNlbGVjdGVkLFxuICAgICAgc2VsZWN0RW50aXRpZXMsXG4gICAgICAoaWQsIGVudGl0aWVzOiBEaWN0aW9uYXJ5PFQ+KTogYW55ID0+IGVudGl0aWVzW2lkXVxuICAgICk7XG5cbiAgICBjb25zdCBzZWxlY3RGaWx0ZXJlZEl0ZW1zOiBNZW1vaXplZFNlbGVjdG9yPGFueSwgVFtdPiA9IGNyZWF0ZVNlbGVjdG9yKFtzZWxlY3RBbGwsIHNlbGVjdEZpbHRlcnNdLFxuICAgICAgKGFsbFRhc2tzOiBUW10sIGZpbHRlcnM6IHsgW3M6IHN0cmluZ106IEZpbHRlck1ldGFkYXRhOyB9KTogVFtdID0+IHtcbiAgICAgICAgcmV0dXJuIGpOZ3J4RmlsdGVyPFQ+KGFsbFRhc2tzLCBmaWx0ZXJzKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbGVjdEVycm9yLFxuICAgICAgc2VsZWN0SXNMb2FkaW5nLFxuICAgICAgc2VsZWN0SXNMb2FkZWQsXG4gICAgICBzZWxlY3RGaWx0ZXJzLFxuICAgICAgc2VsZWN0RmlsdGVyZWRJdGVtcyxcbiAgICAgIHNlbGVjdEFsbCxcbiAgICAgIHNlbGVjdEVudGl0aWVzLFxuICAgICAgc2VsZWN0SWRzLFxuICAgICAgc2VsZWN0VG90YWwsXG4gICAgICBzZWxlY3RMYXN0Q3JpdGVyaWEsXG4gICAgICBzZWxlY3RJZFNlbGVjdGVkLFxuICAgICAgc2VsZWN0SXRlbVNlbGVjdGVkLFxuICAgICAgc2VsZWN0SXRlbVNlbGVjdGVkT3JpZ2luLFxuICAgICAgc2VsZWN0SWRzU2VsZWN0ZWQsXG4gICAgICBzZWxlY3RJdGVtc1NlbGVjdGVkLFxuICAgICAgc2VsZWN0RW50aXRpZXNTZWxlY3RlZCxcbiAgICAgIHNlbGVjdEl0ZW1zU2VsZWN0ZWRPcmlnaW4sXG4gICAgICBzZWxlY3RSZXNwb25zZXMsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7Z2V0Q3J1ZFNlbGVjdG9yc307XG59XG4iXX0=
|
|
@@ -45,6 +45,7 @@ function getInitialEntityCrudState() {
|
|
|
45
45
|
function getInitialSingleCrudState() {
|
|
46
46
|
return {
|
|
47
47
|
item: null,
|
|
48
|
+
itemSelected: null,
|
|
48
49
|
isLoading: false,
|
|
49
50
|
isLoaded: false,
|
|
50
51
|
error: null,
|
|
@@ -209,16 +210,18 @@ function getCrudBaseSelectors(selectState) {
|
|
|
209
210
|
const selectIsLoaded = createSelector(selectState, getIsLoaded);
|
|
210
211
|
const selectLastCriteria = createSelector(selectState, getLastCriteria);
|
|
211
212
|
const selectResponses = createSelector(selectState, getRespones);
|
|
213
|
+
const selectItemSelected = createSelector(selectState, getItemSelected);
|
|
212
214
|
return {
|
|
213
215
|
selectError,
|
|
214
216
|
selectIsLoading,
|
|
215
217
|
selectIsLoaded,
|
|
216
218
|
selectLastCriteria,
|
|
217
219
|
selectResponses,
|
|
220
|
+
selectItemSelected
|
|
218
221
|
};
|
|
219
222
|
}
|
|
220
223
|
function getSingeCrudSelectors(selectState) {
|
|
221
|
-
const { selectError, selectIsLoading, selectIsLoaded, selectLastCriteria, selectResponses } = getCrudBaseSelectors(selectState);
|
|
224
|
+
const { selectError, selectIsLoading, selectIsLoaded, selectLastCriteria, selectResponses, selectItemSelected } = getCrudBaseSelectors(selectState);
|
|
222
225
|
const selectItem = createSelector(selectState, getItem);
|
|
223
226
|
return {
|
|
224
227
|
selectItem,
|
|
@@ -226,18 +229,18 @@ function getSingeCrudSelectors(selectState) {
|
|
|
226
229
|
selectIsLoading,
|
|
227
230
|
selectIsLoaded,
|
|
228
231
|
selectLastCriteria,
|
|
229
|
-
selectResponses
|
|
232
|
+
selectResponses,
|
|
233
|
+
selectItemSelected
|
|
230
234
|
};
|
|
231
235
|
}
|
|
232
236
|
function createCrudSelectorsFactory(adapter) {
|
|
233
237
|
function getCrudSelectors(selectState) {
|
|
234
238
|
const selectFilters = createSelector(selectState, getFilters);
|
|
235
|
-
const selectItemSelected = createSelector(selectState, getItemSelected);
|
|
236
239
|
const selectEntitiesSelected = createSelector(selectState, getEntitiesSelected);
|
|
237
240
|
const selectItemsSelected = createSelector(selectEntitiesSelected, (entities) => Object.values(entities));
|
|
238
241
|
const selectIdSelected = createSelector(selectState, getIdSelected);
|
|
239
242
|
const selectIdsSelected = createSelector(selectState, getIdsSelected);
|
|
240
|
-
const { selectError, selectIsLoading, selectIsLoaded, selectLastCriteria, selectResponses } = getCrudBaseSelectors(selectState);
|
|
243
|
+
const { selectError, selectIsLoading, selectIsLoaded, selectLastCriteria, selectResponses, selectItemSelected } = getCrudBaseSelectors(selectState);
|
|
241
244
|
const { selectAll, selectEntities, selectIds, selectTotal } = adapter.getSelectors(selectState);
|
|
242
245
|
const selectItemsSelectedOrigin = createSelector(selectIdsSelected, selectEntities, (ids, entities) => ids.map((id) => entities[id]));
|
|
243
246
|
const selectItemSelectedOrigin = createSelector(selectIdSelected, selectEntities, (id, entities) => entities[id]);
|
|
@@ -681,7 +684,7 @@ function createCrudReducerFactory(adapter) {
|
|
|
681
684
|
};
|
|
682
685
|
}
|
|
683
686
|
function createSingularCrudOns(initialState, actions) {
|
|
684
|
-
const selectRequestOn = on(actions.SelectRequest, (state, { type }) => (Object.assign(Object.assign({}, state), { isLoading: true, error:
|
|
687
|
+
const selectRequestOn = on(actions.SelectRequest, (state, { type }) => (Object.assign(Object.assign({}, state), { isLoading: true, error: initialState.error })));
|
|
685
688
|
const selectSuccessOn = on(actions.SelectSuccess, (state, { type, item }) => (Object.assign(Object.assign({}, state), { item, isLoaded: true, isLoading: false, error: null })));
|
|
686
689
|
const selectFailureOn = on(actions.SelectFailure, (state, { type, error }) => (Object.assign(Object.assign({}, state), { isLoaded: false, isLoading: false, error })));
|
|
687
690
|
const editRequestOn = on(actions.EditRequest, (state) => (Object.assign(Object.assign({}, state), { isLoading: true, error: null })));
|
|
@@ -697,6 +700,10 @@ function createSingularCrudOns(initialState, actions) {
|
|
|
697
700
|
return Object.assign(Object.assign({}, state), { responses });
|
|
698
701
|
});
|
|
699
702
|
const resetOn = on(actions.Reset, (state) => (Object.assign(Object.assign({}, state), initialState)));
|
|
703
|
+
const selectItemOn = on(actions.SelectItem, (state, { type, item }) => {
|
|
704
|
+
const result = Object.assign(Object.assign({}, state), { itemSelected: item });
|
|
705
|
+
return result;
|
|
706
|
+
});
|
|
700
707
|
return {
|
|
701
708
|
responseOn,
|
|
702
709
|
resetResponsesOn,
|
|
@@ -706,6 +713,7 @@ function createSingularCrudOns(initialState, actions) {
|
|
|
706
713
|
editRequestOn,
|
|
707
714
|
editSuccessOn,
|
|
708
715
|
editFailureOn,
|
|
716
|
+
selectItemOn,
|
|
709
717
|
resetOn,
|
|
710
718
|
editOn,
|
|
711
719
|
};
|