UNPKG

@dollhousemcp/mcp-server

Version:

DollhouseMCP - A Model Context Protocol (MCP) server that enables dynamic AI persona management from markdown files, allowing Claude and other compatible AI assistants to activate and switch between different behavioral personas.

67 lines 16.8 kB
/** * Gatekeeper Type Definitions * * Type definitions for the Gatekeeper Policy Engine. * These types define the permission system, policy structures, * and enforcement results for MCP-AQL access control. */ /** * Permission levels for operation access control. * These define how operations are approved or denied. */ export var PermissionLevel; (function (PermissionLevel) { /** Always allowed, no confirmation needed */ PermissionLevel["AUTO_APPROVE"] = "AUTO_APPROVE"; /** Confirm THIS instance only, ask again next time */ PermissionLevel["CONFIRM_SINGLE_USE"] = "CONFIRM_SINGLE_USE"; /** Confirm once, auto-approve for rest of session */ PermissionLevel["CONFIRM_SESSION"] = "CONFIRM_SESSION"; /** Never allowed (blocked by policy) */ PermissionLevel["DENY"] = "DENY"; })(PermissionLevel || (PermissionLevel = {})); /** * Verification strictness levels. * Define how aggressively the Gatekeeper challenges operations. */ export var VerificationStrictness; (function (VerificationStrictness) { /** Only DANGER_ZONE operations require verification */ VerificationStrictness["MINIMAL"] = "MINIMAL"; /** DANGER_ZONE + policy violations (default) */ VerificationStrictness["STANDARD"] = "STANDARD"; /** Above + DELETE operations */ VerificationStrictness["ELEVATED"] = "ELEVATED"; /** All mutations require verification */ VerificationStrictness["MAXIMUM"] = "MAXIMUM"; })(VerificationStrictness || (VerificationStrictness = {})); /** * Gatekeeper error codes for rich LLM error responses. * Each code maps to a specific failure scenario with actionable guidance. */ export var GatekeeperErrorCode; (function (GatekeeperErrorCode) { /** Operation not found in the routing table */ GatekeeperErrorCode["UNKNOWN_OPERATION"] = "UNKNOWN_OPERATION"; /** Operation called via wrong CRUD endpoint */ GatekeeperErrorCode["ENDPOINT_MISMATCH"] = "ENDPOINT_MISMATCH"; /** Active element's policy blocks this operation */ GatekeeperErrorCode["ELEMENT_POLICY_VIOLATION"] = "ELEMENT_POLICY_VIOLATION"; /** Operation not allowed for this element type */ GatekeeperErrorCode["SCOPE_RESTRICTION"] = "SCOPE_RESTRICTION"; /** Denied by default operation policy */ GatekeeperErrorCode["PERMISSION_DENIED"] = "PERMISSION_DENIED"; /** User confirmation required before proceeding */ GatekeeperErrorCode["CONFIRMATION_REQUIRED"] = "CONFIRMATION_REQUIRED"; /** High-risk operation requires verification code */ GatekeeperErrorCode["VERIFICATION_REQUIRED"] = "VERIFICATION_REQUIRED"; /** Wrong verification code entered */ GatekeeperErrorCode["VERIFICATION_FAILED"] = "VERIFICATION_FAILED"; /** User did not respond to verification prompt */ GatekeeperErrorCode["VERIFICATION_TIMEOUT"] = "VERIFICATION_TIMEOUT"; /** Destructive pattern detected, operation blocked */ GatekeeperErrorCode["DANGER_ZONE_BLOCKED"] = "DANGER_ZONE_BLOCKED"; /** Session is invalid or expired */ GatekeeperErrorCode["SESSION_INVALID"] = "SESSION_INVALID"; })(GatekeeperErrorCode || (GatekeeperErrorCode = {})); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2F0ZWtlZXBlclR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hhbmRsZXJzL21jcC1hcWwvR2F0ZWtlZXBlclR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUlIOzs7R0FHRztBQUNILE1BQU0sQ0FBTixJQUFZLGVBU1g7QUFURCxXQUFZLGVBQWU7SUFDekIsNkNBQTZDO0lBQzdDLGdEQUE2QixDQUFBO0lBQzdCLHNEQUFzRDtJQUN0RCw0REFBeUMsQ0FBQTtJQUN6QyxxREFBcUQ7SUFDckQsc0RBQW1DLENBQUE7SUFDbkMsd0NBQXdDO0lBQ3hDLGdDQUFhLENBQUE7QUFDZixDQUFDLEVBVFcsZUFBZSxLQUFmLGVBQWUsUUFTMUI7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQU4sSUFBWSxzQkFTWDtBQVRELFdBQVksc0JBQXNCO0lBQ2hDLHVEQUF1RDtJQUN2RCw2Q0FBbUIsQ0FBQTtJQUNuQixnREFBZ0Q7SUFDaEQsK0NBQXFCLENBQUE7SUFDckIsZ0NBQWdDO0lBQ2hDLCtDQUFxQixDQUFBO0lBQ3JCLHlDQUF5QztJQUN6Qyw2Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBVFcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQVNqQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBTixJQUFZLG1CQXVCWDtBQXZCRCxXQUFZLG1CQUFtQjtJQUM3QiwrQ0FBK0M7SUFDL0MsOERBQXVDLENBQUE7SUFDdkMsK0NBQStDO0lBQy9DLDhEQUF1QyxDQUFBO0lBQ3ZDLG9EQUFvRDtJQUNwRCw0RUFBcUQsQ0FBQTtJQUNyRCxrREFBa0Q7SUFDbEQsOERBQXVDLENBQUE7SUFDdkMseUNBQXlDO0lBQ3pDLDhEQUF1QyxDQUFBO0lBQ3ZDLG1EQUFtRDtJQUNuRCxzRUFBK0MsQ0FBQTtJQUMvQyxxREFBcUQ7SUFDckQsc0VBQStDLENBQUE7SUFDL0Msc0NBQXNDO0lBQ3RDLGtFQUEyQyxDQUFBO0lBQzNDLGtEQUFrRDtJQUNsRCxvRUFBNkMsQ0FBQTtJQUM3QyxzREFBc0Q7SUFDdEQsa0VBQTJDLENBQUE7SUFDM0Msb0NBQW9DO0lBQ3BDLDBEQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUF2QlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQXVCOUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdhdGVrZWVwZXIgVHlwZSBEZWZpbml0aW9uc1xuICpcbiAqIFR5cGUgZGVmaW5pdGlvbnMgZm9yIHRoZSBHYXRla2VlcGVyIFBvbGljeSBFbmdpbmUuXG4gKiBUaGVzZSB0eXBlcyBkZWZpbmUgdGhlIHBlcm1pc3Npb24gc3lzdGVtLCBwb2xpY3kgc3RydWN0dXJlcyxcbiAqIGFuZCBlbmZvcmNlbWVudCByZXN1bHRzIGZvciBNQ1AtQVFMIGFjY2VzcyBjb250cm9sLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQ1JVREVuZHBvaW50IH0gZnJvbSAnLi9PcGVyYXRpb25Sb3V0ZXIuanMnO1xuXG4vKipcbiAqIFBlcm1pc3Npb24gbGV2ZWxzIGZvciBvcGVyYXRpb24gYWNjZXNzIGNvbnRyb2wuXG4gKiBUaGVzZSBkZWZpbmUgaG93IG9wZXJhdGlvbnMgYXJlIGFwcHJvdmVkIG9yIGRlbmllZC5cbiAqL1xuZXhwb3J0IGVudW0gUGVybWlzc2lvbkxldmVsIHtcbiAgLyoqIEFsd2F5cyBhbGxvd2VkLCBubyBjb25maXJtYXRpb24gbmVlZGVkICovXG4gIEFVVE9fQVBQUk9WRSA9ICdBVVRPX0FQUFJPVkUnLFxuICAvKiogQ29uZmlybSBUSElTIGluc3RhbmNlIG9ubHksIGFzayBhZ2FpbiBuZXh0IHRpbWUgKi9cbiAgQ09ORklSTV9TSU5HTEVfVVNFID0gJ0NPTkZJUk1fU0lOR0xFX1VTRScsXG4gIC8qKiBDb25maXJtIG9uY2UsIGF1dG8tYXBwcm92ZSBmb3IgcmVzdCBvZiBzZXNzaW9uICovXG4gIENPTkZJUk1fU0VTU0lPTiA9ICdDT05GSVJNX1NFU1NJT04nLFxuICAvKiogTmV2ZXIgYWxsb3dlZCAoYmxvY2tlZCBieSBwb2xpY3kpICovXG4gIERFTlkgPSAnREVOWScsXG59XG5cbi8qKlxuICogVmVyaWZpY2F0aW9uIHN0cmljdG5lc3MgbGV2ZWxzLlxuICogRGVmaW5lIGhvdyBhZ2dyZXNzaXZlbHkgdGhlIEdhdGVrZWVwZXIgY2hhbGxlbmdlcyBvcGVyYXRpb25zLlxuICovXG5leHBvcnQgZW51bSBWZXJpZmljYXRpb25TdHJpY3RuZXNzIHtcbiAgLyoqIE9ubHkgREFOR0VSX1pPTkUgb3BlcmF0aW9ucyByZXF1aXJlIHZlcmlmaWNhdGlvbiAqL1xuICBNSU5JTUFMID0gJ01JTklNQUwnLFxuICAvKiogREFOR0VSX1pPTkUgKyBwb2xpY3kgdmlvbGF0aW9ucyAoZGVmYXVsdCkgKi9cbiAgU1RBTkRBUkQgPSAnU1RBTkRBUkQnLFxuICAvKiogQWJvdmUgKyBERUxFVEUgb3BlcmF0aW9ucyAqL1xuICBFTEVWQVRFRCA9ICdFTEVWQVRFRCcsXG4gIC8qKiBBbGwgbXV0YXRpb25zIHJlcXVpcmUgdmVyaWZpY2F0aW9uICovXG4gIE1BWElNVU0gPSAnTUFYSU1VTScsXG59XG5cbi8qKlxuICogR2F0ZWtlZXBlciBlcnJvciBjb2RlcyBmb3IgcmljaCBMTE0gZXJyb3IgcmVzcG9uc2VzLlxuICogRWFjaCBjb2RlIG1hcHMgdG8gYSBzcGVjaWZpYyBmYWlsdXJlIHNjZW5hcmlvIHdpdGggYWN0aW9uYWJsZSBndWlkYW5jZS5cbiAqL1xuZXhwb3J0IGVudW0gR2F0ZWtlZXBlckVycm9yQ29kZSB7XG4gIC8qKiBPcGVyYXRpb24gbm90IGZvdW5kIGluIHRoZSByb3V0aW5nIHRhYmxlICovXG4gIFVOS05PV05fT1BFUkFUSU9OID0gJ1VOS05PV05fT1BFUkFUSU9OJyxcbiAgLyoqIE9wZXJhdGlvbiBjYWxsZWQgdmlhIHdyb25nIENSVUQgZW5kcG9pbnQgKi9cbiAgRU5EUE9JTlRfTUlTTUFUQ0ggPSAnRU5EUE9JTlRfTUlTTUFUQ0gnLFxuICAvKiogQWN0aXZlIGVsZW1lbnQncyBwb2xpY3kgYmxvY2tzIHRoaXMgb3BlcmF0aW9uICovXG4gIEVMRU1FTlRfUE9MSUNZX1ZJT0xBVElPTiA9ICdFTEVNRU5UX1BPTElDWV9WSU9MQVRJT04nLFxuICAvKiogT3BlcmF0aW9uIG5vdCBhbGxvd2VkIGZvciB0aGlzIGVsZW1lbnQgdHlwZSAqL1xuICBTQ09QRV9SRVNUUklDVElPTiA9ICdTQ09QRV9SRVNUUklDVElPTicsXG4gIC8qKiBEZW5pZWQgYnkgZGVmYXVsdCBvcGVyYXRpb24gcG9saWN5ICovXG4gIFBFUk1JU1NJT05fREVOSUVEID0gJ1BFUk1JU1NJT05fREVOSUVEJyxcbiAgLyoqIFVzZXIgY29uZmlybWF0aW9uIHJlcXVpcmVkIGJlZm9yZSBwcm9jZWVkaW5nICovXG4gIENPTkZJUk1BVElPTl9SRVFVSVJFRCA9ICdDT05GSVJNQVRJT05fUkVRVUlSRUQnLFxuICAvKiogSGlnaC1yaXNrIG9wZXJhdGlvbiByZXF1aXJlcyB2ZXJpZmljYXRpb24gY29kZSAqL1xuICBWRVJJRklDQVRJT05fUkVRVUlSRUQgPSAnVkVSSUZJQ0FUSU9OX1JFUVVJUkVEJyxcbiAgLyoqIFdyb25nIHZlcmlmaWNhdGlvbiBjb2RlIGVudGVyZWQgKi9cbiAgVkVSSUZJQ0FUSU9OX0ZBSUxFRCA9ICdWRVJJRklDQVRJT05fRkFJTEVEJyxcbiAgLyoqIFVzZXIgZGlkIG5vdCByZXNwb25kIHRvIHZlcmlmaWNhdGlvbiBwcm9tcHQgKi9cbiAgVkVSSUZJQ0FUSU9OX1RJTUVPVVQgPSAnVkVSSUZJQ0FUSU9OX1RJTUVPVVQnLFxuICAvKiogRGVzdHJ1Y3RpdmUgcGF0dGVybiBkZXRlY3RlZCwgb3BlcmF0aW9uIGJsb2NrZWQgKi9cbiAgREFOR0VSX1pPTkVfQkxPQ0tFRCA9ICdEQU5HRVJfWk9ORV9CTE9DS0VEJyxcbiAgLyoqIFNlc3Npb24gaXMgaW52YWxpZCBvciBleHBpcmVkICovXG4gIFNFU1NJT05fSU5WQUxJRCA9ICdTRVNTSU9OX0lOVkFMSUQnLFxufVxuXG4vKipcbiAqIFJlc3VsdCBvZiBhIEdhdGVrZWVwZXIgcG9saWN5IGNoZWNrLlxuICogSW5kaWNhdGVzIHdoZXRoZXIgYW4gb3BlcmF0aW9uIGlzIGFsbG93ZWQgYW5kIHdoYXQgYWN0aW9ucyBhcmUgbmVlZGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhdGVrZWVwZXJEZWNpc2lvbiB7XG4gIC8qKiBXaGV0aGVyIHRoZSBvcGVyYXRpb24gaXMgYWxsb3dlZCB0byBwcm9jZWVkICovXG4gIGFsbG93ZWQ6IGJvb2xlYW47XG4gIC8qKiBQZXJtaXNzaW9uIGxldmVsIGRldGVybWluZWQgZm9yIHRoaXMgb3BlcmF0aW9uICovXG4gIHBlcm1pc3Npb25MZXZlbDogUGVybWlzc2lvbkxldmVsO1xuICAvKiogRXJyb3IgY29kZSBpZiB0aGUgb3BlcmF0aW9uIGlzIGRlbmllZCAqL1xuICBlcnJvckNvZGU/OiBHYXRla2VlcGVyRXJyb3JDb2RlO1xuICAvKiogSHVtYW4tcmVhZGFibGUgcmVhc29uIGZvciB0aGUgZGVjaXNpb24gKi9cbiAgcmVhc29uOiBzdHJpbmc7XG4gIC8qKiBBY3Rpb25hYmxlIHN1Z2dlc3Rpb24gZm9yIHRoZSBMTE0gb24gd2hhdCB0byBkbyBuZXh0ICovXG4gIHN1Z2dlc3Rpb24/OiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIGEgY29uZmlybWF0aW9uIGlzIHBlbmRpbmcgZnJvbSB0aGUgdXNlciAqL1xuICBjb25maXJtYXRpb25QZW5kaW5nPzogYm9vbGVhbjtcbiAgLyoqIFRoZSBwb2xpY3kgc291cmNlIHRoYXQgZGV0ZXJtaW5lZCB0aGlzIGRlY2lzaW9uICovXG4gIHBvbGljeVNvdXJjZT86ICdvcGVyYXRpb25fZGVmYXVsdCcgfCAnZWxlbWVudF9wb2xpY3knIHwgJ3NhZmV0eV90aWVyJyB8ICdzZXNzaW9uX2NvbmZpcm1hdGlvbic7XG59XG5cbi8qKlxuICogQ29uZmlybWF0aW9uIHJlY29yZCBmb3Igc2Vzc2lvbi1zY29wZWQgYXBwcm92YWxzLlxuICogVHJhY2tzIHdoaWNoIG9wZXJhdGlvbnMgaGF2ZSBiZWVuIGNvbmZpcm1lZCBmb3IgdGhpcyBzZXNzaW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpcm1hdGlvblJlY29yZCB7XG4gIC8qKiBUaGUgb3BlcmF0aW9uIHRoYXQgd2FzIGNvbmZpcm1lZCAqL1xuICBvcGVyYXRpb246IHN0cmluZztcbiAgLyoqIFdoZW4gdGhlIGNvbmZpcm1hdGlvbiB3YXMgZ3JhbnRlZCAqL1xuICBjb25maXJtZWRBdDogc3RyaW5nO1xuICAvKiogVGhlIHBlcm1pc3Npb24gbGV2ZWwgdGhhdCB3YXMgY29uZmlybWVkICovXG4gIHBlcm1pc3Npb25MZXZlbDogUGVybWlzc2lvbkxldmVsLkNPTkZJUk1fU0VTU0lPTiB8IFBlcm1pc3Npb25MZXZlbC5DT05GSVJNX1NJTkdMRV9VU0U7XG4gIC8qKiBOdW1iZXIgb2YgdGltZXMgdGhpcyBjb25maXJtYXRpb24gaGFzIGJlZW4gdXNlZCAqL1xuICB1c2VDb3VudDogbnVtYmVyO1xuICAvKiogT3B0aW9uYWwgZWxlbWVudCB0eXBlIHNjb3BlIGZvciB0aGUgY29uZmlybWF0aW9uICovXG4gIGVsZW1lbnRUeXBlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEVsZW1lbnQtbGV2ZWwgR2F0ZWtlZXBlciBwb2xpY3kuXG4gKiBBbGxvd3MgQU5ZIERvbGxob3VzZU1DUCBlbGVtZW50IHRvIGRlZmluZSBhY2Nlc3MgY29udHJvbCBwb2xpY2llcy5cbiAqIFRoZXNlIGFyZSBzdG9yZWQgaW4gdGhlIGVsZW1lbnQncyBtZXRhZGF0YSBZQU1MIGZyb250IG1hdHRlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbGVtZW50R2F0ZWtlZXBlclBvbGljeSB7XG4gIC8qKiBPcGVyYXRpb25zIGF1dG8tYXBwcm92ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgYWN0aXZlICovXG4gIGFsbG93Pzogc3RyaW5nW107XG4gIC8qKiBPcGVyYXRpb25zIHJlcXVpcmluZyBjb25maXJtYXRpb24gd2hlbiB0aGlzIGVsZW1lbnQgaXMgYWN0aXZlICovXG4gIGNvbmZpcm0/OiBzdHJpbmdbXTtcbiAgLyoqIE9wZXJhdGlvbnMgYmxvY2tlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyBhY3RpdmUgKi9cbiAgZGVueT86IHN0cmluZ1tdO1xuICAvKiogUmVzdHJpY3Qgb3BlcmF0aW9ucyB0byBzcGVjaWZpYyBlbGVtZW50IHR5cGVzICovXG4gIHNjb3BlUmVzdHJpY3Rpb25zPzoge1xuICAgIC8qKiBBbGxvdyBvcGVyYXRpb25zIG9ubHkgb24gdGhlc2UgZWxlbWVudCB0eXBlcyAqL1xuICAgIGFsbG93ZWRUeXBlcz86IHN0cmluZ1tdO1xuICAgIC8qKiBCbG9jayBvcGVyYXRpb25zIG9uIHRoZXNlIGVsZW1lbnQgdHlwZXMgKi9cbiAgICBibG9ja2VkVHlwZXM/OiBzdHJpbmdbXTtcbiAgfTtcbiAgLyoqIEFkdmlzb3J5IHJlc3RyaWN0aW9ucyBmb3IgZXh0ZXJuYWwgdG9vbHMgKENMSSBwZXJtaXNzaW9uIGRlbGVnYXRpb24pICovXG4gIGV4dGVybmFsUmVzdHJpY3Rpb25zPzoge1xuICAgIC8qKiBEZXNjcmlwdGlvbiBvZiBleHRlcm5hbCByZXN0cmljdGlvbnMgKi9cbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIC8qKiBQYXR0ZXJucyB0byBkZW55IGZvciBleHRlcm5hbCB0b29sIG9wZXJhdGlvbnMgKi9cbiAgICBkZW55UGF0dGVybnM/OiBzdHJpbmdbXTtcbiAgICAvKiogUGF0dGVybnMgcmVxdWlyaW5nIGh1bWFuIGFwcHJvdmFsIGJlZm9yZSBleGVjdXRpb24gKElzc3VlICMxNjYwKS5cbiAgICAgKiAgRXZhbHVhdGVkIGFmdGVyIGRlbnlQYXR0ZXJucywgYmVmb3JlIGFsbG93UGF0dGVybnMuXG4gICAgICogIERlbnkgYWx3YXlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBjb25maXJtLiAqL1xuICAgIGNvbmZpcm1QYXR0ZXJucz86IHN0cmluZ1tdO1xuICAgIC8qKiBXaGVuIGRlZmluZWQsIG9ubHkgdG9vbHMgbWF0Y2hpbmcgYXQgbGVhc3Qgb25lIHBhdHRlcm4gYXJlIHBlcm1pdHRlZCAoYWxsb3dsaXN0IG1vZGUpLlxuICAgICAqICBEZW55IGFsd2F5cyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgYWxsb3cuIEFjcm9zcyBlbGVtZW50cywgYWxsb3dzIGFyZSB1bmlvbmVkLiAqL1xuICAgIGFsbG93UGF0dGVybnM/OiBzdHJpbmdbXTtcbiAgICAvKiogQXBwcm92YWwgcG9saWN5IGZvciBDTEkgdG9vbCBvcGVyYXRpb25zIChJc3N1ZSAjNjI1IFBoYXNlIDMpICovXG4gICAgYXBwcm92YWxQb2xpY3k/OiBDbGlBcHByb3ZhbFBvbGljeTtcbiAgfTtcbn1cblxuLy8g4pSA4pSAIENMSSBBcHByb3ZhbCBUeXBlcyAoSXNzdWUgIzYyNSBQaGFzZSAzKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLyoqXG4gKiBTY29wZSBmb3IgQ0xJIGFwcHJvdmFsIHJlY29yZHMuXG4gKiAtICdzaW5nbGUnOiBjb25zdW1lZCBhZnRlciBvbmUgdXNlXG4gKiAtICd0b29sX3Nlc3Npb24nOiBhbGwgdXNlcyBvZiB0aGF0IHRvb2wgZm9yIHRoZSBzZXNzaW9uXG4gKi9cbmV4cG9ydCB0eXBlIENsaUFwcHJvdmFsU2NvcGUgPSAnc2luZ2xlJyB8ICd0b29sX3Nlc3Npb24nO1xuXG4vKipcbiAqIEFwcHJvdmFsIHBvbGljeSBmb3IgQ0xJIHRvb2wgb3BlcmF0aW9ucy5cbiAqIENvbmZpZ3VyZXMgd2hpY2ggcmlzayBsZXZlbHMgbmVlZCBodW1hbiBhcHByb3ZhbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGlBcHByb3ZhbFBvbGljeSB7XG4gIC8qKiBSaXNrIGxldmVscyB0aGF0IHJlcXVpcmUgaHVtYW4gYXBwcm92YWwgYmVmb3JlIHByb2NlZWRpbmcgKi9cbiAgcmVxdWlyZUFwcHJvdmFsPzogKCdtb2RlcmF0ZScgfCAnZGFuZ2Vyb3VzJylbXTtcbiAgLyoqIERlZmF1bHQgc2NvcGUgZm9yIGFwcHJvdmFscyAoZGVmYXVsdDogJ3NpbmdsZScpICovXG4gIGRlZmF1bHRTY29wZT86IENsaUFwcHJvdmFsU2NvcGU7XG4gIC8qKiBUaW1lLXRvLWxpdmUgZm9yIHBlbmRpbmcgYXBwcm92YWxzIGluIHNlY29uZHMgKDMwLTM2MDAsIGRlZmF1bHQ6IDMwMCkgKi9cbiAgdHRsU2Vjb25kcz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZWNvcmQgb2YgYSBDTEkgdG9vbCBhcHByb3ZhbCByZXF1ZXN0LlxuICogQ3JlYXRlZCB3aGVuIHBlcm1pc3Npb25fcHJvbXB0IGVuY291bnRlcnMgYSB0b29sIHRoYXQgcmVxdWlyZXMgYXBwcm92YWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpQXBwcm92YWxSZWNvcmQge1xuICAvKiogVW5pcXVlIHJlcXVlc3QgaWRlbnRpZmllciAoZm9ybWF0OiBjbGktPFVVSUR2ND4pICovXG4gIHJlcXVlc3RJZDogc3RyaW5nO1xuICAvKiogVGhlIHRvb2wgdGhhdCB3YXMgcmVxdWVzdGVkICovXG4gIHRvb2xOYW1lOiBzdHJpbmc7XG4gIC8qKiBUaGUgdG9vbCBpbnB1dCBwYXJhbWV0ZXJzICovXG4gIHRvb2xJbnB1dDogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8qKiBSaXNrIGxldmVsIGZyb20gY2xhc3NpZmljYXRpb24gKi9cbiAgcmlza0xldmVsOiBzdHJpbmc7XG4gIC8qKiBOdW1lcmljIHJpc2sgc2NvcmUgKDAtMTAwKSAqL1xuICByaXNrU2NvcmU6IG51bWJlcjtcbiAgLyoqIFdoZXRoZXIgdGhlIG9wZXJhdGlvbiBpcyBpcnJldmVyc2libGUgKi9cbiAgaXJyZXZlcnNpYmxlOiBib29sZWFuO1xuICAvKiogV2hlbiB0aGUgcmVxdWVzdCB3YXMgY3JlYXRlZCAqL1xuICByZXF1ZXN0ZWRBdDogc3RyaW5nO1xuICAvKiogV2hlbiB0aGUgcmVxdWVzdCB3YXMgYXBwcm92ZWQgKHVuZGVmaW5lZCBpZiBwZW5kaW5nKSAqL1xuICBhcHByb3ZlZEF0Pzogc3RyaW5nO1xuICAvKiogV2hldGhlciB0aGlzIGFwcHJvdmFsIGhhcyBiZWVuIGNvbnN1bWVkICovXG4gIGNvbnN1bWVkOiBib29sZWFuO1xuICAvKiogQXBwcm92YWwgc2NvcGUgKi9cbiAgc2NvcGU6IENsaUFwcHJvdmFsU2NvcGU7XG4gIC8qKiBSZWFzb24gdGhlIHRvb2wgd2FzIGRlbmllZCAocGVuZGluZyBhcHByb3ZhbCkgKi9cbiAgZGVueVJlYXNvbjogc3RyaW5nO1xuICAvKiogV2hpY2ggcG9saWN5IHNvdXJjZSB0cmlnZ2VyZWQgdGhlIGFwcHJvdmFsIHJlcXVpcmVtZW50ICovXG4gIHBvbGljeVNvdXJjZT86IHN0cmluZztcbiAgLyoqIFBlci1yZWNvcmQgVFRMIGluIG1pbGxpc2Vjb25kcyAob3ZlcnJpZGVzIGRlZmF1bHQgMzAwcykgKi9cbiAgdHRsTXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUmlzayBhc3Nlc3NtZW50IGZvciBhIENMSSB0b29sIGNhbGwuXG4gKiBQcm92aWRlcyBhIG51bWVyaWMgc2NvcmUgYW5kIGlycmV2ZXJzaWJpbGl0eSBpbmRpY2F0b3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmlza0Fzc2Vzc21lbnQge1xuICAvKiogTnVtZXJpYyByaXNrIHNjb3JlICgwLTEwMCkgKi9cbiAgc2NvcmU6IG51bWJlcjtcbiAgLyoqIFdoZXRoZXIgdGhlIG9wZXJhdGlvbiBpcyBpcnJldmVyc2libGUgKi9cbiAgaXJyZXZlcnNpYmxlOiBib29sZWFuO1xuICAvKiogRmFjdG9ycyB0aGF0IGNvbnRyaWJ1dGVkIHRvIHRoZSByaXNrIHNjb3JlICovXG4gIGZhY3RvcnM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEVuZHBvaW50IHBlcm1pc3Npb25zIGZvciBDUlVEIGVuZHBvaW50cy5cbiAqIERlZmluZXMgdGhlIHNlY3VyaXR5IGNoYXJhY3RlcmlzdGljcyBvZiBlYWNoIGVuZHBvaW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuZHBvaW50UGVybWlzc2lvbnMge1xuICAvKiogV2hldGhlciB0aGUgZW5kcG9pbnQgb25seSByZWFkcyBkYXRhICovXG4gIHJlYWRPbmx5OiBib29sZWFuO1xuICAvKiogV2hldGhlciB0aGUgZW5kcG9pbnQgY2FuIHBlcmZvcm0gZGVzdHJ1Y3RpdmUgb3BlcmF0aW9ucyAqL1xuICBkZXN0cnVjdGl2ZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBdWRpdCBsb2cgZW50cnkgZm9yIEdhdGVrZWVwZXIgZGVjaXNpb25zLlxuICogTG9nZ2VkIHRvIFNlY3VyaXR5TW9uaXRvciBmb3Igc2VjdXJpdHkgYW5hbHlzaXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZWtlZXBlckF1ZGl0RW50cnkge1xuICAvKiogVGltZXN0YW1wIG9mIHRoZSBkZWNpc2lvbiAqL1xuICB0aW1lc3RhbXA6IHN0cmluZztcbiAgLyoqIFNlc3Npb24gSUQgdGhhdCBtYWRlIHRoZSByZXF1ZXN0ICovXG4gIHNlc3Npb25JZDogc3RyaW5nO1xuICAvKiogT3BlcmF0aW9uIHRoYXQgd2FzIGNoZWNrZWQgKi9cbiAgb3BlcmF0aW9uOiBzdHJpbmc7XG4gIC8qKiBDUlVEIGVuZHBvaW50IHVzZWQgKi9cbiAgZW5kcG9pbnQ6IENSVURFbmRwb2ludDtcbiAgLyoqIEVsZW1lbnQgdHlwZSBpZiBhcHBsaWNhYmxlICovXG4gIGVsZW1lbnRUeXBlPzogc3RyaW5nO1xuICAvKiogVGhlIGRlY2lzaW9uIG1hZGUgKi9cbiAgZGVjaXNpb246IEdhdGVrZWVwZXJEZWNpc2lvbjtcbiAgLyoqIENsaWVudCBpbmZvcm1hdGlvbiBpZiBhdmFpbGFibGUgKi9cbiAgY2xpZW50SW5mbz86IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICB9O1xufVxuXG4vKipcbiAqIE9wZXJhdGlvbiBwb2xpY3kgbWFwcGluZyBlbnRyeS5cbiAqIERlZmluZXMgdGhlIGRlZmF1bHQgcGVybWlzc2lvbiBsZXZlbCBmb3IgYW4gb3BlcmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhdGlvblBvbGljeSB7XG4gIC8qKiBEZWZhdWx0IHBlcm1pc3Npb24gbGV2ZWwgZm9yIHRoaXMgb3BlcmF0aW9uICovXG4gIGRlZmF1bHRMZXZlbDogUGVybWlzc2lvbkxldmVsO1xuICAvKiogSHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gb2Ygd2h5IHRoaXMgbGV2ZWwgaXMgYXNzaWduZWQgKi9cbiAgcmF0aW9uYWxlOiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoaXMgb3BlcmF0aW9uIGNhbiBiZSBlbGV2YXRlZCBieSBhY3RpdmUgZWxlbWVudHMgKi9cbiAgY2FuQmVFbGV2YXRlZD86IGJvb2xlYW47XG59XG4iXX0=