@esolve/ng-esolve-connect 0.108.0 → 0.109.1

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 (38) hide show
  1. package/esm2022/index.mjs +3 -1
  2. package/esm2022/lib/account/registration/esolve-registration-data.interface.mjs +1 -1
  3. package/esm2022/lib/affiliates/classes/esolve-affiliate-check-result.model.mjs +43 -0
  4. package/esm2022/lib/affiliates/classes/esolve-affiliate-link-result.model.mjs +9 -0
  5. package/esm2022/lib/affiliates/classes/esolve-affiliate.model.mjs +47 -0
  6. package/esm2022/lib/affiliates/classes/index.mjs +4 -0
  7. package/esm2022/lib/affiliates/index.mjs +5 -0
  8. package/esm2022/lib/affiliates/interfaces/esolve-affiliate-check-record.interface.mjs +2 -0
  9. package/esm2022/lib/affiliates/interfaces/esolve-affiliate-link-options.interface.mjs +2 -0
  10. package/esm2022/lib/affiliates/interfaces/esolve-affiliate-record.interface.mjs +2 -0
  11. package/esm2022/lib/affiliates/interfaces/esolve-affiliates-options.interface.mjs +2 -0
  12. package/esm2022/lib/affiliates/interfaces/index.mjs +5 -0
  13. package/esm2022/lib/affiliates/services/esolve-affiliate.service.mjs +168 -0
  14. package/esm2022/lib/affiliates/services/index.mjs +2 -0
  15. package/esm2022/lib/affiliates/types/esolve-affiliate-link-response.type.mjs +2 -0
  16. package/esm2022/lib/affiliates/types/index.mjs +2 -0
  17. package/esm2022/lib/captcha/types/esolve-captcha-action.type.mjs +1 -1
  18. package/esm2022/lib/session/esolve-session.service.mjs +4 -2
  19. package/fesm2022/esolve-ng-esolve-connect.mjs +262 -2
  20. package/fesm2022/esolve-ng-esolve-connect.mjs.map +1 -1
  21. package/index.d.ts +1 -0
  22. package/lib/account/registration/esolve-registration-data.interface.d.ts +2 -0
  23. package/lib/affiliates/classes/esolve-affiliate-check-result.model.d.ts +38 -0
  24. package/lib/affiliates/classes/esolve-affiliate-link-result.model.d.ts +6 -0
  25. package/lib/affiliates/classes/esolve-affiliate.model.d.ts +38 -0
  26. package/lib/affiliates/classes/index.d.ts +3 -0
  27. package/lib/affiliates/index.d.ts +4 -0
  28. package/lib/affiliates/interfaces/esolve-affiliate-check-record.interface.d.ts +7 -0
  29. package/lib/affiliates/interfaces/esolve-affiliate-link-options.interface.d.ts +4 -0
  30. package/lib/affiliates/interfaces/esolve-affiliate-record.interface.d.ts +7 -0
  31. package/lib/affiliates/interfaces/esolve-affiliates-options.interface.d.ts +6 -0
  32. package/lib/affiliates/interfaces/index.d.ts +4 -0
  33. package/lib/affiliates/services/esolve-affiliate.service.d.ts +85 -0
  34. package/lib/affiliates/services/index.d.ts +1 -0
  35. package/lib/affiliates/types/esolve-affiliate-link-response.type.d.ts +2 -0
  36. package/lib/affiliates/types/index.d.ts +1 -0
  37. package/lib/captcha/types/esolve-captcha-action.type.d.ts +1 -1
  38. package/package.json +1 -1
package/esm2022/index.mjs CHANGED
@@ -71,4 +71,6 @@ export * from './lib/reviews';
71
71
  export * from './lib/albums';
72
72
  // Captcha
73
73
  export * from './lib/captcha';
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFFN0IsTUFBTTtBQUNOLGNBQWMsV0FBVyxDQUFDO0FBRTFCLFdBQVc7QUFDWCxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLFNBQVM7QUFDVCxjQUFjLGNBQWMsQ0FBQztBQUU3QixVQUFVO0FBQ1YsY0FBYyxlQUFlLENBQUM7QUFFOUIsT0FBTztBQUNQLGNBQWMsWUFBWSxDQUFDO0FBRTNCLFVBQVU7QUFDVixjQUFjLGVBQWUsQ0FBQztBQUU5QixVQUFVO0FBQ1YsY0FBYyxlQUFlLENBQUM7QUFFOUIsT0FBTztBQUNQLGNBQWMsWUFBWSxDQUFDO0FBRTNCLE9BQU87QUFDUCxjQUFjLFlBQVksQ0FBQztBQUUzQixTQUFTO0FBQ1QsY0FBYyxjQUFjLENBQUM7QUFFN0IsT0FBTztBQUNQLGNBQWMsWUFBWSxDQUFDO0FBRTNCLFFBQVE7QUFDUixjQUFjLGFBQWEsQ0FBQztBQUU1QixnQkFBZ0I7QUFDaEIsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxnQkFBZ0I7QUFDaEIsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxTQUFTO0FBQ1QsY0FBYyxjQUFjLENBQUM7QUFFN0IsV0FBVztBQUNYLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsT0FBTztBQUNQLGNBQWMsWUFBWSxDQUFDO0FBRTNCLFVBQVU7QUFDVixjQUFjLGVBQWUsQ0FBQztBQUU5QixXQUFXO0FBQ1gsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixZQUFZO0FBQ1osY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxVQUFVO0FBQ1YsY0FBYyxlQUFlLENBQUM7QUFFOUIsV0FBVztBQUNYLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsWUFBWTtBQUNaLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDO0FBRTlCLFdBQVc7QUFDWCxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLGVBQWU7QUFDZixjQUFjLG9CQUFvQixDQUFDO0FBRW5DLFFBQVE7QUFDUixjQUFjLGNBQWMsQ0FBQztBQUU3QixTQUFTO0FBQ1QsY0FBYyxjQUFjLENBQUM7QUFFN0IsYUFBYTtBQUNiLGNBQWMsa0JBQWtCLENBQUM7QUFFakMsZUFBZTtBQUNmLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDO0FBRTlCLFVBQVU7QUFDVixjQUFjLGNBQWMsQ0FBQztBQUU3QixVQUFVO0FBQ1YsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5nLWVzb2x2ZS1jb25uZWN0XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmctZXNvbHZlLWNvbm5lY3QubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW1hZ2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZCc7XG5cbi8vIFNFT1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VvJztcblxuLy8gR2VvY29kZXJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dlb2NvZGVyJztcblxuLy8gQXNzZXRzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hc3NldHMnO1xuXG4vLyBTZXNzaW9uXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXNzaW9uJztcblxuLy8gQXV0aFxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aCc7XG5cbi8vIEFjY291bnRcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjY291bnQnO1xuXG4vLyBCYW5uZXJzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYW5uZXJzJztcblxuLy8gTWVudVxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVudSc7XG5cbi8vIE5ld3NcbmV4cG9ydCAqIGZyb20gJy4vbGliL25ld3MnO1xuXG4vLyBUb3BpY3NcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RvcGljcyc7XG5cbi8vIFRhZ3NcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhZ3MnO1xuXG4vLyBTdG9ja1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvY2snO1xuXG4vLyBDYXRlZ29yeSBUcmVlXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXRlZ29yeS10cmVlJztcblxuLy8gTWFudWZhY3R1cmVyc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFudWZhY3R1cmVycyc7XG5cbi8vIFJhbmdlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmFuZ2VzJztcblxuLy8gU3BlY2lhbHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NwZWNpYWxzJztcblxuLy8gQ2FydFxuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FydCc7XG5cbi8vIFBheW1lbnRcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BheW1lbnQnO1xuXG4vLyBTaGlwcGluZ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hpcHBpbmcnO1xuXG4vLyBMb2NhdGlvbnNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvY2F0aW9ucyc7XG5cbi8vIEVucXVpcnlcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VucXVpcnknO1xuXG4vLyBXaXNobGlzdFxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lzaGxpc3QnO1xuXG4vLyBTdXBwbGllcnNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N1cHBsaWVycyc7XG5cbi8vIENvdXBvbnNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvdXBvbnMnO1xuXG4vLyBWb3VjaGVyc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdm91Y2hlcnMnO1xuXG4vLyBUcmFuc2FjdGlvbnNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RyYW5zYWN0aW9ucyc7XG5cbi8vRGV2aWNlXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kZXZpY2UnO1xuXG4vLyBXYWxsZXRcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dhbGxldCc7XG5cbi8vIERlbGl2ZXJpZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RlbGl2ZXJpZXMnO1xuXG4vLyBDb21wZXRpdGlvbnNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBldGl0aW9ucyc7XG5cbi8vIFJldmlld3NcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jldmlld3MnO1xuXG4vLyBSZXZpZXdzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbGJ1bXMnO1xuXG4vLyBDYXB0Y2hhXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXB0Y2hhJztcbiJdfQ==
74
+ // Affiliates
75
+ export * from './lib/affiliates';
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFFN0IsTUFBTTtBQUNOLGNBQWMsV0FBVyxDQUFDO0FBRTFCLFdBQVc7QUFDWCxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLFNBQVM7QUFDVCxjQUFjLGNBQWMsQ0FBQztBQUU3QixVQUFVO0FBQ1YsY0FBYyxlQUFlLENBQUM7QUFFOUIsT0FBTztBQUNQLGNBQWMsWUFBWSxDQUFDO0FBRTNCLFVBQVU7QUFDVixjQUFjLGVBQWUsQ0FBQztBQUU5QixVQUFVO0FBQ1YsY0FBYyxlQUFlLENBQUM7QUFFOUIsT0FBTztBQUNQLGNBQWMsWUFBWSxDQUFDO0FBRTNCLE9BQU87QUFDUCxjQUFjLFlBQVksQ0FBQztBQUUzQixTQUFTO0FBQ1QsY0FBYyxjQUFjLENBQUM7QUFFN0IsT0FBTztBQUNQLGNBQWMsWUFBWSxDQUFDO0FBRTNCLFFBQVE7QUFDUixjQUFjLGFBQWEsQ0FBQztBQUU1QixnQkFBZ0I7QUFDaEIsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxnQkFBZ0I7QUFDaEIsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxTQUFTO0FBQ1QsY0FBYyxjQUFjLENBQUM7QUFFN0IsV0FBVztBQUNYLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsT0FBTztBQUNQLGNBQWMsWUFBWSxDQUFDO0FBRTNCLFVBQVU7QUFDVixjQUFjLGVBQWUsQ0FBQztBQUU5QixXQUFXO0FBQ1gsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixZQUFZO0FBQ1osY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxVQUFVO0FBQ1YsY0FBYyxlQUFlLENBQUM7QUFFOUIsV0FBVztBQUNYLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsWUFBWTtBQUNaLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDO0FBRTlCLFdBQVc7QUFDWCxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLGVBQWU7QUFDZixjQUFjLG9CQUFvQixDQUFDO0FBRW5DLFFBQVE7QUFDUixjQUFjLGNBQWMsQ0FBQztBQUU3QixTQUFTO0FBQ1QsY0FBYyxjQUFjLENBQUM7QUFFN0IsYUFBYTtBQUNiLGNBQWMsa0JBQWtCLENBQUM7QUFFakMsZUFBZTtBQUNmLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDO0FBRTlCLFVBQVU7QUFDVixjQUFjLGNBQWMsQ0FBQztBQUU3QixVQUFVO0FBQ1YsY0FBYyxlQUFlLENBQUM7QUFFOUIsYUFBYTtBQUNiLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5nLWVzb2x2ZS1jb25uZWN0XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmctZXNvbHZlLWNvbm5lY3QubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW1hZ2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZCc7XG5cbi8vIFNFT1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VvJztcblxuLy8gR2VvY29kZXJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dlb2NvZGVyJztcblxuLy8gQXNzZXRzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hc3NldHMnO1xuXG4vLyBTZXNzaW9uXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXNzaW9uJztcblxuLy8gQXV0aFxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aCc7XG5cbi8vIEFjY291bnRcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjY291bnQnO1xuXG4vLyBCYW5uZXJzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYW5uZXJzJztcblxuLy8gTWVudVxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVudSc7XG5cbi8vIE5ld3NcbmV4cG9ydCAqIGZyb20gJy4vbGliL25ld3MnO1xuXG4vLyBUb3BpY3NcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RvcGljcyc7XG5cbi8vIFRhZ3NcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhZ3MnO1xuXG4vLyBTdG9ja1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvY2snO1xuXG4vLyBDYXRlZ29yeSBUcmVlXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXRlZ29yeS10cmVlJztcblxuLy8gTWFudWZhY3R1cmVyc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFudWZhY3R1cmVycyc7XG5cbi8vIFJhbmdlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmFuZ2VzJztcblxuLy8gU3BlY2lhbHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NwZWNpYWxzJztcblxuLy8gQ2FydFxuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FydCc7XG5cbi8vIFBheW1lbnRcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BheW1lbnQnO1xuXG4vLyBTaGlwcGluZ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hpcHBpbmcnO1xuXG4vLyBMb2NhdGlvbnNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvY2F0aW9ucyc7XG5cbi8vIEVucXVpcnlcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VucXVpcnknO1xuXG4vLyBXaXNobGlzdFxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lzaGxpc3QnO1xuXG4vLyBTdXBwbGllcnNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N1cHBsaWVycyc7XG5cbi8vIENvdXBvbnNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvdXBvbnMnO1xuXG4vLyBWb3VjaGVyc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdm91Y2hlcnMnO1xuXG4vLyBUcmFuc2FjdGlvbnNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RyYW5zYWN0aW9ucyc7XG5cbi8vRGV2aWNlXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kZXZpY2UnO1xuXG4vLyBXYWxsZXRcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dhbGxldCc7XG5cbi8vIERlbGl2ZXJpZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RlbGl2ZXJpZXMnO1xuXG4vLyBDb21wZXRpdGlvbnNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBldGl0aW9ucyc7XG5cbi8vIFJldmlld3NcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jldmlld3MnO1xuXG4vLyBSZXZpZXdzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbGJ1bXMnO1xuXG4vLyBDYXB0Y2hhXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXB0Y2hhJztcblxuLy8gQWZmaWxpYXRlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWZmaWxpYXRlcyc7XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXJlZ2lzdHJhdGlvbi1kYXRhLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hY2NvdW50L3JlZ2lzdHJhdGlvbi9lc29sdmUtcmVnaXN0cmF0aW9uLWRhdGEuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEVzb2x2ZVJlZ2lzdHJhdGlvbkRhdGEge1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgICBjb25maXJtX3Bhc3N3b3JkPzogc3RyaW5nO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGZpcnN0bmFtZT86IHN0cmluZztcbiAgICBzdXJuYW1lPzogc3RyaW5nO1xuICAgIGxveWFsdHludW1iZXI/OiBzdHJpbmc7XG4gICAgaWRudW1iZXI/OiBzdHJpbmc7XG4gICAgdGVsbnVtYmVyPzogc3RyaW5nO1xuICAgIGNlbGxudW1iZXI/OiBzdHJpbmc7XG4gICAgcmVnaXN0cmF0aW9uX3R5cGU/OiBzdHJpbmc7XG4gICAgYnVzaW5lc3NfbmFtZT86IHN0cmluZztcbiAgICB2YXRfbnVtYmVyPzogc3RyaW5nO1xuICAgIGFjY291bnQ/OiBzdHJpbmc7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXJlZ2lzdHJhdGlvbi1kYXRhLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hY2NvdW50L3JlZ2lzdHJhdGlvbi9lc29sdmUtcmVnaXN0cmF0aW9uLWRhdGEuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEVzb2x2ZVJlZ2lzdHJhdGlvbkRhdGEge1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgICBjb25maXJtX3Bhc3N3b3JkPzogc3RyaW5nO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGZpcnN0bmFtZT86IHN0cmluZztcbiAgICBzdXJuYW1lPzogc3RyaW5nO1xuICAgIGxveWFsdHludW1iZXI/OiBzdHJpbmc7XG4gICAgaWRudW1iZXI/OiBzdHJpbmc7XG4gICAgdGVsbnVtYmVyPzogc3RyaW5nO1xuICAgIGNlbGxudW1iZXI/OiBzdHJpbmc7XG4gICAgcmVnaXN0cmF0aW9uX3R5cGU/OiBzdHJpbmc7XG4gICAgYnVzaW5lc3NfbmFtZT86IHN0cmluZztcbiAgICB2YXRfbnVtYmVyPzogc3RyaW5nO1xuICAgIGFjY291bnQ/OiBzdHJpbmc7XG4gICAgY2FwdGNoYV9rZXk/OiBzdHJpbmc7XG4gICAgY2FwdGNoYV9jb2RlPzogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,43 @@
1
+ import { EsolveAffiliate } from './esolve-affiliate.model';
2
+ /**
3
+ * Represents the result of an affiliate-related API call.
4
+ *
5
+ * @remarks
6
+ * This class is used to encapsulate the result of an affiliate-related API call,
7
+ * providing access to the affiliate, linked affiliates, and additional data.
8
+ */
9
+ export class EsolveAffiliateCheckResult {
10
+ constructor(record) {
11
+ /**
12
+ * Indicates whether user confirmation is required for the affiliate linking.
13
+ * @default false
14
+ */
15
+ this.confirmation_required = false;
16
+ /**
17
+ * An array of linked affiliates associated with the current user.
18
+ * @default []
19
+ */
20
+ this.linked_affiliates = [];
21
+ /**
22
+ * The total number of linked affiliates associated with the current user.
23
+ * @default 0
24
+ */
25
+ this.total_linked_affiliates = 0;
26
+ if (record) {
27
+ this.affiliate = new EsolveAffiliate(record.affiliate);
28
+ this.confirmation_required = !!record.confirmation_required;
29
+ this.linked_affiliates = this.processAffiliates(record.linked_affiliates ?? []);
30
+ this.total_linked_affiliates = +(record.total_linked_affiliates ?? 0);
31
+ }
32
+ }
33
+ /**
34
+ * Processes an array of affiliate records and returns an array of EsolveAffiliate instances.
35
+ *
36
+ * @param affiliate_records - The affiliate records to process.
37
+ * @returns An array of EsolveAffiliate instances.
38
+ */
39
+ processAffiliates(affiliate_records) {
40
+ return affiliate_records.map((record) => new EsolveAffiliate(record));
41
+ }
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWFmZmlsaWF0ZS1jaGVjay1yZXN1bHQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWZmaWxpYXRlcy9jbGFzc2VzL2Vzb2x2ZS1hZmZpbGlhdGUtY2hlY2stcmVzdWx0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8sMEJBQTBCO0lBd0JuQyxZQUFZLE1BQTRDO1FBbEJ4RDs7O1dBR0c7UUFDSSwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFckM7OztXQUdHO1FBQ0ksc0JBQWlCLEdBQXNCLEVBQUUsQ0FBQztRQUVqRDs7O1dBR0c7UUFDSSw0QkFBdUIsR0FBRyxDQUFDLENBQUM7UUFHL0IsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDO1lBQzVELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQzNDLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQ2pDLENBQUM7WUFDRixJQUFJLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxDQUM1QixNQUFNLENBQUMsdUJBQXVCLElBQUksQ0FBQyxDQUN0QyxDQUFDO1FBQ04sQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLGlCQUFpQixDQUNyQixpQkFBMEM7UUFFMUMsT0FBTyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBFc29sdmVBZmZpbGlhdGVDaGVja1JlY29yZCxcbiAgICBFc29sdmVBZmZpbGlhdGVSZWNvcmQsXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgeyBFc29sdmVBZmZpbGlhdGUgfSBmcm9tICcuL2Vzb2x2ZS1hZmZpbGlhdGUubW9kZWwnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHJlc3VsdCBvZiBhbiBhZmZpbGlhdGUtcmVsYXRlZCBBUEkgY2FsbC5cbiAqXG4gKiBAcmVtYXJrc1xuICogVGhpcyBjbGFzcyBpcyB1c2VkIHRvIGVuY2Fwc3VsYXRlIHRoZSByZXN1bHQgb2YgYW4gYWZmaWxpYXRlLXJlbGF0ZWQgQVBJIGNhbGwsXG4gKiBwcm92aWRpbmcgYWNjZXNzIHRvIHRoZSBhZmZpbGlhdGUsIGxpbmtlZCBhZmZpbGlhdGVzLCBhbmQgYWRkaXRpb25hbCBkYXRhLlxuICovXG5leHBvcnQgY2xhc3MgRXNvbHZlQWZmaWxpYXRlQ2hlY2tSZXN1bHQge1xuICAgIC8qKlxuICAgICAqIFRoZSBhZmZpbGlhdGUgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXN1bHQuXG4gICAgICovXG4gICAgcHVibGljIGFmZmlsaWF0ZT86IEVzb2x2ZUFmZmlsaWF0ZTtcblxuICAgIC8qKlxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHVzZXIgY29uZmlybWF0aW9uIGlzIHJlcXVpcmVkIGZvciB0aGUgYWZmaWxpYXRlIGxpbmtpbmcuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgY29uZmlybWF0aW9uX3JlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBBbiBhcnJheSBvZiBsaW5rZWQgYWZmaWxpYXRlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgdXNlci5cbiAgICAgKiBAZGVmYXVsdCBbXVxuICAgICAqL1xuICAgIHB1YmxpYyBsaW5rZWRfYWZmaWxpYXRlczogRXNvbHZlQWZmaWxpYXRlW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0b3RhbCBudW1iZXIgb2YgbGlua2VkIGFmZmlsaWF0ZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IHVzZXIuXG4gICAgICogQGRlZmF1bHQgMFxuICAgICAqL1xuICAgIHB1YmxpYyB0b3RhbF9saW5rZWRfYWZmaWxpYXRlcyA9IDA7XG5cbiAgICBjb25zdHJ1Y3RvcihyZWNvcmQ/OiBQYXJ0aWFsPEVzb2x2ZUFmZmlsaWF0ZUNoZWNrUmVjb3JkPikge1xuICAgICAgICBpZiAocmVjb3JkKSB7XG4gICAgICAgICAgICB0aGlzLmFmZmlsaWF0ZSA9IG5ldyBFc29sdmVBZmZpbGlhdGUocmVjb3JkLmFmZmlsaWF0ZSk7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbl9yZXF1aXJlZCA9ICEhcmVjb3JkLmNvbmZpcm1hdGlvbl9yZXF1aXJlZDtcbiAgICAgICAgICAgIHRoaXMubGlua2VkX2FmZmlsaWF0ZXMgPSB0aGlzLnByb2Nlc3NBZmZpbGlhdGVzKFxuICAgICAgICAgICAgICAgIHJlY29yZC5saW5rZWRfYWZmaWxpYXRlcyA/PyBbXSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnRvdGFsX2xpbmtlZF9hZmZpbGlhdGVzID0gKyhcbiAgICAgICAgICAgICAgICByZWNvcmQudG90YWxfbGlua2VkX2FmZmlsaWF0ZXMgPz8gMFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyBhbiBhcnJheSBvZiBhZmZpbGlhdGUgcmVjb3JkcyBhbmQgcmV0dXJucyBhbiBhcnJheSBvZiBFc29sdmVBZmZpbGlhdGUgaW5zdGFuY2VzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFmZmlsaWF0ZV9yZWNvcmRzIC0gVGhlIGFmZmlsaWF0ZSByZWNvcmRzIHRvIHByb2Nlc3MuXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgRXNvbHZlQWZmaWxpYXRlIGluc3RhbmNlcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHByb2Nlc3NBZmZpbGlhdGVzKFxuICAgICAgICBhZmZpbGlhdGVfcmVjb3JkczogRXNvbHZlQWZmaWxpYXRlUmVjb3JkW10sXG4gICAgKTogRXNvbHZlQWZmaWxpYXRlW10ge1xuICAgICAgICByZXR1cm4gYWZmaWxpYXRlX3JlY29yZHMubWFwKChyZWNvcmQpID0+IG5ldyBFc29sdmVBZmZpbGlhdGUocmVjb3JkKSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,9 @@
1
+ import { EsolveResponseResult } from '../../shared/response';
2
+ export class EsolveAffiliateLinkResult extends EsolveResponseResult {
3
+ constructor(response) {
4
+ super(response);
5
+ this.id = 0;
6
+ this.id = +response.esolve_id;
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWFmZmlsaWF0ZS1saW5rLXJlc3VsdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hZmZpbGlhdGVzL2NsYXNzZXMvZXNvbHZlLWFmZmlsaWF0ZS1saW5rLXJlc3VsdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUk3RCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsb0JBQW9CO0lBRy9ELFlBQVksUUFBcUM7UUFDN0MsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBSGIsT0FBRSxHQUFHLENBQUMsQ0FBQztRQUtWLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO0lBQ2xDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL3Jlc3BvbnNlJztcblxuaW1wb3J0IHsgRXNvbHZlQWZmaWxpYXRlTGlua1Jlc3BvbnNlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgRXNvbHZlQWZmaWxpYXRlTGlua1Jlc3VsdCBleHRlbmRzIEVzb2x2ZVJlc3BvbnNlUmVzdWx0IHtcbiAgICBwdWJsaWMgaWQgPSAwO1xuXG4gICAgY29uc3RydWN0b3IocmVzcG9uc2U6IEVzb2x2ZUFmZmlsaWF0ZUxpbmtSZXNwb25zZSkge1xuICAgICAgICBzdXBlcihyZXNwb25zZSk7XG5cbiAgICAgICAgdGhpcy5pZCA9ICtyZXNwb25zZS5lc29sdmVfaWQ7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Represents an Esolve Affiliate with properties and a constructor to initialize from a record.
3
+ */
4
+ export class EsolveAffiliate {
5
+ /**
6
+ * Constructs a new EsolveAffiliate instance.
7
+ *
8
+ * @param record - An optional partial EsolveAffiliateRecord to initialize the instance from.
9
+ *
10
+ * @remarks
11
+ * If a record is provided, the instance properties are populated from the record.
12
+ * If a record property is missing or null, the corresponding instance property is set to its default value.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const record: Partial<EsolveAffiliateRecord> = {
17
+ * id: '123',
18
+ * affiliate_name: 'Example Affiliate',
19
+ * affiliate_domain: 'example.com'
20
+ * affiliate_key: 'example-key',
21
+ * default: true
22
+ * };
23
+ *
24
+ * const affiliate = new EsolveAffiliate(record);
25
+ * console.log(affiliate.id); // Output: 123
26
+ * console.log(affiliate.name); // Output: Example Affiliate
27
+ * console.log(affiliate.key); // Output: example-key
28
+ * console.log(affiliate.is_default); // Output: true
29
+ * ```
30
+ */
31
+ constructor(record) {
32
+ this.id = 0;
33
+ this.name = '';
34
+ this.key = '';
35
+ this.domain = '';
36
+ if (record) {
37
+ this.id = +(record.id ?? 0);
38
+ this.name = record.affiliate_name ?? '';
39
+ this.key = record.affiliate_key ?? '';
40
+ this.domain = record.affiliate_domain ?? '';
41
+ if (typeof record.default !== 'undefined') {
42
+ this.is_default = !!+record.default;
43
+ }
44
+ }
45
+ }
46
+ }
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWFmZmlsaWF0ZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hZmZpbGlhdGVzL2NsYXNzZXMvZXNvbHZlLWFmZmlsaWF0ZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBT3hCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BeUJHO0lBQ0gsWUFBWSxNQUF1QztRQWhDNUMsT0FBRSxHQUFHLENBQUMsQ0FBQztRQUNQLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixRQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ1QsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQThCZixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1lBRTVDLElBQUksT0FBTyxNQUFNLENBQUMsT0FBTyxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDeEMsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVBZmZpbGlhdGVSZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Vzb2x2ZS1hZmZpbGlhdGUtcmVjb3JkLmludGVyZmFjZSc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBFc29sdmUgQWZmaWxpYXRlIHdpdGggcHJvcGVydGllcyBhbmQgYSBjb25zdHJ1Y3RvciB0byBpbml0aWFsaXplIGZyb20gYSByZWNvcmQuXG4gKi9cbmV4cG9ydCBjbGFzcyBFc29sdmVBZmZpbGlhdGUge1xuICAgIHB1YmxpYyBpZCA9IDA7XG4gICAgcHVibGljIG5hbWUgPSAnJztcbiAgICBwdWJsaWMga2V5ID0gJyc7XG4gICAgcHVibGljIGRvbWFpbiA9ICcnO1xuICAgIHB1YmxpYyBpc19kZWZhdWx0PzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdHMgYSBuZXcgRXNvbHZlQWZmaWxpYXRlIGluc3RhbmNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlY29yZCAtIEFuIG9wdGlvbmFsIHBhcnRpYWwgRXNvbHZlQWZmaWxpYXRlUmVjb3JkIHRvIGluaXRpYWxpemUgdGhlIGluc3RhbmNlIGZyb20uXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIElmIGEgcmVjb3JkIGlzIHByb3ZpZGVkLCB0aGUgaW5zdGFuY2UgcHJvcGVydGllcyBhcmUgcG9wdWxhdGVkIGZyb20gdGhlIHJlY29yZC5cbiAgICAgKiBJZiBhIHJlY29yZCBwcm9wZXJ0eSBpcyBtaXNzaW5nIG9yIG51bGwsIHRoZSBjb3JyZXNwb25kaW5nIGluc3RhbmNlIHByb3BlcnR5IGlzIHNldCB0byBpdHMgZGVmYXVsdCB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IHJlY29yZDogUGFydGlhbDxFc29sdmVBZmZpbGlhdGVSZWNvcmQ+ID0ge1xuICAgICAqICAgICBpZDogJzEyMycsXG4gICAgICogICAgIGFmZmlsaWF0ZV9uYW1lOiAnRXhhbXBsZSBBZmZpbGlhdGUnLFxuICAgICAqICAgICBhZmZpbGlhdGVfZG9tYWluOiAnZXhhbXBsZS5jb20nXG4gICAgICogICAgIGFmZmlsaWF0ZV9rZXk6ICdleGFtcGxlLWtleScsXG4gICAgICogICAgIGRlZmF1bHQ6IHRydWVcbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogY29uc3QgYWZmaWxpYXRlID0gbmV3IEVzb2x2ZUFmZmlsaWF0ZShyZWNvcmQpO1xuICAgICAqIGNvbnNvbGUubG9nKGFmZmlsaWF0ZS5pZCk7IC8vIE91dHB1dDogMTIzXG4gICAgICogY29uc29sZS5sb2coYWZmaWxpYXRlLm5hbWUpOyAvLyBPdXRwdXQ6IEV4YW1wbGUgQWZmaWxpYXRlXG4gICAgICogY29uc29sZS5sb2coYWZmaWxpYXRlLmtleSk7IC8vIE91dHB1dDogZXhhbXBsZS1rZXlcbiAgICAgKiBjb25zb2xlLmxvZyhhZmZpbGlhdGUuaXNfZGVmYXVsdCk7IC8vIE91dHB1dDogdHJ1ZVxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHJlY29yZD86IFBhcnRpYWw8RXNvbHZlQWZmaWxpYXRlUmVjb3JkPikge1xuICAgICAgICBpZiAocmVjb3JkKSB7XG4gICAgICAgICAgICB0aGlzLmlkID0gKyhyZWNvcmQuaWQgPz8gMCk7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSByZWNvcmQuYWZmaWxpYXRlX25hbWUgPz8gJyc7XG4gICAgICAgICAgICB0aGlzLmtleSA9IHJlY29yZC5hZmZpbGlhdGVfa2V5ID8/ICcnO1xuICAgICAgICAgICAgdGhpcy5kb21haW4gPSByZWNvcmQuYWZmaWxpYXRlX2RvbWFpbiA/PyAnJztcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiByZWNvcmQuZGVmYXVsdCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzX2RlZmF1bHQgPSAhIStyZWNvcmQuZGVmYXVsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './esolve-affiliate-check-result.model';
2
+ export * from './esolve-affiliate-link-result.model';
3
+ export * from './esolve-affiliate.model';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWZmaWxpYXRlcy9jbGFzc2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtYWZmaWxpYXRlLWNoZWNrLXJlc3VsdC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1hZmZpbGlhdGUtbGluay1yZXN1bHQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtYWZmaWxpYXRlLm1vZGVsJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from './classes';
2
+ export * from './interfaces';
3
+ export * from './services';
4
+ export * from './types';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWZmaWxpYXRlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcyc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWFmZmlsaWF0ZS1jaGVjay1yZWNvcmQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2FmZmlsaWF0ZXMvaW50ZXJmYWNlcy9lc29sdmUtYWZmaWxpYXRlLWNoZWNrLXJlY29yZC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUFmZmlsaWF0ZVJlY29yZCB9IGZyb20gJy4vZXNvbHZlLWFmZmlsaWF0ZS1yZWNvcmQuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBFc29sdmVBZmZpbGlhdGVDaGVja1JlY29yZCB7XG4gICAgYWZmaWxpYXRlOiBFc29sdmVBZmZpbGlhdGVSZWNvcmQ7XG4gICAgY29uZmlybWF0aW9uX3JlcXVpcmVkOiBib29sZWFuO1xuICAgIGxpbmtlZF9hZmZpbGlhdGVzOiBFc29sdmVBZmZpbGlhdGVSZWNvcmRbXTtcbiAgICB0b3RhbF9saW5rZWRfYWZmaWxpYXRlczogbnVtYmVyO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWFmZmlsaWF0ZS1saW5rLW9wdGlvbnMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2FmZmlsaWF0ZXMvaW50ZXJmYWNlcy9lc29sdmUtYWZmaWxpYXRlLWxpbmstb3B0aW9ucy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRXNvbHZlQWZmaWxpYXRlTGlua09wdGlvbnMge1xuICAgIGFmZmlsaWF0ZV9pZD86IG51bWJlcjtcbiAgICBhZmZpbGlhdGVfa2V5Pzogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWFmZmlsaWF0ZS1yZWNvcmQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2FmZmlsaWF0ZXMvaW50ZXJmYWNlcy9lc29sdmUtYWZmaWxpYXRlLXJlY29yZC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRXNvbHZlQWZmaWxpYXRlUmVjb3JkIHtcbiAgICBpZDogbnVtYmVyO1xuICAgIGFmZmlsaWF0ZV9uYW1lOiBzdHJpbmc7XG4gICAgYWZmaWxpYXRlX2tleTogc3RyaW5nO1xuICAgIGFmZmlsaWF0ZV9kb21haW46IHN0cmluZztcbiAgICBkZWZhdWx0OiBib29sZWFuO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWFmZmlsaWF0ZXMtb3B0aW9ucy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWZmaWxpYXRlcy9pbnRlcmZhY2VzL2Vzb2x2ZS1hZmZpbGlhdGVzLW9wdGlvbnMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEVzb2x2ZUFmZmlsaWF0ZXNPcHRpb25zIHtcbiAgICBhZmZpbGlhdGVfaWQ/OiBudW1iZXI7XG4gICAgYWZmaWxpYXRlX2tleT86IHN0cmluZztcbiAgICBwYWdlPzogbnVtYmVyO1xuICAgIHJvd3M/OiBudW1iZXI7XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export * from './esolve-affiliate-check-record.interface';
2
+ export * from './esolve-affiliate-link-options.interface';
3
+ export * from './esolve-affiliate-record.interface';
4
+ export * from './esolve-affiliates-options.interface';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWZmaWxpYXRlcy9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1hZmZpbGlhdGUtY2hlY2stcmVjb3JkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1hZmZpbGlhdGUtbGluay1vcHRpb25zLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1hZmZpbGlhdGUtcmVjb3JkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1hZmZpbGlhdGVzLW9wdGlvbnMuaW50ZXJmYWNlJztcbiJdfQ==
@@ -0,0 +1,168 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { HttpClient, HttpParams, } from '@angular/common/http';
3
+ import { catchError, map } from 'rxjs';
4
+ import { EsolveConfigService } from '../../core';
5
+ import { EsolveErrorHandlerService, EsolveList, EsolveResponseHandlerService, } from '../../shared';
6
+ import { EsolveAffiliate, EsolveAffiliateCheckResult, EsolveAffiliateLinkResult, } from '../classes';
7
+ import * as i0 from "@angular/core";
8
+ export class EsolveAffiliateService {
9
+ constructor() {
10
+ this.http = inject(HttpClient);
11
+ this.config = inject(EsolveConfigService);
12
+ this.errorHandler = inject(EsolveErrorHandlerService);
13
+ this.responseHandler = inject(EsolveResponseHandlerService);
14
+ }
15
+ /**
16
+ * Retrieves affiliate records based on the provided options.
17
+ *
18
+ * @param options - Optional parameters for filtering and pagination.
19
+ * @returns - An observable that emits an `EsolveList` containing the retrieved affiliate records and additional data.
20
+ *
21
+ * @remarks
22
+ * If the `options` parameter is provided, it is used to construct an HTTP GET request with query parameters for pagination.
23
+ * The response is validated and transformed into an `EsolveList` object.
24
+ * If the response does not contain any records, an error is thrown.
25
+ * The function utilizes the `HttpClient` to make the HTTP request and applies RxJS operators for handling the response.
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * const options: EsolveAffiliatesOptions = {
30
+ * page: 1,
31
+ * rows: 10,
32
+ * };
33
+ *
34
+ * this.affiliateService.getAffiliates(options).subscribe((affiliates) => {
35
+ * console.log(affiliates.items); // Array of EsolveAffiliate objects
36
+ * console.log(affiliates.page); // 1
37
+ * console.log(affiliates.rows); // 10
38
+ * console.log(affiliates.totalRecords); // Total number of affiliate records
39
+ * });
40
+ * ```
41
+ */
42
+ getAffiliates(options) {
43
+ let params = new HttpParams();
44
+ if (options) {
45
+ if (options.page) {
46
+ params = params.set('page', options.page);
47
+ }
48
+ if (options.rows) {
49
+ params = params.set('rows', options.rows);
50
+ }
51
+ }
52
+ return this.http
53
+ .get(`${this.config.api_url}/get-affiliates.php`, {
54
+ params,
55
+ })
56
+ .pipe(map((response) => {
57
+ if (response.records === undefined ||
58
+ response.records.length <= 0) {
59
+ throw response;
60
+ }
61
+ const items = this.processAffiliates(response.records);
62
+ return new EsolveList(items, options?.page, options?.rows, +response.additional_data.total_records);
63
+ }));
64
+ }
65
+ /**
66
+ * Retrieves affiliate information for user linking based on the provided affiliate key.
67
+ *
68
+ * @param affiliate_key - The unique identifier for the affiliate.
69
+ * @returns - An observable that emits an `EsolveAffiliateCheckResult` object containing the retrieved affiliate check record.
70
+ *
71
+ * @remarks
72
+ * If the `affiliate_key` parameter is an empty string, an error is emitted using the `EsolveErrorHandlerService`.
73
+ * The function constructs an HTTP GET request with the affiliate key as a query parameter.
74
+ * The response is validated and transformed into an `EsolveAffiliateCheckResult` object.
75
+ * If the response does not contain a valid record, an error is thrown.
76
+ * The function utilizes the `HttpClient` to make the HTTP request and applies RxJS operators for handling the response.
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * this.affiliateService.getAffiliateCheck('12345').subscribe((affiliateCheckResult) => {
81
+ * console.log(affiliateCheckResult.record); // EsolveAffiliateCheckRecord object
82
+ * });
83
+ * ```
84
+ */
85
+ getAffiliateCheck(affiliate_key) {
86
+ if (affiliate_key === '') {
87
+ return this.errorHandler.emitError('affiliate_key_required', 'Affiliate key is required is required');
88
+ }
89
+ const params = new HttpParams({
90
+ fromObject: { affiliate_key },
91
+ });
92
+ return this.http
93
+ .get(`${this.config.api_url}/get-affiliate-check.php`, {
94
+ params,
95
+ })
96
+ .pipe(map((response) => {
97
+ let record = response.records;
98
+ if (Array.isArray(record)) {
99
+ record = undefined;
100
+ }
101
+ if (!record) {
102
+ throw response;
103
+ }
104
+ return new EsolveAffiliateCheckResult(record);
105
+ }));
106
+ }
107
+ /**
108
+ * Sets the affiliate link using the provided options.
109
+ *
110
+ * @param options - The options for setting the affiliate link.
111
+ * @returns - An observable that emits the result of the affiliate link set operation.
112
+ *
113
+ * @remarks
114
+ * This function constructs a FormData object with the affiliate key from the provided options.
115
+ * It then sends a POST request to the API endpoint `/set-affiliate-link.php` with the FormData.
116
+ * The response is validated and transformed into an `EsolveAffiliateLinkResult` object.
117
+ * If an error occurs during the HTTP request, it is handled and an appropriate error is emitted.
118
+ */
119
+ setAffiliateLink(options) {
120
+ const form_data = new FormData();
121
+ if (options.affiliate_id !== undefined && options.affiliate_id !== 0) {
122
+ form_data.append('affiliate_key', options.affiliate_id.toString());
123
+ }
124
+ else if (options.affiliate_key !== undefined &&
125
+ options.affiliate_key !== '') {
126
+ form_data.append('affiliate_key', options.affiliate_key);
127
+ }
128
+ else {
129
+ return this.errorHandler.emitError('affiliate_key_id_required', 'Affiliate key or id is required is required');
130
+ }
131
+ return this.http
132
+ .post(`${this.config.api_url}/set-affiliate-link.php`, form_data, {
133
+ responseType: 'json',
134
+ observe: 'body',
135
+ })
136
+ .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveAffiliateLinkResult(response))), catchError((errorRes) => {
137
+ return this.errorHandler.handleHttpPostError('set-enquiry', errorRes);
138
+ }));
139
+ }
140
+ /**
141
+ * Processes an array of `EsolveAffiliateRecord` objects and transforms them into an array of `EsolveAffiliate` objects.
142
+ *
143
+ * @param records - An array of `EsolveAffiliateRecord` objects to be processed.
144
+ * @returns - An array of `EsolveAffiliate` objects, where each object is created from a corresponding `EsolveAffiliateRecord` object.
145
+ *
146
+ * @remarks
147
+ * This function iterates over the input array of `EsolveAffiliateRecord` objects and creates a new `EsolveAffiliate` object for each record.
148
+ * If the input array is empty, an empty array is returned.
149
+ */
150
+ processAffiliates(records) {
151
+ const items = [];
152
+ if (records.length > 0) {
153
+ for (const record of records) {
154
+ items.push(new EsolveAffiliate(record));
155
+ }
156
+ }
157
+ return items;
158
+ }
159
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: EsolveAffiliateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
160
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: EsolveAffiliateService, providedIn: 'root' }); }
161
+ }
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: EsolveAffiliateService, decorators: [{
163
+ type: Injectable,
164
+ args: [{
165
+ providedIn: 'root',
166
+ }]
167
+ }] });
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWFmZmlsaWF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2FmZmlsaWF0ZXMvc2VydmljZXMvZXNvbHZlLWFmZmlsaWF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFDSCxVQUFVLEVBRVYsVUFBVSxHQUNiLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFDSCx5QkFBeUIsRUFFekIsVUFBVSxFQUNWLDRCQUE0QixHQUUvQixNQUFNLGNBQWMsQ0FBQztBQVN0QixPQUFPLEVBQ0gsZUFBZSxFQUNmLDBCQUEwQixFQUMxQix5QkFBeUIsR0FDNUIsTUFBTSxZQUFZLENBQUM7O0FBS3BCLE1BQU0sT0FBTyxzQkFBc0I7SUFIbkM7UUFJcUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQixXQUFNLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDckMsaUJBQVksR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNqRCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0tBeU0zRTtJQXZNRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0EwQkc7SUFDSSxhQUFhLENBQUMsT0FBaUM7UUFDbEQsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUU5QixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1YsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENB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IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBIdHRwQ2xpZW50LFxuICAgIEh0dHBFcnJvclJlc3BvbnNlLFxuICAgIEh0dHBQYXJhbXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEVzb2x2ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7XG4gICAgRXNvbHZlRXJyb3JIYW5kbGVyU2VydmljZSxcbiAgICBFc29sdmVHZXRSZXNwb25zZSxcbiAgICBFc29sdmVMaXN0LFxuICAgIEVzb2x2ZVJlc3BvbnNlSGFuZGxlclNlcnZpY2UsXG4gICAgRXNvbHZlU2V0UmVzcG9uc2UsXG59IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5cbmltcG9ydCB7XG4gICAgRXNvbHZlQWZmaWxpYXRlQ2hlY2tSZWNvcmQsXG4gICAgRXNvbHZlQWZmaWxpYXRlTGlua09wdGlvbnMsXG4gICAgRXNvbHZlQWZmaWxpYXRlUmVjb3JkLFxuICAgIEVzb2x2ZUFmZmlsaWF0ZXNPcHRpb25zLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVzb2x2ZUFmZmlsaWF0ZUxpbmtSZXNwb25zZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7XG4gICAgRXNvbHZlQWZmaWxpYXRlLFxuICAgIEVzb2x2ZUFmZmlsaWF0ZUNoZWNrUmVzdWx0LFxuICAgIEVzb2x2ZUFmZmlsaWF0ZUxpbmtSZXN1bHQsXG59IGZyb20gJy4uL2NsYXNzZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBFc29sdmVBZmZpbGlhdGVTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoRXNvbHZlQ29uZmlnU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlcnJvckhhbmRsZXIgPSBpbmplY3QoRXNvbHZlRXJyb3JIYW5kbGVyU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNwb25zZUhhbmRsZXIgPSBpbmplY3QoRXNvbHZlUmVzcG9uc2VIYW5kbGVyU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgYWZmaWxpYXRlIHJlY29yZHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIG9wdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIHBhcmFtZXRlcnMgZm9yIGZpbHRlcmluZyBhbmQgcGFnaW5hdGlvbi5cbiAgICAgKiBAcmV0dXJucyAtIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBhbiBgRXNvbHZlTGlzdGAgY29udGFpbmluZyB0aGUgcmV0cmlldmVkIGFmZmlsaWF0ZSByZWNvcmRzIGFuZCBhZGRpdGlvbmFsIGRhdGEuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIElmIHRoZSBgb3B0aW9uc2AgcGFyYW1ldGVyIGlzIHByb3ZpZGVkLCBpdCBpcyB1c2VkIHRvIGNvbnN0cnVjdCBhbiBIVFRQIEdFVCByZXF1ZXN0IHdpdGggcXVlcnkgcGFyYW1ldGVycyBmb3IgcGFnaW5hdGlvbi5cbiAgICAgKiBUaGUgcmVzcG9uc2UgaXMgdmFsaWRhdGVkIGFuZCB0cmFuc2Zvcm1lZCBpbnRvIGFuIGBFc29sdmVMaXN0YCBvYmplY3QuXG4gICAgICogSWYgdGhlIHJlc3BvbnNlIGRvZXMgbm90IGNvbnRhaW4gYW55IHJlY29yZHMsIGFuIGVycm9yIGlzIHRocm93bi5cbiAgICAgKiBUaGUgZnVuY3Rpb24gdXRpbGl6ZXMgdGhlIGBIdHRwQ2xpZW50YCB0byBtYWtlIHRoZSBIVFRQIHJlcXVlc3QgYW5kIGFwcGxpZXMgUnhKUyBvcGVyYXRvcnMgZm9yIGhhbmRsaW5nIHRoZSByZXNwb25zZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IG9wdGlvbnM6IEVzb2x2ZUFmZmlsaWF0ZXNPcHRpb25zID0ge1xuICAgICAqICAgICBwYWdlOiAxLFxuICAgICAqICAgICByb3dzOiAxMCxcbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogdGhpcy5hZmZpbGlhdGVTZXJ2aWNlLmdldEFmZmlsaWF0ZXMob3B0aW9ucykuc3Vic2NyaWJlKChhZmZpbGlhdGVzKSA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKGFmZmlsaWF0ZXMuaXRlbXMpOyAvLyBBcnJheSBvZiBFc29sdmVBZmZpbGlhdGUgb2JqZWN0c1xuICAgICAqICAgICBjb25zb2xlLmxvZyhhZmZpbGlhdGVzLnBhZ2UpOyAvLyAxXG4gICAgICogICAgIGNvbnNvbGUubG9nKGFmZmlsaWF0ZXMucm93cyk7IC8vIDEwXG4gICAgICogICAgIGNvbnNvbGUubG9nKGFmZmlsaWF0ZXMudG90YWxSZWNvcmRzKTsgLy8gVG90YWwgbnVtYmVyIG9mIGFmZmlsaWF0ZSByZWNvcmRzXG4gICAgICogfSk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldEFmZmlsaWF0ZXMob3B0aW9ucz86IEVzb2x2ZUFmZmlsaWF0ZXNPcHRpb25zKSB7XG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuXG4gICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5wYWdlKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncGFnZScsIG9wdGlvbnMucGFnZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnJvd3MpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdyb3dzJywgb3B0aW9ucy5yb3dzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlQWZmaWxpYXRlUmVjb3JkW10+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtYWZmaWxpYXRlcy5waHBgLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPD0gMFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLnByb2Nlc3NBZmZpbGlhdGVzKHJlc3BvbnNlLnJlY29yZHMpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNvbHZlTGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz8ucGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM/LnJvd3MsXG4gICAgICAgICAgICAgICAgICAgICAgICArcmVzcG9uc2UuYWRkaXRpb25hbF9kYXRhLnRvdGFsX3JlY29yZHMsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyBhZmZpbGlhdGUgaW5mb3JtYXRpb24gZm9yIHVzZXIgbGlua2luZyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgYWZmaWxpYXRlIGtleS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhZmZpbGlhdGVfa2V5IC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgYWZmaWxpYXRlLlxuICAgICAqIEByZXR1cm5zIC0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFuIGBFc29sdmVBZmZpbGlhdGVDaGVja1Jlc3VsdGAgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJldHJpZXZlZCBhZmZpbGlhdGUgY2hlY2sgcmVjb3JkLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBJZiB0aGUgYGFmZmlsaWF0ZV9rZXlgIHBhcmFtZXRlciBpcyBhbiBlbXB0eSBzdHJpbmcsIGFuIGVycm9yIGlzIGVtaXR0ZWQgdXNpbmcgdGhlIGBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlYC5cbiAgICAgKiBUaGUgZnVuY3Rpb24gY29uc3RydWN0cyBhbiBIVFRQIEdFVCByZXF1ZXN0IHdpdGggdGhlIGFmZmlsaWF0ZSBrZXkgYXMgYSBxdWVyeSBwYXJhbWV0ZXIuXG4gICAgICogVGhlIHJlc3BvbnNlIGlzIHZhbGlkYXRlZCBhbmQgdHJhbnNmb3JtZWQgaW50byBhbiBgRXNvbHZlQWZmaWxpYXRlQ2hlY2tSZXN1bHRgIG9iamVjdC5cbiAgICAgKiBJZiB0aGUgcmVzcG9uc2UgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHJlY29yZCwgYW4gZXJyb3IgaXMgdGhyb3duLlxuICAgICAqIFRoZSBmdW5jdGlvbiB1dGlsaXplcyB0aGUgYEh0dHBDbGllbnRgIHRvIG1ha2UgdGhlIEhUVFAgcmVxdWVzdCBhbmQgYXBwbGllcyBSeEpTIG9wZXJhdG9ycyBmb3IgaGFuZGxpbmcgdGhlIHJlc3BvbnNlLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5hZmZpbGlhdGVTZXJ2aWNlLmdldEFmZmlsaWF0ZUNoZWNrKCcxMjM0NScpLnN1YnNjcmliZSgoYWZmaWxpYXRlQ2hlY2tSZXN1bHQpID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coYWZmaWxpYXRlQ2hlY2tSZXN1bHQucmVjb3JkKTsgLy8gRXNvbHZlQWZmaWxpYXRlQ2hlY2tSZWNvcmQgb2JqZWN0XG4gICAgICogfSk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldEFmZmlsaWF0ZUNoZWNrKGFmZmlsaWF0ZV9rZXk6IHN0cmluZykge1xuICAgICAgICBpZiAoYWZmaWxpYXRlX2tleSA9PT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5lbWl0RXJyb3IoXG4gICAgICAgICAgICAgICAgJ2FmZmlsaWF0ZV9rZXlfcmVxdWlyZWQnLFxuICAgICAgICAgICAgICAgICdBZmZpbGlhdGUga2V5IGlzIHJlcXVpcmVkIGlzIHJlcXVpcmVkJyxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XG4gICAgICAgICAgICBmcm9tT2JqZWN0OiB7IGFmZmlsaWF0ZV9rZXkgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVBZmZpbGlhdGVDaGVja1JlY29yZD4+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1hZmZpbGlhdGUtY2hlY2sucGhwYCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcmVjb3JkID0gcmVzcG9uc2UucmVjb3JkcztcblxuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZWNvcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlY29yZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUFmZmlsaWF0ZUNoZWNrUmVzdWx0KHJlY29yZCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGFmZmlsaWF0ZSBsaW5rIHVzaW5nIHRoZSBwcm92aWRlZCBvcHRpb25zLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3Igc2V0dGluZyB0aGUgYWZmaWxpYXRlIGxpbmsuXG4gICAgICogQHJldHVybnMgLSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgYWZmaWxpYXRlIGxpbmsgc2V0IG9wZXJhdGlvbi5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogVGhpcyBmdW5jdGlvbiBjb25zdHJ1Y3RzIGEgRm9ybURhdGEgb2JqZWN0IHdpdGggdGhlIGFmZmlsaWF0ZSBrZXkgZnJvbSB0aGUgcHJvdmlkZWQgb3B0aW9ucy5cbiAgICAgKiBJdCB0aGVuIHNlbmRzIGEgUE9TVCByZXF1ZXN0IHRvIHRoZSBBUEkgZW5kcG9pbnQgYC9zZXQtYWZmaWxpYXRlLWxpbmsucGhwYCB3aXRoIHRoZSBGb3JtRGF0YS5cbiAgICAgKiBUaGUgcmVzcG9uc2UgaXMgdmFsaWRhdGVkIGFuZCB0cmFuc2Zvcm1lZCBpbnRvIGFuIGBFc29sdmVBZmZpbGlhdGVMaW5rUmVzdWx0YCBvYmplY3QuXG4gICAgICogSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgSFRUUCByZXF1ZXN0LCBpdCBpcyBoYW5kbGVkIGFuZCBhbiBhcHByb3ByaWF0ZSBlcnJvciBpcyBlbWl0dGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRBZmZpbGlhdGVMaW5rKG9wdGlvbnM6IEVzb2x2ZUFmZmlsaWF0ZUxpbmtPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGZvcm1fZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmFmZmlsaWF0ZV9pZCAhPT0gdW5kZWZpbmVkICYmIG9wdGlvbnMuYWZmaWxpYXRlX2lkICE9PSAwKSB7XG4gICAgICAgICAgICBmb3JtX2RhdGEuYXBwZW5kKCdhZmZpbGlhdGVfa2V5Jywgb3B0aW9ucy5hZmZpbGlhdGVfaWQudG9TdHJpbmcoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBvcHRpb25zLmFmZmlsaWF0ZV9rZXkgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgb3B0aW9ucy5hZmZpbGlhdGVfa2V5ICE9PSAnJ1xuICAgICAgICApIHtcbiAgICAgICAgICAgIGZvcm1fZGF0YS5hcHBlbmQoJ2FmZmlsaWF0ZV9rZXknLCBvcHRpb25zLmFmZmlsaWF0ZV9rZXkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmVtaXRFcnJvcihcbiAgICAgICAgICAgICAgICAnYWZmaWxpYXRlX2tleV9pZF9yZXF1aXJlZCcsXG4gICAgICAgICAgICAgICAgJ0FmZmlsaWF0ZSBrZXkgb3IgaWQgaXMgcmVxdWlyZWQgaXMgcmVxdWlyZWQnLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0PEVzb2x2ZVNldFJlc3BvbnNlPEVzb2x2ZUFmZmlsaWF0ZUxpbmtSZXNwb25zZT4+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1hZmZpbGlhdGUtbGluay5waHBgLFxuICAgICAgICAgICAgICAgIGZvcm1fZGF0YSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiBuZXcgRXNvbHZlQWZmaWxpYXRlTGlua1Jlc3VsdChyZXNwb25zZSksXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBQb3N0RXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2V0LWVucXVpcnknLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXMsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyBhbiBhcnJheSBvZiBgRXNvbHZlQWZmaWxpYXRlUmVjb3JkYCBvYmplY3RzIGFuZCB0cmFuc2Zvcm1zIHRoZW0gaW50byBhbiBhcnJheSBvZiBgRXNvbHZlQWZmaWxpYXRlYCBvYmplY3RzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlY29yZHMgLSBBbiBhcnJheSBvZiBgRXNvbHZlQWZmaWxpYXRlUmVjb3JkYCBvYmplY3RzIHRvIGJlIHByb2Nlc3NlZC5cbiAgICAgKiBAcmV0dXJucyAtIEFuIGFycmF5IG9mIGBFc29sdmVBZmZpbGlhdGVgIG9iamVjdHMsIHdoZXJlIGVhY2ggb2JqZWN0IGlzIGNyZWF0ZWQgZnJvbSBhIGNvcnJlc3BvbmRpbmcgYEVzb2x2ZUFmZmlsaWF0ZVJlY29yZGAgb2JqZWN0LlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGl0ZXJhdGVzIG92ZXIgdGhlIGlucHV0IGFycmF5IG9mIGBFc29sdmVBZmZpbGlhdGVSZWNvcmRgIG9iamVjdHMgYW5kIGNyZWF0ZXMgYSBuZXcgYEVzb2x2ZUFmZmlsaWF0ZWAgb2JqZWN0IGZvciBlYWNoIHJlY29yZC5cbiAgICAgKiBJZiB0aGUgaW5wdXQgYXJyYXkgaXMgZW1wdHksIGFuIGVtcHR5IGFycmF5IGlzIHJldHVybmVkLlxuICAgICAqL1xuICAgIHByaXZhdGUgcHJvY2Vzc0FmZmlsaWF0ZXMocmVjb3JkczogRXNvbHZlQWZmaWxpYXRlUmVjb3JkW10pIHtcbiAgICAgICAgY29uc3QgaXRlbXM6IEVzb2x2ZUFmZmlsaWF0ZVtdID0gW107XG5cbiAgICAgICAgaWYgKHJlY29yZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2gobmV3IEVzb2x2ZUFmZmlsaWF0ZShyZWNvcmQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './esolve-affiliate.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWZmaWxpYXRlcy9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtYWZmaWxpYXRlLnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWFmZmlsaWF0ZS1saW5rLXJlc3BvbnNlLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWZmaWxpYXRlcy90eXBlcy9lc29sdmUtYWZmaWxpYXRlLWxpbmstcmVzcG9uc2UudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlUG9zdFJlc3BvbnNlSXRlbSB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5cbmV4cG9ydCB0eXBlIEVzb2x2ZUFmZmlsaWF0ZUxpbmtSZXNwb25zZSA9IEVzb2x2ZVBvc3RSZXNwb25zZUl0ZW07XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './esolve-affiliate-link-response.type';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWZmaWxpYXRlcy90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtYWZmaWxpYXRlLWxpbmstcmVzcG9uc2UudHlwZSc7XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcHRjaGEtYWN0aW9uLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2FwdGNoYS90eXBlcy9lc29sdmUtY2FwdGNoYS1hY3Rpb24udHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRXNvbHZlQ2FwdGNoYUFjdGlvbiA9ICdvdHAnIHwgJ2ZvcmdvdC1wYXNzd29yZCcgfCAnZW5xdWlyeSc7XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcHRjaGEtYWN0aW9uLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2FwdGNoYS90eXBlcy9lc29sdmUtY2FwdGNoYS1hY3Rpb24udHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRXNvbHZlQ2FwdGNoYUFjdGlvbiA9XG4gICAgfCAncmVnaXN0ZXInXG4gICAgfCAnb3RwJ1xuICAgIHwgJ2ZvcmdvdC1wYXNzd29yZCdcbiAgICB8ICdlbnF1aXJ5JztcbiJdfQ==
@@ -163,7 +163,9 @@ export class EsolveSessionService {
163
163
  this.updateClientsId(session.clients_id);
164
164
  // Update token last to make sure session is correctly checked
165
165
  this.updateToken(session.token);
166
- this.startTimer(expiry_date);
166
+ if (this.is_browser) {
167
+ this.startTimer(expiry_date);
168
+ }
167
169
  }
168
170
  handleUpdateSession({ user_id, location_id, addresses_id, shipping_id, clients_id, token, }) {
169
171
  if (typeof user_id !== 'undefined') {
@@ -238,4 +240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
238
240
  providedIn: 'root',
239
241
  }]
240
242
  }], ctorParameters: () => [] });
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNlc3Npb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zZXNzaW9uL2Vzb2x2ZS1zZXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBELE9BQU8sRUFDSCxlQUFlLEVBRWYsT0FBTyxFQUNQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGFBQWEsRUFDYixHQUFHLEVBQ0gsV0FBVyxFQUNYLE1BQU0sRUFDTixvQkFBb0IsRUFDcEIsWUFBWSxHQUNmLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFNL0QsTUFBTSxPQUFPLG9CQUFvQjtJQXdCN0I7UUF2QmlCLGVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNwRCxXQUFNLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDckMsa0JBQWEsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVyRCxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDekMsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzFDLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDL0MsaUJBQVksR0FB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QyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVyRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BDLE9BQU87UUFDWCxDQUFDO1FBRUQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTyxXQUFXO1FBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVqRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BDLE9BQU87UUFDWCxDQUFDO1FBRUQsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs4R0F6VFEsb0JBQW9CO2tIQUFwQixvQkFBb0IsY0FGakIsTUFBTTs7MkZBRVQsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFBMQVRGT1JNX0lELCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHtcbiAgICBCZWhhdmlvclN1YmplY3QsXG4gICAgT2JzZXJ2YWJsZSxcbiAgICBTdWJqZWN0LFxuICAgIHN3aXRjaE1hcCxcbiAgICB0YWtlVW50aWwsXG4gICAgdGltZXIsXG4gICAgY29tYmluZUxhdGVzdCxcbiAgICBtYXAsXG4gICAgc2hhcmVSZXBsYXksXG4gICAgZmlsdGVyLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICAgIGRlYm91bmNlVGltZSxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGZyb21Vbml4VGltZSB9IGZyb20gJ2RhdGUtZm5zJztcblxuaW1wb3J0IHsgRXNvbHZlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgRXNvbHZlQ29va2llU2VydmljZSwgZXNvbHZlSGV4SGFzaCB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBFc29sdmVTZXNzaW9uLCBFc29sdmVTZXNzaW9uVXBkYXRlT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEVzb2x2ZVNlc3Npb25TZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlzX2Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3NlcihpbmplY3QoUExBVEZPUk1fSUQpKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChFc29sdmVDb25maWdTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvb2tpZVNlcnZpY2UgPSBpbmplY3QoRXNvbHZlQ29va2llU2VydmljZSk7XG5cbiAgICBwcml2YXRlIHRva2VuJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHJpdmF0ZSB1c2VyX2lkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgICBwcml2YXRlIGFjY2Vzc19sZXZlbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gICAgcHJpdmF0ZSBsb2NhdGlvbl9pZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gICAgcHJpdmF0ZSBhZGRyZXNzZXNfaWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICAgIHByaXZhdGUgc2hpcHBpbmdfaWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICAgIHByaXZhdGUgY2xpZW50c19pZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gICAgcHJpdmF0ZSBzdGF0ZV9oYXNoID0gJyc7XG5cbiAgICBwcml2YXRlIF9zZXNzaW9uOiBPYnNlcnZhYmxlPEVzb2x2ZVNlc3Npb24+O1xuXG4gICAgcHJpdmF0ZSBzdG9yYWdlX2tleSA9ICcnO1xuXG4gICAgLyogVGhlc2UgYXJlIFJ4SlMgc3ViamVjdHMgdXNlZCBmb3IgbWFuYWdpbmcgdGhlIGV4cGlyYXRpb24gb2YgdGhlIHVzZXIgc2Vzc2lvbi4gKi9cbiAgICBwcml2YXRlIHRpbWVyX3N0YXJ0ID0gbmV3IFN1YmplY3Q8bnVtYmVyIHwgRGF0ZT4oKTtcbiAgICBwcml2YXRlIHRpbWVyX3N0b3AgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgZXhwaXJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIHNlc3Npb25fZW5kID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnNldFN0b3JhZ2VLZXkoKTtcbiAgICAgICAgdGhpcy5fc2Vzc2lvbiA9IHRoaXMuaW5pdFNlc3Npb24oKTtcblxuICAgICAgICB0aGlzLmdldFNlc3Npb24oKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCh7IHRva2VuLCB1c2VyX2lkLCBsb2NhdGlvbl9pZCwgY2xpZW50c19pZCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlc29sdmVIZXhIYXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2lkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25faWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRzX2lkLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoaGFzaCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVfaGFzaCA9IGhhc2g7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnRpbWVyX3N0YXJ0XG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHRpbWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRpbWVyKHRpbWUpLnBpcGUodGFrZVVudGlsKHRoaXMudGltZXJfc3RvcCkpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gU3RvcmVkIHRpbWUgZXhwaXJlZC4gQ2hlY2sgaWYgc2Vzc2lvbiBpcyB2YWxpZFxuICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbl9lbmQubmV4dCgpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gS2lsbCBzZXNzaW9uIGFuZCByZXNldCBzdGF0ZVxuICAgICAgICB0aGlzLm9uRXhwaXJlKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzVmFsaWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRva2VuKCkgIT09ICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTZXNzaW9uKCk6IE9ic2VydmFibGU8RXNvbHZlU2Vzc2lvbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2Vzc2lvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2Vzc2lvblZhbHVlKCk6IEVzb2x2ZVNlc3Npb24ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9rZW46IHRoaXMudG9rZW4kLmdldFZhbHVlKCksXG4gICAgICAgICAgICB1c2VyX2lkOiB0aGlzLnVzZXJfaWQkLmdldFZhbHVlKCksXG4gICAgICAgICAgICBhY2Nlc3NfbGV2ZWw6IHRoaXMuYWNjZXNzX2xldmVsJC5nZXRWYWx1ZSgpLFxuICAgICAgICAgICAgbG9jYXRpb25faWQ6IHRoaXMubG9jYXRpb25faWQkLmdldFZhbHVlKCksXG4gICAgICAgICAgICBhZGRyZXNzZXNfaWQ6IHRoaXMuYWRkcmVzc2VzX2lkJC5nZXRWYWx1ZSgpLFxuICAgICAgICAgICAgc2hpcHBpbmdfaWQ6IHRoaXMuc2hpcHBpbmdfaWQkLmdldFZhbHVlKCksXG4gICAgICAgICAgICBjbGllbnRzX2lkOiB0aGlzLmNsaWVudHNfaWQkLmdldFZhbHVlKCksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2Vzc2lvbkVuZCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbl9lbmQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRXhwaXJlKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5leHBpcmUuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGV4cGlyZVNlc3Npb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXhwaXJlLm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VG9rZW4oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW4kLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVG9rZW5VcGRhdGUoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW4kLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKHRva2VuKSA9PiB0b2tlbiAhPT0gJycpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlVG9rZW4odG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnRva2VuJC5uZXh0KHRva2VuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VXNlcklkKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJfaWQkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVXNlcklkVXBkYXRlKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJfaWQkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZVVzZXJJZCh1c2VyX2lkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51c2VyX2lkJC5uZXh0KHVzZXJfaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBY2Nlc3NMZXZlbCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5hY2Nlc3NfbGV2ZWwkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQWNjZXNzTGV2ZWxVcGRhdGUoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXNzX2xldmVsJC5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVBY2Nlc3NMZXZlbChhY2Nlc3NfbGV2ZWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLmFjY2Vzc19sZXZlbCQubmV4dChhY2Nlc3NfbGV2ZWwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMb2NhdGlvbklkKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2F0aW9uX2lkJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkxvY2F0aW9uSWRVcGRhdGUoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYXRpb25faWQkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZUxvY2F0aW9uSWQobG9jYXRpb25faWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmxvY2F0aW9uX2lkJC5uZXh0KGxvY2F0aW9uX2lkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QWRkcmVzc2VzSWQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkcmVzc2VzX2lkJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkFkZHJlc3Nlc0lkVXBkYXRlKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkZHJlc3Nlc19pZCQuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlQWRkcmVzc2VzSWQoYWRkcmVzc2VzX2lkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hZGRyZXNzZXNfaWQkLm5leHQoYWRkcmVzc2VzX2lkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2hpcHBpbmdJZCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zaGlwcGluZ19pZCQuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TaGlwcGluZ0lkVXBkYXRlKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNoaXBwaW5nX2lkJC5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVTaGlwcGluZ0lkKHNoaXBwaW5nX2lkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaGlwcGluZ19pZCQubmV4dChzaGlwcGluZ19pZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENsaWVudHNJZCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jbGllbnRzX2lkJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsaWVudHNJZFVwZGF0ZSgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jbGllbnRzX2lkJC5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVDbGllbnRzSWQoY2xpZW50c19pZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xpZW50c19pZCQubmV4dChjbGllbnRzX2lkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U3RhdGVIYXNoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlX2hhc2g7XG4gICAgfVxuXG4gICAgcHVibGljIHN0b3BUaW1lcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aW1lcl9zdG9wLm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhcnRUaW1lcih0aW1lOiBudW1iZXIgfCBEYXRlKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGltZXJfc3RhcnQubmV4dCh0aW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2FjaGVkU2Vzc2lvbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2FjaGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVtb3ZlQ2FjaGUoKTtcbiAgICAgICAgdGhpcy50aW1lcl9zdG9wLm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlU2Vzc2lvbihcbiAgICAgICAgc2Vzc2lvbjogRXNvbHZlU2Vzc2lvbixcbiAgICAgICAgZXhwaXJ5X2RhdGVfdW5peDogbnVtYmVyLFxuICAgICAgICBncmFjZV91bml4OiBudW1iZXIsXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV4cGlyeV9kYXRlID0gZnJvbVVuaXhUaW1lKGV4cGlyeV9kYXRlX3VuaXgpO1xuICAgICAgICBjb25zdCBncmFjZV9leHBpcnlfZGF0ZSA9IGZyb21Vbml4VGltZShleHBpcnlfZGF0ZV91bml4ICsgZ3JhY2VfdW5peCk7XG5cbiAgICAgICAgdGhpcy5zZXRDYWNoZShzZXNzaW9uLnRva2VuLCBncmFjZV9leHBpcnlfZGF0ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlVXNlcklkKHNlc3Npb24udXNlcl9pZCk7XG4gICAgICAgIHRoaXMudXBkYXRlQWNjZXNzTGV2ZWwoc2Vzc2lvbi5hY2Nlc3NfbGV2ZWwpO1xuICAgICAgICB0aGlzLnVwZGF0ZUxvY2F0aW9uSWQoc2Vzc2lvbi5sb2NhdGlvbl9pZCk7XG4gICAgICAgIHRoaXMudXBkYXRlQWRkcmVzc2VzSWQoc2Vzc2lvbi5hZGRyZXNzZXNfaWQpO1xuICAgICAgICB0aGlzLnVwZGF0ZVNoaXBwaW5nSWQoc2Vzc2lvbi5zaGlwcGluZ19pZCk7XG4gICAgICAgIHRoaXMudXBkYXRlQ2xpZW50c0lkKHNlc3Npb24uY2xpZW50c19pZCk7XG4gICAgICAgIC8vIFVwZGF0ZSB0b2tlbiBsYXN0IHRvIG1ha2Ugc3VyZSBzZXNzaW9uIGlzIGNvcnJlY3RseSBjaGVja2VkXG4gICAgICAgIHRoaXMudXBkYXRlVG9rZW4oc2Vzc2lvbi50b2tlbik7XG5cbiAgICAgICAgdGhpcy5zdGFydFRpbWVyKGV4cGlyeV9kYXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlVXBkYXRlU2Vzc2lvbih7XG4gICAgICAgIHVzZXJfaWQsXG4gICAgICAgIGxvY2F0aW9uX2lkLFxuICAgICAgICBhZGRyZXNzZXNfaWQsXG4gICAgICAgIHNoaXBwaW5nX2lkLFxuICAgICAgICBjbGllbnRzX2lkLFxuICAgICAgICB0b2tlbixcbiAgICB9OiBFc29sdmVTZXNzaW9uVXBkYXRlT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICBpZiAodHlwZW9mIHVzZXJfaWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVVzZXJJZCh1c2VyX2lkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgbG9jYXRpb25faWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUxvY2F0aW9uSWQobG9jYXRpb25faWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBhZGRyZXNzZXNfaWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFkZHJlc3Nlc0lkKGFkZHJlc3Nlc19pZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHNoaXBwaW5nX2lkICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTaGlwcGluZ0lkKHNoaXBwaW5nX2lkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgY2xpZW50c19pZCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2xpZW50c0lkKGNsaWVudHNfaWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiAhPT0gJ3VuZGVmaW5lZCcgJiYgdG9rZW4udHJpbSgpICE9PSAnJykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVUb2tlbih0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTZXNzaW9uKCk6IE9ic2VydmFibGU8RXNvbHZlU2Vzc2lvbj4ge1xuICAgICAgICBjb25zdCBzZXNzaW9uID0ge1xuICAgICAgICAgICAgdG9rZW46IHRoaXMub25Ub2tlblVwZGF0ZSgpLFxuICAgICAgICAgICAgdXNlcl9pZDogdGhpcy5vblVzZXJJZFVwZGF0ZSgpLFxuICAgICAgICAgICAgYWNjZXNzX2xldmVsOiB0aGlzLm9uQWNjZXNzTGV2ZWxVcGRhdGUoKSxcbiAgICAgICAgICAgIGxvY2F0aW9uX2lkOiB0aGlzLm9uTG9jYXRpb25JZFVwZGF0ZSgpLFxuICAgICAgICAgICAgYWRkcmVzc2VzX2lkOiB0aGlzLm9uQWRkcmVzc2VzSWRVcGRhdGUoKSxcbiAgICAgICAgICAgIHNoaXBwaW5nX2lkOiB0aGlzLm9uU2hpcHBpbmdJZFVwZGF0ZSgpLFxuICAgICAgICAgICAgY2xpZW50c19pZDogdGhpcy5vbkNsaWVudHNJZFVwZGF0ZSgpLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHNlc3Npb24pLnBpcGUoXG4gICAgICAgICAgICAvLyBEZWxheXMgdGhlIGVtaXQgb25seSBzbGlnaHRseSBpbmNhc2UgbXVsdGlwbGUgdmFsdWVzIGFyZSBzZXRcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSgxMCksXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFN0b3JhZ2VLZXkoKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHR5cGVvZiB0aGlzLmNvbmZpZy5zZXNzaW9uX3N0b3JhZ2Vfa2V5ID09PSAnc3RyaW5nJyAmJlxuICAgICAgICAgICAgdGhpcy5jb25maWcuc2Vzc2lvbl9zdG9yYWdlX2tleSAhPT0gJydcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2Vfa2V5ID0gdGhpcy5jb25maWcuc2Vzc2lvbl9zdG9yYWdlX2tleTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q2FjaGUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KHRoaXMuc3RvcmFnZV9rZXkpO1xuXG4gICAgICAgIGlmIChkYXRhICE9PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaXNfYnJvd3NlciB8fCAhbG9jYWxTdG9yYWdlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2Vfa2V5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldENhY2hlKGRhdGE6IHN0cmluZywgZXhwaXJhdGlvbl9kYXRlPzogRGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvb2tpZVNlcnZpY2Uuc2V0KHRoaXMuc3RvcmFnZV9rZXksIGRhdGEsIGV4cGlyYXRpb25fZGF0ZSwgJy8nKTtcblxuICAgICAgICBpZiAoIXRoaXMuaXNfYnJvd3NlciB8fCAhbG9jYWxTdG9yYWdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0b3JhZ2Vfa2V5LCBkYXRhKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUNhY2hlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvb2tpZVNlcnZpY2UuZGVsZXRlKHRoaXMuc3RvcmFnZV9rZXksICcvJyk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzX2Jyb3dzZXIgfHwgIWxvY2FsU3RvcmFnZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5zdG9yYWdlX2tleSk7XG4gICAgfVxufVxuIl19
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNlc3Npb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zZXNzaW9uL2Vzb2x2ZS1zZXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBELE9BQU8sRUFDSCxlQUFlLEVBRWYsT0FBTyxFQUNQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGFBQWEsRUFDYixHQUFHLEVBQ0gsV0FBVyxFQUNYLE1BQU0sRUFDTixvQkFBb0IsRUFDcEIsWUFBWSxHQUNmLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFNL0QsTUFBTSxPQUFPLG9CQUFvQjtJQXdCN0I7UUF2QmlCLGVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNwRCxXQUFNLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDckMsa0JBQWEsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVyRCxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDekMsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzFDLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDL0MsaUJBQVksR0FB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O0lBRU8sUUFBUSxDQUFDLElBQVksRUFBRSxlQUFzQjtRQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFckUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQyxPQUFPO1FBQ1gsQ0FBQztRQUVELFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU8sV0FBVztRQUNmLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFakQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQyxPQUFPO1FBQ1gsQ0FBQztRQUVELFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7OEdBM1RRLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGNBRmpCLE1BQU07OzJGQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBQTEFURk9STV9JRCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7XG4gICAgQmVoYXZpb3JTdWJqZWN0LFxuICAgIE9ic2VydmFibGUsXG4gICAgU3ViamVjdCxcbiAgICBzd2l0Y2hNYXAsXG4gICAgdGFrZVVudGlsLFxuICAgIHRpbWVyLFxuICAgIGNvbWJpbmVMYXRlc3QsXG4gICAgbWFwLFxuICAgIHNoYXJlUmVwbGF5LFxuICAgIGZpbHRlcixcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgICBkZWJvdW5jZVRpbWUsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBmcm9tVW5peFRpbWUgfSBmcm9tICdkYXRlLWZucyc7XG5cbmltcG9ydCB7IEVzb2x2ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9jb3JlJztcbmltcG9ydCB7IEVzb2x2ZUNvb2tpZVNlcnZpY2UsIGVzb2x2ZUhleEhhc2ggfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgRXNvbHZlU2Vzc2lvbiwgRXNvbHZlU2Vzc2lvblVwZGF0ZU9wdGlvbnMgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBFc29sdmVTZXNzaW9uU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpc19icm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIoaW5qZWN0KFBMQVRGT1JNX0lEKSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoRXNvbHZlQ29uZmlnU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb29raWVTZXJ2aWNlID0gaW5qZWN0KEVzb2x2ZUNvb2tpZVNlcnZpY2UpO1xuXG4gICAgcHJpdmF0ZSB0b2tlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAgIHByaXZhdGUgdXNlcl9pZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gICAgcHJpdmF0ZSBhY2Nlc3NfbGV2ZWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICAgIHByaXZhdGUgbG9jYXRpb25faWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICAgIHByaXZhdGUgYWRkcmVzc2VzX2lkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgICBwcml2YXRlIHNoaXBwaW5nX2lkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgICBwcml2YXRlIGNsaWVudHNfaWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICAgIHByaXZhdGUgc3RhdGVfaGFzaCA9ICcnO1xuXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogT2JzZXJ2YWJsZTxFc29sdmVTZXNzaW9uPjtcblxuICAgIHByaXZhdGUgc3RvcmFnZV9rZXkgPSAnJztcblxuICAgIC8qIFRoZXNlIGFyZSBSeEpTIHN1YmplY3RzIHVzZWQgZm9yIG1hbmFnaW5nIHRoZSBleHBpcmF0aW9uIG9mIHRoZSB1c2VyIHNlc3Npb24uICovXG4gICAgcHJpdmF0ZSB0aW1lcl9zdGFydCA9IG5ldyBTdWJqZWN0PG51bWJlciB8IERhdGU+KCk7XG4gICAgcHJpdmF0ZSB0aW1lcl9zdG9wID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIGV4cGlyZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBzZXNzaW9uX2VuZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zZXRTdG9yYWdlS2V5KCk7XG4gICAgICAgIHRoaXMuX3Nlc3Npb24gPSB0aGlzLmluaXRTZXNzaW9uKCk7XG5cbiAgICAgICAgdGhpcy5nZXRTZXNzaW9uKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoeyB0b2tlbiwgdXNlcl9pZCwgbG9jYXRpb25faWQsIGNsaWVudHNfaWQgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXNvbHZlSGV4SGFzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uX2lkLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50c19pZCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGhhc2gpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlX2hhc2ggPSBoYXNoO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy50aW1lcl9zdGFydFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCh0aW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aW1lcih0aW1lKS5waXBlKHRha2VVbnRpbCh0aGlzLnRpbWVyX3N0b3ApKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFN0b3JlZCB0aW1lIGV4cGlyZWQuIENoZWNrIGlmIHNlc3Npb24gaXMgdmFsaWRcbiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25fZW5kLm5leHQoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEtpbGwgc2Vzc2lvbiBhbmQgcmVzZXQgc3RhdGVcbiAgICAgICAgdGhpcy5vbkV4cGlyZSgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1ZhbGlkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUb2tlbigpICE9PSAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2Vzc2lvbigpOiBPYnNlcnZhYmxlPEVzb2x2ZVNlc3Npb24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nlc3Npb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlc3Npb25WYWx1ZSgpOiBFc29sdmVTZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRva2VuOiB0aGlzLnRva2VuJC5nZXRWYWx1ZSgpLFxuICAgICAgICAgICAgdXNlcl9pZDogdGhpcy51c2VyX2lkJC5nZXRWYWx1ZSgpLFxuICAgICAgICAgICAgYWNjZXNzX2xldmVsOiB0aGlzLmFjY2Vzc19sZXZlbCQuZ2V0VmFsdWUoKSxcbiAgICAgICAgICAgIGxvY2F0aW9uX2lkOiB0aGlzLmxvY2F0aW9uX2lkJC5nZXRWYWx1ZSgpLFxuICAgICAgICAgICAgYWRkcmVzc2VzX2lkOiB0aGlzLmFkZHJlc3Nlc19pZCQuZ2V0VmFsdWUoKSxcbiAgICAgICAgICAgIHNoaXBwaW5nX2lkOiB0aGlzLnNoaXBwaW5nX2lkJC5nZXRWYWx1ZSgpLFxuICAgICAgICAgICAgY2xpZW50c19pZDogdGhpcy5jbGllbnRzX2lkJC5nZXRWYWx1ZSgpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNlc3Npb25FbmQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb25fZW5kLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkV4cGlyZSgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwaXJlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBpcmVTZXNzaW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmV4cGlyZS5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRva2VuKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRva2VuJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRva2VuVXBkYXRlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRva2VuJC5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4gIT09ICcnKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZVRva2VuKHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b2tlbiQubmV4dCh0b2tlbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFVzZXJJZCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy51c2VyX2lkJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblVzZXJJZFVwZGF0ZSgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy51c2VyX2lkJC5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVVc2VySWQodXNlcl9pZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXNlcl9pZCQubmV4dCh1c2VyX2lkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QWNjZXNzTGV2ZWwoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXNzX2xldmVsJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkFjY2Vzc0xldmVsVXBkYXRlKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjY2Vzc19sZXZlbCQuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlQWNjZXNzTGV2ZWwoYWNjZXNzX2xldmVsOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5hY2Nlc3NfbGV2ZWwkLm5leHQoYWNjZXNzX2xldmVsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TG9jYXRpb25JZCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhdGlvbl9pZCQuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Mb2NhdGlvbklkVXBkYXRlKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2F0aW9uX2lkJC5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVMb2NhdGlvbklkKGxvY2F0aW9uX2lkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2NhdGlvbl9pZCQubmV4dChsb2NhdGlvbl9pZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFkZHJlc3Nlc0lkKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkZHJlc3Nlc19pZCQuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25BZGRyZXNzZXNJZFVwZGF0ZSgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGRyZXNzZXNfaWQkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZUFkZHJlc3Nlc0lkKGFkZHJlc3Nlc19pZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWRkcmVzc2VzX2lkJC5uZXh0KGFkZHJlc3Nlc19pZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNoaXBwaW5nSWQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hpcHBpbmdfaWQkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2hpcHBpbmdJZFVwZGF0ZSgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaGlwcGluZ19pZCQuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlU2hpcHBpbmdJZChzaGlwcGluZ19pZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hpcHBpbmdfaWQkLm5leHQoc2hpcHBpbmdfaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDbGllbnRzSWQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xpZW50c19pZCQuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbGllbnRzSWRVcGRhdGUoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xpZW50c19pZCQuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlQ2xpZW50c0lkKGNsaWVudHNfaWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmNsaWVudHNfaWQkLm5leHQoY2xpZW50c19pZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFN0YXRlSGFzaCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZV9oYXNoO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdG9wVGltZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGltZXJfc3RvcC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXJ0VGltZXIodGltZTogbnVtYmVyIHwgRGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnRpbWVyX3N0YXJ0Lm5leHQodGltZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENhY2hlZFNlc3Npb24oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENhY2hlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZUNhY2hlKCk7XG4gICAgICAgIHRoaXMudGltZXJfc3RvcC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZVNlc3Npb24oXG4gICAgICAgIHNlc3Npb246IEVzb2x2ZVNlc3Npb24sXG4gICAgICAgIGV4cGlyeV9kYXRlX3VuaXg6IG51bWJlcixcbiAgICAgICAgZ3JhY2VfdW5peDogbnVtYmVyLFxuICAgICk6IHZvaWQge1xuICAgICAgICBjb25zdCBleHBpcnlfZGF0ZSA9IGZyb21Vbml4VGltZShleHBpcnlfZGF0ZV91bml4KTtcbiAgICAgICAgY29uc3QgZ3JhY2VfZXhwaXJ5X2RhdGUgPSBmcm9tVW5peFRpbWUoZXhwaXJ5X2RhdGVfdW5peCArIGdyYWNlX3VuaXgpO1xuXG4gICAgICAgIHRoaXMuc2V0Q2FjaGUoc2Vzc2lvbi50b2tlbiwgZ3JhY2VfZXhwaXJ5X2RhdGUpO1xuICAgICAgICB0aGlzLnVwZGF0ZVVzZXJJZChzZXNzaW9uLnVzZXJfaWQpO1xuICAgICAgICB0aGlzLnVwZGF0ZUFjY2Vzc0xldmVsKHNlc3Npb24uYWNjZXNzX2xldmVsKTtcbiAgICAgICAgdGhpcy51cGRhdGVMb2NhdGlvbklkKHNlc3Npb24ubG9jYXRpb25faWQpO1xuICAgICAgICB0aGlzLnVwZGF0ZUFkZHJlc3Nlc0lkKHNlc3Npb24uYWRkcmVzc2VzX2lkKTtcbiAgICAgICAgdGhpcy51cGRhdGVTaGlwcGluZ0lkKHNlc3Npb24uc2hpcHBpbmdfaWQpO1xuICAgICAgICB0aGlzLnVwZGF0ZUNsaWVudHNJZChzZXNzaW9uLmNsaWVudHNfaWQpO1xuICAgICAgICAvLyBVcGRhdGUgdG9rZW4gbGFzdCB0byBtYWtlIHN1cmUgc2Vzc2lvbiBpcyBjb3JyZWN0bHkgY2hlY2tlZFxuICAgICAgICB0aGlzLnVwZGF0ZVRva2VuKHNlc3Npb24udG9rZW4pO1xuXG4gICAgICAgIGlmICh0aGlzLmlzX2Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lcihleHBpcnlfZGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlVXBkYXRlU2Vzc2lvbih7XG4gICAgICAgIHVzZXJfaWQsXG4gICAgICAgIGxvY2F0aW9uX2lkLFxuICAgICAgICBhZGRyZXNzZXNfaWQsXG4gICAgICAgIHNoaXBwaW5nX2lkLFxuICAgICAgICBjbGllbnRzX2lkLFxuICAgICAgICB0b2tlbixcbiAgICB9OiBFc29sdmVTZXNzaW9uVXBkYXRlT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICBpZiAodHlwZW9mIHVzZXJfaWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVVzZXJJZCh1c2VyX2lkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgbG9jYXRpb25faWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUxvY2F0aW9uSWQobG9jYXRpb25faWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBhZGRyZXNzZXNfaWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFkZHJlc3Nlc0lkKGFkZHJlc3Nlc19pZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHNoaXBwaW5nX2lkICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTaGlwcGluZ0lkKHNoaXBwaW5nX2lkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgY2xpZW50c19pZCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2xpZW50c0lkKGNsaWVudHNfaWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiAhPT0gJ3VuZGVmaW5lZCcgJiYgdG9rZW4udHJpbSgpICE9PSAnJykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVUb2tlbih0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTZXNzaW9uKCk6IE9ic2VydmFibGU8RXNvbHZlU2Vzc2lvbj4ge1xuICAgICAgICBjb25zdCBzZXNzaW9uID0ge1xuICAgICAgICAgICAgdG9rZW46IHRoaXMub25Ub2tlblVwZGF0ZSgpLFxuICAgICAgICAgICAgdXNlcl9pZDogdGhpcy5vblVzZXJJZFVwZGF0ZSgpLFxuICAgICAgICAgICAgYWNjZXNzX2xldmVsOiB0aGlzLm9uQWNjZXNzTGV2ZWxVcGRhdGUoKSxcbiAgICAgICAgICAgIGxvY2F0aW9uX2lkOiB0aGlzLm9uTG9jYXRpb25JZFVwZGF0ZSgpLFxuICAgICAgICAgICAgYWRkcmVzc2VzX2lkOiB0aGlzLm9uQWRkcmVzc2VzSWRVcGRhdGUoKSxcbiAgICAgICAgICAgIHNoaXBwaW5nX2lkOiB0aGlzLm9uU2hpcHBpbmdJZFVwZGF0ZSgpLFxuICAgICAgICAgICAgY2xpZW50c19pZDogdGhpcy5vbkNsaWVudHNJZFVwZGF0ZSgpLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHNlc3Npb24pLnBpcGUoXG4gICAgICAgICAgICAvLyBEZWxheXMgdGhlIGVtaXQgb25seSBzbGlnaHRseSBpbmNhc2UgbXVsdGlwbGUgdmFsdWVzIGFyZSBzZXRcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSgxMCksXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFN0b3JhZ2VLZXkoKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHR5cGVvZiB0aGlzLmNvbmZpZy5zZXNzaW9uX3N0b3JhZ2Vfa2V5ID09PSAnc3RyaW5nJyAmJlxuICAgICAgICAgICAgdGhpcy5jb25maWcuc2Vzc2lvbl9zdG9yYWdlX2tleSAhPT0gJydcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2Vfa2V5ID0gdGhpcy5jb25maWcuc2Vzc2lvbl9zdG9yYWdlX2tleTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q2FjaGUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KHRoaXMuc3RvcmFnZV9rZXkpO1xuXG4gICAgICAgIGlmIChkYXRhICE9PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaXNfYnJvd3NlciB8fCAhbG9jYWxTdG9yYWdlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2Vfa2V5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldENhY2hlKGRhdGE6IHN0cmluZywgZXhwaXJhdGlvbl9kYXRlPzogRGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvb2tpZVNlcnZpY2Uuc2V0KHRoaXMuc3RvcmFnZV9rZXksIGRhdGEsIGV4cGlyYXRpb25fZGF0ZSwgJy8nKTtcblxuICAgICAgICBpZiAoIXRoaXMuaXNfYnJvd3NlciB8fCAhbG9jYWxTdG9yYWdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0b3JhZ2Vfa2V5LCBkYXRhKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUNhY2hlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvb2tpZVNlcnZpY2UuZGVsZXRlKHRoaXMuc3RvcmFnZV9rZXksICcvJyk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzX2Jyb3dzZXIgfHwgIWxvY2FsU3RvcmFnZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5zdG9yYWdlX2tleSk7XG4gICAgfVxufVxuIl19