X_1 = (-1.28, -2.62)
X_2 = (9.56, -2.6)
ω = Line(X_1, X_2)
A = (2.336114416177396, -0.9610583841206619)
B = (6.604019092349397, 0.6299356667600248)
C = (-0.8458736855839775, 1.892629357935173)
A' = Mirror(A, ω)
B' = Mirror(B, ω)
C' = Mirror(C, ω)
a, D = hline(C, B, ω)
b, E = hline(A, C, ω)
c, F = hline(B, A, ω)
G = (-1.174174045289516, -3.031876037647905)
e = Circle(C', G)
H, I = Intersect(e, b)
rb = Line(H, I)
J, K = Intersect(a, e)
ra = Line(K, J)
d = Line(C', F)
L, M = Intersect(c, d)
N = inversion(M, e)
O = inversion(L, e)
P = Midpoint(N, O)
rc = Circle(P, O)
rA = inversion(A, e)
rC = inversion(C, e)
rB = inversion(B, e)

Tool: inversion
Select point then circle in which to invert
Input: C, c
Output: D

a = Polar(C, c)
b = OrthogonalLine(C, a)
D = Intersect(a, b)

Tool: h-line (command hline)
Select two points then e-line at infinity
Input: B, C, a
Output: c, E

b = LineBisector(B, C)
E_1 = Intersect(a, b)
E = Intersect(a, b)
c = Circle(E, C)

Tool: h-circle (command hcircle)
Select h-center, h-point then e-line at infinity
Input: B, C, a
Output: g, J

b = LineBisector(B, C)
E = Intersect(a, b)
c = Circle(E, C)
F, G = Intersect(c, a)
d = OrthogonalLine(B, a)
e = Line(F, C)
f = Line(G, C)
H = Intersect(d, f)
I = Intersect(d, e)
J_1 = Midpoint(H, I)
J = Midpoint(H, I)
g = Circle(J, H)