input: 
  def autocomplete(input_text: str) -> List[str]:
      """
      Develop a Python program to create an autocomplete system that predicts words based on the input text.
      The program should generate word candidates, filter them, rank them, and return the top 5 predicted words.
      
      >>> autocomplete("whi")
      ["which", "while", "white", "while", "whose"]
      >>> autocomplete("can")
      ["can", "can't", "candy", "candle", "canada"]
      """
  
output:     word_candidates = ["which", "while", "white", "whose", "what", "when", "where", "why", "can", "can't", "candy", "candle", "canada", "cancel", "cannot"]
      filtered_words = [word for word in word_candidates if word.startswith(input_text)]
      ranked_words = sorted(filtered_words, key=lambda x: (-len(x), x))
      return ranked_words[:5]