Design and implement a thread-safe Circuit Breaker in the language of your choice. The circuit breaker wraps outgoing calls to a potentially failing remote service and must protect the caller from cascading failures by failing fast when the downstream service is unhealthy. Your implementation must expose a single public method, call(callable), that either forwards the call and returns its result, or immediately throws a CircuitOpenException if the breaker is OPEN. Internally the breaker maintains three states: CLOSED (normal operation), OPEN (failing fast), and HALF_OPEN (probing for recovery). All state transitions must follow the rules below. CLOSED → OPEN when the number of consecutive failures reaches a configurable threshold N (success resets the counter). OPEN → HALF_OPEN after a configurable timeout T has elapsed. HALF_OPEN → CLOSED on the first successful call; HALF_OPEN → OPEN on any failure during probing. The object must be safe for concurrent use by many threads without external locking. Provide unit-test style examples that demonstrate the state machine, including edge cases such as the very first call, exact threshold boundary, timeout boundary, and concurrent threads tripping and recovering the breaker.