@ironcode/vas-lib 1.8.0-alpha.3 → 1.8.0-alpha.4

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 (76) hide show
  1. package/cjs/lib/elastic/index.d.ts +2 -0
  2. package/cjs/lib/elastic/index.d.ts.map +1 -0
  3. package/cjs/lib/elastic/index.js +5 -0
  4. package/cjs/lib/elastic/index.js.map +1 -0
  5. package/cjs/lib/elastic/job.elastic-doc.d.ts +14 -0
  6. package/cjs/lib/elastic/job.elastic-doc.d.ts.map +1 -0
  7. package/cjs/lib/elastic/job.elastic-doc.js +3 -0
  8. package/cjs/lib/elastic/job.elastic-doc.js.map +1 -0
  9. package/cjs/lib/entity/index.d.ts +2 -0
  10. package/cjs/lib/entity/index.d.ts.map +1 -1
  11. package/cjs/lib/entity/index.js +2 -0
  12. package/cjs/lib/entity/index.js.map +1 -1
  13. package/cjs/lib/entity/vas-base.model.d.ts +4 -2
  14. package/cjs/lib/entity/vas-base.model.d.ts.map +1 -1
  15. package/cjs/lib/entity/vas-base.model.js.map +1 -1
  16. package/cjs/lib/entity/vas-contact.model.d.ts +1 -0
  17. package/cjs/lib/entity/vas-contact.model.d.ts.map +1 -1
  18. package/cjs/lib/entity/vas-contact.model.js +20 -1
  19. package/cjs/lib/entity/vas-contact.model.js.map +1 -1
  20. package/cjs/lib/entity/vas-form.model.d.ts +4 -0
  21. package/cjs/lib/entity/vas-form.model.d.ts.map +1 -1
  22. package/cjs/lib/entity/vas-form.model.js +9 -0
  23. package/cjs/lib/entity/vas-form.model.js.map +1 -1
  24. package/cjs/lib/entity/vas-job.model.js +1 -1
  25. package/cjs/lib/entity/vas-job.model.js.map +1 -1
  26. package/cjs/lib/entity/vas-user.model.d.ts +1 -1
  27. package/cjs/lib/entity/vas-user.model.d.ts.map +1 -1
  28. package/cjs/lib/entity/vas-user.model.js +1 -1
  29. package/cjs/lib/entity/vas-user.model.js.map +1 -1
  30. package/cjs/lib/entity/vas-vehicle.model.d.ts +1 -0
  31. package/cjs/lib/entity/vas-vehicle.model.d.ts.map +1 -1
  32. package/cjs/lib/entity/vas-vehicle.model.js +12 -0
  33. package/cjs/lib/entity/vas-vehicle.model.js.map +1 -1
  34. package/cjs/lib/utils/omit.d.ts +8 -0
  35. package/cjs/lib/utils/omit.d.ts.map +1 -0
  36. package/cjs/lib/utils/omit.js +26 -0
  37. package/cjs/lib/utils/omit.js.map +1 -0
  38. package/cjs/lib/utils/only.d.ts +8 -0
  39. package/cjs/lib/utils/only.d.ts.map +1 -0
  40. package/cjs/lib/utils/only.js +26 -0
  41. package/cjs/lib/utils/only.js.map +1 -0
  42. package/cjs/package.json +2 -0
  43. package/cjs/public-api.d.ts +1 -0
  44. package/cjs/public-api.d.ts.map +1 -1
  45. package/cjs/public-api.js +1 -0
  46. package/cjs/public-api.js.map +1 -1
  47. package/esm2020/lib/elastic/index.mjs +2 -0
  48. package/esm2020/lib/elastic/job.elastic-doc.mjs +2 -0
  49. package/esm2020/lib/entity/index.mjs +3 -1
  50. package/esm2020/lib/entity/vas-base.model.mjs +1 -1
  51. package/esm2020/lib/entity/vas-contact.model.mjs +20 -5
  52. package/esm2020/lib/entity/vas-form.model.mjs +10 -1
  53. package/esm2020/lib/entity/vas-job.model.mjs +2 -2
  54. package/esm2020/lib/entity/vas-task.dto.mjs +2 -0
  55. package/esm2020/lib/entity/vas-task.model.mjs +66 -0
  56. package/esm2020/lib/entity/vas-user.model.mjs +2 -2
  57. package/esm2020/lib/entity/vas-vehicle.model.mjs +13 -1
  58. package/esm2020/lib/utils/only.mjs +22 -0
  59. package/esm2020/public-api.mjs +2 -1
  60. package/fesm2015/ironcode-vas-lib.mjs +122 -4
  61. package/fesm2015/ironcode-vas-lib.mjs.map +1 -1
  62. package/fesm2020/ironcode-vas-lib.mjs +128 -7
  63. package/fesm2020/ironcode-vas-lib.mjs.map +1 -1
  64. package/lib/elastic/index.d.ts +1 -0
  65. package/lib/elastic/job.elastic-doc.d.ts +13 -0
  66. package/lib/entity/index.d.ts +2 -0
  67. package/lib/entity/vas-base.model.d.ts +4 -2
  68. package/lib/entity/vas-contact.model.d.ts +1 -0
  69. package/lib/entity/vas-form.model.d.ts +4 -0
  70. package/lib/entity/vas-task.dto.d.ts +8 -0
  71. package/lib/entity/vas-task.model.d.ts +34 -0
  72. package/lib/entity/vas-user.model.d.ts +1 -1
  73. package/lib/entity/vas-vehicle.model.d.ts +1 -0
  74. package/lib/utils/only.d.ts +7 -0
  75. package/package.json +1 -1
  76. package/public-api.d.ts +1 -0
@@ -70,7 +70,7 @@ export class VasJobModel extends VasRestrictedAccountObjectModel {
70
70
  return new VasJobModel('', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', moment().utcOffset(), 0, '', 0, [], [], '', '', getEmptyGeoLocation());
71
71
  }
72
72
  static fromDto(dto) {
73
- const model = new VasJobModel(dto.id || '', dto.created || '', dto.serverCreated || '', dto.createdBy || '', dto.modified || '', dto.serverModified || '', dto.modifiedBy || '', dto.createdByName || '', dto.modifiedByName || '', dto.account || '', dto.accessGroup || '', dto.reference || '', dto.jobDate || '', dto.jobStatus || '', dto.jobType || '', dto.assigneeId || '', dto.formId || '', dto.timeZoneOffset || moment().utcOffset(), dto.pendingFields || 0, dto.childModified || '', dto.version || 0, dto.fields || [], dto.files || [], dto.createdByDisplayName || '', dto.modifiedByDisplayName || '', dto.geoLocation || getEmptyGeoLocation());
73
+ const model = new VasJobModel(dto.id || '', dto.created || '', dto.serverCreated || '', dto.createdBy || '', dto.modified || '', dto.serverModified || '', dto.modifiedBy || '', dto.createdByName || '', dto.modifiedByName || '', dto.account || '', dto.accessGroup || '', dto.reference || '', dto.jobDate || '', dto.jobStatus || '', dto.jobType || '', dto.assigneeId || '', dto.formId || dto.lastForm || '', dto.timeZoneOffset || moment().utcOffset(), dto.pendingFields || 0, dto.childModified || '', dto.version || 0, dto.fields || [], dto.files || [], dto.createdByDisplayName || '', dto.modifiedByDisplayName || '', dto.geoLocation || getEmptyGeoLocation());
74
74
  const emptyKeys = model.staticProperties;
75
75
  Object
76
76
  .keys(dto)
@@ -494,4 +494,4 @@ export class VasJobModel extends VasRestrictedAccountObjectModel {
494
494
  };
495
495
  }
496
496
  }
497
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLWpvYi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Zhcy1saWIvc3JjL2xpYi9lbnRpdHkvdmFzLWpvYi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdsRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RixPQUFPLEVBQWUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsc0JBQXNCLEVBQThCLE1BQU0saURBQWlELENBQUM7QUFDckgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBcUJ6RDs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFZLFNBQVEsK0JBQStCO0lBRTlELFlBQ2tCLEVBQVUsRUFDVixPQUFlLEVBQ2YsYUFBcUIsRUFDckIsU0FBaUIsRUFDakIsUUFBZ0IsRUFDaEIsY0FBc0IsRUFDdEIsVUFBa0IsRUFDbEIsYUFBcUIsRUFDckIsY0FBc0IsRUFDdEIsT0FBZSxFQUNmLFdBQW1CLEVBQzVCLFNBQWlCLEVBQ2pCLE9BQWUsRUFDZixTQUFpQixFQUNqQixPQUFlLEVBQ2YsVUFBa0IsRUFDbEIsTUFBYyxFQUNkLGNBQXNCLEVBQ3RCLGFBQXFCLEVBQ3JCLGFBQXFCLEVBQ3JCLE9BQWUsRUFDZixNQUEwQixFQUMxQixLQUF3QixFQUN4QixvQkFBNEIsRUFDNUIscUJBQTZCLEVBQzdCLFdBQXdCO1FBRS9CLEtBQUssQ0FD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YyxDQUFDOzZCQUNqQyxNQUFNLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDO3FCQUM1QjtvQkFDRCxPQUFPLENBQUMsQ0FBQzt3QkFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFVBQVUsQ0FBQyxDQUFDO3FCQUMvQztpQkFDRjthQUNGO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDWixDQUFDO0lBQUEsQ0FBQztJQUVGOztPQUVHO0lBQ00sUUFBUTtRQUNmLE9BQU87WUFDTCxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLElBQUksR0FBRztZQUNoQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxHQUFHO1lBQzVCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxJQUFJLEdBQUc7WUFDNUIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksR0FBRztZQUNwQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxHQUFHO1lBQ2hDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxJQUFJLEdBQUc7WUFDbEMsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQztZQUN4QyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDO1lBQ3RDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLEdBQUc7U0FDN0IsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRmlsZUR0bywgVmFzRmlsZUR0byB9IGZyb20gJy4vdmFzLWZpbGUuZHRvJztcbmltcG9ydCB7IFVVSUQgfSBmcm9tICdhbmd1bGFyMi11dWlkJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IGdldFZhbHVlQnlQYXRoIH0gZnJvbSAnLi4vdXRpbHMvZ2V0LXZhbHVlLWJ5LXBhdGgnO1xuaW1wb3J0IHsgVmFzQmFzZUR0byB9IGZyb20gJy4vdmFzLWJhc2UuZHRvJztcbmltcG9ydCB7IFZhc0ZpZWxkRHRvLCBWYXNGaWVsZER0b1ZhbHVlIH0gZnJvbSAnLi92YXMtZmllbGQuZHRvJztcbmltcG9ydCB7IFZhc0ZpZWxkTW9kZWwgfSBmcm9tICcuL3Zhcy1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBWYXNGb3JtTW9kZWwgfSBmcm9tICcuL3Zhcy1mb3JtLm1vZGVsJztcbmltcG9ydCB7IFZhc0pvYkR0byB9IGZyb20gJy4vdmFzLWpvYi5kdG8nO1xuaW1wb3J0IHsgVmFzUmVzdHJpY3RlZEFjY291bnRPYmplY3RNb2RlbCB9IGZyb20gJy4vdmFzLXJlc3RyaWN0ZWQtYWNjb3VudC1vYmplY3QubW9kZWwnO1xuaW1wb3J0IHsgR2VvTG9jYXRpb24sIGdldEVtcHR5R2VvTG9jYXRpb24gfSBmcm9tICcuLi9tb2RlbC9nZW8tbG9jYXRpb24nO1xuaW1wb3J0IHsgaXNDYW1lcmFDb250cm9sVmFsdWVWMSwgVmFzQ2FtZXJhQ29udHJvbFZhbHVlTW9kZWwgfSBmcm9tICcuLi9jb250cm9sLXZhbHVlL3Zhcy1jYW1lcmEtY29udHJvbC12YWx1ZS5tb2RlbCc7XG5pbXBvcnQgeyBpc0FycmF5U3RyaW5nIH0gZnJvbSAnLi4vdXRpbHMvaXMtYXJyYXktc3RyaW5nJztcbmltcG9ydCB7IFZhc0Zvcm1EdG8gfSBmcm9tICcuL3Zhcy1mb3JtLmR0byc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWYXNKb2JNb2RlbER5bmFtaWNJbnRlcmZhY2Uge1xuICBbczogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgUmVjb3JkPHN0cmluZywgVmFzRmllbGREdG9WYWx1ZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VTeW50YXhPcHRpb25zIHtcbiAgLy8gVGhpcyB2YWx1ZSB3aWxsIGJlIHVzZWQgdG8gYWRqdXN0IGFueSBkYXRldGltZSB2YWx1ZXMgdGhhdCBhcmUgcmVmZXJlbmNlZFxuICAvLyBpbiB0aGUgc3ludGF4IHN0cmluZy4gU2VlXG4gIC8vIGh0dHBzOi8vbW9tZW50anNjb20ucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L21vbWVudC8wMy1tYW5pcHVsYXRpbmcvMDktdXRjLW9mZnNldC9cbiAgLy8gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgaG93IGBtb21lbnRgIHdpbGwgaGFuZGxlIHRoZSB2YWx1ZS5cbiAgdGltZVpvbmVPZmZzZXQ6IG51bWJlcixcbiAgLy8gdGhpcyBkaWN0aW9uYXJ5IGNhbiBiZSBwYXNzZWQgaW4gdG8gY29udGFpbiBvdGhlciBvYmplY3RzIHRvIGJlIHJlZmVyZW5jZWRcbiAgLy8gaW4gdGhlIHN5bnRheC4gRm9yIGV4YW1wbGUgaWYgd2UgaGF2ZSB7am9iLmZvb30gdGhpcyB3aWxsIHJlZmVyZW5jZSB0aGVcbiAgLy8gam9iJ3MgYGZvb2AgcHJvcGVydHksIGhvd2V2ZXIgaWYgd2UgaGF2ZSBcInJlcG9ydExheW91dC50aXRsZVwiIHRoaXMgd2lsbFxuICAvLyBleHBlY3QgdG8gZmluZCBhIHByb3BlcnR5IG9mIGBvYmplY3RzYCBjYWxsZWQgYHJlcG9ydExheW91dGAgd2hpY2ggd2lsbFxuICAvLyBoYXZlIGEgcHJvcGVydHkgY2FsbGVkIGB0aXRsZWBcbiAgb2JqZWN0cz86IFJlY29yZDxzdHJpbmcsIFBhcnRpYWw8VmFzQmFzZUR0bz4gfCBSZWNvcmQ8c3RyaW5nLCBWYXNGaWVsZER0b1ZhbHVlPj47XG59XG5cbi8qKlxuICogSm9iTW9kZWxcbiAqL1xuZXhwb3J0IGNsYXNzIFZhc0pvYk1vZGVsIGV4dGVuZHMgVmFzUmVzdHJpY3RlZEFjY291bnRPYmplY3RNb2RlbCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG92ZXJyaWRlIGlkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIGNyZWF0ZWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2VydmVyQ3JlYXRlZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBjcmVhdGVkQnk6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbW9kaWZpZWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2VydmVyTW9kaWZpZWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbW9kaWZpZWRCeTogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBjcmVhdGVkQnlOYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIG1vZGlmaWVkQnlOYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIGFjY291bnQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgYWNjZXNzR3JvdXA6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVmZXJlbmNlOiBzdHJpbmcsXG4gICAgcHVibGljIGpvYkRhdGU6IHN0cmluZyxcbiAgICBwdWJsaWMgam9iU3RhdHVzOiBzdHJpbmcsXG4gICAgcHVibGljIGpvYlR5cGU6IHN0cmluZyxcbiAgICBwdWJsaWMgYXNzaWduZWVJZDogc3RyaW5nLFxuICAgIHB1YmxpYyBmb3JtSWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgdGltZVpvbmVPZmZzZXQ6IG51bWJlcixcbiAgICBwdWJsaWMgcGVuZGluZ0ZpZWxkczogbnVtYmVyLFxuICAgIHB1YmxpYyBjaGlsZE1vZGlmaWVkOiBzdHJpbmcsXG4gICAgcHVibGljIHZlcnNpb246IG51bWJlcixcbiAgICBwdWJsaWMgZmllbGRzOiBBcnJheTxWYXNGaWVsZER0bz4sXG4gICAgcHVibGljIGZpbGVzOiBBcnJheTxWYXNGaWxlRHRvPixcbiAgICBwdWJsaWMgY3JlYXRlZEJ5RGlzcGxheU5hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMgbW9kaWZpZWRCeURpc3BsYXlOYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIGdlb0xvY2F0aW9uOiBHZW9Mb2NhdGlvblxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIGlkLFxuICAgICAgY3JlYXRlZCxcbiAgICAgIHNlcnZlckNyZWF0ZWQsXG4gICAgICBjcmVhdGVkQnksXG4gICAgICBtb2RpZmllZCxcbiAgICAgIHNlcnZlck1vZGlmaWVkLFxuICAgICAgbW9kaWZpZWRCeSxcbiAgICAgIGNyZWF0ZWRCeU5hbWUsXG4gICAgICBtb2RpZmllZEJ5TmFtZSxcbiAgICAgIGFjY291bnQsXG4gICAgICBhY2Nlc3NHcm91cFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGlzIHdpdGggdGhlIGR5bmFtaWMgaW50ZXJmYWNlXG4gICAqIEByZXR1cm4ge1Zhc0pvYk1vZGVsRHluYW1pY0ludGVyZmFjZX1cbiAgICovXG4gIGdldCAkdGhpcygpOiBWYXNKb2JNb2RlbER5bmFtaWNJbnRlcmZhY2Uge1xuICAgIHJldHVybiB0aGlzIGFzIGFueTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBKb2IgZHluYW1pYyBwcm9wZXJ0aWVzIGkuZS4gdGhvc2UgdGhhdCBhcmUgYWRkZWQgYnkgdGhlXG4gICAqIGR5bmFtaWMgZm9ybXNcbiAgICovXG4gIGdldCBkeW5hbWljUHJvcGVydGllcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICBjb25zdCBuYXRpdmVQcm9wcyA9IHRoaXMuc3RhdGljUHJvcGVydGllcztcbiAgICByZXR1cm4gT2JqZWN0XG4gICAgICAuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKVxuICAgICAgLmZpbHRlcihwcm9wID0+ICFuYXRpdmVQcm9wcy5pbmNsdWRlcyhwcm9wKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBwcm9wZXJ0aWVzIG9mIHRoZSBKb2IgdHlwZVxuICAgKi9cbiAgZ2V0IHN0YXRpY1Byb3BlcnRpZXMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKFZhc0pvYk1vZGVsLmVtcHR5KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm4ge1Zhc0pvYk1vZGVsfVxuICAgKi9cbiAgc3RhdGljIGVtcHR5KCk6IFZhc0pvYk1vZGVsIHtcbiAgICByZXR1cm4gbmV3IFZhc0pvYk1vZGVsKFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgIG1vbWVudCgpLnV0Y09mZnNldCgpLFxuICAgICAgMCxcbiAgICAgICcnLFxuICAgICAgMCxcbiAgICAgIFtdLFxuICAgICAgW10sXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgZ2V0RW1wdHlHZW9Mb2NhdGlvbigpXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBvdmVycmlkZSBmcm9tRHRvKGR0bzogUGFydGlhbDxWYXNKb2JEdG8+KTogVmFzSm9iTW9kZWwge1xuICAgIGNvbnN0IG1vZGVsID0gbmV3IFZhc0pvYk1vZGVsKFxuICAgICAgZHRvLmlkIHx8ICcnLFxuICAgICAgZHRvLmNyZWF0ZWQgfHwgJycsXG4gICAgICBkdG8uc2VydmVyQ3JlYXRlZCB8fCAnJyxcbiAgICAgIGR0by5jcmVhdGVkQnkgfHwgJycsXG4gICAgICBkdG8ubW9kaWZpZWQgfHwgJycsXG4gICAgICBkdG8uc2VydmVyTW9kaWZpZWQgfHwgJycsXG4gICAgICBkdG8ubW9kaWZpZWRCeSB8fCAnJyxcbiAgICAgIGR0by5jcmVhdGVkQnlOYW1lIHx8ICcnLFxuICAgICAgZHRvLm1vZGlmaWVkQnlOYW1lIHx8ICcnLFxuICAgICAgZHRvLmFjY291bnQgfHwgJycsXG4gICAgICBkdG8uYWNjZXNzR3JvdXAgfHwgJycsXG4gICAgICBkdG8ucmVmZXJlbmNlIHx8ICcnLFxuICAgICAgZHRvLmpvYkRhdGUgfHwgJycsXG4gICAgICBkdG8uam9iU3RhdHVzIHx8ICcnLFxuICAgICAgZHRvLmpvYlR5cGUgfHwgJycsXG4gICAgICBkdG8uYXNzaWduZWVJZCB8fCAnJyxcbiAgICAgIGR0by5mb3JtSWQgfHwgJycsXG4gICAgICBkdG8udGltZVpvbmVPZmZzZXQgfHwgbW9tZW50KCkudXRjT2Zmc2V0KCksXG4gICAgICBkdG8ucGVuZGluZ0ZpZWxkcyB8fCAwLFxuICAgICAgZHRvLmNoaWxkTW9kaWZpZWQgfHwgJycsXG4gICAgICBkdG8udmVyc2lvbiB8fCAwLFxuICAgICAgZHRvLmZpZWxkcyB8fCBbXSxcbiAgICAgIGR0by5maWxlcyB8fCBbXSxcbiAgICAgIGR0by5jcmVhdGVkQnlEaXNwbGF5TmFtZSB8fCAnJyxcbiAgICAgIGR0by5tb2RpZmllZEJ5RGlzcGxheU5hbWUgfHwgJycsXG4gICAgICBkdG8uZ2VvTG9jYXRpb24gfHwgZ2V0RW1wdHlHZW9Mb2NhdGlvbigpXG4gICAgKTtcbiAgICBjb25zdCBlbXB0eUtleXMgPSBtb2RlbC5zdGF0aWNQcm9wZXJ0aWVzO1xuICAgIE9iamVjdFxuICAgICAgLmtleXMoZHRvKVxuICAgICAgLmZpbHRlcihrZXkgPT4gZW1wdHlLZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTEpXG4gICAgICAuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+XG4gICAgICAgIG1vZGVsLiR0aGlzW2tleV0gPSAoZHRvIGFzIFZhc0pvYk1vZGVsRHluYW1pY0ludGVyZmFjZSlba2V5XVxuICAgICAgKTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2Qgd2lsbCBpbnN0YW50aWF0ZSBhIG5ldyBKb2JNb2RlbC4gVGhlIGRpZmZlcmVuY2Ugd2l0aCB0aGlzXG4gICAqIG1ldGhvZCBvZiBpbnN0YW50aWF0aW9uIGlzIHRoYXQgd2UgYXJlIGNvbWluZyBmcm9tIGEgcmVsYXRpb24gZnJhbWUgaS5lLlxuICAgKiB0aGUgam9iIGhhcyBhIGxpc3Qgb2Yge0BsaW5rIFZhc0ZpZWxkRHRvfSBpbnN0ZWFkIG9mIGEgSm9iIGRvY3VtZW50LlxuICAgKlxuICAgKi9cbiAgc3RhdGljIGZyb21SZWxhdGlvbmFsKFxuICAgIGR0bzogUGFydGlhbDxWYXNKb2JEdG8+LFxuICAgIGZvcm06IFZhc0Zvcm1EdG9cbiAgKTogVmFzSm9iTW9kZWwge1xuICAgIGNvbnN0IG1vZGVsID0gbmV3IFZhc0pvYk1vZGVsKFxuICAgICAgZHRvLmlkIHx8ICcnLFxuICAgICAgZHRvLmNyZWF0ZWQgfHwgJycsXG4gICAgICBkdG8uc2VydmVyQ3JlYXRlZCB8fCAnJyxcbiAgICAgIGR0by5jcmVhdGVkQnkgfHwgJycsXG4gICAgICBkdG8ubW9kaWZpZWQgfHwgJycsXG4gICAgICBkdG8uc2VydmVyTW9kaWZpZWQgfHwgJycsXG4gICAgICBkdG8ubW9kaWZpZWRCeSB8fCAnJyxcbiAgICAgIGR0by5jcmVhdGVkQnlOYW1lIHx8ICcnLFxuICAgICAgZHRvLm1vZGlmaWVkQnlOYW1lIHx8ICcnLFxuICAgICAgZHRvLmFjY291bnQgfHwgJycsXG4gICAgICBkdG8uYWNjZXNzR3JvdXAgfHwgJycsXG4gICAgICBkdG8ucmVmZXJlbmNlIHx8ICcnLFxuICAgICAgZHRvLmpvYkRhdGUgfHwgJycsXG4gICAgICBkdG8uam9iU3RhdHVzIHx8ICcnLFxuICAgICAgZHRvLmpvYlR5cGUgfHwgJycsXG4gICAgICBkdG8uYXNzaWduZWVJZCB8fCAnJyxcbiAgICAgIGR0by5mb3JtSWQgfHwgJycsXG4gICAgICBkdG8udGltZVpvbmVPZmZzZXQgfHwgbW9tZW50KCkudXRjT2Zmc2V0KCksXG4gICAgICBkdG8ucGVuZGluZ0ZpZWxkcyB8fCAwLFxuICAgICAgZHRvLmNoaWxkTW9kaWZpZWQgfHwgJycsXG4gICAgICBkdG8udmVyc2lvbiB8fCAwLFxuICAgICAgZHRvLmZpZWxkcyB8fCBbXSxcbiAgICAgIGR0by5maWxlcyB8fCBbXSxcbiAgICAgIGR0by5jcmVhdGVkQnlEaXNwbGF5TmFtZSB8fCAnJyxcbiAgICAgIGR0by5tb2RpZmllZEJ5RGlzcGxheU5hbWUgfHwgJycsXG4gICAgICBkdG8uZ2VvTG9jYXRpb24gfHwgZ2V0RW1wdHlHZW9Mb2NhdGlvbigpXG4gICAgKTtcblxuICAgIGZvcm0uZ3JvdXBzXG4gICAgICAuZm9yRWFjaChncm91cCA9PiB7XG4gICAgICAgIGdyb3VwLmNvbnRyb2xzXG4gICAgICAgICAgLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZCA9IGR0by5maWVsZHM/LmZpbmQoZiA9PiBmLmNvbnRyb2wgPT09IGNvbnRyb2wuaWQpO1xuICAgICAgICAgICAgaWYgKCFmaWVsZCkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtb2RlbC5nZXRHcm91cChncm91cC5uYW1lKVtjb250cm9sLm5hbWVdID0gZmllbGQudmFsdWU7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtWYXNGb3JtTW9kZWx9IGZvcm1Nb2RlbFxuICAgKiBAcmV0dXJuIHtSZWNvcmQ8c3RyaW5nLCBWYXNGaWVsZER0b1ZhbHVlPn1cbiAgICovXG4gIGdldEZpZWxkcyhmb3JtTW9kZWw6IFZhc0Zvcm1Nb2RlbCk6IFJlY29yZDxzdHJpbmcsIFZhc0ZpZWxkRHRvVmFsdWU+IHtcbiAgICBjb25zdCBmaWVsZHM6IHsgW2tleTogc3RyaW5nXTogVmFzRmllbGREdG9WYWx1ZSB9ID0ge307XG4gICAgZm9ybU1vZGVsLmdyb3Vwc1xuICAgICAgLmZvckVhY2goZ3JvdXAgPT4ge1xuICAgICAgICBncm91cC5jb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgICAgIChmaWVsZHMpW2NvbnRyb2wucmVwb3J0VGVtcGxhdGVOYW1lXSA9XG4gICAgICAgICAgICB0aGlzLmdldFZhbHVlQnlQYXRoKFtncm91cC5uYW1lLCBjb250cm9sLm5hbWVdKSB8fCBudWxsO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIHJldHVybiBmaWVsZHM7XG4gIH1cblxuICAvKipcbiAgICogV2lsbCByZXR1cm4gYW4gb2JqZWN0IHdob3NlIGtleXMgYXJlIHRoZSBuYW1lcyBvZiBhbGwgZmllbGRzIGluIHRoZSBqb2IuXG4gICAqIFRoaXMgbWV0aG9kIGlzIHNpbWlsYXIgdG8gYGdldEZpZWxkc2AgZXhjZXB0IHRoYXQgdGhpcyBtZXRob2Qgd2lsbCBvbmx5XG4gICAqIHJldHVybiB2YWx1ZXMgd2hlcmUgYSB2YWx1ZSB3YXMgc2V0LCBhcyBvcHBvc2VkIHRvIGBnZXRGaWVsZHNgIHdoaWNoIHdpbGxcbiAgICogcmV0dXJuIGEgdmFsdWUgZm9yIGV2ZXJ5IGNvbnRyb2wgZXZlbiBpZiBub3QgdmFsdWUgd2FzIHNldCwgYmVjYXVzZSBpdCB1c2VzXG4gICAqIHRoZSBmb3JtIHRvIGRyaXZlIHRoZSBsb2dpYy4gTm90ZSBhbHNvIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIHZhbHVlcyBmb3JcbiAgICogYW55IEZpZWxkcyBpbiB0aGUgZmllbGRzIGFycmF5LlxuICAgKiBAcmV0dXJuIHtSZWNvcmQ8c3RyaW5nLCBWYXNGaWVsZER0b1ZhbHVlPn1cbiAgICovXG4gIGdldEZpZWxkczIoKTogUmVjb3JkPHN0cmluZywgVmFzRmllbGREdG9WYWx1ZT4ge1xuICAgIGxldCBmaWVsZHM6IHsgW2tleTogc3RyaW5nXTogVmFzRmllbGREdG9WYWx1ZSB9ID0ge307XG4gICAgdGhpcy5keW5hbWljUHJvcGVydGllc1xuICAgICAgLmZvckVhY2goKGdyb3VwTmFtZSkgPT4ge1xuICAgICAgICBPYmplY3RcbiAgICAgICAgICAua2V5cyh0aGlzLiR0aGlzW2dyb3VwTmFtZV0pXG4gICAgICAgICAgLmZvckVhY2goY29udHJvbE5hbWUgPT4ge1xuICAgICAgICAgICAgZmllbGRzW2NvbnRyb2xOYW1lXSA9XG4gICAgICAgICAgICAgIHRoaXMuZ2V0VmFsdWVCeVBhdGgoW2dyb3VwTmFtZSwgY29udHJvbE5hbWVdKSB8fCBudWxsO1xuICAgICAgICAgIH0pO1xuICAgICAgfSwge30pO1xuICAgIHRoaXMuZmllbGRzLmZvckVhY2goZmllbGQgPT4gZmllbGRzW2ZpZWxkLmNvbnRyb2xOYW1lXSA9IGZpZWxkLnZhbHVlKTtcbiAgICByZXR1cm4gZmllbGRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JqZWN0IGRlc2NyaWJpbmcgaG93IG1hbnkgYXR0YWNobWVudHMgd2VyZSBhZGRlZCB0byB0aGlzIGpvYlxuICAgKiAoY2FtZXJhIGNvbnRyb2xzIGFuZCBmaWxlcyksIGFuZCBob3cgbWFueSBoYXZlIG5vdCBiZWVuIHVwbG9hZGVkIHlldC5cbiAgICpcbiAgICogQHBhcmFtIGZvcm1Nb2RlbCBpbnN0YW5jZSBvZiB7QGxpbmsgVmFzRm9ybU1vZGVsfSB0aGF0IHdhcyB1c2VkIHdoZW4gdGhlXG4gICAqIGpvYiB3YXMgY3JlYXRlZFxuICAgKi9cbiAgZ2V0RmlsZXNVcGxvYWRTdGF0dXMoXG4gICAgZm9ybU1vZGVsOiBWYXNGb3JtTW9kZWxcbiAgKTogeyBwZW5kaW5nOiBudW1iZXI7IHRvdGFsOiBudW1iZXIgfSB7XG5cbiAgICBjb25zdCBwYXRoc1dpdGhWYWx1ZTogQXJyYXk8QXJyYXk8c3RyaW5nPj4gPSBmb3JtTW9kZWxcbiAgICAgIC5nZXRDYW1lcmFDb250cm9sUGF0aHMoKVxuICAgICAgLm1hcChwYXRoID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWU6IFZhc0ZpbGVEdG8gfCBWYXNDYW1lcmFDb250cm9sVmFsdWVNb2RlbCA9XG4gICAgICAgICAgdGhpcy5nZXRWYWx1ZUJ5UGF0aChwYXRoKSBhcyBhbnk7XG4gICAgICAgIGlmICh2YWx1ZSAmJiAhIXZhbHVlLmlkKSB7XG4gICAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcihwYXRoID0+IHBhdGggIT09IG51bGwgPyBwYXRoIDogbnVsbClcbiAgICAgIC5maWx0ZXIoaXNBcnJheVN0cmluZyk7XG5cbiAgICBsZXQgdG90YWwgPSBwYXRoc1dpdGhWYWx1ZS5sZW5ndGg7XG5cbiAgICB0b3RhbCArPSB0aGlzLmZpbGVzLmxlbmd0aDtcblxuICAgIC8vIGNhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIGNhbWVyYSBpbWFnZXMgc3RpbGwgdG8gdXBsb2FkXG4gICAgbGV0IHBlbmRpbmcgPSBwYXRoc1dpdGhWYWx1ZVxuICAgICAgLm1hcChwYXRoID0+IHRoaXMuZ2V0VmFsdWVCeVBhdGgocGF0aCkgYXMgYW55KVxuICAgICAgLm1hcCgodmFsdWU6IFZhc0ZpbGVEdG8gfCBWYXNDYW1lcmFDb250cm9sVmFsdWVNb2RlbCkgPT4ge1xuICAgICAgICBpZiAoaXNGaWxlRHRvKHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZS5pZCAmJiB2YWx1ZS5zdGF0dXMgIT09ICdDT01QTEVURSc7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNDYW1lcmFDb250cm9sVmFsdWVWMSh2YWx1ZSkpIHtcbiAgICAgICAgICAvLyBpZiB1cmwgaXMgbm90IHNldCwgaXQgaGFzbid0IGJlZW4gdXBsb2FkZWRcbiAgICAgICAgICByZXR1cm4gdmFsdWUuaWQgJiYgIXZhbHVlLnVybDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcihoYXNVcGxvYWRlZCA9PiBoYXNVcGxvYWRlZClcbiAgICAgIC5sZW5ndGg7XG5cbiAgICAvLyBhZGQgdG90YWwgZnJvbSBmaWxlcyB0aGF0IGFyZSBwZW5kaW5nXG4gICAgcGVuZGluZyArPSB0aGlzLmZpbGVzXG4gICAgICAuZmlsdGVyKHZhbHVlID0+IHZhbHVlLnN0YXR1cyAhPT0gJ0NPTVBMRVRFJylcbiAgICAgIC5sZW5ndGg7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGVuZGluZyxcbiAgICAgIHRvdGFsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIHJldHVybiB0aGUgZHluYW1pYyBwcm9wZXJ0eSBmcm9tIHRoZSBKb2JNb2RlbCB0aGF0XG4gICAqIHJlcHJlc2VudCBhIGdyb3VwIChmcm9tIGEgZm9ybSkuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIHRoZSBuYW1lIG9mIHRoZSBncm91cFxuICAgKiBAcGFyYW0gaW5pdCBpZiB0cnVlIChkZWZhdWx0KSBhbmQgZ3JvdXAgaXMgbm90IGZvdW5kLCBpbml0aWFsaXNlIGFuIGVtcHR5XG4gICAqIGdyb3VwLCBvdGhlcndpc2UgdGhyb3cgYW4gZXJyb3JcbiAgICovXG4gIGdldEdyb3VwKG5hbWU6IHN0cmluZywgaW5pdCA9IHRydWUpOiBSZWNvcmQ8c3RyaW5nLCBWYXNGaWVsZER0b1ZhbHVlPiB7XG4gICAgbGV0IHByb3A7XG4gICAgaWYgKHRoaXMuc3RhdGljUHJvcGVydGllcy5pbmNsdWRlcyhuYW1lKSkge1xuICAgICAgdGhyb3cgRXJyb3IoYGludmFsaWQgZ3JvdXAgbmFtZSAke25hbWV9LCBub3QgYSBkeW5hbWljIHByb3BlcnR5YCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLiR0aGlzW25hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChpbml0KSB7XG4gICAgICAgIHByb3AgPSB0aGlzLiR0aGlzW25hbWVdID0ge307XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBFcnJvcihgaW52YWxpZCBncm91cCBuYW1lICR7bmFtZX0sIG5vdCBmb3VuZGApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwcm9wID0gdGhpcy4kdGhpc1tuYW1lXTtcbiAgICAgIGlmICh0eXBlb2YgcHJvcCAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYGludmFsaWQgZ3JvdXAgbmFtZSAke25hbWV9LCBub3QgYW4gb2JqZWN0YCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcm9wO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBwYXRoIHBhdGggc2VnbWVudHNcbiAgICovXG4gIGdldFZhbHVlQnlQYXRoPFQgZXh0ZW5kcyBWYXNGaWVsZER0b1ZhbHVlPihcbiAgICBwYXRoOiBzdHJpbmdbXSA9IFtdXG4gICk6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBnZXRWYWx1ZUJ5UGF0aChwYXRoLCB0aGlzLiR0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBvcmRlciB0byB1bmRlcnN0YW5kIHdoeSB3ZSBuZWVkIHRoaXMgbWV0aG9kIGl0IGlzIGltcG9ydGFudCB0b1xuICAgKiB1bmRlcnN0YW5kIHRoYXQgd2l0aGluIHRoZSBzeXN0ZW0sIEpvYnMgY2FuIGJlIHJlcHJlc2VudGVkIGluIG9uZSBvZiB0d29cbiAgICogd2F5cywgZG9jdW1lbnQgYW5kIHJlbGF0aW9uYWwuXG4gICAqXG4gICAqIFRoZSBpbXBvcnRhbnQgZGlzdGluY3Rpb24gaXMgaG93IHZhbHVlcyBzdWJtaXR0ZWQgYnkgYSBmb3JtIGFyZSBzdG9yZWQuXG4gICAqXG4gICAqIEpvYnMgc3RvcmVkIGFzIGRvY3VtZW50cyAoSlNPTiBvYmplY3RzKSB3aWxsIHN0b3JlIHVzZXIgdmFsdWVzLCBhcyBkeW5hbWljXG4gICAqIHByb3BlcnRpZXMgb2YgdGhlIGRvY3VtZW50LlxuICAgKlxuICAgKiBXaGVyZWFzLCBKb2JzIHN0b3JlZCBhcyByZWxhdGlvbmFsLCB3aWxsIHN0b3JlIHVzZXIgdmFsdWVzIGluIGFuIGFycmF5IG9mXG4gICAqIHtAbGluayBWYXNGaWVsZER0b30gb2JqZWN0cy5cbiAgICpcbiAgICogRGVwZW5kaW5nIG9uIHdoZXJlIHdlIGFyZSBpbiB0aGUgc3lzdGVtLCBlaXRoZXIgb25lIG9mIHRoZXNlIGFwcHJvYWNoZXMgY2FuXG4gICAqIGJlIG1vcmUgdXNlZnVsIHRoYW4gdGhlIG90aGVyLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCwgYXNzdW1lcyB0aGF0IHRoZSBKb2JNb2RlbCBoYXMgYmVlbiBpbnN0YW50aWF0ZWQgZnJvbSBhXG4gICAqIGRvY3VtZW50IHJlcHJlc2VudGF0aW9uLCBhbmQgc2VydmVzIHRvIGh5ZHJhdGUgdGhlIGZpZWxkcyBhcnJheS4gSW4gb3JkZXJcbiAgICogdG8gYWNoaWV2ZSB0aGlzLCBrbm93bGVkZ2Ugb2YgdGhlIHtAbGluayBWYXNGb3JtRHRvfSB0aGF0IGNyZWF0ZWQgdGhlIGpvYlxuICAgKiBpcyByZXF1aXJlZC5cbiAgICpcbiAgICpcbiAgICogSm9iIGluIGRvY3VtZW50IHJlcHJlc2VudGF0aW9uXG4gICAqIHtcbiAgICogICBpZDogPGd1aWQ+LFxuICAgKiAgIHJlZmVyZW5jZTogXCJzb21ldGhpbmdcIlxuICAgKiAgIDxvdGhlciBzdGF0aWMgam9iIHByb3BlcnRpZXM+Li4uXG4gICAqICAgZm9vOiB7XG4gICAqICAgICBiYXI6IFwidmFsdWVcIlxuICAgKiAgIH1cbiAgICogfVxuICAgKlxuICAgKiBKb2IgaW4gcmVsYXRpb25hbCByZXByZXNlbnRhdGlvblxuICAgKiB7XG4gICAqICAgaWQ6IDxndWlkPixcbiAgICogICByZWZlcmVuY2U6IFwic29tZXRoaW5nXCJcbiAgICogICA8b3RoZXIgc3RhdGljIGpvYiBwcm9wZXJ0aWVzPi4uLlxuICAgKiAgIDx3aWxsIG5vdCBoYXZlIGR5bmFtaWMgcHJvcGVydGllcz4uLi5cbiAgICogICBmaWVsZHM6IFtcbiAgICogICAgIHtcbiAgICogICAgICAgaWQ6IDxndWlkPixcbiAgICogICAgICAgPG90aGVyIGZpZWxkIHByb3BlcnRpZXM+LFxuICAgKiAgICAgICB2YWx1ZTogXCJ2YWx1ZVwiXG4gICAqICAgICB9XG4gICAqICAgXVxuICAgKiB9XG4gICAqXG4gICAqXG4gICAqIEBwYXJhbSBmb3JtTW9kZWwgdGhlIFZhc0Zvcm1Nb2RlbCB0aGF0IHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGUgam9iXG4gICAqIEBwYXJhbSBjb250cm9sRmllbGRJZE1hcCBUaGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZCBlYWNoIGZpZWxkLlxuICAgKiBFaXRoZXIgb25lIHdpbGwgYmUgZm91bmQgaW4gdGhlIG1hcCwgb3IgYSBuZXcgb25lIGlzIGdlbmVyYXRlZC5cbiAgICogQHBhcmFtIGNvbnRyb2xOYW1lcyBpZiBhIHZhbHVlIGlzIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHVzZWRcbiAgICogdG8gZmlsdGVyIHRoZSBmaWVsZHMgdGhhdCBhcmUgcmV0dXJuZWQuXG4gICAqIEByZXR1cm4ge0FycmF5PFZhc0ZpZWxkRHRvPn1cbiAgICovXG4gIGh5ZHJhdGVGaWVsZHMoXG4gICAgZm9ybU1vZGVsOiBWYXNGb3JtTW9kZWwsXG4gICAgY29udHJvbEZpZWxkSWRNYXA6IE1hcDxzdHJpbmcsIHN0cmluZz4gPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpLFxuICAgIGNvbnRyb2xOYW1lcz86IEFycmF5PHN0cmluZz5cbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZmllbGRzOiBBcnJheTxWYXNGaWVsZER0bz4gPSBbXTtcbiAgICBmb3JtTW9kZWwuZ3JvdXBzXG4gICAgICAuZm9yRWFjaChncm91cCA9PiB7XG4gICAgICAgIGdyb3VwLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG5cbiAgICAgICAgICBpZiAoIWNvbnRyb2wubmFtZS5zdGFydHNXaXRoKCdmaWVsZHMuJykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY29udHJvbE5hbWVzICYmICFjb250cm9sTmFtZXMuaW5jbHVkZXMoY29udHJvbC5uYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZpZWxkcy5wdXNoKFZhc0ZpZWxkTW9kZWwuZnJvbUR0byh7XG4gICAgICAgICAgICAvLyBpZiB0aGUgY29udHJvbElkIGV4aXN0cyBpbiB0aGUgbWFwLCB1c2UgdGhlIGFzc29jaWF0ZWQgZmllbGRJZCxcbiAgICAgICAgICAgIC8vIG90aGVyd2lzZSBnZW5lcmF0ZSBhIG5ldyBpZCBmb3IgdGhlIGZpZWxkLlxuICAgICAgICAgICAgaWQ6IGNvbnRyb2xGaWVsZElkTWFwLmdldChjb250cm9sLmlkKSB8fCBVVUlELlVVSUQoKSxcbiAgICAgICAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgICAgICAgIGpvYjogdGhpcy5pZCxcbiAgICAgICAgICAgIGNyZWF0ZWRCeTogdGhpcy5jcmVhdGVkQnksXG4gICAgICAgICAgICBjcmVhdGVkOiB0aGlzLmNyZWF0ZWQsXG4gICAgICAgICAgICBtb2RpZmllZEJ5OiB0aGlzLm1vZGlmaWVkQnksXG4gICAgICAgICAgICBtb2RpZmllZDogdGhpcy5tb2RpZmllZCxcbiAgICAgICAgICAgIGNvbnRyb2w6IGNvbnRyb2wuaWQsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5nZXRWYWx1ZUJ5UGF0aChcbiAgICAgICAgICAgICAgW2dyb3VwLm5hbWUsIGNvbnRyb2wubmFtZV1cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgdGhpcy5maWVsZHMgPSBmaWVsZHM7XG4gIH1cblxuICAvKipcbiAgICogQSB2ZXJ5IG5vbiBzb3BoaXN0aWNhdGVkIHdheSB0byBzZXQgdmFsdWVzIGluIHRoZSBqb2IgdmlhIHBhdGhzXG4gICAqXG4gICAqIEZvciBleGFtcGxlOlxuICAgKlxuICAgKiBzZXRWYWx1ZUJ5UGF0aCgndmFsdWUnLCBbJ2ZvbycsICdiYXInXSk7XG4gICAqXG4gICAqIHdpbGwgbWFrZSByZXN1bHRzIGluIGpvYlxuICAgKiB7XG4gICAqICAgZm9vOiB7XG4gICAqICAgICBiYXI6ICd2YWx1ZSdcbiAgICogICB9XG4gICAqIH1cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBzZXRcbiAgICogQHBhcmFtIHBhdGggcGF0aCBzZWdtZW50c1xuICAgKi9cbiAgc2V0VmFsdWVCeVBhdGgodmFsdWU6IFZhc0ZpZWxkRHRvVmFsdWUsIHBhdGg6IHN0cmluZ1tdID0gW10pOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHBhdGgubGVuZ3RoKSB7XG4gICAgICBjYXNlIDA6IHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2FzZSAxOiB7XG4gICAgICAgICh0aGlzIGFzIGFueSlbcGF0aFswXV0gPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2FzZSAyOiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgICh0aGlzLiR0aGlzW3BhdGhbMF1dIGFzIFJlY29yZDxzdHJpbmcsIFZhc0ZpZWxkRHRvVmFsdWU+KVtwYXRoWzFdXSA9IHZhbHVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgKCh0aGlzLiR0aGlzW3BhdGhbMF1dIGFzIFJlY29yZDxzdHJpbmcsIFZhc0ZpZWxkRHRvVmFsdWU+KVtwYXRoWzFdXSBhcyBSZWNvcmQ8c3RyaW5nLCBWYXNGaWVsZER0b1ZhbHVlPilbcGF0aFsyXV0gPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICB0aHJvdyBFcnJvcigncGF0aCBoYXMgdG9vIG1hbnkgc2VnbWVudHMnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHN0YXRpY09ubHkgaWYgdHJ1ZSwgd2lsbCBvbmx5IG91dHB1dCB2YWx1ZXMgZm9yIHRoZSBzdGF0aWNcbiAgICogcHJvcGVydGllcyBpbiB0aGUgZHRvXG4gICAqL1xuICBwdWJsaWMgdG9EdG8oc3RhdGljT25seSA9IGZhbHNlKTogVmFzSm9iRHRvIHtcblxuICAgIGlmIChzdGF0aWNPbmx5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgY3JlYXRlZDogdGhpcy5jcmVhdGVkLFxuICAgICAgICBjcmVhdGVkQnk6IHRoaXMuY3JlYXRlZEJ5LFxuICAgICAgICBtb2RpZmllZDogdGhpcy5tb2RpZmllZCxcbiAgICAgICAgbW9kaWZpZWRCeTogdGhpcy5tb2RpZmllZEJ5LFxuICAgICAgICBzZXJ2ZXJDcmVhdGVkOiB0aGlzLnNlcnZlckNyZWF0ZWQsXG4gICAgICAgIHNlcnZlck1vZGlmaWVkOiB0aGlzLnNlcnZlck1vZGlmaWVkLFxuICAgICAgICBjcmVhdGVkQnlOYW1lOiB0aGlzLmNyZWF0ZWRCeU5hbWUsXG4gICAgICAgIG1vZGlmaWVkQnlOYW1lOiB0aGlzLm1vZGlmaWVkQnlOYW1lLFxuICAgICAgICBhY2NvdW50OiB0aGlzLmFjY291bnQsXG4gICAgICAgIGFjY2Vzc0dyb3VwOiB0aGlzLmFjY2Vzc0dyb3VwLFxuICAgICAgICByZWZlcmVuY2U6IHRoaXMucmVmZXJlbmNlLFxuICAgICAgICBqb2JEYXRlOiB0aGlzLmpvYkRhdGUsXG4gICAgICAgIGpvYlN0YXR1czogdGhpcy5qb2JTdGF0dXMsXG4gICAgICAgIGpvYlR5cGU6IHRoaXMuam9iVHlwZSxcbiAgICAgICAgYXNzaWduZWVJZDogdGhpcy5hc3NpZ25lZUlkLFxuICAgICAgICBmb3JtSWQ6IHRoaXMuZm9ybUlkLFxuICAgICAgICB0aW1lWm9uZU9mZnNldDogdGhpcy50aW1lWm9uZU9mZnNldCxcbiAgICAgICAgcGVuZGluZ0ZpZWxkczogdGhpcy5wZW5kaW5nRmllbGRzLFxuICAgICAgICBjaGlsZE1vZGlmaWVkOiB0aGlzLmNoaWxkTW9kaWZpZWQsXG4gICAgICAgIHZlcnNpb246IHRoaXMudmVyc2lvbixcbiAgICAgICAgZmllbGRzOiB0aGlzLmZpZWxkcyxcbiAgICAgICAgZmlsZXM6IHRoaXMuZmlsZXMsXG4gICAgICAgIGNyZWF0ZWRCeURpc3BsYXlOYW1lOiB0aGlzLmNyZWF0ZWRCeURpc3BsYXlOYW1lLFxuICAgICAgICBtb2RpZmllZEJ5RGlzcGxheU5hbWU6IHRoaXMubW9kaWZpZWRCeURpc3BsYXlOYW1lLFxuICAgICAgICBnZW9Mb2NhdGlvbjogdGhpcy5nZW9Mb2NhdGlvblxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBkdG8gPSB7fSBhcyBWYXNKb2JNb2RlbER5bmFtaWNJbnRlcmZhY2U7XG4gICAgWy4uLnRoaXMuc3RhdGljUHJvcGVydGllcywgLi4udGhpcy5keW5hbWljUHJvcGVydGllc11cbiAgICAgIC5mb3JFYWNoKHByb3AgPT4gZHRvW3Byb3BdID0gdGhpcy4kdGhpc1twcm9wXSk7XG5cbiAgICByZXR1cm4gZHRvIGFzIGFueTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIHBhcnNlIGEgc3ludGF4IHRoYXQgYWxsb3dzIHVzIHRvIGJ1aWxkIHN0cmluZ3MgZnJvbSB0aGVcbiAgICogdmFsdWVzIG9mIGZyb20gdGhlIGpvYiBtb2RlbC4gRm9yIGV4YW1wbGUgaWYgdGhlIGpvYiBtb2RlbCB3YXM6XG4gICAqXG4gICAqIHtcbiAgICogICBmb286ICdiYXInXG4gICAqIH1cbiAgICpcbiAgICogYW5kIHdlIHBhc3MgXCJpIGFtIGZvbyB7Zm9vfVwiLCB0aGUgcmVzdWx0IHdvdWxkIGJlOlxuICAgKlxuICAgKiBcImkgYW0gZm9vIGJhclwiXG4gICAqXG4gICAqIHdlIGNhbiBhbHNvIHVzZSBtb21lbnQgdG8gcGFyc2UgZGF0ZXMsIGZvciBleGFtcGxlIGlmIHRoZSBqb2IgbW9kZWwgd2FzOlxuICAgKlxuICAgKiB7XG4gICAqICAgY3JlYXRlZDogXCIyMDIyLTAxLTAxVDAwOjAwOjAwKzAwMDBcIlxuICAgKiB9XG4gICAqXG4gICAqIGFuZCB3ZSBwYXNzIFwie2NyZWF0ZWR8ZGF0ZTpZWS1NTS1ERH1cIiwgdGhlIHJlc3VsdCB3b3VsZCBiZTpcbiAgICpcbiAgICogXCIyMDIyLTAxLTAxXCJcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIGEgc3RyaW5nIHdpdGggdGhlIHN5bnRheFxuICAgKiBAcGFyYW0ge1BhcnNlU3ludGF4T3B0aW9uc30gb3B0aW9uc1xuICAgKiBAcmV0dXJuIHRoZSByZXN1bHRzIG9mIHBhcnNpbmcgdGhlIHN5bnRheCBvbiB0aGlzIGpvYlxuICAgKi9cbiAgcGFyc2VTeW50YXgoXG4gICAgdmFsdWU6IHN0cmluZyxcbiAgICBvcHRpb25zOiBQYXJzZVN5bnRheE9wdGlvbnMgPSB7XG4gICAgICB0aW1lWm9uZU9mZnNldDogMFxuICAgIH1cbiAgKTogc3RyaW5nIHtcblxuICAgIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvKHtbXn1dKn0pL2csIChtYXRjaDogc3RyaW5nLCB0b2tlbjogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBzeW50YXggPSB0b2tlbi5zdWJzdHJpbmcoMSwgdG9rZW4ubGVuZ3RoIC0gMSk7XG5cbiAgICAgIGxldCBba2V5LCBmaWx0ZXJdID0gc3ludGF4LnNwbGl0KCd8Jyk7XG4gICAgICBrZXkgPSAoa2V5IHx8ICcnKS50cmltKCk7XG4gICAgICBmaWx0ZXIgPSAoZmlsdGVyIHx8ICcnKS50cmltKCk7XG5cbiAgICAgIGxldCBmaWx0ZXJOYW1lLCBmaWx0ZXJBcmc6IHN0cmluZyA9ICcnO1xuICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICBjb25zdCBzcGxpdEluZGV4ID0gZmlsdGVyLmluZGV4T2YoJzonKTtcbiAgICAgICAgaWYgKHNwbGl0SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgZmlsdGVyTmFtZSA9IGZpbHRlci5zdWJzdHJpbmcoMCwgc3BsaXRJbmRleCk7XG4gICAgICAgICAgZmlsdGVyQXJnID0gZmlsdGVyLnN1YnN0cmluZyhzcGxpdEluZGV4ICsgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmlsdGVyTmFtZSA9IGZpbHRlcjtcbiAgICAgICAgICBmaWx0ZXJBcmcgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBmaWx0ZXJOYW1lID0gKGZpbHRlck5hbWUgfHwgJycpLnRyaW0oKTtcbiAgICAgICAgZmlsdGVyQXJnID0gKGZpbHRlckFyZyB8fCAnJykudHJpbSgpO1xuICAgICAgfVxuICAgICAgY29uc3QgcGF0aCA9IGtleS5zcGxpdCgnLicpO1xuICAgICAgY29uc3Qgb2JqZWN0S2V5ID0gcGF0aC5zaGlmdCgpIHx8ICcnO1xuICAgICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgICAgaWYgKG9iamVjdEtleSA9PT0gJ2pvYicpIHtcbiAgICAgICAgcmVzdWx0ID0gKHRoaXMuZ2V0VmFsdWVCeVBhdGgocGF0aCkgfHwgJycpLnRvU3RyaW5nKCk7XG4gICAgICB9IGVsc2UgaWYgKG9iamVjdEtleSA9PT0gJ2ZpZWxkcycpIHtcbiAgICAgICAgcmVzdWx0ID0gKGdldFZhbHVlQnlQYXRoKFxuICAgICAgICAgIFsnZmllbGRzLicgKyBwYXRoLnNoaWZ0KCksIC4uLnBhdGhdLFxuICAgICAgICAgIHRoaXMuZ2V0RmllbGRzMigpXG4gICAgICAgICkgfHwgJycpLnRvU3RyaW5nKCk7XG4gICAgICB9IGVsc2UgaWYgKG9iamVjdEtleS5sZW5ndGgpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMub2JqZWN0cykge1xuICAgICAgICAgIGlmIChvcHRpb25zLm9iamVjdHNbb2JqZWN0S2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKFxuICAgICAgICAgICAgICBgb2JqZWN0S2V5ICR7b2JqZWN0S2V5fSBpcyBub3QgcHJlc2VudCBpbiBvcHRpb25zLm9iamVjdGBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXN1bHQgPSAnJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0ID0gKGdldFZhbHVlQnlQYXRoKHBhdGgsIG9wdGlvbnMub2JqZWN0c1tvYmplY3RLZXldKSB8fCAnJylcbiAgICAgICAgICAgICAgLnRvU3RyaW5nKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZGVidWcoXG4gICAgICAgICAgICBgb2JqZWN0S2V5ICR7b2JqZWN0S2V5fSB3YXMgdXNlZCBidXQgb3B0aW9ucy5vYmplY3QgaXMgbm90IHNldGBcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuXG5cbiAgICAgIGlmIChmaWx0ZXJOYW1lICYmIHJlc3VsdCkge1xuICAgICAgICBzd2l0Y2ggKGZpbHRlck5hbWUpIHtcbiAgICAgICAgICBjYXNlICdkYXRlJzoge1xuICAgICAgICAgICAgcmV0dXJuIG1vbWVudChyZXN1bHQpXG4gICAgICAgICAgICAgIC51dGNPZmZzZXQob3B0aW9ucy50aW1lWm9uZU9mZnNldClcbiAgICAgICAgICAgICAgLmZvcm1hdChmaWx0ZXJBcmcgfHwgJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ3Vua25vd24gZmlsdGVyICVzJywgZmlsdGVyTmFtZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSkudHJpbSgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJuIHtvYmplY3R9XG4gICAqL1xuICBvdmVycmlkZSB0b0FwaUR0bygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLnRvQXBpRHRvKCksXG4gICAgICByZWZlcmVuY2U6IHRoaXMucmVmZXJlbmNlIHx8ICd+JyxcbiAgICAgIGpvYkRhdGU6IHRoaXMuam9iRGF0ZSB8fCAnficsXG4gICAgICBqb2JUeXBlOiB0aGlzLmpvYlR5cGUgfHwgJ34nLFxuICAgICAgYWNjZXNzR3JvdXA6IHRoaXMuYWNjZXNzR3JvdXAgfHwgJ34nLFxuICAgICAgam9iU3RhdHVzOiB0aGlzLmpvYlN0YXR1cyB8fCAnficsXG4gICAgICBhc3NpZ25lZUlkOiB0aGlzLmFzc2lnbmVlSWQgfHwgJ34nLFxuICAgICAgdGltZVpvbmVPZmZzZXQ6IHRoaXMudGltZVpvbmVPZmZzZXQgfHwgMCxcbiAgICAgIHBlbmRpbmdGaWVsZHM6IHRoaXMucGVuZGluZ0ZpZWxkcyB8fCAwLFxuICAgICAgbGFzdEZvcm06IHRoaXMuZm9ybUlkIHx8ICd+J1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
497
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLWpvYi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Zhcy1saWIvc3JjL2xpYi9lbnRpdHkvdmFzLWpvYi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdsRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RixPQUFPLEVBQWUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsc0JBQXNCLEVBQThCLE1BQU0saURBQWlELENBQUM7QUFDckgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBcUJ6RDs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFZLFNBQVEsK0JBQStCO0lBRTlELFlBQ2tCLEVBQVUsRUFDVixPQUFlLEVBQ2YsYUFBcUIsRUFDckIsU0FBaUIsRUFDakIsUUFBZ0IsRUFDaEIsY0FBc0IsRUFDdEIsVUFBa0IsRUFDbEIsYUFBcUIsRUFDckIsY0FBc0IsRUFDdEIsT0FBZSxFQUNmLFdBQW1CLEVBQzVCLFNBQWlCLEVBQ2pCLE9BQWUsRUFDZixTQUFpQixFQUNqQixPQUFlLEVBQ2YsVUFBa0IsRUFDbEIsTUFBYyxFQUNkLGNBQXNCLEVBQ3RCLGFBQXFCLEVBQ3JCLGFBQXFCLEVBQ3JCLE9BQWUsRUFDZixNQUEwQixFQUMxQixLQUF3QixFQUN4QixvQkFBNEIsRUFDNUIscUJBQTZCLEVBQzdCLFdBQXdCO1FBRS9CLEtBQUssQ0FD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UyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7NkJBQ2pDLE1BQU0sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUM7cUJBQzVCO29CQUNELE9BQU8sQ0FBQyxDQUFDO3dCQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsVUFBVSxDQUFDLENBQUM7cUJBQy9DO2lCQUNGO2FBQ0Y7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFBQSxDQUFDO0lBRUY7O09BRUc7SUFDTSxRQUFRO1FBQ2YsT0FBTztZQUNMLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxHQUFHO1lBQ2hDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxJQUFJLEdBQUc7WUFDNUIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksR0FBRztZQUM1QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFBSSxHQUFHO1lBQ3BDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxJQUFJLEdBQUc7WUFDaEMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksR0FBRztZQUNsQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDO1lBQ3hDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUM7WUFDdEMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksR0FBRztTQUM3QixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNGaWxlRHRvLCBWYXNGaWxlRHRvIH0gZnJvbSAnLi92YXMtZmlsZS5kdG8nO1xuaW1wb3J0IHsgVVVJRCB9IGZyb20gJ2FuZ3VsYXIyLXV1aWQnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgZ2V0VmFsdWVCeVBhdGggfSBmcm9tICcuLi91dGlscy9nZXQtdmFsdWUtYnktcGF0aCc7XG5pbXBvcnQgeyBWYXNCYXNlRHRvIH0gZnJvbSAnLi92YXMtYmFzZS5kdG8nO1xuaW1wb3J0IHsgVmFzRmllbGREdG8sIFZhc0ZpZWxkRHRvVmFsdWUgfSBmcm9tICcuL3Zhcy1maWVsZC5kdG8nO1xuaW1wb3J0IHsgVmFzRmllbGRNb2RlbCB9IGZyb20gJy4vdmFzLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IFZhc0Zvcm1Nb2RlbCB9IGZyb20gJy4vdmFzLWZvcm0ubW9kZWwnO1xuaW1wb3J0IHsgVmFzSm9iRHRvIH0gZnJvbSAnLi92YXMtam9iLmR0byc7XG5pbXBvcnQgeyBWYXNSZXN0cmljdGVkQWNjb3VudE9iamVjdE1vZGVsIH0gZnJvbSAnLi92YXMtcmVzdHJpY3RlZC1hY2NvdW50LW9iamVjdC5tb2RlbCc7XG5pbXBvcnQgeyBHZW9Mb2NhdGlvbiwgZ2V0RW1wdHlHZW9Mb2NhdGlvbiB9IGZyb20gJy4uL21vZGVsL2dlby1sb2NhdGlvbic7XG5pbXBvcnQgeyBpc0NhbWVyYUNvbnRyb2xWYWx1ZVYxLCBWYXNDYW1lcmFDb250cm9sVmFsdWVNb2RlbCB9IGZyb20gJy4uL2NvbnRyb2wtdmFsdWUvdmFzLWNhbWVyYS1jb250cm9sLXZhbHVlLm1vZGVsJztcbmltcG9ydCB7IGlzQXJyYXlTdHJpbmcgfSBmcm9tICcuLi91dGlscy9pcy1hcnJheS1zdHJpbmcnO1xuaW1wb3J0IHsgVmFzRm9ybUR0byB9IGZyb20gJy4vdmFzLWZvcm0uZHRvJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZhc0pvYk1vZGVsRHluYW1pY0ludGVyZmFjZSB7XG4gIFtzOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBSZWNvcmQ8c3RyaW5nLCBWYXNGaWVsZER0b1ZhbHVlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJzZVN5bnRheE9wdGlvbnMge1xuICAvLyBUaGlzIHZhbHVlIHdpbGwgYmUgdXNlZCB0byBhZGp1c3QgYW55IGRhdGV0aW1lIHZhbHVlcyB0aGF0IGFyZSByZWZlcmVuY2VkXG4gIC8vIGluIHRoZSBzeW50YXggc3RyaW5nLiBTZWVcbiAgLy8gaHR0cHM6Ly9tb21lbnRqc2NvbS5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvbW9tZW50LzAzLW1hbmlwdWxhdGluZy8wOS11dGMtb2Zmc2V0L1xuICAvLyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgYG1vbWVudGAgd2lsbCBoYW5kbGUgdGhlIHZhbHVlLlxuICB0aW1lWm9uZU9mZnNldDogbnVtYmVyLFxuICAvLyB0aGlzIGRpY3Rpb25hcnkgY2FuIGJlIHBhc3NlZCBpbiB0byBjb250YWluIG90aGVyIG9iamVjdHMgdG8gYmUgcmVmZXJlbmNlZFxuICAvLyBpbiB0aGUgc3ludGF4LiBGb3IgZXhhbXBsZSBpZiB3ZSBoYXZlIHtqb2IuZm9vfSB0aGlzIHdpbGwgcmVmZXJlbmNlIHRoZVxuICAvLyBqb2IncyBgZm9vYCBwcm9wZXJ0eSwgaG93ZXZlciBpZiB3ZSBoYXZlIFwicmVwb3J0TGF5b3V0LnRpdGxlXCIgdGhpcyB3aWxsXG4gIC8vIGV4cGVjdCB0byBmaW5kIGEgcHJvcGVydHkgb2YgYG9iamVjdHNgIGNhbGxlZCBgcmVwb3J0TGF5b3V0YCB3aGljaCB3aWxsXG4gIC8vIGhhdmUgYSBwcm9wZXJ0eSBjYWxsZWQgYHRpdGxlYFxuICBvYmplY3RzPzogUmVjb3JkPHN0cmluZywgUGFydGlhbDxWYXNCYXNlRHRvPiB8IFJlY29yZDxzdHJpbmcsIFZhc0ZpZWxkRHRvVmFsdWU+Pjtcbn1cblxuLyoqXG4gKiBKb2JNb2RlbFxuICovXG5leHBvcnQgY2xhc3MgVmFzSm9iTW9kZWwgZXh0ZW5kcyBWYXNSZXN0cmljdGVkQWNjb3VudE9iamVjdE1vZGVsIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgb3ZlcnJpZGUgaWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY3JlYXRlZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBzZXJ2ZXJDcmVhdGVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIGNyZWF0ZWRCeTogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBtb2RpZmllZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBzZXJ2ZXJNb2RpZmllZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBtb2RpZmllZEJ5OiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIGNyZWF0ZWRCeU5hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbW9kaWZpZWRCeU5hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgYWNjb3VudDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBhY2Nlc3NHcm91cDogc3RyaW5nLFxuICAgIHB1YmxpYyByZWZlcmVuY2U6IHN0cmluZyxcbiAgICBwdWJsaWMgam9iRGF0ZTogc3RyaW5nLFxuICAgIHB1YmxpYyBqb2JTdGF0dXM6IHN0cmluZyxcbiAgICBwdWJsaWMgam9iVHlwZTogc3RyaW5nLFxuICAgIHB1YmxpYyBhc3NpZ25lZUlkOiBzdHJpbmcsXG4gICAgcHVibGljIGZvcm1JZDogc3RyaW5nLFxuICAgIHB1YmxpYyB0aW1lWm9uZU9mZnNldDogbnVtYmVyLFxuICAgIHB1YmxpYyBwZW5kaW5nRmllbGRzOiBudW1iZXIsXG4gICAgcHVibGljIGNoaWxkTW9kaWZpZWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgdmVyc2lvbjogbnVtYmVyLFxuICAgIHB1YmxpYyBmaWVsZHM6IEFycmF5PFZhc0ZpZWxkRHRvPixcbiAgICBwdWJsaWMgZmlsZXM6IEFycmF5PFZhc0ZpbGVEdG8+LFxuICAgIHB1YmxpYyBjcmVhdGVkQnlEaXNwbGF5TmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyBtb2RpZmllZEJ5RGlzcGxheU5hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMgZ2VvTG9jYXRpb246IEdlb0xvY2F0aW9uXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgaWQsXG4gICAgICBjcmVhdGVkLFxuICAgICAgc2VydmVyQ3JlYXRlZCxcbiAgICAgIGNyZWF0ZWRCeSxcbiAgICAgIG1vZGlmaWVkLFxuICAgICAgc2VydmVyTW9kaWZpZWQsXG4gICAgICBtb2RpZmllZEJ5LFxuICAgICAgY3JlYXRlZEJ5TmFtZSxcbiAgICAgIG1vZGlmaWVkQnlOYW1lLFxuICAgICAgYWNjb3VudCxcbiAgICAgIGFjY2Vzc0dyb3VwXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoaXMgd2l0aCB0aGUgZHluYW1pYyBpbnRlcmZhY2VcbiAgICogQHJldHVybiB7VmFzSm9iTW9kZWxEeW5hbWljSW50ZXJmYWNlfVxuICAgKi9cbiAgZ2V0ICR0aGlzKCk6IFZhc0pvYk1vZGVsRHluYW1pY0ludGVyZmFjZSB7XG4gICAgcmV0dXJuIHRoaXMgYXMgYW55O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIEpvYiBkeW5hbWljIHByb3BlcnRpZXMgaS5lLiB0aG9zZSB0aGF0IGFyZSBhZGRlZCBieSB0aGVcbiAgICogZHluYW1pYyBmb3Jtc1xuICAgKi9cbiAgZ2V0IGR5bmFtaWNQcm9wZXJ0aWVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIGNvbnN0IG5hdGl2ZVByb3BzID0gdGhpcy5zdGF0aWNQcm9wZXJ0aWVzO1xuICAgIHJldHVybiBPYmplY3RcbiAgICAgIC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpXG4gICAgICAuZmlsdGVyKHByb3AgPT4gIW5hdGl2ZVByb3BzLmluY2x1ZGVzKHByb3ApKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIHByb3BlcnRpZXMgb2YgdGhlIEpvYiB0eXBlXG4gICAqL1xuICBnZXQgc3RhdGljUHJvcGVydGllcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoVmFzSm9iTW9kZWwuZW1wdHkoKSk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybiB7VmFzSm9iTW9kZWx9XG4gICAqL1xuICBzdGF0aWMgZW1wdHkoKTogVmFzSm9iTW9kZWwge1xuICAgIHJldHVybiBuZXcgVmFzSm9iTW9kZWwoXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICAnJyxcbiAgICAgICcnLFxuICAgICAgbW9tZW50KCkudXRjT2Zmc2V0KCksXG4gICAgICAwLFxuICAgICAgJycsXG4gICAgICAwLFxuICAgICAgW10sXG4gICAgICBbXSxcbiAgICAgICcnLFxuICAgICAgJycsXG4gICAgICBnZXRFbXB0eUdlb0xvY2F0aW9uKClcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIG92ZXJyaWRlIGZyb21EdG8oZHRvOiBQYXJ0aWFsPFZhc0pvYkR0bz4pOiBWYXNKb2JNb2RlbCB7XG4gICAgY29uc3QgbW9kZWwgPSBuZXcgVmFzSm9iTW9kZWwoXG4gICAgICBkdG8uaWQgfHwgJycsXG4gICAgICBkdG8uY3JlYXRlZCB8fCAnJyxcbiAgICAgIGR0by5zZXJ2ZXJDcmVhdGVkIHx8ICcnLFxuICAgICAgZHRvLmNyZWF0ZWRCeSB8fCAnJyxcbiAgICAgIGR0by5tb2RpZmllZCB8fCAnJyxcbiAgICAgIGR0by5zZXJ2ZXJNb2RpZmllZCB8fCAnJyxcbiAgICAgIGR0by5tb2RpZmllZEJ5IHx8ICcnLFxuICAgICAgZHRvLmNyZWF0ZWRCeU5hbWUgfHwgJycsXG4gICAgICBkdG8ubW9kaWZpZWRCeU5hbWUgfHwgJycsXG4gICAgICBkdG8uYWNjb3VudCB8fCAnJyxcbiAgICAgIGR0by5hY2Nlc3NHcm91cCB8fCAnJyxcbiAgICAgIGR0by5yZWZlcmVuY2UgfHwgJycsXG4gICAgICBkdG8uam9iRGF0ZSB8fCAnJyxcbiAgICAgIGR0by5qb2JTdGF0dXMgfHwgJycsXG4gICAgICBkdG8uam9iVHlwZSB8fCAnJyxcbiAgICAgIGR0by5hc3NpZ25lZUlkIHx8ICcnLFxuICAgICAgZHRvLmZvcm1JZCB8fCAoZHRvIGFzIGFueSkubGFzdEZvcm0gfHwgJycsXG4gICAgICBkdG8udGltZVpvbmVPZmZzZXQgfHwgbW9tZW50KCkudXRjT2Zmc2V0KCksXG4gICAgICBkdG8ucGVuZGluZ0ZpZWxkcyB8fCAwLFxuICAgICAgZHRvLmNoaWxkTW9kaWZpZWQgfHwgJycsXG4gICAgICBkdG8udmVyc2lvbiB8fCAwLFxuICAgICAgZHRvLmZpZWxkcyB8fCBbXSxcbiAgICAgIGR0by5maWxlcyB8fCBbXSxcbiAgICAgIGR0by5jcmVhdGVkQnlEaXNwbGF5TmFtZSB8fCAnJyxcbiAgICAgIGR0by5tb2RpZmllZEJ5RGlzcGxheU5hbWUgfHwgJycsXG4gICAgICBkdG8uZ2VvTG9jYXRpb24gfHwgZ2V0RW1wdHlHZW9Mb2NhdGlvbigpXG4gICAgKTtcbiAgICBjb25zdCBlbXB0eUtleXMgPSBtb2RlbC5zdGF0aWNQcm9wZXJ0aWVzO1xuICAgIE9iamVjdFxuICAgICAgLmtleXMoZHRvKVxuICAgICAgLmZpbHRlcihrZXkgPT4gZW1wdHlLZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTEpXG4gICAgICAuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+XG4gICAgICAgIG1vZGVsLiR0aGlzW2tleV0gPSAoZHRvIGFzIFZhc0pvYk1vZGVsRHluYW1pY0ludGVyZmFjZSlba2V5XVxuICAgICAgKTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2Qgd2lsbCBpbnN0YW50aWF0ZSBhIG5ldyBKb2JNb2RlbC4gVGhlIGRpZmZlcmVuY2Ugd2l0aCB0aGlzXG4gICAqIG1ldGhvZCBvZiBpbnN0YW50aWF0aW9uIGlzIHRoYXQgd2UgYXJlIGNvbWluZyBmcm9tIGEgcmVsYXRpb24gZnJhbWUgaS5lLlxuICAgKiB0aGUgam9iIGhhcyBhIGxpc3Qgb2Yge0BsaW5rIFZhc0ZpZWxkRHRvfSBpbnN0ZWFkIG9mIGEgSm9iIGRvY3VtZW50LlxuICAgKlxuICAgKi9cbiAgc3RhdGljIGZyb21SZWxhdGlvbmFsKFxuICAgIGR0bzogUGFydGlhbDxWYXNKb2JEdG8+LFxuICAgIGZvcm06IFZhc0Zvcm1EdG9cbiAgKTogVmFzSm9iTW9kZWwge1xuICAgIGNvbnN0IG1vZGVsID0gbmV3IFZhc0pvYk1vZGVsKFxuICAgICAgZHRvLmlkIHx8ICcnLFxuICAgICAgZHRvLmNyZWF0ZWQgfHwgJycsXG4gICAgICBkdG8uc2VydmVyQ3JlYXRlZCB8fCAnJyxcbiAgICAgIGR0by5jcmVhdGVkQnkgfHwgJycsXG4gICAgICBkdG8ubW9kaWZpZWQgfHwgJycsXG4gICAgICBkdG8uc2VydmVyTW9kaWZpZWQgfHwgJycsXG4gICAgICBkdG8ubW9kaWZpZWRCeSB8fCAnJyxcbiAgICAgIGR0by5jcmVhdGVkQnlOYW1lIHx8ICcnLFxuICAgICAgZHRvLm1vZGlmaWVkQnlOYW1lIHx8ICcnLFxuICAgICAgZHRvLmFjY291bnQgfHwgJycsXG4gICAgICBkdG8uYWNjZXNzR3JvdXAgfHwgJycsXG4gICAgICBkdG8ucmVmZXJlbmNlIHx8ICcnLFxuICAgICAgZHRvLmpvYkRhdGUgfHwgJycsXG4gICAgICBkdG8uam9iU3RhdHVzIHx8ICcnLFxuICAgICAgZHRvLmpvYlR5cGUgfHwgJycsXG4gICAgICBkdG8uYXNzaWduZWVJZCB8fCAnJyxcbiAgICAgIGR0by5mb3JtSWQgfHwgJycsXG4gICAgICBkdG8udGltZVpvbmVPZmZzZXQgfHwgbW9tZW50KCkudXRjT2Zmc2V0KCksXG4gICAgICBkdG8ucGVuZGluZ0ZpZWxkcyB8fCAwLFxuICAgICAgZHRvLmNoaWxkTW9kaWZpZWQgfHwgJycsXG4gICAgICBkdG8udmVyc2lvbiB8fCAwLFxuICAgICAgZHRvLmZpZWxkcyB8fCBbXSxcbiAgICAgIGR0by5maWxlcyB8fCBbXSxcbiAgICAgIGR0by5jcmVhdGVkQnlEaXNwbGF5TmFtZSB8fCAnJyxcbiAgICAgIGR0by5tb2RpZmllZEJ5RGlzcGxheU5hbWUgfHwgJycsXG4gICAgICBkdG8uZ2VvTG9jYXRpb24gfHwgZ2V0RW1wdHlHZW9Mb2NhdGlvbigpXG4gICAgKTtcblxuICAgIGZvcm0uZ3JvdXBzXG4gICAgICAuZm9yRWFjaChncm91cCA9PiB7XG4gICAgICAgIGdyb3VwLmNvbnRyb2xzXG4gICAgICAgICAgLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZCA9IGR0by5maWVsZHM/LmZpbmQoZiA9PiBmLmNvbnRyb2wgPT09IGNvbnRyb2wuaWQpO1xuICAgICAgICAgICAgaWYgKCFmaWVsZCkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtb2RlbC5nZXRHcm91cChncm91cC5uYW1lKVtjb250cm9sLm5hbWVdID0gZmllbGQudmFsdWU7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtWYXNGb3JtTW9kZWx9IGZvcm1Nb2RlbFxuICAgKiBAcmV0dXJuIHtSZWNvcmQ8c3RyaW5nLCBWYXNGaWVsZER0b1ZhbHVlPn1cbiAgICovXG4gIGdldEZpZWxkcyhmb3JtTW9kZWw6IFZhc0Zvcm1Nb2RlbCk6IFJlY29yZDxzdHJpbmcsIFZhc0ZpZWxkRHRvVmFsdWU+IHtcbiAgICBjb25zdCBmaWVsZHM6IHsgW2tleTogc3RyaW5nXTogVmFzRmllbGREdG9WYWx1ZSB9ID0ge307XG4gICAgZm9ybU1vZGVsLmdyb3Vwc1xuICAgICAgLmZvckVhY2goZ3JvdXAgPT4ge1xuICAgICAgICBncm91cC5jb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgICAgIChmaWVsZHMpW2NvbnRyb2wucmVwb3J0VGVtcGxhdGVOYW1lXSA9XG4gICAgICAgICAgICB0aGlzLmdldFZhbHVlQnlQYXRoKFtncm91cC5uYW1lLCBjb250cm9sLm5hbWVdKSB8fCBudWxsO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIHJldHVybiBmaWVsZHM7XG4gIH1cblxuICAvKipcbiAgICogV2lsbCByZXR1cm4gYW4gb2JqZWN0IHdob3NlIGtleXMgYXJlIHRoZSBuYW1lcyBvZiBhbGwgZmllbGRzIGluIHRoZSBqb2IuXG4gICAqIFRoaXMgbWV0aG9kIGlzIHNpbWlsYXIgdG8gYGdldEZpZWxkc2AgZXhjZXB0IHRoYXQgdGhpcyBtZXRob2Qgd2lsbCBvbmx5XG4gICAqIHJldHVybiB2YWx1ZXMgd2hlcmUgYSB2YWx1ZSB3YXMgc2V0LCBhcyBvcHBvc2VkIHRvIGBnZXRGaWVsZHNgIHdoaWNoIHdpbGxcbiAgICogcmV0dXJuIGEgdmFsdWUgZm9yIGV2ZXJ5IGNvbnRyb2wgZXZlbiBpZiBub3QgdmFsdWUgd2FzIHNldCwgYmVjYXVzZSBpdCB1c2VzXG4gICAqIHRoZSBmb3JtIHRvIGRyaXZlIHRoZSBsb2dpYy4gTm90ZSBhbHNvIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIHZhbHVlcyBmb3JcbiAgICogYW55IEZpZWxkcyBpbiB0aGUgZmllbGRzIGFycmF5LlxuICAgKiBAcmV0dXJuIHtSZWNvcmQ8c3RyaW5nLCBWYXNGaWVsZER0b1ZhbHVlPn1cbiAgICovXG4gIGdldEZpZWxkczIoKTogUmVjb3JkPHN0cmluZywgVmFzRmllbGREdG9WYWx1ZT4ge1xuICAgIGxldCBmaWVsZHM6IHsgW2tleTogc3RyaW5nXTogVmFzRmllbGREdG9WYWx1ZSB9ID0ge307XG4gICAgdGhpcy5keW5hbWljUHJvcGVydGllc1xuICAgICAgLmZvckVhY2goKGdyb3VwTmFtZSkgPT4ge1xuICAgICAgICBPYmplY3RcbiAgICAgICAgICAua2V5cyh0aGlzLiR0aGlzW2dyb3VwTmFtZV0pXG4gICAgICAgICAgLmZvckVhY2goY29udHJvbE5hbWUgPT4ge1xuICAgICAgICAgICAgZmllbGRzW2NvbnRyb2xOYW1lXSA9XG4gICAgICAgICAgICAgIHRoaXMuZ2V0VmFsdWVCeVBhdGgoW2dyb3VwTmFtZSwgY29udHJvbE5hbWVdKSB8fCBudWxsO1xuICAgICAgICAgIH0pO1xuICAgICAgfSwge30pO1xuICAgIHRoaXMuZmllbGRzLmZvckVhY2goZmllbGQgPT4gZmllbGRzW2ZpZWxkLmNvbnRyb2xOYW1lXSA9IGZpZWxkLnZhbHVlKTtcbiAgICByZXR1cm4gZmllbGRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JqZWN0IGRlc2NyaWJpbmcgaG93IG1hbnkgYXR0YWNobWVudHMgd2VyZSBhZGRlZCB0byB0aGlzIGpvYlxuICAgKiAoY2FtZXJhIGNvbnRyb2xzIGFuZCBmaWxlcyksIGFuZCBob3cgbWFueSBoYXZlIG5vdCBiZWVuIHVwbG9hZGVkIHlldC5cbiAgICpcbiAgICogQHBhcmFtIGZvcm1Nb2RlbCBpbnN0YW5jZSBvZiB7QGxpbmsgVmFzRm9ybU1vZGVsfSB0aGF0IHdhcyB1c2VkIHdoZW4gdGhlXG4gICAqIGpvYiB3YXMgY3JlYXRlZFxuICAgKi9cbiAgZ2V0RmlsZXNVcGxvYWRTdGF0dXMoXG4gICAgZm9ybU1vZGVsOiBWYXNGb3JtTW9kZWxcbiAgKTogeyBwZW5kaW5nOiBudW1iZXI7IHRvdGFsOiBudW1iZXIgfSB7XG5cbiAgICBjb25zdCBwYXRoc1dpdGhWYWx1ZTogQXJyYXk8QXJyYXk8c3RyaW5nPj4gPSBmb3JtTW9kZWxcbiAgICAgIC5nZXRDYW1lcmFDb250cm9sUGF0aHMoKVxuICAgICAgLm1hcChwYXRoID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWU6IFZhc0ZpbGVEdG8gfCBWYXNDYW1lcmFDb250cm9sVmFsdWVNb2RlbCA9XG4gICAgICAgICAgdGhpcy5nZXRWYWx1ZUJ5UGF0aChwYXRoKSBhcyBhbnk7XG4gICAgICAgIGlmICh2YWx1ZSAmJiAhIXZhbHVlLmlkKSB7XG4gICAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcihwYXRoID0+IHBhdGggIT09IG51bGwgPyBwYXRoIDogbnVsbClcbiAgICAgIC5maWx0ZXIoaXNBcnJheVN0cmluZyk7XG5cbiAgICBsZXQgdG90YWwgPSBwYXRoc1dpdGhWYWx1ZS5sZW5ndGg7XG5cbiAgICB0b3RhbCArPSB0aGlzLmZpbGVzLmxlbmd0aDtcblxuICAgIC8vIGNhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIGNhbWVyYSBpbWFnZXMgc3RpbGwgdG8gdXBsb2FkXG4gICAgbGV0IHBlbmRpbmcgPSBwYXRoc1dpdGhWYWx1ZVxuICAgICAgLm1hcChwYXRoID0+IHRoaXMuZ2V0VmFsdWVCeVBhdGgocGF0aCkgYXMgYW55KVxuICAgICAgLm1hcCgodmFsdWU6IFZhc0ZpbGVEdG8gfCBWYXNDYW1lcmFDb250cm9sVmFsdWVNb2RlbCkgPT4ge1xuICAgICAgICBpZiAoaXNGaWxlRHRvKHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZS5pZCAmJiB2YWx1ZS5zdGF0dXMgIT09ICdDT01QTEVURSc7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNDYW1lcmFDb250cm9sVmFsdWVWMSh2YWx1ZSkpIHtcbiAgICAgICAgICAvLyBpZiB1cmwgaXMgbm90IHNldCwgaXQgaGFzbid0IGJlZW4gdXBsb2FkZWRcbiAgICAgICAgICByZXR1cm4gdmFsdWUuaWQgJiYgIXZhbHVlLnVybDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcihoYXNVcGxvYWRlZCA9PiBoYXNVcGxvYWRlZClcbiAgICAgIC5sZW5ndGg7XG5cbiAgICAvLyBhZGQgdG90YWwgZnJvbSBmaWxlcyB0aGF0IGFyZSBwZW5kaW5nXG4gICAgcGVuZGluZyArPSB0aGlzLmZpbGVzXG4gICAgICAuZmlsdGVyKHZhbHVlID0+IHZhbHVlLnN0YXR1cyAhPT0gJ0NPTVBMRVRFJylcbiAgICAgIC5sZW5ndGg7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGVuZGluZyxcbiAgICAgIHRvdGFsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIHJldHVybiB0aGUgZHluYW1pYyBwcm9wZXJ0eSBmcm9tIHRoZSBKb2JNb2RlbCB0aGF0XG4gICAqIHJlcHJlc2VudCBhIGdyb3VwIChmcm9tIGEgZm9ybSkuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIHRoZSBuYW1lIG9mIHRoZSBncm91cFxuICAgKiBAcGFyYW0gaW5pdCBpZiB0cnVlIChkZWZhdWx0KSBhbmQgZ3JvdXAgaXMgbm90IGZvdW5kLCBpbml0aWFsaXNlIGFuIGVtcHR5XG4gICAqIGdyb3VwLCBvdGhlcndpc2UgdGhyb3cgYW4gZXJyb3JcbiAgICovXG4gIGdldEdyb3VwKG5hbWU6IHN0cmluZywgaW5pdCA9IHRydWUpOiBSZWNvcmQ8c3RyaW5nLCBWYXNGaWVsZER0b1ZhbHVlPiB7XG4gICAgbGV0IHByb3A7XG4gICAgaWYgKHRoaXMuc3RhdGljUHJvcGVydGllcy5pbmNsdWRlcyhuYW1lKSkge1xuICAgICAgdGhyb3cgRXJyb3IoYGludmFsaWQgZ3JvdXAgbmFtZSAke25hbWV9LCBub3QgYSBkeW5hbWljIHByb3BlcnR5YCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLiR0aGlzW25hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChpbml0KSB7XG4gICAgICAgIHByb3AgPSB0aGlzLiR0aGlzW25hbWVdID0ge307XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBFcnJvcihgaW52YWxpZCBncm91cCBuYW1lICR7bmFtZX0sIG5vdCBmb3VuZGApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwcm9wID0gdGhpcy4kdGhpc1tuYW1lXTtcbiAgICAgIGlmICh0eXBlb2YgcHJvcCAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYGludmFsaWQgZ3JvdXAgbmFtZSAke25hbWV9LCBub3QgYW4gb2JqZWN0YCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcm9wO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBwYXRoIHBhdGggc2VnbWVudHNcbiAgICovXG4gIGdldFZhbHVlQnlQYXRoPFQgZXh0ZW5kcyBWYXNGaWVsZER0b1ZhbHVlPihcbiAgICBwYXRoOiBzdHJpbmdbXSA9IFtdXG4gICk6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBnZXRWYWx1ZUJ5UGF0aChwYXRoLCB0aGlzLiR0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiBvcmRlciB0byB1bmRlcnN0YW5kIHdoeSB3ZSBuZWVkIHRoaXMgbWV0aG9kIGl0IGlzIGltcG9ydGFudCB0b1xuICAgKiB1bmRlcnN0YW5kIHRoYXQgd2l0aGluIHRoZSBzeXN0ZW0sIEpvYnMgY2FuIGJlIHJlcHJlc2VudGVkIGluIG9uZSBvZiB0d29cbiAgICogd2F5cywgZG9jdW1lbnQgYW5kIHJlbGF0aW9uYWwuXG4gICAqXG4gICAqIFRoZSBpbXBvcnRhbnQgZGlzdGluY3Rpb24gaXMgaG93IHZhbHVlcyBzdWJtaXR0ZWQgYnkgYSBmb3JtIGFyZSBzdG9yZWQuXG4gICAqXG4gICAqIEpvYnMgc3RvcmVkIGFzIGRvY3VtZW50cyAoSlNPTiBvYmplY3RzKSB3aWxsIHN0b3JlIHVzZXIgdmFsdWVzLCBhcyBkeW5hbWljXG4gICAqIHByb3BlcnRpZXMgb2YgdGhlIGRvY3VtZW50LlxuICAgKlxuICAgKiBXaGVyZWFzLCBKb2JzIHN0b3JlZCBhcyByZWxhdGlvbmFsLCB3aWxsIHN0b3JlIHVzZXIgdmFsdWVzIGluIGFuIGFycmF5IG9mXG4gICAqIHtAbGluayBWYXNGaWVsZER0b30gb2JqZWN0cy5cbiAgICpcbiAgICogRGVwZW5kaW5nIG9uIHdoZXJlIHdlIGFyZSBpbiB0aGUgc3lzdGVtLCBlaXRoZXIgb25lIG9mIHRoZXNlIGFwcHJvYWNoZXMgY2FuXG4gICAqIGJlIG1vcmUgdXNlZnVsIHRoYW4gdGhlIG90aGVyLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCwgYXNzdW1lcyB0aGF0IHRoZSBKb2JNb2RlbCBoYXMgYmVlbiBpbnN0YW50aWF0ZWQgZnJvbSBhXG4gICAqIGRvY3VtZW50IHJlcHJlc2VudGF0aW9uLCBhbmQgc2VydmVzIHRvIGh5ZHJhdGUgdGhlIGZpZWxkcyBhcnJheS4gSW4gb3JkZXJcbiAgICogdG8gYWNoaWV2ZSB0aGlzLCBrbm93bGVkZ2Ugb2YgdGhlIHtAbGluayBWYXNGb3JtRHRvfSB0aGF0IGNyZWF0ZWQgdGhlIGpvYlxuICAgKiBpcyByZXF1aXJlZC5cbiAgICpcbiAgICpcbiAgICogSm9iIGluIGRvY3VtZW50IHJlcHJlc2VudGF0aW9uXG4gICAqIHtcbiAgICogICBpZDogPGd1aWQ+LFxuICAgKiAgIHJlZmVyZW5jZTogXCJzb21ldGhpbmdcIlxuICAgKiAgIDxvdGhlciBzdGF0aWMgam9iIHByb3BlcnRpZXM+Li4uXG4gICAqICAgZm9vOiB7XG4gICAqICAgICBiYXI6IFwidmFsdWVcIlxuICAgKiAgIH1cbiAgICogfVxuICAgKlxuICAgKiBKb2IgaW4gcmVsYXRpb25hbCByZXByZXNlbnRhdGlvblxuICAgKiB7XG4gICAqICAgaWQ6IDxndWlkPixcbiAgICogICByZWZlcmVuY2U6IFwic29tZXRoaW5nXCJcbiAgICogICA8b3RoZXIgc3RhdGljIGpvYiBwcm9wZXJ0aWVzPi4uLlxuICAgKiAgIDx3aWxsIG5vdCBoYXZlIGR5bmFtaWMgcHJvcGVydGllcz4uLi5cbiAgICogICBmaWVsZHM6IFtcbiAgICogICAgIHtcbiAgICogICAgICAgaWQ6IDxndWlkPixcbiAgICogICAgICAgPG90aGVyIGZpZWxkIHByb3BlcnRpZXM+LFxuICAgKiAgICAgICB2YWx1ZTogXCJ2YWx1ZVwiXG4gICAqICAgICB9XG4gICAqICAgXVxuICAgKiB9XG4gICAqXG4gICAqXG4gICAqIEBwYXJhbSBmb3JtTW9kZWwgdGhlIFZhc0Zvcm1Nb2RlbCB0aGF0IHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGUgam9iXG4gICAqIEBwYXJhbSBjb250cm9sRmllbGRJZE1hcCBUaGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpZCBlYWNoIGZpZWxkLlxuICAgKiBFaXRoZXIgb25lIHdpbGwgYmUgZm91bmQgaW4gdGhlIG1hcCwgb3IgYSBuZXcgb25lIGlzIGdlbmVyYXRlZC5cbiAgICogQHBhcmFtIGNvbnRyb2xOYW1lcyBpZiBhIHZhbHVlIGlzIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHVzZWRcbiAgICogdG8gZmlsdGVyIHRoZSBmaWVsZHMgdGhhdCBhcmUgcmV0dXJuZWQuXG4gICAqIEByZXR1cm4ge0FycmF5PFZhc0ZpZWxkRHRvPn1cbiAgICovXG4gIGh5ZHJhdGVGaWVsZHMoXG4gICAgZm9ybU1vZGVsOiBWYXNGb3JtTW9kZWwsXG4gICAgY29udHJvbEZpZWxkSWRNYXA6IE1hcDxzdHJpbmcsIHN0cmluZz4gPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpLFxuICAgIGNvbnRyb2xOYW1lcz86IEFycmF5PHN0cmluZz5cbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZmllbGRzOiBBcnJheTxWYXNGaWVsZER0bz4gPSBbXTtcbiAgICBmb3JtTW9kZWwuZ3JvdXBzXG4gICAgICAuZm9yRWFjaChncm91cCA9PiB7XG4gICAgICAgIGdyb3VwLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG5cbiAgICAgICAgICBpZiAoIWNvbnRyb2wubmFtZS5zdGFydHNXaXRoKCdmaWVsZHMuJykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY29udHJvbE5hbWVzICYmICFjb250cm9sTmFtZXMuaW5jbHVkZXMoY29udHJvbC5uYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZpZWxkcy5wdXNoKFZhc0ZpZWxkTW9kZWwuZnJvbUR0byh7XG4gICAgICAgICAgICAvLyBpZiB0aGUgY29udHJvbElkIGV4aXN0cyBpbiB0aGUgbWFwLCB1c2UgdGhlIGFzc29jaWF0ZWQgZmllbGRJZCxcbiAgICAgICAgICAgIC8vIG90aGVyd2lzZSBnZW5lcmF0ZSBhIG5ldyBpZCBmb3IgdGhlIGZpZWxkLlxuICAgICAgICAgICAgaWQ6IGNvbnRyb2xGaWVsZElkTWFwLmdldChjb250cm9sLmlkKSB8fCBVVUlELlVVSUQoKSxcbiAgICAgICAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgICAgICAgIGpvYjogdGhpcy5pZCxcbiAgICAgICAgICAgIGNyZWF0ZWRCeTogdGhpcy5jcmVhdGVkQnksXG4gICAgICAgICAgICBjcmVhdGVkOiB0aGlzLmNyZWF0ZWQsXG4gICAgICAgICAgICBtb2RpZmllZEJ5OiB0aGlzLm1vZGlmaWVkQnksXG4gICAgICAgICAgICBtb2RpZmllZDogdGhpcy5tb2RpZmllZCxcbiAgICAgICAgICAgIGNvbnRyb2w6IGNvbnRyb2wuaWQsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5nZXRWYWx1ZUJ5UGF0aChcbiAgICAgICAgICAgICAgW2dyb3VwLm5hbWUsIGNvbnRyb2wubmFtZV1cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgdGhpcy5maWVsZHMgPSBmaWVsZHM7XG4gIH1cblxuICAvKipcbiAgICogQSB2ZXJ5IG5vbiBzb3BoaXN0aWNhdGVkIHdheSB0byBzZXQgdmFsdWVzIGluIHRoZSBqb2IgdmlhIHBhdGhzXG4gICAqXG4gICAqIEZvciBleGFtcGxlOlxuICAgKlxuICAgKiBzZXRWYWx1ZUJ5UGF0aCgndmFsdWUnLCBbJ2ZvbycsICdiYXInXSk7XG4gICAqXG4gICAqIHdpbGwgbWFrZSByZXN1bHRzIGluIGpvYlxuICAgKiB7XG4gICAqICAgZm9vOiB7XG4gICAqICAgICBiYXI6ICd2YWx1ZSdcbiAgICogICB9XG4gICAqIH1cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBzZXRcbiAgICogQHBhcmFtIHBhdGggcGF0aCBzZWdtZW50c1xuICAgKi9cbiAgc2V0VmFsdWVCeVBhdGgodmFsdWU6IFZhc0ZpZWxkRHRvVmFsdWUsIHBhdGg6IHN0cmluZ1tdID0gW10pOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHBhdGgubGVuZ3RoKSB7XG4gICAgICBjYXNlIDA6IHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2FzZSAxOiB7XG4gICAgICAgICh0aGlzIGFzIGFueSlbcGF0aFswXV0gPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2FzZSAyOiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgICh0aGlzLiR0aGlzW3BhdGhbMF1dIGFzIFJlY29yZDxzdHJpbmcsIFZhc0ZpZWxkRHRvVmFsdWU+KVtwYXRoWzFdXSA9IHZhbHVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgKCh0aGlzLiR0aGlzW3BhdGhbMF1dIGFzIFJlY29yZDxzdHJpbmcsIFZhc0ZpZWxkRHRvVmFsdWU+KVtwYXRoWzFdXSBhcyBSZWNvcmQ8c3RyaW5nLCBWYXNGaWVsZER0b1ZhbHVlPilbcGF0aFsyXV0gPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICB0aHJvdyBFcnJvcigncGF0aCBoYXMgdG9vIG1hbnkgc2VnbWVudHMnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHN0YXRpY09ubHkgaWYgdHJ1ZSwgd2lsbCBvbmx5IG91dHB1dCB2YWx1ZXMgZm9yIHRoZSBzdGF0aWNcbiAgICogcHJvcGVydGllcyBpbiB0aGUgZHRvXG4gICAqL1xuICBwdWJsaWMgdG9EdG8oc3RhdGljT25seSA9IGZhbHNlKTogVmFzSm9iRHRvIHtcblxuICAgIGlmIChzdGF0aWNPbmx5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgY3JlYXRlZDogdGhpcy5jcmVhdGVkLFxuICAgICAgICBjcmVhdGVkQnk6IHRoaXMuY3JlYXRlZEJ5LFxuICAgICAgICBtb2RpZmllZDogdGhpcy5tb2RpZmllZCxcbiAgICAgICAgbW9kaWZpZWRCeTogdGhpcy5tb2RpZmllZEJ5LFxuICAgICAgICBzZXJ2ZXJDcmVhdGVkOiB0aGlzLnNlcnZlckNyZWF0ZWQsXG4gICAgICAgIHNlcnZlck1vZGlmaWVkOiB0aGlzLnNlcnZlck1vZGlmaWVkLFxuICAgICAgICBjcmVhdGVkQnlOYW1lOiB0aGlzLmNyZWF0ZWRCeU5hbWUsXG4gICAgICAgIG1vZGlmaWVkQnlOYW1lOiB0aGlzLm1vZGlmaWVkQnlOYW1lLFxuICAgICAgICBhY2NvdW50OiB0aGlzLmFjY291bnQsXG4gICAgICAgIGFjY2Vzc0dyb3VwOiB0aGlzLmFjY2Vzc0dyb3VwLFxuICAgICAgICByZWZlcmVuY2U6IHRoaXMucmVmZXJlbmNlLFxuICAgICAgICBqb2JEYXRlOiB0aGlzLmpvYkRhdGUsXG4gICAgICAgIGpvYlN0YXR1czogdGhpcy5qb2JTdGF0dXMsXG4gICAgICAgIGpvYlR5cGU6IHRoaXMuam9iVHlwZSxcbiAgICAgICAgYXNzaWduZWVJZDogdGhpcy5hc3NpZ25lZUlkLFxuICAgICAgICBmb3JtSWQ6IHRoaXMuZm9ybUlkLFxuICAgICAgICB0aW1lWm9uZU9mZnNldDogdGhpcy50aW1lWm9uZU9mZnNldCxcbiAgICAgICAgcGVuZGluZ0ZpZWxkczogdGhpcy5wZW5kaW5nRmllbGRzLFxuICAgICAgICBjaGlsZE1vZGlmaWVkOiB0aGlzLmNoaWxkTW9kaWZpZWQsXG4gICAgICAgIHZlcnNpb246IHRoaXMudmVyc2lvbixcbiAgICAgICAgZmllbGRzOiB0aGlzLmZpZWxkcyxcbiAgICAgICAgZmlsZXM6IHRoaXMuZmlsZXMsXG4gICAgICAgIGNyZWF0ZWRCeURpc3BsYXlOYW1lOiB0aGlzLmNyZWF0ZWRCeURpc3BsYXlOYW1lLFxuICAgICAgICBtb2RpZmllZEJ5RGlzcGxheU5hbWU6IHRoaXMubW9kaWZpZWRCeURpc3BsYXlOYW1lLFxuICAgICAgICBnZW9Mb2NhdGlvbjogdGhpcy5nZW9Mb2NhdGlvblxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBkdG8gPSB7fSBhcyBWYXNKb2JNb2RlbER5bmFtaWNJbnRlcmZhY2U7XG4gICAgWy4uLnRoaXMuc3RhdGljUHJvcGVydGllcywgLi4udGhpcy5keW5hbWljUHJvcGVydGllc11cbiAgICAgIC5mb3JFYWNoKHByb3AgPT4gZHRvW3Byb3BdID0gdGhpcy4kdGhpc1twcm9wXSk7XG5cbiAgICByZXR1cm4gZHRvIGFzIGFueTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIHBhcnNlIGEgc3ludGF4IHRoYXQgYWxsb3dzIHVzIHRvIGJ1aWxkIHN0cmluZ3MgZnJvbSB0aGVcbiAgICogdmFsdWVzIG9mIGZyb20gdGhlIGpvYiBtb2RlbC4gRm9yIGV4YW1wbGUgaWYgdGhlIGpvYiBtb2RlbCB3YXM6XG4gICAqXG4gICAqIHtcbiAgICogICBmb286ICdiYXInXG4gICAqIH1cbiAgICpcbiAgICogYW5kIHdlIHBhc3MgXCJpIGFtIGZvbyB7Zm9vfVwiLCB0aGUgcmVzdWx0IHdvdWxkIGJlOlxuICAgKlxuICAgKiBcImkgYW0gZm9vIGJhclwiXG4gICAqXG4gICAqIHdlIGNhbiBhbHNvIHVzZSBtb21lbnQgdG8gcGFyc2UgZGF0ZXMsIGZvciBleGFtcGxlIGlmIHRoZSBqb2IgbW9kZWwgd2FzOlxuICAgKlxuICAgKiB7XG4gICAqICAgY3JlYXRlZDogXCIyMDIyLTAxLTAxVDAwOjAwOjAwKzAwMDBcIlxuICAgKiB9XG4gICAqXG4gICAqIGFuZCB3ZSBwYXNzIFwie2NyZWF0ZWR8ZGF0ZTpZWS1NTS1ERH1cIiwgdGhlIHJlc3VsdCB3b3VsZCBiZTpcbiAgICpcbiAgICogXCIyMDIyLTAxLTAxXCJcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIGEgc3RyaW5nIHdpdGggdGhlIHN5bnRheFxuICAgKiBAcGFyYW0ge1BhcnNlU3ludGF4T3B0aW9uc30gb3B0aW9uc1xuICAgKiBAcmV0dXJuIHRoZSByZXN1bHRzIG9mIHBhcnNpbmcgdGhlIHN5bnRheCBvbiB0aGlzIGpvYlxuICAgKi9cbiAgcGFyc2VTeW50YXgoXG4gICAgdmFsdWU6IHN0cmluZyxcbiAgICBvcHRpb25zOiBQYXJzZVN5bnRheE9wdGlvbnMgPSB7XG4gICAgICB0aW1lWm9uZU9mZnNldDogMFxuICAgIH1cbiAgKTogc3RyaW5nIHtcblxuICAgIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvKHtbXn1dKn0pL2csIChtYXRjaDogc3RyaW5nLCB0b2tlbjogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBzeW50YXggPSB0b2tlbi5zdWJzdHJpbmcoMSwgdG9rZW4ubGVuZ3RoIC0gMSk7XG5cbiAgICAgIGxldCBba2V5LCBmaWx0ZXJdID0gc3ludGF4LnNwbGl0KCd8Jyk7XG4gICAgICBrZXkgPSAoa2V5IHx8ICcnKS50cmltKCk7XG4gICAgICBmaWx0ZXIgPSAoZmlsdGVyIHx8ICcnKS50cmltKCk7XG5cbiAgICAgIGxldCBmaWx0ZXJOYW1lLCBmaWx0ZXJBcmc6IHN0cmluZyA9ICcnO1xuICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICBjb25zdCBzcGxpdEluZGV4ID0gZmlsdGVyLmluZGV4T2YoJzonKTtcbiAgICAgICAgaWYgKHNwbGl0SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgZmlsdGVyTmFtZSA9IGZpbHRlci5zdWJzdHJpbmcoMCwgc3BsaXRJbmRleCk7XG4gICAgICAgICAgZmlsdGVyQXJnID0gZmlsdGVyLnN1YnN0cmluZyhzcGxpdEluZGV4ICsgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmlsdGVyTmFtZSA9IGZpbHRlcjtcbiAgICAgICAgICBmaWx0ZXJBcmcgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBmaWx0ZXJOYW1lID0gKGZpbHRlck5hbWUgfHwgJycpLnRyaW0oKTtcbiAgICAgICAgZmlsdGVyQXJnID0gKGZpbHRlckFyZyB8fCAnJykudHJpbSgpO1xuICAgICAgfVxuICAgICAgY29uc3QgcGF0aCA9IGtleS5zcGxpdCgnLicpO1xuICAgICAgY29uc3Qgb2JqZWN0S2V5ID0gcGF0aC5zaGlmdCgpIHx8ICcnO1xuICAgICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgICAgaWYgKG9iamVjdEtleSA9PT0gJ2pvYicpIHtcbiAgICAgICAgcmVzdWx0ID0gKHRoaXMuZ2V0VmFsdWVCeVBhdGgocGF0aCkgfHwgJycpLnRvU3RyaW5nKCk7XG4gICAgICB9IGVsc2UgaWYgKG9iamVjdEtleSA9PT0gJ2ZpZWxkcycpIHtcbiAgICAgICAgcmVzdWx0ID0gKGdldFZhbHVlQnlQYXRoKFxuICAgICAgICAgIFsnZmllbGRzLicgKyBwYXRoLnNoaWZ0KCksIC4uLnBhdGhdLFxuICAgICAgICAgIHRoaXMuZ2V0RmllbGRzMigpXG4gICAgICAgICkgfHwgJycpLnRvU3RyaW5nKCk7XG4gICAgICB9IGVsc2UgaWYgKG9iamVjdEtleS5sZW5ndGgpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMub2JqZWN0cykge1xuICAgICAgICAgIGlmIChvcHRpb25zLm9iamVjdHNbb2JqZWN0S2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKFxuICAgICAgICAgICAgICBgb2JqZWN0S2V5ICR7b2JqZWN0S2V5fSBpcyBub3QgcHJlc2VudCBpbiBvcHRpb25zLm9iamVjdGBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXN1bHQgPSAnJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0ID0gKGdldFZhbHVlQnlQYXRoKHBhdGgsIG9wdGlvbnMub2JqZWN0c1tvYmplY3RLZXldKSB8fCAnJylcbiAgICAgICAgICAgICAgLnRvU3RyaW5nKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZGVidWcoXG4gICAgICAgICAgICBgb2JqZWN0S2V5ICR7b2JqZWN0S2V5fSB3YXMgdXNlZCBidXQgb3B0aW9ucy5vYmplY3QgaXMgbm90IHNldGBcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuXG5cbiAgICAgIGlmIChmaWx0ZXJOYW1lICYmIHJlc3VsdCkge1xuICAgICAgICBzd2l0Y2ggKGZpbHRlck5hbWUpIHtcbiAgICAgICAgICBjYXNlICdkYXRlJzoge1xuICAgICAgICAgICAgcmV0dXJuIG1vbWVudChyZXN1bHQpXG4gICAgICAgICAgICAgIC51dGNPZmZzZXQob3B0aW9ucy50aW1lWm9uZU9mZnNldClcbiAgICAgICAgICAgICAgLmZvcm1hdChmaWx0ZXJBcmcgfHwgJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ3Vua25vd24gZmlsdGVyICVzJywgZmlsdGVyTmFtZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSkudHJpbSgpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcmV0dXJuIHtvYmplY3R9XG4gICAqL1xuICBvdmVycmlkZSB0b0FwaUR0bygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLnRvQXBpRHRvKCksXG4gICAgICByZWZlcmVuY2U6IHRoaXMucmVmZXJlbmNlIHx8ICd+JyxcbiAgICAgIGpvYkRhdGU6IHRoaXMuam9iRGF0ZSB8fCAnficsXG4gICAgICBqb2JUeXBlOiB0aGlzLmpvYlR5cGUgfHwgJ34nLFxuICAgICAgYWNjZXNzR3JvdXA6IHRoaXMuYWNjZXNzR3JvdXAgfHwgJ34nLFxuICAgICAgam9iU3RhdHVzOiB0aGlzLmpvYlN0YXR1cyB8fCAnficsXG4gICAgICBhc3NpZ25lZUlkOiB0aGlzLmFzc2lnbmVlSWQgfHwgJ34nLFxuICAgICAgdGltZVpvbmVPZmZzZXQ6IHRoaXMudGltZVpvbmVPZmZzZXQgfHwgMCxcbiAgICAgIHBlbmRpbmdGaWVsZHM6IHRoaXMucGVuZGluZ0ZpZWxkcyB8fCAwLFxuICAgICAgbGFzdEZvcm06IHRoaXMuZm9ybUlkIHx8ICd+J1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLXRhc2suZHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFzLWxpYi9zcmMvbGliL2VudGl0eS92YXMtdGFzay5kdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhc0pvYkRhdGFEdG8gfSBmcm9tICcuL3Zhcy1qb2ItZGF0YS5kdG8nO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFzVGFza0R0byBleHRlbmRzIFZhc0pvYkRhdGFEdG8ge1xuICAvLyBub3RlIHRoaXMgaXMgY3VycmVudGx5IGNhbGxlZCBjbGFpbWVkQnkgaW4gdGhlIGFwaS4gVGhpcyBuZWVkcyB0byBiZSBtYXBwZWRcbiAgLy8gaW4gdGhlIHZhcy1hcGkgSm9iIGFuZCBUYXNrIGNvbnRyb2xsZXJzXG4gIGFzc2lnbmVlOiBzdHJpbmc7XG4gIGRvbmU6IGJvb2xlYW47XG4gIGR1ZURhdGU6IHN0cmluZztcbiAgdGFza1R5cGU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,66 @@
1
+ import { VasJobDataModel } from './vas-job-data.model';
2
+ /**
3
+ * VasTaskModel
4
+ */
5
+ export class VasTaskModel extends VasJobDataModel {
6
+ constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, createdByName, modifiedByName, account, job, assignee, done, dueDate, taskType, title) {
7
+ super(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, createdByName, modifiedByName, account, job);
8
+ this.id = id;
9
+ this.created = created;
10
+ this.serverCreated = serverCreated;
11
+ this.createdBy = createdBy;
12
+ this.modified = modified;
13
+ this.serverModified = serverModified;
14
+ this.modifiedBy = modifiedBy;
15
+ this.createdByName = createdByName;
16
+ this.modifiedByName = modifiedByName;
17
+ this.account = account;
18
+ this.job = job;
19
+ this.assignee = assignee;
20
+ this.done = done;
21
+ this.dueDate = dueDate;
22
+ this.taskType = taskType;
23
+ this.title = title;
24
+ }
25
+ /**
26
+ * @param dto VasTaskDto
27
+ * @return VasNoteModel
28
+ */
29
+ static fromDto(dto) {
30
+ return new VasTaskModel(dto.id || '', dto.created || '', dto.serverCreated || '', dto.createdBy || '', dto.modified || '', dto.serverModified || '', dto.modifiedBy || '', dto.createdByName || '', dto.modifiedByName || '', dto.account || '', dto.job || '', dto.assignee || '', dto.done || false, dto.dueDate || '', dto.taskType || '', dto.title || '');
31
+ }
32
+ /**
33
+ * @returns VasTaskDto
34
+ */
35
+ toDto() {
36
+ return {
37
+ id: this.id,
38
+ created: this.created,
39
+ serverCreated: this.serverCreated,
40
+ createdBy: this.createdBy,
41
+ modified: this.modified,
42
+ serverModified: this.serverModified,
43
+ modifiedBy: this.modifiedBy,
44
+ createdByName: this.createdByName,
45
+ modifiedByName: this.modifiedByName,
46
+ account: this.account,
47
+ job: this.job,
48
+ assignee: this.assignee,
49
+ done: this.done,
50
+ dueDate: this.dueDate,
51
+ taskType: this.taskType,
52
+ title: this.title,
53
+ };
54
+ }
55
+ toApiDto(options) {
56
+ return {
57
+ ...super.toApiDto(options),
58
+ assignee: this.assignee,
59
+ done: this.done,
60
+ dueDate: this.dueDate,
61
+ taskType: this.taskType,
62
+ title: this.title,
63
+ };
64
+ }
65
+ }
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLXRhc2subW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YXMtbGliL3NyYy9saWIvZW50aXR5L3Zhcy10YXNrLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd2RDs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFhLFNBQVEsZUFBZTtJQUUvQyxZQUNrQixFQUFVLEVBQ1YsT0FBZSxFQUNmLGFBQXFCLEVBQ3JCLFNBQWlCLEVBQ2pCLFFBQWdCLEVBQ2hCLGNBQXNCLEVBQ3RCLFVBQWtCLEVBQ2xCLGFBQXFCLEVBQ3JCLGNBQXNCLEVBQ3RCLE9BQWUsRUFDZixHQUFXLEVBQ3BCLFFBQWdCLEVBQ2hCLElBQWEsRUFDYixPQUFlLEVBQ2YsUUFBZ0IsRUFDaEIsS0FBYTtRQUVwQixLQUFLLENBQ0gsRUFBRSxFQUNGLE9BQU8sRUFDUCxhQUFhLEVBQ2IsU0FBUyxFQUNULFFBQVEsRUFDUixjQUFjLEVBQ2QsVUFBVSxFQUNWLGFBQWEsRUFDYixjQUFjLEVBQ2QsT0FBTyxFQUNQLEdBQUcsQ0FDSixDQUFBO1FBN0JlLE9BQUUsR0FBRixFQUFFLENBQVE7UUFDVixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2Ysa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLG1CQUFjLEdBQWQsY0FBYyxDQUFRO1FBQ3RCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDcEIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixTQUFJLEdBQUosSUFBSSxDQUFTO1FBQ2IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBUTtJQWV0QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFVLE9BQU8sQ0FBQyxHQUF3QjtRQUM5QyxPQUFPLElBQUksWUFBWSxDQUNyQixHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFDWixHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFDakIsR0FBRyxDQUFDLGFBQWEsSUFBSSxFQUFFLEVBQ3ZCLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxFQUNuQixHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFDbEIsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLEVBQ3hCLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxFQUNwQixHQUFHLENBQUMsYUFBYSxJQUFJLEVBQUUsRUFDdkIsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLEVBQ3hCLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUNqQixHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFDYixHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFDbEIsR0FBRyxDQUFDLElBQUksSUFBSSxLQUFLLEVBQ2pCLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUNqQixHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFDbEIsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQ2hCLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFBO0lBQ0gsQ0FBQztJQUVRLFFBQVEsQ0FBQyxPQUFhO1FBQzdCLE9BQU87WUFDTCxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQzFCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFDO0lBQ0osQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFzSm9iRGF0YU1vZGVsIH0gZnJvbSAnLi92YXMtam9iLWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgVmFzVGFza0R0byB9IGZyb20gJy4vdmFzLXRhc2suZHRvJztcblxuLyoqXG4gKiBWYXNUYXNrTW9kZWxcbiAqL1xuZXhwb3J0IGNsYXNzIFZhc1Rhc2tNb2RlbCBleHRlbmRzIFZhc0pvYkRhdGFNb2RlbCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG92ZXJyaWRlIGlkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIGNyZWF0ZWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2VydmVyQ3JlYXRlZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBjcmVhdGVkQnk6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbW9kaWZpZWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2VydmVyTW9kaWZpZWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbW9kaWZpZWRCeTogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBjcmVhdGVkQnlOYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIG1vZGlmaWVkQnlOYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIGFjY291bnQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgam9iOiBzdHJpbmcsXG4gICAgcHVibGljIGFzc2lnbmVlOiBzdHJpbmcsXG4gICAgcHVibGljIGRvbmU6IGJvb2xlYW4sXG4gICAgcHVibGljIGR1ZURhdGU6IHN0cmluZyxcbiAgICBwdWJsaWMgdGFza1R5cGU6IHN0cmluZyxcbiAgICBwdWJsaWMgdGl0bGU6IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICBpZCxcbiAgICAgIGNyZWF0ZWQsXG4gICAgICBzZXJ2ZXJDcmVhdGVkLFxuICAgICAgY3JlYXRlZEJ5LFxuICAgICAgbW9kaWZpZWQsXG4gICAgICBzZXJ2ZXJNb2RpZmllZCxcbiAgICAgIG1vZGlmaWVkQnksXG4gICAgICBjcmVhdGVkQnlOYW1lLFxuICAgICAgbW9kaWZpZWRCeU5hbWUsXG4gICAgICBhY2NvdW50LFxuICAgICAgam9iXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBkdG8gVmFzVGFza0R0b1xuICAgKiBAcmV0dXJuIFZhc05vdGVNb2RlbFxuICAgKi9cbiAgc3RhdGljIG92ZXJyaWRlIGZyb21EdG8oZHRvOiBQYXJ0aWFsPFZhc1Rhc2tEdG8+KTogVmFzVGFza01vZGVsIHtcbiAgICByZXR1cm4gbmV3IFZhc1Rhc2tNb2RlbChcbiAgICAgIGR0by5pZCB8fCAnJyxcbiAgICAgIGR0by5jcmVhdGVkIHx8ICcnLFxuICAgICAgZHRvLnNlcnZlckNyZWF0ZWQgfHwgJycsXG4gICAgICBkdG8uY3JlYXRlZEJ5IHx8ICcnLFxuICAgICAgZHRvLm1vZGlmaWVkIHx8ICcnLFxuICAgICAgZHRvLnNlcnZlck1vZGlmaWVkIHx8ICcnLFxuICAgICAgZHRvLm1vZGlmaWVkQnkgfHwgJycsXG4gICAgICBkdG8uY3JlYXRlZEJ5TmFtZSB8fCAnJyxcbiAgICAgIGR0by5tb2RpZmllZEJ5TmFtZSB8fCAnJyxcbiAgICAgIGR0by5hY2NvdW50IHx8ICcnLFxuICAgICAgZHRvLmpvYiB8fCAnJyxcbiAgICAgIGR0by5hc3NpZ25lZSB8fCAnJyxcbiAgICAgIGR0by5kb25lIHx8IGZhbHNlLFxuICAgICAgZHRvLmR1ZURhdGUgfHwgJycsXG4gICAgICBkdG8udGFza1R5cGUgfHwgJycsXG4gICAgICBkdG8udGl0bGUgfHwgJycsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBWYXNUYXNrRHRvXG4gICAqL1xuICB0b0R0bygpOiBWYXNUYXNrRHRvIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBjcmVhdGVkOiB0aGlzLmNyZWF0ZWQsXG4gICAgICBzZXJ2ZXJDcmVhdGVkOiB0aGlzLnNlcnZlckNyZWF0ZWQsXG4gICAgICBjcmVhdGVkQnk6IHRoaXMuY3JlYXRlZEJ5LFxuICAgICAgbW9kaWZpZWQ6IHRoaXMubW9kaWZpZWQsXG4gICAgICBzZXJ2ZXJNb2RpZmllZDogdGhpcy5zZXJ2ZXJNb2RpZmllZCxcbiAgICAgIG1vZGlmaWVkQnk6IHRoaXMubW9kaWZpZWRCeSxcbiAgICAgIGNyZWF0ZWRCeU5hbWU6IHRoaXMuY3JlYXRlZEJ5TmFtZSxcbiAgICAgIG1vZGlmaWVkQnlOYW1lOiB0aGlzLm1vZGlmaWVkQnlOYW1lLFxuICAgICAgYWNjb3VudDogdGhpcy5hY2NvdW50LFxuICAgICAgam9iOiB0aGlzLmpvYixcbiAgICAgIGFzc2lnbmVlOiB0aGlzLmFzc2lnbmVlLFxuICAgICAgZG9uZTogdGhpcy5kb25lLFxuICAgICAgZHVlRGF0ZTogdGhpcy5kdWVEYXRlLFxuICAgICAgdGFza1R5cGU6IHRoaXMudGFza1R5cGUsXG4gICAgICB0aXRsZTogdGhpcy50aXRsZSxcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSB0b0FwaUR0byhvcHRpb25zPzogYW55KTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLnRvQXBpRHRvKG9wdGlvbnMpLFxuICAgICAgYXNzaWduZWU6IHRoaXMuYXNzaWduZWUsXG4gICAgICBkb25lOiB0aGlzLmRvbmUsXG4gICAgICBkdWVEYXRlOiB0aGlzLmR1ZURhdGUsXG4gICAgICB0YXNrVHlwZTogdGhpcy50YXNrVHlwZSxcbiAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLFxuICAgIH07XG4gIH1cblxufVxuIl19
@@ -18,7 +18,7 @@ export class VasUserModel extends VasBaseModel {
18
18
  this.instructionProviders = instructionProviders;
19
19
  }
20
20
  static fromDto(dto) {
21
- return new VasUserModel(dto.id, dto.created, dto.serverCreated, dto.createdBy, dto.modified, dto.serverModified, dto.modifiedBy, dto.createdByName || '', dto.modifiedByName || '', dto.email, dto.name, dto.username, dto.memberships, dto.instructionProviders);
21
+ return new VasUserModel(dto.id || '', dto.created || '', dto.serverCreated || '', dto.createdBy || '', dto.modified || '', dto.serverModified || '', dto.modifiedBy || '', dto.createdByName || '', dto.modifiedByName || '', dto.email || '', dto.name || '', dto.username || '', dto.memberships || [], dto.instructionProviders || []);
22
22
  }
23
23
  toDto() {
24
24
  return {
@@ -39,4 +39,4 @@ export class VasUserModel extends VasBaseModel {
39
39
  };
40
40
  }
41
41
  }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLXVzZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YXMtbGliL3NyYy9saWIvZW50aXR5L3Zhcy11c2VyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxNQUFNLE9BQU8sWUFBYSxTQUFRLFlBQVk7SUFFNUMsWUFDa0IsRUFBVSxFQUNWLFVBQWtCLEVBQUUsRUFDcEIsZ0JBQXdCLEVBQUUsRUFDMUIsWUFBb0IsRUFBRSxFQUN0QixXQUFtQixFQUFFLEVBQ3JCLGlCQUF5QixFQUFFLEVBQzNCLGFBQXFCLEVBQUUsRUFDdkIsYUFBcUIsRUFDckIsY0FBc0IsRUFDL0IsS0FBYSxFQUNiLElBQVksRUFDWixRQUFnQixFQUNoQixXQUEwQixFQUMxQixvQkFBbUM7UUFFMUMsS0FBSyxDQUNILEVBQUUsRUFDRixPQUFPLEVBQ1AsYUFBYSxFQUNiLFNBQVMsRUFDVCxRQUFRLEVBQ1IsY0FBYyxFQUNkLFVBQVUsRUFDVixhQUFhLEVBQ2IsY0FBYyxDQUNmLENBQUM7UUF6QmMsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDcEIsa0JBQWEsR0FBYixhQUFhLENBQWE7UUFDMUIsY0FBUyxHQUFULFNBQVMsQ0FBYTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLG1CQUFjLEdBQWQsY0FBYyxDQUFhO1FBQzNCLGVBQVUsR0FBVixVQUFVLENBQWE7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDL0IsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBQzFCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBZTtJQWE1QyxDQUFDO0lBRUQsTUFBTSxDQUFVLE9BQU8sQ0FBQyxHQUFlO1FBQ3JDLE9BQU8sSUFBSSxZQUFZLENBQ3JCLEdBQUcsQ0FBQyxFQUFFLEVBQ04sR0FBRyxDQUFDLE9BQU8sRUFDWCxHQUFHLENBQUMsYUFBYSxFQUNqQixHQUFHLENBQUMsU0FBUyxFQUNiLEdBQUcsQ0FBQyxRQUFRLEVBQ1osR0FBRyxDQUFDLGNBQWMsRUFDbEIsR0FBRyxDQUFDLFVBQVUsRUFDZCxHQUFHLENBQUMsYUFBYSxJQUFJLEVBQUUsRUFDdkIsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLEVBQ3hCLEdBQUcsQ0FBQyxLQUFLLEVBQ1QsR0FBRyxDQUFDLElBQUksRUFDUixHQUFHLENBQUMsUUFBUSxFQUNaLEdBQUcsQ0FBQyxXQUFXLEVBQ2YsR0FBRyxDQUFDLG9CQUFvQixDQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixvQkFBb0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CO1NBQ2hELENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYXNVc2VyRHRvIH0gZnJvbSAnLi92YXMtdXNlci5kdG8nO1xyXG5pbXBvcnQgeyBWYXNCYXNlTW9kZWwgfSBmcm9tICcuL3Zhcy1iYXNlLm1vZGVsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBWYXNVc2VyTW9kZWwgZXh0ZW5kcyBWYXNCYXNlTW9kZWwgaW1wbGVtZW50cyBWYXNVc2VyRHRvIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgaWQ6IHN0cmluZyxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBjcmVhdGVkOiBzdHJpbmcgPSAnJyxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBzZXJ2ZXJDcmVhdGVkOiBzdHJpbmcgPSAnJyxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBjcmVhdGVkQnk6IHN0cmluZyA9ICcnLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIG1vZGlmaWVkOiBzdHJpbmcgPSAnJyxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBzZXJ2ZXJNb2RpZmllZDogc3RyaW5nID0gJycsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbW9kaWZpZWRCeTogc3RyaW5nID0gJycsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY3JlYXRlZEJ5TmFtZTogc3RyaW5nLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIG1vZGlmaWVkQnlOYW1lOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgZW1haWw6IHN0cmluZyxcclxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgdXNlcm5hbWU6IHN0cmluZyxcclxuICAgIHB1YmxpYyBtZW1iZXJzaGlwczogQXJyYXk8c3RyaW5nPixcclxuICAgIHB1YmxpYyBpbnN0cnVjdGlvblByb3ZpZGVyczogQXJyYXk8c3RyaW5nPixcclxuICApIHtcclxuICAgIHN1cGVyKFxyXG4gICAgICBpZCxcclxuICAgICAgY3JlYXRlZCxcclxuICAgICAgc2VydmVyQ3JlYXRlZCxcclxuICAgICAgY3JlYXRlZEJ5LFxyXG4gICAgICBtb2RpZmllZCxcclxuICAgICAgc2VydmVyTW9kaWZpZWQsXHJcbiAgICAgIG1vZGlmaWVkQnksXHJcbiAgICAgIGNyZWF0ZWRCeU5hbWUsXHJcbiAgICAgIG1vZGlmaWVkQnlOYW1lLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBvdmVycmlkZSBmcm9tRHRvKGR0bzogVmFzVXNlckR0byk6IFZhc1VzZXJNb2RlbCB7XHJcbiAgICByZXR1cm4gbmV3IFZhc1VzZXJNb2RlbChcclxuICAgICAgZHRvLmlkLFxyXG4gICAgICBkdG8uY3JlYXRlZCxcclxuICAgICAgZHRvLnNlcnZlckNyZWF0ZWQsXHJcbiAgICAgIGR0by5jcmVhdGVkQnksXHJcbiAgICAgIGR0by5tb2RpZmllZCxcclxuICAgICAgZHRvLnNlcnZlck1vZGlmaWVkLFxyXG4gICAgICBkdG8ubW9kaWZpZWRCeSxcclxuICAgICAgZHRvLmNyZWF0ZWRCeU5hbWUgfHwgJycsXHJcbiAgICAgIGR0by5tb2RpZmllZEJ5TmFtZSB8fCAnJyxcclxuICAgICAgZHRvLmVtYWlsLFxyXG4gICAgICBkdG8ubmFtZSxcclxuICAgICAgZHRvLnVzZXJuYW1lLFxyXG4gICAgICBkdG8ubWVtYmVyc2hpcHMsXHJcbiAgICAgIGR0by5pbnN0cnVjdGlvblByb3ZpZGVyc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHRvRHRvKCk6IFZhc1VzZXJEdG8ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaWQ6IHRoaXMuaWQsXHJcbiAgICAgIGNyZWF0ZWQ6IHRoaXMuY3JlYXRlZCxcclxuICAgICAgc2VydmVyQ3JlYXRlZDogdGhpcy5zZXJ2ZXJDcmVhdGVkLFxyXG4gICAgICBjcmVhdGVkQnk6IHRoaXMuY3JlYXRlZEJ5LFxyXG4gICAgICBtb2RpZmllZDogdGhpcy5tb2RpZmllZCxcclxuICAgICAgc2VydmVyTW9kaWZpZWQ6IHRoaXMuc2VydmVyTW9kaWZpZWQsXHJcbiAgICAgIG1vZGlmaWVkQnk6IHRoaXMubW9kaWZpZWRCeSxcclxuICAgICAgY3JlYXRlZEJ5TmFtZTogdGhpcy5jcmVhdGVkQnlOYW1lLFxyXG4gICAgICBtb2RpZmllZEJ5TmFtZTogdGhpcy5tb2RpZmllZEJ5TmFtZSxcclxuICAgICAgZW1haWw6IHRoaXMuZW1haWwsXHJcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcclxuICAgICAgdXNlcm5hbWU6IHRoaXMudXNlcm5hbWUsXHJcbiAgICAgIG1lbWJlcnNoaXBzOiB0aGlzLm1lbWJlcnNoaXBzLFxyXG4gICAgICBpbnN0cnVjdGlvblByb3ZpZGVyczogdGhpcy5pbnN0cnVjdGlvblByb3ZpZGVyc1xyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLXVzZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YXMtbGliL3NyYy9saWIvZW50aXR5L3Zhcy11c2VyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxNQUFNLE9BQU8sWUFBYSxTQUFRLFlBQVk7SUFFNUMsWUFDa0IsRUFBVSxFQUNWLFVBQWtCLEVBQUUsRUFDcEIsZ0JBQXdCLEVBQUUsRUFDMUIsWUFBb0IsRUFBRSxFQUN0QixXQUFtQixFQUFFLEVBQ3JCLGlCQUF5QixFQUFFLEVBQzNCLGFBQXFCLEVBQUUsRUFDdkIsYUFBcUIsRUFDckIsY0FBc0IsRUFDL0IsS0FBYSxFQUNiLElBQVksRUFDWixRQUFnQixFQUNoQixXQUEwQixFQUMxQixvQkFBbUM7UUFFMUMsS0FBSyxDQUNILEVBQUUsRUFDRixPQUFPLEVBQ1AsYUFBYSxFQUNiLFNBQVMsRUFDVCxRQUFRLEVBQ1IsY0FBYyxFQUNkLFVBQVUsRUFDVixhQUFhLEVBQ2IsY0FBYyxDQUNmLENBQUM7UUF6QmMsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDcEIsa0JBQWEsR0FBYixhQUFhLENBQWE7UUFDMUIsY0FBUyxHQUFULFNBQVMsQ0FBYTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLG1CQUFjLEdBQWQsY0FBYyxDQUFhO1FBQzNCLGVBQVUsR0FBVixVQUFVLENBQWE7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDL0IsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBQzFCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBZTtJQWE1QyxDQUFDO0lBRUQsTUFBTSxDQUFVLE9BQU8sQ0FBQyxHQUF3QjtRQUM5QyxPQUFPLElBQUksWUFBWSxDQUNyQixHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFDWixHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFDakIsR0FBRyxDQUFDLGFBQWEsSUFBSSxFQUFFLEVBQ3ZCLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxFQUNuQixHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFDbEIsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLEVBQ3hCLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxFQUNwQixHQUFHLENBQUMsYUFBYSxJQUFJLEVBQUUsRUFDdkIsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLEVBQ3hCLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxFQUNmLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxFQUNkLEdBQUcsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUNsQixHQUFHLENBQUMsV0FBVyxJQUFJLEVBQUUsRUFDckIsR0FBRyxDQUFDLG9CQUFvQixJQUFJLEVBQUUsQ0FDL0IsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0Isb0JBQW9CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtTQUNoRCxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFzVXNlckR0byB9IGZyb20gJy4vdmFzLXVzZXIuZHRvJztcclxuaW1wb3J0IHsgVmFzQmFzZU1vZGVsIH0gZnJvbSAnLi92YXMtYmFzZS5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgVmFzVXNlck1vZGVsIGV4dGVuZHMgVmFzQmFzZU1vZGVsIGltcGxlbWVudHMgVmFzVXNlckR0byB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGlkOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY3JlYXRlZDogc3RyaW5nID0gJycsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2VydmVyQ3JlYXRlZDogc3RyaW5nID0gJycsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY3JlYXRlZEJ5OiBzdHJpbmcgPSAnJyxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBtb2RpZmllZDogc3RyaW5nID0gJycsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2VydmVyTW9kaWZpZWQ6IHN0cmluZyA9ICcnLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIG1vZGlmaWVkQnk6IHN0cmluZyA9ICcnLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNyZWF0ZWRCeU5hbWU6IHN0cmluZyxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBtb2RpZmllZEJ5TmFtZTogc3RyaW5nLFxyXG4gICAgcHVibGljIGVtYWlsOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nLFxyXG4gICAgcHVibGljIHVzZXJuYW1lOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgbWVtYmVyc2hpcHM6IEFycmF5PHN0cmluZz4sXHJcbiAgICBwdWJsaWMgaW5zdHJ1Y3Rpb25Qcm92aWRlcnM6IEFycmF5PHN0cmluZz4sXHJcbiAgKSB7XHJcbiAgICBzdXBlcihcclxuICAgICAgaWQsXHJcbiAgICAgIGNyZWF0ZWQsXHJcbiAgICAgIHNlcnZlckNyZWF0ZWQsXHJcbiAgICAgIGNyZWF0ZWRCeSxcclxuICAgICAgbW9kaWZpZWQsXHJcbiAgICAgIHNlcnZlck1vZGlmaWVkLFxyXG4gICAgICBtb2RpZmllZEJ5LFxyXG4gICAgICBjcmVhdGVkQnlOYW1lLFxyXG4gICAgICBtb2RpZmllZEJ5TmFtZSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgb3ZlcnJpZGUgZnJvbUR0byhkdG86IFBhcnRpYWw8VmFzVXNlckR0bz4pOiBWYXNVc2VyTW9kZWwge1xyXG4gICAgcmV0dXJuIG5ldyBWYXNVc2VyTW9kZWwoXHJcbiAgICAgIGR0by5pZCB8fCAnJyxcclxuICAgICAgZHRvLmNyZWF0ZWQgfHwgJycsXHJcbiAgICAgIGR0by5zZXJ2ZXJDcmVhdGVkIHx8ICcnLFxyXG4gICAgICBkdG8uY3JlYXRlZEJ5IHx8ICcnLFxyXG4gICAgICBkdG8ubW9kaWZpZWQgfHwgJycsXHJcbiAgICAgIGR0by5zZXJ2ZXJNb2RpZmllZCB8fCAnJyxcclxuICAgICAgZHRvLm1vZGlmaWVkQnkgfHwgJycsXHJcbiAgICAgIGR0by5jcmVhdGVkQnlOYW1lIHx8ICcnLFxyXG4gICAgICBkdG8ubW9kaWZpZWRCeU5hbWUgfHwgJycsXHJcbiAgICAgIGR0by5lbWFpbCB8fCAnJyxcclxuICAgICAgZHRvLm5hbWUgfHwgJycsXHJcbiAgICAgIGR0by51c2VybmFtZSB8fCAnJyxcclxuICAgICAgZHRvLm1lbWJlcnNoaXBzIHx8IFtdLFxyXG4gICAgICBkdG8uaW5zdHJ1Y3Rpb25Qcm92aWRlcnMgfHwgW11cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB0b0R0bygpOiBWYXNVc2VyRHRvIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGlkOiB0aGlzLmlkLFxyXG4gICAgICBjcmVhdGVkOiB0aGlzLmNyZWF0ZWQsXHJcbiAgICAgIHNlcnZlckNyZWF0ZWQ6IHRoaXMuc2VydmVyQ3JlYXRlZCxcclxuICAgICAgY3JlYXRlZEJ5OiB0aGlzLmNyZWF0ZWRCeSxcclxuICAgICAgbW9kaWZpZWQ6IHRoaXMubW9kaWZpZWQsXHJcbiAgICAgIHNlcnZlck1vZGlmaWVkOiB0aGlzLnNlcnZlck1vZGlmaWVkLFxyXG4gICAgICBtb2RpZmllZEJ5OiB0aGlzLm1vZGlmaWVkQnksXHJcbiAgICAgIGNyZWF0ZWRCeU5hbWU6IHRoaXMuY3JlYXRlZEJ5TmFtZSxcclxuICAgICAgbW9kaWZpZWRCeU5hbWU6IHRoaXMubW9kaWZpZWRCeU5hbWUsXHJcbiAgICAgIGVtYWlsOiB0aGlzLmVtYWlsLFxyXG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXHJcbiAgICAgIHVzZXJuYW1lOiB0aGlzLnVzZXJuYW1lLFxyXG4gICAgICBtZW1iZXJzaGlwczogdGhpcy5tZW1iZXJzaGlwcyxcclxuICAgICAgaW5zdHJ1Y3Rpb25Qcm92aWRlcnM6IHRoaXMuaW5zdHJ1Y3Rpb25Qcm92aWRlcnNcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,3 +1,4 @@
1
+ import { only } from '../utils/only';
1
2
  import { VasAccountObjectModel } from './vas-account-object.model';
2
3
  export class VasVehicleModel extends VasAccountObjectModel {
3
4
  constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, createdByName, modifiedByName, account, registration, make, model, archived, description) {
@@ -53,5 +54,16 @@ export class VasVehicleModel extends VasAccountObjectModel {
53
54
  description: this.description
54
55
  };
55
56
  }
57
+ static toApiPatchDto(dto) {
58
+ return only(dto, [
59
+ 'created',
60
+ 'modified',
61
+ 'registration',
62
+ 'make',
63
+ 'model',
64
+ 'description',
65
+ 'archived'
66
+ ]);
67
+ }
56
68
  }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLXZlaGljbGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YXMtbGliL3NyYy9saWIvZW50aXR5L3Zhcy12ZWhpY2xlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR25FLE1BQU0sT0FBTyxlQUFnQixTQUFRLHFCQUFxQjtJQUV4RCxZQUNrQixFQUFVLEVBQ1YsT0FBZSxFQUNmLGFBQXFCLEVBQ3JCLFNBQWlCLEVBQ2pCLFFBQWdCLEVBQ2hCLGNBQXNCLEVBQ3RCLFVBQWtCLEVBQ2xCLGFBQXFCLEVBQ3JCLGNBQXNCLEVBQ3RCLE9BQWUsRUFDeEIsWUFBb0IsRUFDcEIsSUFBWSxFQUNaLEtBQWEsRUFDYixRQUFpQixFQUNqQixXQUFtQjtRQUUxQixLQUFLLENBQ0gsRUFBRSxFQUNGLE9BQU8sRUFDUCxhQUFhLEVBQ2IsU0FBUyxFQUNULFFBQVEsRUFDUixjQUFjLEVBQ2QsVUFBVSxFQUNWLGFBQWEsRUFDYixjQUFjLEVBQ2QsT0FBTyxDQUNSLENBQUM7UUEzQmMsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtJQWM1QixDQUFDO0lBRUQsTUFBTSxDQUFVLE9BQU8sQ0FBQyxHQUEyQjtRQUNqRCxPQUFPLElBQUksZUFBZSxDQUN4QixHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFDWixHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFDakIsR0FBRyxDQUFDLGFBQWEsSUFBSSxFQUFFLEVBQ3ZCLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxFQUNuQixHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFDbEIsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLEVBQ3hCLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxFQUNwQixHQUFHLENBQUMsYUFBYSxJQUFJLEVBQUUsRUFDdkIsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLEVBQ3hCLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUNqQixHQUFHLENBQUMsWUFBWSxJQUFJLEVBQUUsRUFDdEIsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQ2QsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQ2YsR0FBRyxDQUFDLFFBQVEsSUFBSSxLQUFLLEVBQ3JCLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUN0QixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQzlCLENBQUM7SUFDSixDQUFDO0lBRVEsUUFBUSxDQUFDLE9BQWE7UUFDN0IsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztTQUM5QixDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFzQWNjb3VudE9iamVjdE1vZGVsIH0gZnJvbSAnLi92YXMtYWNjb3VudC1vYmplY3QubW9kZWwnO1xuaW1wb3J0IHsgVmFzVmVoaWNsZUR0byB9IGZyb20gJy4vdmFzLXZlaGljbGUuZHRvJztcblxuZXhwb3J0IGNsYXNzIFZhc1ZlaGljbGVNb2RlbCBleHRlbmRzIFZhc0FjY291bnRPYmplY3RNb2RlbCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG92ZXJyaWRlIGlkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIGNyZWF0ZWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2VydmVyQ3JlYXRlZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBjcmVhdGVkQnk6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbW9kaWZpZWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2VydmVyTW9kaWZpZWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbW9kaWZpZWRCeTogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBjcmVhdGVkQnlOYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIG1vZGlmaWVkQnlOYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIGFjY291bnQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVnaXN0cmF0aW9uOiBzdHJpbmcsXG4gICAgcHVibGljIG1ha2U6IHN0cmluZyxcbiAgICBwdWJsaWMgbW9kZWw6IHN0cmluZyxcbiAgICBwdWJsaWMgYXJjaGl2ZWQ6IGJvb2xlYW4sXG4gICAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmdcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICBpZCxcbiAgICAgIGNyZWF0ZWQsXG4gICAgICBzZXJ2ZXJDcmVhdGVkLFxuICAgICAgY3JlYXRlZEJ5LFxuICAgICAgbW9kaWZpZWQsXG4gICAgICBzZXJ2ZXJNb2RpZmllZCxcbiAgICAgIG1vZGlmaWVkQnksXG4gICAgICBjcmVhdGVkQnlOYW1lLFxuICAgICAgbW9kaWZpZWRCeU5hbWUsXG4gICAgICBhY2NvdW50XG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBvdmVycmlkZSBmcm9tRHRvKGR0bzogUGFydGlhbDxWYXNWZWhpY2xlRHRvPik6IFZhc1ZlaGljbGVNb2RlbCB7XG4gICAgcmV0dXJuIG5ldyBWYXNWZWhpY2xlTW9kZWwoXG4gICAgICBkdG8uaWQgfHwgJycsXG4gICAgICBkdG8uY3JlYXRlZCB8fCAnJyxcbiAgICAgIGR0by5zZXJ2ZXJDcmVhdGVkIHx8ICcnLFxuICAgICAgZHRvLmNyZWF0ZWRCeSB8fCAnJyxcbiAgICAgIGR0by5tb2RpZmllZCB8fCAnJyxcbiAgICAgIGR0by5zZXJ2ZXJNb2RpZmllZCB8fCAnJyxcbiAgICAgIGR0by5tb2RpZmllZEJ5IHx8ICcnLFxuICAgICAgZHRvLmNyZWF0ZWRCeU5hbWUgfHwgJycsXG4gICAgICBkdG8ubW9kaWZpZWRCeU5hbWUgfHwgJycsXG4gICAgICBkdG8uYWNjb3VudCB8fCAnJyxcbiAgICAgIGR0by5yZWdpc3RyYXRpb24gfHwgJycsXG4gICAgICBkdG8ubWFrZSB8fCAnJyxcbiAgICAgIGR0by5tb2RlbCB8fCAnJyxcbiAgICAgIGR0by5hcmNoaXZlZCB8fCBmYWxzZSxcbiAgICAgIGR0by5kZXNjcmlwdGlvbiB8fCAnJ1xuICAgICk7XG4gIH1cblxuICB0b0R0bygpOiBWYXNWZWhpY2xlRHRvIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBjcmVhdGVkOiB0aGlzLmNyZWF0ZWQsXG4gICAgICBzZXJ2ZXJDcmVhdGVkOiB0aGlzLnNlcnZlckNyZWF0ZWQsXG4gICAgICBjcmVhdGVkQnk6IHRoaXMuY3JlYXRlZEJ5LFxuICAgICAgbW9kaWZpZWQ6IHRoaXMubW9kaWZpZWQsXG4gICAgICBzZXJ2ZXJNb2RpZmllZDogdGhpcy5zZXJ2ZXJNb2RpZmllZCxcbiAgICAgIG1vZGlmaWVkQnk6IHRoaXMubW9kaWZpZWRCeSxcbiAgICAgIGNyZWF0ZWRCeU5hbWU6IHRoaXMuY3JlYXRlZEJ5TmFtZSxcbiAgICAgIG1vZGlmaWVkQnlOYW1lOiB0aGlzLm1vZGlmaWVkQnlOYW1lLFxuICAgICAgYWNjb3VudDogdGhpcy5hY2NvdW50LFxuICAgICAgcmVnaXN0cmF0aW9uOiB0aGlzLnJlZ2lzdHJhdGlvbixcbiAgICAgIG1ha2U6IHRoaXMubWFrZSxcbiAgICAgIG1vZGVsOiB0aGlzLm1vZGVsLFxuICAgICAgYXJjaGl2ZWQ6IHRoaXMuYXJjaGl2ZWQsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvblxuICAgIH07XG4gIH1cblxuICBvdmVycmlkZSB0b0FwaUR0byhvcHRpb25zPzogYW55KTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj4ge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIGNyZWF0ZWQ6IHRoaXMuY3JlYXRlZCxcbiAgICAgIG1vZGlmaWVkOiB0aGlzLm1vZGlmaWVkLFxuICAgICAgYWNjb3VudDogdGhpcy5hY2NvdW50LFxuICAgICAgcmVnaXN0cmF0aW9uOiB0aGlzLnJlZ2lzdHJhdGlvbixcbiAgICAgIG1ha2U6IHRoaXMubWFrZSxcbiAgICAgIG1vZGVsOiB0aGlzLm1vZGVsLFxuICAgICAgYXJjaGl2ZWQ6IHRoaXMuYXJjaGl2ZWQsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvblxuICAgIH1cbiAgfVxufVxuIl19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFzLXZlaGljbGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YXMtbGliL3NyYy9saWIvZW50aXR5L3Zhcy12ZWhpY2xlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHbkUsTUFBTSxPQUFPLGVBQWdCLFNBQVEscUJBQXFCO0lBRXhELFlBQ2tCLEVBQVUsRUFDVixPQUFlLEVBQ2YsYUFBcUIsRUFDckIsU0FBaUIsRUFDakIsUUFBZ0IsRUFDaEIsY0FBc0IsRUFDdEIsVUFBa0IsRUFDbEIsYUFBcUIsRUFDckIsY0FBc0IsRUFDdEIsT0FBZSxFQUN4QixZQUFvQixFQUNwQixJQUFZLEVBQ1osS0FBYSxFQUNiLFFBQWlCLEVBQ2pCLFdBQW1CO1FBRTFCLEtBQUssQ0FDSCxFQUFFLEVBQ0YsT0FBTyxFQUNQLGFBQWEsRUFDYixTQUFTLEVBQ1QsUUFBUSxFQUNSLGNBQWMsRUFDZCxVQUFVLEVBQ1YsYUFBYSxFQUNiLGNBQWMsRUFDZCxPQUFPLENBQ1IsQ0FBQztRQTNCYyxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLG1CQUFjLEdBQWQsY0FBYyxDQUFRO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQVE7UUFDcEIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGdCQUFXLEdBQVgsV0FBVyxDQUFRO0lBYzVCLENBQUM7SUFFRCxNQUFNLENBQVUsT0FBTyxDQUFDLEdBQTJCO1FBQ2pELE9BQU8sSUFBSSxlQUFlLENBQ3hCLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUNaLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUNqQixHQUFHLENBQUMsYUFBYSxJQUFJLEVBQUUsRUFDdkIsR0FBRyxDQUFDLFNBQVMsSUFBSSxFQUFFLEVBQ25CLEdBQUcsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUNsQixHQUFHLENBQUMsY0FBYyxJQUFJLEVBQUUsRUFDeEIsR0FBRyxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQ3BCLEdBQUcsQ0FBQyxhQUFhLElBQUksRUFBRSxFQUN2QixHQUFHLENBQUMsY0FBYyxJQUFJLEVBQUUsRUFDeEIsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQ2pCLEdBQUcsQ0FBQyxZQUFZLElBQUksRUFBRSxFQUN0QixHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFDZCxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFDZixHQUFHLENBQUMsUUFBUSxJQUFJLEtBQUssRUFDckIsR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQ3RCLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSztRQUNILE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ25DLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ25DLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDOUIsQ0FBQztJQUNKLENBQUM7SUFFUSxRQUFRLENBQUMsT0FBYTtRQUM3QixPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQzlCLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUFDLGFBQWEsQ0FDekIsR0FBMkI7UUFFM0IsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2YsU0FBUztZQUNULFVBQVU7WUFDVixjQUFjO1lBQ2QsTUFBTTtZQUNOLE9BQU87WUFDUCxhQUFhO1lBQ2IsVUFBVTtTQUNYLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9ubHkgfSBmcm9tICcuLi91dGlscy9vbmx5JztcbmltcG9ydCB7IFZhc0FjY291bnRPYmplY3RNb2RlbCB9IGZyb20gJy4vdmFzLWFjY291bnQtb2JqZWN0Lm1vZGVsJztcbmltcG9ydCB7IFZhc1ZlaGljbGVEdG8gfSBmcm9tICcuL3Zhcy12ZWhpY2xlLmR0byc7XG5cbmV4cG9ydCBjbGFzcyBWYXNWZWhpY2xlTW9kZWwgZXh0ZW5kcyBWYXNBY2NvdW50T2JqZWN0TW9kZWwge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBvdmVycmlkZSBpZDogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBjcmVhdGVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIHNlcnZlckNyZWF0ZWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY3JlYXRlZEJ5OiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIG1vZGlmaWVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIHNlcnZlck1vZGlmaWVkOiBzdHJpbmcsXG4gICAgcHVibGljIG92ZXJyaWRlIG1vZGlmaWVkQnk6IHN0cmluZyxcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY3JlYXRlZEJ5TmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBtb2RpZmllZEJ5TmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyBvdmVycmlkZSBhY2NvdW50OiBzdHJpbmcsXG4gICAgcHVibGljIHJlZ2lzdHJhdGlvbjogc3RyaW5nLFxuICAgIHB1YmxpYyBtYWtlOiBzdHJpbmcsXG4gICAgcHVibGljIG1vZGVsOiBzdHJpbmcsXG4gICAgcHVibGljIGFyY2hpdmVkOiBib29sZWFuLFxuICAgIHB1YmxpYyBkZXNjcmlwdGlvbjogc3RyaW5nXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgaWQsXG4gICAgICBjcmVhdGVkLFxuICAgICAgc2VydmVyQ3JlYXRlZCxcbiAgICAgIGNyZWF0ZWRCeSxcbiAgICAgIG1vZGlmaWVkLFxuICAgICAgc2VydmVyTW9kaWZpZWQsXG4gICAgICBtb2RpZmllZEJ5LFxuICAgICAgY3JlYXRlZEJ5TmFtZSxcbiAgICAgIG1vZGlmaWVkQnlOYW1lLFxuICAgICAgYWNjb3VudFxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgb3ZlcnJpZGUgZnJvbUR0byhkdG86IFBhcnRpYWw8VmFzVmVoaWNsZUR0bz4pOiBWYXNWZWhpY2xlTW9kZWwge1xuICAgIHJldHVybiBuZXcgVmFzVmVoaWNsZU1vZGVsKFxuICAgICAgZHRvLmlkIHx8ICcnLFxuICAgICAgZHRvLmNyZWF0ZWQgfHwgJycsXG4gICAgICBkdG8uc2VydmVyQ3JlYXRlZCB8fCAnJyxcbiAgICAgIGR0by5jcmVhdGVkQnkgfHwgJycsXG4gICAgICBkdG8ubW9kaWZpZWQgfHwgJycsXG4gICAgICBkdG8uc2VydmVyTW9kaWZpZWQgfHwgJycsXG4gICAgICBkdG8ubW9kaWZpZWRCeSB8fCAnJyxcbiAgICAgIGR0by5jcmVhdGVkQnlOYW1lIHx8ICcnLFxuICAgICAgZHRvLm1vZGlmaWVkQnlOYW1lIHx8ICcnLFxuICAgICAgZHRvLmFjY291bnQgfHwgJycsXG4gICAgICBkdG8ucmVnaXN0cmF0aW9uIHx8ICcnLFxuICAgICAgZHRvLm1ha2UgfHwgJycsXG4gICAgICBkdG8ubW9kZWwgfHwgJycsXG4gICAgICBkdG8uYXJjaGl2ZWQgfHwgZmFsc2UsXG4gICAgICBkdG8uZGVzY3JpcHRpb24gfHwgJydcbiAgICApO1xuICB9XG5cbiAgdG9EdG8oKTogVmFzVmVoaWNsZUR0byB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgY3JlYXRlZDogdGhpcy5jcmVhdGVkLFxuICAgICAgc2VydmVyQ3JlYXRlZDogdGhpcy5zZXJ2ZXJDcmVhdGVkLFxuICAgICAgY3JlYXRlZEJ5OiB0aGlzLmNyZWF0ZWRCeSxcbiAgICAgIG1vZGlmaWVkOiB0aGlzLm1vZGlmaWVkLFxuICAgICAgc2VydmVyTW9kaWZpZWQ6IHRoaXMuc2VydmVyTW9kaWZpZWQsXG4gICAgICBtb2RpZmllZEJ5OiB0aGlzLm1vZGlmaWVkQnksXG4gICAgICBjcmVhdGVkQnlOYW1lOiB0aGlzLmNyZWF0ZWRCeU5hbWUsXG4gICAgICBtb2RpZmllZEJ5TmFtZTogdGhpcy5tb2RpZmllZEJ5TmFtZSxcbiAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgIHJlZ2lzdHJhdGlvbjogdGhpcy5yZWdpc3RyYXRpb24sXG4gICAgICBtYWtlOiB0aGlzLm1ha2UsXG4gICAgICBtb2RlbDogdGhpcy5tb2RlbCxcbiAgICAgIGFyY2hpdmVkOiB0aGlzLmFyY2hpdmVkLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb25cbiAgICB9O1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9BcGlEdG8ob3B0aW9ucz86IGFueSk6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBjcmVhdGVkOiB0aGlzLmNyZWF0ZWQsXG4gICAgICBtb2RpZmllZDogdGhpcy5tb2RpZmllZCxcbiAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgIHJlZ2lzdHJhdGlvbjogdGhpcy5yZWdpc3RyYXRpb24sXG4gICAgICBtYWtlOiB0aGlzLm1ha2UsXG4gICAgICBtb2RlbDogdGhpcy5tb2RlbCxcbiAgICAgIGFyY2hpdmVkOiB0aGlzLmFyY2hpdmVkLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb25cbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0b0FwaVBhdGNoRHRvKFxuICAgIGR0bzogUGFydGlhbDxWYXNWZWhpY2xlRHRvPlxuICApOiBQYXJ0aWFsPFZhc1ZlaGljbGVEdG8+IHtcbiAgICByZXR1cm4gb25seShkdG8sIFtcbiAgICAgICdjcmVhdGVkJyxcbiAgICAgICdtb2RpZmllZCcsXG4gICAgICAncmVnaXN0cmF0aW9uJyxcbiAgICAgICdtYWtlJyxcbiAgICAgICdtb2RlbCcsXG4gICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgJ2FyY2hpdmVkJ1xuICAgIF0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Return an object with only the properties specified by key(s)
3
+ *
4
+ * @param obj object to be processed
5
+ * @param omitKey key or array of keys to be kept
6
+ */
7
+ export const only = (obj, omitKey) => {
8
+ return Object.keys(obj).reduce((result, key) => {
9
+ if (Array.isArray(omitKey)) {
10
+ if (omitKey.includes(key)) {
11
+ result[key] = obj[key];
12
+ }
13
+ }
14
+ else {
15
+ if (omitKey === key) {
16
+ result[key] = obj[key];
17
+ }
18
+ }
19
+ return result;
20
+ }, {});
21
+ };
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25seS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Zhcy1saWIvc3JjL2xpYi91dGlscy9vbmx5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQ2xCLEdBQU0sRUFDTixPQUErQixFQUNuQixFQUFFO0lBQ2QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUM3QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN6QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hCO1NBQ0Y7YUFBTTtZQUNMLElBQUksT0FBTyxLQUFLLEdBQUcsRUFBRTtnQkFDbkIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN4QjtTQUNGO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxFQUFFLEVBQVMsQ0FBQyxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmV0dXJuIGFuIG9iamVjdCB3aXRoIG9ubHkgdGhlIHByb3BlcnRpZXMgc3BlY2lmaWVkIGJ5IGtleShzKVxuICpcbiAqIEBwYXJhbSBvYmogb2JqZWN0IHRvIGJlIHByb2Nlc3NlZFxuICogQHBhcmFtIG9taXRLZXkga2V5IG9yIGFycmF5IG9mIGtleXMgdG8gYmUga2VwdFxuICovXG5leHBvcnQgY29uc3Qgb25seSA9IDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4oXG4gIG9iajogVCxcbiAgb21pdEtleTogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPlxuKTogUGFydGlhbDxUPiA9PiB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZSgocmVzdWx0LCBrZXkpID0+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvbWl0S2V5KSkge1xuICAgICAgaWYgKG9taXRLZXkuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICByZXN1bHRba2V5XSA9IG9ialtrZXldO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob21pdEtleSA9PT0ga2V5KSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gb2JqW2tleV07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0sIHt9IGFzIGFueSk7XG59O1xuIl19
@@ -1,5 +1,6 @@
1
1
  export * from './lib/control-value/index';
2
2
  export * from './lib/controls-config/index';
3
+ export * from './lib/elastic/index';
3
4
  export * from './lib/entity/index';
4
5
  export * from './lib/model/index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3Zhcy1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyb2wtdmFsdWUvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJvbHMtY29uZmlnL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VudGl0eS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9pbmRleCc7XG4iXX0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3Zhcy1saWIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJvbC12YWx1ZS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cm9scy1jb25maWcvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWxhc3RpYy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnRpdHkvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwvaW5kZXgnO1xuIl19
@@ -60,7 +60,7 @@ class VasUserModel extends VasBaseModel {
60
60
  this.instructionProviders = instructionProviders;
61
61
  }
62
62
  static fromDto(dto) {
63
- return new VasUserModel(dto.id, dto.created, dto.serverCreated, dto.createdBy, dto.modified, dto.serverModified, dto.modifiedBy, dto.createdByName || '', dto.modifiedByName || '', dto.email, dto.name, dto.username, dto.memberships, dto.instructionProviders);
63
+ return new VasUserModel(dto.id || '', dto.created || '', dto.serverCreated || '', dto.createdBy || '', dto.modified || '', dto.serverModified || '', dto.modifiedBy || '', dto.createdByName || '', dto.modifiedByName || '', dto.email || '', dto.name || '', dto.username || '', dto.memberships || [], dto.instructionProviders || []);
64
64
  }
65
65
  toDto() {
66
66
  return {
@@ -299,6 +299,28 @@ class VasBranchModel extends VasRestrictedAccountObjectModel {
299
299
  }
300
300
  }
301
301
 
302
+ /**
303
+ * Return an object with only the properties specified by key(s)
304
+ *
305
+ * @param obj object to be processed
306
+ * @param omitKey key or array of keys to be kept
307
+ */
308
+ const only = (obj, omitKey) => {
309
+ return Object.keys(obj).reduce((result, key) => {
310
+ if (Array.isArray(omitKey)) {
311
+ if (omitKey.includes(key)) {
312
+ result[key] = obj[key];
313
+ }
314
+ }
315
+ else {
316
+ if (omitKey === key) {
317
+ result[key] = obj[key];
318
+ }
319
+ }
320
+ return result;
321
+ }, {});
322
+ };
323
+
302
324
  class VasContactModel extends VasRestrictedAccountObjectModel {
303
325
  constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, createdByName, modifiedByName, account, accessGroup, contactType, name, email, mobile, phone, address, address2, address3, billingCode, business, fax, vatNumber, website) {
304
326
  super(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, createdByName, modifiedByName, account, accessGroup);
@@ -359,7 +381,25 @@ class VasContactModel extends VasRestrictedAccountObjectModel {
359
381
  };
360
382
  }
361
383
  toApiDto(options) {
362
- return Object.assign(Object.assign({}, super.toApiDto()), { id: this.id, created: this.created || '~', modified: this.modified || '~', accessGroup: this.accessGroup || '~', contactType: this.contactType || '~', name: this.name || '~', email: this.email || '~', mobile: this.mobile || '~', phone: this.phone || '~', address: this.address || '~', address2: this.address2 || '~', address3: this.address3 || '~', billingCode: this.billingCode || '~', business: this.business || '~', fax: this.fax || '~', vatNumber: this.vatNumber || '~', website: this.website || '~' });
384
+ return Object.assign(Object.assign({}, super.toApiDto()), { contactType: this.contactType || '~', name: this.name || '~', email: this.email || '~', mobile: this.mobile || '~', phone: this.phone || '~', address: this.address || '~', address2: this.address2 || '~', address3: this.address3 || '~', billingCode: this.billingCode || '~', business: this.business || '~', fax: this.fax || '~', vatNumber: this.vatNumber || '~', website: this.website || '~' });
385
+ }
386
+ static toApiPatchDto(contact) {
387
+ return only(contact, [
388
+ 'accessGroup',
389
+ 'contactType',
390
+ 'name',
391
+ 'email',
392
+ 'mobile',
393
+ 'phone',
394
+ 'address',
395
+ 'address2',
396
+ 'address3',
397
+ 'billingCode',
398
+ 'business',
399
+ 'fax',
400
+ 'vatNumber',
401
+ 'website'
402
+ ]);
363
403
  }
364
404
  }
365
405
 
@@ -1063,6 +1103,15 @@ class VasFormModel extends VasRestrictedAccountObjectModel {
1063
1103
  });
1064
1104
  return paths;
1065
1105
  }
1106
+ /**
1107
+ * Return all Controls in the Form
1108
+ */
1109
+ getControls() {
1110
+ return this.groups
1111
+ .reduce((acc, g) => {
1112
+ return acc.concat(g.controls);
1113
+ }, []);
1114
+ }
1066
1115
  /**
1067
1116
  * @param {VasJobModel} jobModel
1068
1117
  * @return {Array<{id: string, value: VasFieldDtoValue}>}
@@ -1757,7 +1806,7 @@ class VasJobModel extends VasRestrictedAccountObjectModel {
1757
1806
  return new VasJobModel('', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', moment$1().utcOffset(), 0, '', 0, [], [], '', '', getEmptyGeoLocation());
1758
1807
  }
1759
1808
  static fromDto(dto) {
1760
- const model = new VasJobModel(dto.id || '', dto.created || '', dto.serverCreated || '', dto.createdBy || '', dto.modified || '', dto.serverModified || '', dto.modifiedBy || '', dto.createdByName || '', dto.modifiedByName || '', dto.account || '', dto.accessGroup || '', dto.reference || '', dto.jobDate || '', dto.jobStatus || '', dto.jobType || '', dto.assigneeId || '', dto.formId || '', dto.timeZoneOffset || moment$1().utcOffset(), dto.pendingFields || 0, dto.childModified || '', dto.version || 0, dto.fields || [], dto.files || [], dto.createdByDisplayName || '', dto.modifiedByDisplayName || '', dto.geoLocation || getEmptyGeoLocation());
1809
+ const model = new VasJobModel(dto.id || '', dto.created || '', dto.serverCreated || '', dto.createdBy || '', dto.modified || '', dto.serverModified || '', dto.modifiedBy || '', dto.createdByName || '', dto.modifiedByName || '', dto.account || '', dto.accessGroup || '', dto.reference || '', dto.jobDate || '', dto.jobStatus || '', dto.jobType || '', dto.assigneeId || '', dto.formId || dto.lastForm || '', dto.timeZoneOffset || moment$1().utcOffset(), dto.pendingFields || 0, dto.childModified || '', dto.version || 0, dto.fields || [], dto.files || [], dto.createdByDisplayName || '', dto.modifiedByDisplayName || '', dto.geoLocation || getEmptyGeoLocation());
1761
1810
  const emptyKeys = model.staticProperties;
1762
1811
  Object
1763
1812
  .keys(dto)
@@ -2296,6 +2345,64 @@ class VasReportRequestModel extends VasAccountObjectModel {
2296
2345
  }
2297
2346
  }
2298
2347
 
2348
+ /**
2349
+ * VasTaskModel
2350
+ */
2351
+ class VasTaskModel extends VasJobDataModel {
2352
+ constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, createdByName, modifiedByName, account, job, assignee, done, dueDate, taskType, title) {
2353
+ super(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, createdByName, modifiedByName, account, job);
2354
+ this.id = id;
2355
+ this.created = created;
2356
+ this.serverCreated = serverCreated;
2357
+ this.createdBy = createdBy;
2358
+ this.modified = modified;
2359
+ this.serverModified = serverModified;
2360
+ this.modifiedBy = modifiedBy;
2361
+ this.createdByName = createdByName;
2362
+ this.modifiedByName = modifiedByName;
2363
+ this.account = account;
2364
+ this.job = job;
2365
+ this.assignee = assignee;
2366
+ this.done = done;
2367
+ this.dueDate = dueDate;
2368
+ this.taskType = taskType;
2369
+ this.title = title;
2370
+ }
2371
+ /**
2372
+ * @param dto VasTaskDto
2373
+ * @return VasNoteModel
2374
+ */
2375
+ static fromDto(dto) {
2376
+ return new VasTaskModel(dto.id || '', dto.created || '', dto.serverCreated || '', dto.createdBy || '', dto.modified || '', dto.serverModified || '', dto.modifiedBy || '', dto.createdByName || '', dto.modifiedByName || '', dto.account || '', dto.job || '', dto.assignee || '', dto.done || false, dto.dueDate || '', dto.taskType || '', dto.title || '');
2377
+ }
2378
+ /**
2379
+ * @returns VasTaskDto
2380
+ */
2381
+ toDto() {
2382
+ return {
2383
+ id: this.id,
2384
+ created: this.created,
2385
+ serverCreated: this.serverCreated,
2386
+ createdBy: this.createdBy,
2387
+ modified: this.modified,
2388
+ serverModified: this.serverModified,
2389
+ modifiedBy: this.modifiedBy,
2390
+ createdByName: this.createdByName,
2391
+ modifiedByName: this.modifiedByName,
2392
+ account: this.account,
2393
+ job: this.job,
2394
+ assignee: this.assignee,
2395
+ done: this.done,
2396
+ dueDate: this.dueDate,
2397
+ taskType: this.taskType,
2398
+ title: this.title,
2399
+ };
2400
+ }
2401
+ toApiDto(options) {
2402
+ return Object.assign(Object.assign({}, super.toApiDto(options)), { assignee: this.assignee, done: this.done, dueDate: this.dueDate, taskType: this.taskType, title: this.title });
2403
+ }
2404
+ }
2405
+
2299
2406
  class VasVehicleModel extends VasAccountObjectModel {
2300
2407
  constructor(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, createdByName, modifiedByName, account, registration, make, model, archived, description) {
2301
2408
  super(id, created, serverCreated, createdBy, modified, serverModified, modifiedBy, createdByName, modifiedByName, account);
@@ -2350,11 +2457,22 @@ class VasVehicleModel extends VasAccountObjectModel {
2350
2457
  description: this.description
2351
2458
  };
2352
2459
  }
2460
+ static toApiPatchDto(dto) {
2461
+ return only(dto, [
2462
+ 'created',
2463
+ 'modified',
2464
+ 'registration',
2465
+ 'make',
2466
+ 'model',
2467
+ 'description',
2468
+ 'archived'
2469
+ ]);
2470
+ }
2353
2471
  }
2354
2472
 
2355
2473
  /**
2356
2474
  * Generated bundle index. Do not edit.
2357
2475
  */
2358
2476
 
2359
- export { VasAccountIndexingMode, VasAccountObjectModel, VasBaseModel, VasBranchModel, VasContactModel, VasControlConfigDirection, VasControlModel, VasControlTypeModel, VasFieldModel, VasFileModel, VasFireUserModel, VasFormConfigModel, VasFormModel, VasGroupModel, VasInstructionJobFieldModel, VasInstructionJobModel, VasInstructionModel, VasInstructionProviderModel, VasInvitationModel, VasInvitationTypeEnum, VasJobDataModel, VasJobEmailModel, VasJobModel, VasMembershipModel, VasNoteModel, VasReportLayoutModel, VasReportModel, VasReportRequestModel, VasRestrictedAccountObjectModel, VasUserModel, VasVehicleModel, getEmptyGeoLocation, isCameraControlValueV1, isFileDto };
2477
+ export { VasAccountIndexingMode, VasAccountObjectModel, VasBaseModel, VasBranchModel, VasContactModel, VasControlConfigDirection, VasControlModel, VasControlTypeModel, VasFieldModel, VasFileModel, VasFireUserModel, VasFormConfigModel, VasFormModel, VasGroupModel, VasInstructionJobFieldModel, VasInstructionJobModel, VasInstructionModel, VasInstructionProviderModel, VasInvitationModel, VasInvitationTypeEnum, VasJobDataModel, VasJobEmailModel, VasJobModel, VasMembershipModel, VasNoteModel, VasReportLayoutModel, VasReportModel, VasReportRequestModel, VasRestrictedAccountObjectModel, VasTaskModel, VasUserModel, VasVehicleModel, getEmptyGeoLocation, isCameraControlValueV1, isFileDto };
2360
2478
  //# sourceMappingURL=ironcode-vas-lib.mjs.map