genassist-chat-react 1.0.26 → 1.0.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/components/GenAgentChat.js +40 -31
- package/dist/components/GenAgentConfigPanel.d.ts +1 -0
- package/dist/components/GenAgentConfigPanel.js +2 -1
- package/dist/components/InteractiveContent.js +3 -2
- package/dist/components/MarkdownMessage.d.ts +11 -0
- package/dist/components/MarkdownMessage.js +56 -0
- package/dist/components/WelcomeCard.js +3 -3
- package/dist/hooks/useChat.d.ts +6 -2
- package/dist/hooks/useChat.js +314 -67
- package/dist/services/chatService.d.ts +24 -2
- package/dist/services/chatService.js +146 -48
- package/dist/types/index.d.ts +22 -0
- package/dist/types/index.js +1 -1
- package/package.json +5 -2
|
@@ -39,6 +39,7 @@ var defaultFeatureFlags = {
|
|
|
39
39
|
useAudio: false,
|
|
40
40
|
useFile: false,
|
|
41
41
|
useWs: false,
|
|
42
|
+
usePoll: false,
|
|
42
43
|
};
|
|
43
44
|
function objectToParams(obj) {
|
|
44
45
|
if (!obj)
|
|
@@ -386,4 +387,4 @@ var modalFooterStyle = {
|
|
|
386
387
|
borderTop: '1px solid #eee',
|
|
387
388
|
backgroundColor: '#fafafa',
|
|
388
389
|
};
|
|
389
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2VuQWdlbnRDb25maWdQYW5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL0dlbkFnZW50Q29uZmlnUGFuZWwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWUsTUFBTSxjQUFjLENBQUM7QUF3RHpGLElBQU0sWUFBWSxHQUFjO0lBQzlCLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFVBQVUsRUFBRSxtQkFBbUI7SUFDL0IsUUFBUSxFQUFFLE1BQU07Q0FDakIsQ0FBQztBQUVGLElBQU0sZUFBZSxHQUF1QjtJQUMxQyxJQUFJLEVBQUUsV0FBVztJQUNqQixXQUFXLEVBQUUsU0FBUztJQUN0QixTQUFTLEVBQUUsT0FBTztJQUNsQixPQUFPLEVBQUUsRUFBRTtDQUNaLENBQUM7QUFFRixJQUFNLG1CQUFtQixHQUFpQjtJQUN4QyxRQUFRLEVBQUUsS0FBSztJQUNmLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLEtBQUs7Q0FDYixDQUFDO0FBRUYsU0FBUyxjQUFjLENBQUMsR0FBb0M7SUFDMUQsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNwQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQUMsQ0FBQztRQUM1QixJQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakIsSUFBSSxJQUFJLEdBQWMsUUFBUSxDQUFDO1FBQy9C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dXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENoZXZyb25Eb3duLCBDaGV2cm9uVXAsIFBsdXMsIFRyYXNoMiwgUGVuY2lsLCBYLCBTcGFya2xlcyB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdFRoZW1lIHtcbiAgcHJpbWFyeUNvbG9yOiBzdHJpbmc7XG4gIHNlY29uZGFyeUNvbG9yOiBzdHJpbmc7XG4gIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuICB0ZXh0Q29sb3I6IHN0cmluZztcbiAgZm9udEZhbWlseTogc3RyaW5nO1xuICBmb250U2l6ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYXRTZXR0aW5nc0NvbmZpZyB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgYWdlbnROYW1lOiBzdHJpbmc7XG4gIGxvZ29Vcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUZsYWdzIHtcbiAgdXNlQXVkaW8/OiBib29sZWFuO1xuICB1c2VGaWxlPzogYm9vbGVhbjtcbiAgdXNlV3M/OiBib29sZWFuO1xufVxuXG50eXBlIFBhcmFtVHlwZSA9ICdzdHJpbmcnIHwgJ251bWJlcicgfCAnYm9vbGVhbic7XG5cbmludGVyZmFjZSBNZXRhZGF0YVBhcmFtIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBQYXJhbVR5cGU7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICByZXF1aXJlZDogYm9vbGVhbjtcbiAgdmFsdWU/OiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbkFnZW50Q29uZmlnUGFuZWxQcm9wcyB7XG4gIHRoZW1lPzogQ2hhdFRoZW1lO1xuICBvblRoZW1lQ2hhbmdlPzogKG5leHQ6IENoYXRUaGVtZSkgPT4gdm9pZDtcblxuICBjaGF0U2V0dGluZ3M/OiBDaGF0U2V0dGluZ3NDb25maWc7XG4gIG9uQ2hhdFNldHRpbmdzQ2hhbmdlPzogKG5leHQ6IENoYXRTZXR0aW5nc0NvbmZpZykgPT4gdm9pZDtcblxuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIG9uTWV0YWRhdGFDaGFuZ2U/OiAobmV4dDogUmVjb3JkPHN0cmluZywgYW55PikgPT4gdm9pZDtcblxuICBhZ2VudENoYXRJbnB1dE1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICBmZWF0dXJlRmxhZ3M/OiBGZWF0dXJlRmxhZ3M7XG4gIG9uRmVhdHVyZUZsYWdzQ2hhbmdlPzogKG5leHQ6IEZlYXR1cmVGbGFncykgPT4gdm9pZDtcblxuICBkZWZhdWx0T3Blbj86IHsgYXBwZWFyYW5jZT86IGJvb2xlYW47IHNldHRpbmdzPzogYm9vbGVhbjsgbWV0YWRhdGE/OiBib29sZWFuIH07XG4gIG9uU2F2ZT86IChwYXlsb2FkOiB7IHRoZW1lOiBDaGF0VGhlbWU7IGNoYXRTZXR0aW5nczogQ2hhdFNldHRpbmdzQ29uZmlnOyBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55PjsgZmVhdHVyZUZsYWdzOiBGZWF0dXJlRmxhZ3MgfSkgPT4gdm9pZDtcbiAgb25DYW5jZWw/OiAoKSA9PiB2b2lkO1xuXG4gIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbn1cblxuY29uc3QgZGVmYXVsdFRoZW1lOiBDaGF0VGhlbWUgPSB7XG4gIHByaW1hcnlDb2xvcjogJyM0RjQ2RTUnLFxuICBzZWNvbmRhcnlDb2xvcjogJyNmNWY1ZjUnLFxuICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmZmZmJyxcbiAgdGV4dENvbG9yOiAnIzAwMDAwMCcsXG4gIGZvbnRGYW1pbHk6ICdJbnRlciwgc2Fucy1zZXJpZicsXG4gIGZvbnRTaXplOiAnMTVweCcsXG59O1xuXG5jb25zdCBkZWZhdWx0U2V0dGluZ3M6IENoYXRTZXR0aW5nc0NvbmZpZyA9IHtcbiAgbmFtZTogJ0dlbmFzc2lzdCcsXG4gIGRlc2NyaXB0aW9uOiAnU3VwcG9ydCcsXG4gIGFnZW50TmFtZTogJ0FnZW50JyxcbiAgbG9nb1VybDogJycsXG59O1xuXG5jb25zdCBkZWZhdWx0RmVhdHVyZUZsYWdzOiBGZWF0dXJlRmxhZ3MgPSB7XG4gIHVzZUF1ZGlvOiBmYWxzZSxcbiAgdXNlRmlsZTogZmFsc2UsXG4gIHVzZVdzOiBmYWxzZSxcbn07XG5cbmZ1bmN0aW9uIG9iamVjdFRvUGFyYW1zKG9iajogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCk6IE1ldGFkYXRhUGFyYW1bXSB7XG4gIGlmICghb2JqKSByZXR1cm4gW107XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLm1hcCgoaykgPT4ge1xuICAgIGNvbnN0IHYgPSBvYmpba107XG4gICAgbGV0IHR5cGU6IFBhcmFtVHlwZSA9ICdzdHJpbmcnO1xuICAgIGlmICh0eXBlb2YgdiA9PT0gJ251bWJlcicpIHR5cGUgPSAnbnVtYmVyJztcbiAgICBlbHNlIGlmICh0eXBlb2YgdiA9PT0gJ2Jvb2xlYW4nKSB0eXBlID0gJ2Jvb2xlYW4nO1xuICAgIHJldHVybiB7IG5hbWU6IGssIHR5cGUsIHJlcXVpcmVkOiBmYWxzZSwgdmFsdWU6IHYgfTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHBhcmFtc1RvT2JqZWN0KHBhcmFtczogTWV0YWRhdGFQYXJhbVtdKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gIGNvbnN0IG86IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgcGFyYW1zLmZvckVhY2goKHApID0+IHtcbiAgICBpZiAodHlwZW9mIHAudmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBvW3AubmFtZV0gPSBwLnZhbHVlO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBvO1xufVxuXG5leHBvcnQgY29uc3QgR2VuQWdlbnRDb25maWdQYW5lbDogUmVhY3QuRkM8R2VuQWdlbnRDb25maWdQYW5lbFByb3BzPiA9ICh7XG4gIHRoZW1lOiB0aGVtZVByb3AsXG4gIG9uVGhlbWVDaGFuZ2UsXG4gIGNoYXRTZXR0aW5nczogY2hhdFNldHRpbmdzUHJvcCxcbiAgb25DaGF0U2V0dGluZ3NDaGFuZ2UsXG4gIG1ldGFkYXRhOiBtZXRhZGF0YVByb3AsXG4gIG9uTWV0YWRhdGFDaGFuZ2UsXG4gIGFnZW50Q2hhdElucHV0TWV0YWRhdGEsXG4gIGZlYXR1cmVGbGFnczogZmVhdHVyZUZsYWdzUHJvcCxcbiAgb25GZWF0dXJlRmxhZ3NDaGFuZ2UsXG4gIGRlZmF1bHRPcGVuLFxuICBvblNhdmUsXG4gIG9uQ2FuY2VsLFxuICBzdHlsZSxcbn0pID0+IHtcbiAgLy8gTWVyZ2Ugd29ya2Zsb3cgY2hhdCBpbnB1dCBtZXRhZGF0YSB3aXRoIHVzZXIgbWV0YWRhdGFcbiAgY29uc3QgbWVyZ2VkTWV0YWRhdGEgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7IC4uLihhZ2VudENoYXRJbnB1dE1ldGFkYXRhIHx8IHt9KSwgLi4uKG1ldGFkYXRhUHJvcCB8fCB7fSkgfSksXG4gICAgW2FnZW50Q2hhdElucHV0TWV0YWRhdGEsIG1ldGFkYXRhUHJvcF1cbiAgKTtcblxuICAvLyBDb250cm9sbGVkIG9yIGludGVybmFsIHN0YXRlIGZhbGxiYWNrc1xuICBjb25zdCBbdGhlbWUsIHNldFRoZW1lXSA9IHVzZVN0YXRlPENoYXRUaGVtZT4odGhlbWVQcm9wIHx8IGRlZmF1bHRUaGVtZSk7XG4gIGNvbnN0IFtjaGF0U2V0dGluZ3MsIHNldENoYXRTZXR0aW5nc10gPSB1c2VTdGF0ZTxDaGF0U2V0dGluZ3NDb25maWc+KGNoYXRTZXR0aW5nc1Byb3AgfHwgZGVmYXVsdFNldHRpbmdzKTtcbiAgY29uc3QgW3BhcmFtcywgc2V0UGFyYW1zXSA9IHVzZVN0YXRlPE1ldGFkYXRhUGFyYW1bXT4oKCkgPT4gb2JqZWN0VG9QYXJhbXMobWVyZ2VkTWV0YWRhdGEpKTtcbiAgY29uc3QgW2ZlYXR1cmVGbGFncywgc2V0RmVhdHVyZUZsYWdzXSA9IHVzZVN0YXRlPEZlYXR1cmVGbGFncz4oZmVhdHVyZUZsYWdzUHJvcCB8fCBkZWZhdWx0RmVhdHVyZUZsYWdzKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aGVtZVByb3ApIHNldFRoZW1lKHRoZW1lUHJvcCk7XG4gIH0sIFt0aGVtZVByb3BdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjaGF0U2V0dGluZ3NQcm9wKSBzZXRDaGF0U2V0dGluZ3MoY2hhdFNldHRpbmdzUHJvcCk7XG4gIH0sIFtjaGF0U2V0dGluZ3NQcm9wXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRQYXJhbXMob2JqZWN0VG9QYXJhbXMobWVyZ2VkTWV0YWRhdGEpKTtcbiAgfSwgW2FnZW50Q2hhdElucHV0TWV0YWRhdGEsIG1ldGFkYXRhUHJvcF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZlYXR1cmVGbGFnc1Byb3ApIHNldEZlYXR1cmVGbGFncyhmZWF0dXJlRmxhZ3NQcm9wKTtcbiAgfSwgW2ZlYXR1cmVGbGFnc1Byb3BdKTtcblxuICBjb25zdCBbc2hvd0FwcGVhcmFuY2UsIHNldFNob3dBcHBlYXJhbmNlXSA9IHVzZVN0YXRlKFxuICAgIHR5cGVvZiBkZWZhdWx0T3Blbj8uYXBwZWFyYW5jZSA9PT0gJ2Jvb2xlYW4nID8gISFkZWZhdWx0T3Blbj8uYXBwZWFyYW5jZSA6IHRydWVcbiAgKTtcbiAgY29uc3QgW3Nob3dTZXR0aW5ncywgc2V0U2hvd1NldHRpbmdzXSA9IHVzZVN0YXRlKFxuICAgIHR5cGVvZiBkZWZhdWx0T3Blbj8uc2V0dGluZ3MgPT09ICdib29sZWFuJyA/ICEhZGVmYXVsdE9wZW4/LnNldHRpbmdzIDogZmFsc2VcbiAgKTtcbiAgY29uc3QgW3Nob3dNZXRhZGF0YSwgc2V0U2hvd01ldGFkYXRhXSA9IHVzZVN0YXRlKFxuICAgIHR5cGVvZiBkZWZhdWx0T3Blbj8ubWV0YWRhdGEgPT09ICdib29sZWFuJyA/ICEhZGVmYXVsdE9wZW4/Lm1ldGFkYXRhIDogZmFsc2VcbiAgKTtcblxuICAvLyBBdXRvLWV4cGFuZCBNZXRhZGF0YSBzZWN0aW9uXG4gIGNvbnN0IHByZXZNZXRhS2V5Q291bnRSZWYgPSBSZWFjdC51c2VSZWY8bnVtYmVyPigwKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBrZXlDb3VudCA9IGFnZW50Q2hhdElucHV0TWV0YWRhdGEgPyBPYmplY3Qua2V5cyhhZ2VudENoYXRJbnB1dE1ldGFkYXRhKS5sZW5ndGggOiAwO1xuICAgIGlmIChrZXlDb3VudCA+IDAgJiYgcHJldk1ldGFLZXlDb3VudFJlZi5jdXJyZW50ID09PSAwKSB7XG4gICAgICBzZXRTaG93TWV0YWRhdGEodHJ1ZSk7XG4gICAgfVxuICAgIHByZXZNZXRhS2V5Q291bnRSZWYuY3VycmVudCA9IGtleUNvdW50O1xuICB9LCBbYWdlbnRDaGF0SW5wdXRNZXRhZGF0YV0pO1xuXG4gIGNvbnN0IFtzaG93QWRkUGFyYW0sIHNldFNob3dBZGRQYXJhbV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtkcmFmdFBhcmFtLCBzZXREcmFmdFBhcmFtXSA9IHVzZVN0YXRlPE1ldGFkYXRhUGFyYW0+KHtcbiAgICBuYW1lOiAncGFyYW1fMScsXG4gICAgdHlwZTogJ3N0cmluZycsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIHZhbHVlOiAnJyxcbiAgfSk7XG5cbiAgY29uc3QgW3Nob3dFZGl0UGFyYW0sIHNldFNob3dFZGl0UGFyYW1dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZWRpdEluZGV4LCBzZXRFZGl0SW5kZXhdID0gdXNlU3RhdGU8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtlZGl0RHJhZnQsIHNldEVkaXREcmFmdF0gPSB1c2VTdGF0ZTxNZXRhZGF0YVBhcmFtPih7IG5hbWU6ICcnLCB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IGZhbHNlLCB2YWx1ZTogJycgfSk7XG5cbiAgY29uc3QgbWV0YWRhdGEgPSB1c2VNZW1vKCgpID0+IHBhcmFtc1RvT2JqZWN0KHBhcmFtcyksIFtwYXJhbXNdKTtcblxuICBjb25zdCBoYW5kbGVUaGVtZUNoYW5nZSA9IChrZXk6IGtleW9mIENoYXRUaGVtZSwgdmFsdWU6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IG5leHQgPSB7IC4uLnRoZW1lLCBba2V5XTogdmFsdWUgfSBhcyBDaGF0VGhlbWU7XG4gICAgaWYgKCF0aGVtZVByb3ApIHNldFRoZW1lKG5leHQpO1xuICAgIG9uVGhlbWVDaGFuZ2U/LihuZXh0KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTZXR0aW5nQ2hhbmdlID0gKGtleToga2V5b2YgQ2hhdFNldHRpbmdzQ29uZmlnLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgbmV4dCA9IHsgLi4uY2hhdFNldHRpbmdzLCBba2V5XTogdmFsdWUgfSBhcyBDaGF0U2V0dGluZ3NDb25maWc7XG4gICAgaWYgKCFjaGF0U2V0dGluZ3NQcm9wKSBzZXRDaGF0U2V0dGluZ3MobmV4dCk7XG4gICAgb25DaGF0U2V0dGluZ3NDaGFuZ2U/LihuZXh0KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVGZWF0dXJlRmxhZ0NoYW5nZSA9IChrZXk6IGtleW9mIEZlYXR1cmVGbGFncywgdmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICBjb25zdCBuZXh0ID0geyAuLi5mZWF0dXJlRmxhZ3MsIFtrZXldOiB2YWx1ZSB9IGFzIEZlYXR1cmVGbGFncztcbiAgICBpZiAoIWZlYXR1cmVGbGFnc1Byb3ApIHNldEZlYXR1cmVGbGFncyhuZXh0KTtcbiAgICBvbkZlYXR1cmVGbGFnc0NoYW5nZT8uKG5leHQpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUFkZFBhcmFtID0gKCkgPT4ge1xuICAgIGNvbnN0IG5hbWUgPSBkcmFmdFBhcmFtLm5hbWUudHJpbSgpO1xuICAgIGlmICghbmFtZSkgcmV0dXJuO1xuICAgIGlmIChwYXJhbXMuc29tZSgocCkgPT4gcC5uYW1lID09PSBuYW1lKSkgcmV0dXJuO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQ6IE1ldGFkYXRhUGFyYW0gPSB7XG4gICAgICAuLi5kcmFmdFBhcmFtLFxuICAgICAgbmFtZSxcbiAgICAgIHZhbHVlOlxuICAgICAgICB0eXBlb2YgZHJhZnRQYXJhbS52YWx1ZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgICA/IGRyYWZ0UGFyYW0udmFsdWVcbiAgICAgICAgICA6IGRyYWZ0UGFyYW0udHlwZSA9PT0gJ251bWJlcidcbiAgICAgICAgICA/IDBcbiAgICAgICAgICA6IGRyYWZ0UGFyYW0udHlwZSA9PT0gJ2Jvb2xlYW4nXG4gICAgICAgICAgPyBmYWxzZVxuICAgICAgICAgIDogJycsXG4gICAgfTtcbiAgICBjb25zdCBuZXh0ID0gWy4uLnBhcmFtcywgbm9ybWFsaXplZF07XG4gICAgc2V0UGFyYW1zKG5leHQpO1xuICAgIG9uTWV0YWRhdGFDaGFuZ2U/LihwYXJhbXNUb09iamVjdChuZXh0KSk7XG4gICAgc2V0RHJhZnRQYXJhbSh7IG5hbWU6ICdwYXJhbV8xJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiBmYWxzZSwgdmFsdWU6ICcnIH0pO1xuICAgIHNldFNob3dBZGRQYXJhbShmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgY29lcmNlRm9yVHlwZSA9ICh2YWw6IGFueSwgdHlwZTogUGFyYW1UeXBlKSA9PiB7XG4gICAgaWYgKHR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICBjb25zdCBuID0gTnVtYmVyKHZhbCk7XG4gICAgICByZXR1cm4gaXNOYU4obikgPyAwIDogbjtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09ICdib29sZWFuJykge1xuICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdib29sZWFuJykgcmV0dXJuIHZhbDtcbiAgICAgIGNvbnN0IHMgPSBTdHJpbmcodmFsKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgcmV0dXJuIHMgPT09ICd0cnVlJyB8fCBzID09PSAnMScgfHwgcyA9PT0gJ3llcyc7XG4gICAgfVxuICAgIHJldHVybiBTdHJpbmcodmFsID8/ICcnKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVFZGl0U2F2ZSA9ICgpID0+IHtcbiAgICBpZiAoZWRpdEluZGV4ID09PSBudWxsKSByZXR1cm47XG4gICAgY29uc3QgbmV3TmFtZSA9IGVkaXREcmFmdC5uYW1lLnRyaW0oKTtcbiAgICBpZiAoIW5ld05hbWUpIHJldHVybjtcbiAgICBpZiAocGFyYW1zLnNvbWUoKHAsIGkpID0+IGkgIT09IGVkaXRJbmRleCAmJiBwLm5hbWUgPT09IG5ld05hbWUpKSByZXR1cm47XG4gICAgY29uc3QgbmV4dCA9IFsuLi5wYXJhbXNdO1xuICAgIGNvbnN0IG9sZCA9IG5leHRbZWRpdEluZGV4XTtcbiAgICBjb25zdCB1cGRhdGVkOiBNZXRhZGF0YVBhcmFtID0geyAuLi5vbGQsIC4uLmVkaXREcmFmdCB9O1xuICAgIHVwZGF0ZWQudmFsdWUgPSBjb2VyY2VGb3JUeXBlKG9sZC52YWx1ZSwgZWRpdERyYWZ0LnR5cGUpO1xuICAgIG5leHRbZWRpdEluZGV4XSA9IHVwZGF0ZWQ7XG4gICAgc2V0UGFyYW1zKG5leHQpO1xuICAgIG9uTWV0YWRhdGFDaGFuZ2U/LihwYXJhbXNUb09iamVjdChuZXh0KSk7XG4gICAgc2V0U2hvd0VkaXRQYXJhbShmYWxzZSk7XG4gICAgc2V0RWRpdEluZGV4KG51bGwpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlbW92ZVBhcmFtID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBuZXh0ID0gcGFyYW1zLmZpbHRlcigoXywgaSkgPT4gaSAhPT0gaW5kZXgpO1xuICAgIHNldFBhcmFtcyhuZXh0KTtcbiAgICBvbk1ldGFkYXRhQ2hhbmdlPy4ocGFyYW1zVG9PYmplY3QobmV4dCkpO1xuICB9O1xuXG4gIGNvbnN0IGNvbnRhaW5lclN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIGZsZXg6ICcxJyxcbiAgICBtYXhXaWR0aDogMzAwLFxuICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmZmZmYnLFxuICAgIGJvcmRlclJhZGl1czogOCxcbiAgICBib3hTaGFkb3c6ICcwIDJweCAxMHB4IHJnYmEoMCwwLDAsMC4xKScsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAuLi5zdHlsZSxcbiAgfTtcblxuICBjb25zdCBzZWN0aW9uSGVhZGVyU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gICAgcGFkZGluZzogMTYsXG4gICAgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkICNlMGUwZTAnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgIGJhY2tncm91bmRDb2xvcjogJyNmOWY5ZjknLFxuICB9O1xuXG4gIGNvbnN0IHNlY3Rpb25UaXRsZVN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIG1hcmdpbjogMCxcbiAgICBmb250U2l6ZTogMTIsXG4gICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgIGNvbG9yOiAnIzY2NicsXG4gICAgbGV0dGVyU3BhY2luZzogMSxcbiAgfSBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuXG4gIGNvbnN0IGZvcm1Hcm91cFN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIHBhZGRpbmc6ICcxNnB4IDE2cHggMTJweCcsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgYm9yZGVyQm90dG9tOiAnbm9uZScsXG4gIH07XG5cbiAgY29uc3QgbGFiZWxTdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHsgZm9udFNpemU6IDE0LCBjb2xvcjogJyMzMzMnIH07XG4gIGNvbnN0IGNvbG9yUGlja2VyU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gICAgYXBwZWFyYW5jZTogJ25vbmUnLFxuICAgIHdpZHRoOiAxMjAsXG4gICAgaGVpZ2h0OiAzMixcbiAgICBwYWRkaW5nOiAwLFxuICAgIGJvcmRlcjogJzFweCBzb2xpZCAjZTBlMGUwJyxcbiAgICBib3JkZXJSYWRpdXM6IDQsXG4gICAgY3Vyc29yOiAncG9pbnRlcicsXG4gIH0gYXMgUmVhY3QuQ1NTUHJvcGVydGllcztcblxuICBjb25zdCBzZWxlY3RTdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgICB3aWR0aDogMTQwLFxuICAgIGhlaWdodDogMzIsXG4gICAgcGFkZGluZzogJzAgOHB4JyxcbiAgICBib3JkZXI6ICcxcHggc29saWQgI2UwZTBlMCcsXG4gICAgYm9yZGVyUmFkaXVzOiA0LFxuICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmYnLFxuICAgIGZvbnRTaXplOiAxNCxcbiAgfSBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuXG4gIGNvbnN0IGlucHV0U3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBoZWlnaHQ6IDMyLFxuICAgIHBhZGRpbmc6ICcwIDhweCcsXG4gICAgYm9yZGVyOiAnMXB4IHNvbGlkICNlMGUwZTAnLFxuICAgIGJvcmRlclJhZGl1czogNCxcbiAgICBmb250U2l6ZTogMTQsXG4gIH07XG5cbiAgY29uc3QgYWN0aW9uQmFyU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gICAgcGFkZGluZzogMTIsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGp1c3RpZnlDb250ZW50OiAnZmxleC1lbmQnLFxuICAgIGdhcDogOCxcbiAgICBib3JkZXJUb3A6ICcxcHggc29saWQgI2UwZTBlMCcsXG4gICAgYmFja2dyb3VuZENvbG9yOiAnI2ZhZmFmYScsXG4gIH07XG5cbiAgY29uc3QgY2FuY2VsQnV0dG9uU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gICAgcGFkZGluZzogJzhweCAxMnB4JyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmJyxcbiAgICBib3JkZXI6ICcxcHggc29saWQgI2UwZTBlMCcsXG4gICAgYm9yZGVyUmFkaXVzOiA2LFxuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICB9O1xuICBjb25zdCBzYXZlQnV0dG9uU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gICAgcGFkZGluZzogJzhweCAxMnB4JyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjMTExODI3JyxcbiAgICBjb2xvcjogJyNmZmYnLFxuICAgIGJvcmRlcjogJzFweCBzb2xpZCAjMGIxMjIwJyxcbiAgICBib3JkZXJSYWRpdXM6IDYsXG4gICAgY3Vyc29yOiAncG9pbnRlcicsXG4gIH07XG5cbiAgY29uc3QgZnVsbFdpZHRoQWN0aW9uQnV0dG9uOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBnYXA6IDgsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBwYWRkaW5nOiAnMTBweCAxMnB4JyxcbiAgICBib3JkZXI6ICcxcHggc29saWQgI2UwZTBlMCcsXG4gICAgYm9yZGVyUmFkaXVzOiA4LFxuICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmYnLFxuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgIGZvbnRTaXplOiAxNCxcbiAgICBjb2xvcjogJyMxMTEnLFxuICB9O1xuXG4gIGNvbnN0IHNtYWxsSWNvbkJ1dHRvbjogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgICBib3JkZXI6ICcxcHggc29saWQgI2UwZTBlMCcsXG4gICAgYm9yZGVyUmFkaXVzOiA4LFxuICAgIHdpZHRoOiAyOCxcbiAgICBoZWlnaHQ6IDI4LFxuICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmYnLFxuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICB9O1xuXG4gIGNvbnN0IG1ldGFSb3dTdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgICBkaXNwbGF5OiAnZ3JpZCcsXG4gICAgZ3JpZFRlbXBsYXRlQ29sdW1uczogJzFmciBtaW5tYXgoOTBweCwgMTUwcHgpIDI4cHggMjhweCcsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgZ2FwOiA4LFxuICAgIHBhZGRpbmc6ICc2cHggMCcsXG4gIH07XG4gIGNvbnN0IG1ldGFOYW1lU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gICAgZm9udFNpemU6IDEzLFxuICAgIGNvbG9yOiAnIzIyMicsXG4gICAgZm9udFdlaWdodDogNTAwLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gIH07XG4gIGNvbnN0IG1ldGFWYWx1ZVN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIG1heFdpZHRoOiAxNTAsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJyxcbiAgICB3aGl0ZVNwYWNlOiAnbm93cmFwJyxcbiAgICBmb250U2l6ZTogMTMsXG4gICAgY29sb3I6ICcjMTExJyxcbiAgICBib3JkZXI6ICcxcHggc29saWQgI2U2ZTZlNicsXG4gICAgYm9yZGVyUmFkaXVzOiAxMixcbiAgICBwYWRkaW5nOiAnNnB4IDEwcHgnLFxuICAgIGJhY2tncm91bmRDb2xvcjogJyNmYWZhZmEnLFxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNhdmUgPSAoKSA9PiB7XG4gICAgb25TYXZlPy4oeyB0aGVtZSwgY2hhdFNldHRpbmdzLCBtZXRhZGF0YSwgZmVhdHVyZUZsYWdzIH0pO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17Y29udGFpbmVyU3R5bGV9PlxuICAgICAgey8qIEFwcGVhcmFuY2UgU2VjdGlvbiAqL31cbiAgICAgIDxkaXYgc3R5bGU9e3sgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkICNlMGUwZTAnIH19PlxuICAgICAgICA8ZGl2IHN0eWxlPXtzZWN0aW9uSGVhZGVyU3R5bGV9IG9uQ2xpY2s9eygpID0+IHNldFNob3dBcHBlYXJhbmNlKCFzaG93QXBwZWFyYW5jZSl9PlxuICAgICAgICAgIDxoMyBzdHlsZT17c2VjdGlvblRpdGxlU3R5bGV9PkFQUEVBUkFOQ0U8L2gzPlxuICAgICAgICAgIHtzaG93QXBwZWFyYW5jZSA/IDxDaGV2cm9uVXAgc2l6ZT17MTZ9IC8+IDogPENoZXZyb25Eb3duIHNpemU9ezE2fSAvPn1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtzaG93QXBwZWFyYW5jZSAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e2Zvcm1Hcm91cFN0eWxlfT5cbiAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPXtsYWJlbFN0eWxlfT5QcmltYXJ5IENvbG9yPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICAgICAgICB2YWx1ZT17dGhlbWUucHJpbWFyeUNvbG9yfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlVGhlbWVDaGFuZ2UoJ3ByaW1hcnlDb2xvcicsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICBzdHlsZT17Y29sb3JQaWNrZXJTdHlsZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17Zm9ybUdyb3VwU3R5bGV9PlxuICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9e2xhYmVsU3R5bGV9PlNlY29uZGFyeSBDb2xvcjwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgdmFsdWU9e3RoZW1lLnNlY29uZGFyeUNvbG9yfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlVGhlbWVDaGFuZ2UoJ3NlY29uZGFyeUNvbG9yJywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgIHN0eWxlPXtjb2xvclBpY2tlclN0eWxlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXtmb3JtR3JvdXBTdHlsZX0+XG4gICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17bGFiZWxTdHlsZX0+QmFja2dyb3VuZCBDb2xvcjwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgdmFsdWU9e3RoZW1lLmJhY2tncm91bmRDb2xvcn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZVRoZW1lQ2hhbmdlKCdiYWNrZ3JvdW5kQ29sb3InLCBlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgc3R5bGU9e2NvbG9yUGlja2VyU3R5bGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e2Zvcm1Hcm91cFN0eWxlfT5cbiAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPXtsYWJlbFN0eWxlfT5UZXh0IENvbG9yPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICAgICAgICB2YWx1ZT17dGhlbWUudGV4dENvbG9yfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlVGhlbWVDaGFuZ2UoJ3RleHRDb2xvcicsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICBzdHlsZT17Y29sb3JQaWNrZXJTdHlsZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17Zm9ybUdyb3VwU3R5bGV9PlxuICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9e2xhYmVsU3R5bGV9PkZvbnQgU2l6ZTwvbGFiZWw+XG4gICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICBzdHlsZT17c2VsZWN0U3R5bGV9XG4gICAgICAgICAgICAgICAgdmFsdWU9e3RoZW1lLmZvbnRTaXplfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlVGhlbWVDaGFuZ2UoJ2ZvbnRTaXplJywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjEycHhcIj5TbWFsbCAoMTJweCk8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMTVweFwiPk1lZGl1bSAoMTVweCk8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMThweFwiPkxhcmdlICgxOHB4KTwvb3B0aW9uPlxuICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17Zm9ybUdyb3VwU3R5bGV9PlxuICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9e2xhYmVsU3R5bGV9PkZvbnQgRmFtaWx5PC9sYWJlbD5cbiAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgIHN0eWxlPXtzZWxlY3RTdHlsZX1cbiAgICAgICAgICAgICAgICB2YWx1ZT17dGhlbWUuZm9udEZhbWlseS5zcGxpdCgnLCcpWzBdLnRyaW0oKX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHYgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGZmID1cbiAgICAgICAgICAgICAgICAgICAgdiA9PT0gJ0ludGVyJ1xuICAgICAgICAgICAgICAgICAgICAgID8gJ0ludGVyLCBzYW5zLXNlcmlmJ1xuICAgICAgICAgICAgICAgICAgICAgIDogdiA9PT0gJ0FyaWFsJ1xuICAgICAgICAgICAgICAgICAgICAgID8gJ0FyaWFsLCBzYW5zLXNlcmlmJ1xuICAgICAgICAgICAgICAgICAgICAgIDogdiA9PT0gJ1RpbWVzIE5ldyBSb21hbidcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiJ1RpbWVzIE5ldyBSb21hbicsIHNlcmlmXCJcbiAgICAgICAgICAgICAgICAgICAgICA6ICdtb25vc3BhY2UnO1xuICAgICAgICAgICAgICAgICAgaGFuZGxlVGhlbWVDaGFuZ2UoJ2ZvbnRGYW1pbHknLCBmZik7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJJbnRlclwiPkludGVyPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkFyaWFsXCI+QXJpYWw8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiVGltZXMgTmV3IFJvbWFuXCI+VGltZXMgTmV3IFJvbWFuPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vbm9zcGFjZVwiPk1vbm9zcGFjZTwvb3B0aW9uPlxuICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBTZXR0aW5ncyBTZWN0aW9uICovfVxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBzdHlsZT17c2VjdGlvbkhlYWRlclN0eWxlfSBvbkNsaWNrPXsoKSA9PiBzZXRTaG93U2V0dGluZ3MoIXNob3dTZXR0aW5ncyl9PlxuICAgICAgICAgIDxoMyBzdHlsZT17c2VjdGlvblRpdGxlU3R5bGV9PlNFVFRJTkdTPC9oMz5cbiAgICAgICAgICB7c2hvd1NldHRpbmdzID8gPENoZXZyb25VcCBzaXplPXsxNn0gLz4gOiA8Q2hldnJvbkRvd24gc2l6ZT17MTZ9IC8+fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge3Nob3dTZXR0aW5ncyAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgcGFkZGluZzogJzE2cHggMTZweCAxMnB4JyB9fT5cbiAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPXt7IC4uLmxhYmVsU3R5bGUsIGRpc3BsYXk6ICdibG9jaycsIG1hcmdpbkJvdHRvbTogOCB9fT5OYW1lPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IC4uLmlucHV0U3R5bGUsIGhlaWdodDogNDAsIHBhZGRpbmc6ICcwIDEycHgnLCBib3hTaXppbmc6ICdib3JkZXItYm94JyB9fVxuICAgICAgICAgICAgICAgIHZhbHVlPXtjaGF0U2V0dGluZ3MubmFtZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZVNldHRpbmdDaGFuZ2UoJ25hbWUnLCBlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgcGFkZGluZzogJzAgMTZweCAxMnB4JyB9fT5cbiAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPXt7IC4uLmxhYmVsU3R5bGUsIGRpc3BsYXk6ICdibG9jaycsIG1hcmdpbkJvdHRvbTogOCB9fT5EZXNjcmlwdGlvbjwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyAuLi5pbnB1dFN0eWxlLCBoZWlnaHQ6IDQwLCBwYWRkaW5nOiAnMCAxMnB4JywgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcgfX1cbiAgICAgICAgICAgICAgICB2YWx1ZT17Y2hhdFNldHRpbmdzLmRlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlU2V0dGluZ0NoYW5nZSgnZGVzY3JpcHRpb24nLCBlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgcGFkZGluZzogJzAgMTZweCAxMnB4JyB9fT5cbiAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPXt7IC4uLmxhYmVsU3R5bGUsIGRpc3BsYXk6ICdibG9jaycsIG1hcmdpbkJvdHRvbTogOCB9fT5BZ2VudCBOYW1lPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IC4uLmlucHV0U3R5bGUsIGhlaWdodDogNDAsIHBhZGRpbmc6ICcwIDEycHgnLCBib3hTaXppbmc6ICdib3JkZXItYm94JyB9fVxuICAgICAgICAgICAgICAgIHZhbHVlPXtjaGF0U2V0dGluZ3MuYWdlbnROYW1lfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlU2V0dGluZ0NoYW5nZSgnYWdlbnROYW1lJywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHBhZGRpbmc6ICcwIDE2cHggMTZweCcgfX0+XG4gICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17eyAuLi5sYWJlbFN0eWxlLCBkaXNwbGF5OiAnYmxvY2snLCBtYXJnaW5Cb3R0b206IDggfX0+TG9nbyBVUkw8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgLi4uaW5wdXRTdHlsZSwgaGVpZ2h0OiA0MCwgcGFkZGluZzogJzAgMTJweCcsIGJveFNpemluZzogJ2JvcmRlci1ib3gnIH19XG4gICAgICAgICAgICAgICAgdmFsdWU9e2NoYXRTZXR0aW5ncy5sb2dvVXJsIHx8ICcnfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlU2V0dGluZ0NoYW5nZSgnbG9nb1VybCcsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cImh0dHBzOi8vZXhhbXBsZS5jb20vbG9nby5wbmdcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHBhZGRpbmc6ICcxNnB4JywgYm9yZGVyVG9wOiAnMXB4IHNvbGlkICNlMGUwZTAnLCBtYXJnaW5Ub3A6IDggfX0+XG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZm9udFNpemU6IDEzLCBjb2xvcjogJyM1NTUnLCBtYXJnaW5Cb3R0b206IDEyLCBmb250V2VpZ2h0OiA1MDAgfX0+XG4gICAgICAgICAgICAgICAgRmVhdHVyZXNcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9e2Zvcm1Hcm91cFN0eWxlfT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9e2xhYmVsU3R5bGV9PlVzZSBBdWRpbzwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17ISFmZWF0dXJlRmxhZ3MudXNlQXVkaW99XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUZlYXR1cmVGbGFnQ2hhbmdlKCd1c2VBdWRpbycsIGUudGFyZ2V0LmNoZWNrZWQpfVxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwLCBoZWlnaHQ6IDIwLCBjdXJzb3I6ICdwb2ludGVyJyB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXtmb3JtR3JvdXBTdHlsZX0+XG4gICAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPXtsYWJlbFN0eWxlfT5Vc2UgRmlsZTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17ISFmZWF0dXJlRmxhZ3MudXNlRmlsZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlRmVhdHVyZUZsYWdDaGFuZ2UoJ3VzZUZpbGUnLCBlLnRhcmdldC5jaGVja2VkKX1cbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiAyMCwgaGVpZ2h0OiAyMCwgY3Vyc29yOiAncG9pbnRlcicgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT17Zm9ybUdyb3VwU3R5bGV9PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17bGFiZWxTdHlsZX0+VXNlIFdlYlNvY2tldDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17ISFmZWF0dXJlRmxhZ3MudXNlV3N9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUZlYXR1cmVGbGFnQ2hhbmdlKCd1c2VXcycsIGUudGFyZ2V0LmNoZWNrZWQpfVxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwLCBoZWlnaHQ6IDIwLCBjdXJzb3I6ICdwb2ludGVyJyB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIE1ldGFkYXRhIFNlY3Rpb24gKi99XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IHN0eWxlPXtzZWN0aW9uSGVhZGVyU3R5bGV9IG9uQ2xpY2s9eygpID0+IHNldFNob3dNZXRhZGF0YSghc2hvd01ldGFkYXRhKX0+XG4gICAgICAgICAgPGgzIHN0eWxlPXtzZWN0aW9uVGl0bGVTdHlsZX0+TUVUQURBVEE8L2gzPlxuICAgICAgICAgIHtzaG93TWV0YWRhdGEgPyA8Q2hldnJvblVwIHNpemU9ezE2fSAvPiA6IDxDaGV2cm9uRG93biBzaXplPXsxNn0gLz59XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7c2hvd01ldGFkYXRhICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBwYWRkaW5nOiAnMTJweCAxNnB4JyB9fT5cbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogMTMsIGNvbG9yOiAnIzU1NScsIG1hcmdpbkJvdHRvbTogMTAgfX0+XG4gICAgICAgICAgICAgICAgRGVmaW5lIGtleS92YWx1ZSBwYXJhbWV0ZXJzIHNlbnQgYXMgY2hhdCBtZXRhZGF0YS5cbiAgICAgICAgICAgICAgICB7T2JqZWN0LmtleXMoYWdlbnRDaGF0SW5wdXRNZXRhZGF0YSB8fCB7fSkubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnYmxvY2snLCBtYXJnaW5Ub3A6IDQsIGNvbG9yOiAnIzY2NicgfX0+XG4gICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgZnJvbSB0aGUgd29ya2Zsb3cmYXBvcztzIENoYXQgSW5wdXQgbm9kZSBhcmUgc2hvd24gYmVsb3cuXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxidXR0b24gc3R5bGU9e2Z1bGxXaWR0aEFjdGlvbkJ1dHRvbn0gb25DbGljaz17KCkgPT4gc2V0U2hvd0FkZFBhcmFtKHRydWUpfT5cbiAgICAgICAgICAgICAgICA8UGx1cyBzaXplPXsxOH0gLz5cbiAgICAgICAgICAgICAgICA8c3Bhbj5BZGQgUGFyYW1ldGVyPC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge3BhcmFtcy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBwYWRkaW5nOiAnMnB4IDE2cHggMTJweCcsIGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGdhcDogNiB9fT5cbiAgICAgICAgICAgICAgICB7cGFyYW1zLm1hcCgocCwgaWR4KSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5VmFsID0gcC50eXBlID09PSAnYm9vbGVhbicgPyAocC52YWx1ZSA/ICdUcnVlJyA6ICdGYWxzZScpIDogU3RyaW5nKHAudmFsdWUgPz8gJycpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e3AubmFtZX0gc3R5bGU9e21ldGFSb3dTdHlsZX0+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17bWV0YU5hbWVTdHlsZX0+e3AubmFtZX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXttZXRhVmFsdWVTdHlsZX0gdGl0bGU9e2Rpc3BsYXlWYWx9PlxuICAgICAgICAgICAgICAgICAgICAgICAge2Rpc3BsYXlWYWx9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJFZGl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtzbWFsbEljb25CdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldEVkaXRJbmRleChpZHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRFZGl0RHJhZnQoeyAuLi5wIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTaG93RWRpdFBhcmFtKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2BFZGl0ICR7cC5uYW1lfWB9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFBlbmNpbCBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlJlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17c21hbGxJY29uQnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlUmVtb3ZlUGFyYW0oaWR4KX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2BSZW1vdmUgJHtwLm5hbWV9YH1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8VHJhc2gyIHNpemU9ezE2fSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogQWN0aW9uIEJ1dHRvbnMgKi99XG4gICAgICA8ZGl2IHN0eWxlPXthY3Rpb25CYXJTdHlsZX0+XG4gICAgICAgIDxidXR0b24gc3R5bGU9e2NhbmNlbEJ1dHRvblN0eWxlfSBvbkNsaWNrPXsoKSA9PiBvbkNhbmNlbD8uKCl9PkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHN0eWxlPXtzYXZlQnV0dG9uU3R5bGV9IG9uQ2xpY2s9e2hhbmRsZVNhdmV9PlNhdmUgQ2hhbmdlczwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBTaW1wbGUgUGFyYW1ldGVyIE1vZGFscyAqL31cbiAgICAgIHtzaG93QWRkUGFyYW0gJiYgKFxuICAgICAgICA8ZGl2IHN0eWxlPXttb2RhbE92ZXJsYXlTdHlsZX0+XG4gICAgICAgICAgPGRpdiBzdHlsZT17bW9kYWxTdHlsZX0+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXttb2RhbEhlYWRlclN0eWxlfT5BZGQgUGFyYW1ldGVyPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXttb2RhbEJvZHlTdHlsZX0+XG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiA2IH19PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17eyBmb250U2l6ZTogMTIsIGNvbG9yOiAnIzc3NycgfX0+UGFyYW1ldGVyIE5hbWU8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgc3R5bGU9e2lucHV0U3R5bGV9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17ZHJhZnRQYXJhbS5uYW1lfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXREcmFmdFBhcmFtKChkKSA9PiAoeyAuLi5kLCBuYW1lOiBlLnRhcmdldC52YWx1ZSB9KSl9XG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInBhcmFtXzFcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBnYXA6IDEyIH19PlxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiA2LCBmbGV4OiAxIH19PlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPXt7IGZvbnRTaXplOiAxMiwgY29sb3I6ICcjNzc3JyB9fT5UeXBlPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3NlbGVjdFN0eWxlfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZHJhZnRQYXJhbS50eXBlfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XG4gICAgICAgICAgICAgICAgICAgICAgc2V0RHJhZnRQYXJhbSgoZCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBlLnRhcmdldC52YWx1ZSBhcyBQYXJhbVR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZS50YXJnZXQudmFsdWUgPT09ICdib29sZWFuJyA/IGZhbHNlIDogZS50YXJnZXQudmFsdWUgPT09ICdudW1iZXInID8gMCA6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzdHJpbmdcIj5TdHJpbmc8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm51bWJlclwiPk51bWJlcjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiYm9vbGVhblwiPkJvb2xlYW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBnYXA6IDYsIGZsZXg6IDEgfX0+XG4gICAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9e3sgZm9udFNpemU6IDEyLCBjb2xvcjogJyM3NzcnIH19PlJlcXVpcmVkPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3NlbGVjdFN0eWxlfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZHJhZnRQYXJhbS5yZXF1aXJlZCA/ICd5ZXMnIDogJ25vJ31cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXREcmFmdFBhcmFtKChkKSA9PiAoeyAuLi5kLCByZXF1aXJlZDogZS50YXJnZXQudmFsdWUgPT09ICd5ZXMnIH0pKX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm5vXCI+Tm88L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInllc1wiPlllczwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiA2IH19PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17eyBmb250U2l6ZTogMTIsIGNvbG9yOiAnIzc3NycgfX0+RGVmYXVsdCAvIFZhbHVlPC9sYWJlbD5cbiAgICAgICAgICAgICAgICB7ZHJhZnRQYXJhbS50eXBlID09PSAnYm9vbGVhbicgPyAoXG4gICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXtzZWxlY3RTdHlsZX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2RyYWZ0UGFyYW0udmFsdWUgPyAndHJ1ZScgOiAnZmFsc2UnfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldERyYWZ0UGFyYW0oKGQpID0+ICh7IC4uLmQsIHZhbHVlOiBlLnRhcmdldC52YWx1ZSA9PT0gJ3RydWUnIH0pKX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImZhbHNlXCI+RmFsc2U8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInRydWVcIj5UcnVlPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9e2RyYWZ0UGFyYW0udHlwZSA9PT0gJ251bWJlcicgPyAnbnVtYmVyJyA6ICd0ZXh0J31cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e2lucHV0U3R5bGV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtTdHJpbmcoZHJhZnRQYXJhbS52YWx1ZSA/PyAnJyl9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICBzZXREcmFmdFBhcmFtKChkKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBkcmFmdFBhcmFtLnR5cGUgPT09ICdudW1iZXInID8gTnVtYmVyKGUudGFyZ2V0LnZhbHVlKSA6IGUudGFyZ2V0LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e21vZGFsRm9vdGVyU3R5bGV9PlxuICAgICAgICAgICAgICA8YnV0dG9uIHN0eWxlPXtjYW5jZWxCdXR0b25TdHlsZX0gb25DbGljaz17KCkgPT4gc2V0U2hvd0FkZFBhcmFtKGZhbHNlKX0+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIHN0eWxlPXtzYXZlQnV0dG9uU3R5bGV9IG9uQ2xpY2s9e2hhbmRsZUFkZFBhcmFtfT5cbiAgICAgICAgICAgICAgICBBZGRcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuXG4gICAgICB7c2hvd0VkaXRQYXJhbSAmJiAoXG4gICAgICAgIDxkaXYgc3R5bGU9e21vZGFsT3ZlcmxheVN0eWxlfT5cbiAgICAgICAgICA8ZGl2IHN0eWxlPXttb2RhbFN0eWxlfT5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e21vZGFsSGVhZGVyU3R5bGV9PkVkaXQgUGFyYW1ldGVyPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXttb2RhbEJvZHlTdHlsZX0+XG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiA2IH19PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17eyBmb250U2l6ZTogMTIsIGNvbG9yOiAnIzc3NycgfX0+UGFyYW1ldGVyIE5hbWU8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgc3R5bGU9e2lucHV0U3R5bGV9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17ZWRpdERyYWZ0Lm5hbWV9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldEVkaXREcmFmdCgoZCkgPT4gKHsgLi4uZCwgbmFtZTogZS50YXJnZXQudmFsdWUgfSkpfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBnYXA6IDEyIH19PlxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiA2LCBmbGV4OiAxIH19PlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPXt7IGZvbnRTaXplOiAxMiwgY29sb3I6ICcjNzc3JyB9fT5UeXBlPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3NlbGVjdFN0eWxlfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZWRpdERyYWZ0LnR5cGV9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICBzZXRFZGl0RHJhZnQoKGQpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5kLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogZS50YXJnZXQudmFsdWUgYXMgUGFyYW1UeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGUudGFyZ2V0LnZhbHVlID09PSAnYm9vbGVhbidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBlLnRhcmdldC52YWx1ZSA9PT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHR5cGVvZiBkLnZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInN0cmluZ1wiPlN0cmluZzwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibnVtYmVyXCI+TnVtYmVyPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJib29sZWFuXCI+Qm9vbGVhbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGdhcDogNiwgZmxleDogMSB9fT5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17eyBmb250U2l6ZTogMTIsIGNvbG9yOiAnIzc3NycgfX0+UmVxdWlyZWQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17c2VsZWN0U3R5bGV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtlZGl0RHJhZnQucmVxdWlyZWQgPyAneWVzJyA6ICdubyd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0RWRpdERyYWZ0KChkKSA9PiAoeyAuLi5kLCByZXF1aXJlZDogZS50YXJnZXQudmFsdWUgPT09ICd5ZXMnIH0pKX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm5vXCI+Tm88L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInllc1wiPlllczwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiA2IH19PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17eyBmb250U2l6ZTogMTIsIGNvbG9yOiAnIzc3NycgfX0+VmFsdWU8L2xhYmVsPlxuICAgICAgICAgICAgICAgIHtlZGl0RHJhZnQudHlwZSA9PT0gJ2Jvb2xlYW4nID8gKFxuICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17c2VsZWN0U3R5bGV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtlZGl0RHJhZnQudmFsdWUgPyAndHJ1ZScgOiAnZmFsc2UnfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldEVkaXREcmFmdCgoZCkgPT4gKHsgLi4uZCwgdmFsdWU6IGUudGFyZ2V0LnZhbHVlID09PSAndHJ1ZScgfSkpfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiZmFsc2VcIj5GYWxzZTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwidHJ1ZVwiPlRydWU8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT17ZWRpdERyYWZ0LnR5cGUgPT09ICdudW1iZXInID8gJ251bWJlcicgOiAndGV4dCd9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXtpbnB1dFN0eWxlfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17U3RyaW5nKGVkaXREcmFmdC52YWx1ZSA/PyAnJyl9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICBzZXRFZGl0RHJhZnQoKGQpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5kLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVkaXREcmFmdC50eXBlID09PSAnbnVtYmVyJyA/IE51bWJlcihlLnRhcmdldC52YWx1ZSkgOiBlLnRhcmdldC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXttb2RhbEZvb3RlclN0eWxlfT5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBzdHlsZT17Y2FuY2VsQnV0dG9uU3R5bGV9IG9uQ2xpY2s9eygpID0+IHNldFNob3dFZGl0UGFyYW0oZmFsc2UpfT5cbiAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b24gc3R5bGU9e3NhdmVCdXR0b25TdHlsZX0gb25DbGljaz17aGFuZGxlRWRpdFNhdmV9PlxuICAgICAgICAgICAgICAgIFNhdmVcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuLy8gTW9kYWwgc3R5bGVzIChzaGFyZWQpXG5jb25zdCBtb2RhbE92ZXJsYXlTdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgcG9zaXRpb246ICdmaXhlZCcsXG4gIGluc2V0OiAwLFxuICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsMCwwLDAuMjUpJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICB6SW5kZXg6IDEwMDUsXG59O1xuXG5jb25zdCBtb2RhbFN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICB3aWR0aDogNDIwLFxuICBtYXhXaWR0aDogJzkydncnLFxuICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmJyxcbiAgYm9yZGVyUmFkaXVzOiAxMixcbiAgYm94U2hhZG93OiAnMCA4cHggMjRweCByZ2JhKDAsMCwwLDAuMTgpJyxcbiAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxufTtcblxuY29uc3QgbW9kYWxIZWFkZXJTdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgcGFkZGluZzogJzEycHggMTZweCcsXG4gIGZvbnRXZWlnaHQ6IDYwMCxcbiAgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkICNlZWUnLFxufTtcblxuY29uc3QgbW9kYWxCb2R5U3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gIHBhZGRpbmc6IDE2LFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICBnYXA6IDEyLFxufTtcblxuY29uc3QgbW9kYWxGb290ZXJTdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgcGFkZGluZzogMTIsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAganVzdGlmeUNvbnRlbnQ6ICdmbGV4LWVuZCcsXG4gIGdhcDogOCxcbiAgYm9yZGVyVG9wOiAnMXB4IHNvbGlkICNlZWUnLFxuICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmFmYWZhJyxcbn07Il19
|
|
390
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2VuQWdlbnRDb25maWdQYW5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL0dlbkFnZW50Q29uZmlnUGFuZWwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWUsTUFBTSxjQUFjLENBQUM7QUF5RHpGLElBQU0sWUFBWSxHQUFjO0lBQzlCLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFVBQVUsRUFBRSxtQkFBbUI7SUFDL0IsUUFBUSxFQUFFLE1BQU07Q0FDakIsQ0FBQztBQUVGLElBQU0sZUFBZSxHQUF1QjtJQUMxQyxJQUFJLEVBQUUsV0FBVztJQUNqQixXQUFXLEVBQUUsU0FBUztJQUN0QixTQUFTLEVBQUUsT0FBTztJQUNsQixPQUFPLEVBQUUsRUFBRTtDQUNaLENBQUM7QUFFRixJQUFNLG1CQUFtQixHQUFpQjtJQUN4QyxRQUFRLEVBQUUsS0FBSztJQUNmLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLEtBQUs7SUFDWixPQUFPLEVBQUUsS0FBSztDQUNmLENBQUM7QUFFRixTQUFTLGNBQWMsQ0FBQyxHQUFvQztJQUMxRCxJQUFJLENBQUMsR0FBRztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3BCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxDQUFDO1FBQzVCLElBQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixJQUFJLElBQUks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IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ2hldnJvbkRvd24sIENoZXZyb25VcCwgUGx1cywgVHJhc2gyLCBQZW5jaWwsIFgsIFNwYXJrbGVzIH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcblxuZXhwb3J0IGludGVyZmFjZSBDaGF0VGhlbWUge1xuICBwcmltYXJ5Q29sb3I6IHN0cmluZztcbiAgc2Vjb25kYXJ5Q29sb3I6IHN0cmluZztcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIHRleHRDb2xvcjogc3RyaW5nO1xuICBmb250RmFtaWx5OiBzdHJpbmc7XG4gIGZvbnRTaXplOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdFNldHRpbmdzQ29uZmlnIHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBhZ2VudE5hbWU6IHN0cmluZztcbiAgbG9nb1VybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlRmxhZ3Mge1xuICB1c2VBdWRpbz86IGJvb2xlYW47XG4gIHVzZUZpbGU/OiBib29sZWFuO1xuICB1c2VXcz86IGJvb2xlYW47XG4gIHVzZVBvbGw/OiBib29sZWFuO1xufVxuXG50eXBlIFBhcmFtVHlwZSA9ICdzdHJpbmcnIHwgJ251bWJlcicgfCAnYm9vbGVhbic7XG5cbmludGVyZmFjZSBNZXRhZGF0YVBhcmFtIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBQYXJhbVR5cGU7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICByZXF1aXJlZDogYm9vbGVhbjtcbiAgdmFsdWU/OiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbkFnZW50Q29uZmlnUGFuZWxQcm9wcyB7XG4gIHRoZW1lPzogQ2hhdFRoZW1lO1xuICBvblRoZW1lQ2hhbmdlPzogKG5leHQ6IENoYXRUaGVtZSkgPT4gdm9pZDtcblxuICBjaGF0U2V0dGluZ3M/OiBDaGF0U2V0dGluZ3NDb25maWc7XG4gIG9uQ2hhdFNldHRpbmdzQ2hhbmdlPzogKG5leHQ6IENoYXRTZXR0aW5nc0NvbmZpZykgPT4gdm9pZDtcblxuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIG9uTWV0YWRhdGFDaGFuZ2U/OiAobmV4dDogUmVjb3JkPHN0cmluZywgYW55PikgPT4gdm9pZDtcblxuICBhZ2VudENoYXRJbnB1dE1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICBmZWF0dXJlRmxhZ3M/OiBGZWF0dXJlRmxhZ3M7XG4gIG9uRmVhdHVyZUZsYWdzQ2hhbmdlPzogKG5leHQ6IEZlYXR1cmVGbGFncykgPT4gdm9pZDtcblxuICBkZWZhdWx0T3Blbj86IHsgYXBwZWFyYW5jZT86IGJvb2xlYW47IHNldHRpbmdzPzogYm9vbGVhbjsgbWV0YWRhdGE/OiBib29sZWFuIH07XG4gIG9uU2F2ZT86IChwYXlsb2FkOiB7IHRoZW1lOiBDaGF0VGhlbWU7IGNoYXRTZXR0aW5nczogQ2hhdFNldHRpbmdzQ29uZmlnOyBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55PjsgZmVhdHVyZUZsYWdzOiBGZWF0dXJlRmxhZ3MgfSkgPT4gdm9pZDtcbiAgb25DYW5jZWw/OiAoKSA9PiB2b2lkO1xuXG4gIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbn1cblxuY29uc3QgZGVmYXVsdFRoZW1lOiBDaGF0VGhlbWUgPSB7XG4gIHByaW1hcnlDb2xvcjogJyM0RjQ2RTUnLFxuICBzZWNvbmRhcnlDb2xvcjogJyNmNWY1ZjUnLFxuICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmZmZmJyxcbiAgdGV4dENvbG9yOiAnIzAwMDAwMCcsXG4gIGZvbnRGYW1pbHk6ICdJbnRlciwgc2Fucy1zZXJpZicsXG4gIGZvbnRTaXplOiAnMTVweCcsXG59O1xuXG5jb25zdCBkZWZhdWx0U2V0dGluZ3M6IENoYXRTZXR0aW5nc0NvbmZpZyA9IHtcbiAgbmFtZTogJ0dlbmFzc2lzdCcsXG4gIGRlc2NyaXB0aW9uOiAnU3VwcG9ydCcsXG4gIGFnZW50TmFtZTogJ0FnZW50JyxcbiAgbG9nb1VybDogJycsXG59O1xuXG5jb25zdCBkZWZhdWx0RmVhdHVyZUZsYWdzOiBGZWF0dXJlRmxhZ3MgPSB7XG4gIHVzZUF1ZGlvOiBmYWxzZSxcbiAgdXNlRmlsZTogZmFsc2UsXG4gIHVzZVdzOiBmYWxzZSxcbiAgdXNlUG9sbDogZmFsc2UsXG59O1xuXG5mdW5jdGlvbiBvYmplY3RUb1BhcmFtcyhvYmo6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQpOiBNZXRhZGF0YVBhcmFtW10ge1xuICBpZiAoIW9iaikgcmV0dXJuIFtdO1xuICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5tYXAoKGspID0+IHtcbiAgICBjb25zdCB2ID0gb2JqW2tdO1xuICAgIGxldCB0eXBlOiBQYXJhbVR5cGUgPSAnc3RyaW5nJztcbiAgICBpZiAodHlwZW9mIHYgPT09ICdudW1iZXInKSB0eXBlID0gJ251bWJlcic7XG4gICAgZWxzZSBpZiAodHlwZW9mIHYgPT09ICdib29sZWFuJykgdHlwZSA9ICdib29sZWFuJztcbiAgICByZXR1cm4geyBuYW1lOiBrLCB0eXBlLCByZXF1aXJlZDogZmFsc2UsIHZhbHVlOiB2IH07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwYXJhbXNUb09iamVjdChwYXJhbXM6IE1ldGFkYXRhUGFyYW1bXSk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICBjb25zdCBvOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIHBhcmFtcy5mb3JFYWNoKChwKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBwLnZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgb1twLm5hbWVdID0gcC52YWx1ZTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gbztcbn1cblxuZXhwb3J0IGNvbnN0IEdlbkFnZW50Q29uZmlnUGFuZWw6IFJlYWN0LkZDPEdlbkFnZW50Q29uZmlnUGFuZWxQcm9wcz4gPSAoe1xuICB0aGVtZTogdGhlbWVQcm9wLFxuICBvblRoZW1lQ2hhbmdlLFxuICBjaGF0U2V0dGluZ3M6IGNoYXRTZXR0aW5nc1Byb3AsXG4gIG9uQ2hhdFNldHRpbmdzQ2hhbmdlLFxuICBtZXRhZGF0YTogbWV0YWRhdGFQcm9wLFxuICBvbk1ldGFkYXRhQ2hhbmdlLFxuICBhZ2VudENoYXRJbnB1dE1ldGFkYXRhLFxuICBmZWF0dXJlRmxhZ3M6IGZlYXR1cmVGbGFnc1Byb3AsXG4gIG9uRmVhdHVyZUZsYWdzQ2hhbmdlLFxuICBkZWZhdWx0T3BlbixcbiAgb25TYXZlLFxuICBvbkNhbmNlbCxcbiAgc3R5bGUsXG59KSA9PiB7XG4gIC8vIE1lcmdlIHdvcmtmbG93IGNoYXQgaW5wdXQgbWV0YWRhdGEgd2l0aCB1c2VyIG1ldGFkYXRhXG4gIGNvbnN0IG1lcmdlZE1ldGFkYXRhID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoeyAuLi4oYWdlbnRDaGF0SW5wdXRNZXRhZGF0YSB8fCB7fSksIC4uLihtZXRhZGF0YVByb3AgfHwge30pIH0pLFxuICAgIFthZ2VudENoYXRJbnB1dE1ldGFkYXRhLCBtZXRhZGF0YVByb3BdXG4gICk7XG5cbiAgLy8gQ29udHJvbGxlZCBvciBpbnRlcm5hbCBzdGF0ZSBmYWxsYmFja3NcbiAgY29uc3QgW3RoZW1lLCBzZXRUaGVtZV0gPSB1c2VTdGF0ZTxDaGF0VGhlbWU+KHRoZW1lUHJvcCB8fCBkZWZhdWx0VGhlbWUpO1xuICBjb25zdCBbY2hhdFNldHRpbmdzLCBzZXRDaGF0U2V0dGluZ3NdID0gdXNlU3RhdGU8Q2hhdFNldHRpbmdzQ29uZmlnPihjaGF0U2V0dGluZ3NQcm9wIHx8IGRlZmF1bHRTZXR0aW5ncyk7XG4gIGNvbnN0IFtwYXJhbXMsIHNldFBhcmFtc10gPSB1c2VTdGF0ZTxNZXRhZGF0YVBhcmFtW10+KCgpID0+IG9iamVjdFRvUGFyYW1zKG1lcmdlZE1ldGFkYXRhKSk7XG4gIGNvbnN0IFtmZWF0dXJlRmxhZ3MsIHNldEZlYXR1cmVGbGFnc10gPSB1c2VTdGF0ZTxGZWF0dXJlRmxhZ3M+KGZlYXR1cmVGbGFnc1Byb3AgfHwgZGVmYXVsdEZlYXR1cmVGbGFncyk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGhlbWVQcm9wKSBzZXRUaGVtZSh0aGVtZVByb3ApO1xuICB9LCBbdGhlbWVQcm9wXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2hhdFNldHRpbmdzUHJvcCkgc2V0Q2hhdFNldHRpbmdzKGNoYXRTZXR0aW5nc1Byb3ApO1xuICB9LCBbY2hhdFNldHRpbmdzUHJvcF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0UGFyYW1zKG9iamVjdFRvUGFyYW1zKG1lcmdlZE1ldGFkYXRhKSk7XG4gIH0sIFthZ2VudENoYXRJbnB1dE1ldGFkYXRhLCBtZXRhZGF0YVByb3BdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChmZWF0dXJlRmxhZ3NQcm9wKSBzZXRGZWF0dXJlRmxhZ3MoZmVhdHVyZUZsYWdzUHJvcCk7XG4gIH0sIFtmZWF0dXJlRmxhZ3NQcm9wXSk7XG5cbiAgY29uc3QgW3Nob3dBcHBlYXJhbmNlLCBzZXRTaG93QXBwZWFyYW5jZV0gPSB1c2VTdGF0ZShcbiAgICB0eXBlb2YgZGVmYXVsdE9wZW4/LmFwcGVhcmFuY2UgPT09ICdib29sZWFuJyA/ICEhZGVmYXVsdE9wZW4/LmFwcGVhcmFuY2UgOiB0cnVlXG4gICk7XG4gIGNvbnN0IFtzaG93U2V0dGluZ3MsIHNldFNob3dTZXR0aW5nc10gPSB1c2VTdGF0ZShcbiAgICB0eXBlb2YgZGVmYXVsdE9wZW4/LnNldHRpbmdzID09PSAnYm9vbGVhbicgPyAhIWRlZmF1bHRPcGVuPy5zZXR0aW5ncyA6IGZhbHNlXG4gICk7XG4gIGNvbnN0IFtzaG93TWV0YWRhdGEsIHNldFNob3dNZXRhZGF0YV0gPSB1c2VTdGF0ZShcbiAgICB0eXBlb2YgZGVmYXVsdE9wZW4/Lm1ldGFkYXRhID09PSAnYm9vbGVhbicgPyAhIWRlZmF1bHRPcGVuPy5tZXRhZGF0YSA6IGZhbHNlXG4gICk7XG5cbiAgLy8gQXV0by1leHBhbmQgTWV0YWRhdGEgc2VjdGlvblxuICBjb25zdCBwcmV2TWV0YUtleUNvdW50UmVmID0gUmVhY3QudXNlUmVmPG51bWJlcj4oMCk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qga2V5Q291bnQgPSBhZ2VudENoYXRJbnB1dE1ldGFkYXRhID8gT2JqZWN0LmtleXMoYWdlbnRDaGF0SW5wdXRNZXRhZGF0YSkubGVuZ3RoIDogMDtcbiAgICBpZiAoa2V5Q291bnQgPiAwICYmIHByZXZNZXRhS2V5Q291bnRSZWYuY3VycmVudCA9PT0gMCkge1xuICAgICAgc2V0U2hvd01ldGFkYXRhKHRydWUpO1xuICAgIH1cbiAgICBwcmV2TWV0YUtleUNvdW50UmVmLmN1cnJlbnQgPSBrZXlDb3VudDtcbiAgfSwgW2FnZW50Q2hhdElucHV0TWV0YWRhdGFdKTtcblxuICBjb25zdCBbc2hvd0FkZFBhcmFtLCBzZXRTaG93QWRkUGFyYW1dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZHJhZnRQYXJhbSwgc2V0RHJhZnRQYXJhbV0gPSB1c2VTdGF0ZTxNZXRhZGF0YVBhcmFtPih7XG4gICAgbmFtZTogJ3BhcmFtXzEnLFxuICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB2YWx1ZTogJycsXG4gIH0pO1xuXG4gIGNvbnN0IFtzaG93RWRpdFBhcmFtLCBzZXRTaG93RWRpdFBhcmFtXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2VkaXRJbmRleCwgc2V0RWRpdEluZGV4XSA9IHVzZVN0YXRlPG51bWJlciB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbZWRpdERyYWZ0LCBzZXRFZGl0RHJhZnRdID0gdXNlU3RhdGU8TWV0YWRhdGFQYXJhbT4oeyBuYW1lOiAnJywgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiBmYWxzZSwgdmFsdWU6ICcnIH0pO1xuXG4gIGNvbnN0IG1ldGFkYXRhID0gdXNlTWVtbygoKSA9PiBwYXJhbXNUb09iamVjdChwYXJhbXMpLCBbcGFyYW1zXSk7XG5cbiAgY29uc3QgaGFuZGxlVGhlbWVDaGFuZ2UgPSAoa2V5OiBrZXlvZiBDaGF0VGhlbWUsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBuZXh0ID0geyAuLi50aGVtZSwgW2tleV06IHZhbHVlIH0gYXMgQ2hhdFRoZW1lO1xuICAgIGlmICghdGhlbWVQcm9wKSBzZXRUaGVtZShuZXh0KTtcbiAgICBvblRoZW1lQ2hhbmdlPy4obmV4dCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU2V0dGluZ0NoYW5nZSA9IChrZXk6IGtleW9mIENoYXRTZXR0aW5nc0NvbmZpZywgdmFsdWU6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IG5leHQgPSB7IC4uLmNoYXRTZXR0aW5ncywgW2tleV06IHZhbHVlIH0gYXMgQ2hhdFNldHRpbmdzQ29uZmlnO1xuICAgIGlmICghY2hhdFNldHRpbmdzUHJvcCkgc2V0Q2hhdFNldHRpbmdzKG5leHQpO1xuICAgIG9uQ2hhdFNldHRpbmdzQ2hhbmdlPy4obmV4dCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRmVhdHVyZUZsYWdDaGFuZ2UgPSAoa2V5OiBrZXlvZiBGZWF0dXJlRmxhZ3MsIHZhbHVlOiBib29sZWFuKSA9PiB7XG4gICAgY29uc3QgbmV4dCA9IHsgLi4uZmVhdHVyZUZsYWdzLCBba2V5XTogdmFsdWUgfSBhcyBGZWF0dXJlRmxhZ3M7XG4gICAgaWYgKCFmZWF0dXJlRmxhZ3NQcm9wKSBzZXRGZWF0dXJlRmxhZ3MobmV4dCk7XG4gICAgb25GZWF0dXJlRmxhZ3NDaGFuZ2U/LihuZXh0KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVBZGRQYXJhbSA9ICgpID0+IHtcbiAgICBjb25zdCBuYW1lID0gZHJhZnRQYXJhbS5uYW1lLnRyaW0oKTtcbiAgICBpZiAoIW5hbWUpIHJldHVybjtcbiAgICBpZiAocGFyYW1zLnNvbWUoKHApID0+IHAubmFtZSA9PT0gbmFtZSkpIHJldHVybjtcbiAgICBjb25zdCBub3JtYWxpemVkOiBNZXRhZGF0YVBhcmFtID0ge1xuICAgICAgLi4uZHJhZnRQYXJhbSxcbiAgICAgIG5hbWUsXG4gICAgICB2YWx1ZTpcbiAgICAgICAgdHlwZW9mIGRyYWZ0UGFyYW0udmFsdWUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgPyBkcmFmdFBhcmFtLnZhbHVlXG4gICAgICAgICAgOiBkcmFmdFBhcmFtLnR5cGUgPT09ICdudW1iZXInXG4gICAgICAgICAgPyAwXG4gICAgICAgICAgOiBkcmFmdFBhcmFtLnR5cGUgPT09ICdib29sZWFuJ1xuICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICA6ICcnLFxuICAgIH07XG4gICAgY29uc3QgbmV4dCA9IFsuLi5wYXJhbXMsIG5vcm1hbGl6ZWRdO1xuICAgIHNldFBhcmFtcyhuZXh0KTtcbiAgICBvbk1ldGFkYXRhQ2hhbmdlPy4ocGFyYW1zVG9PYmplY3QobmV4dCkpO1xuICAgIHNldERyYWZ0UGFyYW0oeyBuYW1lOiAncGFyYW1fMScsIHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogZmFsc2UsIHZhbHVlOiAnJyB9KTtcbiAgICBzZXRTaG93QWRkUGFyYW0oZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IGNvZXJjZUZvclR5cGUgPSAodmFsOiBhbnksIHR5cGU6IFBhcmFtVHlwZSkgPT4ge1xuICAgIGlmICh0eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgY29uc3QgbiA9IE51bWJlcih2YWwpO1xuICAgICAgcmV0dXJuIGlzTmFOKG4pID8gMCA6IG47XG4gICAgfVxuICAgIGlmICh0eXBlID09PSAnYm9vbGVhbicpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnYm9vbGVhbicpIHJldHVybiB2YWw7XG4gICAgICBjb25zdCBzID0gU3RyaW5nKHZhbCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIHJldHVybiBzID09PSAndHJ1ZScgfHwgcyA9PT0gJzEnIHx8IHMgPT09ICd5ZXMnO1xuICAgIH1cbiAgICByZXR1cm4gU3RyaW5nKHZhbCA/PyAnJyk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRWRpdFNhdmUgPSAoKSA9PiB7XG4gICAgaWYgKGVkaXRJbmRleCA9PT0gbnVsbCkgcmV0dXJuO1xuICAgIGNvbnN0IG5ld05hbWUgPSBlZGl0RHJhZnQubmFtZS50cmltKCk7XG4gICAgaWYgKCFuZXdOYW1lKSByZXR1cm47XG4gICAgaWYgKHBhcmFtcy5zb21lKChwLCBpKSA9PiBpICE9PSBlZGl0SW5kZXggJiYgcC5uYW1lID09PSBuZXdOYW1lKSkgcmV0dXJuO1xuICAgIGNvbnN0IG5leHQgPSBbLi4ucGFyYW1zXTtcbiAgICBjb25zdCBvbGQgPSBuZXh0W2VkaXRJbmRleF07XG4gICAgY29uc3QgdXBkYXRlZDogTWV0YWRhdGFQYXJhbSA9IHsgLi4ub2xkLCAuLi5lZGl0RHJhZnQgfTtcbiAgICB1cGRhdGVkLnZhbHVlID0gY29lcmNlRm9yVHlwZShvbGQudmFsdWUsIGVkaXREcmFmdC50eXBlKTtcbiAgICBuZXh0W2VkaXRJbmRleF0gPSB1cGRhdGVkO1xuICAgIHNldFBhcmFtcyhuZXh0KTtcbiAgICBvbk1ldGFkYXRhQ2hhbmdlPy4ocGFyYW1zVG9PYmplY3QobmV4dCkpO1xuICAgIHNldFNob3dFZGl0UGFyYW0oZmFsc2UpO1xuICAgIHNldEVkaXRJbmRleChudWxsKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVSZW1vdmVQYXJhbSA9IChpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgbmV4dCA9IHBhcmFtcy5maWx0ZXIoKF8sIGkpID0+IGkgIT09IGluZGV4KTtcbiAgICBzZXRQYXJhbXMobmV4dCk7XG4gICAgb25NZXRhZGF0YUNoYW5nZT8uKHBhcmFtc1RvT2JqZWN0KG5leHQpKTtcbiAgfTtcblxuICBjb25zdCBjb250YWluZXJTdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgICBmbGV4OiAnMScsXG4gICAgbWF4V2lkdGg6IDMwMCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmZmZmJyxcbiAgICBib3JkZXJSYWRpdXM6IDgsXG4gICAgYm94U2hhZG93OiAnMCAycHggMTBweCByZ2JhKDAsMCwwLDAuMSknLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgLi4uc3R5bGUsXG4gIH07XG5cbiAgY29uc3Qgc2VjdGlvbkhlYWRlclN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIHBhZGRpbmc6IDE2LFxuICAgIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCAjZTBlMGUwJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZjlmOWY5JyxcbiAgfTtcblxuICBjb25zdCBzZWN0aW9uVGl0bGVTdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgICBtYXJnaW46IDAsXG4gICAgZm9udFNpemU6IDEyLFxuICAgIGZvbnRXZWlnaHQ6ICdib2xkJyxcbiAgICBjb2xvcjogJyM2NjYnLFxuICAgIGxldHRlclNwYWNpbmc6IDEsXG4gIH0gYXMgUmVhY3QuQ1NTUHJvcGVydGllcztcblxuICBjb25zdCBmb3JtR3JvdXBTdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgICBwYWRkaW5nOiAnMTZweCAxNnB4IDEycHgnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGJvcmRlckJvdHRvbTogJ25vbmUnLFxuICB9O1xuXG4gIGNvbnN0IGxhYmVsU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7IGZvbnRTaXplOiAxNCwgY29sb3I6ICcjMzMzJyB9O1xuICBjb25zdCBjb2xvclBpY2tlclN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIGFwcGVhcmFuY2U6ICdub25lJyxcbiAgICB3aWR0aDogMTIwLFxuICAgIGhlaWdodDogMzIsXG4gICAgcGFkZGluZzogMCxcbiAgICBib3JkZXI6ICcxcHggc29saWQgI2UwZTBlMCcsXG4gICAgYm9yZGVyUmFkaXVzOiA0LFxuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICB9IGFzIFJlYWN0LkNTU1Byb3BlcnRpZXM7XG5cbiAgY29uc3Qgc2VsZWN0U3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gICAgd2lkdGg6IDE0MCxcbiAgICBoZWlnaHQ6IDMyLFxuICAgIHBhZGRpbmc6ICcwIDhweCcsXG4gICAgYm9yZGVyOiAnMXB4IHNvbGlkICNlMGUwZTAnLFxuICAgIGJvcmRlclJhZGl1czogNCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmJyxcbiAgICBmb250U2l6ZTogMTQsXG4gIH0gYXMgUmVhY3QuQ1NTUHJvcGVydGllcztcblxuICBjb25zdCBpbnB1dFN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgaGVpZ2h0OiAzMixcbiAgICBwYWRkaW5nOiAnMCA4cHgnLFxuICAgIGJvcmRlcjogJzFweCBzb2xpZCAjZTBlMGUwJyxcbiAgICBib3JkZXJSYWRpdXM6IDQsXG4gICAgZm9udFNpemU6IDE0LFxuICB9O1xuXG4gIGNvbnN0IGFjdGlvbkJhclN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIHBhZGRpbmc6IDEyLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2ZsZXgtZW5kJyxcbiAgICBnYXA6IDgsXG4gICAgYm9yZGVyVG9wOiAnMXB4IHNvbGlkICNlMGUwZTAnLFxuICAgIGJhY2tncm91bmRDb2xvcjogJyNmYWZhZmEnLFxuICB9O1xuXG4gIGNvbnN0IGNhbmNlbEJ1dHRvblN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIHBhZGRpbmc6ICc4cHggMTJweCcsXG4gICAgYmFja2dyb3VuZENvbG9yOiAnI2ZmZicsXG4gICAgYm9yZGVyOiAnMXB4IHNvbGlkICNlMGUwZTAnLFxuICAgIGJvcmRlclJhZGl1czogNixcbiAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgfTtcbiAgY29uc3Qgc2F2ZUJ1dHRvblN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIHBhZGRpbmc6ICc4cHggMTJweCcsXG4gICAgYmFja2dyb3VuZENvbG9yOiAnIzExMTgyNycsXG4gICAgY29sb3I6ICcjZmZmJyxcbiAgICBib3JkZXI6ICcxcHggc29saWQgIzBiMTIyMCcsXG4gICAgYm9yZGVyUmFkaXVzOiA2LFxuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICB9O1xuXG4gIGNvbnN0IGZ1bGxXaWR0aEFjdGlvbkJ1dHRvbjogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgZ2FwOiA4LFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgcGFkZGluZzogJzEwcHggMTJweCcsXG4gICAgYm9yZGVyOiAnMXB4IHNvbGlkICNlMGUwZTAnLFxuICAgIGJvcmRlclJhZGl1czogOCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmJyxcbiAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICBmb250U2l6ZTogMTQsXG4gICAgY29sb3I6ICcjMTExJyxcbiAgfTtcblxuICBjb25zdCBzbWFsbEljb25CdXR0b246IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gICAgYm9yZGVyOiAnMXB4IHNvbGlkICNlMGUwZTAnLFxuICAgIGJvcmRlclJhZGl1czogOCxcbiAgICB3aWR0aDogMjgsXG4gICAgaGVpZ2h0OiAyOCxcbiAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmJyxcbiAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgfTtcblxuICBjb25zdCBtZXRhUm93U3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gICAgZGlzcGxheTogJ2dyaWQnLFxuICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6ICcxZnIgbWlubWF4KDkwcHgsIDE1MHB4KSAyOHB4IDI4cHgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGdhcDogOCxcbiAgICBwYWRkaW5nOiAnNnB4IDAnLFxuICB9O1xuICBjb25zdCBtZXRhTmFtZVN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIGZvbnRTaXplOiAxMyxcbiAgICBjb2xvcjogJyMyMjInLFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnLFxuICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICB9O1xuICBjb25zdCBtZXRhVmFsdWVTdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgICBtYXhXaWR0aDogMTUwLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsXG4gICAgd2hpdGVTcGFjZTogJ25vd3JhcCcsXG4gICAgZm9udFNpemU6IDEzLFxuICAgIGNvbG9yOiAnIzExMScsXG4gICAgYm9yZGVyOiAnMXB4IHNvbGlkICNlNmU2ZTYnLFxuICAgIGJvcmRlclJhZGl1czogMTIsXG4gICAgcGFkZGluZzogJzZweCAxMHB4JyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmFmYWZhJyxcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTYXZlID0gKCkgPT4ge1xuICAgIG9uU2F2ZT8uKHsgdGhlbWUsIGNoYXRTZXR0aW5ncywgbWV0YWRhdGEsIGZlYXR1cmVGbGFncyB9KTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e2NvbnRhaW5lclN0eWxlfT5cbiAgICAgIHsvKiBBcHBlYXJhbmNlIFNlY3Rpb24gKi99XG4gICAgICA8ZGl2IHN0eWxlPXt7IGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCAjZTBlMGUwJyB9fT5cbiAgICAgICAgPGRpdiBzdHlsZT17c2VjdGlvbkhlYWRlclN0eWxlfSBvbkNsaWNrPXsoKSA9PiBzZXRTaG93QXBwZWFyYW5jZSghc2hvd0FwcGVhcmFuY2UpfT5cbiAgICAgICAgICA8aDMgc3R5bGU9e3NlY3Rpb25UaXRsZVN0eWxlfT5BUFBFQVJBTkNFPC9oMz5cbiAgICAgICAgICB7c2hvd0FwcGVhcmFuY2UgPyA8Q2hldnJvblVwIHNpemU9ezE2fSAvPiA6IDxDaGV2cm9uRG93biBzaXplPXsxNn0gLz59XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7c2hvd0FwcGVhcmFuY2UgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXtmb3JtR3JvdXBTdHlsZX0+XG4gICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17bGFiZWxTdHlsZX0+UHJpbWFyeSBDb2xvcjwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgdmFsdWU9e3RoZW1lLnByaW1hcnlDb2xvcn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZVRoZW1lQ2hhbmdlKCdwcmltYXJ5Q29sb3InLCBlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgc3R5bGU9e2NvbG9yUGlja2VyU3R5bGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e2Zvcm1Hcm91cFN0eWxlfT5cbiAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPXtsYWJlbFN0eWxlfT5TZWNvbmRhcnkgQ29sb3I8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiY29sb3JcIlxuICAgICAgICAgICAgICAgIHZhbHVlPXt0aGVtZS5zZWNvbmRhcnlDb2xvcn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZVRoZW1lQ2hhbmdlKCdzZWNvbmRhcnlDb2xvcicsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICBzdHlsZT17Y29sb3JQaWNrZXJTdHlsZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17Zm9ybUdyb3VwU3R5bGV9PlxuICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9e2xhYmVsU3R5bGV9PkJhY2tncm91bmQgQ29sb3I8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiY29sb3JcIlxuICAgICAgICAgICAgICAgIHZhbHVlPXt0aGVtZS5iYWNrZ3JvdW5kQ29sb3J9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVUaGVtZUNoYW5nZSgnYmFja2dyb3VuZENvbG9yJywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgIHN0eWxlPXtjb2xvclBpY2tlclN0eWxlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXtmb3JtR3JvdXBTdHlsZX0+XG4gICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17bGFiZWxTdHlsZX0+VGV4dCBDb2xvcjwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgdmFsdWU9e3RoZW1lLnRleHRDb2xvcn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZVRoZW1lQ2hhbmdlKCd0ZXh0Q29sb3InLCBlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgc3R5bGU9e2NvbG9yUGlja2VyU3R5bGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e2Zvcm1Hcm91cFN0eWxlfT5cbiAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPXtsYWJlbFN0eWxlfT5Gb250IFNpemU8L2xhYmVsPlxuICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgc3R5bGU9e3NlbGVjdFN0eWxlfVxuICAgICAgICAgICAgICAgIHZhbHVlPXt0aGVtZS5mb250U2l6ZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZVRoZW1lQ2hhbmdlKCdmb250U2l6ZScsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxMnB4XCI+U21hbGwgKDEycHgpPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjE1cHhcIj5NZWRpdW0gKDE1cHgpPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjE4cHhcIj5MYXJnZSAoMThweCk8L29wdGlvbj5cbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e2Zvcm1Hcm91cFN0eWxlfT5cbiAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPXtsYWJlbFN0eWxlfT5Gb250IEZhbWlseTwvbGFiZWw+XG4gICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICBzdHlsZT17c2VsZWN0U3R5bGV9XG4gICAgICAgICAgICAgICAgdmFsdWU9e3RoZW1lLmZvbnRGYW1pbHkuc3BsaXQoJywnKVswXS50cmltKCl9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCB2ID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICBjb25zdCBmZiA9XG4gICAgICAgICAgICAgICAgICAgIHYgPT09ICdJbnRlcidcbiAgICAgICAgICAgICAgICAgICAgICA/ICdJbnRlciwgc2Fucy1zZXJpZidcbiAgICAgICAgICAgICAgICAgICAgICA6IHYgPT09ICdBcmlhbCdcbiAgICAgICAgICAgICAgICAgICAgICA/ICdBcmlhbCwgc2Fucy1zZXJpZidcbiAgICAgICAgICAgICAgICAgICAgICA6IHYgPT09ICdUaW1lcyBOZXcgUm9tYW4nXG4gICAgICAgICAgICAgICAgICAgICAgPyBcIidUaW1lcyBOZXcgUm9tYW4nLCBzZXJpZlwiXG4gICAgICAgICAgICAgICAgICAgICAgOiAnbW9ub3NwYWNlJztcbiAgICAgICAgICAgICAgICAgIGhhbmRsZVRoZW1lQ2hhbmdlKCdmb250RmFtaWx5JywgZmYpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiSW50ZXJcIj5JbnRlcjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJBcmlhbFwiPkFyaWFsPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlRpbWVzIE5ldyBSb21hblwiPlRpbWVzIE5ldyBSb21hbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJtb25vc3BhY2VcIj5Nb25vc3BhY2U8L29wdGlvbj5cbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogU2V0dGluZ3MgU2VjdGlvbiAqL31cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgc3R5bGU9e3NlY3Rpb25IZWFkZXJTdHlsZX0gb25DbGljaz17KCkgPT4gc2V0U2hvd1NldHRpbmdzKCFzaG93U2V0dGluZ3MpfT5cbiAgICAgICAgICA8aDMgc3R5bGU9e3NlY3Rpb25UaXRsZVN0eWxlfT5TRVRUSU5HUzwvaDM+XG4gICAgICAgICAge3Nob3dTZXR0aW5ncyA/IDxDaGV2cm9uVXAgc2l6ZT17MTZ9IC8+IDogPENoZXZyb25Eb3duIHNpemU9ezE2fSAvPn1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtzaG93U2V0dGluZ3MgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHBhZGRpbmc6ICcxNnB4IDE2cHggMTJweCcgfX0+XG4gICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17eyAuLi5sYWJlbFN0eWxlLCBkaXNwbGF5OiAnYmxvY2snLCBtYXJnaW5Cb3R0b206IDggfX0+TmFtZTwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyAuLi5pbnB1dFN0eWxlLCBoZWlnaHQ6IDQwLCBwYWRkaW5nOiAnMCAxMnB4JywgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcgfX1cbiAgICAgICAgICAgICAgICB2YWx1ZT17Y2hhdFNldHRpbmdzLm5hbWV9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVTZXR0aW5nQ2hhbmdlKCduYW1lJywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHBhZGRpbmc6ICcwIDE2cHggMTJweCcgfX0+XG4gICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17eyAuLi5sYWJlbFN0eWxlLCBkaXNwbGF5OiAnYmxvY2snLCBtYXJnaW5Cb3R0b206IDggfX0+RGVzY3JpcHRpb248L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgLi4uaW5wdXRTdHlsZSwgaGVpZ2h0OiA0MCwgcGFkZGluZzogJzAgMTJweCcsIGJveFNpemluZzogJ2JvcmRlci1ib3gnIH19XG4gICAgICAgICAgICAgICAgdmFsdWU9e2NoYXRTZXR0aW5ncy5kZXNjcmlwdGlvbn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZVNldHRpbmdDaGFuZ2UoJ2Rlc2NyaXB0aW9uJywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHBhZGRpbmc6ICcwIDE2cHggMTJweCcgfX0+XG4gICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17eyAuLi5sYWJlbFN0eWxlLCBkaXNwbGF5OiAnYmxvY2snLCBtYXJnaW5Cb3R0b206IDggfX0+QWdlbnQgTmFtZTwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyAuLi5pbnB1dFN0eWxlLCBoZWlnaHQ6IDQwLCBwYWRkaW5nOiAnMCAxMnB4JywgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcgfX1cbiAgICAgICAgICAgICAgICB2YWx1ZT17Y2hhdFNldHRpbmdzLmFnZW50TmFtZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZVNldHRpbmdDaGFuZ2UoJ2FnZW50TmFtZScsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBwYWRkaW5nOiAnMCAxNnB4IDE2cHgnIH19PlxuICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9e3sgLi4ubGFiZWxTdHlsZSwgZGlzcGxheTogJ2Jsb2NrJywgbWFyZ2luQm90dG9tOiA4IH19PkxvZ28gVVJMPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IC4uLmlucHV0U3R5bGUsIGhlaWdodDogNDAsIHBhZGRpbmc6ICcwIDEycHgnLCBib3hTaXppbmc6ICdib3JkZXItYm94JyB9fVxuICAgICAgICAgICAgICAgIHZhbHVlPXtjaGF0U2V0dGluZ3MubG9nb1VybCB8fCAnJ31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZVNldHRpbmdDaGFuZ2UoJ2xvZ29VcmwnLCBlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJodHRwczovL2V4YW1wbGUuY29tL2xvZ28ucG5nXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBwYWRkaW5nOiAnMTZweCcsIGJvcmRlclRvcDogJzFweCBzb2xpZCAjZTBlMGUwJywgbWFyZ2luVG9wOiA4IH19PlxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZvbnRTaXplOiAxMywgY29sb3I6ICcjNTU1JywgbWFyZ2luQm90dG9tOiAxMiwgZm9udFdlaWdodDogNTAwIH19PlxuICAgICAgICAgICAgICAgIEZlYXR1cmVzXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXtmb3JtR3JvdXBTdHlsZX0+XG4gICAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPXtsYWJlbFN0eWxlfT5Vc2UgQXVkaW88L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9eyEhZmVhdHVyZUZsYWdzLnVzZUF1ZGlvfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVGZWF0dXJlRmxhZ0NoYW5nZSgndXNlQXVkaW8nLCBlLnRhcmdldC5jaGVja2VkKX1cbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiAyMCwgaGVpZ2h0OiAyMCwgY3Vyc29yOiAncG9pbnRlcicgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT17Zm9ybUdyb3VwU3R5bGV9PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17bGFiZWxTdHlsZX0+VXNlIEZpbGU8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9eyEhZmVhdHVyZUZsYWdzLnVzZUZpbGV9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUZlYXR1cmVGbGFnQ2hhbmdlKCd1c2VGaWxlJywgZS50YXJnZXQuY2hlY2tlZCl9XG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAsIGhlaWdodDogMjAsIGN1cnNvcjogJ3BvaW50ZXInIH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9e2Zvcm1Hcm91cFN0eWxlfT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9e2xhYmVsU3R5bGV9PlVzZSBXZWJTb2NrZXQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9eyEhZmVhdHVyZUZsYWdzLnVzZVdzfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVGZWF0dXJlRmxhZ0NoYW5nZSgndXNlV3MnLCBlLnRhcmdldC5jaGVja2VkKX1cbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiAyMCwgaGVpZ2h0OiAyMCwgY3Vyc29yOiAncG9pbnRlcicgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBNZXRhZGF0YSBTZWN0aW9uICovfVxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBzdHlsZT17c2VjdGlvbkhlYWRlclN0eWxlfSBvbkNsaWNrPXsoKSA9PiBzZXRTaG93TWV0YWRhdGEoIXNob3dNZXRhZGF0YSl9PlxuICAgICAgICAgIDxoMyBzdHlsZT17c2VjdGlvblRpdGxlU3R5bGV9Pk1FVEFEQVRBPC9oMz5cbiAgICAgICAgICB7c2hvd01ldGFkYXRhID8gPENoZXZyb25VcCBzaXplPXsxNn0gLz4gOiA8Q2hldnJvbkRvd24gc2l6ZT17MTZ9IC8+fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge3Nob3dNZXRhZGF0YSAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgcGFkZGluZzogJzEycHggMTZweCcgfX0+XG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZm9udFNpemU6IDEzLCBjb2xvcjogJyM1NTUnLCBtYXJnaW5Cb3R0b206IDEwIH19PlxuICAgICAgICAgICAgICAgIERlZmluZSBrZXkvdmFsdWUgcGFyYW1ldGVycyBzZW50IGFzIGNoYXQgbWV0YWRhdGEuXG4gICAgICAgICAgICAgICAge09iamVjdC5rZXlzKGFnZW50Q2hhdElucHV0TWV0YWRhdGEgfHwge30pLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgZGlzcGxheTogJ2Jsb2NrJywgbWFyZ2luVG9wOiA0LCBjb2xvcjogJyM2NjYnIH19PlxuICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzIGZyb20gdGhlIHdvcmtmbG93JmFwb3M7cyBDaGF0IElucHV0IG5vZGUgYXJlIHNob3duIGJlbG93LlxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8YnV0dG9uIHN0eWxlPXtmdWxsV2lkdGhBY3Rpb25CdXR0b259IG9uQ2xpY2s9eygpID0+IHNldFNob3dBZGRQYXJhbSh0cnVlKX0+XG4gICAgICAgICAgICAgICAgPFBsdXMgc2l6ZT17MTh9IC8+XG4gICAgICAgICAgICAgICAgPHNwYW4+QWRkIFBhcmFtZXRlcjwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIHtwYXJhbXMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgcGFkZGluZzogJzJweCAxNnB4IDEycHgnLCBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBnYXA6IDYgfX0+XG4gICAgICAgICAgICAgICAge3BhcmFtcy5tYXAoKHAsIGlkeCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheVZhbCA9IHAudHlwZSA9PT0gJ2Jvb2xlYW4nID8gKHAudmFsdWUgPyAnVHJ1ZScgOiAnRmFsc2UnKSA6IFN0cmluZyhwLnZhbHVlID8/ICcnKTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtwLm5hbWV9IHN0eWxlPXttZXRhUm93U3R5bGV9PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e21ldGFOYW1lU3R5bGV9PntwLm5hbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17bWV0YVZhbHVlU3R5bGV9IHRpdGxlPXtkaXNwbGF5VmFsfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtkaXNwbGF5VmFsfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiRWRpdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17c21hbGxJY29uQnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRFZGl0SW5kZXgoaWR4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RWRpdERyYWZ0KHsgLi4ucCB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2hvd0VkaXRQYXJhbSh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtgRWRpdCAke3AubmFtZX1gfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQZW5jaWwgc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJSZW1vdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3NtYWxsSWNvbkJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVJlbW92ZVBhcmFtKGlkeCl9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtgUmVtb3ZlICR7cC5uYW1lfWB9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFRyYXNoMiBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIEFjdGlvbiBCdXR0b25zICovfVxuICAgICAgPGRpdiBzdHlsZT17YWN0aW9uQmFyU3R5bGV9PlxuICAgICAgICA8YnV0dG9uIHN0eWxlPXtjYW5jZWxCdXR0b25TdHlsZX0gb25DbGljaz17KCkgPT4gb25DYW5jZWw/LigpfT5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBzdHlsZT17c2F2ZUJ1dHRvblN0eWxlfSBvbkNsaWNrPXtoYW5kbGVTYXZlfT5TYXZlIENoYW5nZXM8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogU2ltcGxlIFBhcmFtZXRlciBNb2RhbHMgKi99XG4gICAgICB7c2hvd0FkZFBhcmFtICYmIChcbiAgICAgICAgPGRpdiBzdHlsZT17bW9kYWxPdmVybGF5U3R5bGV9PlxuICAgICAgICAgIDxkaXYgc3R5bGU9e21vZGFsU3R5bGV9PlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17bW9kYWxIZWFkZXJTdHlsZX0+QWRkIFBhcmFtZXRlcjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17bW9kYWxCb2R5U3R5bGV9PlxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGdhcDogNiB9fT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9e3sgZm9udFNpemU6IDEyLCBjb2xvcjogJyM3NzcnIH19PlBhcmFtZXRlciBOYW1lPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXtpbnB1dFN0eWxlfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2RyYWZ0UGFyYW0ubmFtZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0RHJhZnRQYXJhbSgoZCkgPT4gKHsgLi4uZCwgbmFtZTogZS50YXJnZXQudmFsdWUgfSkpfVxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJwYXJhbV8xXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiAxMiB9fT5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGdhcDogNiwgZmxleDogMSB9fT5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17eyBmb250U2l6ZTogMTIsIGNvbG9yOiAnIzc3NycgfX0+VHlwZTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXtzZWxlY3RTdHlsZX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2RyYWZ0UGFyYW0udHlwZX1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxuICAgICAgICAgICAgICAgICAgICAgIHNldERyYWZ0UGFyYW0oKGQpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5kLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogZS50YXJnZXQudmFsdWUgYXMgUGFyYW1UeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGUudGFyZ2V0LnZhbHVlID09PSAnYm9vbGVhbicgPyBmYWxzZSA6IGUudGFyZ2V0LnZhbHVlID09PSAnbnVtYmVyJyA/IDAgOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic3RyaW5nXCI+U3RyaW5nPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJudW1iZXJcIj5OdW1iZXI8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImJvb2xlYW5cIj5Cb29sZWFuPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiA2LCBmbGV4OiAxIH19PlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPXt7IGZvbnRTaXplOiAxMiwgY29sb3I6ICcjNzc3JyB9fT5SZXF1aXJlZDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXtzZWxlY3RTdHlsZX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2RyYWZ0UGFyYW0ucmVxdWlyZWQgPyAneWVzJyA6ICdubyd9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0RHJhZnRQYXJhbSgoZCkgPT4gKHsgLi4uZCwgcmVxdWlyZWQ6IGUudGFyZ2V0LnZhbHVlID09PSAneWVzJyB9KSl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJub1wiPk5vPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ5ZXNcIj5ZZXM8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGdhcDogNiB9fT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9e3sgZm9udFNpemU6IDEyLCBjb2xvcjogJyM3NzcnIH19PkRlZmF1bHQgLyBWYWx1ZTwvbGFiZWw+XG4gICAgICAgICAgICAgICAge2RyYWZ0UGFyYW0udHlwZSA9PT0gJ2Jvb2xlYW4nID8gKFxuICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17c2VsZWN0U3R5bGV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtkcmFmdFBhcmFtLnZhbHVlID8gJ3RydWUnIDogJ2ZhbHNlJ31cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXREcmFmdFBhcmFtKChkKSA9PiAoeyAuLi5kLCB2YWx1ZTogZS50YXJnZXQudmFsdWUgPT09ICd0cnVlJyB9KSl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJmYWxzZVwiPkZhbHNlPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ0cnVlXCI+VHJ1ZTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPXtkcmFmdFBhcmFtLnR5cGUgPT09ICdudW1iZXInID8gJ251bWJlcicgOiAndGV4dCd9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXtpbnB1dFN0eWxlfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17U3RyaW5nKGRyYWZ0UGFyYW0udmFsdWUgPz8gJycpfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XG4gICAgICAgICAgICAgICAgICAgICAgc2V0RHJhZnRQYXJhbSgoZCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmQsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZHJhZnRQYXJhbS50eXBlID09PSAnbnVtYmVyJyA/IE51bWJlcihlLnRhcmdldC52YWx1ZSkgOiBlLnRhcmdldC52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXttb2RhbEZvb3RlclN0eWxlfT5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBzdHlsZT17Y2FuY2VsQnV0dG9uU3R5bGV9IG9uQ2xpY2s9eygpID0+IHNldFNob3dBZGRQYXJhbShmYWxzZSl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBzdHlsZT17c2F2ZUJ1dHRvblN0eWxlfSBvbkNsaWNrPXtoYW5kbGVBZGRQYXJhbX0+XG4gICAgICAgICAgICAgICAgQWRkXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cblxuICAgICAge3Nob3dFZGl0UGFyYW0gJiYgKFxuICAgICAgICA8ZGl2IHN0eWxlPXttb2RhbE92ZXJsYXlTdHlsZX0+XG4gICAgICAgICAgPGRpdiBzdHlsZT17bW9kYWxTdHlsZX0+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXttb2RhbEhlYWRlclN0eWxlfT5FZGl0IFBhcmFtZXRlcjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17bW9kYWxCb2R5U3R5bGV9PlxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGdhcDogNiB9fT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9e3sgZm9udFNpemU6IDEyLCBjb2xvcjogJyM3NzcnIH19PlBhcmFtZXRlciBOYW1lPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXtpbnB1dFN0eWxlfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2VkaXREcmFmdC5uYW1lfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRFZGl0RHJhZnQoKGQpID0+ICh7IC4uLmQsIG5hbWU6IGUudGFyZ2V0LnZhbHVlIH0pKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiAxMiB9fT5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGdhcDogNiwgZmxleDogMSB9fT5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17eyBmb250U2l6ZTogMTIsIGNvbG9yOiAnIzc3NycgfX0+VHlwZTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXtzZWxlY3RTdHlsZX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2VkaXREcmFmdC50eXBlfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XG4gICAgICAgICAgICAgICAgICAgICAgc2V0RWRpdERyYWZ0KChkKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGUudGFyZ2V0LnZhbHVlIGFzIFBhcmFtVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICBlLnRhcmdldC52YWx1ZSA9PT0gJ2Jvb2xlYW4nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZS50YXJnZXQudmFsdWUgPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0eXBlb2YgZC52YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGQudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzdHJpbmdcIj5TdHJpbmc8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm51bWJlclwiPk51bWJlcjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiYm9vbGVhblwiPkJvb2xlYW48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBnYXA6IDYsIGZsZXg6IDEgfX0+XG4gICAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9e3sgZm9udFNpemU6IDEyLCBjb2xvcjogJyM3NzcnIH19PlJlcXVpcmVkPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3NlbGVjdFN0eWxlfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZWRpdERyYWZ0LnJlcXVpcmVkID8gJ3llcycgOiAnbm8nfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldEVkaXREcmFmdCgoZCkgPT4gKHsgLi4uZCwgcmVxdWlyZWQ6IGUudGFyZ2V0LnZhbHVlID09PSAneWVzJyB9KSl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJub1wiPk5vPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ5ZXNcIj5ZZXM8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGdhcDogNiB9fT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9e3sgZm9udFNpemU6IDEyLCBjb2xvcjogJyM3NzcnIH19PlZhbHVlPC9sYWJlbD5cbiAgICAgICAgICAgICAgICB7ZWRpdERyYWZ0LnR5cGUgPT09ICdib29sZWFuJyA/IChcbiAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3NlbGVjdFN0eWxlfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZWRpdERyYWZ0LnZhbHVlID8gJ3RydWUnIDogJ2ZhbHNlJ31cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRFZGl0RHJhZnQoKGQpID0+ICh7IC4uLmQsIHZhbHVlOiBlLnRhcmdldC52YWx1ZSA9PT0gJ3RydWUnIH0pKX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImZhbHNlXCI+RmFsc2U8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInRydWVcIj5UcnVlPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9e2VkaXREcmFmdC50eXBlID09PSAnbnVtYmVyJyA/ICdudW1iZXInIDogJ3RleHQnfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17aW5wdXRTdHlsZX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e1N0cmluZyhlZGl0RHJhZnQudmFsdWUgPz8gJycpfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XG4gICAgICAgICAgICAgICAgICAgICAgc2V0RWRpdERyYWZ0KChkKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBlZGl0RHJhZnQudHlwZSA9PT0gJ251bWJlcicgPyBOdW1iZXIoZS50YXJnZXQudmFsdWUpIDogZS50YXJnZXQudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBzdHlsZT17bW9kYWxGb290ZXJTdHlsZX0+XG4gICAgICAgICAgICAgIDxidXR0b24gc3R5bGU9e2NhbmNlbEJ1dHRvblN0eWxlfSBvbkNsaWNrPXsoKSA9PiBzZXRTaG93RWRpdFBhcmFtKGZhbHNlKX0+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIHN0eWxlPXtzYXZlQnV0dG9uU3R5bGV9IG9uQ2xpY2s9e2hhbmRsZUVkaXRTYXZlfT5cbiAgICAgICAgICAgICAgICBTYXZlXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbi8vIE1vZGFsIHN0eWxlcyAoc2hhcmVkKVxuY29uc3QgbW9kYWxPdmVybGF5U3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gIHBvc2l0aW9uOiAnZml4ZWQnLFxuICBpbnNldDogMCxcbiAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgwLDAsMCwwLjI1KScsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgekluZGV4OiAxMDA1LFxufTtcblxuY29uc3QgbW9kYWxTdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgd2lkdGg6IDQyMCxcbiAgbWF4V2lkdGg6ICc5MnZ3JyxcbiAgYmFja2dyb3VuZENvbG9yOiAnI2ZmZicsXG4gIGJvcmRlclJhZGl1czogMTIsXG4gIGJveFNoYWRvdzogJzAgOHB4IDI0cHggcmdiYSgwLDAsMCwwLjE4KScsXG4gIG92ZXJmbG93OiAnaGlkZGVuJyxcbn07XG5cbmNvbnN0IG1vZGFsSGVhZGVyU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gIHBhZGRpbmc6ICcxMnB4IDE2cHgnLFxuICBmb250V2VpZ2h0OiA2MDAsXG4gIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCAjZWVlJyxcbn07XG5cbmNvbnN0IG1vZGFsQm9keVN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICBwYWRkaW5nOiAxNixcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgZ2FwOiAxMixcbn07XG5cbmNvbnN0IG1vZGFsRm9vdGVyU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gIHBhZGRpbmc6IDEyLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIGp1c3RpZnlDb250ZW50OiAnZmxleC1lbmQnLFxuICBnYXA6IDgsXG4gIGJvcmRlclRvcDogJzFweCBzb2xpZCAjZWVlJyxcbiAgYmFja2dyb3VuZENvbG9yOiAnI2ZhZmFmYScsXG59OyJdfQ==
|
|
@@ -13,6 +13,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
13
13
|
import React from 'react';
|
|
14
14
|
import { getFileIcon } from './FileTypeIcon';
|
|
15
15
|
import { X } from 'lucide-react';
|
|
16
|
+
import { MarkdownMessage } from './MarkdownMessage';
|
|
16
17
|
// Utility function to parse markdown bold syntax (**text**) and convert to React elements
|
|
17
18
|
export var parseBoldText = function (input) {
|
|
18
19
|
var parts = [];
|
|
@@ -65,7 +66,7 @@ export var InteractiveContent = function (_a) {
|
|
|
65
66
|
};
|
|
66
67
|
var TextBlock = function (_a) {
|
|
67
68
|
var text = _a.text;
|
|
68
|
-
return
|
|
69
|
+
return _jsx(MarkdownMessage, { text: text });
|
|
69
70
|
};
|
|
70
71
|
var QuickOptions = function (_a) {
|
|
71
72
|
var options = _a.options, primaryColor = _a.primaryColor, isActionable = _a.isActionable, onQuickAction = _a.onQuickAction;
|
|
@@ -202,4 +203,4 @@ var FileBlock = function (_a) {
|
|
|
202
203
|
var fileData = _a.fileData;
|
|
203
204
|
return (_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8, cursor: 'pointer' }, onClick: function () { return window.open(fileData.url, '_blank'); }, children: [getFileIcon(fileData.type), _jsx("span", { className: "text-xs text-muted-foreground", children: fileData.name })] }));
|
|
204
205
|
};
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50ZXJhY3RpdmVDb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvSW50ZXJhY3RpdmVDb250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFakMsMEZBQTBGO0FBQzFGLE1BQU0sQ0FBQyxJQUFNLGFBQWEsR0FBRyxVQUFDLEtBQWE7SUFDekMsSUFBTSxLQUFLLEdBQXNCLEVBQUUsQ0FBQztJQUNwQyxJQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztJQUNuQyxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDbEIsSUFBSSxLQUFLLENBQUM7SUFDVixJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFFWixPQUFPLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNoRCw0QkFBNEI7UUFDNUIsSUFBSSxLQUFLLENBQUMsS0FBSyxHQUFHLFNBQVMsRUFBRSxDQUFDO1lBQzVCLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELGdCQUFnQjtRQUNoQixLQUFLLENBQUMsSUFBSSxDQUNSLGlCQUFvQixLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFlBQzNDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFERSxHQUFHLEVBQUUsQ0FFVCxDQUNWLENBQUM7UUFFRixTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzVDLENBQUM7SUFFRCwwQ0FBMEM7SUFDMUMsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdCLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxnREFBZ0Q7SUFDaEQsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQztBQVdGLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFzQyxVQUFDLEVBT3JFO1FBTkMsTUFBTSxZQUFBLEVBQ04sWUFBWSxrQkFBQSxFQUNaLFNBQVMsZUFBQSxFQUNULFlBQVksa0JBQUEsRUFDWixhQUFhLG1CQUFBLEVBQ2IsaUJBQWlCLHVCQUFBO0lBRWpCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRWhDLE9BQU8sQ0FDTCxjQUFLLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFlBQzlELE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBQyxLQUFLLEVBQUUsS0FBSztZQUV2QixRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxNQUFNO29CQUNULElBQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQzVCLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQzt3QkFDbkUsT0FBTyxLQUFDLFVBQVUsSUFBYSxTQUFTLEVBQUUsUUFBUSxJQUExQixLQUFLLENBQXlCLENBQUM7b0JBQ3pELENBQUM7eUJBQU0sQ0FBQzt3QkFDTixPQUFPLEtBQUMsU0FBUyxJQUFhLFFBQVEsRUFBRSxRQUFRLElBQXpCLEtBQUssQ0FBd0IsQ0FBQztvQkFDdkQsQ0FBQztnQkFDSCxLQUFLLE1BQU07b0JBQ1QsT0FBTyxLQUFDLFNBQVMsSUFBYSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBdkIsS0FBSyxDQUFzQixDQUFDO2dCQUNyRCxLQUFLLFNBQVM7b0JBQ1osT0FBTyxDQUNMLEtBQUMsWUFBWSxJQUVYLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUN0QixZQUFZLEVBQUUsWUFBWSxFQUMxQixZQUFZLEVBQUUsWUFBWSxFQUMxQixhQUFhLEVBQUUsYUFBYSxJQUp2QixLQUFLLENBS1YsQ0FDSCxDQUFDO2dCQUNKLEtBQUssT0FBTztvQkFDVixPQUFPLENBQ0wsS0FBQyxnQkFBZ0IsSUFFZixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFDbEIsWUFBWSxFQUFFLFlBQVksRUFDMUIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsWUFBWSxFQUFFLFlBQVksRUFDMUIsUUFBUSxFQUFFLGFBQWEsSUFMbEIsS0FBSyxDQU1WLENBQ0gsQ0FBQztnQkFDSixLQUFLLFVBQVU7b0JBQ2IsT0FBTyxDQUNMLEtBQUMsYUFBYSxJQUVaLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUN4QixZQUFZLEVBQUUsWUFBWSxFQUMxQixTQUFTLEVBQUUsU0FBUyxFQUNwQixZQUFZLEVBQUUsWUFBWSxFQUMxQixhQUFhLEVBQUUsYUFBYSxFQUM1QixTQUFTLEVBQUUsaUJBQWlCLElBTnZCLEtBQUssQ0FPVixDQUNILENBQUM7Z0JBQ0o7b0JBQ0UsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUMsQ0FBQyxHQUNFLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLElBQU0sU0FBUyxHQUErQixVQUFDLEVBQVE7UUFBTixJQUFJLFVBQUE7SUFDbkQsT0FBTyxDQUNMLGNBQUssS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFlBQ3BELGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FDaEIsQ0FDUCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBU0YsSUFBTSxZQUFZLEdBQWdDLFVBQUMsRUFLbEQ7UUFKQyxPQUFPLGFBQUEsRUFDUCxZQUFZLGtCQUFBLEVBQ1osWUFBWSxrQkFBQSxFQUNaLGFBQWEsbUJBQUE7SUFFUCxJQUFBLEtBQXNDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQTVELGNBQWMsUUFBQSxFQUFFLGlCQUFpQixRQUEyQixDQUFDO0lBRXBFLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDZCxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRWQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFeEMsT0FBTyxDQUNMLGNBQ0UsS0FBSyxFQUFFO1lBQ0wsT0FBTyxFQUFFLE1BQU07WUFDZixHQUFHLEVBQUUsQ0FBQztZQUNOLFFBQVEsRUFBRSxNQUFNO1NBQ2pCLFlBRUEsY0FBYyxDQUFDLEdBQUcsQ0FBQyxVQUFDLE1BQU0sRUFBRSxHQUFHLElBQUssT0FBQSxDQUNuQyxpQkFFRSxJQUFJLEVBQUMsUUFBUSxFQUNiLFFBQVEsRUFBRSxDQUFDLFlBQVksRUFDdkIsT0FBTyxFQUFFO2dCQUNQLElBQUksQ0FBQyxZQUFZO29CQUFFLE9BQU87Z0JBQzFCLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QixhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUcsTUFBTSxDQUFDLENBQUM7WUFDMUIsQ0FBQyxFQUNELEtBQUssRUFBRTtnQkFDTCxZQUFZLEVBQUUsRUFBRTtnQkFDaEIsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsZUFBZSxFQUFFLFlBQVk7Z0JBQzdCLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWE7Z0JBQ2hELFVBQVUsRUFBRSxHQUFHO2dCQUNmLFFBQVEsRUFBRSxFQUFFO2dCQUNaLEtBQUssRUFBRSxTQUFTO2dCQUNoQixVQUFVLEVBQUUsUUFBUTtnQkFDcEIsVUFBVSxFQUFFLDBDQUEwQztnQkFDdEQsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHO2dCQUMvQixTQUFTLEVBQUUsNEJBQTRCO2FBQ3hDLFlBRUEsTUFBTSxJQXZCRixVQUFHLE1BQU0sY0FBSSxHQUFHLENBQUUsQ0F3QmhCLENBQ1YsRUEzQm9DLENBMkJwQyxDQUFDLEdBQ0UsQ0FDUCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBVUYsSUFBTSxnQkFBZ0IsR0FBb0MsVUFBQyxFQU0xRDtRQUxDLEtBQUssV0FBQSxFQUNMLFlBQVksa0JBQUEsRUFDWixTQUFTLGVBQUEsRUFDVCxZQUFZLGtCQUFBLEVBQ1osUUFBUSxjQUFBO0lBRVIsT0FBTyxDQUNMLGNBQUssS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsWUFDOUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLENBQ25CLEtBQUMsZUFBZSxJQUVkLElBQUksRUFBRSxJQUFJLEVBQ1YsWUFBWSxFQUFFLFlBQVksRUFDMUIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsWUFBWSxFQUFFLFlBQVksRUFDMUIsUUFBUSxFQUFFLGNBQU0sT0FBQSxZQUFZLEtBQUksUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQSxFQUFyQyxDQUFxQyxJQUxoRCxJQUFJLENBQUMsRUFBRSxDQU1aLENBQ0gsRUFUb0IsQ0FTcEIsQ0FBQyxHQUNFLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQztBQVlGLElBQU0sZUFBZSxHQUFtQyxVQUFDLEVBUXhEO1FBUEMsSUFBSSxVQUFBLEVBQ0osWUFBWSxrQkFBQSxFQUNaLFNBQVMsZUFBQSxFQUNULFlBQVksa0JBQUEsRUFDWixRQUFRLGNBQUEsRUFDUixZQUFZLGtCQUFBLEVBQ1osUUFBUSxjQUFBO0lBRUYsSUFBQSxLQUEwQixLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUE5QyxRQUFRLFFBQUEsRUFBRSxXQUFXLFFBQXlCLENBQUM7SUFDdEQsSUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRXBFLElBQU0sZUFBZSxHQUFHO1FBQ3RCLFdBQVcsQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLENBQUMsSUFBSSxFQUFMLENBQUssQ0FBQyxDQUFDO1FBQzdCLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsRUFBSSxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBRUYsT0FBTyxDQUNMLGVBQ0UsT0FBTyxFQUFFLGVBQWUsRUFDeEIsS0FBSyxFQUFFO1lBQ0wsT0FBTyxFQUFFLE1BQU07WUFDZixHQUFHLEVBQUUsRUFBRTtZQUNQLE9BQU8sRUFBRSxFQUFFO1lBQ1gsWUFBWSxFQUFFLEVBQUU7WUFDaEIsTUFBTSxFQUFFLG1CQUFtQjtZQUMzQixlQUFlLEVBQUUsU0FBUztZQUMxQixNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDNUMsU0FBUyxFQUFFLDRCQUE0QjtTQUN4QyxhQUVBLElBQUksQ0FBQyxLQUFLLElBQUksQ0FDYixjQUNFLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUNmLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUNkLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsR0FDckUsQ0FDSCxFQUNELGVBQUssS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLGFBQ3BGLGVBQUssS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsYUFDL0QsY0FBSyxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFlBQ3JFLElBQUksQ0FBQyxJQUFJLEdBQ04sRUFDTCxRQUFRLElBQUksQ0FDWCxpQkFDRSxJQUFJLEVBQUMsUUFBUSxFQUNiLE9BQU8sRUFBRSxVQUFDLENBQUM7b0NBQ1QsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO29DQUNwQixRQUFRLEVBQUUsQ0FBQztnQ0FDYixDQUFDLEVBQ0QsS0FBSyxFQUFFO29DQUNMLFVBQVUsRUFBRSxTQUFTO29DQUNyQixZQUFZLEVBQUUsSUFBSTtvQ0FDbEIsTUFBTSxFQUFFLG1CQUFtQjtvQ0FDM0IsS0FBSyxFQUFFLEVBQUU7b0NBQ1QsTUFBTSxFQUFFLEVBQUU7b0NBQ1YsT0FBTyxFQUFFLE1BQU07b0NBQ2YsVUFBVSxFQUFFLFFBQVE7b0NBQ3BCLGNBQWMsRUFBRSxRQUFRO29DQUN4QixNQUFNLEVBQUUsU0FBUztpQ0FDbEIsWUFFRCxLQUFDLENBQUMsSUFBQyxJQUFJLEVBQUUsRUFBRSxHQUFJLEdBQ1IsQ0FDVixJQUNHLEVBQ0wsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUNoQixjQUFLLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFlBQzVELElBQUksQ0FBQyxRQUFRLEdBQ1YsQ0FDUCxFQUNBLElBQUksQ0FBQyxXQUFXLElBQUksQ0FDbkIsY0FDRSxLQUFLLEVBQUU7NEJBQ0wsS0FBSyxFQUFFLFNBQVM7NEJBQ2hCLFFBQVEsRUFBRSxFQUFFOzRCQUNaLFVBQVUsRUFBRSxHQUFHOzRCQUNmLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixlQUFlLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQ3ZDLGVBQWUsRUFBRSxVQUFVOzRCQUMzQixRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVE7eUJBQzFDLFlBRUEsSUFBSSxDQUFDLFdBQVcsR0FDYixDQUNQLEVBQ0EsUUFBUSxJQUFJLENBQ1gsY0FBSyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLFlBQ3BFLElBQUksQ0FBQyxLQUFNLENBQUMsR0FBRyxDQUFDLFVBQUMsSUFBSTs0QkFDcEIsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUM7NEJBQzlDLE9BQU8sQ0FDTCxpQkFFRSxJQUFJLEVBQUMsUUFBUSxFQUNiLFFBQVEsRUFBRSxDQUFDLFlBQVksRUFDdkIsT0FBTyxFQUFFLFVBQUMsQ0FBQztvQ0FDVCxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7b0NBQ3BCLElBQUksQ0FBQyxZQUFZO3dDQUFFLE9BQU87b0NBQzFCLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRyxJQUFJLENBQUMsQ0FBQztnQ0FDdkIsQ0FBQyxFQUNELEtBQUssRUFBRTtvQ0FDTCxZQUFZLEVBQUUsSUFBSTtvQ0FDbEIsTUFBTSxFQUFFLG9CQUFhLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUU7b0NBQzVELGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUztvQ0FDdEQsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO29DQUN6QyxPQUFPLEVBQUUsVUFBVTtvQ0FDbkIsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxhQUFhO29DQUNoRCxRQUFRLEVBQUUsRUFBRTtvQ0FDWixVQUFVLEVBQUUsR0FBRztpQ0FDaEIsWUFFQSxJQUFJLElBbkJBLElBQUksQ0FvQkYsQ0FDVixDQUFDO3dCQUNKLENBQUMsQ0FBQyxHQUNFLENBQ1AsSUFDRyxJQUNGLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQztBQVdGLElBQU0sYUFBYSxHQUFpQyxVQUFDLEVBT3BEO1FBTkMsUUFBUSxjQUFBLEVBQ1IsWUFBWSxrQkFBQSxFQUNaLFNBQVMsZUFBQSxFQUNULFlBQVksa0JBQUEsRUFDWixhQUFhLG1CQUFBLEVBQ2IsU0FBUyxlQUFBO0lBRUgsSUFBQSxLQUF3QyxLQUFLLENBQUMsUUFBUSxDQUFlLFFBQVEsQ0FBQyxFQUE3RSxlQUFlLFFBQUEsRUFBRSxrQkFBa0IsUUFBMEMsQ0FBQztJQUVyRixLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2Qsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0IsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUVmLElBQU0sZ0JBQWdCLEdBQUcsVUFBQyxFQUFVLEVBQUUsT0FBbUQ7UUFDdkYsa0JBQWtCLENBQUMsVUFBQyxJQUFJLElBQUssT0FBQSx1QkFDeEIsSUFBSSxLQUNQLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFDLFVBQVU7Z0JBQzNDLE9BQUEsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVTtZQUF2RCxDQUF1RCxDQUN4RCxJQUNELEVBTDJCLENBSzNCLENBQUMsQ0FBQztJQUNOLENBQUMsQ0FBQztJQUVGLElBQU0sZ0JBQWdCLEdBQUcsVUFBQyxFQUFVO1FBQ2xDLGtCQUFrQixDQUFDLFVBQUMsSUFBSSxJQUFLLE9BQUEsdUJBQ3hCLElBQUksS0FDUCxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBQyxVQUFVLElBQUssT0FBQSxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBcEIsQ0FBb0IsQ0FBQyxJQUMxRSxFQUgyQixDQUczQixDQUFDLENBQUM7SUFDTixDQUFDLENBQUM7SUFFRixPQUFPLENBQ0wsZUFBSyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxhQUMvRCxjQUNFLEtBQUssRUFBRTtvQkFDTCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxZQUFZLEVBQUUsRUFBRTtvQkFDaEIsZUFBZSxFQUFFLFNBQVM7b0JBQzFCLE1BQU0sRUFBRSxtQkFBbUI7b0JBQzNCLFVBQVUsRUFBRSxHQUFHO29CQUNmLEtBQUssRUFBRSxTQUFTO2lCQUNqQixZQUVBLGVBQWUsQ0FBQyxLQUFLLElBQUksVUFBVSxHQUNoQyxFQUVOLGNBQUssS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsWUFDOUQsZUFBZSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBQyxVQUFVLElBQUssT0FBQSxDQUMvQyxLQUFDLGVBQWUsSUFFZCxJQUFJLEVBQUUsVUFBVSxFQUNoQixZQUFZLEVBQUUsWUFBWSxFQUMxQixTQUFTLEVBQUUsU0FBUyxFQUNwQixZQUFZLEVBQUUsWUFBWSxFQUMxQixRQUFRLEVBQUUsY0FBTSxPQUFBLFlBQVksS0FBSSxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBLEVBQWhELENBQWdELEVBQ2hFLFlBQVksRUFBRSxVQUFDLElBQUk7d0JBQ2pCLE9BQUEsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxVQUFDLElBQUksSUFBSyxPQUFBLHVCQUFNLElBQUksS0FBRSxZQUFZLEVBQUUsSUFBSSxJQUFHLEVBQWpDLENBQWlDLENBQUM7b0JBQTVFLENBQTRFLEVBRTlFLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLGNBQU0sT0FBQSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQS9CLENBQStCLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFUckUsVUFBVSxDQUFDLEVBQUUsQ0FVbEIsQ0FDSCxFQWJnRCxDQWFoRCxDQUFDLEdBQ0UsRUFFTCxZQUFZLElBQUksZUFBZSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQ3pELGNBQUssS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFlBQzNELGlCQUNFLElBQUksRUFBQyxRQUFRLEVBQ2IsT0FBTyxFQUFFLGNBQU0sT0FBQSxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUcsZUFBZSxDQUFDLEVBQTVCLENBQTRCLEVBQzNDLEtBQUssRUFBRTt3QkFDTCxlQUFlLEVBQUUsWUFBWTt3QkFDN0IsS0FBSyxFQUFFLFNBQVM7d0JBQ2hCLE1BQU0sRUFBRSxNQUFNO3dCQUNkLFlBQVksRUFBRSxFQUFFO3dCQUNoQixPQUFPLEVBQUUsV0FBVzt3QkFDcEIsVUFBVSxFQUFFLEdBQUc7d0JBQ2YsTUFBTSxFQUFFLFNBQVM7d0JBQ2pCLFNBQVMsRUFBRSw0QkFBNEI7cUJBQ3hDLHdCQUdNLEdBQ0wsQ0FDUCxJQUNHLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLElBQU0sVUFBVSxHQUFzQyxVQUFDLEVBQWE7UUFBWCxTQUFTLGVBQUE7SUFDaEUsT0FBTyxDQUNMLGNBQUssS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFNLE9BQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFwQyxDQUFvQyxZQUNuSSxjQUFLLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxPQUFPLEVBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFJLEdBQzFHLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLElBQU0sU0FBUyxHQUFxQyxVQUFDLEVBQVk7UUFBVixRQUFRLGNBQUE7SUFDN0QsT0FBTyxDQUNMLGVBQUssS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFNLE9BQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFuQyxDQUFtQyxhQUNqSSxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUMzQixlQUFNLFNBQVMsRUFBQywrQkFBK0IsWUFBRSxRQUFRLENBQUMsSUFBSSxHQUFRLElBQ2xFLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDaGF0Q29udGVudEJsb2NrLCBEeW5hbWljQ2hhdEl0ZW0sIEZpbGVJdGVtLCBTY2hlZHVsZUl0ZW0gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRGaWxlSWNvbiB9IGZyb20gJy4vRmlsZVR5cGVJY29uJztcbmltcG9ydCB7IFggfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuXG4vLyBVdGlsaXR5IGZ1bmN0aW9uIHRvIHBhcnNlIG1hcmtkb3duIGJvbGQgc3ludGF4ICgqKnRleHQqKikgYW5kIGNvbnZlcnQgdG8gUmVhY3QgZWxlbWVudHNcbmV4cG9ydCBjb25zdCBwYXJzZUJvbGRUZXh0ID0gKGlucHV0OiBzdHJpbmcpOiBSZWFjdC5SZWFjdE5vZGVbXSA9PiB7XG4gIGNvbnN0IHBhcnRzOiBSZWFjdC5SZWFjdE5vZGVbXSA9IFtdO1xuICBjb25zdCBib2xkUmVnZXggPSAvXFwqXFwqKC4qPylcXCpcXCovZztcbiAgbGV0IGxhc3RJbmRleCA9IDA7XG4gIGxldCBtYXRjaDtcbiAgbGV0IGtleSA9IDA7XG5cbiAgd2hpbGUgKChtYXRjaCA9IGJvbGRSZWdleC5leGVjKGlucHV0KSkgIT09IG51bGwpIHtcbiAgICAvLyBBZGQgdGV4dCBiZWZvcmUgdGhlIG1hdGNoXG4gICAgaWYgKG1hdGNoLmluZGV4ID4gbGFzdEluZGV4KSB7XG4gICAgICBwYXJ0cy5wdXNoKGlucHV0LnNsaWNlKGxhc3RJbmRleCwgbWF0Y2guaW5kZXgpKTtcbiAgICB9XG4gICAgXG4gICAgLy8gQWRkIGJvbGQgdGV4dFxuICAgIHBhcnRzLnB1c2goXG4gICAgICA8c3Ryb25nIGtleT17a2V5Kyt9IHN0eWxlPXt7IGZvbnRXZWlnaHQ6IDcwMCB9fT5cbiAgICAgICAge21hdGNoWzFdfVxuICAgICAgPC9zdHJvbmc+XG4gICAgKTtcbiAgICBcbiAgICBsYXN0SW5kZXggPSBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aDtcbiAgfVxuXG4gIC8vIEFkZCByZW1haW5pbmcgdGV4dCBhZnRlciB0aGUgbGFzdCBtYXRjaFxuICBpZiAobGFzdEluZGV4IDwgaW5wdXQubGVuZ3RoKSB7XG4gICAgcGFydHMucHVzaChpbnB1dC5zbGljZShsYXN0SW5kZXgpKTtcbiAgfVxuXG4gIC8vIElmIG5vIG1hdGNoZXMgZm91bmQsIHJldHVybiB0aGUgb3JpZ2luYWwgdGV4dFxuICByZXR1cm4gcGFydHMubGVuZ3RoID4gMCA/IHBhcnRzIDogW2lucHV0XTtcbn07XG5cbmludGVyZmFjZSBJbnRlcmFjdGl2ZUNvbnRlbnRQcm9wcyB7XG4gIGJsb2NrczogQ2hhdENvbnRlbnRCbG9ja1tdO1xuICBwcmltYXJ5Q29sb3I6IHN0cmluZztcbiAgdGV4dENvbG9yOiBzdHJpbmc7XG4gIGlzQWN0aW9uYWJsZTogYm9vbGVhbjtcbiAgb25RdWlja0FjdGlvbj86ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uU2NoZWR1bGVDb25maXJtPzogKHNjaGVkdWxlOiBTY2hlZHVsZUl0ZW0pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBJbnRlcmFjdGl2ZUNvbnRlbnQ6IFJlYWN0LkZDPEludGVyYWN0aXZlQ29udGVudFByb3BzPiA9ICh7XG4gIGJsb2NrcyxcbiAgcHJpbWFyeUNvbG9yLFxuICB0ZXh0Q29sb3IsXG4gIGlzQWN0aW9uYWJsZSxcbiAgb25RdWlja0FjdGlvbixcbiAgb25TY2hlZHVsZUNvbmZpcm0sXG59KSA9PiB7XG4gIGlmICghYmxvY2tzLmxlbmd0aCkgcmV0dXJuIG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGdhcDogMTIgfX0+XG4gICAgICB7YmxvY2tzLm1hcCgoYmxvY2ssIGluZGV4KSA9PiB7XG4gICAgICAgIFxuICAgICAgICBzd2l0Y2ggKGJsb2NrLmtpbmQpIHtcbiAgICAgICAgICBjYXNlICdmaWxlJzpcbiAgICAgICAgICAgIGNvbnN0IGZpbGVEYXRhID0gYmxvY2suZGF0YTtcbiAgICAgICAgICAgIGlmIChmaWxlRGF0YSAmJiBmaWxlRGF0YS50eXBlICYmIGZpbGVEYXRhLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UnKSkge1xuICAgICAgICAgICAgICByZXR1cm4gPEltYWdlQmxvY2sga2V5PXtpbmRleH0gaW1hZ2VEYXRhPXtmaWxlRGF0YX0gLz47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gPEZpbGVCbG9jayBrZXk9e2luZGV4fSBmaWxlRGF0YT17ZmlsZURhdGF9IC8+O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICAgICAgcmV0dXJuIDxUZXh0QmxvY2sga2V5PXtpbmRleH0gdGV4dD17YmxvY2sudGV4dH0gLz47XG4gICAgICAgICAgY2FzZSAnb3B0aW9ucyc6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8UXVpY2tPcHRpb25zXG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICBvcHRpb25zPXtibG9jay5vcHRpb25zfVxuICAgICAgICAgICAgICAgIHByaW1hcnlDb2xvcj17cHJpbWFyeUNvbG9yfVxuICAgICAgICAgICAgICAgIGlzQWN0aW9uYWJsZT17aXNBY3Rpb25hYmxlfVxuICAgICAgICAgICAgICAgIG9uUXVpY2tBY3Rpb249e29uUXVpY2tBY3Rpb259XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgJ2l0ZW1zJzpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxEeW5hbWljSXRlbXNMaXN0XG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICBpdGVtcz17YmxvY2suaXRlbXN9XG4gICAgICAgICAgICAgICAgcHJpbWFyeUNvbG9yPXtwcmltYXJ5Q29sb3J9XG4gICAgICAgICAgICAgICAgdGV4dENvbG9yPXt0ZXh0Q29sb3J9XG4gICAgICAgICAgICAgICAgaXNBY3Rpb25hYmxlPXtpc0FjdGlvbmFibGV9XG4gICAgICAgICAgICAgICAgb25TZWxlY3Q9e29uUXVpY2tBY3Rpb259XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgJ3NjaGVkdWxlJzpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxTY2hlZHVsZUJsb2NrXG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICBzY2hlZHVsZT17YmxvY2suc2NoZWR1bGV9XG4gICAgICAgICAgICAgICAgcHJpbWFyeUNvbG9yPXtwcmltYXJ5Q29sb3J9XG4gICAgICAgICAgICAgICAgdGV4dENvbG9yPXt0ZXh0Q29sb3J9XG4gICAgICAgICAgICAgICAgaXNBY3Rpb25hYmxlPXtpc0FjdGlvbmFibGV9XG4gICAgICAgICAgICAgICAgb25RdWlja0FjdGlvbj17b25RdWlja0FjdGlvbn1cbiAgICAgICAgICAgICAgICBvbkNvbmZpcm09e29uU2NoZWR1bGVDb25maXJtfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0pfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgVGV4dEJsb2NrOiBSZWFjdC5GQzx7IHRleHQ6IHN0cmluZyB9PiA9ICh7IHRleHQgfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgd2hpdGVTcGFjZTogJ3ByZS13cmFwJywgbGluZUhlaWdodDogMS41IH19PlxuICAgICAge3BhcnNlQm9sZFRleHQodGV4dCl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5pbnRlcmZhY2UgUXVpY2tPcHRpb25zUHJvcHMge1xuICBvcHRpb25zOiBzdHJpbmdbXTtcbiAgcHJpbWFyeUNvbG9yOiBzdHJpbmc7XG4gIGlzQWN0aW9uYWJsZTogYm9vbGVhbjtcbiAgb25RdWlja0FjdGlvbj86ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmNvbnN0IFF1aWNrT3B0aW9uczogUmVhY3QuRkM8UXVpY2tPcHRpb25zUHJvcHM+ID0gKHtcbiAgb3B0aW9ucyxcbiAgcHJpbWFyeUNvbG9yLFxuICBpc0FjdGlvbmFibGUsXG4gIG9uUXVpY2tBY3Rpb24sXG59KSA9PiB7XG4gIGNvbnN0IFt2aXNpYmxlT3B0aW9ucywgc2V0VmlzaWJsZU9wdGlvbnNdID0gUmVhY3QudXNlU3RhdGUob3B0aW9ucyk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRWaXNpYmxlT3B0aW9ucyhvcHRpb25zKTtcbiAgfSwgW29wdGlvbnNdKTtcblxuICBpZiAoIXZpc2libGVPcHRpb25zLmxlbmd0aCkgcmV0dXJuIG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBzdHlsZT17e1xuICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgIGdhcDogOCxcbiAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgIH19XG4gICAgPlxuICAgICAge3Zpc2libGVPcHRpb25zLm1hcCgob3B0aW9uLCBpZHgpID0+IChcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGtleT17YCR7b3B0aW9ufS0ke2lkeH1gfVxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGRpc2FibGVkPXshaXNBY3Rpb25hYmxlfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmICghaXNBY3Rpb25hYmxlKSByZXR1cm47XG4gICAgICAgICAgICBzZXRWaXNpYmxlT3B0aW9ucyhbXSk7XG4gICAgICAgICAgICBvblF1aWNrQWN0aW9uPy4ob3B0aW9uKTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6IDk5LFxuICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHByaW1hcnlDb2xvcixcbiAgICAgICAgICAgIHBhZGRpbmc6ICcxMnB4IDEycHgnLFxuICAgICAgICAgICAgY3Vyc29yOiBpc0FjdGlvbmFibGUgPyAncG9pbnRlcicgOiAnbm90LWFsbG93ZWQnLFxuICAgICAgICAgICAgZm9udFdlaWdodDogNTAwLFxuICAgICAgICAgICAgZm9udFNpemU6IDE0LFxuICAgICAgICAgICAgY29sb3I6ICcjZmZmZmZmJyxcbiAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogJ3RyYW5zZm9ybSAwLjEycyBlYXNlLCBvcGFjaXR5IDAuMTJzIGVhc2UnLFxuICAgICAgICAgICAgb3BhY2l0eTogaXNBY3Rpb25hYmxlID8gMSA6IDAuNixcbiAgICAgICAgICAgIGJveFNoYWRvdzogJzAgMnB4IDZweCByZ2JhKDAsMCwwLDAuMTIpJyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge29wdGlvbn1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmludGVyZmFjZSBEeW5hbWljSXRlbXNMaXN0UHJvcHMge1xuICBpdGVtczogRHluYW1pY0NoYXRJdGVtW107XG4gIHByaW1hcnlDb2xvcjogc3RyaW5nO1xuICB0ZXh0Q29sb3I6IHN0cmluZztcbiAgaXNBY3Rpb25hYmxlOiBib29sZWFuO1xuICBvblNlbGVjdD86ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmNvbnN0IER5bmFtaWNJdGVtc0xpc3Q6IFJlYWN0LkZDPER5bmFtaWNJdGVtc0xpc3RQcm9wcz4gPSAoe1xuICBpdGVtcyxcbiAgcHJpbWFyeUNvbG9yLFxuICB0ZXh0Q29sb3IsXG4gIGlzQWN0aW9uYWJsZSxcbiAgb25TZWxlY3QsXG59KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBnYXA6IDEwIH19PlxuICAgICAge2l0ZW1zLm1hcCgoaXRlbSkgPT4gKFxuICAgICAgICA8RHluYW1pY0l0ZW1DYXJkXG4gICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgIGl0ZW09e2l0ZW19XG4gICAgICAgICAgcHJpbWFyeUNvbG9yPXtwcmltYXJ5Q29sb3J9XG4gICAgICAgICAgdGV4dENvbG9yPXt0ZXh0Q29sb3J9XG4gICAgICAgICAgaXNBY3Rpb25hYmxlPXtpc0FjdGlvbmFibGV9XG4gICAgICAgICAgb25TZWxlY3Q9eygpID0+IGlzQWN0aW9uYWJsZSAmJiBvblNlbGVjdD8uKGl0ZW0ubmFtZSl9XG4gICAgICAgIC8+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmludGVyZmFjZSBEeW5hbWljSXRlbUNhcmRQcm9wcyB7XG4gIGl0ZW06IER5bmFtaWNDaGF0SXRlbTtcbiAgcHJpbWFyeUNvbG9yOiBzdHJpbmc7XG4gIHRleHRDb2xvcjogc3RyaW5nO1xuICBpc0FjdGlvbmFibGU6IGJvb2xlYW47XG4gIG9uU2VsZWN0PzogKCkgPT4gdm9pZDtcbiAgb25TbG90U2VsZWN0PzogKHNsb3Q6IHN0cmluZykgPT4gdm9pZDtcbiAgb25SZW1vdmU/OiAoKSA9PiB2b2lkO1xufVxuXG5jb25zdCBEeW5hbWljSXRlbUNhcmQ6IFJlYWN0LkZDPER5bmFtaWNJdGVtQ2FyZFByb3BzPiA9ICh7XG4gIGl0ZW0sXG4gIHByaW1hcnlDb2xvcixcbiAgdGV4dENvbG9yLFxuICBpc0FjdGlvbmFibGUsXG4gIG9uU2VsZWN0LFxuICBvblNsb3RTZWxlY3QsXG4gIG9uUmVtb3ZlLFxufSkgPT4ge1xuICBjb25zdCBbZXhwYW5kZWQsIHNldEV4cGFuZGVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgaGFzU2xvdHMgPSBBcnJheS5pc0FycmF5KGl0ZW0uc2xvdHMpICYmIGl0ZW0uc2xvdHMubGVuZ3RoID4gMDtcblxuICBjb25zdCBoYW5kbGVDYXJkQ2xpY2sgPSAoKSA9PiB7XG4gICAgc2V0RXhwYW5kZWQoKHByZXYpID0+ICFwcmV2KTtcbiAgICBvblNlbGVjdD8uKCk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBvbkNsaWNrPXtoYW5kbGVDYXJkQ2xpY2t9XG4gICAgICBzdHlsZT17e1xuICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgIGdhcDogMTIsXG4gICAgICAgIHBhZGRpbmc6IDEyLFxuICAgICAgICBib3JkZXJSYWRpdXM6IDEyLFxuICAgICAgICBib3JkZXI6ICcxcHggc29saWQgI2U1ZTdlYicsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmOGZhZmMnLFxuICAgICAgICBjdXJzb3I6IGlzQWN0aW9uYWJsZSA/ICdwb2ludGVyJyA6ICdkZWZhdWx0JyxcbiAgICAgICAgYm94U2hhZG93OiAnMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4wNSknLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7aXRlbS5pbWFnZSAmJiAoXG4gICAgICAgIDxpbWdcbiAgICAgICAgICBzcmM9e2l0ZW0uaW1hZ2V9XG4gICAgICAgICAgYWx0PXtpdGVtLm5hbWV9XG4gICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDY0LCBoZWlnaHQ6IDY0LCBib3JkZXJSYWRpdXM6IDgsIG9iamVjdEZpdDogJ2NvdmVyJyB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIDxkaXYgc3R5bGU9e3sgZmxleDogMSwgbWluV2lkdGg6IDAsIGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGdhcDogNCB9fT5cbiAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdmbGV4LXN0YXJ0JywgZ2FwOiA4IH19PlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZm9udFdlaWdodDogNzAwLCBjb2xvcjogdGV4dENvbG9yLCBmb250U2l6ZTogMTUsIGZsZXg6IDEgfX0+XG4gICAgICAgICAgICB7aXRlbS5uYW1lfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIHtvblJlbW92ZSAmJiAoXG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgb25SZW1vdmUoKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2YxZjVmOScsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA5OTk5LFxuICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAjZTJlOGYwJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMjgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyOCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8WCBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7aXRlbS5jYXRlZ29yeSAmJiAoXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBjb2xvcjogJyM2YjcyODAnLCBmb250U2l6ZTogMTMsIGZvbnRXZWlnaHQ6IDUwMCB9fT5cbiAgICAgICAgICAgIHtpdGVtLmNhdGVnb3J5fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7aXRlbS5kZXNjcmlwdGlvbiAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgY29sb3I6ICcjMzc0MTUxJyxcbiAgICAgICAgICAgICAgZm9udFNpemU6IDEzLFxuICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAxLjUsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICctd2Via2l0LWJveCcsXG4gICAgICAgICAgICAgIFdlYmtpdExpbmVDbGFtcDogZXhwYW5kZWQgPyAndW5zZXQnIDogMyxcbiAgICAgICAgICAgICAgV2Via2l0Qm94T3JpZW50OiAndmVydGljYWwnLFxuICAgICAgICAgICAgICBvdmVyZmxvdzogZXhwYW5kZWQgPyAndmlzaWJsZScgOiAnaGlkZGVuJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2l0ZW0uZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtoYXNTbG90cyAmJiAoXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogOCwgZmxleFdyYXA6ICd3cmFwJywgbWFyZ2luVG9wOiA0IH19PlxuICAgICAgICAgICAge2l0ZW0uc2xvdHMhLm1hcCgoc2xvdCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gaXRlbS5zZWxlY3RlZFNsb3QgPT09IHNsb3Q7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAga2V5PXtzbG90fVxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWlzQWN0aW9uYWJsZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNBY3Rpb25hYmxlKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIG9uU2xvdFNlbGVjdD8uKHNsb3QpO1xuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogOTk5OSxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7aXNTZWxlY3RlZCA/IHByaW1hcnlDb2xvciA6ICcjZTVlN2ViJ31gLFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGlzU2VsZWN0ZWQgPyBwcmltYXJ5Q29sb3IgOiAnI2ZmZmZmZicsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpc1NlbGVjdGVkID8gJyNmZmZmZmYnIDogJyMxMTE4MjcnLFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnNnB4IDEycHgnLFxuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGlzQWN0aW9uYWJsZSA/ICdwb2ludGVyJyA6ICdub3QtYWxsb3dlZCcsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAxMyxcbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogNjAwLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c2xvdH1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5pbnRlcmZhY2UgU2NoZWR1bGVCbG9ja1Byb3BzIHtcbiAgc2NoZWR1bGU6IFNjaGVkdWxlSXRlbTtcbiAgcHJpbWFyeUNvbG9yOiBzdHJpbmc7XG4gIHRleHRDb2xvcjogc3RyaW5nO1xuICBpc0FjdGlvbmFibGU6IGJvb2xlYW47XG4gIG9uUXVpY2tBY3Rpb24/OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkO1xuICBvbkNvbmZpcm0/OiAoc2NoZWR1bGU6IFNjaGVkdWxlSXRlbSkgPT4gdm9pZDtcbn1cblxuY29uc3QgU2NoZWR1bGVCbG9jazogUmVhY3QuRkM8U2NoZWR1bGVCbG9ja1Byb3BzPiA9ICh7XG4gIHNjaGVkdWxlLFxuICBwcmltYXJ5Q29sb3IsXG4gIHRleHRDb2xvcixcbiAgaXNBY3Rpb25hYmxlLFxuICBvblF1aWNrQWN0aW9uLFxuICBvbkNvbmZpcm0sXG59KSA9PiB7XG4gIGNvbnN0IFtjdXJyZW50U2NoZWR1bGUsIHNldEN1cnJlbnRTY2hlZHVsZV0gPSBSZWFjdC51c2VTdGF0ZTxTY2hlZHVsZUl0ZW0+KHNjaGVkdWxlKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEN1cnJlbnRTY2hlZHVsZShzY2hlZHVsZSk7XG4gIH0sIFtzY2hlZHVsZV0pO1xuXG4gIGNvbnN0IHVwZGF0ZVJlc3RhdXJhbnQgPSAoaWQ6IHN0cmluZywgdXBkYXRlcjogKGl0ZW06IER5bmFtaWNDaGF0SXRlbSkgPT4gRHluYW1pY0NoYXRJdGVtKSA9PiB7XG4gICAgc2V0Q3VycmVudFNjaGVkdWxlKChwcmV2KSA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIHJlc3RhdXJhbnRzOiBwcmV2LnJlc3RhdXJhbnRzLm1hcCgocmVzdGF1cmFudCkgPT5cbiAgICAgICAgcmVzdGF1cmFudC5pZCA9PT0gaWQgPyB1cGRhdGVyKHJlc3RhdXJhbnQpIDogcmVzdGF1cmFudFxuICAgICAgKSxcbiAgICB9KSk7XG4gIH07XG5cbiAgY29uc3QgcmVtb3ZlUmVzdGF1cmFudCA9IChpZDogc3RyaW5nKSA9PiB7XG4gICAgc2V0Q3VycmVudFNjaGVkdWxlKChwcmV2KSA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIHJlc3RhdXJhbnRzOiBwcmV2LnJlc3RhdXJhbnRzLmZpbHRlcigocmVzdGF1cmFudCkgPT4gcmVzdGF1cmFudC5pZCAhPT0gaWQpLFxuICAgIH0pKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiAxMCB9fT5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBwYWRkaW5nOiAxMixcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IDEyLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmOGZhZmMnLFxuICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAjZTVlN2ViJyxcbiAgICAgICAgICBmb250V2VpZ2h0OiA3MDAsXG4gICAgICAgICAgY29sb3I6IHRleHRDb2xvcixcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge2N1cnJlbnRTY2hlZHVsZS50aXRsZSB8fCAnU2NoZWR1bGUnfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiAxMCB9fT5cbiAgICAgICAge2N1cnJlbnRTY2hlZHVsZS5yZXN0YXVyYW50cy5tYXAoKHJlc3RhdXJhbnQpID0+IChcbiAgICAgICAgICA8RHluYW1pY0l0ZW1DYXJkXG4gICAgICAgICAgICBrZXk9e3Jlc3RhdXJhbnQuaWR9XG4gICAgICAgICAgICBpdGVtPXtyZXN0YXVyYW50fVxuICAgICAgICAgICAgcHJpbWFyeUNvbG9yPXtwcmltYXJ5Q29sb3J9XG4gICAgICAgICAgICB0ZXh0Q29sb3I9e3RleHRDb2xvcn1cbiAgICAgICAgICAgIGlzQWN0aW9uYWJsZT17aXNBY3Rpb25hYmxlfVxuICAgICAgICAgICAgb25TZWxlY3Q9eygpID0+IGlzQWN0aW9uYWJsZSAmJiBvblF1aWNrQWN0aW9uPy4ocmVzdGF1cmFudC5uYW1lKX1cbiAgICAgICAgICAgIG9uU2xvdFNlbGVjdD17KHNsb3QpID0+XG4gICAgICAgICAgICAgIHVwZGF0ZVJlc3RhdXJhbnQocmVzdGF1cmFudC5pZCwgKGl0ZW0pID0+ICh7IC4uLml0ZW0sIHNlbGVjdGVkU2xvdDogc2xvdCB9KSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uUmVtb3ZlPXtpc0FjdGlvbmFibGUgPyAoKSA9PiByZW1vdmVSZXN0YXVyYW50KHJlc3RhdXJhbnQuaWQpIDogdW5kZWZpbmVkfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIHtpc0FjdGlvbmFibGUgJiYgY3VycmVudFNjaGVkdWxlLnJlc3RhdXJhbnRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyB9fT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ29uZmlybT8uKGN1cnJlbnRTY2hlZHVsZSl9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHByaW1hcnlDb2xvcixcbiAgICAgICAgICAgICAgY29sb3I6ICcjZmZmZmZmJyxcbiAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogMTAsXG4gICAgICAgICAgICAgIHBhZGRpbmc6ICcxMHB4IDE2cHgnLFxuICAgICAgICAgICAgICBmb250V2VpZ2h0OiA3MDAsXG4gICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICBib3hTaGFkb3c6ICcwIDFweCA0cHggcmdiYSgwLDAsMCwwLjEyKScsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIENvbmZpcm1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgSW1hZ2VCbG9jazogUmVhY3QuRkM8eyBpbWFnZURhdGE6IEZpbGVJdGVtIH0+ID0gKHsgaW1hZ2VEYXRhIH0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogOCwgY3Vyc29yOiAncG9pbnRlcicgfX0gb25DbGljaz17KCkgPT4gd2luZG93Lm9wZW4oaW1hZ2VEYXRhLnVybCwgJ19ibGFuaycpfT5cbiAgICAgIDxpbWcgc3JjPXtpbWFnZURhdGEudXJsfSBhbHQ9XCJJbWFnZVwiIHN0eWxlPXt7IHdpZHRoOiA4MCwgaGVpZ2h0OiA2NCwgYm9yZGVyUmFkaXVzOiA4LCBvYmplY3RGaXQ6ICdjb3ZlcicgfX0gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmNvbnN0IEZpbGVCbG9jazogUmVhY3QuRkM8eyBmaWxlRGF0YTogRmlsZUl0ZW0gfT4gPSAoeyBmaWxlRGF0YSB9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6IDgsIGN1cnNvcjogJ3BvaW50ZXInIH19IG9uQ2xpY2s9eygpID0+IHdpbmRvdy5vcGVuKGZpbGVEYXRhLnVybCwgJ19ibGFuaycpfT5cbiAgICAgIHtnZXRGaWxlSWNvbihmaWxlRGF0YS50eXBlKX1cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e2ZpbGVEYXRhLm5hbWV9PC9zcGFuPlxuICAgIDwvZGl2PlxuICApO1xufTsiXX0=
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50ZXJhY3RpdmVDb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvSW50ZXJhY3RpdmVDb250ZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELDBGQUEwRjtBQUMxRixNQUFNLENBQUMsSUFBTSxhQUFhLEdBQUcsVUFBQyxLQUFhO0lBQ3pDLElBQU0sS0FBSyxHQUFzQixFQUFFLENBQUM7SUFDcEMsSUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUM7SUFDbkMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLElBQUksS0FBSyxDQUFDO0lBQ1YsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBRVosT0FBTyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDaEQsNEJBQTRCO1FBQzVCLElBQUksS0FBSyxDQUFDLEtBQUssR0FBRyxTQUFTLEVBQUUsQ0FBQztZQUM1QixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxnQkFBZ0I7UUFDaEIsS0FBSyxDQUFDLElBQUksQ0FDUixpQkFBb0IsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxZQUMzQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBREUsR0FBRyxFQUFFLENBRVQsQ0FDVixDQUFDO1FBRUYsU0FBUyxHQUFHLEtB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TSxPQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBcEMsQ0FBb0MsWUFDbkksY0FBSyxHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsT0FBTyxFQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsR0FBSSxHQUMxRyxDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixJQUFNLFNBQVMsR0FBcUMsVUFBQyxFQUFZO1FBQVYsUUFBUSxjQUFBO0lBQzdELE9BQU8sQ0FDTCxlQUFLLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBTSxPQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBbkMsQ0FBbUMsYUFDakksV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFDM0IsZUFBTSxTQUFTLEVBQUMsK0JBQStCLFlBQUUsUUFBUSxDQUFDLElBQUksR0FBUSxJQUNsRSxDQUNQLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ2hhdENvbnRlbnRCbG9jaywgRHluYW1pY0NoYXRJdGVtLCBGaWxlSXRlbSwgU2NoZWR1bGVJdGVtIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0RmlsZUljb24gfSBmcm9tICcuL0ZpbGVUeXBlSWNvbic7XG5pbXBvcnQgeyBYIH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcbmltcG9ydCB7IE1hcmtkb3duTWVzc2FnZSB9IGZyb20gJy4vTWFya2Rvd25NZXNzYWdlJztcblxuLy8gVXRpbGl0eSBmdW5jdGlvbiB0byBwYXJzZSBtYXJrZG93biBib2xkIHN5bnRheCAoKip0ZXh0KiopIGFuZCBjb252ZXJ0IHRvIFJlYWN0IGVsZW1lbnRzXG5leHBvcnQgY29uc3QgcGFyc2VCb2xkVGV4dCA9IChpbnB1dDogc3RyaW5nKTogUmVhY3QuUmVhY3ROb2RlW10gPT4ge1xuICBjb25zdCBwYXJ0czogUmVhY3QuUmVhY3ROb2RlW10gPSBbXTtcbiAgY29uc3QgYm9sZFJlZ2V4ID0gL1xcKlxcKiguKj8pXFwqXFwqL2c7XG4gIGxldCBsYXN0SW5kZXggPSAwO1xuICBsZXQgbWF0Y2g7XG4gIGxldCBrZXkgPSAwO1xuXG4gIHdoaWxlICgobWF0Y2ggPSBib2xkUmVnZXguZXhlYyhpbnB1dCkpICE9PSBudWxsKSB7XG4gICAgLy8gQWRkIHRleHQgYmVmb3JlIHRoZSBtYXRjaFxuICAgIGlmIChtYXRjaC5pbmRleCA+IGxhc3RJbmRleCkge1xuICAgICAgcGFydHMucHVzaChpbnB1dC5zbGljZShsYXN0SW5kZXgsIG1hdGNoLmluZGV4KSk7XG4gICAgfVxuICAgIFxuICAgIC8vIEFkZCBib2xkIHRleHRcbiAgICBwYXJ0cy5wdXNoKFxuICAgICAgPHN0cm9uZyBrZXk9e2tleSsrfSBzdHlsZT17eyBmb250V2VpZ2h0OiA3MDAgfX0+XG4gICAgICAgIHttYXRjaFsxXX1cbiAgICAgIDwvc3Ryb25nPlxuICAgICk7XG4gICAgXG4gICAgbGFzdEluZGV4ID0gbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGg7XG4gIH1cblxuICAvLyBBZGQgcmVtYWluaW5nIHRleHQgYWZ0ZXIgdGhlIGxhc3QgbWF0Y2hcbiAgaWYgKGxhc3RJbmRleCA8IGlucHV0Lmxlbmd0aCkge1xuICAgIHBhcnRzLnB1c2goaW5wdXQuc2xpY2UobGFzdEluZGV4KSk7XG4gIH1cblxuICAvLyBJZiBubyBtYXRjaGVzIGZvdW5kLCByZXR1cm4gdGhlIG9yaWdpbmFsIHRleHRcbiAgcmV0dXJuIHBhcnRzLmxlbmd0aCA+IDAgPyBwYXJ0cyA6IFtpbnB1dF07XG59O1xuXG5pbnRlcmZhY2UgSW50ZXJhY3RpdmVDb250ZW50UHJvcHMge1xuICBibG9ja3M6IENoYXRDb250ZW50QmxvY2tbXTtcbiAgcHJpbWFyeUNvbG9yOiBzdHJpbmc7XG4gIHRleHRDb2xvcjogc3RyaW5nO1xuICBpc0FjdGlvbmFibGU6IGJvb2xlYW47XG4gIG9uUXVpY2tBY3Rpb24/OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkO1xuICBvblNjaGVkdWxlQ29uZmlybT86IChzY2hlZHVsZTogU2NoZWR1bGVJdGVtKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgSW50ZXJhY3RpdmVDb250ZW50OiBSZWFjdC5GQzxJbnRlcmFjdGl2ZUNvbnRlbnRQcm9wcz4gPSAoe1xuICBibG9ja3MsXG4gIHByaW1hcnlDb2xvcixcbiAgdGV4dENvbG9yLFxuICBpc0FjdGlvbmFibGUsXG4gIG9uUXVpY2tBY3Rpb24sXG4gIG9uU2NoZWR1bGVDb25maXJtLFxufSkgPT4ge1xuICBpZiAoIWJsb2Nrcy5sZW5ndGgpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBnYXA6IDEyIH19PlxuICAgICAge2Jsb2Nrcy5tYXAoKGJsb2NrLCBpbmRleCkgPT4ge1xuICAgICAgICBcbiAgICAgICAgc3dpdGNoIChibG9jay5raW5kKSB7XG4gICAgICAgICAgY2FzZSAnZmlsZSc6XG4gICAgICAgICAgICBjb25zdCBmaWxlRGF0YSA9IGJsb2NrLmRhdGE7XG4gICAgICAgICAgICBpZiAoZmlsZURhdGEgJiYgZmlsZURhdGEudHlwZSAmJiBmaWxlRGF0YS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlJykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDxJbWFnZUJsb2NrIGtleT17aW5kZXh9IGltYWdlRGF0YT17ZmlsZURhdGF9IC8+O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDxGaWxlQmxvY2sga2V5PXtpbmRleH0gZmlsZURhdGE9e2ZpbGVEYXRhfSAvPjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgICAgIHJldHVybiA8VGV4dEJsb2NrIGtleT17aW5kZXh9IHRleHQ9e2Jsb2NrLnRleHR9IC8+O1xuICAgICAgICAgIGNhc2UgJ29wdGlvbnMnOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPFF1aWNrT3B0aW9uc1xuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17YmxvY2sub3B0aW9uc31cbiAgICAgICAgICAgICAgICBwcmltYXJ5Q29sb3I9e3ByaW1hcnlDb2xvcn1cbiAgICAgICAgICAgICAgICBpc0FjdGlvbmFibGU9e2lzQWN0aW9uYWJsZX1cbiAgICAgICAgICAgICAgICBvblF1aWNrQWN0aW9uPXtvblF1aWNrQWN0aW9ufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlICdpdGVtcyc6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8RHluYW1pY0l0ZW1zTGlzdFxuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgaXRlbXM9e2Jsb2NrLml0ZW1zfVxuICAgICAgICAgICAgICAgIHByaW1hcnlDb2xvcj17cHJpbWFyeUNvbG9yfVxuICAgICAgICAgICAgICAgIHRleHRDb2xvcj17dGV4dENvbG9yfVxuICAgICAgICAgICAgICAgIGlzQWN0aW9uYWJsZT17aXNBY3Rpb25hYmxlfVxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXtvblF1aWNrQWN0aW9ufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlICdzY2hlZHVsZSc6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8U2NoZWR1bGVCbG9ja1xuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgc2NoZWR1bGU9e2Jsb2NrLnNjaGVkdWxlfVxuICAgICAgICAgICAgICAgIHByaW1hcnlDb2xvcj17cHJpbWFyeUNvbG9yfVxuICAgICAgICAgICAgICAgIHRleHRDb2xvcj17dGV4dENvbG9yfVxuICAgICAgICAgICAgICAgIGlzQWN0aW9uYWJsZT17aXNBY3Rpb25hYmxlfVxuICAgICAgICAgICAgICAgIG9uUXVpY2tBY3Rpb249e29uUXVpY2tBY3Rpb259XG4gICAgICAgICAgICAgICAgb25Db25maXJtPXtvblNjaGVkdWxlQ29uZmlybX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9KX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmNvbnN0IFRleHRCbG9jazogUmVhY3QuRkM8eyB0ZXh0OiBzdHJpbmcgfT4gPSAoeyB0ZXh0IH0pID0+IHtcbiAgcmV0dXJuIDxNYXJrZG93bk1lc3NhZ2UgdGV4dD17dGV4dH0gLz47XG59O1xuXG5pbnRlcmZhY2UgUXVpY2tPcHRpb25zUHJvcHMge1xuICBvcHRpb25zOiBzdHJpbmdbXTtcbiAgcHJpbWFyeUNvbG9yOiBzdHJpbmc7XG4gIGlzQWN0aW9uYWJsZTogYm9vbGVhbjtcbiAgb25RdWlja0FjdGlvbj86ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmNvbnN0IFF1aWNrT3B0aW9uczogUmVhY3QuRkM8UXVpY2tPcHRpb25zUHJvcHM+ID0gKHtcbiAgb3B0aW9ucyxcbiAgcHJpbWFyeUNvbG9yLFxuICBpc0FjdGlvbmFibGUsXG4gIG9uUXVpY2tBY3Rpb24sXG59KSA9PiB7XG4gIGNvbnN0IFt2aXNpYmxlT3B0aW9ucywgc2V0VmlzaWJsZU9wdGlvbnNdID0gUmVhY3QudXNlU3RhdGUob3B0aW9ucyk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRWaXNpYmxlT3B0aW9ucyhvcHRpb25zKTtcbiAgfSwgW29wdGlvbnNdKTtcblxuICBpZiAoIXZpc2libGVPcHRpb25zLmxlbmd0aCkgcmV0dXJuIG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBzdHlsZT17e1xuICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgIGdhcDogOCxcbiAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgIH19XG4gICAgPlxuICAgICAge3Zpc2libGVPcHRpb25zLm1hcCgob3B0aW9uLCBpZHgpID0+IChcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGtleT17YCR7b3B0aW9ufS0ke2lkeH1gfVxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGRpc2FibGVkPXshaXNBY3Rpb25hYmxlfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmICghaXNBY3Rpb25hYmxlKSByZXR1cm47XG4gICAgICAgICAgICBzZXRWaXNpYmxlT3B0aW9ucyhbXSk7XG4gICAgICAgICAgICBvblF1aWNrQWN0aW9uPy4ob3B0aW9uKTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6IDk5LFxuICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHByaW1hcnlDb2xvcixcbiAgICAgICAgICAgIHBhZGRpbmc6ICcxMnB4IDEycHgnLFxuICAgICAgICAgICAgY3Vyc29yOiBpc0FjdGlvbmFibGUgPyAncG9pbnRlcicgOiAnbm90LWFsbG93ZWQnLFxuICAgICAgICAgICAgZm9udFdlaWdodDogNTAwLFxuICAgICAgICAgICAgZm9udFNpemU6IDE0LFxuICAgICAgICAgICAgY29sb3I6ICcjZmZmZmZmJyxcbiAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogJ3RyYW5zZm9ybSAwLjEycyBlYXNlLCBvcGFjaXR5IDAuMTJzIGVhc2UnLFxuICAgICAgICAgICAgb3BhY2l0eTogaXNBY3Rpb25hYmxlID8gMSA6IDAuNixcbiAgICAgICAgICAgIGJveFNoYWRvdzogJzAgMnB4IDZweCByZ2JhKDAsMCwwLDAuMTIpJyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge29wdGlvbn1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmludGVyZmFjZSBEeW5hbWljSXRlbXNMaXN0UHJvcHMge1xuICBpdGVtczogRHluYW1pY0NoYXRJdGVtW107XG4gIHByaW1hcnlDb2xvcjogc3RyaW5nO1xuICB0ZXh0Q29sb3I6IHN0cmluZztcbiAgaXNBY3Rpb25hYmxlOiBib29sZWFuO1xuICBvblNlbGVjdD86ICh0ZXh0OiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmNvbnN0IER5bmFtaWNJdGVtc0xpc3Q6IFJlYWN0LkZDPER5bmFtaWNJdGVtc0xpc3RQcm9wcz4gPSAoe1xuICBpdGVtcyxcbiAgcHJpbWFyeUNvbG9yLFxuICB0ZXh0Q29sb3IsXG4gIGlzQWN0aW9uYWJsZSxcbiAgb25TZWxlY3QsXG59KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBnYXA6IDEwIH19PlxuICAgICAge2l0ZW1zLm1hcCgoaXRlbSkgPT4gKFxuICAgICAgICA8RHluYW1pY0l0ZW1DYXJkXG4gICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgIGl0ZW09e2l0ZW19XG4gICAgICAgICAgcHJpbWFyeUNvbG9yPXtwcmltYXJ5Q29sb3J9XG4gICAgICAgICAgdGV4dENvbG9yPXt0ZXh0Q29sb3J9XG4gICAgICAgICAgaXNBY3Rpb25hYmxlPXtpc0FjdGlvbmFibGV9XG4gICAgICAgICAgb25TZWxlY3Q9eygpID0+IGlzQWN0aW9uYWJsZSAmJiBvblNlbGVjdD8uKGl0ZW0ubmFtZSl9XG4gICAgICAgIC8+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmludGVyZmFjZSBEeW5hbWljSXRlbUNhcmRQcm9wcyB7XG4gIGl0ZW06IER5bmFtaWNDaGF0SXRlbTtcbiAgcHJpbWFyeUNvbG9yOiBzdHJpbmc7XG4gIHRleHRDb2xvcjogc3RyaW5nO1xuICBpc0FjdGlvbmFibGU6IGJvb2xlYW47XG4gIG9uU2VsZWN0PzogKCkgPT4gdm9pZDtcbiAgb25TbG90U2VsZWN0PzogKHNsb3Q6IHN0cmluZykgPT4gdm9pZDtcbiAgb25SZW1vdmU/OiAoKSA9PiB2b2lkO1xufVxuXG5jb25zdCBEeW5hbWljSXRlbUNhcmQ6IFJlYWN0LkZDPER5bmFtaWNJdGVtQ2FyZFByb3BzPiA9ICh7XG4gIGl0ZW0sXG4gIHByaW1hcnlDb2xvcixcbiAgdGV4dENvbG9yLFxuICBpc0FjdGlvbmFibGUsXG4gIG9uU2VsZWN0LFxuICBvblNsb3RTZWxlY3QsXG4gIG9uUmVtb3ZlLFxufSkgPT4ge1xuICBjb25zdCBbZXhwYW5kZWQsIHNldEV4cGFuZGVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgaGFzU2xvdHMgPSBBcnJheS5pc0FycmF5KGl0ZW0uc2xvdHMpICYmIGl0ZW0uc2xvdHMubGVuZ3RoID4gMDtcblxuICBjb25zdCBoYW5kbGVDYXJkQ2xpY2sgPSAoKSA9PiB7XG4gICAgc2V0RXhwYW5kZWQoKHByZXYpID0+ICFwcmV2KTtcbiAgICBvblNlbGVjdD8uKCk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBvbkNsaWNrPXtoYW5kbGVDYXJkQ2xpY2t9XG4gICAgICBzdHlsZT17e1xuICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgIGdhcDogMTIsXG4gICAgICAgIHBhZGRpbmc6IDEyLFxuICAgICAgICBib3JkZXJSYWRpdXM6IDEyLFxuICAgICAgICBib3JkZXI6ICcxcHggc29saWQgI2U1ZTdlYicsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmOGZhZmMnLFxuICAgICAgICBjdXJzb3I6IGlzQWN0aW9uYWJsZSA/ICdwb2ludGVyJyA6ICdkZWZhdWx0JyxcbiAgICAgICAgYm94U2hhZG93OiAnMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4wNSknLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7aXRlbS5pbWFnZSAmJiAoXG4gICAgICAgIDxpbWdcbiAgICAgICAgICBzcmM9e2l0ZW0uaW1hZ2V9XG4gICAgICAgICAgYWx0PXtpdGVtLm5hbWV9XG4gICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDY0LCBoZWlnaHQ6IDY0LCBib3JkZXJSYWRpdXM6IDgsIG9iamVjdEZpdDogJ2NvdmVyJyB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIDxkaXYgc3R5bGU9e3sgZmxleDogMSwgbWluV2lkdGg6IDAsIGRpc3BsYXk6ICdmbGV4JywgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsIGdhcDogNCB9fT5cbiAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdmbGV4LXN0YXJ0JywgZ2FwOiA4IH19PlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZm9udFdlaWdodDogNzAwLCBjb2xvcjogdGV4dENvbG9yLCBmb250U2l6ZTogMTUsIGZsZXg6IDEgfX0+XG4gICAgICAgICAgICB7aXRlbS5uYW1lfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIHtvblJlbW92ZSAmJiAoXG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgb25SZW1vdmUoKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2YxZjVmOScsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA5OTk5LFxuICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAjZTJlOGYwJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMjgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyOCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8WCBzaXplPXsxNn0gLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7aXRlbS5jYXRlZ29yeSAmJiAoXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBjb2xvcjogJyM2YjcyODAnLCBmb250U2l6ZTogMTMsIGZvbnRXZWlnaHQ6IDUwMCB9fT5cbiAgICAgICAgICAgIHtpdGVtLmNhdGVnb3J5fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7aXRlbS5kZXNjcmlwdGlvbiAmJiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgY29sb3I6ICcjMzc0MTUxJyxcbiAgICAgICAgICAgICAgZm9udFNpemU6IDEzLFxuICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAxLjUsXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICctd2Via2l0LWJveCcsXG4gICAgICAgICAgICAgIFdlYmtpdExpbmVDbGFtcDogZXhwYW5kZWQgPyAndW5zZXQnIDogMyxcbiAgICAgICAgICAgICAgV2Via2l0Qm94T3JpZW50OiAndmVydGljYWwnLFxuICAgICAgICAgICAgICBvdmVyZmxvdzogZXhwYW5kZWQgPyAndmlzaWJsZScgOiAnaGlkZGVuJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2l0ZW0uZGVzY3JpcHRpb259XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtoYXNTbG90cyAmJiAoXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogOCwgZmxleFdyYXA6ICd3cmFwJywgbWFyZ2luVG9wOiA0IH19PlxuICAgICAgICAgICAge2l0ZW0uc2xvdHMhLm1hcCgoc2xvdCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gaXRlbS5zZWxlY3RlZFNsb3QgPT09IHNsb3Q7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAga2V5PXtzbG90fVxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWlzQWN0aW9uYWJsZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNBY3Rpb25hYmxlKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIG9uU2xvdFNlbGVjdD8uKHNsb3QpO1xuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogOTk5OSxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7aXNTZWxlY3RlZCA/IHByaW1hcnlDb2xvciA6ICcjZTVlN2ViJ31gLFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGlzU2VsZWN0ZWQgPyBwcmltYXJ5Q29sb3IgOiAnI2ZmZmZmZicsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpc1NlbGVjdGVkID8gJyNmZmZmZmYnIDogJyMxMTE4MjcnLFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnNnB4IDEycHgnLFxuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGlzQWN0aW9uYWJsZSA/ICdwb2ludGVyJyA6ICdub3QtYWxsb3dlZCcsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAxMyxcbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogNjAwLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7c2xvdH1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5pbnRlcmZhY2UgU2NoZWR1bGVCbG9ja1Byb3BzIHtcbiAgc2NoZWR1bGU6IFNjaGVkdWxlSXRlbTtcbiAgcHJpbWFyeUNvbG9yOiBzdHJpbmc7XG4gIHRleHRDb2xvcjogc3RyaW5nO1xuICBpc0FjdGlvbmFibGU6IGJvb2xlYW47XG4gIG9uUXVpY2tBY3Rpb24/OiAodGV4dDogc3RyaW5nKSA9PiB2b2lkO1xuICBvbkNvbmZpcm0/OiAoc2NoZWR1bGU6IFNjaGVkdWxlSXRlbSkgPT4gdm9pZDtcbn1cblxuY29uc3QgU2NoZWR1bGVCbG9jazogUmVhY3QuRkM8U2NoZWR1bGVCbG9ja1Byb3BzPiA9ICh7XG4gIHNjaGVkdWxlLFxuICBwcmltYXJ5Q29sb3IsXG4gIHRleHRDb2xvcixcbiAgaXNBY3Rpb25hYmxlLFxuICBvblF1aWNrQWN0aW9uLFxuICBvbkNvbmZpcm0sXG59KSA9PiB7XG4gIGNvbnN0IFtjdXJyZW50U2NoZWR1bGUsIHNldEN1cnJlbnRTY2hlZHVsZV0gPSBSZWFjdC51c2VTdGF0ZTxTY2hlZHVsZUl0ZW0+KHNjaGVkdWxlKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEN1cnJlbnRTY2hlZHVsZShzY2hlZHVsZSk7XG4gIH0sIFtzY2hlZHVsZV0pO1xuXG4gIGNvbnN0IHVwZGF0ZVJlc3RhdXJhbnQgPSAoaWQ6IHN0cmluZywgdXBkYXRlcjogKGl0ZW06IER5bmFtaWNDaGF0SXRlbSkgPT4gRHluYW1pY0NoYXRJdGVtKSA9PiB7XG4gICAgc2V0Q3VycmVudFNjaGVkdWxlKChwcmV2KSA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIHJlc3RhdXJhbnRzOiBwcmV2LnJlc3RhdXJhbnRzLm1hcCgocmVzdGF1cmFudCkgPT5cbiAgICAgICAgcmVzdGF1cmFudC5pZCA9PT0gaWQgPyB1cGRhdGVyKHJlc3RhdXJhbnQpIDogcmVzdGF1cmFudFxuICAgICAgKSxcbiAgICB9KSk7XG4gIH07XG5cbiAgY29uc3QgcmVtb3ZlUmVzdGF1cmFudCA9IChpZDogc3RyaW5nKSA9PiB7XG4gICAgc2V0Q3VycmVudFNjaGVkdWxlKChwcmV2KSA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIHJlc3RhdXJhbnRzOiBwcmV2LnJlc3RhdXJhbnRzLmZpbHRlcigocmVzdGF1cmFudCkgPT4gcmVzdGF1cmFudC5pZCAhPT0gaWQpLFxuICAgIH0pKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiAxMCB9fT5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBwYWRkaW5nOiAxMixcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IDEyLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmOGZhZmMnLFxuICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAjZTVlN2ViJyxcbiAgICAgICAgICBmb250V2VpZ2h0OiA3MDAsXG4gICAgICAgICAgY29sb3I6IHRleHRDb2xvcixcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge2N1cnJlbnRTY2hlZHVsZS50aXRsZSB8fCAnU2NoZWR1bGUnfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiAxMCB9fT5cbiAgICAgICAge2N1cnJlbnRTY2hlZHVsZS5yZXN0YXVyYW50cy5tYXAoKHJlc3RhdXJhbnQpID0+IChcbiAgICAgICAgICA8RHluYW1pY0l0ZW1DYXJkXG4gICAgICAgICAgICBrZXk9e3Jlc3RhdXJhbnQuaWR9XG4gICAgICAgICAgICBpdGVtPXtyZXN0YXVyYW50fVxuICAgICAgICAgICAgcHJpbWFyeUNvbG9yPXtwcmltYXJ5Q29sb3J9XG4gICAgICAgICAgICB0ZXh0Q29sb3I9e3RleHRDb2xvcn1cbiAgICAgICAgICAgIGlzQWN0aW9uYWJsZT17aXNBY3Rpb25hYmxlfVxuICAgICAgICAgICAgb25TZWxlY3Q9eygpID0+IGlzQWN0aW9uYWJsZSAmJiBvblF1aWNrQWN0aW9uPy4ocmVzdGF1cmFudC5uYW1lKX1cbiAgICAgICAgICAgIG9uU2xvdFNlbGVjdD17KHNsb3QpID0+XG4gICAgICAgICAgICAgIHVwZGF0ZVJlc3RhdXJhbnQocmVzdGF1cmFudC5pZCwgKGl0ZW0pID0+ICh7IC4uLml0ZW0sIHNlbGVjdGVkU2xvdDogc2xvdCB9KSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uUmVtb3ZlPXtpc0FjdGlvbmFibGUgPyAoKSA9PiByZW1vdmVSZXN0YXVyYW50KHJlc3RhdXJhbnQuaWQpIDogdW5kZWZpbmVkfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIHtpc0FjdGlvbmFibGUgJiYgY3VycmVudFNjaGVkdWxlLnJlc3RhdXJhbnRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyB9fT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ29uZmlybT8uKGN1cnJlbnRTY2hlZHVsZSl9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHByaW1hcnlDb2xvcixcbiAgICAgICAgICAgICAgY29sb3I6ICcjZmZmZmZmJyxcbiAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogMTAsXG4gICAgICAgICAgICAgIHBhZGRpbmc6ICcxMHB4IDE2cHgnLFxuICAgICAgICAgICAgICBmb250V2VpZ2h0OiA3MDAsXG4gICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICBib3hTaGFkb3c6ICcwIDFweCA0cHggcmdiYSgwLDAsMCwwLjEyKScsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIENvbmZpcm1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgSW1hZ2VCbG9jazogUmVhY3QuRkM8eyBpbWFnZURhdGE6IEZpbGVJdGVtIH0+ID0gKHsgaW1hZ2VEYXRhIH0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogOCwgY3Vyc29yOiAncG9pbnRlcicgfX0gb25DbGljaz17KCkgPT4gd2luZG93Lm9wZW4oaW1hZ2VEYXRhLnVybCwgJ19ibGFuaycpfT5cbiAgICAgIDxpbWcgc3JjPXtpbWFnZURhdGEudXJsfSBhbHQ9XCJJbWFnZVwiIHN0eWxlPXt7IHdpZHRoOiA4MCwgaGVpZ2h0OiA2NCwgYm9yZGVyUmFkaXVzOiA4LCBvYmplY3RGaXQ6ICdjb3ZlcicgfX0gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmNvbnN0IEZpbGVCbG9jazogUmVhY3QuRkM8eyBmaWxlRGF0YTogRmlsZUl0ZW0gfT4gPSAoeyBmaWxlRGF0YSB9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6IDgsIGN1cnNvcjogJ3BvaW50ZXInIH19IG9uQ2xpY2s9eygpID0+IHdpbmRvdy5vcGVuKGZpbGVEYXRhLnVybCwgJ19ibGFuaycpfT5cbiAgICAgIHtnZXRGaWxlSWNvbihmaWxlRGF0YS50eXBlKX1cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e2ZpbGVEYXRhLm5hbWV9PC9zcGFuPlxuICAgIDwvZGl2PlxuICApO1xufTsiXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface MarkdownMessageProps {
|
|
3
|
+
text: string;
|
|
4
|
+
style?: React.CSSProperties;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* - Auto-linkifies bare URLs (https://..., http://..., mailto:...).
|
|
8
|
+
* - All external links open in a new tab with target="_blank" and rel="noopener noreferrer".
|
|
9
|
+
* - No dangerouslySetInnerHTML without sanitization; uses rehype-sanitize.
|
|
10
|
+
*/
|
|
11
|
+
export declare const MarkdownMessage: React.FC<MarkdownMessageProps>;
|