constr

C = (4.769195748114154, 2.1118441855717074)
D = (4.485709226513475, 1.1953454634986078)
c_C = Circle(C, D)
B = Point(c_C)
ci = AngularBisector(B, C, D)
ab = Line(B, ci)
c_B = Circle(B, C)
A = Intersect(c_B, ab, 2)
BC = Segment(B, C)
CD = Segment(C, D)
AB = Segment(A, B)
I = Point(ci)
BCi = Angle(B, C, I)
iCD = Angle(I, C, D)
Dk = Ray(D, Rotate[C, BCi, D])
ad = Line(D, A)
kx = Line(Rotate[D, 90°, A], ad)
K = Intersect(kx, Dk)
CDK = Angle(C, D, K)
H = Midpoint(K, Mirror[K, ad])
HK = Segment(K, H)
mx = Line(Rotate[B, 90° - Angle[D, A, B], A], ad)
c_A = Circle(A, B)
M = Intersect(Dk, mx)
N = Rotate(M, (-Angle[A, D, M]), D)
arc_{MN} = CircleArc(D, M, N)
HKN = Angle(H, K, N)
KN = Segment(K, N)
m_{AB} = LineBisector(A, D)
O = Intersect(m_{AB}, Line[D, Rotate[A, HKN, D]])
c_O = Circle(O, D)
E = Intersect(c_A, c_O, 2)
DE = Segment(E, D)
AE = Segment(A, E)
NDO = Angle(N, D, O)
DO' = Segment(D, Dilate[O, 1.2, D])
KNH = Angle(K, N, H)
DEA = Angle(D, E, A)
a = false
poly1, a_1, b, c, d, e = Polygon(A, B, C, D, E)
A' = Mirror(A, DE)
B' = Mirror(B, DE)
C' = Mirror(C, DE)
D' = Mirror(D, DE)
E' = Mirror(E, DE)
poly1', a', b', c', d', e' = Polygon(A', B', C', D', E')
α = Angle(B, C, D)
F = Midpoint(B, C)
A'_{1} = Mirror(A, F)
B'_{1} = Mirror(B, F)
C'_{1} = Mirror(C, F)
D'_{1} = Mirror(D, F)
E'_{1} = Mirror(E, F)
poly1'_{1}, a'_{1}, b'_{1}, c'_{1}, d'_{1}, e'_{1} = Polygon(A'_{1}, B'_{1}, C'_{1}, D'_{1}, E'_{1})
A'' = Mirror(A', F)
B'' = Mirror(B', F)
C'' = Mirror(C', F)
D'' = Mirror(D', F)
E'' = Mirror(E', F)
poly1'', a'', b'', c'', d'', e'' = Polygon(A'', B'', C'', D'', E'')
A'_{2} = Rotate(A, (-(180° - α / 2)), B)
B'_{2} = Rotate(B, (-(180° - α / 2)), B)
C'_{2} = Rotate(C, (-(180° - α / 2)), B)
D'_{2} = Rotate(D, (-(180° - α / 2)), B)
E'_{2} = Rotate(E, (-(180° - α / 2)), B)
poly1'_{2}, a'_{2}, b'_{2}, c'_{2}, d'_{2}, e'_{2} = Polygon(A'_{2}, B'_{2}, C'_{2}, D'_{2}, E'_{2})
G = Mirror(A'_{2}, d'_{2})
J = Mirror(B'_{2}, d'_{2})
L = Mirror(C'_{2}, d'_{2})
P = Mirror(D'_{2}, d'_{2})
Q = Mirror(E'_{2}, d'_{2})
poly2, g, j, l, p, q = Polygon(G, J, L, P, Q)
R = Rotate(A'_{1}, (-(180° - α / 2)), C)
S = Rotate(B'_{1}, (-(180° - α / 2)), C)
T = Rotate(C'_{1}, (-(180° - α / 2)), C)
U = Rotate(D'_{1}, (-(180° - α / 2)), C)
V = Rotate(E'_{1}, (-(180° - α / 2)), C)
poly3, r, s, t, u, v = Polygon(R, S, T, U, V)
R' = Mirror(R, u)
S' = Mirror(S, u)
T' = Mirror(T, u)
U' = Mirror(U, u)
V' = Mirror(V, u)
poly3', r', s', t', u', v' = Polygon(R', S', T', U', V')
w = Vector(E, A'_{1})
A'_{3} = Translate(A, w)
B'_{3} = Translate(B, w)
C'_{3} = Translate(C, w)
D'_{3} = Translate(D, w)
E'_{3} = Translate(E, w)
poly1'_{3}, a'_{3}, b'_{3}, c'_{3}, d'_{3}, e'_{3} = Polygon(A'_{3}, B'_{3}, C'_{3}, D'_{3}, E'_{3})
A''_{1} = Translate(A', w)
B''_{1} = Translate(B', w)
C''_{1} = Translate(C', w)
D''_{1} = Translate(D', w)
E''_{1} = Translate(E', w)
poly1''_{1}, a''_{1}, b''_{1}, c''_{1}, d''_{1}, e''_{1} = Polygon(A''_{1}, B''_{1}, C''_{1}, D''_{1}, E''_{1})
W = Translate(A'_{2}, w)
Z = Translate(B'_{2}, w)
A_1 = Translate(C'_{2}, w)
B_1 = Translate(D'_{2}, w)
C_1 = Translate(E'_{2}, w)
poly4, w_1, z_1, f, b_1, c_1 = Polygon(W, Z, A_1, B_1, C_1)
G' = Translate(G, w)
J' = Translate(J, w)
L' = Translate(L, w)
P' = Translate(P, w)
Q' = Translate(Q, w)
poly2', g', j', l', p', q' = Polygon(G', J', L', P', Q')