@infrab4a/connect 4.0.0-beta.0 → 4.0.0-beta.11

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.
Files changed (26) hide show
  1. package/esm2020/domain/users/models/subscription/edition.mjs +1 -1
  2. package/esm2020/domain/users/models/subscription/payment.mjs +1 -1
  3. package/esm2020/domain/users/models/user-payment-method.mjs +1 -1
  4. package/esm2020/infra/firebase/firestore/mixins/with-find-firestore.mixin.mjs +2 -2
  5. package/esm2020/infra/firebase/firestore/mixins/with-firestore.mixin.mjs +1 -1
  6. package/esm2020/infra/firebase/firestore/mixins/with-update-firestore.mixin.mjs +1 -1
  7. package/esm2020/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.mjs +1 -1
  8. package/esm2020/infra/firebase/firestore/repositories/users/user-firestore.repository.mjs +1 -1
  9. package/esm2020/infra/hasura-graphql/mixins/helpers/graphql-field.helper.mjs +2 -2
  10. package/esm2020/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.mjs +22 -18
  11. package/esm2020/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.mjs +3 -2
  12. package/esm2020/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.mjs +3 -2
  13. package/esm2020/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.mjs +8 -7
  14. package/esm2020/utils/get.mjs +3 -0
  15. package/esm2020/utils/index.mjs +4 -4
  16. package/fesm2015/infrab4a-connect.mjs +41 -32
  17. package/fesm2015/infrab4a-connect.mjs.map +1 -1
  18. package/fesm2020/infrab4a-connect.mjs +40 -34
  19. package/fesm2020/infrab4a-connect.mjs.map +1 -1
  20. package/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.d.ts +12 -1
  21. package/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.d.ts +4 -4
  22. package/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.d.ts +3 -3
  23. package/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.d.ts +4 -4
  24. package/package.json +2 -2
  25. package/utils/get.d.ts +1 -0
  26. package/utils/index.d.ts +3 -43
@@ -4,4 +4,4 @@ export class Edition extends BaseModel {
4
4
  return ['id', 'subscriptionId'];
5
5
  }
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2RvbWFpbi91c2Vycy9tb2RlbHMvc3Vic2NyaXB0aW9uL2VkaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxtQ0FBbUMsQ0FBQTtBQU1oRixNQUFNLE9BQU8sT0FBUSxTQUFRLFNBQXNDO0lBWWpFLE1BQU0sS0FBSyxpQkFBaUI7UUFDMUIsT0FBTyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VNb2RlbCwgR2VuZXJpY0lkZW50aWZpZXIgfSBmcm9tICcuLi8uLi8uLi9nZW5lcmljL21vZGVsL2Jhc2UubW9kZWwnXG5cbmltcG9ydCB7IEVkaXRpb25TdGF0dXMsIEJpbGxpbmdTdGF0dXMgfSBmcm9tICcuL2VudW1zJ1xuXG5leHBvcnQgdHlwZSBFZGl0aW9uSWRlbnRpZmllcnMgPSAnaWQnIHwgJ3N1YnNjcmlwdGlvbklkJ1xuXG5leHBvcnQgY2xhc3MgRWRpdGlvbiBleHRlbmRzIEJhc2VNb2RlbDxFZGl0aW9uLCBFZGl0aW9uSWRlbnRpZmllcnM+IHtcbiAgaWQ6IHN0cmluZ1xuICBzdWJzY3JpcHRpb25JZDogc3RyaW5nXG4gIGJpbGxpbmdTdGF0dXM6IEJpbGxpbmdTdGF0dXNcbiAgZWRpdGlvbklkOiBudW1iZXJcbiAgZWRpdGlvblN0YXR1czogRWRpdGlvblN0YXR1c1xuICBpbnN0YWxsbWVudDogbnVtYmVyXG4gIHBheW1lbnRJZDogc3RyaW5nXG4gIGRyYWZ0SWQ/OiBzdHJpbmdcbiAgY3JlYXRlZEF0OiBEYXRlXG4gIHVwZGF0ZWRBdDogRGF0ZVxuXG4gIHN0YXRpYyBnZXQgaWRlbnRpZmllcnNGaWVsZHMoKTogRWRpdGlvbklkZW50aWZpZXJzW10ge1xuICAgIHJldHVybiBbJ2lkJywgJ3N1YnNjcmlwdGlvbklkJ11cbiAgfVxufVxuIl19
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2RvbWFpbi91c2Vycy9tb2RlbHMvc3Vic2NyaXB0aW9uL2VkaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBTTdELE1BQU0sT0FBTyxPQUFRLFNBQVEsU0FBc0M7SUFZakUsTUFBTSxLQUFLLGlCQUFpQjtRQUMxQixPQUFPLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUE7SUFDakMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vZ2VuZXJpYy9tb2RlbC9iYXNlLm1vZGVsJ1xuXG5pbXBvcnQgeyBFZGl0aW9uU3RhdHVzLCBCaWxsaW5nU3RhdHVzIH0gZnJvbSAnLi9lbnVtcydcblxuZXhwb3J0IHR5cGUgRWRpdGlvbklkZW50aWZpZXJzID0gJ2lkJyB8ICdzdWJzY3JpcHRpb25JZCdcblxuZXhwb3J0IGNsYXNzIEVkaXRpb24gZXh0ZW5kcyBCYXNlTW9kZWw8RWRpdGlvbiwgRWRpdGlvbklkZW50aWZpZXJzPiB7XG4gIGlkOiBzdHJpbmdcbiAgc3Vic2NyaXB0aW9uSWQ6IHN0cmluZ1xuICBiaWxsaW5nU3RhdHVzOiBCaWxsaW5nU3RhdHVzXG4gIGVkaXRpb25JZDogbnVtYmVyXG4gIGVkaXRpb25TdGF0dXM6IEVkaXRpb25TdGF0dXNcbiAgaW5zdGFsbG1lbnQ6IG51bWJlclxuICBwYXltZW50SWQ6IHN0cmluZ1xuICBkcmFmdElkPzogc3RyaW5nXG4gIGNyZWF0ZWRBdDogRGF0ZVxuICB1cGRhdGVkQXQ6IERhdGVcblxuICBzdGF0aWMgZ2V0IGlkZW50aWZpZXJzRmllbGRzKCk6IEVkaXRpb25JZGVudGlmaWVyc1tdIHtcbiAgICByZXR1cm4gWydpZCcsICdzdWJzY3JpcHRpb25JZCddXG4gIH1cbn1cbiJdfQ==
@@ -11,4 +11,4 @@ __decorate([
11
11
  Type(() => Payment),
12
12
  __metadata("design:type", Payment)
13
13
  ], SubscriptionPayment.prototype, "payment", void 0);
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2RvbWFpbi91c2Vycy9tb2RlbHMvc3Vic2NyaXB0aW9uL3BheW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLG1DQUFtQyxDQUFBO0FBQ2hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQU0xRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsU0FBOEQ7SUFVckcsTUFBTSxLQUFLLGlCQUFpQjtRQUMxQixPQUFPLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUE7SUFDakMsQ0FBQztDQUNGO0FBTkM7SUFBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDOzhCQUNYLE9BQU87b0RBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInXG5cbmltcG9ydCB7IEJhc2VNb2RlbCwgR2VuZXJpY0lkZW50aWZpZXIgfSBmcm9tICcuLi8uLi8uLi9nZW5lcmljL21vZGVsL2Jhc2UubW9kZWwnXG5pbXBvcnQgeyBQYXltZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hvcHBpbmcvbW9kZWxzL3BheW1lbnQnXG5cbmltcG9ydCB7IFBheW1lbnRUeXBlIH0gZnJvbSAnLi9lbnVtcy9wYXltZW50LXR5cGUuZW51bSdcblxuZXhwb3J0IHR5cGUgU3Vic2NyaXB0aW9uUGF5bWVudElkZW50aWZpZXJzID0gJ2lkJyB8ICdzdWJzY3JpcHRpb25JZCdcblxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvblBheW1lbnQgZXh0ZW5kcyBCYXNlTW9kZWw8U3Vic2NyaXB0aW9uUGF5bWVudCwgU3Vic2NyaXB0aW9uUGF5bWVudElkZW50aWZpZXJzPiB7XG4gIGlkOiBzdHJpbmdcbiAgc3Vic2NyaXB0aW9uSWQ6IHN0cmluZ1xuICBwYXltZW50VHlwZTogUGF5bWVudFR5cGVcbiAgY3JlYXRlZEF0OiBEYXRlXG4gIGF0dGVtcHRzPzogbnVtYmVyXG5cbiAgQFR5cGUoKCkgPT4gUGF5bWVudClcbiAgcGF5bWVudDogUGF5bWVudFxuXG4gIHN0YXRpYyBnZXQgaWRlbnRpZmllcnNGaWVsZHMoKTogU3Vic2NyaXB0aW9uUGF5bWVudElkZW50aWZpZXJzW10ge1xuICAgIHJldHVybiBbJ2lkJywgJ3N1YnNjcmlwdGlvbklkJ11cbiAgfVxufVxuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2RvbWFpbi91c2Vycy9tb2RlbHMvc3Vic2NyaXB0aW9uL3BheW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBTTFELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxTQUE4RDtJQVVyRyxNQUFNLEtBQUssaUJBQWlCO1FBQzFCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0NBQ0Y7QUFOQztJQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUM7OEJBQ1gsT0FBTztvREFBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcidcblxuaW1wb3J0IHsgQmFzZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vZ2VuZXJpYy9tb2RlbC9iYXNlLm1vZGVsJ1xuaW1wb3J0IHsgUGF5bWVudCB9IGZyb20gJy4uLy4uLy4uL3Nob3BwaW5nL21vZGVscy9wYXltZW50J1xuXG5pbXBvcnQgeyBQYXltZW50VHlwZSB9IGZyb20gJy4vZW51bXMvcGF5bWVudC10eXBlLmVudW0nXG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvblBheW1lbnRJZGVudGlmaWVycyA9ICdpZCcgfCAnc3Vic2NyaXB0aW9uSWQnXG5cbmV4cG9ydCBjbGFzcyBTdWJzY3JpcHRpb25QYXltZW50IGV4dGVuZHMgQmFzZU1vZGVsPFN1YnNjcmlwdGlvblBheW1lbnQsIFN1YnNjcmlwdGlvblBheW1lbnRJZGVudGlmaWVycz4ge1xuICBpZDogc3RyaW5nXG4gIHN1YnNjcmlwdGlvbklkOiBzdHJpbmdcbiAgcGF5bWVudFR5cGU6IFBheW1lbnRUeXBlXG4gIGNyZWF0ZWRBdDogRGF0ZVxuICBhdHRlbXB0cz86IG51bWJlclxuXG4gIEBUeXBlKCgpID0+IFBheW1lbnQpXG4gIHBheW1lbnQ6IFBheW1lbnRcblxuICBzdGF0aWMgZ2V0IGlkZW50aWZpZXJzRmllbGRzKCk6IFN1YnNjcmlwdGlvblBheW1lbnRJZGVudGlmaWVyc1tdIHtcbiAgICByZXR1cm4gWydpZCcsICdzdWJzY3JpcHRpb25JZCddXG4gIH1cbn1cbiJdfQ==
@@ -4,4 +4,4 @@ export class UserPaymentMethod extends BaseModel {
4
4
  return ['id', 'userId'];
5
5
  }
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wYXltZW50LW1ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2RvbWFpbi91c2Vycy9tb2RlbHMvdXNlci1wYXltZW50LW1ldGhvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGdDQUFnQyxDQUFBO0FBSTdFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxTQUFvRDtJQVd6RixNQUFNLEtBQUssaUJBQWlCO1FBQzFCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDekIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZU1vZGVsLCBHZW5lcmljSWRlbnRpZmllciB9IGZyb20gJy4uLy4uL2dlbmVyaWMvbW9kZWwvYmFzZS5tb2RlbCdcblxuZXhwb3J0IHR5cGUgVXNlclBheW1lbnRJZGVudGlmaWVycyA9ICdpZCcgfCAndXNlcklkJ1xuXG5leHBvcnQgY2xhc3MgVXNlclBheW1lbnRNZXRob2QgZXh0ZW5kcyBCYXNlTW9kZWw8VXNlclBheW1lbnRNZXRob2QsIFVzZXJQYXltZW50SWRlbnRpZmllcnM+IHtcbiAgYnJhbmQ6IHN0cmluZ1xuICBjcGY6IHN0cmluZ1xuICBob2xkZXJOYW1lOiBzdHJpbmdcbiAgbGFzdDQ6IHN0cmluZ1xuICBwYWdhcm1lVG9rZW46IHN0cmluZ1xuICB2YWxpZFVudGlsOiBzdHJpbmdcbiAgdXNlcklkOiBzdHJpbmdcbiAgaWQ6IHN0cmluZ1xuICBmaW5nZXJwcmludDogc3RyaW5nXG5cbiAgc3RhdGljIGdldCBpZGVudGlmaWVyc0ZpZWxkcygpOiBVc2VyUGF5bWVudElkZW50aWZpZXJzW10ge1xuICAgIHJldHVybiBbJ2lkJywgJ3VzZXJJZCddXG4gIH1cbn1cbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wYXltZW50LW1ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2RvbWFpbi91c2Vycy9tb2RlbHMvdXNlci1wYXltZW50LW1ldGhvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFJMUQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFNBQW9EO0lBV3pGLE1BQU0sS0FBSyxpQkFBaUI7UUFDMUIsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlTW9kZWwgfSBmcm9tICcuLi8uLi9nZW5lcmljL21vZGVsL2Jhc2UubW9kZWwnXG5cbmV4cG9ydCB0eXBlIFVzZXJQYXltZW50SWRlbnRpZmllcnMgPSAnaWQnIHwgJ3VzZXJJZCdcblxuZXhwb3J0IGNsYXNzIFVzZXJQYXltZW50TWV0aG9kIGV4dGVuZHMgQmFzZU1vZGVsPFVzZXJQYXltZW50TWV0aG9kLCBVc2VyUGF5bWVudElkZW50aWZpZXJzPiB7XG4gIGJyYW5kOiBzdHJpbmdcbiAgY3BmOiBzdHJpbmdcbiAgaG9sZGVyTmFtZTogc3RyaW5nXG4gIGxhc3Q0OiBzdHJpbmdcbiAgcGFnYXJtZVRva2VuOiBzdHJpbmdcbiAgdmFsaWRVbnRpbDogc3RyaW5nXG4gIHVzZXJJZDogc3RyaW5nXG4gIGlkOiBzdHJpbmdcbiAgZmluZ2VycHJpbnQ6IHN0cmluZ1xuXG4gIHN0YXRpYyBnZXQgaWRlbnRpZmllcnNGaWVsZHMoKTogVXNlclBheW1lbnRJZGVudGlmaWVyc1tdIHtcbiAgICByZXR1cm4gWydpZCcsICd1c2VySWQnXVxuICB9XG59XG4iXX0=
@@ -87,7 +87,7 @@ export const withFindFirestore = (MixinBase) => {
87
87
  const queries = [];
88
88
  if (limits?.offset) {
89
89
  if (this.model.isModel(limits.offset))
90
- queries.push(startAfter(await getDoc(doc(this.collection(this.buildCollectionPathForFind(filters)), limits.offset.identifier.shift()))));
90
+ queries.push(startAfter(await getDoc(doc(this.collection(this.buildCollectionPathForFind(filters)), limits.offset.identifier[limits.offset.identifiersFields?.shift()]))));
91
91
  else if (isNumber(limits.offset) || isString(limits.offset))
92
92
  queries.push(startAt(limits.offset));
93
93
  }
@@ -104,4 +104,4 @@ export const withFindFirestore = (MixinBase) => {
104
104
  }
105
105
  };
106
106
  };
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1maW5kLWZpcmVzdG9yZS5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2ZpcmViYXNlL2ZpcmVzdG9yZS9taXhpbnMvd2l0aC1maW5kLWZpcmVzdG9yZS5taXhpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsR0FBRyxFQUNILE1BQU0sRUFDTixPQUFPLEVBQ1AsS0FBSyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBRUwsVUFBVSxFQUNWLE9BQU8sRUFDUCxLQUFLLEdBRU4sTUFBTSxvQkFBb0IsQ0FBQTtBQUUzQixPQUFPLEVBV0wsS0FBSyxHQUNOLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUNMLEVBQUUsRUFDRixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUdSLEdBQUcsR0FDSixNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUc3QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUkvQixTQUFnRixFQUloRixFQUFFO0lBQ0YsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLE1BQVcsRUFBdUQsRUFBRSxDQUNqRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDMUIsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE1BQXVDLEVBQU8sRUFBRTtRQUMxRSxPQUFPLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7SUFDOUQsQ0FBQyxDQUFBO0lBQ0QsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQ3ZDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3pFLENBQUMsQ0FBQyxLQUFLO1FBQ1AsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUV0QyxPQUFPLE1BQU0sYUFBYyxTQUFRLFNBQVM7UUFBckM7O1lBaUNMLHVCQUFrQixHQUFHLENBQUMsTUFBcUMsRUFBcUIsRUFBRSxDQUNoRixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FDeEIsQ0FBQyxPQUEwQixFQUFFLFNBQWlCLEVBQUUsRUFBRSxDQUFDO2dCQUNqRCxHQUFHLE9BQU87Z0JBQ1YsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBNEMsQ0FBQyxDQUFDLENBQUM7YUFDaEcsRUFDRCxFQUFFLENBQ0gsQ0FBQTtZQUVILHVCQUFrQixHQUFHLENBQ25CLFNBQW1ELEVBQ25ELE9BQThFLEVBQzNELEVBQUU7Z0JBQ3JCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBUSxJQUFJLENBQUMsSUFBSSxTQUFTLEtBQUssSUFBSSxDQUFDLGFBQWE7b0JBQUUsRUFBRSxDQUFBO2dCQUU3RSxNQUFNLEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxJQUFJLE9BQU8sQ0FBQTtnQkFDdkMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFBO2dCQUVqQixHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQTtnQkFFN0IsTUFBTSxhQUFhLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO2dCQUN0RCxNQUFNLGtCQUFrQixHQUN0QixTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDcEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7b0JBQ3RCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7Z0JBRWxFLElBQUksT0FBTyxFQUFFLFFBQVEsS0FBSyxLQUFLLENBQUMsSUFBSSxFQUFFO29CQUNwQyxJQUNFLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQzt3QkFDN0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrRSxDQUFDOzRCQUM5RSxrQkFBa0IsQ0FBQyxLQUFLOzRCQUN4QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtFLENBQUMsQ0FBQzt3QkFFbkYsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtvQkFFekUsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFBO2lCQUM5RztnQkFDRCxJQUNFLE9BQU8sRUFBRSxRQUFRLEtBQUssS0FBSyxDQUFDLEVBQUU7b0JBQzlCLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztvQkFDN0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrRSxDQUFDLEtBQUssa0JBQWtCLENBQUMsS0FBSzt3QkFDM0csQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrRSxDQUFDLENBQUM7b0JBRW5GLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7Z0JBQ3JFLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRTtvQkFDMUUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FDaEMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQzt3QkFDaEIsR0FBRyxPQUFPO3dCQUNWLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBc0IsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQ3BHLEVBQ0QsRUFBRSxDQUNILENBQUE7aUJBQ0Y7Z0JBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRyxPQUFPLEVBQUUsUUFBMEIsSUFBSSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFBO1lBQzdHLENBQUMsQ0FBQTtZQUVELHlCQUFvQixHQUFHLENBQ3JCLE9BQXNDLEVBQ3RDLGVBQTBDLEVBQ3ZCLEVBQUU7Z0JBQ3JCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFBO2dCQUV0RCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU07b0JBQUUsT0FBTyxFQUFFLENBQUE7Z0JBRWxDLE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUNoRSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUNoRCxDQUFBO2dCQUVELElBQUksd0JBQXdCLENBQUMsTUFBTTtvQkFDakMsd0JBQXdCLENBQUMsT0FBTyxDQUM5QixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQ1osQ0FBQyxlQUFlLEdBQUc7d0JBQ2pCLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FDMUIsRUFBRSxDQUNBLE9BQU8sQ0FBQyxTQUE0QyxDQUFDLENBQ3RELENBQUMsUUFBUSxDQUNYOzRCQUNDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFOzRCQUN4QixDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNQLEdBQUcsZUFBZTtxQkFDbkIsQ0FBQyxDQUNMLENBQUE7Z0JBRUgsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQ3BELE9BQU8sQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLFNBQTRDLENBQUMsQ0FBQyxDQUNsRixDQUFBO1lBQ0gsQ0FBQyxDQUFBO1FBOEJILENBQUM7UUFySkMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUNULE9BQU8sRUFDUCxNQUFNLEVBQ04sT0FBTyxNQUtMLEVBQUU7WUFDSixNQUFNLFVBQVUsR0FBK0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtZQUN4RyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQ3RELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUE7WUFDOUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUN4RCxNQUFNLGVBQWUsR0FBc0IsQ0FBQyxHQUFHLE9BQU8sRUFBRSxHQUFHLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFBO1lBQ2xGLE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFBO1lBQ2pFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtZQUUvQyxPQUFPO2dCQUNMLElBQUk7Z0JBQ0osS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQzthQUN6QyxDQUFBO1FBQ0gsQ0FBQztRQUVELDBCQUEwQixDQUFDLE9BQXNDO1lBQy9ELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFRLElBQUksQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUE7WUFFbEUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQTtZQUN4QyxNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFBO1lBRTdELE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDckYsQ0FBQztRQTJGRCxLQUFLLENBQUMsWUFBWSxDQUNoQixPQUFzQyxFQUN0QyxNQUFxQztZQUVyQyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7WUFFbEIsSUFBSSxNQUFNLEVBQUUsTUFBTSxFQUFFO2dCQUNsQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7b0JBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQ1YsVUFBVSxDQUNSLE1BQU0sTUFBTSxDQUNWLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQ2pHLENBQ0YsQ0FDRixDQUFBO3FCQUNFLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztvQkFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTthQUNsRztZQUNELElBQUksTUFBTSxFQUFFLEtBQUs7Z0JBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7WUFFcEQsT0FBTyxPQUFPLENBQUE7UUFDaEIsQ0FBQztRQUVELGNBQWMsQ0FBQyxJQUFhLEVBQUUsTUFBcUM7WUFDakUsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUM7Z0JBQUUsT0FBTyxDQUFDLENBQUE7WUFDOUIsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sRUFBRSxLQUFLO2dCQUFFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQTtZQUVuRCxPQUFPLFFBQVEsQ0FBQTtRQUNqQixDQUFDO0tBQ0ssQ0FBQTtBQUNWLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbGxlY3Rpb25SZWZlcmVuY2UsXG4gIGRvYyxcbiAgZ2V0RG9jLFxuICBnZXREb2NzLFxuICBsaW1pdCxcbiAgb3JkZXJCeSxcbiAgcXVlcnksXG4gIFF1ZXJ5Q29uc3RyYWludCxcbiAgc3RhcnRBZnRlcixcbiAgc3RhcnRBdCxcbiAgd2hlcmUsXG4gIFdoZXJlRmlsdGVyT3AsXG59IGZyb20gJ2ZpcmViYXNlL2ZpcmVzdG9yZSdcblxuaW1wb3J0IHtcbiAgRmluZFJlcG9zaXRvcnksXG4gIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lcyxcbiAgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzLFxuICBSZXBvc2l0b3J5RmluZEZpZWxkLFxuICBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzLFxuICBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9ucyxcbiAgUmVwb3NpdG9yeUZpbmRSZXN1bHQsXG4gIFJlcG9zaXRvcnlMaW1pdE9wdGlvbnMsXG4gIFJlcG9zaXRvcnlPcmRlckJ5LFxuICBXaGVyZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHtcbiAgaXMsXG4gIGlzRGF0ZSxcbiAgaXNOaWwsXG4gIGlzTnVtYmVyLFxuICBpc09iamVjdCxcbiAgaXNTdHJpbmcsXG4gIE1lcmdlQ29uc3RydWN0b3JQYXJhbXMsXG4gIE1peGluQ3RvcixcbiAgc2V0LFxufSBmcm9tICcuLi8uLi8uLi8uLi91dGlscydcbmltcG9ydCB7IEZpcmVzdG9yZUZpZWxkVHlwZSB9IGZyb20gJy4uL2VudW1zJ1xuaW1wb3J0IHsgRmlyZXN0b3JlSGVscGVycywgRmlyZXN0b3JlUmVwb3NpdG9yeSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5leHBvcnQgY29uc3Qgd2l0aEZpbmRGaXJlc3RvcmUgPSA8XG4gIFRCYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBUTWl4aW5CYXNlIGV4dGVuZHMgTWl4aW5DdG9yPEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+Pixcbj4oXG4gIE1peGluQmFzZTogTWl4aW5DdG9yPEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+ICYgRmlyZXN0b3JlSGVscGVycz4gJiBUTWl4aW5CYXNlLFxuKTogTWl4aW5DdG9yPFxuICBGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPiAmIEluc3RhbmNlVHlwZTxUTWl4aW5CYXNlPiAmIEZpbmRSZXBvc2l0b3J5PFRCYXNlPiAmIEZpcmVzdG9yZUhlbHBlcnMsXG4gIE1lcmdlQ29uc3RydWN0b3JQYXJhbXM8e31bXSwgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPFRNaXhpbkJhc2U+PlxuPiA9PiB7XG4gIGNvbnN0IGNoZWNrSWZJc0ZpbHRlck9wdGlvbiA9IChmaWx0ZXI6IGFueSk6IGZpbHRlciBpcyBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxUQmFzZSwgYW55PiA9PlxuICAgICFpc05pbChmaWx0ZXI/Lm9wZXJhdG9yKVxuICBjb25zdCBnZXRWYWx1ZUZyb21GaWx0ZXIgPSAoZmlsdGVyOiBSZXBvc2l0b3J5RmluZEZpZWxkPFRCYXNlLCBhbnk+KTogYW55ID0+IHtcbiAgICByZXR1cm4gY2hlY2tJZklzRmlsdGVyT3B0aW9uKGZpbHRlcikgPyBmaWx0ZXIudmFsdWUgOiBmaWx0ZXJcbiAgfVxuICBjb25zdCBnZXRGaW5hbFZhbHVlRnJvbSA9ICh2YWx1ZTogYW55KSA9PlxuICAgIGlzTnVtYmVyKHZhbHVlKSB8fCBpc1N0cmluZyh2YWx1ZSkgfHwgaXNEYXRlKHZhbHVlKSB8fCBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgPyB2YWx1ZVxuICAgICAgOiBPYmplY3QudmFsdWVzKGdldEZpbmFsVmFsdWVGcm9tKVxuXG4gIHJldHVybiBjbGFzcyBGaW5kRmlyZXN0b3JlIGV4dGVuZHMgTWl4aW5CYXNlIGltcGxlbWVudHMgRmluZFJlcG9zaXRvcnk8VEJhc2U+IHtcbiAgICBhc3luYyBmaW5kKHtcbiAgICAgIGZpbHRlcnMsXG4gICAgICBsaW1pdHMsXG4gICAgICBvcmRlckJ5LFxuICAgIH06IHtcbiAgICAgIGZpbHRlcnM/OiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFRCYXNlPlxuICAgICAgbGltaXRzPzogUmVwb3NpdG9yeUxpbWl0T3B0aW9uczxUQmFzZT5cbiAgICAgIG9yZGVyQnk/OiBSZXBvc2l0b3J5T3JkZXJCeTxUQmFzZT5cbiAgICB9ID0ge30pOiBQcm9taXNlPFJlcG9zaXRvcnlGaW5kUmVzdWx0PFRCYXNlPj4ge1xuICAgICAgY29uc3QgY29sbGVjdGlvbjogQ29sbGVjdGlvblJlZmVyZW5jZTxUQmFzZT4gPSB0aGlzLmNvbGxlY3Rpb24odGhpcy5idWlsZENvbGxlY3Rpb25QYXRoRm9yRmluZChmaWx0ZXJzKSlcbiAgICAgIGNvbnN0IHF1ZXJpZXMgPSB0aGlzLm1ha2VGaXJlc3RvcmVXaGVyZShmaWx0ZXJzIHx8IHt9KVxuICAgICAgY29uc3Qgb3JkaW5hdGlvbiA9IHRoaXMubWFrZUZpcmVzdG9yZU9yZGVyQnkoZmlsdGVycywgb3JkZXJCeSlcbiAgICAgIGNvbnN0IG9mZnNldHMgPSBhd2FpdCB0aGlzLmRlZmluZUxpbWl0cyhmaWx0ZXJzLCBsaW1pdHMpXG4gICAgICBjb25zdCBxdWVyeUFyZ3VtbWVudHM6IFF1ZXJ5Q29uc3RyYWludFtdID0gWy4uLnF1ZXJpZXMsIC4uLm9yZGluYXRpb24sIC4uLm9mZnNldHNdXG4gICAgICBjb25zdCBkb2NzID0gYXdhaXQgZ2V0RG9jcyhxdWVyeShjb2xsZWN0aW9uLCAuLi5xdWVyeUFyZ3VtbWVudHMpKVxuICAgICAgY29uc3QgZGF0YSA9IGRvY3MuZG9jcy5tYXAoKGRvYykgPT4gZG9jLmRhdGEoKSlcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGF0YSxcbiAgICAgICAgY291bnQ6IHRoaXMuY2FsY3VsYXRlQ291bnQoZGF0YSwgbGltaXRzKSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBidWlsZENvbGxlY3Rpb25QYXRoRm9yRmluZChmaWx0ZXJzOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFRCYXNlPik6IHN0cmluZyB7XG4gICAgICBpZiAoIXRoaXMuaXNTdWJDb2xsZWN0aW9uPFRCYXNlPih0aGlzKSkgcmV0dXJuIHRoaXMuY29sbGVjdGlvbk5hbWVcblxuICAgICAgY29uc3QgcGFyZW50SWRGaWVsZCA9IHRoaXMucGFyZW50SWRGaWVsZFxuICAgICAgY29uc3QgcGFyZW50SWQgPSBnZXRWYWx1ZUZyb21GaWx0ZXIoZmlsdGVycz8uW3BhcmVudElkRmllbGRdKVxuXG4gICAgICByZXR1cm4gYCR7dGhpcy5wYXJlbnRSZXBvc2l0b3J5LmNvbGxlY3Rpb25OYW1lfS8ke3BhcmVudElkfS8ke3RoaXMuY29sbGVjdGlvbk5hbWV9YFxuICAgIH1cblxuICAgIG1ha2VGaXJlc3RvcmVXaGVyZSA9IChmaWx0ZXI6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8VEJhc2U+KTogUXVlcnlDb25zdHJhaW50W10gPT5cbiAgICAgIE9iamVjdC5rZXlzKGZpbHRlcikucmVkdWNlKFxuICAgICAgICAocXVlcmllczogUXVlcnlDb25zdHJhaW50W10sIGZpZWxkTmFtZTogc3RyaW5nKSA9PiBbXG4gICAgICAgICAgLi4ucXVlcmllcyxcbiAgICAgICAgICAuLi50aGlzLmJ1aWxkV2hlcmVTZW50ZW5jZShmaWVsZE5hbWUsIGlzKGZpbHRlcltmaWVsZE5hbWUgYXMgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFRCYXNlPl0pKSxcbiAgICAgICAgXSxcbiAgICAgICAgW10sXG4gICAgICApXG5cbiAgICBidWlsZFdoZXJlU2VudGVuY2UgPSAoXG4gICAgICBmaWVsZE5hbWU6IE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxUQmFzZT4gfCBzdHJpbmcsXG4gICAgICBvcHRpb25zOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxUQmFzZSwgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFRCYXNlPj4sXG4gICAgKTogUXVlcnlDb25zdHJhaW50W10gPT4ge1xuICAgICAgaWYgKHRoaXMuaXNTdWJDb2xsZWN0aW9uPFRCYXNlPih0aGlzKSAmJiBmaWVsZE5hbWUgPT09IHRoaXMucGFyZW50SWRGaWVsZCkgW11cblxuICAgICAgY29uc3QgdmFsdWUgPSBvcHRpb25zPy52YWx1ZSB8fCBvcHRpb25zXG4gICAgICBjb25zdCBvYmplY3QgPSB7fVxuXG4gICAgICBzZXQob2JqZWN0LCBmaWVsZE5hbWUsIHZhbHVlKVxuXG4gICAgICBjb25zdCBwbGFpbkluc3RhbmNlID0gbmV3IHRoaXMubW9kZWwob2JqZWN0KS50b1BsYWluKClcbiAgICAgIGNvbnN0IGZpcmVzdG9yZUZpZWxkTmFtZSA9XG4gICAgICAgIGZpZWxkTmFtZS50b1N0cmluZygpLmluZGV4T2YoJy4nKSA+IC0xXG4gICAgICAgICAgPyBmaWVsZE5hbWUudG9TdHJpbmcoKVxuICAgICAgICAgIDogT2JqZWN0LmtleXMocGxhaW5JbnN0YW5jZSkuZmluZCgoa2V5KSA9PiBwbGFpbkluc3RhbmNlW2tleV0pXG5cbiAgICAgIGlmIChvcHRpb25zPy5vcGVyYXRvciA9PT0gV2hlcmUuTElLRSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgQXJyYXkuaXNBcnJheShvcHRpb25zPy52YWx1ZSkgJiZcbiAgICAgICAgICAodGhpcy5maWVsZHNbZmlyZXN0b3JlRmllbGROYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8VEJhc2U+XSA9PT1cbiAgICAgICAgICAgIEZpcmVzdG9yZUZpZWxkVHlwZS5BcnJheSB8fFxuICAgICAgICAgICAgIXRoaXMuZmllbGRzW2ZpcmVzdG9yZUZpZWxkTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFRCYXNlPl0pXG4gICAgICAgIClcbiAgICAgICAgICByZXR1cm4gW3doZXJlKGZpcmVzdG9yZUZpZWxkTmFtZSwgJ2FycmF5LWNvbnRhaW5zLWFueScsIG9wdGlvbnMudmFsdWUpXVxuXG4gICAgICAgIHJldHVybiBbd2hlcmUoZmlyZXN0b3JlRmllbGROYW1lLCAnPj0nLCBvcHRpb25zLnZhbHVlKSwgd2hlcmUoZmlyZXN0b3JlRmllbGROYW1lLCAnPD0nLCBgJHtvcHRpb25zLnZhbHVlfX5gKV1cbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgb3B0aW9ucz8ub3BlcmF0b3IgPT09IFdoZXJlLklOICYmXG4gICAgICAgIEFycmF5LmlzQXJyYXkob3B0aW9ucz8udmFsdWUpICYmXG4gICAgICAgICh0aGlzLmZpZWxkc1tmaXJlc3RvcmVGaWVsZE5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxUQmFzZT5dID09PSBGaXJlc3RvcmVGaWVsZFR5cGUuQXJyYXkgfHxcbiAgICAgICAgICAhdGhpcy5maWVsZHNbZmlyZXN0b3JlRmllbGROYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8VEJhc2U+XSlcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIFt3aGVyZShmaXJlc3RvcmVGaWVsZE5hbWUsICdhcnJheS1jb250YWlucycsIG9wdGlvbnMudmFsdWUpXVxuICAgICAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpICYmIGlzTmlsKG9wdGlvbnM/Lm9wZXJhdG9yKSAmJiBpc05pbChvcHRpb25zPy52YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLnJlZHVjZShcbiAgICAgICAgICAocXVlcmllcywga2V5KSA9PiBbXG4gICAgICAgICAgICAuLi5xdWVyaWVzLFxuICAgICAgICAgICAgLi4udGhpcy5idWlsZFdoZXJlU2VudGVuY2UoYCR7ZmllbGROYW1lLnRvU3RyaW5nKCl9LiR7a2V5fWAsIGlzPFJlY29yZDxzdHJpbmcsIGFueT4+KG9wdGlvbnMpW2tleV0pLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgW10sXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFt3aGVyZShmaXJlc3RvcmVGaWVsZE5hbWUsIChvcHRpb25zPy5vcGVyYXRvciBhcyBXaGVyZUZpbHRlck9wKSB8fCAnPT0nLCBvcHRpb25zPy52YWx1ZSB8fCBvcHRpb25zKV1cbiAgICB9XG5cbiAgICBtYWtlRmlyZXN0b3JlT3JkZXJCeSA9IChcbiAgICAgIGZpbHRlcnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8VEJhc2U+LFxuICAgICAgZmllbGRzVG9PcmRlckJ5PzogUmVwb3NpdG9yeU9yZGVyQnk8VEJhc2U+LFxuICAgICk6IFF1ZXJ5Q29uc3RyYWludFtdID0+IHtcbiAgICAgIGNvbnN0IG9yZGVyQnlLZXlzID0gT2JqZWN0LmtleXMoZmllbGRzVG9PcmRlckJ5IHx8IHt9KVxuXG4gICAgICBpZiAoIW9yZGVyQnlLZXlzLmxlbmd0aCkgcmV0dXJuIFtdXG5cbiAgICAgIGNvbnN0IGZpbHRlcnNLZXlzV2l0aFVub3JkZXJlZCA9IE9iamVjdC5rZXlzKGZpbHRlcnMgfHwge30pLmZpbHRlcihcbiAgICAgICAgKGZpbHRlcktleSkgPT4gIW9yZGVyQnlLZXlzLmluY2x1ZGVzKGZpbHRlcktleSksXG4gICAgICApXG5cbiAgICAgIGlmIChmaWx0ZXJzS2V5c1dpdGhVbm9yZGVyZWQubGVuZ3RoKVxuICAgICAgICBmaWx0ZXJzS2V5c1dpdGhVbm9yZGVyZWQuZm9yRWFjaChcbiAgICAgICAgICAoZmlsdGVyS2V5KSA9PlxuICAgICAgICAgICAgKGZpZWxkc1RvT3JkZXJCeSA9IHtcbiAgICAgICAgICAgICAgLi4uKCFbV2hlcmUuRVFVQUxTXS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICBpczxSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxUQmFzZSwgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFRCYXNlPj4+KFxuICAgICAgICAgICAgICAgICAgZmlsdGVyc1tmaWx0ZXJLZXkgYXMgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFRCYXNlPl0sXG4gICAgICAgICAgICAgICAgKS5vcGVyYXRvcixcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgID8geyBbZmlsdGVyS2V5XTogJ2FzYycgfVxuICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAuLi5maWVsZHNUb09yZGVyQnksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKVxuXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoZmllbGRzVG9PcmRlckJ5KS5tYXAoKGZpZWxkTmFtZSkgPT5cbiAgICAgICAgb3JkZXJCeShmaWVsZE5hbWUsIGZpZWxkc1RvT3JkZXJCeVtmaWVsZE5hbWUgYXMgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFRCYXNlPl0pLFxuICAgICAgKVxuICAgIH1cblxuICAgIGFzeW5jIGRlZmluZUxpbWl0cyhcbiAgICAgIGZpbHRlcnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8VEJhc2U+LFxuICAgICAgbGltaXRzOiBSZXBvc2l0b3J5TGltaXRPcHRpb25zPFRCYXNlPixcbiAgICApOiBQcm9taXNlPFF1ZXJ5Q29uc3RyYWludFtdPiB7XG4gICAgICBjb25zdCBxdWVyaWVzID0gW11cblxuICAgICAgaWYgKGxpbWl0cz8ub2Zmc2V0KSB7XG4gICAgICAgIGlmICh0aGlzLm1vZGVsLmlzTW9kZWwobGltaXRzLm9mZnNldCkpXG4gICAgICAgICAgcXVlcmllcy5wdXNoKFxuICAgICAgICAgICAgc3RhcnRBZnRlcihcbiAgICAgICAgICAgICAgYXdhaXQgZ2V0RG9jKFxuICAgICAgICAgICAgICAgIGRvYyh0aGlzLmNvbGxlY3Rpb24odGhpcy5idWlsZENvbGxlY3Rpb25QYXRoRm9yRmluZChmaWx0ZXJzKSksIGxpbWl0cy5vZmZzZXQuaWRlbnRpZmllci5zaGlmdCgpKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKVxuICAgICAgICBlbHNlIGlmIChpc051bWJlcihsaW1pdHMub2Zmc2V0KSB8fCBpc1N0cmluZyhsaW1pdHMub2Zmc2V0KSkgcXVlcmllcy5wdXNoKHN0YXJ0QXQobGltaXRzLm9mZnNldCkpXG4gICAgICB9XG4gICAgICBpZiAobGltaXRzPy5saW1pdCkgcXVlcmllcy5wdXNoKGxpbWl0KGxpbWl0cy5saW1pdCkpXG5cbiAgICAgIHJldHVybiBxdWVyaWVzXG4gICAgfVxuXG4gICAgY2FsY3VsYXRlQ291bnQoZGF0YTogVEJhc2VbXSwgbGltaXRzOiBSZXBvc2l0b3J5TGltaXRPcHRpb25zPFRCYXNlPik6IG51bWJlciB7XG4gICAgICBpZiAoZGF0YS5sZW5ndGggPD0gMCkgcmV0dXJuIDBcbiAgICAgIGlmIChkYXRhLmxlbmd0aCA8IGxpbWl0cz8ubGltaXQpIHJldHVybiBkYXRhLmxlbmd0aFxuXG4gICAgICByZXR1cm4gSW5maW5pdHlcbiAgICB9XG4gIH0gYXMgYW55XG59XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1maW5kLWZpcmVzdG9yZS5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2ZpcmViYXNlL2ZpcmVzdG9yZS9taXhpbnMvd2l0aC1maW5kLWZpcmVzdG9yZS5taXhpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsR0FBRyxFQUNILE1BQU0sRUFDTixPQUFPLEVBQ1AsS0FBSyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBRUwsVUFBVSxFQUNWLE9BQU8sRUFDUCxLQUFLLEdBRU4sTUFBTSxvQkFBb0IsQ0FBQTtBQUUzQixPQUFPLEVBV0wsS0FBSyxHQUNOLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUNMLEVBQUUsRUFDRixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUdSLEdBQUcsR0FDSixNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUc3QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUkvQixTQUFnRixFQUloRixFQUFFO0lBQ0YsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLE1BQVcsRUFBdUQsRUFBRSxDQUNqRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDMUIsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE1BQXVDLEVBQU8sRUFBRTtRQUMxRSxPQUFPLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7SUFDOUQsQ0FBQyxDQUFBO0lBQ0QsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQ3ZDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxD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Q0UsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO29CQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO2FBQ2xHO1lBQ0QsSUFBSSxNQUFNLEVBQUUsS0FBSztnQkFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtZQUVwRCxPQUFPLE9BQU8sQ0FBQTtRQUNoQixDQUFDO1FBRUQsY0FBYyxDQUFDLElBQWEsRUFBRSxNQUFxQztZQUNqRSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQztnQkFBRSxPQUFPLENBQUMsQ0FBQTtZQUM5QixJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxFQUFFLEtBQUs7Z0JBQUUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFBO1lBRW5ELE9BQU8sUUFBUSxDQUFBO1FBQ2pCLENBQUM7S0FDSyxDQUFBO0FBQ1YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29sbGVjdGlvblJlZmVyZW5jZSxcbiAgZG9jLFxuICBnZXREb2MsXG4gIGdldERvY3MsXG4gIGxpbWl0LFxuICBvcmRlckJ5LFxuICBxdWVyeSxcbiAgUXVlcnlDb25zdHJhaW50LFxuICBzdGFydEFmdGVyLFxuICBzdGFydEF0LFxuICB3aGVyZSxcbiAgV2hlcmVGaWx0ZXJPcCxcbn0gZnJvbSAnZmlyZWJhc2UvZmlyZXN0b3JlJ1xuXG5pbXBvcnQge1xuICBGaW5kUmVwb3NpdG9yeSxcbiAgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzLFxuICBOb25GdW5jdGlvblByb3BlcnR5TmFtZXMsXG4gIFJlcG9zaXRvcnlGaW5kRmllbGQsXG4gIFJlcG9zaXRvcnlGaW5kRmllbHRlcnMsXG4gIFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zLFxuICBSZXBvc2l0b3J5RmluZFJlc3VsdCxcbiAgUmVwb3NpdG9yeUxpbWl0T3B0aW9ucyxcbiAgUmVwb3NpdG9yeU9yZGVyQnksXG4gIFdoZXJlLFxufSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nXG5pbXBvcnQge1xuICBpcyxcbiAgaXNEYXRlLFxuICBpc05pbCxcbiAgaXNOdW1iZXIsXG4gIGlzT2JqZWN0LFxuICBpc1N0cmluZyxcbiAgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtcyxcbiAgTWl4aW5DdG9yLFxuICBzZXQsXG59IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgRmlyZXN0b3JlRmllbGRUeXBlIH0gZnJvbSAnLi4vZW51bXMnXG5pbXBvcnQgeyBGaXJlc3RvcmVIZWxwZXJzLCBGaXJlc3RvcmVSZXBvc2l0b3J5IH0gZnJvbSAnLi4vdHlwZXMnXG5cbmV4cG9ydCBjb25zdCB3aXRoRmluZEZpcmVzdG9yZSA9IDxcbiAgVEJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUsXG4gIFRNaXhpbkJhc2UgZXh0ZW5kcyBNaXhpbkN0b3I8RmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4+LFxuPihcbiAgTWl4aW5CYXNlOiBNaXhpbkN0b3I8RmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4gJiBGaXJlc3RvcmVIZWxwZXJzPiAmIFRNaXhpbkJhc2UsXG4pOiBNaXhpbkN0b3I8XG4gIEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+ICYgSW5zdGFuY2VUeXBlPFRNaXhpbkJhc2U+ICYgRmluZFJlcG9zaXRvcnk8VEJhc2U+ICYgRmlyZXN0b3JlSGVscGVycyxcbiAgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtczx7fVtdLCBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VE1peGluQmFzZT4+XG4+ID0+IHtcbiAgY29uc3QgY2hlY2tJZklzRmlsdGVyT3B0aW9uID0gKGZpbHRlcjogYW55KTogZmlsdGVyIGlzIFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPFRCYXNlLCBhbnk+ID0+XG4gICAgIWlzTmlsKGZpbHRlcj8ub3BlcmF0b3IpXG4gIGNvbnN0IGdldFZhbHVlRnJvbUZpbHRlciA9IChmaWx0ZXI6IFJlcG9zaXRvcnlGaW5kRmllbGQ8VEJhc2UsIGFueT4pOiBhbnkgPT4ge1xuICAgIHJldHVybiBjaGVja0lmSXNGaWx0ZXJPcHRpb24oZmlsdGVyKSA/IGZpbHRlci52YWx1ZSA6IGZpbHRlclxuICB9XG4gIGNvbnN0IGdldEZpbmFsVmFsdWVGcm9tID0gKHZhbHVlOiBhbnkpID0+XG4gICAgaXNOdW1iZXIodmFsdWUpIHx8IGlzU3RyaW5nKHZhbHVlKSB8fCBpc0RhdGUodmFsdWUpIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICA/IHZhbHVlXG4gICAgICA6IE9iamVjdC52YWx1ZXMoZ2V0RmluYWxWYWx1ZUZyb20pXG5cbiAgcmV0dXJuIGNsYXNzIEZpbmRGaXJlc3RvcmUgZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBGaW5kUmVwb3NpdG9yeTxUQmFzZT4ge1xuICAgIGFzeW5jIGZpbmQoe1xuICAgICAgZmlsdGVycyxcbiAgICAgIGxpbWl0cyxcbiAgICAgIG9yZGVyQnksXG4gICAgfToge1xuICAgICAgZmlsdGVycz86IFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8VEJhc2U+XG4gICAgICBsaW1pdHM/OiBSZXBvc2l0b3J5TGltaXRPcHRpb25zPFRCYXNlPlxuICAgICAgb3JkZXJCeT86IFJlcG9zaXRvcnlPcmRlckJ5PFRCYXNlPlxuICAgIH0gPSB7fSk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8VEJhc2U+PiB7XG4gICAgICBjb25zdCBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uUmVmZXJlbmNlPFRCYXNlPiA9IHRoaXMuY29sbGVjdGlvbih0aGlzLmJ1aWxkQ29sbGVjdGlvblBhdGhGb3JGaW5kKGZpbHRlcnMpKVxuICAgICAgY29uc3QgcXVlcmllcyA9IHRoaXMubWFrZUZpcmVzdG9yZVdoZXJlKGZpbHRlcnMgfHwge30pXG4gICAgICBjb25zdCBvcmRpbmF0aW9uID0gdGhpcy5tYWtlRmlyZXN0b3JlT3JkZXJCeShmaWx0ZXJzLCBvcmRlckJ5KVxuICAgICAgY29uc3Qgb2Zmc2V0cyA9IGF3YWl0IHRoaXMuZGVmaW5lTGltaXRzKGZpbHRlcnMsIGxpbWl0cylcbiAgICAgIGNvbnN0IHF1ZXJ5QXJndW1tZW50czogUXVlcnlDb25zdHJhaW50W10gPSBbLi4ucXVlcmllcywgLi4ub3JkaW5hdGlvbiwgLi4ub2Zmc2V0c11cbiAgICAgIGNvbnN0IGRvY3MgPSBhd2FpdCBnZXREb2NzKHF1ZXJ5KGNvbGxlY3Rpb24sIC4uLnF1ZXJ5QXJndW1tZW50cykpXG4gICAgICBjb25zdCBkYXRhID0gZG9jcy5kb2NzLm1hcCgoZG9jKSA9PiBkb2MuZGF0YSgpKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhLFxuICAgICAgICBjb3VudDogdGhpcy5jYWxjdWxhdGVDb3VudChkYXRhLCBsaW1pdHMpLFxuICAgICAgfVxuICAgIH1cblxuICAgIGJ1aWxkQ29sbGVjdGlvblBhdGhGb3JGaW5kKGZpbHRlcnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8VEJhc2U+KTogc3RyaW5nIHtcbiAgICAgIGlmICghdGhpcy5pc1N1YkNvbGxlY3Rpb248VEJhc2U+KHRoaXMpKSByZXR1cm4gdGhpcy5jb2xsZWN0aW9uTmFtZVxuXG4gICAgICBjb25zdCBwYXJlbnRJZEZpZWxkID0gdGhpcy5wYXJlbnRJZEZpZWxkXG4gICAgICBjb25zdCBwYXJlbnRJZCA9IGdldFZhbHVlRnJvbUZpbHRlcihmaWx0ZXJzPy5bcGFyZW50SWRGaWVsZF0pXG5cbiAgICAgIHJldHVybiBgJHt0aGlzLnBhcmVudFJlcG9zaXRvcnkuY29sbGVjdGlvbk5hbWV9LyR7cGFyZW50SWR9LyR7dGhpcy5jb2xsZWN0aW9uTmFtZX1gXG4gICAgfVxuXG4gICAgbWFrZUZpcmVzdG9yZVdoZXJlID0gKGZpbHRlcjogUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxUQmFzZT4pOiBRdWVyeUNvbnN0cmFpbnRbXSA9PlxuICAgICAgT2JqZWN0LmtleXMoZmlsdGVyKS5yZWR1Y2UoXG4gICAgICAgIChxdWVyaWVzOiBRdWVyeUNvbnN0cmFpbnRbXSwgZmllbGROYW1lOiBzdHJpbmcpID0+IFtcbiAgICAgICAgICAuLi5xdWVyaWVzLFxuICAgICAgICAgIC4uLnRoaXMuYnVpbGRXaGVyZVNlbnRlbmNlKGZpZWxkTmFtZSwgaXMoZmlsdGVyW2ZpZWxkTmFtZSBhcyBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8VEJhc2U+XSkpLFxuICAgICAgICBdLFxuICAgICAgICBbXSxcbiAgICAgIClcblxuICAgIGJ1aWxkV2hlcmVTZW50ZW5jZSA9IChcbiAgICAgIGZpZWxkTmFtZTogTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFRCYXNlPiB8IHN0cmluZyxcbiAgICAgIG9wdGlvbnM6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPFRCYXNlLCBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8VEJhc2U+PixcbiAgICApOiBRdWVyeUNvbnN0cmFpbnRbXSA9PiB7XG4gICAgICBpZiAodGhpcy5pc1N1YkNvbGxlY3Rpb248VEJhc2U+KHRoaXMpICYmIGZpZWxkTmFtZSA9PT0gdGhpcy5wYXJlbnRJZEZpZWxkKSBbXVxuXG4gICAgICBjb25zdCB2YWx1ZSA9IG9wdGlvbnM/LnZhbHVlIHx8IG9wdGlvbnNcbiAgICAgIGNvbnN0IG9iamVjdCA9IHt9XG5cbiAgICAgIHNldChvYmplY3QsIGZpZWxkTmFtZSwgdmFsdWUpXG5cbiAgICAgIGNvbnN0IHBsYWluSW5zdGFuY2UgPSBuZXcgdGhpcy5tb2RlbChvYmplY3QpLnRvUGxhaW4oKVxuICAgICAgY29uc3QgZmlyZXN0b3JlRmllbGROYW1lID1cbiAgICAgICAgZmllbGROYW1lLnRvU3RyaW5nKCkuaW5kZXhPZignLicpID4gLTFcbiAgICAgICAgICA/IGZpZWxkTmFtZS50b1N0cmluZygpXG4gICAgICAgICAgOiBPYmplY3Qua2V5cyhwbGFpbkluc3RhbmNlKS5maW5kKChrZXkpID0+IHBsYWluSW5zdGFuY2Vba2V5XSlcblxuICAgICAgaWYgKG9wdGlvbnM/Lm9wZXJhdG9yID09PSBXaGVyZS5MSUtFKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBBcnJheS5pc0FycmF5KG9wdGlvbnM/LnZhbHVlKSAmJlxuICAgICAgICAgICh0aGlzLmZpZWxkc1tmaXJlc3RvcmVGaWVsZE5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxUQmFzZT5dID09PVxuICAgICAgICAgICAgRmlyZXN0b3JlRmllbGRUeXBlLkFycmF5IHx8XG4gICAgICAgICAgICAhdGhpcy5maWVsZHNbZmlyZXN0b3JlRmllbGROYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8VEJhc2U+XSlcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiBbd2hlcmUoZmlyZXN0b3JlRmllbGROYW1lLCAnYXJyYXktY29udGFpbnMtYW55Jywgb3B0aW9ucy52YWx1ZSldXG5cbiAgICAgICAgcmV0dXJuIFt3aGVyZShmaXJlc3RvcmVGaWVsZE5hbWUsICc+PScsIG9wdGlvbnMudmFsdWUpLCB3aGVyZShmaXJlc3RvcmVGaWVsZE5hbWUsICc8PScsIGAke29wdGlvbnMudmFsdWV9fmApXVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBvcHRpb25zPy5vcGVyYXRvciA9PT0gV2hlcmUuSU4gJiZcbiAgICAgICAgQXJyYXkuaXNBcnJheShvcHRpb25zPy52YWx1ZSkgJiZcbiAgICAgICAgKHRoaXMuZmllbGRzW2ZpcmVzdG9yZUZpZWxkTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFRCYXNlPl0gPT09IEZpcmVzdG9yZUZpZWxkVHlwZS5BcnJheSB8fFxuICAgICAgICAgICF0aGlzLmZpZWxkc1tmaXJlc3RvcmVGaWVsZE5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxUQmFzZT5dKVxuICAgICAgKVxuICAgICAgICByZXR1cm4gW3doZXJlKGZpcmVzdG9yZUZpZWxkTmFtZSwgJ2FycmF5LWNvbnRhaW5zJywgb3B0aW9ucy52YWx1ZSldXG4gICAgICBpZiAoaXNPYmplY3Qob3B0aW9ucykgJiYgaXNOaWwob3B0aW9ucz8ub3BlcmF0b3IpICYmIGlzTmlsKG9wdGlvbnM/LnZhbHVlKSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob3B0aW9ucykucmVkdWNlKFxuICAgICAgICAgIChxdWVyaWVzLCBrZXkpID0+IFtcbiAgICAgICAgICAgIC4uLnF1ZXJpZXMsXG4gICAgICAgICAgICAuLi50aGlzLmJ1aWxkV2hlcmVTZW50ZW5jZShgJHtmaWVsZE5hbWUudG9TdHJpbmcoKX0uJHtrZXl9YCwgaXM8UmVjb3JkPHN0cmluZywgYW55Pj4ob3B0aW9ucylba2V5XSksXG4gICAgICAgICAgXSxcbiAgICAgICAgICBbXSxcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gW3doZXJlKGZpcmVzdG9yZUZpZWxkTmFtZSwgKG9wdGlvbnM/Lm9wZXJhdG9yIGFzIFdoZXJlRmlsdGVyT3ApIHx8ICc9PScsIG9wdGlvbnM/LnZhbHVlIHx8IG9wdGlvbnMpXVxuICAgIH1cblxuICAgIG1ha2VGaXJlc3RvcmVPcmRlckJ5ID0gKFxuICAgICAgZmlsdGVyczogUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxUQmFzZT4sXG4gICAgICBmaWVsZHNUb09yZGVyQnk/OiBSZXBvc2l0b3J5T3JkZXJCeTxUQmFzZT4sXG4gICAgKTogUXVlcnlDb25zdHJhaW50W10gPT4ge1xuICAgICAgY29uc3Qgb3JkZXJCeUtleXMgPSBPYmplY3Qua2V5cyhmaWVsZHNUb09yZGVyQnkgfHwge30pXG5cbiAgICAgIGlmICghb3JkZXJCeUtleXMubGVuZ3RoKSByZXR1cm4gW11cblxuICAgICAgY29uc3QgZmlsdGVyc0tleXNXaXRoVW5vcmRlcmVkID0gT2JqZWN0LmtleXMoZmlsdGVycyB8fCB7fSkuZmlsdGVyKFxuICAgICAgICAoZmlsdGVyS2V5KSA9PiAhb3JkZXJCeUtleXMuaW5jbHVkZXMoZmlsdGVyS2V5KSxcbiAgICAgIClcblxuICAgICAgaWYgKGZpbHRlcnNLZXlzV2l0aFVub3JkZXJlZC5sZW5ndGgpXG4gICAgICAgIGZpbHRlcnNLZXlzV2l0aFVub3JkZXJlZC5mb3JFYWNoKFxuICAgICAgICAgIChmaWx0ZXJLZXkpID0+XG4gICAgICAgICAgICAoZmllbGRzVG9PcmRlckJ5ID0ge1xuICAgICAgICAgICAgICAuLi4oIVtXaGVyZS5FUVVBTFNdLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgIGlzPFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPFRCYXNlLCBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8VEJhc2U+Pj4oXG4gICAgICAgICAgICAgICAgICBmaWx0ZXJzW2ZpbHRlcktleSBhcyBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8VEJhc2U+XSxcbiAgICAgICAgICAgICAgICApLm9wZXJhdG9yLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgPyB7IFtmaWx0ZXJLZXldOiAnYXNjJyB9XG4gICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgIC4uLmZpZWxkc1RvT3JkZXJCeSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApXG5cbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhmaWVsZHNUb09yZGVyQnkpLm1hcCgoZmllbGROYW1lKSA9PlxuICAgICAgICBvcmRlckJ5KGZpZWxkTmFtZSwgZmllbGRzVG9PcmRlckJ5W2ZpZWxkTmFtZSBhcyBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8VEJhc2U+XSksXG4gICAgICApXG4gICAgfVxuXG4gICAgYXN5bmMgZGVmaW5lTGltaXRzKFxuICAgICAgZmlsdGVyczogUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxUQmFzZT4sXG4gICAgICBsaW1pdHM6IFJlcG9zaXRvcnlMaW1pdE9wdGlvbnM8VEJhc2U+LFxuICAgICk6IFByb21pc2U8UXVlcnlDb25zdHJhaW50W10+IHtcbiAgICAgIGNvbnN0IHF1ZXJpZXMgPSBbXVxuXG4gICAgICBpZiAobGltaXRzPy5vZmZzZXQpIHtcbiAgICAgICAgaWYgKHRoaXMubW9kZWwuaXNNb2RlbChsaW1pdHMub2Zmc2V0KSlcbiAgICAgICAgICBxdWVyaWVzLnB1c2goXG4gICAgICAgICAgICBzdGFydEFmdGVyKFxuICAgICAgICAgICAgICBhd2FpdCBnZXREb2MoXG4gICAgICAgICAgICAgICAgZG9jKFxuICAgICAgICAgICAgICAgICAgdGhpcy5jb2xsZWN0aW9uKHRoaXMuYnVpbGRDb2xsZWN0aW9uUGF0aEZvckZpbmQoZmlsdGVycykpLFxuICAgICAgICAgICAgICAgICAgbGltaXRzLm9mZnNldC5pZGVudGlmaWVyW2xpbWl0cy5vZmZzZXQuaWRlbnRpZmllcnNGaWVsZHM/LnNoaWZ0KCldLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApLFxuICAgICAgICAgIClcbiAgICAgICAgZWxzZSBpZiAoaXNOdW1iZXIobGltaXRzLm9mZnNldCkgfHwgaXNTdHJpbmcobGltaXRzLm9mZnNldCkpIHF1ZXJpZXMucHVzaChzdGFydEF0KGxpbWl0cy5vZmZzZXQpKVxuICAgICAgfVxuICAgICAgaWYgKGxpbWl0cz8ubGltaXQpIHF1ZXJpZXMucHVzaChsaW1pdChsaW1pdHMubGltaXQpKVxuXG4gICAgICByZXR1cm4gcXVlcmllc1xuICAgIH1cblxuICAgIGNhbGN1bGF0ZUNvdW50KGRhdGE6IFRCYXNlW10sIGxpbWl0czogUmVwb3NpdG9yeUxpbWl0T3B0aW9uczxUQmFzZT4pOiBudW1iZXIge1xuICAgICAgaWYgKGRhdGEubGVuZ3RoIDw9IDApIHJldHVybiAwXG4gICAgICBpZiAoZGF0YS5sZW5ndGggPCBsaW1pdHM/LmxpbWl0KSByZXR1cm4gZGF0YS5sZW5ndGhcblxuICAgICAgcmV0dXJuIEluZmluaXR5XG4gICAgfVxuICB9IGFzIGFueVxufVxuIl19
@@ -54,4 +54,4 @@ export const withFirestore = (MixinBase) => {
54
54
  }
55
55
  };
56
56
  };
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1maXJlc3RvcmUubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvbWl4aW5zL3dpdGgtZmlyZXN0b3JlLm1peGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXVFLE1BQU0sb0JBQW9CLENBQUE7QUFZcEgsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQzNCLFNBQVksRUFDc0MsRUFBRTtJQUNwRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsSUFBUyxFQUFXLEVBQUUsQ0FDaEQsSUFBSTtRQUNKLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDcEIsT0FBTyxJQUFJLEtBQUssUUFBUTtRQUN4QixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksS0FBSyxXQUFXO1FBQ3RDLENBQUMsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUE7SUFDdEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUF5QixFQUFFLE9BQWUsRUFBdUIsRUFBRTtRQUNuRixJQUFJLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxLQUFLLFdBQVc7WUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNoRSxJQUFJLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksU0FBUyxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDL0YsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFbkcsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDLENBQUE7SUFDRCxNQUFNLHFCQUFxQixHQUFHLENBQUMsSUFBeUIsRUFBMEQsRUFBRTtRQUNsSCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUM3QixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEIsR0FBRyxNQUFNO1lBQ1QsQ0FBQyxHQUFHLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDMUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDM0csQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDO1NBQzdCLENBQUMsRUFDRixFQUE0RCxDQUM3RCxDQUFBO0lBQ0gsQ0FBQyxDQUFBO0lBRUQsT0FBTyxLQUFNLFNBQVEsU0FBUztRQUF2Qjs7WUFFTCxtQkFBYyxHQUFXLEVBQUUsQ0FBQTtRQWtDN0IsQ0FBQztRQTlCQyxVQUFVLENBQUMsSUFBYTtZQUN0QixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUE7UUFDekcsQ0FBQztRQUVELGtCQUFrQjtZQUloQixPQUFPO2dCQUNMLFdBQVcsRUFBRSxDQUFDLElBQVcsRUFBZ0IsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ25GLGFBQWEsRUFBRSxDQUFDLElBQWtDLEVBQVMsRUFBRTtvQkFDM0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO29CQUN4QixJQUFJLFVBQVUsR0FBMkQsSUFBSSxDQUFBO29CQUU3RSxJQUFJO3dCQUNGLE1BQU0sR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQTt3QkFFM0IsVUFBVSxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFBO3dCQUV4QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFBO3FCQUN4RDtvQkFBQyxPQUFPLEtBQUssRUFBRTt3QkFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7d0JBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTt3QkFDaEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTt3QkFFcEIsTUFBTSxLQUFLLENBQUE7cUJBQ1o7Z0JBQ0gsQ0FBQzthQUNGLENBQUE7UUFDSCxDQUFDO0tBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbGxlY3Rpb24sIENvbGxlY3Rpb25SZWZlcmVuY2UsIERvY3VtZW50RGF0YSwgRmlyZXN0b3JlLCBRdWVyeURvY3VtZW50U25hcHNob3QgfSBmcm9tICdmaXJlYmFzZS9maXJlc3RvcmUnXG5cbmltcG9ydCB7XG4gIEJhc2VNb2RlbEJ1aWxkZXIsXG4gIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydGllc1dpdGhOb1BhcnRpYWwsXG4gIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXMsXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IE1peGluQ3RvciB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgRmlyZXN0b3JlRmllbGRUeXBlIH0gZnJvbSAnLi4vZW51bXMnXG5pbXBvcnQgeyBGaXJlc3RvcmVSZXBvc2l0b3J5IH0gZnJvbSAnLi4vdHlwZXMnXG5cbmV4cG9ydCBjb25zdCB3aXRoRmlyZXN0b3JlID0gPFRCYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlLCBUIGV4dGVuZHMgTWl4aW5DdG9yID0gTWl4aW5DdG9yPihcbiAgTWl4aW5CYXNlOiBULFxuKTogTWl4aW5DdG9yPEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+LCB1bmtub3duW10+ID0+IHtcbiAgY29uc3QgaXNPYmplY3RzQW5kTm9EYXRlID0gKGRhdGE6IGFueSk6IGJvb2xlYW4gPT5cbiAgICBkYXRhICYmXG4gICAgIUFycmF5LmlzQXJyYXkoZGF0YSkgJiZcbiAgICB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiZcbiAgICBkYXRhPy5jb25zdHJ1Y3Rvci5uYW1lICE9PSAnVGltZXN0YW1wJyAmJlxuICAgICEoJ3NlY29uZHMnIGluIGRhdGEpXG4gIGNvbnN0IGJpbmREYXRlID0gKGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4sIGtleU5hbWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIGFueT4gPT4ge1xuICAgIGlmIChkYXRhPy5jb25zdHJ1Y3Rvci5uYW1lID09PSAnVGltZXN0YW1wJykgcmV0dXJuIGRhdGEudG9EYXRlKClcbiAgICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgJ3NlY29uZHMnIGluIGRhdGEpIHJldHVybiBuZXcgRGF0ZShkYXRhLnNlY29uZHMgKiAxMDAwKVxuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ251bWJlcicgJiYgWydjcmVhdGVkQXQnLCAndXBkYXRlZEF0J10uaW5jbHVkZXMoa2V5TmFtZSkpIHJldHVybiBuZXcgRGF0ZShkYXRhKVxuXG4gICAgcmV0dXJuIGRhdGFcbiAgfVxuICBjb25zdCBiaW5kQWxsRGF0ZUZyb21PYmplY3QgPSAoZGF0YTogUmVjb3JkPHN0cmluZywgYW55Pik6IE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnRpZXNXaXRoTm9QYXJ0aWFsPFRCYXNlPiA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGRhdGEpLnJlZHVjZShcbiAgICAgIChvYmplY3QsIGtleSkgPT4gKHtcbiAgICAgICAgLi4ub2JqZWN0LFxuICAgICAgICBba2V5XTogaXNPYmplY3RzQW5kTm9EYXRlKGRhdGFba2V5XSlcbiAgICAgICAgICA/IGJpbmRBbGxEYXRlRnJvbU9iamVjdChkYXRhW2tleV0pXG4gICAgICAgICAgOiBBcnJheS5pc0FycmF5KGRhdGFba2V5XSlcbiAgICAgICAgICA/IGRhdGFba2V5XS5tYXAoKGVsZW1lbnQ6IGFueSkgPT4gKGlzT2JqZWN0c0FuZE5vRGF0ZShlbGVtZW50KSA/IGJpbmRBbGxEYXRlRnJvbU9iamVjdChlbGVtZW50KSA6IGVsZW1lbnQpKVxuICAgICAgICAgIDogYmluZERhdGUoZGF0YVtrZXldLCBrZXkpLFxuICAgICAgfSksXG4gICAgICB7fSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0aWVzV2l0aE5vUGFydGlhbDxUQmFzZT4sXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGNsYXNzIGV4dGVuZHMgTWl4aW5CYXNlIGltcGxlbWVudHMgRmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4ge1xuICAgIHJlYWRvbmx5IGZpcmVzdG9yZT86IEZpcmVzdG9yZVxuICAgIGNvbGxlY3Rpb25OYW1lOiBzdHJpbmcgPSAnJ1xuICAgIG1vZGVsOiBCYXNlTW9kZWxCdWlsZGVyPFRCYXNlPlxuICAgIGZpZWxkczogUmVjb3JkPE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8VEJhc2U+LCBGaXJlc3RvcmVGaWVsZFR5cGU+XG5cbiAgICBjb2xsZWN0aW9uKHBhdGg/OiBzdHJpbmcpOiBDb2xsZWN0aW9uUmVmZXJlbmNlPFRCYXNlPiB7XG4gICAgICByZXR1cm4gY29sbGVjdGlvbih0aGlzLmZpcmVzdG9yZSwgcGF0aCB8fCB0aGlzLmNvbGxlY3Rpb25OYW1lKS53aXRoQ29udmVydGVyKHRoaXMuYnVpbGRNb2RlbEluc3RhbmNlKCkpXG4gICAgfVxuXG4gICAgYnVpbGRNb2RlbEluc3RhbmNlKCk6IHtcbiAgICAgIHRvRmlyZXN0b3JlOiAoZGF0YTogVEJhc2UpID0+IERvY3VtZW50RGF0YVxuICAgICAgZnJvbUZpcmVzdG9yZTogKHNuYXA6IFF1ZXJ5RG9jdW1lbnRTbmFwc2hvdDxUQmFzZT4pID0+IFRCYXNlXG4gICAgfSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0b0ZpcmVzdG9yZTogKGRhdGE6IFRCYXNlKTogRG9jdW1lbnREYXRhID0+IChkYXRhPy50b1BsYWluID8gZGF0YS50b1BsYWluKCkgOiBkYXRhKSxcbiAgICAgICAgZnJvbUZpcmVzdG9yZTogKHNuYXA6IFF1ZXJ5RG9jdW1lbnRTbmFwc2hvdDxUQmFzZT4pOiBUQmFzZSA9PiB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IHNuYXAuZGF0YSgpXG4gICAgICAgICAgbGV0IGJpbmRlZERhdGE6IE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnRpZXNXaXRoTm9QYXJ0aWFsPFRCYXNlPiA9IG51bGxcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBpZHMgPSB7IGlkOiBzbmFwLmlkIH1cblxuICAgICAgICAgICAgYmluZGVkRGF0YSA9IGJpbmRBbGxEYXRlRnJvbU9iamVjdChkYXRhKVxuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tb2RlbC50b0luc3RhbmNlKHsgLi4uYmluZGVkRGF0YSwgLi4uaWRzIH0pXG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuaW5mbygnaWQnLCBzbmFwLmlkKVxuICAgICAgICAgICAgY29uc29sZS5pbmZvKCdkYXRhJywgSlNPTi5zdHJpbmdpZnkoYmluZGVkRGF0YSkpXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuXG4gICAgICAgICAgICB0aHJvdyBlcnJvclxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1maXJlc3RvcmUubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvbWl4aW5zL3dpdGgtZmlyZXN0b3JlLm1peGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXVFLE1BQU0sb0JBQW9CLENBQUE7QUFZcEgsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQzNCLFNBQVksRUFDc0MsRUFBRTtJQUNwRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsSUFBUyxFQUFXLEVBQUUsQ0FDaEQsSUFBSTtRQUNKLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDcEIsT0FBTyxJQUFJLEtBQUssUUFBUTtRQUN4QixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksS0FBSyxXQUFXO1FBQ3RDLENBQUMsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUE7SUFDdEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFTLEVBQUUsT0FBZSxFQUF1QixFQUFFO1FBQ25FLElBQUksSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLEtBQUssV0FBVztZQUFFLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQ2hFLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxTQUFTLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQTtRQUMvRixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUVuRyxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUMsQ0FBQTtJQUNELE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxJQUF5QixFQUEwRCxFQUFFO1FBQ2xILE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQzdCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNoQixHQUFHLE1BQU07WUFDVCxDQUFDLEdBQUcsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUMxQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUMzRyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUM7U0FDN0IsQ0FBQyxFQUNGLEVBQTRELENBQzdELENBQUE7SUFDSCxDQUFDLENBQUE7SUFFRCxPQUFPLEtBQU0sU0FBUSxTQUFTO1FBQXZCOztZQUVMLG1CQUFjLEdBQVcsRUFBRSxDQUFBO1FBa0M3QixDQUFDO1FBOUJDLFVBQVUsQ0FBQyxJQUFhO1lBQ3RCLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQTtRQUN6RyxDQUFDO1FBRUQsa0JBQWtCO1lBSWhCLE9BQU87Z0JBQ0wsV0FBVyxFQUFFLENBQUMsSUFBVyxFQUFnQixFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDbkYsYUFBYSxFQUFFLENBQUMsSUFBa0MsRUFBUyxFQUFFO29CQUMzRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7b0JBQ3hCLElBQUksVUFBVSxHQUEyRCxJQUFJLENBQUE7b0JBRTdFLElBQUk7d0JBQ0YsTUFBTSxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFBO3dCQUUzQixVQUFVLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUE7d0JBRXhDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLFVBQVUsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUE7cUJBQ3hEO29CQUFDLE9BQU8sS0FBSyxFQUFFO3dCQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTt3QkFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO3dCQUNoRCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO3dCQUVwQixNQUFNLEtBQUssQ0FBQTtxQkFDWjtnQkFDSCxDQUFDO2FBQ0YsQ0FBQTtRQUNILENBQUM7S0FDRixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29sbGVjdGlvbiwgQ29sbGVjdGlvblJlZmVyZW5jZSwgRG9jdW1lbnREYXRhLCBGaXJlc3RvcmUsIFF1ZXJ5RG9jdW1lbnRTbmFwc2hvdCB9IGZyb20gJ2ZpcmViYXNlL2ZpcmVzdG9yZSdcblxuaW1wb3J0IHtcbiAgQmFzZU1vZGVsQnVpbGRlcixcbiAgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0aWVzV2l0aE5vUGFydGlhbCxcbiAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lcyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgTWl4aW5DdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBGaXJlc3RvcmVGaWVsZFR5cGUgfSBmcm9tICcuLi9lbnVtcydcbmltcG9ydCB7IEZpcmVzdG9yZVJlcG9zaXRvcnkgfSBmcm9tICcuLi90eXBlcydcblxuZXhwb3J0IGNvbnN0IHdpdGhGaXJlc3RvcmUgPSA8VEJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUsIFQgZXh0ZW5kcyBNaXhpbkN0b3IgPSBNaXhpbkN0b3I+KFxuICBNaXhpbkJhc2U6IFQsXG4pOiBNaXhpbkN0b3I8RmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4sIHVua25vd25bXT4gPT4ge1xuICBjb25zdCBpc09iamVjdHNBbmROb0RhdGUgPSAoZGF0YTogYW55KTogYm9vbGVhbiA9PlxuICAgIGRhdGEgJiZcbiAgICAhQXJyYXkuaXNBcnJheShkYXRhKSAmJlxuICAgIHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJlxuICAgIGRhdGE/LmNvbnN0cnVjdG9yLm5hbWUgIT09ICdUaW1lc3RhbXAnICYmXG4gICAgISgnc2Vjb25kcycgaW4gZGF0YSlcbiAgY29uc3QgYmluZERhdGUgPSAoZGF0YTogYW55LCBrZXlOYW1lOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0+IHtcbiAgICBpZiAoZGF0YT8uY29uc3RydWN0b3IubmFtZSA9PT0gJ1RpbWVzdGFtcCcpIHJldHVybiBkYXRhLnRvRGF0ZSgpXG4gICAgaWYgKGRhdGEgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmICdzZWNvbmRzJyBpbiBkYXRhKSByZXR1cm4gbmV3IERhdGUoZGF0YS5zZWNvbmRzICogMTAwMClcbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdudW1iZXInICYmIFsnY3JlYXRlZEF0JywgJ3VwZGF0ZWRBdCddLmluY2x1ZGVzKGtleU5hbWUpKSByZXR1cm4gbmV3IERhdGUoZGF0YSlcblxuICAgIHJldHVybiBkYXRhXG4gIH1cbiAgY29uc3QgYmluZEFsbERhdGVGcm9tT2JqZWN0ID0gKGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0aWVzV2l0aE5vUGFydGlhbDxUQmFzZT4gPT4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhkYXRhKS5yZWR1Y2UoXG4gICAgICAob2JqZWN0LCBrZXkpID0+ICh7XG4gICAgICAgIC4uLm9iamVjdCxcbiAgICAgICAgW2tleV06IGlzT2JqZWN0c0FuZE5vRGF0ZShkYXRhW2tleV0pXG4gICAgICAgICAgPyBiaW5kQWxsRGF0ZUZyb21PYmplY3QoZGF0YVtrZXldKVxuICAgICAgICAgIDogQXJyYXkuaXNBcnJheShkYXRhW2tleV0pXG4gICAgICAgICAgPyBkYXRhW2tleV0ubWFwKChlbGVtZW50OiBhbnkpID0+IChpc09iamVjdHNBbmROb0RhdGUoZWxlbWVudCkgPyBiaW5kQWxsRGF0ZUZyb21PYmplY3QoZWxlbWVudCkgOiBlbGVtZW50KSlcbiAgICAgICAgICA6IGJpbmREYXRlKGRhdGFba2V5XSwga2V5KSxcbiAgICAgIH0pLFxuICAgICAge30gYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydGllc1dpdGhOb1BhcnRpYWw8VEJhc2U+LFxuICAgIClcbiAgfVxuXG4gIHJldHVybiBjbGFzcyBleHRlbmRzIE1peGluQmFzZSBpbXBsZW1lbnRzIEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+IHtcbiAgICByZWFkb25seSBmaXJlc3RvcmU/OiBGaXJlc3RvcmVcbiAgICBjb2xsZWN0aW9uTmFtZTogc3RyaW5nID0gJydcbiAgICBtb2RlbDogQmFzZU1vZGVsQnVpbGRlcjxUQmFzZT5cbiAgICBmaWVsZHM6IFJlY29yZDxOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFRCYXNlPiwgRmlyZXN0b3JlRmllbGRUeXBlPlxuXG4gICAgY29sbGVjdGlvbihwYXRoPzogc3RyaW5nKTogQ29sbGVjdGlvblJlZmVyZW5jZTxUQmFzZT4ge1xuICAgICAgcmV0dXJuIGNvbGxlY3Rpb24odGhpcy5maXJlc3RvcmUsIHBhdGggfHwgdGhpcy5jb2xsZWN0aW9uTmFtZSkud2l0aENvbnZlcnRlcih0aGlzLmJ1aWxkTW9kZWxJbnN0YW5jZSgpKVxuICAgIH1cblxuICAgIGJ1aWxkTW9kZWxJbnN0YW5jZSgpOiB7XG4gICAgICB0b0ZpcmVzdG9yZTogKGRhdGE6IFRCYXNlKSA9PiBEb2N1bWVudERhdGFcbiAgICAgIGZyb21GaXJlc3RvcmU6IChzbmFwOiBRdWVyeURvY3VtZW50U25hcHNob3Q8VEJhc2U+KSA9PiBUQmFzZVxuICAgIH0ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdG9GaXJlc3RvcmU6IChkYXRhOiBUQmFzZSk6IERvY3VtZW50RGF0YSA9PiAoZGF0YT8udG9QbGFpbiA/IGRhdGEudG9QbGFpbigpIDogZGF0YSksXG4gICAgICAgIGZyb21GaXJlc3RvcmU6IChzbmFwOiBRdWVyeURvY3VtZW50U25hcHNob3Q8VEJhc2U+KTogVEJhc2UgPT4ge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSBzbmFwLmRhdGEoKVxuICAgICAgICAgIGxldCBiaW5kZWREYXRhOiBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0aWVzV2l0aE5vUGFydGlhbDxUQmFzZT4gPSBudWxsXG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgaWRzID0geyBpZDogc25hcC5pZCB9XG5cbiAgICAgICAgICAgIGJpbmRlZERhdGEgPSBiaW5kQWxsRGF0ZUZyb21PYmplY3QoZGF0YSlcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwudG9JbnN0YW5jZSh7IC4uLmJpbmRlZERhdGEsIC4uLmlkcyB9KVxuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmluZm8oJ2lkJywgc25hcC5pZClcbiAgICAgICAgICAgIGNvbnNvbGUuaW5mbygnZGF0YScsIEpTT04uc3RyaW5naWZ5KGJpbmRlZERhdGEpKVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcilcblxuICAgICAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -45,4 +45,4 @@ export const withUpdateFirestore = (MixinBase) => {
45
45
  }
46
46
  };
47
47
  };
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC11cGRhdGUtZmlyZXN0b3JlLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL21peGlucy93aXRoLXVwZGF0ZS1maXJlc3RvcmUubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBYyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFMUcsT0FBTyxFQUlMLG1CQUFtQixHQUdwQixNQUFNLG9CQUFvQixDQUFBO0FBQzNCLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUErQyxNQUFNLG1CQUFtQixDQUFBO0FBUzFGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBSWpDLFNBQWdGLEVBSWhGLEVBQUU7SUFDRixNQUFNLGtCQUFrQixHQUFHLENBQ3pCLE1BQXFDLEVBQ3JDLEtBQXNDLEVBQ1ksRUFBRSxDQUNwRCxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQWtFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUMvRixDQUFDLENBQUMsRUFBRSxDQUFtRCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckUsQ0FBQyxDQUFDLEVBQUUsQ0FBa0UsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFBO0lBQ3ZHLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUE2QixFQUF3QixFQUFFO1FBQy9FLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7WUFBRSxPQUFPLE9BQU8sQ0FBQTtRQUMxQyxJQUFJLE9BQU8sRUFBRSxNQUFNLEtBQUssbUJBQW1CLENBQUMsWUFBWTtZQUFFLE9BQU8sV0FBVyxFQUFFLENBQUE7UUFDOUUsSUFBSSxPQUFPLEVBQUUsTUFBTSxLQUFLLG1CQUFtQixDQUFDLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQTtRQUM3RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLElBQUksT0FBTyxFQUFFLE1BQU0sS0FBSyxtQkFBbUIsQ0FBQyxLQUFLO2dCQUFFLE9BQU8sVUFBVSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3RGLElBQUksT0FBTyxFQUFFLE1BQU0sS0FBSyxtQkFBbUIsQ0FBQyxNQUFNO2dCQUFFLE9BQU8sV0FBVyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1NBQ3pGO1FBRUQsT0FBTyxPQUFPLEVBQUUsS0FBSyxDQUFBO0lBQ3ZCLENBQUMsQ0FBQTtJQUVELE9BQU8sTUFBTSxlQUFnQixTQUFRLFNBQVM7UUFDNUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFtQztZQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUM5QixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUE7WUFDaEQsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUN4RCxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQzlDLENBQUE7WUFFRCxNQUFNLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBRS9ELE1BQU0sT0FBTyxHQUFHLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBRXBDLE9BQU8sT0FBTyxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ3ZCLENBQUM7UUFFRCw0QkFBNEIsQ0FBQyxXQUEwQztZQUNyRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO2dCQUMvQixDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxJQUFJLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQzVGLElBQUksQ0FBQyxjQUNQLEVBQUU7Z0JBQ0osQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUE7UUFDekIsQ0FBQztRQUVELGFBQWEsQ0FBQyxNQUFxQztZQUNqRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO1lBRXhCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQUUsT0FBTyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7WUFFbEQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FDL0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNyQixHQUFHLElBQUk7Z0JBQ1AsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUF1QixFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQ3ZGLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxVQUFtQixDQUFDLENBQUMsQ0FDOUM7YUFDRixDQUFDLEVBQ0YsRUFBRSxDQUNILENBQUE7UUFDSCxDQUFDO0tBQ0ssQ0FBQTtBQUNWLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFycmF5UmVtb3ZlLCBhcnJheVVuaW9uLCBkZWxldGVGaWVsZCwgZG9jLCBGaWVsZFZhbHVlLCBnZXREb2MsIHNldERvYyB9IGZyb20gJ2ZpcmViYXNlL2ZpcmVzdG9yZSdcblxuaW1wb3J0IHtcbiAgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBOb25GdW5jdGlvblByb3BlcnR5TmFtZXMsXG4gIFJlcG9zaXRvcnlVcGRhdGVQYXJhbXMsXG4gIFVwZGF0ZU9wdGlvbkFjdGlvbnMsXG4gIFVwZGF0ZU9wdGlvbnMsXG4gIFVwZGF0ZVJlcG9zaXRvcnksXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IGlzLCBpc05pbCwgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtcywgTWl4aW5DdG9yLCBQcm9wVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgRmlyZXN0b3JlSGVscGVycywgRmlyZXN0b3JlUmVwb3NpdG9yeSB9IGZyb20gJy4uL3R5cGVzJ1xuXG50eXBlIFJlcG9zaXRvcnlVcGRhdGVQYXJhbXNLZXlzPFRCYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPiA9IGtleW9mIFJlcG9zaXRvcnlVcGRhdGVQYXJhbXM8VEJhc2U+XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZUZpcmVzdG9yZVJlcG9zaXRvcnlUeXBlPE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPiA9IFVwZGF0ZVJlcG9zaXRvcnk8TUJhc2U+ICYge1xuICBwYXJhbXNUb1BsYWluKHBhcmFtczogUmVwb3NpdG9yeVVwZGF0ZVBhcmFtczxNQmFzZT4pOiBQYXJ0aWFsPE1CYXNlPlxufVxuXG5leHBvcnQgY29uc3Qgd2l0aFVwZGF0ZUZpcmVzdG9yZSA9IDxcbiAgVEJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUsXG4gIFRNaXhpbkJhc2UgZXh0ZW5kcyBNaXhpbkN0b3I8RmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4+LFxuPihcbiAgTWl4aW5CYXNlOiBNaXhpbkN0b3I8RmlyZXN0b3JlUmVwb3NpdG9yeTxUQmFzZT4gJiBGaXJlc3RvcmVIZWxwZXJzPiAmIFRNaXhpbkJhc2UsXG4pOiBNaXhpbkN0b3I8XG4gIEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+ICYgVXBkYXRlUmVwb3NpdG9yeTxUQmFzZT4gJiBJbnN0YW5jZVR5cGU8VE1peGluQmFzZT4gJiBGaXJlc3RvcmVIZWxwZXJzLFxuICBNZXJnZUNvbnN0cnVjdG9yUGFyYW1zPHt9W10sIENvbnN0cnVjdG9yUGFyYW1ldGVyczxUTWl4aW5CYXNlPj5cbj4gPT4ge1xuICBjb25zdCBnZXRWYWx1ZUZyb21QYXJhbXMgPSAoXG4gICAgcGFyYW1zOiBSZXBvc2l0b3J5VXBkYXRlUGFyYW1zPFRCYXNlPixcbiAgICBmaWVsZDogTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFRCYXNlPixcbiAgKTogUHJvcFR5cGU8VEJhc2UsIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxUQmFzZT4+ID0+XG4gICAgKGlzTmlsKGlzPFVwZGF0ZU9wdGlvbnM8UHJvcFR5cGU8VEJhc2UsIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxUQmFzZT4+Pj4ocGFyYW1zW2ZpZWxkXSk/LnZhbHVlKVxuICAgICAgPyBpczxQcm9wVHlwZTxUQmFzZSwgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFRCYXNlPj4+KHBhcmFtc1tmaWVsZF0pXG4gICAgICA6IGlzPFVwZGF0ZU9wdGlvbnM8UHJvcFR5cGU8VEJhc2UsIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxUQmFzZT4+Pj4ocGFyYW1zW2ZpZWxkXSkudmFsdWUpIHx8IG51bGxcbiAgY29uc3QgZ2V0VmFsdWVCeUFjdGlvbiA9IChvcHRpb25zOiBVcGRhdGVPcHRpb25zPFRCYXNlPik6IEZpZWxkVmFsdWUgfCB1bmtub3duID0+IHtcbiAgICBpZiAoaXNOaWwob3B0aW9ucz8uYWN0aW9uKSkgcmV0dXJuIG9wdGlvbnNcbiAgICBpZiAob3B0aW9ucz8uYWN0aW9uID09PSBVcGRhdGVPcHRpb25BY3Rpb25zLlJFTU9WRV9GSUVMRCkgcmV0dXJuIGRlbGV0ZUZpZWxkKClcbiAgICBpZiAob3B0aW9ucz8uYWN0aW9uID09PSBVcGRhdGVPcHRpb25BY3Rpb25zLk5VTEwpIHJldHVybiBudWxsXG4gICAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9ucz8udmFsdWUpKSB7XG4gICAgICBpZiAob3B0aW9ucz8uYWN0aW9uID09PSBVcGRhdGVPcHRpb25BY3Rpb25zLk1FUkdFKSByZXR1cm4gYXJyYXlVbmlvbiguLi5vcHRpb25zLnZhbHVlKVxuICAgICAgaWYgKG9wdGlvbnM/LmFjdGlvbiA9PT0gVXBkYXRlT3B0aW9uQWN0aW9ucy5SRU1PVkUpIHJldHVybiBhcnJheVJlbW92ZSguLi5vcHRpb25zLnZhbHVlKVxuICAgIH1cblxuICAgIHJldHVybiBvcHRpb25zPy52YWx1ZVxuICB9XG5cbiAgcmV0dXJuIGNsYXNzIFVwZGF0ZUZpcmVzdG9yZSBleHRlbmRzIE1peGluQmFzZSBpbXBsZW1lbnRzIFVwZGF0ZVJlcG9zaXRvcnk8VEJhc2U+IHtcbiAgICBhc3luYyB1cGRhdGUoZGF0YTogUmVwb3NpdG9yeVVwZGF0ZVBhcmFtczxUQmFzZT4pOiBQcm9taXNlPFRCYXNlPiB7XG4gICAgICBjb25zdCBtb2RlbCA9IG5ldyB0aGlzLm1vZGVsKClcbiAgICAgIGNvbnN0IGtleUZpZWxkID0gbW9kZWwuaWRlbnRpZmllcnNGaWVsZHMuc2hpZnQoKVxuICAgICAgY29uc3QgZG9jUmVmID0gZG9jKFxuICAgICAgICB0aGlzLmNvbGxlY3Rpb24odGhpcy5idWlsZENvbGxlY3Rpb25QYXRoRm9yVXBkYXRlKGRhdGEpKSxcbiAgICAgICAgZ2V0VmFsdWVGcm9tUGFyYW1zKGRhdGEsIGtleUZpZWxkKS50b1N0cmluZygpLFxuICAgICAgKVxuXG4gICAgICBhd2FpdCBzZXREb2MoZG9jUmVmLCB0aGlzLnBhcmFtc1RvUGxhaW4oZGF0YSksIHsgbWVyZ2U6IHRydWUgfSlcblxuICAgICAgY29uc3QgZG9jRGF0YSA9IGF3YWl0IGdldERvYyhkb2NSZWYpXG5cbiAgICAgIHJldHVybiBkb2NEYXRhLmRhdGEoKVxuICAgIH1cblxuICAgIGJ1aWxkQ29sbGVjdGlvblBhdGhGb3JVcGRhdGUoaWRlbnRpZmllcnM6IFJlcG9zaXRvcnlVcGRhdGVQYXJhbXM8VEJhc2U+KTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLmlzU3ViQ29sbGVjdGlvbih0aGlzKVxuICAgICAgICA/IGAke3RoaXMucGFyZW50UmVwb3NpdG9yeS5jb2xsZWN0aW9uTmFtZX0vJHtnZXRWYWx1ZUZyb21QYXJhbXMoaWRlbnRpZmllcnMsIHRoaXMucGFyZW50SWRGaWVsZCl9LyR7XG4gICAgICAgICAgICB0aGlzLmNvbGxlY3Rpb25OYW1lXG4gICAgICAgICAgfWBcbiAgICAgICAgOiB0aGlzLmNvbGxlY3Rpb25OYW1lXG4gICAgfVxuXG4gICAgcGFyYW1zVG9QbGFpbihwYXJhbXM6IFJlcG9zaXRvcnlVcGRhdGVQYXJhbXM8VEJhc2U+KTogUGFydGlhbDxUQmFzZT4ge1xuICAgICAgY29uc3QgbW9kZWwgPSB0aGlzLm1vZGVsXG5cbiAgICAgIGlmIChtb2RlbC5pc01vZGVsKHBhcmFtcykpIHJldHVybiBwYXJhbXMudG9QbGFpbigpXG5cbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhwYXJhbXMpLnJlZHVjZShcbiAgICAgICAgKGRhdGEsIGN1cnJlbnRLZXkpID0+ICh7XG4gICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgICAuLi4oKHZhbHVlKTogUmVjb3JkPHN0cmluZywgYW55PiA9PiAodmFsdWUgPT09IHVuZGVmaW5lZCA/IHt9IDogeyBbY3VycmVudEtleV06IHZhbHVlIH0pKShcbiAgICAgICAgICAgIGdldFZhbHVlQnlBY3Rpb24ocGFyYW1zW2N1cnJlbnRLZXkgYXMgbmV2ZXJdKSxcbiAgICAgICAgICApLFxuICAgICAgICB9KSxcbiAgICAgICAge30sXG4gICAgICApXG4gICAgfVxuICB9IGFzIGFueVxufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC11cGRhdGUtZmlyZXN0b3JlLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL21peGlucy93aXRoLXVwZGF0ZS1maXJlc3RvcmUubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBYyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFMUcsT0FBTyxFQUlMLG1CQUFtQixHQUdwQixNQUFNLG9CQUFvQixDQUFBO0FBQzNCLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUErQyxNQUFNLG1CQUFtQixDQUFBO0FBTzFGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBSWpDLFNBQWdGLEVBSWhGLEVBQUU7SUFDRixNQUFNLGtCQUFrQixHQUFHLENBQ3pCLE1BQXFDLEVBQ3JDLEtBQXNDLEVBQ1ksRUFBRSxDQUNwRCxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQWtFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUMvRixDQUFDLENBQUMsRUFBRSxDQUFtRCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckUsQ0FBQyxDQUFDLEVBQUUsQ0FBa0UsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFBO0lBQ3ZHLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUE2QixFQUF3QixFQUFFO1FBQy9FLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7WUFBRSxPQUFPLE9BQU8sQ0FBQTtRQUMxQyxJQUFJLE9BQU8sRUFBRSxNQUFNLEtBQUssbUJBQW1CLENBQUMsWUFBWTtZQUFFLE9BQU8sV0FBVyxFQUFFLENBQUE7UUFDOUUsSUFBSSxPQUFPLEVBQUUsTUFBTSxLQUFLLG1CQUFtQixDQUFDLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQTtRQUM3RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLElBQUksT0FBTyxFQUFFLE1BQU0sS0FBSyxtQkFBbUIsQ0FBQyxLQUFLO2dCQUFFLE9BQU8sVUFBVSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3RGLElBQUksT0FBTyxFQUFFLE1BQU0sS0FBSyxtQkFBbUIsQ0FBQyxNQUFNO2dCQUFFLE9BQU8sV0FBVyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1NBQ3pGO1FBRUQsT0FBTyxPQUFPLEVBQUUsS0FBSyxDQUFBO0lBQ3ZCLENBQUMsQ0FBQTtJQUVELE9BQU8sTUFBTSxlQUFnQixTQUFRLFNBQVM7UUFDNUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFtQztZQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtZQUM5QixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUE7WUFDaEQsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUN4RCxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQzlDLENBQUE7WUFFRCxNQUFNLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBRS9ELE1BQU0sT0FBTyxHQUFHLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBRXBDLE9BQU8sT0FBTyxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ3ZCLENBQUM7UUFFRCw0QkFBNEIsQ0FBQyxXQUEwQztZQUNyRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO2dCQUMvQixDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxJQUFJLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQzVGLElBQUksQ0FBQyxjQUNQLEVBQUU7Z0JBQ0osQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUE7UUFDekIsQ0FBQztRQUVELGFBQWEsQ0FBQyxNQUFxQztZQUNqRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO1lBRXhCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQUUsT0FBTyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7WUFFbEQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FDL0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNyQixHQUFHLElBQUk7Z0JBQ1AsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUF1QixFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQ3ZGLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxVQUFtQixDQUFDLENBQUMsQ0FDOUM7YUFDRixDQUFDLEVBQ0YsRUFBRSxDQUNILENBQUE7UUFDSCxDQUFDO0tBQ0ssQ0FBQTtBQUNWLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFycmF5UmVtb3ZlLCBhcnJheVVuaW9uLCBkZWxldGVGaWVsZCwgZG9jLCBGaWVsZFZhbHVlLCBnZXREb2MsIHNldERvYyB9IGZyb20gJ2ZpcmViYXNlL2ZpcmVzdG9yZSdcblxuaW1wb3J0IHtcbiAgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBOb25GdW5jdGlvblByb3BlcnR5TmFtZXMsXG4gIFJlcG9zaXRvcnlVcGRhdGVQYXJhbXMsXG4gIFVwZGF0ZU9wdGlvbkFjdGlvbnMsXG4gIFVwZGF0ZU9wdGlvbnMsXG4gIFVwZGF0ZVJlcG9zaXRvcnksXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IGlzLCBpc05pbCwgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtcywgTWl4aW5DdG9yLCBQcm9wVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgRmlyZXN0b3JlSGVscGVycywgRmlyZXN0b3JlUmVwb3NpdG9yeSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5leHBvcnQgdHlwZSBVcGRhdGVGaXJlc3RvcmVSZXBvc2l0b3J5VHlwZTxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZT4gPSBVcGRhdGVSZXBvc2l0b3J5PE1CYXNlPiAmIHtcbiAgcGFyYW1zVG9QbGFpbihwYXJhbXM6IFJlcG9zaXRvcnlVcGRhdGVQYXJhbXM8TUJhc2U+KTogUGFydGlhbDxNQmFzZT5cbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhVcGRhdGVGaXJlc3RvcmUgPSA8XG4gIFRCYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBUTWl4aW5CYXNlIGV4dGVuZHMgTWl4aW5DdG9yPEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+Pixcbj4oXG4gIE1peGluQmFzZTogTWl4aW5DdG9yPEZpcmVzdG9yZVJlcG9zaXRvcnk8VEJhc2U+ICYgRmlyZXN0b3JlSGVscGVycz4gJiBUTWl4aW5CYXNlLFxuKTogTWl4aW5DdG9yPFxuICBGaXJlc3RvcmVSZXBvc2l0b3J5PFRCYXNlPiAmIFVwZGF0ZVJlcG9zaXRvcnk8VEJhc2U+ICYgSW5zdGFuY2VUeXBlPFRNaXhpbkJhc2U+ICYgRmlyZXN0b3JlSGVscGVycyxcbiAgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtczx7fVtdLCBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VE1peGluQmFzZT4+XG4+ID0+IHtcbiAgY29uc3QgZ2V0VmFsdWVGcm9tUGFyYW1zID0gKFxuICAgIHBhcmFtczogUmVwb3NpdG9yeVVwZGF0ZVBhcmFtczxUQmFzZT4sXG4gICAgZmllbGQ6IE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxUQmFzZT4sXG4gICk6IFByb3BUeXBlPFRCYXNlLCBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8VEJhc2U+PiA9PlxuICAgIChpc05pbChpczxVcGRhdGVPcHRpb25zPFByb3BUeXBlPFRCYXNlLCBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8VEJhc2U+Pj4+KHBhcmFtc1tmaWVsZF0pPy52YWx1ZSlcbiAgICAgID8gaXM8UHJvcFR5cGU8VEJhc2UsIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxUQmFzZT4+PihwYXJhbXNbZmllbGRdKVxuICAgICAgOiBpczxVcGRhdGVPcHRpb25zPFByb3BUeXBlPFRCYXNlLCBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8VEJhc2U+Pj4+KHBhcmFtc1tmaWVsZF0pLnZhbHVlKSB8fCBudWxsXG4gIGNvbnN0IGdldFZhbHVlQnlBY3Rpb24gPSAob3B0aW9uczogVXBkYXRlT3B0aW9uczxUQmFzZT4pOiBGaWVsZFZhbHVlIHwgdW5rbm93biA9PiB7XG4gICAgaWYgKGlzTmlsKG9wdGlvbnM/LmFjdGlvbikpIHJldHVybiBvcHRpb25zXG4gICAgaWYgKG9wdGlvbnM/LmFjdGlvbiA9PT0gVXBkYXRlT3B0aW9uQWN0aW9ucy5SRU1PVkVfRklFTEQpIHJldHVybiBkZWxldGVGaWVsZCgpXG4gICAgaWYgKG9wdGlvbnM/LmFjdGlvbiA9PT0gVXBkYXRlT3B0aW9uQWN0aW9ucy5OVUxMKSByZXR1cm4gbnVsbFxuICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnM/LnZhbHVlKSkge1xuICAgICAgaWYgKG9wdGlvbnM/LmFjdGlvbiA9PT0gVXBkYXRlT3B0aW9uQWN0aW9ucy5NRVJHRSkgcmV0dXJuIGFycmF5VW5pb24oLi4ub3B0aW9ucy52YWx1ZSlcbiAgICAgIGlmIChvcHRpb25zPy5hY3Rpb24gPT09IFVwZGF0ZU9wdGlvbkFjdGlvbnMuUkVNT1ZFKSByZXR1cm4gYXJyYXlSZW1vdmUoLi4ub3B0aW9ucy52YWx1ZSlcbiAgICB9XG5cbiAgICByZXR1cm4gb3B0aW9ucz8udmFsdWVcbiAgfVxuXG4gIHJldHVybiBjbGFzcyBVcGRhdGVGaXJlc3RvcmUgZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBVcGRhdGVSZXBvc2l0b3J5PFRCYXNlPiB7XG4gICAgYXN5bmMgdXBkYXRlKGRhdGE6IFJlcG9zaXRvcnlVcGRhdGVQYXJhbXM8VEJhc2U+KTogUHJvbWlzZTxUQmFzZT4ge1xuICAgICAgY29uc3QgbW9kZWwgPSBuZXcgdGhpcy5tb2RlbCgpXG4gICAgICBjb25zdCBrZXlGaWVsZCA9IG1vZGVsLmlkZW50aWZpZXJzRmllbGRzLnNoaWZ0KClcbiAgICAgIGNvbnN0IGRvY1JlZiA9IGRvYyhcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9uKHRoaXMuYnVpbGRDb2xsZWN0aW9uUGF0aEZvclVwZGF0ZShkYXRhKSksXG4gICAgICAgIGdldFZhbHVlRnJvbVBhcmFtcyhkYXRhLCBrZXlGaWVsZCkudG9TdHJpbmcoKSxcbiAgICAgIClcblxuICAgICAgYXdhaXQgc2V0RG9jKGRvY1JlZiwgdGhpcy5wYXJhbXNUb1BsYWluKGRhdGEpLCB7IG1lcmdlOiB0cnVlIH0pXG5cbiAgICAgIGNvbnN0IGRvY0RhdGEgPSBhd2FpdCBnZXREb2MoZG9jUmVmKVxuXG4gICAgICByZXR1cm4gZG9jRGF0YS5kYXRhKClcbiAgICB9XG5cbiAgICBidWlsZENvbGxlY3Rpb25QYXRoRm9yVXBkYXRlKGlkZW50aWZpZXJzOiBSZXBvc2l0b3J5VXBkYXRlUGFyYW1zPFRCYXNlPik6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5pc1N1YkNvbGxlY3Rpb24odGhpcylcbiAgICAgICAgPyBgJHt0aGlzLnBhcmVudFJlcG9zaXRvcnkuY29sbGVjdGlvbk5hbWV9LyR7Z2V0VmFsdWVGcm9tUGFyYW1zKGlkZW50aWZpZXJzLCB0aGlzLnBhcmVudElkRmllbGQpfS8ke1xuICAgICAgICAgICAgdGhpcy5jb2xsZWN0aW9uTmFtZVxuICAgICAgICAgIH1gXG4gICAgICAgIDogdGhpcy5jb2xsZWN0aW9uTmFtZVxuICAgIH1cblxuICAgIHBhcmFtc1RvUGxhaW4ocGFyYW1zOiBSZXBvc2l0b3J5VXBkYXRlUGFyYW1zPFRCYXNlPik6IFBhcnRpYWw8VEJhc2U+IHtcbiAgICAgIGNvbnN0IG1vZGVsID0gdGhpcy5tb2RlbFxuXG4gICAgICBpZiAobW9kZWwuaXNNb2RlbChwYXJhbXMpKSByZXR1cm4gcGFyYW1zLnRvUGxhaW4oKVxuXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMocGFyYW1zKS5yZWR1Y2UoXG4gICAgICAgIChkYXRhLCBjdXJyZW50S2V5KSA9PiAoe1xuICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgLi4uKCh2YWx1ZSk6IFJlY29yZDxzdHJpbmcsIGFueT4gPT4gKHZhbHVlID09PSB1bmRlZmluZWQgPyB7fSA6IHsgW2N1cnJlbnRLZXldOiB2YWx1ZSB9KSkoXG4gICAgICAgICAgICBnZXRWYWx1ZUJ5QWN0aW9uKHBhcmFtc1tjdXJyZW50S2V5IGFzIG5ldmVyXSksXG4gICAgICAgICAgKSxcbiAgICAgICAgfSksXG4gICAgICAgIHt9LFxuICAgICAgKVxuICAgIH1cbiAgfSBhcyBhbnlcbn1cbiJdfQ==
@@ -26,4 +26,4 @@ export class CouponFirestoreRepository extends withCrudFirestore(withHelpers(wit
26
26
  };
27
27
  }
28
28
  }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cG9uLWZpcmVzdG9yZS5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL3JlcG9zaXRvcmllcy9zaG9wcGluZy9jb3Vwb24tZmlyZXN0b3JlLnJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE1BQU0sRUFBb0IsTUFBTSx1QkFBdUIsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRWxELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRTVFLE1BQU0sT0FBTyx5QkFDWCxTQUFRLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUduRSxZQUE4QixTQUFvQjtRQUNoRCxLQUFLLEVBQUUsQ0FBQTtRQURxQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBRWhELElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFBO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFBO0lBQ3JCLENBQUM7SUFFUSxrQkFBa0I7UUFJekIsTUFBTSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtRQUVqRSxPQUFPO1lBQ0wsV0FBVyxFQUFFLENBQUMsSUFBWSxFQUFnQixFQUFFO2dCQUMxQyxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBRS9CLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO29CQUFFLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtnQkFFaEUsT0FBTyxLQUFLLENBQUE7WUFDZCxDQUFDO1lBQ0QsYUFBYSxFQUFFLENBQUMsSUFBbUMsRUFBVSxFQUFFO2dCQUM3RCxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBRXBDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztvQkFBRSxRQUFRLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFFcEYsT0FBTyxRQUFRLENBQUE7WUFDakIsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb2N1bWVudERhdGEsIEZpcmVzdG9yZSwgUXVlcnlEb2N1bWVudFNuYXBzaG90IH0gZnJvbSAnZmlyZWJhc2UvZmlyZXN0b3JlJ1xuXG5pbXBvcnQgeyBDb3Vwb24sIENvdXBvblJlcG9zaXRvcnkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nXG5pbXBvcnQgeyBCYXNlLCBpc05pbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxzJ1xuXG5pbXBvcnQgeyB3aXRoQ3J1ZEZpcmVzdG9yZSwgd2l0aEZpcmVzdG9yZSwgd2l0aEhlbHBlcnMgfSBmcm9tICcuLi8uLi9taXhpbnMnXG5cbmV4cG9ydCBjbGFzcyBDb3Vwb25GaXJlc3RvcmVSZXBvc2l0b3J5XG4gIGV4dGVuZHMgd2l0aENydWRGaXJlc3RvcmUod2l0aEhlbHBlcnMod2l0aEZpcmVzdG9yZTxDb3Vwb24+KEJhc2UpKSlcbiAgaW1wbGVtZW50cyBDb3Vwb25SZXBvc2l0b3J5XG57XG4gIGNvbnN0cnVjdG9yKG92ZXJyaWRlIHJlYWRvbmx5IGZpcmVzdG9yZTogRmlyZXN0b3JlKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29sbGVjdGlvbk5hbWUgPSAnY291cG9ucydcbiAgICB0aGlzLm1vZGVsID0gQ291cG9uXG4gIH1cblxuICBvdmVycmlkZSBidWlsZE1vZGVsSW5zdGFuY2UoKToge1xuICAgIHRvRmlyZXN0b3JlOiAoZGF0YTogQ291cG9uKSA9PiBEb2N1bWVudERhdGFcbiAgICBmcm9tRmlyZXN0b3JlOiAoc25hcDogUXVlcnlEb2N1bWVudFNuYXBzaG90PENvdXBvbj4pID0+IENvdXBvblxuICB9IHtcbiAgICBjb25zdCB7IGZyb21GaXJlc3RvcmUsIHRvRmlyZXN0b3JlIH0gPSBzdXBlci5idWlsZE1vZGVsSW5zdGFuY2UoKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRvRmlyZXN0b3JlOiAoZGF0YTogQ291cG9uKTogRG9jdW1lbnREYXRhID0+IHtcbiAgICAgICAgY29uc3QgcGxhaW4gPSB0b0ZpcmVzdG9yZShkYXRhKVxuXG4gICAgICAgIGlmICghIWRhdGEuZXhwaXJlc0luKSBwbGFpbi5leHBpcmVzSW4gPSBkYXRhLmV4cGlyZXNJbi5nZXRUaW1lKClcblxuICAgICAgICByZXR1cm4gcGxhaW5cbiAgICAgIH0sXG4gICAgICBmcm9tRmlyZXN0b3JlOiAoc25hcDogUXVlcnlEb2N1bWVudFNuYXBzaG90PENvdXBvbj4pOiBDb3Vwb24gPT4ge1xuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IGZyb21GaXJlc3RvcmUoc25hcClcblxuICAgICAgICBpZiAoIWlzTmlsKGluc3RhbmNlLmV4cGlyZXNJbikpIGluc3RhbmNlLmV4cGlyZXNJbiA9IG5ldyBEYXRlKHNuYXAuZGF0YSgpLmV4cGlyZXNJbilcblxuICAgICAgICByZXR1cm4gaW5zdGFuY2VcbiAgICAgIH0sXG4gICAgfVxuICB9XG59XG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cG9uLWZpcmVzdG9yZS5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL3JlcG9zaXRvcmllcy9zaG9wcGluZy9jb3Vwb24tZmlyZXN0b3JlLnJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE1BQU0sRUFBb0IsTUFBTSx1QkFBdUIsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRWxELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRTVFLE1BQU0sT0FBTyx5QkFDWCxTQUFRLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUduRSxZQUE4QixTQUFvQjtRQUNoRCxLQUFLLEVBQUUsQ0FBQTtRQURxQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBRWhELElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFBO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFBO0lBQ3JCLENBQUM7SUFFUSxrQkFBa0I7UUFJekIsTUFBTSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtRQUVqRSxPQUFPO1lBQ0wsV0FBVyxFQUFFLENBQUMsSUFBWSxFQUFnQixFQUFFO2dCQUMxQyxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsSUFBSSxDQUF5QyxDQUFBO2dCQUV2RSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUztvQkFBRSxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUE7Z0JBRWhFLE9BQU8sS0FBSyxDQUFBO1lBQ2QsQ0FBQztZQUNELGFBQWEsRUFBRSxDQUFDLElBQW1DLEVBQVUsRUFBRTtnQkFDN0QsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUVwQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7b0JBQUUsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUE7Z0JBRXBGLE9BQU8sUUFBUSxDQUFBO1lBQ2pCLENBQUM7U0FDRixDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9jdW1lbnREYXRhLCBGaXJlc3RvcmUsIFF1ZXJ5RG9jdW1lbnRTbmFwc2hvdCB9IGZyb20gJ2ZpcmViYXNlL2ZpcmVzdG9yZSdcblxuaW1wb3J0IHsgQ291cG9uLCBDb3Vwb25SZXBvc2l0b3J5IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgQmFzZSwgaXNOaWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscydcblxuaW1wb3J0IHsgd2l0aENydWRGaXJlc3RvcmUsIHdpdGhGaXJlc3RvcmUsIHdpdGhIZWxwZXJzIH0gZnJvbSAnLi4vLi4vbWl4aW5zJ1xuXG5leHBvcnQgY2xhc3MgQ291cG9uRmlyZXN0b3JlUmVwb3NpdG9yeVxuICBleHRlbmRzIHdpdGhDcnVkRmlyZXN0b3JlKHdpdGhIZWxwZXJzKHdpdGhGaXJlc3RvcmU8Q291cG9uPihCYXNlKSkpXG4gIGltcGxlbWVudHMgQ291cG9uUmVwb3NpdG9yeVxue1xuICBjb25zdHJ1Y3RvcihvdmVycmlkZSByZWFkb25seSBmaXJlc3RvcmU6IEZpcmVzdG9yZSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvbGxlY3Rpb25OYW1lID0gJ2NvdXBvbnMnXG4gICAgdGhpcy5tb2RlbCA9IENvdXBvblxuICB9XG5cbiAgb3ZlcnJpZGUgYnVpbGRNb2RlbEluc3RhbmNlKCk6IHtcbiAgICB0b0ZpcmVzdG9yZTogKGRhdGE6IENvdXBvbikgPT4gRG9jdW1lbnREYXRhXG4gICAgZnJvbUZpcmVzdG9yZTogKHNuYXA6IFF1ZXJ5RG9jdW1lbnRTbmFwc2hvdDxDb3Vwb24+KSA9PiBDb3Vwb25cbiAgfSB7XG4gICAgY29uc3QgeyBmcm9tRmlyZXN0b3JlLCB0b0ZpcmVzdG9yZSB9ID0gc3VwZXIuYnVpbGRNb2RlbEluc3RhbmNlKClcblxuICAgIHJldHVybiB7XG4gICAgICB0b0ZpcmVzdG9yZTogKGRhdGE6IENvdXBvbik6IERvY3VtZW50RGF0YSA9PiB7XG4gICAgICAgIGNvbnN0IHBsYWluID0gdG9GaXJlc3RvcmUoZGF0YSkgYXMgRG9jdW1lbnREYXRhICYgeyBleHBpcmVzSW46IG51bWJlciB9XG5cbiAgICAgICAgaWYgKCEhZGF0YS5leHBpcmVzSW4pIHBsYWluLmV4cGlyZXNJbiA9IGRhdGEuZXhwaXJlc0luLmdldFRpbWUoKVxuXG4gICAgICAgIHJldHVybiBwbGFpblxuICAgICAgfSxcbiAgICAgIGZyb21GaXJlc3RvcmU6IChzbmFwOiBRdWVyeURvY3VtZW50U25hcHNob3Q8Q291cG9uPik6IENvdXBvbiA9PiB7XG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gZnJvbUZpcmVzdG9yZShzbmFwKVxuXG4gICAgICAgIGlmICghaXNOaWwoaW5zdGFuY2UuZXhwaXJlc0luKSkgaW5zdGFuY2UuZXhwaXJlc0luID0gbmV3IERhdGUoc25hcC5kYXRhKCkuZXhwaXJlc0luKVxuXG4gICAgICAgIHJldHVybiBpbnN0YW5jZVxuICAgICAgfSxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -45,4 +45,4 @@ export class UserFirestoreRepository extends withCrudFirestore(withHelpers(withF
45
45
  };
46
46
  }
47
47
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1maXJlc3RvcmUucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2ZpcmViYXNlL2ZpcmVzdG9yZS9yZXBvc2l0b3JpZXMvdXNlcnMvdXNlci1maXJlc3RvcmUucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUEyQixNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBeUIsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFdkgsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQWtCLE1BQU0sdUJBQXVCLENBQUE7QUFDM0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRTVFLE1BQU0sT0FBTyx1QkFDWCxTQUFRLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztJQUdqRSxZQUE4QixTQUFvQjtRQUNoRCxLQUFLLEVBQUUsQ0FBQTtRQURxQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBRWhELElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFBO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO0lBQ25CLENBQUM7SUFFUSxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQTBCO1FBQzNDLE1BQU0sSUFBSSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVwRCxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN6RCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUUzRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsS0FBYSxFQUFFLEtBQWE7UUFDckQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFL0QsT0FBTyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQTtJQUN6QixDQUFDO0lBRVEsa0JBQWtCO1FBSXpCLE1BQU0sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFFakUsT0FBTztZQUNMLFdBQVcsRUFBRSxDQUFDLElBQVUsRUFBZ0IsRUFBRTtnQkFDeEMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUUvQixPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUE7Z0JBRXpCLE9BQU8sS0FBSyxDQUFBO1lBQ2QsQ0FBQztZQUNELGFBQWE7U0FDZCxDQUFBO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFjO1FBQzNDLE1BQU0sYUFBYSxHQUFHLE1BQU0sTUFBTSxDQUNoQyxHQUFHLENBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksTUFBTSxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFLENBQUMsRUFDNUcsZUFBZSxDQUNoQixDQUNGLENBQUE7UUFFRCxPQUFPLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM3QixDQUFDO0lBRU8sS0FBSyxDQUFDLG1CQUFtQixDQUFDLE1BQWM7UUFDOUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxPQUFPLENBQ3hCLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQ3hHLENBQUE7UUFFRCxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUE7SUFDOUIsQ0FBQztJQUVPLCtCQUErQjtRQUlyQyxPQUFPO1lBQ0wsV0FBVyxFQUFFLENBQUMsSUFBbUIsRUFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDbEUsYUFBYSxFQUFFLENBQUMsSUFBMEMsRUFBaUIsRUFBRSxDQUMzRSxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN4QyxDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZG9jLCBEb2N1bWVudERhdGEsIEZpcmVzdG9yZSwgZ2V0RG9jLCBnZXREb2NzLCBxdWVyeSwgUXVlcnlEb2N1bWVudFNuYXBzaG90LCB3aGVyZSB9IGZyb20gJ2ZpcmViYXNlL2ZpcmVzdG9yZSdcblxuaW1wb3J0IHsgQmVhdXR5UHJvZmlsZSwgVXNlciwgVXNlclJlcG9zaXRvcnkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nXG5pbXBvcnQgeyBCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyB3aXRoQ3J1ZEZpcmVzdG9yZSwgd2l0aEZpcmVzdG9yZSwgd2l0aEhlbHBlcnMgfSBmcm9tICcuLi8uLi9taXhpbnMnXG5cbmV4cG9ydCBjbGFzcyBVc2VyRmlyZXN0b3JlUmVwb3NpdG9yeVxuICBleHRlbmRzIHdpdGhDcnVkRmlyZXN0b3JlKHdpdGhIZWxwZXJzKHdpdGhGaXJlc3RvcmU8VXNlcj4oQmFzZSkpKVxuICBpbXBsZW1lbnRzIFVzZXJSZXBvc2l0b3J5XG57XG4gIGNvbnN0cnVjdG9yKG92ZXJyaWRlIHJlYWRvbmx5IGZpcmVzdG9yZTogRmlyZXN0b3JlKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29sbGVjdGlvbk5hbWUgPSAndXNlcnMnXG4gICAgdGhpcy5tb2RlbCA9IFVzZXJcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGdldChpZGVudGlmaWVyczogUGFydGlhbDxVc2VyPik6IFByb21pc2U8VXNlcj4ge1xuICAgIGNvbnN0IHVzZXIgPSBhd2FpdCBzdXBlci5nZXQoeyBpZDogaWRlbnRpZmllcnMuaWQgfSlcblxuICAgIHVzZXIuYmVhdXR5UHJvZmlsZSA9IGF3YWl0IHRoaXMuZ2V0QmVhdXR5UHJvZmlsZSh1c2VyLmlkKVxuICAgIHVzZXIuaXNTdWJzY3JpYmVyID0gYXdhaXQgdGhpcy5jaGVja0lmSXNTdWJzY3JpYmVyKHVzZXIuaWQpXG5cbiAgICByZXR1cm4gdXNlclxuICB9XG5cbiAgYXN5bmMgY2hlY2tJZkV4aXN0c0J5RmllbGQoZmllbGQ6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZmluZCh7IGZpbHRlcnM6IHsgW2ZpZWxkXTogdmFsdWUgfSB9KVxuXG4gICAgcmV0dXJuIHJlc3VsdC5jb3VudCA+IDBcbiAgfVxuXG4gIG92ZXJyaWRlIGJ1aWxkTW9kZWxJbnN0YW5jZSgpOiB7XG4gICAgdG9GaXJlc3RvcmU6IChkYXRhOiBVc2VyKSA9PiBEb2N1bWVudERhdGFcbiAgICBmcm9tRmlyZXN0b3JlOiAoc25hcDogUXVlcnlEb2N1bWVudFNuYXBzaG90PFVzZXI+KSA9PiBVc2VyXG4gIH0ge1xuICAgIGNvbnN0IHsgZnJvbUZpcmVzdG9yZSwgdG9GaXJlc3RvcmUgfSA9IHN1cGVyLmJ1aWxkTW9kZWxJbnN0YW5jZSgpXG5cbiAgICByZXR1cm4ge1xuICAgICAgdG9GaXJlc3RvcmU6IChkYXRhOiBVc2VyKTogRG9jdW1lbnREYXRhID0+IHtcbiAgICAgICAgY29uc3QgcGxhaW4gPSB0b0ZpcmVzdG9yZShkYXRhKVxuXG4gICAgICAgIGRlbGV0ZSBwbGFpbi5pc1N1YnNjcmliZXJcblxuICAgICAgICByZXR1cm4gcGxhaW5cbiAgICAgIH0sXG4gICAgICBmcm9tRmlyZXN0b3JlLFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QmVhdXR5UHJvZmlsZSh1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8QmVhdXR5UHJvZmlsZT4ge1xuICAgIGNvbnN0IGJlYXV0eVByb2ZpbGUgPSBhd2FpdCBnZXREb2MoXG4gICAgICBkb2MoXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbihgJHt0aGlzLmNvbGxlY3Rpb25OYW1lfS8ke3VzZXJJZH0vQ1hgKS53aXRoQ29udmVydGVyKHRoaXMuYnVpbGRCZWF1dHlQcm9maWxlTW9kZWxJbnN0YW5jZSgpKSxcbiAgICAgICAgJ2JlYXV0eVByb2ZpbGUnLFxuICAgICAgKSxcbiAgICApXG5cbiAgICByZXR1cm4gYmVhdXR5UHJvZmlsZS5kYXRhKClcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tJZklzU3Vic2NyaWJlcih1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGRvY3MgPSBhd2FpdCBnZXREb2NzKFxuICAgICAgcXVlcnkodGhpcy5jb2xsZWN0aW9uKCdzdWJzY3JpcHRpb24nKSwgd2hlcmUoJ3VzZXIuaWQnLCAnPT0nLCB1c2VySWQpLCB3aGVyZSgnc3RhdHVzJywgJz09JywgJ2FjdGl2ZScpKSxcbiAgICApXG5cbiAgICByZXR1cm4gISFkb2NzICYmICEhZG9jcy5zaXplXG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQmVhdXR5UHJvZmlsZU1vZGVsSW5zdGFuY2UoKToge1xuICAgIHRvRmlyZXN0b3JlOiAoZGF0YTogQmVhdXR5UHJvZmlsZSkgPT4gRG9jdW1lbnREYXRhXG4gICAgZnJvbUZpcmVzdG9yZTogKHNuYXA6IFF1ZXJ5RG9jdW1lbnRTbmFwc2hvdDxCZWF1dHlQcm9maWxlPikgPT4gQmVhdXR5UHJvZmlsZVxuICB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgdG9GaXJlc3RvcmU6IChkYXRhOiBCZWF1dHlQcm9maWxlKTogRG9jdW1lbnREYXRhID0+IGRhdGEudG9QbGFpbigpLFxuICAgICAgZnJvbUZpcmVzdG9yZTogKHNuYXA6IFF1ZXJ5RG9jdW1lbnRTbmFwc2hvdDxCZWF1dHlQcm9maWxlPik6IEJlYXV0eVByb2ZpbGUgPT5cbiAgICAgICAgQmVhdXR5UHJvZmlsZS50b0luc3RhbmNlKHNuYXAuZGF0YSgpKSxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1maXJlc3RvcmUucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2ZpcmViYXNlL2ZpcmVzdG9yZS9yZXBvc2l0b3JpZXMvdXNlcnMvdXNlci1maXJlc3RvcmUucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUEyQixNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBeUIsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFdkgsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQWtCLE1BQU0sdUJBQXVCLENBQUE7QUFDM0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRTVFLE1BQU0sT0FBTyx1QkFDWCxTQUFRLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztJQUdqRSxZQUE4QixTQUFvQjtRQUNoRCxLQUFLLEVBQUUsQ0FBQTtRQURxQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBRWhELElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFBO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFBO0lBQ25CLENBQUM7SUFFUSxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQTBCO1FBQzNDLE1BQU0sSUFBSSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVwRCxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN6RCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUUzRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsS0FBYSxFQUFFLEtBQWE7UUFDckQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFL0QsT0FBTyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQTtJQUN6QixDQUFDO0lBRVEsa0JBQWtCO1FBSXpCLE1BQU0sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFFakUsT0FBTztZQUNMLFdBQVcsRUFBRSxDQUFDLElBQVUsRUFBZ0IsRUFBRTtnQkFDeEMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBNkMsQ0FBQTtnQkFFM0UsT0FBTyxLQUFLLENBQUMsWUFBWSxDQUFBO2dCQUV6QixPQUFPLEtBQUssQ0FBQTtZQUNkLENBQUM7WUFDRCxhQUFhO1NBQ2QsQ0FBQTtJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBYztRQUMzQyxNQUFNLGFBQWEsR0FBRyxNQUFNLE1BQU0sQ0FDaEMsR0FBRyxDQUNELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxJQUFJLE1BQU0sS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFDLEVBQzVHLGVBQWUsQ0FDaEIsQ0FDRixDQUFBO1FBRUQsT0FBTyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDN0IsQ0FBQztJQUVPLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxNQUFjO1FBQzlDLE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUN4RyxDQUFBO1FBRUQsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFBO0lBQzlCLENBQUM7SUFFTywrQkFBK0I7UUFJckMsT0FBTztZQUNMLFdBQVcsRUFBRSxDQUFDLElBQW1CLEVBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2xFLGFBQWEsRUFBRSxDQUFDLElBQTBDLEVBQWlCLEVBQUUsQ0FDM0UsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDeEMsQ0FBQTtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRvYywgRG9jdW1lbnREYXRhLCBGaXJlc3RvcmUsIGdldERvYywgZ2V0RG9jcywgcXVlcnksIFF1ZXJ5RG9jdW1lbnRTbmFwc2hvdCwgd2hlcmUgfSBmcm9tICdmaXJlYmFzZS9maXJlc3RvcmUnXG5cbmltcG9ydCB7IEJlYXV0eVByb2ZpbGUsIFVzZXIsIFVzZXJSZXBvc2l0b3J5IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgd2l0aENydWRGaXJlc3RvcmUsIHdpdGhGaXJlc3RvcmUsIHdpdGhIZWxwZXJzIH0gZnJvbSAnLi4vLi4vbWl4aW5zJ1xuXG5leHBvcnQgY2xhc3MgVXNlckZpcmVzdG9yZVJlcG9zaXRvcnlcbiAgZXh0ZW5kcyB3aXRoQ3J1ZEZpcmVzdG9yZSh3aXRoSGVscGVycyh3aXRoRmlyZXN0b3JlPFVzZXI+KEJhc2UpKSlcbiAgaW1wbGVtZW50cyBVc2VyUmVwb3NpdG9yeVxue1xuICBjb25zdHJ1Y3RvcihvdmVycmlkZSByZWFkb25seSBmaXJlc3RvcmU6IEZpcmVzdG9yZSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvbGxlY3Rpb25OYW1lID0gJ3VzZXJzJ1xuICAgIHRoaXMubW9kZWwgPSBVc2VyXG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBnZXQoaWRlbnRpZmllcnM6IFBhcnRpYWw8VXNlcj4pOiBQcm9taXNlPFVzZXI+IHtcbiAgICBjb25zdCB1c2VyID0gYXdhaXQgc3VwZXIuZ2V0KHsgaWQ6IGlkZW50aWZpZXJzLmlkIH0pXG5cbiAgICB1c2VyLmJlYXV0eVByb2ZpbGUgPSBhd2FpdCB0aGlzLmdldEJlYXV0eVByb2ZpbGUodXNlci5pZClcbiAgICB1c2VyLmlzU3Vic2NyaWJlciA9IGF3YWl0IHRoaXMuY2hlY2tJZklzU3Vic2NyaWJlcih1c2VyLmlkKVxuXG4gICAgcmV0dXJuIHVzZXJcbiAgfVxuXG4gIGFzeW5jIGNoZWNrSWZFeGlzdHNCeUZpZWxkKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmZpbmQoeyBmaWx0ZXJzOiB7IFtmaWVsZF06IHZhbHVlIH0gfSlcblxuICAgIHJldHVybiByZXN1bHQuY291bnQgPiAwXG4gIH1cblxuICBvdmVycmlkZSBidWlsZE1vZGVsSW5zdGFuY2UoKToge1xuICAgIHRvRmlyZXN0b3JlOiAoZGF0YTogVXNlcikgPT4gRG9jdW1lbnREYXRhXG4gICAgZnJvbUZpcmVzdG9yZTogKHNuYXA6IFF1ZXJ5RG9jdW1lbnRTbmFwc2hvdDxVc2VyPikgPT4gVXNlclxuICB9IHtcbiAgICBjb25zdCB7IGZyb21GaXJlc3RvcmUsIHRvRmlyZXN0b3JlIH0gPSBzdXBlci5idWlsZE1vZGVsSW5zdGFuY2UoKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRvRmlyZXN0b3JlOiAoZGF0YTogVXNlcik6IERvY3VtZW50RGF0YSA9PiB7XG4gICAgICAgIGNvbnN0IHBsYWluID0gdG9GaXJlc3RvcmUoZGF0YSkgYXMgRG9jdW1lbnREYXRhICYgeyBpc1N1YnNjcmliZXI6IGJvb2xlYW4gfVxuXG4gICAgICAgIGRlbGV0ZSBwbGFpbi5pc1N1YnNjcmliZXJcblxuICAgICAgICByZXR1cm4gcGxhaW5cbiAgICAgIH0sXG4gICAgICBmcm9tRmlyZXN0b3JlLFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QmVhdXR5UHJvZmlsZSh1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8QmVhdXR5UHJvZmlsZT4ge1xuICAgIGNvbnN0IGJlYXV0eVByb2ZpbGUgPSBhd2FpdCBnZXREb2MoXG4gICAgICBkb2MoXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbihgJHt0aGlzLmNvbGxlY3Rpb25OYW1lfS8ke3VzZXJJZH0vQ1hgKS53aXRoQ29udmVydGVyKHRoaXMuYnVpbGRCZWF1dHlQcm9maWxlTW9kZWxJbnN0YW5jZSgpKSxcbiAgICAgICAgJ2JlYXV0eVByb2ZpbGUnLFxuICAgICAgKSxcbiAgICApXG5cbiAgICByZXR1cm4gYmVhdXR5UHJvZmlsZS5kYXRhKClcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tJZklzU3Vic2NyaWJlcih1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGRvY3MgPSBhd2FpdCBnZXREb2NzKFxuICAgICAgcXVlcnkodGhpcy5jb2xsZWN0aW9uKCdzdWJzY3JpcHRpb24nKSwgd2hlcmUoJ3VzZXIuaWQnLCAnPT0nLCB1c2VySWQpLCB3aGVyZSgnc3RhdHVzJywgJz09JywgJ2FjdGl2ZScpKSxcbiAgICApXG5cbiAgICByZXR1cm4gISFkb2NzICYmICEhZG9jcy5zaXplXG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQmVhdXR5UHJvZmlsZU1vZGVsSW5zdGFuY2UoKToge1xuICAgIHRvRmlyZXN0b3JlOiAoZGF0YTogQmVhdXR5UHJvZmlsZSkgPT4gRG9jdW1lbnREYXRhXG4gICAgZnJvbUZpcmVzdG9yZTogKHNuYXA6IFF1ZXJ5RG9jdW1lbnRTbmFwc2hvdDxCZWF1dHlQcm9maWxlPikgPT4gQmVhdXR5UHJvZmlsZVxuICB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgdG9GaXJlc3RvcmU6IChkYXRhOiBCZWF1dHlQcm9maWxlKTogRG9jdW1lbnREYXRhID0+IGRhdGEudG9QbGFpbigpLFxuICAgICAgZnJvbUZpcmVzdG9yZTogKHNuYXA6IFF1ZXJ5RG9jdW1lbnRTbmFwc2hvdDxCZWF1dHlQcm9maWxlPik6IEJlYXV0eVByb2ZpbGUgPT5cbiAgICAgICAgQmVhdXR5UHJvZmlsZS50b0luc3RhbmNlKHNuYXAuZGF0YSgpKSxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -59,7 +59,7 @@ GraphQLFieldHelper.ConvertFieldValueFrom = (data, fields) => Object.keys(data).r
59
59
  }
60
60
  if (!!from)
61
61
  return { ...result, [attributeName]: from(data[columnName], data) };
62
- return { ...result, [attributeName]: parseDateTime(data[columnName].toString()) };
62
+ return { ...result, [attributeName]: parseDateTime(data[columnName]?.toString()) };
63
63
  }, {});
64
64
  GraphQLFieldHelper.ConvertFieldValueTo = (instance, fields, update = false) => {
65
65
  const data = instance.toPlain?.() || instance;
@@ -111,4 +111,4 @@ GraphQLFieldHelper.ConvertFieldValueTo = (instance, fields, update = false) => {
111
111
  return { ...result, [columnName]: data[attributeName] };
112
112
  }, {});
113
113
  };
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1maWVsZC5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9ncmFwaHFsLWZpZWxkLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxHQUlWLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBR2pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBRWxFLE1BQU0sT0FBTyxrQkFBa0I7O0FBQ3RCLHVDQUFvQixHQUFHLENBQzVCLE1BQXVDLEVBQ0wsRUFBRSxDQUNwQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO0FBRXBGLG9EQUFpQyxHQUFHLENBQ3pDLE1BQWtDLEVBQzFCLEVBQUU7SUFDVixPQUFPLE1BQU07UUFDWCxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2QsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDNUMsSUFBSSxLQUFLLEtBQUssZUFBZTtZQUFFLE9BQU8sS0FBSyxDQUFBO1FBRTNDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxD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O29CQUN6QixDQUFDLENBQUM7d0JBQ0UsQ0FBQyxVQUFVLENBQUMsRUFBRTs0QkFDWixJQUFJLEVBQ0YsUUFBUSxDQUFDLGFBQTZELENBQUMsWUFBWSxTQUFTO2dDQUMxRixDQUFDLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQ3BDLElBQUksQ0FBQyxhQUF5RCxDQUFDLEVBQy9ELGVBQTZDLENBQzlDO2dDQUNILENBQUMsQ0FBQyxTQUFTO3lCQUNoQjtxQkFDRjtvQkFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ1IsQ0FBQTtTQUNGO1FBRUQsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNOLE9BQU87Z0JBQ0wsR0FBRyxNQUFNO2dCQUNULENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUF5RCxDQUFDLEVBQUUsUUFBUSxDQUFDO2FBQ2hHLENBQUE7UUFFSCxPQUFPLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBeUQsQ0FBQyxFQUFFLENBQUE7SUFDckcsQ0FBQyxFQUFFLEVBQWMsQ0FBQyxDQUFBO0FBQ3BCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VNb2RlbCxcbiAgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzLFxuICBOb25GdW5jdGlvblByb3BlcnRpZXMsXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IGlzLCBpc0RhdGUsIGlzRW1wdHksIGlzTmlsLCBpc09iamVjdCwgaXNTdHJpbmcsIHBhcnNlRGF0ZVRpbWUgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscydcbmltcG9ydCB7IEZpZWxkcywgR3JhcGhRTFBhcmFtcywgSGFzdXJhR3JhcGhRTEZpZWxkcyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBBdHRyaWJ1dGVPcHRpb25IZWxwZXIgfSBmcm9tICcuL2F0dHJpYnV0ZS1vcHRpb24uaGVscGVyJ1xuaW1wb3J0IHsgQmluZEZpbHRlclF1ZXJ5SGVscGVyIH0gZnJvbSAnLi9iaW5kLWZpbHRlci1xdWVyeS5oZWxwZXInXG5cbmV4cG9ydCBjbGFzcyBHcmFwaFFMRmllbGRIZWxwZXIge1xuICBzdGF0aWMgQ2hlY2tJc0dyYXBoUUxQYXJhbXMgPSA8TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+KFxuICAgIHBhcmFtczogc3RyaW5nIHwgR3JhcGhRTFBhcmFtczxNb2RlbD5bXSxcbiAgKTogcGFyYW1zIGlzIEdyYXBoUUxQYXJhbXM8TW9kZWw+W10gPT5cbiAgICAhaXNTdHJpbmcocGFyYW1zKSAmJiBBcnJheS5pc0FycmF5KHBhcmFtcykgJiYgcGFyYW1zLmxlbmd0aCA+PSAwICYmICEhcGFyYW1zWzBdLm9wZXJhdGlvblxuXG4gIHN0YXRpYyBDb252ZXJ0TW9kZWxGaWVsZHNUb0dyYXBoUUxGaWVsZHMgPSA8TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+KFxuICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD4sXG4gICk6IEZpZWxkcyA9PiB7XG4gICAgcmV0dXJuIGZpZWxkc1xuICAgICAgPy5tYXAoKGZpZWxkKSA9PiB7XG4gICAgICAgIGlmIChpc1N0cmluZyhmaWVsZCkpIHJldHVybiBmaWVsZC50b1N0cmluZygpXG4gICAgICAgIGlmIChmaWVsZCA9PT0gJ2FmZmVjdGVkX3Jvd3MnKSByZXR1cm4gZmllbGRcblxuICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBPYmplY3Qua2V5cyhmaWVsZCkuc2hpZnQoKVxuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gZmllbGRbZmllbGROYW1lIGFzIGtleW9mIHR5cGVvZiBmaWVsZF1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZFZhbHVlKSlcbiAgICAgICAgICByZXR1cm4geyBbZmllbGROYW1lXTogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhmaWVsZFZhbHVlKSB9XG4gICAgICAgIGlmICghQXR0cmlidXRlT3B0aW9uSGVscGVyLkNoZWNrSXNDb2x1bW5PcHRpb24oZmllbGRWYWx1ZSkpIHJldHVybiBudWxsXG4gICAgICAgIGlmIChmaWVsZFZhbHVlLmZpZWxkcylcbiAgICAgICAgICByZXR1cm4gIWZpZWxkVmFsdWUuZmlsdGVyc1xuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgW2ZpZWxkVmFsdWUuY29sdW1uTmFtZSB8fCBmaWVsZE5hbWVdOiBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydE1vZGVsRmllbGRzVG9HcmFwaFFMRmllbGRzKFxuICAgICAgICAgICAgICAgICAgZmllbGRWYWx1ZS5maWVsZHMsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBmaWVsZFZhbHVlLmNvbHVtbk5hbWUgfHwgZmllbGROYW1lLFxuICAgICAgICAgICAgICAgIGZpZWxkczogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhmaWVsZFZhbHVlLmZpZWxkcyksXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICAgICAgICBbYCR7ZmllbGRWYWx1ZS5jb2x1bW5OYW1lfV93aGVyZWBdOiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICd3aGVyZScsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGZpZWxkVmFsdWUuZmlsdGVycy5maWx0ZXJUeXBlLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogQmluZEZpbHRlclF1ZXJ5SGVscGVyLk1ha2VHcmFwaFFMV2hlcmUoZmllbGRWYWx1ZS5maWx0ZXJzLmZpbHRlcnMsIGZpZWxkVmFsdWUuZmllbGRzKSxcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmllbGRWYWx1ZS5jb2x1bW5OYW1lXG4gICAgICB9KVxuICAgICAgLmZpbHRlcigoZmllbGQpID0+ICEhZmllbGQpXG4gIH1cblxuICBzdGF0aWMgQ29udmVydEZpZWxkVmFsdWVGcm9tID0gPFxuICAgIE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlLFxuICAgIFJlY29yZERhdGFUeXBlIGV4dGVuZHMgc3RyaW5nIHwgbnVtYmVyIHwgRGF0YVR5cGUgfCBEYXRlLFxuICAgIERhdGFUeXBlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgUmVjb3JkRGF0YVR5cGUgfCBSZWNvcmREYXRhVHlwZVtdPixcbiAgPihcbiAgICBkYXRhOiBEYXRhVHlwZSxcbiAgICBmaWVsZHM6IEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+LFxuICApOiBQYXJ0aWFsPE5vbkZ1bmN0aW9uUHJvcGVydGllczxNb2RlbD4+ID0+XG4gICAgT2JqZWN0LmtleXMoZGF0YSkucmVkdWNlKChyZXN1bHQsIGNvbHVtbk5hbWUpID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgYXR0cmlidXRlTmFtZSxcbiAgICAgICAgZmllbGRzOiBhdHRyaWJ1dGVGaWVsZHMsXG4gICAgICAgIGZyb20sXG4gICAgICB9ID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRDb2x1bW5PcHRpb25Gcm9tTGlzdChjb2x1bW5OYW1lLCBmaWVsZHMpXG5cbiAgICAgIGlmICghIWF0dHJpYnV0ZUZpZWxkcyAmJiBBcnJheS5pc0FycmF5KGF0dHJpYnV0ZUZpZWxkcykpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVtjb2x1bW5OYW1lXSkpXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgIFthdHRyaWJ1dGVOYW1lXTogZnJvbVxuICAgICAgICAgICAgICA/IGZyb20oZGF0YVtjb2x1bW5OYW1lXSwgZGF0YSlcbiAgICAgICAgICAgICAgOiBpczxSZWNvcmREYXRhVHlwZVtdPihkYXRhW2NvbHVtbk5hbWVdKS5tYXAoKHZhbHVlKSA9PlxuICAgICAgICAgICAgICAgICAgR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRGaWVsZFZhbHVlRnJvbShpczxEYXRhVHlwZT4odmFsdWUpLCBhdHRyaWJ1dGVGaWVsZHMpLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgfVxuICAgICAgICBpZiAoaXNPYmplY3QoZGF0YVtjb2x1bW5OYW1lXSkpXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgIFthdHRyaWJ1dGVOYW1lXTogISFmcm9tXG4gICAgICAgICAgICAgID8gZnJvbShkYXRhW2NvbHVtbk5hbWVdKVxuICAgICAgICAgICAgICA6IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0RmllbGRWYWx1ZUZyb20oaXM8RGF0YVR5cGU+KGRhdGFbY29sdW1uTmFtZV0pLCBhdHRyaWJ1dGVGaWVsZHMpLFxuICAgICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCEhZnJvbSkgcmV0dXJuIHsgLi4ucmVzdWx0LCBbYXR0cmlidXRlTmFtZV06IGZyb20oZGF0YVtjb2x1bW5OYW1lXSwgZGF0YSkgfVxuXG4gICAgICByZXR1cm4geyAuLi5yZXN1bHQsIFthdHRyaWJ1dGVOYW1lXTogcGFyc2VEYXRlVGltZShkYXRhW2NvbHVtbk5hbWVdLnRvU3RyaW5nKCkpIH1cbiAgICB9LCB7fSlcblxuICBzdGF0aWMgQ29udmVydEZpZWxkVmFsdWVUbyA9IDxcbiAgICBNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgICBEYXRhVHlwZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IERhdGFUeXBlIHwgRGF0ZT4sXG4gID4oXG4gICAgaW5zdGFuY2U6IE1vZGVsLFxuICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD4sXG4gICAgdXBkYXRlID0gZmFsc2UsXG4gICk6IERhdGFUeXBlID0+IHtcbiAgICBjb25zdCBkYXRhOiBQYXJ0aWFsPE1vZGVsPiA9IGluc3RhbmNlLnRvUGxhaW4/LigpIHx8IGluc3RhbmNlXG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZGF0YSkucmVkdWNlKChyZXN1bHQsIGF0dHJpYnV0ZU5hbWUpID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgY29sdW1uTmFtZSxcbiAgICAgICAgZmllbGRzOiBhdHRyaWJ1dGVGaWVsZHMsXG4gICAgICAgIGZvcmVpZ25LZXlDb2x1bW4sXG4gICAgICAgIHRvLFxuICAgICAgICBiaW5kUGVyc2lzdERhdGEsXG4gICAgICB9ID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TW9kZWw+LCBmaWVsZHMpXG5cbiAgICAgIGlmIChiaW5kUGVyc2lzdERhdGEpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgIC4uLmJpbmRQZXJzaXN0RGF0YShkYXRhW2F0dHJpYnV0ZU5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNb2RlbD5dLCBpbnN0YW5jZSksXG4gICAgICAgIH1cbiAgICAgIGlmIChpc05pbChjb2x1bW5OYW1lKSkgcmV0dXJuIHJlc3VsdFxuICAgICAgaWYgKFxuICAgICAgICAhIWZvcmVpZ25LZXlDb2x1bW4gJiZcbiAgICAgICAgIWlzRW1wdHkoZm9yZWlnbktleUNvbHVtbikgJiZcbiAgICAgICAgIU9iamVjdC5rZXlzKGZvcmVpZ25LZXlDb2x1bW4pLmZpbHRlcihcbiAgICAgICAgICAoa2V5KSA9PlxuICAgICAgICAgICAgIWlzPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KGRhdGFbYXR0cmlidXRlTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1vZGVsPl0pPy5ba2V5XSxcbiAgICAgICAgKS5sZW5ndGhcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGZvcmVpZ25LZXlDb2x1bW4pLnJlZHVjZShcbiAgICAgICAgICAob2JqZWN0LCBjdXJyZW50KSA9PiAoe1xuICAgICAgICAgICAgLi4ub2JqZWN0LFxuICAgICAgICAgICAgW2ZvcmVpZ25LZXlDb2x1bW5bY3VycmVudCBhcyBrZXlvZiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPltudW1iZXJdXV06XG4gICAgICAgICAgICAgIGRhdGFbYXR0cmlidXRlTmFtZSBhcyBrZXlvZiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPltudW1iZXJdXT8uW2N1cnJlbnRdLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHsgLi4ucmVzdWx0IH0sXG4gICAgICAgIClcblxuICAgICAgaWYgKFxuICAgICAgICB1cGRhdGUgJiZcbiAgICAgICAgaXNPYmplY3QoZGF0YVthdHRyaWJ1dGVOYW1lIGFzIGtleW9mIEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+W251bWJlcl1dKSAmJlxuICAgICAgICAhaXNOaWwoYXR0cmlidXRlRmllbGRzKSAmJlxuICAgICAgICAhaXNEYXRlKGRhdGFbYXR0cmlidXRlTmFtZSBhcyBrZXlvZiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPltudW1iZXJdXSlcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuXG4gICAgICBpZiAoXG4gICAgICAgICEhY29sdW1uTmFtZSAmJlxuICAgICAgICBBcnJheS5pc0FycmF5KGF0dHJpYnV0ZUZpZWxkcykgJiZcbiAgICAgICAgaXNPYmplY3QoZGF0YVthdHRyaWJ1dGVOYW1lIGFzIGtleW9mIEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+W251bWJlcl1dKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZCA9XG4gICAgICAgICAgIWlzTmlsKGNvbHVtbk5hbWUpICYmIHRvXG4gICAgICAgICAgICA/IHRvKGluc3RhbmNlW2F0dHJpYnV0ZU5hbWUgYXMga2V5b2YgSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD5bbnVtYmVyXV0sIGluc3RhbmNlKVxuICAgICAgICAgICAgOiBkYXRhW2F0dHJpYnV0ZU5hbWUgYXMga2V5b2YgSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD5bbnVtYmVyXV1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAuLi4oY29udmVydGVkICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIFtjb2x1bW5OYW1lXToge1xuICAgICAgICAgICAgICAgICAgZGF0YTpcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2VbYXR0cmlidXRlTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1vZGVsPl0gaW5zdGFuY2VvZiBCYXNlTW9kZWxcbiAgICAgICAgICAgICAgICAgICAgICA/IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0RmllbGRWYWx1ZVRvKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2F0dHJpYnV0ZU5hbWUgYXMga2V5b2YgSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD5bbnVtYmVyXV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZUZpZWxkcyBhcyBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPixcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICA6IGNvbnZlcnRlZCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoISF0bylcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgW2NvbHVtbk5hbWVdOiB0byhpbnN0YW5jZVthdHRyaWJ1dGVOYW1lIGFzIGtleW9mIEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+W251bWJlcl1dLCBpbnN0YW5jZSksXG4gICAgICAgIH1cblxuICAgICAgcmV0dXJuIHsgLi4ucmVzdWx0LCBbY29sdW1uTmFtZV06IGRhdGFbYXR0cmlidXRlTmFtZSBhcyBrZXlvZiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPltudW1iZXJdXSB9XG4gICAgfSwge30gYXMgRGF0YVR5cGUpXG4gIH1cbn1cbiJdfQ==
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1maWVsZC5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9ncmFwaHFsLWZpZWxkLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxHQUlWLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBR2pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBRWxFLE1BQU0sT0FBTyxrQkFBa0I7O0FBQ3RCLHVDQUFvQixHQUFHLENBQzVCLE1BQXVDLEVBQ0wsRUFBRSxDQUNwQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO0FBRXBGLG9EQUFpQyxHQUFHLENBQ3pDLE1BQWtDLEVBQzFCLEVBQUU7SUFDVixPQUFPLE1BQU07UUFDWCxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2QsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDNUMsSUFBSSxLQUFLLEtBQUssZUFBZTtZQUFFLE9BQU8sS0FBSyxDQUFBO1FBRTNDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxD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O29CQUN6QixDQUFDLENBQUM7d0JBQ0UsQ0FBQyxVQUFVLENBQUMsRUFBRTs0QkFDWixJQUFJLEVBQ0YsUUFBUSxDQUFDLGFBQTZELENBQUMsWUFBWSxTQUFTO2dDQUMxRixDQUFDLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQ3BDLElBQUksQ0FBQyxhQUF5RCxDQUFDLEVBQy9ELGVBQTZDLENBQzlDO2dDQUNILENBQUMsQ0FBQyxTQUFTO3lCQUNoQjtxQkFDRjtvQkFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ1IsQ0FBQTtTQUNGO1FBRUQsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNOLE9BQU87Z0JBQ0wsR0FBRyxNQUFNO2dCQUNULENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUF5RCxDQUFDLEVBQUUsUUFBUSxDQUFDO2FBQ2hHLENBQUE7UUFFSCxPQUFPLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBeUQsQ0FBQyxFQUFFLENBQUE7SUFDckcsQ0FBQyxFQUFFLEVBQWMsQ0FBQyxDQUFBO0FBQ3BCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VNb2RlbCxcbiAgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzLFxuICBOb25GdW5jdGlvblByb3BlcnRpZXMsXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IGlzLCBpc0RhdGUsIGlzRW1wdHksIGlzTmlsLCBpc09iamVjdCwgaXNTdHJpbmcsIHBhcnNlRGF0ZVRpbWUgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscydcbmltcG9ydCB7IEZpZWxkcywgR3JhcGhRTFBhcmFtcywgSGFzdXJhR3JhcGhRTEZpZWxkcyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBBdHRyaWJ1dGVPcHRpb25IZWxwZXIgfSBmcm9tICcuL2F0dHJpYnV0ZS1vcHRpb24uaGVscGVyJ1xuaW1wb3J0IHsgQmluZEZpbHRlclF1ZXJ5SGVscGVyIH0gZnJvbSAnLi9iaW5kLWZpbHRlci1xdWVyeS5oZWxwZXInXG5cbmV4cG9ydCBjbGFzcyBHcmFwaFFMRmllbGRIZWxwZXIge1xuICBzdGF0aWMgQ2hlY2tJc0dyYXBoUUxQYXJhbXMgPSA8TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+KFxuICAgIHBhcmFtczogc3RyaW5nIHwgR3JhcGhRTFBhcmFtczxNb2RlbD5bXSxcbiAgKTogcGFyYW1zIGlzIEdyYXBoUUxQYXJhbXM8TW9kZWw+W10gPT5cbiAgICAhaXNTdHJpbmcocGFyYW1zKSAmJiBBcnJheS5pc0FycmF5KHBhcmFtcykgJiYgcGFyYW1zLmxlbmd0aCA+PSAwICYmICEhcGFyYW1zWzBdLm9wZXJhdGlvblxuXG4gIHN0YXRpYyBDb252ZXJ0TW9kZWxGaWVsZHNUb0dyYXBoUUxGaWVsZHMgPSA8TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+KFxuICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD4sXG4gICk6IEZpZWxkcyA9PiB7XG4gICAgcmV0dXJuIGZpZWxkc1xuICAgICAgPy5tYXAoKGZpZWxkKSA9PiB7XG4gICAgICAgIGlmIChpc1N0cmluZyhmaWVsZCkpIHJldHVybiBmaWVsZC50b1N0cmluZygpXG4gICAgICAgIGlmIChmaWVsZCA9PT0gJ2FmZmVjdGVkX3Jvd3MnKSByZXR1cm4gZmllbGRcblxuICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBPYmplY3Qua2V5cyhmaWVsZCkuc2hpZnQoKVxuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gZmllbGRbZmllbGROYW1lIGFzIGtleW9mIHR5cGVvZiBmaWVsZF1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZFZhbHVlKSlcbiAgICAgICAgICByZXR1cm4geyBbZmllbGROYW1lXTogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhmaWVsZFZhbHVlKSB9XG4gICAgICAgIGlmICghQXR0cmlidXRlT3B0aW9uSGVscGVyLkNoZWNrSXNDb2x1bW5PcHRpb24oZmllbGRWYWx1ZSkpIHJldHVybiBudWxsXG4gICAgICAgIGlmIChmaWVsZFZhbHVlLmZpZWxkcylcbiAgICAgICAgICByZXR1cm4gIWZpZWxkVmFsdWUuZmlsdGVyc1xuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgW2ZpZWxkVmFsdWUuY29sdW1uTmFtZSB8fCBmaWVsZE5hbWVdOiBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydE1vZGVsRmllbGRzVG9HcmFwaFFMRmllbGRzKFxuICAgICAgICAgICAgICAgICAgZmllbGRWYWx1ZS5maWVsZHMsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBmaWVsZFZhbHVlLmNvbHVtbk5hbWUgfHwgZmllbGROYW1lLFxuICAgICAgICAgICAgICAgIGZpZWxkczogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhmaWVsZFZhbHVlLmZpZWxkcyksXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICAgICAgICBbYCR7ZmllbGRWYWx1ZS5jb2x1bW5OYW1lfV93aGVyZWBdOiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICd3aGVyZScsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGZpZWxkVmFsdWUuZmlsdGVycy5maWx0ZXJUeXBlLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogQmluZEZpbHRlclF1ZXJ5SGVscGVyLk1ha2VHcmFwaFFMV2hlcmUoZmllbGRWYWx1ZS5maWx0ZXJzLmZpbHRlcnMsIGZpZWxkVmFsdWUuZmllbGRzKSxcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmllbGRWYWx1ZS5jb2x1bW5OYW1lXG4gICAgICB9KVxuICAgICAgLmZpbHRlcigoZmllbGQpID0+ICEhZmllbGQpXG4gIH1cblxuICBzdGF0aWMgQ29udmVydEZpZWxkVmFsdWVGcm9tID0gPFxuICAgIE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlLFxuICAgIFJlY29yZERhdGFUeXBlIGV4dGVuZHMgc3RyaW5nIHwgbnVtYmVyIHwgRGF0YVR5cGUgfCBEYXRlLFxuICAgIERhdGFUeXBlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgUmVjb3JkRGF0YVR5cGUgfCBSZWNvcmREYXRhVHlwZVtdPixcbiAgPihcbiAgICBkYXRhOiBEYXRhVHlwZSxcbiAgICBmaWVsZHM6IEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+LFxuICApOiBQYXJ0aWFsPE5vbkZ1bmN0aW9uUHJvcGVydGllczxNb2RlbD4+ID0+XG4gICAgT2JqZWN0LmtleXMoZGF0YSkucmVkdWNlKChyZXN1bHQsIGNvbHVtbk5hbWUpID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgYXR0cmlidXRlTmFtZSxcbiAgICAgICAgZmllbGRzOiBhdHRyaWJ1dGVGaWVsZHMsXG4gICAgICAgIGZyb20sXG4gICAgICB9ID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRDb2x1bW5PcHRpb25Gcm9tTGlzdChjb2x1bW5OYW1lLCBmaWVsZHMpXG5cbiAgICAgIGlmICghIWF0dHJpYnV0ZUZpZWxkcyAmJiBBcnJheS5pc0FycmF5KGF0dHJpYnV0ZUZpZWxkcykpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVtjb2x1bW5OYW1lXSkpXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgIFthdHRyaWJ1dGVOYW1lXTogZnJvbVxuICAgICAgICAgICAgICA/IGZyb20oZGF0YVtjb2x1bW5OYW1lXSwgZGF0YSlcbiAgICAgICAgICAgICAgOiBpczxSZWNvcmREYXRhVHlwZVtdPihkYXRhW2NvbHVtbk5hbWVdKS5tYXAoKHZhbHVlKSA9PlxuICAgICAgICAgICAgICAgICAgR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRGaWVsZFZhbHVlRnJvbShpczxEYXRhVHlwZT4odmFsdWUpLCBhdHRyaWJ1dGVGaWVsZHMpLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgfVxuICAgICAgICBpZiAoaXNPYmplY3QoZGF0YVtjb2x1bW5OYW1lXSkpXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgIFthdHRyaWJ1dGVOYW1lXTogISFmcm9tXG4gICAgICAgICAgICAgID8gZnJvbShkYXRhW2NvbHVtbk5hbWVdKVxuICAgICAgICAgICAgICA6IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0RmllbGRWYWx1ZUZyb20oaXM8RGF0YVR5cGU+KGRhdGFbY29sdW1uTmFtZV0pLCBhdHRyaWJ1dGVGaWVsZHMpLFxuICAgICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCEhZnJvbSkgcmV0dXJuIHsgLi4ucmVzdWx0LCBbYXR0cmlidXRlTmFtZV06IGZyb20oZGF0YVtjb2x1bW5OYW1lXSwgZGF0YSkgfVxuXG4gICAgICByZXR1cm4geyAuLi5yZXN1bHQsIFthdHRyaWJ1dGVOYW1lXTogcGFyc2VEYXRlVGltZShkYXRhW2NvbHVtbk5hbWVdPy50b1N0cmluZygpKSB9XG4gICAgfSwge30pXG5cbiAgc3RhdGljIENvbnZlcnRGaWVsZFZhbHVlVG8gPSA8XG4gICAgTW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUsXG4gICAgRGF0YVR5cGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBEYXRhVHlwZSB8IERhdGU+LFxuICA+KFxuICAgIGluc3RhbmNlOiBNb2RlbCxcbiAgICBmaWVsZHM6IEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+LFxuICAgIHVwZGF0ZSA9IGZhbHNlLFxuICApOiBEYXRhVHlwZSA9PiB7XG4gICAgY29uc3QgZGF0YTogUGFydGlhbDxNb2RlbD4gPSBpbnN0YW5jZS50b1BsYWluPy4oKSB8fCBpbnN0YW5jZVxuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGRhdGEpLnJlZHVjZSgocmVzdWx0LCBhdHRyaWJ1dGVOYW1lKSA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGNvbHVtbk5hbWUsXG4gICAgICAgIGZpZWxkczogYXR0cmlidXRlRmllbGRzLFxuICAgICAgICBmb3JlaWduS2V5Q29sdW1uLFxuICAgICAgICB0byxcbiAgICAgICAgYmluZFBlcnNpc3REYXRhLFxuICAgICAgfSA9IEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1vZGVsPiwgZmllbGRzKVxuXG4gICAgICBpZiAoYmluZFBlcnNpc3REYXRhKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAuLi5iaW5kUGVyc2lzdERhdGEoZGF0YVthdHRyaWJ1dGVOYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8TW9kZWw+XSwgaW5zdGFuY2UpLFxuICAgICAgICB9XG4gICAgICBpZiAoaXNOaWwoY29sdW1uTmFtZSkpIHJldHVybiByZXN1bHRcbiAgICAgIGlmIChcbiAgICAgICAgISFmb3JlaWduS2V5Q29sdW1uICYmXG4gICAgICAgICFpc0VtcHR5KGZvcmVpZ25LZXlDb2x1bW4pICYmXG4gICAgICAgICFPYmplY3Qua2V5cyhmb3JlaWduS2V5Q29sdW1uKS5maWx0ZXIoXG4gICAgICAgICAgKGtleSkgPT5cbiAgICAgICAgICAgICFpczxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PihkYXRhW2F0dHJpYnV0ZU5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNb2RlbD5dKT8uW2tleV0sXG4gICAgICAgICkubGVuZ3RoXG4gICAgICApXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhmb3JlaWduS2V5Q29sdW1uKS5yZWR1Y2UoXG4gICAgICAgICAgKG9iamVjdCwgY3VycmVudCkgPT4gKHtcbiAgICAgICAgICAgIC4uLm9iamVjdCxcbiAgICAgICAgICAgIFtmb3JlaWduS2V5Q29sdW1uW2N1cnJlbnQgYXMga2V5b2YgSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD5bbnVtYmVyXV1dOlxuICAgICAgICAgICAgICBkYXRhW2F0dHJpYnV0ZU5hbWUgYXMga2V5b2YgSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD5bbnVtYmVyXV0/LltjdXJyZW50XSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB7IC4uLnJlc3VsdCB9LFxuICAgICAgICApXG5cbiAgICAgIGlmIChcbiAgICAgICAgdXBkYXRlICYmXG4gICAgICAgIGlzT2JqZWN0KGRhdGFbYXR0cmlidXRlTmFtZSBhcyBrZXlvZiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPltudW1iZXJdXSkgJiZcbiAgICAgICAgIWlzTmlsKGF0dHJpYnV0ZUZpZWxkcykgJiZcbiAgICAgICAgIWlzRGF0ZShkYXRhW2F0dHJpYnV0ZU5hbWUgYXMga2V5b2YgSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD5bbnVtYmVyXV0pXG4gICAgICApXG4gICAgICAgIHJldHVybiByZXN1bHRcblxuICAgICAgaWYgKFxuICAgICAgICAhIWNvbHVtbk5hbWUgJiZcbiAgICAgICAgQXJyYXkuaXNBcnJheShhdHRyaWJ1dGVGaWVsZHMpICYmXG4gICAgICAgIGlzT2JqZWN0KGRhdGFbYXR0cmlidXRlTmFtZSBhcyBrZXlvZiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPltudW1iZXJdXSlcbiAgICAgICkge1xuICAgICAgICBjb25zdCBjb252ZXJ0ZWQgPVxuICAgICAgICAgICFpc05pbChjb2x1bW5OYW1lKSAmJiB0b1xuICAgICAgICAgICAgPyB0byhpbnN0YW5jZVthdHRyaWJ1dGVOYW1lIGFzIGtleW9mIEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+W251bWJlcl1dLCBpbnN0YW5jZSlcbiAgICAgICAgICAgIDogZGF0YVthdHRyaWJ1dGVOYW1lIGFzIGtleW9mIEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+W251bWJlcl1dXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgLi4uKGNvbnZlcnRlZCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBbY29sdW1uTmFtZV06IHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlW2F0dHJpYnV0ZU5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNb2RlbD5dIGluc3RhbmNlb2YgQmFzZU1vZGVsXG4gICAgICAgICAgICAgICAgICAgICAgPyBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydEZpZWxkVmFsdWVUbyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVthdHRyaWJ1dGVOYW1lIGFzIGtleW9mIEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+W251bWJlcl1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVGaWVsZHMgYXMgSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD4sXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgOiBjb252ZXJ0ZWQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7fSksXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCEhdG8pXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgIFtjb2x1bW5OYW1lXTogdG8oaW5zdGFuY2VbYXR0cmlidXRlTmFtZSBhcyBrZXlvZiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPltudW1iZXJdXSwgaW5zdGFuY2UpLFxuICAgICAgICB9XG5cbiAgICAgIHJldHVybiB7IC4uLnJlc3VsdCwgW2NvbHVtbk5hbWVdOiBkYXRhW2F0dHJpYnV0ZU5hbWUgYXMga2V5b2YgSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD5bbnVtYmVyXV0gfVxuICAgIH0sIHt9IGFzIERhdGFUeXBlKVxuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
+ import axios from 'axios';
1
2
  import { mutation, query } from 'gql-query-builder';
2
- import fetch from 'node-fetch';
3
3
  import { isBoolean, isInteger, isNaN, isNil, isNumber, isString, isUUID, parseISO, } from '../../../utils';
4
4
  import { GraphQLFieldHelper } from './helpers';
5
5
  export const withHasuraGraphQL = (MixinBase) => {
@@ -32,27 +32,18 @@ export const withHasuraGraphQL = (MixinBase) => {
32
32
  return this.fetch(resultQuery);
33
33
  }
34
34
  async query(operation, fields, variables) {
35
- const resultQuery = GraphQLFieldHelper.CheckIsGraphQLParams(operation)
36
- ? query(operation.map((option) => ({
37
- operation: option.operation,
38
- variables: option.variables,
39
- fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(option.fields),
40
- })))
41
- : query({
42
- operation,
43
- variables,
44
- fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fields),
45
- });
46
- return this.fetch(resultQuery);
35
+ const builded = this.buildHasuraQueryFields({ operation, fields, variables });
36
+ const interpected = (await this.interceptors?.request?.(builded)) || builded;
37
+ const resultQuery = query(interpected);
38
+ const result = await this.fetch(resultQuery);
39
+ return (await this.interceptors?.response?.(result, interpected)) || result;
47
40
  }
48
41
  async fetch(params) {
49
42
  const headers = this.headers;
50
- const response = await fetch(`${this.endpoint}`, {
51
- method: 'POST',
52
- body: JSON.stringify(params),
43
+ const response = await axios.post(`${this.endpoint}`, params, {
53
44
  headers,
54
45
  });
55
- const result = await response.json();
46
+ const result = await response.data;
56
47
  if (!isNil(result.errors))
57
48
  throw new Error(JSON.stringify(result.errors));
58
49
  return result.data;
@@ -87,6 +78,19 @@ export const withHasuraGraphQL = (MixinBase) => {
87
78
  convertDataToHasura(instance, update = false) {
88
79
  return GraphQLFieldHelper.ConvertFieldValueTo(instance, this.fields, update);
89
80
  }
81
+ buildHasuraQueryFields({ operation, fields, variables, }) {
82
+ return GraphQLFieldHelper.CheckIsGraphQLParams(operation)
83
+ ? operation.map((option) => ({
84
+ operation: option.operation,
85
+ variables: option.variables,
86
+ fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(option.fields),
87
+ }))
88
+ : {
89
+ operation,
90
+ variables,
91
+ fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fields),
92
+ };
93
+ }
90
94
  };
91
95
  };
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1oYXN1cmEtZ3JhcGhxbC5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2hhc3VyYS1ncmFwaHFsL21peGlucy93aXRoLWhhc3VyYS1ncmFwaHFsLm1peGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDbkQsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBRzlCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssRUFDTCxLQUFLLEVBQ0wsUUFBUSxFQUNSLFFBQVEsRUFDUixNQUFNLEVBR04sUUFBUSxHQUNULE1BQU0sZ0JBQWdCLENBQUE7QUFVdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBVTlDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQy9CLFNBQVksRUFDa0YsRUFBRTtJQUNoRyxPQUFPLE1BQU0sa0JBQW1CLFNBQVEsU0FBUztRQWtCL0MsWUFBWSxHQUFHLE1BQWE7WUFDMUIsTUFBTSxPQUFPLEdBQTZCLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUVuRCxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQTtZQUVoQixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUE7WUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFBO1lBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQTtZQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUE7WUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWdELENBQUE7UUFDOUYs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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG11dGF0aW9uLCBxdWVyeSB9IGZyb20gJ2dxbC1xdWVyeS1idWlsZGVyJ1xuaW1wb3J0IGZldGNoIGZyb20gJ25vZGUtZmV0Y2gnXG5cbmltcG9ydCB7IEJhc2VNb2RlbEJ1aWxkZXIsIE1vZGVsQmFzZVN0cnVjdHVyZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7XG4gIGlzQm9vbGVhbixcbiAgaXNJbnRlZ2VyLFxuICBpc05hTixcbiAgaXNOaWwsXG4gIGlzTnVtYmVyLFxuICBpc1N0cmluZyxcbiAgaXNVVUlELFxuICBNZXJnZUNvbnN0cnVjdG9yUGFyYW1zLFxuICBNaXhpbkN0b3IsXG4gIHBhcnNlSVNPLFxufSBmcm9tICcuLi8uLi8uLi91dGlscydcbmltcG9ydCB7XG4gIEdyYXBoUUxQYXJhbXMsXG4gIEdyYXBoUUxSZXBvc2l0b3J5LFxuICBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnMsXG4gIEhhc3VyYUdyYXBoUUxGaWVsZHMsXG4gIEhhc3VyYUdyYXBoUUxIZWFkZXJzLFxuICBWYXJpYWJsZU9wdGlvbnMsXG59IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBHcmFwaFFMRmllbGRIZWxwZXIgfSBmcm9tICcuL2hlbHBlcnMnXG5cbmV4cG9ydCB0eXBlIENvbnN0cnVjdG9yUGFyYW1zPE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPiA9IHtcbiAgdGFibGVOYW1lOiBzdHJpbmdcbiAgbW9kZWw6IEJhc2VNb2RlbEJ1aWxkZXI8TW9kZWw+XG4gIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD5cbiAgZW5kcG9pbnQ6IHN0cmluZ1xuICBhdXRoT3B0aW9uczogSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zXG59XG5cbmV4cG9ydCBjb25zdCB3aXRoSGFzdXJhR3JhcGhRTCA9IDxNQmFzZSBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZSwgVCBleHRlbmRzIE1peGluQ3RvciA9IE1peGluQ3Rvcj4oXG4gIE1peGluQmFzZTogVCxcbik6IE1peGluQ3RvcjxHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4sIE1lcmdlQ29uc3RydWN0b3JQYXJhbXM8YW55W10sIENvbnN0cnVjdG9yUGFyYW1ldGVyczxUPj4+ID0+IHtcbiAgcmV0dXJuIGNsYXNzIEhhc3VyYUdyYXBoUUxNaXhpbiBleHRlbmRzIE1peGluQmFzZSBpbXBsZW1lbnRzIEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPiB7XG4gICAgdGFibGVOYW1lOiBzdHJpbmdcbiAgICBlbmRwb2ludDogc3RyaW5nXG4gICAgYXV0aE9wdGlvbnM6IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9uc1xuICAgIG1vZGVsOiBCYXNlTW9kZWxCdWlsZGVyPE1CYXNlPlxuICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT5cblxuICAgIGdldCBoZWFkZXJzKCk6IEhhc3VyYUdyYXBoUUxIZWFkZXJzIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIC4uLihpc05pbCh0aGlzLmF1dGhPcHRpb25zLmF1dGhUb2tlbikgPyB7fSA6IHsgQXV0aG9yaXphdGlvbjogdGhpcy5hdXRoT3B0aW9ucy5hdXRoVG9rZW4gfSksXG4gICAgICAgIC4uLihpc05pbCh0aGlzLmF1dGhPcHRpb25zLmFkbWluU2VjcmV0KSA/IHt9IDogeyAnWC1IYXN1cmEtQWRtaW4tU2VjcmV0JzogdGhpcy5hdXRoT3B0aW9ucy5hZG1pblNlY3JldCB9KSxcbiAgICAgICAgLi4uKGlzTmlsKHRoaXMuYXV0aE9wdGlvbnMuYXV0aFJvbGUpXG4gICAgICAgICAgPyB7fVxuICAgICAgICAgIDogeyAnWC1IYXN1cmEtUm9sZSc6IHRoaXMuYXV0aE9wdGlvbnMuYXV0aFJvbGUucm9sZSwgJ1gtSGFzdXJhLVVzZXItSWQnOiB0aGlzLmF1dGhPcHRpb25zLmF1dGhSb2xlLnVzZXJJZCB9KSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvciguLi5wYXJhbXM6IGFueVtdKSB7XG4gICAgICBjb25zdCBvcHRpb25zOiBDb25zdHJ1Y3RvclBhcmFtczxNQmFzZT4gPSBwYXJhbXNbMF1cblxuICAgICAgc3VwZXIoLi4ucGFyYW1zKVxuXG4gICAgICB0aGlzLnRhYmxlTmFtZSA9IG9wdGlvbnMudGFibGVOYW1lXG4gICAgICB0aGlzLmVuZHBvaW50ID0gb3B0aW9ucy5lbmRwb2ludFxuICAgICAgdGhpcy5hdXRoT3B0aW9ucyA9IG9wdGlvbnMuYXV0aE9wdGlvbnNcbiAgICAgIHRoaXMubW9kZWwgPSBvcHRpb25zLm1vZGVsXG4gICAgICB0aGlzLmZpZWxkcyA9IG9wdGlvbnMuZmllbGRzIHx8ICh0aGlzLm1vZGVsLmlkZW50aWZpZXJzRmllbGRzIGFzIEhhc3VyYUdyYXBoUUxGaWVsZHM8TUJhc2U+KVxuICAgIH1cblxuICAgIGFzeW5jIG11dGF0aW9uPFJldHVybkZpZWxkcyA9IGFueT4oXG4gICAgICBvcGVyYXRpb246IHN0cmluZyxcbiAgICAgIGZpZWxkcz86IEhhc3VyYUdyYXBoUUxGaWVsZHM8TUJhc2U+LFxuICAgICAgdmFyaWFibGVzPzogVmFyaWFibGVPcHRpb25zLFxuICAgICk6IFByb21pc2U8UmV0dXJuRmllbGRzPiB7XG4gICAgICBjb25zdCByZXN1bHRRdWVyeSA9IG11dGF0aW9uKHtcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICB2YXJpYWJsZXMsXG4gICAgICAgIGZpZWxkczogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhmaWVsZHMpLFxuICAgICAgfSlcblxuICAgICAgcmV0dXJuIHRoaXMuZmV0Y2gocmVzdWx0UXVlcnkpXG4gICAgfVxuXG4gICAgYXN5bmMgcXVlcnk8UmV0dXJuRmllbGRzID0gYW55PihcbiAgICAgIG9wZXJhdGlvbjogc3RyaW5nIHwgR3JhcGhRTFBhcmFtczxNQmFzZT5bXSxcbiAgICAgIGZpZWxkcz86IEhhc3VyYUdyYXBoUUxGaWVsZHM8TUJhc2U+LFxuICAgICAgdmFyaWFibGVzPzogVmFyaWFibGVPcHRpb25zLFxuICAgICk6IFByb21pc2U8UmV0dXJuRmllbGRzPiB7XG4gICAgICBjb25zdCByZXN1bHRRdWVyeSA9IEdyYXBoUUxGaWVsZEhlbHBlci5DaGVja0lzR3JhcGhRTFBhcmFtcyhvcGVyYXRpb24pXG4gICAgICAgID8gcXVlcnkoXG4gICAgICAgICAgICBvcGVyYXRpb24ubWFwKChvcHRpb24pID0+ICh7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbjogb3B0aW9uLm9wZXJhdGlvbixcbiAgICAgICAgICAgICAgdmFyaWFibGVzOiBvcHRpb24udmFyaWFibGVzLFxuICAgICAgICAgICAgICBmaWVsZHM6IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0TW9kZWxGaWVsZHNUb0dyYXBoUUxGaWVsZHMob3B0aW9uLmZpZWxkcyksXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgKVxuICAgICAgICA6IHF1ZXJ5KHtcbiAgICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICAgIHZhcmlhYmxlcyxcbiAgICAgICAgICAgIGZpZWxkczogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhmaWVsZHMpLFxuICAgICAgICAgIH0pXG5cbiAgICAgIHJldHVybiB0aGlzLmZldGNoKHJlc3VsdFF1ZXJ5KVxuICAgIH1cblxuICAgIGFzeW5jIGZldGNoPFJldHVybkZpZWxkcyA9IGFueT4ocGFyYW1zOiB7IHZhcmlhYmxlczogYW55OyBxdWVyeTogc3RyaW5nIH0pOiBQcm9taXNlPFJldHVybkZpZWxkcz4ge1xuICAgICAgY29uc3QgaGVhZGVycyA9IHRoaXMuaGVhZGVyc1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt0aGlzLmVuZHBvaW50fWAsIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHBhcmFtcyksXG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9KVxuICAgICAgY29uc3QgcmVzdWx0OiBhbnkgPSBhd2FpdCByZXNwb25zZS5qc29uKClcblxuICAgICAgaWYgKCFpc05pbChyZXN1bHQuZXJyb3JzKSkgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHJlc3VsdC5lcnJvcnMpKVxuXG4gICAgICByZXR1cm4gcmVzdWx0LmRhdGFcbiAgICB9XG5cbiAgICBnZXRBdHRyaWJ1dGVHcmFwaFFMVHlwZU9mPEZpZWxkVHlwZT4odmFsdWU6IEZpZWxkVHlwZSk6IHN0cmluZyB7XG4gICAgICBpZiAoaXNVVUlEKHZhbHVlIGFzIGFueSkpIHJldHVybiAndXVpZCdcbiAgICAgIGlmIChpc1N0cmluZyh2YWx1ZSkpIHJldHVybiAnU3RyaW5nJ1xuICAgICAgaWYgKGlzQm9vbGVhbih2YWx1ZSkpIHJldHVybiAnQm9vbGVhbidcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHJldHVybiAndGltZXN0YW1wdHonXG4gICAgICBpZiAoaXNJbnRlZ2VyKHZhbHVlKSkgcmV0dXJuICdJbnQnXG4gICAgICBpZiAoaXNOdW1iZXIodmFsdWUpKSByZXR1cm4gJ251bWVyaWMnXG5cbiAgICAgIHRocm93IG5ldyBFcnJvcignVHlwZSBub3QgaW1wbGVtZW50ZWQgeWV0JylcbiAgICB9XG5cbiAgICBjaGVja0lmSXNEYXRlVGltZUFuZFBhcnNlKHZhbHVlOiBzdHJpbmcpOiBEYXRlIHwgc3RyaW5nIHtcbiAgICAgIGlmICghL15cXGR7NH0tKDBbMS05XXwxWzAtMl0pLSgwWzEtOV18WzEyXVswLTldfDNbMDFdKSQvLnRlc3QodmFsdWUpKSByZXR1cm4gdmFsdWVcblxuICAgICAgY29uc3QgZGF0ZSA9IHBhcnNlSVNPKHZhbHVlKVxuXG4gICAgICBpZiAoaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSByZXR1cm4gdmFsdWVcblxuICAgICAgcmV0dXJuIGRhdGVcbiAgICB9XG5cbiAgICBjb252ZXJ0RGF0YUZyb21IYXN1cmEoZGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPik6IE1CYXNlIHtcbiAgICAgIGNvbnN0IHBsYWluID0gR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRGaWVsZFZhbHVlRnJvbShkYXRhLCB0aGlzLmZpZWxkcylcblxuICAgICAgcmV0dXJuIHRoaXMubW9kZWwudG9JbnN0YW5jZShwbGFpbilcbiAgICB9XG5cbiAgICBjb252ZXJ0RGF0YVRvSGFzdXJhKGluc3RhbmNlOiBNQmFzZSwgdXBkYXRlID0gZmFsc2UpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+IHtcbiAgICAgIHJldHVybiBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydEZpZWxkVmFsdWVUbyhpbnN0YW5jZSwgdGhpcy5maWVsZHMsIHVwZGF0ZSlcbiAgICB9XG4gIH1cbn1cbiJdfQ==
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1oYXN1cmEtZ3JhcGhxbC5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2hhc3VyYS1ncmFwaHFsL21peGlucy93aXRoLWhhc3VyYS1ncmFwaHFsLm1peGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUN6QixPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBR25ELE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssRUFDTCxLQUFLLEVBQ0wsUUFBUSxFQUNSLFFBQVEsRUFDUixNQUFNLEVBR04sUUFBUSxHQUNULE1BQU0sZ0JBQWdCLENBQUE7QUFXdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBc0I5QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUMvQixTQUFZLEVBQ2tGLEVBQUU7SUFDaEcsT0FBTyxNQUFNLGtCQUFtQixTQUFRLFNBQVM7UUFtQi9DLFlBQVksR0FBRyxNQUFhO1lBQzFCLE1BQU0sT0FBTyxHQUE2QixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFFbkQsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUE7WUFFaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFBO1lBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQTtZQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUE7WUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFBO1lBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFnRCxDQUFBO1FBQzlG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QUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN6QixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7b0JBQzNCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztvQkFDM0IsTUFBTSxFQUFFLGtCQUFrQixDQUFDLGlDQUFpQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7aUJBQzVFLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUM7b0JBQ0UsU0FBUztvQkFDVCxTQUFTO29CQUNULE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxpQ0FBaUMsQ0FBQyxNQUFNLENBQUM7aUJBQ3JFLENBQUE7UUFDUCxDQUFDO0tBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdheGlvcydcbmltcG9ydCB7IG11dGF0aW9uLCBxdWVyeSB9IGZyb20gJ2dxbC1xdWVyeS1idWlsZGVyJ1xuXG5pbXBvcnQgeyBCYXNlTW9kZWxCdWlsZGVyLCBNb2RlbEJhc2VTdHJ1Y3R1cmUgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nXG5pbXBvcnQge1xuICBpc0Jvb2xlYW4sXG4gIGlzSW50ZWdlcixcbiAgaXNOYU4sXG4gIGlzTmlsLFxuICBpc051bWJlcixcbiAgaXNTdHJpbmcsXG4gIGlzVVVJRCxcbiAgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtcyxcbiAgTWl4aW5DdG9yLFxuICBwYXJzZUlTTyxcbn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQge1xuICBGaWVsZHMsXG4gIEdyYXBoUUxQYXJhbXMsXG4gIEdyYXBoUUxSZXBvc2l0b3J5LFxuICBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnMsXG4gIEhhc3VyYUdyYXBoUUxGaWVsZHMsXG4gIEhhc3VyYUdyYXBoUUxIZWFkZXJzLFxuICBWYXJpYWJsZU9wdGlvbnMsXG59IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBHcmFwaFFMRmllbGRIZWxwZXIgfSBmcm9tICcuL2hlbHBlcnMnXG5cbnR5cGUgUXVlcnlCdWlsZGVyT3B0aW9ucyA9IHtcbiAgb3BlcmF0aW9uOiBzdHJpbmdcbiAgZmllbGRzOiBGaWVsZHNcbiAgdmFyaWFibGVzPzogVmFyaWFibGVPcHRpb25zXG59XG5cbnR5cGUgSGFzdXJhR3JhcGhRTEludGVyY2VwdG9yczxQID0gUXVlcnlCdWlsZGVyT3B0aW9ucyB8IFF1ZXJ5QnVpbGRlck9wdGlvbnNbXT4gPSB7XG4gIHJlcXVlc3Q/OiA8Uj4ocmVxdWVzdDogUCkgPT4gUHJvbWlzZTxQICYgUj5cbiAgcmVzcG9uc2U/OiA8Uj4ocmVzcG9uc2U6IFIsIHJlcXVlc3Q6IFApID0+IFByb21pc2U8Uj5cbn1cblxuZXhwb3J0IHR5cGUgQ29uc3RydWN0b3JQYXJhbXM8TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+ID0ge1xuICB0YWJsZU5hbWU6IHN0cmluZ1xuICBtb2RlbDogQmFzZU1vZGVsQnVpbGRlcjxNb2RlbD5cbiAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPlxuICBlbmRwb2ludDogc3RyaW5nXG4gIGludGVyY2VwdG9ycz86IEhhc3VyYUdyYXBoUUxJbnRlcmNlcHRvcnNcbiAgYXV0aE9wdGlvbnM6IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9uc1xufVxuXG5leHBvcnQgY29uc3Qgd2l0aEhhc3VyYUdyYXBoUUwgPSA8TUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUsIFQgZXh0ZW5kcyBNaXhpbkN0b3IgPSBNaXhpbkN0b3I+KFxuICBNaXhpbkJhc2U6IFQsXG4pOiBNaXhpbkN0b3I8R3JhcGhRTFJlcG9zaXRvcnk8TUJhc2U+LCBNZXJnZUNvbnN0cnVjdG9yUGFyYW1zPGFueVtdLCBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VD4+PiA9PiB7XG4gIHJldHVybiBjbGFzcyBIYXN1cmFHcmFwaFFMTWl4aW4gZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4ge1xuICAgIHRhYmxlTmFtZTogc3RyaW5nXG4gICAgZW5kcG9pbnQ6IHN0cmluZ1xuICAgIGF1dGhPcHRpb25zOiBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnNcbiAgICBpbnRlcmNlcHRvcnM6IEhhc3VyYUdyYXBoUUxJbnRlcmNlcHRvcnNcbiAgICBtb2RlbDogQmFzZU1vZGVsQnVpbGRlcjxNQmFzZT5cbiAgICBmaWVsZHM6IEhhc3VyYUdyYXBoUUxGaWVsZHM8TUJhc2U+XG5cbiAgICBnZXQgaGVhZGVycygpOiBIYXN1cmFHcmFwaFFMSGVhZGVycyB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAuLi4oaXNOaWwodGhpcy5hdXRoT3B0aW9ucy5hdXRoVG9rZW4pID8ge30gOiB7IEF1dGhvcml6YXRpb246IHRoaXMuYXV0aE9wdGlvbnMuYXV0aFRva2VuIH0pLFxuICAgICAgICAuLi4oaXNOaWwodGhpcy5hdXRoT3B0aW9ucy5hZG1pblNlY3JldCkgPyB7fSA6IHsgJ1gtSGFzdXJhLUFkbWluLVNlY3JldCc6IHRoaXMuYXV0aE9wdGlvbnMuYWRtaW5TZWNyZXQgfSksXG4gICAgICAgIC4uLihpc05pbCh0aGlzLmF1dGhPcHRpb25zLmF1dGhSb2xlKVxuICAgICAgICAgID8ge31cbiAgICAgICAgICA6IHsgJ1gtSGFzdXJhLVJvbGUnOiB0aGlzLmF1dGhPcHRpb25zLmF1dGhSb2xlLnJvbGUsICdYLUhhc3VyYS1Vc2VyLUlkJzogdGhpcy5hdXRoT3B0aW9ucy5hdXRoUm9sZS51c2VySWQgfSksXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoLi4ucGFyYW1zOiBhbnlbXSkge1xuICAgICAgY29uc3Qgb3B0aW9uczogQ29uc3RydWN0b3JQYXJhbXM8TUJhc2U+ID0gcGFyYW1zWzBdXG5cbiAgICAgIHN1cGVyKC4uLnBhcmFtcylcblxuICAgICAgdGhpcy50YWJsZU5hbWUgPSBvcHRpb25zLnRhYmxlTmFtZVxuICAgICAgdGhpcy5lbmRwb2ludCA9IG9wdGlvbnMuZW5kcG9pbnRcbiAgICAgIHRoaXMuYXV0aE9wdGlvbnMgPSBvcHRpb25zLmF1dGhPcHRpb25zXG4gICAgICB0aGlzLm1vZGVsID0gb3B0aW9ucy5tb2RlbFxuICAgICAgdGhpcy5maWVsZHMgPSBvcHRpb25zLmZpZWxkcyB8fCAodGhpcy5tb2RlbC5pZGVudGlmaWVyc0ZpZWxkcyBhcyBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPilcbiAgICB9XG5cbiAgICBhc3luYyBtdXRhdGlvbjxSZXR1cm5GaWVsZHMgPSBhbnk+KFxuICAgICAgb3BlcmF0aW9uOiBzdHJpbmcsXG4gICAgICBmaWVsZHM/OiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcbiAgICAgIHZhcmlhYmxlcz86IFZhcmlhYmxlT3B0aW9ucyxcbiAgICApOiBQcm9taXNlPFJldHVybkZpZWxkcz4ge1xuICAgICAgY29uc3QgcmVzdWx0UXVlcnkgPSBtdXRhdGlvbih7XG4gICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgdmFyaWFibGVzLFxuICAgICAgICBmaWVsZHM6IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0TW9kZWxGaWVsZHNUb0dyYXBoUUxGaWVsZHMoZmllbGRzKSxcbiAgICAgIH0pXG5cbiAgICAgIHJldHVybiB0aGlzLmZldGNoKHJlc3VsdFF1ZXJ5KVxuICAgIH1cblxuICAgIGFzeW5jIHF1ZXJ5PFJldHVybkZpZWxkcyA9IGFueT4oXG4gICAgICBvcGVyYXRpb246IHN0cmluZyB8IEdyYXBoUUxQYXJhbXM8TUJhc2U+W10sXG4gICAgICBmaWVsZHM/OiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcbiAgICAgIHZhcmlhYmxlcz86IFZhcmlhYmxlT3B0aW9ucyxcbiAgICApOiBQcm9taXNlPFJldHVybkZpZWxkcz4ge1xuICAgICAgY29uc3QgYnVpbGRlZCA9IHRoaXMuYnVpbGRIYXN1cmFRdWVyeUZpZWxkcyh7IG9wZXJhdGlvbiwgZmllbGRzLCB2YXJpYWJsZXMgfSlcbiAgICAgIGNvbnN0IGludGVycGVjdGVkID0gKGF3YWl0IHRoaXMuaW50ZXJjZXB0b3JzPy5yZXF1ZXN0Py4oYnVpbGRlZCkpIHx8IGJ1aWxkZWRcbiAgICAgIGNvbnN0IHJlc3VsdFF1ZXJ5ID0gcXVlcnkoaW50ZXJwZWN0ZWQpXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmZldGNoKHJlc3VsdFF1ZXJ5KVxuXG4gICAgICByZXR1cm4gKGF3YWl0IHRoaXMuaW50ZXJjZXB0b3JzPy5yZXNwb25zZT8uKHJlc3VsdCwgaW50ZXJwZWN0ZWQpKSB8fCByZXN1bHRcbiAgICB9XG5cbiAgICBhc3luYyBmZXRjaDxSZXR1cm5GaWVsZHMgPSBhbnk+KHBhcmFtczogeyB2YXJpYWJsZXM6IGFueTsgcXVlcnk6IHN0cmluZyB9KTogUHJvbWlzZTxSZXR1cm5GaWVsZHM+IHtcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLmhlYWRlcnNcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MucG9zdChgJHt0aGlzLmVuZHBvaW50fWAsIHBhcmFtcywge1xuICAgICAgICBoZWFkZXJzLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IHJlc3VsdDogYW55ID0gYXdhaXQgcmVzcG9uc2UuZGF0YVxuXG4gICAgICBpZiAoIWlzTmlsKHJlc3VsdC5lcnJvcnMpKSB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkocmVzdWx0LmVycm9ycykpXG5cbiAgICAgIHJldHVybiByZXN1bHQuZGF0YVxuICAgIH1cblxuICAgIGdldEF0dHJpYnV0ZUdyYXBoUUxUeXBlT2Y8RmllbGRUeXBlPih2YWx1ZTogRmllbGRUeXBlKTogc3RyaW5nIHtcbiAgICAgIGlmIChpc1VVSUQodmFsdWUgYXMgYW55KSkgcmV0dXJuICd1dWlkJ1xuICAgICAgaWYgKGlzU3RyaW5nKHZhbHVlKSkgcmV0dXJuICdTdHJpbmcnXG4gICAgICBpZiAoaXNCb29sZWFuKHZhbHVlKSkgcmV0dXJuICdCb29sZWFuJ1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuICd0aW1lc3RhbXB0eidcbiAgICAgIGlmIChpc0ludGVnZXIodmFsdWUpKSByZXR1cm4gJ0ludCdcbiAgICAgIGlmIChpc051bWJlcih2YWx1ZSkpIHJldHVybiAnbnVtZXJpYydcblxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUeXBlIG5vdCBpbXBsZW1lbnRlZCB5ZXQnKVxuICAgIH1cblxuICAgIGNoZWNrSWZJc0RhdGVUaW1lQW5kUGFyc2UodmFsdWU6IHN0cmluZyk6IERhdGUgfCBzdHJpbmcge1xuICAgICAgaWYgKCEvXlxcZHs0fS0oMFsxLTldfDFbMC0yXSktKDBbMS05XXxbMTJdWzAtOV18M1swMV0pJC8udGVzdCh2YWx1ZSkpIHJldHVybiB2YWx1ZVxuXG4gICAgICBjb25zdCBkYXRlID0gcGFyc2VJU08odmFsdWUpXG5cbiAgICAgIGlmIChpc05hTihkYXRlLmdldFRpbWUoKSkpIHJldHVybiB2YWx1ZVxuXG4gICAgICByZXR1cm4gZGF0ZVxuICAgIH1cblxuICAgIGNvbnZlcnREYXRhRnJvbUhhc3VyYShkYXRhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+KTogTUJhc2Uge1xuICAgICAgY29uc3QgcGxhaW4gPSBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydEZpZWxkVmFsdWVGcm9tKGRhdGEsIHRoaXMuZmllbGRzKVxuXG4gICAgICByZXR1cm4gdGhpcy5tb2RlbC50b0luc3RhbmNlKHBsYWluKVxuICAgIH1cblxuICAgIGNvbnZlcnREYXRhVG9IYXN1cmEoaW5zdGFuY2U6IE1CYXNlLCB1cGRhdGUgPSBmYWxzZSk6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj4ge1xuICAgICAgcmV0dXJuIEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0RmllbGRWYWx1ZVRvKGluc3RhbmNlLCB0aGlzLmZpZWxkcywgdXBkYXRlKVxuICAgIH1cblxuICAgIGJ1aWxkSGFzdXJhUXVlcnlGaWVsZHMoe1xuICAgICAgb3BlcmF0aW9uLFxuICAgICAgZmllbGRzLFxuICAgICAgdmFyaWFibGVzLFxuICAgIH06IHtcbiAgICAgIG9wZXJhdGlvbjogc3RyaW5nIHwgR3JhcGhRTFBhcmFtczxNQmFzZT5bXVxuICAgICAgZmllbGRzPzogSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT5cbiAgICAgIHZhcmlhYmxlcz86IFZhcmlhYmxlT3B0aW9uc1xuICAgIH0pOiBRdWVyeUJ1aWxkZXJPcHRpb25zIHwgUXVlcnlCdWlsZGVyT3B0aW9uc1tdIHtcbiAgICAgIHJldHVybiBHcmFwaFFMRmllbGRIZWxwZXIuQ2hlY2tJc0dyYXBoUUxQYXJhbXMob3BlcmF0aW9uKVxuICAgICAgICA/IG9wZXJhdGlvbi5tYXAoKG9wdGlvbikgPT4gKHtcbiAgICAgICAgICAgIG9wZXJhdGlvbjogb3B0aW9uLm9wZXJhdGlvbixcbiAgICAgICAgICAgIHZhcmlhYmxlczogb3B0aW9uLnZhcmlhYmxlcyxcbiAgICAgICAgICAgIGZpZWxkczogR3JhcGhRTEZpZWxkSGVscGVyLkNvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyhvcHRpb24uZmllbGRzKSxcbiAgICAgICAgICB9KSlcbiAgICAgICAgOiB7XG4gICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICB2YXJpYWJsZXMsXG4gICAgICAgICAgICBmaWVsZHM6IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0TW9kZWxGaWVsZHNUb0dyYXBoUUxGaWVsZHMoZmllbGRzKSxcbiAgICAgICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=