Implement a function make_counter(start) that returns a closure. The returned function accepts one integer argument delta, adds delta to an internal counter initialized to start, and returns the updated counter value. The internal state must remain private and persist across multiple calls to the returned function.
Example 1:
Input: start = 5, calls = [1, 2, -3]
Output: [6, 8, 5]
Explanation: The counter starts at 5 and is updated after each call.
Example 2:
Input: start = 0, calls = [10, 0, 4]
Output: [10, 10, 14]
Explanation: Each invocation uses the same enclosed variable.
-10^9 <= start <= 10^90 <= len(calls) <= 10^5-10^9 <= calls[i] <= 10^9start = 5, calls = [1, 2, -3]Output[6, 8, 5]WhyThe internal count evolves as 5 -> 6 -> 8 -> 5.start = 0, calls = [10, 0, 4]Output[10, 10, 14]WhyThe closure keeps the same private state across all three calls.-10^9 <= start <= 10^90 <= len(calls) <= 10^5-10^9 <= calls[i] <= 10^9The returned function must preserve state across repeated invocationsdef run_counter(start, calls):