@tiba-spark/client-shared-lib 25.3.0-103 → 25.3.0-108

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 (43) hide show
  1. package/esm2022/libraries/guards/sub-module-guard.mjs +21 -10
  2. package/esm2022/libraries/modules/auth/auth.service.mjs +1 -1
  3. package/esm2022/libraries/modules/auth/session.actions.mjs +13 -3
  4. package/esm2022/libraries/modules/auth/session.state.mjs +43 -13
  5. package/esm2022/libraries/modules/login/login.actions.mjs +8 -1
  6. package/esm2022/libraries/modules/login/login.state.mjs +47 -10
  7. package/esm2022/libraries/modules/smartparks/smartpark.actions.mjs +27 -1
  8. package/esm2022/libraries/modules/smartparks/smartpark.state.mjs +42 -6
  9. package/esm2022/libraries/resolvers/mobile-command-center-module.resolver.mjs +17 -19
  10. package/esm2022/libraries/service-proxy/cloud-service-proxies.mjs +1342 -386
  11. package/esm2022/libraries/service-proxy/identity-service-proxies.mjs +100 -1
  12. package/esm2022/libraries/service-proxy/service-proxy.module.mjs +8 -4
  13. package/esm2022/libraries/services/auth-token.service.mjs +19 -3
  14. package/esm2022/libraries/services/tenant.service.mjs +12 -6
  15. package/fesm2022/tiba-spark-client-shared-lib.mjs +1617 -385
  16. package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
  17. package/libraries/guards/sub-module-guard.d.ts +3 -1
  18. package/libraries/guards/sub-module-guard.d.ts.map +1 -1
  19. package/libraries/modules/auth/auth.service.d.ts.map +1 -1
  20. package/libraries/modules/auth/session.actions.d.ts +11 -2
  21. package/libraries/modules/auth/session.actions.d.ts.map +1 -1
  22. package/libraries/modules/auth/session.state.d.ts +7 -3
  23. package/libraries/modules/auth/session.state.d.ts.map +1 -1
  24. package/libraries/modules/login/login.actions.d.ts +6 -0
  25. package/libraries/modules/login/login.actions.d.ts.map +1 -1
  26. package/libraries/modules/login/login.state.d.ts +8 -5
  27. package/libraries/modules/login/login.state.d.ts.map +1 -1
  28. package/libraries/modules/smartparks/smartpark.actions.d.ts +19 -0
  29. package/libraries/modules/smartparks/smartpark.actions.d.ts.map +1 -1
  30. package/libraries/modules/smartparks/smartpark.state.d.ts +7 -3
  31. package/libraries/modules/smartparks/smartpark.state.d.ts.map +1 -1
  32. package/libraries/resolvers/mobile-command-center-module.resolver.d.ts +3 -5
  33. package/libraries/resolvers/mobile-command-center-module.resolver.d.ts.map +1 -1
  34. package/libraries/service-proxy/cloud-service-proxies.d.ts +140 -40
  35. package/libraries/service-proxy/cloud-service-proxies.d.ts.map +1 -1
  36. package/libraries/service-proxy/identity-service-proxies.d.ts +15 -0
  37. package/libraries/service-proxy/identity-service-proxies.d.ts.map +1 -1
  38. package/libraries/service-proxy/service-proxy.module.d.ts.map +1 -1
  39. package/libraries/services/auth-token.service.d.ts +4 -2
  40. package/libraries/services/auth-token.service.d.ts.map +1 -1
  41. package/libraries/services/tenant.service.d.ts +4 -1
  42. package/libraries/services/tenant.service.d.ts.map +1 -1
  43. package/package.json +1 -1
@@ -77,4 +77,11 @@ export class OpenIdAutheticateAction {
77
77
  this.tenantInfo = tenantInfo;
78
78
  }
79
79
  }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvbW9kdWxlcy9sb2dpbi9sb2dpbi5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sT0FBTyxvQkFBb0I7YUFDUixTQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFdkQsWUFBbUIsS0FBYSxFQUFTLFFBQWdCO1FBQXRDLFVBQUssR0FBTCxLQUFLLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQ3pELENBQUM7O0FBR0gsTUFBTSxPQUFPLDhCQUE4QjthQUNsQixTQUFJLEdBQUcsa0NBQWtDLENBQUM7SUFFakUsWUFBbUIsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7SUFDaEMsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sNEJBQTRCO2FBQ2hCLFNBQUksR0FBRyw2QkFBNkIsQ0FBQztJQUU1RCxZQUFtQixRQUFrQixFQUFTLFVBQWtCLEVBQVMsYUFBbUM7UUFBekYsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFTLGVBQVUsR0FBVixVQUFVLENBQVE7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7SUFDNUcsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sNkJBQTZCO2FBQ2pCLFNBQUksR0FBRyw4QkFBOEIsQ0FBQztJQUU3RCxZQUFtQixRQUFnQixFQUFTLFFBQWdCO1FBQXpDLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQzVELENBQUM7O0FBR0gsTUFBTSxPQUFPLHdCQUF3QjthQUNaLFNBQUksR0FBRyw0QkFBNEIsQ0FBQztJQUUzRCxZQUFtQixRQUFnQjtRQUFoQixhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQ25DLENBQUM7O0FBR0gsTUFBTSxPQUFPLHVCQUF1QjthQUNYLFNBQUksR0FBRyx1QkFBdUIsQ0FBQztJQUV0RCxZQUFtQixLQUFhLEVBQVMsU0FBNkI7UUFBbkQsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBQ3BFLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7O0FBR0gsTUFBTSxPQUFPLGlDQUFpQzthQUNyQixTQUFJLEdBQUcscUNBQXFDLENBQUM7SUFFcEUsWUFBbUIsUUFBZ0IsRUFBUyxRQUFnQjtRQUF6QyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBUTtJQUM1RCxDQUFDOztBQUdILE1BQU0sT0FBTyx1Q0FBdUM7YUFDM0IsU0FBSSxHQUFHLDJDQUEyQyxDQUFDO0lBRTFFLFlBQW1CLFFBQWdCLEVBQVMsUUFBZ0IsRUFBUyxhQUFxQixJQUFJO1FBQTNFLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBZTtJQUM5RixDQUFDOztBQUdILE1BQU0sT0FBTyxpQ0FBaUM7YUFDckIsU0FBSSxHQUFHLDJDQUEyQyxDQUFDO0lBRTFFLFlBQW1CLFFBQWdCLEVBQVMsSUFBWSxFQUFTLFdBQVcsS0FBSztRQUE5RCxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQVE7SUFDakYsQ0FBQzs7QUFHSCxNQUFNLE9BQU8saUJBQWlCO2FBQ0wsU0FBSSxHQUFHLDJCQUEyQixDQUFDO0lBRTFELFlBQW1CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQzNDLENBQUM7O0FBR0gsTUFBTSxPQUFPLHVCQUF1QjthQUNYLFNBQUksR0FBRyxpQ0FBaUMsQ0FBQztJQUNoRSxZQUFtQixLQUFhLEVBQVMsb0JBQTBDLEVBQVMsVUFBc0I7UUFBL0YsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFTLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQ2xILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZmFTZXR1cER0byB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllc1wiO1xuaW1wb3J0IHsgU2luZ2xlU2lnbk9uUHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vc2VydmljZS1wcm94eS9lZGdlLXNlcnZpY2UtcHJveGllc1wiO1xuaW1wb3J0IHsgUGFzc3dvcmRDaGFuZ2VUeXBlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UtcHJveHkvaWRlbnRpdHktc2VydmljZS1wcm94aWVzXCI7XG5pbXBvcnQgeyBUZW5hbnRJbmZvIH0gZnJvbSBcIi4uL2F1dGgvbW9kZWwvdGVuYW50LWluZm8uaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBVc2VySW5mbyB9IGZyb20gXCIuLi9hdXRoL21vZGVsL3VzZXItaW5mby5pbnRlcmZhY2VcIjtcblxuZXhwb3J0IGNsYXNzIEZvcmdvdFBhc3N3b3JkQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tsb2dpbl0gRm9yZ290UGFzc3dvcmQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbWFpbDogc3RyaW5nLCBwdWJsaWMgdGVuYW50SWQ6IG51bWJlcikge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGb3Jnb3RQYXNzd29yZFRlbmFudGxlc3NBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW2xvZ2luXSBGb3Jnb3RQYXNzd29yZFRlbmFudGxlc3MnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbWFpbDogc3RyaW5nKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjY291bnRTZXRQYXNzd29yZEluaXRBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW2FjY291bnQtc2V0LXBhc3N3b3JkXSBJbml0JztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlckluZm86IFVzZXJJbmZvLCBwdWJsaWMgdGVuYW50TmFtZTogc3RyaW5nLCBwdWJsaWMgY29tcG9uZW50VHlwZTogKFBhc3N3b3JkQ2hhbmdlVHlwZSkpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWNjb3VudFNldFBhc3N3b3JkRXJyb3JBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW2FjY291bnQtc2V0LXBhc3N3b3JkXSBFcnJvcic7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVycm9yTXNnOiBzdHJpbmcsIHB1YmxpYyB1c2VybmFtZTogc3RyaW5nKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjY291bnRTZXRQYXNzd29yZEFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbYWNjb3VudC1zZXQtcGFzc3dvcmRdIFNldCc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVmFsaWRhdGVVc2VyVG9rZW5BY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3ZhbGlkYXRlLXRva2VuXSBVc2VyJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdG9rZW46IHN0cmluZywgcHVibGljIHRva2VuVHlwZTogUGFzc3dvcmRDaGFuZ2VUeXBlKSB7XG4gICAgY29uc29sZS5kZWJ1ZygnY29uICcsIHRva2VuVHlwZSwgdHlwZW9mIHRva2VuVHlwZSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0ZU11bHRpcGxlVGVuYW50c0FjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbbG9naW5dIEF1dGhlbnRpY2F0ZU11bHRpcGxlVGVuYW50cyc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHVzZXJuYW1lOiBzdHJpbmcsIHB1YmxpYyBwYXNzd29yZDogc3RyaW5nKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1vYmlsZUF1dGhlbnRpY2F0ZU11bHRpcGxlVGVuYW50c0FjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbbG9naW5dIE1vYmlsZUF1dGhlbnRpY2F0ZU11bHRpcGxlVGVuYW50cyc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHVzZXJuYW1lOiBzdHJpbmcsIHB1YmxpYyBwYXNzd29yZDogc3RyaW5nLCBwdWJsaWMgdGVuYW50TmFtZTogc3RyaW5nID0gbnVsbCkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBWZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb25BY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW2xvZ2luXSBWZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb25BY3Rpb24nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nLCBwdWJsaWMgY29kZTogc3RyaW5nLCBwdWJsaWMgc2V0dXAyRmEgPSBmYWxzZSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRURkFTZXR1cEFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbbG9naW5dIFNldFRGQVNldHVwQWN0aW9uJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGZhU2V0dXBEdG86IFRmYVNldHVwRHRvKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9wZW5JZEF1dGhldGljYXRlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tsb2dpbl0gT3BlbklkQXV0aGV0aWNhdGVBY3Rpb24nO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdG9rZW46IHN0cmluZywgcHVibGljIHNpbmdsZVNpZ25PblByb3ZpZGVyOiBTaW5nbGVTaWduT25Qcm92aWRlciwgcHVibGljIHRlbmFudEluZm86IFRlbmFudEluZm8pIHtcbiAgfVxufSJdfQ==
80
+ export class BackofficeAutheticateAction {
81
+ static { this.type = '[login] BackofficeAutheticateAction'; }
82
+ constructor(token, tenantInfo) {
83
+ this.token = token;
84
+ this.tenantInfo = tenantInfo;
85
+ }
86
+ }
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvbW9kdWxlcy9sb2dpbi9sb2dpbi5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sT0FBTyxvQkFBb0I7YUFDUixTQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFdkQsWUFBbUIsS0FBYSxFQUFTLFFBQWdCO1FBQXRDLFVBQUssR0FBTCxLQUFLLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQ3pELENBQUM7O0FBR0gsTUFBTSxPQUFPLDhCQUE4QjthQUNsQixTQUFJLEdBQUcsa0NBQWtDLENBQUM7SUFFakUsWUFBbUIsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7SUFDaEMsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sNEJBQTRCO2FBQ2hCLFNBQUksR0FBRyw2QkFBNkIsQ0FBQztJQUU1RCxZQUFtQixRQUFrQixFQUFTLFVBQWtCLEVBQVMsYUFBbUM7UUFBekYsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFTLGVBQVUsR0FBVixVQUFVLENBQVE7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7SUFDNUcsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sNkJBQTZCO2FBQ2pCLFNBQUksR0FBRyw4QkFBOEIsQ0FBQztJQUU3RCxZQUFtQixRQUFnQixFQUFTLFFBQWdCO1FBQXpDLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQzVELENBQUM7O0FBR0gsTUFBTSxPQUFPLHdCQUF3QjthQUNaLFNBQUksR0FBRyw0QkFBNEIsQ0FBQztJQUUzRCxZQUFtQixRQUFnQjtRQUFoQixhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQ25DLENBQUM7O0FBR0gsTUFBTSxPQUFPLHVCQUF1QjthQUNYLFNBQUksR0FBRyx1QkFBdUIsQ0FBQztJQUV0RCxZQUFtQixLQUFhLEVBQVMsU0FBNkI7UUFBbkQsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBQ3BFLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7O0FBR0gsTUFBTSxPQUFPLGlDQUFpQzthQUNyQixTQUFJLEdBQUcscUNBQXFDLENBQUM7SUFFcEUsWUFBbUIsUUFBZ0IsRUFBUyxRQUFnQjtRQUF6QyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBUTtJQUM1RCxDQUFDOztBQUdILE1BQU0sT0FBTyx1Q0FBdUM7YUFDM0IsU0FBSSxHQUFHLDJDQUEyQyxDQUFDO0lBRTFFLFlBQW1CLFFBQWdCLEVBQVMsUUFBZ0IsRUFBUyxhQUFxQixJQUFJO1FBQTNFLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBZTtJQUM5RixDQUFDOztBQUdILE1BQU0sT0FBTyxpQ0FBaUM7YUFDckIsU0FBSSxHQUFHLDJDQUEyQyxDQUFDO0lBRTFFLFlBQW1CLFFBQWdCLEVBQVMsSUFBWSxFQUFTLFdBQVcsS0FBSztRQUE5RCxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQVE7SUFDakYsQ0FBQzs7QUFHSCxNQUFNLE9BQU8saUJBQWlCO2FBQ0wsU0FBSSxHQUFHLDJCQUEyQixDQUFDO0lBRTFELFlBQW1CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQzNDLENBQUM7O0FBR0gsTUFBTSxPQUFPLHVCQUF1QjthQUNYLFNBQUksR0FBRyxpQ0FBaUMsQ0FBQztJQUNoRSxZQUFtQixLQUFhLEVBQVMsb0JBQTBDLEVBQVMsVUFBc0I7UUFBL0YsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFTLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQ2xILENBQUM7O0FBR0gsTUFBTSxPQUFPLDJCQUEyQjthQUNmLFNBQUksR0FBRyxxQ0FBcUMsQ0FBQztJQUNwRSxZQUFtQixLQUFhLEVBQVMsVUFBc0I7UUFBNUMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFTLGVBQVUsR0FBVixVQUFVLENBQVk7SUFDL0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRmYVNldHVwRHRvIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzXCI7XG5pbXBvcnQgeyBTaW5nbGVTaWduT25Qcm92aWRlciB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlLXByb3h5L2VkZ2Utc2VydmljZS1wcm94aWVzXCI7XG5pbXBvcnQgeyBQYXNzd29yZENoYW5nZVR5cGUgfSBmcm9tIFwiLi4vLi4vc2VydmljZS1wcm94eS9pZGVudGl0eS1zZXJ2aWNlLXByb3hpZXNcIjtcbmltcG9ydCB7IFRlbmFudEluZm8gfSBmcm9tIFwiLi4vYXV0aC9tb2RlbC90ZW5hbnQtaW5mby5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFVzZXJJbmZvIH0gZnJvbSBcIi4uL2F1dGgvbW9kZWwvdXNlci1pbmZvLmludGVyZmFjZVwiO1xuXG5leHBvcnQgY2xhc3MgRm9yZ290UGFzc3dvcmRBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW2xvZ2luXSBGb3Jnb3RQYXNzd29yZCc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVtYWlsOiBzdHJpbmcsIHB1YmxpYyB0ZW5hbnRJZDogbnVtYmVyKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZvcmdvdFBhc3N3b3JkVGVuYW50bGVzc0FjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbbG9naW5dIEZvcmdvdFBhc3N3b3JkVGVuYW50bGVzcyc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVtYWlsOiBzdHJpbmcpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWNjb3VudFNldFBhc3N3b3JkSW5pdEFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbYWNjb3VudC1zZXQtcGFzc3dvcmRdIEluaXQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VySW5mbzogVXNlckluZm8sIHB1YmxpYyB0ZW5hbnROYW1lOiBzdHJpbmcsIHB1YmxpYyBjb21wb25lbnRUeXBlOiAoUGFzc3dvcmRDaGFuZ2VUeXBlKSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY2NvdW50U2V0UGFzc3dvcmRFcnJvckFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbYWNjb3VudC1zZXQtcGFzc3dvcmRdIEVycm9yJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZXJyb3JNc2c6IHN0cmluZywgcHVibGljIHVzZXJuYW1lOiBzdHJpbmcpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWNjb3VudFNldFBhc3N3b3JkQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1thY2NvdW50LXNldC1wYXNzd29yZF0gU2V0JztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBWYWxpZGF0ZVVzZXJUb2tlbkFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbdmFsaWRhdGUtdG9rZW5dIFVzZXInO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0b2tlbjogc3RyaW5nLCBwdWJsaWMgdG9rZW5UeXBlOiBQYXNzd29yZENoYW5nZVR5cGUpIHtcbiAgICBjb25zb2xlLmRlYnVnKCdjb24gJywgdG9rZW5UeXBlLCB0eXBlb2YgdG9rZW5UeXBlKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXV0aGVudGljYXRlTXVsdGlwbGVUZW5hbnRzQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tsb2dpbl0gQXV0aGVudGljYXRlTXVsdGlwbGVUZW5hbnRzJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlcm5hbWU6IHN0cmluZywgcHVibGljIHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTW9iaWxlQXV0aGVudGljYXRlTXVsdGlwbGVUZW5hbnRzQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tsb2dpbl0gTW9iaWxlQXV0aGVudGljYXRlTXVsdGlwbGVUZW5hbnRzJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlcm5hbWU6IHN0cmluZywgcHVibGljIHBhc3N3b3JkOiBzdHJpbmcsIHB1YmxpYyB0ZW5hbnROYW1lOiBzdHJpbmcgPSBudWxsKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFZlcmlmeTJGYWN0b3JBdXRoZW50aWNhdGlvbkFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbbG9naW5dIFZlcmlmeTJGYWN0b3JBdXRoZW50aWNhdGlvbkFjdGlvbic7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHVzZXJOYW1lOiBzdHJpbmcsIHB1YmxpYyBjb2RlOiBzdHJpbmcsIHB1YmxpYyBzZXR1cDJGYSA9IGZhbHNlKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNldFRGQVNldHVwQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tsb2dpbl0gU2V0VEZBU2V0dXBBY3Rpb24nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZmFTZXR1cER0bzogVGZhU2V0dXBEdG8pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgT3BlbklkQXV0aGV0aWNhdGVBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW2xvZ2luXSBPcGVuSWRBdXRoZXRpY2F0ZUFjdGlvbic7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0b2tlbjogc3RyaW5nLCBwdWJsaWMgc2luZ2xlU2lnbk9uUHJvdmlkZXI6IFNpbmdsZVNpZ25PblByb3ZpZGVyLCBwdWJsaWMgdGVuYW50SW5mbzogVGVuYW50SW5mbykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCYWNrb2ZmaWNlQXV0aGV0aWNhdGVBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW2xvZ2luXSBCYWNrb2ZmaWNlQXV0aGV0aWNhdGVBY3Rpb24nO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdG9rZW46IHN0cmluZywgcHVibGljIHRlbmFudEluZm86IFRlbmFudEluZm8pIHtcbiAgfVxufSJdfQ==
@@ -12,13 +12,13 @@ import { ActivateUserDto, UserStatus } from '../../service-proxy/cloud-service-p
12
12
  import { SingleSignOnProvider, UserUpdatePasswordDto } from '../../service-proxy/edge-service-proxies';
13
13
  import { AuthenticateRequestDto, PasswordChangeType, Verify2FactorAuthRequestDto } from '../../service-proxy/identity-service-proxies';
14
14
  import { parseApiErrorData, parseApiErrorMessage } from '../../utils/api-helper.util';
15
- import { HealthAction, LoadAppConfigurationAction, SetTenantUserAction, UpdateAuthTokenAction } from '../auth/session.actions';
16
- import { AccountSetPasswordAction, AccountSetPasswordErrorAction, AccountSetPasswordInitAction, AuthenticateMultipleTenantsAction, ForgotPasswordAction, ForgotPasswordTenantlessAction, MobileAuthenticateMultipleTenantsAction, OpenIdAutheticateAction, SetTFASetupAction, ValidateUserTokenAction, Verify2FactorAuthenticationAction } from './login.actions';
15
+ import { HealthAction, LoadAppConfigurationAction, LoadBackofficeAppConfigurationAction, SetTenantUserAction, UpdateAuthTokenAction } from '../auth/session.actions';
16
+ import { AccountSetPasswordAction, AccountSetPasswordErrorAction, AccountSetPasswordInitAction, AuthenticateMultipleTenantsAction, BackofficeAutheticateAction, ForgotPasswordAction, ForgotPasswordTenantlessAction, MobileAuthenticateMultipleTenantsAction, OpenIdAutheticateAction, SetTFASetupAction, ValidateUserTokenAction, Verify2FactorAuthenticationAction } from './login.actions';
17
17
  import * as i0 from "@angular/core";
18
- import * as i1 from "../../service-proxy/cloud-service-proxies";
19
- import * as i2 from "../../service-proxy/edge-service-proxies";
20
- import * as i3 from "../../services/openid-auth.service";
21
- import * as i4 from "../../service-proxy/identity-service-proxies";
18
+ import * as i1 from "../../service-proxy/identity-service-proxies";
19
+ import * as i2 from "../../service-proxy/cloud-service-proxies";
20
+ import * as i3 from "../../service-proxy/edge-service-proxies";
21
+ import * as i4 from "../../services/openid-auth.service";
22
22
  import * as i5 from "../auth/auth.service";
23
23
  import * as i6 from "../../services/session-storage.service";
24
24
  import * as i7 from "./login.service";
@@ -29,7 +29,8 @@ import * as i11 from "../../services/app-config.service";
29
29
  import * as i12 from "../../services/route.service";
30
30
  import * as i13 from "@ngxs/store";
31
31
  let LoginState = class LoginState {
32
- constructor(usersServiceProxyCloud, usersServiceProxyEdge, openIdAuthService, usersServiceProxyIdentity, authService, sessionStorageService, loginService, translateService, msalService, messageBarService, appConfig, routeService, store, mobileServiceProxyIdentity) {
32
+ constructor(backofficeUserServiceProxyIdentity, usersServiceProxyCloud, usersServiceProxyEdge, openIdAuthService, usersServiceProxyIdentity, authService, sessionStorageService, loginService, translateService, msalService, messageBarService, appConfig, routeService, store, mobileServiceProxyIdentity) {
33
+ this.backofficeUserServiceProxyIdentity = backofficeUserServiceProxyIdentity;
33
34
  this.usersServiceProxyCloud = usersServiceProxyCloud;
34
35
  this.usersServiceProxyEdge = usersServiceProxyEdge;
35
36
  this.openIdAuthService = openIdAuthService;
@@ -245,6 +246,33 @@ let LoginState = class LoginState {
245
246
  }
246
247
  localStorage.clear();
247
248
  }
249
+ onBackofficeAutheticateAction(ctx, { token, tenantInfo }) {
250
+ let authenticateOidc$;
251
+ authenticateOidc$ = this.backofficeUserServiceProxyIdentity.backofficeAuthenticate(token, tenantInfo.tenantName);
252
+ return authenticateOidc$.pipe(tap({
253
+ next: authResponse => {
254
+ if (authResponse.data.message === Localization.sso_pending_approval) {
255
+ const message = this.translateService.instant(Localization.sso_pending_approval);
256
+ this.messageBarService.info(message, { position: MessageBarPosition.Static });
257
+ return;
258
+ }
259
+ const sparkSession = this.authService.processAuthenticate(authResponse.data);
260
+ ctx.dispatch(new SetTenantUserAction(sparkSession));
261
+ if (this.userStatusIsAwaitingAccess(authResponse)) {
262
+ this.clearSingleSingOnCache(SingleSignOnProvider.Microsoft);
263
+ const message = this.translateService.instant(Localization.sso_pending_approval);
264
+ this.messageBarService.warn(message, { position: MessageBarPosition.Static });
265
+ }
266
+ else {
267
+ // After authentication get app configuration
268
+ this.loginToBackoffice();
269
+ }
270
+ },
271
+ error: e => {
272
+ this.singleSingOnErrorHandling(e);
273
+ }
274
+ }));
275
+ }
248
276
  onOpenIdAutheticateAction(ctx, { token, singleSignOnProvider, tenantInfo }) {
249
277
  let authenticateOidc$;
250
278
  authenticateOidc$ = this.usersServiceProxyIdentity.openIdAuthenticate(token, tenantInfo.tenantName);
@@ -292,7 +320,13 @@ let LoginState = class LoginState {
292
320
  this.sessionStorageService.updateLoggedTenant();
293
321
  this.loginService.loginToSpark();
294
322
  }
295
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginState, deps: [{ token: i1.UsersServiceProxy }, { token: i2.UsersServiceProxy }, { token: i3.OpenIdAuthService }, { token: i4.UsersServiceProxyIdentity }, { token: i5.AuthService }, { token: i6.SessionStorageService }, { token: i7.LoginService }, { token: i8.TranslateService }, { token: i9.MsalService }, { token: i10.MessageBarService }, { token: i11.AppConfigService }, { token: i12.RouteService }, { token: i13.Store }, { token: i4.MobileServiceProxyIdentity }], target: i0.ɵɵFactoryTarget.Injectable }); }
323
+ loginToBackoffice() {
324
+ this.store.dispatch(new LoadBackofficeAppConfigurationAction());
325
+ this.store.dispatch(new HealthAction());
326
+ this.sessionStorageService.updateLoggedTenant();
327
+ this.loginService.loginToSpark();
328
+ }
329
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginState, deps: [{ token: i1.BackofficeUserServiceProxyIdentity }, { token: i2.UsersServiceProxy }, { token: i3.UsersServiceProxy }, { token: i4.OpenIdAuthService }, { token: i1.UsersServiceProxyIdentity }, { token: i5.AuthService }, { token: i6.SessionStorageService }, { token: i7.LoginService }, { token: i8.TranslateService }, { token: i9.MsalService }, { token: i10.MessageBarService }, { token: i11.AppConfigService }, { token: i12.RouteService }, { token: i13.Store }, { token: i1.MobileServiceProxyIdentity }], target: i0.ɵɵFactoryTarget.Injectable }); }
296
330
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginState }); }
297
331
  };
298
332
  __decorate([
@@ -325,6 +359,9 @@ __decorate([
325
359
  __decorate([
326
360
  Action(SetTFASetupAction)
327
361
  ], LoginState.prototype, "onSetTFASetupAction", null);
362
+ __decorate([
363
+ Action(BackofficeAutheticateAction)
364
+ ], LoginState.prototype, "onBackofficeAutheticateAction", null);
328
365
  __decorate([
329
366
  Action(OpenIdAutheticateAction)
330
367
  ], LoginState.prototype, "onOpenIdAutheticateAction", null);
@@ -362,5 +399,5 @@ LoginState = __decorate([
362
399
  export { LoginState };
363
400
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginState, decorators: [{
364
401
  type: Injectable
365
- }], ctorParameters: () => [{ type: i1.UsersServiceProxy }, { type: i2.UsersServiceProxy }, { type: i3.OpenIdAuthService }, { type: i4.UsersServiceProxyIdentity }, { type: i5.AuthService }, { type: i6.SessionStorageService }, { type: i7.LoginService }, { type: i8.TranslateService }, { type: i9.MsalService }, { type: i10.MessageBarService }, { type: i11.AppConfigService }, { type: i12.RouteService }, { type: i13.Store }, { type: i4.MobileServiceProxyIdentity }], propDecorators: { onAuthenticateMultipleTenantsAction: [], onMobileAuthenticateMultipleTenantsAction: [], onForgotPassword: [], onForgotPasswordTenantless: [], onAccountSetPasswordInitAction: [], onAccountSetPasswordErrorAction: [], onAccountSetPasswordAction: [], onValidateUserTokenAction: [], onVerify2FactorAuthenticationAction: [], onSetTFASetupAction: [], onOpenIdAutheticateAction: [] } });
366
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvbG9naW4vbG9naW4uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBdUIsTUFBTSxhQUFhLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQWMsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQXVDLGVBQWUsRUFBbUgsVUFBVSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDOU8sT0FBTyxFQUFFLG9CQUFvQixFQUE4QyxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25KLE9BQU8sRUFBZ0Msc0JBQXNCLEVBQWdHLGtCQUFrQixFQUF3RSwyQkFBMkIsRUFBaUQsTUFBTSw4Q0FBOEMsQ0FBQztBQUt4WCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUl0RixPQUFPLEVBQUUsWUFBWSxFQUFFLDBCQUEwQixFQUFFLG1CQUFt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eUMsTUFnQnpDLGdCQUFnQixNQVloQiwwQkFBMEIsTUFPMUIsOEJBQThCLE1BUTlCLCtCQUErQixNQVMvQiwwQkFBMEIsTUF3QzFCLHlCQUF5QixNQXdDekIsbUNBQW1DLE1BeUJuQyxtQkFBbUIsTUF5Q25CLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1zYWxTZXJ2aWNlIH0gZnJvbSAnQGF6dXJlL21zYWwtYW5ndWxhcic7XG5pbXBvcnQgeyBDbGVhckNhY2hlUmVxdWVzdCB9IGZyb20gJ0BhenVyZS9tc2FsLWJyb3dzZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGUgfSBmcm9tICdAbmd4cy9yb3V0ZXItcGx1Z2luJztcbmltcG9ydCB7IEFjdGlvbiwgU2VsZWN0b3IsIFN0YXRlLCBTdGF0ZUNvbnRleHQsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBPYnNlcnZhYmxlLCB0YXAsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbWVzc2FnZS1iYXIvbWVzc2FnZS1iYXItcG9zaXRpb24uZW51bSc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbWVzc2FnZS1iYXIvbWVzc2FnZS1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBSRVNFVF9QQVNTV09SRF9FTUFJTCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9rZXlzLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBWRVJTSU9OX1YxIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3ZlcnNpb24tY29uc3RhbnRzJztcbmltcG9ydCB7IEFwcFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9hcHAtdHlwZS5lbnVtJztcbmltcG9ydCB7IExvY2FsaXphdGlvbiB9IGZyb20gJy4uLy4uL2VudW1zL2xvY2FsaXphdGlvbi5lbnVtJztcbmltcG9ydCB7IEFjdGl2YXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhLCBBY3RpdmF0ZVVzZXJEdG8sIEFwaUV4Y2VwdGlvbiwgUHJvYmxlbURldGFpbHMsIFRmYVNldHVwRHRvLCBVc2VyRHRvSHR0cFJlc3BvbnNlRGF0YSwgVXNlcnNTZXJ2aWNlUHJveHkgYXMgVXNlcnNTZXJ2aWNlUHJveHlDbG91ZCwgVXNlclN0YXR1cyB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IFNpbmdsZVNpZ25PblByb3ZpZGVyLCBVc2Vyc1NlcnZpY2VQcm94eSBhcyBVc2Vyc1NlcnZpY2VQcm94eUVkZ2UsIFVzZXJVcGRhdGVQYXNzd29yZER0byB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvZWRnZS1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlRXJyb3JSZXNwb25zZUR0bywgQXV0aGVudGljYXRlUmVxdWVzdER0bywgQXV0aGVudGljYXRlUmVzcG9uc2VEdG8sIEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YSwgTW9iaWxlU2VydmljZVByb3h5SWRlbnRpdHksIFBhc3N3b3JkQ2hhbmdlVHlwZSwgVXNlcnNTZXJ2aWNlUHJveHlJZGVudGl0eSwgVmFsaWRhdGVBY3RpdmF0aW9uVXNlckR0b0h0dHBSZXNwb25zZURhdGEsIFZlcmlmeTJGYWN0b3JBdXRoUmVxdWVzdER0bywgVmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXREdG9IdHRwUmVzcG9uc2VEYXRhIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9pZGVudGl0eS1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBPcGVuSWRBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29wZW5pZC1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcm91dGUuc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBwYXJzZUFwaUVycm9yRGF0YSwgcGFyc2VBcGlFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi91dGlscy9hcGktaGVscGVyLnV0aWwnO1xuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vLi4vdXRpbHMvbGFuZy51dGlsJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuLi9hdXRoL21vZGVsL3VzZXItaW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSGVhbHRoQWN0aW9uLCBMb2FkQXBwQ29uZmlndXJhdGlvbkFjdGlvbiwgU2V0VGVuYW50VXNlckFjdGlvbiwgVXBkYXRlQXV0aFRva2VuQWN0aW9uIH0gZnJvbSAnLi4vYXV0aC9zZXNzaW9uLmFjdGlvbnMnO1xuaW1wb3J0IHsgQWNjb3VudFNldFBhc3N3b3JkQWN0aW9uLCBBY2NvdW50U2V0UGFzc3dvcmRFcnJvckFjdGlvbiwgQWNjb3VudFNldFBhc3N3b3JkSW5pdEFjdGlvbiwgQXV0aGVudGljYXRlTXVsdGlwbGVUZW5hbnRzQWN0aW9uLCBGb3Jnb3RQYXNzd29yZEFjdGlvbiwgRm9yZ290UGFzc3dvcmRUZW5hbnRsZXNzQWN0aW9uLCBNb2JpbGVBdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHNBY3Rpb24sIE9wZW5JZEF1dGhldGljYXRlQWN0aW9uLCBTZXRURkFTZXR1cEFjdGlvbiwgVmFsaWRhdGVVc2VyVG9rZW5BY3Rpb24sIFZlcmlmeTJGYWN0b3JBdXRoZW50aWNhdGlvbkFjdGlvbiB9IGZyb20gJy4vbG9naW4uYWN0aW9ucyc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuL2xvZ2luLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luU3RhdGVNb2RlbCB7XG4gIHVzZXJJbmZvOiBVc2VySW5mbztcbiAgdGVuYW50TmFtZTogc3RyaW5nO1xuICBwYXNzd29yZENoYW5nZVR5cGU6IFBhc3N3b3JkQ2hhbmdlVHlwZTtcbiAgYWNjb3VudHM6IEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvW107XG4gIGFjY291bnRzTWFwOiBTdHJpbmdNYXA8QXV0aGVudGljYXRlUmVzcG9uc2VEdG8+O1xuICB0ZmFTZXR1cDogVGZhU2V0dXBEdG87XG59XG5cbkBJbmplY3RhYmxlKClcbkBTdGF0ZTxMb2dpblN0YXRlTW9kZWw+KHtcbiAgbmFtZTogJ2xvZ2luJyxcbiAgZGVmYXVsdHM6IHtcbiAgICB1c2VySW5mbzogdW5kZWZpbmVkLFxuICAgIHRlbmFudE5hbWU6ICcnLFxuICAgIHBhc3N3b3JkQ2hhbmdlVHlwZTogdW5kZWZpbmVkLFxuICAgIGFjY291bnRzOiBbXSxcbiAgICBhY2NvdW50c01hcDoge30sXG4gICAgdGZhU2V0dXA6IHVuZGVmaW5lZCxcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpblN0YXRlIHtcblxuICBwcml2YXRlIG1lc3NhZ2VPcHRpb25zID0geyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdXNlcnNTZXJ2aWNlUHJveHlDbG91ZDogVXNlcnNTZXJ2aWNlUHJveHlDbG91ZCxcbiAgICBwcml2YXRlIHVzZXJzU2VydmljZVByb3h5RWRnZTogVXNlcnNTZXJ2aWNlUHJveHlFZGdlLCBwcml2YXRlIG9wZW5JZEF1dGhTZXJ2aWNlOiBPcGVuSWRBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJzU2VydmljZVByb3h5SWRlbnRpdHk6IFVzZXJzU2VydmljZVByb3h5SWRlbnRpdHksIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsIHByaXZhdGUgbG9naW5TZXJ2aWNlOiBMb2dpblNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIG1zYWxTZXJ2aWNlOiBNc2FsU2VydmljZSwgcHJpdmF0ZSBtZXNzYWdlQmFyU2VydmljZTogTWVzc2FnZUJhclNlcnZpY2UsIHByaXZhdGUgYXBwQ29uZmlnOiBBcHBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVTZXJ2aWNlOiBSb3V0ZVNlcnZpY2UsIHByaXZhdGUgc3RvcmU6IFN0b3JlLCBwcml2YXRlIG1vYmlsZVNlcnZpY2VQcm94eUlkZW50aXR5OiBNb2JpbGVTZXJ2aWNlUHJveHlJZGVudGl0eSkge1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0d29GYWN0b3JTZXR1cEZvclVzZXIoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IFRmYVNldHVwRHRvIHtcbiAgICByZXR1cm4gc3RhdGUudGZhU2V0dXA7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHRlbmFudE5hbWUoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0YXRlLnRlbmFudE5hbWU7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHVzZXJJbmZvKHN0YXRlOiBMb2dpblN0YXRlTW9kZWwpOiBVc2VySW5mbyB7XG4gICAgcmV0dXJuIHN0YXRlLnVzZXJJbmZvO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0ZW1wbGF0ZVR5cGUoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IFBhc3N3b3JkQ2hhbmdlVHlwZSB7XG4gICAgcmV0dXJuIHN0YXRlLnBhc3N3b3JkQ2hhbmdlVHlwZTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgYWNjb3VudHMoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5hY2NvdW50cztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgYWNjb3VudHNNYXAoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IFN0cmluZ01hcDxBdXRoZW50aWNhdGVSZXNwb25zZUR0bz4ge1xuICAgIHJldHVybiBzdGF0ZS5hY2NvdW50c01hcDtcbiAgfVxuXG4gIEBBY3Rpb24oQXV0aGVudGljYXRlTXVsdGlwbGVUZW5hbnRzQWN0aW9uKVxuICBwdWJsaWMgb25BdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB1c2VybmFtZSwgcGFzc3dvcmQgfTogQXV0aGVudGljYXRlTXVsdGlwbGVUZW5hbnRzQWN0aW9uKSB7XG4gICAgY29uc3QgYXV0aGVudGljYXRlUmVxdWVzdER0byA9IG5ldyBBdXRoZW50aWNhdGVSZXF1ZXN0RHRvKCk7XG4gICAgYXV0aGVudGljYXRlUmVxdWVzdER0by51c2VybmFtZSA9IHVzZXJuYW1lO1xuICAgIGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8ucGFzc3dvcmQgPSBwYXNzd29yZDtcbiAgICBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvLnRlbmFudE5hbWUgPSAnJztcblxuICAgIHJldHVybiB0aGlzLnVzZXJzU2VydmljZVByb3h5SWRlbnRpdHkubXVsdGlUZW5hbnRzQXV0aGVudGljYXRlKGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8pLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6IGFjY291bnRzSHR0cFJlc3BvbnNlRGF0YSA9PiB7XG4gICAgICAgIGNvbnN0IGFjY291bnRzID0gYWNjb3VudHNIdHRwUmVzcG9uc2VEYXRhLmRhdGE7XG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICBhY2NvdW50c1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZSA9PiB0aGlzLmF1dGhlbnRpY2F0aW9uRXJyb3JNZXNzYWdlQmFyKGUpXG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihNb2JpbGVBdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHNBY3Rpb24pXG4gIHB1YmxpYyBvbk1vYmlsZUF1dGhlbnRpY2F0ZU11bHRpcGxlVGVuYW50c0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IHVzZXJuYW1lLCBwYXNzd29yZCwgdGVuYW50TmFtZSB9OiBNb2JpbGVBdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHNBY3Rpb24pIHtcbiAgICBjb25zdCBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvID0gbmV3IEF1dGhlbnRpY2F0ZVJlcXVlc3REdG8oKTtcbiAgICBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvLnVzZXJuYW1lID0gdXNlcm5hbWU7XG4gICAgYXV0aGVudGljYXRlUmVxdWVzdER0by5wYXNzd29yZCA9IHBhc3N3b3JkO1xuICAgIGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8udGVuYW50TmFtZSA9IHRlbmFudE5hbWU7XG4gICAgcmV0dXJuIHRoaXMubW9iaWxlU2VydmljZVByb3h5SWRlbnRpdHkubW9iaWxlQXV0aGVudGljYXRlKFZFUlNJT05fVjEsIGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8pLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6IGFjY291bnRzID0+IHtcbiAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgIGFjY291bnRzTWFwOiBhY2NvdW50cy5kYXRhLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZSA9PiB0aGlzLmF1dGhlbnRpY2F0aW9uRXJyb3JNZXNzYWdlQmFyKGUpXG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihGb3Jnb3RQYXNzd29yZEFjdGlvbilcbiAgcHVibGljIG9uRm9yZ290UGFzc3dvcmQoY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyBlbWFpbCwgdGVuYW50SWQgfTogRm9yZ290UGFzc3dvcmRBY3Rpb24pIHtcbiAgICBjb25zdCBpc01vYmlsZUFwcE1vZGUgPSB0aGlzLmFwcENvbmZpZy5nZXRDb25maWcoKS5hcHBUeXBlID09PSBBcHBUeXBlLk1vYmlsZTtcbiAgICBjb25zdCBwYXRoID0gWydhY2NvdW50JywgJ2ZvcmdvdC1wYXNzd29yZC1zdWNjZXNzJ107XG4gICAgY29uc3QgdXJsID0gaXNNb2JpbGVBcHBNb2RlID8gcGF0aCA6IHRoaXMucm91dGVTZXJ2aWNlLmdldE5hdmlnYXRpb25Sb3V0ZShwYXRoKTtcblxuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oUkVTRVRfUEFTU1dPUkRfRU1BSUwsIEpTT04uc3RyaW5naWZ5KGVtYWlsKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTmF2aWdhdGUodXJsKSk7XG4gICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5zdWNjZXNzKExvY2FsaXphdGlvbi5mb3Jnb3RfcGFzc3dvcmRfZW1haWxfc2VudF9tc2csIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzLnVzZXJzU2VydmljZVByb3h5Q2xvdWQuZm9yZ290UGFzc3dvcmQoZW1haWwsIHRlbmFudElkKTtcbiAgfVxuXG4gIEBBY3Rpb24oRm9yZ290UGFzc3dvcmRUZW5hbnRsZXNzQWN0aW9uKVxuICBwdWJsaWMgb25Gb3Jnb3RQYXNzd29yZFRlbmFudGxlc3MoY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyBlbWFpbCB9OiBGb3Jnb3RQYXNzd29yZEFjdGlvbikge1xuICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2Uuc3VjY2VzcyhMb2NhbGl6YXRpb24uZm9yZ290X3Bhc3N3b3JkX2VtYWlsX3NlbnRfbXNnLCB0aGlzLm1lc3NhZ2VPcHRpb25zKTtcbiAgICByZXR1cm4gdGhpcy51c2Vyc1NlcnZpY2VQcm94eUNsb3VkLmZvcmdvdFBhc3N3b3JkVGVuYW50bGVzcyhlbWFpbCk7XG4gIH1cblxuXG4gIEBBY3Rpb24oQWNjb3VudFNldFBhc3N3b3JkSW5pdEFjdGlvbilcbiAgcHVibGljIG9uQWNjb3VudFNldFBhc3N3b3JkSW5pdEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IHVzZXJJbmZvLCBjb21wb25lbnRUeXBlIH0pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICB1c2VySW5mbyxcbiAgICAgIHBhc3N3b3JkQ2hhbmdlVHlwZTogY29tcG9uZW50VHlwZVxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihBY2NvdW50U2V0UGFzc3dvcmRFcnJvckFjdGlvbilcbiAgcHVibGljIG9uQWNjb3VudFNldFBhc3N3b3JkRXJyb3JBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyBlcnJvck1zZywgdXNlcm5hbWUgfSkge1xuICAgIGNvbnN0IHVzZXJJbmZvOiBVc2VySW5mbyA9IHsgLi4udXNlcm5hbWUgfTtcbiAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKGVycm9yTXNnLCB0aGlzLm1lc3NhZ2VPcHRpb25zKTtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICB1c2VySW5mb1xuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihBY2NvdW50U2V0UGFzc3dvcmRBY3Rpb24pXG4gIHB1YmxpYyBvbkFjY291bnRTZXRQYXNzd29yZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IHBhc3N3b3JkIH06IEFjY291bnRTZXRQYXNzd29yZEFjdGlvbikge1xuICAgIGNvbnN0IHVzZXJJbmZvID0gY3R4LmdldFN0YXRlKCkudXNlckluZm87XG4gICAgbGV0IGRhdGE6IGFueTtcbiAgICBsZXQgc2V0UGFzc3dvcmQkOiBPYnNlcnZhYmxlPFVzZXJEdG9IdHRwUmVzcG9uc2VEYXRhIHwgQWN0aXZhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGE+O1xuXG4gICAgaWYgKHRoaXMuYXBwQ29uZmlnLmdldENvbmZpZygpLmFwcFR5cGUgPT09IEFwcFR5cGUuQ2xvdWQpIHtcbiAgICAgIGRhdGEgPSBuZXcgQWN0aXZhdGVVc2VyRHRvKHtcbiAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgIGN1cnJlbnRQYXNzd29yZDogbnVsbCxcbiAgICAgICAgdXNlclN0YXR1czogdXNlckluZm8uc3RhdHVzIGFzIFVzZXJTdGF0dXNcbiAgICAgIH0pO1xuXG4gICAgICBzZXRQYXNzd29yZCQgPSB0aGlzLnVzZXJzU2VydmljZVByb3h5Q2xvdWQuYWN0aXZhdGUoZGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGEgPSBuZXcgVXNlclVwZGF0ZVBhc3N3b3JkRHRvKHtcbiAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgIGN1cnJlbnRQYXNzd29yZDogbnVsbFxuICAgICAgfSk7XG4gICAgICBzZXRQYXNzd29yZCQgPSB0aGlzLnVzZXJzU2VydmljZVByb3h5RWRnZS51cGRhdGVVc2VyUGFzc3dvcmQoZGF0YSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNldFBhc3N3b3JkJC5waXBlKFxuICAgICAgbWFwKChhY3RpdmF0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YTogQWN0aXZhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKGFjdGl2YXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhLmRhdGEuaXNTdWNjZXNzKSB7XG4gICAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgICAgdGZhU2V0dXA6IGFjdGl2YXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhLmRhdGE/LnRmYVNldHVwLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihhY3RpdmF0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YS5kYXRhLmVycm9yTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcihlID0+IHtcbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogZTtcbiAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihlcnJvck1lc3NhZ2UsIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvck1lc3NhZ2UpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgQEFjdGlvbihWYWxpZGF0ZVVzZXJUb2tlbkFjdGlvbilcbiAgcHVibGljIG9uVmFsaWRhdGVVc2VyVG9rZW5BY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB0b2tlbiwgdG9rZW5UeXBlIH06IFZhbGlkYXRlVXNlclRva2VuQWN0aW9uKSB7XG4gICAgY29uc3QgcGN0OiBhbnkgPSBQYXNzd29yZENoYW5nZVR5cGVbdG9rZW5UeXBlXTtcbiAgICByZXR1cm4gdGhpcy51c2Vyc1NlcnZpY2VQcm94eUlkZW50aXR5LnZhbGlkYXRlQWN0aXZhdGlvbih0b2tlbiwgUGFzc3dvcmRDaGFuZ2VUeXBlW1Bhc3N3b3JkQ2hhbmdlVHlwZVt0b2tlblR5cGVdXSkucGlwZSh0YXAoe1xuICAgICAgbmV4dDogKHVzZXI6IFZhbGlkYXRlQWN0aXZhdGlvblVzZXJEdG9IdHRwUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmICh1c2VyPy5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgdXNlckluZm86IFVzZXJJbmZvID0ge1xuICAgICAgICAgICAgdXNlcklkOiB1c2VyLmRhdGEuaWQsXG4gICAgICAgICAgICB1c2VybmFtZTogdXNlci5kYXRhLnVOYW1lLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6IGAke3VzZXIuZGF0YS5uYW1lfSAke3VzZXIuZGF0YS5sYXN0TmFtZX1gLFxuICAgICAgICAgICAgc3RhdHVzOiB1c2VyLmRhdGEuc3RhdHVzLFxuICAgICAgICAgICAgcG1sOiB1c2VyLmRhdGEucG1sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAodXNlci5kYXRhLnN0YXR1cyAhPT0gVXNlclN0YXR1cy5CbG9ja2VkKSB7XG4gICAgICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgICAgIHVzZXJJbmZvLFxuICAgICAgICAgICAgICBwYXNzd29yZENoYW5nZVR5cGU6IHBjdCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKExvY2FsaXphdGlvbi5ub25fYWN0aXZlX3VzZXIsIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgICAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgICAgICB1c2VySW5mbyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVycm9yOiBlID0+IHtcbiAgICAgICAgY29uc3QgZXJyb3JKc29uOiBQcm9ibGVtRGV0YWlscyA9IEpTT04ucGFyc2UoZS5yZXNwb25zZSkgYXMgUHJvYmxlbURldGFpbHM7XG4gICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IocGFyc2VBcGlFcnJvck1lc3NhZ2UoZSksIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgdXNlckluZm86IHtcbiAgICAgICAgICAgIHVzZXJuYW1lOiBlcnJvckpzb24uaW5zdGFuY2UsXG4gICAgICAgICAgICB1c2VySWQ6IG51bGwsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogbnVsbFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oVmVyaWZ5MkZhY3RvckF1dGhlbnRpY2F0aW9uQWN0aW9uKVxuICBwdWJsaWMgb25WZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb25BY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB1c2VyTmFtZSwgY29kZSwgc2V0dXAyRmEgfTogVmVyaWZ5MkZhY3RvckF1dGhlbnRpY2F0aW9uQWN0aW9uKSB7XG4gICAgY29uc3QgdmVyaWZ5MkZhY3RvckF1dGhSZXF1ZXN0RHRvID0gbmV3IFZlcmlmeTJGYWN0b3JBdXRoUmVxdWVzdER0byh7XG4gICAgICBjb2RlLFxuICAgICAgdXNlck5hbWVcbiAgICB9KTtcblxuICAgIGxldCB2ZXJpZnkyRmFjdG9yQXV0aCQ6IE9ic2VydmFibGU8VmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXREdG9IdHRwUmVzcG9uc2VEYXRhPjtcbiAgICBpZiAoc2V0dXAyRmEpIHtcbiAgICAgIHZlcmlmeTJGYWN0b3JBdXRoJCA9IHRoaXMudXNlcnNTZXJ2aWNlUHJveHlJZGVudGl0eS52ZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb24odmVyaWZ5MkZhY3RvckF1dGhSZXF1ZXN0RHRvKTtcbiAgICB9IGVsc2UgeyAvLyBsb2dpbiBmb3IgdXNlciB3aXRoIDJGQSAoYWxyZWFkeSBzZXQgdXApXG4gICAgICB2ZXJpZnkyRmFjdG9yQXV0aCQgPSB0aGlzLnVzZXJzU2VydmljZVByb3h5SWRlbnRpdHkudmVyaWZ5MkZhY3RvckF1dGhlbnRpY2F0aW9uTG9naW4odmVyaWZ5MkZhY3RvckF1dGhSZXF1ZXN0RHRvKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZ5MkZhY3RvckF1dGgkLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6ICh2ZXJpZnkyRmFjdG9yQXV0aFJlc3BvbnNldDogVmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXREdG9IdHRwUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmFjY2Vzc1Rva2VuID0gdmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXQuZGF0YS5hY2Nlc3NUb2tlbjtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXBkYXRlQXV0aFRva2VuQWN0aW9uKHZlcmlmeTJGYWN0b3JBdXRoUmVzcG9uc2V0LmRhdGEuYWNjZXNzVG9rZW4pKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IocGFyc2VBcGlFcnJvck1lc3NhZ2UoZSksIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0VEZBU2V0dXBBY3Rpb24pXG4gIHB1YmxpYyBvblNldFRGQVNldHVwQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PExvZ2luU3RhdGVNb2RlbD4sIHsgdGZhU2V0dXBEdG8gfSkge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHRmYVNldHVwOiB0ZmFTZXR1cER0b1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhdXRoZW50aWNhdGlvbkVycm9yTWVzc2FnZUJhcihlcnJvcjogQXBpRXhjZXB0aW9uKSB7XG4gICAgY29uc3QgZXJyb3JNZXNzYWdlID0gcGFyc2VBcGlFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICAgIGNvbnN0IGRhdGEgPSBwYXJzZUFwaUVycm9yRGF0YTxBdXRoZW50aWNhdGVFcnJvclJlc3BvbnNlRHRvPihlcnJvcik7XG4gICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihlcnJvck1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMsIG1lc3NhZ2VQYXJhbXM6IHsgdGVtcG9yYXJ5TG9ja2VkTWludXRlczogZGF0YT8udGVtcG9yYXJ5QmxvY2tlZFRpbWUgfSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJNc2xMb2dpbkNhY2hlKCkge1xuICAgIGNvbnN0IGNsZWFyQ2FjaGVSZXF1ZXN0OiBDbGVhckNhY2hlUmVxdWVzdCA9IHtcbiAgICAgIGFjY291bnQ6IHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuZ2V0QWxsQWNjb3VudHMoKVswXSxcbiAgICB9O1xuICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuY2xlYXJDYWNoZShjbGVhckNhY2hlUmVxdWVzdCk7XG4gICAgdGhpcy5tc2FsU2VydmljZS5sb2dvdXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJTaW5nbGVTaW5nT25DYWNoZShzaW5nbGVTaWduT25Qcm92aWRlcjogU2luZ2xlU2lnbk9uUHJvdmlkZXIpIHtcbiAgICBzd2l0Y2ggKHNpbmdsZVNpZ25PblByb3ZpZGVyKSB7XG4gICAgICBjYXNlIFNpbmdsZVNpZ25PblByb3ZpZGVyLk1pY3Jvc29mdDpcbiAgICAgICAgdGhpcy5jbGVhck1zbExvZ2luQ2FjaGUoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2luZ2xlU2lnbk9uUHJvdmlkZXIuUGluZ0ZlZGVyYXRlOlxuICAgICAgICB0aGlzLm9wZW5JZEF1dGhTZXJ2aWNlLnNpZ25PdXQoKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSB1c2VyU3RhdHVzSXNBd2FpdGluZ0FjY2VzcyA9IChhdXRoUmVzcG9uc2U6IEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YSk6IGJvb2xlYW4gPT5cbiAgICBhdXRoUmVzcG9uc2UuZGF0YS5zaW5nbGVTaWduT25BdXRoZW50aWNhdGlvbkR0bz8uaXNBdXRoZW50aWNhdGVkID09PSBmYWxzZSAmJlxuICAgIGF1dGhSZXNwb25zZS5kYXRhLnNpbmdsZVNpZ25PbkF1dGhlbnRpY2F0aW9uRHRvPy51c2VyU3RhdHVzID09PSBVc2VyU3RhdHVzLkF3YWl0aW5nQWNjZXNzO1xuXG5cbiAgQEFjdGlvbihPcGVuSWRBdXRoZXRpY2F0ZUFjdGlvbilcbiAgcHVibGljIG9uT3BlbklkQXV0aGV0aWNhdGVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB0b2tlbiwgc2luZ2xlU2lnbk9uUHJvdmlkZXIsIHRlbmFudEluZm8gfTogT3BlbklkQXV0aGV0aWNhdGVBY3Rpb24pIHtcbiAgICBsZXQgYXV0aGVudGljYXRlT2lkYyQ6IE9ic2VydmFibGU8QXV0aGVudGljYXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhPjtcbiAgICBhdXRoZW50aWNhdGVPaWRjJCA9IHRoaXMudXNlcnNTZXJ2aWNlUHJveHlJZGVudGl0eS5vcGVuSWRBdXRoZW50aWNhdGUodG9rZW4sIHRlbmFudEluZm8udGVuYW50TmFtZSk7XG4gICAgcmV0dXJuIGF1dGhlbnRpY2F0ZU9pZGMkLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6IGF1dGhSZXNwb25zZSA9PiB7XG4gICAgICAgIGlmIChhdXRoUmVzcG9uc2UuZGF0YS5tZXNzYWdlID09PSBMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpIHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLnNzb19wZW5kaW5nX2FwcHJvdmFsKTtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmluZm8obWVzc2FnZSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9KTtcbiAgICAgICAgICAvL3RoaXMuY2xlYXJTaW5nbGVTaW5nT25DYWNoZShzaW5nbGVTaWduT25Qcm92aWRlcik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3BhcmtTZXNzaW9uID0gdGhpcy5hdXRoU2VydmljZS5wcm9jZXNzQXV0aGVudGljYXRlKGF1dGhSZXNwb25zZS5kYXRhKTtcbiAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBTZXRUZW5hbnRVc2VyQWN0aW9uKHNwYXJrU2Vzc2lvbikpO1xuXG4gICAgICAgIGlmICh0aGlzLnVzZXJTdGF0dXNJc0F3YWl0aW5nQWNjZXNzKGF1dGhSZXNwb25zZSkpIHtcbiAgICAgICAgICB0aGlzLmNsZWFyU2luZ2xlU2luZ09uQ2FjaGUoc2luZ2xlU2lnbk9uUHJvdmlkZXIpO1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpO1xuICAgICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2Uud2FybihtZXNzYWdlLCB7IHBvc2l0aW9uOiBNZXNzYWdlQmFyUG9zaXRpb24uU3RhdGljIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIC8vIEFmdGVyIGF1dGhlbnRpY2F0aW9uIGdldCBhcHAgY29uZmlndXJhdGlvblxuICAgICAgICAgIHRoaXMubG9naW5Ub1NwYXJrKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgIHRoaXMuc2luZ2xlU2luZ09uRXJyb3JIYW5kbGluZyhlKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBzaW5nbGVTaW5nT25FcnJvckhhbmRsaW5nKGU6IGFueSkge1xuICAgIGlmIChlLmVycm9yTWVzc2FnZSA9PSBMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpO1xuICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5pbmZvKG1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGUuZXJyb3JNZXNzYWdlKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZS5lcnJvck1lc3NhZ2UpO1xuICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihtZXNzYWdlLCB7IHBvc2l0aW9uOiBNZXNzYWdlQmFyUG9zaXRpb24uU3RhdGljIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IocGFyc2VBcGlFcnJvck1lc3NhZ2UoZSksIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIGxvZ2luVG9TcGFyaygpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBMb2FkQXBwQ29uZmlndXJhdGlvbkFjdGlvbigpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBIZWFsdGhBY3Rpb24oKSk7XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudXBkYXRlTG9nZ2VkVGVuYW50KCk7XG4gICAgdGhpcy5sb2dpblNlcnZpY2UubG9naW5Ub1NwYXJrKCk7XG4gIH1cbn1cbiJdfQ==
402
+ }], ctorParameters: () => [{ type: i1.BackofficeUserServiceProxyIdentity }, { type: i2.UsersServiceProxy }, { type: i3.UsersServiceProxy }, { type: i4.OpenIdAuthService }, { type: i1.UsersServiceProxyIdentity }, { type: i5.AuthService }, { type: i6.SessionStorageService }, { type: i7.LoginService }, { type: i8.TranslateService }, { type: i9.MsalService }, { type: i10.MessageBarService }, { type: i11.AppConfigService }, { type: i12.RouteService }, { type: i13.Store }, { type: i1.MobileServiceProxyIdentity }], propDecorators: { onAuthenticateMultipleTenantsAction: [], onMobileAuthenticateMultipleTenantsAction: [], onForgotPassword: [], onForgotPasswordTenantless: [], onAccountSetPasswordInitAction: [], onAccountSetPasswordErrorAction: [], onAccountSetPasswordAction: [], onValidateUserTokenAction: [], onVerify2FactorAuthenticationAction: [], onSetTFASetupAction: [], onBackofficeAutheticateAction: [], onOpenIdAutheticateAction: [] } });
403
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvbG9naW4vbG9naW4uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBdUIsTUFBTSxhQUFhLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQWMsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQXVDLGVBQWUsRUFBbUgsVUFBVSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDOU8sT0FBTyxFQUFFLG9CQUFvQixFQUE4QyxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25KLE9BQU8sRUFBZ0Msc0JBQXNCLEVBQW9JLGtCQUFrQixFQUF3RSwyQkFBMkIsRUFBaUQsTUFBTSw4Q0FBOEMsQ0FBQztBQUs1WixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUl0RixPQUFPLEVBQUUsWUFBWSxFQUFFLDBCQUEwQixFQUFFLG9DQUFv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SUFETixNQUFNLENBQUMsaUNBQWlDLENBQUM7cUVBdUJ6QztBQUdNO0lBRE4sTUFBTSxDQUFDLGlCQUFpQixDQUFDO3FEQUt6QjtBQW9DTTtJQUROLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQzsrREE0Qm5DO0FBR007SUFETixNQUFNLENBQUMsdUJBQXVCLENBQUM7MkRBOEIvQjtBQWhUYTtJQURiLFFBQVEsRUFBRTs2Q0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO2tDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7Z0NBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTtvQ0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO2dDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7bUNBR1Y7QUExQ1UsVUFBVTtJQVh0QixLQUFLLENBQWtCO1FBQ3RCLElBQUksRUFBRSxPQUFPO1FBQ2IsUUFBUSxFQUFFO1lBQ1IsUUFBUSxFQUFFLFNBQVM7WUFDbkIsVUFBVSxFQUFFLEVBQUU7WUFDZCxrQkFBa0IsRUFBRSxTQUFTO1lBQzdCLFFBQVEsRUFBRSxFQUFFO1lBQ1osV0FBVyxFQUFFLEVBQUU7WUFDZixRQUFRLEVBQUUsU0FBUztTQUNwQjtLQUNGLENBQUM7R0FDVyxVQUFVLENBNFZ0Qjs7NEZBNVZZLFVBQVU7a0JBWnRCLFVBQVU7NGhCQXlERixtQ0FBbUMsTUFrQm5DLHlDQUF5QyxNQWdCekMsZ0JBQWdCLE1BWWhCLDBCQUEwQixNQU8xQiw4QkFBOEIsTUFROUIsK0JBQStCLE1BUy9CLDBCQUEwQixNQXdDMUIseUJBQXlCLE1Bd0N6QixtQ0FBbUMsTUF5Qm5DLG1CQUFtQixNQXdDbkIsNkJBQTZCLE1BOEI3Qix5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYWNrb2ZmaWNlU2VydmljZVByb3h5IH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xuaW1wb3J0IHsgQ2xlYXJDYWNoZVJlcXVlc3QgfSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRlIH0gZnJvbSAnQG5neHMvcm91dGVyLXBsdWdpbic7XG5pbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgT2JzZXJ2YWJsZSwgdGFwLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyUG9zaXRpb24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLXBvc2l0aW9uLmVudW0nO1xuaW1wb3J0IHsgTWVzc2FnZUJhclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUkVTRVRfUEFTU1dPUkRfRU1BSUwgfSBmcm9tICcuLi8uLi9jb25zdGFudHMva2V5cy1jb25zdGFudHMnO1xuaW1wb3J0IHsgVkVSU0lPTl9WMSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy92ZXJzaW9uLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBBcHBUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvYXBwLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb24gfSBmcm9tICcuLi8uLi9lbnVtcy9sb2NhbGl6YXRpb24uZW51bSc7XG5pbXBvcnQgeyBBY3RpdmF0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YSwgQWN0aXZhdGVVc2VyRHRvLCBBcGlFeGNlcHRpb24sIFByb2JsZW1EZXRhaWxzLCBUZmFTZXR1cER0bywgVXNlckR0b0h0dHBSZXNwb25zZURhdGEsIFVzZXJzU2VydmljZVByb3h5IGFzIFVzZXJzU2VydmljZVByb3h5Q2xvdWQsIFVzZXJTdGF0dXMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBTaW5nbGVTaWduT25Qcm92aWRlciwgVXNlcnNTZXJ2aWNlUHJveHkgYXMgVXNlcnNTZXJ2aWNlUHJveHlFZGdlLCBVc2VyVXBkYXRlUGFzc3dvcmREdG8gfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2VkZ2Utc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZUVycm9yUmVzcG9uc2VEdG8sIEF1dGhlbnRpY2F0ZVJlcXVlc3REdG8sIEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvLCBBdXRoZW50aWNhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGEsIEJhY2tvZmZpY2VVc2VyU2VydmljZVByb3h5SWRlbnRpdHksIE1vYmlsZVNlcnZpY2VQcm94eUlkZW50aXR5LCBQYXNzd29yZENoYW5nZVR5cGUsIFVzZXJzU2VydmljZVByb3h5SWRlbnRpdHksIFZhbGlkYXRlQWN0aXZhdGlvblVzZXJEdG9IdHRwUmVzcG9uc2VEYXRhLCBWZXJpZnkyRmFjdG9yQXV0aFJlcXVlc3REdG8sIFZlcmlmeTJGYWN0b3JBdXRoUmVzcG9uc2V0RHRvSHR0cFJlc3BvbnNlRGF0YSB9IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvaWRlbnRpdHktc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHAtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3BlbklkQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vcGVuaWQtYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JvdXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgcGFyc2VBcGlFcnJvckRhdGEsIHBhcnNlQXBpRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXBpLWhlbHBlci51dGlsJztcbmltcG9ydCB7IFN0cmluZ01hcCB9IGZyb20gJy4uLy4uL3V0aWxzL2xhbmcudXRpbCc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJJbmZvIH0gZnJvbSAnLi4vYXV0aC9tb2RlbC91c2VyLWluZm8uaW50ZXJmYWNlJztcbmltcG9ydCB7IEhlYWx0aEFjdGlvbiwgTG9hZEFwcENvbmZpZ3VyYXRpb25BY3Rpb24sIExvYWRCYWNrb2ZmaWNlQXBwQ29uZmlndXJhdGlvbkFjdGlvbiwgU2V0VGVuYW50VXNlckFjdGlvbiwgVXBkYXRlQXV0aFRva2VuQWN0aW9uIH0gZnJvbSAnLi4vYXV0aC9zZXNzaW9uLmFjdGlvbnMnO1xuaW1wb3J0IHsgQWNjb3VudFNldFBhc3N3b3JkQWN0aW9uLCBBY2NvdW50U2V0UGFzc3dvcmRFcnJvckFjdGlvbiwgQWNjb3VudFNldFBhc3N3b3JkSW5pdEFjdGlvbiwgQXV0aGVudGljYXRlTXVsdGlwbGVUZW5hbnRzQWN0aW9uLCBCYWNrb2ZmaWNlQXV0aGV0aWNhdGVBY3Rpb24sIEZvcmdvdFBhc3N3b3JkQWN0aW9uLCBGb3Jnb3RQYXNzd29yZFRlbmFudGxlc3NBY3Rpb24sIE1vYmlsZUF1dGhlbnRpY2F0ZU11bHRpcGxlVGVuYW50c0FjdGlvbiwgT3BlbklkQXV0aGV0aWNhdGVBY3Rpb24sIFNldFRGQVNldHVwQWN0aW9uLCBWYWxpZGF0ZVVzZXJUb2tlbkFjdGlvbiwgVmVyaWZ5MkZhY3RvckF1dGhlbnRpY2F0aW9uQWN0aW9uIH0gZnJvbSAnLi9sb2dpbi5hY3Rpb25zJztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4vbG9naW4uc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9naW5TdGF0ZU1vZGVsIHtcbiAgdXNlckluZm86IFVzZXJJbmZvO1xuICB0ZW5hbnROYW1lOiBzdHJpbmc7XG4gIHBhc3N3b3JkQ2hhbmdlVHlwZTogUGFzc3dvcmRDaGFuZ2VUeXBlO1xuICBhY2NvdW50czogQXV0aGVudGljYXRlUmVzcG9uc2VEdG9bXTtcbiAgYWNjb3VudHNNYXA6IFN0cmluZ01hcDxBdXRoZW50aWNhdGVSZXNwb25zZUR0bz47XG4gIHRmYVNldHVwOiBUZmFTZXR1cER0bztcbn1cblxuQEluamVjdGFibGUoKVxuQFN0YXRlPExvZ2luU3RhdGVNb2RlbD4oe1xuICBuYW1lOiAnbG9naW4nLFxuICBkZWZhdWx0czoge1xuICAgIHVzZXJJbmZvOiB1bmRlZmluZWQsXG4gICAgdGVuYW50TmFtZTogJycsXG4gICAgcGFzc3dvcmRDaGFuZ2VUeXBlOiB1bmRlZmluZWQsXG4gICAgYWNjb3VudHM6IFtdLFxuICAgIGFjY291bnRzTWFwOiB7fSxcbiAgICB0ZmFTZXR1cDogdW5kZWZpbmVkLFxuICB9XG59KVxuZXhwb3J0IGNsYXNzIExvZ2luU3RhdGUge1xuXG4gIHByaXZhdGUgbWVzc2FnZU9wdGlvbnMgPSB7IHBvc2l0aW9uOiBNZXNzYWdlQmFyUG9zaXRpb24uU3RhdGljIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBiYWNrb2ZmaWNlVXNlclNlcnZpY2VQcm94eUlkZW50aXR5OiBCYWNrb2ZmaWNlVXNlclNlcnZpY2VQcm94eUlkZW50aXR5LFxuICAgIHByaXZhdGUgdXNlcnNTZXJ2aWNlUHJveHlDbG91ZDogVXNlcnNTZXJ2aWNlUHJveHlDbG91ZCxcbiAgICBwcml2YXRlIHVzZXJzU2VydmljZVByb3h5RWRnZTogVXNlcnNTZXJ2aWNlUHJveHlFZGdlLCBwcml2YXRlIG9wZW5JZEF1dGhTZXJ2aWNlOiBPcGVuSWRBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJzU2VydmljZVByb3h5SWRlbnRpdHk6IFVzZXJzU2VydmljZVByb3h5SWRlbnRpdHksIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsIHByaXZhdGUgbG9naW5TZXJ2aWNlOiBMb2dpblNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIG1zYWxTZXJ2aWNlOiBNc2FsU2VydmljZSwgcHJpdmF0ZSBtZXNzYWdlQmFyU2VydmljZTogTWVzc2FnZUJhclNlcnZpY2UsIHByaXZhdGUgYXBwQ29uZmlnOiBBcHBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVTZXJ2aWNlOiBSb3V0ZVNlcnZpY2UsIHByaXZhdGUgc3RvcmU6IFN0b3JlLCBwcml2YXRlIG1vYmlsZVNlcnZpY2VQcm94eUlkZW50aXR5OiBNb2JpbGVTZXJ2aWNlUHJveHlJZGVudGl0eSkge1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0d29GYWN0b3JTZXR1cEZvclVzZXIoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IFRmYVNldHVwRHRvIHtcbiAgICByZXR1cm4gc3RhdGUudGZhU2V0dXA7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHRlbmFudE5hbWUoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0YXRlLnRlbmFudE5hbWU7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHVzZXJJbmZvKHN0YXRlOiBMb2dpblN0YXRlTW9kZWwpOiBVc2VySW5mbyB7XG4gICAgcmV0dXJuIHN0YXRlLnVzZXJJbmZvO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0ZW1wbGF0ZVR5cGUoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IFBhc3N3b3JkQ2hhbmdlVHlwZSB7XG4gICAgcmV0dXJuIHN0YXRlLnBhc3N3b3JkQ2hhbmdlVHlwZTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgYWNjb3VudHMoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5hY2NvdW50cztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgYWNjb3VudHNNYXAoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IFN0cmluZ01hcDxBdXRoZW50aWNhdGVSZXNwb25zZUR0bz4ge1xuICAgIHJldHVybiBzdGF0ZS5hY2NvdW50c01hcDtcbiAgfVxuXG4gIEBBY3Rpb24oQXV0aGVudGljYXRlTXVsdGlwbGVUZW5hbnRzQWN0aW9uKVxuICBwdWJsaWMgb25BdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB1c2VybmFtZSwgcGFzc3dvcmQgfTogQXV0aGVudGljYXRlTXVsdGlwbGVUZW5hbnRzQWN0aW9uKSB7XG4gICAgY29uc3QgYXV0aGVudGljYXRlUmVxdWVzdER0byA9IG5ldyBBdXRoZW50aWNhdGVSZXF1ZXN0RHRvKCk7XG4gICAgYXV0aGVudGljYXRlUmVxdWVzdER0by51c2VybmFtZSA9IHVzZXJuYW1lO1xuICAgIGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8ucGFzc3dvcmQgPSBwYXNzd29yZDtcbiAgICBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvLnRlbmFudE5hbWUgPSAnJztcblxuICAgIHJldHVybiB0aGlzLnVzZXJzU2VydmljZVByb3h5SWRlbnRpdHkubXVsdGlUZW5hbnRzQXV0aGVudGljYXRlKGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8pLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6IGFjY291bnRzSHR0cFJlc3BvbnNlRGF0YSA9PiB7XG4gICAgICAgIGNvbnN0IGFjY291bnRzID0gYWNjb3VudHNIdHRwUmVzcG9uc2VEYXRhLmRhdGE7XG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICBhY2NvdW50c1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZSA9PiB0aGlzLmF1dGhlbnRpY2F0aW9uRXJyb3JNZXNzYWdlQmFyKGUpXG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihNb2JpbGVBdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHNBY3Rpb24pXG4gIHB1YmxpYyBvbk1vYmlsZUF1dGhlbnRpY2F0ZU11bHRpcGxlVGVuYW50c0FjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IHVzZXJuYW1lLCBwYXNzd29yZCwgdGVuYW50TmFtZSB9OiBNb2JpbGVBdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHNBY3Rpb24pIHtcbiAgICBjb25zdCBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvID0gbmV3IEF1dGhlbnRpY2F0ZVJlcXVlc3REdG8oKTtcbiAgICBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvLnVzZXJuYW1lID0gdXNlcm5hbWU7XG4gICAgYXV0aGVudGljYXRlUmVxdWVzdER0by5wYXNzd29yZCA9IHBhc3N3b3JkO1xuICAgIGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8udGVuYW50TmFtZSA9IHRlbmFudE5hbWU7XG4gICAgcmV0dXJuIHRoaXMubW9iaWxlU2VydmljZVByb3h5SWRlbnRpdHkubW9iaWxlQXV0aGVudGljYXRlKFZFUlNJT05fVjEsIGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8pLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6IGFjY291bnRzID0+IHtcbiAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgIGFjY291bnRzTWFwOiBhY2NvdW50cy5kYXRhLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZSA9PiB0aGlzLmF1dGhlbnRpY2F0aW9uRXJyb3JNZXNzYWdlQmFyKGUpXG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihGb3Jnb3RQYXNzd29yZEFjdGlvbilcbiAgcHVibGljIG9uRm9yZ290UGFzc3dvcmQoY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyBlbWFpbCwgdGVuYW50SWQgfTogRm9yZ290UGFzc3dvcmRBY3Rpb24pIHtcbiAgICBjb25zdCBpc01vYmlsZUFwcE1vZGUgPSB0aGlzLmFwcENvbmZpZy5nZXRDb25maWcoKS5hcHBUeXBlID09PSBBcHBUeXBlLk1vYmlsZTtcbiAgICBjb25zdCBwYXRoID0gWydhY2NvdW50JywgJ2ZvcmdvdC1wYXNzd29yZC1zdWNjZXNzJ107XG4gICAgY29uc3QgdXJsID0gaXNNb2JpbGVBcHBNb2RlID8gcGF0aCA6IHRoaXMucm91dGVTZXJ2aWNlLmdldE5hdmlnYXRpb25Sb3V0ZShwYXRoKTtcblxuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oUkVTRVRfUEFTU1dPUkRfRU1BSUwsIEpTT04uc3RyaW5naWZ5KGVtYWlsKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTmF2aWdhdGUodXJsKSk7XG4gICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5zdWNjZXNzKExvY2FsaXphdGlvbi5mb3Jnb3RfcGFzc3dvcmRfZW1haWxfc2VudF9tc2csIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzLnVzZXJzU2VydmljZVByb3h5Q2xvdWQuZm9yZ290UGFzc3dvcmQoZW1haWwsIHRlbmFudElkKTtcbiAgfVxuXG4gIEBBY3Rpb24oRm9yZ290UGFzc3dvcmRUZW5hbnRsZXNzQWN0aW9uKVxuICBwdWJsaWMgb25Gb3Jnb3RQYXNzd29yZFRlbmFudGxlc3MoY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyBlbWFpbCB9OiBGb3Jnb3RQYXNzd29yZEFjdGlvbikge1xuICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2Uuc3VjY2VzcyhMb2NhbGl6YXRpb24uZm9yZ290X3Bhc3N3b3JkX2VtYWlsX3NlbnRfbXNnLCB0aGlzLm1lc3NhZ2VPcHRpb25zKTtcbiAgICByZXR1cm4gdGhpcy51c2Vyc1NlcnZpY2VQcm94eUNsb3VkLmZvcmdvdFBhc3N3b3JkVGVuYW50bGVzcyhlbWFpbCk7XG4gIH1cblxuXG4gIEBBY3Rpb24oQWNjb3VudFNldFBhc3N3b3JkSW5pdEFjdGlvbilcbiAgcHVibGljIG9uQWNjb3VudFNldFBhc3N3b3JkSW5pdEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IHVzZXJJbmZvLCBjb21wb25lbnRUeXBlIH0pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICB1c2VySW5mbyxcbiAgICAgIHBhc3N3b3JkQ2hhbmdlVHlwZTogY29tcG9uZW50VHlwZVxuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihBY2NvdW50U2V0UGFzc3dvcmRFcnJvckFjdGlvbilcbiAgcHVibGljIG9uQWNjb3VudFNldFBhc3N3b3JkRXJyb3JBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyBlcnJvck1zZywgdXNlcm5hbWUgfSkge1xuICAgIGNvbnN0IHVzZXJJbmZvOiBVc2VySW5mbyA9IHsgLi4udXNlcm5hbWUgfTtcbiAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKGVycm9yTXNnLCB0aGlzLm1lc3NhZ2VPcHRpb25zKTtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICB1c2VySW5mb1xuICAgIH0pO1xuICB9XG5cbiAgQEFjdGlvbihBY2NvdW50U2V0UGFzc3dvcmRBY3Rpb24pXG4gIHB1YmxpYyBvbkFjY291bnRTZXRQYXNzd29yZEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IHBhc3N3b3JkIH06IEFjY291bnRTZXRQYXNzd29yZEFjdGlvbikge1xuICAgIGNvbnN0IHVzZXJJbmZvID0gY3R4LmdldFN0YXRlKCkudXNlckluZm87XG4gICAgbGV0IGRhdGE6IGFueTtcbiAgICBsZXQgc2V0UGFzc3dvcmQkOiBPYnNlcnZhYmxlPFVzZXJEdG9IdHRwUmVzcG9uc2VEYXRhIHwgQWN0aXZhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGE+O1xuXG4gICAgaWYgKHRoaXMuYXBwQ29uZmlnLmdldENvbmZpZygpLmFwcFR5cGUgPT09IEFwcFR5cGUuQ2xvdWQpIHtcbiAgICAgIGRhdGEgPSBuZXcgQWN0aXZhdGVVc2VyRHRvKHtcbiAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgIGN1cnJlbnRQYXNzd29yZDogbnVsbCxcbiAgICAgICAgdXNlclN0YXR1czogdXNlckluZm8uc3RhdHVzIGFzIFVzZXJTdGF0dXNcbiAgICAgIH0pO1xuXG4gICAgICBzZXRQYXNzd29yZCQgPSB0aGlzLnVzZXJzU2VydmljZVByb3h5Q2xvdWQuYWN0aXZhdGUoZGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGEgPSBuZXcgVXNlclVwZGF0ZVBhc3N3b3JkRHRvKHtcbiAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgIGN1cnJlbnRQYXNzd29yZDogbnVsbFxuICAgICAgfSk7XG4gICAgICBzZXRQYXNzd29yZCQgPSB0aGlzLnVzZXJzU2VydmljZVByb3h5RWRnZS51cGRhdGVVc2VyUGFzc3dvcmQoZGF0YSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNldFBhc3N3b3JkJC5waXBlKFxuICAgICAgbWFwKChhY3RpdmF0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YTogQWN0aXZhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKGFjdGl2YXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhLmRhdGEuaXNTdWNjZXNzKSB7XG4gICAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgICAgdGZhU2V0dXA6IGFjdGl2YXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhLmRhdGE/LnRmYVNldHVwLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihhY3RpdmF0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YS5kYXRhLmVycm9yTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcihlID0+IHtcbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogZTtcbiAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihlcnJvck1lc3NhZ2UsIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvck1lc3NhZ2UpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgQEFjdGlvbihWYWxpZGF0ZVVzZXJUb2tlbkFjdGlvbilcbiAgcHVibGljIG9uVmFsaWRhdGVVc2VyVG9rZW5BY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB0b2tlbiwgdG9rZW5UeXBlIH06IFZhbGlkYXRlVXNlclRva2VuQWN0aW9uKSB7XG4gICAgY29uc3QgcGN0OiBhbnkgPSBQYXNzd29yZENoYW5nZVR5cGVbdG9rZW5UeXBlXTtcbiAgICByZXR1cm4gdGhpcy51c2Vyc1NlcnZpY2VQcm94eUlkZW50aXR5LnZhbGlkYXRlQWN0aXZhdGlvbih0b2tlbiwgUGFzc3dvcmRDaGFuZ2VUeXBlW1Bhc3N3b3JkQ2hhbmdlVHlwZVt0b2tlblR5cGVdXSkucGlwZSh0YXAoe1xuICAgICAgbmV4dDogKHVzZXI6IFZhbGlkYXRlQWN0aXZhdGlvblVzZXJEdG9IdHRwUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmICh1c2VyPy5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgdXNlckluZm86IFVzZXJJbmZvID0ge1xuICAgICAgICAgICAgdXNlcklkOiB1c2VyLmRhdGEuaWQsXG4gICAgICAgICAgICB1c2VybmFtZTogdXNlci5kYXRhLnVOYW1lLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6IGAke3VzZXIuZGF0YS5uYW1lfSAke3VzZXIuZGF0YS5sYXN0TmFtZX1gLFxuICAgICAgICAgICAgc3RhdHVzOiB1c2VyLmRhdGEuc3RhdHVzLFxuICAgICAgICAgICAgcG1sOiB1c2VyLmRhdGEucG1sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAodXNlci5kYXRhLnN0YXR1cyAhPT0gVXNlclN0YXR1cy5CbG9ja2VkKSB7XG4gICAgICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgICAgIHVzZXJJbmZvLFxuICAgICAgICAgICAgICBwYXNzd29yZENoYW5nZVR5cGU6IHBjdCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKExvY2FsaXphdGlvbi5ub25fYWN0aXZlX3VzZXIsIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgICAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgICAgICB1c2VySW5mbyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVycm9yOiBlID0+IHtcbiAgICAgICAgY29uc3QgZXJyb3JKc29uOiBQcm9ibGVtRGV0YWlscyA9IEpTT04ucGFyc2UoZS5yZXNwb25zZSkgYXMgUHJvYmxlbURldGFpbHM7XG4gICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IocGFyc2VBcGlFcnJvck1lc3NhZ2UoZSksIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgdXNlckluZm86IHtcbiAgICAgICAgICAgIHVzZXJuYW1lOiBlcnJvckpzb24uaW5zdGFuY2UsXG4gICAgICAgICAgICB1c2VySWQ6IG51bGwsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogbnVsbFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oVmVyaWZ5MkZhY3RvckF1dGhlbnRpY2F0aW9uQWN0aW9uKVxuICBwdWJsaWMgb25WZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb25BY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB1c2VyTmFtZSwgY29kZSwgc2V0dXAyRmEgfTogVmVyaWZ5MkZhY3RvckF1dGhlbnRpY2F0aW9uQWN0aW9uKSB7XG4gICAgY29uc3QgdmVyaWZ5MkZhY3RvckF1dGhSZXF1ZXN0RHRvID0gbmV3IFZlcmlmeTJGYWN0b3JBdXRoUmVxdWVzdER0byh7XG4gICAgICBjb2RlLFxuICAgICAgdXNlck5hbWVcbiAgICB9KTtcblxuICAgIGxldCB2ZXJpZnkyRmFjdG9yQXV0aCQ6IE9ic2VydmFibGU8VmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXREdG9IdHRwUmVzcG9uc2VEYXRhPjtcbiAgICBpZiAoc2V0dXAyRmEpIHtcbiAgICAgIHZlcmlmeTJGYWN0b3JBdXRoJCA9IHRoaXMudXNlcnNTZXJ2aWNlUHJveHlJZGVudGl0eS52ZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb24odmVyaWZ5MkZhY3RvckF1dGhSZXF1ZXN0RHRvKTtcbiAgICB9IGVsc2UgeyAvLyBsb2dpbiBmb3IgdXNlciB3aXRoIDJGQSAoYWxyZWFkeSBzZXQgdXApXG4gICAgICB2ZXJpZnkyRmFjdG9yQXV0aCQgPSB0aGlzLnVzZXJzU2VydmljZVByb3h5SWRlbnRpdHkudmVyaWZ5MkZhY3RvckF1dGhlbnRpY2F0aW9uTG9naW4odmVyaWZ5MkZhY3RvckF1dGhSZXF1ZXN0RHRvKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZ5MkZhY3RvckF1dGgkLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6ICh2ZXJpZnkyRmFjdG9yQXV0aFJlc3BvbnNldDogVmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXREdG9IdHRwUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmFjY2Vzc1Rva2VuID0gdmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXQuZGF0YS5hY2Nlc3NUb2tlbjtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXBkYXRlQXV0aFRva2VuQWN0aW9uKHZlcmlmeTJGYWN0b3JBdXRoUmVzcG9uc2V0LmRhdGEuYWNjZXNzVG9rZW4pKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IocGFyc2VBcGlFcnJvck1lc3NhZ2UoZSksIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0VEZBU2V0dXBBY3Rpb24pXG4gIHB1YmxpYyBvblNldFRGQVNldHVwQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PExvZ2luU3RhdGVNb2RlbD4sIHsgdGZhU2V0dXBEdG8gfSkge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHRmYVNldHVwOiB0ZmFTZXR1cER0b1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhdXRoZW50aWNhdGlvbkVycm9yTWVzc2FnZUJhcihlcnJvcjogQXBpRXhjZXB0aW9uKSB7XG4gICAgY29uc3QgZXJyb3JNZXNzYWdlID0gcGFyc2VBcGlFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICAgIGNvbnN0IGRhdGEgPSBwYXJzZUFwaUVycm9yRGF0YTxBdXRoZW50aWNhdGVFcnJvclJlc3BvbnNlRHRvPihlcnJvcik7XG4gICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihlcnJvck1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMsIG1lc3NhZ2VQYXJhbXM6IHsgdGVtcG9yYXJ5TG9ja2VkTWludXRlczogZGF0YT8udGVtcG9yYXJ5QmxvY2tlZFRpbWUgfSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJNc2xMb2dpbkNhY2hlKCkge1xuICAgIGNvbnN0IGNsZWFyQ2FjaGVSZXF1ZXN0OiBDbGVhckNhY2hlUmVxdWVzdCA9IHtcbiAgICAgIGFjY291bnQ6IHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuZ2V0QWxsQWNjb3VudHMoKVswXSxcbiAgICB9O1xuICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuY2xlYXJDYWNoZShjbGVhckNhY2hlUmVxdWVzdCk7XG4gICAgdGhpcy5tc2FsU2VydmljZS5sb2dvdXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJTaW5nbGVTaW5nT25DYWNoZShzaW5nbGVTaWduT25Qcm92aWRlcjogU2luZ2xlU2lnbk9uUHJvdmlkZXIpIHtcbiAgICBzd2l0Y2ggKHNpbmdsZVNpZ25PblByb3ZpZGVyKSB7XG4gICAgICBjYXNlIFNpbmdsZVNpZ25PblByb3ZpZGVyLk1pY3Jvc29mdDpcbiAgICAgICAgdGhpcy5jbGVhck1zbExvZ2luQ2FjaGUoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2luZ2xlU2lnbk9uUHJvdmlkZXIuUGluZ0ZlZGVyYXRlOlxuICAgICAgICB0aGlzLm9wZW5JZEF1dGhTZXJ2aWNlLnNpZ25PdXQoKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSB1c2VyU3RhdHVzSXNBd2FpdGluZ0FjY2VzcyA9IChhdXRoUmVzcG9uc2U6IEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YSk6IGJvb2xlYW4gPT5cbiAgICBhdXRoUmVzcG9uc2UuZGF0YS5zaW5nbGVTaWduT25BdXRoZW50aWNhdGlvbkR0bz8uaXNBdXRoZW50aWNhdGVkID09PSBmYWxzZSAmJlxuICAgIGF1dGhSZXNwb25zZS5kYXRhLnNpbmdsZVNpZ25PbkF1dGhlbnRpY2F0aW9uRHRvPy51c2VyU3RhdHVzID09PSBVc2VyU3RhdHVzLkF3YWl0aW5nQWNjZXNzO1xuXG4gIEBBY3Rpb24oQmFja29mZmljZUF1dGhldGljYXRlQWN0aW9uKVxuICBwdWJsaWMgb25CYWNrb2ZmaWNlQXV0aGV0aWNhdGVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB0b2tlbiwgdGVuYW50SW5mbyB9OiBCYWNrb2ZmaWNlQXV0aGV0aWNhdGVBY3Rpb24pIHtcbiAgICBsZXQgYXV0aGVudGljYXRlT2lkYyQ6IE9ic2VydmFibGU8QXV0aGVudGljYXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhPjtcbiAgICBhdXRoZW50aWNhdGVPaWRjJCA9IHRoaXMuYmFja29mZmljZVVzZXJTZXJ2aWNlUHJveHlJZGVudGl0eS5iYWNrb2ZmaWNlQXV0aGVudGljYXRlKHRva2VuLCB0ZW5hbnRJbmZvLnRlbmFudE5hbWUpO1xuICAgIHJldHVybiBhdXRoZW50aWNhdGVPaWRjJC5waXBlKHRhcCh7XG4gICAgICBuZXh0OiBhdXRoUmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAoYXV0aFJlc3BvbnNlLmRhdGEubWVzc2FnZSA9PT0gTG9jYWxpemF0aW9uLnNzb19wZW5kaW5nX2FwcHJvdmFsKSB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5zc29fcGVuZGluZ19hcHByb3ZhbCk7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5pbmZvKG1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3BhcmtTZXNzaW9uID0gdGhpcy5hdXRoU2VydmljZS5wcm9jZXNzQXV0aGVudGljYXRlKGF1dGhSZXNwb25zZS5kYXRhKTtcbiAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBTZXRUZW5hbnRVc2VyQWN0aW9uKHNwYXJrU2Vzc2lvbikpO1xuICAgICAgICBpZiAodGhpcy51c2VyU3RhdHVzSXNBd2FpdGluZ0FjY2VzcyhhdXRoUmVzcG9uc2UpKSB7XG4gICAgICAgICAgdGhpcy5jbGVhclNpbmdsZVNpbmdPbkNhY2hlKFNpbmdsZVNpZ25PblByb3ZpZGVyLk1pY3Jvc29mdCk7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5zc29fcGVuZGluZ19hcHByb3ZhbCk7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS53YXJuKG1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgLy8gQWZ0ZXIgYXV0aGVudGljYXRpb24gZ2V0IGFwcCBjb25maWd1cmF0aW9uXG4gICAgICAgICAgdGhpcy5sb2dpblRvQmFja29mZmljZSgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGUgPT4ge1xuICAgICAgICB0aGlzLnNpbmdsZVNpbmdPbkVycm9ySGFuZGxpbmcoZSk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihPcGVuSWRBdXRoZXRpY2F0ZUFjdGlvbilcbiAgcHVibGljIG9uT3BlbklkQXV0aGV0aWNhdGVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB0b2tlbiwgc2luZ2xlU2lnbk9uUHJvdmlkZXIsIHRlbmFudEluZm8gfTogT3BlbklkQXV0aGV0aWNhdGVBY3Rpb24pIHtcbiAgICBsZXQgYXV0aGVudGljYXRlT2lkYyQ6IE9ic2VydmFibGU8QXV0aGVudGljYXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhPjtcbiAgICBhdXRoZW50aWNhdGVPaWRjJCA9IHRoaXMudXNlcnNTZXJ2aWNlUHJveHlJZGVudGl0eS5vcGVuSWRBdXRoZW50aWNhdGUodG9rZW4sIHRlbmFudEluZm8udGVuYW50TmFtZSk7XG4gICAgcmV0dXJuIGF1dGhlbnRpY2F0ZU9pZGMkLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6IGF1dGhSZXNwb25zZSA9PiB7XG4gICAgICAgIGlmIChhdXRoUmVzcG9uc2UuZGF0YS5tZXNzYWdlID09PSBMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpIHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLnNzb19wZW5kaW5nX2FwcHJvdmFsKTtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmluZm8obWVzc2FnZSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9KTtcbiAgICAgICAgICAvL3RoaXMuY2xlYXJTaW5nbGVTaW5nT25DYWNoZShzaW5nbGVTaWduT25Qcm92aWRlcik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3BhcmtTZXNzaW9uID0gdGhpcy5hdXRoU2VydmljZS5wcm9jZXNzQXV0aGVudGljYXRlKGF1dGhSZXNwb25zZS5kYXRhKTtcbiAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBTZXRUZW5hbnRVc2VyQWN0aW9uKHNwYXJrU2Vzc2lvbikpO1xuXG4gICAgICAgIGlmICh0aGlzLnVzZXJTdGF0dXNJc0F3YWl0aW5nQWNjZXNzKGF1dGhSZXNwb25zZSkpIHtcbiAgICAgICAgICB0aGlzLmNsZWFyU2luZ2xlU2luZ09uQ2FjaGUoc2luZ2xlU2lnbk9uUHJvdmlkZXIpO1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpO1xuICAgICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2Uud2FybihtZXNzYWdlLCB7IHBvc2l0aW9uOiBNZXNzYWdlQmFyUG9zaXRpb24uU3RhdGljIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIC8vIEFmdGVyIGF1dGhlbnRpY2F0aW9uIGdldCBhcHAgY29uZmlndXJhdGlvblxuICAgICAgICAgIHRoaXMubG9naW5Ub1NwYXJrKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgIHRoaXMuc2luZ2xlU2luZ09uRXJyb3JIYW5kbGluZyhlKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBzaW5nbGVTaW5nT25FcnJvckhhbmRsaW5nKGU6IGFueSkge1xuICAgIGlmIChlLmVycm9yTWVzc2FnZSA9PSBMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpO1xuICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5pbmZvKG1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGUuZXJyb3JNZXNzYWdlKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZS5lcnJvck1lc3NhZ2UpO1xuICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihtZXNzYWdlLCB7IHBvc2l0aW9uOiBNZXNzYWdlQmFyUG9zaXRpb24uU3RhdGljIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IocGFyc2VBcGlFcnJvck1lc3NhZ2UoZSksIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIGxvZ2luVG9TcGFyaygpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBMb2FkQXBwQ29uZmlndXJhdGlvbkFjdGlvbigpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBIZWFsdGhBY3Rpb24oKSk7XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudXBkYXRlTG9nZ2VkVGVuYW50KCk7XG4gICAgdGhpcy5sb2dpblNlcnZpY2UubG9naW5Ub1NwYXJrKCk7XG4gIH1cblxuICBsb2dpblRvQmFja29mZmljZSgpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBMb2FkQmFja29mZmljZUFwcENvbmZpZ3VyYXRpb25BY3Rpb24oKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgSGVhbHRoQWN0aW9uKCkpO1xuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZUxvZ2dlZFRlbmFudCgpO1xuICAgIHRoaXMubG9naW5TZXJ2aWNlLmxvZ2luVG9TcGFyaygpO1xuICB9XG59XG4iXX0=
@@ -37,6 +37,16 @@ export class ClearSmartparksBasicAction {
37
37
  constructor() {
38
38
  }
39
39
  }
40
+ let LoadBackofficeSmartparksTableAction = class LoadBackofficeSmartparksTableAction {
41
+ static { this.type = '[smart-park] LoadBackofficeSmartparksTable'; }
42
+ constructor(filter) {
43
+ this.filter = filter;
44
+ }
45
+ };
46
+ LoadBackofficeSmartparksTableAction = __decorate([
47
+ TrackAction()
48
+ ], LoadBackofficeSmartparksTableAction);
49
+ export { LoadBackofficeSmartparksTableAction };
40
50
  let LoadSmartparksTableAction = class LoadSmartparksTableAction {
41
51
  static { this.type = '[smart-park] LoadTable'; }
42
52
  constructor(filter) {
@@ -81,10 +91,20 @@ export class SetSmartParkVersionsAction {
81
91
  this.versions = versions;
82
92
  }
83
93
  }
94
+ export class SetBackofficeSmartParkVersionsAction {
95
+ static { this.type = '[smart-park] SetBackofficeSmartParkVersionsAction'; }
96
+ constructor(versions) {
97
+ this.versions = versions;
98
+ }
99
+ }
84
100
  export class LoadSpAndSparkVersionsAction {
85
101
  static { this.type = '[smart-park] LoadSpAndSparkVersions'; }
86
102
  constructor() { }
87
103
  }
104
+ export class LoadBackofficeSpAndSparkVersionsAction {
105
+ static { this.type = '[smart-park] LoadBackofficeSpAndSparkVersionsAction'; }
106
+ constructor() { }
107
+ }
88
108
  export class ClearSpAndSparkVersionsAction {
89
109
  static { this.type = '[smart-park] ClearSpAndSparkVersionsAction'; }
90
110
  constructor() { }
@@ -95,6 +115,12 @@ export class LoadVarsAction {
95
115
  this.searchParamsDto = searchParamsDto;
96
116
  }
97
117
  }
118
+ export class LoadBackofficeVarsAction {
119
+ static { this.type = '[smart-park] LoadBackofficeVarsAction'; }
120
+ constructor(searchParamsDto) {
121
+ this.searchParamsDto = searchParamsDto;
122
+ }
123
+ }
98
124
  export class SyncUsersAndRolesBySmartparkIdAction {
99
125
  static { this.type = '[smart-park] SyncUsersAndRolesBySmartparkId'; }
100
126
  constructor(smartpark) {
@@ -155,4 +181,4 @@ export class ExportPdfSmartparksTableAction {
155
181
  this.filter = filter;
156
182
  }
157
183
  }
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwYXJrLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvc21hcnRwYXJrcy9zbWFydHBhcmsuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBR0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRy9ELElBQU0sb0JBQW9CLEdBQTFCLE1BQU0sb0JBQW9CO2FBQ1IsU0FBSSxHQUFHLG1CQUFtQixBQUF0QixDQUF1QjtJQUVsRCxZQUFtQixNQUFnQjtRQUFoQixXQUFNLEdBQU4sTUFBTSxDQUFVO0lBQ25DLENBQUM7O0FBSlUsb0JBQW9CO0lBRGhDLFdBQVcsRUFBRTtHQUNELG9CQUFvQixDQUtoQzs7QUFHTSxJQUFNLHlCQUF5QixHQUEvQixNQUFNLHlCQUF5QjthQUNiLFNBQUksR0FBRyx3Q0FBd0MsQUFBM0MsQ0FBNEM7SUFFdkUsWUFBbUIsU0FBb0IsRUFBUyxZQUF1QixJQUFJO1FBQXhELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBUyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUMzRSxDQUFDOztBQUpVLHlCQUF5QjtJQURyQyxXQUFXLEVBQUU7R0FDRCx5QkFBeUIsQ0FLckM7O0FBR00sSUFBTSwrQkFBK0IsR0FBckMsTUFBTSwrQkFBK0I7YUFDbkIsU0FBSSxHQUFHLDhDQUE4QyxBQUFqRCxDQUFrRDtJQUU3RSxZQUFtQixTQUFvQixFQUFTLFlBQXVCLElBQUk7UUFBeEQsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFTLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQzNFLENBQUM7O0FBSlUsK0JBQStCO0lBRDNDLFdBQVcsRUFBRTtHQUNELCtCQUErQixDQUszQzs7QUFFRCxNQUFNLE9BQU8sMEJBQTBCO2FBQ2QsU0FBSSxHQUFHLHlDQUF5QyxDQUFDO0lBRXhFO0lBQ0Es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aEQsQ0FBQzs7QUFHSCxNQUFNLE9BQU8scUJBQXFCO2FBQ1QsU0FBSSxHQUFHLDhCQUE4QixDQUFDO0lBQzdELFlBQW1CLGVBQWdDLEVBQVMsUUFBa0IsRUFBUyxhQUF1QjtRQUEzRixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQVU7SUFDOUcsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sOEJBQThCO2FBQ2xCLFNBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUV2RCxZQUFtQixNQUF1QjtRQUF2QixXQUFNLEdBQU4sTUFBTSxDQUFpQjtJQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwTW9kdWxlLCBGaWxlVHlwZSwgU21hcnRwYXJrRHRvLCBTbWFydHBhcmtGaWx0ZXIsIFN1Yk1vZHVsZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllc1wiO1xuaW1wb3J0IHsgRGV2aWNlU3RhdHVzRHRvLCBTZWFyY2hQYXJhbXNEdG8sIFNtYXJ0cGFya0Jhc2ljRHRvIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UtcHJveHkvZWRnZS1zZXJ2aWNlLXByb3hpZXNcIjtcbmltcG9ydCB7IFN0cmluZ01hcCB9IGZyb20gXCIuLi8uLi91dGlscy9sYW5nLnV0aWxcIjtcbmltcG9ydCB7IFRyYWNrQWN0aW9uIH0gZnJvbSBcIi4uLy4uL3V0aWxzL25neHMvdHJhY2stYWN0aW9uLmRlY29yYXRvclwiO1xuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWRTbWFydHBhcmtzQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVsb2FkPzogYm9vbGVhbikge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZFNtYXJ0cGFya3NCYXNpY0FjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gTG9hZFNtYXJ0cGFya3NCYXNpY0FjdGlvbic7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGFwcE1vZHVsZTogQXBwTW9kdWxlLCBwdWJsaWMgc3ViTW9kdWxlOiBTdWJNb2R1bGUgPSBudWxsKSB7XG4gIH1cbn1cblxuQFRyYWNrQWN0aW9uKClcbmV4cG9ydCBjbGFzcyBMb2FkTW9iaWxlU21hcnRwYXJrc0Jhc2ljQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkTW9iaWxlU21hcnRwYXJrc0Jhc2ljQWN0aW9uJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYXBwTW9kdWxlOiBBcHBNb2R1bGUsIHB1YmxpYyBzdWJNb2R1bGU6IFN1Yk1vZHVsZSA9IG51bGwpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xlYXJTbWFydHBhcmtzQmFzaWNBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIENsZWFyU21hcnRwYXJrc0Jhc2ljQWN0aW9uJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWRTbWFydHBhcmtzVGFibGVBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIExvYWRUYWJsZSc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGZpbHRlcjogU21hcnRwYXJrRmlsdGVyKSB7XG4gIH1cbn1cbmV4cG9ydCBjbGFzcyBTZXRTbWFydFBhcmtUYWJsZUFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gU2V0VGFibGUnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzbWFydHBhcmtzOiBTbWFydHBhcmtEdG9bXSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRTbWFydFBhcmtBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIFNldCc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNtYXJ0cGFya3M6IFNtYXJ0cGFya0R0b1tdIHwgU21hcnRwYXJrQmFzaWNEdG9bXSwgcHVibGljIHJlbG9hZD86IGJvb2xlYW4pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0U21hcnRQYXJrQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIFNlbGVjdFNtYXJ0UGFyayc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNtYXJ0UGFya0lkLCBwdWJsaWMgcmVsb2FkPzogYm9vbGVhbikgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBEaXNjb25uZWN0U21hcnRQYXJrQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIERpc2Nvbm5lY3RTbWFydFBhcmsnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzbWFydFBhcmtHdWlkOiBzdHJpbmcsIHB1YmxpYyBzbWFydFBhcmtJZDogbnVtYmVyLCBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZykgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRTbWFydFBhcmtWZXJzaW9uc0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBTZXRWZXJzaW9ucyc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHZlcnNpb25zOiBTdHJpbmdNYXA8c3RyaW5nPikgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2FkU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIExvYWRTcEFuZFNwYXJrVmVyc2lvbnMnO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBDbGVhclNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBDbGVhclNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbic7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIExvYWRWYXJzQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIExvYWRWYXJzQWN0aW9uJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VhcmNoUGFyYW1zRHRvOiBTZWFyY2hQYXJhbXNEdG8pIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgU3luY1VzZXJzQW5kUm9sZXNCeVNtYXJ0cGFya0lkQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBTeW5jVXNlcnNBbmRSb2xlc0J5U21hcnRwYXJrSWQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzbWFydHBhcms6IFNtYXJ0cGFya0R0bykge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZFBhcmtzQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkUGFya3MnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZFBhcmtEZXZpY2VzQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkUGFya0RldmljZXMnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RQYXJrQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIFNlbGVjdFBhcmsnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJrSWQ6IG51bWJlcikgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBDbGVhclNlbGVjdGVkUGFya0FjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gQ2xlYXJTZWxlY3RlZFBhcmsnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDbGVhclNlbGVjdGVkU21hcnRwYXJrQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBDbGVhclNlbGVjdGVkU21hcnRwYXJrJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU21hcnRQYXJrRGV2aWNlU3RhdHVzQ2hhbmdlZEFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBEZXZpY2VTdGF0dXNDaGFuZ2VkJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGV2aWNlU3RhdHVzOiBEZXZpY2VTdGF0dXNEdG8pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXhwb3J0U21hcnRwYXJrQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBFeHBvcnRTbWFydHBhcmsnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgc21hcnRwYXJrRmlsdGVyOiBTbWFydHBhcmtGaWx0ZXIsIHB1YmxpYyBmaWxlVHlwZTogRmlsZVR5cGUsIHB1YmxpYyBjb2x1bW5zSGVhZGVyOiBzdHJpbmdbXSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFeHBvcnRQZGZTbWFydHBhcmtzVGFibGVBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIEV4cG9ydFBkZic7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGZpbHRlcjogU21hcnRwYXJrRmlsdGVyKSB7XG4gIH1cbn1cbiJdfQ==
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwYXJrLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvc21hcnRwYXJrcy9zbWFydHBhcmsuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBR0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRy9ELElBQU0sb0JBQW9CLEdBQTFCLE1BQU0sb0JBQW9CO2FBQ1IsU0FBSSxHQUFHLG1CQUFtQixBQUF0QixDQUF1QjtJQUVsRCxZQUFtQixNQUFnQjtRQUFoQixXQUFNLEdBQU4sTUFBTSxDQUFVO0lBQ25DLENBQUM7O0FBSlUsb0JBQW9CO0lBRGhDLFdBQVcsRUFBRTtHQUNELG9CQUFvQixDQUtoQzs7QUFHTSxJQUFNLHlCQUF5QixHQUEvQixNQUFNLHlCQUF5QjthQUNiLFNBQUksR0FBRyx3Q0FBd0MsQUFBM0MsQ0FBNEM7SUFFdkUsWUFBbUIsU0FBb0IsRUFBUyxZQUF1QixJQUFJO1FBQXhELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBUyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUMzRSxDQUFDOztBQUpVLHlCQUF5QjtJQURyQyxXQUFXLEVBQUU7R0FDRCx5QkFBeUIsQ0FLckM7O0FBR00sSUFBTSwrQkFBK0IsR0FBckMsTUFBTSwrQkFBK0I7YUFDbkIsU0FBSSxHQUFHLDhDQUE4QyxBQUFqRCxDQUFrRDtJQUU3RSxZQUFtQixTQUFvQixFQUFTLFlBQXVCLElBQUk7UUFBeEQsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFTLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQzNFLENBQUM7O0FBSlUsK0JBQStCO0lBRDNDLFdBQVcsRUFBRTtHQUNELCtCQUErQixDQUszQzs7QUFFRCxNQUFNLE9BQU8sMEJBQTBCO2FBQ2QsU0FBSSxHQUFHLHlDQUF5QyxDQUFDO0lBRXhFO0lBQ0Es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LHFCQUFxQixHQUEzQixNQUFNLHFCQUFxQjthQUNULFNBQUksR0FBRyw4QkFBOEIsQUFBakMsQ0FBa0M7SUFFN0Q7SUFDQSxDQUFDOztBQUpVLHFCQUFxQjtJQURqQyxXQUFXLEVBQUU7R0FDRCxxQkFBcUIsQ0FLakM7O0FBRUQsTUFBTSxPQUFPLGdCQUFnQjthQUNYLFNBQUksR0FBRyx5QkFBeUIsQ0FBQztJQUVqRCxZQUFtQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFJLENBQUM7O0FBR3hDLE1BQU0sT0FBTyx1QkFBdUI7YUFDWCxTQUFJLEdBQUcsZ0NBQWdDLENBQUM7SUFFL0Q7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyw0QkFBNEI7YUFDaEIsU0FBSSxHQUFHLHFDQUFxQyxDQUFDO0lBRXBFO0lBQ0EsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sa0NBQWtDO2FBQzdCLFNBQUksR0FBRyxrQ0FBa0MsQ0FBQztJQUUxRCxZQUFtQixZQUE2QjtRQUE3QixpQkFBWSxHQUFaLFlBQVksQ0FBaUI7SUFDaEQsQ0FBQzs7QUFHSCxNQUFNLE9BQU8scUJBQXFCO2FBQ1QsU0FBSSxHQUFHLDhCQUE4QixDQUFDO0lBQzdELFlBQW1CLGVBQWdDLEVBQVMsUUFBa0IsRUFBUyxhQUF1QjtRQUEzRixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQVU7SUFDOUcsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sOEJBQThCO2FBQ2xCLFNBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUV2RCxZQUFtQixNQUF1QjtRQUF2QixXQUFNLEdBQU4sTUFBTSxDQUFpQjtJQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwTW9kdWxlLCBGaWxlVHlwZSwgU21hcnRwYXJrRHRvLCBTbWFydHBhcmtGaWx0ZXIsIFN1Yk1vZHVsZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllc1wiO1xuaW1wb3J0IHsgRGV2aWNlU3RhdHVzRHRvLCBTZWFyY2hQYXJhbXNEdG8sIFNtYXJ0cGFya0Jhc2ljRHRvIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UtcHJveHkvZWRnZS1zZXJ2aWNlLXByb3hpZXNcIjtcbmltcG9ydCB7IFN0cmluZ01hcCB9IGZyb20gXCIuLi8uLi91dGlscy9sYW5nLnV0aWxcIjtcbmltcG9ydCB7IFRyYWNrQWN0aW9uIH0gZnJvbSBcIi4uLy4uL3V0aWxzL25neHMvdHJhY2stYWN0aW9uLmRlY29yYXRvclwiO1xuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWRTbWFydHBhcmtzQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVsb2FkPzogYm9vbGVhbikge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZFNtYXJ0cGFya3NCYXNpY0FjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gTG9hZFNtYXJ0cGFya3NCYXNpY0FjdGlvbic7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGFwcE1vZHVsZTogQXBwTW9kdWxlLCBwdWJsaWMgc3ViTW9kdWxlOiBTdWJNb2R1bGUgPSBudWxsKSB7XG4gIH1cbn1cblxuQFRyYWNrQWN0aW9uKClcbmV4cG9ydCBjbGFzcyBMb2FkTW9iaWxlU21hcnRwYXJrc0Jhc2ljQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkTW9iaWxlU21hcnRwYXJrc0Jhc2ljQWN0aW9uJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYXBwTW9kdWxlOiBBcHBNb2R1bGUsIHB1YmxpYyBzdWJNb2R1bGU6IFN1Yk1vZHVsZSA9IG51bGwpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xlYXJTbWFydHBhcmtzQmFzaWNBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIENsZWFyU21hcnRwYXJrc0Jhc2ljQWN0aW9uJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWRCYWNrb2ZmaWNlU21hcnRwYXJrc1RhYmxlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkQmFja29mZmljZVNtYXJ0cGFya3NUYWJsZSc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGZpbHRlcjogU21hcnRwYXJrRmlsdGVyKSB7XG4gIH1cbn1cblxuQFRyYWNrQWN0aW9uKClcbmV4cG9ydCBjbGFzcyBMb2FkU21hcnRwYXJrc1RhYmxlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkVGFibGUnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmaWx0ZXI6IFNtYXJ0cGFya0ZpbHRlcikge1xuICB9XG59XG5leHBvcnQgY2xhc3MgU2V0U21hcnRQYXJrVGFibGVBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIFNldFRhYmxlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc21hcnRwYXJrczogU21hcnRwYXJrRHRvW10pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0U21hcnRQYXJrQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBTZXQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzbWFydHBhcmtzOiBTbWFydHBhcmtEdG9bXSB8IFNtYXJ0cGFya0Jhc2ljRHRvW10sIHB1YmxpYyByZWxvYWQ/OiBib29sZWFuKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNlbGVjdFNtYXJ0UGFya0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBTZWxlY3RTbWFydFBhcmsnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzbWFydFBhcmtJZCwgcHVibGljIHJlbG9hZD86IGJvb2xlYW4pIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgRGlzY29ubmVjdFNtYXJ0UGFya0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBEaXNjb25uZWN0U21hcnRQYXJrJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc21hcnRQYXJrR3VpZDogc3RyaW5nLCBwdWJsaWMgc21hcnRQYXJrSWQ6IG51bWJlciwgcHVibGljIHBhc3N3b3JkOiBzdHJpbmcpIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0U21hcnRQYXJrVmVyc2lvbnNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gU2V0VmVyc2lvbnMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2ZXJzaW9uczogU3RyaW5nTWFwPHN0cmluZz4pIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0QmFja29mZmljZVNtYXJ0UGFya1ZlcnNpb25zQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIFNldEJhY2tvZmZpY2VTbWFydFBhcmtWZXJzaW9uc0FjdGlvbic7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHZlcnNpb25zOiBTdHJpbmdNYXA8c3RyaW5nPikgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2FkU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIExvYWRTcEFuZFNwYXJrVmVyc2lvbnMnO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2FkQmFja29mZmljZVNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkQmFja29mZmljZVNwQW5kU3BhcmtWZXJzaW9uc0FjdGlvbic7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIENsZWFyU3BBbmRTcGFya1ZlcnNpb25zQWN0aW9uJztcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9hZFZhcnNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gTG9hZFZhcnNBY3Rpb24nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZWFyY2hQYXJhbXNEdG86IFNlYXJjaFBhcmFtc0R0bykgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2FkQmFja29mZmljZVZhcnNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gTG9hZEJhY2tvZmZpY2VWYXJzQWN0aW9uJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VhcmNoUGFyYW1zRHRvOiBTZWFyY2hQYXJhbXNEdG8pIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgU3luY1VzZXJzQW5kUm9sZXNCeVNtYXJ0cGFya0lkQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBTeW5jVXNlcnNBbmRSb2xlc0J5U21hcnRwYXJrSWQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzbWFydHBhcms6IFNtYXJ0cGFya0R0bykge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZFBhcmtzQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkUGFya3MnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZFBhcmtEZXZpY2VzQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBMb2FkUGFya0RldmljZXMnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RQYXJrQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIFNlbGVjdFBhcmsnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJrSWQ6IG51bWJlcikgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBDbGVhclNlbGVjdGVkUGFya0FjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbc21hcnQtcGFya10gQ2xlYXJTZWxlY3RlZFBhcmsnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDbGVhclNlbGVjdGVkU21hcnRwYXJrQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBDbGVhclNlbGVjdGVkU21hcnRwYXJrJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU21hcnRQYXJrRGV2aWNlU3RhdHVzQ2hhbmdlZEFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBEZXZpY2VTdGF0dXNDaGFuZ2VkJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGV2aWNlU3RhdHVzOiBEZXZpY2VTdGF0dXNEdG8pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXhwb3J0U21hcnRwYXJrQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tzbWFydC1wYXJrXSBFeHBvcnRTbWFydHBhcmsnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgc21hcnRwYXJrRmlsdGVyOiBTbWFydHBhcmtGaWx0ZXIsIHB1YmxpYyBmaWxlVHlwZTogRmlsZVR5cGUsIHB1YmxpYyBjb2x1bW5zSGVhZGVyOiBzdHJpbmdbXSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFeHBvcnRQZGZTbWFydHBhcmtzVGFibGVBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3NtYXJ0LXBhcmtdIEV4cG9ydFBkZic7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGZpbHRlcjogU21hcnRwYXJrRmlsdGVyKSB7XG4gIH1cbn1cbiJdfQ==