@magic-xpa/gui 4.1100.0-dev4110.252 → 4.1100.0-dev4110.256
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/esm2022/src/Commands.mjs +1 -1
- package/esm2022/src/Events.mjs +1 -1
- package/esm2022/src/EventsProcessor.mjs +1 -1
- package/esm2022/src/FocusManager.mjs +1 -1
- package/esm2022/src/Manager.mjs +1 -1
- package/esm2022/src/UIBridge.mjs +1 -1
- package/esm2022/src/gui/GuiMgControl.mjs +1 -1
- package/esm2022/src/gui/KeyboardItem.mjs +1 -1
- package/esm2022/src/gui/low/GuiCommand.mjs +1 -1
- package/esm2022/src/gui/low/GuiCommandQueue.mjs +1 -1
- package/esm2022/src/gui/low/GuiInteractive.mjs +1 -1
- package/esm2022/src/management/RuntimeContextBase.mjs +1 -1
- package/esm2022/src/management/data/BlobType.mjs +1 -1
- package/esm2022/src/management/data/DcValues.mjs +1 -1
- package/esm2022/src/management/data/DcValuesBuilderBase.mjs +1 -1
- package/esm2022/src/management/data/FieldDef.mjs +1 -1
- package/esm2022/src/management/data/FieldsTable.mjs +1 -1
- package/esm2022/src/management/data/GuiDataViewBase.mjs +1 -1
- package/esm2022/src/management/data/GuiFieldBase.mjs +1 -1
- package/esm2022/src/management/data/NUM_TYPE.mjs +1 -1
- package/esm2022/src/management/data/ObjectReferenceBase.mjs +1 -1
- package/esm2022/src/management/data/ObjectReferencesCollection.mjs +1 -1
- package/esm2022/src/management/data/RecordUtils.mjs +1 -1
- package/esm2022/src/management/data/VectorType.mjs +1 -1
- package/esm2022/src/management/data/VectorTypeBase.mjs +1 -1
- package/esm2022/src/management/exp/GuiExpressionEvaluator.mjs +1 -1
- package/esm2022/src/management/gui/ControlTable.mjs +1 -1
- package/esm2022/src/management/gui/DisplayConvertor.mjs +1 -1
- package/esm2022/src/management/gui/FieldValidator.mjs +1 -1
- package/esm2022/src/management/gui/HebrewDate.mjs +1 -1
- package/esm2022/src/management/gui/Helps.mjs +1 -1
- package/esm2022/src/management/gui/MgControlBase.mjs +1 -1
- package/esm2022/src/management/gui/MgFormBase.mjs +1 -1
- package/esm2022/src/management/gui/PIC.mjs +1 -1
- package/esm2022/src/management/gui/PropDefaults.mjs +1 -1
- package/esm2022/src/management/gui/PropTable.mjs +1 -1
- package/esm2022/src/management/gui/Property.mjs +1 -1
- package/esm2022/src/management/gui/ValidationDetails.mjs +1 -1
- package/esm2022/src/management/gui/ValidationDetailsBase.mjs +1 -1
- package/esm2022/src/management/gui/WrongFormatException.mjs +1 -1
- package/esm2022/src/management/tasks/GuiTaskBase.mjs +1 -1
- package/esm2022/src/management/tasks/TaskDefinitionIdTableSaxHandler.mjs +1 -1
- package/esm2022/src/util/MemoryUtil.mjs +1 -1
- package/esm2022/src/util/ObjectReference.mjs +1 -1
- package/esm2022/src/util/UsernamePasswordCredentials.mjs +1 -1
- package/fesm2022/magic-xpa-gui.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -278,4 +278,4 @@ export class BlobType {
|
|
|
278
278
|
return newContentType;
|
|
279
279
|
}
|
|
280
280
|
}
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmxvYlR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL21hbmFnZW1lbnQvZGF0YS9CbG9iVHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFvQixPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxNQUFNLE9BQU8sUUFBUTtJQUNuQixNQUFNLENBQUMsb0JBQW9CLEdBQVcsR0FBRyxDQUFDO0lBQzFDLE1BQU0sQ0FBQyxpQkFBaUIsR0FBVyxHQUFHLENBQUM7SUFDdkMsTUFBTSxDQUFDLG9CQUFvQixHQUFXLEdBQUcsQ0FBQztJQUMxQyxNQUFNLENBQUMsbUJBQW1CLEdBQVcsR0FBRyxDQUFDO0lBT3pDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBWTtRQUNoQyxJQUFJLENBQUM7WUFDSCxJQUFJLE1BQU0sR0FBYSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNyRCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELE9BQU8sU0FBUyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLG9CQUFvQixDQUFDLHVEQUF1RCxDQUFDLENBQUM7UUFDMUYsQ0FBQztJQUNILENBQUM7SUFPRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsV0FBbUI7UUFDM0MsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFD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TUFBTSxDQUFDO29CQUMvQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztnQkFDbEIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBT0QsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQW1CO1FBQ3pDLElBQUksY0FBYyxHQUFXLEdBQUcsQ0FBQztRQUNqQyxRQUFRLFdBQVcsRUFBRSxDQUFDO1lBQ3BCLEtBQUssQ0FBQztnQkFDSixjQUFjLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFDO2dCQUMvQyxNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLGNBQWMsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUM7Z0JBQzVDLE1BQU07WUFDUixLQUFLLENBQUM7Z0JBQ0osY0FBYyxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDL0MsTUFBTTtZQUNSLEtBQUssQ0FBQztnQkFDSixjQUFjLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUFDO1FBQ2xELENBQUM7UUFDRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nZ2VyLCBTdG9yYWdlQXR0cmlidXRlLCBTdHJVdGlsIH0gZnJvbSAnQG1hZ2ljLXhwYS91dGlscyc7XHJcbmltcG9ydCB7IEFwcGxpY2F0aW9uRXhjZXB0aW9uLCBEZWJ1ZywgRW5jb2RpbmcsIElTT184ODU5XzFfRW5jb2RpbmcsIE5OdW1iZXIsIE5TdHJpbmcgfSBmcm9tICdAbWFnaWMteHBhL21zY29yZWxpYic7XHJcbmltcG9ydCB7IEd1aUNvbnN0YW50cyB9IGZyb20gJy4uLy4uL0d1aUNvbnN0YW50cyc7XHJcbmltcG9ydCB7IEd1aUVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vR3VpRW52aXJvbm1lbnQnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEJsb2JUeXBlIHtcclxuICBzdGF0aWMgQ09OVEVOVF9UWVBFX1VOS05PV046IHN0cmluZyA9ICcwJztcclxuICBzdGF0aWMgQ09OVEVOVF9UWVBFX0FOU0k6IHN0cmluZyA9ICcxJztcclxuICBzdGF0aWMgQ09OVEVOVF9UWVBFX1VOSUNPREU6IHN0cmluZyA9ICcyJztcclxuICBzdGF0aWMgQ09OVEVOVF9UWVBFX0JJTkFSWTogc3RyaW5nID0gJzMnO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+IHJldHVybnMgdGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgYmxvYjwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJibG9iXCI+XHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPlxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgc3RhdGljIGdldENvbnRlbnRUeXBlKGJsb2I6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICB0cnkge1xyXG4gICAgICBsZXQgdG9rZW5zOiBzdHJpbmdbXSA9IFN0clV0aWwudG9rZW5pemUoYmxvYiwgLyx8Oy8pO1xyXG4gICAgICByZXR1cm4gdG9rZW5zWzRdLmNoYXJBdCgwKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChFeGNlcHRpb24pIHtcclxuICAgICAgdGhyb3cgbmV3IEFwcGxpY2F0aW9uRXhjZXB0aW9uKFwiIGluIEJsb2JUeXBlLmdldENvbnRlbnRUeXBlIGJsb2IgaXMgaW4gaW52YWxpZCBmb3JtYXRcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IENyZWF0ZXMgYW4gZW1wdHkgYmxvYiBwcmVmaXggd2l0aCBhIGdpdmVuIGNlbGwgYXR0cmlidXRlPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInZlY0NlbGxBdHRyXCI+aW4gY2FzZSB0aGlzIGJsb2IgaXMgdmVjdG9yIHRoZSBjZWxscyB0eXBlIGVsc2UgMFxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gYW4gZW1wdHkgYmxvYiBwcmVmaXggd2l0aG91dCB0aGUgJztcIiBhdCB0aGUgZW5kXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBzdGF0aWMgZ2V0RW1wdHlCbG9iUHJlZml4KHZlY0NlbGxBdHRyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIE5TdHJpbmcuRm9ybWF0KFwiMCwwLHswfSx7MX0sMFwiLCAnXFwwJywgdmVjQ2VsbEF0dHIpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiY29udGVudFR5cGVcIj5cclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+XHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBzdGF0aWMgZ2V0QmxvYlByZWZpeEZvckNvbnRlbnRUeXBlKGNvbnRlbnRUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIE5TdHJpbmcuRm9ybWF0KFwiMCwwLHswfSx7MH0sezF9O1wiLCAnXFwwJywgY29udGVudFR5cGUpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiByZXR1cm5zIHRoZSBoZWFkZXIgb25seTwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJzdHJcIj5cclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+XHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBzdGF0aWMgZ2V0UHJlZml4KHN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCBpZHg6IG51bWJlciA9IHN0ci5pbmRleE9mKCc7JykvKic7JyovO1xyXG4gICAgcmV0dXJuIHN0ci5zdWJzdHIoMCwgaWR4ICsgMSk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJDb250ZW50VHlwZVwiPlxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz5cclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBnZXRFbmNvZGluZ0Zyb21Db250ZW50VHlwZShDb250ZW50VHlwZTogc3RyaW5nKTogRW5jb2Rpbmcge1xyXG4gICAgbGV0IGVuY29kaW5nOiBFbmNvZGluZztcclxuXHJcbiAgICBpZiAoQ29udGVudFR5cGUgPT09IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9VTklDT0RFKVxyXG4gICAgICBlbmNvZGluZyA9IEVuY29kaW5nLlVuaWNvZGU7XHJcbiAgICBlbHNlIGlmIChDb250ZW50VHlwZSA9PT0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX0FOU0kpXHJcbiAgICAgIGVuY29kaW5nID0gR3VpRW52aXJvbm1lbnQuRW52aXJvbm1lbnQuR2V0RW5jb2RpbmcoKTtcclxuICAgIGVsc2VcclxuICAgICAgZW5jb2RpbmcgPSBJU09fODg1OV8xX0VuY29kaW5nLklTT184ODU5XzE7XHJcblxyXG4gICAgcmV0dXJuIGVuY29kaW5nO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBUaGlzIGZ1bmN0aW9uIGNvbnZlcnRzIGFuc2kgYnl0ZXMgdG8gdW5pY29kZSBieXRlcy5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIkJ5dGVzSW5NYlwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBwcml2YXRlIHN0YXRpYyBNYlRvVW5pY29kZShCeXRlc0luTWI6IFVpbnQ4QXJyYXkpOiBVaW50OEFycmF5IHtcclxuICAgIGxldCByZXN1bHQ6IFVpbnQ4QXJyYXkgPSBudWxsO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCBVbmljb2RlU3RyaW5nOiBzdHJpbmcgPSBHdWlFbnZpcm9ubWVudC5FbnZpcm9ubWVudC5HZXRFbmNvZGluZygpLkdldFN0cmluZyhCeXRlc0luTWIsIDAsIEJ5dGVzSW5NYi5sZW5ndGgpO1xyXG4gICAgICByZXN1bHQgPSBFbmNvZGluZy5Vbmljb2RlLkdldEJ5dGVzKFVuaWNvZGVTdHJpbmcpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKEV4Y2VwdGlvbikge1xyXG4gICAgICByZXN1bHQgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IFRoaXMgZnVuY3Rpb24gY29udmVydHMgdW5pY29kZSBieXRlcyB0byBhbnNpIGJ5dGVzLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiQnl0ZXNJblVuaWNvZGVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVRvTWIoQnl0ZXNJblVuaWNvZGU6IFVpbnQ4QXJyYXkpOiBVaW50OEFycmF5IHtcclxuICAgIGxldCByZXN1bHQ6IFVpbnQ4QXJyYXkgPSBudWxsO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCBVbmljb2RlU3RyaW5nOiBzdHJpbmcgPSBFbmNvZGluZy5Vbmljb2RlLkdldFN0cmluZyhCeXRlc0luVW5pY29kZSwgMCwgQnl0ZXNJblVuaWNvZGUubGVuZ3RoKTtcclxuXHJcbiAgICAgIHJlc3VsdCA9IEd1aUVudmlyb25tZW50LkVudmlyb25tZW50LkdldEVuY29kaW5nKCkuR2V0Qnl0ZXMoVW5pY29kZVN0cmluZyk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoRXhjZXB0aW9uKSB7XHJcbiAgICAgIHJlc3VsdCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBBc3N1bWVzIHRoZSBnaXZlbiBibG9iIGNvbnRhaW5zIGEgc3RyaW5nIGFuZCByZXR1cm5zIGl0LiBJZiB0aGUgY29udGVudCB0eXBlIG9mIHRoZSBibG9iIGlzIG5vdCBVbmljb2RlXHJcbiAgLy8vIHRoZW4gYXNzdW1lIGl0IGlzIEFOU0kuXHJcbiAgLy8vXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJibG9iXCI+YSB2YWxpZCByZXByZXNlbnRhdGlvbiBvZiBhIGJsb2JcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IHRoZSBzdHJpbmcgY29udGFpbmVkIGJ5IHRoZSBibG9iXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBzdGF0aWMgZ2V0U3RyaW5nKGJsb2I6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmcgPSBudWxsO1xyXG4gICAgbGV0IGJ5dGVzOiBVaW50OEFycmF5ID0gbnVsbDtcclxuXHJcbiAgICBpZiAoQmxvYlR5cGUuaXNWYWxpZEJsb2IoYmxvYikpIHtcclxuICAgICAgbGV0IGNvbnRlbnRUeXBlOiBzdHJpbmcgPSBCbG9iVHlwZS5nZXRDb250ZW50VHlwZShibG9iKTtcclxuICAgICAgaWYgKGNvbnRlbnRUeXBlICE9PSBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5JQ09ERSlcclxuICAgICAgICBjb250ZW50VHlwZSA9IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9BTlNJO1xyXG5cclxuICAgICAgdHJ5IHtcclxuICAgICAgICBieXRlcyA9IEJsb2JUeXBlLmdldEJ5dGVzKGJsb2IpO1xyXG5cclxuICAgICAgICBsZXQgZW5jb2Rpbmc6IEVuY29kaW5nID0gQmxvYlR5cGUuZ2V0RW5jb2RpbmdGcm9tQ29udGVudFR5cGUoY29udGVudFR5cGUpO1xyXG4gICAgICAgIHJlc3VsdCA9IGVuY29kaW5nLkdldFN0cmluZyhieXRlcywgMCwgYnl0ZXMubGVuZ3RoKTtcclxuXHJcbiAgICAgICAgbGV0IGluZGV4OiBudW1iZXIgPSByZXN1bHQuaW5kZXhPZignXFwwJykvKidcdTAwMDAnKi87XHJcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSlcclxuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zdWJzdHIoMCwgaW5kZXgpO1xyXG4gICAgICB9XHJcbiAgICAgIGNhdGNoIChFeGNlcHRpb24pIHtcclxuICAgICAgICByZXN1bHQgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIERlYnVnLkFzc2VydChmYWxzZSk7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gQ3JlYXRlIGEgYmxvYiBvZiB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgdHlwZSBmcm9tIHRoZSBkaXNwbGF5IHN0cmluZ1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiYmxvYlN0clwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiY29udGVudFR5cGVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc3RhdGljIGNyZWF0ZUZyb21TdHJpbmcoYmxvYlN0cjogc3RyaW5nLCBjb250ZW50VHlwZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCBibG9iOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgbGV0IHNyY0NvbnRlbnRUeXBlOiBzdHJpbmcgPSBjb250ZW50VHlwZTtcclxuICAgIGxldCBieXRlczogVWludDhBcnJheSA9IG51bGw7XHJcblxyXG4gICAgaWYgKGNvbnRlbnRUeXBlICE9PSBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5JQ09ERSlcclxuICAgICAgc3JjQ29udGVudFR5cGUgPSBCbG9iVHlwZS5DT05URU5UX1RZUEVfQU5TSTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBpZihibG9iU3RyLmNvbnN0cnVjdG9yID09PSBBcnJheUJ1ZmZlcikge1xyXG4gICAgICAgIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoPEFycmF5QnVmZmVyPjxhbnk+YmxvYlN0cik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbGV0IGVuY29kaW5nOiBFbmNvZGluZyA9IEJsb2JUeXBlLmdldEVuY29kaW5nRnJvbUNvbnRlbnRUeXBlKHNyY0NvbnRlbnRUeXBlKTtcclxuXHJcbiAgICAgICAgYnl0ZXMgPSBlbmNvZGluZy5HZXRCeXRlcyhibG9iU3RyKTtcclxuICAgICAgfVxyXG4gICAgICBibG9iID0gQmxvYlR5cGUuY3JlYXRlRnJvbUJ5dGVzKGJ5dGVzLCBjb250ZW50VHlwZSk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoRXhjZXB0aW9uKSB7XHJcbiAgICAgIGJsb2IgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBibG9iO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBHZXQgYmxvYiBjb250ZW50cyBhcyBieXRlIGFycmF5XHJcbiAgLy8vXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJibG9iXCI+Y29udGVudHMgaW5jbHVkaW5nIGJsb2IgcHJlZml4XHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiBieXRlIGFycmF5IGFjY29yZGluZyB0byBjb250ZW50IHR5cGUgaW4gYmxvYiBwcmVmaXhcclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBnZXRCeXRlcyhzdHI6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xyXG4gICAgbGV0IGJ5dGVzOiBVaW50OEFycmF5ID0gbnVsbDtcclxuICAgIGxldCBkYXRhOiBzdHJpbmcgPSBCbG9iVHlwZS5yZW1vdmVCbG9iUHJlZml4KHN0cik7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IGVuY29kaW5nOiBFbmNvZGluZyA9IElTT184ODU5XzFfRW5jb2RpbmcuSVNPXzg4NTlfMTtcclxuICAgICAgYnl0ZXMgPSBlbmNvZGluZy5HZXRCeXRlcyhkYXRhKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChFeGNlcHRpb24pIHtcclxuICAgICAgYnl0ZXMgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBieXRlcztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gQ3JlYXRlIGEgYmxvYiBvZiB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgdHlwZSBmcm9tIHRoZSBieXRlIGFycmF5XHJcbiAgLy8vXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJCeXRlc1wiPlxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImNvbnRlbnRUeXBlXCI+XHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiBzdHJpbmdcclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBjcmVhdGVGcm9tQnl0ZXMoYnl0ZXM6IFVpbnQ4QXJyYXksIGNvbnRlbnRUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IGJsb2JTdHIgPSAnJztcclxuICAgIGxldCBibG9iUHJlZml4OiBzdHJpbmc7XHJcbiAgICBsZXQgYmxvYkRhdGE6IHN0cmluZztcclxuXHJcbiAgICBibG9iUHJlZml4ID0gQmxvYlR5cGUuZ2V0QmxvYlByZWZpeEZvckNvbnRlbnRUeXBlKGNvbnRlbnRUeXBlKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBsZXQgZW5jb2Rpbmc6IElTT184ODU5XzFfRW5jb2RpbmcgPSBJU09fODg1OV8xX0VuY29kaW5nLklTT184ODU5XzE7XHJcbiAgICAgIGJsb2JEYXRhID0gZW5jb2RpbmcuR2V0U3RyaW5nKGJ5dGVzLCAwLCBieXRlcy5sZW5ndGgpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKEV4Y2VwdGlvbikge1xyXG4gICAgICBibG9iRGF0YSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgYmxvYlN0ciA9IGJsb2JQcmVmaXggKyBibG9iRGF0YTtcclxuXHJcbiAgICByZXR1cm4gYmxvYlN0cjtcclxuICB9XHJcblxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImRlc3RcIj5cclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJzcmNcIj5cclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+XHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBzdGF0aWMgY29weUJsb2IoZGVzdDogc3RyaW5nLCBzcmM6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgc3JjQnl0ZXM6IFVpbnQ4QXJyYXk7XHJcbiAgICBsZXQgZGVzdEJ5dGVzOiBVaW50OEFycmF5O1xyXG5cclxuICAgIGlmIChzcmMgPT09IG51bGwpXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgZWxzZSBpZiAoZGVzdCA9PT0gbnVsbClcclxuICAgICAgcmV0dXJuIHNyYztcclxuXHJcbiAgICBzcmNCeXRlcyA9IEJsb2JUeXBlLmdldEJ5dGVzKHNyYyk7XHJcblxyXG4gICAgbGV0IGRlc3RDb250ZW50VHlwZTogc3RyaW5nID0gQmxvYlR5cGUuZ2V0Q29udGVudFR5cGUoZGVzdCk7XHJcbiAgICBsZXQgc3JjQ29udGVudFR5cGU6IHN0cmluZyA9IEJsb2JUeXBlLmdldENvbnRlbnRUeXBlKHNyYyk7XHJcblxyXG4gICAgaWYgKHNyY0NvbnRlbnRUeXBlID09PSBCbG9iVHlwZS5DT05URU5UX1RZUEVfQU5TSSAmJiBkZXN0Q29udGVudFR5cGUgPT09IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9VTklDT0RFKVxyXG4gICAgICBkZXN0Qnl0ZXMgPSBCbG9iVHlwZS5NYlRvVW5pY29kZShzcmNCeXRlcyk7XHJcbiAgICBlbHNlIGlmIChzcmNDb250ZW50VHlwZSA9PT0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX1VOSUNPREUgJiYgZGVzdENvbnRlbnRUeXBlID09PSBCbG9iVHlwZS5DT05URU5UX1RZUEVfQU5TSSlcclxuICAgICAgZGVzdEJ5dGVzID0gQmxvYlR5cGUuVW5pY29kZVRvTWIoc3JjQnl0ZXMpO1xyXG4gICAgZWxzZVxyXG4gICAgICBkZXN0Qnl0ZXMgPSBzcmNCeXRlcztcclxuXHJcbiAgICBkZXN0ID0gQmxvYlR5cGUuY3JlYXRlRnJvbUJ5dGVzKGRlc3RCeXRlcywgZGVzdENvbnRlbnRUeXBlKTtcclxuXHJcbiAgICByZXR1cm4gZGVzdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gcmVtb3ZlcyBibG9iIHByZWZpeCBmcm9tIHNvdXJjZTwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJzb3VyY2VcIj4tIGJsb2IgdmFsdWVcclxuICAvLy9cclxuICAvLy9cclxuICAvLy8gPC9wYXJhbT5cclxuICBzdGF0aWMgcmVtb3ZlQmxvYlByZWZpeChzb3VyY2U6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgaWR4OiBudW1iZXI7XHJcbiAgICBpZiAoc291cmNlICE9PSBudWxsKSB7XHJcbiAgICAgIGlkeCA9IHNvdXJjZS5pbmRleE9mKCc7Jyk7XHJcbiAgICAgIGlmIChpZHggPCAwKVxyXG4gICAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlVG9Mb2coXCJFcnJvcjogaW52YWxpZCBibG9iIHByZWZpeFwiLCB0cnVlKTtcclxuICAgICAgcmV0dXJuIHNvdXJjZS5zdWJzdHIoaWR4ICsgMSk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBjaGVja3MgaWYgdGhlIGdpdmVuIHN0cmluZyBpcyBhIHZhbGlkIGJsb2I8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiYmxvYlwiPlxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gdHJ1ZSBpZiB0aGUgYmxvYiBpcyB2YWxpZFxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgc3RhdGljIGlzVmFsaWRCbG9iKGJsb2I6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGlzVmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIGlmIChibG9iID09PSBudWxsIHx8IGJsb2IuaW5kZXhPZignOycpIDwgMClcclxuICAgICAgaXNWYWxpZCA9IGZhbHNlO1xyXG5cclxuICAgIGlmIChpc1ZhbGlkKSB7XHJcbiAgICAgIGxldCBjb250ZW50VHlwZTogc3RyaW5nID0gQmxvYlR5cGUuZ2V0Q29udGVudFR5cGUoYmxvYik7XHJcbiAgICAgIGlmIChjb250ZW50VHlwZSAhPT0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX0FOU0kgJiYgY29udGVudFR5cGUgIT09IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9CSU5BUlkgJiYgY29udGVudFR5cGUgIT09IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9VTklDT0RFICYmIGNvbnRlbnRUeXBlICE9PSBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5LTk9XTilcclxuICAgICAgICBpc1ZhbGlkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNWYWxpZDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBzZXRDb250ZW50VHlwZShzdHI6IHN0cmluZywgY29udGVudFR5cGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCBwcmVmaXhMYXN0SW5kZXg6IG51bWJlciA9IHN0ci5pbmRleE9mKFwiO1wiKTtcclxuICAgICAgbGV0IHByZWZpeDogc3RyaW5nID0gc3RyLnN1YnN0cigwLCBwcmVmaXhMYXN0SW5kZXgpO1xyXG5cclxuICAgICAgbGV0IGRhdGFMZW5ndGg6IG51bWJlciA9IHN0ci5sZW5ndGggLSAocHJlZml4Lmxlbmd0aCArIDEpO1xyXG4gICAgICBsZXQgZGF0YTogc3RyaW5nID0gc3RyLnN1YnN0cihwcmVmaXhMYXN0SW5kZXggKyAxLCBkYXRhTGVuZ3RoKTtcclxuXHJcbiAgICAgIGxldCBwcmVmaXhUb2tlbnM6IHN0cmluZ1tdID0gU3RyVXRpbC50b2tlbml6ZShwcmVmaXgsIC8sfDsvKTtcclxuXHJcbiAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBHdWlDb25zdGFudHMuQkxPQl9QUkVGSVhfRUxFTUVOVFNfQ09VTlQ7IGkgPSBpICsgMSkge1xyXG4gICAgICAgIGlmIChpID09PSA0KVxyXG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgY29udGVudFR5cGUgKyBcIixcIjtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyBwcmVmaXhUb2tlbnNbaV0gKyBcIixcIjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gcmVzdWx0LnN1YnN0cigwLCByZXN1bHQubGVuZ3RoIC0gMSkgKyBcIjtcIiArIGRhdGE7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoRXhjZXB0aW9uKSB7XHJcbiAgICAgIHRocm93IG5ldyBBcHBsaWNhdGlvbkV4Y2VwdGlvbihcIiBpbiBCbG9iVHlwZS5zZXRDb250ZW50VHlwZSA6IGludmFsaWQgZm9ybWF0XCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBSZXBsYWNlIHRoZSB2ZWN0b3IncyBjZWxsIGF0dHJpYnV0ZSBpbiB0aGUgYmxvYiBwcmVmaXggYnkgdGhlIHNwZWNpZmllZCBvbmU8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic3RyXCI+YSB2YWxpZCBibG9iIHN0cmluZyAoaS5lLiBwcmVmaXg7ZGF0YSkgPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ2ZWNDZWxsQXR0clwiPmF0dHJpYnV0ZSB0byBpbnNlcnQgaW50byB0aGUgcHJlZml4IDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiBtb2RpZmllZCBibG9iIHN0cmluZyA8L3JldHVybnM+XHJcbiAgc3RhdGljIFNldFZlY0NlbGxBdHRyKHN0cjogc3RyaW5nLCB2ZWNDZWxsQXR0cjogU3RvcmFnZUF0dHJpYnV0ZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IHByZWZpeExhc3RJbmRleDogbnVtYmVyID0gc3RyLmluZGV4T2YoXCI7XCIpO1xyXG4gICAgICBsZXQgcHJlZml4OiBzdHJpbmcgPSBzdHIuc3Vic3RyKDAsIHByZWZpeExhc3RJbmRleCk7XHJcblxyXG4gICAgICBsZXQgZGF0YTogc3RyaW5nID0gc3RyLnN1YnN0cihwcmVmaXhMYXN0SW5kZXggKyAxKTtcclxuXHJcbiAgICAgIGxldCB0b2tlbnM6IHN0cmluZ1tdID0gU3RyVXRpbC50b2tlbml6ZShwcmVmaXgsIC8sfDsvKTtcclxuXHJcbiAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBHdWlDb25zdGFudHMuQkxPQl9QUkVGSVhfRUxFTUVOVFNfQ09VTlQ7IGkgPSBpICsgMSkge1xyXG4gICAgICAgIGlmIChpID09PSAzKVxyXG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgPHN0cmluZz52ZWNDZWxsQXR0ciArIFwiLFwiO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIHRva2Vuc1tpXSArIFwiLFwiO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiByZXN1bHQuc3Vic3RyKDAsIHJlc3VsdC5sZW5ndGggLSAxKSArIFwiO1wiICsgZGF0YTtcclxuICAgIH1cclxuICAgIGNhdGNoIChFeGNlcHRpb24pIHtcclxuICAgICAgdGhyb3cgbmV3IEFwcGxpY2F0aW9uRXhjZXB0aW9uKFwiIGluIFhNTHBhcnNlci5ibG9iUHJlZml4TGVuZ3RoIGludmFsaWQgZm9ybWF0XCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBSZXR1cm5zIHRoZSBWZWN0b3InIGNlbGwgYXR0cmlidXRlIGZyb20gdGhlIHByZWZpeC4gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImJsb2JTdHJcIj5BIHZhbGlkIGJsb2Igc3RyaW5nICAoaS5lLiBwcmVmaXg7ZGF0YSkgPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBHZXRWZWNDZWxsQXR0cihibG9iU3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IHRva2Vuczogc3RyaW5nW10gPSBTdHJVdGlsLnRva2VuaXplKGJsb2JTdHIsIC8sfDsvKTtcclxuXHJcbiAgICAgIHJldHVybiB0b2tlbnNbM10uY2hhckF0KDApO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKEV4Y2VwdGlvbikge1xyXG4gICAgICB0aHJvdyBuZXcgQXBwbGljYXRpb25FeGNlcHRpb24oXCIgaW4gQmxvYlR5cGUuR2V0VmVjQ2VsbEF0dHIoKTogYmxvYiBpcyBpbiBpbnZhbGlkIGZvcm1hdFwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gQ2FsY3VsYXRlIHRoZSBsZW5ndGggb2YgdGhlIGJsb2IgcHJlZml4LiBUaGUgcHJlZml4IGlzIGluIHRoZSBmb3JtYXQ6XHJcbiAgLy8vIDx0dD5cIk9iakhhbmRsZSxWYXJpYW50SWR4LENvbnRlbnRUeXBlLFZlY0NlbGxBdHRyO1wiPC90dD4uIFRoZSBsZW5ndGggaW5jbHVkZXMgdGhlIGNvbW1hcyBhbmQgdGhlXHJcbiAgLy8vIHNlbWljb2xvbi5cclxuICAvLy9cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImJsb2JcIj5hIHZhbGlkIGJsb2JcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IHRoZSBibG9iIHByZWZpeCBsZW5ndGhcclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBibG9iUHJlZml4TGVuZ3RoKGJsb2I6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICB0cnkge1xyXG4gICAgICBsZXQgcHJlZml4TGVuZ3RoOiBudW1iZXIgPSBibG9iLmluZGV4T2YoJzsnKSArIDE7XHJcbiAgICAgIGxldCBwcmVmaXg6IHN0cmluZyA9IGJsb2Iuc3Vic3RyKDAsIHByZWZpeExlbmd0aCk7XHJcblxyXG4gICAgICAvLyBjaGVjayBpZiB0aGUgcHJlZml4IGlzIHZhbGlkXHJcbiAgICAgIGlmIChwcmVmaXhMZW5ndGggPiAwKSB7XHJcbiAgICAgICAgbGV0IHRva2Vuczogc3RyaW5nW10gPSBTdHJVdGlsLnRva2VuaXplKHByZWZpeCwgXCIsXCIpO1xyXG4gICAgICAgIGlmICh0b2tlbnMubGVuZ3RoID09PSBHdWlDb25zdGFudHMuQkxPQl9QUkVGSVhfRUxFTUVOVFNfQ09VTlQpXHJcbiAgICAgICAgICByZXR1cm4gcHJlZml4TGVuZ3RoO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoRXhjZXB0aW9uKSB7XHJcbiAgICAgIC8vIGludmFsaWQgcHJlZml4XHJcbiAgICB9XHJcblxyXG4gICAgdGhyb3cgbmV3IEFwcGxpY2F0aW9uRXhjZXB0aW9uKFwiIGluIFhNTHBhcnNlci5ibG9iUHJlZml4TGVuZ3RoIGludmFsaWQgZm9ybWF0XCIpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBnZXRzIHRoZSBrZXkgZnJvbSBhIGJsb2Igc3RyaW5nXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJibG9iU3RyXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBnZXRLZXkoYmxvYlN0cjogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgIGxldCB0b2tlbnM6IHN0cmluZ1tdID0gU3RyVXRpbC50b2tlbml6ZShibG9iU3RyLCAvLHw7Lyk7XHJcbiAgICBsZXQga2V5OiBudW1iZXIgPSAwO1xyXG5cclxuICAgIGlmICh0b2tlbnMubGVuZ3RoID4gNSkge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGtleSA9IE5OdW1iZXIuUGFyc2UodG9rZW5zWzBdKTtcclxuICAgICAgfVxyXG4gICAgICBjYXRjaCAoRXhjZXB0aW9uKSB7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ga2V5O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBjYWxjdWxhdGVzIHRoZSBibG9iIHNpemUgaGVsZCBpbiB0aGUgc3RyaW5nXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJibG9iXCI+IFRoZSBzdHJpbmcgaG9sZGluZyB0aGUgYmxvYiA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc3RhdGljIGdldEJsb2JTaXplKGJsb2I6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICBsZXQgc2l6ZTogbnVtYmVyID0gMDtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBsZXQgdG9rZW5zOiBzdHJpbmdbXSA9IFN0clV0aWwudG9rZW5pemUoYmxvYiwgLyx8Oy8pO1xyXG4gICAgICBpZiAodG9rZW5zLmxlbmd0aCA+IDUpIHtcclxuICAgICAgICBzaXplID0gYmxvYi5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IDU7IGkgPSBpICsgMSkge1xyXG4gICAgICAgICAgc2l6ZSA9IHNpemUgLSB0b2tlbnNbaV0ubGVuZ3RoO1xyXG4gICAgICAgICAgc2l6ZSA9IHNpemUgLSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY2F0Y2ggKEV4Y2VwdGlvbikge1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzaXplO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBQYXJzZSBjb250ZW50IHR5cGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImNvbnRlbnRUeXBlXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBQYXJzZUNvbnRlbnRUeXBlKGNvbnRlbnRUeXBlOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IG5ld0NvbnRlbnRUeXBlOiBzdHJpbmcgPSAnICc7XHJcbiAgICBzd2l0Y2ggKGNvbnRlbnRUeXBlKSB7XHJcbiAgICAgIGNhc2UgMDpcclxuICAgICAgICBuZXdDb250ZW50VHlwZSA9IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9VTktOT1dOO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDE6XHJcbiAgICAgICAgbmV3Q29udGVudFR5cGUgPSBCbG9iVHlwZS5DT05URU5UX1RZUEVfQU5TSTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAyOlxyXG4gICAgICAgIG5ld0NvbnRlbnRUeXBlID0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX1VOSUNPREU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMzpcclxuICAgICAgICBuZXdDb250ZW50VHlwZSA9IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9CSU5BUlk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3Q29udGVudFR5cGU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
281
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmxvYlR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL21hbmFnZW1lbnQvZGF0YS9CbG9iVHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFvQixPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxNQUFNLE9BQU8sUUFBUTtJQUNuQixNQUFNLENBQUMsb0JBQW9CLEdBQVcsR0FBRyxDQUFDO0lBQzFDLE1BQU0sQ0FBQyxpQkFBaUIsR0FBVyxHQUFHLENBQUM7SUFDdkMsTUFBTSxDQUFDLG9CQUFvQixHQUFXLEdBQUcsQ0FBQztJQUMxQyxNQUFNLENBQUMsbUJBQW1CLEdBQVcsR0FBRyxDQUFDO0lBT3pDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBWTtRQUNoQyxJQUFJO1lBQ0YsSUFBSSxNQUFNLEdBQWEsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckQsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzVCO1FBQ0QsT0FBTyxTQUFTLEVBQUU7WUFDaEIsTUFBTSxJQUFJLG9CQUFvQixDQUFDLHVEQUF1RCxDQUFDLENBQUM7U0FDekY7SUFDSCxDQUFDO0lBT0QsTUFBTSxDQUFDLGtCQUFrQixDQUFDLFdBQW1CO1FBQzNDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFF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QUM7Z0JBQ0osY0FBYyxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDL0MsTUFBTTtZQUNSLEtBQUssQ0FBQztnQkFDSixjQUFjLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUFDO1NBQ2pEO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ2dlciwgU3RvcmFnZUF0dHJpYnV0ZSwgU3RyVXRpbCB9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvbkV4Y2VwdGlvbiwgRGVidWcsIEVuY29kaW5nLCBJU09fODg1OV8xX0VuY29kaW5nLCBOTnVtYmVyLCBOU3RyaW5nIH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQgeyBHdWlDb25zdGFudHMgfSBmcm9tICcuLi8uLi9HdWlDb25zdGFudHMnO1xyXG5pbXBvcnQgeyBHdWlFbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL0d1aUVudmlyb25tZW50JztcclxuXHJcbmV4cG9ydCBjbGFzcyBCbG9iVHlwZSB7XHJcbiAgc3RhdGljIENPTlRFTlRfVFlQRV9VTktOT1dOOiBzdHJpbmcgPSAnMCc7XHJcbiAgc3RhdGljIENPTlRFTlRfVFlQRV9BTlNJOiBzdHJpbmcgPSAnMSc7XHJcbiAgc3RhdGljIENPTlRFTlRfVFlQRV9VTklDT0RFOiBzdHJpbmcgPSAnMic7XHJcbiAgc3RhdGljIENPTlRFTlRfVFlQRV9CSU5BUlk6IHN0cmluZyA9ICczJztcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiByZXR1cm5zIHRoZSBjb250ZW50IHR5cGUgb2YgdGhlIGJsb2I8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiYmxvYlwiPlxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz5cclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBnZXRDb250ZW50VHlwZShibG9iOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IHRva2Vuczogc3RyaW5nW10gPSBTdHJVdGlsLnRva2VuaXplKGJsb2IsIC8sfDsvKTtcclxuICAgICAgcmV0dXJuIHRva2Vuc1s0XS5jaGFyQXQoMCk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoRXhjZXB0aW9uKSB7XHJcbiAgICAgIHRocm93IG5ldyBBcHBsaWNhdGlvbkV4Y2VwdGlvbihcIiBpbiBCbG9iVHlwZS5nZXRDb250ZW50VHlwZSBibG9iIGlzIGluIGludmFsaWQgZm9ybWF0XCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBDcmVhdGVzIGFuIGVtcHR5IGJsb2IgcHJlZml4IHdpdGggYSBnaXZlbiBjZWxsIGF0dHJpYnV0ZTwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ2ZWNDZWxsQXR0clwiPmluIGNhc2UgdGhpcyBibG9iIGlzIHZlY3RvciB0aGUgY2VsbHMgdHlwZSBlbHNlIDBcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IGFuIGVtcHR5IGJsb2IgcHJlZml4IHdpdGhvdXQgdGhlICc7XCIgYXQgdGhlIGVuZFxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgc3RhdGljIGdldEVtcHR5QmxvYlByZWZpeCh2ZWNDZWxsQXR0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBOU3RyaW5nLkZvcm1hdChcIjAsMCx7MH0sezF9LDBcIiwgJ1xcMCcsIHZlY0NlbGxBdHRyKTtcclxuICB9XHJcblxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImNvbnRlbnRUeXBlXCI+XHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPlxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgc3RhdGljIGdldEJsb2JQcmVmaXhGb3JDb250ZW50VHlwZShjb250ZW50VHlwZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBOU3RyaW5nLkZvcm1hdChcIjAsMCx7MH0sezB9LHsxfTtcIiwgJ1xcMCcsIGNvbnRlbnRUeXBlKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gcmV0dXJucyB0aGUgaGVhZGVyIG9ubHk8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic3RyXCI+XHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPlxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgc3RhdGljIGdldFByZWZpeChzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgaWR4OiBudW1iZXIgPSBzdHIuaW5kZXhPZignOycpLyonOycqLztcclxuICAgIHJldHVybiBzdHIuc3Vic3RyKDAsIGlkeCArIDEpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiQ29udGVudFR5cGVcIj5cclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+XHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBzdGF0aWMgZ2V0RW5jb2RpbmdGcm9tQ29udGVudFR5cGUoQ29udGVudFR5cGU6IHN0cmluZyk6IEVuY29kaW5nIHtcclxuICAgIGxldCBlbmNvZGluZzogRW5jb2Rpbmc7XHJcblxyXG4gICAgaWYgKENvbnRlbnRUeXBlID09PSBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5JQ09ERSlcclxuICAgICAgZW5jb2RpbmcgPSBFbmNvZGluZy5Vbmljb2RlO1xyXG4gICAgZWxzZSBpZiAoQ29udGVudFR5cGUgPT09IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9BTlNJKVxyXG4gICAgICBlbmNvZGluZyA9IEd1aUVudmlyb25tZW50LkVudmlyb25tZW50LkdldEVuY29kaW5nKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIGVuY29kaW5nID0gSVNPXzg4NTlfMV9FbmNvZGluZy5JU09fODg1OV8xO1xyXG5cclxuICAgIHJldHVybiBlbmNvZGluZztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gVGhpcyBmdW5jdGlvbiBjb252ZXJ0cyBhbnNpIGJ5dGVzIHRvIHVuaWNvZGUgYnl0ZXMuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJCeXRlc0luTWJcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBzdGF0aWMgTWJUb1VuaWNvZGUoQnl0ZXNJbk1iOiBVaW50OEFycmF5KTogVWludDhBcnJheSB7XHJcbiAgICBsZXQgcmVzdWx0OiBVaW50OEFycmF5ID0gbnVsbDtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBsZXQgVW5pY29kZVN0cmluZzogc3RyaW5nID0gR3VpRW52aXJvbm1lbnQuRW52aXJvbm1lbnQuR2V0RW5jb2RpbmcoKS5HZXRTdHJpbmcoQnl0ZXNJbk1iLCAwLCBCeXRlc0luTWIubGVuZ3RoKTtcclxuICAgICAgcmVzdWx0ID0gRW5jb2RpbmcuVW5pY29kZS5HZXRCeXRlcyhVbmljb2RlU3RyaW5nKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChFeGNlcHRpb24pIHtcclxuICAgICAgcmVzdWx0ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBUaGlzIGZ1bmN0aW9uIGNvbnZlcnRzIHVuaWNvZGUgYnl0ZXMgdG8gYW5zaSBieXRlcy5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIkJ5dGVzSW5Vbmljb2RlXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHByaXZhdGUgc3RhdGljIFVuaWNvZGVUb01iKEJ5dGVzSW5Vbmljb2RlOiBVaW50OEFycmF5KTogVWludDhBcnJheSB7XHJcbiAgICBsZXQgcmVzdWx0OiBVaW50OEFycmF5ID0gbnVsbDtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBsZXQgVW5pY29kZVN0cmluZzogc3RyaW5nID0gRW5jb2RpbmcuVW5pY29kZS5HZXRTdHJpbmcoQnl0ZXNJblVuaWNvZGUsIDAsIEJ5dGVzSW5Vbmljb2RlLmxlbmd0aCk7XHJcblxyXG4gICAgICByZXN1bHQgPSBHdWlFbnZpcm9ubWVudC5FbnZpcm9ubWVudC5HZXRFbmNvZGluZygpLkdldEJ5dGVzKFVuaWNvZGVTdHJpbmcpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKEV4Y2VwdGlvbikge1xyXG4gICAgICByZXN1bHQgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gQXNzdW1lcyB0aGUgZ2l2ZW4gYmxvYiBjb250YWlucyBhIHN0cmluZyBhbmQgcmV0dXJucyBpdC4gSWYgdGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgYmxvYiBpcyBub3QgVW5pY29kZVxyXG4gIC8vLyB0aGVuIGFzc3VtZSBpdCBpcyBBTlNJLlxyXG4gIC8vL1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiYmxvYlwiPmEgdmFsaWQgcmVwcmVzZW50YXRpb24gb2YgYSBibG9iXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB0aGUgc3RyaW5nIGNvbnRhaW5lZCBieSB0aGUgYmxvYlxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgc3RhdGljIGdldFN0cmluZyhibG9iOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdDogc3RyaW5nID0gbnVsbDtcclxuICAgIGxldCBieXRlczogVWludDhBcnJheSA9IG51bGw7XHJcblxyXG4gICAgaWYgKEJsb2JUeXBlLmlzVmFsaWRCbG9iKGJsb2IpKSB7XHJcbiAgICAgIGxldCBjb250ZW50VHlwZTogc3RyaW5nID0gQmxvYlR5cGUuZ2V0Q29udGVudFR5cGUoYmxvYik7XHJcbiAgICAgIGlmIChjb250ZW50VHlwZSAhPT0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX1VOSUNPREUpXHJcbiAgICAgICAgY29udGVudFR5cGUgPSBCbG9iVHlwZS5DT05URU5UX1RZUEVfQU5TSTtcclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgYnl0ZXMgPSBCbG9iVHlwZS5nZXRCeXRlcyhibG9iKTtcclxuXHJcbiAgICAgICAgbGV0IGVuY29kaW5nOiBFbmNvZGluZyA9IEJsb2JUeXBlLmdldEVuY29kaW5nRnJvbUNvbnRlbnRUeXBlKGNvbnRlbnRUeXBlKTtcclxuICAgICAgICByZXN1bHQgPSBlbmNvZGluZy5HZXRTdHJpbmcoYnl0ZXMsIDAsIGJ5dGVzLmxlbmd0aCk7XHJcblxyXG4gICAgICAgIGxldCBpbmRleDogbnVtYmVyID0gcmVzdWx0LmluZGV4T2YoJ1xcMCcpLyonXHUwMDAwJyovO1xyXG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpXHJcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQuc3Vic3RyKDAsIGluZGV4KTtcclxuICAgICAgfVxyXG4gICAgICBjYXRjaCAoRXhjZXB0aW9uKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICBEZWJ1Zy5Bc3NlcnQoZmFsc2UpO1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IENyZWF0ZSBhIGJsb2Igb2YgdGhlIHNwZWNpZmllZCBjb250ZW50IHR5cGUgZnJvbSB0aGUgZGlzcGxheSBzdHJpbmdcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImJsb2JTdHJcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImNvbnRlbnRUeXBlXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBjcmVhdGVGcm9tU3RyaW5nKGJsb2JTdHI6IHN0cmluZywgY29udGVudFR5cGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgYmxvYjogc3RyaW5nID0gbnVsbDtcclxuICAgIGxldCBzcmNDb250ZW50VHlwZTogc3RyaW5nID0gY29udGVudFR5cGU7XHJcbiAgICBsZXQgYnl0ZXM6IFVpbnQ4QXJyYXkgPSBudWxsO1xyXG5cclxuICAgIGlmIChjb250ZW50VHlwZSAhPT0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX1VOSUNPREUpXHJcbiAgICAgIHNyY0NvbnRlbnRUeXBlID0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX0FOU0k7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgaWYoYmxvYlN0ci5jb25zdHJ1Y3RvciA9PT0gQXJyYXlCdWZmZXIpIHtcclxuICAgICAgICBieXRlcyA9IG5ldyBVaW50OEFycmF5KDxBcnJheUJ1ZmZlcj48YW55PmJsb2JTdHIpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGxldCBlbmNvZGluZzogRW5jb2RpbmcgPSBCbG9iVHlwZS5nZXRFbmNvZGluZ0Zyb21Db250ZW50VHlwZShzcmNDb250ZW50VHlwZSk7XHJcblxyXG4gICAgICAgIGJ5dGVzID0gZW5jb2RpbmcuR2V0Qnl0ZXMoYmxvYlN0cik7XHJcbiAgICAgIH1cclxuICAgICAgYmxvYiA9IEJsb2JUeXBlLmNyZWF0ZUZyb21CeXRlcyhieXRlcywgY29udGVudFR5cGUpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKEV4Y2VwdGlvbikge1xyXG4gICAgICBibG9iID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYmxvYjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gR2V0IGJsb2IgY29udGVudHMgYXMgYnl0ZSBhcnJheVxyXG4gIC8vL1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiYmxvYlwiPmNvbnRlbnRzIGluY2x1ZGluZyBibG9iIHByZWZpeFxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gYnl0ZSBhcnJheSBhY2NvcmRpbmcgdG8gY29udGVudCB0eXBlIGluIGJsb2IgcHJlZml4XHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBzdGF0aWMgZ2V0Qnl0ZXMoc3RyOiBzdHJpbmcpOiBVaW50OEFycmF5IHtcclxuICAgIGxldCBieXRlczogVWludDhBcnJheSA9IG51bGw7XHJcbiAgICBsZXQgZGF0YTogc3RyaW5nID0gQmxvYlR5cGUucmVtb3ZlQmxvYlByZWZpeChzdHIpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCBlbmNvZGluZzogRW5jb2RpbmcgPSBJU09fODg1OV8xX0VuY29kaW5nLklTT184ODU5XzE7XHJcbiAgICAgIGJ5dGVzID0gZW5jb2RpbmcuR2V0Qnl0ZXMoZGF0YSk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoRXhjZXB0aW9uKSB7XHJcbiAgICAgIGJ5dGVzID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYnl0ZXM7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IENyZWF0ZSBhIGJsb2Igb2YgdGhlIHNwZWNpZmllZCBjb250ZW50IHR5cGUgZnJvbSB0aGUgYnl0ZSBhcnJheVxyXG4gIC8vL1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiQnl0ZXNcIj5cclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjb250ZW50VHlwZVwiPlxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gc3RyaW5nXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBzdGF0aWMgY3JlYXRlRnJvbUJ5dGVzKGJ5dGVzOiBVaW50OEFycmF5LCBjb250ZW50VHlwZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCBibG9iU3RyID0gJyc7XHJcbiAgICBsZXQgYmxvYlByZWZpeDogc3RyaW5nO1xyXG4gICAgbGV0IGJsb2JEYXRhOiBzdHJpbmc7XHJcblxyXG4gICAgYmxvYlByZWZpeCA9IEJsb2JUeXBlLmdldEJsb2JQcmVmaXhGb3JDb250ZW50VHlwZShjb250ZW50VHlwZSk7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IGVuY29kaW5nOiBJU09fODg1OV8xX0VuY29kaW5nID0gSVNPXzg4NTlfMV9FbmNvZGluZy5JU09fODg1OV8xO1xyXG4gICAgICBibG9iRGF0YSA9IGVuY29kaW5nLkdldFN0cmluZyhieXRlcywgMCwgYnl0ZXMubGVuZ3RoKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChFeGNlcHRpb24pIHtcclxuICAgICAgYmxvYkRhdGEgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGJsb2JTdHIgPSBibG9iUHJlZml4ICsgYmxvYkRhdGE7XHJcblxyXG4gICAgcmV0dXJuIGJsb2JTdHI7XHJcbiAgfVxyXG5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJkZXN0XCI+XHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic3JjXCI+XHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPlxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgc3RhdGljIGNvcHlCbG9iKGRlc3Q6IHN0cmluZywgc3JjOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHNyY0J5dGVzOiBVaW50OEFycmF5O1xyXG4gICAgbGV0IGRlc3RCeXRlczogVWludDhBcnJheTtcclxuXHJcbiAgICBpZiAoc3JjID09PSBudWxsKVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIGVsc2UgaWYgKGRlc3QgPT09IG51bGwpXHJcbiAgICAgIHJldHVybiBzcmM7XHJcblxyXG4gICAgc3JjQnl0ZXMgPSBCbG9iVHlwZS5nZXRCeXRlcyhzcmMpO1xyXG5cclxuICAgIGxldCBkZXN0Q29udGVudFR5cGU6IHN0cmluZyA9IEJsb2JUeXBlLmdldENvbnRlbnRUeXBlKGRlc3QpO1xyXG4gICAgbGV0IHNyY0NvbnRlbnRUeXBlOiBzdHJpbmcgPSBCbG9iVHlwZS5nZXRDb250ZW50VHlwZShzcmMpO1xyXG5cclxuICAgIGlmIChzcmNDb250ZW50VHlwZSA9PT0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX0FOU0kgJiYgZGVzdENvbnRlbnRUeXBlID09PSBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5JQ09ERSlcclxuICAgICAgZGVzdEJ5dGVzID0gQmxvYlR5cGUuTWJUb1VuaWNvZGUoc3JjQnl0ZXMpO1xyXG4gICAgZWxzZSBpZiAoc3JjQ29udGVudFR5cGUgPT09IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9VTklDT0RFICYmIGRlc3RDb250ZW50VHlwZSA9PT0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX0FOU0kpXHJcbiAgICAgIGRlc3RCeXRlcyA9IEJsb2JUeXBlLlVuaWNvZGVUb01iKHNyY0J5dGVzKTtcclxuICAgIGVsc2VcclxuICAgICAgZGVzdEJ5dGVzID0gc3JjQnl0ZXM7XHJcblxyXG4gICAgZGVzdCA9IEJsb2JUeXBlLmNyZWF0ZUZyb21CeXRlcyhkZXN0Qnl0ZXMsIGRlc3RDb250ZW50VHlwZSk7XHJcblxyXG4gICAgcmV0dXJuIGRlc3Q7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IHJlbW92ZXMgYmxvYiBwcmVmaXggZnJvbSBzb3VyY2U8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic291cmNlXCI+LSBibG9iIHZhbHVlXHJcbiAgLy8vXHJcbiAgLy8vXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgc3RhdGljIHJlbW92ZUJsb2JQcmVmaXgoc291cmNlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IGlkeDogbnVtYmVyO1xyXG4gICAgaWYgKHNvdXJjZSAhPT0gbnVsbCkge1xyXG4gICAgICBpZHggPSBzb3VyY2UuaW5kZXhPZignOycpO1xyXG4gICAgICBpZiAoaWR4IDwgMClcclxuICAgICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVRvTG9nKFwiRXJyb3I6IGludmFsaWQgYmxvYiBwcmVmaXhcIiwgdHJ1ZSk7XHJcbiAgICAgIHJldHVybiBzb3VyY2Uuc3Vic3RyKGlkeCArIDEpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gY2hlY2tzIGlmIHRoZSBnaXZlbiBzdHJpbmcgaXMgYSB2YWxpZCBibG9iPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImJsb2JcIj5cclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IHRydWUgaWYgdGhlIGJsb2IgaXMgdmFsaWRcclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBpc1ZhbGlkQmxvYihibG9iOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGxldCBpc1ZhbGlkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBpZiAoYmxvYiA9PT0gbnVsbCB8fCBibG9iLmluZGV4T2YoJzsnKSA8IDApXHJcbiAgICAgIGlzVmFsaWQgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoaXNWYWxpZCkge1xyXG4gICAgICBsZXQgY29udGVudFR5cGU6IHN0cmluZyA9IEJsb2JUeXBlLmdldENvbnRlbnRUeXBlKGJsb2IpO1xyXG4gICAgICBpZiAoY29udGVudFR5cGUgIT09IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9BTlNJICYmIGNvbnRlbnRUeXBlICE9PSBCbG9iVHlwZS5DT05URU5UX1RZUEVfQklOQVJZICYmIGNvbnRlbnRUeXBlICE9PSBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5JQ09ERSAmJiBjb250ZW50VHlwZSAhPT0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX1VOS05PV04pXHJcbiAgICAgICAgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzVmFsaWQ7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgc2V0Q29udGVudFR5cGUoc3RyOiBzdHJpbmcsIGNvbnRlbnRUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBsZXQgcHJlZml4TGFzdEluZGV4OiBudW1iZXIgPSBzdHIuaW5kZXhPZihcIjtcIik7XHJcbiAgICAgIGxldCBwcmVmaXg6IHN0cmluZyA9IHN0ci5zdWJzdHIoMCwgcHJlZml4TGFzdEluZGV4KTtcclxuXHJcbiAgICAgIGxldCBkYXRhTGVuZ3RoOiBudW1iZXIgPSBzdHIubGVuZ3RoIC0gKHByZWZpeC5sZW5ndGggKyAxKTtcclxuICAgICAgbGV0IGRhdGE6IHN0cmluZyA9IHN0ci5zdWJzdHIocHJlZml4TGFzdEluZGV4ICsgMSwgZGF0YUxlbmd0aCk7XHJcblxyXG4gICAgICBsZXQgcHJlZml4VG9rZW5zOiBzdHJpbmdbXSA9IFN0clV0aWwudG9rZW5pemUocHJlZml4LCAvLHw7Lyk7XHJcblxyXG4gICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgR3VpQ29uc3RhbnRzLkJMT0JfUFJFRklYX0VMRU1FTlRTX0NPVU5UOyBpID0gaSArIDEpIHtcclxuICAgICAgICBpZiAoaSA9PT0gNClcclxuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIGNvbnRlbnRUeXBlICsgXCIsXCI7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgcHJlZml4VG9rZW5zW2ldICsgXCIsXCI7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHJlc3VsdC5zdWJzdHIoMCwgcmVzdWx0Lmxlbmd0aCAtIDEpICsgXCI7XCIgKyBkYXRhO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKEV4Y2VwdGlvbikge1xyXG4gICAgICB0aHJvdyBuZXcgQXBwbGljYXRpb25FeGNlcHRpb24oXCIgaW4gQmxvYlR5cGUuc2V0Q29udGVudFR5cGUgOiBpbnZhbGlkIGZvcm1hdFwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gUmVwbGFjZSB0aGUgdmVjdG9yJ3MgY2VsbCBhdHRyaWJ1dGUgaW4gdGhlIGJsb2IgcHJlZml4IGJ5IHRoZSBzcGVjaWZpZWQgb25lPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInN0clwiPmEgdmFsaWQgYmxvYiBzdHJpbmcgKGkuZS4gcHJlZml4O2RhdGEpIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidmVjQ2VsbEF0dHJcIj5hdHRyaWJ1dGUgdG8gaW5zZXJ0IGludG8gdGhlIHByZWZpeCA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gbW9kaWZpZWQgYmxvYiBzdHJpbmcgPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBTZXRWZWNDZWxsQXR0cihzdHI6IHN0cmluZywgdmVjQ2VsbEF0dHI6IFN0b3JhZ2VBdHRyaWJ1dGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdDogc3RyaW5nID0gXCJcIjtcclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCBwcmVmaXhMYXN0SW5kZXg6IG51bWJlciA9IHN0ci5pbmRleE9mKFwiO1wiKTtcclxuICAgICAgbGV0IHByZWZpeDogc3RyaW5nID0gc3RyLnN1YnN0cigwLCBwcmVmaXhMYXN0SW5kZXgpO1xyXG5cclxuICAgICAgbGV0IGRhdGE6IHN0cmluZyA9IHN0ci5zdWJzdHIocHJlZml4TGFzdEluZGV4ICsgMSk7XHJcblxyXG4gICAgICBsZXQgdG9rZW5zOiBzdHJpbmdbXSA9IFN0clV0aWwudG9rZW5pemUocHJlZml4LCAvLHw7Lyk7XHJcblxyXG4gICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgR3VpQ29uc3RhbnRzLkJMT0JfUFJFRklYX0VMRU1FTlRTX0NPVU5UOyBpID0gaSArIDEpIHtcclxuICAgICAgICBpZiAoaSA9PT0gMylcclxuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIDxzdHJpbmc+dmVjQ2VsbEF0dHIgKyBcIixcIjtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyB0b2tlbnNbaV0gKyBcIixcIjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gcmVzdWx0LnN1YnN0cigwLCByZXN1bHQubGVuZ3RoIC0gMSkgKyBcIjtcIiArIGRhdGE7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoRXhjZXB0aW9uKSB7XHJcbiAgICAgIHRocm93IG5ldyBBcHBsaWNhdGlvbkV4Y2VwdGlvbihcIiBpbiBYTUxwYXJzZXIuYmxvYlByZWZpeExlbmd0aCBpbnZhbGlkIGZvcm1hdFwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gUmV0dXJucyB0aGUgVmVjdG9yJyBjZWxsIGF0dHJpYnV0ZSBmcm9tIHRoZSBwcmVmaXguIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJibG9iU3RyXCI+QSB2YWxpZCBibG9iIHN0cmluZyAgKGkuZS4gcHJlZml4O2RhdGEpIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgR2V0VmVjQ2VsbEF0dHIoYmxvYlN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCB0b2tlbnM6IHN0cmluZ1tdID0gU3RyVXRpbC50b2tlbml6ZShibG9iU3RyLCAvLHw7Lyk7XHJcblxyXG4gICAgICByZXR1cm4gdG9rZW5zWzNdLmNoYXJBdCgwKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChFeGNlcHRpb24pIHtcclxuICAgICAgdGhyb3cgbmV3IEFwcGxpY2F0aW9uRXhjZXB0aW9uKFwiIGluIEJsb2JUeXBlLkdldFZlY0NlbGxBdHRyKCk6IGJsb2IgaXMgaW4gaW52YWxpZCBmb3JtYXRcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IENhbGN1bGF0ZSB0aGUgbGVuZ3RoIG9mIHRoZSBibG9iIHByZWZpeC4gVGhlIHByZWZpeCBpcyBpbiB0aGUgZm9ybWF0OlxyXG4gIC8vLyA8dHQ+XCJPYmpIYW5kbGUsVmFyaWFudElkeCxDb250ZW50VHlwZSxWZWNDZWxsQXR0cjtcIjwvdHQ+LiBUaGUgbGVuZ3RoIGluY2x1ZGVzIHRoZSBjb21tYXMgYW5kIHRoZVxyXG4gIC8vLyBzZW1pY29sb24uXHJcbiAgLy8vXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJibG9iXCI+YSB2YWxpZCBibG9iXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB0aGUgYmxvYiBwcmVmaXggbGVuZ3RoXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBzdGF0aWMgYmxvYlByZWZpeExlbmd0aChibG9iOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IHByZWZpeExlbmd0aDogbnVtYmVyID0gYmxvYi5pbmRleE9mKCc7JykgKyAxO1xyXG4gICAgICBsZXQgcHJlZml4OiBzdHJpbmcgPSBibG9iLnN1YnN0cigwLCBwcmVmaXhMZW5ndGgpO1xyXG5cclxuICAgICAgLy8gY2hlY2sgaWYgdGhlIHByZWZpeCBpcyB2YWxpZFxyXG4gICAgICBpZiAocHJlZml4TGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGxldCB0b2tlbnM6IHN0cmluZ1tdID0gU3RyVXRpbC50b2tlbml6ZShwcmVmaXgsIFwiLFwiKTtcclxuICAgICAgICBpZiAodG9rZW5zLmxlbmd0aCA9PT0gR3VpQ29uc3RhbnRzLkJMT0JfUFJFRklYX0VMRU1FTlRTX0NPVU5UKVxyXG4gICAgICAgICAgcmV0dXJuIHByZWZpeExlbmd0aDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY2F0Y2ggKEV4Y2VwdGlvbikge1xyXG4gICAgICAvLyBpbnZhbGlkIHByZWZpeFxyXG4gICAgfVxyXG5cclxuICAgIHRocm93IG5ldyBBcHBsaWNhdGlvbkV4Y2VwdGlvbihcIiBpbiBYTUxwYXJzZXIuYmxvYlByZWZpeExlbmd0aCBpbnZhbGlkIGZvcm1hdFwiKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gZ2V0cyB0aGUga2V5IGZyb20gYSBibG9iIHN0cmluZ1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiYmxvYlN0clwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgZ2V0S2V5KGJsb2JTdHI6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICBsZXQgdG9rZW5zOiBzdHJpbmdbXSA9IFN0clV0aWwudG9rZW5pemUoYmxvYlN0ciwgLyx8Oy8pO1xyXG4gICAgbGV0IGtleTogbnVtYmVyID0gMDtcclxuXHJcbiAgICBpZiAodG9rZW5zLmxlbmd0aCA+IDUpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBrZXkgPSBOTnVtYmVyLlBhcnNlKHRva2Vuc1swXSk7XHJcbiAgICAgIH1cclxuICAgICAgY2F0Y2ggKEV4Y2VwdGlvbikge1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGtleTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gY2FsY3VsYXRlcyB0aGUgYmxvYiBzaXplIGhlbGQgaW4gdGhlIHN0cmluZ1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiYmxvYlwiPiBUaGUgc3RyaW5nIGhvbGRpbmcgdGhlIGJsb2IgPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBnZXRCbG9iU2l6ZShibG9iOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgbGV0IHNpemU6IG51bWJlciA9IDA7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IHRva2Vuczogc3RyaW5nW10gPSBTdHJVdGlsLnRva2VuaXplKGJsb2IsIC8sfDsvKTtcclxuICAgICAgaWYgKHRva2Vucy5sZW5ndGggPiA1KSB7XHJcbiAgICAgICAgc2l6ZSA9IGJsb2IubGVuZ3RoO1xyXG4gICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCA1OyBpID0gaSArIDEpIHtcclxuICAgICAgICAgIHNpemUgPSBzaXplIC0gdG9rZW5zW2ldLmxlbmd0aDtcclxuICAgICAgICAgIHNpemUgPSBzaXplIC0gMTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoIChFeGNlcHRpb24pIHtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc2l6ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gUGFyc2UgY29udGVudCB0eXBlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjb250ZW50VHlwZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgUGFyc2VDb250ZW50VHlwZShjb250ZW50VHlwZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGxldCBuZXdDb250ZW50VHlwZTogc3RyaW5nID0gJyAnO1xyXG4gICAgc3dpdGNoIChjb250ZW50VHlwZSkge1xyXG4gICAgICBjYXNlIDA6XHJcbiAgICAgICAgbmV3Q29udGVudFR5cGUgPSBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5LTk9XTjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAxOlxyXG4gICAgICAgIG5ld0NvbnRlbnRUeXBlID0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX0FOU0k7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMjpcclxuICAgICAgICBuZXdDb250ZW50VHlwZSA9IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9VTklDT0RFO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDM6XHJcbiAgICAgICAgbmV3Q29udGVudFR5cGUgPSBCbG9iVHlwZS5DT05URU5UX1RZUEVfQklOQVJZO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ld0NvbnRlbnRUeXBlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -211,4 +211,4 @@ export class DcValues {
|
|
|
211
211
|
return NString.Format("{{DCValues 0x{0:X8}, {1} refs}}", this._id, this._refCount);
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGNWYWx1ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL21hbmFnZW1lbnQvZGF0YS9EY1ZhbHVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFDLGdCQUFnQixFQUFFLE9BQU8sRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFDLG9CQUFvQixFQUFFLE9BQU8sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFHeEMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFXLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBVyxZQUFZLENBQUMsaUJBQWlCLENBQUM7QUFHaEUsTUFBTSxPQUFPLFFBQVE7SUFHWCxHQUFHLEdBQVcsQ0FBQyxDQUFDO0lBQ2hCLEtBQUssR0FBcUIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0lBQ2hELFNBQVMsR0FBVyxDQUFDLENBQUM7SUFDdEIsVUFBVSxHQUFjLElBQUksQ0FBQztJQUM3QixjQUFjLEdBQVksS0FBSyxDQUFDO0lBQ2hDLFFBQVEsR0FBZSxJQUFJLENBQUM7SUFDNUIsU0FBUyxHQUFhLElBQUksQ0FBQztJQUMzQixTQUFTLEdBQWEsSUFBSSxDQUFDO0lBRW5DLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQU9ELFlBQVksS0FBYztRQUN4QixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDekIsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFj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QztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFNRCxNQUFNLENBQUMsR0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSTtZQUV6QixPQUFPLEtBQUssQ0FBQztRQUVmLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBS0QsWUFBWTtRQUNWLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBS0QsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLG9CQUFvQixDQUFDLHlEQUF5RCxDQUFDLENBQUM7UUFDNUYsQ0FBQztJQUNILENBQUM7SUFLRCxRQUFRO1FBQ04sT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGlDQUFpQyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SVJlZmVyZW5jZWRPYmplY3R9IGZyb20gXCIuL0lSZWZlcmVuY2VkT2JqZWN0XCI7XHJcbmltcG9ydCB7R3VpQ29uc3RhbnRzfSBmcm9tIFwiLi4vLi4vR3VpQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7U3RvcmFnZUF0dHJpYnV0ZSwgU3RyVXRpbH0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtOVU1fVFlQRX0gZnJvbSBcIi4vTlVNX1RZUEVcIjtcclxuaW1wb3J0IHtBcHBsaWNhdGlvbkV4Y2VwdGlvbiwgTlN0cmluZ30gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7VmVjdG9yVHlwZX0gZnJvbSBcIi4vVmVjdG9yVHlwZVwiO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBFTVBUWV9EQ1JFRjogbnVtYmVyID0gLTI7XHJcbmV4cG9ydCBjb25zdCBOT1RfRk9VTkQ6IG51bWJlciA9IEd1aUNvbnN0YW50cy5ERUZBVUxUX1ZBTFVFX0lOVDtcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgRGNWYWx1ZXMgaW1wbGVtZW50cyBJUmVmZXJlbmNlZE9iamVjdCB7XHJcblxyXG5cclxuICBwcml2YXRlIF9pZDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF90eXBlOiBTdG9yYWdlQXR0cmlidXRlID0gU3RvcmFnZUF0dHJpYnV0ZS5OT05FOyAvLyBBbHBoYSB8IE51bWVyaWMgfCBEYXRlIHwgVGltZSB8IExvZ2ljYWxcclxuICBwcml2YXRlIF9yZWZDb3VudDogbnVtYmVyID0gMDsgLy8gcmVmZXJlbmNlcyBjb3VudGVyXHJcbiAgcHJpdmF0ZSBfbnVsbEZsYWdzOiBib29sZWFuW10gPSBudWxsOyAvLyBsaW5rZWQgbnVsbCB2YWx1ZSBmbGFnc1xyXG4gIHByaXZhdGUgX2lzTnVtZXJpY1R5cGU6IGJvb2xlYW4gPSBmYWxzZTsgLy8gdHJ1ZSBpZiB0aGUgdHlwZSBpcyBvbmUgb2Y6IG51bWVyaWMsIGRhdGUsIHRpbWVcclxuICBwcml2YXRlIF9udW1WYWxzOiBOVU1fVFlQRVtdID0gbnVsbDsgLy8gbnVtZXJpYyBsaW5rZWQgdmFsdWVzXHJcbiAgcHJpdmF0ZSBfbGlua1ZhbHM6IHN0cmluZ1tdID0gbnVsbDsgLy8gbGlua2VkIHZhbHVlc1xyXG4gIHByaXZhdGUgX2Rpc3BWYWxzOiBzdHJpbmdbXSA9IG51bGw7IC8vIGRpc3BsYXkgdmFsdWVzXHJcblxyXG4gIGdldCBIYXNSZWZlcmVuY2VzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlZkNvdW50ID4gMDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy9cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImVtcHR5XCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJpc1ZlY3RvclwiPjwvcGFyYW0+XHJcbiAgY29uc3RydWN0b3IoZW1wdHk6IGJvb2xlYW4pIHtcclxuICAgIGlmIChlbXB0eSkge1xyXG4gICAgICB0aGlzLl9pZCA9IEVNUFRZX0RDUkVGO1xyXG4gICAgfVxyXG4gICAgdGhpcy5faXNOdW1lcmljVHlwZSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBSZXR1cm5zIHRoZSBhdHRyIG9mIERjVmFsdWVzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBHZXRBdHRyKCk6IFN0b3JhZ2VBdHRyaWJ1dGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XHJcbiAgfVxyXG5cclxuICBzZXRUeXBlKHR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUpOiB2b2lkIHtcclxuICAgIHRoaXMuX3R5cGUgPSB0eXBlO1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuTUVNTylcclxuICAgICAgdGhpcy5fdHlwZSA9IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEE7XHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDIHx8IHRoaXMuX3R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuREFURSB8fFxyXG4gICAgICB0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLlRJTUUpIHtcclxuICAgICAgdGhpcy5faXNOdW1lcmljVHlwZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBTZXRJRChuZXdJZDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pZCA9IG5ld0lkO1xyXG4gIH1cclxuXHJcbiAgU2V0RGlzcGxheVZhbHVlcyhkaXNwbGF5VmFsdWVzOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgaWYgKGRpc3BsYXlWYWx1ZXMgIT09IG51bGwpXHJcbiAgICAgIHRoaXMuX2Rpc3BWYWxzID0gZGlzcGxheVZhbHVlcy5zbGljZSgpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLl9kaXNwVmFscyA9IG51bGw7XHJcbiAgfVxyXG5cclxuICBTZXRMaW5rVmFsdWVzKGxpbmtWYWx1ZXM6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICBpZiAobGlua1ZhbHVlcyAhPT0gbnVsbClcclxuICAgICAgdGhpcy5fbGlua1ZhbHMgPSBsaW5rVmFsdWVzLnNsaWNlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX2xpbmtWYWxzID0gbnVsbDtcclxuXHJcbiAgICB0aGlzLnNldE51bWVyaWNWYWxzKCk7XHJcbiAgfVxyXG5cclxuICBzZXROdWxsRmxhZ3MobnVsbEZsYWdzOiBib29sZWFuW10pOiB2b2lkIHtcclxuICAgIGlmIChudWxsRmxhZ3MgIT09IG51bGwpXHJcbiAgICAgIHRoaXMuX251bGxGbGFncyA9IG51bGxGbGFncy5zbGljZSgpO1xyXG5cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fbnVsbEZsYWdzID0gbnVsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TnVtZXJpY1ZhbHMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5faXNOdW1lcmljVHlwZSAmJiB0aGlzLl9saW5rVmFscyAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLl9udW1WYWxzID0gbmV3IEFycmF5PE5VTV9UWVBFPih0aGlzLl9saW5rVmFscy5sZW5ndGgpO1xyXG4gICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgdGhpcy5fbGlua1ZhbHMubGVuZ3RoOyBpID0gaSArIDEpIHtcclxuICAgICAgICB0aGlzLl9udW1WYWxzW2ldID0gbmV3IE5VTV9UWVBFKHRoaXMuX2xpbmtWYWxzW2ldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuX251bVZhbHMgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdGhlIGlkIG9mIHRoaXMgZGNWYWxzIG9iamVjdFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0SWQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9pZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdGhlIGRpc3BsYXkgdmFsdWVzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXREaXNwVmFscygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcFZhbHM7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHJldHVybiBMaW5rIGZpZWxkIHZhbHVlcy5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIEdldExpbmtWYWxzKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB0aGlzLl9saW5rVmFscztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSBhcnJheSBvZiBpbmRpY2UgZm9yIGFuIGl0ZW0gaW4gdGhlIGxpc3QgYnkgY29tcGFyaW5nIHRoZSBtZ1ZhbCB0byB0aGUgbGlua2VkIHZhbHVlIG9yICgtMSkgaWYgbm9uZSB3YXNcclxuICAvLy8gICBmb3VuZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJtZ1ZhbFwiPnRoZSBpbnRlcm5hbCB2YWx1ZSB0byBsb29rIGZvciA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaXNWZWN0b3JWYWx1ZVwiPkRlbm90ZXMgd2hldGhlciB0aGUgdmFsdWUgaW4gbWdWYWwgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSB2ZWN0b3IgKHRydWUpIG9yIG5vdCAoZmFsc2UpLjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpc051bGxcIj50cnVlIGlmIHRoZSB2YWx1ZSB0byBsb29rIGZvciBpcyBudWxsIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJleHRyYVZhbHNcIj5BZGRpdGlvbmFsIHZhbHVlcywgcHJlcGVuZGVkIHRvIHRoZSBzZWFyY2hlZCB2YWx1ZXMuPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJleHRyYU51bXNcIj5BZGRpdGlvbmFsIG51bWVyaWMgdmFsdWVzIHRvIGJlIHByZXBlbmRlZCB0byB0aGUgc2VhcmNoZWQgdmFsdWVzLjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzcGxpdENvbW1hU2VwZXJhdGVkVmFsc1wiPnRvIHNwbGl0IHRoZSB2YWwgb24gY29tbWEgb3Igbm90IDwvcGFyYW0+XHJcbiAgZ2V0SW5kZXhPZihtZ1ZhbDogc3RyaW5nLCBpc1ZlY3RvclZhbHVlOiBib29sZWFuLCBpc051bGw6IGJvb2xlYW4sIGV4dHJhVmFsczogc3RyaW5nW10sIGV4dHJhTnVtczogTlVNX1RZUEVbXSwgc3BsaXRDb21tYVNlcGVyYXRlZFZhbHM6IGJvb2xlYW4pOiBudW1iZXJbXSB7XHJcbiAgICBsZXQgcmVzdWx0OiBudW1iZXIgPSBOT1RfRk9VTkQ7XHJcblxyXG4gICAgbGV0IHRtcE1nVmFsOiBzdHJpbmc7XHJcbiAgICBsZXQgY3RybE51bVZhbDogTlVNX1RZUEU7XHJcbiAgICBsZXQgdHJpbW1lZFZhbDogc3RyaW5nO1xyXG4gICAgbGV0IHZhbHM6IHN0cmluZ1tdID0gbnVsbDtcclxuICAgIGxldCBudW1zOiBOVU1fVFlQRVtdID0gbnVsbDtcclxuICAgIGxldCBvZmZzZXQ6IG51bWJlciA9IDA7XHJcbiAgICBsZXQgZmlyc3RGaXRNYXRjaElkeDtcclxuICAgIGxldCBmaXJzdEZpdE1hdGNoTGVuZ3RoOiBudW1iZXIgPSAtMTtcclxuICAgIGxldCBtaW5MZW5ndGg6IG51bWJlciA9IC0xO1xyXG4gICAgbGV0IGNvbXBTdHI6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBsZXQgaW5kaWNlOiBudW1iZXJbXSA9IG51bGw7XHJcbiAgICBsZXQgdmFsdWVzOiBzdHJpbmdbXSA9IG51bGw7XHJcblxyXG4gICAgaWYgKGlzTnVsbCkge1xyXG4gICAgICBsZXQgaTogbnVtYmVyID0gMDtcclxuICAgICAgaW5kaWNlID0gW1xyXG4gICAgICAgIE5PVF9GT1VORFxyXG4gICAgICBdO1xyXG4gICAgICBmb3IgKGkgPSAwOyB0aGlzLl9udWxsRmxhZ3MgIT09IG51bGwgJiYgaSA8IHRoaXMuX251bGxGbGFncy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLl9udWxsRmxhZ3NbaV0pIHtcclxuICAgICAgICAgIGluZGljZVswXSA9IGk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBpbmRpY2U7XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzVmVjdG9yVmFsdWUpIHtcclxuICAgICAgLy8gc3BsaXQgdGhlIGNvbW1hIHNlcGFyYXRlZCB2YWx1ZXM7XHJcbiAgICAgIGlmIChzcGxpdENvbW1hU2VwZXJhdGVkVmFscykge1xyXG4gICAgICAgIHZhbHVlcyA9IG1nVmFsLnNwbGl0KCcsJyk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdmFsdWVzID0gW1xyXG4gICAgICAgICAgbWdWYWxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGV0IHZlY3RvclR5cGU6IFZlY3RvclR5cGUgPSBuZXcgVmVjdG9yVHlwZShtZ1ZhbCk7XHJcbiAgICAgIHZhbHVlcyA9IHZlY3RvclR5cGUuR2V0Q2VsbFZhbHVlcygpO1xyXG4gICAgfVxyXG4gICAgaW5kaWNlID0gbmV3IEFycmF5PG51bWJlcj4odmFsdWVzLmxlbmd0aCk7XHJcblxyXG4gICAgZm9yIChsZXQgaUN0cjogbnVtYmVyID0gMDsgaUN0ciA8IHZhbHVlcy5sZW5ndGg7IGlDdHIgPSBpQ3RyICsgMSkge1xyXG4gICAgICByZXN1bHQgPSBOT1RfRk9VTkQ7XHJcbiAgICAgIGZpcnN0Rml0TWF0Y2hJZHggPSBOT1RfRk9VTkQ7XHJcblxyXG4gICAgICB0bXBNZ1ZhbCA9IHZhbHVlc1tpQ3RyXTtcclxuXHJcbiAgICAgIGlmICh0aGlzLl9pc051bWVyaWNUeXBlIHx8IGV4dHJhTnVtcyAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY3RybE51bVZhbCA9IG5ldyBOVU1fVFlQRSh0bXBNZ1ZhbCk7XHJcbiAgICAgICAgdHJpbW1lZFZhbCA9IHRtcE1nVmFsO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGN0cmxOdW1WYWwgPSBudWxsO1xyXG4gICAgICAgIHRyaW1tZWRWYWwgPSBTdHJVdGlsLnJ0cmltKHRtcE1nVmFsKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gUnVuIHR3byBwYXNzZXMuIEZpcnN0IG9uZSBvbiBleHRyYSB2YWx1ZXMsIHNlY29uZCBvbmUgb24gdmFsdWVzIGJlbG9uZ2luZyB0byB0aGlzIG9iamVjdFxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIgJiYgcmVzdWx0ID09PSBOT1RfRk9VTkQ7IGkrKykge1xyXG4gICAgICAgIHN3aXRjaCAoaSkge1xyXG4gICAgICAgICAgY2FzZSAwOlxyXG4gICAgICAgICAgICB2YWxzID0gZXh0cmFWYWxzO1xyXG4gICAgICAgICAgICBudW1zID0gZXh0cmFOdW1zO1xyXG4gICAgICAgICAgICBvZmZzZXQgPSAwO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBpZiAodGhpcy5faXNOdW1lcmljVHlwZSB8fCBudW1zICE9IG51bGwpXHJcbiAgICAgICAgICAgICAgb2Zmc2V0ID0gKG51bXMgPT0gbnVsbCA/IDAgOiBudW1zLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICBvZmZzZXQgPSAodmFscyA9PSBudWxsID8gMCA6IHZhbHMubGVuZ3RoKTtcclxuICAgICAgICAgICAgdmFscyA9IHRoaXMuX2xpbmtWYWxzO1xyXG4gICAgICAgICAgICBudW1zID0gdGhpcy5fbnVtVmFscztcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmFscyAhPSBudWxsKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHZhbHMubGVuZ3RoICYmIHJlc3VsdCA9PT0gTk9UX0ZPVU5EOyBqKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2lzTnVtZXJpY1R5cGUgfHwgbnVtcyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgaWYgKE5VTV9UWVBFLm51bV9jbXAoY3RybE51bVZhbCwgbnVtc1tqXSkgPT09IDAgfHwgdG1wTWdWYWwgPT09IHZhbHNbal0gfHxcclxuICAgICAgICAgICAgICAgIHRtcE1nVmFsID09PSB2YWxzW2pdKSB7XHJcbiAgICAgICAgICAgICAgICAvLyB0aGUgbnVtZXJpYyB0eXBlIGlzIGZvdW5kIGV4YWN0bHlcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGogKyBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgaWYgKHZhbHNbal0gPT09IHRtcE1nVmFsIHx8IHRyaW1tZWRWYWwubGVuZ3RoID4gMCAmJiBTdHJVdGlsLnJ0cmltKHZhbHNbal0pID09PSB0cmltbWVkVmFsKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBqICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAvLyBJZiBNYWdpYyBzZW50IHVzIGEgYmxhbmsgdmFsdWUsIGFuZCBzdWNoIGEgdmFsdWUgZXhpc3RzIGluIHRoZSBcIm5vbiBEQyByYW5nZVwiIHNlbGVjdCBpdC5cclxuICAgICAgICAgICAgICAvLyBRQ1IgIyA3NTEwMzcgLSBzZWFyY2ggZm9yIGJsYW5rIHZhbHVlcyBldmVuIGluIHRoZSBsaW5rZWQgdmFsdWVzIGFycmF5IG9mIHRoZSBkYXRhIGNvbnRyb2xcclxuICAgICAgICAgICAgICBpZiAodHJpbW1lZFZhbC5sZW5ndGggPT09IDAgJiYgU3RyVXRpbC5ydHJpbSh2YWxzW2pdKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGogKyBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIC8vIHNhdmUgdGhlIGZpcnN0IGZpdHRpbmcgcmVzdWx0XHJcbiAgICAgICAgICAgICAgLy8gZml4ZWQgYnVnIzogOTM1MDE1LCB0aGUgY29tcGFyaXNvbiB3aWxsIGJlIGFjY29yZGluZyB0byB0aGUgbWluIGxlbmd0aCBvZiB0aGUgZGF0YSAmIHRoZSBvcHRpb25zXHJcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gTk9UX0ZPVU5EICYmIHRyaW1tZWRWYWwubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgbWluTGVuZ3RoID0gTWF0aC5taW4odHJpbW1lZFZhbC5sZW5ndGgsIHZhbHNbal0ubGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgIGNvbXBTdHIgPSB0cmltbWVkVmFsLnN1YnN0cigwLCBtaW5MZW5ndGgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbXBTdHIubGVuZ3RoID4gMCAmJiB2YWxzW2pdLnN0YXJ0c1dpdGgoY29tcFN0cikpIHtcclxuICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSBtaW4gbGVuZ3RoIG1hdGNoLCBjaGVjayBpZiBpdCBpcyB0aGUgZmlyc3QgZml0IG1hdGNoLlxyXG4gICAgICAgICAgICAgICAgICAvLyBlZzogaWYgbGlzdCBoYXMgYSxhYWEsYWFhYWEgYW5kIGZpZWxkIHZhbHVlIGlzICdhYScgdGhlbiBmaXJzdCBmaXQgbWF0Y2ggaXMgJ2FhYScuXHJcbiAgICAgICAgICAgICAgICAgIC8vIGlmIGxpc3QgaXMgYSxhYWFhYSxhYWEgYW5kIGZpZWxkIHZhbHVlIGlzICdhYScgdGhlbiBmaXJzdCBmaXQgbWF0Y2ggaXMgJ2FhYWFhJy5cclxuICAgICAgICAgICAgICAgICAgLy8gaWYgZmlyc3QgZml0IG5vdCBmb3VuZCwgdGhlbiBjbG9zZXN0IG1hdGNoIGlzIHVzZWQgKGVnLSBpZiBmaWVsZCB2YWx1ZSBpc1xyXG4gICAgICAgICAgICAgICAgICAvLyAnYWFhYWFhYWFhJyBpbiBib3RoIHRoZSBhYm92ZSBsaXN0LCBjbG9zZXN0IG1hdGNoIHdvdWxkIGJlICdhYWFhYScpLlxyXG4gICAgICAgICAgICAgICAgICBpZiAobWluTGVuZ3RoID4gZmlyc3RGaXRNYXRjaExlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0Rml0TWF0Y2hJZHggPSBqICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0Rml0TWF0Y2hMZW5ndGggPSBtaW5MZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChyZXN1bHQgPT09IE5PVF9GT1VORClcclxuICAgICAgICByZXN1bHQgPSBmaXJzdEZpdE1hdGNoSWR4O1xyXG5cclxuICAgICAgLy8gc3RvcmUgaW5kaWNlIGZvdW5kIGluIGludGVnZXIgYXJyYXkuXHJcbiAgICAgIGluZGljZVtpQ3RyXSA9IHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW5kaWNlO1xyXG4gIH1cclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXRzIHRoZSB2YWx1ZSBvZiBhIHNwZWNpZmljIGxpbmsgaXRlbVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpZHhcIj50aGUgaW5kZXggb2YgdGhlIGxpbmsgdmFsdWUgKDAgPSBmaXJzdCBpdGVtKSA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gTWFnaWMgdmFsdWUgb2YgdGhlIGl0ZW0gPC9yZXR1cm5zPlxyXG4gIGdldExpbmtWYWx1ZShpZHg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgbG5rVmFsOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIGlmICh0aGlzLl9saW5rVmFscyAhPT0gbnVsbCkge1xyXG4gICAgICBsbmtWYWwgPSB0aGlzLl9saW5rVmFsc1tpZHhdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBsbmtWYWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0cnVlLCBpZiB2YWx1ZSBhdCBpbmRleCBpZHggaXMgbnVsbFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0aGVcIj5pbmRleCBvZiBhbiBpdGVtIGluIHRoZSBsaXN0IDwvcGFyYW0+XHJcbiAgaXNOdWxsKGlkeDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5fbnVsbEZsYWdzID09IG51bGwpXHJcbiAgICAvLyBoYXBwZW5zIGZvciBub24tREMgY2hvaWNlIGNvbnRyb2xzXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5fbnVsbEZsYWdzW2lkeF07XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgaW5jcmVhc2UgdGhlIHJlZmVyZW5jZXMgY291bnQgYnkgMVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgQWRkUmVmZXJlbmNlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVmQ291bnQrKztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBkZWNyZWFzZSB0aGUgcmVmZXJlbmNlcyBjb3VudCBieSAxXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBSZW1vdmVSZWZlcmVuY2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZWZDb3VudC0tO1xyXG4gICAgaWYgKHRoaXMuX3JlZkNvdW50IDwgMCkge1xyXG4gICAgICB0aHJvdyBuZXcgQXBwbGljYXRpb25FeGNlcHRpb24oXCJpbiBkY1ZhbHMuZGVjcmVhc2UoKSByZWZlcmVuY2VzIGNvdW50IGlzIGxlc3MgdGhhbiB6ZXJvXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiB0aGUgcmVmZXJlbmNlcyBjb3VudCBpcyB6ZXJvXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBUb1N0cmluZygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIE5TdHJpbmcuRm9ybWF0KFwie3tEQ1ZhbHVlcyAweHswOlg4fSwgezF9IHJlZnN9fVwiLCB0aGlzLl9pZCwgdGhpcy5fcmVmQ291bnQpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGNWYWx1ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL21hbmFnZW1lbnQvZGF0YS9EY1ZhbHVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFDLGdCQUFnQixFQUFFLE9BQU8sRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFDLG9CQUFvQixFQUFFLE9BQU8sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFHeEMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFXLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBVyxZQUFZLENBQUMsaUJBQWlCLENBQUM7QUFHaEUsTUFBTSxPQUFPLFFBQVE7SUFHWCxHQUFHLEdBQVcsQ0FBQyxDQUFDO0lBQ2hCLEtBQUssR0FBcUIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0lBQ2hELFNBQVMsR0FBVyxDQUFDLENBQUM7SUFDdEIsVUFBVSxHQUFjLElBQUksQ0FBQztJQUM3QixjQUFjLEdBQVksS0FBSyxDQUFDO0lBQ2hDLFFBQVEsR0FBZSxJQUFJLENBQUM7SUFDNUIsU0FBUyxHQUFhLElBQUksQ0FBQztJQUMzQixTQUFTLEdBQWEsSUFBSSxDQUFDO0lBRW5DLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQU9ELFlBQVksS0FBYztRQUN4QixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFL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UyxHQUFHLENBQUMsRUFBRTtZQUN0QixNQUFNLElBQUksb0JBQW9CLENBQUMseURBQXlELENBQUMsQ0FBQztTQUMzRjtJQUNILENBQUM7SUFLRCxRQUFRO1FBQ04sT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGlDQUFpQyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SVJlZmVyZW5jZWRPYmplY3R9IGZyb20gXCIuL0lSZWZlcmVuY2VkT2JqZWN0XCI7XHJcbmltcG9ydCB7R3VpQ29uc3RhbnRzfSBmcm9tIFwiLi4vLi4vR3VpQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7U3RvcmFnZUF0dHJpYnV0ZSwgU3RyVXRpbH0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtOVU1fVFlQRX0gZnJvbSBcIi4vTlVNX1RZUEVcIjtcclxuaW1wb3J0IHtBcHBsaWNhdGlvbkV4Y2VwdGlvbiwgTlN0cmluZ30gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7VmVjdG9yVHlwZX0gZnJvbSBcIi4vVmVjdG9yVHlwZVwiO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBFTVBUWV9EQ1JFRjogbnVtYmVyID0gLTI7XHJcbmV4cG9ydCBjb25zdCBOT1RfRk9VTkQ6IG51bWJlciA9IEd1aUNvbnN0YW50cy5ERUZBVUxUX1ZBTFVFX0lOVDtcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgRGNWYWx1ZXMgaW1wbGVtZW50cyBJUmVmZXJlbmNlZE9iamVjdCB7XHJcblxyXG5cclxuICBwcml2YXRlIF9pZDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF90eXBlOiBTdG9yYWdlQXR0cmlidXRlID0gU3RvcmFnZUF0dHJpYnV0ZS5OT05FOyAvLyBBbHBoYSB8IE51bWVyaWMgfCBEYXRlIHwgVGltZSB8IExvZ2ljYWxcclxuICBwcml2YXRlIF9yZWZDb3VudDogbnVtYmVyID0gMDsgLy8gcmVmZXJlbmNlcyBjb3VudGVyXHJcbiAgcHJpdmF0ZSBfbnVsbEZsYWdzOiBib29sZWFuW10gPSBudWxsOyAvLyBsaW5rZWQgbnVsbCB2YWx1ZSBmbGFnc1xyXG4gIHByaXZhdGUgX2lzTnVtZXJpY1R5cGU6IGJvb2xlYW4gPSBmYWxzZTsgLy8gdHJ1ZSBpZiB0aGUgdHlwZSBpcyBvbmUgb2Y6IG51bWVyaWMsIGRhdGUsIHRpbWVcclxuICBwcml2YXRlIF9udW1WYWxzOiBOVU1fVFlQRVtdID0gbnVsbDsgLy8gbnVtZXJpYyBsaW5rZWQgdmFsdWVzXHJcbiAgcHJpdmF0ZSBfbGlua1ZhbHM6IHN0cmluZ1tdID0gbnVsbDsgLy8gbGlua2VkIHZhbHVlc1xyXG4gIHByaXZhdGUgX2Rpc3BWYWxzOiBzdHJpbmdbXSA9IG51bGw7IC8vIGRpc3BsYXkgdmFsdWVzXHJcblxyXG4gIGdldCBIYXNSZWZlcmVuY2VzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlZkNvdW50ID4gMDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy9cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImVtcHR5XCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJpc1ZlY3RvclwiPjwvcGFyYW0+XHJcbiAgY29uc3RydWN0b3IoZW1wdHk6IGJvb2xlYW4pIHtcclxuICAgIGlmIChlbXB0eSkge1xyXG4gICAgICB0aGlzLl9pZCA9IEVNUFRZX0RDUkVGO1xyXG4gICAgfVxyXG4gICAgdGhpcy5faXNOdW1lcmljVHlwZSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBSZXR1cm5zIHRoZSBhdHRyIG9mIERjVmFsdWVzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBHZXRBdHRyKCk6IFN0b3JhZ2VBdHRyaWJ1dGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XHJcbiAgfVxyXG5cclxuICBzZXRUeXBlKHR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUpOiB2b2lkIHtcclxuICAgIHRoaXMuX3R5cGUgPSB0eXBlO1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuTUVNTylcclxuICAgICAgdGhpcy5fdHlwZSA9IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEE7XHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDIHx8IHRoaXMuX3R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuREFURSB8fFxyXG4gICAgICB0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLlRJTUUpIHtcclxuICAgICAgdGhpcy5faXNOdW1lcmljVHlwZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBTZXRJRChuZXdJZDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pZCA9IG5ld0lkO1xyXG4gIH1cclxuXHJcbiAgU2V0RGlzcGxheVZhbHVlcyhkaXNwbGF5VmFsdWVzOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgaWYgKGRpc3BsYXlWYWx1ZXMgIT09IG51bGwpXHJcbiAgICAgIHRoaXMuX2Rpc3BWYWxzID0gZGlzcGxheVZhbHVlcy5zbGljZSgpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLl9kaXNwVmFscyA9IG51bGw7XHJcbiAgfVxyXG5cclxuICBTZXRMaW5rVmFsdWVzKGxpbmtWYWx1ZXM6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICBpZiAobGlua1ZhbHVlcyAhPT0gbnVsbClcclxuICAgICAgdGhpcy5fbGlua1ZhbHMgPSBsaW5rVmFsdWVzLnNsaWNlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX2xpbmtWYWxzID0gbnVsbDtcclxuXHJcbiAgICB0aGlzLnNldE51bWVyaWNWYWxzKCk7XHJcbiAgfVxyXG5cclxuICBzZXROdWxsRmxhZ3MobnVsbEZsYWdzOiBib29sZWFuW10pOiB2b2lkIHtcclxuICAgIGlmIChudWxsRmxhZ3MgIT09IG51bGwpXHJcbiAgICAgIHRoaXMuX251bGxGbGFncyA9IG51bGxGbGFncy5zbGljZSgpO1xyXG5cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fbnVsbEZsYWdzID0gbnVsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TnVtZXJpY1ZhbHMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5faXNOdW1lcmljVHlwZSAmJiB0aGlzLl9saW5rVmFscyAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLl9udW1WYWxzID0gbmV3IEFycmF5PE5VTV9UWVBFPih0aGlzLl9saW5rVmFscy5sZW5ndGgpO1xyXG4gICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgdGhpcy5fbGlua1ZhbHMubGVuZ3RoOyBpID0gaSArIDEpIHtcclxuICAgICAgICB0aGlzLl9udW1WYWxzW2ldID0gbmV3IE5VTV9UWVBFKHRoaXMuX2xpbmtWYWxzW2ldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuX251bVZhbHMgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdGhlIGlkIG9mIHRoaXMgZGNWYWxzIG9iamVjdFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0SWQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9pZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gdGhlIGRpc3BsYXkgdmFsdWVzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXREaXNwVmFscygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcFZhbHM7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHJldHVybiBMaW5rIGZpZWxkIHZhbHVlcy5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIEdldExpbmtWYWxzKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB0aGlzLl9saW5rVmFscztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSBhcnJheSBvZiBpbmRpY2UgZm9yIGFuIGl0ZW0gaW4gdGhlIGxpc3QgYnkgY29tcGFyaW5nIHRoZSBtZ1ZhbCB0byB0aGUgbGlua2VkIHZhbHVlIG9yICgtMSkgaWYgbm9uZSB3YXNcclxuICAvLy8gICBmb3VuZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJtZ1ZhbFwiPnRoZSBpbnRlcm5hbCB2YWx1ZSB0byBsb29rIGZvciA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaXNWZWN0b3JWYWx1ZVwiPkRlbm90ZXMgd2hldGhlciB0aGUgdmFsdWUgaW4gbWdWYWwgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSB2ZWN0b3IgKHRydWUpIG9yIG5vdCAoZmFsc2UpLjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpc051bGxcIj50cnVlIGlmIHRoZSB2YWx1ZSB0byBsb29rIGZvciBpcyBudWxsIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJleHRyYVZhbHNcIj5BZGRpdGlvbmFsIHZhbHVlcywgcHJlcGVuZGVkIHRvIHRoZSBzZWFyY2hlZCB2YWx1ZXMuPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJleHRyYU51bXNcIj5BZGRpdGlvbmFsIG51bWVyaWMgdmFsdWVzIHRvIGJlIHByZXBlbmRlZCB0byB0aGUgc2VhcmNoZWQgdmFsdWVzLjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzcGxpdENvbW1hU2VwZXJhdGVkVmFsc1wiPnRvIHNwbGl0IHRoZSB2YWwgb24gY29tbWEgb3Igbm90IDwvcGFyYW0+XHJcbiAgZ2V0SW5kZXhPZihtZ1ZhbDogc3RyaW5nLCBpc1ZlY3RvclZhbHVlOiBib29sZWFuLCBpc051bGw6IGJvb2xlYW4sIGV4dHJhVmFsczogc3RyaW5nW10sIGV4dHJhTnVtczogTlVNX1RZUEVbXSwgc3BsaXRDb21tYVNlcGVyYXRlZFZhbHM6IGJvb2xlYW4pOiBudW1iZXJbXSB7XHJcbiAgICBsZXQgcmVzdWx0OiBudW1iZXIgPSBOT1RfRk9VTkQ7XHJcblxyXG4gICAgbGV0IHRtcE1nVmFsOiBzdHJpbmc7XHJcbiAgICBsZXQgY3RybE51bVZhbDogTlVNX1RZUEU7XHJcbiAgICBsZXQgdHJpbW1lZFZhbDogc3RyaW5nO1xyXG4gICAgbGV0IHZhbHM6IHN0cmluZ1tdID0gbnVsbDtcclxuICAgIGxldCBudW1zOiBOVU1fVFlQRVtdID0gbnVsbDtcclxuICAgIGxldCBvZmZzZXQ6IG51bWJlciA9IDA7XHJcbiAgICBsZXQgZmlyc3RGaXRNYXRjaElkeDtcclxuICAgIGxldCBmaXJzdEZpdE1hdGNoTGVuZ3RoOiBudW1iZXIgPSAtMTtcclxuICAgIGxldCBtaW5MZW5ndGg6IG51bWJlciA9IC0xO1xyXG4gICAgbGV0IGNvbXBTdHI6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBsZXQgaW5kaWNlOiBudW1iZXJbXSA9IG51bGw7XHJcbiAgICBsZXQgdmFsdWVzOiBzdHJpbmdbXSA9IG51bGw7XHJcblxyXG4gICAgaWYgKGlzTnVsbCkge1xyXG4gICAgICBsZXQgaTogbnVtYmVyID0gMDtcclxuICAgICAgaW5kaWNlID0gW1xyXG4gICAgICAgIE5PVF9GT1VORFxyXG4gICAgICBdO1xyXG4gICAgICBmb3IgKGkgPSAwOyB0aGlzLl9udWxsRmxhZ3MgIT09IG51bGwgJiYgaSA8IHRoaXMuX251bGxGbGFncy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLl9udWxsRmxhZ3NbaV0pIHtcclxuICAgICAgICAgIGluZGljZVswXSA9IGk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBpbmRpY2U7XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzVmVjdG9yVmFsdWUpIHtcclxuICAgICAgLy8gc3BsaXQgdGhlIGNvbW1hIHNlcGFyYXRlZCB2YWx1ZXM7XHJcbiAgICAgIGlmIChzcGxpdENvbW1hU2VwZXJhdGVkVmFscykge1xyXG4gICAgICAgIHZhbHVlcyA9IG1nVmFsLnNwbGl0KCcsJyk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdmFsdWVzID0gW1xyXG4gICAgICAgICAgbWdWYWxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGV0IHZlY3RvclR5cGU6IFZlY3RvclR5cGUgPSBuZXcgVmVjdG9yVHlwZShtZ1ZhbCk7XHJcbiAgICAgIHZhbHVlcyA9IHZlY3RvclR5cGUuR2V0Q2VsbFZhbHVlcygpO1xyXG4gICAgfVxyXG4gICAgaW5kaWNlID0gbmV3IEFycmF5PG51bWJlcj4odmFsdWVzLmxlbmd0aCk7XHJcblxyXG4gICAgZm9yIChsZXQgaUN0cjogbnVtYmVyID0gMDsgaUN0ciA8IHZhbHVlcy5sZW5ndGg7IGlDdHIgPSBpQ3RyICsgMSkge1xyXG4gICAgICByZXN1bHQgPSBOT1RfRk9VTkQ7XHJcbiAgICAgIGZpcnN0Rml0TWF0Y2hJZHggPSBOT1RfRk9VTkQ7XHJcblxyXG4gICAgICB0bXBNZ1ZhbCA9IHZhbHVlc1tpQ3RyXTtcclxuXHJcbiAgICAgIGlmICh0aGlzLl9pc051bWVyaWNUeXBlIHx8IGV4dHJhTnVtcyAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY3RybE51bVZhbCA9IG5ldyBOVU1fVFlQRSh0bXBNZ1ZhbCk7XHJcbiAgICAgICAgdHJpbW1lZFZhbCA9IHRtcE1nVmFsO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGN0cmxOdW1WYWwgPSBudWxsO1xyXG4gICAgICAgIHRyaW1tZWRWYWwgPSBTdHJVdGlsLnJ0cmltKHRtcE1nVmFsKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gUnVuIHR3byBwYXNzZXMuIEZpcnN0IG9uZSBvbiBleHRyYSB2YWx1ZXMsIHNlY29uZCBvbmUgb24gdmFsdWVzIGJlbG9uZ2luZyB0byB0aGlzIG9iamVjdFxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIgJiYgcmVzdWx0ID09PSBOT1RfRk9VTkQ7IGkrKykge1xyXG4gICAgICAgIHN3aXRjaCAoaSkge1xyXG4gICAgICAgICAgY2FzZSAwOlxyXG4gICAgICAgICAgICB2YWxzID0gZXh0cmFWYWxzO1xyXG4gICAgICAgICAgICBudW1zID0gZXh0cmFOdW1zO1xyXG4gICAgICAgICAgICBvZmZzZXQgPSAwO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBpZiAodGhpcy5faXNOdW1lcmljVHlwZSB8fCBudW1zICE9IG51bGwpXHJcbiAgICAgICAgICAgICAgb2Zmc2V0ID0gKG51bXMgPT0gbnVsbCA/IDAgOiBudW1zLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICBvZmZzZXQgPSAodmFscyA9PSBudWxsID8gMCA6IHZhbHMubGVuZ3RoKTtcclxuICAgICAgICAgICAgdmFscyA9IHRoaXMuX2xpbmtWYWxzO1xyXG4gICAgICAgICAgICBudW1zID0gdGhpcy5fbnVtVmFscztcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmFscyAhPSBudWxsKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHZhbHMubGVuZ3RoICYmIHJlc3VsdCA9PT0gTk9UX0ZPVU5EOyBqKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2lzTnVtZXJpY1R5cGUgfHwgbnVtcyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgaWYgKE5VTV9UWVBFLm51bV9jbXAoY3RybE51bVZhbCwgbnVtc1tqXSkgPT09IDAgfHwgdG1wTWdWYWwgPT09IHZhbHNbal0gfHxcclxuICAgICAgICAgICAgICAgIHRtcE1nVmFsID09PSB2YWxzW2pdKSB7XHJcbiAgICAgICAgICAgICAgICAvLyB0aGUgbnVtZXJpYyB0eXBlIGlzIGZvdW5kIGV4YWN0bHlcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGogKyBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgaWYgKHZhbHNbal0gPT09IHRtcE1nVmFsIHx8IHRyaW1tZWRWYWwubGVuZ3RoID4gMCAmJiBTdHJVdGlsLnJ0cmltKHZhbHNbal0pID09PSB0cmltbWVkVmFsKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBqICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAvLyBJZiBNYWdpYyBzZW50IHVzIGEgYmxhbmsgdmFsdWUsIGFuZCBzdWNoIGEgdmFsdWUgZXhpc3RzIGluIHRoZSBcIm5vbiBEQyByYW5nZVwiIHNlbGVjdCBpdC5cclxuICAgICAgICAgICAgICAvLyBRQ1IgIyA3NTEwMzcgLSBzZWFyY2ggZm9yIGJsYW5rIHZhbHVlcyBldmVuIGluIHRoZSBsaW5rZWQgdmFsdWVzIGFycmF5IG9mIHRoZSBkYXRhIGNvbnRyb2xcclxuICAgICAgICAgICAgICBpZiAodHJpbW1lZFZhbC5sZW5ndGggPT09IDAgJiYgU3RyVXRpbC5ydHJpbSh2YWxzW2pdKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGogKyBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIC8vIHNhdmUgdGhlIGZpcnN0IGZpdHRpbmcgcmVzdWx0XHJcbiAgICAgICAgICAgICAgLy8gZml4ZWQgYnVnIzogOTM1MDE1LCB0aGUgY29tcGFyaXNvbiB3aWxsIGJlIGFjY29yZGluZyB0byB0aGUgbWluIGxlbmd0aCBvZiB0aGUgZGF0YSAmIHRoZSBvcHRpb25zXHJcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gTk9UX0ZPVU5EICYmIHRyaW1tZWRWYWwubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgbWluTGVuZ3RoID0gTWF0aC5taW4odHJpbW1lZFZhbC5sZW5ndGgsIHZhbHNbal0ubGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgIGNvbXBTdHIgPSB0cmltbWVkVmFsLnN1YnN0cigwLCBtaW5MZW5ndGgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbXBTdHIubGVuZ3RoID4gMCAmJiB2YWxzW2pdLnN0YXJ0c1dpdGgoY29tcFN0cikpIHtcclxuICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSBtaW4gbGVuZ3RoIG1hdGNoLCBjaGVjayBpZiBpdCBpcyB0aGUgZmlyc3QgZml0IG1hdGNoLlxyXG4gICAgICAgICAgICAgICAgICAvLyBlZzogaWYgbGlzdCBoYXMgYSxhYWEsYWFhYWEgYW5kIGZpZWxkIHZhbHVlIGlzICdhYScgdGhlbiBmaXJzdCBmaXQgbWF0Y2ggaXMgJ2FhYScuXHJcbiAgICAgICAgICAgICAgICAgIC8vIGlmIGxpc3QgaXMgYSxhYWFhYSxhYWEgYW5kIGZpZWxkIHZhbHVlIGlzICdhYScgdGhlbiBmaXJzdCBmaXQgbWF0Y2ggaXMgJ2FhYWFhJy5cclxuICAgICAgICAgICAgICAgICAgLy8gaWYgZmlyc3QgZml0IG5vdCBmb3VuZCwgdGhlbiBjbG9zZXN0IG1hdGNoIGlzIHVzZWQgKGVnLSBpZiBmaWVsZCB2YWx1ZSBpc1xyXG4gICAgICAgICAgICAgICAgICAvLyAnYWFhYWFhYWFhJyBpbiBib3RoIHRoZSBhYm92ZSBsaXN0LCBjbG9zZXN0IG1hdGNoIHdvdWxkIGJlICdhYWFhYScpLlxyXG4gICAgICAgICAgICAgICAgICBpZiAobWluTGVuZ3RoID4gZmlyc3RGaXRNYXRjaExlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0Rml0TWF0Y2hJZHggPSBqICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0Rml0TWF0Y2hMZW5ndGggPSBtaW5MZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChyZXN1bHQgPT09IE5PVF9GT1VORClcclxuICAgICAgICByZXN1bHQgPSBmaXJzdEZpdE1hdGNoSWR4O1xyXG5cclxuICAgICAgLy8gc3RvcmUgaW5kaWNlIGZvdW5kIGluIGludGVnZXIgYXJyYXkuXHJcbiAgICAgIGluZGljZVtpQ3RyXSA9IHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW5kaWNlO1xyXG4gIH1cclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXRzIHRoZSB2YWx1ZSBvZiBhIHNwZWNpZmljIGxpbmsgaXRlbVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpZHhcIj50aGUgaW5kZXggb2YgdGhlIGxpbmsgdmFsdWUgKDAgPSBmaXJzdCBpdGVtKSA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gTWFnaWMgdmFsdWUgb2YgdGhlIGl0ZW0gPC9yZXR1cm5zPlxyXG4gIGdldExpbmtWYWx1ZShpZHg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgbG5rVmFsOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIGlmICh0aGlzLl9saW5rVmFscyAhPT0gbnVsbCkge1xyXG4gICAgICBsbmtWYWwgPSB0aGlzLl9saW5rVmFsc1tpZHhdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBsbmtWYWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0cnVlLCBpZiB2YWx1ZSBhdCBpbmRleCBpZHggaXMgbnVsbFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0aGVcIj5pbmRleCBvZiBhbiBpdGVtIGluIHRoZSBsaXN0IDwvcGFyYW0+XHJcbiAgaXNOdWxsKGlkeDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5fbnVsbEZsYWdzID09IG51bGwpXHJcbiAgICAvLyBoYXBwZW5zIGZvciBub24tREMgY2hvaWNlIGNvbnRyb2xzXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5fbnVsbEZsYWdzW2lkeF07XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgaW5jcmVhc2UgdGhlIHJlZmVyZW5jZXMgY291bnQgYnkgMVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgQWRkUmVmZXJlbmNlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVmQ291bnQrKztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBkZWNyZWFzZSB0aGUgcmVmZXJlbmNlcyBjb3VudCBieSAxXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBSZW1vdmVSZWZlcmVuY2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZWZDb3VudC0tO1xyXG4gICAgaWYgKHRoaXMuX3JlZkNvdW50IDwgMCkge1xyXG4gICAgICB0aHJvdyBuZXcgQXBwbGljYXRpb25FeGNlcHRpb24oXCJpbiBkY1ZhbHMuZGVjcmVhc2UoKSByZWZlcmVuY2VzIGNvdW50IGlzIGxlc3MgdGhhbiB6ZXJvXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiB0aGUgcmVmZXJlbmNlcyBjb3VudCBpcyB6ZXJvXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBUb1N0cmluZygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIE5TdHJpbmcuRm9ybWF0KFwie3tEQ1ZhbHVlcyAweHswOlg4fSwgezF9IHJlZnN9fVwiLCB0aGlzLl9pZCwgdGhpcy5fcmVmQ291bnQpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -93,4 +93,4 @@ export class DcValuesBuilderBase {
|
|
|
93
93
|
constructor() {
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGNWYWx1ZXNCdWlsZGVyQmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9zcmMvbWFuYWdlbWVudC9kYXRhL0RjVmFsdWVzQnVpbGRlckJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEYsT0FBTyxFQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBdUJwRCxNQUFNLE9BQWdCLG1CQUFtQjtJQUl2QyxjQUFjO1FBQ1osT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQWtCLEVBQUUsS0FBYTtRQUNyQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxPQUFPLENBQUMsUUFBa0IsRUFBRSxJQUFzQjtRQUNoRCxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUFrQixFQUFFLGFBQXVCO1FBQzFELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQWtCLEVBQUUsVUFBb0I7UUFDcEQsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBSUQsWUFBWSxDQUFDLFFBQWtCLEVBQUUsMEJBQStCO1FBQzlELElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLFFBQVEsWUFBWSxRQUFRLENBQUMsSUFBSSxDQUFDLDBCQUEwQixLQUFLLElBQUksSUFBSSwwQkFBMEIsQ0FBQyxXQUFXLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNoTCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1lBQzFELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU8sY0FBYyxDQUFDLFFBQWtCLEVBQUUsZUFBdUI7UUFDaEUsSUFBSSxTQUFTLEdBQWMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoRSxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTyxjQUFjLENBQUMsUUFBa0IsRUFBRSxTQUFvQjtRQUM3RCxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFRUyxXQUFXLENBQUMsUUFBZ0IsRUFBRSxRQUEwQixFQUFFLE1BQWU7UUFFakYsSUFBSSxPQUFlLENBQUM7UUFDcEIsSUFBSSxRQUFRLEdBQVcsSUFBSSxDQUFDO1FBQzVCLElBQUksTUFBTSxHQUFpQixJQUFJLElBQUksRUFBVSxDQUFDO1FBQzlDLElBQUksR0FBVyxDQUFDO1FBQ2hCLElBQUksT0FBZSxDQUFDO1FBQ3BCLElBQUksTUFBYyxDQUFDO1FBQ25CLElBQUksU0FBUyxHQUFrQixJQUFJLENBQUM7UUFFcEMsUUFBUSxRQUFRLEVBQUUsQ0FBQztZQUNqQixLQUFLLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztZQUM5QixLQUFLLGdCQUFnQixDQUFDLElBQUksQ0FBQztZQUMzQixLQUFLLGdCQUFnQixDQUFDLElBQUk7Z0JBQ3hCLElBQUksTUFBTTtvQkFDUixHQUFHLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLENBQUMsQ0FBQzs7b0JBRTdELEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckYsTUFBTTtZQUVSLEtBQUssZ0JBQWdCLENBQUMsT0FBTztnQkFDM0IsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDUixNQUFNO1lBRVI7Z0JBQ0UsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDUixNQUFNO1FBQ1YsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDWixPQUFPLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFakMsSUFBSSxRQUFRLEtBQUssZ0JBQWdCLENBQUMsS0FBSyxJQUFJLFFBQVEsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPO2dCQUM5RSxRQUFRLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxJQUFJLFFBQVEsS0FBSyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbEYsT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN0QyxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNyRCxPQUFPLElBQUksQ0FBQyxDQUFDO1lBQ2YsQ0FBQztZQUdELElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNsQixTQUFTLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztnQkFDaEMsR0FBRyxJQUFJLE1BQU0sQ0FBQztnQkFFZCxPQUFPLElBQUksV0FBVyxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUM1RixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7aUJBQ0ksQ0FBQztnQkFDSixNQUFNLEdBQUcsT0FBTyxHQUFHLEdBQUcsQ0FBQztnQkFDdkIsSUFBSSxNQUFNO29CQUNSLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzs7b0JBRTFELFFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBS2hGLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sR0FBRyxNQUFNLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUM7UUFHRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYyxDQUFDLGVBQXVCO1FBQ3BDLElBQUksS0FBSyxHQUFjLElBQUksS0FBSyxDQUFVLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRSxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlELEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFRLENBQUM7UUFDeEQsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEO0lBQ0EsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEY1ZhbHVlc30gZnJvbSAnLi9EY1ZhbHVlcyc7XHJcbmltcG9ydCB7TGlzdCwgTk51bWJlciwgTnVtYmVyU3R5bGVzLCBTdHJpbmdCdWlsZGVyfSBmcm9tICdAbWFnaWMteHBhL21zY29yZWxpYic7XHJcbmltcG9ydCB7QmFzZTY0LCBTdG9yYWdlQXR0cmlidXRlfSBmcm9tICdAbWFnaWMteHBhL3V0aWxzJztcclxuaW1wb3J0IHtSZWNvcmRVdGlsc30gZnJvbSAnLi9SZWNvcmRVdGlscyc7XHJcbmltcG9ydCB7R3VpRW52aXJvbm1lbnR9IGZyb20gJy4uLy4uL0d1aUVudmlyb25tZW50JztcclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vIEJhc2UgY2xhc3MgZm9yIERjVmFsdWVzIGJ1aWxkZXIuIFRoZSBjbGFzcyBpcyBhYnN0cmFjdCBhbmQsIHRodXMsIG11c3QgYmUgaW5oZXJpdGVkLlxyXG4vLy8gVGhlIGluaGVyaXRpbmcgY2xhc3MsIHdoaWNoIHdpbGwgdXN1YWxseSBiZSBpbiBhbm90aGVyIHBhY2thZ2UsIHdpbGwgbm90IGJlIGFibGUgdG8gbW9kaWZ5XHJcbi8vLyBhIERjVmFsdWVzIG9iamVjdCBkaXJlY3RseSwgc2luY2UgYWxsIGl0cyBzZXR0ZXIgbWV0aG9kcyBhcmUgJ2ludGVybmFsJy4gVGhpcyBjbGFzcyB3aWxsXHJcbi8vLyBwcm92aWRlIHRoZSBzZXR0ZXIgbWV0aG9kcyBmb3IgdGhlIGluaGVyaXRpbmcgYnVpbGRlci5cclxuLy8vIDxwYXJhPkhlcmUncyBhIHVzYWdlIGV4YW1wbGU6XHJcbi8vLyA8ZXhhbXBsZT5cclxuLy8vIGNsYXNzIE15Q29uY3JldGVCdWlsZGVyIDogRGNWYWx1ZXNCdWlsZGVyQmFzZVxyXG4vLy8ge1xyXG4vLy8gICBwdWJsaWMgb3ZlcnJpZGUgRGNWYWx1ZXMgQnVpbGQoKVxyXG4vLy8gICB7XHJcbi8vLyAgICAgIHZhciBkY1ZhbHVlcyA9IGJhc2UuQ3JlYXRlRGNWYWx1ZXMoZmFsc2UpO1xyXG4vLy8gICAgICBTZXRJZChuZXdJZCk7XHJcbi8vLyAgICAgIFNldFR5cGUodGhlVHlwZSk7XHJcbi8vLyAgICAgIFNldERpc3BsYXlWYWx1ZXModGhlRGlzcGxheVZhbHVlcyk7XHJcbi8vLyAgICAgIC4uLlxyXG4vLy8gICAgICByZXR1cm4gZGNWYWx1ZXM7XHJcbi8vLyAgIH1cclxuLy8vIH1cclxuLy8vIDwvZXhhbXBsZT5cclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERjVmFsdWVzQnVpbGRlckJhc2Uge1xyXG5cclxuICBhYnN0cmFjdCBCdWlsZCgpOiBEY1ZhbHVlcztcclxuXHJcbiAgQ3JlYXRlRGNWYWx1ZXMoKTogRGNWYWx1ZXMge1xyXG4gICAgcmV0dXJuIG5ldyBEY1ZhbHVlcyhmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBTZXRJZChkY1ZhbHVlczogRGNWYWx1ZXMsIG5ld0lkOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGRjVmFsdWVzLlNldElEKG5ld0lkKTtcclxuICB9XHJcblxyXG4gIFNldFR5cGUoZGNWYWx1ZXM6IERjVmFsdWVzLCB0eXBlOiBTdG9yYWdlQXR0cmlidXRlKTogdm9pZCB7XHJcbiAgICBkY1ZhbHVlcy5zZXRUeXBlKHR5cGUpO1xyXG4gIH1cclxuXHJcbiAgU2V0RGlzcGxheVZhbHVlcyhkY1ZhbHVlczogRGNWYWx1ZXMsIGRpc3BsYXlWYWx1ZXM6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICBkY1ZhbHVlcy5TZXREaXNwbGF5VmFsdWVzKGRpc3BsYXlWYWx1ZXMpO1xyXG4gIH1cclxuXHJcbiAgU2V0TGlua1ZhbHVlcyhkY1ZhbHVlczogRGNWYWx1ZXMsIGxpbmtWYWx1ZXM6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICBkY1ZhbHVlcy5TZXRMaW5rVmFsdWVzKGxpbmtWYWx1ZXMpO1xyXG4gIH1cclxuXHJcbiAgU2V0TnVsbEZsYWdzKGRjVmFsdWVzOiBEY1ZhbHVlcywgbnVsbEZsYWdzU3RyaW5nOiBzdHJpbmcpOiB2b2lkO1xyXG4gIFNldE51bGxGbGFncyhkY1ZhbHVlczogRGNWYWx1ZXMsIG51bGxGbGFnczogYm9vbGVhbltdKTogdm9pZDtcclxuICBTZXROdWxsRmxhZ3MoZGNWYWx1ZXM6IERjVmFsdWVzLCBudWxsRmxhZ3NTdHJpbmdPck51bGxGbGFnczogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMiAmJiAoZGNWYWx1ZXMgPT09IG51bGwgfHwgZGNWYWx1ZXMgaW5zdGFuY2VvZiBEY1ZhbHVlcykgJiYgKG51bGxGbGFnc1N0cmluZ09yTnVsbEZsYWdzID09PSBudWxsIHx8IG51bGxGbGFnc1N0cmluZ09yTnVsbEZsYWdzLmNvbnN0cnVjdG9yID09PSBTdHJpbmcpKSB7XHJcbiAgICAgIHRoaXMuU2V0TnVsbEZsYWdzXzAoZGNWYWx1ZXMsIG51bGxGbGFnc1N0cmluZ09yTnVsbEZsYWdzKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5TZXROdWxsRmxhZ3NfMShkY1ZhbHVlcywgbnVsbEZsYWdzU3RyaW5nT3JOdWxsRmxhZ3MpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBTZXROdWxsRmxhZ3NfMChkY1ZhbHVlczogRGNWYWx1ZXMsIG51bGxGbGFnc1N0cmluZzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBsZXQgbnVsbEZsYWdzOiBib29sZWFuW10gPSB0aGlzLlBhcnNlTnVsbEZsYWdzKG51bGxGbGFnc1N0cmluZyk7XHJcbiAgICBkY1ZhbHVlcy5zZXROdWxsRmxhZ3MobnVsbEZsYWdzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgU2V0TnVsbEZsYWdzXzEoZGNWYWx1ZXM6IERjVmFsdWVzLCBudWxsRmxhZ3M6IGJvb2xlYW5bXSk6IHZvaWQge1xyXG4gICAgZGNWYWx1ZXMuc2V0TnVsbEZsYWdzKG51bGxGbGFncyk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIFBhcnNlIGEgc2VyaWFsaXplZCB2YWx1ZXMgc3RyaW5nIGFzIGFuIGFycmF5IG9mIHZhbHVlcy5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInZhbHVlU3RyXCI+VGhpcyBpcyBzdHJpbmcgb2YgdGhlIGNvbmNhdGVuYXRlZCB2YWx1ZXMsIHdpdGggZWFjaCB2YWx1ZSBwcmVjZWRlZCB3aXRoIGEgaGV4IG51bWJlciBkZW5vdGluZyBpdHMgbGVuZ3RoLjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiZGF0YVR5cGVcIj5UaGUgZGF0YSB0eXBlIG9mIHRoZSB2YWx1ZXMuPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ1c2VIZXhcIj48L3BhcmFtPlxyXG4gIHByb3RlY3RlZCBQYXJzZVZhbHVlcyh2YWx1ZVN0cjogc3RyaW5nLCBkYXRhVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSwgdXNlSGV4OiBib29sZWFuKTogc3RyaW5nW10ge1xyXG5cclxuICAgIGxldCBzbnVtYmVyOiBzdHJpbmc7XHJcbiAgICBsZXQgdG1wVmFsdWU6IHN0cmluZyA9IG51bGw7XHJcbiAgICBsZXQgYnVmZmVyOiBMaXN0PHN0cmluZz4gPSBuZXcgTGlzdDxzdHJpbmc+KCk7XHJcbiAgICBsZXQgbGVuOiBudW1iZXI7XHJcbiAgICBsZXQgbmV4dElkeDogbnVtYmVyO1xyXG4gICAgbGV0IGVuZElkeDogbnVtYmVyO1xyXG4gICAgbGV0IHN1ZmZpeEJ1ZjogU3RyaW5nQnVpbGRlciA9IG51bGw7XHJcblxyXG4gICAgc3dpdGNoIChkYXRhVHlwZSkge1xyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQzpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkRBVEU6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5USU1FOlxyXG4gICAgICAgIGlmICh1c2VIZXgpXHJcbiAgICAgICAgICBsZW4gPSBHdWlFbnZpcm9ubWVudC5FbnZpcm9ubWVudC5HZXRTaWduaWZpY2FudE51bVNpemUoKSAqIDI7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgbGVuID0gTWF0aC5mbG9vcigoR3VpRW52aXJvbm1lbnQuRW52aXJvbm1lbnQuR2V0U2lnbmlmaWNhbnROdW1TaXplKCkgKyAyKSAvIDMpICogNDtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5CT09MRUFOOlxyXG4gICAgICAgIGxlbiA9IDE7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGxlbiA9IDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgbmV4dElkeCA9IDA7XHJcbiAgICB3aGlsZSAobmV4dElkeCA8IHZhbHVlU3RyLmxlbmd0aCkge1xyXG4gICAgICAvLyBjb21wdXRlIHRoZSBsZW5ndGggb2YgYW4gYWxwaGEgZGF0YVxyXG4gICAgICBpZiAoZGF0YVR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEEgfHwgZGF0YVR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERSB8fFxyXG4gICAgICAgIGRhdGFUeXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0IgfHwgZGF0YVR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQl9WRUNUT1IpIHtcclxuICAgICAgICBzbnVtYmVyID0gdmFsdWVTdHIuc3Vic3RyKG5leHRJZHgsIDQpO1xyXG4gICAgICAgIGxlbiA9IE5OdW1iZXIuUGFyc2Uoc251bWJlciwgTnVtYmVyU3R5bGVzLkhleE51bWJlcik7XHJcbiAgICAgICAgbmV4dElkeCArPSA0O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBjaGVjayBpZiB0aGUgZGF0YSBpcyBzcGFubmVkXHJcbiAgICAgIGlmIChsZW4gPj0gMHg4MDAwKSB7XHJcbiAgICAgICAgc3VmZml4QnVmID0gbmV3IFN0cmluZ0J1aWxkZXIoKTtcclxuICAgICAgICBsZW4gLT0gMHg4MDAwO1xyXG4gICAgICAgIC8vIG5leHQgc2VnbWVudCBtYXkgYWxzbyBiZSBzcGFubmVkXHJcbiAgICAgICAgbmV4dElkeCArPSBSZWNvcmRVdGlscy5nZXRTcGFubmVkRmllbGQodmFsdWVTdHIsIGxlbiwgbmV4dElkeCwgZGF0YVR5cGUsIHN1ZmZpeEJ1ZiwgdXNlSGV4KTtcclxuICAgICAgICBidWZmZXIucHVzaChzdWZmaXhCdWYuVG9TdHJpbmcoKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgZW5kSWR4ID0gbmV4dElkeCArIGxlbjtcclxuICAgICAgICBpZiAodXNlSGV4KVxyXG4gICAgICAgICAgdG1wVmFsdWUgPSB2YWx1ZVN0ci5zdWJzdHIobmV4dElkeCwgKGVuZElkeCkgLSAobmV4dElkeCkpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRtcFZhbHVlID0gQmFzZTY0LmRlY29kZVRvSGV4KHZhbHVlU3RyLnN1YnN0cihuZXh0SWR4LCAoZW5kSWR4KSAtIChuZXh0SWR4KSkpO1xyXG4gICAgICAgIC8vIHRoZSBmb2xsb3dpbmcgdHdvIGxpbmVzIGFyZSByZWR1bmRhbnQgc2luY2UgdGhlIG1ha2VQcmludGFibGUoKSBpcyBjYWxsZWRcclxuICAgICAgICAvLyBpbiB0aGUgZ3VpTWFuYWdlciB3aGVuIGJ1aWxkaW5nIHRoZSBvcHRpb25zXHJcbiAgICAgICAgLyppZiAoZGF0YVR5cGUgPT0gREFUQV9UWVBFX0FMUEhBKVxyXG4gICAgICAgICAgICAgdG1wVmFsdWUgPSBndWlNYW5hZ2VyLm1ha2VQcmludGFibGUodG1wVmFsdWUpOyovXHJcbiAgICAgICAgYnVmZmVyLnB1c2godG1wVmFsdWUpO1xyXG4gICAgICAgIG5leHRJZHggPSBlbmRJZHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyB2ZWN0b3IgdG8gYXJyYXlcclxuICAgIHJldHVybiBidWZmZXIuVG9BcnJheSgpO1xyXG4gIH1cclxuXHJcbiAgUGFyc2VOdWxsRmxhZ3MobnVsbEZsYWdzU3RyaW5nOiBzdHJpbmcpOiBib29sZWFuW10ge1xyXG4gICAgbGV0IGFycmF5OiBib29sZWFuW10gPSBuZXcgQXJyYXk8Ym9vbGVhbj4obnVsbEZsYWdzU3RyaW5nLmxlbmd0aCk7XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgbnVsbEZsYWdzU3RyaW5nLmxlbmd0aDsgaSA9IGkgKyAxKSB7XHJcbiAgICAgIGFycmF5W2ldID0gKG51bGxGbGFnc1N0cmluZy5jaGFyQXQoaSkgIT09ICcwJy8qJzAnKi8pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFycmF5O1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGNWYWx1ZXNCdWlsZGVyQmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9zcmMvbWFuYWdlbWVudC9kYXRhL0RjVmFsdWVzQnVpbGRlckJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEYsT0FBTyxFQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBdUJwRCxNQUFNLE9BQWdCLG1CQUFtQjtJQUl2QyxjQUFjO1FBQ1osT0FBTyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQWtCLEVBQUUsS0FBYTtRQUNyQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxPQUFPLENBQUMsUUFBa0IsRUFBRSxJQUFzQjtRQUNoRCxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUFrQixFQUFFLGFBQXVCO1FBQzFELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQWtCLEVBQUUsVUFBb0I7UUFDcEQsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBSUQsWUFBWSxDQUFDLFFBQWtCLEVBQUUsMEJBQStCO1FBQzlELElBQUksU0FB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Q0k7Z0JBQ0gsTUFBTSxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQ3ZCLElBQUksTUFBTTtvQkFDUixRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7O29CQUUxRCxRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUtoRixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0QixPQUFPLEdBQUcsTUFBTSxDQUFDO2FBQ2xCO1NBQ0Y7UUFHRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYyxDQUFDLGVBQXVCO1FBQ3BDLElBQUksS0FBSyxHQUFjLElBQUksS0FBSyxDQUFVLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRSxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM3RCxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBUSxDQUFDO1NBQ3ZEO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7SUFDQSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RjVmFsdWVzfSBmcm9tICcuL0RjVmFsdWVzJztcclxuaW1wb3J0IHtMaXN0LCBOTnVtYmVyLCBOdW1iZXJTdHlsZXMsIFN0cmluZ0J1aWxkZXJ9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuaW1wb3J0IHtCYXNlNjQsIFN0b3JhZ2VBdHRyaWJ1dGV9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG5pbXBvcnQge1JlY29yZFV0aWxzfSBmcm9tICcuL1JlY29yZFV0aWxzJztcclxuaW1wb3J0IHtHdWlFbnZpcm9ubWVudH0gZnJvbSAnLi4vLi4vR3VpRW52aXJvbm1lbnQnO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gQmFzZSBjbGFzcyBmb3IgRGNWYWx1ZXMgYnVpbGRlci4gVGhlIGNsYXNzIGlzIGFic3RyYWN0IGFuZCwgdGh1cywgbXVzdCBiZSBpbmhlcml0ZWQuXHJcbi8vLyBUaGUgaW5oZXJpdGluZyBjbGFzcywgd2hpY2ggd2lsbCB1c3VhbGx5IGJlIGluIGFub3RoZXIgcGFja2FnZSwgd2lsbCBub3QgYmUgYWJsZSB0byBtb2RpZnlcclxuLy8vIGEgRGNWYWx1ZXMgb2JqZWN0IGRpcmVjdGx5LCBzaW5jZSBhbGwgaXRzIHNldHRlciBtZXRob2RzIGFyZSAnaW50ZXJuYWwnLiBUaGlzIGNsYXNzIHdpbGxcclxuLy8vIHByb3ZpZGUgdGhlIHNldHRlciBtZXRob2RzIGZvciB0aGUgaW5oZXJpdGluZyBidWlsZGVyLlxyXG4vLy8gPHBhcmE+SGVyZSdzIGEgdXNhZ2UgZXhhbXBsZTpcclxuLy8vIDxleGFtcGxlPlxyXG4vLy8gY2xhc3MgTXlDb25jcmV0ZUJ1aWxkZXIgOiBEY1ZhbHVlc0J1aWxkZXJCYXNlXHJcbi8vLyB7XHJcbi8vLyAgIHB1YmxpYyBvdmVycmlkZSBEY1ZhbHVlcyBCdWlsZCgpXHJcbi8vLyAgIHtcclxuLy8vICAgICAgdmFyIGRjVmFsdWVzID0gYmFzZS5DcmVhdGVEY1ZhbHVlcyhmYWxzZSk7XHJcbi8vLyAgICAgIFNldElkKG5ld0lkKTtcclxuLy8vICAgICAgU2V0VHlwZSh0aGVUeXBlKTtcclxuLy8vICAgICAgU2V0RGlzcGxheVZhbHVlcyh0aGVEaXNwbGF5VmFsdWVzKTtcclxuLy8vICAgICAgLi4uXHJcbi8vLyAgICAgIHJldHVybiBkY1ZhbHVlcztcclxuLy8vICAgfVxyXG4vLy8gfVxyXG4vLy8gPC9leGFtcGxlPlxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGNWYWx1ZXNCdWlsZGVyQmFzZSB7XHJcblxyXG4gIGFic3RyYWN0IEJ1aWxkKCk6IERjVmFsdWVzO1xyXG5cclxuICBDcmVhdGVEY1ZhbHVlcygpOiBEY1ZhbHVlcyB7XHJcbiAgICByZXR1cm4gbmV3IERjVmFsdWVzKGZhbHNlKTtcclxuICB9XHJcblxyXG4gIFNldElkKGRjVmFsdWVzOiBEY1ZhbHVlcywgbmV3SWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgZGNWYWx1ZXMuU2V0SUQobmV3SWQpO1xyXG4gIH1cclxuXHJcbiAgU2V0VHlwZShkY1ZhbHVlczogRGNWYWx1ZXMsIHR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUpOiB2b2lkIHtcclxuICAgIGRjVmFsdWVzLnNldFR5cGUodHlwZSk7XHJcbiAgfVxyXG5cclxuICBTZXREaXNwbGF5VmFsdWVzKGRjVmFsdWVzOiBEY1ZhbHVlcywgZGlzcGxheVZhbHVlczogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIGRjVmFsdWVzLlNldERpc3BsYXlWYWx1ZXMoZGlzcGxheVZhbHVlcyk7XHJcbiAgfVxyXG5cclxuICBTZXRMaW5rVmFsdWVzKGRjVmFsdWVzOiBEY1ZhbHVlcywgbGlua1ZhbHVlczogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIGRjVmFsdWVzLlNldExpbmtWYWx1ZXMobGlua1ZhbHVlcyk7XHJcbiAgfVxyXG5cclxuICBTZXROdWxsRmxhZ3MoZGNWYWx1ZXM6IERjVmFsdWVzLCBudWxsRmxhZ3NTdHJpbmc6IHN0cmluZyk6IHZvaWQ7XHJcbiAgU2V0TnVsbEZsYWdzKGRjVmFsdWVzOiBEY1ZhbHVlcywgbnVsbEZsYWdzOiBib29sZWFuW10pOiB2b2lkO1xyXG4gIFNldE51bGxGbGFncyhkY1ZhbHVlczogRGNWYWx1ZXMsIG51bGxGbGFnc1N0cmluZ09yTnVsbEZsYWdzOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyICYmIChkY1ZhbHVlcyA9PT0gbnVsbCB8fCBkY1ZhbHVlcyBpbnN0YW5jZW9mIERjVmFsdWVzKSAmJiAobnVsbEZsYWdzU3RyaW5nT3JOdWxsRmxhZ3MgPT09IG51bGwgfHwgbnVsbEZsYWdzU3RyaW5nT3JOdWxsRmxhZ3MuY29uc3RydWN0b3IgPT09IFN0cmluZykpIHtcclxuICAgICAgdGhpcy5TZXROdWxsRmxhZ3NfMChkY1ZhbHVlcywgbnVsbEZsYWdzU3RyaW5nT3JOdWxsRmxhZ3MpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLlNldE51bGxGbGFnc18xKGRjVmFsdWVzLCBudWxsRmxhZ3NTdHJpbmdPck51bGxGbGFncyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIFNldE51bGxGbGFnc18wKGRjVmFsdWVzOiBEY1ZhbHVlcywgbnVsbEZsYWdzU3RyaW5nOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGxldCBudWxsRmxhZ3M6IGJvb2xlYW5bXSA9IHRoaXMuUGFyc2VOdWxsRmxhZ3MobnVsbEZsYWdzU3RyaW5nKTtcclxuICAgIGRjVmFsdWVzLnNldE51bGxGbGFncyhudWxsRmxhZ3MpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBTZXROdWxsRmxhZ3NfMShkY1ZhbHVlczogRGNWYWx1ZXMsIG51bGxGbGFnczogYm9vbGVhbltdKTogdm9pZCB7XHJcbiAgICBkY1ZhbHVlcy5zZXROdWxsRmxhZ3MobnVsbEZsYWdzKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gUGFyc2UgYSBzZXJpYWxpemVkIHZhbHVlcyBzdHJpbmcgYXMgYW4gYXJyYXkgb2YgdmFsdWVzLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidmFsdWVTdHJcIj5UaGlzIGlzIHN0cmluZyBvZiB0aGUgY29uY2F0ZW5hdGVkIHZhbHVlcywgd2l0aCBlYWNoIHZhbHVlIHByZWNlZGVkIHdpdGggYSBoZXggbnVtYmVyIGRlbm90aW5nIGl0cyBsZW5ndGguPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJkYXRhVHlwZVwiPlRoZSBkYXRhIHR5cGUgb2YgdGhlIHZhbHVlcy48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInVzZUhleFwiPjwvcGFyYW0+XHJcbiAgcHJvdGVjdGVkIFBhcnNlVmFsdWVzKHZhbHVlU3RyOiBzdHJpbmcsIGRhdGFUeXBlOiBTdG9yYWdlQXR0cmlidXRlLCB1c2VIZXg6IGJvb2xlYW4pOiBzdHJpbmdbXSB7XHJcblxyXG4gICAgbGV0IHNudW1iZXI6IHN0cmluZztcclxuICAgIGxldCB0bXBWYWx1ZTogc3RyaW5nID0gbnVsbDtcclxuICAgIGxldCBidWZmZXI6IExpc3Q8c3RyaW5nPiA9IG5ldyBMaXN0PHN0cmluZz4oKTtcclxuICAgIGxldCBsZW46IG51bWJlcjtcclxuICAgIGxldCBuZXh0SWR4OiBudW1iZXI7XHJcbiAgICBsZXQgZW5kSWR4OiBudW1iZXI7XHJcbiAgICBsZXQgc3VmZml4QnVmOiBTdHJpbmdCdWlsZGVyID0gbnVsbDtcclxuXHJcbiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuREFURTpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLlRJTUU6XHJcbiAgICAgICAgaWYgKHVzZUhleClcclxuICAgICAgICAgIGxlbiA9IEd1aUVudmlyb25tZW50LkVudmlyb25tZW50LkdldFNpZ25pZmljYW50TnVtU2l6ZSgpICogMjtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICBsZW4gPSBNYXRoLmZsb29yKChHdWlFbnZpcm9ubWVudC5FbnZpcm9ubWVudC5HZXRTaWduaWZpY2FudE51bVNpemUoKSArIDIpIC8gMykgKiA0O1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkJPT0xFQU46XHJcbiAgICAgICAgbGVuID0gMTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgbGVuID0gMDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICBuZXh0SWR4ID0gMDtcclxuICAgIHdoaWxlIChuZXh0SWR4IDwgdmFsdWVTdHIubGVuZ3RoKSB7XHJcbiAgICAgIC8vIGNvbXB1dGUgdGhlIGxlbmd0aCBvZiBhbiBhbHBoYSBkYXRhXHJcbiAgICAgIGlmIChkYXRhVHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQSB8fCBkYXRhVHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFIHx8XHJcbiAgICAgICAgZGF0YVR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQiB8fCBkYXRhVHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CX1ZFQ1RPUikge1xyXG4gICAgICAgIHNudW1iZXIgPSB2YWx1ZVN0ci5zdWJzdHIobmV4dElkeCwgNCk7XHJcbiAgICAgICAgbGVuID0gTk51bWJlci5QYXJzZShzbnVtYmVyLCBOdW1iZXJTdHlsZXMuSGV4TnVtYmVyKTtcclxuICAgICAgICBuZXh0SWR4ICs9IDQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGNoZWNrIGlmIHRoZSBkYXRhIGlzIHNwYW5uZWRcclxuICAgICAgaWYgKGxlbiA+PSAweDgwMDApIHtcclxuICAgICAgICBzdWZmaXhCdWYgPSBuZXcgU3RyaW5nQnVpbGRlcigpO1xyXG4gICAgICAgIGxlbiAtPSAweDgwMDA7XHJcbiAgICAgICAgLy8gbmV4dCBzZWdtZW50IG1heSBhbHNvIGJlIHNwYW5uZWRcclxuICAgICAgICBuZXh0SWR4ICs9IFJlY29yZFV0aWxzLmdldFNwYW5uZWRGaWVsZCh2YWx1ZVN0ciwgbGVuLCBuZXh0SWR4LCBkYXRhVHlwZSwgc3VmZml4QnVmLCB1c2VIZXgpO1xyXG4gICAgICAgIGJ1ZmZlci5wdXNoKHN1ZmZpeEJ1Zi5Ub1N0cmluZygpKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBlbmRJZHggPSBuZXh0SWR4ICsgbGVuO1xyXG4gICAgICAgIGlmICh1c2VIZXgpXHJcbiAgICAgICAgICB0bXBWYWx1ZSA9IHZhbHVlU3RyLnN1YnN0cihuZXh0SWR4LCAoZW5kSWR4KSAtIChuZXh0SWR4KSk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdG1wVmFsdWUgPSBCYXNlNjQuZGVjb2RlVG9IZXgodmFsdWVTdHIuc3Vic3RyKG5leHRJZHgsIChlbmRJZHgpIC0gKG5leHRJZHgpKSk7XHJcbiAgICAgICAgLy8gdGhlIGZvbGxvd2luZyB0d28gbGluZXMgYXJlIHJlZHVuZGFudCBzaW5jZSB0aGUgbWFrZVByaW50YWJsZSgpIGlzIGNhbGxlZFxyXG4gICAgICAgIC8vIGluIHRoZSBndWlNYW5hZ2VyIHdoZW4gYnVpbGRpbmcgdGhlIG9wdGlvbnNcclxuICAgICAgICAvKmlmIChkYXRhVHlwZSA9PSBEQVRBX1RZUEVfQUxQSEEpXHJcbiAgICAgICAgICAgICB0bXBWYWx1ZSA9IGd1aU1hbmFnZXIubWFrZVByaW50YWJsZSh0bXBWYWx1ZSk7Ki9cclxuICAgICAgICBidWZmZXIucHVzaCh0bXBWYWx1ZSk7XHJcbiAgICAgICAgbmV4dElkeCA9IGVuZElkeDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHZlY3RvciB0byBhcnJheVxyXG4gICAgcmV0dXJuIGJ1ZmZlci5Ub0FycmF5KCk7XHJcbiAgfVxyXG5cclxuICBQYXJzZU51bGxGbGFncyhudWxsRmxhZ3NTdHJpbmc6IHN0cmluZyk6IGJvb2xlYW5bXSB7XHJcbiAgICBsZXQgYXJyYXk6IGJvb2xlYW5bXSA9IG5ldyBBcnJheTxib29sZWFuPihudWxsRmxhZ3NTdHJpbmcubGVuZ3RoKTtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBudWxsRmxhZ3NTdHJpbmcubGVuZ3RoOyBpID0gaSArIDEpIHtcclxuICAgICAgYXJyYXlbaV0gPSAobnVsbEZsYWdzU3RyaW5nLmNoYXJBdChpKSAhPT0gJzAnLyonMCcqLyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -328,4 +328,4 @@ export class FieldDef {
|
|
|
328
328
|
return this.getVarName();
|
|
329
329
|
}
|
|
330
330
|
}
|
|
331
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmllbGREZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL21hbmFnZW1lbnQvZGF0YS9GaWVsZERlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RyxPQUFPLEVBQU8sT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXRELE1BQU0sT0FBTyxRQUFRO0lBQ25CLFlBQVksR0FBVyxJQUFJLENBQUM7SUFDNUIsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUNuQixZQUFZLEdBQVksS0FBSyxDQUFDO0lBQzlCLFVBQVUsR0FBVyxJQUFJLENBQUM7SUFDMUIsWUFBWSxHQUFXLElBQUksQ0FBQztJQUd0QyxJQUFJLFlBQVksQ0FBQyxLQUFjO1FBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUNPLGFBQWEsR0FBWSxJQUFJLENBQUM7SUFFOUIsZUFBZSxHQUFZLElBQUksQ0FBQztJQUM5QixRQUFRLEdBQVcsSUFBSSxDQUFDO0lBQ3hCLEtBQUssR0FBVyxDQUFDLENBQUM7SUFDbEIs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QUFPLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFRRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QmxvYlR5cGV9IGZyb20gXCIuL0Jsb2JUeXBlXCI7XHJcbmltcG9ydCB7RmxkU3RvcmFnZSwgU3RvcmFnZUF0dHJpYnV0ZSwgU3RyVXRpbCwgWG1sUGFyc2VyLCBCYXNlNjQsIFhNTENvbnN0YW50c30gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtMaXN0LCBOTnVtYmVyLCBOU3RyaW5nLCBJbnQzMn0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7RXZlbnRzfSBmcm9tIFwiLi4vLi4vRXZlbnRzXCI7XHJcbmltcG9ydCB7RGlzcGxheUNvbnZlcnRvcn0gZnJvbSBcIi4uL2d1aS9EaXNwbGF5Q29udmVydG9yXCI7XHJcbmltcG9ydCB7VmVjdG9yVHlwZX0gZnJvbSBcIi4vVmVjdG9yVHlwZVwiO1xyXG5pbXBvcnQgeyBHdWlFbnZpcm9ubWVudCB9IGZyb20gXCIuLi8uLi9HdWlFbnZpcm9ubWVudFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpZWxkRGVmIHtcclxuICBEZWZhdWx0VmFsdWU6IHN0cmluZyA9IG51bGw7XHJcbiAgTnVsbEFsbG93ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcm90ZWN0ZWQgX251bGxEZWZhdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJvdGVjdGVkIF9udWxsVmFsdWU6IHN0cmluZyA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIF9udWxsRGlzcGxheTogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLy8gdHJ1ZSwgaWYgZmllbGQgaXMgbW9kaWZpYWJsZSBvbiBmaWVsZCBsZXZlbFxyXG4gIHNldCBEYk1vZGlmaWFibGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2RiTW9kaWZpYWJsZSA9IHZhbHVlO1xyXG4gIH1cclxuICBnZXQgRGJNb2RpZmlhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RiTW9kaWZpYWJsZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGJNb2RpZmlhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHJpdmF0ZSBfcGFydE9mRGF0YXZpZXc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHByb3RlY3RlZCBfcGljdHVyZTogc3RyaW5nID0gbnVsbDtcclxuICBwcm90ZWN0ZWQgX3NpemU6IG51bWJlciA9IDA7XHJcbiAgcHJvdGVjdGVkIF92YXJOYW1lOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAvLyBPbmx5IGZvciBCTE9CIGZpZWxkLiBEb2VzIGl0IGNvbnRhaW4gYSB1bmljb2RlIG9yIEFOU0kgZGF0YT9cclxuICBwcml2YXRlIF9jb250ZW50VHlwZTogc3RyaW5nID0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX1VOS05PV047XHJcbiAgcHJvdGVjdGVkIF92ZWNDZWxsc0NvbnRlbnRUeXBlOiBzdHJpbmcgPSBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5LTk9XTjtcclxuICBwcm90ZWN0ZWQgX3ZlY0NlbGxzU2l6ZTogbnVtYmVyID0gMDtcclxuICBwcm90ZWN0ZWQgX3ZlY0NlbGxzVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSA9IFN0b3JhZ2VBdHRyaWJ1dGUuTk9ORTtcclxuICBwcm90ZWN0ZWQgX3R5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUgPSBTdG9yYWdlQXR0cmlidXRlLk5PTkU7XHJcbiAgU3RvcmFnZTogRmxkU3RvcmFnZSA7XHJcbiAgVmFyRGlzcGxheU5hbWU6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIHByb3RlY3RlZCBzdGF0aWMgX2RlZmF1bHRfZGF0ZTogc3RyaW5nID0gbnVsbDtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2lkOiBudW1iZXIgPSAwO1xyXG4gIHByb3RlY3RlZCBfc3BhY2VzOiBzdHJpbmdbXSA9IG51bGw7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiaWRfXCI+IGlkeCBpbiBGaWVsZHNUYWJsZSA8L3BhcmFtPlxyXG4gIGNvbnN0cnVjdG9yKGlkOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2lkID0gaWQ7XHJcbiAgICB0aGlzLlZhckRpc3BsYXlOYW1lID0gTlN0cmluZy5FbXB0eTtcclxuICB9XHJcblxyXG4gIGdldCBQYXJ0T2ZEYXRhdmlldygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9wYXJ0T2ZEYXRhdmlldztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gcmV0dXJucyB0aGUgaWQgb2YgdGhlIGZpZWxkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRJZCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lkO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBzaXplIHR5cGUgb2YgY3VycmVudCBGaWVsZDogQSwgTiwgTCwgRCwgVFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiBzaXplIG1lbWJlciBvZiBjdXJyZW50IEZpZWxkXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBnZXRUeXBlKCk6IFN0b3JhZ2VBdHRyaWJ1dGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHJldHVybiB0aGUgbWFnaWMgZGVmYXVsdCBudWxsIGRpc3BsYXkgdmFsdWUgYWNjb3JkaW5nIHRvIHRoZSB0eXBlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInR5cGVcIj5vZiB0aGUgZGF0YTwvcGFyYW0+XHJcbiAgc3RhdGljIGdldE1hZ2ljRGVmYXVsdE51bGxEaXNwbGF5VmFsdWUodHlwZTogU3RvcmFnZUF0dHJpYnV0ZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsOiBzdHJpbmc7XHJcblxyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQTpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREU6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5CT09MRUFOOlxyXG4gICAgICAgIHZhbCA9IFwiXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQzpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkRBVEU6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5USU1FOlxyXG4gICAgICAgIC8vIHplcm9cclxuICAgICAgICB2YWwgPSBcIlwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gcmV0dXJuIHRoZSBtYWdpYyBkZWZhdWx0IHZhbHVlIGFjY29yZGluZyB0byB0aGUgdHlwZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0eXBlXCI+b2YgdGhlIGRhdGE8L3BhcmFtPlxyXG4gIHN0YXRpYyBnZXRNYWdpY0RlZmF1bHRWYWx1ZSh0eXBlOiBTdG9yYWdlQXR0cmlidXRlKTogc3RyaW5nIHtcclxuICAgIGxldCB2YWw6IHN0cmluZyA9IG51bGw7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERTpcclxuICAgICAgICB2YWwgPSBcIlwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQjpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SOlxyXG4gICAgICAgIHZhbCA9IEJsb2JUeXBlLmdldEVtcHR5QmxvYlByZWZpeCgnXFwwJykgKyBcIjtcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUM6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5USU1FOlxyXG4gICAgICAgIHZhbCA9IFwiRkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuREFURTpcclxuICAgICAgICB2YWwgPSBGaWVsZERlZi5fZGVmYXVsdF9kYXRlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQk9PTEVBTjpcclxuICAgICAgICB2YWwgPSBcIjBcIjtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiB2YWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHJldHVybnMgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhpcyBmaWVsZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0RGVmYXVsdFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgIT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQl9WRUNUT1IpIHtcclxuICAgICAgaWYgKHRoaXMuX251bGxEZWZhdWx0ICYmIHRoaXMuX251bGxWYWx1ZSAhPT0gbnVsbClcclxuICAgICAgICB2YWwgPSB0aGlzLl9udWxsVmFsdWU7XHJcbiAgICAgIGVsc2UgaWYgKHRoaXMuRGVmYXVsdFZhbHVlICE9PSBudWxsKVxyXG4gICAgICAgIHZhbCA9IHRoaXMuRGVmYXVsdFZhbHVlO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdmFsID0gdGhpcy5nZXRNYWdpY0RlZmF1bHRWYWx1ZSgpO1xyXG4gICAgfVxyXG4gICAgIGVsc2VcclxuICAgICAgIHZhbCA9IHRoaXMuZ2V0TWFnaWNEZWZhdWx0VmFsdWUoKTtcclxuXHJcbiAgICByZXR1cm4gdmFsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyByZXR1cm5zIHRoZSB2ZWN0b3JzIGNlbGxzIGRlZmF1bHQgdmFsdWVcclxuICAvLy8gaWYgdGhlIGZpZWxkIGlzIG5vdCBhIHZlY3RvciByZXR1cm5zIGZpZWxkIGRlZmF1bHQgdmFsdWVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldENlbGxEZWZ1YWx0VmFsdWUoKTogc3RyaW5nIHtcclxuICAgIGxldCB2YWw6IHN0cmluZztcclxuICAgIGlmICh0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SKSB7XHJcbiAgICAgIGlmICh0aGlzLl9udWxsRGVmYXVsdCAmJiB0aGlzLl9udWxsVmFsdWUgIT09IG51bGwpXHJcbiAgICAgICAgdmFsID0gdGhpcy5fbnVsbFZhbHVlO1xyXG4gICAgICBlbHNlIGlmICh0aGlzLkRlZmF1bHRWYWx1ZSAhPT0gbnVsbClcclxuICAgICAgICAgIHZhbCA9IHRoaXMuRGVmYXVsdFZhbHVlO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB2YWwgPSBGaWVsZERlZi5nZXRNYWdpY0RlZmF1bHRWYWx1ZSh0aGlzLl92ZWNDZWxsc1R5cGUpO1xyXG4gICAgICAgIGlmICh0aGlzLl92ZWNDZWxsc1R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQilcclxuICAgICAgICAgIHZhbCA9IEJsb2JUeXBlLnNldENvbnRlbnRUeXBlKHZhbCwgdGhpcy5fdmVjQ2VsbHNDb250ZW50VHlwZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdmFsID0gdGhpcy5nZXREZWZhdWx0VmFsdWUoKTtcclxuICAgIHJldHVybiB2YWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHJldHVybiB0aGUgbWFnaWMgZGVmYXVsdCB2YWx1ZSBhY2NvcmRpbmcgdG8gdGhlIHR5cGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldE1hZ2ljRGVmYXVsdFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsOiBzdHJpbmcgPSBGaWVsZERlZi5nZXRNYWdpY0RlZmF1bHRWYWx1ZSh0aGlzLl90eXBlKTtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0IpXHJcbiAgICAgIHZhbCA9IEJsb2JUeXBlLnNldENvbnRlbnRUeXBlKHZhbCwgdGhpcy5fY29udGVudFR5cGUpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SKSB7XHJcbiAgICAgICAgdmFsID0gQmxvYlR5cGUuU2V0VmVjQ2VsbEF0dHIodmFsLCB0aGlzLl92ZWNDZWxsc1R5cGUpO1xyXG4gICAgICAgIGlmICh0aGlzLl92ZWNDZWxsc1R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQilcclxuICAgICAgICAgIHZhbCA9IEJsb2JUeXBlLnNldENvbnRlbnRUeXBlKHZhbCwgdGhpcy5fdmVjQ2VsbHNDb250ZW50VHlwZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB2YWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IHRoZSBjb250ZW50VHlwZSA8L3JldHVybnM+XHJcbiAgZ2V0Q29udGVudFR5cGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9jb250ZW50VHlwZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRydWUgaWYgdGhlIG51bGxEaXNwbGF5IGhhcyBhIHZhbHVlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBoYXNOdWxsRGlzcGxheVZhbHVlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX251bGxEaXNwbGF5ICE9PSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNpemUgbWVtYmVyIG9mIGN1cnJlbnQgRmllbGRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gc2l6ZSBtZW1iZXIgb2YgY3VycmVudCBGaWVsZCA8L3JldHVybnM+XHJcbiAgZ2V0U2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NpemU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgdmVjdG9yIGNlbGxzIHNpemVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldFZlY0NlbGxzU2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICh0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SKSA/IHRoaXMuX3ZlY0NlbGxzU2l6ZSA6IHRoaXMuX3NpemU7XHJcbiAgfVxyXG5cclxuICBzZXRMZW5ndGhzKHR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUsIHZlY0NlbGxzOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBsZXQgcmVzOiBudW1iZXIgPSB0aGlzLl9zaXplO1xyXG5cclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEE6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5NRU1POlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERTpcclxuICAgICAgICBpZiAodmVjQ2VsbHMpIHtcclxuICAgICAgICAgIHJlcyA9IHRoaXMuX3ZlY0NlbGxzU2l6ZTtcclxuICAgICAgICAgIHRoaXMuX3NwYWNlcyA9IG5ldyBBcnJheTxzdHJpbmc+KHRoaXMuX3ZlY0NlbGxzU2l6ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMuX3NwYWNlcyA9IG5ldyBBcnJheTxzdHJpbmc+KHRoaXMuX3NpemUpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgdGhpcy5fc2l6ZTsgaSA9IGkgKyAxKSB7XHJcbiAgICAgICAgICB0aGlzLl9zcGFjZXNbaV0gPSAnICc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUM6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5EQVRFOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVElNRTpcclxuICAgICAgICByZXMgPSBHdWlFbnZpcm9ubWVudC5FbnZpcm9ubWVudC5HZXRTaWduaWZpY2FudE51bVNpemUoKSAqIDI7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQk9PTEVBTjpcclxuICAgICAgICByZXMgPSAoIXZlY0NlbGxzID8gMSA6IDQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkJMT0I6XHJcbiAgICAgICAgLy8gUUNSIDc1ODkxMyBGT1IgVkVDVE9SUyBJTlRFUk5BTCBVU0UgT05MWSBUSEUgU0laRSBPRiBCTE9CUyBBTkQgVkVDVE9SXHJcbiAgICAgICAgLy8gSVMgVEhFIFNJWkUgT0YgVEhJRVIgU1RSVUNUUyBJTiBUSEUgTUFHSUMgRU5HSU5cclxuICAgICAgICByZXMgPSAoIXZlY0NlbGxzID8gSW50MzIuTWF4VmFsdWUgOiBWZWN0b3JUeXBlLkJMT0JfVFlQRV9TVFJVQ1RfU0laRSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQl9WRUNUT1I6XHJcbiAgICAgICAgcmVzID0gSW50MzIuTWF4VmFsdWU7XHJcbiAgICAgICAgaWYgKCF2ZWNDZWxscylcclxuICAgICAgICAgIHRoaXMuc2V0TGVuZ3Rocyh0aGlzLl92ZWNDZWxsc1R5cGUsIHRydWUpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHJlcyA9IFZlY3RvclR5cGUuQkxPQl9UWVBFX1NUUlVDVF9TSVpFO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh2ZWNDZWxscylcclxuICAgICAgdGhpcy5fdmVjQ2VsbHNTaXplID0gcmVzO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLl9zaXplID0gcmVzO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdGhlIGNlbGxzIHR5cGUgb2YgdmVjdG9ycyBlbGVzZSByZXR1cm5zIHRoZSBmaWVsZCB0eXBlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRDZWxsc1R5cGUoKTogU3RvcmFnZUF0dHJpYnV0ZSB7XHJcbiAgICByZXR1cm4gKHRoaXMuX3R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQl9WRUNUT1IpID8gdGhpcy5fdmVjQ2VsbHNUeXBlIDogdGhpcy5fdHlwZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSBjZWxsIGNvbnRlbnQgdHlwZSBvZiB2ZWN0b3IgZmllbGRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz52ZWN0b3IncyBjZWxsIGNvbnRlbnQgdHlwZTwvcmV0dXJucz5cclxuICBnZXRWZWNDZWxsc0NvbnRlbnRUeXBlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmVjQ2VsbHNDb250ZW50VHlwZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIE51bGwgVmFsdWUgdmFsdWUgb2YgdGhpcyBmaWVsZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0TnVsbFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbnVsbFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiB0aGUgZmllbGQgaXMgYSBOdWxsIERlZmF1bHRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGlzTnVsbERlZmF1bHQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbnVsbERlZmF1bHQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyBOdWxsIERpc3BsYXkgdmFsdWUgb2YgdGhpcyBmaWVsZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0TnVsbERpc3BsYXkoKTogYW55IHtcclxuICAgIGxldCB2YWw6IGFueTtcclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMuX3R5cGUpIHtcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERTpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkJPT0xFQU46XHJcbiAgICAgICAgdmFsID0gXCJcIjtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuREFURTpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLlRJTUU6XHJcbiAgICAgICAgLy8gemVyb1xyXG4gICAgICAgIHZhbCA9IG51bGw7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEZvciBCTE9CIGZpZWxkcywgY2hlY2sgaWYgdGhleSBjb250YWluIFVOSUNPREUgb3IgQU5TSSBjaGFycy5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz5UUlVFIGlmIGNvbnRlbnQgaXMgVU5JQ09ERS4gRmFsc2Ugb3RoZXJ3aXNlPC9yZXR1cm5zPlxyXG4gIElzQ29udGVudFVuaWNvZGUoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CICYmIHRoaXMuX2NvbnRlbnRUeXBlICE9PSBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5JQ09ERSlcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgR2V0UGljdHVyZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BpY3R1cmU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHNldCB0aGUgZmllbGQgYXR0cmlidXRlIGluIHBhcnNpbmdcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gcHJvdGVjdGVkIHNldEF0dHJpYnV0ZShhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWVTdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGlzVGFnUHJvY2Vzc2VkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBzd2l0Y2ggKGF0dHJpYnV0ZSkge1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX1RZUEU6XHJcbiAgICAgICAgdGhpcy5fdHlwZSA9IDxTdG9yYWdlQXR0cmlidXRlPnZhbHVlU3RyLmNoYXJBdCgwKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBYTUxDb25zdGFudHMuTUdfQVRUUl9TSVpFOlxyXG4gICAgICAgIHRoaXMuX3NpemUgPSBYbWxQYXJzZXIuZ2V0SW50KHZhbHVlU3RyKTtcclxuICAgICAgICBpZiAodGhpcy5fc2l6ZSA8PSAwKVxyXG4gICAgICAgICAgRXZlbnRzLldyaXRlRXhjZXB0aW9uVG9Mb2coXCJpbiBGaWVsZC5pbml0RWxlbWVudHMoKTogc2l6ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX1ZBUl9OQU1FOlxyXG4gICAgICAgIHRoaXMuX3Zhck5hbWUgPSBYbWxQYXJzZXIudW5lc2NhcGUodmFsdWVTdHIpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfVkFSX0RJU1BfTkFNRTpcclxuICAgICAgICB0aGlzLlZhckRpc3BsYXlOYW1lID0gWG1sUGFyc2VyLnVuZXNjYXBlKHZhbHVlU3RyKS50b1N0cmluZygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX1BJQ1RVUkU6XHJcbiAgICAgICAgdGhpcy5fcGljdHVyZSA9IFhtbFBhcnNlci51bmVzY2FwZSh2YWx1ZVN0cikudG9TdHJpbmcoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBYTUxDb25zdGFudHMuTUdfQVRUUl9WRUNfQ0VMTFNfU0laRTpcclxuICAgICAgICB0aGlzLl92ZWNDZWxsc1NpemUgPSBOTnVtYmVyLlBhcnNlKHZhbHVlU3RyKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBYTUxDb25zdGFudHMuTUdfQVRUUl9WRUNfQ0VMTFNfQVRUUjpcclxuICAgICAgICB0aGlzLl92ZWNDZWxsc1R5cGUgPSA8U3RvcmFnZUF0dHJpYnV0ZT52YWx1ZVN0ci5jaGFyQXQoMCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfVkVDX0NFTExTX0NPTlRFTlQ6XHJcbiAgICAgICAgdGhpcy5fdmVjQ2VsbHNDb250ZW50VHlwZSA9IHZhbHVlU3RyLmNoYXJBdCgwKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBYTUxDb25zdGFudHMuTUdfQVRUUl9OVUxMVkFMVUU6XHJcbiAgICAgICAgaWYgKHRoaXMuX3R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQyB8fCB0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkRBVEUgfHwgdGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5USU1FKSB7XHJcbiAgICAgICAgICBpZiAoR3VpRW52aXJvbm1lbnQuRW52aXJvbm1lbnQuR2V0RGVidWdMZXZlbCgpID4gMSlcclxuICAgICAgICAgICAgdGhpcy5fbnVsbFZhbHVlID0gWG1sUGFyc2VyLnVuZXNjYXBlKHZhbHVlU3RyKS50b1N0cmluZygpO1xyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLl9udWxsVmFsdWUgPSBCYXNlNjQuZGVjb2RlVG9IZXgodmFsdWVTdHIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLl9udWxsVmFsdWUgPSBYbWxQYXJzZXIudW5lc2NhcGUodmFsdWVTdHIpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfTlVMTERJU1BMQVk6XHJcbiAgICAgICAgdGhpcy5fbnVsbERpc3BsYXkgPSBYbWxQYXJzZXIudW5lc2NhcGUodmFsdWVTdHIpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfTlVMTERFRkFVTFQ6XHJcbiAgICAgICAgdGhpcy5fbnVsbERlZmF1bHQgPSBEaXNwbGF5Q29udmVydG9yLnRvQm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfREJfTU9ESUZJQUJMRTpcclxuICAgICAgICB0aGlzLkRiTW9kaWZpYWJsZSA9IERpc3BsYXlDb252ZXJ0b3IudG9Cb29sZWFuKHZhbHVlU3RyKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBYTUxDb25zdGFudHMuTUdfQVRUUl9ERUZBVUxUVkFMVUU6XHJcbiAgICAgICAgdGhpcy5EZWZhdWx0VmFsdWUgPSB2YWx1ZVN0cjtcclxuICAgICAgICBpZiAodGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQSB8fCB0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREUpIHtcclxuICAgICAgICAgIHRoaXMuRGVmYXVsdFZhbHVlID0gWG1sUGFyc2VyLnVuZXNjYXBlKHZhbHVlU3RyKS50b1N0cmluZygpO1xyXG4gICAgICAgICAgdGhpcy5EZWZhdWx0VmFsdWUgPSBTdHJVdGlsLnBhZFN0cih0aGlzLkRlZmF1bHRWYWx1ZSwgdGhpcy5fc2l6ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX3R5cGUgIT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQiAmJiB0aGlzLl90eXBlICE9PSBTdG9yYWdlQXR0cmlidXRlLkJPT0xFQU4pIHtcclxuICAgICAgICAgIC8vIHdvcmtpbmcgaW4gaGV4IG9yIGJhc2U2NFxyXG4gICAgICAgICAgaWYgKCh0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SICYmXHJcbiAgICAgICAgICAgICh0aGlzLl92ZWNDZWxsc1R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQyB8fCB0aGlzLl92ZWNDZWxsc1R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuREFURSB8fCB0aGlzLl92ZWNDZWxsc1R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuVElNRSkpIHx8XHJcbiAgICAgICAgICAgICh0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUMgfHwgdGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5EQVRFIHx8IHRoaXMuX3R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuVElNRSkpIHtcclxuICAgICAgICAgICAgaWYgKEd1aUVudmlyb25tZW50LkVudmlyb25tZW50LkdldERlYnVnTGV2ZWwoKSA8IDEpXHJcbiAgICAgICAgICAgICAgdGhpcy5EZWZhdWx0VmFsdWUgPSBCYXNlNjQuZGVjb2RlVG9IZXgodmFsdWVTdHIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLkRlZmF1bHRWYWx1ZS5sZW5ndGggPT09IDAgJiYgdGhpcy5fdHlwZSAhPT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CKVxyXG4gICAgICAgICAgdGhpcy5EZWZhdWx0VmFsdWUgPSBudWxsO1xyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX3R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQilcclxuICAgICAgICAgIHRoaXMuRGVmYXVsdFZhbHVlID0gQmxvYlR5cGUuY3JlYXRlRnJvbVN0cmluZyh0aGlzLkRlZmF1bHRWYWx1ZSwgdGhpcy5fY29udGVudFR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX05VTExBTExPV0VEOlxyXG4gICAgICAgIHRoaXMuTnVsbEFsbG93ZWQgPSBEaXNwbGF5Q29udmVydG9yLnRvQm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfQkxPQl9DT05URU5UOlxyXG4gICAgICAgIHRoaXMuX2NvbnRlbnRUeXBlID0gdmFsdWVTdHIuY2hhckF0KDApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX1BBUlRfT0ZfREFUQVZJRVc6XHJcbiAgICAgICAgdGhpcy5fcGFydE9mRGF0YXZpZXcgPSBEaXNwbGF5Q29udmVydG9yLnRvQm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfU1RPUkFHRTpcclxuICAgICAgICB0aGlzLlN0b3JhZ2UgPSA8RmxkU3RvcmFnZT5YbWxQYXJzZXIuZ2V0SW50KHZhbHVlU3RyKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBpc1RhZ1Byb2Nlc3NlZCA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpc1RhZ1Byb2Nlc3NlZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBOZWVkIHBhcnQgaW5wdXQgU3RyaW5nIHRvIHJlbGV2YW50IGZvciB0aGUgRmllbGQgY2xhc3MgZGF0YVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZmlsbERhdGEocGFyc2VyOiBYbWxQYXJzZXIpOiB2b2lkIHtcclxuICAgIGxldCB0ZXh0OiBzdHJpbmcgPSBwYXJzZXIuUmVhZFRvRW5kT2ZDdXJyZW50RWxlbWVudCgpO1xyXG4gICAgdGV4dCA9IHRleHQuc3Vic3RyKHRleHQuaW5kZXhPZihYTUxDb25zdGFudHMuTUdfVEFHX0ZMREgpICsgWE1MQ29uc3RhbnRzLk1HX1RBR19GTERILmxlbmd0aCk7XHJcbiAgICBsZXQgdG9rZW5zOiBMaXN0PHN0cmluZz4gPSBYbWxQYXJzZXIuZ2V0VG9rZW5zKHRleHQsIFhNTENvbnN0YW50cy5YTUxfQVRUUl9ERUxJTSk7XHJcbiAgICB0aGlzLmluaXRFbGVtZW50cyh0b2tlbnMpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIE1ha2UgaW5pdGlhbGl6YXRpb24gb2YgcHJpdmF0ZSBlbGVtZW50cyBieSBmb3VuZCB0b2tlbnNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidG9rZW5zVmVjdG9yXCI+Zm91bmQgdG9rZW5zLCB3aGljaCBjb25zaXN0IGF0dHJpYnV0ZS92YWx1ZSBvZiBldmVyeSBmb3VuZGVsZW1lbnQ8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZXhwVGFiXCI+cmVmZXJlbmNlIHRvIHJlbGV2YW50IGV4cC4gdGFibGU8L3BhcmFtPlxyXG4gIGluaXRFbGVtZW50cyh0b2tlbnNWZWN0b3I6IExpc3Q8c3RyaW5nPik6IHZvaWQge1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHRva2Vuc1ZlY3Rvci5sZW5ndGg7IGkgPSBpICsgMikge1xyXG4gICAgICBsZXQgYXR0cmlidXRlOiBzdHJpbmcgPSB0b2tlbnNWZWN0b3IuZ2V0X0l0ZW0oaSk7XHJcbiAgICAgIGxldCB2YWx1ZVN0cjogc3RyaW5nID0gdG9rZW5zVmVjdG9yLmdldF9JdGVtKGkgKyAxKTtcclxuXHJcbiAgICAgIC8vIHRoZSBwYXJzaW5nIGlzIGZpbmlzaGVkIGhlcmVcclxuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCB2YWx1ZVN0cik7XHJcbiAgICB9XHJcbiAgICB0aGlzLlNldEFmdGVyUGFyc2luZygpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBzb21lIHByb3BlcnRpZXMgYXJlIG5lZWRlZCB0byBiZSBzZXQgYWZ0ZXIgcGFyc2luZ1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgU2V0QWZ0ZXJQYXJzaW5nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRMZW5ndGhzKHRoaXMuX3R5cGUsIGZhbHNlKTtcclxuICAgIGlmICh0aGlzLk51bGxBbGxvd2VkICYmIHRoaXMuX251bGxEaXNwbGF5ID09PSBudWxsKVxyXG4gICAgICB0aGlzLl9udWxsRGlzcGxheSA9IFwiXCI7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IG5hbWUgb2YgdmFyaWFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldFZhck5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl92YXJOYW1lIHx8IFwiXCI7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZm9yIGdldCBWQVJOQU1FIGZ1bmN0aW9uIHVzZVxyXG4gIC8vLyAgIEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHRhYmxlIG5hbWUgd2hlcmUgdGhlIHZhcmlhYmxlIG9yaWdpbmF0ZXMsXHJcbiAgLy8vICAgY29uY2F0ZW5hdGVkIHdpdGggJy4nIGFuZCB0aGUgdmFyaWFibGUgZGVzY3JpcHRpb24gb2YgdGhlIHZhcmlhYmxlIGluIHRoYXQgdGFibGUuXHJcbiAgLy8vICAgSWYgdGhlIHZhcmlhYmxlIGlzIGEgdmlydHVhbCBvbmUsIHRoZW4gdGhlIHRhYmxlIG5hbWUgd291bGQgaW5kaWNhdGUgJ1ZpcnR1YWwnLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0TmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0VmFyTmFtZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
331
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmllbGREZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL21hbmFnZW1lbnQvZGF0YS9GaWVsZERlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RyxPQUFPLEVBQU8sT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXRELE1BQU0sT0FBTyxRQUFRO0lBQ25CLFlBQVksR0FBVyxJQUFJLENBQUM7SUFDNUIsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUNuQixZQUFZLEdBQVksS0FBSyxDQUFDO0lBQzlCLFVBQVUsR0FBVyxJQUFJLENBQUM7SUFDMUIsWUFBWSxHQUFXLElBQUksQ0FBQztJQUd0QyxJQUFJLFlBQVksQ0FBQyxLQUFjO1FBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUNPLGFBQWEsR0FBWSxJQUFJLENBQUM7SUFFOUIsZUFBZSxHQUFZLElBQUksQ0FBQztJQUM5QixRQUFRLEdBQVcsSUFBSSxDQUFDO0lBQ3hCLEtBQUssR0FBVyxDQUFDLENBQUM7SUFDbEIs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e0ZsZFN0b3JhZ2UsIFN0b3JhZ2VBdHRyaWJ1dGUsIFN0clV0aWwsIFhtbFBhcnNlciwgQmFzZTY0LCBYTUxDb25zdGFudHN9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7TGlzdCwgTk51bWJlciwgTlN0cmluZywgSW50MzJ9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge0V2ZW50c30gZnJvbSBcIi4uLy4uL0V2ZW50c1wiO1xyXG5pbXBvcnQge0Rpc3BsYXlDb252ZXJ0b3J9IGZyb20gXCIuLi9ndWkvRGlzcGxheUNvbnZlcnRvclwiO1xyXG5pbXBvcnQge1ZlY3RvclR5cGV9IGZyb20gXCIuL1ZlY3RvclR5cGVcIjtcclxuaW1wb3J0IHsgR3VpRW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vLi4vR3VpRW52aXJvbm1lbnRcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBGaWVsZERlZiB7XHJcbiAgRGVmYXVsdFZhbHVlOiBzdHJpbmcgPSBudWxsO1xyXG4gIE51bGxBbGxvd2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJvdGVjdGVkIF9udWxsRGVmYXVsdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByb3RlY3RlZCBfbnVsbFZhbHVlOiBzdHJpbmcgPSBudWxsO1xyXG4gIHByb3RlY3RlZCBfbnVsbERpc3BsYXk6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIC8vIHRydWUsIGlmIGZpZWxkIGlzIG1vZGlmaWFibGUgb24gZmllbGQgbGV2ZWxcclxuICBzZXQgRGJNb2RpZmlhYmxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kYk1vZGlmaWFibGUgPSB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IERiTW9kaWZpYWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kYk1vZGlmaWFibGU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RiTW9kaWZpYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHByaXZhdGUgX3BhcnRPZkRhdGF2aWV3OiBib29sZWFuID0gdHJ1ZTtcclxuICBwcm90ZWN0ZWQgX3BpY3R1cmU6IHN0cmluZyA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIF9zaXplOiBudW1iZXIgPSAwO1xyXG4gIHByb3RlY3RlZCBfdmFyTmFtZTogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLy8gT25seSBmb3IgQkxPQiBmaWVsZC4gRG9lcyBpdCBjb250YWluIGEgdW5pY29kZSBvciBBTlNJIGRhdGE/XHJcbiAgcHJpdmF0ZSBfY29udGVudFR5cGU6IHN0cmluZyA9IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9VTktOT1dOO1xyXG4gIHByb3RlY3RlZCBfdmVjQ2VsbHNDb250ZW50VHlwZTogc3RyaW5nID0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX1VOS05PV047XHJcbiAgcHJvdGVjdGVkIF92ZWNDZWxsc1NpemU6IG51bWJlciA9IDA7XHJcbiAgcHJvdGVjdGVkIF92ZWNDZWxsc1R5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUgPSBTdG9yYWdlQXR0cmlidXRlLk5PTkU7XHJcbiAgcHJvdGVjdGVkIF90eXBlOiBTdG9yYWdlQXR0cmlidXRlID0gU3RvcmFnZUF0dHJpYnV0ZS5OT05FO1xyXG4gIFN0b3JhZ2U6IEZsZFN0b3JhZ2UgO1xyXG4gIFZhckRpc3BsYXlOYW1lOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICBwcm90ZWN0ZWQgc3RhdGljIF9kZWZhdWx0X2RhdGU6IHN0cmluZyA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9pZDogbnVtYmVyID0gMDtcclxuICBwcm90ZWN0ZWQgX3NwYWNlczogc3RyaW5nW10gPSBudWxsO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIENUT1JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImlkX1wiPiBpZHggaW4gRmllbGRzVGFibGUgPC9wYXJhbT5cclxuICBjb25zdHJ1Y3RvcihpZDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9pZCA9IGlkO1xyXG4gICAgdGhpcy5WYXJEaXNwbGF5TmFtZSA9IE5TdHJpbmcuRW1wdHk7XHJcbiAgfVxyXG5cclxuICBnZXQgUGFydE9mRGF0YXZpZXcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGFydE9mRGF0YXZpZXc7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHJldHVybnMgdGhlIGlkIG9mIHRoZSBmaWVsZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0SWQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9pZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gc2l6ZSB0eXBlIG9mIGN1cnJlbnQgRmllbGQ6IEEsIE4sIEwsIEQsIFRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gc2l6ZSBtZW1iZXIgb2YgY3VycmVudCBGaWVsZFxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgZ2V0VHlwZSgpOiBTdG9yYWdlQXR0cmlidXRlIHtcclxuICAgIHJldHVybiB0aGlzLl90eXBlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyByZXR1cm4gdGhlIG1hZ2ljIGRlZmF1bHQgbnVsbCBkaXNwbGF5IHZhbHVlIGFjY29yZGluZyB0byB0aGUgdHlwZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0eXBlXCI+b2YgdGhlIGRhdGE8L3BhcmFtPlxyXG4gIHN0YXRpYyBnZXRNYWdpY0RlZmF1bHROdWxsRGlzcGxheVZhbHVlKHR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IHZhbDogc3RyaW5nO1xyXG5cclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEE6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQk9PTEVBTjpcclxuICAgICAgICB2YWwgPSBcIlwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUM6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5EQVRFOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVElNRTpcclxuICAgICAgICAvLyB6ZXJvXHJcbiAgICAgICAgdmFsID0gXCJcIjtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiB2YWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHJldHVybiB0aGUgbWFnaWMgZGVmYXVsdCB2YWx1ZSBhY2NvcmRpbmcgdG8gdGhlIHR5cGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidHlwZVwiPm9mIHRoZSBkYXRhPC9wYXJhbT5cclxuICBzdGF0aWMgZ2V0TWFnaWNEZWZhdWx0VmFsdWUodHlwZTogU3RvcmFnZUF0dHJpYnV0ZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQTpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREU6XHJcbiAgICAgICAgdmFsID0gXCJcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkJMT0I6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5CTE9CX1ZFQ1RPUjpcclxuICAgICAgICB2YWwgPSBCbG9iVHlwZS5nZXRFbXB0eUJsb2JQcmVmaXgoJ1xcMCcpICsgXCI7XCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVElNRTpcclxuICAgICAgICB2YWwgPSBcIkZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkRBVEU6XHJcbiAgICAgICAgdmFsID0gRmllbGREZWYuX2RlZmF1bHRfZGF0ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkJPT0xFQU46XHJcbiAgICAgICAgdmFsID0gXCIwXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyByZXR1cm5zIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoaXMgZmllbGRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldERlZmF1bHRWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IHZhbDogc3RyaW5nID0gbnVsbDtcclxuICAgIGlmICh0aGlzLl90eXBlICE9PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SKSB7XHJcbiAgICAgIGlmICh0aGlzLl9udWxsRGVmYXVsdCAmJiB0aGlzLl9udWxsVmFsdWUgIT09IG51bGwpXHJcbiAgICAgICAgdmFsID0gdGhpcy5fbnVsbFZhbHVlO1xyXG4gICAgICBlbHNlIGlmICh0aGlzLkRlZmF1bHRWYWx1ZSAhPT0gbnVsbClcclxuICAgICAgICB2YWwgPSB0aGlzLkRlZmF1bHRWYWx1ZTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHZhbCA9IHRoaXMuZ2V0TWFnaWNEZWZhdWx0VmFsdWUoKTtcclxuICAgIH1cclxuICAgICBlbHNlXHJcbiAgICAgICB2YWwgPSB0aGlzLmdldE1hZ2ljRGVmYXVsdFZhbHVlKCk7XHJcblxyXG4gICAgcmV0dXJuIHZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gcmV0dXJucyB0aGUgdmVjdG9ycyBjZWxscyBkZWZhdWx0IHZhbHVlXHJcbiAgLy8vIGlmIHRoZSBmaWVsZCBpcyBub3QgYSB2ZWN0b3IgcmV0dXJucyBmaWVsZCBkZWZhdWx0IHZhbHVlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRDZWxsRGVmdWFsdFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsOiBzdHJpbmc7XHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CX1ZFQ1RPUikge1xyXG4gICAgICBpZiAodGhpcy5fbnVsbERlZmF1bHQgJiYgdGhpcy5fbnVsbFZhbHVlICE9PSBudWxsKVxyXG4gICAgICAgIHZhbCA9IHRoaXMuX251bGxWYWx1ZTtcclxuICAgICAgZWxzZSBpZiAodGhpcy5EZWZhdWx0VmFsdWUgIT09IG51bGwpXHJcbiAgICAgICAgICB2YWwgPSB0aGlzLkRlZmF1bHRWYWx1ZTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdmFsID0gRmllbGREZWYuZ2V0TWFnaWNEZWZhdWx0VmFsdWUodGhpcy5fdmVjQ2VsbHNUeXBlKTtcclxuICAgICAgICBpZiAodGhpcy5fdmVjQ2VsbHNUeXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0IpXHJcbiAgICAgICAgICB2YWwgPSBCbG9iVHlwZS5zZXRDb250ZW50VHlwZSh2YWwsIHRoaXMuX3ZlY0NlbGxzQ29udGVudFR5cGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIHZhbCA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKCk7XHJcbiAgICByZXR1cm4gdmFsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyByZXR1cm4gdGhlIG1hZ2ljIGRlZmF1bHQgdmFsdWUgYWNjb3JkaW5nIHRvIHRoZSB0eXBlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRNYWdpY0RlZmF1bHRWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IHZhbDogc3RyaW5nID0gRmllbGREZWYuZ2V0TWFnaWNEZWZhdWx0VmFsdWUodGhpcy5fdHlwZSk7XHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CKVxyXG4gICAgICB2YWwgPSBCbG9iVHlwZS5zZXRDb250ZW50VHlwZSh2YWwsIHRoaXMuX2NvbnRlbnRUeXBlKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CX1ZFQ1RPUikge1xyXG4gICAgICAgIHZhbCA9IEJsb2JUeXBlLlNldFZlY0NlbGxBdHRyKHZhbCwgdGhpcy5fdmVjQ2VsbHNUeXBlKTtcclxuICAgICAgICBpZiAodGhpcy5fdmVjQ2VsbHNUeXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0IpXHJcbiAgICAgICAgICB2YWwgPSBCbG9iVHlwZS5zZXRDb250ZW50VHlwZSh2YWwsIHRoaXMuX3ZlY0NlbGxzQ29udGVudFR5cGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiB0aGUgY29udGVudFR5cGUgPC9yZXR1cm5zPlxyXG4gIGdldENvbnRlbnRUeXBlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29udGVudFR5cGU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0cnVlIGlmIHRoZSBudWxsRGlzcGxheSBoYXMgYSB2YWx1ZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgaGFzTnVsbERpc3BsYXlWYWx1ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9udWxsRGlzcGxheSAhPT0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBzaXplIG1lbWJlciBvZiBjdXJyZW50IEZpZWxkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IHNpemUgbWVtYmVyIG9mIGN1cnJlbnQgRmllbGQgPC9yZXR1cm5zPlxyXG4gIGdldFNpemUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9zaXplO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdGhlIHZlY3RvciBjZWxscyBzaXplXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRWZWNDZWxsc1NpemUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiAodGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CX1ZFQ1RPUikgPyB0aGlzLl92ZWNDZWxsc1NpemUgOiB0aGlzLl9zaXplO1xyXG4gIH1cclxuXHJcbiAgc2V0TGVuZ3Rocyh0eXBlOiBTdG9yYWdlQXR0cmlidXRlLCB2ZWNDZWxsczogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgbGV0IHJlczogbnVtYmVyID0gdGhpcy5fc2l6ZTtcclxuXHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuTUVNTzpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREU6XHJcbiAgICAgICAgaWYgKHZlY0NlbGxzKSB7XHJcbiAgICAgICAgICByZXMgPSB0aGlzLl92ZWNDZWxsc1NpemU7XHJcbiAgICAgICAgICB0aGlzLl9zcGFjZXMgPSBuZXcgQXJyYXk8c3RyaW5nPih0aGlzLl92ZWNDZWxsc1NpemUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLl9zcGFjZXMgPSBuZXcgQXJyYXk8c3RyaW5nPih0aGlzLl9zaXplKTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHRoaXMuX3NpemU7IGkgPSBpICsgMSkge1xyXG4gICAgICAgICAgdGhpcy5fc3BhY2VzW2ldID0gJyAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuREFURTpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLlRJTUU6XHJcbiAgICAgICAgcmVzID0gR3VpRW52aXJvbm1lbnQuRW52aXJvbm1lbnQuR2V0U2lnbmlmaWNhbnROdW1TaXplKCkgKiAyO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkJPT0xFQU46XHJcbiAgICAgICAgcmVzID0gKCF2ZWNDZWxscyA/IDEgOiA0KTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5CTE9COlxyXG4gICAgICAgIC8vIFFDUiA3NTg5MTMgRk9SIFZFQ1RPUlMgSU5URVJOQUwgVVNFIE9OTFkgVEhFIFNJWkUgT0YgQkxPQlMgQU5EIFZFQ1RPUlxyXG4gICAgICAgIC8vIElTIFRIRSBTSVpFIE9GIFRISUVSIFNUUlVDVFMgSU4gVEhFIE1BR0lDIEVOR0lOXHJcbiAgICAgICAgcmVzID0gKCF2ZWNDZWxscyA/IEludDMyLk1heFZhbHVlIDogVmVjdG9yVHlwZS5CTE9CX1RZUEVfU1RSVUNUX1NJWkUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SOlxyXG4gICAgICAgIHJlcyA9IEludDMyLk1heFZhbHVlO1xyXG4gICAgICAgIGlmICghdmVjQ2VsbHMpXHJcbiAgICAgICAgICB0aGlzLnNldExlbmd0aHModGhpcy5fdmVjQ2VsbHNUeXBlLCB0cnVlKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICByZXMgPSBWZWN0b3JUeXBlLkJMT0JfVFlQRV9TVFJVQ1RfU0laRTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodmVjQ2VsbHMpXHJcbiAgICAgIHRoaXMuX3ZlY0NlbGxzU2l6ZSA9IHJlcztcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fc2l6ZSA9IHJlcztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSBjZWxscyB0eXBlIG9mIHZlY3RvcnMgZWxlc2UgcmV0dXJucyB0aGUgZmllbGQgdHlwZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0Q2VsbHNUeXBlKCk6IFN0b3JhZ2VBdHRyaWJ1dGUge1xyXG4gICAgcmV0dXJuICh0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SKSA/IHRoaXMuX3ZlY0NlbGxzVHlwZSA6IHRoaXMuX3R5cGU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgY2VsbCBjb250ZW50IHR5cGUgb2YgdmVjdG9yIGZpZWxkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+dmVjdG9yJ3MgY2VsbCBjb250ZW50IHR5cGU8L3JldHVybnM+XHJcbiAgZ2V0VmVjQ2VsbHNDb250ZW50VHlwZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZlY0NlbGxzQ29udGVudFR5cGU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyBOdWxsIFZhbHVlIHZhbHVlIG9mIHRoaXMgZmllbGRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldE51bGxWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX251bGxWYWx1ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRydWUgaWYgdGhlIGZpZWxkIGlzIGEgTnVsbCBEZWZhdWx0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBpc051bGxEZWZhdWx0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX251bGxEZWZhdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgTnVsbCBEaXNwbGF5IHZhbHVlIG9mIHRoaXMgZmllbGRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldE51bGxEaXNwbGF5KCk6IGFueSB7XHJcbiAgICBsZXQgdmFsOiBhbnk7XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLl90eXBlKSB7XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQTpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREU6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5CT09MRUFOOlxyXG4gICAgICAgIHZhbCA9IFwiXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQzpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkRBVEU6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5USU1FOlxyXG4gICAgICAgIC8vIHplcm9cclxuICAgICAgICB2YWwgPSBudWxsO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBGb3IgQkxPQiBmaWVsZHMsIGNoZWNrIGlmIHRoZXkgY29udGFpbiBVTklDT0RFIG9yIEFOU0kgY2hhcnMuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+VFJVRSBpZiBjb250ZW50IGlzIFVOSUNPREUuIEZhbHNlIG90aGVyd2lzZTwvcmV0dXJucz5cclxuICBJc0NvbnRlbnRVbmljb2RlKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQiAmJiB0aGlzLl9jb250ZW50VHlwZSAhPT0gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX1VOSUNPREUpXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEdldFBpY3R1cmUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9waWN0dXJlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBzZXQgdGhlIGZpZWxkIGF0dHJpYnV0ZSBpbiBwYXJzaW5nXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuIHByb3RlY3RlZCBzZXRBdHRyaWJ1dGUoYXR0cmlidXRlOiBzdHJpbmcsIHZhbHVlU3RyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGxldCBpc1RhZ1Byb2Nlc3NlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgc3dpdGNoIChhdHRyaWJ1dGUpIHtcclxuICAgICAgY2FzZSBYTUxDb25zdGFudHMuTUdfQVRUUl9UWVBFOlxyXG4gICAgICAgIHRoaXMuX3R5cGUgPSA8U3RvcmFnZUF0dHJpYnV0ZT52YWx1ZVN0ci5jaGFyQXQoMCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfU0laRTpcclxuICAgICAgICB0aGlzLl9zaXplID0gWG1sUGFyc2VyLmdldEludCh2YWx1ZVN0cik7XHJcbiAgICAgICAgaWYgKHRoaXMuX3NpemUgPD0gMClcclxuICAgICAgICAgIEV2ZW50cy5Xcml0ZUV4Y2VwdGlvblRvTG9nKFwiaW4gRmllbGQuaW5pdEVsZW1lbnRzKCk6IHNpemUgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyb1wiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBYTUxDb25zdGFudHMuTUdfQVRUUl9WQVJfTkFNRTpcclxuICAgICAgICB0aGlzLl92YXJOYW1lID0gWG1sUGFyc2VyLnVuZXNjYXBlKHZhbHVlU3RyKS50b1N0cmluZygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX1ZBUl9ESVNQX05BTUU6XHJcbiAgICAgICAgdGhpcy5WYXJEaXNwbGF5TmFtZSA9IFhtbFBhcnNlci51bmVzY2FwZSh2YWx1ZVN0cikudG9TdHJpbmcoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBYTUxDb25zdGFudHMuTUdfQVRUUl9QSUNUVVJFOlxyXG4gICAgICAgIHRoaXMuX3BpY3R1cmUgPSBYbWxQYXJzZXIudW5lc2NhcGUodmFsdWVTdHIpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfVkVDX0NFTExTX1NJWkU6XHJcbiAgICAgICAgdGhpcy5fdmVjQ2VsbHNTaXplID0gTk51bWJlci5QYXJzZSh2YWx1ZVN0cik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfVkVDX0NFTExTX0FUVFI6XHJcbiAgICAgICAgdGhpcy5fdmVjQ2VsbHNUeXBlID0gPFN0b3JhZ2VBdHRyaWJ1dGU+dmFsdWVTdHIuY2hhckF0KDApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX1ZFQ19DRUxMU19DT05URU5UOlxyXG4gICAgICAgIHRoaXMuX3ZlY0NlbGxzQ29udGVudFR5cGUgPSB2YWx1ZVN0ci5jaGFyQXQoMCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfTlVMTFZBTFVFOlxyXG4gICAgICAgIGlmICh0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUMgfHwgdGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5EQVRFIHx8IHRoaXMuX3R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuVElNRSkge1xyXG4gICAgICAgICAgaWYgKEd1aUVudmlyb25tZW50LkVudmlyb25tZW50LkdldERlYnVnTGV2ZWwoKSA+IDEpXHJcbiAgICAgICAgICAgIHRoaXMuX251bGxWYWx1ZSA9IFhtbFBhcnNlci51bmVzY2FwZSh2YWx1ZVN0cikudG9TdHJpbmcoKTtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5fbnVsbFZhbHVlID0gQmFzZTY0LmRlY29kZVRvSGV4KHZhbHVlU3RyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhpcy5fbnVsbFZhbHVlID0gWG1sUGFyc2VyLnVuZXNjYXBlKHZhbHVlU3RyKS50b1N0cmluZygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX05VTExESVNQTEFZOlxyXG4gICAgICAgIHRoaXMuX251bGxEaXNwbGF5ID0gWG1sUGFyc2VyLnVuZXNjYXBlKHZhbHVlU3RyKS50b1N0cmluZygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX05VTExERUZBVUxUOlxyXG4gICAgICAgIHRoaXMuX251bGxEZWZhdWx0ID0gRGlzcGxheUNvbnZlcnRvci50b0Jvb2xlYW4odmFsdWVTdHIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX0RCX01PRElGSUFCTEU6XHJcbiAgICAgICAgdGhpcy5EYk1vZGlmaWFibGUgPSBEaXNwbGF5Q29udmVydG9yLnRvQm9vbGVhbih2YWx1ZVN0cik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfREVGQVVMVFZBTFVFOlxyXG4gICAgICAgIHRoaXMuRGVmYXVsdFZhbHVlID0gdmFsdWVTdHI7XHJcbiAgICAgICAgaWYgKHRoaXMuX3R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEEgfHwgdGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFKSB7XHJcbiAgICAgICAgICB0aGlzLkRlZmF1bHRWYWx1ZSA9IFhtbFBhcnNlci51bmVzY2FwZSh2YWx1ZVN0cikudG9TdHJpbmcoKTtcclxuICAgICAgICAgIHRoaXMuRGVmYXVsdFZhbHVlID0gU3RyVXRpbC5wYWRTdHIodGhpcy5EZWZhdWx0VmFsdWUsIHRoaXMuX3NpemUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLl90eXBlICE9PSBTdG9yYWdlQXR0cmlidXRlLkJMT0IgJiYgdGhpcy5fdHlwZSAhPT0gU3RvcmFnZUF0dHJpYnV0ZS5CT09MRUFOKSB7XHJcbiAgICAgICAgICAvLyB3b3JraW5nIGluIGhleCBvciBiYXNlNjRcclxuICAgICAgICAgIGlmICgodGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CX1ZFQ1RPUiAmJlxyXG4gICAgICAgICAgICAodGhpcy5fdmVjQ2VsbHNUeXBlID09PSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUMgfHwgdGhpcy5fdmVjQ2VsbHNUeXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkRBVEUgfHwgdGhpcy5fdmVjQ2VsbHNUeXBlID09PSBTdG9yYWdlQXR0cmlidXRlLlRJTUUpKSB8fFxyXG4gICAgICAgICAgICAodGhpcy5fdHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDIHx8IHRoaXMuX3R5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuREFURSB8fCB0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLlRJTUUpKSB7XHJcbiAgICAgICAgICAgIGlmIChHdWlFbnZpcm9ubWVudC5FbnZpcm9ubWVudC5HZXREZWJ1Z0xldmVsKCkgPCAxKVxyXG4gICAgICAgICAgICAgIHRoaXMuRGVmYXVsdFZhbHVlID0gQmFzZTY0LmRlY29kZVRvSGV4KHZhbHVlU3RyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5EZWZhdWx0VmFsdWUubGVuZ3RoID09PSAwICYmIHRoaXMuX3R5cGUgIT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQilcclxuICAgICAgICAgIHRoaXMuRGVmYXVsdFZhbHVlID0gbnVsbDtcclxuICAgICAgICBlbHNlIGlmICh0aGlzLl90eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0IpXHJcbiAgICAgICAgICB0aGlzLkRlZmF1bHRWYWx1ZSA9IEJsb2JUeXBlLmNyZWF0ZUZyb21TdHJpbmcodGhpcy5EZWZhdWx0VmFsdWUsIHRoaXMuX2NvbnRlbnRUeXBlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBYTUxDb25zdGFudHMuTUdfQVRUUl9OVUxMQUxMT1dFRDpcclxuICAgICAgICB0aGlzLk51bGxBbGxvd2VkID0gRGlzcGxheUNvbnZlcnRvci50b0Jvb2xlYW4odmFsdWVTdHIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX0JMT0JfQ09OVEVOVDpcclxuICAgICAgICB0aGlzLl9jb250ZW50VHlwZSA9IHZhbHVlU3RyLmNoYXJBdCgwKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBYTUxDb25zdGFudHMuTUdfQVRUUl9QQVJUX09GX0RBVEFWSUVXOlxyXG4gICAgICAgIHRoaXMuX3BhcnRPZkRhdGF2aWV3ID0gRGlzcGxheUNvbnZlcnRvci50b0Jvb2xlYW4odmFsdWVTdHIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX1NUT1JBR0U6XHJcbiAgICAgICAgdGhpcy5TdG9yYWdlID0gPEZsZFN0b3JhZ2U+WG1sUGFyc2VyLmdldEludCh2YWx1ZVN0cik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgaXNUYWdQcm9jZXNzZWQgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaXNUYWdQcm9jZXNzZWQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgTmVlZCBwYXJ0IGlucHV0IFN0cmluZyB0byByZWxldmFudCBmb3IgdGhlIEZpZWxkIGNsYXNzIGRhdGFcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGZpbGxEYXRhKHBhcnNlcjogWG1sUGFyc2VyKTogdm9pZCB7XHJcbiAgICBsZXQgdGV4dDogc3RyaW5nID0gcGFyc2VyLlJlYWRUb0VuZE9mQ3VycmVudEVsZW1lbnQoKTtcclxuICAgIHRleHQgPSB0ZXh0LnN1YnN0cih0ZXh0LmluZGV4T2YoWE1MQ29uc3RhbnRzLk1HX1RBR19GTERIKSArIFhNTENvbnN0YW50cy5NR19UQUdfRkxESC5sZW5ndGgpO1xyXG4gICAgbGV0IHRva2VuczogTGlzdDxzdHJpbmc+ID0gWG1sUGFyc2VyLmdldFRva2Vucyh0ZXh0LCBYTUxDb25zdGFudHMuWE1MX0FUVFJfREVMSU0pO1xyXG4gICAgdGhpcy5pbml0RWxlbWVudHModG9rZW5zKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBNYWtlIGluaXRpYWxpemF0aW9uIG9mIHByaXZhdGUgZWxlbWVudHMgYnkgZm91bmQgdG9rZW5zXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRva2Vuc1ZlY3RvclwiPmZvdW5kIHRva2Vucywgd2hpY2ggY29uc2lzdCBhdHRyaWJ1dGUvdmFsdWUgb2YgZXZlcnkgZm91bmRlbGVtZW50PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImV4cFRhYlwiPnJlZmVyZW5jZSB0byByZWxldmFudCBleHAuIHRhYmxlPC9wYXJhbT5cclxuICBpbml0RWxlbWVudHModG9rZW5zVmVjdG9yOiBMaXN0PHN0cmluZz4pOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB0b2tlbnNWZWN0b3IubGVuZ3RoOyBpID0gaSArIDIpIHtcclxuICAgICAgbGV0IGF0dHJpYnV0ZTogc3RyaW5nID0gdG9rZW5zVmVjdG9yLmdldF9JdGVtKGkpO1xyXG4gICAgICBsZXQgdmFsdWVTdHI6IHN0cmluZyA9IHRva2Vuc1ZlY3Rvci5nZXRfSXRlbShpICsgMSk7XHJcblxyXG4gICAgICAvLyB0aGUgcGFyc2luZyBpcyBmaW5pc2hlZCBoZXJlXHJcbiAgICAgIHRoaXMuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWVTdHIpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5TZXRBZnRlclBhcnNpbmcoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gc29tZSBwcm9wZXJ0aWVzIGFyZSBuZWVkZWQgdG8gYmUgc2V0IGFmdGVyIHBhcnNpbmdcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIFNldEFmdGVyUGFyc2luZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0TGVuZ3Rocyh0aGlzLl90eXBlLCBmYWxzZSk7XHJcbiAgICBpZiAodGhpcy5OdWxsQWxsb3dlZCAmJiB0aGlzLl9udWxsRGlzcGxheSA9PT0gbnVsbClcclxuICAgICAgdGhpcy5fbnVsbERpc3BsYXkgPSBcIlwiO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCBuYW1lIG9mIHZhcmlhYmxlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRWYXJOYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFyTmFtZSB8fCBcIlwiO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGZvciBnZXQgVkFSTkFNRSBmdW5jdGlvbiB1c2VcclxuICAvLy8gICBBIHN0cmluZyBjb250YWluaW5nIHRoZSB0YWJsZSBuYW1lIHdoZXJlIHRoZSB2YXJpYWJsZSBvcmlnaW5hdGVzLFxyXG4gIC8vLyAgIGNvbmNhdGVuYXRlZCB3aXRoICcuJyBhbmQgdGhlIHZhcmlhYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSB2YXJpYWJsZSBpbiB0aGF0IHRhYmxlLlxyXG4gIC8vLyAgIElmIHRoZSB2YXJpYWJsZSBpcyBhIHZpcnR1YWwgb25lLCB0aGVuIHRoZSB0YWJsZSBuYW1lIHdvdWxkIGluZGljYXRlICdWaXJ0dWFsJy5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldE5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmdldFZhck5hbWUoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -51,4 +51,4 @@ export class FieldsTable {
|
|
|
51
51
|
return this._fields.find((field) => (field.getVarName() === fldName));
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmllbGRzVGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvc3JjL21hbmFnZW1lbnQvZGF0YS9GaWVsZHNUYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHNUMsT0FBTyxFQUFFLFlBQVksRUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0QyxNQUFNLE9BQWdCLFdBQVc7SUFDckIsT0FBTyxHQUFtQixJQUFJLENBQUM7SUFLekM7UUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksSUFBSSxFQUFZLENBQUM7SUFDdEMsQ0FBQztJQUlELFFBQVEsQ0FBQyxZQUFpQjtRQUN4QixJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksSUFBSSxZQUFZLENBQUMsV0FBVyxLQUFLLE1BQU0sQ0FBQyxFQUFFO1lBQ2xFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN0QztRQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBT08sVUFBVSxDQUFDLEdBQVc7UUFDNUIsSUFBSSxHQUFHLEdBQWEsSUFBSSxDQUFDO1FBRXpCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ3ZDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVuQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFNRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBTUQsUUFBUSxDQUFDLE1BQWlCLEVBQUUsUUFBeUI7UUFDbkQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1NBQzVEO0lBQ0gsQ0FBQztJQU9ELGdCQUFnQixDQUFDLFlBQW9CLEVBQUUsUUFBeUI7UUFDOUQsSUFBSSxZQUFZLEtBQUssSUFBSTtZQUN2QixPQUFPLEtBQUssQ0FBQztRQUVmLElBQUksTUFBTSxHQUFjLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUNsRSxJQUFJLFlBQVksS0FBSyxZQUFZLENBQUMsV0FBVyxFQUFFO1lBQzdDLElBQUksS0FBSyxHQUFhLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO2FBQ0ksSUFBSSxZQUFZLEtBQUssWUFBWSxDQUFDLGVBQWU7WUFDcEQsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUM1RixDQUFDLENBQUMsQ0FBQzthQUNGLElBQUksWUFBWSxLQUFLLEdBQUcsR0FBRyxZQUFZLENBQUMsZUFBZSxFQUFFO1lBQzVELE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQy9CLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7YUFDSTtZQUNILE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQywwRkFBMEYsR0FBRyxZQUFZLENBQUMsQ0FBQztZQUN0SSxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBZU8sVUFBVSxDQUFDLE9BQWU7UUFDaEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaXN0IH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQgeyBGaWVsZERlZiB9IGZyb20gJy4vRmllbGREZWYnO1xyXG5pbXBvcnQgeyBHdWlEYXRhVmlld0Jhc2UgfSBmcm9tICcuL0d1aURhdGFWaWV3QmFzZSc7XHJcbmltcG9ydCB7IFhNTENvbnN0YW50cywgWG1sUGFyc2VyIH0gZnJvbSAnQG1hZ2ljLXhwYS91dGlscyc7XHJcbmltcG9ydCB7IE1hbmFnZXIgfSBmcm9tICcuLi8uLi9NYW5hZ2VyJztcclxuaW1wb3J0IHsgRXZlbnRzIH0gZnJvbSAnLi4vLi4vRXZlbnRzJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGaWVsZHNUYWJsZSB7XHJcbiAgcHJvdGVjdGVkIF9maWVsZHM6IExpc3Q8RmllbGREZWY+ID0gbnVsbDtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBDdG9yXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuX2ZpZWxkcyA9IG5ldyBMaXN0PEZpZWxkRGVmPigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmllbGQoaWR4OiBudW1iZXIpOiBGaWVsZERlZjtcclxuICBnZXRGaWVsZChmbGROYW1lOiBzdHJpbmcpOiBGaWVsZERlZjtcclxuICBnZXRGaWVsZChpZHhPckZsZE5hbWU6IGFueSk6IEZpZWxkRGVmIHtcclxuICAgIGlmICgoaWR4T3JGbGROYW1lID09PSBudWxsIHx8IGlkeE9yRmxkTmFtZS5jb25zdHJ1Y3RvciA9PT0gTnVtYmVyKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRGaWVsZF8wKGlkeE9yRmxkTmFtZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5nZXRGaWVsZF8xKGlkeE9yRmxkTmFtZSk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IGEgRmllbGQgYnkgaXRzIGluZGV4XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImlkeFwiPnRoZSBpbmRleCBvZiB0aGUgcmVxdWVzdGVkIGZpZWxkPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IGEgcmVmZXJlbmNlIHRvIHRoZSBmaWVsZDwvcmV0dXJucz5cclxuICBwcml2YXRlIGdldEZpZWxkXzAoaWR4OiBudW1iZXIpOiBGaWVsZERlZiB7XHJcbiAgICBsZXQgZmxkOiBGaWVsZERlZiA9IG51bGw7XHJcblxyXG4gICAgaWYgKGlkeCA+PSAwICYmIGlkeCA8IHRoaXMuX2ZpZWxkcy5sZW5ndGgpXHJcbiAgICAgIGZsZCA9IHRoaXMuX2ZpZWxkcy5nZXRfSXRlbShpZHgpO1xyXG5cclxuICAgIHJldHVybiBmbGQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSBudW1iZXIgb2YgZmllbGRzIGluIHRoZSB0YWJsZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiBudW1iZXIgb2YgZmllbGRzIGluIHRoZSB0YWJsZTwvcmV0dXJucz5cclxuICBnZXRTaXplKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRzLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gVG8gcGFyc2UgaW5wdXQgc3RyaW5nIGFuZCBmaWxsIGlubmVyIGRhdGE6IFZlY3RvciBvZiBjb21tYW5kc1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJkYXRhdmlld1wiPnRvIHRoZSBwYXJlbnQ8L3BhcmFtPlxyXG4gIGZpbGxEYXRhKHBhcnNlcjogWG1sUGFyc2VyLCBkYXRhdmlldzogR3VpRGF0YVZpZXdCYXNlKTogdm9pZCB7XHJcbiAgICB3aGlsZSAodGhpcy5pbml0SW5uZXJPYmplY3RzKHBhcnNlci5nZXROZXh0VGFnKCksIGRhdGF2aWV3KSkge1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBUbyBhbGxvY2F0ZSBhbmQgZmlsbCBpbm5lciBvYmplY3RzIG9mIHRoZSBjbGFzc1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJmb3VuZFRhZ05hbWVcIj5uYW1lIG9mIHRhZywgb2Ygb2JqZWN0LCB3aGljaCBuZWVkIGJlIGFsbG9jYXRlZDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJkYXRhdmlld1wiPnRvIGRhdGEgdmlldzwvcGFyYW0+XHJcbiAgaW5pdElubmVyT2JqZWN0cyhmb3VuZFRhZ05hbWU6IHN0cmluZywgZGF0YXZpZXc6IEd1aURhdGFWaWV3QmFzZSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGZvdW5kVGFnTmFtZSA9PT0gbnVsbClcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGxldCBwYXJzZXI6IFhtbFBhcnNlciA9IE1hbmFnZXIuR2V0Q3VycmVudFJ1bnRpbWVDb250ZXh0KCkuUGFyc2VyO1xyXG4gICAgaWYgKGZvdW5kVGFnTmFtZSA9PT0gWE1MQ29uc3RhbnRzLk1HX1RBR19GTERIKSB7XHJcbiAgICAgIGxldCBmaWVsZDogRmllbGREZWYgPSB0aGlzLmluaXRGaWVsZChwYXJzZXIsIGRhdGF2aWV3KTtcclxuICAgICAgdGhpcy5fZmllbGRzLnB1c2goZmllbGQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZm91bmRUYWdOYW1lID09PSBYTUxDb25zdGFudHMuTUdfVEFHX0RWSEVBREVSKVxyXG4gICAgICBwYXJzZXIuc2V0Q3VyckluZGV4KHBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihYTUxDb25zdGFudHMuVEFHX0NMT1NFLCBwYXJzZXIuZ2V0Q3VyckluZGV4KCkpICtcclxuICAgICAgICAxKTsgLy8gbW92ZSBJbmRleCB0byBlbmQgb2YgPGR2aGVhZGVyPiArMSBmb3IgJz4nXHJcbiAgICBlbHNlIGlmIChmb3VuZFRhZ05hbWUgPT09IFwiL1wiICsgWE1MQ29uc3RhbnRzLk1HX1RBR19EVkhFQURFUikge1xyXG4gICAgICBwYXJzZXIuc2V0Q3VyckluZGV4MkVuZE9mVGFnKCk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBFdmVudHMuV3JpdGVFeGNlcHRpb25Ub0xvZyhcIlRoZXJlIGlzIG5vIHN1Y2ggdGFnIGluIEZpZWxkc1RhYmxlLiBJbnNlcnQgZWxzZSBpZiB0byBGaWVsZHNUYWJsZS5pbml0SW5uZXJPYmplY3RzIGZvciBcIiArIGZvdW5kVGFnTmFtZSk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gY3JlYXRlIGEgZmllbGQgYW5kIGZpbGwgaXQgYnkgZGF0YVxyXG4gIC8vLyB0aGlzIGZ1bmN0aW9uIG11c3QgYmUgdmlydHVhbCBiZWNhdXNlIGl0IGlzIHVzZWQgaW4gUmljaENsaWVudCBidXQgaXMgbm90IHVzZWQgaW4gTWd4cGFSdW50aW1lXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImRhdGF2aWV3XCI+IERhdGF2aWV3IDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB0aGUgY3JlYXRlZCBmaWxsZWQgZmllbGQgPC9yZXR1cm5zPlxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBpbml0RmllbGQocGFyc2VyOiBYbWxQYXJzZXIsIGRhdGF2aWV3OiBHdWlEYXRhVmlld0Jhc2UpOiBGaWVsZERlZjtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCBhIEZpZWxkIGJ5IGl0cyBpbmRleFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJmbGROYW1lXCI+aXMgdGhlIG5hbWUgb2YgdGhlIHJlcXVlc3RlZCBmaWVsZDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiBhIHJlZmVyZW5jZSB0byB0aGUgZmllbGQ8L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBnZXRGaWVsZF8xKGZsZE5hbWU6IHN0cmluZyk6IEZpZWxkRGVmIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZHMuZmluZCgoZmllbGQ6IEZpZWxkRGVmKSA9PiAoZmllbGQuZ2V0VmFyTmFtZSgpID09PSBmbGROYW1lKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|