@senior-agronegocio/angular-components 0.0.9867 → 0.0.9870

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 (206) hide show
  1. package/bundles/senior-agronegocio-angular-components.umd.js +5644 -4540
  2. package/bundles/senior-agronegocio-angular-components.umd.js.map +1 -1
  3. package/bundles/senior-agronegocio-angular-components.umd.min.js +2 -2
  4. package/bundles/senior-agronegocio-angular-components.umd.min.js.map +1 -1
  5. package/common/agro-array-utils.class.d.ts +13 -0
  6. package/common/agro-logics.class.d.ts +5 -0
  7. package/common/agro-number-utils.class.d.ts +6 -0
  8. package/common/agro-object-stringifier.class.d.ts +1 -1
  9. package/common/agro-object-utils.class.d.ts +3 -1
  10. package/common/agro-string-utils.class.d.ts +0 -5
  11. package/common/agro-unit-converter.class.d.ts +23 -0
  12. package/common/index.d.ts +1 -0
  13. package/components/event-control-board/common/event-operation.d.ts +1 -0
  14. package/components/event-control-board/common/event-origin.d.ts +1 -0
  15. package/components/event-control-board/event-control-board.component.d.ts +7 -3
  16. package/components/event-control-board/index.d.ts +1 -3
  17. package/components/event-control-board/service/e012fam/e012fam.d.ts +14 -0
  18. package/components/event-control-board/service/e075der/e075der.d.ts +18 -0
  19. package/components/event-control-board/service/e113saf/e113saf.d.ts +14 -0
  20. package/components/event-control-board/service/e205dep/e205dep-dto.d.ts +15 -0
  21. package/components/event-control-board/service/e205dep/e205dep.d.ts +16 -0
  22. package/components/event-control-board/service/entity-service.d.ts +3 -3
  23. package/components/event-control-board/service/external-invoice/external-invoice.d.ts +13 -0
  24. package/components/event-control-board/service/invoice/invoice.d.ts +21 -0
  25. package/components/event-control-board/service/origination/operationType.d.ts +5 -0
  26. package/components/event-control-board/service/origination/origination-dto.d.ts +1 -1
  27. package/components/event-control-board/service/origination/origination.d.ts +51 -0
  28. package/components/event-control-board/service/rural-estate/rural-estate.d.ts +34 -0
  29. package/components/event-control-board/service/ticket/ticket.d.ts +18 -0
  30. package/components/index.d.ts +1 -0
  31. package/components/modal-invoice-pj/for-fixation/modal-fixation-options.interface.d.ts +5 -0
  32. package/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.d.ts +35 -0
  33. package/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.module.d.ts +2 -0
  34. package/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.d.ts +26 -0
  35. package/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.module.d.ts +2 -0
  36. package/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.d.ts +26 -0
  37. package/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.module.d.ts +2 -0
  38. package/components/modal-invoice-pj/index.d.ts +9 -0
  39. package/components/modal-invoice-pj/modal-invoice-pj-base.class.d.ts +53 -0
  40. package/components/modal-invoice-pj/modal-invoice-pj-options.interface.d.ts +10 -0
  41. package/components/modal-invoice-pj/modal-shared-imports.d.ts +8 -0
  42. package/components/modal-invoice-pj/services/agro-invoice/agro-invoice.module.d.ts +2 -0
  43. package/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.d.ts +16 -0
  44. package/components/modal-invoice-pj/services/agro-invoice/index.d.ts +2 -0
  45. package/components/modal-invoice-pj/services/agro-invoice/interfaces.d.ts +75 -0
  46. package/enums/index.d.ts +1 -0
  47. package/enums/invoice-status.enum.d.ts +12 -0
  48. package/enums/unit-measurement.enum.d.ts +49 -0
  49. package/esm2015/common/agro-array-utils.class.js +19 -1
  50. package/esm2015/common/agro-logics.class.js +11 -6
  51. package/esm2015/common/agro-number-utils.class.js +18 -1
  52. package/esm2015/common/agro-object-stringifier.class.js +4 -1
  53. package/esm2015/common/agro-object-utils.class.js +28 -2
  54. package/esm2015/common/agro-string-utils.class.js +2 -64
  55. package/esm2015/common/agro-unit-converter.class.js +256 -0
  56. package/esm2015/common/index.js +2 -1
  57. package/esm2015/components/cancel-event-dialog/cancel-event-dialog-config.js +1 -1
  58. package/esm2015/components/event-control-board/common/event-control-constants.js +6 -1
  59. package/esm2015/components/event-control-board/common/event-operation.js +2 -1
  60. package/esm2015/components/event-control-board/common/event-origin.js +2 -1
  61. package/esm2015/components/event-control-board/event-control-board.component.js +14 -8
  62. package/esm2015/components/event-control-board/event-control-board.module.js +2 -5
  63. package/esm2015/components/event-control-board/index.js +2 -4
  64. package/esm2015/components/event-control-board/service/e012fam/e012fam.js +20 -0
  65. package/esm2015/components/event-control-board/service/e075der/e075der.js +31 -0
  66. package/esm2015/components/event-control-board/service/e113saf/e113saf.js +20 -0
  67. package/esm2015/components/event-control-board/service/e205dep/e205dep-dto.js +1 -0
  68. package/esm2015/components/event-control-board/service/e205dep/e205dep.js +20 -0
  69. package/esm2015/components/event-control-board/service/entity-service.js +25 -27
  70. package/esm2015/components/event-control-board/service/external-invoice/external-invoice.js +20 -0
  71. package/esm2015/components/event-control-board/service/invoice/invoice.js +43 -0
  72. package/esm2015/components/event-control-board/service/origination/operationType.js +7 -0
  73. package/esm2015/components/event-control-board/service/origination/origination-dto.js +1 -1
  74. package/esm2015/components/event-control-board/service/origination/origination.js +59 -0
  75. package/esm2015/components/event-control-board/service/rural-estate/rural-estate.js +78 -0
  76. package/esm2015/components/event-control-board/service/ticket/ticket.js +39 -0
  77. package/esm2015/components/financial-title-table/financial-title-table.module.js +7 -5
  78. package/esm2015/components/index.js +2 -1
  79. package/esm2015/components/modal-invoice-pj/for-fixation/modal-fixation-options.interface.js +1 -0
  80. package/esm2015/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.js +189 -0
  81. package/esm2015/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.module.js +16 -0
  82. package/esm2015/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.js +60 -0
  83. package/esm2015/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.module.js +16 -0
  84. package/esm2015/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.js +60 -0
  85. package/esm2015/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.module.js +16 -0
  86. package/esm2015/components/modal-invoice-pj/index.js +8 -0
  87. package/esm2015/components/modal-invoice-pj/modal-invoice-pj-base.class.js +193 -0
  88. package/esm2015/components/modal-invoice-pj/modal-invoice-pj-options.interface.js +1 -0
  89. package/esm2015/components/modal-invoice-pj/modal-shared-imports.js +32 -0
  90. package/esm2015/components/modal-invoice-pj/services/agro-invoice/agro-invoice.module.js +28 -0
  91. package/esm2015/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.js +49 -0
  92. package/esm2015/components/modal-invoice-pj/services/agro-invoice/index.js +3 -0
  93. package/esm2015/components/modal-invoice-pj/services/agro-invoice/interfaces.js +13 -0
  94. package/esm2015/enums/index.js +2 -1
  95. package/esm2015/enums/invoice-status.enum.js +14 -0
  96. package/esm2015/enums/unit-measurement.enum.js +60 -0
  97. package/esm2015/lib-translation.module.js +3 -1
  98. package/esm2015/pipe/index.js +2 -1
  99. package/esm2015/pipe/kilogram/index.js +3 -0
  100. package/esm2015/pipe/kilogram/kilogram.module.js +17 -0
  101. package/esm2015/pipe/kilogram/kilogram.pipe.js +38 -0
  102. package/esm2015/public-api.js +5 -5
  103. package/esm2015/services/entity-service.js +14 -12
  104. package/esm2015/services/i18n/en-US.js +10 -1
  105. package/esm2015/services/i18n/es-CO.js +12 -3
  106. package/esm2015/services/i18n/pt-BR.js +272 -261
  107. package/esm2015/services/index.js +1 -1
  108. package/esm2015/services/lib-translation.service.js +2 -2
  109. package/esm2015/services/producer-invoice/index.js +3 -0
  110. package/esm2015/services/producer-invoice/producer-invoice-dto.js +1 -0
  111. package/esm2015/services/producer-invoice/producer-invoice.js +32 -0
  112. package/esm2015/services/producer-invoice/producer-invoice.service.js +64 -0
  113. package/esm5/common/agro-array-utils.class.js +19 -1
  114. package/esm5/common/agro-logics.class.js +10 -4
  115. package/esm5/common/agro-number-utils.class.js +19 -1
  116. package/esm5/common/agro-object-stringifier.class.js +4 -1
  117. package/esm5/common/agro-object-utils.class.js +28 -2
  118. package/esm5/common/agro-string-utils.class.js +8 -81
  119. package/esm5/common/agro-unit-converter.class.js +259 -0
  120. package/esm5/common/index.js +2 -1
  121. package/esm5/components/cancel-event-dialog/cancel-event-dialog-config.js +1 -1
  122. package/esm5/components/event-control-board/common/event-control-constants.js +6 -1
  123. package/esm5/components/event-control-board/common/event-operation.js +2 -1
  124. package/esm5/components/event-control-board/common/event-origin.js +2 -1
  125. package/esm5/components/event-control-board/event-control-board.component.js +14 -8
  126. package/esm5/components/event-control-board/event-control-board.module.js +2 -5
  127. package/esm5/components/event-control-board/index.js +2 -4
  128. package/esm5/components/event-control-board/service/e012fam/e012fam.js +25 -0
  129. package/esm5/components/event-control-board/service/e075der/e075der.js +36 -0
  130. package/esm5/components/event-control-board/service/e113saf/e113saf.js +25 -0
  131. package/esm5/components/event-control-board/service/e205dep/e205dep-dto.js +1 -0
  132. package/esm5/components/event-control-board/service/e205dep/e205dep.js +25 -0
  133. package/esm5/components/event-control-board/service/entity-service.js +24 -26
  134. package/esm5/components/event-control-board/service/external-invoice/external-invoice.js +25 -0
  135. package/esm5/components/event-control-board/service/invoice/invoice.js +48 -0
  136. package/esm5/components/event-control-board/service/origination/operationType.js +7 -0
  137. package/esm5/components/event-control-board/service/origination/origination-dto.js +1 -1
  138. package/esm5/components/event-control-board/service/origination/origination.js +62 -0
  139. package/esm5/components/event-control-board/service/rural-estate/rural-estate.js +83 -0
  140. package/esm5/components/event-control-board/service/ticket/ticket.js +44 -0
  141. package/esm5/components/financial-title-table/financial-title-table.module.js +7 -5
  142. package/esm5/components/index.js +2 -1
  143. package/esm5/components/modal-invoice-pj/for-fixation/modal-fixation-options.interface.js +1 -0
  144. package/esm5/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.js +221 -0
  145. package/esm5/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.module.js +19 -0
  146. package/esm5/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.js +63 -0
  147. package/esm5/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.module.js +19 -0
  148. package/esm5/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.js +63 -0
  149. package/esm5/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.module.js +19 -0
  150. package/esm5/components/modal-invoice-pj/index.js +8 -0
  151. package/esm5/components/modal-invoice-pj/modal-invoice-pj-base.class.js +210 -0
  152. package/esm5/components/modal-invoice-pj/modal-invoice-pj-options.interface.js +1 -0
  153. package/esm5/components/modal-invoice-pj/modal-shared-imports.js +32 -0
  154. package/esm5/components/modal-invoice-pj/services/agro-invoice/agro-invoice.module.js +31 -0
  155. package/esm5/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.js +56 -0
  156. package/esm5/components/modal-invoice-pj/services/agro-invoice/index.js +3 -0
  157. package/esm5/components/modal-invoice-pj/services/agro-invoice/interfaces.js +13 -0
  158. package/esm5/enums/index.js +2 -1
  159. package/esm5/enums/invoice-status.enum.js +14 -0
  160. package/esm5/enums/unit-measurement.enum.js +60 -0
  161. package/esm5/lib-translation.module.js +3 -1
  162. package/esm5/pipe/index.js +2 -1
  163. package/esm5/pipe/kilogram/index.js +3 -0
  164. package/esm5/pipe/kilogram/kilogram.module.js +20 -0
  165. package/esm5/pipe/kilogram/kilogram.pipe.js +41 -0
  166. package/esm5/public-api.js +5 -5
  167. package/esm5/services/entity-service.js +13 -11
  168. package/esm5/services/i18n/en-US.js +10 -1
  169. package/esm5/services/i18n/es-CO.js +12 -3
  170. package/esm5/services/i18n/pt-BR.js +272 -261
  171. package/esm5/services/index.js +1 -1
  172. package/esm5/services/lib-translation.service.js +2 -2
  173. package/esm5/services/producer-invoice/index.js +3 -0
  174. package/esm5/services/producer-invoice/producer-invoice-dto.js +1 -0
  175. package/esm5/services/producer-invoice/producer-invoice.js +37 -0
  176. package/esm5/services/producer-invoice/producer-invoice.service.js +72 -0
  177. package/fesm2015/senior-agronegocio-angular-components.js +5095 -4077
  178. package/fesm2015/senior-agronegocio-angular-components.js.map +1 -1
  179. package/fesm5/senior-agronegocio-angular-components.js +5642 -4548
  180. package/fesm5/senior-agronegocio-angular-components.js.map +1 -1
  181. package/package.json +1 -1
  182. package/pipe/index.d.ts +1 -0
  183. package/pipe/kilogram/index.d.ts +2 -0
  184. package/pipe/kilogram/kilogram.module.d.ts +2 -0
  185. package/pipe/kilogram/kilogram.pipe.d.ts +8 -0
  186. package/public-api.d.ts +4 -4
  187. package/senior-agronegocio-angular-components.metadata.json +1 -1
  188. package/services/entity-service.d.ts +2 -1
  189. package/services/i18n/en-US.d.ts +9 -0
  190. package/services/i18n/es-CO.d.ts +10 -1
  191. package/services/i18n/pt-BR.d.ts +270 -259
  192. package/services/producer-invoice/index.d.ts +3 -0
  193. package/{components/event-control-board/service → services}/producer-invoice/producer-invoice-dto.d.ts +4 -4
  194. package/services/producer-invoice/producer-invoice.d.ts +27 -0
  195. package/services/producer-invoice/producer-invoice.service.d.ts +18 -0
  196. package/components/event-control-board/service/event-control-board.service.d.ts +0 -13
  197. package/components/event-control-board/service/producer-invoice/producer-invoice.module.d.ts +0 -2
  198. package/components/event-control-board/service/producer-invoice/producer-invoice.service.d.ts +0 -11
  199. package/esm2015/components/event-control-board/service/event-control-board.service.js +0 -37
  200. package/esm2015/components/event-control-board/service/producer-invoice/producer-invoice-dto.js +0 -1
  201. package/esm2015/components/event-control-board/service/producer-invoice/producer-invoice.module.js +0 -26
  202. package/esm2015/components/event-control-board/service/producer-invoice/producer-invoice.service.js +0 -24
  203. package/esm5/components/event-control-board/service/event-control-board.service.js +0 -38
  204. package/esm5/components/event-control-board/service/producer-invoice/producer-invoice-dto.js +0 -1
  205. package/esm5/components/event-control-board/service/producer-invoice/producer-invoice.module.js +0 -29
  206. package/esm5/components/event-control-board/service/producer-invoice/producer-invoice.service.js +0 -27
@@ -1,3 +1,3 @@
1
1
  export * from './websocket/index';
2
2
  export { LibTranslationService } from './lib-translation.service';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3dlYnNvY2tldC9pbmRleCdcclxuZXhwb3J0IHsgTGliVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9saWItdHJhbnNsYXRpb24uc2VydmljZSciXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUE7QUFFakMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3dlYnNvY2tldC9pbmRleCdcclxuXHJcbmV4cG9ydCB7IExpYlRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4vbGliLXRyYW5zbGF0aW9uLnNlcnZpY2UnIl19
@@ -14,7 +14,7 @@ let LibTranslationService = class LibTranslationService {
14
14
  "es-CO": esCO,
15
15
  };
16
16
  this.currentTranslation = {};
17
- this.setLang(this.getLangOfUser());
17
+ this.setLang("pt-BR");
18
18
  }
19
19
  getLangOfUser() {
20
20
  return AgroPlatformUtils.getCurrentTenantLocale() || "pt-BR";
@@ -55,4 +55,4 @@ LibTranslationService = __decorate([
55
55
  })
56
56
  ], LibTranslationService);
57
57
  export { LibTranslationService };
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXRyYW5zbGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL2xpYi10cmFuc2xhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sSUFBSSxNQUFNLGNBQWMsQ0FBQztBQUNoQyxPQUFPLElBQUksTUFBTSxjQUFjLENBQUM7QUFDaEMsT0FBTyxJQUFJLE1BQU0sY0FBYyxDQUFDO0FBQ2hDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUs5QyxJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFxQjtJQVM5QjtRQVJRLDBCQUFxQixHQUEyQjtZQUNwRCxPQUFPLEVBQUUsSUFBSTtZQUNiLE9BQU8sRUFBRSxJQUFJO1lBQ2IsT0FBTyxFQUFFLElBQUk7U0FDaEIsQ0FBQztRQUVNLHVCQUFrQixHQUF3QixFQUFFLENBQUM7UUFHakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsYUFBYTtRQUNULE9BQU8saUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxPQUFPLENBQUM7SUFDakUsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFZO1FBQ2hCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JFLENBQUM7SUFFTSxPQUFPLENBQUMsR0FBVyxFQUFFLGlCQUEwQztRQUNsRSxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDO1FBRXRELElBQUksaUJBQWlCLEVBQUU7WUFDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUM3QyxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDL0YsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxHQUFHLENBQUMsR0FBMkIsRUFBRSxpQkFBMEI7UUFDdkQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sWUFBWSxHQUE4QixFQUFFLENBQUM7WUFDbkQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNkLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3pELENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDM0I7YUFBTTtZQUNILE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQztTQUNuRDtJQUNMLENBQUM7Q0FDSixDQUFBOztBQWhEWSxxQkFBcUI7SUFIakMsVUFBVSxDQUFDO1FBQ1IsVUFBVSxFQUFFLE1BQU07S0FDckIsQ0FBQztHQUNXLHFCQUFxQixDQWdEakM7U0FoRFkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCBwdEJSIGZyb20gXCIuL2kxOG4vcHQtQlJcIjtcclxuaW1wb3J0IGVuVVMgZnJvbSBcIi4vaTE4bi9lbi1VU1wiO1xyXG5pbXBvcnQgZXNDTyBmcm9tIFwiLi9pMThuL2VzLUNPXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQWdyb1BsYXRmb3JtVXRpbHMgfSBmcm9tIFwiLi4vY29tbW9uXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIExpYlRyYW5zbGF0aW9uU2VydmljZSB7XHJcbiAgICBwcml2YXRlIGF2YWlsYWJsZVRyYW5zbGF0aW9uczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHtcclxuICAgICAgICBcInB0LUJSXCI6IHB0QlIsXHJcbiAgICAgICAgXCJlbi1VU1wiOiBlblVTLFxyXG4gICAgICAgIFwiZXMtQ09cIjogZXNDTyxcclxuICAgIH07XHJcblxyXG4gICAgcHJpdmF0ZSBjdXJyZW50VHJhbnNsYXRpb246IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLnNldExhbmcodGhpcy5nZXRMYW5nT2ZVc2VyKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldExhbmdPZlVzZXIoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gQWdyb1BsYXRmb3JtVXRpbHMuZ2V0Q3VycmVudFRlbmFudExvY2FsZSgpIHx8IFwicHQtQlJcIjtcclxuICAgIH1cclxuXHJcbiAgICBzZXRMYW5nKGxhbmc6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRyYW5zbGF0aW9uID0gdGhpcy5hdmFpbGFibGVUcmFuc2xhdGlvbnNbbGFuZ10gfHwge307XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGluc3RhbnQoa2V5OiBzdHJpbmcsIGludGVycG9sYXRlUGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHRyYW5zbGF0aW9uID0gdGhpcy5jdXJyZW50VHJhbnNsYXRpb25ba2V5XSB8fCBrZXk7XHJcblxyXG4gICAgICAgIGlmIChpbnRlcnBvbGF0ZVBhcmFtcykge1xyXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhpbnRlcnBvbGF0ZVBhcmFtcykuZm9yRWFjaCgocGFyYW0pID0+IHtcclxuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uID0gdHJhbnNsYXRpb24ucmVwbGFjZShuZXcgUmVnRXhwKGB7JHtwYXJhbX19YCwgXCJnXCIpLCBpbnRlcnBvbGF0ZVBhcmFtc1twYXJhbV0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cmFuc2xhdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHRyYW5zbGF0ZWQgdmFsdWUgb2YgYSBrZXkgKG9yIGFuIGFycmF5IG9mIGtleXMpXHJcbiAgICAgKiBAcmV0dXJucyB0aGUgdHJhbnNsYXRlZCBrZXksIG9yIGFuIG9iamVjdCBvZiB0cmFuc2xhdGVkIGtleXNcclxuICAgICAqL1xyXG4gICAgZ2V0KGtleTogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPiwgaW50ZXJwb2xhdGVQYXJhbXM/OiBPYmplY3QpOiBPYnNlcnZhYmxlPHN0cmluZyB8IGFueT4ge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGtleSkpIHtcclxuICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb25zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcbiAgICAgICAgICAgIGtleS5mb3JFYWNoKChrKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnNba10gPSB0aGlzLmluc3RhbnQoaywgaW50ZXJwb2xhdGVQYXJhbXMpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHRyYW5zbGF0aW9ucyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuaW5zdGFudChrZXksIGludGVycG9sYXRlUGFyYW1zKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXRyYW5zbGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL2xpYi10cmFuc2xhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sSUFBSSxNQUFNLGNBQWMsQ0FBQztBQUNoQyxPQUFPLElBQUksTUFBTSxjQUFjLENBQUM7QUFDaEMsT0FBTyxJQUFJLE1BQU0sY0FBYyxDQUFDO0FBQ2hDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUs5QyxJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFxQjtJQVM5QjtRQVJRLDBCQUFxQixHQUEyQjtZQUNwRCxPQUFPLEVBQUUsSUFBSTtZQUNiLE9BQU8sRUFBRSxJQUFJO1lBQ2IsT0FBTyxFQUFFLElBQUk7U0FDaEIsQ0FBQztRQUVNLHVCQUFrQixHQUF3QixFQUFFLENBQUM7UUFHakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsYUFBYTtRQUNULE9BQU8saUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxPQUFPLENBQUM7SUFDakUsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFZO1FBQ2hCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JFLENBQUM7SUFFTSxPQUFPLENBQUMsR0FBVyxFQUFFLGlCQUEwQztRQUNsRSxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDO1FBRXRELElBQUksaUJBQWlCLEVBQUU7WUFDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUM3QyxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDL0YsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxHQUFHLENBQUMsR0FBMkIsRUFBRSxpQkFBMEI7UUFDdkQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sWUFBWSxHQUE4QixFQUFFLENBQUM7WUFDbkQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNkLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3pELENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDM0I7YUFBTTtZQUNILE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQztTQUNuRDtJQUNMLENBQUM7Q0FDSixDQUFBOztBQWhEWSxxQkFBcUI7SUFIakMsVUFBVSxDQUFDO1FBQ1IsVUFBVSxFQUFFLE1BQU07S0FDckIsQ0FBQztHQUNXLHFCQUFxQixDQWdEakM7U0FoRFkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCBwdEJSIGZyb20gXCIuL2kxOG4vcHQtQlJcIjtcclxuaW1wb3J0IGVuVVMgZnJvbSBcIi4vaTE4bi9lbi1VU1wiO1xyXG5pbXBvcnQgZXNDTyBmcm9tIFwiLi9pMThuL2VzLUNPXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQWdyb1BsYXRmb3JtVXRpbHMgfSBmcm9tIFwiLi4vY29tbW9uXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIExpYlRyYW5zbGF0aW9uU2VydmljZSB7XHJcbiAgICBwcml2YXRlIGF2YWlsYWJsZVRyYW5zbGF0aW9uczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHtcclxuICAgICAgICBcInB0LUJSXCI6IHB0QlIsXHJcbiAgICAgICAgXCJlbi1VU1wiOiBlblVTLFxyXG4gICAgICAgIFwiZXMtQ09cIjogZXNDTyxcclxuICAgIH07XHJcblxyXG4gICAgcHJpdmF0ZSBjdXJyZW50VHJhbnNsYXRpb246IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLnNldExhbmcoXCJwdC1CUlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRMYW5nT2ZVc2VyKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIEFncm9QbGF0Zm9ybVV0aWxzLmdldEN1cnJlbnRUZW5hbnRMb2NhbGUoKSB8fCBcInB0LUJSXCI7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TGFuZyhsYW5nOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRUcmFuc2xhdGlvbiA9IHRoaXMuYXZhaWxhYmxlVHJhbnNsYXRpb25zW2xhbmddIHx8IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpbnN0YW50KGtleTogc3RyaW5nLCBpbnRlcnBvbGF0ZVBhcmFtcz86IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCB0cmFuc2xhdGlvbiA9IHRoaXMuY3VycmVudFRyYW5zbGF0aW9uW2tleV0gfHwga2V5O1xyXG5cclxuICAgICAgICBpZiAoaW50ZXJwb2xhdGVQYXJhbXMpIHtcclxuICAgICAgICAgICAgT2JqZWN0LmtleXMoaW50ZXJwb2xhdGVQYXJhbXMpLmZvckVhY2goKHBhcmFtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbiA9IHRyYW5zbGF0aW9uLnJlcGxhY2UobmV3IFJlZ0V4cChgeyR7cGFyYW19fWAsIFwiZ1wiKSwgaW50ZXJwb2xhdGVQYXJhbXNbcGFyYW1dKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdHJhbnNsYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSB0cmFuc2xhdGVkIHZhbHVlIG9mIGEga2V5IChvciBhbiBhcnJheSBvZiBrZXlzKVxyXG4gICAgICogQHJldHVybnMgdGhlIHRyYW5zbGF0ZWQga2V5LCBvciBhbiBvYmplY3Qgb2YgdHJhbnNsYXRlZCBrZXlzXHJcbiAgICAgKi9cclxuICAgIGdldChrZXk6IHN0cmluZyB8IEFycmF5PHN0cmluZz4sIGludGVycG9sYXRlUGFyYW1zPzogT2JqZWN0KTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBhbnk+IHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShrZXkpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gICAgICAgICAgICBrZXkuZm9yRWFjaCgoaykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRpb25zW2tdID0gdGhpcy5pbnN0YW50KGssIGludGVycG9sYXRlUGFyYW1zKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBvZih0cmFuc2xhdGlvbnMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLmluc3RhbnQoa2V5LCBpbnRlcnBvbGF0ZVBhcmFtcykpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,3 @@
1
+ export { ProducerInvoice } from './producer-invoice';
2
+ export { ProducerInvoiceService } from './producer-invoice.service';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL3Byb2R1Y2VyLWludm9pY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgUHJvZHVjZXJJbnZvaWNlIH0gZnJvbSAnLi9wcm9kdWNlci1pbnZvaWNlJztcclxuZXhwb3J0IHsgUHJvZHVjZXJJbnZvaWNlRHRvIH0gZnJvbSAnLi9wcm9kdWNlci1pbnZvaWNlLWR0byc7XHJcbmV4cG9ydCB7IFByb2R1Y2VySW52b2ljZVNlcnZpY2UgfSBmcm9tICcuL3Byb2R1Y2VyLWludm9pY2Uuc2VydmljZSc7Il19
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjZXItaW52b2ljZS1kdG8uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL3Byb2R1Y2VyLWludm9pY2UvcHJvZHVjZXItaW52b2ljZS1kdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEUwMDFwZXNEdG8gfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9ldmVudC1jb250cm9sLWJvYXJkL3NlcnZpY2UvZTAwMXBlcy9lMDAxcGVzLWR0b1wiO1xyXG5pbXBvcnQgeyBFeHRlcm5hbEludm9pY2VEdG8gfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9ldmVudC1jb250cm9sLWJvYXJkL3NlcnZpY2UvZXh0ZXJuYWwtaW52b2ljZS9leHRlcm5hbC1pbnZvaWNlLWR0b1wiO1xyXG5pbXBvcnQgeyBPcmlnaW5hdGlvbkR0byB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2V2ZW50LWNvbnRyb2wtYm9hcmQvc2VydmljZS9vcmlnaW5hdGlvbi9vcmlnaW5hdGlvbi1kdG9cIjtcclxuaW1wb3J0IHsgUnVyYWxFc3RhdGVEdG8gfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9ldmVudC1jb250cm9sLWJvYXJkL3NlcnZpY2UvcnVyYWwtZXN0YXRlL3J1cmFsLWVzdGF0ZS1kdG9cIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjZXJJbnZvaWNlRHRvIHtcclxuICAgIGlkPzogc3RyaW5nO1xyXG4gICAgYmFsYW5jZUVudHJ5Q29udHJvbD86IE9yaWdpbmF0aW9uRHRvO1xyXG4gICAgcnVyYWxFc3RhdGU/OiBSdXJhbEVzdGF0ZUR0bztcclxuICAgIGUwMDFwZXM/OiBFMDAxcGVzRHRvO1xyXG4gICAgZXh0ZXJuYWxJbnZvaWNlcz86IEV4dGVybmFsSW52b2ljZUR0b1tdO1xyXG4gICAgd2VpZ2h0PzogbnVtYmVyO1xyXG4gICAgcGVyY2VudGFnZT86IG51bWJlcjtcclxuICAgIGludm9pY2VFcnB4SWQ/OiBzdHJpbmc7XHJcbiAgICBpbnZvaWNlPzogYW55O1xyXG4gICAgcHJvdmlzaW9uYWxJZD86IHN0cmluZztcclxuICAgIGVmZmVjdGl2ZUlkPzogc3RyaW5nO1xyXG4gICAgY3JlYXRlZEJ5Pzogc3RyaW5nO1xyXG4gICAgY3JlYXRlZERhdGU/OiBEYXRlO1xyXG4gICAgbGFzdE1vZGlmaWVkQnk/OiBzdHJpbmc7XHJcbiAgICBsYXN0TW9kaWZpZWREYXRlPzogRGF0ZTtcclxuICAgIGN1c3RvbT86IGFueTtcclxuICAgIGUwMDFwZXNJZD86IHN0cmluZztcclxuICAgIHJ1cmFsRXN0YXRlSWQ/OiBzdHJpbmc7XHJcbiAgICBjb250cmFjdEF2YWlsYWJsZT86IGJvb2xlYW47XHJcbiAgICBpc01haW5Qcm9kdWNlcj86IGJvb2xlYW47XHJcbn1cclxuIl19
@@ -0,0 +1,32 @@
1
+ const moment = require("moment");
2
+ export class ProducerInvoice {
3
+ static fromDto(producerInvoiceDto, originEntity) {
4
+ const model = Object.assign({}, producerInvoiceDto);
5
+ model.createdDate = model.createdDate && moment(model.createdDate).toDate();
6
+ model.lastModifiedDate = model.lastModifiedDate && moment(model.lastModifiedDate).toDate();
7
+ const lookupSeparator = " - ";
8
+ const displayFields = [
9
+ "id",
10
+ "weight",
11
+ "percentage",
12
+ "invoiceErpxId",
13
+ "provisionalId",
14
+ "effectiveId",
15
+ "isMainProducer",
16
+ "createdBy",
17
+ "createdDate",
18
+ "lastModifiedBy",
19
+ "lastModifiedDate",
20
+ ];
21
+ model.label = displayFields.map((field) => model[field]).join(lookupSeparator);
22
+ return model;
23
+ }
24
+ static toDto(producerInvoice, originEntity) {
25
+ const dto = Object.assign({}, producerInvoice);
26
+ dto.createdDate = dto.createdDate && moment(dto.createdDate).format();
27
+ dto.lastModifiedDate = dto.lastModifiedDate && moment(dto.lastModifiedDate).format();
28
+ delete dto.label;
29
+ return dto;
30
+ }
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjZXItaW52b2ljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsic2VydmljZXMvcHJvZHVjZXItaW52b2ljZS9wcm9kdWNlci1pbnZvaWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQVNqQyxNQUFNLE9BQU8sZUFBZTtJQW1CakIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxrQkFBc0MsRUFBRSxZQUFxQjtRQUMvRSxNQUFNLEtBQUsscUJBQWEsa0JBQWtCLENBQUUsQ0FBQztRQUU3QyxLQUFLLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1RSxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUUzRixNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDOUIsTUFBTSxhQUFhLEdBQUc7WUFDbEIsSUFBSTtZQUNKLFFBQVE7WUFDUixZQUFZO1lBQ1osZUFBZTtZQUNmLGVBQWU7WUFDZixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGtCQUFrQjtTQUNyQixDQUFDO1FBRUYsS0FBSyxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFL0UsT0FBTyxLQUF3QixDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWdDLEVBQUUsWUFBcUI7UUFDdkUsTUFBTSxHQUFHLHFCQUFhLGVBQWUsQ0FBRSxDQUFDO1FBRXhDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RFLEdBQUcsQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRXJGLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQztRQUVqQixPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IG1vbWVudCA9IHJlcXVpcmUoXCJtb21lbnRcIik7XHJcblxyXG5pbXBvcnQgeyBQcm9kdWNlckludm9pY2VEdG8gfSBmcm9tIFwiLi9wcm9kdWNlci1pbnZvaWNlLWR0b1wiO1xyXG5pbXBvcnQgeyBPcmlnaW5hdGlvbiB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2V2ZW50LWNvbnRyb2wtYm9hcmQvc2VydmljZS9vcmlnaW5hdGlvbi9vcmlnaW5hdGlvblwiO1xyXG5pbXBvcnQgeyBSdXJhbEVzdGF0ZSB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2V2ZW50LWNvbnRyb2wtYm9hcmQvc2VydmljZS9ydXJhbC1lc3RhdGUvcnVyYWwtZXN0YXRlXCI7XHJcbmltcG9ydCB7IEUwMDFwZXMgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9ldmVudC1jb250cm9sLWJvYXJkL3NlcnZpY2UvZTAwMXBlcy9lMDAxcGVzXCI7XHJcbmltcG9ydCB7IEV4dGVybmFsSW52b2ljZSB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2V2ZW50LWNvbnRyb2wtYm9hcmQvc2VydmljZS9leHRlcm5hbC1pbnZvaWNlL2V4dGVybmFsLWludm9pY2VcIjtcclxuaW1wb3J0IHsgSW52b2ljZSB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2V2ZW50LWNvbnRyb2wtYm9hcmQvc2VydmljZS9pbnZvaWNlL2ludm9pY2VcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWNlckludm9pY2Uge1xyXG4gICAgcHVibGljIGlkPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGJhbGFuY2VFbnRyeUNvbnRyb2whOiBPcmlnaW5hdGlvbjtcclxuICAgIHB1YmxpYyBydXJhbEVzdGF0ZSE6IFJ1cmFsRXN0YXRlO1xyXG4gICAgcHVibGljIGUwMDFwZXMhOiBFMDAxcGVzO1xyXG4gICAgcHVibGljIGV4dGVybmFsSW52b2ljZXMhOiBFeHRlcm5hbEludm9pY2VbXTtcclxuICAgIHB1YmxpYyB3ZWlnaHQhOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgcGVyY2VudGFnZSE6IG51bWJlcjtcclxuICAgIHB1YmxpYyBpbnZvaWNlRXJweElkPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGludm9pY2U/OiBJbnZvaWNlO1xyXG4gICAgcHVibGljIHByb3Zpc2lvbmFsSWQ/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZWZmZWN0aXZlSWQ/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgaXNNYWluUHJvZHVjZXI/OiBib29sZWFuO1xyXG4gICAgcHVibGljIGNyZWF0ZWRCeT86IHN0cmluZztcclxuICAgIHB1YmxpYyBjcmVhdGVkRGF0ZT86IERhdGU7XHJcbiAgICBwdWJsaWMgbGFzdE1vZGlmaWVkQnk/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgbGFzdE1vZGlmaWVkRGF0ZT86IERhdGU7XHJcbiAgICBwdWJsaWMgY3VzdG9tPzogYW55O1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUR0byhwcm9kdWNlckludm9pY2VEdG86IFByb2R1Y2VySW52b2ljZUR0bywgb3JpZ2luRW50aXR5Pzogc3RyaW5nKTogUHJvZHVjZXJJbnZvaWNlIHtcclxuICAgICAgICBjb25zdCBtb2RlbDogYW55ID0geyAuLi5wcm9kdWNlckludm9pY2VEdG8gfTtcclxuXHJcbiAgICAgICAgbW9kZWwuY3JlYXRlZERhdGUgPSBtb2RlbC5jcmVhdGVkRGF0ZSAmJiBtb21lbnQobW9kZWwuY3JlYXRlZERhdGUpLnRvRGF0ZSgpO1xyXG4gICAgICAgIG1vZGVsLmxhc3RNb2RpZmllZERhdGUgPSBtb2RlbC5sYXN0TW9kaWZpZWREYXRlICYmIG1vbWVudChtb2RlbC5sYXN0TW9kaWZpZWREYXRlKS50b0RhdGUoKTtcclxuXHJcbiAgICAgICAgY29uc3QgbG9va3VwU2VwYXJhdG9yID0gXCIgLSBcIjtcclxuICAgICAgICBjb25zdCBkaXNwbGF5RmllbGRzID0gW1xyXG4gICAgICAgICAgICBcImlkXCIsXHJcbiAgICAgICAgICAgIFwid2VpZ2h0XCIsXHJcbiAgICAgICAgICAgIFwicGVyY2VudGFnZVwiLFxyXG4gICAgICAgICAgICBcImludm9pY2VFcnB4SWRcIixcclxuICAgICAgICAgICAgXCJwcm92aXNpb25hbElkXCIsXHJcbiAgICAgICAgICAgIFwiZWZmZWN0aXZlSWRcIixcclxuICAgICAgICAgICAgXCJpc01haW5Qcm9kdWNlclwiLFxyXG4gICAgICAgICAgICBcImNyZWF0ZWRCeVwiLFxyXG4gICAgICAgICAgICBcImNyZWF0ZWREYXRlXCIsXHJcbiAgICAgICAgICAgIFwibGFzdE1vZGlmaWVkQnlcIixcclxuICAgICAgICAgICAgXCJsYXN0TW9kaWZpZWREYXRlXCIsXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgbW9kZWwubGFiZWwgPSBkaXNwbGF5RmllbGRzLm1hcCgoZmllbGQpID0+IG1vZGVsW2ZpZWxkXSkuam9pbihsb29rdXBTZXBhcmF0b3IpO1xyXG5cclxuICAgICAgICByZXR1cm4gbW9kZWwgYXMgUHJvZHVjZXJJbnZvaWNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgdG9EdG8ocHJvZHVjZXJJbnZvaWNlOiBQcm9kdWNlckludm9pY2UsIG9yaWdpbkVudGl0eT86IHN0cmluZyk6IFByb2R1Y2VySW52b2ljZUR0byB7XHJcbiAgICAgICAgY29uc3QgZHRvOiBhbnkgPSB7IC4uLnByb2R1Y2VySW52b2ljZSB9O1xyXG5cclxuICAgICAgICBkdG8uY3JlYXRlZERhdGUgPSBkdG8uY3JlYXRlZERhdGUgJiYgbW9tZW50KGR0by5jcmVhdGVkRGF0ZSkuZm9ybWF0KCk7XHJcbiAgICAgICAgZHRvLmxhc3RNb2RpZmllZERhdGUgPSBkdG8ubGFzdE1vZGlmaWVkRGF0ZSAmJiBtb21lbnQoZHRvLmxhc3RNb2RpZmllZERhdGUpLmZvcm1hdCgpO1xyXG5cclxuICAgICAgICBkZWxldGUgZHRvLmxhYmVsO1xyXG5cclxuICAgICAgICByZXR1cm4gZHRvO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,64 @@
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { HttpClient } from '@angular/common/http';
4
+ import { MessageService } from 'primeng/api';
5
+ import { LibTranslationService as TranslateService } from '../lib-translation.service';
6
+ import { AgroEntityService } from '../entity-service';
7
+ import { AGRO_NUMBERS } from '../../enums/agro-numbers.enum';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common/http";
10
+ import * as i2 from "primeng/api";
11
+ import * as i3 from "../lib-translation.service";
12
+ let ProducerInvoiceService = class ProducerInvoiceService extends AgroEntityService {
13
+ constructor(http, messageService, translate) {
14
+ super(http, messageService, `agro/origination/entities/producerInvoice`, `agro/origination/actions`, `agro/origination/queries`, translate);
15
+ this.http = http;
16
+ this.messageService = messageService;
17
+ this.translate = translate;
18
+ }
19
+ getTotalLinkedInInvoices(invoiceId, fixationId) {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ const filter = `fixationItem.fixation.id eq '${fixationId}' ` + `and invoiceId in ('${invoiceId.join("','")}') `;
22
+ return new Promise((resolve, reject) => {
23
+ this.list({
24
+ filterQuery: filter,
25
+ size: AGRO_NUMBERS.ONE_HUNDRED,
26
+ }).subscribe({
27
+ next: (data) => {
28
+ const invoiceList = data.contents;
29
+ const producerInvoice = new Map();
30
+ if (invoiceList.length) {
31
+ invoiceList.forEach((invoice) => {
32
+ var _a;
33
+ producerInvoice.set(invoice.invoiceId, ((_a = producerInvoice.get(invoice.invoiceId)) !== null && _a !== void 0 ? _a : 0) + invoice.linkedValue);
34
+ });
35
+ }
36
+ resolve(Array.from(producerInvoice.entries()).map(([key, value]) => {
37
+ return {
38
+ invoiceId: key,
39
+ totalLinked: value,
40
+ };
41
+ }));
42
+ },
43
+ error: (err) => reject(new Error(typeof err === 'string' ? err : JSON.stringify(err))),
44
+ });
45
+ });
46
+ });
47
+ }
48
+ deleteAllProducerInvoice(fixationId) {
49
+ return this.http.post(`${this.actionsUrl}/deleteAllProducerInvoice`, { fixationId }).pipe(this.defaultCatch());
50
+ }
51
+ };
52
+ ProducerInvoiceService.ctorParameters = () => [
53
+ { type: HttpClient },
54
+ { type: MessageService },
55
+ { type: TranslateService }
56
+ ];
57
+ ProducerInvoiceService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProducerInvoiceService_Factory() { return new ProducerInvoiceService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.MessageService), i0.ɵɵinject(i3.LibTranslationService)); }, token: ProducerInvoiceService, providedIn: "root" });
58
+ ProducerInvoiceService = __decorate([
59
+ Injectable({
60
+ providedIn: 'root'
61
+ })
62
+ ], ProducerInvoiceService);
63
+ export { ProducerInvoiceService };
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjZXItaW52b2ljZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1hZ3JvbmVnb2Npby9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9wcm9kdWNlci1pbnZvaWNlL3Byb2R1Y2VyLWludm9pY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUscUJBQXFCLElBQUksZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7O0FBVzdELElBQWEsc0JBQXNCLEdBQW5DLE1BQWEsc0JBQXVCLFNBQVEsaUJBQXFDO0lBQzdFLFlBQ2MsSUFBZ0IsRUFDaEIsY0FBOEIsRUFDOUIsU0FBMkI7UUFFckMsS0FBSyxDQUNELElBQUksRUFDSixjQUFjLEVBQ2QsMkNBQTJDLEVBQzNDLDBCQUEwQixFQUMxQiwwQkFBMEIsRUFDMUIsU0FBUyxDQUNaLENBQUM7UUFYUSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQVV6QyxDQUFDO0lBRVksd0JBQXdCLENBQ2pDLFNBQW1CLEVBQ25CLFVBQWtCOztZQUVsQixNQUFNLE1BQU0sR0FDUixnQ0FBZ0MsVUFBVSxJQUFJLEdBQUcsc0JBQXNCLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUN0RyxPQUFPLElBQUksT0FBTyxDQUE4QixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQztvQkFDTixXQUFXLEVBQUUsTUFBTTtvQkFDbkIsSUFBSSxFQUFFLFlBQVksQ0FBQyxXQUFXO2lCQUNqQyxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUNULElBQUksRUFBRSxDQUFDLElBQVMsRUFBRSxFQUFFO3dCQUNoQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO3dCQUNsQyxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQzt3QkFDbEQsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFOzRCQUNwQixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7O2dDQUNqQyxlQUFlLENBQUMsR0FBRyxDQUNmLE9BQU8sQ0FBQyxTQUFTLEVBQ2pCLE9BQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLG1DQUFJLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQ3RFLENBQUM7NEJBQ04sQ0FBQyxDQUFDLENBQUM7eUJBQ047d0JBQ0QsT0FBTyxDQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTs0QkFDdkQsT0FBTztnQ0FDSCxTQUFTLEVBQUUsR0FBRztnQ0FDZCxXQUFXLEVBQUUsS0FBSzs2QkFDckIsQ0FBQzt3QkFDTixDQUFDLENBQUMsQ0FDTCxDQUFDO29CQUNOLENBQUM7b0JBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDekYsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0tBQUE7SUFFTSx3QkFBd0IsQ0FBQyxVQUFrQjtRQUM5QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsMkJBQTJCLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNuSCxDQUFDO0NBQ0osQ0FBQTs7WUFyRHVCLFVBQVU7WUFDQSxjQUFjO1lBQ25CLGdCQUFnQjs7O0FBSmhDLHNCQUFzQjtJQUhsQyxVQUFVLENBQUM7UUFDUixVQUFVLEVBQUUsTUFBTTtLQUNyQixDQUFDO0dBQ1csc0JBQXNCLENBdURsQztTQXZEWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBMaWJUcmFuc2xhdGlvblNlcnZpY2UgYXMgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL2xpYi10cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvZHVjZXJJbnZvaWNlRHRvIH0gZnJvbSAnLi9wcm9kdWNlci1pbnZvaWNlLWR0byc7XHJcbmltcG9ydCB7IEFncm9FbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vZW50aXR5LXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBR1JPX05VTUJFUlMgfSBmcm9tICcuLi8uLi9lbnVtcy9hZ3JvLW51bWJlcnMuZW51bSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjZXJJbnZvaWNlVG90YWxpemVycyB7XHJcbiAgICBpbnZvaWNlSWQ6IHN0cmluZztcclxuICAgIHRvdGFsTGlua2VkOiBudW1iZXI7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjZXJJbnZvaWNlU2VydmljZSBleHRlbmRzIEFncm9FbnRpdHlTZXJ2aWNlPFByb2R1Y2VySW52b2ljZUR0bz4ge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJvdGVjdGVkIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihcclxuICAgICAgICAgICAgaHR0cCxcclxuICAgICAgICAgICAgbWVzc2FnZVNlcnZpY2UsXHJcbiAgICAgICAgICAgIGBhZ3JvL29yaWdpbmF0aW9uL2VudGl0aWVzL3Byb2R1Y2VySW52b2ljZWAsXHJcbiAgICAgICAgICAgIGBhZ3JvL29yaWdpbmF0aW9uL2FjdGlvbnNgLFxyXG4gICAgICAgICAgICBgYWdyby9vcmlnaW5hdGlvbi9xdWVyaWVzYCxcclxuICAgICAgICAgICAgdHJhbnNsYXRlXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0VG90YWxMaW5rZWRJbkludm9pY2VzKFxyXG4gICAgICAgIGludm9pY2VJZDogc3RyaW5nW10sXHJcbiAgICAgICAgZml4YXRpb25JZDogc3RyaW5nXHJcbiAgICApOiBQcm9taXNlPFByb2R1Y2VySW52b2ljZVRvdGFsaXplcnNbXT4ge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlciA9XHJcbiAgICAgICAgICAgIGBmaXhhdGlvbkl0ZW0uZml4YXRpb24uaWQgZXEgJyR7Zml4YXRpb25JZH0nIGAgKyBgYW5kIGludm9pY2VJZCBpbiAoJyR7aW52b2ljZUlkLmpvaW4oXCInLCdcIil9JykgYDtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8UHJvZHVjZXJJbnZvaWNlVG90YWxpemVyc1tdPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdCh7XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXJRdWVyeTogZmlsdGVyLFxyXG4gICAgICAgICAgICAgICAgc2l6ZTogQUdST19OVU1CRVJTLk9ORV9IVU5EUkVELFxyXG4gICAgICAgICAgICB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGludm9pY2VMaXN0ID0gZGF0YS5jb250ZW50cztcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9kdWNlckludm9pY2UgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnZvaWNlTGlzdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW52b2ljZUxpc3QuZm9yRWFjaCgoaW52b2ljZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWNlckludm9pY2Uuc2V0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludm9pY2UuaW52b2ljZUlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9kdWNlckludm9pY2UuZ2V0KGludm9pY2UuaW52b2ljZUlkKSA/PyAwKSArIGludm9pY2UubGlua2VkVmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBBcnJheS5mcm9tKHByb2R1Y2VySW52b2ljZS5lbnRyaWVzKCkpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludm9pY2VJZDoga2V5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsTGlua2VkOiB2YWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycikgPT4gcmVqZWN0KG5ldyBFcnJvcih0eXBlb2YgZXJyID09PSAnc3RyaW5nJyA/IGVyciA6IEpTT04uc3RyaW5naWZ5KGVycikpKSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRlbGV0ZUFsbFByb2R1Y2VySW52b2ljZShmaXhhdGlvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmFjdGlvbnNVcmx9L2RlbGV0ZUFsbFByb2R1Y2VySW52b2ljZWAsIHsgZml4YXRpb25JZCB9KS5waXBlKHRoaXMuZGVmYXVsdENhdGNoKCkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import { __values } from "tslib";
2
+ import { AgroObjectUtils } from "./agro-object-utils.class";
2
3
  /**
3
4
  * Classe com funções úteis para Arrays.
4
5
  */
@@ -44,6 +45,13 @@ var AgroArrayUtils = /** @class */ (function () {
44
45
  AgroArrayUtils.isEmpty = function (array) {
45
46
  return AgroArrayUtils.isArray(array) && array.length === 0;
46
47
  };
48
+ /**
49
+ * Verifica se um array é vazio.
50
+ * @param array Array a ser verificado.
51
+ */
52
+ AgroArrayUtils.isNotEmpty = function (array) {
53
+ return !AgroArrayUtils.isEmpty(array);
54
+ };
47
55
  /**
48
56
  * Localiza um item em um array de objetos de acordo com a propriedade e valor informados.
49
57
  */
@@ -66,7 +74,17 @@ var AgroArrayUtils = /** @class */ (function () {
66
74
  }
67
75
  return null;
68
76
  };
77
+ /**
78
+ * Valida se dois arrays são iguais.
79
+ * Considera se os arrays possuem os mesmos elementos na mesma ordem.
80
+ * @param arr1
81
+ * @param arr2
82
+ * @returns
83
+ */
84
+ AgroArrayUtils.arraysAreEqual = function (arr1, arr2) {
85
+ return AgroObjectUtils.isEqual(arr1, arr2);
86
+ };
69
87
  return AgroArrayUtils;
70
88
  }());
71
89
  export { AgroArrayUtils };
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1hcnJheS11dGlscy5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tbW9uL2Fncm8tYXJyYXktdXRpbHMuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHO0FBQ0g7SUFBQTtJQXdEQSxDQUFDO0lBdkRHOztPQUVHO0lBQ1csc0JBQU8sR0FBckIsVUFBc0IsS0FBVTtRQUM1QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDVyx5QkFBVSxHQUF4QixVQUF5QixLQUFZLEVBQUUsSUFBUztRQUM1QyxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ2QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNXLGdDQUFpQixHQUEvQixVQUFnQyxLQUFZLEVBQUUsS0FBYTtRQUN2RCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ1csNkJBQWMsR0FBNUIsVUFBNkIsS0FBWTtRQUNyQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNXLHNCQUFPLEdBQXJCLFVBQXNCLEtBQVk7UUFDOUIsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7T0FFRztJQUNXLGlDQUFrQixHQUFoQyxVQUFpQyxLQUFZLEVBQUUsUUFBZ0IsRUFBRSxLQUFVOzs7WUFDdkUsS0FBbUIsSUFBQSxVQUFBLFNBQUEsS0FBSyxDQUFBLDRCQUFBLCtDQUFFO2dCQUFyQixJQUFNLElBQUksa0JBQUE7Z0JBQ1gsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxFQUFFO29CQUMxQixPQUFPLElBQUksQ0FBQztpQkFDZjthQUNKOzs7Ozs7Ozs7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0wscUJBQUM7QUFBRCxDQUFDLEFBeERELElBd0RDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENsYXNzZSBjb20gZnVuw6fDtWVzIMO6dGVpcyBwYXJhIEFycmF5cy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBBZ3JvQXJyYXlVdGlscyB7XHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIG8gdmFsb3IgaW5mb3JtYWRvIMOpIHVtIGFycmF5LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzQXJyYXkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZSB1bSBpdGVtIGRlIHVtIGFycmF5LlxyXG4gICAgICogQHBhcmFtIGFycmF5IEFycmF5IGRlIG9uZGUgbyBpdGVtIHNlcsOhIHJlbW92aWRvLlxyXG4gICAgICogQHBhcmFtIGl0ZW0gSXRlbSBhIHNlciByZW1vdmlkby5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyByZW1vdmVJdGVtKGFycmF5OiBhbnlbXSwgaXRlbTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSBhcnJheS5pbmRleE9mKGl0ZW0pO1xyXG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgICAgYXJyYXkuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmUgdW0gaXRlbSBkZSB1bSBhcnJheSBwb3Igw61uZGljZS5cclxuICAgICAqIEBwYXJhbSBhcnJheSBBcnJheSBkZSBvbmRlIG8gaXRlbSBzZXLDoSByZW1vdmlkby5cclxuICAgICAqIEBwYXJhbSBpbmRleCDDjW5kaWNlIGRvIGl0ZW0gYSBzZXIgcmVtb3ZpZG8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgcmVtb3ZlSXRlbUJ5SW5kZXgoYXJyYXk6IGFueVtdLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgYXJyYXkuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZSB0b2RvcyBvcyBpdGVucyBkZSB1bSBhcnJheS5cclxuICAgICAqIEBwYXJhbSBhcnJheSBBcnJheSBkZSBvbmRlIG9zIGl0ZW5zIHNlcsOjbyByZW1vdmlkb3MuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgcmVtb3ZlQWxsSXRlbXMoYXJyYXk6IGFueVtdKTogdm9pZCB7XHJcbiAgICAgICAgYXJyYXkuc3BsaWNlKDAsIGFycmF5Lmxlbmd0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBhcnJheSDDqSB2YXppby5cclxuICAgICAqIEBwYXJhbSBhcnJheSBBcnJheSBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzRW1wdHkoYXJyYXk6IGFueVtdKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFncm9BcnJheVV0aWxzLmlzQXJyYXkoYXJyYXkpICYmIGFycmF5Lmxlbmd0aCA9PT0gMDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIExvY2FsaXphIHVtIGl0ZW0gZW0gdW0gYXJyYXkgZGUgb2JqZXRvcyBkZSBhY29yZG8gY29tIGEgcHJvcHJpZWRhZGUgZSB2YWxvciBpbmZvcm1hZG9zLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGZpbmRJdGVtQnlQcm9wZXJ0eShhcnJheTogYW55W10sIHByb3BlcnR5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBhcnJheSkge1xyXG4gICAgICAgICAgICBpZiAoaXRlbVtwcm9wZXJ0eV0gPT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG4iXX0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1hcnJheS11dGlscy5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tbW9uL2Fncm8tYXJyYXktdXRpbHMuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RDs7R0FFRztBQUNIO0lBQUE7SUEyRUEsQ0FBQztJQTFFRzs7T0FFRztJQUNXLHNCQUFPLEdBQXJCLFVBQXNCLEtBQVU7UUFDNUIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ1cseUJBQVUsR0FBeEIsVUFBeUIsS0FBWSxFQUFFLElBQVM7UUFDNUMsSUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNkLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDVyxnQ0FBaUIsR0FBL0IsVUFBZ0MsS0FBWSxFQUFFLEtBQWE7UUFDdkQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNXLDZCQUFjLEdBQTVCLFVBQTZCLEtBQVk7UUFDckMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDVyxzQkFBTyxHQUFyQixVQUFzQixLQUFZO1FBQzlCLE9BQU8sY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ1cseUJBQVUsR0FBeEIsVUFBeUIsS0FBWTtRQUNqQyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDVyxpQ0FBa0IsR0FBaEMsVUFBaUMsS0FBWSxFQUFFLFFBQWdCLEVBQUUsS0FBVTs7O1lBQ3ZFLEtBQW1CLElBQUEsVUFBQSxTQUFBLEtBQUssQ0FBQSw0QkFBQSwrQ0FBRTtnQkFBckIsSUFBTSxJQUFJLGtCQUFBO2dCQUNYLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUssRUFBRTtvQkFDMUIsT0FBTyxJQUFJLENBQUM7aUJBQ2Y7YUFDSjs7Ozs7Ozs7O1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNXLDZCQUFjLEdBQTVCLFVBQTZCLElBQVcsRUFBRSxJQUFXO1FBQ2xELE9BQU8sZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNMLHFCQUFDO0FBQUQsQ0FBQyxBQTNFRCxJQTJFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFncm9PYmplY3RVdGlscyB9IGZyb20gXCIuL2Fncm8tb2JqZWN0LXV0aWxzLmNsYXNzXCI7XHJcblxyXG4vKipcclxuICogQ2xhc3NlIGNvbSBmdW7Dp8O1ZXMgw7p0ZWlzIHBhcmEgQXJyYXlzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFncm9BcnJheVV0aWxzIHtcclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgbyB2YWxvciBpbmZvcm1hZG8gw6kgdW0gYXJyYXkuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNBcnJheSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlIHVtIGl0ZW0gZGUgdW0gYXJyYXkuXHJcbiAgICAgKiBAcGFyYW0gYXJyYXkgQXJyYXkgZGUgb25kZSBvIGl0ZW0gc2Vyw6EgcmVtb3ZpZG8uXHJcbiAgICAgKiBAcGFyYW0gaXRlbSBJdGVtIGEgc2VyIHJlbW92aWRvLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIHJlbW92ZUl0ZW0oYXJyYXk6IGFueVtdLCBpdGVtOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IGFycmF5LmluZGV4T2YoaXRlbSk7XHJcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgICBhcnJheS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZSB1bSBpdGVtIGRlIHVtIGFycmF5IHBvciDDrW5kaWNlLlxyXG4gICAgICogQHBhcmFtIGFycmF5IEFycmF5IGRlIG9uZGUgbyBpdGVtIHNlcsOhIHJlbW92aWRvLlxyXG4gICAgICogQHBhcmFtIGluZGV4IMONbmRpY2UgZG8gaXRlbSBhIHNlciByZW1vdmlkby5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyByZW1vdmVJdGVtQnlJbmRleChhcnJheTogYW55W10sIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICBhcnJheS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlIHRvZG9zIG9zIGl0ZW5zIGRlIHVtIGFycmF5LlxyXG4gICAgICogQHBhcmFtIGFycmF5IEFycmF5IGRlIG9uZGUgb3MgaXRlbnMgc2Vyw6NvIHJlbW92aWRvcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyByZW1vdmVBbGxJdGVtcyhhcnJheTogYW55W10pOiB2b2lkIHtcclxuICAgICAgICBhcnJheS5zcGxpY2UoMCwgYXJyYXkubGVuZ3RoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIGFycmF5IMOpIHZhemlvLlxyXG4gICAgICogQHBhcmFtIGFycmF5IEFycmF5IGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNFbXB0eShhcnJheTogYW55W10pOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQWdyb0FycmF5VXRpbHMuaXNBcnJheShhcnJheSkgJiYgYXJyYXkubGVuZ3RoID09PSAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gYXJyYXkgw6kgdmF6aW8uXHJcbiAgICAgKiBAcGFyYW0gYXJyYXkgQXJyYXkgYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBpc05vdEVtcHR5KGFycmF5OiBhbnlbXSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhQWdyb0FycmF5VXRpbHMuaXNFbXB0eShhcnJheSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMb2NhbGl6YSB1bSBpdGVtIGVtIHVtIGFycmF5IGRlIG9iamV0b3MgZGUgYWNvcmRvIGNvbSBhIHByb3ByaWVkYWRlIGUgdmFsb3IgaW5mb3JtYWRvcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBmaW5kSXRlbUJ5UHJvcGVydHkoYXJyYXk6IGFueVtdLCBwcm9wZXJ0eTogc3RyaW5nLCB2YWx1ZTogYW55KTogYW55IHtcclxuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXJyYXkpIHtcclxuICAgICAgICAgICAgaWYgKGl0ZW1bcHJvcGVydHldID09PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGEgc2UgZG9pcyBhcnJheXMgc8OjbyBpZ3VhaXMuXHJcbiAgICAgKiBDb25zaWRlcmEgc2Ugb3MgYXJyYXlzIHBvc3N1ZW0gb3MgbWVzbW9zIGVsZW1lbnRvcyBuYSBtZXNtYSBvcmRlbS5cclxuICAgICAqIEBwYXJhbSBhcnIxXHJcbiAgICAgKiBAcGFyYW0gYXJyMlxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBhcnJheXNBcmVFcXVhbChhcnIxOiBhbnlbXSwgYXJyMjogYW55W10pOiBib29sZWFuIHtcclxuICAgICAgIHJldHVybiBBZ3JvT2JqZWN0VXRpbHMuaXNFcXVhbChhcnIxLCBhcnIyKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -13,6 +13,7 @@ var AgroLogics = /** @class */ (function () {
13
13
  */
14
14
  AgroLogics.entityDistributionStats = function (data, keys) {
15
15
  var e_1, _a;
16
+ var _this = this;
16
17
  var total = data.length;
17
18
  var map = new Map();
18
19
  var resolvePath = function (source, path) {
@@ -22,9 +23,8 @@ var AgroLogics = /** @class */ (function () {
22
23
  try {
23
24
  for (var parts_1 = __values(parts), parts_1_1 = parts_1.next(); !parts_1_1.done; parts_1_1 = parts_1.next()) {
24
25
  var p = parts_1_1.value;
25
- if (value == null) {
26
+ if (value == null)
26
27
  return undefined;
27
- }
28
28
  value = value[p];
29
29
  }
30
30
  }
@@ -78,12 +78,18 @@ var AgroLogics = /** @class */ (function () {
78
78
  var result = Array.from(map.values()).map(function (entry) { return ({
79
79
  data: entry.data,
80
80
  samplingQuantity: entry.count,
81
- samplingSuccess: Math.round((entry.count / total) * AGRO_NUMBERS.ONE_HUNDRED),
81
+ samplingSuccess: Math.round((entry.count / total) * _this.PERCENT),
82
82
  }); });
83
83
  result.sort(function (a, b) { return b.samplingSuccess - a.samplingSuccess; });
84
84
  return result;
85
85
  };
86
+ // 🔹 Constantes locais
87
+ AgroLogics.FAHRENHEIT_OFFSET = 32;
88
+ AgroLogics.FAHRENHEIT_NUMERATOR = 9;
89
+ AgroLogics.FAHRENHEIT_DENOMINATOR = 5;
90
+ AgroLogics.KELVIN_OFFSET = 273.15;
91
+ AgroLogics.PERCENT = 100;
86
92
  return AgroLogics;
87
93
  }());
88
94
  export { AgroLogics };
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1sb2dpY3MuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLWxvZ2ljcy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQVN4QztJQUFBO0lBc0RBLENBQUM7SUFyREQ7Ozs7Ozs7T0FPRztJQUNNLGtDQUF1QixHQUE5QixVQUNFLElBQVMsRUFDVCxJQUEwQjs7UUFFNUIsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN4QixJQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBK0MsQ0FBQztRQUVuRSxJQUFNLFdBQVcsR0FBRyxVQUFDLE1BQVcsRUFBRSxJQUFZOztZQUM1QyxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQzs7Z0JBQ25CLEtBQWdCLElBQUEsVUFBQSxTQUFBLEtBQUssQ0FBQSw0QkFBQSwrQ0FBRTtvQkFBbEIsSUFBTSxDQUFDLGtCQUFBO29CQUNWLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTt3QkFDakIsT0FBTyxTQUFTLENBQUM7cUJBQ2xCO29CQUNELEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2xCOzs7Ozs7Ozs7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQztnQ0FFUyxJQUFJOztZQUNiLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQVcsQ0FBQyxFQUE5QixDQUE4QixDQUFDLENBQUM7WUFDaEUsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUU1QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDdkIsSUFBTSxXQUFXLEdBQWUsRUFBRSxDQUFDOztvQkFDbkMsS0FBZ0IsSUFBQSx3QkFBQSxTQUFBLElBQUksQ0FBQSxDQUFBLDBCQUFBLDRDQUFFO3dCQUFqQixJQUFNLENBQUMsaUJBQUE7d0JBQ1YsSUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDM0MsV0FBbUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQVcsQ0FBQyxDQUFDO3FCQUNqRTs7Ozs7Ozs7O2dCQUNELEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNyRDtZQUNELElBQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakMsS0FBSyxDQUFDLEtBQUssSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDOzs7WUFibEMsS0FBbUIsSUFBQSxTQUFBLFNBQUEsSUFBSSxDQUFBLDBCQUFBO2dCQUFsQixJQUFNLElBQUksaUJBQUE7d0JBQUosSUFBSTthQWNkOzs7Ozs7Ozs7UUFFRCxJQUFNLE1BQU0sR0FBNEIsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxDQUFDO1lBQzdFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsS0FBSztZQUM3QixlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQztTQUM5RSxDQUFDLEVBSjRFLENBSTVFLENBQUMsQ0FBQztRQUVKLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsZUFBZSxFQUFyQyxDQUFxQyxDQUFDLENBQUM7UUFFN0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNILGlCQUFDO0FBQUQsQ0FBQyxBQXRERCxJQXNEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFHUk9fTlVNQkVSUyB9IGZyb20gXCIuLi9lbnVtc1wiO1xyXG50eXBlIEFueVJlY29yZCA9IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpc3RyaWJ1dGlvblJlc3VsdDxUPiB7XHJcbiAgZGF0YTogUGFydGlhbDxUPjtcclxuICBzYW1wbGluZ1N1Y2Nlc3M6IG51bWJlcjsgICAvLyBwZXJjZW50YWdlIG9mIHRvdGFsXHJcbiAgc2FtcGxpbmdRdWFudGl0eTogbnVtYmVyOyAgLy8gYWJzb2x1dGUgY291bnRcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFncm9Mb2dpY3Mge1xyXG4vKipcclxuICogQWdydXBhIG8gY29uanVudG8gZGUgZGFkb3MgcGVsb3MgY2FtcG9zIGRlIGVudGlkYWRlIGZvcm5lY2lkb3MgZSBjYWxjdWxhXHJcbiAqIGEgZGlzdHJpYnVpw6fDo28gZGUgcHJvYmFiaWxpZGFkZSAoZnJlcXXDqm5jaWEgZSBwb3JjZW50YWdlbSkuXHJcbiAqXHJcbiAqIEBwYXJhbSBkYXRhIC0gQXJyYXkgZGUgb2JqZXRvcyBhIHNlcmVtIGFuYWxpc2Fkb3NcclxuICogQHBhcmFtIGtleXMgLSBDaGF2ZXMgb3UgY2FtaW5ob3MgYW5pbmhhZG9zIHBhcmEgYWdydXBhciAoZXg6IFtcImVudGl0eTFcIiwgXCJlbnRpdHkyXCJdKVxyXG4gKiBAcmV0dXJucyBBcnJheSBkZSBlc3RhdMOtc3RpY2FzIGFncnVwYWRhcyBvcmRlbmFkYXMgcG9yIHNhbXBsaW5nU3VjY2VzcyAoZGVjcmVzY2VudGUpXHJcbiAqL1xyXG4gIHN0YXRpYyBlbnRpdHlEaXN0cmlidXRpb25TdGF0czxUIGV4dGVuZHMgQW55UmVjb3JkPihcclxuICAgIGRhdGE6IFRbXSxcclxuICAgIGtleXM6IChrZXlvZiBUIHwgc3RyaW5nKVtdXHJcbiAgKTogRGlzdHJpYnV0aW9uUmVzdWx0PFQ+W10ge1xyXG4gIGNvbnN0IHRvdGFsID0gZGF0YS5sZW5ndGg7XHJcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgeyBkYXRhOiBQYXJ0aWFsPFQ+OyBjb3VudDogbnVtYmVyIH0+KCk7XHJcblxyXG4gICAgY29uc3QgcmVzb2x2ZVBhdGggPSAoc291cmNlOiBhbnksIHBhdGg6IHN0cmluZyk6IGFueSA9PiB7XHJcbiAgICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdChcIi5cIik7XHJcbiAgICAgIGxldCB2YWx1ZSA9IHNvdXJjZTtcclxuICAgICAgZm9yIChjb25zdCBwIG9mIHBhcnRzKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcclxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhbHVlID0gdmFsdWVbcF07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZGF0YSkge1xyXG4gICAgICBjb25zdCBrZXlWYWx1ZXMgPSBrZXlzLm1hcChrID0+IHJlc29sdmVQYXRoKGl0ZW0sIGsgYXMgc3RyaW5nKSk7XHJcbiAgICAgIGNvbnN0IHVuaXF1ZUtleSA9IEpTT04uc3RyaW5naWZ5KGtleVZhbHVlcyk7XHJcblxyXG4gICAgICBpZiAoIW1hcC5oYXModW5pcXVlS2V5KSkge1xyXG4gICAgICAgIGNvbnN0IGdyb3VwZWREYXRhOiBQYXJ0aWFsPFQ+ID0ge307XHJcbiAgICAgICAgZm9yIChjb25zdCBrIG9mIGtleXMpIHtcclxuICAgICAgICAgIGNvbnN0IHJvb3ROYW1lID0gay50b1N0cmluZygpLnNwbGl0KFwiLlwiKVswXTtcclxuICAgICAgICAgIChncm91cGVkRGF0YSBhcyBhbnkpW3Jvb3ROYW1lXSA9IHJlc29sdmVQYXRoKGl0ZW0sIGsgYXMgc3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbWFwLnNldCh1bmlxdWVLZXksIHsgZGF0YTogZ3JvdXBlZERhdGEsIGNvdW50OiAwIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGVudHJ5ID0gbWFwLmdldCh1bmlxdWVLZXkpO1xyXG4gICAgICBlbnRyeS5jb3VudCArPSBBR1JPX05VTUJFUlMuT05FO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlc3VsdDogRGlzdHJpYnV0aW9uUmVzdWx0PFQ+W10gPSBBcnJheS5mcm9tKG1hcC52YWx1ZXMoKSkubWFwKGVudHJ5ID0+ICh7XHJcbiAgICAgIGRhdGE6IGVudHJ5LmRhdGEsXHJcbiAgICAgIHNhbXBsaW5nUXVhbnRpdHk6IGVudHJ5LmNvdW50LFxyXG4gICAgICBzYW1wbGluZ1N1Y2Nlc3M6IE1hdGgucm91bmQoKGVudHJ5LmNvdW50IC8gdG90YWwpICogQUdST19OVU1CRVJTLk9ORV9IVU5EUkVEKSxcclxuICAgIH0pKTtcclxuXHJcbiAgICByZXN1bHQuc29ydCgoYSwgYikgPT4gYi5zYW1wbGluZ1N1Y2Nlc3MgLSBhLnNhbXBsaW5nU3VjY2Vzcyk7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbn0iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1sb2dpY3MuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLWxvZ2ljcy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQVN4QztJQUFBO0lBd0RBLENBQUM7SUFoREc7Ozs7Ozs7T0FPRztJQUNJLGtDQUF1QixHQUE5QixVQUFvRCxJQUFTLEVBQUUsSUFBMEI7O1FBQXpGLGlCQXVDQztRQXRDRyxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUErQyxDQUFDO1FBRW5FLElBQU0sV0FBVyxHQUFHLFVBQUMsTUFBVyxFQUFFLElBQVk7O1lBQzFDLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDOztnQkFDbkIsS0FBZ0IsSUFBQSxVQUFBLFNBQUEsS0FBSyxDQUFBLDRCQUFBLCtDQUFFO29CQUFsQixJQUFNLENBQUMsa0JBQUE7b0JBQ1IsSUFBSSxLQUFLLElBQUksSUFBSTt3QkFBRSxPQUFPLFNBQVMsQ0FBQztvQkFDcEMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDcEI7Ozs7Ozs7OztZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUMsQ0FBQztnQ0FFUyxJQUFJOztZQUNYLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQVcsQ0FBQyxFQUE5QixDQUE4QixDQUFDLENBQUM7WUFDbEUsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUU1QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDckIsSUFBTSxXQUFXLEdBQWUsRUFBRSxDQUFDOztvQkFDbkMsS0FBZ0IsSUFBQSx3QkFBQSxTQUFBLElBQUksQ0FBQSxDQUFBLDBCQUFBLDRDQUFFO3dCQUFqQixJQUFNLENBQUMsaUJBQUE7d0JBQ1IsSUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDM0MsV0FBbUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQVcsQ0FBQyxDQUFDO3FCQUNuRTs7Ozs7Ozs7O2dCQUNELEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN2RDtZQUNELElBQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFFLENBQUM7WUFDbEMsS0FBSyxDQUFDLEtBQUssSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDOzs7WUFicEMsS0FBbUIsSUFBQSxTQUFBLFNBQUEsSUFBSSxDQUFBLDBCQUFBO2dCQUFsQixJQUFNLElBQUksaUJBQUE7d0JBQUosSUFBSTthQWNkOzs7Ozs7Ozs7UUFFRCxJQUFNLE1BQU0sR0FBNEIsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxLQUFLLElBQUssT0FBQSxDQUFDO1lBQzdFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsS0FBSztZQUM3QixlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsS0FBSSxDQUFDLE9BQU8sQ0FBQztTQUNwRSxDQUFDLEVBSjhFLENBSTlFLENBQUMsQ0FBQztRQUVKLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsZUFBZSxFQUFyQyxDQUFxQyxDQUFDLENBQUM7UUFFN0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQXRERCx1QkFBdUI7SUFDQyw0QkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDdkIsK0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLGlDQUFzQixHQUFHLENBQUMsQ0FBQztJQUMzQix3QkFBYSxHQUFHLE1BQU0sQ0FBQztJQUN2QixrQkFBTyxHQUFHLEdBQUcsQ0FBQztJQWtEMUMsaUJBQUM7Q0FBQSxBQXhERCxJQXdEQztTQXhEWSxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUdST19OVU1CRVJTIH0gZnJvbSBcIi4uL2VudW1zXCI7XHJcbnR5cGUgQW55UmVjb3JkID0gUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlzdHJpYnV0aW9uUmVzdWx0PFQ+IHtcclxuICAgIGRhdGE6IFBhcnRpYWw8VD47XHJcbiAgICBzYW1wbGluZ1N1Y2Nlc3M6IG51bWJlcjsgLy8gcGVyY2VudGFnZSBvZiB0b3RhbFxyXG4gICAgc2FtcGxpbmdRdWFudGl0eTogbnVtYmVyOyAvLyBhYnNvbHV0ZSBjb3VudFxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWdyb0xvZ2ljcyB7XHJcbiAgICAvLyDwn5S5IENvbnN0YW50ZXMgbG9jYWlzXHJcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBGQUhSRU5IRUlUX09GRlNFVCA9IDMyO1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRkFIUkVOSEVJVF9OVU1FUkFUT1IgPSA5O1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRkFIUkVOSEVJVF9ERU5PTUlOQVRPUiA9IDU7XHJcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBLRUxWSU5fT0ZGU0VUID0gMjczLjE1O1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUEVSQ0VOVCA9IDEwMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFncnVwYSBvIGNvbmp1bnRvIGRlIGRhZG9zIHBlbG9zIGNhbXBvcyBkZSBlbnRpZGFkZSBmb3JuZWNpZG9zIGUgY2FsY3VsYVxyXG4gICAgICogYSBkaXN0cmlidWnDp8OjbyBkZSBwcm9iYWJpbGlkYWRlIChmcmVxdcOqbmNpYSBlIHBvcmNlbnRhZ2VtKS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gZGF0YSAtIEFycmF5IGRlIG9iamV0b3MgYSBzZXJlbSBhbmFsaXNhZG9zXHJcbiAgICAgKiBAcGFyYW0ga2V5cyAtIENoYXZlcyBvdSBjYW1pbmhvcyBhbmluaGFkb3MgcGFyYSBhZ3J1cGFyIChleDogW1wiZW50aXR5MVwiLCBcImVudGl0eTJcIl0pXHJcbiAgICAgKiBAcmV0dXJucyBBcnJheSBkZSBlc3RhdMOtc3RpY2FzIGFncnVwYWRhcyBvcmRlbmFkYXMgcG9yIHNhbXBsaW5nU3VjY2VzcyAoZGVjcmVzY2VudGUpXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBlbnRpdHlEaXN0cmlidXRpb25TdGF0czxUIGV4dGVuZHMgQW55UmVjb3JkPihkYXRhOiBUW10sIGtleXM6IChrZXlvZiBUIHwgc3RyaW5nKVtdKTogRGlzdHJpYnV0aW9uUmVzdWx0PFQ+W10ge1xyXG4gICAgICAgIGNvbnN0IHRvdGFsID0gZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIHsgZGF0YTogUGFydGlhbDxUPjsgY291bnQ6IG51bWJlciB9PigpO1xyXG5cclxuICAgICAgICBjb25zdCByZXNvbHZlUGF0aCA9IChzb3VyY2U6IGFueSwgcGF0aDogc3RyaW5nKTogYW55ID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcGFydHMgPSBwYXRoLnNwbGl0KFwiLlwiKTtcclxuICAgICAgICAgICAgbGV0IHZhbHVlID0gc291cmNlO1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHAgb2YgcGFydHMpIHtcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZVtwXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGRhdGEpIHtcclxuICAgICAgICAgICAgY29uc3Qga2V5VmFsdWVzID0ga2V5cy5tYXAoKGspID0+IHJlc29sdmVQYXRoKGl0ZW0sIGsgYXMgc3RyaW5nKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHVuaXF1ZUtleSA9IEpTT04uc3RyaW5naWZ5KGtleVZhbHVlcyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIW1hcC5oYXModW5pcXVlS2V5KSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBlZERhdGE6IFBhcnRpYWw8VD4gPSB7fTtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgayBvZiBrZXlzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm9vdE5hbWUgPSBrLnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpWzBdO1xyXG4gICAgICAgICAgICAgICAgICAgIChncm91cGVkRGF0YSBhcyBhbnkpW3Jvb3ROYW1lXSA9IHJlc29sdmVQYXRoKGl0ZW0sIGsgYXMgc3RyaW5nKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG1hcC5zZXQodW5pcXVlS2V5LCB7IGRhdGE6IGdyb3VwZWREYXRhLCBjb3VudDogMCB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IG1hcC5nZXQodW5pcXVlS2V5KSE7XHJcbiAgICAgICAgICAgIGVudHJ5LmNvdW50ICs9IEFHUk9fTlVNQkVSUy5PTkU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCByZXN1bHQ6IERpc3RyaWJ1dGlvblJlc3VsdDxUPltdID0gQXJyYXkuZnJvbShtYXAudmFsdWVzKCkpLm1hcCgoZW50cnkpID0+ICh7XHJcbiAgICAgICAgICAgIGRhdGE6IGVudHJ5LmRhdGEsXHJcbiAgICAgICAgICAgIHNhbXBsaW5nUXVhbnRpdHk6IGVudHJ5LmNvdW50LFxyXG4gICAgICAgICAgICBzYW1wbGluZ1N1Y2Nlc3M6IE1hdGgucm91bmQoKGVudHJ5LmNvdW50IC8gdG90YWwpICogdGhpcy5QRVJDRU5UKSxcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIHJlc3VsdC5zb3J0KChhLCBiKSA9PiBiLnNhbXBsaW5nU3VjY2VzcyAtIGEuc2FtcGxpbmdTdWNjZXNzKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Classe de utilitários para operações com números.
3
3
  */
4
+ import { __read, __spread } from "tslib";
4
5
  import { AGRO_NUMBERS } from "../enums";
5
6
  var AgroNumberUtils = /** @class */ (function () {
6
7
  function AgroNumberUtils() {
@@ -113,7 +114,24 @@ var AgroNumberUtils = /** @class */ (function () {
113
114
  var factor = Math.pow(AGRO_NUMBERS.TEN, decimals);
114
115
  return Math.round(value * factor) / factor;
115
116
  };
117
+ /**
118
+ * Pega apenas números, convertendo strings para números e retornarndo apenas o maior inteiro encontrado.
119
+ * @param value - O valor a ser processado.
120
+ * @returns O maior número inteiro encontrado ou 0 se nenhum número for encontrado.
121
+ */
122
+ AgroNumberUtils.getNearInteger = function (value) {
123
+ if (typeof value === "number") {
124
+ return Math.floor(value);
125
+ }
126
+ if (typeof value === "string") {
127
+ var numbers = value.match(/\d+/g);
128
+ if (numbers && numbers.length > 0) {
129
+ return Math.max.apply(Math, __spread(numbers.map(Number)));
130
+ }
131
+ }
132
+ return 0;
133
+ };
116
134
  return AgroNumberUtils;
117
135
  }());
118
136
  export { AgroNumberUtils };
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1udW1iZXItdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLW51bWJlci11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFeEM7SUFBQTtJQWtIQSxDQUFDO0lBakhHOzs7O09BSUc7SUFDSSxpQ0FBaUIsR0FBeEIsVUFBeUIsR0FBUTtRQUM3QixPQUFPLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLG9DQUFvQixHQUEzQixVQUE0QixHQUFRO1FBQ2hDLE9BQU8sQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksc0JBQU0sR0FBYixVQUFjLEtBQWE7UUFDM0IsT0FBTyxLQUFLLEdBQUcsWUFBWSxDQUFDLEdBQUcsS0FBSyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLHFCQUFLLEdBQVosVUFBYSxLQUFhO1FBQzFCLE9BQU8sS0FBSyxHQUFHLFlBQVksQ0FBQyxHQUFHLEtBQUssWUFBWSxDQUFDLElBQUksQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksMEJBQVUsR0FBakIsVUFBa0IsT0FBZSxFQUFFLEtBQWE7UUFDNUMsSUFBSSxLQUFLLEtBQUssWUFBWSxDQUFDLElBQUksRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7U0FDakQ7UUFDTCxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSwwQkFBVSxHQUFqQixVQUFrQixLQUFhLEVBQUUsUUFBd0IsRUFBRSxNQUF3QjtRQUFsRCx5QkFBQSxFQUFBLGdCQUF3QjtRQUFFLHVCQUFBLEVBQUEsZ0JBQXdCO1FBQy9FLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtZQUNqQyxLQUFLLEVBQUUsVUFBVTtZQUNqQixRQUFRLEVBQUUsUUFBUTtTQUNyQixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSw2QkFBYSxHQUFwQixVQUFxQixHQUFXLEVBQUUsR0FBVztRQUN6QyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUU7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7U0FDbEU7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksdUJBQU8sR0FBZCxVQUFlLEtBQWE7UUFDeEIsSUFBSSxLQUFLLElBQUksWUFBWSxDQUFDLEdBQUcsRUFBRTtZQUMzQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2RCxJQUFJLEtBQUssR0FBRyxDQUFDLEtBQUssWUFBWSxDQUFDLElBQUksRUFBRTtnQkFDakMsT0FBTyxLQUFLLENBQUM7YUFDaEI7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSx1QkFBTyxHQUFkLFVBQWUsS0FBYSxFQUFFLFFBQW1DO1FBQW5DLHlCQUFBLEVBQUEsV0FBbUIsWUFBWSxDQUFDLEdBQUc7UUFDN0QsSUFBSSxRQUFRLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRTtZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7U0FDeEU7UUFDRCxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDL0MsQ0FBQztJQUNMLHNCQUFDO0FBQUQsQ0FBQyxBQWxIRCxJQWtIQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDbGFzc2UgZGUgdXRpbGl0w6FyaW9zIHBhcmEgb3BlcmHDp8O1ZXMgY29tIG7Dum1lcm9zLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEFHUk9fTlVNQkVSUyB9IGZyb20gXCIuLi9lbnVtc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFncm9OdW1iZXJVdGlscyB7XHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG7Dum1lcm8gw6kgbnVsbyBvdSBpbmRlZmluaWRvLlxyXG4gICAgICogQHBhcmFtIG51bSAtIE8gbsO6bWVybyBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG7Dum1lcm8gZm9yIG51bG8gb3UgaW5kZWZpbmlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOdWxsT3JVbmRlZmluZWQobnVtOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gbnVtID09PSBudWxsIHx8IG51bSA9PT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gbsO6bWVybyBuw6NvIMOpIG51bG8gZSBuw6NvIMOpIGluZGVmaW5pZG8uXHJcbiAgICAgKiBAcGFyYW0gbnVtIC0gTyBuw7ptZXJvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gbsO6bWVybyBuw6NvIGZvciBudWxvIGUgbsOjbyBmb3IgaW5kZWZpbmlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOb3ROdWxsT3JVbmRlZmluZWQobnVtOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9OdW1iZXJVdGlscy5pc051bGxPclVuZGVmaW5lZChudW0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gbsO6bWVybyDDqSBwYXIuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlIE8gbsO6bWVybyBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBmb3IgcGFyLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0V2ZW4odmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZhbHVlICUgQUdST19OVU1CRVJTLlRXTyA9PT0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBuw7ptZXJvIMOpIMOtbXBhci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgTyBuw7ptZXJvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGZvciDDrW1wYXIsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzT2RkKHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB2YWx1ZSAlIEFHUk9fTlVNQkVSUy5UV08gIT09IEFHUk9fTlVNQkVSUy5aRVJPO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYSBhIHBvcmNlbnRhZ2VtIGRlIHVtIHZhbG9yIGVtIHJlbGHDp8OjbyBhIHVtIHRvdGFsLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBwYXJ0aWFsIE8gdmFsb3IgcGFyY2lhbC5cclxuICAgICAqIEBwYXJhbSB0b3RhbCBPIHZhbG9yIHRvdGFsLlxyXG4gICAgICogQHJldHVybnMgQSBwb3JjZW50YWdlbSBjYWxjdWxhZGEuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBwZXJjZW50YWdlKHBhcnRpYWw6IG51bWJlciwgdG90YWw6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKHRvdGFsID09PSBBR1JPX05VTUJFUlMuWkVSTykge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPIHRvdGFsIG7Do28gcG9kZSBzZXIgemVyby5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIChwYXJ0aWFsIC8gdG90YWwpICogQUdST19OVU1CRVJTLk9ORV9IVU5EUkVEO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9ybWF0YSB1bSBuw7ptZXJvIHBhcmEgbyBmb3JtYXRvIG1vbmV0w6FyaW8uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlIE8gbsO6bWVybyBhIHNlciBmb3JtYXRhZG8uXHJcbiAgICAgKiBAcGFyYW0gY3VycmVuY3kgTyBzw61tYm9sbyBkYSBtb2VkYSAocGFkcsOjbzogXCJCUkxcIikuXHJcbiAgICAgKiBAcGFyYW0gbG9jYWxlIE8gY8OzZGlnbyBkYSBsb2NhbGlkYWRlIChwYWRyw6NvOiBcInB0LUJSXCIpLlxyXG4gICAgICogQHJldHVybnMgVW1hIHN0cmluZyBubyBmb3JtYXRvIG1vbmV0w6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyB0b0N1cnJlbmN5KHZhbHVlOiBudW1iZXIsIGN1cnJlbmN5OiBzdHJpbmcgPSBcIkJSTFwiLCBsb2NhbGU6IHN0cmluZyA9IFwicHQtQlJcIik6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NhbGUsIHtcclxuICAgICAgICAgICAgc3R5bGU6IFwiY3VycmVuY3lcIixcclxuICAgICAgICAgICAgY3VycmVuY3k6IGN1cnJlbmN5LFxyXG4gICAgICAgIH0pLmZvcm1hdCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXJhIHVtIG7Dum1lcm8gYWxlYXTDs3JpbyBubyBpbnRlcnZhbG8gZXNwZWNpZmljYWRvLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBtaW4gTyB2YWxvciBtw61uaW1vIChpbmNsdXNpdm8pLlxyXG4gICAgICogQHBhcmFtIG1heCBPIHZhbG9yIG3DoXhpbW8gKGV4Y2x1c2l2bykuXHJcbiAgICAgKiBAcmV0dXJucyBVbSBuw7ptZXJvIGFsZWF0w7NyaW8gbm8gaW50ZXJ2YWxvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgcmFuZG9tSW5SYW5nZShtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChtYXggPD0gbWluKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk8gdmFsb3IgbcOheGltbyBkZXZlIHNlciBtYWlvciBxdWUgbyBtw61uaW1vLlwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSArIG1pbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG7Dum1lcm8gw6kgcHJpbW8uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlIE8gbsO6bWVybyBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBmb3IgcHJpbW8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzUHJpbWUodmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSA8PSBBR1JPX05VTUJFUlMuT05FKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IEFHUk9fTlVNQkVSUy5UV087IGkgPD0gTWF0aC5zcXJ0KHZhbHVlKTsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSAlIGkgPT09IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcnJlZG9uZGEgdW0gbsO6bWVybyBwYXJhIGBuYCBjYXNhcyBkZWNpbWFpcy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgTyBuw7ptZXJvIGEgc2VyIGFycmVkb25kYWRvLlxyXG4gICAgICogQHBhcmFtIGRlY2ltYWxzIE8gbsO6bWVybyBkZSBjYXNhcyBkZWNpbWFpcyAocGFkcsOjbzogMikuXHJcbiAgICAgKiBAcmV0dXJucyBPIG7Dum1lcm8gYXJyZWRvbmRhZG8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyByb3VuZFRvKHZhbHVlOiBudW1iZXIsIGRlY2ltYWxzOiBudW1iZXIgPSBBR1JPX05VTUJFUlMuVFdPKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoZGVjaW1hbHMgPCBBR1JPX05VTUJFUlMuWkVSTykge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPIG7Dum1lcm8gZGUgY2FzYXMgZGVjaW1haXMgbsOjbyBwb2RlIHNlciBuZWdhdGl2by5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGZhY3RvciA9IE1hdGgucG93KEFHUk9fTlVNQkVSUy5URU4sIGRlY2ltYWxzKTtcclxuICAgICAgICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSAqIGZhY3RvcikgLyBmYWN0b3I7XHJcbiAgICB9XHJcbn1cclxuIl19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1udW1iZXItdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLW51bWJlci11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXhDO0lBQUE7SUF1SUEsQ0FBQztJQXRJRzs7OztPQUlHO0lBQ0ksaUNBQWlCLEdBQXhCLFVBQXlCLEdBQVE7UUFDN0IsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxTQUFTLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxvQ0FBb0IsR0FBM0IsVUFBNEIsR0FBUTtRQUNoQyxPQUFPLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLHNCQUFNLEdBQWIsVUFBYyxLQUFhO1FBQzNCLE9BQU8sS0FBSyxHQUFHLFlBQVksQ0FBQyxHQUFHLEtBQUssWUFBWSxDQUFDLElBQUksQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxxQkFBSyxHQUFaLFVBQWEsS0FBYTtRQUMxQixPQUFPLEtBQUssR0FBRyxZQUFZLENBQUMsR0FBRyxLQUFLLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDBCQUFVLEdBQWpCLFVBQWtCLE9BQWUsRUFBRSxLQUFhO1FBQzVDLElBQUksS0FBSyxLQUFLLFlBQVksQ0FBQyxJQUFJLEVBQUU7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0wsT0FBTyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksMEJBQVUsR0FBakIsVUFBa0IsS0FBYSxFQUFFLFFBQXdCLEVBQUUsTUFBd0I7UUFBbEQseUJBQUEsRUFBQSxnQkFBd0I7UUFBRSx1QkFBQSxFQUFBLGdCQUF3QjtRQUMvRSxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDakMsS0FBSyxFQUFFLFVBQVU7WUFDakIsUUFBUSxFQUFFLFFBQVE7U0FDckIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksNkJBQWEsR0FBcEIsVUFBcUIsR0FBVyxFQUFFLEdBQVc7UUFDekMsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1NBQ2xFO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLHVCQUFPLEdBQWQsVUFBZSxLQUFhO1FBQ3hCLElBQUksS0FBSyxJQUFJLFlBQVksQ0FBQyxHQUFHLEVBQUU7WUFDM0IsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdkQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxLQUFLLFlBQVksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2pDLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksdUJBQU8sR0FBZCxVQUFlLEtBQWEsRUFBRSxRQUFtQztRQUFuQyx5QkFBQSxFQUFBLFdBQW1CLFlBQVksQ0FBQyxHQUFHO1FBQzdELElBQUksUUFBUSxHQUFHLFlBQVksQ0FBQyxJQUFJLEVBQUU7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsSUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQy9DLENBQUM7SUFHRDs7OztPQUlHO0lBQ0ksOEJBQWMsR0FBckIsVUFBc0IsS0FBVTtRQUM1QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7UUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixJQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUMvQixPQUFPLElBQUksQ0FBQyxHQUFHLE9BQVIsSUFBSSxXQUFRLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUU7YUFDM0M7U0FDSjtRQUVELE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUNMLHNCQUFDO0FBQUQsQ0FBQyxBQXZJRCxJQXVJQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDbGFzc2UgZGUgdXRpbGl0w6FyaW9zIHBhcmEgb3BlcmHDp8O1ZXMgY29tIG7Dum1lcm9zLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEFHUk9fTlVNQkVSUyB9IGZyb20gXCIuLi9lbnVtc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFncm9OdW1iZXJVdGlscyB7XHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG7Dum1lcm8gw6kgbnVsbyBvdSBpbmRlZmluaWRvLlxyXG4gICAgICogQHBhcmFtIG51bSAtIE8gbsO6bWVybyBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG7Dum1lcm8gZm9yIG51bG8gb3UgaW5kZWZpbmlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOdWxsT3JVbmRlZmluZWQobnVtOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gbnVtID09PSBudWxsIHx8IG51bSA9PT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gbsO6bWVybyBuw6NvIMOpIG51bG8gZSBuw6NvIMOpIGluZGVmaW5pZG8uXHJcbiAgICAgKiBAcGFyYW0gbnVtIC0gTyBuw7ptZXJvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gbsO6bWVybyBuw6NvIGZvciBudWxvIGUgbsOjbyBmb3IgaW5kZWZpbmlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOb3ROdWxsT3JVbmRlZmluZWQobnVtOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9OdW1iZXJVdGlscy5pc051bGxPclVuZGVmaW5lZChudW0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gbsO6bWVybyDDqSBwYXIuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlIE8gbsO6bWVybyBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBmb3IgcGFyLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0V2ZW4odmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZhbHVlICUgQUdST19OVU1CRVJTLlRXTyA9PT0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBuw7ptZXJvIMOpIMOtbXBhci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgTyBuw7ptZXJvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGZvciDDrW1wYXIsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzT2RkKHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB2YWx1ZSAlIEFHUk9fTlVNQkVSUy5UV08gIT09IEFHUk9fTlVNQkVSUy5aRVJPO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYSBhIHBvcmNlbnRhZ2VtIGRlIHVtIHZhbG9yIGVtIHJlbGHDp8OjbyBhIHVtIHRvdGFsLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBwYXJ0aWFsIE8gdmFsb3IgcGFyY2lhbC5cclxuICAgICAqIEBwYXJhbSB0b3RhbCBPIHZhbG9yIHRvdGFsLlxyXG4gICAgICogQHJldHVybnMgQSBwb3JjZW50YWdlbSBjYWxjdWxhZGEuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBwZXJjZW50YWdlKHBhcnRpYWw6IG51bWJlciwgdG90YWw6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKHRvdGFsID09PSBBR1JPX05VTUJFUlMuWkVSTykge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPIHRvdGFsIG7Do28gcG9kZSBzZXIgemVyby5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIChwYXJ0aWFsIC8gdG90YWwpICogQUdST19OVU1CRVJTLk9ORV9IVU5EUkVEO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9ybWF0YSB1bSBuw7ptZXJvIHBhcmEgbyBmb3JtYXRvIG1vbmV0w6FyaW8uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlIE8gbsO6bWVybyBhIHNlciBmb3JtYXRhZG8uXHJcbiAgICAgKiBAcGFyYW0gY3VycmVuY3kgTyBzw61tYm9sbyBkYSBtb2VkYSAocGFkcsOjbzogXCJCUkxcIikuXHJcbiAgICAgKiBAcGFyYW0gbG9jYWxlIE8gY8OzZGlnbyBkYSBsb2NhbGlkYWRlIChwYWRyw6NvOiBcInB0LUJSXCIpLlxyXG4gICAgICogQHJldHVybnMgVW1hIHN0cmluZyBubyBmb3JtYXRvIG1vbmV0w6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyB0b0N1cnJlbmN5KHZhbHVlOiBudW1iZXIsIGN1cnJlbmN5OiBzdHJpbmcgPSBcIkJSTFwiLCBsb2NhbGU6IHN0cmluZyA9IFwicHQtQlJcIik6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NhbGUsIHtcclxuICAgICAgICAgICAgc3R5bGU6IFwiY3VycmVuY3lcIixcclxuICAgICAgICAgICAgY3VycmVuY3k6IGN1cnJlbmN5LFxyXG4gICAgICAgIH0pLmZvcm1hdCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXJhIHVtIG7Dum1lcm8gYWxlYXTDs3JpbyBubyBpbnRlcnZhbG8gZXNwZWNpZmljYWRvLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBtaW4gTyB2YWxvciBtw61uaW1vIChpbmNsdXNpdm8pLlxyXG4gICAgICogQHBhcmFtIG1heCBPIHZhbG9yIG3DoXhpbW8gKGV4Y2x1c2l2bykuXHJcbiAgICAgKiBAcmV0dXJucyBVbSBuw7ptZXJvIGFsZWF0w7NyaW8gbm8gaW50ZXJ2YWxvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgcmFuZG9tSW5SYW5nZShtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChtYXggPD0gbWluKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk8gdmFsb3IgbcOheGltbyBkZXZlIHNlciBtYWlvciBxdWUgbyBtw61uaW1vLlwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSArIG1pbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG7Dum1lcm8gw6kgcHJpbW8uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlIE8gbsO6bWVybyBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBmb3IgcHJpbW8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzUHJpbWUodmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSA8PSBBR1JPX05VTUJFUlMuT05FKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IEFHUk9fTlVNQkVSUy5UV087IGkgPD0gTWF0aC5zcXJ0KHZhbHVlKTsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSAlIGkgPT09IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcnJlZG9uZGEgdW0gbsO6bWVybyBwYXJhIGBuYCBjYXNhcyBkZWNpbWFpcy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgTyBuw7ptZXJvIGEgc2VyIGFycmVkb25kYWRvLlxyXG4gICAgICogQHBhcmFtIGRlY2ltYWxzIE8gbsO6bWVybyBkZSBjYXNhcyBkZWNpbWFpcyAocGFkcsOjbzogMikuXHJcbiAgICAgKiBAcmV0dXJucyBPIG7Dum1lcm8gYXJyZWRvbmRhZG8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyByb3VuZFRvKHZhbHVlOiBudW1iZXIsIGRlY2ltYWxzOiBudW1iZXIgPSBBR1JPX05VTUJFUlMuVFdPKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoZGVjaW1hbHMgPCBBR1JPX05VTUJFUlMuWkVSTykge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPIG7Dum1lcm8gZGUgY2FzYXMgZGVjaW1haXMgbsOjbyBwb2RlIHNlciBuZWdhdGl2by5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGZhY3RvciA9IE1hdGgucG93KEFHUk9fTlVNQkVSUy5URU4sIGRlY2ltYWxzKTtcclxuICAgICAgICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSAqIGZhY3RvcikgLyBmYWN0b3I7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVnYSBhcGVuYXMgbsO6bWVyb3MsIGNvbnZlcnRlbmRvIHN0cmluZ3MgcGFyYSBuw7ptZXJvcyBlIHJldG9ybmFybmRvIGFwZW5hcyBvIG1haW9yIGludGVpcm8gZW5jb250cmFkby5cclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIE8gdmFsb3IgYSBzZXIgcHJvY2Vzc2Fkby5cclxuICAgICAqIEByZXR1cm5zIE8gbWFpb3IgbsO6bWVybyBpbnRlaXJvIGVuY29udHJhZG8gb3UgMCBzZSBuZW5odW0gbsO6bWVybyBmb3IgZW5jb250cmFkby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldE5lYXJJbnRlZ2VyKHZhbHVlOiBhbnkpOiBudW1iZXIge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IodmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJzID0gdmFsdWUubWF0Y2goL1xcZCsvZyk7XHJcbiAgICAgICAgICAgIGlmIChudW1iZXJzICYmIG51bWJlcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KC4uLm51bWJlcnMubWFwKE51bWJlcikpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gMDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -13,6 +13,9 @@ var AgroObjectStringifier = /** @class */ (function () {
13
13
  function mapField(field) {
14
14
  var value = AgroObjectStringifier.resolvePath(obj, field);
15
15
  if (usePipes === null || usePipes === void 0 ? void 0 : usePipes.hasOwnProperty(field)) {
16
+ if (AgroStringUtils.isString(usePipes[field])) {
17
+ return usePipes[field].toString();
18
+ }
16
19
  return usePipes[field].transform(value);
17
20
  }
18
21
  return value !== null && value !== void 0 ? value : "";
@@ -32,4 +35,4 @@ var AgroObjectStringifier = /** @class */ (function () {
32
35
  return AgroObjectStringifier;
33
36
  }());
34
37
  export { AgroObjectStringifier };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1vYmplY3Qtc3RyaW5naWZpZXIuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLW9iamVjdC1zdHJpbmdpZmllci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFNNUQ7SUFBQTtJQStCQSxDQUFDO0lBOUJHOzs7Ozs7T0FNRztJQUNJLGtDQUFZLEdBQW5CLFVBQW9CLFNBQWlCLEVBQUUsTUFBZ0IsRUFBRSxHQUFRLEVBQUUsUUFBbUI7UUFDbEYsU0FBUyxRQUFRLENBQUMsS0FBYTtZQUMzQixJQUFNLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVELElBQUksUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLGNBQWMsQ0FBQyxLQUFLLEdBQUc7Z0JBQ2pDLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMzQztZQUNELE9BQU8sS0FBSyxhQUFMLEtBQUssY0FBTCxLQUFLLEdBQUksRUFBRSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxTQUFTLFdBQVcsQ0FBQyxDQUFrQjtZQUNuQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFJLFNBQVMsTUFBRyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELGtFQUFrRTtJQUNuRCxpQ0FBVyxHQUExQixVQUEyQixHQUFRLEVBQUUsSUFBWTtRQUM3QyxTQUFTLE9BQU8sQ0FBQyxHQUFRLEVBQUUsR0FBVztZQUNsQyxPQUFPLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRyxHQUFHLEVBQUU7UUFDdEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDTCw0QkFBQztBQUFELENBQUMsQUEvQkQsSUErQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlVHJhbnNmb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWdyb1N0cmluZ1V0aWxzIH0gZnJvbSBcIi4vYWdyby1zdHJpbmctdXRpbHMuY2xhc3NcIjtcclxuXHJcbmV4cG9ydCB0eXBlIFVzZVBpcGVzID0ge1xyXG4gICAgW2tleTogc3RyaW5nXTogUGlwZVRyYW5zZm9ybTtcclxufTtcclxuXHJcbmV4cG9ydCBjbGFzcyBBZ3JvT2JqZWN0U3RyaW5naWZpZXIge1xyXG4gICAgLyoqXHJcbiAgICAgKiBGb3JtYXRhIHVtIG9iamV0byBjb25jYXRlbmFuZG8gdmFsb3JlcyBzZWd1bmRvIGFzIGNoYXZlcyBlIHBpcGVzIGluZm9ybWFkb3MuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHNlcGFyYXRvciBTZXBhcmFkb3IgZW50cmUgb3MgdmFsb3JlcyAoZXg6IFwiLVwiKVxyXG4gICAgICogQHBhcmFtIGZpZWxkcyBDYW1wb3MgYSBleHRyYWlyLiBQb2RlbSBjb250ZXIgc3VicHJvcHJpZWRhZGVzIChcInByb3ByaWVkYWRlLnN1YlByb3ByaWVkYWRlXCIpIGUgcGlwZXMgKFwicHJvcHJpZWRhZGV8bm9tZURhUGlwZTphcmcxOmFyZzJcIilcclxuICAgICAqIEBwYXJhbSBvYmogT2JqZXRvIG9yaWdlbVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZm9ybWF0T2JqZWN0KHNlcGFyYXRvcjogc3RyaW5nLCBmaWVsZHM6IHN0cmluZ1tdLCBvYmo6IGFueSwgdXNlUGlwZXM/OiBVc2VQaXBlcyk6IHN0cmluZyB7XHJcbiAgICAgICAgZnVuY3Rpb24gbWFwRmllbGQoZmllbGQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gQWdyb09iamVjdFN0cmluZ2lmaWVyLnJlc29sdmVQYXRoKG9iaiwgZmllbGQpO1xyXG4gICAgICAgICAgICBpZiAodXNlUGlwZXM/Lmhhc093blByb3BlcnR5KGZpZWxkKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVzZVBpcGVzW2ZpZWxkXS50cmFuc2Zvcm0odmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/PyBcIlwiO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gZmlsdGVyVmFsaWQodjogc3RyaW5nIHwgbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgdiA9PT0gXCJudW1iZXJcIiB8fCBBZ3JvU3RyaW5nVXRpbHMuaXNWYWxpZCh2KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmaWVsZHMubWFwKG1hcEZpZWxkKS5maWx0ZXIoZmlsdGVyVmFsaWQpLmpvaW4oYCAke3NlcGFyYXRvcn0gYCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFJlc29sdmUgdW0gY2FtaW5obyB0aXBvIFwiZW1wcmVzYS5jYXJnb1wiIGRlbnRybyBkZSB1bSBvYmpldG8gKi9cclxuICAgIHByaXZhdGUgc3RhdGljIHJlc29sdmVQYXRoKG9iajogYW55LCBwYXRoOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgICAgIGZ1bmN0aW9uIHJlZHVjZXIoYWNjOiBhbnksIGtleTogc3RyaW5nKTogYW55IHtcclxuICAgICAgICAgICAgcmV0dXJuIGFjYz8uW2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwYXRoLnNwbGl0KFwiLlwiKS5yZWR1Y2UocmVkdWNlciwgb2JqKTtcclxuICAgIH1cclxufVxyXG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1vYmplY3Qtc3RyaW5naWZpZXIuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLW9iamVjdC1zdHJpbmdpZmllci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFNNUQ7SUFBQTtJQW9DQSxDQUFDO0lBbkNHOzs7Ozs7T0FNRztJQUNJLGtDQUFZLEdBQW5CLFVBQW9CLFNBQWlCLEVBQUUsTUFBZ0IsRUFBRSxHQUFRLEVBQUUsUUFBbUI7UUFDbEYsU0FBUyxRQUFRLENBQUMsS0FBYTtZQUMzQixJQUFNLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVELElBQUksUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLGNBQWMsQ0FBQyxLQUFLLEdBQUc7Z0JBRWpDLElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDM0MsT0FBUSxRQUFRLENBQUMsS0FBSyxDQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7aUJBQ2pEO2dCQUNELE9BQVEsUUFBUSxDQUFDLEtBQUssQ0FBbUIsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7YUFFOUQ7WUFDRCxPQUFPLEtBQUssYUFBTCxLQUFLLGNBQUwsS0FBSyxHQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO1FBRUQsU0FBUyxXQUFXLENBQUMsQ0FBa0I7WUFDbkMsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBSSxTQUFTLE1BQUcsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxrRUFBa0U7SUFDbkQsaUNBQVcsR0FBMUIsVUFBMkIsR0FBUSxFQUFFLElBQVk7UUFDN0MsU0FBUyxPQUFPLENBQUMsR0FBUSxFQUFFLEdBQVc7WUFDbEMsT0FBTyxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUcsR0FBRyxFQUFFO1FBQ3RCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0wsNEJBQUM7QUFBRCxDQUFDLEFBcENELElBb0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZVRyYW5zZm9ybSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFncm9TdHJpbmdVdGlscyB9IGZyb20gXCIuL2Fncm8tc3RyaW5nLXV0aWxzLmNsYXNzXCI7XHJcblxyXG5leHBvcnQgdHlwZSBVc2VQaXBlcyA9IHtcclxuICAgIFtrZXk6IHN0cmluZ106IFBpcGVUcmFuc2Zvcm0gfCBzdHJpbmc7XHJcbn07XHJcblxyXG5leHBvcnQgY2xhc3MgQWdyb09iamVjdFN0cmluZ2lmaWVyIHtcclxuICAgIC8qKlxyXG4gICAgICogRm9ybWF0YSB1bSBvYmpldG8gY29uY2F0ZW5hbmRvIHZhbG9yZXMgc2VndW5kbyBhcyBjaGF2ZXMgZSBwaXBlcyBpbmZvcm1hZG9zLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBzZXBhcmF0b3IgU2VwYXJhZG9yIGVudHJlIG9zIHZhbG9yZXMgKGV4OiBcIi1cIilcclxuICAgICAqIEBwYXJhbSBmaWVsZHMgQ2FtcG9zIGEgZXh0cmFpci4gUG9kZW0gY29udGVyIHN1YnByb3ByaWVkYWRlcyAoXCJwcm9wcmllZGFkZS5zdWJQcm9wcmllZGFkZVwiKSBlIHBpcGVzIChcInByb3ByaWVkYWRlfG5vbWVEYVBpcGU6YXJnMTphcmcyXCIpXHJcbiAgICAgKiBAcGFyYW0gb2JqIE9iamV0byBvcmlnZW1cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGZvcm1hdE9iamVjdChzZXBhcmF0b3I6IHN0cmluZywgZmllbGRzOiBzdHJpbmdbXSwgb2JqOiBhbnksIHVzZVBpcGVzPzogVXNlUGlwZXMpOiBzdHJpbmcge1xyXG4gICAgICAgIGZ1bmN0aW9uIG1hcEZpZWxkKGZpZWxkOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IEFncm9PYmplY3RTdHJpbmdpZmllci5yZXNvbHZlUGF0aChvYmosIGZpZWxkKTtcclxuICAgICAgICAgICAgaWYgKHVzZVBpcGVzPy5oYXNPd25Qcm9wZXJ0eShmaWVsZCkpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoQWdyb1N0cmluZ1V0aWxzLmlzU3RyaW5nKHVzZVBpcGVzW2ZpZWxkXSkpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHVzZVBpcGVzW2ZpZWxkXSBhcyBzdHJpbmcpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKHVzZVBpcGVzW2ZpZWxkXSBhcyBQaXBlVHJhbnNmb3JtKS50cmFuc2Zvcm0odmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPz8gXCJcIjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGZpbHRlclZhbGlkKHY6IHN0cmluZyB8IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIHYgPT09IFwibnVtYmVyXCIgfHwgQWdyb1N0cmluZ1V0aWxzLmlzVmFsaWQodik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZmllbGRzLm1hcChtYXBGaWVsZCkuZmlsdGVyKGZpbHRlclZhbGlkKS5qb2luKGAgJHtzZXBhcmF0b3J9IGApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBSZXNvbHZlIHVtIGNhbWluaG8gdGlwbyBcImVtcHJlc2EuY2FyZ29cIiBkZW50cm8gZGUgdW0gb2JqZXRvICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyByZXNvbHZlUGF0aChvYmo6IGFueSwgcGF0aDogc3RyaW5nKTogYW55IHtcclxuICAgICAgICBmdW5jdGlvbiByZWR1Y2VyKGFjYzogYW55LCBrZXk6IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhY2M/LltrZXldO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcGF0aC5zcGxpdChcIi5cIikucmVkdWNlKHJlZHVjZXIsIG9iaik7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -119,6 +119,20 @@ var AgroObjectUtils = /** @class */ (function () {
119
119
  }
120
120
  return true;
121
121
  };
122
+ AgroObjectUtils.compareArrays = function (arr1, arr2) {
123
+ if (arr1.length !== arr2.length) {
124
+ return false;
125
+ }
126
+ return arr1.every(function (v, i) { return AgroObjectUtils.isEqual(v, arr2[i]); });
127
+ };
128
+ AgroObjectUtils.compareObjects = function (obj1, obj2) {
129
+ var keys1 = Object.keys(obj1);
130
+ var keys2 = Object.keys(obj2);
131
+ if (keys1.length !== keys2.length) {
132
+ return false;
133
+ }
134
+ return keys1.every(function (key) { return obj2.hasOwnProperty(key) && AgroObjectUtils.isEqual(obj1[key], obj2[key]); });
135
+ };
122
136
  /**
123
137
  * Compara dois objetos para verificar se são iguais.
124
138
  * @param obj1 - O primeiro objeto a ser comparado.
@@ -126,7 +140,19 @@ var AgroObjectUtils = /** @class */ (function () {
126
140
  * @returns True se os objetos forem iguais, false caso contrário.
127
141
  */
128
142
  AgroObjectUtils.isEqual = function (obj1, obj2) {
129
- return JSON.stringify(obj1) === JSON.stringify(obj2);
143
+ if (obj1 === obj2) {
144
+ return true;
145
+ }
146
+ if (obj1 === null || obj2 === null || typeof obj1 !== "object" || typeof obj2 !== "object") {
147
+ return false;
148
+ }
149
+ if (Array.isArray(obj1) && Array.isArray(obj2)) {
150
+ return this.compareArrays(obj1, obj2);
151
+ }
152
+ if (Array.isArray(obj1) || Array.isArray(obj2)) {
153
+ return false;
154
+ }
155
+ return this.compareObjects(obj1, obj2);
130
156
  };
131
157
  /**
132
158
  * Verifica se um objeto é nulo.
@@ -277,4 +303,4 @@ var AgroObjectUtils = /** @class */ (function () {
277
303
  return AgroObjectUtils;
278
304
  }());
279
305
  export { AgroObjectUtils };
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1vYmplY3QtdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLW9iamVjdC11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV4QyxPQUFPLEVBQUUsZUFBZSxJQUFJLEdBQUcsRUFBRSxlQUFlLElBQUksV0FBVyxFQUFFLENBQUM7QUFHbEU7O0dBRUc7QUFDSDtJQUFBO0lBdVNBLENBQUM7SUF0U0c7Ozs7T0FJRztJQUNJLGlDQUFpQixHQUF4QixVQUF5QixHQUFRO1FBQzdCLE9BQU8sR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksb0NBQW9CLEdBQTNCLFVBQTRCLEdBQVE7UUFDaEMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHdCQUFRLEdBQWYsVUFBZ0IsR0FBUTtRQUNwQixPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHdCQUFRLEdBQWYsVUFBZ0IsR0FBUTtRQUNwQixPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHlCQUFTLEdBQWhCLFVBQWlCLEdBQVE7UUFDckIsT0FBTyxPQUFPLEdBQUcsS0FBSyxTQUFTLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSwwQkFBVSxHQUFqQixVQUFrQixHQUFRO1FBQ3RCLE9BQU8sT0FBTyxHQUFHLEtBQUssVUFB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LENBQUMsQ0FBQztZQUNqQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDaEM7YUFBTSxJQUFJLElBQUksS0FBSyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQ2pDLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ3BGO2FBQU07WUFDSCxPQUFPLENBQUMsQ0FBQztTQUNaO0lBQ0wsQ0FBQztJQUNMLHNCQUFDO0FBQUQsQ0FBQyxBQXZTRCxJQXVTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IEFHUk9fTlVNQkVSUyB9IGZyb20gXCIuLi9lbnVtc1wiO1xyXG5cclxuZXhwb3J0IHsgQWdyb09iamVjdFV0aWxzIGFzIEFPVSwgQWdyb09iamVjdFV0aWxzIGFzIE9iamVjdFV0aWxzIH07XHJcblxyXG5cclxuLyoqXHJcbiAqIENsYXNzZSB1dGlsaXTDoXJpYSBwYXJhIG9wZXJhw6fDtWVzIGRlIG9iamV0by5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBBZ3JvT2JqZWN0VXRpbHMge1xyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgbnVsbyBvdSBpbmRlZmluaWRvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciBudWxvIG91IGluZGVmaW5pZG8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTnVsbE9yVW5kZWZpbmVkKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIG9iaiA9PT0gbnVsbCB8fCBvYmogPT09IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byBuw6NvIMOpIG51bG8gZSBuw6NvIMOpIGluZGVmaW5pZG8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gbsOjbyBmb3IgbnVsbyBlIG7Do28gZm9yIGluZGVmaW5pZG8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTm90TnVsbE9yVW5kZWZpbmVkKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFBZ3JvT2JqZWN0VXRpbHMuaXNOdWxsT3JVbmRlZmluZWQob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bWEgc3RyaW5nLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bWEgc3RyaW5nLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc1N0cmluZyhvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtIG7Dum1lcm8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtIG7Dum1lcm8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTnVtYmVyKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBvYmogPT09IFwibnVtYmVyXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gYm9vbGVhbm8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtIGJvb2xlYW5vLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0Jvb2xlYW4ob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJib29sZWFuXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW1hIGZ1bsOnw6NvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bWEgZnVuw6fDo28sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzRnVuY3Rpb24ob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJmdW5jdGlvblwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtIGFycmF5LlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bSBhcnJheSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNBcnJheShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSBvIHZhbG9yIGluZm9ybWFkbyDDqSB1bSBvYmpldG8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtIG9iamV0bywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNPYmplY3Qob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bWEgZGF0YS5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW1hIGRhdGEsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzRGF0ZShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtIGVycm8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtIGVycm8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzRXJyb3Iob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgRXJyb3I7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW1hIGV4cHJlc3PDo28gcmVndWxhci5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW1hIGV4cHJlc3PDo28gcmVndWxhciwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNSZWdFeHAob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgUmVnRXhwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtIHZhbG9yIHByaW1pdGl2by5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gdmFsb3IgcHJpbWl0aXZvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc1ByaW1pdGl2ZShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBZ3JvT2JqZWN0VXRpbHMuaXNTdHJpbmcob2JqKSB8fCBBZ3JvT2JqZWN0VXRpbHMuaXNOdW1iZXIob2JqKSB8fCBBZ3JvT2JqZWN0VXRpbHMuaXNCb29sZWFuKG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB0b2RvcyBvcyB2YWxvcmVzIGRlIHVtIG9iamV0byBzw6NvIG51bG9zIG91IGluZGVmaW5pZG9zLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIHRvZG9zIG9zIHZhbG9yZXMgZG8gb2JqZXRvIGZvcmVtIG51bG9zIG91IGluZGVmaW5pZG9zLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBhbGxOdWxsKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFBZ3JvT2JqZWN0VXRpbHMuaXNPYmplY3Qob2JqKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcclxuICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpICYmICFBZ3JvT2JqZWN0VXRpbHMuaXNOdWxsT3JVbmRlZmluZWQob2JqW2tleV0pKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcGFyYSBkb2lzIG9iamV0b3MgcGFyYSB2ZXJpZmljYXIgc2Ugc8OjbyBpZ3VhaXMuXHJcbiAgICAgKiBAcGFyYW0gb2JqMSAtIE8gcHJpbWVpcm8gb2JqZXRvIGEgc2VyIGNvbXBhcmFkby5cclxuICAgICAqIEBwYXJhbSBvYmoyIC0gTyBzZWd1bmRvIG9iamV0byBhIHNlciBjb21wYXJhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG9zIG9iamV0b3MgZm9yZW0gaWd1YWlzLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0VxdWFsKG9iajE6IGFueSwgb2JqMjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqMSkgPT09IEpTT04uc3RyaW5naWZ5KG9iajIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIG51bG8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIG51bG8gb3UgdW0gb2JqZXRvIHZhemlvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc051bGwob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gb2JqID09PSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIG7Do28gw6kgbnVsby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBuw6NvIGZvciBudWxvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc05vdE51bGwob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9PYmplY3RVdGlscy5pc051bGwob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnZlcnRlIHVtIG9iamV0byBwYXJhIHVtYSBzdHJpbmcgSlNPTi5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciBjb252ZXJ0aWRvLlxyXG4gICAgICogQHJldHVybnMgQSBzdHJpbmcgSlNPTiByZXByZXNlbnRhbmRvIG8gb2JqZXRvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgdG9KU09OKG9iajogYW55KTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byBuw6NvIMOpIHZhemlvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIG7Do28gZm9yIHZhemlvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc05vdEVtcHR5KG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFBZ3JvT2JqZWN0VXRpbHMuaXNPYmplY3Qob2JqKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoICE9PSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB2YXppby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdmF6aW8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzRW1wdHkob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9PYmplY3RVdGlscy5pc05vdEVtcHR5KG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gbsOjbyBlc3TDoSB2YXppbyBlIGNvbnTDqW0gdW1hIGRldGVybWluYWRhIHByb3ByaWVkYWRlLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcGFyYW0gcHJvcGVydHkgLSBBIHByb3ByaWVkYWRlIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIG7Do28gZXN0aXZlciB2YXppbyBlIGNvbnRpdmVyIGEgcHJvcHJpZWRhZGUsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGNvbnRhaW5zUHJvcGVydHkob2JqOiBhbnksIHByb3BlcnR5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQWdyb09iamVjdFV0aWxzLmlzTm90RW1wdHkob2JqKSAmJiBvYmouaGFzT3duUHJvcGVydHkocHJvcGVydHkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgbyBwYXLDom1ldHJvIHJlY2ViaWRvIMOpIHVtIG9iamV0byBlIHNlIGVsZSBjb250w6ltIGEgcHJvcHJpZWRhZGUgSUQuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBoYXNJZChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBZ3JvT2JqZWN0VXRpbHMuaXNOb3RFbXB0eShvYmopICYmIG9iai5oYXNPd25Qcm9wZXJ0eShcImlkXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgbyB2YWxvciBpbmZvcm1hZG8gbm8gcGFyw6JtZXRybyBwb3NzdWkgYXMgcHJvcHJpZWRhZGVzIGRlIHVtYSBlbnRpZGFkZSBTREwgKGlkIGUgY3JlYXRlZEF0KS5cclxuICAgICAqIEBwYXJhbSBvYmpcclxuICAgICAqIEByZXR1cm5zXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc1NETEVudGl0eShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBZ3JvT2JqZWN0VXRpbHMuaXNOb3RFbXB0eShvYmopICYmIG9iai5oYXNPd25Qcm9wZXJ0eShcImlkXCIpICYmIG9iai5oYXNPd25Qcm9wZXJ0eShcImNyZWF0ZWRBdFwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB2YWxpZG8sIGNvbnNpZGVyYW5kbyBxdWUgaGFqYSBubyBtw61uaW1vIDEgcHJvcHJpZWRhZGVcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzVmFsaWQob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLmxlbmd0aCA+IEFHUk9fTlVNQkVSUy5aRVJPICYmIEFncm9PYmplY3RVdGlscy5pc05vdEVtcHR5KG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgaW52w6FsaWRvLCBjb25zaWRlcmFuZG8gcXVlIG7Do28gaGFqYSBuZW5odW1hIHByb3ByaWVkYWRlXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0ludmFsaWQob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9PYmplY3RVdGlscy5pc1ZhbGlkKG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbmNvbnRyYSB1bWEgcHJvcHJpZWRhZGUgZW0gdW0gb2JqZXRvIHBlbG8gbm9tZSBlIHJldG9ybmEgc2V1IHZhbG9yLlxyXG4gICAgICogU2UgbyB2YWxvciBmb3IgdW0gb2JqZXRvLCByZXRvcm5hIG8gcHLDs3ByaW8gb2JqZXRvLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvYmogTyBvYmpldG8gb25kZSBidXNjYXIuXHJcbiAgICAgKiBAcGFyYW0ga2V5IE8gbm9tZSBkYSBwcm9wcmllZGFkZSBhIHNlciBlbmNvbnRyYWRhLlxyXG4gICAgICogQHBhcmFtIGRlZXBTZWFyY2ggSW5kaWNhIHNlIGEgYnVzY2EgZGV2ZSBzZXIgZW0gcHJvZnVuZGlkYWRlIChwYWRyw6NvOiB0cnVlKS5cclxuICAgICAqIEByZXR1cm5zIE8gdmFsb3IgZGEgcHJvcHJpZWRhZGUsIG91IHVuZGVmaW5lZCBzZSBuw6NvIGZvciBlbmNvbnRyYWRhLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZmluZFByb3BlcnR5KG9iajogUmVjb3JkPHN0cmluZywgYW55Piwga2V5OiBzdHJpbmcsIGRlZXBTZWFyY2g6IGJvb2xlYW4gPSB0cnVlKTogYW55IHtcclxuICAgICAgICBpZiAoQWdyb09iamVjdFV0aWxzLmlzSW52YWxpZChvYmopKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk8gcHJpbWVpcm8gYXJndW1lbnRvIGRldmUgc2VyIHVtIG9iamV0by5cIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoa2V5IGluIG9iaikge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JqW2tleV07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZGVlcFNlYXJjaCkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gb2JqKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KHByb3ApICYmIHR5cGVvZiBvYmpbcHJvcF0gPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBBZ3JvT2JqZWN0VXRpbHMuZmluZFByb3BlcnR5KG9ialtwcm9wXSwga2V5LCBkZWVwU2VhcmNoKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWNlYmUgdW1hIHN0cmluZyAoSlNPTikgZSB0ZW50YSBjb252ZXJ0ZXIgcGFyYSB1bSBvYmpldG8uXHJcbiAgICAgKiBAcGFyYW0gdmFsdWVcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGZyb21TdHJpbmcodmFsdWU6IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodmFsdWUpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0b3JuYSBvIHZhbG9yIGRlIHVtYSBwcm9wcmllZGFkZSBkZSB1bSBvYmpldG8sIGZvcm1hdGFkbyBjb25mb3JtZSBvIHRpcG8gZXNwZWNpZmljYWRvLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gZG8gcXVhbCBhIHByb3ByaWVkYWRlIHNlcsOhIGV4dHJhw61kYS5cclxuICAgICAqIEBwYXJhbSBwYXRoIC0gTyBjYW1pbmhvIGRhIHByb3ByaWVkYWRlIG5vIG9iamV0byAocG9kZSBzZXIgdW0gY2FtaW5obyBhbmluaGFkbykuXHJcbiAgICAgKiBAcGFyYW0gdHlwZSAtIE8gdGlwbyBkZSBmb3JtYXRhw6fDo28gYSBzZXIgYXBsaWNhZGEgKFN0cmluZywgRGF0ZSwgTW9uZXkpLlxyXG4gICAgICogQHJldHVybnMgTyB2YWxvciBmb3JtYXRhZG8gZGEgcHJvcHJpZWRhZGUuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXRQcm9wQW5kRm9ybWF0VmFsdWUob2JqOiBhbnksIHBhdGg6IGFueSwgdHlwZTogRmllbGRUeXBlKSB7XHJcbiAgICAgICAgY29uc3QgciA9IHBhdGguc3BsaXQoXCIuXCIpLnJlZHVjZSgocmVzdWx0OiBhbnksIHByb3A6IGFueSkgPT4gKHJlc3VsdFtwcm9wXSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IHJlc3VsdFtwcm9wXSksIG9iaik7XHJcbiAgICAgICAgaWYgKCFyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodHlwZSA9PT0gRmllbGRUeXBlLlN0cmluZykge1xyXG4gICAgICAgICAgICByZXR1cm4gcjtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IEZpZWxkVHlwZS5EYXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1vbWVudCA9IHJlcXVpcmUoXCJtb21lbnRcIik7XHJcbiAgICAgICAgICAgIHJldHVybiBtb21lbnQocikuZm9ybWF0KFwiTFwiKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IEZpZWxkVHlwZS5Nb25leSkge1xyXG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKHIpLnRvTG9jYWxlU3RyaW5nKFwicHQtQlJcIiwgeyBzdHlsZTogXCJjdXJyZW5jeVwiLCBjdXJyZW5jeTogXCJCUkxcIiB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1vYmplY3QtdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLW9iamVjdC11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV4QyxPQUFPLEVBQUUsZUFBZSxJQUFJLEdBQUcsRUFBRSxlQUFlLElBQUksV0FBVyxFQUFFLENBQUM7QUFFbEU7O0dBRUc7QUFDSDtJQUFBO0lBc1VBLENBQUM7SUFyVUc7Ozs7T0FJRztJQUNJLGlDQUFpQixHQUF4QixVQUF5QixHQUFRO1FBQzdCLE9BQU8sR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksb0NBQW9CLEdBQTNCLFVBQTRCLEdBQVE7UUFDaEMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHdCQUFRLEdBQWYsVUFBZ0IsR0FBUTtRQUNwQixPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHdCQUFRLEdBQWYsVUFBZ0IsR0FBUTtRQUNwQixPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHlCQUFTLEdBQWhCLFVBQWlCLEdBQVE7UUFDckIsT0FBTyxPQUFPLEdBQUcsS0FBSyxTQUFTLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSwwQkFBVSxHQUFqQixVQUFrQixHQUFRO1FBQ3RCLE9BQU8sT0FBTyxHQUFHLEtBQUssVUFB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SUFBSSxDQUFDLENBQUMsRUFBRTtZQUNKLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFDRCxJQUFJLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQzNCLE9BQU8sQ0FBQyxDQUFDO1NBQ1o7YUFBTSxJQUFJLElBQUksS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFO1lBQ2hDLElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDaEM7YUFBTSxJQUFJLElBQUksS0FBSyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQ2pDLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ3BGO2FBQU07WUFDSCxPQUFPLENBQUMsQ0FBQztTQUNaO0lBQ0wsQ0FBQztJQUNMLHNCQUFDO0FBQUQsQ0FBQyxBQXRVRCxJQXNVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IEFHUk9fTlVNQkVSUyB9IGZyb20gXCIuLi9lbnVtc1wiO1xyXG5cclxuZXhwb3J0IHsgQWdyb09iamVjdFV0aWxzIGFzIEFPVSwgQWdyb09iamVjdFV0aWxzIGFzIE9iamVjdFV0aWxzIH07XHJcblxyXG4vKipcclxuICogQ2xhc3NlIHV0aWxpdMOhcmlhIHBhcmEgb3BlcmHDp8O1ZXMgZGUgb2JqZXRvLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFncm9PYmplY3RVdGlscyB7XHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSBudWxvIG91IGluZGVmaW5pZG8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIG51bG8gb3UgaW5kZWZpbmlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOdWxsT3JVbmRlZmluZWQob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gb2JqID09PSBudWxsIHx8IG9iaiA9PT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIG7Do28gw6kgbnVsbyBlIG7Do28gw6kgaW5kZWZpbmlkby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBuw6NvIGZvciBudWxvIGUgbsOjbyBmb3IgaW5kZWZpbmlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOb3ROdWxsT3JVbmRlZmluZWQob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9PYmplY3RVdGlscy5pc051bGxPclVuZGVmaW5lZChvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtYSBzdHJpbmcuXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtYSBzdHJpbmcsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzU3RyaW5nKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gbsO6bWVyby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gbsO6bWVybywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOdW1iZXIob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJudW1iZXJcIjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bSBib29sZWFuby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gYm9vbGVhbm8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzQm9vbGVhbihvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSBcImJvb2xlYW5cIjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bWEgZnVuw6fDo28uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtYSBmdW7Dp8OjbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNGdW5jdGlvbihvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSBcImZ1bmN0aW9uXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gYXJyYXkuXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtIGFycmF5LCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0FycmF5KG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIG8gdmFsb3IgaW5mb3JtYWRvIMOpIHVtIG9iamV0by5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gb2JqZXRvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc09iamVjdChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtYSBkYXRhLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bWEgZGF0YSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNEYXRlKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIERhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gZXJyby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gZXJybywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNFcnJvcihvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBFcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bWEgZXhwcmVzc8OjbyByZWd1bGFyLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bWEgZXhwcmVzc8OjbyByZWd1bGFyLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc1JlZ0V4cChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBSZWdFeHA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gdmFsb3IgcHJpbWl0aXZvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bSB2YWxvciBwcmltaXRpdm8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzUHJpbWl0aXZlKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFncm9PYmplY3RVdGlscy5pc1N0cmluZyhvYmopIHx8IEFncm9PYmplY3RVdGlscy5pc051bWJlcihvYmopIHx8IEFncm9PYmplY3RVdGlscy5pc0Jvb2xlYW4ob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHRvZG9zIG9zIHZhbG9yZXMgZGUgdW0gb2JqZXRvIHPDo28gbnVsb3Mgb3UgaW5kZWZpbmlkb3MuXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgdG9kb3Mgb3MgdmFsb3JlcyBkbyBvYmpldG8gZm9yZW0gbnVsb3Mgb3UgaW5kZWZpbmlkb3MsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGFsbE51bGwob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIUFncm9PYmplY3RVdGlscy5pc09iamVjdChvYmopKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xyXG4gICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkgJiYgIUFncm9PYmplY3RVdGlscy5pc051bGxPclVuZGVmaW5lZChvYmpba2V5XSkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgY29tcGFyZUFycmF5cyhhcnIxOiB1bmtub3duW10sIGFycjI6IHVua25vd25bXSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmIChhcnIxLmxlbmd0aCAhPT0gYXJyMi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYXJyMS5ldmVyeSgodiwgaSkgPT4gQWdyb09iamVjdFV0aWxzLmlzRXF1YWwodiwgYXJyMltpXSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGNvbXBhcmVPYmplY3RzKG9iajE6IG9iamVjdCwgb2JqMjogb2JqZWN0KTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3Qga2V5czEgPSBPYmplY3Qua2V5cyhvYmoxKTtcclxuICAgICAgICBjb25zdCBrZXlzMiA9IE9iamVjdC5rZXlzKG9iajIpO1xyXG4gICAgICAgIGlmIChrZXlzMS5sZW5ndGggIT09IGtleXMyLmxlbmd0aCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBrZXlzMS5ldmVyeSgoa2V5KSA9PiAob2JqMiBhcyBhbnkpLmhhc093blByb3BlcnR5KGtleSkgJiYgQWdyb09iamVjdFV0aWxzLmlzRXF1YWwoKG9iajEgYXMgYW55KVtrZXldLCAob2JqMiBhcyBhbnkpW2tleV0pKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbXBhcmEgZG9pcyBvYmpldG9zIHBhcmEgdmVyaWZpY2FyIHNlIHPDo28gaWd1YWlzLlxyXG4gICAgICogQHBhcmFtIG9iajEgLSBPIHByaW1laXJvIG9iamV0byBhIHNlciBjb21wYXJhZG8uXHJcbiAgICAgKiBAcGFyYW0gb2JqMiAtIE8gc2VndW5kbyBvYmpldG8gYSBzZXIgY29tcGFyYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvcyBvYmpldG9zIGZvcmVtIGlndWFpcywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNFcXVhbChvYmoxOiB1bmtub3duLCBvYmoyOiB1bmtub3duKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKG9iajEgPT09IG9iajIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob2JqMSA9PT0gbnVsbCB8fCBvYmoyID09PSBudWxsIHx8IHR5cGVvZiBvYmoxICE9PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBvYmoyICE9PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iajEpICYmIEFycmF5LmlzQXJyYXkob2JqMikpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZUFycmF5cyhvYmoxLCBvYmoyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iajEpIHx8IEFycmF5LmlzQXJyYXkob2JqMikpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZU9iamVjdHMob2JqMSwgb2JqMik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgbnVsby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgbnVsbyBvdSB1bSBvYmpldG8gdmF6aW8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTnVsbChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBvYmogPT09IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gbsOjbyDDqSBudWxvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIG7Do28gZm9yIG51bG8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTm90TnVsbChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhQWdyb09iamVjdFV0aWxzLmlzTnVsbChvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udmVydGUgdW0gb2JqZXRvIHBhcmEgdW1hIHN0cmluZyBKU09OLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIGNvbnZlcnRpZG8uXHJcbiAgICAgKiBAcmV0dXJucyBBIHN0cmluZyBKU09OIHJlcHJlc2VudGFuZG8gbyBvYmpldG8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyB0b0pTT04ob2JqOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIG7Do28gw6kgdmF6aW8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gbsOjbyBmb3IgdmF6aW8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTm90RW1wdHkob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIUFncm9PYmplY3RVdGlscy5pc09iamVjdChvYmopKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoICE9PSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB2YXppby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdmF6aW8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzRW1wdHkob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9PYmplY3RVdGlscy5pc05vdEVtcHR5KG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gbsOjbyBlc3TDoSB2YXppbyBlIGNvbnTDqW0gdW1hIGRldGVybWluYWRhIHByb3ByaWVkYWRlLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcGFyYW0gcHJvcGVydHkgLSBBIHByb3ByaWVkYWRlIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIG7Do28gZXN0aXZlciB2YXppbyBlIGNvbnRpdmVyIGEgcHJvcHJpZWRhZGUsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGNvbnRhaW5zUHJvcGVydHkob2JqOiBhbnksIHByb3BlcnR5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQWdyb09iamVjdFV0aWxzLmlzTm90RW1wdHkob2JqKSAmJiBvYmouaGFzT3duUHJvcGVydHkocHJvcGVydHkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgbyBwYXLDom1ldHJvIHJlY2ViaWRvIMOpIHVtIG9iamV0byBlIHNlIGVsZSBjb250w6ltIGEgcHJvcHJpZWRhZGUgSUQuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBoYXNJZChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBZ3JvT2JqZWN0VXRpbHMuaXNOb3RFbXB0eShvYmopICYmIG9iai5oYXNPd25Qcm9wZXJ0eShcImlkXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgbyB2YWxvciBpbmZvcm1hZG8gbm8gcGFyw6JtZXRybyBwb3NzdWkgYXMgcHJvcHJpZWRhZGVzIGRlIHVtYSBlbnRpZGFkZSBTREwgKGlkIGUgY3JlYXRlZEF0KS5cclxuICAgICAqIEBwYXJhbSBvYmpcclxuICAgICAqIEByZXR1cm5zXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc1NETEVudGl0eShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBZ3JvT2JqZWN0VXRpbHMuaXNOb3RFbXB0eShvYmopICYmIG9iai5oYXNPd25Qcm9wZXJ0eShcImlkXCIpICYmIG9iai5oYXNPd25Qcm9wZXJ0eShcImNyZWF0ZWRBdFwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB2YWxpZG8sIGNvbnNpZGVyYW5kbyBxdWUgaGFqYSBubyBtw61uaW1vIDEgcHJvcHJpZWRhZGVcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzVmFsaWQob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5sZW5ndGggPiBBR1JPX05VTUJFUlMuWkVSTyAmJiBBZ3JvT2JqZWN0VXRpbHMuaXNOb3RFbXB0eShvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIGludsOhbGlkbywgY29uc2lkZXJhbmRvIHF1ZSBuw6NvIGhhamEgbmVuaHVtYSBwcm9wcmllZGFkZVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNJbnZhbGlkKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFBZ3JvT2JqZWN0VXRpbHMuaXNWYWxpZChvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW5jb250cmEgdW1hIHByb3ByaWVkYWRlIGVtIHVtIG9iamV0byBwZWxvIG5vbWUgZSByZXRvcm5hIHNldSB2YWxvci5cclxuICAgICAqIFNlIG8gdmFsb3IgZm9yIHVtIG9iamV0bywgcmV0b3JuYSBvIHByw7NwcmlvIG9iamV0by5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb2JqIE8gb2JqZXRvIG9uZGUgYnVzY2FyLlxyXG4gICAgICogQHBhcmFtIGtleSBPIG5vbWUgZGEgcHJvcHJpZWRhZGUgYSBzZXIgZW5jb250cmFkYS5cclxuICAgICAqIEBwYXJhbSBkZWVwU2VhcmNoIEluZGljYSBzZSBhIGJ1c2NhIGRldmUgc2VyIGVtIHByb2Z1bmRpZGFkZSAocGFkcsOjbzogdHJ1ZSkuXHJcbiAgICAgKiBAcmV0dXJucyBPIHZhbG9yIGRhIHByb3ByaWVkYWRlLCBvdSB1bmRlZmluZWQgc2UgbsOjbyBmb3IgZW5jb250cmFkYS5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGZpbmRQcm9wZXJ0eShvYmo6IFJlY29yZDxzdHJpbmcsIGFueT4sIGtleTogc3RyaW5nLCBkZWVwU2VhcmNoOiBib29sZWFuID0gdHJ1ZSk6IGFueSB7XHJcbiAgICAgICAgaWYgKEFncm9PYmplY3RVdGlscy5pc0ludmFsaWQob2JqKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPIHByaW1laXJvIGFyZ3VtZW50byBkZXZlIHNlciB1bSBvYmpldG8uXCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGtleSBpbiBvYmopIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9ialtrZXldO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGRlZXBTZWFyY2gpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wIGluIG9iaikge1xyXG4gICAgICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShwcm9wKSAmJiB0eXBlb2Ygb2JqW3Byb3BdID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gQWdyb09iamVjdFV0aWxzLmZpbmRQcm9wZXJ0eShvYmpbcHJvcF0sIGtleSwgZGVlcFNlYXJjaCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVjZWJlIHVtYSBzdHJpbmcgKEpTT04pIGUgdGVudGEgY29udmVydGVyIHBhcmEgdW0gb2JqZXRvLlxyXG4gICAgICogQHBhcmFtIHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBmcm9tU3RyaW5nKHZhbHVlOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0b3JuYSBvIHZhbG9yIGRlIHVtYSBwcm9wcmllZGFkZSBkZSB1bSBvYmpldG8sIGZvcm1hdGFkbyBjb25mb3JtZSBvIHRpcG8gZXNwZWNpZmljYWRvLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBkbyBxdWFsIGEgcHJvcHJpZWRhZGUgc2Vyw6EgZXh0cmHDrWRhLlxyXG4gICAgICogQHBhcmFtIHBhdGggLSBPIGNhbWluaG8gZGEgcHJvcHJpZWRhZGUgbm8gb2JqZXRvIChwb2RlIHNlciB1bSBjYW1pbmhvIGFuaW5oYWRvKS5cclxuICAgICAqIEBwYXJhbSB0eXBlIC0gTyB0aXBvIGRlIGZvcm1hdGHDp8OjbyBhIHNlciBhcGxpY2FkYSAoU3RyaW5nLCBEYXRlLCBNb25leSkuXHJcbiAgICAgKiBAcmV0dXJucyBPIHZhbG9yIGZvcm1hdGFkbyBkYSBwcm9wcmllZGFkZS5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldFByb3BBbmRGb3JtYXRWYWx1ZShvYmo6IGFueSwgcGF0aDogYW55LCB0eXBlOiBGaWVsZFR5cGUpIHtcclxuICAgICAgICBjb25zdCByID0gcGF0aC5zcGxpdChcIi5cIikucmVkdWNlKChyZXN1bHQ6IGFueSwgcHJvcDogYW55KSA9PiAocmVzdWx0W3Byb3BdID09PSB1bmRlZmluZWQgPyBcIlwiIDogcmVzdWx0W3Byb3BdKSwgb2JqKTtcclxuICAgICAgICBpZiAoIXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0eXBlID09PSBGaWVsZFR5cGUuU3RyaW5nKSB7XHJcbiAgICAgICAgICAgIHJldHVybiByO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gRmllbGRUeXBlLkRhdGUpIHtcclxuICAgICAgICAgICAgY29uc3QgbW9tZW50ID0gcmVxdWlyZShcIm1vbWVudFwiKTtcclxuICAgICAgICAgICAgcmV0dXJuIG1vbWVudChyKS5mb3JtYXQoXCJMXCIpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gRmllbGRUeXBlLk1vbmV5KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIocikudG9Mb2NhbGVTdHJpbmcoXCJwdC1CUlwiLCB7IHN0eWxlOiBcImN1cnJlbmN5XCIsIGN1cnJlbmN5OiBcIkJSTFwiIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiByO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=