Merge lp:~simon-funke/libadjoint/online_revolve_dolfin_adjoint into lp:libadjoint

Proposed by Simon Funke
Status: Superseded
Proposed branch: lp:~simon-funke/libadjoint/online_revolve_dolfin_adjoint
Merge into: lp:libadjoint
Diff against target: 16486 lines (+16380/-0)
19 files modified
__init__.py (+3/-0)
assembly.py (+23/-0)
solving.py (+859/-0)
tests/burgers_newton/burgers_newton.py (+63/-0)
tests/burgers_picard/burgers_picard.py (+80/-0)
tests/checkpoint_burgers/checkpoint_burgers.py (+79/-0)
tests/checkpoint_stokes/checkpoint_stokes.py (+137/-0)
tests/heat/heat.py (+115/-0)
tests/navier_stokes/navier_stokes.py (+151/-0)
tests/stokes/stokes.py (+146/-0)
tests/sw/basin.geo (+9/-0)
tests/sw/basin.msh (+7135/-0)
tests/sw/basin.xml (+6979/-0)
tests/sw/kelvin_new.py (+51/-0)
tests/sw/sw.py (+46/-0)
tests/sw/sw_lib.py (+237/-0)
tests/test.py (+22/-0)
tests/tlm_simple/tlm_simple.py (+67/-0)
utils.py (+178/-0)
To merge this branch: bzr merge lp:~simon-funke/libadjoint/online_revolve_dolfin_adjoint
Reviewer Review Type Date Requested Status
Patrick Farrell Pending
Review via email: mp+88950@code.launchpad.net

Description of the change

- Implementation of the read, write and delete callbacks
- checkpoint burgers example uses memory and disk checkpoints

To post a comment you must log in.
86. By Simon Funke

Use str() instead of __str__()

Unmerged revisions

86. By Simon Funke

Use str() instead of __str__()

85. By Simon Funke

Merge from "trunk"

84. By Simon Funke

Some final tidy up

83. By Simon Funke

Fix the timestep prediction in the checkpoint burgers test. The test now tests a multistage revolve with memory and disk checkpoints.

82. By Simon Funke

After implementing the Vector.delete() the offline checkpointing works.

81. By Simon Funke

An implementation of the Vector's read and write functions. With these we can now use offline checkpointing that stores the checkpoints on disk. However, the delete function is not implemented yet, causing the simulation to crash at the very end.

80. By Patrick Farrell

Get checkpointing working for simulations which solve multiple equations per timestep.
That was surprisingly easy, once I realised how.

Add a checkpoint_stokes test. We do 11 timesteps, but only give 5 checkpoint slots, so it has
to replay several times during the adjoint run in order to acquire the solutions about
which it wants to linearise.

79. By Simon Funke

Remove the print statement.

78. By Simon Funke

Commit a checkpointing test.

77. By Patrick Farrell

Impose the homogenised boundary conditions on the R* term, too.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file '__init__.py'
2--- __init__.py 1970-01-01 00:00:00 +0000
3+++ __init__.py 2012-01-17 22:06:24 +0000
4@@ -0,0 +1,3 @@
5+from solving import *
6+from assembly import *
7+from utils import *
8
9=== added file 'assembly.py'
10--- assembly.py 1970-01-01 00:00:00 +0000
11+++ assembly.py 2012-01-17 22:06:24 +0000
12@@ -0,0 +1,23 @@
13+import dolfin
14+import copy
15+import collections
16+
17+assembly_cache = {}
18+bc_cache = collections.defaultdict(list)
19+
20+dolfin_assemble = dolfin.assemble
21+def assemble(*args, **kwargs):
22+ form = args[0]
23+ output = dolfin_assemble(*args, **kwargs)
24+ assembly_cache[output] = form
25+ return output
26+
27+bc_apply = dolfin.DirichletBC.apply
28+def adjoint_bc_apply(self, *args, **kwargs):
29+ for arg in args:
30+ bc_data = copy.copy(bc_cache[arg])
31+ bc_data.append(self)
32+ bc_cache[arg] = bc_data
33+ return bc_apply(self, *args, **kwargs)
34+dolfin.DirichletBC.apply = adjoint_bc_apply
35+
36
37=== added file 'solving.py'
38--- solving.py 1970-01-01 00:00:00 +0000
39+++ solving.py 2012-01-17 22:06:24 +0000
40@@ -0,0 +1,859 @@
41+import ufl
42+import ufl.classes
43+import ufl.algorithms
44+import ufl.operators
45+
46+import dolfin.fem.solving
47+import dolfin
48+
49+import libadjoint
50+import libadjoint.exceptions
51+
52+import hashlib
53+import time
54+
55+import assembly
56+
57+debugging={}
58+
59+class CoeffStore(object):
60+ '''This object manages the mapping from Dolfin coefficients to libadjoint Variables.
61+ In the process, it also manages the incrementing of the timestep associated with each
62+ variable, so that the user does not have to manually manage the time information.'''
63+ def __init__(self):
64+ self.coeffs={}
65+
66+ def next(self, coeff):
67+ '''Increment the timestep corresponding to the provided Dolfin
68+ coefficient and then return the corresponding libadjoint variable.'''
69+
70+ try:
71+ self.coeffs[coeff]+=1
72+ except KeyError:
73+ self.coeffs[coeff]=0
74+
75+ return libadjoint.Variable(str(coeff), self.coeffs[coeff], 0)
76+
77+ def __getitem__(self, coeff):
78+ '''Return the libadjoint variable corresponding to coeff.'''
79+
80+ if not self.coeffs.has_key(coeff):
81+ self.coeffs[coeff]=0
82+
83+ return libadjoint.Variable(str(coeff), self.coeffs[coeff], 0)
84+
85+adj_variables=CoeffStore()
86+
87+# Set record_all to true to enable recording all variables in the forward
88+# run. This is primarily useful for debugging.
89+debugging["record_all"] = False
90+debugging["test_hermitian"] = None
91+debugging["test_derivative"] = None
92+debugging["fussy_replay"] = True
93+
94+# Create the adjointer, the central object that records the forward solve
95+# as it happens.
96+adjointer = libadjoint.Adjointer()
97+
98+# A dictionary that saves the functionspaces of all checkpoint variables that have been saved to disk
99+checkpoint_fs = {}
100+
101+def annotate(*args, **kwargs):
102+ '''This routine handles all of the annotation, recording the solves as they
103+ happen so that libadjoint can rewind them later.'''
104+
105+ if isinstance(args[0], ufl.classes.Equation):
106+ # annotate !
107+
108+ # Unpack the arguments, using the same routine as the real Dolfin solve call
109+ unpacked_args = dolfin.fem.solving._extract_args(*args, **kwargs)
110+ eq = unpacked_args[0]
111+ u = unpacked_args[1]
112+ bcs = unpacked_args[2]
113+ J = unpacked_args[3]
114+
115+ if isinstance(eq.lhs, ufl.Form) and isinstance(eq.rhs, ufl.Form):
116+ eq_lhs = eq.lhs
117+ eq_rhs = eq.rhs
118+ eq_bcs = bcs
119+ linear = True
120+ else:
121+ eq_lhs, eq_rhs = define_nonlinear_equation(eq.lhs, u)
122+ F = eq.lhs
123+ eq_bcs = []
124+ linear = False
125+
126+ newargs = list(args)
127+
128+ try:
129+ solver_params = kwargs["solver_parameters"]
130+ ksp = solver_params["linear_solver"]
131+ except KeyError:
132+ ksp = None
133+
134+ try:
135+ solver_params = kwargs["solver_parameters"]
136+ pc = solver_params["preconditioner"]
137+ except KeyError:
138+ pc = None
139+
140+ elif isinstance(args[0], dolfin.cpp.Matrix):
141+ linear = True
142+ try:
143+ eq_lhs = assembly.assembly_cache[args[0]]
144+ except KeyError:
145+ raise libadjoint.exceptions.LibadjointErrorInvalidInputs("dolfin_adjoint did not assemble your form, and so does not recognise your matrix. Did you from dolfin_adjoint import *?")
146+
147+ try:
148+ eq_rhs = assembly.assembly_cache[args[2]]
149+ except KeyError:
150+ raise libadjoint.exceptions.LibadjointErrorInvalidInputs("dolfin_adjoint did not assemble your form, and so does not recognise your right-hand side. Did you from dolfin_adjoint import *?")
151+
152+ u = args[1]
153+ if not isinstance(u, dolfin.Function):
154+ raise libadjoint.exceptions.LibadjointErrorInvalidInputs("dolfin_adjoint needs the Function you are solving for, rather than its .vector().")
155+ newargs = list(args)
156+ newargs[1] = u.vector() # for the real solve later
157+
158+ try:
159+ ksp = args[3]
160+ except IndexError:
161+ ksp = None
162+
163+ try:
164+ pc = args[4]
165+ except IndexError:
166+ pc = None
167+
168+ eq_bcs = list(set(assembly.bc_cache[args[0]] + assembly.bc_cache[args[2]]))
169+ else:
170+ raise libadjoint.exceptions.LibadjointErrorNotImplemented("Don't know how to annotate your equation, sorry!")
171+
172+ # Suppose we are solving for a variable w, and that variable shows up in the
173+ # coefficients of eq_lhs/eq_rhs.
174+ # Does that mean:
175+ # a) the /previous value/ of that variable, and you want to timestep?
176+ # b) the /value to be solved for/ in this solve?
177+ # i.e. is it timelevel n-1, or n?
178+ # if Dolfin is doing a linear solve, we want case a);
179+ # if Dolfin is doing a nonlinear solve, we want case b).
180+ # so if we are doing a nonlinear solve, we bump the timestep number here
181+ # /before/ we map the coefficients -> dependencies,
182+ # so that libadjoint records the dependencies with the right timestep number.
183+ if not linear:
184+ var = adj_variables.next(u)
185+
186+ # Set up the data associated with the matrix on the left-hand side. This goes on the diagonal
187+ # of the 'large' system that incorporates all of the timelevels, which is why it is prefixed
188+ # with diag.
189+ diag_name = hashlib.md5(str(eq_lhs) + str(eq_rhs) + str(u) + str(time.time())).hexdigest() # we don't have a useful human-readable name, so take the md5sum of the string representation of the forms
190+ diag_deps = [adj_variables[coeff] for coeff in ufl.algorithms.extract_coefficients(eq_lhs) if hasattr(coeff, "function_space")]
191+ diag_coeffs = [coeff for coeff in ufl.algorithms.extract_coefficients(eq_lhs) if hasattr(coeff, "function_space")]
192+ diag_block = libadjoint.Block(diag_name, dependencies=diag_deps, test_hermitian=debugging["test_hermitian"], test_derivative=debugging["test_derivative"])
193+
194+ # Similarly, create the object associated with the right-hand side data.
195+ if linear:
196+ rhs = RHS(eq_rhs)
197+ else:
198+ rhs = NonlinearRHS(eq_rhs, F, u, bcs, mass=eq_lhs)
199+
200+ # We need to check if this is the first equation,
201+ # so that we can register the appropriate initial conditions.
202+ # These equations are necessary so that libadjoint can assemble the
203+ # relevant adjoint equations for the adjoint variables associated with
204+ # the initial conditions.
205+ for coeff, dep in zip(rhs.coefficients(),rhs.dependencies()) + zip(diag_coeffs, diag_deps):
206+ # If coeff is not known, it must be an initial condition.
207+ if not adjointer.variable_known(dep):
208+
209+ if not linear: # don't register initial conditions for the first nonlinear solve.
210+ if dep == var:
211+ continue
212+
213+ fn_space = coeff.function_space()
214+ block_name = "Identity: %s" % str(fn_space)
215+ identity_block = libadjoint.Block(block_name)
216+
217+ init_rhs=Vector(coeff).duplicate()
218+ init_rhs.axpy(1.0,Vector(coeff))
219+
220+ def identity_assembly_cb(variables, dependencies, hermitian, coefficient, context):
221+ assert coefficient == 1
222+ return (Matrix(ufl.Identity(fn_space.dim())), Vector(dolfin.Function(fn_space)))
223+
224+ identity_block.assemble=identity_assembly_cb
225+
226+ if debugging["record_all"]:
227+ adjointer.record_variable(dep, libadjoint.MemoryStorage(Vector(coeff)))
228+
229+ initial_eq = libadjoint.Equation(dep, blocks=[identity_block], targets=[dep], rhs=RHS(init_rhs))
230+ adjointer.register_equation(initial_eq)
231+ assert adjointer.variable_known(dep)
232+
233+
234+ # c.f. the discussion above. In the linear case, we want to bump the
235+ # timestep number /after/ all of the dependencies' timesteps have been
236+ # computed for libadjoint.
237+ if linear:
238+ var = adj_variables.next(u)
239+
240+ # With the initial conditions out of the way, let us now define the callbacks that
241+ # define the actions of the operator the user has passed in on the lhs of this equation.
242+
243+ def diag_assembly_cb(dependencies, values, hermitian, coefficient, context):
244+ '''This callback must conform to the libadjoint Python block assembly
245+ interface. It returns either the form or its transpose, depending on
246+ the value of the logical hermitian.'''
247+
248+ assert coefficient == 1
249+
250+ value_coeffs=[v.data for v in values]
251+ eq_l=dolfin.replace(eq_lhs, dict(zip(diag_coeffs, value_coeffs)))
252+
253+ if hermitian:
254+ # Homogenise the adjoint boundary conditions. This creates the adjoint
255+ # solution associated with the lifted discrete system that is actually solved.
256+ adjoint_bcs = [dolfin.homogenize(bc) for bc in eq_bcs if isinstance(bc, dolfin.DirichletBC)]
257+ if len(adjoint_bcs) == 0: adjoint_bcs = None
258+ return (Matrix(dolfin.adjoint(eq_l), bcs=adjoint_bcs, pc=pc, ksp=ksp), Vector(None, fn_space=u.function_space()))
259+ else:
260+ return (Matrix(eq_l, bcs=eq_bcs, pc=pc, ksp=ksp), Vector(None, fn_space=u.function_space()))
261+ diag_block.assemble = diag_assembly_cb
262+
263+ def diag_action_cb(dependencies, values, hermitian, coefficient, input, context):
264+ value_coeffs = [v.data for v in values]
265+ eq_l = dolfin.replace(eq_lhs, dict(zip(diag_coeffs, value_coeffs)))
266+
267+ if hermitian:
268+ eq_l = dolfin.adjoint(eq_l)
269+
270+ output_vec = dolfin.assemble(coefficient * dolfin.action(eq_l, input.data))
271+ output_fn = dolfin.Function(input.data.function_space())
272+ vec = output_fn.vector()
273+ for i in range(len(vec)):
274+ vec[i] = output_vec[i]
275+
276+ return Vector(output_fn)
277+ diag_block.action = diag_action_cb
278+
279+ if len(diag_deps) > 0:
280+ # If this block is nonlinear (the entries of the matrix on the LHS
281+ # depend on any variable previously computed), then that will induce
282+ # derivative terms in the adjoint equations. Here, we define the
283+ # callback libadjoint will need to compute such terms.
284+ def derivative_action(dependencies, values, variable, contraction_vector, hermitian, input, coefficient, context):
285+ dolfin_variable = values[dependencies.index(variable)].data
286+ dolfin_values = [val.data for val in values]
287+
288+ current_form = dolfin.replace(eq_lhs, dict(zip(diag_coeffs, dolfin_values)))
289+
290+ deriv = dolfin.derivative(current_form, dolfin_variable)
291+ args = ufl.algorithms.extract_arguments(deriv)
292+ deriv = dolfin.replace(deriv, {args[1]: contraction_vector.data}) # contract over the middle index
293+
294+ if hermitian:
295+ deriv = dolfin.adjoint(deriv)
296+
297+ action = coefficient * dolfin.action(deriv, input.data)
298+
299+ return Vector(action)
300+ diag_block.derivative_action = derivative_action
301+
302+ eqn = libadjoint.Equation(var, blocks=[diag_block], targets=[var], rhs=rhs)
303+
304+ cs = adjointer.register_equation(eqn)
305+ if cs == int(libadjoint.constants.adj_constants["ADJ_CHECKPOINT_STORAGE_MEMORY"]):
306+ for coeff in adj_variables.coeffs.keys():
307+ if adj_variables[coeff] == var: continue
308+ adjointer.record_variable(adj_variables[coeff], libadjoint.MemoryStorage(Vector(coeff), cs=True))
309+
310+ elif cs == int(libadjoint.constants.adj_constants["ADJ_CHECKPOINT_STORAGE_DISK"]):
311+ for coeff in adj_variables.coeffs.keys():
312+ if adj_variables[coeff] == var: continue
313+ adjointer.record_variable(adj_variables[coeff], libadjoint.DiskStorage(Vector(coeff), cs=True))
314+ return linear, newargs
315+
316+def solve(*args, **kwargs):
317+ '''This solve routine comes from the dolfin_adjoint package, and wraps the real Dolfin
318+ solve call. Its purpose is to annotate the model, recording what solves occur and what
319+ forms are involved, so that the adjoint model may be constructed automatically by libadjoint.
320+
321+ To disable the annotation, just pass annotate=False to this routine, and it acts exactly
322+ like the Dolfin solve call. This is useful in cases where the solve is known to be irrelevant
323+ or diagnostic for the purposes of the adjoint computation (such as projecting fields to
324+ other function spaces for the purposes of visualisation).'''
325+
326+ # First, decide if we should annotate or not.
327+ to_annotate = True
328+ if "annotate" in kwargs:
329+ to_annotate = kwargs["annotate"]
330+ del kwargs["annotate"] # so we don't pass it on to the real solver
331+
332+ if to_annotate:
333+ linear, newargs = annotate(*args, **kwargs)
334+ else:
335+ newargs = args
336+
337+ ret = dolfin.fem.solving.solve(*newargs, **kwargs)
338+
339+ if to_annotate:
340+ if not linear and debugging["fussy_replay"]:
341+ # we have annotated M.u = M.u - F(u),
342+ # but actually solved F(u) = 0.
343+ # so we need to do the mass solve too, so that the
344+ # replay is exact.
345+ nonlinear_post_solve_projection(*args, **kwargs)
346+
347+ # Finally, if we want to record all of the solutions of the real forward model
348+ # (for comparison with a libadjoint replay later),
349+ # then we should record the value of the variable we just solved for.
350+ if debugging["record_all"]:
351+ if isinstance(args[0], ufl.classes.Equation):
352+ unpacked_args = dolfin.fem.solving._extract_args(*args, **kwargs)
353+ u = unpacked_args[1]
354+ adjointer.record_variable(adj_variables[u], libadjoint.MemoryStorage(Vector(u)))
355+ elif isinstance(args[0], dolfin.cpp.Matrix):
356+ u = args[1]
357+ adjointer.record_variable(adj_variables[u], libadjoint.MemoryStorage(Vector(u)))
358+ else:
359+ raise libadjoint.exceptions.LibadjointErrorInvalidInputs("Don't know how to record, sorry")
360+
361+ return ret
362+
363+def adj_html(*args, **kwargs):
364+ '''This routine dumps the current state of the adjointer to a HTML visualisation.
365+ Use it like:
366+ adj_html("forward.html", "forward") # for the equations recorded on the forward run
367+ adj_html("adjoint.html", "adjoint") # for the equations to be assembled on the adjoint run
368+ '''
369+ return adjointer.to_html(*args, **kwargs)
370+
371+
372+class Vector(libadjoint.Vector):
373+ '''This class implements the libadjoint.Vector abstract base class for the Dolfin adjoint.
374+ In particular, it must implement the data callbacks for tasks such as adding two vectors
375+ together, duplicating vectors, taking norms, etc., that occur in the process of constructing
376+ the adjoint equations.'''
377+
378+ def __init__(self, data, zero=False, fn_space=None):
379+
380+ self.data=data
381+ # self.zero is true if we can prove that the vector is zero.
382+ if data is None:
383+ self.zero=True
384+ else:
385+ self.zero=zero
386+
387+ if fn_space is not None:
388+ self.fn_space = fn_space
389+
390+ def duplicate(self):
391+
392+ if isinstance(self.data, ufl.form.Form):
393+ # The data type will be determined by the first addto.
394+ data = None
395+ elif isinstance(self.data, dolfin.Function):
396+ data = dolfin.Function(self.data.function_space())
397+ else:
398+ data = None
399+
400+ fn_space = None
401+ if hasattr(self, "fn_space"):
402+ fn_space = self.fn_space
403+
404+ return Vector(data, zero=True, fn_space=fn_space)
405+
406+ def axpy(self, alpha, x):
407+
408+ if x.zero:
409+ return
410+
411+ if (self.data is None):
412+ # self is an empty form.
413+ assert(isinstance(x.data, ufl.form.Form))
414+ self.data=alpha*x.data
415+ elif isinstance(self.data, dolfin.Coefficient):
416+ if isinstance(x.data, dolfin.Coefficient):
417+ self.data.vector().axpy(alpha, x.data.vector())
418+ else:
419+ # This occurs when adding a RHS derivative to an adjoint equation
420+ # corresponding to the initial conditions.
421+ self.data.vector().axpy(alpha, dolfin.assemble(x.data))
422+ else:
423+ # self is a non-empty form.
424+ assert(isinstance(x.data, ufl.form.Form))
425+ assert(isinstance(self.data, ufl.form.Form))
426+
427+ # Let's do a bit of argument shuffling, shall we?
428+ xargs = ufl.algorithms.extract_arguments(x.data)
429+ sargs = ufl.algorithms.extract_arguments(self.data)
430+
431+ if xargs != sargs:
432+ # OK, let's check that all of the function spaces are happy and so on.
433+ for i in range(len(xargs)):
434+ assert xargs[i].element() == sargs[i].element()
435+ assert xargs[i].function_space() == sargs[i].function_space()
436+
437+ # Now that we are happy, let's replace the xargs with the sargs ones.
438+ x_form = dolfin.replace(x.data, dict(zip(xargs, sargs)))
439+ else:
440+ x_form = x.data
441+
442+ self.data+=alpha*x_form
443+
444+ self.zero = False
445+
446+ def norm(self):
447+
448+ if isinstance(self.data, dolfin.Function):
449+ return (abs(dolfin.assemble(dolfin.inner(self.data, self.data)*dolfin.dx)))**0.5
450+ elif isinstance(self.data, ufl.form.Form):
451+ import scipy.linalg
452+ vec = dolfin.assemble(self.data)
453+ n = scipy.linalg.norm(vec)
454+ return n
455+
456+ def dot_product(self,y):
457+
458+ if isinstance(self.data, ufl.form.Form):
459+ return dolfin.assemble(dolfin.inner(self.data, y.data)*dolfin.dx)
460+ elif isinstance(self.data, dolfin.Function):
461+ import numpy
462+ if isinstance(y.data, ufl.form.Form):
463+ other = dolfin.assemble(y.data)
464+ else:
465+ other = y.data.vector()
466+ return numpy.dot(numpy.array(self.data.vector()), numpy.array(other))
467+ else:
468+ raise libadjoint.exceptions.LibadjointErrorNotImplemented("Don't know how to dot anything else.")
469+
470+ def set_random(self):
471+ assert isinstance(self.data, dolfin.Function) or hasattr(self, "fn_space")
472+ import random
473+
474+ if self.data is None:
475+ self.data = dolfin.Function(self.fn_space)
476+
477+ vec = self.data.vector()
478+ for i in range(len(vec)):
479+ vec[i] = random.random()
480+
481+ self.zero = False
482+
483+ def size(self):
484+ if hasattr(self, "fn_space"):
485+ return self.fn_space.dim()
486+
487+ if isinstance(self.data, dolfin.Function):
488+ return len(self.data.vector())
489+
490+ if isinstance(self.data, ufl.form.Form):
491+ return len(dolfin.assemble(self.data))
492+
493+ raise libadjoint.exceptions.LibadjointErrorNotImplemented("Don't know how to get the size.")
494+
495+ def set_values(self, array):
496+ if isinstance(self.data, dolfin.Function):
497+ vec = self.data.vector()
498+ for i in range(len(array)):
499+ vec[i] = array[i]
500+ self.zero = False
501+ else:
502+ raise libadjoint.exceptions.LibadjointErrorNotImplemented("Don't know how to set values.")
503+
504+ def write(self, var):
505+ import os.path
506+
507+ filename = var.__str__()
508+ suffix = "xml"
509+ if not os.path.isfile(filename+".%s" % suffix):
510+ print "Warning: Overwritting checkpoint file "+filename+"."+suffix
511+ file = dolfin.File(filename+".%s" % suffix)
512+ file << self.data
513+
514+ # Save the function space into checkpoint_fs. It will be needed when reading the variable back in.
515+ checkpoint_fs[filename] = self.data.function_space()
516+
517+ @staticmethod
518+ def read(var):
519+
520+ filename = var.__str__()
521+ suffix = "xml"
522+
523+ V = checkpoint_fs[filename]
524+ v = dolfin.Function(V, filename+".%s" % suffix)
525+ return Vector(v)
526+
527+ @staticmethod
528+ def delete(var):
529+ import os
530+ import os.path
531+
532+ filename = var.__str__()
533+ suffix = "xml"
534+
535+ assert(os.path.isfile(filename+".%s" % suffix))
536+ os.remove(filename+".%s" % suffix)
537+
538+class Matrix(libadjoint.Matrix):
539+ '''This class implements the libadjoint.Matrix abstract base class for the Dolfin adjoint.
540+ In particular, it must implement the data callbacks for tasks such as adding two matrices
541+ together, duplicating matrices, etc., that occur in the process of constructing
542+ the adjoint equations.'''
543+
544+ def __init__(self, data, bcs=None, ksp=None, pc=None):
545+
546+ if bcs is None:
547+ self.bcs = []
548+ else:
549+ self.bcs=bcs
550+
551+ self.data=data
552+
553+ self.ksp = ksp
554+ self.pc = pc
555+
556+ def solve(self, var, b):
557+
558+ if isinstance(self.data, ufl.Identity):
559+ x=b.duplicate()
560+ x.axpy(1.0, b)
561+ else:
562+ if var.type in ['ADJ_TLM', 'ADJ_ADJOINT']:
563+ bcs = [dolfin.homogenize(bc) for bc in self.bcs if isinstance(bc, dolfin.DirichletBC)] + [bc for bc in self.bcs if not isinstance(bc, dolfin.DirichletBC)]
564+ else:
565+ bcs = self.bcs
566+
567+ solver_parameters = {}
568+ if self.pc is not None:
569+ solver_parameters["preconditioner"] = self.pc
570+ if self.ksp is not None:
571+ solver_parameters["linear_solver"] = self.ksp
572+
573+ x=Vector(dolfin.Function(self.test_function().function_space()))
574+ dolfin.fem.solving.solve(self.data==b.data, x.data, bcs, solver_parameters=solver_parameters)
575+
576+ return x
577+
578+ def axpy(self, alpha, x):
579+ assert isinstance(x.data, ufl.Form)
580+ assert isinstance(self.data, ufl.Form)
581+
582+ # Let's do a bit of argument shuffling, shall we?
583+ xargs = ufl.algorithms.extract_arguments(x.data)
584+ sargs = ufl.algorithms.extract_arguments(self.data)
585+
586+ if xargs != sargs:
587+ # OK, let's check that all of the function spaces are happy and so on.
588+ for i in range(len(xargs)):
589+ assert xargs[i].element() == sargs[i].element()
590+ assert xargs[i].function_space() == sargs[i].function_space()
591+
592+ # Now that we are happy, let's replace the xargs with the sargs ones.
593+ x_form = dolfin.replace(x.data, dict(zip(xargs, sargs)))
594+ else:
595+ x_form = x.data
596+
597+ self.data+=alpha*x_form
598+ self.bcs += x.bcs # Err, I hope they are compatible ...
599+
600+ def test_function(self):
601+ '''test_function(self)
602+
603+ Return the ufl.Argument corresponding to the trial space for the form'''
604+
605+ return ufl.algorithms.extract_arguments(self.data)[-1]
606+
607+class Functional(libadjoint.Functional):
608+ '''This class implements the libadjoint.Functional abstract base class for the Dolfin adjoint.
609+ It takes in a form, and implements the necessary routines such as calling the functional
610+ and taking its derivative.'''
611+
612+ def __init__(self, form):
613+
614+ self.form = form
615+ self.activated = False
616+
617+ def __call__(self, dependencies, values):
618+
619+ dolfin_dependencies=[dep for dep in ufl.algorithms.extract_coefficients(self.form) if hasattr(dep, "function_space")]
620+
621+ dolfin_values=[val.data for val in values]
622+
623+ return dolfin.assemble(dolfin.replace(self.form, dict(zip(dolfin_dependencies, dolfin_values))))
624+
625+ def derivative(self, variable, dependencies, values):
626+
627+ # Find the dolfin Function corresponding to variable.
628+ dolfin_variable = values[dependencies.index(variable)].data
629+
630+ dolfin_dependencies = [dep for dep in ufl.algorithms.extract_coefficients(self.form) if hasattr(dep, "function_space")]
631+
632+ dolfin_values = [val.data for val in values]
633+
634+ current_form = dolfin.replace(self.form, dict(zip(dolfin_dependencies, dolfin_values)))
635+ test = dolfin.TestFunction(dolfin_variable.function_space())
636+
637+ return Vector(dolfin.derivative(current_form, dolfin_variable, test))
638+
639+ def dependencies(self, adjointer, timestep):
640+
641+ if self.activated is False:
642+ deps = [adj_variables[coeff] for coeff in ufl.algorithms.extract_coefficients(self.form) if hasattr(coeff, "function_space")]
643+ self.activated = True
644+ else:
645+ deps = []
646+
647+ return deps
648+
649+ def __str__(self):
650+
651+ return hashlib.md5(str(self.form)).hexdigest()
652+
653+class RHS(libadjoint.RHS):
654+ '''This class implements the libadjoint.RHS abstract base class for the Dolfin adjoint.
655+ It takes in a form, and implements the necessary routines such as calling the right-hand side
656+ and taking its derivative.'''
657+ def __init__(self, form):
658+
659+ self.form=form
660+
661+ if isinstance(self.form, ufl.form.Form):
662+ self.deps = [adj_variables[coeff] for coeff in ufl.algorithms.extract_coefficients(self.form) if hasattr(coeff, "function_space")]
663+ else:
664+ self.deps = []
665+
666+ if isinstance(self.form, ufl.form.Form):
667+ self.coeffs = [coeff for coeff in ufl.algorithms.extract_coefficients(self.form) if hasattr(coeff, "function_space")]
668+ else:
669+ self.coeffs = []
670+
671+ def __call__(self, dependencies, values):
672+
673+ if isinstance(self.form, ufl.form.Form):
674+
675+ dolfin_dependencies=[dep for dep in ufl.algorithms.extract_coefficients(self.form) if hasattr(dep, "function_space")]
676+
677+ dolfin_values=[val.data for val in values]
678+
679+ return Vector(dolfin.replace(self.form, dict(zip(dolfin_dependencies, dolfin_values))))
680+
681+ else:
682+ # RHS is a Vector.
683+ assert isinstance(self.form, Vector)
684+ return self.form
685+
686+
687+ def derivative_action(self, dependencies, values, variable, contraction_vector, hermitian):
688+
689+ if isinstance(self.form, ufl.form.Form):
690+ # Find the dolfin Function corresponding to variable.
691+ dolfin_variable = values[dependencies.index(variable)].data
692+
693+ dolfin_dependencies = [dep for dep in ufl.algorithms.extract_coefficients(self.form) if hasattr(dep, "function_space")]
694+
695+ dolfin_values = [val.data for val in values]
696+
697+ current_form = dolfin.replace(self.form, dict(zip(dolfin_dependencies, dolfin_values)))
698+ trial = dolfin.TrialFunction(dolfin_variable.function_space())
699+
700+ d_rhs=dolfin.derivative(current_form, dolfin_variable, trial)
701+
702+ if hermitian:
703+ action = dolfin.action(dolfin.adjoint(d_rhs),contraction_vector.data)
704+ else:
705+ action = dolfin.action(d_rhs,contraction_vector.data)
706+
707+ return Vector(action)
708+ else:
709+ # RHS is a Vector. Its derivative is therefore zero.
710+ raise exceptions.LibadjointErrorNotImplemented("No derivative method for constant RHS.")
711+
712+
713+ def dependencies(self):
714+
715+ return self.deps
716+
717+ def coefficients(self):
718+
719+ return self.coeffs
720+
721+ def __str__(self):
722+
723+ return hashlib.md5(str(self.form)).hexdigest()
724+
725+class NonlinearRHS(RHS):
726+ '''For nonlinear problems, the source term isn't assembled in the usual way.
727+ If the nonlinear problem is given as
728+ F(u) = 0,
729+ we annotate it as
730+ M.u = M.u - F(u) .
731+ So in order to actually assemble the right-hand side term,
732+ we first need to solve F(u) = 0 to find the specific u,
733+ and then multiply that by the mass matrix.'''
734+ def __init__(self, form, F, u, bcs, mass):
735+ '''form is M.u - F(u). F is the nonlinear equation, F(u) := 0.'''
736+ RHS.__init__(self, form)
737+ self.F = F
738+ self.u = u
739+ self.bcs = bcs
740+ self.mass = mass
741+
742+ # We want to mark that the RHS term /also/ depends on
743+ # the previous value of u, as that's what we need to initialise
744+ # the nonlinear solver.
745+ var = adj_variables[self.u]
746+ if var.timestep > 0 and debugging["fussy_replay"]:
747+ var.c_object.timestep = var.c_object.timestep - 1
748+ self.deps.append(var)
749+ self.ic_var = var
750+ else:
751+ self.ic_var = None
752+
753+ def __call__(self, dependencies, values):
754+ assert isinstance(self.form, ufl.form.Form)
755+
756+ ic = self.u.function_space() # by default, initialise with a blank function in the solution FunctionSpace
757+ replace_map = {}
758+
759+ for i in range(len(self.deps)):
760+ if self.deps[i] in dependencies:
761+ j = dependencies.index(self.deps[i])
762+ if self.deps[i] == self.ic_var:
763+ ic = values[j].data # ahah, we have found an initial condition!
764+ else:
765+ replace_map[self.coeffs[i]] = values[j].data
766+
767+ current_F = dolfin.replace(self.F, replace_map)
768+ u = dolfin.Function(ic)
769+ current_F = dolfin.replace(current_F, {self.u: u})
770+
771+ # OK, here goes nothing:
772+ dolfin.solve(current_F == 0, u, self.bcs)
773+
774+ return Vector(dolfin.action(self.mass, u))
775+
776+ def derivative_action(self, dependencies, values, variable, contraction_vector, hermitian):
777+ '''If variable is the variable for the initial condition, we want to ignore it,
778+ and set the derivative to zero. Assuming the solver converges, the sensitivity of
779+ the solution to the initial condition should be extremely small, and computing it
780+ is very difficult (one would have to do a little adjoint solve to compute it).
781+ Even I'm not that fussy.'''
782+
783+ if variable == self.ic_var:
784+ deriv_value = values[dependencies.index(variable)].data
785+ return Vector(None, fn_space=deriv_value.function_space())
786+ else:
787+ return RHS.derivative_action(self, dependencies, values, variable, contraction_vector, hermitian)
788+
789+ def derivative_assembly(self, dependencies, values, variable, hermitian):
790+ replace_map = {}
791+
792+ for i in range(len(self.deps)):
793+ if self.deps[i] == self.ic_var: continue
794+ j = dependencies.index(self.deps[i])
795+ replace_map[self.coeffs[i]] = values[j].data
796+
797+ diff_var = values[dependencies.index(variable)].data
798+
799+ current_form = dolfin.replace(self.form, replace_map)
800+ deriv = dolfin.derivative(current_form, diff_var)
801+
802+ if hermitian:
803+ deriv = dolfin.adjoint(deriv)
804+ bcs = [dolfin.homogenize(bc) for bc in self.bcs if isinstance(bc, dolfin.DirichletBC)]
805+ else:
806+ bcs = self.bcs
807+
808+ return Matrix(deriv, bcs=bcs)
809+
810+dolfin_assign = dolfin.Function.assign
811+def dolfin_adjoint_assign(self, other, annotate=True):
812+ '''We also need to monkeypatch the Function.assign method, as it is often used inside
813+ the main time loop, and not annotating it means you get the adjoint wrong for totally
814+ nonobvious reasons. If anyone objects to me monkeypatching your objects, my apologies
815+ in advance.'''
816+
817+ # ignore anything not a dolfin.Function
818+ if not isinstance(other, dolfin.Function) or annotate is False:
819+ return dolfin_assign(self, other)
820+
821+ # ignore anything that is an interpolation, rather than a straight assignment
822+ if self.function_space() != other.function_space():
823+ return dolfin_assign(self, other)
824+
825+ other_var = adj_variables[other]
826+ # ignore any functions we haven't seen before -- we DON'T want to
827+ # annotate the assignment of initial conditions here. That happens
828+ # in the main solve wrapper.
829+ if not adjointer.variable_known(other_var):
830+ return dolfin_assign(self, other)
831+
832+ # OK, so we have a variable we've seen before. Beautiful.
833+ fn_space = other.function_space()
834+ u, v = dolfin.TestFunction(fn_space), dolfin.TrialFunction(fn_space)
835+ M = dolfin.inner(u, v)*dolfin.dx
836+ if debugging["fussy_replay"]:
837+ return solve(M == dolfin.action(M, other), self) # this takes care of all the annotation etc
838+ else:
839+ annotate(M == dolfin.action(M, other), self)
840+ return dolfin_assign(self, other)
841+
842+dolfin.Function.assign = dolfin_adjoint_assign
843+
844+def define_nonlinear_equation(F, u):
845+ # Given an F := 0,
846+ # we write the equation for libadjoint's annotation purposes as
847+ # M.u = M.u + F(u)
848+ # as we need to have something on the diagonal in our big time system
849+
850+ fn_space = u.function_space()
851+ test = dolfin.TestFunction(fn_space)
852+ trial = dolfin.TrialFunction(fn_space)
853+
854+ mass = dolfin.inner(test, trial)*dolfin.dx
855+
856+ return (mass, dolfin.action(mass, u) - F)
857+
858+def nonlinear_post_solve_projection(*args, **kwargs):
859+ '''we have annotated M.u = M.u - F(u),
860+ but actually solved F(u) = 0.
861+ so we need to do the mass solve too, so that the
862+ replay is exact.'''
863+
864+ # Unpack the arguments, using the same routine as the real Dolfin solve call
865+ unpacked_args = dolfin.fem.solving._extract_args(*args, **kwargs)
866+ u = unpacked_args[1]
867+
868+ fn_space = u.function_space()
869+ test = dolfin.TestFunction(fn_space)
870+ trial = dolfin.TrialFunction(fn_space)
871+
872+ mass = dolfin.inner(test, trial)*dolfin.dx
873+
874+ dolfin.fem.solving.solve(mass == dolfin.action(mass, u), u)
875+
876+def adjoint_checkpointing(strategy, steps, snaps_on_disk, snaps_in_ram, verbose=False):
877+ adjointer.set_checkpoint_strategy(strategy)
878+ adjointer.set_revolve_options(steps, snaps_on_disk, snaps_in_ram, verbose)
879+
880+class InitialConditionParameter(libadjoint.Parameter):
881+ '''This Parameter is used as input to the tangent linear model (TLM)
882+ when one wishes to compute dJ/d(initial condition) in a particular direction (perturbation).'''
883+ def __init__(self, coeff, perturbation):
884+ '''coeff: the variable whose initial condition you wish to perturb.
885+ perturbation: the perturbation direction in which you wish to compute the gradient. Must be a Function.'''
886+ self.var = adj_variables[coeff]
887+ self.var.c_object.timestep = 0 # we want to put in the source term only at the initial condition.
888+ self.perturbation = Vector(perturbation).duplicate()
889+ self.perturbation.axpy(1.0, Vector(perturbation))
890+
891+ def __call__(self, dependencies, values, variable):
892+ # The TLM source term only kicks in at the start, for the initial condition:
893+ if self.var == variable:
894+ return self.perturbation
895+ else:
896+ return None
897+
898+ def __str__(self):
899+ return self.var.name + ':InitialCondition'
900
901=== added directory 'tests'
902=== added directory 'tests/burgers_newton'
903=== added file 'tests/burgers_newton/burgers_newton.py'
904--- tests/burgers_newton/burgers_newton.py 1970-01-01 00:00:00 +0000
905+++ tests/burgers_newton/burgers_newton.py 2012-01-17 22:06:24 +0000
906@@ -0,0 +1,63 @@
907+"""
908+Implementation of Burger's equation with nonlinear solve in each
909+timestep
910+"""
911+
912+import sys
913+
914+from dolfin import *
915+from dolfin_adjoint import *
916+
917+debugging["record_all"] = True
918+
919+n = 30
920+mesh = UnitInterval(n)
921+V = FunctionSpace(mesh, "CG", 2)
922+
923+def Dt(u, u_, timestep):
924+ return (u - u_)/timestep
925+
926+def main(ic, annotate=False):
927+
928+ u_ = Function(ic)
929+ u = Function(V)
930+ v = TestFunction(V)
931+
932+ nu = Constant(0.0001)
933+
934+ timestep = Constant(1.0/n)
935+
936+ F = (Dt(u, u_, timestep)*v
937+ + u*grad(u)*v + nu*grad(u)*grad(v))*dx
938+ bc = DirichletBC(V, 0.0, "on_boundary")
939+
940+ t = 0.0
941+ end = 0.2
942+ while (t <= end):
943+ solve(F == 0, u, bc, annotate=annotate)
944+ u_.assign(u, annotate=annotate)
945+
946+ t += float(timestep)
947+
948+ return u_
949+
950+if __name__ == "__main__":
951+
952+ ic = project(Expression("sin(2*pi*x[0])"), V)
953+ forward = main(ic, annotate=True)
954+
955+ adj_html("burgers_newton_forward.html", "forward")
956+ adj_html("burgers_newton_adjoint.html", "adjoint")
957+
958+ print "Running forward replay .... "
959+ replay_dolfin()
960+ print "Running adjoint ... "
961+
962+ J = Functional(forward*forward*dx)
963+ adjoint = adjoint_dolfin(J)
964+
965+ def Jfunc(ic):
966+ forward = main(ic, annotate=False)
967+ return assemble(forward*forward*dx)
968+
969+ minconv = test_initial_condition_adjoint(Jfunc, ic, adjoint, seed=1.0e-6)
970
971=== added directory 'tests/burgers_picard'
972=== added file 'tests/burgers_picard/burgers_picard.py'
973--- tests/burgers_picard/burgers_picard.py 1970-01-01 00:00:00 +0000
974+++ tests/burgers_picard/burgers_picard.py 2012-01-17 22:06:24 +0000
975@@ -0,0 +1,80 @@
976+"""
977+Naive implementation of Burgers' equation, goes oscillatory later
978+"""
979+
980+import sys
981+
982+from dolfin import *
983+from dolfin_adjoint import *
984+
985+n = 100
986+mesh = UnitInterval(n)
987+V = FunctionSpace(mesh, "CG", 2)
988+
989+parameters["num_threads"] = 2
990+
991+debugging["record_all"] = True
992+#debugging["test_hermitian"] = (100, 1.0e-14)
993+#debugging["test_derivative"] = 6
994+
995+def Dt(u, u_, timestep):
996+ return (u - u_)/timestep
997+
998+def main(ic, annotate=False):
999+
1000+ u_ = ic
1001+ u = TrialFunction(V)
1002+ v = TestFunction(V)
1003+
1004+ nu = Constant(0.0001)
1005+
1006+ timestep = Constant(1.0/n)
1007+
1008+ F = (Dt(u, u_, timestep)*v
1009+ + u_*grad(u)*v + nu*grad(u)*grad(v))*dx
1010+
1011+ (a, L) = system(F)
1012+
1013+ bc = DirichletBC(V, 0.0, "on_boundary")
1014+
1015+ t = 0.0
1016+ end = 0.025
1017+ u = Function(V)
1018+ while (t <= end):
1019+ solve(a == L, u, bc, annotate=annotate)
1020+
1021+ u_.assign(u, annotate=annotate)
1022+
1023+ t += float(timestep)
1024+ #plot(u)
1025+
1026+ #interactive()
1027+ return u_
1028+
1029+if __name__ == "__main__":
1030+
1031+ ic = project(Expression("sin(2*pi*x[0])"), V)
1032+ ic_copy = Function(ic)
1033+ forward = main(ic, annotate=True)
1034+ forward_copy = Function(forward)
1035+ adj_html("burgers_picard_forward.html", "forward")
1036+ adj_html("burgers_picard_adjoint.html", "adjoint")
1037+ print "Running adjoint ... "
1038+
1039+ J = Functional(forward*forward*dx)
1040+ adjoint = adjoint_dolfin(J, forget=False)
1041+
1042+ def Jfunc(ic):
1043+ forward = main(ic, annotate=False)
1044+ return assemble(forward*forward*dx)
1045+
1046+ ic.vector()[:] = ic_copy.vector()
1047+ minconv = test_initial_condition_adjoint(Jfunc, ic, adjoint, seed=1.0e-3)
1048+ if minconv < 1.9:
1049+ sys.exit(1)
1050+
1051+ ic.vector()[:] = ic_copy.vector()
1052+ dJ = assemble(derivative(forward_copy*forward_copy*dx, forward_copy))
1053+ minconv = test_initial_condition_tlm(Jfunc, dJ, ic, seed=1.0e-5)
1054+ if minconv < 1.9:
1055+ sys.exit(1)
1056
1057=== added directory 'tests/checkpoint_burgers'
1058=== added file 'tests/checkpoint_burgers/checkpoint_burgers.py'
1059--- tests/checkpoint_burgers/checkpoint_burgers.py 1970-01-01 00:00:00 +0000
1060+++ tests/checkpoint_burgers/checkpoint_burgers.py 2012-01-17 22:06:24 +0000
1061@@ -0,0 +1,79 @@
1062+"""
1063+Naive implementation of Burgers' equation, goes oscillatory later
1064+"""
1065+
1066+import sys
1067+
1068+from dolfin import *
1069+from dolfin_adjoint import *
1070+from math import ceil
1071+
1072+n = 100
1073+mesh = UnitInterval(n)
1074+V = FunctionSpace(mesh, "CG", 2)
1075+
1076+#debugging["record_all"] = True
1077+#debugging["test_hermitian"] = (100, 1.0e-14)
1078+#debugging["test_derivative"] = 6
1079+
1080+def Dt(u, u_, timestep):
1081+ return (u - u_)/timestep
1082+
1083+def main(ic, annotate=False):
1084+
1085+ u_ = Function(ic)
1086+ u = TrialFunction(V)
1087+ v = TestFunction(V)
1088+
1089+ nu = Constant(0.0001)
1090+
1091+ timestep = Constant(1.0/n)
1092+
1093+ F = (Dt(u, u_, timestep)*v
1094+ + u_*grad(u)*v + nu*grad(u)*grad(v))*dx
1095+
1096+ (a, L) = system(F)
1097+
1098+ bc = DirichletBC(V, 0.0, "on_boundary")
1099+
1100+ t = 0.0
1101+ end = 0.5
1102+ if annotate:
1103+ adjoint_checkpointing('multistage', int(ceil(end/float(timestep)))+1, 5, 10, verbose=True)
1104+
1105+ u = Function(V)
1106+ while (t <= end):
1107+ solve(a == L, u, bc, annotate=annotate)
1108+
1109+ u_.assign(u, annotate=annotate)
1110+
1111+ t += float(timestep)
1112+ #plot(u)
1113+
1114+ #interactive()
1115+ return u_
1116+
1117+if __name__ == "__main__":
1118+
1119+
1120+ ic = project(Expression("sin(2*pi*x[0])"), V)
1121+ forward = main(ic, annotate=True)
1122+ adj_html("burgers_picard_checkpointing_forward.html", "forward")
1123+ adj_html("burgers_picard_checkpointing_adjoint.html", "adjoint")
1124+ #print "Running forward replay .... "
1125+ #replay_dolfin()
1126+ print "Running adjoint ... "
1127+
1128+ J = Functional(forward*forward*dx)
1129+ adjoint = adjoint_dolfin(J)
1130+
1131+ def Jfunc(ic):
1132+ forward = main(ic, annotate=False)
1133+ return assemble(forward*forward*dx)
1134+
1135+ minconv = test_initial_condition_adjoint(Jfunc, ic, adjoint, seed=1.0e-3)
1136+ if minconv < 1.9:
1137+ exit_code = 1
1138+ else:
1139+ exit_code = 0
1140+ sys.exit(exit_code)
1141
1142=== added directory 'tests/checkpoint_stokes'
1143=== added file 'tests/checkpoint_stokes/checkpoint_stokes.py'
1144--- tests/checkpoint_stokes/checkpoint_stokes.py 1970-01-01 00:00:00 +0000
1145+++ tests/checkpoint_stokes/checkpoint_stokes.py 2012-01-17 22:06:24 +0000
1146@@ -0,0 +1,137 @@
1147+"""
1148+Very stupid scheme for decoupled stationary Stokes + heat equation:
1149+
1150+Given nu and f, find (u, p) such that
1151+
1152+ (nu grad(u), grad(v)) + (p, div(v)) = (f, v)
1153+ (div(u), q) = 0
1154+
1155+for all (v, q).
1156+
1157+Given velocity u, find T such that
1158+
1159+ (Dt(T), s) + (s*div(v) + (grad(T), grad(s)) = (1, s)
1160+
1161+for all s
1162+
1163+"""
1164+
1165+import sys
1166+from math import ceil
1167+
1168+from dolfin import *
1169+
1170+def stokes(W, nu, f):
1171+ (u, p) = TrialFunctions(W)
1172+ (v, q) = TestFunctions(W)
1173+ a = (nu*inner(grad(u), grad(v)) +
1174+ p*div(v) + q*div(u))*dx
1175+ L = inner(f, v)*dx
1176+ return (a, L)
1177+
1178+def temperature(X, kappa, v, t_, k):
1179+ t = TrialFunction(X)
1180+ s = TestFunction(X)
1181+
1182+ F = ((t - t_)/k*s + inner(kappa*grad(t), grad(s))
1183+ + dot(v, grad(t))*s)*dx - s*dx
1184+ (a, L) = system(F)
1185+ return (a, L)
1186+
1187+def flow_boundary_conditions(W):
1188+ u0 = Constant((0.0,0.0))
1189+ bottom = DirichletBC(W.sub(0), (0.0, 0.0), "near(x[1], 0.0)")
1190+ top = DirichletBC(W.sub(0), (0.0, 0.0), "near(x[1], 1.0)")
1191+ left = DirichletBC(W.sub(0).sub(0), 0.0, "near(x[0], 0.0)")
1192+ right = DirichletBC(W.sub(0).sub(0), 0.0, "near(x[0], 1.0)")
1193+ bcs = [bottom, top, left, right]
1194+ return bcs
1195+
1196+def temperature_boundary_conditions(Q):
1197+ bc = DirichletBC(Q, 0.0, "near(x[1], 1.0)")
1198+ return [bc]
1199+
1200+n = 16
1201+mesh = UnitSquare(n, n)
1202+X = FunctionSpace(mesh, "CG", 1)
1203+
1204+def main(ic, annotate=False):
1205+
1206+ # Define meshes and function spaces
1207+ V = VectorFunctionSpace(mesh, "CG", 2)
1208+ Q = FunctionSpace(mesh, "CG", 1)
1209+ W = V * Q
1210+
1211+ # Define boundary conditions
1212+ flow_bcs = flow_boundary_conditions(W)
1213+ temp_bcs = temperature_boundary_conditions(X)
1214+
1215+ # Temperature variables
1216+ T_ = Function(ic)
1217+ T = Function(ic)
1218+
1219+ # Flow variable(s)
1220+ w = Function(W)
1221+ (u, p) = split(w)
1222+
1223+ # Some parameters
1224+ Ra = Constant(1.e4)
1225+ nu = Constant(1.0)
1226+ kappa = Constant(1.0)
1227+ timestep = 0.1
1228+
1229+ # Define flow equation
1230+ g = as_vector((Ra*T_, 0))
1231+ flow_eq = stokes(W, nu, g)
1232+
1233+ # Define temperature equation
1234+ temp_eq = temperature(X, kappa, u, T_, timestep)
1235+
1236+ # Time loop
1237+ t = 0.0
1238+ end = 1.0
1239+
1240+ if annotate:
1241+ adjoint_checkpointing('multistage', int(ceil(end/float(timestep)))+2, 0, 5, verbose=True)
1242+ print "Velocity: ", w
1243+ print "Temperature: ", T
1244+
1245+ while (t <= end):
1246+
1247+ solve(flow_eq[0] == flow_eq[1], w, flow_bcs, annotate=annotate)
1248+
1249+ solve(temp_eq[0] == temp_eq[1], T, temp_bcs, annotate=annotate)
1250+ T_.assign(T, annotate=annotate)
1251+ #plot(T)
1252+
1253+ t += timestep
1254+
1255+ return T_
1256+
1257+if __name__ == "__main__":
1258+
1259+ from dolfin_adjoint import *
1260+
1261+ # Run model
1262+ T0_expr = "0.5*(1.0 - x[1]*x[1]) + 0.01*cos(pi*x[0]/l)*sin(pi*x[1]/h)"
1263+ T0 = Expression(T0_expr, l=1.0, h=1.0)
1264+ ic = Function(interpolate(T0, X))
1265+ T = main(ic, annotate=True)
1266+
1267+ adj_html("stokes_forward.html", "forward")
1268+ adj_html("stokes_adjoint.html", "adjoint")
1269+
1270+ print "Running adjoint ... "
1271+ adjoint = adjoint_dolfin(Functional(T*T*dx))
1272+
1273+ def J(ic):
1274+ T = main(ic, annotate=False)
1275+ return assemble(T*T*dx)
1276+
1277+ minconv = test_initial_condition_adjoint(J, ic, adjoint)
1278+ if minconv < 1.9:
1279+ exit_code = 1
1280+ else:
1281+ exit_code = 0
1282+ sys.exit(exit_code)
1283+
1284
1285=== added directory 'tests/heat'
1286=== added file 'tests/heat/heat.py'
1287--- tests/heat/heat.py 1970-01-01 00:00:00 +0000
1288+++ tests/heat/heat.py 2012-01-17 22:06:24 +0000
1289@@ -0,0 +1,115 @@
1290+import sys
1291+
1292+from dolfin import *
1293+from dolfin_adjoint import *
1294+
1295+debugging["record_all"] = True
1296+
1297+f = Expression("x[0]*(x[0]-1)*x[1]*(x[1]-1)")
1298+mesh = UnitSquare(4, 4)
1299+V = FunctionSpace(mesh, "CG", 1)
1300+
1301+def run_forward(initial_condition=None, annotate=True, dump=True):
1302+ u = TrialFunction(V)
1303+ v = TestFunction(V)
1304+
1305+ u_0 = Function(V)
1306+ if initial_condition is not None:
1307+ u_0.assign(initial_condition)
1308+
1309+ u_1 = Function(V)
1310+
1311+ dt = Constant(0.1)
1312+
1313+ F = ( (u - u_0)/dt*v + inner(grad(u), grad(v)) + f*v)*dx
1314+
1315+ bc = DirichletBC(V, 1.0, "on_boundary")
1316+
1317+ a, L = lhs(F), rhs(F)
1318+
1319+ t = float(dt)
1320+ T = 1.0
1321+ n = 1
1322+
1323+ if dump:
1324+ u_out = File("u.pvd", "compressed")
1325+ u_out << u_0
1326+
1327+ while t <= T:
1328+
1329+ solve(a == L, u_0, bc, annotate=annotate)
1330+ #solve(a == L, u_0, annotate=annotate)
1331+
1332+ t += float(dt)
1333+ if dump:
1334+ u_out << u_0
1335+
1336+ return u_0
1337+
1338+def run_replay():
1339+ print "Replaying forward model (will error if differs from correct solution) ..."
1340+
1341+
1342+ u_out = File("u_replay.pvd", "compressed")
1343+
1344+ for i in range(adjointer.equation_count):
1345+ (fwd_var, output) = adjointer.get_forward_solution(i)
1346+
1347+ storage = libadjoint.MemoryStorage(output)
1348+ storage.set_compare(tol=0.0)
1349+ storage.set_overwrite(True)
1350+ adjointer.record_variable(fwd_var, storage)
1351+
1352+ u_out << output.data
1353+
1354+def run_adjoint():
1355+ z_out = File("adjoint.pvd", "compressed")
1356+
1357+ for i in range(adjointer.equation_count)[::-1]:
1358+
1359+ (adj_var, output) = adjointer.get_adjoint_solution(i, functional)
1360+
1361+ storage = libadjoint.MemoryStorage(output)
1362+ adjointer.record_variable(adj_var, storage)
1363+
1364+ # if we cared about memory, here is where we would put the call to forget
1365+ # any variables we no longer need.
1366+
1367+ z_out << output.data
1368+
1369+ return output.data
1370+
1371+if __name__ == "__main__":
1372+
1373+ final_forward = run_forward()
1374+
1375+ adj_html("heat_forward.html", "forward")
1376+ adj_html("heat_adjoint.html", "adjoint")
1377+
1378+ # The functional is only a function of final state.
1379+ functional=Functional(final_forward*final_forward*dx)
1380+ f_direct = adjointer.evaluate_functional(functional, adjointer.equation_count-1)
1381+
1382+ print "Running adjoint model ..."
1383+
1384+ final_adjoint = run_adjoint()
1385+
1386+ def J(ic):
1387+ perturbed_u0 = run_forward(initial_condition=ic, annotate=False, dump=False)
1388+ return assemble(perturbed_u0*perturbed_u0*dx)
1389+
1390+ minconv = test_initial_condition_adjoint(J, Function(V), final_adjoint, seed=10.0)
1391+
1392+ if minconv < 1.9:
1393+ sys.exit(1)
1394+
1395+ dJ = assemble(derivative(final_forward*final_forward*dx, final_forward))
1396+
1397+ ic = final_forward
1398+ ic.vector()[:] = 0
1399+
1400+ minconv = test_initial_condition_tlm(J, dJ, ic, seed=1.0)
1401+
1402+ if minconv < 1.9:
1403+ sys.exit(1)
1404+
1405
1406=== added directory 'tests/navier_stokes'
1407=== added file 'tests/navier_stokes/lshape.xml.gz'
1408Binary files tests/navier_stokes/lshape.xml.gz 1970-01-01 00:00:00 +0000 and tests/navier_stokes/lshape.xml.gz 2012-01-17 22:06:24 +0000 differ
1409=== added file 'tests/navier_stokes/navier_stokes.py'
1410--- tests/navier_stokes/navier_stokes.py 1970-01-01 00:00:00 +0000
1411+++ tests/navier_stokes/navier_stokes.py 2012-01-17 22:06:24 +0000
1412@@ -0,0 +1,151 @@
1413+"""This demo program solves the incompressible Navier-Stokes equations
1414+on an L-shaped domain using Chorin's splitting method."""
1415+
1416+# Copyright (C) 2010-2011 Anders Logg
1417+#
1418+# This file is part of DOLFIN.
1419+#
1420+# DOLFIN is free software: you can redistribute it and/or modify
1421+# it under the terms of the GNU Lesser General Public License as published by
1422+# the Free Software Foundation, either version 3 of the License, or
1423+# (at your option) any later version.
1424+#
1425+# DOLFIN is distributed in the hope that it will be useful,
1426+# but WITHOUT ANY WARRANTY; without even the implied warranty of
1427+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1428+# GNU Lesser General Public License for more details.
1429+#
1430+# You should have received a copy of the GNU Lesser General Public License
1431+# along with DOLFIN. If not, see <http://www.gnu.org/licenses/>.
1432+#
1433+# Modified by Mikael Mortensen 2011
1434+#
1435+# First added: 2010-08-30
1436+# Last changed: 2011-06-30
1437+
1438+# Begin demo
1439+
1440+from dolfin import *
1441+from dolfin_adjoint import *
1442+
1443+# Record all variables solved for
1444+debugging["record_all"] = True
1445+
1446+# Print log messages only from the root process in parallel
1447+parameters["std_out_all_processes"] = False;
1448+
1449+#parameters["mesh_partitioner"] = "SCOTCH";
1450+
1451+# Load mesh from file
1452+mesh = Mesh("lshape.xml.gz")
1453+
1454+# Define function spaces (P2-P1)
1455+V = VectorFunctionSpace(mesh, "CG", 2)
1456+Q = FunctionSpace(mesh, "CG", 1)
1457+
1458+# Define trial and test functions
1459+u = TrialFunction(V)
1460+p = TrialFunction(Q)
1461+v = TestFunction(V)
1462+q = TestFunction(Q)
1463+
1464+def main(ic, annotate=False):
1465+ # Set parameter values
1466+ dt = 0.01
1467+ T = 0.05
1468+ nu = 0.01
1469+
1470+ # Define time-dependent pressure boundary condition
1471+ p_in = Expression("sin(3.0*t)", t=1.0)
1472+
1473+ # Define boundary conditions
1474+ noslip = DirichletBC(V, (0, 0),
1475+ "on_boundary && \
1476+ (x[0] < DOLFIN_EPS | x[1] < DOLFIN_EPS | \
1477+ (x[0] > 0.5 - DOLFIN_EPS && x[1] > 0.5 - DOLFIN_EPS))")
1478+ inflow = DirichletBC(Q, p_in, "x[1] > 1.0 - DOLFIN_EPS")
1479+ outflow = DirichletBC(Q, 0, "x[0] > 1.0 - DOLFIN_EPS")
1480+ bcu = [noslip]
1481+ bcp = [inflow, outflow]
1482+
1483+ # Create functions
1484+ u0 = Function(ic)
1485+ u1 = Function(V)
1486+ p1 = Function(Q)
1487+
1488+ # Define coefficients
1489+ k = Constant(dt)
1490+ f = Constant((0, 0))
1491+
1492+ # Tentative velocity step
1493+ F1 = (1/k)*inner(u - u0, v)*dx + inner(grad(u0)*u0, v)*dx + \
1494+ nu*inner(grad(u), grad(v))*dx - inner(f, v)*dx
1495+ a1 = lhs(F1)
1496+ L1 = rhs(F1)
1497+
1498+ # Pressure update
1499+ a2 = inner(grad(p), grad(q))*dx
1500+ L2 = -(1/k)*div(u1)*q*dx
1501+
1502+ # Velocity update
1503+ a3 = inner(u, v)*dx
1504+ L3 = inner(u1, v)*dx - k*inner(grad(p1), v)*dx
1505+
1506+ # Assemble matrices
1507+ A1 = assemble(a1)
1508+ A2 = assemble(a2)
1509+ A3 = assemble(a3)
1510+
1511+ # Time-stepping
1512+ t = dt
1513+ while t < T + DOLFIN_EPS:
1514+
1515+ # Update pressure boundary condition
1516+ #p_in.t = t
1517+
1518+ # Compute tentative velocity step
1519+ begin("Computing tentative velocity")
1520+ b1 = assemble(L1)
1521+ [bc.apply(A1, b1) for bc in bcu]
1522+ solve(A1, u1, b1, "gmres", "default")
1523+ end()
1524+
1525+ # Pressure correction
1526+ begin("Computing pressure correction")
1527+ b2 = assemble(L2)
1528+ [bc.apply(A2, b2) for bc in bcp]
1529+ solve(A2, p1, b2, "gmres", "amg")
1530+ end()
1531+
1532+ # Velocity correction
1533+ begin("Computing velocity correction")
1534+ b3 = assemble(L3)
1535+ [bc.apply(A3, b3) for bc in bcu]
1536+ solve(A3, u1, b3, "gmres", "default")
1537+ end()
1538+
1539+ # Move to next time step
1540+ u0.assign(u1)
1541+ t += dt
1542+ return u0
1543+
1544+if __name__ == "__main__":
1545+
1546+ import sys
1547+
1548+ ic = Function(V)
1549+ final_soln = main(ic, annotate=True)
1550+ adj_html("navier_stokes_forward.html", "forward")
1551+ adj_html("navier_stokes_adjoint.html", "adjoint")
1552+ replay_dolfin(forget=False)
1553+
1554+ J = Functional(inner(final_soln, final_soln)*dx)
1555+ final_adj = adjoint_dolfin(J, forget=False)
1556+
1557+ def J(ic):
1558+ soln = main(ic)
1559+ return assemble(inner(soln, soln)*dx)
1560+
1561+ minconv = test_initial_condition_adjoint(J, ic, final_adj, seed=1.0e-3)
1562+ if minconv < 1.9:
1563+ sys.exit(1)
1564
1565=== added directory 'tests/stokes'
1566=== added file 'tests/stokes/stokes.py'
1567--- tests/stokes/stokes.py 1970-01-01 00:00:00 +0000
1568+++ tests/stokes/stokes.py 2012-01-17 22:06:24 +0000
1569@@ -0,0 +1,146 @@
1570+"""
1571+Very stupid scheme for decoupled stationary Stokes + heat equation:
1572+
1573+Given nu and f, find (u, p) such that
1574+
1575+ (nu grad(u), grad(v)) + (p, div(v)) = (f, v)
1576+ (div(u), q) = 0
1577+
1578+for all (v, q).
1579+
1580+Given velocity u, find T such that
1581+
1582+ (Dt(T), s) + (s*div(v) + (grad(T), grad(s)) = (1, s)
1583+
1584+for all s
1585+
1586+"""
1587+
1588+import sys
1589+
1590+from dolfin import *
1591+
1592+def stokes(W, nu, f):
1593+ (u, p) = TrialFunctions(W)
1594+ (v, q) = TestFunctions(W)
1595+ a = (nu*inner(grad(u), grad(v)) +
1596+ p*div(v) + q*div(u))*dx
1597+ L = inner(f, v)*dx
1598+ return (a, L)
1599+
1600+def temperature(X, kappa, v, t_, k):
1601+ t = TrialFunction(X)
1602+ s = TestFunction(X)
1603+
1604+ F = ((t - t_)/k*s + inner(kappa*grad(t), grad(s))
1605+ + dot(v, grad(t))*s)*dx - s*dx
1606+ (a, L) = system(F)
1607+ return (a, L)
1608+
1609+def flow_boundary_conditions(W):
1610+ u0 = Constant((0.0,0.0))
1611+ bottom = DirichletBC(W.sub(0), (0.0, 0.0), "near(x[1], 0.0)")
1612+ top = DirichletBC(W.sub(0), (0.0, 0.0), "near(x[1], 1.0)")
1613+ left = DirichletBC(W.sub(0).sub(0), 0.0, "near(x[0], 0.0)")
1614+ right = DirichletBC(W.sub(0).sub(0), 0.0, "near(x[0], 1.0)")
1615+ bcs = [bottom, top, left, right]
1616+ return bcs
1617+
1618+def temperature_boundary_conditions(Q):
1619+ bc = DirichletBC(Q, 0.0, "near(x[1], 1.0)")
1620+ return [bc]
1621+
1622+n = 16
1623+mesh = UnitSquare(n, n)
1624+X = FunctionSpace(mesh, "CG", 1)
1625+
1626+def main(ic, annotate=False):
1627+
1628+ # Define meshes and function spaces
1629+ V = VectorFunctionSpace(mesh, "CG", 2)
1630+ Q = FunctionSpace(mesh, "CG", 1)
1631+ W = V * Q
1632+
1633+ # Define boundary conditions
1634+ flow_bcs = flow_boundary_conditions(W)
1635+ temp_bcs = temperature_boundary_conditions(X)
1636+
1637+ # Temperature variables
1638+ T_ = Function(ic)
1639+ T = Function(ic)
1640+
1641+ # Flow variable(s)
1642+ w = Function(W)
1643+ (u, p) = split(w)
1644+
1645+ # Some parameters
1646+ Ra = Constant(1.e4)
1647+ nu = Constant(1.0)
1648+ kappa = Constant(1.0)
1649+ timestep = 0.1
1650+
1651+ # Define flow equation
1652+ g = as_vector((Ra*T_, 0))
1653+ flow_eq = stokes(W, nu, g)
1654+
1655+ # Define temperature equation
1656+ temp_eq = temperature(X, kappa, u, T_, timestep)
1657+
1658+ # Time loop
1659+ t = 0.0
1660+ end = 1.0
1661+ while (t <= end):
1662+
1663+ solve(flow_eq[0] == flow_eq[1], w, flow_bcs, annotate=annotate)
1664+
1665+ solve(temp_eq[0] == temp_eq[1], T, temp_bcs, annotate=annotate)
1666+ T_.assign(T, annotate=annotate)
1667+ #plot(T)
1668+
1669+ t += timestep
1670+
1671+ return T_
1672+
1673+def replay():
1674+ print "Replaying forward run"
1675+
1676+ for i in range(adjointer.equation_count):
1677+ (fwd_var, output) = adjointer.get_forward_solution(i)
1678+
1679+ s=libadjoint.MemoryStorage(output)
1680+ s.set_compare(0.0)
1681+ s.set_overwrite(True)
1682+
1683+ adjointer.record_variable(fwd_var, s)
1684+
1685+if __name__ == "__main__":
1686+
1687+ from dolfin_adjoint import *
1688+ debugging["record_all"] = True
1689+
1690+ # Run model
1691+ T0_expr = "0.5*(1.0 - x[1]*x[1]) + 0.01*cos(pi*x[0]/l)*sin(pi*x[1]/h)"
1692+ T0 = Expression(T0_expr, l=1.0, h=1.0)
1693+ ic = Function(interpolate(T0, X))
1694+ T = main(ic, annotate=True)
1695+
1696+ adj_html("stokes_forward.html", "forward")
1697+ adj_html("stokes_adjoint.html", "adjoint")
1698+
1699+ # Replay model
1700+ replay()
1701+
1702+ print "Running adjoint ... "
1703+ adjoint = adjoint_dolfin(Functional(T*T*dx))
1704+
1705+ def J(ic):
1706+ T = main(ic, annotate=False)
1707+ return assemble(T*T*dx)
1708+
1709+ minconv = test_initial_condition_adjoint(J, ic, adjoint)
1710+ if minconv < 1.9:
1711+ exit_code = 1
1712+ else:
1713+ exit_code = 0
1714+ sys.exit(exit_code)
1715+
1716
1717=== added directory 'tests/sw'
1718=== added file 'tests/sw/basin.geo'
1719--- tests/sw/basin.geo 1970-01-01 00:00:00 +0000
1720+++ tests/sw/basin.geo 2012-01-17 22:06:24 +0000
1721@@ -0,0 +1,9 @@
1722+Point(1) = {250000.0,0,0,10000.0};
1723+Point(2) = {0,0,0,10000.0};
1724+Point(3) = {-250000.0,0,0,10000.0};
1725+Circle(1) = {1,2,3};
1726+Circle(2) = {3,2,1};
1727+Physical Line(3) = {1,2};
1728+Line Loop(4) = {1,2};
1729+Plane Surface(5) = {4};
1730+Physical Surface(6) = {5};
1731
1732=== added file 'tests/sw/basin.msh'
1733--- tests/sw/basin.msh 1970-01-01 00:00:00 +0000
1734+++ tests/sw/basin.msh 2012-01-17 22:06:24 +0000
1735@@ -0,0 +1,7135 @@
1736+$MeshFormat
1737+2.2 0 8
1738+$EndMeshFormat
1739+$Nodes
1740+2376
1741+1 250000 0 0
1742+2 -250000 0 0
1743+3 249797.2495429117 10066.48502687441 0
1744+4 249189.3270336297 20116.64217822506 0
1745+5 248177.218524687 30134.17006240198 0
1746+6 246762.5656597861 40102.82021254587 0
1747+7 244947.6630110468 50006.42344166077 0
1748+8 242735.4543572019 59828.91606909453 0
1749+9 240129.5279087774 69554.36597588743 0
1750+10 237134.1104880018 79166.99844672756 0
1751+11 233754.0606728848 88651.22175659664 0
1752+12 229994.8609165255 97991.6524607484 0
1753+13 225862.608654524 107173.1403466994 0
1754+14 221364.0064153264 116180.7930070859 0
1755+15 216506.3509482155 124999.9999963526 0
1756+16 211297.521388123 133616.4565285118 0
1757+17 205745.9664756437 142016.1866795588 0
1758+18 199860.690853147 150185.5660564717 0
1759+19 193651.2404592145 158111.3438960262 0
1760+20 187127.6870450927 165780.664557583 0
1761+21 180300.6118382752 173181.0883749828 0
1762+22 173181.0883797194 180300.6118337257 0
1763+23 165780.6645625112 187127.6870407267 0
1764+24 158111.343901139 193651.2404550401 0
1765+25 150185.5660617616 199860.6908491719 0
1766+26 142016.1866850181 205745.9664718755 0
1767+27 133616.4565341323 211297.5213845689 0
1768+28 125000.000002126 216506.3509448822 0
1769+29 116180.7930130034 221364.0064122206 0
1770+30 107173.1403527521 225862.608651652 0
1771+31 97991.65246692697 229994.860913893 0
1772+32 88651.22176245433 233754.0606706633 0
1773+33 79166.99845209412 237134.1104862102 0
1774+34 69554.36598073867 240129.5279073722 0
1775+35 59828.91607340895 242735.4543561385 0
1776+36 50006.42344541974 244947.6630102794 0
1777+37 40102.82021573343 246762.565659268 0
1778+38 30134.17006500524 248177.2185243709 0
1779+39 20116.64218023379 249189.3270334676 0
1780+40 10066.48502828154 249797.249542855 0
1781+41 8.011522421489357e-07 250000 0
1782+42 -10066.48502671414 249797.2495429182 0
1783+43 -20116.64217870397 249189.327033591 0
1784+44 -30134.17006351502 248177.2185245518 0
1785+45 -40102.82021428507 246762.5656595034 0
1786+46 -50006.423444015 244947.6630105661 0
1787+47 -59828.91607204972 242735.4543564735 0
1788+48 -69554.36597942641 240129.5279077523 0
1789+49 -79166.99845083017 237134.1104866321 0
1790+50 -88651.22176124 233754.0606711239 0
1791+51 -97991.65246576624 229994.8609143876 0
1792+52 -107173.1403516547 225862.6086521727 0
1793+53 -116180.7930119693 221364.0064127634 0
1794+54 -125000.0000011553 216506.3509454427 0
1795+55 -133616.4565332246 211297.5213851429 0
1796+56 -142016.1866841728 205745.9664724589 0
1797+57 -150185.566060978 199860.6908497607 0
1798+58 -158111.3439004162 193651.2404556303 0
1799+59 -165780.6645618477 187127.6870413144 0
1800+60 -173181.088379114 180300.6118343072 0
1801+61 -180300.6118377233 173181.0883755575 0
1802+62 -187127.6870445898 165780.6645581507 0
1803+63 -193651.2404587591 158111.343896584 0
1804+64 -199860.6908527374 150185.5660570167 0
1805+65 -205745.9664752781 142016.1866800885 0
1806+66 -211297.5213877996 133616.4565290233 0
1807+67 -216506.350947932 124999.9999968435 0
1808+68 -221364.0064150808 116180.7930075539 0
1809+69 -225862.6086543138 107173.1403471424 0
1810+70 -229994.8609163483 97991.65246116419 0
1811+71 -233754.06067274 88651.22175697848 0
1812+72 -237134.1104878869 79166.99844707175 0
1813+73 -240129.5279086891 69554.36597619246 0
1814+74 -242735.4543571367 59828.9160693589 0
1815+75 -244947.6630110013 50006.4234418831 0
1816+76 -246762.5656597569 40102.82021272503 0
1817+77 -248177.2185246706 30134.17006253709 0
1818+78 -249189.3270336224 20116.64217831559 0
1819+79 -249797.2495429099 10066.48502691991 0
1820+80 -249797.2495429117 -10066.48502687441 0
1821+81 -249189.3270336297 -20116.64217822506 0
1822+82 -248177.218524687 -30134.17006240198 0
1823+83 -246762.5656597861 -40102.82021254587 0
1824+84 -244947.6630110468 -50006.42344166077 0
1825+85 -242735.4543572019 -59828.91606909453 0
1826+86 -240129.5279087774 -69554.36597588743 0
1827+87 -237134.1104880018 -79166.99844672756 0
1828+88 -233754.0606728848 -88651.22175659664 0
1829+89 -229994.8609165255 -97991.6524607484 0
1830+90 -225862.608654524 -107173.1403466994 0
1831+91 -221364.0064153264 -116180.7930070859 0
1832+92 -216506.3509482155 -124999.9999963526 0
1833+93 -211297.521388123 -133616.4565285118 0
1834+94 -205745.9664756437 -142016.1866795588 0
1835+95 -199860.690853147 -150185.5660564717 0
1836+96 -193651.2404592145 -158111.3438960262 0
1837+97 -187127.6870450927 -165780.664557583 0
1838+98 -180300.6118382752 -173181.0883749828 0
1839+99 -173181.0883797194 -180300.6118337257 0
1840+100 -165780.6645625112 -187127.6870407267 0
1841+101 -158111.343901139 -193651.2404550401 0
1842+102 -150185.5660617616 -199860.6908491719 0
1843+103 -142016.1866850181 -205745.9664718755 0
1844+104 -133616.4565341323 -211297.5213845689 0
1845+105 -125000.000002126 -216506.3509448822 0
1846+106 -116180.7930130034 -221364.0064122206 0
1847+107 -107173.1403527521 -225862.608651652 0
1848+108 -97991.65246692697 -229994.860913893 0
1849+109 -88651.22176245433 -233754.0606706633 0
1850+110 -79166.99845209412 -237134.1104862102 0
1851+111 -69554.36598073867 -240129.5279073722 0
1852+112 -59828.91607340895 -242735.4543561385 0
1853+113 -50006.42344541974 -244947.6630102794 0
1854+114 -40102.82021573343 -246762.565659268 0
1855+115 -30134.17006500524 -248177.2185243709 0
1856+116 -20116.64218023379 -249189.3270334676 0
1857+117 -10066.48502828154 -249797.249542855 0
1858+118 -8.011522421489357e-07 -250000 0
1859+119 10066.48502671414 -249797.2495429182 0
1860+120 20116.64217870397 -249189.327033591 0
1861+121 30134.17006351502 -248177.2185245518 0
1862+122 40102.82021428507 -246762.5656595034 0
1863+123 50006.423444015 -244947.6630105661 0
1864+124 59828.91607204972 -242735.4543564735 0
1865+125 69554.36597942641 -240129.5279077523 0
1866+126 79166.99845083017 -237134.1104866321 0
1867+127 88651.22176124 -233754.0606711239 0
1868+128 97991.65246576624 -229994.8609143876 0
1869+129 107173.1403516547 -225862.6086521727 0
1870+130 116180.7930119693 -221364.0064127634 0
1871+131 125000.0000011553 -216506.3509454427 0
1872+132 133616.4565332246 -211297.5213851429 0
1873+133 142016.1866841728 -205745.9664724589 0
1874+134 150185.566060978 -199860.6908497607 0
1875+135 158111.3439004162 -193651.2404556303 0
1876+136 165780.6645618477 -187127.6870413144 0
1877+137 173181.088379114 -180300.6118343072 0
1878+138 180300.6118377233 -173181.0883755575 0
1879+139 187127.6870445898 -165780.6645581507 0
1880+140 193651.2404587591 -158111.343896584 0
1881+141 199860.6908527374 -150185.5660570167 0
1882+142 205745.9664752781 -142016.1866800885 0
1883+143 211297.5213877996 -133616.4565290233 0
1884+144 216506.350947932 -124999.9999968435 0
1885+145 221364.0064150808 -116180.7930075539 0
1886+146 225862.6086543138 -107173.1403471424 0
1887+147 229994.8609163483 -97991.65246116419 0
1888+148 233754.06067274 -88651.22175697848 0
1889+149 237134.1104878869 -79166.99844707175 0
1890+150 240129.5279086891 -69554.36597619246 0
1891+151 242735.4543571367 -59828.9160693589 0
1892+152 244947.6630110013 -50006.4234418831 0
1893+153 246762.5656597569 -40102.82021272503 0
1894+154 248177.2185246706 -30134.17006253709 0
1895+155 249189.3270336224 -20116.64217831559 0
1896+156 249797.2495429099 -10066.48502691991 0
1897+157 69598.98980894087 -84318.06563020704 0
1898+158 9500.523833238925 65332.55942151947 0
1899+159 -59662.33931100983 -40680.44554845821 0
1900+160 -98999.92954319349 -61697.44729801487 0
1901+161 -87125.437191631 -80595.79738502072 0
1902+162 -136122.0873560809 -94603.3275489064 0
1903+163 -119396.2129454342 -145928.0165559765 0
1904+164 159283.7271279393 151126.2432026265 0
1905+165 166738.6059324629 102976.8181218711 0
1906+166 -127881.2100960798 -180997.0948166743 0
1907+167 204166.4614232108 63466.19537718844 0
1908+168 238604.6006239162 35093.1507580011 0
1909+169 -108362.044943477 -205061.0029953629 0
1910+170 95399.60926401477 -195931.6193896914 0
1911+171 7858.969233700307 202078.8901918534 0
1912+172 218704.887521285 93728.34300655869 0
1913+173 160466.4742325949 -116366.2141668368 0
1914+174 -93754.72140361721 179485.347689636 0
1915+175 47053.20126622816 201312.7403257605 0
1916+176 -198504.2095294177 -69799.91064263761 0
1917+177 -170428.964693687 55790.02894995834 0
1918+178 178677.5059765374 28758.49202503047 0
1919+179 -28027.14476188747 189412.8303269786 0
1920+180 -46612.412270525 128821.4299427205 0
1921+181 -69044.74857289031 -130699.0059721259 0
1922+182 -206035.0331438485 31590.95468095646 0
1923+183 201446.2257573534 -31810.76840191242 0
1924+184 -53723.35880472053 -78764.29538346377 0
1925+185 -73103.43877057616 73135.38161070673 0
1926+186 147983.9735217847 -55869.61596664554 0
1927+187 9316.147940144163 -198633.4649356803 0
1928+188 -172316.5626153013 -7489.74439878566 0
1929+189 -34133.97745635222 10281.11950140096 0
1930+190 150272.3117444075 -85513.19103700083 0
1931+191 52909.8394199686 -167746.238812252 0
1932+192 1684.952564653016 -38522.80322664511 0
1933+193 117928.6815954593 -94642.34678720865 0
1934+194 152855.3407244197 -149088.6947764225 0
1935+195 4223.287987375753 117078.2104303327 0
1936+196 -202935.5211833716 -30971.28731305028 0
1937+197 118382.7091257526 -148169.9846561539 0
1938+198 41270.86584607993 165576.8764494067 0
1939+199 38363.28784729906 -6561.951015627915 0
1940+200 -179600.9723621826 -55671.72535961688 0
1941+201 94869.93889733814 -155805.2518157474 0
1942+202 122264.5383140042 -119970.8203927201 0
1943+203 89463.66495571182 204148.278443529 0
1944+204 -162735.0311172339 -44082.789070942 0
1945+205 -116497.0526252967 -33408.71564356023 0
1946+206 75123.26556187122 182520.856327192 0
1947+207 -113105.5407097792 18498.1515537053 0
1948+208 109002.2652131006 184403.6900849376 0
1949+209 -109075.9975785097 130747.5644973716 0
1950+210 135316.5375068569 163249.3778151765 0
1951+211 -139770.2768218017 -71374.22840956876 0
1952+212 -204950.1488603984 -105641.2848341257 0
1953+213 -174685.604531078 -90997.04602476578 0
1954+214 -89975.32458126069 -177319.489054403 0
1955+215 -184354.0228134016 -112510.9819653316 0
1956+216 142144.2019529661 127062.8759784671 0
1957+217 -155321.2970306207 -128500.3837267054 0
1958+218 -159056.888324864 143233.9919779223 0
1959+219 -178602.5627427398 124508.805015623 0
1960+220 -182910.6779549962 -141054.7812280367 0
1961+221 -24080.35490454231 -230253.3372014483 0
1962+222 -121262.7426846677 -171197.4302882819 0
1963+223 -165522.0559589992 -151789.5544118347 0
1964+224 -145553.4064660116 -167029.0207086271 0
1965+225 126095.8015128296 90194.62962106081 0
1966+226 168345.6914750906 130310.7757725305 0
1967+227 51210.23526767195 98095.1144615338 0
1968+228 187525.1993103406 123926.8234535955 0
1969+229 66875.99356005418 -216983.7993033719 0
1970+230 205279.7144130435 110837.7137969577 0
1971+231 197628.6651489953 91900.0325084236 0
1972+232 -50777.4551662821 -228338.8591372945 0
1973+233 -128720.702407072 -164546.8056544624 0
1974+234 221058.5378154129 48732.45738090267 0
1975+235 -83868.97448089617 214014.174481113 0
1976+236 120381.8853876375 -186194.6302490441 0
1977+237 178645.3583754164 74991.06007940158 0
1978+238 -136223.4150110885 178077.174905392 0
1979+239 -78604.53030737551 -208840.2658888187 0
1980+240 29769.0637553222 209072.4581550912 0
1981+241 184135.2096780335 -103636.631524052 0
1982+242 184162.1500711923 146625.5205244849 0
1983+243 -228354.7334878794 22406.86655557705 0
1984+244 91109.66364762773 -220818.5134778656 0
1985+245 155213.1650303018 182240.7511288454 0
1986+246 237714.4311776749 43648.55046904161 0
1987+247 -122657.474098446 195571.1498803193 0
1988+248 -129427.909544348 -204373.7393435618 0
1989+249 -117937.4005448677 -117655.3874098197 0
1990+250 218299.1408379671 84920.28097898074 0
1991+251 -234470.2299931188 -3300.297911266603 0
1992+252 -209829.4593055095 -86428.5053589528 0
1993+253 39678.00032052422 226011.7813686568 0
1994+254 174282.7407878368 -154673.3043529167 0
1995+255 -103772.0785458457 -91995.25268730795 0
1996+256 67946.50342052129 221569.4959871809 0
1997+257 -114004.8938201321 202491.3351059862 0
1998+258 181711.2080074575 154598.2119943296 0
1999+259 110886.336281458 -210419.4832897029 0
2000+260 -148079.139001848 -188891.7802402438 0
2001+261 48705.55613444242 231369.7382434197 0
2002+262 -110464.6406434134 -59341.44953709219 0
2003+263 -59363.96621242409 -226926.429906813 0
2004+264 189788.0615632338 -130037.8049673024 0
2005+265 -229900.5109258663 -74417.72029179057 0
2006+266 102583.9599946433 -218362.5261123384 0
2007+267 -118722.4694629832 -208739.5655955907 0
2008+268 -81482.16815122265 -57459.09305222048 0
2009+269 12837.18950389985 -150599.9288669577 0
2010+270 4860.2366189512 -103221.6531208585 0
2011+271 79244.4238007782 -21910.78176511056 0
2012+272 124084.1380832045 -17215.72779944552 0
2013+273 -31528.27227099752 -164584.2618639522 0
2014+274 166396.2156935897 -16641.99843772126 0
2015+275 50150.40895666205 50587.02264743923 0
2016+276 110921.6008274604 -62397.05656951443 0
2017+277 50112.82599766048 -44567.82464646845 0
2018+278 -19481.81874303422 100770.5481522476 0
2019+279 -34481.97813256031 69290.9651196746 0
2020+280 22530.73235584107 -79950.3641150294 0
2021+281 -72685.11929171391 13722.32151377866 0
2022+282 -89364.58128614846 -17403.92480670284 0
2023+283 44403.59139127228 -119194.1952863956 0
2024+284 -70895.64620567605 -167513.4258336421 0
2025+285 98467.83281258734 87468.09439491153 0
2026+286 84220.89859030842 -126115.2930256152 0
2027+287 -53759.44160722138 41233.31190701575 0
2028+288 39078.07506673429 -73158.83410092653 0
2029+289 -7378.3628235162 154293.2597694795 0
2030+290 -176616.7132507137 82209.39179177742 0
2031+291 -14772.35868565025 36100.2426302953 0
2032+292 -71244.40369058501 160212.6943981706 0
2033+293 -91862.95458889578 46706.28422619888 0
2034+294 65441.14555756932 140688.0067475898 0
2035+295 -154480.4282890593 122220.4378534043 0
2036+296 -22247.38845960511 -208861.2712345238 0
2037+297 102180.3718998933 160847.8277272205 0
2038+298 9389.503305393378 176559.5060428769 0
2039+299 143275.9305530851 23692.99294260886 0
2040+300 24151.90963507789 27435.34675146451 0
2041+301 -63139.27700526472 174716.0153127312 0
2042+302 -128489.9214869933 52977.94306975129 0
2043+303 -92235.72755981766 104911.5753306866 0
2044+304 102656.8098716951 -110122.8356878873 0
2045+305 -108659.0994738557 79428.75445860653 0
2046+306 -83300.28663978034 -153987.6681996447 0
2047+307 80270.7790676444 161271.4835239761 0
2048+308 2427.443114849206 4363.846766619331 0
2049+309 118201.619002787 148939.3624822253 0
2050+310 -57147.27204519395 100706.9551424911 0
2051+311 -40392.20536550086 220763.6470815274 0
2052+312 180894.9271375085 -83282.55828329342 0
2053+313 -63528.39689209355 209829.7688298573 0
2054+314 46609.77436022415 131535.3872571237 0
2055+315 -30279.01521961587 -115602.3791441105 0
2056+316 39169.54073887214 -186998.7156434456 0
2057+317 96048.00502399732 -87730.02710973611 0
2058+318 -169093.5133045173 103218.6104580623 0
2059+319 200161.4924447254 -76114.59884330878 0
2060+320 11392.19929720751 95649.05182538438 0
2061+321 -125070.7097210555 157212.10551967 0
2062+322 214636.2357386751 -4440.994059758009 0
2063+323 -138329.0991179741 139926.0762941877 0
2064+324 114953.5607150189 69588.95793321943 0
2065+325 -148093.9832190454 36062.44935973761 0
2066+326 -191054.1967418934 66392.69931887589 0
2067+327 -96683.7758101349 -140335.5019121538 0
2068+328 136951.7148068625 56971.02834318128 0
2069+329 -26885.48480581145 -57118.56108666258 0
2070+330 -49444.37198575977 -15087.88520431544 0
2071+331 -117654.4793428708 -11202.71767764143 0
2072+332 -21031.48612789527 131746.3202687212 0
2073+333 -80626.64617094328 -46121.32510498712 0
2074+334 175299.5491332742 -59043.86349847133 0
2075+335 203377.1985615763 17118.11918679602 0
2076+336 -98682.98667888543 -122386.5583520683 0
2077+337 135724.2703309811 -170769.1998434299 0
2078+338 38558.55225022089 82824.19322692943 0
2079+339 105411.6561919672 -133455.4328920182 0
2080+340 -188323.0616340429 14542.12477946511 0
2081+341 24088.41282489432 188042.4828889367 0
2082+342 165855.867256663 -76169.13305684502 0
2083+343 60881.64665450252 -195764.1345994062 0
2084+344 -61685.9383823259 -95272.87676570514 0
2085+345 -93191.07315075627 -109177.74634987 0
2086+346 -49114.80633401008 -59850.64866132366 0
2087+347 -140502.4701535559 -45436.89974057272 0
2088+348 -4621.190663988041 -221452.106106105 0
2089+349 123589.21678298 126904.2393272796 0
2090+350 -153944.9423086137 -95399.77647025646 0
2091+351 -117071.4220934996 176881.4038185891 0
2092+352 -75152.60592715572 -192535.7539403559 0
2093+353 -161778.052162392 -62791.06190734752 0
2094+354 33720.03859106696 -227354.8256076423 0
2095+355 23639.71238154205 147705.8092050958 0
2096+356 202547.0324177858 38025.02617891192 0
2097+357 -166465.060433605 -109269.7719072719 0
2098+358 26771.95826528773 108401.7730566485 0
2099+359 -23843.59680399118 210246.7040750975 0
2100+360 -78399.83012352344 -98098.40171665864 0
2101+361 114275.9304764144 107776.0666421804 0
2102+362 168018.3215786962 -95214.58023980816 0
2103+363 -8112.476957786018 216110.5212537478 0
2104+364 167183.9090587858 -137448.1312325858 0
2105+365 -138154.9304583346 -140238.6402740569 0
2106+366 17081.13702998126 -22736.87716934236 0
2107+367 67551.97747549182 106484.775790246 0
2108+368 45161.16185510205 186779.8966937033 0
2109+369 -229914.8897504654 -31513.96235665153 0
2110+370 12347.0580272972 -231547.0421913313 0
2111+371 227285.1030552076 -61798.4464468564 0
2112+372 -8542.6701910459 197324.2602979243 0
2113+373 -158648.2751009022 -79413.38105046 0
2114+374 107364.5483653172 -172720.4793140357 0
2115+375 -151571.0574005157 68673.7035409271 0
2116+376 -188704.7031990696 44121.2560325826 0
2117+377 -219089.7529095099 -16303.61661014421 0
2118+378 -149971.9739546945 -148742.2036465687 0
2119+379 -189619.6772796227 107965.7696922872 0
2120+380 135759.7128524886 144094.3905617382 0
2121+381 158496.7888923144 51209.87950722292 0
2122+382 -146056.506310306 -55973.37881457073 0
2123+383 193413.2729036812 51023.04537544962 0
2124+384 -182568.1469351991 -38454.86784893725 0
2125+385 -145457.2579930619 -110877.5629720135 0
2126+386 140449.8742805384 -100148.361722928 0
2127+387 -217241.6603694756 4857.912072292508 0
2128+388 134681.7529861953 -73129.74120734463 0
2129+389 125615.7737546733 192923.4934914571 0
2130+390 161831.5810977418 -168687.467760681 0
2131+391 139116.4349464644 -132725.4258968665 0
2132+392 -185139.3896138232 -21957.21137500781 0
2133+393 -133269.1057553297 -157503.8273770159 0
2134+394 61055.89437308309 171136.6066018679 0
2135+395 188885.4517750633 114323.8976687034 0
2136+396 -148893.093268821 161490.6968609583 0
2137+397 189568.3416856256 98257.60335861584 0
2138+398 180988.2554536673 -124785.1020027952 0
2139+399 76894.01201696556 -184721.3184985336 0
2140+400 147217.7411397955 97035.37452805263 0
2141+401 -124439.2832936817 -85425.05596123835 0
2142+402 148745.7843710167 -95233.85451736639 0
2143+403 134779.7084240499 110259.3623034098 0
2144+404 -99057.66815890359 -43524.74997282903 0
2145+405 92700.28795583259 -177612.5132324559 0
2146+406 158160.9695533629 84722.60675830932 0
2147+407 -201386.4726621587 -88003.59822673351 0
2148+408 -37229.83405380369 -79609.43082210993 0
2149+409 -208184.9138855893 -52627.12648478792 0
2150+410 -111599.2671397578 190220.7349394037 0
2151+411 202539.5718030685 -114764.7062060066 0
2152+412 114032.2111139183 203380.3832105632 0
2153+413 80131.16668845185 -204942.8605697981 0
2154+414 -195300.8936180379 -124203.9736694482 0
2155+415 -88801.0353461982 -198686.4096204624 0
2156+416 149401.1032213242 -132978.7430858207 0
2157+417 91514.81158225896 179223.2599173279 0
2158+418 -197273.5096076039 -52323.23189021763 0
2159+419 -182948.2074103735 -128139.7256431212 0
2160+420 151370.0129717027 113535.0418631582 0
2161+421 -168166.8260800076 -27478.269448351 0
2162+422 129003.0639353387 -150071.109971859 0
2163+423 -105732.7030854411 198940.0269439701 0
2164+424 -107233.6276717185 -77673.36701671167 0
2165+425 -183948.1435886856 144333.1344304887 0
2166+426 -218314.1107669875 -56536.87414953717 0
2167+427 -216908.5385675398 -44116.62275758405 0
2168+428 -70305.54762343776 -207965.1151701801 0
2169+429 175228.6807952535 84927.82998090754 0
2170+430 -205493.6711982363 15578.81960003696 0
2171+431 -72746.55805124086 -63771.87932662514 0
2172+432 -195555.2143642058 -101065.6422481591 0
2173+433 88689.54288200538 193510.9229061659 0
2174+434 122794.7362414874 173018.9437332913 0
2175+435 -110150.2498836013 -112689.7943664095 0
2176+436 11019.26471053998 222384.2160167526 0
2177+437 -75969.76744679954 -81784.46705679351 0
2178+438 -83236.68941639118 -65863.51410769408 0
2179+439 -100236.0083102459 -71736.51017809025 0
2180+440 -61006.41858049754 -58703.10369089942 0
2181+441 219129.2395942512 29962.99803336894 0
2182+442 152163.803768315 141786.3032798241 0
2183+443 -103137.9408749162 -195571.6794574346 0
2184+444 -166975.7145968718 140120.0579281446 0
2185+445 -207754.8192789152 111851.6439940335 0
2186+446 -205365.6298079197 -115292.1294047233 0
2187+447 163632.2254132347 -151957.3753575701 0
2188+448 139636.9938217237 -190291.0688322371 0
2189+449 54989.06336870645 -227827.8762292253 0
2190+450 63740.61810357266 211652.0301556278 0
2191+451 88007.65463072005 223542.3490566645 0
2192+452 -201865.2847014307 -13609.12853157261 0
2193+453 231770.6360802533 2665.359341053829 0
2194+454 -171632.4808008332 -126704.9994791955 0
2195+455 139041.8297558074 77158.5985634786 0
2196+456 184120.6589639723 -140118.6622704293 0
2197+457 50640.80319752474 220620.8008027576 0
2198+458 71114.43999927408 -159319.1781043563 0
2199+459 -105842.024334894 -49957.65822889981 0
2200+460 -125582.5976040079 -111524.6080805795 0
2201+461 214178.2412192883 57302.40279700504 0
2202+462 134290.4256389973 -83413.39610658977 0
2203+463 168410.3809912683 71510.21050450596 0
2204+464 104881.3345657179 -191977.4931798951 0
2205+465 -215593.8585483751 27830.54669160855 0
2206+466 -172880.1456847519 -137042.0853390035 0
2207+467 212418.6633500013 102146.170759015 0
2208+468 -120794.9079713257 -102599.581701656 0
2209+469 108580.7866490707 -155077.0309371373 0
2210+470 57739.90402826334 226674.1483645755 0
2211+471 159583.0560453889 129085.2001950475 0
2212+472 -91131.60425412307 -71194.83788825014 0
2213+473 -200243.5069119256 130848.4301102507 0
2214+474 78317.19606457518 218702.685335854 0
2215+475 -166973.4465901321 161275.9348102467 0
2216+476 -176140.4692662488 -71354.40723829807 0
2217+477 -185474.7427972335 -104147.1632720166 0
2218+478 -223951.9496996008 8278.601753479912 0
2219+479 -220413.4746535464 -69535.08505086448 0
2220+480 168758.8882374897 120913.2407588169 0
2221+481 200516.0668348682 83154.74651272313 0
2222+482 -163386.9735450256 -177553.9411860257 0
2223+483 -115525.9823519366 -51013.35339715722 0
2224+484 101855.5443873168 212760.9476697758 0
2225+485 212177.1811557506 -114246.1731562311 0
2226+486 -120858.255437255 -158512.5824473133 0
2227+487 -164481.8204066432 -143601.7901090147 0
2228+488 43534.79773326606 215800.2595772638 0
2229+489 -163608.9783551777 -160458.0538721304 0
2230+490 -71245.95198795707 -52226.24790712105 0
2231+491 -94352.13590385222 212970.5876251473 0
2232+492 -209858.4641426015 -74730.70524988227 0
2233+493 -33427.26192804992 -234157.6848847006 0
2234+494 212610.0508429137 68732.42418621514 0
2235+495 241304.0385988575 14656.79436551889 0
2236+496 -141767.0580054363 -88219.94121426018 0
2237+497 -178181.0646134412 -165247.4208082509 0
2238+498 -109352.4792888322 -173505.685997412 0
2239+499 -105963.7277081219 -184932.1433514098 0
2240+500 64777.36202597903 232884.5077302037 0
2241+501 186704.3749569854 66235.57731610652 0
2242+502 97406.52984936279 197309.3693852284 0
2243+503 -139643.3834625022 -196186.4327467528 0
2244+504 211939.5388270775 78354.04251038223 0
2245+505 216032.8462500256 109546.6473278695 0
2246+506 -190373.8479409588 -60331.08025767712 0
2247+507 -196308.316383878 -140862.3706811687 0
2248+508 -55808.79293706373 -219621.854286342 0
2249+509 175926.6024634383 138608.0300500903 0
2250+510 -130955.7287279544 186722.5721089045 0
2251+511 201271.02459583 100424.7374835482 0
2252+512 -97116.59565381586 -205203.0776187582 0
2253+513 78397.48166101104 -219156.8952450346 0
2254+514 -6009.578536533246 230816.3443091196 0
2255+515 163883.2156199415 139951.0027042935 0
2256+516 197915.8418590722 132179.3404812391 0
2257+517 124554.7087858122 -108571.1433192725 0
2258+518 -220237.7250768656 -80526.70389800235 0
2259+519 99785.54884544545 -207851.9136822609 0
2260+520 -138347.305353669 -184706.5102311641 0
2261+521 -170531.6751544072 -49652.89951656054 0
2262+522 -115924.9460602637 -183002.3608717324 0
2263+523 -194433.3257893787 -111753.1888200616 0
2264+524 -137366.5336573718 -174162.5156473333 0
2265+525 -129317.9783389235 -192601.3889655576 0
2266+526 125969.0616566642 -205955.1210259431 0
2267+527 194478.0043679374 -96353.45962316266 0
2268+528 39848.28979678759 207041.624429564 0
2269+529 -94867.66884087403 -88876.4782550947 0
2270+530 194012.0443575002 143181.049302673 0
2271+531 38335.65074991006 238303.9721023231 0
2272+532 -215416.7046962293 -108974.3349737301 0
2273+533 -241849.3235368476 4349.10723592933 0
2274+534 177680.9579157344 127069.1472187462 0
2275+535 198013.4203017415 120148.0392706783 0
2276+536 -117939.5317373095 -128161.8684218578 0
2277+537 -148567.1215492702 183975.9000667525 0
2278+538 224249.3897598609 -93805.79778957904 0
2279+539 228925.2220914731 41103.67297245146 0
2280+540 -136258.3362383688 -166193.6892765413 0
2281+541 -120473.0606074558 -190511.616800573 0
2282+542 -238697.7576503519 14842.91563725225 0
2283+543 -62122.92869734678 -211510.3769851976 0
2284+544 -7095.404836303729 -242319.0879264475 0
2285+545 74023.55362677717 -231847.3390793512 0
2286+546 -203974.2289652649 -95543.58095074072 0
2287+547 22928.48620858649 206418.2109978354 0
2288+548 -123276.2049176165 207692.4571289166 0
2289+549 185866.7956317559 135627.1746759267 0
2290+550 -221801.5808996112 99795.39421888832 0
2291+551 208691.8650437158 89906.65169370633 0
2292+552 -16742.48584982899 -77541.55716667304 0
2293+553 -174635.4585888632 -148750.4364291313 0
2294+554 -66880.06008513006 -229849.4650059566 0
2295+555 -72190.87446792707 -215209.1583894145 0
2296+556 34428.82652766604 217283.8737852411 0
2297+557 -222995.9282414321 -90871.16849151699 0
2298+558 -184928.4879167745 -152886.0653104579 0
2299+559 15650.08485141863 214521.3963921093 0
2300+560 210371.5671367631 120247.911534638 0
2301+561 177046.1423641666 -163388.6561515046 0
2302+562 -133490.8526765429 199180.8024896378 0
2303+563 13716.55839237022 241330.3244825565 0
2304+564 221533.6057325258 75747.49963352406 0
2305+565 -3273.361299830924 241245.4029928282 0
2306+566 190633.0520443205 151579.3956692846 0
2307+567 221657.7040225894 100239.4326359876 0
2308+568 26382.93238544709 238229.2158735719 0
2309+569 -106426.2953267149 217440.6690901944 0
2310+570 24693.57500759019 216301.3466032085 0
2311+571 77335.74024892625 228866.5997726985 0
2312+572 -89823.89586189303 -53893.0062873022 0
2313+573 -114840.7762055608 212613.6963459879 0
2314+574 -65150.49619092231 -221147.6377959787 0
2315+575 -119497.9627241666 -199802.3916681215 0
2316+576 184096.6911110384 -156046.0964505996 0
2317+577 -36322.87731328145 236734.4624786201 0
2318+578 -107884.5887094712 -216503.3613319237 0
2319+579 -43896.98278972268 -237558.6242651595 0
2320+580 -74610.88119116891 -223648.1902937025 0
2321+581 28199.42069241455 226482.3441673706 0
2322+582 -88206.39690679793 223669.2108152417 0
2323+583 119618.5721865941 -211323.5786168741 0
2324+584 225327.7347452319 86428.0834544986 0
2325+585 -56962.13275001453 -236323.1417972701 0
2326+586 -130075.4097374183 -171826.3291288874 0
2327+587 56211.6323415027 235722.3023409233 0
2328+588 -239903.8475182648 -12935.15271756393 0
2329+589 4922.059016358912 236575.1720373344 0
2330+590 90614.33426218999 5362.048724506718 0
2331+591 -11298.00830116475 -130885.1656071144 0
2332+592 112468.5626150189 4739.741785531097 0
2333+593 70200.00464467614 -51204.55389169884 0
2334+594 -30115.52936521179 -138646.5737037881 0
2335+595 7523.333457064818 -122995.0339952877 0
2336+596 -8046.146471423207 -181507.3904365567 0
2337+597 95833.25190623164 -46779.86329943559 0
2338+598 42729.40450885092 -93706.10181266014 0
2339+599 -49699.06848232526 -144735.2912052168 0
2340+600 22136.0037431509 -113962.8092852481 0
2341+601 116631.9777817817 -41247.78547093773 0
2342+602 80777.7314220398 61027.38755578933 0
2343+603 70526.83907655852 44866.09918992075 0
2344+604 75177.01209438885 -108424.1460708965 0
2345+605 29075.34812839668 -97335.08376080848 0
2346+606 98733.56695990521 66421.33278562363 0
2347+607 90220.70051578565 -69209.63394914767 0
2348+608 10033.54991903316 -174780.1932276998 0
2349+609 136543.9195261975 -38210.87068958536 0
2350+610 -8182.466219597518 -153316.6572643706 0
2351+611 155009.3708442256 -36815.87939170266 0
2352+612 58326.20735368503 -101206.8470926866 0
2353+613 173374.7718211155 -39942.29768091089 0
2354+614 68577.90262446961 2261.919617695903 0
2355+615 73830.42945517662 23142.3050269851 0
2356+616 54478.05606502601 -64064.60826726846 0
2357+617 -102080.176175297 -1507.861788314987 0
2358+618 88720.19088961306 -94503.48979859689 0
2359+619 47844.08398666849 -145810.4505174398 0
2360+620 133208.0231772856 5168.500374419793 0
2361+621 -5422.400424233143 85640.36185025384 0
2362+622 34680.83147960688 -157291.9166833829 0
2363+623 122449.8521464478 25871.10996067768 0
2364+624 -13771.48816961046 67721.01691477357 0
2365+625 30486.59137825591 56862.83055404661 0
2366+626 101669.8990628906 -18984.26646000784 0
2367+627 61302.87678160379 -141018.5763926134 0
2368+628 56833.50115919403 -12914.39143399678 0
2369+629 153199.1659884651 5343.300552161199 0
2370+630 -24632.79756351596 -189209.325788915 0
2371+631 -92975.95504962532 15384.57683651552 0
2372+632 144540.9711093784 -16051.58605948845 0
2373+633 183963.6152852094 -26355.69988607379 0
2374+634 -17473.57404005852 168715.2559135352 0
2375+635 -66206.47968602431 -150446.5833941676 0
2376+636 -68230.51641011746 -16191.41844982926 0
2377+637 28782.6093036236 -135322.4830700906 0
2378+638 -41669.28598121474 -183346.9026864137 0
2379+639 4968.342380691393 32507.22578155333 0
2380+640 26580.91206513418 -216509.3301433301 0
2381+641 17142.71809291264 45181.82080309145 0
2382+642 -54264.17997475572 71020.32925430538 0
2383+643 -48555.03410530524 -123502.8482425402 0
2384+644 -34348.1646040648 115329.7950309821 0
2385+645 -38699.53899332798 100188.6461791527 0
2386+646 -120199.9720871825 38928.51578949445 0
2387+647 -52996.31992853605 12219.80081462493 0
2388+648 -45834.68143204223 85383.5350839297 0
2389+649 86561.87542207877 141503.3972579 0
2390+650 -34347.56005257374 38852.68038424863 0
2391+651 20377.71136985578 -522.4404541541443 0
2392+652 -73018.71557640143 43688.64867475979 0
2393+653 -3599.437380815494 49929.82915036584 0
2394+654 96842.50760185241 107255.7987565356 0
2395+655 -8695.998010636518 181026.7946611864 0
2396+656 -24166.75233795628 52777.88378535062 0
2397+657 -61185.74719933781 -1610.761832140728 0
2398+658 108735.2292695275 52497.00438619592 0
2399+659 -32214.13931729454 207205.7505611659 0
2400+660 -81384.9652143524 -1555.604621334197 0
2401+661 44780.76945187613 147610.3105233112 0
2402+662 31167.13412800294 10515.53502611461 0
2403+663 -82887.41965192364 29968.01677783217 0
2404+664 9306.469061556047 -221210.529255416 0
2405+665 -63457.26887540721 57244.92274901248 0
2406+666 -43963.98720671701 25477.26789032287 0
2407+667 -59032.13735338827 143296.8346570506 0
2408+668 -15669.59510490563 7951.751221091312 0
2409+669 -100234.8760995347 63346.83698600361 0
2410+670 -133783.4955275824 71552.55348729277 0
2411+671 -129443.2353717756 83355.05730791822 0
2412+672 66478.69796630804 -123924.8048771138 0
2413+673 -11302.28929342278 -109042.8371024711 0
2414+674 83371.96172949487 98639.87028409669 0
2415+675 42598.41701782353 21952.30736362454 0
2416+676 42803.48526205042 67735.61887591671 0
2417+677 32914.87075138288 -206141.4085779389 0
2418+678 36770.182428686 39110.96953752914 0
2419+679 -83745.47744177251 89007.51326075238 0
2420+680 12564.39687236929 160337.4952970949 0
2421+681 100757.563820207 151466.036029734 0
2422+682 130460.4164785937 -58592.30852629431 0
2423+683 60122.27872036162 -30925.60792249614 0
2424+684 -90547.96164180418 76863.15582992593 0
2425+685 -102065.3381228552 33378.59519758596 0
2426+686 -5878.459466593224 19966.22362903555 0
2427+687 -109771.3903888322 50944.66107352314 0
2428+688 -52197.41673207089 -166025.9026244419 0
2429+689 -25805.67817175984 84626.60686611968 0
2430+690 188005.2362761759 -46463.21536911287 0
2431+691 -114492.498004132 95206.32413763728 0
2432+692 82045.88506911212 132698.6251573678 0
2433+693 160916.4957584888 24292.64781070496 0
2434+694 -33167.99319641006 -16044.88690109293 0
2435+695 186308.4245818574 14902.09763563582 0
2436+696 -44071.95377664844 55010.81090997763 0
2437+697 225387.9801812539 -80404.54078217062 0
2438+698 -108552.3616749195 -15845.21822632415 0
2439+699 -9238.466081747416 -197934.0377893465 0
2440+700 75809.61097226193 92500.69945201495 0
2441+701 195978.6684665331 -14167.39898827095 0
2442+702 55578.01658577836 32766.99854124304 0
2443+703 -2327.646506781956 136435.0758348714 0
2444+704 -103016.219754104 117660.2578398864 0
2445+705 -46452.88692411005 183289.4884605185 0
2446+706 29863.28360686851 -36532.04518037302 0
2447+707 8632.3266633453 -12209.94104007105 0
2448+708 -103485.2009276254 109451.6169685003 0
2449+709 26318.26222597669 72383.03791991326 0
2450+710 -63297.37019732426 27700.41267149177 0
2451+711 -60080.7869850816 -183131.3880627149 0
2452+712 44059.33198841516 -23825.70718588374 0
2453+713 108472.6160567646 143002.088361496 0
2454+714 -86613.13781183895 -135728.8185384882 0
2455+715 7418.924383727314 -66127.72396528276 0
2456+716 -75170.24366091433 -106749.8026042649 0
2457+717 66100.39722822061 122988.905437183 0
2458+718 -24856.43693374827 23052.34115579915 0
2459+719 -26963.50556317367 -7546.156933034868 0
2460+720 -82197.41323853559 59936.00611973219 0
2461+721 84034.6239637205 80526.32396840813 0
2462+722 -832.8357434408359 -22074.40170434573 0
2463+723 -170261.4435488932 38104.38175195064 0
2464+724 -64664.05101227594 86810.11982681909 0
2465+725 137567.1986875088 38808.52422483298 0
2466+726 20924.48876372347 166380.7077129519 0
2467+727 -90382.8759166797 -124636.1342863745 0
2468+728 -106760.0392157816 -27526.56932713861 0
2469+729 -84909.03739521083 -114607.5149392954 0
2470+730 -45077.68331231511 -38849.10728542516 0
2471+731 -12671.05923636634 -45539.94071218404 0
2472+732 -141643.9137044499 113386.8198461896 0
2473+733 88956.79610566639 -144254.8245360542 0
2474+734 -39728.24720458312 -27345.22439920651 0
2475+735 -207768.5783481774 43710.08993213137 0
2476+736 21506.6840975734 -41218.13942080703 0
2477+737 -159347.7319628961 98344.25624766397 0
2478+738 -161587.5572331226 86154.89518439746 0
2479+739 -79375.81358919023 -143381.1754923633 0
2480+740 -124874.0352842831 144829.2230739834 0
2481+741 11354.06742907366 86686.0667632345 0
2482+742 207046.1680588718 -15456.54196635492 0
2483+743 154888.9369007933 39778.0765664634 0
2484+744 56429.78961079457 80989.52220516573 0
2485+745 -18383.58532343856 121758.5566590021 0
2486+746 -48027.51230768959 -86262.64038650287 0
2487+747 28458.80981371203 -187220.5494920693 0
2488+748 12824.15335534621 15733.91034812273 0
2489+749 -131854.5474389411 121500.6787625731 0
2490+750 60992.24837532636 63213.43639627746 0
2491+751 -25645.23993408841 152815.4377406528 0
2492+752 49505.6196280198 5297.100138071798 0
2493+753 321.1854331128278 109048.8225281903 0
2494+754 1716.455947444263 99923.14251313663 0
2495+755 38243.43452876317 138034.3319687059 0
2496+756 -160720.0929430015 74284.38569125424 0
2497+757 -121848.6063044032 -462.627771608001 0
2498+758 -197941.4998375292 49939.38396137505 0
2499+759 11137.40208713109 -43316.37955342476 0
2500+760 193576.8319780282 23811.47075067131 0
2501+761 -98683.32737252074 93452.92742202558 0
2502+762 -51230.84003481542 114819.8740060148 0
2503+763 53481.16811146298 -81973.83887743788 0
2504+764 -160832.1702137128 44276.51268811189 0
2505+765 -171573.9249769705 66377.88108337093 0
2506+766 151308.1670628322 -168752.2430383171 0
2507+767 -24284.86689684087 143203.0847180944 0
2508+768 60153.77155931925 161494.0331817469 0
2509+769 -46761.72103657273 -104946.7320263342 0
2510+770 -65917.91733702681 -112392.4673448418 0
2511+771 77038.55346772143 -141037.2651767927 0
2512+772 58813.64129651347 91697.82374816819 0
2513+773 -73034.22775298785 191234.8944580926 0
2514+774 25211.01089541797 -19151.57870573004 0
2515+775 -155288.3917555151 -2325.754475463488 0
2516+776 -126204.7854406005 133071.4006831282 0
2517+777 -117481.1213216251 67535.54595068718 0
2518+778 -73901.15867685026 144029.4123253022 0
2519+779 -36818.63079251122 -202094.2100619332 0
2520+780 -205063.1507483756 74143.70003059082 0
2521+781 76211.12044652579 -175401.2352248147 0
2522+782 -42274.86760246133 -2222.729147494968 0
2523+783 -156379.9526573849 -14655.0661946657 0
2524+784 -188020.1565005807 27018.43456753805 0
2525+785 -28678.80729236925 -96636.74308733833 0
2526+786 83414.99581600822 115631.3502496954 0
2527+787 84506.3315224094 -169884.4869130245 0
2528+788 -3305.146223387902 162507.6474039968 0
2529+789 1678.226961332883 -76003.63672550615 0
2530+790 115453.3226224822 -81837.99939099047 0
2531+791 -110123.9692885118 169523.8837028219 0
2532+792 27658.93878608116 177991.8910912205 0
2533+793 50716.46987810155 107908.6654149267 0
2534+794 27629.02823069963 154056.7679927311 0
2535+795 -3332.278620600624 -210576.7001229388 0
2536+796 112052.7554751535 127276.5033085937 0
2537+797 195417.4616278513 34830.91567768894 0
2538+798 -179359.1891299769 31257.21986944637 0
2539+799 188321.5866739612 -64441.89564752255 0
2540+800 -193405.9598903784 77862.98786131796 0
2541+801 -1882.94242031257 188896.1850113804 0
2542+802 213913.0070650186 -83183.47007317316 0
2543+803 177199.6731763104 44896.33223786369 0
2544+804 93357.45922963212 -115264.4919988783 0
2545+805 167279.9773544576 43444.20368096661 0
2546+806 59051.20819088232 -186275.6439439646 0
2547+807 187708.9979480432 42687.67750669023 0
2548+808 -10896.14710834559 129761.9018648237 0
2549+809 -186712.4565825921 97931.40451121239 0
2550+810 -131666.431458477 -3893.70082726115 0
2551+811 -134765.1742648652 45797.16172901709 0
2552+812 -56466.37717895881 -31261.1724019159 0
2553+813 -141452.6190155943 63210.36791860562 0
2554+814 -12646.80475583341 -11470.04426966292 0
2555+815 -153949.7109457458 50645.57295302546 0
2556+816 66667.89074767727 -179278.8458366467 0
2557+817 30261.44220517711 -44861.89027147651 0
2558+818 -216752.9553073326 38679.95882665784 0
2559+819 115222.3222992268 89383.61997297143 0
2560+820 7575.557490673564 191774.2224636836 0
2561+821 -179575.1977679828 10523.20098281867 0
2562+822 101125.90045426 -122583.5311643364 0
2563+823 108365.3554109932 116664.6886073245 0
2564+824 111851.1286001942 99000.29497015881 0
2565+825 -114321.0737184561 160208.6305961238 0
2566+826 -77682.22830265606 -173918.9781675472 0
2567+827 182488.5508536421 -72712.0709957259 0
2568+828 -106785.5446513481 142256.5458449214 0
2569+829 -6441.304589086797 -34133.81120488782 0
2570+830 -54148.49998070897 234736.1748650176 0
2571+831 -70980.84322876936 -184003.330846526 0
2572+832 -58445.22157642669 224976.9178119149 0
2573+833 -132633.1632073157 -16422.14676254292 0
2574+834 22950.20653866763 -228346.6499989037 0
2575+835 -64947.36408541355 166089.4231697869 0
2576+836 111138.3470190766 80787.24224319006 0
2577+837 149645.6068417613 -74181.47606794735 0
2578+838 -23343.33739891593 -219135.9804766667 0
2579+839 222119.3167876141 -28770.03361625772 0
2580+840 -52030.31692134897 216797.7240391165 0
2581+841 -150614.8883763689 -65684.94534641986 0
2582+842 16239.67958546635 119081.0544474651 0
2583+843 34758.68080201249 186609.7910710736 0
2584+844 -85888.84769683045 -37532.84421665714 0
2585+845 -164597.9835161103 -92698.03175447356 0
2586+846 93461.20410186077 -132518.4702385378 0
2587+847 -156105.9074709695 -36604.99403686696 0
2588+848 9779.349815612428 -95856.30182350833 0
2589+849 125814.6629590349 -77355.15275545041 0
2590+850 18687.09668280188 -63967.69579692131 0
2591+851 -149058.6339567666 173986.6441468976 0
2592+852 -95663.13802684314 -32401.1995730531 0
2593+853 142027.9108646761 -163434.5264172074 0
2594+854 -162758.9611731688 26971.53358377164 0
2595+855 -10736.95744226117 -91119.34207838339 0
2596+856 164308.13816587 -127198.3605228977 0
2597+857 -86674.23608567998 -165505.523176313 0
2598+858 -17236.8870168318 -56431.14785161679 0
2599+859 -215573.7346605128 48571.32346720167 0
2600+860 49810.45743155119 -191697.3828484181 0
2601+861 101905.3228100458 -80962.52098300181 0
2602+862 105785.9226268121 173543.7205404838 0
2603+863 40825.24000650326 -198575.7787864786 0
2604+864 -30046.88319564097 132361.1538972485 0
2605+865 208941.2609018968 5896.290529950064 0
2606+866 -62521.28202831014 192362.9433871756 0
2607+867 -65763.85962566907 -191663.413525244 0
2608+868 157986.0882696571 -69537.2788477647 0
2609+869 -189585.6943175111 55355.60613391855 0
2610+870 44180.48098892142 -174934.2279158694 0
2611+871 -24979.56024621347 200518.6251383939 0
2612+872 -166693.0193008186 122791.9424329711 0
2613+873 -13057.74846690941 145952.0372184142 0
2614+874 -219869.8590893699 -33067.53518550392 0
2615+875 50662.03511368552 166817.7255458965 0
2616+876 -192690.6946072604 -36234.75493061385 0
2617+877 -158269.9192349763 157927.8449424169 0
2618+878 72875.72870133299 149695.8762667869 0
2619+879 -143010.9047024722 150051.7794692363 0
2620+880 -197584.8071854726 23433.46896454046 0
2621+881 119188.5645321005 161328.2995450169 0
2622+882 -69368.43605514466 -43565.19140944615 0
2623+883 -42520.43434319325 -212456.8248099394 0
2624+884 -106713.4094147204 180571.6829402048 0
2625+885 -143323.3554661979 -124807.4751504534 0
2626+886 -77211.37946731687 -160997.7467301571 0
2627+887 -194273.4366328509 118989.1626906466 0
2628+888 -31719.02981384243 216202.0139871372 0
2629+889 -196956.0913278474 100366.3528164446 0
2630+890 112299.6546359286 166947.1652670628 0
2631+891 -98519.64511498687 -169100.7806501179 0
2632+892 -217450.3313965963 75012.07879019703 0
2633+893 128446.1103870899 -99709.02475837804 0
2634+894 120728.0424051201 -176666.2385588021 0
2635+895 -145098.096952393 131035.5289410229 0
2636+896 -132125.441626522 148988.4268230284 0
2637+897 -212875.0334226651 -24415.59409803288 0
2638+898 -58137.650126042 -86827.75070115701 0
2639+899 -17659.26492356216 194278.8227117351 0
2640+900 -145292.2546681874 -135015.1011307347 0
2641+901 -182055.1591644334 72497.44622784553 0
2642+902 136973.9183920714 93624.4101149693 0
2643+903 101892.9110420843 -140786.7281010707 0
2644+904 -160028.7890871048 133140.9680367476 0
2645+905 18507.43655971761 103675.7410544556 0
2646+906 -22614.67018343374 -28811.84879025381 0
2647+907 130965.9026642938 100796.7378109469 0
2648+908 118578.9037728227 137644.9066829679 0
2649+909 196497.0962554342 7665.910558189295 0
2650+910 -53257.26214069658 -48034.60374776134 0
2651+911 40850.41704106048 176074.8345359033 0
2652+912 -159191.0909965511 -26512.11864472426 0
2653+913 3225.483903094735 -227174.0495759317 0
2654+914 55514.01524907729 -212802.9598060284 0
2655+915 42227.66099562858 91214.19389114995 0
2656+916 -160846.3496535101 -118202.9242801882 0
2657+917 -72001.74346808503 200889.0832095742 0
2658+918 128726.7675364054 -178406.77150687 0
2659+919 -169994.2770294022 -99895.55679628121 0
2660+920 -155728.4764874453 -110567.6642628744 0
2661+921 112186.7153327389 194719.7411454887 0
2662+922 -175675.659728135 153273.3260005171 0
2663+923 148172.7434564878 51051.09892789974 0
2664+924 -193662.9403129382 -27349.65306878027 0
2665+925 136686.4867377692 66857.43444217958 0
2666+926 -95395.9785039976 -158041.4108644637 0
2667+927 -13243.59737718975 -215361.6185748004 0
2668+928 -177595.3927784358 20267.71537356183 0
2669+929 144659.5702678704 -141806.8755021078 0
2670+930 71124.7757412566 -201015.8780034596 0
2671+931 63649.29174371948 -206938.8601000451 0
2672+932 129714.9533086739 61673.3509515904 0
2673+933 93549.364891961 -166661.2165146559 0
2674+934 -179648.0671205254 50501.23138888749 0
2675+935 77254.21397856942 172474.5088841359 0
2676+936 69926.95500203971 166634.7669850879 0
2677+937 126897.5134802507 157197.009201844 0
2678+938 61538.00551197795 -162534.6605816809 0
2679+939 -166829.7078338896 -83923.42037537227 0
2680+940 37393.88927090638 -216999.4336462617 0
2681+941 61797.7792352348 183089.1177764029 0
2682+942 -180829.4692574474 60827.81975127614 0
2683+943 55555.01570770706 135426.5129502128 0
2684+944 -161619.9011266178 111374.5872166648 0
2685+945 -226828.9163891651 34045.89051547281 0
2686+946 114232.6122793034 -112355.5266683627 0
2687+947 -206731.2313851401 102902.1457304642 0
2688+948 156995.3520446737 99773.9951911479 0
2689+949 -150262.9724625979 139802.9404009958 0
2690+950 -80995.79200903118 -185011.6500442049 0
2691+951 -175568.7090034983 93388.93365023365 0
2692+952 -67859.79073041101 -88381.51482105457 0
2693+953 -106288.2638519987 -38345.42078035738 0
2694+954 -233583.5802323742 -21690.81193847759 0
2695+955 -166301.8387878432 149748.5188942422 0
2696+956 47601.97105423211 -220286.5491067589 0
2697+957 -32539.73177992794 -214233.2980552163 0
2698+958 -200454.9364316829 62311.90361523345 0
2699+959 -212808.6582324232 84575.84456956785 0
2700+960 96087.17265310598 170850.6248554185 0
2701+961 125673.5819968502 183462.2438121165 0
2702+962 -699.9493810304015 210620.2127872111 0
2703+963 -177649.8043658631 -15231.20655069393 0
2704+964 86651.99597482097 170531.7504174932 0
2705+965 -120602.7399451962 167309.9003700842 0
2706+966 -137122.1555940771 158733.764516789 0
2707+967 -188744.0718380772 127100.4133441067 0
2708+968 -144898.551205328 -36872.74736083902 0
2709+969 73671.80865677915 193093.2606083532 0
2710+970 91815.67840638354 159326.8901068736 0
2711+971 -154122.5568782445 -140911.0155004826 0
2712+972 -168561.6560940563 -75439.2409615857 0
2713+973 212770.027202344 25167.81699052595 0
2714+974 51749.82815272923 -202313.578784662 0
2715+975 148940.6910098713 -117654.1537012068 0
2716+976 -150168.3974012455 -118637.6836097238 0
2717+977 132670.2464804706 -159698.168941608 0
2718+978 164151.5043117563 62248.33061462707 0
2719+979 143130.3481837892 87445.84382901079 0
2720+980 99766.80787175598 -97548.49907423633 0
2721+981 -107592.7211681949 -141407.3292390408 0
2722+982 171638.3392248149 -119948.4483926183 0
2723+983 129582.3722240699 136238.1336139596 0
2724+984 170966.6406505615 -68894.00012533575 0
2725+985 140584.7965690976 -152014.4111016477 0
2726+986 162350.1614343696 92923.44790357241 0
2727+987 118605.7767746918 117652.830190858 0
2728+988 59689.2097560234 101503.3060789754 0
2729+989 -90023.26345741151 189290.1121625662 0
2730+990 117930.1658096551 188978.4665283452 0
2731+991 -102302.4207055267 -150300.1731443738 0
2732+992 30295.29346797332 -66894.29790597362 0
2733+993 -183190.8328719858 133862.7252684605 0
2734+994 10679.98631691137 -32096.0102541486 0
2735+995 82975.16877778526 -159987.5987760497 0
2736+996 120693.7343778682 80779.3245454867 0
2737+997 119817.2419028985 98712.1430635616 0
2738+998 110121.2892044936 -101193.9966270608 0
2739+999 -150033.8460471171 -74867.42320473334 0
2740+1000 136686.1210255853 -181682.3606125263 0
2741+1001 78108.31832686813 -195464.168197455 0
2742+1002 144565.705926952 61831.12533922739 0
2743+1003 113689.5869707402 -179028.2018295452 0
2744+1004 112550.53599943 -125080.17705474 0
2745+1005 -173447.5272499691 114599.9517893322 0
2746+1006 170727.0754172416 53445.50509641814 0
2747+1007 -167933.414854448 -16663.13477434327 0
2748+1008 190998.4015233721 -80504.47400193616 0
2749+1009 -160455.0626978199 61218.30158998099 0
2750+1010 -30946.02553196351 -225751.1438188004 0
2751+1011 -131775.8269068194 -78411.82663516082 0
2752+1012 203361.5886831191 28849.53437790486 0
2753+1013 15294.12354049742 193855.321643102 0
2754+1014 -131511.4509073058 167817.3863830261 0
2755+1015 217735.9735850305 4788.378418594669 0
2756+1016 -203536.176337805 119711.6939183442 0
2757+1017 194495.9953755585 -139152.8123881239 0
2758+1018 -30115.41486339884 224805.5398643534 0
2759+1019 -187916.5581982807 -83088.48267484993 0
2760+1020 135535.4982961973 153585.1558300954 0
2761+1021 128927.3930147962 118143.4496413348 0
2762+1022 102496.249344059 -164765.9008974747 0
2763+1023 126471.9467902461 -88400.18427525002 0
2764+1024 130646.2464976349 -126414.6108525648 0
2765+1025 -154487.4676476641 150815.77612234 0
2766+1026 161119.7872089743 -143767.258551148 0
2767+1027 -144775.8636614906 -96106.32259481722 0
2768+1028 149078.9243856797 82054.25200365408 0
2769+1029 -178665.8250013832 106253.5729729182 0
2770+1030 165210.2331412902 -104668.5802633701 0
2771+1031 -20138.26340524489 -68476.56120311274 0
2772+1032 156204.9363231972 -176218.2715244552 0
2773+1033 -183892.1834574405 116569.6125841523 0
2774+1034 52711.6986107025 178484.7015703938 0
2775+1035 167039.3012098658 -86428.06935288642 0
2776+1036 153509.6420671172 61409.30603198488 0
2777+1037 153482.8005479437 -141088.4792656831 0
2778+1038 -239859.5073945876 -31090.17570716254 0
2779+1039 224712.6442218527 -10351.9499919721 0
2780+1040 -132088.110629729 -61339.32653911214 0
2781+1041 177986.4248018992 102374.960720128 0
2782+1042 94974.00496642916 188049.6488507907 0
2783+1043 -14621.29336484216 -225191.9021708218 0
2784+1044 152361.7875573759 -105363.8242127441 0
2785+1045 -140529.5055488478 188247.5057511106 0
2786+1046 173454.6478797049 -79438.36514349074 0
2787+1047 -182577.3365653377 -3861.493540423774 0
2788+1048 -203199.2505199822 -21857.1256518515 0
2789+1049 154979.2516059222 -125267.0504978915 0
2790+1050 -194407.8582130821 -18172.71757333642 0
2791+1051 554.0298613069182 -49525.70323258531 0
2792+1052 -129101.6828639558 -140599.0471027642 0
2793+1053 109907.0967719143 154331.8649964077 0
2794+1054 -190911.8455516673 137674.2636282386 0
2795+1055 -126826.3558617912 176695.7566921744 0
2796+1056 158148.1845057446 109393.2949792675 0
2797+1057 68584.07641353278 -189513.0091020612 0
2798+1058 89663.03748725275 -205841.892611967 0
2799+1059 -141442.8285999129 170385.3975603346 0
2800+1060 -112802.3810141398 -151669.8232693426 0
2801+1061 -210585.6984180531 -14821.65086046846 0
2802+1062 141595.4678447786 -70590.02457766452 0
2803+1063 124324.172763026 108753.5871756968 0
2804+1064 -160153.2061616695 -101863.4850805817 0
2805+1065 106097.7863216226 200413.1214379527 0
2806+1066 -89202.77938049023 -189046.4713474897 0
2807+1067 -96383.44625968153 -98902.86905159781 0
2808+1068 107270.482979015 -90228.74448611228 0
2809+1069 215377.3272642847 13934.54186122416 0
2810+1070 -196284.5303120592 36353.96935363283 0
2811+1071 171902.9852100674 92695.74178669519 0
2812+1072 210822.1334673972 34572.1515213149 0
2813+1073 -165852.077865118 -34443.6232468903 0
2814+1074 127445.1802633266 146302.2330205956 0
2815+1075 -193584.7555570371 3406.354525627602 0
2816+1076 -127774.9683704639 -149427.5955809566 0
2817+1077 -135137.714768386 -110921.6575019931 0
2818+1078 -199453.6145896558 109862.4281043079 0
2819+1079 174394.2643642693 -89469.39172134269 0
2820+1080 -90033.39397386956 -146765.5844795377 0
2821+1081 -70712.82324874295 -97898.17207208659 0
2822+1082 131863.8082348653 200116.4972658596 0
2823+1083 -7755.977468532117 207388.4996039847 0
2824+1084 -214541.4636075752 96405.99476458575 0
2825+1085 73374.29501061175 -210485.8416693544 0
2826+1086 15842.78679894171 183931.8087192708 0
2827+1087 -42279.74015156252 -68562.73894447992 0
2828+1088 138222.6633183622 135131.7862549849 0
2829+1089 -154618.5932077469 -57589.21462351987 0
2830+1090 30647.91264597158 -77220.72449302732 0
2831+1091 -5569.869993682471 -232935.8263336908 0
2832+1092 -170542.8329667603 -59020.58527941256 0
2833+1093 -223477.496538599 90699.17392919399 0
2834+1094 -201729.6031730366 -42246.96157669117 0
2835+1095 133473.7286972732 127003.2096670516 0
2836+1096 43878.92113130128 -230315.5492491833 0
2837+1097 131727.3315089837 -116098.0665617904 0
2838+1098 -63626.68492307772 -78111.74382580812 0
2839+1099 99832.34705149448 205942.190525402 0
2840+1100 -215676.9701594272 107312.8714888789 0
2841+1101 -162262.852750735 -54370.89097740102 0
2842+1102 140641.7152848693 103241.2244626482 0
2843+1103 61625.40783619926 203684.6754073763 0
2844+1104 -118477.8643550147 -57884.69719155168 0
2845+1105 142579.8660116491 -173442.3396182799 0
2846+1106 134798.6172435659 -142637.474377905 0
2847+1107 -133838.5146295243 -86150.01022002594 0
2848+1108 -184171.0652047938 -30477.42325922341 0
2849+1109 -85181.91119155497 -91386.62133299733 0
2850+1110 -175039.0575426201 -34319.47658075429 0
2851+1111 234824.610741697 9499.440200146008 0
2852+1112 143759.1622832384 111912.3434087175 0
2853+1113 -80287.04868568794 -72680.47812581126 0
2854+1114 -54195.43765673733 -201235.3959722118 0
2855+1115 -107648.5069622212 -122998.0878278137 0
2856+1116 -148639.0671597647 -157121.5892244488 0
2857+1117 -152009.9008232519 -47302.54294763658 0
2858+1118 100167.014784002 181117.0248553218 0
2859+1119 176088.4744479779 -139673.0529411345 0
2860+1120 -160032.3017438587 -70819.63740362361 0
2861+1121 -98080.46544702203 222231.6314409568 0
2862+1122 -142166.8082015441 -152720.6004326339 0
2863+1123 106293.6954119336 -182142.9247729547 0
2864+1124 -103079.7052257477 -116788.8446152232 0
2865+1125 -12483.4789686866 222595.9059084277 0
2866+1126 -141352.2296431068 -116570.9481279283 0
2867+1127 -149084.2993584938 -83313.6593588586 0
2868+1128 138384.5707622572 119108.0372389527 0
2869+1129 131642.9782336316 83372.60567220482 0
2870+1130 -16051.72875840973 204018.0640108733 0
2871+1131 47990.30409893549 194452.7721279474 0
2872+1132 158412.49830147 -134624.6705260045 0
2873+1133 -140617.4720225823 -61082.06790279878 0
2874+1134 -45761.35010755355 -76741.63706116129 0
2875+1135 -99378.4288504787 -131354.1634535614 0
2876+1136 -208705.6616121418 125679.6629914791 0
2877+1137 -24653.31046791856 -240318.6571066547 0
2878+1138 -140215.0477545671 -103270.8963853064 0
2879+1139 -196943.2363575278 13199.07815524223 0
2880+1140 -75486.36191740216 -91662.07263028729 0
2881+1141 85786.37496034931 -190972.3496047298 0
2882+1142 69210.90170231226 186316.4133746451 0
2883+1143 84743.11839837309 -180215.901151432 0
2884+1144 -177224.0170274679 -80521.94960483474 0
2885+1145 -150045.7990611414 -103014.2846276416 0
2886+1146 -223554.5884521906 -22530.0725612667 0
2887+1147 -144278.1657249286 -144204.365387975 0
2888+1148 110703.3236639441 -164465.9268286575 0
2889+1149 170374.4889851536 79100.90178718341 0
2890+1150 222261.8188930049 21225.67467778712 0
2891+1151 36100.98564918186 -238181.0330951175 0
2892+1152 115159.0328204227 178412.2225773416 0
2893+1153 -426.9761907328363 199473.6648144666 0
2894+1154 123121.7810673265 -196116.2976862089 0
2895+1155 224515.734204336 -422.6953619828907 0
2896+1156 -176466.9249836903 -24610.74584988717 0
2897+1157 -64590.07907809047 232212.8075501537 0
2898+1158 -136497.812028818 -53646.70380188709 0
2899+1159 199089.0864024843 44460.21158567534 0
2900+1160 180666.8632112666 -134079.5979216586 0
2901+1161 3495.811746706164 -239201.949005945 0
2902+1162 155156.8826005862 77346.8861288691 0
2903+1163 -101345.4619978723 -109207.1847354905 0
2904+1164 -85567.89061701631 -103724.1030751134 0
2905+1165 83213.53063668901 179708.2706721989 0
2906+1166 184405.6842053455 -92119.66094671446 0
2907+1167 -143509.8366195948 179433.7221619974 0
2908+1168 147767.0940457566 -180711.3846758117 0
2909+1169 149845.5462553452 105684.5137249212 0
2910+1170 68810.44232127767 176851.7552649553 0
2911+1171 146055.6403060803 -126502.068762607 0
2912+1172 -120528.0801449928 185120.1855620662 0
2913+1173 162873.4092486955 77842.17007945001 0
2914+1174 -62519.58259160376 -48320.24762955146 0
2915+1175 -169427.0862620349 -67268.69772011075 0
2916+1176 130340.5959691456 -188417.5415902451 0
2917+1177 -15041.59589665807 -235917.3550201746 0
2918+1178 125487.3934523751 -169217.7669742249 0
2919+1179 166815.1158711504 85368.78304935298 0
2920+1180 -178915.6272875426 -158040.9336166149 0
2921+1181 -71370.8258476112 -72724.31344160263 0
2922+1182 191925.5911321636 -145589.5704252663 0
2923+1183 -169869.4522038188 -168868.4952001741 0
2924+1184 -130104.9716667609 -70405.90472119157 0
2925+1185 -94978.90134044211 -116349.0498395622 0
2926+1186 -186806.0035761042 -14175.25484637099 0
2927+1187 64113.82030450577 -230648.387673464 0
2928+1188 -204865.834154993 -4803.668432041818 0
2929+1189 -37955.74192535761 229645.1884955422 0
2930+1190 146526.6118598036 134797.0765796253 0
2931+1191 -83089.04947800409 -227641.8489987822 0
2932+1192 60164.98351450686 -222270.6067813922 0
2933+1193 133285.2518937692 -107127.7931577238 0
2934+1194 142089.9313561085 150894.3492569666 0
2935+1195 108557.9913315363 208617.5462634048 0
2936+1196 -97137.94572537369 -186680.7346035597 0
2937+1197 63584.16811321799 193739.299086694 0
2938+1198 146726.0051716474 120008.5514922918 0
2939+1199 -154425.4451580342 -172419.9128169762 0
2940+1200 -206204.8021485187 -126977.3690214394 0
2941+1201 54434.6769713239 198504.9794813053 0
2942+1202 134524.435427724 -92634.56604728664 0
2943+1203 -124395.3468160285 -121308.4903414304 0
2944+1204 -156796.796196657 -87592.03480644093 0
2945+1205 111527.115233605 -187083.0129075698 0
2946+1206 209996.2281933362 45195.69293278926 0
2947+1207 -176011.6002674014 -108476.2158968495 0
2948+1208 6916.86507901986 212951.2848389879 0
2949+1209 -105101.6579496701 207599.4203572391 0
2950+1210 98557.74670399813 -184906.1769831569 0
2951+1211 -96800.43267178602 -50625.07928353336 0
2952+1212 -203412.1570761014 6368.933233172575 0
2953+1213 91379.07525115121 -185866.9682870865 0
2954+1214 180876.159731092 91664.59461976054 0
2955+1215 114200.8813959145 -138276.1327523754 0
2956+1216 170536.3794150814 -145784.0284136454 0
2957+1217 103305.7194112093 191002.0992932867 0
2958+1218 -175746.7308679421 141533.5184916198 0
2959+1219 -108265.2304062511 -68592.4543232227 0
2960+1220 -99875.75007076577 191246.3735781745 0
2961+1221 -227754.2568838017 -12241.367931605 0
2962+1222 171739.0666248066 110920.0183480651 0
2963+1223 -108058.2030846709 -85606.94508273435 0
2964+1224 95092.25523940791 211037.9659009616 0
2965+1225 -116679.4541892413 -108977.3006894716 0
2966+1226 -126752.4119304569 -94518.96099339391 0
2967+1227 -187030.5437353817 -119070.680497525 0
2968+1228 133698.9860667959 -199480.6389017433 0
2969+1229 22474.7604890049 197181.9988567137 0
2970+1230 -133435.9111994 -121141.8020116234 0
2971+1231 -22137.63051934701 219886.9285615359 0
2972+1232 122831.9198342969 -131549.9526209622 0
2973+1233 136138.2570444314 189148.5351703298 0
2974+1234 159254.2437433284 -93125.14223029224 0
2975+1235 70798.56628321603 203619.9779952534 0
2976+1236 -163790.1975962677 -125009.7337618422 0
2977+1237 -141177.3447642038 -160113.7454038534 0
2978+1238 149680.1786981561 172736.5036705451 0
2979+1239 121021.8743976442 199248.4748957994 0
2980+1240 173094.3620224289 -131087.7517449917 0
2981+1241 19271.19667917526 -236722.2924861054 0
2982+1242 81663.53281291762 188732.6854860887 0
2983+1243 -169597.691782887 -117706.7651098225 0
2984+1244 -238988.1013818613 28401.04392653084 0
2985+1245 118888.1381659979 -103436.5162169441 0
2986+1246 92774.74484587256 -213131.4183730377 0
2987+1247 152822.2494569451 90659.25336895786 0
2988+1248 -34663.34437417756 -241405.0368913339 0
2989+1249 -163704.7497328935 -133628.3346527073 0
2990+1250 -155977.8500368736 -182311.168576853 0
2991+1251 -124392.7249013813 -63553.24418338289 0
2992+1252 -135678.3984309177 -147122.4500804257 0
2993+1253 119864.996784931 -159733.8899778557 0
2994+1254 54279.96481408612 189175.1277894078 0
2995+1255 -191169.4863796443 -146287.3838812336 0
2996+1256 -171724.6847672648 132533.6224180053 0
2997+1257 -212257.3307918837 117622.7775661888 0
2998+1258 240457.1995238626 -32270.28449137539 0
2999+1259 150654.1464563691 127774.5051254995 0
3000+1260 130922.9420976223 -135242.0868298433 0
3001+1261 -56430.10239159135 -68799.98443913418 0
3002+1262 174419.0267414203 -99360.26796225931 0
3003+1263 149754.8864331899 151686.9426209612 0
3004+1264 84241.73155680462 -212396.2369911762 0
3005+1265 -185393.4275557786 -93763.04124516596 0
3006+1266 85759.34914002499 -198569.8342895216 0
3007+1267 159261.637372929 -80623.08417417888 0
3008+1268 -107729.2464653907 -161042.3775349597 0
3009+1269 -136191.8193772317 -132232.0486765117 0
3010+1270 -213108.104975593 -118462.6293033293 0
3011+1271 -228564.2995000933 13519.98036909556 0
3012+1272 116306.3152737379 -170305.4172471869 0
3013+1273 -91127.76064712345 -43627.72093807062 0
3014+1274 -99262.55759449945 -80999.91630362204 0
3015+1275 -206799.9951229166 23706.71775096551 0
3016+1276 -122638.5413302685 -42667.79813477333 0
3017+1277 140767.6094995596 -111712.8616646071 0
3018+1278 206375.5004556807 -123723.4206385355 0
3019+1279 108291.0907500674 216321.1603136429 0
3020+1280 -15488.51881596713 213527.4159674899 0
3021+1281 180659.366563527 -116951.6772791569 0
3022+1282 39347.50706842287 195642.5872798223 0
3023+1283 52653.45474619357 209296.5167424527 0
3024+1284 -149273.7919061383 -90126.34688892667 0
3025+1285 -193777.2608099132 -8607.080040062358 0
3026+1286 87543.75248721968 214352.8007284385 0
3027+1287 239551.8444197999 25138.29959082396 0
3028+1288 88011.08457606002 185844.9575665144 0
3029+1289 180175.0893096784 -146980.7858089986 0
3030+1290 158388.7811314368 70478.61010831279 0
3031+1291 157255.5910234618 119430.8668502962 0
3032+1292 30646.39534186335 201386.357558357 0
3033+1293 -155511.9918149978 182037.6141345626 0
3034+1294 129988.6805598959 167746.942901829 0
3035+1295 139542.325628099 -121851.1979066071 0
3036+1296 -15394.68768187914 -243508.3353259199 0
3037+1297 219180.3848893476 38004.97713003864 0
3038+1298 100160.3154455169 -174801.535285789 0
3039+1299 -228852.2155192454 -81934.98197400887 0
3040+1300 233894.0469693896 51669.74721332746 0
3041+1301 -93265.40162546693 -214006.1779068513 0
3042+1302 72267.80013420548 -224618.2899017581 0
3043+1303 80153.07621834691 198701.4494434667 0
3044+1304 -71889.52114189365 -200305.2404980132 0
3045+1305 -160687.6149515523 -168836.9416864129 0
3046+1306 184484.3246394409 -110647.1157959083 0
3047+1307 -155008.024045086 -162962.3858880006 0
3048+1308 -178859.5339470621 -63745.66184458975 0
3049+1309 204399.587671425 126547.9369537668 0
3050+1310 -190705.1948719985 -135382.3220298259 0
3051+1311 -191936.4466147527 147781.2475473136 0
3052+1312 174979.0564290929 164596.3871106242 0
3053+1313 154572.9231836475 134731.8756624879 0
3054+1314 194776.6997065747 108043.9581047598 0
3055+1315 157138.7447524739 -184191.4058206214 0
3056+1316 175462.8467630178 -109733.9516256348 0
3057+1317 -115435.3610132053 -82511.78161586776 0
3058+1318 -146624.9466123014 -178253.4847035329 0
3059+1319 143897.8358695298 142459.7638072417 0
3060+1320 -100463.6257170005 -212792.8395677296 0
3061+1321 -109277.7850643777 -102899.9792286594 0
3062+1322 -202283.710871603 -60118.43644966822 0
3063+1323 -198853.0346996154 -133888.4444162882 0
3064+1324 168979.8450288423 155392.6282229437 0
3065+1325 -82976.72004253168 -193127.7333227821 0
3066+1326 114008.9637283492 -194048.3805834881 0
3067+1327 -18835.44733320712 229760.2362579072 0
3068+1328 30263.15130523958 193772.6435309807 0
3069+1329 167985.5662478427 -160515.4134936545 0
3070+1330 225511.4752835021 10295.60329779322 0
3071+1331 143726.0466867872 161559.2915362007 0
3072+1332 -189617.2300464824 -44758.22772530988 0
3073+1333 -113637.2485059449 182974.7259017955 0
3074+1334 233585.3036811493 -6137.008746087672 0
3075+1335 -48212.81372274329 -219903.9941007147 0
3076+1336 -84578.72710912618 206239.595674519 0
3077+1337 -114089.7041873746 -74311.92615559514 0
3078+1338 173504.4986472501 147071.5038544042 0
3079+1339 58784.90399718819 217586.6611187255 0
3080+1340 -116463.1397449486 -66741.04486906152 0
3081+1341 97993.58433063012 219124.6704621469 0
3082+1342 -83746.79164299337 -217385.4598328453 0
3083+1343 -112226.6138197335 -193146.865857439 0
3084+1344 52474.41881260421 -235845.7988389732 0
3085+1345 231899.2405764436 18544.38806085605 0
3086+1346 107233.0954617259 -200770.8759097464 0
3087+1347 228507.4787268909 29867.59446047532 0
3088+1348 200204.3811689111 -106793.9585506426 0
3089+1349 125023.3556054152 -140991.1235348498 0
3090+1350 186175.8976690908 107205.8516907449 0
3091+1351 116982.2130241974 210069.3119981686 0
3092+1352 -179389.732703988 -44915.82122929456 0
3093+1353 -178716.4566183778 -118740.1302559618 0
3094+1354 -236572.3930556233 40910.83456233911 0
3095+1355 -122385.8588163103 -74480.112020214 0
3096+1356 -171788.7728346405 -158859.1490563561 0
3097+1357 -88934.85744536467 -62021.57972669636 0
3098+1358 148224.3845347024 71196.82169684541 0
3099+1359 -29012.0710821683 233414.354538226 0
3100+1360 -131003.1500744507 -102540.7490855812 0
3101+1361 203598.7054680136 73181.83186060295 0
3102+1362 15169.36139751513 204600.9990058482 0
3103+1363 -141044.9702948655 -80389.51484043461 0
3104+1364 -149324.7909502686 190953.6377175044 0
3105+1365 -602.2606421308117 220911.2498356341 0
3106+1366 -87044.29035427215 -207413.2954215223 0
3107+1367 190939.4365791226 87370.67362576516 0
3108+1368 -157336.3538226585 -152226.6560932115 0
3109+1369 -216946.5428900755 15856.7904727994 0
3110+1370 -213437.2739666846 -97884.6045791435 0
3111+1371 -225786.7100636066 -685.735830989731 0
3112+1372 83086.91024963684 -228189.1528251647 0
3113+1373 -187021.7405958103 -51474.27369883806 0
3114+1374 183886.4107800368 82675.9557676909 0
3115+1375 159062.9430749921 172525.7780426193 0
3116+1376 79785.73998161367 209051.0811992121 0
3117+1377 -115504.2901290805 -92222.50818155111 0
3118+1378 192402.8410918781 76580.92748633034 0
3119+1379 -209949.0257772341 -63935.89866334302 0
3120+1380 116806.301730353 -203105.6228519939 0
3121+1381 92963.09476114044 20510.01282746776 0
3122+1382 105222.4032939885 20608.82969189737 0
3123+1383 271.404952578537 -138959.6927374035 0
3124+1384 34851.42345601279 -104886.7497954925 0
3125+1385 72653.72789697074 -66212.37392662704 0
3126+1386 84686.66255592411 -8823.190111306825 0
3127+1387 86686.74947420349 51985.09462052269 0
3128+1388 97687.68269648527 54935.64269949668 0
3129+1389 81695.33340229269 40528.87219069753 0
3130+1390 76944.24233676349 -37128.2545961982 0
3131+1391 43324.99429047195 -102075.0023555029 0
3132+1392 84417.79885129642 27703.64698159886 0
3133+1393 54721.94048076472 -133762.6926950934 0
3134+1394 9587.622021567791 -133972.687064838 0
3135+1395 88070.77377130187 -39242.80256153645 0
3136+1396 -41469.97060395407 -153139.8120753601 0
3137+1397 -16424.65537617961 -174695.0913131185 0
3138+1398 46218.11110517011 -136691.9241127938 0
3139+1399 -22043.96725335947 -145478.5700754783 0
3140+1400 72826.20810690967 -99449.15844822326 0
3141+1401 98685.10520299088 -35778.31433926049 0
3142+1402 73832.12976356155 -7013.391163319987 0
3143+1403 105039.6619129817 -5666.48799759742 0
3144+1404 111187.743085347 31222.60190101586 0
3145+1405 94986.45718411467 -9860.722518423059 0
3146+1406 20032.81930083136 -162215.3904231489 0
3147+1407 519.6678448908025 -189050.4571269269 0
3148+1408 83015.03712698157 -62803.49381639454 0
3149+1409 116588.8517650062 -6974.024579347374 0
3150+1410 2544.770443039372 -166263.2762972051 0
3151+1411 -32640.92141770664 -149329.2982775923 0
3152+1412 -20677.12188443224 -123176.2149769048 0
3153+1413 108188.3559317831 -30625.31741871472 0
3154+1414 -10512.59854692115 -142061.9395637028 0
3155+1415 -59010.30179385791 -137226.620026289 0
3156+1416 -26488.70762393014 -180178.4100108793 0
3157+1417 120077.5073802947 -29242.23017149377 0
3158+1418 169239.5450295993 -28838.33827835645 0
3159+1419 112380.8137823437 43141.88503367525 0
3160+1420 9554.8104378105 -186124.0874012787 0
3161+1421 17870.42514396353 -129629.2488353042 0
3162+1422 103087.2894068344 -55174.19128600549 0
3163+1423 12876.44168301777 -166105.0032137194 0
3164+1424 93207.72195212641 -58815.01763703864 0
3165+1425 84264.08101296371 14839.61442541024 0
3166+1426 130350.7238505303 -28081.78406337881 0
3167+1427 61424.4274502697 -113237.766838273 0
3168+1428 138741.6752906716 -5485.019665703979 0
3169+1429 33123.07461393865 -115303.2987381274 0
3170+1430 128405.2791660912 -5704.514759450387 0
3171+1431 22721.16728698086 -154413.0134726955 0
3172+1432 159762.5738357945 -26932.84992695283 0
3173+1433 68705.56094534816 -16296.19697162387 0
3174+1434 161075.9712464223 -4941.608501546616 0
3175+1435 -30162.10880791233 -126981.92205265 0
3176+1436 60661.45498732103 -46902.21432454829 0
3177+1437 62669.62251941769 -69897.94250007941 0
3178+1438 -9652.4931883932 -163251.6223991378 0
3179+1439 88257.74928819473 -18591.63450446503 0
3180+1440 31975.03555922001 -147372.4178187276 0
3181+1441 4871.14100660073 -154442.5444661195 0
3182+1442 171779.2548335361 -333.9247373551673 0
3183+1443 113330.197358524 -52479.76481774569 0
3184+1444 77889.15203637637 -47179.42329388915 0
3185+1445 25260.5083800516 -123400.364803882 0
3186+1446 64934.02614365928 -37490.34155100465 0
3187+1447 115935.1339642438 15330.66496861288 0
3188+1448 -39629.26902409496 -130499.8931064749 0
3189+1449 -68530.29004246944 -141906.3603389757 0
3190+1450 140194.1364677047 -27168.79828136398 0
3191+1451 51267.85328775437 -109551.4431976171 0
3192+1452 39042.67481870289 -140853.7671262053 0
3193+1453 65337.4146344806 -92799.18015961252 0
3194+1454 148963.7427454234 -5141.933774098809 0
3195+1455 150053.4013276557 -26693.65695714735 0
3196+1456 -95467.93492377963 -9391.398931766091 0
3197+1457 157.5544388376601 76860.39921332859 0
3198+1458 -2440.270371841355 -116214.4543941643 0
3199+1459 -2231.900042788762 67582.25127539469 0
3200+1460 20474.2293424999 60579.42215085498 0
3201+1461 -20650.42642476603 -163577.5243701327 0
3202+1462 128164.0450901444 15758.69180545151 0
3203+1463 123659.9869859104 -50530.71104829712 0
3204+1464 81436.24650225478 -72239.80747418586 0
3205+1465 -22515.20580570175 177878.137382451 0
3206+1466 -109037.0449471927 7402.142066485824 0
3207+1467 -19945.24190759154 -102250.2060645014 0
3208+1468 -50312.93022712095 -156154.0358886749 0
3209+1469 177589.0994704337 20216.50806702833 0
3210+1470 19766.33451619647 -182608.0216123352 0
3211+1471 73009.13428642348 34138.6609619071 0
3212+1472 55336.16196843555 -122854.9933482784 0
3213+1473 -91647.89548877494 -1511.449191995906 0
3214+1474 142486.7517756403 -47626.80969815635 0
3215+1475 -11299.74541706639 -119648.1074367995 0
3216+1476 -35930.71721781854 -174961.7856766818 0
3217+1477 -12936.98002152865 94018.1846224297 0
3218+1478 100105.0052802522 -65255.84325046258 0
3219+1479 -18554.77543091154 -93902.39308228927 0
3220+1480 13405.91012985268 54561.27111306947 0
3221+1481 -16049.3101311816 84364.95715619462 0
3222+1482 -58966.7046666935 -126861.2070544573 0
3223+1483 37475.34401450346 -128347.1521645278 0
3224+1484 175553.659355296 -22325.15247376659 0
3225+1485 106069.4205357077 -43027.27568930755 0
3226+1486 102196.087402845 4642.148155609248 0
3227+1487 -79231.73022741334 -17190.05407776679 0
3228+1488 -103230.8496226792 16611.91330414317 0
3229+1489 122846.0005699412 5436.121514167688 0
3230+1490 -38358.38341513068 193916.304220802 0
3231+1491 113649.3893215739 -19304.19340002791 0
3232+1492 133188.520878102 -48861.82056592553 0
3233+1493 151056.358783601 -46554.74812081928 0
3234+1494 -42034.88088801677 -164030.7136116028 0
3235+1495 6921.137769345672 47916.47676745459 0
3236+1496 21404.63841289821 -204727.2056195305 0
3237+1497 -27505.66131443961 108557.1534989479 0
3238+1498 72360.13882250687 12220.09329672603 0
3239+1499 64284.97663797007 -58272.3817585077 0
3240+1500 40208.89900005616 53592.68834625775 0
3241+1501 91132.20913961867 73545.76703742878 0
3242+1502 154726.0418649116 -15868.76566712034 0
3243+1503 19739.12966187114 -142073.2226667976 0
3244+1504 -116999.2221735765 28749.89914848868 0
3245+1505 138227.3946978935 15019.39443485899 0
3246+1506 53194.39503383757 -53940.93976239293 0
3247+1507 80211.91232202553 2349.086160015293 0
3248+1508 147792.4709517811 14758.50530066508 0
3249+1509 59811.11754070211 47831.8518242674 0
3250+1510 71849.34847588163 -133640.9061921196 0
3251+1511 -19769.1208566151 76351.75444558692 0
3252+1512 11909.87250628011 -211371.4070965812 0
3253+1513 186343.1682994117 -36440.20549412692 0
3254+1514 -14033.53414924177 51525.45200644753 0
3255+1515 -20202.33549905131 -135253.6737583575 0
3256+1516 73066.37369363087 69621.43244747068 0
3257+1517 -24377.21338060319 68583.32980255115 0
3258+1518 -46298.23186420489 -174556.6172176029 0
3259+1519 64842.02579299526 28960.96493906607 0
3260+1520 -29395.88787849581 100382.6099107286 0
3261+1521 65700.77529372316 54567.29923123141 0
3262+1522 98307.01436084478 77590.17176797957 0
3263+1523 134386.1539945968 -16617.90510480519 0
3264+1524 98692.65089367311 114138.8825762193 0
3265+1525 -8469.814066954745 59010.71411479954 0
3266+1526 -87393.66179867396 6681.902019991794 0
3267+1527 78760.85135676466 -118566.6345306195 0
3268+1528 126742.1060671361 -39362.53366826972 0
3269+1529 -33192.48808231451 198918.591918538 0
3270+1530 -20600.24816118781 -112408.78304032 0
3271+1531 -38427.72815540549 -100782.937261992 0
3272+1532 -59647.88031378281 -157594.7759046911 0
3273+1533 -49285.10993040551 -133997.7806941854 0
3274+1534 27093.07630538948 42123.43913454739 0
3275+1535 -82702.22596599074 14387.3219130658 0
3276+1536 70369.76297156583 61901.01196482719 0
3277+1537 71159.78959798622 -27728.82068355418 0
3278+1538 -16495.6693728066 184701.5092545634 0
3279+1539 82769.7785291131 71157.16099618626 0
3280+1540 -97849.62418351935 24267.54216051753 0
3281+1541 -71037.74258250142 -1451.033078993985 0
3282+1542 45504.53776471742 -35562.97880227119 0
3283+1543 -39926.48175059559 -142134.0847575248 0
3284+1544 197784.0411258414 -22882.09445215291 0
3285+1545 219043.2858183646 -40000.56658745548 0
3286+1546 14514.45685861461 -105938.907484384 0
3287+1547 120393.7885611295 -60224.90608572987 0
3288+1548 -39268.10572779961 -120106.8135050746 0
3289+1549 -2657.110242768155 -199831.5748086488 0
3290+1550 -32334.55919256614 92627.76442861935 0
3291+1551 167949.035635409 17381.34861629535 0
3292+1552 -4872.459556089019 34523.75365844054 0
3293+1553 157232.9581741878 15339.71876329827 0
3294+1554 -36068.35189516393 84926.65943917622 0
3295+1555 2384.487761191992 57314.51994394013 0
3296+1556 98070.93387909821 98315.41443639524 0
3297+1557 143355.4121419201 4943.791203717045 0
3298+1558 -44546.90271864105 70135.81461163936 0
3299+1559 -34196.27196858256 53923.99263679414 0
3300+1560 -1799.435892668576 -128344.5361161857 0
3301+1561 -40177.73424637139 77466.11148006983 0
3302+1562 58744.2344268091 3162.660121308598 0
3303+1563 -62671.67295513971 12994.65544939374 0
3304+1564 46334.25063835357 36015.51760755788 0
3305+1565 -73077.18030344759 28783.50431159757 0
3306+1566 51844.67132596475 -155754.7846831844 0
3307+1567 -37697.26582387011 -91445.54443385004 0
3308+1568 14714.64761170968 30140.5228895212 0
3309+1569 -85305.29792159048 -9189.804481312081 0
3310+1570 5887.955053506649 -111981.426332995 0
3311+1571 164552.4283612309 7246.054543710484 0
3312+1572 -24569.96574646572 37598.47285192135 0
3313+1573 62821.83727513143 38353.84590835777 0
3314+1574 53324.45208005977 -3397.823854845217 0
3315+1575 41722.33035660717 -163201.6026811854 0
3316+1576 -11062.95893095902 -99760.28578586459 0
3317+1577 160393.4888628665 -45951.30401128143 0
3318+1578 220573.8399114606 -55950.69043088261 0
3319+1579 62977.18619371833 -5929.329972039547 0
3320+1580 -74981.94217258516 -9079.759818651119 0
3321+1581 -53860.98786139208 56097.82663556241 0
3322+1582 -44061.47766006412 40083.70669401513 0
3323+1583 90341.09938668199 62934.78167101267 0
3324+1584 56092.90591963122 -90206.21677835741 0
3325+1585 -66966.39646541684 5840.013098267352 0
3326+1586 -67658.41162991516 -121493.6584613992 0
3327+1587 -53560.33783519963 26624.73091891455 0
3328+1588 -63405.53709885775 42438.93827201943 0
3329+1589 -8875.544418729967 -191196.5361622752 0
3330+1590 47406.19304485052 -9546.128813407702 0
3331+1591 63559.78471391468 -132650.0185292563 0
3332+1592 -45179.33288783656 107609.363343833 0
3333+1593 33524.98810424456 24724.76175354903 0
3334+1594 -92569.268795956 31394.31715309269 0
3335+1595 91186.74448710319 93498.10856310918 0
3336+1596 121310.8878994549 37079.70553402227 0
3337+1597 -34388.88484740273 24319.03325485385 0
3338+1598 881.8948231683493 41124.66577747718 0
3339+1599 228997.3337756786 -55022.38640809843 0
3340+1600 -40765.15441994708 177780.462849858 0
3341+1601 46232.11613464532 59417.41324698112 0
3342+1602 -29227.28056009574 61154.9234873314 0
3343+1603 -15345.58448772944 21675.45059137114 0
3344+1604 -107681.7758164306 26489.07375965538 0
3345+1605 40389.30441196931 7795.415882779484 0
3346+1606 -10005.36268379445 75960.12591959174 0
3347+1607 -97531.94979698495 7271.579010096394 0
3348+1608 29287.89174486694 -3405.982515792218 0
3349+1609 134121.4350057003 24406.40117184145 0
3350+1610 -105988.6412466203 42349.78539862626 0
3351+1611 -19348.01896920444 44458.13530143326 0
3352+1612 3536.835915280555 18072.21534707565 0
3353+1613 -82532.12566499702 45067.35778782718 0
3354+1614 131311.5122408876 33571.47079157053 0
3355+1615 20290.61977346068 -192247.9663035365 0
3356+1616 -58901.15842426345 -148010.6111263359 0
3357+1617 20773.58461198177 36174.67305979278 0
3358+1618 -111371.7659917362 35958.83586984136 0
3359+1619 195165.8950072248 -39231.21967957616 0
3360+1620 -29494.31757846491 -106225.4269016688 0
3361+1621 89195.42569481269 127463.0434553201 0
3362+1622 -77918.10186396043 21696.01250816795 0
3363+1623 -59477.69396536666 78994.20508824049 0
3364+1624 51659.39153040067 65199.3226071505 0
3365+1625 -63820.94940510725 72038.87250454571 0
3366+1626 -87487.15815858233 38311.72853407152 0
3367+1627 -49136.13464686417 63071.59964527615 0
3368+1628 1643.717289980313 -178373.1558057196 0
3369+1629 22051.53212053141 13231.26167565392 0
3370+1630 -72921.5384188145 58493.07956148445 0
3371+1631 -51560.56117072408 -1769.787299243039 0
3372+1632 11805.52831676538 168575.4066843735 0
3373+1633 34825.60755387133 2104.696326422869 0
3374+1634 -39148.71583578581 46958.26963412898 0
3375+1635 -43445.83364724058 11345.88263551082 0
3376+1636 -51532.40167538612 93174.56369098795 0
3377+1637 19199.14099087453 69125.58724013403 0
3378+1638 -39604.18355172814 186193.7782653438 0
3379+1639 -55401.69580628449 86042.07718781754 0
3380+1640 -58656.29576541625 -15395.22622704318 0
3381+1641 205638.3499687098 -25118.693947465 0
3382+1642 -56948.82212221317 -117393.5019770874 0
3383+1643 -78807.16889132893 -125638.4821266781 0
3384+1644 90555.98227163451 112110.5196389002 0
3385+1645 -58616.34332288372 49254.33886800392 0
3386+1646 -12336.09860955865 161446.7866568468 0
3387+1647 11442.77395120631 2126.31374496519 0
3388+1648 -68233.91785081176 35633.87498033899 0
3389+1649 -77674.69393116886 51808.96460496847 0
3390+1650 -96051.33732933602 55137.90025881311 0
3391+1651 192152.161959967 -30053.87843817414 0
3392+1652 33704.0749739939 47903.08592548766 0
3393+1653 9006.439974767849 24050.16237177934 0
3394+1654 -24800.6796695566 9275.475637305099 0
3395+1655 -63974.39671291864 108302.1278836595 0
3396+1656 83653.69417129441 89491.17729536899 0
3397+1657 35190.56311796377 -20468.4825449053 0
3398+1658 -47514.02921429056 -113884.9481660988 0
3399+1659 -58185.07962944286 19858.25076470444 0
3400+1660 -48848.14744497248 33328.65703790643 0
3401+1661 23196.85971694584 -170632.4475044508 0
3402+1662 -68307.33290551695 65242.60168476819 0
3403+1663 54771.14902486763 -73882.9946088162 0
3404+1664 -17402.87286513288 -184559.9795931049 0
3405+1665 -77906.99538584588 81091.32867435356 0
3406+1666 -69799.94810136326 95462.13880628852 0
3407+1667 -32549.37020641211 178233.5937376882 0
3408+1668 -38624.15282202487 -110258.2061675465 0
3409+1669 -6560.667592561014 6374.461619433321 0
3410+1670 42685.33038346123 157512.7971550899 0
3411+1671 -29538.11434065408 30911.86357533164 0
3412+1672 -10198.11128103701 28017.56563207452 0
3413+1673 -82261.02586176875 74487.72149098954 0
3414+1674 76292.05997944622 52554.09888319499 0
3415+1675 25351.24912258618 -105615.9446653135 0
3416+1676 -86715.71841931906 68013.86792210214 0
3417+1677 -91341.95397356595 61548.31025258313 0
3418+1678 -58253.10236854607 122025.3072347866 0
3419+1679 83932.03926707103 107881.6220457877 0
3420+1680 67137.95661943167 -104800.7546749909 0
3421+1681 -100949.1764224761 48709.25991232925 0
3422+1682 -48158.02806675911 100360.4752343027 0
3423+1683 145890.6564541708 -37178.46052312916 0
3424+1684 -113548.7262151078 59372.07519239964 0
3425+1685 3748.891978175398 154266.6700013589 0
3426+1686 53072.98815821647 41718.96980068748 0
3427+1687 -19007.68044407703 60128.88668520896 0
3428+1688 -1408.974888429286 -94958.8252969091 0
3429+1689 170427.1320165003 26640.69035462932 0
3430+1690 39785.59475345491 30401.07654972247 0
3431+1691 27690.00429576388 18945.12283863452 0
3432+1692 -34470.78490034118 -4562.675551689097 0
3433+1693 -124334.1066431659 45942.23175152807 0
3434+1694 -64925.25515781803 101172.5736710205 0
3435+1695 -38999.30334543893 17808.00436370918 0
3436+1696 -18422.29674177143 111417.1695282991 0
3437+1697 58955.00373570951 -22325.63418646079 0
3438+1698 96512.04041246395 131532.8679611888 0
3439+1699 -40822.38979483681 122102.6654304779 0
3440+1700 -52491.0514175814 135692.9472804375 0
3441+1701 -122370.2920780651 74368.50434360361 0
3442+1702 -104429.2994469172 71475.13842306616 0
3443+1703 -33087.53532799518 -185509.2554046834 0
3444+1704 -73803.51151410867 87775.94309837588 0
3445+1705 -22636.95064097485 92540.53822098952 0
3446+1706 -232486.6138496761 70673.89400194508 0
3447+1707 -47606.57616551272 4793.892533682508 0
3448+1708 45678.03775812447 13605.53387831408 0
3449+1709 38932.30674946676 -84084.81134072963 0
3450+1710 -15871.94057189436 -194573.5598399759 0
3451+1711 43373.46735932802 44821.37564415985 0
3452+1712 77556.83696822749 85491.08829919489 0
3453+1713 -98782.15747200153 -19333.37190005623 0
3454+1714 -75793.08144529913 124370.7533594457 0
3455+1715 16666.35393879089 7609.597807112572 0
3456+1716 186526.557135183 -56856.39037988605 0
3457+1717 41389.97835915999 -15079.74825387796 0
3458+1718 164004.6904976779 -37552.00689068746 0
3459+1719 -9290.652319638772 42943.67975407661 0
3460+1720 -112826.9236709284 87403.62509655363 0
3461+1721 63637.29206526723 -150602.1334283214 0
3462+1722 -41474.3142970268 -16160.73081871416 0
3463+1723 152279.8394423041 23507.66637862366 0
3464+1724 63813.39467515636 9732.991093466799 0
3465+1725 50108.16167265425 -97479.19767708161 0
3466+1726 -87817.09925182925 22849.63122486528 0
3467+1727 -108964.6085877273 65383.18434009006 0
3468+1728 -99225.22402372978 78659.04852836907 0
3469+1729 17221.05506446509 -14379.83701364813 0
3470+1730 -55234.68783489359 -8568.514919744097 0
3471+1731 148693.6346650253 31713.2870210974 0
3472+1732 -76398.57404607217 -135256.7215181931 0
3473+1733 -130106.5934360397 96645.52065767675 0
3474+1734 -117735.2463425621 81055.30648062375 0
3475+1735 -62009.39497346467 -24037.92786684056 0
3476+1736 27892.13777188016 65346.36957157625 0
3477+1737 212731.6192725208 -22834.82427463859 0
3478+1738 177961.0660965548 -32769.06242165979 0
3479+1739 210345.8966171154 -33806.71262078235 0
3480+1740 -30113.34611384563 76874.23785886307 0
3481+1741 34233.26740282254 70302.9251927202 0
3482+1742 56897.91020449083 71527.76704218333 0
3483+1743 84793.96483384345 -111805.8806941207 0
3484+1744 -1614.447833402785 12136.77875220053 0
3485+1745 23717.76670381741 51201.97828018293 0
3486+1746 -147427.4024610098 97994.71714283581 0
3487+1747 -93364.01606898408 86056.64584816068 0
3488+1748 -20172.03424453317 15419.28823726607 0
3489+1749 -77028.35188644154 6270.820140795905 0
3490+1750 -111221.305740246 -3978.629703013889 0
3491+1751 10900.38754830158 38840.89751314842 0
3492+1752 -119002.6307969234 52577.57506688347 0
3493+1753 127656.667264356 -67319.30268993483 0
3494+1754 15532.11377272535 -117984.6317895168 0
3495+1755 -48272.75601376869 -29971.56231044056 0
3496+1756 139971.6765972099 31971.87588338999 0
3497+1757 23369.10607934833 -9127.648991872484 0
3498+1758 -35946.06230550455 -37463.12800308184 0
3499+1759 -384.5404803984068 178253.7921232349 0
3500+1760 52532.08290159242 -27759.3076907832 0
3501+1761 -177414.6606892848 164082.9637801136 0
3502+1762 -29296.21415176143 45761.57243231282 0
3503+1763 30349.88930647244 33328.37779776756 0
3504+1764 164647.5402106002 33916.06792421383 0
3505+1765 -107146.9101116686 94234.52963323482 0
3506+1766 -95038.09549200478 122397.0820855421 0
3507+1767 169505.0956966618 -45586.28117937043 0
3508+1768 139230.9371037254 -56536.04673975004 0
3509+1769 -39276.7536338987 62098.01773511554 0
3510+1770 70517.34765942821 -115815.4689841144 0
3511+1771 61931.78912108961 -81057.84025292231 0
3512+1772 185671.8393357032 -16665.66019835707 0
3513+1773 -29763.06927530351 2253.369842167365 0
3514+1774 197627.5323031626 -49852.53036726604 0
3515+1775 30294.99649038615 -162956.9453881495 0
3516+1776 81211.51021283567 -101556.749128686 0
3517+1777 -61332.568118509 115223.4846568865 0
3518+1778 -17892.0030810016 -84832.67153493314 0
3519+1779 5446.601046521036 -4233.44627202112 0
3520+1780 156285.2893954423 30641.54914022065 0
3521+1781 -184783.0300744233 155819.8268020851 0
3522+1782 -77872.75286769397 36908.85517773787 0
3523+1783 -42800.97060605048 114864.8308531135 0
3524+1784 181363.0026108514 -41266.92860988897 0
3525+1785 107416.2700429617 62596.72800711013 0
3526+1786 49754.73060144476 19754.5031244544 0
3527+1787 -121472.5854909895 101368.0134933181 0
3528+1788 -12443.707994121 -977.7195794034677 0
3529+1789 -99973.18812214487 102068.6395112431 0
3530+1790 -225863.4372136035 79714.92609808015 0
3531+1791 14338.9535085134 -76484.97102878093 0
3532+1792 -125674.7735074277 66743.86928506635 0
3533+1793 -48919.82001066592 48106.37744145064 0
3534+1794 48770.62957666011 27527.00694578339 0
3535+1795 -129061.3668268201 39225.24063408215 0
3536+1796 -25490.46061411206 -77781.75419818936 0
3537+1797 -67972.42070683812 20792.52620318902 0
3538+1798 -73367.48823087655 114448.510321271 0
3539+1799 29658.97189715917 -27247.53875105255 0
3540+1800 224297.3701309088 -19680.78905965857 0
3541+1801 67624.38130400932 85570.04551109979 0
3542+1802 50196.0151981536 -18575.1529274017 0
3543+1803 75613.34767138677 101593.3590667178 0
3544+1804 27345.80368675779 -87613.84860954307 0
3545+1805 26740.5953398758 -237876.1770148974 0
3546+1806 -46269.94638398253 -22042.15707681269 0
3547+1807 -39449.54204096543 -9527.561434408586 0
3548+1808 173561.0808663318 36279.14401183082 0
3549+1809 -39031.36254873234 -192964.469760005 0
3550+1810 -55974.68509499929 -175064.6496117402 0
3551+1811 -572.9020054965764 26189.52440332649 0
3552+1812 -49950.48135724359 78173.67878433371 0
3553+1813 -46372.21290389937 -96157.31160447437 0
3554+1814 77898.74628925048 121615.0906074066 0
3555+1815 -68182.34953725558 50488.14878837476 0
3556+1816 -55998.14125418232 128921.9586776311 0
3557+1817 -86943.41312108321 53367.47054168716 0
3558+1818 -7519.061177189011 171191.8236106286 0
3559+1819 10324.88248075484 76096.24872785604 0
3560+1820 -96820.42288923095 40141.6617369841 0
3561+1821 -58807.80894484057 64119.35874557839 0
3562+1822 90350.96940289892 119151.2232157395 0
3563+1823 208208.7389869716 -56824.04236735807 0
3564+1824 3656.588619916426 -207146.4043319642 0
3565+1825 31670.56071598457 167458.5515857935 0
3566+1826 55930.02280122769 -36959.57996049307 0
3567+1827 -32799.04323291693 149507.2240486486 0
3568+1828 91130.35315586149 83686.60717120103 0
3569+1829 -58517.45867239786 34493.32096461448 0
3570+1830 -152638.1333158783 79197.51188100867 0
3571+1831 226269.525869148 58474.35728285357 0
3572+1832 -27567.87177686593 168839.1278732889 0
3573+1833 55757.67630524328 56802.72432555785 0
3574+1834 -137620.9729360103 35842.19987568133 0
3575+1835 -39191.36192539736 32162.20147277976 0
3576+1836 177618.8039929846 -9637.798487225155 0
3577+1837 -42104.59354254092 92776.9406760281 0
3578+1838 64428.75956674179 18290.67029846567 0
3579+1839 -22296.68848265086 -199443.9179225575 0
3580+1840 5001.870399092108 163692.3761877113 0
3581+1841 20207.14190186621 -96536.74783850893 0
3582+1842 -19880.09524588079 29559.32273946552 0
3583+1843 90660.02820604236 102950.2222874708 0
3584+1844 36976.08282495176 62209.64096458311 0
3585+1845 56301.64730155041 23138.56519194567 0
3586+1846 97684.68206234845 -72983.73074995479 0
3587+1847 190244.4276419501 -6690.267963567068 0
3588+1848 43969.0774276783 -718.1152227677803 0
3589+1849 -139771.9719218091 102917.8034843261 0
3590+1850 -73089.39505745092 -25885.18465760808 0
3591+1851 -208924.3002141436 55058.78089001591 0
3592+1852 204764.5489572471 -95343.97592065274 0
3593+1853 36841.31428598811 16256.44612383604 0
3594+1854 -65858.70181790892 129827.3094452724 0
3595+1855 -25789.78552867432 125116.7077320535 0
3596+1856 229508.589411062 -70260.83004189616 0
3597+1857 -2577.716968699098 -105863.2470055437 0
3598+1858 -8843.257099253569 104189.3325552549 0
3599+1859 -143109.380384162 196797.7206560945 0
3600+1860 39946.60331556672 75575.92993265598 0
3601+1861 65933.45550306154 75864.31328648046 0
3602+1862 -57164.54564744453 5411.302127430794 0
3603+1863 -110353.4332906022 112581.5575714041 0
3604+1864 -65036.11795880373 -68422.20494481389 0
3605+1865 47659.01563546419 139062.0472714457 0
3606+1866 -68796.10667554676 79974.30846717357 0
3607+1867 187232.7985798427 31751.5370069893 0
3608+1868 164528.0672647931 112726.8478116634 0
3609+1869 -94544.80195419703 111969.7530864739 0
3610+1870 18406.44783219949 21589.38781252937 0
3611+1871 153703.9366754507 -61217.69813238266 0
3612+1872 227116.42284708 -46971.86568175425 0
3613+1873 63231.31496021895 131225.5380267025 0
3614+1874 45039.21609871855 -59804.84633405676 0
3615+1875 -41242.89115465841 211576.693956795 0
3616+1876 75164.24166029382 78038.39408480671 0
3617+1877 30614.33357826565 -196315.9026323124 0
3618+1878 107434.0343796406 -72167.29004276627 0
3619+1879 -169601.9866487704 77356.83012411527 0
3620+1880 -29558.55274950532 16692.54369172239 0
3621+1881 -115111.4178590768 44450.26749164946 0
3622+1882 -67222.68893703006 139657.0434096034 0
3623+1883 -48525.14359876252 18888.98956463113 0
3624+1884 34112.67646481686 148204.485395545 0
3625+1885 157586.0860167022 -53862.87621932181 0
3626+1886 -64887.82199414194 -8716.119054400395 0
3627+1887 91851.37217154344 -123530.1128983793 0
3628+1888 -48857.62112946784 -70675.87170928923 0
3629+1889 -50594.6977916766 -182539.4933548403 0
3630+1890 -77584.41126908851 66551.44306496388 0
3631+1891 -31177.74077488555 -28587.70996745029 0
3632+1892 218259.1230657706 -64155.2626034607 0
3633+1893 -56758.08357691507 -191938.023601676 0
3634+1894 -19757.99480414313 -7640.964010588448 0
3635+1895 -129949.0479942243 109467.8380383765 0
3636+1896 8967.019245535177 -21962.34714638789 0
3637+1897 -86480.49686159943 138559.2169120299 0
3638+1898 -22606.85988777769 -17616.71892285752 0
3639+1899 -56951.85261327311 169397.9188546792 0
3640+1900 3175.198306984809 91425.19754434812 0
3641+1901 61865.80118157375 151925.768542059 0
3642+1902 -60803.06935416029 93766.16408387077 0
3643+1903 -118866.043281958 9816.301750065099 0
3644+1904 91993.38221719275 -104743.33343782 0
3645+1905 20754.08672384483 157018.7725266223 0
3646+1906 39567.927628773 -45507.7833328841 0
3647+1907 -26797.97418016815 -37569.84311699583 0
3648+1908 217248.3687151464 -73941.65264053187 0
3649+1909 193453.2860286751 -104637.6703352896 0
3650+1910 201590.9074542214 -85633.06400051985 0
3651+1911 -55891.71894039051 -108850.9044235277 0
3652+1912 -140027.4068130075 92060.05181005457 0
3653+1913 79269.15924201888 -81147.42080057526 0
3654+1914 -222028.7589685156 56347.34539782214 0
3655+1915 -243204.1301182286 -4390.565683955125 0
3656+1916 23614.68343002324 -72626.14286799124 0
3657+1917 -78903.00649764489 151449.4833454784 0
3658+1918 -104920.0191738357 57148.98629385981 0
3659+1919 105942.8103351914 73143.06315510314 0
3660+1920 -61393.30863783511 159472.7817948982 0
3661+1921 31907.72289070078 -178746.6494924341 0
3662+1922 100004.5768452417 123951.3400976059 0
3663+1923 129877.4135353863 42316.20051967754 0
3664+1924 -36321.59271403587 107822.0664694596 0
3665+1925 -85565.09528003508 81501.27302083642 0
3666+1926 -14539.90168127848 176702.7041644729 0
3667+1927 61114.50443741458 -171274.4078076549 0
3668+1928 -17560.30298504262 153479.4857870582 0
3669+1929 65451.95014961508 68425.59222744782 0
3670+1930 75171.55448886825 -125507.9339236061 0
3671+1931 127993.7968675977 52342.91977445547 0
3672+1932 -10873.46478828755 13920.65900839966 0
3673+1933 46610.95210131075 82012.97286515241 0
3674+1934 209116.9831771138 -104349.4601983646 0
3675+1935 -103606.2056285026 -9881.195318951457 0
3676+1936 -3386.222828493001 -13483.94413649098 0
3677+1937 -235342.5966902176 -42037.32208920593 0
3678+1938 7547.185407011729 10007.110461016 0
3679+1939 -144641.5109740474 72663.76492852657 0
3680+1940 -84452.91781157907 -27386.09973873772 0
3681+1941 -95656.27510135817 69662.86247881564 0
3682+1942 -80657.50186663863 142223.8380850434 0
3683+1943 -131417.2268693791 61367.88897146271 0
3684+1944 77072.61889644961 140696.1577437078 0
3685+1945 136055.1099259281 -65047.11825211623 0
3686+1946 15636.17969908901 231169.6667149682 0
3687+1947 -72579.19475247916 171408.3344823129 0
3688+1948 190064.2856663399 -22045.59237648843 0
3689+1949 -221541.4752950791 -100578.9801703677 0
3690+1950 21411.36875436025 -30924.51886023169 0
3691+1951 -32216.62285944856 -67934.02387473641 0
3692+1952 13059.43873171935 -241291.5720519781 0
3693+1953 203017.3165701903 53426.87607687049 0
3694+1954 -63505.89638699994 -200769.5942920871 0
3695+1955 41206.71088078438 -151958.9243644543 0
3696+1956 141674.2682597242 -89226.18254835071 0
3697+1957 -30907.30734889725 -195306.7607239562 0
3698+1958 47072.95855330832 -77969.45747307684 0
3699+1959 -80744.78385323781 -200151.4497819924 0
3700+1960 -55091.97764560839 -100378.2793669213 0
3701+1961 236139.6667202629 -51969.49126287414 0
3702+1962 -54074.45327084107 107791.6521536774 0
3703+1963 46991.95694801148 -68696.49107583273 0
3704+1964 -46811.4594230639 151948.0704243798 0
3705+1965 145250.3044831567 39866.6392800632 0
3706+1966 -143784.1097733834 53075.94369732009 0
3707+1967 31282.17250713926 86999.46835272067 0
3708+1968 25729.37180931988 4922.111310892934 0
3709+1969 108448.2563719912 -146275.7945334664 0
3710+1970 -3376.407515363705 145524.7247980384 0
3711+1971 -7628.63519446556 116950.7951826607 0
3712+1972 -146827.1541131503 27673.01426995904 0
3713+1973 -120068.7290332055 124937.202253494 0
3714+1974 -47896.75965656975 -192260.7595544529 0
3715+1975 -79236.5142852366 97005.51596804643 0
3716+1976 49684.94305093368 -183432.2111953758 0
3717+1977 32135.30634067601 -12299.23200463432 0
3718+1978 -169268.5325471115 170568.1313856773 0
3719+1979 -158717.6079026856 169363.8225386145 0
3720+1980 -152467.5716977887 131549.9688080426 0
3721+1981 -66077.97223572672 -33972.55260119794 0
3722+1982 -126781.3976367343 31928.11392121542 0
3723+1983 -166257.3361699482 555.2087126740043 0
3724+1984 164330.8000038106 165004.1313290335 0
3725+1985 125696.870438593 207447.6312978557 0
3726+1986 -105490.9809090864 163016.7449586882 0
3727+1987 -232695.7664546694 62114.81464515418 0
3728+1988 76964.40654014761 -149781.4528171218 0
3729+1989 69557.12671738854 114842.513725298 0
3730+1990 -209717.3147011452 -43215.37081847149 0
3731+1991 -103317.5834536146 86539.25516449173 0
3732+1992 -125723.0329368747 -8337.391806701104 0
3733+1993 -225008.5215438006 -39694.37305255632 0
3734+1994 54280.1251726359 -143582.5970159677 0
3735+1995 -141983.2533574749 81267.59703619425 0
3736+1996 -74366.15298781847 -151345.7604851131 0
3737+1997 -100184.2920519131 170236.5501994492 0
3738+1998 177527.9956305588 -48989.27313542552 0
3739+1999 37662.01485426531 125383.6169933843 0
3740+2000 157830.6654125196 -158888.9832869484 0
3741+2001 -72581.78208346585 104260.2812315776 0
3742+2002 36069.67088583649 -95400.25438071031 0
3743+2003 19039.70499221047 222171.7939788818 0
3744+2004 -125891.4016966034 -53761.29638690556 0
3745+2005 -32906.46004722262 123543.7002729772 0
3746+2006 10112.38717485696 -55564.78760932538 0
3747+2007 81756.22701515064 -133986.6384792681 0
3748+2008 -9176.751221677931 -73115.79890219196 0
3749+2009 -169989.8970222199 46893.3566001638 0
3750+2010 27305.48438955484 139229.4394383945 0
3751+2011 -55962.46257667425 182262.448692779 0
3752+2012 17053.63986490234 -220221.3088640526 0
3753+2013 -7711.503394975436 -53373.21663839 0
3754+2014 -6499.642631541164 -83433.4488134831 0
3755+2015 76610.16386980047 -166829.9414401517 0
3756+2016 26914.04375476342 119040.5248861401 0
3757+2017 -76584.03583794585 -35743.86628810569 0
3758+2018 -51332.01629020446 -211044.786350996 0
3759+2019 -49340.17230913299 144728.567804335 0
3760+2020 3187.222681899937 -216409.8769395863 0
3761+2021 -185675.7157736212 -72023.78323071792 0
3762+2022 21796.43484257082 -52153.08379185829 0
3763+2023 -122871.6139135484 -17078.87546007927 0
3764+2024 36740.01079349648 -30643.73071356683 0
3765+2025 21324.58530493587 80418.02895031869 0
3766+2026 137603.1407449456 46705.63073488292 0
3767+2027 180794.5681963917 -64209.03731716987 0
3768+2028 5510.759427452976 -85599.59739594732 0
3769+2029 32126.2937598875 77817.19237656373 0
3770+2030 -153841.6282092323 40960.58557634068 0
3771+2031 -110201.2648925342 -132507.7282582457 0
3772+2032 -117577.0785556606 138108.8037320137 0
3773+2033 17143.14781978466 174946.2255603354 0
3774+2034 -21746.68042296891 241114.6239439255 0
3775+2035 -178353.1911977994 -99561.2518780181 0
3776+2036 -95113.67028141922 200478.3832756024 0
3777+2037 -140151.1071314336 -10202.87765735896 0
3778+2038 -95565.95425953131 147367.0705572875 0
3779+2039 -41914.3884607094 -47773.29191388316 0
3780+2040 -241871.9424955732 -23364.48462794878 0
3781+2041 34687.77298755197 -55795.07617163009 0
3782+2042 48069.4842525624 -87569.93732655725 0
3783+2043 230906.2210965602 -35460.68895099896 0
3784+2044 39169.25479982693 -65143.99419189596 0
3785+2045 19883.3851638125 111022.8008224573 0
3786+2046 -8720.435100096538 139852.7374197876 0
3787+2047 164238.7006271448 -177484.7980501241 0
3788+2048 -122895.2395115279 59887.81193028472 0
3789+2049 -46573.0574886385 -8889.534803986715 0
3790+2050 -144789.4381991221 -17070.64592600436 0
3791+2051 -113273.2778751254 73207.73899944623 0
3792+2052 55460.91770826383 13283.14626371814 0
3793+2053 -38615.85150786859 3648.143302262932 0
3794+2054 -90203.62012329408 97381.94829715636 0
3795+2055 -48884.60838934017 121898.6613818409 0
3796+2056 -100156.3631328527 -178479.9259678714 0
3797+2057 -26225.99225993522 117620.5137870436 0
3798+2058 142026.6388859774 -79342.33525748296 0
3799+2059 -150984.2733646618 114799.8721901418 0
3800+2060 -22060.38499153886 160524.8592815448 0
3801+2061 222295.0330618254 -86847.9454892709 0
3802+2062 -118679.0325357905 -136699.0359945537 0
3803+2063 -65828.89414557446 -175210.7563250884 0
3804+2064 6307.982437382972 184047.4628167603 0
3805+2065 -166099.3124960367 19841.42183633521 0
3806+2066 52229.7646272553 154769.4266196656 0
3807+2067 -120787.3001537485 90031.78923199809 0
3808+2068 2498.025690045924 170130.0920088037 0
3809+2069 33891.72082188696 159005.5630968087 0
3810+2070 -52547.28359134981 -37759.37825880024 0
3811+2071 -66361.66667871762 121181.5670617875 0
3812+2072 170763.9484256222 -170593.0059443048 0
3813+2073 -49625.28050633265 161392.3572787915 0
3814+2074 86596.90923641842 -119056.4826295226 0
3815+2075 -184698.6661657422 86233.21115177775 0
3816+2076 -27590.52438267805 -87368.08952645167 0
3817+2077 191024.8499833226 -116582.6068999756 0
3818+2078 -83834.90210637431 106937.6295641574 0
3819+2079 207837.8611480042 -77577.6759774783 0
3820+2080 83340.35685046751 150566.3226067346 0
3821+2081 196494.7398480631 -61090.0868518139 0
3822+2082 -169228.9386957524 86720.99338359438 0
3823+2083 167344.8694759873 -52208.59231638908 0
3824+2084 16618.79011600731 -87006.97180188632 0
3825+2085 -143691.1837502409 -2751.261240961735 0
3826+2086 -53863.05827311306 -92979.77176495214 0
3827+2087 -230203.8030923583 -61447.17655003233 0
3828+2088 90656.91559927657 -78578.64412868199 0
3829+2089 106470.3589736457 92035.06256965557 0
3830+2090 -17197.29976782083 -36245.03148383965 0
3831+2091 175257.9760559681 10924.17873912025 0
3832+2092 147337.3173888122 190262.1148168712 0
3833+2093 -143391.7503212769 121965.2433272588 0
3834+2094 10197.70824318536 107931.2486197435 0
3835+2095 -21431.27642917766 189.6549825511232 0
3836+2096 -139580.1191494368 4124.151941617495 0
3837+2097 104065.2727002692 82204.72682616797 0
3838+2098 14414.92902912364 -6391.166671133622 0
3839+2099 -162128.7284633818 35308.87972446447 0
3840+2100 -76818.3950843442 229851.2717335591 0
3841+2101 -62686.19849903885 -166460.7565091623 0
3842+2102 18537.20453517677 130481.3908747096 0
3843+2103 -53519.85705022513 -22965.98851456139 0
3844+2104 49136.05346514629 73733.014701202 0
3845+2105 -88201.35380415725 156355.8727595918 0
3846+2106 215587.1979768008 -14810.41490724776 0
3847+2107 -95079.25939615884 -195037.6745295409 0
3848+2108 -12698.20997663661 -203797.5257561131 0
3849+2109 -135621.9799915184 131679.5803779655 0
3850+2110 -216137.0340399044 -5961.811107395822 0
3851+2111 -48138.77127822048 227385.9616221559 0
3852+2112 -35224.88689500032 140189.0231743428 0
3853+2113 -60120.54415601819 135479.218693999 0
3854+2114 -51288.00315553637 205541.5200250749 0
3855+2115 21643.89510033284 92869.1426582001 0
3856+2116 -130444.5039307272 8505.273256550858 0
3857+2117 -95283.18396938368 -222242.6522342925 0
3858+2118 -40331.52932312609 -224628.6327245464 0
3859+2119 -162995.0011344857 52278.00203200293 0
3860+2120 196997.9698195094 67697.93240129555 0
3861+2121 -44042.79519614352 138106.0523737656 0
3862+2122 163814.5283702722 -60794.05152327756 0
3863+2123 -232003.0618177576 6058.992048434996 0
3864+2124 -179316.7056650702 40923.60716322279 0
3865+2125 -10557.51689052796 189427.5361716553 0
3866+2126 2447.348719474893 -28404.61823743986 0
3867+2127 -110996.0118052181 103612.1289545 0
3868+2128 -164021.2228553597 -7431.159514344325 0
3869+2129 -2474.29704860925 -67934.57867241201 0
3870+2130 219757.2562041012 -103569.9704081557 0
3871+2131 -68502.28952660957 -159059.8414761556 0
3872+2132 193910.5856120814 -70679.33524340701 0
3873+2133 104903.8805186862 105313.1691034142 0
3874+2134 -116130.0559466584 -21783.80111782157 0
3875+2135 -148312.4924696435 -9519.909738845734 0
3876+2136 -126353.7370051786 -26629.94557175285 0
3877+2137 175531.3000243348 63799.63032088737 0
3878+2138 146600.1600261551 -64711.32265489586 0
3879+2139 -223434.3507321399 68676.47361348143 0
3880+2140 179821.6980477749 115247.7056941143 0
3881+2141 192868.2493877191 -88652.66464308328 0
3882+2142 141520.9628851417 196767.4344313653 0
3883+2143 -68619.40520777465 220649.6372445242 0
3884+2144 -195010.2743067518 -90654.43589009886 0
3885+2145 68827.17614499076 -141407.3584039641 0
3886+2146 -130665.1551843222 139963.0521481563 0
3887+2147 -850.6269340827976 -59607.71081462228 0
3888+2148 -155594.776099196 21026.41340430732 0
3889+2149 149089.0118764359 -158127.604360061 0
3890+2150 -49336.00368288998 193233.4997511251 0
3891+2151 -212539.10745224 65502.78351287435 0
3892+2152 -3879.807529406755 -2923.835767952914 0
3893+2153 -28961.94937271848 -203987.8915996374 0
3894+2154 68382.13664844236 157105.0024465549 0
3895+2155 -112926.0815539008 -43041.77911400812 0
3896+2156 100858.9137352919 -148547.1804780217 0
3897+2157 -45299.10688132473 -202009.4077515897 0
3898+2158 26468.19014558367 100370.551497555 0
3899+2159 -186337.0569613513 35934.89739728453 0
3900+2160 -76432.76507382312 135403.6557468749 0
3901+2161 -210686.2217596685 -36497.38764101238 0
3902+2162 44333.30241413853 -209519.9514513548 0
3903+2163 234361.8606878718 -60738.83654995065 0
3904+2164 205998.2764534723 -68526.67581168821 0
3905+2165 -126623.8874216193 -130023.7154247902 0
3906+2166 -74660.27103742717 -231680.6285384047 0
3907+2167 230096.5784494312 69646.53393856851 0
3908+2168 -38691.5579591533 130706.4337622999 0
3909+2169 -199132.2617752972 -81370.68936582645 0
3910+2170 -47819.81363163149 173944.811329332 0
3911+2171 -170709.5148766735 -41482.92192888834 0
3912+2172 -40938.65146797075 201732.0600722502 0
3913+2173 -41221.87421508109 146606.9545436186 0
3914+2174 72117.72477069977 212919.0541346256 0
3915+2175 -55838.98286289652 151662.3375842157 0
3916+2176 -4623.218611532879 -44316.77426487462 0
3917+2177 -63818.85464626727 -103908.0608572938 0
3918+2178 -140045.2678342246 -26129.37750597431 0
3919+2179 214607.8036734711 -93906.32287950719 0
3920+2180 -66665.83124413343 150100.8578671913 0
3921+2181 75747.47037077176 111506.873755594 0
3922+2182 -149912.2655919342 -23596.39644718396 0
3923+2183 -169905.8247912234 28360.77525111874 0
3924+2184 98014.37161557405 28884.97618499065 0
3925+2185 93346.65998618469 37275.80384547811 0
3926+2186 91819.19042255158 45778.86233585583 0
3927+2187 -4462.196658117258 95039.24381708463 0
3928+2188 101336.8614104868 45341.99476504529 0
3929+2189 44512.71385027748 -239210.5219706687 0
3930+2190 238973.7230100152 -40678.32825832696 0
3931+2191 184684.8161257217 23812.47470719184 0
3932+2192 41394.18740789001 -110202.1378746271 0
3933+2193 -30899.98718977298 241106.8000285763 0
3934+2194 -74.90730310459988 127191.5305219089 0
3935+2195 181436.3765513251 37377.35161439066 0
3936+2196 104064.7042807629 133521.5860800879 0
3937+2197 47631.02979202922 -128170.1915214178 0
3938+2198 234689.5764019706 61438.64086595697 0
3939+2199 16005.37948605648 -37238.81345981485 0
3940+2200 96637.6702902762 140514.9300850171 0
3941+2201 -74492.55578287921 -116176.3850952959 0
3942+2202 67517.02807928112 96558.33494120369 0
3943+2203 241573.5014539124 1093.122731729924 0
3944+2204 -185252.481268735 5390.288334628171 0
3945+2205 -150079.4879750771 106430.4439034875 0
3946+2206 71567.86663946544 -76309.72607165523 0
3947+2207 7124.787042150262 -144691.7415521745 0
3948+2208 -155009.2453721543 31568.94079206904 0
3949+2209 -15315.36116606066 138146.5894738321 0
3950+2210 114382.1094568241 59637.92228395226 0
3951+2211 -114800.6809690364 -166064.5190669917 0
3952+2212 -210245.7721669003 2227.248951073308 0
3953+2213 -69095.24027991903 182072.3251078701 0
3954+2214 79291.8726021344 -14710.68349779913 0
3955+2215 71976.73736647326 131797.340047465 0
3956+2216 34260.47808871228 -170094.3745964178 0
3957+2217 56270.20634366176 125859.4544836767 0
3958+2218 -176246.9907836489 2944.377778395768 0
3959+2219 208719.0667874895 -89516.70821846325 0
3960+2220 51378.29851040633 89046.86813467563 0
3961+2221 -34793.38458793279 -157636.3392764702 0
3962+2222 26973.97705122789 160784.0725829815 0
3963+2223 -197739.6912812722 141701.1388045816 0
3964+2224 -44445.85569264477 236702.0026885676 0
3965+2225 117507.0453995822 52307.9896360219 0
3966+2226 -80663.79556488627 163199.7329961868 0
3967+2227 97190.56941406343 13010.99805225171 0
3968+2228 77856.82370475485 -91364.49025715336 0
3969+2229 3917.860446283563 83341.65481980421 0
3970+2230 34031.20652319527 105320.0832629488 0
3971+2231 54448.96864249706 144905.5925334468 0
3972+2232 8728.021958970652 125150.2695220707 0
3973+2233 200630.766317268 -132098.2502109628 0
3974+2234 40648.70501187668 -223739.0894024615 0
3975+2235 -110974.9702513857 120675.9380748196 0
3976+2236 184325.1000275709 2569.449546223835 0
3977+2237 -59958.31328539401 199988.6127315309 0
3978+2238 -21826.14912799099 -46116.94810410732 0
3979+2239 -12246.57110798376 -23405.11435890549 0
3980+2240 5934.111579350968 143397.1047098753 0
3981+2241 55601.47780596631 -177156.9292519606 0
3982+2242 -144872.6883224739 43591.55960546318 0
3983+2243 68876.02083544503 -169106.3781658842 0
3984+2244 15955.70882299489 140638.7921434175 0
3985+2245 4675.796833802601 243926.4703858893 0
3986+2246 103253.2899759873 37173.45234604103 0
3987+2247 -74897.19510874513 211687.5718637242 0
3988+2248 75837.99096994131 -56556.5511513172 0
3989+2249 85941.57758023436 -152457.2819862432 0
3990+2250 -92065.69864914306 -24131.14900463747 0
3991+2251 33149.00103707398 232256.8283779806 0
3992+2252 -131330.2655749355 -45862.73988949053 0
3993+2253 221239.8499553919 65614.37247444683 0
3994+2254 106460.651199796 11762.62204501706 0
3995+2255 149005.2615527771 -191207.7909923381 0
3996+2256 89841.87913739044 134738.4118097835 0
3997+2257 -26872.56365651196 -171065.3878624702 0
3998+2258 44352.94538801721 -51992.34360548994 0
3999+2259 -225519.4418821681 44360.54093026977 0
4000+2260 -132891.4295147347 -36946.41254391247 0
4001+2261 96170.16738877128 -1664.002542950546 0
4002+2262 4437.765177510664 71467.8646595247 0
4003+2263 -150080.1620031545 -30586.29559312925 0
4004+2264 -1736.277463405826 -148860.5230790931 0
4005+2265 82907.57844851824 -28425.58058748834 0
4006+2266 70841.69444740072 -44400.21766175278 0
4007+2267 117945.679435684 -70216.95125573104 0
4008+2268 89333.90674260512 -2527.356057631684 0
4009+2269 -5676.620605731991 -134990.6215979294 0
4010+2270 -166850.3980170246 93920.36528748987 0
4011+2271 28701.7722184717 129382.9313456475 0
4012+2272 183747.1808732992 54479.57532074266 0
4013+2273 91822.62895788261 148675.5152172518 0
4014+2274 242343.4321261078 -12770.73713885923 0
4015+2275 -102084.4276806754 125400.7945935777 0
4016+2276 168954.7622058926 172331.3010871296 0
4017+2277 12252.79692826769 -158548.4154913712 0
4018+2278 -164491.9770411513 177879.5733868952 0
4019+2279 -135717.7793012885 54732.46309848132 0
4020+2280 127611.428247038 71490.16738105596 0
4021+2281 4715.863977214106 228661.853805225 0
4022+2282 36387.4403998065 -38621.68566011432 0
4023+2283 -86461.4062700941 146169.2385553936 0
4024+2284 107641.4646511721 -117535.5176438316 0
4025+2285 -97767.72911339627 159596.4450248091 0
4026+2286 -115777.7296087026 149156.7353654636 0
4027+2287 200844.796270661 -3719.578687291818 0
4028+2288 19237.26571230371 -213207.3129308737 0
4029+2289 -96870.87863645147 133630.6686846121 0
4030+2290 -105951.5020434201 153600.3620578823 0
4031+2291 168194.4733404295 -112679.298612115 0
4032+2292 13766.15139304623 150560.7739805774 0
4033+2293 -80290.75757900237 184733.0510937869 0
4034+2294 59218.9989123372 114697.9579147473 0
4035+2295 7864.074574212083 133813.781161053 0
4036+2296 -78482.07335771162 219974.3732276324 0
4037+2297 -60655.83514941097 218063.5119813533 0
4038+2298 26366.6494952245 -59702.53841659582 0
4039+2299 169217.5614416332 -7888.83254096205 0
4040+2300 -37096.53872874823 -57506.07147573846 0
4041+2301 139944.6330837289 170966.6797163984 0
4042+2302 198071.7500245147 -123441.3577845566 0
4043+2303 -31744.43293482213 -47257.97395007819 0
4044+2304 194945.5716864977 59269.25939178304 0
4045+2305 93354.38300185645 -27969.29247545432 0
4046+2306 232949.2197639998 -26263.20095530879 0
4047+2307 -202099.4674002501 84023.78026437448 0
4048+2308 -210667.9607401578 8977.940865874949 0
4049+2309 -150242.5119666118 59364.77793997185 0
4050+2310 155234.7046166213 161861.8357388867 0
4051+2311 121813.991496873 45437.7400995705 0
4052+2312 -159267.1963414105 9971.447656588158 0
4053+2313 -9598.054836903686 -63156.50234705763 0
4054+2314 109288.7497915555 -12831.14877426593 0
4055+2315 -90976.09220096267 167718.7412409982 0
4056+2316 -170728.968498257 10840.27548259854 0
4057+2317 122027.1489991225 61173.5513267159 0
4058+2318 110792.2448963759 135361.2711082864 0
4059+2319 86510.21889193213 -86664.81441894871 0
4060+2320 -194875.7413301193 90001.21436061402 0
4061+2321 -204668.7755472259 93045.88875100848 0
4062+2322 -150501.9141905649 89169.83821702578 0
4063+2323 -118456.6093504193 112837.9841344781 0
4064+2324 33485.88545677533 96826.74402830201 0
4065+2325 -11986.31052385087 238546.7714093397 0
4066+2326 -197494.5609530826 70177.82270650454 0
4067+2327 -26180.50042354969 -155225.9646057289 0
4068+2328 161364.2027378834 158463.8304522502 0
4069+2329 -83079.18946267196 175250.4337163074 0
4070+2330 113698.7831225068 23258.30163055094 0
4071+2331 85642.32129382652 -51896.19195993526 0
4072+2332 194939.887844224 15874.39953282311 0
4073+2333 -87009.23597771581 182002.4699677469 0
4074+2334 100474.4357998803 -28339.29767335934 0
4075+2335 -40218.72743997066 156268.9492960719 0
4076+2336 -124595.1901188696 -34913.21797349972 0
4077+2337 166412.8216059933 148385.344496067 0
4078+2338 42576.39786743421 110126.5973661293 0
4079+2339 -2431.065084351289 -157226.9247011852 0
4080+2340 192977.855048904 -43.62163661143927 0
4081+2341 -31123.71832537746 159432.6623295683 0
4082+2342 -84674.38050773247 118585.82271389 0
4083+2343 -82483.55685878442 195408.0582764783 0
4084+2344 -235247.248154447 -52211.25220476594 0
4085+2345 -5986.961460595267 -172818.1072503475 0
4086+2346 142908.5988372895 -197317.2312097076 0
4087+2347 -192573.5833919504 -76669.40886809112 0
4088+2348 241751.5973559274 -23222.6475028656 0
4089+2349 -16203.74200943118 -153818.7130464252 0
4090+2350 -38524.27661521963 167984.5663849427 0
4091+2351 -226837.4698025585 -49340.60346728029 0
4092+2352 143811.9322552306 180904.6236358951 0
4093+2353 46746.80974507109 118492.8155574925 0
4094+2354 -85881.61633615172 128824.5332503991 0
4095+2355 229569.2180176151 79928.06744598308 0
4096+2356 -234083.2462881857 52261.4791744712 0
4097+2357 -76261.09551851812 178366.0361000693 0
4098+2358 133058.6368636041 177541.3281616434 0
4099+2359 233273.2612133243 -16404.38889912532 0
4100+2360 164438.5246506834 178905.2258266094 0
4101+2361 -181304.9018281513 -87092.62988740411 0
4102+2362 22598.17502346956 124496.4753884906 0
4103+2363 42374.64266480115 101581.8997374984 0
4104+2364 35783.73850166951 114460.9018537906 0
4105+2365 209130.4003882171 -44871.76150180121 0
4106+2366 -136690.7103876153 16496.17816248679 0
4107+2367 216814.5375904188 -48923.78531385033 0
4108+2368 -125082.2334541976 117185.9257972304 0
4109+2369 -141122.8276560457 10336.18654976114 0
4110+2370 202743.1900146147 -39914.59851426764 0
4111+2371 -137049.9431411289 24812.77166261262 0
4112+2372 -124724.8880562118 19934.04663025228 0
4113+2373 -115243.25006845 3194.296585482258 0
4114+2374 -148326.2170107144 7136.529793233116 0
4115+2375 -145490.6497506388 17313.01261309983 0
4116+2376 -152169.7098004899 13861.85086680711 0
4117+$EndNodes
4118+$Elements
4119+4750
4120+1 1 2 3 1 1 3
4121+2 1 2 3 1 3 4
4122+3 1 2 3 1 4 5
4123+4 1 2 3 1 5 6
4124+5 1 2 3 1 6 7
4125+6 1 2 3 1 7 8
4126+7 1 2 3 1 8 9
4127+8 1 2 3 1 9 10
4128+9 1 2 3 1 10 11
4129+10 1 2 3 1 11 12
4130+11 1 2 3 1 12 13
4131+12 1 2 3 1 13 14
4132+13 1 2 3 1 14 15
4133+14 1 2 3 1 15 16
4134+15 1 2 3 1 16 17
4135+16 1 2 3 1 17 18
4136+17 1 2 3 1 18 19
4137+18 1 2 3 1 19 20
4138+19 1 2 3 1 20 21
4139+20 1 2 3 1 21 22
4140+21 1 2 3 1 22 23
4141+22 1 2 3 1 23 24
4142+23 1 2 3 1 24 25
4143+24 1 2 3 1 25 26
4144+25 1 2 3 1 26 27
4145+26 1 2 3 1 27 28
4146+27 1 2 3 1 28 29
4147+28 1 2 3 1 29 30
4148+29 1 2 3 1 30 31
4149+30 1 2 3 1 31 32
4150+31 1 2 3 1 32 33
4151+32 1 2 3 1 33 34
4152+33 1 2 3 1 34 35
4153+34 1 2 3 1 35 36
4154+35 1 2 3 1 36 37
4155+36 1 2 3 1 37 38
4156+37 1 2 3 1 38 39
4157+38 1 2 3 1 39 40
4158+39 1 2 3 1 40 41
4159+40 1 2 3 1 41 42
4160+41 1 2 3 1 42 43
4161+42 1 2 3 1 43 44
4162+43 1 2 3 1 44 45
4163+44 1 2 3 1 45 46
4164+45 1 2 3 1 46 47
4165+46 1 2 3 1 47 48
4166+47 1 2 3 1 48 49
4167+48 1 2 3 1 49 50
4168+49 1 2 3 1 50 51
4169+50 1 2 3 1 51 52
4170+51 1 2 3 1 52 53
4171+52 1 2 3 1 53 54
4172+53 1 2 3 1 54 55
4173+54 1 2 3 1 55 56
4174+55 1 2 3 1 56 57
4175+56 1 2 3 1 57 58
4176+57 1 2 3 1 58 59
4177+58 1 2 3 1 59 60
4178+59 1 2 3 1 60 61
4179+60 1 2 3 1 61 62
4180+61 1 2 3 1 62 63
4181+62 1 2 3 1 63 64
4182+63 1 2 3 1 64 65
4183+64 1 2 3 1 65 66
4184+65 1 2 3 1 66 67
4185+66 1 2 3 1 67 68
4186+67 1 2 3 1 68 69
4187+68 1 2 3 1 69 70
4188+69 1 2 3 1 70 71
4189+70 1 2 3 1 71 72
4190+71 1 2 3 1 72 73
4191+72 1 2 3 1 73 74
4192+73 1 2 3 1 74 75
4193+74 1 2 3 1 75 76
4194+75 1 2 3 1 76 77
4195+76 1 2 3 1 77 78
4196+77 1 2 3 1 78 79
4197+78 1 2 3 1 79 2
4198+79 1 2 3 2 2 80
4199+80 1 2 3 2 80 81
4200+81 1 2 3 2 81 82
4201+82 1 2 3 2 82 83
4202+83 1 2 3 2 83 84
4203+84 1 2 3 2 84 85
4204+85 1 2 3 2 85 86
4205+86 1 2 3 2 86 87
4206+87 1 2 3 2 87 88
4207+88 1 2 3 2 88 89
4208+89 1 2 3 2 89 90
4209+90 1 2 3 2 90 91
4210+91 1 2 3 2 91 92
4211+92 1 2 3 2 92 93
4212+93 1 2 3 2 93 94
4213+94 1 2 3 2 94 95
4214+95 1 2 3 2 95 96
4215+96 1 2 3 2 96 97
4216+97 1 2 3 2 97 98
4217+98 1 2 3 2 98 99
4218+99 1 2 3 2 99 100
4219+100 1 2 3 2 100 101
4220+101 1 2 3 2 101 102
4221+102 1 2 3 2 102 103
4222+103 1 2 3 2 103 104
4223+104 1 2 3 2 104 105
4224+105 1 2 3 2 105 106
4225+106 1 2 3 2 106 107
4226+107 1 2 3 2 107 108
4227+108 1 2 3 2 108 109
4228+109 1 2 3 2 109 110
4229+110 1 2 3 2 110 111
4230+111 1 2 3 2 111 112
4231+112 1 2 3 2 112 113
4232+113 1 2 3 2 113 114
4233+114 1 2 3 2 114 115
4234+115 1 2 3 2 115 116
4235+116 1 2 3 2 116 117
4236+117 1 2 3 2 117 118
4237+118 1 2 3 2 118 119
4238+119 1 2 3 2 119 120
4239+120 1 2 3 2 120 121
4240+121 1 2 3 2 121 122
4241+122 1 2 3 2 122 123
4242+123 1 2 3 2 123 124
4243+124 1 2 3 2 124 125
4244+125 1 2 3 2 125 126
4245+126 1 2 3 2 126 127
4246+127 1 2 3 2 127 128
4247+128 1 2 3 2 128 129
4248+129 1 2 3 2 129 130
4249+130 1 2 3 2 130 131
4250+131 1 2 3 2 131 132
4251+132 1 2 3 2 132 133
4252+133 1 2 3 2 133 134
4253+134 1 2 3 2 134 135
4254+135 1 2 3 2 135 136
4255+136 1 2 3 2 136 137
4256+137 1 2 3 2 137 138
4257+138 1 2 3 2 138 139
4258+139 1 2 3 2 139 140
4259+140 1 2 3 2 140 141
4260+141 1 2 3 2 141 142
4261+142 1 2 3 2 142 143
4262+143 1 2 3 2 143 144
4263+144 1 2 3 2 144 145
4264+145 1 2 3 2 145 146
4265+146 1 2 3 2 146 147
4266+147 1 2 3 2 147 148
4267+148 1 2 3 2 148 149
4268+149 1 2 3 2 149 150
4269+150 1 2 3 2 150 151
4270+151 1 2 3 2 151 152
4271+152 1 2 3 2 152 153
4272+153 1 2 3 2 153 154
4273+154 1 2 3 2 154 155
4274+155 1 2 3 2 155 156
4275+156 1 2 3 2 156 1
4276+157 2 2 6 5 6 246 7
4277+158 2 2 6 5 86 265 87
4278+159 2 2 6 5 248 104 103
4279+160 2 2 6 5 266 130 129
4280+161 2 2 6 5 130 266 259
4281+162 2 2 6 5 128 266 129
4282+163 2 2 6 5 266 128 244
4283+164 2 2 6 5 260 102 101
4284+165 2 2 6 5 23 245 24
4285+166 2 2 6 5 258 20 19
4286+167 2 2 6 5 168 6 5
4287+168 2 2 6 5 246 6 168
4288+169 2 2 6 5 410 247 257
4289+170 2 2 6 5 257 423 410
4290+171 2 2 6 5 438 268 431
4291+172 2 2 6 5 451 32 31
4292+173 2 2 6 5 261 457 253
4293+174 2 2 6 5 459 160 262
4294+175 2 2 6 5 466 220 419
4295+176 2 2 6 5 160 472 439
4296+177 2 2 6 5 262 483 459
4297+178 2 2 6 5 144 485 145
4298+179 2 2 6 5 486 233 393
4299+180 2 2 6 5 488 253 457
4300+181 2 2 6 5 268 490 431
4301+182 2 2 6 5 490 268 333
4302+183 2 2 6 5 167 494 461
4303+184 2 2 6 5 500 35 34
4304+185 2 2 6 5 500 256 470
4305+186 2 2 6 5 503 248 103
4306+187 2 2 6 5 13 505 14
4307+188 2 2 6 5 230 505 467
4308+189 2 2 6 5 511 230 467
4309+190 2 2 6 5 164 515 442
4310+191 2 2 6 5 518 265 479
4311+192 2 2 6 5 260 520 503
4312+193 2 2 6 5 222 522 166
4313+194 2 2 6 5 522 222 498
4314+195 2 2 6 5 523 212 432
4315+196 2 2 6 5 524 166 520
4316+197 2 2 6 5 525 248 503
4317+198 2 2 6 5 17 530 18
4318+199 2 2 6 5 530 17 516
4319+200 2 2 6 5 253 531 261
4320+201 2 2 6 5 79 533 2
4321+202 2 2 6 5 534 226 509
4322+203 2 2 6 5 228 535 395
4323+204 2 2 6 5 233 540 393
4324+205 2 2 6 5 224 540 524
4325+206 2 2 6 5 541 166 522
4326+207 2 2 6 5 166 541 525
4327+208 2 2 6 5 546 252 407
4328+209 2 2 6 5 548 55 54
4329+210 2 2 6 5 548 257 247
4330+211 2 2 6 5 242 549 509
4331+212 2 2 6 5 228 549 516
4332+213 2 2 6 5 172 551 467
4333+214 2 2 6 5 553 220 466
4334+215 2 2 6 5 555 239 428
4335+216 2 2 6 5 556 253 488
4336+217 2 2 6 5 138 561 139
4337+218 2 2 6 5 247 562 548
4338+219 2 2 6 5 562 55 548
4339+220 2 2 6 5 39 563 40
4340+221 2 2 6 5 19 566 258
4341+222 2 2 6 5 566 242 258
4342+223 2 2 6 5 567 13 12
4343+224 2 2 6 5 567 172 467
4344+225 2 2 6 5 570 240 547
4345+226 2 2 6 5 53 573 54
4346+227 2 2 6 5 574 263 554
4347+228 2 2 6 5 263 574 508
4348+229 2 2 6 5 576 140 139
4349+230 2 2 6 5 169 578 267
4350+231 2 2 6 5 579 114 113
4351+232 2 2 6 5 583 131 130
4352+233 2 2 6 5 259 583 130
4353+234 2 2 6 5 11 584 12
4354+235 2 2 6 5 166 586 222
4355+236 2 2 6 5 586 233 222
4356+237 2 2 6 5 586 166 524
4357+238 2 2 6 5 35 587 36
4358+239 2 2 6 5 261 587 470
4359+240 2 2 6 5 573 548 54
4360+241 2 2 6 5 257 548 573
4361+242 2 2 6 5 561 576 139
4362+243 2 2 6 5 561 254 576
4363+244 2 2 6 5 397 511 231
4364+245 2 2 6 5 572 333 268
4365+246 2 2 6 5 546 432 212
4366+247 2 2 6 5 409 426 427
4367+248 2 2 6 5 523 446 212
4368+249 2 2 6 5 414 446 523
4369+250 2 2 6 5 443 512 169
4370+251 2 2 6 5 502 433 203
4371+252 2 2 6 5 419 454 466
4372+253 2 2 6 5 480 471 226
4373+254 2 2 6 5 534 480 226
4374+255 2 2 6 5 440 431 490
4375+256 2 2 6 5 523 477 215
4376+257 2 2 6 5 432 477 523
4377+258 2 2 6 5 471 515 226
4378+259 2 2 6 5 470 457 261
4379+260 2 2 6 5 553 487 223
4380+261 2 2 6 5 466 487 553
4381+262 2 2 6 5 567 505 13
4382+263 2 2 6 5 467 505 567
4383+264 2 2 6 5 511 551 231
4384+265 2 2 6 5 511 467 551
4385+266 2 2 6 5 500 587 35
4386+267 2 2 6 5 500 470 587
4387+268 2 2 6 5 518 492 252
4388+269 2 2 6 5 479 492 518
4389+270 2 2 6 5 515 509 226
4390+271 2 2 6 5 556 528 240
4391+272 2 2 6 5 488 528 556
4392+273 2 2 6 5 564 504 250
4393+274 2 2 6 5 494 504 564
4394+275 2 2 6 5 498 499 522
4395+276 2 2 6 5 525 520 166
4396+277 2 2 6 5 503 520 525
4397+278 2 2 6 5 543 508 574
4398+279 2 2 6 5 534 549 228
4399+280 2 2 6 5 534 509 549
4400+281 2 2 6 5 530 549 242
4401+282 2 2 6 5 530 516 549
4402+283 2 2 6 5 586 540 233
4403+284 2 2 6 5 524 540 586
4404+285 2 2 6 5 570 556 240
4405+286 2 2 6 5 547 559 570
4406+287 2 2 6 5 574 554 580
4407+288 2 2 6 5 103 102 503
4408+289 2 2 6 5 102 260 503
4409+290 2 2 6 5 88 557 89
4410+291 2 2 6 5 252 557 518
4411+292 2 2 6 5 3 495 4
4412+293 2 2 6 5 588 81 80
4413+294 2 2 6 5 542 79 78
4414+295 2 2 6 5 542 533 79
4415+296 2 2 6 5 544 118 117
4416+297 2 2 6 5 111 585 112
4417+298 2 2 6 5 585 111 554
4418+299 2 2 6 5 263 585 554
4419+300 2 2 6 5 473 66 65
4420+301 2 2 6 5 582 51 50
4421+302 2 2 6 5 582 235 491
4422+303 2 2 6 5 545 126 125
4423+304 2 2 6 5 568 39 38
4424+305 2 2 6 5 39 568 563
4425+306 2 2 6 5 562 56 55
4426+307 2 2 6 5 510 562 247
4427+308 2 2 6 5 569 53 52
4428+309 2 2 6 5 573 53 569
4429+310 2 2 6 5 578 107 106
4430+311 2 2 6 5 131 526 132
4431+312 2 2 6 5 131 583 526
4432+313 2 2 6 5 571 34 33
4433+314 2 2 6 5 34 571 500
4434+315 2 2 6 5 571 256 500
4435+316 2 2 6 5 32 571 33
4436+317 2 2 6 5 571 32 451
4437+318 2 2 6 5 571 474 256
4438+319 2 2 6 5 451 474 571
4439+320 2 2 6 5 565 42 41
4440+321 2 2 6 5 18 566 19
4441+322 2 2 6 5 566 18 530
4442+323 2 2 6 5 242 566 530
4443+324 2 2 6 5 507 95 94
4444+325 2 2 6 5 558 97 96
4445+326 2 2 6 5 553 558 220
4446+327 2 2 6 5 99 482 100
4447+328 2 2 6 5 535 560 230
4448+329 2 2 6 5 14 560 15
4449+330 2 2 6 5 560 14 505
4450+331 2 2 6 5 230 560 505
4451+332 2 2 6 5 16 516 17
4452+333 2 2 6 5 535 228 516
4453+334 2 2 6 5 497 98 97
4454+335 2 2 6 5 532 212 446
4455+336 2 2 6 5 90 532 91
4456+337 2 2 6 5 69 550 70
4457+338 2 2 6 5 575 169 267
4458+339 2 2 6 5 168 539 246
4459+340 2 2 6 5 486 222 233
4460+341 2 2 6 5 231 551 481
4461+342 2 2 6 5 250 551 172
4462+343 2 2 6 5 504 551 250
4463+344 2 2 6 5 504 481 551
4464+345 2 2 6 5 584 250 172
4465+346 2 2 6 5 564 250 584
4466+347 2 2 6 5 519 259 266
4467+348 2 2 6 5 575 248 525
4468+349 2 2 6 5 248 575 267
4469+350 2 2 6 5 525 541 575
4470+351 2 2 6 5 253 556 581
4471+352 2 2 6 5 581 556 570
4472+353 2 2 6 5 508 232 263
4473+354 2 2 6 5 585 113 112
4474+355 2 2 6 5 585 579 113
4475+356 2 2 6 5 263 232 585
4476+357 2 2 6 5 585 232 579
4477+358 2 2 6 5 105 104 248
4478+359 2 2 6 5 267 105 248
4479+360 2 2 6 5 12 172 567
4480+361 2 2 6 5 12 584 172
4481+362 2 2 6 5 267 106 105
4482+363 2 2 6 5 578 106 267
4483+364 2 2 6 5 332 808 745
4484+365 2 2 6 5 399 816 781
4485+366 2 2 6 5 818 182 465
4486+367 2 2 6 5 182 818 735
4487+368 2 2 6 5 304 822 804
4488+369 2 2 6 5 354 834 640
4489+370 2 2 6 5 341 843 792
4490+371 2 2 6 5 214 857 826
4491+372 2 2 6 5 343 860 806
4492+373 2 2 6 5 863 316 860
4493+374 2 2 6 5 332 864 767
4494+375 2 2 6 5 869 376 758
4495+376 2 2 6 5 359 871 659
4496+377 2 2 6 5 340 880 784
4497+378 2 2 6 5 333 882 490
4498+379 2 2 6 5 351 884 791
4499+380 2 2 6 5 886 284 826
4500+381 2 2 6 5 888 359 659
4501+382 2 2 6 5 890 297 862
4502+383 2 2 6 5 890 434 881
4503+384 2 2 6 5 214 891 857
4504+385 2 2 6 5 896 321 740
4505+386 2 2 6 5 896 323 879
4506+387 2 2 6 5 898 184 746
4507+388 2 2 6 5 899 179 871
4508+389 2 2 6 5 900 217 885
4509+390 2 2 6 5 225 907 902
4510+391 2 2 6 5 309 908 713
4511+392 2 2 6 5 909 335 865
4512+393 2 2 6 5 910 346 440
4513+394 2 2 6 5 198 911 875
4514+395 2 2 6 5 370 913 664
4515+396 2 2 6 5 918 236 894
4516+397 2 2 6 5 919 213 845
4517+398 2 2 6 5 357 920 916
4518+399 2 2 6 5 196 924 876
4519+400 2 2 6 5 926 306 857
4520+401 2 2 6 5 296 927 838
4521+402 2 2 6 5 928 340 784
4522+403 2 2 6 5 929 391 416
4523+404 2 2 6 5 931 229 914
4524+405 2 2 6 5 931 343 930
4525+406 2 2 6 5 328 932 925
4526+407 2 2 6 5 933 405 787
4527+408 2 2 6 5 934 376 869
4528+409 2 2 6 5 394 936 768
4529+410 2 2 6 5 307 936 935
4530+411 2 2 6 5 937 309 881
4531+412 2 2 6 5 213 939 845
4532+413 2 2 6 5 940 354 640
4533+414 2 2 6 5 177 942 765
4534+415 2 2 6 5 326 942 869
4535+416 2 2 6 5 295 944 872
4536+417 2 2 6 5 949 323 895
4537+418 2 2 6 5 323 949 879
4538+419 2 2 6 5 950 214 826
4539+420 2 2 6 5 344 952 898
4540+421 2 2 6 5 953 404 459
4541+422 2 2 6 5 953 205 728
4542+423 2 2 6 5 955 475 877
4543+424 2 2 6 5 957 296 838
4544+425 2 2 6 5 297 960 862
4545+426 2 2 6 5 964 307 935
4546+427 2 2 6 5 964 417 960
4547+428 2 2 6 5 965 351 791
4548+429 2 2 6 5 396 966 879
4549+430 2 2 6 5 473 967 887
4550+431 2 2 6 5 297 970 960
4551+432 2 2 6 5 971 217 900
4552+433 2 2 6 5 972 373 939
4553+434 2 2 6 5 343 974 860
4554+435 2 2 6 5 217 976 885
4555+436 2 2 6 5 976 217 916
4556+437 2 2 6 5 337 977 853
4557+438 2 2 6 5 400 979 902
4558+439 2 2 6 5 317 980 618
4559+440 2 2 6 5 173 982 856
4560+441 2 2 6 5 983 349 908
4561+442 2 2 6 5 194 985 929
4562+443 2 2 6 5 165 986 948
4563+444 2 2 6 5 349 987 796
4564+445 2 2 6 5 990 208 921
4565+446 2 2 6 5 990 389 961
4566+447 2 2 6 5 993 219 967
4567+448 2 2 6 5 225 996 819
4568+449 2 2 6 5 997 225 819
4569+450 2 2 6 5 225 997 907
4570+451 2 2 6 5 998 304 980
4571+452 2 2 6 5 304 998 946
4572+453 2 2 6 5 211 999 841
4573+454 2 2 6 5 337 1000 918
4574+455 2 2 6 5 1001 413 930
4575+456 2 2 6 5 1002 328 925
4576+457 2 2 6 5 328 1002 923
4577+458 2 2 6 5 236 1003 894
4578+459 2 2 6 5 1004 339 822
4579+460 2 2 6 5 1005 219 872
4580+461 2 2 6 5 1006 381 978
4581+462 2 2 6 5 188 1007 963
4582+463 2 2 6 5 375 1009 756
4583+464 2 2 6 5 1010 221 493
4584+465 2 2 6 5 221 1010 838
4585+466 2 2 6 5 1012 335 760
4586+467 2 2 6 5 335 1012 973
4587+468 2 2 6 5 171 1013 820
4588+469 2 2 6 5 1014 321 966
4589+470 2 2 6 5 321 1014 965
4590+471 2 2 6 5 1015 322 865
4591+472 2 2 6 5 1016 473 887
4592+473 2 2 6 5 311 1018 888
4593+474 2 2 6 5 210 1020 937
4594+475 2 2 6 5 349 1021 987
4595+476 2 2 6 5 1022 201 469
4596+477 2 2 6 5 201 1022 933
4597+478 2 2 6 5 193 1023 893
4598+479 2 2 6 5 1025 396 879
4599+480 2 2 6 5 396 1025 877
4600+481 2 2 6 5 194 1026 447
4601+482 2 2 6 5 162 1027 496
4602+483 2 2 6 5 1028 455 979
4603+484 2 2 6 5 379 1029 809
4604+485 2 2 6 5 318 1029 1005
4605+486 2 2 6 5 390 1032 766
4606+487 2 2 6 5 1033 379 887
4607+488 2 2 6 5 1033 219 1005
4608+489 2 2 6 5 394 1034 941
4609+490 2 2 6 5 1034 394 875
4610+491 2 2 6 5 381 1036 978
4611+492 2 2 6 5 1036 381 923
4612+493 2 2 6 5 1037 194 929
4613+494 2 2 6 5 416 1037 929
4614+495 2 2 6 5 194 1037 1026
4615+496 2 2 6 5 369 1038 954
4616+497 2 2 6 5 502 1042 433
4617+498 2 2 6 5 1043 221 838
4618+499 2 2 6 5 173 1044 1030
4619+500 2 2 6 5 1045 510 238
4620+501 2 2 6 5 312 1046 827
4621+502 2 2 6 5 342 1046 1035
4622+503 2 2 6 5 1047 188 963
4623+504 2 2 6 5 1048 196 897
4624+505 2 2 6 5 196 1048 924
4625+506 2 2 6 5 1049 173 856
4626+507 2 2 6 5 173 1049 975
4627+508 2 2 6 5 1050 392 924
4628+509 2 2 6 5 1051 192 759
4629+510 2 2 6 5 297 1053 681
4630+511 2 2 6 5 309 1053 881
4631+512 2 2 6 5 473 1054 967
4632+513 2 2 6 5 1055 238 510
4633+514 2 2 6 5 1055 351 965
4634+515 2 2 6 5 1056 165 948
4635+516 2 2 6 5 1057 343 806
4636+517 2 2 6 5 343 1057 930
4637+518 2 2 6 5 519 1058 170
4638+519 2 2 6 5 396 1059 966
4639+520 2 2 6 5 1059 396 851
4640+521 2 2 6 5 163 1060 486
4641+522 2 2 6 5 377 1061 897
4642+523 2 2 6 5 1063 403 907
4643+524 2 2 6 5 1063 361 987
4644+525 2 2 6 5 350 1064 845
4645+526 2 2 6 5 357 1064 920
4646+527 2 2 6 5 1065 412 921
4647+528 2 2 6 5 1066 214 950
4648+529 2 2 6 5 193 1068 790
4649+530 2 2 6 5 317 1068 980
4650+531 2 2 6 5 1069 335 973
4651+532 2 2 6 5 335 1069 865
4652+533 2 2 6 5 1070 182 735
4653+534 2 2 6 5 165 1071 986
4654+535 2 2 6 5 1071 165 1041
4655+536 2 2 6 5 1072 441 973
4656+537 2 2 6 5 204 1073 847
4657+538 2 2 6 5 309 1074 908
4658+539 2 2 6 5 1074 309 937
4659+540 2 2 6 5 1076 163 486
4660+541 2 2 6 5 393 1076 486
4661+542 2 2 6 5 163 1076 1052
4662+543 2 2 6 5 379 1078 887
4663+544 2 2 6 5 1078 379 889
4664+545 2 2 6 5 1079 362 1035
4665+546 2 2 6 5 1080 327 714
4666+547 2 2 6 5 1080 306 926
4667+548 2 2 6 5 360 1081 716
4668+549 2 2 6 5 344 1081 952
4669+550 2 2 6 5 1083 363 962
4670+551 2 2 6 5 229 1085 513
4671+552 2 2 6 5 413 1085 930
4672+553 2 2 6 5 380 1088 983
4673+554 2 2 6 5 1089 382 841
4674+555 2 2 6 5 353 1089 841
4675+556 2 2 6 5 1091 348 913
4676+557 2 2 6 5 348 1091 1043
4677+558 2 2 6 5 1092 200 521
4678+559 2 2 6 5 349 1095 1021
4679+560 2 2 6 5 1095 349 983
4680+561 2 2 6 5 1098 184 898
4681+562 2 2 6 5 502 1099 1065
4682+563 2 2 6 5 1099 502 203
4683+564 2 2 6 5 1100 69 68
4684+565 2 2 6 5 204 1101 521
4685+566 2 2 6 5 353 1101 1089
4686+567 2 2 6 5 1102 400 902
4687+568 2 2 6 5 262 1104 483
4688+569 2 2 6 5 337 1105 1000
4689+570 2 2 6 5 1106 391 929
4690+571 2 2 6 5 496 1107 162
4691+572 2 2 6 5 401 1107 1011
4692+573 2 2 6 5 1108 384 876
4693+574 2 2 6 5 1109 161 437
4694+575 2 2 6 5 1110 384 1108
4695+576 2 2 6 5 403 1112 1102
4696+577 2 2 6 5 1113 437 161
4697+578 2 2 6 5 1113 438 431
4698+579 2 2 6 5 1115 249 435
4699+580 2 2 6 5 1117 382 1089
4700+581 2 2 6 5 1118 208 862
4701+582 2 2 6 5 1118 417 1042
4702+583 2 2 6 5 1120 353 841
4703+584 2 2 6 5 1120 373 972
4704+585 2 2 6 5 491 1121 582
4705+586 2 2 6 5 1121 491 569
4706+587 2 2 6 5 1121 51 582
4707+588 2 2 6 5 378 1122 1116
4708+589 2 2 6 5 1123 374 1003
4709+590 2 2 6 5 435 1124 1115
4710+591 2 2 6 5 1124 336 1115
4711+592 2 2 6 5 1126 385 1077
4712+593 2 2 6 5 1127 373 999
4713+594 2 2 6 5 403 1128 1112
4714+595 2 2 6 5 1128 403 1021
4715+596 2 2 6 5 1129 225 902
4716+597 2 2 6 5 359 1130 871
4717+598 2 2 6 5 372 1130 1083
4718+599 2 2 6 5 364 1132 856
4719+600 2 2 6 5 1132 364 1026
4720+601 2 2 6 5 1133 211 841
4721+602 2 2 6 5 382 1133 841
4722+603 2 2 6 5 211 1133 1040
4723+604 2 2 6 5 184 1134 746
4724+605 2 2 6 5 408 1134 1087
4725+606 2 2 6 5 1134 408 746
4726+607 2 2 6 5 327 1135 714
4727+608 2 2 6 5 1135 327 981
4728+609 2 2 6 5 1136 67 66
4729+610 2 2 6 5 1136 473 1016
4730+611 2 2 6 5 473 1136 66
4731+612 2 2 6 5 162 1138 1027
4732+613 2 2 6 5 385 1138 1077
4733+614 2 2 6 5 340 1139 880
4734+615 2 2 6 5 1139 430 880
4735+616 2 2 6 5 1139 340 1075
4736+617 2 2 6 5 437 1140 1109
4737+618 2 2 6 5 1140 437 952
4738+619 2 2 6 5 1140 360 1109
4739+620 2 2 6 5 399 1141 1001
4740+621 2 2 6 5 206 1142 969
4741+622 2 2 6 5 1143 399 781
4742+623 2 2 6 5 399 1143 1141
4743+624 2 2 6 5 213 1144 939
4744+625 2 2 6 5 1145 385 920
4745+626 2 2 6 5 1145 350 1027
4746+627 2 2 6 5 369 1146 874
4747+628 2 2 6 5 1146 369 954
4748+629 2 2 6 5 365 1147 900
4749+630 2 2 6 5 378 1147 1122
4750+631 2 2 6 5 469 1148 1022
4751+632 2 2 6 5 1148 374 1022
4752+633 2 2 6 5 1149 429 237
4753+634 2 2 6 5 463 1149 237
4754+635 2 2 6 5 441 1150 973
4755+636 2 2 6 5 208 1152 862
4756+637 2 2 6 5 434 1152 961
4757+638 2 2 6 5 372 1153 801
4758+639 2 2 6 5 171 1153 962
4759+640 2 2 6 5 1155 322 1015
4760+641 2 2 6 5 1156 392 963
4761+642 2 2 6 5 392 1156 1108
4762+643 2 2 6 5 47 1157 48
4763+644 2 2 6 5 1157 47 830
4764+645 2 2 6 5 1159 356 797
4765+646 2 2 6 5 1160 398 264
4766+647 2 2 6 5 1160 456 1119
4767+648 2 2 6 5 456 1160 264
4768+649 2 2 6 5 118 1161 119
4769+650 2 2 6 5 406 1162 1028
4770+651 2 2 6 5 345 1163 1067
4771+652 2 2 6 5 435 1163 1124
4772+653 2 2 6 5 1164 360 716
4773+654 2 2 6 5 206 1165 935
4774+655 2 2 6 5 312 1166 1079
4775+656 2 2 6 5 1167 537 1045
4776+657 2 2 6 5 537 1167 851
4777+658 2 2 6 5 238 1167 1045
4778+659 2 2 6 5 1168 448 1000
4779+660 2 2 6 5 400 1169 948
4780+661 2 2 6 5 1169 400 1102
4781+662 2 2 6 5 1170 206 935
4782+663 2 2 6 5 1170 394 941
4783+664 2 2 6 5 1171 416 391
4784+665 2 2 6 5 1172 351 1055
4785+666 2 2 6 5 510 1172 1055
4786+667 2 2 6 5 463 1173 1149
4787+668 2 2 6 5 406 1173 1162
4788+669 2 2 6 5 159 1174 882
4789+670 2 2 6 5 1174 490 882
4790+671 2 2 6 5 476 1175 972
4791+672 2 2 6 5 353 1175 1092
4792+673 2 2 6 5 1176 236 918
4793+674 2 2 6 5 236 1176 1154
4794+675 2 2 6 5 1177 221 1043
4795+676 2 2 6 5 221 1177 1137
4796+677 2 2 6 5 337 1178 977
4797+678 2 2 6 5 1179 406 986
4798+679 2 2 6 5 1179 429 1149
4799+680 2 2 6 5 1180 497 97
4800+681 2 2 6 5 1180 558 553
4801+682 2 2 6 5 558 1180 97
4802+683 2 2 6 5 1181 437 1113
4803+684 2 2 6 5 431 1181 1113
4804+685 2 2 6 5 1183 99 98
4805+686 2 2 6 5 497 1183 98
4806+687 2 2 6 5 211 1184 1011
4807+688 2 2 6 5 1184 211 1040
4808+689 2 2 6 5 336 1185 727
4809+690 2 2 6 5 1185 336 1124
4810+691 2 2 6 5 392 1186 963
4811+692 2 2 6 5 1186 392 1050
4812+693 2 2 6 5 1190 216 1088
4813+694 2 2 6 5 229 1192 914
4814+695 2 2 6 5 449 1192 1187
4815+696 2 2 6 5 386 1193 893
4816+697 2 2 6 5 517 1193 1097
4817+698 2 2 6 5 1193 517 893
4818+699 2 2 6 5 1194 380 1020
4819+700 2 2 6 5 1195 412 1065
4820+701 2 2 6 5 1198 420 1112
4821+702 2 2 6 5 1200 93 92
4822+703 2 2 6 5 175 1201 1131
4823+704 2 2 6 5 1202 386 893
4824+705 2 2 6 5 249 1203 460
4825+706 2 2 6 5 1204 350 845
4826+707 2 2 6 5 1204 373 1127
4827+708 2 2 6 5 236 1205 1003
4828+709 2 2 6 5 1206 356 1159
4829+710 2 2 6 5 1208 436 559
4830+711 2 2 6 5 1208 171 962
4831+712 2 2 6 5 569 1209 573
4832+713 2 2 6 5 1209 257 573
4833+714 2 2 6 5 464 1210 1123
4834+715 2 2 6 5 1210 464 170
4835+716 2 2 6 5 1211 160 459
4836+717 2 2 6 5 404 1211 459
4837+718 2 2 6 5 160 1211 572
4838+719 2 2 6 5 1213 170 1141
4839+720 2 2 6 5 1213 405 1210
4840+721 2 2 6 5 170 1213 1210
4841+722 2 2 6 5 397 1214 1041
4842+723 2 2 6 5 1215 339 1004
4843+724 2 2 6 5 1216 254 447
4844+725 2 2 6 5 1216 364 1119
4845+726 2 2 6 5 208 1217 921
4846+727 2 2 6 5 502 1217 1042
4847+728 2 2 6 5 425 1218 993
4848+729 2 2 6 5 1219 262 160
4849+730 2 2 6 5 439 1219 160
4850+731 2 2 6 5 1224 484 1099
4851+732 2 2 6 5 203 1224 1099
4852+733 2 2 6 5 1225 435 249
4853+734 2 2 6 5 1225 460 468
4854+735 2 2 6 5 460 1225 249
4855+736 2 2 6 5 401 1226 1107
4856+737 2 2 6 5 1226 162 1107
4857+738 2 2 6 5 1227 414 523
4858+739 2 2 6 5 414 1227 419
4859+740 2 2 6 5 215 1227 523
4860+741 2 2 6 5 1228 526 1154
4861+742 2 2 6 5 1229 341 1013
4862+743 2 2 6 5 1230 460 1203
4863+744 2 2 6 5 460 1230 1077
4864+745 2 2 6 5 1231 359 888
4865+746 2 2 6 5 202 1232 1004
4866+747 2 2 6 5 1232 202 1024
4867+748 2 2 6 5 1234 362 1030
4868+749 2 2 6 5 450 1235 1103
4869+750 2 2 6 5 217 1236 916
4870+751 2 2 6 5 224 1237 540
4871+752 2 2 6 5 1237 393 540
4872+753 2 2 6 5 1237 224 1116
4873+754 2 2 6 5 412 1239 921
4874+755 2 2 6 5 1240 364 856
4875+756 2 2 6 5 364 1240 1119
4876+757 2 2 6 5 1242 206 969
4877+758 2 2 6 5 206 1242 1165
4878+759 2 2 6 5 1243 357 916
4879+760 2 2 6 5 357 1243 1207
4880+761 2 2 6 5 1245 193 893
4881+762 2 2 6 5 1245 517 946
4882+763 2 2 6 5 517 1245 893
4883+764 2 2 6 5 244 1246 266
4884+765 2 2 6 5 519 1246 1058
4885+766 2 2 6 5 1246 519 266
4886+767 2 2 6 5 1247 400 948
4887+768 2 2 6 5 400 1247 979
4888+769 2 2 6 5 1248 115 114
4889+770 2 2 6 5 1249 217 971
4890+771 2 2 6 5 487 1249 971
4891+772 2 2 6 5 101 1250 260
4892+773 2 2 6 5 1252 365 1052
4893+774 2 2 6 5 1252 393 1122
4894+775 2 2 6 5 197 1253 469
4895+776 2 2 6 5 1254 368 1131
4896+777 2 2 6 5 507 1255 95
4897+778 2 2 6 5 558 1255 220
4898+779 2 2 6 5 219 1256 872
4899+780 2 2 6 5 1256 219 993
4900+781 2 2 6 5 67 1257 68
4901+782 2 2 6 5 445 1257 1016
4902+783 2 2 6 5 1259 216 1190
4903+784 2 2 6 5 216 1259 1198
4904+785 2 2 6 5 391 1260 1024
4905+786 2 2 6 5 1260 391 1106
4906+787 2 2 6 5 1262 362 1079
4907+788 2 2 6 5 442 1263 164
4908+789 2 2 6 5 413 1264 1085
4909+790 2 2 6 5 1264 513 1085
4910+791 2 2 6 5 413 1266 1058
4911+792 2 2 6 5 1266 413 1001
4912+793 2 2 6 5 1266 170 1058
4913+794 2 2 6 5 1267 190 837
4914+795 2 2 6 5 1267 342 1035
4915+796 2 2 6 5 1268 486 1060
4916+797 2 2 6 5 91 1270 92
4917+798 2 2 6 5 446 1270 532
4918+799 2 2 6 5 1270 91 532
4919+800 2 2 6 5 1271 542 243
4920+801 2 2 6 5 1272 374 1148
4921+802 2 2 6 5 1273 333 572
4922+803 2 2 6 5 333 1273 844
4923+804 2 2 6 5 529 1274 161
4924+805 2 2 6 5 182 1275 465
4925+806 2 2 6 5 430 1275 880
4926+807 2 2 6 5 1275 182 880
4927+808 2 2 6 5 29 1279 30
4928+809 2 2 6 5 484 1279 1195
4929+810 2 2 6 5 363 1280 1125
4930+811 2 2 6 5 1280 363 1083
4931+812 2 2 6 5 1281 398 982
4932+813 2 2 6 5 175 1282 528
4933+814 2 2 6 5 1282 175 1131
4934+815 2 2 6 5 1283 450 1103
4935+816 2 2 6 5 350 1284 1027
4936+817 2 2 6 5 496 1284 1127
4937+818 2 2 6 5 1284 496 1027
4938+819 2 2 6 5 452 1285 1050
4939+820 2 2 6 5 451 1286 474
4940+821 2 2 6 5 203 1286 1224
4941+822 2 2 6 5 5 1287 168
4942+823 2 2 6 5 417 1288 1042
4943+824 2 2 6 5 1288 433 1042
4944+825 2 2 6 5 1288 417 1165
4945+826 2 2 6 5 254 1289 576
4946+827 2 2 6 5 456 1289 1119
4947+828 2 2 6 5 1290 463 978
4948+829 2 2 6 5 1291 420 1198
4949+830 2 2 6 5 547 1292 1229
4950+831 2 2 6 5 1292 547 240
4951+832 2 2 6 5 1293 59 58
4952+833 2 2 6 5 434 1294 881
4953+834 2 2 6 5 1295 391 1024
4954+835 2 2 6 5 391 1295 1171
4955+836 2 2 6 5 116 1296 117
4956+837 2 2 6 5 1296 544 117
4957+838 2 2 6 5 1296 116 1137
4958+839 2 2 6 5 1297 234 539
4959+840 2 2 6 5 1297 441 1072
4960+841 2 2 6 5 1298 405 933
4961+842 2 2 6 5 1298 374 1123
4962+843 2 2 6 5 88 1299 557
4963+844 2 2 6 5 1299 518 557
4964+845 2 2 6 5 234 1300 539
4965+846 2 2 6 5 1302 229 513
4966+847 2 2 6 5 1302 545 1187
4967+848 2 2 6 5 433 1303 203
4968+849 2 2 6 5 1304 352 867
4969+850 2 2 6 5 482 1305 1199
4970+851 2 2 6 5 224 1307 1116
4971+852 2 2 6 5 1307 224 1199
4972+853 2 2 6 5 1308 200 1092
4973+854 2 2 6 5 1309 516 16
4974+855 2 2 6 5 1309 560 535
4975+856 2 2 6 5 516 1309 535
4976+857 2 2 6 5 1310 419 220
4977+858 2 2 6 5 419 1310 414
4978+859 2 2 6 5 1313 442 515
4979+860 2 2 6 5 471 1313 515
4980+861 2 2 6 5 442 1313 1190
4981+862 2 2 6 5 230 1314 535
4982+863 2 2 6 5 1314 395 535
4983+864 2 2 6 5 1318 224 524
4984+865 2 2 6 5 224 1318 1199
4985+866 2 2 6 5 380 1319 1088
4986+867 2 2 6 5 1319 380 1194
4987+868 2 2 6 5 512 1320 169
4988+869 2 2 6 5 1320 578 169
4989+870 2 2 6 5 1321 255 1067
4990+871 2 2 6 5 507 1323 1310
4991+872 2 2 6 5 1323 414 1310
4992+873 2 2 6 5 352 1325 950
4993+874 2 2 6 5 1326 464 1205
4994+875 2 2 6 5 341 1328 843
4995+876 2 2 6 5 1328 341 1229
4996+877 2 2 6 5 453 1330 1111
4997+878 2 2 6 5 384 1332 876
4998+879 2 2 6 5 351 1333 884
4999+880 2 2 6 5 1333 410 884
5000+881 2 2 6 5 508 1335 232
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches