1 Introduction
A disc packing (or circle packing) is a set of interiordisjoint disc in the Euclidean plane. Its density is the proportion of the plane covered by the discs:
A central issue in packing theory is to find the maximal density of disc packings.
If the discs have all the same radius, it was proven in [FT43] that the density is maximal for the hexagonal compact packings, where discs are centered on a suitably scaled triangular grid (see also [CW10] for a short proof).
For binary disc packings, i.e., packings by discs of radii and where both disc sizes appear, there are only seven values of for which the maximal density is known [Hep00, Hep03, Ken04]. These values are specific algebraic numbers which allow a compact packing, that is, a packing whose contact graph (the graph which connects the centers of any two tangent discs) is a triangulation. In each of these seven cases, the maximal density turns out to be reached for a compact disc packing. Compact packings thus seem to be good candidates to maximize the density.
It was proven in [Ken06] that there are exactly values of which allow a binary compact packing by discs of radii and : the seven above mentioned, and two other ones ( and in Fig. 1). In this paper, we show that for these two values the maximal density is also reached for a compact packing. We actually provide a selfcontained proof for all the values:
Theorem 1
For each allowing a binary compact packing by discs of radius and , the density of any packing by discs of radius and is less than or equal to the density of the periodic compact packing depicted in Fig. 1.
Actually, we conjecture that this result extends for any number of disc radii, up to a ”saturation hypothesis” which becomes necessary from three disc radii:
Conjecture 1
If discs with different radii allow a compact packing in which at least one disc of each size appears and such that no further disc can be inserted between the discs (saturation hypothesis), then the maximal density over all the packings by discs with these radii is reached for a compact packing.
We do not expect the densest compact packing to be necessarily periodic, but we already know that it does when there are only three different radii. Indeed, all the compact packings with three radii have been characterized [FHS] and the densest ones (among the compact packings) are all periodic. Note that only one of these compact packings has yet been proven to maximize the density among all the packings by discs with the three same radii [Fer]. Checking all the other cases could be the next step towards the above conjecture. However, all the mentioned proofs ([Hep00, Hep03, Ken04], Theorem 1 in this paper and [Fer]) rely on computations which involve the precise values of radii. Proving the result in its full generality (if it is true) would require a different approach…
2 Strategy
The strategy to prove Theorem 1 is inspired by the one in [Ken04]. Given a disc packing, we shall first decompose the plane by a specific triangulation of the disc centers (Sec. 4). Then, the excess of a triangle is defined by
where is the area of , is the area of inside the discs centered on the vertices of and is the density of the target packing (Fig. 1). A triangle with positive excess is thus less dense than the target density , and proving than the packing has overall density at most amounts to show
For this, we shall define over triangles a potential which satisfies two inequalities. The first one, further referred to as the global inequality, involves all the triangles of :
(1) 
The second one, further referred to as the local inequality, involves any triangle which can appear in :
(2) 
The result then trivially follows:
Since the global inequality for is the same as for , it seems we just made things worse by adding a second inequality. However, we shall choose so that the global inequality is ”not that global”, i.e., it follows from an inequality on a finite set of finite configurations. Namely, the potential of a triangle will be the sum of vertex potentials defined on each vertex and edge potentials defined on each edge such that, for any vertex and edge of any decomposition :
(3) 
(4) 
Inequality (3), which involves the triangles sharing a vertex, is proven in Section 5 (Prop. 1). Inequality (4), which involves pairs of triangles sharing an edge, is proven in Section 6 (Prop. 2).
The local inequality (2) has then to be proven for each triangle of the decomposition. We make two cases, depending whether the triangle is a socalled tight triangle or not. The former case, considered in Section 7, is proven with elementary differential calculus (Prop. 3). The latter case, considered in Section 8, is proven with a computer by dichotomy (Prop. 4). Theorem 1 follows.
3 Computer use
Like for many results in packing theory (the most emblematic being probably the proof of Kepler’s conjecture
[Hal05]), the proof of Theorem 1 makes an important use of the computer.The first use we will make of the computer is to check inequalities on real numbers. Since real numbers cannot be all exactly represented on a computer, we shall systemically use interval arithmetic. Let us briefly recall the basic principle (see, e.g., [Tuc11] for a comprehensive introduction). Any real number is represented by an interval whose endpoints are representable floatingpoint numbers. For example, the constant is represented by the software SageMath [Dev16] with its bits of precision interval arithmetic by the closed interval
Let us emphasize that the endpoints are not numerical approximation but real numbers representable on the computer. Then, computations are performed so that ”nothing gets lost”, i.e., the image by an ary real function of intervals must be an interval which contains at least all the real numbers for . Exactly what this interval is depends on the actual software implementation of the function . For example, for the above interval , SageMath computes
This computation does not prove that is equal to zero, but it proves that it is quite small, e.g., less than . More generally, if a computation shows that the right endpoint of the interval which represents a real number is less than or equal to the left endpoint of the interval which represents a real number , then it proves . This is how we shall prove the inequalities (2), (3) and (4
), using the interval arithmetic of the opensource software SageMath
[Dev16].The second use we will make of the computer is to check inequalities over intervals (namely products of intervals, in the proof of Prop. 4). We again use interval arithmetic for this, but instead of using an interval to represent an exact real number, we simply use the interval itself! In other words, to prove an inequality over an interval , we compute and in interval arithmetic with and we check whether the right endpoints of the interval is less than or equal to the left endpoints of the interval .
The last use we will make of the computer is to perform exhaustive search. This is done in a classic way in the proof of Prop. 1, where there is a finite number of cases to check, as well as in a less conventional way in the proof of Prop. 4, where we check the local inequality (2) on an infinite set of triangles. For that, we shall prove that the set of triangles is compact and break it down in finitely many sets which are sufficiently small so that interval arithmetic can be used (as explained above) to prove that any triangle in such a set satisfies the wanted inequality.
The complete code needed to verify all the results of this paper, less than commented lines, can be found in the supplementary materials (binary.sage
).
The language is python, with some use of the opensource software SageMath [Dev16] (e.g. for interval arithmetic).
Although quite slow, Python has the advantage of being easily readable and (currently) quite widespread.
All the computations have been performed on our modest laptop, an Intel Core i57300U with cores at GHz and Go RAM.
4 Triangulation
Given a disc packing, define the cell of a disc as the set points of the plane which are closer to this disc than to any other (Fig. 2, left). These cells form a partition of the plane whose dual is a triangulation, referred to as the FMtriangulation of the packing (Fig. 2, right). Introduced in [FTM58] (see also [FT64]), FMtriangulations are also known as additively weighted Delaunay triangulations.
A triangle which appears in the FMtriangulation of some disc packing is said to be feasible. It satisfies the two following properties [FTM58]:

There exists a disc, called the support disc of , which is interior disjoint from the discs of the packing and tangent to each of the discs of (it somehow extends the ”empty disc property” of classic Delaunay triangulations). In particular, if a disc packing is saturated, i.e., no further disc can be added, then any support disc is smaller than the smallest allowed disc (otherwise we could add it at the place of the support disc).

The disc sector delimited by any two edges of never crosses the third edge of (which may be false in classic Delaunay triangulations when the ratio of disc radius is greater than ).
A simple consequence we shall later rely on is that angles cannot be too small:
Lemma 1
Let be a triangle in a FMtriangulation of a saturated packing by discs of radius and . Let , and denotes its vertices and , and denotes the radii of the discs centered on these vertices. Then
Proof.
Assume that the edge AB is shorter than AC.
On the one hand, the altitude of B is at least because otherwise the disc sector defined by edges BA and BC would cross the edge AC.
On the other hand, the length of the edge AB is at most because we can connect both A and B to the center of the support disc, which has radius at most since the packing is saturated.
This yields .
The same holds exchanging and if AC is shorter than AB, whence the claimed lower bound.
Following [Hep03], we call tight a triangle whose discs are mutually adjacent (Fig. 3). In particular, the FMtriangulation of any compact disc packing contains only tight triangles since there is a support disc in the hole between each three mutually adjacent discs.
Still following [Hep03], we call stretched a triangle with a small disc tangent to both the two other discs as well as to the line which passes through their centers (Fig. 4). They are not feasible in a saturated packing because their support disc have radius (this would allow to add a small disc), but they can be arbitrarily approached near by feasible triangles. We shall see in Section 6 that stretched triangles are dangerous because they can be as dense as tight triangles. Indeed, two stretched triangles adjacent along their ”stretched edge” (the edge tangent to one of the disc) can be recombined into two tight triangles by flipping this stretched edge.
5 Global inequality for the vertex potential
We shall here define the vertex potential and show it satisfies Inequality (3).
5.1 Two constraints
Consider an FMtriangulation of a target packing. Summing over the triangles of yields
The three sums are thus equal to zero. In particular, one has for each type of tight triangle which appears in the target packing. Further, since the edge potential will be zero on any tight triangle (Sec. 6), one has
Hence, summing over the vertices of yields:
The inequality (3) must thus be an equality for any vertex of a target packing.
5.2 Vertex potential in tight triangles
For the sake of simplicity, we search for a vertex potential which depends only on the radii of the disc in the vertex and the radii of the two other discs in the triangle. We denote by (or ) the potential in the center of the disc of radius in a tight triangle with discs of radius , and . There are thus quantities to be defined:
The first of the two constraints seen Sec. 5.1 is for any tight triangle of a target packing. For the sake of simplicity, we want for any tight triangle . This yields four equations on the ’s:
where is the excess of a tight triangle with discs of radius , and . The second of the two constraints seen Sec. 5.1, namely equality in Inequality (3), yields an equation for each vertex of the target packings. Remarkably, there is only one equation for each radius of disc in each target packing, except for where a small disc can be surrounded in two different ways. This latter case is a bit specific and will be dealt with in Sec. 5.4. Tab. 1 lists these equations.
Small disc  Large disc  

We thus have six equations for each target packings (one in each of the four tight triangles and one around each of the two discs). They are actually not independent because the sum of the excess of tight triangles over the fundamental domain of each target packing is equal to zero. There is thus still one degree of freedom. We arbitrarily set
, except for where we set because is already enforced around a large disc. One checks that these equations are independent and thus characterize the ’s.5.3 Vertex potential in any triangle
We are now in a position to define the vertex potential in any triangle. The idea is to modify the potential of a tight triangle depending on how much the triangle itself is deformed. Given a triangle in a FMtriangulation of a disc packing, we denote by the tight triangle obtained in contracting the edges until three discs become mutually tangent (such a triangle is always defined because if , and are the radii of the discs, then the edge lengths are , and and each of these length is greater than the sum of the two other ones).
Definition 1
Let be a vertex of a triangle . Let be the radius of the disc of center and and the radii of the two other discs of . The vertex potential of is defined by
where depends only on , and and denote the angle in in and .
In particular, . The constant controls the ”deviation” in term of the angle changes between and . The point is to fix it so that the inequality (3) holds:
Proposition 1
Let and be a vertex of an FMtriangulation of a saturated packing by discs of radius and . Then, the sum of the vertex potentials of the triangles containing is nonnegative provided that and are bounded from below by the values given in Tab. 2.
Proof. Let be a vertex of an FMtriangulation of a saturated packing by discs of radius and . Let denote the radius of the disc of center . Let be the triangles of which contain , ordered clockwise around . We have:
Since the ’s surround , . If the coefficient of is nonzero, then the inequality (3) is thus satisfied in as soon as
This lower bound depends only on the radii and order of the discs centered on the neighbors of .
There is only finitely many cases for each value of , and the lower bounds on angles of Lemma 1 ensure that there is finitely many values of (the largest one is , reached for when there are only small discs around a large one^{3}^{3}3We can actually reduce further the number of cases to consider by bounding from below the angle of a triangle depending on the discs of this triangles. It is however only useful to speed up the search, because the cases that give the lower bound on correspond to rather small values of .).
We can thus perform an exhaustive search on a computer to find a lower bound which holds for any .
We performed this exhaustive search (function smallest_m
in binary.sage
) using interval arithmetic as explained in Section 3: the lower bound on given in Tab. 2 are the right endpoints of the computed intervals.
To conclude, we also have to consider the case where has a zero coefficient.
This happens when the sum of the angles is equal to .
We check this during the previous exhaustive search: if the computation yields for the coefficient of an interval which contains zero, then we check whether .
The computation shows that this always holds, except when is surrounded in the same way as in the target packing.
In this latter case, we get an interval which contains zero: this is the way we defined the vertex potential in tight triangles (namely, to satisfy the equations in Tab. 1) which ensures that the exact value is zero.
5.4 The case
We cannot proceed exactly the same way for , because equality in Inequality (3) around the small disc surrounded by six other small discs would yield , which is incompatible with . The potential in a vertex of a triangle with three small discs will depend on its neighborhood.
In an FMtriangulation of a packing by discs of radius and , let us call singular a small disc which is surrounded by two large discs and three small ones (in this order up to a cyclic permutation). The other discs are said to be regular. In particular, each regular small disc in the target packing is surrounded by singular discs (Fig. 1). We shall rely on the following simple lemma (proven in Fig. 5):
Lemma 2
In an FMtriangulation of a packing by discs of radius and , there is at most two singular discs in a triangle with three discs of radius .
In a tight triangle with small discs, we denote respectively by and the potentials of singular and regular vertices. We set
The above lemma ensures that the sum over the singular vertices of the triangle is at most . The remaining potential (to sum up to on the triangle) is shared equally among the regular vertices. The value of thus depends on the number of singular vertices: it can be , or , but the point is that it is always nonnegative, so that the inequality (3) is automatically satisfied around a regular vertex (it is an equality in ).
We can further proceed as for the other cases to define the ’s, with instead of and considering only singular vertices. Tab. 3 completes Tab. 1.
Small disc (singular)  Large disc  

We can then extend vertex potentials beyond tight triangles exactly as in Definition 1, since the regular or singular character of a small disc is defined for any triangle. Tab. 4 completes Tab. 2 to extend Proposition 1, which is proven in the same way, with the only difference being that in the exhaustive search through possible configurations around a vertex , we simply use if is not singular (since knowing only the neighbors of not always suffice to determine which of them are singular or regular).
5.5 Capping the potential
In Subsec. 5.2, we fixed the vertex potentials in order to have on the tight triangles. We then introduced, in Subsec. 5.3, a deviation controlled by the quantities and to have Ineq. (3) around each vertex of any FMtriangulation of a saturated packing. More precisely, we found lower bounds on and : any largest values would only make this latter inequality even more true. However, we shall keep in mind that we also have to eventually satisfy the local inequality (2), i.e., for any triangle. With this in mind, it is best to fix and as small as possible so as to minimize . We can actually make even smaller as follows.
Consider the center of a disc of radius . Around , the contribution per radian of the vertex potential is bounded from below by the minimum over the tight triangles with a disc of radius in of . Hence, whenever the vertex potential is larger than times the absolute value of this minimum in some triangle which contains , the potential of the other triangles cannot be negative enough so that the sum around becomes negative: the inequality (3) still holds in . We can thus cap the vertex potential of a vertex in Def. 1 by
Since only the negative ’s play a role in the above quantity, the value of in the case , which can range from to has no importance. The values and listed in Tab. 5 are representable floatingpoint numbers which bound from above and .
6 Global inequality for the edge potential
A few randomized trials suggest that the vertex potential satisfy the local inequality (2) for triangles which are not too far from tight triangles. It however fails near stretched triangles, because the excess can become quite small. The typical situation is depicted in Fig. 6. The edge potential aims to fix this problem. The idea is that when a triangle becomes stretched, its support disc overlaps an adjacent triangle , imposing a void in which increases and may counterbalance the decrease of . We shall come back to this in Section 8. Here, we define the edge potential and prove that it satisfies Inequality (4).
Definition 2
Let be an edge of a triangle . Let and be the radii of the discs centered on the endpoints of . Denote by the signed distance of the center of the support disc of to the edge , which is positive if and are both on the same side of , or negative otherwise. The edge potential of is defined by
where and depend only on and .
The constant is the threshold below which has an effect and the coefficient controls the intensity of this effect. In contrast to the role of for the vertex potential to satisfy Inequality (3) (Prop. 1), the values of and (and even the disc radii) do not play a role for the edge potential to satisfy Inequality (4):
Proposition 2
If is an edge of an FMtriangulation of a disc packing, then the sum of the edge potentials of the two triangles containing is nonnegative.
Proof.
Consider an edge shared by two triangles and of an FMtriangulation.
We claim that .
If each triangle and the center of its support disc are on the same side of , then it holds because both and are nonnegative.
Assume , i.e, and the center of its support disc are on either side of .
Denote by and the endpoints of and by and the radii of the discs of center and (Fig. 7).
The centers of the discs tangent to both discs of center and and radius and are the points such that , i.e., a branch of a hyperbola of foci and .
This includes the centers and of the support discs of and .
In order to be tangent to the third disc of , the support disc of must have a center farther than from the focal axis.
Since the distances of and to this axis are and , this indeed yields .
This proves if has length at least .
If is shorter, both and are zero and their sum is thus nonnegative.
7 Local inequality for tight triangles
We prove the local inequality (2) in a neighborhood of tight triangles. A triangle is said to be tight if its discs are pairwise at distance at most . Let be a tight triangle with edge length , and and denote by the set of tight triangles with the same disc radii as . On the one hand, the variation of the excess between and any triangle in satisfies
On the other hand, assuming that is smaller than the smallest threshold below which the edge potential is zero (so that the potential is simply the vertex potential, see Def. 1), the variation of the potential between and any triangle in satisfies
Since because of the way we define the vertex potential (first constraint, Subsec. 5.1), the local inequality holds over for any such that
We computed the formulas of the derivatives of and with SageMath^{4}^{4}4It can be easily do by hand since it mainly amounts to use the cosine theorem to express the angle of a triangle as a function of its edge length, but we are not particularly interested in the formulas.. We then use interval arithmetic, once again, to compute the extremal values over : each variable is replaced by the interval. , where and denote the radii of the discs centered on the endpoints of the edge of length . A computation yields:
Proposition 3
8 Local inequality for all the triangles
We explicitly define an edge potential such that the local inequality (2) holds for any triangle. Since the global inequality (1) result from Prop. 1 and 2, this will prove Theorem 1. The following lemma will be used to eliminate many nonfeasible triangles:
Lemma 3
If a triangle appears in an FMtriangulation of a saturated packing by discs of radius and , then

the radius of its support disc is less than ;

its area is at least ;

the altitude of any vertex is at least .
Proof.

if the support disc has radius or more, then we can add a small disc in the packing, in contradiction with the saturation hypothesis;

the sectors defined by triangle edges of the discs centered in the triangle vertices are included in the triangle and their total area is at least half the area of a small disc;

if the altitude of a vertex A is less than , then the sector of the disc centered in A crosses the line going through the two opposite vertices B and C; it cannot crosses it between A and B, but then the nearest vertex to A, say B, has a smaller altitude than A and the sector of the disc centered in B crosses the segment BC: contradiction (Fig. 8).
Proposition 4
Proof. We shall check the inequality over all the possible triangles with the computer. For in , any triangle with discs of radius , and which appear in an FMtriangulation of a saturated packing has edge length in the compact set
Indeed, its support disc has radius at most (saturation hypothesis) so that the center of a disc of radius is at distance at most from the center of the support disc. We can thus compute and using these intervals for the edge lengths of .
Of course, since these intervals are quite large, we get for and large overlapping intervals which do not allow to conclude whether or not. We use dichotomy: while the intervals are too large to conclude, we halve them and check recursively on each of the resulting compacts whether or not. If we get at some step, we stop the recursion. If we get at some step, we throw an error: the local inequality is not satisfied!
At each step, we also check whether Lemma 3 ensures that the triangle is not feasible, in which case we eliminate it and stop the recursion (the way we compute the radius of the support disc is detailed in Appendix B). Last, we also stop the recursion if we get an tight triangle at some step, that is, if we get a subset of the compact
Indeed, the local inequality is then already ensured by Prop. 3. This point is crucial and explains why we focused on tight triangles in Section 7. Since for tight triangles, if a compact contains the point , no matter how small it is, it yields for and overlapping intervals which do not allow to decide whether or not: the recursion would last forever!
For each , the whole process terminates without throwing any error.
On our computer with our noncompilated python implementation, checking all the cases take around 4 h 10 min (of which 3 h 40 min for and 25 min for ).
Tab. 8 gives some statistics on the number of checked triangles.
This proves the proposition.
111  11r  1rr  rrr  

Appendix A Radii and densities
Tab. 9 and 10 give minimal polynomials of the radii ’s and the reduced densities . The polynomials for the radii come from [Ken06]. The reduced densities are computed as follows. Consider the fundamental domain depicted in Fig. 1:

compute the total area covered by discs divided by : it is an algebraic number since the radii are algebraic;

compute the area of the tight triangles in the fundamental domain, e.g., using the Heron’s formula: it is algebraic since so are the radii – hence the edge length;

the quotient of both is thus an algebraic number whose minimal polynomial is the one given in Tab. 10.
Appendix B Support disc
Consider a triangle with sides of length , and . Denote by (resp. and ) the vertex opposite to the edge of length (resp. and ). Denote by (resp. and ) the radius of the disc of center (resp. and ). We here explain how to get a formula that allows to compute the radius of the support disc using interval arithmetic.
Fix a Cartesian coordinate system with
and . Denote by the coordinates of , with . One has:Denote by the coordinates of the center of the support disc and by its radius. The definition of the support disc yields three equations:
Subtracting the second equation from the first yields an expression in for .
Then, subtracting the third equation from the first and replacing by its expression yields an expression in for .
Last, replacing and by their expressions in the third equations yields a quadratic equation , where , and are complicated but explicit polynomials in , , , , and (they appear in the code of the function radius
in binary.sage
).
The discriminant of this quadratic polynomial turns out to be the product of the square of the area of the triangle and the terms for each permutation of .
It is thus nonnegative.
Given exact values of , , , , and , one computes as usually:
However, when the given values are interval, the second case never happens because cannot be the singleton , while the first case can be rather disappointing: if is an interval which contains , then it yields . We shall use the fact that the roots of a polynomial are continuous in its coefficients. Namely, when tends towards , one of the roots goes to infinity while the interesting one goes towards . This latter root is
With and , this can be written
If we set , then becomes continuously derivable over . The Taylor’s theorem then ensures that for any real number , there exists a real number between and such that
One checks that is positive and increasing over . One computes
If is an interval which contains and whose upper bound is at most , then
This yields the wanted interval around :
The above formula still yields if contains as well as . This however happens only when the intervals , and have a quite large diameter, that is, in the very few first steps of the recursive local inequality checking.
Appendix C Parameters of the edge potential
Let us briefly explain how we chose the constants and in Prop. 4. The rule of thumb (which could perhaps be made rigorous) is that if the local inequality works for the triangles with only one pair of discs which are not tangent, then it seems to work for any triangle. We thus consider triangles with circles of size and centered on the endpoints of an edge and vary the length of , as in Fig. 6. Then:

we choose close to the length for which changes its sign;

we choose so that is slightly less than when is stretched.
This is the way we defined the constants in Tab. 7.
Acknowledgments.
We thank Stef Graillat for useful discussions about computing the support disc radius with interval arithmetic.
References
 [CW10] H.C. Chang and L.C. Wang. A simple proof of Thue’s theorem on circle packing. arxiv:1009.4322, 2010.
 [Dev16] The Sage Developers. Sage Mathematics Software (Version 8.2), 2016. http://www.sagemath.org.
 [Fer] Th. Fernique. A Densest ternary circle packing in the plane. arxiv:1912.02297.
 [FHS] Th. Fernique, A. Hashemi, and O. Sizova. Compact packings of the plane with three sizes of discs. to appear in Discrete and Computational Geometry.
 [FT43] L. Fejes Tóth. Über die dichteste Kugellagerung. Mathematische Zeitschrift, 48:676–684, 1943.
 [FT64] L. Fejes Tóth. Regular figures. International Series in Monographs on Pure and Applied Mathematics. Pergamon, Oxford, 1964.
 [FTM58] L. Fejes Tóth and J. Molnár. Unterdeckung und Überdeckung der Ebene durch Kreise. Mathematische Nachrichten, 18:235–243, 1958.
 [Hal05] Th. Hales. A proof of the Kepler conjecture. Annals of Mathematics, 162:1065–1185, 2005.
 [Hep00] A Heppes. On the densest packing of discs of radius and . Studia Scientiarum Mathematicarum Hungarica, 36:433–454, 2000.
 [Hep03] A. Heppes. Some densest twosize disc packings in the plane. Discrete and Computational Geometry, 30:241–262, 2003.
 [Ken04] T. Kennedy. A densest compact planar packing with two sizes of discs. preprint, arxiv:0412418, 2004.
 [Ken06] T. Kennedy. Compact packings of the plane with two sizes of discs. Discrete and Computational Geometry, 35:255–267, 2006.
 [Tuc11] W. Tucker. Validated Numerics: A Short Introduction to Rigorous Computations. Princeton University Press, 2011.
Comments
There are no comments yet.