[noun] + は [noun] + [particle] + は
The topic need not be the one doing anything. Whatever the sentence comments on can be the topic, and the comment can carry its own subject with が.
は sets up something already known, and the news comes after it. が marks the noun itself as the news.
A question word is always the news, so it takes が and never は.
Two は in one sentence set the two items against each other.
A single は can do the same with the other side left unsaid. That is why a negative sentence so often has は where you'd expect を or が.
は takes the place of が and を. After に, で, から and まで it is added on instead: には, では, からは.