The Delay app allows scripts to be paused even after execution time has elapsed
The `Delay` app is used to configure a delay between when an evm script is created and when it is executed. The entry point for this process is `Delay.delayExecution`, which stores the input script with a future execution date:\\n```\\nfunction \\_delayExecution(bytes \\_evmCallScript) internal returns (uint256) {\\n    uint256 delayedScriptIndex = delayedScriptsNewIndex;\\n    delayedScriptsNewIndex++;\\n\\n    delayedScripts[delayedScriptIndex] = DelayedScript(getTimestamp64().add(executionDelay), 0, \\_evmCallScript);\\n\\n    emit DelayedScriptStored(delayedScriptIndex);\\n\\n    return delayedScriptIndex;\\n}\\n```\\n\\nAn auxiliary capability of the `Delay` app is the ability to “pause” the delayed script, which sets the script's `pausedAt` value to the current block timestamp:\\n```\\nfunction pauseExecution(uint256 \\_delayedScriptId) external auth(PAUSE\\_EXECUTION\\_ROLE) {\\n    require(!\\_isExecutionPaused(\\_delayedScriptId), ERROR\\_CAN\\_NOT\\_PAUSE);\\n    delayedScripts[\\_delayedScriptId].pausedAt = getTimestamp64();\\n\\n    emit ExecutionPaused(\\_delayedScriptId);\\n}\\n```\\n\\nA paused script cannot be executed until `resumeExecution` is called, which extends the script's `executionTime` by the amount of time paused. Essentially, the delay itself is paused:\\n```\\nfunction resumeExecution(uint256 \\_delayedScriptId) external auth(RESUME\\_EXECUTION\\_ROLE) {\\n    require(\\_isExecutionPaused(\\_delayedScriptId), ERROR\\_CAN\\_NOT\\_RESUME);\\n    DelayedScript storage delayedScript = delayedScripts[\\_delayedScriptId];\\n\\n    uint64 timePaused = getTimestamp64().sub(delayedScript.pausedAt);\\n    delayedScript.executionTime = delayedScript.executionTime.add(timePaused);\\n    delayedScript.pausedAt = 0;\\n\\n    emit ExecutionResumed(\\_delayedScriptId);\\n}\\n```\\n\\nA delayed script whose execution time has passed and is not currently paused should be able to be executed via the `execute` function. However, the `pauseExecution` function still allows the aforementioned script to be paused, halting execution.
Add a check to `pauseExecution` to ensure that execution is not paused if the script's execution delay has already transpired.
```\\nfunction \\_delayExecution(bytes \\_evmCallScript) internal returns (uint256) {\\n    uint256 delayedScriptIndex = delayedScriptsNewIndex;\\n    delayedScriptsNewIndex++;\\n\\n    delayedScripts[delayedScriptIndex] = DelayedScript(getTimestamp64().add(executionDelay), 0, \\_evmCallScript);\\n\\n    emit DelayedScriptStored(delayedScriptIndex);\\n\\n    return delayedScriptIndex;\\n}\\n```\\n