Socket
Socket
Sign inDemoInstall

@glimmer/vm

Package Overview
Dependencies
Maintainers
10
Versions
245
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@glimmer/vm - npm Package Compare versions

Comparing version 0.29.10 to 0.30.0

2

dist/commonjs/es2017/lib/opcodes.js
"use strict";
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZtL2xpYi9vcGNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBPcCB7XG4gIC8qXG4gICAgRG9jdW1lbnRhdGlvbiBUT0RPOlxuXG4gICAgRG9jdW1lbnQgdGhlIGxvY2FsIHZhcmlhYmxlIGxheW91dCBpbiB0aGUgc3RhY2tcbiAgICBkaWFncmFtIGJlZm9yZS1hbmQtYWZ0ZXIuXG5cbiAgICBEb2N1bWVudCB1cGRhdGluZyBvcGNvZGVzIGVtaXR0aW5nIGZyb20gdW5yZWFjaGFibGVcbiAgICBhcHBlbmQgb3Bjb2RlLlxuXG4gICAgRG9jdW1lbnQgdGhlIGVsZW1lbnQgc3RhY2ssIGJsb2NrIHN0YWNrIGFuZCBMaXN0XG4gICAgYmxvY2sgc3RhY2suXG4gICAqL1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wY29kZSBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC5cbiAgICovXG4gIEJ1ZyxcblxuICAvLy8gRVhQUkVTU0lPTlNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSBhIEhlbHBlci5cbiAgICogRm9ybWF0OlxuICAgKiAgIChIZWxwZXIgaGVscGVyOiNGdW5jdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIEhlbHBlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIHZhcmlhYmxlIHJlcHJlc2VudGVkIGJ5IGEgc3ltYm9sIGZyb21cbiAgICogICB0aGUgdmFsdWUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoU2V0VmFyaWFibGUgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIGJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFNldEJsb2NrIHN5bWJvbDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIHRoZSBjb250ZW50cyBvZiB0aGUgdmFyaWFibGUgcmVwcmVzZW50ZWQgYnlcbiAgICogICBhIHN5bWJvbCAoYSBwb3NpdGlvbmFsIG9yIG5hbWVkIGFyZ3VtZW50KSBvbnRvXG4gICAqICAgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2wgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZVxuICAgKiAgIHN0YWNrLCBhbmQgcHVzaCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgY29uc3RydWN0ZWRcbiAgICogICBieSBgLmdldChwcm9wZXJ0eSlgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldFByb3BlcnR5IHByb3BlcnR5OiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0UHJvcGVydHksXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgc3BlY2lmaWVkIGJvdW5kIGJsb2NrIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldEJsb2NrIGJsb2NrOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBJbmxpbmVCbG9ja1xuICAgKi9cbiAgR2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIFRSVUUgb250byB0aGUgc3RhY2sgaWYgdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiAgIGlzIGJvdW5kIGFuZCBGQUxTRSBpZiBpdCBpcyBub3QuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2sgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIGJvb2xlYW5cbiAgICovXG4gIEhhc0Jsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaCBUUlVFIG9udG8gdGhlIHN0YWNrIGlmIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICogICBpcyBib3VuZCAqYW5kKiBoYXMgYXQgbGVhc3Qgb25lIHNwZWNpZmllZCBmb3JtYWxcbiAgICogICBwYXJhbWV0ZXIsIGFuZCBGQUxTRSBvdGhlcndpc2UuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2tQYXJhbXMgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgKGJvb2xlYW4pXG4gICAqL1xuICBIYXNCbG9ja1BhcmFtcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBjb3VudCBgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZWBzIG9mZiB0aGUgc3RhY2sgYW5kXG4gICAqICAgY29uc3RydWN0IGEgbmV3IENvbmNhdFJlZmVyZW5jZSBmcm9tIHRoZW0gKGluIHJldmVyc2VcbiAgICogICBvcmRlcikuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29uY2F0IGNvdW50OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uLCBDb25jYXRSZWZlcmVuY2VcbiAgICovXG4gIENvbmNhdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gT2JqZWN0IGNvbnN0YW50IG9udG8gdGhlIHN0YWNrIHRoYXQgaXMgbm90XG4gICAqICAgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29uc3RhbnQgY29uc3RhbnQ6I09iamVjdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcGFxdWVcbiAgICovXG4gIENvbnN0YW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgV3JhcCBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIGluIGEgcmVmZXJlbmNlIGFuZCBwdXNoIGl0XG4gICAqICAgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFByaW1pdGl2ZSBjb25zdGFudDojUHJpbWl0aXZlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFByaW1pdGl2ZVxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGUgdHdvIGhpZ2ggYml0cyBvZiB0aGUgY29uc3RhbnQgcmVmZXJlbmNlIGRlc2NyaWJlXG4gICAqICAgdGhlIGtpbmQgb2YgcHJpbWl0aXZlOlxuICAgKlxuICAgKiAgIDAwOiBudW1iZXJcbiAgICogICAwMTogc3RyaW5nXG4gICAqICAgMTA6IHRydWUgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWRcbiAgICovXG4gIFByaW1pdGl2ZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBwcmltaXRpdmUgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByaW1pdGl2ZVJlZmVyZW5jZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByaW1pdGl2ZSDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8UHJpbWl0aXZlPlxuICAgKi9cbiAgUHJpbWl0aXZlUmVmZXJlbmNlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IER1cGxpY2F0ZSBhbmQgcHVzaCBpdGVtIGZyb20gYW4gb2Zmc2V0IGluIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEdXAgcmVnaXN0ZXI6dTMyLCBvZmZzZXQ6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlLCBPcGFxdWVcbiAgICovXG4gIER1cCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3AgTiBpdGVtcyBvZmYgdGhlIHN0YWNrIGFuZCB0aHJvdyBhd2F5IHRoZSB2YWx1ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3ApXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBPcGFxdWUsIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvYWQgYSB2YWx1ZSBpbnRvIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChMb2FkIHJlZ2lzdGVyOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIExvYWQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRmV0Y2ggYSB2YWx1ZSBmcm9tIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChGZXRjaCByZWdpc3Rlcjp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlXG4gICAqL1xuICBGZXRjaCxcblxuICAvLy8gUFJFTFVERSAmIEVYSVRcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IHJvb3Qgc2NvcGUgb250byB0aGUgc2NvcGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUm9vdFNjb3BlIHN5bWJvbHM6dTMyIGJpbmRDYWxsZXJTY29wZTpib29sKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgQSByb290IHNjb3BlIGhhcyBubyBwYXJlbnQgc2NvcGUsIGFuZCB0aGVyZWZvcmUgaW5oZXJpdHMgbm8gbGV4aWNhbFxuICAgKiAgIHZhcmlhYmxlcy4gSWYgYGJpbmRDYWxsZXJTY29wZWAgaXMgYHRydWVgLCB0aGUgY3VycmVudCBzY29wZSByZW1lbWJlcnNcbiAgICogICB0aGUgY2FsbGVyIHNjb3BlIChmb3IgeWllbGRpbmcgYmxvY2tzKS5cbiAgICovXG4gIFJvb3RTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IGNoaWxkIHNjb3BlIG9udG8gdGhlIHNjb3BlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENoaWxkU2NvcGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBBIGNoaWxkIHNjb3BlIGluaGVyaXRzIGZyb20gdGhlIGN1cnJlbnQgcGFyZW50IHNjb3BlLCBhbmQgdGhlcmVmb3JlXG4gICAqICAgc2hhcmVzIGl0cyBsZXhpY2FsIHZhcmlhYmxlcy5cbiAgICovXG4gIENoaWxkU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wIHRoZSBjdXJyZW50IHNjb3BlIGZyb20gdGhlIHNjb3BlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcFNjb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcFNjb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJldHVybiB0byB0aGUgcHJldmlvdXMgZnJhbWUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmV0dXJuKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgYWRkcmVzczpudW1iZXIg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZXR1cm4sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmV0dXJuIHRvIGEgcGxhY2UgaW4gdGhlIHByb2dyYW0gZ2l2ZW4gYW4gb2Zmc2V0XG4gICAqIEZvcm1hdDpcbiAgICogIChSZXR1cm5UbyBvZmZzZXQ6aTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICAuLi4g4oaSXG4gICAqL1xuICBSZXR1cm5UbyxcblxuICAvLy8gSFRNTFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBhIFRleHQgbm9kZSB3aXRoIHZhbHVlIGBjb250ZW50c2BcbiAgICogRm9ybWF0OlxuICAgKiAgIChUZXh0IGNvbnRlbnRzOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgVGV4dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgYSBDb21tZW50IG5vZGUgd2l0aCB2YWx1ZSBgY29udGVudHNgXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tbWVudCBjb250ZW50czojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIGEgRHluYW1pYyBub2RlIGJhc2VkIG9uIC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQ29udGVudCBpc1RydXN0aW5nOmJvb2xlYW4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRHluYW1pY0NvbnRlbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50IHRhZzojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgIHdpdGggc3BlY2lhbCBvcGVyYXRpb25zIHByb3ZpZGVkXG4gICAqICAgb24gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50V2l0aE9wZXJhdGlvbnMgdGFnOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBFbGVtZW50T3BlcmF0aW9ucyDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50V2l0aE9wZXJhdGlvbnMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBPcGVuIGEgbmV3IEVsZW1lbnQgd2l0aCBhIG5hbWUgb24gdGhlIHN0YWNrIGFuZCB3aXRoIHNwZWNpYWxcbiAgICogICBvcGVyYXRpb25zIHByb3ZpZGVkIG9uIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChPcGVuRHluYW1pY0VsZW1lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBzdHJpbmcsIEVsZW1lbnRPcGVyYXRpb25zIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgT3BlbkR5bmFtaWNFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgRWxlbWVudC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChTdGF0aWNBdHRyIG5hbWU6I3N0cmluZyB2YWx1ZTojc3RyaW5nIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU3RhdGljQXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgZWxlbWVudCB1c2luZyB0aGUgdmFsdWVcbiAgICogICBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQXR0ciBuYW1lOiNzdHJpbmcgdHJ1c3Rpbmc6Ym9vbGVhbiBuYW1lc3BhY2U6T3B0aW9uPCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgSWYgYHRydXN0aW5nYCBpcyBmYWxzZSwgdGhlIGhvc3QgbWF5IHNhbml0aXplIHRoZSBhdHRyaWJ1dGVcbiAgICogICBiYXNlZCB1cG9uIGtub3duIHJpc2tzLlxuICAgKi9cbiAgRHluYW1pY0F0dHIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBBZGQgYW4gYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IGVsZW1lbnQgdXNpbmcgdGhlIHZhbHVlXG4gICAqICAgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tcG9uZW50QXRyIG5hbWU6I3N0cmluZyB0cnVzdGluZzpib29sZWFuIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQ29tcG9uZW50QXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBGaW5pc2ggc2V0dGluZyBhdHRyaWJ1dGVzIG9uIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRmx1c2hFbGVtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEZsdXNoRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDbG9zZSB0aGUgY3VycmVudCBlbGVtZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENsb3NlRWxlbWVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBDbG9zZUVsZW1lbnQsXG5cbiAgLy8vIE1PRElGSUVSXG4gIE1vZGlmaWVyLCAgICAgICAgICAgICAgICAgIC8vIChDb25zdGFudFN0cmluZywgQ29uc3RhbnRPdGhlcjxNb2RpZmllck1hbmFnZXI+LCBDb25zdGFudEV4cHJlc3Npb24pXG5cbiAgLy8vIFdPUk1IT0xFXG4gIFB1c2hSZW1vdGVFbGVtZW50LCAgICAgICAgIC8vICgpXG4gIFBvcFJlbW90ZUVsZW1lbnQsICAgICAgICAgIC8vICgpXG5cbiAgLy8vIERZTkFNSUMgU0NPUEVcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBCaW5kIHN0YWNrIHZhbHVlcyBhcyBkeW5hbWljIHZhcmlhYmxlcy5cbiAgICogRm9ybWF0OlxuICAgKiAgIChCaW5kRHluYW1pY1Njb3BlIG5hbWVzOiNBcnJheTwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgaXMgdXNlZCB0byBleHBvc2UgYC13aXRoLWR5bmFtaWMtdmFyc2AsIGFuZCBpcyBhXG4gICAqICAgbmljaGUgZmVhdHVyZS5cbiAgICovXG4gIEJpbmREeW5hbWljU2NvcGUsXG5cbiAgUHVzaER5bmFtaWNTY29wZSwgICAgICAgICAgLy8gKClcbiAgUG9wRHluYW1pY1Njb3BlLCAgICAgICAgICAgLy8gKClcblxuICAvLy8gVk1cblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb21waWxlIHRoZSBJbmxpbmVCbG9jayBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDb21waWxlQmxvY2spXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBDb21waWxhYmxlQmxvY2sg4oaSXG4gICAqICAgLi4uLCBIYW5kbGVcbiAgICovXG4gIENvbXBpbGVCbG9jayxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgc2NvcGUgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEJsb2NrU2NvcGUgI1Njb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwg4oaSXG4gICAqICAgLi4uLCBTY29wZVxuICAgKi9cbiAgUHVzaEJsb2NrU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN5bWJvbCB0YWJsZSBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoU3ltYm9sVGFibGUgI1N5bWJvbFRhYmxlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwg4oaSXG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZVxuICAgKi9cbiAgUHVzaFN5bWJvbFRhYmxlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV2YWx1YXRlIHRoZSBoYW5kbGUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlVmlydHVhbClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIEhhbmRsZSwg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VWaXJ0dWFsLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV2YWx1YXRlIHRoZSBoYW5kbGUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlU3RhdGljIGhhbmRsZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlU3RhdGljLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFlpZWxkIHRvIGEgYmxvY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlWWllbGQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMsIFN5bWJvbFRhYmxlLCBIYW5kbGUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VZaWVsZCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXAgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXAsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0IGlmIHRoZSB2YWx1ZSBhdFxuICAgKiAgIHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIHRydWUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSnVtcElmIHRvOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBKdW1wSWYsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0IGlmIHRoZSB2YWx1ZSBhdFxuICAgKiAgIHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIGZhbHNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXBVbmxlc3MgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXBVbmxlc3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAkcmEsICRmcFxuICAgKi9cbiAgUHVzaEZyYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICRyYSwgJGZwIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wRnJhbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTdGFydCB0cmFja2luZyBhIG5ldyBvdXRwdXQgYmxvY2sgdGhhdCBjb3VsZCBjaGFuZ2VcbiAgICogICBpZiBvbmUgb2YgaXRzIGlucHV0cyBjaGFuZ2VzLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEVudGVyIGFyZ3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgU29vbiBhZnRlciB0aGlzIG9wY29kZSwgb25lIG9mIEp1bXAsIEp1bXBJZixcbiAgICogICBvciBKdW1wVW5sZXNzIHdpbGwgcHJvZHVjZSBhbiB1cGRhdGluZyBhc3NlcnRpb24uXG4gICAqICAgSWYgdGhhdCBhc3NlcnRpb24gZmFpbHMsIHRoZSBhcHBlbmRpbmcgVk0gd2lsbFxuICAgKiAgIGJlIHJlLWVudGVyZWQsIGFuZCB0aGUgaW5zdHJ1Y3Rpb25zIGZyb20gYGZyb21gXG4gICAqICAgdG8gYHRvYCB3aWxsIGJlIGV4ZWN1dGVkLlxuICAgKlxuICAgKiAgIFRPRE86IFNhdmUgYW5kIHJlc3RvcmUuXG4gICAqL1xuICBFbnRlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEZpbmlzaCB0cmFja2luZyB0aGUgY3VycmVudCBibG9jay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFeGl0KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBmaW5hbGl6ZXMgdGhlIHZhbGlkYXRvcnMgdGhhdCB0aGUgdXBkYXRpbmdcbiAgICogICBibG9jayBtdXN0IGNoZWNrIHRvIGRldGVybWluZSB3aGV0aGVyIGl0J3Mgc2FmZSB0b1xuICAgKiAgIHNraXAgcnVubmluZyB0aGUgY29udGVudHMuXG4gICAqL1xuICBFeGl0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbnZlcnQgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaW50byBhIGJvb2xlYW4gcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFRvQm9vbGVhbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8Ym9vbD5cbiAgICovXG4gIFRvQm9vbGVhbixcblxuICAvLy8gTElTVFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFbnRlciBhIGxpc3QuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRW50ZXJMaXN0IGFkZHJlc3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgSXRlcmF0b3Ig4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBFbnRlckxpc3QsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRXhpdCB0aGUgY3VycmVudCBsaXN0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEV4aXRMaXN0KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEV4aXRMaXN0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgQ29udmVydCBhbiBvcGVyYW5kIGFuZCBrZXkgaW50byBhbiBpdGVyYXRvciBhbmRcbiAgICogICBwcmVzZW5jZSByZWZlcmVuY2UuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHV0SXRlcmF0b3IpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBrZXk6c3RyaW5nLCBsaXN0OlZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uLCBpdGVyYXRvcjpSZWZlcmVuY2VJdGVyYXRvciwgcHJlc2VudDpQcmVzZW5jZVJlZmVyZW5jZVxuICAgKi9cbiAgUHV0SXRlcmF0b3IsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTZXQgdXAgdGhlIHN0YWNrIGZvciBpdGVyYXRpbmcgZm9yIGEgZ2l2ZW4ga2V5LFxuICAgKiAgIG9yIGp1bXAgdG8gYGVuZGAgaWYgdGhlcmUgaXMgbm90aGluZyBsZWZ0IHRvXG4gICAqICAgaXRlcmF0ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJdGVyYXRlIGVuZDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgRm9ybSAxOiAoc29tZXRoaW5nIHRvIGl0ZXJhdGUpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgc3RyaW5nXG4gICAqICAgRm9ybSAyOiAobm90aGluZyBsZWZ0IHRvIGl0ZXJhdGUpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBJbiBGb3JtIDEsIHRoZSBzdGFjayB3aWxsIGhhdmUgKGluIHJldmVyc2Ugb3JkZXIpOlxuICAgKlxuICAgKiAgIC0gdGhlIGtleSwgYXMgYSBzdHJpbmdcbiAgICogICAtIHRoZSBjdXJyZW50IGl0ZXJhdGVkIHZhbHVlXG4gICAqICAgLSB0aGUgbWVtb2l6ZWQgaXRlcmF0ZWQgdmFsdWVcbiAgICovXG4gIEl0ZXJhdGUsXG5cbiAgLy8vIENPTVBPTkVOVFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBUZXN0IHdoZXRoZXIgYSByZWZlcmVuY2UgY29udGFpbnMgYSBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJc0NvbXBvbmVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8Ym9vbGVhbj5cbiAgICovXG4gIElzQ29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEN1cnJ5IGEgY29tcG9uZW50IGRlZmluaXRpb24gZm9yIGEgbGF0ZXIgaW52b2NhdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDdXJyeUNvbXBvbmVudCB0ZW1wbGF0ZU1ldGE6I1RlbXBsYXRlTWV0YSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIHsgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgVGVtcGxhdGVNZXRhLCBDYXB0dXJlZEFyZ3VtZW50cyB9XG4gICAqL1xuICBDdXJyeUNvbXBvbmVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGFuIGFwcHJvcHJpYXRlIGNvbXBvbmVudCBtYW5hZ2VyIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hDb21wb25lbnRNYW5hZ2VyICNDb21wb25lbnRTcGVjKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIHsgQ29tcG9uZW50RGVmaW5pdGlvbiwgQ29tcG9uZW50TWFuYWdlciB9XG4gICAqL1xuICBQdXNoQ29tcG9uZW50RGVmaW5pdGlvbixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gYXBwcm9wcmlhdGUgY29tcG9uZW50IG1hbmFnZXIgb250byB0aGUgc3RhY2sgZnJvbVxuICAgKiAgIGEgcnVudGltZS1yZXNvbHZlZCBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoRHluYW1pY0NvbXBvbmVudE1hbmFnZXIgdGVtcGxhdGVNZXRhOiNUZW1wbGF0ZU1ldGEpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE9wYXF1ZT4g4oaSXG4gICAqICAgLi4uLCB7IENvbXBvbmVudERlZmluaXRpb24sIENvbXBvbmVudE1hbmFnZXIgfVxuICAgKi9cbiAgUHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSB1c2VyIHJlcHJlc2VudGF0aW9uIG9mIGFyZ3Mgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEFyZ3MgbmFtZXM6I0FycmF5PCNzdHJpbmc+IHBvc2l0aW9uYWxDb3VudDp1MzIgc3ludGhldGljOiNib29sZWFuKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSAg4oaSXG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHNcbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBhcmd1bWVudHMgb2JqZWN0IGlzIG9ubHkgbmVjZXNzYXJ5IHdoZW4gY2FsbGluZyBpbnRvXG4gICAqICAgdXNlci1zcGVjaWZpZWQgaG9va3MuIEl0IGlzIG1lYW50IHRvIGJlIGltcGxlbWVudGVkIGFzIGFcbiAgICogICB0cmFuc2llbnQgcHJveHkgdGhhdCByZWFkcyBpbnRvIHRoZSBzdGFjayBhcyBuZWVkZWQuXG4gICAqICAgSG9sZGluZyBvbnRvIHRoZSBBcmd1bWVudHMgYWZ0ZXIgdGhlIGNhbGwgaGFzIGNvbXBsZXRlZCBpc1xuICAgKiAgIGlsbGVnYWwuXG4gICAqL1xuICBQdXNoQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3BzIEFyZ3VtZW50cyBmcm9tIHRoZSBzdGFjayBhbmQgY2xlYXJzIHRoZSBuZXh0IE4gYXJncy5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3BBcmdzKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzICDihpJcbiAgICogICAuLi5cbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqIFRoZSBhcmd1bWVudHMgb2JqZWN0IGNvbnRhaW5zIHRoZSBpbmZvcm1hdGlvbiBvZiBob3cgbWFueSB1c2VyXG4gICAqIHN1cHBsaWVkIGFyZ3MgdGhlIGNvbXBvbmVudCB3YXMgaW52b2tlZCB3aXRoLiBUbyBjbGVhciB0aGVtIGZyb21cbiAgICogdGhlIHN0YWNrIHdlIG11c3QgcG9wIGl0IGZyb20gdGhlIHN0YWNrIGFuZCBjYWxsIGBjbGVhcmAgb24gaXRcbiAgICogdG8gcmVtb3ZlIHRoZSBhcmd1bWVudCB2YWx1ZXMgZnJvbSB0aGUgc3RhY2suXG4gICAqL1xuICBQb3BBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IC4uLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByZXBhcmVBcmdzIHN0YXRlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQcmVwYXJlQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDcmVhdGUgdGhlIGNvbXBvbmVudCBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDcmVhdGVDb21wb25lbnQgZmxhZ3M6dTMyIHN0YXRlOnUzMilcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIEZsYWdzOlxuICAgKlxuICAgKiAgICogMGIwMDE6IEhhcyBhIGRlZmF1bHQgYmxvY2tcbiAgICogICAqIDBiMDEwOiBIYXMgYW4gaW52ZXJzZSBibG9ja1xuICAgKi9cbiAgQ3JlYXRlQ29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJlZ2lzdGVyIGEgZGVzdHJ1Y3RvciBmb3IgdGhlIGN1cnJlbnQgY29tcG9uZW50XG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmVnaXN0ZXJDb21wb25lbnREZXN0cnVjdG9yIHN0YXRlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3IsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIG5ldyBFbGVtZW50T3BlcmF0aW9ucyBmb3IgdGhlIGN1cnJlbnQgY29tcG9uZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1dENvbXBvbmVudE9wZXJhdGlvbnMpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUHV0Q29tcG9uZW50T3BlcmF0aW9ucyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50U2VsZiBzdGF0ZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50U2VsZixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50VGFnTmFtZSBzdGF0ZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgT3B0aW9uPHN0cmluZz5cbiAgICovXG4gIEdldENvbXBvbmVudFRhZ05hbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogR2V0IHRoZSBjb21wb25lbnQgbGF5b3V0IGZyb20gdGhlIG1hbmFnZXIuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50TGF5b3V0IHN0YXRlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBQcm9ncmFtU3ltYm9sVGFibGUsIEhhbmRsZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSB0aGUgbGF5b3V0IHJldHVybmVkIGJ5IHRoZSBtYW5hZ2VyLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZUNvbXBvbmVudExheW91dClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByb2dyYW1TeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlQ29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEJlZ2luIGEgbmV3IGNhY2hlIGdyb3VwXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQmVnaW5Db21wb25lbnRUcmFuc2FjdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIENvbXBvbmVudE1hbmFnZXI8VD4sIFQg4oaSXG4gICAqICAgLi4uLCBDb21wb25lbnRNYW5hZ2VyPFQ+LCBUXG4gICAqL1xuICBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbW1pdCB0aGUgY3VycmVudCBjYWNoZSBncm91cFxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRDcmVhdGVFbGVtZW50IG9uIHRoZSBjdXJyZW50IGNvbXBvbmVudCBtYW5hZ2VyXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRGlkQ3JlYXRlRWxlbWVudCBzdGF0ZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRGlkQ3JlYXRlRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBJbnZva2UgZGlkUmVuZGVyTGF5b3V0IG9uIHRoZSBjdXJyZW50IGNvbXBvbmVudCBtYW5hZ2VyXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRGlkUmVuZGVyTGF5b3V0IHN0YXRlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRGlkUmVuZGVyTGF5b3V0LFxuXG4gIC8vLyBQQVJUSUFMU1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvb2t1cCBhbmQgaW52b2tlIGEgcGFydGlhbCB0ZW1wbGF0ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VQYXJ0aWFsIHRlbXBsYXRlTWV0YTojVGVtcGxhdGVNZXRhIHN5bWJvbHM6I0FycmF5PCNzdHJpbmc+IGV2YWxJbmZvOiNBcnJheTxudW1iZXI+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxzdHJpbmc+IOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlUGFydGlhbCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFJlc29sdmUge3tmb299fSBpbnNpZGUgYSBwYXJ0aWFsLCB3aGljaCBjb3VsZCBiZSBlaXRoZXIgYSBzZWxmLWxvb2t1cFxuICAgKiAgIG9yIGEgbG9jYWwgdmFyaWFibGUgdGhhdCBpcyBpbi1zY29wZSBmb3IgdGhlIGNhbGxlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZXNvbHZlTWF5YmVMb2NhbCBsb2NhbDojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIFJlc29sdmVNYXliZUxvY2FsLFxuXG4gIC8vLyBERUJVR0dFUlxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFjdGl2YXRlIHRoZSBkZWJ1Z2dlclxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKERlYnVnZ2VyIHN5bWJvbHM6I0FycmF5PHN0cmluZz4gZXZhbEluZm86I0FycmF5PG51bWJlcj4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRGVidWdnZXIsXG5cbiAgLyoqIFRoZSBzaXplIG9mIHRoZSBvcGNvZGUgbGlzdCAqL1xuICBTaXplXG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZtL2xpYi9vcGNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBPcCB7XG4gIC8qXG4gICAgRG9jdW1lbnRhdGlvbiBUT0RPOlxuXG4gICAgRG9jdW1lbnQgdGhlIGxvY2FsIHZhcmlhYmxlIGxheW91dCBpbiB0aGUgc3RhY2tcbiAgICBkaWFncmFtIGJlZm9yZS1hbmQtYWZ0ZXIuXG5cbiAgICBEb2N1bWVudCB1cGRhdGluZyBvcGNvZGVzIGVtaXR0aW5nIGZyb20gdW5yZWFjaGFibGVcbiAgICBhcHBlbmQgb3Bjb2RlLlxuXG4gICAgRG9jdW1lbnQgdGhlIGVsZW1lbnQgc3RhY2ssIGJsb2NrIHN0YWNrIGFuZCBMaXN0XG4gICAgYmxvY2sgc3RhY2suXG4gICAqL1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wY29kZSBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC5cbiAgICovXG4gIEJ1ZyxcblxuICAvLy8gRVhQUkVTU0lPTlNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSBhIEhlbHBlci5cbiAgICogRm9ybWF0OlxuICAgKiAgIChIZWxwZXIgaGVscGVyOiNGdW5jdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIEhlbHBlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIHZhcmlhYmxlIHJlcHJlc2VudGVkIGJ5IGEgc3ltYm9sIGZyb21cbiAgICogICB0aGUgdmFsdWUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoU2V0VmFyaWFibGUgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIGJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFNldEJsb2NrIHN5bWJvbDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIHRoZSBjb250ZW50cyBvZiB0aGUgdmFyaWFibGUgcmVwcmVzZW50ZWQgYnlcbiAgICogICBhIHN5bWJvbCAoYSBwb3NpdGlvbmFsIG9yIG5hbWVkIGFyZ3VtZW50KSBvbnRvXG4gICAqICAgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2wgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZVxuICAgKiAgIHN0YWNrLCBhbmQgcHVzaCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgY29uc3RydWN0ZWRcbiAgICogICBieSBgLmdldChwcm9wZXJ0eSlgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldFByb3BlcnR5IHByb3BlcnR5OiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0UHJvcGVydHksXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgc3BlY2lmaWVkIGJvdW5kIGJsb2NrIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldEJsb2NrIGJsb2NrOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBJbmxpbmVCbG9ja1xuICAgKi9cbiAgR2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIFRSVUUgb250byB0aGUgc3RhY2sgaWYgdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiAgIGlzIGJvdW5kIGFuZCBGQUxTRSBpZiBpdCBpcyBub3QuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2sgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIGJvb2xlYW5cbiAgICovXG4gIEhhc0Jsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaCBUUlVFIG9udG8gdGhlIHN0YWNrIGlmIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICogICBpcyBib3VuZCAqYW5kKiBoYXMgYXQgbGVhc3Qgb25lIHNwZWNpZmllZCBmb3JtYWxcbiAgICogICBwYXJhbWV0ZXIsIGFuZCBGQUxTRSBvdGhlcndpc2UuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2tQYXJhbXMgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgKGJvb2xlYW4pXG4gICAqL1xuICBIYXNCbG9ja1BhcmFtcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBjb3VudCBgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZWBzIG9mZiB0aGUgc3RhY2sgYW5kXG4gICAqICAgY29uc3RydWN0IGEgbmV3IENvbmNhdFJlZmVyZW5jZSBmcm9tIHRoZW0gKGluIHJldmVyc2VcbiAgICogICBvcmRlcikuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29uY2F0IGNvdW50OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uLCBDb25jYXRSZWZlcmVuY2VcbiAgICovXG4gIENvbmNhdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gT2JqZWN0IGNvbnN0YW50IG9udG8gdGhlIHN0YWNrIHRoYXQgaXMgbm90XG4gICAqICAgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29uc3RhbnQgY29uc3RhbnQ6I09iamVjdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcGFxdWVcbiAgICovXG4gIENvbnN0YW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgV3JhcCBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIGluIGEgcmVmZXJlbmNlIGFuZCBwdXNoIGl0XG4gICAqICAgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFByaW1pdGl2ZSBjb25zdGFudDojUHJpbWl0aXZlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFByaW1pdGl2ZVxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGUgdHdvIGhpZ2ggYml0cyBvZiB0aGUgY29uc3RhbnQgcmVmZXJlbmNlIGRlc2NyaWJlXG4gICAqICAgdGhlIGtpbmQgb2YgcHJpbWl0aXZlOlxuICAgKlxuICAgKiAgIDAwOiBudW1iZXJcbiAgICogICAwMTogc3RyaW5nXG4gICAqICAgMTA6IHRydWUgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWRcbiAgICovXG4gIFByaW1pdGl2ZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBwcmltaXRpdmUgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByaW1pdGl2ZVJlZmVyZW5jZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByaW1pdGl2ZSDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8UHJpbWl0aXZlPlxuICAgKi9cbiAgUHJpbWl0aXZlUmVmZXJlbmNlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IER1cGxpY2F0ZSBhbmQgcHVzaCBpdGVtIGZyb20gYW4gb2Zmc2V0IGluIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEdXAgcmVnaXN0ZXI6dTMyLCBvZmZzZXQ6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlLCBPcGFxdWVcbiAgICovXG4gIER1cCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3AgTiBpdGVtcyBvZmYgdGhlIHN0YWNrIGFuZCB0aHJvdyBhd2F5IHRoZSB2YWx1ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3ApXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBPcGFxdWUsIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvYWQgYSB2YWx1ZSBpbnRvIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChMb2FkIHJlZ2lzdGVyOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIExvYWQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRmV0Y2ggYSB2YWx1ZSBmcm9tIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChGZXRjaCByZWdpc3Rlcjp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlXG4gICAqL1xuICBGZXRjaCxcblxuICAvLy8gUFJFTFVERSAmIEVYSVRcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IHJvb3Qgc2NvcGUgb250byB0aGUgc2NvcGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUm9vdFNjb3BlIHN5bWJvbHM6dTMyIGJpbmRDYWxsZXJTY29wZTpib29sKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgQSByb290IHNjb3BlIGhhcyBubyBwYXJlbnQgc2NvcGUsIGFuZCB0aGVyZWZvcmUgaW5oZXJpdHMgbm8gbGV4aWNhbFxuICAgKiAgIHZhcmlhYmxlcy4gSWYgYGJpbmRDYWxsZXJTY29wZWAgaXMgYHRydWVgLCB0aGUgY3VycmVudCBzY29wZSByZW1lbWJlcnNcbiAgICogICB0aGUgY2FsbGVyIHNjb3BlIChmb3IgeWllbGRpbmcgYmxvY2tzKS5cbiAgICovXG4gIFJvb3RTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IGNoaWxkIHNjb3BlIG9udG8gdGhlIHNjb3BlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENoaWxkU2NvcGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBBIGNoaWxkIHNjb3BlIGluaGVyaXRzIGZyb20gdGhlIGN1cnJlbnQgcGFyZW50IHNjb3BlLCBhbmQgdGhlcmVmb3JlXG4gICAqICAgc2hhcmVzIGl0cyBsZXhpY2FsIHZhcmlhYmxlcy5cbiAgICovXG4gIENoaWxkU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wIHRoZSBjdXJyZW50IHNjb3BlIGZyb20gdGhlIHNjb3BlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcFNjb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcFNjb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJldHVybiB0byB0aGUgcHJldmlvdXMgZnJhbWUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmV0dXJuKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgYWRkcmVzczpudW1iZXIg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZXR1cm4sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmV0dXJuIHRvIGEgcGxhY2UgaW4gdGhlIHByb2dyYW0gZ2l2ZW4gYW4gb2Zmc2V0XG4gICAqIEZvcm1hdDpcbiAgICogIChSZXR1cm5UbyBvZmZzZXQ6aTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICAuLi4g4oaSXG4gICAqL1xuICBSZXR1cm5UbyxcblxuICAvLy8gSFRNTFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBhIFRleHQgbm9kZSB3aXRoIHZhbHVlIGBjb250ZW50c2BcbiAgICogRm9ybWF0OlxuICAgKiAgIChUZXh0IGNvbnRlbnRzOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgVGV4dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgYSBDb21tZW50IG5vZGUgd2l0aCB2YWx1ZSBgY29udGVudHNgXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tbWVudCBjb250ZW50czojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIGEgRHluYW1pYyBub2RlIGJhc2VkIG9uIC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQ29udGVudCBpc1RydXN0aW5nOmJvb2xlYW4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRHluYW1pY0NvbnRlbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50IHRhZzojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgIHdpdGggc3BlY2lhbCBvcGVyYXRpb25zIHByb3ZpZGVkXG4gICAqICAgb24gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50V2l0aE9wZXJhdGlvbnMgdGFnOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBFbGVtZW50T3BlcmF0aW9ucyDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50V2l0aE9wZXJhdGlvbnMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBPcGVuIGEgbmV3IEVsZW1lbnQgd2l0aCBhIG5hbWUgb24gdGhlIHN0YWNrIGFuZCB3aXRoIHNwZWNpYWxcbiAgICogICBvcGVyYXRpb25zIHByb3ZpZGVkIG9uIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChPcGVuRHluYW1pY0VsZW1lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBzdHJpbmcsIEVsZW1lbnRPcGVyYXRpb25zIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgT3BlbkR5bmFtaWNFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgRWxlbWVudC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChTdGF0aWNBdHRyIG5hbWU6I3N0cmluZyB2YWx1ZTojc3RyaW5nIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU3RhdGljQXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgZWxlbWVudCB1c2luZyB0aGUgdmFsdWVcbiAgICogICBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQXR0ciBuYW1lOiNzdHJpbmcgdHJ1c3Rpbmc6Ym9vbGVhbiBuYW1lc3BhY2U6T3B0aW9uPCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgSWYgYHRydXN0aW5nYCBpcyBmYWxzZSwgdGhlIGhvc3QgbWF5IHNhbml0aXplIHRoZSBhdHRyaWJ1dGVcbiAgICogICBiYXNlZCB1cG9uIGtub3duIHJpc2tzLlxuICAgKi9cbiAgRHluYW1pY0F0dHIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBBZGQgYW4gYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IGVsZW1lbnQgdXNpbmcgdGhlIHZhbHVlXG4gICAqICAgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tcG9uZW50QXRyIG5hbWU6I3N0cmluZyB0cnVzdGluZzpib29sZWFuIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQ29tcG9uZW50QXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBGaW5pc2ggc2V0dGluZyBhdHRyaWJ1dGVzIG9uIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRmx1c2hFbGVtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEZsdXNoRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDbG9zZSB0aGUgY3VycmVudCBlbGVtZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENsb3NlRWxlbWVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBDbG9zZUVsZW1lbnQsXG5cbiAgLy8vIE1PRElGSUVSXG4gIE1vZGlmaWVyLCAgICAgICAgICAgICAgICAgIC8vIChDb25zdGFudFN0cmluZywgQ29uc3RhbnRPdGhlcjxNb2RpZmllck1hbmFnZXI+LCBDb25zdGFudEV4cHJlc3Npb24pXG5cbiAgLy8vIFdPUk1IT0xFXG4gIFB1c2hSZW1vdGVFbGVtZW50LCAgICAgICAgIC8vICgpXG4gIFBvcFJlbW90ZUVsZW1lbnQsICAgICAgICAgIC8vICgpXG5cbiAgLy8vIERZTkFNSUMgU0NPUEVcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBCaW5kIHN0YWNrIHZhbHVlcyBhcyBkeW5hbWljIHZhcmlhYmxlcy5cbiAgICogRm9ybWF0OlxuICAgKiAgIChCaW5kRHluYW1pY1Njb3BlIG5hbWVzOiNBcnJheTwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgaXMgdXNlZCB0byBleHBvc2UgYC13aXRoLWR5bmFtaWMtdmFyc2AsIGFuZCBpcyBhXG4gICAqICAgbmljaGUgZmVhdHVyZS5cbiAgICovXG4gIEJpbmREeW5hbWljU2NvcGUsXG5cbiAgUHVzaER5bmFtaWNTY29wZSwgICAgICAgICAgLy8gKClcbiAgUG9wRHluYW1pY1Njb3BlLCAgICAgICAgICAgLy8gKClcblxuICAvLy8gVk1cblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb21waWxlIHRoZSBJbmxpbmVCbG9jayBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDb21waWxlQmxvY2spXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBDb21waWxhYmxlQmxvY2sg4oaSXG4gICAqICAgLi4uLCBIYW5kbGVcbiAgICovXG4gIENvbXBpbGVCbG9jayxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgc2NvcGUgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEJsb2NrU2NvcGUgI1Njb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwg4oaSXG4gICAqICAgLi4uLCBTY29wZVxuICAgKi9cbiAgUHVzaEJsb2NrU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN5bWJvbCB0YWJsZSBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoU3ltYm9sVGFibGUgI1N5bWJvbFRhYmxlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwg4oaSXG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZVxuICAgKi9cbiAgUHVzaFN5bWJvbFRhYmxlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV2YWx1YXRlIHRoZSBoYW5kbGUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlVmlydHVhbClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIEhhbmRsZSwg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VWaXJ0dWFsLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV2YWx1YXRlIHRoZSBoYW5kbGUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlU3RhdGljIGhhbmRsZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlU3RhdGljLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFlpZWxkIHRvIGEgYmxvY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlWWllbGQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMsIFN5bWJvbFRhYmxlLCBIYW5kbGUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VZaWVsZCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXAgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXAsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0IGlmIHRoZSB2YWx1ZSBhdFxuICAgKiAgIHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIHRydWUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSnVtcElmIHRvOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBKdW1wSWYsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0IGlmIHRoZSB2YWx1ZSBhdFxuICAgKiAgIHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIGZhbHNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXBVbmxlc3MgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXBVbmxlc3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAkcmEsICRmcFxuICAgKi9cbiAgUHVzaEZyYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICRyYSwgJGZwIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wRnJhbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTdGFydCB0cmFja2luZyBhIG5ldyBvdXRwdXQgYmxvY2sgdGhhdCBjb3VsZCBjaGFuZ2VcbiAgICogICBpZiBvbmUgb2YgaXRzIGlucHV0cyBjaGFuZ2VzLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEVudGVyIGFyZ3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgU29vbiBhZnRlciB0aGlzIG9wY29kZSwgb25lIG9mIEp1bXAsIEp1bXBJZixcbiAgICogICBvciBKdW1wVW5sZXNzIHdpbGwgcHJvZHVjZSBhbiB1cGRhdGluZyBhc3NlcnRpb24uXG4gICAqICAgSWYgdGhhdCBhc3NlcnRpb24gZmFpbHMsIHRoZSBhcHBlbmRpbmcgVk0gd2lsbFxuICAgKiAgIGJlIHJlLWVudGVyZWQsIGFuZCB0aGUgaW5zdHJ1Y3Rpb25zIGZyb20gYGZyb21gXG4gICAqICAgdG8gYHRvYCB3aWxsIGJlIGV4ZWN1dGVkLlxuICAgKlxuICAgKiAgIFRPRE86IFNhdmUgYW5kIHJlc3RvcmUuXG4gICAqL1xuICBFbnRlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEZpbmlzaCB0cmFja2luZyB0aGUgY3VycmVudCBibG9jay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFeGl0KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBmaW5hbGl6ZXMgdGhlIHZhbGlkYXRvcnMgdGhhdCB0aGUgdXBkYXRpbmdcbiAgICogICBibG9jayBtdXN0IGNoZWNrIHRvIGRldGVybWluZSB3aGV0aGVyIGl0J3Mgc2FmZSB0b1xuICAgKiAgIHNraXAgcnVubmluZyB0aGUgY29udGVudHMuXG4gICAqL1xuICBFeGl0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbnZlcnQgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaW50byBhIGJvb2xlYW4gcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFRvQm9vbGVhbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8Ym9vbD5cbiAgICovXG4gIFRvQm9vbGVhbixcblxuICAvLy8gTElTVFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFbnRlciBhIGxpc3QuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRW50ZXJMaXN0IGFkZHJlc3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgSXRlcmF0b3Ig4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBFbnRlckxpc3QsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRXhpdCB0aGUgY3VycmVudCBsaXN0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEV4aXRMaXN0KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEV4aXRMaXN0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgQ29udmVydCBhbiBvcGVyYW5kIGFuZCBrZXkgaW50byBhbiBpdGVyYXRvciBhbmRcbiAgICogICBwcmVzZW5jZSByZWZlcmVuY2UuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHV0SXRlcmF0b3IpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBrZXk6c3RyaW5nLCBsaXN0OlZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uLCBpdGVyYXRvcjpSZWZlcmVuY2VJdGVyYXRvciwgcHJlc2VudDpQcmVzZW5jZVJlZmVyZW5jZVxuICAgKi9cbiAgUHV0SXRlcmF0b3IsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTZXQgdXAgdGhlIHN0YWNrIGZvciBpdGVyYXRpbmcgZm9yIGEgZ2l2ZW4ga2V5LFxuICAgKiAgIG9yIGp1bXAgdG8gYGVuZGAgaWYgdGhlcmUgaXMgbm90aGluZyBsZWZ0IHRvXG4gICAqICAgaXRlcmF0ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJdGVyYXRlIGVuZDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgRm9ybSAxOiAoc29tZXRoaW5nIHRvIGl0ZXJhdGUpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgc3RyaW5nXG4gICAqICAgRm9ybSAyOiAobm90aGluZyBsZWZ0IHRvIGl0ZXJhdGUpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBJbiBGb3JtIDEsIHRoZSBzdGFjayB3aWxsIGhhdmUgKGluIHJldmVyc2Ugb3JkZXIpOlxuICAgKlxuICAgKiAgIC0gdGhlIGtleSwgYXMgYSBzdHJpbmdcbiAgICogICAtIHRoZSBjdXJyZW50IGl0ZXJhdGVkIHZhbHVlXG4gICAqICAgLSB0aGUgbWVtb2l6ZWQgaXRlcmF0ZWQgdmFsdWVcbiAgICovXG4gIEl0ZXJhdGUsXG5cbiAgLy8vIENPTVBPTkVOVFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBUZXN0IHdoZXRoZXIgYSByZWZlcmVuY2UgY29udGFpbnMgYSBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChNYWluIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgSW52b2NhdGlvbiwgQ29tcG9uZW50RGVmaW5pdGlvbiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE1haW4sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogVGVzdCB3aGV0aGVyIGEgcmVmZXJlbmNlIGNvbnRhaW5zIGEgY29tcG9uZW50IGRlZmluaXRpb24uXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSXNDb21wb25lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE9wYXF1ZT4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPGJvb2xlYW4+XG4gICAqL1xuICBJc0NvbXBvbmVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDdXJyeSBhIGNvbXBvbmVudCBkZWZpbml0aW9uIGZvciBhIGxhdGVyIGludm9jYXRpb24uXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ3VycnlDb21wb25lbnQgdGVtcGxhdGVNZXRhOiNUZW1wbGF0ZU1ldGEpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMg4oaSXG4gICAqICAgLi4uLCB7IFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFRlbXBsYXRlTWV0YSwgQ2FwdHVyZWRBcmd1bWVudHMgfVxuICAgKi9cbiAgQ3VycnlDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhbiBhcHByb3ByaWF0ZSBjb21wb25lbnQgbWFuYWdlciBvbnRvIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29tcG9uZW50TWFuYWdlciAjQ29tcG9uZW50U3BlYylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCB7IENvbXBvbmVudERlZmluaXRpb24sIENvbXBvbmVudE1hbmFnZXIgfVxuICAgKi9cbiAgUHVzaENvbXBvbmVudERlZmluaXRpb24sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIGFuIGFwcHJvcHJpYXRlIGNvbXBvbmVudCBtYW5hZ2VyIG9udG8gdGhlIHN0YWNrIGZyb21cbiAgICogICBhIHJ1bnRpbWUtcmVzb2x2ZWQgY29tcG9uZW50IGRlZmluaXRpb24uXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyIHRlbXBsYXRlTWV0YTojVGVtcGxhdGVNZXRhKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgeyBDb21wb25lbnREZWZpbml0aW9uLCBDb21wb25lbnRNYW5hZ2VyIH1cbiAgICovXG4gIFB1c2hEeW5hbWljQ29tcG9uZW50TWFuYWdlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgdXNlciByZXByZXNlbnRhdGlvbiBvZiBhcmdzIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hBcmdzIG5hbWVzOiNBcnJheTwjc3RyaW5nPiBwb3NpdGlvbmFsQ291bnQ6dTMyIHN5bnRoZXRpYzojYm9vbGVhbilcbiAgICpcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0gIOKGklxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzXG4gICAqXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgYXJndW1lbnRzIG9iamVjdCBpcyBvbmx5IG5lY2Vzc2FyeSB3aGVuIGNhbGxpbmcgaW50b1xuICAgKiAgIHVzZXItc3BlY2lmaWVkIGhvb2tzLiBJdCBpcyBtZWFudCB0byBiZSBpbXBsZW1lbnRlZCBhcyBhXG4gICAqICAgdHJhbnNpZW50IHByb3h5IHRoYXQgcmVhZHMgaW50byB0aGUgc3RhY2sgYXMgbmVlZGVkLlxuICAgKiAgIEhvbGRpbmcgb250byB0aGUgQXJndW1lbnRzIGFmdGVyIHRoZSBjYWxsIGhhcyBjb21wbGV0ZWQgaXNcbiAgICogICBpbGxlZ2FsLlxuICAgKi9cbiAgUHVzaEFyZ3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wcyBBcmd1bWVudHMgZnJvbSB0aGUgc3RhY2sgYW5kIGNsZWFycyB0aGUgbmV4dCBOIGFyZ3MuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUG9wQXJncylcbiAgICpcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyAg4oaSXG4gICAqICAgLi4uXG4gICAqXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiBUaGUgYXJndW1lbnRzIG9iamVjdCBjb250YWlucyB0aGUgaW5mb3JtYXRpb24gb2YgaG93IG1hbnkgdXNlclxuICAgKiBzdXBwbGllZCBhcmdzIHRoZSBjb21wb25lbnQgd2FzIGludm9rZWQgd2l0aC4gVG8gY2xlYXIgdGhlbSBmcm9tXG4gICAqIHRoZSBzdGFjayB3ZSBtdXN0IHBvcCBpdCBmcm9tIHRoZSBzdGFjayBhbmQgY2FsbCBgY2xlYXJgIG9uIGl0XG4gICAqIHRvIHJlbW92ZSB0aGUgYXJndW1lbnQgdmFsdWVzIGZyb20gdGhlIHN0YWNrLlxuICAgKi9cbiAgUG9wQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiAuLi5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQcmVwYXJlQXJncyBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQcmVwYXJlQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDcmVhdGUgdGhlIGNvbXBvbmVudCBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDcmVhdGVDb21wb25lbnQgZmxhZ3M6dTMyIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgRmxhZ3M6XG4gICAqXG4gICAqICAgKiAwYjAwMTogSGFzIGEgZGVmYXVsdCBibG9ja1xuICAgKiAgICogMGIwMTA6IEhhcyBhbiBpbnZlcnNlIGJsb2NrXG4gICAqL1xuICBDcmVhdGVDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmVnaXN0ZXIgYSBkZXN0cnVjdG9yIGZvciB0aGUgY3VycmVudCBjb21wb25lbnRcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3Igc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUmVnaXN0ZXJDb21wb25lbnREZXN0cnVjdG9yLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBuZXcgRWxlbWVudE9wZXJhdGlvbnMgZm9yIHRoZSBjdXJyZW50IGNvbXBvbmVudC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXRDb21wb25lbnRPcGVyYXRpb25zKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFB1dENvbXBvbmVudE9wZXJhdGlvbnMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgY29tcG9uZW50J3MgYHNlbGZgIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldENvbXBvbmVudFNlbGYgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50U2VsZixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50VGFnTmFtZSBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcHRpb248c3RyaW5nPlxuICAgKi9cbiAgR2V0Q29tcG9uZW50VGFnTmFtZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBHZXQgdGhlIGNvbXBvbmVudCBsYXlvdXQgZnJvbSB0aGUgbWFuYWdlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChHZXRDb21wb25lbnRMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBIYW5kbGVcbiAgICovXG4gIEdldENvbXBvbmVudExheW91dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcHVsYXRlIHRoZSBzdGF0ZSByZWdpc3RlciB3aXRoIHRoZSBsYXlvdXQgY3VycmVudGx5XG4gICAqICAgb24gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcHVsYXRlTGF5b3V0IHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBIYW5kbGUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQb3B1bGF0ZUxheW91dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBJbnZva2UgdGhlIGxheW91dCByZXR1cm5lZCBieSB0aGUgbWFuYWdlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VDb21wb25lbnRMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlQ29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEJlZ2luIGEgbmV3IGNhY2hlIGdyb3VwXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQmVnaW5Db21wb25lbnRUcmFuc2FjdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIENvbXBvbmVudE1hbmFnZXI8VD4sIFQg4oaSXG4gICAqICAgLi4uLCBDb21wb25lbnRNYW5hZ2VyPFQ+LCBUXG4gICAqL1xuICBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbW1pdCB0aGUgY3VycmVudCBjYWNoZSBncm91cFxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRDcmVhdGVFbGVtZW50IG9uIHRoZSBjdXJyZW50IGNvbXBvbmVudCBtYW5hZ2VyXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRGlkQ3JlYXRlRWxlbWVudCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBEaWRDcmVhdGVFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRSZW5kZXJMYXlvdXQgb24gdGhlIGN1cnJlbnQgY29tcG9uZW50IG1hbmFnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEaWRSZW5kZXJMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERpZFJlbmRlckxheW91dCxcblxuICAvLy8gUEFSVElBTFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBMb29rdXAgYW5kIGludm9rZSBhIHBhcnRpYWwgdGVtcGxhdGUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlUGFydGlhbCB0ZW1wbGF0ZU1ldGE6I1RlbXBsYXRlTWV0YSBzeW1ib2xzOiNBcnJheTwjc3RyaW5nPiBldmFsSW5mbzojQXJyYXk8bnVtYmVyPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8c3RyaW5nPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVBhcnRpYWwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBSZXNvbHZlIHt7Zm9vfX0gaW5zaWRlIGEgcGFydGlhbCwgd2hpY2ggY291bGQgYmUgZWl0aGVyIGEgc2VsZi1sb29rdXBcbiAgICogICBvciBhIGxvY2FsIHZhcmlhYmxlIHRoYXQgaXMgaW4tc2NvcGUgZm9yIHRoZSBjYWxsZXIuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmVzb2x2ZU1heWJlTG9jYWwgbG9jYWw6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBSZXNvbHZlTWF5YmVMb2NhbCxcblxuICAvLy8gREVCVUdHRVJcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBY3RpdmF0ZSB0aGUgZGVidWdnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEZWJ1Z2dlciBzeW1ib2xzOiNBcnJheTxzdHJpbmc+IGV2YWxJbmZvOiNBcnJheTxudW1iZXI+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERlYnVnZ2VyLFxuXG4gIC8qKiBUaGUgc2l6ZSBvZiB0aGUgb3Bjb2RlIGxpc3QgKi9cbiAgU2l6ZVxufVxuIl19
"use strict";
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZtL2xpYi9vcGNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBPcCB7XG4gIC8qXG4gICAgRG9jdW1lbnRhdGlvbiBUT0RPOlxuXG4gICAgRG9jdW1lbnQgdGhlIGxvY2FsIHZhcmlhYmxlIGxheW91dCBpbiB0aGUgc3RhY2tcbiAgICBkaWFncmFtIGJlZm9yZS1hbmQtYWZ0ZXIuXG5cbiAgICBEb2N1bWVudCB1cGRhdGluZyBvcGNvZGVzIGVtaXR0aW5nIGZyb20gdW5yZWFjaGFibGVcbiAgICBhcHBlbmQgb3Bjb2RlLlxuXG4gICAgRG9jdW1lbnQgdGhlIGVsZW1lbnQgc3RhY2ssIGJsb2NrIHN0YWNrIGFuZCBMaXN0XG4gICAgYmxvY2sgc3RhY2suXG4gICAqL1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wY29kZSBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC5cbiAgICovXG4gIEJ1ZyxcblxuICAvLy8gRVhQUkVTU0lPTlNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSBhIEhlbHBlci5cbiAgICogRm9ybWF0OlxuICAgKiAgIChIZWxwZXIgaGVscGVyOiNGdW5jdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIEhlbHBlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIHZhcmlhYmxlIHJlcHJlc2VudGVkIGJ5IGEgc3ltYm9sIGZyb21cbiAgICogICB0aGUgdmFsdWUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoU2V0VmFyaWFibGUgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIGJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFNldEJsb2NrIHN5bWJvbDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIHRoZSBjb250ZW50cyBvZiB0aGUgdmFyaWFibGUgcmVwcmVzZW50ZWQgYnlcbiAgICogICBhIHN5bWJvbCAoYSBwb3NpdGlvbmFsIG9yIG5hbWVkIGFyZ3VtZW50KSBvbnRvXG4gICAqICAgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2wgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZVxuICAgKiAgIHN0YWNrLCBhbmQgcHVzaCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgY29uc3RydWN0ZWRcbiAgICogICBieSBgLmdldChwcm9wZXJ0eSlgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldFByb3BlcnR5IHByb3BlcnR5OiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0UHJvcGVydHksXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgc3BlY2lmaWVkIGJvdW5kIGJsb2NrIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldEJsb2NrIGJsb2NrOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBJbmxpbmVCbG9ja1xuICAgKi9cbiAgR2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIFRSVUUgb250byB0aGUgc3RhY2sgaWYgdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiAgIGlzIGJvdW5kIGFuZCBGQUxTRSBpZiBpdCBpcyBub3QuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2sgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIGJvb2xlYW5cbiAgICovXG4gIEhhc0Jsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaCBUUlVFIG9udG8gdGhlIHN0YWNrIGlmIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICogICBpcyBib3VuZCAqYW5kKiBoYXMgYXQgbGVhc3Qgb25lIHNwZWNpZmllZCBmb3JtYWxcbiAgICogICBwYXJhbWV0ZXIsIGFuZCBGQUxTRSBvdGhlcndpc2UuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2tQYXJhbXMgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgKGJvb2xlYW4pXG4gICAqL1xuICBIYXNCbG9ja1BhcmFtcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBjb3VudCBgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZWBzIG9mZiB0aGUgc3RhY2sgYW5kXG4gICAqICAgY29uc3RydWN0IGEgbmV3IENvbmNhdFJlZmVyZW5jZSBmcm9tIHRoZW0gKGluIHJldmVyc2VcbiAgICogICBvcmRlcikuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29uY2F0IGNvdW50OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uLCBDb25jYXRSZWZlcmVuY2VcbiAgICovXG4gIENvbmNhdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gT2JqZWN0IGNvbnN0YW50IG9udG8gdGhlIHN0YWNrIHRoYXQgaXMgbm90XG4gICAqICAgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29uc3RhbnQgY29uc3RhbnQ6I09iamVjdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcGFxdWVcbiAgICovXG4gIENvbnN0YW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgV3JhcCBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIGluIGEgcmVmZXJlbmNlIGFuZCBwdXNoIGl0XG4gICAqICAgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFByaW1pdGl2ZSBjb25zdGFudDojUHJpbWl0aXZlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFByaW1pdGl2ZVxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGUgdHdvIGhpZ2ggYml0cyBvZiB0aGUgY29uc3RhbnQgcmVmZXJlbmNlIGRlc2NyaWJlXG4gICAqICAgdGhlIGtpbmQgb2YgcHJpbWl0aXZlOlxuICAgKlxuICAgKiAgIDAwOiBudW1iZXJcbiAgICogICAwMTogc3RyaW5nXG4gICAqICAgMTA6IHRydWUgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWRcbiAgICovXG4gIFByaW1pdGl2ZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBwcmltaXRpdmUgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByaW1pdGl2ZVJlZmVyZW5jZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByaW1pdGl2ZSDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8UHJpbWl0aXZlPlxuICAgKi9cbiAgUHJpbWl0aXZlUmVmZXJlbmNlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IER1cGxpY2F0ZSBhbmQgcHVzaCBpdGVtIGZyb20gYW4gb2Zmc2V0IGluIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEdXAgcmVnaXN0ZXI6dTMyLCBvZmZzZXQ6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlLCBPcGFxdWVcbiAgICovXG4gIER1cCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3AgTiBpdGVtcyBvZmYgdGhlIHN0YWNrIGFuZCB0aHJvdyBhd2F5IHRoZSB2YWx1ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3ApXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBPcGFxdWUsIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvYWQgYSB2YWx1ZSBpbnRvIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChMb2FkIHJlZ2lzdGVyOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIExvYWQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRmV0Y2ggYSB2YWx1ZSBmcm9tIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChGZXRjaCByZWdpc3Rlcjp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlXG4gICAqL1xuICBGZXRjaCxcblxuICAvLy8gUFJFTFVERSAmIEVYSVRcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IHJvb3Qgc2NvcGUgb250byB0aGUgc2NvcGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUm9vdFNjb3BlIHN5bWJvbHM6dTMyIGJpbmRDYWxsZXJTY29wZTpib29sKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgQSByb290IHNjb3BlIGhhcyBubyBwYXJlbnQgc2NvcGUsIGFuZCB0aGVyZWZvcmUgaW5oZXJpdHMgbm8gbGV4aWNhbFxuICAgKiAgIHZhcmlhYmxlcy4gSWYgYGJpbmRDYWxsZXJTY29wZWAgaXMgYHRydWVgLCB0aGUgY3VycmVudCBzY29wZSByZW1lbWJlcnNcbiAgICogICB0aGUgY2FsbGVyIHNjb3BlIChmb3IgeWllbGRpbmcgYmxvY2tzKS5cbiAgICovXG4gIFJvb3RTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IGNoaWxkIHNjb3BlIG9udG8gdGhlIHNjb3BlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENoaWxkU2NvcGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBBIGNoaWxkIHNjb3BlIGluaGVyaXRzIGZyb20gdGhlIGN1cnJlbnQgcGFyZW50IHNjb3BlLCBhbmQgdGhlcmVmb3JlXG4gICAqICAgc2hhcmVzIGl0cyBsZXhpY2FsIHZhcmlhYmxlcy5cbiAgICovXG4gIENoaWxkU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wIHRoZSBjdXJyZW50IHNjb3BlIGZyb20gdGhlIHNjb3BlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcFNjb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcFNjb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJldHVybiB0byB0aGUgcHJldmlvdXMgZnJhbWUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmV0dXJuKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgYWRkcmVzczpudW1iZXIg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZXR1cm4sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmV0dXJuIHRvIGEgcGxhY2UgaW4gdGhlIHByb2dyYW0gZ2l2ZW4gYW4gb2Zmc2V0XG4gICAqIEZvcm1hdDpcbiAgICogIChSZXR1cm5UbyBvZmZzZXQ6aTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICAuLi4g4oaSXG4gICAqL1xuICBSZXR1cm5UbyxcblxuICAvLy8gSFRNTFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBhIFRleHQgbm9kZSB3aXRoIHZhbHVlIGBjb250ZW50c2BcbiAgICogRm9ybWF0OlxuICAgKiAgIChUZXh0IGNvbnRlbnRzOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgVGV4dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgYSBDb21tZW50IG5vZGUgd2l0aCB2YWx1ZSBgY29udGVudHNgXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tbWVudCBjb250ZW50czojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIGEgRHluYW1pYyBub2RlIGJhc2VkIG9uIC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQ29udGVudCBpc1RydXN0aW5nOmJvb2xlYW4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRHluYW1pY0NvbnRlbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50IHRhZzojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgIHdpdGggc3BlY2lhbCBvcGVyYXRpb25zIHByb3ZpZGVkXG4gICAqICAgb24gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50V2l0aE9wZXJhdGlvbnMgdGFnOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBFbGVtZW50T3BlcmF0aW9ucyDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50V2l0aE9wZXJhdGlvbnMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBPcGVuIGEgbmV3IEVsZW1lbnQgd2l0aCBhIG5hbWUgb24gdGhlIHN0YWNrIGFuZCB3aXRoIHNwZWNpYWxcbiAgICogICBvcGVyYXRpb25zIHByb3ZpZGVkIG9uIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChPcGVuRHluYW1pY0VsZW1lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBzdHJpbmcsIEVsZW1lbnRPcGVyYXRpb25zIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgT3BlbkR5bmFtaWNFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgRWxlbWVudC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChTdGF0aWNBdHRyIG5hbWU6I3N0cmluZyB2YWx1ZTojc3RyaW5nIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU3RhdGljQXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgZWxlbWVudCB1c2luZyB0aGUgdmFsdWVcbiAgICogICBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQXR0ciBuYW1lOiNzdHJpbmcgdHJ1c3Rpbmc6Ym9vbGVhbiBuYW1lc3BhY2U6T3B0aW9uPCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgSWYgYHRydXN0aW5nYCBpcyBmYWxzZSwgdGhlIGhvc3QgbWF5IHNhbml0aXplIHRoZSBhdHRyaWJ1dGVcbiAgICogICBiYXNlZCB1cG9uIGtub3duIHJpc2tzLlxuICAgKi9cbiAgRHluYW1pY0F0dHIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBBZGQgYW4gYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IGVsZW1lbnQgdXNpbmcgdGhlIHZhbHVlXG4gICAqICAgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tcG9uZW50QXRyIG5hbWU6I3N0cmluZyB0cnVzdGluZzpib29sZWFuIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQ29tcG9uZW50QXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBGaW5pc2ggc2V0dGluZyBhdHRyaWJ1dGVzIG9uIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRmx1c2hFbGVtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEZsdXNoRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDbG9zZSB0aGUgY3VycmVudCBlbGVtZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENsb3NlRWxlbWVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBDbG9zZUVsZW1lbnQsXG5cbiAgLy8vIE1PRElGSUVSXG4gIE1vZGlmaWVyLCAgICAgICAgICAgICAgICAgIC8vIChDb25zdGFudFN0cmluZywgQ29uc3RhbnRPdGhlcjxNb2RpZmllck1hbmFnZXI+LCBDb25zdGFudEV4cHJlc3Npb24pXG5cbiAgLy8vIFdPUk1IT0xFXG4gIFB1c2hSZW1vdGVFbGVtZW50LCAgICAgICAgIC8vICgpXG4gIFBvcFJlbW90ZUVsZW1lbnQsICAgICAgICAgIC8vICgpXG5cbiAgLy8vIERZTkFNSUMgU0NPUEVcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBCaW5kIHN0YWNrIHZhbHVlcyBhcyBkeW5hbWljIHZhcmlhYmxlcy5cbiAgICogRm9ybWF0OlxuICAgKiAgIChCaW5kRHluYW1pY1Njb3BlIG5hbWVzOiNBcnJheTwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgaXMgdXNlZCB0byBleHBvc2UgYC13aXRoLWR5bmFtaWMtdmFyc2AsIGFuZCBpcyBhXG4gICAqICAgbmljaGUgZmVhdHVyZS5cbiAgICovXG4gIEJpbmREeW5hbWljU2NvcGUsXG5cbiAgUHVzaER5bmFtaWNTY29wZSwgICAgICAgICAgLy8gKClcbiAgUG9wRHluYW1pY1Njb3BlLCAgICAgICAgICAgLy8gKClcblxuICAvLy8gVk1cblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb21waWxlIHRoZSBJbmxpbmVCbG9jayBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDb21waWxlQmxvY2spXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBDb21waWxhYmxlQmxvY2sg4oaSXG4gICAqICAgLi4uLCBIYW5kbGVcbiAgICovXG4gIENvbXBpbGVCbG9jayxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgc2NvcGUgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEJsb2NrU2NvcGUgI1Njb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwg4oaSXG4gICAqICAgLi4uLCBTY29wZVxuICAgKi9cbiAgUHVzaEJsb2NrU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN5bWJvbCB0YWJsZSBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoU3ltYm9sVGFibGUgI1N5bWJvbFRhYmxlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwg4oaSXG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZVxuICAgKi9cbiAgUHVzaFN5bWJvbFRhYmxlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV2YWx1YXRlIHRoZSBoYW5kbGUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlVmlydHVhbClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIEhhbmRsZSwg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VWaXJ0dWFsLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV2YWx1YXRlIHRoZSBoYW5kbGUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlU3RhdGljIGhhbmRsZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlU3RhdGljLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFlpZWxkIHRvIGEgYmxvY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlWWllbGQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMsIFN5bWJvbFRhYmxlLCBIYW5kbGUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VZaWVsZCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXAgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXAsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0IGlmIHRoZSB2YWx1ZSBhdFxuICAgKiAgIHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIHRydWUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSnVtcElmIHRvOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBKdW1wSWYsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0IGlmIHRoZSB2YWx1ZSBhdFxuICAgKiAgIHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIGZhbHNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXBVbmxlc3MgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXBVbmxlc3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAkcmEsICRmcFxuICAgKi9cbiAgUHVzaEZyYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICRyYSwgJGZwIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wRnJhbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTdGFydCB0cmFja2luZyBhIG5ldyBvdXRwdXQgYmxvY2sgdGhhdCBjb3VsZCBjaGFuZ2VcbiAgICogICBpZiBvbmUgb2YgaXRzIGlucHV0cyBjaGFuZ2VzLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEVudGVyIGFyZ3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgU29vbiBhZnRlciB0aGlzIG9wY29kZSwgb25lIG9mIEp1bXAsIEp1bXBJZixcbiAgICogICBvciBKdW1wVW5sZXNzIHdpbGwgcHJvZHVjZSBhbiB1cGRhdGluZyBhc3NlcnRpb24uXG4gICAqICAgSWYgdGhhdCBhc3NlcnRpb24gZmFpbHMsIHRoZSBhcHBlbmRpbmcgVk0gd2lsbFxuICAgKiAgIGJlIHJlLWVudGVyZWQsIGFuZCB0aGUgaW5zdHJ1Y3Rpb25zIGZyb20gYGZyb21gXG4gICAqICAgdG8gYHRvYCB3aWxsIGJlIGV4ZWN1dGVkLlxuICAgKlxuICAgKiAgIFRPRE86IFNhdmUgYW5kIHJlc3RvcmUuXG4gICAqL1xuICBFbnRlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEZpbmlzaCB0cmFja2luZyB0aGUgY3VycmVudCBibG9jay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFeGl0KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBmaW5hbGl6ZXMgdGhlIHZhbGlkYXRvcnMgdGhhdCB0aGUgdXBkYXRpbmdcbiAgICogICBibG9jayBtdXN0IGNoZWNrIHRvIGRldGVybWluZSB3aGV0aGVyIGl0J3Mgc2FmZSB0b1xuICAgKiAgIHNraXAgcnVubmluZyB0aGUgY29udGVudHMuXG4gICAqL1xuICBFeGl0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbnZlcnQgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaW50byBhIGJvb2xlYW4gcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFRvQm9vbGVhbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8Ym9vbD5cbiAgICovXG4gIFRvQm9vbGVhbixcblxuICAvLy8gTElTVFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFbnRlciBhIGxpc3QuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRW50ZXJMaXN0IGFkZHJlc3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgSXRlcmF0b3Ig4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBFbnRlckxpc3QsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRXhpdCB0aGUgY3VycmVudCBsaXN0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEV4aXRMaXN0KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEV4aXRMaXN0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgQ29udmVydCBhbiBvcGVyYW5kIGFuZCBrZXkgaW50byBhbiBpdGVyYXRvciBhbmRcbiAgICogICBwcmVzZW5jZSByZWZlcmVuY2UuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHV0SXRlcmF0b3IpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBrZXk6c3RyaW5nLCBsaXN0OlZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uLCBpdGVyYXRvcjpSZWZlcmVuY2VJdGVyYXRvciwgcHJlc2VudDpQcmVzZW5jZVJlZmVyZW5jZVxuICAgKi9cbiAgUHV0SXRlcmF0b3IsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTZXQgdXAgdGhlIHN0YWNrIGZvciBpdGVyYXRpbmcgZm9yIGEgZ2l2ZW4ga2V5LFxuICAgKiAgIG9yIGp1bXAgdG8gYGVuZGAgaWYgdGhlcmUgaXMgbm90aGluZyBsZWZ0IHRvXG4gICAqICAgaXRlcmF0ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJdGVyYXRlIGVuZDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgRm9ybSAxOiAoc29tZXRoaW5nIHRvIGl0ZXJhdGUpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgc3RyaW5nXG4gICAqICAgRm9ybSAyOiAobm90aGluZyBsZWZ0IHRvIGl0ZXJhdGUpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBJbiBGb3JtIDEsIHRoZSBzdGFjayB3aWxsIGhhdmUgKGluIHJldmVyc2Ugb3JkZXIpOlxuICAgKlxuICAgKiAgIC0gdGhlIGtleSwgYXMgYSBzdHJpbmdcbiAgICogICAtIHRoZSBjdXJyZW50IGl0ZXJhdGVkIHZhbHVlXG4gICAqICAgLSB0aGUgbWVtb2l6ZWQgaXRlcmF0ZWQgdmFsdWVcbiAgICovXG4gIEl0ZXJhdGUsXG5cbiAgLy8vIENPTVBPTkVOVFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBUZXN0IHdoZXRoZXIgYSByZWZlcmVuY2UgY29udGFpbnMgYSBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJc0NvbXBvbmVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8Ym9vbGVhbj5cbiAgICovXG4gIElzQ29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEN1cnJ5IGEgY29tcG9uZW50IGRlZmluaXRpb24gZm9yIGEgbGF0ZXIgaW52b2NhdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDdXJyeUNvbXBvbmVudCB0ZW1wbGF0ZU1ldGE6I1RlbXBsYXRlTWV0YSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIHsgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgVGVtcGxhdGVNZXRhLCBDYXB0dXJlZEFyZ3VtZW50cyB9XG4gICAqL1xuICBDdXJyeUNvbXBvbmVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGFuIGFwcHJvcHJpYXRlIGNvbXBvbmVudCBtYW5hZ2VyIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hDb21wb25lbnRNYW5hZ2VyICNDb21wb25lbnRTcGVjKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIHsgQ29tcG9uZW50RGVmaW5pdGlvbiwgQ29tcG9uZW50TWFuYWdlciB9XG4gICAqL1xuICBQdXNoQ29tcG9uZW50RGVmaW5pdGlvbixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gYXBwcm9wcmlhdGUgY29tcG9uZW50IG1hbmFnZXIgb250byB0aGUgc3RhY2sgZnJvbVxuICAgKiAgIGEgcnVudGltZS1yZXNvbHZlZCBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoRHluYW1pY0NvbXBvbmVudE1hbmFnZXIgdGVtcGxhdGVNZXRhOiNUZW1wbGF0ZU1ldGEpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE9wYXF1ZT4g4oaSXG4gICAqICAgLi4uLCB7IENvbXBvbmVudERlZmluaXRpb24sIENvbXBvbmVudE1hbmFnZXIgfVxuICAgKi9cbiAgUHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSB1c2VyIHJlcHJlc2VudGF0aW9uIG9mIGFyZ3Mgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEFyZ3MgbmFtZXM6I0FycmF5PCNzdHJpbmc+IHBvc2l0aW9uYWxDb3VudDp1MzIgc3ludGhldGljOiNib29sZWFuKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSAg4oaSXG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHNcbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBhcmd1bWVudHMgb2JqZWN0IGlzIG9ubHkgbmVjZXNzYXJ5IHdoZW4gY2FsbGluZyBpbnRvXG4gICAqICAgdXNlci1zcGVjaWZpZWQgaG9va3MuIEl0IGlzIG1lYW50IHRvIGJlIGltcGxlbWVudGVkIGFzIGFcbiAgICogICB0cmFuc2llbnQgcHJveHkgdGhhdCByZWFkcyBpbnRvIHRoZSBzdGFjayBhcyBuZWVkZWQuXG4gICAqICAgSG9sZGluZyBvbnRvIHRoZSBBcmd1bWVudHMgYWZ0ZXIgdGhlIGNhbGwgaGFzIGNvbXBsZXRlZCBpc1xuICAgKiAgIGlsbGVnYWwuXG4gICAqL1xuICBQdXNoQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3BzIEFyZ3VtZW50cyBmcm9tIHRoZSBzdGFjayBhbmQgY2xlYXJzIHRoZSBuZXh0IE4gYXJncy5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3BBcmdzKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzICDihpJcbiAgICogICAuLi5cbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqIFRoZSBhcmd1bWVudHMgb2JqZWN0IGNvbnRhaW5zIHRoZSBpbmZvcm1hdGlvbiBvZiBob3cgbWFueSB1c2VyXG4gICAqIHN1cHBsaWVkIGFyZ3MgdGhlIGNvbXBvbmVudCB3YXMgaW52b2tlZCB3aXRoLiBUbyBjbGVhciB0aGVtIGZyb21cbiAgICogdGhlIHN0YWNrIHdlIG11c3QgcG9wIGl0IGZyb20gdGhlIHN0YWNrIGFuZCBjYWxsIGBjbGVhcmAgb24gaXRcbiAgICogdG8gcmVtb3ZlIHRoZSBhcmd1bWVudCB2YWx1ZXMgZnJvbSB0aGUgc3RhY2suXG4gICAqL1xuICBQb3BBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IC4uLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByZXBhcmVBcmdzIHN0YXRlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQcmVwYXJlQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDcmVhdGUgdGhlIGNvbXBvbmVudCBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDcmVhdGVDb21wb25lbnQgZmxhZ3M6dTMyIHN0YXRlOnUzMilcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIEZsYWdzOlxuICAgKlxuICAgKiAgICogMGIwMDE6IEhhcyBhIGRlZmF1bHQgYmxvY2tcbiAgICogICAqIDBiMDEwOiBIYXMgYW4gaW52ZXJzZSBibG9ja1xuICAgKi9cbiAgQ3JlYXRlQ29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJlZ2lzdGVyIGEgZGVzdHJ1Y3RvciBmb3IgdGhlIGN1cnJlbnQgY29tcG9uZW50XG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmVnaXN0ZXJDb21wb25lbnREZXN0cnVjdG9yIHN0YXRlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3IsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIG5ldyBFbGVtZW50T3BlcmF0aW9ucyBmb3IgdGhlIGN1cnJlbnQgY29tcG9uZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1dENvbXBvbmVudE9wZXJhdGlvbnMpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUHV0Q29tcG9uZW50T3BlcmF0aW9ucyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50U2VsZiBzdGF0ZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50U2VsZixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50VGFnTmFtZSBzdGF0ZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgT3B0aW9uPHN0cmluZz5cbiAgICovXG4gIEdldENvbXBvbmVudFRhZ05hbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogR2V0IHRoZSBjb21wb25lbnQgbGF5b3V0IGZyb20gdGhlIG1hbmFnZXIuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50TGF5b3V0IHN0YXRlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBQcm9ncmFtU3ltYm9sVGFibGUsIEhhbmRsZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSB0aGUgbGF5b3V0IHJldHVybmVkIGJ5IHRoZSBtYW5hZ2VyLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZUNvbXBvbmVudExheW91dClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByb2dyYW1TeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlQ29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEJlZ2luIGEgbmV3IGNhY2hlIGdyb3VwXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQmVnaW5Db21wb25lbnRUcmFuc2FjdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIENvbXBvbmVudE1hbmFnZXI8VD4sIFQg4oaSXG4gICAqICAgLi4uLCBDb21wb25lbnRNYW5hZ2VyPFQ+LCBUXG4gICAqL1xuICBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbW1pdCB0aGUgY3VycmVudCBjYWNoZSBncm91cFxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRDcmVhdGVFbGVtZW50IG9uIHRoZSBjdXJyZW50IGNvbXBvbmVudCBtYW5hZ2VyXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRGlkQ3JlYXRlRWxlbWVudCBzdGF0ZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRGlkQ3JlYXRlRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBJbnZva2UgZGlkUmVuZGVyTGF5b3V0IG9uIHRoZSBjdXJyZW50IGNvbXBvbmVudCBtYW5hZ2VyXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRGlkUmVuZGVyTGF5b3V0IHN0YXRlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRGlkUmVuZGVyTGF5b3V0LFxuXG4gIC8vLyBQQVJUSUFMU1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvb2t1cCBhbmQgaW52b2tlIGEgcGFydGlhbCB0ZW1wbGF0ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VQYXJ0aWFsIHRlbXBsYXRlTWV0YTojVGVtcGxhdGVNZXRhIHN5bWJvbHM6I0FycmF5PCNzdHJpbmc+IGV2YWxJbmZvOiNBcnJheTxudW1iZXI+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxzdHJpbmc+IOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlUGFydGlhbCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFJlc29sdmUge3tmb299fSBpbnNpZGUgYSBwYXJ0aWFsLCB3aGljaCBjb3VsZCBiZSBlaXRoZXIgYSBzZWxmLWxvb2t1cFxuICAgKiAgIG9yIGEgbG9jYWwgdmFyaWFibGUgdGhhdCBpcyBpbi1zY29wZSBmb3IgdGhlIGNhbGxlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZXNvbHZlTWF5YmVMb2NhbCBsb2NhbDojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIFJlc29sdmVNYXliZUxvY2FsLFxuXG4gIC8vLyBERUJVR0dFUlxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFjdGl2YXRlIHRoZSBkZWJ1Z2dlclxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKERlYnVnZ2VyIHN5bWJvbHM6I0FycmF5PHN0cmluZz4gZXZhbEluZm86I0FycmF5PG51bWJlcj4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRGVidWdnZXIsXG5cbiAgLyoqIFRoZSBzaXplIG9mIHRoZSBvcGNvZGUgbGlzdCAqL1xuICBTaXplXG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZtL2xpYi9vcGNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBPcCB7XG4gIC8qXG4gICAgRG9jdW1lbnRhdGlvbiBUT0RPOlxuXG4gICAgRG9jdW1lbnQgdGhlIGxvY2FsIHZhcmlhYmxlIGxheW91dCBpbiB0aGUgc3RhY2tcbiAgICBkaWFncmFtIGJlZm9yZS1hbmQtYWZ0ZXIuXG5cbiAgICBEb2N1bWVudCB1cGRhdGluZyBvcGNvZGVzIGVtaXR0aW5nIGZyb20gdW5yZWFjaGFibGVcbiAgICBhcHBlbmQgb3Bjb2RlLlxuXG4gICAgRG9jdW1lbnQgdGhlIGVsZW1lbnQgc3RhY2ssIGJsb2NrIHN0YWNrIGFuZCBMaXN0XG4gICAgYmxvY2sgc3RhY2suXG4gICAqL1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wY29kZSBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC5cbiAgICovXG4gIEJ1ZyxcblxuICAvLy8gRVhQUkVTU0lPTlNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSBhIEhlbHBlci5cbiAgICogRm9ybWF0OlxuICAgKiAgIChIZWxwZXIgaGVscGVyOiNGdW5jdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIEhlbHBlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIHZhcmlhYmxlIHJlcHJlc2VudGVkIGJ5IGEgc3ltYm9sIGZyb21cbiAgICogICB0aGUgdmFsdWUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoU2V0VmFyaWFibGUgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIGJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFNldEJsb2NrIHN5bWJvbDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIHRoZSBjb250ZW50cyBvZiB0aGUgdmFyaWFibGUgcmVwcmVzZW50ZWQgYnlcbiAgICogICBhIHN5bWJvbCAoYSBwb3NpdGlvbmFsIG9yIG5hbWVkIGFyZ3VtZW50KSBvbnRvXG4gICAqICAgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2wgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZVxuICAgKiAgIHN0YWNrLCBhbmQgcHVzaCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgY29uc3RydWN0ZWRcbiAgICogICBieSBgLmdldChwcm9wZXJ0eSlgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldFByb3BlcnR5IHByb3BlcnR5OiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0UHJvcGVydHksXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgc3BlY2lmaWVkIGJvdW5kIGJsb2NrIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldEJsb2NrIGJsb2NrOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBJbmxpbmVCbG9ja1xuICAgKi9cbiAgR2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIFRSVUUgb250byB0aGUgc3RhY2sgaWYgdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiAgIGlzIGJvdW5kIGFuZCBGQUxTRSBpZiBpdCBpcyBub3QuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2sgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIGJvb2xlYW5cbiAgICovXG4gIEhhc0Jsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaCBUUlVFIG9udG8gdGhlIHN0YWNrIGlmIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICogICBpcyBib3VuZCAqYW5kKiBoYXMgYXQgbGVhc3Qgb25lIHNwZWNpZmllZCBmb3JtYWxcbiAgICogICBwYXJhbWV0ZXIsIGFuZCBGQUxTRSBvdGhlcndpc2UuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2tQYXJhbXMgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgKGJvb2xlYW4pXG4gICAqL1xuICBIYXNCbG9ja1BhcmFtcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBjb3VudCBgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZWBzIG9mZiB0aGUgc3RhY2sgYW5kXG4gICAqICAgY29uc3RydWN0IGEgbmV3IENvbmNhdFJlZmVyZW5jZSBmcm9tIHRoZW0gKGluIHJldmVyc2VcbiAgICogICBvcmRlcikuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29uY2F0IGNvdW50OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uLCBDb25jYXRSZWZlcmVuY2VcbiAgICovXG4gIENvbmNhdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gT2JqZWN0IGNvbnN0YW50IG9udG8gdGhlIHN0YWNrIHRoYXQgaXMgbm90XG4gICAqICAgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29uc3RhbnQgY29uc3RhbnQ6I09iamVjdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcGFxdWVcbiAgICovXG4gIENvbnN0YW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgV3JhcCBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIGluIGEgcmVmZXJlbmNlIGFuZCBwdXNoIGl0XG4gICAqICAgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFByaW1pdGl2ZSBjb25zdGFudDojUHJpbWl0aXZlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFByaW1pdGl2ZVxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGUgdHdvIGhpZ2ggYml0cyBvZiB0aGUgY29uc3RhbnQgcmVmZXJlbmNlIGRlc2NyaWJlXG4gICAqICAgdGhlIGtpbmQgb2YgcHJpbWl0aXZlOlxuICAgKlxuICAgKiAgIDAwOiBudW1iZXJcbiAgICogICAwMTogc3RyaW5nXG4gICAqICAgMTA6IHRydWUgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWRcbiAgICovXG4gIFByaW1pdGl2ZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBwcmltaXRpdmUgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByaW1pdGl2ZVJlZmVyZW5jZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByaW1pdGl2ZSDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8UHJpbWl0aXZlPlxuICAgKi9cbiAgUHJpbWl0aXZlUmVmZXJlbmNlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IER1cGxpY2F0ZSBhbmQgcHVzaCBpdGVtIGZyb20gYW4gb2Zmc2V0IGluIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEdXAgcmVnaXN0ZXI6dTMyLCBvZmZzZXQ6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlLCBPcGFxdWVcbiAgICovXG4gIER1cCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3AgTiBpdGVtcyBvZmYgdGhlIHN0YWNrIGFuZCB0aHJvdyBhd2F5IHRoZSB2YWx1ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3ApXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBPcGFxdWUsIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvYWQgYSB2YWx1ZSBpbnRvIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChMb2FkIHJlZ2lzdGVyOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIExvYWQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRmV0Y2ggYSB2YWx1ZSBmcm9tIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChGZXRjaCByZWdpc3Rlcjp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlXG4gICAqL1xuICBGZXRjaCxcblxuICAvLy8gUFJFTFVERSAmIEVYSVRcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IHJvb3Qgc2NvcGUgb250byB0aGUgc2NvcGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUm9vdFNjb3BlIHN5bWJvbHM6dTMyIGJpbmRDYWxsZXJTY29wZTpib29sKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgQSByb290IHNjb3BlIGhhcyBubyBwYXJlbnQgc2NvcGUsIGFuZCB0aGVyZWZvcmUgaW5oZXJpdHMgbm8gbGV4aWNhbFxuICAgKiAgIHZhcmlhYmxlcy4gSWYgYGJpbmRDYWxsZXJTY29wZWAgaXMgYHRydWVgLCB0aGUgY3VycmVudCBzY29wZSByZW1lbWJlcnNcbiAgICogICB0aGUgY2FsbGVyIHNjb3BlIChmb3IgeWllbGRpbmcgYmxvY2tzKS5cbiAgICovXG4gIFJvb3RTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IGNoaWxkIHNjb3BlIG9udG8gdGhlIHNjb3BlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENoaWxkU2NvcGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBBIGNoaWxkIHNjb3BlIGluaGVyaXRzIGZyb20gdGhlIGN1cnJlbnQgcGFyZW50IHNjb3BlLCBhbmQgdGhlcmVmb3JlXG4gICAqICAgc2hhcmVzIGl0cyBsZXhpY2FsIHZhcmlhYmxlcy5cbiAgICovXG4gIENoaWxkU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wIHRoZSBjdXJyZW50IHNjb3BlIGZyb20gdGhlIHNjb3BlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcFNjb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcFNjb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJldHVybiB0byB0aGUgcHJldmlvdXMgZnJhbWUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmV0dXJuKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgYWRkcmVzczpudW1iZXIg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZXR1cm4sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmV0dXJuIHRvIGEgcGxhY2UgaW4gdGhlIHByb2dyYW0gZ2l2ZW4gYW4gb2Zmc2V0XG4gICAqIEZvcm1hdDpcbiAgICogIChSZXR1cm5UbyBvZmZzZXQ6aTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICAuLi4g4oaSXG4gICAqL1xuICBSZXR1cm5UbyxcblxuICAvLy8gSFRNTFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBhIFRleHQgbm9kZSB3aXRoIHZhbHVlIGBjb250ZW50c2BcbiAgICogRm9ybWF0OlxuICAgKiAgIChUZXh0IGNvbnRlbnRzOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgVGV4dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgYSBDb21tZW50IG5vZGUgd2l0aCB2YWx1ZSBgY29udGVudHNgXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tbWVudCBjb250ZW50czojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIGEgRHluYW1pYyBub2RlIGJhc2VkIG9uIC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQ29udGVudCBpc1RydXN0aW5nOmJvb2xlYW4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRHluYW1pY0NvbnRlbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50IHRhZzojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgIHdpdGggc3BlY2lhbCBvcGVyYXRpb25zIHByb3ZpZGVkXG4gICAqICAgb24gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50V2l0aE9wZXJhdGlvbnMgdGFnOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBFbGVtZW50T3BlcmF0aW9ucyDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50V2l0aE9wZXJhdGlvbnMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBPcGVuIGEgbmV3IEVsZW1lbnQgd2l0aCBhIG5hbWUgb24gdGhlIHN0YWNrIGFuZCB3aXRoIHNwZWNpYWxcbiAgICogICBvcGVyYXRpb25zIHByb3ZpZGVkIG9uIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChPcGVuRHluYW1pY0VsZW1lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBzdHJpbmcsIEVsZW1lbnRPcGVyYXRpb25zIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgT3BlbkR5bmFtaWNFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgRWxlbWVudC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChTdGF0aWNBdHRyIG5hbWU6I3N0cmluZyB2YWx1ZTojc3RyaW5nIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU3RhdGljQXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgZWxlbWVudCB1c2luZyB0aGUgdmFsdWVcbiAgICogICBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQXR0ciBuYW1lOiNzdHJpbmcgdHJ1c3Rpbmc6Ym9vbGVhbiBuYW1lc3BhY2U6T3B0aW9uPCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgSWYgYHRydXN0aW5nYCBpcyBmYWxzZSwgdGhlIGhvc3QgbWF5IHNhbml0aXplIHRoZSBhdHRyaWJ1dGVcbiAgICogICBiYXNlZCB1cG9uIGtub3duIHJpc2tzLlxuICAgKi9cbiAgRHluYW1pY0F0dHIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBBZGQgYW4gYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IGVsZW1lbnQgdXNpbmcgdGhlIHZhbHVlXG4gICAqICAgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tcG9uZW50QXRyIG5hbWU6I3N0cmluZyB0cnVzdGluZzpib29sZWFuIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQ29tcG9uZW50QXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBGaW5pc2ggc2V0dGluZyBhdHRyaWJ1dGVzIG9uIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRmx1c2hFbGVtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEZsdXNoRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDbG9zZSB0aGUgY3VycmVudCBlbGVtZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENsb3NlRWxlbWVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBDbG9zZUVsZW1lbnQsXG5cbiAgLy8vIE1PRElGSUVSXG4gIE1vZGlmaWVyLCAgICAgICAgICAgICAgICAgIC8vIChDb25zdGFudFN0cmluZywgQ29uc3RhbnRPdGhlcjxNb2RpZmllck1hbmFnZXI+LCBDb25zdGFudEV4cHJlc3Npb24pXG5cbiAgLy8vIFdPUk1IT0xFXG4gIFB1c2hSZW1vdGVFbGVtZW50LCAgICAgICAgIC8vICgpXG4gIFBvcFJlbW90ZUVsZW1lbnQsICAgICAgICAgIC8vICgpXG5cbiAgLy8vIERZTkFNSUMgU0NPUEVcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBCaW5kIHN0YWNrIHZhbHVlcyBhcyBkeW5hbWljIHZhcmlhYmxlcy5cbiAgICogRm9ybWF0OlxuICAgKiAgIChCaW5kRHluYW1pY1Njb3BlIG5hbWVzOiNBcnJheTwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgaXMgdXNlZCB0byBleHBvc2UgYC13aXRoLWR5bmFtaWMtdmFyc2AsIGFuZCBpcyBhXG4gICAqICAgbmljaGUgZmVhdHVyZS5cbiAgICovXG4gIEJpbmREeW5hbWljU2NvcGUsXG5cbiAgUHVzaER5bmFtaWNTY29wZSwgICAgICAgICAgLy8gKClcbiAgUG9wRHluYW1pY1Njb3BlLCAgICAgICAgICAgLy8gKClcblxuICAvLy8gVk1cblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb21waWxlIHRoZSBJbmxpbmVCbG9jayBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDb21waWxlQmxvY2spXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBDb21waWxhYmxlQmxvY2sg4oaSXG4gICAqICAgLi4uLCBIYW5kbGVcbiAgICovXG4gIENvbXBpbGVCbG9jayxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgc2NvcGUgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEJsb2NrU2NvcGUgI1Njb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwg4oaSXG4gICAqICAgLi4uLCBTY29wZVxuICAgKi9cbiAgUHVzaEJsb2NrU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN5bWJvbCB0YWJsZSBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoU3ltYm9sVGFibGUgI1N5bWJvbFRhYmxlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwg4oaSXG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZVxuICAgKi9cbiAgUHVzaFN5bWJvbFRhYmxlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV2YWx1YXRlIHRoZSBoYW5kbGUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlVmlydHVhbClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIEhhbmRsZSwg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VWaXJ0dWFsLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV2YWx1YXRlIHRoZSBoYW5kbGUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlU3RhdGljIGhhbmRsZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlU3RhdGljLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFlpZWxkIHRvIGEgYmxvY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlWWllbGQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMsIFN5bWJvbFRhYmxlLCBIYW5kbGUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VZaWVsZCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXAgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXAsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0IGlmIHRoZSB2YWx1ZSBhdFxuICAgKiAgIHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIHRydWUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSnVtcElmIHRvOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBKdW1wSWYsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0IGlmIHRoZSB2YWx1ZSBhdFxuICAgKiAgIHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIGZhbHNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXBVbmxlc3MgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXBVbmxlc3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAkcmEsICRmcFxuICAgKi9cbiAgUHVzaEZyYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICRyYSwgJGZwIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wRnJhbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTdGFydCB0cmFja2luZyBhIG5ldyBvdXRwdXQgYmxvY2sgdGhhdCBjb3VsZCBjaGFuZ2VcbiAgICogICBpZiBvbmUgb2YgaXRzIGlucHV0cyBjaGFuZ2VzLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEVudGVyIGFyZ3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgU29vbiBhZnRlciB0aGlzIG9wY29kZSwgb25lIG9mIEp1bXAsIEp1bXBJZixcbiAgICogICBvciBKdW1wVW5sZXNzIHdpbGwgcHJvZHVjZSBhbiB1cGRhdGluZyBhc3NlcnRpb24uXG4gICAqICAgSWYgdGhhdCBhc3NlcnRpb24gZmFpbHMsIHRoZSBhcHBlbmRpbmcgVk0gd2lsbFxuICAgKiAgIGJlIHJlLWVudGVyZWQsIGFuZCB0aGUgaW5zdHJ1Y3Rpb25zIGZyb20gYGZyb21gXG4gICAqICAgdG8gYHRvYCB3aWxsIGJlIGV4ZWN1dGVkLlxuICAgKlxuICAgKiAgIFRPRE86IFNhdmUgYW5kIHJlc3RvcmUuXG4gICAqL1xuICBFbnRlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEZpbmlzaCB0cmFja2luZyB0aGUgY3VycmVudCBibG9jay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFeGl0KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBmaW5hbGl6ZXMgdGhlIHZhbGlkYXRvcnMgdGhhdCB0aGUgdXBkYXRpbmdcbiAgICogICBibG9jayBtdXN0IGNoZWNrIHRvIGRldGVybWluZSB3aGV0aGVyIGl0J3Mgc2FmZSB0b1xuICAgKiAgIHNraXAgcnVubmluZyB0aGUgY29udGVudHMuXG4gICAqL1xuICBFeGl0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbnZlcnQgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaW50byBhIGJvb2xlYW4gcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFRvQm9vbGVhbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8Ym9vbD5cbiAgICovXG4gIFRvQm9vbGVhbixcblxuICAvLy8gTElTVFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFbnRlciBhIGxpc3QuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRW50ZXJMaXN0IGFkZHJlc3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgSXRlcmF0b3Ig4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBFbnRlckxpc3QsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRXhpdCB0aGUgY3VycmVudCBsaXN0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEV4aXRMaXN0KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEV4aXRMaXN0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgQ29udmVydCBhbiBvcGVyYW5kIGFuZCBrZXkgaW50byBhbiBpdGVyYXRvciBhbmRcbiAgICogICBwcmVzZW5jZSByZWZlcmVuY2UuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHV0SXRlcmF0b3IpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBrZXk6c3RyaW5nLCBsaXN0OlZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uLCBpdGVyYXRvcjpSZWZlcmVuY2VJdGVyYXRvciwgcHJlc2VudDpQcmVzZW5jZVJlZmVyZW5jZVxuICAgKi9cbiAgUHV0SXRlcmF0b3IsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTZXQgdXAgdGhlIHN0YWNrIGZvciBpdGVyYXRpbmcgZm9yIGEgZ2l2ZW4ga2V5LFxuICAgKiAgIG9yIGp1bXAgdG8gYGVuZGAgaWYgdGhlcmUgaXMgbm90aGluZyBsZWZ0IHRvXG4gICAqICAgaXRlcmF0ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJdGVyYXRlIGVuZDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgRm9ybSAxOiAoc29tZXRoaW5nIHRvIGl0ZXJhdGUpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgc3RyaW5nXG4gICAqICAgRm9ybSAyOiAobm90aGluZyBsZWZ0IHRvIGl0ZXJhdGUpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBJbiBGb3JtIDEsIHRoZSBzdGFjayB3aWxsIGhhdmUgKGluIHJldmVyc2Ugb3JkZXIpOlxuICAgKlxuICAgKiAgIC0gdGhlIGtleSwgYXMgYSBzdHJpbmdcbiAgICogICAtIHRoZSBjdXJyZW50IGl0ZXJhdGVkIHZhbHVlXG4gICAqICAgLSB0aGUgbWVtb2l6ZWQgaXRlcmF0ZWQgdmFsdWVcbiAgICovXG4gIEl0ZXJhdGUsXG5cbiAgLy8vIENPTVBPTkVOVFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBUZXN0IHdoZXRoZXIgYSByZWZlcmVuY2UgY29udGFpbnMgYSBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChNYWluIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgSW52b2NhdGlvbiwgQ29tcG9uZW50RGVmaW5pdGlvbiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE1haW4sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogVGVzdCB3aGV0aGVyIGEgcmVmZXJlbmNlIGNvbnRhaW5zIGEgY29tcG9uZW50IGRlZmluaXRpb24uXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSXNDb21wb25lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE9wYXF1ZT4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPGJvb2xlYW4+XG4gICAqL1xuICBJc0NvbXBvbmVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDdXJyeSBhIGNvbXBvbmVudCBkZWZpbml0aW9uIGZvciBhIGxhdGVyIGludm9jYXRpb24uXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ3VycnlDb21wb25lbnQgdGVtcGxhdGVNZXRhOiNUZW1wbGF0ZU1ldGEpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMg4oaSXG4gICAqICAgLi4uLCB7IFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFRlbXBsYXRlTWV0YSwgQ2FwdHVyZWRBcmd1bWVudHMgfVxuICAgKi9cbiAgQ3VycnlDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhbiBhcHByb3ByaWF0ZSBjb21wb25lbnQgbWFuYWdlciBvbnRvIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29tcG9uZW50TWFuYWdlciAjQ29tcG9uZW50U3BlYylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCB7IENvbXBvbmVudERlZmluaXRpb24sIENvbXBvbmVudE1hbmFnZXIgfVxuICAgKi9cbiAgUHVzaENvbXBvbmVudERlZmluaXRpb24sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIGFuIGFwcHJvcHJpYXRlIGNvbXBvbmVudCBtYW5hZ2VyIG9udG8gdGhlIHN0YWNrIGZyb21cbiAgICogICBhIHJ1bnRpbWUtcmVzb2x2ZWQgY29tcG9uZW50IGRlZmluaXRpb24uXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyIHRlbXBsYXRlTWV0YTojVGVtcGxhdGVNZXRhKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgeyBDb21wb25lbnREZWZpbml0aW9uLCBDb21wb25lbnRNYW5hZ2VyIH1cbiAgICovXG4gIFB1c2hEeW5hbWljQ29tcG9uZW50TWFuYWdlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgdXNlciByZXByZXNlbnRhdGlvbiBvZiBhcmdzIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hBcmdzIG5hbWVzOiNBcnJheTwjc3RyaW5nPiBwb3NpdGlvbmFsQ291bnQ6dTMyIHN5bnRoZXRpYzojYm9vbGVhbilcbiAgICpcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0gIOKGklxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzXG4gICAqXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgYXJndW1lbnRzIG9iamVjdCBpcyBvbmx5IG5lY2Vzc2FyeSB3aGVuIGNhbGxpbmcgaW50b1xuICAgKiAgIHVzZXItc3BlY2lmaWVkIGhvb2tzLiBJdCBpcyBtZWFudCB0byBiZSBpbXBsZW1lbnRlZCBhcyBhXG4gICAqICAgdHJhbnNpZW50IHByb3h5IHRoYXQgcmVhZHMgaW50byB0aGUgc3RhY2sgYXMgbmVlZGVkLlxuICAgKiAgIEhvbGRpbmcgb250byB0aGUgQXJndW1lbnRzIGFmdGVyIHRoZSBjYWxsIGhhcyBjb21wbGV0ZWQgaXNcbiAgICogICBpbGxlZ2FsLlxuICAgKi9cbiAgUHVzaEFyZ3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wcyBBcmd1bWVudHMgZnJvbSB0aGUgc3RhY2sgYW5kIGNsZWFycyB0aGUgbmV4dCBOIGFyZ3MuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUG9wQXJncylcbiAgICpcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyAg4oaSXG4gICAqICAgLi4uXG4gICAqXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiBUaGUgYXJndW1lbnRzIG9iamVjdCBjb250YWlucyB0aGUgaW5mb3JtYXRpb24gb2YgaG93IG1hbnkgdXNlclxuICAgKiBzdXBwbGllZCBhcmdzIHRoZSBjb21wb25lbnQgd2FzIGludm9rZWQgd2l0aC4gVG8gY2xlYXIgdGhlbSBmcm9tXG4gICAqIHRoZSBzdGFjayB3ZSBtdXN0IHBvcCBpdCBmcm9tIHRoZSBzdGFjayBhbmQgY2FsbCBgY2xlYXJgIG9uIGl0XG4gICAqIHRvIHJlbW92ZSB0aGUgYXJndW1lbnQgdmFsdWVzIGZyb20gdGhlIHN0YWNrLlxuICAgKi9cbiAgUG9wQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiAuLi5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQcmVwYXJlQXJncyBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQcmVwYXJlQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDcmVhdGUgdGhlIGNvbXBvbmVudCBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDcmVhdGVDb21wb25lbnQgZmxhZ3M6dTMyIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgRmxhZ3M6XG4gICAqXG4gICAqICAgKiAwYjAwMTogSGFzIGEgZGVmYXVsdCBibG9ja1xuICAgKiAgICogMGIwMTA6IEhhcyBhbiBpbnZlcnNlIGJsb2NrXG4gICAqL1xuICBDcmVhdGVDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmVnaXN0ZXIgYSBkZXN0cnVjdG9yIGZvciB0aGUgY3VycmVudCBjb21wb25lbnRcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3Igc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUmVnaXN0ZXJDb21wb25lbnREZXN0cnVjdG9yLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBuZXcgRWxlbWVudE9wZXJhdGlvbnMgZm9yIHRoZSBjdXJyZW50IGNvbXBvbmVudC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXRDb21wb25lbnRPcGVyYXRpb25zKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFB1dENvbXBvbmVudE9wZXJhdGlvbnMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgY29tcG9uZW50J3MgYHNlbGZgIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldENvbXBvbmVudFNlbGYgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50U2VsZixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50VGFnTmFtZSBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcHRpb248c3RyaW5nPlxuICAgKi9cbiAgR2V0Q29tcG9uZW50VGFnTmFtZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBHZXQgdGhlIGNvbXBvbmVudCBsYXlvdXQgZnJvbSB0aGUgbWFuYWdlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChHZXRDb21wb25lbnRMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBIYW5kbGVcbiAgICovXG4gIEdldENvbXBvbmVudExheW91dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcHVsYXRlIHRoZSBzdGF0ZSByZWdpc3RlciB3aXRoIHRoZSBsYXlvdXQgY3VycmVudGx5XG4gICAqICAgb24gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcHVsYXRlTGF5b3V0IHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBIYW5kbGUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQb3B1bGF0ZUxheW91dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBJbnZva2UgdGhlIGxheW91dCByZXR1cm5lZCBieSB0aGUgbWFuYWdlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VDb21wb25lbnRMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlQ29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEJlZ2luIGEgbmV3IGNhY2hlIGdyb3VwXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQmVnaW5Db21wb25lbnRUcmFuc2FjdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIENvbXBvbmVudE1hbmFnZXI8VD4sIFQg4oaSXG4gICAqICAgLi4uLCBDb21wb25lbnRNYW5hZ2VyPFQ+LCBUXG4gICAqL1xuICBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbW1pdCB0aGUgY3VycmVudCBjYWNoZSBncm91cFxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRDcmVhdGVFbGVtZW50IG9uIHRoZSBjdXJyZW50IGNvbXBvbmVudCBtYW5hZ2VyXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRGlkQ3JlYXRlRWxlbWVudCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBEaWRDcmVhdGVFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRSZW5kZXJMYXlvdXQgb24gdGhlIGN1cnJlbnQgY29tcG9uZW50IG1hbmFnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEaWRSZW5kZXJMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERpZFJlbmRlckxheW91dCxcblxuICAvLy8gUEFSVElBTFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBMb29rdXAgYW5kIGludm9rZSBhIHBhcnRpYWwgdGVtcGxhdGUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlUGFydGlhbCB0ZW1wbGF0ZU1ldGE6I1RlbXBsYXRlTWV0YSBzeW1ib2xzOiNBcnJheTwjc3RyaW5nPiBldmFsSW5mbzojQXJyYXk8bnVtYmVyPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8c3RyaW5nPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVBhcnRpYWwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBSZXNvbHZlIHt7Zm9vfX0gaW5zaWRlIGEgcGFydGlhbCwgd2hpY2ggY291bGQgYmUgZWl0aGVyIGEgc2VsZi1sb29rdXBcbiAgICogICBvciBhIGxvY2FsIHZhcmlhYmxlIHRoYXQgaXMgaW4tc2NvcGUgZm9yIHRoZSBjYWxsZXIuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmVzb2x2ZU1heWJlTG9jYWwgbG9jYWw6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBSZXNvbHZlTWF5YmVMb2NhbCxcblxuICAvLy8gREVCVUdHRVJcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBY3RpdmF0ZSB0aGUgZGVidWdnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEZWJ1Z2dlciBzeW1ib2xzOiNBcnJheTxzdHJpbmc+IGV2YWxJbmZvOiNBcnJheTxudW1iZXI+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERlYnVnZ2VyLFxuXG4gIC8qKiBUaGUgc2l6ZSBvZiB0aGUgb3Bjb2RlIGxpc3QgKi9cbiAgU2l6ZVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZtL2xpYi9vcGNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBPcCB7XG4gIC8qXG4gICAgRG9jdW1lbnRhdGlvbiBUT0RPOlxuXG4gICAgRG9jdW1lbnQgdGhlIGxvY2FsIHZhcmlhYmxlIGxheW91dCBpbiB0aGUgc3RhY2tcbiAgICBkaWFncmFtIGJlZm9yZS1hbmQtYWZ0ZXIuXG5cbiAgICBEb2N1bWVudCB1cGRhdGluZyBvcGNvZGVzIGVtaXR0aW5nIGZyb20gdW5yZWFjaGFibGVcbiAgICBhcHBlbmQgb3Bjb2RlLlxuXG4gICAgRG9jdW1lbnQgdGhlIGVsZW1lbnQgc3RhY2ssIGJsb2NrIHN0YWNrIGFuZCBMaXN0XG4gICAgYmxvY2sgc3RhY2suXG4gICAqL1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wY29kZSBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC5cbiAgICovXG4gIEJ1ZyxcblxuICAvLy8gRVhQUkVTU0lPTlNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSBhIEhlbHBlci5cbiAgICogRm9ybWF0OlxuICAgKiAgIChIZWxwZXIgaGVscGVyOiNGdW5jdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIEhlbHBlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIHZhcmlhYmxlIHJlcHJlc2VudGVkIGJ5IGEgc3ltYm9sIGZyb21cbiAgICogICB0aGUgdmFsdWUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoU2V0VmFyaWFibGUgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIGJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFNldEJsb2NrIHN5bWJvbDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIHRoZSBjb250ZW50cyBvZiB0aGUgdmFyaWFibGUgcmVwcmVzZW50ZWQgYnlcbiAgICogICBhIHN5bWJvbCAoYSBwb3NpdGlvbmFsIG9yIG5hbWVkIGFyZ3VtZW50KSBvbnRvXG4gICAqICAgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2wgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZVxuICAgKiAgIHN0YWNrLCBhbmQgcHVzaCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgY29uc3RydWN0ZWRcbiAgICogICBieSBgLmdldChwcm9wZXJ0eSlgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldFByb3BlcnR5IHByb3BlcnR5OiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0UHJvcGVydHksXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgc3BlY2lmaWVkIGJvdW5kIGJsb2NrIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldEJsb2NrIGJsb2NrOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBJbmxpbmVCbG9ja1xuICAgKi9cbiAgR2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIFRSVUUgb250byB0aGUgc3RhY2sgaWYgdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiAgIGlzIGJvdW5kIGFuZCBGQUxTRSBpZiBpdCBpcyBub3QuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2sgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIGJvb2xlYW5cbiAgICovXG4gIEhhc0Jsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaCBUUlVFIG9udG8gdGhlIHN0YWNrIGlmIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICogICBpcyBib3VuZCAqYW5kKiBoYXMgYXQgbGVhc3Qgb25lIHNwZWNpZmllZCBmb3JtYWxcbiAgICogICBwYXJhbWV0ZXIsIGFuZCBGQUxTRSBvdGhlcndpc2UuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2tQYXJhbXMgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgKGJvb2xlYW4pXG4gICAqL1xuICBIYXNCbG9ja1BhcmFtcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBjb3VudCBgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZWBzIG9mZiB0aGUgc3RhY2sgYW5kXG4gICAqICAgY29uc3RydWN0IGEgbmV3IENvbmNhdFJlZmVyZW5jZSBmcm9tIHRoZW0gKGluIHJldmVyc2VcbiAgICogICBvcmRlcikuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29uY2F0IGNvdW50OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uLCBDb25jYXRSZWZlcmVuY2VcbiAgICovXG4gIENvbmNhdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gT2JqZWN0IGNvbnN0YW50IG9udG8gdGhlIHN0YWNrIHRoYXQgaXMgbm90XG4gICAqICAgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29uc3RhbnQgY29uc3RhbnQ6I09iamVjdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcGFxdWVcbiAgICovXG4gIENvbnN0YW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgV3JhcCBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIGluIGEgcmVmZXJlbmNlIGFuZCBwdXNoIGl0XG4gICAqICAgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFByaW1pdGl2ZSBjb25zdGFudDojUHJpbWl0aXZlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFByaW1pdGl2ZVxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGUgdHdvIGhpZ2ggYml0cyBvZiB0aGUgY29uc3RhbnQgcmVmZXJlbmNlIGRlc2NyaWJlXG4gICAqICAgdGhlIGtpbmQgb2YgcHJpbWl0aXZlOlxuICAgKlxuICAgKiAgIDAwOiBudW1iZXJcbiAgICogICAwMTogc3RyaW5nXG4gICAqICAgMTA6IHRydWUgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWRcbiAgICovXG4gIFByaW1pdGl2ZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBwcmltaXRpdmUgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByaW1pdGl2ZVJlZmVyZW5jZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByaW1pdGl2ZSDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8UHJpbWl0aXZlPlxuICAgKi9cbiAgUHJpbWl0aXZlUmVmZXJlbmNlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IER1cGxpY2F0ZSBhbmQgcHVzaCBpdGVtIGZyb20gYW4gb2Zmc2V0IGluIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEdXAgcmVnaXN0ZXI6dTMyLCBvZmZzZXQ6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlLCBPcGFxdWVcbiAgICovXG4gIER1cCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3AgTiBpdGVtcyBvZmYgdGhlIHN0YWNrIGFuZCB0aHJvdyBhd2F5IHRoZSB2YWx1ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3ApXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBPcGFxdWUsIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvYWQgYSB2YWx1ZSBpbnRvIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChMb2FkIHJlZ2lzdGVyOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIExvYWQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRmV0Y2ggYSB2YWx1ZSBmcm9tIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChGZXRjaCByZWdpc3Rlcjp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlXG4gICAqL1xuICBGZXRjaCxcblxuICAvLy8gUFJFTFVERSAmIEVYSVRcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IHJvb3Qgc2NvcGUgb250byB0aGUgc2NvcGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUm9vdFNjb3BlIHN5bWJvbHM6dTMyIGJpbmRDYWxsZXJTY29wZTpib29sKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgQSByb290IHNjb3BlIGhhcyBubyBwYXJlbnQgc2NvcGUsIGFuZCB0aGVyZWZvcmUgaW5oZXJpdHMgbm8gbGV4aWNhbFxuICAgKiAgIHZhcmlhYmxlcy4gSWYgYGJpbmRDYWxsZXJTY29wZWAgaXMgYHRydWVgLCB0aGUgY3VycmVudCBzY29wZSByZW1lbWJlcnNcbiAgICogICB0aGUgY2FsbGVyIHNjb3BlIChmb3IgeWllbGRpbmcgYmxvY2tzKS5cbiAgICovXG4gIFJvb3RTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IGNoaWxkIHNjb3BlIG9udG8gdGhlIHNjb3BlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENoaWxkU2NvcGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBBIGNoaWxkIHNjb3BlIGluaGVyaXRzIGZyb20gdGhlIGN1cnJlbnQgcGFyZW50IHNjb3BlLCBhbmQgdGhlcmVmb3JlXG4gICAqICAgc2hhcmVzIGl0cyBsZXhpY2FsIHZhcmlhYmxlcy5cbiAgICovXG4gIENoaWxkU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wIHRoZSBjdXJyZW50IHNjb3BlIGZyb20gdGhlIHNjb3BlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcFNjb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcFNjb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJldHVybiB0byB0aGUgcHJldmlvdXMgZnJhbWUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmV0dXJuKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgYWRkcmVzczpudW1iZXIg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZXR1cm4sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmV0dXJuIHRvIGEgcGxhY2UgaW4gdGhlIHByb2dyYW0gZ2l2ZW4gYW4gb2Zmc2V0XG4gICAqIEZvcm1hdDpcbiAgICogIChSZXR1cm5UbyBvZmZzZXQ6aTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICAuLi4g4oaSXG4gICAqL1xuICBSZXR1cm5UbyxcblxuICAvLy8gSFRNTFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBhIFRleHQgbm9kZSB3aXRoIHZhbHVlIGBjb250ZW50c2BcbiAgICogRm9ybWF0OlxuICAgKiAgIChUZXh0IGNvbnRlbnRzOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgVGV4dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgYSBDb21tZW50IG5vZGUgd2l0aCB2YWx1ZSBgY29udGVudHNgXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tbWVudCBjb250ZW50czojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIGEgRHluYW1pYyBub2RlIGJhc2VkIG9uIC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQ29udGVudCBpc1RydXN0aW5nOmJvb2xlYW4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRHluYW1pY0NvbnRlbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50IHRhZzojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgIHdpdGggc3BlY2lhbCBvcGVyYXRpb25zIHByb3ZpZGVkXG4gICAqICAgb24gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50V2l0aE9wZXJhdGlvbnMgdGFnOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBFbGVtZW50T3BlcmF0aW9ucyDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50V2l0aE9wZXJhdGlvbnMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBPcGVuIGEgbmV3IEVsZW1lbnQgd2l0aCBhIG5hbWUgb24gdGhlIHN0YWNrIGFuZCB3aXRoIHNwZWNpYWxcbiAgICogICBvcGVyYXRpb25zIHByb3ZpZGVkIG9uIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChPcGVuRHluYW1pY0VsZW1lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBzdHJpbmcsIEVsZW1lbnRPcGVyYXRpb25zIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgT3BlbkR5bmFtaWNFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgRWxlbWVudC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChTdGF0aWNBdHRyIG5hbWU6I3N0cmluZyB2YWx1ZTojc3RyaW5nIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU3RhdGljQXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgZWxlbWVudCB1c2luZyB0aGUgdmFsdWVcbiAgICogICBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQXR0ciBuYW1lOiNzdHJpbmcgdHJ1c3Rpbmc6Ym9vbGVhbiBuYW1lc3BhY2U6T3B0aW9uPCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgSWYgYHRydXN0aW5nYCBpcyBmYWxzZSwgdGhlIGhvc3QgbWF5IHNhbml0aXplIHRoZSBhdHRyaWJ1dGVcbiAgICogICBiYXNlZCB1cG9uIGtub3duIHJpc2tzLlxuICAgKi9cbiAgRHluYW1pY0F0dHIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBBZGQgYW4gYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IGVsZW1lbnQgdXNpbmcgdGhlIHZhbHVlXG4gICAqICAgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tcG9uZW50QXRyIG5hbWU6I3N0cmluZyB0cnVzdGluZzpib29sZWFuIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQ29tcG9uZW50QXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBGaW5pc2ggc2V0dGluZyBhdHRyaWJ1dGVzIG9uIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRmx1c2hFbGVtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEZsdXNoRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDbG9zZSB0aGUgY3VycmVudCBlbGVtZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENsb3NlRWxlbWVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBDbG9zZUVsZW1lbnQsXG5cbiAgLy8vIE1PRElGSUVSXG4gIE1vZGlmaWVyLCAgICAgICAgICAgICAgICAgIC8vIChDb25zdGFudFN0cmluZywgQ29uc3RhbnRPdGhlcjxNb2RpZmllck1hbmFnZXI+LCBDb25zdGFudEV4cHJlc3Npb24pXG5cbiAgLy8vIFdPUk1IT0xFXG4gIFB1c2hSZW1vdGVFbGVtZW50LCAgICAgICAgIC8vICgpXG4gIFBvcFJlbW90ZUVsZW1lbnQsICAgICAgICAgIC8vICgpXG5cbiAgLy8vIERZTkFNSUMgU0NPUEVcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBCaW5kIHN0YWNrIHZhbHVlcyBhcyBkeW5hbWljIHZhcmlhYmxlcy5cbiAgICogRm9ybWF0OlxuICAgKiAgIChCaW5kRHluYW1pY1Njb3BlIG5hbWVzOiNBcnJheTwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgaXMgdXNlZCB0byBleHBvc2UgYC13aXRoLWR5bmFtaWMtdmFyc2AsIGFuZCBpcyBhXG4gICAqICAgbmljaGUgZmVhdHVyZS5cbiAgICovXG4gIEJpbmREeW5hbWljU2NvcGUsXG5cbiAgUHVzaER5bmFtaWNTY29wZSwgICAgICAgICAgLy8gKClcbiAgUG9wRHluYW1pY1Njb3BlLCAgICAgICAgICAgLy8gKClcblxuICAvLy8gVk1cblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb21waWxlIHRoZSBJbmxpbmVCbG9jayBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDb21waWxlQmxvY2spXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBDb21waWxhYmxlQmxvY2sg4oaSXG4gICAqICAgLi4uLCBIYW5kbGVcbiAgICovXG4gIENvbXBpbGVCbG9jayxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgc2NvcGUgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEJsb2NrU2NvcGUgI1Njb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwg4oaSXG4gICAqICAgLi4uLCBTY29wZVxuICAgKi9cbiAgUHVzaEJsb2NrU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN5bWJvbCB0YWJsZSBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoU3ltYm9sVGFibGUgI1N5bWJvbFRhYmxlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwg4oaSXG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZVxuICAgKi9cbiAgUHVzaFN5bWJvbFRhYmxlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV2YWx1YXRlIHRoZSBoYW5kbGUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlVmlydHVhbClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIEhhbmRsZSwg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VWaXJ0dWFsLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV2YWx1YXRlIHRoZSBoYW5kbGUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlU3RhdGljIGhhbmRsZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlU3RhdGljLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFlpZWxkIHRvIGEgYmxvY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlWWllbGQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMsIFN5bWJvbFRhYmxlLCBIYW5kbGUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VZaWVsZCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXAgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXAsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0IGlmIHRoZSB2YWx1ZSBhdFxuICAgKiAgIHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIHRydWUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSnVtcElmIHRvOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBKdW1wSWYsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0IGlmIHRoZSB2YWx1ZSBhdFxuICAgKiAgIHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIGZhbHNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXBVbmxlc3MgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXBVbmxlc3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAkcmEsICRmcFxuICAgKi9cbiAgUHVzaEZyYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICRyYSwgJGZwIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wRnJhbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTdGFydCB0cmFja2luZyBhIG5ldyBvdXRwdXQgYmxvY2sgdGhhdCBjb3VsZCBjaGFuZ2VcbiAgICogICBpZiBvbmUgb2YgaXRzIGlucHV0cyBjaGFuZ2VzLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEVudGVyIGFyZ3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgU29vbiBhZnRlciB0aGlzIG9wY29kZSwgb25lIG9mIEp1bXAsIEp1bXBJZixcbiAgICogICBvciBKdW1wVW5sZXNzIHdpbGwgcHJvZHVjZSBhbiB1cGRhdGluZyBhc3NlcnRpb24uXG4gICAqICAgSWYgdGhhdCBhc3NlcnRpb24gZmFpbHMsIHRoZSBhcHBlbmRpbmcgVk0gd2lsbFxuICAgKiAgIGJlIHJlLWVudGVyZWQsIGFuZCB0aGUgaW5zdHJ1Y3Rpb25zIGZyb20gYGZyb21gXG4gICAqICAgdG8gYHRvYCB3aWxsIGJlIGV4ZWN1dGVkLlxuICAgKlxuICAgKiAgIFRPRE86IFNhdmUgYW5kIHJlc3RvcmUuXG4gICAqL1xuICBFbnRlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEZpbmlzaCB0cmFja2luZyB0aGUgY3VycmVudCBibG9jay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFeGl0KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBmaW5hbGl6ZXMgdGhlIHZhbGlkYXRvcnMgdGhhdCB0aGUgdXBkYXRpbmdcbiAgICogICBibG9jayBtdXN0IGNoZWNrIHRvIGRldGVybWluZSB3aGV0aGVyIGl0J3Mgc2FmZSB0b1xuICAgKiAgIHNraXAgcnVubmluZyB0aGUgY29udGVudHMuXG4gICAqL1xuICBFeGl0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbnZlcnQgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaW50byBhIGJvb2xlYW4gcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFRvQm9vbGVhbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8Ym9vbD5cbiAgICovXG4gIFRvQm9vbGVhbixcblxuICAvLy8gTElTVFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFbnRlciBhIGxpc3QuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRW50ZXJMaXN0IGFkZHJlc3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgSXRlcmF0b3Ig4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBFbnRlckxpc3QsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRXhpdCB0aGUgY3VycmVudCBsaXN0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEV4aXRMaXN0KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEV4aXRMaXN0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgQ29udmVydCBhbiBvcGVyYW5kIGFuZCBrZXkgaW50byBhbiBpdGVyYXRvciBhbmRcbiAgICogICBwcmVzZW5jZSByZWZlcmVuY2UuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHV0SXRlcmF0b3IpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBrZXk6c3RyaW5nLCBsaXN0OlZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uLCBpdGVyYXRvcjpSZWZlcmVuY2VJdGVyYXRvciwgcHJlc2VudDpQcmVzZW5jZVJlZmVyZW5jZVxuICAgKi9cbiAgUHV0SXRlcmF0b3IsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTZXQgdXAgdGhlIHN0YWNrIGZvciBpdGVyYXRpbmcgZm9yIGEgZ2l2ZW4ga2V5LFxuICAgKiAgIG9yIGp1bXAgdG8gYGVuZGAgaWYgdGhlcmUgaXMgbm90aGluZyBsZWZ0IHRvXG4gICAqICAgaXRlcmF0ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJdGVyYXRlIGVuZDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgRm9ybSAxOiAoc29tZXRoaW5nIHRvIGl0ZXJhdGUpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgc3RyaW5nXG4gICAqICAgRm9ybSAyOiAobm90aGluZyBsZWZ0IHRvIGl0ZXJhdGUpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBJbiBGb3JtIDEsIHRoZSBzdGFjayB3aWxsIGhhdmUgKGluIHJldmVyc2Ugb3JkZXIpOlxuICAgKlxuICAgKiAgIC0gdGhlIGtleSwgYXMgYSBzdHJpbmdcbiAgICogICAtIHRoZSBjdXJyZW50IGl0ZXJhdGVkIHZhbHVlXG4gICAqICAgLSB0aGUgbWVtb2l6ZWQgaXRlcmF0ZWQgdmFsdWVcbiAgICovXG4gIEl0ZXJhdGUsXG5cbiAgLy8vIENPTVBPTkVOVFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBUZXN0IHdoZXRoZXIgYSByZWZlcmVuY2UgY29udGFpbnMgYSBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJc0NvbXBvbmVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8Ym9vbGVhbj5cbiAgICovXG4gIElzQ29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEN1cnJ5IGEgY29tcG9uZW50IGRlZmluaXRpb24gZm9yIGEgbGF0ZXIgaW52b2NhdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDdXJyeUNvbXBvbmVudCB0ZW1wbGF0ZU1ldGE6I1RlbXBsYXRlTWV0YSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIHsgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgVGVtcGxhdGVNZXRhLCBDYXB0dXJlZEFyZ3VtZW50cyB9XG4gICAqL1xuICBDdXJyeUNvbXBvbmVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGFuIGFwcHJvcHJpYXRlIGNvbXBvbmVudCBtYW5hZ2VyIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hDb21wb25lbnRNYW5hZ2VyICNDb21wb25lbnRTcGVjKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIHsgQ29tcG9uZW50RGVmaW5pdGlvbiwgQ29tcG9uZW50TWFuYWdlciB9XG4gICAqL1xuICBQdXNoQ29tcG9uZW50RGVmaW5pdGlvbixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gYXBwcm9wcmlhdGUgY29tcG9uZW50IG1hbmFnZXIgb250byB0aGUgc3RhY2sgZnJvbVxuICAgKiAgIGEgcnVudGltZS1yZXNvbHZlZCBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoRHluYW1pY0NvbXBvbmVudE1hbmFnZXIgdGVtcGxhdGVNZXRhOiNUZW1wbGF0ZU1ldGEpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE9wYXF1ZT4g4oaSXG4gICAqICAgLi4uLCB7IENvbXBvbmVudERlZmluaXRpb24sIENvbXBvbmVudE1hbmFnZXIgfVxuICAgKi9cbiAgUHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSB1c2VyIHJlcHJlc2VudGF0aW9uIG9mIGFyZ3Mgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEFyZ3MgbmFtZXM6I0FycmF5PCNzdHJpbmc+IHBvc2l0aW9uYWxDb3VudDp1MzIgc3ludGhldGljOiNib29sZWFuKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSAg4oaSXG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHNcbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBhcmd1bWVudHMgb2JqZWN0IGlzIG9ubHkgbmVjZXNzYXJ5IHdoZW4gY2FsbGluZyBpbnRvXG4gICAqICAgdXNlci1zcGVjaWZpZWQgaG9va3MuIEl0IGlzIG1lYW50IHRvIGJlIGltcGxlbWVudGVkIGFzIGFcbiAgICogICB0cmFuc2llbnQgcHJveHkgdGhhdCByZWFkcyBpbnRvIHRoZSBzdGFjayBhcyBuZWVkZWQuXG4gICAqICAgSG9sZGluZyBvbnRvIHRoZSBBcmd1bWVudHMgYWZ0ZXIgdGhlIGNhbGwgaGFzIGNvbXBsZXRlZCBpc1xuICAgKiAgIGlsbGVnYWwuXG4gICAqL1xuICBQdXNoQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3BzIEFyZ3VtZW50cyBmcm9tIHRoZSBzdGFjayBhbmQgY2xlYXJzIHRoZSBuZXh0IE4gYXJncy5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3BBcmdzKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzICDihpJcbiAgICogICAuLi5cbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqIFRoZSBhcmd1bWVudHMgb2JqZWN0IGNvbnRhaW5zIHRoZSBpbmZvcm1hdGlvbiBvZiBob3cgbWFueSB1c2VyXG4gICAqIHN1cHBsaWVkIGFyZ3MgdGhlIGNvbXBvbmVudCB3YXMgaW52b2tlZCB3aXRoLiBUbyBjbGVhciB0aGVtIGZyb21cbiAgICogdGhlIHN0YWNrIHdlIG11c3QgcG9wIGl0IGZyb20gdGhlIHN0YWNrIGFuZCBjYWxsIGBjbGVhcmAgb24gaXRcbiAgICogdG8gcmVtb3ZlIHRoZSBhcmd1bWVudCB2YWx1ZXMgZnJvbSB0aGUgc3RhY2suXG4gICAqL1xuICBQb3BBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IC4uLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByZXBhcmVBcmdzIHN0YXRlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQcmVwYXJlQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDcmVhdGUgdGhlIGNvbXBvbmVudCBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDcmVhdGVDb21wb25lbnQgZmxhZ3M6dTMyIHN0YXRlOnUzMilcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIEZsYWdzOlxuICAgKlxuICAgKiAgICogMGIwMDE6IEhhcyBhIGRlZmF1bHQgYmxvY2tcbiAgICogICAqIDBiMDEwOiBIYXMgYW4gaW52ZXJzZSBibG9ja1xuICAgKi9cbiAgQ3JlYXRlQ29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJlZ2lzdGVyIGEgZGVzdHJ1Y3RvciBmb3IgdGhlIGN1cnJlbnQgY29tcG9uZW50XG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmVnaXN0ZXJDb21wb25lbnREZXN0cnVjdG9yIHN0YXRlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3IsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIG5ldyBFbGVtZW50T3BlcmF0aW9ucyBmb3IgdGhlIGN1cnJlbnQgY29tcG9uZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1dENvbXBvbmVudE9wZXJhdGlvbnMpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUHV0Q29tcG9uZW50T3BlcmF0aW9ucyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50U2VsZiBzdGF0ZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50U2VsZixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50VGFnTmFtZSBzdGF0ZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgT3B0aW9uPHN0cmluZz5cbiAgICovXG4gIEdldENvbXBvbmVudFRhZ05hbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogR2V0IHRoZSBjb21wb25lbnQgbGF5b3V0IGZyb20gdGhlIG1hbmFnZXIuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50TGF5b3V0IHN0YXRlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBQcm9ncmFtU3ltYm9sVGFibGUsIEhhbmRsZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSB0aGUgbGF5b3V0IHJldHVybmVkIGJ5IHRoZSBtYW5hZ2VyLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZUNvbXBvbmVudExheW91dClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByb2dyYW1TeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlQ29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEJlZ2luIGEgbmV3IGNhY2hlIGdyb3VwXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQmVnaW5Db21wb25lbnRUcmFuc2FjdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIENvbXBvbmVudE1hbmFnZXI8VD4sIFQg4oaSXG4gICAqICAgLi4uLCBDb21wb25lbnRNYW5hZ2VyPFQ+LCBUXG4gICAqL1xuICBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbW1pdCB0aGUgY3VycmVudCBjYWNoZSBncm91cFxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRDcmVhdGVFbGVtZW50IG9uIHRoZSBjdXJyZW50IGNvbXBvbmVudCBtYW5hZ2VyXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRGlkQ3JlYXRlRWxlbWVudCBzdGF0ZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRGlkQ3JlYXRlRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBJbnZva2UgZGlkUmVuZGVyTGF5b3V0IG9uIHRoZSBjdXJyZW50IGNvbXBvbmVudCBtYW5hZ2VyXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRGlkUmVuZGVyTGF5b3V0IHN0YXRlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRGlkUmVuZGVyTGF5b3V0LFxuXG4gIC8vLyBQQVJUSUFMU1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvb2t1cCBhbmQgaW52b2tlIGEgcGFydGlhbCB0ZW1wbGF0ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VQYXJ0aWFsIHRlbXBsYXRlTWV0YTojVGVtcGxhdGVNZXRhIHN5bWJvbHM6I0FycmF5PCNzdHJpbmc+IGV2YWxJbmZvOiNBcnJheTxudW1iZXI+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxzdHJpbmc+IOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlUGFydGlhbCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFJlc29sdmUge3tmb299fSBpbnNpZGUgYSBwYXJ0aWFsLCB3aGljaCBjb3VsZCBiZSBlaXRoZXIgYSBzZWxmLWxvb2t1cFxuICAgKiAgIG9yIGEgbG9jYWwgdmFyaWFibGUgdGhhdCBpcyBpbi1zY29wZSBmb3IgdGhlIGNhbGxlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZXNvbHZlTWF5YmVMb2NhbCBsb2NhbDojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIFJlc29sdmVNYXliZUxvY2FsLFxuXG4gIC8vLyBERUJVR0dFUlxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFjdGl2YXRlIHRoZSBkZWJ1Z2dlclxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKERlYnVnZ2VyIHN5bWJvbHM6I0FycmF5PHN0cmluZz4gZXZhbEluZm86I0FycmF5PG51bWJlcj4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRGVidWdnZXIsXG5cbiAgLyoqIFRoZSBzaXplIG9mIHRoZSBvcGNvZGUgbGlzdCAqL1xuICBTaXplXG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZtL2xpYi9vcGNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBPcCB7XG4gIC8qXG4gICAgRG9jdW1lbnRhdGlvbiBUT0RPOlxuXG4gICAgRG9jdW1lbnQgdGhlIGxvY2FsIHZhcmlhYmxlIGxheW91dCBpbiB0aGUgc3RhY2tcbiAgICBkaWFncmFtIGJlZm9yZS1hbmQtYWZ0ZXIuXG5cbiAgICBEb2N1bWVudCB1cGRhdGluZyBvcGNvZGVzIGVtaXR0aW5nIGZyb20gdW5yZWFjaGFibGVcbiAgICBhcHBlbmQgb3Bjb2RlLlxuXG4gICAgRG9jdW1lbnQgdGhlIGVsZW1lbnQgc3RhY2ssIGJsb2NrIHN0YWNrIGFuZCBMaXN0XG4gICAgYmxvY2sgc3RhY2suXG4gICAqL1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wY29kZSBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC5cbiAgICovXG4gIEJ1ZyxcblxuICAvLy8gRVhQUkVTU0lPTlNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSBhIEhlbHBlci5cbiAgICogRm9ybWF0OlxuICAgKiAgIChIZWxwZXIgaGVscGVyOiNGdW5jdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIEhlbHBlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIHZhcmlhYmxlIHJlcHJlc2VudGVkIGJ5IGEgc3ltYm9sIGZyb21cbiAgICogICB0aGUgdmFsdWUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoU2V0VmFyaWFibGUgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIGJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFNldEJsb2NrIHN5bWJvbDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIHRoZSBjb250ZW50cyBvZiB0aGUgdmFyaWFibGUgcmVwcmVzZW50ZWQgYnlcbiAgICogICBhIHN5bWJvbCAoYSBwb3NpdGlvbmFsIG9yIG5hbWVkIGFyZ3VtZW50KSBvbnRvXG4gICAqICAgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2wgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZVxuICAgKiAgIHN0YWNrLCBhbmQgcHVzaCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgY29uc3RydWN0ZWRcbiAgICogICBieSBgLmdldChwcm9wZXJ0eSlgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldFByb3BlcnR5IHByb3BlcnR5OiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0UHJvcGVydHksXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgc3BlY2lmaWVkIGJvdW5kIGJsb2NrIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldEJsb2NrIGJsb2NrOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBJbmxpbmVCbG9ja1xuICAgKi9cbiAgR2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIFRSVUUgb250byB0aGUgc3RhY2sgaWYgdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiAgIGlzIGJvdW5kIGFuZCBGQUxTRSBpZiBpdCBpcyBub3QuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2sgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIGJvb2xlYW5cbiAgICovXG4gIEhhc0Jsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaCBUUlVFIG9udG8gdGhlIHN0YWNrIGlmIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICogICBpcyBib3VuZCAqYW5kKiBoYXMgYXQgbGVhc3Qgb25lIHNwZWNpZmllZCBmb3JtYWxcbiAgICogICBwYXJhbWV0ZXIsIGFuZCBGQUxTRSBvdGhlcndpc2UuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2tQYXJhbXMgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgKGJvb2xlYW4pXG4gICAqL1xuICBIYXNCbG9ja1BhcmFtcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBjb3VudCBgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZWBzIG9mZiB0aGUgc3RhY2sgYW5kXG4gICAqICAgY29uc3RydWN0IGEgbmV3IENvbmNhdFJlZmVyZW5jZSBmcm9tIHRoZW0gKGluIHJldmVyc2VcbiAgICogICBvcmRlcikuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29uY2F0IGNvdW50OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uLCBDb25jYXRSZWZlcmVuY2VcbiAgICovXG4gIENvbmNhdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gT2JqZWN0IGNvbnN0YW50IG9udG8gdGhlIHN0YWNrIHRoYXQgaXMgbm90XG4gICAqICAgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29uc3RhbnQgY29uc3RhbnQ6I09iamVjdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcGFxdWVcbiAgICovXG4gIENvbnN0YW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgV3JhcCBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIGluIGEgcmVmZXJlbmNlIGFuZCBwdXNoIGl0XG4gICAqICAgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFByaW1pdGl2ZSBjb25zdGFudDojUHJpbWl0aXZlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFByaW1pdGl2ZVxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGUgdHdvIGhpZ2ggYml0cyBvZiB0aGUgY29uc3RhbnQgcmVmZXJlbmNlIGRlc2NyaWJlXG4gICAqICAgdGhlIGtpbmQgb2YgcHJpbWl0aXZlOlxuICAgKlxuICAgKiAgIDAwOiBudW1iZXJcbiAgICogICAwMTogc3RyaW5nXG4gICAqICAgMTA6IHRydWUgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWRcbiAgICovXG4gIFByaW1pdGl2ZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBwcmltaXRpdmUgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByaW1pdGl2ZVJlZmVyZW5jZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByaW1pdGl2ZSDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8UHJpbWl0aXZlPlxuICAgKi9cbiAgUHJpbWl0aXZlUmVmZXJlbmNlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IER1cGxpY2F0ZSBhbmQgcHVzaCBpdGVtIGZyb20gYW4gb2Zmc2V0IGluIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEdXAgcmVnaXN0ZXI6dTMyLCBvZmZzZXQ6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlLCBPcGFxdWVcbiAgICovXG4gIER1cCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3AgTiBpdGVtcyBvZmYgdGhlIHN0YWNrIGFuZCB0aHJvdyBhd2F5IHRoZSB2YWx1ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3ApXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBPcGFxdWUsIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvYWQgYSB2YWx1ZSBpbnRvIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChMb2FkIHJlZ2lzdGVyOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIExvYWQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRmV0Y2ggYSB2YWx1ZSBmcm9tIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChGZXRjaCByZWdpc3Rlcjp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlXG4gICAqL1xuICBGZXRjaCxcblxuICAvLy8gUFJFTFVERSAmIEVYSVRcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IHJvb3Qgc2NvcGUgb250byB0aGUgc2NvcGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUm9vdFNjb3BlIHN5bWJvbHM6dTMyIGJpbmRDYWxsZXJTY29wZTpib29sKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgQSByb290IHNjb3BlIGhhcyBubyBwYXJlbnQgc2NvcGUsIGFuZCB0aGVyZWZvcmUgaW5oZXJpdHMgbm8gbGV4aWNhbFxuICAgKiAgIHZhcmlhYmxlcy4gSWYgYGJpbmRDYWxsZXJTY29wZWAgaXMgYHRydWVgLCB0aGUgY3VycmVudCBzY29wZSByZW1lbWJlcnNcbiAgICogICB0aGUgY2FsbGVyIHNjb3BlIChmb3IgeWllbGRpbmcgYmxvY2tzKS5cbiAgICovXG4gIFJvb3RTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IGNoaWxkIHNjb3BlIG9udG8gdGhlIHNjb3BlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENoaWxkU2NvcGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBBIGNoaWxkIHNjb3BlIGluaGVyaXRzIGZyb20gdGhlIGN1cnJlbnQgcGFyZW50IHNjb3BlLCBhbmQgdGhlcmVmb3JlXG4gICAqICAgc2hhcmVzIGl0cyBsZXhpY2FsIHZhcmlhYmxlcy5cbiAgICovXG4gIENoaWxkU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wIHRoZSBjdXJyZW50IHNjb3BlIGZyb20gdGhlIHNjb3BlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcFNjb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcFNjb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJldHVybiB0byB0aGUgcHJldmlvdXMgZnJhbWUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmV0dXJuKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgYWRkcmVzczpudW1iZXIg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZXR1cm4sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmV0dXJuIHRvIGEgcGxhY2UgaW4gdGhlIHByb2dyYW0gZ2l2ZW4gYW4gb2Zmc2V0XG4gICAqIEZvcm1hdDpcbiAgICogIChSZXR1cm5UbyBvZmZzZXQ6aTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICAuLi4g4oaSXG4gICAqL1xuICBSZXR1cm5UbyxcblxuICAvLy8gSFRNTFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBhIFRleHQgbm9kZSB3aXRoIHZhbHVlIGBjb250ZW50c2BcbiAgICogRm9ybWF0OlxuICAgKiAgIChUZXh0IGNvbnRlbnRzOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgVGV4dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgYSBDb21tZW50IG5vZGUgd2l0aCB2YWx1ZSBgY29udGVudHNgXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tbWVudCBjb250ZW50czojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIGEgRHluYW1pYyBub2RlIGJhc2VkIG9uIC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQ29udGVudCBpc1RydXN0aW5nOmJvb2xlYW4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRHluYW1pY0NvbnRlbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50IHRhZzojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgIHdpdGggc3BlY2lhbCBvcGVyYXRpb25zIHByb3ZpZGVkXG4gICAqICAgb24gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50V2l0aE9wZXJhdGlvbnMgdGFnOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBFbGVtZW50T3BlcmF0aW9ucyDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50V2l0aE9wZXJhdGlvbnMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBPcGVuIGEgbmV3IEVsZW1lbnQgd2l0aCBhIG5hbWUgb24gdGhlIHN0YWNrIGFuZCB3aXRoIHNwZWNpYWxcbiAgICogICBvcGVyYXRpb25zIHByb3ZpZGVkIG9uIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChPcGVuRHluYW1pY0VsZW1lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBzdHJpbmcsIEVsZW1lbnRPcGVyYXRpb25zIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgT3BlbkR5bmFtaWNFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgRWxlbWVudC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChTdGF0aWNBdHRyIG5hbWU6I3N0cmluZyB2YWx1ZTojc3RyaW5nIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU3RhdGljQXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgZWxlbWVudCB1c2luZyB0aGUgdmFsdWVcbiAgICogICBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQXR0ciBuYW1lOiNzdHJpbmcgdHJ1c3Rpbmc6Ym9vbGVhbiBuYW1lc3BhY2U6T3B0aW9uPCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgSWYgYHRydXN0aW5nYCBpcyBmYWxzZSwgdGhlIGhvc3QgbWF5IHNhbml0aXplIHRoZSBhdHRyaWJ1dGVcbiAgICogICBiYXNlZCB1cG9uIGtub3duIHJpc2tzLlxuICAgKi9cbiAgRHluYW1pY0F0dHIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBBZGQgYW4gYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IGVsZW1lbnQgdXNpbmcgdGhlIHZhbHVlXG4gICAqICAgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tcG9uZW50QXRyIG5hbWU6I3N0cmluZyB0cnVzdGluZzpib29sZWFuIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQ29tcG9uZW50QXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBGaW5pc2ggc2V0dGluZyBhdHRyaWJ1dGVzIG9uIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRmx1c2hFbGVtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEZsdXNoRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDbG9zZSB0aGUgY3VycmVudCBlbGVtZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENsb3NlRWxlbWVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBDbG9zZUVsZW1lbnQsXG5cbiAgLy8vIE1PRElGSUVSXG4gIE1vZGlmaWVyLCAgICAgICAgICAgICAgICAgIC8vIChDb25zdGFudFN0cmluZywgQ29uc3RhbnRPdGhlcjxNb2RpZmllck1hbmFnZXI+LCBDb25zdGFudEV4cHJlc3Npb24pXG5cbiAgLy8vIFdPUk1IT0xFXG4gIFB1c2hSZW1vdGVFbGVtZW50LCAgICAgICAgIC8vICgpXG4gIFBvcFJlbW90ZUVsZW1lbnQsICAgICAgICAgIC8vICgpXG5cbiAgLy8vIERZTkFNSUMgU0NPUEVcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBCaW5kIHN0YWNrIHZhbHVlcyBhcyBkeW5hbWljIHZhcmlhYmxlcy5cbiAgICogRm9ybWF0OlxuICAgKiAgIChCaW5kRHluYW1pY1Njb3BlIG5hbWVzOiNBcnJheTwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgaXMgdXNlZCB0byBleHBvc2UgYC13aXRoLWR5bmFtaWMtdmFyc2AsIGFuZCBpcyBhXG4gICAqICAgbmljaGUgZmVhdHVyZS5cbiAgICovXG4gIEJpbmREeW5hbWljU2NvcGUsXG5cbiAgUHVzaER5bmFtaWNTY29wZSwgICAgICAgICAgLy8gKClcbiAgUG9wRHluYW1pY1Njb3BlLCAgICAgICAgICAgLy8gKClcblxuICAvLy8gVk1cblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb21waWxlIHRoZSBJbmxpbmVCbG9jayBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDb21waWxlQmxvY2spXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBDb21waWxhYmxlQmxvY2sg4oaSXG4gICAqICAgLi4uLCBIYW5kbGVcbiAgICovXG4gIENvbXBpbGVCbG9jayxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgc2NvcGUgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEJsb2NrU2NvcGUgI1Njb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwg4oaSXG4gICAqICAgLi4uLCBTY29wZVxuICAgKi9cbiAgUHVzaEJsb2NrU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN5bWJvbCB0YWJsZSBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoU3ltYm9sVGFibGUgI1N5bWJvbFRhYmxlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwg4oaSXG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZVxuICAgKi9cbiAgUHVzaFN5bWJvbFRhYmxlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV2YWx1YXRlIHRoZSBoYW5kbGUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlVmlydHVhbClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIEhhbmRsZSwg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VWaXJ0dWFsLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV2YWx1YXRlIHRoZSBoYW5kbGUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlU3RhdGljIGhhbmRsZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlU3RhdGljLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFlpZWxkIHRvIGEgYmxvY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlWWllbGQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMsIFN5bWJvbFRhYmxlLCBIYW5kbGUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VZaWVsZCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXAgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXAsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0IGlmIHRoZSB2YWx1ZSBhdFxuICAgKiAgIHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIHRydWUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSnVtcElmIHRvOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBKdW1wSWYsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0IGlmIHRoZSB2YWx1ZSBhdFxuICAgKiAgIHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIGZhbHNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXBVbmxlc3MgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXBVbmxlc3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAkcmEsICRmcFxuICAgKi9cbiAgUHVzaEZyYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICRyYSwgJGZwIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wRnJhbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTdGFydCB0cmFja2luZyBhIG5ldyBvdXRwdXQgYmxvY2sgdGhhdCBjb3VsZCBjaGFuZ2VcbiAgICogICBpZiBvbmUgb2YgaXRzIGlucHV0cyBjaGFuZ2VzLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEVudGVyIGFyZ3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgU29vbiBhZnRlciB0aGlzIG9wY29kZSwgb25lIG9mIEp1bXAsIEp1bXBJZixcbiAgICogICBvciBKdW1wVW5sZXNzIHdpbGwgcHJvZHVjZSBhbiB1cGRhdGluZyBhc3NlcnRpb24uXG4gICAqICAgSWYgdGhhdCBhc3NlcnRpb24gZmFpbHMsIHRoZSBhcHBlbmRpbmcgVk0gd2lsbFxuICAgKiAgIGJlIHJlLWVudGVyZWQsIGFuZCB0aGUgaW5zdHJ1Y3Rpb25zIGZyb20gYGZyb21gXG4gICAqICAgdG8gYHRvYCB3aWxsIGJlIGV4ZWN1dGVkLlxuICAgKlxuICAgKiAgIFRPRE86IFNhdmUgYW5kIHJlc3RvcmUuXG4gICAqL1xuICBFbnRlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEZpbmlzaCB0cmFja2luZyB0aGUgY3VycmVudCBibG9jay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFeGl0KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBmaW5hbGl6ZXMgdGhlIHZhbGlkYXRvcnMgdGhhdCB0aGUgdXBkYXRpbmdcbiAgICogICBibG9jayBtdXN0IGNoZWNrIHRvIGRldGVybWluZSB3aGV0aGVyIGl0J3Mgc2FmZSB0b1xuICAgKiAgIHNraXAgcnVubmluZyB0aGUgY29udGVudHMuXG4gICAqL1xuICBFeGl0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbnZlcnQgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaW50byBhIGJvb2xlYW4gcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFRvQm9vbGVhbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8Ym9vbD5cbiAgICovXG4gIFRvQm9vbGVhbixcblxuICAvLy8gTElTVFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFbnRlciBhIGxpc3QuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRW50ZXJMaXN0IGFkZHJlc3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgSXRlcmF0b3Ig4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBFbnRlckxpc3QsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRXhpdCB0aGUgY3VycmVudCBsaXN0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEV4aXRMaXN0KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEV4aXRMaXN0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgQ29udmVydCBhbiBvcGVyYW5kIGFuZCBrZXkgaW50byBhbiBpdGVyYXRvciBhbmRcbiAgICogICBwcmVzZW5jZSByZWZlcmVuY2UuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHV0SXRlcmF0b3IpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBrZXk6c3RyaW5nLCBsaXN0OlZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uLCBpdGVyYXRvcjpSZWZlcmVuY2VJdGVyYXRvciwgcHJlc2VudDpQcmVzZW5jZVJlZmVyZW5jZVxuICAgKi9cbiAgUHV0SXRlcmF0b3IsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTZXQgdXAgdGhlIHN0YWNrIGZvciBpdGVyYXRpbmcgZm9yIGEgZ2l2ZW4ga2V5LFxuICAgKiAgIG9yIGp1bXAgdG8gYGVuZGAgaWYgdGhlcmUgaXMgbm90aGluZyBsZWZ0IHRvXG4gICAqICAgaXRlcmF0ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJdGVyYXRlIGVuZDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgRm9ybSAxOiAoc29tZXRoaW5nIHRvIGl0ZXJhdGUpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgc3RyaW5nXG4gICAqICAgRm9ybSAyOiAobm90aGluZyBsZWZ0IHRvIGl0ZXJhdGUpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBJbiBGb3JtIDEsIHRoZSBzdGFjayB3aWxsIGhhdmUgKGluIHJldmVyc2Ugb3JkZXIpOlxuICAgKlxuICAgKiAgIC0gdGhlIGtleSwgYXMgYSBzdHJpbmdcbiAgICogICAtIHRoZSBjdXJyZW50IGl0ZXJhdGVkIHZhbHVlXG4gICAqICAgLSB0aGUgbWVtb2l6ZWQgaXRlcmF0ZWQgdmFsdWVcbiAgICovXG4gIEl0ZXJhdGUsXG5cbiAgLy8vIENPTVBPTkVOVFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBUZXN0IHdoZXRoZXIgYSByZWZlcmVuY2UgY29udGFpbnMgYSBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChNYWluIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgSW52b2NhdGlvbiwgQ29tcG9uZW50RGVmaW5pdGlvbiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE1haW4sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogVGVzdCB3aGV0aGVyIGEgcmVmZXJlbmNlIGNvbnRhaW5zIGEgY29tcG9uZW50IGRlZmluaXRpb24uXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSXNDb21wb25lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE9wYXF1ZT4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPGJvb2xlYW4+XG4gICAqL1xuICBJc0NvbXBvbmVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDdXJyeSBhIGNvbXBvbmVudCBkZWZpbml0aW9uIGZvciBhIGxhdGVyIGludm9jYXRpb24uXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ3VycnlDb21wb25lbnQgdGVtcGxhdGVNZXRhOiNUZW1wbGF0ZU1ldGEpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMg4oaSXG4gICAqICAgLi4uLCB7IFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFRlbXBsYXRlTWV0YSwgQ2FwdHVyZWRBcmd1bWVudHMgfVxuICAgKi9cbiAgQ3VycnlDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhbiBhcHByb3ByaWF0ZSBjb21wb25lbnQgbWFuYWdlciBvbnRvIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29tcG9uZW50TWFuYWdlciAjQ29tcG9uZW50U3BlYylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCB7IENvbXBvbmVudERlZmluaXRpb24sIENvbXBvbmVudE1hbmFnZXIgfVxuICAgKi9cbiAgUHVzaENvbXBvbmVudERlZmluaXRpb24sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIGFuIGFwcHJvcHJpYXRlIGNvbXBvbmVudCBtYW5hZ2VyIG9udG8gdGhlIHN0YWNrIGZyb21cbiAgICogICBhIHJ1bnRpbWUtcmVzb2x2ZWQgY29tcG9uZW50IGRlZmluaXRpb24uXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyIHRlbXBsYXRlTWV0YTojVGVtcGxhdGVNZXRhKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgeyBDb21wb25lbnREZWZpbml0aW9uLCBDb21wb25lbnRNYW5hZ2VyIH1cbiAgICovXG4gIFB1c2hEeW5hbWljQ29tcG9uZW50TWFuYWdlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgdXNlciByZXByZXNlbnRhdGlvbiBvZiBhcmdzIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hBcmdzIG5hbWVzOiNBcnJheTwjc3RyaW5nPiBwb3NpdGlvbmFsQ291bnQ6dTMyIHN5bnRoZXRpYzojYm9vbGVhbilcbiAgICpcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0gIOKGklxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzXG4gICAqXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgYXJndW1lbnRzIG9iamVjdCBpcyBvbmx5IG5lY2Vzc2FyeSB3aGVuIGNhbGxpbmcgaW50b1xuICAgKiAgIHVzZXItc3BlY2lmaWVkIGhvb2tzLiBJdCBpcyBtZWFudCB0byBiZSBpbXBsZW1lbnRlZCBhcyBhXG4gICAqICAgdHJhbnNpZW50IHByb3h5IHRoYXQgcmVhZHMgaW50byB0aGUgc3RhY2sgYXMgbmVlZGVkLlxuICAgKiAgIEhvbGRpbmcgb250byB0aGUgQXJndW1lbnRzIGFmdGVyIHRoZSBjYWxsIGhhcyBjb21wbGV0ZWQgaXNcbiAgICogICBpbGxlZ2FsLlxuICAgKi9cbiAgUHVzaEFyZ3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wcyBBcmd1bWVudHMgZnJvbSB0aGUgc3RhY2sgYW5kIGNsZWFycyB0aGUgbmV4dCBOIGFyZ3MuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUG9wQXJncylcbiAgICpcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyAg4oaSXG4gICAqICAgLi4uXG4gICAqXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiBUaGUgYXJndW1lbnRzIG9iamVjdCBjb250YWlucyB0aGUgaW5mb3JtYXRpb24gb2YgaG93IG1hbnkgdXNlclxuICAgKiBzdXBwbGllZCBhcmdzIHRoZSBjb21wb25lbnQgd2FzIGludm9rZWQgd2l0aC4gVG8gY2xlYXIgdGhlbSBmcm9tXG4gICAqIHRoZSBzdGFjayB3ZSBtdXN0IHBvcCBpdCBmcm9tIHRoZSBzdGFjayBhbmQgY2FsbCBgY2xlYXJgIG9uIGl0XG4gICAqIHRvIHJlbW92ZSB0aGUgYXJndW1lbnQgdmFsdWVzIGZyb20gdGhlIHN0YWNrLlxuICAgKi9cbiAgUG9wQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiAuLi5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQcmVwYXJlQXJncyBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQcmVwYXJlQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDcmVhdGUgdGhlIGNvbXBvbmVudCBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDcmVhdGVDb21wb25lbnQgZmxhZ3M6dTMyIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgRmxhZ3M6XG4gICAqXG4gICAqICAgKiAwYjAwMTogSGFzIGEgZGVmYXVsdCBibG9ja1xuICAgKiAgICogMGIwMTA6IEhhcyBhbiBpbnZlcnNlIGJsb2NrXG4gICAqL1xuICBDcmVhdGVDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmVnaXN0ZXIgYSBkZXN0cnVjdG9yIGZvciB0aGUgY3VycmVudCBjb21wb25lbnRcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3Igc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUmVnaXN0ZXJDb21wb25lbnREZXN0cnVjdG9yLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBuZXcgRWxlbWVudE9wZXJhdGlvbnMgZm9yIHRoZSBjdXJyZW50IGNvbXBvbmVudC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXRDb21wb25lbnRPcGVyYXRpb25zKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFB1dENvbXBvbmVudE9wZXJhdGlvbnMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgY29tcG9uZW50J3MgYHNlbGZgIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldENvbXBvbmVudFNlbGYgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50U2VsZixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50VGFnTmFtZSBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcHRpb248c3RyaW5nPlxuICAgKi9cbiAgR2V0Q29tcG9uZW50VGFnTmFtZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBHZXQgdGhlIGNvbXBvbmVudCBsYXlvdXQgZnJvbSB0aGUgbWFuYWdlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChHZXRDb21wb25lbnRMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBIYW5kbGVcbiAgICovXG4gIEdldENvbXBvbmVudExheW91dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcHVsYXRlIHRoZSBzdGF0ZSByZWdpc3RlciB3aXRoIHRoZSBsYXlvdXQgY3VycmVudGx5XG4gICAqICAgb24gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcHVsYXRlTGF5b3V0IHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBIYW5kbGUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQb3B1bGF0ZUxheW91dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBJbnZva2UgdGhlIGxheW91dCByZXR1cm5lZCBieSB0aGUgbWFuYWdlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VDb21wb25lbnRMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlQ29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEJlZ2luIGEgbmV3IGNhY2hlIGdyb3VwXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQmVnaW5Db21wb25lbnRUcmFuc2FjdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIENvbXBvbmVudE1hbmFnZXI8VD4sIFQg4oaSXG4gICAqICAgLi4uLCBDb21wb25lbnRNYW5hZ2VyPFQ+LCBUXG4gICAqL1xuICBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbW1pdCB0aGUgY3VycmVudCBjYWNoZSBncm91cFxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRDcmVhdGVFbGVtZW50IG9uIHRoZSBjdXJyZW50IGNvbXBvbmVudCBtYW5hZ2VyXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRGlkQ3JlYXRlRWxlbWVudCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBEaWRDcmVhdGVFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRSZW5kZXJMYXlvdXQgb24gdGhlIGN1cnJlbnQgY29tcG9uZW50IG1hbmFnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEaWRSZW5kZXJMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERpZFJlbmRlckxheW91dCxcblxuICAvLy8gUEFSVElBTFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBMb29rdXAgYW5kIGludm9rZSBhIHBhcnRpYWwgdGVtcGxhdGUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlUGFydGlhbCB0ZW1wbGF0ZU1ldGE6I1RlbXBsYXRlTWV0YSBzeW1ib2xzOiNBcnJheTwjc3RyaW5nPiBldmFsSW5mbzojQXJyYXk8bnVtYmVyPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8c3RyaW5nPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVBhcnRpYWwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBSZXNvbHZlIHt7Zm9vfX0gaW5zaWRlIGEgcGFydGlhbCwgd2hpY2ggY291bGQgYmUgZWl0aGVyIGEgc2VsZi1sb29rdXBcbiAgICogICBvciBhIGxvY2FsIHZhcmlhYmxlIHRoYXQgaXMgaW4tc2NvcGUgZm9yIHRoZSBjYWxsZXIuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmVzb2x2ZU1heWJlTG9jYWwgbG9jYWw6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBSZXNvbHZlTWF5YmVMb2NhbCxcblxuICAvLy8gREVCVUdHRVJcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBY3RpdmF0ZSB0aGUgZGVidWdnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEZWJ1Z2dlciBzeW1ib2xzOiNBcnJheTxzdHJpbmc+IGV2YWxJbmZvOiNBcnJheTxudW1iZXI+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERlYnVnZ2VyLFxuXG4gIC8qKiBUaGUgc2l6ZSBvZiB0aGUgb3Bjb2RlIGxpc3QgKi9cbiAgU2l6ZVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZtL2xpYi9vcGNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBPcCB7XG4gIC8qXG4gICAgRG9jdW1lbnRhdGlvbiBUT0RPOlxuXG4gICAgRG9jdW1lbnQgdGhlIGxvY2FsIHZhcmlhYmxlIGxheW91dCBpbiB0aGUgc3RhY2tcbiAgICBkaWFncmFtIGJlZm9yZS1hbmQtYWZ0ZXIuXG5cbiAgICBEb2N1bWVudCB1cGRhdGluZyBvcGNvZGVzIGVtaXR0aW5nIGZyb20gdW5yZWFjaGFibGVcbiAgICBhcHBlbmQgb3Bjb2RlLlxuXG4gICAgRG9jdW1lbnQgdGhlIGVsZW1lbnQgc3RhY2ssIGJsb2NrIHN0YWNrIGFuZCBMaXN0XG4gICAgYmxvY2sgc3RhY2suXG4gICAqL1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wY29kZSBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC5cbiAgICovXG4gIEJ1ZyxcblxuICAvLy8gRVhQUkVTU0lPTlNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSBhIEhlbHBlci5cbiAgICogRm9ybWF0OlxuICAgKiAgIChIZWxwZXIgaGVscGVyOiNGdW5jdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIEhlbHBlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIHZhcmlhYmxlIHJlcHJlc2VudGVkIGJ5IGEgc3ltYm9sIGZyb21cbiAgICogICB0aGUgdmFsdWUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoU2V0VmFyaWFibGUgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIGJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFNldEJsb2NrIHN5bWJvbDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIHRoZSBjb250ZW50cyBvZiB0aGUgdmFyaWFibGUgcmVwcmVzZW50ZWQgYnlcbiAgICogICBhIHN5bWJvbCAoYSBwb3NpdGlvbmFsIG9yIG5hbWVkIGFyZ3VtZW50KSBvbnRvXG4gICAqICAgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2wgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZVxuICAgKiAgIHN0YWNrLCBhbmQgcHVzaCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgY29uc3RydWN0ZWRcbiAgICogICBieSBgLmdldChwcm9wZXJ0eSlgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldFByb3BlcnR5IHByb3BlcnR5OiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0UHJvcGVydHksXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgc3BlY2lmaWVkIGJvdW5kIGJsb2NrIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldEJsb2NrIGJsb2NrOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBJbmxpbmVCbG9ja1xuICAgKi9cbiAgR2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIFRSVUUgb250byB0aGUgc3RhY2sgaWYgdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiAgIGlzIGJvdW5kIGFuZCBGQUxTRSBpZiBpdCBpcyBub3QuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2sgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIGJvb2xlYW5cbiAgICovXG4gIEhhc0Jsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaCBUUlVFIG9udG8gdGhlIHN0YWNrIGlmIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICogICBpcyBib3VuZCAqYW5kKiBoYXMgYXQgbGVhc3Qgb25lIHNwZWNpZmllZCBmb3JtYWxcbiAgICogICBwYXJhbWV0ZXIsIGFuZCBGQUxTRSBvdGhlcndpc2UuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2tQYXJhbXMgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgKGJvb2xlYW4pXG4gICAqL1xuICBIYXNCbG9ja1BhcmFtcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBjb3VudCBgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZWBzIG9mZiB0aGUgc3RhY2sgYW5kXG4gICAqICAgY29uc3RydWN0IGEgbmV3IENvbmNhdFJlZmVyZW5jZSBmcm9tIHRoZW0gKGluIHJldmVyc2VcbiAgICogICBvcmRlcikuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29uY2F0IGNvdW50OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uLCBDb25jYXRSZWZlcmVuY2VcbiAgICovXG4gIENvbmNhdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gT2JqZWN0IGNvbnN0YW50IG9udG8gdGhlIHN0YWNrIHRoYXQgaXMgbm90XG4gICAqICAgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29uc3RhbnQgY29uc3RhbnQ6I09iamVjdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcGFxdWVcbiAgICovXG4gIENvbnN0YW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgV3JhcCBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIGluIGEgcmVmZXJlbmNlIGFuZCBwdXNoIGl0XG4gICAqICAgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFByaW1pdGl2ZSBjb25zdGFudDojUHJpbWl0aXZlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFByaW1pdGl2ZVxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGUgdHdvIGhpZ2ggYml0cyBvZiB0aGUgY29uc3RhbnQgcmVmZXJlbmNlIGRlc2NyaWJlXG4gICAqICAgdGhlIGtpbmQgb2YgcHJpbWl0aXZlOlxuICAgKlxuICAgKiAgIDAwOiBudW1iZXJcbiAgICogICAwMTogc3RyaW5nXG4gICAqICAgMTA6IHRydWUgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWRcbiAgICovXG4gIFByaW1pdGl2ZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBwcmltaXRpdmUgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByaW1pdGl2ZVJlZmVyZW5jZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByaW1pdGl2ZSDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8UHJpbWl0aXZlPlxuICAgKi9cbiAgUHJpbWl0aXZlUmVmZXJlbmNlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IER1cGxpY2F0ZSBhbmQgcHVzaCBpdGVtIGZyb20gYW4gb2Zmc2V0IGluIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEdXAgcmVnaXN0ZXI6dTMyLCBvZmZzZXQ6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlLCBPcGFxdWVcbiAgICovXG4gIER1cCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3AgTiBpdGVtcyBvZmYgdGhlIHN0YWNrIGFuZCB0aHJvdyBhd2F5IHRoZSB2YWx1ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3ApXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBPcGFxdWUsIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvYWQgYSB2YWx1ZSBpbnRvIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChMb2FkIHJlZ2lzdGVyOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIExvYWQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRmV0Y2ggYSB2YWx1ZSBmcm9tIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChGZXRjaCByZWdpc3Rlcjp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlXG4gICAqL1xuICBGZXRjaCxcblxuICAvLy8gUFJFTFVERSAmIEVYSVRcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IHJvb3Qgc2NvcGUgb250byB0aGUgc2NvcGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUm9vdFNjb3BlIHN5bWJvbHM6dTMyIGJpbmRDYWxsZXJTY29wZTpib29sKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgQSByb290IHNjb3BlIGhhcyBubyBwYXJlbnQgc2NvcGUsIGFuZCB0aGVyZWZvcmUgaW5oZXJpdHMgbm8gbGV4aWNhbFxuICAgKiAgIHZhcmlhYmxlcy4gSWYgYGJpbmRDYWxsZXJTY29wZWAgaXMgYHRydWVgLCB0aGUgY3VycmVudCBzY29wZSByZW1lbWJlcnNcbiAgICogICB0aGUgY2FsbGVyIHNjb3BlIChmb3IgeWllbGRpbmcgYmxvY2tzKS5cbiAgICovXG4gIFJvb3RTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IGNoaWxkIHNjb3BlIG9udG8gdGhlIHNjb3BlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENoaWxkU2NvcGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBBIGNoaWxkIHNjb3BlIGluaGVyaXRzIGZyb20gdGhlIGN1cnJlbnQgcGFyZW50IHNjb3BlLCBhbmQgdGhlcmVmb3JlXG4gICAqICAgc2hhcmVzIGl0cyBsZXhpY2FsIHZhcmlhYmxlcy5cbiAgICovXG4gIENoaWxkU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wIHRoZSBjdXJyZW50IHNjb3BlIGZyb20gdGhlIHNjb3BlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcFNjb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcFNjb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJldHVybiB0byB0aGUgcHJldmlvdXMgZnJhbWUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmV0dXJuKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgYWRkcmVzczpudW1iZXIg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZXR1cm4sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmV0dXJuIHRvIGEgcGxhY2UgaW4gdGhlIHByb2dyYW0gZ2l2ZW4gYW4gb2Zmc2V0XG4gICAqIEZvcm1hdDpcbiAgICogIChSZXR1cm5UbyBvZmZzZXQ6aTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICAuLi4g4oaSXG4gICAqL1xuICBSZXR1cm5UbyxcblxuICAvLy8gSFRNTFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBhIFRleHQgbm9kZSB3aXRoIHZhbHVlIGBjb250ZW50c2BcbiAgICogRm9ybWF0OlxuICAgKiAgIChUZXh0IGNvbnRlbnRzOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgVGV4dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgYSBDb21tZW50IG5vZGUgd2l0aCB2YWx1ZSBgY29udGVudHNgXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tbWVudCBjb250ZW50czojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIGEgRHluYW1pYyBub2RlIGJhc2VkIG9uIC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQ29udGVudCBpc1RydXN0aW5nOmJvb2xlYW4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRHluYW1pY0NvbnRlbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50IHRhZzojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgIHdpdGggc3BlY2lhbCBvcGVyYXRpb25zIHByb3ZpZGVkXG4gICAqICAgb24gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50V2l0aE9wZXJhdGlvbnMgdGFnOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBFbGVtZW50T3BlcmF0aW9ucyDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50V2l0aE9wZXJhdGlvbnMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBPcGVuIGEgbmV3IEVsZW1lbnQgd2l0aCBhIG5hbWUgb24gdGhlIHN0YWNrIGFuZCB3aXRoIHNwZWNpYWxcbiAgICogICBvcGVyYXRpb25zIHByb3ZpZGVkIG9uIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChPcGVuRHluYW1pY0VsZW1lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBzdHJpbmcsIEVsZW1lbnRPcGVyYXRpb25zIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgT3BlbkR5bmFtaWNFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgRWxlbWVudC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChTdGF0aWNBdHRyIG5hbWU6I3N0cmluZyB2YWx1ZTojc3RyaW5nIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU3RhdGljQXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgZWxlbWVudCB1c2luZyB0aGUgdmFsdWVcbiAgICogICBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQXR0ciBuYW1lOiNzdHJpbmcgdHJ1c3Rpbmc6Ym9vbGVhbiBuYW1lc3BhY2U6T3B0aW9uPCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgSWYgYHRydXN0aW5nYCBpcyBmYWxzZSwgdGhlIGhvc3QgbWF5IHNhbml0aXplIHRoZSBhdHRyaWJ1dGVcbiAgICogICBiYXNlZCB1cG9uIGtub3duIHJpc2tzLlxuICAgKi9cbiAgRHluYW1pY0F0dHIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBBZGQgYW4gYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IGVsZW1lbnQgdXNpbmcgdGhlIHZhbHVlXG4gICAqICAgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tcG9uZW50QXRyIG5hbWU6I3N0cmluZyB0cnVzdGluZzpib29sZWFuIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQ29tcG9uZW50QXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBGaW5pc2ggc2V0dGluZyBhdHRyaWJ1dGVzIG9uIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRmx1c2hFbGVtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEZsdXNoRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDbG9zZSB0aGUgY3VycmVudCBlbGVtZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENsb3NlRWxlbWVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBDbG9zZUVsZW1lbnQsXG5cbiAgLy8vIE1PRElGSUVSXG4gIE1vZGlmaWVyLCAgICAgICAgICAgICAgICAgIC8vIChDb25zdGFudFN0cmluZywgQ29uc3RhbnRPdGhlcjxNb2RpZmllck1hbmFnZXI+LCBDb25zdGFudEV4cHJlc3Npb24pXG5cbiAgLy8vIFdPUk1IT0xFXG4gIFB1c2hSZW1vdGVFbGVtZW50LCAgICAgICAgIC8vICgpXG4gIFBvcFJlbW90ZUVsZW1lbnQsICAgICAgICAgIC8vICgpXG5cbiAgLy8vIERZTkFNSUMgU0NPUEVcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBCaW5kIHN0YWNrIHZhbHVlcyBhcyBkeW5hbWljIHZhcmlhYmxlcy5cbiAgICogRm9ybWF0OlxuICAgKiAgIChCaW5kRHluYW1pY1Njb3BlIG5hbWVzOiNBcnJheTwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgaXMgdXNlZCB0byBleHBvc2UgYC13aXRoLWR5bmFtaWMtdmFyc2AsIGFuZCBpcyBhXG4gICAqICAgbmljaGUgZmVhdHVyZS5cbiAgICovXG4gIEJpbmREeW5hbWljU2NvcGUsXG5cbiAgUHVzaER5bmFtaWNTY29wZSwgICAgICAgICAgLy8gKClcbiAgUG9wRHluYW1pY1Njb3BlLCAgICAgICAgICAgLy8gKClcblxuICAvLy8gVk1cblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb21waWxlIHRoZSBJbmxpbmVCbG9jayBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDb21waWxlQmxvY2spXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBDb21waWxhYmxlQmxvY2sg4oaSXG4gICAqICAgLi4uLCBIYW5kbGVcbiAgICovXG4gIENvbXBpbGVCbG9jayxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgc2NvcGUgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEJsb2NrU2NvcGUgI1Njb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwg4oaSXG4gICAqICAgLi4uLCBTY29wZVxuICAgKi9cbiAgUHVzaEJsb2NrU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN5bWJvbCB0YWJsZSBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoU3ltYm9sVGFibGUgI1N5bWJvbFRhYmxlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwg4oaSXG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZVxuICAgKi9cbiAgUHVzaFN5bWJvbFRhYmxlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV2YWx1YXRlIHRoZSBoYW5kbGUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlVmlydHVhbClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIEhhbmRsZSwg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VWaXJ0dWFsLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV2YWx1YXRlIHRoZSBoYW5kbGUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlU3RhdGljIGhhbmRsZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlU3RhdGljLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFlpZWxkIHRvIGEgYmxvY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlWWllbGQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMsIFN5bWJvbFRhYmxlLCBIYW5kbGUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VZaWVsZCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXAgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXAsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0IGlmIHRoZSB2YWx1ZSBhdFxuICAgKiAgIHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIHRydWUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSnVtcElmIHRvOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBKdW1wSWYsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0IGlmIHRoZSB2YWx1ZSBhdFxuICAgKiAgIHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIGZhbHNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXBVbmxlc3MgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXBVbmxlc3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAkcmEsICRmcFxuICAgKi9cbiAgUHVzaEZyYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICRyYSwgJGZwIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wRnJhbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTdGFydCB0cmFja2luZyBhIG5ldyBvdXRwdXQgYmxvY2sgdGhhdCBjb3VsZCBjaGFuZ2VcbiAgICogICBpZiBvbmUgb2YgaXRzIGlucHV0cyBjaGFuZ2VzLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEVudGVyIGFyZ3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgU29vbiBhZnRlciB0aGlzIG9wY29kZSwgb25lIG9mIEp1bXAsIEp1bXBJZixcbiAgICogICBvciBKdW1wVW5sZXNzIHdpbGwgcHJvZHVjZSBhbiB1cGRhdGluZyBhc3NlcnRpb24uXG4gICAqICAgSWYgdGhhdCBhc3NlcnRpb24gZmFpbHMsIHRoZSBhcHBlbmRpbmcgVk0gd2lsbFxuICAgKiAgIGJlIHJlLWVudGVyZWQsIGFuZCB0aGUgaW5zdHJ1Y3Rpb25zIGZyb20gYGZyb21gXG4gICAqICAgdG8gYHRvYCB3aWxsIGJlIGV4ZWN1dGVkLlxuICAgKlxuICAgKiAgIFRPRE86IFNhdmUgYW5kIHJlc3RvcmUuXG4gICAqL1xuICBFbnRlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEZpbmlzaCB0cmFja2luZyB0aGUgY3VycmVudCBibG9jay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFeGl0KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBmaW5hbGl6ZXMgdGhlIHZhbGlkYXRvcnMgdGhhdCB0aGUgdXBkYXRpbmdcbiAgICogICBibG9jayBtdXN0IGNoZWNrIHRvIGRldGVybWluZSB3aGV0aGVyIGl0J3Mgc2FmZSB0b1xuICAgKiAgIHNraXAgcnVubmluZyB0aGUgY29udGVudHMuXG4gICAqL1xuICBFeGl0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbnZlcnQgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaW50byBhIGJvb2xlYW4gcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFRvQm9vbGVhbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8Ym9vbD5cbiAgICovXG4gIFRvQm9vbGVhbixcblxuICAvLy8gTElTVFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFbnRlciBhIGxpc3QuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRW50ZXJMaXN0IGFkZHJlc3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgSXRlcmF0b3Ig4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBFbnRlckxpc3QsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRXhpdCB0aGUgY3VycmVudCBsaXN0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEV4aXRMaXN0KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEV4aXRMaXN0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgQ29udmVydCBhbiBvcGVyYW5kIGFuZCBrZXkgaW50byBhbiBpdGVyYXRvciBhbmRcbiAgICogICBwcmVzZW5jZSByZWZlcmVuY2UuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHV0SXRlcmF0b3IpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBrZXk6c3RyaW5nLCBsaXN0OlZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uLCBpdGVyYXRvcjpSZWZlcmVuY2VJdGVyYXRvciwgcHJlc2VudDpQcmVzZW5jZVJlZmVyZW5jZVxuICAgKi9cbiAgUHV0SXRlcmF0b3IsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTZXQgdXAgdGhlIHN0YWNrIGZvciBpdGVyYXRpbmcgZm9yIGEgZ2l2ZW4ga2V5LFxuICAgKiAgIG9yIGp1bXAgdG8gYGVuZGAgaWYgdGhlcmUgaXMgbm90aGluZyBsZWZ0IHRvXG4gICAqICAgaXRlcmF0ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJdGVyYXRlIGVuZDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgRm9ybSAxOiAoc29tZXRoaW5nIHRvIGl0ZXJhdGUpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgc3RyaW5nXG4gICAqICAgRm9ybSAyOiAobm90aGluZyBsZWZ0IHRvIGl0ZXJhdGUpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBJbiBGb3JtIDEsIHRoZSBzdGFjayB3aWxsIGhhdmUgKGluIHJldmVyc2Ugb3JkZXIpOlxuICAgKlxuICAgKiAgIC0gdGhlIGtleSwgYXMgYSBzdHJpbmdcbiAgICogICAtIHRoZSBjdXJyZW50IGl0ZXJhdGVkIHZhbHVlXG4gICAqICAgLSB0aGUgbWVtb2l6ZWQgaXRlcmF0ZWQgdmFsdWVcbiAgICovXG4gIEl0ZXJhdGUsXG5cbiAgLy8vIENPTVBPTkVOVFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBUZXN0IHdoZXRoZXIgYSByZWZlcmVuY2UgY29udGFpbnMgYSBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJc0NvbXBvbmVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8Ym9vbGVhbj5cbiAgICovXG4gIElzQ29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEN1cnJ5IGEgY29tcG9uZW50IGRlZmluaXRpb24gZm9yIGEgbGF0ZXIgaW52b2NhdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChDdXJyeUNvbXBvbmVudCB0ZW1wbGF0ZU1ldGE6I1RlbXBsYXRlTWV0YSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIHsgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgVGVtcGxhdGVNZXRhLCBDYXB0dXJlZEFyZ3VtZW50cyB9XG4gICAqL1xuICBDdXJyeUNvbXBvbmVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGFuIGFwcHJvcHJpYXRlIGNvbXBvbmVudCBtYW5hZ2VyIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hDb21wb25lbnRNYW5hZ2VyICNDb21wb25lbnRTcGVjKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIHsgQ29tcG9uZW50RGVmaW5pdGlvbiwgQ29tcG9uZW50TWFuYWdlciB9XG4gICAqL1xuICBQdXNoQ29tcG9uZW50RGVmaW5pdGlvbixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gYXBwcm9wcmlhdGUgY29tcG9uZW50IG1hbmFnZXIgb250byB0aGUgc3RhY2sgZnJvbVxuICAgKiAgIGEgcnVudGltZS1yZXNvbHZlZCBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoRHluYW1pY0NvbXBvbmVudE1hbmFnZXIgdGVtcGxhdGVNZXRhOiNUZW1wbGF0ZU1ldGEpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE9wYXF1ZT4g4oaSXG4gICAqICAgLi4uLCB7IENvbXBvbmVudERlZmluaXRpb24sIENvbXBvbmVudE1hbmFnZXIgfVxuICAgKi9cbiAgUHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSB1c2VyIHJlcHJlc2VudGF0aW9uIG9mIGFyZ3Mgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEFyZ3MgbmFtZXM6I0FycmF5PCNzdHJpbmc+IHBvc2l0aW9uYWxDb3VudDp1MzIgc3ludGhldGljOiNib29sZWFuKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSAg4oaSXG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHNcbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBhcmd1bWVudHMgb2JqZWN0IGlzIG9ubHkgbmVjZXNzYXJ5IHdoZW4gY2FsbGluZyBpbnRvXG4gICAqICAgdXNlci1zcGVjaWZpZWQgaG9va3MuIEl0IGlzIG1lYW50IHRvIGJlIGltcGxlbWVudGVkIGFzIGFcbiAgICogICB0cmFuc2llbnQgcHJveHkgdGhhdCByZWFkcyBpbnRvIHRoZSBzdGFjayBhcyBuZWVkZWQuXG4gICAqICAgSG9sZGluZyBvbnRvIHRoZSBBcmd1bWVudHMgYWZ0ZXIgdGhlIGNhbGwgaGFzIGNvbXBsZXRlZCBpc1xuICAgKiAgIGlsbGVnYWwuXG4gICAqL1xuICBQdXNoQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3BzIEFyZ3VtZW50cyBmcm9tIHRoZSBzdGFjayBhbmQgY2xlYXJzIHRoZSBuZXh0IE4gYXJncy5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3BBcmdzKVxuICAgKlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzICDihpJcbiAgICogICAuLi5cbiAgICpcbiAgICogRGVzY3JpcHRpb246XG4gICAqIFRoZSBhcmd1bWVudHMgb2JqZWN0IGNvbnRhaW5zIHRoZSBpbmZvcm1hdGlvbiBvZiBob3cgbWFueSB1c2VyXG4gICAqIHN1cHBsaWVkIGFyZ3MgdGhlIGNvbXBvbmVudCB3YXMgaW52b2tlZCB3aXRoLiBUbyBjbGVhciB0aGVtIGZyb21cbiAgICogdGhlIHN0YWNrIHdlIG11c3QgcG9wIGl0IGZyb20gdGhlIHN0YWNrIGFuZCBjYWxsIGBjbGVhcmAgb24gaXRcbiAgICogdG8gcmVtb3ZlIHRoZSBhcmd1bWVudCB2YWx1ZXMgZnJvbSB0aGUgc3RhY2suXG4gICAqL1xuICBQb3BBcmdzLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IC4uLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByZXBhcmVBcmdzIHN0YXRlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQcmVwYXJlQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDcmVhdGUgdGhlIGNvbXBvbmVudCBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDcmVhdGVDb21wb25lbnQgZmxhZ3M6dTMyIHN0YXRlOnUzMilcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIEZsYWdzOlxuICAgKlxuICAgKiAgICogMGIwMDE6IEhhcyBhIGRlZmF1bHQgYmxvY2tcbiAgICogICAqIDBiMDEwOiBIYXMgYW4gaW52ZXJzZSBibG9ja1xuICAgKi9cbiAgQ3JlYXRlQ29tcG9uZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJlZ2lzdGVyIGEgZGVzdHJ1Y3RvciBmb3IgdGhlIGN1cnJlbnQgY29tcG9uZW50XG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmVnaXN0ZXJDb21wb25lbnREZXN0cnVjdG9yIHN0YXRlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3IsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIG5ldyBFbGVtZW50T3BlcmF0aW9ucyBmb3IgdGhlIGN1cnJlbnQgY29tcG9uZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1dENvbXBvbmVudE9wZXJhdGlvbnMpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUHV0Q29tcG9uZW50T3BlcmF0aW9ucyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50U2VsZiBzdGF0ZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50U2VsZixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50VGFnTmFtZSBzdGF0ZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgT3B0aW9uPHN0cmluZz5cbiAgICovXG4gIEdldENvbXBvbmVudFRhZ05hbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogR2V0IHRoZSBjb21wb25lbnQgbGF5b3V0IGZyb20gdGhlIG1hbmFnZXIuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50TGF5b3V0IHN0YXRlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBQcm9ncmFtU3ltYm9sVGFibGUsIEhhbmRsZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSB0aGUgbGF5b3V0IHJldHVybmVkIGJ5IHRoZSBtYW5hZ2VyLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEludm9rZUNvbXBvbmVudExheW91dClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByb2dyYW1TeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlQ29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEJlZ2luIGEgbmV3IGNhY2hlIGdyb3VwXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQmVnaW5Db21wb25lbnRUcmFuc2FjdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIENvbXBvbmVudE1hbmFnZXI8VD4sIFQg4oaSXG4gICAqICAgLi4uLCBDb21wb25lbnRNYW5hZ2VyPFQ+LCBUXG4gICAqL1xuICBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbW1pdCB0aGUgY3VycmVudCBjYWNoZSBncm91cFxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRDcmVhdGVFbGVtZW50IG9uIHRoZSBjdXJyZW50IGNvbXBvbmVudCBtYW5hZ2VyXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRGlkQ3JlYXRlRWxlbWVudCBzdGF0ZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRGlkQ3JlYXRlRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBJbnZva2UgZGlkUmVuZGVyTGF5b3V0IG9uIHRoZSBjdXJyZW50IGNvbXBvbmVudCBtYW5hZ2VyXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRGlkUmVuZGVyTGF5b3V0IHN0YXRlOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRGlkUmVuZGVyTGF5b3V0LFxuXG4gIC8vLyBQQVJUSUFMU1xuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvb2t1cCBhbmQgaW52b2tlIGEgcGFydGlhbCB0ZW1wbGF0ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VQYXJ0aWFsIHRlbXBsYXRlTWV0YTojVGVtcGxhdGVNZXRhIHN5bWJvbHM6I0FycmF5PCNzdHJpbmc+IGV2YWxJbmZvOiNBcnJheTxudW1iZXI+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxzdHJpbmc+IOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlUGFydGlhbCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFJlc29sdmUge3tmb299fSBpbnNpZGUgYSBwYXJ0aWFsLCB3aGljaCBjb3VsZCBiZSBlaXRoZXIgYSBzZWxmLWxvb2t1cFxuICAgKiAgIG9yIGEgbG9jYWwgdmFyaWFibGUgdGhhdCBpcyBpbi1zY29wZSBmb3IgdGhlIGNhbGxlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZXNvbHZlTWF5YmVMb2NhbCBsb2NhbDojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIFJlc29sdmVNYXliZUxvY2FsLFxuXG4gIC8vLyBERUJVR0dFUlxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFjdGl2YXRlIHRoZSBkZWJ1Z2dlclxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKERlYnVnZ2VyIHN5bWJvbHM6I0FycmF5PHN0cmluZz4gZXZhbEluZm86I0FycmF5PG51bWJlcj4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRGVidWdnZXIsXG5cbiAgLyoqIFRoZSBzaXplIG9mIHRoZSBvcGNvZGUgbGlzdCAqL1xuICBTaXplXG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Bjb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3ZtL2xpYi9vcGNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBPcCB7XG4gIC8qXG4gICAgRG9jdW1lbnRhdGlvbiBUT0RPOlxuXG4gICAgRG9jdW1lbnQgdGhlIGxvY2FsIHZhcmlhYmxlIGxheW91dCBpbiB0aGUgc3RhY2tcbiAgICBkaWFncmFtIGJlZm9yZS1hbmQtYWZ0ZXIuXG5cbiAgICBEb2N1bWVudCB1cGRhdGluZyBvcGNvZGVzIGVtaXR0aW5nIGZyb20gdW5yZWFjaGFibGVcbiAgICBhcHBlbmQgb3Bjb2RlLlxuXG4gICAgRG9jdW1lbnQgdGhlIGVsZW1lbnQgc3RhY2ssIGJsb2NrIHN0YWNrIGFuZCBMaXN0XG4gICAgYmxvY2sgc3RhY2suXG4gICAqL1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wY29kZSBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZC5cbiAgICovXG4gIEJ1ZyxcblxuICAvLy8gRVhQUkVTU0lPTlNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFdmFsdWF0ZSBhIEhlbHBlci5cbiAgICogRm9ybWF0OlxuICAgKiAgIChIZWxwZXIgaGVscGVyOiNGdW5jdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2VcbiAgICovXG4gIEhlbHBlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIHZhcmlhYmxlIHJlcHJlc2VudGVkIGJ5IGEgc3ltYm9sIGZyb21cbiAgICogICB0aGUgdmFsdWUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoU2V0VmFyaWFibGUgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBTZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEJpbmQgdGhlIGJsb2NrIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFNldEJsb2NrIHN5bWJvbDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZSwgSGFuZGxlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIHRoZSBjb250ZW50cyBvZiB0aGUgdmFyaWFibGUgcmVwcmVzZW50ZWQgYnlcbiAgICogICBhIHN5bWJvbCAoYSBwb3NpdGlvbmFsIG9yIG5hbWVkIGFyZ3VtZW50KSBvbnRvXG4gICAqICAgdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hTeW1ib2wgc3ltYm9sOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBHZXRWYXJpYWJsZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZVxuICAgKiAgIHN0YWNrLCBhbmQgcHVzaCBhIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgY29uc3RydWN0ZWRcbiAgICogICBieSBgLmdldChwcm9wZXJ0eSlgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldFByb3BlcnR5IHByb3BlcnR5OiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0UHJvcGVydHksXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgc3BlY2lmaWVkIGJvdW5kIGJsb2NrIG9udG8gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldEJsb2NrIGJsb2NrOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBJbmxpbmVCbG9ja1xuICAgKi9cbiAgR2V0QmxvY2ssXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIFRSVUUgb250byB0aGUgc3RhY2sgaWYgdGhlIHNwZWNpZmllZCBibG9ja1xuICAgKiAgIGlzIGJvdW5kIGFuZCBGQUxTRSBpZiBpdCBpcyBub3QuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2sgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIGJvb2xlYW5cbiAgICovXG4gIEhhc0Jsb2NrLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgUHVzaCBUUlVFIG9udG8gdGhlIHN0YWNrIGlmIHRoZSBzcGVjaWZpZWQgYmxvY2tcbiAgICogICBpcyBib3VuZCAqYW5kKiBoYXMgYXQgbGVhc3Qgb25lIHNwZWNpZmllZCBmb3JtYWxcbiAgICogICBwYXJhbWV0ZXIsIGFuZCBGQUxTRSBvdGhlcndpc2UuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSGFzQmxvY2tQYXJhbXMgYmxvY2s6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UgKGJvb2xlYW4pXG4gICAqL1xuICBIYXNCbG9ja1BhcmFtcyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcCBjb3VudCBgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZWBzIG9mZiB0aGUgc3RhY2sgYW5kXG4gICAqICAgY29uc3RydWN0IGEgbmV3IENvbmNhdFJlZmVyZW5jZSBmcm9tIHRoZW0gKGluIHJldmVyc2VcbiAgICogICBvcmRlcikuXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29uY2F0IGNvdW50OnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uLCBDb25jYXRSZWZlcmVuY2VcbiAgICovXG4gIENvbmNhdCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFB1c2ggYW4gT2JqZWN0IGNvbnN0YW50IG9udG8gdGhlIHN0YWNrIHRoYXQgaXMgbm90XG4gICAqICAgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29uc3RhbnQgY29uc3RhbnQ6I09iamVjdClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcGFxdWVcbiAgICovXG4gIENvbnN0YW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgV3JhcCBhIEphdmFTY3JpcHQgcHJpbWl0aXZlIGluIGEgcmVmZXJlbmNlIGFuZCBwdXNoIGl0XG4gICAqICAgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaFByaW1pdGl2ZSBjb25zdGFudDojUHJpbWl0aXZlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi4sIFByaW1pdGl2ZVxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBUaGUgdHdvIGhpZ2ggYml0cyBvZiB0aGUgY29uc3RhbnQgcmVmZXJlbmNlIGRlc2NyaWJlXG4gICAqICAgdGhlIGtpbmQgb2YgcHJpbWl0aXZlOlxuICAgKlxuICAgKiAgIDAwOiBudW1iZXJcbiAgICogICAwMTogc3RyaW5nXG4gICAqICAgMTA6IHRydWUgfCBmYWxzZSB8IG51bGwgfCB1bmRlZmluZWRcbiAgICovXG4gIFByaW1pdGl2ZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb252ZXJ0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGludG8gYSBwcmltaXRpdmUgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFByaW1pdGl2ZVJlZmVyZW5jZSlcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFByaW1pdGl2ZSDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8UHJpbWl0aXZlPlxuICAgKi9cbiAgUHJpbWl0aXZlUmVmZXJlbmNlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IER1cGxpY2F0ZSBhbmQgcHVzaCBpdGVtIGZyb20gYW4gb2Zmc2V0IGluIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEdXAgcmVnaXN0ZXI6dTMyLCBvZmZzZXQ6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlLCBPcGFxdWVcbiAgICovXG4gIER1cCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQb3AgTiBpdGVtcyBvZmYgdGhlIHN0YWNrIGFuZCB0aHJvdyBhd2F5IHRoZSB2YWx1ZS5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQb3ApXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBPcGFxdWUsIC4uLiwgT3BhcXVlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IExvYWQgYSB2YWx1ZSBpbnRvIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChMb2FkIHJlZ2lzdGVyOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIE9wYXF1ZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIExvYWQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRmV0Y2ggYSB2YWx1ZSBmcm9tIGEgcmVnaXN0ZXJcbiAgICogRm9ybWF0OlxuICAgKiAgIChGZXRjaCByZWdpc3Rlcjp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgT3BhcXVlXG4gICAqL1xuICBGZXRjaCxcblxuICAvLy8gUFJFTFVERSAmIEVYSVRcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IHJvb3Qgc2NvcGUgb250byB0aGUgc2NvcGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUm9vdFNjb3BlIHN5bWJvbHM6dTMyIGJpbmRDYWxsZXJTY29wZTpib29sKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgQSByb290IHNjb3BlIGhhcyBubyBwYXJlbnQgc2NvcGUsIGFuZCB0aGVyZWZvcmUgaW5oZXJpdHMgbm8gbGV4aWNhbFxuICAgKiAgIHZhcmlhYmxlcy4gSWYgYGJpbmRDYWxsZXJTY29wZWAgaXMgYHRydWVgLCB0aGUgY3VycmVudCBzY29wZSByZW1lbWJlcnNcbiAgICogICB0aGUgY2FsbGVyIHNjb3BlIChmb3IgeWllbGRpbmcgYmxvY2tzKS5cbiAgICovXG4gIFJvb3RTY29wZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgbmV3IGNoaWxkIHNjb3BlIG9udG8gdGhlIHNjb3BlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENoaWxkU2NvcGUpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBBIGNoaWxkIHNjb3BlIGluaGVyaXRzIGZyb20gdGhlIGN1cnJlbnQgcGFyZW50IHNjb3BlLCBhbmQgdGhlcmVmb3JlXG4gICAqICAgc2hhcmVzIGl0cyBsZXhpY2FsIHZhcmlhYmxlcy5cbiAgICovXG4gIENoaWxkU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wIHRoZSBjdXJyZW50IHNjb3BlIGZyb20gdGhlIHNjb3BlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcFNjb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFBvcFNjb3BlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFJldHVybiB0byB0aGUgcHJldmlvdXMgZnJhbWUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmV0dXJuKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgYWRkcmVzczpudW1iZXIg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBSZXR1cm4sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmV0dXJuIHRvIGEgcGxhY2UgaW4gdGhlIHByb2dyYW0gZ2l2ZW4gYW4gb2Zmc2V0XG4gICAqIEZvcm1hdDpcbiAgICogIChSZXR1cm5UbyBvZmZzZXQ6aTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICAuLi4g4oaSXG4gICAqL1xuICBSZXR1cm5UbyxcblxuICAvLy8gSFRNTFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFwcGVuZCBhIFRleHQgbm9kZSB3aXRoIHZhbHVlIGBjb250ZW50c2BcbiAgICogRm9ybWF0OlxuICAgKiAgIChUZXh0IGNvbnRlbnRzOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgVGV4dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBcHBlbmQgYSBDb21tZW50IG5vZGUgd2l0aCB2YWx1ZSBgY29udGVudHNgXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tbWVudCBjb250ZW50czojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogQXBwZW5kIGEgRHluYW1pYyBub2RlIGJhc2VkIG9uIC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQ29udGVudCBpc1RydXN0aW5nOmJvb2xlYW4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgRHluYW1pY0NvbnRlbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50IHRhZzojc3RyaW5nKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgT3BlbiBhIG5ldyBFbGVtZW50IG5hbWVkIGB0YWdgIHdpdGggc3BlY2lhbCBvcGVyYXRpb25zIHByb3ZpZGVkXG4gICAqICAgb24gdGhlIHN0YWNrLlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKE9wZW5FbGVtZW50V2l0aE9wZXJhdGlvbnMgdGFnOiNzdHJpbmcpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBFbGVtZW50T3BlcmF0aW9ucyDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE9wZW5FbGVtZW50V2l0aE9wZXJhdGlvbnMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBPcGVuIGEgbmV3IEVsZW1lbnQgd2l0aCBhIG5hbWUgb24gdGhlIHN0YWNrIGFuZCB3aXRoIHNwZWNpYWxcbiAgICogICBvcGVyYXRpb25zIHByb3ZpZGVkIG9uIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChPcGVuRHluYW1pY0VsZW1lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBzdHJpbmcsIEVsZW1lbnRPcGVyYXRpb25zIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgT3BlbkR5bmFtaWNFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgRWxlbWVudC5cbiAgICogRm9ybWF0OlxuICAgKiAgIChTdGF0aWNBdHRyIG5hbWU6I3N0cmluZyB2YWx1ZTojc3RyaW5nIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgU3RhdGljQXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEFkZCBhbiBhdHRyaWJ1dGUgdG8gdGhlIGN1cnJlbnQgZWxlbWVudCB1c2luZyB0aGUgdmFsdWVcbiAgICogICBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEeW5hbWljQXR0ciBuYW1lOiNzdHJpbmcgdHJ1c3Rpbmc6Ym9vbGVhbiBuYW1lc3BhY2U6T3B0aW9uPCNzdHJpbmc+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgSWYgYHRydXN0aW5nYCBpcyBmYWxzZSwgdGhlIGhvc3QgbWF5IHNhbml0aXplIHRoZSBhdHRyaWJ1dGVcbiAgICogICBiYXNlZCB1cG9uIGtub3duIHJpc2tzLlxuICAgKi9cbiAgRHluYW1pY0F0dHIsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBBZGQgYW4gYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IGVsZW1lbnQgdXNpbmcgdGhlIHZhbHVlXG4gICAqICAgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ29tcG9uZW50QXRyIG5hbWU6I3N0cmluZyB0cnVzdGluZzpib29sZWFuIG5hbWVzcGFjZTpPcHRpb248I3N0cmluZz4pXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgQ29tcG9uZW50QXR0cixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBGaW5pc2ggc2V0dGluZyBhdHRyaWJ1dGVzIG9uIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRmx1c2hFbGVtZW50KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEZsdXNoRWxlbWVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDbG9zZSB0aGUgY3VycmVudCBlbGVtZW50LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENsb3NlRWxlbWVudClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBDbG9zZUVsZW1lbnQsXG5cbiAgLy8vIE1PRElGSUVSXG4gIE1vZGlmaWVyLCAgICAgICAgICAgICAgICAgIC8vIChDb25zdGFudFN0cmluZywgQ29uc3RhbnRPdGhlcjxNb2RpZmllck1hbmFnZXI+LCBDb25zdGFudEV4cHJlc3Npb24pXG5cbiAgLy8vIFdPUk1IT0xFXG4gIFB1c2hSZW1vdGVFbGVtZW50LCAgICAgICAgIC8vICgpXG4gIFBvcFJlbW90ZUVsZW1lbnQsICAgICAgICAgIC8vICgpXG5cbiAgLy8vIERZTkFNSUMgU0NPUEVcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBCaW5kIHN0YWNrIHZhbHVlcyBhcyBkeW5hbWljIHZhcmlhYmxlcy5cbiAgICogRm9ybWF0OlxuICAgKiAgIChCaW5kRHluYW1pY1Njb3BlIG5hbWVzOiNBcnJheTwjc3RyaW5nPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0g4oaSXG4gICAqICAgLi4uXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgaXMgdXNlZCB0byBleHBvc2UgYC13aXRoLWR5bmFtaWMtdmFyc2AsIGFuZCBpcyBhXG4gICAqICAgbmljaGUgZmVhdHVyZS5cbiAgICovXG4gIEJpbmREeW5hbWljU2NvcGUsXG5cbiAgUHVzaER5bmFtaWNTY29wZSwgICAgICAgICAgLy8gKClcbiAgUG9wRHluYW1pY1Njb3BlLCAgICAgICAgICAgLy8gKClcblxuICAvLy8gVk1cblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDb21waWxlIHRoZSBJbmxpbmVCbG9jayBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDb21waWxlQmxvY2spXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBDb21waWxhYmxlQmxvY2sg4oaSXG4gICAqICAgLi4uLCBIYW5kbGVcbiAgICovXG4gIENvbXBpbGVCbG9jayxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgc2NvcGUgb250byB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEJsb2NrU2NvcGUgI1Njb3BlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwg4oaSXG4gICAqICAgLi4uLCBTY29wZVxuICAgKi9cbiAgUHVzaEJsb2NrU2NvcGUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN5bWJvbCB0YWJsZSBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoU3ltYm9sVGFibGUgI1N5bWJvbFRhYmxlKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwg4oaSXG4gICAqICAgLi4uLCBTeW1ib2xUYWJsZVxuICAgKi9cbiAgUHVzaFN5bWJvbFRhYmxlLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV2YWx1YXRlIHRoZSBoYW5kbGUgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlVmlydHVhbClcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIEhhbmRsZSwg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VWaXJ0dWFsLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEV2YWx1YXRlIHRoZSBoYW5kbGUuXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlU3RhdGljIGhhbmRsZTp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlU3RhdGljLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFlpZWxkIHRvIGEgYmxvY2suXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlWWllbGQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMsIFN5bWJvbFRhYmxlLCBIYW5kbGUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBJbnZva2VZaWVsZCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXAgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXAsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0IGlmIHRoZSB2YWx1ZSBhdFxuICAgKiAgIHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIHRydWUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSnVtcElmIHRvOnUzMilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBKdW1wSWYsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBKdW1wIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0IGlmIHRoZSB2YWx1ZSBhdFxuICAgKiAgIHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIGZhbHNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEp1bXBVbmxlc3MgdG86dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEp1bXBVbmxlc3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAkcmEsICRmcFxuICAgKi9cbiAgUHVzaEZyYW1lLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFBvcCBhIHN0YWNrIGZyYW1lXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaEZyYW1lKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgICRyYSwgJGZwIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUG9wRnJhbWUsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTdGFydCB0cmFja2luZyBhIG5ldyBvdXRwdXQgYmxvY2sgdGhhdCBjb3VsZCBjaGFuZ2VcbiAgICogICBpZiBvbmUgb2YgaXRzIGlucHV0cyBjaGFuZ2VzLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEVudGVyIGFyZ3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgU29vbiBhZnRlciB0aGlzIG9wY29kZSwgb25lIG9mIEp1bXAsIEp1bXBJZixcbiAgICogICBvciBKdW1wVW5sZXNzIHdpbGwgcHJvZHVjZSBhbiB1cGRhdGluZyBhc3NlcnRpb24uXG4gICAqICAgSWYgdGhhdCBhc3NlcnRpb24gZmFpbHMsIHRoZSBhcHBlbmRpbmcgVk0gd2lsbFxuICAgKiAgIGJlIHJlLWVudGVyZWQsIGFuZCB0aGUgaW5zdHJ1Y3Rpb25zIGZyb20gYGZyb21gXG4gICAqICAgdG8gYHRvYCB3aWxsIGJlIGV4ZWN1dGVkLlxuICAgKlxuICAgKiAgIFRPRE86IFNhdmUgYW5kIHJlc3RvcmUuXG4gICAqL1xuICBFbnRlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIEZpbmlzaCB0cmFja2luZyB0aGUgY3VycmVudCBibG9jay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChFeGl0KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqICAgVGhpcyBmaW5hbGl6ZXMgdGhlIHZhbGlkYXRvcnMgdGhhdCB0aGUgdXBkYXRpbmdcbiAgICogICBibG9jayBtdXN0IGNoZWNrIHRvIGRldGVybWluZSB3aGV0aGVyIGl0J3Mgc2FmZSB0b1xuICAgKiAgIHNraXAgcnVubmluZyB0aGUgY29udGVudHMuXG4gICAqL1xuICBFeGl0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbnZlcnQgdGhlIHRvcCBvZiB0aGUgc3RhY2sgaW50byBhIGJvb2xlYW4gcmVmZXJlbmNlLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFRvQm9vbGVhbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8T3BhcXVlPiDihpJcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8Ym9vbD5cbiAgICovXG4gIFRvQm9vbGVhbixcblxuICAvLy8gTElTVFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBFbnRlciBhIGxpc3QuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRW50ZXJMaXN0IGFkZHJlc3M6dTMyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgSXRlcmF0b3Ig4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBFbnRlckxpc3QsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogRXhpdCB0aGUgY3VycmVudCBsaXN0LlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEV4aXRMaXN0KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEV4aXRMaXN0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246XG4gICAqICAgQ29udmVydCBhbiBvcGVyYW5kIGFuZCBrZXkgaW50byBhbiBpdGVyYXRvciBhbmRcbiAgICogICBwcmVzZW5jZSByZWZlcmVuY2UuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHV0SXRlcmF0b3IpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBrZXk6c3RyaW5nLCBsaXN0OlZlcnNpb25lZFBhdGhSZWZlcmVuY2Ug4oaSXG4gICAqICAgLi4uLCBpdGVyYXRvcjpSZWZlcmVuY2VJdGVyYXRvciwgcHJlc2VudDpQcmVzZW5jZVJlZmVyZW5jZVxuICAgKi9cbiAgUHV0SXRlcmF0b3IsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBTZXQgdXAgdGhlIHN0YWNrIGZvciBpdGVyYXRpbmcgZm9yIGEgZ2l2ZW4ga2V5LFxuICAgKiAgIG9yIGp1bXAgdG8gYGVuZGAgaWYgdGhlcmUgaXMgbm90aGluZyBsZWZ0IHRvXG4gICAqICAgaXRlcmF0ZS5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJdGVyYXRlIGVuZDp1MzIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgRm9ybSAxOiAoc29tZXRoaW5nIHRvIGl0ZXJhdGUpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSwgc3RyaW5nXG4gICAqICAgRm9ybSAyOiAobm90aGluZyBsZWZ0IHRvIGl0ZXJhdGUpXG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKiBEZXNjcmlwdGlvbjpcbiAgICogICBJbiBGb3JtIDEsIHRoZSBzdGFjayB3aWxsIGhhdmUgKGluIHJldmVyc2Ugb3JkZXIpOlxuICAgKlxuICAgKiAgIC0gdGhlIGtleSwgYXMgYSBzdHJpbmdcbiAgICogICAtIHRoZSBjdXJyZW50IGl0ZXJhdGVkIHZhbHVlXG4gICAqICAgLSB0aGUgbWVtb2l6ZWQgaXRlcmF0ZWQgdmFsdWVcbiAgICovXG4gIEl0ZXJhdGUsXG5cbiAgLy8vIENPTVBPTkVOVFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBUZXN0IHdoZXRoZXIgYSByZWZlcmVuY2UgY29udGFpbnMgYSBjb21wb25lbnQgZGVmaW5pdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChNYWluIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgSW52b2NhdGlvbiwgQ29tcG9uZW50RGVmaW5pdGlvbiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIE1haW4sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogVGVzdCB3aGV0aGVyIGEgcmVmZXJlbmNlIGNvbnRhaW5zIGEgY29tcG9uZW50IGRlZmluaXRpb24uXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSXNDb21wb25lbnQpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPE9wYXF1ZT4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlPGJvb2xlYW4+XG4gICAqL1xuICBJc0NvbXBvbmVudCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDdXJyeSBhIGNvbXBvbmVudCBkZWZpbml0aW9uIGZvciBhIGxhdGVyIGludm9jYXRpb24uXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQ3VycnlDb21wb25lbnQgdGVtcGxhdGVNZXRhOiNUZW1wbGF0ZU1ldGEpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlLCBbVmVyc2lvbmVkUGF0aFJlZmVyZW5jZSAuLi5dLCBBcmd1bWVudHMg4oaSXG4gICAqICAgLi4uLCB7IFZlcnNpb25lZFBhdGhSZWZlcmVuY2UsIFRlbXBsYXRlTWV0YSwgQ2FwdHVyZWRBcmd1bWVudHMgfVxuICAgKi9cbiAgQ3VycnlDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCBhbiBhcHByb3ByaWF0ZSBjb21wb25lbnQgbWFuYWdlciBvbnRvIHRoZSBzdGFjay5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXNoQ29tcG9uZW50TWFuYWdlciAjQ29tcG9uZW50U3BlYylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCB7IENvbXBvbmVudERlZmluaXRpb24sIENvbXBvbmVudE1hbmFnZXIgfVxuICAgKi9cbiAgUHVzaENvbXBvbmVudERlZmluaXRpb24sXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBQdXNoIGFuIGFwcHJvcHJpYXRlIGNvbXBvbmVudCBtYW5hZ2VyIG9udG8gdGhlIHN0YWNrIGZyb21cbiAgICogICBhIHJ1bnRpbWUtcmVzb2x2ZWQgY29tcG9uZW50IGRlZmluaXRpb24uXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyIHRlbXBsYXRlTWV0YTojVGVtcGxhdGVNZXRhKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZTxPcGFxdWU+IOKGklxuICAgKiAgIC4uLiwgeyBDb21wb25lbnREZWZpbml0aW9uLCBDb21wb25lbnRNYW5hZ2VyIH1cbiAgICovXG4gIFB1c2hEeW5hbWljQ29tcG9uZW50TWFuYWdlcixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIGEgdXNlciByZXByZXNlbnRhdGlvbiBvZiBhcmdzIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFB1c2hBcmdzIG5hbWVzOiNBcnJheTwjc3RyaW5nPiBwb3NpdGlvbmFsQ291bnQ6dTMyIHN5bnRoZXRpYzojYm9vbGVhbilcbiAgICpcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0gIOKGklxuICAgKiAgIC4uLiwgW1ZlcnNpb25lZFBhdGhSZWZlcmVuY2UgLi4uXSwgQXJndW1lbnRzXG4gICAqXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiAgIFRoaXMgYXJndW1lbnRzIG9iamVjdCBpcyBvbmx5IG5lY2Vzc2FyeSB3aGVuIGNhbGxpbmcgaW50b1xuICAgKiAgIHVzZXItc3BlY2lmaWVkIGhvb2tzLiBJdCBpcyBtZWFudCB0byBiZSBpbXBsZW1lbnRlZCBhcyBhXG4gICAqICAgdHJhbnNpZW50IHByb3h5IHRoYXQgcmVhZHMgaW50byB0aGUgc3RhY2sgYXMgbmVlZGVkLlxuICAgKiAgIEhvbGRpbmcgb250byB0aGUgQXJndW1lbnRzIGFmdGVyIHRoZSBjYWxsIGhhcyBjb21wbGV0ZWQgaXNcbiAgICogICBpbGxlZ2FsLlxuICAgKi9cbiAgUHVzaEFyZ3MsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUG9wcyBBcmd1bWVudHMgZnJvbSB0aGUgc3RhY2sgYW5kIGNsZWFycyB0aGUgbmV4dCBOIGFyZ3MuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUG9wQXJncylcbiAgICpcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFtWZXJzaW9uZWRQYXRoUmVmZXJlbmNlIC4uLl0sIEFyZ3VtZW50cyAg4oaSXG4gICAqICAgLi4uXG4gICAqXG4gICAqIERlc2NyaXB0aW9uOlxuICAgKiBUaGUgYXJndW1lbnRzIG9iamVjdCBjb250YWlucyB0aGUgaW5mb3JtYXRpb24gb2YgaG93IG1hbnkgdXNlclxuICAgKiBzdXBwbGllZCBhcmdzIHRoZSBjb21wb25lbnQgd2FzIGludm9rZWQgd2l0aC4gVG8gY2xlYXIgdGhlbSBmcm9tXG4gICAqIHRoZSBzdGFjayB3ZSBtdXN0IHBvcCBpdCBmcm9tIHRoZSBzdGFjayBhbmQgY2FsbCBgY2xlYXJgIG9uIGl0XG4gICAqIHRvIHJlbW92ZSB0aGUgYXJndW1lbnQgdmFsdWVzIGZyb20gdGhlIHN0YWNrLlxuICAgKi9cbiAgUG9wQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiAuLi5cbiAgICogRm9ybWF0OlxuICAgKiAgIChQcmVwYXJlQXJncyBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQcmVwYXJlQXJncyxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBDcmVhdGUgdGhlIGNvbXBvbmVudCBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFjay5cbiAgICogRm9ybWF0OlxuICAgKiAgIChDcmVhdGVDb21wb25lbnQgZmxhZ3M6dTMyIHN0YXRlOnJlZ2lzdGVyKVxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICogRGVzY3JpcHRpb246XG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgRmxhZ3M6XG4gICAqXG4gICAqICAgKiAwYjAwMTogSGFzIGEgZGVmYXVsdCBibG9ja1xuICAgKiAgICogMGIwMTA6IEhhcyBhbiBpbnZlcnNlIGJsb2NrXG4gICAqL1xuICBDcmVhdGVDb21wb25lbnQsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUmVnaXN0ZXIgYSBkZXN0cnVjdG9yIGZvciB0aGUgY3VycmVudCBjb21wb25lbnRcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3Igc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgUmVnaXN0ZXJDb21wb25lbnREZXN0cnVjdG9yLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IFB1c2ggYSBuZXcgRWxlbWVudE9wZXJhdGlvbnMgZm9yIHRoZSBjdXJyZW50IGNvbXBvbmVudC5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChQdXRDb21wb25lbnRPcGVyYXRpb25zKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIFB1dENvbXBvbmVudE9wZXJhdGlvbnMsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjogUHVzaCB0aGUgY29tcG9uZW50J3MgYHNlbGZgIG9udG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKEdldENvbXBvbmVudFNlbGYgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgVmVyc2lvbmVkUGF0aFJlZmVyZW5jZVxuICAgKi9cbiAgR2V0Q29tcG9uZW50U2VsZixcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBQdXNoIHRoZSBjb21wb25lbnQncyBgc2VsZmAgb250byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoR2V0Q29tcG9uZW50VGFnTmFtZSBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBPcHRpb248c3RyaW5nPlxuICAgKi9cbiAgR2V0Q29tcG9uZW50VGFnTmFtZSxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBHZXQgdGhlIGNvbXBvbmVudCBsYXlvdXQgZnJvbSB0aGUgbWFuYWdlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChHZXRDb21wb25lbnRMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLiwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBIYW5kbGVcbiAgICovXG4gIEdldENvbXBvbmVudExheW91dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOlxuICAgKiAgIFBvcHVsYXRlIHRoZSBzdGF0ZSByZWdpc3RlciB3aXRoIHRoZSBsYXlvdXQgY3VycmVudGx5XG4gICAqICAgb24gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKFBvcHVsYXRlTGF5b3V0IHN0YXRlOnJlZ2lzdGVyKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiwgUHJvZ3JhbVN5bWJvbFRhYmxlLCBIYW5kbGUg4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBQb3B1bGF0ZUxheW91dCxcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBJbnZva2UgdGhlIGxheW91dCByZXR1cm5lZCBieSB0aGUgbWFuYWdlci5cbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChJbnZva2VDb21wb25lbnRMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uIOKGklxuICAgKiAgIC4uLlxuICAgKi9cbiAgSW52b2tlQ29tcG9uZW50TGF5b3V0LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEJlZ2luIGEgbmV3IGNhY2hlIGdyb3VwXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoQmVnaW5Db21wb25lbnRUcmFuc2FjdGlvbilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIENvbXBvbmVudE1hbmFnZXI8VD4sIFQg4oaSXG4gICAqICAgLi4uLCBDb21wb25lbnRNYW5hZ2VyPFQ+LCBUXG4gICAqL1xuICBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IENvbW1pdCB0aGUgY3VycmVudCBjYWNoZSBncm91cFxuICAgKlxuICAgKiBGb3JtYXQ6XG4gICAqICAgKENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uKVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uLFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRDcmVhdGVFbGVtZW50IG9uIHRoZSBjdXJyZW50IGNvbXBvbmVudCBtYW5hZ2VyXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoRGlkQ3JlYXRlRWxlbWVudCBzdGF0ZTpyZWdpc3RlcilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uXG4gICAqL1xuICBEaWRDcmVhdGVFbGVtZW50LFxuXG4gIC8qKlxuICAgKiBPcGVyYXRpb246IEludm9rZSBkaWRSZW5kZXJMYXlvdXQgb24gdGhlIGN1cnJlbnQgY29tcG9uZW50IG1hbmFnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEaWRSZW5kZXJMYXlvdXQgc3RhdGU6cmVnaXN0ZXIpXG4gICAqIE9wZXJhbmQgU3RhY2s6XG4gICAqICAgLi4uLCDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERpZFJlbmRlckxheW91dCxcblxuICAvLy8gUEFSVElBTFNcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBMb29rdXAgYW5kIGludm9rZSBhIHBhcnRpYWwgdGVtcGxhdGUuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoSW52b2tlUGFydGlhbCB0ZW1wbGF0ZU1ldGE6I1RlbXBsYXRlTWV0YSBzeW1ib2xzOiNBcnJheTwjc3RyaW5nPiBldmFsSW5mbzojQXJyYXk8bnVtYmVyPilcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4sIFZlcnNpb25lZFBhdGhSZWZlcmVuY2U8c3RyaW5nPiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIEludm9rZVBhcnRpYWwsXG5cbiAgLyoqXG4gICAqIE9wZXJhdGlvbjpcbiAgICogICBSZXNvbHZlIHt7Zm9vfX0gaW5zaWRlIGEgcGFydGlhbCwgd2hpY2ggY291bGQgYmUgZWl0aGVyIGEgc2VsZi1sb29rdXBcbiAgICogICBvciBhIGxvY2FsIHZhcmlhYmxlIHRoYXQgaXMgaW4tc2NvcGUgZm9yIHRoZSBjYWxsZXIuXG4gICAqXG4gICAqIEZvcm1hdDpcbiAgICogICAoUmVzb2x2ZU1heWJlTG9jYWwgbG9jYWw6I3N0cmluZylcbiAgICogT3BlcmFuZCBTdGFjazpcbiAgICogICAuLi4g4oaSXG4gICAqICAgLi4uLCBWZXJzaW9uZWRQYXRoUmVmZXJlbmNlXG4gICAqL1xuICBSZXNvbHZlTWF5YmVMb2NhbCxcblxuICAvLy8gREVCVUdHRVJcblxuICAvKipcbiAgICogT3BlcmF0aW9uOiBBY3RpdmF0ZSB0aGUgZGVidWdnZXJcbiAgICpcbiAgICogRm9ybWF0OlxuICAgKiAgIChEZWJ1Z2dlciBzeW1ib2xzOiNBcnJheTxzdHJpbmc+IGV2YWxJbmZvOiNBcnJheTxudW1iZXI+KVxuICAgKiBPcGVyYW5kIFN0YWNrOlxuICAgKiAgIC4uLiDihpJcbiAgICogICAuLi5cbiAgICovXG4gIERlYnVnZ2VyLFxuXG4gIC8qKiBUaGUgc2l6ZSBvZiB0aGUgb3Bjb2RlIGxpc3QgKi9cbiAgU2l6ZVxufVxuIl19

@@ -575,2 +575,12 @@ export declare const enum Op {

* Format:
* (Main state:register)
* Operand Stack:
* ..., Invocation, ComponentDefinition →
* ...
*/
Main = 57,
/**
* Operation: Test whether a reference contains a component definition.
*
* Format:
* (IsComponent)

@@ -581,3 +591,3 @@ * Operand Stack:

*/
IsComponent = 57,
IsComponent = 58,
/**

@@ -592,3 +602,3 @@ * Operation: Curry a component definition for a later invocation.

*/
CurryComponent = 58,
CurryComponent = 59,
/**

@@ -603,3 +613,3 @@ * Operation: Push an appropriate component manager onto the stack.

*/
PushComponentDefinition = 59,
PushComponentDefinition = 60,
/**

@@ -616,3 +626,3 @@ * Operation:

*/
PushDynamicComponentManager = 60,
PushDynamicComponentManager = 61,
/**

@@ -635,3 +645,3 @@ * Operation: Push a user representation of args onto the stack.

*/
PushArgs = 61,
PushArgs = 62,
/**

@@ -653,7 +663,7 @@ * Operation: Pops Arguments from the stack and clears the next N args.

*/
PopArgs = 62,
PopArgs = 63,
/**
* Operation: ...
* Format:
* (PrepareArgs state:u32)
* (PrepareArgs state:register)
* Operand Stack:

@@ -663,7 +673,7 @@ * ... →

*/
PrepareArgs = 63,
PrepareArgs = 64,
/**
* Operation: Create the component and push it onto the stack.
* Format:
* (CreateComponent flags:u32 state:u32)
* (CreateComponent flags:u32 state:register)
* ... →

@@ -678,3 +688,3 @@ * ...

*/
CreateComponent = 64,
CreateComponent = 65,
/**

@@ -684,3 +694,3 @@ * Operation: Register a destructor for the current component

* Format:
* (RegisterComponentDestructor state:u32)
* (RegisterComponentDestructor state:register)
* Operand Stack:

@@ -690,3 +700,3 @@ * ... →

*/
RegisterComponentDestructor = 65,
RegisterComponentDestructor = 66,
/**

@@ -701,3 +711,3 @@ * Operation: Push a new ElementOperations for the current component.

*/
PutComponentOperations = 66,
PutComponentOperations = 67,
/**

@@ -707,3 +717,3 @@ * Operation: Push the component's `self` onto the stack.

* Format:
* (GetComponentSelf state:u32)
* (GetComponentSelf state:register)
* Operand Stack:

@@ -713,3 +723,3 @@ * ... →

*/
GetComponentSelf = 67,
GetComponentSelf = 68,
/**

@@ -719,3 +729,3 @@ * Operation: Push the component's `self` onto the stack.

* Format:
* (GetComponentTagName state:u32)
* (GetComponentTagName state:register)
* Operand Stack:

@@ -725,3 +735,3 @@ * ... →

*/
GetComponentTagName = 68,
GetComponentTagName = 69,
/**

@@ -731,3 +741,3 @@ * Operation: Get the component layout from the manager.

* Format:
* (GetComponentLayout state:u32)
* (GetComponentLayout state:register)
* Operand Stack:

@@ -737,8 +747,10 @@ * ... →

*/
GetComponentLayout = 69,
GetComponentLayout = 70,
/**
* Operation: Invoke the layout returned by the manager.
* Operation:
* Populate the state register with the layout currently
* on the stack.
*
* Format:
* (InvokeComponentLayout)
* (PopulateLayout state:register)
* Operand Stack:

@@ -748,4 +760,14 @@ * ..., ProgramSymbolTable, Handle →

*/
InvokeComponentLayout = 70,
PopulateLayout = 71,
/**
* Operation: Invoke the layout returned by the manager.
*
* Format:
* (InvokeComponentLayout state:register)
* Operand Stack:
* ... →
* ...
*/
InvokeComponentLayout = 72,
/**
* Operation: Begin a new cache group

@@ -759,3 +781,3 @@ *

*/
BeginComponentTransaction = 71,
BeginComponentTransaction = 73,
/**

@@ -770,3 +792,3 @@ * Operation: Commit the current cache group

*/
CommitComponentTransaction = 72,
CommitComponentTransaction = 74,
/**

@@ -776,3 +798,3 @@ * Operation: Invoke didCreateElement on the current component manager

* Format:
* (DidCreateElement state:u32)
* (DidCreateElement state:register)
* Operand Stack:

@@ -782,3 +804,3 @@ * ... →

*/
DidCreateElement = 73,
DidCreateElement = 75,
/**

@@ -788,3 +810,3 @@ * Operation: Invoke didRenderLayout on the current component manager

* Format:
* (DidRenderLayout state:u32)
* (DidRenderLayout state:register)
* Operand Stack:

@@ -794,3 +816,3 @@ * ..., →

*/
DidRenderLayout = 74,
DidRenderLayout = 76,
/**

@@ -805,3 +827,3 @@ * Operation: Lookup and invoke a partial template.

*/
InvokePartial = 75,
InvokePartial = 77,
/**

@@ -818,3 +840,3 @@ * Operation:

*/
ResolveMaybeLocal = 76,
ResolveMaybeLocal = 78,
/**

@@ -829,5 +851,5 @@ * Operation: Activate the debugger

*/
Debugger = 77,
Debugger = 79,
/** The size of the opcode list */
Size = 78,
Size = 80,
}
{
"name": "@glimmer/vm",
"version": "0.29.10",
"version": "0.30.0",
"repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/vm",
"dependencies": {
"@glimmer/util": "^0.29.10",
"@glimmer/interfaces": "^0.29.10",
"@glimmer/program": "^0.29.10"
"@glimmer/util": "^0.30.0",
"@glimmer/interfaces": "^0.30.0",
"@glimmer/program": "^0.30.0"
},
"devDependencies": {
"@glimmer/debug": "^0.29.10",
"@glimmer/debug": "^0.30.0",
"@types/qunit": "^2.0.31",

@@ -13,0 +13,0 @@ "typescript": "^2.2.0"

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc