oxpi-nglib 1.0.14 → 1.0.15

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.
@@ -176,10 +176,8 @@ export class CommonWebService {
176
176
  return this.http.get(url, this.getHttpOptions()).pipe(map(data => data));
177
177
  }
178
178
  getProdutoComposicao(produtoId) {
179
- const url = this.PRODUTO_COMPOSICAO_BASE_URL;
180
- const params = new HttpParams()
181
- .set("produtoId", '' + produtoId);
182
- return this.http.get(url, this.getHttpOptions(params)).pipe(map(data => data));
179
+ const url = this.PRODUTO_COMPOSICAO_BASE_URL + produtoId;
180
+ return this.http.get(url, this.getHttpOptions()).pipe(map(data => data));
183
181
  }
184
182
  saveProdutoComposicao(s) {
185
183
  const url = this.PRODUTO_COMPOSICAO_BASE_URL;
@@ -237,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
237
235
  providedIn: 'root'
238
236
  }]
239
237
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXdlYi1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL3Byb3ZpZGVycy9jb21tb24td2ViLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7OztBQWF2QyxNQUFNLE9BQU8sZ0JBQWdCO0lBcUIzQixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBcEJwQyxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBRW5CLHlCQUFvQixHQUFXLEVBQUUsQ0FBQztRQUNsQywrQkFBMEIsR0FBVyxFQUFFLENBQUM7UUFDeEMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDdEIsMkJBQXNCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLDhCQUF5QixHQUFHLEVBQUUsQ0FBQztRQUMvQix3Q0FBbUMsR0FBRyxFQUFFLENBQUM7UUFDekMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFakIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDcEIsNkJBQXdCLEdBQUcsRUFBRSxDQUFDO1FBQzlCLGdDQUEyQixHQUFXLEVBQUUsQ0FBQztJQU1ELENBQUM7SUFFekMsUUFBUSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUNELEtBQUssQ0FBQyxPQUFlO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQywyQkFBMkIsR0FBRyxPQUFP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IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZ1bmNpb25hcmlvLCBGdW5jaW9uYXJpb0NhcmdvIH0gZnJvbSAnLi4vbW9kZWxzL2VudGlkYWRlcy9mdW5jaW9uYXJpbyc7XHJcbmltcG9ydCB7IFByb2R1dG8gfSBmcm9tICcuLi9tb2RlbHMvZW50aWRhZGVzL3Byb2R1dG8nO1xyXG5pbXBvcnQgeyBQcm9kdXRvQ29tcG9zaWNhbyB9IGZyb20gJy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0by1jb21wb3NpY2FvJztcclxuaW1wb3J0IHsgUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvLCBQcm9kdXRvR3J1cG8sIFByb2R1dG9TdWJncnVwbyB9IGZyb20gJy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0by1ncnVwbyc7XHJcbmltcG9ydCB7IE5jbSB9IGZyb20gJy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0by1uY20nO1xyXG5pbXBvcnQgeyBTZXRvckVzdG9xdWUgfSBmcm9tICcuLi9tb2RlbHMvZW50aWRhZGVzL3NldG9yLWVzdG9xdWUnO1xyXG5pbXBvcnQgeyBQYWdpbmdSZXN1bHQgfSBmcm9tICcuLi9tb2RlbHMvaW5mcmEvcGFnaW5nLXJlc3VsdCc7XHJcbmltcG9ydCB7IFNlYXJjaFNldHRpbmcgfSBmcm9tICcuLi9tb2RlbHMvc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmcnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbW9uV2ViU2VydmljZSB7XHJcbiAgUk9PVF9VUkw6IHN0cmluZyA9ICcnO1xyXG4gIEdFUkVOQ0lBTF9VUkwgPSAnJztcclxuXHJcbiAgRlVOQ0lPTkFSSU9fQkFTRV9VUkw6IHN0cmluZyA9ICcnO1xyXG4gIEZVTkNJT05BUklPX0NBUkdPX0JBU0VfVVJMOiBzdHJpbmcgPSAnJztcclxuICB0b2tlbjogc3RyaW5nID0gJyc7XHJcbiAgUFJPRFVUT19CQVNFX1VSTCA9ICcnO1xyXG4gIFBST0RVVE9fR1JVUE9fQkFTRV9VUkwgPSAnJztcclxuICBQUk9EVVRPX1NVQkdSVVBPX0JBU0VfVVJMID0gJyc7XHJcbiAgUFJPRFVUT19DQVRFR09SSUFfQ0FSREFQSU9fQkFTRV9VUkwgPSAnJztcclxuICBFU1RPUVVFX1VSTCA9ICcnO1xyXG4gIFxyXG4gIE1FRElBX0JBU0VfVVJMID0gJyc7XHJcbiAgTUVESUFfUFJPRFVUT19JTUFHRU1fVVJMID0gJyc7XHJcbiAgUFJPRFVUT19DT01QT1NJQ0FPX0JBU0VfVVJMOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgc3RhdGljIFVSTF9QQVJUX0JVU0NBID0gXCJCdXNjYS9cIjtcclxuICBzdGF0aWMgVVJMX1BBUlRfTkVYVF9JRCA9IFwiR2V0TmV4dElkL1wiO1xyXG4gIHN0YXRpYyBVUkxfUEFSVF9CVVNDQV9QQUdJTkFEQSA9IFwiQnVzY2FQYWdpbmFkYS9cIjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IH1cclxuXHJcbiAgc2V0VG9rZW4odG9rZW46IHN0cmluZykge1xyXG4gICAgdGhpcy50b2tlbiA9IHRva2VuO1xyXG4gIH1cclxuICBzdGFydChyb290VXJsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuUk9PVF9VUkwgPSByb290VXJsO1xyXG4gICAgdGhpcy5QUk9EVVRPX0NPTVBPU0lDQU9fQkFTRV9VUkwgPSByb290VXJsICsgXCJQcm9kdXRvQ29tcG9zaWNhby9cIjtcclxuICAgIHRoaXMuRlVOQ0lPTkFSSU9fQkFTRV9VUkwgPSByb290VXJsICsgXCJGdW5jaW9uYXJpby9cIjtcclxuICAgIHRoaXMuRlVOQ0lPTkFSSU9fQ0FSR09fQkFTRV9VUkwgPSByb290VXJsICsgXCJGdW5jaW9uYXJpb0NhcmdvL1wiO1xyXG4gICAgdGhpcy5QUk9EVVRPX0JBU0VfVVJMID0gcm9vdFVybCArIFwiUHJvZHV0b0Zpc2NhbC9cIjtcclxuICAgIHRoaXMuUFJPRFVUT19HUlVQT19CQVNFX1VSTCA9IHJvb3RVcmwgKyBcIlByb2R1dG9HcnVwby9cIjtcclxuICAgIHRoaXMuUFJPRFVUT19TVUJHUlVQT19CQVNFX1VSTCA9IHJvb3RVcmwgKyBcIlByb2R1dG9TdWJncnVwby9cIjtcclxuICAgIHRoaXMuUFJPRFVUT19DQVRFR09SSUFfQ0FSREFQSU9fQkFTRV9VUkwgPSByb290VXJsICsgXCJQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8vXCI7XHJcbiAgICB0aGlzLkVTVE9RVUVfVVJMID0gcm9vdFVybCArICdFc3RvcXVlLyc7XHJcbiAgICB0aGlzLkdFUkVOQ0lBTF9VUkwgPSByb290VXJsICsgJ0dlcmVuY2lhbC8nXHJcbiAgICB0aGlzLk1FRElBX0JBU0VfVVJMID0gdGhpcy5HRVJFTkNJQUxfVVJMICsgXCJNZWRpYS9cIjtcclxuICAgIHRoaXMuTUVESUFfUFJPRFVUT19JTUFHRU1fVVJMID0gdGhpcy5HRVJFTkNJQUxfVVJMICsgJ0dldFByb2R1dG9JbWFnZW0vJztcclxuICB9XHJcblxyXG4gIGdldEZ1bmNpb25hcmlvcygpOiBPYnNlcnZhYmxlPEZ1bmNpb25hcmlvW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuRlVOQ0lPTkFSSU9fQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxGdW5jaW9uYXJpb1tdPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldEZ1bmNpb25hcmlvc0NhcmdvcygpOiBPYnNlcnZhYmxlPEZ1bmNpb25hcmlvQ2FyZ29bXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GVU5DSU9OQVJJT19DQVJHT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEZ1bmNpb25hcmlvQ2FyZ29bXT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuXHJcbiAgYnVzY2FGdW5jaW9uYXJpbyhzZXR0aW5nOiBTZWFyY2hTZXR0aW5nKTogT2JzZXJ2YWJsZTxGdW5jaW9uYXJpb1tdPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLkZVTkNJT05BUklPX0JBU0VfVVJMICsgQ29tbW9uV2ViU2VydmljZS5VUkxfUEFSVF9CVVNDQTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxGdW5jaW9uYXJpb1tdPih1cmwsIEpTT04uc3RyaW5naWZ5KHNldHRpbmcpLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBnZXROZXh0SWRGdW5jaW9uYXJpbygpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GVU5DSU9OQVJJT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfTkVYVF9JRDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBnZXRBbGxGdW5jaW9uYXJpbygpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GVU5DSU9OQVJJT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBzYXZlRnVuY2lvbmFyaW8oczogRnVuY2lvbmFyaW8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GVU5DSU9OQVJJT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGFkZEZ1bmNpb25hcmlvKHA6IEZ1bmNpb25hcmlvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuRlVOQ0lPTkFSSU9fQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocCksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGRlbGV0ZUZ1bmNpb25hcmlvKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GVU5DSU9OQVJJT19CQVNFX1VSTCArIGlkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55Pih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG5cclxuICBcclxuICBidXNjYVBhZ2luYWRhUHJvZHV0b3Moc2V0dGluZyA6IFNlYXJjaFNldHRpbmcsIHBhZ2UgOiBudW1iZXIsIHBhZ2VTaXplIDogbnVtYmVyKTogT2JzZXJ2YWJsZTxQYWdpbmdSZXN1bHQ8UHJvZHV0bz4+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfQlVTQ0FfUEFHSU5BREE7XHJcbiAgICBjb25zdCBwID0geyBzZXR0aW5nOiBzZXR0aW5nLCBwYWdlOiBwYWdlLCBwYWdlU2l6ZTogcGFnZVNpemUgfTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxQYWdpbmdSZXN1bHQ8UHJvZHV0bz4+KHVybCwgSlNPTi5zdHJpbmdpZnkocCksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldE5leHRJZFByb2R1dG8oKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfTkVYVF9JRDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBzYXZlUHJvZHV0byhzOiBQcm9kdXRvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGFkZFByb2R1dG8ocCA6IFByb2R1dG8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHApLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBkZWxldGVQcm9kdXRvKGlkIDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19CQVNFX1VSTCArIGlkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55Pih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG5cclxuICBidXNjYVByb2R1dG9HcnVwbyhzZXR0aW5nIDogU2VhcmNoU2V0dGluZyk6IE9ic2VydmFibGU8UHJvZHV0b0dydXBvW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19HUlVQT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfQlVTQ0E7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UHJvZHV0b0dydXBvW10+KHVybCwgSlNPTi5zdHJpbmdpZnkoc2V0dGluZyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfSAgXHJcbiAgZ2V0QWxsUHJvZHV0b0dydXBvKCk6IE9ic2VydmFibGU8UHJvZHV0b0dydXBvW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19HUlVQT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFByb2R1dG9HcnVwb1tdPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldE5leHRJZFByb2R1dG9HcnVwbygpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0dSVVBPX0JBU0VfVVJMICsgQ29tbW9uV2ViU2VydmljZS5VUkxfUEFSVF9ORVhUX0lEO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8bnVtYmVyPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIHNhdmVQcm9kdXRvR3J1cG8oczogUHJvZHV0b0dydXBvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19HUlVQT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIHRyYW5zZmVyZVByb2R1dG9HcnVwbyhncnVwb0lkIDogbnVtYmVyLCBub3ZvR3J1cG9JZCA6IG51bWJlcik6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQkFTRV9VUkwgKyAnQWx0ZXJhR3J1cG8nO1xyXG4gICAgY29uc3QgcCA9IHsgb2xkSWQ6IGdydXBvSWQsIG5ld0lkOiBub3ZvR3J1cG9JZCB9O1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bWJlcj4odXJsLCBKU09OLnN0cmluZ2lmeShwKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgYWRkUHJvZHV0b0dydXBvKHAgOiBQcm9kdXRvR3J1cG8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0dSVVBPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHApLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBkZWxldGVQcm9kdXRvR3J1cG8oaWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0dSVVBPX0JBU0VfVVJMICsgaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGJ1c2NhTmNtKG5jbSA6IHN0cmluZyk6IE9ic2VydmFibGU8TmNtW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19CQVNFX1VSTCArICdCdXNjYU5DTS8nO1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgLnNldChcIm5jbVwiLCAnJyArIG5jbSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOY21bXT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKHBhcmFtcykpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBcclxuICBmaW5kTmNtKG5jbSA6IHN0cmluZyk6IE9ic2VydmFibGU8TmNtIHwgbnVsbD4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0JBU0VfVVJMICsgJ0ZpbmROQ00vJztcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgIC5zZXQoXCJuY21cIiwgJycgKyBuY20pO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TmNtIHwgbnVsbD4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKHBhcmFtcykpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuXHJcblxyXG4gIGJ1c2NhUHJvZHV0b1N1YmdydXBvKHNldHRpbmcgOiBTZWFyY2hTZXR0aW5nKTogT2JzZXJ2YWJsZTxQcm9kdXRvU3ViZ3J1cG9bXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX1NVQkdSVVBPX0JBU0VfVVJMICsgQ29tbW9uV2ViU2VydmljZS5VUkxfUEFSVF9CVVNDQTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxQcm9kdXRvU3ViZ3J1cG9bXT4odXJsLCBKU09OLnN0cmluZ2lmeShzZXR0aW5nKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZ2V0TmV4dElkUHJvZHV0b1N1YmdydXBvKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fU1VCR1JVUE9fQkFTRV9VUkwgKyBDb21tb25XZWJTZXJ2aWNlLlVSTF9QQVJUX05FWFRfSUQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxudW1iZXI+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgc2F2ZVByb2R1dG9TdWJncnVwbyhzOiBQcm9kdXRvU3ViZ3J1cG8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX1NVQkdSVVBPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShzKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgYWRkUHJvZHV0b1N1YmdydXBvKHAgOiBQcm9kdXRvU3ViZ3J1cG8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX1NVQkdSVVBPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHApLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBkZWxldGVQcm9kdXRvU3ViZ3J1cG8oaWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX1NVQkdSVVBPX0JBU0VfVVJMICsgaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGJ1c2NhUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKHNldHRpbmcgOiBTZWFyY2hTZXR0aW5nKTogT2JzZXJ2YWJsZTxQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW9bXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0NBVEVHT1JJQV9DQVJEQVBJT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfQlVTQ0E7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvW10+KHVybCwgSlNPTi5zdHJpbmdpZnkoc2V0dGluZyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldE5leHRJZFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpbygpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0NBVEVHT1JJQV9DQVJEQVBJT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfTkVYVF9JRDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBzYXZlUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKHM6IFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQ0FURUdPUklBX0NBUkRBUElPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShzKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgYWRkUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKHAgOiBQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0NBVEVHT1JJQV9DQVJEQVBJT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShwKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZGVsZXRlUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKGlkIDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19DQVRFR09SSUFfQ0FSREFQSU9fQkFTRV9VUkwgKyBpZDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBcclxuICBnZXRBbGxTZXRvcmVzKCk6IE9ic2VydmFibGU8U2V0b3JFc3RvcXVlW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuRVNUT1FVRV9VUkwgKyAnU2V0b3IvJztcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNldG9yRXN0b3F1ZVtdPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9kdXRvQ29tcG9zaWNhbyhwcm9kdXRvSWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPFByb2R1dG9Db21wb3NpY2FvW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19DT01QT1NJQ0FPX0JBU0VfVVJMOyAgICBcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgIC5zZXQoXCJwcm9kdXRvSWRcIiwgJycgKyBwcm9kdXRvSWQpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UHJvZHV0b0NvbXBvc2ljYW9bXT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKHBhcmFtcykpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH0gIFxyXG4gIHNhdmVQcm9kdXRvQ29tcG9zaWNhbyhzOiBQcm9kdXRvQ29tcG9zaWNhbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQ09NUE9TSUNBT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGFkZFByb2R1dG9Db21wb3NpY2FvKHAgOiBQcm9kdXRvQ29tcG9zaWNhbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQ09NUE9TSUNBT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShwKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZGVsZXRlUHJvZHV0b0NvbXBvc2ljYW8oaWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0NPTVBPU0lDQU9fQkFTRV9VUkwgKyBpZDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SHR0cE9wdGlvbnMocGFyYW1ldGVycz86IEh0dHBQYXJhbXMpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICBcIkFjY2VwdFwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcclxuICAgICAgICBcIkF1dGhvcml6YXRpb25cIjogJ3Rva2VuICcgKyB0aGlzLnRva2VuLFxyXG4gICAgICB9KSxcclxuICAgICAgcGFyYW1zOiBwYXJhbWV0ZXJzXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRFeGNlbE9wdGlvbnMocGFyYW1ldGVycz86IEh0dHBQYXJhbXMpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICBcIkFjY2VwdFwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcclxuICAgICAgICBcIkF1dGhvcml6YXRpb25cIjogJ3Rva2VuICcgKyB0aGlzLnRva2VuLFxyXG4gICAgICB9KSxcclxuICAgICAgcGFyYW1zOiBwYXJhbWV0ZXJzLFxyXG4gICAgICByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgYXMgJ2pzb24nLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldEh0bWxPcHRpb25zKHBhcmFtZXRlcnM/OiBIdHRwUGFyYW1zKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgXCJBY2NlcHRcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXHJcbiAgICAgICAgXCJBdXRob3JpemF0aW9uXCI6ICd0b2tlbiAnICsgdGhpcy50b2tlbixcclxuICAgICAgfSksXHJcbiAgICAgIHBhcmFtczogcGFyYW1ldGVycyxcclxuICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcgYXMgJ2pzb24nLFxyXG4gICAgfTtcclxuICB9XHJcbn0iXX0=
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXdlYi1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL3Byb3ZpZGVycy9jb21tb24td2ViLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7OztBQWF2QyxNQUFNLE9BQU8sZ0JBQWdCO0lBcUIzQixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBcEJwQyxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBRW5CLHlCQUFvQixHQUFXLEVBQUUsQ0FBQztRQUNsQywrQkFBMEIsR0FBVyxFQUFFLENBQUM7UUFDeEMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDdEIsMkJBQXNCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLDhCQUF5QixHQUFHLEVBQUUsQ0FBQztRQUMvQix3Q0FBbUMsR0FBRyxFQUFFLENBQUM7UUFDekMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFakIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDcEIsNkJBQXdCLEdBQUcsRUFBRSxDQUFDO1FBQzlCLGdDQUEyQixHQUFXLEVBQUUsQ0FBQztJQU1ELENBQUM7SUFFekMsUUFBUSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUNELEtBQUssQ0FBQyxPQUFlO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQywyQkFBMkIsR0FBRyxPQUFP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QkFBa0I7Z0JBQ2xDLFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLGVBQWUsRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUs7YUFDdkMsQ0FBQztZQUNGLE1BQU0sRUFBRSxVQUFVO1NBQ25CLENBQUE7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLFVBQXVCO1FBQ3JDLE9BQU87WUFDTCxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7Z0JBQ3ZCLGNBQWMsRUFBRSxrQkFBa0I7Z0JBQ2xDLFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLGVBQWUsRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUs7YUFDdkMsQ0FBQztZQUNGLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLFlBQVksRUFBRSxhQUF1QjtTQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxVQUF1QjtRQUNwQyxPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDO2dCQUN2QixjQUFjLEVBQUUsa0JBQWtCO2dCQUNsQyxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixlQUFlLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLO2FBQ3ZDLENBQUM7WUFDRixNQUFNLEVBQUUsVUFBVTtZQUNsQixZQUFZLEVBQUUsTUFBZ0I7U0FDL0IsQ0FBQztJQUNKLENBQUM7O0FBak9NLCtCQUFjLEdBQUcsUUFBUSxDQUFDO0FBQzFCLGlDQUFnQixHQUFHLFlBQVksQ0FBQztBQUNoQyx3Q0FBdUIsR0FBRyxnQkFBZ0IsQ0FBQzs2R0FuQnZDLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZ1bmNpb25hcmlvLCBGdW5jaW9uYXJpb0NhcmdvIH0gZnJvbSAnLi4vbW9kZWxzL2VudGlkYWRlcy9mdW5jaW9uYXJpbyc7XHJcbmltcG9ydCB7IFByb2R1dG8gfSBmcm9tICcuLi9tb2RlbHMvZW50aWRhZGVzL3Byb2R1dG8nO1xyXG5pbXBvcnQgeyBQcm9kdXRvQ29tcG9zaWNhbyB9IGZyb20gJy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0by1jb21wb3NpY2FvJztcclxuaW1wb3J0IHsgUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvLCBQcm9kdXRvR3J1cG8sIFByb2R1dG9TdWJncnVwbyB9IGZyb20gJy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0by1ncnVwbyc7XHJcbmltcG9ydCB7IE5jbSB9IGZyb20gJy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0by1uY20nO1xyXG5pbXBvcnQgeyBTZXRvckVzdG9xdWUgfSBmcm9tICcuLi9tb2RlbHMvZW50aWRhZGVzL3NldG9yLWVzdG9xdWUnO1xyXG5pbXBvcnQgeyBQYWdpbmdSZXN1bHQgfSBmcm9tICcuLi9tb2RlbHMvaW5mcmEvcGFnaW5nLXJlc3VsdCc7XHJcbmltcG9ydCB7IFNlYXJjaFNldHRpbmcgfSBmcm9tICcuLi9tb2RlbHMvc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmcnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbW9uV2ViU2VydmljZSB7XHJcbiAgUk9PVF9VUkw6IHN0cmluZyA9ICcnO1xyXG4gIEdFUkVOQ0lBTF9VUkwgPSAnJztcclxuXHJcbiAgRlVOQ0lPTkFSSU9fQkFTRV9VUkw6IHN0cmluZyA9ICcnO1xyXG4gIEZVTkNJT05BUklPX0NBUkdPX0JBU0VfVVJMOiBzdHJpbmcgPSAnJztcclxuICB0b2tlbjogc3RyaW5nID0gJyc7XHJcbiAgUFJPRFVUT19CQVNFX1VSTCA9ICcnO1xyXG4gIFBST0RVVE9fR1JVUE9fQkFTRV9VUkwgPSAnJztcclxuICBQUk9EVVRPX1NVQkdSVVBPX0JBU0VfVVJMID0gJyc7XHJcbiAgUFJPRFVUT19DQVRFR09SSUFfQ0FSREFQSU9fQkFTRV9VUkwgPSAnJztcclxuICBFU1RPUVVFX1VSTCA9ICcnO1xyXG4gIFxyXG4gIE1FRElBX0JBU0VfVVJMID0gJyc7XHJcbiAgTUVESUFfUFJPRFVUT19JTUFHRU1fVVJMID0gJyc7XHJcbiAgUFJPRFVUT19DT01QT1NJQ0FPX0JBU0VfVVJMOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgc3RhdGljIFVSTF9QQVJUX0JVU0NBID0gXCJCdXNjYS9cIjtcclxuICBzdGF0aWMgVVJMX1BBUlRfTkVYVF9JRCA9IFwiR2V0TmV4dElkL1wiO1xyXG4gIHN0YXRpYyBVUkxfUEFSVF9CVVNDQV9QQUdJTkFEQSA9IFwiQnVzY2FQYWdpbmFkYS9cIjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IH1cclxuXHJcbiAgc2V0VG9rZW4odG9rZW46IHN0cmluZykge1xyXG4gICAgdGhpcy50b2tlbiA9IHRva2VuO1xyXG4gIH1cclxuICBzdGFydChyb290VXJsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuUk9PVF9VUkwgPSByb290VXJsO1xyXG4gICAgdGhpcy5QUk9EVVRPX0NPTVBPU0lDQU9fQkFTRV9VUkwgPSByb290VXJsICsgXCJQcm9kdXRvQ29tcG9zaWNhby9cIjtcclxuICAgIHRoaXMuRlVOQ0lPTkFSSU9fQkFTRV9VUkwgPSByb290VXJsICsgXCJGdW5jaW9uYXJpby9cIjtcclxuICAgIHRoaXMuRlVOQ0lPTkFSSU9fQ0FSR09fQkFTRV9VUkwgPSByb290VXJsICsgXCJGdW5jaW9uYXJpb0NhcmdvL1wiO1xyXG4gICAgdGhpcy5QUk9EVVRPX0JBU0VfVVJMID0gcm9vdFVybCArIFwiUHJvZHV0b0Zpc2NhbC9cIjtcclxuICAgIHRoaXMuUFJPRFVUT19HUlVQT19CQVNFX1VSTCA9IHJvb3RVcmwgKyBcIlByb2R1dG9HcnVwby9cIjtcclxuICAgIHRoaXMuUFJPRFVUT19TVUJHUlVQT19CQVNFX1VSTCA9IHJvb3RVcmwgKyBcIlByb2R1dG9TdWJncnVwby9cIjtcclxuICAgIHRoaXMuUFJPRFVUT19DQVRFR09SSUFfQ0FSREFQSU9fQkFTRV9VUkwgPSByb290VXJsICsgXCJQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8vXCI7XHJcbiAgICB0aGlzLkVTVE9RVUVfVVJMID0gcm9vdFVybCArICdFc3RvcXVlLyc7XHJcbiAgICB0aGlzLkdFUkVOQ0lBTF9VUkwgPSByb290VXJsICsgJ0dlcmVuY2lhbC8nXHJcbiAgICB0aGlzLk1FRElBX0JBU0VfVVJMID0gdGhpcy5HRVJFTkNJQUxfVVJMICsgXCJNZWRpYS9cIjtcclxuICAgIHRoaXMuTUVESUFfUFJPRFVUT19JTUFHRU1fVVJMID0gdGhpcy5HRVJFTkNJQUxfVVJMICsgJ0dldFByb2R1dG9JbWFnZW0vJztcclxuICB9XHJcblxyXG4gIGdldEZ1bmNpb25hcmlvcygpOiBPYnNlcnZhYmxlPEZ1bmNpb25hcmlvW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuRlVOQ0lPTkFSSU9fQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxGdW5jaW9uYXJpb1tdPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldEZ1bmNpb25hcmlvc0NhcmdvcygpOiBPYnNlcnZhYmxlPEZ1bmNpb25hcmlvQ2FyZ29bXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GVU5DSU9OQVJJT19DQVJHT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEZ1bmNpb25hcmlvQ2FyZ29bXT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuXHJcbiAgYnVzY2FGdW5jaW9uYXJpbyhzZXR0aW5nOiBTZWFyY2hTZXR0aW5nKTogT2JzZXJ2YWJsZTxGdW5jaW9uYXJpb1tdPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLkZVTkNJT05BUklPX0JBU0VfVVJMICsgQ29tbW9uV2ViU2VydmljZS5VUkxfUEFSVF9CVVNDQTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxGdW5jaW9uYXJpb1tdPih1cmwsIEpTT04uc3RyaW5naWZ5KHNldHRpbmcpLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBnZXROZXh0SWRGdW5jaW9uYXJpbygpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GVU5DSU9OQVJJT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfTkVYVF9JRDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBnZXRBbGxGdW5jaW9uYXJpbygpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GVU5DSU9OQVJJT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBzYXZlRnVuY2lvbmFyaW8oczogRnVuY2lvbmFyaW8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GVU5DSU9OQVJJT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGFkZEZ1bmNpb25hcmlvKHA6IEZ1bmNpb25hcmlvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuRlVOQ0lPTkFSSU9fQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocCksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGRlbGV0ZUZ1bmNpb25hcmlvKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GVU5DSU9OQVJJT19CQVNFX1VSTCArIGlkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55Pih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG5cclxuICBcclxuICBidXNjYVBhZ2luYWRhUHJvZHV0b3Moc2V0dGluZyA6IFNlYXJjaFNldHRpbmcsIHBhZ2UgOiBudW1iZXIsIHBhZ2VTaXplIDogbnVtYmVyKTogT2JzZXJ2YWJsZTxQYWdpbmdSZXN1bHQ8UHJvZHV0bz4+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfQlVTQ0FfUEFHSU5BREE7XHJcbiAgICBjb25zdCBwID0geyBzZXR0aW5nOiBzZXR0aW5nLCBwYWdlOiBwYWdlLCBwYWdlU2l6ZTogcGFnZVNpemUgfTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxQYWdpbmdSZXN1bHQ8UHJvZHV0bz4+KHVybCwgSlNPTi5zdHJpbmdpZnkocCksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldE5leHRJZFByb2R1dG8oKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfTkVYVF9JRDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBzYXZlUHJvZHV0byhzOiBQcm9kdXRvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGFkZFByb2R1dG8ocCA6IFByb2R1dG8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHApLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBkZWxldGVQcm9kdXRvKGlkIDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19CQVNFX1VSTCArIGlkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55Pih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG5cclxuICBidXNjYVByb2R1dG9HcnVwbyhzZXR0aW5nIDogU2VhcmNoU2V0dGluZyk6IE9ic2VydmFibGU8UHJvZHV0b0dydXBvW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19HUlVQT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfQlVTQ0E7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UHJvZHV0b0dydXBvW10+KHVybCwgSlNPTi5zdHJpbmdpZnkoc2V0dGluZyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfSAgXHJcbiAgZ2V0QWxsUHJvZHV0b0dydXBvKCk6IE9ic2VydmFibGU8UHJvZHV0b0dydXBvW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19HUlVQT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFByb2R1dG9HcnVwb1tdPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldE5leHRJZFByb2R1dG9HcnVwbygpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0dSVVBPX0JBU0VfVVJMICsgQ29tbW9uV2ViU2VydmljZS5VUkxfUEFSVF9ORVhUX0lEO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8bnVtYmVyPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIHNhdmVQcm9kdXRvR3J1cG8oczogUHJvZHV0b0dydXBvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19HUlVQT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIHRyYW5zZmVyZVByb2R1dG9HcnVwbyhncnVwb0lkIDogbnVtYmVyLCBub3ZvR3J1cG9JZCA6IG51bWJlcik6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQkFTRV9VUkwgKyAnQWx0ZXJhR3J1cG8nO1xyXG4gICAgY29uc3QgcCA9IHsgb2xkSWQ6IGdydXBvSWQsIG5ld0lkOiBub3ZvR3J1cG9JZCB9O1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bWJlcj4odXJsLCBKU09OLnN0cmluZ2lmeShwKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgYWRkUHJvZHV0b0dydXBvKHAgOiBQcm9kdXRvR3J1cG8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0dSVVBPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHApLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBkZWxldGVQcm9kdXRvR3J1cG8oaWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0dSVVBPX0JBU0VfVVJMICsgaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGJ1c2NhTmNtKG5jbSA6IHN0cmluZyk6IE9ic2VydmFibGU8TmNtW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19CQVNFX1VSTCArICdCdXNjYU5DTS8nO1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgLnNldChcIm5jbVwiLCAnJyArIG5jbSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOY21bXT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKHBhcmFtcykpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBcclxuICBmaW5kTmNtKG5jbSA6IHN0cmluZyk6IE9ic2VydmFibGU8TmNtIHwgbnVsbD4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0JBU0VfVVJMICsgJ0ZpbmROQ00vJztcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgIC5zZXQoXCJuY21cIiwgJycgKyBuY20pO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TmNtIHwgbnVsbD4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKHBhcmFtcykpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuXHJcblxyXG4gIGJ1c2NhUHJvZHV0b1N1YmdydXBvKHNldHRpbmcgOiBTZWFyY2hTZXR0aW5nKTogT2JzZXJ2YWJsZTxQcm9kdXRvU3ViZ3J1cG9bXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX1NVQkdSVVBPX0JBU0VfVVJMICsgQ29tbW9uV2ViU2VydmljZS5VUkxfUEFSVF9CVVNDQTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxQcm9kdXRvU3ViZ3J1cG9bXT4odXJsLCBKU09OLnN0cmluZ2lmeShzZXR0aW5nKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZ2V0TmV4dElkUHJvZHV0b1N1YmdydXBvKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fU1VCR1JVUE9fQkFTRV9VUkwgKyBDb21tb25XZWJTZXJ2aWNlLlVSTF9QQVJUX05FWFRfSUQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxudW1iZXI+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgc2F2ZVByb2R1dG9TdWJncnVwbyhzOiBQcm9kdXRvU3ViZ3J1cG8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX1NVQkdSVVBPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShzKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgYWRkUHJvZHV0b1N1YmdydXBvKHAgOiBQcm9kdXRvU3ViZ3J1cG8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX1NVQkdSVVBPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHApLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBkZWxldGVQcm9kdXRvU3ViZ3J1cG8oaWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX1NVQkdSVVBPX0JBU0VfVVJMICsgaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGJ1c2NhUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKHNldHRpbmcgOiBTZWFyY2hTZXR0aW5nKTogT2JzZXJ2YWJsZTxQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW9bXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0NBVEVHT1JJQV9DQVJEQVBJT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfQlVTQ0E7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvW10+KHVybCwgSlNPTi5zdHJpbmdpZnkoc2V0dGluZyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldE5leHRJZFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpbygpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0NBVEVHT1JJQV9DQVJEQVBJT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfTkVYVF9JRDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBzYXZlUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKHM6IFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQ0FURUdPUklBX0NBUkRBUElPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShzKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgYWRkUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKHAgOiBQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0NBVEVHT1JJQV9DQVJEQVBJT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShwKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZGVsZXRlUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKGlkIDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19DQVRFR09SSUFfQ0FSREFQSU9fQkFTRV9VUkwgKyBpZDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBcclxuICBnZXRBbGxTZXRvcmVzKCk6IE9ic2VydmFibGU8U2V0b3JFc3RvcXVlW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuRVNUT1FVRV9VUkwgKyAnU2V0b3IvJztcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNldG9yRXN0b3F1ZVtdPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9kdXRvQ29tcG9zaWNhbyhwcm9kdXRvSWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPFByb2R1dG9Db21wb3NpY2FvW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19DT01QT1NJQ0FPX0JBU0VfVVJMICsgcHJvZHV0b0lkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UHJvZHV0b0NvbXBvc2ljYW9bXT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH0gIFxyXG4gIHNhdmVQcm9kdXRvQ29tcG9zaWNhbyhzOiBQcm9kdXRvQ29tcG9zaWNhbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQ09NUE9TSUNBT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGFkZFByb2R1dG9Db21wb3NpY2FvKHAgOiBQcm9kdXRvQ29tcG9zaWNhbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQ09NUE9TSUNBT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShwKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZGVsZXRlUHJvZHV0b0NvbXBvc2ljYW8oaWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0NPTVBPU0lDQU9fQkFTRV9VUkwgKyBpZDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SHR0cE9wdGlvbnMocGFyYW1ldGVycz86IEh0dHBQYXJhbXMpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICBcIkFjY2VwdFwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcclxuICAgICAgICBcIkF1dGhvcml6YXRpb25cIjogJ3Rva2VuICcgKyB0aGlzLnRva2VuLFxyXG4gICAgICB9KSxcclxuICAgICAgcGFyYW1zOiBwYXJhbWV0ZXJzXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRFeGNlbE9wdGlvbnMocGFyYW1ldGVycz86IEh0dHBQYXJhbXMpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICBcIkFjY2VwdFwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcclxuICAgICAgICBcIkF1dGhvcml6YXRpb25cIjogJ3Rva2VuICcgKyB0aGlzLnRva2VuLFxyXG4gICAgICB9KSxcclxuICAgICAgcGFyYW1zOiBwYXJhbWV0ZXJzLFxyXG4gICAgICByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgYXMgJ2pzb24nLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldEh0bWxPcHRpb25zKHBhcmFtZXRlcnM/OiBIdHRwUGFyYW1zKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgXCJBY2NlcHRcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXHJcbiAgICAgICAgXCJBdXRob3JpemF0aW9uXCI6ICd0b2tlbiAnICsgdGhpcy50b2tlbixcclxuICAgICAgfSksXHJcbiAgICAgIHBhcmFtczogcGFyYW1ldGVycyxcclxuICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcgYXMgJ2pzb24nLFxyXG4gICAgfTtcclxuICB9XHJcbn0iXX0=
@@ -299,10 +299,8 @@ class CommonWebService {
299
299
  return this.http.get(url, this.getHttpOptions()).pipe(map(data => data));
300
300
  }
301
301
  getProdutoComposicao(produtoId) {
302
- const url = this.PRODUTO_COMPOSICAO_BASE_URL;
303
- const params = new HttpParams()
304
- .set("produtoId", '' + produtoId);
305
- return this.http.get(url, this.getHttpOptions(params)).pipe(map(data => data));
302
+ const url = this.PRODUTO_COMPOSICAO_BASE_URL + produtoId;
303
+ return this.http.get(url, this.getHttpOptions()).pipe(map(data => data));
306
304
  }
307
305
  saveProdutoComposicao(s) {
308
306
  const url = this.PRODUTO_COMPOSICAO_BASE_URL;