1 | #region License Information
|
---|
2 | /* HeuristicLab
|
---|
3 | * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
|
---|
4 | *
|
---|
5 | * This file is part of HeuristicLab.
|
---|
6 | *
|
---|
7 | * HeuristicLab is free software: you can redistribute it and/or modify
|
---|
8 | * it under the terms of the GNU General Public License as published by
|
---|
9 | * the Free Software Foundation, either version 3 of the License, or
|
---|
10 | * (at your option) any later version.
|
---|
11 | *
|
---|
12 | * HeuristicLab is distributed in the hope that it will be useful,
|
---|
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
---|
15 | * GNU General Public License for more details.
|
---|
16 | *
|
---|
17 | * You should have received a copy of the GNU General Public License
|
---|
18 | * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
|
---|
19 | */
|
---|
20 | #endregion
|
---|
21 |
|
---|
22 | using System;
|
---|
23 | using System.Linq;
|
---|
24 | using HeuristicLab.Analysis;
|
---|
25 | using HeuristicLab.Common;
|
---|
26 | using HeuristicLab.Core;
|
---|
27 | using HeuristicLab.Data;
|
---|
28 | using HeuristicLab.Encodings.LinearLinkageEncoding;
|
---|
29 | using HeuristicLab.Optimization;
|
---|
30 | using HeuristicLab.Optimization.Operators;
|
---|
31 | using HeuristicLab.Parameters;
|
---|
32 | using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
|
---|
33 | using HeuristicLab.Problems.Instances;
|
---|
34 |
|
---|
35 | namespace HeuristicLab.Problems.GraphColoring {
|
---|
36 | public enum FitnessFunction { Prioritized, Penalized }
|
---|
37 | [Item("Graph Coloring Problem (GCP)", "Attempts to find a coloring using a minimal number of colors that doesn't produce a conflict.")]
|
---|
38 | [Creatable(CreatableAttribute.Categories.CombinatorialProblems, Priority = 135)]
|
---|
39 | [StorableClass]
|
---|
40 | public sealed class GraphColoringProblem : SingleObjectiveBasicProblem<LinearLinkageEncoding>, IProblemInstanceConsumer<GCPData>, IProblemInstanceExporter<GCPData> {
|
---|
41 |
|
---|
42 | public override bool Maximization {
|
---|
43 | get { return false; }
|
---|
44 | }
|
---|
45 |
|
---|
46 | [Storable]
|
---|
47 | private IValueParameter<IntMatrix> adjacencyListParameter;
|
---|
48 | public IValueParameter<IntMatrix> AdjacencyListParameter {
|
---|
49 | get { return adjacencyListParameter; }
|
---|
50 | }
|
---|
51 | [Storable]
|
---|
52 | private IValueParameter<EnumValue<FitnessFunction>> fitnessFunctionParameter;
|
---|
53 | public IValueParameter<EnumValue<FitnessFunction>> FitnessFunctionParameter {
|
---|
54 | get { return fitnessFunctionParameter; }
|
---|
55 | }
|
---|
56 | public FitnessFunction FitnessFunction {
|
---|
57 | get { return fitnessFunctionParameter.Value.Value; }
|
---|
58 | set { fitnessFunctionParameter.Value.Value = value; }
|
---|
59 | }
|
---|
60 | [Storable]
|
---|
61 | private IValueParameter<IntValue> bestKnownColorsParameter;
|
---|
62 | public IValueParameter<IntValue> BestKnownColorsParameter {
|
---|
63 | get { return bestKnownColorsParameter; }
|
---|
64 | }
|
---|
65 |
|
---|
66 | [StorableConstructor]
|
---|
67 | private GraphColoringProblem(bool deserializing) : base(deserializing) { }
|
---|
68 | private GraphColoringProblem(GraphColoringProblem original, Cloner cloner)
|
---|
69 | : base(original, cloner) {
|
---|
70 | adjacencyListParameter = cloner.Clone(original.adjacencyListParameter);
|
---|
71 | fitnessFunctionParameter = cloner.Clone(original.fitnessFunctionParameter);
|
---|
72 | bestKnownColorsParameter = cloner.Clone(original.bestKnownColorsParameter);
|
---|
73 | RegisterEventHandlers();
|
---|
74 | }
|
---|
75 | public GraphColoringProblem() {
|
---|
76 | Encoding = new LinearLinkageEncoding("lle");
|
---|
77 | Parameters.Add(adjacencyListParameter = new ValueParameter<IntMatrix>("Adjacency List", "The adjacency list that describes the (symmetric) edges in the graph with nodes from 0 to N-1."));
|
---|
78 | Parameters.Add(fitnessFunctionParameter = new ValueParameter<EnumValue<FitnessFunction>>("Fitness Function", "The function to use for evaluating the quality of a solution.", new EnumValue<FitnessFunction>(FitnessFunction.Penalized)));
|
---|
79 | Parameters.Add(bestKnownColorsParameter = new OptionalValueParameter<IntValue>("BestKnownColors", "The least amount of colors in a valid coloring."));
|
---|
80 |
|
---|
81 | var imat = new IntMatrix(defaultInstance.Length, 2);
|
---|
82 | for (var i = 0; i < defaultInstance.Length; i++) {
|
---|
83 | imat[i, 0] = defaultInstance[i].Item1 - 1;
|
---|
84 | imat[i, 1] = defaultInstance[i].Item2 - 1;
|
---|
85 | }
|
---|
86 | Encoding.Length = defaultInstanceNodes;
|
---|
87 | AdjacencyListParameter.Value = imat;
|
---|
88 | BestKnownQualityParameter.Value = null;
|
---|
89 | BestKnownColorsParameter.Value = new IntValue(defaultInstanceBestColors);
|
---|
90 |
|
---|
91 | InitializeOperators();
|
---|
92 | RegisterEventHandlers();
|
---|
93 | }
|
---|
94 |
|
---|
95 | public override IDeepCloneable Clone(Cloner cloner) {
|
---|
96 | return new GraphColoringProblem(this, cloner);
|
---|
97 | }
|
---|
98 |
|
---|
99 | protected override void OnEncodingChanged() {
|
---|
100 | base.OnEncodingChanged();
|
---|
101 |
|
---|
102 | Parameterize();
|
---|
103 | }
|
---|
104 |
|
---|
105 | [StorableHook(HookType.AfterDeserialization)]
|
---|
106 | private void AfterDeserialization() {
|
---|
107 | RegisterEventHandlers();
|
---|
108 | }
|
---|
109 |
|
---|
110 | private void RegisterEventHandlers() {
|
---|
111 | fitnessFunctionParameter.ValueChanged += FitnessFunctionParameterOnValueChanged;
|
---|
112 | fitnessFunctionParameter.Value.ValueChanged += FitnessFunctionOnValueChanged;
|
---|
113 | }
|
---|
114 |
|
---|
115 | private void FitnessFunctionParameterOnValueChanged(object sender, EventArgs eventArgs) {
|
---|
116 | fitnessFunctionParameter.Value.ValueChanged += FitnessFunctionOnValueChanged;
|
---|
117 | FitnessFunctionOnValueChanged(sender, eventArgs);
|
---|
118 | }
|
---|
119 |
|
---|
120 | private void FitnessFunctionOnValueChanged(object sender, EventArgs eventArgs) {
|
---|
121 | BestKnownQualityParameter.Value = null;
|
---|
122 | if (FitnessFunction == FitnessFunction.Prioritized
|
---|
123 | && BestKnownColorsParameter.Value != null
|
---|
124 | && Encoding.Length > 0) {
|
---|
125 | var mag = Math.Pow(10, -(int)Math.Ceiling(Math.Log10(Encoding.Length)));
|
---|
126 | // the value is e.g. 0.051 for 0 conflicts with 51 colors (and less than 1000 nodes)
|
---|
127 | BestKnownQuality = BestKnownColorsParameter.Value.Value * mag;
|
---|
128 | } else BestKnownQualityParameter.Value = null;
|
---|
129 | OnReset();
|
---|
130 | }
|
---|
131 |
|
---|
132 | public override double Evaluate(Individual individual, IRandom random) {
|
---|
133 | var adjList = adjacencyListParameter.Value;
|
---|
134 | var llee = individual.LinearLinkage(Encoding.Name).ToEndLinks(); // LLE-e encoding uses the highest indexed member as group number
|
---|
135 |
|
---|
136 | switch (FitnessFunction) {
|
---|
137 | case FitnessFunction.Prioritized: {
|
---|
138 | var colors = llee.Distinct().Count();
|
---|
139 | var conflicts = CalculateConflicts(llee);
|
---|
140 | // number of conflicts is the integer part of the quality
|
---|
141 | // number of colors constitutes the fractional part
|
---|
142 | // the number of fractional digits is defined by the maximum number of possible colors (each node its own color)
|
---|
143 | var mag = Math.Pow(10, -(int)Math.Ceiling(Math.Log10(llee.Length)));
|
---|
144 | // the value is e.g. 4.03 for 4 conflicts with 3 colors (and less than 100 nodes)
|
---|
145 | return conflicts + colors * mag;
|
---|
146 | }
|
---|
147 | case FitnessFunction.Penalized: {
|
---|
148 | // Fitness function from
|
---|
149 | // David S. Johnson, Cecilia R. Aragon, Lyle A. McGeoch, and Catherine Schevon. 1991.
|
---|
150 | // Optimization by simulated annealing: An experimental evaluation; part II, graph coloring and number partitioning.
|
---|
151 | // Operations Research 39(3), pp. 378–406.
|
---|
152 | // All local optima of this function correspond to legal colorings.
|
---|
153 | // We need to calculate conflicts and nodes per color
|
---|
154 | var colors = llee.GroupBy(x => x).ToDictionary(x => x.Key, x => new EvaluationHelper() { ColorCount = x.Count() });
|
---|
155 | for (var r = 0; r < adjList.Rows; r++) {
|
---|
156 | var color1 = llee[adjList[r, 0]];
|
---|
157 | var color2 = llee[adjList[r, 1]];
|
---|
158 | if (color1 == color2) colors[color1].ConflictCount++;
|
---|
159 | }
|
---|
160 | return 2 * colors.Sum(x => x.Value.ColorCount * x.Value.ConflictCount) - colors.Sum(x => x.Value.ColorCount * x.Value.ColorCount);
|
---|
161 | }
|
---|
162 | default: throw new InvalidOperationException(string.Format("Unknown fitness function {0}.", FitnessFunction));
|
---|
163 | }
|
---|
164 | }
|
---|
165 |
|
---|
166 | private class EvaluationHelper {
|
---|
167 | public int ColorCount { get; set; }
|
---|
168 | public int ConflictCount { get; set; }
|
---|
169 | }
|
---|
170 |
|
---|
171 | public override void Analyze(Individual[] individuals, double[] qualities, ResultCollection results, IRandom random) {
|
---|
172 | var orderedIndividuals = individuals.Zip(qualities, (i, q) => new { Individual = i, Quality = q }).OrderBy(z => z.Quality);
|
---|
173 | var best = Maximization ? orderedIndividuals.Last().Individual.LinearLinkage(Encoding.Name) : orderedIndividuals.First().Individual.LinearLinkage(Encoding.Name);
|
---|
174 |
|
---|
175 | var lle = best.ToEndLinks();
|
---|
176 | var colors = lle.Distinct().Count();
|
---|
177 | var conflicts = CalculateConflicts(lle);
|
---|
178 |
|
---|
179 | IResult res;
|
---|
180 | int bestColors = int.MaxValue, bestConflicts = int.MaxValue;
|
---|
181 | var improvement = false;
|
---|
182 | if (!results.TryGetValue("Best Solution Conflicts", out res)) {
|
---|
183 | bestConflicts = conflicts;
|
---|
184 | res = new Result("Best Solution Conflicts", new IntValue(bestConflicts));
|
---|
185 | results.Add(res);
|
---|
186 | } else {
|
---|
187 | bestConflicts = ((IntValue)res.Value).Value;
|
---|
188 | improvement = conflicts < bestConflicts;
|
---|
189 | if (improvement) ((IntValue)res.Value).Value = bestConflicts = conflicts;
|
---|
190 | }
|
---|
191 | if (!results.TryGetValue("Best Solution Colors", out res)) {
|
---|
192 | bestColors = colors;
|
---|
193 | res = new Result("Best Solution Colors", new IntValue(bestColors));
|
---|
194 | results.Add(res);
|
---|
195 | } else {
|
---|
196 | bestColors = ((IntValue)res.Value).Value;
|
---|
197 | improvement = improvement || conflicts == bestConflicts && colors < bestColors;
|
---|
198 | if (improvement)
|
---|
199 | ((IntValue)res.Value).Value = bestColors = colors;
|
---|
200 | }
|
---|
201 | if (!results.TryGetValue("Best Solution", out res)) {
|
---|
202 | res = new Result("Best Solution", (LinearLinkage)best.Clone());
|
---|
203 | results.Add(res);
|
---|
204 | } else {
|
---|
205 | if (improvement)
|
---|
206 | res.Value = (LinearLinkage)best.Clone();
|
---|
207 | }
|
---|
208 |
|
---|
209 | if (conflicts == 0) {
|
---|
210 | if (BestKnownColorsParameter.Value == null || BestKnownColorsParameter.Value.Value > colors)
|
---|
211 | BestKnownColorsParameter.Value = new IntValue(colors);
|
---|
212 | }
|
---|
213 | }
|
---|
214 |
|
---|
215 | private int CalculateConflicts(int[] llee) {
|
---|
216 | var adjList = AdjacencyListParameter.Value;
|
---|
217 | var conflicts = 0;
|
---|
218 | for (var r = 0; r < adjList.Rows; r++) {
|
---|
219 | if (llee[adjList[r, 0]] == llee[adjList[r, 1]]) conflicts++; // both nodes are adjacent and have the same color (are in the same group)
|
---|
220 | }
|
---|
221 | return conflicts;
|
---|
222 | }
|
---|
223 |
|
---|
224 | public void Load(GCPData data) {
|
---|
225 | Encoding.Length = data.Nodes;
|
---|
226 | AdjacencyListParameter.Value = new IntMatrix(data.Adjacencies);
|
---|
227 | if (data.BestKnownColoring != null) {
|
---|
228 | var colors = data.BestKnownColoring.Distinct().Count();
|
---|
229 | BestKnownColorsParameter.Value = new IntValue(colors);
|
---|
230 | if (FitnessFunction == FitnessFunction.Prioritized) {
|
---|
231 | var mag = Math.Pow(10, -(int)Math.Ceiling(Math.Log10(data.Nodes)));
|
---|
232 | BestKnownQuality = colors * mag;
|
---|
233 | } else {
|
---|
234 | var nodesPerColor = data.BestKnownColoring.GroupBy(x => x).Select(x => x.Count());
|
---|
235 | BestKnownQuality = -nodesPerColor.Sum(x => x * x);
|
---|
236 | }
|
---|
237 | } else if (data.BestKnownColors.HasValue) {
|
---|
238 | BestKnownColorsParameter.Value = new IntValue(data.BestKnownColors.Value);
|
---|
239 | if (FitnessFunction == FitnessFunction.Prioritized) {
|
---|
240 | var mag = Math.Pow(10, -(int)Math.Ceiling(Math.Log10(data.Nodes)));
|
---|
241 | // the value is e.g. 0.051 for 0 conflicts with 51 colors (and less than 1000 nodes)
|
---|
242 | BestKnownQuality = data.BestKnownColors.Value * mag;
|
---|
243 | } else BestKnownQualityParameter.Value = null;
|
---|
244 | } else {
|
---|
245 | BestKnownColorsParameter.Value = null;
|
---|
246 | BestKnownQualityParameter.Value = null;
|
---|
247 | }
|
---|
248 | Name = data.Name;
|
---|
249 | Description = data.Description;
|
---|
250 | OnReset();
|
---|
251 | }
|
---|
252 |
|
---|
253 | public GCPData Export() {
|
---|
254 | var instance = new GCPData();
|
---|
255 | instance.Name = Name;
|
---|
256 | instance.Description = Description;
|
---|
257 | instance.Nodes = Encoding.Length;
|
---|
258 | var adjList = AdjacencyListParameter.Value;
|
---|
259 | instance.Adjacencies = new int[adjList.Rows, 2];
|
---|
260 | for (var r = 0; r < adjList.Rows; r++) {
|
---|
261 | instance.Adjacencies[r, 0] = adjList[r, 0];
|
---|
262 | instance.Adjacencies[r, 1] = adjList[r, 1];
|
---|
263 | }
|
---|
264 | if (BestKnownColorsParameter.Value != null)
|
---|
265 | instance.BestKnownColors = BestKnownColorsParameter.Value.Value;
|
---|
266 | return instance;
|
---|
267 | }
|
---|
268 |
|
---|
269 | private void InitializeOperators() {
|
---|
270 | Operators.Add(new HammingSimilarityCalculator());
|
---|
271 | Operators.Add(new QualitySimilarityCalculator());
|
---|
272 | Operators.Add(new PopulationSimilarityAnalyzer(Operators.OfType<ISolutionSimilarityCalculator>()));
|
---|
273 |
|
---|
274 | Parameterize();
|
---|
275 | }
|
---|
276 |
|
---|
277 | private void Parameterize() {
|
---|
278 | foreach (var simCalc in Operators.OfType<ISolutionSimilarityCalculator>()) {
|
---|
279 | simCalc.SolutionVariableName = Encoding.Name;
|
---|
280 | simCalc.QualityVariableName = Evaluator.QualityParameter.ActualName;
|
---|
281 | }
|
---|
282 | }
|
---|
283 |
|
---|
284 | #region Default Instance (myciel6.col)
|
---|
285 | private static readonly int defaultInstanceNodes = 95;
|
---|
286 | private static readonly int defaultInstanceBestColors = 7;
|
---|
287 | private static readonly Tuple<int, int>[] defaultInstance = {
|
---|
288 | Tuple.Create(1, 2),
|
---|
289 | Tuple.Create(1, 4),
|
---|
290 | Tuple.Create(1, 7),
|
---|
291 | Tuple.Create(1, 9),
|
---|
292 | Tuple.Create(1, 13),
|
---|
293 | Tuple.Create(1, 15),
|
---|
294 | Tuple.Create(1, 18),
|
---|
295 | Tuple.Create(1, 20),
|
---|
296 | Tuple.Create(1, 25),
|
---|
297 | Tuple.Create(1, 27),
|
---|
298 | Tuple.Create(1, 30),
|
---|
299 | Tuple.Create(1, 32),
|
---|
300 | Tuple.Create(1, 36),
|
---|
301 | Tuple.Create(1, 38),
|
---|
302 | Tuple.Create(1, 41),
|
---|
303 | Tuple.Create(1, 43),
|
---|
304 | Tuple.Create(1, 49),
|
---|
305 | Tuple.Create(1, 51),
|
---|
306 | Tuple.Create(1, 54),
|
---|
307 | Tuple.Create(1, 56),
|
---|
308 | Tuple.Create(1, 60),
|
---|
309 | Tuple.Create(1, 62),
|
---|
310 | Tuple.Create(1, 65),
|
---|
311 | Tuple.Create(1, 67),
|
---|
312 | Tuple.Create(1, 72),
|
---|
313 | Tuple.Create(1, 74),
|
---|
314 | Tuple.Create(1, 77),
|
---|
315 | Tuple.Create(1, 79),
|
---|
316 | Tuple.Create(1, 83),
|
---|
317 | Tuple.Create(1, 85),
|
---|
318 | Tuple.Create(1, 88),
|
---|
319 | Tuple.Create(1, 90),
|
---|
320 | Tuple.Create(2, 3),
|
---|
321 | Tuple.Create(2, 6),
|
---|
322 | Tuple.Create(2, 8),
|
---|
323 | Tuple.Create(2, 12),
|
---|
324 | Tuple.Create(2, 14),
|
---|
325 | Tuple.Create(2, 17),
|
---|
326 | Tuple.Create(2, 19),
|
---|
327 | Tuple.Create(2, 24),
|
---|
328 | Tuple.Create(2, 26),
|
---|
329 | Tuple.Create(2, 29),
|
---|
330 | Tuple.Create(2, 31),
|
---|
331 | Tuple.Create(2, 35),
|
---|
332 | Tuple.Create(2, 37),
|
---|
333 | Tuple.Create(2, 40),
|
---|
334 | Tuple.Create(2, 42),
|
---|
335 | Tuple.Create(2, 48),
|
---|
336 | Tuple.Create(2, 50),
|
---|
337 | Tuple.Create(2, 53),
|
---|
338 | Tuple.Create(2, 55),
|
---|
339 | Tuple.Create(2, 59),
|
---|
340 | Tuple.Create(2, 61),
|
---|
341 | Tuple.Create(2, 64),
|
---|
342 | Tuple.Create(2, 66),
|
---|
343 | Tuple.Create(2, 71),
|
---|
344 | Tuple.Create(2, 73),
|
---|
345 | Tuple.Create(2, 76),
|
---|
346 | Tuple.Create(2, 78),
|
---|
347 | Tuple.Create(2, 82),
|
---|
348 | Tuple.Create(2, 84),
|
---|
349 | Tuple.Create(2, 87),
|
---|
350 | Tuple.Create(2, 89),
|
---|
351 | Tuple.Create(3, 5),
|
---|
352 | Tuple.Create(3, 7),
|
---|
353 | Tuple.Create(3, 10),
|
---|
354 | Tuple.Create(3, 13),
|
---|
355 | Tuple.Create(3, 16),
|
---|
356 | Tuple.Create(3, 18),
|
---|
357 | Tuple.Create(3, 21),
|
---|
358 | Tuple.Create(3, 25),
|
---|
359 | Tuple.Create(3, 28),
|
---|
360 | Tuple.Create(3, 30),
|
---|
361 | Tuple.Create(3, 33),
|
---|
362 | Tuple.Create(3, 36),
|
---|
363 | Tuple.Create(3, 39),
|
---|
364 | Tuple.Create(3, 41),
|
---|
365 | Tuple.Create(3, 44),
|
---|
366 | Tuple.Create(3, 49),
|
---|
367 | Tuple.Create(3, 52),
|
---|
368 | Tuple.Create(3, 54),
|
---|
369 | Tuple.Create(3, 57),
|
---|
370 | Tuple.Create(3, 60),
|
---|
371 | Tuple.Create(3, 63),
|
---|
372 | Tuple.Create(3, 65),
|
---|
373 | Tuple.Create(3, 68),
|
---|
374 | Tuple.Create(3, 72),
|
---|
375 | Tuple.Create(3, 75),
|
---|
376 | Tuple.Create(3, 77),
|
---|
377 | Tuple.Create(3, 80),
|
---|
378 | Tuple.Create(3, 83),
|
---|
379 | Tuple.Create(3, 86),
|
---|
380 | Tuple.Create(3, 88),
|
---|
381 | Tuple.Create(3, 91),
|
---|
382 | Tuple.Create(4, 5),
|
---|
383 | Tuple.Create(4, 6),
|
---|
384 | Tuple.Create(4, 10),
|
---|
385 | Tuple.Create(4, 12),
|
---|
386 | Tuple.Create(4, 16),
|
---|
387 | Tuple.Create(4, 17),
|
---|
388 | Tuple.Create(4, 21),
|
---|
389 | Tuple.Create(4, 24),
|
---|
390 | Tuple.Create(4, 28),
|
---|
391 | Tuple.Create(4, 29),
|
---|
392 | Tuple.Create(4, 33),
|
---|
393 | Tuple.Create(4, 35),
|
---|
394 | Tuple.Create(4, 39),
|
---|
395 | Tuple.Create(4, 40),
|
---|
396 | Tuple.Create(4, 44),
|
---|
397 | Tuple.Create(4, 48),
|
---|
398 | Tuple.Create(4, 52),
|
---|
399 | Tuple.Create(4, 53),
|
---|
400 | Tuple.Create(4, 57),
|
---|
401 | Tuple.Create(4, 59),
|
---|
402 | Tuple.Create(4, 63),
|
---|
403 | Tuple.Create(4, 64),
|
---|
404 | Tuple.Create(4, 68),
|
---|
405 | Tuple.Create(4, 71),
|
---|
406 | Tuple.Create(4, 75),
|
---|
407 | Tuple.Create(4, 76),
|
---|
408 | Tuple.Create(4, 80),
|
---|
409 | Tuple.Create(4, 82),
|
---|
410 | Tuple.Create(4, 86),
|
---|
411 | Tuple.Create(4, 87),
|
---|
412 | Tuple.Create(4, 91),
|
---|
413 | Tuple.Create(5, 8),
|
---|
414 | Tuple.Create(5, 9),
|
---|
415 | Tuple.Create(5, 14),
|
---|
416 | Tuple.Create(5, 15),
|
---|
417 | Tuple.Create(5, 19),
|
---|
418 | Tuple.Create(5, 20),
|
---|
419 | Tuple.Create(5, 26),
|
---|
420 | Tuple.Create(5, 27),
|
---|
421 | Tuple.Create(5, 31),
|
---|
422 | Tuple.Create(5, 32),
|
---|
423 | Tuple.Create(5, 37),
|
---|
424 | Tuple.Create(5, 38),
|
---|
425 | Tuple.Create(5, 42),
|
---|
426 | Tuple.Create(5, 43),
|
---|
427 | Tuple.Create(5, 50),
|
---|
428 | Tuple.Create(5, 51),
|
---|
429 | Tuple.Create(5, 55),
|
---|
430 | Tuple.Create(5, 56),
|
---|
431 | Tuple.Create(5, 61),
|
---|
432 | Tuple.Create(5, 62),
|
---|
433 | Tuple.Create(5, 66),
|
---|
434 | Tuple.Create(5, 67),
|
---|
435 | Tuple.Create(5, 73),
|
---|
436 | Tuple.Create(5, 74),
|
---|
437 | Tuple.Create(5, 78),
|
---|
438 | Tuple.Create(5, 79),
|
---|
439 | Tuple.Create(5, 84),
|
---|
440 | Tuple.Create(5, 85),
|
---|
441 | Tuple.Create(5, 89),
|
---|
442 | Tuple.Create(5, 90),
|
---|
443 | Tuple.Create(6, 11),
|
---|
444 | Tuple.Create(6, 13),
|
---|
445 | Tuple.Create(6, 15),
|
---|
446 | Tuple.Create(6, 22),
|
---|
447 | Tuple.Create(6, 25),
|
---|
448 | Tuple.Create(6, 27),
|
---|
449 | Tuple.Create(6, 34),
|
---|
450 | Tuple.Create(6, 36),
|
---|
451 | Tuple.Create(6, 38),
|
---|
452 | Tuple.Create(6, 45),
|
---|
453 | Tuple.Create(6, 49),
|
---|
454 | Tuple.Create(6, 51),
|
---|
455 | Tuple.Create(6, 58),
|
---|
456 | Tuple.Create(6, 60),
|
---|
457 | Tuple.Create(6, 62),
|
---|
458 | Tuple.Create(6, 69),
|
---|
459 | Tuple.Create(6, 72),
|
---|
460 | Tuple.Create(6, 74),
|
---|
461 | Tuple.Create(6, 81),
|
---|
462 | Tuple.Create(6, 83),
|
---|
463 | Tuple.Create(6, 85),
|
---|
464 | Tuple.Create(6, 92),
|
---|
465 | Tuple.Create(7, 11),
|
---|
466 | Tuple.Create(7, 12),
|
---|
467 | Tuple.Create(7, 14),
|
---|
468 | Tuple.Create(7, 22),
|
---|
469 | Tuple.Create(7, 24),
|
---|
470 | Tuple.Create(7, 26),
|
---|
471 | Tuple.Create(7, 34),
|
---|
472 | Tuple.Create(7, 35),
|
---|
473 | Tuple.Create(7, 37),
|
---|
474 | Tuple.Create(7, 45),
|
---|
475 | Tuple.Create(7, 48),
|
---|
476 | Tuple.Create(7, 50),
|
---|
477 | Tuple.Create(7, 58),
|
---|
478 | Tuple.Create(7, 59),
|
---|
479 | Tuple.Create(7, 61),
|
---|
480 | Tuple.Create(7, 69),
|
---|
481 | Tuple.Create(7, 71),
|
---|
482 | Tuple.Create(7, 73),
|
---|
483 | Tuple.Create(7, 81),
|
---|
484 | Tuple.Create(7, 82),
|
---|
485 | Tuple.Create(7, 84),
|
---|
486 | Tuple.Create(7, 92),
|
---|
487 | Tuple.Create(8, 11),
|
---|
488 | Tuple.Create(8, 13),
|
---|
489 | Tuple.Create(8, 16),
|
---|
490 | Tuple.Create(8, 22),
|
---|
491 | Tuple.Create(8, 25),
|
---|
492 | Tuple.Create(8, 28),
|
---|
493 | Tuple.Create(8, 34),
|
---|
494 | Tuple.Create(8, 36),
|
---|
495 | Tuple.Create(8, 39),
|
---|
496 | Tuple.Create(8, 45),
|
---|
497 | Tuple.Create(8, 49),
|
---|
498 | Tuple.Create(8, 52),
|
---|
499 | Tuple.Create(8, 58),
|
---|
500 | Tuple.Create(8, 60),
|
---|
501 | Tuple.Create(8, 63),
|
---|
502 | Tuple.Create(8, 69),
|
---|
503 | Tuple.Create(8, 72),
|
---|
504 | Tuple.Create(8, 75),
|
---|
505 | Tuple.Create(8, 81),
|
---|
506 | Tuple.Create(8, 83),
|
---|
507 | Tuple.Create(8, 86),
|
---|
508 | Tuple.Create(8, 92),
|
---|
509 | Tuple.Create(9, 11),
|
---|
510 | Tuple.Create(9, 12),
|
---|
511 | Tuple.Create(9, 16),
|
---|
512 | Tuple.Create(9, 22),
|
---|
513 | Tuple.Create(9, 24),
|
---|
514 | Tuple.Create(9, 28),
|
---|
515 | Tuple.Create(9, 34),
|
---|
516 | Tuple.Create(9, 35),
|
---|
517 | Tuple.Create(9, 39),
|
---|
518 | Tuple.Create(9, 45),
|
---|
519 | Tuple.Create(9, 48),
|
---|
520 | Tuple.Create(9, 52),
|
---|
521 | Tuple.Create(9, 58),
|
---|
522 | Tuple.Create(9, 59),
|
---|
523 | Tuple.Create(9, 63),
|
---|
524 | Tuple.Create(9, 69),
|
---|
525 | Tuple.Create(9, 71),
|
---|
526 | Tuple.Create(9, 75),
|
---|
527 | Tuple.Create(9, 81),
|
---|
528 | Tuple.Create(9, 82),
|
---|
529 | Tuple.Create(9, 86),
|
---|
530 | Tuple.Create(9, 92),
|
---|
531 | Tuple.Create(10, 11),
|
---|
532 | Tuple.Create(10, 14),
|
---|
533 | Tuple.Create(10, 15),
|
---|
534 | Tuple.Create(10, 22),
|
---|
535 | Tuple.Create(10, 26),
|
---|
536 | Tuple.Create(10, 27),
|
---|
537 | Tuple.Create(10, 34),
|
---|
538 | Tuple.Create(10, 37),
|
---|
539 | Tuple.Create(10, 38),
|
---|
540 | Tuple.Create(10, 45),
|
---|
541 | Tuple.Create(10, 50),
|
---|
542 | Tuple.Create(10, 51),
|
---|
543 | Tuple.Create(10, 58),
|
---|
544 | Tuple.Create(10, 61),
|
---|
545 | Tuple.Create(10, 62),
|
---|
546 | Tuple.Create(10, 69),
|
---|
547 | Tuple.Create(10, 73),
|
---|
548 | Tuple.Create(10, 74),
|
---|
549 | Tuple.Create(10, 81),
|
---|
550 | Tuple.Create(10, 84),
|
---|
551 | Tuple.Create(10, 85),
|
---|
552 | Tuple.Create(10, 92),
|
---|
553 | Tuple.Create(11, 17),
|
---|
554 | Tuple.Create(11, 18),
|
---|
555 | Tuple.Create(11, 19),
|
---|
556 | Tuple.Create(11, 20),
|
---|
557 | Tuple.Create(11, 21),
|
---|
558 | Tuple.Create(11, 29),
|
---|
559 | Tuple.Create(11, 30),
|
---|
560 | Tuple.Create(11, 31),
|
---|
561 | Tuple.Create(11, 32),
|
---|
562 | Tuple.Create(11, 33),
|
---|
563 | Tuple.Create(11, 40),
|
---|
564 | Tuple.Create(11, 41),
|
---|
565 | Tuple.Create(11, 42),
|
---|
566 | Tuple.Create(11, 43),
|
---|
567 | Tuple.Create(11, 44),
|
---|
568 | Tuple.Create(11, 53),
|
---|
569 | Tuple.Create(11, 54),
|
---|
570 | Tuple.Create(11, 55),
|
---|
571 | Tuple.Create(11, 56),
|
---|
572 | Tuple.Create(11, 57),
|
---|
573 | Tuple.Create(11, 64),
|
---|
574 | Tuple.Create(11, 65),
|
---|
575 | Tuple.Create(11, 66),
|
---|
576 | Tuple.Create(11, 67),
|
---|
577 | Tuple.Create(11, 68),
|
---|
578 | Tuple.Create(11, 76),
|
---|
579 | Tuple.Create(11, 77),
|
---|
580 | Tuple.Create(11, 78),
|
---|
581 | Tuple.Create(11, 79),
|
---|
582 | Tuple.Create(11, 80),
|
---|
583 | Tuple.Create(11, 87),
|
---|
584 | Tuple.Create(11, 88),
|
---|
585 | Tuple.Create(11, 89),
|
---|
586 | Tuple.Create(11, 90),
|
---|
587 | Tuple.Create(11, 91),
|
---|
588 | Tuple.Create(12, 23),
|
---|
589 | Tuple.Create(12, 25),
|
---|
590 | Tuple.Create(12, 27),
|
---|
591 | Tuple.Create(12, 30),
|
---|
592 | Tuple.Create(12, 32),
|
---|
593 | Tuple.Create(12, 46),
|
---|
594 | Tuple.Create(12, 49),
|
---|
595 | Tuple.Create(12, 51),
|
---|
596 | Tuple.Create(12, 54),
|
---|
597 | Tuple.Create(12, 56),
|
---|
598 | Tuple.Create(12, 70),
|
---|
599 | Tuple.Create(12, 72),
|
---|
600 | Tuple.Create(12, 74),
|
---|
601 | Tuple.Create(12, 77),
|
---|
602 | Tuple.Create(12, 79),
|
---|
603 | Tuple.Create(12, 93),
|
---|
604 | Tuple.Create(13, 23),
|
---|
605 | Tuple.Create(13, 24),
|
---|
606 | Tuple.Create(13, 26),
|
---|
607 | Tuple.Create(13, 29),
|
---|
608 | Tuple.Create(13, 31),
|
---|
609 | Tuple.Create(13, 46),
|
---|
610 | Tuple.Create(13, 48),
|
---|
611 | Tuple.Create(13, 50),
|
---|
612 | Tuple.Create(13, 53),
|
---|
613 | Tuple.Create(13, 55),
|
---|
614 | Tuple.Create(13, 70),
|
---|
615 | Tuple.Create(13, 71),
|
---|
616 | Tuple.Create(13, 73),
|
---|
617 | Tuple.Create(13, 76),
|
---|
618 | Tuple.Create(13, 78),
|
---|
619 | Tuple.Create(13, 93),
|
---|
620 | Tuple.Create(14, 23),
|
---|
621 | Tuple.Create(14, 25),
|
---|
622 | Tuple.Create(14, 28),
|
---|
623 | Tuple.Create(14, 30),
|
---|
624 | Tuple.Create(14, 33),
|
---|
625 | Tuple.Create(14, 46),
|
---|
626 | Tuple.Create(14, 49),
|
---|
627 | Tuple.Create(14, 52),
|
---|
628 | Tuple.Create(14, 54),
|
---|
629 | Tuple.Create(14, 57),
|
---|
630 | Tuple.Create(14, 70),
|
---|
631 | Tuple.Create(14, 72),
|
---|
632 | Tuple.Create(14, 75),
|
---|
633 | Tuple.Create(14, 77),
|
---|
634 | Tuple.Create(14, 80),
|
---|
635 | Tuple.Create(14, 93),
|
---|
636 | Tuple.Create(15, 23),
|
---|
637 | Tuple.Create(15, 24),
|
---|
638 | Tuple.Create(15, 28),
|
---|
639 | Tuple.Create(15, 29),
|
---|
640 | Tuple.Create(15, 33),
|
---|
641 | Tuple.Create(15, 46),
|
---|
642 | Tuple.Create(15, 48),
|
---|
643 | Tuple.Create(15, 52),
|
---|
644 | Tuple.Create(15, 53),
|
---|
645 | Tuple.Create(15, 57),
|
---|
646 | Tuple.Create(15, 70),
|
---|
647 | Tuple.Create(15, 71),
|
---|
648 | Tuple.Create(15, 75),
|
---|
649 | Tuple.Create(15, 76),
|
---|
650 | Tuple.Create(15, 80),
|
---|
651 | Tuple.Create(15, 93),
|
---|
652 | Tuple.Create(16, 23),
|
---|
653 | Tuple.Create(16, 26),
|
---|
654 | Tuple.Create(16, 27),
|
---|
655 | Tuple.Create(16, 31),
|
---|
656 | Tuple.Create(16, 32),
|
---|
657 | Tuple.Create(16, 46),
|
---|
658 | Tuple.Create(16, 50),
|
---|
659 | Tuple.Create(16, 51),
|
---|
660 | Tuple.Create(16, 55),
|
---|
661 | Tuple.Create(16, 56),
|
---|
662 | Tuple.Create(16, 70),
|
---|
663 | Tuple.Create(16, 73),
|
---|
664 | Tuple.Create(16, 74),
|
---|
665 | Tuple.Create(16, 78),
|
---|
666 | Tuple.Create(16, 79),
|
---|
667 | Tuple.Create(16, 93),
|
---|
668 | Tuple.Create(17, 23),
|
---|
669 | Tuple.Create(17, 25),
|
---|
670 | Tuple.Create(17, 27),
|
---|
671 | Tuple.Create(17, 34),
|
---|
672 | Tuple.Create(17, 46),
|
---|
673 | Tuple.Create(17, 49),
|
---|
674 | Tuple.Create(17, 51),
|
---|
675 | Tuple.Create(17, 58),
|
---|
676 | Tuple.Create(17, 70),
|
---|
677 | Tuple.Create(17, 72),
|
---|
678 | Tuple.Create(17, 74),
|
---|
679 | Tuple.Create(17, 81),
|
---|
680 | Tuple.Create(17, 93),
|
---|
681 | Tuple.Create(18, 23),
|
---|
682 | Tuple.Create(18, 24),
|
---|
683 | Tuple.Create(18, 26),
|
---|
684 | Tuple.Create(18, 34),
|
---|
685 | Tuple.Create(18, 46),
|
---|
686 | Tuple.Create(18, 48),
|
---|
687 | Tuple.Create(18, 50),
|
---|
688 | Tuple.Create(18, 58),
|
---|
689 | Tuple.Create(18, 70),
|
---|
690 | Tuple.Create(18, 71),
|
---|
691 | Tuple.Create(18, 73),
|
---|
692 | Tuple.Create(18, 81),
|
---|
693 | Tuple.Create(18, 93),
|
---|
694 | Tuple.Create(19, 23),
|
---|
695 | Tuple.Create(19, 25),
|
---|
696 | Tuple.Create(19, 28),
|
---|
697 | Tuple.Create(19, 34),
|
---|
698 | Tuple.Create(19, 46),
|
---|
699 | Tuple.Create(19, 49),
|
---|
700 | Tuple.Create(19, 52),
|
---|
701 | Tuple.Create(19, 58),
|
---|
702 | Tuple.Create(19, 70),
|
---|
703 | Tuple.Create(19, 72),
|
---|
704 | Tuple.Create(19, 75),
|
---|
705 | Tuple.Create(19, 81),
|
---|
706 | Tuple.Create(19, 93),
|
---|
707 | Tuple.Create(20, 23),
|
---|
708 | Tuple.Create(20, 24),
|
---|
709 | Tuple.Create(20, 28),
|
---|
710 | Tuple.Create(20, 34),
|
---|
711 | Tuple.Create(20, 46),
|
---|
712 | Tuple.Create(20, 48),
|
---|
713 | Tuple.Create(20, 52),
|
---|
714 | Tuple.Create(20, 58),
|
---|
715 | Tuple.Create(20, 70),
|
---|
716 | Tuple.Create(20, 71),
|
---|
717 | Tuple.Create(20, 75),
|
---|
718 | Tuple.Create(20, 81),
|
---|
719 | Tuple.Create(20, 93),
|
---|
720 | Tuple.Create(21, 23),
|
---|
721 | Tuple.Create(21, 26),
|
---|
722 | Tuple.Create(21, 27),
|
---|
723 | Tuple.Create(21, 34),
|
---|
724 | Tuple.Create(21, 46),
|
---|
725 | Tuple.Create(21, 50),
|
---|
726 | Tuple.Create(21, 51),
|
---|
727 | Tuple.Create(21, 58),
|
---|
728 | Tuple.Create(21, 70),
|
---|
729 | Tuple.Create(21, 73),
|
---|
730 | Tuple.Create(21, 74),
|
---|
731 | Tuple.Create(21, 81),
|
---|
732 | Tuple.Create(21, 93),
|
---|
733 | Tuple.Create(22, 23),
|
---|
734 | Tuple.Create(22, 29),
|
---|
735 | Tuple.Create(22, 30),
|
---|
736 | Tuple.Create(22, 31),
|
---|
737 | Tuple.Create(22, 32),
|
---|
738 | Tuple.Create(22, 33),
|
---|
739 | Tuple.Create(22, 46),
|
---|
740 | Tuple.Create(22, 53),
|
---|
741 | Tuple.Create(22, 54),
|
---|
742 | Tuple.Create(22, 55),
|
---|
743 | Tuple.Create(22, 56),
|
---|
744 | Tuple.Create(22, 57),
|
---|
745 | Tuple.Create(22, 70),
|
---|
746 | Tuple.Create(22, 76),
|
---|
747 | Tuple.Create(22, 77),
|
---|
748 | Tuple.Create(22, 78),
|
---|
749 | Tuple.Create(22, 79),
|
---|
750 | Tuple.Create(22, 80),
|
---|
751 | Tuple.Create(22, 93),
|
---|
752 | Tuple.Create(23, 35),
|
---|
753 | Tuple.Create(23, 36),
|
---|
754 | Tuple.Create(23, 37),
|
---|
755 | Tuple.Create(23, 38),
|
---|
756 | Tuple.Create(23, 39),
|
---|
757 | Tuple.Create(23, 40),
|
---|
758 | Tuple.Create(23, 41),
|
---|
759 | Tuple.Create(23, 42),
|
---|
760 | Tuple.Create(23, 43),
|
---|
761 | Tuple.Create(23, 44),
|
---|
762 | Tuple.Create(23, 45),
|
---|
763 | Tuple.Create(23, 59),
|
---|
764 | Tuple.Create(23, 60),
|
---|
765 | Tuple.Create(23, 61),
|
---|
766 | Tuple.Create(23, 62),
|
---|
767 | Tuple.Create(23, 63),
|
---|
768 | Tuple.Create(23, 64),
|
---|
769 | Tuple.Create(23, 65),
|
---|
770 | Tuple.Create(23, 66),
|
---|
771 | Tuple.Create(23, 67),
|
---|
772 | Tuple.Create(23, 68),
|
---|
773 | Tuple.Create(23, 69),
|
---|
774 | Tuple.Create(23, 82),
|
---|
775 | Tuple.Create(23, 83),
|
---|
776 | Tuple.Create(23, 84),
|
---|
777 | Tuple.Create(23, 85),
|
---|
778 | Tuple.Create(23, 86),
|
---|
779 | Tuple.Create(23, 87),
|
---|
780 | Tuple.Create(23, 88),
|
---|
781 | Tuple.Create(23, 89),
|
---|
782 | Tuple.Create(23, 90),
|
---|
783 | Tuple.Create(23, 91),
|
---|
784 | Tuple.Create(23, 92),
|
---|
785 | Tuple.Create(24, 47),
|
---|
786 | Tuple.Create(24, 49),
|
---|
787 | Tuple.Create(24, 51),
|
---|
788 | Tuple.Create(24, 54),
|
---|
789 | Tuple.Create(24, 56),
|
---|
790 | Tuple.Create(24, 60),
|
---|
791 | Tuple.Create(24, 62),
|
---|
792 | Tuple.Create(24, 65),
|
---|
793 | Tuple.Create(24, 67),
|
---|
794 | Tuple.Create(24, 94),
|
---|
795 | Tuple.Create(25, 47),
|
---|
796 | Tuple.Create(25, 48),
|
---|
797 | Tuple.Create(25, 50),
|
---|
798 | Tuple.Create(25, 53),
|
---|
799 | Tuple.Create(25, 55),
|
---|
800 | Tuple.Create(25, 59),
|
---|
801 | Tuple.Create(25, 61),
|
---|
802 | Tuple.Create(25, 64),
|
---|
803 | Tuple.Create(25, 66),
|
---|
804 | Tuple.Create(25, 94),
|
---|
805 | Tuple.Create(26, 47),
|
---|
806 | Tuple.Create(26, 49),
|
---|
807 | Tuple.Create(26, 52),
|
---|
808 | Tuple.Create(26, 54),
|
---|
809 | Tuple.Create(26, 57),
|
---|
810 | Tuple.Create(26, 60),
|
---|
811 | Tuple.Create(26, 63),
|
---|
812 | Tuple.Create(26, 65),
|
---|
813 | Tuple.Create(26, 68),
|
---|
814 | Tuple.Create(26, 94),
|
---|
815 | Tuple.Create(27, 47),
|
---|
816 | Tuple.Create(27, 48),
|
---|
817 | Tuple.Create(27, 52),
|
---|
818 | Tuple.Create(27, 53),
|
---|
819 | Tuple.Create(27, 57),
|
---|
820 | Tuple.Create(27, 59),
|
---|
821 | Tuple.Create(27, 63),
|
---|
822 | Tuple.Create(27, 64),
|
---|
823 | Tuple.Create(27, 68),
|
---|
824 | Tuple.Create(27, 94),
|
---|
825 | Tuple.Create(28, 47),
|
---|
826 | Tuple.Create(28, 50),
|
---|
827 | Tuple.Create(28, 51),
|
---|
828 | Tuple.Create(28, 55),
|
---|
829 | Tuple.Create(28, 56),
|
---|
830 | Tuple.Create(28, 61),
|
---|
831 | Tuple.Create(28, 62),
|
---|
832 | Tuple.Create(28, 66),
|
---|
833 | Tuple.Create(28, 67),
|
---|
834 | Tuple.Create(28, 94),
|
---|
835 | Tuple.Create(29, 47),
|
---|
836 | Tuple.Create(29, 49),
|
---|
837 | Tuple.Create(29, 51),
|
---|
838 | Tuple.Create(29, 58),
|
---|
839 | Tuple.Create(29, 60),
|
---|
840 | Tuple.Create(29, 62),
|
---|
841 | Tuple.Create(29, 69),
|
---|
842 | Tuple.Create(29, 94),
|
---|
843 | Tuple.Create(30, 47),
|
---|
844 | Tuple.Create(30, 48),
|
---|
845 | Tuple.Create(30, 50),
|
---|
846 | Tuple.Create(30, 58),
|
---|
847 | Tuple.Create(30, 59),
|
---|
848 | Tuple.Create(30, 61),
|
---|
849 | Tuple.Create(30, 69),
|
---|
850 | Tuple.Create(30, 94),
|
---|
851 | Tuple.Create(31, 47),
|
---|
852 | Tuple.Create(31, 49),
|
---|
853 | Tuple.Create(31, 52),
|
---|
854 | Tuple.Create(31, 58),
|
---|
855 | Tuple.Create(31, 60),
|
---|
856 | Tuple.Create(31, 63),
|
---|
857 | Tuple.Create(31, 69),
|
---|
858 | Tuple.Create(31, 94),
|
---|
859 | Tuple.Create(32, 47),
|
---|
860 | Tuple.Create(32, 48),
|
---|
861 | Tuple.Create(32, 52),
|
---|
862 | Tuple.Create(32, 58),
|
---|
863 | Tuple.Create(32, 59),
|
---|
864 | Tuple.Create(32, 63),
|
---|
865 | Tuple.Create(32, 69),
|
---|
866 | Tuple.Create(32, 94),
|
---|
867 | Tuple.Create(33, 47),
|
---|
868 | Tuple.Create(33, 50),
|
---|
869 | Tuple.Create(33, 51),
|
---|
870 | Tuple.Create(33, 58),
|
---|
871 | Tuple.Create(33, 61),
|
---|
872 | Tuple.Create(33, 62),
|
---|
873 | Tuple.Create(33, 69),
|
---|
874 | Tuple.Create(33, 94),
|
---|
875 | Tuple.Create(34, 47),
|
---|
876 | Tuple.Create(34, 53),
|
---|
877 | Tuple.Create(34, 54),
|
---|
878 | Tuple.Create(34, 55),
|
---|
879 | Tuple.Create(34, 56),
|
---|
880 | Tuple.Create(34, 57),
|
---|
881 | Tuple.Create(34, 64),
|
---|
882 | Tuple.Create(34, 65),
|
---|
883 | Tuple.Create(34, 66),
|
---|
884 | Tuple.Create(34, 67),
|
---|
885 | Tuple.Create(34, 68),
|
---|
886 | Tuple.Create(34, 94),
|
---|
887 | Tuple.Create(35, 47),
|
---|
888 | Tuple.Create(35, 49),
|
---|
889 | Tuple.Create(35, 51),
|
---|
890 | Tuple.Create(35, 54),
|
---|
891 | Tuple.Create(35, 56),
|
---|
892 | Tuple.Create(35, 70),
|
---|
893 | Tuple.Create(35, 94),
|
---|
894 | Tuple.Create(36, 47),
|
---|
895 | Tuple.Create(36, 48),
|
---|
896 | Tuple.Create(36, 50),
|
---|
897 | Tuple.Create(36, 53),
|
---|
898 | Tuple.Create(36, 55),
|
---|
899 | Tuple.Create(36, 70),
|
---|
900 | Tuple.Create(36, 94),
|
---|
901 | Tuple.Create(37, 47),
|
---|
902 | Tuple.Create(37, 49),
|
---|
903 | Tuple.Create(37, 52),
|
---|
904 | Tuple.Create(37, 54),
|
---|
905 | Tuple.Create(37, 57),
|
---|
906 | Tuple.Create(37, 70),
|
---|
907 | Tuple.Create(37, 94),
|
---|
908 | Tuple.Create(38, 47),
|
---|
909 | Tuple.Create(38, 48),
|
---|
910 | Tuple.Create(38, 52),
|
---|
911 | Tuple.Create(38, 53),
|
---|
912 | Tuple.Create(38, 57),
|
---|
913 | Tuple.Create(38, 70),
|
---|
914 | Tuple.Create(38, 94),
|
---|
915 | Tuple.Create(39, 47),
|
---|
916 | Tuple.Create(39, 50),
|
---|
917 | Tuple.Create(39, 51),
|
---|
918 | Tuple.Create(39, 55),
|
---|
919 | Tuple.Create(39, 56),
|
---|
920 | Tuple.Create(39, 70),
|
---|
921 | Tuple.Create(39, 94),
|
---|
922 | Tuple.Create(40, 47),
|
---|
923 | Tuple.Create(40, 49),
|
---|
924 | Tuple.Create(40, 51),
|
---|
925 | Tuple.Create(40, 58),
|
---|
926 | Tuple.Create(40, 70),
|
---|
927 | Tuple.Create(40, 94),
|
---|
928 | Tuple.Create(41, 47),
|
---|
929 | Tuple.Create(41, 48),
|
---|
930 | Tuple.Create(41, 50),
|
---|
931 | Tuple.Create(41, 58),
|
---|
932 | Tuple.Create(41, 70),
|
---|
933 | Tuple.Create(41, 94),
|
---|
934 | Tuple.Create(42, 47),
|
---|
935 | Tuple.Create(42, 49),
|
---|
936 | Tuple.Create(42, 52),
|
---|
937 | Tuple.Create(42, 58),
|
---|
938 | Tuple.Create(42, 70),
|
---|
939 | Tuple.Create(42, 94),
|
---|
940 | Tuple.Create(43, 47),
|
---|
941 | Tuple.Create(43, 48),
|
---|
942 | Tuple.Create(43, 52),
|
---|
943 | Tuple.Create(43, 58),
|
---|
944 | Tuple.Create(43, 70),
|
---|
945 | Tuple.Create(43, 94),
|
---|
946 | Tuple.Create(44, 47),
|
---|
947 | Tuple.Create(44, 50),
|
---|
948 | Tuple.Create(44, 51),
|
---|
949 | Tuple.Create(44, 58),
|
---|
950 | Tuple.Create(44, 70),
|
---|
951 | Tuple.Create(44, 94),
|
---|
952 | Tuple.Create(45, 47),
|
---|
953 | Tuple.Create(45, 53),
|
---|
954 | Tuple.Create(45, 54),
|
---|
955 | Tuple.Create(45, 55),
|
---|
956 | Tuple.Create(45, 56),
|
---|
957 | Tuple.Create(45, 57),
|
---|
958 | Tuple.Create(45, 70),
|
---|
959 | Tuple.Create(45, 94),
|
---|
960 | Tuple.Create(46, 47),
|
---|
961 | Tuple.Create(46, 59),
|
---|
962 | Tuple.Create(46, 60),
|
---|
963 | Tuple.Create(46, 61),
|
---|
964 | Tuple.Create(46, 62),
|
---|
965 | Tuple.Create(46, 63),
|
---|
966 | Tuple.Create(46, 64),
|
---|
967 | Tuple.Create(46, 65),
|
---|
968 | Tuple.Create(46, 66),
|
---|
969 | Tuple.Create(46, 67),
|
---|
970 | Tuple.Create(46, 68),
|
---|
971 | Tuple.Create(46, 69),
|
---|
972 | Tuple.Create(46, 94),
|
---|
973 | Tuple.Create(47, 71),
|
---|
974 | Tuple.Create(47, 72),
|
---|
975 | Tuple.Create(47, 73),
|
---|
976 | Tuple.Create(47, 74),
|
---|
977 | Tuple.Create(47, 75),
|
---|
978 | Tuple.Create(47, 76),
|
---|
979 | Tuple.Create(47, 77),
|
---|
980 | Tuple.Create(47, 78),
|
---|
981 | Tuple.Create(47, 79),
|
---|
982 | Tuple.Create(47, 80),
|
---|
983 | Tuple.Create(47, 81),
|
---|
984 | Tuple.Create(47, 82),
|
---|
985 | Tuple.Create(47, 83),
|
---|
986 | Tuple.Create(47, 84),
|
---|
987 | Tuple.Create(47, 85),
|
---|
988 | Tuple.Create(47, 86),
|
---|
989 | Tuple.Create(47, 87),
|
---|
990 | Tuple.Create(47, 88),
|
---|
991 | Tuple.Create(47, 89),
|
---|
992 | Tuple.Create(47, 90),
|
---|
993 | Tuple.Create(47, 91),
|
---|
994 | Tuple.Create(47, 92),
|
---|
995 | Tuple.Create(47, 93),
|
---|
996 | Tuple.Create(48, 95),
|
---|
997 | Tuple.Create(49, 95),
|
---|
998 | Tuple.Create(50, 95),
|
---|
999 | Tuple.Create(51, 95),
|
---|
1000 | Tuple.Create(52, 95),
|
---|
1001 | Tuple.Create(53, 95),
|
---|
1002 | Tuple.Create(54, 95),
|
---|
1003 | Tuple.Create(55, 95),
|
---|
1004 | Tuple.Create(56, 95),
|
---|
1005 | Tuple.Create(57, 95),
|
---|
1006 | Tuple.Create(58, 95),
|
---|
1007 | Tuple.Create(59, 95),
|
---|
1008 | Tuple.Create(60, 95),
|
---|
1009 | Tuple.Create(61, 95),
|
---|
1010 | Tuple.Create(62, 95),
|
---|
1011 | Tuple.Create(63, 95),
|
---|
1012 | Tuple.Create(64, 95),
|
---|
1013 | Tuple.Create(65, 95),
|
---|
1014 | Tuple.Create(66, 95),
|
---|
1015 | Tuple.Create(67, 95),
|
---|
1016 | Tuple.Create(68, 95),
|
---|
1017 | Tuple.Create(69, 95),
|
---|
1018 | Tuple.Create(70, 95),
|
---|
1019 | Tuple.Create(71, 95),
|
---|
1020 | Tuple.Create(72, 95),
|
---|
1021 | Tuple.Create(73, 95),
|
---|
1022 | Tuple.Create(74, 95),
|
---|
1023 | Tuple.Create(75, 95),
|
---|
1024 | Tuple.Create(76, 95),
|
---|
1025 | Tuple.Create(77, 95),
|
---|
1026 | Tuple.Create(78, 95),
|
---|
1027 | Tuple.Create(79, 95),
|
---|
1028 | Tuple.Create(80, 95),
|
---|
1029 | Tuple.Create(81, 95),
|
---|
1030 | Tuple.Create(82, 95),
|
---|
1031 | Tuple.Create(83, 95),
|
---|
1032 | Tuple.Create(84, 95),
|
---|
1033 | Tuple.Create(85, 95),
|
---|
1034 | Tuple.Create(86, 95),
|
---|
1035 | Tuple.Create(87, 95),
|
---|
1036 | Tuple.Create(88, 95),
|
---|
1037 | Tuple.Create(89, 95),
|
---|
1038 | Tuple.Create(90, 95),
|
---|
1039 | Tuple.Create(91, 95),
|
---|
1040 | Tuple.Create(92, 95),
|
---|
1041 | Tuple.Create(93, 95),
|
---|
1042 | Tuple.Create(94, 95)
|
---|
1043 | };
|
---|
1044 | #endregion
|
---|
1045 | }
|
---|
1046 | }
|
---|