# Little stub file to get BUILD.bazel to play along

import os.path
import sys

root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.insert(0, root)

import tools.codegen.gen

tools.codegen.gen.main()
