@tiba-spark/client-shared-lib 10.3.0-259 → 10.3.0-269
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/esm2022/libraries/components/field-label/field-label.component.mjs +17 -18
- package/esm2022/libraries/constants/keys-constants.mjs +3 -1
- package/esm2022/libraries/enums/localization.enum.mjs +9 -3
- package/esm2022/libraries/service-proxy/cloud-service-proxies.mjs +82 -3
- package/esm2022/libraries/service-proxy/edge-service-proxies.mjs +41 -1
- package/esm2022/libraries/utils/custom-validator.util.mjs +1 -1
- package/esm2022/libraries/utils/helper.util.mjs +2 -2
- package/esm2022/libraries/utils/ngxs/action-status-changed.interface.mjs +9 -0
- package/esm2022/libraries/utils/ngxs/action-status.service.mjs +2 -2
- package/esm2022/libraries/utils/ngxs/action-status.util.mjs +1 -9
- package/esm2022/libraries/utils/permission-type-mapper.util.mjs +1 -1
- package/fesm2022/tiba-spark-client-shared-lib.mjs +191 -62
- package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
- package/libraries/components/field-label/field-label.component.d.ts +5 -5
- package/libraries/components/field-label/field-label.component.d.ts.map +1 -1
- package/libraries/constants/keys-constants.d.ts +2 -0
- package/libraries/constants/keys-constants.d.ts.map +1 -1
- package/libraries/enums/localization.enum.d.ts +8 -2
- package/libraries/enums/localization.enum.d.ts.map +1 -1
- package/libraries/service-proxy/cloud-service-proxies.d.ts +39 -2
- package/libraries/service-proxy/cloud-service-proxies.d.ts.map +1 -1
- package/libraries/service-proxy/edge-service-proxies.d.ts +18 -0
- package/libraries/service-proxy/edge-service-proxies.d.ts.map +1 -1
- package/libraries/utils/helper.util.d.ts +1 -1
- package/libraries/utils/helper.util.d.ts.map +1 -1
- package/libraries/utils/ngxs/action-status-changed.interface.d.ts +10 -0
- package/libraries/utils/ngxs/action-status-changed.interface.d.ts.map +1 -0
- package/libraries/utils/ngxs/action-status.util.d.ts +0 -7
- package/libraries/utils/ngxs/action-status.util.d.ts.map +1 -1
- package/libraries/utils/permission-type-mapper.util.d.ts +1 -1
- package/libraries/utils/permission-type-mapper.util.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -458,4 +458,4 @@ export class TibaValidators {
|
|
|
458
458
|
toTimeInNumber.toString().length === VALID_TIME_MAX_LENGTH;
|
|
459
459
|
}
|
|
460
460
|
}
|
|
461
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXZhbGlkYXRvci51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy91dGlscy9jdXN0b20tdmFsaWRhdG9yLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJeEMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFDOUIsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDO0FBQzlDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyx5SEFBeUgsQ0FBQztBQUN2SixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxzQkFBc0IsQ0FBQztBQUMzRCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyw0QkFBNEIsQ0FBQztBQUNoRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztBQUNsRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztBQUNsRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxxQkFBcUIsQ0FBQztBQUMxRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsdUJBQXVCLENBQUM7QUFDcEQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLHVGQUF1RixDQUFDO0FBQ2hILE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxHQUFHLGdC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RyxDQUFDLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0NBQzFGLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFOzZCQUNyRjt5QkFDRixDQUFDO3FCQUNIO2lCQUNGO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyxNQUFNLENBQUMsMkJBQTJCLENBQUMsV0FBNEIsRUFBRSxTQUEwQjtRQUNqRyxNQUFNLGdCQUFnQixHQUFXLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDbkQsTUFBTSxjQUFjLEdBQVcsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUMvQyxPQUFPLGdCQUFnQixLQUFLLElBQUksSUFBSSxjQUFjLEtBQUssSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxjQUFjLENBQUM7SUFDckcsQ0FBQztJQUFBLENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQUMsV0FBNEIsRUFBRSxTQUEwQjtRQUN4RixNQUFNLGdCQUFnQixHQUFXLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDbkQsTUFBTSxjQUFjLEdBQVcsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUMvQyxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sS0FBSyxxQkFBcUI7WUFDakUsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sS0FBSyxxQkFBcUIsQ0FBQztJQUMvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBBc3luY1ZhbGlkYXRvckZuLCBGb3JtR3JvdXAsIFVudHlwZWRGb3JtQXJyYXksIFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkZWJvdW5jZVRpbWUsIGRlbGF5LCBtYXAsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElOUFVUX1NFQVJDSF9ERUJPVU5DRV9USU1FLCBWQUxJRF9USU1FX01BWF9MRU5HVEggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uIH0gZnJvbSAnLi4vZW51bXMnO1xuaW1wb3J0IHsgQ2xvdWQgfSBmcm9tICcuLi9zZXJ2aWNlLXByb3h5JztcbmltcG9ydCB7IFRpbWUgYXMgVGliYVRpbWUgfSBmcm9tICcuL2RhdGUudXRpbCc7XG5cbmNvbnN0IE1JTl9BTExPV0VEX0JBTEFOQ0UgPSAwO1xuY29uc3QgTUFYX0FMTE9XRURfQkFMQU5DRSA9IDI1NTtcbmV4cG9ydCBjb25zdCBub0Vtb2ppUmVnZXggPSAvW15hLXpBLVowLTkgXS9nbTtcbmV4cG9ydCBjb25zdCBwYXNzd29yZFJlZ2V4ID0gL14oPz0uKlthLXpdKSg/PS4qW0EtWl0pKD89LipcXGQpKD89LipbIVwiIyQlJicoKSorLC0uLzo7PD0+P0BbXFxdXl9ge3x9fl0pW0EtWmEtelxcZCFcIiMkJSYnKCkqKywtLi86Ozw9Pj9AW1xcXV5fYHt8fX5dezQsfSQvZztcbmV4cG9ydCBjb25zdCBwb3NpdGl2ZU51bWJlcnNSZWdleCA9IC9eWzAtOV0rKFxcLj9bMC05XSspPyQvO1xuZXhwb3J0IGNvbnN0IHBvc2l0aXZlTnVtYmVyc0dyZWF0ZXJUaGFuWmVyb1JlZ2V4ID0gL14oPz0uKlsxLTldKVxcZCooPzpcXC5cXGQrKT8kLztcbmV4cG9ydCBjb25zdCBhbHBoYW51bWVyaWNSZWdleCA9IC9eW2EtekEtWjAtOV0rJC87XG5leHBvcnQgY29uc3QgbW9iaWxlUmVnZXggPSAvXlswLTldKyQvO1xuZXhwb3J0IGNvbnN0IGludGVnZXJOdW1iZXJzUmVnZXggPSAvXlstXT8oXFxkKyk/JC87XG5leHBvcnQgY29uc3QgZGVjaW1hbFBvc2l0aXZlUmVnZXggPSAvXihcXGQrKShcXC5cXGR7MSwyfSk/JC87XG5leHBvcnQgY29uc3QgZGVjaW1hbFJlZ2V4ID0gL14tPyhcXGQrKShcXC5cXGR7MSwyfSk/JC87XG5leHBvcnQgY29uc3QgcmVnZXhFeHAgPSAvXlswLTlhLWZBLUZdezh9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezEyfSQvO1xuZXhwb3J0IGNvbnN0IHBvc2l0aXZlSW50ZWdlck51bWJlcnNJbmNsdWRlWmVyb1JlZ2V4ID0gL14oMHxbMS05XVxcZCopJC87XG5leHBvcnQgY29uc3QgcG9zaXRpdmVJbnRlZ2VyTnVtYmVyc0dyZWF0ZXJUaGFuWmVyb1JlZ2V4ID0gL15bMS05XVxcZCokLztcbmV4cG9ydCBjb25zdCBwZXJjZW50YWdlUmVnZXggPSAvXigxMDAoXFwuMCspP3xbMS05XT9cXGQoXFwuXFxkKyk/KSQvO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNOdWxsT3JFbXB0eSh2YWw6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gKHZhbCA9PT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09ICcnKTtcbn1cblxuZXhwb3J0IGNsYXNzIFRpYmFWYWxpZGF0b3JzIHtcblxuICAvLyBObyBlbW9qaSB2YWxpZGF0aW9uXG4gIHN0YXRpYyBub0Vtb2ppKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWwgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgaWYgKCFpc051bGxPckVtcHR5KHZhbCkgJiYgdmFsLnRvU3RyaW5nKCkubWF0Y2gobm9FbW9qaVJlZ2V4KSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbm9FbW9qaToge1xuICAgICAgICAgIHZhbHVlOiBgICcke3ZhbH0nYCxcbiAgICAgICAgICBwYXR0ZXJuOiBub0Vtb2ppUmVnZXhcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBwZXJjZW50YWdlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWwgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgaWYgKCFpc051bGxPckVtcHR5KHZhbCkgJiYgIXZhbC50b1N0cmluZygpLm1hdGNoKHBlcmNlbnRhZ2VSZWdleCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBlcmNlbnRhZ2VSZWdleDoge1xuICAgICAgICAgIHZhbHVlOiBgICcke3ZhbH0nYCxcbiAgICAgICAgICBwYXR0ZXJuOiBwZXJjZW50YWdlUmVnZXhcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIE1vYmlsZSBvbmx5IHZhbGlkYXRpb25cbiAgc3RhdGljIG1vYmlsZU51bWJlcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbCA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIWlzTnVsbE9yRW1wdHkodmFsKSAmJiAhdmFsLnRvU3RyaW5nKCkubWF0Y2gobW9iaWxlUmVnZXgpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtb2JpbGVOdW1iZXJzOiB7XG4gICAgICAgICAgdmFsdWU6IGAgJyR7dmFsfSdgLFxuICAgICAgICAgIHBhdHRlcm46IG1vYmlsZVJlZ2V4XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgaG90ZWxSb29uTnVtYmVycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsID0gY29udHJvbC52YWx1ZTtcblxuICAgIGlmICghaXNOdWxsT3JFbXB0eSh2YWwpICYmICF2YWwudG9TdHJpbmcoKS5tYXRjaChhbHBoYW51bWVyaWNSZWdleCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFscGhhbnVtZXJpY1JlZ2V4OiB7XG4gICAgICAgICAgdmFsdWU6IGAgJyR7dmFsfSdgLFxuICAgICAgICAgIHBhdHRlcm46IGFscGhhbnVtZXJpY1JlZ2V4XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgcG9zaXRpdmVJbnRlZ2VyTnVtYmVyc0luY2x1ZGVaZXJvKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWwgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgaWYgKCFpc051bGxPckVtcHR5KHZhbCkgJiYgIXZhbC50b1N0cmluZygpLm1hdGNoKHBvc2l0aXZlSW50ZWdlck51bWJlcnNJbmNsdWRlWmVyb1JlZ2V4KSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcG9zaXRpdmVJbnRlZ2VyTnVtYmVyc0luY2x1ZGVaZXJvUmVnZXg6IHtcbiAgICAgICAgICB2YWx1ZTogYCAnJHt2YWx9J2AsXG4gICAgICAgICAgcGF0dGVybjogcG9zaXRpdmVJbnRlZ2VyTnVtYmVyc0luY2x1ZGVaZXJvUmVnZXhcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBwb3NpdGl2ZUludGVnZXJOdW1iZXJzV2l0aG91dFplcm9SZWdleChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsID0gY29udHJvbC52YWx1ZTtcblxuICAgIGlmICghaXNOdWxsT3JFbXB0eSh2YWwpICYmICF2YWwudG9TdHJpbmcoKS5tYXRjaChwb3NpdGl2ZUludGVnZXJOdW1iZXJzR3JlYXRlclRoYW5aZXJvUmVnZXgpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwb3NpdGl2ZUludGVnZXJOdW1iZXJzR3JlYXRlclRoYW5aZXJvUmVnZXg6IHtcbiAgICAgICAgICB2YWx1ZTogYCAnJHt2YWx9J2AsXG4gICAgICAgICAgcGF0dGVybjogcG9zaXRpdmVJbnRlZ2VyTnVtYmVyc0dyZWF0ZXJUaGFuWmVyb1JlZ2V4XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBEZWNpbWFsIFBvc2l0aXZlIE51bWJlcnMgb25seSB2YWxpZGF0aW9uXG4gIHN0YXRpYyBkZWNpbWFsUG9zaXRpdmVOdW1iZXJzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWwgPSBjb250cm9sLnZhbHVlO1xuICAgIGlmICghaXNOdWxsT3JFbXB0eSh2YWwpICYmICF2YWwudG9TdHJpbmcoKS5tYXRjaChkZWNpbWFsUG9zaXRpdmVSZWdleCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRlY2ltYWxQb3NpdGl2ZU51bWJlcnM6IHtcbiAgICAgICAgICB2YWx1ZTogYCAnJHt2YWx9J2AsXG4gICAgICAgICAgcGF0dGVybjogZGVjaW1hbFJlZ2V4XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gRGVjaW1hbCBOdW1iZXJzIG9ubHkgdmFsaWRhdGlvblxuICBzdGF0aWMgZGVjaW1hbE51bWJlcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbCA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIWlzTnVsbE9yRW1wdHkodmFsKSAmJiAhdmFsLnRvU3RyaW5nKCkubWF0Y2goZGVjaW1hbFJlZ2V4KSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVjaW1hbFBvc2l0aXZlTnVtYmVyczoge1xuICAgICAgICAgIHZhbHVlOiBgICcke3ZhbH0nYCxcbiAgICAgICAgICBwYXR0ZXJuOiBkZWNpbWFsUmVnZXhcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIFBvc2l0aXZlIE51bWJlcnMgb25seSB2YWxpZGF0aW9uXG4gIHN0YXRpYyBwb3NpdGl2ZU51bWJlcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbCA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIWlzTnVsbE9yRW1wdHkodmFsKSAmJiAhdmFsLnRvU3RyaW5nKCkubWF0Y2gocG9zaXRpdmVOdW1iZXJzUmVnZXgpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwb3NpdGl2ZU51bWJlcnM6IHtcbiAgICAgICAgICB2YWx1ZTogYCAnJHt2YWx9J2AsXG4gICAgICAgICAgcGF0dGVybjogcG9zaXRpdmVOdW1iZXJzUmVnZXhcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIFBvc2l0aXZlIE51bWJlcnMgd2l0aG91dCB6ZXJvIHZhbGlkYXRpb25cbiAgc3RhdGljIHBvc2l0aXZlTnVtYmVyc0dyZWF0ZXJUaGFuWmVybyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsID0gY29udHJvbC52YWx1ZTtcblxuICAgIGlmICghaXNOdWxsT3JFbXB0eSh2YWwpICYmICF2YWwudG9TdHJpbmcoKS5tYXRjaChwb3NpdGl2ZU51bWJlcnNHcmVhdGVyVGhhblplcm9SZWdleCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBvc2l0aXZlTnVtYmVyc0dyZWF0ZXJUaGFuWmVybzoge1xuICAgICAgICAgIHZhbHVlOiBgICcke3ZhbH0nYCxcbiAgICAgICAgICBwYXR0ZXJuOiBwb3NpdGl2ZU51bWJlcnNHcmVhdGVyVGhhblplcm9SZWdleFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gUG9zaXRpdmUgLyBOZWdldGl2ZSBOdW1iZXJzIG9ubHkgdmFsaWRhdGlvblxuICBzdGF0aWMgaW50ZWdlck51bWJlcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbCA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIWlzTnVsbE9yRW1wdHkodmFsKSAmJiAhdmFsLnRvU3RyaW5nKCkubWF0Y2goaW50ZWdlck51bWJlcnNSZWdleCkpIHJldHVybiB7XG4gICAgICBpbnRlZ2VyTnVtYmVyczoge1xuICAgICAgICB2YWx1ZTogYCAnJHt2YWx9J2AsXG4gICAgICAgIHBhdHRlcm46IGludGVnZXJOdW1iZXJzUmVnZXhcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBOdW1iZXIgbGVuZ3RoXG4gIHN0YXRpYyBudW1lcmljTGVuZ3RoKGxlbmd0aDogbnVtYmVyKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgY29uc3QgdmFsID0gY29udHJvbC52YWx1ZTtcblxuICAgICAgaWYgKCFpc051bGxPckVtcHR5KHZhbCkgJiYgdmFsLnRvU3RyaW5nKCkubGVuZ3RoICE9PSBsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbnZhbGlkTnVtYmVyTGVuZ3RoOiB7XG4gICAgICAgICAgICBhY3R1YWxMZW5ndGg6IHZhbCxcbiAgICAgICAgICAgIHJlcXVpcmVkTGVuZ3RoOiBsZW5ndGhcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgUGFzc3dvcmRWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICghY29udHJvbC52YWx1ZT8ubWF0Y2gocGFzc3dvcmRSZWdleCkpIHtcbiAgICAgIHJldHVybiB7IHBhc3N3b3JkUG9saWN5UmVxdWlyZW1lbnRzOiB0cnVlIH07XG4gICAgfVxuICAgIGlmIChjb250cm9sLnZhbHVlLmxlbmd0aCA8IDgpIHtcbiAgICAgIHJldHVybiB7IG1pbmxlbmd0aDogeyByZXF1aXJlZExlbmd0aDogOCB9IH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3RhdGljIEd1aWRWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICghcmVnZXhFeHAudGVzdChjb250cm9sLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIHsgZ3VpZElzVmFsaWQ6IHRydWUgfTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgUGFzc3dvcmRGb3JtTWF0Y2hWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgaWYgKCFjb250cm9sKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdQYXNzd29yZCA9IGNvbnRyb2wuZ2V0KCdwYXNzd29yZCcpO1xuICAgIGNvbnN0IGNvbmZpcm1QYXNzd29yZCA9IGNvbnRyb2wuZ2V0KCdjb25maXJtUGFzc3dvcmQnKTtcbiAgICBpZiAoKG5ld1Bhc3N3b3JkLmVycm9ycyB8fCBjb25maXJtUGFzc3dvcmQuZXJyb3JzKSB8fFxuICAgICAgbmV3UGFzc3dvcmQudmFsdWUgPT09IGNvbmZpcm1QYXNzd29yZC52YWx1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7IC8vIFBhc3N3b3JkcyBtYXRjaCBvciBmb3JtIGZpZWxkcyBoYXMgaXRzIG93biBlcnJvcnNcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHsgcGFzc3dvcmROb3RNYXRjaDogdHJ1ZSB9O1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmcm9tVG9OdW1iZXJWYWxpZGF0b3IoZnJvbUNvbnRyb2xOYW1lOiBzdHJpbmcsIHRvQ29udHJvbE5hbWU6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGxldCByZXNwb25zZSA9IG51bGw7IC8vIFJldHVybiBudWxsIGlmIHZhbGlkYXRpb24gcGFzc2VzXG4gICAgICBpZiAoY29udHJvbC5wYXJlbnQpIHtcbiAgICAgICAgY29uc3QgZm9ybUdyb3VwID0gY29udHJvbC5wYXJlbnQgYXMgRm9ybUdyb3VwO1xuICAgICAgICBjb25zdCBmcm9tQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZnJvbUNvbnRyb2xOYW1lKTtcbiAgICAgICAgY29uc3QgdG9Db250cm9sID0gZm9ybUdyb3VwLmdldCh0b0NvbnRyb2xOYW1lKTtcbiAgICAgICAgaWYgKHRoaXMuaXNWYWx1ZUdyZWF0ZXJUaGFuT3JFcXVhbFRvKGZyb21Db250cm9sLCB0b0NvbnRyb2wpICYmICF0b0NvbnRyb2wuaGFzRXJyb3IoJ2Zvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX251bWJlcl9yYW5nZScpKSB7XG4gICAgICAgICAgLy8gUmV0dXJuIHZhbGlkYXRpb24gZXJyb3IgaWYgJ2Zyb20nIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAndG8nIHZhbHVlXG4gICAgICAgICAgcmVzcG9uc2UgPSB7IGZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX251bWJlcl9yYW5nZTogdHJ1ZSB9O1xuICAgICAgICB9IGVsc2UgaWYgKHRvQ29udHJvbC5oYXNFcnJvcignZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfbnVtYmVyX3JhbmdlJykpIHtcbiAgICAgICAgICAvLyByZXNldCB0aGUgZXJyb3Igb2Yg4oCYdG/igJkgY29udHJvbCB3aGVuIOKAmGZyb23igJkgY29udHJvbCBpcyB2YWxpZCBhbmQgdG8gY29udHJvbCBjb250YWlucyBmb3JtX3ZhbGlkYXRpb25faW52YWxpZF9udW1iZXJfcmFuZ2VcbiAgICAgICAgICB0b0NvbnRyb2wuc2V0RXJyb3JzKHt9KTtcbiAgICAgICAgICB0b0NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNhbGN1bGF0ZUJhbGFuY2UgPSAodW5pdHNWYWx1ZSwgYmFsYW5jZVZhbHVlKSA9PiB7IHJldHVybiB1bml0c1ZhbHVlICsgYmFsYW5jZVZhbHVlIH1cblxuICBzdGF0aWMgdW5pdHNCYWxhbmNlVmFsaWRhdG9yKHVuaXRzQ29udHJvbE5hbWU6IHN0cmluZywgYmFsYW5jZUNvbnRyb2xOYW1lOiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBsZXQgcmVzcG9uc2UgPSBudWxsOyAvLyBSZXR1cm4gbnVsbCBpZiB2YWxpZGF0aW9uIHBhc3Nlc1xuICAgICAgaWYgKGNvbnRyb2wucGFyZW50KSB7XG4gICAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IGNvbnRyb2wucGFyZW50IGFzIEZvcm1Hcm91cDtcbiAgICAgICAgY29uc3QgdW5pdHNDb250cm9sID0gZm9ybUdyb3VwLmdldCh1bml0c0NvbnRyb2xOYW1lKTtcbiAgICAgICAgY29uc3QgYmFsYW5jZUNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGJhbGFuY2VDb250cm9sTmFtZSk7XG4gICAgICAgIGNvbnN0IHVuaXRzVmFsdWUgPSBwYXJzZUludCh1bml0c0NvbnRyb2wudmFsdWUpO1xuICAgICAgICBjb25zdCBiYWxhbmNlVmFsdWUgPSBiYWxhbmNlQ29udHJvbC52YWx1ZTtcbiAgICAgICAgY29uc3QgYmFsYW5jZUNhbGN1bGF0ZWQgPSB0aGlzLmNhbGN1bGF0ZUJhbGFuY2UodW5pdHNWYWx1ZSwgYmFsYW5jZVZhbHVlKVxuICAgICAgICBpZiAoYmFsYW5jZUNhbGN1bGF0ZWQgPiBNQVhfQUxMT1dFRF9CQUxBTkNFKSB7XG4gICAgICAgICAgcmVzcG9uc2UgPSB7IGZvcm1fdmFsaWRhdGlvbl91bml0c19iYWxhbmNlX21heGltdW06IHRydWUgfTtcbiAgICAgICAgfSBlbHNlIGlmIChiYWxhbmNlQ2FsY3VsYXRlZCA8IE1JTl9BTExPV0VEX0JBTEFOQ0UpIHtcbiAgICAgICAgICByZXNwb25zZSA9IHsgZm9ybV92YWxpZGF0aW9uX3VuaXRzX2JhbGFuY2VfbWluaW11bTogdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBtaW5EYXRlVGltZShjb250cm9sTmFtZTogc3RyaW5nLCBtaW5EYXRlVGltZVZhbHVlOiBEYXRlKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbEdyb3VwOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBsZXQgcmVzcG9uc2UgPSBudWxsOyAvLyBSZXR1cm4gbnVsbCBpZiB2YWxpZGF0aW9uIHBhc3Nlc1xuICAgICAgaWYgKGNvbnRyb2xHcm91cC5wYXJlbnQpIHtcbiAgICAgICAgY29uc3QgZm9ybUdyb3VwID0gY29udHJvbEdyb3VwLnBhcmVudCBhcyBGb3JtR3JvdXA7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lKTtcbiAgICAgICAgY29uc3QgY29udHJvbFZhbHVlOiBEYXRlID0gY29udHJvbC52YWx1ZTtcblxuICAgICAgICBpZiAoY29udHJvbFZhbHVlKSB7XG5cbiAgICAgICAgICBjb25zdCBjb250cm9sRGF0ZSA9IG5ldyBEYXRlKGNvbnRyb2xWYWx1ZSkuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgICAgICAgY29uc3QgbWluRGF0ZSA9IG5ldyBEYXRlKG1pbkRhdGVUaW1lVmFsdWUpLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuXG4gICAgICAgICAgaWYgKGNvbnRyb2xEYXRlIDwgbWluRGF0ZSkge1xuICAgICAgICAgICAgcmVzcG9uc2UgPSB7IGZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX2Zyb21fdGltZTogdHJ1ZSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVG9EYXRlKGZyb21EYXRlRmllbGQ6IHN0cmluZywgdG9EYXRlRmllbGQ6IHN0cmluZywgZnJvbVRpbWVGaWVsZDogc3RyaW5nID0gbnVsbCxcbiAgICB0b1RpbWVGaWVsZDogc3RyaW5nID0gbnVsbCwgZXJyb3JOYW1lOiBzdHJpbmcgPSAnZnJvbVRvRGF0ZScpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChmb3JtR3JvdXA6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBmcm9tRGF0ZTogRGF0ZSA9IGZvcm1Hcm91cC5nZXQoZnJvbURhdGVGaWVsZCk/LnZhbHVlO1xuICAgICAgY29uc3QgdG9EYXRlOiBEYXRlID0gZm9ybUdyb3VwLmdldCh0b0RhdGVGaWVsZCk/LnZhbHVlO1xuICAgICAgY29uc3QgZnJvbVRpbWU6IFRpYmFUaW1lID0gZm9ybUdyb3VwLmdldChmcm9tVGltZUZpZWxkKT8udmFsdWU7XG4gICAgICBjb25zdCB0b1RpbWU6IFRpYmFUaW1lID0gZm9ybUdyb3VwLmdldCh0b1RpbWVGaWVsZCk/LnZhbHVlO1xuICAgICAgaWYgKGZyb21UaW1lKSB7XG4gICAgICAgIGZyb21EYXRlLnNldEhvdXJzKGZyb21UaW1lLmhvdXJzKTtcbiAgICAgICAgZnJvbURhdGUuc2V0TWludXRlcyhmcm9tVGltZS5taW51dGVzKTtcbiAgICAgIH1cbiAgICAgIGlmICh0b1RpbWUpIHtcbiAgICAgICAgdG9EYXRlLnNldEhvdXJzKHRvVGltZS5ob3Vycyk7XG4gICAgICAgIHRvRGF0ZS5zZXRNaW51dGVzKHRvVGltZS5taW51dGVzKTtcbiAgICAgIH1cbiAgICAgIGlmICgoZnJvbURhdGUgIT09IG51bGwgJiYgdG9EYXRlICE9PSBudWxsKSAmJiBmcm9tRGF0ZSA+IHRvRGF0ZSkge1xuICAgICAgICByZXR1cm4geyBbZXJyb3JOYW1lXTogdHJ1ZSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVG9UaW1lUmFuZ2UoZnJvbVRpbWVGaWVsZDogc3RyaW5nLCB0b1RpbWVGaWVsZDogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgbGV0IHJlc3BvbnNlID0gbnVsbDsgLy8gUmV0dXJuIG51bGwgaWYgdmFsaWRhdGlvbiBwYXNzZXNcbiAgICAgIGlmIChjb250cm9sLnBhcmVudCkge1xuICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSBjb250cm9sLnBhcmVudCBhcyBGb3JtR3JvdXA7XG4gICAgICAgIGNvbnN0IHRvQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQodG9UaW1lRmllbGQpO1xuICAgICAgICBjb25zdCBmcm9tQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZnJvbVRpbWVGaWVsZCk7XG4gICAgICAgIGlmICh0aGlzLmlzVmFsdWVHcmVhdGVyVGhhbk9yRXF1YWxUbyhmcm9tQ29udHJvbCwgdG9Db250cm9sKSAmJiB0aGlzLmlzVmFsdWVMZW5ndGhWYWxpZChmcm9tQ29udHJvbCwgdG9Db250cm9sKSAmJlxuICAgICAgICAgICF0b0NvbnRyb2wuaGFzRXJyb3IoJ2Zvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3RpbWVfcmFuZ2UnKSkge1xuICAgICAgICAgIHJlc3BvbnNlID0geyBmb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lX3JhbmdlOiB0cnVlIH07XG4gICAgICAgIH0gZWxzZSBpZiAodG9Db250cm9sLmhhc0Vycm9yKCdmb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lX3JhbmdlJykpIHtcbiAgICAgICAgICAvLyByZXNldCB0aGUgZXJyb3Igb2Yg4oCYdG/igJkgY29udHJvbCB3aGVuIOKAmGZyb23igJkgY29udHJvbCBpcyB2YWxpZCBhbmQgdG8gY29udHJvbCBjb250YWlucyBmb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lX3JhbmdlXG4gICAgICAgICAgdG9Db250cm9sLnNldEVycm9ycyh7fSk7XG4gICAgICAgICAgdG9Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVG9UaW1lKGZyb21UaW1lRmllbGQ6IHN0cmluZywgdG9UaW1lRmllbGQ6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGZvcm1Hcm91cDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IGZyb21UaW1lOiBUaWJhVGltZSA9IGZvcm1Hcm91cC5nZXQoZnJvbVRpbWVGaWVsZCkudmFsdWU7XG4gICAgICBjb25zdCB0b1RpbWU6IFRpYmFUaW1lID0gZm9ybUdyb3VwLmdldCh0b1RpbWVGaWVsZCkudmFsdWU7XG4gICAgICBpZiAoIXRoaXMuaXNUaW1lTnVsbChmcm9tVGltZSkgJiYgIXRoaXMuaXNUaW1lTnVsbCh0b1RpbWUpICYmIChcbiAgICAgICAgKGZyb21UaW1lLmhvdXJzID4gdG9UaW1lLmhvdXJzKSB8fFxuICAgICAgICAoZnJvbVRpbWUuaG91cnMgPT0gdG9UaW1lLmhvdXJzICYmIGZyb21UaW1lLm1pbnV0ZXMgPiB0b1RpbWUubWludXRlcylcbiAgICAgICkpIHtcbiAgICAgICAgcmV0dXJuIHsgZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfdGltZV9yYW5nZTogdHJ1ZSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzVGltZU51bGwgPSAodGltZTogVGliYVRpbWUpID0+IHRpbWUgPT09IG51bGwgfHxcbiAgICAodGltZS5ob3VycyA9PT0gbnVsbCAmJiB0aW1lLm1pbnV0ZXMgPT09IG51bGwgJiYgdGltZS5zZWNvbmRzID09PSBudWxsKTtcblxuICBzdGF0aWMgbm9XaGl0ZXNwYWNlVmFsaWRhdG9yID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgPT5cbiAgICAhaXNOdWxsT3JFbXB0eShjb250cm9sLnZhbHVlKSAmJiBpc051bGxPckVtcHR5KGNvbnRyb2w/LnZhbHVlPy50cmltKCkpID8geyByZXF1aXJlZDogdHJ1ZSB9IDogbnVsbDtcblxuICBzdGF0aWMgbm9XaGl0ZXNwYWNlV2l0aGluU2VudGVuY2VWYWxpZGF0b3IgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyA9PlxuICAgICEoY29udHJvbD8udmFsdWU/LnNwbGl0KFwiIFwiKS5sZW5ndGggPT09IDEpID8geyBub1doaXRlc3BhY2VXaXRoaW5TZW50ZW5jZTogdHJ1ZSB9IDogbnVsbDtcblxuICBzdGF0aWMgdGVybXNQb2xpY3lDaGVja2JveCgpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoIWNvbnRyb2wgfHwgIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHsgaW52YWxpZFRlcm1zOiB0cnVlIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIHZhbGlkYXRlRGVmYXVsdEFjY2Vzc1Byb2ZpbGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgaWYgKCFpc051bGxPckVtcHR5KGNvbnRyb2wudmFsdWUpICYmICFjb250cm9sLnZhbHVlPy5kZWZhdWx0QWNjZXNzUHJvZmlsZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbm9EZWZhdWx0QWNjZXNzUHJvZmlsZToge1xuICAgICAgICAgIGNvbXBhbnlOYW1lOiBjb250cm9sLnZhbHVlLm5hbWUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyB6UmFuZ2UodHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSwgZnJvbVpGaWVsZDogc3RyaW5nLCB0b1pGaWVsZDogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoZm9ybUdyb3VwOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBmcm9tWkNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZyb21aRmllbGQpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gICAgICBjb25zdCB0b1pDb250cm9sID0gZm9ybUdyb3VwLmdldCh0b1pGaWVsZCkgYXMgVW50eXBlZEZvcm1BcnJheTtcblxuICAgICAgaWYgKGZyb21aQ29udHJvbC52YWx1ZT8uaWQgPiB0b1pDb250cm9sLnZhbHVlPy5pZCkge1xuICAgICAgICByZXR1cm4geyB6UmFuZ2U6IHRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uaW52YWxpZF9maWVsZHMpIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgcmVxdWlyZWRDcmVkZW50aWFscyh0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLCBjYXJQbGF0ZUZpZWxkOiBzdHJpbmcgPSAnY2FyUGxhdGUnLCBtb2JpbGVGaWVsZDogc3RyaW5nID0gJ21vYmlsZScsIGJhZGdlRmllbGQ6IHN0cmluZyA9ICdiYWRnZScsXG4gICAgZW1haWxGaWVsZDogc3RyaW5nID0gJ2VtYWlsJywgc2VuZEVtYWlsRmllbGQ6IHN0cmluZyA9ICdzZW5kRW1haWwnKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoZm9ybUdyb3VwOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgbnVsbCA9PiB7XG4gICAgICBsZXQgY2FyUGxhdGVzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgbGV0IGJhZGdlc0ludmFsaWQgPSBmYWxzZTtcbiAgICAgIGxldCBpbnRlcnBvbGF0ZWRDcmVkZW50aWFsczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgLy8gQ2FyZHNcbiAgICAgIGNvbnN0IGJhZGdlc0Zvcm1BcnJheSA9IGZvcm1Hcm91cC5nZXQoYmFkZ2VGaWVsZCkgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgICAgIGlmIChiYWRnZXNGb3JtQXJyYXkpIHtcbiAgICAgICAgaW50ZXJwb2xhdGVkQ3JlZGVudGlhbHMucHVzaCh0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLmNhcmQpKTtcbiAgICAgICAgYmFkZ2VzSW52YWxpZCA9IHRoaXMuaXNGb3JtQ29udHJvbExpc3RJbnZhbGlkKGJhZGdlc0Zvcm1BcnJheS52YWx1ZSk7XG4gICAgICB9XG4gICAgICBjb25zdCBpc0NhcmRzSW52YWxpZCA9IGJhZGdlc0ludmFsaWQgfHwgIWJhZGdlc0Zvcm1BcnJheTtcblxuICAgICAgLy9DYXIgcGxhdGVzXG4gICAgICBjb25zdCBjYXJQbGF0ZXNGb3JtQXJyYXkgPSBmb3JtR3JvdXAuZ2V0KGNhclBsYXRlRmllbGQpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gICAgICBpZiAoY2FyUGxhdGVzRm9ybUFycmF5KSB7XG4gICAgICAgIGludGVycG9sYXRlZENyZWRlbnRpYWxzLnB1c2godHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5jYXJfcGxhdGUpKTtcbiAgICAgICAgY2FyUGxhdGVzSW52YWxpZCA9IHRoaXMuaXNGb3JtQ29udHJvbExpc3RJbnZhbGlkKGNhclBsYXRlc0Zvcm1BcnJheS52YWx1ZSk7XG4gICAgICB9XG4gICAgICBjb25zdCBpc0NhclBsYXRlc0ludmFsaWQgPSBjYXJQbGF0ZXNJbnZhbGlkIHx8ICFjYXJQbGF0ZXNGb3JtQXJyYXk7XG5cbiAgICAgIC8vIE1vYmlsZVxuICAgICAgY29uc3QgbW9iaWxlRm9ybUNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KG1vYmlsZUZpZWxkKTtcbiAgICAgIGlmIChtb2JpbGVGb3JtQ29udHJvbCkge1xuICAgICAgICBpbnRlcnBvbGF0ZWRDcmVkZW50aWFscy5wdXNoKHRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24ubW9iaWxlKSk7XG4gICAgICB9XG4gICAgICBjb25zdCBpc01vYmlsZUludmFsaWQgPSAhbW9iaWxlRm9ybUNvbnRyb2w/LnZhbHVlO1xuXG4gICAgICAvLyBFbWFpbFxuICAgICAgY29uc3QgZW1haWxGb3JtQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZW1haWxGaWVsZCk7XG4gICAgICBjb25zdCBzZW5kRW1haWxGb3JtQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQoc2VuZEVtYWlsRmllbGQpO1xuICAgICAgaWYgKGVtYWlsRm9ybUNvbnRyb2wgJiYgc2VuZEVtYWlsRm9ybUNvbnRyb2w/LnZhbHVlKSB7XG4gICAgICAgIGludGVycG9sYXRlZENyZWRlbnRpYWxzLnB1c2godHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5lbWFpbCkpO1xuICAgICAgfVxuICAgICAgY29uc3QgaXNFbWFpbEludmFsaWQgPSAhKHNlbmRFbWFpbEZvcm1Db250cm9sPy52YWx1ZSAmJiBlbWFpbEZvcm1Db250cm9sPy52YWx1ZSlcblxuICAgICAgY29uc3QgaXNSZXF1aXJlZENyZWRlbnRpYWxzID0gaXNDYXJQbGF0ZXNJbnZhbGlkICYmIGlzQ2FyZHNJbnZhbGlkICYmIGlzTW9iaWxlSW52YWxpZCAmJiBpc0VtYWlsSW52YWxpZDtcblxuICAgICAgaWYgKGlzUmVxdWlyZWRDcmVkZW50aWFscykge1xuICAgICAgICBjb25zdCBsYXN0Q3JlZGVudGlhbCA9IGludGVycG9sYXRlZENyZWRlbnRpYWxzLnBvcCgpO1xuICAgICAgICBsZXQgaW50ZXJwb2xhdGVQYXJhbXMgPSBgJHtpbnRlcnBvbGF0ZWRDcmVkZW50aWFscy5qb2luKCcsICcpfSAke3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24ub3IpfSAke2xhc3RDcmVkZW50aWFsfWA7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVxdWlyZWRDcmVkZW50aWFsczogdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5yZXF1aXJlZF9jcmVkZW50aWFsc19tZXNzYWdlLCB7IGNyZWRlbnRpYWxzOiBpbnRlcnBvbGF0ZVBhcmFtcyB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNGb3JtQ29udHJvbExpc3RJbnZhbGlkKGxpc3Q6IFVudHlwZWRGb3JtQ29udHJvbFtdKSB7XG4gICAgbGV0IGlzSW52YWxpZCA9IGZhbHNlO1xuICAgIGZvciAoY29uc3QgY29udHJvbCBvZiBsaXN0KSB7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzSW52YWxpZDtcbiAgfVxuXG4gIHN0YXRpYyByZXF1aXJlZERheXMoc3BlY2lhbERheXNGaWVsZDogc3RyaW5nLCB3ZWVrRGF5c0ZpZWxkOiBzdHJpbmcsIGVycm9yTmFtZTogc3RyaW5nID0gJ3JlcXVpcmVkRGF5cycpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChmb3JtR3JvdXA6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBzcGVjaWFsRGF5czogbnVtYmVyID0gZm9ybUdyb3VwLmdldChzcGVjaWFsRGF5c0ZpZWxkKS52YWx1ZTtcbiAgICAgIGNvbnN0IHdlZWtEYXlzOiBudW1iZXIgPSBmb3JtR3JvdXAuZ2V0KHdlZWtEYXlzRmllbGQpLnZhbHVlO1xuICAgICAgaWYgKHNwZWNpYWxEYXlzID4gMCB8fCB3ZWVrRGF5cyA+IDApIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IFtlcnJvck5hbWVdOiB0cnVlIH07XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBpc1JvbGVOYW1lRXhpc3RzKHJvbGVTZXJ2aWNlUHJveHk6IENsb3VkLlJvbGVTZXJ2aWNlUHJveHksIHJvbGVJZDogbnVtYmVyKTogQXN5bmNWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnM+ID0+IHtcbiAgICAgIHJldHVybiBvZihjb250cm9sLnZhbHVlKS5waXBlKFxuICAgICAgICBkZWxheSg1MDApLFxuICAgICAgICBkZWJvdW5jZVRpbWUoSU5QVVRfU0VBUkNIX0RFQk9VTkNFX1RJTUUpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gcm9sZVNlcnZpY2VQcm94eS5pc0V4aXN0cyhjb250cm9sLnZhbHVlLCByb2xlSWQgPz8gdW5kZWZpbmVkKS5waXBlKFxuICAgICAgICAgIG1hcChyZXMgPT4gcmVzLmRhdGEgPT09IHRydWUgfHwgIXJlcy5pc1N1Y2Nlc3MgPyB7IHJvbGVOYW1lQWxyZWFkeUV4aXN0czogdHJ1ZSB9IDogbnVsbCkpKSk7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyB0aWJhVGltZVZhbGlkYXRvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsOiBUaWJhVGltZSA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAodmFsICYmICh2YWwuaG91cnMgPT09IG51bGwgfHwgdmFsLm1pbnV0ZXMgPT09IG51bGwpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbnZhbGlkVGltZTogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyB0aW1lVmFsaWRhdG9yKGZyb21Ib3VyOiBudW1iZXIsIGZyb21NaW51dGVzOiBudW1iZXIsIHRvSG91cjogbnVtYmVyLCB0b01pbnV0ZXM6IG51bWJlcik6IGFueSB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoISFjb250cm9sLnZhbHVlKSB7XG4gICAgICAgIGlmIChjb250cm9sLnZhbHVlLmxlbmd0aCAhPT0gNCkgeyAvLyBBc3N1bWluZyB5b3VyIHRpbWUgZm9ybWF0IGlzICdISE1NJ1xuICAgICAgICAgIHJldHVybiB7IGZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3RpbWVfZm9ybWF0OiB0cnVlIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgaG91cnM6IG51bWJlciA9IHBhcnNlSW50KGNvbnRyb2wudmFsdWUuc2xpY2UoMCwgMikpO1xuICAgICAgICAgIGNvbnN0IG1pbnV0ZXM6IG51bWJlciA9IHBhcnNlSW50KGNvbnRyb2wudmFsdWUuc2xpY2UoMikpO1xuICAgICAgICAgIGNvbnN0IGlzVmFsaWRUaW1lID1cbiAgICAgICAgICAgIChob3VycyA+IGZyb21Ib3VyIHx8IChob3VycyA9PT0gZnJvbUhvdXIgJiYgbWludXRlcyA+PSBmcm9tTWludXRlcykpICYmXG4gICAgICAgICAgICAoaG91cnMgPCB0b0hvdXIgfHwgKGhvdXJzID09PSB0b0hvdXIgJiYgbWludXRlcyA8PSB0b01pbnV0ZXMpKTtcbiAgICAgICAgICBpZiAoIWlzVmFsaWRUaW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBmb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lOiB7XG4gICAgICAgICAgICAgICAgZnJvbTogYCR7ZnJvbUhvdXIudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfToke2Zyb21NaW51dGVzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1gLFxuICAgICAgICAgICAgICAgIHRvOiBgJHt0b0hvdXIudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfToke3RvTWludXRlcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YCxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBpc1ZhbHVlR3JlYXRlclRoYW5PckVxdWFsVG8oZnJvbUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgdG9Db250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBib29sZWFuIHtcbiAgICBjb25zdCBmcm9tVGltZUluTnVtYmVyOiBudW1iZXIgPSBmcm9tQ29udHJvbC52YWx1ZTtcbiAgICBjb25zdCB0b1RpbWVJbk51bWJlcjogbnVtYmVyID0gdG9Db250cm9sLnZhbHVlO1xuICAgIHJldHVybiBmcm9tVGltZUluTnVtYmVyICE9PSBudWxsICYmIHRvVGltZUluTnVtYmVyICE9PSBudWxsICYmICtmcm9tVGltZUluTnVtYmVyID4gK3RvVGltZUluTnVtYmVyO1xuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIGlzVmFsdWVMZW5ndGhWYWxpZChmcm9tQ29udHJvbDogQWJzdHJhY3RDb250cm9sLCB0b0NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZyb21UaW1lSW5OdW1iZXI6IG51bWJlciA9IGZyb21Db250cm9sLnZhbHVlO1xuICAgIGNvbnN0IHRvVGltZUluTnVtYmVyOiBudW1iZXIgPSB0b0NvbnRyb2wudmFsdWU7XG4gICAgcmV0dXJuIGZyb21UaW1lSW5OdW1iZXIudG9TdHJpbmcoKS5sZW5ndGggPT09IFZBTElEX1RJTUVfTUFYX0xFTkdUSCAmJlxuICAgICAgdG9UaW1lSW5OdW1iZXIudG9TdHJpbmcoKS5sZW5ndGggPT09IFZBTElEX1RJTUVfTUFYX0xFTkdUSDtcbiAgfVxufVxuIl19
|
|
461
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXZhbGlkYXRvci51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy91dGlscy9jdXN0b20tdmFsaWRhdG9yLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJeEMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFDOUIsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDO0FBQzlDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyx5SEFBeUgsQ0FBQztBQUN2SixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxzQkFBc0IsQ0FBQztBQUMzRCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyw0QkFBNEIsQ0FBQztBQUNoRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztBQUNsRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztBQUNsRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxxQkFBcUIsQ0FBQztBQUMxRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsdUJBQXVCLENBQUM7QUFDcEQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLHVGQUF1RixDQUFDO0FBQ2hILE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxHQUFHLGdC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RyxDQUFDLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0NBQzFGLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFOzZCQUNyRjt5QkFDRixDQUFDO3FCQUNIO2lCQUNGO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyxNQUFNLENBQUMsMkJBQTJCLENBQUMsV0FBNEIsRUFBRSxTQUEwQjtRQUNqRyxNQUFNLGdCQUFnQixHQUFXLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDbkQsTUFBTSxjQUFjLEdBQVcsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUMvQyxPQUFPLGdCQUFnQixLQUFLLElBQUksSUFBSSxjQUFjLEtBQUssSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxjQUFjLENBQUM7SUFDckcsQ0FBQztJQUFBLENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQUMsV0FBNEIsRUFBRSxTQUEwQjtRQUN4RixNQUFNLGdCQUFnQixHQUFXLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDbkQsTUFBTSxjQUFjLEdBQVcsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUMvQyxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sS0FBSyxxQkFBcUI7WUFDakUsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sS0FBSyxxQkFBcUIsQ0FBQztJQUMvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBBc3luY1ZhbGlkYXRvckZuLCBGb3JtR3JvdXAsIFVudHlwZWRGb3JtQXJyYXksIFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkZWJvdW5jZVRpbWUsIGRlbGF5LCBtYXAsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElOUFVUX1NFQVJDSF9ERUJPVU5DRV9USU1FLCBWQUxJRF9USU1FX01BWF9MRU5HVEggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uIH0gZnJvbSAnLi4vZW51bXMnO1xuaW1wb3J0IHsgQ2xvdWQgfSBmcm9tICcuLi9zZXJ2aWNlLXByb3h5JztcbmltcG9ydCB7IFRpbWUgYXMgVGliYVRpbWUgfSBmcm9tICcuL2RhdGUudXRpbCc7XG5cbmNvbnN0IE1JTl9BTExPV0VEX0JBTEFOQ0UgPSAwO1xuY29uc3QgTUFYX0FMTE9XRURfQkFMQU5DRSA9IDI1NTtcbmV4cG9ydCBjb25zdCBub0Vtb2ppUmVnZXggPSAvW15hLXpBLVowLTkgXS9nbTtcbmV4cG9ydCBjb25zdCBwYXNzd29yZFJlZ2V4ID0gL14oPz0uKlthLXpdKSg/PS4qW0EtWl0pKD89LipcXGQpKD89LipbIVwiIyQlJicoKSorLC0uLzo7PD0+P0BbXFxdXl9ge3x9fl0pW0EtWmEtelxcZCFcIiMkJSYnKCkqKywtLi86Ozw9Pj9AW1xcXV5fYHt8fX5dezQsfSQvZztcbmV4cG9ydCBjb25zdCBwb3NpdGl2ZU51bWJlcnNSZWdleCA9IC9eWzAtOV0rKFxcLj9bMC05XSspPyQvO1xuZXhwb3J0IGNvbnN0IHBvc2l0aXZlTnVtYmVyc0dyZWF0ZXJUaGFuWmVyb1JlZ2V4ID0gL14oPz0uKlsxLTldKVxcZCooPzpcXC5cXGQrKT8kLztcbmV4cG9ydCBjb25zdCBhbHBoYW51bWVyaWNSZWdleCA9IC9eW2EtekEtWjAtOV0rJC87XG5leHBvcnQgY29uc3QgbW9iaWxlUmVnZXggPSAvXlswLTldKyQvO1xuZXhwb3J0IGNvbnN0IGludGVnZXJOdW1iZXJzUmVnZXggPSAvXlstXT8oXFxkKyk/JC87XG5leHBvcnQgY29uc3QgZGVjaW1hbFBvc2l0aXZlUmVnZXggPSAvXihcXGQrKShcXC5cXGR7MSwyfSk/JC87XG5leHBvcnQgY29uc3QgZGVjaW1hbFJlZ2V4ID0gL14tPyhcXGQrKShcXC5cXGR7MSwyfSk/JC87XG5leHBvcnQgY29uc3QgcmVnZXhFeHAgPSAvXlswLTlhLWZBLUZdezh9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezEyfSQvO1xuZXhwb3J0IGNvbnN0IHBvc2l0aXZlSW50ZWdlck51bWJlcnNJbmNsdWRlWmVyb1JlZ2V4ID0gL14oMHxbMS05XVxcZCopJC87XG5leHBvcnQgY29uc3QgcG9zaXRpdmVJbnRlZ2VyTnVtYmVyc0dyZWF0ZXJUaGFuWmVyb1JlZ2V4ID0gL15bMS05XVxcZCokLztcbmV4cG9ydCBjb25zdCBwZXJjZW50YWdlUmVnZXggPSAvXigxMDAoXFwuMCspP3xbMS05XT9cXGQoXFwuXFxkKyk/KSQvO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNOdWxsT3JFbXB0eSh2YWw6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gKHZhbCA9PT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09ICcnKTtcbn1cblxuZXhwb3J0IGNsYXNzIFRpYmFWYWxpZGF0b3JzIHtcblxuICAvLyBObyBlbW9qaSB2YWxpZGF0aW9uXG4gIHN0YXRpYyBub0Vtb2ppKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWwgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgaWYgKCFpc051bGxPckVtcHR5KHZhbCkgJiYgdmFsLnRvU3RyaW5nKCkubWF0Y2gobm9FbW9qaVJlZ2V4KSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbm9FbW9qaToge1xuICAgICAgICAgIHZhbHVlOiBgICcke3ZhbH0nYCxcbiAgICAgICAgICBwYXR0ZXJuOiBub0Vtb2ppUmVnZXhcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBwZXJjZW50YWdlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWwgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgaWYgKCFpc051bGxPckVtcHR5KHZhbCkgJiYgIXZhbC50b1N0cmluZygpLm1hdGNoKHBlcmNlbnRhZ2VSZWdleCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBlcmNlbnRhZ2VSZWdleDoge1xuICAgICAgICAgIHZhbHVlOiBgICcke3ZhbH0nYCxcbiAgICAgICAgICBwYXR0ZXJuOiBwZXJjZW50YWdlUmVnZXhcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIE1vYmlsZSBvbmx5IHZhbGlkYXRpb25cbiAgc3RhdGljIG1vYmlsZU51bWJlcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbCA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIWlzTnVsbE9yRW1wdHkodmFsKSAmJiAhdmFsLnRvU3RyaW5nKCkubWF0Y2gobW9iaWxlUmVnZXgpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtb2JpbGVOdW1iZXJzOiB7XG4gICAgICAgICAgdmFsdWU6IGAgJyR7dmFsfSdgLFxuICAgICAgICAgIHBhdHRlcm46IG1vYmlsZVJlZ2V4XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgaG90ZWxSb29uTnVtYmVycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsID0gY29udHJvbC52YWx1ZTtcblxuICAgIGlmICghaXNOdWxsT3JFbXB0eSh2YWwpICYmICF2YWwudG9TdHJpbmcoKS5tYXRjaChhbHBoYW51bWVyaWNSZWdleCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFscGhhbnVtZXJpY1JlZ2V4OiB7XG4gICAgICAgICAgdmFsdWU6IGAgJyR7dmFsfSdgLFxuICAgICAgICAgIHBhdHRlcm46IGFscGhhbnVtZXJpY1JlZ2V4XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgcG9zaXRpdmVJbnRlZ2VyTnVtYmVyc0luY2x1ZGVaZXJvKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWwgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgaWYgKCFpc051bGxPckVtcHR5KHZhbCkgJiYgIXZhbC50b1N0cmluZygpLm1hdGNoKHBvc2l0aXZlSW50ZWdlck51bWJlcnNJbmNsdWRlWmVyb1JlZ2V4KSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcG9zaXRpdmVJbnRlZ2VyTnVtYmVyc0luY2x1ZGVaZXJvUmVnZXg6IHtcbiAgICAgICAgICB2YWx1ZTogYCAnJHt2YWx9J2AsXG4gICAgICAgICAgcGF0dGVybjogcG9zaXRpdmVJbnRlZ2VyTnVtYmVyc0luY2x1ZGVaZXJvUmVnZXhcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBwb3NpdGl2ZUludGVnZXJOdW1iZXJzV2l0aG91dFplcm9SZWdleChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsID0gY29udHJvbC52YWx1ZTtcblxuICAgIGlmICghaXNOdWxsT3JFbXB0eSh2YWwpICYmICF2YWwudG9TdHJpbmcoKS5tYXRjaChwb3NpdGl2ZUludGVnZXJOdW1iZXJzR3JlYXRlclRoYW5aZXJvUmVnZXgpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwb3NpdGl2ZUludGVnZXJOdW1iZXJzR3JlYXRlclRoYW5aZXJvUmVnZXg6IHtcbiAgICAgICAgICB2YWx1ZTogYCAnJHt2YWx9J2AsXG4gICAgICAgICAgcGF0dGVybjogcG9zaXRpdmVJbnRlZ2VyTnVtYmVyc0dyZWF0ZXJUaGFuWmVyb1JlZ2V4XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBEZWNpbWFsIFBvc2l0aXZlIE51bWJlcnMgb25seSB2YWxpZGF0aW9uXG4gIHN0YXRpYyBkZWNpbWFsUG9zaXRpdmVOdW1iZXJzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWwgPSBjb250cm9sLnZhbHVlO1xuICAgIGlmICghaXNOdWxsT3JFbXB0eSh2YWwpICYmICF2YWwudG9TdHJpbmcoKS5tYXRjaChkZWNpbWFsUG9zaXRpdmVSZWdleCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRlY2ltYWxQb3NpdGl2ZU51bWJlcnM6IHtcbiAgICAgICAgICB2YWx1ZTogYCAnJHt2YWx9J2AsXG4gICAgICAgICAgcGF0dGVybjogZGVjaW1hbFJlZ2V4XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gRGVjaW1hbCBOdW1iZXJzIG9ubHkgdmFsaWRhdGlvblxuICBzdGF0aWMgZGVjaW1hbE51bWJlcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbCA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIWlzTnVsbE9yRW1wdHkodmFsKSAmJiAhdmFsLnRvU3RyaW5nKCkubWF0Y2goZGVjaW1hbFJlZ2V4KSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVjaW1hbFBvc2l0aXZlTnVtYmVyczoge1xuICAgICAgICAgIHZhbHVlOiBgICcke3ZhbH0nYCxcbiAgICAgICAgICBwYXR0ZXJuOiBkZWNpbWFsUmVnZXhcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIFBvc2l0aXZlIE51bWJlcnMgb25seSB2YWxpZGF0aW9uXG4gIHN0YXRpYyBwb3NpdGl2ZU51bWJlcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbCA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIWlzTnVsbE9yRW1wdHkodmFsKSAmJiAhdmFsLnRvU3RyaW5nKCkubWF0Y2gocG9zaXRpdmVOdW1iZXJzUmVnZXgpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwb3NpdGl2ZU51bWJlcnM6IHtcbiAgICAgICAgICB2YWx1ZTogYCAnJHt2YWx9J2AsXG4gICAgICAgICAgcGF0dGVybjogcG9zaXRpdmVOdW1iZXJzUmVnZXhcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIFBvc2l0aXZlIE51bWJlcnMgd2l0aG91dCB6ZXJvIHZhbGlkYXRpb25cbiAgc3RhdGljIHBvc2l0aXZlTnVtYmVyc0dyZWF0ZXJUaGFuWmVybyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsID0gY29udHJvbC52YWx1ZTtcblxuICAgIGlmICghaXNOdWxsT3JFbXB0eSh2YWwpICYmICF2YWwudG9TdHJpbmcoKS5tYXRjaChwb3NpdGl2ZU51bWJlcnNHcmVhdGVyVGhhblplcm9SZWdleCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBvc2l0aXZlTnVtYmVyc0dyZWF0ZXJUaGFuWmVybzoge1xuICAgICAgICAgIHZhbHVlOiBgICcke3ZhbH0nYCxcbiAgICAgICAgICBwYXR0ZXJuOiBwb3NpdGl2ZU51bWJlcnNHcmVhdGVyVGhhblplcm9SZWdleFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gUG9zaXRpdmUgLyBOZWdldGl2ZSBOdW1iZXJzIG9ubHkgdmFsaWRhdGlvblxuICBzdGF0aWMgaW50ZWdlck51bWJlcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbCA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIWlzTnVsbE9yRW1wdHkodmFsKSAmJiAhdmFsLnRvU3RyaW5nKCkubWF0Y2goaW50ZWdlck51bWJlcnNSZWdleCkpIHJldHVybiB7XG4gICAgICBpbnRlZ2VyTnVtYmVyczoge1xuICAgICAgICB2YWx1ZTogYCAnJHt2YWx9J2AsXG4gICAgICAgIHBhdHRlcm46IGludGVnZXJOdW1iZXJzUmVnZXhcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBOdW1iZXIgbGVuZ3RoXG4gIHN0YXRpYyBudW1lcmljTGVuZ3RoKGxlbmd0aDogbnVtYmVyKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgY29uc3QgdmFsID0gY29udHJvbC52YWx1ZTtcblxuICAgICAgaWYgKCFpc051bGxPckVtcHR5KHZhbCkgJiYgdmFsLnRvU3RyaW5nKCkubGVuZ3RoICE9PSBsZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbnZhbGlkTnVtYmVyTGVuZ3RoOiB7XG4gICAgICAgICAgICBhY3R1YWxMZW5ndGg6IHZhbCxcbiAgICAgICAgICAgIHJlcXVpcmVkTGVuZ3RoOiBsZW5ndGhcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgUGFzc3dvcmRWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICghY29udHJvbC52YWx1ZT8ubWF0Y2gocGFzc3dvcmRSZWdleCkpIHtcbiAgICAgIHJldHVybiB7IHBhc3N3b3JkUG9saWN5UmVxdWlyZW1lbnRzOiB0cnVlIH07XG4gICAgfVxuICAgIGlmIChjb250cm9sLnZhbHVlLmxlbmd0aCA8IDgpIHtcbiAgICAgIHJldHVybiB7IG1pbmxlbmd0aDogeyByZXF1aXJlZExlbmd0aDogOCB9IH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3RhdGljIEd1aWRWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICghcmVnZXhFeHAudGVzdChjb250cm9sLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIHsgZ3VpZElzVmFsaWQ6IHRydWUgfTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgUGFzc3dvcmRGb3JtTWF0Y2hWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgaWYgKCFjb250cm9sKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdQYXNzd29yZCA9IGNvbnRyb2wuZ2V0KCdwYXNzd29yZCcpO1xuICAgIGNvbnN0IGNvbmZpcm1QYXNzd29yZCA9IGNvbnRyb2wuZ2V0KCdjb25maXJtUGFzc3dvcmQnKTtcbiAgICBpZiAoKG5ld1Bhc3N3b3JkLmVycm9ycyB8fCBjb25maXJtUGFzc3dvcmQuZXJyb3JzKSB8fFxuICAgICAgbmV3UGFzc3dvcmQudmFsdWUgPT09IGNvbmZpcm1QYXNzd29yZC52YWx1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7IC8vIFBhc3N3b3JkcyBtYXRjaCBvciBmb3JtIGZpZWxkcyBoYXMgaXRzIG93biBlcnJvcnNcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHsgcGFzc3dvcmROb3RNYXRjaDogdHJ1ZSB9O1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmcm9tVG9OdW1iZXJWYWxpZGF0b3IoZnJvbUNvbnRyb2xOYW1lOiBzdHJpbmcsIHRvQ29udHJvbE5hbWU6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGxldCByZXNwb25zZSA9IG51bGw7IC8vIFJldHVybiBudWxsIGlmIHZhbGlkYXRpb24gcGFzc2VzXG4gICAgICBpZiAoY29udHJvbC5wYXJlbnQpIHtcbiAgICAgICAgY29uc3QgZm9ybUdyb3VwID0gY29udHJvbC5wYXJlbnQgYXMgRm9ybUdyb3VwO1xuICAgICAgICBjb25zdCBmcm9tQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZnJvbUNvbnRyb2xOYW1lKTtcbiAgICAgICAgY29uc3QgdG9Db250cm9sID0gZm9ybUdyb3VwLmdldCh0b0NvbnRyb2xOYW1lKTtcbiAgICAgICAgaWYgKHRoaXMuaXNWYWx1ZUdyZWF0ZXJUaGFuT3JFcXVhbFRvKGZyb21Db250cm9sLCB0b0NvbnRyb2wpICYmICF0b0NvbnRyb2wuaGFzRXJyb3IoJ2Zvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX251bWJlcl9yYW5nZScpKSB7XG4gICAgICAgICAgLy8gUmV0dXJuIHZhbGlkYXRpb24gZXJyb3IgaWYgJ2Zyb20nIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAndG8nIHZhbHVlXG4gICAgICAgICAgcmVzcG9uc2UgPSB7IGZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX251bWJlcl9yYW5nZTogdHJ1ZSB9O1xuICAgICAgICB9IGVsc2UgaWYgKHRvQ29udHJvbC5oYXNFcnJvcignZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfbnVtYmVyX3JhbmdlJykpIHtcbiAgICAgICAgICAvLyByZXNldCB0aGUgZXJyb3Igb2Yg4oCYdG/igJkgY29udHJvbCB3aGVuIOKAmGZyb23igJkgY29udHJvbCBpcyB2YWxpZCBhbmQgdG8gY29udHJvbCBjb250YWlucyBmb3JtX3ZhbGlkYXRpb25faW52YWxpZF9udW1iZXJfcmFuZ2VcbiAgICAgICAgICB0b0NvbnRyb2wuc2V0RXJyb3JzKHt9KTtcbiAgICAgICAgICB0b0NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNhbGN1bGF0ZUJhbGFuY2UgPSAodW5pdHNWYWx1ZSwgYmFsYW5jZVZhbHVlKSA9PiB7IHJldHVybiB1bml0c1ZhbHVlICsgYmFsYW5jZVZhbHVlIH1cblxuICBzdGF0aWMgdW5pdHNCYWxhbmNlVmFsaWRhdG9yKHVuaXRzQ29udHJvbE5hbWU6IHN0cmluZywgYmFsYW5jZUNvbnRyb2xOYW1lOiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBsZXQgcmVzcG9uc2UgPSBudWxsOyAvLyBSZXR1cm4gbnVsbCBpZiB2YWxpZGF0aW9uIHBhc3Nlc1xuICAgICAgaWYgKGNvbnRyb2wucGFyZW50KSB7XG4gICAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IGNvbnRyb2wucGFyZW50IGFzIEZvcm1Hcm91cDtcbiAgICAgICAgY29uc3QgdW5pdHNDb250cm9sID0gZm9ybUdyb3VwLmdldCh1bml0c0NvbnRyb2xOYW1lKTtcbiAgICAgICAgY29uc3QgYmFsYW5jZUNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGJhbGFuY2VDb250cm9sTmFtZSk7XG4gICAgICAgIGNvbnN0IHVuaXRzVmFsdWUgPSBwYXJzZUludCh1bml0c0NvbnRyb2wudmFsdWUpO1xuICAgICAgICBjb25zdCBiYWxhbmNlVmFsdWUgPSBiYWxhbmNlQ29udHJvbC52YWx1ZTtcbiAgICAgICAgY29uc3QgYmFsYW5jZUNhbGN1bGF0ZWQgPSB0aGlzLmNhbGN1bGF0ZUJhbGFuY2UodW5pdHNWYWx1ZSwgYmFsYW5jZVZhbHVlKVxuICAgICAgICBpZiAoYmFsYW5jZUNhbGN1bGF0ZWQgPiBNQVhfQUxMT1dFRF9CQUxBTkNFKSB7XG4gICAgICAgICAgcmVzcG9uc2UgPSB7IGZvcm1fdmFsaWRhdGlvbl91bml0c19iYWxhbmNlX21heGltdW06IHRydWUgfTtcbiAgICAgICAgfSBlbHNlIGlmIChiYWxhbmNlQ2FsY3VsYXRlZCA8IE1JTl9BTExPV0VEX0JBTEFOQ0UpIHtcbiAgICAgICAgICByZXNwb25zZSA9IHsgZm9ybV92YWxpZGF0aW9uX3VuaXRzX2JhbGFuY2VfbWluaW11bTogdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBtaW5EYXRlVGltZShjb250cm9sTmFtZTogc3RyaW5nLCBtaW5EYXRlVGltZVZhbHVlOiBEYXRlKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbEdyb3VwOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBsZXQgcmVzcG9uc2UgPSBudWxsOyAvLyBSZXR1cm4gbnVsbCBpZiB2YWxpZGF0aW9uIHBhc3Nlc1xuXG4gICAgICBpZiAoY29udHJvbEdyb3VwLnBhcmVudCkge1xuICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSBjb250cm9sR3JvdXAucGFyZW50IGFzIEZvcm1Hcm91cDtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWUpO1xuICAgICAgICBjb25zdCBjb250cm9sVmFsdWU6IERhdGUgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgICAgIGlmIChjb250cm9sVmFsdWUpIHtcbiAgICAgICAgICBjb25zdCBjb250cm9sRGF0ZSA9IG5ldyBEYXRlKGNvbnRyb2xWYWx1ZSkuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgICAgICAgY29uc3QgbWluRGF0ZSA9IG5ldyBEYXRlKG1pbkRhdGVUaW1lVmFsdWUpLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuXG4gICAgICAgICAgaWYgKGNvbnRyb2xEYXRlIDwgbWluRGF0ZSkge1xuICAgICAgICAgICAgcmVzcG9uc2UgPSB7IGZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX2Zyb21fdGltZTogdHJ1ZSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVG9EYXRlKGZyb21EYXRlRmllbGQ6IHN0cmluZywgdG9EYXRlRmllbGQ6IHN0cmluZywgZnJvbVRpbWVGaWVsZDogc3RyaW5nID0gbnVsbCxcbiAgICB0b1RpbWVGaWVsZDogc3RyaW5nID0gbnVsbCwgZXJyb3JOYW1lOiBzdHJpbmcgPSAnZnJvbVRvRGF0ZScpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChmb3JtR3JvdXA6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBmcm9tRGF0ZTogRGF0ZSA9IGZvcm1Hcm91cC5nZXQoZnJvbURhdGVGaWVsZCk/LnZhbHVlO1xuICAgICAgY29uc3QgdG9EYXRlOiBEYXRlID0gZm9ybUdyb3VwLmdldCh0b0RhdGVGaWVsZCk/LnZhbHVlO1xuICAgICAgY29uc3QgZnJvbVRpbWU6IFRpYmFUaW1lID0gZm9ybUdyb3VwLmdldChmcm9tVGltZUZpZWxkKT8udmFsdWU7XG4gICAgICBjb25zdCB0b1RpbWU6IFRpYmFUaW1lID0gZm9ybUdyb3VwLmdldCh0b1RpbWVGaWVsZCk/LnZhbHVlO1xuICAgICAgaWYgKGZyb21UaW1lKSB7XG4gICAgICAgIGZyb21EYXRlLnNldEhvdXJzKGZyb21UaW1lLmhvdXJzKTtcbiAgICAgICAgZnJvbURhdGUuc2V0TWludXRlcyhmcm9tVGltZS5taW51dGVzKTtcbiAgICAgIH1cbiAgICAgIGlmICh0b1RpbWUpIHtcbiAgICAgICAgdG9EYXRlLnNldEhvdXJzKHRvVGltZS5ob3Vycyk7XG4gICAgICAgIHRvRGF0ZS5zZXRNaW51dGVzKHRvVGltZS5taW51dGVzKTtcbiAgICAgIH1cbiAgICAgIGlmICgoZnJvbURhdGUgIT09IG51bGwgJiYgdG9EYXRlICE9PSBudWxsKSAmJiBmcm9tRGF0ZSA+IHRvRGF0ZSkge1xuICAgICAgICByZXR1cm4geyBbZXJyb3JOYW1lXTogdHJ1ZSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVG9UaW1lUmFuZ2UoZnJvbVRpbWVGaWVsZDogc3RyaW5nLCB0b1RpbWVGaWVsZDogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgbGV0IHJlc3BvbnNlID0gbnVsbDsgLy8gUmV0dXJuIG51bGwgaWYgdmFsaWRhdGlvbiBwYXNzZXNcbiAgICAgIGlmIChjb250cm9sLnBhcmVudCkge1xuICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSBjb250cm9sLnBhcmVudCBhcyBGb3JtR3JvdXA7XG4gICAgICAgIGNvbnN0IHRvQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQodG9UaW1lRmllbGQpO1xuICAgICAgICBjb25zdCBmcm9tQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZnJvbVRpbWVGaWVsZCk7XG4gICAgICAgIGlmICh0aGlzLmlzVmFsdWVHcmVhdGVyVGhhbk9yRXF1YWxUbyhmcm9tQ29udHJvbCwgdG9Db250cm9sKSAmJiB0aGlzLmlzVmFsdWVMZW5ndGhWYWxpZChmcm9tQ29udHJvbCwgdG9Db250cm9sKSAmJlxuICAgICAgICAgICF0b0NvbnRyb2wuaGFzRXJyb3IoJ2Zvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3RpbWVfcmFuZ2UnKSkge1xuICAgICAgICAgIHJlc3BvbnNlID0geyBmb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lX3JhbmdlOiB0cnVlIH07XG4gICAgICAgIH0gZWxzZSBpZiAodG9Db250cm9sLmhhc0Vycm9yKCdmb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lX3JhbmdlJykpIHtcbiAgICAgICAgICAvLyByZXNldCB0aGUgZXJyb3Igb2Yg4oCYdG/igJkgY29udHJvbCB3aGVuIOKAmGZyb23igJkgY29udHJvbCBpcyB2YWxpZCBhbmQgdG8gY29udHJvbCBjb250YWlucyBmb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lX3JhbmdlXG4gICAgICAgICAgdG9Db250cm9sLnNldEVycm9ycyh7fSk7XG4gICAgICAgICAgdG9Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVG9UaW1lKGZyb21UaW1lRmllbGQ6IHN0cmluZywgdG9UaW1lRmllbGQ6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGZvcm1Hcm91cDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IGZyb21UaW1lOiBUaWJhVGltZSA9IGZvcm1Hcm91cC5nZXQoZnJvbVRpbWVGaWVsZCkudmFsdWU7XG4gICAgICBjb25zdCB0b1RpbWU6IFRpYmFUaW1lID0gZm9ybUdyb3VwLmdldCh0b1RpbWVGaWVsZCkudmFsdWU7XG4gICAgICBpZiAoIXRoaXMuaXNUaW1lTnVsbChmcm9tVGltZSkgJiYgIXRoaXMuaXNUaW1lTnVsbCh0b1RpbWUpICYmIChcbiAgICAgICAgKGZyb21UaW1lLmhvdXJzID4gdG9UaW1lLmhvdXJzKSB8fFxuICAgICAgICAoZnJvbVRpbWUuaG91cnMgPT0gdG9UaW1lLmhvdXJzICYmIGZyb21UaW1lLm1pbnV0ZXMgPiB0b1RpbWUubWludXRlcylcbiAgICAgICkpIHtcbiAgICAgICAgcmV0dXJuIHsgZm9ybV92YWxpZGF0aW9uX2ludmFsaWRfdGltZV9yYW5nZTogdHJ1ZSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzVGltZU51bGwgPSAodGltZTogVGliYVRpbWUpID0+IHRpbWUgPT09IG51bGwgfHxcbiAgICAodGltZS5ob3VycyA9PT0gbnVsbCAmJiB0aW1lLm1pbnV0ZXMgPT09IG51bGwgJiYgdGltZS5zZWNvbmRzID09PSBudWxsKTtcblxuICBzdGF0aWMgbm9XaGl0ZXNwYWNlVmFsaWRhdG9yID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgPT5cbiAgICAhaXNOdWxsT3JFbXB0eShjb250cm9sLnZhbHVlKSAmJiBpc051bGxPckVtcHR5KGNvbnRyb2w/LnZhbHVlPy50cmltKCkpID8geyByZXF1aXJlZDogdHJ1ZSB9IDogbnVsbDtcblxuICBzdGF0aWMgbm9XaGl0ZXNwYWNlV2l0aGluU2VudGVuY2VWYWxpZGF0b3IgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyA9PlxuICAgICEoY29udHJvbD8udmFsdWU/LnNwbGl0KFwiIFwiKS5sZW5ndGggPT09IDEpID8geyBub1doaXRlc3BhY2VXaXRoaW5TZW50ZW5jZTogdHJ1ZSB9IDogbnVsbDtcblxuICBzdGF0aWMgdGVybXNQb2xpY3lDaGVja2JveCgpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoIWNvbnRyb2wgfHwgIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHsgaW52YWxpZFRlcm1zOiB0cnVlIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIHZhbGlkYXRlRGVmYXVsdEFjY2Vzc1Byb2ZpbGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgaWYgKCFpc051bGxPckVtcHR5KGNvbnRyb2wudmFsdWUpICYmICFjb250cm9sLnZhbHVlPy5kZWZhdWx0QWNjZXNzUHJvZmlsZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbm9EZWZhdWx0QWNjZXNzUHJvZmlsZToge1xuICAgICAgICAgIGNvbXBhbnlOYW1lOiBjb250cm9sLnZhbHVlLm5hbWUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyB6UmFuZ2UodHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSwgZnJvbVpGaWVsZDogc3RyaW5nLCB0b1pGaWVsZDogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoZm9ybUdyb3VwOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBmcm9tWkNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZyb21aRmllbGQpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gICAgICBjb25zdCB0b1pDb250cm9sID0gZm9ybUdyb3VwLmdldCh0b1pGaWVsZCkgYXMgVW50eXBlZEZvcm1BcnJheTtcblxuICAgICAgaWYgKGZyb21aQ29udHJvbC52YWx1ZT8uaWQgPiB0b1pDb250cm9sLnZhbHVlPy5pZCkge1xuICAgICAgICByZXR1cm4geyB6UmFuZ2U6IHRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uaW52YWxpZF9maWVsZHMpIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgcmVxdWlyZWRDcmVkZW50aWFscyh0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLCBjYXJQbGF0ZUZpZWxkOiBzdHJpbmcgPSAnY2FyUGxhdGUnLCBtb2JpbGVGaWVsZDogc3RyaW5nID0gJ21vYmlsZScsIGJhZGdlRmllbGQ6IHN0cmluZyA9ICdiYWRnZScsXG4gICAgZW1haWxGaWVsZDogc3RyaW5nID0gJ2VtYWlsJywgc2VuZEVtYWlsRmllbGQ6IHN0cmluZyA9ICdzZW5kRW1haWwnKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoZm9ybUdyb3VwOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgbnVsbCA9PiB7XG4gICAgICBsZXQgY2FyUGxhdGVzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgbGV0IGJhZGdlc0ludmFsaWQgPSBmYWxzZTtcbiAgICAgIGxldCBpbnRlcnBvbGF0ZWRDcmVkZW50aWFsczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgLy8gQ2FyZHNcbiAgICAgIGNvbnN0IGJhZGdlc0Zvcm1BcnJheSA9IGZvcm1Hcm91cC5nZXQoYmFkZ2VGaWVsZCkgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgICAgIGlmIChiYWRnZXNGb3JtQXJyYXkpIHtcbiAgICAgICAgaW50ZXJwb2xhdGVkQ3JlZGVudGlhbHMucHVzaCh0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLmNhcmQpKTtcbiAgICAgICAgYmFkZ2VzSW52YWxpZCA9IHRoaXMuaXNGb3JtQ29udHJvbExpc3RJbnZhbGlkKGJhZGdlc0Zvcm1BcnJheS52YWx1ZSk7XG4gICAgICB9XG4gICAgICBjb25zdCBpc0NhcmRzSW52YWxpZCA9IGJhZGdlc0ludmFsaWQgfHwgIWJhZGdlc0Zvcm1BcnJheTtcblxuICAgICAgLy9DYXIgcGxhdGVzXG4gICAgICBjb25zdCBjYXJQbGF0ZXNGb3JtQXJyYXkgPSBmb3JtR3JvdXAuZ2V0KGNhclBsYXRlRmllbGQpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gICAgICBpZiAoY2FyUGxhdGVzRm9ybUFycmF5KSB7XG4gICAgICAgIGludGVycG9sYXRlZENyZWRlbnRpYWxzLnB1c2godHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5jYXJfcGxhdGUpKTtcbiAgICAgICAgY2FyUGxhdGVzSW52YWxpZCA9IHRoaXMuaXNGb3JtQ29udHJvbExpc3RJbnZhbGlkKGNhclBsYXRlc0Zvcm1BcnJheS52YWx1ZSk7XG4gICAgICB9XG4gICAgICBjb25zdCBpc0NhclBsYXRlc0ludmFsaWQgPSBjYXJQbGF0ZXNJbnZhbGlkIHx8ICFjYXJQbGF0ZXNGb3JtQXJyYXk7XG5cbiAgICAgIC8vIE1vYmlsZVxuICAgICAgY29uc3QgbW9iaWxlRm9ybUNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KG1vYmlsZUZpZWxkKTtcbiAgICAgIGlmIChtb2JpbGVGb3JtQ29udHJvbCkge1xuICAgICAgICBpbnRlcnBvbGF0ZWRDcmVkZW50aWFscy5wdXNoKHRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24ubW9iaWxlKSk7XG4gICAgICB9XG4gICAgICBjb25zdCBpc01vYmlsZUludmFsaWQgPSAhbW9iaWxlRm9ybUNvbnRyb2w/LnZhbHVlO1xuXG4gICAgICAvLyBFbWFpbFxuICAgICAgY29uc3QgZW1haWxGb3JtQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZW1haWxGaWVsZCk7XG4gICAgICBjb25zdCBzZW5kRW1haWxGb3JtQ29udHJvbCA9IGZvcm1Hcm91cC5nZXQoc2VuZEVtYWlsRmllbGQpO1xuICAgICAgaWYgKGVtYWlsRm9ybUNvbnRyb2wgJiYgc2VuZEVtYWlsRm9ybUNvbnRyb2w/LnZhbHVlKSB7XG4gICAgICAgIGludGVycG9sYXRlZENyZWRlbnRpYWxzLnB1c2godHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5lbWFpbCkpO1xuICAgICAgfVxuICAgICAgY29uc3QgaXNFbWFpbEludmFsaWQgPSAhKHNlbmRFbWFpbEZvcm1Db250cm9sPy52YWx1ZSAmJiBlbWFpbEZvcm1Db250cm9sPy52YWx1ZSlcblxuICAgICAgY29uc3QgaXNSZXF1aXJlZENyZWRlbnRpYWxzID0gaXNDYXJQbGF0ZXNJbnZhbGlkICYmIGlzQ2FyZHNJbnZhbGlkICYmIGlzTW9iaWxlSW52YWxpZCAmJiBpc0VtYWlsSW52YWxpZDtcblxuICAgICAgaWYgKGlzUmVxdWlyZWRDcmVkZW50aWFscykge1xuICAgICAgICBjb25zdCBsYXN0Q3JlZGVudGlhbCA9IGludGVycG9sYXRlZENyZWRlbnRpYWxzLnBvcCgpO1xuICAgICAgICBsZXQgaW50ZXJwb2xhdGVQYXJhbXMgPSBgJHtpbnRlcnBvbGF0ZWRDcmVkZW50aWFscy5qb2luKCcsICcpfSAke3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24ub3IpfSAke2xhc3RDcmVkZW50aWFsfWA7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVxdWlyZWRDcmVkZW50aWFsczogdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5yZXF1aXJlZF9jcmVkZW50aWFsc19tZXNzYWdlLCB7IGNyZWRlbnRpYWxzOiBpbnRlcnBvbGF0ZVBhcmFtcyB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNGb3JtQ29udHJvbExpc3RJbnZhbGlkKGxpc3Q6IFVudHlwZWRGb3JtQ29udHJvbFtdKSB7XG4gICAgbGV0IGlzSW52YWxpZCA9IGZhbHNlO1xuICAgIGZvciAoY29uc3QgY29udHJvbCBvZiBsaXN0KSB7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzSW52YWxpZDtcbiAgfVxuXG4gIHN0YXRpYyByZXF1aXJlZERheXMoc3BlY2lhbERheXNGaWVsZDogc3RyaW5nLCB3ZWVrRGF5c0ZpZWxkOiBzdHJpbmcsIGVycm9yTmFtZTogc3RyaW5nID0gJ3JlcXVpcmVkRGF5cycpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChmb3JtR3JvdXA6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBzcGVjaWFsRGF5czogbnVtYmVyID0gZm9ybUdyb3VwLmdldChzcGVjaWFsRGF5c0ZpZWxkKS52YWx1ZTtcbiAgICAgIGNvbnN0IHdlZWtEYXlzOiBudW1iZXIgPSBmb3JtR3JvdXAuZ2V0KHdlZWtEYXlzRmllbGQpLnZhbHVlO1xuICAgICAgaWYgKHNwZWNpYWxEYXlzID4gMCB8fCB3ZWVrRGF5cyA+IDApIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IFtlcnJvck5hbWVdOiB0cnVlIH07XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBpc1JvbGVOYW1lRXhpc3RzKHJvbGVTZXJ2aWNlUHJveHk6IENsb3VkLlJvbGVTZXJ2aWNlUHJveHksIHJvbGVJZDogbnVtYmVyKTogQXN5bmNWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnM+ID0+IHtcbiAgICAgIHJldHVybiBvZihjb250cm9sLnZhbHVlKS5waXBlKFxuICAgICAgICBkZWxheSg1MDApLFxuICAgICAgICBkZWJvdW5jZVRpbWUoSU5QVVRfU0VBUkNIX0RFQk9VTkNFX1RJTUUpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gcm9sZVNlcnZpY2VQcm94eS5pc0V4aXN0cyhjb250cm9sLnZhbHVlLCByb2xlSWQgPz8gdW5kZWZpbmVkKS5waXBlKFxuICAgICAgICAgIG1hcChyZXMgPT4gcmVzLmRhdGEgPT09IHRydWUgfHwgIXJlcy5pc1N1Y2Nlc3MgPyB7IHJvbGVOYW1lQWxyZWFkeUV4aXN0czogdHJ1ZSB9IDogbnVsbCkpKSk7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyB0aWJhVGltZVZhbGlkYXRvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsOiBUaWJhVGltZSA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAodmFsICYmICh2YWwuaG91cnMgPT09IG51bGwgfHwgdmFsLm1pbnV0ZXMgPT09IG51bGwpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbnZhbGlkVGltZTogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyB0aW1lVmFsaWRhdG9yKGZyb21Ib3VyOiBudW1iZXIsIGZyb21NaW51dGVzOiBudW1iZXIsIHRvSG91cjogbnVtYmVyLCB0b01pbnV0ZXM6IG51bWJlcik6IGFueSB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoISFjb250cm9sLnZhbHVlKSB7XG4gICAgICAgIGlmIChjb250cm9sLnZhbHVlLmxlbmd0aCAhPT0gNCkgeyAvLyBBc3N1bWluZyB5b3VyIHRpbWUgZm9ybWF0IGlzICdISE1NJ1xuICAgICAgICAgIHJldHVybiB7IGZvcm1fdmFsaWRhdGlvbl9pbnZhbGlkX3RpbWVfZm9ybWF0OiB0cnVlIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgaG91cnM6IG51bWJlciA9IHBhcnNlSW50KGNvbnRyb2wudmFsdWUuc2xpY2UoMCwgMikpO1xuICAgICAgICAgIGNvbnN0IG1pbnV0ZXM6IG51bWJlciA9IHBhcnNlSW50KGNvbnRyb2wudmFsdWUuc2xpY2UoMikpO1xuICAgICAgICAgIGNvbnN0IGlzVmFsaWRUaW1lID1cbiAgICAgICAgICAgIChob3VycyA+IGZyb21Ib3VyIHx8IChob3VycyA9PT0gZnJvbUhvdXIgJiYgbWludXRlcyA+PSBmcm9tTWludXRlcykpICYmXG4gICAgICAgICAgICAoaG91cnMgPCB0b0hvdXIgfHwgKGhvdXJzID09PSB0b0hvdXIgJiYgbWludXRlcyA8PSB0b01pbnV0ZXMpKTtcbiAgICAgICAgICBpZiAoIWlzVmFsaWRUaW1lKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBmb3JtX3ZhbGlkYXRpb25faW52YWxpZF90aW1lOiB7XG4gICAgICAgICAgICAgICAgZnJvbTogYCR7ZnJvbUhvdXIudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfToke2Zyb21NaW51dGVzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1gLFxuICAgICAgICAgICAgICAgIHRvOiBgJHt0b0hvdXIudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfToke3RvTWludXRlcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YCxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBpc1ZhbHVlR3JlYXRlclRoYW5PckVxdWFsVG8oZnJvbUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgdG9Db250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBib29sZWFuIHtcbiAgICBjb25zdCBmcm9tVGltZUluTnVtYmVyOiBudW1iZXIgPSBmcm9tQ29udHJvbC52YWx1ZTtcbiAgICBjb25zdCB0b1RpbWVJbk51bWJlcjogbnVtYmVyID0gdG9Db250cm9sLnZhbHVlO1xuICAgIHJldHVybiBmcm9tVGltZUluTnVtYmVyICE9PSBudWxsICYmIHRvVGltZUluTnVtYmVyICE9PSBudWxsICYmICtmcm9tVGltZUluTnVtYmVyID4gK3RvVGltZUluTnVtYmVyO1xuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIGlzVmFsdWVMZW5ndGhWYWxpZChmcm9tQ29udHJvbDogQWJzdHJhY3RDb250cm9sLCB0b0NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZyb21UaW1lSW5OdW1iZXI6IG51bWJlciA9IGZyb21Db250cm9sLnZhbHVlO1xuICAgIGNvbnN0IHRvVGltZUluTnVtYmVyOiBudW1iZXIgPSB0b0NvbnRyb2wudmFsdWU7XG4gICAgcmV0dXJuIGZyb21UaW1lSW5OdW1iZXIudG9TdHJpbmcoKS5sZW5ndGggPT09IFZBTElEX1RJTUVfTUFYX0xFTkdUSCAmJlxuICAgICAgdG9UaW1lSW5OdW1iZXIudG9TdHJpbmcoKS5sZW5ndGggPT09IFZBTElEX1RJTUVfTUFYX0xFTkdUSDtcbiAgfVxufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Subscription } from 'rxjs';
|
|
2
|
-
import { isCharacterLengthValid } from '.';
|
|
3
2
|
import { LOCAL_ENGLISH_LANGUAGE } from '../constants';
|
|
4
3
|
import { Edge } from '../service-proxy';
|
|
4
|
+
import { isCharacterLengthValid } from './text.util';
|
|
5
5
|
// Gets an object of type<T>
|
|
6
6
|
// Gets an array of keys to ignore
|
|
7
7
|
// Returns a new object without the omitted keys
|
|
@@ -182,4 +182,4 @@ export const AppModuleToMainPermissionTypeMap = {
|
|
|
182
182
|
[Edge.AppModule.Management]: Edge.PermissionType.TenantSettingsMain,
|
|
183
183
|
[Edge.AppModule.ECommerceBackoffice]: Edge.PermissionType.ECommerceBackofficeMain,
|
|
184
184
|
};
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL3V0aWxzL2hlbHBlci51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFhLHNCQUFzQixFQUFFLE1BQU0sR0FBRyxDQUFDO0FBQ3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0RCxPQUFPLEVBQVMsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MsNEJBQTRCO0FBQzVCLGtDQUFrQztBQUNsQyxnREFBZ0Q7QUFDaEQsTUFBTSxVQUFVLFFBQVEsQ0FBSSxHQUFNLEVBQUUsSUFBYztJQUNoRCxJQUFJLEdBQUcsR0FBTSxFQUFPLENBQUM7SUFDckIsS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUU7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQzNCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckI7S0FDRjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxHQUFHO0lBQ3ZDLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFO1FBQzVCLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM5QjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQUMsSUFBWSxFQUFFLE9BQXlCO0lBQzdFLGlEQUFp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QyxrQkFBa0I7SUFDbkUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUI7Q0FDbEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTnVtYmVyTWFwLCBpc0NoYXJhY3Rlckxlbmd0aFZhbGlkIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBMT0NBTF9FTkdMSVNIX0xBTkdVQUdFIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE9wZXJhdG9yIH0gZnJvbSAnLi4vcGlwZXMvZmlsdGVyLnBpcGUnO1xuaW1wb3J0IHsgQ2xvdWQsIEVkZ2UgfSBmcm9tICcuLi9zZXJ2aWNlLXByb3h5JztcblxuLy8gR2V0cyBhbiBvYmplY3Qgb2YgdHlwZTxUPlxuLy8gR2V0cyBhbiBhcnJheSBvZiBrZXlzIHRvIGlnbm9yZVxuLy8gUmV0dXJucyBhIG5ldyBvYmplY3Qgd2l0aG91dCB0aGUgb21pdHRlZCBrZXlzXG5leHBvcnQgZnVuY3Rpb24gb21pdEtleXM8VD4ob2JqOiBULCBrZXlzOiBzdHJpbmdbXSkge1xuICB2YXIgZHVwOiBUID0ge30gYXMgVDtcbiAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgIGlmIChrZXlzLmluZGV4T2Yoa2V5KSA9PSAtMSkge1xuICAgICAgZHVwW2tleV0gPSBvYmpba2V5XTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGR1cDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG51bWJlcldpdGhMZWFkaW5nWmVybyhudW0pIHtcbiAgaWYgKG51bSAhPT0gbnVsbCAmJiBudW0gPD0gOSkge1xuICAgIG51bSA9IChgMCR7bnVtfWApLnNsaWNlKC0xMCk7XG4gIH1cbiAgcmV0dXJuIG51bTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGF5Q2FuY2VsbGF0aW9uKHRpbWU6IG51bWJlciwgc3ViamVjdDogU3ViamVjdDxib29sZWFuPikge1xuICAvLyBjcmVhdGUgYSBzdWJzY3JpcHRpb24gdG8gdXNlIHdpdGggeW91ciBwcm9taXNlXG4gIGNvbnN0IHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgY29uc3QgaWQgPSBzZXRUaW1lb3V0KHJlc29sdmUsIHRpbWUpO1xuICAgIC8vIGFkZCB0ZWFyZG93biBsb2dpYyB0byB0aGUgc3Vic2NyaXB0aW9uXG4gICAgc3Vic2NyaXB0aW9uLmFkZCgoKSA9PiB7XG4gICAgICBjbGVhclRpbWVvdXQoaWQpO1xuICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3Qgc3ViU3ViamVjdCA9IHN1YmplY3Quc3Vic2NyaWJlKGNhbmNlbFN1YnNjcmlwdGlvbiA9PiB7XG4gICAgaWYgKGNhbmNlbFN1YnNjcmlwdGlvbikge1xuICAgICAgLy8gY2FsbCB1bnN1YnNjcmliZSB0byBjYW5jZWxcbiAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gdXNlIHRoZSBwcm9taXNlIGludm9rZSB0aGUgZGVhbHlcbiAgYXdhaXQgcHJvbWlzZTtcblxuICBzdWJTdWJqZWN0LnVuc3Vic2NyaWJlKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlQWxsKHN0ciwgZmluZCwgcmVwbGFjZSkge1xuICByZXR1cm4gc3RyLnJlcGxhY2UobmV3IFJlZ0V4cChmaW5kLCAnZycpLCByZXBsYWNlKTtcbn1cblxuXG5leHBvcnQgZW51bSBSb3dPcGVyYXRpb24ge1xuICBJbnNlcnQsXG4gIFVwZGF0ZSxcbiAgRGVsZXRlLFxuICBOb25lLFxuICBJbnNlcnRUb1BhcmVudCxcbiAgVXBkYXRpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcmtFbnRpdHlBc1VuY2hhbmdlZDxUPihlbnRpdHk6IFQpOiBUIHtcbiAgcmV0dXJuIG9taXRLZXlzPFQ+KGVudGl0eSwgWydleHBhbmRlZCcsICdleHBhbmRpbmcnLCAnY2hhbmdlZCcsICdyb3dPcGVyYXRpb24nLCAnZmluZFJvd0luZGV4J10pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFya0VudGl0aWVzQXNDaGFuZ2VkPFQgPSBhbnk+KGVudGl0aWVzOiBhbnlbXSwgcm93T3BlcmF0aW9uOiBSb3dPcGVyYXRpb24gPSBSb3dPcGVyYXRpb24uTm9uZSxcbiAgZmluZFJvd0luZGV4PzogKGVudGl0eTogVCwgZW50aXRpZXM6IFRbXSkgPT4gbnVtYmVyKSB7XG5cbiAgaWYgKChyb3dPcGVyYXRpb24gPT09IFJvd09wZXJhdGlvbi5VcGRhdGUgfHwgcm93T3BlcmF0aW9uID09PSBSb3dPcGVyYXRpb24uRGVsZXRlKSAmJiAhZmluZFJvd0luZGV4KSB7XG4gICAgZmluZFJvd0luZGV4ID0gKGVudGl0eTogYW55LCBlbnRpdGllczogYW55W10pID0+IGVudGl0aWVzLmZpbmRJbmRleChlID0+IGUuaWQgPT09IGVudGl0eS5pZCk7XG4gIH1cblxuICBmbGFnRW50aXR5KGVudGl0aWVzLCB0cnVlLCByb3dPcGVyYXRpb24sIGZpbmRSb3dJbmRleCk7XG5cbiAgLy9zb2x1dGlvbiBmb3IgdW5tYXJrZWQgcHJldmlvdWVzIHJvd3NcbiAgc2V0VGltZW91dCgoKSA9PiBmbGFnRW50aXR5KGVudGl0aWVzLCBmYWxzZSwgUm93T3BlcmF0aW9uLk5vbmUpLCAxMDAwKTtcbn1cblxuZXhwb3J0IHR5cGUgUm93VGFibGVQYXlsb2FkPFQgPSBhbnk+ID0geyByb3dPcGVyYXRpb246IFJvd09wZXJhdGlvbiwgY2hhbmdlZDogYm9vbGVhbiwgZmluZFJvd0luZGV4PzogKGVudGl0eTogVCwgZW50aXRpZXM6IFRbXSkgPT4gbnVtYmVyIH07XG5cbmZ1bmN0aW9uIGZsYWdFbnRpdHk8VCBleHRlbmRzIFJvd1RhYmxlUGF5bG9hZD4oZW50aXRpZXM6IFRbXSwgZmxhZzogYm9vbGVhbiwgcm93T3BlcmF0aW9uOiBSb3dPcGVyYXRpb24sIGZpbmRSb3dJbmRleD86IChlbnRpdHk6IFQsIGVudGl0aWVzOiBUW10pID0+IG51bWJlcikge1xuICBlbnRpdGllcy5mb3JFYWNoKGVudGl0eSA9PiB7XG4gICAgZW50aXR5LmNoYW5nZWQgPSBmbGFnO1xuICAgIGVudGl0eS5yb3dPcGVyYXRpb24gPSByb3dPcGVyYXRpb24gPz8gZW50aXR5LnJvd09wZXJhdGlvbjtcbiAgICBlbnRpdHkuZmluZFJvd0luZGV4ID0gZmluZFJvd0luZGV4IHx8ICgoZW50aXR5LCBlbnRpdGllcykgPT4gbnVsbCk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFkZHJlc3MoY2l0eTogc3RyaW5nLCBzdHJlZXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGxldCBhZGRyZXNzID0gbnVsbDtcbiAgaWYgKGNpdHkgJiYgc3RyZWV0KSB7XG4gICAgYWRkcmVzcyA9IGAke3N0cmVldH0sICR7Y2l0eX1gO1xuICB9IGVsc2UgaWYgKGNpdHkpIHtcbiAgICBhZGRyZXNzID0gY2l0eTtcbiAgfSBlbHNlIGlmIChzdHJlZXQpIHtcbiAgICBhZGRyZXNzID0gc3RyZWV0O1xuICB9XG5cbiAgcmV0dXJuIGFkZHJlc3M7XG59XG5cbmV4cG9ydCB0eXBlIEZpbHRlclZhbHVlUmVzb2x2ZXI8VD4gPSAob2JqOiBULCBwcm9wZXJ0eU5hbWU6IHN0cmluZykgPT4gYW55O1xuZXhwb3J0IHR5cGUgU29tZVZhbHVlUmVzb2x2ZXI8VD4gPSAob2JqOiBULCBzdWJHcm91cFByb3BlcnR5TmFtZTogc3RyaW5nLCBwcm9wZXJ0eU5hbWU6IHN0cmluZywgc2VhcmNoVmFsdWU6IHN0cmluZywgb3BlcmF0b3I6IE9wZXJhdG9yLCByZWR1Y2U6IGFueSkgPT4gYW55O1xuXG5leHBvcnQgY29uc3QgYmFzZVJlZHVjZTogRmlsdGVyVmFsdWVSZXNvbHZlcjxhbnk+ID0gKG9iajogYW55LCBwcm9wZXJ0eU5hbWU6IHN0cmluZykgPT4ge1xuICByZXR1cm4gb2JqW3Byb3BlcnR5TmFtZV07XG59XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJLZXlWYWx1ZUJhc2VSZWR1Y2U6IEZpbHRlclZhbHVlUmVzb2x2ZXI8eyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZzsgfT4gPSAoXG4gIG9iaixcbiAgXyxcbikgPT4gb2JqLnZhbHVlO1xuXG5leHBvcnQgZnVuY3Rpb24qIGZsYXR0ZW5CeUtleShhcnJheSwgbmVzdGVkS2V5OiBzdHJpbmcsIGRlcHRoID0gMSkge1xuICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXJyYXkpIHtcbiAgICBpZiAoaXRlbVtuZXN0ZWRLZXldICYmIEFycmF5LmlzQXJyYXkoaXRlbVtuZXN0ZWRLZXldKSAmJiBkZXB0aCA+IDApIHtcbiAgICAgIHlpZWxkKiBmbGF0dGVuQnlLZXkoaXRlbVtuZXN0ZWRLZXldLCBuZXN0ZWRLZXksIGRlcHRoIC0gMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHlpZWxkIGl0ZW07XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0lPU0RldmljZSgpIHtcbiAgdmFyIGlzSU9TID0gL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG4gIHZhciBpc0FwcGxlRGV2aWNlID0gbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygnTWFjaW50b3NoJyk7XG4gIHZhciBpc1RvdWNoU2NyZWVuID0gbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzID49IDE7IC8vIHRydWUgZm9yIGlPUyAxMyAoYW5kIGhvcGVmdWxseSBiZXlvbmQpXG4gIHJldHVybiBpc0lPUyB8fCAoaXNBcHBsZURldmljZSAmJiAoaXNUb3VjaFNjcmVlbiB8fCBpT1MxdG8xMnF1aXJrKCkpKTtcbn1cblxuZnVuY3Rpb24gaU9TMXRvMTJxdWlyaygpIHtcbiAgdmFyIGF1ZGlvID0gbmV3IEF1ZGlvKCk7IC8vIHRlbXBvcmFyeSBBdWRpbyBvYmplY3RcbiAgYXVkaW8udm9sdW1lID0gMC41OyAvLyBoYXMgbm8gZWZmZWN0IG9uIGlPUyA8PSAxMlxuICByZXR1cm4gYXVkaW8udm9sdW1lID09PSAxO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2xlZXAobWlsbGlzZWNvbmRzOiBudW1iZXIpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1pbGxpc2Vjb25kcykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3RFbXB0eShvYmo6IHt9KSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLmxlbmd0aCA9PT0gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVHJ1ZUluQmluYXJ5KGRlY2ltYWxWYWx1ZTogbnVtYmVyLCBiaXRQb3NpdGlvbjogbnVtYmVyKTogYm9vbGVhbiB7XG4gIHJldHVybiAoZGVjaW1hbFZhbHVlICYgYml0UG9zaXRpb24pICE9PSAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEJpbmFyeVRvRGVjaW1hbChiaW5hcnlTdHJpbmc6IHN0cmluZyk6IG51bWJlciB7XG4gIC8vIFVzZSBwYXJzZUludCBmdW5jdGlvbiB0byBjb252ZXJ0IGJpbmFyeSBzdHJpbmcgdG8gZGVjaW1hbCBudW1iZXJcbiAgcmV0dXJuIHBhcnNlSW50KGJpbmFyeVN0cmluZywgMik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RGVjaW1hbFRvQmluYXJ5KGRlY2ltYWxOdW1iZXI6IG51bWJlcik6IHN0cmluZyB7XG4gIC8vIFVzZSB0b1N0cmluZygyKSBmdW5jdGlvbiB0byBjb252ZXJ0IGRlY2ltYWwgbnVtYmVyIHRvIGJpbmFyeSBzdHJpbmdcbiAgcmV0dXJuIGlzTmFOKGRlY2ltYWxOdW1iZXIpID8gJycgOiBkZWNpbWFsTnVtYmVyLnRvU3RyaW5nKDIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzdGluY3RPYmplY3RCeVByb3BlcnR5PFQsIEsgZXh0ZW5kcyBrZXlvZiBUPihhcnI6IFRbXSwgcHJvcDogSyk6IFRbXSB7XG4gIGNvbnN0IG1hcCA9IG5ldyBNYXA8VFtLXSwgVD4oKTtcbiAgYXJyLmZvckVhY2goaXRlbSA9PiB7XG4gICAgY29uc3Qga2V5ID0gaXRlbVtwcm9wXTtcbiAgICBpZiAoIW1hcC5oYXMoa2V5KSkge1xuICAgICAgbWFwLnNldChrZXksIGl0ZW0pO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBBcnJheS5mcm9tKG1hcC52YWx1ZXMoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXN0aW5jdE9iamVjdEJ5UHJvcGVydGllczxULCBLIGV4dGVuZHMga2V5b2YgVD4oYXJyOiBUW10sIC4uLnByb3BzOiBLW10pOiBUW10ge1xuICBjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgVD4oKTtcbiAgYXJyLmZvckVhY2goaXRlbSA9PiB7XG4gICAgY29uc3Qga2V5ID0gcHJvcHMubWFwKHByb3AgPT4gaXRlbVtwcm9wXSkuam9pbignXycpO1xuICAgIGlmICghbWFwLmhhcyhrZXkpKSB7XG4gICAgICBtYXAuc2V0KGtleSwgaXRlbSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIEFycmF5LmZyb20obWFwLnZhbHVlcygpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRMYW5nKHVzZXJTZXR0aW5nczogTWFwPEVkZ2UuU2V0dGluZ3NDYXRlZ29yeSwgYW55Pikge1xuICBjb25zdCB2YWx1ZTogQ2xvdWQuTG9jYWxpemF0aW9uRHRvID0gdXNlclNldHRpbmdzPy5nZXQoRWRnZS5TZXR0aW5nc0NhdGVnb3J5LkxvY2FsaXphdGlvbik7XG4gIHJldHVybiB2YWx1ZT8ua2V5TmFtZSA/PyBMT0NBTF9FTkdMSVNIX0xBTkdVQUdFO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTZWFyY2hGaWVsZENoYW5nZWQocHJldjogYW55LCBjdXJyOiBhbnkpOiBib29sZWFuIHtcbiAgY29uc3QgaXNGaWVsZFNlbGVjdG9yQ2hhbmdlZCA9IHByZXYuc2VhcmNoRmllbGRTZWxlY3RvciAhPT0gY3Vyci5zZWFyY2hGaWVsZFNlbGVjdG9yICYmIGN1cnIuc2VhcmNoVmFsdWU7XG4gIGNvbnN0IGlzU2VhcmNoVmFsdWVDaGFuZ2VkID0gcHJldi5zZWFyY2hWYWx1ZSAhPT0gY3Vyci5zZWFyY2hWYWx1ZTtcblxuICByZXR1cm4gKGlzRmllbGRTZWxlY3RvckNoYW5nZWQgfHwgaXNTZWFyY2hWYWx1ZUNoYW5nZWQpICYmIGlzQ2hhcmFjdGVyTGVuZ3RoVmFsaWQoY3Vyci5zZWFyY2hWYWx1ZSk7XG59XG5cbmV4cG9ydCBjb25zdCBNYWluTW9kdWxlVG9TdWJNb2R1bGVzUGVybWlzc2lvblR5cGVNYXA6IE51bWJlck1hcDxFZGdlLlBlcm1pc3Npb25UeXBlW10+ID0ge1xuICBbRWRnZS5QZXJtaXNzaW9uVHlwZS5DY01haW5dOiBbXSxcbiAgW0VkZ2UuUGVybWlzc2lvblR5cGUuQWNjb3VudE1hbmFnZW1lbnRNYWluXTogW0VkZ2UuUGVybWlzc2lvblR5cGUuQWNjb3VudE1hbmFnZW1lbnRBY2NvdW50VmlldywgRWRnZS5QZXJtaXNzaW9uVHlwZS5BY2NvdW50TWFuYWdlbWVudEFjY291bnRDcmVhdGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuQWNjb3VudE1hbmFnZW1lbnRBY2NvdW50VXBkYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLkFjY291bnRNYW5hZ2VtZW50QWNjb3VudERlbGV0ZV0sXG4gIFtFZGdlLlBlcm1pc3Npb25UeXBlLk1vbnRobGllc01haW5dOiBbRWRnZS5QZXJtaXNzaW9uVHlwZS5Nb250aGxpZXNWaWV3LCBFZGdlLlBlcm1pc3Npb25UeXBlLk1vbnRobGllc0NyZWF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5Nb250aGxpZXNVcGRhdGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuTW9udGhsaWVzRGVsZXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLk1vbnRobHlTZXJpZXNDcmVhdGVdLFxuICBbRWRnZS5QZXJtaXNzaW9uVHlwZS5HdWVzdE1haW5dOiBbRWRnZS5QZXJtaXNzaW9uVHlwZS5HdWVzdFZpZXcsIEVkZ2UuUGVybWlzc2lvblR5cGUuR3Vlc3RDcmVhdGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuR3Vlc3RVcGRhdGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuR3Vlc3REZWxldGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuR3Vlc3RHcm91cFZpZXcsIEVkZ2UuUGVybWlzc2lvblR5cGUuR3Vlc3RHcm91cENyZWF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5HdWVzdEhvdGVsR3Vlc3RWaWV3LCBFZGdlLlBlcm1pc3Npb25UeXBlLkhvdGVsR3Vlc3RJT0NyZWF0ZV0sXG4gIFtFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25NYWluXTogW1xuICAgIEVkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkVWYWxpZGF0aW9uVmlldywgRWRnZS5QZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uRVZhbGlkYXRpb25DcmVhdGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkVWYWxpZGF0aW9uVXBkYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25FVmFsaWRhdGlvbkRlbGV0ZSxcbiAgICBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25TdGlja2VyVmlldywgRWRnZS5QZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU3RpY2tlckNyZWF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU3RpY2tlclVwZGF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uU3RpY2tlckRlbGV0ZSxcbiAgICBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25Db3Vwb25WaWV3LCBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25Db3Vwb25DcmVhdGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkNvdXBvblVwZGF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uQ291cG9uRGVsZXRlXSxcbiAgW0VkZ2UuUGVybWlzc2lvblR5cGUuUmVwb3J0c01haW5dOiBbXSxcbiAgW0VkZ2UuUGVybWlzc2lvblR5cGUuTG90Q29uZmlndXJhdGlvbk1haW5dOiBbRWRnZS5QZXJtaXNzaW9uVHlwZS5Mb3RDb25maWd1cmF0aW9uUmF0ZXMsIEVkZ2UuUGVybWlzc2lvblR5cGUuTG90Q29uZmlndXJhdGlvblNjaGVkdWxlciwgRWRnZS5QZXJtaXNzaW9uVHlwZS5Mb3RDb25maWd1cmF0aW9uVmFsaWRhdGlvblByb2ZpbGVdLFxuICBbRWRnZS5QZXJtaXNzaW9uVHlwZS5UZW5hbnRTZXR0aW5nc01haW5dOiBbRWRnZS5QZXJtaXNzaW9uVHlwZS5NYW5hZ2VtZW50QWRtaW5dLFxuICBbRWRnZS5QZXJtaXNzaW9uVHlwZS5FQ29tbWVyY2VCYWNrb2ZmaWNlTWFpbl06IFtFZGdlLlBlcm1pc3Npb25UeXBlLkVDb21tZXJjZUFkbWluLCBFZGdlLlBlcm1pc3Npb25UeXBlLkVDb21tZXJjZVJlZ3VsYXJdXG59O1xuXG5leHBvcnQgY29uc3QgQXBwTW9kdWxlVG9NYWluUGVybWlzc2lvblR5cGVNYXA6IE51bWJlck1hcDxFZGdlLlBlcm1pc3Npb25UeXBlPiA9IHtcbiAgW0VkZ2UuQXBwTW9kdWxlLkNjXTogRWRnZS5QZXJtaXNzaW9uVHlwZS5DY01haW4sXG4gIFtFZGdlLkFwcE1vZHVsZS5BY2NvdW50c106IEVkZ2UuUGVybWlzc2lvblR5cGUuQWNjb3VudE1hbmFnZW1lbnRNYWluLFxuICBbRWRnZS5BcHBNb2R1bGUuTW9udGhsaWVzXTogRWRnZS5QZXJtaXNzaW9uVHlwZS5Nb250aGxpZXNNYWluLFxuICBbRWRnZS5BcHBNb2R1bGUuR3Vlc3RzXTogRWRnZS5QZXJtaXNzaW9uVHlwZS5HdWVzdE1haW4sXG4gIFtFZGdlLkFwcE1vZHVsZS5WYWxpZGF0aW9uXTogRWRnZS5QZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uTWFpbixcbiAgW0VkZ2UuQXBwTW9kdWxlLlJlcG9ydHNdOiBFZGdlLlBlcm1pc3Npb25UeXBlLlJlcG9ydHNNYWluLFxuICBbRWRnZS5BcHBNb2R1bGUuTG90Q29uZmlndXJhdGlvbl06IEVkZ2UuUGVybWlzc2lvblR5cGUuTG90Q29uZmlndXJhdGlvbk1haW4sXG4gIFtFZGdlLkFwcE1vZHVsZS5NYW5hZ2VtZW50XTogRWRnZS5QZXJtaXNzaW9uVHlwZS5UZW5hbnRTZXR0aW5nc01haW4sXG4gIFtFZGdlLkFwcE1vZHVsZS5FQ29tbWVyY2VCYWNrb2ZmaWNlXTogRWRnZS5QZXJtaXNzaW9uVHlwZS5FQ29tbWVyY2VCYWNrb2ZmaWNlTWFpbixcbn07XG4iXX0=
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL3V0aWxzL2hlbHBlci51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXRELE9BQU8sRUFBUyxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsNEJBQTRCO0FBQzVCLGtDQUFrQztBQUNsQyxnREFBZ0Q7QUFDaEQsTUFBTSxVQUFVLFFBQVEsQ0FBSSxHQUFNLEVBQUUsSUFBYztJQUNoRCxJQUFJLEdBQUcsR0FBTSxFQUFPLENBQUM7SUFDckIsS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUU7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQzNCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckI7S0FDRjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxHQUFHO0lBQ3ZDLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFO1FBQzVCLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM5QjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQUMsSUFBWSxFQUFFLE9BQXlCO0lBQzdFLGlEQUFpRDtJQUNqRCxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXhDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3BDLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckMseUNBQXlDO1FBQ3pDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ3BCLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsRUFBRTtRQUN4RCxJQUFJLGtCQUFrQixFQUFFO1lBQ3RCLDZCQUE2QjtZQUM3QixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILG1DQUFtQztJQUNuQyxNQUFNLE9BQU8sQ0FBQztJQUVkLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUMzQixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU87SUFDM0MsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBR0QsTUFBTSxDQUFOLElBQVksWUFPWDtBQVBELFdBQVksWUFBWTtJQUN0QixtREFBTSxDQUFBO0lBQ04sbURBQU0sQ0FBQTtJQUNOLG1EQUFNLENBQUE7SUFDTiwrQ0FBSSxDQUFBO0lBQ0osbUVBQWMsQ0FBQTtJQUNkLHVEQUFRLENBQUE7QUFDVixDQUFDLEVBUFcsWUFBWSxLQUFaLFlBQVksUUFPdkI7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUksTUFBUztJQUNoRCxPQUFPLFFBQVEsQ0FBSSxNQUFNLEVBQUUsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUNuRyxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFVLFFBQWUsRUFBRSxlQUE2QixZQUFZLENBQUMsSUFBSSxFQUM1RyxZQUFtRDtJQUVuRCxJQUFJLENBQUMsWUFBWSxLQUFLLFlBQVksQ0FBQyxNQUFNLElBQUksWUFBWSxLQUFLLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtRQUNuRyxZQUFZLEdBQUcsQ0FBQyxNQUFXLEVBQUUsUUFBZSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDOUY7SUFFRCxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFFdkQsc0NBQXNDO0lBQ3RDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekUsQ0FBQztBQUlELFNBQVMsVUFBVSxDQUE0QixRQUFhLEVBQUUsSUFBYSxFQUFFLFlBQTBCLEVBQUUsWUFBbUQ7SUFDMUosUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN4QixNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUN0QixNQUFNLENBQUMsWUFBWSxHQUFHLFlBQVksSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQzFELE1BQU0sQ0FBQyxZQUFZLEdBQUcsWUFBWSxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFBQSxDQUFDO0FBRUYsTUFBTSxVQUFVLFVBQVUsQ0FBQyxJQUFZLEVBQUUsTUFBYztJQUNyRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDbkIsSUFBSSxJQUFJLElBQUksTUFBTSxFQUFFO1FBQ2xCLE9BQU8sR0FBRyxHQUFHLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztLQUNoQztTQUFNLElBQUksSUFBSSxFQUFFO1FBQ2YsT0FBTyxHQUFHLElBQUksQ0FBQztLQUNoQjtTQUFNLElBQUksTUFBTSxFQUFFO1FBQ2pCLE9BQU8sR0FBRyxNQUFNLENBQUM7S0FDbEI7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBS0QsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUE2QixDQUFDLEdBQVEsRUFBRSxZQUFvQixFQUFFLEVBQUU7SUFDckYsT0FBTyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDM0IsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQXlELENBQzVGLEdBQUcsRUFDSCxDQUFDLEVBQ0QsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7QUFFZixNQUFNLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsU0FBaUIsRUFBRSxLQUFLLEdBQUcsQ0FBQztJQUMvRCxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtRQUN4QixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDbEUsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzVEO2FBQU07WUFDTCxNQUFNLElBQUksQ0FBQztTQUNaO0tBQ0Y7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVc7SUFDekIsSUFBSSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6RCxJQUFJLGFBQWEsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5RCxJQUFJLGFBQWEsR0FBRyxTQUFTLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLHlDQUF5QztJQUM1RixPQUFPLEtBQUssSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLGFBQWEsSUFBSSxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUVELFNBQVMsYUFBYTtJQUNwQixJQUFJLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMseUJBQXlCO0lBQ2xELEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsNkJBQTZCO0lBQ2pELE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQUVELE1BQU0sVUFBVSxLQUFLLENBQUMsWUFBb0I7SUFDeEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEdBQU87SUFDbkMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsWUFBb0IsRUFBRSxXQUFtQjtJQUN0RSxPQUFPLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFlBQW9CO0lBQ3pELG1FQUFtRTtJQUNuRSxPQUFPLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxhQUFxQjtJQUMxRCxzRUFBc0U7SUFDdEUsT0FBTyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUF1QixHQUFRLEVBQUUsSUFBTztJQUM5RSxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBVyxDQUFDO0lBQy9CLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDakIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2pCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBdUIsR0FBUSxFQUFFLEdBQUcsS0FBVTtJQUN0RixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBYSxDQUFDO0lBQ2pDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDakIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNwQjtJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLFlBQTZDO0lBQzFFLE1BQU0sS0FBSyxHQUEwQixZQUFZLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzRixPQUFPLEtBQUssRUFBRSxPQUFPLElBQUksc0JBQXNCLENBQUM7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxJQUFTLEVBQUUsSUFBUztJQUN2RCxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxJQUFJLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUN6RyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUVuRSxPQUFPLENBQUMsc0JBQXNCLElBQUksb0JBQW9CLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDdEcsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHVDQUF1QyxHQUFxQztJQUN2RixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRTtJQUNoQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsNEJBQTRCLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyw4QkFBOEIsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLDhCQUE4QixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsOEJBQThCLENBQUM7SUFDM1AsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQztJQUNoTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQztJQUM5VCxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEVBQUU7UUFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLDJCQUEyQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQywyQkFBMkI7UUFDaE0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUI7UUFDaEwsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0I7S0FBQztJQUMvSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRTtJQUNyQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGlDQUFpQyxDQUFDO0lBQzdMLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUM7SUFDL0UsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDO0NBQzFILENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBbUM7SUFDOUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTTtJQUMvQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUI7SUFDcEUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYTtJQUM3RCxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTO0lBQ3RELENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWM7SUFDL0QsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVztJQUN6RCxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQjtJQUMzRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0I7SUFDbkUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUI7Q0FDbEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTE9DQUxfRU5HTElTSF9MQU5HVUFHRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBPcGVyYXRvciB9IGZyb20gJy4uL3BpcGVzL2ZpbHRlci5waXBlJztcbmltcG9ydCB7IENsb3VkLCBFZGdlIH0gZnJvbSAnLi4vc2VydmljZS1wcm94eSc7XG5pbXBvcnQgeyBOdW1iZXJNYXAgfSBmcm9tICcuL2xhbmcudXRpbCc7XG5pbXBvcnQgeyBpc0NoYXJhY3Rlckxlbmd0aFZhbGlkIH0gZnJvbSAnLi90ZXh0LnV0aWwnO1xuXG4vLyBHZXRzIGFuIG9iamVjdCBvZiB0eXBlPFQ+XG4vLyBHZXRzIGFuIGFycmF5IG9mIGtleXMgdG8gaWdub3JlXG4vLyBSZXR1cm5zIGEgbmV3IG9iamVjdCB3aXRob3V0IHRoZSBvbWl0dGVkIGtleXNcbmV4cG9ydCBmdW5jdGlvbiBvbWl0S2V5czxUPihvYmo6IFQsIGtleXM6IHN0cmluZ1tdKSB7XG4gIHZhciBkdXA6IFQgPSB7fSBhcyBUO1xuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgaWYgKGtleXMuaW5kZXhPZihrZXkpID09IC0xKSB7XG4gICAgICBkdXBba2V5XSA9IG9ialtrZXldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZHVwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbnVtYmVyV2l0aExlYWRpbmdaZXJvKG51bSkge1xuICBpZiAobnVtICE9PSBudWxsICYmIG51bSA8PSA5KSB7XG4gICAgbnVtID0gKGAwJHtudW19YCkuc2xpY2UoLTEwKTtcbiAgfVxuICByZXR1cm4gbnVtO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsYXlDYW5jZWxsYXRpb24odGltZTogbnVtYmVyLCBzdWJqZWN0OiBTdWJqZWN0PGJvb2xlYW4+KSB7XG4gIC8vIGNyZWF0ZSBhIHN1YnNjcmlwdGlvbiB0byB1c2Ugd2l0aCB5b3VyIHByb21pc2VcbiAgY29uc3Qgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICBjb25zdCBpZCA9IHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZSk7XG4gICAgLy8gYWRkIHRlYXJkb3duIGxvZ2ljIHRvIHRoZSBzdWJzY3JpcHRpb25cbiAgICBzdWJzY3JpcHRpb24uYWRkKCgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dChpZCk7XG4gICAgICByZXNvbHZlKG51bGwpO1xuICAgIH0pO1xuICB9KTtcblxuICBjb25zdCBzdWJTdWJqZWN0ID0gc3ViamVjdC5zdWJzY3JpYmUoY2FuY2VsU3Vic2NyaXB0aW9uID0+IHtcbiAgICBpZiAoY2FuY2VsU3Vic2NyaXB0aW9uKSB7XG4gICAgICAvLyBjYWxsIHVuc3Vic2NyaWJlIHRvIGNhbmNlbFxuICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9KTtcblxuICAvLyB1c2UgdGhlIHByb21pc2UgaW52b2tlIHRoZSBkZWFseVxuICBhd2FpdCBwcm9taXNlO1xuXG4gIHN1YlN1YmplY3QudW5zdWJzY3JpYmUoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VBbGwoc3RyLCBmaW5kLCByZXBsYWNlKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZShuZXcgUmVnRXhwKGZpbmQsICdnJyksIHJlcGxhY2UpO1xufVxuXG5cbmV4cG9ydCBlbnVtIFJvd09wZXJhdGlvbiB7XG4gIEluc2VydCxcbiAgVXBkYXRlLFxuICBEZWxldGUsXG4gIE5vbmUsXG4gIEluc2VydFRvUGFyZW50LFxuICBVcGRhdGluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFya0VudGl0eUFzVW5jaGFuZ2VkPFQ+KGVudGl0eTogVCk6IFQge1xuICByZXR1cm4gb21pdEtleXM8VD4oZW50aXR5LCBbJ2V4cGFuZGVkJywgJ2V4cGFuZGluZycsICdjaGFuZ2VkJywgJ3Jvd09wZXJhdGlvbicsICdmaW5kUm93SW5kZXgnXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXJrRW50aXRpZXNBc0NoYW5nZWQ8VCA9IGFueT4oZW50aXRpZXM6IGFueVtdLCByb3dPcGVyYXRpb246IFJvd09wZXJhdGlvbiA9IFJvd09wZXJhdGlvbi5Ob25lLFxuICBmaW5kUm93SW5kZXg/OiAoZW50aXR5OiBULCBlbnRpdGllczogVFtdKSA9PiBudW1iZXIpIHtcblxuICBpZiAoKHJvd09wZXJhdGlvbiA9PT0gUm93T3BlcmF0aW9uLlVwZGF0ZSB8fCByb3dPcGVyYXRpb24gPT09IFJvd09wZXJhdGlvbi5EZWxldGUpICYmICFmaW5kUm93SW5kZXgpIHtcbiAgICBmaW5kUm93SW5kZXggPSAoZW50aXR5OiBhbnksIGVudGl0aWVzOiBhbnlbXSkgPT4gZW50aXRpZXMuZmluZEluZGV4KGUgPT4gZS5pZCA9PT0gZW50aXR5LmlkKTtcbiAgfVxuXG4gIGZsYWdFbnRpdHkoZW50aXRpZXMsIHRydWUsIHJvd09wZXJhdGlvbiwgZmluZFJvd0luZGV4KTtcblxuICAvL3NvbHV0aW9uIGZvciB1bm1hcmtlZCBwcmV2aW91ZXMgcm93c1xuICBzZXRUaW1lb3V0KCgpID0+IGZsYWdFbnRpdHkoZW50aXRpZXMsIGZhbHNlLCBSb3dPcGVyYXRpb24uTm9uZSksIDEwMDApO1xufVxuXG5leHBvcnQgdHlwZSBSb3dUYWJsZVBheWxvYWQ8VCA9IGFueT4gPSB7IHJvd09wZXJhdGlvbjogUm93T3BlcmF0aW9uLCBjaGFuZ2VkOiBib29sZWFuLCBmaW5kUm93SW5kZXg/OiAoZW50aXR5OiBULCBlbnRpdGllczogVFtdKSA9PiBudW1iZXIgfTtcblxuZnVuY3Rpb24gZmxhZ0VudGl0eTxUIGV4dGVuZHMgUm93VGFibGVQYXlsb2FkPihlbnRpdGllczogVFtdLCBmbGFnOiBib29sZWFuLCByb3dPcGVyYXRpb246IFJvd09wZXJhdGlvbiwgZmluZFJvd0luZGV4PzogKGVudGl0eTogVCwgZW50aXRpZXM6IFRbXSkgPT4gbnVtYmVyKSB7XG4gIGVudGl0aWVzLmZvckVhY2goZW50aXR5ID0+IHtcbiAgICBlbnRpdHkuY2hhbmdlZCA9IGZsYWc7XG4gICAgZW50aXR5LnJvd09wZXJhdGlvbiA9IHJvd09wZXJhdGlvbiA/PyBlbnRpdHkucm93T3BlcmF0aW9uO1xuICAgIGVudGl0eS5maW5kUm93SW5kZXggPSBmaW5kUm93SW5kZXggfHwgKChlbnRpdHksIGVudGl0aWVzKSA9PiBudWxsKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzcyhjaXR5OiBzdHJpbmcsIHN0cmVldDogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IGFkZHJlc3MgPSBudWxsO1xuICBpZiAoY2l0eSAmJiBzdHJlZXQpIHtcbiAgICBhZGRyZXNzID0gYCR7c3RyZWV0fSwgJHtjaXR5fWA7XG4gIH0gZWxzZSBpZiAoY2l0eSkge1xuICAgIGFkZHJlc3MgPSBjaXR5O1xuICB9IGVsc2UgaWYgKHN0cmVldCkge1xuICAgIGFkZHJlc3MgPSBzdHJlZXQ7XG4gIH1cblxuICByZXR1cm4gYWRkcmVzcztcbn1cblxuZXhwb3J0IHR5cGUgRmlsdGVyVmFsdWVSZXNvbHZlcjxUPiA9IChvYmo6IFQsIHByb3BlcnR5TmFtZTogc3RyaW5nKSA9PiBhbnk7XG5leHBvcnQgdHlwZSBTb21lVmFsdWVSZXNvbHZlcjxUPiA9IChvYmo6IFQsIHN1Ykdyb3VwUHJvcGVydHlOYW1lOiBzdHJpbmcsIHByb3BlcnR5TmFtZTogc3RyaW5nLCBzZWFyY2hWYWx1ZTogc3RyaW5nLCBvcGVyYXRvcjogT3BlcmF0b3IsIHJlZHVjZTogYW55KSA9PiBhbnk7XG5cbmV4cG9ydCBjb25zdCBiYXNlUmVkdWNlOiBGaWx0ZXJWYWx1ZVJlc29sdmVyPGFueT4gPSAob2JqOiBhbnksIHByb3BlcnR5TmFtZTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBvYmpbcHJvcGVydHlOYW1lXTtcbn1cblxuZXhwb3J0IGNvbnN0IGZpbHRlcktleVZhbHVlQmFzZVJlZHVjZTogRmlsdGVyVmFsdWVSZXNvbHZlcjx7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nOyB9PiA9IChcbiAgb2JqLFxuICBfLFxuKSA9PiBvYmoudmFsdWU7XG5cbmV4cG9ydCBmdW5jdGlvbiogZmxhdHRlbkJ5S2V5KGFycmF5LCBuZXN0ZWRLZXk6IHN0cmluZywgZGVwdGggPSAxKSB7XG4gIGZvciAoY29uc3QgaXRlbSBvZiBhcnJheSkge1xuICAgIGlmIChpdGVtW25lc3RlZEtleV0gJiYgQXJyYXkuaXNBcnJheShpdGVtW25lc3RlZEtleV0pICYmIGRlcHRoID4gMCkge1xuICAgICAgeWllbGQqIGZsYXR0ZW5CeUtleShpdGVtW25lc3RlZEtleV0sIG5lc3RlZEtleSwgZGVwdGggLSAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgeWllbGQgaXRlbTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSU9TRGV2aWNlKCkge1xuICB2YXIgaXNJT1MgPSAvaVBhZHxpUGhvbmV8aVBvZC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcbiAgdmFyIGlzQXBwbGVEZXZpY2UgPSBuYXZpZ2F0b3IudXNlckFnZW50LmluY2x1ZGVzKCdNYWNpbnRvc2gnKTtcbiAgdmFyIGlzVG91Y2hTY3JlZW4gPSBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMgPj0gMTsgLy8gdHJ1ZSBmb3IgaU9TIDEzIChhbmQgaG9wZWZ1bGx5IGJleW9uZClcbiAgcmV0dXJuIGlzSU9TIHx8IChpc0FwcGxlRGV2aWNlICYmIChpc1RvdWNoU2NyZWVuIHx8IGlPUzF0bzEycXVpcmsoKSkpO1xufVxuXG5mdW5jdGlvbiBpT1MxdG8xMnF1aXJrKCkge1xuICB2YXIgYXVkaW8gPSBuZXcgQXVkaW8oKTsgLy8gdGVtcG9yYXJ5IEF1ZGlvIG9iamVjdFxuICBhdWRpby52b2x1bWUgPSAwLjU7IC8vIGhhcyBubyBlZmZlY3Qgb24gaU9TIDw9IDEyXG4gIHJldHVybiBhdWRpby52b2x1bWUgPT09IDE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzbGVlcChtaWxsaXNlY29uZHM6IG51bWJlcikge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbWlsbGlzZWNvbmRzKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdEVtcHR5KG9iajoge30pIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID09PSAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUcnVlSW5CaW5hcnkoZGVjaW1hbFZhbHVlOiBudW1iZXIsIGJpdFBvc2l0aW9uOiBudW1iZXIpOiBib29sZWFuIHtcbiAgcmV0dXJuIChkZWNpbWFsVmFsdWUgJiBiaXRQb3NpdGlvbikgIT09IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0QmluYXJ5VG9EZWNpbWFsKGJpbmFyeVN0cmluZzogc3RyaW5nKTogbnVtYmVyIHtcbiAgLy8gVXNlIHBhcnNlSW50IGZ1bmN0aW9uIHRvIGNvbnZlcnQgYmluYXJ5IHN0cmluZyB0byBkZWNpbWFsIG51bWJlclxuICByZXR1cm4gcGFyc2VJbnQoYmluYXJ5U3RyaW5nLCAyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnREZWNpbWFsVG9CaW5hcnkoZGVjaW1hbE51bWJlcjogbnVtYmVyKTogc3RyaW5nIHtcbiAgLy8gVXNlIHRvU3RyaW5nKDIpIGZ1bmN0aW9uIHRvIGNvbnZlcnQgZGVjaW1hbCBudW1iZXIgdG8gYmluYXJ5IHN0cmluZ1xuICByZXR1cm4gaXNOYU4oZGVjaW1hbE51bWJlcikgPyAnJyA6IGRlY2ltYWxOdW1iZXIudG9TdHJpbmcoMik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXN0aW5jdE9iamVjdEJ5UHJvcGVydHk8VCwgSyBleHRlbmRzIGtleW9mIFQ+KGFycjogVFtdLCBwcm9wOiBLKTogVFtdIHtcbiAgY29uc3QgbWFwID0gbmV3IE1hcDxUW0tdLCBUPigpO1xuICBhcnIuZm9yRWFjaChpdGVtID0+IHtcbiAgICBjb25zdCBrZXkgPSBpdGVtW3Byb3BdO1xuICAgIGlmICghbWFwLmhhcyhrZXkpKSB7XG4gICAgICBtYXAuc2V0KGtleSwgaXRlbSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIEFycmF5LmZyb20obWFwLnZhbHVlcygpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3RpbmN0T2JqZWN0QnlQcm9wZXJ0aWVzPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPihhcnI6IFRbXSwgLi4ucHJvcHM6IEtbXSk6IFRbXSB7XG4gIGNvbnN0IG1hcCA9IG5ldyBNYXA8c3RyaW5nLCBUPigpO1xuICBhcnIuZm9yRWFjaChpdGVtID0+IHtcbiAgICBjb25zdCBrZXkgPSBwcm9wcy5tYXAocHJvcCA9PiBpdGVtW3Byb3BdKS5qb2luKCdfJyk7XG4gICAgaWYgKCFtYXAuaGFzKGtleSkpIHtcbiAgICAgIG1hcC5zZXQoa2V5LCBpdGVtKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gQXJyYXkuZnJvbShtYXAudmFsdWVzKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3VycmVudExhbmcodXNlclNldHRpbmdzOiBNYXA8RWRnZS5TZXR0aW5nc0NhdGVnb3J5LCBhbnk+KSB7XG4gIGNvbnN0IHZhbHVlOiBDbG91ZC5Mb2NhbGl6YXRpb25EdG8gPSB1c2VyU2V0dGluZ3M/LmdldChFZGdlLlNldHRpbmdzQ2F0ZWdvcnkuTG9jYWxpemF0aW9uKTtcbiAgcmV0dXJuIHZhbHVlPy5rZXlOYW1lID8/IExPQ0FMX0VOR0xJU0hfTEFOR1VBR0U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NlYXJjaEZpZWxkQ2hhbmdlZChwcmV2OiBhbnksIGN1cnI6IGFueSk6IGJvb2xlYW4ge1xuICBjb25zdCBpc0ZpZWxkU2VsZWN0b3JDaGFuZ2VkID0gcHJldi5zZWFyY2hGaWVsZFNlbGVjdG9yICE9PSBjdXJyLnNlYXJjaEZpZWxkU2VsZWN0b3IgJiYgY3Vyci5zZWFyY2hWYWx1ZTtcbiAgY29uc3QgaXNTZWFyY2hWYWx1ZUNoYW5nZWQgPSBwcmV2LnNlYXJjaFZhbHVlICE9PSBjdXJyLnNlYXJjaFZhbHVlO1xuXG4gIHJldHVybiAoaXNGaWVsZFNlbGVjdG9yQ2hhbmdlZCB8fCBpc1NlYXJjaFZhbHVlQ2hhbmdlZCkgJiYgaXNDaGFyYWN0ZXJMZW5ndGhWYWxpZChjdXJyLnNlYXJjaFZhbHVlKTtcbn1cblxuZXhwb3J0IGNvbnN0IE1haW5Nb2R1bGVUb1N1Yk1vZHVsZXNQZXJtaXNzaW9uVHlwZU1hcDogTnVtYmVyTWFwPEVkZ2UuUGVybWlzc2lvblR5cGVbXT4gPSB7XG4gIFtFZGdlLlBlcm1pc3Npb25UeXBlLkNjTWFpbl06IFtdLFxuICBbRWRnZS5QZXJtaXNzaW9uVHlwZS5BY2NvdW50TWFuYWdlbWVudE1haW5dOiBbRWRnZS5QZXJtaXNzaW9uVHlwZS5BY2NvdW50TWFuYWdlbWVudEFjY291bnRWaWV3LCBFZGdlLlBlcm1pc3Npb25UeXBlLkFjY291bnRNYW5hZ2VtZW50QWNjb3VudENyZWF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5BY2NvdW50TWFuYWdlbWVudEFjY291bnRVcGRhdGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuQWNjb3VudE1hbmFnZW1lbnRBY2NvdW50RGVsZXRlXSxcbiAgW0VkZ2UuUGVybWlzc2lvblR5cGUuTW9udGhsaWVzTWFpbl06IFtFZGdlLlBlcm1pc3Npb25UeXBlLk1vbnRobGllc1ZpZXcsIEVkZ2UuUGVybWlzc2lvblR5cGUuTW9udGhsaWVzQ3JlYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLk1vbnRobGllc1VwZGF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5Nb250aGxpZXNEZWxldGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuTW9udGhseVNlcmllc0NyZWF0ZV0sXG4gIFtFZGdlLlBlcm1pc3Npb25UeXBlLkd1ZXN0TWFpbl06IFtFZGdlLlBlcm1pc3Npb25UeXBlLkd1ZXN0VmlldywgRWRnZS5QZXJtaXNzaW9uVHlwZS5HdWVzdENyZWF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5HdWVzdFVwZGF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5HdWVzdERlbGV0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5HdWVzdEdyb3VwVmlldywgRWRnZS5QZXJtaXNzaW9uVHlwZS5HdWVzdEdyb3VwQ3JlYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLkd1ZXN0SG90ZWxHdWVzdFZpZXcsIEVkZ2UuUGVybWlzc2lvblR5cGUuSG90ZWxHdWVzdElPQ3JlYXRlXSxcbiAgW0VkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbk1haW5dOiBbXG4gICAgRWRnZS5QZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uRVZhbGlkYXRpb25WaWV3LCBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25FVmFsaWRhdGlvbkNyZWF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uRVZhbGlkYXRpb25VcGRhdGUsIEVkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkVWYWxpZGF0aW9uRGVsZXRlLFxuICAgIEVkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvblN0aWNrZXJWaWV3LCBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25TdGlja2VyQ3JlYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25TdGlja2VyVXBkYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25TdGlja2VyRGVsZXRlLFxuICAgIEVkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkNvdXBvblZpZXcsIEVkZ2UuUGVybWlzc2lvblR5cGUuVmFsaWRhdGlvbkNvdXBvbkNyZWF0ZSwgRWRnZS5QZXJtaXNzaW9uVHlwZS5WYWxpZGF0aW9uQ291cG9uVXBkYXRlLCBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25Db3Vwb25EZWxldGVdLFxuICBbRWRnZS5QZXJtaXNzaW9uVHlwZS5SZXBvcnRzTWFpbl06IFtdLFxuICBbRWRnZS5QZXJtaXNzaW9uVHlwZS5Mb3RDb25maWd1cmF0aW9uTWFpbl06IFtFZGdlLlBlcm1pc3Npb25UeXBlLkxvdENvbmZpZ3VyYXRpb25SYXRlcywgRWRnZS5QZXJtaXNzaW9uVHlwZS5Mb3RDb25maWd1cmF0aW9uU2NoZWR1bGVyLCBFZGdlLlBlcm1pc3Npb25UeXBlLkxvdENvbmZpZ3VyYXRpb25WYWxpZGF0aW9uUHJvZmlsZV0sXG4gIFtFZGdlLlBlcm1pc3Npb25UeXBlLlRlbmFudFNldHRpbmdzTWFpbl06IFtFZGdlLlBlcm1pc3Npb25UeXBlLk1hbmFnZW1lbnRBZG1pbl0sXG4gIFtFZGdlLlBlcm1pc3Npb25UeXBlLkVDb21tZXJjZUJhY2tvZmZpY2VNYWluXTogW0VkZ2UuUGVybWlzc2lvblR5cGUuRUNvbW1lcmNlQWRtaW4sIEVkZ2UuUGVybWlzc2lvblR5cGUuRUNvbW1lcmNlUmVndWxhcl1cbn07XG5cbmV4cG9ydCBjb25zdCBBcHBNb2R1bGVUb01haW5QZXJtaXNzaW9uVHlwZU1hcDogTnVtYmVyTWFwPEVkZ2UuUGVybWlzc2lvblR5cGU+ID0ge1xuICBbRWRnZS5BcHBNb2R1bGUuQ2NdOiBFZGdlLlBlcm1pc3Npb25UeXBlLkNjTWFpbixcbiAgW0VkZ2UuQXBwTW9kdWxlLkFjY291bnRzXTogRWRnZS5QZXJtaXNzaW9uVHlwZS5BY2NvdW50TWFuYWdlbWVudE1haW4sXG4gIFtFZGdlLkFwcE1vZHVsZS5Nb250aGxpZXNdOiBFZGdlLlBlcm1pc3Npb25UeXBlLk1vbnRobGllc01haW4sXG4gIFtFZGdlLkFwcE1vZHVsZS5HdWVzdHNdOiBFZGdlLlBlcm1pc3Npb25UeXBlLkd1ZXN0TWFpbixcbiAgW0VkZ2UuQXBwTW9kdWxlLlZhbGlkYXRpb25dOiBFZGdlLlBlcm1pc3Npb25UeXBlLlZhbGlkYXRpb25NYWluLFxuICBbRWRnZS5BcHBNb2R1bGUuUmVwb3J0c106IEVkZ2UuUGVybWlzc2lvblR5cGUuUmVwb3J0c01haW4sXG4gIFtFZGdlLkFwcE1vZHVsZS5Mb3RDb25maWd1cmF0aW9uXTogRWRnZS5QZXJtaXNzaW9uVHlwZS5Mb3RDb25maWd1cmF0aW9uTWFpbixcbiAgW0VkZ2UuQXBwTW9kdWxlLk1hbmFnZW1lbnRdOiBFZGdlLlBlcm1pc3Npb25UeXBlLlRlbmFudFNldHRpbmdzTWFpbixcbiAgW0VkZ2UuQXBwTW9kdWxlLkVDb21tZXJjZUJhY2tvZmZpY2VdOiBFZGdlLlBlcm1pc3Npb25UeXBlLkVDb21tZXJjZUJhY2tvZmZpY2VNYWluLFxufTtcbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export class ActionStatusChanged {
|
|
2
|
+
constructor(type, action, status, error) {
|
|
3
|
+
this.type = type;
|
|
4
|
+
this.action = action;
|
|
5
|
+
this.status = status;
|
|
6
|
+
this.error = error;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0YXR1cy1jaGFuZ2VkLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvdXRpbHMvbmd4cy9hY3Rpb24tc3RhdHVzLWNoYW5nZWQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDa0IsSUFBWSxFQUNaLE1BQWtCLEVBQ2xCLE1BQW9CLEVBQ3BCLEtBQVU7UUFIVixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQ3BCLFVBQUssR0FBTCxLQUFLLENBQUs7SUFFNUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uU3RhdHVzIH0gZnJvbSBcIkBuZ3hzL3N0b3JlXCI7XG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzXCI7XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25TdGF0dXNDaGFuZ2VkIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWN0aW9uOiBBY3Rpb25UeXBlLFxuICAgIHB1YmxpYyByZWFkb25seSBzdGF0dXM6IEFjdGlvblN0YXR1cyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZXJyb3I6IGFueSxcbiAgKSB7XG4gIH1cbn0iXX0=
|
|
@@ -3,7 +3,7 @@ import { ofActionCompleted, ofActionDispatched, ofActionErrored } from '@ngxs/st
|
|
|
3
3
|
import { from, of } from 'rxjs';
|
|
4
4
|
import { combineLatestAll, first, map, mergeAll, mergeMap, scan, shareReplay } from 'rxjs/operators';
|
|
5
5
|
import { hasValue } from '../lang.util';
|
|
6
|
-
import { ActionStatusChanged } from './action-status.
|
|
6
|
+
import { ActionStatusChanged } from './action-status-changed.interface';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@ngxs/store";
|
|
9
9
|
export class ActionStatusService {
|
|
@@ -82,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
82
82
|
type: Injectable,
|
|
83
83
|
args: [{ providedIn: 'root' }]
|
|
84
84
|
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i1.Store }]; } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0YXR1cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy91dGlscy9uZ3hzL2FjdGlvbi1zdGF0dXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBNEMsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9ILE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JHLE9BQU8sRUFBYSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUczRCxNQUFNLE9BQU8sbUJBQW1CO2FBR2hCLG9CQUFlLEdBQVUsRUFBRSxDQUFDO2FBQzVCLGdCQUFXLEdBQW1DLElBQUksR0FBRyxDQUFDO1FBQ2xFLDZDQUEwQixJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQzVDLHlDQUF3QixJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQzFDLHVDQUF1QixJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQ3pDLDZDQUEwQixJQUFJLEdBQUcsRUFBVSxDQUFDO0tBQzdDLENBQUMsQ0FBQztJQUlILFlBQW9CLFFBQWlCLEVBQUUsS0FBWTtRQUEvQixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBRjdCLGdCQUFXLEdBQStCLEVBQUUsQ0FBQztRQUduRCxtQkFBbUIsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3BD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Q0FDVixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDaEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUM3RCxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBRW5CLG9DQUFvQztZQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7WUFFbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7U0FDbEM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOytHQWxHVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUROLE1BQU07OzRGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uU3RhdHVzLCBBY3Rpb25UeXBlLCBBY3Rpb25zLCBTdG9yZSwgb2ZBY3Rpb25Db21wbGV0ZWQsIG9mQWN0aW9uRGlzcGF0Y2hlZCwgb2ZBY3Rpb25FcnJvcmVkIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgZnJvbSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzL2ludGVybmFsL09ic2VydmFibGUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdEFsbCwgZmlyc3QsIG1hcCwgbWVyZ2VBbGwsIG1lcmdlTWFwLCBzY2FuLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN0cmluZ01hcCwgaGFzVmFsdWUgfSBmcm9tICcuLi9sYW5nLnV0aWwnO1xuaW1wb3J0IHsgQWN0aW9uU3RhdHVzQ2hhbmdlZCB9IGZyb20gJy4vYWN0aW9uLXN0YXR1cy51dGlsJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25TdGF0dXNTZXJ2aWNlIHtcblxuICBwdWJsaWMgc3RhdGljIGluc3RhbmNlOiBBY3Rpb25TdGF0dXNTZXJ2aWNlO1xuICBwdWJsaWMgc3RhdGljIHBlbmRpbmdUcmFja2luZzogYW55W10gPSBbXTtcbiAgcHVibGljIHN0YXRpYyBhY3Rpb25UeXBlczogTWFwPEFjdGlvblN0YXR1cywgU2V0PHN0cmluZz4+ID0gbmV3IE1hcChbXG4gICAgW0FjdGlvblN0YXR1cy5EaXNwYXRjaGVkLCBuZXcgU2V0PHN0cmluZz4oKV0sXG4gICAgW0FjdGlvblN0YXR1cy5DYW5jZWxlZCwgbmV3IFNldDxzdHJpbmc+KCldLFxuICAgIFtBY3Rpb25TdGF0dXMuRXJyb3JlZCwgbmV3IFNldDxzdHJpbmc+KCldLFxuICAgIFtBY3Rpb25TdGF0dXMuU3VjY2Vzc2Z1bCwgbmV3IFNldDxzdHJpbmc+KCldXG4gIF0pO1xuXG4gIHByaXZhdGUgc3RyZWFtQ2FjaGU6IFN0cmluZ01hcDxPYnNlcnZhYmxlPGFueT4+ID0ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucywgc3RvcmU6IFN0b3JlKSB7XG4gICAgQWN0aW9uU3RhdHVzU2VydmljZS5pbnN0YW5jZSA9IHRoaXM7XG4gICAgY29uc3QgYWN0aW9uVHlwZXMgPSBBY3Rpb25TdGF0dXNTZXJ2aWNlLmFjdGlvblR5cGVzO1xuICAgIGFjdGlvbnMkLnN1YnNjcmliZSgoeyBhY3Rpb24sIHN0YXR1cywgZXJyb3IgfSkgPT4ge1xuICAgICAgY29uc3QgdHlwZSA9IGFjdGlvbi50eXBlIHx8IGFjdGlvbi5jb25zdHJ1Y3Rvci50eXBlO1xuICAgICAgaWYgKGFjdGlvblR5cGVzLmdldChzdGF0dXMpLmhhcyh0eXBlKSkge1xuICAgICAgICBzdG9yZS5kaXNwYXRjaChuZXcgQWN0aW9uU3RhdHVzQ2hhbmdlZChgJHt0eXBlfS4ke3N0YXR1c31gLCBhY3Rpb24sIHN0YXR1cywgZXJyb3IpKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIHRyYWNrIHBlbmRpbmdUcmFja2luZyB3aGljaCB3ZXJlIGFkZGVkIGJlZm9yZSBBY3Rpb25TdGF0dXNTZXJ2aWNlIHdhcyBjcmVhdGVkXG4gICAgQWN0aW9uU3RhdHVzU2VydmljZS5wZW5kaW5nVHJhY2tpbmcuZm9yRWFjaCh0eXBlID0+IHtcbiAgICAgIHRoaXMuYWN0aW9uc0V4ZWN1dGluZyQodHlwZSk7XG4gICAgICB0aGlzLmFjdGlvbnNFcnJvcmVkJCh0eXBlKTtcbiAgICB9KTtcbiAgICBBY3Rpb25TdGF0dXNTZXJ2aWNlLnBlbmRpbmdUcmFja2luZyA9IFtdO1xuICB9XG5cbiAgYWN0aW9uc0V4ZWN1dGluZyQoYWN0aW9uczogQWN0aW9uVHlwZSB8IEFjdGlvblR5cGVbXSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGFjdGlvbnMgPSBBcnJheS5pc0FycmF5KGFjdGlvbnMpID8gYWN0aW9ucy5maWx0ZXIoaGFzVmFsdWUpIDogW2FjdGlvbnNdO1xuICAgIGlmIChhY3Rpb25zLmxlbmd0aCA8PSAxKSB7XG4gICAgICByZXR1cm4gdGhpcy5hY3Rpb25FeGVjdXRpbmckKGFjdGlvbnNbMF0pLnBpcGUobWFwKGNvdW50ID0+IGNvdW50ID4gMCkpO1xuICAgIH1cblxuICAgIHJldHVybiBmcm9tKGFjdGlvbnMpLnBpcGUoXG4gICAgICBtYXAoYWN0aW9uID0+IHRoaXMuYWN0aW9uRXhlY3V0aW5nJChhY3Rpb24pKSxcbiAgICAgIGNvbWJpbmVMYXRlc3RBbGwoKSxcbiAgICAgIG1hcChjb3VudHMgPT4gIWNvdW50cy5ldmVyeShjb3VudCA9PiBjb3VudCA9PT0gMCkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSkpO1xuICB9XG5cbiAgYWN0aW9uc0Vycm9yZWQkKGFjdGlvbnM6IEFjdGlvblR5cGUgfCBBY3Rpb25UeXBlW10pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBhY3Rpb25zID0gQXJyYXkuaXNBcnJheShhY3Rpb25zKSA/IGFjdGlvbnMuZmlsdGVyKGhhc1ZhbHVlKSA6IFthY3Rpb25zXTtcbiAgICBpZiAoYWN0aW9ucy5sZW5ndGggPD0gMSkge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aW9uRXJyb3JlZCQoYWN0aW9uc1swXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZyb20oYWN0aW9ucylcbiAgICAgIC5waXBlKFxuICAgICAgICBtZXJnZU1hcChhY3Rpb24gPT4gdGhpcy5hY3Rpb25FcnJvcmVkJChhY3Rpb24pKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjdGlvbkV4ZWN1dGluZyQoYWN0aW9uOiBBY3Rpb25UeXBlKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICBpZiAoIWFjdGlvbikge1xuICAgICAgcmV0dXJuIG9mKDApO1xuICAgIH1cbiAgICBjb25zdCB0eXBlID0gYCR7YWN0aW9uLnR5cGV9LkVYRUNVVElOR2A7XG4gICAgbGV0IHN0YXR1cyQgPSB0aGlzLnN0cmVhbUNhY2hlW3R5cGVdO1xuICAgIGlmICghc3RhdHVzJCkge1xuICAgICAgc3RhdHVzJCA9IG9mKFxuICAgICAgICBvZigwKSxcbiAgICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKG9mQWN0aW9uRGlzcGF0Y2hlZChhY3Rpb24pLCBtYXAoKCkgPT4gMSkpLFxuICAgICAgICB0aGlzLmFjdGlvbnMkLnBpcGUob2ZBY3Rpb25Db21wbGV0ZWQoYWN0aW9uKSwgbWFwKCgpID0+IC0xKSksXG4gICAgICApLnBpcGUoXG4gICAgICAgIG1lcmdlQWxsKCksXG4gICAgICAgIHNjYW4oKHN1bSwgY3VycikgPT4gTWF0aC5tYXgoMCwgc3VtICsgY3VyciksIDApLFxuICAgICAgICBzaGFyZVJlcGxheSgxKSk7XG5cbiAgICAgIC8vIHN1YnNjcmliZSBvbmNlIHRvIHN0YXJ0IGxpc3RlbmluZ1xuICAgICAgc3RhdHVzJC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgpO1xuXG4gICAgICB0aGlzLnN0cmVhbUNhY2hlW3R5cGVdID0gc3RhdHVzJDtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXR1cyQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWN0aW9uRXJyb3JlZCQoYWN0aW9uOiBBY3Rpb25UeXBlKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgaWYgKCFhY3Rpb24pIHtcbiAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgfVxuICAgIGNvbnN0IHR5cGUgPSBgJHthY3Rpb24udHlwZX0uRVJST1JFRGA7XG4gICAgbGV0IHN0YXR1cyQgPSB0aGlzLnN0cmVhbUNhY2hlW3R5cGVdO1xuICAgIGlmICghc3RhdHVzJCkge1xuICAgICAgc3RhdHVzJCA9IG9mKFxuICAgICAgICB0aGlzLmFjdGlvbnMkLnBpcGUob2ZBY3Rpb25EaXNwYXRjaGVkKGFjdGlvbiksIG1hcCgoKSA9PiBmYWxzZSkpLFxuICAgICAgICB0aGlzLmFjdGlvbnMkLnBpcGUob2ZBY3Rpb25FcnJvcmVkKGFjdGlvbiksIG1hcCgoKSA9PiB0cnVlKSksXG4gICAgICApLnBpcGUobWVyZ2VBbGwoKSk7XG5cbiAgICAgIC8vIHN1YnNjcmliZSBvbmNlIHRvIHN0YXJ0IGxpc3RlbmluZ1xuICAgICAgc3RhdHVzJC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgpO1xuXG4gICAgICB0aGlzLnN0cmVhbUNhY2hlW3R5cGVdID0gc3RhdHVzJDtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXR1cyQ7XG4gIH1cbn1cbiJdfQ==
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0YXR1cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy91dGlscy9uZ3hzL2FjdGlvbi1zdGF0dXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBNEMsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9ILE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JHLE9BQU8sRUFBYSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQUd4RSxNQUFNLE9BQU8sbUJBQW1CO2FBR2hCLG9CQUFlLEdBQVUsRUFBRSxDQUFDO2FBQzVCLGdCQUFXLEdBQW1DLElBQUksR0FBRyxDQUFDO1FBQ2xFLDZDQUEwQixJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQzVDLHlDQUF3QixJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQzFDLHVDQUF1QixJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQ3pDLDZDQUEwQixJQUFJLEdBQUcsRUFBVSxDQUFDO0tBQzdDLENBQUMsQ0FBQztJQUlILFlBQW9CLFFBQWlCLEVBQUUsS0FBWTtRQUEvQixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBRjdCLGdCQUFXLEdBQStCLEVBQUUsQ0FBQztRQUduRCxtQkFBbUIsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3BD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Q0FDVixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDaEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUM3RCxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBRW5CLG9DQUFvQztZQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7WUFFbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7U0FDbEM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOytHQWxHVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUROLE1BQU07OzRGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uU3RhdHVzLCBBY3Rpb25UeXBlLCBBY3Rpb25zLCBTdG9yZSwgb2ZBY3Rpb25Db21wbGV0ZWQsIG9mQWN0aW9uRGlzcGF0Y2hlZCwgb2ZBY3Rpb25FcnJvcmVkIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgZnJvbSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzL2ludGVybmFsL09ic2VydmFibGUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdEFsbCwgZmlyc3QsIG1hcCwgbWVyZ2VBbGwsIG1lcmdlTWFwLCBzY2FuLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN0cmluZ01hcCwgaGFzVmFsdWUgfSBmcm9tICcuLi9sYW5nLnV0aWwnO1xuaW1wb3J0IHsgQWN0aW9uU3RhdHVzQ2hhbmdlZCB9IGZyb20gJy4vYWN0aW9uLXN0YXR1cy1jaGFuZ2VkLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQWN0aW9uU3RhdHVzU2VydmljZSB7XG5cbiAgcHVibGljIHN0YXRpYyBpbnN0YW5jZTogQWN0aW9uU3RhdHVzU2VydmljZTtcbiAgcHVibGljIHN0YXRpYyBwZW5kaW5nVHJhY2tpbmc6IGFueVtdID0gW107XG4gIHB1YmxpYyBzdGF0aWMgYWN0aW9uVHlwZXM6IE1hcDxBY3Rpb25TdGF0dXMsIFNldDxzdHJpbmc+PiA9IG5ldyBNYXAoW1xuICAgIFtBY3Rpb25TdGF0dXMuRGlzcGF0Y2hlZCwgbmV3IFNldDxzdHJpbmc+KCldLFxuICAgIFtBY3Rpb25TdGF0dXMuQ2FuY2VsZWQsIG5ldyBTZXQ8c3RyaW5nPigpXSxcbiAgICBbQWN0aW9uU3RhdHVzLkVycm9yZWQsIG5ldyBTZXQ8c3RyaW5nPigpXSxcbiAgICBbQWN0aW9uU3RhdHVzLlN1Y2Nlc3NmdWwsIG5ldyBTZXQ8c3RyaW5nPigpXVxuICBdKTtcblxuICBwcml2YXRlIHN0cmVhbUNhY2hlOiBTdHJpbmdNYXA8T2JzZXJ2YWJsZTxhbnk+PiA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsIHN0b3JlOiBTdG9yZSkge1xuICAgIEFjdGlvblN0YXR1c1NlcnZpY2UuaW5zdGFuY2UgPSB0aGlzO1xuICAgIGNvbnN0IGFjdGlvblR5cGVzID0gQWN0aW9uU3RhdHVzU2VydmljZS5hY3Rpb25UeXBlcztcbiAgICBhY3Rpb25zJC5zdWJzY3JpYmUoKHsgYWN0aW9uLCBzdGF0dXMsIGVycm9yIH0pID0+IHtcbiAgICAgIGNvbnN0IHR5cGUgPSBhY3Rpb24udHlwZSB8fCBhY3Rpb24uY29uc3RydWN0b3IudHlwZTtcbiAgICAgIGlmIChhY3Rpb25UeXBlcy5nZXQoc3RhdHVzKS5oYXModHlwZSkpIHtcbiAgICAgICAgc3RvcmUuZGlzcGF0Y2gobmV3IEFjdGlvblN0YXR1c0NoYW5nZWQoYCR7dHlwZX0uJHtzdGF0dXN9YCwgYWN0aW9uLCBzdGF0dXMsIGVycm9yKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyB0cmFjayBwZW5kaW5nVHJhY2tpbmcgd2hpY2ggd2VyZSBhZGRlZCBiZWZvcmUgQWN0aW9uU3RhdHVzU2VydmljZSB3YXMgY3JlYXRlZFxuICAgIEFjdGlvblN0YXR1c1NlcnZpY2UucGVuZGluZ1RyYWNraW5nLmZvckVhY2godHlwZSA9PiB7XG4gICAgICB0aGlzLmFjdGlvbnNFeGVjdXRpbmckKHR5cGUpO1xuICAgICAgdGhpcy5hY3Rpb25zRXJyb3JlZCQodHlwZSk7XG4gICAgfSk7XG4gICAgQWN0aW9uU3RhdHVzU2VydmljZS5wZW5kaW5nVHJhY2tpbmcgPSBbXTtcbiAgfVxuXG4gIGFjdGlvbnNFeGVjdXRpbmckKGFjdGlvbnM6IEFjdGlvblR5cGUgfCBBY3Rpb25UeXBlW10pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBhY3Rpb25zID0gQXJyYXkuaXNBcnJheShhY3Rpb25zKSA/IGFjdGlvbnMuZmlsdGVyKGhhc1ZhbHVlKSA6IFthY3Rpb25zXTtcbiAgICBpZiAoYWN0aW9ucy5sZW5ndGggPD0gMSkge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aW9uRXhlY3V0aW5nJChhY3Rpb25zWzBdKS5waXBlKG1hcChjb3VudCA9PiBjb3VudCA+IDApKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZnJvbShhY3Rpb25zKS5waXBlKFxuICAgICAgbWFwKGFjdGlvbiA9PiB0aGlzLmFjdGlvbkV4ZWN1dGluZyQoYWN0aW9uKSksXG4gICAgICBjb21iaW5lTGF0ZXN0QWxsKCksXG4gICAgICBtYXAoY291bnRzID0+ICFjb3VudHMuZXZlcnkoY291bnQgPT4gY291bnQgPT09IDApKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpKTtcbiAgfVxuXG4gIGFjdGlvbnNFcnJvcmVkJChhY3Rpb25zOiBBY3Rpb25UeXBlIHwgQWN0aW9uVHlwZVtdKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgYWN0aW9ucyA9IEFycmF5LmlzQXJyYXkoYWN0aW9ucykgPyBhY3Rpb25zLmZpbHRlcihoYXNWYWx1ZSkgOiBbYWN0aW9uc107XG4gICAgaWYgKGFjdGlvbnMubGVuZ3RoIDw9IDEpIHtcbiAgICAgIHJldHVybiB0aGlzLmFjdGlvbkVycm9yZWQkKGFjdGlvbnNbMF0pO1xuICAgIH1cblxuICAgIHJldHVybiBmcm9tKGFjdGlvbnMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoYWN0aW9uID0+IHRoaXMuYWN0aW9uRXJyb3JlZCQoYWN0aW9uKSksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY3Rpb25FeGVjdXRpbmckKGFjdGlvbjogQWN0aW9uVHlwZSk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgaWYgKCFhY3Rpb24pIHtcbiAgICAgIHJldHVybiBvZigwKTtcbiAgICB9XG4gICAgY29uc3QgdHlwZSA9IGAke2FjdGlvbi50eXBlfS5FWEVDVVRJTkdgO1xuICAgIGxldCBzdGF0dXMkID0gdGhpcy5zdHJlYW1DYWNoZVt0eXBlXTtcbiAgICBpZiAoIXN0YXR1cyQpIHtcbiAgICAgIHN0YXR1cyQgPSBvZihcbiAgICAgICAgb2YoMCksXG4gICAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShvZkFjdGlvbkRpc3BhdGNoZWQoYWN0aW9uKSwgbWFwKCgpID0+IDEpKSxcbiAgICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKG9mQWN0aW9uQ29tcGxldGVkKGFjdGlvbiksIG1hcCgoKSA9PiAtMSkpLFxuICAgICAgKS5waXBlKFxuICAgICAgICBtZXJnZUFsbCgpLFxuICAgICAgICBzY2FuKChzdW0sIGN1cnIpID0+IE1hdGgubWF4KDAsIHN1bSArIGN1cnIpLCAwKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSkpO1xuXG4gICAgICAvLyBzdWJzY3JpYmUgb25jZSB0byBzdGFydCBsaXN0ZW5pbmdcbiAgICAgIHN0YXR1cyQucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKTtcblxuICAgICAgdGhpcy5zdHJlYW1DYWNoZVt0eXBlXSA9IHN0YXR1cyQ7XG4gICAgfVxuICAgIHJldHVybiBzdGF0dXMkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjdGlvbkVycm9yZWQkKGFjdGlvbjogQWN0aW9uVHlwZSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGlmICghYWN0aW9uKSB7XG4gICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgIH1cbiAgICBjb25zdCB0eXBlID0gYCR7YWN0aW9uLnR5cGV9LkVSUk9SRURgO1xuICAgIGxldCBzdGF0dXMkID0gdGhpcy5zdHJlYW1DYWNoZVt0eXBlXTtcbiAgICBpZiAoIXN0YXR1cyQpIHtcbiAgICAgIHN0YXR1cyQgPSBvZihcbiAgICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKG9mQWN0aW9uRGlzcGF0Y2hlZChhY3Rpb24pLCBtYXAoKCkgPT4gZmFsc2UpKSxcbiAgICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKG9mQWN0aW9uRXJyb3JlZChhY3Rpb24pLCBtYXAoKCkgPT4gdHJ1ZSkpLFxuICAgICAgKS5waXBlKG1lcmdlQWxsKCkpO1xuXG4gICAgICAvLyBzdWJzY3JpYmUgb25jZSB0byBzdGFydCBsaXN0ZW5pbmdcbiAgICAgIHN0YXR1cyQucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKTtcblxuICAgICAgdGhpcy5zdHJlYW1DYWNoZVt0eXBlXSA9IHN0YXR1cyQ7XG4gICAgfVxuICAgIHJldHVybiBzdGF0dXMkO1xuICB9XG59XG4iXX0=
|
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
import { ActionStatusService } from './action-status.service';
|
|
2
|
-
export class ActionStatusChanged {
|
|
3
|
-
constructor(type, action, status, error) {
|
|
4
|
-
this.type = type;
|
|
5
|
-
this.action = action;
|
|
6
|
-
this.status = status;
|
|
7
|
-
this.error = error;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
2
|
export function ofStatus(action, status) {
|
|
11
3
|
const type = action.type;
|
|
12
4
|
ActionStatusService.actionTypes.get(status).add(type);
|
|
@@ -24,4 +16,4 @@ export function errored(action) {
|
|
|
24
16
|
export function successful(action) {
|
|
25
17
|
return ofStatus(action, "SUCCESSFUL" /* ActionStatus.Successful */);
|
|
26
18
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0YXR1cy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy91dGlscy9uZ3hzL2FjdGlvbi1zdGF0dXMudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxNQUFNLFVBQVUsUUFBUSxDQUFDLE1BQWtCLEVBQUUsTUFBb0I7SUFDL0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztJQUN6QixtQkFBbUIsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLE1BQU0sRUFBRSxFQUFFLENBQUM7QUFDdkMsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBa0I7SUFDM0MsT0FBTyxRQUFRLENBQUMsTUFBTSw2Q0FBMEIsQ0FBQztBQUNuRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxNQUFrQjtJQUN6QyxPQUFPLFFBQVEsQ0FBQyxNQUFNLHlDQUF3QixDQUFDO0FBQ2pELENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFDLE1BQWtCO0lBQ3hDLE9BQU8sUUFBUSxDQUFDLE1BQU0sdUNBQXVCLENBQUM7QUFDaEQsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBa0I7SUFDM0MsT0FBTyxRQUFRLENBQUMsTUFBTSw2Q0FBMEIsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgQWN0aW9uU3RhdHVzIH0gZnJvbSAnQG5neHMvc3RvcmUvc3JjL2FjdGlvbnMtc3RyZWFtJztcbmltcG9ydCB7IEFjdGlvblN0YXR1c1NlcnZpY2UgfSBmcm9tICcuL2FjdGlvbi1zdGF0dXMuc2VydmljZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBvZlN0YXR1cyhhY3Rpb246IEFjdGlvblR5cGUsIHN0YXR1czogQWN0aW9uU3RhdHVzKSB7XG4gIGNvbnN0IHR5cGUgPSBhY3Rpb24udHlwZTtcbiAgQWN0aW9uU3RhdHVzU2VydmljZS5hY3Rpb25UeXBlcy5nZXQoc3RhdHVzKS5hZGQodHlwZSk7XG4gIHJldHVybiB7IHR5cGU6IGAke3R5cGV9LiR7c3RhdHVzfWAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BhdGNoZWQoYWN0aW9uOiBBY3Rpb25UeXBlKSB7XG4gIHJldHVybiBvZlN0YXR1cyhhY3Rpb24sIEFjdGlvblN0YXR1cy5EaXNwYXRjaGVkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbmNlbGVkKGFjdGlvbjogQWN0aW9uVHlwZSkge1xuICByZXR1cm4gb2ZTdGF0dXMoYWN0aW9uLCBBY3Rpb25TdGF0dXMuQ2FuY2VsZWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXJyb3JlZChhY3Rpb246IEFjdGlvblR5cGUpIHtcbiAgcmV0dXJuIG9mU3RhdHVzKGFjdGlvbiwgQWN0aW9uU3RhdHVzLkVycm9yZWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VjY2Vzc2Z1bChhY3Rpb246IEFjdGlvblR5cGUpIHtcbiAgcmV0dXJuIG9mU3RhdHVzKGFjdGlvbiwgQWN0aW9uU3RhdHVzLlN1Y2Nlc3NmdWwpO1xufVxuXG5cbiJdfQ==
|
|
@@ -13,4 +13,4 @@ export function convertFeaturePermissionsToDictionary(permissions) {
|
|
|
13
13
|
return allowedActions;
|
|
14
14
|
}, {});
|
|
15
15
|
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi10eXBlLW1hcHBlci51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy91dGlscy9wZXJtaXNzaW9uLXR5cGUtbWFwcGVyLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR3hDLE1BQU0sVUFBVSw4QkFBOEIsQ0FBQyxXQUFrRDtJQUMvRixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUN4RSxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNuQyxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDO0FBRUQsTUFBTSxVQUFVLHFDQUFxQyxDQUFDLFdBQWtDO0lBQ3RGLE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsRUFBRSxlQUFlLEVBQUUsRUFBRTtRQUM1RCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDeEMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQztTQUN4QztRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNULENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGdlIH0gZnJvbSAnLi4vc2VydmljZS1wcm94eSc7XG5pbXBvcnQgeyBOdW1iZXJNYXAgfSBmcm9tICcuL2xhbmcudXRpbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0UGVybWlzc2lvbnNUb0RpY3Rpb25hcnkocGVybWlzc2lvbnM6IHsgW2tleTogc3RyaW5nXTogRWRnZS5QZXJtaXNzaW9uRHRvIH0pOiBOdW1iZXJNYXA8Ym9vbGVhbj4ge1xuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhwZXJtaXNzaW9ucyB8fCB7fSkucmVkdWNlKChhbGxvd2VkQWN0aW9ucywgYWN0aW9uKSA9PiB7XG4gICAgYWxsb3dlZEFjdGlvbnNbYWN0aW9uLnR5cGVdID0gdHJ1ZTtcbiAgICByZXR1cm4gYWxsb3dlZEFjdGlvbnM7XG4gIH0sIHt9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRGZWF0dXJlUGVybWlzc2lvbnNUb0RpY3Rpb25hcnkocGVybWlzc2lvbnM6IEVkZ2UuUGVybWlzc2lvblR5cGVbXSk6IE51bWJlck1hcDxib29sZWFuPiB7XG4gIHJldHVybiBwZXJtaXNzaW9ucy5yZWR1Y2UoKGFsbG93ZWRBY3Rpb25zLCBwZXJtaXNzaW9uc1R5cGUpID0+IHtcbiAgICBpZiAoRWRnZS5QZXJtaXNzaW9uVHlwZVtwZXJtaXNzaW9uc1R5cGVdKSB7XG4gICAgICBhbGxvd2VkQWN0aW9uc1twZXJtaXNzaW9uc1R5cGVdID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGFsbG93ZWRBY3Rpb25zO1xuICB9LCB7fSk7XG59XG4iXX0=
|