

'''simple docstring'''







import re

from flax.core.frozen_dict import freeze
from flax.traverse_util import flatten_dict, unflatten_dict
from jax.experimental import PartitionSpec as P


# Sentinels
__lowerCamelCase		       =    object()

# For specifying empty leaf dict `{}`
__lowerCamelCase		       =    object()
def       UpperCAmelCase__    (      UpperCAmelCase__,       UpperCAmelCase__				)			->			List[str]:
       A_						=      tuple((re.compile(x + """$"""				) for x in qs)				)
       for i in range(len(__UpperCamelCase				) - len(__UpperCamelCase				) + 1				):
              A_						=      [x.match(__UpperCamelCase				) for x, y in zip(__UpperCamelCase,       ks[i:]				)]
              if matches and all(__UpperCamelCase				):
                     return True
       return False
def       UpperCAmelCase__    (      UpperCAmelCase__				)			->			Optional[int]:







       def replace(UpperCAmelCase__,       UpperCAmelCase__				):
              for rule, replacement in rules:
                     if _match(__UpperCamelCase,       __UpperCamelCase				):
                            return replacement
              return val

       return replace
def       UpperCAmelCase__    (      )			->			Dict:
       return [
           # embeddings
           (("transformer", "wpe", "embedding"), P("""mp""",       __UpperCamelCase				)),
           (("transformer", "wte", "embedding"), P("""mp""",       __UpperCamelCase				)),
           # atention
           (("attention", "(q_proj|k_proj|v_proj)", "kernel"), P(__UpperCamelCase,       """mp"""				)),
           (("attention", "out_proj", "kernel"), P("""mp""",       __UpperCamelCase				)),
           (("attention", "out_proj", "bias"), None),
           # mlp
           (("mlp", "c_fc", "kernel"), P(__UpperCamelCase,       """mp"""				)),
           (("mlp", "c_fc", "bias"), P("""mp"""				)),
           (("mlp", "c_proj", "kernel"), P("""mp""",       __UpperCamelCase				)),
           (("mlp", "c_proj", "bias"), None),
           # layer norms
           ((r"ln_\d+", "bias"), None),
           ((r"\d+", r"ln_\d+", "scale"), None),
           (("ln_f", "bias"), None),
           (("ln_f", "scale"), None),
       ]







def       UpperCAmelCase__    (      UpperCAmelCase__				)			->			Any:
       A_						=      _get_partition_rules()
       A_						=      _replacement_rules(__UpperCamelCase				)
       A_						=      {k: _unmatched for k in flatten_dict(__UpperCamelCase				)}
       A_						=      {k: replace(__UpperCamelCase,       __UpperCamelCase				) for k, v in initd.items()}
       assert _unmatched not in result.values(), "Incomplete partition spec."
       return freeze(unflatten_dict(__UpperCamelCase				)				)



'''simple docstring'''







from __future__ import annotations

import math
def       UpperCAmelCase__    (      UpperCAmelCase__				)			->			bool:

       if 1 < number < 4:
              # 2 and 3 are primes
              return True
       elif number < 2 or number % 2 == 0 or number % 3 == 0:
              # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes
              return False

       # All primes number are in format of 6k +/- 1
       for i in range(5,       int(math.sqrt(UpperCAmelCase__				) + 1				),       6				):
              if number % i == 0 or number % (i + 2) == 0:
                     return False
       return True


__lowerCamelCase		       =    [num for num in range(3, 10_0001, 2) if not is_prime(num)]
def       UpperCAmelCase__    (      UpperCAmelCase__				)			->			list[int]:
       if not isinstance(UpperCAmelCase__,       UpperCAmelCase__				):
              raise ValueError("""n must be an integer"""				)
       if n <= 0:
              raise ValueError("""n must be >= 0"""				)

       A_						=      []
       for num in range(len(UpperCAmelCase__				)				):
              A_						=      0
              while 2 * i * i <= odd_composites[num]:
                     A_						=      odd_composites[num] - 2 * i * i
                     if is_prime(UpperCAmelCase__				):
                            break
                     i += 1
              else:
                     list_nums.append(odd_composites[num]				)
                     if len(UpperCAmelCase__				) == n:
                            return list_nums

       return []
def       UpperCAmelCase__    (      )			->			int:
       return compute_nums(1				)[0]


if __name__ == "__main__":
      print(f"""{solution() = }""")
