@modelprofile.com/flexharness 9.1.0 → 9.3.0

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.
Files changed (38) hide show
  1. package/dist_ts/00_commitinfo_data.js +1 -1
  2. package/dist_ts_document/index.d.ts +5 -7
  3. package/dist_ts_document/index.js +1 -1
  4. package/dist_ts_document/plugins.d.ts +2 -0
  5. package/dist_ts_mcp/index.d.ts +15 -20
  6. package/dist_ts_mcp/index.js +7 -10
  7. package/dist_ts_mcp/plugins.d.ts +12 -0
  8. package/dist_ts_mcp/plugins.js +9 -0
  9. package/dist_ts_mcp/requestcontext.d.ts +6 -7
  10. package/dist_ts_mcp/requestcontext.js +1 -1
  11. package/dist_ts_media/index.d.ts +2 -2
  12. package/dist_ts_media/index.js +1 -1
  13. package/dist_ts_media/plugins.d.ts +1 -0
  14. package/dist_ts_tools/index.d.ts +5 -5
  15. package/dist_ts_tools/index.js +3 -3
  16. package/dist_ts_tools/plugins.d.ts +3 -0
  17. package/dist_ts_tools/plugins.js +4 -1
  18. package/dist_ts_tools/tool.context.d.ts +3 -3
  19. package/dist_ts_tools/tool.context.js +1 -1
  20. package/dist_ts_tools_node/plugins.d.ts +1 -1
  21. package/dist_ts_tools_node/tool.context.d.ts +1 -2
  22. package/dist_ts_tools_node/tool.context.js +1 -1
  23. package/dist_ts_tools_node/tool.persistence.d.ts +1 -1
  24. package/package.json +4 -4
  25. package/ts/00_commitinfo_data.ts +1 -1
  26. package/ts_document/index.ts +6 -8
  27. package/ts_document/plugins.ts +2 -0
  28. package/ts_mcp/index.ts +26 -39
  29. package/ts_mcp/plugins.ts +17 -0
  30. package/ts_mcp/requestcontext.ts +9 -10
  31. package/ts_media/index.ts +1 -2
  32. package/ts_media/plugins.ts +1 -0
  33. package/ts_tools/index.ts +5 -5
  34. package/ts_tools/plugins.ts +45 -0
  35. package/ts_tools/tool.context.ts +29 -3
  36. package/ts_tools_node/plugins.ts +28 -1
  37. package/ts_tools_node/tool.context.ts +1 -2
  38. package/ts_tools_node/tool.persistence.ts +1 -1
@@ -834,4 +834,4 @@ const createLocalToolJobContext = (options) => {
834
834
  },
835
835
  };
836
836
  };
837
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC5jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfdG9vbHNfbm9kZS90b29sLmNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUE4QnhDLE1BQU0sb0NBQW9DLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUN6RCxNQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQztBQUV2QyxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxDQUFDLFVBQTZDLEVBQUUsRUFBeUIsRUFBRTtJQUN4SCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN6QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2hDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDckYsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDekQsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsS0FBSyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ2pGLENBQUM7WUFDRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FDRixDQUFDLENBQUMsQ0FBQztJQUNKLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixJQUFJLG9DQUFvQyxDQUFDO0lBQ2hHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQUksbUJBQW1CLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDM0Us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
837
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC5jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfdG9vbHNfbm9kZS90b29sLmNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUE2QnhDLE1BQU0sb0NBQW9DLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUN6RCxNQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQztBQUV2QyxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxDQUFDLFVBQTZDLEVBQUUsRUFBeUIsRUFBRTtJQUN4SCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN6QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2hDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDckYsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDekQsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsS0FBSyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ2pGLENBQUM7WUFDRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FDRixDQUFDLENBQUMsQ0FBQztJQUNKLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixJQUFJLG9DQUFvQyxDQUFDO0lBQ2hHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQUksbUJBQW1CLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDM0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFDRCxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLEdBQUcsQ0FBQztJQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxlQUFlLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbEUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFDRCxNQUFNLHVCQUF1QixHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsSUFBSSxNQUFNLENBQUM7SUFDMUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsSUFBSSx1QkFBdUIsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuRixNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUNELE1BQU0sMEJBQTBCLEdBQUcsT0FBTyxDQUFDLDBCQUEwQjtXQUNoRSx1QkFBdUIsQ0FBQztJQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLDBCQUEwQixJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3pGLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsTUFBTSxJQUFJLEdBQUcseUJBQXlCLENBQUM7UUFDckMsR0FBRztRQUNILE9BQU87UUFDUCxjQUFjLEVBQUUsbUJBQW1CO1FBQ25DLGVBQWU7UUFDZixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7UUFDMUIsdUJBQXVCO1FBQ3ZCLDBCQUEwQjtRQUMxQixpQkFBaUIsRUFBRSxPQUFPLENBQUMsaUJBQWlCO1FBQzVDLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZTtRQUN4QyxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7S0FDakMsQ0FBQyxDQUFDO0lBQ0gsT0FBTztRQUNMLEdBQUc7UUFDSCxPQUFPO1FBQ1AsdUJBQXVCO1FBQ3ZCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztRQUNoQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsaUJBQWlCO1FBQzVDLEtBQUssRUFBRTtZQUNMLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRTtnQkFDMUQsR0FBRyxFQUFFLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLE9BQU8sQ0FBQztnQkFDdEQsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTO2dCQUNoQyxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVztnQkFDM0QsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRO2dCQUM5Qix1QkFBdUI7Z0JBQ3ZCLGNBQWMsRUFBRSxtQkFBbUI7Z0JBQ25DLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZTthQUN6QyxDQUFDO1lBQ0YsYUFBYSxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMseUJBQXlCLENBQUMsT0FBTyxFQUFFO2dCQUN6RSxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsT0FBTyxDQUFDO2dCQUN0RCxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVM7Z0JBQ2hDLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxJQUFJLE9BQU8sQ0FBQyxXQUFXO2dCQUMzRCxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVE7Z0JBQzlCLHVCQUF1QjtnQkFDdkIsY0FBYyxFQUFFLG1CQUFtQjtnQkFDbkMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlO2FBQ3pDLENBQUM7U0FDSDtRQUNELElBQUk7UUFDSixFQUFFLEVBQUU7WUFDRixRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsRUFBRTtnQkFDM0QsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLEVBQUUsV0FBVyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUM7Z0JBQzFFLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDNUIsTUFBTSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDOUQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO29CQUNqRCxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLHVCQUF1QixDQUFDO29CQUM3RCxDQUFDLENBQUMsT0FBTzt3QkFDUCxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7d0JBQ1gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDVCxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUM7b0JBQ3hDLENBQUMsQ0FBQyxNQUFNLHFDQUFxQyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDO29CQUM1RSxDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUNiLE1BQU0sdUJBQXVCLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDcEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUMxRSxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzVCLElBQUksV0FBVyxFQUFFLFNBQVMsS0FBSyxTQUFTLElBQUksV0FBVyxFQUFFLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDL0UsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUM1RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDakUsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVDLENBQUM7Z0JBQ0QsT0FBTyxPQUFPLENBQUM7WUFDakIsQ0FBQztZQUNELFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxFQUFFO2dCQUN4RCxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsRUFBRSxXQUFXLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDMUUsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM1QixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUMxRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDbEQsTUFBTSxpQkFBaUIsR0FBRyxPQUFPO29CQUMvQixDQUFDLENBQUM7d0JBQ0UsT0FBTzt3QkFDUCxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDcEY7b0JBQ0gsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDZCxJQUFJLGlCQUFpQixFQUFFLENBQUM7b0JBQ3RCLE1BQU0sMEJBQTBCLEdBQUcsTUFBTSwrQkFBK0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDckYsMEJBQTBCLENBQ3hCLDBCQUEwQixFQUMxQixpQkFBaUIsQ0FBQyxhQUFhLEVBQy9CLFFBQVEsRUFDUixpQkFBaUIsQ0FBQyxPQUFPLENBQzFCLENBQUM7b0JBQ0YsTUFBTSxnQ0FBZ0MsQ0FDcEMsUUFBUSxFQUNSLGlCQUFpQixDQUFDLGFBQWEsRUFDL0IsUUFBUSxFQUNSLGlCQUFpQixDQUFDLE9BQU8sQ0FDMUIsQ0FBQztnQkFDSixDQUFDO2dCQUNELE1BQU0sdUJBQXVCLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDcEUsTUFBTSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ2pFLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO29CQUN0QixNQUFNLGVBQWUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDdkUsMEJBQTBCLENBQ3hCLGVBQWUsRUFDZixpQkFBaUIsQ0FBQyxhQUFhLEVBQy9CLFFBQVEsRUFDUixpQkFBaUIsQ0FBQyxPQUFPLENBQzFCLENBQUM7b0JBQ0YsTUFBTSxnQ0FBZ0MsQ0FDcEMsUUFBUSxFQUNSLGlCQUFpQixDQUFDLGFBQWEsRUFDL0IsUUFBUSxFQUNSLGlCQUFpQixDQUFDLE9BQU8sQ0FDMUIsQ0FBQztnQkFDSixDQUFDO2dCQUNELE1BQU0sT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQy9ELGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxXQUFXLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxhQUFhLFFBQVEsRUFBRSxDQUFDO1lBQzlFLENBQUM7WUFDRCxhQUFhLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsRUFBRTtnQkFDckUsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLEVBQUUsV0FBVyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUM7Z0JBQzFFLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDNUIsTUFBTSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDbkUsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO29CQUN0RCxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLHVCQUF1QixDQUFDO29CQUM3RCxDQUFDLENBQUMsT0FBTzt3QkFDUCxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7d0JBQ1gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDVCxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUM7b0JBQ3hDLENBQUMsQ0FBQyxNQUFNLHFDQUFxQyxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsU0FBUyxDQUFDO29CQUNqRixDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUNiLE1BQU0sdUJBQXVCLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDcEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQzlGLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztZQUNELFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLEVBQUU7Z0JBQ2xELE1BQU0sV0FBVyxHQUFHLGlCQUFpQixFQUFFLFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDO2dCQUMxRSxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzVCLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzVELElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1osTUFBTSxpQ0FBaUMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUN6RSxDQUFDO2dCQUNELE1BQU0sdUJBQXVCLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDcEUsTUFBTSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDM0UsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM1QixPQUFPLFdBQVcsVUFBVSxFQUFFLENBQUM7WUFDakMsQ0FBQztTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxVQUFrQixFQUFFLE9BQWdCLEVBQUUsT0FBZ0IsRUFBVSxFQUFFO0lBQzFGLE1BQU0sSUFBSSxHQUFHLE9BQU8sSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2pELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztRQUNsRCxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDM0MsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNaLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELElBQUksUUFBUSxLQUFLLFlBQVksSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2RixNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixVQUFVLDhCQUE4QixPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxvQkFBb0IsR0FBRyxDQUMzQixVQUFrQixFQUNsQixPQUFnQixFQUNoQixPQUFnQixFQUNSLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7SUFDOUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUNsQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFFMUUsTUFBTSxxQ0FBcUMsR0FBRyxLQUFLLEVBQ2pELFlBQW9CLEVBQ3BCLFVBQWtCLEVBQ2xCLFNBQW1CLEVBQ0YsRUFBRTtJQUNuQixNQUFNLGFBQWEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2RSxLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sYUFBYSxHQUFHLE1BQU0sK0JBQStCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUM1RixJQUFJLHNCQUFzQixDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUM7WUFBRSxPQUFPLGFBQWEsQ0FBQztJQUNqRixDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsVUFBVSx3Q0FBd0MsQ0FBQyxDQUFDO0FBQ3pGLENBQUMsQ0FBQztBQUVGLE1BQU0saUNBQWlDLEdBQUcsS0FBSyxFQUM3QyxZQUFvQixFQUNwQixVQUFrQixFQUNsQixPQUFlLEVBQ0UsRUFBRTtJQUNuQixNQUFNLGFBQWEsR0FBRyxNQUFNLCtCQUErQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDM0YsTUFBTSxhQUFhLEdBQUcsTUFBTSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkUsMEJBQTBCLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUUsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQyxDQUFDO0FBRUYsTUFBTSwrQkFBK0IsR0FBRyxLQUFLLEVBQUUsVUFBa0IsRUFBbUIsRUFBRTtJQUNwRixJQUFJLGdCQUFnQixHQUFHLFVBQVUsQ0FBQztJQUNsQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ1osSUFBSSxDQUFDO1lBQ0gsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQy9FLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQ3pCLGlCQUFpQixFQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsQ0FDcEQsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxTQUFTLEdBQUksS0FBK0IsQ0FBQyxJQUFJLENBQUM7WUFDeEQsSUFBSSxTQUFTLEtBQUssUUFBUSxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDdEQsTUFBTSxLQUFLLENBQUM7WUFDZCxDQUFDO1lBQ0QsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUMxRCxJQUFJLFVBQVUsS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNwQyxNQUFNLEtBQUssQ0FBQztZQUNkLENBQUM7WUFDRCxnQkFBZ0IsR0FBRyxVQUFVLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLGdDQUFnQyxHQUFHLEtBQUssRUFDNUMsWUFBb0IsRUFDcEIsYUFBcUIsRUFDckIsVUFBa0IsRUFDbEIsT0FBZSxFQUNBLEVBQUU7SUFDakIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFLLEtBQStCLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3ZELE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxLQUFLLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBSSxlQUF1QixDQUFDO0lBQzVCLElBQUksQ0FBQztRQUNILGVBQWUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUssS0FBK0IsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdkQsTUFBTSx1QkFBdUIsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELE1BQU0sS0FBSyxDQUFDO0lBQ2QsQ0FBQztJQUNELDBCQUEwQixDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xGLENBQUMsQ0FBQztBQUVGLE1BQU0sMEJBQTBCLEdBQUcsQ0FDakMsYUFBcUIsRUFDckIsYUFBcUIsRUFDckIsVUFBa0IsRUFDbEIsT0FBZSxFQUNULEVBQUU7SUFDUixJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDMUQsTUFBTSx1QkFBdUIsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sc0JBQXNCLEdBQUcsQ0FDN0IsYUFBcUIsRUFDckIsYUFBcUIsRUFDWixFQUFFO0lBQ1gsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3pFLE9BQU8sWUFBWSxLQUFLLElBQUk7V0FDdkIsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztXQUNqRCxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzlDLENBQUMsQ0FBQztBQUVGLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxVQUFrQixFQUFFLE9BQWUsRUFBUyxFQUFFLENBQzdFLElBQUksS0FBSyxDQUFDLG1CQUFtQixVQUFVLHNDQUFzQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBRTNGLE1BQU0sY0FBYyxHQUFHLENBQUMsV0FBeUIsRUFBUSxFQUFFO0lBQ3pELFdBQVcsRUFBRSxjQUFjLEVBQUUsQ0FBQztBQUNoQyxDQUFDLENBQUM7QUFFRixNQUFNLHVCQUF1QixHQUFHLEtBQUssRUFDbkMsZUFBcUUsRUFDckUsV0FBeUIsRUFDVixFQUFFO0lBQ2pCLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QixJQUFJLENBQUMsZUFBZTtRQUFFLE9BQU87SUFDN0IsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLEtBQUssWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsTUFBTSxZQUFZLENBQUM7UUFDbkIsT0FBTztJQUNULENBQUM7SUFDRCxJQUFJLE9BQW9CLENBQUM7SUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDdEQsT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FDcEIsV0FBVyxDQUFDLE1BQU0sSUFBSSxJQUFJLFlBQVksQ0FBQyx5QkFBeUIsRUFBRSxZQUFZLENBQUMsQ0FDaEYsQ0FBQztRQUNGLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDL0QsSUFBSSxXQUFXLENBQUMsT0FBTztZQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztZQUFTLENBQUM7UUFDVCxXQUFXLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRCxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDOUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLEVBQzlCLGFBQXFCLEVBQ3JCLFNBQWtCLEVBQ2xCLFdBQXlCLEVBQ04sRUFBRTtJQUNyQixjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUYsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVCLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pFLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUIsSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDckMsTUFBTSxZQUFZLEdBQUcsTUFBTSxrQkFBa0IsQ0FDM0MsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFDNUMsSUFBSSxFQUNKLFdBQVcsQ0FDWixDQUFDO1lBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEYsQ0FBQztJQUNILENBQUM7SUFDRCxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBSUYsZ0JBQWdCO0FBQ2hCLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQ3hDLEtBQVksRUFDWixRQUE0QixFQUM1QixRQUlDLEVBQ0ssRUFBRTtJQUNSLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzNCLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxPQUFPO0lBQ1QsQ0FBQztJQUNELFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsUUFBUSxDQUFDLGtCQUFrQixFQUFFLENBQUM7QUFDaEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLEVBQ2hDLE9BQWUsRUFDZixPQUlDLEVBQzBCLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFFekUsTUFBTSx5QkFBeUIsR0FBRyxLQUFLLEVBQ3JDLE9BQXNCLEVBQ3RCLE9BSUMsRUFDMEIsRUFBRTtJQUM3Qiw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxPQUFPLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNsRCxDQUFDLENBQUM7QUFFRixNQUFNLDhCQUE4QixHQUFHLENBQUMsT0FBc0IsRUFBUSxFQUFFO0lBQ3RFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUNsRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDcEUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLHNCQUFzQixHQUFHLEtBQUssRUFDbEMsT0FBK0IsRUFDL0IsT0FJQyxFQUMwQixFQUFFO0lBQzdCLElBQUksT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzVCLE1BQU0sdUJBQXVCLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUUsQ0FBQztTQUFNLENBQUM7UUFDTixjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxPQUFPLElBQUksT0FBTyxDQUFtQixDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQy9DLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUM7UUFDdEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDN0UsTUFBTSxJQUFJLEdBQUcsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUMzRSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFO1lBQ3pELEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztZQUNoQixRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLEtBQUssRUFBRSxLQUFLO1lBQ1osS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7U0FDbEMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxZQUFZLEdBQWEsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sWUFBWSxHQUFhLEVBQUUsQ0FBQztRQUNsQyxJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksaUJBQTJELENBQUM7UUFDaEUsSUFBSSxVQUE2QixDQUFDO1FBQ2xDLElBQUksV0FBOEIsQ0FBQztRQUNuQyxJQUFJLG1CQUFzQyxDQUFDO1FBQzNDLElBQUksV0FBVyxHQUFrQixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkQsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BELE1BQU0sY0FBYyxHQUFHO1lBQ3JCLE1BQU0sRUFBRSxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3pDLE1BQU0sRUFBRSxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1NBQzFDLENBQUM7UUFDRixJQUFJLFNBQXFDLENBQUM7UUFDMUMsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUM7WUFDN0QsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQ3BFLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDZCxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQXNCLEVBQUUsRUFBRTtZQUMvQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssU0FBUztnQkFBRSxPQUFPO1lBQ3BDLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDO29CQUNILE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUNqQyxPQUFPO2dCQUNULENBQUM7Z0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztvQkFDZixJQUFLLEtBQStCLENBQUMsSUFBSSxLQUFLLE9BQU87d0JBQUUsT0FBTztvQkFDOUQsV0FBVyxHQUFHLEtBQWMsQ0FBQztnQkFDL0IsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLENBQUM7Z0JBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyQixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixJQUFLLEtBQStCLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO29CQUN0RCxXQUFXLEdBQUcsS0FBYyxDQUFDO2dCQUMvQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQztRQUNGLFNBQVMsa0JBQWtCLENBQUMsTUFBb0M7WUFDOUQsSUFBSSxpQkFBaUI7Z0JBQUUsT0FBTztZQUM5QixpQkFBaUIsR0FBRyxNQUFNLENBQUM7WUFDM0IscUJBQXFCLENBQUMsS0FBSyxDQUN6QixJQUFJLEtBQUssQ0FBQyx1RUFBdUUsTUFBTSxJQUFJLENBQUMsQ0FDN0YsQ0FBQztZQUNGLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN6QixTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3BGLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxNQUFNLGFBQWEsR0FBRyxLQUFLLEVBQ3pCLE1BQTJCLEVBQzNCLElBQVksRUFDRyxFQUFFO1lBQ2pCLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN6RSxLQUFLLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUMsSUFBSSxZQUF3QyxDQUFDO1lBQzdDLElBQUksYUFBMEIsQ0FBQztZQUMvQixNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDdEQsYUFBYSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2xFLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3RGLElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLE9BQU87b0JBQUUsYUFBYSxFQUFFLENBQUM7WUFDNUQsQ0FBQyxDQUFDLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsdUJBQXVCLEtBQUssU0FBUztnQkFDM0QsQ0FBQyxDQUFDLFNBQVM7Z0JBQ1gsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFO29CQUN0QyxZQUFZLEdBQUcsVUFBVSxDQUN2QixHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQ3BCLDJDQUEyQyxPQUFPLENBQUMsdUJBQXVCLEtBQUssQ0FDaEYsQ0FBQyxFQUNGLE9BQU8sQ0FBQyx1QkFBdUIsQ0FDaEMsQ0FBQztnQkFDSixDQUFDLENBQUMsQ0FBQztZQUNQLElBQUksQ0FBQztnQkFDSCxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRixDQUFDO29CQUFTLENBQUM7Z0JBQ1QsSUFBSSxZQUFZO29CQUFFLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDN0MscUJBQXFCLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztZQUMzRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxhQUFhLEdBQUcsQ0FDcEIsTUFBMkIsRUFDM0IsTUFBb0MsRUFDcEMsSUFBWSxFQUNaLEVBQUU7WUFDRixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7Z0JBQUUsT0FBTztZQUN2QyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDaEIsV0FBVyxHQUFHLFdBQVc7aUJBQ3RCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUN6RSxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixtQkFBbUIsR0FBRyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNoRixrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3hDLENBQUMsQ0FBQztpQkFDRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxZQUFZLEdBQUcsQ0FDbkIsTUFBMkIsRUFDM0IsTUFBZ0IsRUFDaEIsTUFBb0MsRUFDcEMsS0FBc0IsRUFDdEIsRUFBRTtZQUNGLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4RSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEdBQUcsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNFLElBQUksY0FBYyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN2QixNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztnQkFDOUQsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDM0IsYUFBYSxJQUFJLGFBQWEsQ0FBQyxVQUFVLENBQUM7Z0JBQzFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUM3RSxDQUFDO1lBQ0QsSUFBSSxXQUFXLENBQUMsVUFBVSxHQUFHLGNBQWMsRUFBRSxDQUFDO2dCQUM1QyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNyQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFzQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZHLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RyxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxZQUFZO2dCQUFFLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM3QyxJQUFJLFNBQVM7Z0JBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzNELEtBQUssQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMvQyxLQUFLLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDL0MsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDNUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDMUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUF3QixFQUFFLEVBQUU7WUFDMUMsSUFBSSxPQUFPO2dCQUFFLE9BQU87WUFDcEIsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNmLE9BQU8sRUFBRSxDQUFDO1lBQ1YsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQztRQUNGLE1BQU0sV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDekIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNwRCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1NBQ3JELENBQUMsQ0FBQztRQUNILFNBQVMsWUFBWSxDQUFDLEtBQVk7WUFDaEMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUU7Z0JBQzNDLGtCQUFrQixFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUU7b0JBQ2pDLE1BQU0sTUFBTSxHQUFHLFdBQVcsRUFBRSxDQUFDO29CQUM3QixNQUFNLENBQUM7d0JBQ0wsUUFBUSxFQUFFLENBQUM7d0JBQ1gsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO3dCQUNyQixNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxPQUFPLEVBQUU7cUJBQ2hELENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELFdBQVcsRUFBRSxDQUFDLFlBQVksRUFBRSxFQUFFO29CQUM1QixVQUFVLEdBQUcsWUFBWSxDQUFDO2dCQUM1QixDQUFDO2dCQUNELGtCQUFrQixFQUFFLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQzthQUN0RCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsU0FBUyxXQUFXO1lBQ2xCLElBQUksZ0JBQWdCO2dCQUFFLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsS0FBSyxVQUFVLGdCQUFnQixDQUFDLElBQW1CLEVBQUUsTUFBNkI7WUFDaEYsYUFBYSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNuRSxhQUFhLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLHdGQUF3RjtZQUN4RixrRUFBa0U7WUFDbEUsSUFBSSxZQUFZO2dCQUFFLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM3QyxJQUFJLFNBQVM7Z0JBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzNELE1BQU0sV0FBVyxDQUFDO1lBQ2xCLElBQUksaUJBQWlCLEVBQUUsQ0FBQztnQkFDdEIsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNCLENBQUM7WUFDRCxNQUFNLE1BQU0sR0FBRyxXQUFXLEVBQUUsQ0FBQztZQUM3QixNQUFNLGFBQWEsR0FBRyxpQkFBaUIsS0FBSyxTQUFTO2dCQUNuRCxDQUFDLENBQUMsMkJBQTJCLE9BQU8sQ0FBQyxTQUFTLEtBQUs7Z0JBQ2pELENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxjQUFjO29CQUNwQyxDQUFDLENBQUMsOENBQThDLE9BQU8sQ0FBQyxjQUFjLDRCQUE0QjtvQkFDbEcsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQjt3QkFDdkMsQ0FBQyxDQUFDLGtFQUFrRSxtQkFBbUIsRUFBRSxPQUFPLElBQUksd0JBQXdCLEVBQUU7d0JBQ2hJLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxPQUFPOzRCQUMvQixDQUFDLENBQUMsc0JBQXNCOzRCQUN4QixDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLHFDQUFxQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6RyxNQUFNLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzNGLE1BQU0sQ0FBQztnQkFDTCxRQUFRLEVBQUUsaUJBQWlCLEtBQUssU0FBUztvQkFDdkMsQ0FBQyxDQUFDLEdBQUc7b0JBQ0wsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLE9BQU87d0JBQzdCLENBQUMsQ0FBQyxHQUFHO3dCQUNILENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxjQUFjOzRCQUNwQyxDQUFDLENBQUMsQ0FBQzs0QkFDSCxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCO2dDQUN2QyxDQUFDLENBQUMsQ0FBQztnQ0FDTCxDQUFDLENBQUMsaUJBQWlCLEtBQUssT0FBTztvQ0FDL0IsQ0FBQyxDQUFDLENBQUM7b0NBQ0gsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2dCQUNuQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07Z0JBQ3JCLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUU7Z0JBQy9HLE1BQU0sRUFBRSxNQUFNLElBQUksU0FBUzthQUM1QixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsU0FBUyxZQUFZLENBQUMsSUFBbUIsRUFBRSxNQUE2QjtZQUN0RSxLQUFLLGdCQUFnQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsT0FBTyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDeEUsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU87WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM1QyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2hDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBa0JGLE1BQU0sc0JBQXNCLEdBQUcsQ0FDN0IsWUFBMkIsRUFDM0IsVUFBeUIsRUFDbkIsRUFBRTtJQUNSLElBQ0UsQ0FBQyxVQUFVO1dBQ1IsVUFBVSxDQUFDLFdBQVcsS0FBSyxZQUFZLENBQUMsV0FBVztXQUNuRCxVQUFVLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxJQUFJO1dBQ3JDLENBQUMsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQ2hFLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLCtDQUErQyxZQUFZLENBQUMsV0FBVyxvRUFBb0UsQ0FDNUksQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLHlCQUF5QixHQUFHLENBQ2hDLE9BQTBDLEVBQ3pCLEVBQUU7SUFDbkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7SUFDaEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQTJCLENBQUM7SUFDdkQsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQWtDLENBQUM7SUFDOUQsTUFBTSxvQkFBb0IsR0FBYSxFQUFFLENBQUM7SUFDMUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7SUFDbkQsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7SUFDNUIsSUFBSSxnQkFBeUIsQ0FBQztJQUM5QixJQUFJLGdCQUFnQixHQUFrQixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEQsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWMsRUFBUSxFQUFFO1FBQ25ELE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEUsSUFBSSxFQUFFLCtCQUErQjtTQUN0QyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFDRixNQUFNLG9CQUFvQixHQUFHLEtBQUssRUFDaEMsU0FBd0QsRUFDdkMsRUFBRTtRQUNuQixNQUFNLFVBQVUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sWUFBWSxHQUFHLElBQUksS0FBSyxDQUM1Qix1Q0FBdUMsT0FBTyxDQUFDLDBCQUEwQixLQUFLLENBQy9FLENBQUM7UUFDRixJQUFJLEtBQWlDLENBQUM7UUFDdEMsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNwRixNQUFNLGNBQWMsR0FBRyxJQUFJLE9BQU8sQ0FBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUM3RCxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDdEIsVUFBVSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDL0IsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsRUFBRSxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLEtBQUs7Z0JBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDLENBQUM7SUFDRixNQUFNLE9BQU8sR0FBRyxHQUFrQixFQUFFO1FBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUFFLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hELE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2RCxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDakQsSUFBSSxnQkFBZ0IsS0FBSyxTQUFTO2dCQUFFLE1BQU0sZ0JBQWdCLENBQUM7WUFDM0QsbUJBQW1CLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQy9ELE9BQU8sQ0FBQyxRQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzNDLGdCQUFnQixLQUFLLEtBQUssQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMsQ0FBQztJQUNGLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxJQUFtQixFQUFFO1FBQ2pELElBQUksZ0JBQWdCLEtBQUssU0FBUztZQUFFLE1BQU0sZ0JBQWdCLENBQUM7UUFDM0QsTUFBTSxnQkFBZ0IsQ0FBQztRQUN2QixJQUFJLGdCQUFnQixLQUFLLFNBQVM7WUFBRSxNQUFNLGdCQUFnQixDQUFDO0lBQzdELENBQUMsQ0FBQztJQUNGLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBb0IsRUFBUSxFQUFFO1FBQ25ELEtBQUssTUFBTSxRQUFRLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDO2dCQUNILE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0IsSUFBSSxNQUFNLElBQUksT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO29CQUNoRCxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFDekMsQ0FBQztZQUNILENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBQ0YsTUFBTSxVQUFVLEdBQUcsS0FBSyxFQUFFLEtBQTBCLEVBQWlCLEVBQUU7UUFDckUsS0FBSyxNQUFNLFFBQVEsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxJQUFJLEtBQWlDLENBQUM7WUFDdEMsSUFBSSxDQUFDO2dCQUNILE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQztvQkFDakIsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzdDLElBQUksT0FBTyxDQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFO3dCQUN0QyxLQUFLLEdBQUcsVUFBVSxDQUNoQixHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQ3BCLHVDQUF1QyxPQUFPLENBQUMsdUJBQXVCLEtBQUssQ0FDNUUsQ0FBQyxFQUNGLE9BQU8sQ0FBQyx1QkFBdUIsQ0FDaEMsQ0FBQztvQkFDSixDQUFDLENBQUM7aUJBQ0gsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztvQkFBUyxDQUFDO2dCQUNULElBQUksS0FBSztvQkFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUM7SUFDRixNQUFNLEtBQUssR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ3hCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRO1lBQy9CLENBQUMsQ0FBQyxNQUFNLG9CQUFvQixDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNsRixDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQ3RCLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDeEMsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLEtBQUssTUFBTSxhQUFhLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFDLElBQUksS0FBSyxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMzQyxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzlCLElBQUksT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7b0JBQzlCLE1BQU0sWUFBWSxHQUFHLE1BQU0sb0JBQW9CLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQ3BFLE9BQU8sQ0FBQyxpQkFBa0IsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztvQkFDbkUsc0JBQXNCLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO29CQUM1QyxLQUFLLEdBQUcsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUN2QixLQUFLLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztvQkFDdkIsS0FBSyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7b0JBQ3RCLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLHlEQUF5RCxDQUFDO3lCQUNyRixNQUFNLENBQUMsT0FBTyxDQUFDO3lCQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDZCxLQUFLLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztvQkFDdEIsS0FBSyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7Z0JBQ3pCLENBQUM7Z0JBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNqQixDQUFDO1lBQ0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELE9BQU8sb0JBQW9CLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUM3RCxNQUFNLGtCQUFrQixHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hELElBQUksa0JBQWtCLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUNsQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxPQUFPO1lBQUUsTUFBTSxPQUFPLEVBQUUsQ0FBQztJQUMvQixDQUFDLENBQUMsRUFBRSxDQUFDO0lBRUwsT0FBTztRQUNMLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLEVBQUU7WUFDMUMsTUFBTSxLQUFLLENBQUM7WUFDWixNQUFNLGdCQUFnQixFQUFFLENBQUM7WUFDekIsTUFBTSxvQkFBb0IsR0FBRyxpQkFBaUIsRUFBRSxXQUFXLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUNuRixNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0MsSUFBSSxhQUFhLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDN0QsTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO1lBQ2hGLENBQUM7WUFDRCw4QkFBOEIsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEQsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2RixNQUFNLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztZQUM3RSxNQUFNLFdBQVcsR0FBRyxTQUFTLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUMzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDN0IsTUFBTSxZQUFZLEdBQWtCO2dCQUNsQyxXQUFXO2dCQUNYLElBQUksRUFBRSxPQUFPO2dCQUNiLEtBQUssRUFBRSxTQUFTO2dCQUNoQixPQUFPLEVBQUUsYUFBYTtnQkFDdEIsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsU0FBUztnQkFDVCxTQUFTLEVBQUUsU0FBUzthQUNyQixDQUFDO1lBQ0YsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDO2dCQUNuQyxJQUFJLEVBQUUsU0FBUztnQkFDZixHQUFHLEVBQUUsWUFBWTthQUNNLENBQUMsQ0FBQztZQUMzQixNQUFNLFVBQVUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ3RDLFdBQVcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQztnQkFDSCxNQUFNLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzNCLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ2hDLE1BQU0sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUNELElBQUksQ0FBQztnQkFDSCxjQUFjLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUN2QyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMzQixXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUM7b0JBQ0gsTUFBTSxPQUFPLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQztnQkFBQyxPQUFPLGFBQWEsRUFBRSxDQUFDO29CQUN2QixPQUFPLENBQUMsV0FBVyxDQUNqQixhQUFhLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFDdEUsRUFBRSxJQUFJLEVBQUUseUNBQXlDLEVBQUUsQ0FDcEQsQ0FBQztnQkFDSixDQUFDO2dCQUNELE1BQU0sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUVELElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQztZQUN2QixJQUFJLHVCQUF1QixHQUFHLEtBQUssQ0FBQztZQUNwQyxJQUFJLG9CQUF5RCxDQUFDO1lBQzlELElBQUksbUJBQThDLENBQUM7WUFDbkQsTUFBTSxhQUFhLEdBQUcsSUFBSSxPQUFPLENBQW1CLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUN0RSxvQkFBb0IsR0FBRyxPQUFPLENBQUM7Z0JBQy9CLG1CQUFtQixHQUFHLE1BQU0sQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBSyxJQUE0QixFQUFFO2dCQUNyRCxJQUFJLGFBQTRCLENBQUM7Z0JBQ2pDLElBQUksQ0FBQztvQkFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLGFBQWEsQ0FBQztvQkFDbkMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUM5QixhQUFhLEdBQUc7d0JBQ2QsV0FBVzt3QkFDWCxJQUFJLEVBQUUsT0FBTzt3QkFDYixLQUFLLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPOzRCQUM5QixDQUFDLENBQUMsU0FBUzs0QkFDWCxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsS0FBSyxDQUFDO2dDQUNyQixDQUFDLENBQUMsVUFBVTtnQ0FDWixDQUFDLENBQUMsUUFBUTt3QkFDZCxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO3dCQUN6QixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07d0JBQ3JCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUU7d0JBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTt3QkFDckIsU0FBUzt3QkFDVCxTQUFTLEVBQUUsVUFBVTt3QkFDckIsVUFBVTtxQkFDWCxDQUFDO2dCQUNKLENBQUM7Z0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztvQkFDZixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQzlCLGFBQWEsR0FBRzt3QkFDZCxXQUFXO3dCQUNYLElBQUksRUFBRSxPQUFPO3dCQUNiLEtBQUssRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRO3dCQUN2RCxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsUUFBUSxFQUFFLElBQUk7d0JBQ2QsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsTUFBTSxJQUFJLEVBQUU7d0JBQzdDLE1BQU0sRUFBRTs0QkFDTixNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU07NEJBQy9CLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7eUJBQ3ZELENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7d0JBQzVCLFNBQVM7d0JBQ1QsU0FBUyxFQUFFLFVBQVU7d0JBQ3JCLFVBQVU7cUJBQ1gsQ0FBQztnQkFDSixDQUFDO2dCQUNELE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUN2QyxXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNoQyxXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNoQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3ZDLE9BQU8sb0JBQW9CLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDN0QsTUFBTSxrQkFBa0IsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDeEQsSUFBSSxrQkFBa0I7d0JBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUM1RCxDQUFDO2dCQUNELElBQUksQ0FBQyx1QkFBdUI7b0JBQUUsTUFBTSxPQUFPLEVBQUUsQ0FBQztnQkFDOUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsZUFBZSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDekUsT0FBTyxhQUFhLENBQUM7WUFDdkIsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNMLFdBQVcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sTUFBTSxHQUFtQixFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQzdFLE1BQU0saUJBQWlCLEdBQUcsc0JBQXNCLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRTtnQkFDdEUsR0FBRyxFQUFFLFVBQVU7Z0JBQ2YsU0FBUyxFQUFFLGFBQWEsQ0FBQyxTQUFTO2dCQUNsQyxXQUFXLEVBQUUsVUFBVSxDQUFDLE1BQU07Z0JBQzlCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztnQkFDdEMsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7b0JBQ2hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQ3RDLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxTQUFTO3dCQUFFLE9BQU87b0JBQ2hELElBQUksTUFBTSxLQUFLLFFBQVE7d0JBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDOzt3QkFDbkUsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO29CQUNwRCxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDN0IsSUFBSSxDQUFDO3dCQUNILE1BQU0sT0FBTyxFQUFFLENBQUM7b0JBQ2xCLENBQUM7b0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQzt3QkFDZix1QkFBdUIsR0FBRyxJQUFJLENBQUM7d0JBQy9CLGdCQUFnQixLQUFLLEtBQUssQ0FBQzt3QkFDM0IsTUFBTSxLQUFLLENBQUM7b0JBQ2QsQ0FBQztvQkFDRCxNQUFNLFVBQVUsQ0FBQzt3QkFDZixJQUFJLEVBQUUsUUFBUTt3QkFDZCxHQUFHLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQzt3QkFDM0IsTUFBTTt3QkFDTixLQUFLO3dCQUNMLFFBQVEsRUFBRSxFQUFFLGNBQWM7cUJBQzNCLENBQUMsQ0FBQztnQkFDTCxDQUFDO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsS0FBSyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztZQUN2RSxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDNUIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUU7WUFDekIsTUFBTSxLQUFLLENBQUM7WUFDWixNQUFNLGdCQUFnQixFQUFFLENBQUM7WUFDekIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsS0FBSztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxXQUFXLElBQUksQ0FBQyxDQUFDO1lBQzlFLE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDZixNQUFNLEtBQUssQ0FBQztZQUNaLE1BQU0sZ0JBQWdCLEVBQUUsQ0FBQztZQUN6QixPQUFPLGVBQWUsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRTtZQUMzQixNQUFNLEtBQUssQ0FBQztZQUNaLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsV0FBVyxJQUFJLENBQUMsQ0FBQztZQUM5RSxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUztnQkFBRSxPQUFPO1lBQ3RDLFdBQVcsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDLDhCQUE4QixFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDcEcsTUFBTSxXQUFXLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxTQUFTLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN0QixTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hCLE9BQU8sR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
@@ -1,4 +1,4 @@
1
- import type { IToolJobSnapshot, IToolJobStore, IToolJobState } from '@modelprofile.com/flexharness-agent';
1
+ import type { IToolJobSnapshot, IToolJobStore, IToolJobState } from './plugins.js';
2
2
  export interface IFileToolJobStoreOptions {
3
3
  filePath: string;
4
4
  lockTimeoutMs?: number;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "author": "Task Venture Capital GmbH",
3
3
  "license": "MIT",
4
4
  "name": "@modelprofile.com/flexharness",
5
- "version": "9.1.0",
5
+ "version": "9.3.0",
6
6
  "type": "module",
7
7
  "description": "Managed agent sessions with tools, MCP, chat, OCR, documents and browser control through focused subpath imports.",
8
8
  "main": "./dist_ts/index.js",
@@ -62,10 +62,10 @@
62
62
  }
63
63
  },
64
64
  "dependencies": {
65
- "@modelprofile.com/flexharness-agent": "9.1.0",
66
- "@modelprofile.com/flexharness-models": "9.1.0",
65
+ "@modelprofile.com/flexharness-agent": "9.3.0",
66
+ "@modelprofile.com/flexharness-models": "9.3.0",
67
67
  "@push.rocks/smartrequest": "^5.0.1",
68
- "ai": "^7.0.79",
68
+ "ai": "^7.0.107",
69
69
  "zod": "^4.4.1"
70
70
  },
71
71
  "peerDependencies": {
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@modelprofile.com/flexharness',
6
- version: '9.1.0',
6
+ version: '9.3.0',
7
7
  description: 'The FlexHarness toolbox source repository and shared dependency catalog.'
8
8
  }
@@ -1,6 +1,4 @@
1
1
  import * as plugins from './plugins.js';
2
- import type { ModelMessage } from 'ai';
3
- import type { TSmartAiLanguageModel, TSmartAiProviderOptions } from '@modelprofile.com/flexharness-models';
4
2
 
5
3
  type TSmartPdf = InstanceType<typeof plugins.smartpdf.SmartPdf>;
6
4
 
@@ -24,7 +22,7 @@ function ensureSmartpdf(): Promise<TSmartPdf> {
24
22
  /** Options every document request accepts in addition to its model and messages. */
25
23
  export interface IDocumentRequestOptions {
26
24
  /** Passed to the model call unchanged, for example `{ openai: { store: false } }`. */
27
- providerOptions?: TSmartAiProviderOptions;
25
+ providerOptions?: plugins.TSmartAiProviderOptions;
28
26
  /**
29
27
  * Checked before each document is rendered and before the model call, and passed to both the
30
28
  * render and the model call: an abort stops a document that is rendering. The request rejects
@@ -51,18 +49,18 @@ export interface IDocumentRequestOptions {
51
49
  }
52
50
 
53
51
  export interface IDocumentOptions extends IDocumentRequestOptions {
54
- model: TSmartAiLanguageModel;
52
+ model: plugins.TSmartAiLanguageModel;
55
53
  systemMessage?: string;
56
54
  userMessage: string;
57
55
  pdfDocuments: Uint8Array[];
58
- messageHistory?: ModelMessage[];
56
+ messageHistory?: plugins.ModelMessage[];
59
57
  }
60
58
 
61
59
  export interface IPdfTextExtractionOptions extends IDocumentRequestOptions {
62
- model: TSmartAiLanguageModel;
60
+ model: plugins.TSmartAiLanguageModel;
63
61
  systemMessage?: string;
64
62
  userMessage?: string;
65
- messageHistory?: ModelMessage[];
63
+ messageHistory?: plugins.ModelMessage[];
66
64
  }
67
65
 
68
66
  /** Token usage of a document request, summed over its model steps; usage a provider leaves out counts as zero. */
@@ -215,7 +213,7 @@ export async function analyzeDocumentsWithUsage(options: IDocumentOptions): Prom
215
213
  },
216
214
  })
217
215
  : options.model;
218
- const messages: ModelMessage[] = [
216
+ const messages: plugins.ModelMessage[] = [
219
217
  ...(options.messageHistory ?? []),
220
218
  {
221
219
  role: 'user',
@@ -2,4 +2,6 @@ import { generateText, wrapLanguageModel } from 'ai';
2
2
  import * as smartpdf from '@push.rocks/smartpdf';
3
3
  import { AgentModelCallUsageRecorder } from '@modelprofile.com/flexharness-agent';
4
4
  export { generateText, wrapLanguageModel, smartpdf, AgentModelCallUsageRecorder };
5
+ export type { ModelMessage } from 'ai';
6
+ export type { TSmartAiLanguageModel, TSmartAiProviderOptions } from '@modelprofile.com/flexharness-models';
5
7
  export type { TAgentModelCallUsageReporter } from '@modelprofile.com/flexharness-agent';
package/ts_mcp/index.ts CHANGED
@@ -1,17 +1,4 @@
1
- import { Client, type ClientOptions } from '@modelcontextprotocol/sdk/client/index.js';
2
- import {
3
- StdioClientTransport,
4
- type StdioServerParameters,
5
- } from '@modelcontextprotocol/sdk/client/stdio.js';
6
- import {
7
- StreamableHTTPClientTransport,
8
- type StreamableHTTPClientTransportOptions,
9
- } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
10
- import type { RequestOptions } from '@modelcontextprotocol/sdk/shared/protocol.js';
11
- import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
12
- import { jsonSchema, tool } from 'ai';
13
- import type { ToolSet } from 'ai';
14
- import type { ToolExecutionOptions } from 'ai';
1
+ import * as plugins from './plugins.js';
15
2
  import {
16
3
  connectMcpClientWithRequestOptions,
17
4
  withMcpRequestOptions,
@@ -19,16 +6,16 @@ import {
19
6
 
20
7
  const DEFAULT_MAX_LIST_TOOLS_PAGES = 100;
21
8
 
22
- export type TMcpListToolsResult = Awaited<ReturnType<Client['listTools']>>;
9
+ export type TMcpListToolsResult = Awaited<ReturnType<plugins.Client['listTools']>>;
23
10
  export type TMcpToolMetadata = TMcpListToolsResult['tools'][number];
24
- export type TMcpCallToolResult = Awaited<ReturnType<Client['callTool']>>;
11
+ export type TMcpCallToolResult = Awaited<ReturnType<plugins.Client['callTool']>>;
25
12
 
26
13
  export interface IMcpClientLike {
27
- listTools(params?: { cursor?: string }, options?: RequestOptions): Promise<TMcpListToolsResult>;
14
+ listTools(params?: { cursor?: string }, options?: plugins.RequestOptions): Promise<TMcpListToolsResult>;
28
15
  callTool(
29
16
  params: { name: string; arguments?: Record<string, unknown> },
30
17
  resultSchema?: unknown,
31
- options?: RequestOptions,
18
+ options?: plugins.RequestOptions,
32
19
  ): Promise<TMcpCallToolResult>;
33
20
  close?(): Promise<void>;
34
21
  }
@@ -36,23 +23,23 @@ export interface IMcpClientLike {
36
23
  export interface IMcpServerClientOptions {
37
24
  clientName?: string;
38
25
  clientVersion?: string;
39
- clientOptions?: ClientOptions;
40
- requestOptions?: RequestOptions;
26
+ clientOptions?: plugins.ClientOptions;
27
+ requestOptions?: plugins.RequestOptions;
41
28
  }
42
29
 
43
- export interface IMcpStdioServerConfig extends StdioServerParameters, IMcpServerClientOptions {
30
+ export interface IMcpStdioServerConfig extends plugins.StdioServerParameters, IMcpServerClientOptions {
44
31
  type: 'stdio';
45
32
  }
46
33
 
47
34
  export interface IMcpStreamableHttpServerConfig extends IMcpServerClientOptions {
48
35
  type: 'streamableHttp' | 'http';
49
36
  url: string | URL;
50
- transportOptions?: StreamableHTTPClientTransportOptions;
37
+ transportOptions?: plugins.StreamableHTTPClientTransportOptions;
51
38
  }
52
39
 
53
40
  export interface IMcpTransportServerConfig extends IMcpServerClientOptions {
54
41
  type: 'transport';
55
- transport: Transport;
42
+ transport: plugins.Transport;
56
43
  }
57
44
 
58
45
  export interface IMcpClientServerConfig {
@@ -83,10 +70,10 @@ export interface ICreateMcpToolsOptions {
83
70
  servers: Record<string, TMcpServerConfig>;
84
71
  clientName?: string;
85
72
  clientVersion?: string;
86
- clientOptions?: ClientOptions;
87
- requestOptions?: RequestOptions;
88
- listToolsRequestOptions?: RequestOptions;
89
- callToolRequestOptions?: RequestOptions;
73
+ clientOptions?: plugins.ClientOptions;
74
+ requestOptions?: plugins.RequestOptions;
75
+ listToolsRequestOptions?: plugins.RequestOptions;
76
+ callToolRequestOptions?: plugins.RequestOptions;
90
77
  /** Maximum MCP listTools pages per server. Default: 100. */
91
78
  maxListToolsPages?: number;
92
79
  prefixToolNames?: boolean;
@@ -107,7 +94,7 @@ export interface IMcpToolNameMapping {
107
94
  }
108
95
 
109
96
  export interface ICreateMcpToolsResult {
110
- tools: ToolSet;
97
+ tools: plugins.ToolSet;
111
98
  servers: IMcpConnectedServer[];
112
99
  toolNameMap: Record<string, IMcpToolNameMapping>;
113
100
  close: () => Promise<void>;
@@ -135,7 +122,7 @@ export const createMcpTools = async (
135
122
  );
136
123
  }
137
124
 
138
- const exposedTools: ToolSet = {};
125
+ const exposedTools: plugins.ToolSet = {};
139
126
  const toolNameMap: Record<string, IMcpToolNameMapping> = {};
140
127
  const usedToolNames = new Set<string>(['invalid']);
141
128
  const formatResult = options.formatResult ?? formatMcpToolResult;
@@ -151,10 +138,10 @@ export const createMcpTools = async (
151
138
  toolName: mcpTool.name,
152
139
  };
153
140
 
154
- exposedTools[exposedToolName] = tool({
141
+ exposedTools[exposedToolName] = plugins.tool({
155
142
  description: mcpTool.description ?? `MCP tool ${mcpTool.name} from ${server.name}`,
156
- inputSchema: jsonSchema(mcpTool.inputSchema as never),
157
- execute: async (input: unknown, invocationOptions?: ToolExecutionOptions<unknown>) => {
143
+ inputSchema: plugins.jsonSchema(mcpTool.inputSchema as never),
144
+ execute: async (input: unknown, invocationOptions?: plugins.ToolExecutionOptions<unknown>) => {
158
145
  const normalizedArguments = normalizeMcpArguments(input);
159
146
  await options.authorizeToolCall?.({
160
147
  serverName: server.name,
@@ -165,7 +152,7 @@ export const createMcpTools = async (
165
152
  toolCallId: invocationOptions?.toolCallId ?? '',
166
153
  abortSignal: invocationOptions?.abortSignal,
167
154
  });
168
- const configuredCallToolOptions: RequestOptions = {
155
+ const configuredCallToolOptions: plugins.RequestOptions = {
169
156
  ...options.requestOptions,
170
157
  ...options.callToolRequestOptions,
171
158
  };
@@ -254,7 +241,7 @@ const connectMcpServer = async (
254
241
  return config.client;
255
242
  }
256
243
 
257
- const client = new Client(
244
+ const client = new plugins.Client(
258
245
  {
259
246
  name: config.clientName ?? options.clientName ?? 'smartagent-mcp',
260
247
  version: config.clientVersion ?? options.clientVersion ?? '1.0.0',
@@ -294,14 +281,14 @@ const connectMcpServer = async (
294
281
 
295
282
  const createMcpTransport = (
296
283
  config: Exclude<TMcpServerConfig, IMcpClientServerConfig>,
297
- ): Transport => {
284
+ ): plugins.Transport => {
298
285
  if (config.type === 'stdio') {
299
286
  const { type, clientName, clientVersion, clientOptions, requestOptions, ...serverParameters } = config;
300
- return new StdioClientTransport(serverParameters);
287
+ return new plugins.StdioClientTransport(serverParameters);
301
288
  }
302
289
 
303
290
  if (config.type === 'streamableHttp' || config.type === 'http') {
304
- return new StreamableHTTPClientTransport(new URL(config.url), config.transportOptions);
291
+ return new plugins.StreamableHTTPClientTransport(new URL(config.url), config.transportOptions);
305
292
  }
306
293
 
307
294
  if (config.type === 'transport') {
@@ -311,13 +298,13 @@ const createMcpTransport = (
311
298
  throw new Error('Unsupported MCP server transport.');
312
299
  };
313
300
 
314
- const getServerRequestOptions = (config: TMcpServerConfig): RequestOptions | undefined => {
301
+ const getServerRequestOptions = (config: TMcpServerConfig): plugins.RequestOptions | undefined => {
315
302
  return config.type === 'client' ? undefined : config.requestOptions;
316
303
  };
317
304
 
318
305
  const listAllMcpTools = async (
319
306
  client: IMcpClientLike,
320
- requestOptions?: RequestOptions,
307
+ requestOptions?: plugins.RequestOptions,
321
308
  maxPages = DEFAULT_MAX_LIST_TOOLS_PAGES,
322
309
  ): Promise<TMcpToolMetadata[]> => {
323
310
  const tools: TMcpToolMetadata[] = [];
@@ -0,0 +1,17 @@
1
+ // @modelcontextprotocol/sdk
2
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
3
+ import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
4
+ import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
5
+
6
+ export { Client, StdioClientTransport, StreamableHTTPClientTransport };
7
+ export type { ClientOptions } from '@modelcontextprotocol/sdk/client/index.js';
8
+ export type { StdioServerParameters } from '@modelcontextprotocol/sdk/client/stdio.js';
9
+ export type { StreamableHTTPClientTransportOptions } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
10
+ export type { RequestOptions } from '@modelcontextprotocol/sdk/shared/protocol.js';
11
+ export type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
12
+
13
+ // ai-sdk core
14
+ import { jsonSchema, tool } from 'ai';
15
+
16
+ export { jsonSchema, tool };
17
+ export type { ToolExecutionOptions, ToolSet } from 'ai';
@@ -1,16 +1,15 @@
1
- import type { RequestOptions } from '@modelcontextprotocol/sdk/shared/protocol.js';
2
- import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
1
+ import type * as plugins from './plugins.js';
3
2
 
4
3
  export interface IMcpRequestContext {
5
- requestOptions?: RequestOptions;
4
+ requestOptions?: plugins.RequestOptions;
6
5
  cleanup: () => void;
7
6
  }
8
7
 
9
8
  export const createMcpRequestContext = (
10
- configuredOptions?: RequestOptions,
9
+ configuredOptions?: plugins.RequestOptions,
11
10
  preferredAbortSignal?: AbortSignal,
12
11
  ): IMcpRequestContext => {
13
- const requestOptions: RequestOptions = { ...configuredOptions };
12
+ const requestOptions: plugins.RequestOptions = { ...configuredOptions };
14
13
  const sourceSignal = preferredAbortSignal ?? requestOptions.signal;
15
14
  if (!sourceSignal) {
16
15
  return {
@@ -43,9 +42,9 @@ export const createMcpRequestContext = (
43
42
  };
44
43
 
45
44
  export const withMcpRequestOptions = async <T>(
46
- configuredOptions: RequestOptions | undefined,
45
+ configuredOptions: plugins.RequestOptions | undefined,
47
46
  preferredAbortSignal: AbortSignal | undefined,
48
- request: (requestOptions?: RequestOptions) => Promise<T>,
47
+ request: (requestOptions?: plugins.RequestOptions) => Promise<T>,
49
48
  ): Promise<T> => {
50
49
  const context = createMcpRequestContext(configuredOptions, preferredAbortSignal);
51
50
  try {
@@ -56,9 +55,9 @@ export const withMcpRequestOptions = async <T>(
56
55
  };
57
56
 
58
57
  export const connectMcpClientWithRequestOptions = async (
59
- client: { connect: (transport: Transport, requestOptions?: RequestOptions) => Promise<void> },
60
- transport: Transport,
61
- configuredOptions?: RequestOptions,
58
+ client: { connect: (transport: plugins.Transport, requestOptions?: plugins.RequestOptions) => Promise<void> },
59
+ transport: plugins.Transport,
60
+ configuredOptions?: plugins.RequestOptions,
62
61
  ): Promise<void> => withMcpRequestOptions(
63
62
  configuredOptions,
64
63
  undefined,
package/ts_media/index.ts CHANGED
@@ -1,8 +1,7 @@
1
1
  import * as plugins from './plugins.js';
2
- import type { TSmartAiLanguageModel } from '@modelprofile.com/flexharness-models';
3
2
 
4
3
  export interface IVisionOptions {
5
- model: TSmartAiLanguageModel;
4
+ model: plugins.TSmartAiLanguageModel;
6
5
  image: Buffer | Uint8Array;
7
6
  prompt: string;
8
7
  mediaType?: 'image/jpeg' | 'image/png' | 'image/webp' | 'image/gif';
@@ -1,2 +1,3 @@
1
1
  import { generateText } from 'ai';
2
2
  export { generateText };
3
+ export type { TSmartAiLanguageModel } from '@modelprofile.com/flexharness-models';
package/ts_tools/index.ts CHANGED
@@ -2,18 +2,18 @@ export { createBrowserTools } from './tool.browser.js';
2
2
  export {
3
3
  acquireToolExecutionContext,
4
4
  ToolExecutionAdapterCleanupError,
5
- } from '@modelprofile.com/flexharness-agent';
5
+ } from './plugins.js';
6
6
  export type {
7
7
  IToolExecutionAdapter,
8
8
  IToolExecutionAdapterRequest,
9
9
  IToolExecutionContextLease,
10
- } from '@modelprofile.com/flexharness-agent';
10
+ } from './plugins.js';
11
11
  export type { ICreateBrowserToolsOptions } from './tool.browser.js';
12
12
  export { createFilesystemTools } from './tool.filesystem.js';
13
13
  export type { ICreateFilesystemToolsOptions } from './tool.filesystem.js';
14
14
  export { createShellTools } from './tool.shell.js';
15
15
  export type { ICreateShellToolsOptions } from './tool.shell.js';
16
- export type { ToolSet } from 'ai';
16
+ export type { ToolSet } from './plugins.js';
17
17
  export { formatShellResult, formatToolOutput } from './tool.context.js';
18
18
  export type {
19
19
  IBrowserToolInput,
@@ -41,8 +41,8 @@ export type {
41
41
  TToolJobEvent,
42
42
  TToolJobEventListener,
43
43
  } from './tool.context.js';
44
- export { InMemoryToolJobStore, ToolJobStoreConflictError } from '@modelprofile.com/flexharness-agent';
45
- export type { IToolJobSnapshot, IToolJobStore } from '@modelprofile.com/flexharness-agent';
44
+ export { InMemoryToolJobStore, ToolJobStoreConflictError } from './plugins.js';
45
+ export type { IToolJobSnapshot, IToolJobStore } from './plugins.js';
46
46
  export { httpTool } from './tool.http.js';
47
47
  export { jsonTool } from './tool.json.js';
48
48
  export { truncateOutput } from './plugins.js';
@@ -5,3 +5,48 @@ import { truncateOutput } from './utils.truncation.js';
5
5
  export { z, tool, smartrequest, truncateOutput };
6
6
  export type { ToolExecutionOptions, ToolSet } from 'ai';
7
7
  export type { ITruncateResult } from './utils.truncation.js';
8
+
9
+ // @modelprofile.com/flexharness-agent
10
+ import {
11
+ acquireToolExecutionContext,
12
+ InMemoryToolJobStore,
13
+ ToolExecutionAdapterCleanupError,
14
+ ToolJobStoreConflictError,
15
+ } from '@modelprofile.com/flexharness-agent';
16
+ export {
17
+ acquireToolExecutionContext,
18
+ InMemoryToolJobStore,
19
+ ToolExecutionAdapterCleanupError,
20
+ ToolJobStoreConflictError,
21
+ };
22
+ export type {
23
+ IBrowserToolInput,
24
+ IShellCommand,
25
+ IShellFinishedResult,
26
+ IShellStartedResult,
27
+ IToolBrowserContext,
28
+ IToolBrowserRunOptions,
29
+ IToolExecutionAdapter,
30
+ IToolExecutionAdapterRequest,
31
+ IToolExecutionContext,
32
+ IToolExecutionContextLease,
33
+ IToolFilesystemContext,
34
+ IToolFilesystemListOptions,
35
+ IToolFilesystemReadOptions,
36
+ IToolInvocationOptions,
37
+ IToolJobContext,
38
+ IToolJobEvent,
39
+ IToolJobHandle,
40
+ IToolJobOutputEvent,
41
+ IToolJobRequest,
42
+ IToolJobSnapshot,
43
+ IToolJobState,
44
+ IToolJobStore,
45
+ IToolPermissionRequest,
46
+ IToolRunOptions,
47
+ IToolShellContext,
48
+ IToolShellResult,
49
+ TBrowserToolAction,
50
+ TToolJobEvent,
51
+ TToolJobEventListener,
52
+ } from '@modelprofile.com/flexharness-agent';