Each row in the inout file is an impact position of a bullet, along with its speed, agnle above the horizontal and direction from shooter.For all the physics behind this challenge, read the original writeup (you can find it [HERE](http://zenhack.it/writeups/SwampCTF2018/orb2/).I'll write below the script which produces the flag.
```pythonimport pickleimport numpy as npimport scipy.ioimport matplotlib.pyplot as plt
def predict_impact_point(row):    x,y = row[0],row[1]    v = row[2]    theta = row[3]    alpha = row[4]    vx = v * np.cos(theta)*np.cos(alpha)    vy = v * np.cos(theta)*np.sin(alpha)    vz = v * np.sin(theta)    g = 9.81    t = 2*vz / g    return x - vx*t, y - vy*t
data = pickle.load(open('page_of_numbers.p','rb'))matrix_data = [ ]res = []for d in data:    val =predict_impact_point([i for i in d])    matrix_data.append(val)matrix_data = np.array(matrix_data)
plt.plot(matrix_data[:,0], matrix_data[:,1],'o')plt.show()
```![The flag](https://zangobot.github.io/assets/2018-04-02-swamp_p2/flag.jpg)