@decaf-ts/integrations 0.3.4 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/integrations.cjs +3 -3
  2. package/dist/integrations.js +3 -3
  3. package/lib/cjs/graph/execution/CodeSandboxEvaluator.cjs +4 -0
  4. package/lib/cjs/graph/execution/GraphExecutionEngine.cjs +3 -2
  5. package/lib/cjs/graph/execution/SwitchGraphNodeExecutor.cjs +95 -0
  6. package/lib/cjs/graph/execution/index.cjs +4 -2
  7. package/lib/cjs/graph/index.cjs +7 -2
  8. package/lib/cjs/graph/loops/ConditionExpressionEvaluator.cjs +87 -0
  9. package/lib/cjs/graph/loops/GraphConditionEvaluator.cjs +25 -3
  10. package/lib/cjs/graph/loops/index.cjs +3 -2
  11. package/lib/cjs/graph/nodes/agent.cjs +110 -0
  12. package/lib/cjs/graph/nodes/category-styles.cjs +38 -0
  13. package/lib/cjs/graph/nodes/flow-control.cjs +436 -0
  14. package/lib/cjs/graph/nodes/index.cjs +34 -0
  15. package/lib/cjs/graph/nodes/triggers.cjs +250 -0
  16. package/lib/cjs/graph/types.cjs +2 -2
  17. package/lib/cjs/index.cjs +3 -3
  18. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +5 -4
  19. package/lib/cjs/keycloak/services/KeycloakClientService.cjs +5 -4
  20. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +5 -4
  21. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +8 -7
  22. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +5 -4
  23. package/lib/cjs/keycloak/services/KeycloakService.cjs +5 -3
  24. package/lib/cjs/keycloak/services/KeycloakUserService.cjs +5 -4
  25. package/lib/cjs/keycloak/services/runtime.cjs +20 -0
  26. package/lib/cjs/kibana/services/KibanaAuthService.cjs +6 -5
  27. package/lib/cjs/kibana/services/KibanaDashboardService.cjs +9 -8
  28. package/lib/cjs/kibana/services/KibanaDataViewService.cjs +7 -6
  29. package/lib/cjs/kibana/services/KibanaRoleService.cjs +5 -4
  30. package/lib/cjs/kibana/services/KibanaService.cjs +4 -2
  31. package/lib/cjs/kibana/services/KibanaSpaceService.cjs +5 -4
  32. package/lib/cjs/kibana/services/KibanaUserService.cjs +5 -4
  33. package/lib/cjs/kibana/services/runtime.cjs +20 -0
  34. package/lib/esm/graph/execution/CodeSandboxEvaluator.js +18 -0
  35. package/lib/esm/graph/execution/GraphExecutionEngine.js +2 -1
  36. package/lib/esm/graph/execution/SwitchGraphNodeExecutor.js +90 -0
  37. package/lib/esm/graph/execution/index.js +3 -1
  38. package/lib/esm/graph/index.js +6 -1
  39. package/lib/esm/graph/loops/ConditionExpressionEvaluator.js +82 -0
  40. package/lib/esm/graph/loops/GraphConditionEvaluator.js +24 -2
  41. package/lib/esm/graph/loops/index.js +2 -1
  42. package/lib/esm/graph/nodes/agent.js +101 -0
  43. package/lib/esm/graph/nodes/category-styles.js +34 -0
  44. package/lib/esm/graph/nodes/flow-control.js +427 -0
  45. package/lib/esm/graph/nodes/index.js +17 -0
  46. package/lib/esm/graph/nodes/triggers.js +241 -0
  47. package/lib/esm/graph/types.js +1 -1
  48. package/lib/esm/index.js +3 -3
  49. package/lib/esm/keycloak/services/KeycloakAuthService.js +4 -3
  50. package/lib/esm/keycloak/services/KeycloakClientService.js +4 -3
  51. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +4 -3
  52. package/lib/esm/keycloak/services/KeycloakRealmService.js +4 -3
  53. package/lib/esm/keycloak/services/KeycloakRoleService.js +4 -3
  54. package/lib/esm/keycloak/services/KeycloakService.js +4 -2
  55. package/lib/esm/keycloak/services/KeycloakUserService.js +4 -3
  56. package/lib/esm/keycloak/services/runtime.js +15 -0
  57. package/lib/esm/kibana/services/KibanaAuthService.js +5 -4
  58. package/lib/esm/kibana/services/KibanaDashboardService.js +5 -4
  59. package/lib/esm/kibana/services/KibanaDataViewService.js +4 -3
  60. package/lib/esm/kibana/services/KibanaRoleService.js +4 -3
  61. package/lib/esm/kibana/services/KibanaService.js +3 -1
  62. package/lib/esm/kibana/services/KibanaSpaceService.js +4 -3
  63. package/lib/esm/kibana/services/KibanaUserService.js +4 -3
  64. package/lib/esm/kibana/services/runtime.js +15 -0
  65. package/lib/types/graph/execution/CodeSandboxEvaluator.d.cts +53 -0
  66. package/lib/types/graph/execution/CodeSandboxEvaluator.d.mts +53 -0
  67. package/lib/types/graph/execution/GraphExecutionEngine.d.cts +10 -0
  68. package/lib/types/graph/execution/GraphExecutionEngine.d.mts +10 -0
  69. package/lib/types/graph/execution/SwitchGraphNodeExecutor.d.cts +42 -0
  70. package/lib/types/graph/execution/SwitchGraphNodeExecutor.d.mts +42 -0
  71. package/lib/types/graph/execution/index.d.cts +2 -0
  72. package/lib/types/graph/execution/index.d.mts +2 -0
  73. package/lib/types/graph/index.d.cts +4 -0
  74. package/lib/types/graph/index.d.mts +4 -0
  75. package/lib/types/graph/loops/ConditionExpressionEvaluator.d.cts +36 -0
  76. package/lib/types/graph/loops/ConditionExpressionEvaluator.d.mts +36 -0
  77. package/lib/types/graph/loops/GraphConditionEvaluator.d.cts +20 -4
  78. package/lib/types/graph/loops/GraphConditionEvaluator.d.mts +20 -4
  79. package/lib/types/graph/loops/index.d.cts +1 -0
  80. package/lib/types/graph/loops/index.d.mts +1 -0
  81. package/lib/types/graph/nodes/agent.d.cts +44 -0
  82. package/lib/types/graph/nodes/agent.d.mts +44 -0
  83. package/lib/types/graph/nodes/category-styles.d.cts +8 -0
  84. package/lib/types/graph/nodes/category-styles.d.mts +8 -0
  85. package/lib/types/graph/nodes/flow-control.d.cts +104 -0
  86. package/lib/types/graph/nodes/flow-control.d.mts +104 -0
  87. package/lib/types/graph/nodes/index.d.cts +16 -0
  88. package/lib/types/graph/nodes/index.d.mts +16 -0
  89. package/lib/types/graph/nodes/triggers.d.cts +53 -0
  90. package/lib/types/graph/nodes/triggers.d.mts +53 -0
  91. package/lib/types/graph/types.d.cts +102 -0
  92. package/lib/types/graph/types.d.mts +102 -0
  93. package/lib/types/index.d.cts +2 -2
  94. package/lib/types/index.d.mts +2 -2
  95. package/lib/types/keycloak/services/runtime.d.cts +6 -0
  96. package/lib/types/keycloak/services/runtime.d.mts +6 -0
  97. package/lib/types/kibana/services/runtime.d.cts +6 -0
  98. package/lib/types/kibana/services/runtime.d.mts +6 -0
  99. package/package.json +1 -1
@@ -47,6 +47,7 @@ const KibanaRoleService_js_1 = require("./KibanaRoleService.cjs");
47
47
  const KibanaUserService_js_1 = require("./KibanaUserService.cjs");
48
48
  const KibanaDashboardService_js_1 = require("./KibanaDashboardService.cjs");
49
49
  const KibanaAuthService_js_1 = require("./KibanaAuthService.cjs");
50
+ const runtime_js_1 = require("./runtime.cjs");
50
51
  /**
51
52
  * @class KibanaService
52
53
  * @summary Orchestrates Kibana setup and provisioning flows.
@@ -67,6 +68,7 @@ class KibanaService extends core_1.ClientBasedService {
67
68
  isProduction: this.isProduction.bind(this),
68
69
  };
69
70
  this._config = runtimeConfig;
71
+ (0, runtime_js_1.setKibanaProductionResolver)(this.isProduction.bind(this));
70
72
  this.spaceService = new KibanaSpaceService_js_1.KibanaSpaceService();
71
73
  await this.spaceService.initialize(runtimeConfig, ...ctxArgs);
72
74
  this.dataViewService = new KibanaDataViewService_js_1.KibanaDataViewService();
@@ -171,5 +173,5 @@ class KibanaService extends core_1.ClientBasedService {
171
173
  }
172
174
  }
173
175
  exports.KibanaService = KibanaService;
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9raWJhbmEvc2VydmljZXMvS2liYW5hU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRcEQsT0FBTyxLQUF3QixNQUFNLE9BQU8sQ0FBQztBQUM3QyxPQUFPLEtBQUssS0FBSyxNQUFNLFlBQVksQ0FBQztBQUVwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0NBQTZCO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQ0FBZ0M7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLCtCQUE0QjtBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsK0JBQTRCO0FBQ3hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxvQ0FBaUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLCtCQUE0QjtBQU14RDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGFBQWMsU0FBUSxrQkFHbEM7SUFhQztRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVTLFlBQVk7UUFDcEIsT0FBTyxDQUFDLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQzlCLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FDZCxHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUNsQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FDNUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQXNCLENBQUM7UUFDL0MsTUFBTSxhQUFhLEdBQTZCO1lBQzlDLEdBQUcsTUFBTTtZQUNULFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDM0MsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDO1FBRTdCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQzdDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDbkQsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUMzQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQzNDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FBQztRQUNyRCxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDM0MsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUU3RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUNyQixNQUEwQixFQUMxQixHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUNsQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUNuRCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5QixNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM5QyxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDO1FBQ3hDLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQ2pDLFNBQVMsRUFDVCxlQUFlLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFDM0IsR0FBRyxPQUFPLENBQ1gsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQztnQkFBRSxNQUFNLEtBQUssQ0FBQztRQUNyRCxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQ3BFLFNBQVMsRUFDVCxHQUFHLE9BQU8sQ0FDWCxDQUFDO1FBQ0YsSUFBSSxlQUFlLENBQUMsVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQzlDLGVBQWUsQ0FBQyxVQUFVLEdBQUcsRUFBRSxHQUFHLGVBQWUsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3pGLENBQUM7UUFFRCxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUN4QyxTQUFTLEVBQ1QsZUFBZSxDQUFDLFNBQVMsRUFDekIsR0FBRyxPQUFPLENBQ1gsQ0FBQztRQUNGLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDaEYsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUNyRixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUMvQixlQUFlLENBQUMsWUFBWSxFQUM1QixTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsT0FBTyxDQUNYLENBQUM7UUFDRixNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUVwRSxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBRUQseUJBQXlCLENBQUMsT0FRekI7UUFDQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FDZixTQUFpQixFQUNqQixPQUErQyxFQUMvQyxHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUNsQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FDN0MsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUNmLFNBQWlCLEVBQ2pCLE9BQW1DLEVBQ25DLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ2xCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUM3QyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEIsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQ2YsU0FBaUIsRUFDakIsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQzdDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4QixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUNsQixTQUFpQixFQUNqQixJQUEwQixFQUMxQixHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUNsQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUNoRCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0IsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjLENBQ2xCLFNBQWlCLEVBQ2pCLElBQTBCLEVBQzFCLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ2xCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQ2hELENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzQixNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsU0FBaUIsRUFDakIsU0FBNkMsRUFDN0MsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FDakQsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQ3hDLFNBQVMsRUFDVCxTQUFTLElBQUksRUFBRSxFQUNmLEdBQUcsT0FBTyxDQUNYLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUN0QixTQUFpQixFQUNqQixVQUE4QixFQUM5QixHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUNsQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUNwRCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMvQixNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQzNDLFNBQVMsRUFDVCxVQUFVLEVBQ1YsR0FBRyxPQUFPLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCLENBQzFCLFNBQWlCLEVBQ2pCLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ2xCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLENBQ3hELENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUNkLFNBQWlCLEVBQ2pCLE9BQThDLEVBQzlDLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ2xCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUM1QyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkIsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQ2QsU0FBaUIsRUFDakIsT0FBa0MsRUFDbEMsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQzVDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2QixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FDZCxJQUFnQixFQUNoQixTQUFpQixFQUNqQixTQUErQixFQUMvQixHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUNsQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FDNUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQy9CLElBQUksRUFDSixTQUFTLEVBQ1QsU0FBUyxJQUFJLEVBQUUsRUFDZixHQUFHLE9BQU8sQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQ2QsSUFBZ0IsRUFDaEIsU0FBaUIsRUFDakIsU0FBK0IsRUFDL0IsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQzVDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2QixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUMvQixJQUFJLEVBQ0osU0FBUyxFQUNULFNBQVMsSUFBSSxFQUFFLEVBQ2YsR0FBRyxPQUFPLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCLENBQ3BCLFNBQWlCLEVBQ2pCLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ2xCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQ2xELENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdCLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxNQUF5QjtRQUNoRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDbEIsT0FBTyxFQUFFLEdBQUcsTUFBTSxDQUFDLFFBQVEsTUFBTSxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQzlDLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO1lBQzFCLFVBQVUsRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQzFCLGtCQUFrQixFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7YUFDeEMsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZsaWN0RXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IE1heWJlQ29udGV4dHVhbEFyZyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQ2xpZW50QmFzZWRTZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEtpYmFuYURhdGFWaWV3Q29uZmlnLFxuICBLaWJhbmFSb2xlQ29uZmlnLFxuICBLaWJhbmFTZXR1cENvbmZpZyxcbiAgS2liYW5hU3BhY2VDb25maWcsXG4gIEtpYmFuYVVzZXIsXG59IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IEF4aW9zLCB7IEF4aW9zSW5zdGFuY2UgfSBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5cbmltcG9ydCB7IEtpYmFuYVNwYWNlU2VydmljZSB9IGZyb20gXCIuL0tpYmFuYVNwYWNlU2VydmljZVwiO1xuaW1wb3J0IHsgS2liYW5hRGF0YVZpZXdTZXJ2aWNlIH0gZnJvbSBcIi4vS2liYW5hRGF0YVZpZXdTZXJ2aWNlXCI7XG5pbXBvcnQgeyBLaWJhbmFSb2xlU2VydmljZSB9IGZyb20gXCIuL0tpYmFuYVJvbGVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBLaWJhbmFVc2VyU2VydmljZSB9IGZyb20gXCIuL0tpYmFuYVVzZXJTZXJ2aWNlXCI7XG5pbXBvcnQgeyBLaWJhbmFEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSBcIi4vS2liYW5hRGFzaGJvYXJkU2VydmljZVwiO1xuaW1wb3J0IHsgS2liYW5hQXV0aFNlcnZpY2UgfSBmcm9tIFwiLi9LaWJhbmFBdXRoU2VydmljZVwiO1xuXG50eXBlIEtpYmFuYVJ1bnRpbWVTZXR1cENvbmZpZyA9IEtpYmFuYVNldHVwQ29uZmlnICYge1xuICBpc1Byb2R1Y3Rpb24oKTogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogQGNsYXNzIEtpYmFuYVNlcnZpY2VcbiAqIEBzdW1tYXJ5IE9yY2hlc3RyYXRlcyBLaWJhbmEgc2V0dXAgYW5kIHByb3Zpc2lvbmluZyBmbG93cy5cbiAqIEBkZXNjcmlwdGlvbiBCb290cyB0aGUgbG93ZXItbGV2ZWwgS2liYW5hIHNlcnZpY2VzLCBjb29yZGluYXRlcyBjcmVhdGlvbiBvZiBzcGFjZXMsIGRhdGEgdmlld3MsIHJvbGVzLCB1c2VycywgZGFzaGJvYXJkcywgYW5kIGV4cG9zZXMgaGVscGVyIG1ldGhvZHMgZm9yIGVtYmVkIFVSTHMgYW5kIG9yZ2FuaXphdGlvbiBzZXR1cC5cbiAqL1xuZXhwb3J0IGNsYXNzIEtpYmFuYVNlcnZpY2UgZXh0ZW5kcyBDbGllbnRCYXNlZFNlcnZpY2U8XG4gIEF4aW9zSW5zdGFuY2UsXG4gIEtpYmFuYVNldHVwQ29uZmlnXG4+IHtcbiAgcHJvdGVjdGVkIHNwYWNlU2VydmljZSE6IEtpYmFuYVNwYWNlU2VydmljZTtcblxuICBwcm90ZWN0ZWQgZGF0YVZpZXdTZXJ2aWNlITogS2liYW5hRGF0YVZpZXdTZXJ2aWNlO1xuXG4gIHByb3RlY3RlZCByb2xlU2VydmljZSE6IEtpYmFuYVJvbGVTZXJ2aWNlO1xuXG4gIHByb3RlY3RlZCB1c2VyU2VydmljZSE6IEtpYmFuYVVzZXJTZXJ2aWNlO1xuXG4gIHByb3RlY3RlZCBkYXNoYm9hcmRTZXJ2aWNlITogS2liYW5hRGFzaGJvYXJkU2VydmljZTtcblxuICBwcm90ZWN0ZWQgYXV0aFNlcnZpY2UhOiBLaWJhbmFBdXRoU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzUHJvZHVjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIVtcImRldmVsb3BtZW50XCIsIFwibG9jYWxcIl0uaW5jbHVkZXMoXG4gICAgICBwcm9jZXNzLmVudltcIk5PREVfRU5WXCJdID8/IFwiXCJcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgaW5pdGlhbGl6ZShcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHsgY29uZmlnOiBLaWJhbmFTZXR1cENvbmZpZzsgY2xpZW50OiBBeGlvc0luc3RhbmNlIH0+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiaW5pdGlhbGl6ZVwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuaW5pdGlhbGl6ZSk7XG4gICAgY29uc3QgY29uZmlnID0gY3R4QXJnc1swXSBhcyBLaWJhbmFTZXR1cENvbmZpZztcbiAgICBjb25zdCBydW50aW1lQ29uZmlnOiBLaWJhbmFSdW50aW1lU2V0dXBDb25maWcgPSB7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBpc1Byb2R1Y3Rpb246IHRoaXMuaXNQcm9kdWN0aW9uLmJpbmQodGhpcyksXG4gICAgfTtcbiAgICB0aGlzLl9jb25maWcgPSBydW50aW1lQ29uZmlnO1xuXG4gICAgdGhpcy5zcGFjZVNlcnZpY2UgPSBuZXcgS2liYW5hU3BhY2VTZXJ2aWNlKCk7XG4gICAgYXdhaXQgdGhpcy5zcGFjZVNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICB0aGlzLmRhdGFWaWV3U2VydmljZSA9IG5ldyBLaWJhbmFEYXRhVmlld1NlcnZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLmRhdGFWaWV3U2VydmljZS5pbml0aWFsaXplKHJ1bnRpbWVDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgIHRoaXMucm9sZVNlcnZpY2UgPSBuZXcgS2liYW5hUm9sZVNlcnZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgdGhpcy51c2VyU2VydmljZSA9IG5ldyBLaWJhbmFVc2VyU2VydmljZSgpO1xuICAgIGF3YWl0IHRoaXMudXNlclNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UgPSBuZXcgS2liYW5hRGFzaGJvYXJkU2VydmljZSgpO1xuICAgIGF3YWl0IHRoaXMuZGFzaGJvYXJkU2VydmljZS5pbml0aWFsaXplKHJ1bnRpbWVDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgIHRoaXMuYXV0aFNlcnZpY2UgPSBuZXcgS2liYW5hQXV0aFNlcnZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLmF1dGhTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG5cbiAgICBjb25zdCBjbGllbnQgPSB0aGlzLmNyZWF0ZUh0dHBDbGllbnQocnVudGltZUNvbmZpZyk7XG4gICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50IH07XG4gIH1cblxuICBhc3luYyBzZXR1cE9yZ2FuaXphdGlvbihcbiAgICBjb25maWc/OiBLaWJhbmFTZXR1cENvbmZpZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPEtpYmFuYVNldHVwQ29uZmlnPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInNldHVwT3JnYW5pemF0aW9uXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5zZXR1cE9yZ2FuaXphdGlvbik7XG4gICAgY29uc3QgZWZmZWN0aXZlQ29uZmlnID0gY29uZmlnID8/IHRoaXMuY29uZmlnO1xuICAgIGNvbnN0IHJlYWxtTmFtZSA9IGVmZmVjdGl2ZUNvbmZpZy5yZWFsbTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5zcGFjZVNlcnZpY2UuY3JlYXRlU3BhY2UoXG4gICAgICAgIHJlYWxtTmFtZSxcbiAgICAgICAgZWZmZWN0aXZlQ29uZmlnLnNwYWNlID8/IHt9LFxuICAgICAgICAuLi5jdHhBcmdzXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIENvbmZsaWN0RXJyb3IpKSB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICBjb25zdCBkYXNoYm9hcmRJZCA9IGF3YWl0IHRoaXMuZGFzaGJvYXJkU2VydmljZS5jbG9uZURlZmF1bHREYXNoYm9hcmRzKFxuICAgICAgcmVhbG1OYW1lLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgaWYgKGVmZmVjdGl2ZUNvbmZpZy5kYXNoYm9hcmRzICYmIGRhc2hib2FyZElkKSB7XG4gICAgICBlZmZlY3RpdmVDb25maWcuZGFzaGJvYXJkcyA9IHsgLi4uZWZmZWN0aXZlQ29uZmlnLmRhc2hib2FyZHMsIGRhc2hib2FyZDogZGFzaGJvYXJkSWQgfTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmRhdGFWaWV3U2VydmljZS5jcmVhdGVEYXRhVmlld3MoXG4gICAgICByZWFsbU5hbWUsXG4gICAgICBlZmZlY3RpdmVDb25maWcuZGF0YVZpZXdzLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy5kYXRhVmlld1NlcnZpY2Uuc2V0RGVmYXVsdERhdGFWaWV3KHJlYWxtTmFtZSwgdW5kZWZpbmVkLCAuLi5jdHhBcmdzKTtcbiAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmNyZWF0ZVJvbGUocmVhbG1OYW1lLCBlZmZlY3RpdmVDb25maWcucm9sZSA/PyB7fSwgLi4uY3R4QXJncyk7XG4gICAgYXdhaXQgdGhpcy51c2VyU2VydmljZS5jcmVhdGVVc2VyKFxuICAgICAgZWZmZWN0aXZlQ29uZmlnLnJlYWxtQXBpVXNlcixcbiAgICAgIHJlYWxtTmFtZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGF3YWl0IHRoaXMuZGFzaGJvYXJkU2VydmljZS52ZXJpZnlTcGFjZVNldHVwKHJlYWxtTmFtZSwgLi4uY3R4QXJncyk7XG5cbiAgICByZXR1cm4gZWZmZWN0aXZlQ29uZmlnO1xuICB9XG5cbiAgZ2VuZXJhdGVEYXNoYm9hcmRFbWJlZFVybChvcHRpb25zOiB7XG4gICAgc3BhY2U6IHN0cmluZztcbiAgICBkYXNoYm9hcmRJZDogc3RyaW5nO1xuICAgIHNob3dUaW1lRmlsdGVyPzogYm9vbGVhbjtcbiAgICBzaG93UXVlcnlJbnB1dD86IGJvb2xlYW47XG4gICAgc2hvd0ZpbHRlckJhcj86IGJvb2xlYW47XG4gICAgaGlkZVBhbmVsVGl0bGVzPzogYm9vbGVhbjtcbiAgICB0aW1lUmFuZ2U/OiB7IGZyb206IHN0cmluZzsgdG86IHN0cmluZyB9O1xuICB9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmdlbmVyYXRlRGFzaGJvYXJkRW1iZWRVcmwob3B0aW9ucyk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVTcGFjZShcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBQYXJ0aWFsPEtpYmFuYVNwYWNlQ29uZmlnPiB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlU3BhY2VcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNyZWF0ZVNwYWNlKTtcbiAgICBhd2FpdCB0aGlzLnNwYWNlU2VydmljZS5jcmVhdGVTcGFjZShyZWFsbU5hbWUsIHBheWxvYWQsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlU3BhY2UoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogUGFydGlhbDxLaWJhbmFTcGFjZUNvbmZpZz4sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInVwZGF0ZVNwYWNlXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy51cGRhdGVTcGFjZSk7XG4gICAgYXdhaXQgdGhpcy5zcGFjZVNlcnZpY2UudXBkYXRlU3BhY2UocmVhbG1OYW1lLCBwYXlsb2FkLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZVNwYWNlKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJkZWxldGVTcGFjZVwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZGVsZXRlU3BhY2UpO1xuICAgIGF3YWl0IHRoaXMuc3BhY2VTZXJ2aWNlLmRlbGV0ZVNwYWNlKHJlYWxtTmFtZSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVEYXRhVmlldyhcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBzcGVjOiBLaWJhbmFEYXRhVmlld0NvbmZpZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlRGF0YVZpZXdcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNyZWF0ZURhdGFWaWV3KTtcbiAgICBhd2FpdCB0aGlzLmRhdGFWaWV3U2VydmljZS5jcmVhdGVEYXRhVmlldyhyZWFsbU5hbWUsIHNwZWMsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlRGF0YVZpZXcoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgc3BlYzogS2liYW5hRGF0YVZpZXdDb25maWcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInVwZGF0ZURhdGFWaWV3XCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy51cGRhdGVEYXRhVmlldyk7XG4gICAgYXdhaXQgdGhpcy5kYXRhVmlld1NlcnZpY2UudXBkYXRlRGF0YVZpZXcocmVhbG1OYW1lLCBzcGVjLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZURhdGFWaWV3cyhcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBkYXRhVmlld3M6IEtpYmFuYURhdGFWaWV3Q29uZmlnW10gfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZURhdGFWaWV3c1wiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY3JlYXRlRGF0YVZpZXdzKTtcbiAgICBhd2FpdCB0aGlzLmRhdGFWaWV3U2VydmljZS5jcmVhdGVEYXRhVmlld3MoXG4gICAgICByZWFsbU5hbWUsXG4gICAgICBkYXRhVmlld3MgPz8gW10sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHNldERlZmF1bHREYXRhVmlldyhcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBkYXRhVmlld0lkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInNldERlZmF1bHREYXRhVmlld1wiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuc2V0RGVmYXVsdERhdGFWaWV3KTtcbiAgICBhd2FpdCB0aGlzLmRhdGFWaWV3U2VydmljZS5zZXREZWZhdWx0RGF0YVZpZXcoXG4gICAgICByZWFsbU5hbWUsXG4gICAgICBkYXRhVmlld0lkLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBjbG9uZURlZmF1bHREYXNoYm9hcmRzKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNsb25lRGVmYXVsdERhc2hib2FyZHNcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNsb25lRGVmYXVsdERhc2hib2FyZHMpO1xuICAgIHJldHVybiB0aGlzLmRhc2hib2FyZFNlcnZpY2UuY2xvbmVEZWZhdWx0RGFzaGJvYXJkcyhyZWFsbU5hbWUsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlUm9sZShcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBQYXJ0aWFsPEtpYmFuYVJvbGVDb25maWc+IHwgdW5kZWZpbmVkLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVSb2xlXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGVSb2xlKTtcbiAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmNyZWF0ZVJvbGUocmVhbG1OYW1lLCBwYXlsb2FkLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVJvbGUoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogUGFydGlhbDxLaWJhbmFSb2xlQ29uZmlnPixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlUm9sZVwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMudXBkYXRlUm9sZSk7XG4gICAgYXdhaXQgdGhpcy5yb2xlU2VydmljZS51cGRhdGVSb2xlKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVVc2VyKFxuICAgIHVzZXI6IEtpYmFuYVVzZXIsXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgcm9sZU5hbWVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlVXNlclwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY3JlYXRlVXNlcik7XG4gICAgYXdhaXQgdGhpcy51c2VyU2VydmljZS5jcmVhdGVVc2VyKFxuICAgICAgdXNlcixcbiAgICAgIHJlYWxtTmFtZSxcbiAgICAgIHJvbGVOYW1lcyA/PyBbXSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlVXNlcihcbiAgICB1c2VyOiBLaWJhbmFVc2VyLFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHJvbGVOYW1lczogc3RyaW5nW10gfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInVwZGF0ZVVzZXJcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnVwZGF0ZVVzZXIpO1xuICAgIGF3YWl0IHRoaXMudXNlclNlcnZpY2UudXBkYXRlVXNlcihcbiAgICAgIHVzZXIsXG4gICAgICByZWFsbU5hbWUsXG4gICAgICByb2xlTmFtZXMgPz8gW10sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHZlcmlmeVNwYWNlU2V0dXAoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInZlcmlmeVNwYWNlU2V0dXBcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnZlcmlmeVNwYWNlU2V0dXApO1xuICAgIGF3YWl0IHRoaXMuZGFzaGJvYXJkU2VydmljZS52ZXJpZnlTcGFjZVNldHVwKHJlYWxtTmFtZSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUh0dHBDbGllbnQoY29uZmlnOiBLaWJhbmFTZXR1cENvbmZpZyk6IEF4aW9zSW5zdGFuY2Uge1xuICAgIHJldHVybiBBeGlvcy5jcmVhdGUoe1xuICAgICAgYmFzZVVSTDogYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9YCxcbiAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiB0aGlzLmlzUHJvZHVjdGlvbigpLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIktpYmFuYVNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkRBQXdEO0FBQ3hELHlDQUFvRDtBQUNwRCxrREFBMEI7QUFDMUIsa0RBQW9DO0FBQ3BDLG1FQUE2RDtBQUM3RCx5RUFBbUU7QUFDbkUsaUVBQTJEO0FBQzNELGlFQUEyRDtBQUMzRCwyRUFBcUU7QUFDckUsaUVBQTJEO0FBQzNEOzs7O0dBSUc7QUFDSCxNQUFhLGFBQWMsU0FBUSx5QkFBa0I7SUFDakQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxZQUFZO1FBQ1IsT0FBTyxDQUFDLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFDRCxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSTtRQUNwQixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkYsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sYUFBYSxHQUFHO1lBQ2xCLEdBQUcsTUFBTTtZQUNULFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDN0MsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSwwQ0FBa0IsRUFBRSxDQUFDO1FBQzdDLE1BQU0sSUFBSSxD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UyxFQUFFLEdBQUcsSUFBSTtRQUNoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekYsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSTtRQUN6QyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvRixNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBQ0QsS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSTtRQUN6QyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvRixNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBQ0QsS0FBSyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSTtRQUMvQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFN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QUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxJQUFJLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFDRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLEdBQUcsSUFBSTtRQUNyQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ25HLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxNQUFNO1FBQ25CLE9BQU8sZUFBSyxDQUFDLE1BQU0sQ0FBQztZQUNoQixPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxNQUFNLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDOUMsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7WUFDMUIsVUFBVSxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDeEIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRTthQUMxQyxDQUFDO1NBQ0wsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBckhELHNDQXFIQztBQUNELHMzc0JBQXMzc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25mbGljdEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCBBeGlvcyBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5pbXBvcnQgeyBLaWJhbmFTcGFjZVNlcnZpY2UgfSBmcm9tIFwiLi9LaWJhbmFTcGFjZVNlcnZpY2UuanNcIjtcbmltcG9ydCB7IEtpYmFuYURhdGFWaWV3U2VydmljZSB9IGZyb20gXCIuL0tpYmFuYURhdGFWaWV3U2VydmljZS5qc1wiO1xuaW1wb3J0IHsgS2liYW5hUm9sZVNlcnZpY2UgfSBmcm9tIFwiLi9LaWJhbmFSb2xlU2VydmljZS5qc1wiO1xuaW1wb3J0IHsgS2liYW5hVXNlclNlcnZpY2UgfSBmcm9tIFwiLi9LaWJhbmFVc2VyU2VydmljZS5qc1wiO1xuaW1wb3J0IHsgS2liYW5hRGFzaGJvYXJkU2VydmljZSB9IGZyb20gXCIuL0tpYmFuYURhc2hib2FyZFNlcnZpY2UuanNcIjtcbmltcG9ydCB7IEtpYmFuYUF1dGhTZXJ2aWNlIH0gZnJvbSBcIi4vS2liYW5hQXV0aFNlcnZpY2UuanNcIjtcbi8qKlxuICogQGNsYXNzIEtpYmFuYVNlcnZpY2VcbiAqIEBzdW1tYXJ5IE9yY2hlc3RyYXRlcyBLaWJhbmEgc2V0dXAgYW5kIHByb3Zpc2lvbmluZyBmbG93cy5cbiAqIEBkZXNjcmlwdGlvbiBCb290cyB0aGUgbG93ZXItbGV2ZWwgS2liYW5hIHNlcnZpY2VzLCBjb29yZGluYXRlcyBjcmVhdGlvbiBvZiBzcGFjZXMsIGRhdGEgdmlld3MsIHJvbGVzLCB1c2VycywgZGFzaGJvYXJkcywgYW5kIGV4cG9zZXMgaGVscGVyIG1ldGhvZHMgZm9yIGVtYmVkIFVSTHMgYW5kIG9yZ2FuaXphdGlvbiBzZXR1cC5cbiAqL1xuZXhwb3J0IGNsYXNzIEtpYmFuYVNlcnZpY2UgZXh0ZW5kcyBDbGllbnRCYXNlZFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbiAgICBpc1Byb2R1Y3Rpb24oKSB7XG4gICAgICAgIHJldHVybiAhW1wiZGV2ZWxvcG1lbnRcIiwgXCJsb2NhbFwiXS5pbmNsdWRlcyhwcm9jZXNzLmVudltcIk5PREVfRU5WXCJdID8/IFwiXCIpO1xuICAgIH1cbiAgICBhc3luYyBpbml0aWFsaXplKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJpbml0aWFsaXplXCIsIHRydWUpKS5mb3IodGhpcy5pbml0aWFsaXplKTtcbiAgICAgICAgY29uc3QgY29uZmlnID0gY3R4QXJnc1swXTtcbiAgICAgICAgY29uc3QgcnVudGltZUNvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICAgIGlzUHJvZHVjdGlvbjogdGhpcy5pc1Byb2R1Y3Rpb24uYmluZCh0aGlzKSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5fY29uZmlnID0gcnVudGltZUNvbmZpZztcbiAgICAgICAgdGhpcy5zcGFjZVNlcnZpY2UgPSBuZXcgS2liYW5hU3BhY2VTZXJ2aWNlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMuc3BhY2VTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgICAgIHRoaXMuZGF0YVZpZXdTZXJ2aWNlID0gbmV3IEtpYmFuYURhdGFWaWV3U2VydmljZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLmRhdGFWaWV3U2VydmljZS5pbml0aWFsaXplKHJ1bnRpbWVDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgICAgICB0aGlzLnJvbGVTZXJ2aWNlID0gbmV3IEtpYmFuYVJvbGVTZXJ2aWNlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgdGhpcy51c2VyU2VydmljZSA9IG5ldyBLaWJhbmFVc2VyU2VydmljZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZSA9IG5ldyBLaWJhbmFEYXNoYm9hcmRTZXJ2aWNlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGFzaGJvYXJkU2VydmljZS5pbml0aWFsaXplKHJ1bnRpbWVDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlID0gbmV3IEtpYmFuYUF1dGhTZXJ2aWNlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMuYXV0aFNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KHJ1bnRpbWVDb25maWcpO1xuICAgICAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7XG4gICAgICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50IH07XG4gICAgfVxuICAgIGFzeW5jIHNldHVwT3JnYW5pemF0aW9uKGNvbmZpZywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInNldHVwT3JnYW5pemF0aW9uXCIsIHRydWUpKS5mb3IodGhpcy5zZXR1cE9yZ2FuaXphdGlvbik7XG4gICAgICAgIGNvbnN0IGVmZmVjdGl2ZUNvbmZpZyA9IGNvbmZpZyA/PyB0aGlzLmNvbmZpZztcbiAgICAgICAgY29uc3QgcmVhbG1OYW1lID0gZWZmZWN0aXZlQ29uZmlnLnJlYWxtO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5zcGFjZVNlcnZpY2UuY3JlYXRlU3BhY2UocmVhbG1OYW1lLCBlZmZlY3RpdmVDb25maWcuc3BhY2UgPz8ge30sIC4uLmN0eEFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBDb25mbGljdEVycm9yKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkYXNoYm9hcmRJZCA9IGF3YWl0IHRoaXMuZGFzaGJvYXJkU2VydmljZS5jbG9uZURlZmF1bHREYXNoYm9hcmRzKHJlYWxtTmFtZSwgLi4uY3R4QXJncyk7XG4gICAgICAgIGlmIChlZmZlY3RpdmVDb25maWcuZGFzaGJvYXJkcyAmJiBkYXNoYm9hcmRJZCkge1xuICAgICAgICAgICAgZWZmZWN0aXZlQ29uZmlnLmRhc2hib2FyZHMgPSB7IC4uLmVmZmVjdGl2ZUNvbmZpZy5kYXNoYm9hcmRzLCBkYXNoYm9hcmQ6IGRhc2hib2FyZElkIH07XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5kYXRhVmlld1NlcnZpY2UuY3JlYXRlRGF0YVZpZXdzKHJlYWxtTmFtZSwgZWZmZWN0aXZlQ29uZmlnLmRhdGFWaWV3cywgLi4uY3R4QXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVZpZXdTZXJ2aWNlLnNldERlZmF1bHREYXRhVmlldyhyZWFsbU5hbWUsIHVuZGVmaW5lZCwgLi4uY3R4QXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuY3JlYXRlUm9sZShyZWFsbU5hbWUsIGVmZmVjdGl2ZUNvbmZpZy5yb2xlID8/IHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgYXdhaXQgdGhpcy51c2VyU2VydmljZS5jcmVhdGVVc2VyKGVmZmVjdGl2ZUNvbmZpZy5yZWFsbUFwaVVzZXIsIHJlYWxtTmFtZSwgdW5kZWZpbmVkLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgYXdhaXQgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnZlcmlmeVNwYWNlU2V0dXAocmVhbG1OYW1lLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgcmV0dXJuIGVmZmVjdGl2ZUNvbmZpZztcbiAgICB9XG4gICAgZ2VuZXJhdGVEYXNoYm9hcmRFbWJlZFVybChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2VuZXJhdGVEYXNoYm9hcmRFbWJlZFVybChvcHRpb25zKTtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlU3BhY2UocmVhbG1OYW1lLCBwYXlsb2FkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlU3BhY2VcIiwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZVNwYWNlKTtcbiAgICAgICAgYXdhaXQgdGhpcy5zcGFjZVNlcnZpY2UuY3JlYXRlU3BhY2UocmVhbG1OYW1lLCBwYXlsb2FkLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgdXBkYXRlU3BhY2UocmVhbG1OYW1lLCBwYXlsb2FkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlU3BhY2VcIiwgdHJ1ZSkpLmZvcih0aGlzLnVwZGF0ZVNwYWNlKTtcbiAgICAgICAgYXdhaXQgdGhpcy5zcGFjZVNlcnZpY2UudXBkYXRlU3BhY2UocmVhbG1OYW1lLCBwYXlsb2FkLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgZGVsZXRlU3BhY2UocmVhbG1OYW1lLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZGVsZXRlU3BhY2VcIiwgdHJ1ZSkpLmZvcih0aGlzLmRlbGV0ZVNwYWNlKTtcbiAgICAgICAgYXdhaXQgdGhpcy5zcGFjZVNlcnZpY2UuZGVsZXRlU3BhY2UocmVhbG1OYW1lLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlRGF0YVZpZXcocmVhbG1OYW1lLCBzcGVjLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlRGF0YVZpZXdcIiwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZURhdGFWaWV3KTtcbiAgICAgICAgYXdhaXQgdGhpcy5kYXRhVmlld1NlcnZpY2UuY3JlYXRlRGF0YVZpZXcocmVhbG1OYW1lLCBzcGVjLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgdXBkYXRlRGF0YVZpZXcocmVhbG1OYW1lLCBzcGVjLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlRGF0YVZpZXdcIiwgdHJ1ZSkpLmZvcih0aGlzLnVwZGF0ZURhdGFWaWV3KTtcbiAgICAgICAgYXdhaXQgdGhpcy5kYXRhVmlld1NlcnZpY2UudXBkYXRlRGF0YVZpZXcocmVhbG1OYW1lLCBzcGVjLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlRGF0YVZpZXdzKHJlYWxtTmFtZSwgZGF0YVZpZXdzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlRGF0YVZpZXdzXCIsIHRydWUpKS5mb3IodGhpcy5jcmVhdGVEYXRhVmlld3MpO1xuICAgICAgICBhd2FpdCB0aGlzLmRhdGFWaWV3U2VydmljZS5jcmVhdGVEYXRhVmlld3MocmVhbG1OYW1lLCBkYXRhVmlld3MgPz8gW10sIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBzZXREZWZhdWx0RGF0YVZpZXcocmVhbG1OYW1lLCBkYXRhVmlld0lkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwic2V0RGVmYXVsdERhdGFWaWV3XCIsIHRydWUpKS5mb3IodGhpcy5zZXREZWZhdWx0RGF0YVZpZXcpO1xuICAgICAgICBhd2FpdCB0aGlzLmRhdGFWaWV3U2VydmljZS5zZXREZWZhdWx0RGF0YVZpZXcocmVhbG1OYW1lLCBkYXRhVmlld0lkLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgY2xvbmVEZWZhdWx0RGFzaGJvYXJkcyhyZWFsbU5hbWUsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjbG9uZURlZmF1bHREYXNoYm9hcmRzXCIsIHRydWUpKS5mb3IodGhpcy5jbG9uZURlZmF1bHREYXNoYm9hcmRzKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGFzaGJvYXJkU2VydmljZS5jbG9uZURlZmF1bHREYXNoYm9hcmRzKHJlYWxtTmFtZSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZVJvbGUocmVhbG1OYW1lLCBwYXlsb2FkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlUm9sZVwiLCB0cnVlKSkuZm9yKHRoaXMuY3JlYXRlUm9sZSk7XG4gICAgICAgIGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuY3JlYXRlUm9sZShyZWFsbU5hbWUsIHBheWxvYWQsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyB1cGRhdGVSb2xlKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInVwZGF0ZVJvbGVcIiwgdHJ1ZSkpLmZvcih0aGlzLnVwZGF0ZVJvbGUpO1xuICAgICAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLnVwZGF0ZVJvbGUocmVhbG1OYW1lLCBwYXlsb2FkLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlVXNlcih1c2VyLCByZWFsbU5hbWUsIHJvbGVOYW1lcywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZVVzZXJcIiwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZVVzZXIpO1xuICAgICAgICBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmNyZWF0ZVVzZXIodXNlciwgcmVhbG1OYW1lLCByb2xlTmFtZXMgPz8gW10sIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyB1cGRhdGVVc2VyKHVzZXIsIHJlYWxtTmFtZSwgcm9sZU5hbWVzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlVXNlclwiLCB0cnVlKSkuZm9yKHRoaXMudXBkYXRlVXNlcik7XG4gICAgICAgIGF3YWl0IHRoaXMudXNlclNlcnZpY2UudXBkYXRlVXNlcih1c2VyLCByZWFsbU5hbWUsIHJvbGVOYW1lcyA/PyBbXSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHZlcmlmeVNwYWNlU2V0dXAocmVhbG1OYW1lLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidmVyaWZ5U3BhY2VTZXR1cFwiLCB0cnVlKSkuZm9yKHRoaXMudmVyaWZ5U3BhY2VTZXR1cCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGFzaGJvYXJkU2VydmljZS52ZXJpZnlTcGFjZVNldHVwKHJlYWxtTmFtZSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGNyZWF0ZUh0dHBDbGllbnQoY29uZmlnKSB7XG4gICAgICAgIHJldHVybiBBeGlvcy5jcmVhdGUoe1xuICAgICAgICAgICAgYmFzZVVSTDogYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9YCxcbiAgICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IHRoaXMuaXNQcm9kdWN0aW9uKCksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUzJsaVlXNWhVMlZ5ZG1salpTNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTlyYVdKaGJtRXZjMlZ5ZG1salpYTXZTMmxpWVc1aFUyVnlkbWxqWlM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hQUVVGUExFVkJRVVVzWVVGQllTeEZRVUZGTEUxQlFVMHNlVUpCUVhsQ0xFTkJRVU03UVVGRmVFUXNUMEZCVHl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU03UVVGUmNFUXNUMEZCVHl4TFFVRjNRaXhOUVVGTkxFOUJRVThzUTBGQlF6dEJRVU0zUXl4UFFVRlBMRXRCUVVzc1MwRkJTeXhOUVVGTkxGbEJRVmtzUTBGQlF6dEJRVVZ3UXl4UFFVRlBMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNaME5CUVRaQ08wRkJRekZFTEU5QlFVOHNSVUZCUlN4eFFrRkJjVUlzUlVGQlJTeHRRMEZCWjBNN1FVRkRhRVVzVDBGQlR5eEZRVUZGTEdsQ1FVRnBRaXhGUVVGRkxDdENRVUUwUWp0QlFVTjRSQ3hQUVVGUExFVkJRVVVzYVVKQlFXbENMRVZCUVVVc0swSkJRVFJDTzBGQlEzaEVMRTlCUVU4c1JVRkJSU3h6UWtGQmMwSXNSVUZCUlN4dlEwRkJhVU03UVVGRGJFVXNUMEZCVHl4RlFVRkZMR2xDUVVGcFFpeEZRVUZGTEN0Q1FVRTBRanRCUVUxNFJEczdPenRIUVVsSE8wRkJRMGdzVFVGQlRTeFBRVUZQTEdGQlFXTXNVMEZCVVN4clFrRkhiRU03U1VGaFF6dFJRVU5GTEV0QlFVc3NSVUZCUlN4RFFVRkRPMGxCUTFZc1EwRkJRenRKUVVWVExGbEJRVms3VVVGRGNFSXNUMEZCVHl4RFFVRkRMRU5CUVVNc1lVRkJZU3hGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZEZGtNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUXpsQ0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkRaQ3hIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU5zUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEZsQlFWa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkROVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8xRkJRM1pDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRWE5DTEVOQlFVTTdVVUZETDBNc1RVRkJUU3hoUVVGaExFZEJRVFpDTzFsQlF6bERMRWRCUVVjc1RVRkJUVHRaUVVOVUxGbEJRVmtzUlVGQlJTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU03VTBGRE0wTXNRMEZCUXp0UlFVTkdMRWxCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzWVVGQllTeERRVUZETzFGQlJUZENMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzU1VGQlNTeHJRa0ZCYTBJc1JVRkJSU3hEUVVGRE8xRkJRemRETEUxQlFVMHNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhWUVVGVkxFTkJRVU1zWVVGQllTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRPVVFzU1VGQlNTeERRVUZETEdWQlFXVXNSMEZCUnl4SlFVRkpMSEZDUVVGeFFpeEZRVUZGTEVOQlFVTTdVVUZEYmtRc1RVRkJUU3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEZWQlFWVXNRMEZCUXl4aFFVRmhMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU5xUlN4SlFVRkpMRU5CUVVNc1YwRkJWeXhIUVVGSExFbEJRVWtzYVVKQlFXbENMRVZCUVVVc1EwRkJRenRSUVVNelF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1ZVRkJWU3hEUVVGRExHRkJRV0VzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUXpkRUxFbEJRVWtzUTBGQlF5eFhRVUZYTEVkQlFVY3NTVUZCU1N4cFFrRkJhVUlzUlVGQlJTeERRVUZETzFGQlF6TkRMRTFCUVUwc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFZRVUZWTEVOQlFVTXNZVUZCWVN4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRE4wUXNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeEhRVUZITEVsQlFVa3NjMEpCUVhOQ0xFVkJRVVVzUTBGQlF6dFJRVU55UkN4TlFVRk5MRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4VlFVRlZMRU5CUVVNc1lVRkJZU3hGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEYkVVc1NVRkJTU3hEUVVGRExGZEJRVmNzUjBGQlJ5eEpRVUZKTEdsQ1FVRnBRaXhGUVVGRkxFTkJRVU03VVVGRE0wTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExGVkJRVlVzUTBGQlF5eGhRVUZoTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVVM1JDeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1VVRkRjRVFzU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNN1VVRkRkRUlzVDBGQlR5eEZRVUZGTEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJRenRKUVVNMVFpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR2xDUVVGcFFpeERRVU55UWl4TlFVRXdRaXhGUVVNeFFpeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRzFDUVVGdFFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTnVSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF6dFJRVU01UWl4TlFVRk5MR1ZCUVdVc1IwRkJSeXhOUVVGTkxFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTTVReXhOUVVGTkxGTkJRVk1zUjBGQlJ5eGxRVUZsTEVOQlFVTXNTMEZCU3l4RFFVRkRPMUZCUTNoRExFbEJRVWtzUTBGQlF6dFpRVU5JTEUxQlFVMHNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhYUVVGWExFTkJRMnBETEZOQlFWTXNSVUZEVkN4bFFVRmxMRU5CUVVNc1MwRkJTeXhKUVVGSkxFVkJRVVVzUlVGRE0wSXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGQlF5eFBRVUZQTEV0QlFVc3NSVUZCUlN4RFFVRkRPMWxCUTJZc1NVRkJTU3hEUVVGRExFTkJRVU1zUzBGQlN5eFpRVUZaTEdGQlFXRXNRMEZCUXp0blFrRkJSU3hOUVVGTkxFdEJRVXNzUTBGQlF6dFJRVU55UkN4RFFVRkRPMUZCUlVRc1RVRkJUU3hYUVVGWExFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zYzBKQlFYTkNMRU5CUTNCRkxGTkJRVk1zUlVGRFZDeEhRVUZITEU5QlFVOHNRMEZEV0N4RFFVRkRPMUZCUTBZc1NVRkJTU3hsUVVGbExFTkJRVU1zVlVGQlZTeEpRVUZKTEZkQlFWY3NSVUZCUlN4RFFVRkRPMWxCUXpsRExHVkJRV1VzUTBGQlF5eFZRVUZWTEVkQlFVY3NSVUZCUlN4SFFVRkhMR1ZCUVdVc1EwRkJReXhWUVVGVkxFVkJRVVVzVTBGQlV5eEZRVUZGTEZkQlFWY3NSVUZCUlN4RFFVRkRPMUZCUTNwR0xFTkJRVU03VVVGRlJDeE5RVUZOTEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc1pVRkJaU3hEUVVONFF5eFRRVUZUTEVWQlExUXNaVUZCWlN4RFFVRkRMRk5CUVZNc1JVRkRla0lzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0UlFVTkdMRTFCUVUwc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhUUVVGVExFVkJRVVVzVTBGQlV5eEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRhRVlzVFVGQlRTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGVExFVkJRVVVzWlVGQlpTeERRVUZETEVsQlFVa3NTVUZCU1N4RlFVRkZMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU55Uml4TlFVRk5MRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVlVGQlZTeERRVU12UWl4bFFVRmxMRU5CUVVNc1dVRkJXU3hGUVVNMVFpeFRRVUZUTEVWQlExUXNVMEZCVXl4RlFVTlVMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRFJpeE5RVUZOTEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVVndSU3hQUVVGUExHVkJRV1VzUTBGQlF6dEpRVU42UWl4RFFVRkRPMGxCUlVRc2VVSkJRWGxDTEVOQlFVTXNUMEZSZWtJN1VVRkRReXhQUVVGUExFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXg1UWtGQmVVSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVOc1JTeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkRaaXhUUVVGcFFpeEZRVU5xUWl4UFFVRXJReXhGUVVNdlF5eEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMR0ZCUVdFc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRE4wTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzFGQlEzaENMRTFCUVUwc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eFhRVUZYTEVOQlFVTXNVMEZCVXl4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzUkZMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zVjBGQlZ5eERRVU5tTEZOQlFXbENMRVZCUTJwQ0xFOUJRVzFETEVWQlEyNURMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzWVVGQllTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTTNReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN1VVRkRlRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRmRCUVZjc1EwRkJReXhUUVVGVExFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRkRVVzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUTJZc1UwRkJhVUlzUlVGRGFrSXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hoUVVGaExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlF6ZERMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0UlFVTjRRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNWMEZCVnl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzBsQlF6ZEVMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zWTBGQll5eERRVU5zUWl4VFFVRnBRaXhGUVVOcVFpeEpRVUV3UWl4RlFVTXhRaXhIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU5zUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEdkQ1FVRm5RaXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU5vUkN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTTdVVUZETTBJc1RVRkJUU3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEdOQlFXTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1NVRkJTU3hGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEZWtVc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eGpRVUZqTEVOQlEyeENMRk5CUVdsQ0xFVkJRMnBDTEVsQlFUQkNMRVZCUXpGQ0xFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEyeENMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNaMEpCUVdkQ0xFVkJRVVVzU1VGQlNTeERRVUZETEVOQlEyaEVMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXp0UlFVTXpRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNZMEZCWXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hKUVVGSkxFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTjZSU3hEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEdWQlFXVXNRMEZEYmtJc1UwRkJhVUlzUlVGRGFrSXNVMEZCTmtNc1JVRkROME1zUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4cFFrRkJhVUlzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZEYWtRc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRPMUZCUXpWQ0xFMUJRVTBzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4bFFVRmxMRU5CUTNoRExGTkJRVk1zUlVGRFZDeFRRVUZUTEVsQlFVa3NSVUZCUlN4RlFVTm1MRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR3RDUVVGclFpeERRVU4wUWl4VFFVRnBRaXhGUVVOcVFpeFZRVUU0UWl4RlFVTTVRaXhIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU5zUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEc5Q1FVRnZRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU53UkN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJRenRSUVVNdlFpeE5RVUZOTEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc2EwSkJRV3RDTEVOQlF6TkRMRk5CUVZNc1JVRkRWQ3hWUVVGVkxFVkJRMVlzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zYzBKQlFYTkNMRU5CUXpGQ0xGTkJRV2xDTEVWQlEycENMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzZDBKQlFYZENMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRM2hFTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4RFFVRkRPMUZCUTI1RExFOUJRVThzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExITkNRVUZ6UWl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzBsQlF6ZEZMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zVlVGQlZTeERRVU5rTEZOQlFXbENMRVZCUTJwQ0xFOUJRVGhETEVWQlF6bERMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzV1VGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTTFReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRka0lzVFVGQlRTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGVExFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRjRVVzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUTJRc1UwRkJhVUlzUlVGRGFrSXNUMEZCYTBNc1JVRkRiRU1zUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4WlFVRlpMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRelZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU4yUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVlVGQlZTeERRVUZETEZOQlFWTXNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU53UlN4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExGVkJRVlVzUTBGRFpDeEpRVUZuUWl4RlFVTm9RaXhUUVVGcFFpeEZRVU5xUWl4VFFVRXJRaXhGUVVNdlFpeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRmxCUVZrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRE5VTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzFGQlEzWkNMRTFCUVUwc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFZRVUZWTEVOQlF5OUNMRWxCUVVrc1JVRkRTaXhUUVVGVExFVkJRMVFzVTBGQlV5eEpRVUZKTEVWQlFVVXNSVUZEWml4SFFVRkhMRTlCUVU4c1EwRkRXQ3hEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUTJRc1NVRkJaMElzUlVGRGFFSXNVMEZCYVVJc1JVRkRha0lzVTBGQkswSXNSVUZETDBJc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUXpWRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVOMlFpeE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1ZVRkJWU3hEUVVNdlFpeEpRVUZKTEVWQlEwb3NVMEZCVXl4RlFVTlVMRk5CUVZNc1NVRkJTU3hGUVVGRkxFVkJRMllzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zWjBKQlFXZENMRU5CUTNCQ0xGTkJRV2xDTEVWQlEycENMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRMnhFTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRPMUZCUXpkQ0xFMUJRVTBzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzUkZMRU5CUVVNN1NVRkZUeXhuUWtGQlowSXNRMEZCUXl4TlFVRjVRanRSUVVOb1JDeFBRVUZQTEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNN1dVRkRiRUlzVDBGQlR5eEZRVUZGTEVkQlFVY3NUVUZCVFN4RFFVRkRMRkZCUVZFc1RVRkJUU3hOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTzFsQlF6bERMR05CUVdNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTzFsQlF6RkNMRlZCUVZVc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTTdaMEpCUXpGQ0xHdENRVUZyUWl4RlFVRkZMRWxCUVVrc1EwRkJReXhaUVVGWkxFVkJRVVU3WVVGRGVFTXNRMEZCUXp0VFFVTklMRU5CUVVNc1EwRkJRenRKUVVOTUxFTkJRVU03UTBGRFJpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJRU52Ym1ac2FXTjBSWEp5YjNJZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyUmlMV1JsWTI5eVlYUnZjbk5jSWp0Y2JtbHRjRzl5ZENCN0lFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp5QjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZZMjl5WlZ3aU8xeHVhVzF3YjNKMElIc2dRMnhwWlc1MFFtRnpaV1JUWlhKMmFXTmxJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdkSGx3WlNCN1hHNGdJRXRwWW1GdVlVUmhkR0ZXYVdWM1EyOXVabWxuTEZ4dUlDQkxhV0poYm1GU2IyeGxRMjl1Wm1sbkxGeHVJQ0JMYVdKaGJtRlRaWFIxY0VOdmJtWnBaeXhjYmlBZ1MybGlZVzVoVTNCaFkyVkRiMjVtYVdjc1hHNGdJRXRwWW1GdVlWVnpaWElzWEc1OUlHWnliMjBnWENJdUxpOTBlWEJsYzF3aU8xeHVhVzF3YjNKMElFRjRhVzl6TENCN0lFRjRhVzl6U1c1emRHRnVZMlVnZlNCbWNtOXRJRndpWVhocGIzTmNJanRjYm1sdGNHOXlkQ0FxSUdGeklHaDBkSEJ6SUdaeWIyMGdYQ0p1YjJSbE9taDBkSEJ6WENJN1hHNWNibWx0Y0c5eWRDQjdJRXRwWW1GdVlWTndZV05sVTJWeWRtbGpaU0I5SUdaeWIyMGdYQ0l1TDB0cFltRnVZVk53WVdObFUyVnlkbWxqWlZ3aU8xeHVhVzF3YjNKMElIc2dTMmxpWVc1aFJHRjBZVlpwWlhkVFpYSjJhV05sSUgwZ1puSnZiU0JjSWk0dlMybGlZVzVoUkdGMFlWWnBaWGRUWlhKMmFXTmxYQ0k3WEc1cGJYQnZjblFnZXlCTGFXSmhibUZTYjJ4bFUyVnlkbWxqWlNCOUlHWnliMjBnWENJdUwwdHBZbUZ1WVZKdmJHVlRaWEoyYVdObFhDSTdYRzVwYlhCdmNuUWdleUJMYVdKaGJtRlZjMlZ5VTJWeWRtbGpaU0I5SUdaeWIyMGdYQ0l1TDB0cFltRnVZVlZ6WlhKVFpYSjJhV05sWENJN1hHNXBiWEJ2Y25RZ2V5QkxhV0poYm1GRVlYTm9ZbTloY21SVFpYSjJhV05sSUgwZ1puSnZiU0JjSWk0dlMybGlZVzVoUkdGemFHSnZZWEprVTJWeWRtbGpaVndpTzF4dWFXMXdiM0owSUhzZ1MybGlZVzVoUVhWMGFGTmxjblpwWTJVZ2ZTQm1jbTl0SUZ3aUxpOUxhV0poYm1GQmRYUm9VMlZ5ZG1salpWd2lPMXh1WEc1MGVYQmxJRXRwWW1GdVlWSjFiblJwYldWVFpYUjFjRU52Ym1acFp5QTlJRXRwWW1GdVlWTmxkSFZ3UTI5dVptbG5JQ1lnZTF4dUlDQnBjMUJ5YjJSMVkzUnBiMjRvS1RvZ1ltOXZiR1ZoYmp0Y2JuMDdYRzVjYmk4cUtseHVJQ29nUUdOc1lYTnpJRXRwWW1GdVlWTmxjblpwWTJWY2JpQXFJRUJ6ZFcxdFlYSjVJRTl5WTJobGMzUnlZWFJsY3lCTGFXSmhibUVnYzJWMGRYQWdZVzVrSUhCeWIzWnBjMmx2Ym1sdVp5Qm1iRzkzY3k1Y2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCQ2IyOTBjeUIwYUdVZ2JHOTNaWEl0YkdWMlpXd2dTMmxpWVc1aElITmxjblpwWTJWekxDQmpiMjl5WkdsdVlYUmxjeUJqY21WaGRHbHZiaUJ2WmlCemNHRmpaWE1zSUdSaGRHRWdkbWxsZDNNc0lISnZiR1Z6TENCMWMyVnljeXdnWkdGemFHSnZZWEprY3l3Z1lXNWtJR1Y0Y0c5elpYTWdhR1ZzY0dWeUlHMWxkR2h2WkhNZ1ptOXlJR1Z0WW1Wa0lGVlNUSE1nWVc1a0lHOXlaMkZ1YVhwaGRHbHZiaUJ6WlhSMWNDNWNiaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRXRwWW1GdVlWTmxjblpwWTJVZ1pYaDBaVzVrY3lCRGJHbGxiblJDWVhObFpGTmxjblpwWTJVOFhHNGdJRUY0YVc5elNXNXpkR0Z1WTJVc1hHNGdJRXRwWW1GdVlWTmxkSFZ3UTI5dVptbG5YRzQrSUh0Y2JpQWdjSEp2ZEdWamRHVmtJSE53WVdObFUyVnlkbWxqWlNFNklFdHBZbUZ1WVZOd1lXTmxVMlZ5ZG1salpUdGNibHh1SUNCd2NtOTBaV04wWldRZ1pHRjBZVlpwWlhkVFpYSjJhV05sSVRvZ1MybGlZVzVoUkdGMFlWWnBaWGRUWlhKMmFXTmxPMXh1WEc0Z0lIQnliM1JsWTNSbFpDQnliMnhsVTJWeWRtbGpaU0U2SUV0cFltRnVZVkp2YkdWVFpYSjJhV05sTzF4dVhHNGdJSEJ5YjNSbFkzUmxaQ0IxYzJWeVUyVnlkbWxqWlNFNklFdHBZbUZ1WVZWelpYSlRaWEoyYVdObE8xeHVYRzRnSUhCeWIzUmxZM1JsWkNCa1lYTm9ZbTloY21SVFpYSjJhV05sSVRvZ1MybGlZVzVoUkdGemFHSnZZWEprVTJWeWRtbGpaVHRjYmx4dUlDQndjbTkwWldOMFpXUWdZWFYwYUZObGNuWnBZMlVoT2lCTGFXSmhibUZCZFhSb1UyVnlkbWxqWlR0Y2JseHVJQ0JqYjI1emRISjFZM1J2Y2lncElIdGNiaUFnSUNCemRYQmxjaWdwTzF4dUlDQjlYRzVjYmlBZ2NISnZkR1ZqZEdWa0lHbHpVSEp2WkhWamRHbHZiaWdwT2lCaWIyOXNaV0Z1SUh0Y2JpQWdJQ0J5WlhSMWNtNGdJVnRjSW1SbGRtVnNiM0J0Wlc1MFhDSXNJRndpYkc5allXeGNJbDB1YVc1amJIVmtaWE1vWEc0Z0lDQWdJQ0J3Y205alpYTnpMbVZ1ZGx0Y0lrNVBSRVZmUlU1V1hDSmRJRDgvSUZ3aVhDSmNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2FXNXBkR2xoYkdsNlpTaGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIc2dZMjl1Wm1sbk9pQkxhV0poYm1GVFpYUjFjRU52Ym1acFp6c2dZMnhwWlc1ME9pQkJlR2x2YzBsdWMzUmhibU5sSUgwK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aWFXNXBkR2xoYkdsNlpWd2lMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdWFXNXBkR2xoYkdsNlpTazdYRzRnSUNBZ1kyOXVjM1FnWTI5dVptbG5JRDBnWTNSNFFYSm5jMXN3WFNCaGN5QkxhV0poYm1GVFpYUjFjRU52Ym1acFp6dGNiaUFnSUNCamIyNXpkQ0J5ZFc1MGFXMWxRMjl1Wm1sbk9pQkxhV0poYm1GU2RXNTBhVzFsVTJWMGRYQkRiMjVtYVdjZ1BTQjdYRzRnSUNBZ0lDQXVMaTVqYjI1bWFXY3NYRzRnSUNBZ0lDQnBjMUJ5YjJSMVkzUnBiMjQ2SUhSb2FYTXVhWE5RY205a2RXTjBhVzl1TG1KcGJtUW9kR2hwY3lrc1hHNGdJQ0FnZlR0Y2JpQWdJQ0IwYUdsekxsOWpiMjVtYVdjZ1BTQnlkVzUwYVcxbFEyOXVabWxuTzF4dVhHNGdJQ0FnZEdocGN5NXpjR0ZqWlZObGNuWnBZMlVnUFNCdVpYY2dTMmxpWVc1aFUzQmhZMlZUWlhKMmFXTmxLQ2s3WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTV6Y0dGalpWTmxjblpwWTJVdWFXNXBkR2xoYkdsNlpTaHlkVzUwYVcxbFEyOXVabWxuTENBdUxpNWpkSGhCY21kektUdGNiaUFnSUNCMGFHbHpMbVJoZEdGV2FXVjNVMlZ5ZG1salpTQTlJRzVsZHlCTGFXSmhibUZFWVhSaFZtbGxkMU5sY25acFkyVW9LVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbVJoZEdGV2FXVjNVMlZ5ZG1salpTNXBibWwwYVdGc2FYcGxLSEoxYm5ScGJXVkRiMjVtYVdjc0lDNHVMbU4wZUVGeVozTXBPMXh1SUNBZ0lIUm9hWE11Y205c1pWTmxjblpwWTJVZ1BTQnVaWGNnUzJsaVlXNWhVbTlzWlZObGNuWnBZMlVvS1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5KdmJHVlRaWEoyYVdObExtbHVhWFJwWVd4cGVtVW9jblZ1ZEdsdFpVTnZibVpwWnl3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUNBZ2RHaHBjeTUxYzJWeVUyVnlkbWxqWlNBOUlHNWxkeUJMYVdKaGJtRlZjMlZ5VTJWeWRtbGpaU2dwTzF4dUlDQWdJR0YzWVdsMElIUm9hWE11ZFhObGNsTmxjblpwWTJVdWFXNXBkR2xoYkdsNlpTaHlkVzUwYVcxbFEyOXVabWxuTENBdUxpNWpkSGhCY21kektUdGNiaUFnSUNCMGFHbHpMbVJoYzJoaWIyRnlaRk5sY25acFkyVWdQU0J1WlhjZ1MybGlZVzVoUkdGemFHSnZZWEprVTJWeWRtbGpaU2dwTzF4dUlDQWdJR0YzWVdsMElIUm9hWE11WkdGemFHSnZZWEprVTJWeWRtbGpaUzVwYm1sMGFXRnNhWHBsS0hKMWJuUnBiV1ZEYjI1bWFXY3NJQzR1TG1OMGVFRnlaM01wTzF4dUlDQWdJSFJvYVhNdVlYVjBhRk5sY25acFkyVWdQU0J1WlhjZ1MybGlZVzVoUVhWMGFGTmxjblpwWTJVb0tUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxtRjFkR2hUWlhKMmFXTmxMbWx1YVhScFlXeHBlbVVvY25WdWRHbHRaVU52Ym1acFp5d2dMaTR1WTNSNFFYSm5jeWs3WEc1Y2JpQWdJQ0JqYjI1emRDQmpiR2xsYm5RZ1BTQjBhR2x6TG1OeVpXRjBaVWgwZEhCRGJHbGxiblFvY25WdWRHbHRaVU52Ym1acFp5azdYRzRnSUNBZ2RHaHBjeTVmWTJ4cFpXNTBJRDBnWTJ4cFpXNTBPMXh1SUNBZ0lISmxkSFZ5YmlCN0lHTnZibVpwWnl3Z1kyeHBaVzUwSUgwN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCelpYUjFjRTl5WjJGdWFYcGhkR2x2YmloY2JpQWdJQ0JqYjI1bWFXYy9PaUJMYVdKaGJtRlRaWFIxY0VOdmJtWnBaeXhjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQRXRwWW1GdVlWTmxkSFZ3UTI5dVptbG5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbk5sZEhWd1QzSm5ZVzVwZW1GMGFXOXVYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NXpaWFIxY0U5eVoyRnVhWHBoZEdsdmJpazdYRzRnSUNBZ1kyOXVjM1FnWldabVpXTjBhWFpsUTI5dVptbG5JRDBnWTI5dVptbG5JRDgvSUhSb2FYTXVZMjl1Wm1sbk8xeHVJQ0FnSUdOdmJuTjBJSEpsWVd4dFRtRnRaU0E5SUdWbVptVmpkR2wyWlVOdmJtWnBaeTV5WldGc2JUdGNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTV6Y0dGalpWTmxjblpwWTJVdVkzSmxZWFJsVTNCaFkyVW9YRzRnSUNBZ0lDQWdJSEpsWVd4dFRtRnRaU3hjYmlBZ0lDQWdJQ0FnWldabVpXTjBhWFpsUTI5dVptbG5Mbk53WVdObElEOC9JSHQ5TEZ4dUlDQWdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dWeWNtOXlLU0I3WEc0Z0lDQWdJQ0JwWmlBb0lTaGxjbkp2Y2lCcGJuTjBZVzVqWlc5bUlFTnZibVpzYVdOMFJYSnliM0lwS1NCMGFISnZkeUJsY25KdmNqdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0JrWVhOb1ltOWhjbVJKWkNBOUlHRjNZV2wwSUhSb2FYTXVaR0Z6YUdKdllYSmtVMlZ5ZG1salpTNWpiRzl1WlVSbFptRjFiSFJFWVhOb1ltOWhjbVJ6S0Z4dUlDQWdJQ0FnY21WaGJHMU9ZVzFsTEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lDQWdhV1lnS0dWbVptVmpkR2wyWlVOdmJtWnBaeTVrWVhOb1ltOWhjbVJ6SUNZbUlHUmhjMmhpYjJGeVpFbGtLU0I3WEc0Z0lDQWdJQ0JsWm1abFkzUnBkbVZEYjI1bWFXY3VaR0Z6YUdKdllYSmtjeUE5SUhzZ0xpNHVaV1ptWldOMGFYWmxRMjl1Wm1sbkxtUmhjMmhpYjJGeVpITXNJR1JoYzJoaWIyRnlaRG9nWkdGemFHSnZZWEprU1dRZ2ZUdGNiaUFnSUNCOVhHNWNiaUFnSUNCaGQyRnBkQ0IwYUdsekxtUmhkR0ZXYVdWM1UyVnlkbWxqWlM1amNtVmhkR1ZFWVhSaFZtbGxkM01vWEc0Z0lDQWdJQ0J5WldGc2JVNWhiV1VzWEc0Z0lDQWdJQ0JsWm1abFkzUnBkbVZEYjI1bWFXY3VaR0YwWVZacFpYZHpMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NWtZWFJoVm1sbGQxTmxjblpwWTJVdWMyVjBSR1ZtWVhWc2RFUmhkR0ZXYVdWM0tISmxZV3h0VG1GdFpTd2dkVzVrWldacGJtVmtMQ0F1TGk1amRIaEJjbWR6S1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5KdmJHVlRaWEoyYVdObExtTnlaV0YwWlZKdmJHVW9jbVZoYkcxT1lXMWxMQ0JsWm1abFkzUnBkbVZEYjI1bWFXY3VjbTlzWlNBL1B5QjdmU3dnTGk0dVkzUjRRWEpuY3lrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1MWMyVnlVMlZ5ZG1salpTNWpjbVZoZEdWVmMyVnlLRnh1SUNBZ0lDQWdaV1ptWldOMGFYWmxRMjl1Wm1sbkxuSmxZV3h0UVhCcFZYTmxjaXhjYmlBZ0lDQWdJSEpsWVd4dFRtRnRaU3hjYmlBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVaR0Z6YUdKdllYSmtVMlZ5ZG1salpTNTJaWEpwWm5sVGNHRmpaVk5sZEhWd0tISmxZV3h0VG1GdFpTd2dMaTR1WTNSNFFYSm5jeWs3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdaV1ptWldOMGFYWmxRMjl1Wm1sbk8xeHVJQ0I5WEc1Y2JpQWdaMlZ1WlhKaGRHVkVZWE5vWW05aGNtUkZiV0psWkZWeWJDaHZjSFJwYjI1ek9pQjdYRzRnSUNBZ2MzQmhZMlU2SUhOMGNtbHVaenRjYmlBZ0lDQmtZWE5vWW05aGNtUkpaRG9nYzNSeWFXNW5PMXh1SUNBZ0lITm9iM2RVYVcxbFJtbHNkR1Z5UHpvZ1ltOXZiR1ZoYmp0Y2JpQWdJQ0J6YUc5M1VYVmxjbmxKYm5CMWREODZJR0p2YjJ4bFlXNDdYRzRnSUNBZ2MyaHZkMFpwYkhSbGNrSmhjajg2SUdKdmIyeGxZVzQ3WEc0Z0lDQWdhR2xrWlZCaGJtVnNWR2wwYkdWelB6b2dZbTl2YkdWaGJqdGNiaUFnSUNCMGFXMWxVbUZ1WjJVL09pQjdJR1p5YjIwNklITjBjbWx1WnpzZ2RHODZJSE4wY21sdVp5QjlPMXh1SUNCOUtUb2djM1J5YVc1bklIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWtZWE5vWW05aGNtUlRaWEoyYVdObExtZGxibVZ5WVhSbFJHRnphR0p2WVhKa1JXMWlaV1JWY213b2IzQjBhVzl1Y3lrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCamNtVmhkR1ZUY0dGalpTaGNiaUFnSUNCeVpXRnNiVTVoYldVNklITjBjbWx1Wnl4Y2JpQWdJQ0J3WVhsc2IyRmtPaUJRWVhKMGFXRnNQRXRwWW1GdVlWTndZV05sUTI5dVptbG5QaUI4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lZM0psWVhSbFUzQmhZMlZjSWl3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbU55WldGMFpWTndZV05sS1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5Od1lXTmxVMlZ5ZG1salpTNWpjbVZoZEdWVGNHRmpaU2h5WldGc2JVNWhiV1VzSUhCaGVXeHZZV1FzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2RYQmtZWFJsVTNCaFkyVW9YRzRnSUNBZ2NtVmhiRzFPWVcxbE9pQnpkSEpwYm1jc1hHNGdJQ0FnY0dGNWJHOWhaRG9nVUdGeWRHbGhiRHhMYVdKaGJtRlRjR0ZqWlVOdmJtWnBaejRzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6SUgwZ1BTQW9YRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0luVndaR0YwWlZOd1lXTmxYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NTFjR1JoZEdWVGNHRmpaU2s3WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTV6Y0dGalpWTmxjblpwWTJVdWRYQmtZWFJsVTNCaFkyVW9jbVZoYkcxT1lXMWxMQ0J3WVhsc2IyRmtMQ0F1TGk1amRIaEJjbWR6S1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdSbGJHVjBaVk53WVdObEtGeHVJQ0FnSUhKbFlXeHRUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1hDSmtaV3hsZEdWVGNHRmpaVndpTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVaR1ZzWlhSbFUzQmhZMlVwTzF4dUlDQWdJR0YzWVdsMElIUm9hWE11YzNCaFkyVlRaWEoyYVdObExtUmxiR1YwWlZOd1lXTmxLSEpsWVd4dFRtRnRaU3dnTGk0dVkzUjRRWEpuY3lrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCamNtVmhkR1ZFWVhSaFZtbGxkeWhjYmlBZ0lDQnlaV0ZzYlU1aGJXVTZJSE4wY21sdVp5eGNiaUFnSUNCemNHVmpPaUJMYVdKaGJtRkVZWFJoVm1sbGQwTnZibVpwWnl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lZM0psWVhSbFJHRjBZVlpwWlhkY0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG1OeVpXRjBaVVJoZEdGV2FXVjNLVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbVJoZEdGV2FXVjNVMlZ5ZG1salpTNWpjbVZoZEdWRVlYUmhWbWxsZHloeVpXRnNiVTVoYldVc0lITndaV01zSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2RYQmtZWFJsUkdGMFlWWnBaWGNvWEc0Z0lDQWdjbVZoYkcxT1lXMWxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2MzQmxZem9nUzJsaVlXNWhSR0YwWVZacFpYZERiMjVtYVdjc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJblZ3WkdGMFpVUmhkR0ZXYVdWM1hDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1MWNHUmhkR1ZFWVhSaFZtbGxkeWs3WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTVrWVhSaFZtbGxkMU5sY25acFkyVXVkWEJrWVhSbFJHRjBZVlpwWlhjb2NtVmhiRzFPWVcxbExDQnpjR1ZqTENBdUxpNWpkSGhCY21kektUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHTnlaV0YwWlVSaGRHRldhV1YzY3loY2JpQWdJQ0J5WldGc2JVNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQmtZWFJoVm1sbGQzTTZJRXRwWW1GdVlVUmhkR0ZXYVdWM1EyOXVabWxuVzEwZ2ZDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW1OeVpXRjBaVVJoZEdGV2FXVjNjMXdpTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVZM0psWVhSbFJHRjBZVlpwWlhkektUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxtUmhkR0ZXYVdWM1UyVnlkbWxqWlM1amNtVmhkR1ZFWVhSaFZtbGxkM01vWEc0Z0lDQWdJQ0J5WldGc2JVNWhiV1VzWEc0Z0lDQWdJQ0JrWVhSaFZtbGxkM01nUHo4Z1cxMHNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklITmxkRVJsWm1GMWJIUkVZWFJoVm1sbGR5aGNiaUFnSUNCeVpXRnNiVTVoYldVNklITjBjbWx1Wnl4Y2JpQWdJQ0JrWVhSaFZtbGxkMGxrT2lCemRISnBibWNnZkNCMWJtUmxabWx1WldRc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbk5sZEVSbFptRjFiSFJFWVhSaFZtbGxkMXdpTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVjMlYwUkdWbVlYVnNkRVJoZEdGV2FXVjNLVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbVJoZEdGV2FXVjNVMlZ5ZG1salpTNXpaWFJFWldaaGRXeDBSR0YwWVZacFpYY29YRzRnSUNBZ0lDQnlaV0ZzYlU1aGJXVXNYRzRnSUNBZ0lDQmtZWFJoVm1sbGQwbGtMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QmpiRzl1WlVSbFptRjFiSFJFWVhOb1ltOWhjbVJ6S0Z4dUlDQWdJSEpsWVd4dFRtRnRaVG9nYzNSeWFXNW5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThjM1J5YVc1bklId2dkVzVrWldacGJtVmtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbU5zYjI1bFJHVm1ZWFZzZEVSaGMyaGliMkZ5WkhOY0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG1Oc2IyNWxSR1ZtWVhWc2RFUmhjMmhpYjJGeVpITXBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbVJoYzJoaWIyRnlaRk5sY25acFkyVXVZMnh2Ym1WRVpXWmhkV3gwUkdGemFHSnZZWEprY3loeVpXRnNiVTVoYldVc0lDNHVMbU4wZUVGeVozTXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdZM0psWVhSbFVtOXNaU2hjYmlBZ0lDQnlaV0ZzYlU1aGJXVTZJSE4wY21sdVp5eGNiaUFnSUNCd1lYbHNiMkZrT2lCUVlYSjBhV0ZzUEV0cFltRnVZVkp2YkdWRGIyNW1hV2MrSUh3Z2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0pqY21WaGRHVlNiMnhsWENJc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTVqY21WaGRHVlNiMnhsS1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5KdmJHVlRaWEoyYVdObExtTnlaV0YwWlZKdmJHVW9jbVZoYkcxT1lXMWxMQ0J3WVhsc2IyRmtMQ0F1TGk1amRIaEJjbWR6S1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUhWd1pHRjBaVkp2YkdVb1hHNGdJQ0FnY21WaGJHMU9ZVzFsT2lCemRISnBibWNzWEc0Z0lDQWdjR0Y1Ykc5aFpEb2dVR0Z5ZEdsaGJEeExhV0poYm1GU2IyeGxRMjl1Wm1sblBpeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpZFhCa1lYUmxVbTlzWlZ3aUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11ZFhCa1lYUmxVbTlzWlNrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1eWIyeGxVMlZ5ZG1salpTNTFjR1JoZEdWU2IyeGxLSEpsWVd4dFRtRnRaU3dnY0dGNWJHOWhaQ3dnTGk0dVkzUjRRWEpuY3lrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCamNtVmhkR1ZWYzJWeUtGeHVJQ0FnSUhWelpYSTZJRXRwWW1GdVlWVnpaWElzWEc0Z0lDQWdjbVZoYkcxT1lXMWxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NtOXNaVTVoYldWek9pQnpkSEpwYm1kYlhTQjhJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aVkzSmxZWFJsVlhObGNsd2lMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdVkzSmxZWFJsVlhObGNpazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NTFjMlZ5VTJWeWRtbGpaUzVqY21WaGRHVlZjMlZ5S0Z4dUlDQWdJQ0FnZFhObGNpeGNiaUFnSUNBZ0lISmxZV3h0VG1GdFpTeGNiaUFnSUNBZ0lISnZiR1ZPWVcxbGN5QS9QeUJiWFN4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nZFhCa1lYUmxWWE5sY2loY2JpQWdJQ0IxYzJWeU9pQkxhV0poYm1GVmMyVnlMRnh1SUNBZ0lISmxZV3h0VG1GdFpUb2djM1J5YVc1bkxGeHVJQ0FnSUhKdmJHVk9ZVzFsY3pvZ2MzUnlhVzVuVzEwZ2ZDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW5Wd1pHRjBaVlZ6WlhKY0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG5Wd1pHRjBaVlZ6WlhJcE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWRYTmxjbE5sY25acFkyVXVkWEJrWVhSbFZYTmxjaWhjYmlBZ0lDQWdJSFZ6WlhJc1hHNGdJQ0FnSUNCeVpXRnNiVTVoYldVc1hHNGdJQ0FnSUNCeWIyeGxUbUZ0WlhNZ1B6OGdXMTBzWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJSFpsY21sbWVWTndZV05sVTJWMGRYQW9YRzRnSUNBZ2NtVmhiRzFPWVcxbE9pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJblpsY21sbWVWTndZV05sVTJWMGRYQmNJaXdnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxuWmxjbWxtZVZOd1lXTmxVMlYwZFhBcE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdVpHRnphR0p2WVhKa1UyVnlkbWxqWlM1MlpYSnBabmxUY0dGalpWTmxkSFZ3S0hKbFlXeHRUbUZ0WlN3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR055WldGMFpVaDBkSEJEYkdsbGJuUW9ZMjl1Wm1sbk9pQkxhV0poYm1GVFpYUjFjRU52Ym1acFp5azZJRUY0YVc5elNXNXpkR0Z1WTJVZ2UxeHVJQ0FnSUhKbGRIVnliaUJCZUdsdmN5NWpjbVZoZEdVb2UxeHVJQ0FnSUNBZ1ltRnpaVlZTVERvZ1lDUjdZMjl1Wm1sbkxuQnliM1J2WTI5c2ZUb3ZMeVI3WTI5dVptbG5MbWh2YzNSOVlDeGNiaUFnSUNBZ0lIWmhiR2xrWVhSbFUzUmhkSFZ6T2lBb0tTQTlQaUIwY25WbExGeHVJQ0FnSUNBZ2FIUjBjSE5CWjJWdWREb2dibVYzSUdoMGRIQnpMa0ZuWlc1MEtIdGNiaUFnSUNBZ0lDQWdjbVZxWldOMFZXNWhkWFJvYjNKcGVtVmtPaUIwYUdsekxtbHpVSEp2WkhWamRHbHZiaWdwTEZ4dUlDQWdJQ0FnZlNrc1hHNGdJQ0FnZlNrN1hHNGdJSDFjYm4xY2JpSmRmUT09Il19
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9raWJhbmEvc2VydmljZXMvS2liYW5hU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRcEQsT0FBTyxLQUF3QixNQUFNLE9BQU8sQ0FBQztBQUM3QyxPQUFPLEtBQUssS0FBSyxNQUFNLFlBQVksQ0FBQztBQUVwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0NBQTZCO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQ0FBZ0M7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLCtCQUE0QjtBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsK0JBQTRCO0FBQ3hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxvQ0FBaUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLCtCQUE0QjtBQUN4RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUscUJBQWtCO0FBTXhEOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sYUFBYyxTQUFRLGtCQUdsQztJQWFDO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRVMsWUFBWTtRQUNwQixPQUFPLENBQUMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FDOUIsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUNkLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ2xCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUM1QyxDQUFDLEdBQUcsQ0FBQyxJ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aEQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRTtZQUM5QyxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtZQUMxQixVQUFVLEVBQUUsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUMxQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFO2FBQ3hDLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25mbGljdEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBNYXliZUNvbnRleHR1YWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENsaWVudEJhc2VkU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHR5cGUge1xuICBLaWJhbmFEYXRhVmlld0NvbmZpZyxcbiAgS2liYW5hUm9sZUNvbmZpZyxcbiAgS2liYW5hU2V0dXBDb25maWcsXG4gIEtpYmFuYVNwYWNlQ29uZmlnLFxuICBLaWJhbmFVc2VyLFxufSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCBBeGlvcywgeyBBeGlvc0luc3RhbmNlIH0gZnJvbSBcImF4aW9zXCI7XG5pbXBvcnQgKiBhcyBodHRwcyBmcm9tIFwibm9kZTpodHRwc1wiO1xuXG5pbXBvcnQgeyBLaWJhbmFTcGFjZVNlcnZpY2UgfSBmcm9tIFwiLi9LaWJhbmFTcGFjZVNlcnZpY2VcIjtcbmltcG9ydCB7IEtpYmFuYURhdGFWaWV3U2VydmljZSB9IGZyb20gXCIuL0tpYmFuYURhdGFWaWV3U2VydmljZVwiO1xuaW1wb3J0IHsgS2liYW5hUm9sZVNlcnZpY2UgfSBmcm9tIFwiLi9LaWJhbmFSb2xlU2VydmljZVwiO1xuaW1wb3J0IHsgS2liYW5hVXNlclNlcnZpY2UgfSBmcm9tIFwiLi9LaWJhbmFVc2VyU2VydmljZVwiO1xuaW1wb3J0IHsgS2liYW5hRGFzaGJvYXJkU2VydmljZSB9IGZyb20gXCIuL0tpYmFuYURhc2hib2FyZFNlcnZpY2VcIjtcbmltcG9ydCB7IEtpYmFuYUF1dGhTZXJ2aWNlIH0gZnJvbSBcIi4vS2liYW5hQXV0aFNlcnZpY2VcIjtcbmltcG9ydCB7IHNldEtpYmFuYVByb2R1Y3Rpb25SZXNvbHZlciB9IGZyb20gXCIuL3J1bnRpbWVcIjtcblxudHlwZSBLaWJhbmFSdW50aW1lU2V0dXBDb25maWcgPSBLaWJhbmFTZXR1cENvbmZpZyAmIHtcbiAgaXNQcm9kdWN0aW9uKCk6IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEBjbGFzcyBLaWJhbmFTZXJ2aWNlXG4gKiBAc3VtbWFyeSBPcmNoZXN0cmF0ZXMgS2liYW5hIHNldHVwIGFuZCBwcm92aXNpb25pbmcgZmxvd3MuXG4gKiBAZGVzY3JpcHRpb24gQm9vdHMgdGhlIGxvd2VyLWxldmVsIEtpYmFuYSBzZXJ2aWNlcywgY29vcmRpbmF0ZXMgY3JlYXRpb24gb2Ygc3BhY2VzLCBkYXRhIHZpZXdzLCByb2xlcywgdXNlcnMsIGRhc2hib2FyZHMsIGFuZCBleHBvc2VzIGhlbHBlciBtZXRob2RzIGZvciBlbWJlZCBVUkxzIGFuZCBvcmdhbml6YXRpb24gc2V0dXAuXG4gKi9cbmV4cG9ydCBjbGFzcyBLaWJhbmFTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZXJ2aWNlPFxuICBBeGlvc0luc3RhbmNlLFxuICBLaWJhbmFTZXR1cENvbmZpZ1xuPiB7XG4gIHByb3RlY3RlZCBzcGFjZVNlcnZpY2UhOiBLaWJhbmFTcGFjZVNlcnZpY2U7XG5cbiAgcHJvdGVjdGVkIGRhdGFWaWV3U2VydmljZSE6IEtpYmFuYURhdGFWaWV3U2VydmljZTtcblxuICBwcm90ZWN0ZWQgcm9sZVNlcnZpY2UhOiBLaWJhbmFSb2xlU2VydmljZTtcblxuICBwcm90ZWN0ZWQgdXNlclNlcnZpY2UhOiBLaWJhbmFVc2VyU2VydmljZTtcblxuICBwcm90ZWN0ZWQgZGFzaGJvYXJkU2VydmljZSE6IEtpYmFuYURhc2hib2FyZFNlcnZpY2U7XG5cbiAgcHJvdGVjdGVkIGF1dGhTZXJ2aWNlITogS2liYW5hQXV0aFNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc1Byb2R1Y3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFbXCJkZXZlbG9wbWVudFwiLCBcImxvY2FsXCJdLmluY2x1ZGVzKFxuICAgICAgcHJvY2Vzcy5lbnZbXCJOT0RFX0VOVlwiXSA/PyBcIlwiXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGluaXRpYWxpemUoXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx7IGNvbmZpZzogS2liYW5hU2V0dXBDb25maWc7IGNsaWVudDogQXhpb3NJbnN0YW5jZSB9PiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmluaXRpYWxpemUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF0gYXMgS2liYW5hU2V0dXBDb25maWc7XG4gICAgY29uc3QgcnVudGltZUNvbmZpZzogS2liYW5hUnVudGltZVNldHVwQ29uZmlnID0ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgaXNQcm9kdWN0aW9uOiB0aGlzLmlzUHJvZHVjdGlvbi5iaW5kKHRoaXMpLFxuICAgIH07XG4gICAgdGhpcy5fY29uZmlnID0gcnVudGltZUNvbmZpZztcbiAgICBzZXRLaWJhbmFQcm9kdWN0aW9uUmVzb2x2ZXIodGhpcy5pc1Byb2R1Y3Rpb24uYmluZCh0aGlzKSk7XG5cbiAgICB0aGlzLnNwYWNlU2VydmljZSA9IG5ldyBLaWJhbmFTcGFjZVNlcnZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLnNwYWNlU2VydmljZS5pbml0aWFsaXplKHJ1bnRpbWVDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgIHRoaXMuZGF0YVZpZXdTZXJ2aWNlID0gbmV3IEtpYmFuYURhdGFWaWV3U2VydmljZSgpO1xuICAgIGF3YWl0IHRoaXMuZGF0YVZpZXdTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgdGhpcy5yb2xlU2VydmljZSA9IG5ldyBLaWJhbmFSb2xlU2VydmljZSgpO1xuICAgIGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlID0gbmV3IEtpYmFuYVVzZXJTZXJ2aWNlKCk7XG4gICAgYXdhaXQgdGhpcy51c2VyU2VydmljZS5pbml0aWFsaXplKHJ1bnRpbWVDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgIHRoaXMuZGFzaGJvYXJkU2VydmljZSA9IG5ldyBLaWJhbmFEYXNoYm9hcmRTZXJ2aWNlKCk7XG4gICAgYXdhaXQgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgdGhpcy5hdXRoU2VydmljZSA9IG5ldyBLaWJhbmFBdXRoU2VydmljZSgpO1xuICAgIGF3YWl0IHRoaXMuYXV0aFNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcblxuICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuY3JlYXRlSHR0cENsaWVudChydW50aW1lQ29uZmlnKTtcbiAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7XG4gICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQgfTtcbiAgfVxuXG4gIGFzeW5jIHNldHVwT3JnYW5pemF0aW9uKFxuICAgIGNvbmZpZz86IEtpYmFuYVNldHVwQ29uZmlnLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8S2liYW5hU2V0dXBDb25maWc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwic2V0dXBPcmdhbml6YXRpb25cIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnNldHVwT3JnYW5pemF0aW9uKTtcbiAgICBjb25zdCBlZmZlY3RpdmVDb25maWcgPSBjb25maWcgPz8gdGhpcy5jb25maWc7XG4gICAgY29uc3QgcmVhbG1OYW1lID0gZWZmZWN0aXZlQ29uZmlnLnJlYWxtO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnNwYWNlU2VydmljZS5jcmVhdGVTcGFjZShcbiAgICAgICAgcmVhbG1OYW1lLFxuICAgICAgICBlZmZlY3RpdmVDb25maWcuc3BhY2UgPz8ge30sXG4gICAgICAgIC4uLmN0eEFyZ3NcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgQ29uZmxpY3RFcnJvcikpIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGNvbnN0IGRhc2hib2FyZElkID0gYXdhaXQgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmNsb25lRGVmYXVsdERhc2hib2FyZHMoXG4gICAgICByZWFsbU5hbWUsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBpZiAoZWZmZWN0aXZlQ29uZmlnLmRhc2hib2FyZHMgJiYgZGFzaGJvYXJkSWQpIHtcbiAgICAgIGVmZmVjdGl2ZUNvbmZpZy5kYXNoYm9hcmRzID0geyAuLi5lZmZlY3RpdmVDb25maWcuZGFzaGJvYXJkcywgZGFzaGJvYXJkOiBkYXNoYm9hcmRJZCB9O1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuZGF0YVZpZXdTZXJ2aWNlLmNyZWF0ZURhdGFWaWV3cyhcbiAgICAgIHJlYWxtTmFtZSxcbiAgICAgIGVmZmVjdGl2ZUNvbmZpZy5kYXRhVmlld3MsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmRhdGFWaWV3U2VydmljZS5zZXREZWZhdWx0RGF0YVZpZXcocmVhbG1OYW1lLCB1bmRlZmluZWQsIC4uLmN0eEFyZ3MpO1xuICAgIGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuY3JlYXRlUm9sZShyZWFsbU5hbWUsIGVmZmVjdGl2ZUNvbmZpZy5yb2xlID8/IHt9LCAuLi5jdHhBcmdzKTtcbiAgICBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmNyZWF0ZVVzZXIoXG4gICAgICBlZmZlY3RpdmVDb25maWcucmVhbG1BcGlVc2VyLFxuICAgICAgcmVhbG1OYW1lLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnZlcmlmeVNwYWNlU2V0dXAocmVhbG1OYW1lLCAuLi5jdHhBcmdzKTtcblxuICAgIHJldHVybiBlZmZlY3RpdmVDb25maWc7XG4gIH1cblxuICBnZW5lcmF0ZURhc2hib2FyZEVtYmVkVXJsKG9wdGlvbnM6IHtcbiAgICBzcGFjZTogc3RyaW5nO1xuICAgIGRhc2hib2FyZElkOiBzdHJpbmc7XG4gICAgc2hvd1RpbWVGaWx0ZXI/OiBib29sZWFuO1xuICAgIHNob3dRdWVyeUlucHV0PzogYm9vbGVhbjtcbiAgICBzaG93RmlsdGVyQmFyPzogYm9vbGVhbjtcbiAgICBoaWRlUGFuZWxUaXRsZXM/OiBib29sZWFuO1xuICAgIHRpbWVSYW5nZT86IHsgZnJvbTogc3RyaW5nOyB0bzogc3RyaW5nIH07XG4gIH0pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRhc2hib2FyZFNlcnZpY2UuZ2VuZXJhdGVEYXNoYm9hcmRFbWJlZFVybChvcHRpb25zKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVNwYWNlKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHBheWxvYWQ6IFBhcnRpYWw8S2liYW5hU3BhY2VDb25maWc+IHwgdW5kZWZpbmVkLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVTcGFjZVwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY3JlYXRlU3BhY2UpO1xuICAgIGF3YWl0IHRoaXMuc3BhY2VTZXJ2aWNlLmNyZWF0ZVNwYWNlKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVTcGFjZShcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBQYXJ0aWFsPEtpYmFuYVNwYWNlQ29uZmlnPixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlU3BhY2VcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnVwZGF0ZVNwYWNlKTtcbiAgICBhd2FpdCB0aGlzLnNwYWNlU2VydmljZS51cGRhdGVTcGFjZShyZWFsbU5hbWUsIHBheWxvYWQsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlU3BhY2UoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImRlbGV0ZVNwYWNlXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5kZWxldGVTcGFjZSk7XG4gICAgYXdhaXQgdGhpcy5zcGFjZVNlcnZpY2UuZGVsZXRlU3BhY2UocmVhbG1OYW1lLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZURhdGFWaWV3KFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHNwZWM6IEtpYmFuYURhdGFWaWV3Q29uZmlnLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVEYXRhVmlld1wiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY3JlYXRlRGF0YVZpZXcpO1xuICAgIGF3YWl0IHRoaXMuZGF0YVZpZXdTZXJ2aWNlLmNyZWF0ZURhdGFWaWV3KHJlYWxtTmFtZSwgc3BlYywgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVEYXRhVmlldyhcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBzcGVjOiBLaWJhbmFEYXRhVmlld0NvbmZpZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlRGF0YVZpZXdcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnVwZGF0ZURhdGFWaWV3KTtcbiAgICBhd2FpdCB0aGlzLmRhdGFWaWV3U2VydmljZS51cGRhdGVEYXRhVmlldyhyZWFsbU5hbWUsIHNwZWMsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRGF0YVZpZXdzKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIGRhdGFWaWV3czogS2liYW5hRGF0YVZpZXdDb25maWdbXSB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlRGF0YVZpZXdzXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGVEYXRhVmlld3MpO1xuICAgIGF3YWl0IHRoaXMuZGF0YVZpZXdTZXJ2aWNlLmNyZWF0ZURhdGFWaWV3cyhcbiAgICAgIHJlYWxtTmFtZSxcbiAgICAgIGRhdGFWaWV3cyA/PyBbXSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2V0RGVmYXVsdERhdGFWaWV3KFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIGRhdGFWaWV3SWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwic2V0RGVmYXVsdERhdGFWaWV3XCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5zZXREZWZhdWx0RGF0YVZpZXcpO1xuICAgIGF3YWl0IHRoaXMuZGF0YVZpZXdTZXJ2aWNlLnNldERlZmF1bHREYXRhVmlldyhcbiAgICAgIHJlYWxtTmFtZSxcbiAgICAgIGRhdGFWaWV3SWQsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGNsb25lRGVmYXVsdERhc2hib2FyZHMoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY2xvbmVEZWZhdWx0RGFzaGJvYXJkc1wiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY2xvbmVEZWZhdWx0RGFzaGJvYXJkcyk7XG4gICAgcmV0dXJuIHRoaXMuZGFzaGJvYXJkU2VydmljZS5jbG9uZURlZmF1bHREYXNoYm9hcmRzKHJlYWxtTmFtZSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVSb2xlKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHBheWxvYWQ6IFBhcnRpYWw8S2liYW5hUm9sZUNvbmZpZz4gfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZVJvbGVcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNyZWF0ZVJvbGUpO1xuICAgIGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuY3JlYXRlUm9sZShyZWFsbU5hbWUsIHBheWxvYWQsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlUm9sZShcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBQYXJ0aWFsPEtpYmFuYVJvbGVDb25maWc+LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ1cGRhdGVSb2xlXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy51cGRhdGVSb2xlKTtcbiAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLnVwZGF0ZVJvbGUocmVhbG1OYW1lLCBwYXlsb2FkLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVVzZXIoXG4gICAgdXNlcjogS2liYW5hVXNlcixcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICByb2xlTmFtZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVVc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGVVc2VyKTtcbiAgICBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmNyZWF0ZVVzZXIoXG4gICAgICB1c2VyLFxuICAgICAgcmVhbG1OYW1lLFxuICAgICAgcm9sZU5hbWVzID8/IFtdLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVVc2VyKFxuICAgIHVzZXI6IEtpYmFuYVVzZXIsXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgcm9sZU5hbWVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlVXNlclwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMudXBkYXRlVXNlcik7XG4gICAgYXdhaXQgdGhpcy51c2VyU2VydmljZS51cGRhdGVVc2VyKFxuICAgICAgdXNlcixcbiAgICAgIHJlYWxtTmFtZSxcbiAgICAgIHJvbGVOYW1lcyA/PyBbXSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5U3BhY2VTZXR1cChcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidmVyaWZ5U3BhY2VTZXR1cFwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMudmVyaWZ5U3BhY2VTZXR1cCk7XG4gICAgYXdhaXQgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLnZlcmlmeVNwYWNlU2V0dXAocmVhbG1OYW1lLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSHR0cENsaWVudChjb25maWc6IEtpYmFuYVNldHVwQ29uZmlnKTogQXhpb3NJbnN0YW5jZSB7XG4gICAgcmV0dXJuIEF4aW9zLmNyZWF0ZSh7XG4gICAgICBiYXNlVVJMOiBgJHtjb25maWcucHJvdG9jb2x9Oi8vJHtjb25maWcuaG9zdH1gLFxuICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IHRoaXMuaXNQcm9kdWN0aW9uKCksXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxufVxuIl19
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIktpYmFuYVNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkRBQXdEO0FBQ3hELHlDQUFvRDtBQUNwRCxrREFBMEI7QUFDMUIsa0RBQW9DO0FBQ3BDLG1FQUE2RDtBQUM3RCx5RUFBbUU7QUFDbkUsaUVBQTJEO0FBQzNELGlFQUEyRDtBQUMzRCwyRUFBcUU7QUFDckUsaUVBQTJEO0FBQzNELDZDQUEyRDtBQUMzRDs7OztHQUlHO0FBQ0gsTUFBYSxhQUFjLFNBQVEseUJBQWtCO0lBQ2pEO1FBQ0ksS0FBSyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsWUFBWTtRQUNSLE9BQU8sQ0FBQyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBQ0QsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUk7UUFDcEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixNQUFNLGFBQWEsR0FBRztZQUNsQixHQUFHLE1BQU07WUFDVCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQzdDLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQztRQUM3QixJQUFBLHdDQUEyQixFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFD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TUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUNELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJO1FBQ3JDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbkcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUNELGdCQUFnQixDQUFDLE1BQU07UUFDbkIsT0FBTyxlQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRTtZQUM5QyxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtZQUMxQixVQUFVLEVBQUUsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUN4QixrQkFBa0IsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFO2FBQzFDLENBQUM7U0FDTCxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0o7QUF0SEQsc0NBc0hDO0FBQ0Qsa3F0QkFBa3F0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZsaWN0RXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENsaWVudEJhc2VkU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IEF4aW9zIGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcbmltcG9ydCB7IEtpYmFuYVNwYWNlU2VydmljZSB9IGZyb20gXCIuL0tpYmFuYVNwYWNlU2VydmljZS5qc1wiO1xuaW1wb3J0IHsgS2liYW5hRGF0YVZpZXdTZXJ2aWNlIH0gZnJvbSBcIi4vS2liYW5hRGF0YVZpZXdTZXJ2aWNlLmpzXCI7XG5pbXBvcnQgeyBLaWJhbmFSb2xlU2VydmljZSB9IGZyb20gXCIuL0tpYmFuYVJvbGVTZXJ2aWNlLmpzXCI7XG5pbXBvcnQgeyBLaWJhbmFVc2VyU2VydmljZSB9IGZyb20gXCIuL0tpYmFuYVVzZXJTZXJ2aWNlLmpzXCI7XG5pbXBvcnQgeyBLaWJhbmFEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSBcIi4vS2liYW5hRGFzaGJvYXJkU2VydmljZS5qc1wiO1xuaW1wb3J0IHsgS2liYW5hQXV0aFNlcnZpY2UgfSBmcm9tIFwiLi9LaWJhbmFBdXRoU2VydmljZS5qc1wiO1xuaW1wb3J0IHsgc2V0S2liYW5hUHJvZHVjdGlvblJlc29sdmVyIH0gZnJvbSBcIi4vcnVudGltZS5qc1wiO1xuLyoqXG4gKiBAY2xhc3MgS2liYW5hU2VydmljZVxuICogQHN1bW1hcnkgT3JjaGVzdHJhdGVzIEtpYmFuYSBzZXR1cCBhbmQgcHJvdmlzaW9uaW5nIGZsb3dzLlxuICogQGRlc2NyaXB0aW9uIEJvb3RzIHRoZSBsb3dlci1sZXZlbCBLaWJhbmEgc2VydmljZXMsIGNvb3JkaW5hdGVzIGNyZWF0aW9uIG9mIHNwYWNlcywgZGF0YSB2aWV3cywgcm9sZXMsIHVzZXJzLCBkYXNoYm9hcmRzLCBhbmQgZXhwb3NlcyBoZWxwZXIgbWV0aG9kcyBmb3IgZW1iZWQgVVJMcyBhbmQgb3JnYW5pemF0aW9uIHNldHVwLlxuICovXG5leHBvcnQgY2xhc3MgS2liYW5hU2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuICAgIGlzUHJvZHVjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICFbXCJkZXZlbG9wbWVudFwiLCBcImxvY2FsXCJdLmluY2x1ZGVzKHByb2Nlc3MuZW52W1wiTk9ERV9FTlZcIl0gPz8gXCJcIik7XG4gICAgfVxuICAgIGFzeW5jIGluaXRpYWxpemUoLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSkpLmZvcih0aGlzLmluaXRpYWxpemUpO1xuICAgICAgICBjb25zdCBjb25maWcgPSBjdHhBcmdzWzBdO1xuICAgICAgICBjb25zdCBydW50aW1lQ29uZmlnID0ge1xuICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgICAgaXNQcm9kdWN0aW9uOiB0aGlzLmlzUHJvZHVjdGlvbi5iaW5kKHRoaXMpLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9jb25maWcgPSBydW50aW1lQ29uZmlnO1xuICAgICAgICBzZXRLaWJhbmFQcm9kdWN0aW9uUmVzb2x2ZXIodGhpcy5pc1Byb2R1Y3Rpb24uYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMuc3BhY2VTZXJ2aWNlID0gbmV3IEtpYmFuYVNwYWNlU2VydmljZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLnNwYWNlU2VydmljZS5pbml0aWFsaXplKHJ1bnRpbWVDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgICAgICB0aGlzLmRhdGFWaWV3U2VydmljZSA9IG5ldyBLaWJhbmFEYXRhVmlld1NlcnZpY2UoKTtcbiAgICAgICAgYXdhaXQgdGhpcy5kYXRhVmlld1NlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgdGhpcy5yb2xlU2VydmljZSA9IG5ldyBLaWJhbmFSb2xlU2VydmljZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgICAgIHRoaXMudXNlclNlcnZpY2UgPSBuZXcgS2liYW5hVXNlclNlcnZpY2UoKTtcbiAgICAgICAgYXdhaXQgdGhpcy51c2VyU2VydmljZS5pbml0aWFsaXplKHJ1bnRpbWVDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgICAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UgPSBuZXcgS2liYW5hRGFzaGJvYXJkU2VydmljZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLmRhc2hib2FyZFNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZSA9IG5ldyBLaWJhbmFBdXRoU2VydmljZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLmF1dGhTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuY3JlYXRlSHR0cENsaWVudChydW50aW1lQ29uZmlnKTtcbiAgICAgICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgICAgICByZXR1cm4geyBjb25maWcsIGNsaWVudCB9O1xuICAgIH1cbiAgICBhc3luYyBzZXR1cE9yZ2FuaXphdGlvbihjb25maWcsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJzZXR1cE9yZ2FuaXphdGlvblwiLCB0cnVlKSkuZm9yKHRoaXMuc2V0dXBPcmdhbml6YXRpb24pO1xuICAgICAgICBjb25zdCBlZmZlY3RpdmVDb25maWcgPSBjb25maWcgPz8gdGhpcy5jb25maWc7XG4gICAgICAgIGNvbnN0IHJlYWxtTmFtZSA9IGVmZmVjdGl2ZUNvbmZpZy5yZWFsbTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc3BhY2VTZXJ2aWNlLmNyZWF0ZVNwYWNlKHJlYWxtTmFtZSwgZWZmZWN0aXZlQ29uZmlnLnNwYWNlID8/IHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgQ29uZmxpY3RFcnJvcikpXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGFzaGJvYXJkSWQgPSBhd2FpdCB0aGlzLmRhc2hib2FyZFNlcnZpY2UuY2xvbmVEZWZhdWx0RGFzaGJvYXJkcyhyZWFsbU5hbWUsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBpZiAoZWZmZWN0aXZlQ29uZmlnLmRhc2hib2FyZHMgJiYgZGFzaGJvYXJkSWQpIHtcbiAgICAgICAgICAgIGVmZmVjdGl2ZUNvbmZpZy5kYXNoYm9hcmRzID0geyAuLi5lZmZlY3RpdmVDb25maWcuZGFzaGJvYXJkcywgZGFzaGJvYXJkOiBkYXNoYm9hcmRJZCB9O1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVZpZXdTZXJ2aWNlLmNyZWF0ZURhdGFWaWV3cyhyZWFsbU5hbWUsIGVmZmVjdGl2ZUNvbmZpZy5kYXRhVmlld3MsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBhd2FpdCB0aGlzLmRhdGFWaWV3U2VydmljZS5zZXREZWZhdWx0RGF0YVZpZXcocmVhbG1OYW1lLCB1bmRlZmluZWQsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmNyZWF0ZVJvbGUocmVhbG1OYW1lLCBlZmZlY3RpdmVDb25maWcucm9sZSA/PyB7fSwgLi4uY3R4QXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMudXNlclNlcnZpY2UuY3JlYXRlVXNlcihlZmZlY3RpdmVDb25maWcucmVhbG1BcGlVc2VyLCByZWFsbU5hbWUsIHVuZGVmaW5lZCwgLi4uY3R4QXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGFzaGJvYXJkU2VydmljZS52ZXJpZnlTcGFjZVNldHVwKHJlYWxtTmFtZSwgLi4uY3R4QXJncyk7XG4gICAgICAgIHJldHVybiBlZmZlY3RpdmVDb25maWc7XG4gICAgfVxuICAgIGdlbmVyYXRlRGFzaGJvYXJkRW1iZWRVcmwob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmdlbmVyYXRlRGFzaGJvYXJkRW1iZWRVcmwob3B0aW9ucyk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZVNwYWNlKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZVNwYWNlXCIsIHRydWUpKS5mb3IodGhpcy5jcmVhdGVTcGFjZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuc3BhY2VTZXJ2aWNlLmNyZWF0ZVNwYWNlKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHVwZGF0ZVNwYWNlKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInVwZGF0ZVNwYWNlXCIsIHRydWUpKS5mb3IodGhpcy51cGRhdGVTcGFjZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuc3BhY2VTZXJ2aWNlLnVwZGF0ZVNwYWNlKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGRlbGV0ZVNwYWNlKHJlYWxtTmFtZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImRlbGV0ZVNwYWNlXCIsIHRydWUpKS5mb3IodGhpcy5kZWxldGVTcGFjZSk7XG4gICAgICAgIGF3YWl0IHRoaXMuc3BhY2VTZXJ2aWNlLmRlbGV0ZVNwYWNlKHJlYWxtTmFtZSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZURhdGFWaWV3KHJlYWxtTmFtZSwgc3BlYywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZURhdGFWaWV3XCIsIHRydWUpKS5mb3IodGhpcy5jcmVhdGVEYXRhVmlldyk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVZpZXdTZXJ2aWNlLmNyZWF0ZURhdGFWaWV3KHJlYWxtTmFtZSwgc3BlYywgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHVwZGF0ZURhdGFWaWV3KHJlYWxtTmFtZSwgc3BlYywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInVwZGF0ZURhdGFWaWV3XCIsIHRydWUpKS5mb3IodGhpcy51cGRhdGVEYXRhVmlldyk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVZpZXdTZXJ2aWNlLnVwZGF0ZURhdGFWaWV3KHJlYWxtTmFtZSwgc3BlYywgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZURhdGFWaWV3cyhyZWFsbU5hbWUsIGRhdGFWaWV3cywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZURhdGFWaWV3c1wiLCB0cnVlKSkuZm9yKHRoaXMuY3JlYXRlRGF0YVZpZXdzKTtcbiAgICAgICAgYXdhaXQgdGhpcy5kYXRhVmlld1NlcnZpY2UuY3JlYXRlRGF0YVZpZXdzKHJlYWxtTmFtZSwgZGF0YVZpZXdzID8/IFtdLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgc2V0RGVmYXVsdERhdGFWaWV3KHJlYWxtTmFtZSwgZGF0YVZpZXdJZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInNldERlZmF1bHREYXRhVmlld1wiLCB0cnVlKSkuZm9yKHRoaXMuc2V0RGVmYXVsdERhdGFWaWV3KTtcbiAgICAgICAgYXdhaXQgdGhpcy5kYXRhVmlld1NlcnZpY2Uuc2V0RGVmYXVsdERhdGFWaWV3KHJlYWxtTmFtZSwgZGF0YVZpZXdJZCwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGNsb25lRGVmYXVsdERhc2hib2FyZHMocmVhbG1OYW1lLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY2xvbmVEZWZhdWx0RGFzaGJvYXJkc1wiLCB0cnVlKSkuZm9yKHRoaXMuY2xvbmVEZWZhdWx0RGFzaGJvYXJkcyk7XG4gICAgICAgIHJldHVybiB0aGlzLmRhc2hib2FyZFNlcnZpY2UuY2xvbmVEZWZhdWx0RGFzaGJvYXJkcyhyZWFsbU5hbWUsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBjcmVhdGVSb2xlKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZVJvbGVcIiwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZVJvbGUpO1xuICAgICAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmNyZWF0ZVJvbGUocmVhbG1OYW1lLCBwYXlsb2FkLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgdXBkYXRlUm9sZShyZWFsbU5hbWUsIHBheWxvYWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ1cGRhdGVSb2xlXCIsIHRydWUpKS5mb3IodGhpcy51cGRhdGVSb2xlKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yb2xlU2VydmljZS51cGRhdGVSb2xlKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZVVzZXIodXNlciwgcmVhbG1OYW1lLCByb2xlTmFtZXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVVc2VyXCIsIHRydWUpKS5mb3IodGhpcy5jcmVhdGVVc2VyKTtcbiAgICAgICAgYXdhaXQgdGhpcy51c2VyU2VydmljZS5jcmVhdGVVc2VyKHVzZXIsIHJlYWxtTmFtZSwgcm9sZU5hbWVzID8/IFtdLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgdXBkYXRlVXNlcih1c2VyLCByZWFsbU5hbWUsIHJvbGVOYW1lcywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInVwZGF0ZVVzZXJcIiwgdHJ1ZSkpLmZvcih0aGlzLnVwZGF0ZVVzZXIpO1xuICAgICAgICBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLnVwZGF0ZVVzZXIodXNlciwgcmVhbG1OYW1lLCByb2xlTmFtZXMgPz8gW10sIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyB2ZXJpZnlTcGFjZVNldHVwKHJlYWxtTmFtZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInZlcmlmeVNwYWNlU2V0dXBcIiwgdHJ1ZSkpLmZvcih0aGlzLnZlcmlmeVNwYWNlU2V0dXApO1xuICAgICAgICBhd2FpdCB0aGlzLmRhc2hib2FyZFNlcnZpY2UudmVyaWZ5U3BhY2VTZXR1cChyZWFsbU5hbWUsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBjcmVhdGVIdHRwQ2xpZW50KGNvbmZpZykge1xuICAgICAgICByZXR1cm4gQXhpb3MuY3JlYXRlKHtcbiAgICAgICAgICAgIGJhc2VVUkw6IGAke2NvbmZpZy5wcm90b2NvbH06Ly8ke2NvbmZpZy5ob3N0fWAsXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiB0aGlzLmlzUHJvZHVjdGlvbigpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVMybGlZVzVoVTJWeWRtbGpaUzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMM055WXk5cmFXSmhibUV2YzJWeWRtbGpaWE12UzJsaVlXNWhVMlZ5ZG1salpTNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRVZCUVVVc1lVRkJZU3hGUVVGRkxFMUJRVTBzZVVKQlFYbENMRU5CUVVNN1FVRkZlRVFzVDBGQlR5eEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRlJjRVFzVDBGQlR5eExRVUYzUWl4TlFVRk5MRTlCUVU4c1EwRkJRenRCUVVNM1F5eFBRVUZQTEV0QlFVc3NTMEZCU3l4TlFVRk5MRmxCUVZrc1EwRkJRenRCUVVWd1F5eFBRVUZQTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzWjBOQlFUWkNPMEZCUXpGRUxFOUJRVThzUlVGQlJTeHhRa0ZCY1VJc1JVRkJSU3h0UTBGQlowTTdRVUZEYUVVc1QwRkJUeXhGUVVGRkxHbENRVUZwUWl4RlFVRkZMQ3RDUVVFMFFqdEJRVU40UkN4UFFVRlBMRVZCUVVVc2FVSkJRV2xDTEVWQlFVVXNLMEpCUVRSQ08wRkJRM2hFTEU5QlFVOHNSVUZCUlN4elFrRkJjMElzUlVGQlJTeHZRMEZCYVVNN1FVRkRiRVVzVDBGQlR5eEZRVUZGTEdsQ1FVRnBRaXhGUVVGRkxDdENRVUUwUWp0QlFVTjRSQ3hQUVVGUExFVkJRVVVzTWtKQlFUSkNMRVZCUVVVc2NVSkJRV3RDTzBGQlRYaEVPenM3TzBkQlNVYzdRVUZEU0N4TlFVRk5MRTlCUVU4c1lVRkJZeXhUUVVGUkxHdENRVWRzUXp0SlFXRkRPMUZCUTBVc1MwRkJTeXhGUVVGRkxFTkJRVU03U1VGRFZpeERRVUZETzBsQlJWTXNXVUZCV1R0UlFVTndRaXhQUVVGUExFTkJRVU1zUTBGQlF5eGhRVUZoTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVOMlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGRE9VSXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zVlVGQlZTeERRVU5rTEVkQlFVY3NTVUZCTmtJN1VVRkZhRU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUTJ4Q0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1dVRkJXU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU0xUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdVVUZEZGtJc1RVRkJUU3hOUVVGTkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCYzBJc1EwRkJRenRSUVVNdlF5eE5RVUZOTEdGQlFXRXNSMEZCTmtJN1dVRkRPVU1zUjBGQlJ5eE5RVUZOTzFsQlExUXNXVUZCV1N4RlFVRkZMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXp0VFFVTXpReXhEUVVGRE8xRkJRMFlzU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4aFFVRmhMRU5CUVVNN1VVRkROMElzTWtKQlFUSkNMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVVeFJDeEpRVUZKTEVOQlFVTXNXVUZCV1N4SFFVRkhMRWxCUVVrc2EwSkJRV3RDTEVWQlFVVXNRMEZCUXp0UlFVTTNReXhOUVVGTkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNWVUZCVlN4RFFVRkRMR0ZCUVdFc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzFGQlF6bEVMRWxCUVVrc1EwRkJReXhsUVVGbExFZEJRVWNzU1VGQlNTeHhRa0ZCY1VJc1JVRkJSU3hEUVVGRE8xRkJRMjVFTEUxQlFVMHNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhWUVVGVkxFTkJRVU1zWVVGQllTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRha1VzU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4SlFVRkpMR2xDUVVGcFFpeEZRVUZGTEVOQlFVTTdVVUZETTBNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEZWQlFWVXNRMEZCUXl4aFFVRmhMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU0zUkN4SlFVRkpMRU5CUVVNc1YwRkJWeXhIUVVGSExFbEJRVWtzYVVKQlFXbENMRVZCUVVVc1EwRkJRenRSUVVNelF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1ZVRkJWU3hEUVVGRExHRkJRV0VzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUXpkRUxFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1IwRkJSeXhKUVVGSkxITkNRVUZ6UWl4RlFVRkZMRU5CUVVNN1VVRkRja1FzVFVGQlRTeEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zVlVGQlZTeERRVUZETEdGQlFXRXNSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRMnhGTEVsQlFVa3NRMEZCUXl4WFFVRlhMRWRCUVVjc1NVRkJTU3hwUWtGQmFVSXNSVUZCUlN4RFFVRkRPMUZCUXpORExFMUJRVTBzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1lVRkJZU3hGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZGTjBRc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzFGQlEzQkVMRWxCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETzFGQlEzUkNMRTlCUVU4c1JVRkJSU3hOUVVGTkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVOQlFVTTdTVUZETlVJc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eHBRa0ZCYVVJc1EwRkRja0lzVFVGQk1FSXNSVUZETVVJc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeHRRa0ZCYlVJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGJrUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1VVRkRPVUlzVFVGQlRTeGxRVUZsTEVkQlFVY3NUVUZCVFN4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03VVVGRE9VTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1pVRkJaU3hEUVVGRExFdEJRVXNzUTBGQlF6dFJRVU40UXl4SlFVRkpMRU5CUVVNN1dVRkRTQ3hOUVVGTkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNWMEZCVnl4RFFVTnFReXhUUVVGVExFVkJRMVFzWlVGQlpTeERRVUZETEV0QlFVc3NTVUZCU1N4RlFVRkZMRVZCUXpOQ0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUVVNc1QwRkJUeXhMUVVGTExFVkJRVVVzUTBGQlF6dFpRVU5tTEVsQlFVa3NRMEZCUXl4RFFVRkRMRXRCUVVzc1dVRkJXU3hoUVVGaExFTkJRVU03WjBKQlFVVXNUVUZCVFN4TFFVRkxMRU5CUVVNN1VVRkRja1FzUTBGQlF6dFJRVVZFTEUxQlFVMHNWMEZCVnl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMSE5DUVVGelFpeERRVU53UlN4VFFVRlRMRVZCUTFRc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dFJRVU5HTEVsQlFVa3NaVUZCWlN4RFFVRkRMRlZCUVZVc1NVRkJTU3hYUVVGWExFVkJRVVVzUTBGQlF6dFpRVU01UXl4bFFVRmxMRU5CUVVNc1ZVRkJWU3hIUVVGSExFVkJRVVVzUjBGQlJ5eGxRVUZsTEVOQlFVTXNWVUZCVlN4RlFVRkZMRk5CUVZNc1JVRkJSU3hYUVVGWExFVkJRVVVzUTBGQlF6dFJRVU42Uml4RFFVRkRPMUZCUlVRc1RVRkJUU3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEdWQlFXVXNRMEZEZUVNc1UwRkJVeXhGUVVOVUxHVkJRV1VzUTBGQlF5eFRRVUZUTEVWQlEzcENMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRFJpeE5RVUZOTEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNVMEZCVXl4RlFVRkZMRk5CUVZNc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEyaEdMRTFCUVUwc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFZRVUZWTEVOQlFVTXNVMEZCVXl4RlFVRkZMR1ZCUVdVc1EwRkJReXhKUVVGSkxFbEJRVWtzUlVGQlJTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRja1lzVFVGQlRTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRlZCUVZVc1EwRkRMMElzWlVGQlpTeERRVUZETEZsQlFWa3NSVUZETlVJc1UwRkJVeXhGUVVOVUxGTkJRVk1zUlVGRFZDeEhRVUZITEU5QlFVOHNRMEZEV0N4RFFVRkRPMUZCUTBZc1RVRkJUU3hKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNVMEZCVXl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRmNFVXNUMEZCVHl4bFFVRmxMRU5CUVVNN1NVRkRla0lzUTBGQlF6dEpRVVZFTEhsQ1FVRjVRaXhEUVVGRExFOUJVWHBDTzFGQlEwTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNlVUpCUVhsQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEYkVVc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlEyWXNVMEZCYVVJc1JVRkRha0lzVDBGQkswTXNSVUZETDBNc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeGhRVUZoTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUXpkRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRSUVVONFFpeE5RVUZOTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1YwRkJWeXhEUVVGRExGTkJRVk1zUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVOMFJTeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkRaaXhUUVVGcFFpeEZRVU5xUWl4UFFVRnRReXhGUVVOdVF5eEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMR0ZCUVdFc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRE4wTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzFGQlEzaENMRTFCUVUwc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eFhRVUZYTEVOQlFVTXNVMEZCVXl4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzUkZMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zVjBGQlZ5eERRVU5tTEZOQlFXbENMRVZCUTJwQ0xFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEyeENMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNZVUZCWVN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVNM1F5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03VVVGRGVFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExGZEJRVmNzUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVNM1JDeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR05CUVdNc1EwRkRiRUlzVTBGQmFVSXNSVUZEYWtJc1NVRkJNRUlzUlVGRE1VSXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3huUWtGQlowSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRhRVFzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8xRkJRek5DTEUxQlFVMHNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhqUVVGakxFTkJRVU1zVTBGQlV5eEZRVUZGTEVsQlFVa3NSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRM3BGTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1kwRkJZeXhEUVVOc1FpeFRRVUZwUWl4RlFVTnFRaXhKUVVFd1FpeEZRVU14UWl4SFFVRkhMRWxCUVRaQ08xRkJSV2hETEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVOc1FpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxHZENRVUZuUWl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVOb1JDeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU03VVVGRE0wSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExHTkJRV01zUTBGQlF5eFRRVUZUTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGVrVXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRMjVDTEZOQlFXbENMRVZCUTJwQ0xGTkJRVFpETEVWQlF6ZERMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzYVVKQlFXbENMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRMnBFTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zUTBGQlF6dFJRVU0xUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zWlVGQlpTeERRVU40UXl4VFFVRlRMRVZCUTFRc1UwRkJVeXhKUVVGSkxFVkJRVVVzUlVGRFppeEhRVUZITEU5QlFVOHNRMEZEV0N4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eHJRa0ZCYTBJc1EwRkRkRUlzVTBGQmFVSXNSVUZEYWtJc1ZVRkJPRUlzUlVGRE9VSXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3h2UWtGQmIwSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRjRVFzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEVOQlFVTTdVVUZETDBJc1RVRkJUU3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEd0Q1FVRnJRaXhEUVVNelF5eFRRVUZUTEVWQlExUXNWVUZCVlN4RlFVTldMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMSE5DUVVGelFpeERRVU14UWl4VFFVRnBRaXhGUVVOcVFpeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMSGRDUVVGM1FpeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTjRSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zUTBGQlF6dFJRVU51UXl4UFFVRlBMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4elFrRkJjMElzUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVNM1JTeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkRaQ3hUUVVGcFFpeEZRVU5xUWl4UFFVRTRReXhGUVVNNVF5eEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRmxCUVZrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRE5VTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzFGQlEzWkNMRTFCUVUwc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFZRVUZWTEVOQlFVTXNVMEZCVXl4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzQkZMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zVlVGQlZTeERRVU5rTEZOQlFXbENMRVZCUTJwQ0xFOUJRV3RETEVWQlEyeERMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzV1VGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTTFReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRka0lzVFVGQlRTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGVExFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRjRVVzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUTJRc1NVRkJaMElzUlVGRGFFSXNVMEZCYVVJc1JVRkRha0lzVTBGQkswSXNSVUZETDBJc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUXpWRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVOMlFpeE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1ZVRkJWU3hEUVVNdlFpeEpRVUZKTEVWQlEwb3NVMEZCVXl4RlFVTlVMRk5CUVZNc1NVRkJTU3hGUVVGRkxFVkJRMllzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zVlVGQlZTeERRVU5rTEVsQlFXZENMRVZCUTJoQ0xGTkJRV2xDTEVWQlEycENMRk5CUVN0Q0xFVkJReTlDTEVkQlFVY3NTVUZCTmtJN1VVRkZhRU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUTJ4Q0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1dVRkJXU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU0xUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdVVUZEZGtJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEZWQlFWVXNRMEZETDBJc1NVRkJTU3hGUVVOS0xGTkJRVk1zUlVGRFZDeFRRVUZUTEVsQlFVa3NSVUZCUlN4RlFVTm1MRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR2RDUVVGblFpeERRVU53UWl4VFFVRnBRaXhGUVVOcVFpeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTnNSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF6dFJRVU0zUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVOMFJTeERRVUZETzBsQlJVOHNaMEpCUVdkQ0xFTkJRVU1zVFVGQmVVSTdVVUZEYUVRc1QwRkJUeXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETzFsQlEyeENMRTlCUVU4c1JVRkJSU3hIUVVGSExFMUJRVTBzUTBGQlF5eFJRVUZSTEUxQlFVMHNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSVHRaUVVNNVF5eGpRVUZqTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1NVRkJTVHRaUVVNeFFpeFZRVUZWTEVWQlFVVXNTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRE8yZENRVU14UWl4clFrRkJhMElzUlVGQlJTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZPMkZCUTNoRExFTkJRVU03VTBGRFNDeERRVUZETEVOQlFVTTdTVUZEVEN4RFFVRkRPME5CUTBZaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QkRiMjVtYkdsamRFVnljbTl5SUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1lpMWtaV052Y21GMGIzSnpYQ0k3WEc1cGJYQnZjblFnZXlCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyTnZjbVZjSWp0Y2JtbHRjRzl5ZENCN0lFTnNhV1Z1ZEVKaGMyVmtVMlZ5ZG1salpTQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZZMjl5WlZ3aU8xeHVhVzF3YjNKMElIUjVjR1VnZTF4dUlDQkxhV0poYm1GRVlYUmhWbWxsZDBOdmJtWnBaeXhjYmlBZ1MybGlZVzVoVW05c1pVTnZibVpwWnl4Y2JpQWdTMmxpWVc1aFUyVjBkWEJEYjI1bWFXY3NYRzRnSUV0cFltRnVZVk53WVdObFEyOXVabWxuTEZ4dUlDQkxhV0poYm1GVmMyVnlMRnh1ZlNCbWNtOXRJRndpTGk0dmRIbHdaWE5jSWp0Y2JtbHRjRzl5ZENCQmVHbHZjeXdnZXlCQmVHbHZjMGx1YzNSaGJtTmxJSDBnWm5KdmJTQmNJbUY0YVc5elhDSTdYRzVwYlhCdmNuUWdLaUJoY3lCb2RIUndjeUJtY205dElGd2libTlrWlRwb2RIUndjMXdpTzF4dVhHNXBiWEJ2Y25RZ2V5QkxhV0poYm1GVGNHRmpaVk5sY25acFkyVWdmU0JtY205dElGd2lMaTlMYVdKaGJtRlRjR0ZqWlZObGNuWnBZMlZjSWp0Y2JtbHRjRzl5ZENCN0lFdHBZbUZ1WVVSaGRHRldhV1YzVTJWeWRtbGpaU0I5SUdaeWIyMGdYQ0l1TDB0cFltRnVZVVJoZEdGV2FXVjNVMlZ5ZG1salpWd2lPMXh1YVcxd2IzSjBJSHNnUzJsaVlXNWhVbTlzWlZObGNuWnBZMlVnZlNCbWNtOXRJRndpTGk5TGFXSmhibUZTYjJ4bFUyVnlkbWxqWlZ3aU8xeHVhVzF3YjNKMElIc2dTMmxpWVc1aFZYTmxjbE5sY25acFkyVWdmU0JtY205dElGd2lMaTlMYVdKaGJtRlZjMlZ5VTJWeWRtbGpaVndpTzF4dWFXMXdiM0owSUhzZ1MybGlZVzVoUkdGemFHSnZZWEprVTJWeWRtbGpaU0I5SUdaeWIyMGdYQ0l1TDB0cFltRnVZVVJoYzJoaWIyRnlaRk5sY25acFkyVmNJanRjYm1sdGNHOXlkQ0I3SUV0cFltRnVZVUYxZEdoVFpYSjJhV05sSUgwZ1puSnZiU0JjSWk0dlMybGlZVzVoUVhWMGFGTmxjblpwWTJWY0lqdGNibWx0Y0c5eWRDQjdJSE5sZEV0cFltRnVZVkJ5YjJSMVkzUnBiMjVTWlhOdmJIWmxjaUI5SUdaeWIyMGdYQ0l1TDNKMWJuUnBiV1ZjSWp0Y2JseHVkSGx3WlNCTGFXSmhibUZTZFc1MGFXMWxVMlYwZFhCRGIyNW1hV2NnUFNCTGFXSmhibUZUWlhSMWNFTnZibVpwWnlBbUlIdGNiaUFnYVhOUWNtOWtkV04wYVc5dUtDazZJR0p2YjJ4bFlXNDdYRzU5TzF4dVhHNHZLaXBjYmlBcUlFQmpiR0Z6Y3lCTGFXSmhibUZUWlhKMmFXTmxYRzRnS2lCQWMzVnRiV0Z5ZVNCUGNtTm9aWE4wY21GMFpYTWdTMmxpWVc1aElITmxkSFZ3SUdGdVpDQndjbTkyYVhOcGIyNXBibWNnWm14dmQzTXVYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdRbTl2ZEhNZ2RHaGxJR3h2ZDJWeUxXeGxkbVZzSUV0cFltRnVZU0J6WlhKMmFXTmxjeXdnWTI5dmNtUnBibUYwWlhNZ1kzSmxZWFJwYjI0Z2IyWWdjM0JoWTJWekxDQmtZWFJoSUhacFpYZHpMQ0J5YjJ4bGN5d2dkWE5sY25Nc0lHUmhjMmhpYjJGeVpITXNJR0Z1WkNCbGVIQnZjMlZ6SUdobGJIQmxjaUJ0WlhSb2IyUnpJR1p2Y2lCbGJXSmxaQ0JWVWt4eklHRnVaQ0J2Y21kaGJtbDZZWFJwYjI0Z2MyVjBkWEF1WEc0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCTGFXSmhibUZUWlhKMmFXTmxJR1Y0ZEdWdVpITWdRMnhwWlc1MFFtRnpaV1JUWlhKMmFXTmxQRnh1SUNCQmVHbHZjMGx1YzNSaGJtTmxMRnh1SUNCTGFXSmhibUZUWlhSMWNFTnZibVpwWjF4dVBpQjdYRzRnSUhCeWIzUmxZM1JsWkNCemNHRmpaVk5sY25acFkyVWhPaUJMYVdKaGJtRlRjR0ZqWlZObGNuWnBZMlU3WEc1Y2JpQWdjSEp2ZEdWamRHVmtJR1JoZEdGV2FXVjNVMlZ5ZG1salpTRTZJRXRwWW1GdVlVUmhkR0ZXYVdWM1UyVnlkbWxqWlR0Y2JseHVJQ0J3Y205MFpXTjBaV1FnY205c1pWTmxjblpwWTJVaE9pQkxhV0poYm1GU2IyeGxVMlZ5ZG1salpUdGNibHh1SUNCd2NtOTBaV04wWldRZ2RYTmxjbE5sY25acFkyVWhPaUJMYVdKaGJtRlZjMlZ5VTJWeWRtbGpaVHRjYmx4dUlDQndjbTkwWldOMFpXUWdaR0Z6YUdKdllYSmtVMlZ5ZG1salpTRTZJRXRwWW1GdVlVUmhjMmhpYjJGeVpGTmxjblpwWTJVN1hHNWNiaUFnY0hKdmRHVmpkR1ZrSUdGMWRHaFRaWEoyYVdObElUb2dTMmxpWVc1aFFYVjBhRk5sY25acFkyVTdYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9LU0I3WEc0Z0lDQWdjM1Z3WlhJb0tUdGNiaUFnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0JwYzFCeWIyUjFZM1JwYjI0b0tUb2dZbTl2YkdWaGJpQjdYRzRnSUNBZ2NtVjBkWEp1SUNGYlhDSmtaWFpsYkc5d2JXVnVkRndpTENCY0lteHZZMkZzWENKZExtbHVZMngxWkdWektGeHVJQ0FnSUNBZ2NISnZZMlZ6Y3k1bGJuWmJYQ0pPVDBSRlgwVk9WbHdpWFNBL1B5QmNJbHdpWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR2x1YVhScFlXeHBlbVVvWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHg3SUdOdmJtWnBaem9nUzJsaVlXNWhVMlYwZFhCRGIyNW1hV2M3SUdOc2FXVnVkRG9nUVhocGIzTkpibk4wWVc1alpTQjlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbWx1YVhScFlXeHBlbVZjSWl3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbWx1YVhScFlXeHBlbVVwTzF4dUlDQWdJR052Ym5OMElHTnZibVpwWnlBOUlHTjBlRUZ5WjNOYk1GMGdZWE1nUzJsaVlXNWhVMlYwZFhCRGIyNW1hV2M3WEc0Z0lDQWdZMjl1YzNRZ2NuVnVkR2x0WlVOdmJtWnBaem9nUzJsaVlXNWhVblZ1ZEdsdFpWTmxkSFZ3UTI5dVptbG5JRDBnZTF4dUlDQWdJQ0FnTGk0dVkyOXVabWxuTEZ4dUlDQWdJQ0FnYVhOUWNtOWtkV04wYVc5dU9pQjBhR2x6TG1selVISnZaSFZqZEdsdmJpNWlhVzVrS0hSb2FYTXBMRnh1SUNBZ0lIMDdYRzRnSUNBZ2RHaHBjeTVmWTI5dVptbG5JRDBnY25WdWRHbHRaVU52Ym1acFp6dGNiaUFnSUNCelpYUkxhV0poYm1GUWNtOWtkV04wYVc5dVVtVnpiMngyWlhJb2RHaHBjeTVwYzFCeWIyUjFZM1JwYjI0dVltbHVaQ2gwYUdsektTazdYRzVjYmlBZ0lDQjBhR2x6TG5Od1lXTmxVMlZ5ZG1salpTQTlJRzVsZHlCTGFXSmhibUZUY0dGalpWTmxjblpwWTJVb0tUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxuTndZV05sVTJWeWRtbGpaUzVwYm1sMGFXRnNhWHBsS0hKMWJuUnBiV1ZEYjI1bWFXY3NJQzR1TG1OMGVFRnlaM01wTzF4dUlDQWdJSFJvYVhNdVpHRjBZVlpwWlhkVFpYSjJhV05sSUQwZ2JtVjNJRXRwWW1GdVlVUmhkR0ZXYVdWM1UyVnlkbWxqWlNncE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdVpHRjBZVlpwWlhkVFpYSjJhV05sTG1sdWFYUnBZV3hwZW1Vb2NuVnVkR2x0WlVOdmJtWnBaeXdnTGk0dVkzUjRRWEpuY3lrN1hHNGdJQ0FnZEdocGN5NXliMnhsVTJWeWRtbGpaU0E5SUc1bGR5QkxhV0poYm1GU2IyeGxVMlZ5ZG1salpTZ3BPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVjbTlzWlZObGNuWnBZMlV1YVc1cGRHbGhiR2w2WlNoeWRXNTBhVzFsUTI5dVptbG5MQ0F1TGk1amRIaEJjbWR6S1R0Y2JpQWdJQ0IwYUdsekxuVnpaWEpUWlhKMmFXTmxJRDBnYm1WM0lFdHBZbUZ1WVZWelpYSlRaWEoyYVdObEtDazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NTFjMlZ5VTJWeWRtbGpaUzVwYm1sMGFXRnNhWHBsS0hKMWJuUnBiV1ZEYjI1bWFXY3NJQzR1TG1OMGVFRnlaM01wTzF4dUlDQWdJSFJvYVhNdVpHRnphR0p2WVhKa1UyVnlkbWxqWlNBOUlHNWxkeUJMYVdKaGJtRkVZWE5vWW05aGNtUlRaWEoyYVdObEtDazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NWtZWE5vWW05aGNtUlRaWEoyYVdObExtbHVhWFJwWVd4cGVtVW9jblZ1ZEdsdFpVTnZibVpwWnl3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUNBZ2RHaHBjeTVoZFhSb1UyVnlkbWxqWlNBOUlHNWxkeUJMYVdKaGJtRkJkWFJvVTJWeWRtbGpaU2dwTzF4dUlDQWdJR0YzWVdsMElIUm9hWE11WVhWMGFGTmxjblpwWTJVdWFXNXBkR2xoYkdsNlpTaHlkVzUwYVcxbFEyOXVabWxuTENBdUxpNWpkSGhCY21kektUdGNibHh1SUNBZ0lHTnZibk4wSUdOc2FXVnVkQ0E5SUhSb2FYTXVZM0psWVhSbFNIUjBjRU5zYVdWdWRDaHlkVzUwYVcxbFEyOXVabWxuS1R0Y2JpQWdJQ0IwYUdsekxsOWpiR2xsYm5RZ1BTQmpiR2xsYm5RN1hHNGdJQ0FnY21WMGRYSnVJSHNnWTI5dVptbG5MQ0JqYkdsbGJuUWdmVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJSE5sZEhWd1QzSm5ZVzVwZW1GMGFXOXVLRnh1SUNBZ0lHTnZibVpwWno4NklFdHBZbUZ1WVZObGRIVndRMjl1Wm1sbkxGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOFMybGlZVzVoVTJWMGRYQkRiMjVtYVdjK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aWMyVjBkWEJQY21kaGJtbDZZWFJwYjI1Y0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG5ObGRIVndUM0puWVc1cGVtRjBhVzl1S1R0Y2JpQWdJQ0JqYjI1emRDQmxabVpsWTNScGRtVkRiMjVtYVdjZ1BTQmpiMjVtYVdjZ1B6OGdkR2hwY3k1amIyNW1hV2M3WEc0Z0lDQWdZMjl1YzNRZ2NtVmhiRzFPWVcxbElEMGdaV1ptWldOMGFYWmxRMjl1Wm1sbkxuSmxZV3h0TzF4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxuTndZV05sVTJWeWRtbGpaUzVqY21WaGRHVlRjR0ZqWlNoY2JpQWdJQ0FnSUNBZ2NtVmhiRzFPWVcxbExGeHVJQ0FnSUNBZ0lDQmxabVpsWTNScGRtVkRiMjVtYVdjdWMzQmhZMlVnUHo4Z2UzMHNYRzRnSUNBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmU0JqWVhSamFDQW9aWEp5YjNJcElIdGNiaUFnSUNBZ0lHbG1JQ2doS0dWeWNtOXlJR2x1YzNSaGJtTmxiMllnUTI5dVpteHBZM1JGY25KdmNpa3BJSFJvY205M0lHVnljbTl5TzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHUmhjMmhpYjJGeVpFbGtJRDBnWVhkaGFYUWdkR2hwY3k1a1lYTm9ZbTloY21SVFpYSjJhV05sTG1Oc2IyNWxSR1ZtWVhWc2RFUmhjMmhpYjJGeVpITW9YRzRnSUNBZ0lDQnlaV0ZzYlU1aGJXVXNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCcFppQW9aV1ptWldOMGFYWmxRMjl1Wm1sbkxtUmhjMmhpYjJGeVpITWdKaVlnWkdGemFHSnZZWEprU1dRcElIdGNiaUFnSUNBZ0lHVm1abVZqZEdsMlpVTnZibVpwWnk1a1lYTm9ZbTloY21SeklEMGdleUF1TGk1bFptWmxZM1JwZG1WRGIyNW1hV2N1WkdGemFHSnZZWEprY3l3Z1pHRnphR0p2WVhKa09pQmtZWE5vWW05aGNtUkpaQ0I5TzF4dUlDQWdJSDFjYmx4dUlDQWdJR0YzWVdsMElIUm9hWE11WkdGMFlWWnBaWGRUWlhKMmFXTmxMbU55WldGMFpVUmhkR0ZXYVdWM2N5aGNiaUFnSUNBZ0lISmxZV3h0VG1GdFpTeGNiaUFnSUNBZ0lHVm1abVZqZEdsMlpVTnZibVpwWnk1a1lYUmhWbWxsZDNNc1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG1SaGRHRldhV1YzVTJWeWRtbGpaUzV6WlhSRVpXWmhkV3gwUkdGMFlWWnBaWGNvY21WaGJHMU9ZVzFsTENCMWJtUmxabWx1WldRc0lDNHVMbU4wZUVGeVozTXBPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVjbTlzWlZObGNuWnBZMlV1WTNKbFlYUmxVbTlzWlNoeVpXRnNiVTVoYldVc0lHVm1abVZqZEdsMlpVTnZibVpwWnk1eWIyeGxJRDgvSUh0OUxDQXVMaTVqZEhoQmNtZHpLVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMblZ6WlhKVFpYSjJhV05sTG1OeVpXRjBaVlZ6WlhJb1hHNGdJQ0FnSUNCbFptWmxZM1JwZG1WRGIyNW1hV2N1Y21WaGJHMUJjR2xWYzJWeUxGeHVJQ0FnSUNBZ2NtVmhiRzFPWVcxbExGeHVJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1a1lYTm9ZbTloY21SVFpYSjJhV05sTG5abGNtbG1lVk53WVdObFUyVjBkWEFvY21WaGJHMU9ZVzFsTENBdUxpNWpkSGhCY21kektUdGNibHh1SUNBZ0lISmxkSFZ5YmlCbFptWmxZM1JwZG1WRGIyNW1hV2M3WEc0Z0lIMWNibHh1SUNCblpXNWxjbUYwWlVSaGMyaGliMkZ5WkVWdFltVmtWWEpzS0c5d2RHbHZibk02SUh0Y2JpQWdJQ0J6Y0dGalpUb2djM1J5YVc1bk8xeHVJQ0FnSUdSaGMyaGliMkZ5WkVsa09pQnpkSEpwYm1jN1hHNGdJQ0FnYzJodmQxUnBiV1ZHYVd4MFpYSS9PaUJpYjI5c1pXRnVPMXh1SUNBZ0lITm9iM2RSZFdWeWVVbHVjSFYwUHpvZ1ltOXZiR1ZoYmp0Y2JpQWdJQ0J6YUc5M1JtbHNkR1Z5UW1GeVB6b2dZbTl2YkdWaGJqdGNiaUFnSUNCb2FXUmxVR0Z1Wld4VWFYUnNaWE0vT2lCaWIyOXNaV0Z1TzF4dUlDQWdJSFJwYldWU1lXNW5aVDg2SUhzZ1puSnZiVG9nYzNSeWFXNW5PeUIwYnpvZ2MzUnlhVzVuSUgwN1hHNGdJSDBwT2lCemRISnBibWNnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1SaGMyaGliMkZ5WkZObGNuWnBZMlV1WjJWdVpYSmhkR1ZFWVhOb1ltOWhjbVJGYldKbFpGVnliQ2h2Y0hScGIyNXpLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR055WldGMFpWTndZV05sS0Z4dUlDQWdJSEpsWVd4dFRtRnRaVG9nYzNSeWFXNW5MRnh1SUNBZ0lIQmhlV3h2WVdRNklGQmhjblJwWVd3OFMybGlZVzVoVTNCaFkyVkRiMjVtYVdjK0lId2dkVzVrWldacGJtVmtMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKamNtVmhkR1ZUY0dGalpWd2lMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdVkzSmxZWFJsVTNCaFkyVXBPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVjM0JoWTJWVFpYSjJhV05sTG1OeVpXRjBaVk53WVdObEtISmxZV3h0VG1GdFpTd2djR0Y1Ykc5aFpDd2dMaTR1WTNSNFFYSm5jeWs3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUIxY0dSaGRHVlRjR0ZqWlNoY2JpQWdJQ0J5WldGc2JVNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQndZWGxzYjJGa09pQlFZWEowYVdGc1BFdHBZbUZ1WVZOd1lXTmxRMjl1Wm1sblBpeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpZFhCa1lYUmxVM0JoWTJWY0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG5Wd1pHRjBaVk53WVdObEtUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxuTndZV05sVTJWeWRtbGpaUzUxY0dSaGRHVlRjR0ZqWlNoeVpXRnNiVTVoYldVc0lIQmhlV3h2WVdRc0lDNHVMbU4wZUVGeVozTXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdaR1ZzWlhSbFUzQmhZMlVvWEc0Z0lDQWdjbVZoYkcxT1lXMWxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW1SbGJHVjBaVk53WVdObFhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1a1pXeGxkR1ZUY0dGalpTazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NXpjR0ZqWlZObGNuWnBZMlV1WkdWc1pYUmxVM0JoWTJVb2NtVmhiRzFPWVcxbExDQXVMaTVqZEhoQmNtZHpLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR055WldGMFpVUmhkR0ZXYVdWM0tGeHVJQ0FnSUhKbFlXeHRUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJSE53WldNNklFdHBZbUZ1WVVSaGRHRldhV1YzUTI5dVptbG5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKamNtVmhkR1ZFWVhSaFZtbGxkMXdpTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVZM0psWVhSbFJHRjBZVlpwWlhjcE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdVpHRjBZVlpwWlhkVFpYSjJhV05sTG1OeVpXRjBaVVJoZEdGV2FXVjNLSEpsWVd4dFRtRnRaU3dnYzNCbFl5d2dMaTR1WTNSNFFYSm5jeWs3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUIxY0dSaGRHVkVZWFJoVm1sbGR5aGNiaUFnSUNCeVpXRnNiVTVoYldVNklITjBjbWx1Wnl4Y2JpQWdJQ0J6Y0dWak9pQkxhV0poYm1GRVlYUmhWbWxsZDBOdmJtWnBaeXhjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aWRYQmtZWFJsUkdGMFlWWnBaWGRjSWl3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMblZ3WkdGMFpVUmhkR0ZXYVdWM0tUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxtUmhkR0ZXYVdWM1UyVnlkbWxqWlM1MWNHUmhkR1ZFWVhSaFZtbGxkeWh5WldGc2JVNWhiV1VzSUhOd1pXTXNJQzR1TG1OMGVFRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nWTNKbFlYUmxSR0YwWVZacFpYZHpLRnh1SUNBZ0lISmxZV3h0VG1GdFpUb2djM1J5YVc1bkxGeHVJQ0FnSUdSaGRHRldhV1YzY3pvZ1MybGlZVzVoUkdGMFlWWnBaWGREYjI1bWFXZGJYU0I4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lZM0psWVhSbFJHRjBZVlpwWlhkelhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1amNtVmhkR1ZFWVhSaFZtbGxkM01wTzF4dUlDQWdJR0YzWVdsMElIUm9hWE11WkdGMFlWWnBaWGRUWlhKMmFXTmxMbU55WldGMFpVUmhkR0ZXYVdWM2N5aGNiaUFnSUNBZ0lISmxZV3h0VG1GdFpTeGNiaUFnSUNBZ0lHUmhkR0ZXYVdWM2N5QS9QeUJiWFN4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nYzJWMFJHVm1ZWFZzZEVSaGRHRldhV1YzS0Z4dUlDQWdJSEpsWVd4dFRtRnRaVG9nYzNSeWFXNW5MRnh1SUNBZ0lHUmhkR0ZXYVdWM1NXUTZJSE4wY21sdVp5QjhJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aWMyVjBSR1ZtWVhWc2RFUmhkR0ZXYVdWM1hDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1elpYUkVaV1poZFd4MFJHRjBZVlpwWlhjcE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdVpHRjBZVlpwWlhkVFpYSjJhV05sTG5ObGRFUmxabUYxYkhSRVlYUmhWbWxsZHloY2JpQWdJQ0FnSUhKbFlXeHRUbUZ0WlN4Y2JpQWdJQ0FnSUdSaGRHRldhV1YzU1dRc1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdOc2IyNWxSR1ZtWVhWc2RFUmhjMmhpYjJGeVpITW9YRzRnSUNBZ2NtVmhiRzFPWVcxbE9pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4emRISnBibWNnZkNCMWJtUmxabWx1WldRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aVkyeHZibVZFWldaaGRXeDBSR0Z6YUdKdllYSmtjMXdpTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVZMnh2Ym1WRVpXWmhkV3gwUkdGemFHSnZZWEprY3lrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVpHRnphR0p2WVhKa1UyVnlkbWxqWlM1amJHOXVaVVJsWm1GMWJIUkVZWE5vWW05aGNtUnpLSEpsWVd4dFRtRnRaU3dnTGk0dVkzUjRRWEpuY3lrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCamNtVmhkR1ZTYjJ4bEtGeHVJQ0FnSUhKbFlXeHRUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJSEJoZVd4dllXUTZJRkJoY25ScFlXdzhTMmxpWVc1aFVtOXNaVU52Ym1acFp6NGdmQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6SUgwZ1BTQW9YRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0ltTnlaV0YwWlZKdmJHVmNJaXdnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxtTnlaV0YwWlZKdmJHVXBPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVjbTlzWlZObGNuWnBZMlV1WTNKbFlYUmxVbTlzWlNoeVpXRnNiVTVoYldVc0lIQmhlV3h2WVdRc0lDNHVMbU4wZUVGeVozTXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdkWEJrWVhSbFVtOXNaU2hjYmlBZ0lDQnlaV0ZzYlU1aGJXVTZJSE4wY21sdVp5eGNiaUFnSUNCd1lYbHNiMkZrT2lCUVlYSjBhV0ZzUEV0cFltRnVZVkp2YkdWRGIyNW1hV2MrTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1hDSjFjR1JoZEdWU2IyeGxYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NTFjR1JoZEdWU2IyeGxLVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbkp2YkdWVFpYSjJhV05sTG5Wd1pHRjBaVkp2YkdVb2NtVmhiRzFPWVcxbExDQndZWGxzYjJGa0xDQXVMaTVqZEhoQmNtZHpLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR055WldGMFpWVnpaWElvWEc0Z0lDQWdkWE5sY2pvZ1MybGlZVzVoVlhObGNpeGNiaUFnSUNCeVpXRnNiVTVoYldVNklITjBjbWx1Wnl4Y2JpQWdJQ0J5YjJ4bFRtRnRaWE02SUhOMGNtbHVaMXRkSUh3Z2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0pqY21WaGRHVlZjMlZ5WENJc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTVqY21WaGRHVlZjMlZ5S1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5WelpYSlRaWEoyYVdObExtTnlaV0YwWlZWelpYSW9YRzRnSUNBZ0lDQjFjMlZ5TEZ4dUlDQWdJQ0FnY21WaGJHMU9ZVzFsTEZ4dUlDQWdJQ0FnY205c1pVNWhiV1Z6SUQ4L0lGdGRMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QjFjR1JoZEdWVmMyVnlLRnh1SUNBZ0lIVnpaWEk2SUV0cFltRnVZVlZ6WlhJc1hHNGdJQ0FnY21WaGJHMU9ZVzFsT2lCemRISnBibWNzWEc0Z0lDQWdjbTlzWlU1aGJXVnpPaUJ6ZEhKcGJtZGJYU0I4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lkWEJrWVhSbFZYTmxjbHdpTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVkWEJrWVhSbFZYTmxjaWs3WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTUxYzJWeVUyVnlkbWxqWlM1MWNHUmhkR1ZWYzJWeUtGeHVJQ0FnSUNBZ2RYTmxjaXhjYmlBZ0lDQWdJSEpsWVd4dFRtRnRaU3hjYmlBZ0lDQWdJSEp2YkdWT1lXMWxjeUEvUHlCYlhTeGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2RtVnlhV1o1VTNCaFkyVlRaWFIxY0NoY2JpQWdJQ0J5WldGc2JVNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aWRtVnlhV1o1VTNCaFkyVlRaWFIxY0Z3aUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11ZG1WeWFXWjVVM0JoWTJWVFpYUjFjQ2s3WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTVrWVhOb1ltOWhjbVJUWlhKMmFXTmxMblpsY21sbWVWTndZV05sVTJWMGRYQW9jbVZoYkcxT1lXMWxMQ0F1TGk1amRIaEJjbWR6S1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1kzSmxZWFJsU0hSMGNFTnNhV1Z1ZENoamIyNW1hV2M2SUV0cFltRnVZVk5sZEhWd1EyOXVabWxuS1RvZ1FYaHBiM05KYm5OMFlXNWpaU0I3WEc0Z0lDQWdjbVYwZFhKdUlFRjRhVzl6TG1OeVpXRjBaU2g3WEc0Z0lDQWdJQ0JpWVhObFZWSk1PaUJnSkh0amIyNW1hV2N1Y0hKdmRHOWpiMng5T2k4dkpIdGpiMjVtYVdjdWFHOXpkSDFnTEZ4dUlDQWdJQ0FnZG1Gc2FXUmhkR1ZUZEdGMGRYTTZJQ2dwSUQwK0lIUnlkV1VzWEc0Z0lDQWdJQ0JvZEhSd2MwRm5aVzUwT2lCdVpYY2dhSFIwY0hNdVFXZGxiblFvZTF4dUlDQWdJQ0FnSUNCeVpXcGxZM1JWYm1GMWRHaHZjbWw2WldRNklIUm9hWE11YVhOUWNtOWtkV04wYVc5dUtDa3NYRzRnSUNBZ0lDQjlLU3hjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVmVnh1SWwxOSJdfQ==