angular-odata 0.122.0 → 0.124.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/esm2022/lib/api.mjs +373 -0
  2. package/esm2022/lib/cache/cache.mjs +175 -0
  3. package/{esm2020 → esm2022}/lib/cache/storage.mjs +1 -1
  4. package/esm2022/lib/client.mjs +252 -0
  5. package/{esm2020 → esm2022}/lib/helper.mjs +1 -1
  6. package/{esm2020 → esm2022}/lib/loaders.mjs +1 -1
  7. package/esm2022/lib/models/collection.mjs +865 -0
  8. package/esm2022/lib/models/model.mjs +535 -0
  9. package/esm2022/lib/models/options.mjs +1117 -0
  10. package/{esm2020 → esm2022}/lib/module.mjs +5 -5
  11. package/esm2022/lib/resources/path/segments.mjs +124 -0
  12. package/esm2022/lib/resources/query/builder.mjs +624 -0
  13. package/esm2022/lib/resources/query/expressions/base.mjs +20 -0
  14. package/esm2022/lib/resources/query/expressions/compute.mjs +39 -0
  15. package/esm2022/lib/resources/query/expressions/count.mjs +99 -0
  16. package/esm2022/lib/resources/query/expressions/expand.mjs +125 -0
  17. package/esm2022/lib/resources/query/expressions/filter.mjs +161 -0
  18. package/esm2022/lib/resources/query/expressions/orderby.mjs +56 -0
  19. package/esm2022/lib/resources/query/expressions/search.mjs +122 -0
  20. package/esm2022/lib/resources/query/expressions/select.mjs +31 -0
  21. package/esm2022/lib/resources/query/expressions/syntax.mjs +444 -0
  22. package/{esm2020 → esm2022}/lib/resources/query/handlers.mjs +1 -1
  23. package/esm2022/lib/resources/query/options.mjs +115 -0
  24. package/{esm2020 → esm2022}/lib/resources/request.mjs +1 -1
  25. package/esm2022/lib/resources/resource.mjs +257 -0
  26. package/{esm2020 → esm2022}/lib/resources/responses/annotations.mjs +1 -1
  27. package/esm2022/lib/resources/responses/csdl/csdl-annotation.mjs +33 -0
  28. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-entity-container.mjs +1 -1
  29. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-entity-set.mjs +1 -1
  30. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-enum-type.mjs +1 -1
  31. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-function-action.mjs +1 -1
  32. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-navigation-property-binding.mjs +1 -1
  33. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-reference.mjs +1 -1
  34. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-schema.mjs +1 -1
  35. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-singleton.mjs +1 -1
  36. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-structural-property.mjs +1 -1
  37. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-structured-type.mjs +1 -1
  38. package/{esm2020 → esm2022}/lib/resources/responses/csdl/csdl-type-definition.mjs +1 -1
  39. package/esm2022/lib/resources/responses/metadata.mjs +547 -0
  40. package/{esm2020 → esm2022}/lib/resources/responses/response.mjs +1 -1
  41. package/{esm2020 → esm2022}/lib/resources/types/action.mjs +1 -1
  42. package/{esm2020 → esm2022}/lib/resources/types/batch.mjs +1 -1
  43. package/{esm2020 → esm2022}/lib/resources/types/count.mjs +1 -1
  44. package/{esm2020 → esm2022}/lib/resources/types/entity-set.mjs +1 -1
  45. package/{esm2020 → esm2022}/lib/resources/types/entity.mjs +1 -1
  46. package/{esm2020 → esm2022}/lib/resources/types/function.mjs +1 -1
  47. package/{esm2020 → esm2022}/lib/resources/types/media.mjs +1 -1
  48. package/{esm2020 → esm2022}/lib/resources/types/navigation-property.mjs +1 -1
  49. package/{esm2020 → esm2022}/lib/resources/types/property.mjs +1 -1
  50. package/{esm2020 → esm2022}/lib/resources/types/reference.mjs +1 -1
  51. package/{esm2020 → esm2022}/lib/resources/types/singleton.mjs +1 -1
  52. package/{esm2020 → esm2022}/lib/resources/types/value.mjs +1 -1
  53. package/{esm2020 → esm2022}/lib/schema/annotation.mjs +1 -1
  54. package/{esm2020 → esm2022}/lib/schema/callable.mjs +1 -1
  55. package/{esm2020 → esm2022}/lib/schema/element.mjs +1 -1
  56. package/{esm2020 → esm2022}/lib/schema/entity-container.mjs +1 -1
  57. package/{esm2020 → esm2022}/lib/schema/enum-type.mjs +1 -1
  58. package/{esm2020 → esm2022}/lib/schema/parsers/callable.mjs +1 -1
  59. package/esm2022/lib/schema/parsers/edm.mjs +99 -0
  60. package/{esm2020 → esm2022}/lib/schema/parsers/enum-type.mjs +2 -2
  61. package/esm2022/lib/schema/parsers/structured-type.mjs +502 -0
  62. package/{esm2020 → esm2022}/lib/schema/schema.mjs +1 -1
  63. package/esm2022/lib/schema/structured-type.mjs +207 -0
  64. package/esm2022/lib/services/base.mjs +29 -0
  65. package/{esm2020 → esm2022}/lib/services/entity-set.mjs +1 -1
  66. package/{esm2020 → esm2022}/lib/services/factory.mjs +4 -4
  67. package/{esm2020 → esm2022}/lib/services/singleton.mjs +1 -1
  68. package/{esm2020 → esm2022}/lib/settings.mjs +1 -1
  69. package/{esm2020 → esm2022}/lib/types.mjs +1 -1
  70. package/{esm2020 → esm2022}/lib/utils/arrays.mjs +1 -1
  71. package/{esm2020 → esm2022}/lib/utils/durations.mjs +1 -1
  72. package/esm2022/lib/utils/enums.mjs +61 -0
  73. package/{esm2020 → esm2022}/lib/utils/http.mjs +1 -1
  74. package/{esm2020 → esm2022}/lib/utils/objects.mjs +1 -1
  75. package/{esm2020 → esm2022}/lib/utils/odata.mjs +1 -1
  76. package/esm2022/lib/utils/types.mjs +136 -0
  77. package/{fesm2020 → fesm2022}/angular-odata.mjs +544 -373
  78. package/fesm2022/angular-odata.mjs.map +1 -0
  79. package/lib/helper.d.ts +1 -1
  80. package/lib/models/model.d.ts +4 -2
  81. package/lib/models/options.d.ts +7 -8
  82. package/lib/resources/path/segments.d.ts +15 -6
  83. package/lib/resources/query/builder.d.ts +21 -20
  84. package/lib/resources/query/expressions/base.d.ts +6 -4
  85. package/lib/resources/query/expressions/compute.d.ts +10 -8
  86. package/lib/resources/query/expressions/count.d.ts +14 -11
  87. package/lib/resources/query/expressions/expand.d.ts +23 -19
  88. package/lib/resources/query/expressions/filter.d.ts +22 -20
  89. package/lib/resources/query/expressions/orderby.d.ts +12 -9
  90. package/lib/resources/query/expressions/search.d.ts +12 -9
  91. package/lib/resources/query/expressions/select.d.ts +9 -7
  92. package/lib/resources/query/expressions/syntax.d.ts +75 -71
  93. package/lib/resources/query/handlers.d.ts +2 -2
  94. package/lib/resources/query/options.d.ts +15 -6
  95. package/lib/resources/resource.d.ts +2 -2
  96. package/lib/resources/responses/types.d.ts +3 -3
  97. package/lib/resources/types/options.d.ts +7 -7
  98. package/lib/schema/parsers/structured-type.d.ts +8 -5
  99. package/lib/schema/structured-type.d.ts +2 -1
  100. package/lib/types.d.ts +15 -15
  101. package/lib/utils/durations.d.ts +1 -1
  102. package/lib/utils/enums.d.ts +3 -0
  103. package/lib/utils/types.d.ts +1 -0
  104. package/package.json +9 -15
  105. package/esm2020/lib/api.mjs +0 -373
  106. package/esm2020/lib/cache/cache.mjs +0 -173
  107. package/esm2020/lib/client.mjs +0 -252
  108. package/esm2020/lib/models/collection.mjs +0 -861
  109. package/esm2020/lib/models/model.mjs +0 -507
  110. package/esm2020/lib/models/options.mjs +0 -1110
  111. package/esm2020/lib/resources/path/segments.mjs +0 -124
  112. package/esm2020/lib/resources/query/builder.mjs +0 -588
  113. package/esm2020/lib/resources/query/expressions/base.mjs +0 -20
  114. package/esm2020/lib/resources/query/expressions/compute.mjs +0 -39
  115. package/esm2020/lib/resources/query/expressions/count.mjs +0 -89
  116. package/esm2020/lib/resources/query/expressions/expand.mjs +0 -115
  117. package/esm2020/lib/resources/query/expressions/filter.mjs +0 -161
  118. package/esm2020/lib/resources/query/expressions/orderby.mjs +0 -56
  119. package/esm2020/lib/resources/query/expressions/search.mjs +0 -122
  120. package/esm2020/lib/resources/query/expressions/select.mjs +0 -31
  121. package/esm2020/lib/resources/query/expressions/syntax.mjs +0 -409
  122. package/esm2020/lib/resources/query/options.mjs +0 -115
  123. package/esm2020/lib/resources/resource.mjs +0 -251
  124. package/esm2020/lib/resources/responses/csdl/csdl-annotation.mjs +0 -33
  125. package/esm2020/lib/resources/responses/metadata.mjs +0 -547
  126. package/esm2020/lib/schema/parsers/edm.mjs +0 -104
  127. package/esm2020/lib/schema/parsers/structured-type.mjs +0 -490
  128. package/esm2020/lib/schema/structured-type.mjs +0 -202
  129. package/esm2020/lib/services/base.mjs +0 -29
  130. package/esm2020/lib/utils/enums.mjs +0 -45
  131. package/esm2020/lib/utils/types.mjs +0 -133
  132. package/fesm2015/angular-odata.mjs +0 -11811
  133. package/fesm2015/angular-odata.mjs.map +0 -1
  134. package/fesm2020/angular-odata.mjs.map +0 -1
  135. /package/{esm2020 → esm2022}/angular-odata.mjs +0 -0
  136. /package/{esm2020 → esm2022}/lib/cache/index.mjs +0 -0
  137. /package/{esm2020 → esm2022}/lib/cache/memory.mjs +0 -0
  138. /package/{esm2020 → esm2022}/lib/constants.mjs +0 -0
  139. /package/{esm2020 → esm2022}/lib/index.mjs +0 -0
  140. /package/{esm2020 → esm2022}/lib/models/index.mjs +0 -0
  141. /package/{esm2020 → esm2022}/lib/options.mjs +0 -0
  142. /package/{esm2020 → esm2022}/lib/resources/index.mjs +0 -0
  143. /package/{esm2020 → esm2022}/lib/resources/path/handlers.mjs +0 -0
  144. /package/{esm2020 → esm2022}/lib/resources/path/index.mjs +0 -0
  145. /package/{esm2020 → esm2022}/lib/resources/query/expressions/index.mjs +0 -0
  146. /package/{esm2020 → esm2022}/lib/resources/query/index.mjs +0 -0
  147. /package/{esm2020 → esm2022}/lib/resources/responses/index.mjs +0 -0
  148. /package/{esm2020 → esm2022}/lib/resources/responses/options.mjs +0 -0
  149. /package/{esm2020 → esm2022}/lib/resources/responses/types.mjs +0 -0
  150. /package/{esm2020 → esm2022}/lib/resources/types/index.mjs +0 -0
  151. /package/{esm2020 → esm2022}/lib/resources/types/metadata.mjs +0 -0
  152. /package/{esm2020 → esm2022}/lib/resources/types/options.mjs +0 -0
  153. /package/{esm2020 → esm2022}/lib/schema/entity-set.mjs +0 -0
  154. /package/{esm2020 → esm2022}/lib/schema/index.mjs +0 -0
  155. /package/{esm2020 → esm2022}/lib/schema/parsers/index.mjs +0 -0
  156. /package/{esm2020 → esm2022}/lib/services/entity.mjs +0 -0
  157. /package/{esm2020 → esm2022}/lib/services/index.mjs +0 -0
  158. /package/{esm2020 → esm2022}/lib/utils/arraybuffers.mjs +0 -0
  159. /package/{esm2020 → esm2022}/lib/utils/dates.mjs +0 -0
  160. /package/{esm2020 → esm2022}/lib/utils/index.mjs +0 -0
  161. /package/{esm2020 → esm2022}/lib/utils/strings.mjs +0 -0
  162. /package/{esm2020 → esm2022}/lib/utils/urls.mjs +0 -0
  163. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -58,4 +58,4 @@ export class ODataSchemaElement extends ODataAnnotatable {
58
58
  return false;
59
59
  }
60
60
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9zY2hlbWEvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUdoRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsZ0JBQWdCO0lBSXRELFlBQ0UsTUFBMEQsRUFDMUQsTUFBbUI7UUFFbkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsQ0FBQyxJQUFzQjtRQUM3QixPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLEtBQTBCLEVBQUU7UUFDOUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxJQUFZO1FBQ25CLElBQUksS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSztZQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2RSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsTUFBMEI7UUFDcEMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzlDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxhQUFhLENBQUMsTUFBMEI7UUFDdEMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzlDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ub3RhdGlvbkNvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFN0cmluZ3MgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBPRGF0YUFubm90YXRhYmxlIH0gZnJvbSAnLi9hbm5vdGF0aW9uJztcbmltcG9ydCB7IE9EYXRhU2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEnO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFTY2hlbWFFbGVtZW50IGV4dGVuZHMgT0RhdGFBbm5vdGF0YWJsZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgc2NoZW1hOiBPRGF0YVNjaGVtYTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb25maWc6IHsgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uQ29uZmlnW107IG5hbWU6IHN0cmluZyB9LFxuICAgIHNjaGVtYTogT0RhdGFTY2hlbWFcbiAgKSB7XG4gICAgc3VwZXIoY29uZmlnKTtcbiAgICB0aGlzLnNjaGVtYSA9IHNjaGVtYTtcbiAgICB0aGlzLm5hbWUgPSBjb25maWcubmFtZTtcbiAgfVxuXG4gIGdldCBhcGkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2NoZW1hLmFwaTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuaWNlciBsb29raW5nIHRpdGxlLlxuICAgKiBUaXRsZWl6ZSBpcyBtZWFudCBmb3IgY3JlYXRpbmcgcHJldHR5IG91dHB1dC5cbiAgICogQHBhcmFtIHRlcm0gVGhlIHRlcm0gb2YgdGhlIGFubm90YXRpb24gdG8gZmluZC5cbiAgICogQHJldHVybnMgVGhlIHRpdGxlaXplZCBzdHJpbmcuXG4gICAqL1xuICB0aXRsZWl6ZSh0ZXJtPzogc3RyaW5nIHwgUmVnRXhwKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRlcm0gJiYgdGhpcy5hbm5vdGF0ZWRWYWx1ZSh0ZXJtKSkgfHwgU3RyaW5ncy50aXRsZUNhc2UodGhpcy5uYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgZnVsbCB0eXBlIG9mIHRoZSBzdHJ1Y3R1cmVkIHR5cGUgaW5jbHVkaW5nIHRoZSBuYW1lc3BhY2UvYWxpYXMuXG4gICAqIEBwYXJhbSBhbGlhcyBVc2UgdGhlIGFsaWFzIG9mIHRoZSBuYW1lc3BhY2UgaW5zdGVhZCBvZiB0aGUgbmFtZXNwYWNlLlxuICAgKiBAcmV0dXJucyBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0eXBlLlxuICAgKi9cbiAgdHlwZSh7IGFsaWFzID0gZmFsc2UgfTogeyBhbGlhcz86IGJvb2xlYW4gfSA9IHt9KSB7XG4gICAgcmV0dXJuIGAke2FsaWFzID8gdGhpcy5zY2hlbWEuYWxpYXMgOiB0aGlzLnNjaGVtYS5uYW1lc3BhY2V9LiR7dGhpcy5uYW1lfWA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgc3RydWN0dXJlZCB0eXBlIGlzIG9mIHRoZSBnaXZlbiB0eXBlLlxuICAgKiBAcGFyYW0gdHlwZSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHR5cGVcbiAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgY2FsbGFibGUgaXMgdHlwZSBvZiB0aGUgZ2l2ZW4gdHlwZVxuICAgKi9cbiAgaXNUeXBlT2YodHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdmFyIG5hbWVzID0gW2Ake3RoaXMuc2NoZW1hLm5hbWVzcGFjZX0uJHt0aGlzLm5hbWV9YF07XG4gICAgaWYgKHRoaXMuc2NoZW1hLmFsaWFzKSBuYW1lcy5wdXNoKGAke3RoaXMuc2NoZW1hLmFsaWFzfS4ke3RoaXMubmFtZX1gKTtcbiAgICByZXR1cm4gbmFtZXMuaW5kZXhPZih0eXBlKSAhPT0gLTE7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgc3RydWN0dXJlZCB0eXBlIGlzIGEgc3VidHlwZSBvZiB0aGUgZ2l2ZW4gdHlwZS5cbiAgICogQHBhcmFtIHR5cGUgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0eXBlXG4gICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGNhbGxhYmxlIGlzIHR5cGUgb2YgdGhlIGdpdmVuIHR5cGVcbiAgICovXG4gIGlzU3VidHlwZU9mKHNjaGVtYTogT0RhdGFTY2hlbWFFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNUeXBlT2Yoc2NoZW1hLnR5cGUoKSkpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBzdHJ1Y3R1cmVkIHR5cGUgaXMgYSBzdXBlcnR5cGUgb2YgdGhlIGdpdmVuIHR5cGUuXG4gICAqIEBwYXJhbSB0eXBlIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHlwZVxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBjYWxsYWJsZSBpcyB0eXBlIG9mIHRoZSBnaXZlbiB0eXBlXG4gICAqL1xuICBpc1N1cGVydHlwZU9mKHNjaGVtYTogT0RhdGFTY2hlbWFFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNUeXBlT2Yoc2NoZW1hLnR5cGUoKSkpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9zY2hlbWEvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUdoRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsZ0JBQWdCO0lBSXRELFlBQ0UsTUFBMEQsRUFDMUQsTUFBbUI7UUFFbkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsQ0FBQyxJQUFzQjtRQUM3QixPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLEtBQTBCLEVBQUU7UUFDOUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxJQUFZO1FBQ25CLElBQUksS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSztZQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2RSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsTUFBMEI7UUFDcEMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzlDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxhQUFhLENBQUMsTUFBMEI7UUFDdEMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzlDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ub3RhdGlvbkNvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFN0cmluZ3MgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBPRGF0YUFubm90YXRhYmxlIH0gZnJvbSAnLi9hbm5vdGF0aW9uJztcbmltcG9ydCB7IE9EYXRhU2NoZW1hIH0gZnJvbSAnLi9zY2hlbWEnO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFTY2hlbWFFbGVtZW50IGV4dGVuZHMgT0RhdGFBbm5vdGF0YWJsZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgc2NoZW1hOiBPRGF0YVNjaGVtYTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb25maWc6IHsgYW5ub3RhdGlvbnM/OiBBbm5vdGF0aW9uQ29uZmlnW107IG5hbWU6IHN0cmluZyB9LFxuICAgIHNjaGVtYTogT0RhdGFTY2hlbWEsXG4gICkge1xuICAgIHN1cGVyKGNvbmZpZyk7XG4gICAgdGhpcy5zY2hlbWEgPSBzY2hlbWE7XG4gICAgdGhpcy5uYW1lID0gY29uZmlnLm5hbWU7XG4gIH1cblxuICBnZXQgYXBpKCkge1xuICAgIHJldHVybiB0aGlzLnNjaGVtYS5hcGk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmljZXIgbG9va2luZyB0aXRsZS5cbiAgICogVGl0bGVpemUgaXMgbWVhbnQgZm9yIGNyZWF0aW5nIHByZXR0eSBvdXRwdXQuXG4gICAqIEBwYXJhbSB0ZXJtIFRoZSB0ZXJtIG9mIHRoZSBhbm5vdGF0aW9uIHRvIGZpbmQuXG4gICAqIEByZXR1cm5zIFRoZSB0aXRsZWl6ZWQgc3RyaW5nLlxuICAgKi9cbiAgdGl0bGVpemUodGVybT86IHN0cmluZyB8IFJlZ0V4cCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0ZXJtICYmIHRoaXMuYW5ub3RhdGVkVmFsdWUodGVybSkpIHx8IFN0cmluZ3MudGl0bGVDYXNlKHRoaXMubmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGZ1bGwgdHlwZSBvZiB0aGUgc3RydWN0dXJlZCB0eXBlIGluY2x1ZGluZyB0aGUgbmFtZXNwYWNlL2FsaWFzLlxuICAgKiBAcGFyYW0gYWxpYXMgVXNlIHRoZSBhbGlhcyBvZiB0aGUgbmFtZXNwYWNlIGluc3RlYWQgb2YgdGhlIG5hbWVzcGFjZS5cbiAgICogQHJldHVybnMgVGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHlwZS5cbiAgICovXG4gIHR5cGUoeyBhbGlhcyA9IGZhbHNlIH06IHsgYWxpYXM/OiBib29sZWFuIH0gPSB7fSkge1xuICAgIHJldHVybiBgJHthbGlhcyA/IHRoaXMuc2NoZW1hLmFsaWFzIDogdGhpcy5zY2hlbWEubmFtZXNwYWNlfS4ke3RoaXMubmFtZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIHN0cnVjdHVyZWQgdHlwZSBpcyBvZiB0aGUgZ2l2ZW4gdHlwZS5cbiAgICogQHBhcmFtIHR5cGUgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0eXBlXG4gICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGNhbGxhYmxlIGlzIHR5cGUgb2YgdGhlIGdpdmVuIHR5cGVcbiAgICovXG4gIGlzVHlwZU9mKHR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHZhciBuYW1lcyA9IFtgJHt0aGlzLnNjaGVtYS5uYW1lc3BhY2V9LiR7dGhpcy5uYW1lfWBdO1xuICAgIGlmICh0aGlzLnNjaGVtYS5hbGlhcykgbmFtZXMucHVzaChgJHt0aGlzLnNjaGVtYS5hbGlhc30uJHt0aGlzLm5hbWV9YCk7XG4gICAgcmV0dXJuIG5hbWVzLmluZGV4T2YodHlwZSkgIT09IC0xO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIHN0cnVjdHVyZWQgdHlwZSBpcyBhIHN1YnR5cGUgb2YgdGhlIGdpdmVuIHR5cGUuXG4gICAqIEBwYXJhbSB0eXBlIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHlwZVxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBjYWxsYWJsZSBpcyB0eXBlIG9mIHRoZSBnaXZlbiB0eXBlXG4gICAqL1xuICBpc1N1YnR5cGVPZihzY2hlbWE6IE9EYXRhU2NoZW1hRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzVHlwZU9mKHNjaGVtYS50eXBlKCkpKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgc3RydWN0dXJlZCB0eXBlIGlzIGEgc3VwZXJ0eXBlIG9mIHRoZSBnaXZlbiB0eXBlLlxuICAgKiBAcGFyYW0gdHlwZSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHR5cGVcbiAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgY2FsbGFibGUgaXMgdHlwZSBvZiB0aGUgZ2l2ZW4gdHlwZVxuICAgKi9cbiAgaXNTdXBlcnR5cGVPZihzY2hlbWE6IE9EYXRhU2NoZW1hRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzVHlwZU9mKHNjaGVtYS50eXBlKCkpKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -6,4 +6,4 @@ export class ODataEntityContainer extends ODataSchemaElement {
6
6
  this.entitySets = (config.entitySets || []).map((config) => new ODataEntitySet(config, schema));
7
7
  }
8
8
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9zY2hlbWEvZW50aXR5LWNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUc5QyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBRzFELFlBQVksTUFBNkIsRUFBRSxNQUFtQjtRQUM1RCxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDN0MsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FDL0MsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eUNvbnRhaW5lckNvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IE9EYXRhU2NoZW1hRWxlbWVudCB9IGZyb20gJy4vZWxlbWVudCc7XG5pbXBvcnQgeyBPRGF0YUVudGl0eVNldCB9IGZyb20gJy4vZW50aXR5LXNldCc7XG5pbXBvcnQgeyBPRGF0YVNjaGVtYSB9IGZyb20gJy4vc2NoZW1hJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhRW50aXR5Q29udGFpbmVyIGV4dGVuZHMgT0RhdGFTY2hlbWFFbGVtZW50IHtcbiAgZW50aXR5U2V0czogT0RhdGFFbnRpdHlTZXRbXTtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IEVudGl0eUNvbnRhaW5lckNvbmZpZywgc2NoZW1hOiBPRGF0YVNjaGVtYSkge1xuICAgIHN1cGVyKGNvbmZpZywgc2NoZW1hKTtcbiAgICB0aGlzLmVudGl0eVNldHMgPSAoY29uZmlnLmVudGl0eVNldHMgfHwgW10pLm1hcChcbiAgICAgIChjb25maWcpID0+IG5ldyBPRGF0YUVudGl0eVNldChjb25maWcsIHNjaGVtYSlcbiAgICApO1xuICB9XG59XG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItb2RhdGEvc3JjL2xpYi9zY2hlbWEvZW50aXR5LWNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUc5QyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBRzFELFlBQVksTUFBNkIsRUFBRSxNQUFtQjtRQUM1RCxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDN0MsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FDL0MsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eUNvbnRhaW5lckNvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IE9EYXRhU2NoZW1hRWxlbWVudCB9IGZyb20gJy4vZWxlbWVudCc7XG5pbXBvcnQgeyBPRGF0YUVudGl0eVNldCB9IGZyb20gJy4vZW50aXR5LXNldCc7XG5pbXBvcnQgeyBPRGF0YVNjaGVtYSB9IGZyb20gJy4vc2NoZW1hJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhRW50aXR5Q29udGFpbmVyIGV4dGVuZHMgT0RhdGFTY2hlbWFFbGVtZW50IHtcbiAgZW50aXR5U2V0czogT0RhdGFFbnRpdHlTZXRbXTtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IEVudGl0eUNvbnRhaW5lckNvbmZpZywgc2NoZW1hOiBPRGF0YVNjaGVtYSkge1xuICAgIHN1cGVyKGNvbmZpZywgc2NoZW1hKTtcbiAgICB0aGlzLmVudGl0eVNldHMgPSAoY29uZmlnLmVudGl0eVNldHMgfHwgW10pLm1hcChcbiAgICAgIChjb25maWcpID0+IG5ldyBPRGF0YUVudGl0eVNldChjb25maWcsIHNjaGVtYSksXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -66,4 +66,4 @@ export class ODataEnumType extends ODataSchemaElement {
66
66
  return this.parser.pack(value);
67
67
  }
68
68
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3NjaGVtYS9lbnVtLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sRUFBNEIsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHMUUsTUFBTSxPQUFPLGFBQWlCLFNBQVEsa0JBQWtCO0lBR3RELFlBQVksTUFBeUIsRUFBRSxNQUFtQjtRQUN4RCxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksbUJBQW1CLENBQ25DLE1BQU0sRUFDTixNQUFNLENBQUMsU0FBUyxFQUNoQixNQUFNLENBQUMsS0FBSyxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUyxDQUFDLEVBQ1IsT0FBTyxFQUNQLGFBQWEsRUFDYixrQkFBa0IsR0FLbkI7UUFDQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsS0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsR0FBZTtRQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFJLE1BQWlEO1FBQzVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLEtBQVUsRUFBRSxPQUF1QjtRQUM3QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsS0FBUSxFQUFFLE9BQXVCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxLQUFRLEVBQUUsT0FBdUI7UUFDdEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQWU7UUFDbEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnVtVHlwZUNvbmZpZywgUGFyc2VyLCBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgT0RhdGFTY2hlbWFFbGVtZW50IH0gZnJvbSAnLi9lbGVtZW50JztcbmltcG9ydCB7IE9EYXRhRW51bVR5cGVGaWVsZFBhcnNlciwgT0RhdGFFbnVtVHlwZVBhcnNlciB9IGZyb20gJy4vcGFyc2Vycyc7XG5pbXBvcnQgeyBPRGF0YVNjaGVtYSB9IGZyb20gJy4vc2NoZW1hJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhRW51bVR5cGU8RT4gZXh0ZW5kcyBPRGF0YVNjaGVtYUVsZW1lbnQge1xuICBwYXJzZXI6IE9EYXRhRW51bVR5cGVQYXJzZXI8RT47XG4gIG1lbWJlcnM6IHsgW25hbWU6IHN0cmluZ106IEUgfSB8IHsgW3ZhbHVlOiBudW1iZXJdOiBzdHJpbmcgfTtcbiAgY29uc3RydWN0b3IoY29uZmlnOiBFbnVtVHlwZUNvbmZpZzxFPiwgc2NoZW1hOiBPRGF0YVNjaGVtYSkge1xuICAgIHN1cGVyKGNvbmZpZywgc2NoZW1hKTtcbiAgICB0aGlzLm1lbWJlcnMgPSBjb25maWcubWVtYmVycztcbiAgICB0aGlzLnBhcnNlciA9IG5ldyBPRGF0YUVudW1UeXBlUGFyc2VyPEU+KFxuICAgICAgY29uZmlnLFxuICAgICAgc2NoZW1hLm5hbWVzcGFjZSxcbiAgICAgIHNjaGVtYS5hbGlhc1xuICAgICk7XG4gIH1cblxuICBjb25maWd1cmUoe1xuICAgIG9wdGlvbnMsXG4gICAgcGFyc2VyRm9yVHlwZSxcbiAgICBmaW5kT3B0aW9uc0ZvclR5cGUsXG4gIH06IHtcbiAgICBvcHRpb25zOiBQYXJzZXJPcHRpb25zO1xuICAgIHBhcnNlckZvclR5cGU6ICh0eXBlOiBzdHJpbmcpID0+IFBhcnNlcjxhbnk+O1xuICAgIGZpbmRPcHRpb25zRm9yVHlwZTogKHR5cGU6IHN0cmluZykgPT4gYW55O1xuICB9KSB7XG4gICAgdGhpcy5wYXJzZXIuY29uZmlndXJlKHsgb3B0aW9ucywgcGFyc2VyRm9yVHlwZSwgZmluZE9wdGlvbnNGb3JUeXBlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGZpZWxkcyBvZiB0aGUgZW51bSB0eXBlLlxuICAgKiBAcmV0dXJucyBUaGUgZmllbGRzIG9mIHRoZSBlbnVtIHR5cGUuXG4gICAqL1xuICBmaWVsZHModmFsdWU/OiBFKTogT0RhdGFFbnVtVHlwZUZpZWxkUGFyc2VyPEU+W10ge1xuICAgIHJldHVybiB0aGlzLnBhcnNlci5maWVsZHModmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgYSBmaWVsZCBieSBuYW1lIG9yIHZhbHVlLlxuICAgKiBAcGFyYW0gZW51IFRoZSBuYW1lIG9yIHZhbHVlIG9mIHRoZSBmaWVsZFxuICAgKiBAcmV0dXJucyBUaGUgZmllbGQgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBvciB2YWx1ZVxuICAgKi9cbiAgZmllbGQoZW51OiBzdHJpbmcgfCBFKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyLmZpZWxkKGVudSk7XG4gIH1cblxuICAvKipcbiAgICogTWFwIHRoZSBmaWVsZHMgb2YgdGhlIGVudW0gdHlwZS5cbiAgICogQHBhcmFtIG1hcHBlciBGdW5jdGlvbiB0aGF0IG1hcHMgdGhlIHZhbHVlIHRvIHRoZSBuZXcgdmFsdWVcbiAgICogQHJldHVybnMgVGhlIGZpZWxkcyBtYXBwZWQgYnkgdGhlIG1hcHBlclxuICAgKi9cbiAgbWFwRmllbGRzPFQ+KG1hcHBlcjogKGZpZWxkOiBPRGF0YUVudW1UeXBlRmllbGRQYXJzZXI8RT4pID0+IFQpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIubWFwRmllbGRzKG1hcHBlcik7XG4gIH1cblxuICAvKipcbiAgICogRGVzZWlhbGl6ZSB0aGUgZ2l2ZW4gdmFsdWUgZnJvbSB0aGUgZW51bSB0eXBlLlxuICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gZGVzZXJpYWxpemVcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgZGVzZXJpYWxpemF0aW9uXG4gICAqIEByZXR1cm5zIERlc2VyaWFsaXplZCB2YWx1ZVxuICAgKi9cbiAgZGVzZXJpYWxpemUodmFsdWU6IGFueSwgb3B0aW9ucz86IFBhcnNlck9wdGlvbnMpOiBFIHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIuZGVzZXJpYWxpemUodmFsdWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZSB0aGUgZ2l2ZW4gdmFsdWUgZm9yIHRoZSBlbnVtIHR5cGUuXG4gICAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byBzZXJpYWxpemVcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3Igc2VyaWFsaXphdGlvblxuICAgKiBAcmV0dXJucyBTZXJpYWxpemVkIHZhbHVlXG4gICAqL1xuICBzZXJpYWxpemUodmFsdWU6IEUsIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIuc2VyaWFsaXplKHZhbHVlLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNvZGUgdGhlIGdpdmVuIHZhbHVlIGZvciB0aGUgZW51bSB0eXBlLlxuICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gZW5jb2RlXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIGVuY29kaW5nXG4gICAqIEByZXR1cm5zIEVuY29kZWQgdmFsdWVcbiAgICovXG4gIGVuY29kZSh2YWx1ZTogRSwgb3B0aW9ucz86IFBhcnNlck9wdGlvbnMpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnBhcnNlci5lbmNvZGUodmFsdWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgdW5wYWNrKHZhbHVlOiBFKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyLnVucGFjayh2YWx1ZSk7XG4gIH1cblxuICBwYWNrKHZhbHVlOiBudW1iZXJbXSkge1xuICAgIHJldHVybiB0aGlzLnBhcnNlci5wYWNrKHZhbHVlKTtcbiAgfVxufVxuIl19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3NjaGVtYS9lbnVtLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sRUFBNEIsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHMUUsTUFBTSxPQUFPLGFBQWlCLFNBQVEsa0JBQWtCO0lBR3RELFlBQVksTUFBeUIsRUFBRSxNQUFtQjtRQUN4RCxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksbUJBQW1CLENBQ25DLE1BQU0sRUFDTixNQUFNLENBQUMsU0FBUyxFQUNoQixNQUFNLENBQUMsS0FBSyxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUyxDQUFDLEVBQ1IsT0FBTyxFQUNQLGFBQWEsRUFDYixrQkFBa0IsR0FLbkI7UUFDQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsS0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsR0FBZTtRQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFJLE1BQWlEO1FBQzVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLEtBQVUsRUFBRSxPQUF1QjtRQUM3QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsS0FBUSxFQUFFLE9BQXVCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxLQUFRLEVBQUUsT0FBdUI7UUFDdEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQWU7UUFDbEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnVtVHlwZUNvbmZpZywgUGFyc2VyLCBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgT0RhdGFTY2hlbWFFbGVtZW50IH0gZnJvbSAnLi9lbGVtZW50JztcbmltcG9ydCB7IE9EYXRhRW51bVR5cGVGaWVsZFBhcnNlciwgT0RhdGFFbnVtVHlwZVBhcnNlciB9IGZyb20gJy4vcGFyc2Vycyc7XG5pbXBvcnQgeyBPRGF0YVNjaGVtYSB9IGZyb20gJy4vc2NoZW1hJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhRW51bVR5cGU8RT4gZXh0ZW5kcyBPRGF0YVNjaGVtYUVsZW1lbnQge1xuICBwYXJzZXI6IE9EYXRhRW51bVR5cGVQYXJzZXI8RT47XG4gIG1lbWJlcnM6IHsgW25hbWU6IHN0cmluZ106IEUgfSB8IHsgW3ZhbHVlOiBudW1iZXJdOiBzdHJpbmcgfTtcbiAgY29uc3RydWN0b3IoY29uZmlnOiBFbnVtVHlwZUNvbmZpZzxFPiwgc2NoZW1hOiBPRGF0YVNjaGVtYSkge1xuICAgIHN1cGVyKGNvbmZpZywgc2NoZW1hKTtcbiAgICB0aGlzLm1lbWJlcnMgPSBjb25maWcubWVtYmVycztcbiAgICB0aGlzLnBhcnNlciA9IG5ldyBPRGF0YUVudW1UeXBlUGFyc2VyPEU+KFxuICAgICAgY29uZmlnLFxuICAgICAgc2NoZW1hLm5hbWVzcGFjZSxcbiAgICAgIHNjaGVtYS5hbGlhcyxcbiAgICApO1xuICB9XG5cbiAgY29uZmlndXJlKHtcbiAgICBvcHRpb25zLFxuICAgIHBhcnNlckZvclR5cGUsXG4gICAgZmluZE9wdGlvbnNGb3JUeXBlLFxuICB9OiB7XG4gICAgb3B0aW9uczogUGFyc2VyT3B0aW9ucztcbiAgICBwYXJzZXJGb3JUeXBlOiAodHlwZTogc3RyaW5nKSA9PiBQYXJzZXI8YW55PjtcbiAgICBmaW5kT3B0aW9uc0ZvclR5cGU6ICh0eXBlOiBzdHJpbmcpID0+IGFueTtcbiAgfSkge1xuICAgIHRoaXMucGFyc2VyLmNvbmZpZ3VyZSh7IG9wdGlvbnMsIHBhcnNlckZvclR5cGUsIGZpbmRPcHRpb25zRm9yVHlwZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBmaWVsZHMgb2YgdGhlIGVudW0gdHlwZS5cbiAgICogQHJldHVybnMgVGhlIGZpZWxkcyBvZiB0aGUgZW51bSB0eXBlLlxuICAgKi9cbiAgZmllbGRzKHZhbHVlPzogRSk6IE9EYXRhRW51bVR5cGVGaWVsZFBhcnNlcjxFPltdIHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIuZmllbGRzKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIGEgZmllbGQgYnkgbmFtZSBvciB2YWx1ZS5cbiAgICogQHBhcmFtIGVudSBUaGUgbmFtZSBvciB2YWx1ZSBvZiB0aGUgZmllbGRcbiAgICogQHJldHVybnMgVGhlIGZpZWxkIHdpdGggdGhlIGdpdmVuIG5hbWUgb3IgdmFsdWVcbiAgICovXG4gIGZpZWxkKGVudTogc3RyaW5nIHwgRSkge1xuICAgIHJldHVybiB0aGlzLnBhcnNlci5maWVsZChlbnUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcCB0aGUgZmllbGRzIG9mIHRoZSBlbnVtIHR5cGUuXG4gICAqIEBwYXJhbSBtYXBwZXIgRnVuY3Rpb24gdGhhdCBtYXBzIHRoZSB2YWx1ZSB0byB0aGUgbmV3IHZhbHVlXG4gICAqIEByZXR1cm5zIFRoZSBmaWVsZHMgbWFwcGVkIGJ5IHRoZSBtYXBwZXJcbiAgICovXG4gIG1hcEZpZWxkczxUPihtYXBwZXI6IChmaWVsZDogT0RhdGFFbnVtVHlwZUZpZWxkUGFyc2VyPEU+KSA9PiBUKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyLm1hcEZpZWxkcyhtYXBwZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc2VpYWxpemUgdGhlIGdpdmVuIHZhbHVlIGZyb20gdGhlIGVudW0gdHlwZS5cbiAgICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGRlc2VyaWFsaXplXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIGRlc2VyaWFsaXphdGlvblxuICAgKiBAcmV0dXJucyBEZXNlcmlhbGl6ZWQgdmFsdWVcbiAgICovXG4gIGRlc2VyaWFsaXplKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogRSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyLmRlc2VyaWFsaXplKHZhbHVlLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemUgdGhlIGdpdmVuIHZhbHVlIGZvciB0aGUgZW51bSB0eXBlLlxuICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gc2VyaWFsaXplXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIHNlcmlhbGl6YXRpb25cbiAgICogQHJldHVybnMgU2VyaWFsaXplZCB2YWx1ZVxuICAgKi9cbiAgc2VyaWFsaXplKHZhbHVlOiBFLCBvcHRpb25zPzogUGFyc2VyT3B0aW9ucyk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyLnNlcmlhbGl6ZSh2YWx1ZSwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogRW5jb2RlIHRoZSBnaXZlbiB2YWx1ZSBmb3IgdGhlIGVudW0gdHlwZS5cbiAgICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGVuY29kZVxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGZvciBlbmNvZGluZ1xuICAgKiBAcmV0dXJucyBFbmNvZGVkIHZhbHVlXG4gICAqL1xuICBlbmNvZGUodmFsdWU6IEUsIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIuZW5jb2RlKHZhbHVlLCBvcHRpb25zKTtcbiAgfVxuXG4gIHVucGFjayh2YWx1ZTogRSkge1xuICAgIHJldHVybiB0aGlzLnBhcnNlci51bnBhY2sodmFsdWUpO1xuICB9XG5cbiAgcGFjayh2YWx1ZTogbnVtYmVyW10pIHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXIucGFjayh2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -104,4 +104,4 @@ export class ODataCallableParser {
104
104
  return this.parameters.find((p) => p.name === CALLABLE_BINDING_PARAMETER);
105
105
  }
106
106
  }
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvc2NoZW1hL3BhcnNlcnMvY2FsbGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0QsT0FBTyxFQUVMLFdBQVcsR0FJWixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFOUQsTUFBTSxPQUFPLG9CQUFvQjtJQVEvQixZQUFZLElBQVksRUFBRSxTQUFvQjtRQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQVEsRUFBRSxPQUF1QjtRQUN6QyxNQUFNLGFBQWEsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQzVELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDekIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUMzRCxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FB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NUQsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSywwQkFBMEIsQ0FBQyxDQUFDO0lBQzVFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENBTExBQkxFX0JJTkRJTkdfUEFSQU1FVEVSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIENhbGxhYmxlQ29uZmlnLFxuICBOT05FX1BBUlNFUixcbiAgUGFyc2VyT3B0aW9ucyxcbiAgUGFyYW1ldGVyLFxuICBQYXJzZXIsXG59IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE9EYXRhRW51bVR5cGVQYXJzZXIgfSBmcm9tICcuL2VudW0tdHlwZSc7XG5pbXBvcnQgeyBPRGF0YVN0cnVjdHVyZWRUeXBlUGFyc2VyIH0gZnJvbSAnLi9zdHJ1Y3R1cmVkLXR5cGUnO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFQYXJhbWV0ZXJQYXJzZXI8VD4ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgcHJpdmF0ZSBwYXJzZXI6IFBhcnNlcjxUPjtcbiAgY29sbGVjdGlvbj86IGJvb2xlYW47XG4gIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgcGFyc2VyT3B0aW9ucz86IFBhcnNlck9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBwYXJhbWV0ZXI6IFBhcmFtZXRlcikge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy50eXBlID0gcGFyYW1ldGVyLnR5cGU7XG4gICAgdGhpcy5wYXJzZXIgPSBOT05FX1BBUlNFUjtcbiAgICB0aGlzLm51bGxhYmxlID0gcGFyYW1ldGVyLm51bGxhYmxlO1xuICAgIHRoaXMuY29sbGVjdGlvbiA9IHBhcmFtZXRlci5jb2xsZWN0aW9uO1xuICB9XG5cbiAgc2VyaWFsaXplKHZhbHVlOiBULCBvcHRpb25zPzogUGFyc2VyT3B0aW9ucyk6IGFueSB7XG4gICAgY29uc3QgcGFyc2VyT3B0aW9ucyA9IHsgLi4udGhpcy5wYXJzZXJPcHRpb25zLCAuLi5vcHRpb25zIH07XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICA/IHZhbHVlLm1hcCgodikgPT4gdGhpcy5wYXJzZXIuc2VyaWFsaXplKHYsIHBhcnNlck9wdGlvbnMpKVxuICAgICAgOiB0aGlzLnBhcnNlci5zZXJpYWxpemUodmFsdWUsIHBhcnNlck9wdGlvbnMpO1xuICB9XG5cbiAgLy9FbmNvZGVcbiAgZW5jb2RlKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJzZXJPcHRpb25zID0geyAuLi50aGlzLnBhcnNlck9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgID8gdmFsdWUubWFwKCh2KSA9PiB0aGlzLnBhcnNlci5lbmNvZGUodiwgcGFyc2VyT3B0aW9ucykpXG4gICAgICA6IHRoaXMucGFyc2VyLmVuY29kZSh2YWx1ZSwgcGFyc2VyT3B0aW9ucyk7XG4gIH1cblxuICBjb25maWd1cmUoe1xuICAgIG9wdGlvbnMsXG4gICAgcGFyc2VyRm9yVHlwZSxcbiAgICBmaW5kT3B0aW9uc0ZvclR5cGUsXG4gIH06IHtcbiAgICBvcHRpb25zOiBQYXJzZXJPcHRpb25zO1xuICAgIHBhcnNlckZvclR5cGU6ICh0eXBlOiBzdHJpbmcpID0+IFBhcnNlcjxhbnk+O1xuICAgIGZpbmRPcHRpb25zRm9yVHlwZTogKHR5cGU6IHN0cmluZykgPT4gYW55O1xuICB9KSB7XG4gICAgdGhpcy5wYXJzZXJPcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlckZvclR5cGUodGhpcy50eXBlKTtcbiAgfVxuXG4gIGlzRWRtVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlLnN0YXJ0c1dpdGgoJ0VkbS4nKTtcbiAgfVxuXG4gIGlzRW51bVR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyIGluc3RhbmNlb2YgT0RhdGFFbnVtVHlwZVBhcnNlcjtcbiAgfVxuXG4gIGVudW0oKSB7XG4gICAgaWYgKCF0aGlzLmlzRW51bVR5cGUoKSkgdGhyb3cgbmV3IEVycm9yKCdGaWVsZCBhcmUgbm90IEVudW1UeXBlJyk7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyIGFzIE9EYXRhRW51bVR5cGVQYXJzZXI8VD47XG4gIH1cblxuICBpc1N0cnVjdHVyZWRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcnNlciBpbnN0YW5jZW9mIE9EYXRhU3RydWN0dXJlZFR5cGVQYXJzZXI7XG4gIH1cblxuICBzdHJ1Y3R1cmVkKCkge1xuICAgIGlmICghdGhpcy5pc1N0cnVjdHVyZWRUeXBlKCkpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpZWxkIGFyZSBub3QgU3RydWN1dHVyZWRUeXBlJyk7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyIGFzIE9EYXRhU3RydWN0dXJlZFR5cGVQYXJzZXI8VD47XG4gIH1cblxuICBmaWVsZDxGPihuYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5pc1N0cnVjdHVyZWRUeXBlKCkpXG4gICAgICByZXR1cm4gKHRoaXMucGFyc2VyIGFzIE9EYXRhU3RydWN0dXJlZFR5cGVQYXJzZXI8VD4pLmZpZWxkPEY+KFxuICAgICAgICBuYW1lIGFzIGtleW9mIFRcbiAgICAgICk7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFRoZSBmaWVsZCAke3RoaXMubmFtZX0gaXMgbm90IHJlbGF0ZWQgdG8gYSBTdHJ1Y3R1cmVkVHlwZWBcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPRGF0YUNhbGxhYmxlUGFyc2VyPFI+IGltcGxlbWVudHMgUGFyc2VyPFI+IHtcbiAgbmFtZTogc3RyaW5nO1xuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgYWxpYXM/OiBzdHJpbmc7XG4gIHJldHVybj86IHsgdHlwZTogc3RyaW5nOyBjb2xsZWN0aW9uPzogYm9vbGVhbiB9O1xuICBwYXJzZXI6IFBhcnNlcjxhbnk+O1xuICBwYXJhbWV0ZXJzOiBPRGF0YVBhcmFtZXRlclBhcnNlcjxhbnk+W107XG4gIHBhcnNlck9wdGlvbnM/OiBQYXJzZXJPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogQ2FsbGFibGVDb25maWcsIG5hbWVzcGFjZTogc3RyaW5nLCBhbGlhcz86IHN0cmluZykge1xuICAgIHRoaXMubmFtZSA9IGNvbmZpZy5uYW1lO1xuICAgIHRoaXMubmFtZXNwYWNlID0gbmFtZXNwYWNlO1xuICAgIHRoaXMuYWxpYXMgPSBhbGlhcztcbiAgICB0aGlzLnJldHVybiA9IGNvbmZpZy5yZXR1cm47XG4gICAgdGhpcy5wYXJzZXIgPSBOT05FX1BBUlNFUjtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBPYmplY3QuZW50cmllcyhjb25maWcucGFyYW1ldGVycyB8fCBbXSkubWFwKFxuICAgICAgKFtuYW1lLCBwXSkgPT4gbmV3IE9EYXRhUGFyYW1ldGVyUGFyc2VyKG5hbWUsIHAgYXMgUGFyYW1ldGVyKVxuICAgICk7XG4gIH1cblxuICBpc1R5cGVPZih0eXBlOiBzdHJpbmcpIHtcbiAgICB2YXIgbmFtZXMgPSBbYCR7dGhpcy5uYW1lc3BhY2V9LiR7dGhpcy5uYW1lfWBdO1xuICAgIGlmICh0aGlzLmFsaWFzKSBuYW1lcy5wdXNoKGAke3RoaXMuYWxpYXN9LiR7dGhpcy5uYW1lfWApO1xuICAgIHJldHVybiBuYW1lcy5pbmRleE9mKHR5cGUpICE9PSAtMTtcbiAgfVxuXG4gIC8vIERlc2VyaWFsaXplXG4gIGRlc2VyaWFsaXplKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogUiB7XG4gICAgY29uc3QgcGFyc2VyT3B0aW9ucyA9IHsgLi4udGhpcy5wYXJzZXJPcHRpb25zLCAuLi5vcHRpb25zIH07XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyLmRlc2VyaWFsaXplKHZhbHVlLCBwYXJzZXJPcHRpb25zKTtcbiAgfVxuXG4gIC8vIFNlcmlhbGl6ZVxuICBzZXJpYWxpemUocGFyYW1zOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogYW55IHtcbiAgICBjb25zdCBwYXJzZXJPcHRpb25zID0geyAuLi50aGlzLnBhcnNlck9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gdGhpcy5wYXJhbWV0ZXJzXG4gICAgICAuZmlsdGVyKChwKSA9PiBwLm5hbWUgIT09IENBTExBQkxFX0JJTkRJTkdfUEFSQU1FVEVSKVxuICAgICAgLmZpbHRlcigocCkgPT4gcC5uYW1lIGluIHBhcmFtcyAmJiBwYXJhbXNbcC5uYW1lXSAhPT0gdW5kZWZpbmVkKTtcbiAgICByZXR1cm4gcGFyYW1ldGVycy5yZWR1Y2UoXG4gICAgICAoYWNjLCBwKSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtwLm5hbWVdOiBwLnNlcmlhbGl6ZShwYXJhbXNbcC5uYW1lXSwgcGFyc2VyT3B0aW9ucyksXG4gICAgICB9KSxcbiAgICAgIHt9XG4gICAgKTtcbiAgfVxuXG4gIC8vRW5jb2RlXG4gIGVuY29kZShwYXJhbXM6IGFueSwgb3B0aW9ucz86IFBhcnNlck9wdGlvbnMpOiBhbnkge1xuICAgIGNvbnN0IHBhcnNlck9wdGlvbnMgPSB7IC4uLnRoaXMucGFyc2VyT3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB0aGlzLnBhcmFtZXRlcnNcbiAgICAgIC5maWx0ZXIoKHApID0+IHAubmFtZSAhPT0gQ0FMTEFCTEVfQklORElOR19QQVJBTUVURVIpXG4gICAgICAuZmlsdGVyKChwKSA9PiBwLm5hbWUgaW4gcGFyYW1zICYmIHBhcmFtc1twLm5hbWVdICE9PSB1bmRlZmluZWQpO1xuICAgIHJldHVybiBwYXJhbWV0ZXJzLnJlZHVjZShcbiAgICAgIChhY2MsIHApID0+ICh7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgW3AubmFtZV06IHAuZW5jb2RlKHBhcmFtc1twLm5hbWVdLCBwYXJzZXJPcHRpb25zKSxcbiAgICAgIH0pLFxuICAgICAge31cbiAgICApO1xuICB9XG5cbiAgY29uZmlndXJlKHtcbiAgICBvcHRpb25zLFxuICAgIHBhcnNlckZvclR5cGUsXG4gICAgZmluZE9wdGlvbnNGb3JUeXBlLFxuICB9OiB7XG4gICAgb3B0aW9uczogUGFyc2VyT3B0aW9ucztcbiAgICBwYXJzZXJGb3JUeXBlOiAodHlwZTogc3RyaW5nKSA9PiBQYXJzZXI8YW55PjtcbiAgICBmaW5kT3B0aW9uc0ZvclR5cGU6ICh0eXBlOiBzdHJpbmcpID0+IGFueTtcbiAgfSkge1xuICAgIHRoaXMucGFyc2VyT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgaWYgKHRoaXMucmV0dXJuKVxuICAgICAgdGhpcy5wYXJzZXIgPSBwYXJzZXJGb3JUeXBlKHRoaXMucmV0dXJuLnR5cGUpIHx8IE5PTkVfUEFSU0VSO1xuICAgIHRoaXMucGFyYW1ldGVycy5mb3JFYWNoKChwKSA9PlxuICAgICAgcC5jb25maWd1cmUoeyBvcHRpb25zLCBwYXJzZXJGb3JUeXBlLCBmaW5kT3B0aW9uc0ZvclR5cGUgfSlcbiAgICApO1xuICB9XG5cbiAgYmluZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzLmZpbmQoKHApID0+IHAubmFtZSA9PT0gQ0FMTEFCTEVfQklORElOR19QQVJBTUVURVIpO1xuICB9XG59XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvc2NoZW1hL3BhcnNlcnMvY2FsbGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0QsT0FBTyxFQUVMLFdBQVcsR0FJWixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFOUQsTUFBTSxPQUFPLG9CQUFvQjtJQVEvQixZQUFZLElBQVksRUFBRSxTQUFvQjtRQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQVEsRUFBRSxPQUF1QjtRQUN6QyxNQUFNLGFBQWEsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQzVELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDekIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUMzRCxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FB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NUQsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSywwQkFBMEIsQ0FBQyxDQUFDO0lBQzVFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENBTExBQkxFX0JJTkRJTkdfUEFSQU1FVEVSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIENhbGxhYmxlQ29uZmlnLFxuICBOT05FX1BBUlNFUixcbiAgUGFyc2VyT3B0aW9ucyxcbiAgUGFyYW1ldGVyLFxuICBQYXJzZXIsXG59IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE9EYXRhRW51bVR5cGVQYXJzZXIgfSBmcm9tICcuL2VudW0tdHlwZSc7XG5pbXBvcnQgeyBPRGF0YVN0cnVjdHVyZWRUeXBlUGFyc2VyIH0gZnJvbSAnLi9zdHJ1Y3R1cmVkLXR5cGUnO1xuXG5leHBvcnQgY2xhc3MgT0RhdGFQYXJhbWV0ZXJQYXJzZXI8VD4ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgcHJpdmF0ZSBwYXJzZXI6IFBhcnNlcjxUPjtcbiAgY29sbGVjdGlvbj86IGJvb2xlYW47XG4gIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgcGFyc2VyT3B0aW9ucz86IFBhcnNlck9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBwYXJhbWV0ZXI6IFBhcmFtZXRlcikge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy50eXBlID0gcGFyYW1ldGVyLnR5cGU7XG4gICAgdGhpcy5wYXJzZXIgPSBOT05FX1BBUlNFUjtcbiAgICB0aGlzLm51bGxhYmxlID0gcGFyYW1ldGVyLm51bGxhYmxlO1xuICAgIHRoaXMuY29sbGVjdGlvbiA9IHBhcmFtZXRlci5jb2xsZWN0aW9uO1xuICB9XG5cbiAgc2VyaWFsaXplKHZhbHVlOiBULCBvcHRpb25zPzogUGFyc2VyT3B0aW9ucyk6IGFueSB7XG4gICAgY29uc3QgcGFyc2VyT3B0aW9ucyA9IHsgLi4udGhpcy5wYXJzZXJPcHRpb25zLCAuLi5vcHRpb25zIH07XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICA/IHZhbHVlLm1hcCgodikgPT4gdGhpcy5wYXJzZXIuc2VyaWFsaXplKHYsIHBhcnNlck9wdGlvbnMpKVxuICAgICAgOiB0aGlzLnBhcnNlci5zZXJpYWxpemUodmFsdWUsIHBhcnNlck9wdGlvbnMpO1xuICB9XG5cbiAgLy9FbmNvZGVcbiAgZW5jb2RlKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJzZXJPcHRpb25zID0geyAuLi50aGlzLnBhcnNlck9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgID8gdmFsdWUubWFwKCh2KSA9PiB0aGlzLnBhcnNlci5lbmNvZGUodiwgcGFyc2VyT3B0aW9ucykpXG4gICAgICA6IHRoaXMucGFyc2VyLmVuY29kZSh2YWx1ZSwgcGFyc2VyT3B0aW9ucyk7XG4gIH1cblxuICBjb25maWd1cmUoe1xuICAgIG9wdGlvbnMsXG4gICAgcGFyc2VyRm9yVHlwZSxcbiAgICBmaW5kT3B0aW9uc0ZvclR5cGUsXG4gIH06IHtcbiAgICBvcHRpb25zOiBQYXJzZXJPcHRpb25zO1xuICAgIHBhcnNlckZvclR5cGU6ICh0eXBlOiBzdHJpbmcpID0+IFBhcnNlcjxhbnk+O1xuICAgIGZpbmRPcHRpb25zRm9yVHlwZTogKHR5cGU6IHN0cmluZykgPT4gYW55O1xuICB9KSB7XG4gICAgdGhpcy5wYXJzZXJPcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlckZvclR5cGUodGhpcy50eXBlKTtcbiAgfVxuXG4gIGlzRWRtVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlLnN0YXJ0c1dpdGgoJ0VkbS4nKTtcbiAgfVxuXG4gIGlzRW51bVR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyIGluc3RhbmNlb2YgT0RhdGFFbnVtVHlwZVBhcnNlcjtcbiAgfVxuXG4gIGVudW0oKSB7XG4gICAgaWYgKCF0aGlzLmlzRW51bVR5cGUoKSkgdGhyb3cgbmV3IEVycm9yKCdGaWVsZCBhcmUgbm90IEVudW1UeXBlJyk7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyIGFzIE9EYXRhRW51bVR5cGVQYXJzZXI8VD47XG4gIH1cblxuICBpc1N0cnVjdHVyZWRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcnNlciBpbnN0YW5jZW9mIE9EYXRhU3RydWN0dXJlZFR5cGVQYXJzZXI7XG4gIH1cblxuICBzdHJ1Y3R1cmVkKCkge1xuICAgIGlmICghdGhpcy5pc1N0cnVjdHVyZWRUeXBlKCkpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpZWxkIGFyZSBub3QgU3RydWN1dHVyZWRUeXBlJyk7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyIGFzIE9EYXRhU3RydWN0dXJlZFR5cGVQYXJzZXI8VD47XG4gIH1cblxuICBmaWVsZDxGPihuYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5pc1N0cnVjdHVyZWRUeXBlKCkpXG4gICAgICByZXR1cm4gKHRoaXMucGFyc2VyIGFzIE9EYXRhU3RydWN0dXJlZFR5cGVQYXJzZXI8VD4pLmZpZWxkPEY+KFxuICAgICAgICBuYW1lIGFzIGtleW9mIFQsXG4gICAgICApO1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBUaGUgZmllbGQgJHt0aGlzLm5hbWV9IGlzIG5vdCByZWxhdGVkIHRvIGEgU3RydWN0dXJlZFR5cGVgLFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9EYXRhQ2FsbGFibGVQYXJzZXI8Uj4gaW1wbGVtZW50cyBQYXJzZXI8Uj4ge1xuICBuYW1lOiBzdHJpbmc7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBhbGlhcz86IHN0cmluZztcbiAgcmV0dXJuPzogeyB0eXBlOiBzdHJpbmc7IGNvbGxlY3Rpb24/OiBib29sZWFuIH07XG4gIHBhcnNlcjogUGFyc2VyPGFueT47XG4gIHBhcmFtZXRlcnM6IE9EYXRhUGFyYW1ldGVyUGFyc2VyPGFueT5bXTtcbiAgcGFyc2VyT3B0aW9ucz86IFBhcnNlck9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBDYWxsYWJsZUNvbmZpZywgbmFtZXNwYWNlOiBzdHJpbmcsIGFsaWFzPzogc3RyaW5nKSB7XG4gICAgdGhpcy5uYW1lID0gY29uZmlnLm5hbWU7XG4gICAgdGhpcy5uYW1lc3BhY2UgPSBuYW1lc3BhY2U7XG4gICAgdGhpcy5hbGlhcyA9IGFsaWFzO1xuICAgIHRoaXMucmV0dXJuID0gY29uZmlnLnJldHVybjtcbiAgICB0aGlzLnBhcnNlciA9IE5PTkVfUEFSU0VSO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IE9iamVjdC5lbnRyaWVzKGNvbmZpZy5wYXJhbWV0ZXJzIHx8IFtdKS5tYXAoXG4gICAgICAoW25hbWUsIHBdKSA9PiBuZXcgT0RhdGFQYXJhbWV0ZXJQYXJzZXIobmFtZSwgcCBhcyBQYXJhbWV0ZXIpLFxuICAgICk7XG4gIH1cblxuICBpc1R5cGVPZih0eXBlOiBzdHJpbmcpIHtcbiAgICB2YXIgbmFtZXMgPSBbYCR7dGhpcy5uYW1lc3BhY2V9LiR7dGhpcy5uYW1lfWBdO1xuICAgIGlmICh0aGlzLmFsaWFzKSBuYW1lcy5wdXNoKGAke3RoaXMuYWxpYXN9LiR7dGhpcy5uYW1lfWApO1xuICAgIHJldHVybiBuYW1lcy5pbmRleE9mKHR5cGUpICE9PSAtMTtcbiAgfVxuXG4gIC8vIERlc2VyaWFsaXplXG4gIGRlc2VyaWFsaXplKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogUiB7XG4gICAgY29uc3QgcGFyc2VyT3B0aW9ucyA9IHsgLi4udGhpcy5wYXJzZXJPcHRpb25zLCAuLi5vcHRpb25zIH07XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyLmRlc2VyaWFsaXplKHZhbHVlLCBwYXJzZXJPcHRpb25zKTtcbiAgfVxuXG4gIC8vIFNlcmlhbGl6ZVxuICBzZXJpYWxpemUocGFyYW1zOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogYW55IHtcbiAgICBjb25zdCBwYXJzZXJPcHRpb25zID0geyAuLi50aGlzLnBhcnNlck9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gdGhpcy5wYXJhbWV0ZXJzXG4gICAgICAuZmlsdGVyKChwKSA9PiBwLm5hbWUgIT09IENBTExBQkxFX0JJTkRJTkdfUEFSQU1FVEVSKVxuICAgICAgLmZpbHRlcigocCkgPT4gcC5uYW1lIGluIHBhcmFtcyAmJiBwYXJhbXNbcC5uYW1lXSAhPT0gdW5kZWZpbmVkKTtcbiAgICByZXR1cm4gcGFyYW1ldGVycy5yZWR1Y2UoXG4gICAgICAoYWNjLCBwKSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtwLm5hbWVdOiBwLnNlcmlhbGl6ZShwYXJhbXNbcC5uYW1lXSwgcGFyc2VyT3B0aW9ucyksXG4gICAgICB9KSxcbiAgICAgIHt9LFxuICAgICk7XG4gIH1cblxuICAvL0VuY29kZVxuICBlbmNvZGUocGFyYW1zOiBhbnksIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogYW55IHtcbiAgICBjb25zdCBwYXJzZXJPcHRpb25zID0geyAuLi50aGlzLnBhcnNlck9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gdGhpcy5wYXJhbWV0ZXJzXG4gICAgICAuZmlsdGVyKChwKSA9PiBwLm5hbWUgIT09IENBTExBQkxFX0JJTkRJTkdfUEFSQU1FVEVSKVxuICAgICAgLmZpbHRlcigocCkgPT4gcC5uYW1lIGluIHBhcmFtcyAmJiBwYXJhbXNbcC5uYW1lXSAhPT0gdW5kZWZpbmVkKTtcbiAgICByZXR1cm4gcGFyYW1ldGVycy5yZWR1Y2UoXG4gICAgICAoYWNjLCBwKSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtwLm5hbWVdOiBwLmVuY29kZShwYXJhbXNbcC5uYW1lXSwgcGFyc2VyT3B0aW9ucyksXG4gICAgICB9KSxcbiAgICAgIHt9LFxuICAgICk7XG4gIH1cblxuICBjb25maWd1cmUoe1xuICAgIG9wdGlvbnMsXG4gICAgcGFyc2VyRm9yVHlwZSxcbiAgICBmaW5kT3B0aW9uc0ZvclR5cGUsXG4gIH06IHtcbiAgICBvcHRpb25zOiBQYXJzZXJPcHRpb25zO1xuICAgIHBhcnNlckZvclR5cGU6ICh0eXBlOiBzdHJpbmcpID0+IFBhcnNlcjxhbnk+O1xuICAgIGZpbmRPcHRpb25zRm9yVHlwZTogKHR5cGU6IHN0cmluZykgPT4gYW55O1xuICB9KSB7XG4gICAgdGhpcy5wYXJzZXJPcHRpb25zID0gb3B0aW9ucztcbiAgICBpZiAodGhpcy5yZXR1cm4pXG4gICAgICB0aGlzLnBhcnNlciA9IHBhcnNlckZvclR5cGUodGhpcy5yZXR1cm4udHlwZSkgfHwgTk9ORV9QQVJTRVI7XG4gICAgdGhpcy5wYXJhbWV0ZXJzLmZvckVhY2goKHApID0+XG4gICAgICBwLmNvbmZpZ3VyZSh7IG9wdGlvbnMsIHBhcnNlckZvclR5cGUsIGZpbmRPcHRpb25zRm9yVHlwZSB9KSxcbiAgICApO1xuICB9XG5cbiAgYmluZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzLmZpbmQoKHApID0+IHAubmFtZSA9PT0gQ0FMTEFCTEVfQklORElOR19QQVJBTUVURVIpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,99 @@
1
+ import { raw } from '../../resources/query';
2
+ import { EdmType } from '../../types';
3
+ import { ArrayBuffers } from '../../utils/arraybuffers';
4
+ import { Durations } from '../../utils/durations';
5
+ // Core EdmTypeParserBuilder
6
+ const EdmParser = (_d, _s, _e) => ({
7
+ deserialize(value, options) {
8
+ return Array.isArray(value)
9
+ ? value.map((v) => _d(v, options))
10
+ : _d(value, options);
11
+ },
12
+ serialize(value, options) {
13
+ return Array.isArray(value)
14
+ ? value.map((v) => _s(v, options))
15
+ : _s(value, options);
16
+ },
17
+ encode(value, options) {
18
+ return Array.isArray(value)
19
+ ? value.map((v) => _e(v, options))
20
+ : _e(value, options);
21
+ },
22
+ });
23
+ const Identity = (v) => v;
24
+ const toNumber = (v) => Number(v);
25
+ const toString = (v) => v.toString();
26
+ const toBoolean = (v) => Boolean(v);
27
+ const toDate = (v) => new Date(v);
28
+ export const EDM_PARSERS = {
29
+ //Edm.Guid 16-byte (128-bit) unique identifier
30
+ [EdmType.Guid]: EdmParser(Identity, Identity, (v) => raw(v)),
31
+ //Edm.Int16 Signed 16-bit integer
32
+ [EdmType.Int16]: EdmParser(toNumber, toNumber, toNumber),
33
+ //Edm.String Sequence of UTF-8 characters
34
+ [EdmType.String]: EdmParser(toString, toString, toString),
35
+ //Edm.Boolean Binary-valued logic
36
+ [EdmType.Boolean]: EdmParser(toBoolean, toBoolean, toBoolean),
37
+ //Edm.Byte Unsigned 8-bit integer
38
+ [EdmType.Byte]: EdmParser(toNumber, toNumber, toNumber),
39
+ //Edm.SByte Signed 8-bit integer
40
+ [EdmType.SByte]: EdmParser(toNumber, toNumber, toNumber),
41
+ //Edm.Int32 Signed 16-bit integer
42
+ [EdmType.Int32]: EdmParser(toNumber, toNumber, toNumber),
43
+ //Edm.Int64 Signed 16-bit integer
44
+ [EdmType.Int64]: EdmParser(toNumber, toNumber, toNumber),
45
+ //Edm.Date Date without a time-zone offset
46
+ [EdmType.Date]: EdmParser((v) => new Date(`${v}T00:00:00.000Z`), (v) => toDate(v).toISOString().substring(0, 10), (v) => raw(toDate(v).toISOString().substring(0, 10))),
47
+ //Edm.TimeOfDay Clock time 00:00-23:59:59.999999999999
48
+ [EdmType.TimeOfDay]: EdmParser((v) => new Date(`1970-01-01T${v}Z`), (v) => toDate(v).toISOString().substring(11, 23), (v) => raw(toDate(v).toISOString().substring(11, 23))),
49
+ //Edm.DateTimeOffset Date and time with a time-zone offset, no leap seconds
50
+ [EdmType.DateTimeOffset]: EdmParser(toDate, (v) => toDate(v).toISOString(), (v) => raw(toDate(v).toISOString())),
51
+ //Edm.Duration Signed duration in days, hours, minutes, and (sub)seconds
52
+ [EdmType.Duration]: EdmParser((v) => Durations.toDuration(v), (v) => Durations.toString(v), (v) => raw(Durations.toString(v))),
53
+ //Edm.Decimal Numeric values with fixed precision and scale
54
+ [EdmType.Decimal]: EdmParser(toNumber, (v, o) => {
55
+ if (o.ieee754Compatible) {
56
+ let vstr = v.toPrecision(o.field.precision);
57
+ if (typeof o.field.scale === 'number') {
58
+ vstr = parseFloat(vstr).toFixed(o.field.scale);
59
+ }
60
+ return vstr;
61
+ }
62
+ return v;
63
+ }, (v, o) => {
64
+ if (o.ieee754Compatible) {
65
+ let vstr = v.toPrecision(o.field.precision);
66
+ if (typeof o.field.scale === 'number') {
67
+ vstr = parseFloat(vstr).toFixed(o.field.scale);
68
+ }
69
+ return raw(vstr);
70
+ }
71
+ return v;
72
+ }),
73
+ //Edm.Double IEEE 754 binary64 floating-point number (15-17 decimal digits)
74
+ [EdmType.Double]: EdmParser((v) => (v === 'INF' ? Infinity : v), (v) => (v === Infinity ? 'INF' : v), (v) => raw(v === Infinity ? 'INF' : v.toString())),
75
+ //Edm.Single IEEE 754 binary32 floating-point number (6-9 decimal digits)
76
+ [EdmType.Single]: EdmParser((v) => (v === 'INF' ? Infinity : v), (v) => (v === Infinity ? 'INF' : v), (v) => raw(v === Infinity ? 'INF' : v.toString())),
77
+ //Edm.Binary Binary data
78
+ [EdmType.Binary]: EdmParser((v) => ArrayBuffers.toArrayBuffer(v), (v) => ArrayBuffers.toString(v), (v) => raw(ArrayBuffers.toString(v))),
79
+ };
80
+ /*
81
+ Edm.Stream Binary data stream
82
+ Edm.Geography Abstract base type for all Geography types
83
+ Edm.GeographyPoint A point in a round-earth coordinate system
84
+ Edm.GeographyLineString Line string in a round-earth coordinate system
85
+ Edm.GeographyPolygon Polygon in a round-earth coordinate system
86
+ Edm.GeographyMultiPoint Collection of points in a round-earth coordinate system
87
+ Edm.GeographyMultiLineString Collection of line strings in a round-earth coordinate system
88
+ Edm.GeographyMultiPolygon Collection of polygons in a round-earth coordinate system
89
+ Edm.GeographyCollection Collection of arbitrary Geography values
90
+ Edm.Geometry Abstract base type for all Geometry types
91
+ Edm.GeometryPoint Point in a flat-earth coordinate system
92
+ Edm.GeometryLineString Line string in a flat-earth coordinate system
93
+ Edm.GeometryPolygon Polygon in a flat-earth coordinate system
94
+ Edm.GeometryMultiPoint Collection of points in a flat-earth coordinate system
95
+ Edm.GeometryMultiLineString Collection of line strings in a flat-earth coordinate system
96
+ Edm.GeometryMultiPolygon Collection of polygons in a flat-earth coordinate system
97
+ Edm.GeometryCollection Collection of arbitrary Geometry values
98
+ */
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3NjaGVtYS9wYXJzZXJzL2VkbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBMkMsTUFBTSxhQUFhLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBWSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCw0QkFBNEI7QUFDNUIsTUFBTSxTQUFTLEdBQUcsQ0FDaEIsRUFBZ0QsRUFDaEQsRUFBa0QsRUFDbEQsRUFBa0QsRUFDNUIsRUFBRSxDQUFDLENBQUM7SUFDMUIsV0FBVyxDQUFDLEtBQVUsRUFBRSxPQUFtQztRQUN6RCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxTQUFTLENBQUMsS0FBVSxFQUFFLE9BQW1DO1FBQ3ZELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDekIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDbEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELE1BQU0sQ0FBQyxLQUFVLEVBQUUs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QyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQzFEO0lBQ0QseUVBQXlFO0lBQ3pFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsQ0FDekIsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBRSxDQUFZLENBQUMsRUFDcEQsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDM0MsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUMxRDtJQUNELHdCQUF3QjtJQUN4QixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLENBQ3pCLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUM1QyxDQUFDLENBQWMsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFDNUMsQ0FBQyxDQUFjLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2xEO0NBQ0YsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFrQkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByYXcgfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvcXVlcnknO1xuaW1wb3J0IHsgRWRtVHlwZSwgRmllbGRQYXJzZXIsIFN0cnVjdHVyZWRUeXBlRmllbGRPcHRpb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQXJyYXlCdWZmZXJzIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXJyYXlidWZmZXJzJztcbmltcG9ydCB7IER1cmF0aW9uLCBEdXJhdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscy9kdXJhdGlvbnMnO1xuXG4vLyBDb3JlIEVkbVR5cGVQYXJzZXJCdWlsZGVyXG5jb25zdCBFZG1QYXJzZXIgPSA8VD4oXG4gIF9kOiAodjogYW55LCBvOiBTdHJ1Y3R1cmVkVHlwZUZpZWxkT3B0aW9ucykgPT4gVCxcbiAgX3M6ICh2OiBhbnksIG86IFN0cnVjdHVyZWRUeXBlRmllbGRPcHRpb25zKSA9PiBhbnksXG4gIF9lOiAodjogYW55LCBvOiBTdHJ1Y3R1cmVkVHlwZUZpZWxkT3B0aW9ucykgPT4gYW55LFxuKTogRmllbGRQYXJzZXI8VCB8IFRbXT4gPT4gKHtcbiAgZGVzZXJpYWxpemUodmFsdWU6IGFueSwgb3B0aW9uczogU3RydWN0dXJlZFR5cGVGaWVsZE9wdGlvbnMpOiBUIHwgVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgID8gdmFsdWUubWFwKCh2KSA9PiBfZCh2LCBvcHRpb25zKSlcbiAgICAgIDogX2QodmFsdWUsIG9wdGlvbnMpO1xuICB9LFxuICBzZXJpYWxpemUodmFsdWU6IGFueSwgb3B0aW9uczogU3RydWN0dXJlZFR5cGVGaWVsZE9wdGlvbnMpOiBhbnkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgPyB2YWx1ZS5tYXAoKHYpID0+IF9zKHYsIG9wdGlvbnMpKVxuICAgICAgOiBfcyh2YWx1ZSwgb3B0aW9ucyk7XG4gIH0sXG4gIGVuY29kZSh2YWx1ZTogYW55LCBvcHRpb25zOiBTdHJ1Y3R1cmVkVHlwZUZpZWxkT3B0aW9ucyk6IGFueSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICA/IHZhbHVlLm1hcCgodikgPT4gX2Uodiwgb3B0aW9ucykpXG4gICAgICA6IF9lKHZhbHVlLCBvcHRpb25zKTtcbiAgfSxcbn0pO1xuXG5jb25zdCBJZGVudGl0eSA9ICh2OiBhbnkpID0+IHY7XG5jb25zdCB0b051bWJlciA9ICh2OiBhbnkpID0+IE51bWJlcih2KTtcbmNvbnN0IHRvU3RyaW5nID0gKHY6IGFueSkgPT4gdi50b1N0cmluZygpO1xuY29uc3QgdG9Cb29sZWFuID0gKHY6IGFueSkgPT4gQm9vbGVhbih2KTtcbmNvbnN0IHRvRGF0ZSA9ICh2OiBhbnkpID0+IG5ldyBEYXRlKHYpO1xuXG5leHBvcnQgY29uc3QgRURNX1BBUlNFUlM6IHsgW3R5cGU6IHN0cmluZ106IEZpZWxkUGFyc2VyPGFueT4gfSA9IHtcbiAgLy9FZG0uR3VpZCAxNi1ieXRlICgxMjgtYml0KSB1bmlxdWUgaWRlbnRpZmllclxuICBbRWRtVHlwZS5HdWlkXTogRWRtUGFyc2VyPHN0cmluZz4oSWRlbnRpdHksIElkZW50aXR5LCAodjogc3RyaW5nKSA9PiByYXcodikpLFxuICAvL0VkbS5JbnQxNiBTaWduZWQgMTYtYml0IGludGVnZXJcbiAgW0VkbVR5cGUuSW50MTZdOiBFZG1QYXJzZXI8bnVtYmVyPih0b051bWJlciwgdG9OdW1iZXIsIHRvTnVtYmVyKSxcbiAgLy9FZG0uU3RyaW5nIFNlcXVlbmNlIG9mIFVURi04IGNoYXJhY3RlcnNcbiAgW0VkbVR5cGUuU3RyaW5nXTogRWRtUGFyc2VyPHN0cmluZz4odG9TdHJpbmcsIHRvU3RyaW5nLCB0b1N0cmluZyksXG4gIC8vRWRtLkJvb2xlYW4gQmluYXJ5LXZhbHVlZCBsb2dpY1xuICBbRWRtVHlwZS5Cb29sZWFuXTogRWRtUGFyc2VyPGJvb2xlYW4+KHRvQm9vbGVhbiwgdG9Cb29sZWFuLCB0b0Jvb2xlYW4pLFxuICAvL0VkbS5CeXRlIFVuc2lnbmVkIDgtYml0IGludGVnZXJcbiAgW0VkbVR5cGUuQnl0ZV06IEVkbVBhcnNlcjxudW1iZXI+KHRvTnVtYmVyLCB0b051bWJlciwgdG9OdW1iZXIpLFxuICAvL0VkbS5TQnl0ZSBTaWduZWQgOC1iaXQgaW50ZWdlclxuICBbRWRtVHlwZS5TQnl0ZV06IEVkbVBhcnNlcjxudW1iZXI+KHRvTnVtYmVyLCB0b051bWJlciwgdG9OdW1iZXIpLFxuICAvL0VkbS5JbnQzMiBTaWduZWQgMTYtYml0IGludGVnZXJcbiAgW0VkbVR5cGUuSW50MzJdOiBFZG1QYXJzZXI8bnVtYmVyPih0b051bWJlciwgdG9OdW1iZXIsIHRvTnVtYmVyKSxcbiAgLy9FZG0uSW50NjQgU2lnbmVkIDE2LWJpdCBpbnRlZ2VyXG4gIFtFZG1UeXBlLkludDY0XTogRWRtUGFyc2VyPG51bWJlcj4odG9OdW1iZXIsIHRvTnVtYmVyLCB0b051bWJlciksXG4gIC8vRWRtLkRhdGUgRGF0ZSB3aXRob3V0IGEgdGltZS16b25lIG9mZnNldFxuICBbRWRtVHlwZS5EYXRlXTogRWRtUGFyc2VyPERhdGU+KFxuICAgICh2OiBhbnkpID0+IG5ldyBEYXRlKGAke3Z9VDAwOjAwOjAwLjAwMFpgKSxcbiAgICAodjogYW55KSA9PiB0b0RhdGUodikudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMCwgMTApLFxuICAgICh2OiBhbnkpID0+IHJhdyh0b0RhdGUodikudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMCwgMTApKSxcbiAgKSxcbiAgLy9FZG0uVGltZU9mRGF5IENsb2NrIHRpbWUgMDA6MDAtMjM6NTk6NTkuOTk5OTk5OTk5OTk5XG4gIFtFZG1UeXBlLlRpbWVPZkRheV06IEVkbVBhcnNlcjxEYXRlPihcbiAgICAodjogYW55KSA9PiBuZXcgRGF0ZShgMTk3MC0wMS0wMVQke3Z9WmApLFxuICAgICh2OiBhbnkpID0+IHRvRGF0ZSh2KS50b0lTT1N0cmluZygpLnN1YnN0cmluZygxMSwgMjMpLFxuICAgICh2OiBhbnkpID0+IHJhdyh0b0RhdGUodikudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMTEsIDIzKSksXG4gICksXG4gIC8vRWRtLkRhdGVUaW1lT2Zmc2V0IERhdGUgYW5kIHRpbWUgd2l0aCBhIHRpbWUtem9uZSBvZmZzZXQsIG5vIGxlYXAgc2Vjb25kc1xuICBbRWRtVHlwZS5EYXRlVGltZU9mZnNldF06IEVkbVBhcnNlcjxEYXRlPihcbiAgICB0b0RhdGUsXG4gICAgKHY6IGFueSkgPT4gdG9EYXRlKHYpLnRvSVNPU3RyaW5nKCksXG4gICAgKHY6IGFueSkgPT4gcmF3KHRvRGF0ZSh2KS50b0lTT1N0cmluZygpKSxcbiAgKSxcbiAgLy9FZG0uRHVyYXRpb24gU2lnbmVkIGR1cmF0aW9uIGluIGRheXMsIGhvdXJzLCBtaW51dGVzLCBhbmQgKHN1YilzZWNvbmRzXG4gIFtFZG1UeXBlLkR1cmF0aW9uXTogRWRtUGFyc2VyPER1cmF0aW9uPihcbiAgICAodjogYW55KSA9PiBEdXJhdGlvbnMudG9EdXJhdGlvbih2KSxcbiAgICAodjogRHVyYXRpb24pID0+IER1cmF0aW9ucy50b1N0cmluZyh2KSxcbiAgICAodjogRHVyYXRpb24pID0+IHJhdyhEdXJhdGlvbnMudG9TdHJpbmcodikpLFxuICApLFxuICAvL0VkbS5EZWNpbWFsIE51bWVyaWMgdmFsdWVzIHdpdGggZml4ZWQgcHJlY2lzaW9uIGFuZCBzY2FsZVxuICBbRWRtVHlwZS5EZWNpbWFsXTogRWRtUGFyc2VyPG51bWJlcj4oXG4gICAgdG9OdW1iZXIsXG4gICAgKHY6IG51bWJlciwgbzogU3RydWN0dXJlZFR5cGVGaWVsZE9wdGlvbnMpID0+IHtcbiAgICAgIGlmIChvLmllZWU3NTRDb21wYXRpYmxlKSB7XG4gICAgICAgIGxldCB2c3RyID0gdi50b1ByZWNpc2lvbihvLmZpZWxkLnByZWNpc2lvbik7XG4gICAgICAgIGlmICh0eXBlb2Ygby5maWVsZC5zY2FsZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICB2c3RyID0gcGFyc2VGbG9hdCh2c3RyKS50b0ZpeGVkKG8uZmllbGQuc2NhbGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2c3RyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHY7XG4gICAgfSxcbiAgICAodjogbnVtYmVyLCBvOiBTdHJ1Y3R1cmVkVHlwZUZpZWxkT3B0aW9ucykgPT4ge1xuICAgICAgaWYgKG8uaWVlZTc1NENvbXBhdGlibGUpIHtcbiAgICAgICAgbGV0IHZzdHIgPSB2LnRvUHJlY2lzaW9uKG8uZmllbGQucHJlY2lzaW9uKTtcbiAgICAgICAgaWYgKHR5cGVvZiBvLmZpZWxkLnNjYWxlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHZzdHIgPSBwYXJzZUZsb2F0KHZzdHIpLnRvRml4ZWQoby5maWVsZC5zY2FsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJhdyh2c3RyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2O1xuICAgIH0sXG4gICksXG4gIC8vRWRtLkRvdWJsZSBJRUVFIDc1NCBiaW5hcnk2NCBmbG9hdGluZy1wb2ludCBudW1iZXIgKDE1LTE3IGRlY2ltYWwgZGlnaXRzKVxuICBbRWRtVHlwZS5Eb3VibGVdOiBFZG1QYXJzZXI8bnVtYmVyPihcbiAgICAodjogYW55KSA9PiAodiA9PT0gJ0lORicgPyBJbmZpbml0eSA6ICh2IGFzIG51bWJlcikpLFxuICAgICh2OiBudW1iZXIpID0+ICh2ID09PSBJbmZpbml0eSA/ICdJTkYnIDogdiksXG4gICAgKHY6IG51bWJlcikgPT4gcmF3KHYgPT09IEluZmluaXR5ID8gJ0lORicgOiB2LnRvU3RyaW5nKCkpLFxuICApLFxuICAvL0VkbS5TaW5nbGUgSUVFRSA3NTQgYmluYXJ5MzIgZmxvYXRpbmctcG9pbnQgbnVtYmVyICg2LTkgZGVjaW1hbCBkaWdpdHMpXG4gIFtFZG1UeXBlLlNpbmdsZV06IEVkbVBhcnNlcjxudW1iZXI+KFxuICAgICh2OiBhbnkpID0+ICh2ID09PSAnSU5GJyA/IEluZmluaXR5IDogKHYgYXMgbnVtYmVyKSksXG4gICAgKHY6IG51bWJlcikgPT4gKHYgPT09IEluZmluaXR5ID8gJ0lORicgOiB2KSxcbiAgICAodjogbnVtYmVyKSA9PiByYXcodiA9PT0gSW5maW5pdHkgPyAnSU5GJyA6IHYudG9TdHJpbmcoKSksXG4gICksXG4gIC8vRWRtLkJpbmFyeSBCaW5hcnkgZGF0YVxuICBbRWRtVHlwZS5CaW5hcnldOiBFZG1QYXJzZXI8QXJyYXlCdWZmZXI+KFxuICAgICh2OiBzdHJpbmcpID0+IEFycmF5QnVmZmVycy50b0FycmF5QnVmZmVyKHYpLFxuICAgICh2OiBBcnJheUJ1ZmZlcikgPT4gQXJyYXlCdWZmZXJzLnRvU3RyaW5nKHYpLFxuICAgICh2OiBBcnJheUJ1ZmZlcikgPT4gcmF3KEFycmF5QnVmZmVycy50b1N0cmluZyh2KSksXG4gICksXG59O1xuXG4vKlxuRWRtLlN0cmVhbSBCaW5hcnkgZGF0YSBzdHJlYW1cbkVkbS5HZW9ncmFwaHkgQWJzdHJhY3QgYmFzZSB0eXBlIGZvciBhbGwgR2VvZ3JhcGh5IHR5cGVzXG5FZG0uR2VvZ3JhcGh5UG9pbnQgQSBwb2ludCBpbiBhIHJvdW5kLWVhcnRoIGNvb3JkaW5hdGUgc3lzdGVtXG5FZG0uR2VvZ3JhcGh5TGluZVN0cmluZyBMaW5lIHN0cmluZyBpbiBhIHJvdW5kLWVhcnRoIGNvb3JkaW5hdGUgc3lzdGVtXG5FZG0uR2VvZ3JhcGh5UG9seWdvbiBQb2x5Z29uIGluIGEgcm91bmQtZWFydGggY29vcmRpbmF0ZSBzeXN0ZW1cbkVkbS5HZW9ncmFwaHlNdWx0aVBvaW50IENvbGxlY3Rpb24gb2YgcG9pbnRzIGluIGEgcm91bmQtZWFydGggY29vcmRpbmF0ZSBzeXN0ZW1cbkVkbS5HZW9ncmFwaHlNdWx0aUxpbmVTdHJpbmcgQ29sbGVjdGlvbiBvZiBsaW5lIHN0cmluZ3MgaW4gYSByb3VuZC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuRWRtLkdlb2dyYXBoeU11bHRpUG9seWdvbiBDb2xsZWN0aW9uIG9mIHBvbHlnb25zIGluIGEgcm91bmQtZWFydGggY29vcmRpbmF0ZSBzeXN0ZW1cbkVkbS5HZW9ncmFwaHlDb2xsZWN0aW9uIENvbGxlY3Rpb24gb2YgYXJiaXRyYXJ5IEdlb2dyYXBoeSB2YWx1ZXNcbkVkbS5HZW9tZXRyeSBBYnN0cmFjdCBiYXNlIHR5cGUgZm9yIGFsbCBHZW9tZXRyeSB0eXBlc1xuRWRtLkdlb21ldHJ5UG9pbnQgUG9pbnQgaW4gYSBmbGF0LWVhcnRoIGNvb3JkaW5hdGUgc3lzdGVtXG5FZG0uR2VvbWV0cnlMaW5lU3RyaW5nIExpbmUgc3RyaW5nIGluIGEgZmxhdC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuRWRtLkdlb21ldHJ5UG9seWdvbiBQb2x5Z29uIGluIGEgZmxhdC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuRWRtLkdlb21ldHJ5TXVsdGlQb2ludCBDb2xsZWN0aW9uIG9mIHBvaW50cyBpbiBhIGZsYXQtZWFydGggY29vcmRpbmF0ZSBzeXN0ZW1cbkVkbS5HZW9tZXRyeU11bHRpTGluZVN0cmluZyBDb2xsZWN0aW9uIG9mIGxpbmUgc3RyaW5ncyBpbiBhIGZsYXQtZWFydGggY29vcmRpbmF0ZSBzeXN0ZW1cbkVkbS5HZW9tZXRyeU11bHRpUG9seWdvbiBDb2xsZWN0aW9uIG9mIHBvbHlnb25zIGluIGEgZmxhdC1lYXJ0aCBjb29yZGluYXRlIHN5c3RlbVxuRWRtLkdlb21ldHJ5Q29sbGVjdGlvbiBDb2xsZWN0aW9uIG9mIGFyYml0cmFyeSBHZW9tZXRyeSB2YWx1ZXNcbiovXG4iXX0=
@@ -67,7 +67,7 @@ export class ODataEnumTypeParser extends ODataAnnotatable {
67
67
  // string | number -> string
68
68
  const parserOptions = { ...this.parserOptions, ...options };
69
69
  if (this.flags) {
70
- let names = Enums.toNames(this.members, value);
70
+ let names = Enums.toFlags(this.members, value);
71
71
  if (names.length === 0)
72
72
  names = [`${value}`];
73
73
  return !parserOptions?.stringAsEnum
@@ -120,4 +120,4 @@ export class ODataEnumTypeParser extends ODataAnnotatable {
120
120
  return Enums.toValues(this.members, value).reduce((acc, v) => acc | v, 0);
121
121
  }
122
122
  }
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3NjaGVtYS9wYXJzZXJzL2VudW0tdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFRNUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsTUFBTSxPQUFPLHdCQUE0QixTQUFRLGdCQUFnQjtJQUkvRCxZQUFZLElBQVksRUFBRSxLQUE2QjtRQUNyRCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFzQjtRQUM3QixPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzFELENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxtQkFDWCxTQUFRLGdCQUFnQjtJQVd4QixZQUFZLE1BQXlCLEVBQUUsU0FBaUIsRUFBRSxLQUFjO1FBQ3RFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUM5QyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLHdCQUF3QixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FDckQsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTLENBQUMsRUFDUixPQUFPLEVBQ1AsYUFBYSxFQUNiLGtCQUFrQixHQUtuQjtRQUNDLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBWTtRQUNuQixJQUFJLEtBQUssR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvQyxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBUztRQUNkLE9BQU87WUFDTCxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUNwQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxPQUFPLENBQU8sQ0FBQyxDQUFDLEtBQU0sR0FBUyxLQUFNLENBQUMsQ0FDckU7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFxQjtRQUN6QixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUM1QixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQ3JELENBQUM7UUFDRiwwQkFBMEI7UUFDMUIsSUFBSSxLQUFLLEtBQUssU0FBUztZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksdUJBQXVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckUsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVMsQ0FBSSxNQUFpRDtRQUM1RCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWM7SUFDZCxXQUFXLENBQUMsS0FBYSxFQUFFLE9BQXVCO1FBQ2hELG1CQUFtQjtRQUNuQixNQUFNLGFBQWEsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQzVELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBTSxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FDcEQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUNuQixDQUFDLENBQ0ssQ0FBQztTQUNWO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQVEsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFRCxZQUFZO0lBQ1osU0FBUyxDQUFDLEtBQVEsRUFBRSxPQUF1QjtRQUN6QywyQkFBMkI7UUFDM0IsNEJBQTRCO1FBQzVCLE1BQU0sYUFBYSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDNUQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQy9DLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO2dCQUFFLEtBQUssR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUM3QyxPQUFPLENBQUMsYUFBYSxFQUFFLFlBQVk7Z0JBQ2pDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO2dCQUN2RCxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0QjthQUFNO1lBQ0wsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzdDLElBQUksSUFBSSxLQUFLLFNBQVM7Z0JBQUUsSUFBSSxHQUFHLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFDMUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxZQUFZO2dCQUNqQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxHQUFHO2dCQUMzQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ1Y7SUFDSCxDQUFDO0lBRUQsUUFBUTtJQUNSLE1BQU0sQ0FBQyxLQUFRLEVBQUUsT0FBdUI7UUFDdEMsTUFBTSxhQUFhLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUM1RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN4RCxJQUFJLFVBQVUsS0FBSyxTQUFTO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDL0MsT0FBTyxhQUFhLEVBQUUsWUFBWTtZQUNoQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksVUFBVSxHQUFHLENBQUM7WUFDeEIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsY0FBYztJQUNkLFlBQVk7UUFDVixJQUFJLFFBQVEsR0FBUTtZQUNsQixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDaEIsSUFBSSxFQUFFLFFBQVE7U0FDZixDQUFDO1FBQ0YsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxRQUFRLENBQ04sTUFBdUIsRUFDdkIsRUFDRSxNQUFNLEVBQ04sVUFBVSxHQUFHLEtBQUssTUFJaEIsRUFBRTtRQUVOLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNuRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN4RCxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7Z0JBQ2QsQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUNmO2FBQU07WUFDTCxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDN0Q7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVE7UUFDYixPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQWU7UUFDbEIsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUMvQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQ25CLENBQUMsQ0FDSyxDQUFDO0lBQ1gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmF3IH0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL3F1ZXJ5JztcbmltcG9ydCB7XG4gIEVudW1UeXBlQ29uZmlnLFxuICBFbnVtVHlwZUZpZWxkQ29uZmlnLFxuICBQYXJzZXJPcHRpb25zLFxuICBQYXJzZXIsXG4gIEZpZWxkUGFyc2VyLFxufSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBFbnVtcyB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IE9EYXRhQW5ub3RhdGFibGUgfSBmcm9tICcuLi9hbm5vdGF0aW9uJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhRW51bVR5cGVGaWVsZFBhcnNlcjxFPiBleHRlbmRzIE9EYXRhQW5ub3RhdGFibGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBFO1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgZmllbGQ6IEVudW1UeXBlRmllbGRDb25maWc8RT4pIHtcbiAgICBzdXBlcihmaWVsZCk7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnZhbHVlID0gZmllbGQudmFsdWU7XG4gIH1cblxuICB0aXRsZWl6ZSh0ZXJtPzogc3RyaW5nIHwgUmVnRXhwKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRlcm0gJiYgdGhpcy5hbm5vdGF0ZWRWYWx1ZSh0ZXJtKSkgfHwgdGhpcy5uYW1lO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPRGF0YUVudW1UeXBlUGFyc2VyPEU+XG4gIGV4dGVuZHMgT0RhdGFBbm5vdGF0YWJsZVxuICBpbXBsZW1lbnRzIEZpZWxkUGFyc2VyPEU+XG57XG4gIG5hbWU6IHN0cmluZztcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIGFsaWFzPzogc3RyaW5nO1xuICBmbGFncz86IGJvb2xlYW47XG4gIG1lbWJlcnM6IHsgW25hbWU6IHN0cmluZ106IEUgfSB8IHsgW3ZhbHVlOiBudW1iZXJdOiBzdHJpbmcgfTtcbiAgcHJpdmF0ZSBfZmllbGRzOiBPRGF0YUVudW1UeXBlRmllbGRQYXJzZXI8RT5bXTtcbiAgcGFyc2VyT3B0aW9ucz86IFBhcnNlck9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBFbnVtVHlwZUNvbmZpZzxFPiwgbmFtZXNwYWNlOiBzdHJpbmcsIGFsaWFzPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoY29uZmlnKTtcbiAgICB0aGlzLm5hbWUgPSBjb25maWcubmFtZTtcbiAgICB0aGlzLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTtcbiAgICB0aGlzLmFsaWFzID0gYWxpYXM7XG4gICAgdGhpcy5mbGFncyA9IGNvbmZpZy5mbGFncztcbiAgICB0aGlzLm1lbWJlcnMgPSBjb25maWcubWVtYmVycztcbiAgICB0aGlzLl9maWVsZHMgPSBPYmplY3QuZW50cmllcyhjb25maWcuZmllbGRzKS5tYXAoXG4gICAgICAoW25hbWUsIGZdKSA9PiBuZXcgT0RhdGFFbnVtVHlwZUZpZWxkUGFyc2VyKG5hbWUsIGYpXG4gICAgKTtcbiAgfVxuXG4gIGNvbmZpZ3VyZSh7XG4gICAgb3B0aW9ucyxcbiAgICBwYXJzZXJGb3JUeXBlLFxuICAgIGZpbmRPcHRpb25zRm9yVHlwZSxcbiAgfToge1xuICAgIG9wdGlvbnM6IFBhcnNlck9wdGlvbnM7XG4gICAgcGFyc2VyRm9yVHlwZTogKHR5cGU6IHN0cmluZykgPT4gUGFyc2VyPGFueT47XG4gICAgZmluZE9wdGlvbnNGb3JUeXBlOiAodHlwZTogc3RyaW5nKSA9PiBhbnk7XG4gIH0pIHtcbiAgICB0aGlzLnBhcnNlck9wdGlvbnMgPSBvcHRpb25zO1xuICB9XG5cbiAgaXNUeXBlT2YodHlwZTogc3RyaW5nKSB7XG4gICAgdmFyIG5hbWVzID0gW2Ake3RoaXMubmFtZXNwYWNlfS4ke3RoaXMubmFtZX1gXTtcbiAgICBpZiAodGhpcy5hbGlhcykgbmFtZXMucHVzaChgJHt0aGlzLmFsaWFzfS4ke3RoaXMubmFtZX1gKTtcbiAgICByZXR1cm4gbmFtZXMuaW5kZXhPZih0eXBlKSAhPT0gLTE7XG4gIH1cblxuICBmaWVsZHModmFsdWU/OiBFKTogT0RhdGFFbnVtVHlwZUZpZWxkUGFyc2VyPEU+W10ge1xuICAgIHJldHVybiBbXG4gICAgICAuLi50aGlzLl9maWVsZHMuZmlsdGVyKFxuICAgICAgICAoZikgPT4gdmFsdWUgPT09IHVuZGVmaW5lZCB8fCBCb29sZWFuKCg8YW55PmYudmFsdWUpICYgKDxhbnk+dmFsdWUpKVxuICAgICAgKSxcbiAgICBdO1xuICB9XG5cbiAgZmllbGQobmFtZVZhbHVlOiBzdHJpbmcgfCBFKSB7XG4gICAgbGV0IGZpZWxkID0gdGhpcy5maWVsZHMoKS5maW5kKFxuICAgICAgKGYpID0+IGYubmFtZSA9PT0gbmFtZVZhbHVlIHx8IGYudmFsdWUgPT09IG5hbWVWYWx1ZVxuICAgICk7XG4gICAgLy9UaHJvdyBlcnJvciBpZiBub3QgZm91bmRcbiAgICBpZiAoZmllbGQgPT09IHVuZGVmaW5lZClcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLm5hbWV9IGhhcyBubyBmaWVsZCBuYW1lZCAke1N0cmluZyhuYW1lKX1gKTtcbiAgICByZXR1cm4gZmllbGQ7XG4gIH1cblxuICAvKipcbiAgICogTWFwIHRoZSBmaWVsZHMgb2YgdGhlIGVudW0gdHlwZS5cbiAgICogQHBhcmFtIG1hcHBlciBGdW5jdGlvbiB0aGF0IG1hcHMgdGhlIHZhbHVlIHRvIHRoZSBuZXcgdmFsdWVcbiAgICogQHJldHVybnMgVGhlIGZpZWxkcyBtYXBwZWQgYnkgdGhlIG1hcHBlclxuICAgKi9cbiAgbWFwRmllbGRzPFI+KG1hcHBlcjogKGZpZWxkOiBPRGF0YUVudW1UeXBlRmllbGRQYXJzZXI8RT4pID0+IFIpIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZHMoKS5tYXAobWFwcGVyKTtcbiAgfVxuXG4gIC8vIERlc2VyaWFsaXplXG4gIGRlc2VyaWFsaXplKHZhbHVlOiBzdHJpbmcsIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogRSB7XG4gICAgLy8gc3RyaW5nIC0+IG51bWJlclxuICAgIGNvbnN0IHBhcnNlck9wdGlvbnMgPSB7IC4uLnRoaXMucGFyc2VyT3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICAgIGlmICh0aGlzLmZsYWdzKSB7XG4gICAgICByZXR1cm4gRW51bXMudG9WYWx1ZXM8YW55Pih0aGlzLm1lbWJlcnMsIHZhbHVlKS5yZWR1Y2UoXG4gICAgICAgIChhY2MsIHYpID0+IGFjYyB8IHYsXG4gICAgICAgIDBcbiAgICAgICkgYXMgYW55O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gRW51bXMudG9WYWx1ZTxhbnk+KHRoaXMubWVtYmVycywgdmFsdWUpIGFzIGFueTtcbiAgICB9XG4gIH1cblxuICAvLyBTZXJpYWxpemVcbiAgc2VyaWFsaXplKHZhbHVlOiBFLCBvcHRpb25zPzogUGFyc2VyT3B0aW9ucyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgLy8gRW51bSBhcmUgc3RyaW5nIHwgbnVtYmVyXG4gICAgLy8gc3RyaW5nIHwgbnVtYmVyIC0+IHN0cmluZ1xuICAgIGNvbnN0IHBhcnNlck9wdGlvbnMgPSB7IC4uLnRoaXMucGFyc2VyT3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICAgIGlmICh0aGlzLmZsYWdzKSB7XG4gICAgICBsZXQgbmFtZXMgPSBFbnVtcy50b05hbWVzKHRoaXMubWVtYmVycywgdmFsdWUpO1xuICAgICAgaWYgKG5hbWVzLmxlbmd0aCA9PT0gMCkgbmFtZXMgPSBbYCR7dmFsdWV9YF07XG4gICAgICByZXR1cm4gIXBhcnNlck9wdGlvbnM/LnN0cmluZ0FzRW51bVxuICAgICAgICA/IGAke3RoaXMubmFtZXNwYWNlfS4ke3RoaXMubmFtZX0nJHtuYW1lcy5qb2luKCcsICcpfSdgXG4gICAgICAgIDogbmFtZXMuam9pbignLCAnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IG5hbWUgPSBFbnVtcy50b05hbWUodGhpcy5tZW1iZXJzLCB2YWx1ZSk7XG4gICAgICBpZiAobmFtZSA9PT0gdW5kZWZpbmVkKSBuYW1lID0gYCR7dmFsdWV9YDtcbiAgICAgIHJldHVybiAhcGFyc2VyT3B0aW9ucz8uc3RyaW5nQXNFbnVtXG4gICAgICAgID8gYCR7dGhpcy5uYW1lc3BhY2V9LiR7dGhpcy5uYW1lfScke25hbWV9J2BcbiAgICAgICAgOiBuYW1lO1xuICAgIH1cbiAgfVxuXG4gIC8vRW5jb2RlXG4gIGVuY29kZSh2YWx1ZTogRSwgb3B0aW9ucz86IFBhcnNlck9wdGlvbnMpOiBhbnkge1xuICAgIGNvbnN0IHBhcnNlck9wdGlvbnMgPSB7IC4uLnRoaXMucGFyc2VyT3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSB0aGlzLnNlcmlhbGl6ZSh2YWx1ZSwgcGFyc2VyT3B0aW9ucyk7XG4gICAgaWYgKHNlcmlhbGl6ZWQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gcGFyc2VyT3B0aW9ucz8uc3RyaW5nQXNFbnVtXG4gICAgICA/IHJhdyhgJyR7c2VyaWFsaXplZH0nYClcbiAgICAgIDogcmF3KHNlcmlhbGl6ZWQpO1xuICB9XG5cbiAgLy8gSnNvbiBTY2hlbWFcbiAgdG9Kc29uU2NoZW1hKCkge1xuICAgIGxldCBwcm9wZXJ0eSA9IDxhbnk+e1xuICAgICAgdGl0bGU6IHRoaXMubmFtZSxcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH07XG4gICAgcHJvcGVydHkuZW51bSA9IHRoaXMuX2ZpZWxkcy5tYXAoKGYpID0+IGYubmFtZSk7XG4gICAgcmV0dXJuIHByb3BlcnR5O1xuICB9XG5cbiAgdmFsaWRhdGUoXG4gICAgbWVtYmVyOiBzdHJpbmcgfCBudW1iZXIsXG4gICAge1xuICAgICAgbWV0aG9kLFxuICAgICAgbmF2aWdhdGlvbiA9IGZhbHNlLFxuICAgIH06IHtcbiAgICAgIG1ldGhvZD86ICdjcmVhdGUnIHwgJ3VwZGF0ZScgfCAnbW9kaWZ5JztcbiAgICAgIG5hdmlnYXRpb24/OiBib29sZWFuO1xuICAgIH0gPSB7fVxuICApOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuZmxhZ3MpIHtcbiAgICAgIGxldCBtZW1iZXJzID0gRW51bXMudG9WYWx1ZXModGhpcy5tZW1iZXJzLCBtZW1iZXIpO1xuICAgICAgcmV0dXJuIG1lbWJlcnMuc29tZSgobWVtYmVyKSA9PiAhKG1lbWJlciBpbiB0aGlzLm1lbWJlcnMpKVxuICAgICAgICA/IFsnbWlzbWF0Y2gnXVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICEobWVtYmVyIGluIHRoaXMubWVtYmVycykgPyBbJ21pc21hdGNoJ10gOiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgdW5wYWNrKHZhbHVlOiBFKTogbnVtYmVyW10ge1xuICAgIHJldHVybiBFbnVtcy50b1ZhbHVlcyh0aGlzLm1lbWJlcnMsIHZhbHVlKTtcbiAgfVxuXG4gIHBhY2sodmFsdWU6IG51bWJlcltdKTogRSB7XG4gICAgcmV0dXJuIEVudW1zLnRvVmFsdWVzKHRoaXMubWVtYmVycywgdmFsdWUpLnJlZHVjZShcbiAgICAgIChhY2MsIHYpID0+IGFjYyB8IHYsXG4gICAgICAwXG4gICAgKSBhcyBhbnk7XG4gIH1cbn1cbiJdfQ==
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1vZGF0YS9zcmMvbGliL3NjaGVtYS9wYXJzZXJzL2VudW0tdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFRNUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsTUFBTSxPQUFPLHdCQUE0QixTQUFRLGdCQUFnQjtJQUkvRCxZQUFZLElBQVksRUFBRSxLQUE2QjtRQUNyRCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFzQjtRQUM3QixPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzFELENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxtQkFDWCxTQUFRLGdCQUFnQjtJQVd4QixZQUFZLE1BQXlCLEVBQUUsU0FBaUIsRUFBRSxLQUFjO1FBQ3RFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMs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SyxDQUFDLENBQUMsTUFBTSxDQUMvQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQ25CLENBQUMsQ0FDSyxDQUFDO0lBQ1gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmF3IH0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL3F1ZXJ5JztcbmltcG9ydCB7XG4gIEVudW1UeXBlQ29uZmlnLFxuICBFbnVtVHlwZUZpZWxkQ29uZmlnLFxuICBQYXJzZXJPcHRpb25zLFxuICBQYXJzZXIsXG4gIEZpZWxkUGFyc2VyLFxufSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBFbnVtcyB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IE9EYXRhQW5ub3RhdGFibGUgfSBmcm9tICcuLi9hbm5vdGF0aW9uJztcblxuZXhwb3J0IGNsYXNzIE9EYXRhRW51bVR5cGVGaWVsZFBhcnNlcjxFPiBleHRlbmRzIE9EYXRhQW5ub3RhdGFibGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBFO1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgZmllbGQ6IEVudW1UeXBlRmllbGRDb25maWc8RT4pIHtcbiAgICBzdXBlcihmaWVsZCk7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnZhbHVlID0gZmllbGQudmFsdWU7XG4gIH1cblxuICB0aXRsZWl6ZSh0ZXJtPzogc3RyaW5nIHwgUmVnRXhwKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRlcm0gJiYgdGhpcy5hbm5vdGF0ZWRWYWx1ZSh0ZXJtKSkgfHwgdGhpcy5uYW1lO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPRGF0YUVudW1UeXBlUGFyc2VyPEU+XG4gIGV4dGVuZHMgT0RhdGFBbm5vdGF0YWJsZVxuICBpbXBsZW1lbnRzIEZpZWxkUGFyc2VyPEU+XG57XG4gIG5hbWU6IHN0cmluZztcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIGFsaWFzPzogc3RyaW5nO1xuICBmbGFncz86IGJvb2xlYW47XG4gIG1lbWJlcnM6IHsgW25hbWU6IHN0cmluZ106IEUgfSB8IHsgW3ZhbHVlOiBudW1iZXJdOiBzdHJpbmcgfTtcbiAgcHJpdmF0ZSBfZmllbGRzOiBPRGF0YUVudW1UeXBlRmllbGRQYXJzZXI8RT5bXTtcbiAgcGFyc2VyT3B0aW9ucz86IFBhcnNlck9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBFbnVtVHlwZUNvbmZpZzxFPiwgbmFtZXNwYWNlOiBzdHJpbmcsIGFsaWFzPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoY29uZmlnKTtcbiAgICB0aGlzLm5hbWUgPSBjb25maWcubmFtZTtcbiAgICB0aGlzLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTtcbiAgICB0aGlzLmFsaWFzID0gYWxpYXM7XG4gICAgdGhpcy5mbGFncyA9IGNvbmZpZy5mbGFncztcbiAgICB0aGlzLm1lbWJlcnMgPSBjb25maWcubWVtYmVycztcbiAgICB0aGlzLl9maWVsZHMgPSBPYmplY3QuZW50cmllcyhjb25maWcuZmllbGRzKS5tYXAoXG4gICAgICAoW25hbWUsIGZdKSA9PiBuZXcgT0RhdGFFbnVtVHlwZUZpZWxkUGFyc2VyKG5hbWUsIGYpLFxuICAgICk7XG4gIH1cblxuICBjb25maWd1cmUoe1xuICAgIG9wdGlvbnMsXG4gICAgcGFyc2VyRm9yVHlwZSxcbiAgICBmaW5kT3B0aW9uc0ZvclR5cGUsXG4gIH06IHtcbiAgICBvcHRpb25zOiBQYXJzZXJPcHRpb25zO1xuICAgIHBhcnNlckZvclR5cGU6ICh0eXBlOiBzdHJpbmcpID0+IFBhcnNlcjxhbnk+O1xuICAgIGZpbmRPcHRpb25zRm9yVHlwZTogKHR5cGU6IHN0cmluZykgPT4gYW55O1xuICB9KSB7XG4gICAgdGhpcy5wYXJzZXJPcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIGlzVHlwZU9mKHR5cGU6IHN0cmluZykge1xuICAgIHZhciBuYW1lcyA9IFtgJHt0aGlzLm5hbWVzcGFjZX0uJHt0aGlzLm5hbWV9YF07XG4gICAgaWYgKHRoaXMuYWxpYXMpIG5hbWVzLnB1c2goYCR7dGhpcy5hbGlhc30uJHt0aGlzLm5hbWV9YCk7XG4gICAgcmV0dXJuIG5hbWVzLmluZGV4T2YodHlwZSkgIT09IC0xO1xuICB9XG5cbiAgZmllbGRzKHZhbHVlPzogRSk6IE9EYXRhRW51bVR5cGVGaWVsZFBhcnNlcjxFPltdIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5fZmllbGRzLmZpbHRlcihcbiAgICAgICAgKGYpID0+IHZhbHVlID09PSB1bmRlZmluZWQgfHwgQm9vbGVhbigoPGFueT5mLnZhbHVlKSAmICg8YW55PnZhbHVlKSksXG4gICAgICApLFxuICAgIF07XG4gIH1cblxuICBmaWVsZChuYW1lVmFsdWU6IHN0cmluZyB8IEUpIHtcbiAgICBsZXQgZmllbGQgPSB0aGlzLmZpZWxkcygpLmZpbmQoXG4gICAgICAoZikgPT4gZi5uYW1lID09PSBuYW1lVmFsdWUgfHwgZi52YWx1ZSA9PT0gbmFtZVZhbHVlLFxuICAgICk7XG4gICAgLy9UaHJvdyBlcnJvciBpZiBub3QgZm91bmRcbiAgICBpZiAoZmllbGQgPT09IHVuZGVmaW5lZClcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLm5hbWV9IGhhcyBubyBmaWVsZCBuYW1lZCAke1N0cmluZyhuYW1lKX1gKTtcbiAgICByZXR1cm4gZmllbGQ7XG4gIH1cblxuICAvKipcbiAgICogTWFwIHRoZSBmaWVsZHMgb2YgdGhlIGVudW0gdHlwZS5cbiAgICogQHBhcmFtIG1hcHBlciBGdW5jdGlvbiB0aGF0IG1hcHMgdGhlIHZhbHVlIHRvIHRoZSBuZXcgdmFsdWVcbiAgICogQHJldHVybnMgVGhlIGZpZWxkcyBtYXBwZWQgYnkgdGhlIG1hcHBlclxuICAgKi9cbiAgbWFwRmllbGRzPFI+KG1hcHBlcjogKGZpZWxkOiBPRGF0YUVudW1UeXBlRmllbGRQYXJzZXI8RT4pID0+IFIpIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZHMoKS5tYXAobWFwcGVyKTtcbiAgfVxuXG4gIC8vIERlc2VyaWFsaXplXG4gIGRlc2VyaWFsaXplKHZhbHVlOiBzdHJpbmcsIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogRSB7XG4gICAgLy8gc3RyaW5nIC0+IG51bWJlclxuICAgIGNvbnN0IHBhcnNlck9wdGlvbnMgPSB7IC4uLnRoaXMucGFyc2VyT3B0aW9ucywgLi4ub3B0aW9ucyB9O1xuICAgIGlmICh0aGlzLmZsYWdzKSB7XG4gICAgICByZXR1cm4gRW51bXMudG9WYWx1ZXM8YW55Pih0aGlzLm1lbWJlcnMsIHZhbHVlKS5yZWR1Y2UoXG4gICAgICAgIChhY2MsIHYpID0+IGFjYyB8IHYsXG4gICAgICAgIDAsXG4gICAgICApIGFzIGFueTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEVudW1zLnRvVmFsdWU8YW55Pih0aGlzLm1lbWJlcnMsIHZhbHVlKSBhcyBhbnk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2VyaWFsaXplXG4gIHNlcmlhbGl6ZSh2YWx1ZTogRSwgb3B0aW9ucz86IFBhcnNlck9wdGlvbnMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIC8vIEVudW0gYXJlIHN0cmluZyB8IG51bWJlclxuICAgIC8vIHN0cmluZyB8IG51bWJlciAtPiBzdHJpbmdcbiAgICBjb25zdCBwYXJzZXJPcHRpb25zID0geyAuLi50aGlzLnBhcnNlck9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgICBpZiAodGhpcy5mbGFncykge1xuICAgICAgbGV0IG5hbWVzID0gRW51bXMudG9GbGFncyh0aGlzLm1lbWJlcnMsIHZhbHVlKTtcbiAgICAgIGlmIChuYW1lcy5sZW5ndGggPT09IDApIG5hbWVzID0gW2Ake3ZhbHVlfWBdO1xuICAgICAgcmV0dXJuICFwYXJzZXJPcHRpb25zPy5zdHJpbmdBc0VudW1cbiAgICAgICAgPyBgJHt0aGlzLm5hbWVzcGFjZX0uJHt0aGlzLm5hbWV9JyR7bmFtZXMuam9pbignLCAnKX0nYFxuICAgICAgICA6IG5hbWVzLmpvaW4oJywgJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBuYW1lID0gRW51bXMudG9OYW1lKHRoaXMubWVtYmVycywgdmFsdWUpO1xuICAgICAgaWYgKG5hbWUgPT09IHVuZGVmaW5lZCkgbmFtZSA9IGAke3ZhbHVlfWA7XG4gICAgICByZXR1cm4gIXBhcnNlck9wdGlvbnM/LnN0cmluZ0FzRW51bVxuICAgICAgICA/IGAke3RoaXMubmFtZXNwYWNlfS4ke3RoaXMubmFtZX0nJHtuYW1lfSdgXG4gICAgICAgIDogbmFtZTtcbiAgICB9XG4gIH1cblxuICAvL0VuY29kZVxuICBlbmNvZGUodmFsdWU6IEUsIG9wdGlvbnM/OiBQYXJzZXJPcHRpb25zKTogYW55IHtcbiAgICBjb25zdCBwYXJzZXJPcHRpb25zID0geyAuLi50aGlzLnBhcnNlck9wdGlvbnMsIC4uLm9wdGlvbnMgfTtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gdGhpcy5zZXJpYWxpemUodmFsdWUsIHBhcnNlck9wdGlvbnMpO1xuICAgIGlmIChzZXJpYWxpemVkID09PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHBhcnNlck9wdGlvbnM/LnN0cmluZ0FzRW51bVxuICAgICAgPyByYXcoYCcke3NlcmlhbGl6ZWR9J2ApXG4gICAgICA6IHJhdyhzZXJpYWxpemVkKTtcbiAgfVxuXG4gIC8vIEpzb24gU2NoZW1hXG4gIHRvSnNvblNjaGVtYSgpIHtcbiAgICBsZXQgcHJvcGVydHkgPSA8YW55PntcbiAgICAgIHRpdGxlOiB0aGlzLm5hbWUsXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9O1xuICAgIHByb3BlcnR5LmVudW0gPSB0aGlzLl9maWVsZHMubWFwKChmKSA9PiBmLm5hbWUpO1xuICAgIHJldHVybiBwcm9wZXJ0eTtcbiAgfVxuXG4gIHZhbGlkYXRlKFxuICAgIG1lbWJlcjogc3RyaW5nIHwgbnVtYmVyLFxuICAgIHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIG5hdmlnYXRpb24gPSBmYWxzZSxcbiAgICB9OiB7XG4gICAgICBtZXRob2Q/OiAnY3JlYXRlJyB8ICd1cGRhdGUnIHwgJ21vZGlmeSc7XG4gICAgICBuYXZpZ2F0aW9uPzogYm9vbGVhbjtcbiAgICB9ID0ge30sXG4gICk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5mbGFncykge1xuICAgICAgbGV0IG1lbWJlcnMgPSBFbnVtcy50b1ZhbHVlcyh0aGlzLm1lbWJlcnMsIG1lbWJlcik7XG4gICAgICByZXR1cm4gbWVtYmVycy5zb21lKChtZW1iZXIpID0+ICEobWVtYmVyIGluIHRoaXMubWVtYmVycykpXG4gICAgICAgID8gWydtaXNtYXRjaCddXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gIShtZW1iZXIgaW4gdGhpcy5tZW1iZXJzKSA/IFsnbWlzbWF0Y2gnXSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICB1bnBhY2sodmFsdWU6IEUpOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIEVudW1zLnRvVmFsdWVzKHRoaXMubWVtYmVycywgdmFsdWUpO1xuICB9XG5cbiAgcGFjayh2YWx1ZTogbnVtYmVyW10pOiBFIHtcbiAgICByZXR1cm4gRW51bXMudG9WYWx1ZXModGhpcy5tZW1iZXJzLCB2YWx1ZSkucmVkdWNlKFxuICAgICAgKGFjYywgdikgPT4gYWNjIHwgdixcbiAgICAgIDAsXG4gICAgKSBhcyBhbnk7XG4gIH1cbn1cbiJdfQ==