@po-ui/ng-templates 16.0.0-next.2 → 16.1.0

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 (185) hide show
  1. package/README.md +19 -19
  2. package/esm2022/lib/components/components.module.mjs +1 -1
  3. package/esm2022/lib/components/index.mjs +1 -1
  4. package/esm2022/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-modal-content.enum.mjs +1 -1
  5. package/esm2022/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-type.enum.mjs +1 -1
  6. package/esm2022/lib/components/po-modal-password-recovery/index.mjs +1 -1
  7. package/esm2022/lib/components/po-modal-password-recovery/interfaces/po-modal-password-recovery.interface.mjs +1 -1
  8. package/esm2022/lib/components/po-modal-password-recovery/literals/i18n/po-modal-password-recovery-literals.mjs +5 -5
  9. package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery-base.component.mjs +1 -1
  10. package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery-error-message/po-modal-password-recovery-error-message.component.mjs +2 -2
  11. package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery.component.mjs +2 -2
  12. package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery.module.mjs +1 -1
  13. package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery.service.mjs +1 -1
  14. package/esm2022/lib/components/po-page-background/index.mjs +1 -1
  15. package/esm2022/lib/components/po-page-background/po-page-background.component.mjs +2 -2
  16. package/esm2022/lib/components/po-page-background/po-page-background.module.mjs +1 -1
  17. package/esm2022/lib/components/po-page-blocked-user/enums/po-page-blocked-user-reason.enum.mjs +1 -1
  18. package/esm2022/lib/components/po-page-blocked-user/index.mjs +1 -1
  19. package/esm2022/lib/components/po-page-blocked-user/interfaces/po-page-blocked-user-reason-params.interface.mjs +1 -1
  20. package/esm2022/lib/components/po-page-blocked-user/literals/i18n/po-page-blocked-user-literals.mjs +6 -6
  21. package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-base.component.mjs +1 -1
  22. package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-contacts/po-page-blocked-user-contacts.component.mjs +2 -2
  23. package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-reason/po-page-blocked-user-reason.component.mjs +2 -2
  24. package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user.component.mjs +2 -2
  25. package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user.module.mjs +1 -1
  26. package/esm2022/lib/components/po-page-change-password/index.mjs +1 -1
  27. package/esm2022/lib/components/po-page-change-password/interfaces/po-page-change-password-recovery.interface.mjs +1 -1
  28. package/esm2022/lib/components/po-page-change-password/interfaces/po-page-change-password-requirement.interface.mjs +1 -1
  29. package/esm2022/lib/components/po-page-change-password/interfaces/po-page-change-password.interface.mjs +1 -1
  30. package/esm2022/lib/components/po-page-change-password/literals/i18n/po-page-change-password-literals.mjs +1 -1
  31. package/esm2022/lib/components/po-page-change-password/po-page-change-password-base.component.mjs +1 -1
  32. package/esm2022/lib/components/po-page-change-password/po-page-change-password.component.mjs +2 -2
  33. package/esm2022/lib/components/po-page-change-password/po-page-change-password.module.mjs +1 -1
  34. package/esm2022/lib/components/po-page-change-password/po-page-change-password.service.mjs +1 -1
  35. package/esm2022/lib/components/po-page-dynamic-detail/index.mjs +1 -1
  36. package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-actions.interface.mjs +1 -1
  37. package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-back.interface.mjs +1 -1
  38. package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-edit.interface.mjs +1 -1
  39. package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-remove.interface.mjs +1 -1
  40. package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-field.interface.mjs +1 -1
  41. package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-metadata.interface.mjs +1 -1
  42. package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-options.interface.mjs +1 -1
  43. package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail-actions.service.mjs +1 -1
  44. package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.component.mjs +2 -2
  45. package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.module.mjs +1 -1
  46. package/esm2022/lib/components/po-page-dynamic-edit/index.mjs +1 -1
  47. package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-actions.interface.mjs +1 -1
  48. package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-cancel.interface.mjs +1 -1
  49. package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save-new.interface.mjs +1 -1
  50. package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save.interface.mjs +1 -1
  51. package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-field.interface.mjs +1 -1
  52. package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-literals.interface.mjs +1 -1
  53. package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-metadata.interface.mjs +1 -1
  54. package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-options.interface.mjs +1 -1
  55. package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit-actions.service.mjs +1 -1
  56. package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.component.mjs +2 -2
  57. package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.module.mjs +1 -1
  58. package/esm2022/lib/components/po-page-dynamic-search/index.mjs +1 -1
  59. package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-base.component.mjs +6 -9
  60. package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-literals.interface.mjs +1 -1
  61. package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter.component.mjs +2 -2
  62. package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.mjs +8 -18
  63. package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-filters.interface.mjs +1 -1
  64. package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-literals.interface.mjs +1 -1
  65. package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-options.interface.mjs +1 -1
  66. package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search.component.mjs +2 -2
  67. package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search.interface.mjs +1 -1
  68. package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search.module.mjs +1 -1
  69. package/esm2022/lib/components/po-page-dynamic-table/index.mjs +1 -1
  70. package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-actions.interface.mjs +1 -1
  71. package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-detail.interface.mjs +1 -1
  72. package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-duplicate.interface.mjs +1 -1
  73. package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-edit.interface.mjs +1 -1
  74. package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-new.interface.mjs +1 -1
  75. package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove-all.interface.mjs +1 -1
  76. package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove.interface.mjs +1 -1
  77. package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-action.interface.mjs +1 -1
  78. package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-table-action.interface.mjs +1 -1
  79. package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-field.interface.mjs +1 -1
  80. package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-filters.interface.mjs +1 -1
  81. package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-metadata.interface.mjs +1 -1
  82. package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-options.interface.mjs +1 -1
  83. package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-list-base.component.mjs +1 -1
  84. package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table-actions.service.mjs +1 -1
  85. package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table-literals.mjs +1 -1
  86. package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.mjs +14 -29
  87. package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table.module.mjs +1 -1
  88. package/esm2022/lib/components/po-page-job-scheduler/index.mjs +1 -1
  89. package/esm2022/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler-internal.interface.mjs +1 -1
  90. package/esm2022/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler.interface.mjs +1 -1
  91. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-base.component.mjs +1 -1
  92. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-execution/po-page-job-scheduler-execution.component.mjs +2 -2
  93. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-internal.mjs +1 -1
  94. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-literals.mjs +1 -1
  95. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-lookup.service.mjs +1 -1
  96. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/index.mjs +1 -1
  97. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-job-scheduler-parameters-template/index.mjs +1 -1
  98. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-job-scheduler-parameters-template/po-job-scheduler-parameters-template.directive.mjs +1 -1
  99. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-page-job-scheduler-parameters.component.mjs +2 -2
  100. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-page-job-scheduler-summary.component.mjs +2 -2
  101. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.component.mjs +2 -2
  102. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.module.mjs +1 -1
  103. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.service.mjs +1 -1
  104. package/esm2022/lib/components/po-page-login/enums/po-page-login-authentication-type.enum.mjs +1 -1
  105. package/esm2022/lib/components/po-page-login/index.mjs +1 -1
  106. package/esm2022/lib/components/po-page-login/interfaces/po-page-login-custom-field.interface.mjs +1 -1
  107. package/esm2022/lib/components/po-page-login/interfaces/po-page-login-literals.interface.mjs +1 -1
  108. package/esm2022/lib/components/po-page-login/interfaces/po-page-login-recovery.interface.mjs +1 -1
  109. package/esm2022/lib/components/po-page-login/interfaces/po-page-login.interface.mjs +1 -1
  110. package/esm2022/lib/components/po-page-login/po-page-login-base.component.mjs +5 -5
  111. package/esm2022/lib/components/po-page-login/po-page-login-popover/po-page-login-popover.component.mjs +2 -2
  112. package/esm2022/lib/components/po-page-login/po-page-login.component.mjs +2 -2
  113. package/esm2022/lib/components/po-page-login/po-page-login.module.mjs +1 -1
  114. package/esm2022/lib/components/po-page-login/po-page-login.service.mjs +1 -1
  115. package/esm2022/lib/index.mjs +1 -1
  116. package/esm2022/lib/po-templates.module.mjs +1 -1
  117. package/esm2022/lib/services/index.mjs +1 -1
  118. package/esm2022/lib/services/po-page-customization/index.mjs +1 -1
  119. package/esm2022/lib/services/po-page-customization/po-page-customization.module.mjs +1 -1
  120. package/esm2022/lib/services/po-page-customization/po-page-customization.service.mjs +1 -1
  121. package/esm2022/lib/services/po-page-customization/po-page-dynamic-options.interface.mjs +1 -1
  122. package/esm2022/lib/services/po-page-dynamic/index.mjs +1 -1
  123. package/esm2022/lib/services/po-page-dynamic/po-page-dynamic-literals.interface.mjs +1 -1
  124. package/esm2022/lib/services/po-page-dynamic/po-page-dynamic.module.mjs +1 -1
  125. package/esm2022/lib/services/po-page-dynamic/po-page-dynamic.service.mjs +1 -1
  126. package/esm2022/lib/services/services.module.mjs +1 -1
  127. package/esm2022/lib/utils/util.mjs +1 -1
  128. package/esm2022/public-api.mjs +1 -1
  129. package/fesm2022/po-ui-ng-templates.mjs +107 -135
  130. package/fesm2022/po-ui-ng-templates.mjs.map +1 -1
  131. package/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-base.component.d.ts +3 -2
  132. package/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.d.ts +6 -3
  133. package/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.d.ts +14 -9
  134. package/package.json +4 -4
  135. package/po-ui-ng-templates-16.1.0.tgz +0 -0
  136. package/schematics/README.md +14 -14
  137. package/schematics/collection.json +50 -50
  138. package/schematics/ng-add/index.js +1 -1
  139. package/schematics/ng-add/schema.json +16 -16
  140. package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  141. package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  142. package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
  143. package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  144. package/schematics/ng-generate/po-page-blocked-user/schema.json +67 -67
  145. package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  146. package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  147. package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
  148. package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  149. package/schematics/ng-generate/po-page-change-password/schema.json +67 -67
  150. package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  151. package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
  152. package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  153. package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +23 -23
  154. package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  155. package/schematics/ng-generate/po-page-dynamic-detail/schema.json +67 -67
  156. package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  157. package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
  158. package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  159. package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +23 -23
  160. package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  161. package/schematics/ng-generate/po-page-dynamic-edit/schema.json +67 -67
  162. package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  163. package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
  164. package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  165. package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +28 -28
  166. package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  167. package/schematics/ng-generate/po-page-dynamic-search/schema.json +67 -67
  168. package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  169. package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
  170. package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  171. package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +21 -21
  172. package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  173. package/schematics/ng-generate/po-page-dynamic-table/schema.json +67 -67
  174. package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  175. package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +3 -3
  176. package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  177. package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +17 -17
  178. package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  179. package/schematics/ng-generate/po-page-job-scheduler/schema.json +67 -67
  180. package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  181. package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  182. package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
  183. package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  184. package/schematics/ng-generate/po-page-login/schema.json +67 -67
  185. package/po-ui-ng-templates-16.0.0-next.2.tgz +0 -0
@@ -11,7 +11,7 @@ export const poPageLoginLiteralsDefault = {
11
11
  en: {
12
12
  title: 'Welcome',
13
13
  loginErrorPattern: 'Invalid Login',
14
- loginHint: `Your login user was given to you at your first day.
14
+ loginHint: `Your login user was given to you at your first day.
15
15
  If you don't have this information contact support`,
16
16
  loginPlaceholder: 'Insert your e-mail',
17
17
  passwordErrorPattern: 'Invalid Password',
@@ -38,7 +38,7 @@ export const poPageLoginLiteralsDefault = {
38
38
  es: {
39
39
  title: 'Bienvenido',
40
40
  loginErrorPattern: 'Login inválido',
41
- loginHint: `Su usuario ha sido entregado para usted en su primer día.
41
+ loginHint: `Su usuario ha sido entregado para usted en su primer día.
42
42
  Si no tiene esta información, póngase en contacto con el soporte técnico`,
43
43
  loginPlaceholder: 'Inserte su e-mail',
44
44
  passwordErrorPattern: 'Contraseña inválida',
@@ -65,7 +65,7 @@ export const poPageLoginLiteralsDefault = {
65
65
  pt: {
66
66
  title: 'Bem-vindo',
67
67
  loginErrorPattern: 'Login inválido',
68
- loginHint: `Seu usuário foi entregue a você no seu primeiro dia.
68
+ loginHint: `Seu usuário foi entregue a você no seu primeiro dia.
69
69
  Caso não tenha mais essa informação contacte o suporte`,
70
70
  loginPlaceholder: 'Insira seu e-mail',
71
71
  passwordErrorPattern: 'Senha inválida',
@@ -92,7 +92,7 @@ export const poPageLoginLiteralsDefault = {
92
92
  ru: {
93
93
  title: 'Добро пожаловать!',
94
94
  loginErrorPattern: 'Неверный логин',
95
- loginHint: `Ваш логин был предоставлен вам в первый день.
95
+ loginHint: `Ваш логин был предоставлен вам в первый день.
96
96
  Если у вас нет этой информации, обратитесь в службу поддержки`,
97
97
  loginPlaceholder: 'Вставьте свой адрес электронной почты',
98
98
  passwordErrorPattern: 'Неверный пароль',
@@ -1041,4 +1041,4 @@ export class PoPageLoginBaseComponent {
1041
1041
  type: Input,
1042
1042
  args: ['p-languages']
1043
1043
  }] }); })();
1044
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1sb2dpbi1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL2NvbXBvbmVudHMvcG8tcGFnZS1sb2dpbi9wby1wYWdlLWxvZ2luLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkgsT0FBTyxFQUFxQixlQUFlLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd6RyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7QUFNL0YsTUFBTSwyQkFBMkIsR0FBRyxFQUFFLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUc7SUFDeEMsRUFBRSxFQUF1QjtRQUN2QixLQUFLLEVBQUUsU0FBUztRQUNoQixpQkFBaUIsRUFBRSxlQUFlO1FBQ2xDLFNBQVMsRUFBRTt1REFDd0M7UUFDbkQsZ0JBQWdCLEVBQUUsb0JBQW9CO1FBQ3RDLG9CQUFvQixFQUFFLGtCQUFrQjtRQUN4QyxtQkFBbUIsRUFBRSxzQkFBc0I7UUFDM0MsdUJBQXVCLEVBQUUsZUFBZTtRQUN4QyxzQkFBc0IsRUFBRSxzQkFBc0I7UUFDOUMsWUFBWSxFQUFFLGlCQUFpQjtRQUMvQixnQkFBZ0IsRUFBRSxxREFBcUQ7UUFDdkUsV0FBVyxFQUFFLE9BQU87UUFDcEIsY0FBYyxFQUFFLFlBQVk7UUFDNUIsY0FBYyxFQUFFLHVCQUF1QjtRQUN2QyxhQUFhLEVBQUUsRUFBRTtRQUNqQixXQUFXLEVBQUUsY0FBYztRQUMzQixZQUFZLEVBQUUsT0FBTztRQUNyQixrQkFBa0IsRUFBRSx1QkFBdUI7UUFDM0MsY0FBYyxFQUFFLGFBQWE7UUFDN0IsUUFBUSxFQUFFLG1CQUFtQjtRQUM3QixxQkFBcUIsRUFDbkIseUdBQXlHO1FBQzNHLHFCQUFxQixFQUFFLHVGQUF1RjtRQUM5RyxpQkFBaUIsRUFBRSxzQkFBc0I7UUFDekMsT0FBTyxFQUFFLFNBQVM7UUFDbEIsT0FBTyxFQUFFLFNBQVM7S0FDbkI7SUFDRCxFQUFFLEVBQXVCO1FBQ3ZCLEtBQUssRUFBRSxZQUFZO1FBQ25CLGlCQUFpQixFQUFFLGdCQUFnQjtRQUNuQyxTQUFTLEVBQUU7NkVBQzhEO1FBQ3pFLGdCQUFnQixFQUFFLG1CQUFtQjtRQUNyQyxvQkFBb0IsRUFBRSxxQkFBcUI7UUFDM0MsbUJBQW1CLEVBQUUsdUJBQXVCO1FBQzVDLHVCQUF1QixFQUFFLGtCQUFrQjtRQUMzQyxzQkFBc0IsRUFBRSwrQkFBK0I7UUFDdkQsWUFBWSxFQUFFLGtDQUFrQztRQUNoRCxnQkFBZ0IsRUFBRSx3REFBd0Q7UUFDMUUsV0FBVyxFQUFFLFFBQVE7UUFDckIsY0FBYyxFQUFFLGFBQWE7UUFDN0IsY0FBYyxFQUFFLDBCQUEwQjtRQUMxQyxhQUFhLEVBQUUsRUFBRTtRQUNqQixXQUFXLEVBQUUsZ0JBQWdCO1FBQzdCLFlBQVksRUFBRSxNQUFNO1FBQ3BCLGtCQUFrQixFQUFFLDBCQUEwQjtRQUM5QyxjQUFjLEVBQUUsaUJBQWlCO1FBQ2pDLFFBQVEsRUFBRSxnQkFBZ0I7UUFDMUIscUJBQXFCLEVBQUUsNEZBQTRGO1FBQ25ILHFCQUFxQixFQUNuQixtR0FBbUc7UUFDckcsaUJBQWlCLEVBQUUsc0JBQXNCO1FBQ3pDLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLE9BQU8sRUFBRSxTQUFTO0tBQ25CO0lBQ0QsRUFBRSxFQUF1QjtRQUN2QixLQUFLLEVBQUUsV0FBVztRQUNsQixpQkFBaUIsRUFBRSxnQkFBZ0I7UUFDbkMsU0FBUyxFQUFFOzJEQUM0QztRQUN2RCxnQkFBZ0IsRUFBRSxtQkFBbUI7UUFDckMsb0JBQW9CLEVBQUUsZ0JBQWdCO1FBQ3RDLG1CQUFtQixFQUFFLGtCQUFrQjtRQUN2Qyx1QkFBdUIsRUFBRSxpQkFBaUI7UUFDMUMsc0JBQXNCLEVBQUUsMkJBQTJCO1FBQ25ELFlBQVksRUFBRSx1QkFBdUI7UUFDckMsZ0JBQWdCLEVBQUUscURBQXFEO1FBQ3ZFLFdBQVcsRUFBRSxRQUFRO1FBQ3JCLGNBQWMsRUFBRSxlQUFlO1FBQy9CLGNBQWMsRUFBRSxxQkFBcUI7UUFDckMsYUFBYSxFQUFFLEVBQUU7UUFDakIsV0FBVyxFQUFFLGVBQWU7UUFDNUIsWUFBWSxFQUFFLE1BQU07UUFDcEIsa0JBQWtCLEVBQUUscUJBQXFCO1FBQ3pDLGNBQWMsRUFBRSxpQkFBaUI7UUFDakMsUUFBUSxFQUFFLGNBQWM7UUFDeEIscUJBQXFCLEVBQUUsa0ZBQWtGO1FBQ3pHLHFCQUFxQixFQUFFLHNGQUFzRjtRQUM3RyxpQkFBaUIsRUFBRSxxQkFBcUI7UUFDeEMsT0FBTyxFQUFFLGFBQWE7UUFDdEIsT0FBTyxFQUFFLFNBQVM7S0FDbkI7SUFDRCxFQUFFLEVBQXVCO1FBQ3ZCLEtBQUssRUFBRSxtQkFBbUI7UUFDMUIsaUJBQWlCLEVBQUUsZ0JBQWdCO1FBQ25DLFNBQVMsRUFBRTtrRUFDbUQ7UUFDOUQsZ0JBQWdCLEVBQUUsdUNBQXVDO1FBQ3pELG9CQUFvQixFQUFFLGlCQUFpQjtRQUN2QyxtQkFBbUIsRUFBRSxxQkFBcUI7UUFDMUMsdUJBQXVCLEVBQUUsb0JBQW9CO1FBQzdDLHNCQUFzQixFQUFFLDhCQUE4QjtRQUN0RCxZQUFZLEVBQUUscUJBQXFCO1FBQ25DLGdCQUFnQixFQUFFLHNEQUFzRDtRQUN4RSxXQUFXLEVBQUUsT0FBTztRQUNwQixjQUFjLEVBQUUsYUFBYTtRQUM3QixjQUFjLEVBQUUsZ0JBQWdCO1FBQ2hDLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLFdBQVcsRUFBRSxlQUFlO1FBQzVCLFlBQVksRUFBRSxLQUFLO1FBQ25CLGtCQUFrQixFQUFFLGdCQUFnQjtRQUNwQyxjQUFjLEVBQUUsMkNBQTJDO1FBQzNELFFBQVEsRUFBRSxhQUFhO1FBQ3ZCLHFCQUFxQixFQUFFLDRGQUE0RjtRQUNuSCxxQkFBcUIsRUFBRSx1RUFBdUU7UUFDOUYsaUJBQWlCLEVBQUUscUJBQXFCO1FBQ3hDLE9BQU8sRUFBRSxrQkFBa0I7UUFDM0IsT0FBTyxFQUFFLFdBQVc7S0FDckI7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUc7SUFDbEMsRUFBRSxFQUFFLElBQUk7SUFDUixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0lBQ1IsRUFBRSxFQUFFLEdBQUc7Q0FDUixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Qkc7QUFFSCxNQUFNLE9BQWdCLHdCQUF3QjtJQXN3QmxDO0lBQ0Q7SUFDQTtJQXZ3QlQ7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQkc7SUFDb0IsVUFBVSxDQUFVO0lBRTNDOzs7Ozs7OztPQVFHO0lBQ2MsSUFBSSxDQUFVO0lBRS9COzs7Ozs7Ozs7Ozs7O09BYUc7SUFDdUIsWUFBWSxDQUFVO0lBRWhEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDMEIsZUFBZSxDQUFVO0lBRXREOzs7Ozs7T0FNRztJQUN3QixhQUFhLENBQVU7SUFFbEQ7Ozs7Ozs7Ozs7T0FVRztJQUN1QixXQUFXLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFFekY7Ozs7Ozs7O09BUUc7SUFDdUIsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7SUFFeEU7Ozs7Ozs7Ozs7T0FVRztJQUMwQixjQUFjLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFFL0Y7Ozs7Ozs7OztPQVNHO0lBQzBCLGNBQWMsR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQUV2RyxjQUFjLEdBQWtCLEVBQUUsQ0FBQztJQUNuQyxpQkFBaUIsR0FBa0IsRUFBRSxDQUFDO0lBQ3RDLGlCQUFpQixDQUF5QjtJQUMxQyxlQUFlLENBQVM7SUFDeEIsaUJBQWlCLENBQWU7SUFDaEMsUUFBUSxDQUFTO0lBQ2pCLFlBQVksR0FBWSxLQUFLLENBQUM7SUFDOUIsZ0JBQWdCLENBQVM7SUFDekIsMkJBQTJCLEdBQUcsS0FBSyxDQUFDO0lBRTVCLG1CQUFtQixHQUFrQyw2QkFBNkIsQ0FBQyxLQUFLLENBQUM7SUFDekYsa0JBQWtCLENBQVM7SUFDM0IsV0FBVyxDQUFTO0lBQ3BCLGFBQWEsQ0FBUztJQUN0QixZQUFZLENBQWtDO0lBQzlDLFlBQVksQ0FBVTtJQUN0Qix3QkFBd0IsQ0FBVTtJQUNsQyxpQkFBaUIsR0FBWSxLQUFLLENBQUM7SUFDbkMsU0FBUyxDQUFzQjtJQUMvQixRQUFRLEdBQWEsS0FBSyxDQUFDO0lBQzNCLE1BQU0sQ0FBUztJQUNmLFlBQVksR0FBa0IsRUFBRSxDQUFDO0lBQ2pDLGVBQWUsR0FBa0IsRUFBRSxDQUFDO0lBQ3BDLFlBQVksQ0FBUztJQUNyQixTQUFTLENBQTBDO0lBQ25ELFlBQVksQ0FBUztJQUNyQixRQUFRLENBQW9CO0lBQzVCLGNBQWMsQ0FBb0I7SUFFMUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FvREc7SUFDSCxJQUE2QixXQUFXLENBQUMsS0FBc0M7UUFDN0UsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDO2dCQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztnQkFDMUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakUsT0FBTzthQUNSO1lBRUQsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQzNFLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO2dCQUMxQixJQUFJLENBQUMsaUJBQWlCLEdBQTJCLEtBQUssQ0FBQztnQkFFdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO29CQUNsRSxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQztpQkFDaEM7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztpQkFDNUU7Z0JBRUQsT0FBTzthQUNSO1NBQ0Y7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUM5QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILElBQThCLFlBQVksQ0FBQyxLQUFhO1FBQ3RELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILElBQTZCLFdBQVcsQ0FBQyxLQUFhO1FBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxJQUE0QixXQUFXLENBQUMsV0FBbUI7UUFDekQsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRywyQkFBMkIsRUFBRTtZQUNuRSxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLDJCQUEyQixDQUFDLENBQUM7U0FDM0U7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUNELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxJQUEwQyx1QkFBdUIsQ0FBQyxLQUFhO1FBQzdFLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0gsSUFBbUMsZ0JBQWdCLENBQUMsS0FBYztRQUNoRSxJQUFJLENBQUMsaUJBQWlCLEdBQVEsS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1RSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFDRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BMkRHO0lBQ0gsSUFBeUIsUUFBUSxDQUFDLEtBQTBCO1FBQzFELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxJQUF3QixPQUFPLENBQUMsS0FBYztRQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILElBQXNCLEtBQUssQ0FBQyxLQUFhO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRXBCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBNkIsV0FBVyxDQUFDLEtBQW9CO1FBQzNELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUFnQyxjQUFjLENBQUMsS0FBb0I7UUFDakUsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW9CRztJQUNILElBQXlCLFFBQVEsQ0FBQyxLQUE4QztRQUM5RSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0gsSUFBNkIsV0FBVyxDQUFDLEtBQWE7UUFDcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BOEJHO0lBQ0gsSUFBb0Msa0JBQWtCLENBQUMsS0FBb0M7UUFDekYsSUFBSSxDQUFDLG1CQUFtQixHQUFTLE1BQU8sQ0FBQyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQzVGLENBQUMsQ0FBQyxLQUFLO1lBQ1AsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLEtBQUssQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BZ0hHO0lBQ0gsSUFBbUMsaUJBQWlCLENBQUMsS0FBYTtRQUNoRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDMUUsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsSUFBNEIsVUFBVSxDQUFDLEtBQWE7UUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpQkc7SUFDSCxJQUF3QixPQUFPLENBQUMsS0FBd0I7UUFDdEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQkc7SUFDSCxJQUEwQixhQUFhLENBQUMsYUFBZ0M7UUFDdEUsSUFBSSxhQUFhLEVBQUU7WUFDakIsSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFO2dCQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQzthQUNyQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2pHO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUM1QjtRQUNELE9BQU8saUJBQWlCLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixNQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQyxZQUFZO1lBQ2pELENBQUMsQ0FBQyxJQUFJLENBQUMsb0NBQW9DLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUM5RCxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWQsT0FBTztZQUNMLEdBQUcsMEJBQTBCLENBQUMsZUFBZSxDQUFDO1lBQzlDLEdBQUcsMEJBQTBCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM1QyxHQUFHLHlCQUF5QjtZQUM1QixHQUFHLElBQUksQ0FBQyxRQUFRO1NBQ2pCLENBQUM7SUFDSixDQUFDO0lBRUQsWUFDVSxZQUFnQyxFQUNqQyxNQUFjLEVBQ2QsaUJBQW9DO1FBRm5DLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUUzQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQywyQkFBMkIsR0FBRyxLQUFLLENBQUM7SUFDM0MsQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLFNBQVMsR0FBZ0I7WUFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDaEMsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7U0FDM0U7UUFFRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFlBQVk7aUJBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFNBQVMsQ0FBQztpQkFDbkUsU0FBUyxDQUNSLElBQUksQ0FBQyxFQUFFO2dCQUNMLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2dCQUM3QixjQUFjLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzlELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQyxFQUNELEtBQUssQ0FBQyxFQUFFO2dCQUNOLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRTtvQkFDNUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNsQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDeEU7Z0JBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQyxDQUNGLENBQUM7U0FDTDthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxDQUFDLENBQUM7U0FDckU7SUFDSCxDQUFDO0lBRU8sMkJBQTJCLENBQUMsUUFBUTtRQUMxQyxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEdBQVc7UUFDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEdBQVc7UUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxRQUFnQixFQUFFLFVBQWtCO1FBQzdELElBQUksUUFBUSxLQUFLLENBQUMsSUFBSSxVQUFVLEVBQUU7WUFDaEMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEtBQUssQ0FBQztZQUN6QyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3BHO0lBQ0gsQ0FBQztJQUVPLHFCQUFxQixDQUFDLE1BQU87UUFDbkMsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsdUJBQXVCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztZQUNqRSxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO1lBQzlDLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztZQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1NBQzNDO2FBQU07WUFDTCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztrRkExMUJtQix3QkFBd0I7NkRBQXhCLHdCQUF3Qjs7dUZBQXhCLHdCQUF3QjtjQUQ3QyxTQUFTOzBIQW1CZSxVQUFVO2tCQUFoQyxLQUFLO21CQUFDLGNBQWM7WUFXSixJQUFJO2tCQUFwQixLQUFLO21CQUFDLFFBQVE7WUFnQlcsWUFBWTtrQkFBckMsS0FBSzttQkFBQyxpQkFBaUI7WUFnQkssZUFBZTtrQkFBM0MsS0FBSzttQkFBQyxvQkFBb0I7WUFTQSxhQUFhO2tCQUF2QyxLQUFLO21CQUFDLGtCQUFrQjtZQWFDLFdBQVc7a0JBQXBDLE1BQU07bUJBQUMsZ0JBQWdCO1lBV0UsV0FBVztrQkFBcEMsTUFBTTttQkFBQyxnQkFBZ0I7WUFhSyxjQUFjO2tCQUExQyxNQUFNO21CQUFDLG1CQUFtQjtZQVlFLGNBQWM7a0JBQTFDLE1BQU07bUJBQUMsbUJBQW1CO1lBb0ZFLFdBQVc7a0JBQXZDLEtBQUs7bUJBQUMsZ0JBQWdCO1lBc0NPLFlBQVk7a0JBQXpDLEtBQUs7bUJBQUMsaUJBQWlCO1lBY0ssV0FBVztrQkFBdkMsS0FBSzttQkFBQyxnQkFBZ0I7WUFlSyxXQUFXO2tCQUF0QyxLQUFLO21CQUFDLGVBQWU7WUF1Qm9CLHVCQUF1QjtrQkFBaEUsS0FBSzttQkFBQyw2QkFBNkI7WUF1QkQsZ0JBQWdCO2tCQUFsRCxLQUFLO21CQUFDLHNCQUFzQjtZQXVFSixRQUFRO2tCQUFoQyxLQUFLO21CQUFDLFlBQVk7WUFtQkssT0FBTztrQkFBOUIsS0FBSzttQkFBQyxXQUFXO1lBZUksS0FBSztrQkFBMUIsS0FBSzttQkFBQyxTQUFTO1lBbUJhLFdBQVc7a0JBQXZDLEtBQUs7bUJBQUMsZ0JBQWdCO1lBZVMsY0FBYztrQkFBN0MsS0FBSzttQkFBQyxtQkFBbUI7WUE2QkQsUUFBUTtrQkFBaEMsS0FBSzttQkFBQyxZQUFZO1lBc0JVLFdBQVc7a0JBQXZDLEtBQUs7bUJBQUMsZ0JBQWdCO1lBdUNhLGtCQUFrQjtrQkFBckQsS0FBSzttQkFBQyx1QkFBdUI7WUEySEssaUJBQWlCO2tCQUFuRCxLQUFLO21CQUFDLHNCQUFzQjtZQWdCRCxVQUFVO2tCQUFyQyxLQUFLO21CQUFDLGVBQWU7WUEwQkUsT0FBTztrQkFBOUIsS0FBSzttQkFBQyxXQUFXO1lBeUJRLGFBQWE7a0JBQXRDLEtBQUs7bUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuLCBjb252ZXJ0VG9JbnQsIGdldFNob3J0QnJvd3Nlckxhbmd1YWdlLCBpc0V4dGVybmFsTGluaywgaXNUeXBlb2YgfSBmcm9tICcuLy4uLy4uL3V0aWxzL3V0aWwnO1xyXG5cclxuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UsIHBvTG9jYWxlRGVmYXVsdCwgUG9MYW5ndWFnZSwgcG9MYW5ndWFnZURlZmF1bHQgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XHJcblxyXG5pbXBvcnQgeyBQb1BhZ2VMb2dpbiB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1wYWdlLWxvZ2luLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlIH0gZnJvbSAnLi9lbnVtcy9wby1wYWdlLWxvZ2luLWF1dGhlbnRpY2F0aW9uLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFBvUGFnZUxvZ2luQ3VzdG9tRmllbGQgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1sb2dpbi1jdXN0b20tZmllbGQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgUG9QYWdlTG9naW5MaXRlcmFscyB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1wYWdlLWxvZ2luLWxpdGVyYWxzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFBvUGFnZUxvZ2luUmVjb3ZlcnkgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1sb2dpbi1yZWNvdmVyeS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBQb1BhZ2VMb2dpblNlcnZpY2UgfSBmcm9tICcuL3BvLXBhZ2UtbG9naW4uc2VydmljZSc7XHJcblxyXG5jb25zdCBwb1BhZ2VMb2dpbkNvbnRlbnRNYXhMZW5ndGggPSA0MDtcclxuXHJcbmV4cG9ydCBjb25zdCBwb1BhZ2VMb2dpbkxpdGVyYWxzRGVmYXVsdCA9IHtcclxuICBlbjogPFBvUGFnZUxvZ2luTGl0ZXJhbHM+e1xyXG4gICAgdGl0bGU6ICdXZWxjb21lJyxcclxuICAgIGxvZ2luRXJyb3JQYXR0ZXJuOiAnSW52YWxpZCBMb2dpbicsXHJcbiAgICBsb2dpbkhpbnQ6IGBZb3VyIGxvZ2luIHVzZXIgd2FzIGdpdmVuIHRvIHlvdSBhdCB5b3VyIGZpcnN0IGRheS5cclxuICAgIElmIHlvdSBkb24ndCBoYXZlIHRoaXMgaW5mb3JtYXRpb24gY29udGFjdCBzdXBwb3J0YCxcclxuICAgIGxvZ2luUGxhY2Vob2xkZXI6ICdJbnNlcnQgeW91ciBlLW1haWwnLFxyXG4gICAgcGFzc3dvcmRFcnJvclBhdHRlcm46ICdJbnZhbGlkIFBhc3N3b3JkJyxcclxuICAgIHBhc3N3b3JkUGxhY2Vob2xkZXI6ICdJbnNlcnQgeW91ciBwYXNzd29yZCcsXHJcbiAgICBjdXN0b21GaWVsZEVycm9yUGF0dGVybjogJ0ludmFsaWQgdmFsdWUnLFxyXG4gICAgY3VzdG9tRmllbGRQbGFjZWhvbGRlcjogJ1BsZWFzZSBlbnRlciBhIHZhbHVlJyxcclxuICAgIHJlbWVtYmVyVXNlcjogJ0F1dG9tYXRpYyBsb2dpbicsXHJcbiAgICByZW1lbWJlclVzZXJIaW50OiAnWW91IGNhbiBkaXNhYmxlIHRoaXMgb3B0aW9uIGluIHN5c3RlbSBjb25maWd1cmF0aW9uJyxcclxuICAgIHN1Ym1pdExhYmVsOiAnRW50ZXInLFxyXG4gICAgc3VibWl0dGVkTGFiZWw6ICdMb2FkaW5nLi4uJyxcclxuICAgIGZvcmdvdFBhc3N3b3JkOiAnRm9yZ290IHlvdXIgUGFzc3dvcmQ/JyxcclxuICAgIGhpZ2hsaWdodEluZm86ICcnLFxyXG4gICAgcmVnaXN0ZXJVcmw6ICdOZXcgcmVnaXN0ZXInLFxyXG4gICAgdGl0bGVQb3BvdmVyOiAnT29wcyEnLFxyXG4gICAgZm9yZ290WW91clBhc3N3b3JkOiAnRm9yZ290IHlvdXIgcGFzc3dvcmQ/JyxcclxuICAgIGlmWW91VHJ5SGFyZGVyOiAnSWYgeW91IHRyeSAnLFxyXG4gICAgYXR0ZW1wdHM6ICd7MH0gbW9yZSB0aW1lKHMpICcsXHJcbiAgICB5b3VyVXNlcldpbGxCZUJsb2NrZWQ6XHJcbiAgICAgICd3aXRob3V0IHN1Y2Nlc3MgeW91ciB1c2VyIHdpbGwgYmUgYmxvY2tlZCBhbmQgeW91IHdpbGwgYmUgbGVmdCAyNCBob3VycyB3aXRob3V0IGJlaW5nIGFibGUgdG8gYWNjZXNzIDooJyxcclxuICAgIGNyZWF0ZUFOZXdQYXNzd29yZE5vdzogJ0JldHRlciBjcmVhdGUgYSBuZXcgcGFzc3dvcmQgbm93ISBZb3Ugd2lsbCBiZSBhYmxlIHRvIGxvZyBpbnRvIHRoZSBzeXN0ZW0gcmlnaHQgYXdheS4nLFxyXG4gICAgaUZvcmdvdE15UGFzc3dvcmQ6ICdJIGZvcmdvdCBteSBwYXNzd29yZCcsXHJcbiAgICB3ZWxjb21lOiAnV2VsY29tZScsXHJcbiAgICBzdXBwb3J0OiAnU3VwcG9ydCdcclxuICB9LFxyXG4gIGVzOiA8UG9QYWdlTG9naW5MaXRlcmFscz57XHJcbiAgICB0aXRsZTogJ0JpZW52ZW5pZG8nLFxyXG4gICAgbG9naW5FcnJvclBhdHRlcm46ICdMb2dpbiBpbnbDoWxpZG8nLFxyXG4gICAgbG9naW5IaW50OiBgU3UgdXN1YXJpbyBoYSBzaWRvIGVudHJlZ2FkbyBwYXJhIHVzdGVkIGVuIHN1IHByaW1lciBkw61hLlxyXG4gICAgU2kgbm8gdGllbmUgZXN0YSBpbmZvcm1hY2nDs24sIHDDs25nYXNlIGVuIGNvbnRhY3RvIGNvbiBlbCBzb3BvcnRlIHTDqWNuaWNvYCxcclxuICAgIGxvZ2luUGxhY2Vob2xkZXI6ICdJbnNlcnRlIHN1IGUtbWFpbCcsXHJcbiAgICBwYXNzd29yZEVycm9yUGF0dGVybjogJ0NvbnRyYXNlw7FhIGludsOhbGlkYScsXHJcbiAgICBwYXNzd29yZFBsYWNlaG9sZGVyOiAnSW5zZXJ0ZSBzdSBjb250cmFzZcOxYScsXHJcbiAgICBjdXN0b21GaWVsZEVycm9yUGF0dGVybjogJ1ZhbG9yIG5vIHbDoWxpZG8uJyxcclxuICAgIGN1c3RvbUZpZWxkUGxhY2Vob2xkZXI6ICdQb3IgZmF2b3IgaW50cm9kdXpjYSB1biB2YWxvcicsXHJcbiAgICByZW1lbWJlclVzZXI6ICdJbmljaW8gZGUgc2VzacOzbiBhdXRvbcOhdGljYW1lbnRlJyxcclxuICAgIHJlbWVtYmVyVXNlckhpbnQ6ICdQdWVkZSBkZXNoYWJpbGl0YXIgZXN0YSBvcGNpw7NuIGVuIGVsIG1lbsO6IGRlbCBzaXN0ZW1hLicsXHJcbiAgICBzdWJtaXRMYWJlbDogJ0VudHJhcicsXHJcbiAgICBzdWJtaXR0ZWRMYWJlbDogJ0NhcmdhbmRvLi4uJyxcclxuICAgIGZvcmdvdFBhc3N3b3JkOiAnT2x2aWRhc3RlIHR1IGNvbnRyYXNlw7FhPycsXHJcbiAgICBoaWdobGlnaHRJbmZvOiAnJyxcclxuICAgIHJlZ2lzdGVyVXJsOiAnTnVldm8gcmVnaXN0cm8nLFxyXG4gICAgdGl0bGVQb3BvdmVyOiAnT3BhIScsXHJcbiAgICBmb3Jnb3RZb3VyUGFzc3dvcmQ6ICdPbHZpZGFzdGUgdHUgY29udHJhc2XDsWE/JyxcclxuICAgIGlmWW91VHJ5SGFyZGVyOiAnU2kgaW50ZW50YSBtw6FzICcsXHJcbiAgICBhdHRlbXB0czogJ3swfSB2ZXovdmVjZXMgJyxcclxuICAgIHlvdXJVc2VyV2lsbEJlQmxvY2tlZDogJ3NpbiDDqXhpdG8gc3UgdXN1YXJpbyBzZXJhIGJsb3F1ZWFkbyB5IHVzdGVkIHbDoXMgcGVybWFuZWNlciAyNCBob3JhcyBzaW4gcG9kZXIgYWNjZWRlciBhIDooJyxcclxuICAgIGNyZWF0ZUFOZXdQYXNzd29yZE5vdzpcclxuICAgICAgJ8KhTWVqb3IgY3JlYXIgdW5hIG51ZXZhIGNvbnRyYXNlw7FhIGFob3JhISBVc3RlZCBwb2Ryw6EgZW50cmFyIGVuIGVsIHNpc3RlbWEgaW5tZWRpYXRhbWVudGUgZGVzcHXDqXMuJyxcclxuICAgIGlGb3Jnb3RNeVBhc3N3b3JkOiAnT2x2aWRlIG1pIGNvbnRyYXNlw7FhJyxcclxuICAgIHdlbGNvbWU6ICdCaWVudmVuaWRvJyxcclxuICAgIHN1cHBvcnQ6ICdTb3BvcnRlJ1xyXG4gIH0sXHJcbiAgcHQ6IDxQb1BhZ2VMb2dpbkxpdGVyYWxzPntcclxuICAgIHRpdGxlOiAnQmVtLXZpbmRvJyxcclxuICAgIGxvZ2luRXJyb3JQYXR0ZXJuOiAnTG9naW4gaW52w6FsaWRvJyxcclxuICAgIGxvZ2luSGludDogYFNldSB1c3XDoXJpbyBmb2kgZW50cmVndWUgYSB2b2PDqiBubyBzZXUgcHJpbWVpcm8gZGlhLlxyXG4gICAgQ2FzbyBuw6NvIHRlbmhhIG1haXMgZXNzYSBpbmZvcm1hw6fDo28gY29udGFjdGUgbyBzdXBvcnRlYCxcclxuICAgIGxvZ2luUGxhY2Vob2xkZXI6ICdJbnNpcmEgc2V1IGUtbWFpbCcsXHJcbiAgICBwYXNzd29yZEVycm9yUGF0dGVybjogJ1NlbmhhIGludsOhbGlkYScsXHJcbiAgICBwYXNzd29yZFBsYWNlaG9sZGVyOiAnSW5zaXJhIHN1YSBzZW5oYScsXHJcbiAgICBjdXN0b21GaWVsZEVycm9yUGF0dGVybjogJ1ZhbG9yIGludsOhbGlkby4nLFxyXG4gICAgY3VzdG9tRmllbGRQbGFjZWhvbGRlcjogJ1BvciBmYXZvciBpbnNpcmEgdW0gdmFsb3InLFxyXG4gICAgcmVtZW1iZXJVc2VyOiAnTG9nYXIgYXV0b21hdGljYW1lbnRlJyxcclxuICAgIHJlbWVtYmVyVXNlckhpbnQ6ICdWb2PDqiBwb2RlIGRlc2FiaWxpdGFyIGVzc2Egb3DDp8OjbyBubyBtZW51IGRvIHNpc3RlbWEnLFxyXG4gICAgc3VibWl0TGFiZWw6ICdFbnRyYXInLFxyXG4gICAgc3VibWl0dGVkTGFiZWw6ICdDYXJyZWdhbmRvLi4uJyxcclxuICAgIGZvcmdvdFBhc3N3b3JkOiAnRXNxdWVjZXUgc3VhIHNlbmhhPycsXHJcbiAgICBoaWdobGlnaHRJbmZvOiAnJyxcclxuICAgIHJlZ2lzdGVyVXJsOiAnTm92byByZWdpc3RybycsXHJcbiAgICB0aXRsZVBvcG92ZXI6ICdPcGEhJyxcclxuICAgIGZvcmdvdFlvdXJQYXNzd29yZDogJ0VzcXVlY2V1IHN1YSBzZW5oYT8nLFxyXG4gICAgaWZZb3VUcnlIYXJkZXI6ICdTZSB0ZW50YXIgbWFpcyAnLFxyXG4gICAgYXR0ZW1wdHM6ICd7MH0gdmV6KGVzKSAnLFxyXG4gICAgeW91clVzZXJXaWxsQmVCbG9ja2VkOiAnc2VtIHN1Y2Vzc28gc2V1IHVzdcOhcmlvIHNlcsOhIGJsb3F1ZWFkbyBlIHZvY8OqIGZpY2EgMjQgaG9yYXMgc2VtIHBvZGVyIGFjZXNzYXIgOignLFxyXG4gICAgY3JlYXRlQU5ld1Bhc3N3b3JkTm93OiAnTWVsaG9yIGNyaWFyIHVtYSBzZW5oYSBub3ZhIGFnb3JhISBWb2PDqiB2YWkgcG9kZXIgZW50cmFyIG5vIHNpc3RlbWEgbG9nbyBlbSBzZWd1aWRhLicsXHJcbiAgICBpRm9yZ290TXlQYXNzd29yZDogJ0VzcXVlY2kgbWluaGEgc2VuaGEnLFxyXG4gICAgd2VsY29tZTogJ0JvYXMtdmluZGFzJyxcclxuICAgIHN1cHBvcnQ6ICdTdXBvcnRlJ1xyXG4gIH0sXHJcbiAgcnU6IDxQb1BhZ2VMb2dpbkxpdGVyYWxzPntcclxuICAgIHRpdGxlOiAn0JTQvtCx0YDQviDQv9C+0LbQsNC70L7QstCw0YLRjCEnLFxyXG4gICAgbG9naW5FcnJvclBhdHRlcm46ICfQndC10LLQtdGA0L3Ri9C5INC70L7Qs9C40L0nLFxyXG4gICAgbG9naW5IaW50OiBg0JLQsNGIINC70L7Qs9C40L0g0LHRi9C7INC/0YDQtdC00L7RgdGC0LDQstC70LXQvSDQstCw0Lwg0LIg0L/QtdGA0LLRi9C5INC00LXQvdGMLlxyXG4gICAg0JXRgdC70Lgg0YMg0LLQsNGBINC90LXRgiDRjdGC0L7QuSDQuNC90YTQvtGA0LzQsNGG0LjQuCwg0L7QsdGA0LDRgtC40YLQtdGB0Ywg0LIg0YHQu9GD0LbQsdGDINC/0L7QtNC00LXRgNC20LrQuGAsXHJcbiAgICBsb2dpblBsYWNlaG9sZGVyOiAn0JLRgdGC0LDQstGM0YLQtSDRgdCy0L7QuSDQsNC00YDQtdGBINGN0LvQtdC60YLRgNC+0L3QvdC+0Lkg0L/QvtGH0YLRiycsXHJcbiAgICBwYXNzd29yZEVycm9yUGF0dGVybjogJ9Cd0LXQstC10YDQvdGL0Lkg0L/QsNGA0L7Qu9GMJyxcclxuICAgIHBhc3N3b3JkUGxhY2Vob2xkZXI6ICfQktCy0LXQtNC40YLQtSDRgdCy0L7QuSDQv9Cw0YDQvtC70YwnLFxyXG4gICAgY3VzdG9tRmllbGRFcnJvclBhdHRlcm46ICfQndC10LLQtdGA0L3QvtC1INC30L3QsNGH0LXQvdC40LUuJyxcclxuICAgIGN1c3RvbUZpZWxkUGxhY2Vob2xkZXI6ICfQn9C+0LbQsNC70YPQudGB0YLQsCwg0LLQstC10LTQuNGC0LUg0LfQvdCw0YfQtdC90LjQtScsXHJcbiAgICByZW1lbWJlclVzZXI6ICfQkNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuNC5INCy0YXQvtC0JyxcclxuICAgIHJlbWVtYmVyVXNlckhpbnQ6ICfQktGLINC80L7QttC10YLQtSDQvtGC0LrQu9GO0YfQuNGC0Ywg0Y3RgtGDINC+0L/RhtC40Y4g0LIg0LrQvtC90YTQuNCz0YPRgNCw0YbQuNC4INGB0LjRgdGC0LXQvNGLJyxcclxuICAgIHN1Ym1pdExhYmVsOiAn0JLQvtC50YLQuCcsXHJcbiAgICBzdWJtaXR0ZWRMYWJlbDogJzPQsNCz0YDRg9C30LrQsC4uLicsXHJcbiAgICBmb3Jnb3RQYXNzd29yZDogJ9CX0LDQsdGL0LvQuCDQv9Cw0YDQvtC70Yw/JyxcclxuICAgIGhpZ2hsaWdodEluZm86ICcnLFxyXG4gICAgcmVnaXN0ZXJVcmw6ICfQndC+0LLRi9C5INGA0LXQs9C40YHRgtGAJyxcclxuICAgIHRpdGxlUG9wb3ZlcjogJ9Ce0LkhJyxcclxuICAgIGZvcmdvdFlvdXJQYXNzd29yZDogJ9CX0LDQsdGL0LvQuCDQv9Cw0YDQvtC70Yw/JyxcclxuICAgIGlmWW91VHJ5SGFyZGVyOiAn0JXRgdC70Lgg0LLRiyDQsdC10LfRg9GB0L/QtdGI0L3QviDQv9C+0L/Ri9GC0LDQtdGC0LXRgdGMINCy0L7QudGC0Lgg0LXRidC1ICcsXHJcbiAgICBhdHRlbXB0czogJ3swfSDRgNCw0Lco0LApICcsXHJcbiAgICB5b3VyVXNlcldpbGxCZUJsb2NrZWQ6ICfQktCw0Ygg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GMINCx0YPQtNC10YIg0LfQsNCx0LvQvtC60LjRgNC+0LLQsNC9LCDQuCDQktGLINC+0YHRgtCw0L3QtdGC0LXRgdGMINC90LAgMjQg0YfQsNGB0LAg0LHQtdC3INCy0L7Qt9C80L7QttC90L7RgdGC0Lgg0LTQvtGB0YLRg9C/0LAgOignLFxyXG4gICAgY3JlYXRlQU5ld1Bhc3N3b3JkTm93OiAn0JvRg9GH0YjQtSDRgdC+0LfQtNCw0LnRgtC1INC90L7QstGL0Lkg0L/QsNGA0L7Qu9GMINGB0LXQudGH0LDRgSHCoNCS0Ysg0YHQvNC+0LbQtdGC0LUg0YHRgNCw0LfRgyDQstC+0LnRgtC4INCyINGB0LjRgdGC0LXQvNGDLicsXHJcbiAgICBpRm9yZ290TXlQYXNzd29yZDogJ9CvINC30LDQsdGL0Lsg0YHQstC+0Lkg0L/QsNGA0L7Qu9GMJyxcclxuICAgIHdlbGNvbWU6ICfQtNC+0LHRgNC+INC/0L7QttCw0LvQvtCy0LDRgtGMJyxcclxuICAgIHN1cHBvcnQ6ICfQn9C+0LTQtNC10YDQttC60LAnXHJcbiAgfVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHBvUGFnZUxvZ2luTGl0ZXJhbEluID0ge1xyXG4gIGVuOiAnaW4nLFxyXG4gIGVzOiAnZW4nLFxyXG4gIHB0OiAnZW0nLFxyXG4gIHJ1OiAn0LInXHJcbn07XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqXHJcbiAqIE8gY29tcG9uZW50ZSBgcG8tcGFnZS1sb2dpbmAgw6kgdXRpbGl6YWRvIGNvbW8gdGVtcGxhdGUgcGFyYSB0ZWxhIGRlIGxvZ2luLlxyXG4gKiBDb20gZWxlIMOpIHBvc3PDrXZlbCBkZWZpbmlybW9zIHZhbG9yZXMgcGFyYSB1c3XDoXJpbywgc2VuaGEgZSBkZWZpbmlyIGHDp8O1ZXMgcGFyYSByZWN1cGVyYcOnw6NvIGRlIHNlbmhhIGUgZ3JhdmHDp8OjbyBkZSBkYWRvcyBkbyB1c3XDoXJpby5cclxuICogVGFtYsOpbSDDqSBwb3Nzw612ZWwgaW5zZXJpciB1bWEgaW1hZ2VtIGVtIGNvbmp1bnRvIGNvbSB1bSB0ZXh0byBkZSBkZXN0YXF1ZS5cclxuICpcclxuICpcclxuICogQSBwcm9wcmllZGFkZSBgcC1hdXRoZW50aWNhdGlvbi11cmxgIGF1dG9tYXRpemEgYSByb3RpbmEgZG8gY29tcG9uZW50ZSBlIHNpbXBsaWZpY2EgbyBwcm9jZXNzbyBwYXJhIGF1dGVudGljYcOnw6NvIGRvIHVzdcOhcmlvLCBiYXN0YW5kb1xyXG4gKiBkZWZpbmlyIHVtYSB1cmwgcGFyYSByZXF1aXNpw6fDo28gZGEgYXV0ZW50aWNhw6fDo28uIEEgZmxleGliaWxpZGFkZSBlIHByYXRpY2lkYWRlIHBvZGVtIGNoZWdhciBhIHVtIG7DrXZlbCBlbSBxdWUgbyBkZXNlbnZvbHZpbWVudG9cclxuICogZGEgYXBsaWNhw6fDo28gbm8gKmNsaWVudCBzaWRlKiDDqSBkZXNwcm92aWRhIGRlIHF1YWxxdWVyIGPDs2RpZ28tZm9udGUgcmVsYWNpb25hZG8gw6Agcm90aW5hIGRlIGxvZ2luIGRlIHVzdcOhcmlvLlxyXG4gKiBTZXUgZGV0YWxoYW1lbnRvIHBhcmEgdXNvIHBvZGUgc2VyIHZpc3RvIGxvZ28gYWJhaXhvIGVtICpwcm9wcmllZGFkZXMqLlxyXG4gKiBDYXNvIGp1bGd1ZSBuZWNlc3PDoXJpbywgcG9kZS1zZSB0YW1iw6ltIGRlZmluaXIgbWFudWFsbWVudGUgYSByb3RpbmEgZG8gY29tcG9uZW50ZS5cclxuICpcclxuICpcclxuICogUGFyYSBxdWUgYXMgaW1hZ2VucyBzZWphbSBleGliaWRhcyBjb3JyZXRhbWVudGUsIMOpIG5lY2Vzc8OhcmlvIGluY2x1aXIgbyBjYW1pbmhvIGRlbGFzIGFvIHByb2pldG8uIFBhcmEgaXNzbywgZWRpdGVcclxuICogbyAqYXNzZXRzKiBubyBhcnF1aXZvICoqYW5ndWxhci5qc29uKiogZGEgYXBsaWNhw6fDo28gbmEgc2VndWludGUgb3JkZW06XHJcbiAqIGBgYFxyXG4gKiAgIFwiYXNzZXRzXCI6IFtcclxuICogICAgIFwic3JjL2Fzc2V0c1wiLFxyXG4gKiAgICAgXCJzcmMvZmF2aWNvbi5pY29cIixcclxuICogICAgIHtcclxuICogICAgICAgXCJnbG9iXCI6IFwiKipcXC8qXCIsXHJcbiAqICAgICAgIFwiaW5wdXRcIjogXCJub2RlX21vZHVsZXMvQHBvLXVpL3N0eWxlL2ltYWdlc1wiLFxyXG4gKiAgICAgICBcIm91dHB1dFwiOiBcImFzc2V0cy9pbWFnZXNcIlxyXG4gKiAgICAgfVxyXG4gKiAgIF1cclxuICogYGBgXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBvUGFnZUxvZ2luQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgLyoqXHJcbiAgICogTyBgcC1iYWNrZ3JvdW5kYCBwZXJtaXRlIGluc2VyaXIgdW1hIGltYWdlbSBkZSBkZXN0YXF1ZSBhbyBsYWRvIGRpcmVpdG8gZG8gZm9ybXVsw6FyaW8gZGUgbG9naW4sIGNhc28gYSBwcm9wcmllZGFkZVxyXG4gICAqIG7Do28gc2VqYSBwcmVlbmNoaWRhIG8gZm9ybXVsw6FyaW8gc2Vyw6EgY2VudHJhbGl6YWRvIG5vIGVzcGHDp28gZGlzcG9uw612ZWwuXHJcbiAgICpcclxuICAgKiBBIGZvbnRlIGRhIGltYWdlbSBwb2RlIHNlciBkZSB1bSBjYW1pbmhvIGxvY2FsIG91IHVtYSB1cmwgZGUgdW0gc2Vydmlkb3IgZXh0ZXJuby5cclxuICAgKlxyXG4gICAqIEFsw6ltIGRhIGltYWdlbSwgw6kgcG9zc8OtdmVsIGFkaWNpb25hciB1bSB0ZXh0byBpbmZvcm1hdGl2byBwb3IgY2ltYSBkYSBpbWFnZW0gZGEgaW1hZ2VtIGRlIGRlc3RhcXVlLCBwYXJhIGlzc28gaW5mb3JtZVxyXG4gICAqIHVtIHZhbG9yIHBhcmEgYSBsaXRlcmFsIGBoaWdobGlnaHRJbmZvYC5cclxuICAgKlxyXG4gICAqID4gVmVqYSBtYWlzIHNvYnJlIGFzIGxpdGVyYWlzIG5hIHByb3ByaWVkYWRlIGBwLWxpdGVyYWxzYC5cclxuICAgKlxyXG4gICAqIEV4ZW1wbG9zIGRlIHZhbG9yZXMgdsOhbGlkb3M6XHJcbiAgICogLSAqKmxvY2FsKio6IGAuL2Fzc2V0cy9pbWFnZXMvbG9naW4tYmFja2dyb3VuZC5wbmdgXHJcbiAgICogLSAqKnVybCBleHRlcm5hKio6IGBodHRwczovL3BvLXVpLmlvL2Fzc2V0cy9pbWFnZXMvbG9naW4tYmFja2dyb3VuZC5wbmdgXHJcbiAgICpcclxuICAgKiA+IEVzc2EgcHJvcHJpZWRhZGUgw6kgaWdub3JhZGEgcGFyYSBhcGxpY2HDp8O1ZXMgbW9iaWxlLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1iYWNrZ3JvdW5kJykgYmFja2dyb3VuZD86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIENhbWluaG8gcGFyYSBhIGxvZ29tYXJjYSBsb2NhbGl6YWRhIG5hIHBhcnRlIHN1cGVyaW9yLlxyXG4gICAqXHJcbiAgICogPiBDYXNvIHNlamEgaW5kZWZpbmlkYSBvIGVzcGHDp28gc2UgbWFudMOpbSBwcmVzZXJ2YWRvIHBvcsOpbSB2YXppby5cclxuICAgKi9cclxuICBASW5wdXQoJ3AtbG9nbycpIGxvZ28/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBvcHRpb25hbFxyXG4gICAqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBFeHByZXNzw6NvIHJlZ3VsYXIgcGFyYSB2YWxpZGFyIG8gY2FtcG8gZGUgbG9naW4sIGNhc28gYSBleHByZXNzw6NvIG7Do28gc2VqYSBhdGVudGlkYSwgYSBsaXRlcmFsIGBsb2dpbkVycm9yUGF0dGVybmBcclxuICAgKiBzZXLDoSBleGliaWRhLlxyXG4gICAqXHJcbiAgICogRXhlbXBsb3MgZGUgdmFsb3JlcyB2w6FsaWRvczpcclxuICAgKiAtIGVtYWlsOiBgW2V4cHJlc3Nhby1yZWd1bGFyLWVtYWlsXWBcclxuICAgKiAtIGNwZjogYFtleHByZXNzYW8tcmVndWxhci1jcGZdYFxyXG4gICAqXHJcbiAgICogPiBWZWphIGEgcHJvcHJpZWRhZGUgYHAtbGl0ZXJhbHNgIHBhcmEgY3VzdG9taXphciBhIGxpdGVyYWwgYGxvZ2luRXJyb3JQYXR0ZXJuYC5cclxuICAgKi9cclxuICBASW5wdXQoJ3AtbG9naW4tcGF0dGVybicpIGxvZ2luUGF0dGVybj86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIEV4cHJlc3PDo28gcmVndWxhciBwYXJhIHZhbGlkYXIgbyBjYW1wbyBkZSBwYXNzd29yZCwgY2FzbyBhIGV4cHJlc3PDo28gbsOjbyBzZWphIGF0ZW50aWRhLCBhIGxpdGVyYWwgYHBhc3N3b3JkRXJyb3JQYXR0ZXJuYFxyXG4gICAqIHNlcsOhIGV4aWJpZGEuXHJcbiAgICpcclxuICAgKiBFeGVtcGxvcyBkZSB2YWxvcmVzIHbDoWxpZG9zOlxyXG4gICAqIC0gQXBlbmFzIG7Dum1lcm9zOiBgXFxkP2BcclxuICAgKiAtIExldHJhcyBtw61udXNjdWxhczogYFxcej9gXHJcbiAgICpcclxuICAgKiA+IFZlamEgYSBwcm9wcmllZGFkZSBgcC1saXRlcmFsc2AgcGFyYSBjdXN0b21pemFyIGEgbGl0ZXJhbCBgcGFzc3dvcmRFcnJvclBhdHRlcm5gLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1wYXNzd29yZC1wYXR0ZXJuJykgcGFzc3dvcmRQYXR0ZXJuPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogQ2FtaW5obyBwYXJhIGEgbG9nb21hcmNhIGxvY2FsaXphZGEgbm8gcm9kYXDDqS5cclxuICAgKi9cclxuICBASW5wdXQoJ3Atc2Vjb25kYXJ5LWxvZ28nKSBzZWNvbmRhcnlMb2dvPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogRXZlbnRvIGRpc3BhcmFkbyBxdWFuZG8gbyB1c3XDoXJpbyBhbHRlcmFyIG8gaW5wdXQgZG8gY2FtcG8gbG9naW4uXHJcbiAgICpcclxuICAgKiBFc3NlIGV2ZW50byByZWNlYmVyw6EgY29tbyBwYXLDom1ldHJvIHVtYSB2YXJpw6F2ZWwgZG8gdGlwbyBgc3RyaW5nYCBjb20gbyB0ZXh0byBpbmZvcm1hZG8gbm8gY2FtcG8uXHJcbiAgICpcclxuICAgKiA+IEVzdGEgcHJvcHJpZWRhZGUgc2Vyw6EgaWdub3JhZGEgc2UgZm9yIGRlZmluaWRvIHZhbG9yIHBhcmEgYSBwcm9wcmllZGFkZSBgcC1hdXRoZW50aWNhdGlvbi11cmxgLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoJ3AtbG9naW4tY2hhbmdlJykgbG9naW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gYW8gc3VibWV0ZXIgbyBmb3JtdWzDoXJpbyBkZSBsb2dpbiAoYXBlcnRhbmRvIGBFbnRlcmAgZGVudHJvIGRvcyBjYW1wb3Mgb3UgcHJlc3Npb25hbmRvIG8gYm90w6NvIGRlIGNvbmZpcm1hw6fDo28pLlxyXG4gICAqXHJcbiAgICogRXNzZSBldmVudG8gcmVjZWJlcsOhIGNvbW8gcGFyw6JtZXRybyB1bSBvYmpldG8gZG8gdGlwbyBgUG9QYWdlTG9naW5gIGNvbSBvcyBkYWRvcyBpbmZvcm1hZG9zIG5vIGZvcm11bMOhcmlvLlxyXG4gICAqXHJcbiAgICogPiBFc3RhIHByb3ByaWVkYWRlIHNlcsOhIGlnbm9yYWRhIHNlIGZvciBkZWZpbmlkbyB2YWxvciBwYXJhIGEgcHJvcHJpZWRhZGUgYHAtdXJsLXJlY292ZXJ5YC5cclxuICAgKlxyXG4gICAqID4gUGFyYSBtYWlzIGRldGFsaGVzIGNvbnN1bHRlIGEgZG9jdW1lbnRhw6fDo28gc29icmUgYSBpbnRlcmZhY2UgYFBvUGFnZUxvZ2luYCBtYWlzIGFiYWl4by5cclxuICAgKi9cclxuICBAT3V0cHV0KCdwLWxvZ2luLXN1Ym1pdCcpIGxvZ2luU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxQb1BhZ2VMb2dpbj4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gcXVhbmRvIG8gdXN1w6FyaW8gYWx0ZXJhciBvIGlucHV0IGRvIGNhbXBvIHBhc3N3b3JkLlxyXG4gICAqXHJcbiAgICogRXNzZSBldmVudG8gcmVjZWJlcsOhIGNvbW8gcGFyw6JtZXRybyB1bWEgdmFyacOhdmVsIGRvIHRpcG8gYHN0cmluZ2AgY29tIG8gdGV4dG8gaW5mb3JtYWRvIG5vIGNhbXBvLlxyXG4gICAqXHJcbiAgICogPiBFc3RhIHByb3ByaWVkYWRlIHNlcsOhIGlnbm9yYWRhIHNlIGZvciBkZWZpbmlkbyB2YWxvciBwYXJhIGEgcHJvcHJpZWRhZGUgYHAtYXV0aGVudGljYXRpb24tdXJsYC5cclxuICAgKi9cclxuICBAT3V0cHV0KCdwLXBhc3N3b3JkLWNoYW5nZScpIHBhc3N3b3JkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogRXZlbnRvIGRpc3BhcmFkbyBxdWFuZG8gbyB1c3XDoXJpbyBhbHRlcmFyIG8gaWRpb21hIGRhIHDDoWdpbmEuXHJcbiAgICpcclxuICAgKiBFc3NlIGV2ZW50byByZWNlYmVyw6EgY29tbyBwYXLDom1ldHJvIHVtIG9iamV0byBkbyB0aXBvIGBQb0xhbmd1YWdlYCBjb20gYSBsaW5ndWFnZW0gc2VsZWNpb25hZGEuXHJcbiAgICpcclxuICAgKi9cclxuICBAT3V0cHV0KCdwLWxhbmd1YWdlLWNoYW5nZScpIGxhbmd1YWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UG9MYW5ndWFnZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFBvTGFuZ3VhZ2U+KCk7XHJcblxyXG4gIGFsbExvZ2luRXJyb3JzOiBBcnJheTxzdHJpbmc+ID0gW107XHJcbiAgYWxsUGFzc3dvcmRFcnJvcnM6IEFycmF5PHN0cmluZz4gPSBbXTtcclxuICBjdXN0b21GaWVsZE9iamVjdDogUG9QYWdlTG9naW5DdXN0b21GaWVsZDtcclxuICBjdXN0b21GaWVsZFR5cGU6IHN0cmluZztcclxuICBsb2dpblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgcmVtZW1iZXJVc2VyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRMYW5ndWFnZTogc3RyaW5nO1xyXG4gIHNob3dFeGNlZWRlZEF0dGVtcHRzV2FybmluZyA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9hdXRoZW50aWNhdGlvblR5cGU6IFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlID0gUG9QYWdlTG9naW5BdXRoZW50aWNhdGlvblR5cGUuQmFzaWM7XHJcbiAgcHJpdmF0ZSBfYXV0aGVudGljYXRpb25Vcmw6IHN0cmluZztcclxuICBwcml2YXRlIF9ibG9ja2VkVXJsOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfY29udGFjdEVtYWlsOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfY3VzdG9tRmllbGQ6IHN0cmluZyB8IFBvUGFnZUxvZ2luQ3VzdG9tRmllbGQ7XHJcbiAgcHJpdmF0ZSBfZW52aXJvbm1lbnQ/OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfZXhjZWVkZWRBdHRlbXB0c1dhcm5pbmc/OiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBfaGlkZVJlbWVtYmVyVXNlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2xpdGVyYWxzOiBQb1BhZ2VMb2dpbkxpdGVyYWxzO1xyXG4gIHByaXZhdGUgX2xvYWRpbmc/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfbG9naW46IHN0cmluZztcclxuICBwcml2YXRlIF9sb2dpbkVycm9yczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG4gIHByaXZhdGUgX3Bhc3N3b3JkRXJyb3JzOiBBcnJheTxzdHJpbmc+ID0gW107XHJcbiAgcHJpdmF0ZSBfcHJvZHVjdE5hbWU6IHN0cmluZztcclxuICBwcml2YXRlIF9yZWNvdmVyeTogc3RyaW5nIHwgUG9QYWdlTG9naW5SZWNvdmVyeSB8IEZ1bmN0aW9uO1xyXG4gIHByaXZhdGUgX3JlZ2lzdGVyVXJsOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfc3VwcG9ydDogc3RyaW5nIHwgRnVuY3Rpb247XHJcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2VzTGlzdDogQXJyYXk8UG9MYW5ndWFnZT47XHJcblxyXG4gIC8qKlxyXG4gICAqIEBvcHRpb25hbFxyXG4gICAqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBBbyBpbmZvcm1hciB1bSB2YWxvciBkbyB0aXBvIGBzdHJpbmdgLCBvIG1lc21vIHNlcsOhIGFwbGljYWRvIGNvbW8gYSBjaGF2ZSBkbyBjYW1wbyBjdXN0b21pemFkbyBlIHV0aWxpemFyw6FcclxuICAgKiBvcyB2YWxvcmVzIHBhZHLDtWVzIGNvbnRpZG9zIG5hIHByb3ByaWVkYWRlIGBsaXRlcmFsc2AgY29tbyBgY3VzdG9tRmllbGRFcnJvclBhdHRlcm5gIGUgYGN1c3RvbUZpZWxkUGxhY2Vob2xkZXJgLlxyXG4gICAqXHJcbiAgICogRXhpc3RlIGEgcG9zc2liaWxpZGFkZSBkZSBpbmZvcm1hciB1bSBvYmpldG8gcXVlIHNlZ3VlIGEgZGVmaW5pw6fDo28gZGEgaW50ZXJmYWNlIGBQb1BhZ2VMb2dpbkN1c3RvbUZpZWxkYCwgb25kZVxyXG4gICAqIGF0cmF2w6lzIGRvcyBwYXLDom1ldHJvcyBlbnZpYWRvcyBwb2RlIGdlcmFyIHVtIGBwby1pbnB1dGAsIGBwby1jb21ib2AgZXNwZWNpZmljYW1lbnRlIHBhcmEgc2VydmnDp29zXHJcbiAgICogb3UgYHBvLXNlbGVjdGAgcGFyYSB2YWxvcmVzIGZpeG9zLlxyXG4gICAqXHJcbiAgICogQWJhaXhvIHNlZ3VlbSBvcyBleGVtcGxvcyBkZSBjYWRhIHRpcG8gZGUgY2FtcG8uXHJcbiAgICpcclxuICAgKiBgcG8taW5wdXRgOlxyXG4gICAqXHJcbiAgICogYGBgXHJcbiAgICoge1xyXG4gICAqICAgcHJvcGVydHk6ICdkb21haW4nLFxyXG4gICAqICAgdmFsdWU6ICdqdjAxJyxcclxuICAgKiAgIHBsYWNlaG9sZGVyOiAnRW50ZXIgeW91ciBkb21haW4nLFxyXG4gICAqICAgcGF0dGVybjogJ1thLXpdJyxcclxuICAgKiAgIGVycm9yUGF0dGVybjogJ0ludmFsaWQgdmFsdWUnXHJcbiAgICogfVxyXG4gICAqIGBgYFxyXG4gICAqXHJcbiAgICogYHBvLWNvbWJvYDpcclxuICAgKlxyXG4gICAqIGBgYFxyXG4gICAqIHtcclxuICAgKiAgIHByb3BlcnR5OiAnZG9tYWluJyxcclxuICAgKiAgIHZhbHVlOiAnanYwMScsXHJcbiAgICogICBwbGFjZWhvbGRlcjogJ0VudGVyIHlvdXIgZG9tYWluJyxcclxuICAgKiAgIHVybDogJ2h0dHBzOi8vcG8tdWkuaW8vc2FtcGxlL2FwaS9jb21ib09wdGlvbi9kb21haW5zJyxcclxuICAgKiAgIGZpZWxkVmFsdWU6ICduaWNrbmFtZSdcclxuICAgKiB9XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiBgcG8tc2VsZWN0YDpcclxuICAgKlxyXG4gICAqIGBgYFxyXG4gICAqIHtcclxuICAgKiAgIHByb3BlcnR5OiAnZG9tYWluJyxcclxuICAgKiAgIHZhbHVlOiAnanYwMScsXHJcbiAgICogICBwbGFjZWhvbGRlcjogJ0VudGVyIHlvdXIgZG9tYWluJyxcclxuICAgKiAgIG9wdGlvbnM6IFt7bGFiZWw6ICdEb21haW4gMScsIHZhbHVlOiAnMSd9LCB7bGFiZWw6ICdEb21haW4gMicsIHZhbHVlOiAnMid9XVxyXG4gICAqIH1cclxuICAgKiBgYGBcclxuICAgKlxyXG4gICAqIENhc28gbyBjdXN0b21GaWVsZCBwb3NzdWEgb3B0aW9ucywgdXJsIGUgZmllbGRWYWx1ZSBwcmVlbmNoaWRvcywgc2Vyw6EgcHJpb3JpemFkbyBvIHBvLXNlbGVjdFxyXG4gICAqIHV0aWxpemFuZG8gbyBvcHRpb25zLlxyXG4gICAqXHJcbiAgICovXHJcbiAgQElucHV0KCdwLWN1c3RvbS1maWVsZCcpIHNldCBjdXN0b21GaWVsZCh2YWx1ZTogc3RyaW5nIHwgUG9QYWdlTG9naW5DdXN0b21GaWVsZCkge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGlmIChpc1R5cGVvZih2YWx1ZSwgJ3N0cmluZycpKSB7XHJcbiAgICAgICAgdGhpcy5jdXN0b21GaWVsZFR5cGUgPSAnaW5wdXQnO1xyXG4gICAgICAgIHRoaXMuX2N1c3RvbUZpZWxkID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jdXN0b21GaWVsZE9iamVjdCA9IHRoaXMuZ2V0RGVmYXVsdEN1c3RvbUZpZWxkT2JqZWN0KHZhbHVlKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpc1R5cGVvZih2YWx1ZSwgJ29iamVjdCcpICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZVsncHJvcGVydHknXSkge1xyXG4gICAgICAgIHRoaXMuX2N1c3RvbUZpZWxkID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jdXN0b21GaWVsZE9iamVjdCA9IDxQb1BhZ2VMb2dpbkN1c3RvbUZpZWxkPnZhbHVlO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuY3VzdG9tRmllbGRPYmplY3Qub3B0aW9ucyAmJiAhdGhpcy5jdXN0b21GaWVsZE9iamVjdC51cmwpIHtcclxuICAgICAgICAgIHRoaXMuY3VzdG9tRmllbGRUeXBlID0gJ2lucHV0JztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jdXN0b21GaWVsZFR5cGUgPSB0aGlzLmN1c3RvbUZpZWxkT2JqZWN0Lm9wdGlvbnMgPyAnc2VsZWN0JyA6ICdjb21ibyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9jdXN0b21GaWVsZCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuY3VzdG9tRmllbGRPYmplY3QgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgY3VzdG9tRmllbGQoKTogc3RyaW5nIHwgUG9QYWdlTG9naW5DdXN0b21GaWVsZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fY3VzdG9tRmllbGQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogUGVyc29uYWxpemEgbyBlLW1haWwgcXVlIMOpIGV4aWJpZG8gbmEgbWVuc2FnZW0gZGUgZGljYSBkZSBsb2dpbiBwYWRyw6NvIHBhcmEgY29udGF0byBkZSBzdXBvcnRlLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1jb250YWN0LWVtYWlsJykgc2V0IGNvbnRhY3RFbWFpbCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9jb250YWN0RW1haWwgPSB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IGNvbnRhY3RFbWFpbCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb250YWN0RW1haWw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogVGV4dG8gY3VzdG9taXphZG8gcXVlIGZpY2EgZW50cmUgYSBsb2dvIGUgYSBtZW5zYWdlbSBkZSBib2FzLXZpbmRhcy5cclxuICAgKi9cclxuICBASW5wdXQoJ3AtcHJvZHVjdC1uYW1lJykgc2V0IHByb2R1Y3ROYW1lKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3Byb2R1Y3ROYW1lID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCBwcm9kdWN0TmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9wcm9kdWN0TmFtZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBvcHRpb25hbFxyXG4gICAqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICogQWRpY2lvbmEgdW1hIGB0YWdgIGFiYWl4byBkbyB0w610dWxvIHF1ZSBlc3BlY2lmaWNhIG8gYW1iaWVudGUgcXVlIG8gdXN1w6FyaW8gZXN0w6EgZmF6ZW5kbyBvIGxvZ2luLlxyXG4gICAqXHJcbiAgICogPiBFc3NhIHByb3ByaWVkYWRlIGxpbWl0YSBvIHRleHRvIGVtIDQwIGNhcmFjdGVyZXMuXHJcbiAgICovXHJcbiAgQElucHV0KCdwLWVudmlyb25tZW50Jykgc2V0IGVudmlyb25tZW50KGVudmlyb25tZW50OiBzdHJpbmcpIHtcclxuICAgIGlmIChlbnZpcm9ubWVudCAmJiBlbnZpcm9ubWVudC5sZW5ndGggPiBwb1BhZ2VMb2dpbkNvbnRlbnRNYXhMZW5ndGgpIHtcclxuICAgICAgdGhpcy5fZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudC5zdWJzdHJpbmcoMCwgcG9QYWdlTG9naW5Db250ZW50TWF4TGVuZ3RoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2Vudmlyb25tZW50ID0gZW52aXJvbm1lbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldCBlbnZpcm9ubWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9lbnZpcm9ubWVudDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBvcHRpb25hbFxyXG4gICAqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICogRXhpYmUgdW0gYXZpc28gZGUgYmxvcXVlaW8gZGUgYWNvcmRvIGNvbSBhIHF1YW50aWRhZGUgcmVzdGFudGUgZGUgdGVudGF0aXZhcy5cclxuICAgKiBPIGF2aXNvIHNlcsOhIGV4aWJpZG8gc29tZW50ZSBzZSBhIHF1YW50aWRhZGUgZm9yIG1haW9yIHF1ZSB6ZXJvLlxyXG4gICAqXHJcbiAgICogPiBDYXNvIHRlbmhhIGFsZ3VtIHZhbG9yIGF0cmlidcOtZG8gcGFyYSBvIGF0cmlidXRvIGBwLWF1dGhlbnRpY2F0aW9uLXVybGAgZSBvIHJldG9ybm8gZGEgcmVxdWlzacOnw6NvIGVzdGl2ZXIgYXRyaWJ1aW5kbyB2YWxvclxyXG4gICAqIHBhcmEgbyBgcC1leGNlZWRlZC1hdHRlbXB0cy13YXJuaW5nYCwgbyB2YWxvciBjb25zaWRlcmFkbyBzZXLDoSBvIGRvIHJldG9ybm8gZGEgcmVxdWlzacOnw6NvLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgYDBgXHJcbiAgICovXHJcbiAgQElucHV0KCdwLWV4Y2VlZGVkLWF0dGVtcHRzLXdhcm5pbmcnKSBzZXQgZXhjZWVkZWRBdHRlbXB0c1dhcm5pbmcodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fZXhjZWVkZWRBdHRlbXB0c1dhcm5pbmcgPSBjb252ZXJ0VG9JbnQodmFsdWUpO1xyXG4gICAgdGhpcy5zaG93RXhjZWVkZWRBdHRlbXB0c1dhcm5pbmcgPSB0aGlzLmV4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nID4gMDtcclxuICB9XHJcblxyXG4gIGdldCBleGNlZWRlZEF0dGVtcHRzV2FybmluZygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2V4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIEVzY29uZGUgYSBmdW7Dp8OjbyBcIkxlbWJyYXIgdXN1w6FyaW9cIiBkbyBmb3JtdWzDoXJpbyBkZSBsb2dpbi5cclxuICAgKlxyXG4gICAqIFF1YW5kbyBlc3NhIHByb3ByaWVkYWRlIMOpIHNldGFkYSBjb20gYHRydWVgIGEgcHJvcHJpZWRhZGUgYHJlbWVtYmVyVXNlcmAgZW52aWFkYSBubyBldmVudG8gYHAtbG9naW4tc3VibWl0YCBzZXLDoSBzZW1wcmVcclxuICAgKiBgZmFsc2VgLlxyXG4gICAqXHJcbiAgICogPiBWZWphIGEgcHJvcHJpZWRhZGUgYHAtbGl0ZXJhbHNgIHBhcmEgY3VzdG9taXphciBhIGxpdGVyYWwgYHJlbWVtYmVyVXNlcmAuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXHJcbiAgICovXHJcbiAgQElucHV0KCdwLWhpZGUtcmVtZW1iZXItdXNlcicpIHNldCBoaWRlUmVtZW1iZXJVc2VyKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9oaWRlUmVtZW1iZXJVc2VyID0gPGFueT52YWx1ZSA9PT0gJycgPyB0cnVlIDogY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XHJcblxyXG4gICAgaWYgKHRoaXMuX2hpZGVSZW1lbWJlclVzZXIpIHtcclxuICAgICAgdGhpcy5yZW1lbWJlclVzZXIgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGhpZGVSZW1lbWJlclVzZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faGlkZVJlbWVtYmVyVXNlcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBvcHRpb25hbFxyXG4gICAqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBPYmpldG8gY29tIGFzIGxpdGVyYWlzIHVzYWRhcyBubyBgcG8tcGFnZS1sb2dpbmAuXHJcbiAgICpcclxuICAgKiBFeGlzdGVtIGR1YXMgbWFuZWlyYXMgZGUgY3VzdG9taXphciBvIGNvbXBvbmVudGUsIHBhc3NhbmRvIHVtIG9iamV0byBjb20gdG9kYXMgYXMgbGl0ZXJhaXMgZGlzcG9uw612ZWlzOlxyXG4gICAqXHJcbiAgICogYGBgXHJcbiAgICogIGNvbnN0IGN1c3RvbUxpdGVyYWxzOiBQb1BhZ2VMb2dpbkxpdGVyYWxzID0ge1xyXG4gICAqICAgIGF0dGVtcHRzOiAnezB9IHZleihlcykgJyxcclxuICAgKiAgICBjcmVhdGVBTmV3UGFzc3dvcmROb3c6ICdNZWxob3IgY3JpYXIgdW1hIHNlbmhhIG5vdmEgYWdvcmEhIFZvY8OqIHZhaSBwb2RlciBlbnRyYXIgbm8gc2lzdGVtYSBsb2dvIGVtIHNlZ3VpZGEuJyxcclxuICAgKiAgICBmb3Jnb3RQYXNzd29yZDogJ0VzcXVlY2V1IHN1YSBzZW5oYT8nLFxyXG4gICAqICAgIGZvcmdvdFlvdXJQYXNzd29yZDogJ0VzcXVlY2V1IHN1YSBzZW5oYT8nLFxyXG4gICAqICAgIGhpZ2hsaWdodEluZm86ICcnLFxyXG4gICAqICAgIGlGb3Jnb3RNeVBhc3N3b3JkOiAnRXNxdWVjaSBtaW5oYSBzZW5oYScsXHJcbiAgICogICAgaWZZb3VUcnlIYXJkZXI6ICdTZSB0ZW50YXIgbWFpcyAnLFxyXG4gICAqICAgIHdlbGNvbWU6ICdCb2FzLXZpbmRhcycsXHJcbiAgICogICAgbG9naW5FcnJvclBhdHRlcm46ICdMb2dpbiBvYnJpZ2F0w7NyaW8nLFxyXG4gICAqICAgIGxvZ2luSGludDogJ0Nhc28gbsOjbyBwb3NzdWEgdXN1w6FyaW8gZW50cmUgZW0gY29udGF0byBjb20gbyBzdXBvcnRlJyxcclxuICAgKiAgICBsb2dpbkxhYmVsOiAnSW5zaXJhIHNldSB1c3XDoXJpbycsXHJcbiAgICogICAgbG9naW5QbGFjZWhvbGRlcjogJ0luc2lyYSBzZXUgdXN1w6FyaW8gZGUgYWNlc3NvJyxcclxuICAgKiAgICBwYXNzd29yZEVycm9yUGF0dGVybjogJ1NlbmhhIG9icmlnYXTDs3JpYScsXHJcbiAgICogICAgcGFzc3dvcmRMYWJlbDogJ0luc2lyYSBzdWEgc2VuaGEnLFxyXG4gICAqICAgIHBhc3N3b3JkUGxhY2Vob2xkZXI6ICdJbnNpcmEgc3VhIHNlbmhhIGRlIGFjZXNzbycsXHJcbiAgICogICAgY3VzdG9tRmllbGRFcnJvclBhdHRlcm46ICdDYW1wbyBjdXN0b21pemFkbyBpbnbDoWxpZG8nLFxyXG4gICAqICAgIGN1c3RvbUZpZWxkUGxhY2Vob2xkZXI6ICdQb3IgZmF2b3IgaW5zaXJhIHVtIHZhbG9yJyxcclxuICAgKiAgICByZWdpc3RlclVybDogJ05vdm8gcmVnaXN0cm8nLFxyXG4gICAqICAgIHJlbWVtYmVyVXNlcjogJ0xlbWJyYXIgdXN1w6FyaW8nLFxyXG4gICAqICAgIHJlbWVtYmVyVXNlckhpbnQ6ICdFc3RhIG9ww6fDo28gcG9kZSBzZXIgZGVzYWJpbGl0YWRhIG5hcyBjb25maWd1cmHDp8O1ZXMgZG8gc2lzdGVtYScsXHJcbiAgICogICAgc3VibWl0TGFiZWw6ICdBY2Vzc2FyIHNpc3RlbWEnLFxyXG4gICAqICAgIHN1Ym1pdHRlZExhYmVsOiAnQ2FycmVnYW5kby4uLicsXHJcbiAgICogICAgdGl0bGVQb3BvdmVyOiAnT3BhIScsXHJcbiAgICogICAgeW91clVzZXJXaWxsQmVCbG9ja2VkOiAnc2VtIHN1Y2Vzc28gc2V1IHVzdcOhcmlvIHNlcsOhIGJsb3F1ZWFkbyBlIHZvY8OqIGZpY2EgMjQgaG9yYXMgc2VtIHBvZGVyIGFjZXNzYXIgOignXHJcbiAgICogIH07XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiBPdSBwYXNzYW5kbyBhcGVuYXMgYXMgbGl0ZXJhaXMgcXVlIGRlc2VqYSBjdXN0b21pemFyOlxyXG4gICAqXHJcbiAgICogYGBgXHJcbiAgICogIGNvbnN0IGN1c3RvbUxpdGVyYWxzOiBQb1BhZ2VMb2dpbkxpdGVyYWxzID0ge1xyXG4gICAqICAgIGxvZ2luUGxhY2Vob2xkZXI6ICdJbnNpcmEgc2V1IHVzdcOhcmlvIGRlIGFjZXNzbycsXHJcbiAgICogICAgcGFzc3dvcmRQbGFjZWhvbGRlcjogJ0luc2lyYSBzdWEgc2VuaGEgZGUgYWNlc3NvJyxcclxuICAgKiAgICBzdWJtaXRMYWJlbDogJ0FjZXNzYXIgc2lzdGVtYSdcclxuICAgKiAgfTtcclxuICAgKiBgYGBcclxuICAgKlxyXG4gICAqIEUgcGFyYSBjYXJyZWdhciBhcyBsaXRlcmFpcyBjdXN0b21pemFkYXMsIGJhc3RhIGFwZW5hcyBwYXNzYXIgbyBvYmpldG8gcGFyYSBvIGNvbXBvbmVudGUuXHJcbiAgICpcclxuICAgKiBgYGBcclxuICAgKiA8cG8tcGFnZS1sb2dpblxyXG4gICAqICAgW3AtbGl0ZXJhbHNdPVwiY3VzdG9tTGl0ZXJhbHNcIj5cclxuICAgKiA8L3BvLXBhZ2UtbG9naW4+XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiAgPiBPIG9iamV0byBwYWRyw6NvIGRlIGxpdGVyYWlzIHNlcsOhIHRyYWR1emlkbyBkZSBhY29yZG8gY29tIG8gaWRpb21hIGRvIGJyb3dzZXIgKHB0LCBlbiwgZXMpLlxyXG4gICAqICA+IMOJIHRhbWLDqW0gcG9zc8OtdmVsIGFsdGVybmFyIG8gb2JqZXRvIHBhZHLDo28gZGUgbGl0ZXJhaXMgYXRyYXbDqXMgZG8gc2VsZXRvciBkZSBpZGlvbWFzIGxvY2FsaXphZG8gbmEgcGFydGUgaW5mZXJpb3IgZG8gdGVtcGxhdGUsXHJcbiAgICogbmVzc2UgY2FzbywgaMOhIHRhbWLDqW0gYSBvcMOnw6NvIGRvIGlkaW9tYSBydXNzby5cclxuICAgKi9cclxuICBASW5wdXQoJ3AtbGl0ZXJhbHMnKSBzZXQgbGl0ZXJhbHModmFsdWU6IFBvUGFnZUxvZ2luTGl0ZXJhbHMpIHtcclxuICAgIHRoaXMuX2xpdGVyYWxzID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgbGl0ZXJhbHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGl0ZXJhbHM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogSGFiaWxpdGEgdW0gZXN0YWRvIGRlIGNhcnJlZ2FtZW50byBhbyBib3TDo28gZGUgKmxvZ2luKi5cclxuICAgKlxyXG4gICAqID4gw4kgbmVjZXNzw6FyaW8gYXRyaWJ1aXIgYHRydWVgIMOgIGVzdGEgcHJvcHJpZWRhZGUgbmEgZnVuw6fDo28gZGVmaW5pZGEgZW0gYHAtbG9naW4tc3VibWl0YC5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcclxuICAgKi9cclxuICBASW5wdXQoJ3AtbG9hZGluZycpIHNldCBsb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9sb2FkaW5nID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIFZhbG9yIGRvIG1vZGVsbyBkbyBjYW1wbyBkZSBsb2dpbi5cclxuICAgKi9cclxuICBASW5wdXQoJ3AtbG9naW4nKSBzZXQgbG9naW4odmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fbG9naW4gPSB2YWx1ZTtcclxuXHJcbiAgICBpZiAoIXRoaXMuYXV0aGVudGljYXRpb25VcmwpIHtcclxuICAgICAgdGhpcy5sb2dpbkNoYW5nZS5lbWl0KHRoaXMuX2xvZ2luKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBsb2dpbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xvZ2luO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIEF0cmlidXRvIHF1ZSByZWNlYmUgdW1hIGxpc3RhIGRlIGVycm9zIGUgZXhpYmUgYWJhaXhvIGRvIGNhbXBvIGRlIGxvZ2luLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1sb2dpbi1lcnJvcnMnKSBzZXQgbG9naW5FcnJvcnModmFsdWU6IEFycmF5PHN0cmluZz4pIHtcclxuICAgIHRoaXMuX2xvZ2luRXJyb3JzID0gdmFsdWUgfHwgW107XHJcbiAgICB0aGlzLnNldExvZ2luRXJyb3JzKHRoaXMuX2xvZ2luRXJyb3JzKTtcclxuICB9XHJcbiAgZ2V0IGxvZ2luRXJyb3JzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xvZ2luRXJyb3JzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIEF0cmlidXRvIHF1ZSByZWNlYmUgdW1hIGxpc3RhIGRlIGVycm9zIGUgZXhpYmUgYWJhaXhvIGRvIGNhbXBvIGRlIHBhc3N3b3JkLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1wYXNzd29yZC1lcnJvcnMnKSBzZXQgcGFzc3dvcmRFcnJvcnModmFsdWU6IEFycmF5PHN0cmluZz4pIHtcclxuICAgIHRoaXMuX3Bhc3N3b3JkRXJyb3JzID0gdmFsdWUgfHwgW107XHJcbiAgICB0aGlzLnNldFBhc3N3b3JkRXJyb3JzKHRoaXMuX3Bhc3N3b3JkRXJyb3JzKTtcclxuICB9XHJcbiAgZ2V0IHBhc3N3b3JkRXJyb3JzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Bhc3N3b3JkRXJyb3JzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIEV4aWJlIHVtIGxpbmsgYWJhaXhvIGRvIGZvcm11bMOhcmlvIGRlIGxvZ2luIHBhcmEgcXVlIG9zIHVzdcOhcmlvcyBkYSBhcGxpY2HDp8OjbyBmYcOnYW0gYSByZWN1cGVyYcOnw6NvIGRvcyBkYWRvcyBkZSBhdXRlbnRpY2HDp8Ojby5cclxuICAgKlxyXG4gICAqIEEgcHJvcHJpZWRhZGUgYWNlaXRhIG9zIHNlZ3VpbnRlcyB0aXBvczpcclxuICAgKlxyXG4gICAqIC0gKipTdHJpbmcqKjogaW5mb3JtZSB1bWEgdXJsIGV4dGVybmEgb3UgdW1hIHJvdGEgdsOhbGlkYTtcclxuICAgKiAtICoqRnVuY3Rpb24qKjogcG9kZS1zZSBjdXN0b21pemFyIGEgYcOnw6NvLiBQYXJhIGVzdGEgcG9zc2lsaWRhZGUgYmFzdGEgYXRyaWJ1aXI6XHJcbiAgICogYGBgXHJcbiAgICogPHBvLXBhZ2UtbG9naW4+XHJcbiAgICogICBbcmVjb3ZlcnldPVwidGhpcy5teVJlY292ZXJ5LmJpbmQodGhpcylcIj5cclxuICAgKiA8L3BvLXBhZ2UtbG9naW4+XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiAtICoqUG9QYWdlTG9naW5SZWNvdmVyeSoqOiBjcmlhLXNlIHbDrW5jdWxvIGF1dG9tw6F0aWNvIGNvbSBvIHRlbXBsYXRlICoqcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnkqKi5cclxuICAgKiAgIE8gb2JqZXRvIGRldmUgY29udGVyIGEgKip1cmwqKiBwYXJhIHJlcXVpc2nDp8OjbyBkb3MgcmVjdXJzb3MgZSBwb2RlLXNlIGRlZmluaXIgbyAqKnRpcG8qKiBkZSBtb2RhbCBwYXJhIHJlY3VwZXJhw6fDo28gZGUgc2VuaGEsXHJcbiAgICogICAqKmVtYWlsKiogcGFyYSBjb250YXRvIGUgKiptw6FzY2FyYSoqIGRvIGNhbXBvIGRlIHRlbGVmb25lLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1yZWNvdmVyeScpIHNldCByZWNvdmVyeSh2YWx1ZTogc3RyaW5nIHwgRnVuY3Rpb24gfCBQb1BhZ2VMb2dpblJlY292ZXJ5KSB7XHJcbiAgICB0aGlzLl9yZWNvdmVyeSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlY292ZXJ5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlY292ZXJ5O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIENhc28gYSBhcGxpY2HDp8OjbyB0ZW5oYSB1bSBsaW5rIHBhcmEgbm92b3MgY2FkYXN0cm9zLCBpbmZvcm1lIHVtYSB1cmwgZXh0ZXJuYSBvdSB1bWEgcm90YSB2w6FsaWRhLCBkZXNzYVxyXG4gICAqIGZvcm1hIHNlcsOhIGV4aWJpZG8gdW0gbGluayBhYmFpeG8gZG8gZm9ybXVsw6FyaW8gZGUgbG9naW4gcGFyYSBvcyB1c3XDoXJpb3MgZGEgYXBsaWNhw6fDo28uXHJcbiAgICpcclxuICAgKiBFeGVtcGxvcyBkZSB2YWxvcmVzIHbDoWxpZG9zOlxyXG4gICAqIC0gKipsb2NhbCoqOiBgL2hvbWVgXHJcbiAgICogLSAqKnVybCBleHRlcm5hKio6IGBodHRwczovL3BvLXVpLmlvYFxyXG4gICAqXHJcbiAgICogPiBWZWphIGEgcHJvcHJpZWRhZGUgYHAtbGl0ZXJhbHNgIHBhcmEgY3VzdG9taXphciBhIGxpdGVyYWwgYHJlZ2lzdGVyVXJsYC5cclxuICAgKi9cclxuICBASW5wdXQoJ3AtcmVnaXN0ZXItdXJsJykgc2V0IHJlZ2lzdGVyVXJsKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3JlZ2lzdGVyVXJsID0gaXNUeXBlb2YodmFsdWUsICdzdHJpbmcnKSA/IHZhbHVlIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlZ2lzdGVyVXJsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVnaXN0ZXJVcmw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogQXRyaWJ1dG8gcXVlIHJlY2ViZSBvIHRpcG8gZGUgZXNxdWVtYSBkYSBhdXRlbnRpY2HDp8Ojbywgc2VuZG8gc3Vwb3J0YWRvcyBhcGVuYXMgb3MgdmFsb3JlcyBgQmFzaWNgIGUgYEJlYXJlcmAuXHJcbiAgICpcclxuICAgKiA+IENhc28gbyB0aXBvIGRlZmluaWRvIHNlamEgYEJhc2ljYCwgbyBjb21wb25lbnRlIGZhcsOhIHVtYSByZXF1aXNpw6fDo28gYFBPU1RgIGNvbnRlbmRvOlxyXG4gICAqXHJcbiAgICogYGBgXHJcbiAgICogaGVhZGVycyB7XHJcbiAgICogIEF1dGhvcml6YXRpb246IEJhc2ljIGJhc2U2NChsb2dpbjpwYXNzd29yZClcclxuICAgKiB9XHJcbiAgICpcclxuICAgKiBib2R5IHtcclxuICAgKiAgcmVtZW1iZXJVc2VyOiByZW1lbWJlclVzZXJcclxuICAgKiB9XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiA+IENhc28gbyB0aXBvIGRlZmluaWRvIHNlamEgYEJlYXJlcmAsIG8gY29tcG9uZW50ZSBmYXLDoSB1bWEgcmVxdWlzacOnw6NvIGBQT1NUYCBjb250ZW5kbzpcclxuICAgKlxyXG4gICAqIGBgYFxyXG4gICAqIGJvZHkge1xyXG4gICAqICBsb2dpbjogbG9naW4sXHJcbiAgICogIHBhc3N3b3JkOiBiYXNlNjQocGFzc3dvcmQpLFxyXG4gICAqICByZW1lbWJlclVzZXI6IHJlbWVtYmVyVXNlclxyXG4gICAqIH1cclxuICAgKiBgYGBcclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGBQb1BhZ2VMb2dpbkF1dGhlbnRpY2F0aW9uVHlwZS5CYXNpY2BcclxuICAgKi9cclxuICBASW5wdXQoJ3AtYXV0aGVudGljYXRpb24tdHlwZScpIHNldCBhdXRoZW50aWNhdGlvblR5cGUodmFsdWU6IFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlKSB7XHJcbiAgICB0aGlzLl9hdXRoZW50aWNhdGlvblR5cGUgPSAoPGFueT5PYmplY3QpLnZhbHVlcyhQb1BhZ2VMb2dpbkF1dGhlbnRpY2F0aW9uVHlwZSkuaW5jbHVkZXModmFsdWUpXHJcbiAgICAgID8gdmFsdWVcclxuICAgICAgOiBQb1BhZ2VMb2dpbkF1dGhlbnRpY2F0aW9uVHlwZS5CYXNpYztcclxuICB9XHJcblxyXG4gIGdldCBhdXRoZW50aWNhdGlvblR5cGUoKTogUG9QYWdlTG9naW5BdXRoZW50aWNhdGlvblR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F1dGhlbnRpY2F0aW9uVHlwZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBvcHRpb25hbFxyXG4gICAqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBFbmRwb2ludCB1c2FkbyBwZWxvIHRlbXBsYXRlIHBhcmEgcmVxdWlzacOnw6NvIGRvIHJlY3Vyc28uIFF1YW5kbyBwcmVlbmNoaWRvLCBvIG3DqXRvZG8gYHAtbG9naW4tc3VibWl0YCBzZXLDoSBpZ25vcmFkbyBlIG9cclxuICAgKiBjb21wb25lbnRlIGFkcXVpcmlyw6EgYXV0b21hdGl6YcOnw6NvIHBhcmEgbyBwcm9jZXNzbyBkZSBhdXRlbnRpY2HDp8Ojby5cclxuICAgKlxyXG4gICAqICMjIyBQcm9jZXNzb3NcclxuICAgKiBBbyBkaWdpdGFyIHVtIHZhbG9yIHbDoWxpZG8gbm8gY2FtcG8gZGUgbG9naW4vcGFzc3dvcmQgZSBwcmVzc2lvbmFyICoqRW50ZXIqKiwgbyBjb21wb25lbnRlIGZhcsOhIHVtYSByZXF1aXNpw6fDo28gYFBPU1RgXHJcbiAgICogbmEgdXJsIGVzcGVjaWZpY2FkYSBuZXN0YSBwcm9wcmllZGFkZSBwYXNzYW5kbyBvIG9iamV0byBjb250ZW5kbyBvIHZhbG9yIGRlZmluaWRvIHBlbG8gdXN1w6FyaW86XHJcbiAgICpcclxuICAgKiBgYGBcclxuICAgKiBoZWFkZXJzIHtcclxuICAgKiAgQXV0aG9yaXphdGlvbjogQmFzaWMgYmFzZTY0KGxvZ2luOnBhc3N3b3JkKVxyXG4gICAqIH1cclxuICAgKlxyXG4gICAqIGJvZHkge1xyXG4gICAqICByZW1lbWJlclVzZXI6IHJlbWVtYmVyVXNlclxyXG4gICAqIH1cclxuICAgKiBgYGBcclxuICAgKlxyXG4gICAqIEVtIGNhc28gZGUgKipzdWNlc3NvKiosIG8gb2JqZXRvIGRlIHJldG9ybm8gw6kgYXJtYXplbmFkbyBubyBgc2Vzc2lvblN0b3JhZ2VgIGUgbyB1c3XDoXJpbyDDqSByZWRpcmVjaW9uYWRvIHBhcmEgYSBww6FnaW5hIGluaWNpYWwgZGFcclxuICAgKiBhcGxpY2HDp8OjbyBgL2AuXHJcbiAgICpcclxuICAgKiBgYGBcclxuICAgKiAyMDA6XHJcbiAgICogIHtcclxuICAgKiAgICB1c2VyOiB1c2VyXHJcbiAgICogIH1cclxuICAgKiBgYGBcclxuICAgKlxyXG4gICAqIEVtIGNhc28gZGUgKiplcnJvKiogbmEgYXV0ZW50aWNhw6fDo28sIGVzcGVyYS1zZSBvIHNlZ3VpbnRlIHJldG9ybm86XHJcbiAgICpcclxuICAgKiBgYGBcclxuICAgKiA0MDAvNDAxXHJcbiAgICogIHtcclxuICAgKiAgICBjb2RlOiA0MDAvNDAxLFxyXG4gICAqICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXHJcbiAgICogICAgZGV0YWlsZWRNZXNzYWdlOiBkZXRhaWxlZE1lc3NhZ2UsXHJcbiAgICogICAgaGVscFVybD86IGhlbHBVcmxcclxuICAgKiAgfVxyXG4gICAqIGBgYFxyXG4gICAqXHJcbiAgICogPiBQb2RlLXNlIGF0cmlidWlyIHVtYSBxdWFudGlkYWRlIG3DoXhpbWEgZGUgdGVudGF0aXZhcyByZXN0YW50ZXMgKG1heEF0dGVtcHRzUmVtYWluaW5nKSBwYXJhIG8gYXRyaWJ1dG8gYHAtZXhjZWVkZWQtYXR0ZW1wdHMtd2FybmluZ2AsXHJcbiAgICogYXNzaW0gY29tbyBvcyBhdmlzb3MgcmVsYWNpb25hZG9zIGFvcyBjYW1wb3MgbG9naW4gZSBwYXNzd29yZCAobG9naW5XYXJuaW5ncywgcGFzc3dvcmRXYXJuaW5ncykgcGFyYSBvcyBhdHJpYnV0b3MgYHAtbG9naW4tZXJyb3JzYCBlXHJcbiAgICogYHAtcGFzc3dvcmQtZXJyb3JzYCBjb25mb3JtZSByZXRvcm5vIGFiYWl4bzpcclxuICAgKlxyXG4gICAqIGBgYFxyXG4gICAqIDQwMFxyXG4gICAqICB7XHJcbiAgICogICAgY29kZTogNDAwLzQwMSxcclxuICAgKiAgICBtZXNzYWdlOiBtZXNzYWdlLFxyXG4gICAqICAgIGRldGFpbGVkTWVzc2FnZTogZGV0YWlsZWRNZXNzYWdlLFxyXG4gICAqICAgIGhlbHBVcmw/OiBoZWxwVXJsLFxyXG4gICAqICAgIG1heEF0dGVtcHRzUmVtYWluaW5nPzogbWF4QXR0ZW1wdHNSZW1haW5pbmcsXHJcbiAgICogICAgbG9naW5XYXJuaW5ncz86IFtsb2dpbldhcm5pbmdzXSxcclxuICAgKiAgICBwYXNzd29yZFdhcm5pbmdzPzogW3Bhc3N3b3JkV2FybmluZ3NdXHJcbiAgICogIH1cclxuICAgKiBgYGBcclxuICAgKlxyXG4gICAqID4gQ2FzbyBvIHZhbG9yIGF0cmlidcOtZG8gcGFyYSBgcC1leGNlZWRlZC1hdHRlbXB0cy13YXJuaW5nYCBzZWphIGlndWFsIGEgMCh6ZXJvKSwgcG9kZXLDoSBzZXIgcGFzc2FkbyB1bSB2YWxvciBwYXJhIG9cclxuICAgKiBhdHJpYnV0byBgcC1ibG9ja2VkLXVybGAgZSBvIHVzdcOhcmlvIHNlcsOhIHJlZGlyZWNpb25hZG8gcGFyYSB1bWEgdGVsYSBkZSBibG9xdWVpby5cclxuICAgKlxyXG4gICAqICpQcm9jZXNzbyBmaW5hbGl6YWRvLipcclxuICAgKlxyXG4gICAqIF9fX19fX19fX19fX19fX1xyXG4gICAqXHJcbiAgICogIyMjIyBQcmF0aWNpZGFkZVxyXG4gICAqIEFzIGluZm9ybWHDp8O1ZXMgZG8gc2VydmnDp28gZGUgYXV0ZW50aWNhw6fDo28gdGFtYsOpbSBwb2RlbSBzZXIgdHJhbnNtaXRpZGFzIGRpcmV0YW1lbnRlIHBlbGFzIGNvbmZpZ3VyYcOnw6NvcyBkZSByb3RhIGUsIGRlc3RhIG1hbmVpcmEsXHJcbiAgICogZGlzcGVuc2Etc2UgcXVhbHF1ZXIgbWVuw6fDo28gZS9vdSBpbXBvcnRhw6fDo28gZG8gY29tcG9uZW50ZSBgcG8tcGFnZS1sb2dpbmAgbm8gcmVzdGFudGUgZGEgYXBsaWNhw6fDo28uIE8gZXhlbXBsbyBhYmFpeG8gZXhlbXBsaWZpY2FcclxuICAgKiBhIGZvcm1hIGRpbsOibWljYSBjb20gYSBxdWFsIG8gdGVtcGxhdGUgZGUgdGVsYSBkZSBsb2dpbiBwb2RlIHNlciBnZXJhZG8gYW8gbmF2ZWdhciBwYXJhIHJvdGEgYC9sb2dpbmAsIGUgdGFtYsOpbSBjb21vIGVsZSBzZSBjb211bmljYVxyXG4gICAqIGNvbSBvIHNlcnZpw6dvIHBhcmEgZWZldHVhw6fDo28gZG8gcHJvY2Vzc28gZGUgYXV0ZW50aWNhw6fDo28gZG8gdXN1w6FyaW8gZSBzb2xpY2l0YcOnw6NvIGRlIG5vdmEgc2VuaGEuXHJcbiAgICogQmFzdGEgZGVmaW5pciBuYXMgY29uZmlndXJhw6fDtWVzIGRlIHJvdGE6XHJcbiAgICpcclxuICAgKlxyXG4gICAqIGBgYFxyXG4gICAqICAgaW1wb3J0IHsgUG9QYWdlTG9naW5Db21wb25lbnQsIFBvUGFnZUxvZ2luQXRoZW50aWNhdGlvblR5cGUgfSBmcm9tICdAcG8tdWkvbmctdGVtcGxhdGVzJztcclxuICAgKlxyXG4gICAqICAgLi4uXHJcbiAgICogICBjb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICAgKiAgICAge1xyXG4gICAqICAgICAgIHBhdGg6ICdsb2dpbicsIGNvbXBvbmVudDogUG9QYWdlTG9naW5Db21wb25lbnQsIGRhdGE6IHtcclxuICAgKiAgICAgICAgIHNlcnZpY2VBcGk6ICdodHRwczovL3BvLXVpLmlvL3NhbXBsZS9hcGkvdXNlcnMvYXV0aGVudGljYXRpb24nLFxyXG4gICAqICAgICAgICAgZW52aXJvbm1lbnQ6ICdkZXZlbG9wbWVudCcsXHJcbiAgICogICAgICAgICByZWNvdmVyeToge1xyXG4gICAqICAgICAgICAgICB1cmw6ICdodHRwczovL3BvLXVpLmlvL3NhbXBsZS9hcGkvdXNlcnMnLFxyXG4gICAqICAgICAgICAgICB0eXBlOiBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuQWxsLFxyXG4gICAqICAgICAgICAgICBjb250YWN0TWFpbDogJ2Rldi5wb0Bwby11aS5jb20nLFxyXG4gICAqICAgICAgICAgICBwaG9uZU1hc2s6ICc5LTk5OS05OTktOTk5OSdcclxuICAgKiAgICAgICAgIH0sXHJcbiAgICogICAgICAgICByZWdpc3RlclVybDogJy9uZXctcGFzc3dvcmQnLFxyXG4gICAqICAgICAgICAgYXV0aGVudGljYXRpb25UeXBlOiBQb1BhZ2VMb2dpbkF0aGVudGljYXRpb25UeXBlLkJhc2ljXHJcbiAgICogICAgICAgfVxyXG4gICAqICAgICB9XHJcbiAgICogICAgIC4uLlxyXG4gICAqICAgXTtcclxuICAgKlxyXG4gICAqICAgQE5nTW9kdWxlKHtcclxuICAgKiAgICAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JSb290KHJvdXRlcyldLFxyXG4gICAqICAgICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXVxyXG4gICAqICAgfSlcclxuICAgKiAgIGV4cG9ydCBjbGFzcyBBcHBSb3V0aW5nTW9kdWxlIHsgfVxyXG4gICAqIGBgYFxyXG4gICAqXHJcbiAgICpcclxuICAgKiBPIG1ldGFkYWRvIGBzZXJ2aWNlQXBpYCBkZXZlIHNlciBhICoqdXJsKiogcGFyYSByZXF1aXNpw6fDo28gZG9zIHJlY3Vyc29zIGRlIGF1dGVudGljYcOnw6NvLCBvIGBlbnZpcm9ubWVudGAgYWxpbWVudGEgYSBwcm9wcmllZGFkZVxyXG4gICAqIGBwLWVudmlyb25tZW50YCwgYHJlY292ZXJ5YCDDqSBhIGludGVyZmFjZSBgUG9QYWdlTG9naW5SZWNvdmVyeWAgcmVzcG9uc8OhdmVsIHBlbGFzIGVzcGVjaWZpY2HDp8O1ZXMgY29udGlkYXMgbmEgbW9kYWwgZGUgcmVjdXBlcmHDp8OjbyBkZVxyXG4gICAqIHNlbmhhLCBgcmVnaXN0ZXJVcmxgIGFsaW1lbnRhIGEgcHJvcHJpZWRhZGUgYHAtcmVnaXN0ZXItdXJsYCBlIGBhdXRoZW50aWNhdGlvblR5cGVgIHF1ZSBkZWZpbmUgYSBwcm9wcmllZGFkZSBgcC1hdXRoZW50aWNhdGlvbi10eXBlYC5cclxuICAgKlxyXG4gICAqID4gw4kgZXNzZW5jaWFsIHF1ZSBzaWdhIGEgbm9tZW5jbGF0dXJhIGRvcyBhdHJpYnV0b3MgZXhlbXBsaWZpY2Fkb3MgYWNpbWEgcGFyYSBzdWEgZWZldGl2YSBmdW5jaW9uYWxpZGFkZS5cclxuICAgKlxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1hdXRoZW50aWNhdGlvbi11cmwnKSBzZXQgYXV0aGVudGljYXRpb25VcmwodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fYXV0aGVudGljYXRpb25VcmwgPSBpc1R5cGVvZih2YWx1ZSwgJ3N0cmluZycpID8gdmFsdWUgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgYXV0aGVudGljYXRpb25VcmwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9hdXRoZW50aWNhdGlvblVybDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBvcHRpb25hbFxyXG4gICAqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBDYXNvIG8gdmFsb3IgYXRyaWJ1w61kbyBwYXJhIGBwLWV4Y2VlZGVkLWF0dGVtcHRzLXdhcm5pbmdgIHNlamEgaWd1YWwgYSAwKHplcm8pIGUgYSBhcGxpY2HDp8OjbyB0ZW5oYSB1bSBsaW5rIGRlIGJsb3F1ZWlvIGRlIHVzdcOhcmlvLFxyXG4gICAqIGluZm9ybWUgdW1hIHVybCBleHRlcm5hIG91IHVtYSByb3RhIHbDoWxpZGEsIGRlc3NhIGZvcm1hIGVtIGNhc28gZGUgYmxvcXVlaW8gbyB1c3XDoXJpbyBzZXLDoSByZWRpcmVjaW9uYWRvLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1ibG9ja2VkLXVybCcpIHNldCBibG9ja2VkVXJsKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2Jsb2NrZWRVcmwgPSBpc1R5cGVvZih2YWx1ZSwgJ3N0cmluZycpID8gdmFsdWUgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgYmxvY2tlZFVybCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Jsb2NrZWRVcmw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogRXhpYmUgdW0gYm90w6NvIHBhcmEgc3Vwb3J0ZS5cclxuICAgKlxyXG4gICAqIEEgcHJvcHJpZWRhZGUgYWNlaXRhIG9zIHNlZ3VpbnRlcyB0aXBvczpcclxuICAgKlxyXG4gICAqIC0gKipTdHJpbmcqKjogVVJMIGV4dGVybmEgb3UgdW1hIHJvdGEgdsOhbGlkYTtcclxuICAgKiAtICoqRnVuY3Rpb24qKjogRnVuw6fDo28gYSBzZXIgZGlzcGFyYWRhIGFvIGNsaWNhciBubyBib3TDo28gZGUgc3Vwb3J0ZTtcclxuICAgKiBgYGBcclxuICAgKiA8cG8tcGFnZS1sb2dpbj5cclxuICAgKiAgIFtwLXN1cHBvcnRdPVwidGhpcy5teVN1cHBvcnQuYmluZCh0aGlzKVwiPlxyXG4gICAqIDwvcG8tcGFnZS1sb2dpbj5cclxuICAgKiBgYGBcclxuICAgKlxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1zdXBwb3J0Jykgc2V0IHN1cHBvcnQodmFsdWU6IHN0cmluZyB8IEZ1bmN0aW9uKSB7XHJcbiAgICB0aGlzLl9zdXBwb3J0ID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgc3VwcG9ydCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zdXBwb3J0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIENvbGXDp8OjbyBkZSBpZGlvbWFzIHF1ZSBvIGNvbXBvbmVudGUgaXLDoSB0cmF0YXIgZSBkaXNwb25pYmlsaXphcsOhIHBhcmEgbyB1c3XDoXJpbyBlc2NvbGhlci5cclxuICAgKlxyXG4gICAqIENhc28gZXNzYSBwcm9wcmllZGFkZSBuw6NvIHNlamEgdXRpbGl6YWRhIG8gY29tcG9uZW50ZSBtb3N0cmFyw6Egbm8gY29tYm8gb3MgaWRpb21hcyBxdWUgZWxlIHN1cG9ydGEgcG9yIHBhZHLDo28uXHJcbiAgICpcclxuICAgKiBDYXNvIGEgY29sZcOnw6NvIHRlbmhhIHVtIGlkaW9tYSwgYSBww6FnaW5hIGVzdGFyw6EgbmVzc2UgaWRpb21hIGUgbsOjbyBtb3N0cmFyw6EgbyBjb21iby5cclxuICAgKlxyXG4gICAqIENhc28gc2VqYSBwYXNzYWRvIHVtIGFycmF5IHZhemlvLCBhIHDDoWdpbmEgdGVyw6EgbyBpZGlvbWEgY29uZmlndXJhZG8gbm8gYGkxOG5gIGUgbsOjbyBtb3N0cmFyw6EgbyBjb21ibyBkZSBzZWxlw6fDo28uXHJcbiAgICpcclxuICAgKiA+IFNlIGZvciBwYXNzYWRvIHVtIGlkaW9tYSBuw6NvIHN1cG9ydGFkbywgc2Vyw6EgcHJlY2lzbyBwYXNzYXIgYXMgbGl0ZXJhaXMgcGVsYSBwcm9wcmllZGFkZSBgcC1saXRlcmFsc2AuXHJcbiAgICpcclxuICAgKlxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1sYW5ndWFnZXMnKSBzZXQgbGFuZ3VhZ2VzTGlzdChsYW5ndWFnZXNMaXN0OiBBcnJheTxQb0xhbmd1YWdlPikge1xyXG4gICAgaWYgKGxhbmd1YWdlc0xpc3QpIHtcclxuICAgICAgaWYgKGxhbmd1YWdlc0xpc3QubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5fbGFuZ3VhZ2VzTGlzdCA9IGxhbmd1YWdlc0xpc3Q7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fbGFuZ3VhZ2VzTGlzdCA9IHBvTGFuZ3VhZ2VEZWZhdWx0LmZpbHRlcihsYW5ndWFnZSA9PiBsYW5ndWFnZS5sYW5ndWFnZSA9PT0gdGhpcy5sYW5ndWFnZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBsYW5ndWFnZXNMaXN0KCk6IEFycmF5PFBvTGFuZ3VhZ2U+IHtcclxuICAgIGlmICh0aGlzLl9sYW5ndWFnZXNMaXN0KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9sYW5ndWFnZXNMaXN0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBvTGFuZ3VhZ2VEZWZhdWx0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dMYW5ndWFnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmxhbmd1YWdlc0xpc3QubGVuZ3RoID4gMTtcclxuICB9XHJcblxyXG4gIGdldCBsYW5ndWFnZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSB8fCBnZXRTaG9ydEJyb3dzZXJMYW5ndWFnZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBhZ2VMb2dpbkxpdGVyYWxzKCk6IFBvUGFnZUxvZ2luTGl0ZXJhbHMge1xyXG4gICAgY29uc3QgbG9naW5IaW50V2l0aENvbnRhY3RFbWFpbCA9IHRoaXMuY29udGFjdEVtYWlsXHJcbiAgICAgID8gdGhpcy5jb25jYXRlbmF0ZUxvZ2luSGludFdpdGhDb250YWN0RW1haWwodGhpcy5jb250YWN0RW1haWwpXHJcbiAgICAgIDogdW5kZWZpbmVkO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnBvUGFnZUxvZ2luTGl0ZXJhbHNEZWZhdWx0W3BvTG9jYWxlRGVmYXVsdF0sXHJcbiAgICAgIC4uLnBvUGFnZUxvZ2luTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdLFxyXG4gICAgICAuLi5sb2dpbkhpbnRXaXRoQ29udGFjdEVtYWlsLFxyXG4gICAgICAuLi50aGlzLmxpdGVyYWxzXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxvZ2luU2VydmljZTogUG9QYWdlTG9naW5TZXJ2aWNlLFxyXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIHBvTGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlID0gdGhpcy5wb0xhbmd1YWdlU2VydmljZS5nZXRTaG9ydExhbmd1YWdlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLmxvZ2luU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMubG9naW5TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlUG9wb3ZlcigpIHtcclxuICAgIHRoaXMuc2hvd0V4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvbkxvZ2luU3VibWl0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgbG9naW5Gb3JtOiBQb1BhZ2VMb2dpbiA9IHtcclxuICAgICAgbG9naW46IHRoaXMubG9naW4sXHJcbiAgICAgIHBhc3N3b3JkOiB0aGlzLnBhc3N3b3JkLFxyXG4gICAgICByZW1lbWJlclVzZXI6IHRoaXMucmVtZW1iZXJVc2VyXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLmN1c3RvbUZpZWxkKSB7XHJcbiAgICAgIGxvZ2luRm9ybVt0aGlzLmN1c3RvbUZpZWxkT2JqZWN0LnByb3BlcnR5XSA9IHRoaXMuY3VzdG9tRmllbGRPYmplY3QudmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuYXV0aGVudGljYXRpb25VcmwpIHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5sb2dpblN1YnNjcmlwdGlvbiA9IHRoaXMubG9naW5TZXJ2aWNlXHJcbiAgICAgICAgLm9uTG9naW4odGhpcy5hdXRoZW50aWNhdGlvblVybCwgdGhpcy5hdXRoZW50aWNhdGlvblR5cGUsIGxvZ2luRm9ybSlcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVzVG9Qcm9wZXJ0aWVzKCk7XHJcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ1BPX1VTRVJfTE9HSU4nLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICAgICAgICAgIHRoaXMub3BlbkludGVybmFsTGluaygnLycpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnJvciA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnJvci5lcnJvci5jb2RlID09PSAnNDAwJyB8fCBlcnJvci5lcnJvci5jb2RlID09PSAnNDAxJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVzVG9Qcm9wZXJ0aWVzKGVycm9yKTtcclxuICAgICAgICAgICAgICB0aGlzLnJlZGlyZWN0QmxvY2tlZFVybCh0aGlzLmV4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nLCB0aGlzLmJsb2NrZWRVcmwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvZ2luU3VibWl0LmVtaXQobG9naW5Gb3JtKTtcclxuICAgICAgdGhpcy5zaG93RXhjZWVkZWRBdHRlbXB0c1dhcm5pbmcgPSB0aGlzLmV4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nID4gMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGVmYXVsdEN1c3RvbUZpZWxkT2JqZWN0KHByb3BlcnR5KTogUG9QYWdlTG9naW5DdXN0b21GaWVsZCB7XHJcbiAgICByZXR1cm4geyBwcm9wZXJ0eSB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvcGVuRXh0ZXJuYWxMaW5rKHVybDogc3RyaW5nKSB7XHJcbiAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb3BlbkludGVybmFsTGluayh1cmw6IHN0cmluZykge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3VybF0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWRpcmVjdEJsb2NrZWRVcmwoYXR0ZW1wdHM6IG51bWJlciwgYmxvY2tlZFVybDogc3RyaW5nKSB7XHJcbiAgICBpZiAoYXR0ZW1wdHMgPT09IDAgJiYgYmxvY2tlZFVybCkge1xyXG4gICAgICB0aGlzLnNob3dFeGNlZWRlZEF0dGVtcHRzV2FybmluZyA9IGZhbHNlO1xyXG4gICAgICBpc0V4dGVybmFsTGluayhibG9ja2VkVXJsKSA/IHRoaXMub3BlbkV4dGVybmFsTGluayhibG9ja2VkVXJsKSA6IHRoaXMub3BlbkludGVybmFsTGluayhibG9ja2VkVXJsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VmFsdWVzVG9Qcm9wZXJ0aWVzKHJlc3VsdD8pIHtcclxuICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgdGhpcy5leGNlZWRlZEF0dGVtcHRzV2FybmluZyA9IHJlc3VsdC5lcnJvci5tYXhBdHRlbXB0c1JlbWFpbmluZztcclxuICAgICAgdGhpcy5sb2dpbkVycm9ycyA9IHJlc3VsdC5lcnJvci5sb2dpbldhcm5pbmdzO1xyXG4gICAgICB0aGlzLnBhc3N3b3JkRXJyb3JzID0gcmVzdWx0LmVycm9yLnBhc3N3b3JkV2FybmluZ3M7XHJcbiAgICAgIHRoaXMuYmxvY2tlZFVybCA9IHJlc3VsdC5lcnJvci5ibG9ja2VkVXJsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5leGNlZWRlZEF0dGVtcHRzV2FybmluZyA9IDA7XHJcbiAgICAgIHRoaXMubG9naW5FcnJvcnMgPSBbXTtcclxuICAgICAgdGhpcy5wYXNzd29yZEVycm9ycyA9IFtdO1xyXG4gICAgICB0aGlzLmJsb2NrZWRVcmwgPSAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjb25jYXRlbmF0ZUxvZ2luSGludFdpdGhDb250YWN0RW1haWwoY29udGFjdEVtYWlsOiBzdHJpbmcpO1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0TG9naW5FcnJvcnModmFsdWU6IEFycmF5PHN0cmluZz4pOiB2b2lkO1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0UGFzc3dvcmRFcnJvcnModmFsdWU6IEFycmF5PHN0cmluZz4pOiB2b2lkO1xyXG59XHJcbiJdfQ==
1044
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1sb2dpbi1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL2NvbXBvbmVudHMvcG8tcGFnZS1sb2dpbi9wby1wYWdlLWxvZ2luLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkgsT0FBTyxFQUFxQixlQUFlLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd6RyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7QUFNL0YsTUFBTSwyQkFBMkIsR0FBRyxFQUFFLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUc7SUFDeEMsRUFBRSxFQUF1QjtRQUN2QixLQUFLLEVBQUUsU0FBUztRQUNoQixpQkFBaUIsRUFBRSxlQUFlO1FBQ2xDLFNBQVMsRUFBRTt1REFDd0M7UUFDbkQsZ0JBQWdCLEVBQUUsb0JBQW9CO1FBQ3RDLG9CQUFvQixFQUFFLGtCQUFrQjtRQUN4QyxtQkFBbUIsRUFBRSxzQkFBc0I7UUFDM0MsdUJBQXVCLEVBQUUsZUFBZTtRQUN4QyxzQkFBc0IsRUFBRSxzQkFBc0I7UUFDOUMsWUFBWSxFQUFFLGlCQUFpQjtRQUMvQixnQkFBZ0IsRUFBRSxxREFBcUQ7UUFDdkUsV0FBVyxFQUFFLE9BQU87UUFDcEIsY0FBYyxFQUFFLFlBQVk7UUFDNUIsY0FBYyxFQUFFLHVCQUF1QjtRQUN2QyxhQUFhLEVBQUUsRUFBRTtRQUNqQixXQUFXLEVBQUUsY0FBYztR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QyxLQUFLO21CQUFDLGVBQWU7WUEwQkUsT0FBTztrQkFBOUIsS0FBSzttQkFBQyxXQUFXO1lBeUJRLGFBQWE7a0JBQXRDLEtBQUs7bUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiwgY29udmVydFRvSW50LCBnZXRTaG9ydEJyb3dzZXJMYW5ndWFnZSwgaXNFeHRlcm5hbExpbmssIGlzVHlwZW9mIH0gZnJvbSAnLi8uLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UsIHBvTG9jYWxlRGVmYXVsdCwgUG9MYW5ndWFnZSwgcG9MYW5ndWFnZURlZmF1bHQgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IFBvUGFnZUxvZ2luIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXBhZ2UtbG9naW4uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlIH0gZnJvbSAnLi9lbnVtcy9wby1wYWdlLWxvZ2luLWF1dGhlbnRpY2F0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBQb1BhZ2VMb2dpbkN1c3RvbUZpZWxkIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXBhZ2UtbG9naW4tY3VzdG9tLWZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1BhZ2VMb2dpbkxpdGVyYWxzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXBhZ2UtbG9naW4tbGl0ZXJhbHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvUGFnZUxvZ2luUmVjb3ZlcnkgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1sb2dpbi1yZWNvdmVyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9QYWdlTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi9wby1wYWdlLWxvZ2luLnNlcnZpY2UnO1xuXG5jb25zdCBwb1BhZ2VMb2dpbkNvbnRlbnRNYXhMZW5ndGggPSA0MDtcblxuZXhwb3J0IGNvbnN0IHBvUGFnZUxvZ2luTGl0ZXJhbHNEZWZhdWx0ID0ge1xuICBlbjogPFBvUGFnZUxvZ2luTGl0ZXJhbHM+e1xuICAgIHRpdGxlOiAnV2VsY29tZScsXG4gICAgbG9naW5FcnJvclBhdHRlcm46ICdJbnZhbGlkIExvZ2luJyxcbiAgICBsb2dpbkhpbnQ6IGBZb3VyIGxvZ2luIHVzZXIgd2FzIGdpdmVuIHRvIHlvdSBhdCB5b3VyIGZpcnN0IGRheS5cbiAgICBJZiB5b3UgZG9uJ3QgaGF2ZSB0aGlzIGluZm9ybWF0aW9uIGNvbnRhY3Qgc3VwcG9ydGAsXG4gICAgbG9naW5QbGFjZWhvbGRlcjogJ0luc2VydCB5b3VyIGUtbWFpbCcsXG4gICAgcGFzc3dvcmRFcnJvclBhdHRlcm46ICdJbnZhbGlkIFBhc3N3b3JkJyxcbiAgICBwYXNzd29yZFBsYWNlaG9sZGVyOiAnSW5zZXJ0IHlvdXIgcGFzc3dvcmQnLFxuICAgIGN1c3RvbUZpZWxkRXJyb3JQYXR0ZXJuOiAnSW52YWxpZCB2YWx1ZScsXG4gICAgY3VzdG9tRmllbGRQbGFjZWhvbGRlcjogJ1BsZWFzZSBlbnRlciBhIHZhbHVlJyxcbiAgICByZW1lbWJlclVzZXI6ICdBdXRvbWF0aWMgbG9naW4nLFxuICAgIHJlbWVtYmVyVXNlckhpbnQ6ICdZb3UgY2FuIGRpc2FibGUgdGhpcyBvcHRpb24gaW4gc3lzdGVtIGNvbmZpZ3VyYXRpb24nLFxuICAgIHN1Ym1pdExhYmVsOiAnRW50ZXInLFxuICAgIHN1Ym1pdHRlZExhYmVsOiAnTG9hZGluZy4uLicsXG4gICAgZm9yZ290UGFzc3dvcmQ6ICdGb3Jnb3QgeW91ciBQYXNzd29yZD8nLFxuICAgIGhpZ2hsaWdodEluZm86ICcnLFxuICAgIHJlZ2lzdGVyVXJsOiAnTmV3IHJlZ2lzdGVyJyxcbiAgICB0aXRsZVBvcG92ZXI6ICdPb3BzIScsXG4gICAgZm9yZ290WW91clBhc3N3b3JkOiAnRm9yZ290IHlvdXIgcGFzc3dvcmQ/JyxcbiAgICBpZllvdVRyeUhhcmRlcjogJ0lmIHlvdSB0cnkgJyxcbiAgICBhdHRlbXB0czogJ3swfSBtb3JlIHRpbWUocykgJyxcbiAgICB5b3VyVXNlcldpbGxCZUJsb2NrZWQ6XG4gICAgICAnd2l0aG91dCBzdWNjZXNzIHlvdXIgdXNlciB3aWxsIGJlIGJsb2NrZWQgYW5kIHlvdSB3aWxsIGJlIGxlZnQgMjQgaG91cnMgd2l0aG91dCBiZWluZyBhYmxlIHRvIGFjY2VzcyA6KCcsXG4gICAgY3JlYXRlQU5ld1Bhc3N3b3JkTm93OiAnQmV0dGVyIGNyZWF0ZSBhIG5ldyBwYXNzd29yZCBub3chIFlvdSB3aWxsIGJlIGFibGUgdG8gbG9nIGludG8gdGhlIHN5c3RlbSByaWdodCBhd2F5LicsXG4gICAgaUZvcmdvdE15UGFzc3dvcmQ6ICdJIGZvcmdvdCBteSBwYXNzd29yZCcsXG4gICAgd2VsY29tZTogJ1dlbGNvbWUnLFxuICAgIHN1cHBvcnQ6ICdTdXBwb3J0J1xuICB9LFxuICBlczogPFBvUGFnZUxvZ2luTGl0ZXJhbHM+e1xuICAgIHRpdGxlOiAnQmllbnZlbmlkbycsXG4gICAgbG9naW5FcnJvclBhdHRlcm46ICdMb2dpbiBpbnbDoWxpZG8nLFxuICAgIGxvZ2luSGludDogYFN1IHVzdWFyaW8gaGEgc2lkbyBlbnRyZWdhZG8gcGFyYSB1c3RlZCBlbiBzdSBwcmltZXIgZMOtYS5cbiAgICBTaSBubyB0aWVuZSBlc3RhIGluZm9ybWFjacOzbiwgcMOzbmdhc2UgZW4gY29udGFjdG8gY29uIGVsIHNvcG9ydGUgdMOpY25pY29gLFxuICAgIGxvZ2luUGxhY2Vob2xkZXI6ICdJbnNlcnRlIHN1IGUtbWFpbCcsXG4gICAgcGFzc3dvcmRFcnJvclBhdHRlcm46ICdDb250cmFzZcOxYSBpbnbDoWxpZGEnLFxuICAgIHBhc3N3b3JkUGxhY2Vob2xkZXI6ICdJbnNlcnRlIHN1IGNvbnRyYXNlw7FhJyxcbiAgICBjdXN0b21GaWVsZEVycm9yUGF0dGVybjogJ1ZhbG9yIG5vIHbDoWxpZG8uJyxcbiAgICBjdXN0b21GaWVsZFBsYWNlaG9sZGVyOiAnUG9yIGZhdm9yIGludHJvZHV6Y2EgdW4gdmFsb3InLFxuICAgIHJlbWVtYmVyVXNlcjogJ0luaWNpbyBkZSBzZXNpw7NuIGF1dG9tw6F0aWNhbWVudGUnLFxuICAgIHJlbWVtYmVyVXNlckhpbnQ6ICdQdWVkZSBkZXNoYWJpbGl0YXIgZXN0YSBvcGNpw7NuIGVuIGVsIG1lbsO6IGRlbCBzaXN0ZW1hLicsXG4gICAgc3VibWl0TGFiZWw6ICdFbnRyYXInLFxuICAgIHN1Ym1pdHRlZExhYmVsOiAnQ2FyZ2FuZG8uLi4nLFxuICAgIGZvcmdvdFBhc3N3b3JkOiAnT2x2aWRhc3RlIHR1IGNvbnRyYXNlw7FhPycsXG4gICAgaGlnaGxpZ2h0SW5mbzogJycsXG4gICAgcmVnaXN0ZXJVcmw6ICdOdWV2byByZWdpc3RybycsXG4gICAgdGl0bGVQb3BvdmVyOiAnT3BhIScsXG4gICAgZm9yZ290WW91clBhc3N3b3JkOiAnT2x2aWRhc3RlIHR1IGNvbnRyYXNlw7FhPycsXG4gICAgaWZZb3VUcnlIYXJkZXI6ICdTaSBpbnRlbnRhIG3DoXMgJyxcbiAgICBhdHRlbXB0czogJ3swfSB2ZXovdmVjZXMgJyxcbiAgICB5b3VyVXNlcldpbGxCZUJsb2NrZWQ6ICdzaW4gw6l4aXRvIHN1IHVzdWFyaW8gc2VyYSBibG9xdWVhZG8geSB1c3RlZCB2w6FzIHBlcm1hbmVjZXIgMjQgaG9yYXMgc2luIHBvZGVyIGFjY2VkZXIgYSA6KCcsXG4gICAgY3JlYXRlQU5ld1Bhc3N3b3JkTm93OlxuICAgICAgJ8KhTWVqb3IgY3JlYXIgdW5hIG51ZXZhIGNvbnRyYXNlw7FhIGFob3JhISBVc3RlZCBwb2Ryw6EgZW50cmFyIGVuIGVsIHNpc3RlbWEgaW5tZWRpYXRhbWVudGUgZGVzcHXDqXMuJyxcbiAgICBpRm9yZ290TXlQYXNzd29yZDogJ09sdmlkZSBtaSBjb250cmFzZcOxYScsXG4gICAgd2VsY29tZTogJ0JpZW52ZW5pZG8nLFxuICAgIHN1cHBvcnQ6ICdTb3BvcnRlJ1xuICB9LFxuICBwdDogPFBvUGFnZUxvZ2luTGl0ZXJhbHM+e1xuICAgIHRpdGxlOiAnQmVtLXZpbmRvJyxcbiAgICBsb2dpbkVycm9yUGF0dGVybjogJ0xvZ2luIGludsOhbGlkbycsXG4gICAgbG9naW5IaW50OiBgU2V1IHVzdcOhcmlvIGZvaSBlbnRyZWd1ZSBhIHZvY8OqIG5vIHNldSBwcmltZWlybyBkaWEuXG4gICAgQ2FzbyBuw6NvIHRlbmhhIG1haXMgZXNzYSBpbmZvcm1hw6fDo28gY29udGFjdGUgbyBzdXBvcnRlYCxcbiAgICBsb2dpblBsYWNlaG9sZGVyOiAnSW5zaXJhIHNldSBlLW1haWwnLFxuICAgIHBhc3N3b3JkRXJyb3JQYXR0ZXJuOiAnU2VuaGEgaW52w6FsaWRhJyxcbiAgICBwYXNzd29yZFBsYWNlaG9sZGVyOiAnSW5zaXJhIHN1YSBzZW5oYScsXG4gICAgY3VzdG9tRmllbGRFcnJvclBhdHRlcm46ICdWYWxvciBpbnbDoWxpZG8uJyxcbiAgICBjdXN0b21GaWVsZFBsYWNlaG9sZGVyOiAnUG9yIGZhdm9yIGluc2lyYSB1bSB2YWxvcicsXG4gICAgcmVtZW1iZXJVc2VyOiAnTG9nYXIgYXV0b21hdGljYW1lbnRlJyxcbiAgICByZW1lbWJlclVzZXJIaW50OiAnVm9jw6ogcG9kZSBkZXNhYmlsaXRhciBlc3NhIG9ww6fDo28gbm8gbWVudSBkbyBzaXN0ZW1hJyxcbiAgICBzdWJtaXRMYWJlbDogJ0VudHJhcicsXG4gICAgc3VibWl0dGVkTGFiZWw6ICdDYXJyZWdhbmRvLi4uJyxcbiAgICBmb3Jnb3RQYXNzd29yZDogJ0VzcXVlY2V1IHN1YSBzZW5oYT8nLFxuICAgIGhpZ2hsaWdodEluZm86ICcnLFxuICAgIHJlZ2lzdGVyVXJsOiAnTm92byByZWdpc3RybycsXG4gICAgdGl0bGVQb3BvdmVyOiAnT3BhIScsXG4gICAgZm9yZ290WW91clBhc3N3b3JkOiAnRXNxdWVjZXUgc3VhIHNlbmhhPycsXG4gICAgaWZZb3VUcnlIYXJkZXI6ICdTZSB0ZW50YXIgbWFpcyAnLFxuICAgIGF0dGVtcHRzOiAnezB9IHZleihlcykgJyxcbiAgICB5b3VyVXNlcldpbGxCZUJsb2NrZWQ6ICdzZW0gc3VjZXNzbyBzZXUgdXN1w6FyaW8gc2Vyw6EgYmxvcXVlYWRvIGUgdm9jw6ogZmljYSAyNCBob3JhcyBzZW0gcG9kZXIgYWNlc3NhciA6KCcsXG4gICAgY3JlYXRlQU5ld1Bhc3N3b3JkTm93OiAnTWVsaG9yIGNyaWFyIHVtYSBzZW5oYSBub3ZhIGFnb3JhISBWb2PDqiB2YWkgcG9kZXIgZW50cmFyIG5vIHNpc3RlbWEgbG9nbyBlbSBzZWd1aWRhLicsXG4gICAgaUZvcmdvdE15UGFzc3dvcmQ6ICdFc3F1ZWNpIG1pbmhhIHNlbmhhJyxcbiAgICB3ZWxjb21lOiAnQm9hcy12aW5kYXMnLFxuICAgIHN1cHBvcnQ6ICdTdXBvcnRlJ1xuICB9LFxuICBydTogPFBvUGFnZUxvZ2luTGl0ZXJhbHM+e1xuICAgIHRpdGxlOiAn0JTQvtCx0YDQviDQv9C+0LbQsNC70L7QstCw0YLRjCEnLFxuICAgIGxvZ2luRXJyb3JQYXR0ZXJuOiAn0J3QtdCy0LXRgNC90YvQuSDQu9C+0LPQuNC9JyxcbiAgICBsb2dpbkhpbnQ6IGDQktCw0Ygg0LvQvtCz0LjQvSDQsdGL0Lsg0L/RgNC10LTQvtGB0YLQsNCy0LvQtdC9INCy0LDQvCDQsiDQv9C10YDQstGL0Lkg0LTQtdC90YwuXG4gICAg0JXRgdC70Lgg0YMg0LLQsNGBINC90LXRgiDRjdGC0L7QuSDQuNC90YTQvtGA0LzQsNGG0LjQuCwg0L7QsdGA0LDRgtC40YLQtdGB0Ywg0LIg0YHQu9GD0LbQsdGDINC/0L7QtNC00LXRgNC20LrQuGAsXG4gICAgbG9naW5QbGFjZWhvbGRlcjogJ9CS0YHRgtCw0LLRjNGC0LUg0YHQstC+0Lkg0LDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0YsnLFxuICAgIHBhc3N3b3JkRXJyb3JQYXR0ZXJuOiAn0J3QtdCy0LXRgNC90YvQuSDQv9Cw0YDQvtC70YwnLFxuICAgIHBhc3N3b3JkUGxhY2Vob2xkZXI6ICfQktCy0LXQtNC40YLQtSDRgdCy0L7QuSDQv9Cw0YDQvtC70YwnLFxuICAgIGN1c3RvbUZpZWxkRXJyb3JQYXR0ZXJuOiAn0J3QtdCy0LXRgNC90L7QtSDQt9C90LDRh9C10L3QuNC1LicsXG4gICAgY3VzdG9tRmllbGRQbGFjZWhvbGRlcjogJ9Cf0L7QttCw0LvRg9C50YHRgtCwLCDQstCy0LXQtNC40YLQtSDQt9C90LDRh9C10L3QuNC1JyxcbiAgICByZW1lbWJlclVzZXI6ICfQkNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuNC5INCy0YXQvtC0JyxcbiAgICByZW1lbWJlclVzZXJIaW50OiAn0JLRiyDQvNC+0LbQtdGC0LUg0L7RgtC60LvRjtGH0LjRgtGMINGN0YLRgyDQvtC/0YbQuNGOINCyINC60L7QvdGE0LjQs9GD0YDQsNGG0LjQuCDRgdC40YHRgtC10LzRiycsXG4gICAgc3VibWl0TGFiZWw6ICfQktC+0LnRgtC4JyxcbiAgICBzdWJtaXR0ZWRMYWJlbDogJzPQsNCz0YDRg9C30LrQsC4uLicsXG4gICAgZm9yZ290UGFzc3dvcmQ6ICfQl9Cw0LHRi9C70Lgg0L/QsNGA0L7Qu9GMPycsXG4gICAgaGlnaGxpZ2h0SW5mbzogJycsXG4gICAgcmVnaXN0ZXJVcmw6ICfQndC+0LLRi9C5INGA0LXQs9C40YHRgtGAJyxcbiAgICB0aXRsZVBvcG92ZXI6ICfQntC5IScsXG4gICAgZm9yZ290WW91clBhc3N3b3JkOiAn0JfQsNCx0YvQu9C4INC/0LDRgNC+0LvRjD8nLFxuICAgIGlmWW91VHJ5SGFyZGVyOiAn0JXRgdC70Lgg0LLRiyDQsdC10LfRg9GB0L/QtdGI0L3QviDQv9C+0L/Ri9GC0LDQtdGC0LXRgdGMINCy0L7QudGC0Lgg0LXRidC1ICcsXG4gICAgYXR0ZW1wdHM6ICd7MH0g0YDQsNC3KNCwKSAnLFxuICAgIHlvdXJVc2VyV2lsbEJlQmxvY2tlZDogJ9CS0LDRiCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0LHRg9C00LXRgiDQt9Cw0LHQu9C+0LrQuNGA0L7QstCw0L0sINC4INCS0Ysg0L7RgdGC0LDQvdC10YLQtdGB0Ywg0L3QsCAyNCDRh9Cw0YHQsCDQsdC10Lcg0LLQvtC30LzQvtC20L3QvtGB0YLQuCDQtNC+0YHRgtGD0L/QsCA6KCcsXG4gICAgY3JlYXRlQU5ld1Bhc3N3b3JkTm93OiAn0JvRg9GH0YjQtSDRgdC+0LfQtNCw0LnRgtC1INC90L7QstGL0Lkg0L/QsNGA0L7Qu9GMINGB0LXQudGH0LDRgSHCoNCS0Ysg0YHQvNC+0LbQtdGC0LUg0YHRgNCw0LfRgyDQstC+0LnRgtC4INCyINGB0LjRgdGC0LXQvNGDLicsXG4gICAgaUZvcmdvdE15UGFzc3dvcmQ6ICfQryDQt9Cw0LHRi9C7INGB0LLQvtC5INC/0LDRgNC+0LvRjCcsXG4gICAgd2VsY29tZTogJ9C00L7QsdGA0L4g0L/QvtC20LDQu9C+0LLQsNGC0YwnLFxuICAgIHN1cHBvcnQ6ICfQn9C+0LTQtNC10YDQttC60LAnXG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwb1BhZ2VMb2dpbkxpdGVyYWxJbiA9IHtcbiAgZW46ICdpbicsXG4gIGVzOiAnZW4nLFxuICBwdDogJ2VtJyxcbiAgcnU6ICfQsidcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTyBjb21wb25lbnRlIGBwby1wYWdlLWxvZ2luYCDDqSB1dGlsaXphZG8gY29tbyB0ZW1wbGF0ZSBwYXJhIHRlbGEgZGUgbG9naW4uXG4gKiBDb20gZWxlIMOpIHBvc3PDrXZlbCBkZWZpbmlybW9zIHZhbG9yZXMgcGFyYSB1c3XDoXJpbywgc2VuaGEgZSBkZWZpbmlyIGHDp8O1ZXMgcGFyYSByZWN1cGVyYcOnw6NvIGRlIHNlbmhhIGUgZ3JhdmHDp8OjbyBkZSBkYWRvcyBkbyB1c3XDoXJpby5cbiAqIFRhbWLDqW0gw6kgcG9zc8OtdmVsIGluc2VyaXIgdW1hIGltYWdlbSBlbSBjb25qdW50byBjb20gdW0gdGV4dG8gZGUgZGVzdGFxdWUuXG4gKlxuICpcbiAqIEEgcHJvcHJpZWRhZGUgYHAtYXV0aGVudGljYXRpb24tdXJsYCBhdXRvbWF0aXphIGEgcm90aW5hIGRvIGNvbXBvbmVudGUgZSBzaW1wbGlmaWNhIG8gcHJvY2Vzc28gcGFyYSBhdXRlbnRpY2HDp8OjbyBkbyB1c3XDoXJpbywgYmFzdGFuZG9cbiAqIGRlZmluaXIgdW1hIHVybCBwYXJhIHJlcXVpc2nDp8OjbyBkYSBhdXRlbnRpY2HDp8Ojby4gQSBmbGV4aWJpbGlkYWRlIGUgcHJhdGljaWRhZGUgcG9kZW0gY2hlZ2FyIGEgdW0gbsOtdmVsIGVtIHF1ZSBvIGRlc2Vudm9sdmltZW50b1xuICogZGEgYXBsaWNhw6fDo28gbm8gKmNsaWVudCBzaWRlKiDDqSBkZXNwcm92aWRhIGRlIHF1YWxxdWVyIGPDs2RpZ28tZm9udGUgcmVsYWNpb25hZG8gw6Agcm90aW5hIGRlIGxvZ2luIGRlIHVzdcOhcmlvLlxuICogU2V1IGRldGFsaGFtZW50byBwYXJhIHVzbyBwb2RlIHNlciB2aXN0byBsb2dvIGFiYWl4byBlbSAqcHJvcHJpZWRhZGVzKi5cbiAqIENhc28ganVsZ3VlIG5lY2Vzc8OhcmlvLCBwb2RlLXNlIHRhbWLDqW0gZGVmaW5pciBtYW51YWxtZW50ZSBhIHJvdGluYSBkbyBjb21wb25lbnRlLlxuICpcbiAqXG4gKiBQYXJhIHF1ZSBhcyBpbWFnZW5zIHNlamFtIGV4aWJpZGFzIGNvcnJldGFtZW50ZSwgw6kgbmVjZXNzw6FyaW8gaW5jbHVpciBvIGNhbWluaG8gZGVsYXMgYW8gcHJvamV0by4gUGFyYSBpc3NvLCBlZGl0ZVxuICogbyAqYXNzZXRzKiBubyBhcnF1aXZvICoqYW5ndWxhci5qc29uKiogZGEgYXBsaWNhw6fDo28gbmEgc2VndWludGUgb3JkZW06XG4gKiBgYGBcbiAqICAgXCJhc3NldHNcIjogW1xuICogICAgIFwic3JjL2Fzc2V0c1wiLFxuICogICAgIFwic3JjL2Zhdmljb24uaWNvXCIsXG4gKiAgICAge1xuICogICAgICAgXCJnbG9iXCI6IFwiKipcXC8qXCIsXG4gKiAgICAgICBcImlucHV0XCI6IFwibm9kZV9tb2R1bGVzL0Bwby11aS9zdHlsZS9pbWFnZXNcIixcbiAqICAgICAgIFwib3V0cHV0XCI6IFwiYXNzZXRzL2ltYWdlc1wiXG4gKiAgICAgfVxuICogICBdXG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUG9QYWdlTG9naW5CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIE8gYHAtYmFja2dyb3VuZGAgcGVybWl0ZSBpbnNlcmlyIHVtYSBpbWFnZW0gZGUgZGVzdGFxdWUgYW8gbGFkbyBkaXJlaXRvIGRvIGZvcm11bMOhcmlvIGRlIGxvZ2luLCBjYXNvIGEgcHJvcHJpZWRhZGVcbiAgICogbsOjbyBzZWphIHByZWVuY2hpZGEgbyBmb3JtdWzDoXJpbyBzZXLDoSBjZW50cmFsaXphZG8gbm8gZXNwYcOnbyBkaXNwb27DrXZlbC5cbiAgICpcbiAgICogQSBmb250ZSBkYSBpbWFnZW0gcG9kZSBzZXIgZGUgdW0gY2FtaW5obyBsb2NhbCBvdSB1bWEgdXJsIGRlIHVtIHNlcnZpZG9yIGV4dGVybm8uXG4gICAqXG4gICAqIEFsw6ltIGRhIGltYWdlbSwgw6kgcG9zc8OtdmVsIGFkaWNpb25hciB1bSB0ZXh0byBpbmZvcm1hdGl2byBwb3IgY2ltYSBkYSBpbWFnZW0gZGEgaW1hZ2VtIGRlIGRlc3RhcXVlLCBwYXJhIGlzc28gaW5mb3JtZVxuICAgKiB1bSB2YWxvciBwYXJhIGEgbGl0ZXJhbCBgaGlnaGxpZ2h0SW5mb2AuXG4gICAqXG4gICAqID4gVmVqYSBtYWlzIHNvYnJlIGFzIGxpdGVyYWlzIG5hIHByb3ByaWVkYWRlIGBwLWxpdGVyYWxzYC5cbiAgICpcbiAgICogRXhlbXBsb3MgZGUgdmFsb3JlcyB2w6FsaWRvczpcbiAgICogLSAqKmxvY2FsKio6IGAuL2Fzc2V0cy9pbWFnZXMvbG9naW4tYmFja2dyb3VuZC5wbmdgXG4gICAqIC0gKip1cmwgZXh0ZXJuYSoqOiBgaHR0cHM6Ly9wby11aS5pby9hc3NldHMvaW1hZ2VzL2xvZ2luLWJhY2tncm91bmQucG5nYFxuICAgKlxuICAgKiA+IEVzc2EgcHJvcHJpZWRhZGUgw6kgaWdub3JhZGEgcGFyYSBhcGxpY2HDp8O1ZXMgbW9iaWxlLlxuICAgKi9cbiAgQElucHV0KCdwLWJhY2tncm91bmQnKSBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIENhbWluaG8gcGFyYSBhIGxvZ29tYXJjYSBsb2NhbGl6YWRhIG5hIHBhcnRlIHN1cGVyaW9yLlxuICAgKlxuICAgKiA+IENhc28gc2VqYSBpbmRlZmluaWRhIG8gZXNwYcOnbyBzZSBtYW50w6ltIHByZXNlcnZhZG8gcG9yw6ltIHZhemlvLlxuICAgKi9cbiAgQElucHV0KCdwLWxvZ28nKSBsb2dvPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV4cHJlc3PDo28gcmVndWxhciBwYXJhIHZhbGlkYXIgbyBjYW1wbyBkZSBsb2dpbiwgY2FzbyBhIGV4cHJlc3PDo28gbsOjbyBzZWphIGF0ZW50aWRhLCBhIGxpdGVyYWwgYGxvZ2luRXJyb3JQYXR0ZXJuYFxuICAgKiBzZXLDoSBleGliaWRhLlxuICAgKlxuICAgKiBFeGVtcGxvcyBkZSB2YWxvcmVzIHbDoWxpZG9zOlxuICAgKiAtIGVtYWlsOiBgW2V4cHJlc3Nhby1yZWd1bGFyLWVtYWlsXWBcbiAgICogLSBjcGY6IGBbZXhwcmVzc2FvLXJlZ3VsYXItY3BmXWBcbiAgICpcbiAgICogPiBWZWphIGEgcHJvcHJpZWRhZGUgYHAtbGl0ZXJhbHNgIHBhcmEgY3VzdG9taXphciBhIGxpdGVyYWwgYGxvZ2luRXJyb3JQYXR0ZXJuYC5cbiAgICovXG4gIEBJbnB1dCgncC1sb2dpbi1wYXR0ZXJuJykgbG9naW5QYXR0ZXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV4cHJlc3PDo28gcmVndWxhciBwYXJhIHZhbGlkYXIgbyBjYW1wbyBkZSBwYXNzd29yZCwgY2FzbyBhIGV4cHJlc3PDo28gbsOjbyBzZWphIGF0ZW50aWRhLCBhIGxpdGVyYWwgYHBhc3N3b3JkRXJyb3JQYXR0ZXJuYFxuICAgKiBzZXLDoSBleGliaWRhLlxuICAgKlxuICAgKiBFeGVtcGxvcyBkZSB2YWxvcmVzIHbDoWxpZG9zOlxuICAgKiAtIEFwZW5hcyBuw7ptZXJvczogYFxcZD9gXG4gICAqIC0gTGV0cmFzIG3DrW51c2N1bGFzOiBgXFx6P2BcbiAgICpcbiAgICogPiBWZWphIGEgcHJvcHJpZWRhZGUgYHAtbGl0ZXJhbHNgIHBhcmEgY3VzdG9taXphciBhIGxpdGVyYWwgYHBhc3N3b3JkRXJyb3JQYXR0ZXJuYC5cbiAgICovXG4gIEBJbnB1dCgncC1wYXNzd29yZC1wYXR0ZXJuJykgcGFzc3dvcmRQYXR0ZXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIENhbWluaG8gcGFyYSBhIGxvZ29tYXJjYSBsb2NhbGl6YWRhIG5vIHJvZGFww6kuXG4gICAqL1xuICBASW5wdXQoJ3Atc2Vjb25kYXJ5LWxvZ28nKSBzZWNvbmRhcnlMb2dvPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gcXVhbmRvIG8gdXN1w6FyaW8gYWx0ZXJhciBvIGlucHV0IGRvIGNhbXBvIGxvZ2luLlxuICAgKlxuICAgKiBFc3NlIGV2ZW50byByZWNlYmVyw6EgY29tbyBwYXLDom1ldHJvIHVtYSB2YXJpw6F2ZWwgZG8gdGlwbyBgc3RyaW5nYCBjb20gbyB0ZXh0byBpbmZvcm1hZG8gbm8gY2FtcG8uXG4gICAqXG4gICAqID4gRXN0YSBwcm9wcmllZGFkZSBzZXLDoSBpZ25vcmFkYSBzZSBmb3IgZGVmaW5pZG8gdmFsb3IgcGFyYSBhIHByb3ByaWVkYWRlIGBwLWF1dGhlbnRpY2F0aW9uLXVybGAuXG4gICAqL1xuICBAT3V0cHV0KCdwLWxvZ2luLWNoYW5nZScpIGxvZ2luQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBFdmVudG8gZGlzcGFyYWRvIGFvIHN1Ym1ldGVyIG8gZm9ybXVsw6FyaW8gZGUgbG9naW4gKGFwZXJ0YW5kbyBgRW50ZXJgIGRlbnRybyBkb3MgY2FtcG9zIG91IHByZXNzaW9uYW5kbyBvIGJvdMOjbyBkZSBjb25maXJtYcOnw6NvKS5cbiAgICpcbiAgICogRXNzZSBldmVudG8gcmVjZWJlcsOhIGNvbW8gcGFyw6JtZXRybyB1bSBvYmpldG8gZG8gdGlwbyBgUG9QYWdlTG9naW5gIGNvbSBvcyBkYWRvcyBpbmZvcm1hZG9zIG5vIGZvcm11bMOhcmlvLlxuICAgKlxuICAgKiA+IEVzdGEgcHJvcHJpZWRhZGUgc2Vyw6EgaWdub3JhZGEgc2UgZm9yIGRlZmluaWRvIHZhbG9yIHBhcmEgYSBwcm9wcmllZGFkZSBgcC11cmwtcmVjb3ZlcnlgLlxuICAgKlxuICAgKiA+IFBhcmEgbWFpcyBkZXRhbGhlcyBjb25zdWx0ZSBhIGRvY3VtZW50YcOnw6NvIHNvYnJlIGEgaW50ZXJmYWNlIGBQb1BhZ2VMb2dpbmAgbWFpcyBhYmFpeG8uXG4gICAqL1xuICBAT3V0cHV0KCdwLWxvZ2luLXN1Ym1pdCcpIGxvZ2luU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxQb1BhZ2VMb2dpbj4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gZGlzcGFyYWRvIHF1YW5kbyBvIHVzdcOhcmlvIGFsdGVyYXIgbyBpbnB1dCBkbyBjYW1wbyBwYXNzd29yZC5cbiAgICpcbiAgICogRXNzZSBldmVudG8gcmVjZWJlcsOhIGNvbW8gcGFyw6JtZXRybyB1bWEgdmFyacOhdmVsIGRvIHRpcG8gYHN0cmluZ2AgY29tIG8gdGV4dG8gaW5mb3JtYWRvIG5vIGNhbXBvLlxuICAgKlxuICAgKiA+IEVzdGEgcHJvcHJpZWRhZGUgc2Vyw6EgaWdub3JhZGEgc2UgZm9yIGRlZmluaWRvIHZhbG9yIHBhcmEgYSBwcm9wcmllZGFkZSBgcC1hdXRoZW50aWNhdGlvbi11cmxgLlxuICAgKi9cbiAgQE91dHB1dCgncC1wYXNzd29yZC1jaGFuZ2UnKSBwYXNzd29yZENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gZGlzcGFyYWRvIHF1YW5kbyBvIHVzdcOhcmlvIGFsdGVyYXIgbyBpZGlvbWEgZGEgcMOhZ2luYS5cbiAgICpcbiAgICogRXNzZSBldmVudG8gcmVjZWJlcsOhIGNvbW8gcGFyw6JtZXRybyB1bSBvYmpldG8gZG8gdGlwbyBgUG9MYW5ndWFnZWAgY29tIGEgbGluZ3VhZ2VtIHNlbGVjaW9uYWRhLlxuICAgKlxuICAgKi9cbiAgQE91dHB1dCgncC1sYW5ndWFnZS1jaGFuZ2UnKSBsYW5ndWFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPFBvTGFuZ3VhZ2U+ID0gbmV3IEV2ZW50RW1pdHRlcjxQb0xhbmd1YWdlPigpO1xuXG4gIGFsbExvZ2luRXJyb3JzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIGFsbFBhc3N3b3JkRXJyb3JzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIGN1c3RvbUZpZWxkT2JqZWN0OiBQb1BhZ2VMb2dpbkN1c3RvbUZpZWxkO1xuICBjdXN0b21GaWVsZFR5cGU6IHN0cmluZztcbiAgbG9naW5TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcGFzc3dvcmQ6IHN0cmluZztcbiAgcmVtZW1iZXJVc2VyOiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdGVkTGFuZ3VhZ2U6IHN0cmluZztcbiAgc2hvd0V4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfYXV0aGVudGljYXRpb25UeXBlOiBQb1BhZ2VMb2dpbkF1dGhlbnRpY2F0aW9uVHlwZSA9IFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlLkJhc2ljO1xuICBwcml2YXRlIF9hdXRoZW50aWNhdGlvblVybDogc3RyaW5nO1xuICBwcml2YXRlIF9ibG9ja2VkVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgX2NvbnRhY3RFbWFpbDogc3RyaW5nO1xuICBwcml2YXRlIF9jdXN0b21GaWVsZDogc3RyaW5nIHwgUG9QYWdlTG9naW5DdXN0b21GaWVsZDtcbiAgcHJpdmF0ZSBfZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG4gIHByaXZhdGUgX2V4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nPzogbnVtYmVyO1xuICBwcml2YXRlIF9oaWRlUmVtZW1iZXJVc2VyOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2xpdGVyYWxzOiBQb1BhZ2VMb2dpbkxpdGVyYWxzO1xuICBwcml2YXRlIF9sb2FkaW5nPzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9sb2dpbjogc3RyaW5nO1xuICBwcml2YXRlIF9sb2dpbkVycm9yczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBwcml2YXRlIF9wYXNzd29yZEVycm9yczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBwcml2YXRlIF9wcm9kdWN0TmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF9yZWNvdmVyeTogc3RyaW5nIHwgUG9QYWdlTG9naW5SZWNvdmVyeSB8IEZ1bmN0aW9uO1xuICBwcml2YXRlIF9yZWdpc3RlclVybDogc3RyaW5nO1xuICBwcml2YXRlIF9zdXBwb3J0OiBzdHJpbmcgfCBGdW5jdGlvbjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2VzTGlzdDogQXJyYXk8UG9MYW5ndWFnZT47XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQW8gaW5mb3JtYXIgdW0gdmFsb3IgZG8gdGlwbyBgc3RyaW5nYCwgbyBtZXNtbyBzZXLDoSBhcGxpY2FkbyBjb21vIGEgY2hhdmUgZG8gY2FtcG8gY3VzdG9taXphZG8gZSB1dGlsaXphcsOhXG4gICAqIG9zIHZhbG9yZXMgcGFkcsO1ZXMgY29udGlkb3MgbmEgcHJvcHJpZWRhZGUgYGxpdGVyYWxzYCBjb21vIGBjdXN0b21GaWVsZEVycm9yUGF0dGVybmAgZSBgY3VzdG9tRmllbGRQbGFjZWhvbGRlcmAuXG4gICAqXG4gICAqIEV4aXN0ZSBhIHBvc3NpYmlsaWRhZGUgZGUgaW5mb3JtYXIgdW0gb2JqZXRvIHF1ZSBzZWd1ZSBhIGRlZmluacOnw6NvIGRhIGludGVyZmFjZSBgUG9QYWdlTG9naW5DdXN0b21GaWVsZGAsIG9uZGVcbiAgICogYXRyYXbDqXMgZG9zIHBhcsOibWV0cm9zIGVudmlhZG9zIHBvZGUgZ2VyYXIgdW0gYHBvLWlucHV0YCwgYHBvLWNvbWJvYCBlc3BlY2lmaWNhbWVudGUgcGFyYSBzZXJ2acOnb3NcbiAgICogb3UgYHBvLXNlbGVjdGAgcGFyYSB2YWxvcmVzIGZpeG9zLlxuICAgKlxuICAgKiBBYmFpeG8gc2VndWVtIG9zIGV4ZW1wbG9zIGRlIGNhZGEgdGlwbyBkZSBjYW1wby5cbiAgICpcbiAgICogYHBvLWlucHV0YDpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogICBwcm9wZXJ0eTogJ2RvbWFpbicsXG4gICAqICAgdmFsdWU6ICdqdjAxJyxcbiAgICogICBwbGFjZWhvbGRlcjogJ0VudGVyIHlvdXIgZG9tYWluJyxcbiAgICogICBwYXR0ZXJuOiAnW2Etel0nLFxuICAgKiAgIGVycm9yUGF0dGVybjogJ0ludmFsaWQgdmFsdWUnXG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIGBwby1jb21ib2A6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqICAgcHJvcGVydHk6ICdkb21haW4nLFxuICAgKiAgIHZhbHVlOiAnanYwMScsXG4gICAqICAgcGxhY2Vob2xkZXI6ICdFbnRlciB5b3VyIGRvbWFpbicsXG4gICAqICAgdXJsOiAnaHR0cHM6Ly9wby11aS5pby9zYW1wbGUvYXBpL2NvbWJvT3B0aW9uL2RvbWFpbnMnLFxuICAgKiAgIGZpZWxkVmFsdWU6ICduaWNrbmFtZSdcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogYHBvLXNlbGVjdGA6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7XG4gICAqICAgcHJvcGVydHk6ICdkb21haW4nLFxuICAgKiAgIHZhbHVlOiAnanYwMScsXG4gICAqICAgcGxhY2Vob2xkZXI6ICdFbnRlciB5b3VyIGRvbWFpbicsXG4gICAqICAgb3B0aW9uczogW3tsYWJlbDogJ0RvbWFpbiAxJywgdmFsdWU6ICcxJ30sIHtsYWJlbDogJ0RvbWFpbiAyJywgdmFsdWU6ICcyJ31dXG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIENhc28gbyBjdXN0b21GaWVsZCBwb3NzdWEgb3B0aW9ucywgdXJsIGUgZmllbGRWYWx1ZSBwcmVlbmNoaWRvcywgc2Vyw6EgcHJpb3JpemFkbyBvIHBvLXNlbGVjdFxuICAgKiB1dGlsaXphbmRvIG8gb3B0aW9ucy5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgncC1jdXN0b20tZmllbGQnKSBzZXQgY3VzdG9tRmllbGQodmFsdWU6IHN0cmluZyB8IFBvUGFnZUxvZ2luQ3VzdG9tRmllbGQpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGlmIChpc1R5cGVvZih2YWx1ZSwgJ3N0cmluZycpKSB7XG4gICAgICAgIHRoaXMuY3VzdG9tRmllbGRUeXBlID0gJ2lucHV0JztcbiAgICAgICAgdGhpcy5fY3VzdG9tRmllbGQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jdXN0b21GaWVsZE9iamVjdCA9IHRoaXMuZ2V0RGVmYXVsdEN1c3RvbUZpZWxkT2JqZWN0KHZhbHVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNUeXBlb2YodmFsdWUsICdvYmplY3QnKSAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWVbJ3Byb3BlcnR5J10pIHtcbiAgICAgICAgdGhpcy5fY3VzdG9tRmllbGQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jdXN0b21GaWVsZE9iamVjdCA9IDxQb1BhZ2VMb2dpbkN1c3RvbUZpZWxkPnZhbHVlO1xuXG4gICAgICAgIGlmICghdGhpcy5jdXN0b21GaWVsZE9iamVjdC5vcHRpb25zICYmICF0aGlzLmN1c3RvbUZpZWxkT2JqZWN0LnVybCkge1xuICAgICAgICAgIHRoaXMuY3VzdG9tRmllbGRUeXBlID0gJ2lucHV0JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmN1c3RvbUZpZWxkVHlwZSA9IHRoaXMuY3VzdG9tRmllbGRPYmplY3Qub3B0aW9ucyA/ICdzZWxlY3QnIDogJ2NvbWJvJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9jdXN0b21GaWVsZCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmN1c3RvbUZpZWxkT2JqZWN0ID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IGN1c3RvbUZpZWxkKCk6IHN0cmluZyB8IFBvUGFnZUxvZ2luQ3VzdG9tRmllbGQge1xuICAgIHJldHVybiB0aGlzLl9jdXN0b21GaWVsZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFBlcnNvbmFsaXphIG8gZS1tYWlsIHF1ZSDDqSBleGliaWRvIG5hIG1lbnNhZ2VtIGRlIGRpY2EgZGUgbG9naW4gcGFkcsOjbyBwYXJhIGNvbnRhdG8gZGUgc3Vwb3J0ZS5cbiAgICovXG4gIEBJbnB1dCgncC1jb250YWN0LWVtYWlsJykgc2V0IGNvbnRhY3RFbWFpbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29udGFjdEVtYWlsID0gdmFsdWU7XG4gIH1cbiAgZ2V0IGNvbnRhY3RFbWFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGFjdEVtYWlsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogVGV4dG8gY3VzdG9taXphZG8gcXVlIGZpY2EgZW50cmUgYSBsb2dvIGUgYSBtZW5zYWdlbSBkZSBib2FzLXZpbmRhcy5cbiAgICovXG4gIEBJbnB1dCgncC1wcm9kdWN0LW5hbWUnKSBzZXQgcHJvZHVjdE5hbWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3Byb2R1Y3ROYW1lID0gdmFsdWU7XG4gIH1cbiAgZ2V0IHByb2R1Y3ROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLl9wcm9kdWN0TmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkaWNpb25hIHVtYSBgdGFnYCBhYmFpeG8gZG8gdMOtdHVsbyBxdWUgZXNwZWNpZmljYSBvIGFtYmllbnRlIHF1ZSBvIHVzdcOhcmlvIGVzdMOhIGZhemVuZG8gbyBsb2dpbi5cbiAgICpcbiAgICogPiBFc3NhIHByb3ByaWVkYWRlIGxpbWl0YSBvIHRleHRvIGVtIDQwIGNhcmFjdGVyZXMuXG4gICAqL1xuICBASW5wdXQoJ3AtZW52aXJvbm1lbnQnKSBzZXQgZW52aXJvbm1lbnQoZW52aXJvbm1lbnQ6IHN0cmluZykge1xuICAgIGlmIChlbnZpcm9ubWVudCAmJiBlbnZpcm9ubWVudC5sZW5ndGggPiBwb1BhZ2VMb2dpbkNvbnRlbnRNYXhMZW5ndGgpIHtcbiAgICAgIHRoaXMuX2Vudmlyb25tZW50ID0gZW52aXJvbm1lbnQuc3Vic3RyaW5nKDAsIHBvUGFnZUxvZ2luQ29udGVudE1heExlbmd0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2Vudmlyb25tZW50ID0gZW52aXJvbm1lbnQ7XG4gICAgfVxuICB9XG4gIGdldCBlbnZpcm9ubWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW52aXJvbm1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBFeGliZSB1bSBhdmlzbyBkZSBibG9xdWVpbyBkZSBhY29yZG8gY29tIGEgcXVhbnRpZGFkZSByZXN0YW50ZSBkZSB0ZW50YXRpdmFzLlxuICAgKiBPIGF2aXNvIHNlcsOhIGV4aWJpZG8gc29tZW50ZSBzZSBhIHF1YW50aWRhZGUgZm9yIG1haW9yIHF1ZSB6ZXJvLlxuICAgKlxuICAgKiA+IENhc28gdGVuaGEgYWxndW0gdmFsb3IgYXRyaWJ1w61kbyBwYXJhIG8gYXRyaWJ1dG8gYHAtYXV0aGVudGljYXRpb24tdXJsYCBlIG8gcmV0b3JubyBkYSByZXF1aXNpw6fDo28gZXN0aXZlciBhdHJpYnVpbmRvIHZhbG9yXG4gICAqIHBhcmEgbyBgcC1leGNlZWRlZC1hdHRlbXB0cy13YXJuaW5nYCwgbyB2YWxvciBjb25zaWRlcmFkbyBzZXLDoSBvIGRvIHJldG9ybm8gZGEgcmVxdWlzacOnw6NvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgMGBcbiAgICovXG4gIEBJbnB1dCgncC1leGNlZWRlZC1hdHRlbXB0cy13YXJuaW5nJykgc2V0IGV4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9leGNlZWRlZEF0dGVtcHRzV2FybmluZyA9IGNvbnZlcnRUb0ludCh2YWx1ZSk7XG4gICAgdGhpcy5zaG93RXhjZWVkZWRBdHRlbXB0c1dhcm5pbmcgPSB0aGlzLmV4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nID4gMDtcbiAgfVxuXG4gIGdldCBleGNlZWRlZEF0dGVtcHRzV2FybmluZygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9leGNlZWRlZEF0dGVtcHRzV2FybmluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEVzY29uZGUgYSBmdW7Dp8OjbyBcIkxlbWJyYXIgdXN1w6FyaW9cIiBkbyBmb3JtdWzDoXJpbyBkZSBsb2dpbi5cbiAgICpcbiAgICogUXVhbmRvIGVzc2EgcHJvcHJpZWRhZGUgw6kgc2V0YWRhIGNvbSBgdHJ1ZWAgYSBwcm9wcmllZGFkZSBgcmVtZW1iZXJVc2VyYCBlbnZpYWRhIG5vIGV2ZW50byBgcC1sb2dpbi1zdWJtaXRgIHNlcsOhIHNlbXByZVxuICAgKiBgZmFsc2VgLlxuICAgKlxuICAgKiA+IFZlamEgYSBwcm9wcmllZGFkZSBgcC1saXRlcmFsc2AgcGFyYSBjdXN0b21pemFyIGEgbGl0ZXJhbCBgcmVtZW1iZXJVc2VyYC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLWhpZGUtcmVtZW1iZXItdXNlcicpIHNldCBoaWRlUmVtZW1iZXJVc2VyKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faGlkZVJlbWVtYmVyVXNlciA9IDxhbnk+dmFsdWUgPT09ICcnID8gdHJ1ZSA6IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuXG4gICAgaWYgKHRoaXMuX2hpZGVSZW1lbWJlclVzZXIpIHtcbiAgICAgIHRoaXMucmVtZW1iZXJVc2VyID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIGdldCBoaWRlUmVtZW1iZXJVc2VyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oaWRlUmVtZW1iZXJVc2VyO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogT2JqZXRvIGNvbSBhcyBsaXRlcmFpcyB1c2FkYXMgbm8gYHBvLXBhZ2UtbG9naW5gLlxuICAgKlxuICAgKiBFeGlzdGVtIGR1YXMgbWFuZWlyYXMgZGUgY3VzdG9taXphciBvIGNvbXBvbmVudGUsIHBhc3NhbmRvIHVtIG9iamV0byBjb20gdG9kYXMgYXMgbGl0ZXJhaXMgZGlzcG9uw612ZWlzOlxuICAgKlxuICAgKiBgYGBcbiAgICogIGNvbnN0IGN1c3RvbUxpdGVyYWxzOiBQb1BhZ2VMb2dpbkxpdGVyYWxzID0ge1xuICAgKiAgICBhdHRlbXB0czogJ3swfSB2ZXooZXMpICcsXG4gICAqICAgIGNyZWF0ZUFOZXdQYXNzd29yZE5vdzogJ01lbGhvciBjcmlhciB1bWEgc2VuaGEgbm92YSBhZ29yYSEgVm9jw6ogdmFpIHBvZGVyIGVudHJhciBubyBzaXN0ZW1hIGxvZ28gZW0gc2VndWlkYS4nLFxuICAgKiAgICBmb3Jnb3RQYXNzd29yZDogJ0VzcXVlY2V1IHN1YSBzZW5oYT8nLFxuICAgKiAgICBmb3Jnb3RZb3VyUGFzc3dvcmQ6ICdFc3F1ZWNldSBzdWEgc2VuaGE/JyxcbiAgICogICAgaGlnaGxpZ2h0SW5mbzogJycsXG4gICAqICAgIGlGb3Jnb3RNeVBhc3N3b3JkOiAnRXNxdWVjaSBtaW5oYSBzZW5oYScsXG4gICAqICAgIGlmWW91VHJ5SGFyZGVyOiAnU2UgdGVudGFyIG1haXMgJyxcbiAgICogICAgd2VsY29tZTogJ0JvYXMtdmluZGFzJyxcbiAgICogICAgbG9naW5FcnJvclBhdHRlcm46ICdMb2dpbiBvYnJpZ2F0w7NyaW8nLFxuICAgKiAgICBsb2dpbkhpbnQ6ICdDYXNvIG7Do28gcG9zc3VhIHVzdcOhcmlvIGVudHJlIGVtIGNvbnRhdG8gY29tIG8gc3Vwb3J0ZScsXG4gICAqICAgIGxvZ2luTGFiZWw6ICdJbnNpcmEgc2V1IHVzdcOhcmlvJyxcbiAgICogICAgbG9naW5QbGFjZWhvbGRlcjogJ0luc2lyYSBzZXUgdXN1w6FyaW8gZGUgYWNlc3NvJyxcbiAgICogICAgcGFzc3dvcmRFcnJvclBhdHRlcm46ICdTZW5oYSBvYnJpZ2F0w7NyaWEnLFxuICAgKiAgICBwYXNzd29yZExhYmVsOiAnSW5zaXJhIHN1YSBzZW5oYScsXG4gICAqICAgIHBhc3N3b3JkUGxhY2Vob2xkZXI6ICdJbnNpcmEgc3VhIHNlbmhhIGRlIGFjZXNzbycsXG4gICAqICAgIGN1c3RvbUZpZWxkRXJyb3JQYXR0ZXJuOiAnQ2FtcG8gY3VzdG9taXphZG8gaW52w6FsaWRvJyxcbiAgICogICAgY3VzdG9tRmllbGRQbGFjZWhvbGRlcjogJ1BvciBmYXZvciBpbnNpcmEgdW0gdmFsb3InLFxuICAgKiAgICByZWdpc3RlclVybDogJ05vdm8gcmVnaXN0cm8nLFxuICAgKiAgICByZW1lbWJlclVzZXI6ICdMZW1icmFyIHVzdcOhcmlvJyxcbiAgICogICAgcmVtZW1iZXJVc2VySGludDogJ0VzdGEgb3DDp8OjbyBwb2RlIHNlciBkZXNhYmlsaXRhZGEgbmFzIGNvbmZpZ3VyYcOnw7VlcyBkbyBzaXN0ZW1hJyxcbiAgICogICAgc3VibWl0TGFiZWw6ICdBY2Vzc2FyIHNpc3RlbWEnLFxuICAgKiAgICBzdWJtaXR0ZWRMYWJlbDogJ0NhcnJlZ2FuZG8uLi4nLFxuICAgKiAgICB0aXRsZVBvcG92ZXI6ICdPcGEhJyxcbiAgICogICAgeW91clVzZXJXaWxsQmVCbG9ja2VkOiAnc2VtIHN1Y2Vzc28gc2V1IHVzdcOhcmlvIHNlcsOhIGJsb3F1ZWFkbyBlIHZvY8OqIGZpY2EgMjQgaG9yYXMgc2VtIHBvZGVyIGFjZXNzYXIgOignXG4gICAqICB9O1xuICAgKiBgYGBcbiAgICpcbiAgICogT3UgcGFzc2FuZG8gYXBlbmFzIGFzIGxpdGVyYWlzIHF1ZSBkZXNlamEgY3VzdG9taXphcjpcbiAgICpcbiAgICogYGBgXG4gICAqICBjb25zdCBjdXN0b21MaXRlcmFsczogUG9QYWdlTG9naW5MaXRlcmFscyA9IHtcbiAgICogICAgbG9naW5QbGFjZWhvbGRlcjogJ0luc2lyYSBzZXUgdXN1w6FyaW8gZGUgYWNlc3NvJyxcbiAgICogICAgcGFzc3dvcmRQbGFjZWhvbGRlcjogJ0luc2lyYSBzdWEgc2VuaGEgZGUgYWNlc3NvJyxcbiAgICogICAgc3VibWl0TGFiZWw6ICdBY2Vzc2FyIHNpc3RlbWEnXG4gICAqICB9O1xuICAgKiBgYGBcbiAgICpcbiAgICogRSBwYXJhIGNhcnJlZ2FyIGFzIGxpdGVyYWlzIGN1c3RvbWl6YWRhcywgYmFzdGEgYXBlbmFzIHBhc3NhciBvIG9iamV0byBwYXJhIG8gY29tcG9uZW50ZS5cbiAgICpcbiAgICogYGBgXG4gICAqIDxwby1wYWdlLWxvZ2luXG4gICAqICAgW3AtbGl0ZXJhbHNdPVwiY3VzdG9tTGl0ZXJhbHNcIj5cbiAgICogPC9wby1wYWdlLWxvZ2luPlxuICAgKiBgYGBcbiAgICpcbiAgICogID4gTyBvYmpldG8gcGFkcsOjbyBkZSBsaXRlcmFpcyBzZXLDoSB0cmFkdXppZG8gZGUgYWNvcmRvIGNvbSBvIGlkaW9tYSBkbyBicm93c2VyIChwdCwgZW4sIGVzKS5cbiAgICogID4gw4kgdGFtYsOpbSBwb3Nzw612ZWwgYWx0ZXJuYXIgbyBvYmpldG8gcGFkcsOjbyBkZSBsaXRlcmFpcyBhdHJhdsOpcyBkbyBzZWxldG9yIGRlIGlkaW9tYXMgbG9jYWxpemFkbyBuYSBwYXJ0ZSBpbmZlcmlvciBkbyB0ZW1wbGF0ZSxcbiAgICogbmVzc2UgY2FzbywgaMOhIHRhbWLDqW0gYSBvcMOnw6NvIGRvIGlkaW9tYSBydXNzby5cbiAgICovXG4gIEBJbnB1dCgncC1saXRlcmFscycpIHNldCBsaXRlcmFscyh2YWx1ZTogUG9QYWdlTG9naW5MaXRlcmFscykge1xuICAgIHRoaXMuX2xpdGVyYWxzID0gdmFsdWU7XG4gIH1cblxuICBnZXQgbGl0ZXJhbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xpdGVyYWxzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSGFiaWxpdGEgdW0gZXN0YWRvIGRlIGNhcnJlZ2FtZW50byBhbyBib3TDo28gZGUgKmxvZ2luKi5cbiAgICpcbiAgICogPiDDiSBuZWNlc3PDoXJpbyBhdHJpYnVpciBgdHJ1ZWAgw6AgZXN0YSBwcm9wcmllZGFkZSBuYSBmdW7Dp8OjbyBkZWZpbmlkYSBlbSBgcC1sb2dpbi1zdWJtaXRgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtbG9hZGluZycpIHNldCBsb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbG9hZGluZyA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuICB9XG5cbiAgZ2V0IGxvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRpbmc7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBWYWxvciBkbyBtb2RlbG8gZG8gY2FtcG8gZGUgbG9naW4uXG4gICAqL1xuICBASW5wdXQoJ3AtbG9naW4nKSBzZXQgbG9naW4odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2xvZ2luID0gdmFsdWU7XG5cbiAgICBpZiAoIXRoaXMuYXV0aGVudGljYXRpb25VcmwpIHtcbiAgICAgIHRoaXMubG9naW5DaGFuZ2UuZW1pdCh0aGlzLl9sb2dpbik7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGxvZ2luKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2xvZ2luO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQXRyaWJ1dG8gcXVlIHJlY2ViZSB1bWEgbGlzdGEgZGUgZXJyb3MgZSBleGliZSBhYmFpeG8gZG8gY2FtcG8gZGUgbG9naW4uXG4gICAqL1xuICBASW5wdXQoJ3AtbG9naW4tZXJyb3JzJykgc2V0IGxvZ2luRXJyb3JzKHZhbHVlOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgdGhpcy5fbG9naW5FcnJvcnMgPSB2YWx1ZSB8fCBbXTtcbiAgICB0aGlzLnNldExvZ2luRXJyb3JzKHRoaXMuX2xvZ2luRXJyb3JzKTtcbiAgfVxuICBnZXQgbG9naW5FcnJvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xvZ2luRXJyb3JzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQXRyaWJ1dG8gcXVlIHJlY2ViZSB1bWEgbGlzdGEgZGUgZXJyb3MgZSBleGliZSBhYmFpeG8gZG8gY2FtcG8gZGUgcGFzc3dvcmQuXG4gICAqL1xuICBASW5wdXQoJ3AtcGFzc3dvcmQtZXJyb3JzJykgc2V0IHBhc3N3b3JkRXJyb3JzKHZhbHVlOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgdGhpcy5fcGFzc3dvcmRFcnJvcnMgPSB2YWx1ZSB8fCBbXTtcbiAgICB0aGlzLnNldFBhc3N3b3JkRXJyb3JzKHRoaXMuX3Bhc3N3b3JkRXJyb3JzKTtcbiAgfVxuICBnZXQgcGFzc3dvcmRFcnJvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Bhc3N3b3JkRXJyb3JzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXhpYmUgdW0gbGluayBhYmFpeG8gZG8gZm9ybXVsw6FyaW8gZGUgbG9naW4gcGFyYSBxdWUgb3MgdXN1w6FyaW9zIGRhIGFwbGljYcOnw6NvIGZhw6dhbSBhIHJlY3VwZXJhw6fDo28gZG9zIGRhZG9zIGRlIGF1dGVudGljYcOnw6NvLlxuICAgKlxuICAgKiBBIHByb3ByaWVkYWRlIGFjZWl0YSBvcyBzZWd1aW50ZXMgdGlwb3M6XG4gICAqXG4gICAqIC0gKipTdHJpbmcqKjogaW5mb3JtZSB1bWEgdXJsIGV4dGVybmEgb3UgdW1hIHJvdGEgdsOhbGlkYTtcbiAgICogLSAqKkZ1bmN0aW9uKio6IHBvZGUtc2UgY3VzdG9taXphciBhIGHDp8Ojby4gUGFyYSBlc3RhIHBvc3NpbGlkYWRlIGJhc3RhIGF0cmlidWlyOlxuICAgKiBgYGBcbiAgICogPHBvLXBhZ2UtbG9naW4+XG4gICAqICAgW3JlY292ZXJ5XT1cInRoaXMubXlSZWNvdmVyeS5iaW5kKHRoaXMpXCI+XG4gICAqIDwvcG8tcGFnZS1sb2dpbj5cbiAgICogYGBgXG4gICAqXG4gICAqIC0gKipQb1BhZ2VMb2dpblJlY292ZXJ5Kio6IGNyaWEtc2UgdsOtbmN1bG8gYXV0b23DoXRpY28gY29tIG8gdGVtcGxhdGUgKipwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeSoqLlxuICAgKiAgIE8gb2JqZXRvIGRldmUgY29udGVyIGEgKip1cmwqKiBwYXJhIHJlcXVpc2nDp8OjbyBkb3MgcmVjdXJzb3MgZSBwb2RlLXNlIGRlZmluaXIgbyAqKnRpcG8qKiBkZSBtb2RhbCBwYXJhIHJlY3VwZXJhw6fDo28gZGUgc2VuaGEsXG4gICAqICAgKiplbWFpbCoqIHBhcmEgY29udGF0byBlICoqbcOhc2NhcmEqKiBkbyBjYW1wbyBkZSB0ZWxlZm9uZS5cbiAgICovXG4gIEBJbnB1dCgncC1yZWNvdmVyeScpIHNldCByZWNvdmVyeSh2YWx1ZTogc3RyaW5nIHwgRnVuY3Rpb24gfCBQb1BhZ2VMb2dpblJlY292ZXJ5KSB7XG4gICAgdGhpcy5fcmVjb3ZlcnkgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCByZWNvdmVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVjb3Zlcnk7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBDYXNvIGEgYXBsaWNhw6fDo28gdGVuaGEgdW0gbGluayBwYXJhIG5vdm9zIGNhZGFzdHJvcywgaW5mb3JtZSB1bWEgdXJsIGV4dGVybmEgb3UgdW1hIHJvdGEgdsOhbGlkYSwgZGVzc2FcbiAgICogZm9ybWEgc2Vyw6EgZXhpYmlkbyB1bSBsaW5rIGFiYWl4byBkbyBmb3JtdWzDoXJpbyBkZSBsb2dpbiBwYXJhIG9zIHVzdcOhcmlvcyBkYSBhcGxpY2HDp8Ojby5cbiAgICpcbiAgICogRXhlbXBsb3MgZGUgdmFsb3JlcyB2w6FsaWRvczpcbiAgICogLSAqKmxvY2FsKio6IGAvaG9tZWBcbiAgICogLSAqKnVybCBleHRlcm5hKio6IGBodHRwczovL3BvLXVpLmlvYFxuICAgKlxuICAgKiA+IFZlamEgYSBwcm9wcmllZGFkZSBgcC1saXRlcmFsc2AgcGFyYSBjdXN0b21pemFyIGEgbGl0ZXJhbCBgcmVnaXN0ZXJVcmxgLlxuICAgKi9cbiAgQElucHV0KCdwLXJlZ2lzdGVyLXVybCcpIHNldCByZWdpc3RlclVybCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fcmVnaXN0ZXJVcmwgPSBpc1R5cGVvZih2YWx1ZSwgJ3N0cmluZycpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgcmVnaXN0ZXJVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcmVnaXN0ZXJVcmw7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBBdHJpYnV0byBxdWUgcmVjZWJlIG8gdGlwbyBkZSBlc3F1ZW1hIGRhIGF1dGVudGljYcOnw6NvLCBzZW5kbyBzdXBvcnRhZG9zIGFwZW5hcyBvcyB2YWxvcmVzIGBCYXNpY2AgZSBgQmVhcmVyYC5cbiAgICpcbiAgICogPiBDYXNvIG8gdGlwbyBkZWZpbmlkbyBzZWphIGBCYXNpY2AsIG8gY29tcG9uZW50ZSBmYXLDoSB1bWEgcmVxdWlzacOnw6NvIGBQT1NUYCBjb250ZW5kbzpcbiAgICpcbiAgICogYGBgXG4gICAqIGhlYWRlcnMge1xuICAgKiAgQXV0aG9yaXphdGlvbjogQmFzaWMgYmFzZTY0KGxvZ2luOnBhc3N3b3JkKVxuICAgKiB9XG4gICAqXG4gICAqIGJvZHkge1xuICAgKiAgcmVtZW1iZXJVc2VyOiByZW1lbWJlclVzZXJcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogPiBDYXNvIG8gdGlwbyBkZWZpbmlkbyBzZWphIGBCZWFyZXJgLCBvIGNvbXBvbmVudGUgZmFyw6EgdW1hIHJlcXVpc2nDp8OjbyBgUE9TVGAgY29udGVuZG86XG4gICAqXG4gICAqIGBgYFxuICAgKiBib2R5IHtcbiAgICogIGxvZ2luOiBsb2dpbixcbiAgICogIHBhc3N3b3JkOiBiYXNlNjQocGFzc3dvcmQpLFxuICAgKiAgcmVtZW1iZXJVc2VyOiByZW1lbWJlclVzZXJcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogQGRlZmF1bHQgYFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlLkJhc2ljYFxuICAgKi9cbiAgQElucHV0KCdwLWF1dGhlbnRpY2F0aW9uLXR5cGUnKSBzZXQgYXV0aGVudGljYXRpb25UeXBlKHZhbHVlOiBQb1BhZ2VMb2dpbkF1dGhlbnRpY2F0aW9uVHlwZSkge1xuICAgIHRoaXMuX2F1dGhlbnRpY2F0aW9uVHlwZSA9ICg8YW55Pk9iamVjdCkudmFsdWVzKFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlKS5pbmNsdWRlcyh2YWx1ZSlcbiAgICAgID8gdmFsdWVcbiAgICAgIDogUG9QYWdlTG9naW5BdXRoZW50aWNhdGlvblR5cGUuQmFzaWM7XG4gIH1cblxuICBnZXQgYXV0aGVudGljYXRpb25UeXBlKCk6IFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRW5kcG9pbnQgdXNhZG8gcGVsbyB0ZW1wbGF0ZSBwYXJhIHJlcXVpc2nDp8OjbyBkbyByZWN1cnNvLiBRdWFuZG8gcHJlZW5jaGlkbywgbyBtw6l0b2RvIGBwLWxvZ2luLXN1Ym1pdGAgc2Vyw6EgaWdub3JhZG8gZSBvXG4gICAqIGNvbXBvbmVudGUgYWRxdWlyaXLDoSBhdXRvbWF0aXphw6fDo28gcGFyYSBvIHByb2Nlc3NvIGRlIGF1dGVudGljYcOnw6NvLlxuICAgKlxuICAgKiAjIyMgUHJvY2Vzc29zXG4gICAqIEFvIGRpZ2l0YXIgdW0gdmFsb3IgdsOhbGlkbyBubyBjYW1wbyBkZSBsb2dpbi9wYXNzd29yZCBlIHByZXNzaW9uYXIgKipFbnRlcioqLCBvIGNvbXBvbmVudGUgZmFyw6EgdW1hIHJlcXVpc2nDp8OjbyBgUE9TVGBcbiAgICogbmEgdXJsIGVzcGVjaWZpY2FkYSBuZXN0YSBwcm9wcmllZGFkZSBwYXNzYW5kbyBvIG9iamV0byBjb250ZW5kbyBvIHZhbG9yIGRlZmluaWRvIHBlbG8gdXN1w6FyaW86XG4gICAqXG4gICAqIGBgYFxuICAgKiBoZWFkZXJzIHtcbiAgICogIEF1dGhvcml6YXRpb246IEJhc2ljIGJhc2U2NChsb2dpbjpwYXNzd29yZClcbiAgICogfVxuICAgKlxuICAgKiBib2R5IHtcbiAgICogIHJlbWVtYmVyVXNlcjogcmVtZW1iZXJVc2VyXG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIEVtIGNhc28gZGUgKipzdWNlc3NvKiosIG8gb2JqZXRvIGRlIHJldG9ybm8gw6kgYXJtYXplbmFkbyBubyBgc2Vzc2lvblN0b3JhZ2VgIGUgbyB1c3XDoXJpbyDDqSByZWRpcmVjaW9uYWRvIHBhcmEgYSBww6FnaW5hIGluaWNpYWwgZGFcbiAgICogYXBsaWNhw6fDo28gYC9gLlxuICAgKlxuICAgKiBgYGBcbiAgICogMjAwOlxuICAgKiAge1xuICAgKiAgICB1c2VyOiB1c2VyXG4gICAqICB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBFbSBjYXNvIGRlICoqZXJybyoqIG5hIGF1dGVudGljYcOnw6NvLCBlc3BlcmEtc2UgbyBzZWd1aW50ZSByZXRvcm5vOlxuICAgKlxuICAgKiBgYGBcbiAgICogNDAwLzQwMVxuICAgKiAge1xuICAgKiAgICBjb2RlOiA0MDAvNDAxLFxuICAgKiAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgKiAgICBkZXRhaWxlZE1lc3NhZ2U6IGRldGFpbGVkTWVzc2FnZSxcbiAgICogICAgaGVscFVybD86IGhlbHBVcmxcbiAgICogIH1cbiAgICogYGBgXG4gICAqXG4gICAqID4gUG9kZS1zZSBhdHJpYnVpciB1bWEgcXVhbnRpZGFkZSBtw6F4aW1hIGRlIHRlbnRhdGl2YXMgcmVzdGFudGVzIChtYXhBdHRlbXB0c1JlbWFpbmluZykgcGFyYSBvIGF0cmlidXRvIGBwLWV4Y2VlZGVkLWF0dGVtcHRzLXdhcm5pbmdgLFxuICAgKiBhc3NpbSBjb21vIG9zIGF2aXNvcyByZWxhY2lvbmFkb3MgYW9zIGNhbXBvcyBsb2dpbiBlIHBhc3N3b3JkIChsb2dpbldhcm5pbmdzLCBwYXNzd29yZFdhcm5pbmdzKSBwYXJhIG9zIGF0cmlidXRvcyBgcC1sb2dpbi1lcnJvcnNgIGVcbiAgICogYHAtcGFzc3dvcmQtZXJyb3JzYCBjb25mb3JtZSByZXRvcm5vIGFiYWl4bzpcbiAgICpcbiAgICogYGBgXG4gICAqIDQwMFxuICAgKiAge1xuICAgKiAgICBjb2RlOiA0MDAvNDAxLFxuICAgKiAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgKiAgICBkZXRhaWxlZE1lc3NhZ2U6IGRldGFpbGVkTWVzc2FnZSxcbiAgICogICAgaGVscFVybD86IGhlbHBVcmwsXG4gICAqICAgIG1heEF0dGVtcHRzUmVtYWluaW5nPzogbWF4QXR0ZW1wdHNSZW1haW5pbmcsXG4gICAqICAgIGxvZ2luV2FybmluZ3M/OiBbbG9naW5XYXJuaW5nc10sXG4gICAqICAgIHBhc3N3b3JkV2FybmluZ3M/OiBbcGFzc3dvcmRXYXJuaW5nc11cbiAgICogIH1cbiAgICogYGBgXG4gICAqXG4gICAqID4gQ2FzbyBvIHZhbG9yIGF0cmlidcOtZG8gcGFyYSBgcC1leGNlZWRlZC1hdHRlbXB0cy13YXJuaW5nYCBzZWphIGlndWFsIGEgMCh6ZXJvKSwgcG9kZXLDoSBzZXIgcGFzc2FkbyB1bSB2YWxvciBwYXJhIG9cbiAgICogYXRyaWJ1dG8gYHAtYmxvY2tlZC11cmxgIGUgbyB1c3XDoXJpbyBzZXLDoSByZWRpcmVjaW9uYWRvIHBhcmEgdW1hIHRlbGEgZGUgYmxvcXVlaW8uXG4gICAqXG4gICAqICpQcm9jZXNzbyBmaW5hbGl6YWRvLipcbiAgICpcbiAgICogX19fX19fX19fX19fX19fXG4gICAqXG4gICAqICMjIyMgUHJhdGljaWRhZGVcbiAgICogQXMgaW5mb3JtYcOnw7VlcyBkbyBzZXJ2acOnbyBkZSBhdXRlbnRpY2HDp8OjbyB0YW1iw6ltIHBvZGVtIHNlciB0cmFuc21pdGlkYXMgZGlyZXRhbWVudGUgcGVsYXMgY29uZmlndXJhw6fDo29zIGRlIHJvdGEgZSwgZGVzdGEgbWFuZWlyYSxcbiAgICogZGlzcGVuc2Etc2UgcXVhbHF1ZXIgbWVuw6fDo28gZS9vdSBpbXBvcnRhw6fDo28gZG8gY29tcG9uZW50ZSBgcG8tcGFnZS1sb2dpbmAgbm8gcmVzdGFudGUgZGEgYXBsaWNhw6fDo28uIE8gZXhlbXBsbyBhYmFpeG8gZXhlbXBsaWZpY2FcbiAgICogYSBmb3JtYSBkaW7Dom1pY2EgY29tIGEgcXVhbCBvIHRlbXBsYXRlIGRlIHRlbGEgZGUgbG9naW4gcG9kZSBzZXIgZ2VyYWRvIGFvIG5hdmVnYXIgcGFyYSByb3RhIGAvbG9naW5gLCBlIHRhbWLDqW0gY29tbyBlbGUgc2UgY29tdW5pY2FcbiAgICogY29tIG8gc2VydmnDp28gcGFyYSBlZmV0dWHDp8OjbyBkbyBwcm9jZXNzbyBkZSBhdXRlbnRpY2HDp8OjbyBkbyB1c3XDoXJpbyBlIHNvbGljaXRhw6fDo28gZGUgbm92YSBzZW5oYS5cbiAgICogQmFzdGEgZGVmaW5pciBuYXMgY29uZmlndXJhw6fDtWVzIGRlIHJvdGE6XG4gICAqXG4gICAqXG4gICAqIGBgYFxuICAgKiAgIGltcG9ydCB7IFBvUGFnZUxvZ2luQ29tcG9uZW50LCBQb1BhZ2VMb2dpbkF0aGVudGljYXRpb25UeXBlIH0gZnJvbSAnQHBvLXVpL25nLXRlbXBsYXRlcyc7XG4gICAqXG4gICAqICAgLi4uXG4gICAqICAgY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gICAqICAgICB7XG4gICAqICAgICAgIHBhdGg6ICdsb2dpbicsIGNvbXBvbmVudDogUG9QYWdlTG9naW5Db21wb25lbnQsIGRhdGE6IHtcbiAgICogICAgICAgICBzZXJ2aWNlQXBpOiAnaHR0cHM6Ly9wby11aS5pby9zYW1wbGUvYXBpL3VzZXJzL2F1dGhlbnRpY2F0aW9uJyxcbiAgICogICAgICAgICBlbnZpcm9ubWVudDogJ2RldmVsb3BtZW50JyxcbiAgICogICAgICAgICByZWNvdmVyeToge1xuICAgKiAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly9wby11aS5pby9zYW1wbGUvYXBpL3VzZXJzJyxcbiAgICogICAgICAgICAgIHR5cGU6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5BbGwsXG4gICAqICAgICAgICAgICBjb250YWN0TWFpbDogJ2Rldi5wb0Bwby11aS5jb20nLFxuICAgKiAgICAgICAgICAgcGhvbmVNYXNrOiAnOS05OTktOTk5LTk5OTknXG4gICAqICAgICAgICAgfSxcbiAgICogICAgICAgICByZWdpc3RlclVybDogJy9uZXctcGFzc3dvcmQnLFxuICAgKiAgICAgICAgIGF1dGhlbnRpY2F0aW9uVHlwZTogUG9QYWdlTG9naW5BdGhlbnRpY2F0aW9uVHlwZS5CYXNpY1xuICAgKiAgICAgICB9XG4gICAqICAgICB9XG4gICAqICAgICAuLi5cbiAgICogICBdO1xuICAgKlxuICAgKiAgIEBOZ01vZHVsZSh7XG4gICAqICAgICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvclJvb3Qocm91dGVzKV0sXG4gICAqICAgICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXVxuICAgKiAgIH0pXG4gICAqICAgZXhwb3J0IGNsYXNzIEFwcFJvdXRpbmdNb2R1bGUgeyB9XG4gICAqIGBgYFxuICAgKlxuICAgKlxuICAgKiBPIG1ldGFkYWRvIGBzZXJ2aWNlQXBpYCBkZXZlIHNlciBhICoqdXJsKiogcGFyYSByZXF1aXNpw6fDo28gZG9zIHJlY3Vyc29zIGRlIGF1dGVudGljYcOnw6NvLCBvIGBlbnZpcm9ubWVudGAgYWxpbWVudGEgYSBwcm9wcmllZGFkZVxuICAgKiBgcC1lbnZpcm9ubWVudGAsIGByZWNvdmVyeWAgw6kgYSBpbnRlcmZhY2UgYFBvUGFnZUxvZ2luUmVjb3ZlcnlgIHJlc3BvbnPDoXZlbCBwZWxhcyBlc3BlY2lmaWNhw6fDtWVzIGNvbnRpZGFzIG5hIG1vZGFsIGRlIHJlY3VwZXJhw6fDo28gZGVcbiAgICogc2VuaGEsIGByZWdpc3RlclVybGAgYWxpbWVudGEgYSBwcm9wcmllZGFkZSBgcC1yZWdpc3Rlci11cmxgIGUgYGF1dGhlbnRpY2F0aW9uVHlwZWAgcXVlIGRlZmluZSBhIHByb3ByaWVkYWRlIGBwLWF1dGhlbnRpY2F0aW9uLXR5cGVgLlxuICAgKlxuICAgKiA+IMOJIGVzc2VuY2lhbCBxdWUgc2lnYSBhIG5vbWVuY2xhdHVyYSBkb3MgYXRyaWJ1dG9zIGV4ZW1wbGlmaWNhZG9zIGFjaW1hIHBhcmEgc3VhIGVmZXRpdmEgZnVuY2lvbmFsaWRhZGUuXG4gICAqXG4gICAqL1xuICBASW5wdXQoJ3AtYXV0aGVudGljYXRpb24tdXJsJykgc2V0IGF1dGhlbnRpY2F0aW9uVXJsKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hdXRoZW50aWNhdGlvblVybCA9IGlzVHlwZW9mKHZhbHVlLCAnc3RyaW5nJykgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBhdXRoZW50aWNhdGlvblVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hdXRoZW50aWNhdGlvblVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIENhc28gbyB2YWxvciBhdHJpYnXDrWRvIHBhcmEgYHAtZXhjZWVkZWQtYXR0ZW1wdHMtd2FybmluZ2Agc2VqYSBpZ3VhbCBhIDAoemVybykgZSBhIGFwbGljYcOnw6NvIHRlbmhhIHVtIGxpbmsgZGUgYmxvcXVlaW8gZGUgdXN1w6FyaW8sXG4gICAqIGluZm9ybWUgdW1hIHVybCBleHRlcm5hIG91IHVtYSByb3RhIHbDoWxpZGEsIGRlc3NhIGZvcm1hIGVtIGNhc28gZGUgYmxvcXVlaW8gbyB1c3XDoXJpbyBzZXLDoSByZWRpcmVjaW9uYWRvLlxuICAgKi9cbiAgQElucHV0KCdwLWJsb2NrZWQtdXJsJykgc2V0IGJsb2NrZWRVcmwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2Jsb2NrZWRVcmwgPSBpc1R5cGVvZih2YWx1ZSwgJ3N0cmluZycpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgYmxvY2tlZFVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9ibG9ja2VkVXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXhpYmUgdW0gYm90w6NvIHBhcmEgc3Vwb3J0ZS5cbiAgICpcbiAgICogQSBwcm9wcmllZGFkZSBhY2VpdGEgb3Mgc2VndWludGVzIHRpcG9zOlxuICAgKlxuICAgKiAtICoqU3RyaW5nKio6IFVSTCBleHRlcm5hIG91IHVtYSByb3RhIHbDoWxpZGE7XG4gICAqIC0gKipGdW5jdGlvbioqOiBGdW7Dp8OjbyBhIHNlciBkaXNwYXJhZGEgYW8gY2xpY2FyIG5vIGJvdMOjbyBkZSBzdXBvcnRlO1xuICAgKiBgYGBcbiAgICogPHBvLXBhZ2UtbG9naW4+XG4gICAqICAgW3Atc3VwcG9ydF09XCJ0aGlzLm15U3VwcG9ydC5iaW5kKHRoaXMpXCI+XG4gICAqIDwvcG8tcGFnZS1sb2dpbj5cbiAgICogYGBgXG4gICAqXG4gICAqL1xuICBASW5wdXQoJ3Atc3VwcG9ydCcpIHNldCBzdXBwb3J0KHZhbHVlOiBzdHJpbmcgfCBGdW5jdGlvbikge1xuICAgIHRoaXMuX3N1cHBvcnQgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBzdXBwb3J0KCkge1xuICAgIHJldHVybiB0aGlzLl9zdXBwb3J0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQ29sZcOnw6NvIGRlIGlkaW9tYXMgcXVlIG8gY29tcG9uZW50ZSBpcsOhIHRyYXRhciBlIGRpc3BvbmliaWxpemFyw6EgcGFyYSBvIHVzdcOhcmlvIGVzY29saGVyLlxuICAgKlxuICAgKiBDYXNvIGVzc2EgcHJvcHJpZWRhZGUgbsOjbyBzZWphIHV0aWxpemFkYSBvIGNvbXBvbmVudGUgbW9zdHJhcsOhIG5vIGNvbWJvIG9zIGlkaW9tYXMgcXVlIGVsZSBzdXBvcnRhIHBvciBwYWRyw6NvLlxuICAgKlxuICAgKiBDYXNvIGEgY29sZcOnw6NvIHRlbmhhIHVtIGlkaW9tYSwgYSBww6FnaW5hIGVzdGFyw6EgbmVzc2UgaWRpb21hIGUgbsOjbyBtb3N0cmFyw6EgbyBjb21iby5cbiAgICpcbiAgICogQ2FzbyBzZWphIHBhc3NhZG8gdW0gYXJyYXkgdmF6aW8sIGEgcMOhZ2luYSB0ZXLDoSBvIGlkaW9tYSBjb25maWd1cmFkbyBubyBgaTE4bmAgZSBuw6NvIG1vc3RyYXLDoSBvIGNvbWJvIGRlIHNlbGXDp8Ojby5cbiAgICpcbiAgICogPiBTZSBmb3IgcGFzc2FkbyB1bSBpZGlvbWEgbsOjbyBzdXBvcnRhZG8sIHNlcsOhIHByZWNpc28gcGFzc2FyIGFzIGxpdGVyYWlzIHBlbGEgcHJvcHJpZWRhZGUgYHAtbGl0ZXJhbHNgLlxuICAgKlxuICAgKlxuICAgKi9cbiAgQElucHV0KCdwLWxhbmd1YWdlcycpIHNldCBsYW5ndWFnZXNMaXN0KGxhbmd1YWdlc0xpc3Q6IEFycmF5PFBvTGFuZ3VhZ2U+KSB7XG4gICAgaWYgKGxhbmd1YWdlc0xpc3QpIHtcbiAgICAgIGlmIChsYW5ndWFnZXNMaXN0Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9sYW5ndWFnZXNMaXN0ID0gbGFuZ3VhZ2VzTGlzdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2xhbmd1YWdlc0xpc3QgPSBwb0xhbmd1YWdlRGVmYXVsdC5maWx0ZXIobGFuZ3VhZ2UgPT4gbGFuZ3VhZ2UubGFuZ3VhZ2UgPT09IHRoaXMubGFuZ3VhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBsYW5ndWFnZXNMaXN0KCk6IEFycmF5PFBvTGFuZ3VhZ2U+IHtcbiAgICBpZiAodGhpcy5fbGFuZ3VhZ2VzTGlzdCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2xhbmd1YWdlc0xpc3Q7XG4gICAgfVxuICAgIHJldHVybiBwb0xhbmd1YWdlRGVmYXVsdDtcbiAgfVxuXG4gIGdldCBzaG93TGFuZ3VhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VzTGlzdC5sZW5ndGggPiAxO1xuICB9XG5cbiAgZ2V0IGxhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSB8fCBnZXRTaG9ydEJyb3dzZXJMYW5ndWFnZSgpO1xuICB9XG5cbiAgZ2V0IHBhZ2VMb2dpbkxpdGVyYWxzKCk6IFBvUGFnZUxvZ2luTGl0ZXJhbHMge1xuICAgIGNvbnN0IGxvZ2luSGludFdpdGhDb250YWN0RW1haWwgPSB0aGlzLmNvbnRhY3RFbWFpbFxuICAgICAgPyB0aGlzLmNvbmNhdGVuYXRlTG9naW5IaW50V2l0aENvbnRhY3RFbWFpbCh0aGlzLmNvbnRhY3RFbWFpbClcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnBvUGFnZUxvZ2luTGl0ZXJhbHNEZWZhdWx0W3BvTG9jYWxlRGVmYXVsdF0sXG4gICAgICAuLi5wb1BhZ2VMb2dpbkxpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXSxcbiAgICAgIC4uLmxvZ2luSGludFdpdGhDb250YWN0RW1haWwsXG4gICAgICAuLi50aGlzLmxpdGVyYWxzXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbG9naW5TZXJ2aWNlOiBQb1BhZ2VMb2dpblNlcnZpY2UsXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxuICAgIHB1YmxpYyBwb0xhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlID0gdGhpcy5wb0xhbmd1YWdlU2VydmljZS5nZXRTaG9ydExhbmd1YWdlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5sb2dpblN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5sb2dpblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlUG9wb3ZlcigpIHtcbiAgICB0aGlzLnNob3dFeGNlZWRlZEF0dGVtcHRzV2FybmluZyA9IGZhbHNlO1xuICB9XG5cbiAgb25Mb2dpblN1Ym1pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBsb2dpbkZvcm06IFBvUGFnZUxvZ2luID0ge1xuICAgICAgbG9naW46IHRoaXMubG9naW4sXG4gICAgICBwYXNzd29yZDogdGhpcy5wYXNzd29yZCxcbiAgICAgIHJlbWVtYmVyVXNlcjogdGhpcy5yZW1lbWJlclVzZXJcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuY3VzdG9tRmllbGQpIHtcbiAgICAgIGxvZ2luRm9ybVt0aGlzLmN1c3RvbUZpZWxkT2JqZWN0LnByb3BlcnR5XSA9IHRoaXMuY3VzdG9tRmllbGRPYmplY3QudmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXV0aGVudGljYXRpb25VcmwpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmxvZ2luU3Vic2NyaXB0aW9uID0gdGhpcy5sb2dpblNlcnZpY2VcbiAgICAgICAgLm9uTG9naW4odGhpcy5hdXRoZW50aWNhdGlvblVybCwgdGhpcy5hdXRoZW50aWNhdGlvblR5cGUsIGxvZ2luRm9ybSlcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICBkYXRhID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVzVG9Qcm9wZXJ0aWVzKCk7XG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdQT19VU0VSX0xPR0lOJywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgICAgICAgdGhpcy5vcGVuSW50ZXJuYWxMaW5rKCcvJyk7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvci5lcnJvci5jb2RlID09PSAnNDAwJyB8fCBlcnJvci5lcnJvci5jb2RlID09PSAnNDAxJykge1xuICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlc1RvUHJvcGVydGllcyhlcnJvcik7XG4gICAgICAgICAgICAgIHRoaXMucmVkaXJlY3RCbG9ja2VkVXJsKHRoaXMuZXhjZWVkZWRBdHRlbXB0c1dhcm5pbmcsIHRoaXMuYmxvY2tlZFVybCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9naW5TdWJtaXQuZW1pdChsb2dpbkZvcm0pO1xuICAgICAgdGhpcy5zaG93RXhjZWVkZWRBdHRlbXB0c1dhcm5pbmcgPSB0aGlzLmV4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nID4gMDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldERlZmF1bHRDdXN0b21GaWVsZE9iamVjdChwcm9wZXJ0eSk6IFBvUGFnZUxvZ2luQ3VzdG9tRmllbGQge1xuICAgIHJldHVybiB7IHByb3BlcnR5IH07XG4gIH1cblxuICBwcml2YXRlIG9wZW5FeHRlcm5hbExpbmsodXJsOiBzdHJpbmcpIHtcbiAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkludGVybmFsTGluayh1cmw6IHN0cmluZykge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmxdKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVkaXJlY3RCbG9ja2VkVXJsKGF0dGVtcHRzOiBudW1iZXIsIGJsb2NrZWRVcmw6IHN0cmluZykge1xuICAgIGlmIChhdHRlbXB0cyA9PT0gMCAmJiBibG9ja2VkVXJsKSB7XG4gICAgICB0aGlzLnNob3dFeGNlZWRlZEF0dGVtcHRzV2FybmluZyA9IGZhbHNlO1xuICAgICAgaXNFeHRlcm5hbExpbmsoYmxvY2tlZFVybCkgPyB0aGlzLm9wZW5FeHRlcm5hbExpbmsoYmxvY2tlZFVybCkgOiB0aGlzLm9wZW5JbnRlcm5hbExpbmsoYmxvY2tlZFVybCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRWYWx1ZXNUb1Byb3BlcnRpZXMocmVzdWx0Pykge1xuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIHRoaXMuZXhjZWVkZWRBdHRlbXB0c1dhcm5pbmcgPSByZXN1bHQuZXJyb3IubWF4QXR0ZW1wdHNSZW1haW5pbmc7XG4gICAgICB0aGlzLmxvZ2luRXJyb3JzID0gcmVzdWx0LmVycm9yLmxvZ2luV2FybmluZ3M7XG4gICAgICB0aGlzLnBhc3N3b3JkRXJyb3JzID0gcmVzdWx0LmVycm9yLnBhc3N3b3JkV2FybmluZ3M7XG4gICAgICB0aGlzLmJsb2NrZWRVcmwgPSByZXN1bHQuZXJyb3IuYmxvY2tlZFVybDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5leGNlZWRlZEF0dGVtcHRzV2FybmluZyA9IDA7XG4gICAgICB0aGlzLmxvZ2luRXJyb3JzID0gW107XG4gICAgICB0aGlzLnBhc3N3b3JkRXJyb3JzID0gW107XG4gICAgICB0aGlzLmJsb2NrZWRVcmwgPSAnJztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY29uY2F0ZW5hdGVMb2dpbkhpbnRXaXRoQ29udGFjdEVtYWlsKGNvbnRhY3RFbWFpbDogc3RyaW5nKTtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0TG9naW5FcnJvcnModmFsdWU6IEFycmF5PHN0cmluZz4pOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZXRQYXNzd29yZEVycm9ycyh2YWx1ZTogQXJyYXk8c3RyaW5nPik6IHZvaWQ7XG59XG4iXX0=
@@ -121,7 +121,7 @@ export class PoPageLoginPopoverComponent {
121
121
  }
122
122
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoPageLoginPopoverComponent, [{
123
123
  type: Component,
124
- args: [{ selector: 'po-page-login-popover', template: "<div class=\"po-page-login-popover-container\">\r\n <div class=\"po-page-login-popover\">\r\n <div class=\"po-page-login-popover-arrow\"></div>\r\n <div class=\"po-page-login-popover-content\">\r\n <p class=\"po-font-text-bold po-page-login-popover-title\">\r\n {{ literals?.titlePopover }}\r\n </p>\r\n <p class=\"po-font-text\">\r\n {{ literals?.forgotYourPassword }}\r\n </p>\r\n <p class=\"po-font-text\">\r\n {{ literals?.ifYouTryHarder }}\r\n <span class=\"po-font-text-bold po-page-login-popover-attempts\">\r\n {{ literals?.attempts | poI18n: remainingAttempts }} </span\r\n >{{ literals?.yourUserWillBeBlocked }}\r\n </p>\r\n <br />\r\n <p class=\"po-font-text\">\r\n {{ literals?.createANewPasswordNow }}\r\n </p>\r\n <div *ngIf=\"recovery\" class=\"po-font-text-bold po-mt-1 po-page-login-popover-link-container\">\r\n <a *ngIf=\"recoveryType === 'internalLink'\" class=\"po-page-login-popover-link\" [routerLink]=\"recovery\">\r\n {{ literals?.iForgotMyPassword }}\r\n </a>\r\n <a *ngIf=\"recoveryType === 'externalLink'\" class=\"po-page-login-popover-link\" [href]=\"recovery\" target=\"_blank\">\r\n {{ literals?.iForgotMyPassword }}\r\n </a>\r\n <a *ngIf=\"!recoveryType\" class=\"po-page-login-popover-link\" (click)=\"onForgotPasswordClick(recovery)\">\r\n {{ literals?.iForgotMyPassword }}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
124
+ args: [{ selector: 'po-page-login-popover', template: "<div class=\"po-page-login-popover-container\">\n <div class=\"po-page-login-popover\">\n <div class=\"po-page-login-popover-arrow\"></div>\n <div class=\"po-page-login-popover-content\">\n <p class=\"po-font-text-bold po-page-login-popover-title\">\n {{ literals?.titlePopover }}\n </p>\n <p class=\"po-font-text\">\n {{ literals?.forgotYourPassword }}\n </p>\n <p class=\"po-font-text\">\n {{ literals?.ifYouTryHarder }}\n <span class=\"po-font-text-bold po-page-login-popover-attempts\">\n {{ literals?.attempts | poI18n: remainingAttempts }} </span\n >{{ literals?.yourUserWillBeBlocked }}\n </p>\n <br />\n <p class=\"po-font-text\">\n {{ literals?.createANewPasswordNow }}\n </p>\n <div *ngIf=\"recovery\" class=\"po-font-text-bold po-mt-1 po-page-login-popover-link-container\">\n <a *ngIf=\"recoveryType === 'internalLink'\" class=\"po-page-login-popover-link\" [routerLink]=\"recovery\">\n {{ literals?.iForgotMyPassword }}\n </a>\n <a *ngIf=\"recoveryType === 'externalLink'\" class=\"po-page-login-popover-link\" [href]=\"recovery\" target=\"_blank\">\n {{ literals?.iForgotMyPassword }}\n </a>\n <a *ngIf=\"!recoveryType\" class=\"po-page-login-popover-link\" (click)=\"onForgotPasswordClick(recovery)\">\n {{ literals?.iForgotMyPassword }}\n </a>\n </div>\n </div>\n </div>\n</div>\n" }]
125
125
  }], null, { literals: [{
126
126
  type: Input,
127
127
  args: ['p-literals']
@@ -135,4 +135,4 @@ export class PoPageLoginPopoverComponent {
135
135
  type: Output,
136
136
  args: ['p-forgot-password']
137
137
  }] }); })();
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1sb2dpbi1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL2NvbXBvbmVudHMvcG8tcGFnZS1sb2dpbi9wby1wYWdlLWxvZ2luLXBvcG92ZXIvcG8tcGFnZS1sb2dpbi1wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL2NvbXBvbmVudHMvcG8tcGFnZS1sb2dpbi9wby1wYWdlLWxvZ2luLXBvcG92ZXIvcG8tcGFnZS1sb2dpbi1wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0lDbUJ2RCw2QkFBc0c7SUFDcEcsWUFDRjtJQUFBLGlCQUFJOzs7SUFGMEUsNENBQXVCO0lBQ25HLGVBQ0Y7SUFERSxtR0FDRjs7O0lBQ0EsNkJBQWdIO0lBQzlHLFlBQ0Y7SUFBQSxpQkFBSTs7O0lBRjBFLHdEQUFpQjtJQUM3RixlQUNGO0lBREUsbUdBQ0Y7Ozs7SUFDQSw2QkFBc0c7SUFBMUMseUtBQVMsZUFBQSw2Q0FBK0IsQ0FBQSxJQUFDO0lBQ25HLFlBQ0Y7SUFBQSxpQkFBSTs7O0lBREYsZUFDRjtJQURFLG1HQUNGOzs7SUFURiw4QkFBNkY7SUFDM0YsK0VBRUk7SUFDSixnRkFFSTtJQUNKLGdGQUVJO0lBQ04saUJBQU07OztJQVRBLGVBQXFDO0lBQXJDLDZEQUFxQztJQUdyQyxlQUFxQztJQUFyQyw2REFBcUM7SUFHckMsZUFBbUI7SUFBbkIsMkNBQW1COztBRGYvQjs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8sMkJBQTJCO0lBQ2pCLFFBQVEsQ0FBc0I7SUFFbkQsK0ZBQStGO0lBQy9GLElBQXlCLFFBQVEsQ0FBQyxLQUE4QztRQUM5RSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV2QixJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO1NBQzdFO0lBQ0gsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsMEVBQTBFO0lBQzNDLGlCQUFpQixDQUFTO0lBRXpELCtIQUErSDtJQUNsRyxjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUV0RSxZQUFZLENBQVM7SUFFYixTQUFTLENBQTBDO0lBRTNELHFCQUFxQixDQUFDLFFBQVE7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztxRkE1QlUsMkJBQTJCOzZEQUEzQiwyQkFBMkI7WUNuQnhDLDhCQUE2QyxhQUFBO1lBRXpDLHlCQUErQztZQUMvQyw4QkFBMkMsV0FBQTtZQUV2QyxZQUNGO1lBQUEsaUJBQUk7WUFDSiw0QkFBd0I7WUFDdEIsWUFDRjtZQUFBLGlCQUFJO1lBQ0osNEJBQXdCO1lBQ3RCLFlBQ0E7WUFBQSxnQ0FBK0Q7WUFDN0QsYUFBcUQ7O1lBQUEsaUJBQ3REO1lBQUEsYUFDSDtZQUFBLGlCQUFJO1lBQ0osc0JBQU07WUFDTiw2QkFBd0I7WUFDdEIsYUFDRjtZQUFBLGlCQUFJO1lBQ0osOEVBVU07WUFDUixpQkFBTSxFQUFBLEVBQUE7O1lBMUJGLGVBQ0Y7WUFERSx3RkFDRjtZQUVFLGVBQ0Y7WUFERSw4RkFDRjtZQUVFLGVBQ0E7WUFEQSwwRkFDQTtZQUNFLGVBQXFEO1lBQXJELGtJQUFxRDtZQUN0RCxlQUNIO1lBREcsZ0dBQ0g7WUFHRSxlQUNGO1lBREUsaUdBQ0Y7WUFDTSxlQUFjO1lBQWQsbUNBQWM7Ozt1RkREYiwyQkFBMkI7Y0FadkMsU0FBUzsyQkFDRSx1QkFBdUI7Z0JBWVosUUFBUTtrQkFBNUIsS0FBSzttQkFBQyxZQUFZO1lBR00sUUFBUTtrQkFBaEMsS0FBSzttQkFBQyxZQUFZO1lBYVksaUJBQWlCO2tCQUEvQyxLQUFLO21CQUFDLHNCQUFzQjtZQUdBLGNBQWM7a0JBQTFDLE1BQU07bUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IGlzRXh0ZXJuYWxMaW5rLCBpc1R5cGVvZiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWwnO1xyXG5cclxuaW1wb3J0IHsgUG9QYWdlTG9naW5MaXRlcmFscyB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG8tcGFnZS1sb2dpbi1saXRlcmFscy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBQb1BhZ2VMb2dpblJlY292ZXJ5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1wYWdlLWxvZ2luLXJlY292ZXJ5LmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3BvLXBhZ2UtbG9naW4tcG9wb3ZlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXBhZ2UtbG9naW4tcG9wb3Zlci5jb21wb25lbnQuaHRtbCdcclxufSlcclxuXHJcbi8qKlxyXG4gKiBAZG9jc1ByaXZhdGVcclxuICpcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqXHJcbiAqIENvbXBvbmVudGUgcGFyYSBkZWZpbmnDp8OjbyBkYSBtZW5zYWdlbSBkZSBhdmlzbyBkZSBibG9xdWVpbyBkbyBgcG8tcGFnZS1sb2dpbmAuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUG9QYWdlTG9naW5Qb3BvdmVyQ29tcG9uZW50IHtcclxuICBASW5wdXQoJ3AtbGl0ZXJhbHMnKSBsaXRlcmFsczogUG9QYWdlTG9naW5MaXRlcmFscztcclxuXHJcbiAgLyoqIGV4aWJlIG8gbGluayBkZSAnZXNxdWVjaSBtaW5oYSBzZW5oYScgZSB2ZXJpZmljYSBzZSBvIHZhbG9yIMOpIHVtIGxpbmsgaW50ZXJubyBvdSBleHRlcm5vICovXHJcbiAgQElucHV0KCdwLXJlY292ZXJ5Jykgc2V0IHJlY292ZXJ5KHZhbHVlOiBzdHJpbmcgfCBGdW5jdGlvbiB8IFBvUGFnZUxvZ2luUmVjb3ZlcnkpIHtcclxuICAgIHRoaXMuX3JlY292ZXJ5ID0gdmFsdWU7XHJcblxyXG4gICAgaWYgKGlzVHlwZW9mKHZhbHVlLCAnc3RyaW5nJykpIHtcclxuICAgICAgdGhpcy5yZWNvdmVyeVR5cGUgPSBpc0V4dGVybmFsTGluayh2YWx1ZSkgPyAnZXh0ZXJuYWxMaW5rJyA6ICdpbnRlcm5hbExpbmsnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHJlY292ZXJ5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlY292ZXJ5O1xyXG4gIH1cclxuXHJcbiAgLyoqIGRlZmluZSBzZSBhIG1lbnNhZ2VtIGRldmVyw6Egc2VyIGV4aWJpZGEgY2FzbyBzZWphIG1haW9yIHF1ZSAwKHplcm8pICovXHJcbiAgQElucHV0KCdwLXJlbWFpbmluZy1hdHRlbXB0cycpIHJlbWFpbmluZ0F0dGVtcHRzOiBudW1iZXI7XHJcblxyXG4gIC8qKiBzZSAncC1yZWNvdmVyeScgZm9yIGRvIHRpcG8gRnVuY3Rpb24gb3UgUG9QYWdlTG9naW5SZWNvdmVyeSwgZW1pdGUgcGFyYSBvIG3DqXRvZG8gJ29wZW5VcmwnIGRvIGNvbXBvbmVudGUgJ3BvLXBhZ2UtbG9naW4nICovXHJcbiAgQE91dHB1dCgncC1mb3Jnb3QtcGFzc3dvcmQnKSBmb3Jnb3RQYXNzd29yZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICByZWNvdmVyeVR5cGU6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSBfcmVjb3Zlcnk6IHN0cmluZyB8IEZ1bmN0aW9uIHwgUG9QYWdlTG9naW5SZWNvdmVyeTtcclxuXHJcbiAgb25Gb3Jnb3RQYXNzd29yZENsaWNrKHJlY292ZXJ5KSB7XHJcbiAgICB0aGlzLmZvcmdvdFBhc3N3b3JkLmVtaXQocmVjb3ZlcnkpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicG8tcGFnZS1sb2dpbi1wb3BvdmVyLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJwby1wYWdlLWxvZ2luLXBvcG92ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwby1wYWdlLWxvZ2luLXBvcG92ZXItYXJyb3dcIj48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwby1wYWdlLWxvZ2luLXBvcG92ZXItY29udGVudFwiPlxyXG4gICAgICA8cCBjbGFzcz1cInBvLWZvbnQtdGV4dC1ib2xkIHBvLXBhZ2UtbG9naW4tcG9wb3Zlci10aXRsZVwiPlxyXG4gICAgICAgIHt7IGxpdGVyYWxzPy50aXRsZVBvcG92ZXIgfX1cclxuICAgICAgPC9wPlxyXG4gICAgICA8cCBjbGFzcz1cInBvLWZvbnQtdGV4dFwiPlxyXG4gICAgICAgIHt7IGxpdGVyYWxzPy5mb3Jnb3RZb3VyUGFzc3dvcmQgfX1cclxuICAgICAgPC9wPlxyXG4gICAgICA8cCBjbGFzcz1cInBvLWZvbnQtdGV4dFwiPlxyXG4gICAgICAgIHt7IGxpdGVyYWxzPy5pZllvdVRyeUhhcmRlciB9fVxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwicG8tZm9udC10ZXh0LWJvbGQgcG8tcGFnZS1sb2dpbi1wb3BvdmVyLWF0dGVtcHRzXCI+XHJcbiAgICAgICAgICB7eyBsaXRlcmFscz8uYXR0ZW1wdHMgfCBwb0kxOG46IHJlbWFpbmluZ0F0dGVtcHRzIH19IDwvc3BhblxyXG4gICAgICAgID57eyBsaXRlcmFscz8ueW91clVzZXJXaWxsQmVCbG9ja2VkIH19XHJcbiAgICAgIDwvcD5cclxuICAgICAgPGJyIC8+XHJcbiAgICAgIDxwIGNsYXNzPVwicG8tZm9udC10ZXh0XCI+XHJcbiAgICAgICAge3sgbGl0ZXJhbHM/LmNyZWF0ZUFOZXdQYXNzd29yZE5vdyB9fVxyXG4gICAgICA8L3A+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJyZWNvdmVyeVwiIGNsYXNzPVwicG8tZm9udC10ZXh0LWJvbGQgcG8tbXQtMSBwby1wYWdlLWxvZ2luLXBvcG92ZXItbGluay1jb250YWluZXJcIj5cclxuICAgICAgICA8YSAqbmdJZj1cInJlY292ZXJ5VHlwZSA9PT0gJ2ludGVybmFsTGluaydcIiBjbGFzcz1cInBvLXBhZ2UtbG9naW4tcG9wb3Zlci1saW5rXCIgW3JvdXRlckxpbmtdPVwicmVjb3ZlcnlcIj5cclxuICAgICAgICAgIHt7IGxpdGVyYWxzPy5pRm9yZ290TXlQYXNzd29yZCB9fVxyXG4gICAgICAgIDwvYT5cclxuICAgICAgICA8YSAqbmdJZj1cInJlY292ZXJ5VHlwZSA9PT0gJ2V4dGVybmFsTGluaydcIiBjbGFzcz1cInBvLXBhZ2UtbG9naW4tcG9wb3Zlci1saW5rXCIgW2hyZWZdPVwicmVjb3ZlcnlcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgIHt7IGxpdGVyYWxzPy5pRm9yZ290TXlQYXNzd29yZCB9fVxyXG4gICAgICAgIDwvYT5cclxuICAgICAgICA8YSAqbmdJZj1cIiFyZWNvdmVyeVR5cGVcIiBjbGFzcz1cInBvLXBhZ2UtbG9naW4tcG9wb3Zlci1saW5rXCIgKGNsaWNrKT1cIm9uRm9yZ290UGFzc3dvcmRDbGljayhyZWNvdmVyeSlcIj5cclxuICAgICAgICAgIHt7IGxpdGVyYWxzPy5pRm9yZ290TXlQYXNzd29yZCB9fVxyXG4gICAgICAgIDwvYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1sb2dpbi1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL2NvbXBvbmVudHMvcG8tcGFnZS1sb2dpbi9wby1wYWdlLWxvZ2luLXBvcG92ZXIvcG8tcGFnZS1sb2dpbi1wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL2NvbXBvbmVudHMvcG8tcGFnZS1sb2dpbi9wby1wYWdlLWxvZ2luLXBvcG92ZXIvcG8tcGFnZS1sb2dpbi1wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0lDbUJ2RCw2QkFBc0c7SUFDcEcsWUFDRjtJQUFBLGlCQUFJOzs7SUFGMEUsNENBQXVCO0lBQ25HLGVBQ0Y7SUFERSxtR0FDRjs7O0lBQ0EsNkJBQWdIO0lBQzlHLFlBQ0Y7SUFBQSxpQkFBSTs7O0lBRjBFLHdEQUFpQjtJQUM3RixlQUNGO0lBREUsbUdBQ0Y7Ozs7SUFDQSw2QkFBc0c7SUFBMUMseUtBQVMsZUFBQSw2Q0FBK0IsQ0FBQSxJQUFDO0lBQ25HLFlBQ0Y7SUFBQSxpQkFBSTs7O0lBREYsZUFDRjtJQURFLG1HQUNGOzs7SUFURiw4QkFBNkY7SUFDM0YsK0VBRUk7SUFDSixnRkFFSTtJQUNKLGdGQUVJO0lBQ04saUJBQU07OztJQVRBLGVBQXFDO0lBQXJDLDZEQUFxQztJQUdyQyxlQUFxQztJQUFyQyw2REFBcUM7SUFHckMsZUFBbUI7SUFBbkIsMkNBQW1COztBRGYvQjs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8sMkJBQTJCO0lBQ2pCLFFBQVEsQ0FBc0I7SUFFbkQsK0ZBQStGO0lBQy9GLElBQXlCLFFBQVEsQ0FBQyxLQUE4QztRQUM5RSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV2QixJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO1NBQzdFO0lBQ0gsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsMEVBQTBFO0lBQzNDLGlCQUFpQixDQUFTO0lBRXpELCtIQUErSDtJQUNsRyxjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUV0RSxZQUFZLENBQVM7SUFFYixTQUFTLENBQTBDO0lBRTNELHFCQUFxQixDQUFDLFFBQVE7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztxRkE1QlUsMkJBQTJCOzZEQUEzQiwyQkFBMkI7WUNuQnhDLDhCQUE2QyxhQUFBO1lBRXpDLHlCQUErQztZQUMvQyw4QkFBMkMsV0FBQTtZQUV2QyxZQUNGO1lBQUEsaUJBQUk7WUFDSiw0QkFBd0I7WUFDdEIsWUFDRjtZQUFBLGlCQUFJO1lBQ0osNEJBQXdCO1lBQ3RCLFlBQ0E7WUFBQSxnQ0FBK0Q7WUFDN0QsYUFBcUQ7O1lBQUEsaUJBQ3REO1lBQUEsYUFDSDtZQUFBLGlCQUFJO1lBQ0osc0JBQU07WUFDTiw2QkFBd0I7WUFDdEIsYUFDRjtZQUFBLGlCQUFJO1lBQ0osOEVBVU07WUFDUixpQkFBTSxFQUFBLEVBQUE7O1lBMUJGLGVBQ0Y7WUFERSx3RkFDRjtZQUVFLGVBQ0Y7WUFERSw4RkFDRjtZQUVFLGVBQ0E7WUFEQSwwRkFDQTtZQUNFLGVBQXFEO1lBQXJELGtJQUFxRDtZQUN0RCxlQUNIO1lBREcsZ0dBQ0g7WUFHRSxlQUNGO1lBREUsaUdBQ0Y7WUFDTSxlQUFjO1lBQWQsbUNBQWM7Ozt1RkREYiwyQkFBMkI7Y0FadkMsU0FBUzsyQkFDRSx1QkFBdUI7Z0JBWVosUUFBUTtrQkFBNUIsS0FBSzttQkFBQyxZQUFZO1lBR00sUUFBUTtrQkFBaEMsS0FBSzttQkFBQyxZQUFZO1lBYVksaUJBQWlCO2tCQUEvQyxLQUFLO21CQUFDLHNCQUFzQjtZQUdBLGNBQWM7a0JBQTFDLE1BQU07bUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgaXNFeHRlcm5hbExpbmssIGlzVHlwZW9mIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXRpbCc7XG5cbmltcG9ydCB7IFBvUGFnZUxvZ2luTGl0ZXJhbHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvLXBhZ2UtbG9naW4tbGl0ZXJhbHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvUGFnZUxvZ2luUmVjb3ZlcnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvLXBhZ2UtbG9naW4tcmVjb3ZlcnkuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tcGFnZS1sb2dpbi1wb3BvdmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXBhZ2UtbG9naW4tcG9wb3Zlci5jb21wb25lbnQuaHRtbCdcbn0pXG5cbi8qKlxuICogQGRvY3NQcml2YXRlXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogQ29tcG9uZW50ZSBwYXJhIGRlZmluacOnw6NvIGRhIG1lbnNhZ2VtIGRlIGF2aXNvIGRlIGJsb3F1ZWlvIGRvIGBwby1wYWdlLWxvZ2luYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFBvUGFnZUxvZ2luUG9wb3ZlckNvbXBvbmVudCB7XG4gIEBJbnB1dCgncC1saXRlcmFscycpIGxpdGVyYWxzOiBQb1BhZ2VMb2dpbkxpdGVyYWxzO1xuXG4gIC8qKiBleGliZSBvIGxpbmsgZGUgJ2VzcXVlY2kgbWluaGEgc2VuaGEnIGUgdmVyaWZpY2Egc2UgbyB2YWxvciDDqSB1bSBsaW5rIGludGVybm8gb3UgZXh0ZXJubyAqL1xuICBASW5wdXQoJ3AtcmVjb3ZlcnknKSBzZXQgcmVjb3ZlcnkodmFsdWU6IHN0cmluZyB8IEZ1bmN0aW9uIHwgUG9QYWdlTG9naW5SZWNvdmVyeSkge1xuICAgIHRoaXMuX3JlY292ZXJ5ID0gdmFsdWU7XG5cbiAgICBpZiAoaXNUeXBlb2YodmFsdWUsICdzdHJpbmcnKSkge1xuICAgICAgdGhpcy5yZWNvdmVyeVR5cGUgPSBpc0V4dGVybmFsTGluayh2YWx1ZSkgPyAnZXh0ZXJuYWxMaW5rJyA6ICdpbnRlcm5hbExpbmsnO1xuICAgIH1cbiAgfVxuXG4gIGdldCByZWNvdmVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVjb3Zlcnk7XG4gIH1cblxuICAvKiogZGVmaW5lIHNlIGEgbWVuc2FnZW0gZGV2ZXLDoSBzZXIgZXhpYmlkYSBjYXNvIHNlamEgbWFpb3IgcXVlIDAoemVybykgKi9cbiAgQElucHV0KCdwLXJlbWFpbmluZy1hdHRlbXB0cycpIHJlbWFpbmluZ0F0dGVtcHRzOiBudW1iZXI7XG5cbiAgLyoqIHNlICdwLXJlY292ZXJ5JyBmb3IgZG8gdGlwbyBGdW5jdGlvbiBvdSBQb1BhZ2VMb2dpblJlY292ZXJ5LCBlbWl0ZSBwYXJhIG8gbcOpdG9kbyAnb3BlblVybCcgZG8gY29tcG9uZW50ZSAncG8tcGFnZS1sb2dpbicgKi9cbiAgQE91dHB1dCgncC1mb3Jnb3QtcGFzc3dvcmQnKSBmb3Jnb3RQYXNzd29yZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHJlY292ZXJ5VHlwZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgX3JlY292ZXJ5OiBzdHJpbmcgfCBGdW5jdGlvbiB8IFBvUGFnZUxvZ2luUmVjb3Zlcnk7XG5cbiAgb25Gb3Jnb3RQYXNzd29yZENsaWNrKHJlY292ZXJ5KSB7XG4gICAgdGhpcy5mb3Jnb3RQYXNzd29yZC5lbWl0KHJlY292ZXJ5KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInBvLXBhZ2UtbG9naW4tcG9wb3Zlci1jb250YWluZXJcIj5cbiAgPGRpdiBjbGFzcz1cInBvLXBhZ2UtbG9naW4tcG9wb3ZlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJwby1wYWdlLWxvZ2luLXBvcG92ZXItYXJyb3dcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicG8tcGFnZS1sb2dpbi1wb3BvdmVyLWNvbnRlbnRcIj5cbiAgICAgIDxwIGNsYXNzPVwicG8tZm9udC10ZXh0LWJvbGQgcG8tcGFnZS1sb2dpbi1wb3BvdmVyLXRpdGxlXCI+XG4gICAgICAgIHt7IGxpdGVyYWxzPy50aXRsZVBvcG92ZXIgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxwIGNsYXNzPVwicG8tZm9udC10ZXh0XCI+XG4gICAgICAgIHt7IGxpdGVyYWxzPy5mb3Jnb3RZb3VyUGFzc3dvcmQgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxwIGNsYXNzPVwicG8tZm9udC10ZXh0XCI+XG4gICAgICAgIHt7IGxpdGVyYWxzPy5pZllvdVRyeUhhcmRlciB9fVxuICAgICAgICA8c3BhbiBjbGFzcz1cInBvLWZvbnQtdGV4dC1ib2xkIHBvLXBhZ2UtbG9naW4tcG9wb3Zlci1hdHRlbXB0c1wiPlxuICAgICAgICAgIHt7IGxpdGVyYWxzPy5hdHRlbXB0cyB8IHBvSTE4bjogcmVtYWluaW5nQXR0ZW1wdHMgfX0gPC9zcGFuXG4gICAgICAgID57eyBsaXRlcmFscz8ueW91clVzZXJXaWxsQmVCbG9ja2VkIH19XG4gICAgICA8L3A+XG4gICAgICA8YnIgLz5cbiAgICAgIDxwIGNsYXNzPVwicG8tZm9udC10ZXh0XCI+XG4gICAgICAgIHt7IGxpdGVyYWxzPy5jcmVhdGVBTmV3UGFzc3dvcmROb3cgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxkaXYgKm5nSWY9XCJyZWNvdmVyeVwiIGNsYXNzPVwicG8tZm9udC10ZXh0LWJvbGQgcG8tbXQtMSBwby1wYWdlLWxvZ2luLXBvcG92ZXItbGluay1jb250YWluZXJcIj5cbiAgICAgICAgPGEgKm5nSWY9XCJyZWNvdmVyeVR5cGUgPT09ICdpbnRlcm5hbExpbmsnXCIgY2xhc3M9XCJwby1wYWdlLWxvZ2luLXBvcG92ZXItbGlua1wiIFtyb3V0ZXJMaW5rXT1cInJlY292ZXJ5XCI+XG4gICAgICAgICAge3sgbGl0ZXJhbHM/LmlGb3Jnb3RNeVBhc3N3b3JkIH19XG4gICAgICAgIDwvYT5cbiAgICAgICAgPGEgKm5nSWY9XCJyZWNvdmVyeVR5cGUgPT09ICdleHRlcm5hbExpbmsnXCIgY2xhc3M9XCJwby1wYWdlLWxvZ2luLXBvcG92ZXItbGlua1wiIFtocmVmXT1cInJlY292ZXJ5XCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAge3sgbGl0ZXJhbHM/LmlGb3Jnb3RNeVBhc3N3b3JkIH19XG4gICAgICAgIDwvYT5cbiAgICAgICAgPGEgKm5nSWY9XCIhcmVjb3ZlcnlUeXBlXCIgY2xhc3M9XCJwby1wYWdlLWxvZ2luLXBvcG92ZXItbGlua1wiIChjbGljayk9XCJvbkZvcmdvdFBhc3N3b3JkQ2xpY2socmVjb3ZlcnkpXCI+XG4gICAgICAgICAge3sgbGl0ZXJhbHM/LmlGb3Jnb3RNeVBhc3N3b3JkIH19XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19