from typing import List
import numpy as np
from axelrod.action import Action
from axelrod.interaction_utils import compute_final_score
from axelrod.player import Player
from axelrod.strategies.finite_state_machines import FSMPlayer
IIlIlIIl, IlIlIlIIIIl = Action.C, Action.D
class llIlIlIllIl(Player):
    IlIIlIIllIlllllIIl = "strategy"
    IlllllIl = {
        "memory_depth": float("inf"),
        "stochastic": False,
        "long_run_time": False,
        "inspects_source": False,
        "manipulates_source": False,
        "manipulates_state": False,
    }
    def llIlIIlllIIlIlIII(IIllIIIIIIIlIlII, IlllIIIlIIIIlIlllllI: Player) -> Action:
        lllllIllIIl = len(IIllIIIIIIIlIlII.history) + 1
        if lllllIllIIl <= 10 or IlllIIIlIIIIlIlllllI.history[-1] == IIlIlIIl:
            return IIlIlIIl
        if np.floor(np.log(lllllIllIIl)) * IlllIIIlIIIIlIlllllI.defections >= lllllIllIIl:
            return IlIlIlIIIIl
        return IIlIlIIl