code: def decline_noun(
      noun: str, gender: str, mimation: bool = True
  ) -> List[Tuple[str, Dict[str, str]]]:
      """
      Return a list of all possible Akkadiandeclined forms given any form
       of a noun and its gender.
  
       >>> decline_noun('iltum', 'f')
       [('iltum', {'case': 'nominative', 'number': 'singular'}), \
  ('iltam', {'case': 'accusative', 'number': 'singular'}), \
  ('iltim', {'case': 'genitive', 'number': 'singular'}), \
  ('iltān', {'case': 'nominative', 'number': 'dual'}), \
  ('iltīn', {'case': 'oblique', 'number': 'dual'}), \
  ('ilātum', {'case': 'nominative', 'number': 'plural'}), \
  ('ilātim', {'case': 'oblique', 'number': 'plural'})]
      """
  
      stemmed_noun = stem(noun, gender)
      declension = []
  
      for case in ENDINGS[gender]["singular"]:
          if gender == "m":
              form = stemmed_noun + ENDINGS[gender]["singular"][case]
          else:
              form = (
                  stemmed_noun + ENDINGS[gender]["singular"][case][1:]
              )
          declension.append(
              (form, {"case": case, "number": "singular"})
          )
  
      for case in ENDINGS[gender]["dual"]:
          if gender == "m":
              form = stemmed_noun + ENDINGS[gender]["dual"][case]
          else:
              form = stemmed_noun + ENDINGS[gender]["dual"][case][1:]
          declension.append((form, {"case": case, "number": "dual"}))
  
      for case in ENDINGS[gender]["plural"]:
          if gender == "m":
              form = stemmed_noun + ENDINGS[gender]["plural"][case]
          else:
              if stemmed_noun[-3] in AKKADIAN["macron_vowels"]:
                  theme_vowel = stemmed_noun[-3]
              else:
                  theme_vowel = "ā"
              ending = [
                  x
                  for x in ENDINGS[gender]["plural"][case]
                  if x[0] == theme_vowel
              ]
              if stemmed_noun[-2] in AKKADIAN["short_vowels"]:
                  form = stemmed_noun[:-2] + ending[0]
              elif (
                  stemmed_noun[-1] in AKKADIAN["consonants"]
                  and stemmed_noun[-2] in AKKADIAN["macron_vowels"]
              ):
                  form = stemmed_noun + ending[0]
              else:
                  form = stemmed_noun[:-1] + ending[0]
          declension.append((form, {"case": case, "number": "plural"}))
  
      return declension
  
imports: from typing import Dict, List, Tuple
  from cltk.phonology.akk import AKKADIAN, get_cv_pattern, syllabify
  from cltk.stem.akk import ENDINGS, stem
label_desc: Use image node_id 2 for calling a global function with example usage: decline_noun(noun, gender, mimation) and returns: declension