  In this paper we devise an optimal construction of fault-tolerant spanners
for doubling metrics. Specifically, for any $n$-point doubling metric, any
$\eps > 0$, and any integer $0 \le k \le n-2$, our construction provides a
$k$-fault-tolerant $(1+\eps)$-spanner with optimal degree $O(k)$ within optimal
time $O(n \log n + k n)$.
  We then strengthen this result to provide near-optimal (up to a factor of
$\log k$) guarantees on the diameter and weight of our spanners, namely,
diameter $O(\log n)$ and weight $O(k^2 + k \log n) \cdot \omega(MST)$, while
preserving the optimal guarantees on the degree $O(k)$ and the running time
$O(n \log n + k n)$.
  Our result settles several fundamental open questions in this area,
culminating a long line of research that started with the STOC'95 paper of Arya
et al.\ and the STOC'98 paper of Levcopoulos et al.
  On the way to this result we develop a new technique for constructing
spanners in doubling metrics. Our spanner construction is based on a novel
\emph{hierarchical cover} of the metric, whereas most previous constructions of
spanners for doubling and Euclidean metrics (such as the net-tree spanner) are
based on \emph{hierarchical partitions} of the metric. We demonstrate the power
of hierarchical covers in the context of geometric spanners by improving the
state-of-the-art results in this area.
