@cqa-lib/cqa-ui 1.1.377 → 1.1.379

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 (35) hide show
  1. package/esm2020/lib/test-case-details/ai-agent-step/ai-agent-step.component.mjs +12 -3
  2. package/esm2020/lib/test-case-details/ai-verify-step/ai-verify-step.component.mjs +12 -3
  3. package/esm2020/lib/test-case-details/api-step/api-step.component.mjs +12 -3
  4. package/esm2020/lib/test-case-details/condition-step/condition-step.component.mjs +14 -5
  5. package/esm2020/lib/test-case-details/custom-code-step/custom-code-step.component.mjs +12 -3
  6. package/esm2020/lib/test-case-details/database-step/database-step.component.mjs +12 -3
  7. package/esm2020/lib/test-case-details/loop-step/loop-step.component.mjs +9 -3
  8. package/esm2020/lib/test-case-details/normal-step/normal-step.component.mjs +12 -3
  9. package/esm2020/lib/test-case-details/restore-session-step/restore-session-step.component.mjs +12 -3
  10. package/esm2020/lib/test-case-details/screenshot-step/screenshot-step.component.mjs +12 -3
  11. package/esm2020/lib/test-case-details/scroll-step/scroll-step.component.mjs +12 -3
  12. package/esm2020/lib/test-case-details/step-group/step-group.component.mjs +9 -3
  13. package/esm2020/lib/test-case-details/test-case-step.models.mjs +1 -1
  14. package/esm2020/lib/test-case-details/upload-step/upload-step.component.mjs +12 -3
  15. package/esm2020/lib/test-case-details/verify-url-step/verify-url-step.component.mjs +12 -3
  16. package/fesm2015/cqa-lib-cqa-ui.mjs +163 -30
  17. package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
  18. package/fesm2020/cqa-lib-cqa-ui.mjs +150 -30
  19. package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
  20. package/lib/test-case-details/ai-agent-step/ai-agent-step.component.d.ts +3 -1
  21. package/lib/test-case-details/ai-verify-step/ai-verify-step.component.d.ts +3 -1
  22. package/lib/test-case-details/api-step/api-step.component.d.ts +3 -1
  23. package/lib/test-case-details/condition-step/condition-step.component.d.ts +2 -1
  24. package/lib/test-case-details/custom-code-step/custom-code-step.component.d.ts +3 -1
  25. package/lib/test-case-details/database-step/database-step.component.d.ts +3 -1
  26. package/lib/test-case-details/loop-step/loop-step.component.d.ts +1 -0
  27. package/lib/test-case-details/normal-step/normal-step.component.d.ts +3 -1
  28. package/lib/test-case-details/restore-session-step/restore-session-step.component.d.ts +3 -1
  29. package/lib/test-case-details/screenshot-step/screenshot-step.component.d.ts +3 -1
  30. package/lib/test-case-details/scroll-step/scroll-step.component.d.ts +3 -1
  31. package/lib/test-case-details/step-group/step-group.component.d.ts +1 -0
  32. package/lib/test-case-details/test-case-step.models.d.ts +2 -0
  33. package/lib/test-case-details/upload-step/upload-step.component.d.ts +3 -1
  34. package/lib/test-case-details/verify-url-step/verify-url-step.component.d.ts +3 -1
  35. package/package.json +1 -1
@@ -64,4 +64,4 @@ export function isRestoreSessionStepConfig(step) {
64
64
  export function isCustomCodeStepConfig(step) {
65
65
  return step != null && 'stepType' in step && step.stepType === StepTypes.CUSTOM_CODE;
66
66
  }
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1jYXNlLXN0ZXAubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi90ZXN0LWNhc2UtZGV0YWlscy90ZXN0LWNhc2Utc3RlcC5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFLSCxNQUFNLENBQU4sSUFBWSxTQWtCWDtBQWxCRCxXQUFZLFNBQVM7SUFDbkIsOEJBQWlCLENBQUE7SUFDakIsd0JBQVcsQ0FBQTtJQUNYLGtDQUFxQixDQUFBO0lBQ3JCLGtDQUFxQixDQUFBO0lBQ3JCLG9DQUF1QixDQUFBO0lBQ3ZCLDhCQUFpQixDQUFBO0lBQ2pCLHNDQUF5QixDQUFBO0lBQ3pCLHNDQUF5QixDQUFBO0lBQ3pCLGdEQUFtQyxDQUFBO0lBQ25DLHdDQUEyQixDQUFBO0lBQzNCLGtDQUFxQixDQUFBO0lBQ3JCLHNDQUF5QixDQUFBO0lBQ3pCLHNDQUF5QixDQUFBO0lBQ3pCLDRDQUErQixDQUFBO0lBQy9CLDBDQUE2QixDQUFBO0lBQzdCLHNDQUF3QixDQUFBO0lBQ3hCLDhCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFsQlcsU0FBUyxLQUFULFNBQVMsUUFrQnBCO0FBNExELGlGQUFpRjtBQUNqRixNQUFNLFVBQVUsa0JBQWtCLENBQUMsSUFBd0I7SUFDekQsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLFdBQVcsSUFBSSxJQUFJLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQztBQUNyRSxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLElBQXdCO0lBQ3ZELE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxVQUFVLElBQUksSUFBSSxDQUFDO0FBQzVDLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsSUFBd0I7SUFDNUQsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLFdBQVcsSUFBSSxJQUFJLElBQUksVUFBVSxJQUFJLElBQUksQ0FBQztBQUNuRSxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBQXdCO0lBQ3hELE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxXQUFXLElBQUksSUFBSSxDQUFDO0FBQzdDLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQXdCO0lBQ3RELE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxVQUFVLElBQUksSUFBSSxJQUFLLElBQXNCLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxHQUFHLENBQUM7QUFDbEcsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxJQUF3QjtJQUMzRCxPQUFPLElBQUksSUFBSSxJQUFJLElBQUksVUFBVSxJQUFJLElBQUksSUFBSyxJQUEyQixDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsUUFBUSxDQUFDO0FBQzVHLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsSUFBd0I7SUFDMUQsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUssSUFBMEIsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLFFBQVEsQ0FBQztBQUMzRyxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQXdCO0lBQzNELE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxVQUFVLElBQUksSUFBSSxJQUFLLElBQTJCLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUM7QUFDN0csQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUF3QjtJQUN6RCxPQUFPLElBQUksSUFBSSxJQUFJLElBQUksVUFBVSxJQUFJLElBQUksSUFBSyxJQUF5QixDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDO0FBQ3hHLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsSUFBd0I7SUFDN0QsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUssSUFBNkIsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLFVBQVUsQ0FBQztBQUNoSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLElBQXdCO0lBQ3pELE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxVQUFVLElBQUksSUFBSSxJQUFLLElBQXlCLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUM7QUFDeEcsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxJQUF3QjtJQUM1RCxPQUFPLElBQUksSUFBSSxJQUFJLElBQUksVUFBVSxJQUFJLElBQUksSUFBSyxJQUE0QixDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsVUFBVSxDQUFDO0FBQy9HLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsSUFBd0I7SUFDakUsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUssSUFBaUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLGVBQWUsQ0FBQztBQUN6SCxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLElBQXdCO0lBQzdELE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxVQUFVLElBQUksSUFBSSxJQUFLLElBQTZCLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxXQUFXLENBQUM7QUFDakgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTW9kZWxzIGFuZCBpbnRlcmZhY2VzIGZvciB0ZXN0IGNhc2UgZGV0YWlscyBzdGVwIGNvbXBvbmVudHNcbiAqL1xuXG5leHBvcnQgdHlwZSBUZXN0Q2FzZUV2ZW50VHlwZSA9ICduYXZpZ2F0ZScgfCAnY3VzdG9tJyB8ICdhaS1hZ2VudCcgfCAndHlwZScgfCAnY2xpY2snIHwgJ2RvdWJsZUNsaWNrJyB8ICdwcmVzc0VudGVyJyB8ICdlbnRlcicgfCAndmVyaWZ5JyB8ICd3YWl0JztcblxuXG5leHBvcnQgZW51bSBTdGVwVHlwZXMge1xuICBOT1JNQUwgPSAnTk9STUFMJyxcbiAgQVBJID0gJ0FQSScsXG4gIERBVEFCQVNFID0gJ0RBVEFCQVNFJyxcbiAgQUlfQUdFTlQgPSAnQUlfQUdFTlQnLFxuICBBSV9WRVJJRlkgPSAnQUlfVkVSSUZZJyxcbiAgVVBMT0FEID0gJ1VQTE9BRCcsXG4gIFNDUkVFTlNIT1QgPSAnU0NSRUVOU0hPVCcsXG4gIFZFUklGWV9VUkwgPSAnVkVSSUZZX1VSTCcsXG4gIFJFU1RPUkVfU0VTU0lPTiA9ICdSRVNUT1JFX1NFU1NJT04nLFxuICBDVVNUT01fQ09ERSA9ICdDVVNUT01fQ09ERScsXG4gIEZPUl9MT09QID0gJ0ZPUl9MT09QJyxcbiAgV0hJTEVfTE9PUCA9ICdXSElMRV9MT09QJyxcbiAgQlJFQUtfTE9PUCA9ICdCUkVBS19MT09QJyxcbiAgQ09OVElOVUVfTE9PUCA9ICdDT05USU5VRV9MT09QJyxcbiAgQ09ORElUSU9OX0lGID0gJ0NPTkRJVElPTl9JRicsXG4gIFNURVBfR1JPVVA9ICdTVEVQX0dST1VQJyxcbiAgU0NST0xMID0gJ1NDUk9MTCdcbn1cblxuLy8gZXhwb3J0IHR5cGUgU3RlcFR5cGUgPSBTdGVwVHlwZXMuTk9STUFMIHwgU3RlcFR5cGVzLkFQSSB8IFN0ZXBUeXBlcy5EQVRBQkFTRSB8IFN0ZXBUeXBlcy5BSV9BR0VOVCB8IFN0ZXBUeXBlcy5VUExPQUQgfCBTdGVwVHlwZXMuU0NSRUVOU0hPVCB8IFN0ZXBUeXBlcy5DVVNUT01fQ09ERSB8IFN0ZXBUeXBlcy5GT1JfTE9PUCB8IFN0ZXBUeXBlcy5XSElMRV9MT09QIHwgU3RlcFR5cGVzLkJSRUFLX0xPT1AgfCBTdGVwVHlwZXMuQ09OVElOVUVfTE9PUDtcblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFR5cGVDb25maWcge1xuICB0eXBlOiBUZXN0Q2FzZUV2ZW50VHlwZTtcbiAgbGFiZWw6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgY29sb3I6IHN0cmluZztcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcFBhcmFtZXRlciB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgZGlzcGxheVZhbHVlPzogc3RyaW5nOyAvLyBGb3IgZGlzcGxheSBwdXJwb3NlcyAoZS5nLiwgd2l0aCBxdW90ZXMpXG59XG5cbi8qKiBCYXNlIGludGVyZmFjZSBjb250YWluaW5nIGNvbW1vbiBwcm9wZXJ0aWVzIGZvciBhbGwgc3RlcCBjb25maWd1cmF0aW9ucyAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlU3RlcENvbmZpZyB7XG4gIGlkOiBzdHJpbmc7XG4gIGFjdGlvbj86IHN0cmluZztcbiAgc3RlcE51bWJlcjogbnVtYmVyIHwgc3RyaW5nO1xuICBzdGVwVHlwZTogU3RlcFR5cGVzO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgZXZlbnQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqIENyZWF0aW9uIHRpbWVzdGFtcCBmcm9tIEFQSSAobWlsbGlzZWNvbmRzIHNpbmNlIGVwb2NoKSAqL1xuICBjcmVhdGVkRGF0ZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb3JtYWxTdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICBzdGVwVHlwZTogU3RlcFR5cGVzLk5PUk1BTDtcbiAgZXZlbnRUeXBlOiBUZXN0Q2FzZUV2ZW50VHlwZTtcbiAgcGFyYW1ldGVyczogU3RlcFBhcmFtZXRlcltdO1xuICBlbGVtZW50RGF0YT86IHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBzZWxlY3Rvcj86IHN0cmluZztcbiAgICBwd0xvY2F0b3I/OiBzdHJpbmdbXTtcbiAgICBsYWJlbHM/OiBzdHJpbmdbXTtcbiAgfTtcbn1cblxuLyoqIEFQSSBTdGVwIENvbmZpZ3VyYXRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBpU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgc3RlcFR5cGU6IFN0ZXBUeXBlcy5BUEk7XG4gIG1ldGhvZDogJ0dFVCcgfCAnUE9TVCcgfCAnUFVUJyB8ICdERUxFVEUnIHwgJ1BBVENIJztcbiAgZW5kcG9pbnQ6IHN0cmluZztcbiAgYmFzZVVybD86IHN0cmluZztcbiAgcmVxdWVzdEJvZHk/OiBzdHJpbmc7XG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBoZWFkZXJzQ291bnQ/OiBudW1iZXI7XG4gIGhhc0JvZHk/OiBib29sZWFuO1xuICBzYXZlVG8/OiBzdHJpbmc7XG4gIGV4cGVjdGVkU3RhdHVzPzogbnVtYmVyO1xufVxuXG4vKiogRGF0YWJhc2UgU3RlcCBDb25maWd1cmF0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgc3RlcFR5cGU6IFN0ZXBUeXBlcy5EQVRBQkFTRTtcbiAgcXVlcnk6IHN0cmluZztcbiAgZGF0YWJhc2VUeXBlPzogJ215c3FsJyB8ICdwb3N0Z3Jlc3FsJyB8ICdtb25nb2RiJyB8ICdtc3NxbCcgfCAnb3JhY2xlJztcbiAgY29ubmVjdGlvbk5hbWU/OiBzdHJpbmc7XG4gIHNhdmVUbz86IHN0cmluZztcbn1cblxuLyoqIEFJIEFnZW50IFN0ZXAgQ29uZmlndXJhdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBaUFnZW50U3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgc3RlcFR5cGU6IFN0ZXBUeXBlcy5BSV9BR0VOVDtcbiAgaW5zdHJ1Y3Rpb25zOiBzdHJpbmc7XG59XG5cbi8qKiBBSSBWZXJpZnkgU3RlcCBDb25maWd1cmF0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIEFpVmVyaWZ5U3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgc3RlcFR5cGU6IFN0ZXBUeXBlcy5BSV9WRVJJRlk7XG4gIGluc3RydWN0aW9uczogc3RyaW5nO1xufVxuXG4vKiogVXBsb2FkIFN0ZXAgQ29uZmlndXJhdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRTdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICBzdGVwVHlwZTogU3RlcFR5cGVzLlVQTE9BRDtcbiAgc2VsZWN0b3I6IHN0cmluZztcbiAgZmlsZU5hbWU6IHN0cmluZztcbiAgc291cmNlOiAnRGF0YSBMaWJyYXJ5JyB8ICdMb2NhbCcgfCAnVVJMJztcbiAgc291cmNlUGF0aDogc3RyaW5nO1xufVxuXG4vKiogU2NyZWVuc2hvdCBTdGVwIENvbmZpZ3VyYXRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NyZWVuc2hvdFN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHN0ZXBUeXBlOiBTdGVwVHlwZXMuU0NSRUVOU0hPVDtcbiAgbmFtZT86IHN0cmluZztcbiAgZnVsbFBhZ2U/OiBib29sZWFuO1xuICBzZWxlY3Rvcj86IHN0cmluZztcbn1cblxuLyoqIFNjcm9sbCBTdGVwIENvbmZpZ3VyYXRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2Nyb2xsU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgc3RlcFR5cGU6IFN0ZXBUeXBlcy5TQ1JPTEw7XG4gIHNlbGVjdG9yOiBzdHJpbmc7XG4gIGRpcmVjdGlvbj86ICd0b3AnIHwgJ2JvdHRvbScgfCAndXAnIHwgJ2Rvd24nIHwgJ2xlZnQnIHwgJ3JpZ2h0JztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbi8qKiBWZXJpZnkgVVJMIFN0ZXAgQ29uZmlndXJhdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWZXJpZnlVcmxTdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICBzdGVwVHlwZTogU3RlcFR5cGVzLlZFUklGWV9VUkw7XG4gIGFjdGlvbj86IHN0cmluZzsgLy8gZS5nLiwgXCJWZXJpZnkgdGhhdCB0aGUgVVJMIG9mIGN1cnJlbnQgcGFnZSBpc1wiXG4gIHVybD86IHN0cmluZzsgLy8gVGhlIFVSTCB0byB2ZXJpZnlcbn1cblxuLyoqIFJlc3RvcmUgU2Vzc2lvbiBTdGVwIENvbmZpZ3VyYXRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdG9yZVNlc3Npb25TdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICBzdGVwVHlwZTogU3RlcFR5cGVzLlJFU1RPUkVfU0VTU0lPTjtcbiAgYWN0aW9uPzogc3RyaW5nOyAvLyBBY3Rpb24gdGV4dC9IVE1MIGZvciB0aGUgcmVzdG9yZSBzZXNzaW9uIHN0ZXBcbn1cblxuLyoqIEN1c3RvbSBDb2RlIFN0ZXAgQ29uZmlndXJhdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDdXN0b21Db2RlU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgc3RlcFR5cGU6IFN0ZXBUeXBlcy5DVVNUT01fQ09ERTtcbiAgbGFuZ3VhZ2U6ICdqYXZhc2NyaXB0JyB8ICdweXRob24nIHwgJ3R5cGVzY3JpcHQnO1xuICBjb2RlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9vcFN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIGxvb3BUeXBlOiAnZm9yJyB8ICd3aGlsZSc7XG4gIHN0ZXBUeXBlOiBTdGVwVHlwZXMuRk9SX0xPT1AgfCBTdGVwVHlwZXMuV0hJTEVfTE9PUDtcbiAgY29uZGl0aW9uPzogc3RyaW5nOyAvLyBGb3Igd2hpbGUgbG9vcDogXCJXaGlsZSBlbGVtZW50IFxcXCIubm90aWZpY2F0aW9uLWJhZGdlXFxcIiBleGlzdHMgKG1heCA1IGl0ZXJhdGlvbnMpXCJcbiAgbWF4SXRlcmF0aW9ucz86IG51bWJlcjsgLy8gRm9yIHdoaWxlIGxvb3BcbiAgdGVzdERhdGFQcm9maWxlPzogc3RyaW5nOyAvLyBGb3IgZm9yIGxvb3BcbiAgc3RhcnRTdGVwPzogbnVtYmVyO1xuICBlbmRTdGVwPzogbnVtYmVyO1xuICAvKiogRk9SIGxvb3A6IEFQSSB2YWx1ZXMgZm9yIGRpc3BsYXkgKFN0YXJ0L0VuZCBsYWJlbHMgYW5kIFRlc3QgRGF0YSBwcm9maWxlIGlkKSAqL1xuICBmb3JMb29wU3RhcnRJbmRleD86IG51bWJlcjtcbiAgZm9yTG9vcEVuZEluZGV4PzogbnVtYmVyO1xuICBmb3JMb29wVGVzdERhdGFJZD86IG51bWJlcjtcbiAgLyoqIEZPUiBsb29wOiBvcHRpb25hbCBIVE1MIHN0cmluZyBmb3IgZGlzcGxheSAoZS5nLiB3aXRoIHRlc3RfZGF0YSBiYWRnZXMpLiBXaGVuIHNldCwgdXNlZCBpbnN0ZWFkIG9mIGJ1aWxkaW5nIGZyb20gdmFsdWVzLiAqL1xuICBmb3JMb29wRGlzcGxheUh0bWw/OiBzdHJpbmc7XG4gIG5lc3RlZFN0ZXBzOiBUZXN0Q2FzZVN0ZXBDb25maWdbXTtcbiAgY2hpbGRJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb25CcmFuY2gge1xuICBpZD86IG51bWJlcjsgLy8gQnJhbmNoIHN0ZXAgaWQgKElGL0VMU0UgSUYvRUxTRSByb3cpIGZvciBBUEkgcGFyZW50SWQgd2hlbiBhZGRpbmcgc3RlcHNcbiAgdHlwZTogJ2lmJyB8ICdlbHNlJyB8ICdlbHNlLWlmJztcbiAgc3RlcFR5cGU6IFN0ZXBUeXBlcy5DT05ESVRJT05fSUY7XG4gIGxhYmVsOiBzdHJpbmc7IC8vIGUuZy4sIFwiSUYgVFJVRVwiLCBcIkVMU0VcIlxuICBhY3Rpb24/OiBzdHJpbmc7IC8vIEFjdGlvbiB0ZXh0L0hUTUwgZm9yIHRoZSBicmFuY2ggKGUuZy4sIFwiQ2hlY2sgdGhlIHRleHQgJ0tpc2hhbicgaXMgcHJlc2VudCBvbiB0aGUgY3VycmVudCBwYWdlXCIpXG4gIC8qKiBFdmVudCBrZXktdmFsdWUgcGFpcnMgZm9yIGRpc3BsYXkgYmFkZ2VzIChlLmcuIHNlbGVjdG9yLCBlbGVtZW50KSAtIHNhbWUgYXMgY29uZmlnLmV2ZW50ICovXG4gIGV2ZW50PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8qKiBDcmVhdGlvbiB0aW1lc3RhbXAgZnJvbSBBUEkgKG1pbGxpc2Vjb25kcyBzaW5jZSBlcG9jaCkgLSBmb3IgYnJhbmNoIGhlYWRlciBkYXRlIGRpc3BsYXkgKi9cbiAgY3JlYXRlZERhdGU/OiBudW1iZXI7XG4gIG5lc3RlZFN0ZXBzOiBUZXN0Q2FzZVN0ZXBDb25maWdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb25TdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICBjb25kaXRpb246IHN0cmluZzsgLy8gZS5nLiwgXCJJZiBlbGVtZW50IGAuc3VjY2Vzcy1tZXNzYWdlYCBpcyB2aXNpYmxlXCJcbiAgYnJhbmNoZXM6IENvbmRpdGlvbkJyYW5jaFtdO1xuICBuZXN0ZWRTdGVwczogVGVzdENhc2VTdGVwQ29uZmlnW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcEdyb3VwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICBzdGVwR3JvdXBJZDogbnVtYmVyO1xuICBncm91cE5hbWU6IHN0cmluZzsgLy8gZS5nLiwgXCJDaGVja291dCBGbG93XCJcbiAgcmV1c2FibGU/OiBib29sZWFuOyAvLyBXaGV0aGVyIHRoZSBncm91cCBpcyByZXVzYWJsZVxuICBzdGVwVHlwZTogU3RlcFR5cGVzLlNURVBfR1JPVVBcbiAgbmVzdGVkU3RlcHM6IFRlc3RDYXNlU3RlcENvbmZpZ1tdO1xuICBsb2FkaW5nPzogYm9vbGVhbjsgLy8gTG9hZGluZyBzdGF0ZSB3aGVuIGZldGNoaW5nIG5lc3RlZCBzdGVwc1xufVxuXG4vLyBVbmlvbiB0eXBlIGZvciBhbGwgdGVzdCBjYXNlIHN0ZXAgY29uZmlndXJhdGlvbnMgKHN1cHBvcnRzIHJlY3Vyc2l2ZSBuZXN0aW5nKVxuZXhwb3J0IHR5cGUgVGVzdENhc2VTdGVwQ29uZmlnID1cbiAgfCBOb3JtYWxTdGVwQ29uZmlnXG4gIHwgTG9vcFN0ZXBDb25maWdcbiAgfCBDb25kaXRpb25TdGVwQ29uZmlnXG4gIHwgU3RlcEdyb3VwQ29uZmlnXG4gIHwgQXBpU3RlcENvbmZpZ1xuICB8IERhdGFiYXNlU3RlcENvbmZpZ1xuICB8IEFpQWdlbnRTdGVwQ29uZmlnXG4gIHwgQWlWZXJpZnlTdGVwQ29uZmlnXG4gIHwgVXBsb2FkU3RlcENvbmZpZ1xuICB8IFNjcmVlbnNob3RTdGVwQ29uZmlnXG4gIHwgU2Nyb2xsU3RlcENvbmZpZ1xuICB8IFZlcmlmeVVybFN0ZXBDb25maWdcbiAgfCBSZXN0b3JlU2Vzc2lvblN0ZXBDb25maWdcbiAgfCBDdXN0b21Db2RlU3RlcENvbmZpZztcblxuLyoqIFR5cGUgZ3VhcmRzIGZvciBkaXNwYXRjaGluZyBzdGVwIHR5cGUgKGUuZy4gaW4gdGVzdC1jYXNlLWRldGFpbHMtcmVuZGVyZXIpICovXG5leHBvcnQgZnVuY3Rpb24gaXNOb3JtYWxTdGVwQ29uZmlnKHN0ZXA6IFRlc3RDYXNlU3RlcENvbmZpZyk6IHN0ZXAgaXMgTm9ybWFsU3RlcENvbmZpZyB7XG4gIHJldHVybiBzdGVwICE9IG51bGwgJiYgJ2V2ZW50VHlwZScgaW4gc3RlcCAmJiAncGFyYW1ldGVycycgaW4gc3RlcDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTG9vcFN0ZXBDb25maWcoc3RlcDogVGVzdENhc2VTdGVwQ29uZmlnKTogc3RlcCBpcyBMb29wU3RlcENvbmZpZyB7XG4gIHJldHVybiBzdGVwICE9IG51bGwgJiYgJ2xvb3BUeXBlJyBpbiBzdGVwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb25kaXRpb25TdGVwQ29uZmlnKHN0ZXA6IFRlc3RDYXNlU3RlcENvbmZpZyk6IHN0ZXAgaXMgQ29uZGl0aW9uU3RlcENvbmZpZyB7XG4gIHJldHVybiBzdGVwICE9IG51bGwgJiYgJ2NvbmRpdGlvbicgaW4gc3RlcCAmJiAnYnJhbmNoZXMnIGluIHN0ZXA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0ZXBHcm91cENvbmZpZyhzdGVwOiBUZXN0Q2FzZVN0ZXBDb25maWcpOiBzdGVwIGlzIFN0ZXBHcm91cENvbmZpZyB7XG4gIHJldHVybiBzdGVwICE9IG51bGwgJiYgJ2dyb3VwTmFtZScgaW4gc3RlcDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXBpU3RlcENvbmZpZyhzdGVwOiBUZXN0Q2FzZVN0ZXBDb25maWcpOiBzdGVwIGlzIEFwaVN0ZXBDb25maWcge1xuICByZXR1cm4gc3RlcCAhPSBudWxsICYmICdzdGVwVHlwZScgaW4gc3RlcCAmJiAoc3RlcCBhcyBBcGlTdGVwQ29uZmlnKS5zdGVwVHlwZSA9PT0gU3RlcFR5cGVzLkFQSTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0YWJhc2VTdGVwQ29uZmlnKHN0ZXA6IFRlc3RDYXNlU3RlcENvbmZpZyk6IHN0ZXAgaXMgRGF0YWJhc2VTdGVwQ29uZmlnIHtcbiAgcmV0dXJuIHN0ZXAgIT0gbnVsbCAmJiAnc3RlcFR5cGUnIGluIHN0ZXAgJiYgKHN0ZXAgYXMgRGF0YWJhc2VTdGVwQ29uZmlnKS5zdGVwVHlwZSA9PT0gU3RlcFR5cGVzLkRBVEFCQVNFO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBaUFnZW50U3RlcENvbmZpZyhzdGVwOiBUZXN0Q2FzZVN0ZXBDb25maWcpOiBzdGVwIGlzIEFpQWdlbnRTdGVwQ29uZmlnIHtcbiAgcmV0dXJuIHN0ZXAgIT0gbnVsbCAmJiAnc3RlcFR5cGUnIGluIHN0ZXAgJiYgKHN0ZXAgYXMgQWlBZ2VudFN0ZXBDb25maWcpLnN0ZXBUeXBlID09PSBTdGVwVHlwZXMuQUlfQUdFTlQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FpVmVyaWZ5U3RlcENvbmZpZyhzdGVwOiBUZXN0Q2FzZVN0ZXBDb25maWcpOiBzdGVwIGlzIEFpVmVyaWZ5U3RlcENvbmZpZyB7XG4gIHJldHVybiBzdGVwICE9IG51bGwgJiYgJ3N0ZXBUeXBlJyBpbiBzdGVwICYmIChzdGVwIGFzIEFpVmVyaWZ5U3RlcENvbmZpZykuc3RlcFR5cGUgPT09IFN0ZXBUeXBlcy5BSV9WRVJJRlk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1VwbG9hZFN0ZXBDb25maWcoc3RlcDogVGVzdENhc2VTdGVwQ29uZmlnKTogc3RlcCBpcyBVcGxvYWRTdGVwQ29uZmlnIHtcbiAgcmV0dXJuIHN0ZXAgIT0gbnVsbCAmJiAnc3RlcFR5cGUnIGluIHN0ZXAgJiYgKHN0ZXAgYXMgVXBsb2FkU3RlcENvbmZpZykuc3RlcFR5cGUgPT09IFN0ZXBUeXBlcy5VUExPQUQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NjcmVlbnNob3RTdGVwQ29uZmlnKHN0ZXA6IFRlc3RDYXNlU3RlcENvbmZpZyk6IHN0ZXAgaXMgU2NyZWVuc2hvdFN0ZXBDb25maWcge1xuICByZXR1cm4gc3RlcCAhPSBudWxsICYmICdzdGVwVHlwZScgaW4gc3RlcCAmJiAoc3RlcCBhcyBTY3JlZW5zaG90U3RlcENvbmZpZykuc3RlcFR5cGUgPT09IFN0ZXBUeXBlcy5TQ1JFRU5TSE9UO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTY3JvbGxTdGVwQ29uZmlnKHN0ZXA6IFRlc3RDYXNlU3RlcENvbmZpZyk6IHN0ZXAgaXMgU2Nyb2xsU3RlcENvbmZpZyB7XG4gIHJldHVybiBzdGVwICE9IG51bGwgJiYgJ3N0ZXBUeXBlJyBpbiBzdGVwICYmIChzdGVwIGFzIFNjcm9sbFN0ZXBDb25maWcpLnN0ZXBUeXBlID09PSBTdGVwVHlwZXMuU0NST0xMO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNWZXJpZnlVcmxTdGVwQ29uZmlnKHN0ZXA6IFRlc3RDYXNlU3RlcENvbmZpZyk6IHN0ZXAgaXMgVmVyaWZ5VXJsU3RlcENvbmZpZyB7XG4gIHJldHVybiBzdGVwICE9IG51bGwgJiYgJ3N0ZXBUeXBlJyBpbiBzdGVwICYmIChzdGVwIGFzIFZlcmlmeVVybFN0ZXBDb25maWcpLnN0ZXBUeXBlID09PSBTdGVwVHlwZXMuVkVSSUZZX1VSTDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzdG9yZVNlc3Npb25TdGVwQ29uZmlnKHN0ZXA6IFRlc3RDYXNlU3RlcENvbmZpZyk6IHN0ZXAgaXMgUmVzdG9yZVNlc3Npb25TdGVwQ29uZmlnIHtcbiAgcmV0dXJuIHN0ZXAgIT0gbnVsbCAmJiAnc3RlcFR5cGUnIGluIHN0ZXAgJiYgKHN0ZXAgYXMgUmVzdG9yZVNlc3Npb25TdGVwQ29uZmlnKS5zdGVwVHlwZSA9PT0gU3RlcFR5cGVzLlJFU1RPUkVfU0VTU0lPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ3VzdG9tQ29kZVN0ZXBDb25maWcoc3RlcDogVGVzdENhc2VTdGVwQ29uZmlnKTogc3RlcCBpcyBDdXN0b21Db2RlU3RlcENvbmZpZyB7XG4gIHJldHVybiBzdGVwICE9IG51bGwgJiYgJ3N0ZXBUeXBlJyBpbiBzdGVwICYmIChzdGVwIGFzIEN1c3RvbUNvZGVTdGVwQ29uZmlnKS5zdGVwVHlwZSA9PT0gU3RlcFR5cGVzLkNVU1RPTV9DT0RFO1xufVxuIl19
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1jYXNlLXN0ZXAubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi90ZXN0LWNhc2UtZGV0YWlscy90ZXN0LWNhc2Utc3RlcC5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFLSCxNQUFNLENBQU4sSUFBWSxTQWtCWDtBQWxCRCxXQUFZLFNBQVM7SUFDbkIsOEJBQWlCLENBQUE7SUFDakIsd0JBQVcsQ0FBQTtJQUNYLGtDQUFxQixDQUFBO0lBQ3JCLGtDQUFxQixDQUFBO0lBQ3JCLG9DQUF1QixDQUFBO0lBQ3ZCLDhCQUFpQixDQUFBO0lBQ2pCLHNDQUF5QixDQUFBO0lBQ3pCLHNDQUF5QixDQUFBO0lBQ3pCLGdEQUFtQyxDQUFBO0lBQ25DLHdDQUEyQixDQUFBO0lBQzNCLGtDQUFxQixDQUFBO0lBQ3JCLHNDQUF5QixDQUFBO0lBQ3pCLHNDQUF5QixDQUFBO0lBQ3pCLDRDQUErQixDQUFBO0lBQy9CLDBDQUE2QixDQUFBO0lBQzdCLHNDQUF3QixDQUFBO0lBQ3hCLDhCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFsQlcsU0FBUyxLQUFULFNBQVMsUUFrQnBCO0FBOExELGlGQUFpRjtBQUNqRixNQUFNLFVBQVUsa0JBQWtCLENBQUMsSUFBd0I7SUFDekQsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLFdBQVcsSUFBSSxJQUFJLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQztBQUNyRSxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLElBQXdCO0lBQ3ZELE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxVQUFVLElBQUksSUFBSSxDQUFDO0FBQzVDLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsSUFBd0I7SUFDNUQsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLFdBQVcsSUFBSSxJQUFJLElBQUksVUFBVSxJQUFJLElBQUksQ0FBQztBQUNuRSxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBQXdCO0lBQ3hELE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxXQUFXLElBQUksSUFBSSxDQUFDO0FBQzdDLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQXdCO0lBQ3RELE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxVQUFVLElBQUksSUFBSSxJQUFLLElBQXNCLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxHQUFHLENBQUM7QUFDbEcsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxJQUF3QjtJQUMzRCxPQUFPLElBQUksSUFBSSxJQUFJLElBQUksVUFBVSxJQUFJLElBQUksSUFBSyxJQUEyQixDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsUUFBUSxDQUFDO0FBQzVHLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsSUFBd0I7SUFDMUQsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUssSUFBMEIsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLFFBQVEsQ0FBQztBQUMzRyxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQXdCO0lBQzNELE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxVQUFVLElBQUksSUFBSSxJQUFLLElBQTJCLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUM7QUFDN0csQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUF3QjtJQUN6RCxPQUFPLElBQUksSUFBSSxJQUFJLElBQUksVUFBVSxJQUFJLElBQUksSUFBSyxJQUF5QixDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDO0FBQ3hHLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsSUFBd0I7SUFDN0QsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUssSUFBNkIsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLFVBQVUsQ0FBQztBQUNoSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLElBQXdCO0lBQ3pELE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxVQUFVLElBQUksSUFBSSxJQUFLLElBQXlCLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUM7QUFDeEcsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxJQUF3QjtJQUM1RCxPQUFPLElBQUksSUFBSSxJQUFJLElBQUksVUFBVSxJQUFJLElBQUksSUFBSyxJQUE0QixDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsVUFBVSxDQUFDO0FBQy9HLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsSUFBd0I7SUFDakUsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUssSUFBaUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLGVBQWUsQ0FBQztBQUN6SCxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLElBQXdCO0lBQzdELE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxVQUFVLElBQUksSUFBSSxJQUFLLElBQTZCLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxXQUFXLENBQUM7QUFDakgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTW9kZWxzIGFuZCBpbnRlcmZhY2VzIGZvciB0ZXN0IGNhc2UgZGV0YWlscyBzdGVwIGNvbXBvbmVudHNcbiAqL1xuXG5leHBvcnQgdHlwZSBUZXN0Q2FzZUV2ZW50VHlwZSA9ICduYXZpZ2F0ZScgfCAnY3VzdG9tJyB8ICdhaS1hZ2VudCcgfCAndHlwZScgfCAnY2xpY2snIHwgJ2RvdWJsZUNsaWNrJyB8ICdwcmVzc0VudGVyJyB8ICdlbnRlcicgfCAndmVyaWZ5JyB8ICd3YWl0JztcblxuXG5leHBvcnQgZW51bSBTdGVwVHlwZXMge1xuICBOT1JNQUwgPSAnTk9STUFMJyxcbiAgQVBJID0gJ0FQSScsXG4gIERBVEFCQVNFID0gJ0RBVEFCQVNFJyxcbiAgQUlfQUdFTlQgPSAnQUlfQUdFTlQnLFxuICBBSV9WRVJJRlkgPSAnQUlfVkVSSUZZJyxcbiAgVVBMT0FEID0gJ1VQTE9BRCcsXG4gIFNDUkVFTlNIT1QgPSAnU0NSRUVOU0hPVCcsXG4gIFZFUklGWV9VUkwgPSAnVkVSSUZZX1VSTCcsXG4gIFJFU1RPUkVfU0VTU0lPTiA9ICdSRVNUT1JFX1NFU1NJT04nLFxuICBDVVNUT01fQ09ERSA9ICdDVVNUT01fQ09ERScsXG4gIEZPUl9MT09QID0gJ0ZPUl9MT09QJyxcbiAgV0hJTEVfTE9PUCA9ICdXSElMRV9MT09QJyxcbiAgQlJFQUtfTE9PUCA9ICdCUkVBS19MT09QJyxcbiAgQ09OVElOVUVfTE9PUCA9ICdDT05USU5VRV9MT09QJyxcbiAgQ09ORElUSU9OX0lGID0gJ0NPTkRJVElPTl9JRicsXG4gIFNURVBfR1JPVVA9ICdTVEVQX0dST1VQJyxcbiAgU0NST0xMID0gJ1NDUk9MTCdcbn1cblxuLy8gZXhwb3J0IHR5cGUgU3RlcFR5cGUgPSBTdGVwVHlwZXMuTk9STUFMIHwgU3RlcFR5cGVzLkFQSSB8IFN0ZXBUeXBlcy5EQVRBQkFTRSB8IFN0ZXBUeXBlcy5BSV9BR0VOVCB8IFN0ZXBUeXBlcy5VUExPQUQgfCBTdGVwVHlwZXMuU0NSRUVOU0hPVCB8IFN0ZXBUeXBlcy5DVVNUT01fQ09ERSB8IFN0ZXBUeXBlcy5GT1JfTE9PUCB8IFN0ZXBUeXBlcy5XSElMRV9MT09QIHwgU3RlcFR5cGVzLkJSRUFLX0xPT1AgfCBTdGVwVHlwZXMuQ09OVElOVUVfTE9PUDtcblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFR5cGVDb25maWcge1xuICB0eXBlOiBUZXN0Q2FzZUV2ZW50VHlwZTtcbiAgbGFiZWw6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgY29sb3I6IHN0cmluZztcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcFBhcmFtZXRlciB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgZGlzcGxheVZhbHVlPzogc3RyaW5nOyAvLyBGb3IgZGlzcGxheSBwdXJwb3NlcyAoZS5nLiwgd2l0aCBxdW90ZXMpXG59XG5cbi8qKiBCYXNlIGludGVyZmFjZSBjb250YWluaW5nIGNvbW1vbiBwcm9wZXJ0aWVzIGZvciBhbGwgc3RlcCBjb25maWd1cmF0aW9ucyAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlU3RlcENvbmZpZyB7XG4gIGlkOiBzdHJpbmc7XG4gIGFjdGlvbj86IHN0cmluZztcbiAgc3RlcE51bWJlcjogbnVtYmVyIHwgc3RyaW5nO1xuICBzdGVwVHlwZTogU3RlcFR5cGVzO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgZXZlbnQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqIENyZWF0aW9uIHRpbWVzdGFtcCBmcm9tIEFQSSAobWlsbGlzZWNvbmRzIHNpbmNlIGVwb2NoKSAqL1xuICBjcmVhdGVkRGF0ZT86IG51bWJlcjtcbiAgLyoqIFdoZW4gdHJ1ZSwgdGhpcyBzdGVwIGlzIG1hcmtlZCB0byBiZSBza2lwcGVkIGR1cmluZyBleGVjdXRpb24gKi9cbiAgc2hvdWxkU2tpcD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9ybWFsU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgc3RlcFR5cGU6IFN0ZXBUeXBlcy5OT1JNQUw7XG4gIGV2ZW50VHlwZTogVGVzdENhc2VFdmVudFR5cGU7XG4gIHBhcmFtZXRlcnM6IFN0ZXBQYXJhbWV0ZXJbXTtcbiAgZWxlbWVudERhdGE/OiB7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgc2VsZWN0b3I/OiBzdHJpbmc7XG4gICAgcHdMb2NhdG9yPzogc3RyaW5nW107XG4gICAgbGFiZWxzPzogc3RyaW5nW107XG4gIH07XG59XG5cbi8qKiBBUEkgU3RlcCBDb25maWd1cmF0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaVN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHN0ZXBUeXBlOiBTdGVwVHlwZXMuQVBJO1xuICBtZXRob2Q6ICdHRVQnIHwgJ1BPU1QnIHwgJ1BVVCcgfCAnREVMRVRFJyB8ICdQQVRDSCc7XG4gIGVuZHBvaW50OiBzdHJpbmc7XG4gIGJhc2VVcmw/OiBzdHJpbmc7XG4gIHJlcXVlc3RCb2R5Pzogc3RyaW5nO1xuICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgaGVhZGVyc0NvdW50PzogbnVtYmVyO1xuICBoYXNCb2R5PzogYm9vbGVhbjtcbiAgc2F2ZVRvPzogc3RyaW5nO1xuICBleHBlY3RlZFN0YXR1cz86IG51bWJlcjtcbn1cblxuLyoqIERhdGFiYXNlIFN0ZXAgQ29uZmlndXJhdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZVN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHN0ZXBUeXBlOiBTdGVwVHlwZXMuREFUQUJBU0U7XG4gIHF1ZXJ5OiBzdHJpbmc7XG4gIGRhdGFiYXNlVHlwZT86ICdteXNxbCcgfCAncG9zdGdyZXNxbCcgfCAnbW9uZ29kYicgfCAnbXNzcWwnIHwgJ29yYWNsZSc7XG4gIGNvbm5lY3Rpb25OYW1lPzogc3RyaW5nO1xuICBzYXZlVG8/OiBzdHJpbmc7XG59XG5cbi8qKiBBSSBBZ2VudCBTdGVwIENvbmZpZ3VyYXRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWlBZ2VudFN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHN0ZXBUeXBlOiBTdGVwVHlwZXMuQUlfQUdFTlQ7XG4gIGluc3RydWN0aW9uczogc3RyaW5nO1xufVxuXG4vKiogQUkgVmVyaWZ5IFN0ZXAgQ29uZmlndXJhdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBaVZlcmlmeVN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHN0ZXBUeXBlOiBTdGVwVHlwZXMuQUlfVkVSSUZZO1xuICBpbnN0cnVjdGlvbnM6IHN0cmluZztcbn1cblxuLyoqIFVwbG9hZCBTdGVwIENvbmZpZ3VyYXRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgc3RlcFR5cGU6IFN0ZXBUeXBlcy5VUExPQUQ7XG4gIHNlbGVjdG9yOiBzdHJpbmc7XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIHNvdXJjZTogJ0RhdGEgTGlicmFyeScgfCAnTG9jYWwnIHwgJ1VSTCc7XG4gIHNvdXJjZVBhdGg6IHN0cmluZztcbn1cblxuLyoqIFNjcmVlbnNob3QgU3RlcCBDb25maWd1cmF0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIFNjcmVlbnNob3RTdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICBzdGVwVHlwZTogU3RlcFR5cGVzLlNDUkVFTlNIT1Q7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGZ1bGxQYWdlPzogYm9vbGVhbjtcbiAgc2VsZWN0b3I/OiBzdHJpbmc7XG59XG5cbi8qKiBTY3JvbGwgU3RlcCBDb25maWd1cmF0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIFNjcm9sbFN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHN0ZXBUeXBlOiBTdGVwVHlwZXMuU0NST0xMO1xuICBzZWxlY3Rvcjogc3RyaW5nO1xuICBkaXJlY3Rpb24/OiAndG9wJyB8ICdib3R0b20nIHwgJ3VwJyB8ICdkb3duJyB8ICdsZWZ0JyB8ICdyaWdodCc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG4vKiogVmVyaWZ5IFVSTCBTdGVwIENvbmZpZ3VyYXRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5VXJsU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgc3RlcFR5cGU6IFN0ZXBUeXBlcy5WRVJJRllfVVJMO1xuICBhY3Rpb24/OiBzdHJpbmc7IC8vIGUuZy4sIFwiVmVyaWZ5IHRoYXQgdGhlIFVSTCBvZiBjdXJyZW50IHBhZ2UgaXNcIlxuICB1cmw/OiBzdHJpbmc7IC8vIFRoZSBVUkwgdG8gdmVyaWZ5XG59XG5cbi8qKiBSZXN0b3JlIFNlc3Npb24gU3RlcCBDb25maWd1cmF0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RvcmVTZXNzaW9uU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgc3RlcFR5cGU6IFN0ZXBUeXBlcy5SRVNUT1JFX1NFU1NJT047XG4gIGFjdGlvbj86IHN0cmluZzsgLy8gQWN0aW9uIHRleHQvSFRNTCBmb3IgdGhlIHJlc3RvcmUgc2Vzc2lvbiBzdGVwXG59XG5cbi8qKiBDdXN0b20gQ29kZSBTdGVwIENvbmZpZ3VyYXRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQ29kZVN0ZXBDb25maWcgZXh0ZW5kcyBCYXNlU3RlcENvbmZpZyB7XG4gIHN0ZXBUeXBlOiBTdGVwVHlwZXMuQ1VTVE9NX0NPREU7XG4gIGxhbmd1YWdlOiAnamF2YXNjcmlwdCcgfCAncHl0aG9uJyB8ICd0eXBlc2NyaXB0JztcbiAgY29kZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvb3BTdGVwQ29uZmlnIGV4dGVuZHMgQmFzZVN0ZXBDb25maWcge1xuICBsb29wVHlwZTogJ2ZvcicgfCAnd2hpbGUnO1xuICBzdGVwVHlwZTogU3RlcFR5cGVzLkZPUl9MT09QIHwgU3RlcFR5cGVzLldISUxFX0xPT1A7XG4gIGNvbmRpdGlvbj86IHN0cmluZzsgLy8gRm9yIHdoaWxlIGxvb3A6IFwiV2hpbGUgZWxlbWVudCBcXFwiLm5vdGlmaWNhdGlvbi1iYWRnZVxcXCIgZXhpc3RzIChtYXggNSBpdGVyYXRpb25zKVwiXG4gIG1heEl0ZXJhdGlvbnM/OiBudW1iZXI7IC8vIEZvciB3aGlsZSBsb29wXG4gIHRlc3REYXRhUHJvZmlsZT86IHN0cmluZzsgLy8gRm9yIGZvciBsb29wXG4gIHN0YXJ0U3RlcD86IG51bWJlcjtcbiAgZW5kU3RlcD86IG51bWJlcjtcbiAgLyoqIEZPUiBsb29wOiBBUEkgdmFsdWVzIGZvciBkaXNwbGF5IChTdGFydC9FbmQgbGFiZWxzIGFuZCBUZXN0IERhdGEgcHJvZmlsZSBpZCkgKi9cbiAgZm9yTG9vcFN0YXJ0SW5kZXg/OiBudW1iZXI7XG4gIGZvckxvb3BFbmRJbmRleD86IG51bWJlcjtcbiAgZm9yTG9vcFRlc3REYXRhSWQ/OiBudW1iZXI7XG4gIC8qKiBGT1IgbG9vcDogb3B0aW9uYWwgSFRNTCBzdHJpbmcgZm9yIGRpc3BsYXkgKGUuZy4gd2l0aCB0ZXN0X2RhdGEgYmFkZ2VzKS4gV2hlbiBzZXQsIHVzZWQgaW5zdGVhZCBvZiBidWlsZGluZyBmcm9tIHZhbHVlcy4gKi9cbiAgZm9yTG9vcERpc3BsYXlIdG1sPzogc3RyaW5nO1xuICBuZXN0ZWRTdGVwczogVGVzdENhc2VTdGVwQ29uZmlnW107XG4gIGNoaWxkSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZGl0aW9uQnJhbmNoIHtcbiAgaWQ/OiBudW1iZXI7IC8vIEJyYW5jaCBzdGVwIGlkIChJRi9FTFNFIElGL0VMU0Ugcm93KSBmb3IgQVBJIHBhcmVudElkIHdoZW4gYWRkaW5nIHN0ZXBzXG4gIHR5cGU6ICdpZicgfCAnZWxzZScgfCAnZWxzZS1pZic7XG4gIHN0ZXBUeXBlOiBTdGVwVHlwZXMuQ09ORElUSU9OX0lGO1xuICBsYWJlbDogc3RyaW5nOyAvLyBlLmcuLCBcIklGIFRSVUVcIiwgXCJFTFNFXCJcbiAgYWN0aW9uPzogc3RyaW5nOyAvLyBBY3Rpb24gdGV4dC9IVE1MIGZvciB0aGUgYnJhbmNoIChlLmcuLCBcIkNoZWNrIHRoZSB0ZXh0ICdLaXNoYW4nIGlzIHByZXNlbnQgb24gdGhlIGN1cnJlbnQgcGFnZVwiKVxuICAvKiogRXZlbnQga2V5LXZhbHVlIHBhaXJzIGZvciBkaXNwbGF5IGJhZGdlcyAoZS5nLiBzZWxlY3RvciwgZWxlbWVudCkgLSBzYW1lIGFzIGNvbmZpZy5ldmVudCAqL1xuICBldmVudD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAvKiogQ3JlYXRpb24gdGltZXN0YW1wIGZyb20gQVBJIChtaWxsaXNlY29uZHMgc2luY2UgZXBvY2gpIC0gZm9yIGJyYW5jaCBoZWFkZXIgZGF0ZSBkaXNwbGF5ICovXG4gIGNyZWF0ZWREYXRlPzogbnVtYmVyO1xuICBuZXN0ZWRTdGVwczogVGVzdENhc2VTdGVwQ29uZmlnW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZGl0aW9uU3RlcENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgY29uZGl0aW9uOiBzdHJpbmc7IC8vIGUuZy4sIFwiSWYgZWxlbWVudCBgLnN1Y2Nlc3MtbWVzc2FnZWAgaXMgdmlzaWJsZVwiXG4gIGJyYW5jaGVzOiBDb25kaXRpb25CcmFuY2hbXTtcbiAgbmVzdGVkU3RlcHM6IFRlc3RDYXNlU3RlcENvbmZpZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBHcm91cENvbmZpZyBleHRlbmRzIEJhc2VTdGVwQ29uZmlnIHtcbiAgc3RlcEdyb3VwSWQ6IG51bWJlcjtcbiAgZ3JvdXBOYW1lOiBzdHJpbmc7IC8vIGUuZy4sIFwiQ2hlY2tvdXQgRmxvd1wiXG4gIHJldXNhYmxlPzogYm9vbGVhbjsgLy8gV2hldGhlciB0aGUgZ3JvdXAgaXMgcmV1c2FibGVcbiAgc3RlcFR5cGU6IFN0ZXBUeXBlcy5TVEVQX0dST1VQXG4gIG5lc3RlZFN0ZXBzOiBUZXN0Q2FzZVN0ZXBDb25maWdbXTtcbiAgbG9hZGluZz86IGJvb2xlYW47IC8vIExvYWRpbmcgc3RhdGUgd2hlbiBmZXRjaGluZyBuZXN0ZWQgc3RlcHNcbn1cblxuLy8gVW5pb24gdHlwZSBmb3IgYWxsIHRlc3QgY2FzZSBzdGVwIGNvbmZpZ3VyYXRpb25zIChzdXBwb3J0cyByZWN1cnNpdmUgbmVzdGluZylcbmV4cG9ydCB0eXBlIFRlc3RDYXNlU3RlcENvbmZpZyA9XG4gIHwgTm9ybWFsU3RlcENvbmZpZ1xuICB8IExvb3BTdGVwQ29uZmlnXG4gIHwgQ29uZGl0aW9uU3RlcENvbmZpZ1xuICB8IFN0ZXBHcm91cENvbmZpZ1xuICB8IEFwaVN0ZXBDb25maWdcbiAgfCBEYXRhYmFzZVN0ZXBDb25maWdcbiAgfCBBaUFnZW50U3RlcENvbmZpZ1xuICB8IEFpVmVyaWZ5U3RlcENvbmZpZ1xuICB8IFVwbG9hZFN0ZXBDb25maWdcbiAgfCBTY3JlZW5zaG90U3RlcENvbmZpZ1xuICB8IFNjcm9sbFN0ZXBDb25maWdcbiAgfCBWZXJpZnlVcmxTdGVwQ29uZmlnXG4gIHwgUmVzdG9yZVNlc3Npb25TdGVwQ29uZmlnXG4gIHwgQ3VzdG9tQ29kZVN0ZXBDb25maWc7XG5cbi8qKiBUeXBlIGd1YXJkcyBmb3IgZGlzcGF0Y2hpbmcgc3RlcCB0eXBlIChlLmcuIGluIHRlc3QtY2FzZS1kZXRhaWxzLXJlbmRlcmVyKSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTm9ybWFsU3RlcENvbmZpZyhzdGVwOiBUZXN0Q2FzZVN0ZXBDb25maWcpOiBzdGVwIGlzIE5vcm1hbFN0ZXBDb25maWcge1xuICByZXR1cm4gc3RlcCAhPSBudWxsICYmICdldmVudFR5cGUnIGluIHN0ZXAgJiYgJ3BhcmFtZXRlcnMnIGluIHN0ZXA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xvb3BTdGVwQ29uZmlnKHN0ZXA6IFRlc3RDYXNlU3RlcENvbmZpZyk6IHN0ZXAgaXMgTG9vcFN0ZXBDb25maWcge1xuICByZXR1cm4gc3RlcCAhPSBudWxsICYmICdsb29wVHlwZScgaW4gc3RlcDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29uZGl0aW9uU3RlcENvbmZpZyhzdGVwOiBUZXN0Q2FzZVN0ZXBDb25maWcpOiBzdGVwIGlzIENvbmRpdGlvblN0ZXBDb25maWcge1xuICByZXR1cm4gc3RlcCAhPSBudWxsICYmICdjb25kaXRpb24nIGluIHN0ZXAgJiYgJ2JyYW5jaGVzJyBpbiBzdGVwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdGVwR3JvdXBDb25maWcoc3RlcDogVGVzdENhc2VTdGVwQ29uZmlnKTogc3RlcCBpcyBTdGVwR3JvdXBDb25maWcge1xuICByZXR1cm4gc3RlcCAhPSBudWxsICYmICdncm91cE5hbWUnIGluIHN0ZXA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FwaVN0ZXBDb25maWcoc3RlcDogVGVzdENhc2VTdGVwQ29uZmlnKTogc3RlcCBpcyBBcGlTdGVwQ29uZmlnIHtcbiAgcmV0dXJuIHN0ZXAgIT0gbnVsbCAmJiAnc3RlcFR5cGUnIGluIHN0ZXAgJiYgKHN0ZXAgYXMgQXBpU3RlcENvbmZpZykuc3RlcFR5cGUgPT09IFN0ZXBUeXBlcy5BUEk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGFiYXNlU3RlcENvbmZpZyhzdGVwOiBUZXN0Q2FzZVN0ZXBDb25maWcpOiBzdGVwIGlzIERhdGFiYXNlU3RlcENvbmZpZyB7XG4gIHJldHVybiBzdGVwICE9IG51bGwgJiYgJ3N0ZXBUeXBlJyBpbiBzdGVwICYmIChzdGVwIGFzIERhdGFiYXNlU3RlcENvbmZpZykuc3RlcFR5cGUgPT09IFN0ZXBUeXBlcy5EQVRBQkFTRTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWlBZ2VudFN0ZXBDb25maWcoc3RlcDogVGVzdENhc2VTdGVwQ29uZmlnKTogc3RlcCBpcyBBaUFnZW50U3RlcENvbmZpZyB7XG4gIHJldHVybiBzdGVwICE9IG51bGwgJiYgJ3N0ZXBUeXBlJyBpbiBzdGVwICYmIChzdGVwIGFzIEFpQWdlbnRTdGVwQ29uZmlnKS5zdGVwVHlwZSA9PT0gU3RlcFR5cGVzLkFJX0FHRU5UO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBaVZlcmlmeVN0ZXBDb25maWcoc3RlcDogVGVzdENhc2VTdGVwQ29uZmlnKTogc3RlcCBpcyBBaVZlcmlmeVN0ZXBDb25maWcge1xuICByZXR1cm4gc3RlcCAhPSBudWxsICYmICdzdGVwVHlwZScgaW4gc3RlcCAmJiAoc3RlcCBhcyBBaVZlcmlmeVN0ZXBDb25maWcpLnN0ZXBUeXBlID09PSBTdGVwVHlwZXMuQUlfVkVSSUZZO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNVcGxvYWRTdGVwQ29uZmlnKHN0ZXA6IFRlc3RDYXNlU3RlcENvbmZpZyk6IHN0ZXAgaXMgVXBsb2FkU3RlcENvbmZpZyB7XG4gIHJldHVybiBzdGVwICE9IG51bGwgJiYgJ3N0ZXBUeXBlJyBpbiBzdGVwICYmIChzdGVwIGFzIFVwbG9hZFN0ZXBDb25maWcpLnN0ZXBUeXBlID09PSBTdGVwVHlwZXMuVVBMT0FEO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTY3JlZW5zaG90U3RlcENvbmZpZyhzdGVwOiBUZXN0Q2FzZVN0ZXBDb25maWcpOiBzdGVwIGlzIFNjcmVlbnNob3RTdGVwQ29uZmlnIHtcbiAgcmV0dXJuIHN0ZXAgIT0gbnVsbCAmJiAnc3RlcFR5cGUnIGluIHN0ZXAgJiYgKHN0ZXAgYXMgU2NyZWVuc2hvdFN0ZXBDb25maWcpLnN0ZXBUeXBlID09PSBTdGVwVHlwZXMuU0NSRUVOU0hPVDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2Nyb2xsU3RlcENvbmZpZyhzdGVwOiBUZXN0Q2FzZVN0ZXBDb25maWcpOiBzdGVwIGlzIFNjcm9sbFN0ZXBDb25maWcge1xuICByZXR1cm4gc3RlcCAhPSBudWxsICYmICdzdGVwVHlwZScgaW4gc3RlcCAmJiAoc3RlcCBhcyBTY3JvbGxTdGVwQ29uZmlnKS5zdGVwVHlwZSA9PT0gU3RlcFR5cGVzLlNDUk9MTDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmVyaWZ5VXJsU3RlcENvbmZpZyhzdGVwOiBUZXN0Q2FzZVN0ZXBDb25maWcpOiBzdGVwIGlzIFZlcmlmeVVybFN0ZXBDb25maWcge1xuICByZXR1cm4gc3RlcCAhPSBudWxsICYmICdzdGVwVHlwZScgaW4gc3RlcCAmJiAoc3RlcCBhcyBWZXJpZnlVcmxTdGVwQ29uZmlnKS5zdGVwVHlwZSA9PT0gU3RlcFR5cGVzLlZFUklGWV9VUkw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Jlc3RvcmVTZXNzaW9uU3RlcENvbmZpZyhzdGVwOiBUZXN0Q2FzZVN0ZXBDb25maWcpOiBzdGVwIGlzIFJlc3RvcmVTZXNzaW9uU3RlcENvbmZpZyB7XG4gIHJldHVybiBzdGVwICE9IG51bGwgJiYgJ3N0ZXBUeXBlJyBpbiBzdGVwICYmIChzdGVwIGFzIFJlc3RvcmVTZXNzaW9uU3RlcENvbmZpZykuc3RlcFR5cGUgPT09IFN0ZXBUeXBlcy5SRVNUT1JFX1NFU1NJT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0N1c3RvbUNvZGVTdGVwQ29uZmlnKHN0ZXA6IFRlc3RDYXNlU3RlcENvbmZpZyk6IHN0ZXAgaXMgQ3VzdG9tQ29kZVN0ZXBDb25maWcge1xuICByZXR1cm4gc3RlcCAhPSBudWxsICYmICdzdGVwVHlwZScgaW4gc3RlcCAmJiAoc3RlcCBhcyBDdXN0b21Db2RlU3RlcENvbmZpZykuc3RlcFR5cGUgPT09IFN0ZXBUeXBlcy5DVVNUT01fQ09ERTtcbn1cbiJdfQ==
@@ -24,6 +24,7 @@ export class TestCaseUploadStepComponent {
24
24
  this.moreOptions = new EventEmitter();
25
25
  this.viewDetails = new EventEmitter();
26
26
  this.selectionChange = new EventEmitter();
27
+ this.stepUpdate = new EventEmitter();
27
28
  }
28
29
  ngOnInit() {
29
30
  if (this.config) {
@@ -44,6 +45,12 @@ export class TestCaseUploadStepComponent {
44
45
  }
45
46
  onLink() { this.link.emit(); }
46
47
  onDuplicate() { this.duplicate.emit(); }
48
+ onSkipToggle() {
49
+ // Toggle: if currently true → pass false (unskip); if currently false/undefined → pass true (skip)
50
+ const currentlySkipped = !!(this.config?.shouldSkip);
51
+ const shouldSkipNext = !currentlySkipped;
52
+ this.stepUpdate.emit({ ...this.config, shouldSkip: shouldSkipNext });
53
+ }
47
54
  onDelete() { this.delete.emit(); }
48
55
  onMoreOptions() { this.moreOptions.emit(); }
49
56
  onViewDetails(event) {
@@ -65,10 +72,10 @@ export class TestCaseUploadStepComponent {
65
72
  onSelectionChange(checked) { this.selected = checked; this.selectionChange.emit(checked); }
66
73
  }
67
74
  TestCaseUploadStepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TestCaseUploadStepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
- TestCaseUploadStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TestCaseUploadStepComponent, selector: "cqa-test-case-upload-step", inputs: { config: "config", stepNumber: "stepNumber", index: "index", selector: "selector", fileName: "fileName", source: "source", sourcePath: "sourcePath", description: "description", selected: "selected", disabled: "disabled", isNested: "isNested", isInsideStepGroup: "isInsideStepGroup", isInsideLoop: "isInsideLoop", isReorder: "isReorder", editable: "editable" }, outputs: { edit: "edit", editInDepth: "editInDepth", link: "link", duplicate: "duplicate", delete: "delete", moreOptions: "moreOptions", viewDetails: "viewDetails", selectionChange: "selectionChange" }, host: { classAttribute: "cqa-ui-root" }, viewQueries: [{ propertyName: "viewDetailsTrigger", first: true, predicate: ["viewDetailsTrigger"], descendants: true }], ngImport: i0, template: "<div [class]=\"'step-row cqa-flex cqa-items-center cqa-gap-3 cqa-py-2 ' + (isInsideLoop && isInsideStepGroup ? 'cqa-pl-20 cqa-pr-4' : (isInsideLoop || isInsideStepGroup) ? 'cqa-pl-10 cqa-pr-4' : 'cqa-px-4')\" style=\"border-top: 1px solid #E5E7EB;\">\n <div class=\"cqa-inline-flex cqa-items-center\">\n <!-- Drag Handle Icon (when isReorder is true and not inside step group - steps inside step groups cannot be reordered) -->\n <div *ngIf=\"isReorder && !isInsideStepGroup\" class=\"cqa-mr-2 cqa-cursor-move cqa-text-[#6B7280] hover:cqa-text-[#111827]\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"3\" cy=\"3\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"8\" cy=\"3\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"13\" cy=\"3\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"3\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"8\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"13\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"3\" cy=\"13\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"8\" cy=\"13\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"13\" cy=\"13\" r=\"1.5\" fill=\"currentColor\"/>\n </svg>\n </div>\n <!-- Checkbox (when isReorder is false and not inside step group - hide for steps inside step groups) -->\n <label *ngIf=\"editable && !isReorder && !isInsideStepGroup\" class=\"cqa-flex cqa-items-center cqa-cursor-pointer cqa-relative cqa-mr-2\">\n <input type=\"checkbox\"\n [ngModel]=\"selected\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onSelectionChange($event)\"\n class=\"cqa-h-4 cqa-w-4 cqa-cursor-pointer cqa-transition-all cqa-appearance-none cqa-rounded shadow hover:cqa-shadow-md cqa-border cqa-border-solid cqa-border-slate-300 cqa-flex-shrink-0\"\n [class.cqa-bg-[#3F43EE]]=\"selected\"\n [class.cqa-border-[#3F43EE]]=\"selected\"\n id=\"check\" />\n <span class=\"cqa-absolute cqa-text-white cqa-top-1/2 cqa-left-1/2 cqa--translate-x-1/2 cqa--translate-y-1/2 cqa-pointer-events-none cqa-flex cqa-items-center cqa-justify-center\"\n [class.cqa-opacity-0]=\"!selected\"\n [class.cqa-opacity-100]=\"selected\">\n <svg width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 3.125L4.5 8.625L2 6.125\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </span>\n </label>\n </div>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-[18px] cqa-min-w-[32px]\">{{ stepNumber }}</span>\n <span title=\"Upload\" class=\"cqa-w-8 cqa-h-8 cqa-rounded-lg cqa-flex cqa-items-center cqa-justify-center cqa-flex-shrink-0 cqa-bg-[#DBEAFE] cqa-text-[#2563EB]\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.25 8.75V11.0833C12.25 11.3928 12.1271 11.6895 11.9083 11.9083C11.6895 12.1271 11.3928 12.25 11.0833 12.25H2.91667C2.60725 12.25 2.3105 12.1271 2.09171 11.9083C1.87292 11.6895 1.75 11.3928 1.75 11.0833V8.75\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.91667 4.66667L7 1.75L4.08333 4.66667\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 1.75V8.75\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </span>\n <span class=\"cqa-text-[#111827] cqa-text-[14px] cqa-leading-[18px]\">Upload file to</span>\n <span class=\"cqa-py-0.5 cqa-px-2 cqa-text-[#2563EB] cqa-text-[14px] cqa-leading-[17px] cqa-font-semibold cqa-border cqa-border-solid cqa-border-[#93C5FD] cqa-rounded cqa-bg-[#DBEAFE]\">{{ selector }}</span>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-[18px]\">File:</span>\n <span class=\"cqa-text-[#111827] cqa-text-[14px] cqa-leading-[18px]\">{{ fileName }}</span>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-[18px]\">Source:</span>\n <span class=\"cqa-text-[#111827] cqa-text-[14px] cqa-leading-[18px]\">{{ source }}</span>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-[18px]\">{{ sourcePath }}</span>\n <div class=\"cqa-flex-grow\"></div>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-self-center\">\n <div *ngIf=\"editable && !isInsideStepGroup && !isReorder\" class=\"step-actions cqa-flex cqa-items-center cqa-gap-1.5 cqa-pr-2\">\n <button type=\"button\" (click)=\"onEdit(); $event.stopPropagation()\" title=\"Edit\" class=\"cqa-p-0 cqa-text-[#99A1Af] hover:cqa-text-[#1447E6]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 11.6666H12.25\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.55208 2.1128C9.7843 1.88058 10.0993 1.75012 10.4277 1.75012C10.7561 1.75012 11.071 1.88058 11.3033 2.1128C11.5355 2.34502 11.6659 2.65998 11.6659 2.98838C11.6659 3.31679 11.5355 3.63175 11.3033 3.86397L4.29742 10.8704C4.15864 11.0092 3.9871 11.1107 3.79867 11.1656L2.12333 11.6544C2.07314 11.669 2.01993 11.6699 1.96928 11.6569C1.91863 11.6439 1.8724 11.6176 1.83543 11.5806C1.79846 11.5437 1.7721 11.4974 1.75913 11.4468C1.74615 11.3961 1.74703 11.3429 1.76167 11.2927L2.2505 9.61738C2.30546 9.42916 2.40698 9.25783 2.54567 9.11922L9.55208 2.1128Z\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button>\n <!-- <button type=\"button\" (click)=\"onLink(); $event.stopPropagation()\" title=\"Link\" class=\"cqa-p-0 cqa-text-[#99A1Af] hover:cqa-text-[#1447E6]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.00065 9.91671H3.66732C2.78326 9.91671 1.93542 9.60942 1.3103 9.06244C0.685174 8.51545 0.333984 7.77359 0.333984 7.00004C0.333984 6.22649 0.685174 5.48463 1.3103 4.93765C1.93542 4.39066 2.78326 4.08337 3.66732 4.08337H5.00065\" stroke=\"currentColor\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 4.08337H10.3333C11.2174 4.08337 12.0652 4.39066 12.6904 4.93765C13.3155 5.48463 13.6667 6.22649 13.6667 7.00004C13.6667 7.77359 13.3155 8.51545 12.6904 9.06244C12.0652 9.60942 11.2174 9.91671 10.3333 9.91671H9\" stroke=\"currentColor\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.33398 7H9.66732\" stroke=\"currentColor\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button> -->\n <button type=\"button\" (click)=\"onDuplicate(); $event.stopPropagation()\" title=\"Duplicate\" class=\"cqa-p-0 cqa-text-[#99A1Af] hover:cqa-text-[#1447E6]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.666 4.66663H5.83268C5.18835 4.66663 4.66602 5.18896 4.66602 5.83329V11.6666C4.66602 12.311 5.18835 12.8333 5.83268 12.8333H11.666C12.3103 12.8333 12.8327 12.311 12.8327 11.6666V5.83329C12.8327 5.18896 12.3103 4.66663 11.666 4.66663Z\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.33268 9.33329C1.69102 9.33329 1.16602 8.80829 1.16602 8.16663V2.33329C1.16602 1.69163 1.69102 1.16663 2.33268 1.16663H8.16602C8.80768 1.16663 9.33268 1.69163 9.33268 2.33329\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button>\n <button type=\"button\" (click)=\"onDelete(); $event.stopPropagation()\" title=\"Delete\" class=\"cqa-p-0 cqa-text-[#ff6467] hover:cqa-text-[#C63535]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.75 3.5H12.25\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11.0827 3.5V11.6667C11.0827 12.25 10.4993 12.8333 9.91602 12.8333H4.08268C3.49935 12.8333 2.91602 12.25 2.91602 11.6667V3.5\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.66602 3.49996V2.33329C4.66602 1.74996 5.24935 1.16663 5.83268 1.16663H8.16602C8.74935 1.16663 9.33268 1.74996 9.33268 2.33329V3.49996\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.83398 6.41663V9.91663\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8.16602 6.41663V9.91663\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button>\n </div>\n <a *ngIf=\"config.description && config.description.trim() !== ''\" #viewDetailsTrigger href=\"#\" (click)=\"onViewDetails($event)\" class=\"cqa-text-[#3F43EE] cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-flex cqa-items-center cqa-gap-1 cqa-no-underline\">View Details<svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.03809 6.74329L2.62809 7.33329L5.96142 3.99996L2.62809 0.666626L2.03809 1.25663L4.78142 3.99996L2.03809 6.74329Z\" fill=\"#3F43EE\"/></svg></a>\n <!-- Created Date (from API) - last so aligned across all steps, format: 25 Feb 2026 -->\n <span *ngIf=\"config.createdDate\" class=\"step-date cqa-text-[#6B7280] cqa-text-[12px] cqa-leading-[15px] cqa-ml-auto cqa-flex-shrink-0\">\n {{ config.createdDate | date:'d MMM yyyy' }}\n </span>\n </div>\n</div>\n", styles: [".step-actions{opacity:0;transition:opacity .15s ease}.step-row:hover .step-actions{opacity:1}.step-row{vertical-align:middle;letter-spacing:normal}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "date": i1.DatePipe } });
75
+ TestCaseUploadStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TestCaseUploadStepComponent, selector: "cqa-test-case-upload-step", inputs: { config: "config", stepNumber: "stepNumber", index: "index", selector: "selector", fileName: "fileName", source: "source", sourcePath: "sourcePath", description: "description", selected: "selected", disabled: "disabled", isNested: "isNested", isInsideStepGroup: "isInsideStepGroup", isInsideLoop: "isInsideLoop", isReorder: "isReorder", editable: "editable" }, outputs: { edit: "edit", editInDepth: "editInDepth", link: "link", duplicate: "duplicate", delete: "delete", moreOptions: "moreOptions", viewDetails: "viewDetails", selectionChange: "selectionChange", stepUpdate: "stepUpdate" }, host: { classAttribute: "cqa-ui-root" }, viewQueries: [{ propertyName: "viewDetailsTrigger", first: true, predicate: ["viewDetailsTrigger"], descendants: true }], ngImport: i0, template: "<div [class]=\"'step-row cqa-flex cqa-items-center cqa-gap-3 cqa-py-2 ' + (isInsideLoop && isInsideStepGroup ? 'cqa-pl-20 cqa-pr-4' : (isInsideLoop || isInsideStepGroup) ? 'cqa-pl-10 cqa-pr-4' : 'cqa-px-4') + (config?.shouldSkip ? ' cqa-step-skipped' : '')\" [style.opacity]=\"config?.shouldSkip ? '0.6' : null\" style=\"border-top: 1px solid #E5E7EB\">\n <div class=\"cqa-inline-flex cqa-items-center\">\n <!-- Drag Handle Icon (when isReorder is true and not inside step group - steps inside step groups cannot be reordered) -->\n <div *ngIf=\"isReorder && !isInsideStepGroup\" class=\"cqa-mr-2 cqa-cursor-move cqa-text-[#6B7280] hover:cqa-text-[#111827]\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"3\" cy=\"3\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"8\" cy=\"3\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"13\" cy=\"3\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"3\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"8\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"13\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"3\" cy=\"13\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"8\" cy=\"13\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"13\" cy=\"13\" r=\"1.5\" fill=\"currentColor\"/>\n </svg>\n </div>\n <!-- Checkbox (when isReorder is false and not inside step group - hide for steps inside step groups) -->\n <label *ngIf=\"editable && !isReorder && !isInsideStepGroup\" class=\"cqa-flex cqa-items-center cqa-cursor-pointer cqa-relative cqa-mr-2\">\n <input type=\"checkbox\"\n [ngModel]=\"selected\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onSelectionChange($event)\"\n class=\"cqa-h-4 cqa-w-4 cqa-cursor-pointer cqa-transition-all cqa-appearance-none cqa-rounded shadow hover:cqa-shadow-md cqa-border cqa-border-solid cqa-border-slate-300 cqa-flex-shrink-0\"\n [class.cqa-bg-[#3F43EE]]=\"selected\"\n [class.cqa-border-[#3F43EE]]=\"selected\"\n id=\"check\" />\n <span class=\"cqa-absolute cqa-text-white cqa-top-1/2 cqa-left-1/2 cqa--translate-x-1/2 cqa--translate-y-1/2 cqa-pointer-events-none cqa-flex cqa-items-center cqa-justify-center\"\n [class.cqa-opacity-0]=\"!selected\"\n [class.cqa-opacity-100]=\"selected\">\n <svg width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 3.125L4.5 8.625L2 6.125\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </span>\n </label>\n </div>\n <div *ngIf=\"isInsideStepGroup\" class=\"cqa-ml-1 cqa-mr-1 cqa-text-[#9CA3AF]\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M11.9998 5.66667H11.3332V4.33333C11.3332 2.49333 9.83984 1 7.99984 1C6.15984 1 4.6665 2.49333 4.6665 4.33333V5.66667H3.99984C3.2665 5.66667 2.6665 6.26667 2.6665 7V13.6667C2.6665 14.4 3.2665 15 3.99984 15H11.9998C12.7332 15 13.3332 14.4 13.3332 13.6667V7C13.3332 6.26667 12.7332 5.66667 11.9998 5.66667ZM5.99984 4.33333C5.99984 3.22667 6.89317 2.33333 7.99984 2.33333C9.1065 2.33333 9.99984 3.22667 9.99984 4.33333V5.66667H5.99984V4.33333ZM11.9998 13.6667H3.99984V7H11.9998V13.6667ZM7.99984 11.6667C8.73317 11.6667 9.33317 11.0667 9.33317 10.3333C9.33317 9.6 8.73317 9 7.99984 9C7.2665 9 6.6665 9.6 6.6665 10.3333C6.6665 11.0667 7.2665 11.6667 7.99984 11.6667Z\" fill=\"currentColor\"/>\n </svg>\n </div>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-[18px] cqa-min-w-[32px]\">{{ stepNumber }}</span>\n <span title=\"Upload\" class=\"cqa-w-8 cqa-h-8 cqa-rounded-lg cqa-flex cqa-items-center cqa-justify-center cqa-flex-shrink-0 cqa-bg-[#DBEAFE] cqa-text-[#2563EB]\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.25 8.75V11.0833C12.25 11.3928 12.1271 11.6895 11.9083 11.9083C11.6895 12.1271 11.3928 12.25 11.0833 12.25H2.91667C2.60725 12.25 2.3105 12.1271 2.09171 11.9083C1.87292 11.6895 1.75 11.3928 1.75 11.0833V8.75\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.91667 4.66667L7 1.75L4.08333 4.66667\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 1.75V8.75\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </span>\n <span class=\"cqa-text-[#111827] cqa-text-[14px] cqa-leading-[18px]\">Upload file to</span>\n <span class=\"cqa-py-0.5 cqa-px-2 cqa-text-[#2563EB] cqa-text-[14px] cqa-leading-[17px] cqa-font-semibold cqa-border cqa-border-solid cqa-border-[#93C5FD] cqa-rounded cqa-bg-[#DBEAFE]\">{{ selector }}</span>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-[18px]\">File:</span>\n <span class=\"cqa-text-[#111827] cqa-text-[14px] cqa-leading-[18px]\">{{ fileName }}</span>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-[18px]\">Source:</span>\n <span class=\"cqa-text-[#111827] cqa-text-[14px] cqa-leading-[18px]\">{{ source }}</span>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-[18px]\">{{ sourcePath }}</span>\n <div class=\"cqa-flex-grow\"></div>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-self-center\">\n <span *ngIf=\"config?.shouldSkip\" class=\"cqa-border cqa-border-solid cqa-border-[#E5E5E5] cqa-rounded-lg cqa-py-0.5 cqa-px-2 cqa-text-[#0A0A0A] cqa-text-[12px] cqa-leading-[15px] cqa-flex-shrink-0\">Skipped</span>\n <div *ngIf=\"editable && !isInsideStepGroup && !isReorder\" class=\"step-actions cqa-flex cqa-items-center cqa-gap-1.5 cqa-pr-2\">\n <button type=\"button\" (click)=\"onEdit(); $event.stopPropagation()\" title=\"Edit\" class=\"cqa-p-0 cqa-text-[#99A1Af] hover:cqa-text-[#1447E6]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 11.6666H12.25\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.55208 2.1128C9.7843 1.88058 10.0993 1.75012 10.4277 1.75012C10.7561 1.75012 11.071 1.88058 11.3033 2.1128C11.5355 2.34502 11.6659 2.65998 11.6659 2.98838C11.6659 3.31679 11.5355 3.63175 11.3033 3.86397L4.29742 10.8704C4.15864 11.0092 3.9871 11.1107 3.79867 11.1656L2.12333 11.6544C2.07314 11.669 2.01993 11.6699 1.96928 11.6569C1.91863 11.6439 1.8724 11.6176 1.83543 11.5806C1.79846 11.5437 1.7721 11.4974 1.75913 11.4468C1.74615 11.3961 1.74703 11.3429 1.76167 11.2927L2.2505 9.61738C2.30546 9.42916 2.40698 9.25783 2.54567 9.11922L9.55208 2.1128Z\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button>\n <button type=\"button\" (click)=\"onSkipToggle(); $event.stopPropagation()\" [attr.title]=\"config?.shouldSkip ? 'Unskip step' : 'Skip step'\" [class.cqa-text-[#1447E6]]=\"config?.shouldSkip\" class=\"cqa-p-0 cqa-text-[#99A1Af] hover:cqa-text-[#1447E6]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8.25 8.75C9.2165 8.75 10 7.9665 10 7C10 6.0335 9.2165 5.25 8.25 5.25C7.2835 5.25 6.5 6.0335 6.5 7C6.5 7.9665 7.2835 8.75 8.25 8.75Z\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8.75033 2.91663H5.25033C2.99516 2.91663 1.16699 4.7448 1.16699 6.99996C1.16699 9.25512 2.99516 11.0833 5.25033 11.0833H8.75033C11.0055 11.0833 12.8337 9.25512 12.8337 6.99996C12.8337 4.7448 11.0055 2.91663 8.75033 2.91663Z\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button>\n <!-- <button type=\"button\" (click)=\"onLink(); $event.stopPropagation()\" title=\"Link\" class=\"cqa-p-0 cqa-text-[#99A1Af] hover:cqa-text-[#1447E6]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.00065 9.91671H3.66732C2.78326 9.91671 1.93542 9.60942 1.3103 9.06244C0.685174 8.51545 0.333984 7.77359 0.333984 7.00004C0.333984 6.22649 0.685174 5.48463 1.3103 4.93765C1.93542 4.39066 2.78326 4.08337 3.66732 4.08337H5.00065\" stroke=\"currentColor\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 4.08337H10.3333C11.2174 4.08337 12.0652 4.39066 12.6904 4.93765C13.3155 5.48463 13.6667 6.22649 13.6667 7.00004C13.6667 7.77359 13.3155 8.51545 12.6904 9.06244C12.0652 9.60942 11.2174 9.91671 10.3333 9.91671H9\" stroke=\"currentColor\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.33398 7H9.66732\" stroke=\"currentColor\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button> -->\n <button type=\"button\" (click)=\"onDuplicate(); $event.stopPropagation()\" title=\"Duplicate\" class=\"cqa-p-0 cqa-text-[#99A1Af] hover:cqa-text-[#1447E6]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.666 4.66663H5.83268C5.18835 4.66663 4.66602 5.18896 4.66602 5.83329V11.6666C4.66602 12.311 5.18835 12.8333 5.83268 12.8333H11.666C12.3103 12.8333 12.8327 12.311 12.8327 11.6666V5.83329C12.8327 5.18896 12.3103 4.66663 11.666 4.66663Z\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.33268 9.33329C1.69102 9.33329 1.16602 8.80829 1.16602 8.16663V2.33329C1.16602 1.69163 1.69102 1.16663 2.33268 1.16663H8.16602C8.80768 1.16663 9.33268 1.69163 9.33268 2.33329\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button>\n <button type=\"button\" (click)=\"onDelete(); $event.stopPropagation()\" title=\"Delete\" class=\"cqa-p-0 cqa-text-[#ff6467] hover:cqa-text-[#C63535]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.75 3.5H12.25\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11.0827 3.5V11.6667C11.0827 12.25 10.4993 12.8333 9.91602 12.8333H4.08268C3.49935 12.8333 2.91602 12.25 2.91602 11.6667V3.5\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.66602 3.49996V2.33329C4.66602 1.74996 5.24935 1.16663 5.83268 1.16663H8.16602C8.74935 1.16663 9.33268 1.74996 9.33268 2.33329V3.49996\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.83398 6.41663V9.91663\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8.16602 6.41663V9.91663\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button>\n </div>\n <a *ngIf=\"config.description && config.description.trim() !== ''\" #viewDetailsTrigger href=\"#\" (click)=\"onViewDetails($event)\" class=\"cqa-text-[#3F43EE] cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-flex cqa-items-center cqa-gap-1 cqa-no-underline\">View Details<svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.03809 6.74329L2.62809 7.33329L5.96142 3.99996L2.62809 0.666626L2.03809 1.25663L4.78142 3.99996L2.03809 6.74329Z\" fill=\"#3F43EE\"/></svg></a>\n <!-- Created Date (from API) - last so aligned across all steps, format: 25 Feb 2026 -->\n <span *ngIf=\"config.createdDate\" class=\"step-date cqa-text-[#6B7280] cqa-text-[12px] cqa-leading-[15px] cqa-ml-auto cqa-flex-shrink-0\">\n {{ config.createdDate | date:'d MMM yyyy' }}\n </span>\n </div>\n</div>\n", styles: [".step-actions{opacity:0;transition:opacity .15s ease}.step-row:hover .step-actions{opacity:1}.step-row{vertical-align:middle;letter-spacing:normal}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "date": i1.DatePipe } });
69
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TestCaseUploadStepComponent, decorators: [{
70
77
  type: Component,
71
- args: [{ selector: 'cqa-test-case-upload-step', host: { class: 'cqa-ui-root' }, styles: [STEP_ROW_ACTIONS_STYLES], template: "<div [class]=\"'step-row cqa-flex cqa-items-center cqa-gap-3 cqa-py-2 ' + (isInsideLoop && isInsideStepGroup ? 'cqa-pl-20 cqa-pr-4' : (isInsideLoop || isInsideStepGroup) ? 'cqa-pl-10 cqa-pr-4' : 'cqa-px-4')\" style=\"border-top: 1px solid #E5E7EB;\">\n <div class=\"cqa-inline-flex cqa-items-center\">\n <!-- Drag Handle Icon (when isReorder is true and not inside step group - steps inside step groups cannot be reordered) -->\n <div *ngIf=\"isReorder && !isInsideStepGroup\" class=\"cqa-mr-2 cqa-cursor-move cqa-text-[#6B7280] hover:cqa-text-[#111827]\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"3\" cy=\"3\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"8\" cy=\"3\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"13\" cy=\"3\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"3\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"8\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"13\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"3\" cy=\"13\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"8\" cy=\"13\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"13\" cy=\"13\" r=\"1.5\" fill=\"currentColor\"/>\n </svg>\n </div>\n <!-- Checkbox (when isReorder is false and not inside step group - hide for steps inside step groups) -->\n <label *ngIf=\"editable && !isReorder && !isInsideStepGroup\" class=\"cqa-flex cqa-items-center cqa-cursor-pointer cqa-relative cqa-mr-2\">\n <input type=\"checkbox\"\n [ngModel]=\"selected\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onSelectionChange($event)\"\n class=\"cqa-h-4 cqa-w-4 cqa-cursor-pointer cqa-transition-all cqa-appearance-none cqa-rounded shadow hover:cqa-shadow-md cqa-border cqa-border-solid cqa-border-slate-300 cqa-flex-shrink-0\"\n [class.cqa-bg-[#3F43EE]]=\"selected\"\n [class.cqa-border-[#3F43EE]]=\"selected\"\n id=\"check\" />\n <span class=\"cqa-absolute cqa-text-white cqa-top-1/2 cqa-left-1/2 cqa--translate-x-1/2 cqa--translate-y-1/2 cqa-pointer-events-none cqa-flex cqa-items-center cqa-justify-center\"\n [class.cqa-opacity-0]=\"!selected\"\n [class.cqa-opacity-100]=\"selected\">\n <svg width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 3.125L4.5 8.625L2 6.125\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </span>\n </label>\n </div>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-[18px] cqa-min-w-[32px]\">{{ stepNumber }}</span>\n <span title=\"Upload\" class=\"cqa-w-8 cqa-h-8 cqa-rounded-lg cqa-flex cqa-items-center cqa-justify-center cqa-flex-shrink-0 cqa-bg-[#DBEAFE] cqa-text-[#2563EB]\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.25 8.75V11.0833C12.25 11.3928 12.1271 11.6895 11.9083 11.9083C11.6895 12.1271 11.3928 12.25 11.0833 12.25H2.91667C2.60725 12.25 2.3105 12.1271 2.09171 11.9083C1.87292 11.6895 1.75 11.3928 1.75 11.0833V8.75\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.91667 4.66667L7 1.75L4.08333 4.66667\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 1.75V8.75\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </span>\n <span class=\"cqa-text-[#111827] cqa-text-[14px] cqa-leading-[18px]\">Upload file to</span>\n <span class=\"cqa-py-0.5 cqa-px-2 cqa-text-[#2563EB] cqa-text-[14px] cqa-leading-[17px] cqa-font-semibold cqa-border cqa-border-solid cqa-border-[#93C5FD] cqa-rounded cqa-bg-[#DBEAFE]\">{{ selector }}</span>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-[18px]\">File:</span>\n <span class=\"cqa-text-[#111827] cqa-text-[14px] cqa-leading-[18px]\">{{ fileName }}</span>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-[18px]\">Source:</span>\n <span class=\"cqa-text-[#111827] cqa-text-[14px] cqa-leading-[18px]\">{{ source }}</span>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-[18px]\">{{ sourcePath }}</span>\n <div class=\"cqa-flex-grow\"></div>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-self-center\">\n <div *ngIf=\"editable && !isInsideStepGroup && !isReorder\" class=\"step-actions cqa-flex cqa-items-center cqa-gap-1.5 cqa-pr-2\">\n <button type=\"button\" (click)=\"onEdit(); $event.stopPropagation()\" title=\"Edit\" class=\"cqa-p-0 cqa-text-[#99A1Af] hover:cqa-text-[#1447E6]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 11.6666H12.25\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.55208 2.1128C9.7843 1.88058 10.0993 1.75012 10.4277 1.75012C10.7561 1.75012 11.071 1.88058 11.3033 2.1128C11.5355 2.34502 11.6659 2.65998 11.6659 2.98838C11.6659 3.31679 11.5355 3.63175 11.3033 3.86397L4.29742 10.8704C4.15864 11.0092 3.9871 11.1107 3.79867 11.1656L2.12333 11.6544C2.07314 11.669 2.01993 11.6699 1.96928 11.6569C1.91863 11.6439 1.8724 11.6176 1.83543 11.5806C1.79846 11.5437 1.7721 11.4974 1.75913 11.4468C1.74615 11.3961 1.74703 11.3429 1.76167 11.2927L2.2505 9.61738C2.30546 9.42916 2.40698 9.25783 2.54567 9.11922L9.55208 2.1128Z\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button>\n <!-- <button type=\"button\" (click)=\"onLink(); $event.stopPropagation()\" title=\"Link\" class=\"cqa-p-0 cqa-text-[#99A1Af] hover:cqa-text-[#1447E6]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.00065 9.91671H3.66732C2.78326 9.91671 1.93542 9.60942 1.3103 9.06244C0.685174 8.51545 0.333984 7.77359 0.333984 7.00004C0.333984 6.22649 0.685174 5.48463 1.3103 4.93765C1.93542 4.39066 2.78326 4.08337 3.66732 4.08337H5.00065\" stroke=\"currentColor\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 4.08337H10.3333C11.2174 4.08337 12.0652 4.39066 12.6904 4.93765C13.3155 5.48463 13.6667 6.22649 13.6667 7.00004C13.6667 7.77359 13.3155 8.51545 12.6904 9.06244C12.0652 9.60942 11.2174 9.91671 10.3333 9.91671H9\" stroke=\"currentColor\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.33398 7H9.66732\" stroke=\"currentColor\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button> -->\n <button type=\"button\" (click)=\"onDuplicate(); $event.stopPropagation()\" title=\"Duplicate\" class=\"cqa-p-0 cqa-text-[#99A1Af] hover:cqa-text-[#1447E6]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.666 4.66663H5.83268C5.18835 4.66663 4.66602 5.18896 4.66602 5.83329V11.6666C4.66602 12.311 5.18835 12.8333 5.83268 12.8333H11.666C12.3103 12.8333 12.8327 12.311 12.8327 11.6666V5.83329C12.8327 5.18896 12.3103 4.66663 11.666 4.66663Z\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.33268 9.33329C1.69102 9.33329 1.16602 8.80829 1.16602 8.16663V2.33329C1.16602 1.69163 1.69102 1.16663 2.33268 1.16663H8.16602C8.80768 1.16663 9.33268 1.69163 9.33268 2.33329\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button>\n <button type=\"button\" (click)=\"onDelete(); $event.stopPropagation()\" title=\"Delete\" class=\"cqa-p-0 cqa-text-[#ff6467] hover:cqa-text-[#C63535]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.75 3.5H12.25\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11.0827 3.5V11.6667C11.0827 12.25 10.4993 12.8333 9.91602 12.8333H4.08268C3.49935 12.8333 2.91602 12.25 2.91602 11.6667V3.5\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.66602 3.49996V2.33329C4.66602 1.74996 5.24935 1.16663 5.83268 1.16663H8.16602C8.74935 1.16663 9.33268 1.74996 9.33268 2.33329V3.49996\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.83398 6.41663V9.91663\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8.16602 6.41663V9.91663\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button>\n </div>\n <a *ngIf=\"config.description && config.description.trim() !== ''\" #viewDetailsTrigger href=\"#\" (click)=\"onViewDetails($event)\" class=\"cqa-text-[#3F43EE] cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-flex cqa-items-center cqa-gap-1 cqa-no-underline\">View Details<svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.03809 6.74329L2.62809 7.33329L5.96142 3.99996L2.62809 0.666626L2.03809 1.25663L4.78142 3.99996L2.03809 6.74329Z\" fill=\"#3F43EE\"/></svg></a>\n <!-- Created Date (from API) - last so aligned across all steps, format: 25 Feb 2026 -->\n <span *ngIf=\"config.createdDate\" class=\"step-date cqa-text-[#6B7280] cqa-text-[12px] cqa-leading-[15px] cqa-ml-auto cqa-flex-shrink-0\">\n {{ config.createdDate | date:'d MMM yyyy' }}\n </span>\n </div>\n</div>\n" }]
78
+ args: [{ selector: 'cqa-test-case-upload-step', host: { class: 'cqa-ui-root' }, styles: [STEP_ROW_ACTIONS_STYLES], template: "<div [class]=\"'step-row cqa-flex cqa-items-center cqa-gap-3 cqa-py-2 ' + (isInsideLoop && isInsideStepGroup ? 'cqa-pl-20 cqa-pr-4' : (isInsideLoop || isInsideStepGroup) ? 'cqa-pl-10 cqa-pr-4' : 'cqa-px-4') + (config?.shouldSkip ? ' cqa-step-skipped' : '')\" [style.opacity]=\"config?.shouldSkip ? '0.6' : null\" style=\"border-top: 1px solid #E5E7EB\">\n <div class=\"cqa-inline-flex cqa-items-center\">\n <!-- Drag Handle Icon (when isReorder is true and not inside step group - steps inside step groups cannot be reordered) -->\n <div *ngIf=\"isReorder && !isInsideStepGroup\" class=\"cqa-mr-2 cqa-cursor-move cqa-text-[#6B7280] hover:cqa-text-[#111827]\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"3\" cy=\"3\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"8\" cy=\"3\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"13\" cy=\"3\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"3\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"8\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"13\" cy=\"8\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"3\" cy=\"13\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"8\" cy=\"13\" r=\"1.5\" fill=\"currentColor\"/>\n <circle cx=\"13\" cy=\"13\" r=\"1.5\" fill=\"currentColor\"/>\n </svg>\n </div>\n <!-- Checkbox (when isReorder is false and not inside step group - hide for steps inside step groups) -->\n <label *ngIf=\"editable && !isReorder && !isInsideStepGroup\" class=\"cqa-flex cqa-items-center cqa-cursor-pointer cqa-relative cqa-mr-2\">\n <input type=\"checkbox\"\n [ngModel]=\"selected\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onSelectionChange($event)\"\n class=\"cqa-h-4 cqa-w-4 cqa-cursor-pointer cqa-transition-all cqa-appearance-none cqa-rounded shadow hover:cqa-shadow-md cqa-border cqa-border-solid cqa-border-slate-300 cqa-flex-shrink-0\"\n [class.cqa-bg-[#3F43EE]]=\"selected\"\n [class.cqa-border-[#3F43EE]]=\"selected\"\n id=\"check\" />\n <span class=\"cqa-absolute cqa-text-white cqa-top-1/2 cqa-left-1/2 cqa--translate-x-1/2 cqa--translate-y-1/2 cqa-pointer-events-none cqa-flex cqa-items-center cqa-justify-center\"\n [class.cqa-opacity-0]=\"!selected\"\n [class.cqa-opacity-100]=\"selected\">\n <svg width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 3.125L4.5 8.625L2 6.125\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </span>\n </label>\n </div>\n <div *ngIf=\"isInsideStepGroup\" class=\"cqa-ml-1 cqa-mr-1 cqa-text-[#9CA3AF]\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M11.9998 5.66667H11.3332V4.33333C11.3332 2.49333 9.83984 1 7.99984 1C6.15984 1 4.6665 2.49333 4.6665 4.33333V5.66667H3.99984C3.2665 5.66667 2.6665 6.26667 2.6665 7V13.6667C2.6665 14.4 3.2665 15 3.99984 15H11.9998C12.7332 15 13.3332 14.4 13.3332 13.6667V7C13.3332 6.26667 12.7332 5.66667 11.9998 5.66667ZM5.99984 4.33333C5.99984 3.22667 6.89317 2.33333 7.99984 2.33333C9.1065 2.33333 9.99984 3.22667 9.99984 4.33333V5.66667H5.99984V4.33333ZM11.9998 13.6667H3.99984V7H11.9998V13.6667ZM7.99984 11.6667C8.73317 11.6667 9.33317 11.0667 9.33317 10.3333C9.33317 9.6 8.73317 9 7.99984 9C7.2665 9 6.6665 9.6 6.6665 10.3333C6.6665 11.0667 7.2665 11.6667 7.99984 11.6667Z\" fill=\"currentColor\"/>\n </svg>\n </div>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-[18px] cqa-min-w-[32px]\">{{ stepNumber }}</span>\n <span title=\"Upload\" class=\"cqa-w-8 cqa-h-8 cqa-rounded-lg cqa-flex cqa-items-center cqa-justify-center cqa-flex-shrink-0 cqa-bg-[#DBEAFE] cqa-text-[#2563EB]\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.25 8.75V11.0833C12.25 11.3928 12.1271 11.6895 11.9083 11.9083C11.6895 12.1271 11.3928 12.25 11.0833 12.25H2.91667C2.60725 12.25 2.3105 12.1271 2.09171 11.9083C1.87292 11.6895 1.75 11.3928 1.75 11.0833V8.75\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.91667 4.66667L7 1.75L4.08333 4.66667\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 1.75V8.75\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n </span>\n <span class=\"cqa-text-[#111827] cqa-text-[14px] cqa-leading-[18px]\">Upload file to</span>\n <span class=\"cqa-py-0.5 cqa-px-2 cqa-text-[#2563EB] cqa-text-[14px] cqa-leading-[17px] cqa-font-semibold cqa-border cqa-border-solid cqa-border-[#93C5FD] cqa-rounded cqa-bg-[#DBEAFE]\">{{ selector }}</span>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-[18px]\">File:</span>\n <span class=\"cqa-text-[#111827] cqa-text-[14px] cqa-leading-[18px]\">{{ fileName }}</span>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-[18px]\">Source:</span>\n <span class=\"cqa-text-[#111827] cqa-text-[14px] cqa-leading-[18px]\">{{ source }}</span>\n <span class=\"cqa-text-[#6B7280] cqa-text-[14px] cqa-leading-[18px]\">{{ sourcePath }}</span>\n <div class=\"cqa-flex-grow\"></div>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2 cqa-self-center\">\n <span *ngIf=\"config?.shouldSkip\" class=\"cqa-border cqa-border-solid cqa-border-[#E5E5E5] cqa-rounded-lg cqa-py-0.5 cqa-px-2 cqa-text-[#0A0A0A] cqa-text-[12px] cqa-leading-[15px] cqa-flex-shrink-0\">Skipped</span>\n <div *ngIf=\"editable && !isInsideStepGroup && !isReorder\" class=\"step-actions cqa-flex cqa-items-center cqa-gap-1.5 cqa-pr-2\">\n <button type=\"button\" (click)=\"onEdit(); $event.stopPropagation()\" title=\"Edit\" class=\"cqa-p-0 cqa-text-[#99A1Af] hover:cqa-text-[#1447E6]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 11.6666H12.25\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9.55208 2.1128C9.7843 1.88058 10.0993 1.75012 10.4277 1.75012C10.7561 1.75012 11.071 1.88058 11.3033 2.1128C11.5355 2.34502 11.6659 2.65998 11.6659 2.98838C11.6659 3.31679 11.5355 3.63175 11.3033 3.86397L4.29742 10.8704C4.15864 11.0092 3.9871 11.1107 3.79867 11.1656L2.12333 11.6544C2.07314 11.669 2.01993 11.6699 1.96928 11.6569C1.91863 11.6439 1.8724 11.6176 1.83543 11.5806C1.79846 11.5437 1.7721 11.4974 1.75913 11.4468C1.74615 11.3961 1.74703 11.3429 1.76167 11.2927L2.2505 9.61738C2.30546 9.42916 2.40698 9.25783 2.54567 9.11922L9.55208 2.1128Z\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button>\n <button type=\"button\" (click)=\"onSkipToggle(); $event.stopPropagation()\" [attr.title]=\"config?.shouldSkip ? 'Unskip step' : 'Skip step'\" [class.cqa-text-[#1447E6]]=\"config?.shouldSkip\" class=\"cqa-p-0 cqa-text-[#99A1Af] hover:cqa-text-[#1447E6]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8.25 8.75C9.2165 8.75 10 7.9665 10 7C10 6.0335 9.2165 5.25 8.25 5.25C7.2835 5.25 6.5 6.0335 6.5 7C6.5 7.9665 7.2835 8.75 8.25 8.75Z\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8.75033 2.91663H5.25033C2.99516 2.91663 1.16699 4.7448 1.16699 6.99996C1.16699 9.25512 2.99516 11.0833 5.25033 11.0833H8.75033C11.0055 11.0833 12.8337 9.25512 12.8337 6.99996C12.8337 4.7448 11.0055 2.91663 8.75033 2.91663Z\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button>\n <!-- <button type=\"button\" (click)=\"onLink(); $event.stopPropagation()\" title=\"Link\" class=\"cqa-p-0 cqa-text-[#99A1Af] hover:cqa-text-[#1447E6]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.00065 9.91671H3.66732C2.78326 9.91671 1.93542 9.60942 1.3103 9.06244C0.685174 8.51545 0.333984 7.77359 0.333984 7.00004C0.333984 6.22649 0.685174 5.48463 1.3103 4.93765C1.93542 4.39066 2.78326 4.08337 3.66732 4.08337H5.00065\" stroke=\"currentColor\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 4.08337H10.3333C11.2174 4.08337 12.0652 4.39066 12.6904 4.93765C13.3155 5.48463 13.6667 6.22649 13.6667 7.00004C13.6667 7.77359 13.3155 8.51545 12.6904 9.06244C12.0652 9.60942 11.2174 9.91671 10.3333 9.91671H9\" stroke=\"currentColor\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.33398 7H9.66732\" stroke=\"currentColor\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button> -->\n <button type=\"button\" (click)=\"onDuplicate(); $event.stopPropagation()\" title=\"Duplicate\" class=\"cqa-p-0 cqa-text-[#99A1Af] hover:cqa-text-[#1447E6]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.666 4.66663H5.83268C5.18835 4.66663 4.66602 5.18896 4.66602 5.83329V11.6666C4.66602 12.311 5.18835 12.8333 5.83268 12.8333H11.666C12.3103 12.8333 12.8327 12.311 12.8327 11.6666V5.83329C12.8327 5.18896 12.3103 4.66663 11.666 4.66663Z\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M2.33268 9.33329C1.69102 9.33329 1.16602 8.80829 1.16602 8.16663V2.33329C1.16602 1.69163 1.69102 1.16663 2.33268 1.16663H8.16602C8.80768 1.16663 9.33268 1.69163 9.33268 2.33329\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button>\n <button type=\"button\" (click)=\"onDelete(); $event.stopPropagation()\" title=\"Delete\" class=\"cqa-p-0 cqa-text-[#ff6467] hover:cqa-text-[#C63535]\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.75 3.5H12.25\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M11.0827 3.5V11.6667C11.0827 12.25 10.4993 12.8333 9.91602 12.8333H4.08268C3.49935 12.8333 2.91602 12.25 2.91602 11.6667V3.5\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.66602 3.49996V2.33329C4.66602 1.74996 5.24935 1.16663 5.83268 1.16663H8.16602C8.74935 1.16663 9.33268 1.74996 9.33268 2.33329V3.49996\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5.83398 6.41663V9.91663\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M8.16602 6.41663V9.91663\" stroke=\"currentColor\" stroke-width=\"1.16667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></button>\n </div>\n <a *ngIf=\"config.description && config.description.trim() !== ''\" #viewDetailsTrigger href=\"#\" (click)=\"onViewDetails($event)\" class=\"cqa-text-[#3F43EE] cqa-text-[10px] cqa-leading-[15px] cqa-font-medium cqa-flex cqa-items-center cqa-gap-1 cqa-no-underline\">View Details<svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.03809 6.74329L2.62809 7.33329L5.96142 3.99996L2.62809 0.666626L2.03809 1.25663L4.78142 3.99996L2.03809 6.74329Z\" fill=\"#3F43EE\"/></svg></a>\n <!-- Created Date (from API) - last so aligned across all steps, format: 25 Feb 2026 -->\n <span *ngIf=\"config.createdDate\" class=\"step-date cqa-text-[#6B7280] cqa-text-[12px] cqa-leading-[15px] cqa-ml-auto cqa-flex-shrink-0\">\n {{ config.createdDate | date:'d MMM yyyy' }}\n </span>\n </div>\n</div>\n" }]
72
79
  }], ctorParameters: function () { return []; }, propDecorators: { config: [{
73
80
  type: Input
74
81
  }], stepNumber: [{
@@ -118,5 +125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
118
125
  type: Output
119
126
  }], selectionChange: [{
120
127
  type: Output
128
+ }], stepUpdate: [{
129
+ type: Output
121
130
  }] } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi90ZXN0LWNhc2UtZGV0YWlscy91cGxvYWQtc3RlcC91cGxvYWQtc3RlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Rlc3QtY2FzZS1kZXRhaWxzL3VwbG9hZC1zdGVwL3VwbG9hZC1zdGVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBRXRHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBU3JFLE1BQU0sT0FBTywyQkFBMkI7SUE0QnRDO1FBeEJTLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixXQUFNLEdBQXFDLGNBQWMsQ0FBQztRQUMxRCxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRXhCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFJeEIsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBK0MsQ0FBQztRQUM5RSxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNoQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNyQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNs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b25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVwbG9hZFN0ZXBDb25maWcsIFRlc3RDYXNlU3RlcENvbmZpZyB9IGZyb20gJy4uL3Rlc3QtY2FzZS1zdGVwLm1vZGVscyc7XG5pbXBvcnQgeyBTVEVQX1JPV19BQ1RJT05TX1NUWUxFUyB9IGZyb20gJy4uL3N0ZXAtcm93LWFjdGlvbnMuc3R5bGVzJztcbmltcG9ydCB7IFZpZXdEZXRhaWxzUGF5bG9hZCB9IGZyb20gJy4uL3N0ZXAtZGV0YWlscy1tb2RhbC9zdGVwLWRldGFpbHMtbW9kYWwtZGF0YSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS10ZXN0LWNhc2UtdXBsb2FkLXN0ZXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLXN0ZXAuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnIH0sXG4gIHN0eWxlczogW1NURVBfUk9XX0FDVElPTlNfU1RZTEVTXSxcbn0pXG5leHBvcnQgY2xhc3MgVGVzdENhc2VVcGxvYWRTdGVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgY29uZmlnITogVXBsb2FkU3RlcENvbmZpZztcbiAgQElucHV0KCkgc3RlcE51bWJlciE6IG51bWJlciB8IHN0cmluZztcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHNlbGVjdG9yOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgZmlsZU5hbWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBzb3VyY2U6ICdEYXRhIExpYnJhcnknIHwgJ0xvY2FsJyB8ICdVUkwnID0gJ0RhdGEgTGlicmFyeSc7XG4gIEBJbnB1dCgpIHNvdXJjZVBhdGg6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgQElucHV0KCkgc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaXNOZXN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaXNJbnNpZGVTdGVwR3JvdXA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaXNJbnNpZGVMb29wOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzUmVvcmRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBlZGl0YWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgQFZpZXdDaGlsZCgndmlld0RldGFpbHNUcmlnZ2VyJywgeyBzdGF0aWM6IGZhbHNlIH0pIHZpZXdEZXRhaWxzVHJpZ2dlcj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBPdXRwdXQoKSBlZGl0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgZWRpdEluRGVwdGggPSBuZXcgRXZlbnRFbWl0dGVyPHsgc3RlcDogVGVzdENhc2VTdGVwQ29uZmlnOyBpbmRleDogbnVtYmVyIH0+KCk7XG4gIEBPdXRwdXQoKSBsaW5rID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgZHVwbGljYXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgZGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgbW9yZU9wdGlvbnMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSB2aWV3RGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8Vmlld0RldGFpbHNQYXlsb2FkPigpO1xuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb25maWcpIHtcbiAgICAgIHRoaXMuc3RlcE51bWJlciA9IHRoaXMuY29uZmlnLnN0ZXBOdW1iZXI7XG4gICAgICB0aGlzLnNlbGVjdG9yID0gdGhpcy5jb25maWcuc2VsZWN0b3I7XG4gICAgICB0aGlzLmZpbGVOYW1lID0gdGhpcy5jb25maWcuZmlsZU5hbWU7XG4gICAgICB0aGlzLnNvdXJjZSA9IHRoaXMuY29uZmlnLnNvdXJjZTtcbiAgICAgIHRoaXMuc291cmNlUGF0aCA9IHRoaXMuY29uZmlnLnNvdXJjZVBhdGg7XG4gICAgICB0aGlzLmRlc2NyaXB0aW9uID0gdGhpcy5jb25maWcuZGVzY3JpcHRpb247XG4gICAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5jb25maWcuc2VsZWN0ZWQgfHwgZmFsc2U7XG4gICAgICB0aGlzLmRpc2FibGVkID0gdGhpcy5jb25maWcuZGlzYWJsZWQgfHwgZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgb25FZGl0KCk6IHZvaWQge1xuICAgIGNvbnN0IGlkeCA9IHR5cGVvZiB0aGlzLmluZGV4ID09PSAnbnVtYmVyJyA/IHRoaXMuaW5kZXggOiAodHlwZW9mIHRoaXMuc3RlcE51bWJlciA9PT0gJ251bWJlcicgPyB0aGlzLnN0ZXBOdW1iZXIgLSAxIDogKHR5cGVvZiB0aGlzLnN0ZXBOdW1iZXIgPT09ICdzdHJpbmcnID8gcGFyc2VJbnQodGhpcy5zdGVwTnVtYmVyLCAxMCkgLSAxIDogMCkpO1xuICAgIHRoaXMuZWRpdEluRGVwdGguZW1pdCh7IHN0ZXA6IHRoaXMuY29uZmlnIGFzIFRlc3RDYXNlU3RlcENvbmZpZywgaW5kZXg6IGlzTmFOKGlkeCBhcyBudW1iZXIpID8gMCA6IChpZHggYXMgbnVtYmVyKSB9KTtcbiAgICB0aGlzLmVkaXQuZW1pdCgpO1xuICB9XG4gIG9uTGluaygpOiB2b2lkIHsgdGhpcy5saW5rLmVtaXQoKTsgfVxuICBvbkR1cGxpY2F0ZSgpOiB2b2lkIHsgdGhpcy5kdXBsaWNhdGUuZW1pdCgpOyB9XG4gIG9uRGVsZXRlKCk6IHZvaWQgeyB0aGlzLmRlbGV0ZS5lbWl0KCk7IH1cbiAgb25Nb3JlT3B0aW9ucygpOiB2b2lkIHsgdGhpcy5tb3JlT3B0aW9ucy5lbWl0KCk7IH1cbiAgb25WaWV3RGV0YWlscyhldmVudD86IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5kZXNjcmlwdGlvbiB8fCB0aGlzLmNvbmZpZy5kZXNjcmlwdGlvbi50cmltKCkgPT09ICcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLnZpZXdEZXRhaWxzLmVtaXQoe1xuICAgICAgICBldmVudCxcbiAgICAgICAgdGl0bGU6ICdVcGxvYWQgU3RlcCBEZXRhaWxzJyxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuY29uZmlnLmRlc2NyaXB0aW9uLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIG9uU2VsZWN0aW9uQ2hhbmdlKGNoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkIHsgdGhpcy5zZWxlY3RlZCA9IGNoZWNrZWQ7IHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoY2hlY2tlZCk7IH1cbn1cbiIsIjxkaXYgW2NsYXNzXT1cIidzdGVwLXJvdyBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMyBjcWEtcHktMiAnICsgKGlzSW5zaWRlTG9vcCAmJiBpc0luc2lkZVN0ZXBHcm91cCA/ICdjcWEtcGwtMjAgY3FhLXByLTQnIDogKGlzSW5zaWRlTG9vcCB8fCBpc0luc2lkZVN0ZXBHcm91cCkgPyAnY3FhLXBsLTEwIGNxYS1wci00JyA6ICdjcWEtcHgtNCcpXCIgc3R5bGU9XCJib3JkZXItdG9wOiAxcHggc29saWQgI0U1RTdFQjtcIj5cbiAgPGRpdiBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtaXRlbXMtY2VudGVyXCI+XG4gICAgPCEtLSBEcmFnIEhhbmRsZSBJY29uICh3aGVuIGlzUmVvcmRlciBpcyB0cnVlIGFuZCBub3QgaW5zaWRlIHN0ZXAgZ3JvdXAgLSBzdGVwcyBpbnNpZGUgc3RlcCBncm91cHMgY2Fubm90IGJlIHJlb3JkZXJlZCkgLS0+XG4gICAgPGRpdiAqbmdJZj1cImlzUmVvcmRlciAmJiAhaXNJbnNpZGVTdGVwR3JvdXBcIiBjbGFzcz1cImNxYS1tci0yIGNxYS1jdXJzb3ItbW92ZSBjcWEtdGV4dC1bIzZCNzI4MF0gaG92ZXI6Y3FhLXRleHQtWyMxMTE4MjddXCI+XG4gICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjNcIiBjeT1cIjNcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjNcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjEzXCIgY3k9XCIzXCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XG4gICAgICAgIDxjaXJjbGUgY3g9XCIzXCIgY3k9XCI4XCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XG4gICAgICAgIDxjaXJjbGUgY3g9XCI4XCIgY3k9XCI4XCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XG4gICAgICAgIDxjaXJjbGUgY3g9XCIxM1wiIGN5PVwiOFwiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxuICAgICAgICA8Y2lyY2xlIGN4PVwiM1wiIGN5PVwiMTNcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjEzXCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XG4gICAgICAgIDxjaXJjbGUgY3g9XCIxM1wiIGN5PVwiMTNcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gQ2hlY2tib3ggKHdoZW4gaXNSZW9yZGVyIGlzIGZhbHNlIGFuZCBub3QgaW5zaWRlIHN0ZXAgZ3JvdXAgLSBoaWRlIGZvciBzdGVwcyBpbnNpZGUgc3RlcCBncm91cHMpIC0tPlxuICAgIDxsYWJlbCAqbmdJZj1cImVkaXRhYmxlICYmICFpc1Jlb3JkZXIgJiYgIWlzSW5zaWRlU3RlcEdyb3VwXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1jdXJzb3ItcG9pbnRlciBjcWEtcmVsYXRpdmUgY3FhLW1yLTJcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBjbGFzcz1cImNxYS1oLTQgY3FhLXctNCBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXRyYW5zaXRpb24tYWxsIGNxYS1hcHBlYXJhbmNlLW5vbmUgY3FhLXJvdW5kZWQgc2hhZG93IGhvdmVyOmNxYS1zaGFkb3ctbWQgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItc2xhdGUtMzAwIGNxYS1mbGV4LXNocmluay0wXCJcbiAgICAgICAgW2NsYXNzLmNxYS1iZy1bIzNGNDNFRV1dPVwic2VsZWN0ZWRcIlxuICAgICAgICBbY2xhc3MuY3FhLWJvcmRlci1bIzNGNDNFRV1dPVwic2VsZWN0ZWRcIlxuICAgICAgICBpZD1cImNoZWNrXCIgLz5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWFic29sdXRlIGNxYS10ZXh0LXdoaXRlIGNxYS10b3AtMS8yIGNxYS1sZWZ0LTEvMiBjcWEtLXRyYW5zbGF0ZS14LTEvMiBjcWEtLXRyYW5zbGF0ZS15LTEvMiBjcWEtcG9pbnRlci1ldmVudHMtbm9uZSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiXG4gICAgICAgIFtjbGFzcy5jcWEtb3BhY2l0eS0wXT1cIiFzZWxlY3RlZFwiXG4gICAgICAgIFtjbGFzcy5jcWEtb3BhY2l0eS0xMDBdPVwic2VsZWN0ZWRcIj5cbiAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTNcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMCAzLjEyNUw0LjUgOC42MjVMMiA2LjEyNVwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsjNkI3MjgwXSBjcWEtdGV4dC1bMTRweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS1taW4tdy1bMzJweF1cIj57eyBzdGVwTnVtYmVyIH19PC9zcGFuPlxuICA8c3BhbiB0aXRsZT1cIlVwbG9hZFwiIGNsYXNzPVwiY3FhLXctOCBjcWEtaC04IGNxYS1yb3VuZGVkLWxnIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS1mbGV4LXNocmluay0wIGNxYS1iZy1bI0RCRUFGRV0gY3FhLXRleHQtWyMyNTYzRUJdXCI+XG4gICAgPHN2ZyB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMi4yNSA4Ljc1VjExLjA4MzNDMTIuMjUgMTEuMzkyOCAxMi4xMjcxIDExLjY4OTUgMTEuOTA4MyAxMS45MDgzQzExLjY4OTUgMTIuMTI3MSAxMS4zOTI4IDEyLjI1IDExLjA4MzMgMTIuMjVIMi45MTY2N0MyLjYwNzI1IDEyLjI1IDIuMzEwNSAxMi4xMjcxIDIuMDkxNzEgMTEuOTA4M0MxLjg3MjkyIDExLjY4OTUgMS43NSAxMS4zOTI4IDEuNzUgMTEuMDgzM1Y4Ljc1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTkuOTE2NjcgNC42NjY2N0w3IDEuNzVMNC4wODMzMyA0LjY2NjY3XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTcgMS43NVY4Ljc1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgPC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsjMTExODI3XSBjcWEtdGV4dC1bMTRweF0gY3FhLWxlYWRpbmctWzE4cHhdXCI+VXBsb2FkIGZpbGUgdG88L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwiY3FhLXB5LTAuNSBjcWEtcHgtMiBjcWEtdGV4dC1bIzI1NjNFQl0gY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsxN3B4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bIzkzQzVGRF0gY3FhLXJvdW5kZWQgY3FhLWJnLVsjREJFQUZFXVwiPnt7IHNlbGVjdG9yIH19PC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsjNkI3MjgwXSBjcWEtdGV4dC1bMTRweF0gY3FhLWxlYWRpbmctWzE4cHhdXCI+RmlsZTo8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWyMxMTE4MjddIGNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMThweF1cIj57eyBmaWxlTmFtZSB9fTwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bIzZCNzI4MF0gY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsxOHB4XVwiPlNvdXJjZTo8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWyMxMTE4MjddIGNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMThweF1cIj57eyBzb3VyY2UgfX08L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWyM2QjcyODBdIGNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMThweF1cIj57eyBzb3VyY2VQYXRoIH19PC9zcGFuPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtZ3Jvd1wiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXNlbGYtY2VudGVyXCI+XG4gICAgPGRpdiAqbmdJZj1cImVkaXRhYmxlICYmICFpc0luc2lkZVN0ZXBHcm91cCAmJiAhaXNSZW9yZGVyXCIgY2xhc3M9XCJzdGVwLWFjdGlvbnMgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEuNSBjcWEtcHItMlwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkVkaXQoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgdGl0bGU9XCJFZGl0XCIgY2xhc3M9XCJjcWEtcC0wIGNxYS10ZXh0LVsjOTlBMUFmXSBob3ZlcjpjcWEtdGV4dC1bIzE0NDdFNl1cIj48c3ZnIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTcgMTEuNjY2NkgxMi4yNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk05LjU1MjA4IDIuMTEyOEM5Ljc4NDMgMS44ODA1OCAxMC4wOTkzIDEuNzUwMTIgMTAuNDI3NyAxLjc1MDEyQzEwLjc1NjEgMS43NTAxMiAxMS4wNzEgMS44ODA1OCAxMS4zMDMzIDIuMTEyOEMxMS41MzU1IDIuMzQ1MDIgMTEuNjY1OSAyLjY1OTk4IDExLjY2NTkgMi45ODgzOEMxMS42NjU5IDMuMzE2NzkgMTEuNTM1NSAzLjYzMTc1IDExLjMwMzMgMy44NjM5N0w0LjI5NzQyIDEwLjg3MDRDNC4xNTg2NCAxMS4wMDkyIDMuOTg3MSAxMS4xMTA3IDMuNzk4NjcgMTEuMTY1NkwyLjEyMzMzIDExLjY1NDRDMi4wNzMxNCAxMS42NjkgMi4wMTk5MyAxMS42Njk5IDEuOTY5MjggMTEuNjU2OUMxLjkxODYzIDExLjY0MzkgMS44NzI0IDExLjYxNzYgMS44MzU0MyAxMS41ODA2QzEuNzk4NDYgMTEuNTQzNyAxLjc3MjEgMTEuNDk3NCAxLjc1OTEzIDExLjQ0NjhDMS43NDYxNSAxMS4zOTYxIDEuNzQ3MDMgMTEuMzQyOSAxLjc2MTY3IDExLjI5MjdMMi4yNTA1IDkuNjE3MzhDMi4zMDU0NiA5LjQyOTE2IDIuNDA2OTggOS4yNTc4MyAyLjU0NTY3IDkuMTE5MjJMOS41NTIwOCAyLjExMjhaXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2J1dHRvbj5cbiAgICA8IS0tIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkxpbmsoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgdGl0bGU9XCJMaW5rXCIgY2xhc3M9XCJjcWEtcC0wIGNxYS10ZXh0LVsjOTlBMUFmXSBob3ZlcjpjcWEtdGV4dC1bIzE0NDdFNl1cIj48c3ZnIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTUuMDAwNjUgOS45MTY3MUgzLjY2NzMyQzIuNzgzMjYgOS45MTY3MSAxLjkzNTQyIDkuNjA5NDIgMS4zMTAzIDkuMDYyNDRDMC42ODUxNzQgOC41MTU0NSAwLjMzMzk4NCA3Ljc3MzU5IDAuMzMzOTg0IDcuMDAwMDRDMC4zMzM5ODQgNi4yMjY0OSAwLjY4NTE3NCA1LjQ4NDYzIDEuMzEwMyA0LjkzNzY1QzEuOTM1NDIgNC4zOTA2NiAyLjc4MzI2IDQuMDgzMzcgMy42NjczMiA0LjA4MzM3SDUuMDAwNjVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNOSA0LjA4MzM3SDEwLjMzMzNDMTEuMjE3NCA0LjA4MzM3IDEyLjA2NTIgNC4zOTA2NiAxMi42OTA0IDQuOTM3NjVDMTMuMzE1NSA1LjQ4NDYzIDEzLjY2NjcgNi4yMjY0OSAxMy42NjY3IDcuMDAwMDRDMTMuNjY2NyA3Ljc3MzU5IDEzLjMxNTUgOC41MTU0NSAxMi42OTA0IDkuMDYyNDRDMTIuMDY1MiA5LjYwOTQyIDExLjIxNzQgOS45MTY3MSAxMC4zMzMzIDkuOTE2NzFIOVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk00LjMzMzk4IDdIOS42NjczMlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9idXR0b24+IC0tPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkR1cGxpY2F0ZSgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiB0aXRsZT1cIkR1cGxpY2F0ZVwiIGNsYXNzPVwiY3FhLXAtMCBjcWEtdGV4dC1bIzk5QTFBZl0gaG92ZXI6Y3FhLXRleHQtWyMxNDQ3RTZdXCI+PHN2ZyB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMS42NjYgNC42NjY2M0g1LjgzMjY4QzUuMTg4MzUgNC42NjY2MyA0LjY2NjAyIDUuMTg4OTYgNC42NjYwMiA1LjgzMzI5VjExLjY2NjZDNC42NjYwMiAxMi4zMTEgNS4xODgzNSAxMi44MzMzIDUuODMyNjggMTIuODMzM0gxMS42NjZDMTIuMzEwMyAxMi44MzMzIDEyLjgzMjcgMTIuMzExIDEyLjgzMjcgMTEuNjY2NlY1LjgzMzI5QzEyLjgzMjcgNS4xODg5NiAxMi4zMTAzIDQuNjY2NjMgMTEuNjY2IDQuNjY2NjNaXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTIuMzMyNjggOS4zMzMyOUMxLjY5MTAyIDkuMzMzMjkgMS4xNjYwMiA4LjgwODI5IDEuMTY2MDIgOC4xNjY2M1YyLjMzMzI5QzEuMTY2MDIgMS42OTE2MyAxLjY5MTAyIDEuMTY2NjMgMi4zMzI2OCAxLjE2NjYzSDguMTY2MDJDOC44MDc2OCAxLjE2NjYzIDkuMzMyNjggMS42OTE2MyA5LjMzMjY4IDIuMzMzMjlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPjwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkRlbGV0ZSgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiB0aXRsZT1cIkRlbGV0ZVwiIGNsYXNzPVwiY3FhLXAtMCBjcWEtdGV4dC1bI2ZmNjQ2N10gaG92ZXI6Y3FhLXRleHQtWyNDNjM1MzVdXCI+PHN2ZyB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xLjc1IDMuNUgxMi4yNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0xMS4wODI3IDMuNVYxMS42NjY3QzExLjA4MjcgMTIuMjUgMTAuNDk5MyAxMi44MzMzIDkuOTE2MDIgMTIuODMzM0g0LjA4MjY4QzMuNDk5MzUgMTIuODMzMyAyLjkxNjAyIDEyLjI1IDIuOTE2MDIgMTEuNjY2N1YzLjVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNC42NjYwMiAzLjQ5OTk2VjIuMzMzMjlDNC42NjYwMiAxLjc0OTk2IDUuMjQ5MzUgMS4xNjY2MyA1LjgzMjY4IDEuMTY2NjNIOC4xNjYwMkM4Ljc0OTM1IDEuMTY2NjMgOS4zMzI2OCAxLjc0OTk2IDkuMzMyNjggMi4zMzMyOVYzLjQ5OTk2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTUuODMzOTggNi40MTY2M1Y5LjkxNjYzXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTguMTY2MDIgNi40MTY2M1Y5LjkxNjYzXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8YSAqbmdJZj1cImNvbmZpZy5kZXNjcmlwdGlvbiAmJiBjb25maWcuZGVzY3JpcHRpb24udHJpbSgpICE9PSAnJ1wiICN2aWV3RGV0YWlsc1RyaWdnZXIgaHJlZj1cIiNcIiAoY2xpY2spPVwib25WaWV3RGV0YWlscygkZXZlbnQpXCIgY2xhc3M9XCJjcWEtdGV4dC1bIzNGNDNFRV0gY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEgY3FhLW5vLXVuZGVybGluZVwiPlZpZXcgRGV0YWlsczxzdmcgd2lkdGg9XCI4XCIgaGVpZ2h0PVwiOFwiIHZpZXdCb3g9XCIwIDAgOCA4XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0yLjAzODA5IDYuNzQzMjlMMi42MjgwOSA3LjMzMzI5TDUuOTYxNDIgMy45OTk5NkwyLjYyODA5IDAuNjY2NjI2TDIuMDM4MDkgMS4yNTY2M0w0Ljc4MTQyIDMuOTk5OTZMMi4wMzgwOSA2Ljc0MzI5WlwiIGZpbGw9XCIjM0Y0M0VFXCIvPjwvc3ZnPjwvYT5cbiAgICA8IS0tIENyZWF0ZWQgRGF0ZSAoZnJvbSBBUEkpIC0gbGFzdCBzbyBhbGlnbmVkIGFjcm9zcyBhbGwgc3RlcHMsIGZvcm1hdDogMjUgRmViIDIwMjYgLS0+XG4gICAgPHNwYW4gKm5nSWY9XCJjb25maWcuY3JlYXRlZERhdGVcIiBjbGFzcz1cInN0ZXAtZGF0ZSBjcWEtdGV4dC1bIzZCNzI4MF0gY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtbWwtYXV0byBjcWEtZmxleC1zaHJpbmstMFwiPlxuICAgICAge3sgY29uZmlnLmNyZWF0ZWREYXRlIHwgZGF0ZTonZCBNTU0geXl5eScgfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi90ZXN0LWNhc2UtZGV0YWlscy91cGxvYWQtc3RlcC91cGxvYWQtc3RlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Rlc3QtY2FzZS1kZXRhaWxzL3VwbG9hZC1zdGVwL3VwbG9hZC1zdGVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBRXRHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBU3JFLE1BQU0sT0FBTywyQkFBMkI7SUE2QnRDO1FBekJTLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixXQUFNLEdBQXFDLGNBQWMsQ0FBQztRQUMxRCxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRXhCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFJeEIsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBK0MsQ0FBQztRQUM5RSxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNoQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNyQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNs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LGtCQUFrQjtzQkFBckUsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRXhDLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVcGxvYWRTdGVwQ29uZmlnLCBUZXN0Q2FzZVN0ZXBDb25maWcgfSBmcm9tICcuLi90ZXN0LWNhc2Utc3RlcC5tb2RlbHMnO1xuaW1wb3J0IHsgU1RFUF9ST1dfQUNUSU9OU19TVFlMRVMgfSBmcm9tICcuLi9zdGVwLXJvdy1hY3Rpb25zLnN0eWxlcyc7XG5pbXBvcnQgeyBWaWV3RGV0YWlsc1BheWxvYWQgfSBmcm9tICcuLi9zdGVwLWRldGFpbHMtbW9kYWwvc3RlcC1kZXRhaWxzLW1vZGFsLWRhdGEnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtdGVzdC1jYXNlLXVwbG9hZC1zdGVwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC1zdGVwLmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9LFxuICBzdHlsZXM6IFtTVEVQX1JPV19BQ1RJT05TX1NUWUxFU10sXG59KVxuZXhwb3J0IGNsYXNzIFRlc3RDYXNlVXBsb2FkU3RlcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGNvbmZpZyE6IFVwbG9hZFN0ZXBDb25maWc7XG4gIEBJbnB1dCgpIHN0ZXBOdW1iZXIhOiBudW1iZXIgfCBzdHJpbmc7XG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xuICBASW5wdXQoKSBzZWxlY3Rvcjogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGZpbGVOYW1lOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgc291cmNlOiAnRGF0YSBMaWJyYXJ5JyB8ICdMb2NhbCcgfCAnVVJMJyA9ICdEYXRhIExpYnJhcnknO1xuICBASW5wdXQoKSBzb3VyY2VQYXRoOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzTmVzdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzSW5zaWRlU3RlcEdyb3VwOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzSW5zaWRlTG9vcDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpc1Jlb3JkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZWRpdGFibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBWaWV3Q2hpbGQoJ3ZpZXdEZXRhaWxzVHJpZ2dlcicsIHsgc3RhdGljOiBmYWxzZSB9KSB2aWV3RGV0YWlsc1RyaWdnZXI/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAT3V0cHV0KCkgZWRpdCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGVkaXRJbkRlcHRoID0gbmV3IEV2ZW50RW1pdHRlcjx7IHN0ZXA6IFRlc3RDYXNlU3RlcENvbmZpZzsgaW5kZXg6IG51bWJlciB9PigpO1xuICBAT3V0cHV0KCkgbGluayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGR1cGxpY2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIG1vcmVPcHRpb25zID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgdmlld0RldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPFZpZXdEZXRhaWxzUGF5bG9hZD4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIHN0ZXBVcGRhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPFRlc3RDYXNlU3RlcENvbmZpZz4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29uZmlnKSB7XG4gICAgICB0aGlzLnN0ZXBOdW1iZXIgPSB0aGlzLmNvbmZpZy5zdGVwTnVtYmVyO1xuICAgICAgdGhpcy5zZWxlY3RvciA9IHRoaXMuY29uZmlnLnNlbGVjdG9yO1xuICAgICAgdGhpcy5maWxlTmFtZSA9IHRoaXMuY29uZmlnLmZpbGVOYW1lO1xuICAgICAgdGhpcy5zb3VyY2UgPSB0aGlzLmNvbmZpZy5zb3VyY2U7XG4gICAgICB0aGlzLnNvdXJjZVBhdGggPSB0aGlzLmNvbmZpZy5zb3VyY2VQYXRoO1xuICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IHRoaXMuY29uZmlnLmRlc2NyaXB0aW9uO1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMuY29uZmlnLnNlbGVjdGVkIHx8IGZhbHNlO1xuICAgICAgdGhpcy5kaXNhYmxlZCA9IHRoaXMuY29uZmlnLmRpc2FibGVkIHx8IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uRWRpdCgpOiB2b2lkIHtcbiAgICBjb25zdCBpZHggPSB0eXBlb2YgdGhpcy5pbmRleCA9PT0gJ251bWJlcicgPyB0aGlzLmluZGV4IDogKHR5cGVvZiB0aGlzLnN0ZXBOdW1iZXIgPT09ICdudW1iZXInID8gdGhpcy5zdGVwTnVtYmVyIC0gMSA6ICh0eXBlb2YgdGhpcy5zdGVwTnVtYmVyID09PSAnc3RyaW5nJyA/IHBhcnNlSW50KHRoaXMuc3RlcE51bWJlciwgMTApIC0gMSA6IDApKTtcbiAgICB0aGlzLmVkaXRJbkRlcHRoLmVtaXQoeyBzdGVwOiB0aGlzLmNvbmZpZyBhcyBUZXN0Q2FzZVN0ZXBDb25maWcsIGluZGV4OiBpc05hTihpZHggYXMgbnVtYmVyKSA/IDAgOiAoaWR4IGFzIG51bWJlcikgfSk7XG4gICAgdGhpcy5lZGl0LmVtaXQoKTtcbiAgfVxuICBvbkxpbmsoKTogdm9pZCB7IHRoaXMubGluay5lbWl0KCk7IH1cbiAgb25EdXBsaWNhdGUoKTogdm9pZCB7IHRoaXMuZHVwbGljYXRlLmVtaXQoKTsgfVxuICBvblNraXBUb2dnbGUoKTogdm9pZCB7XG4gICAgLy8gVG9nZ2xlOiBpZiBjdXJyZW50bHkgdHJ1ZSDihpIgcGFzcyBmYWxzZSAodW5za2lwKTsgaWYgY3VycmVudGx5IGZhbHNlL3VuZGVmaW5lZCDihpIgcGFzcyB0cnVlIChza2lwKVxuICAgIGNvbnN0IGN1cnJlbnRseVNraXBwZWQgPSAhISh0aGlzLmNvbmZpZz8uc2hvdWxkU2tpcCk7XG4gICAgY29uc3Qgc2hvdWxkU2tpcE5leHQgPSAhY3VycmVudGx5U2tpcHBlZDtcbiAgICB0aGlzLnN0ZXBVcGRhdGUuZW1pdCh7IC4uLnRoaXMuY29uZmlnLCBzaG91bGRTa2lwOiBzaG91bGRTa2lwTmV4dCB9IGFzIFRlc3RDYXNlU3RlcENvbmZpZyk7XG4gIH1cbiAgb25EZWxldGUoKTogdm9pZCB7IHRoaXMuZGVsZXRlLmVtaXQoKTsgfVxuICBvbk1vcmVPcHRpb25zKCk6IHZvaWQgeyB0aGlzLm1vcmVPcHRpb25zLmVtaXQoKTsgfVxuICBvblZpZXdEZXRhaWxzKGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgICBcbiAgICBpZiAoIXRoaXMuY29uZmlnLmRlc2NyaXB0aW9uIHx8IHRoaXMuY29uZmlnLmRlc2NyaXB0aW9uLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMudmlld0RldGFpbHMuZW1pdCh7XG4gICAgICAgIGV2ZW50LFxuICAgICAgICB0aXRsZTogJ1VwbG9hZCBTdGVwIERldGFpbHMnLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5jb25maWcuZGVzY3JpcHRpb24sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgb25TZWxlY3Rpb25DaGFuZ2UoY2hlY2tlZDogYm9vbGVhbik6IHZvaWQgeyB0aGlzLnNlbGVjdGVkID0gY2hlY2tlZDsgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChjaGVja2VkKTsgfVxufVxuIiwiPGRpdiBbY2xhc3NdPVwiJ3N0ZXAtcm93IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0zIGNxYS1weS0yICcgKyAoaXNJbnNpZGVMb29wICYmIGlzSW5zaWRlU3RlcEdyb3VwID8gJ2NxYS1wbC0yMCBjcWEtcHItNCcgOiAoaXNJbnNpZGVMb29wIHx8IGlzSW5zaWRlU3RlcEdyb3VwKSA/ICdjcWEtcGwtMTAgY3FhLXByLTQnIDogJ2NxYS1weC00JykgKyAoY29uZmlnPy5zaG91bGRTa2lwID8gJyBjcWEtc3RlcC1za2lwcGVkJyA6ICcnKVwiIFtzdHlsZS5vcGFjaXR5XT1cImNvbmZpZz8uc2hvdWxkU2tpcCA/ICcwLjYnIDogbnVsbFwiIHN0eWxlPVwiYm9yZGVyLXRvcDogMXB4IHNvbGlkICNFNUU3RUJcIj5cbiAgPGRpdiBjbGFzcz1cImNxYS1pbmxpbmUtZmxleCBjcWEtaXRlbXMtY2VudGVyXCI+XG4gICAgPCEtLSBEcmFnIEhhbmRsZSBJY29uICh3aGVuIGlzUmVvcmRlciBpcyB0cnVlIGFuZCBub3QgaW5zaWRlIHN0ZXAgZ3JvdXAgLSBzdGVwcyBpbnNpZGUgc3RlcCBncm91cHMgY2Fubm90IGJlIHJlb3JkZXJlZCkgLS0+XG4gICAgPGRpdiAqbmdJZj1cImlzUmVvcmRlciAmJiAhaXNJbnNpZGVTdGVwR3JvdXBcIiBjbGFzcz1cImNxYS1tci0yIGNxYS1jdXJzb3ItbW92ZSBjcWEtdGV4dC1bIzZCNzI4MF0gaG92ZXI6Y3FhLXRleHQtWyMxMTE4MjddXCI+XG4gICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjNcIiBjeT1cIjNcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjNcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjEzXCIgY3k9XCIzXCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XG4gICAgICAgIDxjaXJjbGUgY3g9XCIzXCIgY3k9XCI4XCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XG4gICAgICAgIDxjaXJjbGUgY3g9XCI4XCIgY3k9XCI4XCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XG4gICAgICAgIDxjaXJjbGUgY3g9XCIxM1wiIGN5PVwiOFwiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxuICAgICAgICA8Y2lyY2xlIGN4PVwiM1wiIGN5PVwiMTNcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjEzXCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XG4gICAgICAgIDxjaXJjbGUgY3g9XCIxM1wiIGN5PVwiMTNcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gQ2hlY2tib3ggKHdoZW4gaXNSZW9yZGVyIGlzIGZhbHNlIGFuZCBub3QgaW5zaWRlIHN0ZXAgZ3JvdXAgLSBoaWRlIGZvciBzdGVwcyBpbnNpZGUgc3RlcCBncm91cHMpIC0tPlxuICAgIDxsYWJlbCAqbmdJZj1cImVkaXRhYmxlICYmICFpc1Jlb3JkZXIgJiYgIWlzSW5zaWRlU3RlcEdyb3VwXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1jdXJzb3ItcG9pbnRlciBjcWEtcmVsYXRpdmUgY3FhLW1yLTJcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBjbGFzcz1cImNxYS1oLTQgY3FhLXctNCBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXRyYW5zaXRpb24tYWxsIGNxYS1hcHBlYXJhbmNlLW5vbmUgY3FhLXJvdW5kZWQgc2hhZG93IGhvdmVyOmNxYS1zaGFkb3ctbWQgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItc2xhdGUtMzAwIGNxYS1mbGV4LXNocmluay0wXCJcbiAgICAgICAgW2NsYXNzLmNxYS1iZy1bIzNGNDNFRV1dPVwic2VsZWN0ZWRcIlxuICAgICAgICBbY2xhc3MuY3FhLWJvcmRlci1bIzNGNDNFRV1dPVwic2VsZWN0ZWRcIlxuICAgICAgICBpZD1cImNoZWNrXCIgLz5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWFic29sdXRlIGNxYS10ZXh0LXdoaXRlIGNxYS10b3AtMS8yIGNxYS1sZWZ0LTEvMiBjcWEtLXRyYW5zbGF0ZS14LTEvMiBjcWEtLXRyYW5zbGF0ZS15LTEvMiBjcWEtcG9pbnRlci1ldmVudHMtbm9uZSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiXG4gICAgICAgIFtjbGFzcy5jcWEtb3BhY2l0eS0wXT1cIiFzZWxlY3RlZFwiXG4gICAgICAgIFtjbGFzcy5jcWEtb3BhY2l0eS0xMDBdPVwic2VsZWN0ZWRcIj5cbiAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTNcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMCAzLjEyNUw0LjUgOC42MjVMMiA2LjEyNVwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiaXNJbnNpZGVTdGVwR3JvdXBcIiBjbGFzcz1cImNxYS1tbC0xIGNxYS1tci0xIGNxYS10ZXh0LVsjOUNBM0FGXVwiPlxuICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHBhdGggZD1cIk0xMS45OTk4IDUuNjY2NjdIMTEuMzMzMlY0LjMzMzMzQzExLjMzMzIgMi40OTMzMyA5LjgzOTg0IDEgNy45OTk4NCAxQzYuMTU5ODQgMSA0LjY2NjUgMi40OTMzMyA0LjY2NjUgNC4zMzMzM1Y1LjY2NjY3SDMuOTk5ODRDMy4yNjY1IDUuNjY2NjcgMi42NjY1IDYuMjY2NjcgMi42NjY1IDdWMTMuNjY2N0MyLjY2NjUgMTQuNCAzLjI2NjUgMTUgMy45OTk4NCAxNUgxMS45OTk4QzEyLjczMzIgMTUgMTMuMzMzMiAxNC40IDEzLjMzMzIgMTMuNjY2N1Y3QzEzLjMzMzIgNi4yNjY2NyAxMi43MzMyIDUuNjY2NjcgMTEuOTk5OCA1LjY2NjY3Wk01Ljk5OTg0IDQuMzMzMzNDNS45OTk4NCAzLjIyNjY3IDYuODkzMTcgMi4zMzMzMyA3Ljk5OTg0IDIuMzMzMzNDOS4xMDY1IDIuMzMzMzMgOS45OTk4NCAzLjIyNjY3IDkuOTk5ODQgNC4zMzMzM1Y1LjY2NjY3SDUuOTk5ODRWNC4zMzMzM1pNMTEuOTk5OCAxMy42NjY3SDMuOTk5ODRWN0gxMS45OTk4VjEzLjY2NjdaTTcuOTk5ODQgMTEuNjY2N0M4LjczMzE3IDExLjY2NjcgOS4zMzMxNyAxMS4wNjY3IDkuMzMzMTcgMTAuMzMzM0M5LjMzMzE3IDkuNiA4LjczMzE3IDkgNy45OTk4NCA5QzcuMjY2NSA5IDYuNjY2NSA5LjYgNi42NjY1IDEwLjMzMzNDNi42NjY1IDExLjA2NjcgNy4yNjY1IDExLjY2NjcgNy45OTk4NCAxMS42NjY3WlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XG4gICAgPC9zdmc+XG4gIDwvZGl2PlxuICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsjNkI3MjgwXSBjcWEtdGV4dC1bMTRweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS1taW4tdy1bMzJweF1cIj57eyBzdGVwTnVtYmVyIH19PC9zcGFuPlxuICA8c3BhbiB0aXRsZT1cIlVwbG9hZFwiIGNsYXNzPVwiY3FhLXctOCBjcWEtaC04IGNxYS1yb3VuZGVkLWxnIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS1mbGV4LXNocmluay0wIGNxYS1iZy1bI0RCRUFGRV0gY3FhLXRleHQtWyMyNTYzRUJdXCI+XG4gICAgPHN2ZyB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMi4yNSA4Ljc1VjExLjA4MzNDMTIuMjUgMTEuMzkyOCAxMi4xMjcxIDExLjY4OTUgMTEuOTA4MyAxMS45MDgzQzExLjY4OTUgMTIuMTI3MSAxMS4zOTI4IDEyLjI1IDExLjA4MzMgMTIuMjVIMi45MTY2N0MyLjYwNzI1IDEyLjI1IDIuMzEwNSAxMi4xMjcxIDIuMDkxNzEgMTEuOTA4M0MxLjg3MjkyIDExLjY4OTUgMS43NSAxMS4zOTI4IDEuNzUgMTEuMDgzM1Y4Ljc1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTkuOTE2NjcgNC42NjY2N0w3IDEuNzVMNC4wODMzMyA0LjY2NjY3XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTcgMS43NVY4Ljc1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgPC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsjMTExODI3XSBjcWEtdGV4dC1bMTRweF0gY3FhLWxlYWRpbmctWzE4cHhdXCI+VXBsb2FkIGZpbGUgdG88L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwiY3FhLXB5LTAuNSBjcWEtcHgtMiBjcWEtdGV4dC1bIzI1NjNFQl0gY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsxN3B4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bIzkzQzVGRF0gY3FhLXJvdW5kZWQgY3FhLWJnLVsjREJFQUZFXVwiPnt7IHNlbGVjdG9yIH19PC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsjNkI3MjgwXSBjcWEtdGV4dC1bMTRweF0gY3FhLWxlYWRpbmctWzE4cHhdXCI+RmlsZTo8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWyMxMTE4MjddIGNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMThweF1cIj57eyBmaWxlTmFtZSB9fTwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bIzZCNzI4MF0gY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsxOHB4XVwiPlNvdXJjZTo8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWyMxMTE4MjddIGNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMThweF1cIj57eyBzb3VyY2UgfX08L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWyM2QjcyODBdIGNxYS10ZXh0LVsxNHB4XSBjcWEtbGVhZGluZy1bMThweF1cIj57eyBzb3VyY2VQYXRoIH19PC9zcGFuPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtZ3Jvd1wiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXNlbGYtY2VudGVyXCI+XG4gICAgPHNwYW4gKm5nSWY9XCJjb25maWc/LnNob3VsZFNraXBcIiBjbGFzcz1cImNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLVsjRTVFNUU1XSBjcWEtcm91bmRlZC1sZyBjcWEtcHktMC41IGNxYS1weC0yIGNxYS10ZXh0LVsjMEEwQTBBXSBjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mbGV4LXNocmluay0wXCI+U2tpcHBlZDwvc3Bhbj5cbiAgICA8ZGl2ICpuZ0lmPVwiZWRpdGFibGUgJiYgIWlzSW5zaWRlU3RlcEdyb3VwICYmICFpc1Jlb3JkZXJcIiBjbGFzcz1cInN0ZXAtYWN0aW9ucyBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMS41IGNxYS1wci0yXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uRWRpdCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiB0aXRsZT1cIkVkaXRcIiBjbGFzcz1cImNxYS1wLTAgY3FhLXRleHQtWyM5OUExQWZdIGhvdmVyOmNxYS10ZXh0LVsjMTQ0N0U2XVwiPjxzdmcgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNyAxMS42NjY2SDEyLjI1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTkuNTUyMDggMi4xMTI4QzkuNzg0MyAxLjg4MDU4IDEwLjA5OTMgMS43NTAxMiAxMC40Mjc3IDEuNzUwMTJDMTAuNzU2MSAxLjc1MDEyIDExLjA3MSAxLjg4MDU4IDExLjMwMzMgMi4xMTI4QzExLjUzNTUgMi4zNDUwMiAxMS42NjU5IDIuNjU5OTggMTEuNjY1OSAyLjk4ODM4QzExLjY2NTkgMy4zMTY3OSAxMS41MzU1IDMuNjMxNzUgMTEuMzAzMyAzLjg2Mzk3TDQuMjk3NDIgMTAuODcwNEM0LjE1ODY0IDExLjAwOTIgMy45ODcxIDExLjExMDcgMy43OTg2NyAxMS4xNjU2TDIuMTIzMzMgMTEuNjU0NEMyLjA3MzE0IDExLjY2OSAyLjAxOTkzIDExLjY2OTkgMS45NjkyOCAxMS42NTY5QzEuOTE4NjMgMTEuNjQzOSAxLjg3MjQgMTEuNjE3NiAxLjgzNTQzIDExLjU4MDZDMS43OTg0NiAxMS41NDM3IDEuNzcyMSAxMS40OTc0IDEuNzU5MTMgMTEuNDQ2OEMxLjc0NjE1IDExLjM5NjEgMS43NDcwMyAxMS4zNDI5IDEuNzYxNjcgMTEuMjkyN0wyLjI1MDUgOS42MTczOEMyLjMwNTQ2IDkuNDI5MTYgMi40MDY5OCA5LjI1NzgzIDIuNTQ1NjcgOS4xMTkyMkw5LjU1MjA4IDIuMTEyOFpcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPjwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvblNraXBUb2dnbGUoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgW2F0dHIudGl0bGVdPVwiY29uZmlnPy5zaG91bGRTa2lwID8gJ1Vuc2tpcCBzdGVwJyA6ICdTa2lwIHN0ZXAnXCIgW2NsYXNzLmNxYS10ZXh0LVsjMTQ0N0U2XV09XCJjb25maWc/LnNob3VsZFNraXBcIiBjbGFzcz1cImNxYS1wLTAgY3FhLXRleHQtWyM5OUExQWZdIGhvdmVyOmNxYS10ZXh0LVsjMTQ0N0U2XVwiPjxzdmcgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNOC4yNSA4Ljc1QzkuMjE2NSA4Ljc1IDEwIDcuOTY2NSAxMCA3QzEwIDYuMDMzNSA5LjIxNjUgNS4yNSA4LjI1IDUuMjVDNy4yODM1IDUuMjUgNi41IDYuMDMzNSA2LjUgN0M2LjUgNy45NjY1IDcuMjgzNSA4Ljc1IDguMjUgOC43NVpcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNOC43NTAzMyAyLjkxNjYzSDUuMjUwMzNDMi45OTUxNiAyLjkxNjYzIDEuMTY2OTkgNC43NDQ4IDEuMTY2OTkgNi45OTk5NkMxLjE2Njk5IDkuMjU1MTIgMi45OTUxNiAxMS4wODMzIDUuMjUwMzMgMTEuMDgzM0g4Ljc1MDMzQzExLjAwNTUgMTEuMDgzMyAxMi44MzM3IDkuMjU1MTIgMTIuODMzNyA2Ljk5OTk2QzEyLjgzMzcgNC43NDQ4IDExLjAwNTUgMi45MTY2MyA4Ljc1MDMzIDIuOTE2NjNaXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2J1dHRvbj5cbiAgICA8IS0tIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkxpbmsoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgdGl0bGU9XCJMaW5rXCIgY2xhc3M9XCJjcWEtcC0wIGNxYS10ZXh0LVsjOTlBMUFmXSBob3ZlcjpjcWEtdGV4dC1bIzE0NDdFNl1cIj48c3ZnIHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTQgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTUuMDAwNjUgOS45MTY3MUgzLjY2NzMyQzIuNzgzMjYgOS45MTY3MSAxLjkzNTQyIDkuNjA5NDIgMS4zMTAzIDkuMDYyNDRDMC42ODUxNzQgOC41MTU0NSAwLjMzMzk4NCA3Ljc3MzU5IDAuMzMzOTg0IDcuMDAwMDRDMC4zMzM5ODQgNi4yMjY0OSAwLjY4NTE3NCA1LjQ4NDYzIDEuMzEwMyA0LjkzNzY1QzEuOTM1NDIgNC4zOTA2NiAyLjc4MzI2IDQuMDgzMzcgMy42NjczMiA0LjA4MzM3SDUuMDAwNjVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNOSA0LjA4MzM3SDEwLjMzMzNDMTEuMjE3NCA0LjA4MzM3IDEyLjA2NTIgNC4zOTA2NiAxMi42OTA0IDQuOTM3NjVDMTMuMzE1NSA1LjQ4NDYzIDEzLjY2NjcgNi4yMjY0OSAxMy42NjY3IDcuMDAwMDRDMTMuNjY2NyA3Ljc3MzU5IDEzLjMxNTUgOC41MTU0NSAxMi42OTA0IDkuMDYyNDRDMTIuMDY1MiA5LjYwOTQyIDExLjIxNzQgOS45MTY3MSAxMC4zMzMzIDkuOTE2NzFIOVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk00LjMzMzk4IDdIOS42NjczMlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9idXR0b24+IC0tPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkR1cGxpY2F0ZSgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiB0aXRsZT1cIkR1cGxpY2F0ZVwiIGNsYXNzPVwiY3FhLXAtMCBjcWEtdGV4dC1bIzk5QTFBZl0gaG92ZXI6Y3FhLXRleHQtWyMxNDQ3RTZdXCI+PHN2ZyB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xMS42NjYgNC42NjY2M0g1LjgzMjY4QzUuMTg4MzUgNC42NjY2MyA0LjY2NjAyIDUuMTg4OTYgNC42NjYwMiA1LjgzMzI5VjExLjY2NjZDNC42NjYwMiAxMi4zMTEgNS4xODgzNSAxMi44MzMzIDUuODMyNjggMTIuODMzM0gxMS42NjZDMTIuMzEwMyAxMi44MzMzIDEyLjgzMjcgMTIuMzExIDEyLjgzMjcgMTEuNjY2NlY1LjgzMzI5QzEyLjgzMjcgNS4xODg5NiAxMi4zMTAzIDQuNjY2NjMgMTEuNjY2IDQuNjY2NjNaXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTIuMzMyNjggOS4zMzMyOUMxLjY5MTAyIDkuMzMzMjkgMS4xNjYwMiA4LjgwODI5IDEuMTY2MDIgOC4xNjY2M1YyLjMzMzI5QzEuMTY2MDIgMS42OTE2MyAxLjY5MTAyIDEuMTY2NjMgMi4zMzI2OCAxLjE2NjYzSDguMTY2MDJDOC44MDc2OCAxLjE2NjYzIDkuMzMyNjggMS42OTE2MyA5LjMzMjY4IDIuMzMzMjlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPjwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkRlbGV0ZSgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiB0aXRsZT1cIkRlbGV0ZVwiIGNsYXNzPVwiY3FhLXAtMCBjcWEtdGV4dC1bI2ZmNjQ2N10gaG92ZXI6Y3FhLXRleHQtWyNDNjM1MzVdXCI+PHN2ZyB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0xLjc1IDMuNUgxMi4yNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuMTY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHBhdGggZD1cIk0xMS4wODI3IDMuNVYxMS42NjY3QzExLjA4MjcgMTIuMjUgMTAuNDk5MyAxMi44MzMzIDkuOTE2MDIgMTIuODMzM0g0LjA4MjY4QzMuNDk5MzUgMTIuODMzMyAyLjkxNjAyIDEyLjI1IDIuOTE2MDIgMTEuNjY2N1YzLjVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNC42NjYwMiAzLjQ5OTk2VjIuMzMzMjlDNC42NjYwMiAxLjc0OTk2IDUuMjQ5MzUgMS4xNjY2MyA1LjgzMjY4IDEuMTY2NjNIOC4xNjYwMkM4Ljc0OTM1IDEuMTY2NjMgOS4zMzI2OCAxLjc0OTk2IDkuMzMyNjggMi4zMzMyOVYzLjQ5OTk2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTUuODMzOTggNi40MTY2M1Y5LjkxNjYzXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTguMTY2MDIgNi40MTY2M1Y5LjkxNjYzXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS4xNjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8YSAqbmdJZj1cImNvbmZpZy5kZXNjcmlwdGlvbiAmJiBjb25maWcuZGVzY3JpcHRpb24udHJpbSgpICE9PSAnJ1wiICN2aWV3RGV0YWlsc1RyaWdnZXIgaHJlZj1cIiNcIiAoY2xpY2spPVwib25WaWV3RGV0YWlscygkZXZlbnQpXCIgY2xhc3M9XCJjcWEtdGV4dC1bIzNGNDNFRV0gY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEgY3FhLW5vLXVuZGVybGluZVwiPlZpZXcgRGV0YWlsczxzdmcgd2lkdGg9XCI4XCIgaGVpZ2h0PVwiOFwiIHZpZXdCb3g9XCIwIDAgOCA4XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0yLjAzODA5IDYuNzQzMjlMMi42MjgwOSA3LjMzMzI5TDUuOTYxNDIgMy45OTk5NkwyLjYyODA5IDAuNjY2NjI2TDIuMDM4MDkgMS4yNTY2M0w0Ljc4MTQyIDMuOTk5OTZMMi4wMzgwOSA2Ljc0MzI5WlwiIGZpbGw9XCIjM0Y0M0VFXCIvPjwvc3ZnPjwvYT5cbiAgICA8IS0tIENyZWF0ZWQgRGF0ZSAoZnJvbSBBUEkpIC0gbGFzdCBzbyBhbGlnbmVkIGFjcm9zcyBhbGwgc3RlcHMsIGZvcm1hdDogMjUgRmViIDIwMjYgLS0+XG4gICAgPHNwYW4gKm5nSWY9XCJjb25maWcuY3JlYXRlZERhdGVcIiBjbGFzcz1cInN0ZXAtZGF0ZSBjcWEtdGV4dC1bIzZCNzI4MF0gY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtbWwtYXV0byBjcWEtZmxleC1zaHJpbmstMFwiPlxuICAgICAge3sgY29uZmlnLmNyZWF0ZWREYXRlIHwgZGF0ZTonZCBNTU0geXl5eScgfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=