taxtank-core 0.33.80 → 0.33.82

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.
@@ -46,6 +46,7 @@ export var ChartAccountsListEnum;
46
46
  ChartAccountsListEnum[ChartAccountsListEnum["FORESTRY_MANAGED_INVESTMENT_SCHEMES_DEDUCTION"] = 593] = "FORESTRY_MANAGED_INVESTMENT_SCHEMES_DEDUCTION";
47
47
  ChartAccountsListEnum[ChartAccountsListEnum["ASSESSABLE_AMOUNT_CAPPED_DEFINED_BENEFIT"] = 639] = "ASSESSABLE_AMOUNT_CAPPED_DEFINED_BENEFIT";
48
48
  ChartAccountsListEnum[ChartAccountsListEnum["CODE_A_SUPERANNUATION_INCOME_STREAMS_DEATH"] = 640] = "CODE_A_SUPERANNUATION_INCOME_STREAMS_DEATH";
49
+ ChartAccountsListEnum[ChartAccountsListEnum["PRE_TAX_DEDUCTIONS_OTHER"] = 645] = "PRE_TAX_DEDUCTIONS_OTHER";
49
50
  ChartAccountsListEnum[ChartAccountsListEnum["TRANSFER"] = 615] = "TRANSFER";
50
51
  ChartAccountsListEnum[ChartAccountsListEnum["PERSONAL_EXPENSES"] = 628] = "PERSONAL_EXPENSES";
51
52
  ChartAccountsListEnum[ChartAccountsListEnum["PERSONAL_INCOME"] = 630] = "PERSONAL_INCOME";
@@ -58,4 +59,4 @@ export var ChartAccountsListEnum;
58
59
  ChartAccountsListEnum[ChartAccountsListEnum["TELEPHONE"] = 255] = "TELEPHONE";
59
60
  ChartAccountsListEnum[ChartAccountsListEnum["HOME_OFFICE_CLEANING"] = 11871] = "HOME_OFFICE_CLEANING";
60
61
  })(ChartAccountsListEnum || (ChartAccountsListEnum = {}));
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMtbGlzdC5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLWxpc3QuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxxQkEwRFg7QUExREQsV0FBWSxxQkFBcUI7SUFDL0IsdUZBQW1CLENBQUE7SUFDbkIsbUhBQWlDLENBQUE7SUFDakMsb0hBQWtDLENBQUE7SUFDbEMsOEVBQWUsQ0FBQTtJQUNmLDBGQUFxQixDQUFBO0lBQ3JCLHdGQUFvQixDQUFBO0lBQ3BCLG9GQUFrQixDQUFBO0lBQ2xCLDBFQUFhLENBQUE7SUFDYixnR0FBd0IsQ0FBQTtJQUN4QixvR0FBMEIsQ0FBQTtJQUMxQixzR0FBMkIsQ0FBQTtJQUMzQiw2RkFBdUIsQ0FBQTtJQUN2QixtR0FBMEIsQ0FBQTtJQUMxQix1RkFBb0IsQ0FBQTtJQUNwQix5R0FBNkIsQ0FBQTtJQUM3QiwyRkFBc0IsQ0FBQTtJQUN0Qiw2R0FBK0IsQ0FBQTtJQUMvQixpSkFBaUQsQ0FBQTtJQUNqRCwyR0FBOEIsQ0FBQTtJQUM5QixtRkFBa0IsQ0FBQTtJQUNsQixtR0FBMEIsQ0FBQTtJQUMxQixxRkFBbUIsQ0FBQTtJQUNuQixpR0FBeUIsQ0FBQTtJQUN6QiwyRkFBc0IsQ0FBQTtJQUN0QiwyRkFBc0IsQ0FBQTtJQUN0QixtSEFBa0MsQ0FBQTtJQUNsQyxtR0FBMEIsQ0FBQTtJQUMxQixpSUFBeUMsQ0FBQTtJQUN6Qyw2RUFBZSxDQUFBO0lBQ2YscUlBQTJDLENBQUE7SUFDM0MsNkdBQStCLENBQUE7SUFDL0IsdUpBQW9ELENBQUE7SUFDcEQsNkZBQXVCLENBQUE7SUFDdkIseUlBQTZDLENBQUE7SUFDN0MscUdBQTJCLENBQUE7SUFDM0IsNkVBQWUsQ0FBQTtJQUNmLHlKQUFxRCxDQUFBO0lBQ3JELGlIQUFpQyxDQUFBO0lBQ2pDLG1IQUFrQyxDQUFBO0lBQ2xDLCtGQUF3QixDQUFBO0lBQ3hCLG1GQUFrQixDQUFBO0lBQ2xCLGlHQUF5QixDQUFBO0lBQ3pCLCtJQUFnRCxDQUFBO0lBQ2hELHFKQUFtRCxDQUFBO0lBQ25ELDJJQUE4QyxDQUFBO0lBQzlDLCtJQUFnRCxDQUFBO0lBQ2hELDJFQUFjLENBQUE7SUFDZCw2RkFBdUIsQ0FBQTtJQUN2Qix5RkFBcUIsQ0FBQTtJQUNyQixxRkFBbUIsQ0FBQTtJQUNuQix1SUFBNEMsQ0FBQTtJQUM1QyxtRUFBVSxDQUFBO0lBQ1Ysa0ZBQWlCLENBQUE7SUFDakIsMEVBQWEsQ0FBQTtJQUNiLGlHQUF5QixDQUFBO0lBQ3pCLDZFQUFlLENBQUE7SUFDZixxR0FBNEIsQ0FBQTtBQUM5QixDQUFDLEVBMURXLHFCQUFxQixLQUFyQixxQkFBcUIsUUEwRGhDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtIHtcbiAgU0FMQVJZX09SX1dBR0VTID0gMixcbiAgTFVNUF9TVU1fQV9HRU5VSU5FX1JFRFVOREFOQ1kgPSA5LFxuICBMVU1QX1NVTV9BX0FMTF9PVEhFUl9QQVlNRU5UUyA9IDEwLFxuICBMVU1QX1NVTV9CID0gMTEsXG4gIEFUVFJJQlVUQUJMRV9QU0kgPSAyMCxcbiAgSU5URVJFU1RfRUFSTkVEID0gMjIsXG4gIEtNU19UUkFWRUxMRUQgPSAyNCxcbiAgVkVISUNMRVMgPSAyNSxcbiAgQ09NTUVSQ0lBTF9WRUhJQ0xFUyA9IDI2LFxuICBWRUhJQ0xFX0xPQU5fSU5URVJFU1QgPSAzNyxcbiAgVkVISUNMRV9MT0FOX1BSSU5DSVBBTCA9IDM4LFxuICBIT01FX09GRklDRV9IT1VSUyA9IDEwMyxcbiAgUEFSVE5FUlNISVBfRVhQRU5TRVMgPSAxNTYsXG4gIFRSVVNUX0VYUEVOU0VTID0gMTU3LFxuICBJTlRFUkVTVF9DSEFSR0VEX0JZX0FUTyA9IDI3OCxcbiAgTElUSUdBVElPTl9DT1NUUyA9IDI4MCxcbiAgQUNDT1VOVEFOVF9UQVhfQUdFTlRfRkVFUyA9IDI4MixcbiAgVFJBVkVMX0NPU1RTX1RPX1NFRV9ZT1VSX0FDQ09VTlRBTlRfQURWSVNPUiA9IDI4NCxcbiAgQUNDT1VOVElOR19TT0ZUV0FSRV9GRUVTID0gMjg1LFxuICBBRFZJU09SX0ZFRVMgPSAyODYsXG4gIElOQ09NRV9UQVhfVkFSSUFUSU9OID0gMjkyLFxuICBSRU5UQUxfSU5DT01FID0gMjk4LFxuICBPVEhFUl9SRU5UQUxfSU5DT01FID0gMzAwLFxuICBJTlRFUkVTVF9PTl9MT0FOID0gMzAyLFxuICBCVUlMRElOR19BVF9DT1NUID0gMzA0LFxuICBMVU1QX1NVTV9QQVlNRU5UU19JTl9BUlJFQVJTID0gNTE5LFxuICBKVVJZX0FUVEVOREFOQ0VfRkVFUyA9IDUyMSxcbiAgRk9SRUlHTl9FWENIQU5HRV9HQUlOU19OT05fQlVTSU5FU1MgPSA1MjMsXG4gIFJPWUFMVElFUyA9IDUyNSxcbiAgVEFYQUJMRV9TQ0hPTEFSU0hJUFNfQlVSU0FSSUVTX0dSQU5UUyA9IDUyNyxcbiAgU1BFQ0lBTF9QUk9GRVNTSU9OX0lOQ09NRSA9IDUyOSxcbiAgR0FJTl9PTl9TQUxFX09GX1ZFSElDTEVfUFJFVklPVVNMWV9ERVBSRUNJQVRFRCA9IDUzMSxcbiAgQVRPX0lOVEVSRVNUX1BBSUQgPSA1MzMsXG4gIFBFUlNPTkFMX1NVUEVSX0NPTlRSSUJVVElPTlNfREVEVUNUSUJMRSA9IDUzNixcbiAgU09GVFdBUkVfRkVFU19UQVhUQU5LID0gNTQxLFxuICBESVZJREVORFMgPSA1NDIsXG4gIENPREVfQl9TVVBFUkFOTlVBVElPTl9JTkNPTUVfU1RSRUFNU19ESVNBQklMSVRZID0gNTU4LFxuICBBVVNUUkFMSUFOX0FOTlVJVFlfUEFZTUVOVFMgPSA1NTksXG4gIEVNUExPWUVFX1NIQVJFX1NDSEVNRV9JTkNPTUUgPSA1NjQsXG4gIFBBUlRORVJTSElQX0lOQ09NRSA9IDU2NixcbiAgVFJVU1RfSU5DT01FID0gNTY3LFxuICBUQVhfT0ZGU0VUU19OX1JfQV9TID0gNTcxLFxuICBGT1JFU1RSWV9NQU5BR0VEX0lOVkVTVE1FTlRfU0NIRU1FU19JTkNPTUUgPSA1OTAsXG4gIEZPUkVTVFJZX01BTkFHRURfSU5WRVNUTUVOVF9TQ0hFTUVTX0RFRFVDVElPTiA9IDU5MyxcbiAgQVNTRVNTQUJMRV9BTU9VTlRfQ0FQUEVEX0RFRklORURfQkVORUZJVCA9IDYzOSxcbiAgQ09ERV9BX1NVUEVSQU5OVUFUSU9OX0lOQ09NRV9TVFJFQU1TX0RFQVRIID0gNjQwLFxuICBUUkFOU0ZFUiA9IDYxNSxcbiAgUEVSU09OQUxfRVhQRU5TRVMgPSA2MjgsXG4gIFBFUlNPTkFMX0lOQ09NRSA9IDYzMCxcbiAgUExBVEZPUk1fRkVFUyA9IDg1NyxcbiAgQVVTVFJBTElBTl9HT1ZFUk5NRU5UX1NQRUNJQUxfUEFZTUVOVFMgPSA4NzEsXG4gIEZIU1MgPSA4NzIsXG4gIE1PQklMRV9QSE9ORSA9IDkwLFxuICBJTlRFUk5FVCA9IDk0LFxuICBFTEVDVFJJQ0lUWV9BTkRfR0FTID0gMjM0LFxuICBURUxFUEhPTkUgPSAyNTUsXG4gIEhPTUVfT0ZGSUNFX0NMRUFOSU5HID0gMTE4NzEsXG59XG4iXX0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMtbGlzdC5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLWxpc3QuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxxQkEyRFg7QUEzREQsV0FBWSxxQkFBcUI7SUFDL0IsdUZBQW1CLENBQUE7SUFDbkIsbUhBQWlDLENBQUE7SUFDakMsb0hBQWtDLENBQUE7SUFDbEMsOEVBQWUsQ0FBQTtJQUNmLDBGQUFxQixDQUFBO0lBQ3JCLHdGQUFvQixDQUFBO0lBQ3BCLG9GQUFrQixDQUFBO0lBQ2xCLDBFQUFhLENBQUE7SUFDYixnR0FBd0IsQ0FBQTtJQUN4QixvR0FBMEIsQ0FBQTtJQUMxQixzR0FBMkIsQ0FBQTtJQUMzQiw2RkFBdUIsQ0FBQTtJQUN2QixtR0FBMEIsQ0FBQTtJQUMxQix1RkFBb0IsQ0FBQTtJQUNwQix5R0FBNkIsQ0FBQTtJQUM3QiwyRkFBc0IsQ0FBQTtJQUN0Qiw2R0FBK0IsQ0FBQTtJQUMvQixpSkFBaUQsQ0FBQTtJQUNqRCwyR0FBOEIsQ0FBQTtJQUM5QixtRkFBa0IsQ0FBQTtJQUNsQixtR0FBMEIsQ0FBQTtJQUMxQixxRkFBbUIsQ0FBQTtJQUNuQixpR0FBeUIsQ0FBQTtJQUN6QiwyRkFBc0IsQ0FBQTtJQUN0QiwyRkFBc0IsQ0FBQTtJQUN0QixtSEFBa0MsQ0FBQTtJQUNsQyxtR0FBMEIsQ0FBQTtJQUMxQixpSUFBeUMsQ0FBQTtJQUN6Qyw2RUFBZSxDQUFBO0lBQ2YscUlBQTJDLENBQUE7SUFDM0MsNkdBQStCLENBQUE7SUFDL0IsdUpBQW9ELENBQUE7SUFDcEQsNkZBQXVCLENBQUE7SUFDdkIseUlBQTZDLENBQUE7SUFDN0MscUdBQTJCLENBQUE7SUFDM0IsNkVBQWUsQ0FBQTtJQUNmLHlKQUFxRCxDQUFBO0lBQ3JELGlIQUFpQyxDQUFBO0lBQ2pDLG1IQUFrQyxDQUFBO0lBQ2xDLCtGQUF3QixDQUFBO0lBQ3hCLG1GQUFrQixDQUFBO0lBQ2xCLGlHQUF5QixDQUFBO0lBQ3pCLCtJQUFnRCxDQUFBO0lBQ2hELHFKQUFtRCxDQUFBO0lBQ25ELDJJQUE4QyxDQUFBO0lBQzlDLCtJQUFnRCxDQUFBO0lBQ2hELDJHQUE4QixDQUFBO0lBQzlCLDJFQUFjLENBQUE7SUFDZCw2RkFBdUIsQ0FBQTtJQUN2Qix5RkFBcUIsQ0FBQTtJQUNyQixxRkFBbUIsQ0FBQTtJQUNuQix1SUFBNEMsQ0FBQTtJQUM1QyxtRUFBVSxDQUFBO0lBQ1Ysa0ZBQWlCLENBQUE7SUFDakIsMEVBQWEsQ0FBQTtJQUNiLGlHQUF5QixDQUFBO0lBQ3pCLDZFQUFlLENBQUE7SUFDZixxR0FBNEIsQ0FBQTtBQUM5QixDQUFDLEVBM0RXLHFCQUFxQixLQUFyQixxQkFBcUIsUUEyRGhDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtIHtcbiAgU0FMQVJZX09SX1dBR0VTID0gMixcbiAgTFVNUF9TVU1fQV9HRU5VSU5FX1JFRFVOREFOQ1kgPSA5LFxuICBMVU1QX1NVTV9BX0FMTF9PVEhFUl9QQVlNRU5UUyA9IDEwLFxuICBMVU1QX1NVTV9CID0gMTEsXG4gIEFUVFJJQlVUQUJMRV9QU0kgPSAyMCxcbiAgSU5URVJFU1RfRUFSTkVEID0gMjIsXG4gIEtNU19UUkFWRUxMRUQgPSAyNCxcbiAgVkVISUNMRVMgPSAyNSxcbiAgQ09NTUVSQ0lBTF9WRUhJQ0xFUyA9IDI2LFxuICBWRUhJQ0xFX0xPQU5fSU5URVJFU1QgPSAzNyxcbiAgVkVISUNMRV9MT0FOX1BSSU5DSVBBTCA9IDM4LFxuICBIT01FX09GRklDRV9IT1VSUyA9IDEwMyxcbiAgUEFSVE5FUlNISVBfRVhQRU5TRVMgPSAxNTYsXG4gIFRSVVNUX0VYUEVOU0VTID0gMTU3LFxuICBJTlRFUkVTVF9DSEFSR0VEX0JZX0FUTyA9IDI3OCxcbiAgTElUSUdBVElPTl9DT1NUUyA9IDI4MCxcbiAgQUNDT1VOVEFOVF9UQVhfQUdFTlRfRkVFUyA9IDI4MixcbiAgVFJBVkVMX0NPU1RTX1RPX1NFRV9ZT1VSX0FDQ09VTlRBTlRfQURWSVNPUiA9IDI4NCxcbiAgQUNDT1VOVElOR19TT0ZUV0FSRV9GRUVTID0gMjg1LFxuICBBRFZJU09SX0ZFRVMgPSAyODYsXG4gIElOQ09NRV9UQVhfVkFSSUFUSU9OID0gMjkyLFxuICBSRU5UQUxfSU5DT01FID0gMjk4LFxuICBPVEhFUl9SRU5UQUxfSU5DT01FID0gMzAwLFxuICBJTlRFUkVTVF9PTl9MT0FOID0gMzAyLFxuICBCVUlMRElOR19BVF9DT1NUID0gMzA0LFxuICBMVU1QX1NVTV9QQVlNRU5UU19JTl9BUlJFQVJTID0gNTE5LFxuICBKVVJZX0FUVEVOREFOQ0VfRkVFUyA9IDUyMSxcbiAgRk9SRUlHTl9FWENIQU5HRV9HQUlOU19OT05fQlVTSU5FU1MgPSA1MjMsXG4gIFJPWUFMVElFUyA9IDUyNSxcbiAgVEFYQUJMRV9TQ0hPTEFSU0hJUFNfQlVSU0FSSUVTX0dSQU5UUyA9IDUyNyxcbiAgU1BFQ0lBTF9QUk9GRVNTSU9OX0lOQ09NRSA9IDUyOSxcbiAgR0FJTl9PTl9TQUxFX09GX1ZFSElDTEVfUFJFVklPVVNMWV9ERVBSRUNJQVRFRCA9IDUzMSxcbiAgQVRPX0lOVEVSRVNUX1BBSUQgPSA1MzMsXG4gIFBFUlNPTkFMX1NVUEVSX0NPTlRSSUJVVElPTlNfREVEVUNUSUJMRSA9IDUzNixcbiAgU09GVFdBUkVfRkVFU19UQVhUQU5LID0gNTQxLFxuICBESVZJREVORFMgPSA1NDIsXG4gIENPREVfQl9TVVBFUkFOTlVBVElPTl9JTkNPTUVfU1RSRUFNU19ESVNBQklMSVRZID0gNTU4LFxuICBBVVNUUkFMSUFOX0FOTlVJVFlfUEFZTUVOVFMgPSA1NTksXG4gIEVNUExPWUVFX1NIQVJFX1NDSEVNRV9JTkNPTUUgPSA1NjQsXG4gIFBBUlRORVJTSElQX0lOQ09NRSA9IDU2NixcbiAgVFJVU1RfSU5DT01FID0gNTY3LFxuICBUQVhfT0ZGU0VUU19OX1JfQV9TID0gNTcxLFxuICBGT1JFU1RSWV9NQU5BR0VEX0lOVkVTVE1FTlRfU0NIRU1FU19JTkNPTUUgPSA1OTAsXG4gIEZPUkVTVFJZX01BTkFHRURfSU5WRVNUTUVOVF9TQ0hFTUVTX0RFRFVDVElPTiA9IDU5MyxcbiAgQVNTRVNTQUJMRV9BTU9VTlRfQ0FQUEVEX0RFRklORURfQkVORUZJVCA9IDYzOSxcbiAgQ09ERV9BX1NVUEVSQU5OVUFUSU9OX0lOQ09NRV9TVFJFQU1TX0RFQVRIID0gNjQwLFxuICBQUkVfVEFYX0RFRFVDVElPTlNfT1RIRVIgPSA2NDUsXG4gIFRSQU5TRkVSID0gNjE1LFxuICBQRVJTT05BTF9FWFBFTlNFUyA9IDYyOCxcbiAgUEVSU09OQUxfSU5DT01FID0gNjMwLFxuICBQTEFURk9STV9GRUVTID0gODU3LFxuICBBVVNUUkFMSUFOX0dPVkVSTk1FTlRfU1BFQ0lBTF9QQVlNRU5UUyA9IDg3MSxcbiAgRkhTUyA9IDg3MixcbiAgTU9CSUxFX1BIT05FID0gOTAsXG4gIElOVEVSTkVUID0gOTQsXG4gIEVMRUNUUklDSVRZX0FORF9HQVMgPSAyMzQsXG4gIFRFTEVQSE9ORSA9IDI1NSxcbiAgSE9NRV9PRkZJQ0VfQ0xFQU5JTkcgPSAxMTg3MSxcbn1cbiJdfQ==
@@ -7,15 +7,15 @@ import { WorkTransactionForm } from './work-transaction.form';
7
7
  export class WorkIncomeForm extends WorkTransactionForm {
8
8
  constructor(transaction, registeredForGst, allocations) {
9
9
  super(transaction, registeredForGst, allocations, {
10
- netAmount: new UntypedFormControl(transaction.netAmount, Validators.required),
11
10
  tax: new UntypedFormControl({
12
11
  value: transaction.tax,
13
12
  disabled: !transaction.chartAccounts || transaction.chartAccounts.isNRAS(),
14
13
  }, Validators.required),
15
14
  incomeSource: new UntypedFormControl(transaction.incomeSource, [Validators.required, autocompleteValidator()]),
16
15
  });
17
- if (allocations.length) {
18
- this.get('netAmount').disable();
16
+ // @TODO we use amount field as netAmount to avoid extra watcher for amount recalculation
17
+ if (transaction.id) {
18
+ this.get('amount').setValue(transaction.netAmount);
19
19
  }
20
20
  // forbid to edit some fields for allocated transaction
21
21
  if (allocations.length) {
@@ -39,12 +39,6 @@ export class WorkIncomeForm extends WorkTransactionForm {
39
39
  listenEvents() {
40
40
  super.listenEvents();
41
41
  this.watchIncomeSource();
42
- this.watchNetAmount();
43
- }
44
- watchNetAmount() {
45
- this.get('netAmount').valueChanges.subscribe(() => {
46
- this.get('amount').setValue(this.getAmount());
47
- });
48
42
  }
49
43
  watchIncomeSource() {
50
44
  this.get('incomeSource').valueChanges.subscribe((incomeSource) => {
@@ -85,9 +79,12 @@ export class WorkIncomeForm extends WorkTransactionForm {
85
79
  * ie bankTransaction=1000$ with 900$ salary and 100$ tips will create 2 transactions with 900$ and 100$
86
80
  */
87
81
  getAmount() {
88
- return this.get('netAmount').value - new Collection(this.currentValue.transactions)
82
+ return this.get('amount').value - new Collection(this.currentValue.transactions)
89
83
  .filter((t) => t.chartAccounts?.isAdjustmentIncluded())
90
84
  .sumBy('amount');
91
85
  }
86
+ submit(data = {}) {
87
+ return super.submit(Object.assign(data, { amount: this.getAmount() }));
88
+ }
92
89
  }
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1pbmNvbWUuZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9mb3Jtcy90cmFuc2FjdGlvbi93b3JrL3dvcmstaW5jb21lLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFlBQVksR0FHYixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsTUFBTSxPQUFPLGNBQWUsU0FBUSxtQkFBbUI7SUFDckQsWUFBWSxXQUF3QixFQUFFLGdCQUF5QixFQUFFLFdBQW9DO1FBQ25HLEtBQUssQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFO1lBQ2hELFNBQVMsRUFBRSxJQUFJLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM3RSxHQUFHLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQztnQkFDMUIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxHQUFHO2dCQUN0QixRQUFRLEVBQUUsQ0FBQyxXQUFXLENBQUMsYUFBYSxJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO2FBQzNFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN2QixZQUFZLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFB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QzNCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDMUI7WUFFRCxxREFBcUQ7WUFDckQsSUFBSSxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDbkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNwQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO2FBQ2hGLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxDQUFDO2FBQ3RELEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFydEFjY291bnRzLFxuICBJbmNvbWVTb3VyY2UsIFNhbGFyeUZvcmVjYXN0LFxuICBUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25BbGxvY2F0aW9uLFxufSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGF1dG9jb21wbGV0ZVZhbGlkYXRvciB9IGZyb20gJy4uLy4uLy4uL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bSB9IGZyb20gJy4uLy4uLy4uL2RiL0VudW1zL3RyYW5zYWN0aW9uLW9wZXJhdGlvbi5lbnVtJztcbmltcG9ydCB7IFdvcmtUcmFuc2FjdGlvbkZvcm0gfSBmcm9tICcuL3dvcmstdHJhbnNhY3Rpb24uZm9ybSc7XG5cbmV4cG9ydCBjbGFzcyBXb3JrSW5jb21lRm9ybSBleHRlbmRzIFdvcmtUcmFuc2FjdGlvbkZvcm0gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIGNvbnN0cnVjdG9yKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbiwgcmVnaXN0ZXJlZEZvckdzdDogYm9vbGVhbiwgYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbltdKSB7XG4gICAgc3VwZXIodHJhbnNhY3Rpb24sIHJlZ2lzdGVyZWRGb3JHc3QsIGFsbG9jYXRpb25zLCB7XG4gICAgICBuZXRBbW91bnQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodHJhbnNhY3Rpb24ubmV0QW1vdW50LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIHRheDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7XG4gICAgICAgIHZhbHVlOiB0cmFuc2FjdGlvbi50YXgsXG4gICAgICAgIGRpc2FibGVkOiAhdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cyB8fCB0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzLmlzTlJBUygpLFxuICAgICAgfSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBpbmNvbWVTb3VyY2U6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodHJhbnNhY3Rpb24uaW5jb21lU291cmNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgYXV0b2NvbXBsZXRlVmFsaWRhdG9yKCldKSxcbiAgICB9KTtcbiAgICBpZiAoYWxsb2NhdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmdldCgnbmV0QW1vdW50JykuZGlzYWJsZSgpO1xuICAgIH1cblxuICAgIC8vIGZvcmJpZCB0byBlZGl0IHNvbWUgZmllbGRzIGZvciBhbGxvY2F0ZWQgdHJhbnNhY3Rpb25cbiAgICBpZiAoYWxsb2NhdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmdldCgnY2hhcnRBY2NvdW50cycpLmRpc2FibGUoKTtcbiAgICB9XG4gICAgLy8gYWRqdXN0bWVudHMgYWxsb3dlZCBvbmx5IGZvciBzYWxhcnlcbiAgICBpZiAoIXRyYW5zYWN0aW9uLmNoYXJ0QWNjb3VudHM/LmlzU2FsYXJ5KCkpIHtcbiAgICAgIHRoaXMuZ2V0KCd0cmFuc2FjdGlvbnMnKS5kaXNhYmxlKCk7XG4gICAgfVxuICAgIC8vIGFtb3VudCBjaGFuZ2VzIGFyZSBub3QgYXZhaWxhYmxlIGZvciB0cmFuc2FjdGlvbnMgd2l0aCBhbGxvY2F0aW9ucyBvciBkdXJpbmcgYWxsb2NhdGUgcHJvY2Vzc1xuICAgIGlmIChhbGxvY2F0aW9ucy5sZW5ndGggfHwgdHJhbnNhY3Rpb24ub3BlcmF0aW9uID09PSBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0uQUxMT0NBVEUpIHtcbiAgICAgIHRoaXMuZ2V0KCdhbW91bnQnKS5kaXNhYmxlKCk7XG4gICAgfVxuXG4gICAgLy8gcHJlZmlsbCB0YXggdmFsdWUgZm9yIHByZXNlbGVjdGVkIHNhbGFyeSBpbmNvbWUgc291cmNlIGluIGNhc2UgaWYgd2UgaGF2ZSBhdCBsZWFzdCAxIHNhbGFyeUZvcmVjYXN0XG4gICAgaWYgKCF0aGlzLmdldCgndGF4JykudmFsdWUgJiYgdHJhbnNhY3Rpb24uaW5jb21lU291cmNlICYmIHRyYW5zYWN0aW9uLmluY29tZVNvdXJjZS5pc1dvcmtJbmNvbWUoKVxuICAgICAgJiYgdHJhbnNhY3Rpb24uaW5jb21lU291cmNlLnNhbGFyeUZvcmVjYXN0cy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudXBkYXRlVGF4VmFsdWUodHJhbnNhY3Rpb24uaW5jb21lU291cmNlLnNhbGFyeUZvcmVjYXN0c1swXSk7XG4gICAgfVxuXG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpIHtcbiAgICBzdXBlci5saXN0ZW5FdmVudHMoKTtcbiAgICB0aGlzLndhdGNoSW5jb21lU291cmNlKCk7XG4gICAgdGhpcy53YXRjaE5ldEFtb3VudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSB3YXRjaE5ldEFtb3VudCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldCgnbmV0QW1vdW50JykudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmdldCgnYW1vdW50Jykuc2V0VmFsdWUodGhpcy5nZXRBbW91bnQoKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHdhdGNoSW5jb21lU291cmNlKCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0KCdpbmNvbWVTb3VyY2UnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChpbmNvbWVTb3VyY2U6IHN0cmluZyB8IEluY29tZVNvdXJjZSk6IHZvaWQgPT4ge1xuICAgICAgLy8gcHJlZmlsbCBzYWxhcnkgdGF4IHdpdGggaXRzIGluY29tZSBzb3VyY2UgZm9yZWNhc3QgaW4gY2FzZSBpZiB3ZSBoYXZlIGF0IGxlYXN0IDEgc2FsYXJ5Rm9yZWNhc3RcbiAgICAgIGlmIChpbmNvbWVTb3VyY2UgaW5zdGFuY2VvZiBJbmNvbWVTb3VyY2UgJiYgaW5jb21lU291cmNlLmlzV29ya0luY29tZSgpICYmICF0aGlzLmdldCgndGF4JykudmFsdWVcbiAgICAgICAgJiYgaW5jb21lU291cmNlLnNhbGFyeUZvcmVjYXN0cy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVUYXhWYWx1ZShpbmNvbWVTb3VyY2Uuc2FsYXJ5Rm9yZWNhc3RzWzBdKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGF4VmFsdWUoc2FsYXJ5Rm9yZWNhc3Q6IFNhbGFyeUZvcmVjYXN0KTogdm9pZCB7XG4gICAgdGhpcy5nZXQoJ3RheCcpLnNldFZhbHVlKHNhbGFyeUZvcmVjYXN0LnRheFdpdGhoZWxkKTtcbiAgfVxuXG4gIHdhdGNoQ2hhcnRBY2NvdW50cygpOiB2b2lkIHtcbiAgICBzdXBlci53YXRjaENoYXJ0QWNjb3VudHMoKTtcbiAgICB0aGlzLmdldCgnY2hhcnRBY2NvdW50cycpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHMpID0+IHtcbiAgICAgIC8vIHRheCBtYWtlIG5vIHNlbnNlIGZvciBwcmUtcGF5aW5nIHRheCBjYXRlZ29yeVxuICAgICAgaWYgKGNoYXJ0QWNjb3VudHMuaXNOUkFTKCkpIHtcbiAgICAgICAgdGhpcy5nZXQoJ3RheCcpLmRpc2FibGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZ2V0KCd0YXgnKS5lbmFibGUoKTtcbiAgICAgIH1cblxuICAgICAgLy8gYWRqdXN0bWVudHMgcG9zc2libGUgb25seSBmb3Igc2FsYXJ5IGNoYXJ0QWNjb3VudHNcbiAgICAgIGlmIChjaGFydEFjY291bnRzLmlzU2FsYXJ5KCkpIHtcbiAgICAgICAgdGhpcy5nZXQoJ3RyYW5zYWN0aW9ucycpLmVuYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5nZXQoJ3RyYW5zYWN0aW9ucycpLmRpc2FibGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzYWxhcnkgY29tZXMgdG8gYmFua0FjY291bnQgdG9nZXRoZXIgd2l0aCByZWxhdGVkIHRyYW5zYWN0aW9ucyBsaWtlIHRpcHMgKGtpbmQgb2Ygc2FsYXJ5LCBidXQgcmVwb3J0ZWQgaW4gZGlmZmVyZW50IHRheCBzdW1tYXJ5IHNlY3Rpb24pLFxuICAgKiBhZGp1c3RtZW50cyB1c2VkIHRvIGNsYXJpZnkgcmVjZWl2ZWQgcGF5bWVudCBieSBzZXBhcmF0aW5nIGl0IGludG8gbXVsdGlwbGUgdHJhbnNhY3Rpb25zLFxuICAgKiBuZXRBbW91bnQgYWx3YXlzIG1hdGNoIHJlY2VpdmVkIHBheW1lbnQgYW5kIGluY2x1ZGVzIHJlbGF0ZWQgYWRqdXN0bWVudHNcbiAgICogYW1vdW50IGNhbGN1bGF0ZWQgYXMgbmV0QW1vdW50IC0gc2FsYXJ5IGluY2x1ZGVkIGFkanVzdG1lbnRzXG4gICAqIGllIGJhbmtUcmFuc2FjdGlvbj0xMDAwJCB3aXRoIDkwMCQgc2FsYXJ5IGFuZCAxMDAkIHRpcHMgd2lsbCBjcmVhdGUgMiB0cmFuc2FjdGlvbnMgd2l0aCA5MDAkIGFuZCAxMDAkXG4gICAqL1xuICBnZXRBbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXQoJ25ldEFtb3VudCcpLnZhbHVlIC0gbmV3IENvbGxlY3Rpb24odGhpcy5jdXJyZW50VmFsdWUudHJhbnNhY3Rpb25zKVxuICAgICAgLmZpbHRlcigodCkgPT4gdC5jaGFydEFjY291bnRzPy5pc0FkanVzdG1lbnRJbmNsdWRlZCgpKVxuICAgICAgLnN1bUJ5KCdhbW91bnQnKTtcbiAgfVxufVxuIl19
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1pbmNvbWUuZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9mb3Jtcy90cmFuc2FjdGlvbi93b3JrL3dvcmstaW5jb21lLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFlBQVksR0FHYixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsTUFBTSxPQUFPLGNBQWUsU0FBUSxtQkFBbUI7SUFDckQsWUFBWSxXQUF3QixFQUFFLGdCQUF5QixFQUFFLFdBQW9DO1FBQ25HLEtBQUssQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFO1lBQ2hELEdBQUcsRUFBRSxJQUFJLGtCQUFrQixDQUFDO2dCQUMxQixLQUFLLEVBQUUsV0FBVyxDQUFDLEdBQUc7Z0JBQ3RCLFFBQVEsRUFBRSxDQUFDLFdBQVcsQ0FBQyxhQUFhLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7YUFDM0UsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3ZCLFlBQVksRUFBRSxJQUFJLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQztTQUMvRyxDQUFDLENBQUM7UUFDSCx5RkFBeUY7UUFDekYsSUFBSSxXQUFXLENBQUMs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QyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO2FBQzdFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxDQUFDO2FBQ3RELEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWUsRUFBRTtRQUN0QixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYXJ0QWNjb3VudHMsXG4gIEluY29tZVNvdXJjZSwgU2FsYXJ5Rm9yZWNhc3QsXG4gIFRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvbkFsbG9jYXRpb24sXG59IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYXV0b2NvbXBsZXRlVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vLi4vdmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tb3BlcmF0aW9uLmVudW0nO1xuaW1wb3J0IHsgV29ya1RyYW5zYWN0aW9uRm9ybSB9IGZyb20gJy4vd29yay10cmFuc2FjdGlvbi5mb3JtJztcblxuZXhwb3J0IGNsYXNzIFdvcmtJbmNvbWVGb3JtIGV4dGVuZHMgV29ya1RyYW5zYWN0aW9uRm9ybSBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgY29uc3RydWN0b3IodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uLCByZWdpc3RlcmVkRm9yR3N0OiBib29sZWFuLCBhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uW10pIHtcbiAgICBzdXBlcih0cmFuc2FjdGlvbiwgcmVnaXN0ZXJlZEZvckdzdCwgYWxsb2NhdGlvbnMsIHtcbiAgICAgIHRheDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7XG4gICAgICAgIHZhbHVlOiB0cmFuc2FjdGlvbi50YXgsXG4gICAgICAgIGRpc2FibGVkOiAhdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cyB8fCB0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzLmlzTlJBUygpLFxuICAgICAgfSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBpbmNvbWVTb3VyY2U6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodHJhbnNhY3Rpb24uaW5jb21lU291cmNlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgYXV0b2NvbXBsZXRlVmFsaWRhdG9yKCldKSxcbiAgICB9KTtcbiAgICAvLyBAVE9ETyB3ZSB1c2UgYW1vdW50IGZpZWxkIGFzIG5ldEFtb3VudCB0byBhdm9pZCBleHRyYSB3YXRjaGVyIGZvciBhbW91bnQgcmVjYWxjdWxhdGlvblxuICAgIGlmICh0cmFuc2FjdGlvbi5pZCkge1xuICAgICAgdGhpcy5nZXQoJ2Ftb3VudCcpLnNldFZhbHVlKHRyYW5zYWN0aW9uLm5ldEFtb3VudCk7XG4gICAgfVxuXG4gICAgLy8gZm9yYmlkIHRvIGVkaXQgc29tZSBmaWVsZHMgZm9yIGFsbG9jYXRlZCB0cmFuc2FjdGlvblxuICAgIGlmIChhbGxvY2F0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZ2V0KCdjaGFydEFjY291bnRzJykuZGlzYWJsZSgpO1xuICAgIH1cbiAgICAvLyBhZGp1c3RtZW50cyBhbGxvd2VkIG9ubHkgZm9yIHNhbGFyeVxuICAgIGlmICghdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cz8uaXNTYWxhcnkoKSkge1xuICAgICAgdGhpcy5nZXQoJ3RyYW5zYWN0aW9ucycpLmRpc2FibGUoKTtcbiAgICB9XG4gICAgLy8gYW1vdW50IGNoYW5nZXMgYXJlIG5vdCBhdmFpbGFibGUgZm9yIHRyYW5zYWN0aW9ucyB3aXRoIGFsbG9jYXRpb25zIG9yIGR1cmluZyBhbGxvY2F0ZSBwcm9jZXNzXG4gICAgaWYgKGFsbG9jYXRpb25zLmxlbmd0aCB8fCB0cmFuc2FjdGlvbi5vcGVyYXRpb24gPT09IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5BTExPQ0FURSkge1xuICAgICAgdGhpcy5nZXQoJ2Ftb3VudCcpLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICAvLyBwcmVmaWxsIHRheCB2YWx1ZSBmb3IgcHJlc2VsZWN0ZWQgc2FsYXJ5IGluY29tZSBzb3VyY2UgaW4gY2FzZSBpZiB3ZSBoYXZlIGF0IGxlYXN0IDEgc2FsYXJ5Rm9yZWNhc3RcbiAgICBpZiAoIXRoaXMuZ2V0KCd0YXgnKS52YWx1ZSAmJiB0cmFuc2FjdGlvbi5pbmNvbWVTb3VyY2UgJiYgdHJhbnNhY3Rpb24uaW5jb21lU291cmNlLmlzV29ya0luY29tZSgpXG4gICAgICAmJiB0cmFuc2FjdGlvbi5pbmNvbWVTb3VyY2Uuc2FsYXJ5Rm9yZWNhc3RzLmxlbmd0aCkge1xuICAgICAgdGhpcy51cGRhdGVUYXhWYWx1ZSh0cmFuc2FjdGlvbi5pbmNvbWVTb3VyY2Uuc2FsYXJ5Rm9yZWNhc3RzWzBdKTtcbiAgICB9XG5cbiAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICB9XG5cbiAgbGlzdGVuRXZlbnRzKCkge1xuICAgIHN1cGVyLmxpc3RlbkV2ZW50cygpO1xuICAgIHRoaXMud2F0Y2hJbmNvbWVTb3VyY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgd2F0Y2hJbmNvbWVTb3VyY2UoKTogdm9pZCB7XG4gICAgdGhpcy5nZXQoJ2luY29tZVNvdXJjZScpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGluY29tZVNvdXJjZTogc3RyaW5nIHwgSW5jb21lU291cmNlKTogdm9pZCA9PiB7XG4gICAgICAvLyBwcmVmaWxsIHNhbGFyeSB0YXggd2l0aCBpdHMgaW5jb21lIHNvdXJjZSBmb3JlY2FzdCBpbiBjYXNlIGlmIHdlIGhhdmUgYXQgbGVhc3QgMSBzYWxhcnlGb3JlY2FzdFxuICAgICAgaWYgKGluY29tZVNvdXJjZSBpbnN0YW5jZW9mIEluY29tZVNvdXJjZSAmJiBpbmNvbWVTb3VyY2UuaXNXb3JrSW5jb21lKCkgJiYgIXRoaXMuZ2V0KCd0YXgnKS52YWx1ZVxuICAgICAgICAmJiBpbmNvbWVTb3VyY2Uuc2FsYXJ5Rm9yZWNhc3RzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVRheFZhbHVlKGluY29tZVNvdXJjZS5zYWxhcnlGb3JlY2FzdHNbMF0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUYXhWYWx1ZShzYWxhcnlGb3JlY2FzdDogU2FsYXJ5Rm9yZWNhc3QpOiB2b2lkIHtcbiAgICB0aGlzLmdldCgndGF4Jykuc2V0VmFsdWUoc2FsYXJ5Rm9yZWNhc3QudGF4V2l0aGhlbGQpO1xuICB9XG5cbiAgd2F0Y2hDaGFydEFjY291bnRzKCk6IHZvaWQge1xuICAgIHN1cGVyLndhdGNoQ2hhcnRBY2NvdW50cygpO1xuICAgIHRoaXMuZ2V0KCdjaGFydEFjY291bnRzJykudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoY2hhcnRBY2NvdW50czogQ2hhcnRBY2NvdW50cykgPT4ge1xuICAgICAgLy8gdGF4IG1ha2Ugbm8gc2Vuc2UgZm9yIHByZS1wYXlpbmcgdGF4IGNhdGVnb3J5XG4gICAgICBpZiAoY2hhcnRBY2NvdW50cy5pc05SQVMoKSkge1xuICAgICAgICB0aGlzLmdldCgndGF4JykuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5nZXQoJ3RheCcpLmVuYWJsZSgpO1xuICAgICAgfVxuXG4gICAgICAvLyBhZGp1c3RtZW50cyBwb3NzaWJsZSBvbmx5IGZvciBzYWxhcnkgY2hhcnRBY2NvdW50c1xuICAgICAgaWYgKGNoYXJ0QWNjb3VudHMuaXNTYWxhcnkoKSkge1xuICAgICAgICB0aGlzLmdldCgndHJhbnNhY3Rpb25zJykuZW5hYmxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmdldCgndHJhbnNhY3Rpb25zJykuZGlzYWJsZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIHNhbGFyeSBjb21lcyB0byBiYW5rQWNjb3VudCB0b2dldGhlciB3aXRoIHJlbGF0ZWQgdHJhbnNhY3Rpb25zIGxpa2UgdGlwcyAoa2luZCBvZiBzYWxhcnksIGJ1dCByZXBvcnRlZCBpbiBkaWZmZXJlbnQgdGF4IHN1bW1hcnkgc2VjdGlvbiksXG4gICAqIGFkanVzdG1lbnRzIHVzZWQgdG8gY2xhcmlmeSByZWNlaXZlZCBwYXltZW50IGJ5IHNlcGFyYXRpbmcgaXQgaW50byBtdWx0aXBsZSB0cmFuc2FjdGlvbnMsXG4gICAqIG5ldEFtb3VudCBhbHdheXMgbWF0Y2ggcmVjZWl2ZWQgcGF5bWVudCBhbmQgaW5jbHVkZXMgcmVsYXRlZCBhZGp1c3RtZW50c1xuICAgKiBhbW91bnQgY2FsY3VsYXRlZCBhcyBuZXRBbW91bnQgLSBzYWxhcnkgaW5jbHVkZWQgYWRqdXN0bWVudHNcbiAgICogaWUgYmFua1RyYW5zYWN0aW9uPTEwMDAkIHdpdGggOTAwJCBzYWxhcnkgYW5kIDEwMCQgdGlwcyB3aWxsIGNyZWF0ZSAyIHRyYW5zYWN0aW9ucyB3aXRoIDkwMCQgYW5kIDEwMCRcbiAgICovXG4gIGdldEFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldCgnYW1vdW50JykudmFsdWUgLSBuZXcgQ29sbGVjdGlvbih0aGlzLmN1cnJlbnRWYWx1ZS50cmFuc2FjdGlvbnMpXG4gICAgICAuZmlsdGVyKCh0KSA9PiB0LmNoYXJ0QWNjb3VudHM/LmlzQWRqdXN0bWVudEluY2x1ZGVkKCkpXG4gICAgICAuc3VtQnkoJ2Ftb3VudCcpO1xuICB9XG5cbiAgc3VibWl0KGRhdGE6IG9iamVjdCA9IHt9KTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBzdXBlci5zdWJtaXQoT2JqZWN0LmFzc2lnbihkYXRhLCB7IGFtb3VudDogdGhpcy5nZXRBbW91bnQoKSB9KSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { Transaction as TransactionBase } from '../../db/Models/transaction/transaction';
3
3
  import { TransactionTypeEnum } from '../../db/Enums/transaction-type.enum';
4
- import { ChartAccountsAdjustmentIncludedListEnum, ChartAccountsKeepSign, ChartAccountsListEnum, ChartAccountsMetaFieldListEnum, } from '../../db/Enums';
4
+ import { ChartAccountsKeepSign, ChartAccountsListEnum, ChartAccountsMetaFieldListEnum, } from '../../db/Enums';
5
5
  import { TransactionOperationEnum } from '../../db/Enums/transaction-operation.enum';
6
6
  import { TransactionSourceEnum } from '../../db/Enums/transaction-source.enum';
7
7
  import { DepreciationTypeEnum } from '../../db/Enums/depreciation-type.enum';
@@ -160,7 +160,9 @@ export class Transaction extends TransactionBase {
160
160
  return grossAmount;
161
161
  }
162
162
  // included transactions affect parent transaction amount and as a result grossAmount, skip to avoid double sum
163
- const adjustments = new Collection(this.transactions).filter(transaction => ![ChartAccountsAdjustmentIncludedListEnum.FUNDS_OVER_ADJUSTMENT, ChartAccountsAdjustmentIncludedListEnum.LANDLORD_REIMBURSEMENT].includes(transaction.chartAccounts?.id));
163
+ const adjustments = new Collection(this.transactions)
164
+ // @TODO move to enum when there are other exceptions
165
+ .filter(transaction => !transaction.chartAccounts?.isAdjustmentIncluded() && transaction.chartAccounts?.id !== ChartAccountsListEnum.PRE_TAX_DEDUCTIONS_OTHER);
164
166
  const income = adjustments.filter(transaction => transaction.isIncome()).sumBy('amount');
165
167
  const expense = adjustments.filter(transaction => transaction.isExpense()).sumBy('amount', true);
166
168
  // all adjustments except property income increase grossIncome
@@ -239,4 +241,4 @@ __decorate([
239
241
  __decorate([
240
242
  Transform(({ value }) => +value)
241
243
  ], Transaction.prototype, "tax", void 0);
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsV0FBVyxJQUFJLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFDTCx1Q0FBdUMsRUFDdkMscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQiw4QkFBOEIsR0FDL0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMzRixPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFtQyxNQUFNLG1C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SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO2lEQUNTO0FBR2pDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQzs2Q0FDRjtBQUduQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7a0RBQ0c7QUFHN0I7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDO2lEQUNFO0FBRzNCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDOytDQUNPO0FBR3hDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQzs2Q0FDRjtBQUd0QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7eUNBQ047QUFHWDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7eUNBQ047QUFHWDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnREFDUTtBQUcxQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0RBQ0M7QUFHN0I7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDOzZDQUNGO0FBR3ZCO0lBREMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUM7d0NBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHtcbiAgQ2hhcnRBY2NvdW50c0FkanVzdG1lbnRJbmNsdWRlZExpc3RFbnVtLFxuICBDaGFydEFjY291bnRzS2VlcFNpZ24sXG4gIENoYXJ0QWNjb3VudHNMaXN0RW51bSxcbiAgQ2hhcnRBY2NvdW50c01ldGFGaWVsZExpc3RFbnVtLFxufSBmcm9tICcuLi8uLi9kYi9FbnVtcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi1vcGVyYXRpb24uZW51bSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblNvdXJjZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi1zb3VyY2UuZW51bSc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2RlcHJlY2lhdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ2FsY3VsYXRpb25FbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvZGVwcmVjaWF0aW9uLWNhbGN1bGF0aW9uLmVudW0nO1xuaW1wb3J0IHsgVHJhbnNmb3JtLCBUeXBlLCBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uL3Byb3BlcnR5JztcbmltcG9ydCB7IENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMsIENoYXJ0QWNjb3VudHMgfSBmcm9tICcuLi9jaGFydC1hY2NvdW50cyc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2UgfSBmcm9tICcuLi9pbmNvbWUtc291cmNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uTWV0YUZpZWxkIH0gZnJvbSAnLi90cmFuc2FjdGlvbi1tZXRhLWZpZWxkJztcbmltcG9ydCB7IExvYW4gfSBmcm9tICcuLi9sb2FuJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQWxsb2NhdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24tYWxsb2NhdGlvbic7XG5pbXBvcnQgeyBDb2xsZWN0aW9uLCBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uIH0gZnJvbSAnLi4vZGVwcmVjaWF0aW9uJztcbmltcG9ydCB7IEV4cGVuc2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFNvbGVCdXNpbmVzcywgU29sZUludm9pY2VJdGVtIH0gZnJvbSAnLi4vc29sZSc7XG5cbi8vIEBUT0RPIEFsZXg6IHJlZmFjdG9yOiBtb3ZlIGhlcmUgYWxsb2NhdGlvbnMgbWV0aG9kcywgbmV0QW1vdW50ID0gYW1vdW50LCBncm9zc0Ftb3VudCBjYWxjdWxhdGlvbiwgcmVtb3ZlIHVudXNlZCBtZXRob2RzLCBldGMuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2UgaW1wbGVtZW50cyBFeHBlbnNlIHtcbiAgc3RhdGljIGNsYXNzTmFtZSA9ICdUcmFuc2FjdGlvbic7XG4gIC8qKlxuICAgKiBAVE9ETyByZW5hbWUgdG8gY2hpbGRUcmFuc2FjdGlvbnNcbiAgICovXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uKVxuICB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10gPSBbXTtcblxuICBAVHlwZSgoKSA9PiBQcm9wZXJ0eSlcbiAgcHJvcGVydHk6IFByb3BlcnR5O1xuXG4gIEBUeXBlKCgpID0+IENoYXJ0QWNjb3VudHMpXG4gIGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHM7XG5cbiAgQFR5cGUoKCkgPT4gSW5jb21lU291cmNlKVxuICBpbmNvbWVTb3VyY2U6IEluY29tZVNvdXJjZTtcblxuICBAVHlwZSgoKSA9PiBUcmFuc2FjdGlvbk1ldGFGaWVsZClcbiAgbWV0YUZpZWxkczogVHJhbnNhY3Rpb25NZXRhRmllbGRbXSA9IFtdO1xuXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uKVxuICB0cmFuc2ZlcjogVHJhbnNhY3Rpb247XG5cbiAgQFR5cGUoKCkgPT4gTG9hbilcbiAgbG9hbjogTG9hbjtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBkYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uQWxsb2NhdGlvbilcbiAgYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbltdID0gW107XG5cbiAgQFR5cGUoKCkgPT4gU29sZUludm9pY2VJdGVtKVxuICBpbnZvaWNlSXRlbTogU29sZUludm9pY2VJdGVtO1xuXG4gIEBUeXBlKCgpID0+IFNvbGVCdXNpbmVzcylcbiAgYnVzaW5lc3M6IFNvbGVCdXNpbmVzcztcblxuICBAVHJhbnNmb3JtKCh7IHZhbHVlIH0pID0+ICt2YWx1ZSlcbiAgdGF4ID0gMDtcblxuICBvcGVyYXRpb246IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bSA9IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5GSU5EX0FORF9NQVRDSDtcbiAgY2xhaW1QZXJjZW50ID0gMTAwO1xuICBhbW91bnQgPSAwO1xuXG4gIGdldCBpbnZvaWNlSWQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pbnZvaWNlSXRlbT8uaW52b2ljZS5pZDtcbiAgfVxuXG4gIGlzRGViaXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlRW51bS5ERUJJVDtcbiAgfVxuXG4gIGlzQ3JlZGl0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZUVudW0uQ1JFRElUO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG1vdmUgdG8gYmFzZSBjb2xsZWN0aW9uXG4gICAqL1xuICBpc0luY29tZSgpOiBib29sZWFuIHtcbiAgICAvLyBAVE9ETyBub3QgdXNlZFxuICAgIGlmICghdGhpcy5jaGFydEFjY291bnRzKSB7XG4gICAgICByZXR1cm4gdGhpcy5pc0NyZWRpdCgpO1xuICAgIH1cblxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmluY29tZS5pbmNsdWRlcyh0aGlzLmNoYXJ0QWNjb3VudHMuY2F0ZWdvcnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG1vdmUgdG8gYmFzZSBjb2xsZWN0aW9uXG4gICAqL1xuICBpc0V4cGVuc2UoKTogYm9vbGVhbiB7XG4gICAgLy8gQFRPRE8gbm90IHVzZWRcbiAgICBpZiAoIXRoaXMuY2hhcnRBY2NvdW50cykge1xuICAgICAgcmV0dXJuIHRoaXMuaXNEZWJpdCgpO1xuICAgIH1cblxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmV4cGVuc2UuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzLmNhdGVnb3J5KTtcbiAgfVxuXG4gIGlzUGVyc29uYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucGVyc29uYWwuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzLmNhdGVnb3J5KTtcbiAgfVxuXG4gIGlzSW50ZXJlc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnRBY2NvdW50cy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLklOVEVSRVNUX09OX0xPQU47XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJhbnNhY3Rpb24gdHlwZSBpcyB2ZWhpY2xlXG4gICAqL1xuICBpc1ZlaGljbGVUcmFuc2FjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydEFjY291bnRzLmlzVmVoaWNsZUV4cGVuc2UoKTtcbiAgfVxuXG4gIGdldCB0YXhGcmVlQ29tcG9uZW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TWV0YUZpZWxkVmFsdWUoQ2hhcnRBY2NvdW50c01ldGFGaWVsZExpc3RFbnVtLlRBWF9GUkVFX0NPTVBPTkVOVCk7XG4gIH1cblxuICBnZXQgZnJhbmtpbmdDcmVkaXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRNZXRhRmllbGRWYWx1ZShDaGFydEFjY291bnRzTWV0YUZpZWxkTGlzdEVudW0uRlJBTktJTkdfQ1JFRElUKTtcbiAgfVxuXG4gIGdldCBlbGlnaWJsZUZvclJlZHVjdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldE1ldGFGaWVsZFZhbHVlKENoYXJ0QWNjb3VudHNNZXRhRmllbGRMaXN0RW51bS5FTElHSUJMRV9GT1JfUkVEVUNUSU9OKTtcbiAgfVxuXG4gIGdldCB1bnRheGVkRWxlbWVudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldE1ldGFGaWVsZFZhbHVlKENoYXJ0QWNjb3VudHNNZXRhRmllbGRMaXN0RW51bS5VTlRBWEVEX0VMRU1FTlQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRyYW5zYWN0aW9uIHJlY29uY2lsZSBvcGVyYXRpb24gaWYgVFJBTlNGRVJcbiAgICogQFRPRE8gYmFkIHVzYWdlIG9mIGdldCAoYW5kIGFsbCBpcyogbWV0aG9kcyksIGdldHRlciBzaG91bGQgc291bmQgbGlrZSBhIG5vdW5cbiAgICovXG4gIGdldCBpc1RyYW5zZmVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbiA9PT0gVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLlRSQU5TRkVSO1xuICB9XG5cbiAgaXNGaW5kQW5kTWF0Y2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uID09PSBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0uRklORF9BTkRfTUFUQ0g7XG4gIH1cblxuICBnZXQgZGViaXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pc0RlYml0KCkgPyBNYXRoLmFicyh0aGlzLmdyb3NzQW1vdW50V2l0aG91dEdzdCkgOiAwO1xuICB9XG5cbiAgZ2V0IGNyZWRpdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmlzQ3JlZGl0KCkgPyBNYXRoLmFicyh0aGlzLmdyb3NzQW1vdW50V2l0aG91dEdzdCkgOiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB2YWx1ZSBvZiB0cmFuc2FjdGlvbiBtZXRhIGZpZWxkXG4gICAqIEBwYXJhbSBmaWVsZCBmb3Igd2hpY2ggdmFsdWUgc2hvdWxkIGJlIHJldHVybmVkXG4gICAqIEBUb2RvIG1vZGlmeSAnbWV0YUZpZWxkcycgcHJvcGVydHkgZnJvbSBhcnJheSB0byBDb2xsZWN0aW9uXG4gICAqL1xuICBnZXRNZXRhRmllbGRWYWx1ZShmaWVsZDogQ2hhcnRBY2NvdW50c01ldGFGaWVsZExpc3RFbnVtKTogbnVtYmVyIHtcbiAgICByZXR1cm4gK3RoaXMubWV0YUZpZWxkcy5maW5kKCh0cmFuc2FjdGlvbk1ldGFGaWVsZDogVHJhbnNhY3Rpb25NZXRhRmllbGQpOiBib29sZWFuID0+IHRyYW5zYWN0aW9uTWV0YUZpZWxkLmNoYXJ0QWNjb3VudHNNZXRhRmllbGQuaWQgPT09IGZpZWxkKT8udmFsdWUgfHwgMDtcbiAgfVxuXG4gIGlzQ2FzaCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zb3VyY2UgPT09IFRyYW5zYWN0aW9uU291cmNlRW51bS5DQVNIO1xuICB9XG5cbiAgY2FuRmluZEFuZE1hdGNoKGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnBhcmVudFRyYW5zYWN0aW9uXG4gICAgICAmJiAhdGhpcy5pc0Nhc2goKVxuICAgICAgJiYgISh0aGlzLmlzU29sZVRhbmsoKSAmJiB0aGlzLmlzSW5jb21lKCkpXG4gICAgICAmJiB0aGlzLmlzRWRpdGFibGUoKVxuICAgICAgJiYgIXRoaXMuaXNBbGxvY2F0ZWQoYWxsb2NhdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBEZXByZWNpYXRpb24gaW5zdGFuY2UgYmFzZWQgb24gVHJhbnNhY3Rpb25cbiAgICovXG4gIHRvRGVwcmVjaWF0aW9uKCk6IERlcHJlY2lhdGlvbiB7XG4gICAgcmV0dXJuIHBsYWluVG9DbGFzcyhEZXByZWNpYXRpb24sIHtcbiAgICAgIGRhdGU6IHRoaXMuZGF0ZSxcbiAgICAgIGFtb3VudDogTWF0aC5hYnModGhpcy5hbW91bnQpLFxuICAgICAgY2hhcnRBY2NvdW50czogdGhpcy5jaGFydEFjY291bnRzLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICB0eXBlOiB0aGlzLmNoYXJ0QWNjb3VudHMuaXNQcm9wZXJ0eUNhcGl0YWxXb3JrcygpID8gRGVwcmVjaWF0aW9uVHlwZUVudW0uQ0FQSVRBTF9XT1JLUyA6IERlcHJlY2lhdGlvblR5cGVFbnVtLlBMQU5UX0VRVUlQTUVOVCxcbiAgICAgIGNsYWltUGVyY2VudDogdGhpcy5jbGFpbVBlcmNlbnQsXG4gICAgICBwcm9wZXJ0eTogdGhpcy5wcm9wZXJ0eSxcbiAgICAgIGNhbGN1bGF0aW9uOiB0aGlzLnByb3BlcnR5ID8gdGhpcy5wcm9wZXJ0eS5kZXByZWNpYXRpb25DYWxjdWxhdGlvbiA6IERlcHJlY2lhdGlvbkNhbGN1bGF0aW9uRW51bS5QUklNRV9DT1NULFxuICAgICAgdHJhbnNhY3Rpb25zOiBbdGhpc10sXG4gICAgICBidXNpbmVzczogdGhpcy5idXNpbmVzcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0cmFuc2FjdGlvbiBpcyBjb21wbGV0ZWx5IGFsbG9jYXRlZFxuICAgKi9cbiAgaXNBbGxvY2F0ZWQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gTWF0aC5hYnModGhpcy5nZXRBbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnMpKSAtIE1hdGguYWJzKHRoaXMubmV0QW1vdW50KSA+PSAwO1xuICB9XG5cbiAgZ2V0QWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gYWxsb2NhdGlvbnMuZmlsdGVyQnkoJ3RyYW5zYWN0aW9uLmlkJywgdGhpcy5pZCkuc3VtQnkoJ2Ftb3VudCcpO1xuICB9XG5cbiAgZ2V0VW5hbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm5ldEFtb3VudCAtIHRoaXMuZ2V0QWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb3RhbCB0cmFuc2FjdGlvbiBhbW91bnQgaW5jbHVkaW5nIHRheGVzIGFuZCBvdGhlciBhZGRpdGlvbmFsIGFtb3VudHNcbiAgICovXG4gIGdldCBncm9zc0Ftb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdyb3NzQW1vdW50V2l0aG91dEdzdCArIHRoaXMuZ3N0QW1vdW50O1xuICB9XG5cbiAgZ2V0IGdyb3NzQW1vdW50V2l0aG91dEdzdCgpOiBudW1iZXIge1xuICAgIGxldCBncm9zc0Ftb3VudCA9IHRoaXMuYW1vdW50ICsgdGhpcy50YXg7XG4gICAgaWYgKHRoaXMuaXNFeHBlbnNlKCkpIHtcbiAgICAgIHJldHVybiBncm9zc0Ftb3VudDtcbiAgICB9XG5cbiAgICAvLyBpbmNsdWRlZCB0cmFuc2FjdGlvbnMgYWZmZWN0IHBhcmVudCB0cmFuc2FjdGlvbiBhbW91bnQgYW5kIGFzIGEgcmVzdWx0IGdyb3NzQW1vdW50LCBza2lwIHRvIGF2b2lkIGRvdWJsZSBzdW1cbiAgICBjb25zdCBhZGp1c3RtZW50cyA9IG5ldyBDb2xsZWN0aW9uKHRoaXMudHJhbnNhY3Rpb25zKS5maWx0ZXIoXG4gICAgICB0cmFuc2FjdGlvbiA9PiAhW0NoYXJ0QWNjb3VudHNBZGp1c3RtZW50SW5jbHVkZWRMaXN0RW51bS5GVU5EU19PVkVSX0FESlVTVE1FTlQsIENoYXJ0QWNjb3VudHNBZGp1c3RtZW50SW5jbHVkZWRMaXN0RW51bS5MQU5ETE9SRF9SRUlNQlVSU0VNRU5UXS5pbmNsdWRlcyh0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzPy5pZCkpO1xuICAgIGNvbnN0IGluY29tZSA9IGFkanVzdG1lbnRzLmZpbHRlcih0cmFuc2FjdGlvbiA9PiB0cmFuc2FjdGlvbi5pc0luY29tZSgpKS5zdW1CeSgnYW1vdW50Jyk7XG4gICAgY29uc3QgZXhwZW5zZSA9IGFkanVzdG1lbnRzLmZpbHRlcih0cmFuc2FjdGlvbiA9PiB0cmFuc2FjdGlvbi5pc0V4cGVuc2UoKSkuc3VtQnkoJ2Ftb3VudCcsIHRydWUpO1xuICAgIC8vIGFsbCBhZGp1c3RtZW50cyBleGNlcHQgcHJvcGVydHkgaW5jb21lIGluY3JlYXNlIGdyb3NzSW5jb21lXG4gICAgZ3Jvc3NBbW91bnQgKz0gZXhwZW5zZSArICh0aGlzLmlzUHJvcGVydHlUYW5rKCkgPyAtaW5jb21lIDogaW5jb21lKTtcblxuICAgIGlmICh0aGlzLmlzV29ya1RhbmsoKSB8fCB0aGlzLmlzSG9sZGluZ1RhbmsoKSkge1xuICAgICAgZ3Jvc3NBbW91bnQgKz0gdGhpcy5mcmFua2luZ0NyZWRpdCAtIHRoaXMudGF4RnJlZUNvbXBvbmVudCAtIHRoaXMuZWxpZ2libGVGb3JSZWR1Y3Rpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3NzQW1vdW50O1xuICB9XG5cbiAgZ2V0IGdyb3NzQ2xhaW1BbW91bnRXaXRob3V0R3N0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ3Jvc3NBbW91bnRXaXRob3V0R3N0ICogdGhpcy5jbGFpbVJhdGlvO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHZpayBjb25mdXNpbmcgbG9naWMgZGVtYW5kZWQgYnkgTmljb2xlLCB3ZSBuZWVkIGEgYmV0dGVyIHV4IHRvIGZpeCBpdFxuICAgKiBuZXRBbW91bnQgbWF0Y2hlcyByZWNlaXZlZCBwYXltZW50IChiYW5rVHJhbnNhY3Rpb24gYW1vdW50KSwgaW5jbHVkZXMgZ3N0IGFuZCBzYWxhcnkgaW5jbHVkZWQgYWRqdXN0bWVudHNcbiAgICogaWUgdXNlciByZWNlaXZlZCAxMDAwJCBzYWxhcnkgaW5jbHVkaW5nIDEwMCQgdGlwcy4gTmV0QW1vdW50PTEwMDAkLCBhbW91bnQ9OTAwJCwgdGlwcz0xMDAkXG4gICAqL1xuICBnZXQgbmV0QW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIG5ldyBDb2xsZWN0aW9uKHRoaXMudHJhbnNhY3Rpb25zKVxuICAgICAgLmZpbHRlcigodCkgPT4gdC5jaGFydEFjY291bnRzPy5pc0FkanVzdG1lbnRJbmNsdWRlZCgpKVxuICAgICAgLnN1bUJ5KCdhbW91bnQnKSArIHRoaXMuYW1vdW50V2l0aEdzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBtb3N0IG9mIHRoZSB0cmFuc2FjdGlvbnMgY291bGQgaGF2ZSBvbmx5IHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGFtb3VudCBkZXBlbmRzIG9uIGNoYXJ0QWNjb3VudHMsIHNvIHdlIGlnbm9yZVxuICAgKiB1c2VyJ3MgY2hvaWNlIGFuZCB0cmFuc2Zvcm0gYW1vdW50LCBidXQgdGhlcmUgYXJlIGV4Y2VwdGlvbnMgbGlrZSBhZHZhbmNlIChuZWdhdGl2ZSBvciBwb3NpdGl2ZSBhbW91bnQpXG4gICAqL1xuICBpZ25vcmVTaWduKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhKHRoaXMuY2hhcnRBY2NvdW50cz8uaWQgaW4gQ2hhcnRBY2NvdW50c0tlZXBTaWduKTtcbiAgfVxuXG4gIHNldFBhcmVudCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gdGhpcy5jaGFydEFjY291bnRzLm5hbWU7XG4gICAgdGhpcy5kYXRlID0gdHJhbnNhY3Rpb24uZGF0ZTtcbiAgICB0aGlzLmNsYWltUGVyY2VudCA9IHRyYW5zYWN0aW9uLmNsYWltUGVyY2VudDtcbiAgICB0aGlzLnByb3BlcnR5ID0gdHJhbnNhY3Rpb24ucHJvcGVydHk7XG4gICAgdGhpcy5sb2FuID0gdHJhbnNhY3Rpb24ubG9hbjtcbiAgICB0aGlzLmluY29tZVNvdXJjZSA9IHRyYW5zYWN0aW9uLmluY29tZVNvdXJjZTtcbiAgICB0aGlzLmJ1c2luZXNzID0gdHJhbnNhY3Rpb24uYnVzaW5lc3M7XG4gIH1cblxuICBpc0VkaXRhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhQ2hhcnRBY2NvdW50cy5zeXN0ZW1MaXN0LmluY2x1ZGVzKHRoaXMuY2hhcnRBY2NvdW50cy5pZCk7XG4gIH1cbn1cbiJdfQ==
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsV0FBVyxJQUFJLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFFTCxxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLDhCQUE4QixHQUMvQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQW1DLE1BQU0sbUJBQW1CLENBQUM7QUFD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QUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO2lEQUNTO0FBR2pDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQzs2Q0FDRjtBQUduQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7a0RBQ0c7QUFHN0I7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDO2lEQUNFO0FBRzNCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDOytDQUNPO0FBR3hDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQzs2Q0FDRjtBQUd0QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7eUNBQ047QUFHWDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7eUNBQ047QUFHWDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnREFDUTtBQUcxQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0RBQ0M7QUFHN0I7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDOzZDQUNGO0FBR3ZCO0lBREMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUM7d0NBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb24gYXMgVHJhbnNhY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHtcbiAgQ2hhcnRBY2NvdW50c0FkanVzdG1lbnRJbmNsdWRlZExpc3RFbnVtLFxuICBDaGFydEFjY291bnRzS2VlcFNpZ24sXG4gIENoYXJ0QWNjb3VudHNMaXN0RW51bSxcbiAgQ2hhcnRBY2NvdW50c01ldGFGaWVsZExpc3RFbnVtLFxufSBmcm9tICcuLi8uLi9kYi9FbnVtcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi1vcGVyYXRpb24uZW51bSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblNvdXJjZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi1zb3VyY2UuZW51bSc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2RlcHJlY2lhdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ2FsY3VsYXRpb25FbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvZGVwcmVjaWF0aW9uLWNhbGN1bGF0aW9uLmVudW0nO1xuaW1wb3J0IHsgVHJhbnNmb3JtLCBUeXBlLCBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uL3Byb3BlcnR5JztcbmltcG9ydCB7IENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMsIENoYXJ0QWNjb3VudHMgfSBmcm9tICcuLi9jaGFydC1hY2NvdW50cyc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2UgfSBmcm9tICcuLi9pbmNvbWUtc291cmNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uTWV0YUZpZWxkIH0gZnJvbSAnLi90cmFuc2FjdGlvbi1tZXRhLWZpZWxkJztcbmltcG9ydCB7IExvYW4gfSBmcm9tICcuLi9sb2FuJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQWxsb2NhdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24tYWxsb2NhdGlvbic7XG5pbXBvcnQgeyBDb2xsZWN0aW9uLCBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uIH0gZnJvbSAnLi4vZGVwcmVjaWF0aW9uJztcbmltcG9ydCB7IEV4cGVuc2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFNvbGVCdXNpbmVzcywgU29sZUludm9pY2VJdGVtIH0gZnJvbSAnLi4vc29sZSc7XG5cbi8vIEBUT0RPIEFsZXg6IHJlZmFjdG9yOiBtb3ZlIGhlcmUgYWxsb2NhdGlvbnMgbWV0aG9kcywgbmV0QW1vdW50ID0gYW1vdW50LCBncm9zc0Ftb3VudCBjYWxjdWxhdGlvbiwgcmVtb3ZlIHVudXNlZCBtZXRob2RzLCBldGMuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2UgaW1wbGVtZW50cyBFeHBlbnNlIHtcbiAgc3RhdGljIGNsYXNzTmFtZSA9ICdUcmFuc2FjdGlvbic7XG4gIC8qKlxuICAgKiBAVE9ETyByZW5hbWUgdG8gY2hpbGRUcmFuc2FjdGlvbnNcbiAgICovXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uKVxuICB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10gPSBbXTtcblxuICBAVHlwZSgoKSA9PiBQcm9wZXJ0eSlcbiAgcHJvcGVydHk6IFByb3BlcnR5O1xuXG4gIEBUeXBlKCgpID0+IENoYXJ0QWNjb3VudHMpXG4gIGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHM7XG5cbiAgQFR5cGUoKCkgPT4gSW5jb21lU291cmNlKVxuICBpbmNvbWVTb3VyY2U6IEluY29tZVNvdXJjZTtcblxuICBAVHlwZSgoKSA9PiBUcmFuc2FjdGlvbk1ldGFGaWVsZClcbiAgbWV0YUZpZWxkczogVHJhbnNhY3Rpb25NZXRhRmllbGRbXSA9IFtdO1xuXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uKVxuICB0cmFuc2ZlcjogVHJhbnNhY3Rpb247XG5cbiAgQFR5cGUoKCkgPT4gTG9hbilcbiAgbG9hbjogTG9hbjtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBkYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uQWxsb2NhdGlvbilcbiAgYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbltdID0gW107XG5cbiAgQFR5cGUoKCkgPT4gU29sZUludm9pY2VJdGVtKVxuICBpbnZvaWNlSXRlbTogU29sZUludm9pY2VJdGVtO1xuXG4gIEBUeXBlKCgpID0+IFNvbGVCdXNpbmVzcylcbiAgYnVzaW5lc3M6IFNvbGVCdXNpbmVzcztcblxuICBAVHJhbnNmb3JtKCh7IHZhbHVlIH0pID0+ICt2YWx1ZSlcbiAgdGF4ID0gMDtcblxuICBvcGVyYXRpb246IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bSA9IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5GSU5EX0FORF9NQVRDSDtcbiAgY2xhaW1QZXJjZW50ID0gMTAwO1xuICBhbW91bnQgPSAwO1xuXG4gIGdldCBpbnZvaWNlSWQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pbnZvaWNlSXRlbT8uaW52b2ljZS5pZDtcbiAgfVxuXG4gIGlzRGViaXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlRW51bS5ERUJJVDtcbiAgfVxuXG4gIGlzQ3JlZGl0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZUVudW0uQ1JFRElUO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG1vdmUgdG8gYmFzZSBjb2xsZWN0aW9uXG4gICAqL1xuICBpc0luY29tZSgpOiBib29sZWFuIHtcbiAgICAvLyBAVE9ETyBub3QgdXNlZFxuICAgIGlmICghdGhpcy5jaGFydEFjY291bnRzKSB7XG4gICAgICByZXR1cm4gdGhpcy5pc0NyZWRpdCgpO1xuICAgIH1cblxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmluY29tZS5pbmNsdWRlcyh0aGlzLmNoYXJ0QWNjb3VudHMuY2F0ZWdvcnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG1vdmUgdG8gYmFzZSBjb2xsZWN0aW9uXG4gICAqL1xuICBpc0V4cGVuc2UoKTogYm9vbGVhbiB7XG4gICAgLy8gQFRPRE8gbm90IHVzZWRcbiAgICBpZiAoIXRoaXMuY2hhcnRBY2NvdW50cykge1xuICAgICAgcmV0dXJuIHRoaXMuaXNEZWJpdCgpO1xuICAgIH1cblxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmV4cGVuc2UuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzLmNhdGVnb3J5KTtcbiAgfVxuXG4gIGlzUGVyc29uYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucGVyc29uYWwuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzLmNhdGVnb3J5KTtcbiAgfVxuXG4gIGlzSW50ZXJlc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnRBY2NvdW50cy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLklOVEVSRVNUX09OX0xPQU47XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJhbnNhY3Rpb24gdHlwZSBpcyB2ZWhpY2xlXG4gICAqL1xuICBpc1ZlaGljbGVUcmFuc2FjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydEFjY291bnRzLmlzVmVoaWNsZUV4cGVuc2UoKTtcbiAgfVxuXG4gIGdldCB0YXhGcmVlQ29tcG9uZW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TWV0YUZpZWxkVmFsdWUoQ2hhcnRBY2NvdW50c01ldGFGaWVsZExpc3RFbnVtLlRBWF9GUkVFX0NPTVBPTkVOVCk7XG4gIH1cblxuICBnZXQgZnJhbmtpbmdDcmVkaXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRNZXRhRmllbGRWYWx1ZShDaGFydEFjY291bnRzTWV0YUZpZWxkTGlzdEVudW0uRlJBTktJTkdfQ1JFRElUKTtcbiAgfVxuXG4gIGdldCBlbGlnaWJsZUZvclJlZHVjdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldE1ldGFGaWVsZFZhbHVlKENoYXJ0QWNjb3VudHNNZXRhRmllbGRMaXN0RW51bS5FTElHSUJMRV9GT1JfUkVEVUNUSU9OKTtcbiAgfVxuXG4gIGdldCB1bnRheGVkRWxlbWVudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldE1ldGFGaWVsZFZhbHVlKENoYXJ0QWNjb3VudHNNZXRhRmllbGRMaXN0RW51bS5VTlRBWEVEX0VMRU1FTlQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRyYW5zYWN0aW9uIHJlY29uY2lsZSBvcGVyYXRpb24gaWYgVFJBTlNGRVJcbiAgICogQFRPRE8gYmFkIHVzYWdlIG9mIGdldCAoYW5kIGFsbCBpcyogbWV0aG9kcyksIGdldHRlciBzaG91bGQgc291bmQgbGlrZSBhIG5vdW5cbiAgICovXG4gIGdldCBpc1RyYW5zZmVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbiA9PT0gVHJhbnNhY3Rpb25PcGVyYXRpb25FbnVtLlRSQU5TRkVSO1xuICB9XG5cbiAgaXNGaW5kQW5kTWF0Y2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uID09PSBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0uRklORF9BTkRfTUFUQ0g7XG4gIH1cblxuICBnZXQgZGViaXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pc0RlYml0KCkgPyBNYXRoLmFicyh0aGlzLmdyb3NzQW1vdW50V2l0aG91dEdzdCkgOiAwO1xuICB9XG5cbiAgZ2V0IGNyZWRpdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmlzQ3JlZGl0KCkgPyBNYXRoLmFicyh0aGlzLmdyb3NzQW1vdW50V2l0aG91dEdzdCkgOiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB2YWx1ZSBvZiB0cmFuc2FjdGlvbiBtZXRhIGZpZWxkXG4gICAqIEBwYXJhbSBmaWVsZCBmb3Igd2hpY2ggdmFsdWUgc2hvdWxkIGJlIHJldHVybmVkXG4gICAqIEBUb2RvIG1vZGlmeSAnbWV0YUZpZWxkcycgcHJvcGVydHkgZnJvbSBhcnJheSB0byBDb2xsZWN0aW9uXG4gICAqL1xuICBnZXRNZXRhRmllbGRWYWx1ZShmaWVsZDogQ2hhcnRBY2NvdW50c01ldGFGaWVsZExpc3RFbnVtKTogbnVtYmVyIHtcbiAgICByZXR1cm4gK3RoaXMubWV0YUZpZWxkcy5maW5kKCh0cmFuc2FjdGlvbk1ldGFGaWVsZDogVHJhbnNhY3Rpb25NZXRhRmllbGQpOiBib29sZWFuID0+IHRyYW5zYWN0aW9uTWV0YUZpZWxkLmNoYXJ0QWNjb3VudHNNZXRhRmllbGQuaWQgPT09IGZpZWxkKT8udmFsdWUgfHwgMDtcbiAgfVxuXG4gIGlzQ2FzaCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zb3VyY2UgPT09IFRyYW5zYWN0aW9uU291cmNlRW51bS5DQVNIO1xuICB9XG5cbiAgY2FuRmluZEFuZE1hdGNoKGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnBhcmVudFRyYW5zYWN0aW9uXG4gICAgICAmJiAhdGhpcy5pc0Nhc2goKVxuICAgICAgJiYgISh0aGlzLmlzU29sZVRhbmsoKSAmJiB0aGlzLmlzSW5jb21lKCkpXG4gICAgICAmJiB0aGlzLmlzRWRpdGFibGUoKVxuICAgICAgJiYgIXRoaXMuaXNBbGxvY2F0ZWQoYWxsb2NhdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBEZXByZWNpYXRpb24gaW5zdGFuY2UgYmFzZWQgb24gVHJhbnNhY3Rpb25cbiAgICovXG4gIHRvRGVwcmVjaWF0aW9uKCk6IERlcHJlY2lhdGlvbiB7XG4gICAgcmV0dXJuIHBsYWluVG9DbGFzcyhEZXByZWNpYXRpb24sIHtcbiAgICAgIGRhdGU6IHRoaXMuZGF0ZSxcbiAgICAgIGFtb3VudDogTWF0aC5hYnModGhpcy5hbW91bnQpLFxuICAgICAgY2hhcnRBY2NvdW50czogdGhpcy5jaGFydEFjY291bnRzLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICB0eXBlOiB0aGlzLmNoYXJ0QWNjb3VudHMuaXNQcm9wZXJ0eUNhcGl0YWxXb3JrcygpID8gRGVwcmVjaWF0aW9uVHlwZUVudW0uQ0FQSVRBTF9XT1JLUyA6IERlcHJlY2lhdGlvblR5cGVFbnVtLlBMQU5UX0VRVUlQTUVOVCxcbiAgICAgIGNsYWltUGVyY2VudDogdGhpcy5jbGFpbVBlcmNlbnQsXG4gICAgICBwcm9wZXJ0eTogdGhpcy5wcm9wZXJ0eSxcbiAgICAgIGNhbGN1bGF0aW9uOiB0aGlzLnByb3BlcnR5ID8gdGhpcy5wcm9wZXJ0eS5kZXByZWNpYXRpb25DYWxjdWxhdGlvbiA6IERlcHJlY2lhdGlvbkNhbGN1bGF0aW9uRW51bS5QUklNRV9DT1NULFxuICAgICAgdHJhbnNhY3Rpb25zOiBbdGhpc10sXG4gICAgICBidXNpbmVzczogdGhpcy5idXNpbmVzcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0cmFuc2FjdGlvbiBpcyBjb21wbGV0ZWx5IGFsbG9jYXRlZFxuICAgKi9cbiAgaXNBbGxvY2F0ZWQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gTWF0aC5hYnModGhpcy5nZXRBbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnMpKSAtIE1hdGguYWJzKHRoaXMubmV0QW1vdW50KSA+PSAwO1xuICB9XG5cbiAgZ2V0QWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gYWxsb2NhdGlvbnMuZmlsdGVyQnkoJ3RyYW5zYWN0aW9uLmlkJywgdGhpcy5pZCkuc3VtQnkoJ2Ftb3VudCcpO1xuICB9XG5cbiAgZ2V0VW5hbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm5ldEFtb3VudCAtIHRoaXMuZ2V0QWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb3RhbCB0cmFuc2FjdGlvbiBhbW91bnQgaW5jbHVkaW5nIHRheGVzIGFuZCBvdGhlciBhZGRpdGlvbmFsIGFtb3VudHNcbiAgICovXG4gIGdldCBncm9zc0Ftb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdyb3NzQW1vdW50V2l0aG91dEdzdCArIHRoaXMuZ3N0QW1vdW50O1xuICB9XG5cbiAgZ2V0IGdyb3NzQW1vdW50V2l0aG91dEdzdCgpOiBudW1iZXIge1xuICAgIGxldCBncm9zc0Ftb3VudCA9IHRoaXMuYW1vdW50ICsgdGhpcy50YXg7XG4gICAgaWYgKHRoaXMuaXNFeHBlbnNlKCkpIHtcbiAgICAgIHJldHVybiBncm9zc0Ftb3VudDtcbiAgICB9XG5cbiAgICAvLyBpbmNsdWRlZCB0cmFuc2FjdGlvbnMgYWZmZWN0IHBhcmVudCB0cmFuc2FjdGlvbiBhbW91bnQgYW5kIGFzIGEgcmVzdWx0IGdyb3NzQW1vdW50LCBza2lwIHRvIGF2b2lkIGRvdWJsZSBzdW1cbiAgICBjb25zdCBhZGp1c3RtZW50cyA9IG5ldyBDb2xsZWN0aW9uKHRoaXMudHJhbnNhY3Rpb25zKVxuICAgICAgLy8gQFRPRE8gbW92ZSB0byBlbnVtIHdoZW4gdGhlcmUgYXJlIG90aGVyIGV4Y2VwdGlvbnNcbiAgICAgIC5maWx0ZXIodHJhbnNhY3Rpb24gPT4gIXRyYW5zYWN0aW9uLmNoYXJ0QWNjb3VudHM/LmlzQWRqdXN0bWVudEluY2x1ZGVkKCkgJiYgdHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cz8uaWQgIT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5QUkVfVEFYX0RFRFVDVElPTlNfT1RIRVIpO1xuXG4gICAgY29uc3QgaW5jb21lID0gYWRqdXN0bWVudHMuZmlsdGVyKHRyYW5zYWN0aW9uID0+IHRyYW5zYWN0aW9uLmlzSW5jb21lKCkpLnN1bUJ5KCdhbW91bnQnKTtcbiAgICBjb25zdCBleHBlbnNlID0gYWRqdXN0bWVudHMuZmlsdGVyKHRyYW5zYWN0aW9uID0+IHRyYW5zYWN0aW9uLmlzRXhwZW5zZSgpKS5zdW1CeSgnYW1vdW50JywgdHJ1ZSk7XG4gICAgLy8gYWxsIGFkanVzdG1lbnRzIGV4Y2VwdCBwcm9wZXJ0eSBpbmNvbWUgaW5jcmVhc2UgZ3Jvc3NJbmNvbWVcbiAgICBncm9zc0Ftb3VudCArPSBleHBlbnNlICsgKHRoaXMuaXNQcm9wZXJ0eVRhbmsoKSA/IC1pbmNvbWUgOiBpbmNvbWUpO1xuXG4gICAgaWYgKHRoaXMuaXNXb3JrVGFuaygpIHx8IHRoaXMuaXNIb2xkaW5nVGFuaygpKSB7XG4gICAgICBncm9zc0Ftb3VudCArPSB0aGlzLmZyYW5raW5nQ3JlZGl0IC0gdGhpcy50YXhGcmVlQ29tcG9uZW50IC0gdGhpcy5lbGlnaWJsZUZvclJlZHVjdGlvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gZ3Jvc3NBbW91bnQ7XG4gIH1cblxuICBnZXQgZ3Jvc3NDbGFpbUFtb3VudFdpdGhvdXRHc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5ncm9zc0Ftb3VudFdpdGhvdXRHc3QgKiB0aGlzLmNsYWltUmF0aW87XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gdmlrIGNvbmZ1c2luZyBsb2dpYyBkZW1hbmRlZCBieSBOaWNvbGUsIHdlIG5lZWQgYSBiZXR0ZXIgdXggdG8gZml4IGl0XG4gICAqIG5ldEFtb3VudCBtYXRjaGVzIHJlY2VpdmVkIHBheW1lbnQgKGJhbmtUcmFuc2FjdGlvbiBhbW91bnQpLCBpbmNsdWRlcyBnc3QgYW5kIHNhbGFyeSBpbmNsdWRlZCBhZGp1c3RtZW50c1xuICAgKiBpZSB1c2VyIHJlY2VpdmVkIDEwMDAkIHNhbGFyeSBpbmNsdWRpbmcgMTAwJCB0aXBzLiBOZXRBbW91bnQ9MTAwMCQsIGFtb3VudD05MDAkLCB0aXBzPTEwMCRcbiAgICovXG4gIGdldCBuZXRBbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbmV3IENvbGxlY3Rpb24odGhpcy50cmFuc2FjdGlvbnMpXG4gICAgICAuZmlsdGVyKCh0KSA9PiB0LmNoYXJ0QWNjb3VudHM/LmlzQWRqdXN0bWVudEluY2x1ZGVkKCkpXG4gICAgICAuc3VtQnkoJ2Ftb3VudCcpICsgdGhpcy5hbW91bnRXaXRoR3N0O1xuICB9XG5cbiAgLyoqXG4gICAqIG1vc3Qgb2YgdGhlIHRyYW5zYWN0aW9ucyBjb3VsZCBoYXZlIG9ubHkgcG9zaXRpdmUgb3IgbmVnYXRpdmUgYW1vdW50IGRlcGVuZHMgb24gY2hhcnRBY2NvdW50cywgc28gd2UgaWdub3JlXG4gICAqIHVzZXIncyBjaG9pY2UgYW5kIHRyYW5zZm9ybSBhbW91bnQsIGJ1dCB0aGVyZSBhcmUgZXhjZXB0aW9ucyBsaWtlIGFkdmFuY2UgKG5lZ2F0aXZlIG9yIHBvc2l0aXZlIGFtb3VudClcbiAgICovXG4gIGlnbm9yZVNpZ24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEodGhpcy5jaGFydEFjY291bnRzPy5pZCBpbiBDaGFydEFjY291bnRzS2VlcFNpZ24pO1xuICB9XG5cbiAgc2V0UGFyZW50KHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSB0aGlzLmNoYXJ0QWNjb3VudHMubmFtZTtcbiAgICB0aGlzLmRhdGUgPSB0cmFuc2FjdGlvbi5kYXRlO1xuICAgIHRoaXMuY2xhaW1QZXJjZW50ID0gdHJhbnNhY3Rpb24uY2xhaW1QZXJjZW50O1xuICAgIHRoaXMucHJvcGVydHkgPSB0cmFuc2FjdGlvbi5wcm9wZXJ0eTtcbiAgICB0aGlzLmxvYW4gPSB0cmFuc2FjdGlvbi5sb2FuO1xuICAgIHRoaXMuaW5jb21lU291cmNlID0gdHJhbnNhY3Rpb24uaW5jb21lU291cmNlO1xuICAgIHRoaXMuYnVzaW5lc3MgPSB0cmFuc2FjdGlvbi5idXNpbmVzcztcbiAgfVxuXG4gIGlzRWRpdGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFDaGFydEFjY291bnRzLnN5c3RlbUxpc3QuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzLmlkKTtcbiAgfVxufVxuIl19
@@ -1,6 +1,5 @@
1
1
  import { Inject, Injectable } from '@angular/core';
2
- import { throwError } from 'rxjs';
3
- import { catchError, map } from 'rxjs/operators';
2
+ import { map } from 'rxjs/operators';
4
3
  import { plainToClass } from 'class-transformer';
5
4
  import { RestService } from '../../rest';
6
5
  import { AppEvent, AppEventTypeEnum, ClientInvite } from '../../../../models';
@@ -14,6 +13,7 @@ export class ClientInviteService extends RestService {
14
13
  this.endpointUri = 'client-invites';
15
14
  this.collectionClass = ClientInviteCollection;
16
15
  this.modelClass = ClientInvite;
16
+ this.useBackendError = true;
17
17
  this.listenEvents();
18
18
  }
19
19
  listenEvents() {
@@ -70,16 +70,7 @@ export class ClientInviteService extends RestService {
70
70
  * Send invitation from client to firm
71
71
  */
72
72
  inviteFirmByUser(invite) {
73
- return super.post(invite, `${this.environment.apiV2}/firm-invites`)
74
- .pipe(catchError((error) => {
75
- if (error.error.email) {
76
- this.toastService.error(error.error.email[0]);
77
- }
78
- else {
79
- this.toastService.error(error.error);
80
- }
81
- return throwError(error);
82
- }));
73
+ return super.post(invite, `${this.environment.apiV2}/firm-invites`);
83
74
  }
84
75
  listenNotifications() {
85
76
  this.eventDispatcherService.on(AppEventTypeEnum.NOTIFICATION_ADDED).subscribe((notification) => {
@@ -110,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
110
101
  type: Inject,
111
102
  args: ['environment']
112
103
  }] }] });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWludml0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvZmlybS9jbGllbnQtaW52aXRlL2NsaWVudC1pbnZpdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQWdCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7O0FBS3ZGLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUFtRTtJQUsxRyxZQUE2QyxXQUFnQjtRQUMzRCxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFEd0IsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFKbkQsZ0JBQVcsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxvQkFBZSxHQUFrQyxzQkFBc0IsQ0FBQztRQUN4RSxlQUFVLEdBQXdCLFlBQVksQ0FBQztRQUk3QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7OztPQUdHO0lB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O1FBQ3pCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUEwQixFQUFFLEVBQUU7WUFDM0csTUFBTSxNQUFNLEdBQUc7Z0JBQ2IscUJBQXFCLENBQUMsYUFBYTtnQkFDbkMscUJBQXFCLENBQUMsb0JBQW9CO2dCQUMxQyxxQkFBcUIsQ0FBQyxvQkFBb0I7Z0JBQzFDLHFCQUFxQixDQUFDLFdBQVc7Z0JBQ2pDLHFCQUFxQixDQUFDLHNCQUFzQjtnQkFDNUMscUJBQXFCLENBQUMsc0JBQXNCO2dCQUM1QyxxQkFBcUIsQ0FBQyx3QkFBd0I7YUFDL0MsQ0FBQztZQUVGLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNuRSw4Q0FBOEM7Z0JBQzlDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FoSFUsbUJBQW1CLGtCQUtWLGFBQWE7bUhBTHRCLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNYyxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENsaWVudEludml0ZSBhcyBDbGllbnRJbnZpdGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzL2Zpcm0vY2xpZW50LWludml0ZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3Jlc3QnO1xuaW1wb3J0IHsgQXBwRXZlbnQsIEFwcEV2ZW50VHlwZUVudW0sIENsaWVudEludml0ZSwgTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDbGllbnRJbnZpdGVDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBVc2VyRXZlbnRUeXBlVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtdHlwZS5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ2xpZW50SW52aXRlU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPENsaWVudEludml0ZUJhc2UsIENsaWVudEludml0ZSwgQ2xpZW50SW52aXRlQ29sbGVjdGlvbj4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIHByb3RlY3RlZCBlbmRwb2ludFVyaSA9ICdjbGllbnQtaW52aXRlcyc7XG4gIGNvbGxlY3Rpb25DbGFzczogdHlwZW9mIENsaWVudEludml0ZUNvbGxlY3Rpb24gPSBDbGllbnRJbnZpdGVDb2xsZWN0aW9uO1xuICBtb2RlbENsYXNzOiB0eXBlb2YgQ2xpZW50SW52aXRlID0gQ2xpZW50SW52aXRlO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnkpIHtcbiAgICBzdXBlcihlbnZpcm9ubWVudCk7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpIHtcbiAgICB0aGlzLmxpc3Rlbk5vdGlmaWNhdGlvbnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgaW52aXRlIHdoaWNoIGVtcGxveWVlIGlzIFRheFRhbmsgQWR2aXNvclxuICAgKiBAVE9ETyBtb3ZlIHRvIGNvbGxlY3Rpb24/IGJ1dCB3ZSBuZWVkIHRvIGluamVjdCBlbnZpcm9tZW50XG4gICAqL1xuICBnZXRUVEFkdmlzb3IoKTogT2JzZXJ2YWJsZTxDbGllbnRJbnZpdGU+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKFxuICAgICAgbWFwKChpbnZpdGVzOiBDbGllbnRJbnZpdGVDb2xsZWN0aW9uKSA9PiBpbnZpdGVzLmZpbmRCeSgnZW1wbG95ZWUuZW1haWwnLCB0aGlzLmVudmlyb25tZW50LnR0QWR2aXNvcikpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgY2xpZW50cyBmcm9tIENTViBmaWxlXG4gICAqL1xuICBpbXBvcnQoZmlsZTogRmlsZSk6IE9ic2VydmFibGU8Q2xpZW50SW52aXRlW10+IHtcbiAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcblxuICAgIC8vIGNhbnQgdXNlIHBhcmVudCBtZXRob2QgYmVjYXVzZSBvZiBkaWZmZXJlbnQgcGFyYW1ldGVyc1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmFwaVVybH0vaW1wb3J0YCwgZm9ybURhdGEpLnBpcGUoXG4gICAgICBtYXAoKGNsaWVudEludml0ZTogQ2xpZW50SW52aXRlW10pID0+IGNsaWVudEludml0ZSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjY2VwdCBjbGllbnQgaW52aXRhdGlvbiBmcm9tIGZpcm0gdG8gdXNlclxuICAgKi9cbiAgYWNjZXB0KGludml0ZTogQ2xpZW50SW52aXRlKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgLy8gY2FudCB1c2UgcGFyZW50IG1ldGhvZCBiZWNhdXNlIG9mIGN1c3RvbSBzcGVjaWZpYyBoYW5kbGVyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5hcGlVcmx9LyR7aW52aXRlLmlkfS9hY2NlcHRgLCBpbnZpdGUpLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAvLyBAVE9ETyByZW1vdmUgd2hlbiBUYXhSZXZpZXdTZXJ2aWNlIHJlZmFjdG9yZWQgd2l0aCB0aGUgbmV3IHJlc3QgYW5kIHVzZSB0aGVyZSBsaXN0ZW5DU0UgaW5zdGVhZFxuICAgICAgICAvLyBUYXhSZXZpZXdTZXJ2aWNlIGlzIGxpc3RlbmluZyBjbGllbnQgaW52aXRlcyBhY2NlcHRpb24uIFdpdGggdGhlIG5ldyByZXN0IHdlIGFyZSB1c2luZyBsaXN0ZW5DU0UgbWV0aG9kLCBidXQgb2xkIHJlc3QgZG9lcyBub3QgaGF2ZSB0aGlzIG1ldGhvZC5cbiAgICAgICAgLy8gV2UgbmVlZCB0byByZWZhY3RvciBUYXhSZXZpZXdTZXJ2aWNlIHdpdGggbmV3IHJlc3QgZmlyc3QsIHRoZW4gd2UgY2FuIGxpc3RlbkNTRSBhbmQgcmVtb3ZlIG1hbnVhbCBldmVudHNcbiAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLkNMSUVOVF9JTlZJVEVfQUNDRVBURUQsIG51bGwpKTtcblxuICAgICAgICAvLyB0aGlzLmhhbmRsZVJlc3BvbnNlKFtpbnZpdGVdLCAnZGVsZXRlJyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVqZWN0IGNsaWVudCBpbnZpdGF0aW9uIGZyb20gZmlybSB0byB1c2VyXG4gICAqL1xuICByZWplY3QoaW52aXRlOiBDbGllbnRJbnZpdGUpOiBPYnNlcnZhYmxlPENsaWVudEludml0ZT4ge1xuICAgIHJldHVybiBzdXBlci5wdXQoaW52aXRlLCBgJHt0aGlzLmFwaVVybH0vJHtpbnZpdGUuaWR9L3JlamVjdGApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2VuZCBpbnZpdGF0aW9uIGZyb20gZmlybSB0byBjbGllbnRcbiAgICovXG4gIHJlc2VuZChpbnZpdGU6IENsaWVudEludml0ZSk6IE9ic2VydmFibGU8Q2xpZW50SW52aXRlPiB7XG4gICAgLy8gY2FudCB1c2UgcGFyZW50IG1ldGhvZCBiZWNhdXNlIG9mIGN1c3RvbSBzcGVjaWZpYyBoYW5kbGVyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5hcGlVcmx9LyR7aW52aXRlLmlkfS9yZXNlbmRgLCB7fSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGludml0ZUJhc2U6IENsaWVudEludml0ZUJhc2UpID0+IHtcbiAgICAgICAgICBjb25zdCByZXNlbnRJbnZpdGUgPSBwbGFpblRvQ2xhc3MoQ2xpZW50SW52aXRlLCBpbnZpdGVCYXNlKTtcbiAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFtyZXNlbnRJbnZpdGVdLCAncHV0Jyk7XG5cbiAgICAgICAgICByZXR1cm4gcmVzZW50SW52aXRlO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBpbnZpdGF0aW9uIGZyb20gY2xpZW50IHRvIGZpcm1cbiAgICovXG4gIGludml0ZUZpcm1CeVVzZXIoaW52aXRlOiBDbGllbnRJbnZpdGUpOiBPYnNlcnZhYmxlPENsaWVudEludml0ZT4ge1xuICAgIHJldHVybiBzdXBlci5wb3N0KGludml0ZSwgYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vZmlybS1pbnZpdGVzYClcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAoZXJyb3IuZXJyb3IuZW1haWwpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmVycm9yKGVycm9yLmVycm9yLmVtYWlsWzBdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZXJyb3IoZXJyb3IuZXJyb3IpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGxpc3Rlbk5vdGlmaWNhdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uTk9USUZJQ0FUSU9OX0FEREVEKS5zdWJzY3JpYmUoKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKSA9PiB7XG4gICAgICBjb25zdCBldmVudHMgPSBbXG4gICAgICAgIFVzZXJFdmVudFR5cGVUeXBlRW51bS5DTElFTlRfSU5WSVRFLFxuICAgICAgICBVc2VyRXZlbnRUeXBlVHlwZUVudW0uRklSTV9JTlZJVEVfQUNDRVBURUQsXG4gICAgICAgIFVzZXJFdmVudFR5cGVUeXBlRW51bS5GSVJNX0lOVklURV9SRUpFQ1RFRCxcbiAgICAgICAgVXNlckV2ZW50VHlwZVR5cGVFbnVtLkZJUk1fSU5WSVRFLFxuICAgICAgICBVc2VyRXZlbnRUeXBlVHlwZUVudW0uQ0xJRU5UX0lOVklURV9BQ0NFUFRFRCxcbiAgICAgICAgVXNlckV2ZW50VHlwZVR5cGVFbnVtLkNMSUVOVF9JTlZJVEVfUkVKRUNURUQsXG4gICAgICAgIFVzZXJFdmVudFR5cGVUeXBlRW51bS5DTElFTlRfSU5WSVRFX1JFR0lTVEVSRUQsXG4gICAgICBdO1xuXG4gICAgICBpZiAoIW5vdGlmaWNhdGlvbi5pc1JlYWQgJiYgZXZlbnRzLmluY2x1ZGVzKG5vdGlmaWNhdGlvbi5ldmVudFR5cGUpKSB7XG4gICAgICAgIC8vIEBUT0RPIFRULTM4MjYgbW92ZSB0byB1bmlmaWVkIG1lcmN1cmUgZXZlbnRcbiAgICAgICAgdGhpcy5yZWZyZXNoQ2FjaGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWludml0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvZmlybS9jbGllbnQtaW52aXRlL2NsaWVudC1pbnZpdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQWdCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7O0FBS3ZGLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUFtRTtJQU0xRyxZQUE2QyxXQUFnQjtRQUMzRCxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFEd0IsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFMbkQsZ0JBQVcsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxvQkFBZSxHQUFrQyxzQkFBc0IsQ0FBQztRQUN4RSxlQUFVLEdBQXdCLFlBQVksQ0FBQztRQUMvQyxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUlyQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWTtRQUNWLE9BQU8sSUFBSSxD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TUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNuRSw4Q0FBOEM7Z0JBQzlDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F0R1UsbUJBQW1CLGtCQU1WLGFBQWE7bUhBTnRCLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFPYyxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENsaWVudEludml0ZSBhcyBDbGllbnRJbnZpdGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzL2Zpcm0vY2xpZW50LWludml0ZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3Jlc3QnO1xuaW1wb3J0IHsgQXBwRXZlbnQsIEFwcEV2ZW50VHlwZUVudW0sIENsaWVudEludml0ZSwgTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDbGllbnRJbnZpdGVDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBVc2VyRXZlbnRUeXBlVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtdHlwZS5lbnVtJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ2xpZW50SW52aXRlU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPENsaWVudEludml0ZUJhc2UsIENsaWVudEludml0ZSwgQ2xpZW50SW52aXRlQ29sbGVjdGlvbj4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIHByb3RlY3RlZCBlbmRwb2ludFVyaSA9ICdjbGllbnQtaW52aXRlcyc7XG4gIGNvbGxlY3Rpb25DbGFzczogdHlwZW9mIENsaWVudEludml0ZUNvbGxlY3Rpb24gPSBDbGllbnRJbnZpdGVDb2xsZWN0aW9uO1xuICBtb2RlbENsYXNzOiB0eXBlb2YgQ2xpZW50SW52aXRlID0gQ2xpZW50SW52aXRlO1xuICB1c2VCYWNrZW5kRXJyb3IgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnkpIHtcbiAgICBzdXBlcihlbnZpcm9ubWVudCk7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIGxpc3RlbkV2ZW50cygpIHtcbiAgICB0aGlzLmxpc3Rlbk5vdGlmaWNhdGlvbnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgaW52aXRlIHdoaWNoIGVtcGxveWVlIGlzIFRheFRhbmsgQWR2aXNvclxuICAgKiBAVE9ETyBtb3ZlIHRvIGNvbGxlY3Rpb24/IGJ1dCB3ZSBuZWVkIHRvIGluamVjdCBlbnZpcm9tZW50XG4gICAqL1xuICBnZXRUVEFkdmlzb3IoKTogT2JzZXJ2YWJsZTxDbGllbnRJbnZpdGU+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKFxuICAgICAgbWFwKChpbnZpdGVzOiBDbGllbnRJbnZpdGVDb2xsZWN0aW9uKSA9PiBpbnZpdGVzLmZpbmRCeSgnZW1wbG95ZWUuZW1haWwnLCB0aGlzLmVudmlyb25tZW50LnR0QWR2aXNvcikpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgY2xpZW50cyBmcm9tIENTViBmaWxlXG4gICAqL1xuICBpbXBvcnQoZmlsZTogRmlsZSk6IE9ic2VydmFibGU8Q2xpZW50SW52aXRlW10+IHtcbiAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcblxuICAgIC8vIGNhbnQgdXNlIHBhcmVudCBtZXRob2QgYmVjYXVzZSBvZiBkaWZmZXJlbnQgcGFyYW1ldGVyc1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmFwaVVybH0vaW1wb3J0YCwgZm9ybURhdGEpLnBpcGUoXG4gICAgICBtYXAoKGNsaWVudEludml0ZTogQ2xpZW50SW52aXRlW10pID0+IGNsaWVudEludml0ZSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjY2VwdCBjbGllbnQgaW52aXRhdGlvbiBmcm9tIGZpcm0gdG8gdXNlclxuICAgKi9cbiAgYWNjZXB0KGludml0ZTogQ2xpZW50SW52aXRlKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgLy8gY2FudCB1c2UgcGFyZW50IG1ldGhvZCBiZWNhdXNlIG9mIGN1c3RvbSBzcGVjaWZpYyBoYW5kbGVyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5hcGlVcmx9LyR7aW52aXRlLmlkfS9hY2NlcHRgLCBpbnZpdGUpLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAvLyBAVE9ETyByZW1vdmUgd2hlbiBUYXhSZXZpZXdTZXJ2aWNlIHJlZmFjdG9yZWQgd2l0aCB0aGUgbmV3IHJlc3QgYW5kIHVzZSB0aGVyZSBsaXN0ZW5DU0UgaW5zdGVhZFxuICAgICAgICAvLyBUYXhSZXZpZXdTZXJ2aWNlIGlzIGxpc3RlbmluZyBjbGllbnQgaW52aXRlcyBhY2NlcHRpb24uIFdpdGggdGhlIG5ldyByZXN0IHdlIGFyZSB1c2luZyBsaXN0ZW5DU0UgbWV0aG9kLCBidXQgb2xkIHJlc3QgZG9lcyBub3QgaGF2ZSB0aGlzIG1ldGhvZC5cbiAgICAgICAgLy8gV2UgbmVlZCB0byByZWZhY3RvciBUYXhSZXZpZXdTZXJ2aWNlIHdpdGggbmV3IHJlc3QgZmlyc3QsIHRoZW4gd2UgY2FuIGxpc3RlbkNTRSBhbmQgcmVtb3ZlIG1hbnVhbCBldmVudHNcbiAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLkNMSUVOVF9JTlZJVEVfQUNDRVBURUQsIG51bGwpKTtcblxuICAgICAgICAvLyB0aGlzLmhhbmRsZVJlc3BvbnNlKFtpbnZpdGVdLCAnZGVsZXRlJyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVqZWN0IGNsaWVudCBpbnZpdGF0aW9uIGZyb20gZmlybSB0byB1c2VyXG4gICAqL1xuICByZWplY3QoaW52aXRlOiBDbGllbnRJbnZpdGUpOiBPYnNlcnZhYmxlPENsaWVudEludml0ZT4ge1xuICAgIHJldHVybiBzdXBlci5wdXQoaW52aXRlLCBgJHt0aGlzLmFwaVVybH0vJHtpbnZpdGUuaWR9L3JlamVjdGApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2VuZCBpbnZpdGF0aW9uIGZyb20gZmlybSB0byBjbGllbnRcbiAgICovXG4gIHJlc2VuZChpbnZpdGU6IENsaWVudEludml0ZSk6IE9ic2VydmFibGU8Q2xpZW50SW52aXRlPiB7XG4gICAgLy8gY2FudCB1c2UgcGFyZW50IG1ldGhvZCBiZWNhdXNlIG9mIGN1c3RvbSBzcGVjaWZpYyBoYW5kbGVyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5hcGlVcmx9LyR7aW52aXRlLmlkfS9yZXNlbmRgLCB7fSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGludml0ZUJhc2U6IENsaWVudEludml0ZUJhc2UpID0+IHtcbiAgICAgICAgICBjb25zdCByZXNlbnRJbnZpdGUgPSBwbGFpblRvQ2xhc3MoQ2xpZW50SW52aXRlLCBpbnZpdGVCYXNlKTtcbiAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFtyZXNlbnRJbnZpdGVdLCAncHV0Jyk7XG5cbiAgICAgICAgICByZXR1cm4gcmVzZW50SW52aXRlO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBpbnZpdGF0aW9uIGZyb20gY2xpZW50IHRvIGZpcm1cbiAgICovXG4gIGludml0ZUZpcm1CeVVzZXIoaW52aXRlOiBDbGllbnRJbnZpdGUpOiBPYnNlcnZhYmxlPENsaWVudEludml0ZT4ge1xuICAgIHJldHVybiBzdXBlci5wb3N0KGludml0ZSwgYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vZmlybS1pbnZpdGVzYCk7XG4gIH1cblxuICBwcml2YXRlIGxpc3Rlbk5vdGlmaWNhdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uTk9USUZJQ0FUSU9OX0FEREVEKS5zdWJzY3JpYmUoKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKSA9PiB7XG4gICAgICBjb25zdCBldmVudHMgPSBbXG4gICAgICAgIFVzZXJFdmVudFR5cGVUeXBlRW51bS5DTElFTlRfSU5WSVRFLFxuICAgICAgICBVc2VyRXZlbnRUeXBlVHlwZUVudW0uRklSTV9JTlZJVEVfQUNDRVBURUQsXG4gICAgICAgIFVzZXJFdmVudFR5cGVUeXBlRW51bS5GSVJNX0lOVklURV9SRUpFQ1RFRCxcbiAgICAgICAgVXNlckV2ZW50VHlwZVR5cGVFbnVtLkZJUk1fSU5WSVRFLFxuICAgICAgICBVc2VyRXZlbnRUeXBlVHlwZUVudW0uQ0xJRU5UX0lOVklURV9BQ0NFUFRFRCxcbiAgICAgICAgVXNlckV2ZW50VHlwZVR5cGVFbnVtLkNMSUVOVF9JTlZJVEVfUkVKRUNURUQsXG4gICAgICAgIFVzZXJFdmVudFR5cGVUeXBlRW51bS5DTElFTlRfSU5WSVRFX1JFR0lTVEVSRUQsXG4gICAgICBdO1xuXG4gICAgICBpZiAoIW5vdGlmaWNhdGlvbi5pc1JlYWQgJiYgZXZlbnRzLmluY2x1ZGVzKG5vdGlmaWNhdGlvbi5ldmVudFR5cGUpKSB7XG4gICAgICAgIC8vIEBUT0RPIFRULTM4MjYgbW92ZSB0byB1bmlmaWVkIG1lcmN1cmUgZXZlbnRcbiAgICAgICAgdGhpcy5yZWZyZXNoQ2FjaGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -6,9 +6,9 @@ export const HTTP_ERROR_MESSAGES = {
6
6
  405: 'Method Not Allowed – The request method is not supported by the server. Please, connect with technical support',
7
7
  408: 'Request Timeout – The request took too long to complete. Please try again.',
8
8
  429: 'Too Many Requests – Too many requests were made. Please wait and try again later.',
9
- 500: 'Internal Server Error The server encountered an error. Please try again later.',
9
+ 500: 'Oops! Something went wrong. Please try again in a moment, or contact support if the issue keeps happening.',
10
10
  502: 'Bad Gateway – The server received an invalid response. Please try again.',
11
11
  503: 'Service Unavailable – The server is currently unavailable. Please try again later.',
12
12
  504: 'Gateway Timeout – The server timed out waiting for a response. Please try again.'
13
13
  };
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci1tZXNzYWdlcy5jb25zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3Jlc3QvaHR0cC1lcnJvci1tZXNzYWdlcy5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUNqQyxHQUFHLEVBQUUsZ0VBQWdFO0lBQ3JFLEdBQUcsRUFBRSwyREFBMkQ7SUFDaEUsR0FBRyxFQUFFLGtGQUFrRjtJQUN2RixHQUFHLEVBQUUsdUZBQXVGO0lBQzVGLEdBQUcsRUFBRSxnSEFBZ0g7SUFDckgsR0FBRyxFQUFFLDRFQUE0RTtJQUNqRixHQUFHLEVBQUUsbUZBQW1GO0lBQ3hGLEdBQUcsRUFBRSxrRkFBa0Y7SUFDdkYsR0FBRyxFQUFFLDBFQUEwRTtJQUMvRSxHQUFHLEVBQUUsb0ZBQW9GO0lBQ3pGLEdBQUcsRUFBRSxrRkFBa0Y7Q0FDeEYsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBIVFRQX0VSUk9SX01FU1NBR0VTID0ge1xuICA0MDA6ICdCYWQgUmVxdWVzdCDigJMgVGhlIHJlcXVlc3Qgd2FzIGludmFsaWQuIFBsZWFzZSBjaGVjayB5b3VyIGRhdGEuJyxcbiAgNDAxOiAnVW5hdXRob3JpemVkIOKAkyBBdXRoZW50aWNhdGlvbiBpcyByZXF1aXJlZC4gUGxlYXNlIGxvZyBpbi4nLFxuICA0MDM6ICdGb3JiaWRkZW4g4oCTIEFjY2VzcyBpcyBkZW5pZWQuIFlvdSBkbyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhpcyBhY3Rpb24uJyxcbiAgNDA0OiAnTm90IEZvdW5kIOKAkyBUaGUgcmVxdWVzdGVkIHJlc291cmNlIGNvdWxkIG5vdCBiZSBmb3VuZC4gQ2hlY2sgdGhlIFVSTCBvciBhdmFpbGFiaWxpdHkuJyxcbiAgNDA1OiAnTWV0aG9kIE5vdCBBbGxvd2VkIOKAkyBUaGUgcmVxdWVzdCBtZXRob2QgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgc2VydmVyLiBQbGVhc2UsIGNvbm5lY3Qgd2l0aCB0ZWNobmljYWwgc3VwcG9ydCcsXG4gIDQwODogJ1JlcXVlc3QgVGltZW91dCDigJMgVGhlIHJlcXVlc3QgdG9vayB0b28gbG9uZyB0byBjb21wbGV0ZS4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICA0Mjk6ICdUb28gTWFueSBSZXF1ZXN0cyDigJMgVG9vIG1hbnkgcmVxdWVzdHMgd2VyZSBtYWRlLiBQbGVhc2Ugd2FpdCBhbmQgdHJ5IGFnYWluIGxhdGVyLicsXG4gIDUwMDogJ0ludGVybmFsIFNlcnZlciBFcnJvciDigJMgVGhlIHNlcnZlciBlbmNvdW50ZXJlZCBhbiBlcnJvci4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nLFxuICA1MDI6ICdCYWQgR2F0ZXdheSDigJMgVGhlIHNlcnZlciByZWNlaXZlZCBhbiBpbnZhbGlkIHJlc3BvbnNlLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gIDUwMzogJ1NlcnZpY2UgVW5hdmFpbGFibGUg4oCTIFRoZSBzZXJ2ZXIgaXMgY3VycmVudGx5IHVuYXZhaWxhYmxlLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicsXG4gIDUwNDogJ0dhdGV3YXkgVGltZW91dCDigJMgVGhlIHNlcnZlciB0aW1lZCBvdXQgd2FpdGluZyBmb3IgYSByZXNwb25zZS4gUGxlYXNlIHRyeSBhZ2Fpbi4nXG59XG4iXX0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci1tZXNzYWdlcy5jb25zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3Jlc3QvaHR0cC1lcnJvci1tZXNzYWdlcy5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUNqQyxHQUFHLEVBQUUsZ0VBQWdFO0lBQ3JFLEdBQUcsRUFBRSwyREFBMkQ7SUFDaEUsR0FBRyxFQUFFLGtGQUFrRjtJQUN2RixHQUFHLEVBQUUsdUZBQXVGO0lBQzVGLEdBQUcsRUFBRSxnSEFBZ0g7SUFDckgsR0FBRyxFQUFFLDRFQUE0RTtJQUNqRixHQUFHLEVBQUUsbUZBQW1GO0lBQ3hGLEdBQUcsRUFBRSw0R0FBNEc7SUFDakgsR0FBRyxFQUFFLDBFQUEwRTtJQUMvRSxHQUFHLEVBQUUsb0ZBQW9GO0lBQ3pGLEdBQUcsRUFBRSxrRkFBa0Y7Q0FDeEYsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBIVFRQX0VSUk9SX01FU1NBR0VTID0ge1xuICA0MDA6ICdCYWQgUmVxdWVzdCDigJMgVGhlIHJlcXVlc3Qgd2FzIGludmFsaWQuIFBsZWFzZSBjaGVjayB5b3VyIGRhdGEuJyxcbiAgNDAxOiAnVW5hdXRob3JpemVkIOKAkyBBdXRoZW50aWNhdGlvbiBpcyByZXF1aXJlZC4gUGxlYXNlIGxvZyBpbi4nLFxuICA0MDM6ICdGb3JiaWRkZW4g4oCTIEFjY2VzcyBpcyBkZW5pZWQuIFlvdSBkbyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhpcyBhY3Rpb24uJyxcbiAgNDA0OiAnTm90IEZvdW5kIOKAkyBUaGUgcmVxdWVzdGVkIHJlc291cmNlIGNvdWxkIG5vdCBiZSBmb3VuZC4gQ2hlY2sgdGhlIFVSTCBvciBhdmFpbGFiaWxpdHkuJyxcbiAgNDA1OiAnTWV0aG9kIE5vdCBBbGxvd2VkIOKAkyBUaGUgcmVxdWVzdCBtZXRob2QgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgc2VydmVyLiBQbGVhc2UsIGNvbm5lY3Qgd2l0aCB0ZWNobmljYWwgc3VwcG9ydCcsXG4gIDQwODogJ1JlcXVlc3QgVGltZW91dCDigJMgVGhlIHJlcXVlc3QgdG9vayB0b28gbG9uZyB0byBjb21wbGV0ZS4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICA0Mjk6ICdUb28gTWFueSBSZXF1ZXN0cyDigJMgVG9vIG1hbnkgcmVxdWVzdHMgd2VyZSBtYWRlLiBQbGVhc2Ugd2FpdCBhbmQgdHJ5IGFnYWluIGxhdGVyLicsXG4gIDUwMDogJ09vcHMhIFNvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluIGluIGEgbW9tZW50LCBvciBjb250YWN0IHN1cHBvcnQgaWYgdGhlIGlzc3VlIGtlZXBzIGhhcHBlbmluZy4nLFxuICA1MDI6ICdCYWQgR2F0ZXdheSDigJMgVGhlIHNlcnZlciByZWNlaXZlZCBhbiBpbnZhbGlkIHJlc3BvbnNlLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gIDUwMzogJ1NlcnZpY2UgVW5hdmFpbGFibGUg4oCTIFRoZSBzZXJ2ZXIgaXMgY3VycmVudGx5IHVuYXZhaWxhYmxlLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicsXG4gIDUwNDogJ0dhdGV3YXkgVGltZW91dCDigJMgVGhlIHNlcnZlciB0aW1lZCBvdXQgd2FpdGluZyBmb3IgYSByZXNwb25zZS4gUGxlYXNlIHRyeSBhZ2Fpbi4nXG59XG4iXX0=
@@ -224,7 +224,12 @@ export class RestService extends DataService {
224
224
  handleError(error) {
225
225
  if (error instanceof HttpErrorResponse) {
226
226
  if (this.useBackendError) {
227
- this.toastService.error(error.error.map((error) => error.message).join(' '));
227
+ if (error.error.detail) {
228
+ this.toastService.error(error.error.detail);
229
+ }
230
+ else {
231
+ this.toastService.error(error.error.map((error) => error.message).join(' '));
232
+ }
228
233
  }
229
234
  else {
230
235
  this.toastService.error(this.httpErrorMessages[error.status] || 'Unexpected error occurred.');
@@ -343,4 +348,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
343
348
  type: Inject,
344
349
  args: ['environment']
345
350
  }] }] });
346
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvcmVzdC9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsT0FBTyxFQUFpQixlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLFlBQVksTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FB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SUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLElBQUksTUFBa0IsQ0FBQztZQUN2QixJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUU7Z0JBQ1osTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQzthQUNyRDtpQkFBTTtnQkFDTCxNQUFNLEdBQUcsUUFBUSxDQUFDO2dCQUNsQix3RkFBd0Y7Z0JBQ3hGLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDOUQ7WUFFRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUNILENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQWpabUIsV0FBVyxrQkEwQ1gsYUFBYTttSEExQ2IsV0FBVyxjQUZuQixNQUFNOzs0RkFFRSxXQUFXO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBMkNjLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlyc3QsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSwgU3NlU2VydmljZSB9IGZyb20gJy4uLy4uL2V2ZW50JztcbmltcG9ydCB7IGNsYXNzVG9QbGFpbiB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBBYnN0cmFjdE1vZGVsLCBPYnNlcnZhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMnO1xuaW1wb3J0IHsgQXBwRXZlbnQyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IHRvQXJyYXkgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgUmVzdE1ldGhvZCB9IGZyb20gJy4vcmVzdC1tZXRob2QudHlwZSc7XG5pbXBvcnQgeyBIdHRwTWV0aG9kIH0gZnJvbSAnLi9odHRwLW1ldGhvZC50eXBlJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJSb2xlc0VudW0gfSBmcm9tICd0YXh0YW5rLWNvcmUvY29tbW9uJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3RvYXN0JztcbmltcG9ydCBtZXJnZSBmcm9tICdsb2Rhc2gvbWVyZ2UnO1xuaW1wb3J0IGludGVyc2VjdGlvbiBmcm9tICdsb2Rhc2gvaW50ZXJzZWN0aW9uJztcbmltcG9ydCBsYXN0IGZyb20gJ2xvZGFzaC9sYXN0JztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5pbXBvcnQgeyBIVFRQX0VSUk9SX01FU1NBR0VTIH0gZnJvbSAnLi9odHRwLWVycm9yLW1lc3NhZ2VzLmNvbnN0JztcblxuLyoqXG4gKiBAVE9ETyByZWZhY3RvciB0byBiZWhhdmlvciBzdWJqZWN0P1xuICogQWJzdHJhY3QgYmFzZSBzZXJ2aWNlIHRoYXQgaW1wbGVtZW50cyBjb21tb24gc2VydmljZXMgZnVuY3Rpb25hbGl0eVxuICogYW5kIGRlc2NyaWJlIGFic3RyYWN0IG1ldGhvZHMvcHJvcGVydGllcyB0aGF0IGhhdmUgdG8gYmUgaW1wbGVtZW50ZWQgaW4gY2hpbGQgc2VydmljZXNcbiAqIE1vZGVsIC0gZW50aXR5IHNlcnZpY2UgaXMgd29ya2luZyB3aXRoXG4gKiBCYXNlTW9kZWwgLSBiYXNlIGVudGl0eSBtb2RlbCB0aGF0IGV4dGVuZHMgYnkgTW9kZWxcbiAqIENvbGxlY3Rpb25Nb2RlbCAtIGVudGl0eSBjb2xsZWN0aW9uIGNsYXNzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlc3RTZXJ2aWNlPEJhc2VNb2RlbCwgTW9kZWwgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsLCBDb2xsZWN0aW9uTW9kZWwgZXh0ZW5kcyBDb2xsZWN0aW9uPE1vZGVsPj5cbiAgZXh0ZW5kcyBEYXRhU2VydmljZTxCYXNlTW9kZWwsIE1vZGVsLCBDb2xsZWN0aW9uTW9kZWw+IHtcblxuICAvKipcbiAgICogVXJsIHBhcnQgZm9yIHNlcnZpY2UgZW50aXR5IEFQSVxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGVuZHBvaW50VXJpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN1YmplY3QgZm9yIHNlcnZpY2UgY2FjaGVcbiAgICovXG4gIHByb3RlY3RlZCBjYWNoZVN1YmplY3Q6IFJlcGxheVN1YmplY3Q8Q29sbGVjdGlvbk1vZGVsPiA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIG1ldGhvZHMgdW5hdmFpbGFibGUgZm9yIGN1cnJlbnQgQVBJXG4gICAqIEBUT0RPIEFsZXg6IGFkZCBhbmQgaGFuZGxlIGVuYWJsZWQgbWV0aG9kcyB0b29cbiAgICogQFRPRE8gQWxleDogZGlzYWJsZSBiYXRjaCBieSBkZWZhdWx0XG4gICAqL1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFtdO1xuICBwcm90ZWN0ZWQgc3NlU2VydmljZTogU3NlU2VydmljZSA9IGluamVjdChTc2VTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XG4gIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSA9IGluamVjdChFdmVudERpc3BhdGNoZXJTZXJ2aWNlKTtcbiAgLyoqXG4gICAqIGFkZHMgbmV3IGVudGl0aWVzIHRvIHRoZSBiZWdpbm5pbmcgd2hlbiB0cnVlXG4gICAqIEBUT0RPIG1ha2UgdHJ1ZSBieSBkZWZhdWx0IHdoZW4gYWxsIHNlcnZpY2VzIHJlZmFjdG9yZWRcbiAgICovXG4gIHByb3RlY3RlZCBvcmRlckJ5RGVzYyA9IGZhbHNlO1xuXG4gIHJvbGVzOiBVc2VyUm9sZXNFbnVtW10gPSBbXTtcbiAgbWVyY3VyZVRvcGljOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBmbGFnIHRvIHVzZSBlcnJvciBtZXNzYWdlcyBmcm9tIGFwaSBvciBkZWZhdWx0IG9uZXNcbiAgICogQFRPRE86IFRULTQ2NDIgY2hlY2sgY3VzdG9tSHR0cEVycm9yTWVzc2FnZXMgZml4IGNoYW5nZSB0byBiYWNrZW5kIGVycm9yc1xuICAgKi9cbiAgcHJvdGVjdGVkIHVzZUJhY2tlbmRFcnJvciA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBtYXBwaW5nIHdpdGggSFRUUCBlcnJvcnMgY29kZXMgYW5kIGdlbmVyYWwgbWVzc2FnZXNcbiAgICovXG4gIHByb3RlY3RlZCBodHRwRXJyb3JNZXNzYWdlczoge1trZXk6IG51bWJlcl06IHN0cmluZ307XG5cbiAgY29uc3RydWN0b3IoQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5odHRwRXJyb3JNZXNzYWdlcyA9IHsgLi4uSFRUUF9FUlJPUl9NRVNTQUdFUywgLi4udGhpcy5nZXRDdXN0b21IdHRwRXJyb3JNZXNzYWdlcygpIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGFwaVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMuZW5kcG9pbnRVcml9YDtcbiAgfVxuXG4gIHNldENhY2hlKGRhdGE6IGFueVtdLCBuZXh0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICBzdXBlci5zZXRDYWNoZShkYXRhKTtcblxuICAgIGlmIChuZXh0KSB7XG4gICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoIGNhY2hlIHdpdGggYWN0dWFsIGJhY2tlbmQgZGF0YVxuICAgKi9cbiAgcmVmcmVzaENhY2hlKCk6IHZvaWQge1xuICAgIHRoaXMuY2FjaGUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5nZXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBwZXJmb3JtIGEgc2hhbGxvdyBjb3B5IG9mIHRoZSBlbWl0dGVkIGRhdGEgdG8gbWFrZSBpdCBpbW11dGFibGVcbiAgICovXG4gIGdldENhY2hlU3ViamVjdE9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uTW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZVN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShtYXAoKGNhY2hlKSA9PiBjbG9uZURlZXAoY2FjaGUpKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGRhdGEgZnJvbSBiYWNrZW5kIGFuZCBmaWxsIHRoZSBjYWNoZVxuICAgKi9cbiAgZmV0Y2gocGF0aCA9IHRoaXMuYXBpVXJsLCBjYWNoZSA9IHRydWUsIHF1ZXJ5UGFyYW1zID0ge30pOiBPYnNlcnZhYmxlPENvbGxlY3Rpb25Nb2RlbD4ge1xuICAgIGlmIChjYWNoZSkge1xuICAgICAgLy8gU2V0IGNhY2hlIGFzIGVtcHR5IGNvbGxlY3Rpb24gdG8gYXZvaWQgbXVsdGlwbGUgcmVxdWVzdHMgYmVmb3JlIGNhY2hlIGZpbGxlZFxuICAgICAgdGhpcy5zZXRDYWNoZShbXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQocGF0aCwgcXVlcnlQYXJhbXMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0IHwgb2JqZWN0W10pID0+IEFycmF5LmlzQXJyYXkocmVzcG9uc2UpID8gcmVzcG9uc2UgOiB0b0FycmF5KHJlc3BvbnNlKSksXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IEJhc2VNb2RlbFtdKSA9PiB7XG4gICAgICAgICAgaWYgKGNhY2hlKSB7XG4gICAgICAgICAgICB0aGlzLnNldENhY2hlKHJlc3BvbnNlLCB0cnVlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVDb2xsZWN0aW9uSW5zdGFuY2UodGhpcy5jb2xsZWN0aW9uQ2xhc3MsIHJlc3BvbnNlKTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSlcbiAgICAgICk7XG4gIH1cblxuICBnZXQocGF0aDogc3RyaW5nID0gdGhpcy5hcGlVcmwpOiBPYnNlcnZhYmxlPENvbGxlY3Rpb25Nb2RlbD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ2dldCcpO1xuXG4gICAgaWYgKCF0aGlzLmhhc1JvbGVzKCkpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmNyZWF0ZUNvbGxlY3Rpb25JbnN0YW5jZSh0aGlzLmNvbGxlY3Rpb25DbGFzcywgW10pKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHRoaXMuZmV0Y2gocGF0aCkucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nZXRDYWNoZVN1YmplY3RPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXRCeShwYXRoOiBzdHJpbmcsIHZhbHVlczogYW55KTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uTW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKG1hcCgocHJvamVjdHMpID0+IHByb2plY3RzLmZpbHRlckJ5KHBhdGgsIHZhbHVlcykpKTtcbiAgfVxuXG4gIGdldEZpcnN0KCk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKG1hcCgoY29sbGVjdGlvbjogQ29sbGVjdGlvbk1vZGVsKSA9PiBjb2xsZWN0aW9uLmZpcnN0KSk7XG4gIH1cblxuICBoYXNJbkNhY2hlKGlkOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmdldENhY2hlKCk/LmZpbmRCeSgnaWQnLCBpZCk7XG4gIH1cblxuICBnZXRBcnJheSgpOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKG1hcCgoY29sbGVjdGlvbjogQ29sbGVjdGlvbk1vZGVsKSA9PiBjb2xsZWN0aW9uLnRvQXJyYXkoKSkpO1xuICB9XG5cbiAgZ2V0QXJyYXlCeShwYXRoOiBzdHJpbmcsIHZhbHVlczogYW55KTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QnkocGF0aCwgdmFsdWVzKS5waXBlKG1hcCgoY29sbGVjdGlvbjogQ29sbGVjdGlvbk1vZGVsKSA9PiBjb2xsZWN0aW9uLnRvQXJyYXkoKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBNb2RlbCBpbnN0YW5jZSBpbiBkYXRhYmFzZVxuICAgKi9cbiAgcG9zdChtb2RlbDogTW9kZWwsIHBhdGg6IHN0cmluZyA9IHRoaXMuYXBpVXJsKTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ3Bvc3QnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChwYXRoLCBjbGFzc1RvUGxhaW4obW9kZWwpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdDogTW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UocmVzcG9uc2UpO1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW3Jlc3VsdF0sICdwb3N0Jyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIG11bHRpcGxlIG5ldyBNb2RlbCBpbnN0YW5jZXMgaW4gZGF0YWJhc2VcbiAgICovXG4gIHBvc3RCYXRjaChtb2RlbHM6IE1vZGVsW10pOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdwb3N0QmF0Y2gnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmFwaVVybCwgY2xhc3NUb1BsYWluKG1vZGVscykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0W10pID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IE1vZGVsW10gPSByZXNwb25zZS5tYXAoKGl0ZW06IG9iamVjdCk6IE1vZGVsID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShpdGVtKSk7XG4gICAgICAgICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShyZXN1bHQsICdwb3N0Jyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIGFuIGV4aXN0aW5nIE1vZGVsIGluc3RhbmNlIGluIGRhdGFiYXNlXG4gICAqL1xuICBwdXQobW9kZWw6IE1vZGVsLCBwYXRoID0gYCR7dGhpcy5hcGlVcmx9LyR7bW9kZWwuaWR9YCk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdwdXQnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHBhdGgsIGNsYXNzVG9QbGFpbihtb2RlbCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBNb2RlbCA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShyZXNwb25zZSk7XG4gICAgICAgICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbcmVzdWx0XSwgJ3B1dCcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcikpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSBtdWx0aXBsZSBleGlzdGluZyBNb2RlbCBpbnN0YW5jZXMgaW4gZGF0YWJhc2VcbiAgICovXG4gIHB1dEJhdGNoKG1vZGVsczogTW9kZWxbXSk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ3B1dEJhdGNoJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLmFwaVVybCwgY2xhc3NUb1BsYWluKG1vZGVscykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0W10pID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IE1vZGVsW10gPSByZXNwb25zZS5tYXAoKGl0ZW06IG9iamVjdCk6IE1vZGVsID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShpdGVtKSk7XG4gICAgICAgICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShyZXN1bHQsICdwdXQnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYSBNb2RlbCBpbnN0YW5jZSBmcm9tIGRhdGFiYXNlXG4gICAqL1xuICBkZWxldGUobW9kZWw6IE1vZGVsLCBwYXRoID0gYCR7dGhpcy5hcGlVcmx9LyR7bW9kZWwuaWR9YCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ2RlbGV0ZScpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUocGF0aClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW21vZGVsXSwgJ2RlbGV0ZScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIG11bHRpcGxlIE1vZGVsIGluc3RhbmNlcyBmcm9tIGRhdGFiYXNlXG4gICAqL1xuICBkZWxldGVCYXRjaChtb2RlbHM6IE1vZGVsW10pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdkZWxldGVCYXRjaCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXBpVXJsfS9kZWxldGVgLCBjbGFzc1RvUGxhaW4obW9kZWxzKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UobW9kZWxzLCAnZGVsZXRlJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdG9kbzogcmVtb3ZlIGRlbGV0ZUJhdGNoIGFmdGVyIGJhY2tlbmQgcmVmYWN0b3JcbiAgICovXG4gIGRlbGV0ZUJhdGNoVjIobW9kZWxzOiBNb2RlbFtdKSB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcignZGVsZXRlQmF0Y2gnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuYXBpVXJsfWAsIHsgYm9keTogeyBpZHM6IG1vZGVscy5tYXAobW9kZWwgPT4gbW9kZWwuaWQpIH0gfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UobW9kZWxzLCAnZGVsZXRlJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBtZXRob2Qgd2l0aCBtZXNzYWdlcyB0aGF0IGNhbiBiZSByZWRlZmluZWQgaW4gb3RoZXIgY2xhc3NlcyB0byBjdXN0b21pemUgaHR0cEVycm9yTWVzc2FnZXNcbiAgICovXG4gIHByb3RlY3RlZCBnZXRDdXN0b21IdHRwRXJyb3JNZXNzYWdlcygpOiBSZWNvcmQ8bnVtYmVyLCBzdHJpbmc+IHtcbiAgICByZXR1cm4ge31cbiAgfVxuICAvKipcbiAgICogSGFuZGxlIHJlc3BvbnNlIGVycm9ycyAtIHNob3dzIGVycm9yIGluIHRvYXN0XG4gICAqIGFuZCB0aHJvd3MgZXJyb3IgZnVydGhlclxuICAgKiBAcGFyYW0gZXJyb3IgLSBhbnkgYmFja2VuZCBlcnJvclxuICAgKiBAdGhyb3dzIEh0dHBFcnJvclJlc3BvbnNlIHwgRXJyb3IgLSBBbHdheXMgdGhyb3dzIHRoZSBlcnJvciBmdXJ0aGVyIGFzIGFuIE9ic2VydmFibGU8bmV2ZXI+XG4gICAqL1xuICBoYW5kbGVFcnJvcihlcnJvcjogdW5rbm93bikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICBpZiAodGhpcy51c2VCYWNrZW5kRXJyb3IpIHtcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZXJyb3IoZXJyb3IuZXJyb3IubWFwKChlcnJvcjogeyBtZXNzYWdlOiBzdHJpbmcgfSkgPT4gZXJyb3IubWVzc2FnZSkuam9pbignICcpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmVycm9yKHRoaXMuaHR0cEVycm9yTWVzc2FnZXNbZXJyb3Iuc3RhdHVzXSB8fCAnVW5leHBlY3RlZCBlcnJvciBvY2N1cnJlZC4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIHJlc3BvbnNlIGRhdGEgLSB1cGRhdGUgY2FjaGUgYW5kIGRpc3BhdGNoIGV2ZW50IGlmIGl0IGlzIG5lZWRlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVJlc3BvbnNlKHJlc3BvbnNlOiBNb2RlbFtdLCBtZXRob2Q6IEh0dHBNZXRob2QpIHtcbiAgICBpZiAodGhpcy5nZXRDYWNoZSgpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudXBkYXRlQ2FjaGUocmVzcG9uc2UsIG1ldGhvZCk7XG4gICAgfVxuXG4gICAgLy8gZGlzcGF0Y2ggZXZlbnQgZm9yIGludGVyZXN0ZWQgc2VydmljZXNcbiAgICBpZiAocmVzcG9uc2VbMF0gaW5zdGFuY2VvZiBPYnNlcnZhYmxlTW9kZWwpIHtcbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChtZXRob2QsIHJlc3BvbnNlIGFzIHVua25vd24gYXMgT2JzZXJ2YWJsZU1vZGVsW10pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgY2FjaGUgd2l0aCBwYXNzZWQgaXRlbXMuIEFkZC9VcGRhdGUgZGV0ZWN0cyBhdXRvbWF0aWNhbGx5LCBEZWxldGUgdmlhIG9wdGlvbmFsIGZsYWdcbiAgICovXG4gIHByb3RlY3RlZCB1cGRhdGVDYWNoZShpdGVtczogTW9kZWxbXSwgbWV0aG9kOiBIdHRwTWV0aG9kKTogdm9pZCB7XG4gICAgbGV0IGNhY2hlOiBDb2xsZWN0aW9uTW9kZWw7XG5cbiAgICBzd2l0Y2ggKG1ldGhvZCkge1xuICAgICAgY2FzZSAncG9zdCc6XG4gICAgICAgIGNhY2hlID0gdGhpcy5vcmRlckJ5RGVzYyA/IHRoaXMuY2FjaGUudW5zaGlmdCguLi5pdGVtcykgOiB0aGlzLmNhY2hlLnB1c2goLi4uaXRlbXMpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAncHV0JzpcbiAgICAgICAgLy8gQFRPRE8gQWxleCBvbGQgaW5zdGFuY2VcbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbTogTW9kZWwpID0+IHtcbiAgICAgICAgICBjYWNoZSA9IHRoaXMuY2FjaGUucmVwbGFjZUJ5KCdpZCcsIGl0ZW0uaWQsIGl0ZW0pO1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIGNhY2hlID0gdGhpcy5jYWNoZS5yZW1vdmVCeSgnaWQnLCBpdGVtcy5tYXAoKGl0ZW06IE1vZGVsKSA9PiBpdGVtLmlkKSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICAvLyBjYXNlICdnZXQnOlxuICAgICAgLy8gICBjYWNoZSA9IHRoaXMuY3JlYXRlQ29sbGVjdGlvbkluc3RhbmNlKHRoaXMuY29sbGVjdGlvbkNsYXNzLCBpdGVtcyk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRDYWNoZShjYWNoZS50b0FycmF5KCksIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGFuZCBkaXNwYXRjaCByZXN0IGV2ZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgZGlzcGF0Y2hFdmVudChtZXRob2Q6IEh0dHBNZXRob2QsIGl0ZW1zOiBPYnNlcnZhYmxlTW9kZWxbXSk6IHZvaWQge1xuICAgIGNvbnN0IGV2ZW50TmFtZTogc3RyaW5nID0gdGhpcy5tb2RlbENsYXNzLmdldEV2ZW50TmFtZShtZXRob2QpO1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaDIobmV3IEFwcEV2ZW50MihldmVudE5hbWUsIGl0ZW1zKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgbWV0aG9kIGlzIG5vdCBkaXNhYmxlZC4gVGhyb3cgZXhjZXB0aW9uIG90aGVyd2lzZS5cbiAgICogU29tZSBlbnRpdGllcyBkb2VzIG5vdCBoYXZlIGVuZHBvaW50cyBmb3IgYWxsIG1ldGhvZHMuXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZUFjY2Vzc0Vycm9yKG1ldGhvZDogUmVzdE1ldGhvZCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZE1ldGhvZHMuaW5jbHVkZXMobWV0aG9kKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgTWV0aG9kICR7bWV0aG9kfSgpIGlzIG5vdCBhbGxvd2VkIGZvciAke3RoaXMuY29uc3RydWN0b3IubmFtZX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gaHR0cCBldmVudHMgYW5kIHJ1biBjYWxsYmFjay5cbiAgICogQ1NFIC0gQ2xlaW50IFNlbnQgRXZlbnRzXG4gICAqIEBwYXJhbSBtb2RlbENsYXNzXG4gICAqIEBwYXJhbSBtZXRob2RzIFRoZSBsaXN0IG9mIGh0dHAgbWV0aG9kcyBzaG91bGQgYmUgbGlzdGVuZWQgZm9yXG4gICAqIEBwYXJhbSBjYWxsYmFjayBUaGUgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gZXZlbnQgdHJpZ2dlcmVkXG4gICAqL1xuICBwcm90ZWN0ZWQgbGlzdGVuQ1NFKG1vZGVsQ2xhc3M6IHR5cGVvZiBPYnNlcnZhYmxlTW9kZWwsIGNhbGxiYWNrOiBGdW5jdGlvbiwgbWV0aG9kczogSHR0cE1ldGhvZFtdID0gWydwb3N0JywgJ3B1dCcsICdkZWxldGUnXSk6IHZvaWQge1xuICAgIGNhbGxiYWNrID0gY2FsbGJhY2suYmluZCh0aGlzKTtcblxuICAgIG1ldGhvZHMuZm9yRWFjaCgobWV0aG9kOiBIdHRwTWV0aG9kKSA9PiB7XG4gICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24yKG1vZGVsQ2xhc3MuZ2V0RXZlbnROYW1lKG1ldGhvZCkpLnN1YnNjcmliZSgoZGF0YTogT2JzZXJ2YWJsZU1vZGVsW10pID0+IHtcbiAgICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgICB9KTtcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGNoZWNrIGlmIHVzZXIgaGFzIHN1YnNjcmlwdGlvbiByb2xlIHRvIGFjY2VzcyBhcGlcbiAgICovXG4gIGhhc1JvbGVzKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5yb2xlcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiAhIWludGVyc2VjdGlvbihKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdyb2xlcycpKSwgdGhpcy5yb2xlcykubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiBmb3IgU2VydmVyLVNlbnQgRXZlbnRzIChTU0UpIG9uIHRoZSBzcGVjaWZpZWQgTWVyY3VyZSB0b3BpY1xuICAgKi9cbiAgbGlzdGVuU1NFKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNzZVNlcnZpY2Uub24odGhpcy5tZXJjdXJlVG9waWMpLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3QpID0+IHtcbiAgICAgICAgbGV0IG1vZGVsID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHJlc3BvbnNlKTtcbiAgICAgICAgbGV0IG1ldGhvZDogSHR0cE1ldGhvZDtcbiAgICAgICAgaWYgKG1vZGVsLmlkKSB7XG4gICAgICAgICAgbWV0aG9kID0gdGhpcy5oYXNJbkNhY2hlKG1vZGVsLmlkKSA/ICdwdXQnIDogJ3Bvc3QnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG1ldGhvZCA9ICdkZWxldGUnO1xuICAgICAgICAgIC8vIHdlIGdvdCBlbXB0eSBib2R5IHdoZW4gaXRlbSBkZWxldGVkLCBzbyB3ZSBzaG91bGQgZ2V0IGlkIGZyb20gQXBpIFBsYXRmb3JtIGRhdGEgKEBpZClcbiAgICAgICAgICBtb2RlbCA9IG1lcmdlKG1vZGVsLCB7IGlkOiArbGFzdChtb2RlbFsnQGlkJ10uc3BsaXQoJy8nKSkgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyBtZXRob2QsIG1vZGVsIH07XG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW2NoYW5nZS5tb2RlbF0sIGNoYW5nZS5tZXRob2QpXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
351
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvcmVzdC9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsT0FBTyxFQUFpQixlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLFlBQVksTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FB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dCwgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlyc3QsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSwgU3NlU2VydmljZSB9IGZyb20gJy4uLy4uL2V2ZW50JztcbmltcG9ydCB7IGNsYXNzVG9QbGFpbiB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBBYnN0cmFjdE1vZGVsLCBPYnNlcnZhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMnO1xuaW1wb3J0IHsgQXBwRXZlbnQyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IHRvQXJyYXkgfSBmcm9tICcuLi8uLi8uLi9mdW5jdGlvbnMvYXJyYXknO1xuaW1wb3J0IHsgUmVzdE1ldGhvZCB9IGZyb20gJy4vcmVzdC1tZXRob2QudHlwZSc7XG5pbXBvcnQgeyBIdHRwTWV0aG9kIH0gZnJvbSAnLi9odHRwLW1ldGhvZC50eXBlJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJSb2xlc0VudW0gfSBmcm9tICd0YXh0YW5rLWNvcmUvY29tbW9uJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3RvYXN0JztcbmltcG9ydCBtZXJnZSBmcm9tICdsb2Rhc2gvbWVyZ2UnO1xuaW1wb3J0IGludGVyc2VjdGlvbiBmcm9tICdsb2Rhc2gvaW50ZXJzZWN0aW9uJztcbmltcG9ydCBsYXN0IGZyb20gJ2xvZGFzaC9sYXN0JztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5pbXBvcnQgeyBIVFRQX0VSUk9SX01FU1NBR0VTIH0gZnJvbSAnLi9odHRwLWVycm9yLW1lc3NhZ2VzLmNvbnN0JztcblxuLyoqXG4gKiBAVE9ETyByZWZhY3RvciB0byBiZWhhdmlvciBzdWJqZWN0P1xuICogQWJzdHJhY3QgYmFzZSBzZXJ2aWNlIHRoYXQgaW1wbGVtZW50cyBjb21tb24gc2VydmljZXMgZnVuY3Rpb25hbGl0eVxuICogYW5kIGRlc2NyaWJlIGFic3RyYWN0IG1ldGhvZHMvcHJvcGVydGllcyB0aGF0IGhhdmUgdG8gYmUgaW1wbGVtZW50ZWQgaW4gY2hpbGQgc2VydmljZXNcbiAqIE1vZGVsIC0gZW50aXR5IHNlcnZpY2UgaXMgd29ya2luZyB3aXRoXG4gKiBCYXNlTW9kZWwgLSBiYXNlIGVudGl0eSBtb2RlbCB0aGF0IGV4dGVuZHMgYnkgTW9kZWxcbiAqIENvbGxlY3Rpb25Nb2RlbCAtIGVudGl0eSBjb2xsZWN0aW9uIGNsYXNzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlc3RTZXJ2aWNlPEJhc2VNb2RlbCwgTW9kZWwgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsLCBDb2xsZWN0aW9uTW9kZWwgZXh0ZW5kcyBDb2xsZWN0aW9uPE1vZGVsPj5cbiAgZXh0ZW5kcyBEYXRhU2VydmljZTxCYXNlTW9kZWwsIE1vZGVsLCBDb2xsZWN0aW9uTW9kZWw+IHtcblxuICAvKipcbiAgICogVXJsIHBhcnQgZm9yIHNlcnZpY2UgZW50aXR5IEFQSVxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGVuZHBvaW50VXJpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN1YmplY3QgZm9yIHNlcnZpY2UgY2FjaGVcbiAgICovXG4gIHByb3RlY3RlZCBjYWNoZVN1YmplY3Q6IFJlcGxheVN1YmplY3Q8Q29sbGVjdGlvbk1vZGVsPiA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIG1ldGhvZHMgdW5hdmFpbGFibGUgZm9yIGN1cnJlbnQgQVBJXG4gICAqIEBUT0RPIEFsZXg6IGFkZCBhbmQgaGFuZGxlIGVuYWJsZWQgbWV0aG9kcyB0b29cbiAgICogQFRPRE8gQWxleDogZGlzYWJsZSBiYXRjaCBieSBkZWZhdWx0XG4gICAqL1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFtdO1xuICBwcm90ZWN0ZWQgc3NlU2VydmljZTogU3NlU2VydmljZSA9IGluamVjdChTc2VTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XG4gIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSA9IGluamVjdChFdmVudERpc3BhdGNoZXJTZXJ2aWNlKTtcbiAgLyoqXG4gICAqIGFkZHMgbmV3IGVudGl0aWVzIHRvIHRoZSBiZWdpbm5pbmcgd2hlbiB0cnVlXG4gICAqIEBUT0RPIG1ha2UgdHJ1ZSBieSBkZWZhdWx0IHdoZW4gYWxsIHNlcnZpY2VzIHJlZmFjdG9yZWRcbiAgICovXG4gIHByb3RlY3RlZCBvcmRlckJ5RGVzYyA9IGZhbHNlO1xuXG4gIHJvbGVzOiBVc2VyUm9sZXNFbnVtW10gPSBbXTtcbiAgbWVyY3VyZVRvcGljOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBmbGFnIHRvIHVzZSBlcnJvciBtZXNzYWdlcyBmcm9tIGFwaSBvciBkZWZhdWx0IG9uZXNcbiAgICogQFRPRE86IFRULTQ2NDIgY2hlY2sgY3VzdG9tSHR0cEVycm9yTWVzc2FnZXMgZml4IGNoYW5nZSB0byBiYWNrZW5kIGVycm9yc1xuICAgKi9cbiAgcHJvdGVjdGVkIHVzZUJhY2tlbmRFcnJvciA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBtYXBwaW5nIHdpdGggSFRUUCBlcnJvcnMgY29kZXMgYW5kIGdlbmVyYWwgbWVzc2FnZXNcbiAgICovXG4gIHByb3RlY3RlZCBodHRwRXJyb3JNZXNzYWdlczoge1trZXk6IG51bWJlcl06IHN0cmluZ307XG5cbiAgY29uc3RydWN0b3IoQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5odHRwRXJyb3JNZXNzYWdlcyA9IHsgLi4uSFRUUF9FUlJPUl9NRVNTQUdFUywgLi4udGhpcy5nZXRDdXN0b21IdHRwRXJyb3JNZXNzYWdlcygpIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGFwaVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMuZW5kcG9pbnRVcml9YDtcbiAgfVxuXG4gIHNldENhY2hlKGRhdGE6IGFueVtdLCBuZXh0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICBzdXBlci5zZXRDYWNoZShkYXRhKTtcblxuICAgIGlmIChuZXh0KSB7XG4gICAgICB0aGlzLmNhY2hlU3ViamVjdC5uZXh0KHRoaXMuY2FjaGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoIGNhY2hlIHdpdGggYWN0dWFsIGJhY2tlbmQgZGF0YVxuICAgKi9cbiAgcmVmcmVzaENhY2hlKCk6IHZvaWQge1xuICAgIHRoaXMuY2FjaGUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5nZXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBwZXJmb3JtIGEgc2hhbGxvdyBjb3B5IG9mIHRoZSBlbWl0dGVkIGRhdGEgdG8gbWFrZSBpdCBpbW11dGFibGVcbiAgICovXG4gIGdldENhY2hlU3ViamVjdE9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uTW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZVN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShtYXAoKGNhY2hlKSA9PiBjbG9uZURlZXAoY2FjaGUpKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGRhdGEgZnJvbSBiYWNrZW5kIGFuZCBmaWxsIHRoZSBjYWNoZVxuICAgKi9cbiAgZmV0Y2gocGF0aCA9IHRoaXMuYXBpVXJsLCBjYWNoZSA9IHRydWUsIHF1ZXJ5UGFyYW1zID0ge30pOiBPYnNlcnZhYmxlPENvbGxlY3Rpb25Nb2RlbD4ge1xuICAgIGlmIChjYWNoZSkge1xuICAgICAgLy8gU2V0IGNhY2hlIGFzIGVtcHR5IGNvbGxlY3Rpb24gdG8gYXZvaWQgbXVsdGlwbGUgcmVxdWVzdHMgYmVmb3JlIGNhY2hlIGZpbGxlZFxuICAgICAgdGhpcy5zZXRDYWNoZShbXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQocGF0aCwgcXVlcnlQYXJhbXMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0IHwgb2JqZWN0W10pID0+IEFycmF5LmlzQXJyYXkocmVzcG9uc2UpID8gcmVzcG9uc2UgOiB0b0FycmF5KHJlc3BvbnNlKSksXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IEJhc2VNb2RlbFtdKSA9PiB7XG4gICAgICAgICAgaWYgKGNhY2hlKSB7XG4gICAgICAgICAgICB0aGlzLnNldENhY2hlKHJlc3BvbnNlLCB0cnVlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVDb2xsZWN0aW9uSW5zdGFuY2UodGhpcy5jb2xsZWN0aW9uQ2xhc3MsIHJlc3BvbnNlKTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSlcbiAgICAgICk7XG4gIH1cblxuICBnZXQocGF0aDogc3RyaW5nID0gdGhpcy5hcGlVcmwpOiBPYnNlcnZhYmxlPENvbGxlY3Rpb25Nb2RlbD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ2dldCcpO1xuXG4gICAgaWYgKCF0aGlzLmhhc1JvbGVzKCkpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmNyZWF0ZUNvbGxlY3Rpb25JbnN0YW5jZSh0aGlzLmNvbGxlY3Rpb25DbGFzcywgW10pKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHRoaXMuZmV0Y2gocGF0aCkucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nZXRDYWNoZVN1YmplY3RPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXRCeShwYXRoOiBzdHJpbmcsIHZhbHVlczogYW55KTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uTW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKG1hcCgocHJvamVjdHMpID0+IHByb2plY3RzLmZpbHRlckJ5KHBhdGgsIHZhbHVlcykpKTtcbiAgfVxuXG4gIGdldEZpcnN0KCk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKG1hcCgoY29sbGVjdGlvbjogQ29sbGVjdGlvbk1vZGVsKSA9PiBjb2xsZWN0aW9uLmZpcnN0KSk7XG4gIH1cblxuICBoYXNJbkNhY2hlKGlkOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmdldENhY2hlKCk/LmZpbmRCeSgnaWQnLCBpZCk7XG4gIH1cblxuICBnZXRBcnJheSgpOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKG1hcCgoY29sbGVjdGlvbjogQ29sbGVjdGlvbk1vZGVsKSA9PiBjb2xsZWN0aW9uLnRvQXJyYXkoKSkpO1xuICB9XG5cbiAgZ2V0QXJyYXlCeShwYXRoOiBzdHJpbmcsIHZhbHVlczogYW55KTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QnkocGF0aCwgdmFsdWVzKS5waXBlKG1hcCgoY29sbGVjdGlvbjogQ29sbGVjdGlvbk1vZGVsKSA9PiBjb2xsZWN0aW9uLnRvQXJyYXkoKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBNb2RlbCBpbnN0YW5jZSBpbiBkYXRhYmFzZVxuICAgKi9cbiAgcG9zdChtb2RlbDogTW9kZWwsIHBhdGg6IHN0cmluZyA9IHRoaXMuYXBpVXJsKTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ3Bvc3QnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChwYXRoLCBjbGFzc1RvUGxhaW4obW9kZWwpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdDogTW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UocmVzcG9uc2UpO1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW3Jlc3VsdF0sICdwb3N0Jyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIG11bHRpcGxlIG5ldyBNb2RlbCBpbnN0YW5jZXMgaW4gZGF0YWJhc2VcbiAgICovXG4gIHBvc3RCYXRjaChtb2RlbHM6IE1vZGVsW10pOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdwb3N0QmF0Y2gnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmFwaVVybCwgY2xhc3NUb1BsYWluKG1vZGVscykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0W10pID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IE1vZGVsW10gPSByZXNwb25zZS5tYXAoKGl0ZW06IG9iamVjdCk6IE1vZGVsID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShpdGVtKSk7XG4gICAgICAgICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShyZXN1bHQsICdwb3N0Jyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIGFuIGV4aXN0aW5nIE1vZGVsIGluc3RhbmNlIGluIGRhdGFiYXNlXG4gICAqL1xuICBwdXQobW9kZWw6IE1vZGVsLCBwYXRoID0gYCR7dGhpcy5hcGlVcmx9LyR7bW9kZWwuaWR9YCk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdwdXQnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHBhdGgsIGNsYXNzVG9QbGFpbihtb2RlbCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBNb2RlbCA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShyZXNwb25zZSk7XG4gICAgICAgICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbcmVzdWx0XSwgJ3B1dCcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcikpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSBtdWx0aXBsZSBleGlzdGluZyBNb2RlbCBpbnN0YW5jZXMgaW4gZGF0YWJhc2VcbiAgICovXG4gIHB1dEJhdGNoKG1vZGVsczogTW9kZWxbXSk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ3B1dEJhdGNoJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLmFwaVVybCwgY2xhc3NUb1BsYWluKG1vZGVscykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0W10pID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IE1vZGVsW10gPSByZXNwb25zZS5tYXAoKGl0ZW06IG9iamVjdCk6IE1vZGVsID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShpdGVtKSk7XG4gICAgICAgICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShyZXN1bHQsICdwdXQnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYSBNb2RlbCBpbnN0YW5jZSBmcm9tIGRhdGFiYXNlXG4gICAqL1xuICBkZWxldGUobW9kZWw6IE1vZGVsLCBwYXRoID0gYCR7dGhpcy5hcGlVcmx9LyR7bW9kZWwuaWR9YCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ2RlbGV0ZScpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUocGF0aClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW21vZGVsXSwgJ2RlbGV0ZScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIG11bHRpcGxlIE1vZGVsIGluc3RhbmNlcyBmcm9tIGRhdGFiYXNlXG4gICAqL1xuICBkZWxldGVCYXRjaChtb2RlbHM6IE1vZGVsW10pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdkZWxldGVCYXRjaCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXBpVXJsfS9kZWxldGVgLCBjbGFzc1RvUGxhaW4obW9kZWxzKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UobW9kZWxzLCAnZGVsZXRlJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdG9kbzogcmVtb3ZlIGRlbGV0ZUJhdGNoIGFmdGVyIGJhY2tlbmQgcmVmYWN0b3JcbiAgICovXG4gIGRlbGV0ZUJhdGNoVjIobW9kZWxzOiBNb2RlbFtdKSB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcignZGVsZXRlQmF0Y2gnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuYXBpVXJsfWAsIHsgYm9keTogeyBpZHM6IG1vZGVscy5tYXAobW9kZWwgPT4gbW9kZWwuaWQpIH0gfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UobW9kZWxzLCAnZGVsZXRlJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBtZXRob2Qgd2l0aCBtZXNzYWdlcyB0aGF0IGNhbiBiZSByZWRlZmluZWQgaW4gb3RoZXIgY2xhc3NlcyB0byBjdXN0b21pemUgaHR0cEVycm9yTWVzc2FnZXNcbiAgICovXG4gIHByb3RlY3RlZCBnZXRDdXN0b21IdHRwRXJyb3JNZXNzYWdlcygpOiBSZWNvcmQ8bnVtYmVyLCBzdHJpbmc+IHtcbiAgICByZXR1cm4ge31cbiAgfVxuICAvKipcbiAgICogSGFuZGxlIHJlc3BvbnNlIGVycm9ycyAtIHNob3dzIGVycm9yIGluIHRvYXN0XG4gICAqIGFuZCB0aHJvd3MgZXJyb3IgZnVydGhlclxuICAgKiBAcGFyYW0gZXJyb3IgLSBhbnkgYmFja2VuZCBlcnJvclxuICAgKiBAdGhyb3dzIEh0dHBFcnJvclJlc3BvbnNlIHwgRXJyb3IgLSBBbHdheXMgdGhyb3dzIHRoZSBlcnJvciBmdXJ0aGVyIGFzIGFuIE9ic2VydmFibGU8bmV2ZXI+XG4gICAqL1xuICBoYW5kbGVFcnJvcihlcnJvcjogdW5rbm93bikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICBpZiAodGhpcy51c2VCYWNrZW5kRXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yLmVycm9yLmRldGFpbCkge1xuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmVycm9yKGVycm9yLmVycm9yLmRldGFpbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZXJyb3IoZXJyb3IuZXJyb3IubWFwKChlcnJvcjogeyBtZXNzYWdlOiBzdHJpbmcgfSkgPT4gZXJyb3IubWVzc2FnZSkuam9pbignICcpKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZXJyb3IodGhpcy5odHRwRXJyb3JNZXNzYWdlc1tlcnJvci5zdGF0dXNdIHx8ICdVbmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgcmVzcG9uc2UgZGF0YSAtIHVwZGF0ZSBjYWNoZSBhbmQgZGlzcGF0Y2ggZXZlbnQgaWYgaXQgaXMgbmVlZGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlUmVzcG9uc2UocmVzcG9uc2U6IE1vZGVsW10sIG1ldGhvZDogSHR0cE1ldGhvZCkge1xuICAgIGlmICh0aGlzLmdldENhY2hlKCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy51cGRhdGVDYWNoZShyZXNwb25zZSwgbWV0aG9kKTtcbiAgICB9XG5cbiAgICAvLyBkaXNwYXRjaCBldmVudCBmb3IgaW50ZXJlc3RlZCBzZXJ2aWNlc1xuICAgIGlmIChyZXNwb25zZVswXSBpbnN0YW5jZW9mIE9ic2VydmFibGVNb2RlbCkge1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG1ldGhvZCwgcmVzcG9uc2UgYXMgdW5rbm93biBhcyBPYnNlcnZhYmxlTW9kZWxbXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYWNoZSB3aXRoIHBhc3NlZCBpdGVtcy4gQWRkL1VwZGF0ZSBkZXRlY3RzIGF1dG9tYXRpY2FsbHksIERlbGV0ZSB2aWEgb3B0aW9uYWwgZmxhZ1xuICAgKi9cbiAgcHJvdGVjdGVkIHVwZGF0ZUNhY2hlKGl0ZW1zOiBNb2RlbFtdLCBtZXRob2Q6IEh0dHBNZXRob2QpOiB2b2lkIHtcbiAgICBsZXQgY2FjaGU6IENvbGxlY3Rpb25Nb2RlbDtcblxuICAgIHN3aXRjaCAobWV0aG9kKSB7XG4gICAgICBjYXNlICdwb3N0JzpcbiAgICAgICAgY2FjaGUgPSB0aGlzLm9yZGVyQnlEZXNjID8gdGhpcy5jYWNoZS51bnNoaWZ0KC4uLml0ZW1zKSA6IHRoaXMuY2FjaGUucHVzaCguLi5pdGVtcyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdwdXQnOlxuICAgICAgICAvLyBAVE9ETyBBbGV4IG9sZCBpbnN0YW5jZVxuICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtOiBNb2RlbCkgPT4ge1xuICAgICAgICAgIGNhY2hlID0gdGhpcy5jYWNoZS5yZXBsYWNlQnkoJ2lkJywgaXRlbS5pZCwgaXRlbSk7XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgY2FjaGUgPSB0aGlzLmNhY2hlLnJlbW92ZUJ5KCdpZCcsIGl0ZW1zLm1hcCgoaXRlbTogTW9kZWwpID0+IGl0ZW0uaWQpKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIC8vIGNhc2UgJ2dldCc6XG4gICAgICAvLyAgIGNhY2hlID0gdGhpcy5jcmVhdGVDb2xsZWN0aW9uSW5zdGFuY2UodGhpcy5jb2xsZWN0aW9uQ2xhc3MsIGl0ZW1zKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldENhY2hlKGNhY2hlLnRvQXJyYXkoKSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYW5kIGRpc3BhdGNoIHJlc3QgZXZlbnRcbiAgICovXG4gIHByb3RlY3RlZCBkaXNwYXRjaEV2ZW50KG1ldGhvZDogSHR0cE1ldGhvZCwgaXRlbXM6IE9ic2VydmFibGVNb2RlbFtdKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnROYW1lOiBzdHJpbmcgPSB0aGlzLm1vZGVsQ2xhc3MuZ2V0RXZlbnROYW1lKG1ldGhvZCk7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoMihuZXcgQXBwRXZlbnQyKGV2ZW50TmFtZSwgaXRlbXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBtZXRob2QgaXMgbm90IGRpc2FibGVkLiBUaHJvdyBleGNlcHRpb24gb3RoZXJ3aXNlLlxuICAgKiBTb21lIGVudGl0aWVzIGRvZXMgbm90IGhhdmUgZW5kcG9pbnRzIGZvciBhbGwgbWV0aG9kcy5cbiAgICovXG4gIHByaXZhdGUgaGFuZGxlQWNjZXNzRXJyb3IobWV0aG9kOiBSZXN0TWV0aG9kKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkTWV0aG9kcy5pbmNsdWRlcyhtZXRob2QpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBNZXRob2QgJHttZXRob2R9KCkgaXMgbm90IGFsbG93ZWQgZm9yICR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBodHRwIGV2ZW50cyBhbmQgcnVuIGNhbGxiYWNrLlxuICAgKiBDU0UgLSBDbGVpbnQgU2VudCBFdmVudHNcbiAgICogQHBhcmFtIG1vZGVsQ2xhc3NcbiAgICogQHBhcmFtIG1ldGhvZHMgVGhlIGxpc3Qgb2YgaHR0cCBtZXRob2RzIHNob3VsZCBiZSBsaXN0ZW5lZCBmb3JcbiAgICogQHBhcmFtIGNhbGxiYWNrIFRoZSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiBldmVudCB0cmlnZ2VyZWRcbiAgICovXG4gIHByb3RlY3RlZCBsaXN0ZW5DU0UobW9kZWxDbGFzczogdHlwZW9mIE9ic2VydmFibGVNb2RlbCwgY2FsbGJhY2s6IEZ1bmN0aW9uLCBtZXRob2RzOiBIdHRwTWV0aG9kW10gPSBbJ3Bvc3QnLCAncHV0JywgJ2RlbGV0ZSddKTogdm9pZCB7XG4gICAgY2FsbGJhY2sgPSBjYWxsYmFjay5iaW5kKHRoaXMpO1xuXG4gICAgbWV0aG9kcy5mb3JFYWNoKChtZXRob2Q6IEh0dHBNZXRob2QpID0+IHtcbiAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbjIobW9kZWxDbGFzcy5nZXRFdmVudE5hbWUobWV0aG9kKSkuc3Vic2NyaWJlKChkYXRhOiBPYnNlcnZhYmxlTW9kZWxbXSkgPT4ge1xuICAgICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICAgIH0pO1xuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogY2hlY2sgaWYgdXNlciBoYXMgc3Vic2NyaXB0aW9uIHJvbGUgdG8gYWNjZXNzIGFwaVxuICAgKi9cbiAgaGFzUm9sZXMoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnJvbGVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhaW50ZXJzZWN0aW9uKEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JvbGVzJykpLCB0aGlzLnJvbGVzKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIGZvciBTZXJ2ZXItU2VudCBFdmVudHMgKFNTRSkgb24gdGhlIHNwZWNpZmllZCBNZXJjdXJlIHRvcGljXG4gICAqL1xuICBsaXN0ZW5TU0UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3NlU2VydmljZS5vbih0aGlzLm1lcmN1cmVUb3BpYykucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4ge1xuICAgICAgICBsZXQgbW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UocmVzcG9uc2UpO1xuICAgICAgICBsZXQgbWV0aG9kOiBIdHRwTWV0aG9kO1xuICAgICAgICBpZiAobW9kZWwuaWQpIHtcbiAgICAgICAgICBtZXRob2QgPSB0aGlzLmhhc0luQ2FjaGUobW9kZWwuaWQpID8gJ3B1dCcgOiAncG9zdCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbWV0aG9kID0gJ2RlbGV0ZSc7XG4gICAgICAgICAgLy8gd2UgZ290IGVtcHR5IGJvZHkgd2hlbiBpdGVtIGRlbGV0ZWQsIHNvIHdlIHNob3VsZCBnZXQgaWQgZnJvbSBBcGkgUGxhdGZvcm0gZGF0YSAoQGlkKVxuICAgICAgICAgIG1vZGVsID0gbWVyZ2UobW9kZWwsIHsgaWQ6ICtsYXN0KG1vZGVsWydAaWQnXS5zcGxpdCgnLycpKSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IG1ldGhvZCwgbW9kZWwgfTtcbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUoKGNoYW5nZSkgPT4ge1xuICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbY2hhbmdlLm1vZGVsXSwgY2hhbmdlLm1ldGhvZClcbiAgICB9KTtcbiAgfVxufVxuIl19