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.

30 lines 11.7 kB
/** * Core element interface that all element types must implement. * This provides the foundation for the portfolio system with support for: * - Identity and versioning * - References to external/internal resources * - Extensibility for future features * - Ratings and feedback mechanisms * - Lifecycle management */ // Types of references supported export var ReferenceType; (function (ReferenceType) { ReferenceType["INTERNAL"] = "internal"; ReferenceType["EXTERNAL"] = "external"; ReferenceType["DOCUMENT"] = "document"; ReferenceType["REPOSITORY"] = "repository"; ReferenceType["API"] = "api"; ReferenceType["PORTFOLIO"] = "portfolio"; // Reference within portfolio })(ReferenceType || (ReferenceType = {})); // Element status tracking export var ElementStatus; (function (ElementStatus) { ElementStatus["INACTIVE"] = "inactive"; ElementStatus["ACTIVATING"] = "activating"; ElementStatus["ACTIVE"] = "active"; ElementStatus["DEACTIVATING"] = "deactivating"; ElementStatus["ERROR"] = "error"; ElementStatus["SUSPENDED"] = "suspended"; })(ElementStatus || (ElementStatus = {})); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvZWxlbWVudHMvSUVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUErR0gsZ0NBQWdDO0FBQ2hDLE1BQU0sQ0FBTixJQUFZLGFBT1g7QUFQRCxXQUFZLGFBQWE7SUFDdkIsc0NBQXFCLENBQUE7SUFDckIsc0NBQXFCLENBQUE7SUFDckIsc0NBQXFCLENBQUE7SUFDckIsMENBQXlCLENBQUE7SUFDekIsNEJBQVcsQ0FBQTtJQUNYLHdDQUF1QixDQUFBLENBQUssNkJBQTZCO0FBQzNELENBQUMsRUFQVyxhQUFhLEtBQWIsYUFBYSxRQU94QjtBQThCRCwwQkFBMEI7QUFDMUIsTUFBTSxDQUFOLElBQVksYUFPWDtBQVBELFdBQVksYUFBYTtJQUN2QixzQ0FBcUIsQ0FBQTtJQUNyQiwwQ0FBeUIsQ0FBQTtJQUN6QixrQ0FBaUIsQ0FBQTtJQUNqQiw4Q0FBNkIsQ0FBQTtJQUM3QixnQ0FBZSxDQUFBO0lBQ2Ysd0NBQXVCLENBQUE7QUFDekIsQ0FBQyxFQVBXLGFBQWEsS0FBYixhQUFhLFFBT3hCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3JlIGVsZW1lbnQgaW50ZXJmYWNlIHRoYXQgYWxsIGVsZW1lbnQgdHlwZXMgbXVzdCBpbXBsZW1lbnQuXG4gKiBUaGlzIHByb3ZpZGVzIHRoZSBmb3VuZGF0aW9uIGZvciB0aGUgcG9ydGZvbGlvIHN5c3RlbSB3aXRoIHN1cHBvcnQgZm9yOlxuICogLSBJZGVudGl0eSBhbmQgdmVyc2lvbmluZ1xuICogLSBSZWZlcmVuY2VzIHRvIGV4dGVybmFsL2ludGVybmFsIHJlc291cmNlc1xuICogLSBFeHRlbnNpYmlsaXR5IGZvciBmdXR1cmUgZmVhdHVyZXNcbiAqIC0gUmF0aW5ncyBhbmQgZmVlZGJhY2sgbWVjaGFuaXNtc1xuICogLSBMaWZlY3ljbGUgbWFuYWdlbWVudFxuICovXG5cbmltcG9ydCB7IEVsZW1lbnRUeXBlIH0gZnJvbSAnLi4vLi4vcG9ydGZvbGlvL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgRWxlbWVudEdhdGVrZWVwZXJQb2xpY3kgfSBmcm9tICcuLi8uLi9oYW5kbGVycy9tY3AtYXFsL0dhdGVrZWVwZXJUeXBlcy5qcyc7XG5cbi8vIENvcmUgaWRlbnRpdHkgYW5kIG1ldGFkYXRhXG5leHBvcnQgaW50ZXJmYWNlIElFbGVtZW50IHtcbiAgLy8gSWRlbnRpdHlcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogRWxlbWVudFR5cGU7XG4gIHZlcnNpb246IHN0cmluZztcbiAgXG4gIC8vIE1ldGFkYXRhXG4gIG1ldGFkYXRhOiBJRWxlbWVudE1ldGFkYXRhO1xuICBcbiAgLy8gRmVhdHVyZXNcbiAgcmVmZXJlbmNlcz86IFJlZmVyZW5jZVtdO1xuICBleHRlbnNpb25zPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgcmF0aW5ncz86IEVsZW1lbnRSYXRpbmdzO1xuICBcbiAgLy8gQ29yZSBvcGVyYXRpb25zXG4gIHZhbGlkYXRlKCk6IEVsZW1lbnRWYWxpZGF0aW9uUmVzdWx0O1xuICBzZXJpYWxpemUoKTogc3RyaW5nO1xuICBkZXNlcmlhbGl6ZShkYXRhOiBzdHJpbmcpOiB2b2lkO1xuICByZWNlaXZlRmVlZGJhY2s/KGZlZWRiYWNrOiBzdHJpbmcsIGNvbnRleHQ/OiBGZWVkYmFja0NvbnRleHQpOiB2b2lkO1xuICBcbiAgLy8gTGlmZWN5Y2xlIChvcHRpb25hbClcbiAgYmVmb3JlQWN0aXZhdGU/KCk6IFByb21pc2U8dm9pZD47XG4gIGFjdGl2YXRlPygpOiBQcm9taXNlPHZvaWQ+O1xuICBhZnRlckFjdGl2YXRlPygpOiBQcm9taXNlPHZvaWQ+O1xuICBkZWFjdGl2YXRlPygpOiBQcm9taXNlPHZvaWQ+O1xuICBnZXRTdGF0dXMoKTogRWxlbWVudFN0YXR1cztcbn1cblxuLy8gRWxlbWVudCBtZXRhZGF0YSBjb21tb24gdG8gYWxsIHR5cGVzXG5leHBvcnQgaW50ZXJmYWNlIElFbGVtZW50TWV0YWRhdGEge1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHR5cGU/OiBFbGVtZW50VHlwZTsgICAgICAgLy8gRWxlbWVudCB0eXBlIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGFuZCB0eXBlIHNhZmV0eVxuICBhdXRob3I/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIGNyZWF0ZWQ/OiBzdHJpbmc7XG4gIG1vZGlmaWVkPzogc3RyaW5nO1xuICB0YWdzPzogc3RyaW5nW107XG5cbiAgLy8gUmVmZXJlbmNlcyBzdXBwb3J0XG4gIGRlcGVuZGVuY2llcz86IEVsZW1lbnREZXBlbmRlbmN5W107XG5cbiAgLy8gRXh0ZW5zaWJpbGl0eVxuICBjdXN0b20/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIC8qKlxuICAgKiB2Mi4wIGR1YWwtZmllbGQgYXJjaGl0ZWN0dXJlOiBiZWhhdmlvcmFsIGRpcmVjdGl2ZXMgbG9hZGVkIGZyb20gWUFNTCBmcm9udG1hdHRlci5cbiAgICpcbiAgICogRHVyaW5nIGRlc2VyaWFsaXphdGlvbiwgbWFuYWdlcnMgZXh0cmFjdCBgaW5zdHJ1Y3Rpb25zYCBmcm9tIHRoZSBwYXJzZWQgWUFNTFxuICAgKiBtZXRhZGF0YSBhbmQgYXNzaWduIGl0IHRvIGBlbGVtZW50Lmluc3RydWN0aW9uc2AuIFRoaXMgZmllbGQgaXMgdGhlbiBkZWxldGVkXG4gICAqIGZyb20gdGhlIG1ldGFkYXRhIG9iamVjdCB0byBhdm9pZCBkdXBsaWNhdGlvbi4gSXRzIHByZXNlbmNlIGluIFlBTUwgZnJvbnRtYXR0ZXJcbiAgICogaXMgdXNlZCB0byBkZXRlY3QgdjIgZm9ybWF0IHZzIHYxIChib2R5LXRleHQtb25seSkgZm9ybWF0LlxuICAgKlxuICAgKiBAc2luY2UgSXNzdWUgIzYwMiDigJQgRHVhbC1maWVsZCBlbGVtZW50IGFyY2hpdGVjdHVyZVxuICAgKi9cbiAgaW5zdHJ1Y3Rpb25zPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHYXRla2VlcGVyIGFjY2Vzcy1jb250cm9sIHBvbGljeSBmb3IgdGhpcyBlbGVtZW50LlxuICAgKlxuICAgKiBXaGVuIHRoZSBlbGVtZW50IGlzIGFjdGl2ZSwgaXRzIHBvbGljeSBwYXJ0aWNpcGF0ZXMgaW4gTGF5ZXIgMlxuICAgKiAoZWxlbWVudCBwb2xpY3kgcmVzb2x1dGlvbikgb2YgdGhlIEdhdGVrZWVwZXIgZW5mb3JjZW1lbnQgcGlwZWxpbmUuXG4gICAqIHtAbGluayByZXNvbHZlRWxlbWVudFBvbGljeX0gaXRlcmF0ZXMgYWxsIGFjdGl2ZSBlbGVtZW50cyBhbmQgZXZhbHVhdGVzXG4gICAqIHRoZWlyIGBnYXRla2VlcGVyYCBmaWVsZCB0byBkZXRlcm1pbmUgd2hldGhlciBhbiBNQ1AtQVFMIG9wZXJhdGlvblxuICAgKiBzaG91bGQgYmUgYWxsb3dlZCwgZGVuaWVkLCBvciByZXF1aXJlIGNvbmZpcm1hdGlvbi5cbiAgICpcbiAgICogUG9saWN5IGZpZWxkcyAoYWxsIG9wdGlvbmFsKTpcbiAgICogLSBgYWxsb3dgICDigJQgT3BlcmF0aW9ucyBhdXRvLWFwcHJvdmVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIGFjdGl2ZVxuICAgKiAtIGBjb25maXJtYCDigJQgT3BlcmF0aW9ucyByZXF1aXJpbmcgdXNlciBjb25maXJtYXRpb25cbiAgICogLSBgZGVueWAgICDigJQgT3BlcmF0aW9ucyBibG9ja2VkIG91dHJpZ2h0XG4gICAqIC0gYHNjb3BlUmVzdHJpY3Rpb25zYCDigJQgUmVzdHJpY3Qgb3BlcmF0aW9ucyB0by9mcm9tIHNwZWNpZmljIGVsZW1lbnQgdHlwZXNcbiAgICpcbiAgICogRGVmaW5lZCBpbiBZQU1MIGZyb250IG1hdHRlciBhbmQgdmFsaWRhdGVkIGF0IGJvdGggd3JpdGUgdGltZVxuICAgKiAoe0BsaW5rIHZhbGlkYXRlR2F0ZWtlZXBlclBvbGljeX0pIGFuZCByZWFkIHRpbWUgdmlhXG4gICAqIHtAbGluayBwYXJzZUVsZW1lbnRQb2xpY3l9LiBNYWxmb3JtZWQgcG9saWNpZXMgYXJlIGxvZ2dlZCBhbmQgc3RyaXBwZWQuXG4gICAqXG4gICAqIEBzaW5jZSBJc3N1ZSAjNTI0IOKAlCBFeHRlbmRlZCBmcm9tIGFnZW50cyB0byBhbGwgZWxlbWVudCB0eXBlc1xuICAgKiBAc2VlIEVsZW1lbnRHYXRla2VlcGVyUG9saWN5XG4gICAqIEBzZWUgcmVzb2x2ZUVsZW1lbnRQb2xpY3lcbiAgICovXG4gIGdhdGVrZWVwZXI/OiBFbGVtZW50R2F0ZWtlZXBlclBvbGljeTtcblxuICAvKipcbiAgICogUnVudGltZS1vbmx5IGRpYWdub3N0aWNzIGZvciBtYWxmb3JtZWQgZ2F0ZWtlZXBlciBwb2xpY3kgZGlzY292ZXJlZCBkdXJpbmcgbG9hZC5cbiAgICogVGhpcyBpcyByZXBvcnRpbmcgc3RhdGUsIG5vdCBlbmZvcmNlYWJsZSBwb2xpY3ksIGFuZCBtdXN0IG5ldmVyIGJlIHBlcnNpc3RlZC5cbiAgICovXG4gIGdhdGVrZWVwZXJEaWFnbm9zdGljcz86IHtcbiAgICB2YWxpZDogZmFsc2U7XG4gICAgZW5mb3JjZWFibGU6IGZhbHNlO1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgfTtcbn1cblxuLy8gUmVmZXJlbmNlIHRvIGV4dGVybmFsIG9yIGludGVybmFsIHJlc291cmNlc1xuZXhwb3J0IGludGVyZmFjZSBSZWZlcmVuY2Uge1xuICB0eXBlOiBSZWZlcmVuY2VUeXBlO1xuICB1cmk6IHN0cmluZzsgICAgICAgICAgICAgIC8vIFVSTCwgZmlsZSBwYXRoLCBkb2N1bWVudCBJRCwgcG9ydGZvbGlvIHJlZmVyZW5jZVxuICB0aXRsZTogc3RyaW5nOyAgICAgICAgICAgIC8vIEh1bWFuLXJlYWRhYmxlIG5hbWVcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7ICAgICAvLyBXaGF0IHRoaXMgcmVmZXJlbmNlIHByb3ZpZGVzXG4gIHJlcXVpcmVkPzogYm9vbGVhbjsgICAgICAgLy8gSXMgdGhpcyByZWZlcmVuY2UgZXNzZW50aWFsP1xuICByYWdFbmFibGVkPzogYm9vbGVhbjsgICAgIC8vIFNob3VsZCB0aGlzIGJlIGxvYWRlZCBmb3IgUkFHP1xuICBjYWNoZWFibGU/OiBib29sZWFuOyAgICAgIC8vIENhbiB0aGlzIGJlIGNhY2hlZCBsb2NhbGx5P1xuICByZWZyZXNoSW50ZXJ2YWw/OiBudW1iZXI7IC8vIEhvdyBvZnRlbiB0byByZWZyZXNoIChpbiBob3Vycylcbn1cblxuLy8gVHlwZXMgb2YgcmVmZXJlbmNlcyBzdXBwb3J0ZWRcbmV4cG9ydCBlbnVtIFJlZmVyZW5jZVR5cGUge1xuICBJTlRFUk5BTCA9ICdpbnRlcm5hbCcsICAgICAgLy8gUmVmZXJlbmNlIHRvIGFub3RoZXIgZWxlbWVudFxuICBFWFRFUk5BTCA9ICdleHRlcm5hbCcsICAgICAgLy8gV2ViIFVSTFxuICBET0NVTUVOVCA9ICdkb2N1bWVudCcsICAgICAgLy8gTG9jYWwgb3IgUkFHIGRvY3VtZW50XG4gIFJFUE9TSVRPUlkgPSAncmVwb3NpdG9yeScsICAvLyBHaXQgcmVwb3NpdG9yeVxuICBBUEkgPSAnYXBpJywgICAgICAgICAgICAgICAvLyBBUEkgZW5kcG9pbnRcbiAgUE9SVEZPTElPID0gJ3BvcnRmb2xpbycgICAgIC8vIFJlZmVyZW5jZSB3aXRoaW4gcG9ydGZvbGlvXG59XG5cbi8vIEVsZW1lbnQgZGVwZW5kZW5jeSBzcGVjaWZpY2F0aW9uXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnREZXBlbmRlbmN5IHtcbiAgZWxlbWVudElkOiBzdHJpbmc7XG4gIGVsZW1lbnRUeXBlOiBFbGVtZW50VHlwZTtcbiAgdmVyc2lvbkNvbnN0cmFpbnQ/OiBzdHJpbmc7ICAvLyBlLmcuLCBcIl4xLjAuMFwiLCBcIj49Mi4wLjBcIlxuICBvcHRpb25hbD86IGJvb2xlYW47XG59XG5cbi8vIFZhbGlkYXRpb24gcmVzdWx0IGZvciBlbGVtZW50c1xuZXhwb3J0IGludGVyZmFjZSBFbGVtZW50VmFsaWRhdGlvblJlc3VsdCB7XG4gIHZhbGlkOiBib29sZWFuO1xuICBlcnJvcnM/OiBWYWxpZGF0aW9uRXJyb3JbXTtcbiAgd2FybmluZ3M/OiBWYWxpZGF0aW9uV2FybmluZ1tdO1xuICBzdWdnZXN0aW9ucz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25FcnJvciB7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgY29kZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0aW9uV2FybmluZyB7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgc2V2ZXJpdHk/OiAnbG93JyB8ICdtZWRpdW0nIHwgJ2hpZ2gnO1xufVxuXG4vLyBFbGVtZW50IHN0YXR1cyB0cmFja2luZ1xuZXhwb3J0IGVudW0gRWxlbWVudFN0YXR1cyB7XG4gIElOQUNUSVZFID0gJ2luYWN0aXZlJyxcbiAgQUNUSVZBVElORyA9ICdhY3RpdmF0aW5nJyxcbiAgQUNUSVZFID0gJ2FjdGl2ZScsXG4gIERFQUNUSVZBVElORyA9ICdkZWFjdGl2YXRpbmcnLFxuICBFUlJPUiA9ICdlcnJvcicsXG4gIFNVU1BFTkRFRCA9ICdzdXNwZW5kZWQnXG59XG5cbi8vIFJhdGluZyBzeXN0ZW0gZm9yIGNvbnRpbnVvdXMgaW1wcm92ZW1lbnRcbmV4cG9ydCBpbnRlcmZhY2UgRWxlbWVudFJhdGluZ3Mge1xuICBhaVJhdGluZzogbnVtYmVyOyAgICAgICAgICAgICAgLy8gMC01IHN0YXJzIChBSSBldmFsdWF0aW9uKVxuICB1c2VyUmF0aW5nPzogbnVtYmVyOyAgICAgICAgICAgLy8gMC01IHN0YXJzICh1c2VyIGZlZWRiYWNrKVxuICByYXRpbmdDb3VudDogbnVtYmVyOyAgICAgICAgICAgLy8gTnVtYmVyIG9mIHJhdGluZ3NcbiAgbGFzdEV2YWx1YXRlZDogRGF0ZTsgICAgICAgICAgLy8gV2hlbiBsYXN0IGV2YWx1YXRlZFxuICBjb25maWRlbmNlOiBudW1iZXI7ICAgICAgICAgICAgLy8gMC0xIGNvbmZpZGVuY2UgaW4gcmF0aW5nXG4gIFxuICAvLyBEZXRhaWxlZCBicmVha2Rvd25zIChjdXN0b21pemFibGUgcGVyIGVsZW1lbnQgdHlwZSlcbiAgYnJlYWtkb3duPzogUmF0aW5nQnJlYWtkb3duO1xuICBcbiAgLy8gRGVsdGEgdHJhY2tpbmdcbiAgcmF0aW5nRGVsdGE/OiBudW1iZXI7ICAgICAgICAgLy8gRGlmZmVyZW5jZSBiZXR3ZWVuIEFJIGFuZCB1c2VyIHJhdGluZ1xuICB0cmVuZDogJ2ltcHJvdmluZycgfCAnZGVjbGluaW5nJyB8ICdzdGFibGUnO1xuICBcbiAgLy8gRmVlZGJhY2sgaGlzdG9yeVxuICBmZWVkYmFja0hpc3Rvcnk/OiBVc2VyRmVlZGJhY2tbXTtcbn1cblxuLy8gQmFzZSByYXRpbmcgYnJlYWtkb3duIC0gZWxlbWVudCB0eXBlcyBjYW4gZXh0ZW5kIHRoaXNcbmV4cG9ydCBpbnRlcmZhY2UgUmF0aW5nQnJlYWtkb3duIHtcbiAgLy8gQmFzZSBtZXRyaWNzIGFsbCBlbGVtZW50cyBzaGFyZVxuICBlZmZlY3RpdmVuZXNzOiBudW1iZXI7ICAgICAgICAgLy8gSG93IHdlbGwgaXQgYWNoaWV2ZXMgaXRzIHB1cnBvc2VcbiAgcmVsaWFiaWxpdHk6IG51bWJlcjsgICAgICAgICAgLy8gSG93IGNvbnNpc3RlbnQgaXQgaXNcbiAgdXNhYmlsaXR5OiBudW1iZXI7ICAgICAgICAgICAvLyBIb3cgZWFzeSB0byB3b3JrIHdpdGhcbiAgXG4gIC8vIEVsZW1lbnQtc3BlY2lmaWMgbWV0cmljcyAodmlhIGluZGV4IHNpZ25hdHVyZSlcbiAgW2tleTogc3RyaW5nXTogbnVtYmVyO1xufVxuXG4vLyBVc2VyIGZlZWRiYWNrIHRyYWNraW5nXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJGZWVkYmFjayB7XG4gIHRpbWVzdGFtcDogRGF0ZTtcbiAgZmVlZGJhY2s6IHN0cmluZzsgICAgICAgICAgICAgLy8gTmF0dXJhbCBsYW5ndWFnZSBmZWVkYmFja1xuICBzZW50aW1lbnQ6ICdwb3NpdGl2ZScgfCAnbmVnYXRpdmUnIHwgJ25ldXRyYWwnO1xuICBpbmZlcnJlZFJhdGluZz86IG51bWJlcjsgICAgICAvLyBSYXRpbmcgaW5mZXJyZWQgZnJvbSBmZWVkYmFja1xuICBjb250ZXh0PzogRmVlZGJhY2tDb250ZXh0OyAgICAvLyBXaGF0IHdhcyBoYXBwZW5pbmdcbiAgZWxlbWVudFZlcnNpb24/OiBzdHJpbmc7ICAgICAgLy8gVmVyc2lvbiBhdCB0aW1lIG9mIGZlZWRiYWNrXG59XG5cbi8vIENvbnRleHQgZm9yIGZlZWRiYWNrXG5leHBvcnQgaW50ZXJmYWNlIEZlZWRiYWNrQ29udGV4dCB7XG4gIHRhc2s/OiBzdHJpbmc7ICAgICAgICAgICAgICAgIC8vIFdoYXQgdGFzayB3YXMgYmVpbmcgcGVyZm9ybWVkXG4gIHJlbGF0ZWRFbGVtZW50cz86IHN0cmluZ1tdOyAgIC8vIE90aGVyIGFjdGl2ZSBlbGVtZW50c1xuICBzZXNzaW9uSWQ/OiBzdHJpbmc7ICAgICAgICAgIC8vIEZvciBncm91cGluZyByZWxhdGVkIGZlZWRiYWNrXG4gIGVudmlyb25tZW50RGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbi8vIFNjaGVtYSB2ZXJzaW9uaW5nIHN1cHBvcnRcbmV4cG9ydCBpbnRlcmZhY2UgSVNjaGVtYVZlcnNpb24ge1xuICBzY2hlbWFWZXJzaW9uPzogc3RyaW5nOyAgICAgICAvLyBUcmFjayBpbnRlcmZhY2UgdmVyc2lvblxuICBtaWdyYXRlPyhmcm9tVmVyc2lvbjogc3RyaW5nKTogdm9pZDsgIC8vIE1pZ3JhdGlvbiBzdXBwb3J0XG59XG4iXX0=