"use strict"; // tslint:disable:enforce-name-casing Object.defineProperty(exports, "__esModule", { value: true }); exports.SymbolTag = exports.SymbolKind = exports.DiagnosticSeverity = exports.DiagnosticTag = exports.FailureHandlingKind = exports.ResourceOperationKind = exports.ErrorCode = exports.Method = void 0; /** * JSON-RPC Methods. */ var Method; (function (Method) { Method["CancelRequest"] = "$/cancelRequest"; Method["ClientRegisterCapability"] = "client/registerCapability"; Method["ColabPipLogChanged"] = "colab/pipLogChanged"; Method["CompletionItemResolve"] = "completionItem/resolve"; Method["Initialize"] = "initialize"; Method["Initialized"] = "initialized"; Method["TextDocumentAutoExecuteCheck"] = "textDocument/autoExecuteCheck"; Method["TextDocumentCodeAction"] = "textDocument/codeAction"; Method["TextDocumentCompletion"] = "textDocument/completion"; Method["TextDocumentDefinition"] = "textDocument/definition"; Method["TextDocumentDidChange"] = "textDocument/didChange"; Method["TextDocumentDidClose"] = "textDocument/didClose"; Method["TextDocumentDidOpen"] = "textDocument/didOpen"; Method["TextDocumentEchoDocument"] = "textDocument/echoDocument"; Method["TextDocumentHover"] = "textDocument/hover"; Method["TextDocumentCellDependents"] = "textDocument/cellDependents"; Method["TextDocumentCellPrerequisites"] = "textDocument/cellPrerequisites"; Method["TextDocumentInlayHint"] = "textDocument/inlayHint"; Method["TextDocumentPublishDiagnostics"] = "textDocument/publishDiagnostics"; Method["TextDocumentPrepareRename"] = "textDocument/prepareRename"; Method["TextDocumentRename"] = "textDocument/rename"; Method["TextDocumentRepair"] = "textDocument/repair"; Method["TextDocumentSignatureHelp"] = "textDocument/signatureHelp"; Method["WindowLogMessage"] = "window/logMessage"; Method["WorkspaceConfiguration"] = "workspace/configuration"; Method["WorkspaceDidChangeConfiguration"] = "workspace/didChangeConfiguration"; Method["WorkspaceDidChangeWatchedFiles"] = "workspace/didChangeWatchedFiles"; })(Method || (exports.Method = Method = {})); /** * https://microsoft.github.io/language-server-protocol/specifications/specification-current/#responseMessage */ var ErrorCode; (function (ErrorCode) { // Defined by JSON RPC ErrorCode[ErrorCode["ParseError"] = -32700] = "ParseError"; ErrorCode[ErrorCode["InvalidRequest"] = -32600] = "InvalidRequest"; ErrorCode[ErrorCode["MethodNotFound"] = -32601] = "MethodNotFound"; ErrorCode[ErrorCode["InvalidParams"] = -32602] = "InvalidParams"; ErrorCode[ErrorCode["InternalError"] = -32603] = "InternalError"; ErrorCode[ErrorCode["ServerErrorStart"] = -32099] = "ServerErrorStart"; ErrorCode[ErrorCode["ServerErrorEnd"] = -32000] = "ServerErrorEnd"; ErrorCode[ErrorCode["ServerNotInitialized"] = -32002] = "ServerNotInitialized"; ErrorCode[ErrorCode["UnknownErrorCode"] = -32001] = "UnknownErrorCode"; // Defined by the protocol. ErrorCode[ErrorCode["RequestCancelled"] = -32800] = "RequestCancelled"; ErrorCode[ErrorCode["ContentModified"] = -32801] = "ContentModified"; })(ErrorCode || (exports.ErrorCode = ErrorCode = {})); /** * The kind of resource operations supported by the client. */ var ResourceOperationKind; (function (ResourceOperationKind) { /** * Supports creating new files and folders. */ ResourceOperationKind["CREATE"] = "create"; /** * Supports renaming existing files and folders. */ ResourceOperationKind["RENAME"] = "rename"; /** * Supports deleting existing files and folders. */ ResourceOperationKind["DELETE"] = "delete"; })(ResourceOperationKind || (exports.ResourceOperationKind = ResourceOperationKind = {})); /** * https://microsoft.github.io/language-server-protocol/specifications/specification-current/#workspaceEditClientCapabilities */ var FailureHandlingKind; (function (FailureHandlingKind) { /** * Applying the workspace change is simply aborted if one of the changes * provided fails. * All operations executed before the failing operation stay executed. */ FailureHandlingKind["Abort"] = "abort"; /** * All operations are executed transactional. That means they either all * succeed or no changes at all are applied to the workspace. */ FailureHandlingKind["Transactional"] = "transactional"; /** * If the workspace edit contains only textual file changes, they are * executed transactionally. * If resource changes (create, rename or delete file) are part of the * change, the failure handling strategy is abort. */ FailureHandlingKind["TextOnlyTransactional"] = "textOnlyTransactional"; /** * The client tries to undo the operations already executed. But there is no * guarantee that this is succeeding. */ FailureHandlingKind["Undo"] = "undo"; })(FailureHandlingKind || (exports.FailureHandlingKind = FailureHandlingKind = {})); /** * The diagnostic tags. * * @since 3.15.0 */ var DiagnosticTag; (function (DiagnosticTag) { /** * Unused or unnecessary code. * * Clients are allowed to render diagnostics with this tag faded out * instead of having an error squiggle. */ DiagnosticTag[DiagnosticTag["Unnecessary"] = 1] = "Unnecessary"; /** * Deprecated or obsolete code. * * Clients are allowed to rendered diagnostics with this tag strike through. */ DiagnosticTag[DiagnosticTag["Deprecated"] = 2] = "Deprecated"; })(DiagnosticTag || (exports.DiagnosticTag = DiagnosticTag = {})); /** * https://microsoft.github.io/language-server-protocol/specifications/specification-current/#diagnostic */ var DiagnosticSeverity; (function (DiagnosticSeverity) { /** * Reports an error. */ DiagnosticSeverity[DiagnosticSeverity["Error"] = 1] = "Error"; /** * Reports a warning. */ DiagnosticSeverity[DiagnosticSeverity["Warning"] = 2] = "Warning"; /** * Reports an information. */ DiagnosticSeverity[DiagnosticSeverity["Information"] = 3] = "Information"; /** * Reports a hint. */ DiagnosticSeverity[DiagnosticSeverity["Hint"] = 4] = "Hint"; })(DiagnosticSeverity || (exports.DiagnosticSeverity = DiagnosticSeverity = {})); /** * A symbol kind. */ var SymbolKind; (function (SymbolKind) { SymbolKind[SymbolKind["File"] = 1] = "File"; SymbolKind[SymbolKind["Module"] = 2] = "Module"; SymbolKind[SymbolKind["Namespace"] = 3] = "Namespace"; SymbolKind[SymbolKind["Package"] = 4] = "Package"; SymbolKind[SymbolKind["Class"] = 5] = "Class"; SymbolKind[SymbolKind["Method"] = 6] = "Method"; SymbolKind[SymbolKind["Property"] = 7] = "Property"; SymbolKind[SymbolKind["Field"] = 8] = "Field"; SymbolKind[SymbolKind["Constructor"] = 9] = "Constructor"; SymbolKind[SymbolKind["Enum"] = 10] = "Enum"; SymbolKind[SymbolKind["Interface"] = 11] = "Interface"; SymbolKind[SymbolKind["Function"] = 12] = "Function"; SymbolKind[SymbolKind["Variable"] = 13] = "Variable"; SymbolKind[SymbolKind["Constant"] = 14] = "Constant"; SymbolKind[SymbolKind["String"] = 15] = "String"; SymbolKind[SymbolKind["Number"] = 16] = "Number"; SymbolKind[SymbolKind["Boolean"] = 17] = "Boolean"; SymbolKind[SymbolKind["Array"] = 18] = "Array"; SymbolKind[SymbolKind["Object"] = 19] = "Object"; SymbolKind[SymbolKind["Key"] = 20] = "Key"; SymbolKind[SymbolKind["Null"] = 21] = "Null"; SymbolKind[SymbolKind["EnumMember"] = 22] = "EnumMember"; SymbolKind[SymbolKind["Struct"] = 23] = "Struct"; SymbolKind[SymbolKind["Event"] = 24] = "Event"; SymbolKind[SymbolKind["Operator"] = 25] = "Operator"; SymbolKind[SymbolKind["TypeParameter"] = 26] = "TypeParameter"; })(SymbolKind || (exports.SymbolKind = SymbolKind = {})); /** * Symbol tags are extra annotations that tweak the rendering of a symbol. * * @since 3.16 */ var SymbolTag; (function (SymbolTag) { /** * Render a symbol as obsolete, usually using a strike-out. */ SymbolTag[SymbolTag["Deprecated"] = 1] = "Deprecated"; })(SymbolTag || (exports.SymbolTag = SymbolTag = {})); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG9jb2xfbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2dlbmZpbGVzL3RoaXJkX3BhcnR5L2NvbGFiL3NvdXJjZXMvbHNwL3Byb3RvY29sX25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHFDQUFxQzs7O0FBRXJDOztHQUVHO0FBQ0gsSUFBWSxNQTRCWDtBQTVCRCxXQUFZLE1BQU07SUFDaEIsMkNBQWlDLENBQUE7SUFDakMsZ0VBQXNELENBQUE7SUFDdEQsb0RBQTBDLENBQUE7SUFDMUMsMERBQWdELENBQUE7SUFDaEQsbUNBQXlCLENBQUE7SUFDekIscUNBQTJCLENBQUE7SUFDM0Isd0VBQThELENBQUE7SUFDOUQsNERBQWtELENBQUE7SUFDbEQsNERBQWtELENBQUE7SUFDbEQsNERBQWtELENBQUE7SUFDbEQsMERBQWdELENBQUE7SUFDaEQsd0RBQThDLENBQUE7SUFDOUMsc0RBQTRDLENBQUE7SUFDNUMsZ0VBQXNELENBQUE7SUFDdEQsa0RBQXdDLENBQUE7SUFDeEMsb0VBQTBELENBQUE7SUFDMUQsMEVBQWdFLENBQUE7SUFDaEUsMERBQWdELENBQUE7SUFDaEQsNEVBQWtFLENBQUE7SUFDbEUsa0VBQXdELENBQUE7SUFDeEQsb0RBQTBDLENBQUE7SUFDMUMsb0RBQTBDLENBQUE7SUFDMUMsa0VBQXdELENBQUE7SUFDeEQsZ0RBQXNDLENBQUE7SUFDdEMsNERBQWtELENBQUE7SUFDbEQsOEVBQW9FLENBQUE7SUFDcEUsNEVBQWtFLENBQUE7QUFDcEUsQ0FBQyxFQTVCVyxNQUFNLHNCQUFOLE1BQU0sUUE0QmpCO0FBcUVEOztHQUVHO0FBQ0gsSUFBWSxTQWVYO0FBZkQsV0FBWSxTQUFTO0lBQ25CLHNCQUFzQjtJQUN0QiwwREFBbUIsQ0FBQTtJQUNuQixrRUFBdUIsQ0FBQTtJQUN2QixrRUFBdUIsQ0FBQTtJQUN2QixnRUFBc0IsQ0FBQTtJQUN0QixnRUFBc0IsQ0FBQTtJQUN0QixzRUFBeUIsQ0FBQTtJQUN6QixrRUFBdUIsQ0FBQTtJQUN2Qiw4RUFBNkIsQ0FBQTtJQUM3QixzRUFBeUIsQ0FBQTtJQUV6QiwyQkFBMkI7SUFDM0Isc0VBQXlCLENBQUE7SUFDekIsb0VBQXdCLENBQUE7QUFDMUIsQ0FBQyxFQWZXLFNBQVMseUJBQVQsU0FBUyxRQWVwQjtBQStLRDs7R0FFRztBQUNILElBQVkscUJBYVg7QUFiRCxXQUFZLHFCQUFxQjtJQUMvQjs7T0FFRztJQUNILDBDQUFpQixDQUFBO0lBQ2pCOztPQUVHO0lBQ0gsMENBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCwwQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBYlcscUJBQXFCLHFDQUFyQixxQkFBcUIsUUFhaEM7QUFFRDs7R0FFRztBQUNILElBQVksbUJBMkJYO0FBM0JELFdBQVksbUJBQW1CO0lBQzdCOzs7O09BSUc7SUFDSCxzQ0FBZSxDQUFBO0lBRWY7OztPQUdHO0lBQ0gsc0RBQStCLENBQUE7SUFFL0I7Ozs7O09BS0c7SUFDSCxzRUFBK0MsQ0FBQTtJQUUvQzs7O09BR0c7SUFDSCxvQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQTNCVyxtQkFBbUIsbUNBQW5CLG1CQUFtQixRQTJCOUI7QUF3RUQ7Ozs7R0FJRztBQUNILElBQVksYUFjWDtBQWRELFdBQVksYUFBYTtJQUN2Qjs7Ozs7T0FLRztJQUNILCtEQUFlLENBQUE7SUFDZjs7OztPQUlHO0lBQ0gsNkRBQWMsQ0FBQTtBQUNoQixDQUFDLEVBZFcsYUFBYSw2QkFBYixhQUFhLFFBY3hCO0FBK0NEOztHQUVHO0FBQ0gsSUFBWSxrQkFpQlg7QUFqQkQsV0FBWSxrQkFBa0I7SUFDNUI7O09BRUc7SUFDSCw2REFBUyxDQUFBO0lBQ1Q7O09BRUc7SUFDSCxpRUFBVyxDQUFBO0lBQ1g7O09BRUc7SUFDSCx5RUFBZSxDQUFBO0lBQ2Y7O09BRUc7SUFDSCwyREFBUSxDQUFBO0FBQ1YsQ0FBQyxFQWpCVyxrQkFBa0Isa0NBQWxCLGtCQUFrQixRQWlCN0I7QUFtQkQ7O0dBRUc7QUFDSCxJQUFZLFVBMkJYO0FBM0JELFdBQVksVUFBVTtJQUNwQiwyQ0FBUSxDQUFBO0lBQ1IsK0NBQVUsQ0FBQTtJQUNWLHFEQUFhLENBQUE7SUFDYixpREFBVyxDQUFBO0lBQ1gsNkNBQVMsQ0FBQTtJQUNULCtDQUFVLENBQUE7SUFDVixtREFBWSxDQUFBO0lBQ1osNkNBQVMsQ0FBQTtJQUNULHlEQUFlLENBQUE7SUFDZiw0Q0FBUyxDQUFBO0lBQ1Qsc0RBQWMsQ0FBQTtJQUNkLG9EQUFhLENBQUE7SUFDYixvREFBYSxDQUFBO0lBQ2Isb0RBQWEsQ0FBQTtJQUNiLGdEQUFXLENBQUE7SUFDWCxnREFBVyxDQUFBO0lBQ1gsa0RBQVksQ0FBQTtJQUNaLDhDQUFVLENBQUE7SUFDVixnREFBVyxDQUFBO0lBQ1gsMENBQVEsQ0FBQTtJQUNSLDRDQUFTLENBQUE7SUFDVCx3REFBZSxDQUFBO0lBQ2YsZ0RBQVcsQ0FBQTtJQUNYLDhDQUFVLENBQUE7SUFDVixvREFBYSxDQUFBO0lBQ2IsOERBQWtCLENBQUE7QUFDcEIsQ0FBQyxFQTNCVyxVQUFVLDBCQUFWLFVBQVUsUUEyQnJCO0FBRUQ7Ozs7R0FJRztBQUNILElBQVksU0FNWDtBQU5ELFdBQVksU0FBUztJQUVuQjs7T0FFRztJQUNILHFEQUFjLENBQUE7QUFDaEIsQ0FBQyxFQU5XLFNBQVMseUJBQVQsU0FBUyxRQU1wQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlOmVuZm9yY2UtbmFtZS1jYXNpbmdcblxuLyoqXG4gKiBKU09OLVJQQyBNZXRob2RzLlxuICovXG5leHBvcnQgZW51bSBNZXRob2Qge1xuICBDYW5jZWxSZXF1ZXN0ID0gJyQvY2FuY2VsUmVxdWVzdCcsXG4gIENsaWVudFJlZ2lzdGVyQ2FwYWJpbGl0eSA9ICdjbGllbnQvcmVnaXN0ZXJDYXBhYmlsaXR5JyxcbiAgQ29sYWJQaXBMb2dDaGFuZ2VkID0gJ2NvbGFiL3BpcExvZ0NoYW5nZWQnLFxuICBDb21wbGV0aW9uSXRlbVJlc29sdmUgPSAnY29tcGxldGlvbkl0ZW0vcmVzb2x2ZScsXG4gIEluaXRpYWxpemUgPSAnaW5pdGlhbGl6ZScsXG4gIEluaXRpYWxpemVkID0gJ2luaXRpYWxpemVkJyxcbiAgVGV4dERvY3VtZW50QXV0b0V4ZWN1dGVDaGVjayA9ICd0ZXh0RG9jdW1lbnQvYXV0b0V4ZWN1dGVDaGVjaycsXG4gIFRleHREb2N1bWVudENvZGVBY3Rpb24gPSAndGV4dERvY3VtZW50L2NvZGVBY3Rpb24nLFxuICBUZXh0RG9jdW1lbnRDb21wbGV0aW9uID0gJ3RleHREb2N1bWVudC9jb21wbGV0aW9uJyxcbiAgVGV4dERvY3VtZW50RGVmaW5pdGlvbiA9ICd0ZXh0RG9jdW1lbnQvZGVmaW5pdGlvbicsXG4gIFRleHREb2N1bWVudERpZENoYW5nZSA9ICd0ZXh0RG9jdW1lbnQvZGlkQ2hhbmdlJyxcbiAgVGV4dERvY3VtZW50RGlkQ2xvc2UgPSAndGV4dERvY3VtZW50L2RpZENsb3NlJyxcbiAgVGV4dERvY3VtZW50RGlkT3BlbiA9ICd0ZXh0RG9jdW1lbnQvZGlkT3BlbicsXG4gIFRleHREb2N1bWVudEVjaG9Eb2N1bWVudCA9ICd0ZXh0RG9jdW1lbnQvZWNob0RvY3VtZW50JyxcbiAgVGV4dERvY3VtZW50SG92ZXIgPSAndGV4dERvY3VtZW50L2hvdmVyJyxcbiAgVGV4dERvY3VtZW50Q2VsbERlcGVuZGVudHMgPSAndGV4dERvY3VtZW50L2NlbGxEZXBlbmRlbnRzJyxcbiAgVGV4dERvY3VtZW50Q2VsbFByZXJlcXVpc2l0ZXMgPSAndGV4dERvY3VtZW50L2NlbGxQcmVyZXF1aXNpdGVzJyxcbiAgVGV4dERvY3VtZW50SW5sYXlIaW50ID0gJ3RleHREb2N1bWVudC9pbmxheUhpbnQnLFxuICBUZXh0RG9jdW1lbnRQdWJsaXNoRGlhZ25vc3RpY3MgPSAndGV4dERvY3VtZW50L3B1Ymxpc2hEaWFnbm9zdGljcycsXG4gIFRleHREb2N1bWVudFByZXBhcmVSZW5hbWUgPSAndGV4dERvY3VtZW50L3ByZXBhcmVSZW5hbWUnLFxuICBUZXh0RG9jdW1lbnRSZW5hbWUgPSAndGV4dERvY3VtZW50L3JlbmFtZScsXG4gIFRleHREb2N1bWVudFJlcGFpciA9ICd0ZXh0RG9jdW1lbnQvcmVwYWlyJyxcbiAgVGV4dERvY3VtZW50U2lnbmF0dXJlSGVscCA9ICd0ZXh0RG9jdW1lbnQvc2lnbmF0dXJlSGVscCcsXG4gIFdpbmRvd0xvZ01lc3NhZ2UgPSAnd2luZG93L2xvZ01lc3NhZ2UnLFxuICBXb3Jrc3BhY2VDb25maWd1cmF0aW9uID0gJ3dvcmtzcGFjZS9jb25maWd1cmF0aW9uJyxcbiAgV29ya3NwYWNlRGlkQ2hhbmdlQ29uZmlndXJhdGlvbiA9ICd3b3Jrc3BhY2UvZGlkQ2hhbmdlQ29uZmlndXJhdGlvbicsXG4gIFdvcmtzcGFjZURpZENoYW5nZVdhdGNoZWRGaWxlcyA9ICd3b3Jrc3BhY2UvZGlkQ2hhbmdlV2F0Y2hlZEZpbGVzJyxcbn1cblxuLyoqIEJhc2UgSlNPTi1SUEMgMi4wIHR5cGUuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWVzc2FnZSB7XG4gIGpzb25ycGM6ICcyLjAnO1xufVxuXG4vKipcbiAqIEpTT04tUlBDIDIuMCByZXF1ZXN0LlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI3JlcXVlc3RNZXNzYWdlXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBSZXF1ZXN0TWVzc2FnZTxUPiBleHRlbmRzIE1lc3NhZ2Uge1xuICAvKipcbiAgICogVGhlIHJlcXVlc3QgaWQuXG4gICAqL1xuICBpZDogbnVtYmVyfHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgdG8gYmUgaW52b2tlZC5cbiAgICovXG4gIG1ldGhvZDogTWV0aG9kO1xuICAvKipcbiAgICogVGhlIG1ldGhvZCdzIHBhcmFtcy5cbiAgICovXG4gIHBhcmFtczogVDtcbn1cblxuLyoqXG4gKiBKU09OLVJQQyAyLjAgcmVzcG9uc2UuXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jcmVzcG9uc2VNZXNzYWdlXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBSZXNwb25zZU1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlIHtcbiAgLyoqXG4gICAqIFRoZSByZXF1ZXN0IGlkLlxuICAgKi9cbiAgaWQ6IG51bWJlcnxzdHJpbmd8bnVsbDtcblxuICAvKipcbiAgICogVGhlIHJlc3VsdCBvZiBhIHJlcXVlc3QuIFRoaXMgbWVtYmVyIGlzIFJFUVVJUkVEIG9uIHN1Y2Nlc3MuXG4gICAqIFRoaXMgbWVtYmVyIE1VU1QgTk9UIGV4aXN0IGlmIHRoZXJlIHdhcyBhbiBlcnJvciBpbnZva2luZyB0aGUgbWV0aG9kLlxuICAgKi9cbiAgcmVzdWx0Pzogc3RyaW5nfG51bWJlcnxib29sZWFufG9iamVjdHxudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgZXJyb3Igb2JqZWN0IGluIGNhc2UgYSByZXF1ZXN0IGZhaWxzLlxuICAgKi9cbiAgZXJyb3I/OiBSZXNwb25zZUVycm9yO1xufVxuXG4vKipcbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyNyZXNwb25zZU1lc3NhZ2VcbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJlc3BvbnNlRXJyb3Ige1xuICAvKipcbiAgICogQSBudW1iZXIgaW5kaWNhdGluZyB0aGUgZXJyb3IgdHlwZSB0aGF0IG9jY3VycmVkLlxuICAgKi9cbiAgY29kZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyBwcm92aWRpbmcgYSBzaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGUgZXJyb3IuXG4gICAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgcHJpbWl0aXZlIG9yIHN0cnVjdHVyZWQgdmFsdWUgdGhhdCBjb250YWlucyBhZGRpdGlvbmFsXG4gICAqIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlcnJvci4gQ2FuIGJlIG9taXR0ZWQuXG4gICAqL1xuICBkYXRhPzogc3RyaW5nfG51bWJlcnxib29sZWFufHVua25vd25bXXxvYmplY3R8bnVsbDtcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jcmVzcG9uc2VNZXNzYWdlXG4gKi9cbmV4cG9ydCBlbnVtIEVycm9yQ29kZSB7XG4gIC8vIERlZmluZWQgYnkgSlNPTiBSUENcbiAgUGFyc2VFcnJvciA9IC0zMjcwMCxcbiAgSW52YWxpZFJlcXVlc3QgPSAtMzI2MDAsXG4gIE1ldGhvZE5vdEZvdW5kID0gLTMyNjAxLFxuICBJbnZhbGlkUGFyYW1zID0gLTMyNjAyLFxuICBJbnRlcm5hbEVycm9yID0gLTMyNjAzLFxuICBTZXJ2ZXJFcnJvclN0YXJ0ID0gLTMyMDk5LFxuICBTZXJ2ZXJFcnJvckVuZCA9IC0zMjAwMCxcbiAgU2VydmVyTm90SW5pdGlhbGl6ZWQgPSAtMzIwMDIsXG4gIFVua25vd25FcnJvckNvZGUgPSAtMzIwMDEsXG5cbiAgLy8gRGVmaW5lZCBieSB0aGUgcHJvdG9jb2wuXG4gIFJlcXVlc3RDYW5jZWxsZWQgPSAtMzI4MDAsXG4gIENvbnRlbnRNb2RpZmllZCA9IC0zMjgwMSxcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jbm90aWZpY2F0aW9uTWVzc2FnZVxuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTm90aWZpY2F0aW9uTWVzc2FnZTxUPiBleHRlbmRzIE1lc3NhZ2Uge1xuICAvKipcbiAgICogVGhlIG1ldGhvZCB0byBiZSBpbnZva2VkLlxuICAgKi9cbiAgbWV0aG9kOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBub3RpZmljYXRpb24ncyBwYXJhbXMuXG4gICAqL1xuICBwYXJhbXM6IFQ7XG59XG5cbi8qKlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI2NhbmNlbFJlcXVlc3RcbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIENhbmNlbFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgcmVxdWVzdCBpZCB0byBjYW5jZWwuXG4gICAqL1xuICBpZDogbnVtYmVyfHN0cmluZztcbn1cblxudHlwZSBQcm9ncmVzc1Rva2VuID0gbnVtYmVyfHN0cmluZztcbi8qKlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI3Byb2dyZXNzXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQcm9ncmVzc1BhcmFtczxUPiB7XG4gIC8qKlxuICAgKiBUaGUgcHJvZ3Jlc3MgdG9rZW4gcHJvdmlkZWQgYnkgdGhlIGNsaWVudCBvciBzZXJ2ZXIuXG4gICAqL1xuICB0b2tlbjogUHJvZ3Jlc3NUb2tlbjtcblxuICAvKipcbiAgICogVGhlIHByb2dyZXNzIGRhdGEuXG4gICAqL1xuICB2YWx1ZTogVDtcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jdXJpXG4gKi9cbmV4cG9ydCB0eXBlIERvY3VtZW50VXJpID0gc3RyaW5nO1xuXG4vKipcbiAqIFBvc2l0aW9uIGluIGEgdGV4dCBkb2N1bWVudCBleHByZXNzZWQgYXMgemVyby1iYXNlZCBsaW5lIGFuZCB6ZXJvLWJhc2VkXG4gKiBjaGFyYWN0ZXIgb2Zmc2V0LiBBIHBvc2l0aW9uIGlzIGJldHdlZW4gdHdvIGNoYXJhY3RlcnMgbGlrZSBhbiDigJhpbnNlcnTigJlcbiAqIGN1cnNvciBpbiBhIGVkaXRvci4gU3BlY2lhbCB2YWx1ZXMgbGlrZSBmb3IgZXhhbXBsZSAtMSB0byBkZW5vdGUgdGhlIGVuZCBvZlxuICogYSBsaW5lIGFyZSBub3Qgc3VwcG9ydGVkLlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI3Bvc2l0aW9uXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQb3NpdGlvbiB7XG4gIC8qKlxuICAgKiBMaW5lIHBvc2l0aW9uIGluIGEgZG9jdW1lbnQgKHplcm8tYmFzZWQpLlxuICAgKi9cbiAgbGluZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDaGFyYWN0ZXIgb2Zmc2V0IG9uIGEgbGluZSBpbiBhIGRvY3VtZW50ICh6ZXJvLWJhc2VkKS4gQXNzdW1pbmcgdGhhdCB0aGVcbiAgICogbGluZSBpcyByZXByZXNlbnRlZCBhcyBhIHN0cmluZywgdGhlIGBjaGFyYWN0ZXJgIHZhbHVlIHJlcHJlc2VudHMgdGhlIGdhcFxuICAgKiBiZXR3ZWVuIHRoZSBgY2hhcmFjdGVyYCBhbmQgYGNoYXJhY3RlciArIDFgLlxuICAgKlxuICAgKiBJZiB0aGUgY2hhcmFjdGVyIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbGluZSBsZW5ndGggaXQgZGVmYXVsdHMgYmFja1xuICAgKiB0byB0aGUgbGluZSBsZW5ndGguXG4gICAqL1xuICBjaGFyYWN0ZXI6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jcmFuZ2VcbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJhbmdlIHtcbiAgLyoqXG4gICAqIFRoZSByYW5nZSdzIHN0YXJ0IHBvc2l0aW9uLlxuICAgKi9cbiAgc3RhcnQ6IFBvc2l0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgcmFuZ2UncyBlbmQgcG9zaXRpb24uXG4gICAqL1xuICBlbmQ6IFBvc2l0aW9uO1xufVxuXG4vKipcbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyNsb2NhdGlvblxuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTG9jYXRpb24ge1xuICB1cmk6IERvY3VtZW50VXJpO1xuICByYW5nZTogUmFuZ2U7XG59XG5cbi8qKlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI2xvY2F0aW9uTGlua1xuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTG9jYXRpb25MaW5rIHtcbiAgLyoqXG4gICAqIFNwYW4gb2YgdGhlIG9yaWdpbiBvZiB0aGlzIGxpbmsuXG4gICAqXG4gICAqIFVzZWQgYXMgdGhlIHVuZGVybGluZWQgc3BhbiBmb3IgbW91c2UgaW50ZXJhY3Rpb24uXG4gICAqIERlZmF1bHRzIHRvIHRoZSB3b3JkIHJhbmdlIGF0IHRoZSBtb3VzZSBwb3NpdGlvbi5cbiAgICovXG4gIG9yaWdpblNlbGVjdGlvblJhbmdlPzogUmFuZ2U7XG5cbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgcmVzb3VyY2UgaWRlbnRpZmllciBvZiB0aGlzIGxpbmsuXG4gICAqL1xuICB0YXJnZXRVcmk6IERvY3VtZW50VXJpO1xuXG4gIC8qKlxuICAgKiBUaGUgZnVsbCB0YXJnZXQgcmFuZ2Ugb2YgdGhpcyBsaW5rLlxuICAgKiBGb3IgZXhhbXBsZSwgaWYgdGhlIHRhcmdldCBpcyBhIHN5bWJvbCwgdGhlbiB0YXJnZXQgcmFuZ2UgaXMgdGhlIHJhbmdlXG4gICAqIGVuY2xvc2luZyB0aGlzIHN5bWJvbCBub3QgaW5jbHVkaW5nIGxlYWRpbmcvdHJhaWxpbmcgd2hpdGVzcGFjZSBidXRcbiAgICogZXZlcnl0aGluZyBlbHNlIGxpa2UgY29tbWVudHMuXG4gICAqIFRoaXMgaW5mb3JtYXRpb24gaXMgdHlwaWNhbGx5IHVzZWQgdG8gaGlnaGxpZ2h0IHRoZSByYW5nZSBpbiB0aGUgZWRpdG9yLlxuICAgKi9cbiAgdGFyZ2V0UmFuZ2U6IFJhbmdlO1xuXG4gIC8qKlxuICAgKiBUaGUgcmFuZ2UgdGhhdCBzaG91bGQgYmUgc2VsZWN0ZWQgYW5kIHJldmVhbGVkIHdoZW4gdGhpcyBsaW5rIGlzIGJlaW5nXG4gICAqIGZvbGxvd2VkLCBmb3IgZXhhbXBsZSwgdGhlIG5hbWUgb2YgYSBmdW5jdGlvbi5cbiAgICogTXVzdCBiZSBjb250YWluZWQgYnkgdGhlIGB0YXJnZXRSYW5nZWAuXG4gICAqIFNlZSBhbHNvIGBEb2N1bWVudFN5bWJvbCNyYW5nZWBcbiAgICovXG4gIHRhcmdldFNlbGVjdGlvblJhbmdlOiBSYW5nZTtcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jY29tbWFuZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmQge1xuICAvKipcbiAgICogVGl0bGUgb2YgdGhlIGNvbW1hbmQsIGxpa2UgYHNhdmVgLlxuICAgKi9cbiAgdGl0bGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhY3R1YWwgY29tbWFuZCBoYW5kbGVyLlxuICAgKi9cbiAgY29tbWFuZDogc3RyaW5nO1xuICAvKipcbiAgICogQXJndW1lbnRzIHRoYXQgdGhlIGNvbW1hbmQgaGFuZGxlciBzaG91bGQgYmVcbiAgICogaW52b2tlZCB3aXRoLlxuICAgKi9cbiAgYXJndW1lbnRzPzogdW5rbm93bltdO1xufVxuXG4vKipcbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyN3b3Jrc3BhY2VFZGl0Q2xpZW50Q2FwYWJpbGl0aWVzXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBXb3Jrc3BhY2VFZGl0Q2xpZW50Q2FwYWJpbGl0aWVzIHtcbiAgLyoqXG4gICAqIFRoZSBjbGllbnQgc3VwcG9ydHMgdmVyc2lvbmVkIGRvY3VtZW50IGNoYW5nZXMgaW4gYFdvcmtzcGFjZUVkaXRgc1xuICAgKi9cbiAgZG9jdW1lbnRDaGFuZ2VzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIG9wZXJhdGlvbnMgdGhlIGNsaWVudCBzdXBwb3J0cy4gQ2xpZW50cyBzaG91bGQgYXQgbGVhc3RcbiAgICogc3VwcG9ydCAnY3JlYXRlJywgJ3JlbmFtZScgYW5kICdkZWxldGUnIGZpbGVzIGFuZCBmb2xkZXJzLlxuICAgKlxuICAgKiBAc2luY2UgMy4xMy4wXG4gICAqL1xuICByZXNvdXJjZU9wZXJhdGlvbnM/OiBSZXNvdXJjZU9wZXJhdGlvbktpbmRbXTtcblxuICAvKipcbiAgICogVGhlIGZhaWx1cmUgaGFuZGxpbmcgc3RyYXRlZ3kgb2YgYSBjbGllbnQgaWYgYXBwbHlpbmcgdGhlIHdvcmtzcGFjZSBlZGl0XG4gICAqIGZhaWxzLlxuICAgKlxuICAgKiBAc2luY2UgMy4xMy4wXG4gICAqL1xuICBmYWlsdXJlSGFuZGxpbmc/OiBGYWlsdXJlSGFuZGxpbmdLaW5kO1xufVxuXG4vKipcbiAqIFRoZSBraW5kIG9mIHJlc291cmNlIG9wZXJhdGlvbnMgc3VwcG9ydGVkIGJ5IHRoZSBjbGllbnQuXG4gKi9cbmV4cG9ydCBlbnVtIFJlc291cmNlT3BlcmF0aW9uS2luZCB7XG4gIC8qKlxuICAgKiBTdXBwb3J0cyBjcmVhdGluZyBuZXcgZmlsZXMgYW5kIGZvbGRlcnMuXG4gICAqL1xuICBDUkVBVEUgPSAnY3JlYXRlJyxcbiAgLyoqXG4gICAqIFN1cHBvcnRzIHJlbmFtaW5nIGV4aXN0aW5nIGZpbGVzIGFuZCBmb2xkZXJzLlxuICAgKi9cbiAgUkVOQU1FID0gJ3JlbmFtZScsXG4gIC8qKlxuICAgKiBTdXBwb3J0cyBkZWxldGluZyBleGlzdGluZyBmaWxlcyBhbmQgZm9sZGVycy5cbiAgICovXG4gIERFTEVURSA9ICdkZWxldGUnLFxufVxuXG4vKipcbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyN3b3Jrc3BhY2VFZGl0Q2xpZW50Q2FwYWJpbGl0aWVzXG4gKi9cbmV4cG9ydCBlbnVtIEZhaWx1cmVIYW5kbGluZ0tpbmQge1xuICAvKipcbiAgICogQXBwbHlpbmcgdGhlIHdvcmtzcGFjZSBjaGFuZ2UgaXMgc2ltcGx5IGFib3J0ZWQgaWYgb25lIG9mIHRoZSBjaGFuZ2VzXG4gICAqIHByb3ZpZGVkIGZhaWxzLlxuICAgKiBBbGwgb3BlcmF0aW9ucyBleGVjdXRlZCBiZWZvcmUgdGhlIGZhaWxpbmcgb3BlcmF0aW9uIHN0YXkgZXhlY3V0ZWQuXG4gICAqL1xuICBBYm9ydCA9ICdhYm9ydCcsXG5cbiAgLyoqXG4gICAqIEFsbCBvcGVyYXRpb25zIGFyZSBleGVjdXRlZCB0cmFuc2FjdGlvbmFsLiBUaGF0IG1lYW5zIHRoZXkgZWl0aGVyIGFsbFxuICAgKiBzdWNjZWVkIG9yIG5vIGNoYW5nZXMgYXQgYWxsIGFyZSBhcHBsaWVkIHRvIHRoZSB3b3Jrc3BhY2UuXG4gICAqL1xuICBUcmFuc2FjdGlvbmFsID0gJ3RyYW5zYWN0aW9uYWwnLFxuXG4gIC8qKlxuICAgKiBJZiB0aGUgd29ya3NwYWNlIGVkaXQgY29udGFpbnMgb25seSB0ZXh0dWFsIGZpbGUgY2hhbmdlcywgdGhleSBhcmVcbiAgICogZXhlY3V0ZWQgdHJhbnNhY3Rpb25hbGx5LlxuICAgKiBJZiByZXNvdXJjZSBjaGFuZ2VzIChjcmVhdGUsIHJlbmFtZSBvciBkZWxldGUgZmlsZSkgYXJlIHBhcnQgb2YgdGhlXG4gICAqIGNoYW5nZSwgdGhlIGZhaWx1cmUgaGFuZGxpbmcgc3RyYXRlZ3kgaXMgYWJvcnQuXG4gICAqL1xuICBUZXh0T25seVRyYW5zYWN0aW9uYWwgPSAndGV4dE9ubHlUcmFuc2FjdGlvbmFsJyxcblxuICAvKipcbiAgICogVGhlIGNsaWVudCB0cmllcyB0byB1bmRvIHRoZSBvcGVyYXRpb25zIGFscmVhZHkgZXhlY3V0ZWQuIEJ1dCB0aGVyZSBpcyBub1xuICAgKiBndWFyYW50ZWUgdGhhdCB0aGlzIGlzIHN1Y2NlZWRpbmcuXG4gICAqL1xuICBVbmRvID0gJ3VuZG8nLFxufVxuXG4vKipcbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyNkb2N1bWVudEZpbHRlclxuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRG9jdW1lbnRGaWx0ZXIge1xuICAvKipcbiAgICogQSBsYW5ndWFnZSBpZCwgbGlrZSBgdHlwZXNjcmlwdGAuXG4gICAqL1xuICBsYW5ndWFnZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBVcmkgW3NjaGVtZV0oI1VyaS5zY2hlbWUpLCBsaWtlIGBmaWxlYCBvciBgdW50aXRsZWRgLlxuICAgKi9cbiAgc2NoZW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGdsb2IgcGF0dGVybiwgbGlrZSBgKi57dHMsanN9YC5cbiAgICpcbiAgICogR2xvYiBwYXR0ZXJucyBjYW4gaGF2ZSB0aGUgZm9sbG93aW5nIHN5bnRheDpcbiAgICogLSBgKmAgdG8gbWF0Y2ggb25lIG9yIG1vcmUgY2hhcmFjdGVycyBpbiBhIHBhdGggc2VnbWVudFxuICAgKiAtIGA/YCB0byBtYXRjaCBvbiBvbmUgY2hhcmFjdGVyIGluIGEgcGF0aCBzZWdtZW50XG4gICAqIC0gYCoqYCB0byBtYXRjaCBhbnkgbnVtYmVyIG9mIHBhdGggc2VnbWVudHMsIGluY2x1ZGluZyBub25lXG4gICAqIC0gYHt9YCB0byBncm91cCBjb25kaXRpb25zXG4gICAqICAgKGUuZy4gYCoq4oCLLyoue3RzLGpzfWAgbWF0Y2hlcyBhbGwgVHlwZVNjcmlwdCBhbmQgSmF2YVNjcmlwdCBmaWxlcylcbiAgICogLSBgW11gIHRvIGRlY2xhcmUgYSByYW5nZSBvZiBjaGFyYWN0ZXJzIHRvIG1hdGNoIGluIGEgcGF0aCBzZWdtZW50XG4gICAqICAgKGUuZy4sIGBleGFtcGxlLlswLTldYCB0byBtYXRjaCBvbiBgZXhhbXBsZS4wYCwgYGV4YW1wbGUuMWAsIOKApilcbiAgICogLSBgWyEuLi5dYCB0byBuZWdhdGUgYSByYW5nZSBvZiBjaGFyYWN0ZXJzIHRvIG1hdGNoIGluIGEgcGF0aCBzZWdtZW50XG4gICAqICAgKGUuZy4sIGBleGFtcGxlLlshMC05XWAgdG8gbWF0Y2ggb24gYGV4YW1wbGUuYWAsIGBleGFtcGxlLmJgLFxuICAgKiAgICBidXQgbm90IGBleGFtcGxlLjBgKVxuICAgKi9cbiAgcGF0dGVybj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jZG9jdW1lbnRGaWx0ZXJcbiAqL1xuZXhwb3J0IHR5cGUgRG9jdW1lbnRTZWxlY3RvciA9IERvY3VtZW50RmlsdGVyW107XG5cbi8qKlxuICogU3RhdGljIHJlZ2lzdHJhdGlvbiBvcHRpb25zIHRvIGJlIHJldHVybmVkIGluIHRoZSBpbml0aWFsaXplIHJlcXVlc3QuXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdGF0aWNSZWdpc3RyYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBpZCB1c2VkIHRvIHJlZ2lzdGVyIHRoZSByZXF1ZXN0LiBUaGUgaWQgY2FuIGJlIHVzZWQgdG8gZGVyZWdpc3RlclxuICAgKiB0aGUgcmVxdWVzdCBhZ2Fpbi4gU2VlIGFsc28gUmVnaXN0cmF0aW9uI2lkLlxuICAgKi9cbiAgaWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogR2VuZXJhbCB0ZXh0IGRvY3VtZW50IHJlZ2lzdHJhdGlvbiBvcHRpb25zLlxuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV4dERvY3VtZW50UmVnaXN0cmF0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBIGRvY3VtZW50IHNlbGVjdG9yIHRvIGlkZW50aWZ5IHRoZSBzY29wZSBvZiB0aGUgcmVnaXN0cmF0aW9uLlxuICAgKiBJZiBzZXQgdG8gbnVsbCwgdGhlIGRvY3VtZW50IHNlbGVjdG9yIHByb3ZpZGVkIG9uIHRoZSBjbGllbnQgc2lkZVxuICAgKiB3aWxsIGJlIHVzZWQuXG4gICAqL1xuICBkb2N1bWVudFNlbGVjdG9yOiBEb2N1bWVudFNlbGVjdG9yfG51bGw7XG59XG5cbi8qKlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI2luaXRpYXRpbmdXb3JrRG9uZVByb2dyZXNzXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBXb3JrRG9uZVByb2dyZXNzUGFyYW1zIHtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIHRva2VuIHRoYXQgYSBzZXJ2ZXIgY2FuIHVzZSB0byByZXBvcnQgd29yayBkb25lIHByb2dyZXNzLlxuICAgKi9cbiAgd29ya0RvbmVUb2tlbj86IFByb2dyZXNzVG9rZW47XG59XG5cbi8qKlxuICogVGhlIGRpYWdub3N0aWMgdGFncy5cbiAqXG4gKiBAc2luY2UgMy4xNS4wXG4gKi9cbmV4cG9ydCBlbnVtIERpYWdub3N0aWNUYWcge1xuICAvKipcbiAgICogVW51c2VkIG9yIHVubmVjZXNzYXJ5IGNvZGUuXG4gICAqXG4gICAqIENsaWVudHMgYXJlIGFsbG93ZWQgdG8gcmVuZGVyIGRpYWdub3N0aWNzIHdpdGggdGhpcyB0YWcgZmFkZWQgb3V0XG4gICAqIGluc3RlYWQgb2YgaGF2aW5nIGFuIGVycm9yIHNxdWlnZ2xlLlxuICAgKi9cbiAgVW5uZWNlc3NhcnkgPSAxLFxuICAvKipcbiAgICogRGVwcmVjYXRlZCBvciBvYnNvbGV0ZSBjb2RlLlxuICAgKlxuICAgKiBDbGllbnRzIGFyZSBhbGxvd2VkIHRvIHJlbmRlcmVkIGRpYWdub3N0aWNzIHdpdGggdGhpcyB0YWcgc3RyaWtlIHRocm91Z2guXG4gICAqL1xuICBEZXByZWNhdGVkID0gMixcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jZGlhZ25vc3RpY1xuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRGlhZ25vc3RpYyB7XG4gIC8qKlxuICAgKiBUaGUgcmFuZ2UgYXQgd2hpY2ggdGhlIG1lc3NhZ2UgYXBwbGllcy5cbiAgICovXG4gIHJhbmdlOiBSYW5nZTtcblxuICAvKipcbiAgICogVGhlIGRpYWdub3N0aWMncyBzZXZlcml0eS4gQ2FuIGJlIG9taXR0ZWQuIElmIG9taXR0ZWQgaXQgaXMgdXAgdG8gdGhlXG4gICAqIGNsaWVudCB0byBpbnRlcnByZXQgZGlhZ25vc3RpY3MgYXMgZXJyb3IsIHdhcm5pbmcsIGluZm8gb3IgaGludC5cbiAgICovXG4gIHNldmVyaXR5PzogRGlhZ25vc3RpY1NldmVyaXR5O1xuXG4gIC8qKlxuICAgKiBUaGUgZGlhZ25vc3RpYydzIGNvZGUsIHdoaWNoIG1pZ2h0IGFwcGVhciBpbiB0aGUgdXNlciBpbnRlcmZhY2UuXG4gICAqL1xuICBjb2RlPzogbnVtYmVyfHN0cmluZztcblxuICAvKipcbiAgICogQSBodW1hbi1yZWFkYWJsZSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgc291cmNlIG9mIHRoaXNcbiAgICogZGlhZ25vc3RpYywgZS5nLiAndHlwZXNjcmlwdCcgb3IgJ3N1cGVyIGxpbnQnLlxuICAgKi9cbiAgc291cmNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlhZ25vc3RpYydzIG1lc3NhZ2UuXG4gICAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgbWV0YWRhdGEgYWJvdXQgdGhlIGRpYWdub3N0aWMuXG4gICAqXG4gICAqIEBzaW5jZSAzLjE1LjBcbiAgICovXG4gIHRhZ3M/OiBEaWFnbm9zdGljVGFnW107XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIHJlbGF0ZWQgZGlhZ25vc3RpYyBpbmZvcm1hdGlvbiwgZS5nLiB3aGVuIHN5bWJvbC1uYW1lcyB3aXRoaW5cbiAgICogYSBzY29wZSBjb2xsaWRlIGFsbCBkZWZpbml0aW9ucyBjYW4gYmUgbWFya2VkIHZpYSB0aGlzIHByb3BlcnR5LlxuICAgKi9cbiAgcmVsYXRlZEluZm9ybWF0aW9uPzogRGlhZ25vc3RpY1JlbGF0ZWRJbmZvcm1hdGlvbltdO1xufVxuXG4vKipcbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyNkaWFnbm9zdGljXG4gKi9cbmV4cG9ydCBlbnVtIERpYWdub3N0aWNTZXZlcml0eSB7XG4gIC8qKlxuICAgKiBSZXBvcnRzIGFuIGVycm9yLlxuICAgKi9cbiAgRXJyb3IgPSAxLFxuICAvKipcbiAgICogUmVwb3J0cyBhIHdhcm5pbmcuXG4gICAqL1xuICBXYXJuaW5nID0gMixcbiAgLyoqXG4gICAqIFJlcG9ydHMgYW4gaW5mb3JtYXRpb24uXG4gICAqL1xuICBJbmZvcm1hdGlvbiA9IDMsXG4gIC8qKlxuICAgKiBSZXBvcnRzIGEgaGludC5cbiAgICovXG4gIEhpbnQgPSA0LFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSByZWxhdGVkIG1lc3NhZ2UgYW5kIHNvdXJjZSBjb2RlIGxvY2F0aW9uIGZvciBhIGRpYWdub3N0aWMuXG4gKiBUaGlzIHNob3VsZCBiZSB1c2VkIHRvIHBvaW50IHRvIGNvZGUgbG9jYXRpb25zIHRoYXQgY2F1c2Ugb3IgYXJlIHJlbGF0ZWRcbiAqIHRvIGEgZGlhZ25vc3RpY3MsIGZvciBleGFtcGxlLCB3aGVuIGR1cGxpY2F0aW5nIGEgc3ltYm9sIGluIGEgc2NvcGUuXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEaWFnbm9zdGljUmVsYXRlZEluZm9ybWF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBvZiB0aGlzIHJlbGF0ZWQgZGlhZ25vc3RpYyBpbmZvcm1hdGlvbi5cbiAgICovXG4gIGxvY2F0aW9uOiBMb2NhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG1lc3NhZ2Ugb2YgdGhpcyByZWxhdGVkIGRpYWdub3N0aWMgaW5mb3JtYXRpb24uXG4gICAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBzeW1ib2wga2luZC5cbiAqL1xuZXhwb3J0IGVudW0gU3ltYm9sS2luZCB7XG4gIEZpbGUgPSAxLFxuICBNb2R1bGUgPSAyLFxuICBOYW1lc3BhY2UgPSAzLFxuICBQYWNrYWdlID0gNCxcbiAgQ2xhc3MgPSA1LFxuICBNZXRob2QgPSA2LFxuICBQcm9wZXJ0eSA9IDcsXG4gIEZpZWxkID0gOCxcbiAgQ29uc3RydWN0b3IgPSA5LFxuICBFbnVtID0gMTAsXG4gIEludGVyZmFjZSA9IDExLFxuICBGdW5jdGlvbiA9IDEyLFxuICBWYXJpYWJsZSA9IDEzLFxuICBDb25zdGFudCA9IDE0LFxuICBTdHJpbmcgPSAxNSxcbiAgTnVtYmVyID0gMTYsXG4gIEJvb2xlYW4gPSAxNyxcbiAgQXJyYXkgPSAxOCxcbiAgT2JqZWN0ID0gMTksXG4gIEtleSA9IDIwLFxuICBOdWxsID0gMjEsXG4gIEVudW1NZW1iZXIgPSAyMixcbiAgU3RydWN0ID0gMjMsXG4gIEV2ZW50ID0gMjQsXG4gIE9wZXJhdG9yID0gMjUsXG4gIFR5cGVQYXJhbWV0ZXIgPSAyNixcbn1cblxuLyoqXG4gKiBTeW1ib2wgdGFncyBhcmUgZXh0cmEgYW5ub3RhdGlvbnMgdGhhdCB0d2VhayB0aGUgcmVuZGVyaW5nIG9mIGEgc3ltYm9sLlxuICpcbiAqIEBzaW5jZSAzLjE2XG4gKi9cbmV4cG9ydCBlbnVtIFN5bWJvbFRhZyB7XG5cbiAgLyoqXG4gICAqIFJlbmRlciBhIHN5bWJvbCBhcyBvYnNvbGV0ZSwgdXN1YWxseSB1c2luZyBhIHN0cmlrZS1vdXQuXG4gICAqL1xuICBEZXByZWNhdGVkID0gMSxcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jd29ya3NwYWNlX2V4ZWN1dGVDb21tYW5kXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBFeGVjdXRlQ29tbWFuZENsaWVudENhcGFiaWxpdGllcyB7XG4gIC8qKlxuICAgKiBFeGVjdXRlIGNvbW1hbmQgc3VwcG9ydHMgZHluYW1pYyByZWdpc3RyYXRpb24uXG4gICAqL1xuICBkeW5hbWljUmVnaXN0cmF0aW9uPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jcGFydGlhbFJlc3VsdFBhcmFtc1xuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUGFydGlhbFJlc3VsdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCB0b2tlbiB0aGF0IGEgc2VydmVyIGNhbiB1c2UgdG8gcmVwb3J0IHBhcnRpYWwgcmVzdWx0cyAoZS5nLlxuICAgKiBzdHJlYW1pbmcpIHRvIHRoZSBjbGllbnQuXG4gICAqL1xuICBwYXJ0aWFsUmVzdWx0VG9rZW4/OiBQcm9ncmVzc1Rva2VuO1xufVxuXG4vKipcbiAqIERlZmluZXMgYW4gaW50ZWdlciBudW1iZXIgaW4gdGhlIHJhbmdlIG9mIC0yXjMxIHRvIDJeMzEgLSAxLlxuICovXG5leHBvcnQgdHlwZSBpbnRlZ2VyID0gbnVtYmVyO1xuLyoqXG4gKiBEZWZpbmVzIGFuIHVuc2lnbmVkIGludGVnZXIgbnVtYmVyIGluIHRoZSByYW5nZSBvZiAwIHRvIDJeMzEgLSAxLlxuICovXG5leHBvcnQgdHlwZSB1aW50ZWdlciA9IG51bWJlcjtcbi8qKlxuICogRGVmaW5lcyBhIGRlY2ltYWwgbnVtYmVyLiBTaW5jZSBkZWNpbWFsIG51bWJlcnMgYXJlIHZlcnlcbiAqIHJhcmUgaW4gdGhlIGxhbmd1YWdlIHNlcnZlciBzcGVjaWZpY2F0aW9uIHdlIGRlbm90ZSB0aGVcbiAqIGV4YWN0IHJhbmdlIHdpdGggZXZlcnkgZGVjaW1hbCB1c2luZyB0aGUgbWF0aGVtYXRpY3NcbiAqIGludGVydmFsIG5vdGF0aW9uIChlLmcuIFswLCAxXSBkZW5vdGVzIGFsbCBkZWNpbWFscyBkIHdpdGhcbiAqIDAgPD0gZCA8PSAxLlxuICovXG5leHBvcnQgdHlwZSBkZWNpbWFsID0gbnVtYmVyO1xuXG4vKipcbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyNpbml0aWFsaXplZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluaXRpYWxpemVkIGV4dGVuZHMgTm90aWZpY2F0aW9uTWVzc2FnZTxJbml0aWFsaXplZFBhcmFtcz4ge1xuICBtZXRob2Q6IE1ldGhvZC5Jbml0aWFsaXplZDtcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jaW5pdGlhbGl6ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbml0aWFsaXplZFBhcmFtcyB7fVxuXG4vKipcbiAqIEdlbmVyYWwgcGFyYW1ldGVycyB0byByZWdpc3RlciBmb3IgYSBjYXBhYmlsaXR5LlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI2NsaWVudF9yZWdpc3RlckNhcGFiaWxpdHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RyYXRpb24ge1xuICAvKipcbiAgICogVGhlIGlkIHVzZWQgdG8gcmVnaXN0ZXIgdGhlIHJlcXVlc3QuIFRoZSBpZCBjYW4gYmUgdXNlZCB0byBkZXJlZ2lzdGVyXG4gICAqIHRoZSByZXF1ZXN0IGFnYWluLlxuICAgKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1ldGhvZCAvIGNhcGFiaWxpdHkgdG8gcmVnaXN0ZXIgZm9yLlxuICAgKi9cbiAgbWV0aG9kOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgbmVjZXNzYXJ5IGZvciB0aGUgcmVnaXN0cmF0aW9uLlxuICAgKi9cbiAgcmVnaXN0ZXJPcHRpb25zPzogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jY2xpZW50X3JlZ2lzdGVyQ2FwYWJpbGl0eVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdHJhdGlvblBhcmFtcyB7XG4gIHJlZ2lzdHJhdGlvbnM6IFJlZ2lzdHJhdGlvbltdO1xufVxuIl19