@vendasta/billing 12.9.0 → 12.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/_internal/enums/index.mjs +2 -1
- package/esm2020/lib/_internal/enums/subscription-relationship.enum.mjs +17 -0
- package/esm2020/lib/_internal/index.mjs +2 -1
- package/esm2020/lib/_internal/interfaces/billable-item.interface.mjs +1 -1
- package/esm2020/lib/_internal/interfaces/index.mjs +1 -1
- package/esm2020/lib/_internal/interfaces/subscription-relationship.interface.mjs +2 -0
- package/esm2020/lib/_internal/objects/billable-item.mjs +4 -1
- package/esm2020/lib/_internal/objects/index.mjs +2 -1
- package/esm2020/lib/_internal/objects/subscription-relationship.mjs +271 -0
- package/esm2020/lib/_internal/subscription-relationship.api.service.mjs +51 -0
- package/fesm2015/vendasta-billing.mjs +486 -159
- package/fesm2015/vendasta-billing.mjs.map +1 -1
- package/fesm2020/vendasta-billing.mjs +486 -159
- package/fesm2020/vendasta-billing.mjs.map +1 -1
- package/lib/_internal/enums/index.d.ts +1 -0
- package/lib/_internal/enums/subscription-relationship.enum.d.ts +8 -0
- package/lib/_internal/index.d.ts +1 -0
- package/lib/_internal/interfaces/billable-item.interface.d.ts +1 -0
- package/lib/_internal/interfaces/index.d.ts +1 -0
- package/lib/_internal/interfaces/subscription-relationship.interface.d.ts +45 -0
- package/lib/_internal/objects/billable-item.d.ts +1 -0
- package/lib/_internal/objects/index.d.ts +1 -0
- package/lib/_internal/objects/subscription-relationship.d.ts +71 -0
- package/lib/_internal/subscription-relationship.api.service.d.ts +18 -0
- package/package.json +1 -1
|
@@ -204,6 +204,9 @@ export class BillableItem {
|
|
|
204
204
|
if (typeof this.price !== 'undefined' && this.price !== null) {
|
|
205
205
|
toReturn['price'] = 'toApiJson' in this.price ? this.price.toApiJson() : this.price;
|
|
206
206
|
}
|
|
207
|
+
if (typeof this.subscriptionId !== 'undefined') {
|
|
208
|
+
toReturn['subscriptionId'] = this.subscriptionId;
|
|
209
|
+
}
|
|
207
210
|
return toReturn;
|
|
208
211
|
}
|
|
209
212
|
}
|
|
@@ -808,4 +811,4 @@ export class UnexpireBillableItemRequest {
|
|
|
808
811
|
return toReturn;
|
|
809
812
|
}
|
|
810
813
|
}
|
|
811
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGFibGUtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2JpbGxpbmdfc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvYmlsbGFibGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxDQUFDLE1BQU0sVUFBVSxDQUFDO0FBRTlCLE1BQU0sVUFBVSxpQkFBaUIsQ0FBSSxPQUFZLEVBQUUsS0FBYTtJQUM5RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVELE1BQU0sT0FBTyxlQUFlO0lBUXhCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzlCLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUU7WUFBQyxDQUFDLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUFDO1FBQ3hFLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQUM7UUFDbEUsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUFtQztRQUMzQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFB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QUFDO0lBRUQsWUFBWSxNQUErQztRQUN2RCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFDO1FBQ3ZGLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQUM7UUFDbEUsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FBQztRQUN2RixJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUFDO1FBQzlFLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBhZ2VkUmVxdWVzdE9wdGlvbnMsIFBhZ2VkUmVzcG9uc2VNZXRhZGF0YSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IFByb2R1Y3RQcmljaW5nIH0gZnJvbSAnLi9wcm9kdWN0LXByaWNpbmcnO1xuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnVtU3RyaW5nVG9WYWx1ZTxFPihlbnVtUmVmOiBhbnksIHZhbHVlOiBzdHJpbmcpOiBFIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGVudW1SZWZbdmFsdWVdO1xufVxuXG5leHBvcnQgY2xhc3MgQmlsbEl0ZW1SZXF1ZXN0IGltcGxlbWVudHMgaS5CaWxsSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuICAgIGJpbGxpbmdTdGFydDogRGF0ZTtcbiAgICBwcm9yYXRlZFRvOiBEYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQmlsbEl0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQmlsbEl0ZW1SZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmJpbGxpbmdTdGFydCkge20uYmlsbGluZ1N0YXJ0ID0gbmV3IERhdGUocHJvdG8uYmlsbGluZ1N0YXJ0KTt9XG4gICAgICAgIGlmIChwcm90by5wcm9yYXRlZFRvKSB7bS5wcm9yYXRlZFRvID0gbmV3IERhdGUocHJvdG8ucHJvcmF0ZWRUbyk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkJpbGxJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5iaWxsaW5nU3RhcnQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuYmlsbGluZ1N0YXJ0ICE9PSBudWxsKSB7dG9SZXR1cm5bJ2JpbGxpbmdTdGFydCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5iaWxsaW5nU3RhcnQgPyAodGhpcy5iaWxsaW5nU3RhcnQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYmlsbGluZ1N0YXJ0O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3JhdGVkVG8gIT09ICd1bmRlZmluZWQnICYmIHRoaXMucHJvcmF0ZWRUbyAhPT0gbnVsbCkge3RvUmV0dXJuWydwcm9yYXRlZFRvJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnByb3JhdGVkVG8gPyAodGhpcy5wcm9yYXRlZFRvIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnByb3JhdGVkVG87fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmlsbE11bHRpcGxlSXRlbXNSZXF1ZXN0IGltcGxlbWVudHMgaS5CaWxsTXVsdGlwbGVJdGVtc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBpdGVtczogSXRlbVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQmlsbE11bHRpcGxlSXRlbXNSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQmlsbE11bHRpcGxlSXRlbXNSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLml0ZW1zKSB7bS5pdGVtcyA9IHByb3RvLml0ZW1zLm1hcChJdGVtLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pdGVtcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5pdGVtcyAhPT0gbnVsbCkge3RvUmV0dXJuWydpdGVtcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pdGVtcyA/ICh0aGlzLml0ZW1zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLml0ZW1zO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJpbGxNdWx0aXBsZUl0ZW1zUmVzcG9uc2UgaW1wbGVtZW50cyBpLkJpbGxNdWx0aXBsZUl0ZW1zUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGlkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBCaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQmlsbE11bHRpcGxlSXRlbXNSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQmlsbE11bHRpcGxlSXRlbXNSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZCddID0gdGhpcy5pZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCaWxsYWJsZUl0ZW0gaW1wbGVtZW50cyBpLkJpbGxhYmxlSXRlbUludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG4gICAgZXhwaXJ5OiBEYXRlO1xuICAgIGJpbGxpbmdTdGFydDogRGF0ZTtcbiAgICBjcmVhdGVkOiBEYXRlO1xuICAgIHVwZGF0ZWQ6IERhdGU7XG4gICAgZnJlcXVlbmN5OiBlLkZyZXF1ZW5jeTtcbiAgICBuZXh0UmVuZXdhbDogRGF0ZTtcbiAgICBjdXN0b21lck5hbWU6IHN0cmluZztcbiAgICBwcm9kdWN0TmFtZTogc3RyaW5nO1xuICAgIGN1c3RvbWVyQWRkcmVzczogQmlsbGFibGVJdGVtQ3VzdG9tZXJBZGRyZXNzO1xuICAgIGN1c3RvbVVuaXRQcmljZTogbnVtYmVyO1xuICAgIHJldGFpbEZyZXF1ZW5jeTogZS5GcmVxdWVuY3k7XG4gICAgbmV4dFJldGFpbFJlbmV3YWw6IERhdGU7XG4gICAgcmV0YWlsVW5pdFByaWNlOiBudW1iZXI7XG4gICAgc3RhdHVzOiBlLlN1YnNjcmlwdGlvblN0YXR1cztcbiAgICBwcmljZTogUHJvZHVjdFByaWNpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBCaWxsYWJsZUl0ZW0ge1xuICAgICAgICBsZXQgbSA9IG5ldyBCaWxsYWJsZUl0ZW0oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZXhwaXJ5KSB7bS5leHBpcnkgPSBuZXcgRGF0ZShwcm90by5leHBpcnkpO31cbiAgICAgICAgaWYgKHByb3RvLmJpbGxpbmdTdGFydCkge20uYmlsbGluZ1N0YXJ0ID0gbmV3IERhdGUocHJvdG8uYmlsbGluZ1N0YXJ0KTt9XG4gICAgICAgIGlmIChwcm90by5jcmVhdGVkKSB7bS5jcmVhdGVkID0gbmV3IERhdGUocHJvdG8uY3JlYXRlZCk7fVxuICAgICAgICBpZiAocHJvdG8udXBkYXRlZCkge20udXBkYXRlZCA9IG5ldyBEYXRlKHByb3RvLnVwZGF0ZWQpO31cbiAgICAgICAgaWYgKHByb3RvLmZyZXF1ZW5jeSkge20uZnJlcXVlbmN5ID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5GcmVxdWVuY3k+KGUuRnJlcXVlbmN5LCBwcm90by5mcmVxdWVuY3kpO31cbiAgICAgICAgaWYgKHByb3RvLm5leHRSZW5ld2FsKSB7bS5uZXh0UmVuZXdhbCA9IG5ldyBEYXRlKHByb3RvLm5leHRSZW5ld2FsKTt9XG4gICAgICAgIGlmIChwcm90by5jdXN0b21lckFkZHJlc3MpIHttLmN1c3RvbWVyQWRkcmVzcyA9IEJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzcy5mcm9tUHJvdG8ocHJvdG8uY3VzdG9tZXJBZGRyZXNzKTt9XG4gICAgICAgIGlmIChwcm90by5jdXN0b21Vbml0UHJpY2UpIHttLmN1c3RvbVVuaXRQcmljZSA9IHBhcnNlSW50KHByb3RvLmN1c3RvbVVuaXRQcmljZSwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnJldGFpbEZyZXF1ZW5jeSkge20ucmV0YWlsRnJlcXVlbmN5ID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5GcmVxdWVuY3k+KGUuRnJlcXVlbmN5LCBwcm90by5yZXRhaWxGcmVxdWVuY3kpO31cbiAgICAgICAgaWYgKHByb3RvLm5leHRSZXRhaWxSZW5ld2FsKSB7bS5uZXh0UmV0YWlsUmVuZXdhbCA9IG5ldyBEYXRlKHByb3RvLm5leHRSZXRhaWxSZW5ld2FsKTt9XG4gICAgICAgIGlmIChwcm90by5yZXRhaWxVbml0UHJpY2UpIHttLnJldGFpbFVuaXRQcmljZSA9IHBhcnNlSW50KHByb3RvLnJldGFpbFVuaXRQcmljZSwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnN0YXR1cykge20uc3RhdHVzID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5TdWJzY3JpcHRpb25TdGF0dXM+KGUuU3Vic2NyaXB0aW9uU3RhdHVzLCBwcm90by5zdGF0dXMpO31cbiAgICAgICAgaWYgKHByb3RvLnByaWNlKSB7bS5wcmljZSA9IFByb2R1Y3RQcmljaW5nLmZyb21Qcm90byhwcm90by5wcmljZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkJpbGxhYmxlSXRlbUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5leHBpcnkgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZXhwaXJ5ICE9PSBudWxsKSB7dG9SZXR1cm5bJ2V4cGlyeSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5leHBpcnkgPyAodGhpcy5leHBpcnkgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZXhwaXJ5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJpbGxpbmdTdGFydCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5iaWxsaW5nU3RhcnQgIT09IG51bGwpIHt0b1JldHVyblsnYmlsbGluZ1N0YXJ0J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmJpbGxpbmdTdGFydCA/ICh0aGlzLmJpbGxpbmdTdGFydCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5iaWxsaW5nU3RhcnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3JlYXRlZCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jcmVhdGVkICE9PSBudWxsKSB7dG9SZXR1cm5bJ2NyZWF0ZWQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuY3JlYXRlZCA/ICh0aGlzLmNyZWF0ZWQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY3JlYXRlZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51cGRhdGVkICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnVwZGF0ZWQgIT09IG51bGwpIHt0b1JldHVyblsndXBkYXRlZCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy51cGRhdGVkID8gKHRoaXMudXBkYXRlZCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy51cGRhdGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZyZXF1ZW5jeSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZnJlcXVlbmN5J10gPSB0aGlzLmZyZXF1ZW5jeTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5uZXh0UmVuZXdhbCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5uZXh0UmVuZXdhbCAhPT0gbnVsbCkge3RvUmV0dXJuWyduZXh0UmVuZXdhbCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5uZXh0UmVuZXdhbCA/ICh0aGlzLm5leHRSZW5ld2FsIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm5leHRSZW5ld2FsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVyTmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJOYW1lJ10gPSB0aGlzLmN1c3RvbWVyTmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9kdWN0TmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncHJvZHVjdE5hbWUnXSA9IHRoaXMucHJvZHVjdE5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJBZGRyZXNzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmN1c3RvbWVyQWRkcmVzcyAhPT0gbnVsbCkge3RvUmV0dXJuWydjdXN0b21lckFkZHJlc3MnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuY3VzdG9tZXJBZGRyZXNzID8gKHRoaXMuY3VzdG9tZXJBZGRyZXNzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmN1c3RvbWVyQWRkcmVzczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21Vbml0UHJpY2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbVVuaXRQcmljZSddID0gdGhpcy5jdXN0b21Vbml0UHJpY2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmV0YWlsRnJlcXVlbmN5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydyZXRhaWxGcmVxdWVuY3knXSA9IHRoaXMucmV0YWlsRnJlcXVlbmN5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5leHRSZXRhaWxSZW5ld2FsICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm5leHRSZXRhaWxSZW5ld2FsICE9PSBudWxsKSB7dG9SZXR1cm5bJ25leHRSZXRhaWxSZW5ld2FsJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm5leHRSZXRhaWxSZW5ld2FsID8gKHRoaXMubmV4dFJldGFpbFJlbmV3YWwgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubmV4dFJldGFpbFJlbmV3YWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmV0YWlsVW5pdFByaWNlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydyZXRhaWxVbml0UHJpY2UnXSA9IHRoaXMucmV0YWlsVW5pdFByaWNlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXR1cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3RhdHVzJ10gPSB0aGlzLnN0YXR1czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcmljZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wcmljZSAhPT0gbnVsbCkge3RvUmV0dXJuWydwcmljZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wcmljZSA/ICh0aGlzLnByaWNlIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnByaWNlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENhbkJpbGxJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuQ2FuQmlsbEl0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgc2t1OiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDYW5CaWxsSXRlbVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBDYW5CaWxsSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkNhbkJpbGxJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3JlYXRlVXNhZ2VSZXF1ZXN0IGltcGxlbWVudHMgaS5DcmVhdGVVc2FnZVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIHF1YW50aXR5OiBudW1iZXI7XG4gICAgdXNhZ2VEYXRlOiBEYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ3JlYXRlVXNhZ2VSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQ3JlYXRlVXNhZ2VSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnF1YW50aXR5KSB7bS5xdWFudGl0eSA9IHBhcnNlSW50KHByb3RvLnF1YW50aXR5LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8udXNhZ2VEYXRlKSB7bS51c2FnZURhdGUgPSBuZXcgRGF0ZShwcm90by51c2FnZURhdGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5DcmVhdGVVc2FnZVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucXVhbnRpdHkgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3F1YW50aXR5J10gPSB0aGlzLnF1YW50aXR5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVzYWdlRGF0ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy51c2FnZURhdGUgIT09IG51bGwpIHt0b1JldHVyblsndXNhZ2VEYXRlJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnVzYWdlRGF0ZSA/ICh0aGlzLnVzYWdlRGF0ZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy51c2FnZURhdGU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmlsbGFibGVJdGVtQ3VzdG9tZXJBZGRyZXNzIGltcGxlbWVudHMgaS5CaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3NJbnRlcmZhY2Uge1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICBjaXR5OiBzdHJpbmc7XG4gICAgc3RhdGU6IHN0cmluZztcbiAgICB6aXA6IHN0cmluZztcbiAgICBjb3VudHJ5OiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBCaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3Mge1xuICAgICAgICBsZXQgbSA9IG5ldyBCaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3MoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFkZHJlc3MgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FkZHJlc3MnXSA9IHRoaXMuYWRkcmVzczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jaXR5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjaXR5J10gPSB0aGlzLmNpdHk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3RhdGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3N0YXRlJ10gPSB0aGlzLnN0YXRlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnppcCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnemlwJ10gPSB0aGlzLnppcDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb3VudHJ5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb3VudHJ5J10gPSB0aGlzLmNvdW50cnk7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBEZWxldGVCaWxsYWJsZUl0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFeHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0IGltcGxlbWVudHMgaS5FeHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIG9yZGVySWQ6IHN0cmluZztcbiAgICBleHBpcnk6IERhdGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBFeHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5leHBpcnkpIHttLmV4cGlyeSA9IG5ldyBEYXRlKHByb3RvLmV4cGlyeSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlcklkJ10gPSB0aGlzLm9yZGVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXhwaXJ5ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmV4cGlyeSAhPT0gbnVsbCkge3RvUmV0dXJuWydleHBpcnknXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZXhwaXJ5ID8gKHRoaXMuZXhwaXJ5IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmV4cGlyeTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFeHBvcnRTdWJzY3JpcHRpb25zUmVxdWVzdCBpbXBsZW1lbnRzIGkuRXhwb3J0U3Vic2NyaXB0aW9uc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGZpbHRlcnM6IExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEZpbHRlcnM7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBFeHBvcnRTdWJzY3JpcHRpb25zUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEV4cG9ydFN1YnNjcmlwdGlvbnNSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmZpbHRlcnMpIHttLmZpbHRlcnMgPSBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzLmZyb21Qcm90byhwcm90by5maWx0ZXJzKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRXhwb3J0U3Vic2NyaXB0aW9uc1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5maWx0ZXJzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmZpbHRlcnMgIT09IG51bGwpIHt0b1JldHVyblsnZmlsdGVycyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5maWx0ZXJzID8gKHRoaXMuZmlsdGVycyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5maWx0ZXJzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnMgaW1wbGVtZW50cyBpLkxpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnNJbnRlcmZhY2Uge1xuICAgIHNrdXM6IHN0cmluZ1tdO1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RGaWx0ZXJzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVycygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVyc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdXMnXSA9IHRoaXMuc2t1czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEZpbHRlcnMgaW1wbGVtZW50cyBpLkxpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEZpbHRlcnNJbnRlcmZhY2Uge1xuICAgIHNrdXM6IHN0cmluZ1tdO1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgc2VhcmNoVGVybTogc3RyaW5nO1xuICAgIHN0YXR1czogZS5TdWJzY3JpcHRpb25TdGF0dXM7XG4gICAgZXhwaXJlZERhdGVHdGU6IERhdGU7XG4gICAgZXhwaXJlZERhdGVMdGU6IERhdGU7XG4gICAgZnJlcXVlbmNpZXM6IGUuRnJlcXVlbmN5W107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0RmlsdGVycygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5zdGF0dXMpIHttLnN0YXR1cyA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuU3Vic2NyaXB0aW9uU3RhdHVzPihlLlN1YnNjcmlwdGlvblN0YXR1cywgcHJvdG8uc3RhdHVzKTt9XG4gICAgICAgIGlmIChwcm90by5leHBpcmVkRGF0ZUd0ZSkge20uZXhwaXJlZERhdGVHdGUgPSBuZXcgRGF0ZShwcm90by5leHBpcmVkRGF0ZUd0ZSk7fVxuICAgICAgICBpZiAocHJvdG8uZXhwaXJlZERhdGVMdGUpIHttLmV4cGlyZWREYXRlTHRlID0gbmV3IERhdGUocHJvdG8uZXhwaXJlZERhdGVMdGUpO31cbiAgICAgICAgaWYgKHByb3RvLmZyZXF1ZW5jaWVzKSB7bS5mcmVxdWVuY2llcyA9IHByb3RvLmZyZXF1ZW5jaWVzLm1hcCgodjogc3RyaW5nKSA9PiBlbnVtU3RyaW5nVG9WYWx1ZTxlLkZyZXF1ZW5jeT4oZS5GcmVxdWVuY3ksIHYpKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0RmlsdGVyc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdXMnXSA9IHRoaXMuc2t1czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNlYXJjaFRlcm0gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NlYXJjaFRlcm0nXSA9IHRoaXMuc2VhcmNoVGVybTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdGF0dXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3N0YXR1cyddID0gdGhpcy5zdGF0dXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXhwaXJlZERhdGVHdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZXhwaXJlZERhdGVHdGUgIT09IG51bGwpIHt0b1JldHVyblsnZXhwaXJlZERhdGVHdGUnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZXhwaXJlZERhdGVHdGUgPyAodGhpcy5leHBpcmVkRGF0ZUd0ZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5leHBpcmVkRGF0ZUd0ZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5leHBpcmVkRGF0ZUx0ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5leHBpcmVkRGF0ZUx0ZSAhPT0gbnVsbCkge3RvUmV0dXJuWydleHBpcmVkRGF0ZUx0ZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5leHBpcmVkRGF0ZUx0ZSA/ICh0aGlzLmV4cGlyZWREYXRlTHRlIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmV4cGlyZWREYXRlTHRlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZyZXF1ZW5jaWVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydmcmVxdWVuY2llcyddID0gdGhpcy5mcmVxdWVuY2llczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRCaWxsYWJsZUl0ZW1SZXF1ZXN0IGltcGxlbWVudHMgaS5HZXRCaWxsYWJsZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIG9yZGVySWQ6IHN0cmluZztcbiAgICBwcm9qZWN0aW9uRmlsdGVyOiBTdWJzY3JpcHRpb25Qcm9qZWN0aW9uRmlsdGVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0QmlsbGFibGVJdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldEJpbGxhYmxlSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ucHJvamVjdGlvbkZpbHRlcikge20ucHJvamVjdGlvbkZpbHRlciA9IFN1YnNjcmlwdGlvblByb2plY3Rpb25GaWx0ZXIuZnJvbVByb3RvKHByb3RvLnByb2plY3Rpb25GaWx0ZXIpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5HZXRCaWxsYWJsZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3JkZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnb3JkZXJJZCddID0gdGhpcy5vcmRlcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb2plY3Rpb25GaWx0ZXIgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucHJvamVjdGlvbkZpbHRlciAhPT0gbnVsbCkge3RvUmV0dXJuWydwcm9qZWN0aW9uRmlsdGVyJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnByb2plY3Rpb25GaWx0ZXIgPyAodGhpcy5wcm9qZWN0aW9uRmlsdGVyIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnByb2plY3Rpb25GaWx0ZXI7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0QmlsbGFibGVJdGVtUmVzcG9uc2UgaW1wbGVtZW50cyBpLkdldEJpbGxhYmxlSXRlbVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpdGVtOiBCaWxsYWJsZUl0ZW07XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRCaWxsYWJsZUl0ZW1SZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldEJpbGxhYmxlSXRlbVJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLml0ZW0pIHttLml0ZW0gPSBCaWxsYWJsZUl0ZW0uZnJvbVByb3RvKHByb3RvLml0ZW0pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5HZXRCaWxsYWJsZUl0ZW1SZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLml0ZW0gIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaXRlbSAhPT0gbnVsbCkge3RvUmV0dXJuWydpdGVtJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLml0ZW0gPyAodGhpcy5pdGVtIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLml0ZW07fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdCBpbXBsZW1lbnRzIGkuR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEludGVyZmFjZSB7XG4gICAgc3Vic2NyaXB0aW9uS2V5czogR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEtleVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uc3Vic2NyaXB0aW9uS2V5cykge20uc3Vic2NyaXB0aW9uS2V5cyA9IHByb3RvLnN1YnNjcmlwdGlvbktleXMubWFwKEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXkuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN1YnNjcmlwdGlvbktleXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuc3Vic2NyaXB0aW9uS2V5cyAhPT0gbnVsbCkge3RvUmV0dXJuWydzdWJzY3JpcHRpb25LZXlzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnN1YnNjcmlwdGlvbktleXMgPyAodGhpcy5zdWJzY3JpcHRpb25LZXlzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnN1YnNjcmlwdGlvbktleXM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVzcG9uc2UgaW1wbGVtZW50cyBpLkdldE11bHRpU3Vic2NyaXB0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBzdWJzY3JpcHRpb25zOiBCaWxsYWJsZUl0ZW1bXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdldE11bHRpU3Vic2NyaXB0aW9uc1Jlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uc3Vic2NyaXB0aW9ucykge20uc3Vic2NyaXB0aW9ucyA9IHByb3RvLnN1YnNjcmlwdGlvbnMubWFwKEJpbGxhYmxlSXRlbS5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5HZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN1YnNjcmlwdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuc3Vic2NyaXB0aW9ucyAhPT0gbnVsbCkge3RvUmV0dXJuWydzdWJzY3JpcHRpb25zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnN1YnNjcmlwdGlvbnMgPyAodGhpcy5zdWJzY3JpcHRpb25zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnN1YnNjcmlwdGlvbnM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgSXRlbSBpbXBsZW1lbnRzIGkuSXRlbUludGVyZmFjZSB7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIG9yZGVySWQ6IHN0cmluZztcbiAgICBiaWxsaW5nU3RhcnQ6IERhdGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBJdGVtIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgSXRlbSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5iaWxsaW5nU3RhcnQpIHttLmJpbGxpbmdTdGFydCA9IG5ldyBEYXRlKHByb3RvLmJpbGxpbmdTdGFydCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkl0ZW1JbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5iaWxsaW5nU3RhcnQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuYmlsbGluZ1N0YXJ0ICE9PSBudWxsKSB7dG9SZXR1cm5bJ2JpbGxpbmdTdGFydCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5iaWxsaW5nU3RhcnQgPyAodGhpcy5iaWxsaW5nU3RhcnQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYmlsbGluZ1N0YXJ0O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXkgaW1wbGVtZW50cyBpLkdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXlJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdEtleSB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXkoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXlJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlcklkJ10gPSB0aGlzLm9yZGVySWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0IGltcGxlbWVudHMgaS5MaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGZpbHRlcnM6IExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnM7XG4gICAgcGFnaW5nT3B0aW9uczogUGFnZWRSZXF1ZXN0T3B0aW9ucztcbiAgICBzZWFyY2hUZXJtOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZmlsdGVycykge20uZmlsdGVycyA9IExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnMuZnJvbVByb3RvKHByb3RvLmZpbHRlcnMpO31cbiAgICAgICAgaWYgKHByb3RvLnBhZ2luZ09wdGlvbnMpIHttLnBhZ2luZ09wdGlvbnMgPSBQYWdlZFJlcXVlc3RPcHRpb25zLmZyb21Qcm90byhwcm90by5wYWdpbmdPcHRpb25zKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmlsdGVycyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5maWx0ZXJzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ZpbHRlcnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZmlsdGVycyA/ICh0aGlzLmZpbHRlcnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZmlsdGVyczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYWdpbmdPcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnBhZ2luZ09wdGlvbnMgIT09IG51bGwpIHt0b1JldHVyblsncGFnaW5nT3B0aW9ucyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wYWdpbmdPcHRpb25zID8gKHRoaXMucGFnaW5nT3B0aW9ucyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wYWdpbmdPcHRpb25zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNlYXJjaFRlcm0gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NlYXJjaFRlcm0nXSA9IHRoaXMuc2VhcmNoVGVybTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0QmlsbGFibGVJdGVtc1Jlc3BvbnNlIGltcGxlbWVudHMgaS5MaXN0QmlsbGFibGVJdGVtc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpdGVtczogQmlsbGFibGVJdGVtW107XG4gICAgcGFnaW5nTWV0YWRhdGE6IFBhZ2VkUmVzcG9uc2VNZXRhZGF0YTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IExpc3RCaWxsYWJsZUl0ZW1zUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBMaXN0QmlsbGFibGVJdGVtc1Jlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLml0ZW1zKSB7bS5pdGVtcyA9IHByb3RvLml0ZW1zLm1hcChCaWxsYWJsZUl0ZW0uZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5wYWdpbmdNZXRhZGF0YSkge20ucGFnaW5nTWV0YWRhdGEgPSBQYWdlZFJlc3BvbnNlTWV0YWRhdGEuZnJvbVByb3RvKHByb3RvLnBhZ2luZ01ldGFkYXRhKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdEJpbGxhYmxlSXRlbXNSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLml0ZW1zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLml0ZW1zICE9PSBudWxsKSB7dG9SZXR1cm5bJ2l0ZW1zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLml0ZW1zID8gKHRoaXMuaXRlbXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaXRlbXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFnaW5nTWV0YWRhdGEgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucGFnaW5nTWV0YWRhdGEgIT09IG51bGwpIHt0b1JldHVyblsncGFnaW5nTWV0YWRhdGEnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucGFnaW5nTWV0YWRhdGEgPyAodGhpcy5wYWdpbmdNZXRhZGF0YSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wYWdpbmdNZXRhZGF0YTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3QgaW1wbGVtZW50cyBpLkxpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEludGVyZmFjZSB7XG4gICAgZmlsdGVyczogTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0RmlsdGVycztcbiAgICBwYWdpbmdPcHRpb25zOiBQYWdlZFJlcXVlc3RPcHRpb25zO1xuICAgIHByb2plY3Rpb25GaWx0ZXI6IFN1YnNjcmlwdGlvblByb2plY3Rpb25GaWx0ZXI7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZmlsdGVycykge20uZmlsdGVycyA9IExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEZpbHRlcnMuZnJvbVByb3RvKHByb3RvLmZpbHRlcnMpO31cbiAgICAgICAgaWYgKHByb3RvLnBhZ2luZ09wdGlvbnMpIHttLnBhZ2luZ09wdGlvbnMgPSBQYWdlZFJlcXVlc3RPcHRpb25zLmZyb21Qcm90byhwcm90by5wYWdpbmdPcHRpb25zKTt9XG4gICAgICAgIGlmIChwcm90by5wcm9qZWN0aW9uRmlsdGVyKSB7bS5wcm9qZWN0aW9uRmlsdGVyID0gU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlci5mcm9tUHJvdG8ocHJvdG8ucHJvamVjdGlvbkZpbHRlcik7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZpbHRlcnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZmlsdGVycyAhPT0gbnVsbCkge3RvUmV0dXJuWydmaWx0ZXJzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmZpbHRlcnMgPyAodGhpcy5maWx0ZXJzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmZpbHRlcnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFnaW5nT3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wYWdpbmdPcHRpb25zICE9PSBudWxsKSB7dG9SZXR1cm5bJ3BhZ2luZ09wdGlvbnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucGFnaW5nT3B0aW9ucyA/ICh0aGlzLnBhZ2luZ09wdGlvbnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucGFnaW5nT3B0aW9uczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9qZWN0aW9uRmlsdGVyICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnByb2plY3Rpb25GaWx0ZXIgIT09IG51bGwpIHt0b1JldHVyblsncHJvamVjdGlvbkZpbHRlciddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wcm9qZWN0aW9uRmlsdGVyID8gKHRoaXMucHJvamVjdGlvbkZpbHRlciBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wcm9qZWN0aW9uRmlsdGVyO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2UgaW1wbGVtZW50cyBpLkxpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHN1YnNjcmlwdGlvbnM6IEJpbGxhYmxlSXRlbVtdO1xuICAgIHBhZ2luZ01ldGFkYXRhOiBQYWdlZFJlc3BvbnNlTWV0YWRhdGE7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0U3Vic2NyaXB0aW9uc1Jlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTGlzdFN1YnNjcmlwdGlvbnNSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5zdWJzY3JpcHRpb25zKSB7bS5zdWJzY3JpcHRpb25zID0gcHJvdG8uc3Vic2NyaXB0aW9ucy5tYXAoQmlsbGFibGVJdGVtLmZyb21Qcm90byk7fVxuICAgICAgICBpZiAocHJvdG8ucGFnaW5nTWV0YWRhdGEpIHttLnBhZ2luZ01ldGFkYXRhID0gUGFnZWRSZXNwb25zZU1ldGFkYXRhLmZyb21Qcm90byhwcm90by5wYWdpbmdNZXRhZGF0YSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdWJzY3JpcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnN1YnNjcmlwdGlvbnMgIT09IG51bGwpIHt0b1JldHVyblsnc3Vic2NyaXB0aW9ucyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5zdWJzY3JpcHRpb25zID8gKHRoaXMuc3Vic2NyaXB0aW9ucyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5zdWJzY3JpcHRpb25zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhZ2luZ01ldGFkYXRhICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnBhZ2luZ01ldGFkYXRhICE9PSBudWxsKSB7dG9SZXR1cm5bJ3BhZ2luZ01ldGFkYXRhJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnBhZ2luZ01ldGFkYXRhID8gKHRoaXMucGFnaW5nTWV0YWRhdGEgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucGFnaW5nTWV0YWRhdGE7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlciBpbXBsZW1lbnRzIGkuU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlckludGVyZmFjZSB7XG4gICAgcHJpY2U6IGJvb2xlYW47XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBTdWJzY3JpcHRpb25Qcm9qZWN0aW9uRmlsdGVyIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlcigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlckludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByaWNlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwcmljZSddID0gdGhpcy5wcmljZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVbmV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3QgaW1wbGVtZW50cyBpLlVuZXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBVbmV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBVbmV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlVuZXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbiJdfQ==
|
|
814
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGFibGUtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2JpbGxpbmdfc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvYmlsbGFibGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxDQUFDLE1BQU0sVUFBVSxDQUFDO0FBRTlCLE1BQU0sVUFBVSxpQkFBaUIsQ0FBSSxPQUFZLEVBQUUsS0FBYTtJQUM5RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVELE1BQU0sT0FBTyxlQUFlO0lBUXhCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzlCLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUU7WUFBQyxDQUFDLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUFDO1FBQ3hFLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQUM7UUFDbEUsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUFtQztRQUMzQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFB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QUEyQixFQUFFLENBQUM7UUFDMUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBK0M7UUFDdkQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FBQztRQUN2RixJQUFJLE9BQU8sSUFBSSxDQUFDLEdBQUcsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUFDO1FBQ2xFLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQUM7UUFDdkYsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FBQztRQUM5RSxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIE9iamVjdHMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCAqIGFzIGkgZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQYWdlZFJlcXVlc3RPcHRpb25zLCBQYWdlZFJlc3BvbnNlTWV0YWRhdGEgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBQcm9kdWN0UHJpY2luZyB9IGZyb20gJy4vcHJvZHVjdC1wcmljaW5nJztcbmltcG9ydCAqIGFzIGUgZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW51bVN0cmluZ1RvVmFsdWU8RT4oZW51bVJlZjogYW55LCB2YWx1ZTogc3RyaW5nKTogRSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiBlbnVtUmVmW3ZhbHVlXTtcbn1cblxuZXhwb3J0IGNsYXNzIEJpbGxJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuQmlsbEl0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIG9yZGVySWQ6IHN0cmluZztcbiAgICBiaWxsaW5nU3RhcnQ6IERhdGU7XG4gICAgcHJvcmF0ZWRUbzogRGF0ZTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEJpbGxJdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEJpbGxJdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5iaWxsaW5nU3RhcnQpIHttLmJpbGxpbmdTdGFydCA9IG5ldyBEYXRlKHByb3RvLmJpbGxpbmdTdGFydCk7fVxuICAgICAgICBpZiAocHJvdG8ucHJvcmF0ZWRUbykge20ucHJvcmF0ZWRUbyA9IG5ldyBEYXRlKHByb3RvLnByb3JhdGVkVG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5CaWxsSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlcklkJ10gPSB0aGlzLm9yZGVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYmlsbGluZ1N0YXJ0ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmJpbGxpbmdTdGFydCAhPT0gbnVsbCkge3RvUmV0dXJuWydiaWxsaW5nU3RhcnQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuYmlsbGluZ1N0YXJ0ID8gKHRoaXMuYmlsbGluZ1N0YXJ0IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmJpbGxpbmdTdGFydDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9yYXRlZFRvICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnByb3JhdGVkVG8gIT09IG51bGwpIHt0b1JldHVyblsncHJvcmF0ZWRUbyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wcm9yYXRlZFRvID8gKHRoaXMucHJvcmF0ZWRUbyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wcm9yYXRlZFRvO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdCBpbXBsZW1lbnRzIGkuQmlsbE11bHRpcGxlSXRlbXNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgaXRlbXM6IEl0ZW1bXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5pdGVtcykge20uaXRlbXMgPSBwcm90by5pdGVtcy5tYXAoSXRlbS5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5CaWxsTXVsdGlwbGVJdGVtc1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaXRlbXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaXRlbXMgIT09IG51bGwpIHt0b1JldHVyblsnaXRlbXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuaXRlbXMgPyAodGhpcy5pdGVtcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5pdGVtczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlIGltcGxlbWVudHMgaS5CaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQmlsbE11bHRpcGxlSXRlbXNSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IEJpbGxNdWx0aXBsZUl0ZW1zUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkJpbGxNdWx0aXBsZUl0ZW1zUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmlsbGFibGVJdGVtIGltcGxlbWVudHMgaS5CaWxsYWJsZUl0ZW1JbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuICAgIGV4cGlyeTogRGF0ZTtcbiAgICBiaWxsaW5nU3RhcnQ6IERhdGU7XG4gICAgY3JlYXRlZDogRGF0ZTtcbiAgICB1cGRhdGVkOiBEYXRlO1xuICAgIGZyZXF1ZW5jeTogZS5GcmVxdWVuY3k7XG4gICAgbmV4dFJlbmV3YWw6IERhdGU7XG4gICAgY3VzdG9tZXJOYW1lOiBzdHJpbmc7XG4gICAgcHJvZHVjdE5hbWU6IHN0cmluZztcbiAgICBjdXN0b21lckFkZHJlc3M6IEJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzcztcbiAgICBjdXN0b21Vbml0UHJpY2U6IG51bWJlcjtcbiAgICByZXRhaWxGcmVxdWVuY3k6IGUuRnJlcXVlbmN5O1xuICAgIG5leHRSZXRhaWxSZW5ld2FsOiBEYXRlO1xuICAgIHJldGFpbFVuaXRQcmljZTogbnVtYmVyO1xuICAgIHN0YXR1czogZS5TdWJzY3JpcHRpb25TdGF0dXM7XG4gICAgcHJpY2U6IFByb2R1Y3RQcmljaW5nO1xuICAgIHN1YnNjcmlwdGlvbklkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBCaWxsYWJsZUl0ZW0ge1xuICAgICAgICBsZXQgbSA9IG5ldyBCaWxsYWJsZUl0ZW0oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZXhwaXJ5KSB7bS5leHBpcnkgPSBuZXcgRGF0ZShwcm90by5leHBpcnkpO31cbiAgICAgICAgaWYgKHByb3RvLmJpbGxpbmdTdGFydCkge20uYmlsbGluZ1N0YXJ0ID0gbmV3IERhdGUocHJvdG8uYmlsbGluZ1N0YXJ0KTt9XG4gICAgICAgIGlmIChwcm90by5jcmVhdGVkKSB7bS5jcmVhdGVkID0gbmV3IERhdGUocHJvdG8uY3JlYXRlZCk7fVxuICAgICAgICBpZiAocHJvdG8udXBkYXRlZCkge20udXBkYXRlZCA9IG5ldyBEYXRlKHByb3RvLnVwZGF0ZWQpO31cbiAgICAgICAgaWYgKHByb3RvLmZyZXF1ZW5jeSkge20uZnJlcXVlbmN5ID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5GcmVxdWVuY3k+KGUuRnJlcXVlbmN5LCBwcm90by5mcmVxdWVuY3kpO31cbiAgICAgICAgaWYgKHByb3RvLm5leHRSZW5ld2FsKSB7bS5uZXh0UmVuZXdhbCA9IG5ldyBEYXRlKHByb3RvLm5leHRSZW5ld2FsKTt9XG4gICAgICAgIGlmIChwcm90by5jdXN0b21lckFkZHJlc3MpIHttLmN1c3RvbWVyQWRkcmVzcyA9IEJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzcy5mcm9tUHJvdG8ocHJvdG8uY3VzdG9tZXJBZGRyZXNzKTt9XG4gICAgICAgIGlmIChwcm90by5jdXN0b21Vbml0UHJpY2UpIHttLmN1c3RvbVVuaXRQcmljZSA9IHBhcnNlSW50KHByb3RvLmN1c3RvbVVuaXRQcmljZSwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnJldGFpbEZyZXF1ZW5jeSkge20ucmV0YWlsRnJlcXVlbmN5ID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5GcmVxdWVuY3k+KGUuRnJlcXVlbmN5LCBwcm90by5yZXRhaWxGcmVxdWVuY3kpO31cbiAgICAgICAgaWYgKHByb3RvLm5leHRSZXRhaWxSZW5ld2FsKSB7bS5uZXh0UmV0YWlsUmVuZXdhbCA9IG5ldyBEYXRlKHByb3RvLm5leHRSZXRhaWxSZW5ld2FsKTt9XG4gICAgICAgIGlmIChwcm90by5yZXRhaWxVbml0UHJpY2UpIHttLnJldGFpbFVuaXRQcmljZSA9IHBhcnNlSW50KHByb3RvLnJldGFpbFVuaXRQcmljZSwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnN0YXR1cykge20uc3RhdHVzID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5TdWJzY3JpcHRpb25TdGF0dXM+KGUuU3Vic2NyaXB0aW9uU3RhdHVzLCBwcm90by5zdGF0dXMpO31cbiAgICAgICAgaWYgKHByb3RvLnByaWNlKSB7bS5wcmljZSA9IFByb2R1Y3RQcmljaW5nLmZyb21Qcm90byhwcm90by5wcmljZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkJpbGxhYmxlSXRlbUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5leHBpcnkgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZXhwaXJ5ICE9PSBudWxsKSB7dG9SZXR1cm5bJ2V4cGlyeSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5leHBpcnkgPyAodGhpcy5leHBpcnkgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZXhwaXJ5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJpbGxpbmdTdGFydCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5iaWxsaW5nU3RhcnQgIT09IG51bGwpIHt0b1JldHVyblsnYmlsbGluZ1N0YXJ0J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmJpbGxpbmdTdGFydCA/ICh0aGlzLmJpbGxpbmdTdGFydCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5iaWxsaW5nU3RhcnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3JlYXRlZCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jcmVhdGVkICE9PSBudWxsKSB7dG9SZXR1cm5bJ2NyZWF0ZWQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuY3JlYXRlZCA/ICh0aGlzLmNyZWF0ZWQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY3JlYXRlZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51cGRhdGVkICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnVwZGF0ZWQgIT09IG51bGwpIHt0b1JldHVyblsndXBkYXRlZCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy51cGRhdGVkID8gKHRoaXMudXBkYXRlZCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy51cGRhdGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZyZXF1ZW5jeSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZnJlcXVlbmN5J10gPSB0aGlzLmZyZXF1ZW5jeTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5uZXh0UmVuZXdhbCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5uZXh0UmVuZXdhbCAhPT0gbnVsbCkge3RvUmV0dXJuWyduZXh0UmVuZXdhbCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5uZXh0UmVuZXdhbCA/ICh0aGlzLm5leHRSZW5ld2FsIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm5leHRSZW5ld2FsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVyTmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJOYW1lJ10gPSB0aGlzLmN1c3RvbWVyTmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9kdWN0TmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncHJvZHVjdE5hbWUnXSA9IHRoaXMucHJvZHVjdE5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJBZGRyZXNzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmN1c3RvbWVyQWRkcmVzcyAhPT0gbnVsbCkge3RvUmV0dXJuWydjdXN0b21lckFkZHJlc3MnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuY3VzdG9tZXJBZGRyZXNzID8gKHRoaXMuY3VzdG9tZXJBZGRyZXNzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmN1c3RvbWVyQWRkcmVzczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21Vbml0UHJpY2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbVVuaXRQcmljZSddID0gdGhpcy5jdXN0b21Vbml0UHJpY2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmV0YWlsRnJlcXVlbmN5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydyZXRhaWxGcmVxdWVuY3knXSA9IHRoaXMucmV0YWlsRnJlcXVlbmN5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5leHRSZXRhaWxSZW5ld2FsICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm5leHRSZXRhaWxSZW5ld2FsICE9PSBudWxsKSB7dG9SZXR1cm5bJ25leHRSZXRhaWxSZW5ld2FsJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm5leHRSZXRhaWxSZW5ld2FsID8gKHRoaXMubmV4dFJldGFpbFJlbmV3YWwgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubmV4dFJldGFpbFJlbmV3YWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmV0YWlsVW5pdFByaWNlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydyZXRhaWxVbml0UHJpY2UnXSA9IHRoaXMucmV0YWlsVW5pdFByaWNlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXR1cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3RhdHVzJ10gPSB0aGlzLnN0YXR1czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcmljZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wcmljZSAhPT0gbnVsbCkge3RvUmV0dXJuWydwcmljZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wcmljZSA/ICh0aGlzLnByaWNlIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnByaWNlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN1YnNjcmlwdGlvbklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdWJzY3JpcHRpb25JZCddID0gdGhpcy5zdWJzY3JpcHRpb25JZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDYW5CaWxsSXRlbVJlcXVlc3QgaW1wbGVtZW50cyBpLkNhbkJpbGxJdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ2FuQmlsbEl0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQ2FuQmlsbEl0ZW1SZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5DYW5CaWxsSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENyZWF0ZVVzYWdlUmVxdWVzdCBpbXBsZW1lbnRzIGkuQ3JlYXRlVXNhZ2VSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIG9yZGVySWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICBxdWFudGl0eTogbnVtYmVyO1xuICAgIHVzYWdlRGF0ZTogRGF0ZTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IENyZWF0ZVVzYWdlUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IENyZWF0ZVVzYWdlUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5xdWFudGl0eSkge20ucXVhbnRpdHkgPSBwYXJzZUludChwcm90by5xdWFudGl0eSwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnVzYWdlRGF0ZSkge20udXNhZ2VEYXRlID0gbmV3IERhdGUocHJvdG8udXNhZ2VEYXRlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ3JlYXRlVXNhZ2VSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlcklkJ10gPSB0aGlzLm9yZGVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnF1YW50aXR5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydxdWFudGl0eSddID0gdGhpcy5xdWFudGl0eTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51c2FnZURhdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudXNhZ2VEYXRlICE9PSBudWxsKSB7dG9SZXR1cm5bJ3VzYWdlRGF0ZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy51c2FnZURhdGUgPyAodGhpcy51c2FnZURhdGUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudXNhZ2VEYXRlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzcyBpbXBsZW1lbnRzIGkuQmlsbGFibGVJdGVtQ3VzdG9tZXJBZGRyZXNzSW50ZXJmYWNlIHtcbiAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgY2l0eTogc3RyaW5nO1xuICAgIHN0YXRlOiBzdHJpbmc7XG4gICAgemlwOiBzdHJpbmc7XG4gICAgY291bnRyeTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQmlsbGFibGVJdGVtQ3VzdG9tZXJBZGRyZXNzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQmlsbGFibGVJdGVtQ3VzdG9tZXJBZGRyZXNzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5CaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3NJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hZGRyZXNzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhZGRyZXNzJ10gPSB0aGlzLmFkZHJlc3M7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY2l0eSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY2l0eSddID0gdGhpcy5jaXR5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXRlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdGF0ZSddID0gdGhpcy5zdGF0ZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy56aXAgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3ppcCddID0gdGhpcy56aXA7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY291bnRyeSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY291bnRyeSddID0gdGhpcy5jb3VudHJ5O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlbGV0ZUJpbGxhYmxlSXRlbVJlcXVlc3QgaW1wbGVtZW50cyBpLkRlbGV0ZUJpbGxhYmxlSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IERlbGV0ZUJpbGxhYmxlSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkRlbGV0ZUJpbGxhYmxlSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlcklkJ10gPSB0aGlzLm9yZGVySWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuRXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG4gICAgZXhwaXJ5OiBEYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogRXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZXhwaXJ5KSB7bS5leHBpcnkgPSBuZXcgRGF0ZShwcm90by5leHBpcnkpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5FeHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3JkZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnb3JkZXJJZCddID0gdGhpcy5vcmRlcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV4cGlyeSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5leHBpcnkgIT09IG51bGwpIHt0b1JldHVyblsnZXhwaXJ5J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmV4cGlyeSA/ICh0aGlzLmV4cGlyeSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5leHBpcnk7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXhwb3J0U3Vic2NyaXB0aW9uc1JlcXVlc3QgaW1wbGVtZW50cyBpLkV4cG9ydFN1YnNjcmlwdGlvbnNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBmaWx0ZXJzOiBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogRXhwb3J0U3Vic2NyaXB0aW9uc1JlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBFeHBvcnRTdWJzY3JpcHRpb25zUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5maWx0ZXJzKSB7bS5maWx0ZXJzID0gTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0RmlsdGVycy5mcm9tUHJvdG8ocHJvdG8uZmlsdGVycyk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkV4cG9ydFN1YnNjcmlwdGlvbnNSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmlsdGVycyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5maWx0ZXJzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ZpbHRlcnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZmlsdGVycyA/ICh0aGlzLmZpbHRlcnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZmlsdGVyczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RGaWx0ZXJzIGltcGxlbWVudHMgaS5MaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RGaWx0ZXJzSW50ZXJmYWNlIHtcbiAgICBza3VzOiBzdHJpbmdbXTtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVycyB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnMoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3VzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3VzJ10gPSB0aGlzLnNrdXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzIGltcGxlbWVudHMgaS5MaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzSW50ZXJmYWNlIHtcbiAgICBza3VzOiBzdHJpbmdbXTtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIHNlYXJjaFRlcm06IHN0cmluZztcbiAgICBzdGF0dXM6IGUuU3Vic2NyaXB0aW9uU3RhdHVzO1xuICAgIGV4cGlyZWREYXRlR3RlOiBEYXRlO1xuICAgIGV4cGlyZWREYXRlTHRlOiBEYXRlO1xuICAgIGZyZXF1ZW5jaWVzOiBlLkZyZXF1ZW5jeVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0RmlsdGVycyB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEZpbHRlcnMoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uc3RhdHVzKSB7bS5zdGF0dXMgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLlN1YnNjcmlwdGlvblN0YXR1cz4oZS5TdWJzY3JpcHRpb25TdGF0dXMsIHByb3RvLnN0YXR1cyk7fVxuICAgICAgICBpZiAocHJvdG8uZXhwaXJlZERhdGVHdGUpIHttLmV4cGlyZWREYXRlR3RlID0gbmV3IERhdGUocHJvdG8uZXhwaXJlZERhdGVHdGUpO31cbiAgICAgICAgaWYgKHByb3RvLmV4cGlyZWREYXRlTHRlKSB7bS5leHBpcmVkRGF0ZUx0ZSA9IG5ldyBEYXRlKHByb3RvLmV4cGlyZWREYXRlTHRlKTt9XG4gICAgICAgIGlmIChwcm90by5mcmVxdWVuY2llcykge20uZnJlcXVlbmNpZXMgPSBwcm90by5mcmVxdWVuY2llcy5tYXAoKHY6IHN0cmluZykgPT4gZW51bVN0cmluZ1RvVmFsdWU8ZS5GcmVxdWVuY3k+KGUuRnJlcXVlbmN5LCB2KSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEZpbHRlcnNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3VzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3VzJ10gPSB0aGlzLnNrdXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zZWFyY2hUZXJtICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzZWFyY2hUZXJtJ10gPSB0aGlzLnNlYXJjaFRlcm07fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3RhdHVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdGF0dXMnXSA9IHRoaXMuc3RhdHVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV4cGlyZWREYXRlR3RlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmV4cGlyZWREYXRlR3RlICE9PSBudWxsKSB7dG9SZXR1cm5bJ2V4cGlyZWREYXRlR3RlJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmV4cGlyZWREYXRlR3RlID8gKHRoaXMuZXhwaXJlZERhdGVHdGUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZXhwaXJlZERhdGVHdGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXhwaXJlZERhdGVMdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZXhwaXJlZERhdGVMdGUgIT09IG51bGwpIHt0b1JldHVyblsnZXhwaXJlZERhdGVMdGUnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZXhwaXJlZERhdGVMdGUgPyAodGhpcy5leHBpcmVkRGF0ZUx0ZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5leHBpcmVkRGF0ZUx0ZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5mcmVxdWVuY2llcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZnJlcXVlbmNpZXMnXSA9IHRoaXMuZnJlcXVlbmNpZXM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0QmlsbGFibGVJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuR2V0QmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHNrdTogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG4gICAgcHJvamVjdGlvbkZpbHRlcjogU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlcjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdldEJpbGxhYmxlSXRlbVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRCaWxsYWJsZUl0ZW1SZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnByb2plY3Rpb25GaWx0ZXIpIHttLnByb2plY3Rpb25GaWx0ZXIgPSBTdWJzY3JpcHRpb25Qcm9qZWN0aW9uRmlsdGVyLmZyb21Qcm90byhwcm90by5wcm9qZWN0aW9uRmlsdGVyKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR2V0QmlsbGFibGVJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVySWQnXSA9IHRoaXMub3JkZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9qZWN0aW9uRmlsdGVyICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnByb2plY3Rpb25GaWx0ZXIgIT09IG51bGwpIHt0b1JldHVyblsncHJvamVjdGlvbkZpbHRlciddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wcm9qZWN0aW9uRmlsdGVyID8gKHRoaXMucHJvamVjdGlvbkZpbHRlciBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wcm9qZWN0aW9uRmlsdGVyO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldEJpbGxhYmxlSXRlbVJlc3BvbnNlIGltcGxlbWVudHMgaS5HZXRCaWxsYWJsZUl0ZW1SZXNwb25zZUludGVyZmFjZSB7XG4gICAgaXRlbTogQmlsbGFibGVJdGVtO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0QmlsbGFibGVJdGVtUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRCaWxsYWJsZUl0ZW1SZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5pdGVtKSB7bS5pdGVtID0gQmlsbGFibGVJdGVtLmZyb21Qcm90byhwcm90by5pdGVtKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR2V0QmlsbGFibGVJdGVtUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pdGVtICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLml0ZW0gIT09IG51bGwpIHt0b1JldHVyblsnaXRlbSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pdGVtID8gKHRoaXMuaXRlbSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5pdGVtO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3QgaW1wbGVtZW50cyBpLkdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHN1YnNjcmlwdGlvbktleXM6IEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXlbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnN1YnNjcmlwdGlvbktleXMpIHttLnN1YnNjcmlwdGlvbktleXMgPSBwcm90by5zdWJzY3JpcHRpb25LZXlzLm1hcChHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0S2V5LmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdWJzY3JpcHRpb25LZXlzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnN1YnNjcmlwdGlvbktleXMgIT09IG51bGwpIHt0b1JldHVyblsnc3Vic2NyaXB0aW9uS2V5cyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5zdWJzY3JpcHRpb25LZXlzID8gKHRoaXMuc3Vic2NyaXB0aW9uS2V5cyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5zdWJzY3JpcHRpb25LZXlzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldE11bHRpU3Vic2NyaXB0aW9uc1Jlc3BvbnNlIGltcGxlbWVudHMgaS5HZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXNwb25zZUludGVyZmFjZSB7XG4gICAgc3Vic2NyaXB0aW9uczogQmlsbGFibGVJdGVtW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldE11bHRpU3Vic2NyaXB0aW9uc1Jlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnN1YnNjcmlwdGlvbnMpIHttLnN1YnNjcmlwdGlvbnMgPSBwcm90by5zdWJzY3JpcHRpb25zLm1hcChCaWxsYWJsZUl0ZW0uZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdWJzY3JpcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnN1YnNjcmlwdGlvbnMgIT09IG51bGwpIHt0b1JldHVyblsnc3Vic2NyaXB0aW9ucyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5zdWJzY3JpcHRpb25zID8gKHRoaXMuc3Vic2NyaXB0aW9ucyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5zdWJzY3JpcHRpb25zO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEl0ZW0gaW1wbGVtZW50cyBpLkl0ZW1JbnRlcmZhY2Uge1xuICAgIHNrdTogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG4gICAgYmlsbGluZ1N0YXJ0OiBEYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogSXRlbSB7XG4gICAgICAgIGxldCBtID0gbmV3IEl0ZW0oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uYmlsbGluZ1N0YXJ0KSB7bS5iaWxsaW5nU3RhcnQgPSBuZXcgRGF0ZShwcm90by5iaWxsaW5nU3RhcnQpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5JdGVtSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlcklkJ10gPSB0aGlzLm9yZGVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYmlsbGluZ1N0YXJ0ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmJpbGxpbmdTdGFydCAhPT0gbnVsbCkge3RvUmV0dXJuWydiaWxsaW5nU3RhcnQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuYmlsbGluZ1N0YXJ0ID8gKHRoaXMuYmlsbGluZ1N0YXJ0IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmJpbGxpbmdTdGFydDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0S2V5IGltcGxlbWVudHMgaS5HZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0S2V5SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIG9yZGVySWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXkge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0S2V5KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5HZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0S2V5SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3JkZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnb3JkZXJJZCddID0gdGhpcy5vcmRlcklkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdCBpbXBsZW1lbnRzIGkuTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBmaWx0ZXJzOiBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RGaWx0ZXJzO1xuICAgIHBhZ2luZ09wdGlvbnM6IFBhZ2VkUmVxdWVzdE9wdGlvbnM7XG4gICAgc2VhcmNoVGVybTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmZpbHRlcnMpIHttLmZpbHRlcnMgPSBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RGaWx0ZXJzLmZyb21Qcm90byhwcm90by5maWx0ZXJzKTt9XG4gICAgICAgIGlmIChwcm90by5wYWdpbmdPcHRpb25zKSB7bS5wYWdpbmdPcHRpb25zID0gUGFnZWRSZXF1ZXN0T3B0aW9ucy5mcm9tUHJvdG8ocHJvdG8ucGFnaW5nT3B0aW9ucyk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZpbHRlcnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZmlsdGVycyAhPT0gbnVsbCkge3RvUmV0dXJuWydmaWx0ZXJzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmZpbHRlcnMgPyAodGhpcy5maWx0ZXJzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmZpbHRlcnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFnaW5nT3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wYWdpbmdPcHRpb25zICE9PSBudWxsKSB7dG9SZXR1cm5bJ3BhZ2luZ09wdGlvbnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucGFnaW5nT3B0aW9ucyA/ICh0aGlzLnBhZ2luZ09wdGlvbnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucGFnaW5nT3B0aW9uczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zZWFyY2hUZXJtICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzZWFyY2hUZXJtJ10gPSB0aGlzLnNlYXJjaFRlcm07fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGlzdEJpbGxhYmxlSXRlbXNSZXNwb25zZSBpbXBsZW1lbnRzIGkuTGlzdEJpbGxhYmxlSXRlbXNSZXNwb25zZUludGVyZmFjZSB7XG4gICAgaXRlbXM6IEJpbGxhYmxlSXRlbVtdO1xuICAgIHBhZ2luZ01ldGFkYXRhOiBQYWdlZFJlc3BvbnNlTWV0YWRhdGE7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0QmlsbGFibGVJdGVtc1Jlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTGlzdEJpbGxhYmxlSXRlbXNSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5pdGVtcykge20uaXRlbXMgPSBwcm90by5pdGVtcy5tYXAoQmlsbGFibGVJdGVtLmZyb21Qcm90byk7fVxuICAgICAgICBpZiAocHJvdG8ucGFnaW5nTWV0YWRhdGEpIHttLnBhZ2luZ01ldGFkYXRhID0gUGFnZWRSZXNwb25zZU1ldGFkYXRhLmZyb21Qcm90byhwcm90by5wYWdpbmdNZXRhZGF0YSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpc3RCaWxsYWJsZUl0ZW1zUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pdGVtcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5pdGVtcyAhPT0gbnVsbCkge3RvUmV0dXJuWydpdGVtcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pdGVtcyA/ICh0aGlzLml0ZW1zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLml0ZW1zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhZ2luZ01ldGFkYXRhICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnBhZ2luZ01ldGFkYXRhICE9PSBudWxsKSB7dG9SZXR1cm5bJ3BhZ2luZ01ldGFkYXRhJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnBhZ2luZ01ldGFkYXRhID8gKHRoaXMucGFnaW5nTWV0YWRhdGEgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucGFnaW5nTWV0YWRhdGE7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0IGltcGxlbWVudHMgaS5MaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGZpbHRlcnM6IExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdEZpbHRlcnM7XG4gICAgcGFnaW5nT3B0aW9uczogUGFnZWRSZXF1ZXN0T3B0aW9ucztcbiAgICBwcm9qZWN0aW9uRmlsdGVyOiBTdWJzY3JpcHRpb25Qcm9qZWN0aW9uRmlsdGVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmZpbHRlcnMpIHttLmZpbHRlcnMgPSBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzLmZyb21Qcm90byhwcm90by5maWx0ZXJzKTt9XG4gICAgICAgIGlmIChwcm90by5wYWdpbmdPcHRpb25zKSB7bS5wYWdpbmdPcHRpb25zID0gUGFnZWRSZXF1ZXN0T3B0aW9ucy5mcm9tUHJvdG8ocHJvdG8ucGFnaW5nT3B0aW9ucyk7fVxuICAgICAgICBpZiAocHJvdG8ucHJvamVjdGlvbkZpbHRlcikge20ucHJvamVjdGlvbkZpbHRlciA9IFN1YnNjcmlwdGlvblByb2plY3Rpb25GaWx0ZXIuZnJvbVByb3RvKHByb3RvLnByb2plY3Rpb25GaWx0ZXIpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5MaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5maWx0ZXJzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmZpbHRlcnMgIT09IG51bGwpIHt0b1JldHVyblsnZmlsdGVycyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5maWx0ZXJzID8gKHRoaXMuZmlsdGVycyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5maWx0ZXJzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhZ2luZ09wdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucGFnaW5nT3B0aW9ucyAhPT0gbnVsbCkge3RvUmV0dXJuWydwYWdpbmdPcHRpb25zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnBhZ2luZ09wdGlvbnMgPyAodGhpcy5wYWdpbmdPcHRpb25zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnBhZ2luZ09wdGlvbnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJvamVjdGlvbkZpbHRlciAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wcm9qZWN0aW9uRmlsdGVyICE9PSBudWxsKSB7dG9SZXR1cm5bJ3Byb2plY3Rpb25GaWx0ZXInXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucHJvamVjdGlvbkZpbHRlciA/ICh0aGlzLnByb2plY3Rpb25GaWx0ZXIgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucHJvamVjdGlvbkZpbHRlcjt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0U3Vic2NyaXB0aW9uc1Jlc3BvbnNlIGltcGxlbWVudHMgaS5MaXN0U3Vic2NyaXB0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBzdWJzY3JpcHRpb25zOiBCaWxsYWJsZUl0ZW1bXTtcbiAgICBwYWdpbmdNZXRhZGF0YTogUGFnZWRSZXNwb25zZU1ldGFkYXRhO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTGlzdFN1YnNjcmlwdGlvbnNSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uc3Vic2NyaXB0aW9ucykge20uc3Vic2NyaXB0aW9ucyA9IHByb3RvLnN1YnNjcmlwdGlvbnMubWFwKEJpbGxhYmxlSXRlbS5mcm9tUHJvdG8pO31cbiAgICAgICAgaWYgKHByb3RvLnBhZ2luZ01ldGFkYXRhKSB7bS5wYWdpbmdNZXRhZGF0YSA9IFBhZ2VkUmVzcG9uc2VNZXRhZGF0YS5mcm9tUHJvdG8ocHJvdG8ucGFnaW5nTWV0YWRhdGEpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5MaXN0U3Vic2NyaXB0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3Vic2NyaXB0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5zdWJzY3JpcHRpb25zICE9PSBudWxsKSB7dG9SZXR1cm5bJ3N1YnNjcmlwdGlvbnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuc3Vic2NyaXB0aW9ucyA/ICh0aGlzLnN1YnNjcmlwdGlvbnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc3Vic2NyaXB0aW9uczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYWdpbmdNZXRhZGF0YSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wYWdpbmdNZXRhZGF0YSAhPT0gbnVsbCkge3RvUmV0dXJuWydwYWdpbmdNZXRhZGF0YSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wYWdpbmdNZXRhZGF0YSA/ICh0aGlzLnBhZ2luZ01ldGFkYXRhIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnBhZ2luZ01ldGFkYXRhO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvblByb2plY3Rpb25GaWx0ZXIgaW1wbGVtZW50cyBpLlN1YnNjcmlwdGlvblByb2plY3Rpb25GaWx0ZXJJbnRlcmZhY2Uge1xuICAgIHByaWNlOiBib29sZWFuO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlciB7XG4gICAgICAgIGxldCBtID0gbmV3IFN1YnNjcmlwdGlvblByb2plY3Rpb25GaWx0ZXIoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlN1YnNjcmlwdGlvblByb2plY3Rpb25GaWx0ZXJJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcmljZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncHJpY2UnXSA9IHRoaXMucHJpY2U7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVW5leHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0IGltcGxlbWVudHMgaS5VbmV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgb3JkZXJJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVW5leHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVW5leHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5VbmV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlcklkJ10gPSB0aGlzLm9yZGVySWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG4iXX0=
|
|
@@ -44,5 +44,6 @@ export { AddCreditRequest, CreditBalance, GetBalanceRequest, GetBalanceResponse,
|
|
|
44
44
|
export { RecurringInvoiceCustomerAddress, ListRecurringInvoicesFiltersDateFilter, DeleteRecurringInvoiceRequest, ListRecurringInvoicesFiltersDetailedInterval, GetRecurringInvoiceRequest, ListRecurringInvoicesFilters, ListRecurringInvoicesRequest, ListRecurringInvoicesResponse, RecurringInvoice, RecurringInvoiceBundle, RecurringInvoiceItem, RecurringInvoiceLineItem, UpdateRecurringInvoiceRequest, } from './recurring-invoice';
|
|
45
45
|
export { CreateMerchantServicesReportRun, GetMerchantServicesReportRun, MerchantServicesReportRun, } from './report-run';
|
|
46
46
|
export { Access, } from './annotations';
|
|
47
|
+
export { ListSubscriptionRelationshipsRequestFilters, GetMultiSubscriptionRelationshipsRequest, GetMultiSubscriptionRelationshipsResponse, ListSubscriptionRelationshipsRequest, ListSubscriptionRelationshipsResponse, ReplaceSubscriptionRelationshipsRequest, ReplaceSubscriptionRelationshipsResponse, SubscriptionRelationship, } from './subscription-relationship';
|
|
47
48
|
export { DeleteRetailPricingRequest, GenerateBillableItemsCSVRequest, GenerateBillableItemsCSVResponse, GenerateVendorReportRequest, GenerateVendorReportResponse, GetMultiBundleRetailPricingRequest, GetMultiBundleRetailPricingResponse, GetMultiProductPricingRequest, GetMultiProductPricingResponse, GetMultiRetailPricingRequest, GetMultiRetailPricingResponse, GetMultiWholesaleCostRequest, GetMultiWholesaleCostResponse, GetPurchaseCostRequest, GetPurchaseCostResponse, GetRevenueStatsRequest, GetRevenueStatsResponse, GetStatisticsRequest, GetStatisticsResponse, GetWholesaleComparisonRequestGetWholesaleComparisonFilters, GetWholesaleComparisonRequest, GetWholesaleComparisonResponse, GetWholesaleComparisonResponseGetWholesaleComparisonResult, GetMultiBundleRetailPricingResponsePricesEntry, UpsertRetailPricingRequestPricingEntry, GetMultiRetailPricingResponseProductPricesEntry, GetMultiProductPricingResponseProductPricesEntry, SetWholesaleProductStrategyRequest, SetWholesaleProductVolumeCommitmentRequest, StartRevRecTemplateBackfillRequest, UpsertRetailPricingRequest, } from './api';
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9iaWxsaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixpQkFBaUI7QUFDakIsb0NBQW9DO0FBQ3BDLE9BQU8sRUFDSCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLHFCQUFxQixHQUN4QixNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQ0gsVUFBVSxHQUNiLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFDSCxVQUFVLEVBQ1YsR0FBRyxHQUNOLE1BQU0sT0FBTyxDQUFDO0FBRWYsT0FBTyxFQUNILFNBQVMsR0FDWixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsMEJBQTBCLEVBQzFCLDJCQUEyQixFQUMzQixXQUFXLEVBQ1gseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIseUJBQXlCLEdBQzVCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNILGFBQWEsRUFDYixjQUFjLEVBQ2Qsd0JBQXdCLEdBQzNCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUNILGVBQWUsRUFDZix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQiwrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3QixJQUFJLEVBQ0osK0JBQStCLEVBQy9CLHdCQUF3QixFQUN4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QUNuQyw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0IsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3QixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQiwwREFBMEQsRUFDMUQsNkJBQTZCLEVBQzdCLDhCQUE4QixFQUM5QiwwREFBMEQsRUFDMUQsOENBQThDLEVBQzlDLHNDQUFzQyxFQUN0QywrQ0FBK0MsRUFDL0MsZ0RBQWdELEVBQ2hELGtDQUFrQyxFQUNsQywwQ0FBMEMsRUFDMUMsa0NBQWtDLEVBQ2xDLDBCQUEwQixHQUM3QixNQUFNLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cyBJbmRleC5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuZXhwb3J0IHtcbiAgICBFeHBvcnRSZXNwb25zZSxcbiAgICBQYWdlZFJlcXVlc3RPcHRpb25zLFxuICAgIFBhZ2VkUmVzcG9uc2VNZXRhZGF0YSxcbn0gZnJvbSAnLi9jb21tb24nO1xuXG5leHBvcnQge1xuICAgIENvbW1pdG1lbnQsXG59IGZyb20gJy4vY29tbWl0bWVudCc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZEZlZSxcbiAgICBGZWUsXG59IGZyb20gJy4vZmVlJztcblxuZXhwb3J0IHtcbiAgICBGaWVsZE1hc2ssXG59IGZyb20gJy4vZmllbGQtbWFzayc7XG5cbmV4cG9ydCB7XG4gICAgQ29tcG9uZW50UHJpY2luZyxcbiAgICBDcmVhdGVQcmljaW5nUGxhblJlcXVlc3QsXG4gICAgQ3JlYXRlUHJpY2luZ1BsYW5SZXNwb25zZSxcbiAgICBHZXRNdWx0aVByaWNpbmdQbGFuUmVxdWVzdCxcbiAgICBHZXRNdWx0aVByaWNpbmdQbGFuUmVzcG9uc2UsXG4gICAgUHJpY2luZ1BsYW4sXG4gICAgUHJpY2luZ1BsYW5Qcm9kdWN0UHJpY2luZyxcbiAgICBQcm9kdWN0UHJpY2luZ1J1bGUsXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5SZXF1ZXN0LFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUmVzcG9uc2UsXG59IGZyb20gJy4vcHJpY2luZy1wbGFuJztcblxuZXhwb3J0IHtcbiAgICBQcm9kdWN0UHJpY2VzLFxuICAgIFByb2R1Y3RQcmljaW5nLFxuICAgIFdob2xlc2FsZUNvc3RJdGVtUmVxdWVzdCxcbn0gZnJvbSAnLi9wcm9kdWN0LXByaWNpbmcnO1xuXG5leHBvcnQge1xuICAgIEJpbGxJdGVtUmVxdWVzdCxcbiAgICBCaWxsTXVsdGlwbGVJdGVtc1JlcXVlc3QsXG4gICAgQmlsbE11bHRpcGxlSXRlbXNSZXNwb25zZSxcbiAgICBCaWxsYWJsZUl0ZW0sXG4gICAgQ2FuQmlsbEl0ZW1SZXF1ZXN0LFxuICAgIENyZWF0ZVVzYWdlUmVxdWVzdCxcbiAgICBCaWxsYWJsZUl0ZW1DdXN0b21lckFkZHJlc3MsXG4gICAgRGVsZXRlQmlsbGFibGVJdGVtUmVxdWVzdCxcbiAgICBFeHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0LFxuICAgIEV4cG9ydFN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICAgIExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdEZpbHRlcnMsXG4gICAgTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0RmlsdGVycyxcbiAgICBHZXRCaWxsYWJsZUl0ZW1SZXF1ZXN0LFxuICAgIEdldEJpbGxhYmxlSXRlbVJlc3BvbnNlLFxuICAgIEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3QsXG4gICAgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVzcG9uc2UsXG4gICAgSXRlbSxcbiAgICBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXF1ZXN0S2V5LFxuICAgIExpc3RCaWxsYWJsZUl0ZW1zUmVxdWVzdCxcbiAgICBMaXN0QmlsbGFibGVJdGVtc1Jlc3BvbnNlLFxuICAgIExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdCxcbiAgICBMaXN0U3Vic2NyaXB0aW9uc1Jlc3BvbnNlLFxuICAgIFN1YnNjcmlwdGlvblByb2plY3Rpb25GaWx0ZXIsXG4gICAgVW5leHBpcmVCaWxsYWJsZUl0ZW1SZXF1ZXN0LFxufSBmcm9tICcuL2JpbGxhYmxlLWl0ZW0nO1xuXG5leHBvcnQge1xuICAgIEFwcGxpZWREaXNjb3VudCxcbn0gZnJvbSAnLi9hcHBsaWVkLWRpc2NvdW50JztcblxuZXhwb3J0IHtcbiAgICBCdW5kbGUsXG4gICAgQnVuZGxlSXRlbSxcbiAgICBCdW5kbGVQcmljaW5nLFxuICAgIEdldE11bHRpQnVuZGxlUmVzcG9uc2VCdW5kbGVzRW50cnksXG4gICAgTGlzdEJ1bmRsZXNSZXF1ZXN0RmlsdGVycyxcbiAgICBHZXRNdWx0aUJ1bmRsZVJlcXVlc3QsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXNwb25zZSxcbiAgICBMaXN0QnVuZGxlc1JlcXVlc3QsXG4gICAgTGlzdEJ1bmRsZXNSZXNwb25zZSxcbiAgICBCdW5kbGVJdGVtUHJpY2UsXG4gICAgQnVuZGxlUHJpY2luZ1ByaWNlQW5kRnJlcXVlbmN5LFxuICAgIFVwc2VydEJ1bmRsZVJlcXVlc3QsXG59IGZyb20gJy4vYnVuZGxlJztcblxuZXhwb3J0IHtcbiAgICBDb250cmFjdCxcbiAgICBHZXRNdWx0aUNvbnRyYWN0c1Jlc3BvbnNlQ29udHJhY3RzRW50cnksXG4gICAgQ3JlYXRlQ29udHJhY3RSZXF1ZXN0LFxuICAgIENyZWF0ZUNvbnRyYWN0UmVzcG9uc2UsXG4gICAgR2V0Q29udHJhY3RSZXF1ZXN0LFxuICAgIEdldENvbnRyYWN0UmVzcG9uc2UsXG4gICAgR2V0TXVsdGlDb250cmFjdHNSZXF1ZXN0LFxuICAgIEdldE11bHRpQ29udHJhY3RzUmVzcG9uc2UsXG4gICAgTGlzdENvbnRyYWN0c1JlcXVlc3QsXG4gICAgTGlzdENvbnRyYWN0c1Jlc3BvbnNlLFxuICAgIFVwZGF0ZUNvbnRyYWN0UmVxdWVzdE11dGF0aW9uLFxuICAgIFJlc2V0Q29udHJhY3RQcmljaW5nUmVxdWVzdCxcbiAgICBVcGRhdGVDb250cmFjdFJlcXVlc3QsXG4gICAgVXBkYXRlQ29udHJhY3RSZXNwb25zZSxcbiAgICBVcGRhdGVDb250cmFjdFN1YnNjcmlwdGlvblJlcXVlc3QsXG59IGZyb20gJy4vY29udHJhY3QnO1xuXG5leHBvcnQge1xuICAgIEN1c3RvbWVyU3VtbWFyeSxcbiAgICBHZXRNdWx0aUN1c3RvbWVyU3VtbWFyaWVzUmVxdWVzdCxcbiAgICBHZXRNdWx0aUN1c3RvbWVyU3VtbWFyaWVzUmVzcG9uc2UsXG59IGZyb20gJy4vY3VzdG9tZXItc3VtbWFyeSc7XG5cbmV4cG9ydCB7XG4gICAgQmFua0FjY291bnQsXG4gICAgQ3JlYXRlU3RyaXBlRXh0ZXJuYWxBY2NvdW50UmVxdWVzdCxcbiAgICBEZWxldGVCYW5rQWNjb3VudFJlcXVlc3QsXG4gICAgTGlzdEJhbmtBY2NvdW50c1JlcXVlc3QsXG4gICAgTGlzdEJhbmtBY2NvdW50c1Jlc3BvbnNlLFxuICAgIFNldERlZmF1bHRCYW5rQWNjb3VudFJlcXVlc3QsXG59IGZyb20gJy4vZXh0ZXJuYWwtYWNjb3VudCc7XG5cbmV4cG9ydCB7XG4gICAgUHJvZHVjdFN1bW1hcnlEaXNjb3VudCxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmV0ZW50aW9uUmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0UHJvZHVjdFN1bW1hcmllc1RvdGFsUmVxdWVzdCxcbiAgICBHZXRQcm9kdWN0U3VtbWFyaWVzVG90YWxSZXNwb25zZSxcbiAgICBMaXN0UHJvZHVjdFN1bW1hcmllc1JlcXVlc3QsXG4gICAgTGlzdFByb2R1Y3RTdW1tYXJpZXNSZXNwb25zZSxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmV0ZW50aW9uQnlHcm91cFJlc3BvbnNlLFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25CeVNLVVJlc3BvbnNlLFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25SZXF1ZXN0LFxuICAgIFByaWNpbmcsXG4gICAgUHJvZHVjdFN1bW1hcnksXG4gICAgUmV0ZW50aW9uTWV0cmljcyxcbiAgICBQcmljaW5nUnVsZSxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmV0ZW50aW9uQnlHcm91cFJlc3BvbnNlU3Vic2NyaXB0aW9uUmV0ZW50aW9uQnlHcm91cCxcbn0gZnJvbSAnLi9wcm9kdWN0LXN1bW1hcnknO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZURpc2NvdW50UmVxdWVzdCxcbiAgICBEaXNjb3VudCxcbiAgICBFeHBpcmVEaXNjb3VudFJlcXVlc3QsXG4gICAgTGlzdERpc2NvdW50c1JlcXVlc3RGaWx0ZXJzLFxuICAgIExpc3REaXNjb3VudHNSZXF1ZXN0LFxuICAgIExpc3REaXNjb3VudHNSZXNwb25zZSxcbiAgICBVcGRhdGVEaXNjb3VudFJlcXVlc3QsXG59IGZyb20gJy4vZGlzY291bnQnO1xuXG5leHBvcnQge1xuICAgIEFwcGxpZWRUYXhSYXRlLFxufSBmcm9tICcuL2FwcGxpZWQtdGF4LXJhdGUnO1xuXG5leHBvcnQge1xuICAgIEFyY2hpdmVUYXhSZXF1ZXN0LFxuICAgIENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0LFxuICAgIENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXNwb25zZSxcbiAgICBDYWxjdWxhdGVUYXhSZXF1ZXN0LFxuICAgIENhbGN1bGF0ZVRheFJlc3BvbnNlLFxuICAgIENyZWF0ZVRheFJlcXVlc3QsXG4gICAgTGlzdFRheFJlcXVlc3RGaWx0ZXJzLFxuICAgIEdldE11bHRpVGF4UmVxdWVzdCxcbiAgICBHZXRNdWx0aVRheFJlc3BvbnNlLFxuICAgIENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0TGluZUl0ZW0sXG4gICAgQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1Jlc3BvbnNlTGluZUl0ZW1UYXhlcyxcbiAgICBMaXN0VGF4UmVxdWVzdCxcbiAgICBMaXN0VGF4UmVzcG9uc2UsXG4gICAgVGF4UmF0ZSxcbiAgICBVcGRhdGVUYXhSZXF1ZXN0LFxufSBmcm9tICcuL3RheC1yYXRlJztcblxuZXhwb3J0IHtcbiAgICBBcHBsaWVkQnVuZGxlLFxuICAgIEFwcGxpZWRCdW5kbGVJdGVtLFxufSBmcm9tICcuL2FwcGxpZWQtYnVuZGxlJztcblxuZXhwb3J0IHtcbiAgICBBZGRCdW5kbGVSZXF1ZXN0LFxuICAgIEFkZEJ1bmRsZVJlc3BvbnNlLFxuICAgIEFkZExpbmVJdGVtUmVxdWVzdCxcbiAgICBBZGRMaW5lSXRlbVJlc3BvbnNlLFxuICAgIENoYXJnZUludm9pY2VSZXF1ZXN0LFxuICAgIENyZWF0ZUludm9pY2VSZXF1ZXN0LFxuICAgIENyZWF0ZUludm9pY2VSZXNwb25zZSxcbiAgICBDcmVhdGVQYXltZW50TGlua1JlcXVlc3QsXG4gICAgQ3JlYXRlUGF5bWVudExpbmtSZXNwb25zZSxcbiAgICBJbnZvaWNlQ3VzdG9tZXJBZGRyZXNzLFxuICAgIExpc3RJbnZvaWNlc1JlcXVlc3RGaWx0ZXJzRGF0ZUZpbHRlcixcbiAgICBEZWxldGVJbnZvaWNlUmVxdWVzdCxcbiAgICBEZWxldGVMaW5lSXRlbVJlcXVlc3QsXG4gICAgRGVsZXRlTGluZUl0ZW1SZXNwb25zZSxcbiAgICBEdXBsaWNhdGVJbnZvaWNlUmVxdWVzdCxcbiAgICBEdXBsaWNhdGVJbnZvaWNlUmVzcG9uc2UsXG4gICAgTGlzdEludm9pY2VzUmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0SW52b2ljZVJlcXVlc3QsXG4gICAgR2V0SW52b2ljZVJlc3BvbnNlLFxuICAgIEdldFVwY29taW5nSW52b2ljZVByZXZpZXdSZXF1ZXN0LFxuICAgIEdldFVwY29taW5nSW52b2ljZVByZXZpZXdSZXNwb25zZSxcbiAgICBJbnZvaWNlLFxuICAgIEludm9pY2VJdGVtLFxuICAgIExpc3RJbnZvaWNlc1JlcXVlc3QsXG4gICAgTGlzdEludm9pY2VzUmVzcG9uc2UsXG4gICAgUGF5SW52b2ljZVJlcXVlc3QsXG4gICAgUGF5bWVudExpbmtJdGVtLFxuICAgIFJlbW92ZUJ1bmRsZVJlcXVlc3QsXG4gICAgUmVtb3ZlQnVuZGxlUmVzcG9uc2UsXG4gICAgU2VuZEludm9pY2VSZXF1ZXN0LFxuICAgIFVwZGF0ZUJ1bmRsZVJlcXVlc3QsXG4gICAgVXBkYXRlQnVuZGxlUmVzcG9uc2UsXG4gICAgVXBkYXRlRGVmYXVsdFRheFJhdGVzUmVxdWVzdCxcbiAgICBVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXNwb25zZSxcbiAgICBVcGRhdGVJbnZvaWNlUmVxdWVzdCxcbiAgICBVcGRhdGVJbnZvaWNlUmVzcG9uc2UsXG4gICAgVXBkYXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgIFVwZGF0ZUxpbmVJdGVtUmVzcG9uc2UsXG4gICAgVm9pZEludm9pY2VSZXF1ZXN0LFxufSBmcm9tICcuL2ludm9pY2UnO1xuXG5leHBvcnQge1xuICAgIEFjY291bnRCYWxhbmNlLFxuICAgIEJhbGFuY2UsXG4gICAgQmFsYW5jZUFtb3VudCxcbn0gZnJvbSAnLi9iYWxhbmNlJztcblxuZXhwb3J0IHtcbiAgICBEYXRlUmFuZ2UsXG59IGZyb20gJy4vZGF0ZS1yYW5nZSc7XG5cbmV4cG9ydCB7XG4gICAgTGlzdFBheW91dHNSZXF1ZXN0RmlsdGVycyxcbiAgICBMaXN0UGF5b3V0c1JlcXVlc3QsXG4gICAgTGlzdFBheW91dHNSZXNwb25zZSxcbiAgICBQYXlvdXQsXG4gICAgUmVjb25jaWxlUGF5b3V0UmVxdWVzdCxcbiAgICBSZWNvbmNpbGVQYXlvdXRSZXNwb25zZSxcbiAgICBSZXRhaWxQYXlvdXQsXG59IGZyb20gJy4vcGF5b3V0JztcblxuZXhwb3J0IHtcbiAgICBDYW5jZWxSZXRhaWxCaWxsaW5nUmVxdWVzdCxcbiAgICBDaGFyZ2VTYWxlc0ludm9pY2VSZXF1ZXN0LFxuICAgIENvbm5lY3RTdHJpcGVBY2NvdW50UmVxdWVzdCxcbiAgICBDb25uZWN0U3RyaXBlQWNjb3VudFJlc3BvbnNlLFxuICAgIENyZWF0ZU1lcmNoYW50UmVxdWVzdCxcbiAgICBEZWZhdWx0Q3VzdG9tZXJDb25maWd1cmF0aW9uLFxuICAgIEdldE1lcmNoYW50UmVxdWVzdCxcbiAgICBHZXRNZXJjaGFudFJlc3BvbnNlLFxuICAgIEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXF1ZXN0LFxuICAgIEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXNwb25zZSxcbiAgICBHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXF1ZXN0LFxuICAgIEdldE91dHN0YW5kaW5nQmFsYW5jZVJlc3BvbnNlLFxuICAgIEdldFBheW91dFN1bW1hcnlSZXF1ZXN0LFxuICAgIEdldFBheW91dFN1bW1hcnlSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxBY2NvdW50QmFsYW5jZVJlcXVlc3QsXG4gICAgR2V0UmV0YWlsQWNjb3VudEJhbGFuY2VSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxCYWxhbmNlUmVxdWVzdCxcbiAgICBHZXRSZXRhaWxCYWxhbmNlUmVzcG9uc2UsXG4gICAgR2V0UmV0YWlsUGF5b3V0UmVxdWVzdCxcbiAgICBHZXRSZXRhaWxQYXlvdXRSZXNwb25zZSxcbiAgICBDcmVhdGVNZXJjaGFudFJlcXVlc3RJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzLFxuICAgIFVwZGF0ZU1lcmNoYW50UmVxdWVzdEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHMsXG4gICAgTGlzdFJldGFpbFBheW91dHNSZXF1ZXN0LFxuICAgIExpc3RSZXRhaWxQYXlvdXRzUmVzcG9uc2UsXG4gICAgTWVyY2hhbnQsXG4gICAgUmV0YWlsQ29uZmlndXJhdGlvbixcbiAgICBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVzcG9uc2VSZXRhaWxDb25maWd1cmF0aW9uc0VudHJ5LFxuICAgIFNlYXJjaE1lcmNoYW50c1JlcXVlc3QsXG4gICAgU2VhcmNoTWVyY2hhbnRzUmVzcG9uc2UsXG4gICAgU2V0QXV0b0NoYXJnZUludm9pY2VzUmVxdWVzdCxcbiAgICBTZXRBdXRvUG9zdEludm9pY2VzUmVxdWVzdCxcbiAgICBTZXREZWZhdWx0UGF5bWVudENhcmRSZXF1ZXN0LFxuICAgIFNldEhhc0FsdGVybmF0aXZlUGF5bWVudE1ldGhvZFJlcXVlc3QsXG4gICAgU2V0SW5jbHVkZUluRmluYW5jaWFsUmVjb3Jkc1JlcXVlc3QsXG4gICAgVXBkYXRlTWVyY2hhbnRSZXF1ZXN0LFxuICAgIFVwc2VydERlZmF1bHRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgIFVwc2VydFJldGFpbENvbmZpZ3VyYXRpb25SZXF1ZXN0LFxufSBmcm9tICcuL21lcmNoYW50JztcblxuZXhwb3J0IHtcbiAgICBMaXN0TWVyY2hhbnRCaWxsaW5nUmVwb3J0c1JlcXVlc3QsXG4gICAgTGlzdE1lcmNoYW50QmlsbGluZ1JlcG9ydHNSZXNwb25zZSxcbiAgICBNZXJjaGFudFJlcG9ydCxcbn0gZnJvbSAnLi9tZXJjaGFudC1yZXBvcnQnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZU1ldGVyZWRDb21wb25lbnRSZXF1ZXN0LFxuICAgIE1ldGVyZWRDb21wb25lbnQsXG4gICAgVGlja0NvbXBvbmVudFVzYWdlUmVxdWVzdCxcbn0gZnJvbSAnLi9tZXRlcmVkLWNvbXBvbmVudCc7XG5cbmV4cG9ydCB7XG4gICAgQWRqdXN0bWVudCxcbiAgICBSZXRhaWxQYXltZW50Q2FyZERldGFpbHMsXG4gICAgQ2xvc2VSZXRhaWxEaXNwdXRlUmVxdWVzdCxcbiAgICBDb25maWd1cmVSZXRhaWxQYXltZW50UHJvdmlkZXJSZXF1ZXN0LFxuICAgIENvbmZpZ3VyZVJldGFpbFBheW1lbnRQcm92aWRlclJlc3BvbnNlLFxuICAgIENvbmZpcm1SZXRhaWxQYXltZW50UmVxdWVzdCxcbiAgICBEaXNwdXRlLFxuICAgIERpc3B1dGVFdmlkZW5jZSxcbiAgICBTdWJtaXRFdmlkZW5jZVJlcXVlc3REaXNwdXRlRXZpZGVuY2UsXG4gICAgRGlzcHV0ZUV2aWRlbmNlRGV0YWlscyxcbiAgICBGaWxlLFxuICAgIEdldFJldGFpbERpc3B1dGVSZXF1ZXN0LFxuICAgIEdldFJldGFpbERpc3B1dGVSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxQYXltZW50UHJvdmlkZXJSZXF1ZXN0LFxuICAgIEdldFJldGFpbFBheW1lbnRQcm92aWRlclJlc3BvbnNlLFxuICAgIEdldFJldGFpbFBheW1lbnRSZXF1ZXN0LFxuICAgIEdldFJldGFpbFBheW1lbnRSZXNwb25zZSxcbiAgICBHZXRXaG9sZXNhbGVQcm92aWRlclB1YmxpY0tleVJlcXVlc3QsXG4gICAgR2V0V2hvbGVzYWxlUHJvdmlkZXJQdWJsaWNLZXlSZXNwb25zZSxcbiAgICBMaXN0UGF5bWVudFJlcXVlc3RMaXN0UGF5bWVudEZpbHRlcnMsXG4gICAgTGlzdFBheW1lbnRSZXF1ZXN0LFxuICAgIExpc3RQYXltZW50UmVzcG9uc2UsXG4gICAgTGlzdFJldGFpbERpc3B1dGVzUmVxdWVzdCxcbiAgICBMaXN0UmV0YWlsRGlzcHV0ZXNSZXNwb25zZSxcbiAgICBMaXN0UmV0YWlsUGF5bWVudHNSZXF1ZXN0TGlzdFJldGFpbFBheW1lbnRzRmlsdGVycyxcbiAgICBMaXN0UmV0YWlsUGF5bWVudHNSZXF1ZXN0LFxuICAgIExpc3RSZXRhaWxQYXltZW50c1Jlc3BvbnNlLFxuICAgIExpc3RSZXRhaWxUcmFuc2FjdGlvbnNSZXF1ZXN0TGlzdFJldGFpbFRyYW5zYWN0aW9uc0ZpbHRlcnMsXG4gICAgTGlzdFJldGFpbFRyYW5zYWN0aW9uc1JlcXVlc3QsXG4gICAgTGlzdFJldGFpbFRyYW5zYWN0aW9uc1Jlc3BvbnNlLFxuICAgIFByZXBhcmVSZXRhaWxQYXltZW50UmVxdWVzdE9yZGVyLFxuICAgIFBheW1lbnQsXG4gICAgUGF5bWVudFBheW1lbnRBbGxvY2F0aW9uLFxuICAgIFByZXBhcmVSZXRhaWxQYXltZW50UmVxdWVzdCxcbiAgICBQcmVwYXJlUmV0YWlsUGF5bWVudFJlc3BvbnNlLFxuICAgIFJlZnVuZFJldGFpbFBheW1lbnRSZXF1ZXN0LFxuICAgIFJlZnVuZFJldGFpbFBheW1lbnRSZXNwb25zZSxcbiAgICBSZXRhaWxQYXltZW50LFxuICAgIFJldGFpbFBheW1lbnRzRW5hYmxlZFJlcXVlc3QsXG4gICAgUmV0YWlsUGF5bWVudHNFbmFibGVkUmVzcG9uc2UsXG4gICAgUmV0YWlsUmVmdW5kLFxuICAgIFJldGFpbFN0YXR1c1JlcXVlc3QsXG4gICAgUmV0YWlsU3RhdHVzUmVzcG9uc2UsXG4gICAgUmV0YWlsVHJhbnNhY3Rpb24sXG4gICAgU3VibWl0RXZpZGVuY2VSZXF1ZXN0LFxuICAgIFVwZGF0ZVJldGFpbFBheW1lbnRQcm92aWRlclJlcXVlc3QsXG4gICAgUmV0YWlsU3RhdHVzUmVzcG9uc2VWZXJpZmljYXRpb25FcnJvcixcbiAgICBSZXRhaWxTdGF0dXNSZXNwb25zZVZlcmlmaWNhdGlvblJlcXVpcmVtZW50cyxcbn0gZnJvbSAnLi9wYXltZW50JztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVQYXltZW50Q2FyZFJlcXVlc3QsXG4gICAgRGVsZXRlUGF5bWVudENhcmRSZXF1ZXN0LFxuICAgIExpc3RQYXltZW50Q2FyZHNSZXF1ZXN0LFxuICAgIExpc3RQYXltZW50Q2FyZHNSZXNwb25zZSxcbiAgICBQYXltZW50Q2FyZCxcbiAgICBTZXREZWZhdWx0UGF5bWVudE1ldGhvZFJlcXVlc3QsXG4gICAgVXBkYXRlUGF5bWVudENhcmRSZXF1ZXN0LFxufSBmcm9tICcuL3BheW1lbnQtY2FyZCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZSxcbiAgICBEZWxldGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBHZXRNdWx0aVByaWNpbmdQbGFuUHJvZHVjdFJlc3BvbnNlLFxuICAgIEdldFByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0UHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgTGlzdFByaWNpbmdQbGFuUHJvZHVjdHNSZXF1ZXN0TGlzdFByaWNpbmdQbGFuUHJvZHVjdHNGaWx0ZXJzLFxuICAgIExpc3RQcmljaW5nUGxhblByb2R1Y3RzUmVxdWVzdCxcbiAgICBMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c1Jlc3BvbnNlLFxuICAgIFByaWNpbmdQbGFuUHJvZHVjdFByaWNpbmdFbnRyeSxcbiAgICBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0UHJpY2luZ0VudHJ5LFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3RQcmljaW5nRW50cnksXG4gICAgUHJpY2luZ1BsYW5Qcm9kdWN0LFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgVXBzZXJ0V2hvbGVzYWxlUHJpY2luZ1JlcXVlc3QsXG59IGZyb20gJy4vcHJpY2luZy1wbGFuLXByb2R1Y3QnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZVByb2R1Y3RSZXF1ZXN0LFxuICAgIERlbGV0ZVByb2R1Y3RSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0TXVsdGlQcm9kdWN0UmVzcG9uc2UsXG4gICAgTGlzdFByb2R1Y3RzUmVxdWVzdExpc3RQcm9kdWN0c0ZpbHRlcnMsXG4gICAgTGlzdFByb2R1Y3RzUmVxdWVzdCxcbiAgICBMaXN0UHJvZHVjdHNSZXNwb25zZSxcbiAgICBQcm9kdWN0LFxuICAgIEdldE11bHRpUHJvZHVjdFJlc3BvbnNlUHJvZHVjdHNFbnRyeSxcbiAgICBVcGRhdGVQcm9kdWN0UmVxdWVzdCxcbn0gZnJvbSAnLi9wcm9kdWN0JztcblxuZXhwb3J0IHtcbiAgICBBcHBsaWVkQ3JlZGl0LFxuICAgIExpc3RQdXJjaGFzZVJlcXVlc3RMaXN0UHVyY2hhc2VCaWxsaW5nU3RyYXRlZ3lGaWx0ZXIsXG4gICAgTGlzdFB1cmNoYXNlUmVxdWVzdExpc3RQdXJjaGFzZUZpbHRlcnMsXG4gICAgTGlzdFB1cmNoYXNlSXRlbXNSZXF1ZXN0TGlzdFB1cmNoYXNlSXRlbXNGaWx0ZXJzLFxuICAgIExpc3RQdXJjaGFzZUl0ZW1zUmVxdWVzdCxcbiAgICBMaXN0UHVyY2hhc2VJdGVtc1Jlc3BvbnNlLFxuICAgIExpc3RQdXJjaGFzZVJlcXVlc3QsXG4gICAgTGlzdFB1cmNoYXNlUmVzcG9uc2UsXG4gICAgUGF1c2VEdW5uaW5nUmVxdWVzdCxcbiAgICBQdXJjaGFzZSxcbiAgICBQdXJjaGFzZUl0ZW0sXG4gICAgUmVzdW1lRHVubmluZ1JlcXVlc3QsXG4gICAgUmV0cnlQdXJjaGFzZVJlcXVlc3QsXG4gICAgU3RvcER1bm5pbmdSZXF1ZXN0LFxuICAgIFZvaWRQdXJjaGFzZVJlcXVlc3QsXG59IGZyb20gJy4vcHVyY2hhc2UnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZVJlZnVuZFJlcXVlc3QsXG4gICAgTGlzdFJlZnVuZHNSZXF1ZXN0LFxuICAgIExpc3RSZWZ1bmRzUmVzcG9uc2UsXG4gICAgUmVmdW5kLFxufSBmcm9tICcuL3JlZnVuZCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlU2FsZXNDcmVkaXROb3RlUmVxdWVzdCxcbiAgICBMaXN0U2FsZXNDcmVkaXROb3RlUmVxdWVzdExpc3RTYWxlc0NyZWRpdE5vdGVGaWx0ZXJzLFxuICAgIExpc3RTYWxlc0NyZWRpdE5vdGVSZXF1ZXN0LFxuICAgIExpc3RTYWxlc0NyZWRpdE5vdGVSZXNwb25zZSxcbiAgICBTYWxlc0NyZWRpdE5vdGUsXG59IGZyb20gJy4vc2FsZXMtY3JlZGl0LW5vdGUnO1xuXG5leHBvcnQge1xuICAgIEdldFNhbGVzSW52b2ljZVJlcXVlc3QsXG4gICAgR2V0U2FsZXNJbnZvaWNlUmVzcG9uc2UsXG4gICAgTGlzdFNhbGVzSW52b2ljZVJlcXVlc3RMaXN0U2FsZXNJbnZvaWNlRmlsdGVycyxcbiAgICBMaXN0U2FsZXNJbnZvaWNlUmVxdWVzdCxcbiAgICBMaXN0U2FsZXNJbnZvaWNlUmVzcG9uc2UsXG4gICAgUG9zdFNhbGVzSW52b2ljZVJlcXVlc3QsXG4gICAgU2FsZXNJbnZvaWNlLFxuICAgIFNlbmRTYWxlc0ludm9pY2VFbWFpbFJlcXVlc3QsXG4gICAgU2VuZFNhbGVzSW52b2ljZVJlY2VpcHRFbWFpbFJlcXVlc3QsXG59IGZyb20gJy4vc2FsZXMtaW52b2ljZSc7XG5cbmV4cG9ydCB7XG4gICAgU3Vic2NyaWJlVmFsaWRhdGlvbixcbn0gZnJvbSAnLi9zdWJzY3JpYmUtdmFsaWRhdGlvbic7XG5cbmV4cG9ydCB7XG4gICAgQWxpZ25tZW50U3Vic2NyaXB0aW9uLFxuICAgIENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICAgIENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXNwb25zZSxcbiAgICBDaGFuZ2VDdXN0b21Vbml0UHJpY2VSZXF1ZXN0LFxuICAgIENoYW5nZUZyZXF1ZW5jeVJlcXVlc3QsXG4gICAgQ2hhbmdlUmVuZXdhbERhdGVSZXF1ZXN0LFxuICAgIENyZWF0ZVN1YnNjcmlwdGlvblJlcXVlc3QsXG4gICAgQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3QsXG4gICAgQ3JlYXRlU3Vic2NyaXB0aW9uc1Jlc3BvbnNlLFxuICAgIFJldmVyc2VTdWJzY3JpcHRpb25SZXF1ZXN0LFxuICAgIFNldFJlbmV3YWxTdGFydFJlcXVlc3QsXG4gICAgQ2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3RTa3VzRW50cnksXG4gICAgU3Vic2NyaXB0aW9uLFxuICAgIENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0U3Vic2NyaXB0aW9uSXRlbSxcbiAgICBWYWxpZGF0ZVJlc3BvbnNlLFxufSBmcm9tICcuL3N1YnNjcmlwdGlvbic7XG5cbmV4cG9ydCB7XG4gICAgQ29udHJhY3REb2N1bWVudCxcbiAgICBEZWxldGVDb250cmFjdERvY3VtZW50UmVxdWVzdCxcbiAgICBMaXN0Q29udHJhY3REb2N1bWVudHNSZXF1ZXN0RmlsdGVycyxcbiAgICBMaXN0Q29udHJhY3REb2N1bWVudHNSZXF1ZXN0LFxuICAgIExpc3RDb250cmFjdERvY3VtZW50c1Jlc3BvbnNlLFxufSBmcm9tICcuL2NvbnRyYWN0LWRvY3VtZW50JztcblxuZXhwb3J0IHtcbiAgICBHZXRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICAgIEdldFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvblJlc3BvbnNlLFxuICAgIFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvbixcbiAgICBVcHNlcnRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXF1ZXN0LFxufSBmcm9tICcuL3JldGFpbC1jdXN0b21lci1jb25maWd1cmF0aW9uJztcblxuZXhwb3J0IHtcbiAgICBBZGRDcmVkaXRSZXF1ZXN0LFxuICAgIENyZWRpdEJhbGFuY2UsXG4gICAgR2V0QmFsYW5jZVJlcXVlc3QsXG4gICAgR2V0QmFsYW5jZVJlc3BvbnNlLFxufSBmcm9tICcuL2NyZWRpdCc7XG5cbmV4cG9ydCB7XG4gICAgUmVjdXJyaW5nSW52b2ljZUN1c3RvbWVyQWRkcmVzcyxcbiAgICBMaXN0UmVjdXJyaW5nSW52b2ljZXNGaWx0ZXJzRGF0ZUZpbHRlcixcbiAgICBEZWxldGVSZWN1cnJpbmdJbnZvaWNlUmVxdWVzdCxcbiAgICBMaXN0UmVjdXJyaW5nSW52b2ljZXNGaWx0ZXJzRGV0YWlsZWRJbnRlcnZhbCxcbiAgICBHZXRSZWN1cnJpbmdJbnZvaWNlUmVxdWVzdCxcbiAgICBMaXN0UmVjdXJyaW5nSW52b2ljZXNGaWx0ZXJzLFxuICAgIExpc3RSZWN1cnJpbmdJbnZvaWNlc1JlcXVlc3QsXG4gICAgTGlzdFJlY3VycmluZ0ludm9pY2VzUmVzcG9uc2UsXG4gICAgUmVjdXJyaW5nSW52b2ljZSxcbiAgICBSZWN1cnJpbmdJbnZvaWNlQnVuZGxlLFxuICAgIFJlY3VycmluZ0ludm9pY2VJdGVtLFxuICAgIFJlY3VycmluZ0ludm9pY2VMaW5lSXRlbSxcbiAgICBVcGRhdGVSZWN1cnJpbmdJbnZvaWNlUmVxdWVzdCxcbn0gZnJvbSAnLi9yZWN1cnJpbmctaW52b2ljZSc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bixcbiAgICBHZXRNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuLFxuICAgIE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4sXG59IGZyb20gJy4vcmVwb3J0LXJ1bic7XG5cbmV4cG9ydCB7XG4gICAgQWNjZXNzLFxufSBmcm9tICcuL2Fubm90YXRpb25zJztcblxuZXhwb3J0IHtcbiAgICBEZWxldGVSZXRhaWxQcmljaW5nUmVxdWVzdCxcbiAgICBHZW5lcmF0ZUJpbGxhYmxlSXRlbXNDU1ZSZXF1ZXN0LFxuICAgIEdlbmVyYXRlQmlsbGFibGVJdGVtc0NTVlJlc3BvbnNlLFxuICAgIEdlbmVyYXRlVmVuZG9yUmVwb3J0UmVxdWVzdCxcbiAgICBHZW5lcmF0ZVZlbmRvclJlcG9ydFJlc3BvbnNlLFxuICAgIEdldE11bHRpQnVuZGxlUmV0YWlsUHJpY2luZ1JlcXVlc3QsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXRhaWxQcmljaW5nUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1JlcXVlc3QsXG4gICAgR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1Jlc3BvbnNlLFxuICAgIEdldE11bHRpUmV0YWlsUHJpY2luZ1JlcXVlc3QsXG4gICAgR2V0TXVsdGlSZXRhaWxQcmljaW5nUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlXaG9sZXNhbGVDb3N0UmVxdWVzdCxcbiAgICBHZXRNdWx0aVdob2xlc2FsZUNvc3RSZXNwb25zZSxcbiAgICBHZXRQdXJjaGFzZUNvc3RSZXF1ZXN0LFxuICAgIEdldFB1cmNoYXNlQ29zdFJlc3BvbnNlLFxuICAgIEdldFJldmVudWVTdGF0c1JlcXVlc3QsXG4gICAgR2V0UmV2ZW51ZVN0YXRzUmVzcG9uc2UsXG4gICAgR2V0U3RhdGlzdGljc1JlcXVlc3QsXG4gICAgR2V0U3RhdGlzdGljc1Jlc3BvbnNlLFxuICAgIEdldFdob2xlc2FsZUNvbXBhcmlzb25SZXF1ZXN0R2V0V2hvbGVzYWxlQ29tcGFyaXNvbkZpbHRlcnMsXG4gICAgR2V0V2hvbGVzYWxlQ29tcGFyaXNvblJlcXVlc3QsXG4gICAgR2V0V2hvbGVzYWxlQ29tcGFyaXNvblJlc3BvbnNlLFxuICAgIEdldFdob2xlc2FsZUNvbXBhcmlzb25SZXNwb25zZUdldFdob2xlc2FsZUNvbXBhcmlzb25SZXN1bHQsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXRhaWxQcmljaW5nUmVzcG9uc2VQcmljZXNFbnRyeSxcbiAgICBVcHNlcnRSZXRhaWxQcmljaW5nUmVxdWVzdFByaWNpbmdFbnRyeSxcbiAgICBHZXRNdWx0aVJldGFpbFByaWNpbmdSZXNwb25zZVByb2R1Y3RQcmljZXNFbnRyeSxcbiAgICBHZXRNdWx0aVByb2R1Y3RQcmljaW5nUmVzcG9uc2VQcm9kdWN0UHJpY2VzRW50cnksXG4gICAgU2V0V2hvbGVzYWxlUHJvZHVjdFN0cmF0ZWd5UmVxdWVzdCxcbiAgICBTZXRXaG9sZXNhbGVQcm9kdWN0Vm9sdW1lQ29tbWl0bWVudFJlcXVlc3QsXG4gICAgU3RhcnRSZXZSZWNUZW1wbGF0ZUJhY2tmaWxsUmVxdWVzdCxcbiAgICBVcHNlcnRSZXRhaWxQcmljaW5nUmVxdWVzdCxcbn0gZnJvbSAnLi9hcGknO1xuXG4iXX0=
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9iaWxsaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixpQkFBaUI7QUFDakIsb0NBQW9DO0FBQ3BDLE9BQU8sRUFDSCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLHFCQUFxQixHQUN4QixNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQ0gsVUFBVSxHQUNiLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFDSCxVQUFVLEVBQ1YsR0FBRyxHQUNOLE1BQU0sT0FBTyxDQUFDO0FBRWYsT0FBTyxFQUNILFNBQVMsR0FDWixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsMEJBQTBCLEVBQzFCLDJCQUEyQixFQUMzQixXQUFXLEVBQ1gseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIseUJBQXlCLEdBQzVCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNILGFBQWEsRUFDYixjQUFjLEVBQ2Qsd0JBQXdCLEdBQzNCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUNILGVBQWUsRUFDZix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQiwrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3QixJQUFJLEVBQ0osK0JBQStCLEVBQy9CLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsMkJBQTJCLEdBQzlCLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUNILGVBQWUsR0FDbEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQ0gsTUFBTSxFQUNOLFVBQVUsRUFDVixhQUFhLEVBQ2Isa0NBQWtDLEVBQ2xDLHlCQUF5QixFQUN6QixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLDhCQUE4QixFQUM5QixtQkFBbUIsR0FDdEIsTUFBTSxVQUFVLENBQUM7QUFFbEIsT0FBTyxFQUNILFFBQVEsRUFDUix1Q0FBdUMsRUFDdkMscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQiw2QkFBNkIsRUFDN0IsMkJBQTJCLEVBQzNCLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsaUNBQWlDLEdBQ3BDLE1BQU0sWUFBWSxDQUFDO0FBRXBCLE9BQU8sRUFDSCxlQUFlLEVBQ2YsZ0NBQWdDLEVBQ2hDLGlDQUFpQyxHQUNwQyxNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFDSCxXQUFXLEVBQ1gsa0NBQWtDLEVBQ2xDLHdCQUF3QixFQUN4Qix1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLDRCQUE0QixHQUMvQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsdUNBQXVDLEVBQ3ZDLCtCQUErQixFQUMvQixnQ0FBZ0MsRUFDaEMsMkJBQTJCLEVBQzNCLDRCQUE0QixFQUM1Qix3Q0FBd0MsRUFDeEMsc0NBQXNDLEVBQ3RDLGdDQUFnQyxFQUNoQyxPQUFPLEVBQ1AsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsb0VBQW9FLEdBQ3ZFLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUNILHFCQUFxQixFQUNyQixRQUFRLEVBQ1IscUJBQXFCLEVBQ3JCLDJCQUEyQixFQUMzQixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLHFCQUFxQixHQUN4QixNQUFNLFlBQVksQ0FBQztBQUVwQixPQUFPLEVBQ0gsY0FBYyxHQUNqQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsNkJBQTZCLEVBQzdCLDhCQUE4QixFQUM5QixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixxQ0FBcUMsRUFDckMsMkNBQTJDLEVBQzNDLGNBQWMsRUFDZCxlQUFlLEVBQ2YsT0FBTyxFQUNQLGdCQUFnQixHQUNuQixNQUFNLFlBQVksQ0FBQztBQUVwQixPQUFPLEVBQ0gsYUFBYSxFQUNiLGlCQUFpQixHQUNwQixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsb0NBQW9DLEVBQ3BDLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsMEJBQTBCLEVBQzFCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsZ0NBQWdDLEVBQ2hDLGlDQUFpQyxFQUNqQyxPQUFPLEVBQ1AsV0FBVyxFQUNYLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0Isb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLGtCQUFrQixHQUNyQixNQUFNLFdBQVcsQ0FBQztBQUVuQixPQUFPLEVBQ0gsY0FBYyxFQUNkLE9BQU8sRUFDUCxhQUFhLEdBQ2hCLE1BQU0sV0FBVyxDQUFDO0FBRW5CLE9BQU8sRUFDSCxTQUFTLEdBQ1osTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUNILHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLE1BQU0sRUFDTixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLFlBQVksR0FDZixNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6QiwyQkFBMkIsRUFDM0IsNEJBQTRCLEVBQzVCLHFCQUFxQixFQUNyQiw0QkFBNEIsRUFDNUIsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixtQ0FBbUMsRUFDbkMsb0NBQW9DLEVBQ3BDLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0IsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4Qiw4QkFBOEIsRUFDOUIsK0JBQStCLEVBQy9CLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qiw4Q0FBOEMsRUFDOUMsOENBQThDLEVBQzlDLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsUUFBUSxFQUNSLG1CQUFtQixFQUNuQiw2REFBNkQsRUFDN0Qsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qiw0QkFBNEIsRUFDNUIsMEJBQTBCLEVBQzFCLDRCQUE0QixFQUM1QixxQ0FBcUMsRUFDckMsbUNBQW1DLEVBQ25DLHFCQUFxQixFQUNyQiwrQ0FBK0MsRUFDL0MsZ0NBQWdDLEdBQ25DLE1BQU0sWUFBWSxDQUFDO0FBRXBCLE9BQU8sRUFDSCxpQ0FBaUMsRUFDakMsa0NBQWtDLEVBQ2xDLGNBQWMsR0FDakIsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixPQUFPLEVBQ0gsNkJBQTZCLEVBQzdCLGdCQUFnQixFQUNoQix5QkFBeUIsR0FDNUIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQ0gsVUFBVSxFQUNWLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIscUNBQXFDLEVBQ3JDLHNDQUFzQyxFQUN0QywyQkFBMkIsRUFDM0IsT0FBTyxFQUNQLGVBQWUsRUFDZixvQ0FBb0MsRUFDcEMsc0JBQXNCLEVBQ3RCLElBQUksRUFDSix1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLCtCQUErQixFQUMvQixnQ0FBZ0MsRUFDaEMsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QixvQ0FBb0MsRUFDcEMscUNBQXFDLEVBQ3JDLG9DQUFvQyxFQUNwQyxrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIsa0RBQWtELEVBQ2xELHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIsMERBQTBELEVBQzFELDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsZ0NBQWdDLEVBQ2hDLE9BQU8sRUFDUCx3QkFBd0IsRUFDeEIsMkJBQTJCLEVBQzNCLDRCQUE0QixFQUM1QiwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLGFBQWEsRUFDYiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLFlBQVksRUFDWixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsa0NBQWtDLEVBQ2xDLHFDQUFxQyxFQUNyQyw0Q0FBNEMsR0FDL0MsTUFBTSxXQUFXLENBQUM7QUFFbkIsT0FBTyxFQUNILHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QixXQUFXLEVBQ1gsOEJBQThCLEVBQzlCLHdCQUF3QixHQUMzQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFDSCwrQkFBK0IsRUFDL0IsZ0NBQWdDLEVBQ2hDLCtCQUErQixFQUMvQixpQ0FBaUMsRUFDakMsa0NBQWtDLEVBQ2xDLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0IsNERBQTRELEVBQzVELDhCQUE4QixFQUM5QiwrQkFBK0IsRUFDL0IsOEJBQThCLEVBQzlCLDJDQUEyQyxFQUMzQywyQ0FBMkMsRUFDM0Msa0JBQWtCLEVBQ2xCLCtCQUErQixFQUMvQixnQ0FBZ0MsRUFDaEMsNkJBQTZCLEdBQ2hDLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUNILG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixzQ0FBc0MsRUFDdEMsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixPQUFPLEVBQ1Asb0NBQW9DLEVBQ3BDLG9CQUFvQixHQUN2QixNQUFNLFdBQVcsQ0FBQztBQUVuQixPQUFPLEVBQ0gsYUFBYSxFQUNiLG9EQUFvRCxFQUNwRCxzQ0FBc0MsRUFDdEMsZ0RBQWdELEVBQ2hELHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsUUFBUSxFQUNSLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixtQkFBbUIsR0FDdEIsTUFBTSxZQUFZLENBQUM7QUFFcEIsT0FBTyxFQUNILG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLE1BQU0sR0FDVCxNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQ0gsNEJBQTRCLEVBQzVCLG9EQUFvRCxFQUNwRCwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLGVBQWUsR0FDbEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qiw4Q0FBOEMsRUFDOUMsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4Qix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLDRCQUE0QixFQUM1QixtQ0FBbUMsR0FDdEMsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQ0gsbUJBQW1CLEdBQ3RCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUNILHFCQUFxQixFQUNyQiw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsc0NBQXNDLEVBQ3RDLFlBQVksRUFDWiw2Q0FBNkMsRUFDN0MsZ0JBQWdCLEdBQ25CLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNILGdCQUFnQixFQUNoQiw2QkFBNkIsRUFDN0IsbUNBQW1DLEVBQ25DLDRCQUE0QixFQUM1Qiw2QkFBNkIsR0FDaEMsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQ0gscUNBQXFDLEVBQ3JDLHNDQUFzQyxFQUN0QywyQkFBMkIsRUFDM0Isd0NBQXdDLEdBQzNDLE1BQU0saUNBQWlDLENBQUM7QUFFekMsT0FBTyxFQUNILGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGtCQUFrQixHQUNyQixNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQ0gsK0JBQStCLEVBQy9CLHNDQUFzQyxFQUN0Qyw2QkFBNkIsRUFDN0IsNENBQTRDLEVBQzVDLDBCQUEwQixFQUMxQiw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3QixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUNwQix3QkFBd0IsRUFDeEIsNkJBQTZCLEdBQ2hDLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUNILCtCQUErQixFQUMvQiw0QkFBNEIsRUFDNUIseUJBQXlCLEdBQzVCLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFDSCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNILDJDQUEyQyxFQUMzQyx3Q0FBd0MsRUFDeEMseUNBQXlDLEVBQ3pDLG9DQUFvQyxFQUNwQyxxQ0FBcUMsRUFDckMsdUNBQXVDLEVBQ3ZDLHdDQUF3QyxFQUN4Qyx3QkFBd0IsR0FDM0IsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLCtCQUErQixFQUMvQixnQ0FBZ0MsRUFDaEMsMkJBQTJCLEVBQzNCLDRCQUE0QixFQUM1QixrQ0FBa0MsRUFDbEMsbUNBQW1DLEVBQ25DLDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3Qiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLDBEQUEwRCxFQUMxRCw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDBEQUEwRCxFQUMxRCw4Q0FBOEMsRUFDOUMsc0NBQXNDLEVBQ3RDLCtDQUErQyxFQUMvQyxnREFBZ0QsRUFDaEQsa0NBQWtDLEVBQ2xDLDBDQUEwQyxFQUMxQyxrQ0FBa0MsRUFDbEMsMEJBQTBCLEdBQzdCLE1BQU0sT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzIEluZGV4LlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5leHBvcnQge1xuICAgIEV4cG9ydFJlc3BvbnNlLFxuICAgIFBhZ2VkUmVxdWVzdE9wdGlvbnMsXG4gICAgUGFnZWRSZXNwb25zZU1ldGFkYXRhLFxufSBmcm9tICcuL2NvbW1vbic7XG5cbmV4cG9ydCB7XG4gICAgQ29tbWl0bWVudCxcbn0gZnJvbSAnLi9jb21taXRtZW50JztcblxuZXhwb3J0IHtcbiAgICBBcHBsaWVkRmVlLFxuICAgIEZlZSxcbn0gZnJvbSAnLi9mZWUnO1xuXG5leHBvcnQge1xuICAgIEZpZWxkTWFzayxcbn0gZnJvbSAnLi9maWVsZC1tYXNrJztcblxuZXhwb3J0IHtcbiAgICBDb21wb25lbnRQcmljaW5nLFxuICAgIENyZWF0ZVByaWNpbmdQbGFuUmVxdWVzdCxcbiAgICBDcmVhdGVQcmljaW5nUGxhblJlc3BvbnNlLFxuICAgIEdldE11bHRpUHJpY2luZ1BsYW5SZXF1ZXN0LFxuICAgIEdldE11bHRpUHJpY2luZ1BsYW5SZXNwb25zZSxcbiAgICBQcmljaW5nUGxhbixcbiAgICBQcmljaW5nUGxhblByb2R1Y3RQcmljaW5nLFxuICAgIFByb2R1Y3RQcmljaW5nUnVsZSxcbiAgICBVcGRhdGVQcmljaW5nUGxhblJlcXVlc3QsXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5SZXNwb25zZSxcbn0gZnJvbSAnLi9wcmljaW5nLXBsYW4nO1xuXG5leHBvcnQge1xuICAgIFByb2R1Y3RQcmljZXMsXG4gICAgUHJvZHVjdFByaWNpbmcsXG4gICAgV2hvbGVzYWxlQ29zdEl0ZW1SZXF1ZXN0LFxufSBmcm9tICcuL3Byb2R1Y3QtcHJpY2luZyc7XG5cbmV4cG9ydCB7XG4gICAgQmlsbEl0ZW1SZXF1ZXN0LFxuICAgIEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdCxcbiAgICBCaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlLFxuICAgIEJpbGxhYmxlSXRlbSxcbiAgICBDYW5CaWxsSXRlbVJlcXVlc3QsXG4gICAgQ3JlYXRlVXNhZ2VSZXF1ZXN0LFxuICAgIEJpbGxhYmxlSXRlbUN1c3RvbWVyQWRkcmVzcyxcbiAgICBEZWxldGVCaWxsYWJsZUl0ZW1SZXF1ZXN0LFxuICAgIEV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3QsXG4gICAgRXhwb3J0U3Vic2NyaXB0aW9uc1JlcXVlc3QsXG4gICAgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0RmlsdGVycyxcbiAgICBMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3RGaWx0ZXJzLFxuICAgIEdldEJpbGxhYmxlSXRlbVJlcXVlc3QsXG4gICAgR2V0QmlsbGFibGVJdGVtUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdCxcbiAgICBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXNwb25zZSxcbiAgICBJdGVtLFxuICAgIEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXksXG4gICAgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0LFxuICAgIExpc3RCaWxsYWJsZUl0ZW1zUmVzcG9uc2UsXG4gICAgTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICAgIExpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2UsXG4gICAgU3Vic2NyaXB0aW9uUHJvamVjdGlvbkZpbHRlcixcbiAgICBVbmV4cGlyZUJpbGxhYmxlSXRlbVJlcXVlc3QsXG59IGZyb20gJy4vYmlsbGFibGUtaXRlbSc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZERpc2NvdW50LFxufSBmcm9tICcuL2FwcGxpZWQtZGlzY291bnQnO1xuXG5leHBvcnQge1xuICAgIEJ1bmRsZSxcbiAgICBCdW5kbGVJdGVtLFxuICAgIEJ1bmRsZVByaWNpbmcsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXNwb25zZUJ1bmRsZXNFbnRyeSxcbiAgICBMaXN0QnVuZGxlc1JlcXVlc3RGaWx0ZXJzLFxuICAgIEdldE11bHRpQnVuZGxlUmVxdWVzdCxcbiAgICBHZXRNdWx0aUJ1bmRsZVJlc3BvbnNlLFxuICAgIExpc3RCdW5kbGVzUmVxdWVzdCxcbiAgICBMaXN0QnVuZGxlc1Jlc3BvbnNlLFxuICAgIEJ1bmRsZUl0ZW1QcmljZSxcbiAgICBCdW5kbGVQcmljaW5nUHJpY2VBbmRGcmVxdWVuY3ksXG4gICAgVXBzZXJ0QnVuZGxlUmVxdWVzdCxcbn0gZnJvbSAnLi9idW5kbGUnO1xuXG5leHBvcnQge1xuICAgIENvbnRyYWN0LFxuICAgIEdldE11bHRpQ29udHJhY3RzUmVzcG9uc2VDb250cmFjdHNFbnRyeSxcbiAgICBDcmVhdGVDb250cmFjdFJlcXVlc3QsXG4gICAgQ3JlYXRlQ29udHJhY3RSZXNwb25zZSxcbiAgICBHZXRDb250cmFjdFJlcXVlc3QsXG4gICAgR2V0Q29udHJhY3RSZXNwb25zZSxcbiAgICBHZXRNdWx0aUNvbnRyYWN0c1JlcXVlc3QsXG4gICAgR2V0TXVsdGlDb250cmFjdHNSZXNwb25zZSxcbiAgICBMaXN0Q29udHJhY3RzUmVxdWVzdCxcbiAgICBMaXN0Q29udHJhY3RzUmVzcG9uc2UsXG4gICAgVXBkYXRlQ29udHJhY3RSZXF1ZXN0TXV0YXRpb24sXG4gICAgUmVzZXRDb250cmFjdFByaWNpbmdSZXF1ZXN0LFxuICAgIFVwZGF0ZUNvbnRyYWN0UmVxdWVzdCxcbiAgICBVcGRhdGVDb250cmFjdFJlc3BvbnNlLFxuICAgIFVwZGF0ZUNvbnRyYWN0U3Vic2NyaXB0aW9uUmVxdWVzdCxcbn0gZnJvbSAnLi9jb250cmFjdCc7XG5cbmV4cG9ydCB7XG4gICAgQ3VzdG9tZXJTdW1tYXJ5LFxuICAgIEdldE11bHRpQ3VzdG9tZXJTdW1tYXJpZXNSZXF1ZXN0LFxuICAgIEdldE11bHRpQ3VzdG9tZXJTdW1tYXJpZXNSZXNwb25zZSxcbn0gZnJvbSAnLi9jdXN0b21lci1zdW1tYXJ5JztcblxuZXhwb3J0IHtcbiAgICBCYW5rQWNjb3VudCxcbiAgICBDcmVhdGVTdHJpcGVFeHRlcm5hbEFjY291bnRSZXF1ZXN0LFxuICAgIERlbGV0ZUJhbmtBY2NvdW50UmVxdWVzdCxcbiAgICBMaXN0QmFua0FjY291bnRzUmVxdWVzdCxcbiAgICBMaXN0QmFua0FjY291bnRzUmVzcG9uc2UsXG4gICAgU2V0RGVmYXVsdEJhbmtBY2NvdW50UmVxdWVzdCxcbn0gZnJvbSAnLi9leHRlcm5hbC1hY2NvdW50JztcblxuZXhwb3J0IHtcbiAgICBQcm9kdWN0U3VtbWFyeURpc2NvdW50LFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25SZXF1ZXN0RmlsdGVycyxcbiAgICBHZXRQcm9kdWN0U3VtbWFyaWVzVG90YWxSZXF1ZXN0LFxuICAgIEdldFByb2R1Y3RTdW1tYXJpZXNUb3RhbFJlc3BvbnNlLFxuICAgIExpc3RQcm9kdWN0U3VtbWFyaWVzUmVxdWVzdCxcbiAgICBMaXN0UHJvZHVjdFN1bW1hcmllc1Jlc3BvbnNlLFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25CeUdyb3VwUmVzcG9uc2UsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJldGVudGlvbkJ5U0tVUmVzcG9uc2UsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJldGVudGlvblJlcXVlc3QsXG4gICAgUHJpY2luZyxcbiAgICBQcm9kdWN0U3VtbWFyeSxcbiAgICBSZXRlbnRpb25NZXRyaWNzLFxuICAgIFByaWNpbmdSdWxlLFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25CeUdyb3VwUmVzcG9uc2VTdWJzY3JpcHRpb25SZXRlbnRpb25CeUdyb3VwLFxufSBmcm9tICcuL3Byb2R1Y3Qtc3VtbWFyeSc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlRGlzY291bnRSZXF1ZXN0LFxuICAgIERpc2NvdW50LFxuICAgIEV4cGlyZURpc2NvdW50UmVxdWVzdCxcbiAgICBMaXN0RGlzY291bnRzUmVxdWVzdEZpbHRlcnMsXG4gICAgTGlzdERpc2NvdW50c1JlcXVlc3QsXG4gICAgTGlzdERpc2NvdW50c1Jlc3BvbnNlLFxuICAgIFVwZGF0ZURpc2NvdW50UmVxdWVzdCxcbn0gZnJvbSAnLi9kaXNjb3VudCc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZFRheFJhdGUsXG59IGZyb20gJy4vYXBwbGllZC10YXgtcmF0ZSc7XG5cbmV4cG9ydCB7XG4gICAgQXJjaGl2ZVRheFJlcXVlc3QsXG4gICAgQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1JlcXVlc3QsXG4gICAgQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1Jlc3BvbnNlLFxuICAgIENhbGN1bGF0ZVRheFJlcXVlc3QsXG4gICAgQ2FsY3VsYXRlVGF4UmVzcG9uc2UsXG4gICAgQ3JlYXRlVGF4UmVxdWVzdCxcbiAgICBMaXN0VGF4UmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0TXVsdGlUYXhSZXF1ZXN0LFxuICAgIEdldE11bHRpVGF4UmVzcG9uc2UsXG4gICAgQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1JlcXVlc3RMaW5lSXRlbSxcbiAgICBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVzcG9uc2VMaW5lSXRlbVRheGVzLFxuICAgIExpc3RUYXhSZXF1ZXN0LFxuICAgIExpc3RUYXhSZXNwb25zZSxcbiAgICBUYXhSYXRlLFxuICAgIFVwZGF0ZVRheFJlcXVlc3QsXG59IGZyb20gJy4vdGF4LXJhdGUnO1xuXG5leHBvcnQge1xuICAgIEFwcGxpZWRCdW5kbGUsXG4gICAgQXBwbGllZEJ1bmRsZUl0ZW0sXG59IGZyb20gJy4vYXBwbGllZC1idW5kbGUnO1xuXG5leHBvcnQge1xuICAgIEFkZEJ1bmRsZVJlcXVlc3QsXG4gICAgQWRkQnVuZGxlUmVzcG9uc2UsXG4gICAgQWRkTGluZUl0ZW1SZXF1ZXN0LFxuICAgIEFkZExpbmVJdGVtUmVzcG9uc2UsXG4gICAgQ2hhcmdlSW52b2ljZVJlcXVlc3QsXG4gICAgQ3JlYXRlSW52b2ljZVJlcXVlc3QsXG4gICAgQ3JlYXRlSW52b2ljZVJlc3BvbnNlLFxuICAgIENyZWF0ZVBheW1lbnRMaW5rUmVxdWVzdCxcbiAgICBDcmVhdGVQYXltZW50TGlua1Jlc3BvbnNlLFxuICAgIEludm9pY2VDdXN0b21lckFkZHJlc3MsXG4gICAgTGlzdEludm9pY2VzUmVxdWVzdEZpbHRlcnNEYXRlRmlsdGVyLFxuICAgIERlbGV0ZUludm9pY2VSZXF1ZXN0LFxuICAgIERlbGV0ZUxpbmVJdGVtUmVxdWVzdCxcbiAgICBEZWxldGVMaW5lSXRlbVJlc3BvbnNlLFxuICAgIER1cGxpY2F0ZUludm9pY2VSZXF1ZXN0LFxuICAgIER1cGxpY2F0ZUludm9pY2VSZXNwb25zZSxcbiAgICBMaXN0SW52b2ljZXNSZXF1ZXN0RmlsdGVycyxcbiAgICBHZXRJbnZvaWNlUmVxdWVzdCxcbiAgICBHZXRJbnZvaWNlUmVzcG9uc2UsXG4gICAgR2V0VXBjb21pbmdJbnZvaWNlUHJldmlld1JlcXVlc3QsXG4gICAgR2V0VXBjb21pbmdJbnZvaWNlUHJldmlld1Jlc3BvbnNlLFxuICAgIEludm9pY2UsXG4gICAgSW52b2ljZUl0ZW0sXG4gICAgTGlzdEludm9pY2VzUmVxdWVzdCxcbiAgICBMaXN0SW52b2ljZXNSZXNwb25zZSxcbiAgICBQYXlJbnZvaWNlUmVxdWVzdCxcbiAgICBQYXltZW50TGlua0l0ZW0sXG4gICAgUmVtb3ZlQnVuZGxlUmVxdWVzdCxcbiAgICBSZW1vdmVCdW5kbGVSZXNwb25zZSxcbiAgICBTZW5kSW52b2ljZVJlcXVlc3QsXG4gICAgVXBkYXRlQnVuZGxlUmVxdWVzdCxcbiAgICBVcGRhdGVCdW5kbGVSZXNwb25zZSxcbiAgICBVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0LFxuICAgIFVwZGF0ZURlZmF1bHRUYXhSYXRlc1Jlc3BvbnNlLFxuICAgIFVwZGF0ZUludm9pY2VSZXF1ZXN0LFxuICAgIFVwZGF0ZUludm9pY2VSZXNwb25zZSxcbiAgICBVcGRhdGVMaW5lSXRlbVJlcXVlc3QsXG4gICAgVXBkYXRlTGluZUl0ZW1SZXNwb25zZSxcbiAgICBWb2lkSW52b2ljZVJlcXVlc3QsXG59IGZyb20gJy4vaW52b2ljZSc7XG5cbmV4cG9ydCB7XG4gICAgQWNjb3VudEJhbGFuY2UsXG4gICAgQmFsYW5jZSxcbiAgICBCYWxhbmNlQW1vdW50LFxufSBmcm9tICcuL2JhbGFuY2UnO1xuXG5leHBvcnQge1xuICAgIERhdGVSYW5nZSxcbn0gZnJvbSAnLi9kYXRlLXJhbmdlJztcblxuZXhwb3J0IHtcbiAgICBMaXN0UGF5b3V0c1JlcXVlc3RGaWx0ZXJzLFxuICAgIExpc3RQYXlvdXRzUmVxdWVzdCxcbiAgICBMaXN0UGF5b3V0c1Jlc3BvbnNlLFxuICAgIFBheW91dCxcbiAgICBSZWNvbmNpbGVQYXlvdXRSZXF1ZXN0LFxuICAgIFJlY29uY2lsZVBheW91dFJlc3BvbnNlLFxuICAgIFJldGFpbFBheW91dCxcbn0gZnJvbSAnLi9wYXlvdXQnO1xuXG5leHBvcnQge1xuICAgIENhbmNlbFJldGFpbEJpbGxpbmdSZXF1ZXN0LFxuICAgIENoYXJnZVNhbGVzSW52b2ljZVJlcXVlc3QsXG4gICAgQ29ubmVjdFN0cmlwZUFjY291bnRSZXF1ZXN0LFxuICAgIENvbm5lY3RTdHJpcGVBY2NvdW50UmVzcG9uc2UsXG4gICAgQ3JlYXRlTWVyY2hhbnRSZXF1ZXN0LFxuICAgIERlZmF1bHRDdXN0b21lckNvbmZpZ3VyYXRpb24sXG4gICAgR2V0TWVyY2hhbnRSZXF1ZXN0LFxuICAgIEdldE1lcmNoYW50UmVzcG9uc2UsXG4gICAgR2V0TXVsdGlSZXRhaWxDb25maWd1cmF0aW9uc1JlcXVlc3QsXG4gICAgR2V0TXVsdGlSZXRhaWxDb25maWd1cmF0aW9uc1Jlc3BvbnNlLFxuICAgIEdldE91dHN0YW5kaW5nQmFsYW5jZVJlcXVlc3QsXG4gICAgR2V0T3V0c3RhbmRpbmdCYWxhbmNlUmVzcG9uc2UsXG4gICAgR2V0UGF5b3V0U3VtbWFyeVJlcXVlc3QsXG4gICAgR2V0UGF5b3V0U3VtbWFyeVJlc3BvbnNlLFxuICAgIEdldFJldGFpbEFjY291bnRCYWxhbmNlUmVxdWVzdCxcbiAgICBHZXRSZXRhaWxBY2NvdW50QmFsYW5jZVJlc3BvbnNlLFxuICAgIEdldFJldGFpbEJhbGFuY2VSZXF1ZXN0LFxuICAgIEdldFJldGFpbEJhbGFuY2VSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxQYXlvdXRSZXF1ZXN0LFxuICAgIEdldFJldGFpbFBheW91dFJlc3BvbnNlLFxuICAgIENyZWF0ZU1lcmNoYW50UmVxdWVzdEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHMsXG4gICAgVXBkYXRlTWVyY2hhbnRSZXF1ZXN0SW5jbHVkZUluRmluYW5jaWFsUmVjb3JkcyxcbiAgICBMaXN0UmV0YWlsUGF5b3V0c1JlcXVlc3QsXG4gICAgTGlzdFJldGFpbFBheW91dHNSZXNwb25zZSxcbiAgICBNZXJjaGFudCxcbiAgICBSZXRhaWxDb25maWd1cmF0aW9uLFxuICAgIEdldE11bHRpUmV0YWlsQ29uZmlndXJhdGlvbnNSZXNwb25zZVJldGFpbENvbmZpZ3VyYXRpb25zRW50cnksXG4gICAgU2VhcmNoTWVyY2hhbnRzUmVxdWVzdCxcbiAgICBTZWFyY2hNZXJjaGFudHNSZXNwb25zZSxcbiAgICBTZXRBdXRvQ2hhcmdlSW52b2ljZXNSZXF1ZXN0LFxuICAgIFNldEF1dG9Qb3N0SW52b2ljZXNSZXF1ZXN0LFxuICAgIFNldERlZmF1bHRQYXltZW50Q2FyZFJlcXVlc3QsXG4gICAgU2V0SGFzQWx0ZXJuYXRpdmVQYXltZW50TWV0aG9kUmVxdWVzdCxcbiAgICBTZXRJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzUmVxdWVzdCxcbiAgICBVcGRhdGVNZXJjaGFudFJlcXVlc3QsXG4gICAgVXBzZXJ0RGVmYXVsdFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgVXBzZXJ0UmV0YWlsQ29uZmlndXJhdGlvblJlcXVlc3QsXG59IGZyb20gJy4vbWVyY2hhbnQnO1xuXG5leHBvcnQge1xuICAgIExpc3RNZXJjaGFudEJpbGxpbmdSZXBvcnRzUmVxdWVzdCxcbiAgICBMaXN0TWVyY2hhbnRCaWxsaW5nUmVwb3J0c1Jlc3BvbnNlLFxuICAgIE1lcmNoYW50UmVwb3J0LFxufSBmcm9tICcuL21lcmNoYW50LXJlcG9ydCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlTWV0ZXJlZENvbXBvbmVudFJlcXVlc3QsXG4gICAgTWV0ZXJlZENvbXBvbmVudCxcbiAgICBUaWNrQ29tcG9uZW50VXNhZ2VSZXF1ZXN0LFxufSBmcm9tICcuL21ldGVyZWQtY29tcG9uZW50JztcblxuZXhwb3J0IHtcbiAgICBBZGp1c3RtZW50LFxuICAgIFJldGFpbFBheW1lbnRDYXJkRGV0YWlscyxcbiAgICBDbG9zZVJldGFpbERpc3B1dGVSZXF1ZXN0LFxuICAgIENvbmZpZ3VyZVJldGFpbFBheW1lbnRQcm92aWRlclJlcXVlc3QsXG4gICAgQ29uZmlndXJlUmV0YWlsUGF5bWVudFByb3ZpZGVyUmVzcG9uc2UsXG4gICAgQ29uZmlybVJldGFpbFBheW1lbnRSZXF1ZXN0LFxuICAgIERpc3B1dGUsXG4gICAgRGlzcHV0ZUV2aWRlbmNlLFxuICAgIFN1Ym1pdEV2aWRlbmNlUmVxdWVzdERpc3B1dGVFdmlkZW5jZSxcbiAgICBEaXNwdXRlRXZpZGVuY2VEZXRhaWxzLFxuICAgIEZpbGUsXG4gICAgR2V0UmV0YWlsRGlzcHV0ZVJlcXVlc3QsXG4gICAgR2V0UmV0YWlsRGlzcHV0ZVJlc3BvbnNlLFxuICAgIEdldFJldGFpbFBheW1lbnRQcm92aWRlclJlcXVlc3QsXG4gICAgR2V0UmV0YWlsUGF5bWVudFByb3ZpZGVyUmVzcG9uc2UsXG4gICAgR2V0UmV0YWlsUGF5bWVudFJlcXVlc3QsXG4gICAgR2V0UmV0YWlsUGF5bWVudFJlc3BvbnNlLFxuICAgIEdldFdob2xlc2FsZVByb3ZpZGVyUHVibGljS2V5UmVxdWVzdCxcbiAgICBHZXRXaG9sZXNhbGVQcm92aWRlclB1YmxpY0tleVJlc3BvbnNlLFxuICAgIExpc3RQYXltZW50UmVxdWVzdExpc3RQYXltZW50RmlsdGVycyxcbiAgICBMaXN0UGF5bWVudFJlcXVlc3QsXG4gICAgTGlzdFBheW1lbnRSZXNwb25zZSxcbiAgICBMaXN0UmV0YWlsRGlzcHV0ZXNSZXF1ZXN0LFxuICAgIExpc3RSZXRhaWxEaXNwdXRlc1Jlc3BvbnNlLFxuICAgIExpc3RSZXRhaWxQYXltZW50c1JlcXVlc3RMaXN0UmV0YWlsUGF5bWVudHNGaWx0ZXJzLFxuICAgIExpc3RSZXRhaWxQYXltZW50c1JlcXVlc3QsXG4gICAgTGlzdFJldGFpbFBheW1lbnRzUmVzcG9uc2UsXG4gICAgTGlzdFJldGFpbFRyYW5zYWN0aW9uc1JlcXVlc3RMaXN0UmV0YWlsVHJhbnNhY3Rpb25zRmlsdGVycyxcbiAgICBMaXN0UmV0YWlsVHJhbnNhY3Rpb25zUmVxdWVzdCxcbiAgICBMaXN0UmV0YWlsVHJhbnNhY3Rpb25zUmVzcG9uc2UsXG4gICAgUHJlcGFyZVJldGFpbFBheW1lbnRSZXF1ZXN0T3JkZXIsXG4gICAgUGF5bWVudCxcbiAgICBQYXltZW50UGF5bWVudEFsbG9jYXRpb24sXG4gICAgUHJlcGFyZVJldGFpbFBheW1lbnRSZXF1ZXN0LFxuICAgIFByZXBhcmVSZXRhaWxQYXltZW50UmVzcG9uc2UsXG4gICAgUmVmdW5kUmV0YWlsUGF5bWVudFJlcXVlc3QsXG4gICAgUmVmdW5kUmV0YWlsUGF5bWVudFJlc3BvbnNlLFxuICAgIFJldGFpbFBheW1lbnQsXG4gICAgUmV0YWlsUGF5bWVudHNFbmFibGVkUmVxdWVzdCxcbiAgICBSZXRhaWxQYXltZW50c0VuYWJsZWRSZXNwb25zZSxcbiAgICBSZXRhaWxSZWZ1bmQsXG4gICAgUmV0YWlsU3RhdHVzUmVxdWVzdCxcbiAgICBSZXRhaWxTdGF0dXNSZXNwb25zZSxcbiAgICBSZXRhaWxUcmFuc2FjdGlvbixcbiAgICBTdWJtaXRFdmlkZW5jZVJlcXVlc3QsXG4gICAgVXBkYXRlUmV0YWlsUGF5bWVudFByb3ZpZGVyUmVxdWVzdCxcbiAgICBSZXRhaWxTdGF0dXNSZXNwb25zZVZlcmlmaWNhdGlvbkVycm9yLFxuICAgIFJldGFpbFN0YXR1c1Jlc3BvbnNlVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnRzLFxufSBmcm9tICcuL3BheW1lbnQnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZVBheW1lbnRDYXJkUmVxdWVzdCxcbiAgICBEZWxldGVQYXltZW50Q2FyZFJlcXVlc3QsXG4gICAgTGlzdFBheW1lbnRDYXJkc1JlcXVlc3QsXG4gICAgTGlzdFBheW1lbnRDYXJkc1Jlc3BvbnNlLFxuICAgIFBheW1lbnRDYXJkLFxuICAgIFNldERlZmF1bHRQYXltZW50TWV0aG9kUmVxdWVzdCxcbiAgICBVcGRhdGVQYXltZW50Q2FyZFJlcXVlc3QsXG59IGZyb20gJy4vcGF5bWVudC1jYXJkJztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0LFxuICAgIENyZWF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlc3BvbnNlLFxuICAgIERlbGV0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0TXVsdGlQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgR2V0UHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBHZXRQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZSxcbiAgICBMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c1JlcXVlc3RMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c0ZpbHRlcnMsXG4gICAgTGlzdFByaWNpbmdQbGFuUHJvZHVjdHNSZXF1ZXN0LFxuICAgIExpc3RQcmljaW5nUGxhblByb2R1Y3RzUmVzcG9uc2UsXG4gICAgUHJpY2luZ1BsYW5Qcm9kdWN0UHJpY2luZ0VudHJ5LFxuICAgIENyZWF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3RQcmljaW5nRW50cnksXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdFByaWNpbmdFbnRyeSxcbiAgICBQcmljaW5nUGxhblByb2R1Y3QsXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBVcGRhdGVQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZSxcbiAgICBVcHNlcnRXaG9sZXNhbGVQcmljaW5nUmVxdWVzdCxcbn0gZnJvbSAnLi9wcmljaW5nLXBsYW4tcHJvZHVjdCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlUHJvZHVjdFJlcXVlc3QsXG4gICAgRGVsZXRlUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0TXVsdGlQcm9kdWN0UmVxdWVzdCxcbiAgICBHZXRNdWx0aVByb2R1Y3RSZXNwb25zZSxcbiAgICBMaXN0UHJvZHVjdHNSZXF1ZXN0TGlzdFByb2R1Y3RzRmlsdGVycyxcbiAgICBMaXN0UHJvZHVjdHNSZXF1ZXN0LFxuICAgIExpc3RQcm9kdWN0c1Jlc3BvbnNlLFxuICAgIFByb2R1Y3QsXG4gICAgR2V0TXVsdGlQcm9kdWN0UmVzcG9uc2VQcm9kdWN0c0VudHJ5LFxuICAgIFVwZGF0ZVByb2R1Y3RSZXF1ZXN0LFxufSBmcm9tICcuL3Byb2R1Y3QnO1xuXG5leHBvcnQge1xuICAgIEFwcGxpZWRDcmVkaXQsXG4gICAgTGlzdFB1cmNoYXNlUmVxdWVzdExpc3RQdXJjaGFzZUJpbGxpbmdTdHJhdGVneUZpbHRlcixcbiAgICBMaXN0UHVyY2hhc2VSZXF1ZXN0TGlzdFB1cmNoYXNlRmlsdGVycyxcbiAgICBMaXN0UHVyY2hhc2VJdGVtc1JlcXVlc3RMaXN0UHVyY2hhc2VJdGVtc0ZpbHRlcnMsXG4gICAgTGlzdFB1cmNoYXNlSXRlbXNSZXF1ZXN0LFxuICAgIExpc3RQdXJjaGFzZUl0ZW1zUmVzcG9uc2UsXG4gICAgTGlzdFB1cmNoYXNlUmVxdWVzdCxcbiAgICBMaXN0UHVyY2hhc2VSZXNwb25zZSxcbiAgICBQYXVzZUR1bm5pbmdSZXF1ZXN0LFxuICAgIFB1cmNoYXNlLFxuICAgIFB1cmNoYXNlSXRlbSxcbiAgICBSZXN1bWVEdW5uaW5nUmVxdWVzdCxcbiAgICBSZXRyeVB1cmNoYXNlUmVxdWVzdCxcbiAgICBTdG9wRHVubmluZ1JlcXVlc3QsXG4gICAgVm9pZFB1cmNoYXNlUmVxdWVzdCxcbn0gZnJvbSAnLi9wdXJjaGFzZSc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlUmVmdW5kUmVxdWVzdCxcbiAgICBMaXN0UmVmdW5kc1JlcXVlc3QsXG4gICAgTGlzdFJlZnVuZHNSZXNwb25zZSxcbiAgICBSZWZ1bmQsXG59IGZyb20gJy4vcmVmdW5kJztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVTYWxlc0NyZWRpdE5vdGVSZXF1ZXN0LFxuICAgIExpc3RTYWxlc0NyZWRpdE5vdGVSZXF1ZXN0TGlzdFNhbGVzQ3JlZGl0Tm90ZUZpbHRlcnMsXG4gICAgTGlzdFNhbGVzQ3JlZGl0Tm90ZVJlcXVlc3QsXG4gICAgTGlzdFNhbGVzQ3JlZGl0Tm90ZVJlc3BvbnNlLFxuICAgIFNhbGVzQ3JlZGl0Tm90ZSxcbn0gZnJvbSAnLi9zYWxlcy1jcmVkaXQtbm90ZSc7XG5cbmV4cG9ydCB7XG4gICAgR2V0U2FsZXNJbnZvaWNlUmVxdWVzdCxcbiAgICBHZXRTYWxlc0ludm9pY2VSZXNwb25zZSxcbiAgICBMaXN0U2FsZXNJbnZvaWNlUmVxdWVzdExpc3RTYWxlc0ludm9pY2VGaWx0ZXJzLFxuICAgIExpc3RTYWxlc0ludm9pY2VSZXF1ZXN0LFxuICAgIExpc3RTYWxlc0ludm9pY2VSZXNwb25zZSxcbiAgICBQb3N0U2FsZXNJbnZvaWNlUmVxdWVzdCxcbiAgICBTYWxlc0ludm9pY2UsXG4gICAgU2VuZFNhbGVzSW52b2ljZUVtYWlsUmVxdWVzdCxcbiAgICBTZW5kU2FsZXNJbnZvaWNlUmVjZWlwdEVtYWlsUmVxdWVzdCxcbn0gZnJvbSAnLi9zYWxlcy1pbnZvaWNlJztcblxuZXhwb3J0IHtcbiAgICBTdWJzY3JpYmVWYWxpZGF0aW9uLFxufSBmcm9tICcuL3N1YnNjcmliZS12YWxpZGF0aW9uJztcblxuZXhwb3J0IHtcbiAgICBBbGlnbm1lbnRTdWJzY3JpcHRpb24sXG4gICAgQ2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3QsXG4gICAgQ2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1Jlc3BvbnNlLFxuICAgIENoYW5nZUN1c3RvbVVuaXRQcmljZVJlcXVlc3QsXG4gICAgQ2hhbmdlRnJlcXVlbmN5UmVxdWVzdCxcbiAgICBDaGFuZ2VSZW5ld2FsRGF0ZVJlcXVlc3QsXG4gICAgQ3JlYXRlU3Vic2NyaXB0aW9uUmVxdWVzdCxcbiAgICBDcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdCxcbiAgICBDcmVhdGVTdWJzY3JpcHRpb25zUmVzcG9uc2UsXG4gICAgUmV2ZXJzZVN1YnNjcmlwdGlvblJlcXVlc3QsXG4gICAgU2V0UmVuZXdhbFN0YXJ0UmVxdWVzdCxcbiAgICBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdFNrdXNFbnRyeSxcbiAgICBTdWJzY3JpcHRpb24sXG4gICAgQ2FuQ3JlYXRlU3Vic2NyaXB0aW9uc1JlcXVlc3RTdWJzY3JpcHRpb25JdGVtLFxuICAgIFZhbGlkYXRlUmVzcG9uc2UsXG59IGZyb20gJy4vc3Vic2NyaXB0aW9uJztcblxuZXhwb3J0IHtcbiAgICBDb250cmFjdERvY3VtZW50LFxuICAgIERlbGV0ZUNvbnRyYWN0RG9jdW1lbnRSZXF1ZXN0LFxuICAgIExpc3RDb250cmFjdERvY3VtZW50c1JlcXVlc3RGaWx0ZXJzLFxuICAgIExpc3RDb250cmFjdERvY3VtZW50c1JlcXVlc3QsXG4gICAgTGlzdENvbnRyYWN0RG9jdW1lbnRzUmVzcG9uc2UsXG59IGZyb20gJy4vY29udHJhY3QtZG9jdW1lbnQnO1xuXG5leHBvcnQge1xuICAgIEdldFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvblJlcXVlc3QsXG4gICAgR2V0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVzcG9uc2UsXG4gICAgUmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uLFxuICAgIFVwc2VydFJldGFpbEN1c3RvbWVyQ29uZmlndXJhdGlvblJlcXVlc3QsXG59IGZyb20gJy4vcmV0YWlsLWN1c3RvbWVyLWNvbmZpZ3VyYXRpb24nO1xuXG5leHBvcnQge1xuICAgIEFkZENyZWRpdFJlcXVlc3QsXG4gICAgQ3JlZGl0QmFsYW5jZSxcbiAgICBHZXRCYWxhbmNlUmVxdWVzdCxcbiAgICBHZXRCYWxhbmNlUmVzcG9uc2UsXG59IGZyb20gJy4vY3JlZGl0JztcblxuZXhwb3J0IHtcbiAgICBSZWN1cnJpbmdJbnZvaWNlQ3VzdG9tZXJBZGRyZXNzLFxuICAgIExpc3RSZWN1cnJpbmdJbnZvaWNlc0ZpbHRlcnNEYXRlRmlsdGVyLFxuICAgIERlbGV0ZVJlY3VycmluZ0ludm9pY2VSZXF1ZXN0LFxuICAgIExpc3RSZWN1cnJpbmdJbnZvaWNlc0ZpbHRlcnNEZXRhaWxlZEludGVydmFsLFxuICAgIEdldFJlY3VycmluZ0ludm9pY2VSZXF1ZXN0LFxuICAgIExpc3RSZWN1cnJpbmdJbnZvaWNlc0ZpbHRlcnMsXG4gICAgTGlzdFJlY3VycmluZ0ludm9pY2VzUmVxdWVzdCxcbiAgICBMaXN0UmVjdXJyaW5nSW52b2ljZXNSZXNwb25zZSxcbiAgICBSZWN1cnJpbmdJbnZvaWNlLFxuICAgIFJlY3VycmluZ0ludm9pY2VCdW5kbGUsXG4gICAgUmVjdXJyaW5nSW52b2ljZUl0ZW0sXG4gICAgUmVjdXJyaW5nSW52b2ljZUxpbmVJdGVtLFxuICAgIFVwZGF0ZVJlY3VycmluZ0ludm9pY2VSZXF1ZXN0LFxufSBmcm9tICcuL3JlY3VycmluZy1pbnZvaWNlJztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVNZXJjaGFudFNlcnZpY2VzUmVwb3J0UnVuLFxuICAgIEdldE1lcmNoYW50U2VydmljZXNSZXBvcnRSdW4sXG4gICAgTWVyY2hhbnRTZXJ2aWNlc1JlcG9ydFJ1bixcbn0gZnJvbSAnLi9yZXBvcnQtcnVuJztcblxuZXhwb3J0IHtcbiAgICBBY2Nlc3MsXG59IGZyb20gJy4vYW5ub3RhdGlvbnMnO1xuXG5leHBvcnQge1xuICAgIExpc3RTdWJzY3JpcHRpb25SZWxhdGlvbnNoaXBzUmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0TXVsdGlTdWJzY3JpcHRpb25SZWxhdGlvbnNoaXBzUmVxdWVzdCxcbiAgICBHZXRNdWx0aVN1YnNjcmlwdGlvblJlbGF0aW9uc2hpcHNSZXNwb25zZSxcbiAgICBMaXN0U3Vic2NyaXB0aW9uUmVsYXRpb25zaGlwc1JlcXVlc3QsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJlbGF0aW9uc2hpcHNSZXNwb25zZSxcbiAgICBSZXBsYWNlU3Vic2NyaXB0aW9uUmVsYXRpb25zaGlwc1JlcXVlc3QsXG4gICAgUmVwbGFjZVN1YnNjcmlwdGlvblJlbGF0aW9uc2hpcHNSZXNwb25zZSxcbiAgICBTdWJzY3JpcHRpb25SZWxhdGlvbnNoaXAsXG59IGZyb20gJy4vc3Vic2NyaXB0aW9uLXJlbGF0aW9uc2hpcCc7XG5cbmV4cG9ydCB7XG4gICAgRGVsZXRlUmV0YWlsUHJpY2luZ1JlcXVlc3QsXG4gICAgR2VuZXJhdGVCaWxsYWJsZUl0ZW1zQ1NWUmVxdWVzdCxcbiAgICBHZW5lcmF0ZUJpbGxhYmxlSXRlbXNDU1ZSZXNwb25zZSxcbiAgICBHZW5lcmF0ZVZlbmRvclJlcG9ydFJlcXVlc3QsXG4gICAgR2VuZXJhdGVWZW5kb3JSZXBvcnRSZXNwb25zZSxcbiAgICBHZXRNdWx0aUJ1bmRsZVJldGFpbFByaWNpbmdSZXF1ZXN0LFxuICAgIEdldE11bHRpQnVuZGxlUmV0YWlsUHJpY2luZ1Jlc3BvbnNlLFxuICAgIEdldE11bHRpUHJvZHVjdFByaWNpbmdSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJvZHVjdFByaWNpbmdSZXNwb25zZSxcbiAgICBHZXRNdWx0aVJldGFpbFByaWNpbmdSZXF1ZXN0LFxuICAgIEdldE11bHRpUmV0YWlsUHJpY2luZ1Jlc3BvbnNlLFxuICAgIEdldE11bHRpV2hvbGVzYWxlQ29zdFJlcXVlc3QsXG4gICAgR2V0TXVsdGlXaG9sZXNhbGVDb3N0UmVzcG9uc2UsXG4gICAgR2V0UHVyY2hhc2VDb3N0UmVxdWVzdCxcbiAgICBHZXRQdXJjaGFzZUNvc3RSZXNwb25zZSxcbiAgICBHZXRSZXZlbnVlU3RhdHNSZXF1ZXN0LFxuICAgIEdldFJldmVudWVTdGF0c1Jlc3BvbnNlLFxuICAgIEdldFN0YXRpc3RpY3NSZXF1ZXN0LFxuICAgIEdldFN0YXRpc3RpY3NSZXNwb25zZSxcbiAgICBHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVxdWVzdEdldFdob2xlc2FsZUNvbXBhcmlzb25GaWx0ZXJzLFxuICAgIEdldFdob2xlc2FsZUNvbXBhcmlzb25SZXF1ZXN0LFxuICAgIEdldFdob2xlc2FsZUNvbXBhcmlzb25SZXNwb25zZSxcbiAgICBHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVzcG9uc2VHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVzdWx0LFxuICAgIEdldE11bHRpQnVuZGxlUmV0YWlsUHJpY2luZ1Jlc3BvbnNlUHJpY2VzRW50cnksXG4gICAgVXBzZXJ0UmV0YWlsUHJpY2luZ1JlcXVlc3RQcmljaW5nRW50cnksXG4gICAgR2V0TXVsdGlSZXRhaWxQcmljaW5nUmVzcG9uc2VQcm9kdWN0UHJpY2VzRW50cnksXG4gICAgR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1Jlc3BvbnNlUHJvZHVjdFByaWNlc0VudHJ5LFxuICAgIFNldFdob2xlc2FsZVByb2R1Y3RTdHJhdGVneVJlcXVlc3QsXG4gICAgU2V0V2hvbGVzYWxlUHJvZHVjdFZvbHVtZUNvbW1pdG1lbnRSZXF1ZXN0LFxuICAgIFN0YXJ0UmV2UmVjVGVtcGxhdGVCYWNrZmlsbFJlcXVlc3QsXG4gICAgVXBzZXJ0UmV0YWlsUHJpY2luZ1JlcXVlc3QsXG59IGZyb20gJy4vYXBpJztcblxuIl19
|