<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def static_filename(self, repo: str, branch: str, relative_path: Union[str, Path], *, depth: DepthDefinitionType=1, reference: ReferenceDefinitionType=None ) -> Path: """ Returns an absolute path to where a file from the repo was cloned to. :param repo: Repo URL :param branch: Branch name :param relative_path: Relative path to the requested file :param depth: See :meth:`run` :param reference: See :meth:`run` :return: Absolute path to the file in the target repository :raise FileOutOfRangeError: If the relative path leads out of the repository path :raise FileNotFoundError: If the file doesn't exist in the repository. """

        self.validate_repo_url(repo)
        depth = self.validate_depth(depth)
        reference = self.validate_reference(reference)

        if not isinstance(relative_path, Path):
            relative_path = Path(relative_path)

        _, repo_path = self.get_files(repo, branch, depth=depth, reference=reference)

        result = repo_path / relative_path
        result = result.resolve()

        if repo_path not in result.parents:
            raise FileOutOfRangeError(f"{relative_path} is not inside the repository.")

        if not result.exists():
            raise FileNotFoundError(f"{relative_path} does not exist in the repository.")

        logger.info("Static path for %s is %s", relative_path, result)

        return result