@senior-gestao-empresarial/angular-components 7.18.0 → 7.18.1-develop-d860502e

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.
@@ -170,4 +170,6 @@ export declare class ErpLookups {
170
170
  onLookupRequest(value: string, prefix: string, options?: LookupOptions): void;
171
171
  onSearchRequest(event: any, prefix: string, options?: LookupOptions): void;
172
172
  getItemLabel(item: any, prefix: string, lookupDisplayFields: string[]): string;
173
+ private getNestedValue;
174
+ private setNestedValue;
173
175
  }
@@ -9,5 +9,6 @@ export declare enum EnumImpostoCadastro {
9
9
  VCIDE = "VCIDE",
10
10
  VCBS = "VCBS",
11
11
  VIBS = "VIBS",
12
- VIS = "VIS"
12
+ VIS = "VIS",
13
+ VCBS_IBS_CREDITO_PRESUMIDO = "VCBS_IBS_CREDITO_PRESUMIDO"
13
14
  }
@@ -74,6 +74,10 @@ let ComposicaoBaseCalculoLookup = class ComposicaoBaseCalculoLookup extends ErpL
74
74
  label: translate.instant("erpx_cpl_imp.impostos.enum_imposto_cadastro_vibs"),
75
75
  value: EnumImpostoCadastro.VIBS,
76
76
  },
77
+ {
78
+ label: translate.instant("erpx_cpl_imp.impostos.enum_imposto_cadastro_vcbs_ibs_credito_presumido"),
79
+ value: EnumImpostoCadastro.VCBS_IBS_CREDITO_PRESUMIDO,
80
+ },
77
81
  {
78
82
  label: translate.instant("erpx_cpl_imp.impostos.enum_imposto_cadastro_vis"),
79
83
  value: EnumImpostoCadastro.VIS,
@@ -97,4 +101,4 @@ ComposicaoBaseCalculoLookup = __decorate([
97
101
  Injectable()
98
102
  ], ComposicaoBaseCalculoLookup);
99
103
  export { ComposicaoBaseCalculoLookup };
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaWNhby1iYXNlLWNhbGN1bG8tbG9va3VwLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tZW1wcmVzYXJpYWwvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9sb29rdXBzL2VudGl0aWVzL2NvbXBvc2ljYW8tYmFzZS1jYWxjdWxvLWxvb2t1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBR2hGLElBQWEsMkJBQTJCLEdBQXhDLE1BQWEsMkJBQTRCLFNBQVEsVUFBVTtJQUN2RCxZQUFzQixhQUFnQyxFQUFZLFNBQTJCO1FBQ3pGLEtBQUssQ0FDRCxhQUFhLEVBQ2IsU0FBUyxFQUNULHVCQUF1QixFQUN2QjtZQUNJO2dCQUNJLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTthQUN6QjtZQUNEO2dCQUNJLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTthQUN6QjtTQUNKLEVBQ0Q7WUFDSTtnQkFDSSxJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07YUFDekI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07YUFDekI7U0FDSixFQUNEO1lBQ0k7Z0JBQ0ksSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO2FBQ3pCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO2FBQ3pCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO2dCQUNwQixPQUFPLEVBQUU7b0JBQ0w7d0JBQ0ksS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsMENBQTBDLENBQUM7d0JBQ3BFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxLQUFLO3FCQUNuQztvQkFDRDt3QkFDSSxLQUFLLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyx5Q0FBeUMsQ0FBQzt3QkFDbkUsS0FBSyxFQUFFLG1CQUFtQixDQUFDLEtBQUs7cUJBQ25DO29CQUNEO3dCQUNJLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLHdDQUF3QyxDQUFDO3dCQUNsRSxLQUFLLEVBQUUsbUJBQW1CLENBQUMsR0FBRztxQkFDakM7b0JBQ0Q7d0JBQ0ksS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsa0RBQWtELENBQUM7d0JBQzVFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxJQUFJO3FCQUNsQztvQkFDRDt3QkFDSSxLQUFLLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxrREFBa0QsQ0FBQzt3QkFDNUUsS0FBSyxFQUFFLG1CQUFtQixDQUFDLElBQUk7cUJBQ2xDO29CQUNEO3dCQUNJLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLHlEQUF5RCxDQUFDO3dCQUNuRixLQUFLLEVBQUUsbUJBQW1CLENBQUMsV0FBVztxQkFDekM7b0JBQ0Q7d0JBQ0ksS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsdURBQXVELENBQUM7d0JBQ2pGLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxTQUFTO3FCQUN2QztvQkFDRDt3QkFDSSxLQUFLLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxrREFBa0QsQ0FBQzt3QkFDNUUsS0FBSyxFQUFFLG1CQUFtQixDQUFDLElBQUk7cUJBQ2xDO29CQUNEO3dCQUNJLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLGtEQUFrRCxDQUFDO3dCQUM1RSxLQUFLLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtxQkFDbEM7b0JBQ0Q7d0JBQ0ksS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsaURBQWlELENBQUM7d0JBQzNFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxHQUFHO3FCQUNqQztvQkFDRDt3QkFDSSxLQUFLLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvREFBb0QsQ0FBQzt3QkFDOUUsS0FBSyxFQUFFLG1CQUFtQixDQUFDLE1BQU07cUJBQ3BDO2lCQUNKO2FBQ0o7U0FDSixFQUNELGNBQWMsRUFDZCxXQUFXLENBQ2QsQ0FBQztRQXZGZ0Isa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQVksY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUF3RjdGLENBQUM7Q0FDSixDQUFBOztZQXpGd0MsaUJBQWlCO1lBQXVCLGdCQUFnQjs7QUFEcEYsMkJBQTJCO0lBRHZDLFVBQVUsRUFBRTtHQUNBLDJCQUEyQixDQTBGdkM7U0ExRlksMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcbmltcG9ydCB7IEVycExvb2t1cHNTZXJ2aWNlIH0gZnJvbSBcIi4uL2VycC1sb29rdXBzLnNlcnZpY2VcIjtcblxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEVycExvb2t1cHMgfSBmcm9tIFwiLi4vZXJwLWxvb2t1cHNcIjtcbmltcG9ydCB7IEVudW1JbXBvc3RvQ2FkYXN0cm8gfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9lbnVtcy9lbnVtLWltcG9zdG8tY2FkYXN0cm9cIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbXBvc2ljYW9CYXNlQ2FsY3Vsb0xvb2t1cCBleHRlbmRzIEVycExvb2t1cHMge1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBsb29rdXBTZXJ2aWNlOiBFcnBMb29rdXBzU2VydmljZSwgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIGxvb2t1cFNlcnZpY2UsXG4gICAgICAgICAgICB0cmFuc2xhdGUsXG4gICAgICAgICAgICBcImNvbXBvc2ljYW9CYXNlQ2FsY3Vsb1wiLFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJjb2RpZ29cIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlN0cmluZyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJub21lXCIsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcImNvZGlnb1wiLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuU3RyaW5nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIm5vbWVcIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlN0cmluZyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiY29kaWdvXCIsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwibm9tZVwiLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuU3RyaW5nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcImltcG9zdG9cIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLkVudW0sXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuZW51bV9pbXBvc3RvX2NhZGFzdHJvX3ZjaWRlXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtSW1wb3N0b0NhZGFzdHJvLlZDSURFLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuZW51bV9pbXBvc3RvX2NhZGFzdHJvX2ljbXNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1JbXBvc3RvQ2FkYXN0cm8uVklDTVMsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGUuaW5zdGFudChcImVycHhfY3BsX2ltcC5lbnVtX2ltcG9zdG9fY2FkYXN0cm9fdmlpXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtSW1wb3N0b0NhZGFzdHJvLlZJSSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1faW1wb3N0b19jYWRhc3Ryb192aXBpXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtSW1wb3N0b0NhZGFzdHJvLlZJUEksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGUuaW5zdGFudChcImVycHhfY3BsX2ltcC5pbXBvc3Rvcy5lbnVtX2ltcG9zdG9fY2FkYXN0cm9fdmlzc1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bUltcG9zdG9DYWRhc3Ryby5WSVNTLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuaW1wb3N0b3MuZW51bV9pbXBvc3RvX2NhZGFzdHJvX3ZwaXNfY29maW5zXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtSW1wb3N0b0NhZGFzdHJvLlZQSVNfQ09GSU5TLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuaW1wb3N0b3MuZW51bV9pbXBvc3RvX2NhZGFzdHJvX3ZyZXRlbmNhb1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bUltcG9zdG9DYWRhc3Ryby5WUkVURU5DQU8sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGUuaW5zdGFudChcImVycHhfY3BsX2ltcC5pbXBvc3Rvcy5lbnVtX2ltcG9zdG9fY2FkYXN0cm9fdmNic1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bUltcG9zdG9DYWRhc3Ryby5WQ0JTLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuaW1wb3N0b3MuZW51bV9pbXBvc3RvX2NhZGFzdHJvX3ZpYnNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1JbXBvc3RvQ2FkYXN0cm8uVklCUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1faW1wb3N0b19jYWRhc3Ryb192aXNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1JbXBvc3RvQ2FkYXN0cm8uVklTLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuaW1wb3N0b3MuZW51bV9pbXBvc3RvX2NhZGFzdHJvX3Z0b2Rvc1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bUltcG9zdG9DYWRhc3Ryby5WVE9ET1MsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgXCJlcnB4X2NwbF9pbXBcIixcbiAgICAgICAgICAgIFwiY2FkYXN0cm9zXCJcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaWNhby1iYXNlLWNhbGN1bG8tbG9va3VwLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tZW1wcmVzYXJpYWwvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9sb29rdXBzL2VudGl0aWVzL2NvbXBvc2ljYW8tYmFzZS1jYWxjdWxvLWxvb2t1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBR2hGLElBQWEsMkJBQTJCLEdBQXhDLE1BQWEsMkJBQTRCLFNBQVEsVUFBVTtJQUN2RCxZQUFzQixhQUFnQyxFQUFZLFNBQTJCO1FBQ3pGLEtBQUssQ0FDRCxhQUFhLEVBQ2IsU0FBUyxFQUNULHVCQUF1QixFQUN2QjtZQUNJO2dCQUNJLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTthQUN6QjtZQUNEO2dCQUNJLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTthQUN6QjtTQUNKLEVBQ0Q7WUFDSTtnQkFDSSxJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07YUFDekI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07YUFDekI7U0FDSixFQUNEO1lBQ0k7Z0JBQ0ksSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO2FBQ3pCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO2FBQ3pCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO2dCQUNwQixPQUFPLEVBQUU7b0JBQ0w7d0JBQ0ksS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsMENBQTBDLENBQUM7d0JBQ3BFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxLQUFLO3FCQUNuQztvQkFDRDt3QkFDSSxLQUFLLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyx5Q0FBeUMsQ0FBQzt3QkFDbkUsS0FBSyxFQUFFLG1CQUFtQixDQUFDLEtBQUs7cUJBQ25DO29CQUNEO3dCQUNJLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLHdDQUF3QyxDQUFDO3dCQUNsRSxLQUFLLEVBQUUsbUJBQW1CLENBQUMsR0FBRztxQkFDakM7b0JBQ0Q7d0JBQ0ksS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsa0RBQWtELENBQUM7d0JBQzVFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxJQUFJO3FCQUNsQztvQkFDRDt3QkFDSSxLQUFLLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxrREFBa0QsQ0FBQzt3QkFDNUUsS0FBSyxFQUFFLG1CQUFtQixDQUFDLElBQUk7cUJBQ2xDO29CQUNEO3dCQUNJLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLHlEQUF5RCxDQUFDO3dCQUNuRixLQUFLLEVBQUUsbUJBQW1CLENBQUMsV0FBVztxQkFDekM7b0JBQ0Q7d0JBQ0ksS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsdURBQXVELENBQUM7d0JBQ2pGLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxTQUFTO3FCQUN2QztvQkFDRDt3QkFDSSxLQUFLLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxrREFBa0QsQ0FBQzt3QkFDNUUsS0FBSyxFQUFFLG1CQUFtQixDQUFDLElBQUk7cUJBQ2xDO29CQUNEO3dCQUNJLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLGtEQUFrRCxDQUFDO3dCQUM1RSxLQUFLLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtxQkFDbEM7b0JBQ0Q7d0JBQ0ksS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsd0VBQXdFLENBQUM7d0JBQ2xHLEtBQUssRUFBRSxtQkFBbUIsQ0FBQywwQkFBMEI7cUJBQ3hEO29CQUNEO3dCQUNJLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLGlEQUFpRCxDQUFDO3dCQUMzRSxLQUFLLEVBQUUsbUJBQW1CLENBQUMsR0FBRztxQkFDakM7b0JBQ0Q7d0JBQ0ksS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0RBQW9ELENBQUM7d0JBQzlFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO3FCQUNwQztpQkFDSjthQUNKO1NBQ0osRUFDRCxjQUFjLEVBQ2QsV0FBVyxDQUNkLENBQUM7UUEzRmdCLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBNEY3RixDQUFDO0NBQ0osQ0FBQTs7WUE3RndDLGlCQUFpQjtZQUF1QixnQkFBZ0I7O0FBRHBGLDJCQUEyQjtJQUR2QyxVQUFVLEVBQUU7R0FDQSwyQkFBMkIsQ0E4RnZDO1NBOUZZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XG5pbXBvcnQgeyBFcnBMb29rdXBzU2VydmljZSB9IGZyb20gXCIuLi9lcnAtbG9va3Vwcy5zZXJ2aWNlXCI7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBFcnBMb29rdXBzIH0gZnJvbSBcIi4uL2VycC1sb29rdXBzXCI7XG5pbXBvcnQgeyBFbnVtSW1wb3N0b0NhZGFzdHJvIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZW51bXMvZW51bS1pbXBvc3RvLWNhZGFzdHJvXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb21wb3NpY2FvQmFzZUNhbGN1bG9Mb29rdXAgZXh0ZW5kcyBFcnBMb29rdXBzIHtcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbG9va3VwU2VydmljZTogRXJwTG9va3Vwc1NlcnZpY2UsIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoXG4gICAgICAgICAgICBsb29rdXBTZXJ2aWNlLFxuICAgICAgICAgICAgdHJhbnNsYXRlLFxuICAgICAgICAgICAgXCJjb21wb3NpY2FvQmFzZUNhbGN1bG9cIixcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiY29kaWdvXCIsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwibm9tZVwiLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuU3RyaW5nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJjb2RpZ29cIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlN0cmluZyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJub21lXCIsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcImNvZGlnb1wiLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuU3RyaW5nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIm5vbWVcIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlN0cmluZyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJpbXBvc3RvXCIsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5FbnVtLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmVudW1faW1wb3N0b19jYWRhc3Ryb192Y2lkZVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bUltcG9zdG9DYWRhc3Ryby5WQ0lERSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmVudW1faW1wb3N0b19jYWRhc3Ryb19pY21zXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtSW1wb3N0b0NhZGFzdHJvLlZJQ01TLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuZW51bV9pbXBvc3RvX2NhZGFzdHJvX3ZpaVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bUltcG9zdG9DYWRhc3Ryby5WSUksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGUuaW5zdGFudChcImVycHhfY3BsX2ltcC5pbXBvc3Rvcy5lbnVtX2ltcG9zdG9fY2FkYXN0cm9fdmlwaVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bUltcG9zdG9DYWRhc3Ryby5WSVBJLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuaW1wb3N0b3MuZW51bV9pbXBvc3RvX2NhZGFzdHJvX3Zpc3NcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1JbXBvc3RvQ2FkYXN0cm8uVklTUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1faW1wb3N0b19jYWRhc3Ryb192cGlzX2NvZmluc1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bUltcG9zdG9DYWRhc3Ryby5WUElTX0NPRklOUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1faW1wb3N0b19jYWRhc3Ryb192cmV0ZW5jYW9cIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1JbXBvc3RvQ2FkYXN0cm8uVlJFVEVOQ0FPLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuaW1wb3N0b3MuZW51bV9pbXBvc3RvX2NhZGFzdHJvX3ZjYnNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1JbXBvc3RvQ2FkYXN0cm8uVkNCUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1faW1wb3N0b19jYWRhc3Ryb192aWJzXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtSW1wb3N0b0NhZGFzdHJvLlZJQlMsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGUuaW5zdGFudChcImVycHhfY3BsX2ltcC5pbXBvc3Rvcy5lbnVtX2ltcG9zdG9fY2FkYXN0cm9fdmNic19pYnNfY3JlZGl0b19wcmVzdW1pZG9cIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1JbXBvc3RvQ2FkYXN0cm8uVkNCU19JQlNfQ1JFRElUT19QUkVTVU1JRE8sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGUuaW5zdGFudChcImVycHhfY3BsX2ltcC5pbXBvc3Rvcy5lbnVtX2ltcG9zdG9fY2FkYXN0cm9fdmlzXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtSW1wb3N0b0NhZGFzdHJvLlZJUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1faW1wb3N0b19jYWRhc3Ryb192dG9kb3NcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1JbXBvc3RvQ2FkYXN0cm8uVlRPRE9TLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwiZXJweF9jcGxfaW1wXCIsXG4gICAgICAgICAgICBcImNhZGFzdHJvc1wiXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
@@ -347,12 +347,12 @@ class ErpLookups {
347
347
  });
348
348
  return {
349
349
  gridData: list.contents.map((item) => {
350
- const processedItem = Object.assign({}, item);
350
+ const processedItem = JSON.parse(JSON.stringify(item));
351
351
  // Aplicar maxLength nos campos que possuem a configuração
352
352
  fieldsWithMaxLength.forEach((maxLength, fieldName) => {
353
- if (processedItem[fieldName] && typeof processedItem[fieldName] === 'string'
354
- && processedItem[fieldName].length > maxLength) {
355
- processedItem[fieldName] = processedItem[fieldName].substring(0, maxLength) + '...';
353
+ const fieldValue = this.getNestedValue(processedItem, fieldName);
354
+ if (fieldValue && typeof fieldValue === 'string' && fieldValue.length > maxLength) {
355
+ this.setNestedValue(processedItem, fieldName, fieldValue.substring(0, maxLength) + '...');
356
356
  }
357
357
  });
358
358
  return Object.assign(Object.assign({}, processedItem), { label: this.getItemLabel(processedItem, prefix, lookupDisplayFields) });
@@ -375,6 +375,21 @@ class ErpLookups {
375
375
  })
376
376
  .join(" - ");
377
377
  }
378
+ getNestedValue(obj, path) {
379
+ return path.split(".").reduce((current, key) => {
380
+ return current && current[key] !== undefined ? current[key] : undefined;
381
+ }, obj);
382
+ }
383
+ setNestedValue(obj, path, value) {
384
+ const keys = path.split(".");
385
+ const lastKey = keys.pop();
386
+ const target = keys.reduce((current, key) => {
387
+ return current && current[key] !== undefined ? current[key] : undefined;
388
+ }, obj);
389
+ if (target && lastKey) {
390
+ target[lastKey] = value;
391
+ }
392
+ }
378
393
  };
379
394
  ErpLookups.ctorParameters = () => [
380
395
  { type: ErpLookupsService },
@@ -394,4 +409,4 @@ ErpLookups = __decorate([
394
409
  */
395
410
  ], ErpLookups);
396
411
  export { ErpLookups };
397
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJwLWxvb2t1cHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2xvb2t1cHMvZXJwLWxvb2t1cHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0FBZ0N2QixrRkFBa0Y7QUFDbEYsTUFBTSxDQUFOLElBQVksbUJBeUJYO0FBekJELFdBQVksbUJBQW1CO0lBQzNCLCtEQUErRDtJQUMvRCxnQ0FBUyxDQUFBO0lBQ1Qsa0VBQWtFO0lBQ2xFLGdDQUFTLENBQUE7SUFDVCx1REFBdUQ7SUFDdkQsZ0NBQVMsQ0FBQTtJQUNULGdFQUFnRTtJQUNoRSxnQ0FBUyxDQUFBO0lBQ1QsbURBQW1EO0lBQ25ELGdDQUFTLENBQUE7SUFDVCw2REFBNkQ7SUFDN0QsZ0NBQVMsQ0FBQTtJQUNULHdFQUF3RTtJQUN4RSxrQ0FBVyxDQUFBO0lBQ1gscUVBQXFFO0lBQ3JFLGdDQUFTLENBQUE7SUFDVCwrRUFBK0U7SUFDL0Usa0NBQVcsQ0FBQTtJQUNYLG1EQUFtRDtJQUNuRCxnQ0FBUyxDQUFBO0lBQ1QsbUVBQW1FO0lBQ25FLHVDQUFnQixDQUFBO0lBQ2hCLDhGQUE4RjtJQUM5Riw4Q0FBdUIsQ0FBQTtBQUMzQixDQUFDLEVBekJXLG1CQUFtQixLQUFuQixtQkFBbUIsUUF5QjlCO0FBMkRELE1BQU0sT0FBTyxtQkFBaUMsU0FBUSxTQUFTO0lBQzNELFlBQ1csbUJBRU4sRUFDRCxHQUFHLElBQTZDO1FBRWhELEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBTFIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUV6QjtJQUlMLENBQUM7Q0FDSjtBQVFELElBQWEsVUFBVTtBQUp2Qjs7O0VBR0U7QUFDRixNQUFhLFVBQVU7SUFFbkI7Ozs7OztNQU1FO0lBQ0YsWUFDYyxhQUFnQyxFQUNoQyxTQUEyQixFQUMzQixNQUFjLEVBQ2QsWUFBeUIsRUFDNUIsWUFBaUQsRUFDakQsZ0JBQTZCLEVBQzFCLE1BQWMsRUFDZCxPQUFlO1FBUGYsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBcUM7UUFDakQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFhO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBaEJyQixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUEwQi9CLGdDQUEyQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDNUMsMkJBQXNCLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQVQxQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUtNLFdBQVcsQ0FBQyxRQUFnQixFQUFFO1FBQ2pDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUcsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNsSCxDQUFDO0lBRU0sY0FBYyxDQUFDLE1BQVcsRUFBRSxNQUFjO1FBQzdDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQzdCLElBQUksY0FBYyxHQUFHLEdBQUcsTUFBTSxXQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDekcsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbkQsSUFBSSxLQUFLLEtBQUssY0FBYyxFQUFFO2dCQUMxQixtRUFBbUU7Z0JBQ25FLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbEQsY0FBYyxHQUFHLEdBQUcsTUFBTSxXQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDcEcsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ2xEO1lBRUQsSUFBSSxxQkFBcUIsSUFBSSxLQUFLLEVBQUU7Z0JBQ2hDLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLGtDQUNqRCxLQUFLLEtBQ1IsS0FBSyxJQUNQLENBQUM7YUFDTjtZQUVELE9BQU8sSUFBSSxTQUFTLGlDQUNiLEtBQUssS0FDUixLQUFLLElBQ1AsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGtCQUFrQixDQUFDLGdCQUFpQyxDQUFDLEVBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUM7UUFDakksT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzlCLE9BQU8sR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksbUJBQW1CLENBQUMsUUFBUTtvQkFDL0MsT0FBTyxvQkFBb0IsTUFBTSxDQUFDLEtBQUssYUFBYSxLQUFLLEtBQUssQ0FBQztnQkFFbkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksbUJBQW1CLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksbUJBQW1CLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLO29CQUNyRyxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsUUFBUSxPQUFPLENBQUM7Z0JBQ3JELE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxHQUFHLENBQUM7WUFDM0QsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVNLGtCQUFrQixDQUFDLGFBQThCO1FBQ3BELElBQUksYUFBYSxFQUFFO1lBQ2YsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUM5QixJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFFakMsSUFBSSxDQUFDLENBQUMsTUFBTSxZQUFZLEtBQUssQ0FBQyxFQUFFO29CQUM1QixNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDckI7Z0JBRUQsT0FBTyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO29CQUNuQyxJQUFJLFFBQVEsSUFBSSxtQkFBbUIsQ0FBQyxRQUFRO3dCQUN4QyxPQUFPLG9CQUFvQixLQUFLLGFBQWEsS0FBSyxLQUFLLENBQUM7b0JBRTVELElBQUksQ0FBQyxRQUFRLElBQUksbUJBQW1CLENBQUMsS0FBSyxJQUFJLFFBQVEsSUFBSSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUs7d0JBQ3ZGLE9BQU8sR0FBRyxLQUFLLElBQUksUUFBUSxPQUFPLENBQUM7b0JBRXZDLE9BQU8sR0FBRyxLQUFLLElBQUksUUFBUSxLQUFLLEtBQUssR0FBRyxDQUFDO2dCQUM3QyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwQjtJQUNMLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxFQUN0QixxQkFBcUIsRUFDckIsVUFBVSxHQUliO1FBQ0csTUFBTSxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxHQUFHLHFCQUFxQixDQUFDO1FBRTVELE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxhQUFhO2FBQ3ZDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDekIsS0FBSztnQkFDRCxPQUFPLEtBQUssS0FBSyxVQUFVO29CQUN2QixDQUFDLENBQUUsS0FBOEIsQ0FBQzt3QkFDNUIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUM7d0JBQ3ZCLFVBQVU7cUJBQ2IsQ0FBQztvQkFDSixDQUFDLENBQUMsS0FBSyxDQUFDO1lBRWhCLElBQUksUUFBUSxLQUFLLG1CQUFtQixDQUFDLFFBQVEsRUFBRTtnQkFDM0MsT0FBTyxxQkFBcUIsSUFBSSxhQUFhLEtBQUssTUFBTSxDQUFDO2FBQzVEO1lBRUQsSUFBSSxDQUFDLFFBQVEsS0FBSyxtQkFBbUIsQ0FBQyxLQUFLLElBQUksUUFBUSxLQUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUMzRixPQUFPLElBQUksSUFBSSxJQUFJLFFBQVEsUUFBUSxDQUFDO2FBQ3ZDO1lBRUQsT0FBTyxJQUFJLElBQUksSUFBSSxRQUFRLEtBQUssS0FBSyxJQUFJLENBQUM7UUFDOUMsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDMUIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEtBQWEsRUFBRSxZQUF5QixFQUFFLGFBQStCLEVBQUUsYUFBK0I7UUFDOUgsSUFBSSxXQUFtQixDQUFDO1FBQ3hCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNqQyxXQUFXLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUMxQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE1BQU0sRUFBRTtvQkFDakMsT0FBTyxxQkFBcUIsS0FBSyxDQUFDLElBQUksYUFBYSxLQUFLLE1BQU0sQ0FBQztpQkFDbEU7cUJBQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxPQUFPLEVBQUU7b0JBQ3pDLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUMzRCxJQUFJLENBQUMsY0FBYzt3QkFBRSxPQUFPLElBQUksQ0FBQztvQkFDakMsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLFFBQVEsY0FBYyxJQUFJLENBQUM7aUJBQ25EO3FCQUFNO29CQUNILE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxRQUFRLEtBQUssSUFBSSxDQUFDO2lCQUMxQztZQUNMLENBQUMsQ0FBQztpQkFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO2lCQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDakI7YUFBTTtZQUNILFdBQVcsR0FBRyxZQUFZO2lCQUNyQixNQUFNLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FBQztpQkFDdkQsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQ2hCLE9BQU8scUJBQXFCLEtBQUssQ0FBQyxJQUFJLGFBQWEsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzNHLENBQUMsQ0FBQztpQkFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDckI7UUFFRCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNsRSxJQUFJLGtCQUFrQjtZQUNsQixXQUFXLEdBQUcsS0FBSyxrQkFBa0IsVUFBVSxXQUFXLElBQUksQ0FBQzs7WUFFL0QsV0FBVyxHQUFHLEdBQUcsR0FBRyxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBRTFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xFLElBQUksa0JBQWtCO1lBQ2xCLFdBQVcsR0FBRyxLQUFLLGtCQUFrQixVQUFVLFdBQVcsSUFBSSxDQUFDOztZQUUvRCxXQUFXLEdBQUcsR0FBRyxHQUFHLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFFMUMsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxJQUFZLEVBQUUsS0FBVSxFQUFFLFFBQWlCO1FBQzlELE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxRQUFRLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxRQUFRLEtBQUssSUFBSSxDQUFDO0lBQy9ILENBQUM7SUFFRCxvRkFBb0Y7SUFDN0UsWUFBWSxDQUFDLFVBQXlCLEVBQUU7UUFDM0MsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU07WUFDekIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2hCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDakMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQUN4QyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUUzQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRzFELE9BQU8sQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU07WUFDdEUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZO1lBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXhCLE9BQU87WUFDSCxJQUFJLEVBQUUsT0FBTyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTTtZQUN0QyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLFdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDL0gsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxXQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFDcEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztZQUNqRCxJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07WUFDdEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDbkQsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSTtZQUNoQyxrQkFBa0IsRUFBRSxPQUFPO1lBQzNCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQztZQUNuRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLFNBQVMsQ0FBQztZQUN2RCxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLFFBQVEsQ0FBQztZQUNyRCxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLFNBQVMsQ0FBQztZQUN2RCxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLFNBQVMsQ0FBQztZQUN2RCxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ3BGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUM7WUFDbEQsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUNoRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7WUFDdEQscUJBQXFCLEVBQUUsSUFBSSxDQUFDLDJCQUEyQjtZQUN2RCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsc0JBQXNCO1lBQzdDLGVBQWUsRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztZQUNoRixlQUFlLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7U0FDaEYsQ0FBQztJQUNOLENBQUM7SUFFTSxPQUFPLENBQUMsR0FBUSxFQUFFLElBQVMsRUFBRSxNQUFjO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFXLEVBQUUsSUFBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUk7WUFDMUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxjQUFjLENBQUM7WUFDakQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBVTtRQUN0QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtZQUNyQyxPQUFPLEtBQUssQ0FBQztRQUNqQixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbkIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLE1BQXdCLEVBQUUsS0FBVTtRQUN6RCxPQUFPLE1BQU0sQ0FBQyxLQUFLO1lBQ2YsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxRQUFRLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUk7WUFDaEUsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksUUFBUSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDeEQsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFhLEVBQUUsTUFBYyxFQUFFLE9BQXVCO1FBQ3pFLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDaEMsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRSxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFbkgsSUFBSSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFFLENBQUMsT0FBTyxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQzthQUM5RixHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwQyxJQUFJLE9BQU8sQ0FBQyxXQUFXO1lBQ25CLGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5RCxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFL0UsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQXdCLEVBQUUsRUFBRTtnQkFDM0UsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7b0JBQ3hCLE9BQU87Z0JBRVgsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUN6QixPQUFPLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO2lCQUM5RjtxQkFBTTtvQkFDSCxPQUFPLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDO2lCQUMxRDtZQUNMLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUUsT0FBTyxDQUFDLENBQUM7WUFDN0MsSUFBSSxZQUFZO2dCQUNaLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxJQUFJLFNBQVMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUM7U0FDMUY7UUFDRCxJQUFJLENBQUMsYUFBYTthQUNiLElBQUksQ0FBQztZQUNGLElBQUk7WUFDSixXQUFXO1lBQ1gsYUFBYTtTQUNoQixFQUNELElBQUksQ0FBQyxNQUFNLEVBQ1gsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUM3QixPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDbkMsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLGlDQUMxQixJQUFJLEtBQ1AsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxJQUM3RCxDQUFDLENBQ04sQ0FDSjthQUNBLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sZUFBZSxDQUFDLEtBQVUsRUFBRSxNQUFjLEVBQUUsT0FBdUI7UUFDdEUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUN6RCxNQUFNLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQzFCLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ2hFLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUUsSUFBSSxXQUFXLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDeEQsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLFNBQVMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQzdFLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ2YsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLEdBQUcsU0FBZ0MsQ0FBQztZQUV2RixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFL0IsSUFBSSxtQkFBbUIsRUFBRTtnQkFDckIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7b0JBQzFCLHFCQUFxQixFQUFFLFNBQVM7b0JBQ2hDLFVBQVU7aUJBQ2IsQ0FBQyxDQUFDO2FBQ047WUFFRCxJQUFJLE9BQU8sS0FBSyxJQUFJLFFBQVE7Z0JBQ3hCLE9BQU8sR0FBRyxJQUFJLE9BQU8sS0FBSyxFQUFFLENBQUM7aUJBQzVCLElBQUksSUFBSSxJQUFJLFNBQVMsQ0FBQyxJQUFJO2dCQUMzQixPQUFPLEdBQUcsSUFBSSxRQUFRLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQztpQkFDM0QsSUFBSSxJQUFJLElBQUksU0FBUyxDQUFDLElBQUk7Z0JBQzNCLE9BQU8sR0FBRyxJQUFJLFFBQVEsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO2lCQUN6RCxJQUFJLElBQUksSUFBSSxTQUFTLENBQUMsUUFBUTtnQkFDL0IsT0FBTyxHQUFHLElBQUksUUFBUSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztpQkFDL0MsSUFBSSxJQUFJLElBQUksU0FBUyxDQUFDLElBQUk7Z0JBQzNCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2lCQUNsRCxJQUFJLElBQUksSUFBSSxTQUFTLENBQUMsTUFBTTtnQkFDN0IsT0FBTyxxQkFBcUIsSUFBSSxhQUFhLEtBQUssTUFBTSxDQUFDO2lCQUN4RCxJQUFJLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTTtnQkFDOUIsT0FBTyxJQUFJLElBQUksUUFBUSxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUM7WUFFeEMsT0FBTyxHQUFHLElBQUksUUFBUSxLQUFLLEdBQUcsQ0FBQztRQUNuQyxDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkIsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQXdCLEVBQUUsRUFBRTtnQkFDM0UsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7b0JBQ3JCLE9BQU87Z0JBQ1gsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUN0QixPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO2lCQUMzRjtxQkFBTTtvQkFDSCxPQUFPLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDO2lCQUN2RDtZQUNMLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUUsT0FBTyxDQUFDLENBQUM7WUFDN0MsSUFBSSxZQUFZO2dCQUNaLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxJQUFJLFNBQVMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUM7U0FDMUY7UUFFRCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFMUUsSUFBSSxrQkFBa0I7WUFDbEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUksU0FBUyxrQkFBa0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxrQkFBa0IsR0FBRyxDQUFDO1FBRTFHLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUUxRSxJQUFJLGtCQUFrQjtZQUNsQixXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBSSxTQUFTLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLGtCQUFrQixHQUFHLENBQUM7UUFFMUcsSUFBSSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQzthQUN6RixNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQzthQUN0QyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUV4QyxJQUFJLE9BQU8sQ0FBQyxXQUFXO1lBQ25CLGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU5RCxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLGFBQWE7YUFDYixJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDN0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDbkMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ2QsaURBQWlEO1lBQ2pELE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7WUFFdEQsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztpQkFDdkcsT0FBTyxDQUFDLENBQUMsS0FBb0IsRUFBRSxFQUFFO2dCQUM5QixJQUFJLEtBQUssQ0FBQyxTQUFTO29CQUNuQixDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDcEUsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUNwRDtZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTztnQkFDUCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtvQkFDdEMsTUFBTSxhQUFhLHFCQUFRLElBQUksQ0FBRSxDQUFDO29CQUVsQywwREFBMEQ7b0JBQzFELG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsRUFBRTt3QkFDakQsSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssUUFBUTsrQkFDckUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxTQUFTLEVBQ2hEOzRCQUNFLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7eUJBQ3ZGO29CQUNMLENBQUMsQ0FBQyxDQUFDO29CQUVILHVDQUNHLGFBQWEsS0FDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxJQUNsRTtnQkFDTixDQUFDLENBQUM7Z0JBQ0YsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhO2FBQy9CLENBQUM7UUFDTixDQUFDLENBQUMsQ0FDRDthQUNBLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVMsRUFBRSxNQUFjLEVBQUUsbUJBQTZCO1FBQ2pFLE9BQU8sbUJBQW1CO2FBQ3JCLEdBQUcsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ2hCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3JFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSTtnQkFDcEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ2IsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxjQUFjLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztDQUNKLENBQUE7O1lBM1lnQyxpQkFBaUI7WUFDckIsZ0JBQWdCOzs7Ozs7OztBQVhoQyxVQUFVO0lBTnRCLFVBQVUsRUFBRTtJQUViOzs7TUFHRTtHQUNXLFVBQVUsQ0FxWnRCO1NBclpZLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gXCJtb21lbnRcIjtcbmltcG9ydCB7IEZvcm1GaWVsZCwgRmllbGRUeXBlIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcbmltcG9ydCB7IEVycExvb2t1cHNTZXJ2aWNlIH0gZnJvbSBcIi4vZXJwLWxvb2t1cHMuc2VydmljZVwiO1xu4oCLXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IHRha2VVbnRpbCwgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xu4oCLXG5jb25zdCBtb21lbnQgPSBtb21lbnRfO1xuXG4vKiogRW50aWRhZGVzIGRlIHF1ZSBkZXBlbmRlICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eURlcGVuZGVuY3kge1xuICAgIC8qKiBOb21lIGRhIGVudGlkYWRlIHF1ZSBkZXBlbmRlIChwYWkpICovXG4gICAgbmFtZTogc3RyaW5nO1xuICAgIC8qKiBDYW1wbyBkYSBlbnRpZGFkZSBwYWkgcXVlIHNlcsOhIGNvbXBhcmFkbyAqL1xuICAgIGZpZWxkPzogc3RyaW5nO1xuICAgIC8qKiBWYWxvciBkYSBlbnRpZGFkZSBwYWkgKi9cbiAgICB2YWx1ZTogRnVuY3Rpb247XG59XG7igItcbi8qKiBGaWx0cm8gcGFkcsOjbyBhcGxpY2FkbyBlbSB0b2RhcyByZXF1aXNpw6fDtWVzIGRhIGVudGlkYWRlLiBQb3IgcGFkcsOjbyBmaWx0cmEgcmVnaXN0cm9zIG7Do28gZXhjbHVpZG9zICovXG5leHBvcnQgaW50ZXJmYWNlIERlZmF1bHRGaWx0ZXIge1xuICAgIC8qKiBDYW1wbyBxdWUgc2Vyw6EgZmlsdHJhZG8gKi9cbiAgICBmaWVsZDogc3RyaW5nIHwgRGVmYXVsdEZpbHRlcjtcbiAgICAvKiogQ29tcGFyYcOnw6NvIHF1ZSBzZXLDoSBhcGxpY2FkYSBuYSBjb25zdWx0YSAqL1xuICAgIG9wZXJhdG9yOiBFbnVtTG9naWNhbE9wZXJhdG9yO1xuICAgIC8qKiBWYWxvcmVzIHF1ZSBzZXLDo28gYnVzY2Fkb3MgKi9cbiAgICB2YWx1ZXM6IHN0cmluZ1tdO1xufVxuXG4vKiogRmlsdHJvIGRpbmFtaWNvIHBhcmEgY29uc3VsdGFzIG1haXMgY29tcGxleGFzICovXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNGaWx0ZXIge1xuICAgIC8qKiBDYW1wbyBxdWUgc2Vyw6EgZmlsdHJhZG8gKi9cbiAgICBmaWVsZDogRnVuY3Rpb25cbiAgICAvKiogQ29tcGFyYcOnw6NvIHF1ZSBzZXLDoSBhcGxpY2FkYSBuYSBjb25zdWx0YSAqL1xuICAgIG9wZXJhdG9yOiBFbnVtTG9naWNhbE9wZXJhdG9yO1xuICAgIC8qKiBWYWxvcmVzIHF1ZSBzZXLDo28gYnVzY2Fkb3MgKi9cbiAgICB2YWx1ZTogRnVuY3Rpb247XG59XG5cbi8qKiBGaWx0ZXIgU3lzdGVtIFF1ZXJ5IE9wdGlvbiAtIE9wZXJhdG9ycyBzdXBwb3J0ZWQgaW4gdGhlIGV4cHJlc3Npb24gbGFuZ3VhZ2UgKi9cbmV4cG9ydCBlbnVtIEVudW1Mb2dpY2FsT3BlcmF0b3Ige1xuICAgIC8qKiBFcXVhbCAoRXg6IC9TdXBwbGllcnM/JGZpbHRlcj1BZGRyZXNzL0NpdHkgZXEgJ1JlZG1vbmQnKSAqL1xuICAgIEVxID0gXCJlcVwiLFxuICAgIC8qKiBOb3QgZXF1YWwgKEV4OiAvU3VwcGxpZXJzPyRmaWx0ZXI9QWRkcmVzcy9DaXR5IG5lICdMb25kb24nKSAqL1xuICAgIE5lID0gXCJuZVwiLFxuICAgIC8qKiBHcmVhdGVyIHRoYW4gKEV4OiAvUHJvZHVjdHM/JGZpbHRlcj1QcmljZSBndCAyMCkgKi9cbiAgICBHdCA9IFwiZ3RcIixcbiAgICAvKiogR3JlYXRlciB0aGFuIG9yIGVxdWFsIChFeDogL1Byb2R1Y3RzPyRmaWx0ZXI9UHJpY2UgZ2UgMTApICovXG4gICAgR2UgPSBcImdlXCIsXG4gICAgLyoqIExlc3MgdGhhbiAoRXg6IC9Qcm9kdWN0cz8kZmlsdGVyPVByaWNlIGx0IDIwKSovXG4gICAgTHQgPSBcImx0XCIsXG4gICAgLyoqIExlc3MgdGhhbiBvciBlcXVhbCAoRXg6IC9Qcm9kdWN0cz8kZmlsdGVyPVByaWNlIGxlIDEwMCkqL1xuICAgIExlID0gXCJsZVwiLFxuICAgIC8qKiBMb2dpY2FsIGFuZFx0IChFeDogL1Byb2R1Y3RzPyRmaWx0ZXI9UHJpY2UgbGUgMjAwIGFuZCBQcmljZSBndCAzLjUpKi9cbiAgICBBbmQgPSBcImFuZFwiLFxuICAgIC8qKiBMb2dpY2FsIG9yIChFeDogL1Byb2R1Y3RzPyRmaWx0ZXI9UHJpY2UgbGUgMy41IG9yIFByaWNlIGd0IDIwMCkqL1xuICAgIE9yID0gXCJvclwiLFxuICAgIC8qKiBMb2dpY2FsIG5lZ2F0aW9uIChFeDogL1Byb2R1Y3RzPyRmaWx0ZXI9bm90IGVuZHN3aXRoKERlc2NyaXB0aW9uLCdtaWxrJykpKi9cbiAgICBOb3QgPSBcIm5vdFwiLFxuICAgIC8qKiBMb2dpY2FsIGlzIChFeDogL1Byb2R1Y3RzPyRmaWx0ZXI9aWQgaXMgbnVsbCAqL1xuICAgIElzID0gXCJpc1wiLFxuICAgIC8qKiBOZWdhdGlvbiBvZiBsb2dpY2FsIGlzIChFeDogL1Byb2R1Y3RzPyRmaWx0ZXI9aWQgaXMgbm90IG51bGwgKi9cbiAgICBJc05vdCA9IFwiaXMgbm90XCIsXG4gICAgLyoqIENvbnRhaW5zIHN0cmluZyB2YWx1ZSAoRXg6IC9Qcm9kdWN0cz8kZmlsdGVyPWNvbnRhaW5pbmcobG93ZXIobmFtZSksIGxvd2VyKCdteSBuYW1lJykpKSAqL1xuICAgIENvbnRhaW5zID0gXCJjb250YWluaW5nXCJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb3J0T3B0aW9ucyB7XG4gICAgZmllbGQ6IHN0cmluZztcbiAgICBvcmRlcjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1GaWVsZEVycHggZXh0ZW5kcyBGb3JtRmllbGQge1xuICAgIG1heExlbmd0aD86IG51bWJlcjtcbn1cblxuLyoqIFBhcsOibWV0cm9zIHBhcmEgY3VzdG9taXphw6fDtWVzIGRvIGxvb2t1cCAqL1xuZXhwb3J0IGludGVyZmFjZSBMb29rdXBPcHRpb25zIHtcbiAgICAvKiogTm9tZSBkYSBlbnRpZGFkZSAqL1xuICAgIGVudGl0eT86IHN0cmluZztcbiAgICAvKiogTm9tZSBkbyBmb3JtR3JvdXAgKi9cbiAgICBmb3JtR3JvdXA/OiBzdHJpbmc7XG4gICAgLyoqIEZpbHRybyBwYWRyw6NvICovXG4gICAgZGVmYXVsdEZpbHRlcj86IERlZmF1bHRGaWx0ZXJbXTtcbiAgICAvKiogRmlsdHJvIGRpbsOibWljbyAqL1xuICAgIGR5bmFtaWNGaWx0ZXI/OiBEeW5hbWljRmlsdGVyW107XG4gICAgLyoqIENhbXBvcyBkbyBsb29rdXAgKGF1dG9jb21wbGV0ZSkgKi9cbiAgICBsb29rdXBGaWVsZHM/OiAoRm9ybUZpZWxkIHwgRm9ybUZpZWxkRXJweClbXTtcbiAgICAvKiogQ2FtcG9zIHF1ZSBzZXLDo28gc29saWNpdGFkb3MgbmEgY29uc3VsdGEgKi9cbiAgICBxdWVyeUZpZWxkcz86IHN0cmluZ1tdO1xuICAgIC8qKiBDYW1wb3MgZXhpYmlkb3Mgbm8gZmlsdHJvIGRhIG1vZGFsIGRlIGxpc3RhZ2VtICovXG4gICAgc2VhcmNoRmllbGRzPzogKEZvcm1GaWVsZCB8IEVycExvb2t1cHNGb3JtRmllbGQpW107XG4gICAgLyoqIENhbXBvcyBleGliaWRvcyBuYSBncmlkIGRhIG1vZGFsIGRlIGxpc3RhZ2VtICovXG4gICAgc2VhcmNoR3JpZEZpZWxkcz86IChGb3JtRmllbGQgfCBGb3JtRmllbGRFcnB4KVtdO1xuICAgIC8qKiBEZWZpbmUgc2UgbyBsb29rdXAgcGVybWl0aXLDoSBtdWx0aSBzZWxlw6fDo28gKi9cbiAgICBtdWx0aXBsZT86IGJvb2xlYW47XG4gICAgLyoqIEVudGlkYWRlcyBkZSBxdWUgZGVwZW5kZSAqL1xuICAgIGVudGl0eURlcGVuZGVuY3k/OiBFbnRpdHlEZXBlbmRlbmN5W107XG4gICAgLyoqIFByZWZpeG8gdXRpbGl6YWRvIHBhcmEgbW9udGFyIG9zIGxhYmVscyAocG9yIHBhZHLDo28gdXRpbGl6YSBkb23DrW5pbyBlIHNlcnZpw6dvKSAqL1xuICAgIHByZWZpeD86IHN0cmluZztcbiAgICAvKiogU3VmaXhvIHV0aWxpemFkbyBwYXJhIG1vbnRhciBvcyBsYWJlbHMgKHBvciBwYWRyw6NvIMOpIHZhemlvKSAqL1xuICAgIHN1ZmZpeD86IHN0cmluZztcbiAgICAvKiogRG9tw61uaW8gKi9cbiAgICBkb21haW4/OiBzdHJpbmc7XG4gICAgLyoqIFNlcnZpw6dvICovXG4gICAgc2VydmljZT86IHN0cmluZztcbiAgICAvKiogRGF0YSBrZXkgKi9cbiAgICBkYXRhS2V5Pzogc3RyaW5nO1xuICAgIC8qKiBDYW1wb3MgcGFyYSBvcmRlbmHDp8OjbyBkbyBsb29rdXAgKGF1dG9jb21wbGV0ZSkqL1xuICAgIGxvb2t1cFNvcnQ/OiBTb3J0T3B0aW9uc1tdO1xuICAgIC8qKiBDYW1wb3MgcGFyYSBhIG9yZGVuYcOnw6NvIGFvIGFicmlyIGEgbW9kYWwgZGUgbGlzdGFnZW0gKi9cbiAgICBzZWFyY2hTb3J0PzogU29ydE9wdGlvbnNbXTtcbn1cblxuZXhwb3J0IHR5cGUgQ3VzdG9tRmlsdGVyRnVuY3Rpb248VCA9IHVua25vd24+ID0gKG9wdGlvbnM6IHtcbiAgdmFsdWU6IFQ7XG4gIGZpbHRlckRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufSkgPT4gc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBDdXN0b21GaWx0ZXI8VCA9IHVua25vd24+ID0ge1xuICAgIG9wZXJhdG9yOiBFbnVtTG9naWNhbE9wZXJhdG9yO1xuICAgIHZhbHVlOiBzdHJpbmcgfCBDdXN0b21GaWx0ZXJGdW5jdGlvbjxUPjtcbn07XG5cbmV4cG9ydCBjbGFzcyBFcnBMb29rdXBzRm9ybUZpZWxkPFQgPSB1bmtub3duPiBleHRlbmRzIEZvcm1GaWVsZCB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlcnBMb29rdXBzRm9ybUZpZWxkPzoge1xuICAgICAgICAgICAgY3VzdG9tRmlsdGVycz86IEN1c3RvbUZpbHRlcjxUPltdO1xuICAgICAgICB9LFxuICAgICAgICAuLi5hcmdzOiBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEZvcm1GaWVsZD5cbiAgICApIHtcbiAgICAgICAgc3VwZXIoLi4uYXJncyk7XG4gICAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG7igItcbi8qKlxuICogRXJwIExvb2t1cHNcbiAqIEBjbGFzcyBFcnBMb29rdXBzXG4qL1xuZXhwb3J0IGNsYXNzIEVycExvb2t1cHMge1xuICAgIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgLyoqXG4gICAgICogQ3JpYcOnw6NvIGRlIHVtIGxvb2t1cC5cbiAgICAgKiBAcGFyYW0gZW50aXR5IE5vbWUgZGEgZW50aWRhZGUuXG4gICAgICogQHBhcmFtIGxvb2t1cEZpZWxkcyBDYW1wb3MgZXhpYmlkb3Mgbm8gYXV0b2NvbXBsZXRlLlxuICAgICAqIEBwYXJhbSBzZWFyY2hGaWVsZHMgQ2FtcG9zIGV4aWJpZG9zIG5vIGZpbHRybyBkZW50cm8gZGEgbW9kYWwuXG4gICAgICogQHBhcmFtIHNlYXJjaEdyaWRGaWVsZHMgQ2FtcG9zIGV4aWJpZG9zIG5hIHRhYmVsYSBkZW50cm8gZGEgbW9kYWwuXG4gICAgKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGxvb2t1cFNlcnZpY2U6IEVycExvb2t1cHNTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgZW50aXR5OiBzdHJpbmcsXG4gICAgICAgIHByb3RlY3RlZCBsb29rdXBGaWVsZHM6IEZvcm1GaWVsZFtdLFxuICAgICAgICBwdWJsaWMgc2VhcmNoRmllbGRzOiAoRm9ybUZpZWxkIHwgRXJwTG9va3Vwc0Zvcm1GaWVsZClbXSxcbiAgICAgICAgcHVibGljIHNlYXJjaEdyaWRGaWVsZHM6IEZvcm1GaWVsZFtdLFxuICAgICAgICBwcm90ZWN0ZWQgZG9tYWluOiBzdHJpbmcsXG4gICAgICAgIHByb3RlY3RlZCBzZXJ2aWNlOiBzdHJpbmcsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZW50aXR5ID0gZW50aXR5O1xuICAgICAgICB0aGlzLmRvbWFpbiA9IGRvbWFpbjtcbiAgICAgICAgdGhpcy5zZXJ2aWNlID0gc2VydmljZTtcbiAgICAgICAgdGhpcy5sb29rdXBGaWVsZHMgPSBsb29rdXBGaWVsZHMgfHwgW107XG4gICAgICAgIHRoaXMuc2VhcmNoRmllbGRzID0gc2VhcmNoRmllbGRzIHx8IFtdO1xuICAgICAgICB0aGlzLnNlYXJjaEdyaWRGaWVsZHMgPSBzZWFyY2hHcmlkRmllbGRzIHx8IFtdO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb29rdXBTdWdnZXN0aW9uc09ic2VydmFibGUgPSBuZXcgU3ViamVjdCgpO1xuICAgIHB1YmxpYyBsb29rdXBTZWFyY2hPYnNlcnZhYmxlID0gbmV3IFN1YmplY3QoKTtcbuKAi1xuICAgIHB1YmxpYyB0b1NuYWtlQ2FzZSh2YWx1ZTogc3RyaW5nID0gXCJcIik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC8oPzpefFxcLj8pKFtBLVpdKS9nLCBmdW5jdGlvbiAoeCwgeSkge3JldHVybiBcIl9cIiArIHkudG9Mb3dlckNhc2UoKTsgfSkucmVwbGFjZSgvXl8vLCBcIlwiKTtcbiAgICB9XG7igItcbiAgICBwdWJsaWMgbW91bnRGb3JtRmllbGQoZmllbGRzOiBhbnksIHByZWZpeDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBmaWVsZHMubWFwKChmaWVsZDogYW55KSA9PiB7XG4gICAgICAgICAgICBsZXQgdHJhbnNsYXRpb25LZXkgPSBgJHtwcmVmaXh9Lmxvb2t1cF8ke3RoaXMudG9TbmFrZUNhc2UodGhpcy5lbnRpdHkpfV8ke3RoaXMudG9TbmFrZUNhc2UoZmllbGQubmFtZSl9YDtcbiAgICAgICAgICAgIGxldCBsYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodHJhbnNsYXRpb25LZXkpO1xuICAgICAgICAgICAgaWYgKGxhYmVsID09PSB0cmFuc2xhdGlvbktleSkge1xuICAgICAgICAgICAgICAgIC8vIE1hbnRlciBjb21wYXRpYmlsaWRhZGUgY29tIG9zIGxvb2t1cHMgYXR1YWlzIGF0w6kgdG9kb3MgYWp1c3RhcmVtXG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGROYW1lID0gZmllbGQubmFtZS5zcGxpdCgnLicpLmpvaW4oJ18nKTtcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbktleSA9IGAke3ByZWZpeH0ubG9va3VwXyR7dGhpcy50b1NuYWtlQ2FzZSh0aGlzLmVudGl0eSl9XyR7dGhpcy50b1NuYWtlQ2FzZShmaWVsZE5hbWUpfWA7XG4gICAgICAgICAgICAgICAgbGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRyYW5zbGF0aW9uS2V5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKFwiZXJwTG9va3Vwc0Zvcm1GaWVsZFwiIGluIGZpZWxkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFcnBMb29rdXBzRm9ybUZpZWxkKGZpZWxkLmVycExvb2t1cHNGb3JtRmllbGQsIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbmV3IEZvcm1GaWVsZCh7XG4gICAgICAgICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgICAgICAgbGFiZWxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG7igItcbiAgICBwdWJsaWMgbW91bnREZWZhdWx0RmlsdGVyKGRlZmF1bHRGaWx0ZXI6IERlZmF1bHRGaWx0ZXJbXSA9IFt7ZmllbGQ6IFwiZXhjbHVpZG9cIiwgb3BlcmF0b3I6IEVudW1Mb2dpY2FsT3BlcmF0b3IuRXEsIHZhbHVlczogW1wiZmFsc2VcIl19XSkge1xuICAgICAgICByZXR1cm4gZGVmYXVsdEZpbHRlci5tYXAoZmlsdGVyID0+IHtcbiAgICAgICAgICAgIHJldHVybiBcIihcIiArIGZpbHRlci52YWx1ZXMubWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyLm9wZXJhdG9yID09IEVudW1Mb2dpY2FsT3BlcmF0b3IuQ29udGFpbnMpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgY29udGFpbmluZyhsb3dlcigke2ZpbHRlci5maWVsZH0pLCBsb3dlcignJHt2YWx1ZX0nKSlgO1xuXG4gICAgICAgICAgICAgICAgaWYgKChmaWx0ZXIub3BlcmF0b3IgPT0gRW51bUxvZ2ljYWxPcGVyYXRvci5Jc05vdCB8fCBmaWx0ZXIub3BlcmF0b3IgPT0gRW51bUxvZ2ljYWxPcGVyYXRvci5JcykgJiYgIXZhbHVlKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmlsdGVyLmZpZWxkfSAke2ZpbHRlci5vcGVyYXRvcn0gbnVsbGA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2ZpbHRlci5maWVsZH0gJHtmaWx0ZXIub3BlcmF0b3J9ICcke3ZhbHVlfSdgO1xuICAgICAgICAgICAgfSkuam9pbihcIiBvciBcIikgKyBcIilcIjtcbiAgICAgICAgfSkuam9pbihcIiBhbmQgXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBtb3VudER5bmFtaWNGaWx0ZXIoZHluYW1pY0ZpbHRlcjogRHluYW1pY0ZpbHRlcltdKSB7XG4gICAgICAgIGlmIChkeW5hbWljRmlsdGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gZHluYW1pY0ZpbHRlci5tYXAoZmlsdGVyID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWVzID0gZmlsdGVyLnZhbHVlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBmaWx0ZXIuZmllbGQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvcGVyYXRvciA9IGZpbHRlci5vcGVyYXRvcjtcblxuICAgICAgICAgICAgICAgIGlmICghKHZhbHVlcyBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZXMgPSBbdmFsdWVzXTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gXCIoXCIgKyB2YWx1ZXMubWFwKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcGVyYXRvciA9PSBFbnVtTG9naWNhbE9wZXJhdG9yLkNvbnRhaW5zKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBjb250YWluaW5nKGxvd2VyKCR7ZmllbGR9KSwgbG93ZXIoJyR7dmFsdWV9JykpYDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoKG9wZXJhdG9yID09IEVudW1Mb2dpY2FsT3BlcmF0b3IuSXNOb3QgfHwgb3BlcmF0b3IgPT0gRW51bUxvZ2ljYWxPcGVyYXRvci5JcykgJiYgIXZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2ZpZWxkfSAke29wZXJhdG9yfSBudWxsYDtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmllbGR9ICR7b3BlcmF0b3J9ICcke3ZhbHVlfSdgO1xuICAgICAgICAgICAgICAgIH0pLmpvaW4oXCIgb3IgXCIpICsgXCIpXCI7XG4gICAgICAgICAgICB9KS5qb2luKFwiIGFuZCBcIik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdW50Q3VzdG9tRmlsdGVyKHtcbiAgICAgICAgZXJwTG9va3Vwc1NlYXJjaEZpZWxkLFxuICAgICAgICBmaWx0ZXJEYXRhLFxuICAgIH06IHtcbiAgICAgICAgZXJwTG9va3Vwc1NlYXJjaEZpZWxkOiBFcnBMb29rdXBzRm9ybUZpZWxkO1xuICAgICAgICBmaWx0ZXJEYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICB9KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgeyBlcnBMb29rdXBzRm9ybUZpZWxkLCBuYW1lIH0gPSBlcnBMb29rdXBzU2VhcmNoRmllbGQ7XG5cbiAgICAgICAgcmV0dXJuIGAoJHtlcnBMb29rdXBzRm9ybUZpZWxkLmN1c3RvbUZpbHRlcnNcbiAgICAgICAgICAgIC5tYXAoKHsgb3BlcmF0b3IsIHZhbHVlIH0pID0+IHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9XG4gICAgICAgICAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICh2YWx1ZSBhcyBDdXN0b21GaWx0ZXJGdW5jdGlvbikoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZpbHRlckRhdGFbbmFtZV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJEYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB2YWx1ZTtcblxuICAgICAgICAgICAgICAgIGlmIChvcGVyYXRvciA9PT0gRW51bUxvZ2ljYWxPcGVyYXRvci5Db250YWlucykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYChjb250YWluaW5nKGxvd2VyKCR7bmFtZX0pLCBsb3dlcignJHt2YWx1ZX0nKSkpYDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoKG9wZXJhdG9yID09PSBFbnVtTG9naWNhbE9wZXJhdG9yLklzTm90IHx8IG9wZXJhdG9yID09PSBFbnVtTG9naWNhbE9wZXJhdG9yLklzKSAmJiAhdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAoJHtuYW1lfSAke29wZXJhdG9yfSBudWxsKWA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAoJHtuYW1lfSAke29wZXJhdG9yfSAnJHt2YWx1ZX0nKWA7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmpvaW4oXCIgYW5kIFwiKX0pYDtcbiAgICB9XG7igItcbiAgICBwdWJsaWMgbW91bnRGaWx0ZXJRdWVyeSh2YWx1ZTogc3RyaW5nLCBsb29rdXBGaWVsZHM6IEZvcm1GaWVsZFtdLCBkZWZhdWx0RmlsdGVyPzogRGVmYXVsdEZpbHRlcltdLCBkeW5hbWljRmlsdGVyPzogRHluYW1pY0ZpbHRlcltdKSB7XG4gICAgICAgIGxldCBmaWx0ZXJRdWVyeTogc3RyaW5nO1xuICAgICAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcihOdW1iZXIodmFsdWUpKSkge1xuICAgICAgICAgICAgZmlsdGVyUXVlcnkgPSBsb29rdXBGaWVsZHMubWFwKChmaWVsZDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IEZpZWxkVHlwZS5TdHJpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAoY29udGFpbmluZyhsb3dlcigke2ZpZWxkLm5hbWV9KSwgbG93ZXIoJyR7dmFsdWV9JykpKWA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZC50eXBlID09PSBGaWVsZFR5cGUuSW50ZWdlcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzYW5pdGl6ZWRWYWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvXFxEL2csIFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXNhbml0aXplZFZhbHVlKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAoJHtmaWVsZC5uYW1lfSBlcSAnJHtzYW5pdGl6ZWRWYWx1ZX0nKWA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAoJHtmaWVsZC5uYW1lfSBlcSAnJHt2YWx1ZX0nKWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5maWx0ZXIoZmlsdGVyID0+ICEhZmlsdGVyKVxuICAgICAgICAgICAgLmpvaW4oXCIgb3IgXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlsdGVyUXVlcnkgPSBsb29rdXBGaWVsZHNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChmaWVsZDogYW55KSA9PiBmaWVsZC50eXBlID09PSBGaWVsZFR5cGUuU3RyaW5nKVxuICAgICAgICAgICAgICAgIC5tYXAoKGZpZWxkOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAoY29udGFpbmluZyhsb3dlcigke2ZpZWxkLm5hbWV9KSwgbG93ZXIoJyR7dmFsdWUucmVwbGFjZSgvXFxcXC9nLCBcIlwiKS5yZXBsYWNlKC8nL2csIFwiXFxcXCdcIil9JykpKWA7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuam9pbihcIiBvciBcIik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWZhdWx0RmlsdGVyUXVlcnkgPSB0aGlzLm1vdW50RGVmYXVsdEZpbHRlcihkZWZhdWx0RmlsdGVyKTtcbiAgICAgICAgaWYgKGRlZmF1bHRGaWx0ZXJRdWVyeSlcbiAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID0gYCgoJHtkZWZhdWx0RmlsdGVyUXVlcnl9KSBhbmQgKCR7ZmlsdGVyUXVlcnl9KSlgO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaWx0ZXJRdWVyeSA9IFwiKFwiICsgZmlsdGVyUXVlcnkgKyBcIilcIjtcbuKAi1xuICAgICAgICBjb25zdCBkeW5hbWljRmlsdGVyUXVlcnkgPSB0aGlzLm1vdW50RHluYW1pY0ZpbHRlcihkeW5hbWljRmlsdGVyKTtcbiAgICAgICAgaWYgKGR5bmFtaWNGaWx0ZXJRdWVyeSlcbiAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID0gYCgoJHtkeW5hbWljRmlsdGVyUXVlcnl9KSBhbmQgKCR7ZmlsdGVyUXVlcnl9KSlgO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaWx0ZXJRdWVyeSA9IFwiKFwiICsgZmlsdGVyUXVlcnkgKyBcIilcIjtcblxuICAgICAgICByZXR1cm4gZmlsdGVyUXVlcnk7XG4gICAgfVxu4oCLXG4gICAgcHVibGljIG1vdW50RW51bUZpbHRlcihuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnksIG11bHRpcGxlOiBib29sZWFuKSB7XG4gICAgICAgIHJldHVybiBtdWx0aXBsZSA/IGAoJHt2YWx1ZS5tYXAoKHNlbGVjdGVkOiBhbnkpID0+IGAke25hbWV9IGVxICcke3NlbGVjdGVkfSdgKS5qb2luKFwiIG9yIFwiKX0pYCA6IGAoJHtuYW1lfSBlcSAnJHt2YWx1ZX0nKWA7XG4gICAgfVxu4oCLXG4gICAgLyoqIE3DqXRvZG8gcmVzcG9uc8OhdmVsIHBvciBtb250YXIgYXMgb3DDp8O1ZXMgcGFkcsO1ZXMgcGFyYSBvIGxvb2t1cCBkbyBEeW5hbWljIEZvcm0gKi9cbiAgICBwdWJsaWMgbW91bnRPcHRpb25zKG9wdGlvbnM6IExvb2t1cE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBjb25zdCBwcmVmaXggPSBvcHRpb25zLnByZWZpeFxuICAgICAgICAgICAgPyBvcHRpb25zLnByZWZpeFxuICAgICAgICAgICAgOiAob3B0aW9ucy5kb21haW4gJiYgb3B0aW9ucy5zZXJ2aWNlKVxuICAgICAgICAgICAgICAgID8gYCR7b3B0aW9ucy5kb21haW59LiR7b3B0aW9ucy5zZXJ2aWNlfWBcbiAgICAgICAgICAgICAgICA6IGAke3RoaXMuZG9tYWlufS4ke3RoaXMuc2VydmljZX1gO1xuXG4gICAgICAgIGNvbnN0IHN1ZmZpeCA9IG9wdGlvbnMuc3VmZml4ID8gYF8ke29wdGlvbnMuc3VmZml4fWAgOiBcIlwiO1xuXG5cbiAgICAgICAgb3B0aW9ucy5sb29rdXBGaWVsZHMgPSBvcHRpb25zLmxvb2t1cEZpZWxkcyAmJiBvcHRpb25zLmxvb2t1cEZpZWxkcy5sZW5ndGhcbiAgICAgICAgICAgID8gb3B0aW9ucy5sb29rdXBGaWVsZHNcbiAgICAgICAgICAgIDogdGhpcy5sb29rdXBGaWVsZHM7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IG9wdGlvbnMuZm9ybUdyb3VwIHx8IHRoaXMuZW50aXR5LFxuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7cHJlZml4fS5sb29rdXBfJHt0aGlzLnRvU25ha2VDYXNlKG9wdGlvbnMuZW50aXR5KSB8fCB0aGlzLnRvU25ha2VDYXNlKHRoaXMuZW50aXR5KX0ke3N1ZmZpeH1gKSxcbiAgICAgICAgICAgIHNlYXJjaFRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3ByZWZpeH0ubG9va3VwXyR7dGhpcy50b1NuYWtlQ2FzZShvcHRpb25zLmVudGl0eSkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLnRvU25ha2VDYXNlKHRoaXMuZW50aXR5KX1fc2VhcmNoX3RpdGxlYCksXG4gICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuTG9va3VwLFxuICAgICAgICAgICAgbXVsdGlwbGU6IG9wdGlvbnMubXVsdGlwbGUgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlLFxuICAgICAgICAgICAgZGF0YUtleTogb3B0aW9ucy5kYXRhS2V5IHx8IFwiaWRcIixcbiAgICAgICAgICAgIGxvb2t1cERpc3BsYXlGaWVsZDogXCJsYWJlbFwiLFxuICAgICAgICAgICAgc2VhcmNoRW1wdHlUaXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHtwcmVmaXh9Lm5vdGhpbmdfZm91bmRgKSxcbiAgICAgICAgICAgIGZpbHRlckxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3ByZWZpeH0uZmlsdGVyYCksXG4gICAgICAgICAgICBjbGVhckxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3ByZWZpeH0uY2xlYXJgKSxcbiAgICAgICAgICAgIGNhbmNlbExhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3ByZWZpeH0uY2FuY2VsYCksXG4gICAgICAgICAgICBzZWxlY3RMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHtwcmVmaXh9LnNlbGVjdGApLFxuICAgICAgICAgICAgc2VhcmNoRmllbGRzOiBvcHRpb25zLnNlYXJjaEZpZWxkcyA/IHRoaXMubW91bnRGb3JtRmllbGQob3B0aW9ucy5zZWFyY2hGaWVsZHMsIHByZWZpeCkgOlxuICAgICAgICAgICAgICAgIHRoaXMubW91bnRGb3JtRmllbGQodGhpcy5zZWFyY2hGaWVsZHMsIHByZWZpeCksXG4gICAgICAgICAgICBzZWFyY2hHcmlkRmllbGRzOiBvcHRpb25zLnNlYXJjaEdyaWRGaWVsZHMgPyB0aGlzLm1vdW50Rm9ybUZpZWxkKG9wdGlvbnMuc2VhcmNoR3JpZEZpZWxkcywgcHJlZml4KSA6XG4gICAgICAgICAgICAgICAgdGhpcy5tb3VudEZvcm1GaWVsZCh0aGlzLnNlYXJjaEdyaWRGaWVsZHMsIHByZWZpeCksXG4gICAgICAgICAgICBzdWdnZXN0aW9uc09ic2VydmFibGU6IHRoaXMubG9va3VwU3VnZ2VzdGlvbnNPYnNlcnZhYmxlLFxuICAgICAgICAgICAgc2VhcmNoT2JzZXJ2YWJsZTogdGhpcy5sb29rdXBTZWFyY2hPYnNlcnZhYmxlLFxuICAgICAgICAgICAgb25Mb29rdXBSZXF1ZXN0OiAodmFsdWU6IHN0cmluZykgPT4gdGhpcy5vbkxvb2t1cFJlcXVlc3QodmFsdWUsIHByZWZpeCwgb3B0aW9ucyksXG4gICAgICAgICAgICBvblNlYXJjaFJlcXVlc3Q6IChldmVudDogYW55KSA9PiB0aGlzLm9uU2VhcmNoUmVxdWVzdChldmVudCwgcHJlZml4LCBvcHRpb25zKVxuICAgICAgICB9O1xuICAgIH1cbuKAi1xuICAgIHB1YmxpYyBnZXRQcm9wKG9iajogYW55LCBwYXRoOiBhbnksIHByZWZpeDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBwYXRoLnNwbGl0KFwiLlwiKS5yZWR1Y2UoKHJlc3VsdDogYW55LCBwcm9wOiBhbnkpID0+IChyZXN1bHRbcHJvcF0gPT09IHVuZGVmaW5lZCB8fCByZXN1bHRbcHJvcF0gPT09IG51bGxcbiAgICAgICAgICAgID8gdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHtwcmVmaXh9LmVtcHR5X2xhYmVsYClcbiAgICAgICAgICAgIDogcmVzdWx0W3Byb3BdKSwgb2JqKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzVmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgIXZhbHVlLmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuICEhdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIG1vdW50RW50aXR5RmlsdGVyKGVudGl0eTogRW50aXR5RGVwZW5kZW5jeSwgdmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBlbnRpdHkuZmllbGRcbiAgICAgICAgICAgID8gYCgke2VudGl0eS5uYW1lfS4ke2VudGl0eS5maWVsZH0gZXEgJyR7dmFsdWVbZW50aXR5LmZpZWxkXX0nKWBcbiAgICAgICAgICAgIDogYCgke2VudGl0eS5uYW1lfSBlcSAnJHt2YWx1ZVtlbnRpdHkubmFtZV19JylgO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkxvb2t1cFJlcXVlc3QodmFsdWU6IHN0cmluZywgcHJlZml4OiBzdHJpbmcsIG9wdGlvbnM/OiBMb29rdXBPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHNvcnQgPSBvcHRpb25zLmxvb2t1cFNvcnQ7XG4gICAgICAgIGNvbnN0IGxvb2t1cERpc3BsYXlGaWVsZHMgPSBvcHRpb25zLmxvb2t1cEZpZWxkcy5tYXAoZmllbGQgPT4gZmllbGQubmFtZSk7XG4gICAgICAgIGxldCBmaWx0ZXJRdWVyeSA9IHRoaXMubW91bnRGaWx0ZXJRdWVyeSh2YWx1ZSwgb3B0aW9ucy5sb29rdXBGaWVsZHMsIG9wdGlvbnMuZGVmYXVsdEZpbHRlciwgb3B0aW9ucy5keW5hbWljRmlsdGVyKTtcblxuICAgICAgICBsZXQgZGlzcGxheUZpZWxkcyA9IGxvb2t1cERpc3BsYXlGaWVsZHMuY29uY2F0KCAob3B0aW9ucy5zZWFyY2hHcmlkRmllbGRzIHx8IHRoaXMuc2VhcmNoR3JpZEZpZWxkcylcbiAgICAgICAgICAgIC5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSB8fCBbXSk7XG4gICAgICAgIGlmIChvcHRpb25zLnF1ZXJ5RmllbGRzKVxuICAgICAgICAgICAgZGlzcGxheUZpZWxkcyA9IGRpc3BsYXlGaWVsZHMuY29uY2F0KG9wdGlvbnMucXVlcnlGaWVsZHMpO1xuICAgICAgICBkaXNwbGF5RmllbGRzID0gZGlzcGxheUZpZWxkcy5maWx0ZXIoKHYsIGkpID0+IGRpc3BsYXlGaWVsZHMuaW5kZXhPZih2KSA9PT0gaSk7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuZW50aXR5RGVwZW5kZW5jeSkge1xuICAgICAgICAgICAgY29uc3QgZW50aXR5RmlsdGVyID0gb3B0aW9ucy5lbnRpdHlEZXBlbmRlbmN5Lm1hcCgoZW50aXR5OiBFbnRpdHlEZXBlbmRlbmN5KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBlbnRpdHkudmFsdWUoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaGFzVmFsdWUobmV3VmFsdWUpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAoJHtuZXdWYWx1ZS5tYXAoKHZhbDogYW55KSA9PiB0aGlzLm1vdW50RW50aXR5RmlsdGVyKGVudGl0eSwgdmFsKSkuam9pbihcIiBvciBcIil9KWA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAoJHt0aGlzLm1vdW50RW50aXR5RmlsdGVyKGVudGl0eSwgbmV3VmFsdWUpfSlgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLmZpbHRlcihmaWx0ZXIgPT4gISFmaWx0ZXIpLmpvaW4gKFwiIGFuZCBcIik7XG4gICAgICAgICAgICBpZiAoZW50aXR5RmlsdGVyKVxuICAgICAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID8gZmlsdGVyUXVlcnkgKz0gYCBhbmQgKCR7ZW50aXR5RmlsdGVyfSlgIDogZmlsdGVyUXVlcnkgPSBlbnRpdHlGaWx0ZXI7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb29rdXBTZXJ2aWNlXG4gICAgICAgICAgICAubGlzdCh7XG4gICAgICAgICAgICAgICAgc29ydCxcbiAgICAgICAgICAgICAgICBmaWx0ZXJRdWVyeSxcbiAgICAgICAgICAgICAgICBkaXNwbGF5RmllbGRzXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGhpcy5lbnRpdHksXG4gICAgICAgICAgICBvcHRpb25zLmRvbWFpbiB8fCB0aGlzLmRvbWFpbixcbiAgICAgICAgICAgIG9wdGlvbnMuc2VydmljZSB8fCB0aGlzLnNlcnZpY2UpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgobGlzdDogYW55KSA9PlxuICAgICAgICAgICAgICAgICAgICBsaXN0LmNvbnRlbnRzLm1hcCgoaXRlbTogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldEl0ZW1MYWJlbChpdGVtLCBwcmVmaXgsIGxvb2t1cERpc3BsYXlGaWVsZHMpXG4gICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9va3VwU3VnZ2VzdGlvbnNPYnNlcnZhYmxlLm5leHQoZGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG7igItcbiAgICBwdWJsaWMgb25TZWFyY2hSZXF1ZXN0KGV2ZW50OiBhbnksIHByZWZpeDogc3RyaW5nLCBvcHRpb25zPzogTG9va3VwT3B0aW9ucykge1xuICAgICAgICBjb25zdCB7IGZpcnN0LCByb3dzLCBtdWx0aVNvcnRNZXRhLCBmaWx0ZXJEYXRhIH0gPSBldmVudDtcbiAgICAgICAgY29uc3QgcGFnZSA9IGZpcnN0IC8gcm93cztcbiAgICAgICAgY29uc3Qgc29ydCA9IG11bHRpU29ydE1ldGEgPyBtdWx0aVNvcnRNZXRhIDogb3B0aW9ucy5zZWFyY2hTb3J0O1xuICAgICAgICBjb25zdCBsb29rdXBEaXNwbGF5RmllbGRzID0gb3B0aW9ucy5sb29rdXBGaWVsZHMubWFwKGZpZWxkID0+IGZpZWxkLm5hbWUpO1xuXG4gICAgICAgIGxldCBmaWx0ZXJRdWVyeSA9IChvcHRpb25zLnNlYXJjaEZpZWxkcyB8fCB0aGlzLnNlYXJjaEZpZWxkcylcbiAgICAgICAgICAgIC5maWx0ZXIoKHsgbmFtZSB9KSA9PiBmaWx0ZXJEYXRhW25hbWVdICE9IHVuZGVmaW5lZCAmJiBmaWx0ZXJEYXRhW25hbWVdICE9IFwiXCIpXG4gICAgICAgICAgICAubWFwKChmb3JtRmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IG5hbWUsIHR5cGUsIG11bHRpcGxlLCBlcnBMb29rdXBzRm9ybUZpZWxkIH0gPSBmb3JtRmllbGQgYXMgRXJwTG9va3Vwc0Zvcm1GaWVsZDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZmlsdGVyRGF0YVtuYW1lXTtcblxuICAgICAgICAgICAgICAgIGlmIChlcnBMb29rdXBzRm9ybUZpZWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1vdW50Q3VzdG9tRmlsdGVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycExvb2t1cHNTZWFyY2hGaWVsZDogZm9ybUZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSBcIm51bWJlclwiKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZX0gZXEgJHt2YWx1ZX1gO1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gRmllbGRUeXBlLkRhdGUpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lfSBlcSAnJHttb21lbnQodmFsdWUpLmZvcm1hdChcIllZWVktTU0tRERcIil9J2A7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBGaWVsZFR5cGUuVGltZSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9IGVxICcke21vbWVudCh2YWx1ZSkuZm9ybWF0KFwiSEg6bW06c3NcIil9J2A7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBGaWVsZFR5cGUuRGF0ZVRpbWUpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lfSBlcSAnJHttb21lbnQodmFsdWUpLmZvcm1hdCgpfSdgO1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gRmllbGRUeXBlLkVudW0pXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1vdW50RW51bUZpbHRlcihuYW1lLCB2YWx1ZSwgbXVsdGlwbGUpO1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gRmllbGRUeXBlLlN0cmluZylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAoY29udGFpbmluZyhsb3dlcigke25hbWV9KSwgbG93ZXIoJyR7dmFsdWV9JykpKWA7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gRmllbGRUeXBlLkxvb2t1cClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAoJHtuYW1lfSBlcSAnJHt2YWx1ZS5pZH0nKWA7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZX0gZXEgJyR7dmFsdWV9J2A7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmpvaW4oXCIgYW5kIFwiKTtcbuKAi1xuICAgICAgICBpZiAob3B0aW9ucy5lbnRpdHlEZXBlbmRlbmN5KSB7XG4gICAgICAgICAgICBjb25zdCBlbnRpdHlGaWx0ZXIgPSBvcHRpb25zLmVudGl0eURlcGVuZGVuY3kubWFwKChlbnRpdHk6IEVudGl0eURlcGVuZGVuY3kpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGVudGl0eS52YWx1ZSgpO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5oYXNWYWx1ZSh2YWx1ZSkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAoJHt2YWx1ZS5tYXAoKHZhbDogYW55KSA9PiB0aGlzLm1vdW50RW50aXR5RmlsdGVyKGVudGl0eSwgdmFsKSkuam9pbihcIiBvciBcIil9KWA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAoJHt0aGlzLm1vdW50RW50aXR5RmlsdGVyKGVudGl0eSwgdmFsdWUpfSlgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLmZpbHRlcihmaWx0ZXIgPT4gISFmaWx0ZXIpLmpvaW4gKFwiIGFuZCBcIik7XG4gICAgICAgICAgICBpZiAoZW50aXR5RmlsdGVyKVxuICAgICAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID8gZmlsdGVyUXVlcnkgKz0gYCBhbmQgKCR7ZW50aXR5RmlsdGVyfSlgIDogZmlsdGVyUXVlcnkgPSBlbnRpdHlGaWx0ZXI7XG4gICAgICAgIH1cbuKAi1xuICAgICAgICBjb25zdCBkZWZhdWx0RmlsdGVyUXVlcnkgPSB0aGlzLm1vdW50RGVmYXVsdEZpbHRlcihvcHRpb25zLmRlZmF1bHRGaWx0ZXIpO1xuXG4gICAgICAgIGlmIChkZWZhdWx0RmlsdGVyUXVlcnkpXG4gICAgICAgICAgICBmaWx0ZXJRdWVyeSA/IGZpbHRlclF1ZXJ5ICs9IGAgYW5kICgke2RlZmF1bHRGaWx0ZXJRdWVyeX0pYCA6IGZpbHRlclF1ZXJ5ID0gYCgke2RlZmF1bHRGaWx0ZXJRdWVyeX0pYDtcblxuICAgICAgICBjb25zdCBkeW5hbWljRmlsdGVyUXVlcnkgPSB0aGlzLm1vdW50RHluYW1pY0ZpbHRlcihvcHRpb25zLmR5bmFtaWNGaWx0ZXIpO1xuXG4gICAgICAgIGlmIChkeW5hbWljRmlsdGVyUXVlcnkpXG4gICAgICAgICAgICBmaWx0ZXJRdWVyeSA/IGZpbHRlclF1ZXJ5ICs9IGAgYW5kICgke2R5bmFtaWNGaWx0ZXJRdWVyeX0pYCA6IGZpbHRlclF1ZXJ5ID0gYCgke2R5bmFtaWNGaWx0ZXJRdWVyeX0pYDtcblxuICAgICAgICBsZXQgZGlzcGxheUZpZWxkcyA9IGxvb2t1cERpc3BsYXlGaWVsZHMuY29uY2F0KChvcHRpb25zLnNlYXJjaEdyaWRGaWVsZHMgfHwgdGhpcy5zZWFyY2hHcmlkRmllbGRzKVxuICAgICAgICAgICAgICAgIC5jb25jYXQob3B0aW9ucy5zZWFyY2hHcmlkRmllbGRzIHx8IFtdKVxuICAgICAgICAgICAgICAgIC5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSB8fCBbXSk7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMucXVlcnlGaWVsZHMpXG4gICAgICAgICAgICBkaXNwbGF5RmllbGRzID0gZGlzcGxheUZpZWxkcy5jb25jYXQob3B0aW9ucy5xdWVyeUZpZWxkcyk7XG5cbiAgICAgICAgZGlzcGxheUZpZWxkcyA9IGRpc3BsYXlGaWVsZHMuZmlsdGVyKCh2LCBpKSA9PiBkaXNwbGF5RmllbGRzLmluZGV4T2YodikgPT09IGkpO1xuXG4gICAgICAgIHRoaXMubG9va3VwU2VydmljZVxuICAgICAgICAgICAgLmxpc3QoeyBwYWdlLCBzb3J0LCBmaWx0ZXJRdWVyeSwgZGlzcGxheUZpZWxkcyB9LCB0aGlzLmVudGl0eSwgb3B0aW9ucy5kb21haW4gfHwgdGhpcy5kb21haW4sIG9wdGlvbnMuc2VydmljZSB8fCB0aGlzLnNlcnZpY2UpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChsaXN0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBDcmlhciB1bSBtYXBhIGRlIGNhbXBvcyBjb20gbWF4TGVuZ3RoIGRlZmluaWRvXG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGRzV2l0aE1heExlbmd0aCA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgWy4uLihvcHRpb25zLnNlYXJjaEZpZWxkcyB8fCB0aGlzLnNlYXJjaEZpZWxkcyksIC4uLihvcHRpb25zLnNlYXJjaEdyaWRGaWVsZHMgfHwgdGhpcy5zZWFyY2hHcmlkRmllbGRzKV1cbiAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZmllbGQ6IEZvcm1GaWVsZEVycHgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkLm1heExlbmd0aCAmJiBcbiAgICAgICAgICAgICAgICAgICAgKGZpZWxkLnR5cGUgPT09IEZpZWxkVHlwZS5TdHJpbmcgfHwgZmllbGQudHlwZSA9PT0gRmllbGRUeXBlLlRleHQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkc1dpdGhNYXhMZW5ndGguc2V0KGZpZWxkLm5hbWUsIGZpZWxkLm1heExlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGdyaWREYXRhOiBsaXN0LmNvbnRlbnRzLm1hcCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZEl0ZW0gPSB7IC4uLml0ZW0gfTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIC8vIEFwbGljYXIgbWF4TGVuZ3RoIG5vcyBjYW1wb3MgcXVlIHBvc3N1ZW0gYSBjb25maWd1cmHDp8Ojb1xuICAgICAgICAgICAgICAgICAgICBmaWVsZHNXaXRoTWF4TGVuZ3RoLmZvckVhY2goKG1heExlbmd0aCwgZmllbGROYW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvY2Vzc2VkSXRlbVtmaWVsZE5hbWVdICYmIHR5cGVvZiBwcm9jZXNzZWRJdGVtW2ZpZWxkTmFtZV0gPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgcHJvY2Vzc2VkSXRlbVtmaWVsZE5hbWVdLmxlbmd0aCA+IG1heExlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc2VkSXRlbVtmaWVsZE5hbWVdID0gcHJvY2Vzc2VkSXRlbVtmaWVsZE5hbWVdLnN1YnN0cmluZygwLCBtYXhMZW5ndGgpICsgJy4uLic7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucHJvY2Vzc2VkSXRlbSxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuZ2V0SXRlbUxhYmVsKHByb2Nlc3NlZEl0ZW0sIHByZWZpeCwgbG9va3VwRGlzcGxheUZpZWxkcylcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0b3RhbFJlY29yZHM6IGxpc3QudG90YWxFbGVtZW50c1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvb2t1cFNlYXJjaE9ic2VydmFibGUubmV4dChkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldEl0ZW1MYWJlbChpdGVtOiBhbnksIHByZWZpeDogc3RyaW5nLCBsb29rdXBEaXNwbGF5RmllbGRzOiBzdHJpbmdbXSkge1xuICAgICAgICByZXR1cm4gbG9va3VwRGlzcGxheUZpZWxkc1xuICAgICAgICAgICAgLm1hcCgoZmllbGQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWVsZC5pbmRleE9mKFwiLlwiKSA+IDApIHJldHVybiB0aGlzLmdldFByb3AoaXRlbSwgZmllbGQsIHByZWZpeCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1bZmllbGRdICE9PSB1bmRlZmluZWQgJiYgaXRlbVtmaWVsZF0gIT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgPyBpdGVtW2ZpZWxkXVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7cHJlZml4fS5lbXB0eV9sYWJlbGApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKFwiIC0gXCIpO1xuICAgIH1cbn1cbiJdfQ==
412
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJwLWxvb2t1cHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2xvb2t1cHMvZXJwLWxvb2t1cHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0FBZ0N2QixrRkFBa0Y7QUFDbEYsTUFBTSxDQUFOLElBQVksbUJBeUJYO0FBekJELFdBQVksbUJBQW1CO0lBQzNCLCtEQUErRDtJQUMvRCxnQ0FBUyxDQUFBO0lBQ1Qsa0VBQWtFO0lBQ2xFLGdDQUFTLENBQUE7SUFDVCx1REFBdUQ7SUFDdkQsZ0NBQVMsQ0FBQTtJQUNULGdFQUFnRTtJQUNoRSxnQ0FBUyxDQUFBO0lBQ1QsbURBQW1EO0lBQ25ELGdDQUFTLENBQUE7SUFDVCw2REFBNkQ7SUFDN0QsZ0NBQVMsQ0FBQTtJQUNULHdFQUF3RTtJQUN4RSxrQ0FBVyxDQUFBO0lBQ1gscUVBQXFFO0lBQ3JFLGdDQUFTLENBQUE7SUFDVCwrRUFBK0U7SUFDL0Usa0NBQVcsQ0FBQTtJQUNYLG1EQUFtRDtJQUNuRCxnQ0FBUyxDQUFBO0lBQ1QsbUVBQW1FO0lBQ25FLHVDQUFnQixDQUFB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QUFPLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDM0I7SUFDTCxDQUFDO0NBQ0osQ0FBQTs7WUEzWmdDLGlCQUFpQjtZQUNyQixnQkFBZ0I7Ozs7Ozs7O0FBWGhDLFVBQVU7SUFOdEIsVUFBVSxFQUFFO0lBRWI7OztNQUdFO0dBQ1csVUFBVSxDQXFhdEI7U0FyYVksVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSBcIm1vbWVudFwiO1xuaW1wb3J0IHsgRm9ybUZpZWxkLCBGaWVsZFR5cGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgRXJwTG9va3Vwc1NlcnZpY2UgfSBmcm9tIFwiLi9lcnAtbG9va3Vwcy5zZXJ2aWNlXCI7XG7igItcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgdGFrZVVudGlsLCBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG7igItcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XG5cbi8qKiBFbnRpZGFkZXMgZGUgcXVlIGRlcGVuZGUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5RGVwZW5kZW5jeSB7XG4gICAgLyoqIE5vbWUgZGEgZW50aWRhZGUgcXVlIGRlcGVuZGUgKHBhaSkgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIENhbXBvIGRhIGVudGlkYWRlIHBhaSBxdWUgc2Vyw6EgY29tcGFyYWRvICovXG4gICAgZmllbGQ/OiBzdHJpbmc7XG4gICAgLyoqIFZhbG9yIGRhIGVudGlkYWRlIHBhaSAqL1xuICAgIHZhbHVlOiBGdW5jdGlvbjtcbn1cbuKAi1xuLyoqIEZpbHRybyBwYWRyw6NvIGFwbGljYWRvIGVtIHRvZGFzIHJlcXVpc2nDp8O1ZXMgZGEgZW50aWRhZGUuIFBvciBwYWRyw6NvIGZpbHRyYSByZWdpc3Ryb3MgbsOjbyBleGNsdWlkb3MgKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdEZpbHRlciB7XG4gICAgLyoqIENhbXBvIHF1ZSBzZXLDoSBmaWx0cmFkbyAqL1xuICAgIGZpZWxkOiBzdHJpbmcgfCBEZWZhdWx0RmlsdGVyO1xuICAgIC8qKiBDb21wYXJhw6fDo28gcXVlIHNlcsOhIGFwbGljYWRhIG5hIGNvbnN1bHRhICovXG4gICAgb3BlcmF0b3I6IEVudW1Mb2dpY2FsT3BlcmF0b3I7XG4gICAgLyoqIFZhbG9yZXMgcXVlIHNlcsOjbyBidXNjYWRvcyAqL1xuICAgIHZhbHVlczogc3RyaW5nW107XG59XG5cbi8qKiBGaWx0cm8gZGluYW1pY28gcGFyYSBjb25zdWx0YXMgbWFpcyBjb21wbGV4YXMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0ZpbHRlciB7XG4gICAgLyoqIENhbXBvIHF1ZSBzZXLDoSBmaWx0cmFkbyAqL1xuICAgIGZpZWxkOiBGdW5jdGlvblxuICAgIC8qKiBDb21wYXJhw6fDo28gcXVlIHNlcsOhIGFwbGljYWRhIG5hIGNvbnN1bHRhICovXG4gICAgb3BlcmF0b3I6IEVudW1Mb2dpY2FsT3BlcmF0b3I7XG4gICAgLyoqIFZhbG9yZXMgcXVlIHNlcsOjbyBidXNjYWRvcyAqL1xuICAgIHZhbHVlOiBGdW5jdGlvbjtcbn1cblxuLyoqIEZpbHRlciBTeXN0ZW0gUXVlcnkgT3B0aW9uIC0gT3BlcmF0b3JzIHN1cHBvcnRlZCBpbiB0aGUgZXhwcmVzc2lvbiBsYW5ndWFnZSAqL1xuZXhwb3J0IGVudW0gRW51bUxvZ2ljYWxPcGVyYXRvciB7XG4gICAgLyoqIEVxdWFsIChFeDogL1N1cHBsaWVycz8kZmlsdGVyPUFkZHJlc3MvQ2l0eSBlcSAnUmVkbW9uZCcpICovXG4gICAgRXEgPSBcImVxXCIsXG4gICAgLyoqIE5vdCBlcXVhbCAoRXg6IC9TdXBwbGllcnM/JGZpbHRlcj1BZGRyZXNzL0NpdHkgbmUgJ0xvbmRvbicpICovXG4gICAgTmUgPSBcIm5lXCIsXG4gICAgLyoqIEdyZWF0ZXIgdGhhbiAoRXg6IC9Qcm9kdWN0cz8kZmlsdGVyPVByaWNlIGd0IDIwKSAqL1xuICAgIEd0ID0gXCJndFwiLFxuICAgIC8qKiBHcmVhdGVyIHRoYW4gb3IgZXF1YWwgKEV4OiAvUHJvZHVjdHM/JGZpbHRlcj1QcmljZSBnZSAxMCkgKi9cbiAgICBHZSA9IFwiZ2VcIixcbiAgICAvKiogTGVzcyB0aGFuIChFeDogL1Byb2R1Y3RzPyRmaWx0ZXI9UHJpY2UgbHQgMjApKi9cbiAgICBMdCA9IFwibHRcIixcbiAgICAvKiogTGVzcyB0aGFuIG9yIGVxdWFsIChFeDogL1Byb2R1Y3RzPyRmaWx0ZXI9UHJpY2UgbGUgMTAwKSovXG4gICAgTGUgPSBcImxlXCIsXG4gICAgLyoqIExvZ2ljYWwgYW5kXHQgKEV4OiAvUHJvZHVjdHM/JGZpbHRlcj1QcmljZSBsZSAyMDAgYW5kIFByaWNlIGd0IDMuNSkqL1xuICAgIEFuZCA9IFwiYW5kXCIsXG4gICAgLyoqIExvZ2ljYWwgb3IgKEV4OiAvUHJvZHVjdHM/JGZpbHRlcj1QcmljZSBsZSAzLjUgb3IgUHJpY2UgZ3QgMjAwKSovXG4gICAgT3IgPSBcIm9yXCIsXG4gICAgLyoqIExvZ2ljYWwgbmVnYXRpb24gKEV4OiAvUHJvZHVjdHM/JGZpbHRlcj1ub3QgZW5kc3dpdGgoRGVzY3JpcHRpb24sJ21pbGsnKSkqL1xuICAgIE5vdCA9IFwibm90XCIsXG4gICAgLyoqIExvZ2ljYWwgaXMgKEV4OiAvUHJvZHVjdHM/JGZpbHRlcj1pZCBpcyBudWxsICovXG4gICAgSXMgPSBcImlzXCIsXG4gICAgLyoqIE5lZ2F0aW9uIG9mIGxvZ2ljYWwgaXMgKEV4OiAvUHJvZHVjdHM/JGZpbHRlcj1pZCBpcyBub3QgbnVsbCAqL1xuICAgIElzTm90ID0gXCJpcyBub3RcIixcbiAgICAvKiogQ29udGFpbnMgc3RyaW5nIHZhbHVlIChFeDogL1Byb2R1Y3RzPyRmaWx0ZXI9Y29udGFpbmluZyhsb3dlcihuYW1lKSwgbG93ZXIoJ215IG5hbWUnKSkpICovXG4gICAgQ29udGFpbnMgPSBcImNvbnRhaW5pbmdcIlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvcnRPcHRpb25zIHtcbiAgICBmaWVsZDogc3RyaW5nO1xuICAgIG9yZGVyOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUZpZWxkRXJweCBleHRlbmRzIEZvcm1GaWVsZCB7XG4gICAgbWF4TGVuZ3RoPzogbnVtYmVyO1xufVxuXG4vKiogUGFyw6JtZXRyb3MgcGFyYSBjdXN0b21pemHDp8O1ZXMgZG8gbG9va3VwICovXG5leHBvcnQgaW50ZXJmYWNlIExvb2t1cE9wdGlvbnMge1xuICAgIC8qKiBOb21lIGRhIGVudGlkYWRlICovXG4gICAgZW50aXR5Pzogc3RyaW5nO1xuICAgIC8qKiBOb21lIGRvIGZvcm1Hcm91cCAqL1xuICAgIGZvcm1Hcm91cD86IHN0cmluZztcbiAgICAvKiogRmlsdHJvIHBhZHLDo28gKi9cbiAgICBkZWZhdWx0RmlsdGVyPzogRGVmYXVsdEZpbHRlcltdO1xuICAgIC8qKiBGaWx0cm8gZGluw6JtaWNvICovXG4gICAgZHluYW1pY0ZpbHRlcj86IER5bmFtaWNGaWx0ZXJbXTtcbiAgICAvKiogQ2FtcG9zIGRvIGxvb2t1cCAoYXV0b2NvbXBsZXRlKSAqL1xuICAgIGxvb2t1cEZpZWxkcz86IChGb3JtRmllbGQgfCBGb3JtRmllbGRFcnB4KVtdO1xuICAgIC8qKiBDYW1wb3MgcXVlIHNlcsOjbyBzb2xpY2l0YWRvcyBuYSBjb25zdWx0YSAqL1xuICAgIHF1ZXJ5RmllbGRzPzogc3RyaW5nW107XG4gICAgLyoqIENhbXBvcyBleGliaWRvcyBubyBmaWx0cm8gZGEgbW9kYWwgZGUgbGlzdGFnZW0gKi9cbiAgICBzZWFyY2hGaWVsZHM/OiAoRm9ybUZpZWxkIHwgRXJwTG9va3Vwc0Zvcm1GaWVsZClbXTtcbiAgICAvKiogQ2FtcG9zIGV4aWJpZG9zIG5hIGdyaWQgZGEgbW9kYWwgZGUgbGlzdGFnZW0gKi9cbiAgICBzZWFyY2hHcmlkRmllbGRzPzogKEZvcm1GaWVsZCB8IEZvcm1GaWVsZEVycHgpW107XG4gICAgLyoqIERlZmluZSBzZSBvIGxvb2t1cCBwZXJtaXRpcsOhIG11bHRpIHNlbGXDp8OjbyAqL1xuICAgIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgICAvKiogRW50aWRhZGVzIGRlIHF1ZSBkZXBlbmRlICovXG4gICAgZW50aXR5RGVwZW5kZW5jeT86IEVudGl0eURlcGVuZGVuY3lbXTtcbiAgICAvKiogUHJlZml4byB1dGlsaXphZG8gcGFyYSBtb250YXIgb3MgbGFiZWxzIChwb3IgcGFkcsOjbyB1dGlsaXphIGRvbcOtbmlvIGUgc2VydmnDp28pICovXG4gICAgcHJlZml4Pzogc3RyaW5nO1xuICAgIC8qKiBTdWZpeG8gdXRpbGl6YWRvIHBhcmEgbW9udGFyIG9zIGxhYmVscyAocG9yIHBhZHLDo28gw6kgdmF6aW8pICovXG4gICAgc3VmZml4Pzogc3RyaW5nO1xuICAgIC8qKiBEb23DrW5pbyAqL1xuICAgIGRvbWFpbj86IHN0cmluZztcbiAgICAvKiogU2VydmnDp28gKi9cbiAgICBzZXJ2aWNlPzogc3RyaW5nO1xuICAgIC8qKiBEYXRhIGtleSAqL1xuICAgIGRhdGFLZXk/OiBzdHJpbmc7XG4gICAgLyoqIENhbXBvcyBwYXJhIG9yZGVuYcOnw6NvIGRvIGxvb2t1cCAoYXV0b2NvbXBsZXRlKSovXG4gICAgbG9va3VwU29ydD86IFNvcnRPcHRpb25zW107XG4gICAgLyoqIENhbXBvcyBwYXJhIGEgb3JkZW5hw6fDo28gYW8gYWJyaXIgYSBtb2RhbCBkZSBsaXN0YWdlbSAqL1xuICAgIHNlYXJjaFNvcnQ/OiBTb3J0T3B0aW9uc1tdO1xufVxuXG5leHBvcnQgdHlwZSBDdXN0b21GaWx0ZXJGdW5jdGlvbjxUID0gdW5rbm93bj4gPSAob3B0aW9uczoge1xuICB2YWx1ZTogVDtcbiAgZmlsdGVyRGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59KSA9PiBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIEN1c3RvbUZpbHRlcjxUID0gdW5rbm93bj4gPSB7XG4gICAgb3BlcmF0b3I6IEVudW1Mb2dpY2FsT3BlcmF0b3I7XG4gICAgdmFsdWU6IHN0cmluZyB8IEN1c3RvbUZpbHRlckZ1bmN0aW9uPFQ+O1xufTtcblxuZXhwb3J0IGNsYXNzIEVycExvb2t1cHNGb3JtRmllbGQ8VCA9IHVua25vd24+IGV4dGVuZHMgRm9ybUZpZWxkIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVycExvb2t1cHNGb3JtRmllbGQ/OiB7XG4gICAgICAgICAgICBjdXN0b21GaWx0ZXJzPzogQ3VzdG9tRmlsdGVyPFQ+W107XG4gICAgICAgIH0sXG4gICAgICAgIC4uLmFyZ3M6IENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgRm9ybUZpZWxkPlxuICAgICkge1xuICAgICAgICBzdXBlciguLi5hcmdzKTtcbiAgICB9XG59XG5cbkBJbmplY3RhYmxlKClcbuKAi1xuLyoqXG4gKiBFcnAgTG9va3Vwc1xuICogQGNsYXNzIEVycExvb2t1cHNcbiovXG5leHBvcnQgY2xhc3MgRXJwTG9va3VwcyB7XG4gICAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcbiAgICAvKipcbiAgICAgKiBDcmlhw6fDo28gZGUgdW0gbG9va3VwLlxuICAgICAqIEBwYXJhbSBlbnRpdHkgTm9tZSBkYSBlbnRpZGFkZS5cbiAgICAgKiBAcGFyYW0gbG9va3VwRmllbGRzIENhbXBvcyBleGliaWRvcyBubyBhdXRvY29tcGxldGUuXG4gICAgICogQHBhcmFtIHNlYXJjaEZpZWxkcyBDYW1wb3MgZXhpYmlkb3Mgbm8gZmlsdHJvIGRlbnRybyBkYSBtb2RhbC5cbiAgICAgKiBAcGFyYW0gc2VhcmNoR3JpZEZpZWxkcyBDYW1wb3MgZXhpYmlkb3MgbmEgdGFiZWxhIGRlbnRybyBkYSBtb2RhbC5cbiAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgbG9va3VwU2VydmljZTogRXJwTG9va3Vwc1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBlbnRpdHk6IHN0cmluZyxcbiAgICAgICAgcHJvdGVjdGVkIGxvb2t1cEZpZWxkczogRm9ybUZpZWxkW10sXG4gICAgICAgIHB1YmxpYyBzZWFyY2hGaWVsZHM6IChGb3JtRmllbGQgfCBFcnBMb29rdXBzRm9ybUZpZWxkKVtdLFxuICAgICAgICBwdWJsaWMgc2VhcmNoR3JpZEZpZWxkczogRm9ybUZpZWxkW10sXG4gICAgICAgIHByb3RlY3RlZCBkb21haW46IHN0cmluZyxcbiAgICAgICAgcHJvdGVjdGVkIHNlcnZpY2U6IHN0cmluZyxcbiAgICApIHtcbiAgICAgICAgdGhpcy5lbnRpdHkgPSBlbnRpdHk7XG4gICAgICAgIHRoaXMuZG9tYWluID0gZG9tYWluO1xuICAgICAgICB0aGlzLnNlcnZpY2UgPSBzZXJ2aWNlO1xuICAgICAgICB0aGlzLmxvb2t1cEZpZWxkcyA9IGxvb2t1cEZpZWxkcyB8fCBbXTtcbiAgICAgICAgdGhpcy5zZWFyY2hGaWVsZHMgPSBzZWFyY2hGaWVsZHMgfHwgW107XG4gICAgICAgIHRoaXMuc2VhcmNoR3JpZEZpZWxkcyA9IHNlYXJjaEdyaWRGaWVsZHMgfHwgW107XG4gICAgfVxuXG4gICAgcHVibGljIGxvb2t1cFN1Z2dlc3Rpb25zT2JzZXJ2YWJsZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHVibGljIGxvb2t1cFNlYXJjaE9ic2VydmFibGUgPSBuZXcgU3ViamVjdCgpO1xu4oCLXG4gICAgcHVibGljIHRvU25ha2VDYXNlKHZhbHVlOiBzdHJpbmcgPSBcIlwiKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoLyg/Ol58XFwuPykoW0EtWl0pL2csIGZ1bmN0aW9uICh4LCB5KSB7cmV0dXJuIFwiX1wiICsgeS50b0xvd2VyQ2FzZSgpOyB9KS5yZXBsYWNlKC9eXy8sIFwiXCIpO1xuICAgIH1cbuKAi1xuICAgIHB1YmxpYyBtb3VudEZvcm1GaWVsZChmaWVsZHM6IGFueSwgcHJlZml4OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkcy5tYXAoKGZpZWxkOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGxldCB0cmFuc2xhdGlvbktleSA9IGAke3ByZWZpeH0ubG9va3VwXyR7dGhpcy50b1NuYWtlQ2FzZSh0aGlzLmVudGl0eSl9XyR7dGhpcy50b1NuYWtlQ2FzZShmaWVsZC5uYW1lKX1gO1xuICAgICAgICAgICAgbGV0IGxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0cmFuc2xhdGlvbktleSk7XG4gICAgICAgICAgICBpZiAobGFiZWwgPT09IHRyYW5zbGF0aW9uS2V5KSB7XG4gICAgICAgICAgICAgICAgLy8gTWFudGVyIGNvbXBhdGliaWxpZGFkZSBjb20gb3MgbG9va3VwcyBhdHVhaXMgYXTDqSB0b2RvcyBhanVzdGFyZW1cbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBmaWVsZC5uYW1lLnNwbGl0KCcuJykuam9pbignXycpO1xuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uS2V5ID0gYCR7cHJlZml4fS5sb29rdXBfJHt0aGlzLnRvU25ha2VDYXNlKHRoaXMuZW50aXR5KX1fJHt0aGlzLnRvU25ha2VDYXNlKGZpZWxkTmFtZSl9YDtcbiAgICAgICAgICAgICAgICBsYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodHJhbnNsYXRpb25LZXkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoXCJlcnBMb29rdXBzRm9ybUZpZWxkXCIgaW4gZmllbGQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVycExvb2t1cHNGb3JtRmllbGQoZmllbGQuZXJwTG9va3Vwc0Zvcm1GaWVsZCwge1xuICAgICAgICAgICAgICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBuZXcgRm9ybUZpZWxkKHtcbiAgICAgICAgICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgICAgICAgICBsYWJlbFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbuKAi1xuICAgIHB1YmxpYyBtb3VudERlZmF1bHRGaWx0ZXIoZGVmYXVsdEZpbHRlcjogRGVmYXVsdEZpbHRlcltdID0gW3tmaWVsZDogXCJleGNsdWlkb1wiLCBvcGVyYXRvcjogRW51bUxvZ2ljYWxPcGVyYXRvci5FcSwgdmFsdWVzOiBbXCJmYWxzZVwiXX1dKSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0RmlsdGVyLm1hcChmaWx0ZXIgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIFwiKFwiICsgZmlsdGVyLnZhbHVlcy5tYXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXIub3BlcmF0b3IgPT0gRW51bUxvZ2ljYWxPcGVyYXRvci5Db250YWlucylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBjb250YWluaW5nKGxvd2VyKCR7ZmlsdGVyLmZpZWxkfSksIGxvd2VyKCcke3ZhbHVlfScpKWA7XG5cbiAgICAgICAgICAgICAgICBpZiAoKGZpbHRlci5vcGVyYXRvciA9PSBFbnVtTG9naWNhbE9wZXJhdG9yLklzTm90IHx8IGZpbHRlci5vcGVyYXRvciA9PSBFbnVtTG9naWNhbE9wZXJhdG9yLklzKSAmJiAhdmFsdWUpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWx0ZXIuZmllbGR9ICR7ZmlsdGVyLm9wZXJhdG9yfSBudWxsYDtcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmlsdGVyLmZpZWxkfSAke2ZpbHRlci5vcGVyYXRvcn0gJyR7dmFsdWV9J2A7XG4gICAgICAgICAgICB9KS5qb2luKFwiIG9yIFwiKSArIFwiKVwiO1xuICAgICAgICB9KS5qb2luKFwiIGFuZCBcIik7XG4gICAgfVxuXG4gICAgcHVibGljIG1vdW50RHluYW1pY0ZpbHRlcihkeW5hbWljRmlsdGVyOiBEeW5hbWljRmlsdGVyW10pIHtcbiAgICAgICAgaWYgKGR5bmFtaWNGaWx0ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBkeW5hbWljRmlsdGVyLm1hcChmaWx0ZXIgPT4ge1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZXMgPSBmaWx0ZXIudmFsdWUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZCA9IGZpbHRlci5maWVsZCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG9wZXJhdG9yID0gZmlsdGVyLm9wZXJhdG9yO1xuXG4gICAgICAgICAgICAgICAgaWYgKCEodmFsdWVzIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcyA9IFt2YWx1ZXNdO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBcIihcIiArIHZhbHVlcy5tYXAoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wZXJhdG9yID09IEVudW1Mb2dpY2FsT3BlcmF0b3IuQ29udGFpbnMpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYGNvbnRhaW5pbmcobG93ZXIoJHtmaWVsZH0pLCBsb3dlcignJHt2YWx1ZX0nKSlgO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICgob3BlcmF0b3IgPT0gRW51bUxvZ2ljYWxPcGVyYXRvci5Jc05vdCB8fCBvcGVyYXRvciA9PSBFbnVtTG9naWNhbE9wZXJhdG9yLklzKSAmJiAhdmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZmllbGR9ICR7b3BlcmF0b3J9IG51bGxgO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtmaWVsZH0gJHtvcGVyYXRvcn0gJyR7dmFsdWV9J2A7XG4gICAgICAgICAgICAgICAgfSkuam9pbihcIiBvciBcIikgKyBcIilcIjtcbiAgICAgICAgICAgIH0pLmpvaW4oXCIgYW5kIFwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbW91bnRDdXN0b21GaWx0ZXIoe1xuICAgICAgICBlcnBMb29rdXBzU2VhcmNoRmllbGQsXG4gICAgICAgIGZpbHRlckRhdGEsXG4gICAgfToge1xuICAgICAgICBlcnBMb29rdXBzU2VhcmNoRmllbGQ6IEVycExvb2t1cHNGb3JtRmllbGQ7XG4gICAgICAgIGZpbHRlckRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIH0pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7IGVycExvb2t1cHNGb3JtRmllbGQsIG5hbWUgfSA9IGVycExvb2t1cHNTZWFyY2hGaWVsZDtcblxuICAgICAgICByZXR1cm4gYCgke2VycExvb2t1cHNGb3JtRmllbGQuY3VzdG9tRmlsdGVyc1xuICAgICAgICAgICAgLm1hcCgoeyBvcGVyYXRvciwgdmFsdWUgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHZhbHVlID1cbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gKHZhbHVlIGFzIEN1c3RvbUZpbHRlckZ1bmN0aW9uKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmlsdGVyRGF0YVtuYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHZhbHVlO1xuXG4gICAgICAgICAgICAgICAgaWYgKG9wZXJhdG9yID09PSBFbnVtTG9naWNhbE9wZXJhdG9yLkNvbnRhaW5zKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgKGNvbnRhaW5pbmcobG93ZXIoJHtuYW1lfSksIGxvd2VyKCcke3ZhbHVlfScpKSlgO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICgob3BlcmF0b3IgPT09IEVudW1Mb2dpY2FsT3BlcmF0b3IuSXNOb3QgfHwgb3BlcmF0b3IgPT09IEVudW1Mb2dpY2FsT3BlcmF0b3IuSXMpICYmICF2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCgke25hbWV9ICR7b3BlcmF0b3J9IG51bGwpYDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gYCgke25hbWV9ICR7b3BlcmF0b3J9ICcke3ZhbHVlfScpYDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbihcIiBhbmQgXCIpfSlgO1xuICAgIH1cbuKAi1xuICAgIHB1YmxpYyBtb3VudEZpbHRlclF1ZXJ5KHZhbHVlOiBzdHJpbmcsIGxvb2t1cEZpZWxkczogRm9ybUZpZWxkW10sIGRlZmF1bHRGaWx0ZXI/OiBEZWZhdWx0RmlsdGVyW10sIGR5bmFtaWNGaWx0ZXI/OiBEeW5hbWljRmlsdGVyW10pIHtcbiAgICAgICAgbGV0IGZpbHRlclF1ZXJ5OiBzdHJpbmc7XG4gICAgICAgIGlmIChOdW1iZXIuaXNJbnRlZ2VyKE51bWJlcih2YWx1ZSkpKSB7XG4gICAgICAgICAgICBmaWx0ZXJRdWVyeSA9IGxvb2t1cEZpZWxkcy5tYXAoKGZpZWxkOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gRmllbGRUeXBlLlN0cmluZykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYChjb250YWluaW5nKGxvd2VyKCR7ZmllbGQubmFtZX0pLCBsb3dlcignJHt2YWx1ZX0nKSkpYDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZpZWxkLnR5cGUgPT09IEZpZWxkVHlwZS5JbnRlZ2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNhbml0aXplZFZhbHVlID0gdmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC9cXEQvZywgXCJcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc2FuaXRpemVkVmFsdWUpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCgke2ZpZWxkLm5hbWV9IGVxICcke3Nhbml0aXplZFZhbHVlfScpYDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCgke2ZpZWxkLm5hbWV9IGVxICcke3ZhbHVlfScpYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmZpbHRlcihmaWx0ZXIgPT4gISFmaWx0ZXIpXG4gICAgICAgICAgICAuam9pbihcIiBvciBcIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWx0ZXJRdWVyeSA9IGxvb2t1cEZpZWxkc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGZpZWxkOiBhbnkpID0+IGZpZWxkLnR5cGUgPT09IEZpZWxkVHlwZS5TdHJpbmcpXG4gICAgICAgICAgICAgICAgLm1hcCgoZmllbGQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYChjb250YWluaW5nKGxvd2VyKCR7ZmllbGQubmFtZX0pLCBsb3dlcignJHt2YWx1ZS5yZXBsYWNlKC9cXFxcL2csIFwiXCIpLnJlcGxhY2UoLycvZywgXCJcXFxcJ1wiKX0nKSkpYDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5qb2luKFwiIG9yIFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRGaWx0ZXJRdWVyeSA9IHRoaXMubW91bnREZWZhdWx0RmlsdGVyKGRlZmF1bHRGaWx0ZXIpO1xuICAgICAgICBpZiAoZGVmYXVsdEZpbHRlclF1ZXJ5KVxuICAgICAgICAgICAgZmlsdGVyUXVlcnkgPSBgKCgke2RlZmF1bHRGaWx0ZXJRdWVyeX0pIGFuZCAoJHtmaWx0ZXJRdWVyeX0pKWA7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID0gXCIoXCIgKyBmaWx0ZXJRdWVyeSArIFwiKVwiO1xu4oCLXG4gICAgICAgIGNvbnN0IGR5bmFtaWNGaWx0ZXJRdWVyeSA9IHRoaXMubW91bnREeW5hbWljRmlsdGVyKGR5bmFtaWNGaWx0ZXIpO1xuICAgICAgICBpZiAoZHluYW1pY0ZpbHRlclF1ZXJ5KVxuICAgICAgICAgICAgZmlsdGVyUXVlcnkgPSBgKCgke2R5bmFtaWNGaWx0ZXJRdWVyeX0pIGFuZCAoJHtmaWx0ZXJRdWVyeX0pKWA7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID0gXCIoXCIgKyBmaWx0ZXJRdWVyeSArIFwiKVwiO1xuXG4gICAgICAgIHJldHVybiBmaWx0ZXJRdWVyeTtcbiAgICB9XG7igItcbiAgICBwdWJsaWMgbW91bnRFbnVtRmlsdGVyKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSwgbXVsdGlwbGU6IGJvb2xlYW4pIHtcbiAgICAgICAgcmV0dXJuIG11bHRpcGxlID8gYCgke3ZhbHVlLm1hcCgoc2VsZWN0ZWQ6IGFueSkgPT4gYCR7bmFtZX0gZXEgJyR7c2VsZWN0ZWR9J2ApLmpvaW4oXCIgb3IgXCIpfSlgIDogYCgke25hbWV9IGVxICcke3ZhbHVlfScpYDtcbiAgICB9XG7igItcbiAgICAvKiogTcOpdG9kbyByZXNwb25zw6F2ZWwgcG9yIG1vbnRhciBhcyBvcMOnw7VlcyBwYWRyw7VlcyBwYXJhIG8gbG9va3VwIGRvIER5bmFtaWMgRm9ybSAqL1xuICAgIHB1YmxpYyBtb3VudE9wdGlvbnMob3B0aW9uczogTG9va3VwT3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IG9wdGlvbnMucHJlZml4XG4gICAgICAgICAgICA/IG9wdGlvbnMucHJlZml4XG4gICAgICAgICAgICA6IChvcHRpb25zLmRvbWFpbiAmJiBvcHRpb25zLnNlcnZpY2UpXG4gICAgICAgICAgICAgICAgPyBgJHtvcHRpb25zLmRvbWFpbn0uJHtvcHRpb25zLnNlcnZpY2V9YFxuICAgICAgICAgICAgICAgIDogYCR7dGhpcy5kb21haW59LiR7dGhpcy5zZXJ2aWNlfWA7XG5cbiAgICAgICAgY29uc3Qgc3VmZml4ID0gb3B0aW9ucy5zdWZmaXggPyBgXyR7b3B0aW9ucy5zdWZmaXh9YCA6IFwiXCI7XG5cblxuICAgICAgICBvcHRpb25zLmxvb2t1cEZpZWxkcyA9IG9wdGlvbnMubG9va3VwRmllbGRzICYmIG9wdGlvbnMubG9va3VwRmllbGRzLmxlbmd0aFxuICAgICAgICAgICAgPyBvcHRpb25zLmxvb2t1cEZpZWxkc1xuICAgICAgICAgICAgOiB0aGlzLmxvb2t1cEZpZWxkcztcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogb3B0aW9ucy5mb3JtR3JvdXAgfHwgdGhpcy5lbnRpdHksXG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHtwcmVmaXh9Lmxvb2t1cF8ke3RoaXMudG9TbmFrZUNhc2Uob3B0aW9ucy5lbnRpdHkpIHx8IHRoaXMudG9TbmFrZUNhc2UodGhpcy5lbnRpdHkpfSR7c3VmZml4fWApLFxuICAgICAgICAgICAgc2VhcmNoVGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7cHJlZml4fS5sb29rdXBfJHt0aGlzLnRvU25ha2VDYXNlKG9wdGlvbnMuZW50aXR5KSB8fFxuICAgICAgICAgICAgICAgIHRoaXMudG9TbmFrZUNhc2UodGhpcy5lbnRpdHkpfV9zZWFyY2hfdGl0bGVgKSxcbiAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5Mb29rdXAsXG4gICAgICAgICAgICBtdWx0aXBsZTogb3B0aW9ucy5tdWx0aXBsZSA9PT0gZmFsc2UgPyBmYWxzZSA6IHRydWUsXG4gICAgICAgICAgICBkYXRhS2V5OiBvcHRpb25zLmRhdGFLZXkgfHwgXCJpZFwiLFxuICAgICAgICAgICAgbG9va3VwRGlzcGxheUZpZWxkOiBcImxhYmVsXCIsXG4gICAgICAgICAgICBzZWFyY2hFbXB0eVRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3ByZWZpeH0ubm90aGluZ19mb3VuZGApLFxuICAgICAgICAgICAgZmlsdGVyTGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7cHJlZml4fS5maWx0ZXJgKSxcbiAgICAgICAgICAgIGNsZWFyTGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7cHJlZml4fS5jbGVhcmApLFxuICAgICAgICAgICAgY2FuY2VsTGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7cHJlZml4fS5jYW5jZWxgKSxcbiAgICAgICAgICAgIHNlbGVjdExhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3ByZWZpeH0uc2VsZWN0YCksXG4gICAgICAgICAgICBzZWFyY2hGaWVsZHM6IG9wdGlvbnMuc2VhcmNoRmllbGRzID8gdGhpcy5tb3VudEZvcm1GaWVsZChvcHRpb25zLnNlYXJjaEZpZWxkcywgcHJlZml4KSA6XG4gICAgICAgICAgICAgICAgdGhpcy5tb3VudEZvcm1GaWVsZCh0aGlzLnNlYXJjaEZpZWxkcywgcHJlZml4KSxcbiAgICAgICAgICAgIHNlYXJjaEdyaWRGaWVsZHM6IG9wdGlvbnMuc2VhcmNoR3JpZEZpZWxkcyA/IHRoaXMubW91bnRGb3JtRmllbGQob3B0aW9ucy5zZWFyY2hHcmlkRmllbGRzLCBwcmVmaXgpIDpcbiAgICAgICAgICAgICAgICB0aGlzLm1vdW50Rm9ybUZpZWxkKHRoaXMuc2VhcmNoR3JpZEZpZWxkcywgcHJlZml4KSxcbiAgICAgICAgICAgIHN1Z2dlc3Rpb25zT2JzZXJ2YWJsZTogdGhpcy5sb29rdXBTdWdnZXN0aW9uc09ic2VydmFibGUsXG4gICAgICAgICAgICBzZWFyY2hPYnNlcnZhYmxlOiB0aGlzLmxvb2t1cFNlYXJjaE9ic2VydmFibGUsXG4gICAgICAgICAgICBvbkxvb2t1cFJlcXVlc3Q6ICh2YWx1ZTogc3RyaW5nKSA9PiB0aGlzLm9uTG9va3VwUmVxdWVzdCh2YWx1ZSwgcHJlZml4LCBvcHRpb25zKSxcbiAgICAgICAgICAgIG9uU2VhcmNoUmVxdWVzdDogKGV2ZW50OiBhbnkpID0+IHRoaXMub25TZWFyY2hSZXF1ZXN0KGV2ZW50LCBwcmVmaXgsIG9wdGlvbnMpXG4gICAgICAgIH07XG4gICAgfVxu4oCLXG4gICAgcHVibGljIGdldFByb3Aob2JqOiBhbnksIHBhdGg6IGFueSwgcHJlZml4OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHBhdGguc3BsaXQoXCIuXCIpLnJlZHVjZSgocmVzdWx0OiBhbnksIHByb3A6IGFueSkgPT4gKHJlc3VsdFtwcm9wXSA9PT0gdW5kZWZpbmVkIHx8IHJlc3VsdFtwcm9wXSA9PT0gbnVsbFxuICAgICAgICAgICAgPyB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3ByZWZpeH0uZW1wdHlfbGFiZWxgKVxuICAgICAgICAgICAgOiByZXN1bHRbcHJvcF0pLCBvYmopO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiAhdmFsdWUubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICByZXR1cm4gISF2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbW91bnRFbnRpdHlGaWx0ZXIoZW50aXR5OiBFbnRpdHlEZXBlbmRlbmN5LCB2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGVudGl0eS5maWVsZFxuICAgICAgICAgICAgPyBgKCR7ZW50aXR5Lm5hbWV9LiR7ZW50aXR5LmZpZWxkfSBlcSAnJHt2YWx1ZVtlbnRpdHkuZmllbGRdfScpYFxuICAgICAgICAgICAgOiBgKCR7ZW50aXR5Lm5hbWV9IGVxICcke3ZhbHVlW2VudGl0eS5uYW1lXX0nKWA7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTG9va3VwUmVxdWVzdCh2YWx1ZTogc3RyaW5nLCBwcmVmaXg6IHN0cmluZywgb3B0aW9ucz86IExvb2t1cE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3Qgc29ydCA9IG9wdGlvbnMubG9va3VwU29ydDtcbiAgICAgICAgY29uc3QgbG9va3VwRGlzcGxheUZpZWxkcyA9IG9wdGlvbnMubG9va3VwRmllbGRzLm1hcChmaWVsZCA9PiBmaWVsZC5uYW1lKTtcbiAgICAgICAgbGV0IGZpbHRlclF1ZXJ5ID0gdGhpcy5tb3VudEZpbHRlclF1ZXJ5KHZhbHVlLCBvcHRpb25zLmxvb2t1cEZpZWxkcywgb3B0aW9ucy5kZWZhdWx0RmlsdGVyLCBvcHRpb25zLmR5bmFtaWNGaWx0ZXIpO1xuXG4gICAgICAgIGxldCBkaXNwbGF5RmllbGRzID0gbG9va3VwRGlzcGxheUZpZWxkcy5jb25jYXQoIChvcHRpb25zLnNlYXJjaEdyaWRGaWVsZHMgfHwgdGhpcy5zZWFyY2hHcmlkRmllbGRzKVxuICAgICAgICAgICAgLm1hcCgoeyBuYW1lIH0pID0+IG5hbWUpIHx8IFtdKTtcbiAgICAgICAgaWYgKG9wdGlvbnMucXVlcnlGaWVsZHMpXG4gICAgICAgICAgICBkaXNwbGF5RmllbGRzID0gZGlzcGxheUZpZWxkcy5jb25jYXQob3B0aW9ucy5xdWVyeUZpZWxkcyk7XG4gICAgICAgIGRpc3BsYXlGaWVsZHMgPSBkaXNwbGF5RmllbGRzLmZpbHRlcigodiwgaSkgPT4gZGlzcGxheUZpZWxkcy5pbmRleE9mKHYpID09PSBpKTtcblxuICAgICAgICBpZiAob3B0aW9ucy5lbnRpdHlEZXBlbmRlbmN5KSB7XG4gICAgICAgICAgICBjb25zdCBlbnRpdHlGaWx0ZXIgPSBvcHRpb25zLmVudGl0eURlcGVuZGVuY3kubWFwKChlbnRpdHk6IEVudGl0eURlcGVuZGVuY3kpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGVudGl0eS52YWx1ZSgpO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5oYXNWYWx1ZShuZXdWYWx1ZSkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCgke25ld1ZhbHVlLm1hcCgodmFsOiBhbnkpID0+IHRoaXMubW91bnRFbnRpdHlGaWx0ZXIoZW50aXR5LCB2YWwpKS5qb2luKFwiIG9yIFwiKX0pYDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCgke3RoaXMubW91bnRFbnRpdHlGaWx0ZXIoZW50aXR5LCBuZXdWYWx1ZSl9KWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkuZmlsdGVyKGZpbHRlciA9PiAhIWZpbHRlcikuam9pbiAoXCIgYW5kIFwiKTtcbiAgICAgICAgICAgIGlmIChlbnRpdHlGaWx0ZXIpXG4gICAgICAgICAgICAgICAgZmlsdGVyUXVlcnkgPyBmaWx0ZXJRdWVyeSArPSBgIGFuZCAoJHtlbnRpdHlGaWx0ZXJ9KWAgOiBmaWx0ZXJRdWVyeSA9IGVudGl0eUZpbHRlcjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvb2t1cFNlcnZpY2VcbiAgICAgICAgICAgIC5saXN0KHtcbiAgICAgICAgICAgICAgICBzb3J0LFxuICAgICAgICAgICAgICAgIGZpbHRlclF1ZXJ5LFxuICAgICAgICAgICAgICAgIGRpc3BsYXlGaWVsZHNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLmVudGl0eSxcbiAgICAgICAgICAgIG9wdGlvbnMuZG9tYWluIHx8IHRoaXMuZG9tYWluLFxuICAgICAgICAgICAgb3B0aW9ucy5zZXJ2aWNlIHx8IHRoaXMuc2VydmljZSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChsaXN0OiBhbnkpID0+XG4gICAgICAgICAgICAgICAgICAgIGxpc3QuY29udGVudHMubWFwKChpdGVtOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuZ2V0SXRlbUxhYmVsKGl0ZW0sIHByZWZpeCwgbG9va3VwRGlzcGxheUZpZWxkcylcbiAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb29rdXBTdWdnZXN0aW9uc09ic2VydmFibGUubmV4dChkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbuKAi1xuICAgIHB1YmxpYyBvblNlYXJjaFJlcXVlc3QoZXZlbnQ6IGFueSwgcHJlZml4OiBzdHJpbmcsIG9wdGlvbnM/OiBMb29rdXBPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgZmlyc3QsIHJvd3MsIG11bHRpU29ydE1ldGEsIGZpbHRlckRhdGEgfSA9IGV2ZW50O1xuICAgICAgICBjb25zdCBwYWdlID0gZmlyc3QgLyByb3dzO1xuICAgICAgICBjb25zdCBzb3J0ID0gbXVsdGlTb3J0TWV0YSA/IG11bHRpU29ydE1ldGEgOiBvcHRpb25zLnNlYXJjaFNvcnQ7XG4gICAgICAgIGNvbnN0IGxvb2t1cERpc3BsYXlGaWVsZHMgPSBvcHRpb25zLmxvb2t1cEZpZWxkcy5tYXAoZmllbGQgPT4gZmllbGQubmFtZSk7XG5cbiAgICAgICAgbGV0IGZpbHRlclF1ZXJ5ID0gKG9wdGlvbnMuc2VhcmNoRmllbGRzIHx8IHRoaXMuc2VhcmNoRmllbGRzKVxuICAgICAgICAgICAgLmZpbHRlcigoeyBuYW1lIH0pID0+IGZpbHRlckRhdGFbbmFtZV0gIT0gdW5kZWZpbmVkICYmIGZpbHRlckRhdGFbbmFtZV0gIT0gXCJcIilcbiAgICAgICAgICAgIC5tYXAoKGZvcm1GaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgbmFtZSwgdHlwZSwgbXVsdGlwbGUsIGVycExvb2t1cHNGb3JtRmllbGQgfSA9IGZvcm1GaWVsZCBhcyBFcnBMb29rdXBzRm9ybUZpZWxkO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBmaWx0ZXJEYXRhW25hbWVdO1xuXG4gICAgICAgICAgICAgICAgaWYgKGVycExvb2t1cHNGb3JtRmllbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubW91bnRDdXN0b21GaWx0ZXIoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJwTG9va3Vwc1NlYXJjaEZpZWxkOiBmb3JtRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJEYXRhLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09IFwibnVtYmVyXCIpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lfSBlcSAke3ZhbHVlfWA7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBGaWVsZFR5cGUuRGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9IGVxICcke21vbWVudCh2YWx1ZSkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKX0nYDtcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlID09IEZpZWxkVHlwZS5UaW1lKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZX0gZXEgJyR7bW9tZW50KHZhbHVlKS5mb3JtYXQoXCJISDptbTpzc1wiKX0nYDtcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlID09IEZpZWxkVHlwZS5EYXRlVGltZSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9IGVxICcke21vbWVudCh2YWx1ZSkuZm9ybWF0KCl9J2A7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBGaWVsZFR5cGUuRW51bSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubW91bnRFbnVtRmlsdGVyKG5hbWUsIHZhbHVlLCBtdWx0aXBsZSk7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBGaWVsZFR5cGUuU3RyaW5nKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYChjb250YWluaW5nKGxvd2VyKCR7bmFtZX0pLCBsb3dlcignJHt2YWx1ZX0nKSkpYDtcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlID09PSBGaWVsZFR5cGUuTG9va3VwKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCgke25hbWV9IGVxICcke3ZhbHVlLmlkfScpYDtcblxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lfSBlcSAnJHt2YWx1ZX0nYDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbihcIiBhbmQgXCIpO1xu4oCLXG4gICAgICAgIGlmIChvcHRpb25zLmVudGl0eURlcGVuZGVuY3kpIHtcbiAgICAgICAgICAgIGNvbnN0IGVudGl0eUZpbHRlciA9IG9wdGlvbnMuZW50aXR5RGVwZW5kZW5jeS5tYXAoKGVudGl0eTogRW50aXR5RGVwZW5kZW5jeSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZW50aXR5LnZhbHVlKCk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhhc1ZhbHVlKHZhbHVlKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCgke3ZhbHVlLm1hcCgodmFsOiBhbnkpID0+IHRoaXMubW91bnRFbnRpdHlGaWx0ZXIoZW50aXR5LCB2YWwpKS5qb2luKFwiIG9yIFwiKX0pYDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCgke3RoaXMubW91bnRFbnRpdHlGaWx0ZXIoZW50aXR5LCB2YWx1ZSl9KWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkuZmlsdGVyKGZpbHRlciA9PiAhIWZpbHRlcikuam9pbiAoXCIgYW5kIFwiKTtcbiAgICAgICAgICAgIGlmIChlbnRpdHlGaWx0ZXIpXG4gICAgICAgICAgICAgICAgZmlsdGVyUXVlcnkgPyBmaWx0ZXJRdWVyeSArPSBgIGFuZCAoJHtlbnRpdHlGaWx0ZXJ9KWAgOiBmaWx0ZXJRdWVyeSA9IGVudGl0eUZpbHRlcjtcbiAgICAgICAgfVxu4oCLXG4gICAgICAgIGNvbnN0IGRlZmF1bHRGaWx0ZXJRdWVyeSA9IHRoaXMubW91bnREZWZhdWx0RmlsdGVyKG9wdGlvbnMuZGVmYXVsdEZpbHRlcik7XG5cbiAgICAgICAgaWYgKGRlZmF1bHRGaWx0ZXJRdWVyeSlcbiAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID8gZmlsdGVyUXVlcnkgKz0gYCBhbmQgKCR7ZGVmYXVsdEZpbHRlclF1ZXJ5fSlgIDogZmlsdGVyUXVlcnkgPSBgKCR7ZGVmYXVsdEZpbHRlclF1ZXJ5fSlgO1xuXG4gICAgICAgIGNvbnN0IGR5bmFtaWNGaWx0ZXJRdWVyeSA9IHRoaXMubW91bnREeW5hbWljRmlsdGVyKG9wdGlvbnMuZHluYW1pY0ZpbHRlcik7XG5cbiAgICAgICAgaWYgKGR5bmFtaWNGaWx0ZXJRdWVyeSlcbiAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID8gZmlsdGVyUXVlcnkgKz0gYCBhbmQgKCR7ZHluYW1pY0ZpbHRlclF1ZXJ5fSlgIDogZmlsdGVyUXVlcnkgPSBgKCR7ZHluYW1pY0ZpbHRlclF1ZXJ5fSlgO1xuXG4gICAgICAgIGxldCBkaXNwbGF5RmllbGRzID0gbG9va3VwRGlzcGxheUZpZWxkcy5jb25jYXQoKG9wdGlvbnMuc2VhcmNoR3JpZEZpZWxkcyB8fCB0aGlzLnNlYXJjaEdyaWRGaWVsZHMpXG4gICAgICAgICAgICAgICAgLmNvbmNhdChvcHRpb25zLnNlYXJjaEdyaWRGaWVsZHMgfHwgW10pXG4gICAgICAgICAgICAgICAgLm1hcCgoeyBuYW1lIH0pID0+IG5hbWUpIHx8IFtdKTtcblxuICAgICAgICBpZiAob3B0aW9ucy5xdWVyeUZpZWxkcylcbiAgICAgICAgICAgIGRpc3BsYXlGaWVsZHMgPSBkaXNwbGF5RmllbGRzLmNvbmNhdChvcHRpb25zLnF1ZXJ5RmllbGRzKTtcblxuICAgICAgICBkaXNwbGF5RmllbGRzID0gZGlzcGxheUZpZWxkcy5maWx0ZXIoKHYsIGkpID0+IGRpc3BsYXlGaWVsZHMuaW5kZXhPZih2KSA9PT0gaSk7XG5cbiAgICAgICAgdGhpcy5sb29rdXBTZXJ2aWNlXG4gICAgICAgICAgICAubGlzdCh7IHBhZ2UsIHNvcnQsIGZpbHRlclF1ZXJ5LCBkaXNwbGF5RmllbGRzIH0sIHRoaXMuZW50aXR5LCBvcHRpb25zLmRvbWFpbiB8fCB0aGlzLmRvbWFpbiwgb3B0aW9ucy5zZXJ2aWNlIHx8IHRoaXMuc2VydmljZSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGxpc3Q6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIENyaWFyIHVtIG1hcGEgZGUgY2FtcG9zIGNvbSBtYXhMZW5ndGggZGVmaW5pZG9cbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZHNXaXRoTWF4TGVuZ3RoID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBbLi4uKG9wdGlvbnMuc2VhcmNoRmllbGRzIHx8IHRoaXMuc2VhcmNoRmllbGRzKSwgLi4uKG9wdGlvbnMuc2VhcmNoR3JpZEZpZWxkcyB8fCB0aGlzLnNlYXJjaEdyaWRGaWVsZHMpXVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChmaWVsZDogRm9ybUZpZWxkRXJweCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQubWF4TGVuZ3RoICYmIFxuICAgICAgICAgICAgICAgICAgICAoZmllbGQudHlwZSA9PT0gRmllbGRUeXBlLlN0cmluZyB8fCBmaWVsZC50eXBlID09PSBGaWVsZFR5cGUuVGV4dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGRzV2l0aE1heExlbmd0aC5zZXQoZmllbGQubmFtZSwgZmllbGQubWF4TGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZ3JpZERhdGE6IGxpc3QuY29udGVudHMubWFwKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkSXRlbSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaXRlbSkpO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgLy8gQXBsaWNhciBtYXhMZW5ndGggbm9zIGNhbXBvcyBxdWUgcG9zc3VlbSBhIGNvbmZpZ3VyYcOnw6NvXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkc1dpdGhNYXhMZW5ndGguZm9yRWFjaCgobWF4TGVuZ3RoLCBmaWVsZE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkVmFsdWUgPSB0aGlzLmdldE5lc3RlZFZhbHVlKHByb2Nlc3NlZEl0ZW0sIGZpZWxkTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGRWYWx1ZSAmJiB0eXBlb2YgZmllbGRWYWx1ZSA9PT0gJ3N0cmluZycgJiYgZmllbGRWYWx1ZS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldE5lc3RlZFZhbHVlKHByb2Nlc3NlZEl0ZW0sIGZpZWxkTmFtZSwgZmllbGRWYWx1ZS5zdWJzdHJpbmcoMCwgbWF4TGVuZ3RoKSArICcuLi4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5wcm9jZXNzZWRJdGVtLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5nZXRJdGVtTGFiZWwocHJvY2Vzc2VkSXRlbSwgcHJlZml4LCBsb29rdXBEaXNwbGF5RmllbGRzKVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRvdGFsUmVjb3JkczogbGlzdC50b3RhbEVsZW1lbnRzXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9va3VwU2VhcmNoT2JzZXJ2YWJsZS5uZXh0KGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0SXRlbUxhYmVsKGl0ZW06IGFueSwgcHJlZml4OiBzdHJpbmcsIGxvb2t1cERpc3BsYXlGaWVsZHM6IHN0cmluZ1tdKSB7XG4gICAgICAgIHJldHVybiBsb29rdXBEaXNwbGF5RmllbGRzXG4gICAgICAgICAgICAubWFwKChmaWVsZDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkLmluZGV4T2YoXCIuXCIpID4gMCkgcmV0dXJuIHRoaXMuZ2V0UHJvcChpdGVtLCBmaWVsZCwgcHJlZml4KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbVtmaWVsZF0gIT09IHVuZGVmaW5lZCAmJiBpdGVtW2ZpZWxkXSAhPT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICA/IGl0ZW1bZmllbGRdXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHtwcmVmaXh9LmVtcHR5X2xhYmVsYCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmpvaW4oXCIgLSBcIik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROZXN0ZWRWYWx1ZShvYmo6IGFueSwgcGF0aDogc3RyaW5nKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHBhdGguc3BsaXQoXCIuXCIpLnJlZHVjZSgoY3VycmVudCwga2V5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudCAmJiBjdXJyZW50W2tleV0gIT09IHVuZGVmaW5lZCA/IGN1cnJlbnRba2V5XSA6IHVuZGVmaW5lZDtcbiAgICAgICAgfSwgb2JqKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE5lc3RlZFZhbHVlKG9iajogYW55LCBwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qga2V5cyA9IHBhdGguc3BsaXQoXCIuXCIpO1xuICAgICAgICBjb25zdCBsYXN0S2V5ID0ga2V5cy5wb3AoKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0ga2V5cy5yZWR1Y2UoKGN1cnJlbnQsIGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQgJiYgY3VycmVudFtrZXldICE9PSB1bmRlZmluZWQgPyBjdXJyZW50W2tleV0gOiB1bmRlZmluZWQ7XG4gICAgICAgIH0sIG9iaik7XG4gICAgICAgIGlmICh0YXJnZXQgJiYgbGFzdEtleSkge1xuICAgICAgICAgICAgdGFyZ2V0W2xhc3RLZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -11,5 +11,6 @@ export var EnumImpostoCadastro;
11
11
  EnumImpostoCadastro["VCBS"] = "VCBS";
12
12
  EnumImpostoCadastro["VIBS"] = "VIBS";
13
13
  EnumImpostoCadastro["VIS"] = "VIS";
14
+ EnumImpostoCadastro["VCBS_IBS_CREDITO_PRESUMIDO"] = "VCBS_IBS_CREDITO_PRESUMIDO";
14
15
  })(EnumImpostoCadastro || (EnumImpostoCadastro = {}));
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS1pbXBvc3RvLWNhZGFzdHJvLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tZW1wcmVzYXJpYWwvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29yZS9lbnVtcy9lbnVtLWltcG9zdG8tY2FkYXN0cm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksbUJBWVg7QUFaRCxXQUFZLG1CQUFtQjtJQUMzQixrREFBMkIsQ0FBQTtJQUMzQix3Q0FBaUIsQ0FBQTtJQUNqQixvQ0FBYSxDQUFBO0lBQ2IsOENBQXVCLENBQUE7SUFDdkIsa0NBQVcsQ0FBQTtJQUNYLG9DQUFhLENBQUE7SUFDYixzQ0FBZSxDQUFBO0lBQ2Ysc0NBQWUsQ0FBQTtJQUNmLG9DQUFhLENBQUE7SUFDYixvQ0FBYSxDQUFBO0lBQ2Isa0NBQVcsQ0FBQTtBQUNmLENBQUMsRUFaVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBWTlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRW51bUltcG9zdG9DYWRhc3RybyB7XHJcbiAgICBWUElTX0NPRklOUyA9IFwiVlBJU19DT0ZJTlNcIixcclxuICAgIFZUT0RPUyA9IFwiVlRPRE9TXCIsXHJcbiAgICBWSVNTID0gXCJWSVNTXCIsXHJcbiAgICBWUkVURU5DQU8gPSBcIlZSRVRFTkNBT1wiLFxyXG4gICAgVklJID0gXCJWSUlcIixcclxuICAgIFZJUEkgPSBcIlZJUElcIixcclxuICAgIFZJQ01TID0gXCJWSUNNU1wiLFxyXG4gICAgVkNJREUgPSBcIlZDSURFXCIsXHJcbiAgICBWQ0JTID0gXCJWQ0JTXCIsXHJcbiAgICBWSUJTID0gXCJWSUJTXCIsXHJcbiAgICBWSVMgPSBcIlZJU1wiLFxyXG59XHJcbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS1pbXBvc3RvLWNhZGFzdHJvLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tZW1wcmVzYXJpYWwvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29yZS9lbnVtcy9lbnVtLWltcG9zdG8tY2FkYXN0cm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksbUJBYVg7QUFiRCxXQUFZLG1CQUFtQjtJQUMzQixrREFBMkIsQ0FBQTtJQUMzQix3Q0FBaUIsQ0FBQTtJQUNqQixvQ0FBYSxDQUFBO0lBQ2IsOENBQXVCLENBQUE7SUFDdkIsa0NBQVcsQ0FBQTtJQUNYLG9DQUFhLENBQUE7SUFDYixzQ0FBZSxDQUFBO0lBQ2Ysc0NBQWUsQ0FBQTtJQUNmLG9DQUFhLENBQUE7SUFDYixvQ0FBYSxDQUFBO0lBQ2Isa0NBQVcsQ0FBQTtJQUNYLGdGQUF5RCxDQUFBO0FBQzdELENBQUMsRUFiVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBYTlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRW51bUltcG9zdG9DYWRhc3RybyB7XHJcbiAgICBWUElTX0NPRklOUyA9IFwiVlBJU19DT0ZJTlNcIixcclxuICAgIFZUT0RPUyA9IFwiVlRPRE9TXCIsXHJcbiAgICBWSVNTID0gXCJWSVNTXCIsXHJcbiAgICBWUkVURU5DQU8gPSBcIlZSRVRFTkNBT1wiLFxyXG4gICAgVklJID0gXCJWSUlcIixcclxuICAgIFZJUEkgPSBcIlZJUElcIixcclxuICAgIFZJQ01TID0gXCJWSUNNU1wiLFxyXG4gICAgVkNJREUgPSBcIlZDSURFXCIsXHJcbiAgICBWQ0JTID0gXCJWQ0JTXCIsXHJcbiAgICBWSUJTID0gXCJWSUJTXCIsXHJcbiAgICBWSVMgPSBcIlZJU1wiLFxyXG4gICAgVkNCU19JQlNfQ1JFRElUT19QUkVTVU1JRE8gPSBcIlZDQlNfSUJTX0NSRURJVE9fUFJFU1VNSURPXCIsXHJcbn1cclxuIl19
@@ -75,6 +75,10 @@ var ComposicaoBaseCalculoLookup = /** @class */ (function (_super) {
75
75
  label: translate.instant("erpx_cpl_imp.impostos.enum_imposto_cadastro_vibs"),
76
76
  value: EnumImpostoCadastro.VIBS,
77
77
  },
78
+ {
79
+ label: translate.instant("erpx_cpl_imp.impostos.enum_imposto_cadastro_vcbs_ibs_credito_presumido"),
80
+ value: EnumImpostoCadastro.VCBS_IBS_CREDITO_PRESUMIDO,
81
+ },
78
82
  {
79
83
  label: translate.instant("erpx_cpl_imp.impostos.enum_imposto_cadastro_vis"),
80
84
  value: EnumImpostoCadastro.VIS,
@@ -100,4 +104,4 @@ var ComposicaoBaseCalculoLookup = /** @class */ (function (_super) {
100
104
  return ComposicaoBaseCalculoLookup;
101
105
  }(ErpLookups));
102
106
  export { ComposicaoBaseCalculoLookup };
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaWNhby1iYXNlLWNhbGN1bG8tbG9va3VwLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tZW1wcmVzYXJpYWwvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9sb29rdXBzL2VudGl0aWVzL2NvbXBvc2ljYW8tYmFzZS1jYWxjdWxvLWxvb2t1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBR2hGO0lBQWlELCtDQUFVO0lBQ3ZELHFDQUFzQixhQUFnQyxFQUFZLFNBQTJCO1FBQTdGLFlBQ0ksa0JBQ0ksYUFBYSxFQUNiLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkI7WUFDSTtnQkFDSSxJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07YUFDekI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07YUFDekI7U0FDSixFQUNEO1lBQ0k7Z0JBQ0ksSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO2FBQ3pCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO2FBQ3pCO1NBQ0osRUFDRDtZQUNJO2dCQUNJLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTthQUN6QjtZQUNEO2dCQUNJLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTthQUN6QjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2dCQUNmLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtnQkFDcEIsT0FBTyxFQUFFO29CQUNMO3dCQUNJLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLDBDQUEwQyxDQUFDO3dCQUNwRSxLQUFLLEVBQUUsbUJBQW1CLENBQUMsS0FBSztxQkFDbkM7b0JBQ0Q7d0JBQ0ksS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMseUNBQXlDLENBQUM7d0JBQ25FLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxLQUFLO3FCQUNuQztvQkFDRDt3QkFDSSxLQUFLLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQzt3QkFDbEUsS0FBSyxFQUFFLG1CQUFtQixDQUFDLEdBQUc7cUJBQ2pDO29CQUNEO3dCQUNJLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLGtEQUFrRCxDQUFDO3dCQUM1RSxLQUFLLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtxQkFDbEM7b0JBQ0Q7d0JBQ0ksS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsa0RBQWtELENBQUM7d0JBQzVFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxJQUFJO3FCQUNsQztvQkFDRDt3QkFDSSxLQUFLLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyx5REFBeUQsQ0FBQzt3QkFDbkYsS0FBSyxFQUFFLG1CQUFtQixDQUFDLFdBQVc7cUJBQ3pDO29CQUNEO3dCQUNJLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLHVEQUF1RCxDQUFDO3dCQUNqRixLQUFLLEVBQUUsbUJBQW1CLENBQUMsU0FBUztxQkFDdkM7b0JBQ0Q7d0JBQ0ksS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsa0RBQWtELENBQUM7d0JBQzVFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxJQUFJO3FCQUNsQztvQkFDRDt3QkFDSSxLQUFLLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxrREFBa0QsQ0FBQzt3QkFDNUUsS0FBSyxFQUFFLG1CQUFtQixDQUFDLElBQUk7cUJBQ2xDO29CQUNEO3dCQUNJLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLGlEQUFpRCxDQUFDO3dCQUMzRSxLQUFLLEVBQUUsbUJBQW1CLENBQUMsR0FBRztxQkFDakM7b0JBQ0Q7d0JBQ0ksS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0RBQW9ELENBQUM7d0JBQzlFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO3FCQUNwQztpQkFDSjthQUNKO1NBQ0osRUFDRCxjQUFjLEVBQ2QsV0FBVyxDQUNkLFNBQ0o7UUF4RnFCLG1CQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUFZLGVBQVMsR0FBVCxTQUFTLENBQWtCOztJQXdGN0YsQ0FBQzs7Z0JBeEZvQyxpQkFBaUI7Z0JBQXVCLGdCQUFnQjs7SUFEcEYsMkJBQTJCO1FBRHZDLFVBQVUsRUFBRTtPQUNBLDJCQUEyQixDQTBGdkM7SUFBRCxrQ0FBQztDQUFBLEFBMUZELENBQWlELFVBQVUsR0EwRjFEO1NBMUZZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XG5pbXBvcnQgeyBFcnBMb29rdXBzU2VydmljZSB9IGZyb20gXCIuLi9lcnAtbG9va3Vwcy5zZXJ2aWNlXCI7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBFcnBMb29rdXBzIH0gZnJvbSBcIi4uL2VycC1sb29rdXBzXCI7XG5pbXBvcnQgeyBFbnVtSW1wb3N0b0NhZGFzdHJvIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZW51bXMvZW51bS1pbXBvc3RvLWNhZGFzdHJvXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb21wb3NpY2FvQmFzZUNhbGN1bG9Mb29rdXAgZXh0ZW5kcyBFcnBMb29rdXBzIHtcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbG9va3VwU2VydmljZTogRXJwTG9va3Vwc1NlcnZpY2UsIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoXG4gICAgICAgICAgICBsb29rdXBTZXJ2aWNlLFxuICAgICAgICAgICAgdHJhbnNsYXRlLFxuICAgICAgICAgICAgXCJjb21wb3NpY2FvQmFzZUNhbGN1bG9cIixcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiY29kaWdvXCIsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwibm9tZVwiLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuU3RyaW5nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJjb2RpZ29cIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlN0cmluZyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJub21lXCIsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcImNvZGlnb1wiLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuU3RyaW5nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIm5vbWVcIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlN0cmluZyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJpbXBvc3RvXCIsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5FbnVtLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmVudW1faW1wb3N0b19jYWRhc3Ryb192Y2lkZVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bUltcG9zdG9DYWRhc3Ryby5WQ0lERSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmVudW1faW1wb3N0b19jYWRhc3Ryb19pY21zXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtSW1wb3N0b0NhZGFzdHJvLlZJQ01TLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuZW51bV9pbXBvc3RvX2NhZGFzdHJvX3ZpaVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bUltcG9zdG9DYWRhc3Ryby5WSUksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGUuaW5zdGFudChcImVycHhfY3BsX2ltcC5pbXBvc3Rvcy5lbnVtX2ltcG9zdG9fY2FkYXN0cm9fdmlwaVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bUltcG9zdG9DYWRhc3Ryby5WSVBJLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuaW1wb3N0b3MuZW51bV9pbXBvc3RvX2NhZGFzdHJvX3Zpc3NcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1JbXBvc3RvQ2FkYXN0cm8uVklTUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1faW1wb3N0b19jYWRhc3Ryb192cGlzX2NvZmluc1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bUltcG9zdG9DYWRhc3Ryby5WUElTX0NPRklOUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1faW1wb3N0b19jYWRhc3Ryb192cmV0ZW5jYW9cIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1JbXBvc3RvQ2FkYXN0cm8uVlJFVEVOQ0FPLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuaW1wb3N0b3MuZW51bV9pbXBvc3RvX2NhZGFzdHJvX3ZjYnNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1JbXBvc3RvQ2FkYXN0cm8uVkNCUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1faW1wb3N0b19jYWRhc3Ryb192aWJzXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtSW1wb3N0b0NhZGFzdHJvLlZJQlMsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGUuaW5zdGFudChcImVycHhfY3BsX2ltcC5pbXBvc3Rvcy5lbnVtX2ltcG9zdG9fY2FkYXN0cm9fdmlzXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtSW1wb3N0b0NhZGFzdHJvLlZJUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1faW1wb3N0b19jYWRhc3Ryb192dG9kb3NcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1JbXBvc3RvQ2FkYXN0cm8uVlRPRE9TLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFwiZXJweF9jcGxfaW1wXCIsXG4gICAgICAgICAgICBcImNhZGFzdHJvc1wiXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaWNhby1iYXNlLWNhbGN1bG8tbG9va3VwLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tZW1wcmVzYXJpYWwvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9sb29rdXBzL2VudGl0aWVzL2NvbXBvc2ljYW8tYmFzZS1jYWxjdWxvLWxvb2t1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBR2hGO0lBQWlELCtDQUFVO0lBQ3ZELHFDQUFzQixhQUFnQyxFQUFZLFNBQTJCO1FBQTdGLFlBQ0ksa0JBQ0ksYUFBYSxFQUNiLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkI7WUFDSTtnQkFDSSxJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07YUFDekI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07YUFDekI7U0FDSixFQUNEO1lBQ0k7Z0JBQ0ksSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO2FBQ3pCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO2FBQ3pCO1NBQ0osRUFDRDtZQUNJO2dCQUNJLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTthQUN6QjtZQUNEO2dCQUNJLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTthQUN6QjtZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2dCQUNmLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtnQkFDcEIsT0FBTyxFQUFFO29CQUNMO3dCQUNJLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLDBDQUEwQyxDQUFDO3dCQUNwRSxLQUFLLEVBQUUsbUJBQW1CLENBQUMsS0FBSztxQkFDbkM7b0JBQ0Q7d0JBQ0ksS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMseUNBQXlDLENBQUM7d0JBQ25FLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxLQUFLO3FCQUNuQztvQkFDRDt3QkFDSSxLQUFLLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQzt3QkFDbEUsS0FBSyxFQUFFLG1CQUFtQixDQUFDLEdBQUc7cUJBQ2pDO29CQUNEO3dCQUNJLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLGtEQUFrRCxDQUFDO3dCQUM1RSxLQUFLLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtxQkFDbEM7b0JBQ0Q7d0JBQ0ksS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsa0RBQWtELENBQUM7d0JBQzVFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxJQUFJO3FCQUNsQztvQkFDRDt3QkFDSSxLQUFLLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyx5REFBeUQsQ0FBQzt3QkFDbkYsS0FBSyxFQUFFLG1CQUFtQixDQUFDLFdBQVc7cUJBQ3pDO29CQUNEO3dCQUNJLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLHVEQUF1RCxDQUFDO3dCQUNqRixLQUFLLEVBQUUsbUJBQW1CLENBQUMsU0FBUztxQkFDdkM7b0JBQ0Q7d0JBQ0ksS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsa0RBQWtELENBQUM7d0JBQzVFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxJQUFJO3FCQUNsQztvQkFDRDt3QkFDSSxLQUFLLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxrREFBa0QsQ0FBQzt3QkFDNUUsS0FBSyxFQUFFLG1CQUFtQixDQUFDLElBQUk7cUJBQ2xDO29CQUNEO3dCQUNJLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLHdFQUF3RSxDQUFDO3dCQUNsRyxLQUFLLEVBQUUsbUJBQW1CLENBQUMsMEJBQTBCO3FCQUN4RDtvQkFDRDt3QkFDSSxLQUFLLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpREFBaUQsQ0FBQzt3QkFDM0UsS0FBSyxFQUFFLG1CQUFtQixDQUFDLEdBQUc7cUJBQ2pDO29CQUNEO3dCQUNJLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLG9EQUFvRCxDQUFDO3dCQUM5RSxLQUFLLEVBQUUsbUJBQW1CLENBQUMsTUFBTTtxQkFDcEM7aUJBQ0o7YUFDSjtTQUNKLEVBQ0QsY0FBYyxFQUNkLFdBQVcsQ0FDZCxTQUNKO1FBNUZxQixtQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFBWSxlQUFTLEdBQVQsU0FBUyxDQUFrQjs7SUE0RjdGLENBQUM7O2dCQTVGb0MsaUJBQWlCO2dCQUF1QixnQkFBZ0I7O0lBRHBGLDJCQUEyQjtRQUR2QyxVQUFVLEVBQUU7T0FDQSwyQkFBMkIsQ0E4RnZDO0lBQUQsa0NBQUM7Q0FBQSxBQTlGRCxDQUFpRCxVQUFVLEdBOEYxRDtTQTlGWSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgRXJwTG9va3Vwc1NlcnZpY2UgfSBmcm9tIFwiLi4vZXJwLWxvb2t1cHMuc2VydmljZVwiO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRXJwTG9va3VwcyB9IGZyb20gXCIuLi9lcnAtbG9va3Vwc1wiO1xuaW1wb3J0IHsgRW51bUltcG9zdG9DYWRhc3RybyB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2VudW1zL2VudW0taW1wb3N0by1jYWRhc3Ryb1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29tcG9zaWNhb0Jhc2VDYWxjdWxvTG9va3VwIGV4dGVuZHMgRXJwTG9va3VwcyB7XG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGxvb2t1cFNlcnZpY2U6IEVycExvb2t1cHNTZXJ2aWNlLCBwcm90ZWN0ZWQgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKFxuICAgICAgICAgICAgbG9va3VwU2VydmljZSxcbiAgICAgICAgICAgIHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIFwiY29tcG9zaWNhb0Jhc2VDYWxjdWxvXCIsXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcImNvZGlnb1wiLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuU3RyaW5nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIm5vbWVcIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlN0cmluZyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiY29kaWdvXCIsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwibm9tZVwiLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuU3RyaW5nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJjb2RpZ29cIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlN0cmluZyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJub21lXCIsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiaW1wb3N0b1wiLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuRW51bSxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGUuaW5zdGFudChcImVycHhfY3BsX2ltcC5lbnVtX2ltcG9zdG9fY2FkYXN0cm9fdmNpZGVcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1JbXBvc3RvQ2FkYXN0cm8uVkNJREUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGUuaW5zdGFudChcImVycHhfY3BsX2ltcC5lbnVtX2ltcG9zdG9fY2FkYXN0cm9faWNtc1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bUltcG9zdG9DYWRhc3Ryby5WSUNNUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmVudW1faW1wb3N0b19jYWRhc3Ryb192aWlcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1JbXBvc3RvQ2FkYXN0cm8uVklJLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuaW1wb3N0b3MuZW51bV9pbXBvc3RvX2NhZGFzdHJvX3ZpcGlcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1JbXBvc3RvQ2FkYXN0cm8uVklQSSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1faW1wb3N0b19jYWRhc3Ryb192aXNzXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtSW1wb3N0b0NhZGFzdHJvLlZJU1MsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGUuaW5zdGFudChcImVycHhfY3BsX2ltcC5pbXBvc3Rvcy5lbnVtX2ltcG9zdG9fY2FkYXN0cm9fdnBpc19jb2ZpbnNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEVudW1JbXBvc3RvQ2FkYXN0cm8uVlBJU19DT0ZJTlMsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGUuaW5zdGFudChcImVycHhfY3BsX2ltcC5pbXBvc3Rvcy5lbnVtX2ltcG9zdG9fY2FkYXN0cm9fdnJldGVuY2FvXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtSW1wb3N0b0NhZGFzdHJvLlZSRVRFTkNBTyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRyYW5zbGF0ZS5pbnN0YW50KFwiZXJweF9jcGxfaW1wLmltcG9zdG9zLmVudW1faW1wb3N0b19jYWRhc3Ryb192Y2JzXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtSW1wb3N0b0NhZGFzdHJvLlZDQlMsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGUuaW5zdGFudChcImVycHhfY3BsX2ltcC5pbXBvc3Rvcy5lbnVtX2ltcG9zdG9fY2FkYXN0cm9fdmlic1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bUltcG9zdG9DYWRhc3Ryby5WSUJTLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuaW1wb3N0b3MuZW51bV9pbXBvc3RvX2NhZGFzdHJvX3ZjYnNfaWJzX2NyZWRpdG9fcHJlc3VtaWRvXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtSW1wb3N0b0NhZGFzdHJvLlZDQlNfSUJTX0NSRURJVE9fUFJFU1VNSURPLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogdHJhbnNsYXRlLmluc3RhbnQoXCJlcnB4X2NwbF9pbXAuaW1wb3N0b3MuZW51bV9pbXBvc3RvX2NhZGFzdHJvX3Zpc1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogRW51bUltcG9zdG9DYWRhc3Ryby5WSVMsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGUuaW5zdGFudChcImVycHhfY3BsX2ltcC5pbXBvc3Rvcy5lbnVtX2ltcG9zdG9fY2FkYXN0cm9fdnRvZG9zXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBFbnVtSW1wb3N0b0NhZGFzdHJvLlZUT0RPUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcImVycHhfY3BsX2ltcFwiLFxuICAgICAgICAgICAgXCJjYWRhc3Ryb3NcIlxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==