@one-grid-core/angular 0.5.2 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/esm2022/lib/components/one-grid/one-grid.component.mjs +102 -20
- package/esm2022/lib/components/one-grid-row-action/one-grid-row-action.component.mjs +14 -8
- package/esm2022/lib/core/instants/one-grid-api.class.mjs +78 -9
- package/esm2022/lib/core/models/one-column-def-types.model.mjs +1 -1
- package/esm2022/lib/core/models/one-event-types.model.mjs +1 -1
- package/esm2022/lib/core/services/og-column.service.mjs +11 -1
- package/esm2022/lib/helpers/one-row-grouping.helper.mjs +14 -4
- package/fesm2022/one-grid-core-angular.mjs +217 -40
- package/fesm2022/one-grid-core-angular.mjs.map +1 -1
- package/lib/components/one-grid/one-grid.component.d.ts +43 -0
- package/lib/components/one-grid-row-action/one-grid-row-action.component.d.ts +1 -0
- package/lib/core/instants/one-grid-api.class.d.ts +27 -4
- package/lib/core/models/one-column-def-types.model.d.ts +5 -0
- package/lib/core/models/one-event-types.model.d.ts +13 -0
- package/lib/core/services/og-column.service.d.ts +8 -0
- package/lib/helpers/one-row-grouping.helper.d.ts +7 -1
- package/package.json +1 -1
- package/scss/_one-grid.scss +27 -13
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWNvbHVtbi1kZWYtdHlwZXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvcmUvbW9kZWxzL29uZS1jb2x1bW4tZGVmLXR5cGVzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB0eXBlIHsgT25lR3JpZEFwaSB9IGZyb20gXCIuLi9pbnN0YW50cy9vbmUtZ3JpZC1hcGkuY2xhc3NcIjtcbmltcG9ydCB0eXBlIHsgT25lUm93Tm9kZSB9IGZyb20gXCIuLi9pbnN0YW50cy9vbmUtcm93LW5vZGUuY2xhc3NcIjtcbmltcG9ydCB0eXBlIHsgT25lVmFsaWRhdG9yRm4gfSBmcm9tIFwiLi9vbmUtdmFsaWRhdGlvbi5tb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBPbmVDZWxsT3B0aW9uTWVudSB9IGZyb20gXCIuL29uZS1ldmVudC10eXBlcy5tb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBPbmVDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tIFwiLi9vbmUtdHJlZS1kYXRhLm1vZGVsXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lVmFsdWVHZXR0ZXJQYXJhbXM8VCA9IGFueT4ge1xuICBkYXRhOiBUO1xuICByb3dJbmRleD86IG51bWJlcjtcbiAgLyoqIEBkZXByZWNhdGVkIE5ldmVyIHBvcHVsYXRlZC4gVXNlIHtAbGluayBub2RlfS4gKi9cbiAgcm93Tm9kZT86IE9uZVJvd05vZGU7XG4gIG5vZGU/OiBPbmVSb3dOb2RlLFxuICAvKiogQGRlcHJlY2F0ZWQgTmV2ZXIgcG9wdWxhdGVkIOKAlCB0aGUgY2VsbCBzZXJ2aWNlIGhhcyBubyBhcGkgcmVmZXJlbmNlLiAqL1xuICBhcGk/OiBPbmVHcmlkQXBpO1xuICBjb250ZXh0PzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZUNlbGxTdGF0ZSB7XG4gIHR5cGU6ICdwbGFjZWhvbGRlcicgfCAndGV4dCcgfCAnaHRtbCcgfCAnbm9uZSc7XG4gIHZhbHVlOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lQ2VsbFN0YXRlcyB7IFxuICBbZmllbGQ6IHN0cmluZ106IE9uZUNlbGxTdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVDZWxsT3B0aW9ucyB7XG4gIFtmaWVsZDogc3RyaW5nXTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgT25lQ2VsbFN0YXR1cyA9IDAgfCAxO1xuXG5leHBvcnQgdHlwZSBPbmVDZWxsQnV0dG9uSWNvblR5cGUgPSAnYWRkJyB8ICdvcHRpb24nIHwgJ2xhbmd1YWdlJztcblxuZXhwb3J0IHR5cGUgT25lQ2VsbElucHV0VHlwZSA9ICd0ZXh0JyB8ICdudW1iZXInIHwgJ2VtYWlsJyB8ICdkYXRlJyB8ICd0aW1lJyB8J2RhdGV0aW1lJyB8ICdkYXRldGltZS1sb2NhbCcgfCAnc2VsZWN0JztcblxuLyoqXG4gKiBPbmUgY2hvaWNlIGluIGEgYHNlbGVjdGAgY2VsbCBlZGl0b3IuIGB2YWx1ZWAgaXMgY29tbWl0dGVkIGFzLWlzIOKAlCBpdCBrZWVwc1xuICogaXRzIHR5cGUsIHVubGlrZSBhbiBpbnB1dCBlZGl0b3IncyBzdHJpbmcg4oCUIGFuZCBgbGFiZWxgIGlzIHdoYXQgdGhlIG9wdGlvblxuICogc2hvd3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT25lQ2VsbFNlbGVjdE9wdGlvbiB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBhbnk7XG59XG5cbi8qKlxuICogV2hhdCBhIHBlci1jZWxsIHByZXNlbnRhdGlvbiBjYWxsYmFjayBpcyBoYW5kZWQuXG4gKlxuICogYE9uZUNlbGxSZW5kZXJlclBhcmFtc2AgaGFzIGV2ZXJ5IGZpZWxkIG9wdGlvbmFsLCBiZWNhdXNlIG9uZSB0eXBlIHNlcnZlc1xuICogcmVuZGVyZXJzLCBhY3Rpb24gYnV0dG9ucyBhbmQgaGVhZGVycyBhbGlrZS4gRm9yIGBjZWxsQ2xhc3NgIGFuZCBgY2VsbFN0eWxlYFxuICogdGhlIGdyaWQgZ3VhcmFudGVlcyBhbGwgb2YgdGhlc2UsIHNvIHRoZXkgYXJlIHJlcXVpcmVkIGhlcmUg4oCUIG90aGVyd2lzZSBhXG4gKiBjb25zdW1lciB1bmRlciBgc3RyaWN0YCBoYXMgdG8gd3JpdGUgYHBhcmFtcz8uZGF0YT8ueGAgZm9yIGEgdmFsdWUgdGhhdCBpc1xuICogYWx3YXlzIHByZXNlbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT25lQ2VsbFByZXNlbnRhdGlvblBhcmFtczxUID0gYW55PiBleHRlbmRzIE9uZUNlbGxSZW5kZXJlclBhcmFtczxUPiB7XG4gIHZhbHVlOiBhbnk7XG4gIGRhdGE6IFQ7XG4gIG5vZGU6IE9uZVJvd05vZGU8VD47XG4gIHJvd0luZGV4OiBudW1iZXI7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIGNvbHVtbkRlZjogT25lQ29sdW1uRGVmPFQ+O1xufVxuXG4vKipcbiAqIFdoYXQgYSBoZWFkZXIgcHJlc2VudGF0aW9uIGNhbGxiYWNrIGlzIGhhbmRlZC5cbiAqXG4gKiBEZWxpYmVyYXRlbHkgbm90IHRoZSBjZWxsIHBhcmFtczogYSBoZWFkZXIgaXMgb25lIGNlbGwgZm9yIHRoZSB3aG9sZSBjb2x1bW4sXG4gKiByZXNvbHZlZCBvbmNlIHdoZW4gdGhlIGNvbHVtbnMgYXJlIHJlZ2lzdGVyZWQuIFRoZXJlIGlzIG5vIHJvdywgc28gb2ZmZXJpbmdcbiAqIGBkYXRhYCBvciBgbm9kZWAgaGVyZSB3b3VsZCBiZSBvZmZlcmluZyBzb21ldGhpbmcgdGhhdCBpcyBhbHdheXMgdW5kZWZpbmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9uZUhlYWRlclByZXNlbnRhdGlvblBhcmFtczxUID0gYW55PiB7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIGNvbHVtbkRlZjogT25lQ29sdW1uRGVmPFQ+O1xuICBjb250ZXh0PzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZUNlbGxSZW5kZXJlclBhcmFtczxUID0gYW55PiB7XG5cbiAgLy8gQ29tbW9uIFBhcmFtc1xuICB2YWx1ZT86IGFueTtcbiAgcm93SW5kZXg/OiBudW1iZXI7XG4gIGRhdGE/OiBUO1xuICBmaWVsZD86IHN0cmluZztcbiAgY29sdW1uRGVmPzogT25lQ29sdW1uRGVmPFQ+O1xuICBhcGk/OiBPbmVHcmlkQXBpPFQ+O1xuICBub2RlPzogT25lUm93Tm9kZTxUPjtcbiAgY29udGV4dD86IGFueTtcbiAgbG9jYXRpb25TdGF0dXM/OiBudW1iZXI7XG4gIHN0YXR1cz86IG51bWJlcjtcbiAgZ3JpZFN0YXR1cz86IG51bWJlcjtcbiAgXG4gIC8vIElucHV0IHByb3BlcnRpZXNcbiAgaW5wdXRUeXBlPzogT25lQ2VsbElucHV0VHlwZTtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGNob2ljZXMgZm9yIGEgYHNlbGVjdGAgZWRpdG9yIChgaW5wdXRUeXBlOiAnc2VsZWN0J2ApLiBHaXZlIHRoZVxuICAgKiBjdXJyZW50IGNlbGwgdmFsdWUgYSBtYXRjaGluZyBvcHRpb246IHRoZSBicm93c2VyIHByZXNlbGVjdHMgdGhlIGZpcnN0XG4gICAqIG9wdGlvbiBvdGhlcndpc2UsIGFuZCBjbG9zaW5nIHRoZSBlZGl0b3IgdGhlbiBjb21taXRzIGl0LlxuICAgKi9cbiAgc2VsZWN0T3B0aW9ucz86IE9uZUNlbGxTZWxlY3RPcHRpb25bXTtcblxuICAvLyBDZWxsIGFjdGlvbiBidXR0b24gcHJvcGVydGllc1xuICBkZXRhaWxBY3RpdmVCdXR0b25TdGF0dXM/OiBPbmVDZWxsU3RhdHVzO1xuICBkZXRhaWxBY3RpdmVFeGNsdWRlTGV2ZWxzPzogbnVtYmVyW107XG4gIGdvdG9EZXRhaWxCdXR0b25TdGF0dXM/OiBPbmVDZWxsU3RhdHVzO1xuICBnb3RvRGV0YWlsRXhjbHVkZUxldmVscz86IG51bWJlcltdO1xuICBhZGROZXdCdXR0b25TdGF0dXM/OiBPbmVDZWxsU3RhdHVzO1xuICBhZGROZXdFeGNsdWRlTGV2ZWxzPzogbnVtYmVyW107XG4gIHZpZXdCdXR0b25TdGF0dXM/OiBPbmVDZWxsU3RhdHVzO1xuICBsb2NhdGlvbkJ1dHRvblN0YXR1cz86IE9uZUNlbGxTdGF0dXM7XG4gIGRvY3VtZW50QnV0dG9uU3RhdHVzPzogT25lQ2VsbFN0YXR1cztcbiAgY29weUJ1dHRvblN0YXR1cz86IE9uZUNlbGxTdGF0dXM7XG4gIGRlbGV0ZUJ1dHRvblN0YXR1cz86IE9uZUNlbGxTdGF0dXM7XG4gIGdvdG9MaXN0QnV0dG9uU3RhdHVzPzogT25lQ2VsbFN0YXR1cztcbiAgb3B0aW9uQnV0dG9uU3RhdHVzPzogT25lQ2VsbFN0YXR1cztcbiAgbGFuZ3VhZ2VCdXR0b25TdGF0dXM/OiBPbmVDZWxsU3RhdHVzO1xuICBlZGl0QnV0dG9uU3RhdHVzPzogT25lQ2VsbFN0YXR1cztcbiAgcHJpbnRCdXR0b25TdGF0dXM/OiBPbmVDZWxsU3RhdHVzO1xuICBoaXN0b3J5QnV0dG9uU3RhdHVzPzogT25lQ2VsbFN0YXR1cztcbiAgY2VsbE9wdGlvbkJ1dHRvblN0YXR1cz86IE9uZUNlbGxTdGF0dXM7XG5cbiAgLy8gSGVscGVyIFByb3BlcnRpZXNcbiAgdmFsaWRhdGVTZWxlY3RlZFJvd09ubHk/OiBib29sZWFuO1xuICBmb3JjZU1hcmtlZEFzQ2VsbFZhbHVlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBIZWFkZXIgR3JvdXAgQ29sdW1uIERlZlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9uZUdyb3VwQ29sdW1uRGVmIHtcbiAgaWQ6ICAgICAgICAgICAgc3RyaW5nO1xuICBoZWFkZXJOYW1lOiAgICBzdHJpbmc7XG4gIGNvbFNwYW4/OiAgICAgIG51bWJlcjtcbiAgd2lkdGg/OiAgICAgICAgbnVtYmVyO1xuICBncm91cFN0eWxlPzogICAgICAgICAgICAgICAgIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCAoKHJvdzogYW55KSA9PiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTtcbiAgZ3JvdXBDbGFzcz86ICAgICAgICAgICAgICAgICBzdHJpbmcgfCBzdHJpbmdbXSB8ICgocm93OiBhbnkpID0+IHN0cmluZyB8IHN0cmluZ1tdKTtcbiAgX3Jlc29sdmVkR3JvdXBDbGFzcz86ICAgICAgICBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgX3Jlc29sdmVkR3JvdXBTdHlsZT86ICAgICAgICBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG4vKipcbiAqIENlbGwgQ29sdW1uIERlZlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9uZUNvbHVtbkRlZjxUID0gYW55PiB7XG4gICAgaWQ/OiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZztcbiAgICBncm91cElkPzogICAgICAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIGZpZWxkPzogICAgICAgICAgICAgICAgICAgICBrZXlvZiBUICYgc3RyaW5nO1xuICAgIG1hc3Rlckdyb3VwRmllbGQ/OiAgICAgICAgICBib29sZWFuOyAvLyAoTWFzdGVyIERldGFpbClcbiAgICBhdXRvR3JvdXBGaWVsZD86ICAgICAgICAgICAgYm9vbGVhbjsgLy8gKFRyZWUgRGF0YSlcbiAgICBlZGl0YWJsZUxldmVscz86ICAgICAgICAgICAgbnVtYmVyW107IC8vIChUcmVlIERhdGEpXG4gICAgcm93QWN0aW9uTGV2ZWxzPzogICAgICAgICAgIG51bWJlcltdOyAvLyAoVHJlZSBEYXRhKVxuICAgIGhlYWRlck5hbWU/OiAgICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgY2hlY2tib3hTZWxlY3Rpb24/OiAgICAgICAgIGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogUHV0IGEgcm93IGRyYWcgaGFuZGxlIGluIHRoaXMgY29sdW1uJ3MgY2VsbHMuIE9uZSBjb2x1bW4gY2FycmllcyBpdC5cbiAgICAgKlxuICAgICAqIEEgaGFuZGxlIHJhdGhlciB0aGFuIHRoZSB3aG9sZSByb3c6IHRoZSBib2R5IGFscmVhZHkgY2xhaW1zIGBtb3VzZWRvd25gXG4gICAgICogb24gYSBjZWxsIHRvIHN0YXJ0IGEgcmFuZ2Ugc2VsZWN0aW9uLCBzbyBhIHJvdy13aWRlIGRyYWcgd291bGQgaGF2ZSB0b1xuICAgICAqIGZpZ2h0IGl0IGZvciBldmVyeSBwcmVzcy5cbiAgICAgKi9cbiAgICByb3dEcmFnPzogICAgICAgICAgICAgICAgICAgYm9vbGVhbiB8ICgocGFyYW1zOiBPbmVDZWxsUHJlc2VudGF0aW9uUGFyYW1zPFQ+KSA9PiBib29sZWFuKTtcbiAgICBoZWFkZXJDaGVja2JveFNlbGVjdGlvbj86ICAgYm9vbGVhbjtcbiAgICBmbGV4PzogICAgICAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICAgIHdpZHRoPzogICAgICAgICAgICAgICAgICAgICBudW1iZXI7XG4gICAgbWluV2lkdGg/OiAgICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgICBtYXhXaWR0aD86ICAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICAgIHZhbGlkYXRpb25SdWxlcz86ICAgICAgICAgICBPbmVWYWxpZGF0b3JGbltdOyAvLyBGb3IgdmFsaWRhdGlvbiB3aXRoIHN1Ym1pdHRlZCBwcm9wZXJ0eVxuICAgIC8vIFByZXNlbnRhdGlvbi4gU3RhdGljIHZhbHVlIG9yIGEgY2FsbGJhY2suIENlbGwgaG9va3MgcnVuIHBlciByb3cgb24gZXZlcnlcbiAgICAvLyBjaGFuZ2UgZGV0ZWN0aW9uIHBhc3M7IGhlYWRlciBob29rcyBydW4gb25jZSBwZXIgY29sdW1uLCB3aGVuIHRoZSBjb2x1bW5zXG4gICAgLy8gYXJlIHJlZ2lzdGVyZWQg4oCUIHNvIHRoZSB0d28gZ2V0IGRpZmZlcmVudCBwYXJhbXMuXG4gICAgaGVhZGVyU3R5bGU/OiAgICAgICAgICAgICAgIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCAoKHBhcmFtczogT25lSGVhZGVyUHJlc2VudGF0aW9uUGFyYW1zPFQ+KSA9PiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTtcbiAgICBjZWxsU3R5bGU/OiAgICAgICAgICAgICAgICAgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8ICgocGFyYW1zOiBPbmVDZWxsUHJlc2VudGF0aW9uUGFyYW1zPFQ+KSA9PiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTtcbiAgICBoZWFkZXJDbGFzcz86ICAgICAgICAgICAgICAgc3RyaW5nIHwgc3RyaW5nW10gfCAoKHBhcmFtczogT25lSGVhZGVyUHJlc2VudGF0aW9uUGFyYW1zPFQ+KSA9PiBzdHJpbmcgfCBzdHJpbmdbXSk7XG4gICAgY2VsbENsYXNzPzogICAgICAgICAgICAgICAgIHN0cmluZyB8IHN0cmluZ1tdIHwgKChwYXJhbXM6IE9uZUNlbGxQcmVzZW50YXRpb25QYXJhbXM8VD4pID0+IHN0cmluZyB8IHN0cmluZ1tdKTtcbiAgICAvLyBIZWFkZXIgcHJlZGljYXRlcyByZXNvbHZlZCB0byBib29sZWFucywgb25jZSBwZXIgY29sdW1uLiBJbnRlcm5hbC5cbiAgICBfcmVzb2x2ZWRTb3J0YWJsZT86ICAgICAgICAgYm9vbGVhbjtcbiAgICBfcmVzb2x2ZWRSZXNpemFibGU/OiAgICAgICAgYm9vbGVhbjtcbiAgICBfcmVzb2x2ZWREcmFnYWJsZT86ICAgICAgICAgYm9vbGVhbjtcbiAgICBfcmVzb2x2ZWRGaWx0ZXJhYmxlPzogICAgICAgYm9vbGVhbjtcbiAgICBfcmVzb2x2ZWRTdXBwcmVzc0hlYWRlck1lbnVCdXR0b24/OiBib29sZWFuO1xuICAgIF9yZXNvbHZlZEhlYWRlckNsYXNzPzogICAgICBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICBfcmVzb2x2ZWRDZWxsQ2xhc3M/OiAgICAgICAgc3RyaW5nIHwgc3RyaW5nW107XG4gICAgX3Jlc29sdmVkSGVhZGVyU3R5bGU/OiAgICAgIFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgX3Jlc29sdmVkQ2VsbFN0eWxlPzogICAgICAgIFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgY2VsbFJlbmRlcmVyUGFyYW1zPzogICAgICAgIE9uZUNlbGxSZW5kZXJlclBhcmFtczxUPjtcbiAgICBjZWxsT3B0aW9uTWVudT86ICAgICAgICAgICAgT25lQ2VsbE9wdGlvbk1lbnVbXTtcbiAgICBhbGlnbkNvbnRlbnQ/OiAgICAgICAgICAgICAgJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnO1xuICAgIC8qKlxuICAgICAqIEZyZWV6ZSB0aGlzIGNvbHVtbiBhZ2FpbnN0IHRoZSBsZWZ0IG9yIHJpZ2h0IGVkZ2Ugd2hpbGUgdGhlIHJlc3Qgc2Nyb2xsLlxuICAgICAqXG4gICAgICogUGlubmVkIGNvbHVtbnMgYXJlIG1vdmVkIHRvIHRoZWlyIGVkZ2UgaW4gZGlzcGxheSBvcmRlciDigJQgbGVmdC1waW5uZWQgdG9cbiAgICAgKiB0aGUgZnJvbnQsIHJpZ2h0LXBpbm5lZCB0byB0aGUgYmFjayDigJQgZWFjaCBrZWVwaW5nIGl0cyBkZWNsYXJlZCBvcmRlclxuICAgICAqIHdpdGhpbiBpdHMgb3duIGdyb3VwLiBVbnBpbm5lZCBjb2x1bW5zIGFyZSB1bnRvdWNoZWQsIHNvIGEgZ3JpZCB3aXRoXG4gICAgICogbm90aGluZyBwaW5uZWQgcmVuZGVycyBleGFjdGx5IGFzIGJlZm9yZS5cbiAgICAgKi9cbiAgICBwaW5uZWQ/OiAgICAgICAgICAgICAgICAgICAgJ2xlZnQnIHwgJ3JpZ2h0JztcbiAgICAvKipcbiAgICAgKiBHcm91cCB0aGUgcm93cyBieSB0aGlzIGNvbHVtbidzIHZhbHVlLiBTZXZlcmFsIGByb3dHcm91cGAgY29sdW1ucyBuZXN0LFxuICAgICAqIGluIGNvbHVtbi1kZWZpbml0aW9uIG9yZGVyLiBUaGUgZ3JpZCB0aGVuIHJ1bnMgaXRzIHRyZWUgbWFjaGluZXJ5IG92ZXJcbiAgICAgKiBzeW50aGV0aWMgZ3JvdXAgcm93czogZXhwYW5kL2NvbGxhcHNlLCB0aGUgYXV0byBncm91cCBjb2x1bW4sXG4gICAgICogYGdyb3VwRGVmYXVsdEV4cGFuZGVkYCDigJQgYWxsIG9mIGl0IGFwcGxpZXMuIEdyb3VwZWQtYnkgY29sdW1ucyBhcmVcbiAgICAgKiBoaWRkZW4gYXV0b21hdGljYWxseSAodGhlaXIgdmFsdWUgc2hvd3Mgb24gdGhlIGdyb3VwIHJvdyk7IHVuLWhpZGUgdmlhXG4gICAgICogYGFwaS5zZXRDb2x1bW5WaXNpYmxlYCBpZiB5b3Ugd2FudCBib3RoLiBDbGllbnQtc2lkZSByb3dzIG9ubHksIGFuZFxuICAgICAqIGV4Y2x1c2l2ZSB3aXRoIGB0cmVlRGF0YWAgYW5kIGBtYXN0ZXJEZXRhaWxgLlxuICAgICAqL1xuICAgIHJvd0dyb3VwPzogICAgICAgICAgICAgICAgICBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEFnZ3JlZ2F0ZSB0aGlzIGNvbHVtbidzIGxlYWYgdmFsdWVzIG9udG8gZXZlcnkgZ3JvdXAgcm93IHdoZW4gcm93XG4gICAgICogZ3JvdXBpbmcgaXMgYWN0aXZlOiBhIGJ1aWx0LWluIG5hbWUsIG9yIGEgZnVuY3Rpb24gb3ZlciB0aGUgbGVhdmVzLlxuICAgICAqIFRoZSByZXN1bHQgbGFuZHMgaW4gdGhlIGdyb3VwIHJvdydzIG93biBgZGF0YVtmaWVsZF1gLCBzbyBmb3JtYXR0ZXJzXG4gICAgICogYW5kIHJlbmRlcmVycyBhcHBseSB0byBpdCBsaWtlIGFueSBjZWxsIHZhbHVlLlxuICAgICAqL1xuICAgIGFnZ0Z1bmM/OiAgICAgICAgICAgICAgICAgICBPbmVBZ2dGdW5jPFQ+O1xuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGlzIGNvbHVtbiBmcm9tIHRoZSByZW5kZXJlZCBncmlkIHdpdGhvdXQgZm9yZ2V0dGluZyBpdC5cbiAgICAgKlxuICAgICAqIEEgaGlkZGVuIGNvbHVtbiBrZWVwcyBpdHMgcGxhY2UgaW4gdGhlIGNvbHVtbiBvcmRlciwgaXRzIHdpZHRoIGFuZCBpdHNcbiAgICAgKiBwaW4sIHNvIHNob3dpbmcgaXQgYWdhaW4gcmVzdG9yZXMgaXQgZXhhY3RseS4gVG9nZ2xlIGF0IHJ1bnRpbWUgd2l0aFxuICAgICAqIGBhcGkuc2V0Q29sdW1uVmlzaWJsZShpZCwgdmlzaWJsZSlgLiBQbGFpbiBzdGF0ZSwgbm90IGEgcHJlZGljYXRlIOKAlFxuICAgICAqIHZpc2liaWxpdHkgaXMgc29tZXRoaW5nIGEgaG9zdCBjaGFuZ2VzLCBub3Qgc29tZXRoaW5nIGEgcm93IGRlY2lkZXMuXG4gICAgICovXG4gICAgaGlkZT86ICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW47XG4gICAgLyoqIERpc3RhbmNlIGluIHB4IGZyb20gdGhlIHBpbm5lZCBlZGdlLiBDb21wdXRlZCBieSB0aGUgZ3JpZDsgZG8gbm90IHNldC4gKi9cbiAgICBfcGlubmVkT2Zmc2V0PzogICAgICAgICAgICAgbnVtYmVyIHwgbnVsbDtcbiAgICAvKiogVHJ1ZSBvbiB0aGUgaW5uZXJtb3N0IHBpbm5lZCBjb2x1bW4gb2YgZWFjaCBzaWRlLCB3aGljaCBjYXJyaWVzIHRoZSBkaXZpZGVyLiAqL1xuICAgIF9waW5uZWRFZGdlPzogICAgICAgICAgICAgICBib29sZWFuO1xuICAgIC8vIFByZWRpY2F0ZXMgY29tZSBpbiB0d28gc2NvcGVzLCBhbmQgdGhlIHBhcmFtcyBzYXkgd2hpY2guXG4gICAgLy9cbiAgICAvLyBIZWFkZXItc2NvcGVkIG9uZXMgZGVjaWRlIHNvbWV0aGluZyBhYm91dCB0aGUgY29sdW1uIGFuZCBhcmUgcmVzb2x2ZWRcbiAgICAvLyBvbmNlLCB3aGVuIHRoZSBjb2x1bW5zIGFyZSByZWdpc3RlcmVkIOKAlCB0aGVyZSBpcyBubyByb3csIHNvIHRoZXkgZ2V0XG4gICAgLy8gYGNvbHVtbkRlZmAsIGBmaWVsZGAgYW5kIGBjb250ZXh0YC5cbiAgICBzb3J0YWJsZT86ICAgICAgICAgICAgICAgICAgYm9vbGVhbiB8ICgocGFyYW1zOiBPbmVIZWFkZXJQcmVzZW50YXRpb25QYXJhbXM8VD4pID0+IGJvb2xlYW4pO1xuICAgIHJlc2l6YWJsZT86ICAgICAgICAgICAgICAgICBib29sZWFuIHwgKChwYXJhbXM6IE9uZUhlYWRlclByZXNlbnRhdGlvblBhcmFtczxUPikgPT4gYm9vbGVhbik7XG4gICAgZHJhZ2FibGU/OiAgICAgICAgICAgICAgICAgIGJvb2xlYW4gfCAoKHBhcmFtczogT25lSGVhZGVyUHJlc2VudGF0aW9uUGFyYW1zPFQ+KSA9PiBib29sZWFuKTtcbiAgICBzdXBwcmVzc0hlYWRlck1lbnVCdXR0b24/OiAgYm9vbGVhbiB8ICgocGFyYW1zOiBPbmVIZWFkZXJQcmVzZW50YXRpb25QYXJhbXM8VD4pID0+IGJvb2xlYW4pO1xuXG4gICAgLy8gQ2VsbC1zY29wZWQgb25lcyBkZWNpZGUgc29tZXRoaW5nIGFib3V0IG9uZSBjZWxsLCBhbmQgZ2V0IHRoZSBmdWxsIGNlbGxcbiAgICAvLyBwYXJhbXMg4oCUIHRoZSBzYW1lIHNldCBgY2VsbENsYXNzYCwgYGNlbGxSZW5kZXJlcmAgYW5kIGB2YWx1ZUZvcm1hdHRlcmBcbiAgICAvLyByZWNlaXZlLCBzbyB0aGVyZSBpcyBub3RoaW5nIHRvIHJlbWVtYmVyIHBlciBob29rLlxuICAgIGVkaXRhYmxlPzogICAgICAgICAgICAgICAgICBib29sZWFuIHwgKChwYXJhbXM6IE9uZUNlbGxQcmVzZW50YXRpb25QYXJhbXM8VD4pID0+IGJvb2xlYW4pO1xuICAgIHVwZGF0YWJsZT86ICAgICAgICAgICAgICAgICBib29sZWFuIHwgKChwYXJhbXM6IE9uZUNlbGxQcmVzZW50YXRpb25QYXJhbXM8VD4pID0+IGJvb2xlYW4pO1xuICAgIGRpc2FibGU/OiAgICAgICAgICAgICAgICAgICBib29sZWFuIHwgKChwYXJhbXM6IE9uZUNlbGxQcmVzZW50YXRpb25QYXJhbXM8VD4pID0+IGJvb2xlYW4pO1xuICAgIGhpZGVBY3Rpb25CdXR0b24/OiAgICAgICAgICBib29sZWFuIHwgKChwYXJhbXM6IE9uZUNlbGxQcmVzZW50YXRpb25QYXJhbXM8VD4pID0+IGJvb2xlYW4pO1xuXG4gICAgLyoqXG4gICAgICogR2l2ZSB0aGlzIGNvbHVtbiBhbiBpbnB1dCBpbiB0aGUgZ3JpZCdzIGZpbHRlciByb3cgKGBbZmlsdGVyUm93XWApLlxuICAgICAqXG4gICAgICogSGVhZGVyLXNjb3BlZCBsaWtlIGBzb3J0YWJsZWA6IHJlc29sdmVkIG9uY2UgcGVyIGNvbHVtbiwgd2hlbiB0aGVcbiAgICAgKiBjb2x1bW5zIGFyZSByZWdpc3RlcmVkLCBhZ2FpbnN0IGNvbHVtbkRlZiwgZmllbGQgYW5kIGNvbnRleHQg4oCUIHRoZXJlIGlzXG4gICAgICogbm8gcm93LiBXaXRob3V0IHRoZSBmaWx0ZXIgcm93IHRoaXMgY2hhbmdlcyBub3RoaW5nOyBmaWx0ZXJpbmcgc3RheXNcbiAgICAgKiBhdmFpbGFibGUgdGhyb3VnaCBgYXBpLnNldEZpbHRlck1vZGVsYCBlaXRoZXIgd2F5LlxuICAgICAqL1xuICAgIGZpbHRlcmFibGU/OiAgICAgICAgICAgICAgICBib29sZWFuIHwgKChwYXJhbXM6IE9uZUNlbGxQcmVzZW50YXRpb25QYXJhbXM8VD4pID0+IGJvb2xlYW4pO1xuICAgIGNlbGxSZW5kZXJlckNvbXBvbmVudD86ICAgICBUeXBlPE9uZUNlbGxSZW5kZXJlckNvbXBvbmVudD47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbmd1bGFyIGNvbXBvbmVudFxuICAgIC8vIFJlY2VpdmVzIHRoZSBmdWxsIGNlbGwgcGFyYW1zLCB3aXRoIHRoZSBjb2x1bW4ncyBgY2VsbFJlbmRlcmVyUGFyYW1zYFxuICAgIC8vIG1lcmdlZCBpbiDigJQgaGVuY2UgdGhlIHByZXNlbnRhdGlvbiB0eXBlIHJhdGhlciB0aGFuIHRoZSBhbGwtb3B0aW9uYWwgb25lLlxuICAgIGNlbGxSZW5kZXJlcj86ICAgICAgICAgICAgICAocGFyYW1zOiBPbmVDZWxsUHJlc2VudGF0aW9uUGFyYW1zPFQ+KSA9PiBzdHJpbmc7ICAgLy8gSFRNTCBzdHJpbmdcbiAgICAvKipcbiAgICAgKiBEZXJpdmUgdGhpcyBjZWxsJ3MgdmFsdWUgZnJvbSB0aGUgd2hvbGUgcm93LlxuICAgICAqXG4gICAgICogVGhlIHZhbHVlLCBub3QgdGhlIGRpc3BsYXkgdGV4dCDigJQgc29ydGluZyBhbmQgZmlsdGVyaW5nIHJlYWQgdGhlIHJhdyByb3dcbiAgICAgKiBkYXRhLCBzbyBmb3JtYXR0aW5nIGRvbmUgaGVyZSBpcyBpbnZpc2libGUgdG8gYm90aC4gUHV0IHByZXNlbnRhdGlvbiBpblxuICAgICAqIGB2YWx1ZUZvcm1hdHRlcmAgaW5zdGVhZCBhbmQgdGhpcyBzdGF5cyBzb3J0YWJsZS5cbiAgICAgKi9cbiAgICB2YWx1ZUdldHRlcj86ICAgICAgICAgICAgICAgKHBhcmFtczogT25lVmFsdWVHZXR0ZXJQYXJhbXM8VD4pID0+IGFueTtcblxuICAgIC8qKlxuICAgICAqIEZvcm1hdCB0aGUgdmFsdWUgZm9yIGRpc3BsYXkuIFJ1bnMgYWZ0ZXIgYHZhbHVlR2V0dGVyYCwgb24gdGV4dCBjZWxsc1xuICAgICAqIG9ubHkg4oCUIGFuIGVtcHR5IGNlbGwgZmFsbHMgdG8gYGNlbGxSZW5kZXJlclBhcmFtcy5wbGFjZWhvbGRlcmAgaW5zdGVhZC5cbiAgICAgKi9cbiAgICB2YWx1ZUZvcm1hdHRlcj86ICAgICAgICAgICAgKHBhcmFtczogT25lQ2VsbFByZXNlbnRhdGlvblBhcmFtczxUPikgPT4gc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgTm90IGltcGxlbWVudGVkIOKAlCBub3RoaW5nIGluIHRoZSBncmlkIGNhbGxzIHRoaXMsIGFuZCB0aGVcbiAgICAgKiBzaWduYXR1cmUgY291bGQgbm90IHdvcmsgaWYgaXQgZGlkOiBpdCByZWNlaXZlcyBuZWl0aGVyIHRoZSBub2RlIG5vciB0aGVcbiAgICAgKiBmaWVsZCwgc28gaXQgY2Fubm90IHRlbGwgd2hpY2ggY2VsbCBpdCBpcyBtZWFudCB0byB3cml0ZS4gQ29tbWl0IGFuIGVkaXRcbiAgICAgKiB0aHJvdWdoIGBub2RlLnNldERhdGFWYWx1ZShmaWVsZCwgdmFsdWUpYCBhbmQgcmVmcmVzaCB3aXRoXG4gICAgICogYGFwaS51cGRhdGVDZWxsU3RhdGVzKG5vZGUpYC5cbiAgICAgKi9cbiAgICB2YWx1ZVNldHRlcj86ICAgICAgICAgICAgICAgKHZhbHVlOiBhbnksIHJvd0luZGV4OiBudW1iZXIpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIE9uZUNlbGxWYWxpZGF0aW9uVHlwZSA9ICdkaXNhYmxlZCd8ICdpbnRlZ2VyJyB8ICdudW1iZXInIHwgJ2NvZGUnIHwgJ3RpdGxlJyB8ICdwaG9uZScgfCAnZW1haWwnIHwgJ2Rlc2NyaXB0aW9uJyB8ICdyZWdleCcgfCAnbm9uZSc7XG5cbi8qKiBUaGUgYnVpbHQtaW4gYWdncmVnYXRpb24gZnVuY3Rpb25zIGZvciByb3cgZ3JvdXBpbmcuICovXG5leHBvcnQgdHlwZSBPbmVBZ2dGdW5jTmFtZSA9ICdzdW0nIHwgJ21pbicgfCAnbWF4JyB8ICdhdmcnIHwgJ2NvdW50JyB8ICdmaXJzdCcgfCAnbGFzdCc7XG5cbi8qKiBXaGF0IGEgY3VzdG9tIGFnZ3JlZ2F0aW9uIGZ1bmN0aW9uIHJlY2VpdmVzOiBvbmUgZ3JvdXAncyBsZWF2ZXMuICovXG5leHBvcnQgaW50ZXJmYWNlIE9uZUFnZ0Z1bmNQYXJhbXM8VCA9IGFueT4ge1xuICAvKiogVGhlIGxlYWYgdmFsdWVzIG9mIHRoaXMgY29sdW1uLCBudWxscyBhbmQgdW5kZWZpbmVkcyBhbHJlYWR5IHJlbW92ZWQuICovXG4gIHZhbHVlczogYW55W107XG4gIC8qKiBUaGUgbGVhZiByb3dzIHRoZW1zZWx2ZXMsIGZvciBhZ2dyZWdhdGVzIHRoYXQgbmVlZCBtb3JlIHRoYW4gb25lIGZpZWxkLiAqL1xuICByb3dzOiBUW107XG4gIGZpZWxkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIE9uZUFnZ0Z1bmM8VCA9IGFueT4gPSBPbmVBZ2dGdW5jTmFtZSB8ICgocGFyYW1zOiBPbmVBZ2dGdW5jUGFyYW1zPFQ+KSA9PiBhbnkpO1xuXG4vKipcbiAqIE9uZSBjb2x1bW4ncyBwZXJzaXN0YWJsZSBsYXlvdXQgc3RhdGUuXG4gKlxuICogYGFwaS5nZXRDb2x1bW5TdGF0ZVNuYXBzaG90KClgIHJldHVybnMgb25lIGVudHJ5IHBlciBjb2x1bW4g4oCUIGhpZGRlbiBvbmVzXG4gKiBpbmNsdWRlZCDigJQgaW4gZGlzcGxheSBvcmRlcjsgYGFwaS5hcHBseUNvbHVtblN0YXRlKGVudHJpZXMpYCByZXN0b3JlcyB0aGVtLlxuICogVGhlIHNuYXBzaG90IGlzIHBsYWluIEpTT04tc2FmZSBkYXRhLCBzbyBpdCBjYW4gYmUgc3RvcmVkIGFzLWlzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9uZUNvbHVtblN0YXRlRW50cnkge1xuICBpZDogc3RyaW5nO1xuICAvKiogT21pdHRlZCB3aGVuIHRoZSBjb2x1bW4gaGFzIG5vIGV4cGxpY2l0IHdpZHRoLiAqL1xuICB3aWR0aD86IG51bWJlcjtcbiAgLyoqIGBudWxsYCBtZWFucyB1bnBpbm5lZC4gT21pdHRpbmcgdGhlIHByb3BlcnR5IGtlZXBzIHRoZSBjdXJyZW50IHBpbi4gKi9cbiAgcGlubmVkPzogJ2xlZnQnIHwgJ3JpZ2h0JyB8IG51bGw7XG4gIGhpZGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENlbGxTZWxlY3Rpb24ge1xuICByb3dJZDogc3RyaW5nO1xuICBmaWVsZDogc3RyaW5nO1xufSJdfQ==
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWNvbHVtbi1kZWYtdHlwZXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvcmUvbW9kZWxzL29uZS1jb2x1bW4tZGVmLXR5cGVzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB0eXBlIHsgT25lR3JpZEFwaSB9IGZyb20gXCIuLi9pbnN0YW50cy9vbmUtZ3JpZC1hcGkuY2xhc3NcIjtcbmltcG9ydCB0eXBlIHsgT25lUm93Tm9kZSB9IGZyb20gXCIuLi9pbnN0YW50cy9vbmUtcm93LW5vZGUuY2xhc3NcIjtcbmltcG9ydCB0eXBlIHsgT25lVmFsaWRhdG9yRm4gfSBmcm9tIFwiLi9vbmUtdmFsaWRhdGlvbi5tb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBPbmVDZWxsT3B0aW9uTWVudSB9IGZyb20gXCIuL29uZS1ldmVudC10eXBlcy5tb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBPbmVDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tIFwiLi9vbmUtdHJlZS1kYXRhLm1vZGVsXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lVmFsdWVHZXR0ZXJQYXJhbXM8VCA9IGFueT4ge1xuICBkYXRhOiBUO1xuICByb3dJbmRleD86IG51bWJlcjtcbiAgLyoqIEBkZXByZWNhdGVkIE5ldmVyIHBvcHVsYXRlZC4gVXNlIHtAbGluayBub2RlfS4gKi9cbiAgcm93Tm9kZT86IE9uZVJvd05vZGU7XG4gIG5vZGU/OiBPbmVSb3dOb2RlLFxuICAvKiogQGRlcHJlY2F0ZWQgTmV2ZXIgcG9wdWxhdGVkIOKAlCB0aGUgY2VsbCBzZXJ2aWNlIGhhcyBubyBhcGkgcmVmZXJlbmNlLiAqL1xuICBhcGk/OiBPbmVHcmlkQXBpO1xuICBjb250ZXh0PzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZUNlbGxTdGF0ZSB7XG4gIHR5cGU6ICdwbGFjZWhvbGRlcicgfCAndGV4dCcgfCAnaHRtbCcgfCAnbm9uZSc7XG4gIHZhbHVlOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lQ2VsbFN0YXRlcyB7IFxuICBbZmllbGQ6IHN0cmluZ106IE9uZUNlbGxTdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVDZWxsT3B0aW9ucyB7XG4gIFtmaWVsZDogc3RyaW5nXTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgT25lQ2VsbFN0YXR1cyA9IDAgfCAxO1xuXG5leHBvcnQgdHlwZSBPbmVDZWxsQnV0dG9uSWNvblR5cGUgPSAnYWRkJyB8ICdvcHRpb24nIHwgJ2xhbmd1YWdlJztcblxuZXhwb3J0IHR5cGUgT25lQ2VsbElucHV0VHlwZSA9ICd0ZXh0JyB8ICdudW1iZXInIHwgJ2VtYWlsJyB8ICdkYXRlJyB8ICd0aW1lJyB8J2RhdGV0aW1lJyB8ICdkYXRldGltZS1sb2NhbCcgfCAnc2VsZWN0JztcblxuLyoqXG4gKiBPbmUgY2hvaWNlIGluIGEgYHNlbGVjdGAgY2VsbCBlZGl0b3IuIGB2YWx1ZWAgaXMgY29tbWl0dGVkIGFzLWlzIOKAlCBpdCBrZWVwc1xuICogaXRzIHR5cGUsIHVubGlrZSBhbiBpbnB1dCBlZGl0b3IncyBzdHJpbmcg4oCUIGFuZCBgbGFiZWxgIGlzIHdoYXQgdGhlIG9wdGlvblxuICogc2hvd3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT25lQ2VsbFNlbGVjdE9wdGlvbiB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBhbnk7XG59XG5cbi8qKlxuICogV2hhdCBhIHBlci1jZWxsIHByZXNlbnRhdGlvbiBjYWxsYmFjayBpcyBoYW5kZWQuXG4gKlxuICogYE9uZUNlbGxSZW5kZXJlclBhcmFtc2AgaGFzIGV2ZXJ5IGZpZWxkIG9wdGlvbmFsLCBiZWNhdXNlIG9uZSB0eXBlIHNlcnZlc1xuICogcmVuZGVyZXJzLCBhY3Rpb24gYnV0dG9ucyBhbmQgaGVhZGVycyBhbGlrZS4gRm9yIGBjZWxsQ2xhc3NgIGFuZCBgY2VsbFN0eWxlYFxuICogdGhlIGdyaWQgZ3VhcmFudGVlcyBhbGwgb2YgdGhlc2UsIHNvIHRoZXkgYXJlIHJlcXVpcmVkIGhlcmUg4oCUIG90aGVyd2lzZSBhXG4gKiBjb25zdW1lciB1bmRlciBgc3RyaWN0YCBoYXMgdG8gd3JpdGUgYHBhcmFtcz8uZGF0YT8ueGAgZm9yIGEgdmFsdWUgdGhhdCBpc1xuICogYWx3YXlzIHByZXNlbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT25lQ2VsbFByZXNlbnRhdGlvblBhcmFtczxUID0gYW55PiBleHRlbmRzIE9uZUNlbGxSZW5kZXJlclBhcmFtczxUPiB7XG4gIHZhbHVlOiBhbnk7XG4gIGRhdGE6IFQ7XG4gIG5vZGU6IE9uZVJvd05vZGU8VD47XG4gIHJvd0luZGV4OiBudW1iZXI7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIGNvbHVtbkRlZjogT25lQ29sdW1uRGVmPFQ+O1xufVxuXG4vKipcbiAqIFdoYXQgYSBoZWFkZXIgcHJlc2VudGF0aW9uIGNhbGxiYWNrIGlzIGhhbmRlZC5cbiAqXG4gKiBEZWxpYmVyYXRlbHkgbm90IHRoZSBjZWxsIHBhcmFtczogYSBoZWFkZXIgaXMgb25lIGNlbGwgZm9yIHRoZSB3aG9sZSBjb2x1bW4sXG4gKiByZXNvbHZlZCBvbmNlIHdoZW4gdGhlIGNvbHVtbnMgYXJlIHJlZ2lzdGVyZWQuIFRoZXJlIGlzIG5vIHJvdywgc28gb2ZmZXJpbmdcbiAqIGBkYXRhYCBvciBgbm9kZWAgaGVyZSB3b3VsZCBiZSBvZmZlcmluZyBzb21ldGhpbmcgdGhhdCBpcyBhbHdheXMgdW5kZWZpbmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9uZUhlYWRlclByZXNlbnRhdGlvblBhcmFtczxUID0gYW55PiB7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIGNvbHVtbkRlZjogT25lQ29sdW1uRGVmPFQ+O1xuICBjb250ZXh0PzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZUNlbGxSZW5kZXJlclBhcmFtczxUID0gYW55PiB7XG5cbiAgLy8gQ29tbW9uIFBhcmFtc1xuICB2YWx1ZT86IGFueTtcbiAgcm93SW5kZXg/OiBudW1iZXI7XG4gIGRhdGE/OiBUO1xuICBmaWVsZD86IHN0cmluZztcbiAgY29sdW1uRGVmPzogT25lQ29sdW1uRGVmPFQ+O1xuICBhcGk/OiBPbmVHcmlkQXBpPFQ+O1xuICBub2RlPzogT25lUm93Tm9kZTxUPjtcbiAgY29udGV4dD86IGFueTtcbiAgbG9jYXRpb25TdGF0dXM/OiBudW1iZXI7XG4gIHN0YXR1cz86IG51bWJlcjtcbiAgZ3JpZFN0YXR1cz86IG51bWJlcjtcbiAgXG4gIC8vIElucHV0IHByb3BlcnRpZXNcbiAgaW5wdXRUeXBlPzogT25lQ2VsbElucHV0VHlwZTtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGNob2ljZXMgZm9yIGEgYHNlbGVjdGAgZWRpdG9yIChgaW5wdXRUeXBlOiAnc2VsZWN0J2ApLiBHaXZlIHRoZVxuICAgKiBjdXJyZW50IGNlbGwgdmFsdWUgYSBtYXRjaGluZyBvcHRpb246IHRoZSBicm93c2VyIHByZXNlbGVjdHMgdGhlIGZpcnN0XG4gICAqIG9wdGlvbiBvdGhlcndpc2UsIGFuZCBjbG9zaW5nIHRoZSBlZGl0b3IgdGhlbiBjb21taXRzIGl0LlxuICAgKi9cbiAgc2VsZWN0T3B0aW9ucz86IE9uZUNlbGxTZWxlY3RPcHRpb25bXTtcblxuICAvLyBDZWxsIGFjdGlvbiBidXR0b24gcHJvcGVydGllc1xuICBkZXRhaWxBY3RpdmVCdXR0b25TdGF0dXM/OiBPbmVDZWxsU3RhdHVzO1xuICBkZXRhaWxBY3RpdmVFeGNsdWRlTGV2ZWxzPzogbnVtYmVyW107XG4gIGdvdG9EZXRhaWxCdXR0b25TdGF0dXM/OiBPbmVDZWxsU3RhdHVzO1xuICBnb3RvRGV0YWlsRXhjbHVkZUxldmVscz86IG51bWJlcltdO1xuICBhZGROZXdCdXR0b25TdGF0dXM/OiBPbmVDZWxsU3RhdHVzO1xuICBhZGROZXdFeGNsdWRlTGV2ZWxzPzogbnVtYmVyW107XG4gIHZpZXdCdXR0b25TdGF0dXM/OiBPbmVDZWxsU3RhdHVzO1xuICBsb2NhdGlvbkJ1dHRvblN0YXR1cz86IE9uZUNlbGxTdGF0dXM7XG4gIGRvY3VtZW50QnV0dG9uU3RhdHVzPzogT25lQ2VsbFN0YXR1cztcbiAgY29weUJ1dHRvblN0YXR1cz86IE9uZUNlbGxTdGF0dXM7XG4gIGRlbGV0ZUJ1dHRvblN0YXR1cz86IE9uZUNlbGxTdGF0dXM7XG4gIGdvdG9MaXN0QnV0dG9uU3RhdHVzPzogT25lQ2VsbFN0YXR1cztcbiAgZ290b0xpc3RFeGNsdWRlTGV2ZWxzPzogbnVtYmVyW107XG4gIG9wdGlvbkJ1dHRvblN0YXR1cz86IE9uZUNlbGxTdGF0dXM7XG4gIGxhbmd1YWdlQnV0dG9uU3RhdHVzPzogT25lQ2VsbFN0YXR1cztcbiAgZWRpdEJ1dHRvblN0YXR1cz86IE9uZUNlbGxTdGF0dXM7XG4gIHByaW50QnV0dG9uU3RhdHVzPzogT25lQ2VsbFN0YXR1cztcbiAgaGlzdG9yeUJ1dHRvblN0YXR1cz86IE9uZUNlbGxTdGF0dXM7XG4gIGNlbGxPcHRpb25CdXR0b25TdGF0dXM/OiBPbmVDZWxsU3RhdHVzO1xuXG4gIC8vIEhlbHBlciBQcm9wZXJ0aWVzXG4gIHZhbGlkYXRlU2VsZWN0ZWRSb3dPbmx5PzogYm9vbGVhbjtcbiAgZm9yY2VNYXJrZWRBc0NlbGxWYWx1ZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogSGVhZGVyIEdyb3VwIENvbHVtbiBEZWZcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPbmVHcm91cENvbHVtbkRlZiB7XG4gIGlkOiAgICAgICAgICAgIHN0cmluZztcbiAgaGVhZGVyTmFtZTogICAgc3RyaW5nO1xuICBjb2xTcGFuPzogICAgICBudW1iZXI7XG4gIHdpZHRoPzogICAgICAgIG51bWJlcjtcbiAgZ3JvdXBTdHlsZT86ICAgICAgICAgICAgICAgICB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgKChyb3c6IGFueSkgPT4geyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk7XG4gIGdyb3VwQ2xhc3M/OiAgICAgICAgICAgICAgICAgc3RyaW5nIHwgc3RyaW5nW10gfCAoKHJvdzogYW55KSA9PiBzdHJpbmcgfCBzdHJpbmdbXSk7XG4gIF9yZXNvbHZlZEdyb3VwQ2xhc3M/OiAgICAgICAgc3RyaW5nIHwgc3RyaW5nW107XG4gIF9yZXNvbHZlZEdyb3VwU3R5bGU/OiAgICAgICAgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBDZWxsIENvbHVtbiBEZWZcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPbmVDb2x1bW5EZWY8VCA9IGFueT4ge1xuICAgIGlkPzogICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgZ3JvdXBJZD86ICAgICAgICAgICAgICAgICAgIHN0cmluZztcbiAgICBmaWVsZD86ICAgICAgICAgICAgICAgICAgICAga2V5b2YgVCAmIHN0cmluZztcbiAgICBtYXN0ZXJHcm91cEZpZWxkPzogICAgICAgICAgYm9vbGVhbjsgLy8gKE1hc3RlciBEZXRhaWwpXG4gICAgYXV0b0dyb3VwRmllbGQ/OiAgICAgICAgICAgIGJvb2xlYW47IC8vIChUcmVlIERhdGEpXG4gICAgZWRpdGFibGVMZXZlbHM/OiAgICAgICAgICAgIG51bWJlcltdOyAvLyAoVHJlZSBEYXRhKVxuICAgIHJvd0FjdGlvbkxldmVscz86ICAgICAgICAgICBudW1iZXJbXTsgLy8gKFRyZWUgRGF0YSlcbiAgICBoZWFkZXJOYW1lPzogICAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIGNoZWNrYm94U2VsZWN0aW9uPzogICAgICAgICBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFB1dCBhIHJvdyBkcmFnIGhhbmRsZSBpbiB0aGlzIGNvbHVtbidzIGNlbGxzLiBPbmUgY29sdW1uIGNhcnJpZXMgaXQuXG4gICAgICpcbiAgICAgKiBBIGhhbmRsZSByYXRoZXIgdGhhbiB0aGUgd2hvbGUgcm93OiB0aGUgYm9keSBhbHJlYWR5IGNsYWltcyBgbW91c2Vkb3duYFxuICAgICAqIG9uIGEgY2VsbCB0byBzdGFydCBhIHJhbmdlIHNlbGVjdGlvbiwgc28gYSByb3ctd2lkZSBkcmFnIHdvdWxkIGhhdmUgdG9cbiAgICAgKiBmaWdodCBpdCBmb3IgZXZlcnkgcHJlc3MuXG4gICAgICovXG4gICAgcm93RHJhZz86ICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gfCAoKHBhcmFtczogT25lQ2VsbFByZXNlbnRhdGlvblBhcmFtczxUPikgPT4gYm9vbGVhbik7XG4gICAgaGVhZGVyQ2hlY2tib3hTZWxlY3Rpb24/OiAgIGJvb2xlYW47XG4gICAgZmxleD86ICAgICAgICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgICB3aWR0aD86ICAgICAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICAgIG1pbldpZHRoPzogICAgICAgICAgICAgICAgICBudW1iZXI7XG4gICAgbWF4V2lkdGg/OiAgICAgICAgICAgICAgICAgIG51bWJlcjtcbiAgICB2YWxpZGF0aW9uUnVsZXM/OiAgICAgICAgICAgT25lVmFsaWRhdG9yRm5bXTsgLy8gRm9yIHZhbGlkYXRpb24gd2l0aCBzdWJtaXR0ZWQgcHJvcGVydHlcbiAgICAvLyBQcmVzZW50YXRpb24uIFN0YXRpYyB2YWx1ZSBvciBhIGNhbGxiYWNrLiBDZWxsIGhvb2tzIHJ1biBwZXIgcm93IG9uIGV2ZXJ5XG4gICAgLy8gY2hhbmdlIGRldGVjdGlvbiBwYXNzOyBoZWFkZXIgaG9va3MgcnVuIG9uY2UgcGVyIGNvbHVtbiwgd2hlbiB0aGUgY29sdW1uc1xuICAgIC8vIGFyZSByZWdpc3RlcmVkIOKAlCBzbyB0aGUgdHdvIGdldCBkaWZmZXJlbnQgcGFyYW1zLlxuICAgIGhlYWRlclN0eWxlPzogICAgICAgICAgICAgICB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgKChwYXJhbXM6IE9uZUhlYWRlclByZXNlbnRhdGlvblBhcmFtczxUPikgPT4geyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk7XG4gICAgY2VsbFN0eWxlPzogICAgICAgICAgICAgICAgIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCAoKHBhcmFtczogT25lQ2VsbFByZXNlbnRhdGlvblBhcmFtczxUPikgPT4geyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk7XG4gICAgaGVhZGVyQ2xhc3M/OiAgICAgICAgICAgICAgIHN0cmluZyB8IHN0cmluZ1tdIHwgKChwYXJhbXM6IE9uZUhlYWRlclByZXNlbnRhdGlvblBhcmFtczxUPikgPT4gc3RyaW5nIHwgc3RyaW5nW10pO1xuICAgIGNlbGxDbGFzcz86ICAgICAgICAgICAgICAgICBzdHJpbmcgfCBzdHJpbmdbXSB8ICgocGFyYW1zOiBPbmVDZWxsUHJlc2VudGF0aW9uUGFyYW1zPFQ+KSA9PiBzdHJpbmcgfCBzdHJpbmdbXSk7XG4gICAgLy8gSGVhZGVyIHByZWRpY2F0ZXMgcmVzb2x2ZWQgdG8gYm9vbGVhbnMsIG9uY2UgcGVyIGNvbHVtbi4gSW50ZXJuYWwuXG4gICAgX3Jlc29sdmVkU29ydGFibGU/OiAgICAgICAgIGJvb2xlYW47XG4gICAgX3Jlc29sdmVkUmVzaXphYmxlPzogICAgICAgIGJvb2xlYW47XG4gICAgX3Jlc29sdmVkRHJhZ2FibGU/OiAgICAgICAgIGJvb2xlYW47XG4gICAgX3Jlc29sdmVkRmlsdGVyYWJsZT86ICAgICAgIGJvb2xlYW47XG4gICAgX3Jlc29sdmVkU3VwcHJlc3NIZWFkZXJNZW51QnV0dG9uPzogYm9vbGVhbjtcbiAgICBfcmVzb2x2ZWRIZWFkZXJDbGFzcz86ICAgICAgc3RyaW5nIHwgc3RyaW5nW107XG4gICAgX3Jlc29sdmVkQ2VsbENsYXNzPzogICAgICAgIHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIF9yZXNvbHZlZEhlYWRlclN0eWxlPzogICAgICBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIF9yZXNvbHZlZENlbGxTdHlsZT86ICAgICAgICBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIGNlbGxSZW5kZXJlclBhcmFtcz86ICAgICAgICBPbmVDZWxsUmVuZGVyZXJQYXJhbXM8VD47XG4gICAgY2VsbE9wdGlvbk1lbnU/OiAgICAgICAgICAgIE9uZUNlbGxPcHRpb25NZW51W107XG4gICAgYWxpZ25Db250ZW50PzogICAgICAgICAgICAgICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JztcbiAgICAvKipcbiAgICAgKiBGcmVlemUgdGhpcyBjb2x1bW4gYWdhaW5zdCB0aGUgbGVmdCBvciByaWdodCBlZGdlIHdoaWxlIHRoZSByZXN0IHNjcm9sbC5cbiAgICAgKlxuICAgICAqIFBpbm5lZCBjb2x1bW5zIGFyZSBtb3ZlZCB0byB0aGVpciBlZGdlIGluIGRpc3BsYXkgb3JkZXIg4oCUIGxlZnQtcGlubmVkIHRvXG4gICAgICogdGhlIGZyb250LCByaWdodC1waW5uZWQgdG8gdGhlIGJhY2sg4oCUIGVhY2gga2VlcGluZyBpdHMgZGVjbGFyZWQgb3JkZXJcbiAgICAgKiB3aXRoaW4gaXRzIG93biBncm91cC4gVW5waW5uZWQgY29sdW1ucyBhcmUgdW50b3VjaGVkLCBzbyBhIGdyaWQgd2l0aFxuICAgICAqIG5vdGhpbmcgcGlubmVkIHJlbmRlcnMgZXhhY3RseSBhcyBiZWZvcmUuXG4gICAgICovXG4gICAgcGlubmVkPzogICAgICAgICAgICAgICAgICAgICdsZWZ0JyB8ICdyaWdodCc7XG4gICAgLyoqXG4gICAgICogR3JvdXAgdGhlIHJvd3MgYnkgdGhpcyBjb2x1bW4ncyB2YWx1ZS4gU2V2ZXJhbCBgcm93R3JvdXBgIGNvbHVtbnMgbmVzdCxcbiAgICAgKiBpbiBjb2x1bW4tZGVmaW5pdGlvbiBvcmRlci4gVGhlIGdyaWQgdGhlbiBydW5zIGl0cyB0cmVlIG1hY2hpbmVyeSBvdmVyXG4gICAgICogc3ludGhldGljIGdyb3VwIHJvd3M6IGV4cGFuZC9jb2xsYXBzZSwgdGhlIGF1dG8gZ3JvdXAgY29sdW1uLFxuICAgICAqIGBncm91cERlZmF1bHRFeHBhbmRlZGAg4oCUIGFsbCBvZiBpdCBhcHBsaWVzLiBHcm91cGVkLWJ5IGNvbHVtbnMgYXJlXG4gICAgICogaGlkZGVuIGF1dG9tYXRpY2FsbHkgKHRoZWlyIHZhbHVlIHNob3dzIG9uIHRoZSBncm91cCByb3cpOyB1bi1oaWRlIHZpYVxuICAgICAqIGBhcGkuc2V0Q29sdW1uVmlzaWJsZWAgaWYgeW91IHdhbnQgYm90aC4gQ2xpZW50LXNpZGUgcm93cyBvbmx5LCBhbmRcbiAgICAgKiBleGNsdXNpdmUgd2l0aCBgdHJlZURhdGFgIGFuZCBgbWFzdGVyRGV0YWlsYC5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgdGhlICppbml0aWFsKiBncm91cGluZywgcmVhZCB3aGVuIHRoZSBncmlkIGluaXRpYWxpc2VzOyBuZWVkcyBhXG4gICAgICogYGZpZWxkYCB0byBncm91cCBvbi4gYGFwaS5zZXRSb3dHcm91cGluZyhmaWVsZHMpYCBjaGFuZ2VzIGl0IGFmdGVyd2FyZHNcbiAgICAgKiDigJQgYW55IGNvbHVtbnMsIGluIGFueSBuZXN0aW5nIG9yZGVyLCBgW11gIHRvIHVuZ3JvdXAuXG4gICAgICovXG4gICAgcm93R3JvdXA/OiAgICAgICAgICAgICAgICAgIGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQWdncmVnYXRlIHRoaXMgY29sdW1uJ3MgbGVhZiB2YWx1ZXMgb250byBldmVyeSBncm91cCByb3cgd2hlbiByb3dcbiAgICAgKiBncm91cGluZyBpcyBhY3RpdmU6IGEgYnVpbHQtaW4gbmFtZSwgb3IgYSBmdW5jdGlvbiBvdmVyIHRoZSBsZWF2ZXMuXG4gICAgICogVGhlIHJlc3VsdCBsYW5kcyBpbiB0aGUgZ3JvdXAgcm93J3Mgb3duIGBkYXRhW2ZpZWxkXWAsIHNvIGZvcm1hdHRlcnNcbiAgICAgKiBhbmQgcmVuZGVyZXJzIGFwcGx5IHRvIGl0IGxpa2UgYW55IGNlbGwgdmFsdWUuXG4gICAgICovXG4gICAgYWdnRnVuYz86ICAgICAgICAgICAgICAgICAgIE9uZUFnZ0Z1bmM8VD47XG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHRoaXMgY29sdW1uIGZyb20gdGhlIHJlbmRlcmVkIGdyaWQgd2l0aG91dCBmb3JnZXR0aW5nIGl0LlxuICAgICAqXG4gICAgICogQSBoaWRkZW4gY29sdW1uIGtlZXBzIGl0cyBwbGFjZSBpbiB0aGUgY29sdW1uIG9yZGVyLCBpdHMgd2lkdGggYW5kIGl0c1xuICAgICAqIHBpbiwgc28gc2hvd2luZyBpdCBhZ2FpbiByZXN0b3JlcyBpdCBleGFjdGx5LiBUb2dnbGUgYXQgcnVudGltZSB3aXRoXG4gICAgICogYGFwaS5zZXRDb2x1bW5WaXNpYmxlKGlkLCB2aXNpYmxlKWAuIFBsYWluIHN0YXRlLCBub3QgYSBwcmVkaWNhdGUg4oCUXG4gICAgICogdmlzaWJpbGl0eSBpcyBzb21ldGhpbmcgYSBob3N0IGNoYW5nZXMsIG5vdCBzb21ldGhpbmcgYSByb3cgZGVjaWRlcy5cbiAgICAgKi9cbiAgICBoaWRlPzogICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbjtcbiAgICAvKiogRGlzdGFuY2UgaW4gcHggZnJvbSB0aGUgcGlubmVkIGVkZ2UuIENvbXB1dGVkIGJ5IHRoZSBncmlkOyBkbyBub3Qgc2V0LiAqL1xuICAgIF9waW5uZWRPZmZzZXQ/OiAgICAgICAgICAgICBudW1iZXIgfCBudWxsO1xuICAgIC8qKiBUcnVlIG9uIHRoZSBpbm5lcm1vc3QgcGlubmVkIGNvbHVtbiBvZiBlYWNoIHNpZGUsIHdoaWNoIGNhcnJpZXMgdGhlIGRpdmlkZXIuICovXG4gICAgX3Bpbm5lZEVkZ2U/OiAgICAgICAgICAgICAgIGJvb2xlYW47XG4gICAgLy8gUHJlZGljYXRlcyBjb21lIGluIHR3byBzY29wZXMsIGFuZCB0aGUgcGFyYW1zIHNheSB3aGljaC5cbiAgICAvL1xuICAgIC8vIEhlYWRlci1zY29wZWQgb25lcyBkZWNpZGUgc29tZXRoaW5nIGFib3V0IHRoZSBjb2x1bW4gYW5kIGFyZSByZXNvbHZlZFxuICAgIC8vIG9uY2UsIHdoZW4gdGhlIGNvbHVtbnMgYXJlIHJlZ2lzdGVyZWQg4oCUIHRoZXJlIGlzIG5vIHJvdywgc28gdGhleSBnZXRcbiAgICAvLyBgY29sdW1uRGVmYCwgYGZpZWxkYCBhbmQgYGNvbnRleHRgLlxuICAgIHNvcnRhYmxlPzogICAgICAgICAgICAgICAgICBib29sZWFuIHwgKChwYXJhbXM6IE9uZUhlYWRlclByZXNlbnRhdGlvblBhcmFtczxUPikgPT4gYm9vbGVhbik7XG4gICAgcmVzaXphYmxlPzogICAgICAgICAgICAgICAgIGJvb2xlYW4gfCAoKHBhcmFtczogT25lSGVhZGVyUHJlc2VudGF0aW9uUGFyYW1zPFQ+KSA9PiBib29sZWFuKTtcbiAgICBkcmFnYWJsZT86ICAgICAgICAgICAgICAgICAgYm9vbGVhbiB8ICgocGFyYW1zOiBPbmVIZWFkZXJQcmVzZW50YXRpb25QYXJhbXM8VD4pID0+IGJvb2xlYW4pO1xuICAgIHN1cHByZXNzSGVhZGVyTWVudUJ1dHRvbj86ICBib29sZWFuIHwgKChwYXJhbXM6IE9uZUhlYWRlclByZXNlbnRhdGlvblBhcmFtczxUPikgPT4gYm9vbGVhbik7XG5cbiAgICAvLyBDZWxsLXNjb3BlZCBvbmVzIGRlY2lkZSBzb21ldGhpbmcgYWJvdXQgb25lIGNlbGwsIGFuZCBnZXQgdGhlIGZ1bGwgY2VsbFxuICAgIC8vIHBhcmFtcyDigJQgdGhlIHNhbWUgc2V0IGBjZWxsQ2xhc3NgLCBgY2VsbFJlbmRlcmVyYCBhbmQgYHZhbHVlRm9ybWF0dGVyYFxuICAgIC8vIHJlY2VpdmUsIHNvIHRoZXJlIGlzIG5vdGhpbmcgdG8gcmVtZW1iZXIgcGVyIGhvb2suXG4gICAgZWRpdGFibGU/OiAgICAgICAgICAgICAgICAgIGJvb2xlYW4gfCAoKHBhcmFtczogT25lQ2VsbFByZXNlbnRhdGlvblBhcmFtczxUPikgPT4gYm9vbGVhbik7XG4gICAgdXBkYXRhYmxlPzogICAgICAgICAgICAgICAgIGJvb2xlYW4gfCAoKHBhcmFtczogT25lQ2VsbFByZXNlbnRhdGlvblBhcmFtczxUPikgPT4gYm9vbGVhbik7XG4gICAgZGlzYWJsZT86ICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gfCAoKHBhcmFtczogT25lQ2VsbFByZXNlbnRhdGlvblBhcmFtczxUPikgPT4gYm9vbGVhbik7XG4gICAgaGlkZUFjdGlvbkJ1dHRvbj86ICAgICAgICAgIGJvb2xlYW4gfCAoKHBhcmFtczogT25lQ2VsbFByZXNlbnRhdGlvblBhcmFtczxUPikgPT4gYm9vbGVhbik7XG5cbiAgICAvKipcbiAgICAgKiBHaXZlIHRoaXMgY29sdW1uIGFuIGlucHV0IGluIHRoZSBncmlkJ3MgZmlsdGVyIHJvdyAoYFtmaWx0ZXJSb3ddYCkuXG4gICAgICpcbiAgICAgKiBIZWFkZXItc2NvcGVkIGxpa2UgYHNvcnRhYmxlYDogcmVzb2x2ZWQgb25jZSBwZXIgY29sdW1uLCB3aGVuIHRoZVxuICAgICAqIGNvbHVtbnMgYXJlIHJlZ2lzdGVyZWQsIGFnYWluc3QgY29sdW1uRGVmLCBmaWVsZCBhbmQgY29udGV4dCDigJQgdGhlcmUgaXNcbiAgICAgKiBubyByb3cuIFdpdGhvdXQgdGhlIGZpbHRlciByb3cgdGhpcyBjaGFuZ2VzIG5vdGhpbmc7IGZpbHRlcmluZyBzdGF5c1xuICAgICAqIGF2YWlsYWJsZSB0aHJvdWdoIGBhcGkuc2V0RmlsdGVyTW9kZWxgIGVpdGhlciB3YXkuXG4gICAgICovXG4gICAgZmlsdGVyYWJsZT86ICAgICAgICAgICAgICAgIGJvb2xlYW4gfCAoKHBhcmFtczogT25lQ2VsbFByZXNlbnRhdGlvblBhcmFtczxUPikgPT4gYm9vbGVhbik7XG4gICAgY2VsbFJlbmRlcmVyQ29tcG9uZW50PzogICAgIFR5cGU8T25lQ2VsbFJlbmRlcmVyQ29tcG9uZW50PjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFuZ3VsYXIgY29tcG9uZW50XG4gICAgLy8gUmVjZWl2ZXMgdGhlIGZ1bGwgY2VsbCBwYXJhbXMsIHdpdGggdGhlIGNvbHVtbidzIGBjZWxsUmVuZGVyZXJQYXJhbXNgXG4gICAgLy8gbWVyZ2VkIGluIOKAlCBoZW5jZSB0aGUgcHJlc2VudGF0aW9uIHR5cGUgcmF0aGVyIHRoYW4gdGhlIGFsbC1vcHRpb25hbCBvbmUuXG4gICAgY2VsbFJlbmRlcmVyPzogICAgICAgICAgICAgIChwYXJhbXM6IE9uZUNlbGxQcmVzZW50YXRpb25QYXJhbXM8VD4pID0+IHN0cmluZzsgICAvLyBIVE1MIHN0cmluZ1xuICAgIC8qKlxuICAgICAqIERlcml2ZSB0aGlzIGNlbGwncyB2YWx1ZSBmcm9tIHRoZSB3aG9sZSByb3cuXG4gICAgICpcbiAgICAgKiBUaGUgdmFsdWUsIG5vdCB0aGUgZGlzcGxheSB0ZXh0IOKAlCBzb3J0aW5nIGFuZCBmaWx0ZXJpbmcgcmVhZCB0aGUgcmF3IHJvd1xuICAgICAqIGRhdGEsIHNvIGZvcm1hdHRpbmcgZG9uZSBoZXJlIGlzIGludmlzaWJsZSB0byBib3RoLiBQdXQgcHJlc2VudGF0aW9uIGluXG4gICAgICogYHZhbHVlRm9ybWF0dGVyYCBpbnN0ZWFkIGFuZCB0aGlzIHN0YXlzIHNvcnRhYmxlLlxuICAgICAqL1xuICAgIHZhbHVlR2V0dGVyPzogICAgICAgICAgICAgICAocGFyYW1zOiBPbmVWYWx1ZUdldHRlclBhcmFtczxUPikgPT4gYW55O1xuXG4gICAgLyoqXG4gICAgICogRm9ybWF0IHRoZSB2YWx1ZSBmb3IgZGlzcGxheS4gUnVucyBhZnRlciBgdmFsdWVHZXR0ZXJgLCBvbiB0ZXh0IGNlbGxzXG4gICAgICogb25seSDigJQgYW4gZW1wdHkgY2VsbCBmYWxscyB0byBgY2VsbFJlbmRlcmVyUGFyYW1zLnBsYWNlaG9sZGVyYCBpbnN0ZWFkLlxuICAgICAqL1xuICAgIHZhbHVlRm9ybWF0dGVyPzogICAgICAgICAgICAocGFyYW1zOiBPbmVDZWxsUHJlc2VudGF0aW9uUGFyYW1zPFQ+KSA9PiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBOb3QgaW1wbGVtZW50ZWQg4oCUIG5vdGhpbmcgaW4gdGhlIGdyaWQgY2FsbHMgdGhpcywgYW5kIHRoZVxuICAgICAqIHNpZ25hdHVyZSBjb3VsZCBub3Qgd29yayBpZiBpdCBkaWQ6IGl0IHJlY2VpdmVzIG5laXRoZXIgdGhlIG5vZGUgbm9yIHRoZVxuICAgICAqIGZpZWxkLCBzbyBpdCBjYW5ub3QgdGVsbCB3aGljaCBjZWxsIGl0IGlzIG1lYW50IHRvIHdyaXRlLiBDb21taXQgYW4gZWRpdFxuICAgICAqIHRocm91Z2ggYG5vZGUuc2V0RGF0YVZhbHVlKGZpZWxkLCB2YWx1ZSlgIGFuZCByZWZyZXNoIHdpdGhcbiAgICAgKiBgYXBpLnVwZGF0ZUNlbGxTdGF0ZXMobm9kZSlgLlxuICAgICAqL1xuICAgIHZhbHVlU2V0dGVyPzogICAgICAgICAgICAgICAodmFsdWU6IGFueSwgcm93SW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IHR5cGUgT25lQ2VsbFZhbGlkYXRpb25UeXBlID0gJ2Rpc2FibGVkJ3wgJ2ludGVnZXInIHwgJ251bWJlcicgfCAnY29kZScgfCAndGl0bGUnIHwgJ3Bob25lJyB8ICdlbWFpbCcgfCAnZGVzY3JpcHRpb24nIHwgJ3JlZ2V4JyB8ICdub25lJztcblxuLyoqIFRoZSBidWlsdC1pbiBhZ2dyZWdhdGlvbiBmdW5jdGlvbnMgZm9yIHJvdyBncm91cGluZy4gKi9cbmV4cG9ydCB0eXBlIE9uZUFnZ0Z1bmNOYW1lID0gJ3N1bScgfCAnbWluJyB8ICdtYXgnIHwgJ2F2ZycgfCAnY291bnQnIHwgJ2ZpcnN0JyB8ICdsYXN0JztcblxuLyoqIFdoYXQgYSBjdXN0b20gYWdncmVnYXRpb24gZnVuY3Rpb24gcmVjZWl2ZXM6IG9uZSBncm91cCdzIGxlYXZlcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT25lQWdnRnVuY1BhcmFtczxUID0gYW55PiB7XG4gIC8qKiBUaGUgbGVhZiB2YWx1ZXMgb2YgdGhpcyBjb2x1bW4sIG51bGxzIGFuZCB1bmRlZmluZWRzIGFscmVhZHkgcmVtb3ZlZC4gKi9cbiAgdmFsdWVzOiBhbnlbXTtcbiAgLyoqIFRoZSBsZWFmIHJvd3MgdGhlbXNlbHZlcywgZm9yIGFnZ3JlZ2F0ZXMgdGhhdCBuZWVkIG1vcmUgdGhhbiBvbmUgZmllbGQuICovXG4gIHJvd3M6IFRbXTtcbiAgZmllbGQ6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgT25lQWdnRnVuYzxUID0gYW55PiA9IE9uZUFnZ0Z1bmNOYW1lIHwgKChwYXJhbXM6IE9uZUFnZ0Z1bmNQYXJhbXM8VD4pID0+IGFueSk7XG5cbi8qKlxuICogT25lIGNvbHVtbidzIHBlcnNpc3RhYmxlIGxheW91dCBzdGF0ZS5cbiAqXG4gKiBgYXBpLmdldENvbHVtblN0YXRlU25hcHNob3QoKWAgcmV0dXJucyBvbmUgZW50cnkgcGVyIGNvbHVtbiDigJQgaGlkZGVuIG9uZXNcbiAqIGluY2x1ZGVkIOKAlCBpbiBkaXNwbGF5IG9yZGVyOyBgYXBpLmFwcGx5Q29sdW1uU3RhdGUoZW50cmllcylgIHJlc3RvcmVzIHRoZW0uXG4gKiBUaGUgc25hcHNob3QgaXMgcGxhaW4gSlNPTi1zYWZlIGRhdGEsIHNvIGl0IGNhbiBiZSBzdG9yZWQgYXMtaXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT25lQ29sdW1uU3RhdGVFbnRyeSB7XG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBPbWl0dGVkIHdoZW4gdGhlIGNvbHVtbiBoYXMgbm8gZXhwbGljaXQgd2lkdGguICovXG4gIHdpZHRoPzogbnVtYmVyO1xuICAvKiogYG51bGxgIG1lYW5zIHVucGlubmVkLiBPbWl0dGluZyB0aGUgcHJvcGVydHkga2VlcHMgdGhlIGN1cnJlbnQgcGluLiAqL1xuICBwaW5uZWQ/OiAnbGVmdCcgfCAncmlnaHQnIHwgbnVsbDtcbiAgaGlkZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbFNlbGVjdGlvbiB7XG4gIHJvd0lkOiBzdHJpbmc7XG4gIGZpZWxkOiBzdHJpbmc7XG59Il19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWV2ZW50LXR5cGVzLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lLWdyaWQvc3JjL2xpYi9jb3JlL21vZGVscy9vbmUtZXZlbnQtdHlwZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT25lQ29sdW1uRGVmLCBPbmVHcm91cENvbHVtbkRlZiB9IGZyb20gXCIuL29uZS1jb2x1bW4tZGVmLXR5cGVzLm1vZGVsXCI7XG5pbXBvcnQgdHlwZSB7IE9uZUdyaWRBcGkgfSBmcm9tIFwiLi4vaW5zdGFudHMvb25lLWdyaWQtYXBpLmNsYXNzXCI7XG5pbXBvcnQgdHlwZSB7IE9uZVJvd05vZGUgfSBmcm9tIFwiLi4vaW5zdGFudHMvb25lLXJvdy1ub2RlLmNsYXNzXCI7XG5pbXBvcnQgdHlwZSB7IE9uZVNvcnRNb2RlbCB9IGZyb20gXCIuL29uZS1ncmlkLXR5cGVzLm1vZGVsXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm93U2VsZWN0ZWRFdmVudCB7XG4gIHJvd0lkOiBzdHJpbmc7XG4gIHNlbGVjdGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENlbGxDbGlja2VkRXZlbnQge1xuICByb3dJZDogc3RyaW5nO1xuICBjb2x1bW5JZDogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbk1vdmVkRXZlbnQge1xuICBjb2x1bW5JZDogc3RyaW5nO1xuICB0b0luZGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm93RGF0YUNoYW5nZWRFdmVudDxUPiB7XG4gIG5vZGVzOiBPbmVSb3dOb2RlPFQ+W107XG59XG5cbi8qKiBXaGljaCBlZGdlIGEgc2V0IG9mIHBpbm5lZCByb3dzIGlzIGFuY2hvcmVkIHRvLiAqL1xuZXhwb3J0IHR5cGUgT25lUGlubmVkUm93U2lkZSA9ICd0b3AnIHwgJ2JvdHRvbSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlubmVkUm93RGF0YUNoYW5nZWRFdmVudDxUID0gYW55PiB7XG4gIHNpZGU6IE9uZVBpbm5lZFJvd1NpZGU7XG4gIG5vZGVzOiBPbmVSb3dOb2RlPFQ+W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lQ2VsbE9wdGlvbk1lbnUge1xuICB0ZXh0OiBzdHJpbmc7XG4gIHZhbHVlOiBhbnk7XG59IFxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGlvbkNoYW5nZWRFdmVudDxUID0gYW55PiB7XG4gIHNlbGVjdGVkUm93SWRzPzogc3RyaW5nW107XG4gIHJvd0luZGV4PzogbnVtYmVyO1xuICBkYXRhPzogVDtcbiAgYWxsTm9kZXNTZWxlY3RlZD86IGJvb2xlYW47XG4gIGFsbE5vZGVzTm90U2VsZWN0ZWQ/OiBib29sZWFuO1xuICBzZWxlY3RlZD86IGJvb2xlYW47XG4gIG5vZGU6IE9uZVJvd05vZGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhwYW5zaW9uQ2hhbmdlZEV2ZW50PFQgPSBhbnk+IHtcbiAgcm93SW5kZXg/OiBudW1iZXI7XG4gIGRhdGE6IFQ7XG4gIG5vZGU6IE9uZVJvd05vZGU8VD47XG4gIGFwaT86IE9uZUdyaWRBcGk8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGVzQ2hhbmdlZEV2ZW50PFQgPSBhbnk+IHtcbiAgcm93SW5kZXg/OiBudW1iZXI7XG4gIGRhdGE6IFQ7XG4gIG5vZGU6IE9uZVJvd05vZGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbE9wdGlvbk1lbnVTZWxlY3RlZEV2ZW50PFQgPSBhbnk+IHtcbiAgb3B0aW9uOiBPbmVDZWxsT3B0aW9uTWVudTtcbiAgbm9kZTogT25lUm93Tm9kZTxUPjtcbiAgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29ydENoYW5nZWRFdmVudDxUID0gYW55PiB7XG4gIG5vZGVzOiBPbmVSb3dOb2RlPFQ+W107XG4gIC8qKiBUaGUgbW9kZWwgdGhhdCBwcm9kdWNlZCB0aGlzIG9yZGVyLiBFbXB0eSB3aGVuIHNvcnRpbmcgd2FzIGNsZWFyZWQuICovXG4gIHNvcnRNb2RlbDogcmVhZG9ubHkgT25lU29ydE1vZGVsPFQ+W107XG59XG5cbi8qKlxuICogQSBjZWxsIGVkaXQgd2FzIGNvbW1pdHRlZCB3aXRoIGEgdmFsdWUgZGlmZmVyZW50IGZyb20gdGhlIG9uZSBpdCBzdGFydGVkXG4gKiB3aXRoLiBQcm9ncmFtbWF0aWMgd3JpdGVzIHRocm91Z2ggYG5vZGUuc2V0RGF0YVZhbHVlYCBkbyBub3QgcmFpc2UgdGhpcyDigJRcbiAqIHRoZSBjYWxsZXIgYWxyZWFkeSBob2xkcyBib3RoIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZWxsVmFsdWVDaGFuZ2VkRXZlbnQ8VCA9IGFueT4ge1xuICBub2RlOiBPbmVSb3dOb2RlPFQ+O1xuICBkYXRhOiBUO1xuICBjb2x1bW46IE9uZUNvbHVtbkRlZjxUPjtcbiAgZmllbGQ6IHN0cmluZztcbiAgb2xkVmFsdWU6IGFueTtcbiAgbmV3VmFsdWU6IGFueTtcbiAgLyoqIEFic2VudCBmb3IgYSBjb21taXR0ZWQgZWRpdDsgc2V0IHdoZW4gdW5kby9yZWRvIHJlLWFwcGxpZWQgb25lLiAqL1xuICBzb3VyY2U/OiAndW5kbycgfCAncmVkbyc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uUmVzaXplZEV2ZW50IHtcbiAgY29sdW1uSWQ6IHN0cmluZztcbiAgbmV3V2lkdGg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5DaGFuZ2VkRXZlbnQge1xuICBjb2x1bW5zPzogICAgT25lQ29sdW1uRGVmW107XG4gIGdyb3Vwcz86ICAgICBPbmVHcm91cENvbHVtbkRlZltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENlbGxTdGF0ZUNoYW5nZWRFdmVudDxUPiB7XG4gIGRhdGE6IFQ7XG4gIG5vZGU6IE9uZVJvd05vZGU8VD47XG4gIC8qKlxuICAgKiBUaGUgY29sdW1uIHdob3NlIGNlbGwgY2hhbmdlZC4gQWJzZW50IHdoZW4gdGhlIHdob2xlIHJvdyB3YXMgcmVmcmVzaGVkXG4gICAqIHRocm91Z2ggYGFwaS51cGRhdGVDZWxsU3RhdGVzKG5vZGUpYCwgd2hpY2ggcmVnZW5lcmF0ZXMgZXZlcnkgY2VsbCBhbmQgc29cbiAgICogaGFzIG5vIHNpbmdsZSBjb2x1bW4gdG8gbmFtZS5cbiAgICovXG4gIGNvbHVtbj86IE9uZUNvbHVtbkRlZjxUPjtcbn1cblxuLyoqXG4gKiBSb3dzIHdlcmUgcmVvcmRlcmVkLiBDYXJyaWVzIHRoZSB3aG9sZSBuZXcgb3JkZXIsIGJlY2F1c2UgdGhlIGRpc3BsYXkgb3JkZXJcbiAqIGlzIHdoYXQgdGhlIGJvZHkgcmVuZGVycywgcGx1cyB3aGljaCByb3cgbW92ZWQgZm9yIGFueW9uZSB0cmFja2luZyB0aGUgZWRpdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3dPcmRlckNoYW5nZWRFdmVudDxUID0gYW55PiB7XG4gIG5vZGVzOiBPbmVSb3dOb2RlPFQ+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWV2ZW50LXR5cGVzLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lLWdyaWQvc3JjL2xpYi9jb3JlL21vZGVscy9vbmUtZXZlbnQtdHlwZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT25lQ29sdW1uRGVmLCBPbmVHcm91cENvbHVtbkRlZiB9IGZyb20gXCIuL29uZS1jb2x1bW4tZGVmLXR5cGVzLm1vZGVsXCI7XG5pbXBvcnQgdHlwZSB7IE9uZUdyaWRBcGkgfSBmcm9tIFwiLi4vaW5zdGFudHMvb25lLWdyaWQtYXBpLmNsYXNzXCI7XG5pbXBvcnQgdHlwZSB7IE9uZVJvd05vZGUgfSBmcm9tIFwiLi4vaW5zdGFudHMvb25lLXJvdy1ub2RlLmNsYXNzXCI7XG5pbXBvcnQgdHlwZSB7IE9uZVNvcnRNb2RlbCB9IGZyb20gXCIuL29uZS1ncmlkLXR5cGVzLm1vZGVsXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm93U2VsZWN0ZWRFdmVudCB7XG4gIHJvd0lkOiBzdHJpbmc7XG4gIHNlbGVjdGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENlbGxDbGlja2VkRXZlbnQge1xuICByb3dJZDogc3RyaW5nO1xuICBjb2x1bW5JZDogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbk1vdmVkRXZlbnQge1xuICBjb2x1bW5JZDogc3RyaW5nO1xuICB0b0luZGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm93RGF0YUNoYW5nZWRFdmVudDxUPiB7XG4gIG5vZGVzOiBPbmVSb3dOb2RlPFQ+W107XG59XG5cbi8qKiBXaGljaCBlZGdlIGEgc2V0IG9mIHBpbm5lZCByb3dzIGlzIGFuY2hvcmVkIHRvLiAqL1xuZXhwb3J0IHR5cGUgT25lUGlubmVkUm93U2lkZSA9ICd0b3AnIHwgJ2JvdHRvbSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlubmVkUm93RGF0YUNoYW5nZWRFdmVudDxUID0gYW55PiB7XG4gIHNpZGU6IE9uZVBpbm5lZFJvd1NpZGU7XG4gIG5vZGVzOiBPbmVSb3dOb2RlPFQ+W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lQ2VsbE9wdGlvbk1lbnUge1xuICB0ZXh0OiBzdHJpbmc7XG4gIHZhbHVlOiBhbnk7XG59IFxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGlvbkNoYW5nZWRFdmVudDxUID0gYW55PiB7XG4gIHNlbGVjdGVkUm93SWRzPzogc3RyaW5nW107XG4gIHJvd0luZGV4PzogbnVtYmVyO1xuICBkYXRhPzogVDtcbiAgYWxsTm9kZXNTZWxlY3RlZD86IGJvb2xlYW47XG4gIGFsbE5vZGVzTm90U2VsZWN0ZWQ/OiBib29sZWFuO1xuICBzZWxlY3RlZD86IGJvb2xlYW47XG4gIG5vZGU6IE9uZVJvd05vZGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhwYW5zaW9uQ2hhbmdlZEV2ZW50PFQgPSBhbnk+IHtcbiAgcm93SW5kZXg/OiBudW1iZXI7XG4gIGRhdGE6IFQ7XG4gIG5vZGU6IE9uZVJvd05vZGU8VD47XG4gIGFwaT86IE9uZUdyaWRBcGk8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGVzQ2hhbmdlZEV2ZW50PFQgPSBhbnk+IHtcbiAgcm93SW5kZXg/OiBudW1iZXI7XG4gIGRhdGE6IFQ7XG4gIG5vZGU6IE9uZVJvd05vZGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbE9wdGlvbk1lbnVTZWxlY3RlZEV2ZW50PFQgPSBhbnk+IHtcbiAgb3B0aW9uOiBPbmVDZWxsT3B0aW9uTWVudTtcbiAgbm9kZTogT25lUm93Tm9kZTxUPjtcbiAgY29sdW1uOiBPbmVDb2x1bW5EZWY8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29ydENoYW5nZWRFdmVudDxUID0gYW55PiB7XG4gIG5vZGVzOiBPbmVSb3dOb2RlPFQ+W107XG4gIC8qKiBUaGUgbW9kZWwgdGhhdCBwcm9kdWNlZCB0aGlzIG9yZGVyLiBFbXB0eSB3aGVuIHNvcnRpbmcgd2FzIGNsZWFyZWQuICovXG4gIHNvcnRNb2RlbDogcmVhZG9ubHkgT25lU29ydE1vZGVsPFQ+W107XG59XG5cbi8qKlxuICogQSBjZWxsIGVkaXQgd2FzIGNvbW1pdHRlZCB3aXRoIGEgdmFsdWUgZGlmZmVyZW50IGZyb20gdGhlIG9uZSBpdCBzdGFydGVkXG4gKiB3aXRoLiBQcm9ncmFtbWF0aWMgd3JpdGVzIHRocm91Z2ggYG5vZGUuc2V0RGF0YVZhbHVlYCBkbyBub3QgcmFpc2UgdGhpcyDigJRcbiAqIHRoZSBjYWxsZXIgYWxyZWFkeSBob2xkcyBib3RoIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZWxsVmFsdWVDaGFuZ2VkRXZlbnQ8VCA9IGFueT4ge1xuICBub2RlOiBPbmVSb3dOb2RlPFQ+O1xuICBkYXRhOiBUO1xuICBjb2x1bW46IE9uZUNvbHVtbkRlZjxUPjtcbiAgZmllbGQ6IHN0cmluZztcbiAgb2xkVmFsdWU6IGFueTtcbiAgbmV3VmFsdWU6IGFueTtcbiAgLyoqIEFic2VudCBmb3IgYSBjb21taXR0ZWQgZWRpdDsgc2V0IHdoZW4gdW5kby9yZWRvIHJlLWFwcGxpZWQgb25lLiAqL1xuICBzb3VyY2U/OiAndW5kbycgfCAncmVkbyc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uUmVzaXplZEV2ZW50IHtcbiAgY29sdW1uSWQ6IHN0cmluZztcbiAgbmV3V2lkdGg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5DaGFuZ2VkRXZlbnQge1xuICBjb2x1bW5zPzogICAgT25lQ29sdW1uRGVmW107XG4gIGdyb3Vwcz86ICAgICBPbmVHcm91cENvbHVtbkRlZltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENlbGxTdGF0ZUNoYW5nZWRFdmVudDxUPiB7XG4gIGRhdGE6IFQ7XG4gIG5vZGU6IE9uZVJvd05vZGU8VD47XG4gIC8qKlxuICAgKiBUaGUgY29sdW1uIHdob3NlIGNlbGwgY2hhbmdlZC4gQWJzZW50IHdoZW4gdGhlIHdob2xlIHJvdyB3YXMgcmVmcmVzaGVkXG4gICAqIHRocm91Z2ggYGFwaS51cGRhdGVDZWxsU3RhdGVzKG5vZGUpYCwgd2hpY2ggcmVnZW5lcmF0ZXMgZXZlcnkgY2VsbCBhbmQgc29cbiAgICogaGFzIG5vIHNpbmdsZSBjb2x1bW4gdG8gbmFtZS5cbiAgICovXG4gIGNvbHVtbj86IE9uZUNvbHVtbkRlZjxUPjtcbn1cblxuLyoqXG4gKiBSb3dzIHdlcmUgcmVvcmRlcmVkLiBDYXJyaWVzIHRoZSB3aG9sZSBuZXcgb3JkZXIsIGJlY2F1c2UgdGhlIGRpc3BsYXkgb3JkZXJcbiAqIGlzIHdoYXQgdGhlIGJvZHkgcmVuZGVycywgcGx1cyB3aGljaCByb3cgbW92ZWQgZm9yIGFueW9uZSB0cmFja2luZyB0aGUgZWRpdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3dPcmRlckNoYW5nZWRFdmVudDxUID0gYW55PiB7XG4gIG5vZGVzOiBPbmVSb3dOb2RlPFQ+W107XG4gIG5vZGU6IE9uZVJvd05vZGU8VD47XG4gIGZyb21JbmRleDogbnVtYmVyO1xuICB0b0luZGV4OiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhlIGdyb3VwaW5nIGNoYW5nZWQgdGhyb3VnaCBgYXBpLnNldFJvd0dyb3VwaW5nYCDigJQgaW5jbHVkaW5nIHRoZSBjYWxsIHRoZVxuICogZ3JpZCBtYWtlcyBpdHNlbGYgZm9yIHRoZSBgcm93R3JvdXBgIGNvbHVtbiBkZWZpbml0aW9ucyB3aGVuIGl0IHN0YXJ0cy5cbiAqXG4gKiBDYXJyaWVzIHRoZSBmaWVsZHMgaW4gbmVzdGluZyBvcmRlciwgZW1wdHkgd2hlbiBncm91cGluZyB3YXMgdHVybmVkIG9mZixcbiAqIGFuZCB0aGUgb25lcyB0aGF0IHdlcmUgaW4gZm9yY2UgYmVmb3JlLCBzbyBhIGxpc3RlbmVyIGNhbiB0ZWxsIHdoYXQgdGhlXG4gKiBjaGFuZ2UgYWN0dWFsbHkgd2FzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvd0dyb3VwaW5nQ2hhbmdlZEV2ZW50IHtcbiAgZ3JvdXBGaWVsZHM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICBwcmV2aW91c0dyb3VwRmllbGRzOiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFBheWxvYWRNYXA8VCA9IGFueT4ge1xuICByb3dTZWxlY3RlZDogUm93U2VsZWN0ZWRFdmVudDtcbiAgY2VsbENsaWNrZWQ6IENlbGxDbGlja2VkRXZlbnQ7XG4gIGNvbHVtbk1vdmVkOiBDb2x1bW5Nb3ZlZEV2ZW50O1xuICBjb2x1bW5SZXNpemVkOiBDb2x1bW5SZXNpemVkRXZlbnQ7XG4gIGNvbHVtbkNoYW5nZWQ6IENvbHVtbkNoYW5nZWRFdmVudDtcbiAgcm93RGF0YUNoYW5nZWQ6IFJvd0RhdGFDaGFuZ2VkRXZlbnQ8VD47XG4gIHBpbm5lZFJvd0RhdGFDaGFuZ2VkOiBQaW5uZWRSb3dEYXRhQ2hhbmdlZEV2ZW50PFQ+O1xuICBzZWxlY3Rpb25DaGFuZ2VkOiBTZWxlY3Rpb25DaGFuZ2VkRXZlbnQ8VD47XG4gIHNvcnRDaGFuZ2VkOiBTb3J0Q2hhbmdlZEV2ZW50PFQ+O1xuICByb3dPcmRlckNoYW5nZWQ6IFJvd09yZGVyQ2hhbmdlZEV2ZW50PFQ+O1xuICBjZWxsU3RhdGVDaGFuZ2VkOiBDZWxsU3RhdGVDaGFuZ2VkRXZlbnQ8VD47XG4gIGNlbGxWYWx1ZUNoYW5nZWQ6IENlbGxWYWx1ZUNoYW5nZWRFdmVudDxUPjtcbiAgcm93R3JvdXBpbmdDaGFuZ2VkOiBSb3dHcm91cGluZ0NoYW5nZWRFdmVudDtcbn1cblxuZXhwb3J0IHR5cGUgT25lQ2hlY2tib3hTdGF0ZSA9ICdjaGVja2VkJyB8ICd1bmNoZWNrZWQnIHwgJ2luZGV0ZXJtaW5hdGUnO1xuXG5leHBvcnQgdHlwZSBSb3dTZWxlY3Rpb25Nb2RlID0gJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgbnVsbDtcblxuZXhwb3J0IHR5cGUgRXZlbnRUeXBlID0ga2V5b2YgRXZlbnRQYXlsb2FkTWFwOyJdfQ==
|
|
@@ -28,6 +28,16 @@ export class OgColumnService {
|
|
|
28
28
|
this.setGroupColumnDefs(groupColumnDefs);
|
|
29
29
|
this.setColumnDefs(columnDefs);
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Every registered column, hidden ones included, in display order.
|
|
33
|
+
*
|
|
34
|
+
* `getColumnState` answers what is on screen; this answers what the grid
|
|
35
|
+
* knows about — which is what anything reading a column's *configuration*
|
|
36
|
+
* (an `aggFunc`, say) needs, since hiding a column does not unconfigure it.
|
|
37
|
+
*/
|
|
38
|
+
getAllColumnDefs() {
|
|
39
|
+
return this.allColumnDefs;
|
|
40
|
+
}
|
|
31
41
|
getColumnState() {
|
|
32
42
|
const columns = this.columnDefs$.getValue();
|
|
33
43
|
const groups = this.groupColumnDefs$.getValue();
|
|
@@ -308,4 +318,4 @@ export class OgColumnService {
|
|
|
308
318
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OgColumnService, decorators: [{
|
|
309
319
|
type: Injectable
|
|
310
320
|
}] });
|
|
311
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ctY29sdW1uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvcmUvc2VydmljZXMvb2ctY29sdW1uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFHdkcsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFHVSxxQkFBZ0IsR0FBaUIsSUFBSSxDQUFDO1FBRTlDOzs7V0FHRztRQUNLLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFFaEM7Ozs7OztXQU1HO1FBQ0ssa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFzQixFQUFFLENBQUMsQ0FBQztLQXlYekU7SUF2WEMsY0FBYyxDQUFDLGdCQUE4QixFQUFFLFVBQTBCLEVBQUUsZUFBb0MsRUFBRSxVQUFtQixJQUFJO1FBRXRJLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUV6QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUV2QixJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsY0FBYztRQUVaLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFNUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGtCQUFrQixDQUFDLGVBQW9DO1FBRXJELE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbEksSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQTBCO1FBRXRDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFpQixFQUFFLEVBQUU7WUFFbkQsTUFBTSxNQUFNLEdBQUc7Z0JBQ2IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCO2dCQUN4QixHQUFHLEdBQUc7Z0JBQ04sRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO2FBQ3JELENBQUM7WUFFRixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssTUFBTSxDQUFDLE9BQXVCO1FBRXBDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7UUFFN0IsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNLLFlBQVksQ0FBQyxPQUF1QjtRQUUxQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQztRQUNoRSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQztRQUVsRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUVsQyxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUU3QixNQUFNLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztnQkFDNUIsTUFBTSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDN0IsQ0FBQztZQUVELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQztRQUUvRix1RUFBdUU7UUFDdkUsdUVBQXVFO1FBQ3ZFLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUVmLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7WUFFMUIsTUFBTSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7WUFDOUIsTUFBTSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFFM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO2dCQUFFLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBRUQsd0VBQXdFO1FBQ3hFLHNFQUFzRTtRQUN0RSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRVgsS0FBSyxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFFdkQsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7WUFDcEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFFakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJO2dCQUFFLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBRUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUU1QixNQUFNLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUM1QixNQUFNLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUM3QixDQUFDO1FBRUQseUVBQXlFO1FBQ3pFLGtFQUFrRTtRQUNsRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEQsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFELElBQUksV0FBVyxDQUFDLE1BQU07WUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQy9FLElBQUksWUFBWSxDQUFDLE1BQU07WUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUU1RCxPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsd0VBQXdFO0lBQ2pFLGNBQWMsQ0FBQyxJQUFzQjtRQUUxQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFO2FBQy9CLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDO2FBQ3hDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsNEVBQTRFO0lBQzVFLHNFQUFzRTtJQUN0RSxlQUFlLENBQUMsRUFBVSxFQUFFLE9BQThCO1FBRXhELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFbkcsMkVBQTJFO1FBQzNFLHVFQUF1RTtRQUN2RSx1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxpQkFBaUIsQ0FBQyxTQUFpQixFQUFFLE9BQWU7UUFFbEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXZELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFFbkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTFDLDJFQUEyRTtRQUMzRSwwRUFBMEU7UUFDMUUsMENBQTBDO1FBQzFDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLENBQUM7UUFDaEUsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXJDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU1RSx5RUFBeUU7UUFDekUsZ0VBQWdFO1FBQ2hFLGtFQUFrRTtRQUNsRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsZUFBZSxDQUFDLGNBQXNCO1FBRXBDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVyRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRS9ELE1BQU0sVUFBVSxHQUFHLE9BQU87YUFDdkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUMzQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFcEUsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEdBQUcsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXpELHVFQUF1RTtRQUN2RSx5RUFBeUU7UUFDekUsdURBQXVEO1FBQ3ZELE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQ3pDLElBQUksU0FBUyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQztRQUVqQyxPQUFPLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUV4QixNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyRixNQUFNLEtBQUssR0FBRyxTQUFTLEdBQUcsU0FBUyxDQUFDO1lBRXBDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBRXhDLE1BQU0sS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQy9DLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDO2dCQUN4RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUVsRCxJQUFJLEtBQUssS0FBSyxLQUFLO29CQUFFLE9BQU8sS0FBSyxDQUFDO2dCQUVsQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUUzQyxPQUFPLElBQUksQ0FBQztZQUNkLENBQUMsQ0FBQyxDQUFDO1lBRUgsU0FBUyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUVsRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUVwQixTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFM0YsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFakcsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztRQUUzQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQzFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRWpGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0JBQXNCO1FBRXBCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFFckMsTUFBTSxLQUFLLEdBQXdCLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1lBRXpHLElBQUksTUFBTSxDQUFDLEtBQUssSUFBSSxJQUFJO2dCQUFFLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUVyRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsZ0JBQWdCLENBQUMsT0FBOEI7UUFFN0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVFLE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUvRCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBRXJDLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBRXpDLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJO2dCQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNwRCxJQUFJLFFBQVEsSUFBSSxLQUFLO2dCQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUM7WUFDakUsSUFBSSxNQUFNLElBQUksS0FBSztnQkFBRSxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBRWhELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUIsQ0FBQyxVQUEwQjtRQUVsRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFFaEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RCxHQUFHLEtBQUs7Z0JBQ1IsS0FBSyxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzdHLENBQUMsQ0FBQyxDQUFDO1lBRUosSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztJQUVELHdCQUF3QixDQUFDLEdBQXNCLEVBQUUsTUFBOEI7UUFFN0UsR0FBRyxDQUFDLG1CQUFtQixHQUFHLE9BQU8sR0FBRyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7UUFDekcsR0FBRyxDQUFDLG1CQUFtQixHQUFHLE9BQU8sR0FBRyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7UUFFekcsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILHlCQUF5QixDQUFDLEdBQWlCO1FBRXpDLE1BQU0sTUFBTSxHQUFnQztZQUMxQyxTQUFTLEVBQUUsR0FBRztZQUNkLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBZTtZQUMxQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQztRQUVGLEdBQUcsQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLEdBQUcsQ0FBQyxXQUFXLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1FBQzdHLEdBQUcsQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLEdBQUcsQ0FBQyxXQUFXLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1FBRTdHLDZFQUE2RTtRQUM3RSx3RUFBd0U7UUFDeEUsMkVBQTJFO1FBQzNFLHFFQUFxRTtRQUNyRSx3REFBd0Q7UUFDeEQsR0FBRyxDQUFDLGlCQUFpQixHQUFHLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0UsR0FBRyxDQUFDLGtCQUFrQixHQUFHLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0UsR0FBRyxDQUFDLGlCQUFpQixHQUFHLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0UsR0FBRyxDQUFDLG1CQUFtQixHQUFHLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0UsR0FBRyxDQUFDLGlDQUFpQyxHQUFHLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzRyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsZ0JBQWdCLENBQUMsR0FBaUIsRUFBRSxNQUFpQztRQUVuRSxPQUFPLE9BQU8sR0FBRyxFQUFFLFNBQVMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUM7SUFDdkYsQ0FBQztJQUVELG9FQUFvRTtJQUNwRSxnQkFBZ0IsQ0FBQyxHQUFpQixFQUFFLE1BQWlDO1FBRW5FLE9BQU8sT0FBTyxHQUFHLEVBQUUsU0FBUyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQztJQUN2RixDQUFDOytHQTNZVSxlQUFlO21IQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9uZUNlbGxQcmVzZW50YXRpb25QYXJhbXMsIE9uZUNlbGxSZW5kZXJlclBhcmFtcywgT25lQ29sdW1uRGVmLCBPbmVDb2x1bW5TdGF0ZUVudHJ5LCBPbmVHcm91cENvbHVtbkRlZiwgT25lSGVhZGVyUHJlc2VudGF0aW9uUGFyYW1zIH0gZnJvbSAnLi4vbW9kZWxzL29uZS1jb2x1bW4tZGVmLXR5cGVzLm1vZGVsJztcbmltcG9ydCBsb2Rhc2ggZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENvbHVtbkNoYW5nZWRFdmVudCB9IGZyb20gJy4uL21vZGVscy9vbmUtZXZlbnQtdHlwZXMubW9kZWwnO1xuaW1wb3J0IHsgcmVzb2x2ZUNvbHVtbldpZHRoLCByZXNvbHZlT25lQ2VsbFJlbmRlcmVyUGFyYW1zIH0gZnJvbSAnLi4vLi4vaGVscGVycy9vbmUtY29sdW1uLWRlZi5oZWxwZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT2dDb2x1bW5TZXJ2aWNlIHtcblxuICBwcml2YXRlIGRlZmF1bHRDb2x1bW5EZWY6IE9uZUNvbHVtbkRlZiA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBncmlkJ3MgYGNvbnRleHRgLCBzbyBoZWFkZXIgY2FsbGJhY2tzIHJlY2VpdmUgdGhlIHNhbWUgb25lIGNlbGxcbiAgICogY2FsbGJhY2tzIGRvLiBTZXQgZHVyaW5nIGluaXQ7IG51bGwgaW4gYSBiYXJlIHNlcnZpY2UuXG4gICAqL1xuICBwcml2YXRlIGNvbnRleHQ6IHVua25vd24gPSBudWxsO1xuXG4gIC8qKlxuICAgKiBFdmVyeSBjb2x1bW4sIGhpZGRlbiBvbmVzIGluY2x1ZGVkLCBpbiBkaXNwbGF5IG9yZGVyLiBgY29sdW1uRGVmcyRgIGJlbG93XG4gICAqIGNhcnJpZXMgb25seSB0aGUgdmlzaWJsZSBzdWJzZXQg4oCUIGl0IGlzIHdoYXQgdGhlIGhlYWRlciBhbmQgYm9keSByZW5kZXJcbiAgICogZnJvbSwgc28gaGlkaW5nIGEgY29sdW1uIG1lYW5zIGxlYXZpbmcgaXQgb3V0IG9mIHRoZSBlbWlzc2lvbiwgYW5kIGV2ZXJ5XG4gICAqIGNvbnN1bWVyIGtlZXBzIHdvcmtpbmcgd2l0aCBubyBub3Rpb24gb2YgdmlzaWJpbGl0eSBhdCBhbGwuIFRoaXMgbGlzdCBpc1xuICAgKiB3aGF0IHJlbWVtYmVycyBhIGhpZGRlbiBjb2x1bW4ncyBwbGFjZSwgd2lkdGggYW5kIHBpbiBmb3Igd2hlbiBpdCByZXR1cm5zLlxuICAgKi9cbiAgcHJpdmF0ZSBhbGxDb2x1bW5EZWZzOiBPbmVDb2x1bW5EZWZbXSA9IFtdO1xuICBwcml2YXRlIGNvbHVtbkRlZnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPbmVDb2x1bW5EZWZbXT4oW10pO1xuICBwcml2YXRlIGdyb3VwQ29sdW1uRGVmcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE9uZUdyb3VwQ29sdW1uRGVmW10+KFtdKTtcblxuICBpbml0Q29sdW1uRGVmcyhkZWZhdWx0Q29sdW1uRGVmOiBPbmVDb2x1bW5EZWYsIGNvbHVtbkRlZnM6IE9uZUNvbHVtbkRlZltdLCBncm91cENvbHVtbkRlZnM6IE9uZUdyb3VwQ29sdW1uRGVmW10sIGNvbnRleHQ6IHVua25vd24gPSBudWxsKTogdm9pZCB7XG5cbiAgICB0aGlzLmRlZmF1bHRDb2x1bW5EZWYgPSBkZWZhdWx0Q29sdW1uRGVmO1xuXG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcblxuICAgIHRoaXMuc2V0R3JvdXBDb2x1bW5EZWZzKGdyb3VwQ29sdW1uRGVmcyk7XG4gICAgXG4gICAgdGhpcy5zZXRDb2x1bW5EZWZzKGNvbHVtbkRlZnMpO1xuICB9XG5cbiAgZ2V0Q29sdW1uU3RhdGUoKTogQ29sdW1uQ2hhbmdlZEV2ZW50IHtcblxuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmNvbHVtbkRlZnMkLmdldFZhbHVlKCk7XG5cbiAgICBjb25zdCBncm91cHMgPSB0aGlzLmdyb3VwQ29sdW1uRGVmcyQuZ2V0VmFsdWUoKTtcblxuICAgIHJldHVybiB7IGNvbHVtbnMsIGdyb3VwcyB9O1xuICB9XG5cbiAgc2V0R3JvdXBDb2x1bW5EZWZzKGdyb3VwQ29sdW1uRGVmczogT25lR3JvdXBDb2x1bW5EZWZbXSk6IHZvaWQge1xuXG4gICAgY29uc3QgZ3JvdXBzID0gZ3JvdXBDb2x1bW5EZWZzLm1hcCgoZ3JvdXA6IE9uZUdyb3VwQ29sdW1uRGVmKSA9PiB0aGlzLnJlc29sdmVHcm91cFByZXNlbnRhdGlvbihncm91cCwgeyBjb250ZXh0OiB0aGlzLmNvbnRleHQgfSkpO1xuXG4gICAgdGhpcy5ncm91cENvbHVtbkRlZnMkLm5leHQoZ3JvdXBzKTtcbiAgfVxuXG4gIHNldENvbHVtbkRlZnMoY29sdW1uRGVmczogT25lQ29sdW1uRGVmW10pOiB2b2lkIHtcblxuICAgIGNvbnN0IGNvbHVtbnMgPSBjb2x1bW5EZWZzLm1hcCgoY29sOiBPbmVDb2x1bW5EZWYpID0+IHtcblxuICAgICAgY29uc3QgY29sdW1uID0ge1xuICAgICAgICAuLi50aGlzLmRlZmF1bHRDb2x1bW5EZWYsXG4gICAgICAgIC4uLmNvbCxcbiAgICAgICAgaWQ6IGNvbD8uZmllbGQgPyBjb2wuZmllbGQgOiBsb2Rhc2gudW5pcXVlSWQoJ2NvbF8nKSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiB0aGlzLnJlc29sdmVIZWFkZXJQcmVzZW50YXRpb24oY29sdW1uKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29tbWl0KGNvbHVtbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlLWJhbmQsIHJlLW1lYXN1cmUgYW5kIHB1Ymxpc2ggYSBuZXcgY29sdW1uIGxpc3QuXG4gICAqXG4gICAqIEV2ZXJ5IG11dGF0aW9uIGZ1bm5lbHMgaGVyZSBzbyB0aGUgbWFzdGVyIGxpc3QgYW5kIHRoZSB2aXNpYmxlIGVtaXNzaW9uXG4gICAqIGNhbm5vdCBkcmlmdCBhcGFydC5cbiAgICovXG4gIHByaXZhdGUgY29tbWl0KGNvbHVtbnM6IE9uZUNvbHVtbkRlZltdKTogdm9pZCB7XG5cbiAgICBjb25zdCBvcmRlcmVkID0gdGhpcy5hcHBseVBpbm5pbmcoY29sdW1ucyk7XG5cbiAgICB0aGlzLmFsbENvbHVtbkRlZnMgPSBvcmRlcmVkO1xuXG4gICAgY29uc3QgdmlzaWJsZSA9IG9yZGVyZWQuZmlsdGVyKGNvbHVtbiA9PiAhY29sdW1uLmhpZGUpO1xuXG4gICAgdGhpcy5yZWNhbGN1bGF0ZUdyb3Vwcyh2aXNpYmxlKTtcblxuICAgIHRoaXMuY29sdW1uRGVmcyQubmV4dCh2aXNpYmxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIHBpbm5lZCBjb2x1bW5zIHRvIHRoZWlyIGVkZ2UgYW5kIG1lYXN1cmUgaG93IGZhciBpbiBlYWNoIG9uZSBzaXRzLlxuICAgKlxuICAgKiBEaXNwbGF5IG9yZGVyIGJlY29tZXMgbGVmdC1waW5uZWQsIHVucGlubmVkLCByaWdodC1waW5uZWQsIHdpdGggZGVjbGFyZWRcbiAgICogb3JkZXIgcHJlc2VydmVkIGluc2lkZSBlYWNoIGJhbmQuIGBfcGlubmVkT2Zmc2V0YCBpcyB0aGUgZGlzdGFuY2UgZnJvbSB0aGF0XG4gICAqIGNvbHVtbidzIG93biBlZGdlIOKAlCB0aGUgc3VtIG9mIHRoZSB3aWR0aHMgb2YgdGhlIHBpbm5lZCBjb2x1bW5zIG91dHNpZGUgaXRcbiAgICog4oCUIHdoaWNoIGlzIHdoYXQgdGhlIHN0aWNreSBgbGVmdGAgLyBgcmlnaHRgIGJpbmRpbmcgbmVlZHMuXG4gICAqXG4gICAqIFdpdGggbm90aGluZyBwaW5uZWQgdGhpcyByZXR1cm5zIHRoZSBzYW1lIGFycmF5LCBpbiB0aGUgc2FtZSBvcmRlciwgc28gYVxuICAgKiBncmlkIHRoYXQgZG9lcyBub3QgdXNlIHRoZSBmZWF0dXJlIGlzIHVuYWZmZWN0ZWQuXG4gICAqL1xuICBwcml2YXRlIGFwcGx5UGlubmluZyhjb2x1bW5zOiBPbmVDb2x1bW5EZWZbXSk6IE9uZUNvbHVtbkRlZltdIHtcblxuICAgIGNvbnN0IGxlZnQgPSBjb2x1bW5zLmZpbHRlcihjb2x1bW4gPT4gY29sdW1uLnBpbm5lZCA9PT0gJ2xlZnQnKTtcbiAgICBjb25zdCByaWdodCA9IGNvbHVtbnMuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4ucGlubmVkID09PSAncmlnaHQnKTtcblxuICAgIGlmICghbGVmdC5sZW5ndGggJiYgIXJpZ2h0Lmxlbmd0aCkge1xuXG4gICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5zKSB7XG5cbiAgICAgICAgY29sdW1uLl9waW5uZWRPZmZzZXQgPSBudWxsO1xuICAgICAgICBjb2x1bW4uX3Bpbm5lZEVkZ2UgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbHVtbnM7XG4gICAgfVxuXG4gICAgY29uc3QgY2VudGVyID0gY29sdW1ucy5maWx0ZXIoY29sdW1uID0+IGNvbHVtbi5waW5uZWQgIT09ICdsZWZ0JyAmJiBjb2x1bW4ucGlubmVkICE9PSAncmlnaHQnKTtcblxuICAgIC8vIEhpZGRlbiBjb2x1bW5zIGtlZXAgdGhlaXIgcGxhY2UgaW4gdGhlIGJhbmQgYnV0IHRha2UgdXAgbm8gc3BhY2UsIHNvXG4gICAgLy8gdGhleSBhcmUgc2tpcHBlZCB3aGVuIG1lYXN1cmluZyBvZmZzZXRzIGFuZCBuZXZlciBjYXJyeSB0aGUgZGl2aWRlci5cbiAgICBsZXQgb2Zmc2V0ID0gMDtcblxuICAgIGZvciAoY29uc3QgY29sdW1uIG9mIGxlZnQpIHtcblxuICAgICAgY29sdW1uLl9waW5uZWRPZmZzZXQgPSBvZmZzZXQ7XG4gICAgICBjb2x1bW4uX3Bpbm5lZEVkZ2UgPSBmYWxzZTtcblxuICAgICAgaWYgKCFjb2x1bW4uaGlkZSkgb2Zmc2V0ICs9IHJlc29sdmVDb2x1bW5XaWR0aChjb2x1bW4pO1xuICAgIH1cblxuICAgIC8vIFJpZ2h0LXBpbm5lZCBjb2x1bW5zIGFyZSBtZWFzdXJlZCBmcm9tIHRoZSByaWdodCBlZGdlIGlud2FyZHMsIHNvIHRoZVxuICAgIC8vIGxhc3QgZGVjbGFyZWQgb25lIHNpdHMgZmx1c2ggYW5kIHRoZSBlYXJsaWVyIG9uZXMgc3RhY2sgb3V0c2lkZSBpdC5cbiAgICBvZmZzZXQgPSAwO1xuXG4gICAgZm9yIChsZXQgaW5kZXggPSByaWdodC5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleC0tKSB7XG5cbiAgICAgIHJpZ2h0W2luZGV4XS5fcGlubmVkT2Zmc2V0ID0gb2Zmc2V0O1xuICAgICAgcmlnaHRbaW5kZXhdLl9waW5uZWRFZGdlID0gZmFsc2U7XG5cbiAgICAgIGlmICghcmlnaHRbaW5kZXhdLmhpZGUpIG9mZnNldCArPSByZXNvbHZlQ29sdW1uV2lkdGgocmlnaHRbaW5kZXhdKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjZW50ZXIpIHtcblxuICAgICAgY29sdW1uLl9waW5uZWRPZmZzZXQgPSBudWxsO1xuICAgICAgY29sdW1uLl9waW5uZWRFZGdlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gT25seSB0aGUgaW5uZXJtb3N0IHZpc2libGUgY29sdW1uIG9mIGVhY2ggYmFuZCBjYXJyaWVzIHRoZSBkaXZpZGVyLCBzb1xuICAgIC8vIHN0YWNrZWQgcGlubmVkIGNvbHVtbnMgZG8gbm90IGVhY2ggY2FzdCBhIHNoYWRvdyBvbnRvIHRoZSBuZXh0LlxuICAgIGNvbnN0IGxlZnRWaXNpYmxlID0gbGVmdC5maWx0ZXIoY29sdW1uID0+ICFjb2x1bW4uaGlkZSk7XG4gICAgY29uc3QgcmlnaHRWaXNpYmxlID0gcmlnaHQuZmlsdGVyKGNvbHVtbiA9PiAhY29sdW1uLmhpZGUpO1xuXG4gICAgaWYgKGxlZnRWaXNpYmxlLmxlbmd0aCkgbGVmdFZpc2libGVbbGVmdFZpc2libGUubGVuZ3RoIC0gMV0uX3Bpbm5lZEVkZ2UgPSB0cnVlO1xuICAgIGlmIChyaWdodFZpc2libGUubGVuZ3RoKSByaWdodFZpc2libGVbMF0uX3Bpbm5lZEVkZ2UgPSB0cnVlO1xuXG4gICAgcmV0dXJuIFsuLi5sZWZ0LCAuLi5jZW50ZXIsIC4uLnJpZ2h0XTtcbiAgfVxuXG4gIC8qKiBUb3RhbCB3aWR0aCBvZiB0aGUgdmlzaWJsZSBjb2x1bW5zIGZyb3plbiBhZ2FpbnN0IHRoZSBnaXZlbiBlZGdlLiAqL1xuICBwdWJsaWMgZ2V0UGlubmVkV2lkdGgoc2lkZTogJ2xlZnQnIHwgJ3JpZ2h0Jyk6IG51bWJlciB7XG5cbiAgICByZXR1cm4gdGhpcy5jb2x1bW5EZWZzJC5nZXRWYWx1ZSgpXG4gICAgICAuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4ucGlubmVkID09PSBzaWRlKVxuICAgICAgLnJlZHVjZSgodG90YWwsIGNvbHVtbikgPT4gdG90YWwgKyByZXNvbHZlQ29sdW1uV2lkdGgoY29sdW1uKSwgMCk7XG4gIH1cblxuICAvLyBVcGRhdGUgc2luZ2xlIGNvbHVtbi4gV29ya3Mgb24gdGhlIG1hc3RlciBsaXN0LCBzbyBhIGhpZGRlbiBjb2x1bW4gY2FuIGJlXG4gIC8vIHBhdGNoZWQg4oCUIGluY2x1ZGluZyBgaGlkZWAgaXRzZWxmLCB3aGljaCBpcyBob3cgdmlzaWJpbGl0eSB0b2dnbGVzLlxuICB1cGRhdGVDb2x1bW5EZWYoaWQ6IHN0cmluZywgY2hhbmdlczogUGFydGlhbDxPbmVDb2x1bW5EZWY+KTogdm9pZCB7XG5cbiAgICBjb25zdCB1cGRhdGVkQ29sdW1ucyA9IHRoaXMuYWxsQ29sdW1uRGVmcy5tYXAoY29sID0+IGNvbC5pZCA9PT0gaWQgPyB7IC4uLmNvbCwgLi4uY2hhbmdlcyB9IDogY29sKTtcblxuICAgIC8vIFJlLXBpbm5lZCAoaW5zaWRlIGNvbW1pdCksIG5vdCBqdXN0IHJlLWdyb3VwZWQ6IHJlc2l6aW5nIGEgcGlubmVkIGNvbHVtblxuICAgIC8vIGNoYW5nZXMgd2hlcmUgdGhlIG9uZXMgaW5zaWRlIGl0IGhhdmUgdG8gc2l0LCBhbmQgdGhpcyBpcyB0aGUgcGF0aCBhXG4gICAgLy8gY29sdW1uIHJlc2l6ZSB0YWtlcy5cbiAgICB0aGlzLmNvbW1pdCh1cGRhdGVkQ29sdW1ucyk7XG4gIH1cblxuICAvKipcbiAgICogUmVvcmRlciBjb2x1bW5zLiBUaGUgaW5kZXhlcyBhcmUgKnZpc2libGUqIHBvc2l0aW9ucyDigJQgdGhleSBjb21lIGZyb20gdGhlXG4gICAqIGhlYWRlciwgd2hpY2ggb25seSByZW5kZXJzIHZpc2libGUgY29sdW1ucyDigJQgc28gdGhleSBhcmUgbWFwcGVkIG9udG8gdGhlXG4gICAqIG1hc3RlciBsaXN0IGJlZm9yZSBzcGxpY2luZy4gQSBoaWRkZW4gY29sdW1uIGJldHdlZW4gdGhlIHR3byBrZWVwcyBpdHNcbiAgICogcGxhY2UgcmVsYXRpdmUgdG8gaXRzIG5laWdoYm91cnMuXG4gICAqL1xuICByZW9yZGVyQ29sdW1uRGVmcyhmcm9tSW5kZXg6IG51bWJlciwgdG9JbmRleDogbnVtYmVyKTogdm9pZCB7XG5cbiAgICBjb25zdCBjb2x1bW5zID0gbG9kYXNoLmNsb25lKHRoaXMuYWxsQ29sdW1uRGVmcyk7XG4gICAgY29uc3QgdmlzaWJsZSA9IGNvbHVtbnMuZmlsdGVyKGNvbHVtbiA9PiAhY29sdW1uLmhpZGUpO1xuXG4gICAgY29uc3QgbW92ZWQgPSB2aXNpYmxlW2Zyb21JbmRleF07XG5cbiAgICBpZiAoIW1vdmVkKSByZXR1cm47XG5cbiAgICBjb2x1bW5zLnNwbGljZShjb2x1bW5zLmluZGV4T2YobW92ZWQpLCAxKTtcblxuICAgIC8vIExhbmQgYmVmb3JlIHRoZSB2aXNpYmxlIGNvbHVtbiBub3cgYXQgdGhlIHRhcmdldCBpbmRleCDigJQgdGhlIHNhbWUgc3BsaWNlXG4gICAgLy8gdGhlIHZpc2libGUtb25seSBsaXN0IHVzZWQgdG8gZG8gYWZ0ZXIgcmVtb3ZhbCDigJQgb3IgYXQgdGhlIGVuZCB3aGVuIHRoZVxuICAgIC8vIHRhcmdldCBpcyBwYXN0IHRoZSBsYXN0IHZpc2libGUgY29sdW1uLlxuICAgIGNvbnN0IHZpc2libGVBZnRlciA9IHZpc2libGUuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4gIT09IG1vdmVkKTtcbiAgICBjb25zdCBhbmNob3IgPSB2aXNpYmxlQWZ0ZXJbdG9JbmRleF07XG5cbiAgICBjb2x1bW5zLnNwbGljZShhbmNob3IgPyBjb2x1bW5zLmluZGV4T2YoYW5jaG9yKSA6IGNvbHVtbnMubGVuZ3RoLCAwLCBtb3ZlZCk7XG5cbiAgICAvLyBEcmFnZ2luZyBjYW4gZHJvcCBhIGNvbHVtbiBiZXR3ZWVuIHR3byBwaW5uZWQgb25lczsgcmUtcGlubmluZyAoaW5zaWRlXG4gICAgLy8gY29tbWl0KSBwdXRzIHRoZSBiYW5kcyBiYWNrIGluIG9yZGVyIHJhdGhlciB0aGFuIGxlYXZpbmcgdGhlbVxuICAgIC8vIGludGVybGVhdmVkLCB3aGljaCB3b3VsZCBtYWtlIHRoZSBjb21wdXRlZCBvZmZzZXRzIG1lYW5pbmdsZXNzLlxuICAgIHRoaXMuY29tbWl0KGNvbHVtbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3RyaWJ1dGUgdGhlIHZpZXdwb3J0IHdpZHRoIGxlZnQgb3ZlciBieSBmaXhlZCBjb2x1bW5zIGFtb25nIHRoZSBmbGV4XG4gICAqIG9uZXMsIGluIHByb3BvcnRpb24gdG8gdGhlaXIgYGZsZXhgIHZhbHVlcyBhbmQgY2xhbXBlZCB0byB0aGVpciBib3VuZHMuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgYW55IHdpZHRoIGFjdHVhbGx5IGNoYW5nZWQg4oCUIHRoZSBjYWxsZXIgb25seSBkaXNwYXRjaGVzXG4gICAqIChhbmQgdGhlIGJvZHkgb25seSByZS10cmlnZ2Vycykgb24gYSByZWFsIGNoYW5nZSwgd2hpY2ggaXMgd2hhdCB0ZXJtaW5hdGVzXG4gICAqIHRoZSBjb2x1bW5DaGFuZ2VkIOKGkiBmbGV4IOKGkiBjb2x1bW5DaGFuZ2VkIGxvb3AuXG4gICAqL1xuICBhcHBseUZsZXhXaWR0aHMoYXZhaWxhYmxlV2lkdGg6IG51bWJlcik6IGJvb2xlYW4ge1xuXG4gICAgY29uc3QgdmlzaWJsZSA9IHRoaXMuY29sdW1uRGVmcyQuZ2V0VmFsdWUoKTtcbiAgICBjb25zdCBmbGV4Q29sdW1ucyA9IHZpc2libGUuZmlsdGVyKGNvbHVtbiA9PiAoY29sdW1uLmZsZXggPz8gMCkgPiAwKTtcblxuICAgIGlmICghZmxleENvbHVtbnMubGVuZ3RoIHx8ICEoYXZhaWxhYmxlV2lkdGggPiAwKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgZml4ZWRXaWR0aCA9IHZpc2libGVcbiAgICAgIC5maWx0ZXIoY29sdW1uID0+ICEoKGNvbHVtbi5mbGV4ID8/IDApID4gMCkpXG4gICAgICAucmVkdWNlKCh0b3RhbCwgY29sdW1uKSA9PiB0b3RhbCArIHJlc29sdmVDb2x1bW5XaWR0aChjb2x1bW4pLCAwKTtcblxuICAgIGxldCByZW1haW5pbmcgPSBNYXRoLm1heChhdmFpbGFibGVXaWR0aCAtIGZpeGVkV2lkdGgsIDApO1xuXG4gICAgLy8gQ2xhbXBlZCBjb2x1bW5zIHN0b3AgZmxleGluZyBhbmQgcmVsZWFzZSB0aGVpciBzaGFyZSB0byB0aGUgcmVzdCwgc29cbiAgICAvLyB0aGUgcGFzcyByZXBlYXRzIHVudGlsIHRoZSBzcGxpdCBpcyBzdGFibGUuIEVhY2ggcGFzcyBzZXR0bGVzIGF0IGxlYXN0XG4gICAgLy8gb25lIGNvbHVtbjsgdGhlIGxvb3AgaXMgYm91bmRlZCBieSB0aGUgY29sdW1uIGNvdW50LlxuICAgIGNvbnN0IHdpZHRocyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gICAgbGV0IHVuc2V0dGxlZCA9IFsuLi5mbGV4Q29sdW1uc107XG5cbiAgICB3aGlsZSAodW5zZXR0bGVkLmxlbmd0aCkge1xuXG4gICAgICBjb25zdCB0b3RhbEZsZXggPSB1bnNldHRsZWQucmVkdWNlKCh0b3RhbCwgY29sdW1uKSA9PiB0b3RhbCArIChjb2x1bW4uZmxleCA/PyAwKSwgMCk7XG4gICAgICBjb25zdCBzaGFyZSA9IHJlbWFpbmluZyAvIHRvdGFsRmxleDtcblxuICAgICAgY29uc3QgY2xhbXBlZCA9IHVuc2V0dGxlZC5maWx0ZXIoY29sdW1uID0+IHtcblxuICAgICAgICBjb25zdCBpZGVhbCA9IHNoYXJlICogKGNvbHVtbi5mbGV4ID8/IDApO1xuICAgICAgICBjb25zdCBtaW4gPSBNYXRoLm1heChjb2x1bW4ubWluV2lkdGggPz8gMCwgNTApO1xuICAgICAgICBjb25zdCBtYXggPSBjb2x1bW4ubWF4V2lkdGggPz8gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgICAgICBjb25zdCB3aWR0aCA9IE1hdGgubWluKE1hdGgubWF4KGlkZWFsLCBtaW4pLCBtYXgpO1xuXG4gICAgICAgIGlmICh3aWR0aCA9PT0gaWRlYWwpIHJldHVybiBmYWxzZTtcblxuICAgICAgICB3aWR0aHMuc2V0KGNvbHVtbi5pZCwgTWF0aC5yb3VuZCh3aWR0aCkpO1xuICAgICAgICByZW1haW5pbmcgPSBNYXRoLm1heChyZW1haW5pbmcgLSB3aWR0aCwgMCk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KTtcblxuICAgICAgdW5zZXR0bGVkID0gdW5zZXR0bGVkLmZpbHRlcihjb2x1bW4gPT4gIWNsYW1wZWQuaW5jbHVkZXMoY29sdW1uKSk7XG5cbiAgICAgIGlmICghY2xhbXBlZC5sZW5ndGgpIHtcblxuICAgICAgICB1bnNldHRsZWQuZm9yRWFjaChjb2x1bW4gPT4gd2lkdGhzLnNldChjb2x1bW4uaWQsIE1hdGguZmxvb3Ioc2hhcmUgKiAoY29sdW1uLmZsZXggPz8gMCkpKSk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY2hhbmdlZCA9IGZsZXhDb2x1bW5zLnNvbWUoY29sdW1uID0+IHdpZHRocy5nZXQoY29sdW1uLmlkKSAhPT0gcmVzb2x2ZUNvbHVtbldpZHRoKGNvbHVtbikpO1xuXG4gICAgaWYgKCFjaGFuZ2VkKSByZXR1cm4gZmFsc2U7XG5cbiAgICB0aGlzLmNvbW1pdCh0aGlzLmFsbENvbHVtbkRlZnMubWFwKGNvbHVtbiA9PlxuICAgICAgd2lkdGhzLmhhcyhjb2x1bW4uaWQpID8geyAuLi5jb2x1bW4sIHdpZHRoOiB3aWR0aHMuZ2V0KGNvbHVtbi5pZCkgfSA6IGNvbHVtbikpO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogT25lIEpTT04tc2FmZSBlbnRyeSBwZXIgY29sdW1uIOKAlCBoaWRkZW4gb25lcyBpbmNsdWRlZCDigJQgaW4gZGlzcGxheSBvcmRlci5cbiAgICovXG4gIGdldENvbHVtblN0YXRlU25hcHNob3QoKTogT25lQ29sdW1uU3RhdGVFbnRyeVtdIHtcblxuICAgIHJldHVybiB0aGlzLmFsbENvbHVtbkRlZnMubWFwKGNvbHVtbiA9PiB7XG5cbiAgICAgIGNvbnN0IGVudHJ5OiBPbmVDb2x1bW5TdGF0ZUVudHJ5ID0geyBpZDogY29sdW1uLmlkLCBoaWRlOiAhIWNvbHVtbi5oaWRlLCBwaW5uZWQ6IGNvbHVtbi5waW5uZWQgPz8gbnVsbCB9O1xuXG4gICAgICBpZiAoY29sdW1uLndpZHRoICE9IG51bGwpIGVudHJ5LndpZHRoID0gY29sdW1uLndpZHRoO1xuXG4gICAgICByZXR1cm4gZW50cnk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzdG9yZSBhIHNhdmVkIHNuYXBzaG90OiBvcmRlciwgd2lkdGgsIHBpbiBhbmQgdmlzaWJpbGl0eS5cbiAgICpcbiAgICogRW50cmllcyBhcmUgYXBwbGllZCBpbiB0aGUgb3JkZXIgZ2l2ZW4gYW5kIGJlY29tZSB0aGUgZnJvbnQgb2YgdGhlIG5ld1xuICAgKiBjb2x1bW4gb3JkZXI7IGNvbHVtbnMgdGhlIHNuYXBzaG90IGRvZXMgbm90IG1lbnRpb24ga2VlcCB0aGVpciBjdXJyZW50XG4gICAqIHJlbGF0aXZlIG9yZGVyIGJlaGluZCB0aGVtLCBhbmQgaWRzIHRoZSBncmlkIG5vIGxvbmdlciBoYXMgYXJlIHNraXBwZWQg4oCUXG4gICAqIHNvIGEgc3RhbGUgc25hcHNob3QgZGVncmFkZXMgdG8gYSBwYXJ0aWFsIHJlc3RvcmUgaW5zdGVhZCBvZiBhbiBlcnJvci5cbiAgICogT25seSB0aGUgcHJvcGVydGllcyBwcmVzZW50IG9uIGFuIGVudHJ5IGFyZSBhcHBsaWVkLlxuICAgKi9cbiAgYXBwbHlDb2x1bW5TdGF0ZShlbnRyaWVzOiBPbmVDb2x1bW5TdGF0ZUVudHJ5W10pOiB2b2lkIHtcblxuICAgIGNvbnN0IGJ5SWQgPSBuZXcgTWFwKHRoaXMuYWxsQ29sdW1uRGVmcy5tYXAoY29sdW1uID0+IFtjb2x1bW4uaWQsIGNvbHVtbl0pKTtcblxuICAgIGNvbnN0IG1lbnRpb25lZCA9IChlbnRyaWVzID8/IFtdKS5maWx0ZXIoZW50cnkgPT4gZW50cnkgJiYgYnlJZC5oYXMoZW50cnkuaWQpKTtcbiAgICBjb25zdCBtZW50aW9uZWRJZHMgPSBuZXcgU2V0KG1lbnRpb25lZC5tYXAoZW50cnkgPT4gZW50cnkuaWQpKTtcblxuICAgIGNvbnN0IHJlc3RvcmVkID0gbWVudGlvbmVkLm1hcChlbnRyeSA9PiB7XG5cbiAgICAgIGNvbnN0IGNvbHVtbiA9IHsgLi4uYnlJZC5nZXQoZW50cnkuaWQpIH07XG5cbiAgICAgIGlmIChlbnRyeS53aWR0aCAhPSBudWxsKSBjb2x1bW4ud2lkdGggPSBlbnRyeS53aWR0aDtcbiAgICAgIGlmICgncGlubmVkJyBpbiBlbnRyeSkgY29sdW1uLnBpbm5lZCA9IGVudHJ5LnBpbm5lZCA/PyB1bmRlZmluZWQ7XG4gICAgICBpZiAoJ2hpZGUnIGluIGVudHJ5KSBjb2x1bW4uaGlkZSA9ICEhZW50cnkuaGlkZTtcblxuICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3QgPSB0aGlzLmFsbENvbHVtbkRlZnMuZmlsdGVyKGNvbHVtbiA9PiAhbWVudGlvbmVkSWRzLmhhcyhjb2x1bW4uaWQpKTtcblxuICAgIHRoaXMuY29tbWl0KFsuLi5yZXN0b3JlZCwgLi4ucmVzdF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyb3VwIEhlYWRlciBDb2x1bW5zXG4gICAqL1xuICBwcml2YXRlIHJlY2FsY3VsYXRlR3JvdXBzKGNvbHVtbkRlZnM6IE9uZUNvbHVtbkRlZltdKSB7XG5cbiAgICBpZiAodGhpcy5ncm91cENvbHVtbkRlZnMkLmdldFZhbHVlKCkubGVuZ3RoID4gMCkge1xuXG4gICAgICBjb25zdCBncm91cHMgPSB0aGlzLmdyb3VwQ29sdW1uRGVmcyQudmFsdWUubWFwKGdyb3VwID0+ICh7XG4gICAgICAgIC4uLmdyb3VwLFxuICAgICAgICB3aWR0aDogY29sdW1uRGVmcy5maWx0ZXIoYyA9PiBjLmdyb3VwSWQgPT09IGdyb3VwLmlkKS5yZWR1Y2UoKHN1bSwgY29sKSA9PiBzdW0gKyByZXNvbHZlQ29sdW1uV2lkdGgoY29sKSwgMClcbiAgICAgIH0pKTtcblxuICAgICAgdGhpcy5ncm91cENvbHVtbkRlZnMkLm5leHQoZ3JvdXBzKTtcbiAgICB9XG4gIH1cblxuICByZXNvbHZlR3JvdXBQcmVzZW50YXRpb24oY29sOiBPbmVHcm91cENvbHVtbkRlZiwgcGFyYW1zPzogT25lQ2VsbFJlbmRlcmVyUGFyYW1zKTogT25lR3JvdXBDb2x1bW5EZWYge1xuXG4gICAgY29sLl9yZXNvbHZlZEdyb3VwQ2xhc3MgPSB0eXBlb2YgY29sLmdyb3VwQ2xhc3MgPT09ICdmdW5jdGlvbicgPyBjb2wuZ3JvdXBDbGFzcyhwYXJhbXMpIDogY29sLmdyb3VwQ2xhc3M7XG4gICAgY29sLl9yZXNvbHZlZEdyb3VwU3R5bGUgPSB0eXBlb2YgY29sLmdyb3VwU3R5bGUgPT09ICdmdW5jdGlvbicgPyBjb2wuZ3JvdXBTdHlsZShwYXJhbXMpIDogY29sLmdyb3VwU3R5bGU7XG5cbiAgICByZXR1cm4gY29sO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgYSBjb2x1bW4ncyBoZWFkZXIgcHJlc2VudGF0aW9uLiBPbmNlIHBlciBjb2x1bW4sIHdoZW4gdGhlIGNvbHVtbnNcbiAgICogYXJlIHNldCDigJQgYSBoZWFkZXIgaXMgb25lIGNlbGwgZm9yIHRoZSB3aG9sZSBjb2x1bW4sIHNvIHRoZXJlIGlzIG5vIHJvdyB0b1xuICAgKiByZXNvbHZlIGl0IGFnYWluc3QgYW5kIG5vdGhpbmcgdG8gcmVkbyBwZXIgcmVuZGVyLlxuICAgKlxuICAgKiBUaGlzIHVzZWQgdG8gcmVzb2x2ZSB0aGUgY2VsbCBob29rcyB0b28sIGZyb20gdGhlIHNhbWUgY2FsbCwgd2l0aCBubyBwYXJhbXNcbiAgICogYXQgYWxsLiBUd28gYnVncyBjYW1lIG91dCBvZiB0aGF0OiBhbnkgY2FsbGJhY2sgdG91Y2hpbmcgYHBhcmFtc2AgdGhyZXcgYVxuICAgKiBUeXBlRXJyb3IgYXQgaW5pdCwgYW5kIHRoZSBoZWFkZXIncyByZXNvbHZlZCB2YWx1ZSB3YXMgdGhlbiBvdmVyd3JpdHRlbiBieVxuICAgKiBldmVyeSBjZWxsIHRoYXQgcmVuZGVyZWQsIHNpbmNlIHRoZSBib2R5IHJlLXJhbiB0aGUgc2FtZSBtZXRob2QgcGVyIGNlbGxcbiAgICogd2l0aCByb3cgcGFyYW1zLiBJbiBkZXYgbW9kZSB0aGUgZGlzYWdyZWVtZW50IHN1cmZhY2VkIGFzIE5HMDEwMC5cbiAgICovXG4gIHJlc29sdmVIZWFkZXJQcmVzZW50YXRpb24oY29sOiBPbmVDb2x1bW5EZWYpOiBPbmVDb2x1bW5EZWYge1xuXG4gICAgY29uc3QgcGFyYW1zOiBPbmVIZWFkZXJQcmVzZW50YXRpb25QYXJhbXMgPSB7XG4gICAgICBjb2x1bW5EZWY6IGNvbCxcbiAgICAgIGZpZWxkOiBjb2wuZmllbGQgYXMgc3RyaW5nLFxuICAgICAgY29udGV4dDogdGhpcy5jb250ZXh0LFxuICAgIH07XG5cbiAgICBjb2wuX3Jlc29sdmVkSGVhZGVyQ2xhc3MgPSB0eXBlb2YgY29sLmhlYWRlckNsYXNzID09PSAnZnVuY3Rpb24nID8gY29sLmhlYWRlckNsYXNzKHBhcmFtcykgOiBjb2wuaGVhZGVyQ2xhc3M7XG4gICAgY29sLl9yZXNvbHZlZEhlYWRlclN0eWxlID0gdHlwZW9mIGNvbC5oZWFkZXJTdHlsZSA9PT0gJ2Z1bmN0aW9uJyA/IGNvbC5oZWFkZXJTdHlsZShwYXJhbXMpIDogY29sLmhlYWRlclN0eWxlO1xuXG4gICAgLy8gVGhlIGhlYWRlcidzIG93biBwcmVkaWNhdGVzLiBEZWNsYXJlZCBhcyBgYm9vbGVhbiB8ICgocGFyYW1zKSA9PiBib29sZWFuKWBcbiAgICAvLyBhbmQgcmVhZCBzdHJhaWdodCBvZmYgdGhlIGNvbHVtbiBpbiB0aGUgdGVtcGxhdGUsIHdoZXJlIGEgZnVuY3Rpb24gaXNcbiAgICAvLyBzaW1wbHkgdHJ1dGh5IOKAlCBzbyBgc29ydGFibGU6ICgpID0+IGZhbHNlYCByZW5kZXJlZCBhIHNvcnQgYnV0dG9uIHRoYXQgYVxuICAgIC8vIGNvbnN1bWVyIGhhZCBleHBsaWNpdGx5IGFza2VkIG5vdCB0byBoYXZlLiBSZXNvbHZlZCBoZXJlIHRvIGEgcmVhbFxuICAgIC8vIGJvb2xlYW4sIG9uY2UsIGJlY2F1c2Ugbm9uZSBvZiB0aGVtIGRlcGVuZHMgb24gYSByb3cuXG4gICAgY29sLl9yZXNvbHZlZFNvcnRhYmxlID0gcmVzb2x2ZU9uZUNlbGxSZW5kZXJlclBhcmFtcyhjb2wuc29ydGFibGUsIHBhcmFtcyk7XG4gICAgY29sLl9yZXNvbHZlZFJlc2l6YWJsZSA9IHJlc29sdmVPbmVDZWxsUmVuZGVyZXJQYXJhbXMoY29sLnJlc2l6YWJsZSwgcGFyYW1zKTtcbiAgICBjb2wuX3Jlc29sdmVkRHJhZ2FibGUgPSByZXNvbHZlT25lQ2VsbFJlbmRlcmVyUGFyYW1zKGNvbC5kcmFnYWJsZSwgcGFyYW1zKTtcbiAgICBjb2wuX3Jlc29sdmVkRmlsdGVyYWJsZSA9IHJlc29sdmVPbmVDZWxsUmVuZGVyZXJQYXJhbXMoY29sLmZpbHRlcmFibGUsIHBhcmFtcyk7XG4gICAgY29sLl9yZXNvbHZlZFN1cHByZXNzSGVhZGVyTWVudUJ1dHRvbiA9IHJlc29sdmVPbmVDZWxsUmVuZGVyZXJQYXJhbXMoY29sLnN1cHByZXNzSGVhZGVyTWVudUJ1dHRvbiwgcGFyYW1zKTtcblxuICAgIHJldHVybiBjb2w7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSBvbmUgY2VsbCdzIGNsYXNzLCBmb3Igb25lIHJvdy5cbiAgICpcbiAgICogUHVyZTogdGhlIHJlc3VsdCBpcyByZXR1cm5lZCByYXRoZXIgdGhhbiB3cml0dGVuIGJhY2sgb250byB0aGUgY29sdW1uIGRlZixcbiAgICogd2hpY2ggZXZlcnkgcm93IG9mIHRoYXQgY29sdW1uIHNoYXJlcy4gV3JpdGluZyB0byBpdCB3b3JrZWQgb25seSBiZWNhdXNlXG4gICAqIHRoZSB0ZW1wbGF0ZSByZXNvbHZlZCBhbmQgcmVhZCBpbiB0aGUgc2FtZSBleHByZXNzaW9uIOKAlCBvbmUgcmVuZGVyIG9yZGVyXG4gICAqIGF3YXkgZnJvbSBldmVyeSByb3cgc2hvd2luZyB0aGUgbGFzdCByb3cncyBjbGFzcy5cbiAgICovXG4gIHJlc29sdmVDZWxsQ2xhc3MoY29sOiBPbmVDb2x1bW5EZWYsIHBhcmFtczogT25lQ2VsbFByZXNlbnRhdGlvblBhcmFtcyk6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcblxuICAgIHJldHVybiB0eXBlb2YgY29sPy5jZWxsQ2xhc3MgPT09ICdmdW5jdGlvbicgPyBjb2wuY2VsbENsYXNzKHBhcmFtcykgOiBjb2w/LmNlbGxDbGFzcztcbiAgfVxuXG4gIC8qKiBSZXNvbHZlIG9uZSBjZWxsJ3MgaW5saW5lIHN0eWxlLCBmb3Igb25lIHJvdy4gUHVyZSwgYXMgYWJvdmUuICovXG4gIHJlc29sdmVDZWxsU3R5bGUoY29sOiBPbmVDb2x1bW5EZWYsIHBhcmFtczogT25lQ2VsbFByZXNlbnRhdGlvblBhcmFtcyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQge1xuXG4gICAgcmV0dXJuIHR5cGVvZiBjb2w/LmNlbGxTdHlsZSA9PT0gJ2Z1bmN0aW9uJyA/IGNvbC5jZWxsU3R5bGUocGFyYW1zKSA6IGNvbD8uY2VsbFN0eWxlO1xuICB9XG59Il19
|
|
321
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ctY29sdW1uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2NvcmUvc2VydmljZXMvb2ctY29sdW1uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFHdkcsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFHVSxxQkFBZ0IsR0FBaUIsSUFBSSxDQUFDO1FBRTlDOzs7V0FHRztRQUNLLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFFaEM7Ozs7OztXQU1HO1FBQ0ssa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFzQixFQUFFLENBQUMsQ0FBQztLQXFZekU7SUFuWUMsY0FBYyxDQUFDLGdCQUE4QixFQUFFLFVBQTBCLEVBQUUsZUFBb0MsRUFBRSxVQUFtQixJQUFJO1FBRXRJLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUV6QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUV2QixJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCO1FBRWQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjO1FBRVos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LFNBQVMsQ0FBQztJQUN2RixDQUFDO0lBRUQsb0VBQW9FO0lBQ3BFLGdCQUFnQixDQUFDLEdBQWlCLEVBQUUsTUFBaUM7UUFFbkUsT0FBTyxPQUFPLEdBQUcsRUFBRSxTQUFTLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDO0lBQ3ZGLENBQUM7K0dBdlpVLGVBQWU7bUhBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT25lQ2VsbFByZXNlbnRhdGlvblBhcmFtcywgT25lQ2VsbFJlbmRlcmVyUGFyYW1zLCBPbmVDb2x1bW5EZWYsIE9uZUNvbHVtblN0YXRlRW50cnksIE9uZUdyb3VwQ29sdW1uRGVmLCBPbmVIZWFkZXJQcmVzZW50YXRpb25QYXJhbXMgfSBmcm9tICcuLi9tb2RlbHMvb25lLWNvbHVtbi1kZWYtdHlwZXMubW9kZWwnO1xuaW1wb3J0IGxvZGFzaCBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQ29sdW1uQ2hhbmdlZEV2ZW50IH0gZnJvbSAnLi4vbW9kZWxzL29uZS1ldmVudC10eXBlcy5tb2RlbCc7XG5pbXBvcnQgeyByZXNvbHZlQ29sdW1uV2lkdGgsIHJlc29sdmVPbmVDZWxsUmVuZGVyZXJQYXJhbXMgfSBmcm9tICcuLi8uLi9oZWxwZXJzL29uZS1jb2x1bW4tZGVmLmhlbHBlcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPZ0NvbHVtblNlcnZpY2Uge1xuXG4gIHByaXZhdGUgZGVmYXVsdENvbHVtbkRlZjogT25lQ29sdW1uRGVmID0gbnVsbDtcblxuICAvKipcbiAgICogVGhlIGdyaWQncyBgY29udGV4dGAsIHNvIGhlYWRlciBjYWxsYmFja3MgcmVjZWl2ZSB0aGUgc2FtZSBvbmUgY2VsbFxuICAgKiBjYWxsYmFja3MgZG8uIFNldCBkdXJpbmcgaW5pdDsgbnVsbCBpbiBhIGJhcmUgc2VydmljZS5cbiAgICovXG4gIHByaXZhdGUgY29udGV4dDogdW5rbm93biA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEV2ZXJ5IGNvbHVtbiwgaGlkZGVuIG9uZXMgaW5jbHVkZWQsIGluIGRpc3BsYXkgb3JkZXIuIGBjb2x1bW5EZWZzJGAgYmVsb3dcbiAgICogY2FycmllcyBvbmx5IHRoZSB2aXNpYmxlIHN1YnNldCDigJQgaXQgaXMgd2hhdCB0aGUgaGVhZGVyIGFuZCBib2R5IHJlbmRlclxuICAgKiBmcm9tLCBzbyBoaWRpbmcgYSBjb2x1bW4gbWVhbnMgbGVhdmluZyBpdCBvdXQgb2YgdGhlIGVtaXNzaW9uLCBhbmQgZXZlcnlcbiAgICogY29uc3VtZXIga2VlcHMgd29ya2luZyB3aXRoIG5vIG5vdGlvbiBvZiB2aXNpYmlsaXR5IGF0IGFsbC4gVGhpcyBsaXN0IGlzXG4gICAqIHdoYXQgcmVtZW1iZXJzIGEgaGlkZGVuIGNvbHVtbidzIHBsYWNlLCB3aWR0aCBhbmQgcGluIGZvciB3aGVuIGl0IHJldHVybnMuXG4gICAqL1xuICBwcml2YXRlIGFsbENvbHVtbkRlZnM6IE9uZUNvbHVtbkRlZltdID0gW107XG4gIHByaXZhdGUgY29sdW1uRGVmcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE9uZUNvbHVtbkRlZltdPihbXSk7XG4gIHByaXZhdGUgZ3JvdXBDb2x1bW5EZWZzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T25lR3JvdXBDb2x1bW5EZWZbXT4oW10pO1xuXG4gIGluaXRDb2x1bW5EZWZzKGRlZmF1bHRDb2x1bW5EZWY6IE9uZUNvbHVtbkRlZiwgY29sdW1uRGVmczogT25lQ29sdW1uRGVmW10sIGdyb3VwQ29sdW1uRGVmczogT25lR3JvdXBDb2x1bW5EZWZbXSwgY29udGV4dDogdW5rbm93biA9IG51bGwpOiB2b2lkIHtcblxuICAgIHRoaXMuZGVmYXVsdENvbHVtbkRlZiA9IGRlZmF1bHRDb2x1bW5EZWY7XG5cbiAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuXG4gICAgdGhpcy5zZXRHcm91cENvbHVtbkRlZnMoZ3JvdXBDb2x1bW5EZWZzKTtcbiAgICBcbiAgICB0aGlzLnNldENvbHVtbkRlZnMoY29sdW1uRGVmcyk7XG4gIH1cblxuICAvKipcbiAgICogRXZlcnkgcmVnaXN0ZXJlZCBjb2x1bW4sIGhpZGRlbiBvbmVzIGluY2x1ZGVkLCBpbiBkaXNwbGF5IG9yZGVyLlxuICAgKlxuICAgKiBgZ2V0Q29sdW1uU3RhdGVgIGFuc3dlcnMgd2hhdCBpcyBvbiBzY3JlZW47IHRoaXMgYW5zd2VycyB3aGF0IHRoZSBncmlkXG4gICAqIGtub3dzIGFib3V0IOKAlCB3aGljaCBpcyB3aGF0IGFueXRoaW5nIHJlYWRpbmcgYSBjb2x1bW4ncyAqY29uZmlndXJhdGlvbipcbiAgICogKGFuIGBhZ2dGdW5jYCwgc2F5KSBuZWVkcywgc2luY2UgaGlkaW5nIGEgY29sdW1uIGRvZXMgbm90IHVuY29uZmlndXJlIGl0LlxuICAgKi9cbiAgZ2V0QWxsQ29sdW1uRGVmcygpOiByZWFkb25seSBPbmVDb2x1bW5EZWZbXSB7XG5cbiAgICByZXR1cm4gdGhpcy5hbGxDb2x1bW5EZWZzO1xuICB9XG5cbiAgZ2V0Q29sdW1uU3RhdGUoKTogQ29sdW1uQ2hhbmdlZEV2ZW50IHtcblxuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmNvbHVtbkRlZnMkLmdldFZhbHVlKCk7XG5cbiAgICBjb25zdCBncm91cHMgPSB0aGlzLmdyb3VwQ29sdW1uRGVmcyQuZ2V0VmFsdWUoKTtcblxuICAgIHJldHVybiB7IGNvbHVtbnMsIGdyb3VwcyB9O1xuICB9XG5cbiAgc2V0R3JvdXBDb2x1bW5EZWZzKGdyb3VwQ29sdW1uRGVmczogT25lR3JvdXBDb2x1bW5EZWZbXSk6IHZvaWQge1xuXG4gICAgY29uc3QgZ3JvdXBzID0gZ3JvdXBDb2x1bW5EZWZzLm1hcCgoZ3JvdXA6IE9uZUdyb3VwQ29sdW1uRGVmKSA9PiB0aGlzLnJlc29sdmVHcm91cFByZXNlbnRhdGlvbihncm91cCwgeyBjb250ZXh0OiB0aGlzLmNvbnRleHQgfSkpO1xuXG4gICAgdGhpcy5ncm91cENvbHVtbkRlZnMkLm5leHQoZ3JvdXBzKTtcbiAgfVxuXG4gIHNldENvbHVtbkRlZnMoY29sdW1uRGVmczogT25lQ29sdW1uRGVmW10pOiB2b2lkIHtcblxuICAgIGNvbnN0IGNvbHVtbnMgPSBjb2x1bW5EZWZzLm1hcCgoY29sOiBPbmVDb2x1bW5EZWYpID0+IHtcblxuICAgICAgY29uc3QgY29sdW1uID0ge1xuICAgICAgICAuLi50aGlzLmRlZmF1bHRDb2x1bW5EZWYsXG4gICAgICAgIC4uLmNvbCxcbiAgICAgICAgaWQ6IGNvbD8uZmllbGQgPyBjb2wuZmllbGQgOiBsb2Rhc2gudW5pcXVlSWQoJ2NvbF8nKSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiB0aGlzLnJlc29sdmVIZWFkZXJQcmVzZW50YXRpb24oY29sdW1uKTtcbiAgICB9KTtcblxuICAgIHRoaXMuY29tbWl0KGNvbHVtbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlLWJhbmQsIHJlLW1lYXN1cmUgYW5kIHB1Ymxpc2ggYSBuZXcgY29sdW1uIGxpc3QuXG4gICAqXG4gICAqIEV2ZXJ5IG11dGF0aW9uIGZ1bm5lbHMgaGVyZSBzbyB0aGUgbWFzdGVyIGxpc3QgYW5kIHRoZSB2aXNpYmxlIGVtaXNzaW9uXG4gICAqIGNhbm5vdCBkcmlmdCBhcGFydC5cbiAgICovXG4gIHByaXZhdGUgY29tbWl0KGNvbHVtbnM6IE9uZUNvbHVtbkRlZltdKTogdm9pZCB7XG5cbiAgICBjb25zdCBvcmRlcmVkID0gdGhpcy5hcHBseVBpbm5pbmcoY29sdW1ucyk7XG5cbiAgICB0aGlzLmFsbENvbHVtbkRlZnMgPSBvcmRlcmVkO1xuXG4gICAgY29uc3QgdmlzaWJsZSA9IG9yZGVyZWQuZmlsdGVyKGNvbHVtbiA9PiAhY29sdW1uLmhpZGUpO1xuXG4gICAgdGhpcy5yZWNhbGN1bGF0ZUdyb3Vwcyh2aXNpYmxlKTtcblxuICAgIHRoaXMuY29sdW1uRGVmcyQubmV4dCh2aXNpYmxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIHBpbm5lZCBjb2x1bW5zIHRvIHRoZWlyIGVkZ2UgYW5kIG1lYXN1cmUgaG93IGZhciBpbiBlYWNoIG9uZSBzaXRzLlxuICAgKlxuICAgKiBEaXNwbGF5IG9yZGVyIGJlY29tZXMgbGVmdC1waW5uZWQsIHVucGlubmVkLCByaWdodC1waW5uZWQsIHdpdGggZGVjbGFyZWRcbiAgICogb3JkZXIgcHJlc2VydmVkIGluc2lkZSBlYWNoIGJhbmQuIGBfcGlubmVkT2Zmc2V0YCBpcyB0aGUgZGlzdGFuY2UgZnJvbSB0aGF0XG4gICAqIGNvbHVtbidzIG93biBlZGdlIOKAlCB0aGUgc3VtIG9mIHRoZSB3aWR0aHMgb2YgdGhlIHBpbm5lZCBjb2x1bW5zIG91dHNpZGUgaXRcbiAgICog4oCUIHdoaWNoIGlzIHdoYXQgdGhlIHN0aWNreSBgbGVmdGAgLyBgcmlnaHRgIGJpbmRpbmcgbmVlZHMuXG4gICAqXG4gICAqIFdpdGggbm90aGluZyBwaW5uZWQgdGhpcyByZXR1cm5zIHRoZSBzYW1lIGFycmF5LCBpbiB0aGUgc2FtZSBvcmRlciwgc28gYVxuICAgKiBncmlkIHRoYXQgZG9lcyBub3QgdXNlIHRoZSBmZWF0dXJlIGlzIHVuYWZmZWN0ZWQuXG4gICAqL1xuICBwcml2YXRlIGFwcGx5UGlubmluZyhjb2x1bW5zOiBPbmVDb2x1bW5EZWZbXSk6IE9uZUNvbHVtbkRlZltdIHtcblxuICAgIGNvbnN0IGxlZnQgPSBjb2x1bW5zLmZpbHRlcihjb2x1bW4gPT4gY29sdW1uLnBpbm5lZCA9PT0gJ2xlZnQnKTtcbiAgICBjb25zdCByaWdodCA9IGNvbHVtbnMuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4ucGlubmVkID09PSAncmlnaHQnKTtcblxuICAgIGlmICghbGVmdC5sZW5ndGggJiYgIXJpZ2h0Lmxlbmd0aCkge1xuXG4gICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5zKSB7XG5cbiAgICAgICAgY29sdW1uLl9waW5uZWRPZmZzZXQgPSBudWxsO1xuICAgICAgICBjb2x1bW4uX3Bpbm5lZEVkZ2UgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbHVtbnM7XG4gICAgfVxuXG4gICAgY29uc3QgY2VudGVyID0gY29sdW1ucy5maWx0ZXIoY29sdW1uID0+IGNvbHVtbi5waW5uZWQgIT09ICdsZWZ0JyAmJiBjb2x1bW4ucGlubmVkICE9PSAncmlnaHQnKTtcblxuICAgIC8vIEhpZGRlbiBjb2x1bW5zIGtlZXAgdGhlaXIgcGxhY2UgaW4gdGhlIGJhbmQgYnV0IHRha2UgdXAgbm8gc3BhY2UsIHNvXG4gICAgLy8gdGhleSBhcmUgc2tpcHBlZCB3aGVuIG1lYXN1cmluZyBvZmZzZXRzIGFuZCBuZXZlciBjYXJyeSB0aGUgZGl2aWRlci5cbiAgICBsZXQgb2Zmc2V0ID0gMDtcblxuICAgIGZvciAoY29uc3QgY29sdW1uIG9mIGxlZnQpIHtcblxuICAgICAgY29sdW1uLl9waW5uZWRPZmZzZXQgPSBvZmZzZXQ7XG4gICAgICBjb2x1bW4uX3Bpbm5lZEVkZ2UgPSBmYWxzZTtcblxuICAgICAgaWYgKCFjb2x1bW4uaGlkZSkgb2Zmc2V0ICs9IHJlc29sdmVDb2x1bW5XaWR0aChjb2x1bW4pO1xuICAgIH1cblxuICAgIC8vIFJpZ2h0LXBpbm5lZCBjb2x1bW5zIGFyZSBtZWFzdXJlZCBmcm9tIHRoZSByaWdodCBlZGdlIGlud2FyZHMsIHNvIHRoZVxuICAgIC8vIGxhc3QgZGVjbGFyZWQgb25lIHNpdHMgZmx1c2ggYW5kIHRoZSBlYXJsaWVyIG9uZXMgc3RhY2sgb3V0c2lkZSBpdC5cbiAgICBvZmZzZXQgPSAwO1xuXG4gICAgZm9yIChsZXQgaW5kZXggPSByaWdodC5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleC0tKSB7XG5cbiAgICAgIHJpZ2h0W2luZGV4XS5fcGlubmVkT2Zmc2V0ID0gb2Zmc2V0O1xuICAgICAgcmlnaHRbaW5kZXhdLl9waW5uZWRFZGdlID0gZmFsc2U7XG5cbiAgICAgIGlmICghcmlnaHRbaW5kZXhdLmhpZGUpIG9mZnNldCArPSByZXNvbHZlQ29sdW1uV2lkdGgocmlnaHRbaW5kZXhdKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjZW50ZXIpIHtcblxuICAgICAgY29sdW1uLl9waW5uZWRPZmZzZXQgPSBudWxsO1xuICAgICAgY29sdW1uLl9waW5uZWRFZGdlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gT25seSB0aGUgaW5uZXJtb3N0IHZpc2libGUgY29sdW1uIG9mIGVhY2ggYmFuZCBjYXJyaWVzIHRoZSBkaXZpZGVyLCBzb1xuICAgIC8vIHN0YWNrZWQgcGlubmVkIGNvbHVtbnMgZG8gbm90IGVhY2ggY2FzdCBhIHNoYWRvdyBvbnRvIHRoZSBuZXh0LlxuICAgIGNvbnN0IGxlZnRWaXNpYmxlID0gbGVmdC5maWx0ZXIoY29sdW1uID0+ICFjb2x1bW4uaGlkZSk7XG4gICAgY29uc3QgcmlnaHRWaXNpYmxlID0gcmlnaHQuZmlsdGVyKGNvbHVtbiA9PiAhY29sdW1uLmhpZGUpO1xuXG4gICAgaWYgKGxlZnRWaXNpYmxlLmxlbmd0aCkgbGVmdFZpc2libGVbbGVmdFZpc2libGUubGVuZ3RoIC0gMV0uX3Bpbm5lZEVkZ2UgPSB0cnVlO1xuICAgIGlmIChyaWdodFZpc2libGUubGVuZ3RoKSByaWdodFZpc2libGVbMF0uX3Bpbm5lZEVkZ2UgPSB0cnVlO1xuXG4gICAgcmV0dXJuIFsuLi5sZWZ0LCAuLi5jZW50ZXIsIC4uLnJpZ2h0XTtcbiAgfVxuXG4gIC8qKiBUb3RhbCB3aWR0aCBvZiB0aGUgdmlzaWJsZSBjb2x1bW5zIGZyb3plbiBhZ2FpbnN0IHRoZSBnaXZlbiBlZGdlLiAqL1xuICBwdWJsaWMgZ2V0UGlubmVkV2lkdGgoc2lkZTogJ2xlZnQnIHwgJ3JpZ2h0Jyk6IG51bWJlciB7XG5cbiAgICByZXR1cm4gdGhpcy5jb2x1bW5EZWZzJC5nZXRWYWx1ZSgpXG4gICAgICAuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4ucGlubmVkID09PSBzaWRlKVxuICAgICAgLnJlZHVjZSgodG90YWwsIGNvbHVtbikgPT4gdG90YWwgKyByZXNvbHZlQ29sdW1uV2lkdGgoY29sdW1uKSwgMCk7XG4gIH1cblxuICAvLyBVcGRhdGUgc2luZ2xlIGNvbHVtbi4gV29ya3Mgb24gdGhlIG1hc3RlciBsaXN0LCBzbyBhIGhpZGRlbiBjb2x1bW4gY2FuIGJlXG4gIC8vIHBhdGNoZWQg4oCUIGluY2x1ZGluZyBgaGlkZWAgaXRzZWxmLCB3aGljaCBpcyBob3cgdmlzaWJpbGl0eSB0b2dnbGVzLlxuICB1cGRhdGVDb2x1bW5EZWYoaWQ6IHN0cmluZywgY2hhbmdlczogUGFydGlhbDxPbmVDb2x1bW5EZWY+KTogdm9pZCB7XG5cbiAgICBjb25zdCB1cGRhdGVkQ29sdW1ucyA9IHRoaXMuYWxsQ29sdW1uRGVmcy5tYXAoY29sID0+IGNvbC5pZCA9PT0gaWQgPyB7IC4uLmNvbCwgLi4uY2hhbmdlcyB9IDogY29sKTtcblxuICAgIC8vIFJlLXBpbm5lZCAoaW5zaWRlIGNvbW1pdCksIG5vdCBqdXN0IHJlLWdyb3VwZWQ6IHJlc2l6aW5nIGEgcGlubmVkIGNvbHVtblxuICAgIC8vIGNoYW5nZXMgd2hlcmUgdGhlIG9uZXMgaW5zaWRlIGl0IGhhdmUgdG8gc2l0LCBhbmQgdGhpcyBpcyB0aGUgcGF0aCBhXG4gICAgLy8gY29sdW1uIHJlc2l6ZSB0YWtlcy5cbiAgICB0aGlzLmNvbW1pdCh1cGRhdGVkQ29sdW1ucyk7XG4gIH1cblxuICAvKipcbiAgICogUmVvcmRlciBjb2x1bW5zLiBUaGUgaW5kZXhlcyBhcmUgKnZpc2libGUqIHBvc2l0aW9ucyDigJQgdGhleSBjb21lIGZyb20gdGhlXG4gICAqIGhlYWRlciwgd2hpY2ggb25seSByZW5kZXJzIHZpc2libGUgY29sdW1ucyDigJQgc28gdGhleSBhcmUgbWFwcGVkIG9udG8gdGhlXG4gICAqIG1hc3RlciBsaXN0IGJlZm9yZSBzcGxpY2luZy4gQSBoaWRkZW4gY29sdW1uIGJldHdlZW4gdGhlIHR3byBrZWVwcyBpdHNcbiAgICogcGxhY2UgcmVsYXRpdmUgdG8gaXRzIG5laWdoYm91cnMuXG4gICAqL1xuICByZW9yZGVyQ29sdW1uRGVmcyhmcm9tSW5kZXg6IG51bWJlciwgdG9JbmRleDogbnVtYmVyKTogdm9pZCB7XG5cbiAgICBjb25zdCBjb2x1bW5zID0gbG9kYXNoLmNsb25lKHRoaXMuYWxsQ29sdW1uRGVmcyk7XG4gICAgY29uc3QgdmlzaWJsZSA9IGNvbHVtbnMuZmlsdGVyKGNvbHVtbiA9PiAhY29sdW1uLmhpZGUpO1xuXG4gICAgY29uc3QgbW92ZWQgPSB2aXNpYmxlW2Zyb21JbmRleF07XG5cbiAgICBpZiAoIW1vdmVkKSByZXR1cm47XG5cbiAgICBjb2x1bW5zLnNwbGljZShjb2x1bW5zLmluZGV4T2YobW92ZWQpLCAxKTtcblxuICAgIC8vIExhbmQgYmVmb3JlIHRoZSB2aXNpYmxlIGNvbHVtbiBub3cgYXQgdGhlIHRhcmdldCBpbmRleCDigJQgdGhlIHNhbWUgc3BsaWNlXG4gICAgLy8gdGhlIHZpc2libGUtb25seSBsaXN0IHVzZWQgdG8gZG8gYWZ0ZXIgcmVtb3ZhbCDigJQgb3IgYXQgdGhlIGVuZCB3aGVuIHRoZVxuICAgIC8vIHRhcmdldCBpcyBwYXN0IHRoZSBsYXN0IHZpc2libGUgY29sdW1uLlxuICAgIGNvbnN0IHZpc2libGVBZnRlciA9IHZpc2libGUuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4gIT09IG1vdmVkKTtcbiAgICBjb25zdCBhbmNob3IgPSB2aXNpYmxlQWZ0ZXJbdG9JbmRleF07XG5cbiAgICBjb2x1bW5zLnNwbGljZShhbmNob3IgPyBjb2x1bW5zLmluZGV4T2YoYW5jaG9yKSA6IGNvbHVtbnMubGVuZ3RoLCAwLCBtb3ZlZCk7XG5cbiAgICAvLyBEcmFnZ2luZyBjYW4gZHJvcCBhIGNvbHVtbiBiZXR3ZWVuIHR3byBwaW5uZWQgb25lczsgcmUtcGlubmluZyAoaW5zaWRlXG4gICAgLy8gY29tbWl0KSBwdXRzIHRoZSBiYW5kcyBiYWNrIGluIG9yZGVyIHJhdGhlciB0aGFuIGxlYXZpbmcgdGhlbVxuICAgIC8vIGludGVybGVhdmVkLCB3aGljaCB3b3VsZCBtYWtlIHRoZSBjb21wdXRlZCBvZmZzZXRzIG1lYW5pbmdsZXNzLlxuICAgIHRoaXMuY29tbWl0KGNvbHVtbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3RyaWJ1dGUgdGhlIHZpZXdwb3J0IHdpZHRoIGxlZnQgb3ZlciBieSBmaXhlZCBjb2x1bW5zIGFtb25nIHRoZSBmbGV4XG4gICAqIG9uZXMsIGluIHByb3BvcnRpb24gdG8gdGhlaXIgYGZsZXhgIHZhbHVlcyBhbmQgY2xhbXBlZCB0byB0aGVpciBib3VuZHMuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgYW55IHdpZHRoIGFjdHVhbGx5IGNoYW5nZWQg4oCUIHRoZSBjYWxsZXIgb25seSBkaXNwYXRjaGVzXG4gICAqIChhbmQgdGhlIGJvZHkgb25seSByZS10cmlnZ2Vycykgb24gYSByZWFsIGNoYW5nZSwgd2hpY2ggaXMgd2hhdCB0ZXJtaW5hdGVzXG4gICAqIHRoZSBjb2x1bW5DaGFuZ2VkIOKGkiBmbGV4IOKGkiBjb2x1bW5DaGFuZ2VkIGxvb3AuXG4gICAqL1xuICBhcHBseUZsZXhXaWR0aHMoYXZhaWxhYmxlV2lkdGg6IG51bWJlcik6IGJvb2xlYW4ge1xuXG4gICAgY29uc3QgdmlzaWJsZSA9IHRoaXMuY29sdW1uRGVmcyQuZ2V0VmFsdWUoKTtcbiAgICBjb25zdCBmbGV4Q29sdW1ucyA9IHZpc2libGUuZmlsdGVyKGNvbHVtbiA9PiAoY29sdW1uLmZsZXggPz8gMCkgPiAwKTtcblxuICAgIGlmICghZmxleENvbHVtbnMubGVuZ3RoIHx8ICEoYXZhaWxhYmxlV2lkdGggPiAwKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgZml4ZWRXaWR0aCA9IHZpc2libGVcbiAgICAgIC5maWx0ZXIoY29sdW1uID0+ICEoKGNvbHVtbi5mbGV4ID8/IDApID4gMCkpXG4gICAgICAucmVkdWNlKCh0b3RhbCwgY29sdW1uKSA9PiB0b3RhbCArIHJlc29sdmVDb2x1bW5XaWR0aChjb2x1bW4pLCAwKTtcblxuICAgIGxldCByZW1haW5pbmcgPSBNYXRoLm1heChhdmFpbGFibGVXaWR0aCAtIGZpeGVkV2lkdGgsIDApO1xuXG4gICAgLy8gQ2xhbXBlZCBjb2x1bW5zIHN0b3AgZmxleGluZyBhbmQgcmVsZWFzZSB0aGVpciBzaGFyZSB0byB0aGUgcmVzdCwgc29cbiAgICAvLyB0aGUgcGFzcyByZXBlYXRzIHVudGlsIHRoZSBzcGxpdCBpcyBzdGFibGUuIEVhY2ggcGFzcyBzZXR0bGVzIGF0IGxlYXN0XG4gICAgLy8gb25lIGNvbHVtbjsgdGhlIGxvb3AgaXMgYm91bmRlZCBieSB0aGUgY29sdW1uIGNvdW50LlxuICAgIGNvbnN0IHdpZHRocyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gICAgbGV0IHVuc2V0dGxlZCA9IFsuLi5mbGV4Q29sdW1uc107XG5cbiAgICB3aGlsZSAodW5zZXR0bGVkLmxlbmd0aCkge1xuXG4gICAgICBjb25zdCB0b3RhbEZsZXggPSB1bnNldHRsZWQucmVkdWNlKCh0b3RhbCwgY29sdW1uKSA9PiB0b3RhbCArIChjb2x1bW4uZmxleCA/PyAwKSwgMCk7XG4gICAgICBjb25zdCBzaGFyZSA9IHJlbWFpbmluZyAvIHRvdGFsRmxleDtcblxuICAgICAgY29uc3QgY2xhbXBlZCA9IHVuc2V0dGxlZC5maWx0ZXIoY29sdW1uID0+IHtcblxuICAgICAgICBjb25zdCBpZGVhbCA9IHNoYXJlICogKGNvbHVtbi5mbGV4ID8/IDApO1xuICAgICAgICBjb25zdCBtaW4gPSBNYXRoLm1heChjb2x1bW4ubWluV2lkdGggPz8gMCwgNTApO1xuICAgICAgICBjb25zdCBtYXggPSBjb2x1bW4ubWF4V2lkdGggPz8gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgICAgICBjb25zdCB3aWR0aCA9IE1hdGgubWluKE1hdGgubWF4KGlkZWFsLCBtaW4pLCBtYXgpO1xuXG4gICAgICAgIGlmICh3aWR0aCA9PT0gaWRlYWwpIHJldHVybiBmYWxzZTtcblxuICAgICAgICB3aWR0aHMuc2V0KGNvbHVtbi5pZCwgTWF0aC5yb3VuZCh3aWR0aCkpO1xuICAgICAgICByZW1haW5pbmcgPSBNYXRoLm1heChyZW1haW5pbmcgLSB3aWR0aCwgMCk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KTtcblxuICAgICAgdW5zZXR0bGVkID0gdW5zZXR0bGVkLmZpbHRlcihjb2x1bW4gPT4gIWNsYW1wZWQuaW5jbHVkZXMoY29sdW1uKSk7XG5cbiAgICAgIGlmICghY2xhbXBlZC5sZW5ndGgpIHtcblxuICAgICAgICB1bnNldHRsZWQuZm9yRWFjaChjb2x1bW4gPT4gd2lkdGhzLnNldChjb2x1bW4uaWQsIE1hdGguZmxvb3Ioc2hhcmUgKiAoY29sdW1uLmZsZXggPz8gMCkpKSk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY2hhbmdlZCA9IGZsZXhDb2x1bW5zLnNvbWUoY29sdW1uID0+IHdpZHRocy5nZXQoY29sdW1uLmlkKSAhPT0gcmVzb2x2ZUNvbHVtbldpZHRoKGNvbHVtbikpO1xuXG4gICAgaWYgKCFjaGFuZ2VkKSByZXR1cm4gZmFsc2U7XG5cbiAgICB0aGlzLmNvbW1pdCh0aGlzLmFsbENvbHVtbkRlZnMubWFwKGNvbHVtbiA9PlxuICAgICAgd2lkdGhzLmhhcyhjb2x1bW4uaWQpID8geyAuLi5jb2x1bW4sIHdpZHRoOiB3aWR0aHMuZ2V0KGNvbHVtbi5pZCkgfSA6IGNvbHVtbikpO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogT25lIEpTT04tc2FmZSBlbnRyeSBwZXIgY29sdW1uIOKAlCBoaWRkZW4gb25lcyBpbmNsdWRlZCDigJQgaW4gZGlzcGxheSBvcmRlci5cbiAgICovXG4gIGdldENvbHVtblN0YXRlU25hcHNob3QoKTogT25lQ29sdW1uU3RhdGVFbnRyeVtdIHtcblxuICAgIHJldHVybiB0aGlzLmFsbENvbHVtbkRlZnMubWFwKGNvbHVtbiA9PiB7XG5cbiAgICAgIGNvbnN0IGVudHJ5OiBPbmVDb2x1bW5TdGF0ZUVudHJ5ID0geyBpZDogY29sdW1uLmlkLCBoaWRlOiAhIWNvbHVtbi5oaWRlLCBwaW5uZWQ6IGNvbHVtbi5waW5uZWQgPz8gbnVsbCB9O1xuXG4gICAgICBpZiAoY29sdW1uLndpZHRoICE9IG51bGwpIGVudHJ5LndpZHRoID0gY29sdW1uLndpZHRoO1xuXG4gICAgICByZXR1cm4gZW50cnk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzdG9yZSBhIHNhdmVkIHNuYXBzaG90OiBvcmRlciwgd2lkdGgsIHBpbiBhbmQgdmlzaWJpbGl0eS5cbiAgICpcbiAgICogRW50cmllcyBhcmUgYXBwbGllZCBpbiB0aGUgb3JkZXIgZ2l2ZW4gYW5kIGJlY29tZSB0aGUgZnJvbnQgb2YgdGhlIG5ld1xuICAgKiBjb2x1bW4gb3JkZXI7IGNvbHVtbnMgdGhlIHNuYXBzaG90IGRvZXMgbm90IG1lbnRpb24ga2VlcCB0aGVpciBjdXJyZW50XG4gICAqIHJlbGF0aXZlIG9yZGVyIGJlaGluZCB0aGVtLCBhbmQgaWRzIHRoZSBncmlkIG5vIGxvbmdlciBoYXMgYXJlIHNraXBwZWQg4oCUXG4gICAqIHNvIGEgc3RhbGUgc25hcHNob3QgZGVncmFkZXMgdG8gYSBwYXJ0aWFsIHJlc3RvcmUgaW5zdGVhZCBvZiBhbiBlcnJvci5cbiAgICogT25seSB0aGUgcHJvcGVydGllcyBwcmVzZW50IG9uIGFuIGVudHJ5IGFyZSBhcHBsaWVkLlxuICAgKi9cbiAgYXBwbHlDb2x1bW5TdGF0ZShlbnRyaWVzOiBPbmVDb2x1bW5TdGF0ZUVudHJ5W10pOiB2b2lkIHtcblxuICAgIGNvbnN0IGJ5SWQgPSBuZXcgTWFwKHRoaXMuYWxsQ29sdW1uRGVmcy5tYXAoY29sdW1uID0+IFtjb2x1bW4uaWQsIGNvbHVtbl0pKTtcblxuICAgIGNvbnN0IG1lbnRpb25lZCA9IChlbnRyaWVzID8/IFtdKS5maWx0ZXIoZW50cnkgPT4gZW50cnkgJiYgYnlJZC5oYXMoZW50cnkuaWQpKTtcbiAgICBjb25zdCBtZW50aW9uZWRJZHMgPSBuZXcgU2V0KG1lbnRpb25lZC5tYXAoZW50cnkgPT4gZW50cnkuaWQpKTtcblxuICAgIGNvbnN0IHJlc3RvcmVkID0gbWVudGlvbmVkLm1hcChlbnRyeSA9PiB7XG5cbiAgICAgIGNvbnN0IGNvbHVtbiA9IHsgLi4uYnlJZC5nZXQoZW50cnkuaWQpIH07XG5cbiAgICAgIGlmIChlbnRyeS53aWR0aCAhPSBudWxsKSBjb2x1bW4ud2lkdGggPSBlbnRyeS53aWR0aDtcbiAgICAgIGlmICgncGlubmVkJyBpbiBlbnRyeSkgY29sdW1uLnBpbm5lZCA9IGVudHJ5LnBpbm5lZCA/PyB1bmRlZmluZWQ7XG4gICAgICBpZiAoJ2hpZGUnIGluIGVudHJ5KSBjb2x1bW4uaGlkZSA9ICEhZW50cnkuaGlkZTtcblxuICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3QgPSB0aGlzLmFsbENvbHVtbkRlZnMuZmlsdGVyKGNvbHVtbiA9PiAhbWVudGlvbmVkSWRzLmhhcyhjb2x1bW4uaWQpKTtcblxuICAgIHRoaXMuY29tbWl0KFsuLi5yZXN0b3JlZCwgLi4ucmVzdF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyb3VwIEhlYWRlciBDb2x1bW5zXG4gICAqL1xuICBwcml2YXRlIHJlY2FsY3VsYXRlR3JvdXBzKGNvbHVtbkRlZnM6IE9uZUNvbHVtbkRlZltdKSB7XG5cbiAgICBpZiAodGhpcy5ncm91cENvbHVtbkRlZnMkLmdldFZhbHVlKCkubGVuZ3RoID4gMCkge1xuXG4gICAgICBjb25zdCBncm91cHMgPSB0aGlzLmdyb3VwQ29sdW1uRGVmcyQudmFsdWUubWFwKGdyb3VwID0+ICh7XG4gICAgICAgIC4uLmdyb3VwLFxuICAgICAgICB3aWR0aDogY29sdW1uRGVmcy5maWx0ZXIoYyA9PiBjLmdyb3VwSWQgPT09IGdyb3VwLmlkKS5yZWR1Y2UoKHN1bSwgY29sKSA9PiBzdW0gKyByZXNvbHZlQ29sdW1uV2lkdGgoY29sKSwgMClcbiAgICAgIH0pKTtcblxuICAgICAgdGhpcy5ncm91cENvbHVtbkRlZnMkLm5leHQoZ3JvdXBzKTtcbiAgICB9XG4gIH1cblxuICByZXNvbHZlR3JvdXBQcmVzZW50YXRpb24oY29sOiBPbmVHcm91cENvbHVtbkRlZiwgcGFyYW1zPzogT25lQ2VsbFJlbmRlcmVyUGFyYW1zKTogT25lR3JvdXBDb2x1bW5EZWYge1xuXG4gICAgY29sLl9yZXNvbHZlZEdyb3VwQ2xhc3MgPSB0eXBlb2YgY29sLmdyb3VwQ2xhc3MgPT09ICdmdW5jdGlvbicgPyBjb2wuZ3JvdXBDbGFzcyhwYXJhbXMpIDogY29sLmdyb3VwQ2xhc3M7XG4gICAgY29sLl9yZXNvbHZlZEdyb3VwU3R5bGUgPSB0eXBlb2YgY29sLmdyb3VwU3R5bGUgPT09ICdmdW5jdGlvbicgPyBjb2wuZ3JvdXBTdHlsZShwYXJhbXMpIDogY29sLmdyb3VwU3R5bGU7XG5cbiAgICByZXR1cm4gY29sO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgYSBjb2x1bW4ncyBoZWFkZXIgcHJlc2VudGF0aW9uLiBPbmNlIHBlciBjb2x1bW4sIHdoZW4gdGhlIGNvbHVtbnNcbiAgICogYXJlIHNldCDigJQgYSBoZWFkZXIgaXMgb25lIGNlbGwgZm9yIHRoZSB3aG9sZSBjb2x1bW4sIHNvIHRoZXJlIGlzIG5vIHJvdyB0b1xuICAgKiByZXNvbHZlIGl0IGFnYWluc3QgYW5kIG5vdGhpbmcgdG8gcmVkbyBwZXIgcmVuZGVyLlxuICAgKlxuICAgKiBUaGlzIHVzZWQgdG8gcmVzb2x2ZSB0aGUgY2VsbCBob29rcyB0b28sIGZyb20gdGhlIHNhbWUgY2FsbCwgd2l0aCBubyBwYXJhbXNcbiAgICogYXQgYWxsLiBUd28gYnVncyBjYW1lIG91dCBvZiB0aGF0OiBhbnkgY2FsbGJhY2sgdG91Y2hpbmcgYHBhcmFtc2AgdGhyZXcgYVxuICAgKiBUeXBlRXJyb3IgYXQgaW5pdCwgYW5kIHRoZSBoZWFkZXIncyByZXNvbHZlZCB2YWx1ZSB3YXMgdGhlbiBvdmVyd3JpdHRlbiBieVxuICAgKiBldmVyeSBjZWxsIHRoYXQgcmVuZGVyZWQsIHNpbmNlIHRoZSBib2R5IHJlLXJhbiB0aGUgc2FtZSBtZXRob2QgcGVyIGNlbGxcbiAgICogd2l0aCByb3cgcGFyYW1zLiBJbiBkZXYgbW9kZSB0aGUgZGlzYWdyZWVtZW50IHN1cmZhY2VkIGFzIE5HMDEwMC5cbiAgICovXG4gIHJlc29sdmVIZWFkZXJQcmVzZW50YXRpb24oY29sOiBPbmVDb2x1bW5EZWYpOiBPbmVDb2x1bW5EZWYge1xuXG4gICAgY29uc3QgcGFyYW1zOiBPbmVIZWFkZXJQcmVzZW50YXRpb25QYXJhbXMgPSB7XG4gICAgICBjb2x1bW5EZWY6IGNvbCxcbiAgICAgIGZpZWxkOiBjb2wuZmllbGQgYXMgc3RyaW5nLFxuICAgICAgY29udGV4dDogdGhpcy5jb250ZXh0LFxuICAgIH07XG5cbiAgICBjb2wuX3Jlc29sdmVkSGVhZGVyQ2xhc3MgPSB0eXBlb2YgY29sLmhlYWRlckNsYXNzID09PSAnZnVuY3Rpb24nID8gY29sLmhlYWRlckNsYXNzKHBhcmFtcykgOiBjb2wuaGVhZGVyQ2xhc3M7XG4gICAgY29sLl9yZXNvbHZlZEhlYWRlclN0eWxlID0gdHlwZW9mIGNvbC5oZWFkZXJTdHlsZSA9PT0gJ2Z1bmN0aW9uJyA/IGNvbC5oZWFkZXJTdHlsZShwYXJhbXMpIDogY29sLmhlYWRlclN0eWxlO1xuXG4gICAgLy8gVGhlIGhlYWRlcidzIG93biBwcmVkaWNhdGVzLiBEZWNsYXJlZCBhcyBgYm9vbGVhbiB8ICgocGFyYW1zKSA9PiBib29sZWFuKWBcbiAgICAvLyBhbmQgcmVhZCBzdHJhaWdodCBvZmYgdGhlIGNvbHVtbiBpbiB0aGUgdGVtcGxhdGUsIHdoZXJlIGEgZnVuY3Rpb24gaXNcbiAgICAvLyBzaW1wbHkgdHJ1dGh5IOKAlCBzbyBgc29ydGFibGU6ICgpID0+IGZhbHNlYCByZW5kZXJlZCBhIHNvcnQgYnV0dG9uIHRoYXQgYVxuICAgIC8vIGNvbnN1bWVyIGhhZCBleHBsaWNpdGx5IGFza2VkIG5vdCB0byBoYXZlLiBSZXNvbHZlZCBoZXJlIHRvIGEgcmVhbFxuICAgIC8vIGJvb2xlYW4sIG9uY2UsIGJlY2F1c2Ugbm9uZSBvZiB0aGVtIGRlcGVuZHMgb24gYSByb3cuXG4gICAgY29sLl9yZXNvbHZlZFNvcnRhYmxlID0gcmVzb2x2ZU9uZUNlbGxSZW5kZXJlclBhcmFtcyhjb2wuc29ydGFibGUsIHBhcmFtcyk7XG4gICAgY29sLl9yZXNvbHZlZFJlc2l6YWJsZSA9IHJlc29sdmVPbmVDZWxsUmVuZGVyZXJQYXJhbXMoY29sLnJlc2l6YWJsZSwgcGFyYW1zKTtcbiAgICBjb2wuX3Jlc29sdmVkRHJhZ2FibGUgPSByZXNvbHZlT25lQ2VsbFJlbmRlcmVyUGFyYW1zKGNvbC5kcmFnYWJsZSwgcGFyYW1zKTtcbiAgICBjb2wuX3Jlc29sdmVkRmlsdGVyYWJsZSA9IHJlc29sdmVPbmVDZWxsUmVuZGVyZXJQYXJhbXMoY29sLmZpbHRlcmFibGUsIHBhcmFtcyk7XG4gICAgY29sLl9yZXNvbHZlZFN1cHByZXNzSGVhZGVyTWVudUJ1dHRvbiA9IHJlc29sdmVPbmVDZWxsUmVuZGVyZXJQYXJhbXMoY29sLnN1cHByZXNzSGVhZGVyTWVudUJ1dHRvbiwgcGFyYW1zKTtcblxuICAgIHJldHVybiBjb2w7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSBvbmUgY2VsbCdzIGNsYXNzLCBmb3Igb25lIHJvdy5cbiAgICpcbiAgICogUHVyZTogdGhlIHJlc3VsdCBpcyByZXR1cm5lZCByYXRoZXIgdGhhbiB3cml0dGVuIGJhY2sgb250byB0aGUgY29sdW1uIGRlZixcbiAgICogd2hpY2ggZXZlcnkgcm93IG9mIHRoYXQgY29sdW1uIHNoYXJlcy4gV3JpdGluZyB0byBpdCB3b3JrZWQgb25seSBiZWNhdXNlXG4gICAqIHRoZSB0ZW1wbGF0ZSByZXNvbHZlZCBhbmQgcmVhZCBpbiB0aGUgc2FtZSBleHByZXNzaW9uIOKAlCBvbmUgcmVuZGVyIG9yZGVyXG4gICAqIGF3YXkgZnJvbSBldmVyeSByb3cgc2hvd2luZyB0aGUgbGFzdCByb3cncyBjbGFzcy5cbiAgICovXG4gIHJlc29sdmVDZWxsQ2xhc3MoY29sOiBPbmVDb2x1bW5EZWYsIHBhcmFtczogT25lQ2VsbFByZXNlbnRhdGlvblBhcmFtcyk6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcblxuICAgIHJldHVybiB0eXBlb2YgY29sPy5jZWxsQ2xhc3MgPT09ICdmdW5jdGlvbicgPyBjb2wuY2VsbENsYXNzKHBhcmFtcykgOiBjb2w/LmNlbGxDbGFzcztcbiAgfVxuXG4gIC8qKiBSZXNvbHZlIG9uZSBjZWxsJ3MgaW5saW5lIHN0eWxlLCBmb3Igb25lIHJvdy4gUHVyZSwgYXMgYWJvdmUuICovXG4gIHJlc29sdmVDZWxsU3R5bGUoY29sOiBPbmVDb2x1bW5EZWYsIHBhcmFtczogT25lQ2VsbFByZXNlbnRhdGlvblBhcmFtcyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQge1xuXG4gICAgcmV0dXJuIHR5cGVvZiBjb2w/LmNlbGxTdHlsZSA9PT0gJ2Z1bmN0aW9uJyA/IGNvbC5jZWxsU3R5bGUocGFyYW1zKSA6IGNvbD8uY2VsbFN0eWxlO1xuICB9XG59Il19
|
|
@@ -8,10 +8,20 @@ export const ONE_GROUP_VALUE_FIELD = '__oneGroupValue';
|
|
|
8
8
|
export const ONE_GROUP_CHILDREN_FIELD = '__oneGroupChildren';
|
|
9
9
|
/** What a group of rows with no value in the grouped field is labelled. */
|
|
10
10
|
export const ONE_GROUP_BLANK_LABEL = '(Blank)';
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* The `rowGroup` fields of a column set, in definition order.
|
|
13
|
+
*
|
|
14
|
+
* Grouping keys on a row's own field, so a column that asks to group without
|
|
15
|
+
* one has nothing to group by — it is dropped, but not silently: that is a
|
|
16
|
+
* definition that reads as if it works.
|
|
17
|
+
*/
|
|
12
18
|
export function rowGroupFields(columns) {
|
|
13
|
-
|
|
14
|
-
|
|
19
|
+
const grouping = (columns ?? []).filter(column => column.rowGroup);
|
|
20
|
+
for (const column of grouping.filter(column => !column.field)) {
|
|
21
|
+
console.warn(`[one-grid] the column "${column.headerName ?? column.id ?? '(unnamed)'}" declares rowGroup but has no field — grouping reads the row's own value, so a valueGetter is not enough. The column was left ungrouped.`);
|
|
22
|
+
}
|
|
23
|
+
return grouping
|
|
24
|
+
.filter(column => column.field)
|
|
15
25
|
.map(column => column.field);
|
|
16
26
|
}
|
|
17
27
|
/** The `aggFunc` columns of a column set. */
|
|
@@ -100,4 +110,4 @@ export function aggregate(rows, field, aggFunc) {
|
|
|
100
110
|
default: return null;
|
|
101
111
|
}
|
|
102
112
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLXJvdy1ncm91cGluZy5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2hlbHBlcnMvb25lLXJvdy1ncm91cGluZy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsMkVBQTJFO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUM7QUFFM0MseUVBQXlFO0FBQ3pFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztBQUVqRCw2REFBNkQ7QUFDN0QsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsaUJBQWlCLENBQUM7QUFFdkQsOEVBQThFO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLG9CQUFvQixDQUFDO0FBRTdELDJFQUEyRTtBQUMzRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxTQUFTLENBQUM7QUFRL0Msa0VBQWtFO0FBQ2xFLE1BQU0sVUFBVSxjQUFjLENBQUksT0FBbUM7SUFFbkUsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7U0FDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ2pELEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFlLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsNkNBQTZDO0FBQzdDLE1BQU0sVUFBVSxVQUFVLENBQUksT0FBbUM7SUFFL0QsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7U0FDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ2hELEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNqRixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLElBQWtCLEVBQ2xCLFdBQThCLEVBQzlCLGVBQTJDLEVBQUU7SUFHN0MsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNO1FBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVuRCxPQUFPLFVBQVUsQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzFFLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FDakIsSUFBa0IsRUFDbEIsV0FBOEIsRUFDOUIsS0FBYSxFQUNiLFlBQXdDLEVBQ3hDLFFBQWdCO0lBR2hCLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVqQyx1RUFBdUU7SUFDdkUsMkVBQTJFO0lBQzNFLDBDQUEwQztJQUMxQyxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBeUMsQ0FBQztJQUVqRSxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRXZCLE1BQU0sS0FBSyxHQUFJLEdBQStCLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RCxNQUFNLEdBQUcsR0FBRyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxRyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWhDLElBQUksTUFBTSxFQUFFLENBQUM7WUFFWCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV4QixDQUFDO2FBQU0sQ0FBQztZQUVOLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUU7UUFFbEQsTUFBTSxFQUFFLEdBQUcsR0FBRyxRQUFRLElBQUksR0FBRyxFQUFFLENBQUM7UUFFaEMsTUFBTSxRQUFRLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsTUFBTTtZQUM3QyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUNuRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUVoQixNQUFNLFFBQVEsR0FBNEI7WUFDeEMsQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJO1lBQ3RCLENBQUMsa0JBQWtCLENBQUMsRUFBRSxFQUFFO1lBQ3hCLENBQUMscUJBQXFCLENBQUMsRUFBRSxHQUFHO1lBQzVCLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDckIsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLFFBQVE7U0FDckMsQ0FBQztRQUVGLHFFQUFxRTtRQUNyRSxvQ0FBb0M7UUFDcEMsS0FBSyxNQUFNLFdBQVcsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUV2QyxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9GLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxxREFBcUQ7QUFDckQsTUFBTSxVQUFVLFNBQVMsQ0FBSSxJQUFrQixFQUFFLEtBQWEsRUFBRSxPQUFzQjtJQUVwRixNQUFNLE1BQU0sR0FBRyxJQUFJO1NBQ2hCLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFFLEdBQStCLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyRCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQztJQUUxRCxJQUFJLE9BQU8sT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBRWxDLE9BQU8sT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFXLEVBQUUsS0FBSyxFQUF5QixDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELFFBQVEsT0FBTyxFQUFFLENBQUM7UUFFaEIsS0FBSyxPQUFPLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFFbkMsS0FBSyxPQUFPLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRXRELEtBQUssTUFBTSxDQUFDLENBQUMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3ZFLENBQUM7SUFFRCw0RUFBNEU7SUFDNUUsMkRBQTJEO0lBQzNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUUzRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07UUFBRSxPQUFPLElBQUksQ0FBQztJQUVqQyxRQUFRLE9BQU8sRUFBRSxDQUFDO1FBRWhCLEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV0RSxLQUFLLEtBQUssQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFFeEMsS0FBSyxLQUFLLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFdkYsT0FBTyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUM7SUFDdkIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbmVBZ2dGdW5jLCBPbmVBZ2dGdW5jUGFyYW1zLCBPbmVDb2x1bW5EZWYgfSBmcm9tIFwiLi4vY29yZS9tb2RlbHMvb25lLWNvbHVtbi1kZWYtdHlwZXMubW9kZWxcIjtcblxuLyoqIE1hcmtzIGEgc3ludGhldGljIGdyb3VwIHJvdywgc28gYW55dGhpbmcgY2FuIHRlbGwgaXQgZnJvbSByZWFsIGRhdGEuICovXG5leHBvcnQgY29uc3QgT05FX0dST1VQX0ZMQUcgPSAnX19vbmVHcm91cCc7XG5cbi8qKiBTdGFibGUgaWQgZm9yIGEgZ3JvdXAgcm93OiBpdHMgdmFsdWUgcGF0aC4gU3Vydml2ZXMgZXZlcnkgcmVidWlsZC4gKi9cbmV4cG9ydCBjb25zdCBPTkVfR1JPVVBfSURfRklFTEQgPSAnX19vbmVHcm91cElkJztcblxuLyoqIFRoZSBsYWJlbCB0aGUgYXV0byBncm91cCBjb2x1bW4gc2hvd3MgZm9yIGEgZ3JvdXAgcm93LiAqL1xuZXhwb3J0IGNvbnN0IE9ORV9HUk9VUF9WQUxVRV9GSUVMRCA9ICdfX29uZUdyb3VwVmFsdWUnO1xuXG4vKiogV2hlcmUgYSBncm91cCByb3cga2VlcHMgaXRzIGNoaWxkcmVuLCBmb3IgdGhlIHRyZWUgcGlwZWxpbmUgdG8gcmVjdXJzZS4gKi9cbmV4cG9ydCBjb25zdCBPTkVfR1JPVVBfQ0hJTERSRU5fRklFTEQgPSAnX19vbmVHcm91cENoaWxkcmVuJztcblxuLyoqIFdoYXQgYSBncm91cCBvZiByb3dzIHdpdGggbm8gdmFsdWUgaW4gdGhlIGdyb3VwZWQgZmllbGQgaXMgbGFiZWxsZWQuICovXG5leHBvcnQgY29uc3QgT05FX0dST1VQX0JMQU5LX0xBQkVMID0gJyhCbGFuayknO1xuXG4vKiogT25lIGNvbHVtbidzIGFnZ3JlZ2F0aW9uLCBjYXB0dXJlZCBmcm9tIHRoZSBjb2x1bW4gZGVmaW5pdGlvbnMuICovXG5leHBvcnQgaW50ZXJmYWNlIE9uZUFnZ0NvbHVtbjxUID0gYW55PiB7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIGFnZ0Z1bmM6IE9uZUFnZ0Z1bmM8VD47XG59XG5cbi8qKiBUaGUgYHJvd0dyb3VwYCBmaWVsZHMgb2YgYSBjb2x1bW4gc2V0LCBpbiBkZWZpbml0aW9uIG9yZGVyLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvd0dyb3VwRmllbGRzPFQ+KGNvbHVtbnM6IHJlYWRvbmx5IE9uZUNvbHVtbkRlZjxUPltdKTogc3RyaW5nW10ge1xuXG4gIHJldHVybiAoY29sdW1ucyA/PyBbXSlcbiAgICAuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4ucm93R3JvdXAgJiYgY29sdW1uLmZpZWxkKVxuICAgIC5tYXAoY29sdW1uID0+IGNvbHVtbi5maWVsZCBhcyBzdHJpbmcpO1xufVxuXG4vKiogVGhlIGBhZ2dGdW5jYCBjb2x1bW5zIG9mIGEgY29sdW1uIHNldC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZ2dDb2x1bW5zPFQ+KGNvbHVtbnM6IHJlYWRvbmx5IE9uZUNvbHVtbkRlZjxUPltdKTogT25lQWdnQ29sdW1uPFQ+W10ge1xuXG4gIHJldHVybiAoY29sdW1ucyA/PyBbXSlcbiAgICAuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4uYWdnRnVuYyAmJiBjb2x1bW4uZmllbGQpXG4gICAgLm1hcChjb2x1bW4gPT4gKHsgZmllbGQ6IGNvbHVtbi5maWVsZCBhcyBzdHJpbmcsIGFnZ0Z1bmM6IGNvbHVtbi5hZ2dGdW5jIH0pKTtcbn1cblxuLyoqXG4gKiBGb2xkIGZsYXQgcm93cyBpbnRvIGEgdHJlZSBvZiBzeW50aGV0aWMgZ3JvdXAgcm93cywgb25lIGxldmVsIHBlciBncm91cFxuICogZmllbGQsIGluIGZpcnN0LWFwcGVhcmFuY2Ugb3JkZXIuIEVhY2ggZ3JvdXAgcm93IGNhcnJpZXM6XG4gKlxuICogLSB0aGUgbWFya2VyLCBpZCBhbmQgbGFiZWwgZmllbGRzIGFib3ZlO1xuICogLSBpdHMgb3duIGdyb3VwZWQgZmllbGQncyB2YWx1ZSwgc28gc29ydGluZyBhbmQgZmlsdGVyaW5nIHJlYWQgaXQgbmF0dXJhbGx5O1xuICogLSBvbmUgYWdncmVnYXRlZCB2YWx1ZSBwZXIgYGFnZ0Z1bmNgIGNvbHVtbiwgY29tcHV0ZWQgb3ZlciB0aGUgZ3JvdXAnc1xuICogICBsZWF2ZXMgKG5vdCBpdHMgY2hpbGQgZ3JvdXBzKSwgc3RvcmVkIHVuZGVyIHRoZSBjb2x1bW4ncyBvd24gZmllbGQgc28gdGhlXG4gKiAgIG9yZGluYXJ5IGNlbGwgcGlwZWxpbmUgcmVuZGVycyBpdC5cbiAqXG4gKiBQdXJlOiB0aGUgaW5wdXQgcm93cyBhcmUgcmVmZXJlbmNlZCwgbmV2ZXIgbXV0YXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkR3JvdXBlZFJvd3M8VD4oXG4gIHJvd3M6IHJlYWRvbmx5IFRbXSxcbiAgZ3JvdXBGaWVsZHM6IHJlYWRvbmx5IHN0cmluZ1tdLFxuICBhZ2dyZWdhdGlvbnM6IHJlYWRvbmx5IE9uZUFnZ0NvbHVtbjxUPltdID0gW10sXG4pOiBhbnlbXSB7XG5cbiAgaWYgKCFncm91cEZpZWxkcz8ubGVuZ3RoKSByZXR1cm4gWy4uLihyb3dzID8/IFtdKV07XG5cbiAgcmV0dXJuIGdyb3VwTGV2ZWwocm93cyA/PyBbXSwgZ3JvdXBGaWVsZHMsIDAsIGFnZ3JlZ2F0aW9ucywgJ29nLWdyb3VwJyk7XG59XG5cbmZ1bmN0aW9uIGdyb3VwTGV2ZWw8VD4oXG4gIHJvd3M6IHJlYWRvbmx5IFRbXSxcbiAgZ3JvdXBGaWVsZHM6IHJlYWRvbmx5IHN0cmluZ1tdLFxuICBsZXZlbDogbnVtYmVyLFxuICBhZ2dyZWdhdGlvbnM6IHJlYWRvbmx5IE9uZUFnZ0NvbHVtbjxUPltdLFxuICBpZFByZWZpeDogc3RyaW5nLFxuKTogYW55W10ge1xuXG4gIGNvbnN0IGZpZWxkID0gZ3JvdXBGaWVsZHNbbGV2ZWxdO1xuXG4gIC8vIEluc2VydGlvbi1vcmRlcmVkIGJ1Y2tldHMsIGtleWVkIGJ5IHRoZSB2YWx1ZSdzIHN0cmluZyBmb3JtLiBUaGUgcmF3XG4gIC8vIHZhbHVlIGlzIGtlcHQgYXMgd2VsbCwgc28gdGhlIGdyb3VwIHJvdyBleHBvc2VzIHRoZSByZWFsIHZhbHVlIHVuZGVyIHRoZVxuICAvLyBncm91cGVkIGZpZWxkLCBub3QgaXRzIHN0cmluZ2lmaWNhdGlvbi5cbiAgY29uc3QgYnVja2V0cyA9IG5ldyBNYXA8c3RyaW5nLCB7IHZhbHVlOiB1bmtub3duOyByb3dzOiBUW10gfT4oKTtcblxuICBmb3IgKGNvbnN0IHJvdyBvZiByb3dzKSB7XG5cbiAgICBjb25zdCB2YWx1ZSA9IChyb3cgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pPy5bZmllbGRdO1xuICAgIGNvbnN0IGtleSA9IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnID8gT05FX0dST1VQX0JMQU5LX0xBQkVMIDogU3RyaW5nKHZhbHVlKTtcblxuICAgIGNvbnN0IGJ1Y2tldCA9IGJ1Y2tldHMuZ2V0KGtleSk7XG5cbiAgICBpZiAoYnVja2V0KSB7XG5cbiAgICAgIGJ1Y2tldC5yb3dzLnB1c2gocm93KTtcblxuICAgIH0gZWxzZSB7XG5cbiAgICAgIGJ1Y2tldHMuc2V0KGtleSwgeyB2YWx1ZSwgcm93czogW3Jvd10gfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFsuLi5idWNrZXRzLmVudHJpZXMoKV0ubWFwKChba2V5LCBidWNrZXRdKSA9PiB7XG5cbiAgICBjb25zdCBpZCA9IGAke2lkUHJlZml4fToke2tleX1gO1xuXG4gICAgY29uc3QgY2hpbGRyZW4gPSBsZXZlbCArIDEgPCBncm91cEZpZWxkcy5sZW5ndGhcbiAgICAgID8gZ3JvdXBMZXZlbChidWNrZXQucm93cywgZ3JvdXBGaWVsZHMsIGxldmVsICsgMSwgYWdncmVnYXRpb25zLCBpZClcbiAgICAgIDogYnVja2V0LnJvd3M7XG5cbiAgICBjb25zdCBncm91cFJvdzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICBbT05FX0dST1VQX0ZMQUddOiB0cnVlLFxuICAgICAgW09ORV9HUk9VUF9JRF9GSUVMRF06IGlkLFxuICAgICAgW09ORV9HUk9VUF9WQUxVRV9GSUVMRF06IGtleSxcbiAgICAgIFtmaWVsZF06IGJ1Y2tldC52YWx1ZSxcbiAgICAgIFtPTkVfR1JPVVBfQ0hJTERSRU5fRklFTERdOiBjaGlsZHJlbixcbiAgICB9O1xuXG4gICAgLy8gQWdncmVnYXRlcyBhbHdheXMgcmVhZCB0aGUgb3JpZ2luYWwgbGVhdmVzLCBzbyBhIHR3by1sZXZlbCBncm91cCdzXG4gICAgLy8gcGFyZW50IGlzIG5vdCBhdmVyYWdpbmcgYXZlcmFnZXMuXG4gICAgZm9yIChjb25zdCBhZ2dyZWdhdGlvbiBvZiBhZ2dyZWdhdGlvbnMpIHtcblxuICAgICAgZ3JvdXBSb3dbYWdncmVnYXRpb24uZmllbGRdID0gYWdncmVnYXRlKGJ1Y2tldC5yb3dzLCBhZ2dyZWdhdGlvbi5maWVsZCwgYWdncmVnYXRpb24uYWdnRnVuYyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwUm93O1xuICB9KTtcbn1cblxuLyoqIEFwcGx5IG9uZSBhZ2dyZWdhdGlvbiBvdmVyIGEgc2V0IG9mIGxlYWYgcm93cy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZ2dyZWdhdGU8VD4ocm93czogcmVhZG9ubHkgVFtdLCBmaWVsZDogc3RyaW5nLCBhZ2dGdW5jOiBPbmVBZ2dGdW5jPFQ+KTogYW55IHtcblxuICBjb25zdCB2YWx1ZXMgPSByb3dzXG4gICAgLm1hcChyb3cgPT4gKHJvdyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik/LltmaWVsZF0pXG4gICAgLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKTtcblxuICBpZiAodHlwZW9mIGFnZ0Z1bmMgPT09ICdmdW5jdGlvbicpIHtcblxuICAgIHJldHVybiBhZ2dGdW5jKHsgdmFsdWVzLCByb3dzOiByb3dzIGFzIFRbXSwgZmllbGQgfSBhcyBPbmVBZ2dGdW5jUGFyYW1zPFQ+KTtcbiAgfVxuXG4gIHN3aXRjaCAoYWdnRnVuYykge1xuXG4gICAgY2FzZSAnY291bnQnOiByZXR1cm4gdmFsdWVzLmxlbmd0aDtcblxuICAgIGNhc2UgJ2ZpcnN0JzogcmV0dXJuIHZhbHVlcy5sZW5ndGggPyB2YWx1ZXNbMF0gOiBudWxsO1xuXG4gICAgY2FzZSAnbGFzdCc6IHJldHVybiB2YWx1ZXMubGVuZ3RoID8gdmFsdWVzW3ZhbHVlcy5sZW5ndGggLSAxXSA6IG51bGw7XG4gIH1cblxuICAvLyBUaGUgbnVtZXJpYyBhZ2dyZWdhdGVzIGlnbm9yZSB3aGF0IGRvZXMgbm90IHBhcnNlLCBzbyBvbmUgc3RyYXkgc3RyaW5nIGluXG4gIC8vIGEgY29sdW1uIGRvZXMgbm90IHR1cm4gdGhlIHdob2xlIGdyb3VwJ3MgdG90YWwgaW50byBOYU4uXG4gIGNvbnN0IG51bWJlcnMgPSB2YWx1ZXMubWFwKE51bWJlcikuZmlsdGVyKE51bWJlci5pc0Zpbml0ZSk7XG5cbiAgaWYgKCFudW1iZXJzLmxlbmd0aCkgcmV0dXJuIG51bGw7XG5cbiAgc3dpdGNoIChhZ2dGdW5jKSB7XG5cbiAgICBjYXNlICdzdW0nOiByZXR1cm4gbnVtYmVycy5yZWR1Y2UoKHRvdGFsLCB2YWx1ZSkgPT4gdG90YWwgKyB2YWx1ZSwgMCk7XG5cbiAgICBjYXNlICdtaW4nOiByZXR1cm4gTWF0aC5taW4oLi4ubnVtYmVycyk7XG5cbiAgICBjYXNlICdtYXgnOiByZXR1cm4gTWF0aC5tYXgoLi4ubnVtYmVycyk7XG5cbiAgICBjYXNlICdhdmcnOiByZXR1cm4gbnVtYmVycy5yZWR1Y2UoKHRvdGFsLCB2YWx1ZSkgPT4gdG90YWwgKyB2YWx1ZSwgMCkgLyBudW1iZXJzLmxlbmd0aDtcblxuICAgIGRlZmF1bHQ6IHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLXJvdy1ncm91cGluZy5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2hlbHBlcnMvb25lLXJvdy1ncm91cGluZy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsMkVBQTJFO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUM7QUFFM0MseUVBQXlFO0FBQ3pFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztBQUVqRCw2REFBNkQ7QUFDN0QsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsaUJBQWlCLENBQUM7QUFFdkQsOEVBQThFO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLG9CQUFvQixDQUFDO0FBRTdELDJFQUEyRTtBQUMzRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxTQUFTLENBQUM7QUFRL0M7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBSSxPQUFtQztJQUVuRSxNQUFNLFFBQVEsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFbkUsS0FBSyxNQUFNLE1BQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUU5RCxPQUFPLENBQUMsSUFBSSxDQUFDLDBCQUEwQixNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxFQUFFLElBQUksV0FBVywySUFBMkksQ0FBQyxDQUFDO0lBQ25PLENBQUM7SUFFRCxPQUFPLFFBQVE7U0FDWixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQzlCLEdBQUcs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QUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3ZFLENBQUM7SUFFRCw0RUFBNEU7SUFDNUUsMkRBQTJEO0lBQzNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUUzRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07UUFBRSxPQUFPLElBQUksQ0FBQztJQUVqQyxRQUFRLE9BQU8sRUFBRSxDQUFDO1FBRWhCLEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV0RSxLQUFLLEtBQUssQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFFeEMsS0FBSyxLQUFLLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFdkYsT0FBTyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUM7SUFDdkIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbmVBZ2dGdW5jLCBPbmVBZ2dGdW5jUGFyYW1zLCBPbmVDb2x1bW5EZWYgfSBmcm9tIFwiLi4vY29yZS9tb2RlbHMvb25lLWNvbHVtbi1kZWYtdHlwZXMubW9kZWxcIjtcblxuLyoqIE1hcmtzIGEgc3ludGhldGljIGdyb3VwIHJvdywgc28gYW55dGhpbmcgY2FuIHRlbGwgaXQgZnJvbSByZWFsIGRhdGEuICovXG5leHBvcnQgY29uc3QgT05FX0dST1VQX0ZMQUcgPSAnX19vbmVHcm91cCc7XG5cbi8qKiBTdGFibGUgaWQgZm9yIGEgZ3JvdXAgcm93OiBpdHMgdmFsdWUgcGF0aC4gU3Vydml2ZXMgZXZlcnkgcmVidWlsZC4gKi9cbmV4cG9ydCBjb25zdCBPTkVfR1JPVVBfSURfRklFTEQgPSAnX19vbmVHcm91cElkJztcblxuLyoqIFRoZSBsYWJlbCB0aGUgYXV0byBncm91cCBjb2x1bW4gc2hvd3MgZm9yIGEgZ3JvdXAgcm93LiAqL1xuZXhwb3J0IGNvbnN0IE9ORV9HUk9VUF9WQUxVRV9GSUVMRCA9ICdfX29uZUdyb3VwVmFsdWUnO1xuXG4vKiogV2hlcmUgYSBncm91cCByb3cga2VlcHMgaXRzIGNoaWxkcmVuLCBmb3IgdGhlIHRyZWUgcGlwZWxpbmUgdG8gcmVjdXJzZS4gKi9cbmV4cG9ydCBjb25zdCBPTkVfR1JPVVBfQ0hJTERSRU5fRklFTEQgPSAnX19vbmVHcm91cENoaWxkcmVuJztcblxuLyoqIFdoYXQgYSBncm91cCBvZiByb3dzIHdpdGggbm8gdmFsdWUgaW4gdGhlIGdyb3VwZWQgZmllbGQgaXMgbGFiZWxsZWQuICovXG5leHBvcnQgY29uc3QgT05FX0dST1VQX0JMQU5LX0xBQkVMID0gJyhCbGFuayknO1xuXG4vKiogT25lIGNvbHVtbidzIGFnZ3JlZ2F0aW9uLCBjYXB0dXJlZCBmcm9tIHRoZSBjb2x1bW4gZGVmaW5pdGlvbnMuICovXG5leHBvcnQgaW50ZXJmYWNlIE9uZUFnZ0NvbHVtbjxUID0gYW55PiB7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIGFnZ0Z1bmM6IE9uZUFnZ0Z1bmM8VD47XG59XG5cbi8qKlxuICogVGhlIGByb3dHcm91cGAgZmllbGRzIG9mIGEgY29sdW1uIHNldCwgaW4gZGVmaW5pdGlvbiBvcmRlci5cbiAqXG4gKiBHcm91cGluZyBrZXlzIG9uIGEgcm93J3Mgb3duIGZpZWxkLCBzbyBhIGNvbHVtbiB0aGF0IGFza3MgdG8gZ3JvdXAgd2l0aG91dFxuICogb25lIGhhcyBub3RoaW5nIHRvIGdyb3VwIGJ5IOKAlCBpdCBpcyBkcm9wcGVkLCBidXQgbm90IHNpbGVudGx5OiB0aGF0IGlzIGFcbiAqIGRlZmluaXRpb24gdGhhdCByZWFkcyBhcyBpZiBpdCB3b3Jrcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvd0dyb3VwRmllbGRzPFQ+KGNvbHVtbnM6IHJlYWRvbmx5IE9uZUNvbHVtbkRlZjxUPltdKTogc3RyaW5nW10ge1xuXG4gIGNvbnN0IGdyb3VwaW5nID0gKGNvbHVtbnMgPz8gW10pLmZpbHRlcihjb2x1bW4gPT4gY29sdW1uLnJvd0dyb3VwKTtcblxuICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBncm91cGluZy5maWx0ZXIoY29sdW1uID0+ICFjb2x1bW4uZmllbGQpKSB7XG5cbiAgICBjb25zb2xlLndhcm4oYFtvbmUtZ3JpZF0gdGhlIGNvbHVtbiBcIiR7Y29sdW1uLmhlYWRlck5hbWUgPz8gY29sdW1uLmlkID8/ICcodW5uYW1lZCknfVwiIGRlY2xhcmVzIHJvd0dyb3VwIGJ1dCBoYXMgbm8gZmllbGQg4oCUIGdyb3VwaW5nIHJlYWRzIHRoZSByb3cncyBvd24gdmFsdWUsIHNvIGEgdmFsdWVHZXR0ZXIgaXMgbm90IGVub3VnaC4gVGhlIGNvbHVtbiB3YXMgbGVmdCB1bmdyb3VwZWQuYCk7XG4gIH1cblxuICByZXR1cm4gZ3JvdXBpbmdcbiAgICAuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4uZmllbGQpXG4gICAgLm1hcChjb2x1bW4gPT4gY29sdW1uLmZpZWxkIGFzIHN0cmluZyk7XG59XG5cbi8qKiBUaGUgYGFnZ0Z1bmNgIGNvbHVtbnMgb2YgYSBjb2x1bW4gc2V0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFnZ0NvbHVtbnM8VD4oY29sdW1uczogcmVhZG9ubHkgT25lQ29sdW1uRGVmPFQ+W10pOiBPbmVBZ2dDb2x1bW48VD5bXSB7XG5cbiAgcmV0dXJuIChjb2x1bW5zID8/IFtdKVxuICAgIC5maWx0ZXIoY29sdW1uID0+IGNvbHVtbi5hZ2dGdW5jICYmIGNvbHVtbi5maWVsZClcbiAgICAubWFwKGNvbHVtbiA9PiAoeyBmaWVsZDogY29sdW1uLmZpZWxkIGFzIHN0cmluZywgYWdnRnVuYzogY29sdW1uLmFnZ0Z1bmMgfSkpO1xufVxuXG4vKipcbiAqIEZvbGQgZmxhdCByb3dzIGludG8gYSB0cmVlIG9mIHN5bnRoZXRpYyBncm91cCByb3dzLCBvbmUgbGV2ZWwgcGVyIGdyb3VwXG4gKiBmaWVsZCwgaW4gZmlyc3QtYXBwZWFyYW5jZSBvcmRlci4gRWFjaCBncm91cCByb3cgY2FycmllczpcbiAqXG4gKiAtIHRoZSBtYXJrZXIsIGlkIGFuZCBsYWJlbCBmaWVsZHMgYWJvdmU7XG4gKiAtIGl0cyBvd24gZ3JvdXBlZCBmaWVsZCdzIHZhbHVlLCBzbyBzb3J0aW5nIGFuZCBmaWx0ZXJpbmcgcmVhZCBpdCBuYXR1cmFsbHk7XG4gKiAtIG9uZSBhZ2dyZWdhdGVkIHZhbHVlIHBlciBgYWdnRnVuY2AgY29sdW1uLCBjb21wdXRlZCBvdmVyIHRoZSBncm91cCdzXG4gKiAgIGxlYXZlcyAobm90IGl0cyBjaGlsZCBncm91cHMpLCBzdG9yZWQgdW5kZXIgdGhlIGNvbHVtbidzIG93biBmaWVsZCBzbyB0aGVcbiAqICAgb3JkaW5hcnkgY2VsbCBwaXBlbGluZSByZW5kZXJzIGl0LlxuICpcbiAqIFB1cmU6IHRoZSBpbnB1dCByb3dzIGFyZSByZWZlcmVuY2VkLCBuZXZlciBtdXRhdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRHcm91cGVkUm93czxUPihcbiAgcm93czogcmVhZG9ubHkgVFtdLFxuICBncm91cEZpZWxkczogcmVhZG9ubHkgc3RyaW5nW10sXG4gIGFnZ3JlZ2F0aW9uczogcmVhZG9ubHkgT25lQWdnQ29sdW1uPFQ+W10gPSBbXSxcbik6IGFueVtdIHtcblxuICBpZiAoIWdyb3VwRmllbGRzPy5sZW5ndGgpIHJldHVybiBbLi4uKHJvd3MgPz8gW10pXTtcblxuICByZXR1cm4gZ3JvdXBMZXZlbChyb3dzID8/IFtdLCBncm91cEZpZWxkcywgMCwgYWdncmVnYXRpb25zLCAnb2ctZ3JvdXAnKTtcbn1cblxuZnVuY3Rpb24gZ3JvdXBMZXZlbDxUPihcbiAgcm93czogcmVhZG9ubHkgVFtdLFxuICBncm91cEZpZWxkczogcmVhZG9ubHkgc3RyaW5nW10sXG4gIGxldmVsOiBudW1iZXIsXG4gIGFnZ3JlZ2F0aW9uczogcmVhZG9ubHkgT25lQWdnQ29sdW1uPFQ+W10sXG4gIGlkUHJlZml4OiBzdHJpbmcsXG4pOiBhbnlbXSB7XG5cbiAgY29uc3QgZmllbGQgPSBncm91cEZpZWxkc1tsZXZlbF07XG5cbiAgLy8gSW5zZXJ0aW9uLW9yZGVyZWQgYnVja2V0cywga2V5ZWQgYnkgdGhlIHZhbHVlJ3Mgc3RyaW5nIGZvcm0uIFRoZSByYXdcbiAgLy8gdmFsdWUgaXMga2VwdCBhcyB3ZWxsLCBzbyB0aGUgZ3JvdXAgcm93IGV4cG9zZXMgdGhlIHJlYWwgdmFsdWUgdW5kZXIgdGhlXG4gIC8vIGdyb3VwZWQgZmllbGQsIG5vdCBpdHMgc3RyaW5naWZpY2F0aW9uLlxuICBjb25zdCBidWNrZXRzID0gbmV3IE1hcDxzdHJpbmcsIHsgdmFsdWU6IHVua25vd247IHJvd3M6IFRbXSB9PigpO1xuXG4gIGZvciAoY29uc3Qgcm93IG9mIHJvd3MpIHtcblxuICAgIGNvbnN0IHZhbHVlID0gKHJvdyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik/LltmaWVsZF07XG4gICAgY29uc3Qga2V5ID0gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycgPyBPTkVfR1JPVVBfQkxBTktfTEFCRUwgOiBTdHJpbmcodmFsdWUpO1xuXG4gICAgY29uc3QgYnVja2V0ID0gYnVja2V0cy5nZXQoa2V5KTtcblxuICAgIGlmIChidWNrZXQpIHtcblxuICAgICAgYnVja2V0LnJvd3MucHVzaChyb3cpO1xuXG4gICAgfSBlbHNlIHtcblxuICAgICAgYnVja2V0cy5zZXQoa2V5LCB7IHZhbHVlLCByb3dzOiBbcm93XSB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gWy4uLmJ1Y2tldHMuZW50cmllcygpXS5tYXAoKFtrZXksIGJ1Y2tldF0pID0+IHtcblxuICAgIGNvbnN0IGlkID0gYCR7aWRQcmVmaXh9OiR7a2V5fWA7XG5cbiAgICBjb25zdCBjaGlsZHJlbiA9IGxldmVsICsgMSA8IGdyb3VwRmllbGRzLmxlbmd0aFxuICAgICAgPyBncm91cExldmVsKGJ1Y2tldC5yb3dzLCBncm91cEZpZWxkcywgbGV2ZWwgKyAxLCBhZ2dyZWdhdGlvbnMsIGlkKVxuICAgICAgOiBidWNrZXQucm93cztcblxuICAgIGNvbnN0IGdyb3VwUm93OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgIFtPTkVfR1JPVVBfRkxBR106IHRydWUsXG4gICAgICBbT05FX0dST1VQX0lEX0ZJRUxEXTogaWQsXG4gICAgICBbT05FX0dST1VQX1ZBTFVFX0ZJRUxEXToga2V5LFxuICAgICAgW2ZpZWxkXTogYnVja2V0LnZhbHVlLFxuICAgICAgW09ORV9HUk9VUF9DSElMRFJFTl9GSUVMRF06IGNoaWxkcmVuLFxuICAgIH07XG5cbiAgICAvLyBBZ2dyZWdhdGVzIGFsd2F5cyByZWFkIHRoZSBvcmlnaW5hbCBsZWF2ZXMsIHNvIGEgdHdvLWxldmVsIGdyb3VwJ3NcbiAgICAvLyBwYXJlbnQgaXMgbm90IGF2ZXJhZ2luZyBhdmVyYWdlcy5cbiAgICBmb3IgKGNvbnN0IGFnZ3JlZ2F0aW9uIG9mIGFnZ3JlZ2F0aW9ucykge1xuXG4gICAgICBncm91cFJvd1thZ2dyZWdhdGlvbi5maWVsZF0gPSBhZ2dyZWdhdGUoYnVja2V0LnJvd3MsIGFnZ3JlZ2F0aW9uLmZpZWxkLCBhZ2dyZWdhdGlvbi5hZ2dGdW5jKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ3JvdXBSb3c7XG4gIH0pO1xufVxuXG4vKiogQXBwbHkgb25lIGFnZ3JlZ2F0aW9uIG92ZXIgYSBzZXQgb2YgbGVhZiByb3dzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFnZ3JlZ2F0ZTxUPihyb3dzOiByZWFkb25seSBUW10sIGZpZWxkOiBzdHJpbmcsIGFnZ0Z1bmM6IE9uZUFnZ0Z1bmM8VD4pOiBhbnkge1xuXG4gIGNvbnN0IHZhbHVlcyA9IHJvd3NcbiAgICAubWFwKHJvdyA9PiAocm93IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KT8uW2ZpZWxkXSlcbiAgICAuZmlsdGVyKHZhbHVlID0+IHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpO1xuXG4gIGlmICh0eXBlb2YgYWdnRnVuYyA9PT0gJ2Z1bmN0aW9uJykge1xuXG4gICAgcmV0dXJuIGFnZ0Z1bmMoeyB2YWx1ZXMsIHJvd3M6IHJvd3MgYXMgVFtdLCBmaWVsZCB9IGFzIE9uZUFnZ0Z1bmNQYXJhbXM8VD4pO1xuICB9XG5cbiAgc3dpdGNoIChhZ2dGdW5jKSB7XG5cbiAgICBjYXNlICdjb3VudCc6IHJldHVybiB2YWx1ZXMubGVuZ3RoO1xuXG4gICAgY2FzZSAnZmlyc3QnOiByZXR1cm4gdmFsdWVzLmxlbmd0aCA/IHZhbHVlc1swXSA6IG51bGw7XG5cbiAgICBjYXNlICdsYXN0JzogcmV0dXJuIHZhbHVlcy5sZW5ndGggPyB2YWx1ZXNbdmFsdWVzLmxlbmd0aCAtIDFdIDogbnVsbDtcbiAgfVxuXG4gIC8vIFRoZSBudW1lcmljIGFnZ3JlZ2F0ZXMgaWdub3JlIHdoYXQgZG9lcyBub3QgcGFyc2UsIHNvIG9uZSBzdHJheSBzdHJpbmcgaW5cbiAgLy8gYSBjb2x1bW4gZG9lcyBub3QgdHVybiB0aGUgd2hvbGUgZ3JvdXAncyB0b3RhbCBpbnRvIE5hTi5cbiAgY29uc3QgbnVtYmVycyA9IHZhbHVlcy5tYXAoTnVtYmVyKS5maWx0ZXIoTnVtYmVyLmlzRmluaXRlKTtcblxuICBpZiAoIW51bWJlcnMubGVuZ3RoKSByZXR1cm4gbnVsbDtcblxuICBzd2l0Y2ggKGFnZ0Z1bmMpIHtcblxuICAgIGNhc2UgJ3N1bSc6IHJldHVybiBudW1iZXJzLnJlZHVjZSgodG90YWwsIHZhbHVlKSA9PiB0b3RhbCArIHZhbHVlLCAwKTtcblxuICAgIGNhc2UgJ21pbic6IHJldHVybiBNYXRoLm1pbiguLi5udW1iZXJzKTtcblxuICAgIGNhc2UgJ21heCc6IHJldHVybiBNYXRoLm1heCguLi5udW1iZXJzKTtcblxuICAgIGNhc2UgJ2F2Zyc6IHJldHVybiBudW1iZXJzLnJlZHVjZSgodG90YWwsIHZhbHVlKSA9PiB0b3RhbCArIHZhbHVlLCAwKSAvIG51bWJlcnMubGVuZ3RoO1xuXG4gICAgZGVmYXVsdDogcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
|