diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -4,12 +4,17 @@
 [![Build Status](https://travis-ci.org/noinia/hgeometry.svg?branch=master)](https://travis-ci.org/noinia/hgeometry)
 [![Hackage](https://img.shields.io/hackage/v/hgeometry.svg)](https://hackage.haskell.org/package/hgeometry)
 
-HGeometry provides some basic geometry types, and geometric algorithms and data
-structures for them. The main two focusses are: (1) Strong type safety, and (2)
-implementations of geometric algorithms and data structures with good
-asymptotic running time guarantees. Design choices showing these aspects are
-for example:
+HGeometry is a library for computing with geometric objects in
+Haskell. It defines basic geometric types and primitives, and it
+implements some geometric data structures and algorithms. The main two
+focusses are:
 
+- 1. Strong type safety, and
+- 2. implementations of geometric algorithms and data structures that
+have good asymptotic running time guarantees.
+
+Design choices showing these aspects are for example:
+
 - we provide a data type `Point d r` parameterized by a
 type-level natural number `d`, representing d-dimensional points (in all cases
 our type parameter `r` represents the (numeric) type for the (real)-numbers):
@@ -20,10 +25,37 @@
 - the vertices of a `PolyLine d p r` are stored in a `Data.LSeq` which enforces
 that a polyline is a proper polyline, and thus has at least two vertices.
 
-Please note that aspect (2), implementing good algorithms, is much work in
+Please note that aspect two, implementing good algorithms, is much work in
 progress. Only a few algorithms have been implemented, some of which could use
-some improvements. Currently, HGeometry provides the following algorithms:
+some improvements.
 
+HGeometry Packages
+------------------
+
+HGeometry is split into a few smaller packages. In particular:
+
+- hgeometry-combinatorial : defines some non-geometric
+  (i.e. combinatorial) data types, data structures, and algorithms.
+- hgeometry-ipe : defines functions for working with [ipe](http://ipe.otfried.org) files.
+- hgeometry-svg : defines functions for working with svg files.
+- hgeometry-interactive : defines functions for building an
+  interactive viewer using [miso](https://haskell-miso.org).
+- hgeometry : defines the actual geometric data types, data
+  structures, and algorithms.
+
+In addition there is a [hgeometry-examples](hgeometry-examples)
+package that defines some example applications, and a hgometry-test
+package that contains all testcases. The latter is to work around a
+bug in cabal.
+
+Available Geometric Algorithms
+------------------------------
+
+Apart from some basic geometric primitives such as intersecting
+line segments, testing if a point lies in a polygon etc, HGeometry
+implements some more advanced geometric algorithms. In particuar, the
+following algorithms are currently available:
+
 * two \(O(n \log n)\) time algorithms for convex hull in
   $\mathbb{R}^2$: the typical Graham scan, and a divide and conquer algorithm,
 * an \(O(n)\) expected time algorithm for smallest enclosing disk in $\mathbb{R}^$2,
@@ -40,21 +72,30 @@
   decomposition.
 * The classic (optimal) \(O(n\log n)\) time divide and conquer algorithm to
   compute the closest pair among a set of \(n\) points in \(\mathbb{R}^2\).
+* An \(O(nm)\) time algorithm to compute the discrete Fr\'echet
+  distance of two sequences of points (curves) of length \(n\) and
+  \(m\), respectively.
 
-It also has some geometric data structures. In particular, HGeometry contans an
-implementation of
+Available Geometric Data Structures
+-----------------------------------
 
+HGeometry also contains an implementation of some geometric data
+structures. In particular,
+
 * A one dimensional Segment Tree. The base tree is static.
 * A one dimensional Interval Tree. The base tree is static.
 * A KD-Tree. The base tree is static.
 
-HGeometry also includes a datastructure/data type for planar graphs. In
-particular, it has a `EdgeOracle` data structure, that can be built in \(O(n)\)
-time that can test if the graph contains an edge in constant time.
+There is also support for working with planar subdivisions. As a
+result, [hgeometry-combinatorial] also includes a data structure for
+working with planar graphs. In particular, it has an `EdgeOracle` data
+structure, that can be built in \(O(n)\) time that can test if the
+planar graph contains an edge in constant time.
 
-Numeric Types
--------------
 
+Avoiding Floating-point issues
+-------------------------------
+
 All geometry types are parameterized by a numerical type `r`. It is well known
 that Floating-point arithmetic and Geometric algorithms don't go well together;
 i.e. because of floating point errors one may get completely wrong
@@ -62,9 +103,10 @@
 types. In several algorithms it is sufficient if the type `r` is
 `Fractional`. Hence, you can use an exact number type such as `Rational`.
 
-A Note on the Ext (:+) data type
----------------------------------
 
+Working with additional data
+----------------------------
+
 In many applications we do not just have geometric data, e.g. `Point d r`s or
 `Polygon r`s, but instead, these types have some additional properties, like a
 color, size, thickness, elevation, or whatever. Hence, we would like that our
@@ -75,43 +117,16 @@
 themselves, and thus we would like all the help that the type-system/compiler
 can give us. Hence, we choose to work with concrete types.
 
-To still allow for some extensibility our types will use the Ext (:+) type. For
-example, our `Polygon` data type, has an extra type parameter `p` that allows
-the vertices of the polygon to cary some extra information of type `p` (for
-example a color, a size, or whatever).
+To still allow for some extensibility our types will use the Ext (:+)
+type, as defined in the hgeometry-combinatorial package. For example,
+our `Polygon` data type, has an extra type parameter `p` that allows
+the vertices of the polygon to cary some extra information of type `p`
+(for example a color, a size, or whatever).
 
 ```haskell
 data Polygon (t :: PolygonType) p r where
   SimplePolygon :: C.CSeq (Point 2 r :+ p)                         -> Polygon Simple p r
   MultiPolygon  :: C.CSeq (Point 2 r :+ p) -> [Polygon Simple p r] -> Polygon Multi  p r
 ```
-
 In all places this extra data is accessable by the (:+) type in Data.Ext, which
 is essentially just a pair.
-
-Reading and Writing Ipe files
------------------------------
-
-Apart from geometric types, HGeometry provides some interface for reading and
-writing Ipe (http://ipe.otfried.org). However, this is all very work in
-progress. Hence, the API is experimental and may change at any time! Here is an
-example showing reading a set of points from an Ipe file, computing the
-DelaunayTriangulation, and writing the result again to an output file
-
-```haskell
-mainWith                          :: Options -> IO ()
-mainWith (Options inFile outFile) = do
-    ePage <- readSinglePageFile inFile
-    case ePage of
-      Left err                         -> print err
-      Right (page :: IpePage Rational) -> case page^..content.traverse._IpeUse of
-        []         -> putStrLn "No points found"
-        syms@(_:_) -> do
-           let pts  = syms&traverse.core %~ (^.symbolPoint)
-               pts' = NonEmpty.fromList pts
-               dt   = delaunayTriangulation $ pts'
-               out  = [iO $ drawTriangulation dt]
-           writeIpeFile outFile . singlePageFromContent $ out
-```
-
-See the examples directory for more examples.
diff --git a/benchmark/Algorithms/Geometry/ClosestPair/Bench.hs b/benchmark/Algorithms/Geometry/ClosestPair/Bench.hs
deleted file mode 100644
--- a/benchmark/Algorithms/Geometry/ClosestPair/Bench.hs
+++ /dev/null
@@ -1,48 +0,0 @@
-module Algorithms.Geometry.ClosestPair.Bench where
-
-import qualified Algorithms.Geometry.ClosestPair.DivideAndConquer as DivideAndConquer
-import qualified Algorithms.Geometry.ClosestPair.Naive as Naive
-import           Benchmark.Util
-import           Control.DeepSeq
-import           Criterion.Main
-import           Criterion.Types
-import           Data.Ext
-import           Data.Geometry.Point
-import           Data.Proxy
-import           Test.QuickCheck
-import           Test.QuickCheck.HGeometryInstances ()
-import           Data.LSeq (LSeq)
-import qualified Data.LSeq as LSeq
-
---------------------------------------------------------------------------------
-
-main :: IO ()
-main = defaultMainWith cfg [ benchmark ]
-  where
-    cfg = defaultConfig { reportFile = Just "bench.html" }
-
-benchmark :: Benchmark
-benchmark = bgroup "convexHullBench"
-    [ env (genPts (Proxy :: Proxy Int) 10000) benchBuild
-    ]
-
---------------------------------------------------------------------------------
-
-genPts                 :: (Ord r, Arbitrary r)
-                       => proxy r -> Int -> IO (LSeq 2 (Point 2 r :+ ()))
-genPts _ n | n >= 2    = generate (LSeq.promise . LSeq.fromList <$> vectorOf n arbitrary)
-           | otherwise = error "genPts: Need at least 2 points"
-
--- | Benchmark computing the closest pair
-benchBuild    :: (Ord r, Num r, NFData r) => LSeq 2 (Point 2 r :+ ()) -> Benchmark
-benchBuild ps = bgroup "closestPair" [ bgroup (show n) (build $ take' n ps)
-                                     | n <- sizes' ps
-                                     ]
-  where
-    take' n = LSeq.promise . LSeq.take n
-    sizes' pts = let n = length pts in [ n*i `div` 100 | i <- [10,20,25,50,75,100]]
-
-    build pts = [ bench "sort"     $ nf LSeq.unstableSort pts
-                , bench "Div&Conq" $ nf DivideAndConquer.closestPair pts
-                , bench "Naive"    $ nf Naive.closestPair pts
-                ]
diff --git a/benchmark/Algorithms/Geometry/ConvexHull/Bench.hs b/benchmark/Algorithms/Geometry/ConvexHull/Bench.hs
deleted file mode 100644
--- a/benchmark/Algorithms/Geometry/ConvexHull/Bench.hs
+++ /dev/null
@@ -1,72 +0,0 @@
-module Algorithms.Geometry.ConvexHull.Bench where
-
-import qualified Algorithms.Geometry.ConvexHull.DivideAndConquer as DivideAndConquer
-import qualified Algorithms.Geometry.ConvexHull.GrahamScan as GrahamScan
-
--- | copies of the convex hull algo with different point types
-import qualified Algorithms.Geometry.ConvexHull.GrahamV2   as GV
-import qualified Algorithms.Geometry.ConvexHull.GrahamFam  as GFam
-import qualified Algorithms.Geometry.ConvexHull.GrahamFamPeano  as GPeano
-import qualified Algorithms.Geometry.ConvexHull.GrahamFam6  as GFam6
-import qualified Algorithms.Geometry.ConvexHull.GrahamFixed as GFix
-
-
-import           Benchmark.Util
-import           Control.DeepSeq
-import           Criterion.Main
-import           Criterion.Types
-import           Data.Ext
-import           Data.Geometry.Point
-import           Data.List.NonEmpty (NonEmpty(..))
-import qualified Data.List.NonEmpty as NonEmpty
-import           Data.Proxy
-import           Test.QuickCheck
-import           Test.QuickCheck.HGeometryInstances ()
-
---------------------------------------------------------------------------------
-
-main :: IO ()
-main = defaultMainWith cfg [ benchmark ]
-  where
-    cfg = defaultConfig { reportFile = Just "bench.html" }
-
-benchmark :: Benchmark
-benchmark = bgroup "convexHullBench"
-    [ env (genPts (Proxy :: Proxy Int) 10000) benchBuild
-    ]
-
---------------------------------------------------------------------------------
-
-genPts     :: (Ord r, Arbitrary r) => proxy r -> Int -> IO (NonEmpty (Point 2 r :+ ()))
-genPts _ n = generate (NonEmpty.fromList <$> vectorOf n arbitrary)
-
--- | Benchmark building the convexHull
-benchBuild    :: (Ord r, Num r, NFData r) => NonEmpty (Point 2 r :+ ()) -> Benchmark
-benchBuild ps = bgroup "build" [ bgroup (show n) (build $ take' n ps)
-                               | n <- sizes' ps
-                               ]
-  where
-    take' n = NonEmpty.fromList . NonEmpty.take n
-    sizes' _ = [2000]
-
-    build pts = [ bench "sort"                 $ nf NonEmpty.sort pts
-                , bench "sort_Linear.V2"       $ nf NonEmpty.sort ptsV2
-                , bench "sort_FamPeano"        $ nf NonEmpty.sort ptsFamPeano
-                , bench "sort_Family"          $ nf NonEmpty.sort ptsFam
-                , bench "sort_Family6"         $ nf NonEmpty.sort ptsFam6
-                , bench "sort_Fixed"           $ nf NonEmpty.sort ptsFix
-
-                , bench "grahamScan"           $ nf GrahamScan.convexHull pts
-                , bench "grahamScan_Linear.V2" $ nf GV.convexHull         ptsV2
-                , bench "grahamScan_FamPeano"  $ nf GPeano.convexHull     ptsFamPeano
-                , bench "grahamScan_Family"    $ nf GFam.convexHull       ptsFam
-                , bench "grahamScan_Fixed"     $ nf GFix.convexHull       ptsFix
-
-                , bench "Div&Conq"             $ nf DivideAndConquer.convexHull pts
-                ]
-      where
-        ptsV2       = fmap (GV.fromP) pts
-        ptsFamPeano = fmap (GPeano.fromP) pts
-        ptsFam      = fmap (GFam.fromP) pts
-        ptsFam6     = fmap (GFam6.fromP) pts
-        ptsFix      = fmap (GFix.fromP) pts
diff --git a/benchmark/Algorithms/Geometry/ConvexHull/GrahamFam.hs b/benchmark/Algorithms/Geometry/ConvexHull/GrahamFam.hs
deleted file mode 100644
--- a/benchmark/Algorithms/Geometry/ConvexHull/GrahamFam.hs
+++ /dev/null
@@ -1,103 +0,0 @@
-{-# LANGUAGE UndecidableInstances #-}
-module Algorithms.Geometry.ConvexHull.GrahamFam( convexHull
-                                               , upperHull
-                                               , lowerHull, fromP
-                                               ) where
-
-import           Control.DeepSeq
-import           Control.Lens ((^.))
-import           Data.Ext
-import           Data.Geometry.Point
-import qualified Data.Geometry.Vector.VectorFamily as VF
-import           Data.List.NonEmpty (NonEmpty(..))
-import qualified Data.List.NonEmpty as NonEmpty
-import           Data.Monoid
-import           GHC.TypeLits
-
-
-newtype MyPoint d r = MyPoint (VF.Vector d r)
-
-deriving instance (VF.Arity d, Eq r)  => Eq (MyPoint d r)
-deriving instance (VF.Arity d, Ord r) => Ord (MyPoint d r)
-deriving instance (VF.Arity d, Show r) => Show (MyPoint d r)
-deriving instance (NFData (VF.Vector d r)) => NFData (MyPoint d r)
-
-pattern MyPoint2 x y = MyPoint (VF.Vector2 x y)
-
-
--- instance (NFData r, Arity d) => NFData (MyPoint d r)  where
---   rnf (MyPoint x y) = rnf (x,y)
---   rnf (MyP p)       = rnf p
-
-toP                    :: MyPoint 2 r :+ e -> Point 2 r :+ e
-toP (MyPoint2 x y :+ e) = Point2 x y :+ e
-
-fromP                   :: Point 2 r :+ e -> MyPoint 2 r :+ e
-fromP (Point2 x y :+ e) = MyPoint2 x y :+ e
-
-
-subt :: Num r => MyPoint 2 r -> MyPoint 2 r -> MyPoint 2 r
-(MyPoint2 x y) `subt` (MyPoint2 a b) = MyPoint2 (x-a) (y-b)
-
-newtype ConvexPolygon p r = ConvexPolygon [Point 2 r :+ p] deriving (Show,Eq,NFData)
-
--- | \(O(n \log n)\) time ConvexHull using Graham-Scan. The resulting polygon is
--- given in clockwise order.
-convexHull            :: (Ord r, Num r)
-                      => NonEmpty (MyPoint 2 r :+ p) -> ConvexPolygon p r
-convexHull (p :| []) = ConvexPolygon $ [toP p]
-convexHull ps        = let ps' = NonEmpty.toList . NonEmpty.sortBy incXdecY $ ps
-                           uh  = NonEmpty.tail . hull' $         ps'
-                           lh  = NonEmpty.tail . hull' $ reverse ps'
-                       in ConvexPolygon . map toP . reverse $ lh ++ uh
-
-upperHull  :: (Ord r, Num r) => NonEmpty (MyPoint 2 r :+ p) -> NonEmpty (MyPoint 2 r :+ p)
-upperHull = hull id
-
-
-lowerHull :: (Ord r, Num r) => NonEmpty (MyPoint 2 r :+ p) -> NonEmpty (MyPoint 2 r :+ p)
-lowerHull = hull reverse
-
-
--- | Helper function so that that can compute both the upper or the lower hull, depending
--- on the function f
-hull               :: (Ord r, Num r)
-                   => ([MyPoint 2 r :+ p] -> [MyPoint 2 r :+ p])
-                   -> NonEmpty (MyPoint 2 r :+ p) -> NonEmpty (MyPoint 2 r :+ p)
-hull _ h@(_ :| []) = h
-hull f pts         = hull' .  f
-                   . NonEmpty.toList . NonEmpty.sortBy incXdecY $ pts
-
-incXdecY  :: Ord r => (MyPoint 2 r) :+ p -> (MyPoint 2 r) :+ q -> Ordering
-incXdecY (MyPoint2 px py :+ _) (MyPoint2 qx qy :+ _) =
-  compare px qx <> compare qy py
-
-
--- | Precondition: The list of input points is sorted
-hull'          :: (Ord r, Num r) => [MyPoint 2 r :+ p] -> NonEmpty (MyPoint 2 r :+ p)
-hull' (a:b:ps) = NonEmpty.fromList $ hull'' [b,a] ps
-  where
-    hull'' h []      = h
-    hull'' h (p:ps') = hull'' (cleanMiddle (p:h)) ps'
-
-    cleanMiddle h@[_,_]                         = h
-    cleanMiddle h@(z:y:x:rest)
-      | rightTurn (x^.core) (y^.core) (z^.core) = h
-      | otherwise                               = cleanMiddle (z:x:rest)
-    cleanMiddle _                               = error "cleanMiddle: too few points"
-
-rightTurn       :: (Ord r, Num r) => MyPoint 2 r -> MyPoint 2 r -> MyPoint 2 r -> Bool
-rightTurn a b c = ccwP a b c == CW
-
-
-
-ccwP :: (Ord r, Num r) => MyPoint 2 r -> MyPoint 2 r -> MyPoint 2 r -> CCW
-ccwP p q r = case z `compare` 0 of
-              LT -> CW
-              GT -> CCW
-              EQ -> CoLinear
-     where
-
-       MyPoint2 ux uy = q `subt` p
-       MyPoint2 vx vy = r `subt` p
-       z              = ux * vy - uy * vx
diff --git a/benchmark/Algorithms/Geometry/ConvexHull/GrahamFam6.hs b/benchmark/Algorithms/Geometry/ConvexHull/GrahamFam6.hs
deleted file mode 100644
--- a/benchmark/Algorithms/Geometry/ConvexHull/GrahamFam6.hs
+++ /dev/null
@@ -1,103 +0,0 @@
-{-# LANGUAGE UndecidableInstances #-}
-module Algorithms.Geometry.ConvexHull.GrahamFam6( convexHull
-                                                , upperHull
-                                                , lowerHull, fromP
-                                                ) where
-
-import           Control.DeepSeq
-import           Control.Lens ((^.))
-import           Data.Ext
-import           Data.Geometry.Point
-import qualified Data.Geometry.Vector.VectorFamily6 as VF
-import           Data.List.NonEmpty (NonEmpty(..))
-import qualified Data.List.NonEmpty as NonEmpty
-import           Data.Monoid
-import           GHC.TypeLits
-
-
-newtype MyPoint d r = MyPoint (VF.Vector d r)
-
-deriving instance (VF.Arity d, Eq r)  => Eq (MyPoint d r)
-deriving instance (VF.Arity d, Ord r) => Ord (MyPoint d r)
-deriving instance (VF.Arity d, Show r) => Show (MyPoint d r)
-deriving instance (NFData (VF.Vector d r)) => NFData (MyPoint d r)
-
-pattern MyPoint2 x y = MyPoint (VF.Vector2 x y)
-
-
--- instance (NFData r, Arity d) => NFData (MyPoint d r)  where
---   rnf (MyPoint x y) = rnf (x,y)
---   rnf (MyP p)       = rnf p
-
-toP                    :: MyPoint 2 r :+ e -> Point 2 r :+ e
-toP (MyPoint2 x y :+ e) = Point2 x y :+ e
-
-fromP                   :: Point 2 r :+ e -> MyPoint 2 r :+ e
-fromP (Point2 x y :+ e) = MyPoint2 x y :+ e
-
-
-subt :: Num r => MyPoint 2 r -> MyPoint 2 r -> MyPoint 2 r
-(MyPoint2 x y) `subt` (MyPoint2 a b) = MyPoint2 (x-a) (y-b)
-
-newtype ConvexPolygon p r = ConvexPolygon [Point 2 r :+ p] deriving (Show,Eq,NFData)
-
--- | \(O(n \log n)\) time ConvexHull using Graham-Scan. The resulting polygon is
--- given in clockwise order.
-convexHull            :: (Ord r, Num r)
-                      => NonEmpty (MyPoint 2 r :+ p) -> ConvexPolygon p r
-convexHull (p :| []) = ConvexPolygon $ [toP p]
-convexHull ps        = let ps' = NonEmpty.toList . NonEmpty.sortBy incXdecY $ ps
-                           uh  = NonEmpty.tail . hull' $         ps'
-                           lh  = NonEmpty.tail . hull' $ reverse ps'
-                       in ConvexPolygon . map toP . reverse $ lh ++ uh
-
-upperHull  :: (Ord r, Num r) => NonEmpty (MyPoint 2 r :+ p) -> NonEmpty (MyPoint 2 r :+ p)
-upperHull = hull id
-
-
-lowerHull :: (Ord r, Num r) => NonEmpty (MyPoint 2 r :+ p) -> NonEmpty (MyPoint 2 r :+ p)
-lowerHull = hull reverse
-
-
--- | Helper function so that that can compute both the upper or the lower hull, depending
--- on the function f
-hull               :: (Ord r, Num r)
-                   => ([MyPoint 2 r :+ p] -> [MyPoint 2 r :+ p])
-                   -> NonEmpty (MyPoint 2 r :+ p) -> NonEmpty (MyPoint 2 r :+ p)
-hull _ h@(_ :| []) = h
-hull f pts         = hull' .  f
-                   . NonEmpty.toList . NonEmpty.sortBy incXdecY $ pts
-
-incXdecY  :: Ord r => (MyPoint 2 r) :+ p -> (MyPoint 2 r) :+ q -> Ordering
-incXdecY (MyPoint2 px py :+ _) (MyPoint2 qx qy :+ _) =
-  compare px qx <> compare qy py
-
-
--- | Precondition: The list of input points is sorted
-hull'          :: (Ord r, Num r) => [MyPoint 2 r :+ p] -> NonEmpty (MyPoint 2 r :+ p)
-hull' (a:b:ps) = NonEmpty.fromList $ hull'' [b,a] ps
-  where
-    hull'' h []      = h
-    hull'' h (p:ps') = hull'' (cleanMiddle (p:h)) ps'
-
-    cleanMiddle h@[_,_]                         = h
-    cleanMiddle h@(z:y:x:rest)
-      | rightTurn (x^.core) (y^.core) (z^.core) = h
-      | otherwise                               = cleanMiddle (z:x:rest)
-    cleanMiddle _                               = error "cleanMiddle: too few points"
-
-rightTurn       :: (Ord r, Num r) => MyPoint 2 r -> MyPoint 2 r -> MyPoint 2 r -> Bool
-rightTurn a b c = ccwP a b c == CW
-
-
-
-ccwP :: (Ord r, Num r) => MyPoint 2 r -> MyPoint 2 r -> MyPoint 2 r -> CCW
-ccwP p q r = case z `compare` 0 of
-              LT -> CW
-              GT -> CCW
-              EQ -> CoLinear
-     where
-
-       MyPoint2 ux uy = q `subt` p
-       MyPoint2 vx vy = r `subt` p
-       z              = ux * vy - uy * vx
diff --git a/benchmark/Algorithms/Geometry/ConvexHull/GrahamFamPeano.hs b/benchmark/Algorithms/Geometry/ConvexHull/GrahamFamPeano.hs
deleted file mode 100644
--- a/benchmark/Algorithms/Geometry/ConvexHull/GrahamFamPeano.hs
+++ /dev/null
@@ -1,107 +0,0 @@
-{-# LANGUAGE UndecidableInstances #-}
-module Algorithms.Geometry.ConvexHull.GrahamFamPeano( convexHull
-                                                    , upperHull
-                                                    , lowerHull, fromP
-                                                    ) where
-
-import           Control.DeepSeq
-import           Control.Lens ((^.))
-import           Data.Ext
-import           Data.Geometry.Point
-import qualified Data.Vector.Fixed.Cont as V
-import qualified Data.Geometry.Vector.VectorFamilyPeano as VF
-import           Data.List.NonEmpty (NonEmpty(..))
-import qualified Data.List.NonEmpty as NonEmpty
-import           Data.Monoid
-import           GHC.TypeLits
-import qualified Linear.V2 as V2
-
-
-newtype MyPoint d r = MyPoint (VF.VectorFamily d r)
-
-deriving instance (VF.ImplicitArity d, Eq r)  => Eq (MyPoint d r)
-deriving instance (VF.ImplicitArity d, Ord r) => Ord (MyPoint d r)
-deriving instance (VF.ImplicitArity d, Show r) => Show (MyPoint d r)
-deriving instance (NFData (VF.VectorFamily d r)) => NFData (MyPoint d r)
-
-pattern Vector2 x y = VF.VectorFamily (V2.V2 x y)
-
-pattern MyPoint2 x y = MyPoint (Vector2 x y)
-
-
--- instance (NFData r, Arity d) => NFData (MyPoint d r)  where
---   rnf (MyPoint x y) = rnf (x,y)
---   rnf (MyP p)       = rnf p
-
-toP                    :: MyPoint VF.Two r :+ e -> Point 2 r :+ e
-toP (MyPoint2 x y :+ e) = Point2 x y :+ e
-
-fromP                   :: Point 2 r :+ e -> MyPoint VF.Two r :+ e
-fromP (Point2 x y :+ e) = MyPoint2 x y :+ e
-
-
-subt :: Num r => MyPoint VF.Two r -> MyPoint VF.Two r -> MyPoint VF.Two r
-(MyPoint2 x y) `subt` (MyPoint2 a b) = MyPoint2 (x-a) (y-b)
-
-newtype ConvexPolygon p r = ConvexPolygon [Point 2 r :+ p] deriving (Show,Eq,NFData)
-
--- | \(O(n \log n)\) time ConvexHull using Graham-Scan. The resulting polygon is
--- given in clockwise order.
-convexHull            :: (Ord r, Num r)
-                      => NonEmpty (MyPoint VF.Two r :+ p) -> ConvexPolygon p r
-convexHull (p :| []) = ConvexPolygon $ [toP p]
-convexHull ps        = let ps' = NonEmpty.toList . NonEmpty.sortBy incXdecY $ ps
-                           uh  = NonEmpty.tail . hull' $         ps'
-                           lh  = NonEmpty.tail . hull' $ reverse ps'
-                       in ConvexPolygon . map toP . reverse $ lh ++ uh
-
-upperHull  :: (Ord r, Num r) => NonEmpty (MyPoint VF.Two r :+ p) -> NonEmpty (MyPoint VF.Two r :+ p)
-upperHull = hull id
-
-
-lowerHull :: (Ord r, Num r) => NonEmpty (MyPoint VF.Two r :+ p) -> NonEmpty (MyPoint VF.Two r :+ p)
-lowerHull = hull reverse
-
-
--- | Helper function so that that can compute both the upper or the lower hull, depending
--- on the function f
-hull               :: (Ord r, Num r)
-                   => ([MyPoint VF.Two r :+ p] -> [MyPoint VF.Two r :+ p])
-                   -> NonEmpty (MyPoint VF.Two r :+ p) -> NonEmpty (MyPoint VF.Two r :+ p)
-hull _ h@(_ :| []) = h
-hull f pts         = hull' .  f
-                   . NonEmpty.toList . NonEmpty.sortBy incXdecY $ pts
-
-incXdecY  :: Ord r => (MyPoint VF.Two r) :+ p -> (MyPoint VF.Two r) :+ q -> Ordering
-incXdecY (MyPoint2 px py :+ _) (MyPoint2 qx qy :+ _) =
-  compare px qx <> compare qy py
-
-
--- | Precondition: The list of input points is sorted
-hull'          :: (Ord r, Num r) => [MyPoint VF.Two r :+ p] -> NonEmpty (MyPoint VF.Two r :+ p)
-hull' (a:b:ps) = NonEmpty.fromList $ hull'' [b,a] ps
-  where
-    hull'' h []      = h
-    hull'' h (p:ps') = hull'' (cleanMiddle (p:h)) ps'
-
-    cleanMiddle h@[_,_]                         = h
-    cleanMiddle h@(z:y:x:rest)
-      | rightTurn (x^.core) (y^.core) (z^.core) = h
-      | otherwise                               = cleanMiddle (z:x:rest)
-    cleanMiddle _                               = error "cleanMiddle: too few points"
-
-rightTurn       :: (Ord r, Num r) => MyPoint VF.Two r -> MyPoint VF.Two r -> MyPoint VF.Two r -> Bool
-rightTurn a b c = ccwP a b c == CW
-
-
-
-ccwP :: (Ord r, Num r) => MyPoint VF.Two r -> MyPoint VF.Two r -> MyPoint VF.Two r -> CCW
-ccwP p q r = case z `compare` 0 of
-              LT -> CW
-              GT -> CCW
-              EQ -> CoLinear
-     where
-
-       MyPoint2 ux uy = q `subt` p
-       MyPoint2 vx vy = r `subt` p
-       z              = ux * vy - uy * vx
diff --git a/benchmark/Algorithms/Geometry/ConvexHull/GrahamFixed.hs b/benchmark/Algorithms/Geometry/ConvexHull/GrahamFixed.hs
deleted file mode 100644
--- a/benchmark/Algorithms/Geometry/ConvexHull/GrahamFixed.hs
+++ /dev/null
@@ -1,104 +0,0 @@
-{-# LANGUAGE UndecidableInstances #-}
-module Algorithms.Geometry.ConvexHull.GrahamFixed( convexHull
-                                                 , upperHull
-                                                 , lowerHull, fromP
-                                                 ) where
-
-import           Control.DeepSeq
-import           Control.Lens ((^.))
-import           Data.Ext
-import           Data.Geometry.Point
-import           Data.Vector.Fixed (Arity)
-import qualified Data.Geometry.Vector.VectorFixed as VF
-import           Data.List.NonEmpty (NonEmpty(..))
-import qualified Data.List.NonEmpty as NonEmpty
-import           Data.Monoid
-import           GHC.TypeLits
-
-
-newtype MyPoint d r = MyPoint (VF.Vector d r)
-
-deriving instance (Arity d, Eq r)  => Eq (MyPoint d r)
-deriving instance (Arity d, Ord r) => Ord (MyPoint d r)
-deriving instance (Arity d, Show r) => Show (MyPoint d r)
-deriving instance (NFData (VF.Vector d r)) => NFData (MyPoint d r)
-
-pattern MyPoint2 x y = MyPoint (VF.Vector2 x y)
-
-
--- instance (NFData r, Arity d) => NFData (MyPoint d r)  where
---   rnf (MyPoint x y) = rnf (x,y)
---   rnf (MyP p)       = rnf p
-
-toP                    :: MyPoint 2 r :+ e -> Point 2 r :+ e
-toP (MyPoint2 x y :+ e) = Point2 x y :+ e
-
-fromP                   :: Point 2 r :+ e -> MyPoint 2 r :+ e
-fromP (Point2 x y :+ e) = MyPoint2 x y :+ e
-
-
-subt :: Num r => MyPoint 2 r -> MyPoint 2 r -> MyPoint 2 r
-(MyPoint2 x y) `subt` (MyPoint2 a b) = MyPoint2 (x-a) (y-b)
-
-newtype ConvexPolygon p r = ConvexPolygon [Point 2 r :+ p] deriving (Show,Eq,NFData)
-
--- | \(O(n \log n)\) time ConvexHull using Graham-Scan. The resulting polygon is
--- given in clockwise order.
-convexHull            :: (Ord r, Num r)
-                      => NonEmpty (MyPoint 2 r :+ p) -> ConvexPolygon p r
-convexHull (p :| []) = ConvexPolygon $ [toP p]
-convexHull ps        = let ps' = NonEmpty.toList . NonEmpty.sortBy incXdecY $ ps
-                           uh  = NonEmpty.tail . hull' $         ps'
-                           lh  = NonEmpty.tail . hull' $ reverse ps'
-                       in ConvexPolygon . map toP . reverse $ lh ++ uh
-
-upperHull  :: (Ord r, Num r) => NonEmpty (MyPoint 2 r :+ p) -> NonEmpty (MyPoint 2 r :+ p)
-upperHull = hull id
-
-
-lowerHull :: (Ord r, Num r) => NonEmpty (MyPoint 2 r :+ p) -> NonEmpty (MyPoint 2 r :+ p)
-lowerHull = hull reverse
-
-
--- | Helper function so that that can compute both the upper or the lower hull, depending
--- on the function f
-hull               :: (Ord r, Num r)
-                   => ([MyPoint 2 r :+ p] -> [MyPoint 2 r :+ p])
-                   -> NonEmpty (MyPoint 2 r :+ p) -> NonEmpty (MyPoint 2 r :+ p)
-hull _ h@(_ :| []) = h
-hull f pts         = hull' .  f
-                   . NonEmpty.toList . NonEmpty.sortBy incXdecY $ pts
-
-incXdecY  :: Ord r => (MyPoint 2 r) :+ p -> (MyPoint 2 r) :+ q -> Ordering
-incXdecY (MyPoint2 px py :+ _) (MyPoint2 qx qy :+ _) =
-  compare px qx <> compare qy py
-
-
--- | Precondition: The list of input points is sorted
-hull'          :: (Ord r, Num r) => [MyPoint 2 r :+ p] -> NonEmpty (MyPoint 2 r :+ p)
-hull' (a:b:ps) = NonEmpty.fromList $ hull'' [b,a] ps
-  where
-    hull'' h []      = h
-    hull'' h (p:ps') = hull'' (cleanMiddle (p:h)) ps'
-
-    cleanMiddle h@[_,_]                         = h
-    cleanMiddle h@(z:y:x:rest)
-      | rightTurn (x^.core) (y^.core) (z^.core) = h
-      | otherwise                               = cleanMiddle (z:x:rest)
-    cleanMiddle _                               = error "cleanMiddle: too few points"
-
-rightTurn       :: (Ord r, Num r) => MyPoint 2 r -> MyPoint 2 r -> MyPoint 2 r -> Bool
-rightTurn a b c = ccwP a b c == CW
-
-
-
-ccwP :: (Ord r, Num r) => MyPoint 2 r -> MyPoint 2 r -> MyPoint 2 r -> CCW
-ccwP p q r = case z `compare` 0 of
-              LT -> CW
-              GT -> CCW
-              EQ -> CoLinear
-     where
-
-       MyPoint2 ux uy = q `subt` p
-       MyPoint2 vx vy = r `subt` p
-       z              = ux * vy - uy * vx
diff --git a/benchmark/Algorithms/Geometry/ConvexHull/GrahamV2.hs b/benchmark/Algorithms/Geometry/ConvexHull/GrahamV2.hs
deleted file mode 100644
--- a/benchmark/Algorithms/Geometry/ConvexHull/GrahamV2.hs
+++ /dev/null
@@ -1,95 +0,0 @@
-{-# Language DeriveGeneric #-}
-module Algorithms.Geometry.ConvexHull.GrahamV2( convexHull
-                                              , upperHull
-                                              , lowerHull, fromP
-                                              ) where
-
-
-import           Control.DeepSeq
-import           Control.Lens ((^.))
-import           Data.Ext
-import           Data.Geometry.Point
-import           Data.List.NonEmpty (NonEmpty(..))
-import qualified Data.List.NonEmpty as NonEmpty
-import           Data.Monoid
-import           GHC.Generics
-import qualified Linear.V2 as V2
-
-
-
-newtype MyPoint r = MKPoint (V2.V2 r) deriving (Show,Eq,Ord,Generic)
--- data MyPoint r = MyPoint !r !r deriving (Show,Eq,Ord,Generic)
-
-pattern MyPoint x y = MKPoint (V2.V2 x y)
-
-instance NFData r => NFData (MyPoint r)
-
-
-toP (MyPoint x y :+ e) = Point2 x y :+ e
-fromP (Point2 x y :+ e) = MyPoint x y :+ e
-
-(MyPoint x y) `subt` (MyPoint a b) = MyPoint (x-a) (y-b)
-
-
-newtype ConvexPolygon p r = ConvexPolygon [Point 2 r :+ p] deriving (Show,Eq,NFData)
-
--- | \(O(n \log n)\) time ConvexHull using Graham-Scan. The resulting polygon is
--- given in clockwise order.
-convexHull            :: (Ord r, Num r)
-                      => NonEmpty (MyPoint r :+ p) -> ConvexPolygon p r
-convexHull (p :| []) = ConvexPolygon $ [toP p]
-convexHull ps        = let ps' = NonEmpty.toList . NonEmpty.sortBy incXdecY $ ps
-                           uh  = NonEmpty.tail . hull' $         ps'
-                           lh  = NonEmpty.tail . hull' $ reverse ps'
-                       in ConvexPolygon . map toP . reverse $ lh ++ uh
-
-upperHull  :: (Ord r, Num r) => NonEmpty (MyPoint r :+ p) -> NonEmpty (MyPoint r :+ p)
-upperHull = hull id
-
-
-lowerHull :: (Ord r, Num r) => NonEmpty (MyPoint r :+ p) -> NonEmpty (MyPoint r :+ p)
-lowerHull = hull reverse
-
-
--- | Helper function so that that can compute both the upper or the lower hull, depending
--- on the function f
-hull               :: (Ord r, Num r)
-                   => ([MyPoint r :+ p] -> [MyPoint r :+ p])
-                   -> NonEmpty (MyPoint r :+ p) -> NonEmpty (MyPoint r :+ p)
-hull _ h@(_ :| []) = h
-hull f pts         = hull' .  f
-                   . NonEmpty.toList . NonEmpty.sortBy incXdecY $ pts
-
-incXdecY  :: Ord r => (MyPoint r) :+ p -> (MyPoint r) :+ q -> Ordering
-incXdecY (MyPoint px py :+ _) (MyPoint qx qy :+ _) =
-  compare px qx <> compare qy py
-
-
--- | Precondition: The list of input points is sorted
-hull'          :: (Ord r, Num r) => [MyPoint r :+ p] -> NonEmpty (MyPoint r :+ p)
-hull' (a:b:ps) = NonEmpty.fromList $ hull'' [b,a] ps
-  where
-    hull'' h []      = h
-    hull'' h (p:ps') = hull'' (cleanMiddle (p:h)) ps'
-
-    cleanMiddle h@[_,_]                         = h
-    cleanMiddle h@(z:y:x:rest)
-      | rightTurn (x^.core) (y^.core) (z^.core) = h
-      | otherwise                               = cleanMiddle (z:x:rest)
-    cleanMiddle _                               = error "cleanMiddle: too few points"
-
-rightTurn       :: (Ord r, Num r) => MyPoint r -> MyPoint r -> MyPoint r -> Bool
-rightTurn a b c = ccwP a b c == CW
-
-
-
-ccwP :: (Ord r, Num r) => MyPoint r -> MyPoint r -> MyPoint r -> CCW
-ccwP p q r = case z `compare` 0 of
-              LT -> CW
-              GT -> CCW
-              EQ -> CoLinear
-     where
-
-       MyPoint ux uy = q `subt` p
-       MyPoint vx vy = r `subt` p
-       z             = ux * vy - uy * vx
diff --git a/benchmark/Benchmark/Util.hs b/benchmark/Benchmark/Util.hs
deleted file mode 100644
--- a/benchmark/Benchmark/Util.hs
+++ /dev/null
@@ -1,7 +0,0 @@
-module Benchmark.Util where
-
-
-
--- | Generates different size benchmarks
-sizes    :: Foldable f => f a -> [Int]
-sizes xs = let n = length xs in (\i -> n*i `div` 100) <$> [5,10..100]
diff --git a/benchmark/Benchmarks.hs b/benchmark/Benchmarks.hs
deleted file mode 100644
--- a/benchmark/Benchmarks.hs
+++ /dev/null
@@ -1,6 +0,0 @@
-module Main where
-
-import qualified Algorithms.Geometry.ClosestPair.Bench as M
-
-main :: IO ()
-main = M.main
diff --git a/benchmark/Data/Geometry/IntervalTreeBench.hs b/benchmark/Data/Geometry/IntervalTreeBench.hs
deleted file mode 100644
--- a/benchmark/Data/Geometry/IntervalTreeBench.hs
+++ /dev/null
@@ -1,79 +0,0 @@
-module Data.Geometry.IntervalTreeBench where
-
-import           Benchmark.Util
-import           Control.DeepSeq
-import           Control.Lens
-import           Criterion.Main
-import           Criterion.Types
-import           Data.Ext
-import           Data.Geometry.Interval
-import qualified Data.Geometry.IntervalTree as IT
-import           Data.Geometry.SegmentTree (I(..))
-import qualified Data.Geometry.SegmentTree as SegTree
-import qualified Data.List.NonEmpty as NonEmpty
-import           Debug.Trace
-import           Test.QuickCheck
-import           Test.QuickCheck.HGeometryInstances ()
-
---------------------------------------------------------------------------------
-
-main :: IO ()
-main = defaultMainWith cfg [ intervalBench ]
-  where
-    cfg = defaultConfig { reportFile = Just "bench.html" }
-
-intervalBench :: Benchmark
-intervalBench = bgroup "IntervalTree"
-    [ -- env (genIntervals (I (5 :: Int)) 1000) benchBuild
-      env (genIntervals (I (5 :: Int)) 100) benchQueryIT
-    ]
-
---------------------------------------------------------------------------------
-
--- | generates n random intervals
-genIntervals                  :: (Ord r, Arbitrary r)
-                              => proxy r -> Int -> IO [Interval () r]
-genIntervals _ n | n <= 0     = error "genIntervals: need n > 0"
-                 | otherwise  = generate (vectorOf n arbitrary)
-
-genQueries                      :: (Ord r, Arbitrary r)
-                                => proxy r -> Int -> IO [r]
-genQueries _ n | n <= 0     = error "genQueries: need n > 0"
-               | otherwise  = generate (vectorOf n arbitrary)
-
-
--- genQuerySetup     :: (Ord r, Arbitrary r)
---                   => proxy r -> Int -> IO (Int,IT.IntervalTree (I (Interval () r)) r, [r])
--- genQuerySetup p n = (\is qs -> (n, IT.fromIntervals . fmap I $ is, qs))
---                  <$> genIntervals p n
---                  <*> genQueries   p n
-
-
--- | Benchmark building the interval tree
-benchBuild    :: (Ord r, NFData r) => [Interval () r] -> Benchmark
-benchBuild is = bgroup "build" [ bench (show n) $ nf IT.fromIntervals (take n is')
-                               | n <- sizes is
-                               ]
-  where
-    is' = I <$> is
-
-benchQueryIT    :: (Ord r, Arbitrary r, NFData r) => [Interval () r] -> Benchmark
-benchQueryIT is = bgroup "queries"
-    [ env (setup' n) (\(t,qs) ->
-                        bench ("queries on size" ++ show n) $ whnf (queryAll t) qs)
-    | n <- sizes is
-    ]
-  where
-    is'        = I <$> is
-    r          = is^.to head.start.core
-    setup' n  = traceShow "setup" $ setup n
-
-    setup n    = (IT.fromIntervals (take n is'),) <$> genQueries (I r) 100000
-    queryAll t = map (flip IT.search t)
-
-
--- benchQueryIT          :: Ord r
---                       => (Int, IT.IntervalTree (I (Interval () r)) r, [r]) -> Benchmark
--- benchQueryIT (n,t,qs) = bgroup "queries" [ bench "query" $ whnf (flip IT.search t) q
---                                          | q <- qs
---                                          ]
diff --git a/benchmark/Data/Geometry/Vector/VectorFamily6.hs b/benchmark/Data/Geometry/Vector/VectorFamily6.hs
deleted file mode 100644
--- a/benchmark/Data/Geometry/Vector/VectorFamily6.hs
+++ /dev/null
@@ -1,257 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables  #-}
-{-# LANGUAGE UndecidableInstances #-}
-module Data.Geometry.Vector.VectorFamily6 where
-
-import           Control.Applicative (liftA2)
-import           Control.DeepSeq
-import           Control.Lens hiding (element)
--- import           Data.Aeson (ToJSON(..),FromJSON(..))
-import qualified Data.Foldable as F
-import qualified Data.Geometry.Vector.VectorFixed as FV
-import           Data.Maybe (fromMaybe)
-import           Data.Proxy
-import           Data.Traversable (foldMapDefault,fmapDefault)
-import qualified Data.Vector.Fixed as V
-import           Data.Vector.Fixed.Cont (Peano(..), PeanoNum(..), Fun(..))
-import           GHC.TypeLits
-import           Linear.Affine (Affine(..))
-import           Linear.Metric
-import qualified Linear.V2 as L2
-import qualified Linear.V3 as L3
-import qualified Linear.V4 as L4
-import           Linear.Vector
-
---------------------------------------------------------------------------------
--- * d dimensional Vectors
-
-
-type One = S Z
-type Two = S One
-type Three = S Two
-type Four = S Three
-type Many d = S (S (S (S (S d))))
-
-
-type family FromPeano (d :: PeanoNum) :: Nat where
-  FromPeano Z     = 0
-  FromPeano (S d) = 1 + FromPeano d
-
-
-data SingPeano (d :: PeanoNum) where
-  SZ :: SingPeano Z
-  SS :: !(SingPeano d) -> SingPeano (S d)
-
-class ImplicitPeano (d :: PeanoNum) where
-  implicitPeano :: SingPeano d
-instance ImplicitPeano Z where
-  implicitPeano = SZ
-instance ImplicitPeano d => ImplicitPeano (S d) where
-  implicitPeano = SS implicitPeano
-
--- | Mapping between the implementation type, and the actual implementation.
-type family VectorFamilyF (d :: PeanoNum) :: * -> * where
-  VectorFamilyF Z        = Const ()
-  VectorFamilyF One      = Identity
-  VectorFamilyF Two      = L2.V2
-  VectorFamilyF Three    = L3.V3
-  VectorFamilyF Four     = L4.V4
-  VectorFamilyF (Many d) = FV.Vector (FromPeano (Many d))
-
-
--- | Datatype representing d dimensional vectors. The default implementation is
--- based n VectorFixed. However, for small vectors we automatically select a
--- more efficient representation.
-newtype VectorFamily (d :: PeanoNum) (r :: *) =
-  VectorFamily { _unVF :: VectorFamilyF d r }
-
-type ImplicitArity d = (ImplicitPeano d, V.Arity (FromPeano d))
-
-
-
-instance (Eq r, ImplicitArity d) => Eq (VectorFamily d r) where
-  (VectorFamily u) == (VectorFamily v) = case (implicitPeano :: SingPeano d) of
-        SZ                         -> u == v
-        (SS SZ)                    -> u == v
-        (SS (SS SZ))               -> u == v
-        (SS (SS (SS SZ)))          -> u == v
-        (SS (SS (SS (SS SZ))))     -> u == v
-        (SS (SS (SS (SS (SS _))))) -> u == v
-  {-# INLINE (==) #-}
-
-instance (Ord r, ImplicitArity d) => Ord (VectorFamily d r) where
-  (VectorFamily u) `compare` (VectorFamily v) = case (implicitPeano :: SingPeano d) of
-        SZ                         -> u `compare` v
-        (SS SZ)                    -> u `compare` v
-        (SS (SS SZ))               -> u `compare` v
-        (SS (SS (SS SZ)))          -> u `compare` v
-        (SS (SS (SS (SS SZ))))     -> u `compare` v
-        (SS (SS (SS (SS (SS _))))) -> u `compare` v
-  {-# INLINE compare #-}
-
-
-instance ImplicitArity d => Functor (VectorFamily d) where
-  fmap f = VectorFamily . g f . _unVF
-    where g = case (implicitPeano :: SingPeano d) of
-                SZ                         -> fmap
-                (SS SZ)                    -> fmap
-                (SS (SS SZ))               -> fmap
-                (SS (SS (SS SZ)))          -> fmap
-                (SS (SS (SS (SS SZ))))     -> fmap
-                (SS (SS (SS (SS (SS _))))) -> fmap
-  {-# INLINE fmap #-}
-
-
-instance ImplicitArity d => Foldable (VectorFamily d) where
-  foldMap f = g f . _unVF
-    where g = case (implicitPeano :: SingPeano d) of
-                SZ                         -> foldMap
-                (SS SZ)                    -> foldMap
-                (SS (SS SZ))               -> foldMap
-                (SS (SS (SS SZ)))          -> foldMap
-                (SS (SS (SS (SS SZ))))     -> foldMap
-                (SS (SS (SS (SS (SS _))))) -> foldMap
-  {-# INLINE foldMap #-}
-
-instance ImplicitArity d => Traversable (VectorFamily d) where
-  traverse f = fmap VectorFamily . g f . _unVF
-    where g = case (implicitPeano :: SingPeano d) of
-                SZ                         -> traverse
-                (SS SZ)                    -> traverse
-                (SS (SS SZ))               -> traverse
-                (SS (SS (SS SZ)))          -> traverse
-                (SS (SS (SS (SS SZ))))     -> traverse
-                (SS (SS (SS (SS (SS _))))) -> traverse
-  {-# INLINE traverse #-}
-
-instance ImplicitArity d => Applicative (VectorFamily d) where
-  pure = VectorFamily . case (implicitPeano :: SingPeano d) of
-                SZ                         -> pure
-                (SS SZ)                    -> pure
-                (SS (SS SZ))               -> pure
-                (SS (SS (SS SZ)))          -> pure
-                (SS (SS (SS (SS SZ))))     -> pure
-                (SS (SS (SS (SS (SS _))))) -> pure
-  {-# INLINE pure #-}
-  liftA2 f (VectorFamily u) (VectorFamily v) = VectorFamily $
-      case (implicitPeano :: SingPeano d) of
-                SZ                         -> liftA2 f u v
-                (SS SZ)                    -> liftA2 f u v
-                (SS (SS SZ))               -> liftA2 f u v
-                (SS (SS (SS SZ)))          -> liftA2 f u v
-                (SS (SS (SS (SS SZ))))     -> liftA2 f u v
-                (SS (SS (SS (SS (SS _))))) -> liftA2 f u v
-  {-# INLINE liftA2 #-}
-
-
-
-
-type instance V.Dim (VectorFamily d)  = FromPeano d
-
-
-
-
-instance ImplicitArity d => V.Vector (VectorFamily d) r where
-  construct = fmap VectorFamily $ case (implicitPeano :: SingPeano d) of
-                SZ                         -> Fun $ Const ()
-                (SS SZ)                    -> V.construct
-                (SS (SS SZ))               -> Fun L2.V2
-                (SS (SS (SS SZ)))          -> Fun L3.V3
-                (SS (SS (SS (SS SZ))))     -> Fun L4.V4
-                (SS (SS (SS (SS (SS _))))) -> V.construct
-  {-# INLINE construct #-}
-  inspect (VectorFamily v) ff@(Fun f) = case (implicitPeano :: SingPeano d) of
-                SZ                         -> f
-                (SS SZ)                    -> V.inspect v ff
-                (SS (SS SZ))               -> let (L2.V2 x y) = v     in f x y
-                (SS (SS (SS SZ)))          -> let (L3.V3 x y z) = v   in f x y z
-                (SS (SS (SS (SS SZ))))     -> let (L4.V4 x y z w) = v in f x y z w
-                (SS (SS (SS (SS (SS _))))) -> V.inspect v ff
-  {-# INLINE inspect #-}
-  -- basicIndex (VectorFamily v) i = case (implicitPeano :: SingPeano d) of
-  --               SZ                         -> err
-  --               (SS SZ)                    -> if i == 0 then runIdentity v else err
-  --               (SS (SS SZ))               -> let (L2.V2 x y) = v     in f x y
-  --               (SS (SS (SS SZ)))          -> let (L3.V3 x y z) = v   in f x y z
-  --               (SS (SS (SS (SS SZ))))     -> let (L4.V4 x y z w) = v in f x y z w
-  --               (SS (SS (SS (SS (SS _))))) -> V.basicIndex v i
-  --   where
-  --     err = error "VectorFamily: basicIndex out of range"
-  -- {-# INLINE basicIndex #-}
-
-
-instance (ImplicitArity d, Show r) => Show (VectorFamily d r) where
-  show v = mconcat [ "Vector", show $ F.length v , " "
-                   , show $ F.toList v ]
-
-deriving instance (NFData (VectorFamilyF d r)) => NFData (VectorFamily d r)
-
-
-type instance Index   (VectorFamily d r) = Int
-type instance IxValue (VectorFamily d r) = r
-
---------------------------------------------------------------------------------
-
-
-newtype Vector (d :: Nat) (r :: *) = MKVector { _unV :: VectorFamily (Peano d) r }
-
-type instance V.Dim (Vector d)  = d
-
-
-type instance Index   (Vector d r) = Int
-type instance IxValue (Vector d r) = r
-
-type Arity d = ImplicitArity (Peano d)
-
-deriving instance (Eq r,  Arity d) => Eq  (Vector d r)
-deriving instance (Ord r, Arity d) => Ord (Vector d r)
-
-deriving instance Arity d => Functor     (Vector d)
-deriving instance Arity d => Foldable    (Vector d)
-deriving instance Arity d => Traversable (Vector d)
-
-instance (Arity d, Show r) => Show (Vector d r) where
-  show v = mconcat [ "Vector", show $ F.length v , " "
-                   , show $ F.toList v ]
-
-
-deriving instance (NFData (VectorFamily (Peano d) r)) => NFData (Vector d r)
-
-
-
-
---------------------------------------------------------------------------------
--- * Convenience "constructors"
-
-pattern Vector   :: VectorFamilyF (Peano d) r -> Vector d r
-pattern Vector v = MKVector (VectorFamily v)
-
-pattern Vector1   :: r -> Vector 1 r
-pattern Vector1 x = (Vector (Identity x))
-
-pattern Vector2     :: r -> r -> Vector 2 r
-pattern Vector2 x y = (Vector (L2.V2 x y))
-
-pattern Vector3        :: r -> r -> r -> Vector 3 r
-pattern Vector3 x y z  = (Vector (L3.V3 x y z))
-
-pattern Vector4         :: r -> r -> r -> r -> Vector 4 r
-pattern Vector4 x y z w = (Vector (L4.V4 x y z w))
-
---------------------------------------------------------------------------------
-
--- -- destruct            :: (Vec d r, Vec (d + 1) r, 1 <= (d + 1))
--- --                     => Vector (d + 1) r -> (r, Vector d r)
--- -- destruct (Vector v) = (V.head v, Vector $ V.tail v)
-
-
--- -- -- vectorFromList :: Arity d => [a] -> Maybe (Vector d a)
--- -- vectorFromList = fmap Vector . V.fromListM
-
--- -- vectorFromListUnsafe :: V.Arity d => [a] -> Vector d a
--- -- vectorFromListUnsafe = Vector . V.fromList
-
- --------------------------------------------------------------------------------
-
--- | Cross product of two three-dimensional vectors
-cross       :: Num r => Vector 3 r -> Vector 3 r -> Vector 3 r
-(Vector u) `cross` (Vector v) = Vector $ u `L3.cross` v
diff --git a/benchmark/WSPDBench.hs b/benchmark/WSPDBench.hs
deleted file mode 100644
--- a/benchmark/WSPDBench.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE PartialTypeSignatures #-}
-module WSPDBench where
-
-import Control.DeepSeq
-import Control.Lens
-import Criterion.Main
-import Data.Ext
-import Data.Geometry.Point
-import Demo.ExpectedPairwiseDistance
-
-
-readInput'     :: FilePath -> Int -> IO [Point 2 Double :+ _]
-readInput' fp k = take k <$> readInput fp
-
-
-benchWSPD :: Benchmark
-benchWSPD = bgroup "Well-Separated Pair Decomposition"
-    [ env (readInput' "pco.9420_convert.txt" 200) $ \pts -> bgroup "pco"
-        [ bench "exact"     $ nf pairwiseDist                  pts
-        , bench "wspd 0.05" $ nf (approxPairwiseDistance 0.05) pts
-        , bench "wspd 0.10" $ nf (approxPairwiseDistance 0.10) pts
-        , bench "wspd 0.20" $ nf (approxPairwiseDistance 0.20) pts
-        ]
-    ]
-
--- main = defaultMain [ benchWSPD ]
diff --git a/changelog.md b/changelog.md
deleted file mode 100644
--- a/changelog.md
+++ /dev/null
@@ -1,70 +0,0 @@
-#### 0.8 ###
-
-- Compatibility with GHC 8.6
-- Added \(O(n\log n)\) time closest pair algorithm.
-- Added arrangement data type
-- Various Bugfixes
-- Added Camera data type with some world to screen transformations.
-- Additional read/show instances
-- Updated some of the show instances for Ipe related types.
-
-#### 0.7 ###
-
-- Compatibility with GHC 8.0-8.4
-- Implemented more Algorithms and Data Structures. This includes
-  * Polygon triangulation
-- A new implementation of PlanarSubdivision that now also supports disconnected
-  subdivsions.
-- Performance improvements by changing to a different Vector
-  implementation. For low dimensional vectors (of dimension at most four) we
-  now essentially use the types from
-  [linear](https://hackage.haskell.org/package/linear), this gives significant
-  speedups on several small benchmarks.
-- bugfixes.
-
-#### 0.6 ###
-
-- Implemented more Algorithms and Data Structures. This includes
-  * Bentley-Ottmannn line-segment intersection,
-  * Well-Separated Pair decompositions,
-  * extremal point/tangents for Convex hulls,
-  * Minkowski sum for convex polygons,
-  * one dimensional segment trees,
-  * one dimensional interval trees, and a
-  * KD-tree.
-- Several bug fixes, including a very stupid bug in Box
-- Separate ConvexPolygon type.
-- More thorough testing for some of the algorithms.
-- Started work on a proper representation for planar subdivsions. This includes
-  a representation of planar graphs that support querying if two vertices are
-  connected by an edge in $O(1)$ time.
-- Dropped support for GHC 7.8
-
-#### 0.5 ###
-
-- Implemented several algorithms, including Delaunay Triangulation, EMST, and
-Douglas Peucker.
-- Revamped the data types for Intersections
-
-#### 0.4 ###
-
-- Major rewrite from scratch, providing much stronger type-level
-  guarantees. Incompatible with older versions.
-- Convex Hull and Smallest enclosing disk algorithms.
-- HGeometry now includes some very experimental and preliminary support for
-  reading and writing Ipe7 files.
-
-#### 0.2 & 0.3 ###
-
-- Internal releases.
-
-### 0.1.1 ###
-
-- Fixed a bug in point on n the line segment test
-- Generalized the types of inCircle, inDisc, onCircle, onDisc etc. We now need
-  only that the type representing precision model implements the typeclass
-  `Num` instead of `Floating'.
-
-### 0.1 ###
-
-- Initial release.
diff --git a/changelog.org b/changelog.org
new file mode 100644
--- /dev/null
+++ b/changelog.org
@@ -0,0 +1,85 @@
+#+STARTUP: showeverything
+
+* Changelog
+
+** 0.9 (unreleased)
+
+- Implemented 2D Linear Programming using randomized incremental
+  construction (in \(O(n)\) expected time). This allows us to solve
+  the following problems
+  - testing starshapedness of simple polygons in expected linear time
+  - testing if we can separate a set of red and a set of blue points
+    in expected linear time.
+- Data types for halfspaces
+
+** 0.8
+
+- Compatibility with GHC 8.6
+- Added \(O(n\log n)\) time closest pair algorithm.
+- Added arrangement data type
+- Various Bugfixes
+- Added Camera data type with some world to screen transformations.
+- Additional read/show instances
+- Updated some of the show instances for Ipe related types.
+
+** 0.7
+
+
+- Compatibility with GHC 8.0-8.4
+- Implemented more Algorithms and Data Structures. This includes
+  * Polygon triangulation
+- A new implementation of PlanarSubdivision that now also supports disconnected
+  subdivsions.
+- Performance improvements by changing to a different Vector
+  implementation. For low dimensional vectors (of dimension at most four) we
+  now essentially use the types from
+  [linear](https://hackage.haskell.org/package/linear), this gives significant
+  speedups on several small benchmarks.
+- bugfixes.
+
+** 0.6
+
+- Implemented more Algorithms and Data Structures. This includes
+  * Bentley-Ottmannn line-segment intersection,
+  * Well-Separated Pair decompositions,
+  * extremal point/tangents for Convex hulls,
+  * Minkowski sum for convex polygons,
+  * one dimensional segment trees,
+  * one dimensional interval trees, and a
+  * KD-tree.
+- Several bug fixes, including a very stupid bug in Box
+- Separate ConvexPolygon type.
+- More thorough testing for some of the algorithms.
+- Started work on a proper representation for planar subdivsions. This includes
+  a representation of planar graphs that support querying if two vertices are
+  connected by an edge in $O(1)$ time.
+- Dropped support for GHC 7.8
+
+** 0.5
+
+- Implemented several algorithms, including Delaunay Triangulation, EMST, and
+Douglas Peucker.
+- Revamped the data types for Intersections
+
+** 0.
+
+- Major rewrite from scratch, providing much stronger type-level
+  guarantees. Incompatible with older versions.
+- Convex Hull and Smallest enclosing disk algorithms.
+- HGeometry now includes some very experimental and preliminary support for
+  reading and writing Ipe7 files.
+
+** 0.2 & 0.3
+
+- Internal releases.
+
+** 0.1.1
+
+- Fixed a bug in point on n the line segment test
+- Generalized the types of inCircle, inDisc, onCircle, onDisc etc. We now need
+  only that the type representing precision model implements the typeclass
+  `Num` instead of `Floating'.
+
+** 0.1
+
+- Initial release.
diff --git a/docs/Data/PlanarGraph/testG.png b/docs/Data/PlanarGraph/testG.png
deleted file mode 100644
Binary files a/docs/Data/PlanarGraph/testG.png and /dev/null differ
diff --git a/doctests.hs b/doctests.hs
--- a/doctests.hs
+++ b/doctests.hs
@@ -1,9 +1,9 @@
 import Test.DocTest
 
-import Data.Monoid
-
+main :: IO ()
 main = doctest $ ["-isrc" ] ++ ghcExts ++ files
 
+ghcExts :: [String]
 ghcExts = map ("-X" ++)
           [ "TypeFamilies"
           , "GADTs"
@@ -13,6 +13,8 @@
           , "ConstraintKinds"
           , "PolyKinds"
           , "RankNTypes"
+          , "TypeApplications"
+          , "ScopedTypeVariables"
 
           , "PatternSynonyms"
           , "ViewPatterns"
@@ -33,8 +35,10 @@
           , "FlexibleContexts"
           ]
 
+files :: [String]
 files = map toFile modules
 
+toFile :: String -> String
 toFile = (\s -> "src/" <> s <> ".hs") . replace '.' '/'
 
 replace     :: Eq a => a -> a -> [a] -> [a]
@@ -44,14 +48,9 @@
     go (c:cs) | c == a    = b:go cs
               | otherwise = c:go cs
 
+modules :: [String]
 modules =
-  [ "Data.Range"
-  , "Data.CircularList.Util"
-  , "Data.Permutation"
-  , "Data.CircularSeq"
-  , "Data.LSeq"
-  , "Data.PlanarGraph"
-  , "Data.Tree.Util"
+  [ "Data.PlaneGraph.IO"
 
   , "Data.Geometry.Point"
   , "Data.Geometry.Vector"
@@ -64,9 +63,6 @@
   , "Data.Geometry.Polygon"
   , "Data.Geometry.Ball"
   , "Data.Geometry.Box"
-
-  , "Data.Geometry.Ipe.IpeOut"
-  , "Data.Geometry.Ipe.FromIpe"
 
   -- , "Algorithms.Geometry.HiddenSurfaceRemoval.HiddenSurfaceRemoval"
   ]
diff --git a/examples/BAPC2012/G.in b/examples/BAPC2012/G.in
deleted file mode 100644
--- a/examples/BAPC2012/G.in
+++ /dev/null
@@ -1,24762 +0,0 @@
-49
--2618 0
-2618 1
-1000
--2618 1
--2617 21
--2616 40
--2615 58
--2614 75
--2613 91
--2612 106
--2611 120
--2610 133
--2609 145
--2608 156
--2607 166
--2605 185
--2604 194
--2602 211
--2601 219
--2599 234
--2598 241
--2595 261
--2593 274
--2590 293
--2589 299
--2586 316
--2584 327
--2581 343
--2580 348
--2576 367
--2573 381
--2571 390
--2568 403
--2564 420
--2563 424
--2558 443
--2554 458
--2551 469
--2546 487
--2544 494
--2539 511
--2536 521
--2532 534
--2527 550
--2521 569
--2520 572
--2513 592
--2507 609
--2502 623
--2498 634
--2491 653
--2488 661
--2483 674
--2476 692
--2474 697
--2467 714
--2462 726
--2454 745
--2451 752
--2444 768
--2440 777
--2431 797
--2426 808
--2420 821
--2413 836
--2405 853
--2396 872
--2395 874
--2385 893
--2376 910
--2368 925
--2361 938
--2355 949
--2344 969
--2339 978
--2330 994
--2326 1001
--2315 1020
--2308 1032
--2298 1049
--2295 1054
--2284 1072
--2276 1085
--2271 1093
--2259 1112
--2252 1123
--2243 1137
--2232 1154
--2219 1174
--2217 1177
--2204 1196
--2193 1212
--2184 1225
--2177 1235
--2165 1252
--2160 1259
--2147 1277
--2139 1288
--2128 1303
--2114 1322
--2111 1326
--2098 1343
--2088 1356
--2081 1365
--2070 1379
--2055 1398
--2051 1403
--2038 1419
--2029 1430
--2015 1447
--2010 1453
--1994 1472
--1983 1485
--1966 1505
--1960 1512
--1947 1527
--1940 1535
--1925 1552
--1917 1561
--1900 1580
--1891 1590
--1881 1601
--1870 1613
--1858 1626
--1845 1640
--1831 1655
--1816 1671
--1800 1688
--1783 1706
--1765 1725
--1746 1745
--1745 1746
--1725 1765
--1706 1783
--1688 1800
--1671 1816
--1655 1831
--1640 1845
--1626 1858
--1613 1870
--1601 1881
--1590 1891
--1580 1900
--1561 1917
--1552 1925
--1535 1940
--1527 1947
--1512 1960
--1505 1966
--1485 1983
--1472 1994
--1453 2010
--1447 2015
--1430 2029
--1419 2038
--1403 2051
--1398 2055
--1379 2070
--1365 2081
--1356 2088
--1343 2098
--1326 2111
--1322 2114
--1303 2128
--1288 2139
--1277 2147
--1259 2160
--1252 2165
--1235 2177
--1225 2184
--1212 2193
--1196 2204
--1177 2217
--1174 2219
--1154 2232
--1137 2243
--1123 2252
--1112 2259
--1093 2271
--1085 2276
--1072 2284
--1054 2295
--1049 2298
--1032 2308
--1020 2315
--1001 2326
--994 2330
--978 2339
--969 2344
--949 2355
--938 2361
--925 2368
--910 2376
--893 2385
--874 2395
--872 2396
--853 2405
--836 2413
--821 2420
--808 2426
--797 2431
--777 2440
--768 2444
--752 2451
--745 2454
--726 2462
--714 2467
--697 2474
--692 2476
--674 2483
--661 2488
--653 2491
--634 2498
--623 2502
--609 2507
--592 2513
--572 2520
--569 2521
--550 2527
--534 2532
--521 2536
--511 2539
--494 2544
--487 2546
--469 2551
--458 2554
--443 2558
--424 2563
--420 2564
--403 2568
--390 2571
--381 2573
--367 2576
--348 2580
--343 2581
--327 2584
--316 2586
--299 2589
--293 2590
--274 2593
--261 2595
--241 2598
--234 2599
--219 2601
--211 2602
--194 2604
--185 2605
--166 2607
--156 2608
--145 2609
--133 2610
--120 2611
--106 2612
--91 2613
--75 2614
--58 2615
--40 2616
--21 2617
--1 2618
-0 2618
-1 2618
-21 2617
-40 2616
-58 2615
-75 2614
-91 2613
-106 2612
-120 2611
-133 2610
-145 2609
-156 2608
-166 2607
-185 2605
-194 2604
-211 2602
-219 2601
-234 2599
-241 2598
-261 2595
-274 2593
-293 2590
-299 2589
-316 2586
-327 2584
-343 2581
-348 2580
-367 2576
-381 2573
-390 2571
-403 2568
-420 2564
-424 2563
-443 2558
-458 2554
-469 2551
-487 2546
-494 2544
-511 2539
-521 2536
-534 2532
-550 2527
-569 2521
-572 2520
-592 2513
-609 2507
-623 2502
-634 2498
-653 2491
-661 2488
-674 2483
-692 2476
-697 2474
-714 2467
-726 2462
-745 2454
-752 2451
-768 2444
-777 2440
-797 2431
-808 2426
-821 2420
-836 2413
-853 2405
-872 2396
-874 2395
-893 2385
-910 2376
-925 2368
-938 2361
-949 2355
-969 2344
-978 2339
-994 2330
-1001 2326
-1020 2315
-1032 2308
-1049 2298
-1054 2295
-1072 2284
-1085 2276
-1093 2271
-1112 2259
-1123 2252
-1137 2243
-1154 2232
-1174 2219
-1177 2217
-1196 2204
-1212 2193
-1225 2184
-1235 2177
-1252 2165
-1259 2160
-1277 2147
-1288 2139
-1303 2128
-1322 2114
-1326 2111
-1343 2098
-1356 2088
-1365 2081
-1379 2070
-1398 2055
-1403 2051
-1419 2038
-1430 2029
-1447 2015
-1453 2010
-1472 1994
-1485 1983
-1505 1966
-1512 1960
-1527 1947
-1535 1940
-1552 1925
-1561 1917
-1580 1900
-1590 1891
-1601 1881
-1613 1870
-1626 1858
-1640 1845
-1655 1831
-1671 1816
-1688 1800
-1706 1783
-1725 1765
-1745 1746
-1746 1745
-1765 1725
-1783 1706
-1800 1688
-1816 1671
-1831 1655
-1845 1640
-1858 1626
-1870 1613
-1881 1601
-1891 1590
-1900 1580
-1917 1561
-1925 1552
-1940 1535
-1947 1527
-1960 1512
-1966 1505
-1983 1485
-1994 1472
-2010 1453
-2015 1447
-2029 1430
-2038 1419
-2051 1403
-2055 1398
-2070 1379
-2081 1365
-2088 1356
-2098 1343
-2111 1326
-2114 1322
-2128 1303
-2139 1288
-2147 1277
-2160 1259
-2165 1252
-2177 1235
-2184 1225
-2193 1212
-2204 1196
-2217 1177
-2219 1174
-2232 1154
-2243 1137
-2252 1123
-2259 1112
-2271 1093
-2276 1085
-2284 1072
-2295 1054
-2298 1049
-2308 1032
-2315 1020
-2326 1001
-2330 994
-2339 978
-2344 969
-2355 949
-2361 938
-2368 925
-2376 910
-2385 893
-2395 874
-2396 872
-2405 853
-2413 836
-2420 821
-2426 808
-2431 797
-2440 777
-2444 768
-2451 752
-2454 745
-2462 726
-2467 714
-2474 697
-2476 692
-2483 674
-2488 661
-2491 653
-2498 634
-2502 623
-2507 609
-2513 592
-2520 572
-2521 569
-2527 550
-2532 534
-2536 521
-2539 511
-2544 494
-2546 487
-2551 469
-2554 458
-2558 443
-2563 424
-2564 420
-2568 403
-2571 390
-2573 381
-2576 367
-2580 348
-2581 343
-2584 327
-2586 316
-2589 299
-2590 293
-2593 274
-2595 261
-2598 241
-2599 234
-2601 219
-2602 211
-2604 194
-2605 185
-2607 166
-2608 156
-2609 145
-2610 133
-2611 120
-2612 106
-2613 91
-2614 75
-2615 58
-2616 40
-2617 21
-2618 0
-2618 -1
-2617 -21
-2616 -40
-2615 -58
-2614 -75
-2613 -91
-2612 -106
-2611 -120
-2610 -133
-2609 -145
-2608 -156
-2607 -166
-2605 -185
-2604 -194
-2602 -211
-2601 -219
-2599 -234
-2598 -241
-2595 -261
-2593 -274
-2590 -293
-2589 -299
-2586 -316
-2584 -327
-2581 -343
-2580 -348
-2576 -367
-2573 -381
-2571 -390
-2568 -403
-2564 -420
-2563 -424
-2558 -443
-2554 -458
-2551 -469
-2546 -487
-2544 -494
-2539 -511
-2536 -521
-2532 -534
-2527 -550
-2521 -569
-2520 -572
-2513 -592
-2507 -609
-2502 -623
-2498 -634
-2491 -653
-2488 -661
-2483 -674
-2476 -692
-2474 -697
-2467 -714
-2462 -726
-2454 -745
-2451 -752
-2444 -768
-2440 -777
-2431 -797
-2426 -808
-2420 -821
-2413 -836
-2405 -853
-2396 -872
-2395 -874
-2385 -893
-2376 -910
-2368 -925
-2361 -938
-2355 -949
-2344 -969
-2339 -978
-2330 -994
-2326 -1001
-2315 -1020
-2308 -1032
-2298 -1049
-2295 -1054
-2284 -1072
-2276 -1085
-2271 -1093
-2259 -1112
-2252 -1123
-2243 -1137
-2232 -1154
-2219 -1174
-2217 -1177
-2204 -1196
-2193 -1212
-2184 -1225
-2177 -1235
-2165 -1252
-2160 -1259
-2147 -1277
-2139 -1288
-2128 -1303
-2114 -1322
-2111 -1326
-2098 -1343
-2088 -1356
-2081 -1365
-2070 -1379
-2055 -1398
-2051 -1403
-2038 -1419
-2029 -1430
-2015 -1447
-2010 -1453
-1994 -1472
-1983 -1485
-1966 -1505
-1960 -1512
-1947 -1527
-1940 -1535
-1925 -1552
-1917 -1561
-1900 -1580
-1891 -1590
-1881 -1601
-1870 -1613
-1858 -1626
-1845 -1640
-1831 -1655
-1816 -1671
-1800 -1688
-1783 -1706
-1765 -1725
-1746 -1745
-1745 -1746
-1725 -1765
-1706 -1783
-1688 -1800
-1671 -1816
-1655 -1831
-1640 -1845
-1626 -1858
-1613 -1870
-1601 -1881
-1590 -1891
-1580 -1900
-1561 -1917
-1552 -1925
-1535 -1940
-1527 -1947
-1512 -1960
-1505 -1966
-1485 -1983
-1472 -1994
-1453 -2010
-1447 -2015
-1430 -2029
-1419 -2038
-1403 -2051
-1398 -2055
-1379 -2070
-1365 -2081
-1356 -2088
-1343 -2098
-1326 -2111
-1322 -2114
-1303 -2128
-1288 -2139
-1277 -2147
-1259 -2160
-1252 -2165
-1235 -2177
-1225 -2184
-1212 -2193
-1196 -2204
-1177 -2217
-1174 -2219
-1154 -2232
-1137 -2243
-1123 -2252
-1112 -2259
-1093 -2271
-1085 -2276
-1072 -2284
-1054 -2295
-1049 -2298
-1032 -2308
-1020 -2315
-1001 -2326
-994 -2330
-978 -2339
-969 -2344
-949 -2355
-938 -2361
-925 -2368
-910 -2376
-893 -2385
-874 -2395
-872 -2396
-853 -2405
-836 -2413
-821 -2420
-808 -2426
-797 -2431
-777 -2440
-768 -2444
-752 -2451
-745 -2454
-726 -2462
-714 -2467
-697 -2474
-692 -2476
-674 -2483
-661 -2488
-653 -2491
-634 -2498
-623 -2502
-609 -2507
-592 -2513
-572 -2520
-569 -2521
-550 -2527
-534 -2532
-521 -2536
-511 -2539
-494 -2544
-487 -2546
-469 -2551
-458 -2554
-443 -2558
-424 -2563
-420 -2564
-403 -2568
-390 -2571
-381 -2573
-367 -2576
-348 -2580
-343 -2581
-327 -2584
-316 -2586
-299 -2589
-293 -2590
-274 -2593
-261 -2595
-241 -2598
-234 -2599
-219 -2601
-211 -2602
-194 -2604
-185 -2605
-166 -2607
-156 -2608
-145 -2609
-133 -2610
-120 -2611
-106 -2612
-91 -2613
-75 -2614
-58 -2615
-40 -2616
-21 -2617
-1 -2618
-0 -2618
--1 -2618
--21 -2617
--40 -2616
--58 -2615
--75 -2614
--91 -2613
--106 -2612
--120 -2611
--133 -2610
--145 -2609
--156 -2608
--166 -2607
--185 -2605
--194 -2604
--211 -2602
--219 -2601
--234 -2599
--241 -2598
--261 -2595
--274 -2593
--293 -2590
--299 -2589
--316 -2586
--327 -2584
--343 -2581
--348 -2580
--367 -2576
--381 -2573
--390 -2571
--403 -2568
--420 -2564
--424 -2563
--443 -2558
--458 -2554
--469 -2551
--487 -2546
--494 -2544
--511 -2539
--521 -2536
--534 -2532
--550 -2527
--569 -2521
--572 -2520
--592 -2513
--609 -2507
--623 -2502
--634 -2498
--653 -2491
--661 -2488
--674 -2483
--692 -2476
--697 -2474
--714 -2467
--726 -2462
--745 -2454
--752 -2451
--768 -2444
--777 -2440
--797 -2431
--808 -2426
--821 -2420
--836 -2413
--853 -2405
--872 -2396
--874 -2395
--893 -2385
--910 -2376
--925 -2368
--938 -2361
--949 -2355
--969 -2344
--978 -2339
--994 -2330
--1001 -2326
--1020 -2315
--1032 -2308
--1049 -2298
--1054 -2295
--1072 -2284
--1085 -2276
--1093 -2271
--1112 -2259
--1123 -2252
--1137 -2243
--1154 -2232
--1174 -2219
--1177 -2217
--1196 -2204
--1212 -2193
--1225 -2184
--1235 -2177
--1252 -2165
--1259 -2160
--1277 -2147
--1288 -2139
--1303 -2128
--1322 -2114
--1326 -2111
--1343 -2098
--1356 -2088
--1365 -2081
--1379 -2070
--1398 -2055
--1403 -2051
--1419 -2038
--1430 -2029
--1447 -2015
--1453 -2010
--1472 -1994
--1485 -1983
--1505 -1966
--1512 -1960
--1527 -1947
--1535 -1940
--1552 -1925
--1561 -1917
--1580 -1900
--1590 -1891
--1601 -1881
--1613 -1870
--1626 -1858
--1640 -1845
--1655 -1831
--1671 -1816
--1688 -1800
--1706 -1783
--1725 -1765
--1745 -1746
--1746 -1745
--1765 -1725
--1783 -1706
--1800 -1688
--1816 -1671
--1831 -1655
--1845 -1640
--1858 -1626
--1870 -1613
--1881 -1601
--1891 -1590
--1900 -1580
--1917 -1561
--1925 -1552
--1940 -1535
--1947 -1527
--1960 -1512
--1966 -1505
--1983 -1485
--1994 -1472
--2010 -1453
--2015 -1447
--2029 -1430
--2038 -1419
--2051 -1403
--2055 -1398
--2070 -1379
--2081 -1365
--2088 -1356
--2098 -1343
--2111 -1326
--2114 -1322
--2128 -1303
--2139 -1288
--2147 -1277
--2160 -1259
--2165 -1252
--2177 -1235
--2184 -1225
--2193 -1212
--2204 -1196
--2217 -1177
--2219 -1174
--2232 -1154
--2243 -1137
--2252 -1123
--2259 -1112
--2271 -1093
--2276 -1085
--2284 -1072
--2295 -1054
--2298 -1049
--2308 -1032
--2315 -1020
--2326 -1001
--2330 -994
--2339 -978
--2344 -969
--2355 -949
--2361 -938
--2368 -925
--2376 -910
--2385 -893
--2395 -874
--2396 -872
--2405 -853
--2413 -836
--2420 -821
--2426 -808
--2431 -797
--2440 -777
--2444 -768
--2451 -752
--2454 -745
--2462 -726
--2467 -714
--2474 -697
--2476 -692
--2483 -674
--2488 -661
--2491 -653
--2498 -634
--2502 -623
--2507 -609
--2513 -592
--2520 -572
--2521 -569
--2527 -550
--2532 -534
--2536 -521
--2539 -511
--2544 -494
--2546 -487
--2551 -469
--2554 -458
--2558 -443
--2563 -424
--2564 -420
--2568 -403
--2571 -390
--2573 -381
--2576 -367
-0 0
-1 0
-1
-0 1
-0 0
-1 1
-1
-2 2
-0 0
-2 2
-1
-1 1
-1 1
-0 0
-1
-2 2
-1 1
-2 2
-1
-0 0
-2 2
-0 0
-1
-1 1
-2 2
-1 1
-1
-0 0
-0 0
-0 1
-2
-0 -1
-0 2
-0 0
-0 1
-2
-0 2
-0 -1
-0 1
-0 0
-2
-0 -1
-0 2
-0 1
-0 0
-2
-0 2
-0 -1
-0 0
-0 2
-2
-0 -1
-0 3
-0 1
--1 -1
-4
-0 0
-0 2
-2 0
-2 2
-0 1
-1 1
-4
-0 0
-0 2
-2 0
-2 2
--1 -1
-0 1
-4
-0 0
-0 2
-2 0
-2 2
-1 1
-0 1
-4
-0 0
-0 2
-2 0
-2 2
-0 0
-0 1
-2
-1 2
--1 2
-0 0
-0 1
-4
--5 -5
--5 5
-5 -5
-5 5
-0 0
-0 10
-4
--5 -5
--5 5
-5 -5
-5 5
-0 10
-0 0
-4
--5 -5
--5 5
-5 -5
-5 5
--10000 -10000
-10000 10000
-1
-10000 -10000
--10000 -10000
-10000 10000
-2
-10000 -10000
--10000 10000
-0 0
-1001 1001
-1000
-1 1
-2 2
-3 3
-4 4
-5 5
-6 6
-7 7
-8 8
-9 9
-10 10
-11 11
-12 12
-13 13
-14 14
-15 15
-16 16
-17 17
-18 18
-19 19
-20 20
-21 21
-22 22
-23 23
-24 24
-25 25
-26 26
-27 27
-28 28
-29 29
-30 30
-31 31
-32 32
-33 33
-34 34
-35 35
-36 36
-37 37
-38 38
-39 39
-40 40
-41 41
-42 42
-43 43
-44 44
-45 45
-46 46
-47 47
-48 48
-49 49
-50 50
-51 51
-52 52
-53 53
-54 54
-55 55
-56 56
-57 57
-58 58
-59 59
-60 60
-61 61
-62 62
-63 63
-64 64
-65 65
-66 66
-67 67
-68 68
-69 69
-70 70
-71 71
-72 72
-73 73
-74 74
-75 75
-76 76
-77 77
-78 78
-79 79
-80 80
-81 81
-82 82
-83 83
-84 84
-85 85
-86 86
-87 87
-88 88
-89 89
-90 90
-91 91
-92 92
-93 93
-94 94
-95 95
-96 96
-97 97
-98 98
-99 99
-100 100
-101 101
-102 102
-103 103
-104 104
-105 105
-106 106
-107 107
-108 108
-109 109
-110 110
-111 111
-112 112
-113 113
-114 114
-115 115
-116 116
-117 117
-118 118
-119 119
-120 120
-121 121
-122 122
-123 123
-124 124
-125 125
-126 126
-127 127
-128 128
-129 129
-130 130
-131 131
-132 132
-133 133
-134 134
-135 135
-136 136
-137 137
-138 138
-139 139
-140 140
-141 141
-142 142
-143 143
-144 144
-145 145
-146 146
-147 147
-148 148
-149 149
-150 150
-151 151
-152 152
-153 153
-154 154
-155 155
-156 156
-157 157
-158 158
-159 159
-160 160
-161 161
-162 162
-163 163
-164 164
-165 165
-166 166
-167 167
-168 168
-169 169
-170 170
-171 171
-172 172
-173 173
-174 174
-175 175
-176 176
-177 177
-178 178
-179 179
-180 180
-181 181
-182 182
-183 183
-184 184
-185 185
-186 186
-187 187
-188 188
-189 189
-190 190
-191 191
-192 192
-193 193
-194 194
-195 195
-196 196
-197 197
-198 198
-199 199
-200 200
-201 201
-202 202
-203 203
-204 204
-205 205
-206 206
-207 207
-208 208
-209 209
-210 210
-211 211
-212 212
-213 213
-214 214
-215 215
-216 216
-217 217
-218 218
-219 219
-220 220
-221 221
-222 222
-223 223
-224 224
-225 225
-226 226
-227 227
-228 228
-229 229
-230 230
-231 231
-232 232
-233 233
-234 234
-235 235
-236 236
-237 237
-238 238
-239 239
-240 240
-241 241
-242 242
-243 243
-244 244
-245 245
-246 246
-247 247
-248 248
-249 249
-250 250
-251 251
-252 252
-253 253
-254 254
-255 255
-256 256
-257 257
-258 258
-259 259
-260 260
-261 261
-262 262
-263 263
-264 264
-265 265
-266 266
-267 267
-268 268
-269 269
-270 270
-271 271
-272 272
-273 273
-274 274
-275 275
-276 276
-277 277
-278 278
-279 279
-280 280
-281 281
-282 282
-283 283
-284 284
-285 285
-286 286
-287 287
-288 288
-289 289
-290 290
-291 291
-292 292
-293 293
-294 294
-295 295
-296 296
-297 297
-298 298
-299 299
-300 300
-301 301
-302 302
-303 303
-304 304
-305 305
-306 306
-307 307
-308 308
-309 309
-310 310
-311 311
-312 312
-313 313
-314 314
-315 315
-316 316
-317 317
-318 318
-319 319
-320 320
-321 321
-322 322
-323 323
-324 324
-325 325
-326 326
-327 327
-328 328
-329 329
-330 330
-331 331
-332 332
-333 333
-334 334
-335 335
-336 336
-337 337
-338 338
-339 339
-340 340
-341 341
-342 342
-343 343
-344 344
-345 345
-346 346
-347 347
-348 348
-349 349
-350 350
-351 351
-352 352
-353 353
-354 354
-355 355
-356 356
-357 357
-358 358
-359 359
-360 360
-361 361
-362 362
-363 363
-364 364
-365 365
-366 366
-367 367
-368 368
-369 369
-370 370
-371 371
-372 372
-373 373
-374 374
-375 375
-376 376
-377 377
-378 378
-379 379
-380 380
-381 381
-382 382
-383 383
-384 384
-385 385
-386 386
-387 387
-388 388
-389 389
-390 390
-391 391
-392 392
-393 393
-394 394
-395 395
-396 396
-397 397
-398 398
-399 399
-400 400
-401 401
-402 402
-403 403
-404 404
-405 405
-406 406
-407 407
-408 408
-409 409
-410 410
-411 411
-412 412
-413 413
-414 414
-415 415
-416 416
-417 417
-418 418
-419 419
-420 420
-421 421
-422 422
-423 423
-424 424
-425 425
-426 426
-427 427
-428 428
-429 429
-430 430
-431 431
-432 432
-433 433
-434 434
-435 435
-436 436
-437 437
-438 438
-439 439
-440 440
-441 441
-442 442
-443 443
-444 444
-445 445
-446 446
-447 447
-448 448
-449 449
-450 450
-451 451
-452 452
-453 453
-454 454
-455 455
-456 456
-457 457
-458 458
-459 459
-460 460
-461 461
-462 462
-463 463
-464 464
-465 465
-466 466
-467 467
-468 468
-469 469
-470 470
-471 471
-472 472
-473 473
-474 474
-475 475
-476 476
-477 477
-478 478
-479 479
-480 480
-481 481
-482 482
-483 483
-484 484
-485 485
-486 486
-487 487
-488 488
-489 489
-490 490
-491 491
-492 492
-493 493
-494 494
-495 495
-496 496
-497 497
-498 498
-499 499
-500 500
-501 501
-502 502
-503 503
-504 504
-505 505
-506 506
-507 507
-508 508
-509 509
-510 510
-511 511
-512 512
-513 513
-514 514
-515 515
-516 516
-517 517
-518 518
-519 519
-520 520
-521 521
-522 522
-523 523
-524 524
-525 525
-526 526
-527 527
-528 528
-529 529
-530 530
-531 531
-532 532
-533 533
-534 534
-535 535
-536 536
-537 537
-538 538
-539 539
-540 540
-541 541
-542 542
-543 543
-544 544
-545 545
-546 546
-547 547
-548 548
-549 549
-550 550
-551 551
-552 552
-553 553
-554 554
-555 555
-556 556
-557 557
-558 558
-559 559
-560 560
-561 561
-562 562
-563 563
-564 564
-565 565
-566 566
-567 567
-568 568
-569 569
-570 570
-571 571
-572 572
-573 573
-574 574
-575 575
-576 576
-577 577
-578 578
-579 579
-580 580
-581 581
-582 582
-583 583
-584 584
-585 585
-586 586
-587 587
-588 588
-589 589
-590 590
-591 591
-592 592
-593 593
-594 594
-595 595
-596 596
-597 597
-598 598
-599 599
-600 600
-601 601
-602 602
-603 603
-604 604
-605 605
-606 606
-607 607
-608 608
-609 609
-610 610
-611 611
-612 612
-613 613
-614 614
-615 615
-616 616
-617 617
-618 618
-619 619
-620 620
-621 621
-622 622
-623 623
-624 624
-625 625
-626 626
-627 627
-628 628
-629 629
-630 630
-631 631
-632 632
-633 633
-634 634
-635 635
-636 636
-637 637
-638 638
-639 639
-640 640
-641 641
-642 642
-643 643
-644 644
-645 645
-646 646
-647 647
-648 648
-649 649
-650 650
-651 651
-652 652
-653 653
-654 654
-655 655
-656 656
-657 657
-658 658
-659 659
-660 660
-661 661
-662 662
-663 663
-664 664
-665 665
-666 666
-667 667
-668 668
-669 669
-670 670
-671 671
-672 672
-673 673
-674 674
-675 675
-676 676
-677 677
-678 678
-679 679
-680 680
-681 681
-682 682
-683 683
-684 684
-685 685
-686 686
-687 687
-688 688
-689 689
-690 690
-691 691
-692 692
-693 693
-694 694
-695 695
-696 696
-697 697
-698 698
-699 699
-700 700
-701 701
-702 702
-703 703
-704 704
-705 705
-706 706
-707 707
-708 708
-709 709
-710 710
-711 711
-712 712
-713 713
-714 714
-715 715
-716 716
-717 717
-718 718
-719 719
-720 720
-721 721
-722 722
-723 723
-724 724
-725 725
-726 726
-727 727
-728 728
-729 729
-730 730
-731 731
-732 732
-733 733
-734 734
-735 735
-736 736
-737 737
-738 738
-739 739
-740 740
-741 741
-742 742
-743 743
-744 744
-745 745
-746 746
-747 747
-748 748
-749 749
-750 750
-751 751
-752 752
-753 753
-754 754
-755 755
-756 756
-757 757
-758 758
-759 759
-760 760
-761 761
-762 762
-763 763
-764 764
-765 765
-766 766
-767 767
-768 768
-769 769
-770 770
-771 771
-772 772
-773 773
-774 774
-775 775
-776 776
-777 777
-778 778
-779 779
-780 780
-781 781
-782 782
-783 783
-784 784
-785 785
-786 786
-787 787
-788 788
-789 789
-790 790
-791 791
-792 792
-793 793
-794 794
-795 795
-796 796
-797 797
-798 798
-799 799
-800 800
-801 801
-802 802
-803 803
-804 804
-805 805
-806 806
-807 807
-808 808
-809 809
-810 810
-811 811
-812 812
-813 813
-814 814
-815 815
-816 816
-817 817
-818 818
-819 819
-820 820
-821 821
-822 822
-823 823
-824 824
-825 825
-826 826
-827 827
-828 828
-829 829
-830 830
-831 831
-832 832
-833 833
-834 834
-835 835
-836 836
-837 837
-838 838
-839 839
-840 840
-841 841
-842 842
-843 843
-844 844
-845 845
-846 846
-847 847
-848 848
-849 849
-850 850
-851 851
-852 852
-853 853
-854 854
-855 855
-856 856
-857 857
-858 858
-859 859
-860 860
-861 861
-862 862
-863 863
-864 864
-865 865
-866 866
-867 867
-868 868
-869 869
-870 870
-871 871
-872 872
-873 873
-874 874
-875 875
-876 876
-877 877
-878 878
-879 879
-880 880
-881 881
-882 882
-883 883
-884 884
-885 885
-886 886
-887 887
-888 888
-889 889
-890 890
-891 891
-892 892
-893 893
-894 894
-895 895
-896 896
-897 897
-898 898
-899 899
-900 900
-901 901
-902 902
-903 903
-904 904
-905 905
-906 906
-907 907
-908 908
-909 909
-910 910
-911 911
-912 912
-913 913
-914 914
-915 915
-916 916
-917 917
-918 918
-919 919
-920 920
-921 921
-922 922
-923 923
-924 924
-925 925
-926 926
-927 927
-928 928
-929 929
-930 930
-931 931
-932 932
-933 933
-934 934
-935 935
-936 936
-937 937
-938 938
-939 939
-940 940
-941 941
-942 942
-943 943
-944 944
-945 945
-946 946
-947 947
-948 948
-949 949
-950 950
-951 951
-952 952
-953 953
-954 954
-955 955
-956 956
-957 957
-958 958
-959 959
-960 960
-961 961
-962 962
-963 963
-964 964
-965 965
-966 966
-967 967
-968 968
-969 969
-970 970
-971 971
-972 972
-973 973
-974 974
-975 975
-976 976
-977 977
-978 978
-979 979
-980 980
-981 981
-982 982
-983 983
-984 984
-985 985
-986 986
-987 987
-988 988
-989 989
-990 990
-991 991
-992 992
-993 993
-994 994
-995 995
-996 996
-997 997
-998 998
-999 999
-1000 1000
-0 0
-1001 1001
-1000
-350 350
-309 309
-662 662
-505 505
-637 637
-760 760
-389 389
-971 971
-197 197
-214 214
-939 939
-952 952
-275 275
-941 941
-897 897
-121 121
-846 846
-673 673
-139 139
-990 990
-2 2
-154 154
-584 584
-4 4
-547 547
-575 575
-326 326
-749 749
-628 628
-862 862
-734 734
-617 617
-909 909
-287 287
-263 263
-842 842
-594 594
-630 630
-104 104
-242 242
-250 250
-666 666
-277 277
-970 970
-307 307
-116 116
-866 866
-471 471
-535 535
-721 721
-387 387
-179 179
-388 388
-134 134
-947 947
-881 881
-196 196
-109 109
-719 719
-508 508
-301 301
-285 285
-536 536
-553 553
-207 207
-15 15
-794 794
-950 950
-872 872
-96 96
-454 454
-161 161
-288 288
-602 602
-631 631
-532 532
-184 184
-974 974
-75 75
-724 724
-989 989
-556 556
-227 227
-474 474
-45 45
-338 338
-208 208
-291 291
-244 244
-627 627
-431 431
-501 501
-72 72
-273 273
-667 667
-115 115
-853 853
-761 761
-187 187
-523 523
-215 215
-783 783
-625 625
-436 436
-458 458
-585 585
-942 942
-943 943
-73 73
-237 237
-492 492
-428 428
-406 406
-210 210
-620 620
-8 8
-49 49
-803 803
-766 766
-888 888
-840 840
-769 769
-608 608
-707 707
-349 349
-684 684
-157 157
-887 887
-280 280
-823 823
-223 223
-413 413
-578 578
-710 710
-398 398
-804 804
-573 573
-409 409
-725 725
-41 41
-763 763
-516 516
-639 639
-239 239
-297 297
-186 186
-616 616
-796 796
-512 512
-289 289
-955 955
-55 55
-442 442
-229 229
-693 693
-456 456
-589 589
-120 120
-895 895
-54 54
-820 820
-443 443
-282 282
-231 231
-520 520
-632 632
-180 180
-771 771
-850 850
-181 181
-687 687
-363 363
-946 946
-978 978
-368 368
-940 940
-150 150
-775 775
-768 768
-62 62
-178 178
-348 348
-533 533
-81 81
-299 299
-995 995
-565 565
-405 405
-319 319
-50 50
-906 906
-416 416
-365 365
-21 21
-925 925
-936 936
-6 6
-944 944
-689 689
-987 987
-323 323
-764 764
-638 638
-66 66
-755 755
-513 513
-599 599
-149 149
-481 481
-903 903
-635 635
-901 901
-966 966
-58 58
-142 142
-370 370
-889 889
-801 801
-429 429
-3 3
-77 77
-496 496
-791 791
-552 552
-483 483
-833 833
-665 665
-53 53
-182 182
-343 343
-548 548
-459 459
-976 976
-414 414
-656 656
-91 91
-914 914
-321 321
-437 437
-19 19
-63 63
-591 591
-68 68
-346 346
-369 369
-498 498
-354 354
-920 920
-359 359
-880 880
-110 110
-544 544
-89 89
-34 34
-64 64
-900 900
-902 902
-256 256
-366 366
-448 448
-814 814
-968 968
-11 11
-284 284
-99 99
-408 408
-997 997
-825 825
-495 495
-42 42
-929 929
-752 752
-912 912
-679 679
-305 305
-329 329
-122 122
-331 331
-742 742
-592 592
-457 457
-711 711
-415 415
-926 926
-148 148
-173 173
-133 133
-545 545
-514 514
-621 621
-248 248
-682 682
-411 411
-770 770
-460 460
-270 270
-882 882
-335 335
-95 95
-5 5
-254 254
-132 132
-894 894
-71 71
-18 18
-191 191
-193 193
-65 65
-696 696
-40 40
-543 543
-292 292
-488 488
-146 146
-855 855
-399 399
-956 956
-476 476
-659 659
-657 657
-439 439
-747 747
-767 767
-377 377
-787 787
-540 540
-124 124
-464 464
-559 559
-51 51
-728 728
-362 362
-800 800
-266 266
-703 703
-308 308
-353 353
-905 905
-118 118
-188 188
-130 130
-490 490
-856 856
-131 131
-423 423
-375 375
-23 23
-622 622
-1000 1000
-525 525
-493 493
-158 158
-80 80
-690 690
-119 119
-427 427
-786 786
-777 777
-998 998
-972 972
-784 784
-677 677
-204 204
-836 836
-607 607
-788 788
-953 953
-965 965
-452 452
-759 759
-686 686
-489 489
-14 14
-312 312
-671 671
-524 524
-494 494
-164 164
-983 983
-13 13
-706 706
-795 795
-504 504
-373 373
-743 743
-316 316
-233 233
-961 961
-260 260
-705 705
-597 597
-44 44
-816 816
-934 934
-502 502
-39 39
-400 400
-28 28
-612 612
-883 883
-646 646
-342 342
-295 295
-896 896
-327 327
-230 230
-751 751
-733 733
-674 674
-924 924
-774 774
-590 590
-868 868
-169 169
-582 582
-527 527
-268 268
-451 451
-704 704
-586 586
-807 807
-357 357
-849 849
-509 509
-163 163
-845 845
-797 797
-518 518
-199 199
-155 155
-463 463
-251 251
-172 172
-272 272
-720 720
-165 165
-726 726
-255 255
-76 76
-515 515
-611 611
-385 385
-744 744
-789 789
-159 159
-61 61
-874 874
-70 70
-762 762
-805 805
-198 198
-445 445
-821 821
-534 534
-174 174
-147 147
-580 580
-519 519
-171 171
-340 340
-873 873
-678 678
-554 554
-351 351
-808 808
-852 852
-670 670
-858 858
-113 113
-419 419
-817 817
-517 517
-933 933
-467 467
-740 740
-330 330
-83 83
-449 449
-658 658
-730 730
-234 234
-167 167
-529 529
-648 648
-830 830
-781 781
-144 144
-170 170
-106 106
-831 831
-461 461
-916 916
-176 176
-381 381
-143 143
-570 570
-189 189
-441 441
-480 480
-613 613
-336 336
-810 810
-48 48
-951 951
-551 551
-138 138
-680 680
-875 875
-497 497
-211 211
-317 317
-624 624
-669 669
-623 623
-701 701
-935 935
-286 286
-802 802
-52 52
-141 141
-834 834
-201 201
-29 29
-702 702
-890 890
-236 236
-111 111
-560 560
-374 374
-676 676
-16 16
-938 938
-854 854
-843 843
-754 754
-396 396
-205 205
-303 303
-195 195
-135 135
-7 7
-403 403
-792 792
-948 948
-739 739
-985 985
-949 949
-384 384
-748 748
-879 879
-899 899
-587 587
-967 967
-136 136
-100 100
-22 22
-341 341
-746 746
-664 664
-877 877
-709 709
-361 361
-619 619
-1 1
-371 371
-579 579
-692 692
-511 511
-778 778
-203 203
-249 249
-645 645
-318 318
-313 313
-466 466
-444 444
-750 750
-991 991
-101 101
-418 418
-470 470
-568 568
-394 394
-799 799
-378 378
-36 36
-596 596
-521 521
-932 932
-712 712
-574 574
-683 683
-59 59
-296 296
-723 723
-194 194
-603 603
-156 156
-959 959
-221 221
-185 185
-636 636
-151 151
-644 644
-647 647
-626 626
-973 973
-300 300
-839 839
-224 224
-653 653
-397 397
-24 24
-571 571
-364 364
-963 963
-57 57
-741 741
-31 31
-867 867
-688 688
-697 697
-835 835
-871 871
-274 274
-507 507
-539 539
-487 487
-246 246
-722 722
-609 609
-561 561
-218 218
-190 190
-46 46
-908 908
-438 438
-546 546
-819 819
-753 753
-26 26
-108 108
-90 90
-827 827
-232 232
-918 918
-294 294
-822 822
-564 564
-528 528
-913 913
-306 306
-337 337
-915 915
-245 245
-225 225
-392 392
-860 860
-996 996
-499 499
-426 426
-878 878
-259 259
-9 9
-992 992
-869 869
-960 960
-598 598
-522 522
-102 102
-765 765
-25 25
-355 355
-809 809
-569 569
-432 432
-401 401
-776 776
-482 482
-322 322
-298 298
-716 716
-919 919
-271 271
-344 344
-162 162
-640 640
-832 832
-848 848
-824 824
-595 595
-402 402
-94 94
-643 643
-206 206
-407 407
-937 937
-958 958
-235 235
-123 123
-650 650
-258 258
-175 175
-78 78
-811 811
-583 583
-562 562
-47 47
-125 125
-290 290
-844 844
-694 694
-641 641
-192 192
-904 904
-655 655
-691 691
-217 217
-324 324
-315 315
-12 12
-360 360
-222 222
-240 240
-714 714
-69 69
-410 410
-863 863
-930 930
-581 581
-907 907
-491 491
-921 921
-382 382
-661 661
-541 541
-465 465
-576 576
-715 715
-200 200
-847 847
-17 17
-267 267
-43 43
-88 88
-478 478
-302 302
-537 537
-975 975
-311 311
-390 390
-261 261
-33 33
-479 479
-114 114
-826 826
-735 735
-67 67
-600 600
-736 736
-859 859
-718 718
-334 334
-982 982
-209 209
-969 969
-675 675
-738 738
-395 395
-931 931
-430 430
-994 994
-279 279
-503 503
-577 577
-605 605
-38 38
-152 152
-531 531
-462 462
-446 446
-618 618
-404 404
-468 468
-238 238
-988 988
-729 729
-339 339
-954 954
-922 922
-892 892
-202 202
-558 558
-177 177
-663 663
-685 685
-870 870
-785 785
-964 964
-345 345
-421 421
-213 213
-253 253
-257 257
-660 660
-790 790
-681 681
-917 917
-572 572
-857 857
-927 927
-216 216
-555 555
-886 886
-713 713
-530 530
-999 999
-500 500
-772 772
-841 841
-601 601
-758 758
-87 87
-891 891
-60 60
-550 550
-538 538
-455 455
-376 376
-837 837
-264 264
-898 898
-700 700
-818 818
-737 737
-281 281
-82 82
-563 563
-367 367
-615 615
-779 779
-269 269
-604 604
-86 86
-97 97
-30 30
-588 588
-283 283
-140 140
-893 893
-320 320
-74 74
-984 984
-145 145
-358 358
-328 328
-453 453
-672 672
-928 928
-276 276
-166 166
-92 92
-128 128
-107 107
-633 633
-757 757
-433 433
-219 219
-593 593
-372 372
-727 727
-815 815
-993 993
-20 20
-865 865
-356 356
-347 347
-798 798
-698 698
-813 813
-386 386
-160 160
-98 98
-425 425
-420 420
-352 352
-695 695
-699 699
-884 884
-325 325
-380 380
-731 731
-127 127
-980 980
-642 642
-447 447
-412 412
-829 829
-651 651
-542 542
-851 851
-278 278
-84 84
-228 228
-756 756
-864 864
-606 606
-945 945
-486 486
-37 37
-27 27
-923 923
-526 526
-129 129
-241 241
-911 911
-440 440
-484 484
-247 247
-473 473
-510 510
-304 304
-450 450
-424 424
-475 475
-112 112
-745 745
-629 629
-828 828
-10 10
-265 265
-838 838
-153 153
-105 105
-773 773
-649 649
-652 652
-103 103
-117 117
-977 977
-126 126
-183 183
-861 861
-962 962
-379 379
-79 79
-168 168
-85 85
-979 979
-435 435
-391 391
-717 717
-981 981
-793 793
-35 35
-668 668
-422 422
-383 383
-557 557
-137 137
-806 806
-472 472
-252 252
-243 243
-614 614
-876 876
-32 32
-220 220
-549 549
-332 332
-314 314
-417 417
-812 812
-634 634
-910 910
-56 56
-654 654
-506 506
-262 262
-957 957
-226 226
-986 986
-610 610
-780 780
-477 477
-293 293
-485 485
-434 434
-93 93
-393 393
-333 333
-310 310
-732 732
-782 782
-708 708
-566 566
-212 212
-469 469
-885 885
-567 567
-0 0
-1001 1001
-1000
-1000 1000
-999 999
-998 998
-997 997
-996 996
-995 995
-994 994
-993 993
-992 992
-991 991
-990 990
-989 989
-988 988
-987 987
-986 986
-985 985
-984 984
-983 983
-982 982
-981 981
-980 980
-979 979
-978 978
-977 977
-976 976
-975 975
-974 974
-973 973
-972 972
-971 971
-970 970
-969 969
-968 968
-967 967
-966 966
-965 965
-964 964
-963 963
-962 962
-961 961
-960 960
-959 959
-958 958
-957 957
-956 956
-955 955
-954 954
-953 953
-952 952
-951 951
-950 950
-949 949
-948 948
-947 947
-946 946
-945 945
-944 944
-943 943
-942 942
-941 941
-940 940
-939 939
-938 938
-937 937
-936 936
-935 935
-934 934
-933 933
-932 932
-931 931
-930 930
-929 929
-928 928
-927 927
-926 926
-925 925
-924 924
-923 923
-922 922
-921 921
-920 920
-919 919
-918 918
-917 917
-916 916
-915 915
-914 914
-913 913
-912 912
-911 911
-910 910
-909 909
-908 908
-907 907
-906 906
-905 905
-904 904
-903 903
-902 902
-901 901
-900 900
-899 899
-898 898
-897 897
-896 896
-895 895
-894 894
-893 893
-892 892
-891 891
-890 890
-889 889
-888 888
-887 887
-886 886
-885 885
-884 884
-883 883
-882 882
-881 881
-880 880
-879 879
-878 878
-877 877
-876 876
-875 875
-874 874
-873 873
-872 872
-871 871
-870 870
-869 869
-868 868
-867 867
-866 866
-865 865
-864 864
-863 863
-862 862
-861 861
-860 860
-859 859
-858 858
-857 857
-856 856
-855 855
-854 854
-853 853
-852 852
-851 851
-850 850
-849 849
-848 848
-847 847
-846 846
-845 845
-844 844
-843 843
-842 842
-841 841
-840 840
-839 839
-838 838
-837 837
-836 836
-835 835
-834 834
-833 833
-832 832
-831 831
-830 830
-829 829
-828 828
-827 827
-826 826
-825 825
-824 824
-823 823
-822 822
-821 821
-820 820
-819 819
-818 818
-817 817
-816 816
-815 815
-814 814
-813 813
-812 812
-811 811
-810 810
-809 809
-808 808
-807 807
-806 806
-805 805
-804 804
-803 803
-802 802
-801 801
-800 800
-799 799
-798 798
-797 797
-796 796
-795 795
-794 794
-793 793
-792 792
-791 791
-790 790
-789 789
-788 788
-787 787
-786 786
-785 785
-784 784
-783 783
-782 782
-781 781
-780 780
-779 779
-778 778
-777 777
-776 776
-775 775
-774 774
-773 773
-772 772
-771 771
-770 770
-769 769
-768 768
-767 767
-766 766
-765 765
-764 764
-763 763
-762 762
-761 761
-760 760
-759 759
-758 758
-757 757
-756 756
-755 755
-754 754
-753 753
-752 752
-751 751
-750 750
-749 749
-748 748
-747 747
-746 746
-745 745
-744 744
-743 743
-742 742
-741 741
-740 740
-739 739
-738 738
-737 737
-736 736
-735 735
-734 734
-733 733
-732 732
-731 731
-730 730
-729 729
-728 728
-727 727
-726 726
-725 725
-724 724
-723 723
-722 722
-721 721
-720 720
-719 719
-718 718
-717 717
-716 716
-715 715
-714 714
-713 713
-712 712
-711 711
-710 710
-709 709
-708 708
-707 707
-706 706
-705 705
-704 704
-703 703
-702 702
-701 701
-700 700
-699 699
-698 698
-697 697
-696 696
-695 695
-694 694
-693 693
-692 692
-691 691
-690 690
-689 689
-688 688
-687 687
-686 686
-685 685
-684 684
-683 683
-682 682
-681 681
-680 680
-679 679
-678 678
-677 677
-676 676
-675 675
-674 674
-673 673
-672 672
-671 671
-670 670
-669 669
-668 668
-667 667
-666 666
-665 665
-664 664
-663 663
-662 662
-661 661
-660 660
-659 659
-658 658
-657 657
-656 656
-655 655
-654 654
-653 653
-652 652
-651 651
-650 650
-649 649
-648 648
-647 647
-646 646
-645 645
-644 644
-643 643
-642 642
-641 641
-640 640
-639 639
-638 638
-637 637
-636 636
-635 635
-634 634
-633 633
-632 632
-631 631
-630 630
-629 629
-628 628
-627 627
-626 626
-625 625
-624 624
-623 623
-622 622
-621 621
-620 620
-619 619
-618 618
-617 617
-616 616
-615 615
-614 614
-613 613
-612 612
-611 611
-610 610
-609 609
-608 608
-607 607
-606 606
-605 605
-604 604
-603 603
-602 602
-601 601
-600 600
-599 599
-598 598
-597 597
-596 596
-595 595
-594 594
-593 593
-592 592
-591 591
-590 590
-589 589
-588 588
-587 587
-586 586
-585 585
-584 584
-583 583
-582 582
-581 581
-580 580
-579 579
-578 578
-577 577
-576 576
-575 575
-574 574
-573 573
-572 572
-571 571
-570 570
-569 569
-568 568
-567 567
-566 566
-565 565
-564 564
-563 563
-562 562
-561 561
-560 560
-559 559
-558 558
-557 557
-556 556
-555 555
-554 554
-553 553
-552 552
-551 551
-550 550
-549 549
-548 548
-547 547
-546 546
-545 545
-544 544
-543 543
-542 542
-541 541
-540 540
-539 539
-538 538
-537 537
-536 536
-535 535
-534 534
-533 533
-532 532
-531 531
-530 530
-529 529
-528 528
-527 527
-526 526
-525 525
-524 524
-523 523
-522 522
-521 521
-520 520
-519 519
-518 518
-517 517
-516 516
-515 515
-514 514
-513 513
-512 512
-511 511
-510 510
-509 509
-508 508
-507 507
-506 506
-505 505
-504 504
-503 503
-502 502
-501 501
-500 500
-499 499
-498 498
-497 497
-496 496
-495 495
-494 494
-493 493
-492 492
-491 491
-490 490
-489 489
-488 488
-487 487
-486 486
-485 485
-484 484
-483 483
-482 482
-481 481
-480 480
-479 479
-478 478
-477 477
-476 476
-475 475
-474 474
-473 473
-472 472
-471 471
-470 470
-469 469
-468 468
-467 467
-466 466
-465 465
-464 464
-463 463
-462 462
-461 461
-460 460
-459 459
-458 458
-457 457
-456 456
-455 455
-454 454
-453 453
-452 452
-451 451
-450 450
-449 449
-448 448
-447 447
-446 446
-445 445
-444 444
-443 443
-442 442
-441 441
-440 440
-439 439
-438 438
-437 437
-436 436
-435 435
-434 434
-433 433
-432 432
-431 431
-430 430
-429 429
-428 428
-427 427
-426 426
-425 425
-424 424
-423 423
-422 422
-421 421
-420 420
-419 419
-418 418
-417 417
-416 416
-415 415
-414 414
-413 413
-412 412
-411 411
-410 410
-409 409
-408 408
-407 407
-406 406
-405 405
-404 404
-403 403
-402 402
-401 401
-400 400
-399 399
-398 398
-397 397
-396 396
-395 395
-394 394
-393 393
-392 392
-391 391
-390 390
-389 389
-388 388
-387 387
-386 386
-385 385
-384 384
-383 383
-382 382
-381 381
-380 380
-379 379
-378 378
-377 377
-376 376
-375 375
-374 374
-373 373
-372 372
-371 371
-370 370
-369 369
-368 368
-367 367
-366 366
-365 365
-364 364
-363 363
-362 362
-361 361
-360 360
-359 359
-358 358
-357 357
-356 356
-355 355
-354 354
-353 353
-352 352
-351 351
-350 350
-349 349
-348 348
-347 347
-346 346
-345 345
-344 344
-343 343
-342 342
-341 341
-340 340
-339 339
-338 338
-337 337
-336 336
-335 335
-334 334
-333 333
-332 332
-331 331
-330 330
-329 329
-328 328
-327 327
-326 326
-325 325
-324 324
-323 323
-322 322
-321 321
-320 320
-319 319
-318 318
-317 317
-316 316
-315 315
-314 314
-313 313
-312 312
-311 311
-310 310
-309 309
-308 308
-307 307
-306 306
-305 305
-304 304
-303 303
-302 302
-301 301
-300 300
-299 299
-298 298
-297 297
-296 296
-295 295
-294 294
-293 293
-292 292
-291 291
-290 290
-289 289
-288 288
-287 287
-286 286
-285 285
-284 284
-283 283
-282 282
-281 281
-280 280
-279 279
-278 278
-277 277
-276 276
-275 275
-274 274
-273 273
-272 272
-271 271
-270 270
-269 269
-268 268
-267 267
-266 266
-265 265
-264 264
-263 263
-262 262
-261 261
-260 260
-259 259
-258 258
-257 257
-256 256
-255 255
-254 254
-253 253
-252 252
-251 251
-250 250
-249 249
-248 248
-247 247
-246 246
-245 245
-244 244
-243 243
-242 242
-241 241
-240 240
-239 239
-238 238
-237 237
-236 236
-235 235
-234 234
-233 233
-232 232
-231 231
-230 230
-229 229
-228 228
-227 227
-226 226
-225 225
-224 224
-223 223
-222 222
-221 221
-220 220
-219 219
-218 218
-217 217
-216 216
-215 215
-214 214
-213 213
-212 212
-211 211
-210 210
-209 209
-208 208
-207 207
-206 206
-205 205
-204 204
-203 203
-202 202
-201 201
-200 200
-199 199
-198 198
-197 197
-196 196
-195 195
-194 194
-193 193
-192 192
-191 191
-190 190
-189 189
-188 188
-187 187
-186 186
-185 185
-184 184
-183 183
-182 182
-181 181
-180 180
-179 179
-178 178
-177 177
-176 176
-175 175
-174 174
-173 173
-172 172
-171 171
-170 170
-169 169
-168 168
-167 167
-166 166
-165 165
-164 164
-163 163
-162 162
-161 161
-160 160
-159 159
-158 158
-157 157
-156 156
-155 155
-154 154
-153 153
-152 152
-151 151
-150 150
-149 149
-148 148
-147 147
-146 146
-145 145
-144 144
-143 143
-142 142
-141 141
-140 140
-139 139
-138 138
-137 137
-136 136
-135 135
-134 134
-133 133
-132 132
-131 131
-130 130
-129 129
-128 128
-127 127
-126 126
-125 125
-124 124
-123 123
-122 122
-121 121
-120 120
-119 119
-118 118
-117 117
-116 116
-115 115
-114 114
-113 113
-112 112
-111 111
-110 110
-109 109
-108 108
-107 107
-106 106
-105 105
-104 104
-103 103
-102 102
-101 101
-100 100
-99 99
-98 98
-97 97
-96 96
-95 95
-94 94
-93 93
-92 92
-91 91
-90 90
-89 89
-88 88
-87 87
-86 86
-85 85
-84 84
-83 83
-82 82
-81 81
-80 80
-79 79
-78 78
-77 77
-76 76
-75 75
-74 74
-73 73
-72 72
-71 71
-70 70
-69 69
-68 68
-67 67
-66 66
-65 65
-64 64
-63 63
-62 62
-61 61
-60 60
-59 59
-58 58
-57 57
-56 56
-55 55
-54 54
-53 53
-52 52
-51 51
-50 50
-49 49
-48 48
-47 47
-46 46
-45 45
-44 44
-43 43
-42 42
-41 41
-40 40
-39 39
-38 38
-37 37
-36 36
-35 35
-34 34
-33 33
-32 32
-31 31
-30 30
-29 29
-28 28
-27 27
-26 26
-25 25
-24 24
-23 23
-22 22
-21 21
-20 20
-19 19
-18 18
-17 17
-16 16
-15 15
-14 14
-13 13
-12 12
-11 11
-10 10
-9 9
-8 8
-7 7
-6 6
-5 5
-4 4
-3 3
-2 2
-1 1
--10000 0
-10000 0
-560
--9999 1
--9999 -1
-9999 1
-9999 -1
--9997 2
--9997 -2
-9997 2
-9997 -2
--9994 3
--9994 -3
-9994 3
-9994 -3
--9990 4
--9990 -4
-9990 4
-9990 -4
--9985 5
--9985 -5
-9985 5
-9985 -5
--9979 6
--9979 -6
-9979 6
-9979 -6
--9972 7
--9972 -7
-9972 7
-9972 -7
--9964 8
--9964 -8
-9964 8
-9964 -8
--9955 9
--9955 -9
-9955 9
-9955 -9
--9945 10
--9945 -10
-9945 10
-9945 -10
--9934 11
--9934 -11
-9934 11
-9934 -11
--9922 12
--9922 -12
-9922 12
-9922 -12
--9909 13
--9909 -13
-9909 13
-9909 -13
--9895 14
--9895 -14
-9895 14
-9895 -14
--9880 15
--9880 -15
-9880 15
-9880 -15
--9864 16
--9864 -16
-9864 16
-9864 -16
--9847 17
--9847 -17
-9847 17
-9847 -17
--9829 18
--9829 -18
-9829 18
-9829 -18
--9810 19
--9810 -19
-9810 19
-9810 -19
--9790 20
--9790 -20
-9790 20
-9790 -20
--9769 21
--9769 -21
-9769 21
-9769 -21
--9747 22
--9747 -22
-9747 22
-9747 -22
--9724 23
--9724 -23
-9724 23
-9724 -23
--9700 24
--9700 -24
-9700 24
-9700 -24
--9675 25
--9675 -25
-9675 25
-9675 -25
--9649 26
--9649 -26
-9649 26
-9649 -26
--9622 27
--9622 -27
-9622 27
-9622 -27
--9594 28
--9594 -28
-9594 28
-9594 -28
--9565 29
--9565 -29
-9565 29
-9565 -29
--9535 30
--9535 -30
-9535 30
-9535 -30
--9504 31
--9504 -31
-9504 31
-9504 -31
--9472 32
--9472 -32
-9472 32
-9472 -32
--9439 33
--9439 -33
-9439 33
-9439 -33
--9405 34
--9405 -34
-9405 34
-9405 -34
--9370 35
--9370 -35
-9370 35
-9370 -35
--9334 36
--9334 -36
-9334 36
-9334 -36
--9297 37
--9297 -37
-9297 37
-9297 -37
--9259 38
--9259 -38
-9259 38
-9259 -38
--9220 39
--9220 -39
-9220 39
-9220 -39
--9180 40
--9180 -40
-9180 40
-9180 -40
--9139 41
--9139 -41
-9139 41
-9139 -41
--9097 42
--9097 -42
-9097 42
-9097 -42
--9054 43
--9054 -43
-9054 43
-9054 -43
--9010 44
--9010 -44
-9010 44
-9010 -44
--8965 45
--8965 -45
-8965 45
-8965 -45
--8919 46
--8919 -46
-8919 46
-8919 -46
--8872 47
--8872 -47
-8872 47
-8872 -47
--8824 48
--8824 -48
-8824 48
-8824 -48
--8775 49
--8775 -49
-8775 49
-8775 -49
--8725 50
--8725 -50
-8725 50
-8725 -50
--8674 51
--8674 -51
-8674 51
-8674 -51
--8622 52
--8622 -52
-8622 52
-8622 -52
--8569 53
--8569 -53
-8569 53
-8569 -53
--8515 54
--8515 -54
-8515 54
-8515 -54
--8460 55
--8460 -55
-8460 55
-8460 -55
--8404 56
--8404 -56
-8404 56
-8404 -56
--8347 57
--8347 -57
-8347 57
-8347 -57
--8289 58
--8289 -58
-8289 58
-8289 -58
--8230 59
--8230 -59
-8230 59
-8230 -59
--8170 60
--8170 -60
-8170 60
-8170 -60
--8109 61
--8109 -61
-8109 61
-8109 -61
--8047 62
--8047 -62
-8047 62
-8047 -62
--7984 63
--7984 -63
-7984 63
-7984 -63
--7920 64
--7920 -64
-7920 64
-7920 -64
--7855 65
--7855 -65
-7855 65
-7855 -65
--7789 66
--7789 -66
-7789 66
-7789 -66
--7722 67
--7722 -67
-7722 67
-7722 -67
--7654 68
--7654 -68
-7654 68
-7654 -68
--7585 69
--7585 -69
-7585 69
-7585 -69
--7515 70
--7515 -70
-7515 70
-7515 -70
--7444 71
--7444 -71
-7444 71
-7444 -71
--7372 72
--7372 -72
-7372 72
-7372 -72
--7299 73
--7299 -73
-7299 73
-7299 -73
--7225 74
--7225 -74
-7225 74
-7225 -74
--7150 75
--7150 -75
-7150 75
-7150 -75
--7074 76
--7074 -76
-7074 76
-7074 -76
--6997 77
--6997 -77
-6997 77
-6997 -77
--6919 78
--6919 -78
-6919 78
-6919 -78
--6840 79
--6840 -79
-6840 79
-6840 -79
--6760 80
--6760 -80
-6760 80
-6760 -80
--6679 81
--6679 -81
-6679 81
-6679 -81
--6597 82
--6597 -82
-6597 82
-6597 -82
--6514 83
--6514 -83
-6514 83
-6514 -83
--6430 84
--6430 -84
-6430 84
-6430 -84
--6345 85
--6345 -85
-6345 85
-6345 -85
--6259 86
--6259 -86
-6259 86
-6259 -86
--6172 87
--6172 -87
-6172 87
-6172 -87
--6084 88
--6084 -88
-6084 88
-6084 -88
--5995 89
--5995 -89
-5995 89
-5995 -89
--5905 90
--5905 -90
-5905 90
-5905 -90
--5814 91
--5814 -91
-5814 91
-5814 -91
--5722 92
--5722 -92
-5722 92
-5722 -92
--5629 93
--5629 -93
-5629 93
-5629 -93
--5535 94
--5535 -94
-5535 94
-5535 -94
--5440 95
--5440 -95
-5440 95
-5440 -95
--5344 96
--5344 -96
-5344 96
-5344 -96
--5247 97
--5247 -97
-5247 97
-5247 -97
--5149 98
--5149 -98
-5149 98
-5149 -98
--5050 99
--5050 -99
-5050 99
-5050 -99
--4950 100
--4950 -100
-4950 100
-4950 -100
--4849 101
--4849 -101
-4849 101
-4849 -101
--4747 102
--4747 -102
-4747 102
-4747 -102
--4644 103
--4644 -103
-4644 103
-4644 -103
--4540 104
--4540 -104
-4540 104
-4540 -104
--4435 105
--4435 -105
-4435 105
-4435 -105
--4329 106
--4329 -106
-4329 106
-4329 -106
--4222 107
--4222 -107
-4222 107
-4222 -107
--4114 108
--4114 -108
-4114 108
-4114 -108
--4005 109
--4005 -109
-4005 109
-4005 -109
--3895 110
--3895 -110
-3895 110
-3895 -110
--3784 111
--3784 -111
-3784 111
-3784 -111
--3672 112
--3672 -112
-3672 112
-3672 -112
--3559 113
--3559 -113
-3559 113
-3559 -113
--3445 114
--3445 -114
-3445 114
-3445 -114
--3330 115
--3330 -115
-3330 115
-3330 -115
--3214 116
--3214 -116
-3214 116
-3214 -116
--3097 117
--3097 -117
-3097 117
-3097 -117
--2979 118
--2979 -118
-2979 118
-2979 -118
--2860 119
--2860 -119
-2860 119
-2860 -119
--2740 120
--2740 -120
-2740 120
-2740 -120
--2619 121
--2619 -121
-2619 121
-2619 -121
--2497 122
--2497 -122
-2497 122
-2497 -122
--2374 123
--2374 -123
-2374 123
-2374 -123
--2250 124
--2250 -124
-2250 124
-2250 -124
--2125 125
--2125 -125
-2125 125
-2125 -125
--1999 126
--1999 -126
-1999 126
-1999 -126
--1872 127
--1872 -127
-1872 127
-1872 -127
--1744 128
--1744 -128
-1744 128
-1744 -128
--1615 129
--1615 -129
-1615 129
-1615 -129
--1485 130
--1485 -130
-1485 130
-1485 -130
--1354 131
--1354 -131
-1354 131
-1354 -131
--1222 132
--1222 -132
-1222 132
-1222 -132
--1089 133
--1089 -133
-1089 133
-1089 -133
--955 134
--955 -134
-955 134
-955 -134
--820 135
--820 -135
-820 135
-820 -135
--684 136
--684 -136
-684 136
-684 -136
--547 137
--547 -137
-547 137
-547 -137
--409 138
--409 -138
-409 138
-409 -138
--270 139
--270 -139
-270 139
-270 -139
--130 140
--130 -140
-130 140
-130 -140
--8555 4746
--5150 8178
-1000
-6749 3296
--8923 1329
--1040 3550
-1504 -6685
--6185 -984
--779 -513
--9158 -3891
-4716 -6171
-2417 2347
-5106 -5883
--4054 6288
--1511 2780
--704 -7578
--7602 4542
-3422 -7798
-7731 5063
--3607 991
--7769 -4707
--6836 5507
-1998 8603
--7017 -1932
--338 6113
--1569 -3495
--30 7911
-5207 -8074
--9503 -1254
--3222 -2691
-6406 2056
-3887 3184
--2894 5624
-3431 -6847
--1081 3844
-3059 3482
--8340 -5093
--5828 2379
-1063 -3725
--2128 8161
--2620 1706
--6387 7364
--4049 1220
--1599 -6517
-5422 -2661
--6141 1692
--1913 -3561
--1861 -7973
--7437 -5230
--2074 -782
--2366 -8549
-4241 -5559
-7073 861
--4693 -2419
-3200 592
--5185 192
--4518 -1178
-3812 -1192
-8358 4866
-6982 4010
--1596 861
--8540 2533
-2552 543
-3647 -8257
--6385 1713
-6747 -4181
--791 -3707
-8324 5472
-3213 8301
-8306 -3575
--1450 2668
-2192 8938
-4756 2309
--8013 -4819
-1502 2799
-1352 -4204
--1875 8485
-7348 3606
-2426 -2725
--2302 7885
-7740 -4176
-6746 748
-7529 212
-344 5521
--2909 -7365
--8816 3460
--8318 -2890
-6187 -3575
-1225 -2815
-2757 6856
-1084 9099
--1083 -6803
-2179 -3823
--4082 -6264
--4618 8460
-2018 5576
--7775 -3443
--8811 3709
--2545 524
-3341 7816
-4066 7406
-6438 -5064
--4710 -2485
--7580 4742
--7986 4547
-7654 4379
--5718 5536
-933 -8087
-162 -9946
--4225 4359
--2351 -3391
--7728 -5434
--7856 -4290
-1758 -7110
--1121 -1226
--4889 215
--7064 1506
--1672 -7237
--8852 -1878
-3544 -8077
--5535 -3027
-1416 -1490
-5113 -2506
-534 -4669
-4676 -124
-1674 -2484
-2276 -4212
--5337 -5796
--3624 1614
--1474 -2477
-7502 1478
--3822 2653
-6954 -1556
--2704 7679
-6257 -7335
--8909 1651
--4280 -4833
-612 1448
-2821 -5686
-4674 5535
-5446 -4283
-5104 -2798
-1865 -2243
--2929 1317
--2492 400
-801 -5782
--5461 3693
-3717 7523
-5524 -1355
-7152 5337
-3220 3428
-3986 1483
-2236 1008
-519 8998
-1875 -8451
-109 4077
--7395 5433
-419 5976
-7081 2615
-2872 7212
-4769 -3751
-4351 3968
-8543 -793
-1032 4967
--3846 -3257
-284 -9970
--7781 -222
-7293 5770
--4864 -4664
--873 -8443
--1615 -9653
--5169 2859
--6888 -83
--6195 -6517
--7876 1899
-5170 -3242
-4691 -6508
--2668 -9617
--7111 -4053
-6770 -7308
-3107 5626
-345 6245
--6300 7314
--4308 -8773
-3000 5099
-2912 -2196
--2472 959
--537 -7344
--371 6594
--1739 -6457
-1306 -38
-4830 -4083
-4194 -8444
--3772 1593
-3496 -9043
--6240 -2045
-5281 936
-7074 94
-949 3404
-2237 742
--4740 2703
-7527 -901
-2465 2397
--3386 -1058
--5831 5710
-814 -8380
-561 -554
--2496 -9421
--5275 5276
-2255 4955
-636 -4755
-4673 -558
-4215 4087
--8658 -3824
--2661 -6924
--1118 -879
-1974 -7544
--6702 561
-988 -3472
-7818 -816
--6591 -5245
--5775 1765
-2885 3431
--7289 -6636
--1287 -6684
--7201 -6467
--3814 -2828
--2815 -5058
-1972 7640
--3576 5488
--5131 4208
-7975 -39
--5518 4422
--5894 6785
--2180 6308
-8951 -1088
-3390 -9077
--8822 -752
--2584 9223
-3050 -7608
-2463 7117
--570 2068
-2401 -8893
-4783 2237
--5975 -4067
-1238 -6073
-6305 -6591
--6804 -6934
--2297 2287
-8351 2272
--4125 -2708
-6109 -6280
--4265 1855
--350 -7661
--3404 4812
-2507 2929
-1973 -4858
-6130 -7310
-2940 5134
--9331 130
--3608 3101
-1164 -8956
-3704 -4760
--5190 8070
--4569 -5714
-3524 4737
--1820 6416
-6790 4964
-3672 6724
--6414 -7670
-5724 -6433
--8474 3281
--7436 1632
-6455 -348
--5413 2017
--966 -7581
--2070 -4324
--487 7433
-7615 -4943
--7302 -3960
--7851 4281
-7394 4244
--1127 5927
--5577 -4245
-1922 635
-2425 -4153
--422 -5956
-8389 -3707
-1932 -9189
-7136 -686
-1748 3276
--3277 -4458
-7574 -3945
-282 4659
-3356 9202
-119 -158
-7345 -3333
--8015 82
--6109 2843
-4696 -5170
-9141 -2215
-3547 8216
-6061 -6721
--358 -2585
-5648 -3610
-3398 9071
--6679 6843
-2252 -4527
-5908 1631
--5230 -4429
-5067 -5057
--7795 -2651
--6558 -5160
-6560 6549
-6691 645
-5261 -1990
-7224 -4670
--2753 2568
-5770 3483
-6216 -7041
-2167 -3260
-3936 4134
--129 2976
-9258 875
-8512 4321
-7597 -6348
--6869 -2550
--843 -2636
-5470 -7046
-107 2813
--5186 -3636
-368 7400
-1161 -415
-3866 3956
--3809 -3997
--6097 -682
-2351 -7141
-6470 7596
--3597 8744
-5970 -6935
-5763 -6228
--7460 3726
--5211 -5517
-5253 3250
--2027 -278
--5968 -4701
-6933 -3685
-6325 -2374
--6599 4840
--1092 1093
-8819 3217
-9312 2307
--69 -4041
-808 8284
-1172 -6125
--6279 3113
-1502 -3685
-2643 8718
-3397 8708
--5646 -1726
-5851 -3949
--7418 -2665
--2035 -1387
-6741 -2238
-4751 -610
-327 4515
--5077 -4991
--2201 5531
--7419 5823
--8933 -4295
--4968 7285
--6806 3976
-1518 -3117
--1574 -146
-4403 -4446
--3764 -2477
--1765 -8813
-347 -9383
--3123 -3074
-89 -4419
--235 -8455
-1631 3458
-2704 -237
--5415 -1623
--8571 1827
-74 -7507
--5410 7266
--1702 6261
--4483 8561
--7626 -921
-3840 -4804
--3492 -7907
--5781 -5331
--5569 -4272
--6906 -2480
--4512 1740
-710 -3907
--4697 7308
-690 -1616
--3971 -4516
--3267 6863
-1913 6166
--461 3794
-3018 -4177
--1912 4227
--1657 9466
--2560 7224
-2770 2404
--5141 2307
-6241 5088
-7199 -4445
-1043 1290
--3390 7276
--9064 1665
--7778 3199
-6093 -7573
-2074 5255
--6478 4537
--5865 -2292
--593 3369
--342 -9326
-1490 3705
--1638 -667
--2619 -1616
--535 -4823
-3416 -5009
-5077 1239
-3562 -4965
-6821 -3554
--2405 919
-9241 -1073
-8499 5084
-4268 3500
-7540 -882
-3125 8440
-4629 3438
--465 8748
--4253 -7433
-1304 -1319
-4908 4190
--6379 -7599
-6432 -1887
-8637 -406
--4975 -7542
-6221 -5831
-319 -8220
--4934 -5893
-1837 7101
-2746 2988
--4316 1411
--2141 -4302
--5052 -5106
-7658 -2776
-2431 7232
--3945 4954
-9142 -2218
--7659 -5908
-311 -6697
-382 7856
--6502 7279
--4321 -6119
--5284 -6885
--7126 1619
--7790 6117
--4715 -6079
-4693 -6906
--1487 485
--2232 7899
-9577 -916
-1525 -8264
--1198 -5993
-1499 2069
--1455 -2057
-4435 6366
--5111 -2436
--549 2041
--5670 6491
--1040 2697
--6262 1396
--3045 -3079
--1178 -9695
--5784 6230
--3949 40
-4271 7741
--4737 1885
--9828 1450
-4165 -7723
-8417 -878
--5955 -6334
--2231 6182
-735 2776
--608 -1942
--1996 5421
--6673 12
--7777 3898
--4423 -8276
-3701 5993
--6324 661
-7219 640
--7019 1426
--1528 -1320
-7787 5175
--3209 -8411
--756 2799
-4103 -3031
--3079 -5843
--4598 -8448
--5744 324
-3477 6182
--3201 4072
--7830 -3608
--593 -3260
-3477 -1338
-334 7709
--3874 4076
--7621 6167
-6908 2022
--3892 -2509
--7230 5615
-4477 -1027
--2516 -4459
-4584 -6586
-6127 -3079
--1721 1765
--1239 2477
--1978 -1324
--4721 6371
-6559 4950
--465 -1506
-2171 -400
-9848 944
-5671 -929
-3818 -3972
-8411 -4308
-5727 -7813
--994 -7545
-9079 -967
--9208 -1470
--3355 -3909
-7147 2548
-7442 1942
--7159 -1287
--6785 3623
--997 377
--2687 9002
-8100 3504
-5629 6147
-1197 1429
--3220 -5642
-3308 8949
-3707 2217
-387 2625
-5652 6449
-2376 -1773
-2067 -1416
--3949 -7766
--485 9419
-5872 -1212
-7509 1940
--1664 -7745
--8047 4486
-3506 8275
--7900 -1070
--3539 2138
--3349 7671
-1590 -6072
-1651 7994
--8914 -4473
-3843 6817
--7021 1111
-785 -969
-9514 1607
-1343 8255
-4540 -4178
--916 -5635
--5783 -2277
--5850 1243
-368 245
-1339 6567
-1998 -8271
-4549 -4640
--731 398
--6604 3749
-1984 -3194
--3678 2945
-1249 3228
-5099 6880
--1728 -8461
-8649 -3249
--5770 7547
--590 2959
--8179 4694
-1409 -3485
--2251 6108
--2561 -6817
--6625 5174
--1238 1953
-4385 -2752
--9915 1139
--2373 -6082
-4371 8895
--9790 -123
-6930 -1751
--3582 -1406
-3271 6709
--2083 7724
-8421 -273
-5724 7487
-3895 6593
--9032 -1729
-2001 8181
-7656 1240
-398 -4976
--35 -9261
--5820 7799
-5802 -1067
-1784 -1435
--5172 -3486
-7634 -2002
--1396 -6980
--1270 9783
-3313 1019
--3275 7921
-7295 -6305
--8809 1191
--3661 1954
-3242 -4255
--1971 -8622
--2391 -6650
-9172 -3068
--4946 -7316
-6526 6890
--1718 -7326
--5634 5325
--5824 -1032
--2172 -7659
--4728 -8584
-267 1412
--3359 8870
-3225 -1223
--8224 51
-2485 15
-6486 3630
-2893 -5975
--3467 -8293
-8690 3359
-6901 -361
-1865 4450
--5687 2807
--7136 -3693
-5112 -27
--5482 7706
-5482 -4885
--8220 -3244
--2610 -1258
--4030 -5360
--87 9493
-8930 2345
-6350 -5664
-2049 -9448
--1439 7225
-7458 5996
--1378 -5549
--5011 3070
-2820 9101
--4135 3790
-7131 -4969
-6026 4531
--5086 2743
--1576 -1308
-1714 2417
--648 6341
--4313 5791
--3164 -5548
--3910 -8846
--821 -1898
-5263 6957
-2223 8340
-3991 6330
--1998 -1821
--259 3759
-500 -502
--2840 6246
--6383 -7491
--5593 286
--35 -8421
--5996 -3992
-3352 8000
-3882 -1171
-6326 -5370
-3280 -7039
-8089 620
-3742 1295
--7738 -93
--2107 -6953
--4064 -4411
-7264 -6786
--3305 -163
--7018 1367
--77 -5577
-8868 -230
--2378 -4271
-1241 667
--5053 -8495
-462 4779
--4350 -3139
--5674 2460
--5844 -519
--4396 179
--6793 1592
-8237 1079
--8377 510
-7498 -3820
--5921 -7853
--9194 -86
-3024 5871
--8655 -1306
-661 -8662
-681 5317
--2708 -5789
-8422 5349
--3720 8797
--3242 -5958
-5119 -146
-9864 -3
-691 6349
-6806 -4862
-3646 -7131
--5488 835
-6539 -454
-4490 -173
--1999 -2330
-4848 -6360
--429 2440
-6694 3423
--6987 -3332
-8030 2304
-7353 6503
-5514 6682
--1033 8330
--4937 -2818
-5696 2608
--540 -3977
--4708 -692
--7106 -4154
-678 609
-6908 2655
-964 -5456
--6768 7058
-615 -8194
-3056 -2958
-6067 -6214
-4702 5118
-1770 2203
--4944 6788
-4935 5019
-2272 9033
--5599 1942
--6413 -2905
-1903 -8165
--6995 -2202
--8355 -4439
--5905 3595
--2696 -4693
-5397 4943
--2589 -5693
-3341 3824
-1436 -8113
-2984 -5959
--574 828
-172 6362
--186 3387
-5363 -2787
--1855 8895
--4742 -1177
-2339 1935
-3639 -9101
--1022 2712
-6035 7324
--2240 -4378
--4843 5893
--6557 582
--7169 4018
--3924 3226
--2897 73
--6371 2963
-534 6598
-683 6436
--9316 3371
--5087 -6938
-1286 -3735
--3420 -2150
--1506 3608
-3503 -4071
-2807 -4711
--8384 321
--428 4676
-2870 -6847
-5044 7543
--1705 -6428
--7944 2447
--2177 7515
-4376 -6380
--4504 -2262
--8075 5393
--8402 -4249
--898 -314
-2366 5143
--1269 -9387
--928 -8731
-973 -5936
--6466 4628
-3361 -6705
-1210 -8330
--6111 -1510
-3511 -7460
-3348 3387
-4634 -8257
-3452 7193
--8431 -2081
--5390 -312
--8034 1866
--7360 -1317
-6758 6691
--6145 -2334
-5371 5962
--2785 -8719
-1644 -278
-1740 4043
--6403 6113
-7994 1324
-636 6323
-7318 -5738
-5621 -1690
--624 7927
-2780 2738
--3393 -6325
--654 9630
--9715 1528
--3763 -3971
--6500 -5061
-9636 701
-8714 2578
--8511 3623
--1173 -3566
--239 7123
--4014 -4269
--901 6292
-3563 -5318
-1947 -134
--6080 -5345
--5806 -2655
-2146 -2529
--8661 2239
--3612 -5553
-4218 -6445
-3614 -1360
-3624 791
--8209 2598
--3204 1115
--6475 -5119
--7516 -3923
--5106 1307
--7614 3111
--1407 -1948
--1533 -2111
-5753 -5074
--3513 -8300
-1405 -8066
-8526 3145
-1248 -4470
--8400 4138
-6739 1397
--3053 2161
-3492 5967
-4262 8483
-3099 3084
--4962 -2510
-1884 6772
--2928 -1065
--3099 -8463
-5715 -206
--3022 -6351
--1586 1446
-6202 6225
--5183 7021
-4657 -448
-1792 1754
-9535 140
-7960 1563
-4297 6998
-5944 -4496
--3142 8780
--5992 6196
--1865 -1841
--5700 -4268
--3758 -2249
--3621 2632
-3197 -9194
-9474 -1558
-3352 -945
-1701 -6969
--1356 6847
-2179 -6563
-6684 6254
--6817 5151
--3350 -9010
-6044 -889
-313 9877
--8407 3972
--4949 -2044
-1809 -9442
--9265 1478
--3900 8215
--5331 4620
--9280 -1776
-6276 3502
-2451 903
--5400 677
--4111 -6048
-3870 -2314
-4078 8225
--2663 -8986
-1704 9802
-3334 -6906
--4046 -7372
--3645 -500
--2796 2393
-3358 -5046
--7305 -158
-1152 7132
--6184 -6755
--5808 7200
-3153 4388
--187 -2554
-564 -1832
--2074 3772
-1197 -9002
--2520 -6983
--1143 3604
-3224 -4495
--1759 -5991
-5215 6628
-6261 -6938
--3350 8743
-9552 1324
--7859 319
--3868 7422
-3625 -6587
--8809 4274
-1000 2930
-4742 5138
-5301 3506
-8923 1174
-5894 -1136
--1610 -9641
--2059 -147
--3416 1769
-753 5066
--985 8884
--3943 -8032
--3969 2736
--5855 -3188
--4547 4652
--3442 4375
--3757 -6791
-6647 -268
--1349 -5871
--2465 9351
-768 -1499
--4316 -3109
--6965 4288
-5936 -680
--1465 2604
--6944 2958
--3617 -7841
--395 -9507
-5795 2449
-6388 -6182
-6461 -3911
--473 -9295
-1944 -8449
--8423 882
--3363 -3193
--7641 5945
--2627 -7547
-6682 7198
-323 -1971
-7547 -4206
-1570 -2309
--7546 4944
-542 -8161
--6949 5153
-6712 6457
--6072 2873
--437 -9468
-5134 -3060
-4360 -6791
-25 -5937
--655 7831
--558 -9798
--5061 5177
-4790 -3228
--9557 -2280
--9561 -2280
-1000
-5800 2491
-3144 -7639
-2397 9180
--1510 -8506
--3264 -9295
--4569 2675
-2918 4021
-6269 4687
-7057 469
-7955 -3496
--1172 8207
--2175 2862
--1439 8860
-2093 -4791
--622 -5144
-1409 9453
--600 5554
-2047 -1374
-1159 -8125
--7715 4821
--4815 2778
-495 4603
-39 -2287
-3702 -3981
--6743 4201
-2694 -5775
-2491 6891
--5250 3854
--5085 7415
-4955 1870
--2255 -6591
--7148 4918
--1290 -2625
-4186 2420
--6486 2964
--7813 2772
--7727 3614
-4352 2564
-5813 342
-3636 7842
-2680 858
-9825 693
-4953 -3201
-4807 6185
-2349 -9657
--812 9176
--154 2243
-1427 -3843
--8786 -710
-7832 -279
-4182 2805
--147 -6559
-1595 -2402
--1424 -6519
-4251 444
--4954 -5516
-604 -5445
--5090 7443
--601 2675
--7908 1142
--2649 -7554
--194 -1803
-4626 5671
--4775 5303
-511 942
-1216 4414
--5078 -7767
-1523 8094
--3027 1369
-4201 2923
-6370 -698
-6061 -7038
--2869 1726
-3617 -328
-1906 -5355
--8159 -1475
--4983 5033
-9552 2355
-2094 -4491
--468 5298
-4661 -7176
-6007 4807
--749 -1372
--7398 2173
--5007 -81
-8996 -2141
--4403 1255
--5247 3070
-3859 -1297
-4147 -3666
--7190 -4633
--6389 412
--4508 641
--1044 8199
--8268 -719
--7949 -1207
-8412 -1228
--4534 6565
-84 -3472
--1634 -83
--1248 -506
--1149 -1165
--6315 869
--4771 -7500
-7223 -4994
--108 6089
-7537 2865
--1169 -1686
-2489 -9646
--759 -5729
-5307 -3008
-7345 -2487
--2095 -2640
--6290 2852
--7378 -6064
--8508 -4378
-5292 -7803
-2987 -2251
-3165 -2792
--3649 7324
-3399 5294
--2141 6962
--7058 -1206
--8511 4073
--2438 3005
-4154 5831
-2952 -1084
-5756 7361
--630 4000
-4095 5644
--2967 -3639
--7646 -3899
--5215 4936
-4211 5173
--2431 7698
--6722 2564
--7077 -3114
-5040 4870
--5002 -1151
-6283 -3462
-7850 2039
--328 5448
--3916 2364
-5596 -3834
-9533 1527
-739 -3843
--933 5954
-6257 -7309
--5864 4409
-1560 -7215
-171 6540
--998 -7932
--4379 -7513
--9150 3775
-6882 -95
--6717 -7190
-4251 3069
--7051 -5470
--3219 -5064
-8037 -2324
-8774 -4637
--1823 -411
--300 -5181
--8530 5219
-1971 -7017
-2436 -1543
--7687 -5978
-1084 -7357
--6738 871
--4818 -115
-3700 200
-716 1443
--5983 -273
-1663 -5296
-1113 6597
--2739 7462
--5948 -935
-4424 7543
--3726 -7947
--1792 -3956
--8628 -3654
--613 6840
-5337 4846
-3000 -607
--4945 -6676
--3314 -4836
-5907 7144
--6203 -4328
-2474 -6748
--564 -5041
--6659 3093
--2881 -8914
-3506 -2022
--5689 -7540
-7611 4425
-1964 -7623
--1385 92
--3641 -8233
--4363 -3815
-468 760
--2370 -3610
-1915 1973
-5112 -6782
--6294 -363
--8050 -3657
--5842 658
--6097 -1672
--4031 572
--5544 3089
-8068 -3811
-9348 3238
-9308 1370
-2078 3040
-9519 -272
-5599 -2519
--4639 -7781
-7736 -3129
-6379 -3765
--3812 9051
-4026 -6236
--3527 3483
--6502 -149
--8164 865
-545 -1202
--64 -1628
--7996 -5324
--7554 -1653
-2686 9134
-6109 2135
-4792 -5800
--903 -5197
--3222 7341
--1547 -6734
--5715 6310
-1531 5417
-7619 -3004
-3625 5629
-2378 -1595
-2012 1262
-5594 3968
-7307 -5528
-8207 1323
--8266 -278
-6734 1372
--1836 45
--6360 -5731
--4724 4675
--3088 6201
-1120 -8283
-5661 7454
-4678 4730
-2429 6849
--290 4892
-3262 5646
--46 6171
--1815 2794
--9443 -2958
-8557 1414
-3455 4298
-8471 3739
-5469 7684
--6852 -6496
-7544 5480
-6627 3637
-4504 3142
--187 -7098
--9251 -2503
-1938 -2263
-4404 1730
--3886 8996
-1622 5506
-6051 3267
-3457 3811
--1520 603
--5736 5147
-511 -7510
--2475 -4490
--3132 -6279
-6752 -107
-6534 -1579
--8047 1078
-1985 -8590
-218 3917
-2018 3201
-5880 1072
-258 -2126
-3603 -18
--3109 4871
-1759 -4
-7057 2036
--327 4939
-4282 -7106
--5318 -600
-2716 -7832
--392 -6001
--7320 -4247
--812 -4744
-1373 2995
--1311 9730
--3294 -780
-7479 -3912
-7316 2868
-2217 2535
-3822 6759
--1340 -6175
--4707 1241
-3095 -5582
--3002 -7481
-4012 -3162
--5012 -6382
--6316 -7007
--901 7009
-439 9857
--6850 -4732
--171 -271
-6858 -4428
--3277 -5330
-6087 5697
-6742 6575
--5722 6985
--9267 -845
-3342 -6993
--8915 -4304
--6419 7051
--5643 5269
-5596 1874
--6561 6682
--7720 2398
-2697 -3393
--814 -976
-348 -3302
-2380 3630
--2154 2442
-2813 6422
--2887 9263
--3167 -8852
-805 9400
--1738 3391
--5708 848
-298 6301
--6183 -5836
--2758 8709
--7088 1611
-1305 2234
--288 7878
-5275 7627
--8625 -4074
-8648 2529
--5096 -3988
--5476 -7778
-1368 -1016
-7243 3183
--1598 -5575
-5890 -6772
-2423 -7239
-7250 1004
-3179 -384
-5535 -1094
-2903 9004
-1582 9374
-5070 1072
--9360 2738
--3159 -9047
-1784 7555
--2274 1687
-1635 8629
--1365 8931
--1785 1652
--3804 9222
--9003 1705
-3763 2973
-2269 4767
-3584 1309
--5696 7294
-3191 -2526
-1330 -3550
--1814 3878
--1838 3083
--216 -3543
--5043 -3923
--7809 -2870
-2837 -2155
-4533 -7782
-3709 3613
--5402 191
-2363 871
--6702 -7050
--4664 4975
-3099 5155
-2809 6601
--2291 7729
-4481 863
--1867 -2303
-6632 -5310
--9530 -994
--3842 -713
-1527 1468
-725 -6255
-2320 -2801
-6021 -590
--1829 -4801
-5786 -2796
--5970 105
--1570 3167
--3664 -1386
-1181 -1467
-6978 -1031
-1919 8165
--6824 2328
-2800 -7275
--5245 -3519
-6664 2664
-4957 -6217
--6564 -1588
-5415 -7032
-4324 -2827
--6380 1309
--9828 450
-4535 -5926
--5037 2377
-175 -1060
-177 -6263
--411 -5392
--2202 1665
--5175 -5627
--3622 724
--1829 2719
-5539 -4471
-550 -2609
--4032 206
--6338 -6494
--9277 3662
--3545 5157
-5177 1116
--5885 -520
--9676 -1605
-4447 -6132
--5316 -2019
-140 -5002
-3369 -2992
--1130 -4188
--5917 6656
--5684 195
--7828 5064
--4020 -6400
--1252 -7817
--6552 688
--5929 5705
-184 -3561
--3269 5204
-4189 8291
-2974 -3328
--4434 -610
--2308 -7266
--7305 -6561
--2720 -7795
-2820 2460
--3477 6626
--4751 -2011
--816 118
--10 1429
-4711 6027
-7097 4071
-8778 1922
--6072 4290
--5382 1007
-8179 98
-1426 2747
--467 -5640
-4437 -6736
--8270 -1473
--4030 -8264
--2293 8010
--3315 -8261
-173 -4777
-5957 1954
--839 1587
-9275 3106
-3742 -7495
--4623 -8742
-3321 -5346
--5709 7673
-924 5442
-4894 -7023
--4067 3364
-758 6312
-3866 8683
-4091 5662
--6585 1953
--5661 -958
-2785 -7493
--1754 -3820
-799 3582
--6043 5743
--285 -4088
-34 -9669
-840 -5118
--6646 1700
--7452 -2911
-666 -6400
-8393 -697
--718 2669
-1189 -1986
-1080 7807
-1755 -2712
--1445 -783
--7208 2317
--6376 -2283
-6569 2660
-8291 -2856
--427 -4557
-8896 2674
--7327 -375
-600 6798
--1887 3880
-3006 3607
--1558 -7596
-6347 -6557
--254 7739
--621 -2018
-91 5273
--7373 6107
--9541 2702
--3600 3001
-5876 5122
--8427 4499
--2101 5539
--6425 -5602
--1430 -3580
-6237 4659
-3156 -1726
-3339 -2348
-5998 1507
-5683 337
--8072 -3022
-524 3422
--1116 -7960
-8871 2500
-8898 1142
--2607 4489
-3137 -6482
-5181 -5008
-8282 2463
-1299 -6954
-1879 181
--5666 7275
-6912 -5952
--6736 -148
--4309 2000
--1577 -9656
--824 -999
-3399 -806
-3643 -6296
-3055 -3280
-529 -9910
-5824 -6183
-5261 -7708
-2047 1225
-4379 7349
--7505 -5668
--4384 -3107
--3860 4172
--6627 2742
--2471 -8428
--8488 -1075
--271 5999
--2076 6769
-2045 2722
--2257 2572
-7819 2892
-7667 -4265
--2949 -4440
--1736 -3423
--2916 -3272
--6120 -6948
-2878 1355
-6608 6890
--5395 -7774
-2513 845
-4490 4418
-2285 8033
-3765 -7880
--1114 -494
-4029 6260
--2308 -9064
--4724 1301
--7820 -2412
--5791 -5432
--4056 7611
-8603 -540
--1334 4002
--8854 4644
--1703 -619
--9024 -2812
--6970 -301
--1169 1650
-2150 201
-4527 1549
--3627 6155
-3620 -2065
--5309 -1542
-5672 994
--2568 3597
-2163 8031
-6342 -7377
--9480 1225
-7330 -2729
--7448 -3742
--4805 3859
-7441 1384
--3432 -8289
--5294 -1415
--6885 -1537
--1354 -3580
--2904 -3185
--4025 -3519
--49 -5022
--2593 -8406
-6512 -562
-1056 154
--5876 -2908
-7693 -5098
-5843 -2688
--4772 -7283
--7225 -5302
--2055 6296
--2225 -4257
-1362 7870
--6734 3142
-4173 -1429
--2456 -175
-7959 3595
--1868 -547
--4353 6638
-4829 -6673
-802 1986
-2654 -966
-2908 -1736
--7058 2732
--961 -5016
--5150 -3088
--8697 1843
-7815 984
--1384 -6998
--2830 5981
-9645 798
-9398 -664
-6429 -6845
--4065 6133
-8286 -2030
--8583 1398
-1767 5617
-3635 380
-318 -1868
-4847 -6274
-8996 -2561
--7993 5799
--5687 6008
-7448 5936
-5560 -513
--971 -4003
-3514 6284
--7310 -118
-2280 748
-7229 621
-6771 -5920
-4033 6921
-823 -5469
-4350 -761
--4656 -2009
-8361 5067
-1428 6305
-373 -5696
-5331 -5055
--4322 7377
-4252 -2059
-130 5540
-4651 -3312
--724 8715
--1620 1929
-6570 -4870
--7771 3790
-6209 -3885
-5750 790
--1164 2059
--7957 -346
-8687 -3415
--3200 -7248
--7366 -6462
-2959 8455
--2032 1970
-128 40
-5138 -3859
--6616 -2909
-2914 -3675
--4290 -3046
-1404 5801
-4546 -2760
-7038 3658
-2322 8716
--7958 -1073
-6231 4124
-6377 -6415
--6207 -7277
--4478 4240
-6767 -4516
--8140 5005
-8107 1855
-6394 5255
-6731 -3889
-7456 -1007
--4683 -4786
--4794 1711
--5079 -7350
--458 -4608
-1844 6278
--7596 -1710
-2659 -4811
-92 4328
--7343 -3359
--3669 -3876
--9028 1224
-5853 -2122
-8651 1217
-6433 -2869
-1398 -404
-7242 -4336
-2062 5307
-7534 6304
--3790 5186
--1637 -4282
--7227 -5728
-4634 1142
-4601 8284
--724 -9085
--2142 -6055
-3690 5879
-4569 1299
--432 -2114
-1272 7612
--4696 -1321
--4022 2481
-3972 -1103
--2986 5007
-8764 4409
-4505 -2343
-269 787
-4087 8149
-605 2269
--163 -5945
-5933 -4365
-5569 -4672
-4630 -871
--7455 1968
--2070 -7974
-4657 -7517
-5442 -1722
-3061 -613
-6748 122
--7238 475
--9338 -1501
-5369 -4973
-4764 -7612
--2219 -5297
-4244 -8812
-5956 -381
-8337 -2080
--6331 -2344
-3280 6934
--3451 4771
--3680 -858
-4317 2776
-3333 -3157
--5228 -4491
-3373 -7569
--9056 1267
--5722 -1061
-3331 -2039
--7633 3864
-8986 3778
--4362 1348
-4180 -4902
--4658 -2318
--1885 -9503
-8864 -2652
-2854 4890
-7906 -5425
-3053 -6178
--3069 -7459
-2768 4776
--6551 -5726
-4628 -6625
--5995 7062
--1183 -2564
--5879 -6159
-1175 4705
-7115 -5834
-3869 -5161
-7521 -6531
--7442 5928
-5269 -1432
-815 -5187
--3764 -7209
--5328 5759
-9202 -2148
--7007 3121
-8505 1245
--4644 750
-3294 -6966
-4564 -2520
-941 -67
--3759 1499
-2417 -9013
--3161 7766
-3726 -1698
-4665 -8201
--852 3172
-3383 7318
--2050 168
--4309 4142
-664 2404
-4227 -6148
--3205 4340
--7515 1727
--6913 -231
-1442 -430
--4042 -6458
--5145 -3798
--3224 5132
-89 7021
-1626 -4925
--4635 -7501
-20 -3043
-6293 2456
-3937 7881
-2218 -7896
-1771 -9339
--7893 5357
-6577 -191
-5680 -7914
--3606 6645
-2132 -5018
-5212 3098
--2441 -98
--3024 6235
-2874 -8753
-6451 1482
--7023 -4158
-2166 -3179
--5975 -4628
--9304 -2855
-4816 -2813
--5827 5364
--6866 6825
-2075 -2967
-8712 -1506
--5109 427
-3223 -7276
-1348 -3447
-2133 -3993
-2333 -6009
--2984 3889
-0 1440
-4496 -8448
-8750 662
--3641 3295
-758 8884
--9298 377
--8331 5280
--500 -942
--5946 2812
--7618 6431
--750 412
-5162 447
-1053 -1231
--14 6665
-7203 247
-5502 2891
-970 1246
-9183 -3780
-2820 -301
-1936 -616
-4015 -5579
-2925 8397
--5966 6053
--2688 -9094
-6403 -4829
--1823 9242
-9758 1028
--760 6397
-416 3834
--1043 4650
-995 -9289
--3040 -2621
-2568 -6459
-8699 -4076
-371 -9523
--3366 7711
-5974 1579
--7943 -645
-3488 8717
--959 6264
--4932 1724
--2649 -7709
--7178 -6386
-7022 -1022
-735 -4063
--7418 -2081
-3486 5142
-7649 4106
--2885 -2555
-5141 2544
-6724 7099
-5933 867
-575 -3620
-5884 829
--1762 -2633
-920 -8296
-6245 -2692
--5115 -3752
-3726 7893
-1430 5144
--4027 5417
-647 -4901
-1978 4812
--6044 1346
-6852 4734
--7765 1597
--4029 -2266
-2411 2877
-982 9242
-7697 2364
--871 -2175
-1513 2687
-2863 923
--3656 -4826
--4842 -6918
--4847 7554
--1117 9031
-7603 -6227
--6060 -5697
-643 9962
--5837 951
-4295 6078
-2914 6220
-1133 -6996
--2843 -3171
--4984 6571
-1605 -6041
--9201 -3314
--550 -8061
--8300 2484
--7190 2107
-6635 -5528
--4222 7404
-7116 -4900
-4607 968
--446 -5040
--2629 2480
-2621 -6599
-1035 2444
--232 2519
--2630 2529
-6594 7051
--3934 -4333
--4216 -3936
-2876 -2754
--2599 9259
-4224 -3908
-7466 -5872
-959 9116
--3268 -4056
-1216 -2973
-6641 3681
--6535 -1901
-4852 6979
--2033 7807
-644 -9098
--1488 2467
-4574 5850
--7662 5967
--3277 -5356
-2493 6273
--2141 6241
-3233 -1935
-2150 -1074
-9508 1156
-5547 7620
-6077 6584
--3127 600
-6023 -7576
-4679 572
-4568 7593
-480 3582
-5602 -4682
-3930 91
-2173 -6761
--1363 8329
--78 9946
-4524 -8485
--9813 1516
--9614 -1838
-1000
--1484 2744
--2997 -4310
--4982 -898
--5993 -1679
-6133 -364
-8361 -4692
-1934 -4141
-2510 4707
-5083 -5223
--2031 8814
--2072 2445
--6898 -395
--1658 5626
--2888 7418
--2487 -7913
-553 3885
-778 1458
--2740 7000
--4945 -6982
--5841 1888
-4258 8351
--2070 -206
-467 1133
-6446 -6418
-618 -3662
--5149 -2908
-5964 -7849
--5395 -3229
--8849 3336
-4921 7472
--3574 -3338
--8365 744
--2947 4150
-3924 -5155
-4735 2823
--3789 -7422
--1761 -8931
-1074 388
--641 3812
-4389 -1336
-2032 9628
-2851 -4804
-4705 3833
-5220 -2615
-8894 2085
--2678 1014
--765 6781
--2725 -6578
--1226 5289
-5027 1444
-3590 8131
-2944 -2481
--422 5710
--7252 3234
--663 8963
--9096 3214
-3342 -3065
--238 -5418
--3914 -1022
-164 -4844
--7555 2172
--5096 3351
--7596 4698
-1012 -9423
-7599 4753
-5409 -6683
-441 -2830
--521 4788
--1202 -4582
-3429 -6687
--1585 9597
--6025 479
-1120 7315
-1694 -6497
-7427 -4754
-9760 -959
--4638 -167
-4641 1806
-4673 -8583
-2408 -3035
--5054 5514
--3593 -226
--7683 5369
-5884 92
-3293 -2747
--8302 1159
-5708 5949
--2757 134
--3380 -3069
-2002 -1850
--3187 859
--285 2015
--8517 3170
--506 8538
--5529 -1221
--5679 -903
-1866 -4973
--2361 8938
--8492 4927
--3387 8086
-1151 2070
--6677 -6702
--6313 5043
-8245 5250
-4336 3879
--3867 636
--805 -6743
--1386 -6214
--294 6707
-4501 -3812
--7928 2739
-6823 -6850
-684 7898
--6703 -4941
-3339 -9147
--2417 -1319
--7184 2858
-2686 -7929
--4695 7444
--8451 -3525
--1136 -5725
--6664 -3315
--5418 400
--716 9628
-6084 7676
--8695 591
--4742 -5174
--5891 -2477
-4532 -6634
--8254 4960
-9039 3920
-501 -6199
-2467 443
--2367 -1436
-2085 3241
--3025 9016
-88 -3810
-4641 -8543
--7203 1608
--7192 4343
--1244 9333
--2762 8489
-1204 -3126
--1116 6846
-8050 4881
--5005 6216
--8038 2867
--7315 2045
-5108 -2155
-5514 147
-7542 6370
-7278 3812
-1252 -2880
--6451 -1430
-7846 -3783
-241 16
-2756 -2915
--6685 1876
--1605 -1678
-8437 -1116
-4195 -7278
--2672 8442
-173 -9283
-4294 178
--3649 6526
--1440 -4311
--7286 -3980
-4249 3284
--44 -8362
--6487 -2531
--2342 2246
--6806 -1769
-6964 -2134
-2821 -4753
-2258 -426
-386 -29
-8663 2609
--7163 -6823
-9345 -997
-4354 2642
--5061 691
--2216 6066
-7825 -2607
-8978 1898
--6678 632
-2014 -869
-7237 6508
--2012 4341
--9348 -3061
-4504 -3258
--6709 -2437
--9124 3768
-1538 3426
--4618 4726
--334 124
-897 -4650
-3471 -3157
--1681 5977
-2896 -4940
-3193 -1612
-5244 4301
-2951 -3153
-1870 -9560
-9540 -2924
--5459 -8349
--3009 607
--1213 5051
-260 1646
--9624 520
--2153 5802
-4905 -6488
-4143 -7308
-5282 -2334
--2974 9128
-7008 885
--2185 8418
-241 2102
-7542 29
-2582 -4431
--5868 -7856
--2652 -3111
--527 -2735
--6008 2847
--9171 1175
-4458 5226
--8006 -3944
--4248 5016
--7153 5216
--6295 -2485
-5369 -161
--2628 -3080
-8617 -2309
-154 7429
-2749 -4150
-852 7826
--1856 3798
-1887 -6240
--7901 5083
-6341 -6990
--1398 4941
--4287 -811
-6578 -6616
-7262 -1278
--5291 1087
-7685 3685
-5249 -3301
--3712 7782
--9678 2355
-9837 121
--6017 -4530
-5808 5829
-5174 -3077
-4473 7006
-6120 1703
--5538 -7793
-422 8222
-7896 2760
--8238 2628
--2978 -1778
--6341 -5562
--5461 321
-7546 -6102
-824 -4011
-6967 2342
-1761 -9251
--2504 8051
--4551 -8175
-4639 1646
-7854 4203
-301 729
--8469 -2196
--172 -7832
--6972 -3647
--1128 511
-7721 1593
--6377 -3329
--5583 -719
--9885 -619
--5708 -2514
-3668 -2280
--5504 3762
-1301 5831
-7836 -2947
--8461 403
--6271 3640
-2702 6167
--8859 -2264
-8917 -3948
-2576 3708
--1697 573
--1287 752
--5973 -2696
-198 4543
-1159 9088
--9598 2760
-4046 -4605
-7985 3096
-204 406
--8289 -4669
--6877 5666
--3520 5197
-8076 -1561
-3953 6121
-3514 -3132
-6604 7308
--7136 -202
-7663 -1362
--8614 -956
--4366 2151
-4619 1284
-4742 -4065
--5955 -3136
-2552 -5454
--956 -4867
--3759 -7429
--4838 2746
--4146 -4796
--8935 -3054
-2920 3168
-2366 1353
--4880 4845
-4215 8307
-6750 -5862
--466 6472
-6956 -1995
-4629 -5305
--1348 -4108
-9307 -1506
--5348 -6079
-4353 6215
-1725 3894
--7953 2954
-8535 1082
--5558 -291
--2269 -5084
-4986 3882
-521 8871
--7662 4779
-5767 -4278
-2673 2468
-440 -7900
-3709 -8500
-4013 8234
--2022 -2744
-2798 -8352
--4627 1804
-8455 -4858
-1047 -8208
-3902 -4817
--2254 6721
-2264 4168
-5206 7522
-3108 5003
-5239 1620
-1125 -7731
--2390 -5353
-560 7335
--4208 4308
-5012 -6498
-3399 -3702
--5391 5514
-7832 2856
--2634 -216
--581 -5101
--6346 6446
-3682 -143
--2112 2652
--7960 -1182
-4122 5502
-9211 3600
--4901 -1657
--8842 2417
-4443 7022
--5877 5313
-2414 5148
-4892 -2875
--7734 -3852
-4348 6307
-7785 -4455
--515 -9847
--309 6070
-5250 595
-2549 -4079
--9518 1088
--2492 8076
-2788 5700
-6821 5236
--112 4200
-5743 3468
-605 1130
--1981 809
-1012 918
-9897 -70
-1543 7294
--3104 -6694
-2449 2590
--4739 -1661
--3513 200
-7433 2696
--8551 -505
-2856 -3819
-7795 964
-2620 -2772
--2101 3145
--1713 5862
-8089 525
--7376 -125
-3336 5597
-7765 -2222
-3372 9125
-2686 -3100
--6342 -90
-7615 -3525
-5924 -416
--8199 -1905
-7699 -2203
-3644 7508
--2046 -3518
-1642 -8968
-1479 -808
-4803 -3611
-5183 1812
--2718 3397
-8712 799
--1213 -108
-6711 -6934
--5529 -5283
-6836 -4810
-2641 8141
-3924 -4083
--6340 5519
-2863 5741
-425 -7234
-5433 1514
--257 -9090
--5558 4655
-6183 1369
-9123 1922
--7455 -4658
--1189 -4929
--8011 -1728
-4042 -4783
--2594 4548
-2121 4057
--9944 673
--4740 8461
--5914 -6745
-3207 -3252
-235 6893
--4771 5521
-9633 1557
--7513 -4653
-8736 3504
-5662 -3833
-6412 -4205
--899 -8056
-51 374
-5698 5574
-4684 -5588
--1457 -9440
-6247 4537
-6948 6624
--2728 -8956
-7575 -4920
--2691 -3161
-4511 840
-6459 -6039
-1627 2624
--787 -3248
--1643 267
--1923 -6093
-3919 8252
--1193 3312
-6457 -108
--3457 4997
--4722 -620
--4326 4207
-8707 1338
--4215 7254
-7689 -1039
-6654 4331
-2823 -2084
--7616 6100
-7111 5941
--787 -9016
-1176 6075
-8500 79
--8865 -3613
-5266 3138
--5843 -707
--3970 2681
--5485 -2757
-1618 -8842
-4471 8830
--6491 3541
--4982 -5486
-3326 -3130
-4050 3496
--7266 -5814
--1634 -2454
-2690 -915
-8186 -356
-5200 -1545
-1864 -7929
-8166 -2969
-3243 -1813
-4029 -8865
-6752 -6840
-3043 1783
-7301 4158
--1341 -346
-5112 7433
--4112 -8205
-498 9855
--657 -2893
--5753 -1076
--3030 -7696
--3502 -1585
--4084 7107
--635 210
-4213 -9055
--6560 3071
--3719 -7498
--6715 -6843
-5848 928
-3126 3631
-5730 -4440
-6415 5174
--1024 -2424
-3765 6911
-1542 -9392
-9724 -1722
-3508 6275
-2335 4634
-3644 8530
--6821 -1786
-8305 -1100
-5164 -4058
--2733 7803
-9333 2604
-2435 -5464
-3284 7775
-6992 6647
-4497 -6794
-3503 -3622
-1872 5139
-4066 -2386
--3161 -432
-6204 -7704
--7232 -4988
--7879 -5686
-1501 -3615
--7027 2327
--7144 -2189
--7384 2403
-153 8127
-5849 1424
--989 152
-150 7164
--1475 -2253
-6999 5730
-5574 5763
--3870 -3714
--2451 -8124
-1054 4529
-176 -3995
-1339 7590
-5670 1894
--1849 5601
-9551 -2326
--7468 5800
--8328 548
-5277 -2171
-7758 -4421
--6975 2641
-4621 6648
-4165 -5403
--2243 -5779
-6040 -7583
--2131 8495
--1853 -8621
-9600 -503
--5052 -6876
-4715 -5676
-7338 1698
-8335 -1738
-3470 5375
--8449 519
--2167 -6995
--4925 4308
--2180 5468
--5840 -4482
-4476 -3239
--1734 -3069
--4380 6857
-865 8920
-790 7090
--2392 -2403
--3049 -7342
-6811 4495
-1015 -3746
-5250 -7554
--6633 -4679
--7952 -2174
--8649 -2349
--6615 4383
--7756 252
-4300 474
-3840 4650
--7758 4141
-3275 -472
-960 -310
--3592 11
--7300 1735
-1788 3437
-3912 -1773
--2285 7974
-2817 -8942
--4108 5431
--6012 -5648
-990 -9082
--8483 -1417
--7821 2235
-3123 -2930
-2229 -6148
-478 -425
--5030 4680
--3100 656
--5308 1557
-2539 -7740
-4965 4131
-6369 -4479
--6216 -1316
--6459 -4889
--120 4546
-9628 925
--5646 4518
-5717 2458
-6410 -2189
--2297 1813
--9131 2257
-4442 1322
--1300 2549
--8425 -937
--5905 4699
--2861 -1198
-337 -4303
-60 -5320
--1194 8188
-3975 4690
-7338 767
-464 -8930
-9353 -2540
--576 7697
-298 9633
--4880 4277
-8268 3736
--268 -9386
-1515 1278
--469 -2371
--6560 -5036
--7989 -5048
--6113 7817
--4027 1659
--2716 4215
-3238 4215
-6042 3600
--3648 9052
--2844 -8859
-2078 -3287
-6320 2871
--8869 -3702
-5395 1270
--248 8983
-3334 -5579
-2960 4571
--3073 5157
--5036 -7082
-7752 -5280
-6385 5682
-2737 6453
--1724 2247
-2841 3335
-1072 -951
--6847 6089
--5157 2308
--4197 -7191
-7799 -561
-7999 1384
-7448 -5470
-6807 778
--9154 -1083
-5608 -5143
-2327 1655
-3940 866
--4234 2114
-962 6588
--8839 1870
-2146 -1289
--5710 -2521
-5284 286
--1321 -6634
-5927 -4831
--222 2394
--1028 6233
--4254 3568
-2372 -9685
--5259 3797
--5031 6382
-1185 -946
--6493 7373
--569 -2586
--5208 307
--9377 -451
--3234 -3901
-1415 -5624
--7422 -409
--7878 -5361
--5086 -7564
-471 -6159
-9824 -853
-592 1850
--2015 -2006
-1107 2297
-6456 -1474
-4697 -5553
--4761 3214
--1935 8686
-2219 3093
--6375 3441
-1349 -750
-3669 -8742
--1240 -2707
-7122 -982
--8559 1828
-6954 -5262
--7069 1111
--4022 1023
--311 3300
-4700 -8305
--2972 -2796
--8201 753
--8245 -964
-7822 -1786
-8030 -2814
-1761 -6116
-6744 1529
--3447 1875
-5905 6447
--7227 -4125
-6125 6566
--1081 7665
--1505 -2883
-6084 232
--4245 3968
--3790 4076
--4993 -1476
-4047 -1160
--7715 3430
-283 340
-3256 8377
-3355 -116
--6027 -4834
-54 -4846
-230 2978
--1785 4659
-4086 8688
-1184 -1776
-1848 468
-5770 2000
-8131 -3634
-4456 3248
-701 2257
-6590 6690
-7976 -5173
-7877 -4838
-164 -3634
-6366 -2024
-452 9044
--3148 6165
--5132 929
-8883 4491
--5081 -405
-3878 -3590
-1762 3113
--6503 -5430
--1040 -1045
--5150 -5469
--4797 3584
--2800 -1797
--4051 -4893
-6985 -2321
--3805 2512
--1182 6234
--294 7738
-2336 -4694
--3253 3813
--7263 6196
-8112 4834
-5561 -6339
--4298 1692
-4483 -3579
--6174 -7331
--3820 -593
--7719 283
-2053 792
-4853 -4577
--6082 -334
-1209 169
--1874 -7169
--1667 3098
--7823 -3879
-5136 3447
--1035 -2104
-340 3512
-5385 6547
-1732 2971
--8523 -2533
-145 -1655
-6861 3174
--9144 -92
-9738 1586
-109 -5245
--3158 4069
-6756 7024
--5135 7903
--5263 3272
-804 8629
-6712 6522
-4789 4983
-1554 -65
-2354 -4903
-2826 4228
--606 4449
-2529 -6892
--1508 -8809
--4572 2371
-4872 7250
-7700 -2338
-3527 1563
--5999 -3228
-5013 8104
-3125 1793
--1314 7854
-4680 6693
-6265 -7677
--3368 -1919
-4515 -7601
--6178 -7020
-3815 5099
-2310 -1426
-4003 4259
--2329 -4753
--4662 8739
-4021 5668
-4230 -8467
-8146 -453
--905 -4034
--6805 -6702
-3744 -8536
--1833 -879
-1710 7619
-4582 -2056
--5490 1826
--6972 -5090
--1480 5303
-4897 5744
-6301 -4205
-1491 -9450
-2876 8699
--6910 7072
-3668 510
--5879 6832
--6049 2326
-5090 -6349
-316 -5966
--8050 -5255
--1568 -1282
-556 -3416
--5019 729
--2604 -5011
--8429 1692
-4541 5833
--684 5606
-2836 -6724
-6555 -1763
--5851 5805
-8638 3795
-5227 4108
--4552 2376
-2271 -2913
--8025 1031
-6257 2366
-2507 -5378
--5285 -4959
--4706 -3162
--7421 -4237
--2092 -6947
--3860 3992
--7092 -6508
-7797 1101
-4175 8239
-6621 -5189
-6203 1181
--2329 4988
--7926 5384
--3329 -7383
--2851 8485
--5645 -4053
-5156 1919
-2418 -4897
--6665 6378
--6695 -3057
-5727 7934
--1611 1522
--254 2580
--2088 9026
-409 -5092
-7924 -3897
-643 -2137
-3704 -2786
--274 4103
-6556 -958
--372 -9036
-1154 -4619
--8842 4256
-4048 -8558
-8883 -529
--2156 -1896
-6201 -5298
-9407 1597
-2603 5886
--7560 5499
-1583 -284
-5366 7227
--4116 1005
--7288 4987
--6585 -4493
--1184 9909
--2526 -7207
--4435 -297
-2105 5974
--6072 -4194
-338 8566
--6149 5465
--968 3367
-1730 -3265
-422 7370
-350 -4862
--4395 8246
-5340 -4715
--1240 2952
--1500 -7266
-1505 -4997
-946 3054
-302 5961
-7854 1743
--5842 -4553
--6487 -5864
-3553 2164
--9645 1908
-4600 -7739
-15 -2062
-3254 3176
--1164 440
--5709 2513
-5820 1852
--7197 -4938
--9383 2780
--2881 -443
--848 6866
-4078 -282
-254 7504
-9328 -2524
-2537 1356
-4800 -586
-5983 7601
-1245 -5053
--9568 1461
-7488 2677
-7101 -748
-4752 -959
--2050 4612
-4 5708
-9061 550
--8223 -2896
--2425 7080
--786 -475
--3249 8508
-6182 6409
-760 -8461
--1435 2229
--6463 2898
-1868 -541
--1054 3187
-5999 1664
--3382 8549
--1393 -7135
--4321 -647
-3057 -3231
--3809 8871
-9276 3585
-1000
-974 -9778
-3487 -6373
--854 5073
-2490 8264
--8342 1212
-3570 -5056
-1277 7775
-213 6359
-3396 -6159
-7926 -4965
-2985 4956
--6976 -870
-3980 8519
-2621 2052
-1342 5053
-4239 4868
-5607 3704
--1167 4615
-2646 432
-5139 -4069
--1913 2442
-4844 6360
-4930 -5189
--2083 6353
--5858 5925
--2826 2229
-6476 -1869
-1481 -7719
-2793 -6468
--1810 4864
--6939 -5819
-554 1366
--1521 8858
-6072 -6607
-5160 1383
--1627 -1574
--6439 -3334
--7243 1098
-1259 -1834
--1583 -9244
-1117 3524
-5424 -5453
-7915 -5405
-3618 9226
--90 777
-6114 7514
--3683 -3253
--2303 8795
--6323 -135
--526 3458
-7190 3117
-1057 -8342
-6948 6428
-7460 4335
-5746 1627
-7098 2123
-2872 6253
-5952 5315
--1436 -8946
-3455 1307
--834 -5201
--75 -5128
--1064 9544
--3389 4785
--5262 6292
-5332 -7398
--6049 231
--5441 3950
--6595 6616
--2450 -5397
--8429 -1558
--7533 -3583
--5197 1212
--1731 -4051
--5281 -1876
--3191 5532
-5931 7460
--3250 -6897
--6219 2164
-2831 6054
-9722 860
-5444 -3969
--6181 -6406
--3324 -2568
--3353 7173
-1023 9477
-4591 8521
-5789 -607
-9192 1287
-7676 1249
-969 953
-6899 -1648
-4450 4854
-1036 -1681
--8525 -2696
-3837 -486
--4251 1110
-1311 -3453
--4988 -2109
-3668 4313
-709 -1511
-5406 -6294
--1075 1221
-137 -6567
--323 -3750
-1380 -3834
-866 -9913
-760 2775
--567 -7665
-4224 84
--3735 -8606
-4530 319
-6895 -2895
-1725 3921
-690 8696
--7381 -1821
--7158 1755
--3525 -7005
-1317 -8848
--1561 -7436
--8636 -170
-7840 2810
--51 -246
-1011 7560
-8759 -1695
-2192 -8247
--9103 614
-8207 4693
--621 3961
-5036 4192
--2482 4341
--9701 -1380
--5378 5940
--5947 5238
--8379 -4974
-4536 1125
--7743 -1420
--4141 -8361
-5065 -6724
-2300 -6169
--7449 1151
--3650 5391
-1963 9072
-7249 -6866
--8284 5589
-1961 -1639
--2089 -5515
--8454 -3509
-5072 -1988
-3998 1476
-6797 -5679
--7236 1455
-4798 2824
--8585 -4258
--1751 -7688
--1864 5078
--4468 8228
--3512 1344
--6439 3147
--5484 -3593
--4253 -5685
--9038 599
--7862 4184
--7281 1947
-2396 2372
--4870 7036
--5731 -4272
--5040 -3248
--5643 2535
-7842 -4403
--79 560
--1406 5947
-4087 6291
-5436 -2078
--5185 6708
-7083 5895
-4223 -7459
-5961 -1409
-4659 -2457
--2634 6185
-8996 4331
--4233 6938
-9405 2370
-1480 -1339
-8471 -1290
-9297 -3473
--5428 1319
--5664 -7110
--2421 1012
-6568 -1179
--5624 1708
--8449 -36
--297 5874
--9470 -2043
-1568 3243
--3085 6374
-1491 7291
-9471 117
--1974 6506
--6704 1538
-4911 2884
-700 -7960
--1308 1644
-5969 6525
--918 -6580
--32 -2006
-4573 7708
--4476 4266
-8143 -4660
-2253 6362
--3974 5959
-8093 176
-3116 8673
-6597 -876
-6075 680
--4307 3290
--8130 -2926
--849 2038
-2750 1764
--2616 -3956
--6856 5477
-4308 6284
-5675 101
-1555 -8393
-3317 4425
-1502 -1829
-5496 6268
-2476 -4632
-3624 3396
--5001 -4271
-105 -8077
-4814 -5059
-6416 -3072
--7422 -2663
--3212 1141
-3363 -7890
--3925 8191
-9493 -1382
-7957 -930
--1877 7648
-3757 -1741
-5258 2423
-2456 9440
--4441 5215
--1869 1323
-188 -6615
--2618 2204
-1577 5632
-1418 2125
--6303 -2723
-259 7156
--3651 -82
--7184 1618
--5905 1819
-909 -2295
--2248 -14
--173 -9164
--1325 -6354
-2164 -2358
--3126 -1668
-3086 -805
-3814 -3208
-5957 -7249
--3805 -7325
--6740 2780
-3430 -5692
--6201 3440
-5160 -5378
-6982 2800
-3905 -7603
--7991 5477
--4324 -1951
-4327 6725
-2356 4453
--1285 5496
-5107 150
-6936 -5008
-4485 -3626
--3070 -1768
--640 -7026
--5774 1804
-6411 -2575
--4320 1013
--4962 8159
--761 3119
--6777 -401
--7112 4399
-2231 4985
--2579 7753
--7039 443
--6005 6225
--2114 2193
--8220 4887
--8183 5168
--87 5550
-8742 -3201
-4621 854
--3504 6241
-3978 3826
--7509 2620
-2685 3731
--3790 -6846
-531 -7350
-8390 -2278
--5245 6974
--3033 4950
-4520 3898
--6624 -4567
-4309 -6337
--1503 6268
--8195 4765
-5985 2470
-7937 4221
--3228 882
-7069 -6554
-560 6831
--586 7766
--8514 -2474
-6764 -540
-8009 -3530
--4775 -6853
--824 -7363
-4644 2753
-1168 -4630
--2457 8835
--4037 7947
--1989 7259
--7050 2170
--2112 5849
--280 7656
--5782 3933
-5545 774
--4296 -3914
--4322 2407
--404 5072
--5595 -6834
-4203 133
-2652 -5007
-6327 6574
--1660 -3415
--5336 -2918
-2008 7903
--4754 -1813
--2569 7010
-6893 3869
-2211 2365
--7533 -126
--1811 -9827
--5751 -6756
--1970 506
-6128 -1425
--3350 4707
-1580 7290
--7056 5057
-4157 -7848
-2407 -2927
--31 9825
-2971 7579
-3528 779
-1071 3338
-2139 433
--4741 -8198
--5182 -928
-392 3842
--6029 -6231
--9336 981
--6506 -5491
-2030 4600
-1356 6474
--1866 -1558
-3776 -7057
--2189 -2384
--6376 1452
-6165 670
--2738 7555
--965 -8202
--5230 5471
--4498 -648
-5531 -8061
-6968 -7025
-233 4767
-3313 -1295
-4647 -5683
-5158 6642
-5233 -6969
--1070 -8338
-2013 8807
-2429 3167
--1161 -9081
-6907 1198
-7334 6548
-4286 5578
--4559 -6391
--5643 -593
--3971 4895
-2082 4925
--953 -8972
--2028 -2059
--4125 -5055
-2396 -2327
-9623 1896
-2985 3967
--4996 -1864
-2799 -948
-3033 2918
--1401 9500
--5784 3650
--780 4815
--830 -5492
-1302 -7513
-5811 -5853
-7251 2053
--544 -8867
-6674 -4929
-4973 261
--1428 7209
-1386 -7358
--5052 -7839
--6572 -4864
-5741 -1716
-368 4743
--8162 -2716
--2620 -3208
-6507 3648
-5866 -3461
--2828 -6960
-6569 3821
--5293 1224
--342 -3952
-1196 -3012
-4084 -1313
-7090 -1582
--2346 7443
-2312 9224
-454 -5713
--2809 2806
-7604 -3173
--2807 1753
--6103 -4452
-5440 -3319
-8224 -3597
--8031 -4597
--2476 4770
-4610 1912
--3372 -187
-8915 -3948
-2583 9352
--7153 -2771
--7360 -5140
-6824 6133
-4475 6171
-5165 1071
--5108 -8162
--4091 2311
--6892 7117
-1511 -1811
-2536 -5000
-3512 5341
--7689 -2746
--7801 -3646
--1028 6012
--225 6157
-1636 7514
-4817 -5103
--1829 -8425
--2791 5346
-4516 -5291
--2427 769
-7401 -1652
-5368 -305
--4023 7602
--541 9090
--5242 -6329
-2739 9262
-4086 7676
-7271 -3503
--7300 1378
-2203 -6014
--1606 1002
-2231 5754
-3364 208
--4778 3657
--1285 8786
-6743 -2719
--3970 -8625
--2648 -270
--7692 -1784
-1461 -4858
-90 -9942
-263 4974
-1404 2042
-8374 -4392
-516 3224
--2280 -7814
--1527 5938
-7909 -4517
--2727 8412
-1417 -1481
-7366 -1738
-1090 -9486
--364 -195
-3366 -905
--2753 805
--5217 -834
-2934 6355
-791 -86
--1196 -6538
--6318 7616
-89 -6806
--526 5184
-7853 -3074
--1128 8922
--3435 8995
-4233 7237
-211 6244
-5016 7772
--118 78
--6690 -2177
-2394 -8664
-1196 -6224
--5770 3696
-449 152
--9445 760
--5550 6369
--3013 6205
--7591 -5379
--2533 -1243
-5270 -4126
--242 -9284
-6371 2431
--8083 -2249
-6910 -3089
-1386 9055
-9359 -739
-4618 3860
-7916 5527
--7356 4944
--4995 1281
-3468 -6716
-812 -4156
--2630 8231
--5955 6612
-1442 9039
-8560 4260
-39 -9984
-527 -9639
--4370 -3433
--2475 8256
--3230 -8979
-3827 3113
--2047 -8410
--7984 4351
-4038 2743
-4142 -8897
-9560 2835
--2386 4972
--3270 -6581
--5572 -3725
-4520 1529
--7052 -543
--8971 -40
--4205 -6584
--2974 1003
-4094 6262
--5479 -4864
--6874 -3684
--7246 890
--600 -4418
--1851 6419
-5189 7621
--6190 4730
--1601 -5055
--8912 2587
--6404 7385
--6500 2793
--5859 4332
--7591 5975
--4681 1476
--908 -5648
--7874 4481
--7971 -1479
-7312 4626
-5302 5486
-5586 -3506
-8207 2334
-2938 -4386
-1929 2017
--433 3764
-6174 -6558
--5226 -8159
--8310 -4547
-5696 -4884
--3206 -5965
--5215 301
--6420 2781
-8322 599
-8892 2847
-9296 -630
--1454 7314
-6400 3377
--2881 8075
--6600 -6245
-3284 993
-605 -3575
-3874 -8405
-4449 3561
-1548 -5728
-7647 -3823
-7155 176
--1968 -1780
-3105 2540
-6741 -5383
--3202 6394
-4978 -2198
--3175 5673
-3303 3998
--6331 -6859
--8302 3461
--2100 -1884
--3950 -1528
-724 -3113
-4032 -2484
-496 -7423
-7243 259
-3444 3995
-9720 -1649
-2260 8301
-7431 362
-5831 7747
--5442 1058
-2913 6386
-4139 -3764
--1921 3842
--6318 -3933
-3887 4115
--3965 -3737
--3738 5890
--216 3780
-396 -390
-5441 -6936
--9974 34
--7304 4967
-6551 -4680
--6834 620
-2075 -1792
-5003 -433
--8959 315
-7184 3378
--4748 -3822
--844 -117
-9133 91
--19 6332
--6061 442
--7033 3513
-3935 6193
--2144 669
--2068 -1266
-2211 -7855
--6641 4068
-8510 -3725
-2407 3271
--2079 -7737
-2213 4427
--2262 -2808
-5011 -5505
-9414 -969
--394 4108
-4196 4741
-3270 515
--4074 622
-8703 1461
--603 -1855
--5804 7250
--7293 -4110
-4487 1070
--2741 -3404
--322 7634
-2877 -2997
--4629 4914
-3709 2739
--7647 -6049
--8892 -993
--5404 1799
-9233 -1449
--258 3379
-9219 -379
-5793 -3048
-3518 8527
--4993 3296
--5875 2799
-6635 -3178
--3893 4588
-4912 2787
-963 2154
-4995 1056
-8317 -5463
-4090 3440
-164 6424
-6860 6172
--7473 170
--7808 -2388
--2500 -8465
--1140 -1053
--2066 8811
--2432 6623
--452 -2873
--3184 8353
-6464 5864
-4563 4385
--6662 858
--5364 -2814
--6425 6699
--6723 -4797
--1463 -793
-5402 4837
-4311 1575
--859 778
-6554 -2732
--6722 4286
-2810 5379
-4933 -8570
--1670 -1540
-7430 -4420
--868 -9369
-3370 3735
--7156 1818
-1166 -5126
--5901 6015
-260 -8280
--4430 -6458
-335 -843
-5509 -6374
-2362 -2677
-8226 4591
--4178 8743
--1484 6674
-4947 -8674
-3690 3701
--919 8885
--8 8585
--6584 1456
--3174 -2413
-3244 -5609
--3837 -8529
-250 -9537
-3323 8974
--773 -1985
-7697 1697
--3084 1190
-663 -5523
-9357 2247
--394 -1016
--7407 -3142
-1253 2411
--7633 4155
-3659 3017
-3127 1489
--7136 -1553
--1842 8794
--8418 4095
--8345 1255
--4947 -6710
--6380 5292
--8307 2294
--7423 -1659
--6569 1395
-3103 8097
-2128 -3042
--4078 -93
--400 -3059
--7897 5401
-7919 -2156
-2941 7561
--917 1584
--2846 -7626
--485 9193
--8957 1628
-652 2665
--5535 3392
--5007 6885
--5020 -4756
-8885 3557
-3807 -5838
-5300 -8148
-9498 -1900
-7438 -4636
--7735 1604
-3040 -9197
--1762 66
--1579 -3465
-626 7718
-4661 1113
-6593 4444
-3215 6153
-4721 -3134
--260 3065
--8753 -4593
--11 -1710
-8304 2394
--3913 -3726
--9264 1549
-4760 1127
--7857 5329
-342 3474
-5310 2462
-2190 -775
-4757 -2506
--4743 3653
--9230 1681
-3817 -7725
-6714 -6930
-1501 987
-7344 2393
-1399 3086
-6975 -988
--674 8177
--9138 -136
-1385 5449
-3792 4436
--5264 -2711
-4966 4997
--6029 -2606
-8509 -3553
-3603 3149
--2011 -7925
-2733 -1048
--1151 1313
--137 814
--7524 -3426
-2179 -5724
--8426 1275
--2285 -8057
--1834 -8044
--6172 -2719
-1838 859
-7053 -1275
-3390 -194
--8753 3609
--1270 -5465
--5262 -8482
-5360 -5877
--5914 1824
--63 -8191
-4987 8066
--5484 -3344
-1676 3479
-2090 3834
-4270 -37
-6528 6989
-3419 3546
--31 425
-658 -373
-1614 -1829
--2697 -5536
-5818 -2522
-9874 -756
-5157 3610
--9018 -1621
--1444 1047
--22 -6787
--1819 4224
--2978 -435
-1278 6454
-4160 6251
-5682 -1981
--8517 3208
-2008 -4594
--1690 -1151
--7397 2252
-5007 -7864
--6100 3839
-7763 282
-8747 -4241
--1002 -2339
--3366 -6213
-4734 1603
-606 251
--237 8689
--6860 4510
-5632 -5863
-8026 -4302
--3929 2823
--7480 4845
-3934 -8712
-5889 -876
--1706 -1094
--1 2756
--709 -9739
-2323 -6786
-2203 -7852
-4004 -3565
--3623 -1492
--2954 -2890
-8785 -772
-3268 -5429
--2036 3979
--4988 7353
-1861 4140
-5142 472
-4392 -2939
--4412 8332
--4604 -8657
-7875 1976
-4234 -2137
-6524 -7441
-3228 5465
--3769 -2651
-8848 700
--6371 -726
-4909 1056
--4848 6039
--965 -4208
-8593 835
--711 -9675
--7455 -4595
-6836 3142
--2488 -2694
-5017 6612
-2903 1103
-3009 -455
-5302 1059
-1610 6417
-6340 4194
-3513 7911
-3579 -5011
--8290 -1218
--8498 2789
-5078 7987
-3606 -322
--8737 1312
--7764 -2686
-785 -9745
-2450 9191
--810 -3586
--2830 -2069
--1698 3258
-1684 -2825
-303 9636
--4695 2300
--1678 -3169
-2499 -3290
--2696 7102
-2186 3347
--2578 676
--907 -7942
-5150 5563
--579 -6975
-2766 -4816
-1332 -5878
-1887 5638
--7775 4976
-7208 -3143
--5032 -2762
--4558 2598
-6150 5044
--1527 -9608
--122 -2274
-2937 8562
--7745 -4209
-2005 -5392
-4022 -6671
-4256 635
-5114 1156
-7277 -5579
--4058 7408
-4358 -8909
-619 2608
--5611 5257
--5207 2744
-5003 -5256
--423 -3478
-7977 -175
--3391 -3886
--2572 -6411
--9102 -1682
-4442 2791
--4410 3821
--472 3224
--7763 -1421
--4374 -5399
--1412 -9429
-3072 8498
--8681 -473
-3954 -6457
--6652 -1512
--3662 -1822
-6843 4122
--5748 7666
-7 3086
--5834 4145
-8745 -3307
-6743 4359
-9131 -1528
--261 -973
--3292 2760
--5380 44
-3531 9045
-4120 3382
-3694 -1942
--2052 -8590
-1171 9459
--8458 5143
-1000
--9757 -2106
-7000 651
-2898 -4822
--280 -3959
-3098 4225
--873 -3600
-8699 -2682
-8616 -3388
--923 -9159
--5426 -5681
--3420 -1836
-2667 -1272
--714 -8839
-4282 1195
-4701 4497
--3144 -9114
-7102 -6579
-1740 4904
--2713 -8461
--680 -2023
--5748 -277
--4385 -1161
-5257 6115
-6019 -393
--3300 -651
-3904 1372
-4383 -5890
-9405 -2571
--6202 7537
-2873 7903
-1285 -5137
-6651 4936
-325 2407
--3216 -2299
--2985 -955
--3819 -8539
--7664 4737
-9006 -774
--6967 2664
--3906 -6178
-1597 -4746
-4856 6806
--2409 2089
--5376 -1635
-6713 -2437
-4900 8659
-6185 -4611
--2576 -4779
-1225 5482
-672 -4027
--2331 936
-4020 7675
-7313 -1389
-1237 -4733
--928 -7392
--3595 -6850
--1926 -2054
-369 7649
--1474 6502
-5331 8379
--3775 8307
-922 -3541
--1026 -8076
--530 -7067
--3219 3830
--7414 3578
-3619 6829
--933 -8874
-4764 6439
--4252 -188
--4644 2251
--8615 -577
-4637 2126
-8047 155
-3460 9269
-4697 -6987
-2573 7674
--4598 -2520
--3903 -184
-2270 -6979
--1651 6235
--2357 8987
--2852 8827
--7871 4199
--466 6752
--5687 -43
-1553 5027
-1608 -3874
-4468 7896
--4853 -2882
-2882 -3855
-8312 -1222
-2468 5890
--4820 4091
--5239 -5801
--4929 -1355
-8047 -4484
-8648 -1391
--1571 -8197
-2175 2776
-5832 -366
-5245 -1838
--972 4612
--7463 5225
-2564 3742
--6277 -5407
--8211 -5318
-1621 3
-2688 -6610
-457 4880
--4284 7010
--3463 3225
--2483 6287
-5948 7882
-5937 -7122
-9972 452
--4402 -5518
--6369 -6076
--6698 -7183
-1302 -9699
--4917 -2532
-3962 5701
-6775 5522
--4019 -3766
-1101 4
--2075 230
--2159 859
--8694 2562
--7383 -358
-618 -9213
-1216 2141
-2653 4768
-7605 -2682
-7321 -4523
-1252 -8933
--5637 1137
-9465 -1822
--1539 -2168
--3231 4587
-1551 4309
-601 -1026
--7106 4851
--5851 927
--5634 -434
--2007 -3371
--7830 734
-7635 1434
-4572 2589
-2473 -8216
--3019 5089
--4452 8668
--1531 -9245
-4927 -1032
--4455 6442
--7152 3385
-6504 -6018
--9694 1387
-712 -5682
--4926 -6323
-4191 -2095
-2290 -4336
-300 -2082
-1411 -1431
-1582 2801
-341 545
-453 -8151
--429 -3935
--8584 3133
--3152 -1884
--2198 8474
--8101 3261
-4927 -3504
--957 -6550
--2670 -6297
--7116 3144
-2897 -4168
--3004 -7917
-3871 -7001
-2622 -112
-3448 -2667
-5916 -7788
--872 -6410
-1957 780
-1307 -4396
-211 67
--64 9362
--772 -8302
--3450 -5477
-5988 -4160
-3681 861
-6948 -760
--5267 -5756
-4826 195
--4248 6288
-9716 2223
--9764 948
--5629 3717
-1033 -7454
-3043 -4007
--2515 1116
-2298 4358
--4355 -3547
--6777 1635
--1070 -9264
--4335 6673
-4020 -8109
-2321 3769
--6364 3002
--7349 4646
-5470 -7601
--3353 1085
-8933 254
--1315 8553
--5177 -3949
--3051 4238
--2697 -3432
-208 -6982
--2964 -10
--4814 3854
--131 2502
-4951 -7904
-2731 5438
-3113 -7979
-3621 854
-35 -5612
--2945 -2271
--269 -9046
--970 4080
--7133 -275
-7518 2753
-682 4115
--6610 -177
--4614 -4771
--8699 -302
--1619 1515
--2623 -8427
-7572 -5893
-1611 -255
--362 6090
--3041 -786
-732 4845
-5827 -3343
-1650 2700
-5590 2875
-6520 6935
--234 -622
-5951 -3946
-1672 -430
-8068 -4251
-2426 -5802
--3415 3551
-3265 -1616
-2101 -1927
--5903 -5387
-7918 -5893
-4197 3978
--5438 -7247
--7377 -6238
--2733 1656
--4418 -7436
-1191 -2906
-1748 -7609
--3075 6476
--6995 4953
--3075 9061
-2337 3271
--7858 -2514
--2188 4388
--4426 8247
--3593 -123
-3371 4452
-9814 -1358
--5061 5523
--9348 -3309
--8806 1782
-765 -9316
-2792 3351
--787 9094
--2819 1471
-8676 -3886
--3957 8691
-8208 4534
-4906 997
--6380 -1456
--8505 102
-4961 3791
-5196 446
-7324 -3617
--4603 7480
-5666 -5910
--6242 -3529
-8643 410
--1781 -5016
-879 -6841
--5421 -7705
-4246 -2487
--1540 -4316
-2042 -7881
--3256 1746
--60 8804
--989 7791
--671 -1537
--6174 2374
-3689 8492
-8298 3110
-2334 3376
--3203 -4912
--2555 9108
-5778 -4806
-504 5805
--3761 -7724
--1462 -3424
--7974 -4916
--6084 87
--6980 1979
--4961 7329
-5754 6966
-7428 -439
--8673 -1056
-282 6007
-614 7425
-1542 -1059
-9209 3504
--6210 2792
-7461 169
-8282 -2140
-3848 -7208
--1540 -3413
--4908 5478
--1238 -5854
-5787 5476
-7063 4918
--4719 1743
-4930 -1904
-2793 -6331
--6121 3492
--4500 -2479
--7653 -1416
-6570 -1414
--4725 -3102
--6308 -3791
-1047 4142
--8889 -1117
--207 -2876
--582 6261
--875 1202
--5817 -5970
-3981 -3146
-1812 -9448
--4326 1165
-3632 5493
--5582 4601
-498 -6385
-6783 -2622
--1000 8324
--733 8107
-1227 4792
--6229 988
--7387 -1883
-1557 6176
-4603 -1775
--6850 1904
-4306 7140
-4465 -3196
--1212 -3131
--685 7768
-782 -1926
-1917 5350
--1459 2062
-5194 7028
--6116 -246
--6623 -3501
--2813 -3696
-1763 -7572
--4801 4902
-3831 204
--6984 5113
--2720 -3326
-7865 -967
-101 -8548
-1801 -4344
--1356 -2696
-7601 5366
-7151 -2707
-9256 996
--5451 -4684
-4784 5226
-1606 -5938
--1079 1306
--1848 3365
--5564 -662
--5527 4103
-781 -2543
-7571 -3023
--2993 3558
--6674 -4892
-2641 -5389
-1696 -5732
-7727 1663
--5320 -817
--3396 -1826
--9931 -935
-1544 -7098
--6011 -3413
-2765 -7808
-1001 2992
-1957 -1783
--1760 -7137
-1152 -5106
--3230 240
-6711 -6718
--1224 4053
-3699 372
--7000 -5699
--3406 -8348
--7048 -4866
-6488 -5581
--3875 2756
-4701 -7066
--7586 -1049
-2361 6774
--1764 -8919
--446 -9921
-5740 -2374
-8771 -2717
--6014 2892
--6403 6946
--1561 -4529
-6676 -4005
-2695 4556
--5675 3902
--1387 4744
-3842 -7442
-1182 1142
-1264 2356
-2750 3009
-3776 -614
--269 -1512
--3062 4132
-782 -5640
--7257 3710
-6126 313
-6401 3291
--4267 6563
--9009 2843
--4967 2269
--6584 -5650
--8671 1164
-2963 -3358
-2353 -739
-4882 -3754
-1059 2925
--959 -6229
-3798 391
--8463 -2376
--5573 3085
--2332 8667
-8102 5343
--2313 -585
-7877 4896
-5303 2314
--4610 7041
-6451 6713
--1736 -9221
--4400 5280
--985 6309
--1402 -883
-3249 -136
-1776 3976
--3616 -2025
-5863 2851
-1108 -4554
--6538 -4270
-2346 2298
--2134 5348
-3203 -4941
--5304 1591
--2326 -4165
--728 4982
--9860 532
-6973 5156
--5257 5841
--1540 -3331
-8960 4375
-934 8448
-1001 9245
-372 -7722
--8360 -1067
--4383 2098
-9180 3897
-8941 -2391
--6303 -2852
-3092 1074
-6973 -6599
--1044 -3362
-1065 -7751
-8842 -1788
--6092 -6749
--4956 -7822
--42 -2464
-2410 9561
-6739 7334
--5977 -6441
-1588 9416
-4604 5550
-526 -6474
-3768 -3482
--5776 949
--8257 2297
--9511 1526
-3393 8130
-4349 1731
--1158 -4064
-190 5128
--6130 -508
--172 -5875
-6524 -2968
--6803 -5111
--5750 3841
-7802 5967
-809 -1398
--6717 -1918
--387 3003
-1769 2259
-3682 -649
-792 2975
--8945 -79
-3703 -2205
--4678 -6505
-5858 -1121
--5949 4380
-6212 -1956
--83 1166
-4771 2016
-108 236
--2488 -2776
-7797 -2854
--7203 6287
--8653 -3782
--4009 5077
--2534 -8473
--1363 -702
-4823 -7313
--4122 537
-756 8939
-5543 4792
-1221 -1649
-8675 -1911
--1977 -1715
-8680 -1007
-6951 -2498
-4053 7309
-2516 -9460
-2584 440
--6225 -7369
--5521 -6118
--6814 -3373
--8403 815
-1487 -8353
--1217 -4006
-8407 2640
--5465 8358
--1892 2853
--6144 2745
-2323 5674
--974 -3728
--5385 -6600
--3252 5597
-43 -4127
-3682 4786
--4632 -592
-1642 -2492
--4971 5987
--3157 -3121
--3410 3997
--1094 -1444
-401 -3581
--3874 222
--2810 1945
--4102 6704
--2139 -2320
-4215 465
-805 -3956
--1912 5852
--3916 5629
--6541 1319
-6271 -7253
--3570 6328
--2195 -6738
-6342 1756
-4013 6926
--1110 -757
--6496 2845
--4273 6898
--843 -6835
--7146 1862
--6322 -2583
-901 -8914
-2733 -7184
-5464 4143
-6778 5020
-3449 -9268
--3482 292
-5961 4409
-1567 5346
--2189 1991
--3968 -5157
-6204 -965
--2016 -908
-3887 -2089
--1701 4255
--4550 -3681
--5018 -6814
--1617 -5534
--7899 -4142
--3542 -8647
--4719 -3270
--504 4369
-5151 -2720
-9334 988
-8147 -2020
--6845 -3939
-3768 4074
--3517 -6201
-6718 -6197
--5191 4519
--8602 -4623
-5927 -5627
-835 -1444
-5824 6702
-952 -4246
-3676 -192
--5314 -6431
-3212 -2904
--5313 -6599
--4973 5287
--1098 3741
-2091 -1085
--2420 7004
--5526 7491
-4052 -5105
-1622 8278
--9010 -2105
--9917 1267
-4317 6120
--79 7120
-5741 -5579
--283 -1053
-888 1471
-1055 2187
-5567 -8227
--2946 -1131
-4388 3049
--3297 8567
--8470 -867
--4585 -5184
--4602 -1876
--5416 -1363
-5514 56
--2592 2491
--750 -3374
--2140 3628
-2422 6488
--7060 -6126
-3712 2373
-2853 -1709
-3197 -5654
-2481 8544
-5407 5039
--888 -7186
-1501 9330
-3472 4726
-3593 -1246
--5946 -6313
--5328 -5149
-4547 -4148
--8386 -2079
--6507 408
-2388 7102
-1491 -4136
--9855 -962
-1293 -2823
-5429 -6675
-2540 7684
-2119 7983
-7983 -2618
--1804 -1056
--1309 1009
--3221 598
-4719 -8134
-6759 -5236
-4890 -5070
--6797 2017
--1728 1507
-2784 836
--499 4781
--8045 2317
-109 -1227
--3906 1167
--3111 5419
--8923 4465
-2657 -7521
--250 -7304
-373 4236
--953 -4941
-9393 -1249
-7367 -1592
-6285 5340
-1755 -8686
--4789 2285
-9289 -3556
--1257 3827
--6380 3073
--6585 -2059
-7681 3099
-1675 -6235
-2627 2319
-8480 -1205
-6101 -2484
--2117 -7353
--2267 7603
-8485 3099
--3002 2131
-6836 -4602
-4757 2001
-3038 3321
--7223 -6023
--535 114
-7116 -4842
-5526 -7450
--1605 3739
-6274 -1394
--8181 -4964
--4586 3618
--7586 4940
--1228 -9757
-2766 -8201
-7366 3355
-6475 5038
--3456 3667
--7532 5403
--3208 -5119
--3466 -7991
--7540 5121
--2156 -4927
--1066 -5449
--5837 3856
--6628 5187
-2271 2570
--7418 -3417
--7969 -1181
-984 4868
-6615 -7370
--6431 5426
-5625 5457
-9258 3604
--9102 -1848
--2634 3064
--6861 -2097
-9021 385
-9522 -6
--3542 1828
-906 -1524
-3963 -7302
-5859 -4481
-3183 4887
-5105 7088
--1304 6026
-3579 -3559
--4314 8610
-42 3666
-4538 1214
--472 1869
-3204 7249
--4005 -6760
--1684 6701
--9049 1018
--7152 4568
--3624 -3809
--7530 -3941
-2085 9312
--4757 -2511
-6032 7010
-346 5443
--6345 -6264
-9286 -153
-83 1498
-1473 2729
-1163 8215
--6407 -6762
--8201 -725
-2149 -7211
--2380 -6679
-940 -3618
-489 -7820
--5148 3755
-4054 -7686
-4310 7128
--1738 -9383
-2017 2957
--6153 -7519
--3440 7784
--2935 -6790
-660 9124
-8358 916
-9649 861
-3951 -1446
-3910 -6417
--6918 -4358
-9798 1397
-4497 6651
--1831 -4930
-1532 6267
-4571 -1547
--3835 -5448
-2809 4083
-3644 436
--7709 3277
--431 -173
-4011 2834
--3767 3512
--5971 852
--3989 -1669
-8175 3511
-2701 7195
-7108 4238
--2496 8291
-4561 -3479
--8214 2388
--3922 2057
-4401 -3790
-966 9056
--7904 -3351
--928 4600
-4063 452
--216 -1921
--8242 -818
-3275 -742
-1273 -1256
--3397 6031
-1024 -4738
--7021 -2800
--6501 -2854
--5568 -4231
--1857 -1694
-2680 -661
--3029 -820
-2233 583
--2962 -1645
-6144 3317
--4151 -3630
--6011 2926
--1806 -6005
--5640 5067
-3241 -8118
--8704 3325
--1995 5947
-8456 -706
--1096 -8073
-3152 -9442
--1380 -9029
--1651 -4438
-2814 -9232
--7498 2955
-3392 1445
--2952 5588
-8186 -2042
--2466 -4844
-4658 -3562
--3834 -8459
--3811 -6785
-2680 6539
--8643 3969
-4641 5386
-907 6513
-7400 -6583
-5598 3677
--1152 -5429
-1180 -826
-7042 -1245
-160 4275
--4542 7957
-761 5698
-4486 -4516
-1667 -4277
-2116 -5558
--2860 -9421
--6298 -2129
--8704 -3435
--6096 3503
-3833 -3175
-267 917
-4770 7017
-936 -8902
-3037 -6078
--3119 6675
--5078 1484
-3877 -7511
--5467 2930
--879 3099
-7347 -2133
--4988 -4118
-2803 -4917
--5217 -18
--4824 -3271
-4448 1290
-5702 -4374
--6332 964
--1326 -3278
-1557 -1008
-734 -4018
-614 -8287
--7989 5826
--6594 5195
--1992 -4505
--1671 6726
-2674 8968
--6903 -7198
--5963 -1523
-5061 -5655
-6888 5944
-6586 7400
--3215 6595
-1554 -3673
--1906 -842
-4054 -7641
-5340 -1343
--4800 -7633
--1989 -5556
-6325 4726
--7166 -5455
--6727 7113
--3810 -9083
-2584 7331
-7933 1331
-4155 -2857
-6294 -746
-281 -5146
-1344 3270
--4862 -895
-4658 -4312
-8465 1331
-4937 1861
--7726 5378
--8071 -5776
--8530 -842
-162 4284
--2783 -2303
--7302 627
-5999 131
--5457 -3043
-8208 853
--1622 6696
--724 4508
-2805 -2161
-3057 -1787
--2069 -8687
-2261 -8985
--128 -928
-8677 1793
--4474 8523
--3674 5382
--4120 -5006
--7004 -4296
-7405 1477
-7059 4012
--64 3539
-1192 9271
-6241 -3226
--2555 531
-4094 -3486
--2720 4082
--126 1543
-3855 4085
-4815 1625
-41 5207
-3572 -3587
-484 5914
-7282 -4123
-4176 4380
--3714 8429
--7274 -1661
-5437 1450
-1308 6488
-684 2323
--4220 303
-8329 2401
--81 -4261
-7787 -5589
-6159 -7320
--2747 -5688
-673 4461
-7855 208
-6728 -4257
--7471 4376
-1780 5958
-3393 6410
--4804 -34
--1834 -4359
-4698 -5042
--9418 -3120
-9853 736
-1000
--5259 1618
--6830 -3909
--9104 1835
--985 1403
--7951 4716
-591 -5852
-7244 4047
--1169 -5543
-6987 3664
--4022 -2660
--6731 -2066
-7713 -3096
-182 -213
--2367 -8783
-1108 6401
-3617 3868
-5092 -5201
-5041 -1600
-8161 2
--2944 -8119
-1069 9228
-5443 -6098
-5078 -6433
--3262 7898
--4942 4711
-1071 -9907
--8562 459
--7485 3443
--8325 201
-2602 6693
-4765 3351
-6364 -7710
-1039 6127
--1749 -5288
-5175 -1600
-415 4245
-5443 4471
-3797 8979
--6922 -6525
--8600 -4146
--5012 1960
-5556 3507
-1189 4707
--8675 -3596
--5978 7350
--3071 7525
-731 229
-790 -9682
-7559 16
--7013 -4484
--1130 -607
-2097 -4215
--4 -1623
--7823 -285
-5284 10
--5449 7058
-8755 -559
--1100 -4025
--6384 2635
--917 -8231
--1326 -4357
-549 6401
-1576 -6502
--8686 1601
--5256 -5945
--435 1979
-63 -7400
--7258 1678
-8884 -1269
--2513 1808
-6968 921
-9188 3345
--8861 -2970
--1408 -6535
-782 -2454
--7581 5079
--2847 3831
-4835 1768
--1648 -5503
--6945 2171
--8064 -5707
-1347 -4952
--3849 -2970
-3029 9303
-6050 -5919
--4615 2429
--1304 7001
--3139 -4281
--6103 3928
-6593 4742
--7546 4340
-8117 -3473
-1768 -3720
--8422 -858
-8845 4100
--1280 -6559
--1685 -4647
--997 4136
-2828 6519
-1214 8009
-1300 -2097
-7473 5163
--4317 -3305
--1555 3025
--3742 -5868
-6878 1004
-3484 -3392
--2578 8306
--5192 -6375
-5705 1375
-8327 -1961
-82 9114
--4006 -4597
--5468 6301
-4731 3798
--4196 -7363
-6718 5333
--3080 -9261
--7586 5758
--4926 1065
--7356 -4172
--561 1301
--6182 -7323
--8492 -4514
-1193 6780
-3077 -8235
--4448 4716
--3492 1918
--5314 7992
--1879 6163
--269 7128
--6395 5628
-14 7558
-4127 3519
-4973 6285
-779 1533
-7065 3931
-1419 -4687
-8649 1349
--5886 1778
--5781 -1283
--4929 3379
-2683 -8476
--2052 4207
-3914 2303
--5237 8318
--1399 7288
-7522 -1504
-1970 -7180
-9135 1885
-6575 3162
-4354 204
--6171 -4174
--6813 1492
-3558 5237
--7418 -6465
-1395 1798
--5985 4960
-7775 -666
--9076 75
-364 511
--834 3298
--4729 -5686
-1322 9548
--3323 3015
--1860 -7931
-3129 -5097
--8033 4184
--8918 3828
--4393 1260
-1378 9263
--5316 502
--8637 3985
--7857 -2569
--7779 -5096
--7210 1475
--5544 8194
--1323 -4557
-8779 -4112
--5065 3622
--2175 7024
--8628 -2618
-4439 -8433
-3361 -1739
-3690 2119
--2691 -4651
-3001 1239
-7119 6963
--826 6179
-5604 5034
-2474 -198
-4678 -2537
--3618 -280
-4821 148
--2614 6345
--1210 -6390
--6627 -111
-3738 -8820
--2281 3043
-321 -7123
--6293 -5903
--8549 369
-7349 -3322
--4888 -1271
--9090 -4047
-4560 1594
--7394 -2953
--4742 -234
--301 4910
-6811 3895
-606 4739
-6570 -7071
--416 -8295
--5432 4716
-6621 -5061
--4337 6772
-3908 -9107
--2941 -6933
-1645 6019
-6932 4722
--7082 -2646
--9100 1567
-980 8977
-3715 8879
-990 6668
-6423 2439
--6775 4701
--3952 -2711
--4594 8601
-4118 -8773
--1237 -7774
-5720 -7207
-3223 2716
-2978 4590
-2329 -2021
--1061 5140
-8366 -4277
-5170 -8235
--1459 -2276
--486 -8203
-7299 5886
-633 -3977
-2574 929
-4857 -8137
-3313 -1734
--293 -7492
--8153 4838
-9400 -2007
--4207 2650
-267 3469
-5905 -799
-2994 -7660
--9124 3156
-5149 5421
--9031 -3717
-4603 -5037
--3159 5898
--138 -1493
-4865 -453
-6993 -1143
-2532 -5960
--7044 -1652
--1444 4896
--4570 -3049
-4310 6946
-872 -2077
--538 4480
-4521 7956
-8978 3778
-2269 3511
--2214 -5251
--3332 -1351
--1237 -4114
-4977 8216
--5206 4872
--8481 5142
-5955 3269
-8710 2937
--7540 2467
--6258 -4626
--811 8028
--5105 3268
--3958 944
--3820 -8173
-1688 4929
-5050 8224
-5663 1792
-1678 -7953
--4292 -232
--4687 -7574
--1298 -2527
--8278 3679
--1735 8135
--4588 -2650
-9811 978
-9051 1215
-2551 -8836
--1914 -1777
--6112 3028
-2941 -2613
-5295 -5623
--4567 -6259
-4674 -6163
--532 5045
-1143 -3946
--7648 -4122
--5178 -4081
-2073 -953
--8612 -4111
--195 423
-4532 8763
-5293 7727
--8065 -278
--4949 368
--5875 1510
--6413 2115
-2440 7291
-7455 5709
-327 9694
-2067 -9597
--1863 -33
--3750 -6577
--2905 -4671
-8477 -1281
-5430 -1886
-8797 1635
-6578 1501
--2233 3597
--19 5030
-4772 3959
-5041 3729
-1315 1548
--9725 1246
--8137 -3822
--9018 -1943
--191 7009
--6458 -7140
--4405 2267
--1470 4192
-5326 7135
-9281 -200
-5169 -6975
--4296 8123
--478 2535
--3381 2793
-657 -3648
-4183 -6998
--2473 -2918
-7380 -1110
--4548 7615
-3824 -5226
--7671 2287
--5932 7616
--7922 376
--8673 4951
--736 -5188
--8784 -4340
--4958 -3654
-4292 3815
-1893 5338
-6509 5491
--1694 7239
-2557 -4566
--7677 -2675
-4745 3903
--3870 -6337
--1013 3528
--6215 -5080
--102 -8265
-242 6299
--3404 -4239
--6800 6335
--3864 -1554
--8835 -571
-1244 3596
-1618 633
--1576 -8406
--1247 9681
-6526 6087
--1400 8260
-7393 -2580
--6743 -3384
--8472 193
-5855 -1298
--6557 6228
-6680 3330
-4643 -7897
-7564 -1870
-7726 161
-2170 -5617
--8496 625
--246 -3197
-6575 6528
--9216 2421
-2399 7832
-3350 -5841
-4764 -8623
--1171 4602
-2369 -2283
-564 -5258
--8942 -3903
-17 4103
--8643 -997
-8795 -1812
-5954 7873
--6687 -3346
-1660 2024
--3886 6991
-5267 -6185
--1489 -5219
--3863 -4804
-6930 455
-226 4316
-1893 81
--965 2020
-5511 2027
--1948 -1566
--2705 -1896
--5775 1894
-891 5321
-4333 917
-6625 5110
--1076 7756
--822 -7052
-2267 -1034
-4514 6629
-5312 2839
-2967 3558
-6465 2772
--7610 -1090
-732 -8759
-3442 -5129
--3576 -4709
--7547 -2708
--4343 -3703
-1271 -1313
--1468 -5663
-5643 -7757
--8773 1491
-5961 -78
--3351 578
-3843 5215
--4693 -8355
--2666 5812
--7107 3645
-346 -8390
-6202 -4807
-7019 -3151
-3579 2536
--6355 -2930
-2280 -8371
-8649 -4752
--1360 7142
--5777 -4473
-9387 -1561
--4197 2768
-1049 -4223
--4664 168
-5649 -2030
-3077 215
-2769 8784
--4083 7034
-2060 1889
-5606 -2373
--8230 -3873
--8551 -4739
-8693 961
--6946 2672
-8547 4637
-1145 -6003
--7233 -947
-5260 -2476
-7668 -1123
--2846 -1279
-184 -4186
-7419 -5374
--605 -4246
-7125 -6630
-7292 -6630
-5546 -3484
--6282 5248
--5577 1394
--3395 2876
--3466 3187
-1517 -893
--2357 3027
--854 -4166
--1609 -7616
--3482 1825
--3638 -6187
--6757 2832
--4824 5655
-2501 6797
--1217 3813
--6255 3999
--1711 1977
-2127 -8780
-9227 1087
-4684 -2929
-4796 -2815
--9017 2398
--765 -3140
-1460 -4328
-4926 -6090
-688 2945
--6650 -6972
--4805 26
-8819 174
-431 6027
--6750 2633
--3765 -7880
-4980 -2829
-4108 5818
-5650 6504
--2189 -5052
-6195 4850
--7547 -3357
-3019 1767
-5786 -6682
-31 4797
-1140 3823
--9256 454
--7598 -1205
--5840 -543
-338 -818
-7635 -6023
-5472 -2969
-3696 -9120
-9900 497
-6834 3631
--2630 337
-2717 3220
--5996 7476
-7890 20
--660 -7329
--5472 1159
--5394 2136
-7918 -3113
-166 -4779
--2371 -5634
-2548 -5068
-2086 358
-1930 4850
--6306 6669
-8216 -4521
--1145 -6670
--1600 -3719
--682 -7878
--382 -3584
--9540 -503
-6215 -5332
--7788 3279
-312 -4156
-7838 -2127
--5674 5692
-2161 6714
--4662 5526
--9089 4048
-7416 -547
--268 -5068
--6346 1763
--9517 -2142
-6234 191
-2046 1979
-244 -8333
-6072 5339
--1833 6972
-4623 6668
-3697 -7787
--136 4888
--1949 4658
--1632 2213
-1306 1674
-1564 -9364
-2572 -2814
-5857 -552
--5517 -4233
-8769 4754
--9519 322
-2232 8917
--4436 5445
--5968 -6320
-2266 6899
-1186 6050
-7803 -5965
-65 9234
--2923 -4539
-1322 -8995
-7335 -6253
--1467 -6187
--2792 2958
-2611 3285
--1566 -8277
-4613 4449
--2002 -9750
-6770 -7202
--3700 8891
--765 7381
-7170 1615
--3748 -1627
--4920 -6557
--7140 1048
--2658 5153
-5419 463
--9601 2351
--4763 2648
--2216 -2496
-157 4178
--7177 -240
-9017 -3298
--382 -6240
-259 -5353
--4486 1360
-1326 -3372
--7163 3116
--7600 3440
-489 -7877
-7544 5138
--2699 1676
--5005 1670
--8005 1100
--7693 -2487
--2021 -4906
-9766 -543
-4821 1334
--3948 -3062
-1388 -917
--6709 1064
-3433 -6278
-1309 8688
-211 -3768
-1435 -7062
-3263 -9244
-725 -5211
--9 7633
--5000 6505
-1446 613
-2982 2209
--3432 -5663
-4823 5829
-8027 265
--7425 2651
-7578 2764
-1327 -3829
-8905 -591
--5246 -7619
--3426 1355
-267 1456
--5614 -2
-3599 6862
--6070 -4128
-6534 469
-8070 -864
--7779 -3172
--2285 5919
--4318 7019
--8106 2353
-3053 -4177
-6449 -5096
--6665 522
-507 9193
--3212 6216
--8843 -417
-8429 2489
--5341 -6430
--5044 -5095
--3899 -4549
-7353 -5478
--2189 -331
--9286 -2401
--25 1095
-3705 3507
--8938 819
-5707 7183
-3888 -5984
--6128 -1425
--4814 -8675
--6183 -6517
--796 4110
--2826 6105
--659 8652
-6773 2105
--4710 -2662
--4193 -8669
--1768 302
-7452 -4319
-1775 -217
--7915 -4112
-3735 -5244
--9264 2770
--7969 -4795
-940 -1356
--1377 -5186
-1280 5528
--1120 -4012
--3201 1357
-923 -1205
-3908 5429
--6553 -3424
--589 1987
--4408 579
--2979 -9295
-5222 -6318
-6810 7086
-2649 511
-2243 -2228
--4238 3586
--988 -2517
-6477 -356
-3229 -4255
--7120 4101
-73 9385
--8329 -2452
--43 -4188
--336 5463
--7639 801
-773 9123
-3157 9000
--1733 5900
-3858 7959
-9 -7423
--2828 4830
-9118 -2047
--5315 6719
--6283 6994
--9911 560
-2337 9231
--1357 -1819
-2390 -1613
-1231 7551
-3786 1360
--1342 -7952
-4125 8955
-2741 -2371
-1333 4759
-6057 1901
-8681 -1853
--5875 543
--4847 5723
-2044 1961
-1064 -3698
-3294 -6736
-3654 4677
-264 4785
-3779 9105
-2448 -7449
-3986 8081
-1634 7496
--4118 4203
--3073 6796
-3373 -43
--2714 -8273
-3221 -2015
-6928 -2626
-2233 -1066
-6511 -3436
-2968 8902
-196 8410
-4109 -389
-3973 8332
-2605 6734
-1344 4030
-9620 -521
-4407 6573
--84 3408
-4156 3133
--968 6083
-7961 2968
--3725 3881
-373 3795
-1415 8820
-9070 -3559
--2498 588
--4559 -6587
--3549 -1721
--3491 8601
-255 -6317
-3563 -5291
--6113 1893
--6268 -250
-224 -6245
--1819 9664
--8005 -4657
--4169 4942
-1161 7199
-9718 573
--6019 4854
-4649 -4528
-5115 -8574
--5991 2960
--1410 1869
-2092 7353
--3883 -7471
-6928 3921
-1520 -8847
-38 -7811
-6507 2554
--80 3180
-1522 4383
-2185 2318
--9743 -2188
--2998 -3555
-1409 4297
--1836 -5345
--5609 -876
--1850 2071
--8562 -1483
--5771 4750
--1947 195
-969 9678
--7077 -5322
--1256 -287
--2198 -3543
--1079 43
--6308 -7403
--6820 4067
--7543 -4991
--7812 5972
--5233 4620
--9218 905
--962 -9242
-5364 2121
--2011 -7794
-7029 -4938
-3814 -3366
-673 8596
-9207 -808
-377 3618
--2459 -6933
-6113 3315
--5134 -3280
--1319 4015
-7062 6872
--5795 -4338
--3521 -4828
--5256 -2486
-3222 7288
-1866 -388
-3066 -2000
-34 6274
--7117 -6239
-2703 7012
--5165 3501
-3866 1185
--252 -3086
--1934 -9710
-2391 7064
-8361 4976
--4286 -3188
-9138 3353
--4859 674
--4778 3347
--1572 9322
-823 -6561
--587 -14
--6030 -1093
--6383 -6492
--5946 -2165
-8962 -385
--1064 -7789
-924 3602
--4037 -6272
-1688 422
--3696 365
-1057 74
-9205 -2714
--860 5072
--1007 9383
--1496 5624
--7863 -2325
--236 8946
-7568 -6304
-8833 240
-6552 -1950
--4538 -8290
--155 7285
--1050 -820
--293 5211
-1107 2623
-95 934
-5936 7331
-1547 3447
-5487 -432
-130 5091
--4114 4782
-5464 4439
-5985 7124
--4599 4274
--4449 3849
--2621 8057
--2135 829
-374 -5739
-779 -2837
--5095 4902
--8394 722
--746 7747
-7573 6152
--2455 4024
-1179 6732
-714 -6470
-6139 7295
--8943 254
--7849 -5091
-6192 481
-2942 2829
--689 3563
-711 9425
--3566 -6021
-8871 -1288
-3189 -7937
--4656 5217
--5851 -6573
-1474 4584
--1309 -5351
--6998 -6003
-2174 -4634
--2510 -8844
--2029 -9152
-5190 -3498
--4651 5384
--2912 -8966
-4428 4034
--7615 162
-5467 7666
--6787 -6365
--4577 -8431
-1736 -9298
-6127 -4677
--1026 -1043
--5604 -6812
--4261 2730
-4911 -6737
--6385 5675
--5103 7797
--459 -3427
-2770 3599
-717 -4981
--2843 -9336
-63 -770
-8799 870
--3337 1347
--8666 3080
--152 -5024
-6186 -5256
--14 9805
--5103 2898
--445 -8436
--9734 -140
-5930 -3857
-5183 -4285
--3298 -6456
-8451 3528
--6565 -3291
--2661 1371
-8753 -3908
-7770 286
-2631 3275
--3358 -3237
--1442 -3629
-6558 329
--7033 3786
--4238 -1472
-5794 1760
-6921 -764
--2780 -8648
--7752 6046
-6950 -5764
--6865 -1227
-4378 5373
-15 -2107
--4133 -4353
-5972 -2254
-2174 -8724
--1946 -2748
-8135 -5631
--3162 -4027
--4714 -5846
-5658 -1556
--1833 -9132
-4575 6910
--6583 4650
-8434 -2223
--4630 -3865
--7918 -5167
-1098 6650
--624 1404
-4741 2737
-2085 1953
--9649 1648
--1996 -4493
--4981 7666
-3724 -5194
--7811 5699
--4159 -7254
--4798 -4513
--2566 1627
--1151 1802
--7222 -2219
--8213 5456
-2413 4890
-5808 -8008
--9433 2339
-1000
-2446 -1893
-4537 -1456
-1595 -6319
-4454 -1441
--6551 3301
--1986 -6849
-8636 256
--1596 8768
--8142 2718
--2116 -3675
--1967 4341
-5909 -6586
--8020 94
--3355 -4291
-5332 5802
-7118 -1148
--6084 2395
-6632 2416
-9471 892
-9782 -1074
--1871 -7685
-8404 -1500
--2204 -4505
-8922 -2034
-6439 -2424
-8486 -5181
--393 8277
--285 3472
--64 2146
--5299 -7409
-4326 -1215
--6106 -4224
--6841 -1556
--179 5731
--8063 -1467
-2118 -7908
--5769 -6274
--7526 -4093
-6146 -3139
--1373 7569
--3197 -7926
--7660 1213
--3965 5759
--3776 -4254
--2482 1993
--1074 7218
--5613 -3757
--7852 -4384
--908 -165
--1883 -4313
--2072 1305
-447 8846
--1307 -3985
--2189 -4641
-8974 2717
-1894 -6374
--3854 2709
-3816 2585
-2441 6609
--2457 2738
-2112 5079
-4285 3722
-3511 -2487
--4102 -2072
--7484 5728
-6150 7356
-4479 2509
-1046 -2551
--4815 -6747
--2583 -2211
-4640 1437
--4295 -5211
--4204 -1163
-5778 7973
-3334 8887
--4429 3892
--9927 -936
--3547 -7356
-6439 -5597
--2594 2231
-5736 4964
-7465 -2717
-6092 833
-5656 998
-5099 -2617
-9392 2652
-3371 -2185
--2971 9378
--2052 -8100
--3764 -558
-4877 -8694
--1767 -8481
-7503 -2498
-517 9315
-5477 4657
-6730 6429
--8001 -3179
--1930 -9068
--3079 -8418
-4385 6135
--2575 9531
--3129 -5620
-1214 -9722
-617 1946
--3930 2785
-275 -4379
--9025 2717
-2024 1744
--1041 -4919
--1703 -2544
--6986 -3178
--1209 9017
--3859 7101
--5419 -8288
--600 -7015
-4044 3912
--3606 9255
-154 5410
--5439 -3597
-4875 6168
--3746 6333
--8168 -3974
-7631 -3817
--7816 -1087
-3691 5435
--5211 4215
--3590 8883
--3399 8003
-8342 1473
-2147 -5474
--2614 -2823
-3964 -8443
--1268 6685
--6227 -514
-4592 -8130
--6085 -6992
-5113 3420
-2984 6447
-2403 2597
--6866 220
-3782 -5951
-6484 -1199
--3886 2853
-4890 -3309
-2154 1055
-2773 -4953
-9008 -2275
--6670 -5749
-7313 673
--182 -5310
--2512 -3035
-6670 7177
-7776 4384
--3712 -1204
--4003 -5011
--2758 -5390
--6924 -489
--7560 -6500
--4924 4754
-2591 -6510
--8329 -4720
--1927 -6524
--8025 -3819
-6466 -431
--4113 2251
--1040 -3775
-3362 -4214
--6389 -1347
--6635 -4901
--2141 -9524
-5880 3826
-4223 3968
--6052 -452
-2272 -8354
-3914 -2368
--5045 6159
--221 5196
--2695 4499
-2759 -335
--5273 -1804
-3363 5024
--4313 -6607
--2309 -9556
-2896 6729
-4601 -7135
-6085 7320
-2284 386
--5161 4927
-4185 1823
-3640 -1894
-7945 -4027
-7221 3025
--1240 1736
-1891 -4149
-640 6490
-7129 4126
--2634 -2592
--354 -997
--5759 -6506
-7969 -796
-3329 -4626
--7678 -324
-3247 5083
--9092 -1561
-4904 -3973
-8313 1448
--4069 -6206
--170 -190
--1653 -6081
--4527 6657
-2546 -4773
--7981 5633
--7375 -5333
-5758 -1674
-3370 647
-3095 7622
-3068 8623
--6867 6505
--226 6597
-5502 5461
-6434 2939
--2501 -2540
-9059 521
--1259 703
-3401 -5699
--2667 -6585
--280 -3585
-3746 -2844
-1739 9547
-2437 -3169
--7134 5145
--3253 -8257
--6358 885
-5531 -5348
-8295 2690
-676 4642
--1760 4203
-1114 5006
-4505 1488
-4455 6283
--2271 5068
-5134 5959
-4430 -4515
-8764 -2154
-8534 -4970
--8761 -149
--3477 3703
-4758 -1868
--5331 -2293
-5102 -3867
-1476 -9039
--497 3858
--1101 -2833
--3625 1830
-3593 -2022
--6698 4569
--7191 6418
-7006 4439
-2893 -807
--499 8095
--9437 1668
-2550 7552
--1243 -9444
--7135 -6785
--2519 8701
-6058 -7447
--1884 6550
-323 -5865
--220 3888
-7049 -1036
--5850 2406
-7146 3822
--1765 -8315
-5686 -7502
--2048 -4148
--1456 -8178
-6834 -3733
--459 -4649
-6355 -4948
-4369 6058
--94 2120
-5771 -4118
--158 8689
-1252 5572
--2988 -1067
--6065 -6512
-1057 5095
-944 -5996
-9777 63
-6857 344
--3318 1881
-2342 5416
--8084 -1090
-4806 3181
-8562 -1496
-3668 -6128
--1725 1453
--8774 -2993
-9017 867
-1543 -3756
--6533 2800
--709 -6266
--3845 -8141
-8266 3373
-4944 7975
--1598 -2788
--6935 796
-6505 4078
--9467 1531
-5839 -4059
-5016 2941
--4776 -2406
-2284 2885
-1722 5267
-8250 -3454
--1347 -7759
--3389 4030
--8871 -2845
-5006 -739
-4765 1576
--7451 3573
--3745 7751
-4186 6535
--7455 -1490
-1995 9455
-2490 -6457
--1070 8478
--8298 -1885
--3927 -4533
-3906 4860
--1408 8510
-6631 -7263
-5056 -3785
-7962 -1488
--3408 -2727
--9437 2099
-1630 6512
-1700 2147
--3095 8204
-5856 6959
--5288 6341
-1836 5164
-5437 -5766
-5797 -2147
--3639 -7073
-4282 8021
-7350 6100
--8030 -4507
-5212 5566
-6659 -5903
--7324 5097
--1181 5632
--7085 1467
--7484 -3814
-1489 9172
--8100 -3779
-3649 -8799
-6019 4702
-1877 -6387
-1131 921
-8316 -141
-8767 -1253
--920 -6646
-1755 -2159
--991 4989
--6096 2095
--922 -3035
-883 -8342
-525 -2282
-3508 2194
-7400 4799
--3112 2355
-492 -3598
--8199 -309
--2056 -8742
--5978 -5198
--4322 302
--8151 -2893
--3115 652
-801 -6905
-5980 -1946
--8387 5242
--2103 8133
-6217 -5377
-8515 2150
-7205 -3933
--354 -7336
--6390 -5117
-2067 3316
-3662 -1520
--4756 -4772
-7372 -3048
--9032 -3545
-5379 -6221
-7251 5075
--5376 -1345
--2533 2121
-1608 42
-8420 -1607
-7202 1615
--4638 -2066
-3098 -6257
--5510 -4475
--2321 -9387
-3605 7692
--2927 4373
--8441 3417
-490 -8800
-89 2699
-3996 253
-2256 -7739
-1431 8334
--2671 4100
-4337 3785
-3388 -4185
-3689 -4940
-6693 -31
--632 -4256
-832 6985
--2432 -8323
--4079 -289
--7097 4314
-4863 -2388
-4030 691
-2600 1290
-701 -7649
-2638 635
-1969 6409
--2007 6374
-8535 -3136
-2865 -874
-7450 4577
-2152 7529
-3810 930
--5280 -2397
--2661 9402
-6561 -2146
-8413 4627
--4930 3660
-5556 -926
--4868 5634
-1269 6332
-606 6254
--826 3804
-6802 6749
--4811 -2634
-6335 6595
--6089 5581
-6092 -5007
-959 -8580
--7742 -3268
-4677 3190
--8594 2105
--3258 -6584
--3734 -8139
-2567 6628
--5395 -6346
-2468 8953
-5420 -3291
--5269 4197
-1830 7772
-8926 532
--3195 -5148
-600 4738
-2421 -870
-98 1251
--1650 5857
--9591 -434
-2653 5236
-6595 -6064
-3201 6279
-4813 -1404
-6460 -905
--7910 -3080
--4746 7344
--925 4225
-3948 -479
-2105 -7431
--589 9379
-4914 -5454
--5741 6713
--2936 3542
-5193 -6537
--4952 -87
--8304 4901
--8271 4933
--1696 9425
-8346 -2706
--6023 -6597
--7039 913
-1531 9528
--835 -6038
-7268 6528
-5505 -766
-9748 155
-3758 -9189
-5476 -5789
-7895 -4398
--1745 8295
--5370 7588
-4048 1334
--755 2366
-6645 -1029
-9037 2619
--9475 -800
-5239 -3500
-5104 5891
-8643 -4212
--3565 7987
--645 1203
-5635 374
--9808 -804
--2801 3317
--9852 725
--8243 -702
-7249 -5262
--1582 2016
--4321 5146
-5415 7597
--2922 3062
--4274 -8659
-3274 -4802
-8481 4858
-2906 4982
--4001 -5561
-7669 -4849
-8918 -2295
-704 -8073
--4617 -1339
-1560 -8534
-1099 7642
-7061 4923
-3427 822
-8399 -2195
--5055 -4331
-7411 -3203
--6698 3216
-3240 7442
-5282 -3009
-546 -259
--687 3926
-3346 1618
--6481 -2638
-377 -6641
-4006 -7842
-7112 -2916
-2561 -2222
--179 643
-1459 -6384
-923 878
-2015 -4703
-660 2411
-1325 -6540
--7712 3624
--7601 -5173
--560 -7320
-5613 -4625
-2629 -2644
-2695 7506
--7411 3401
--8002 3865
--6506 -7247
-7040 970
-6494 536
-6784 5912
-3630 -6975
--7068 -1174
-225 -9468
-5086 4830
--1337 6900
-3640 7993
-2313 8481
-547 -9449
--5727 6553
-5089 1534
-4241 4092
-1831 -5157
-1455 -4752
-770 -7837
-6389 6029
--7819 -5002
-2545 3202
-8820 -1754
--7009 5635
-893 -1199
-3698 -7338
--3393 3161
-3823 5297
-6811 -977
--5846 1665
--1681 9720
-4402 3666
--3192 4428
-5234 5907
--6151 1630
--6008 -6726
--3149 -6754
--2069 -9139
-2439 -6494
-107 7095
--2993 -1893
--7265 1877
-8672 -1266
--4594 3564
-2650 -3700
--5034 6067
-681 4326
--3300 -7912
--1532 8605
--1620 -5310
--4046 -1477
-551 3338
--3538 -2980
-6542 -4448
--4149 -8559
--831 -338
--6574 5448
--7072 -5062
-79 -905
-762 6730
--6655 -1563
-2857 6726
--6742 -7231
-8441 -2952
-9170 3944
-450 7833
-2930 -7898
-1145 -7417
--1524 3869
-754 -9507
--626 8502
-2160 -283
--2827 -1844
-663 -1477
--2294 4818
--6739 3304
--107 6767
--3562 4504
-563 -2297
--4293 -4954
-3909 4265
-3992 8647
-5589 -7037
-6743 -7319
-9096 300
-6163 -1524
--3760 -5148
-570 6516
-845 4065
--3311 7535
--4295 946
-6415 -1821
-3570 -2114
-6031 6234
--6553 -673
--881 -471
-3750 -2198
--7668 -1926
--8575 868
--7270 1754
-6111 1155
-1796 4691
-8813 -1955
--468 4318
-3169 5672
--5152 -1881
-3053 5016
--6399 -4478
--8907 -2474
-2309 1038
--5215 7852
--5393 4188
--4504 -8326
--5974 -6916
--5270 -3207
--6041 1241
-1826 3912
-1147 952
--1880 -3472
--1695 2881
--1094 6596
--8860 -2130
-7181 5524
-6080 -7097
-4395 7150
--6101 1917
--9131 -2971
-679 -1758
-2304 5870
-846 -3271
-4720 1246
-946 1283
-7416 641
-6198 -6803
-2373 7821
--1705 7447
--8580 -246
-5738 7835
--3873 6877
--1562 -4099
--9059 609
--11 -3643
-2220 -3939
--1555 -7537
--8243 5545
--3364 3773
-288 3453
-5594 2734
--2803 -29
--806 5384
--372 -697
-2230 -4188
-5596 3770
--4450 3619
--5514 -4561
-5722 -7883
-3188 -940
-8441 405
-7240 -2195
--515 8770
--2394 -6072
--6687 3307
--6472 -4594
-296 9725
--7878 -2298
-10 4780
--362 -8607
-3577 -1778
--1981 -2331
-5459 -4001
-3278 -6193
--7209 -5886
--4393 7404
-3426 -8560
-6969 6932
-2896 760
-7303 878
-34 8060
-5534 2855
-1745 -4303
--2884 1728
--2954 1563
--5081 -4852
-3235 -8358
-4606 -4156
-9808 883
-2409 -1520
-487 -7563
-4266 -5526
--9574 1587
-2563 -7277
--5577 -6578
-4355 -7640
--6114 -5349
-5712 -3507
-5713 -7979
--106 1594
-7898 3045
--3275 -9063
--3939 -5201
-7158 -250
--8302 -1323
--676 4332
--6510 -6829
-2282 -4481
-6507 -6847
--3365 3007
--8658 -4661
-8584 3626
--1534 7854
--7623 -2995
--3108 7990
--5563 -1887
-2177 -1080
--9100 -2102
-1561 2380
--8716 -2181
--897 9303
-1952 -4636
--2240 617
--3495 -578
--8649 -3636
-3807 5103
-4307 -6126
--5813 -4221
--1842 -6644
--3738 7867
--6947 -1842
--4444 7588
-797 5374
-4802 -904
--7195 -2479
--2759 8655
--9323 1078
--2521 -5736
--2611 6223
--7303 -3256
--8207 -2195
-4766 4037
-396 5171
-7537 1961
-5344 -4878
-1576 3981
--1744 -4376
-2560 -1624
--2764 5813
--2063 6459
--7196 179
--6007 7641
-7115 -4053
--5169 -8528
--1877 1995
--4363 -7364
--5052 4873
--1548 5096
-5406 8015
--2768 6707
-6222 7809
--1800 -77
--5739 -6869
-7581 -65
--7299 -136
-6477 1937
-2955 6683
-7057 6141
--1 969
--790 7601
--4784 -2191
-2961 -9369
-2869 -5407
-1783 -937
--4178 416
-1106 1581
--833 932
-7095 1658
-5829 -7835
--1577 -8092
--5900 -3809
--649 -6993
--4797 -3890
--8022 -3297
--6070 940
--3844 8293
--1819 9222
-292 -9448
--3781 4529
-1274 5416
-2032 806
--341 3529
-8969 847
--971 6883
-7243 6057
-6021 -2082
--1816 1686
-3782 -7922
--9469 -412
--4096 9084
--3963 -1488
--7169 2637
--6074 5010
-8971 4158
-5785 -8001
--6581 2779
--8004 -237
--7663 3125
-4263 4806
--9010 3957
--1652 -9810
-3603 -362
-3888 -5398
-2915 1164
--7889 -3366
--2673 -639
--3499 7685
--6388 -1905
-560 -4390
--2590 7281
--5220 -5238
--1236 3170
--5597 -1930
--4538 -827
-2735 -3134
-5923 -2031
--3541 -3673
-2591 1624
--6016 -2171
--5803 -5033
-3837 7675
-1165 6740
-4461 -3414
-2719 8413
-84 3085
--1074 -8869
--5464 6901
-9736 -1895
-2967 -4882
--34 -9396
-3872 -2337
-2045 6246
--211 -5543
--6931 -2434
-9429 1421
--995 -3687
-1200 -9686
-3506 -9206
--4588 -6665
-135 -7458
--227 -8800
-4431 -3037
--2962 8472
--1622 -986
-5862 5154
-5242 -8154
-788 -9304
-4436 1639
--1279 4340
-9660 -2072
-7841 -927
-4353 8295
--5336 -7678
--4206 -3312
--2780 4792
-4141 -8529
--4989 5266
--2261 3199
--3227 4350
--4113 5133
-6614 2239
-2184 7367
-1800 6819
--1275 2216
--3092 -8220
--376 -7573
--9640 -2098
--6482 -5477
-4413 -2893
-5754 -815
-5446 -7906
--5146 50
-2638 -4365
--1696 -4060
--765 5652
-2320 7760
--4924 2169
-1426 7081
-4805 -6835
-1725 -4900
-5983 -4799
--5556 4130
--1905 -369
--5994 7406
--1935 7484
-614 -5651
--5573 3585
--2999 -2781
--7340 -1039
-253 -672
--3793 -5976
-2635 -4748
--1908 -4276
-2287 3758
-2336 9631
--1075 2056
-1592 -8816
-2237 -6278
-2301 -8751
-9146 2433
--2328 -6171
--3211 -4332
--913 -6361
-3307 -5206
--5708 854
--2804 -7129
--5076 -313
-994 1814
-341 8906
--981 3138
-5824 -6123
--7871 1871
-4691 -4405
-5787 -2047
-1582 -3845
-2334 -8309
--6244 -2126
-7947 62
--4243 -8381
-9861 -1365
-3083 4507
-7330 -6741
-4543 -4504
-6574 810
-1541 2757
-4326 -1967
--6948 6357
--5029 5113
--1369 -9007
-5511 5119
-3879 8477
-712 -4265
--1457 6792
-3940 -9066
-9487 -1700
-1000
--6298 4839
--6182 5452
-5702 -5203
--4567 -8030
-1315 -6158
-2827 -8125
-164 5520
-5707 4334
-5710 1471
-3310 -5034
-7012 1531
--8661 442
--5513 1617
-1685 1603
-2814 -5070
--846 -9092
--1138 7936
-1646 5567
--4888 -6642
-592 2766
-7578 1562
--3943 4761
-7760 5090
-6705 1785
--5309 -3314
-2438 7812
-8966 2731
-9064 -218
--8084 4389
--8937 747
--1670 8132
--8743 -40
--1959 1344
-2350 3846
--4082 3918
--1665 333
--5632 -8205
-6652 -4594
--3701 -5714
--8764 -2403
--4414 -3237
-459 -2047
-6546 -5499
-6071 -1841
--8829 3510
-1270 6299
--2253 -8980
--2956 -2375
-49 -698
--5026 7599
--4796 1767
--1330 -8620
-3174 712
--2569 2059
-4382 3236
--2345 -4026
-5727 -4821
-1253 2892
-3992 152
--5088 8235
-4232 6807
-469 5928
-5643 3566
-4243 -4664
-6288 3084
-786 41
--124 -8330
--8568 -906
--7827 3926
-3287 8885
--1748 -1369
-1546 1536
-3411 -9112
--1986 3853
-3848 -4843
--2566 -4138
--6246 3759
--6497 -2720
--3829 2281
-2189 -6453
-1712 -1666
--539 4746
--3647 7991
-7215 -5964
--6667 5318
--333 4788
--4930 -6424
--520 9266
--3442 4257
--1840 -3375
--3566 -8592
--883 3045
--1138 -7358
-4933 -8618
--4291 6463
--3690 294
--2410 -9656
-7664 1143
--3394 -8783
-6110 -2669
-8121 -5273
--4810 -1891
-3464 8107
-6837 -6474
-7851 3759
-7812 -5039
--4846 2678
--5837 2171
-1956 -6194
-1073 -8535
--931 4220
--6711 -6516
-5130 -461
-3667 3997
-8186 1304
--659 -1588
-4214 -1870
-26 -4706
--226 -965
-4657 5648
--3297 -3757
-2689 -8597
-7686 6093
-268 8702
--5228 4901
-5480 -7609
-4872 -6549
-1877 4213
--9052 1674
--1904 5660
--8405 -3753
-5684 6261
--324 -1809
--4273 4133
--987 551
-3175 2032
-8643 -2696
--5642 1858
-2187 -4181
-1113 -9035
-4052 -7126
--6275 6063
--3803 -3812
--9143 -1018
-2925 893
--6778 -6898
--3667 521
--7524 -5566
-2713 -5886
-6619 -2130
--5218 -5775
-4743 -1949
--788 -4206
--1283 2631
-3858 -3716
-1518 -7144
--3321 -8418
--381 -692
-1612 -3310
--3556 8437
-8798 1033
-2834 -7761
--5465 -6127
--6807 -2783
--1575 -7956
--6417 -688
-5163 538
-3634 -6270
-1529 684
-2166 -8554
-2000 7820
-4724 -956
--8639 3217
-137 6530
-3848 -3909
-1230 -3901
--112 9844
--524 8283
-7181 1314
-4498 -4115
-2439 -5843
-6423 6089
-405 7821
--3529 -5986
-2750 1545
-2750 3140
-5454 655
--6699 3037
-5057 3564
-3531 8517
--6516 -4376
-3121 -4914
--1306 -5731
-8480 -732
--6452 6995
--2782 -1168
-2923 -7105
--3055 5528
--7215 -6732
-1673 -2009
--7456 -4324
--7755 1049
-5683 7862
-2051 4050
-3905 -2016
-9270 3489
--1604 1212
-3146 3003
-3790 -1233
-6614 -3446
--857 948
-1391 -6440
--4559 4398
-5459 1321
--4439 -1603
--2309 2327
--4991 4909
-4209 -3980
--454 -6771
--5917 8006
--5422 -4697
--4145 3833
--440 -9091
--4712 -7571
--5525 1940
--8784 -2356
--5391 5280
--724 5727
--7263 4726
--3276 4372
-5339 -5150
--620 2107
-5500 -7581
-254 -9791
-3076 -3480
--872 781
--1623 6295
-671 -1704
-372 -3133
--3819 1556
--8145 -2080
--3936 4392
-5022 5986
--402 -7424
--2025 -3303
-5021 -3358
-4754 -8774
--2472 5207
-4561 517
--2642 3620
--4011 1001
-5500 -5519
--5757 924
-6575 5655
-4552 -2413
--5014 -6544
-2534 6613
-3848 -980
-1818 -192
-1180 2535
-7045 99
-5568 1521
--5188 -4193
-4025 -4251
--1838 -5925
-1834 -2078
--4375 -2537
--4336 739
--2789 -19
--2618 -7881
-6013 3105
-39 -1541
--6745 4382
-404 1312
-871 -360
--1300 -7054
-5474 -1788
-5976 4104
-2569 1383
--1240 -9565
-1585 6307
-9031 -3192
--2264 4270
-3801 -4767
-3499 -79
-6555 1447
-7225 439
-2386 -2651
-2045 -9647
-3622 -5638
--396 19
--9319 3490
--2729 1768
-6105 -7172
-7278 -1923
--2662 -8854
--4892 4831
--6000 -3540
-7857 -6178
--1273 6174
--2865 -1260
-3097 1549
-1480 3375
--2183 1345
-7430 -514
-7646 1254
--8944 -1326
-5047 -1325
--2122 -4791
-6191 7190
-6333 880
-2932 -2496
--2327 -6774
--1908 -2766
--9565 -263
--3273 4377
-4736 -8273
--7983 -614
-2877 -727
-3975 7897
-2349 3318
-1719 -3188
--7651 -2937
-9449 1705
-462 -1941
-3096 2552
-7841 -4195
--963 7186
-2572 5782
-2330 9587
--4245 3087
--8251 3063
-100 -3148
-758 1085
--9320 1469
--2920 -5916
-1373 678
-715 -657
--2379 -2095
--3521 -1331
-2757 1356
-6858 -1447
--6855 -1192
-787 -939
-4284 -2631
--763 -3958
-5705 7164
-7321 -3907
--492 3378
-2923 6063
-3942 -3429
-2575 -3704
--4095 -1111
--6848 -4310
-8157 172
-5278 -5447
--4914 7020
-44 2691
-90 8600
--6897 1806
-6699 -2377
--367 -2650
--2850 -7759
-3612 -1294
-7137 3221
-5385 4890
-8018 2915
--515 -9648
--7788 765
-5219 4707
--1333 -3422
-2456 -2169
--442 -8438
--1854 -8844
--8693 -3736
--4241 1053
-1041 4882
-3932 -2810
-7172 3336
--6595 654
--3883 445
-4630 -722
-8645 907
-4609 1922
--6141 -2561
--6618 7359
--6795 5958
-1179 -5840
-6401 -6941
-3227 -2845
--3249 3004
-5085 -3170
--139 7452
--1812 -4094
--5364 -7935
--3763 973
-5577 -2568
-3825 766
-1699 7934
--2233 -5330
--2392 9709
-1743 534
--2408 -798
--2515 4731
--4980 3214
--92 4103
--8469 902
--778 2793
--250 -3159
-7558 -2572
-5003 -6407
--6184 6579
--7525 -2097
-9091 -1650
-2086 7643
-4298 -8726
-3790 2077
-2312 27
--5097 -5405
--3258 8229
--864 -4270
-2966 -5201
-8195 3543
--2098 -8897
-2017 1371
-1040 -1110
--5758 8090
--2126 -21
--9392 -1495
--2615 -444
-4340 7113
-1627 -6433
-7630 -5901
-8091 2308
-9666 112
-5092 715
--3474 -7029
-5214 3395
-5772 -514
--8833 615
--2694 6101
-614 4674
--798 6431
--2055 -7102
--3680 7717
-9163 2508
-2372 1626
-6378 6468
--2673 3001
--1439 -7076
-812 -1002
--2377 7498
-1044 7713
-7100 -1130
--3502 976
-3859 -954
--110 2807
--8246 3414
-31 29
--6001 -1900
--4106 8727
-6281 -5181
--3640 222
-9479 2336
-5753 -6853
-1420 -7992
-1792 5854
-2639 7778
--7376 4899
-8000 3684
-3479 -1009
--3410 6959
--6868 -6029
-1827 -2869
-5975 7511
-3402 4942
--2539 -3691
-8125 1641
--6774 2134
-6000 2386
-2236 678
-8088 252
-3122 -9354
--2996 -8102
-3312 -6431
--9448 -630
--6398 -4805
--7711 1180
-1068 -4948
-6437 -5630
-5494 4040
--7008 -2693
--1296 -573
-5408 -6008
--4593 -5679
--3136 3126
-4677 -5187
--9999 29
-2273 -7859
--4669 6891
--5262 272
--2572 8908
--2292 7586
-2072 7241
-4185 3892
--4136 1511
-1074 -3514
--4607 -3007
-5869 3579
--2572 -4400
-6119 -5383
-2609 -2992
-2241 -2343
--1330 -5560
--160 9151
-2494 -3459
--3464 -1878
--7146 -3367
-2485 5588
-4321 -6599
-2204 2500
-3683 3817
-5016 -6009
--2193 -5302
-9159 -3245
-7417 4876
-1148 -4387
--319 -7995
-5103 4379
--1074 546
--5242 7662
--950 -6910
-4688 -7989
-7503 5159
-4919 -2
--1093 6587
-6432 -732
--3870 31
--3935 5405
-1195 2262
-6354 -3090
-4264 -7973
-2279 3323
--1269 216
-6084 2144
--2565 8799
-255 8038
-2055 6969
-5370 6767
--3365 8042
--8973 4402
-3361 2185
-8062 -2772
--982 9051
--901 5246
--437 -2704
--1754 5850
-1053 -2059
--1756 -9694
-9217 -3508
--8624 -4515
-1799 5053
--2076 -8892
--2042 -3905
-8062 467
--1384 6571
--1653 7099
-2544 -2416
-2030 -7285
--7663 1866
-6672 7367
--340 -2058
--5926 5948
-3066 -7086
-4361 -5761
--3206 4297
-6990 877
-3513 3057
--1708 -3289
--9086 3691
--2287 9458
-6003 6027
-6039 5417
--7743 449
--3544 -2127
--6899 -5387
-6992 -5428
--1767 -9035
--1557 2242
--2476 3497
-4791 6764
--5103 -2568
--5770 7793
-2754 -2350
-4241 -6811
--4762 4176
-9647 2011
--5310 -7102
--3819 7608
-4640 -5834
-2440 -1421
-5424 -1447
--2245 -5749
--1031 -1562
-6224 -3402
-176 -9669
-2271 5399
-1696 4295
-2780 8489
-3916 3428
-6082 -3839
-7044 -6246
--4731 -4351
--273 6721
--3686 868
--4954 4659
--2252 5125
--580 -2548
-8081 -579
--2148 -241
-3755 447
--4302 -4728
-4688 2229
-2329 1984
-1160 -8397
-7259 5200
--3485 -3905
--5129 4670
--7533 -1263
-1913 7543
--6379 1164
-5722 -4221
-7814 -648
--9474 -1739
-5673 6370
-9076 -1071
-1496 2234
-4567 8692
--7424 4022
--1424 1056
--4563 -7524
--4672 6292
-1484 162
--433 -3283
--9354 3073
--3037 -1367
-1798 -9475
--7077 -4762
-1202 -1353
-4663 -3544
--976 -7045
-5799 -2442
--5241 -4184
--5371 -6887
-384 9630
--7417 -1870
--6131 -6618
-5495 1278
-8461 2115
--2857 5577
-4304 4192
--4502 8635
--1912 -9467
--1543 6182
--8019 -3177
--4299 1558
-4883 -4433
-1601 -2277
--2018 6227
-3623 -3303
-3216 -8002
--3773 7940
--1363 310
-469 -8038
-2173 9565
-6360 -2250
-1960 9643
-7184 1321
--6007 7786
-5700 4965
--5958 1913
--129 1121
--2583 -7995
--1995 -7178
--9598 2479
--4137 8179
--5267 -3909
--7629 -2401
-6605 675
--1912 7850
--1585 895
-3113 -6439
-5309 7551
--6690 -4908
-4229 -8845
-1059 -7471
-7036 -6185
--2567 985
-2520 2792
-5801 3732
--7693 1364
--2280 -1620
-1256 -450
-6498 -1599
--7471 3950
-8019 5329
--1589 5669
--6819 -429
--1636 -2571
--1239 -2019
-359 -8191
--1671 -6881
-8566 -3633
-2363 -5740
--2646 -5416
-368 -9236
-2823 -7750
-9215 -2506
--5142 4554
-4338 77
--7018 -5342
-73 4331
--5148 -1313
-5812 6922
--8272 -3970
-5040 -7860
--2185 2028
--1776 5782
-2621 -2725
-9254 1286
--1254 -8146
--3544 3689
--7847 5392
--1890 -4224
-383 6050
--4484 -2898
-3993 -6247
-4724 -5646
--4340 1030
--3076 6254
-5127 -2385
-7494 -598
-3453 3589
--30 -6771
--56 -7210
--7920 -2828
--5126 8485
-8090 4091
-2073 5351
-5676 311
-5715 -2949
-5436 -5710
-1549 -3270
--4005 -8788
--7053 2882
-3167 -4239
-6357 -4671
--8337 5061
-1578 4886
-5769 6663
--1188 -9352
-5313 5307
-8215 -5152
--1872 1379
-1625 -9832
-1974 -3513
-2188 3727
-8586 -3064
--5373 4033
--7511 3732
--5068 -7065
--9320 3166
--3421 -7120
-7452 -259
--5559 6222
--7748 -665
-5236 3057
--1205 1542
--3309 1646
--223 5174
--760 201
--8015 348
-8861 -4010
-9214 3148
--8709 3380
-3277 6641
--995 4234
-5301 -6371
-1552 -9626
-2068 3106
-4206 -6556
-5066 -4161
--3479 2853
-7148 -5568
-6689 -283
-7191 2208
-6700 5338
--689 -1614
--6531 1338
--735 1004
--2228 -8089
-1739 2561
-4015 -2247
-2565 -2029
-5547 -5012
-143 7769
--1889 2523
-1162 -7722
-3984 7958
--4532 6595
--2998 439
--2293 4210
--7912 -2832
-6610 6963
--1460 4283
-4844 5416
-223 9171
-6973 -1935
--8028 -5359
--1119 -4132
--8717 1912
--7151 4137
-5542 -5940
-3574 -2139
--5317 8207
--528 6421
-9365 2219
--3110 -9250
--2816 2526
-7922 5115
--5082 -1680
--3721 -538
-5611 4298
-3451 1114
-7647 3584
-787 -5286
-2696 -2498
--4903 -5745
--2623 -9627
-4101 -3223
-5242 -5050
-8968 3021
--6710 1789
-4564 -4853
--5 404
--5467 -2
-1865 3675
-6798 -3887
-6239 -4638
--1191 3844
--200 8086
--7055 -3489
--2472 8013
-3581 2920
-136 -1063
-6436 1302
--4233 2242
-2498 -8261
-6121 7060
--7247 -5073
-8088 335
--4803 7739
-1618 7653
-9323 -21
--8587 -798
-411 -9614
-7889 -461
--7030 959
--670 -7015
-7116 -6653
-6207 4976
-20 4119
-6894 -138
--2221 -7730
-7226 567
-819 -6600
--1031 -3252
-2599 2668
--5452 -3858
--2557 1723
--6190 -76
-323 -7094
--3245 8283
-681 -718
-2995 2362
-9753 112
--5136 -4948
--3351 5030
--2371 8781
--5850 5880
-6137 -2549
-5272 -4135
-6109 6327
-2741 -2323
--2689 8074
-6897 -3655
-3984 5428
-1528 7615
--7474 1951
-1855 -5916
--5385 6771
--318 1239
--5976 -5232
--8407 -3279
--1972 -2895
-3925 -8261
-6168 2291
-2596 1420
-3057 -5325
-2674 4681
--3081 -4326
-3932 2396
--2239 -7074
-4146 -2902
-596 5441
--4410 4234
--6944 -430
-3616 -1716
-8200 3295
--2376 9246
--2599 7459
--7854 816
--7138 -5617
-2192 8192
--2894 7382
--5314 -7769
--2845 1593
-7948 -4196
-579 4893
-5230 7108
-7551 2047
-4066 5580
-1435 -3817
-1142 -7777
--3544 3277
--3377 -339
-5327 7565
-8849 -2376
--594 5985
--7938 5545
--2985 -4344
--5561 -1629
-2344 1454
--6661 5377
--1815 8285
--5503 4791
-6977 6045
-4197 -4972
--4125 -5728
-5596 7926
--47 4457
--3861 7959
-2554 -2475
--8819 3039
--2522 -9
--2674 4887
--1155 -1745
-1774 3367
--324 -7688
-6299 -757
-6641 -5756
--5989 5948
--5276 -1791
--3951 -2412
--3265 -1412
-5374 -1000
--3360 -5830
--711 6726
-1721 -7715
--809 8705
-7050 2507
-1150 4605
-6375 -4722
-7669 4592
-293 -9485
--773 -7403
--2381 -1847
--3350 -8686
--4690 -4552
--1547 3243
-4818 7744
--4781 -5731
-1201 -5896
-2206 2714
-8156 -1592
-8982 4391
-3336 -8277
-6815 3775
--6887 -231
-4858 -8670
-8910 -977
-7143 -3167
--2098 4857
-1147 6792
--3519 -1342
-4562 -8338
--6764 2659
-6050 -606
-5946 -8026
-1940 691
--9086 3536
--8009 -5753
-1000
-714 6097
--6205 1170
-5136 -2879
--8481 -3441
--7402 1365
-570 -1976
--3608 -1592
--8695 2012
-1470 -300
--2507 -6103
--13 8442
-4311 2863
-3863 4866
-4954 -465
-4085 4130
-1046 3403
-6046 -1572
--206 -1388
--8144 2167
--4813 1171
-3798 2227
--656 -1966
--7631 -2504
--4109 8450
-6925 -2288
-7140 1531
-8254 1998
--1010 2201
--4807 1113
--5535 -6369
-1810 -4223
--7122 5502
-4243 -5515
-6145 -4777
--8096 3291
--889 6130
--4918 803
-907 -8617
--1608 3502
-5494 4272
-2915 4556
--9372 2315
--14 -2161
-7087 1069
-7626 -266
-8436 -3222
--8274 4881
--2491 3083
--6385 28
-5304 -6549
--613 -1585
--4589 -215
-1254 -5681
-2498 -8318
--9211 -2636
-3012 3396
--7227 -3636
-4620 -6938
-1046 -2631
-3024 -8631
--513 4542
-6546 -701
-8563 1502
-5207 -2302
-6308 3259
-5944 1910
--3920 6736
-6964 -536
-4356 8873
--7740 -2826
-5876 517
--1505 -950
--1902 -6464
--6482 -6078
-6659 -2657
--892 7906
--2680 6638
-2004 -1615
--8878 2938
-3710 -3127
-2412 -7627
--1796 -824
-2949 7061
--6765 -659
--177 3518
--6698 -4132
--2428 2648
-9842 567
-467 3012
--3899 206
-5544 -5236
-7702 -3695
-296 -5447
--3650 8080
-9386 -124
--3469 -7025
-6128 5061
--598 -6956
--62 -3576
-3632 -1105
-6466 1141
--1947 -4391
--5530 -7808
-1524 2999
-6930 -3293
--8566 1195
--5005 -339
-5935 6793
--9927 -221
--5248 -1913
-1965 -9241
-1952 -2876
--7478 -5384
--1387 7827
-2807 -5652
-5046 -5770
--3703 -527
-7426 -5604
-8033 2919
-3463 -3711
--9658 672
-3079 -3182
-1629 -8138
--6662 681
--2159 4657
-1551 9406
-9275 -2046
-5258 -4160
--7685 -2528
-5877 5471
-164 -8122
-8307 -4861
--2775 -9221
-2471 2539
-7078 1795
-9371 19
--5654 -816
-1430 9736
--7487 1608
--1672 -3109
--5280 -5094
--3009 -8739
--1952 1991
--7615 -5114
--92 -2667
--1006 -6342
--6936 4365
-6022 3572
--2719 8828
--702 6251
--3446 -3431
--1157 -2267
-4926 3812
--713 -9331
--4315 -5147
-6219 1780
--2617 855
-8165 4987
-3862 -1677
--496 8152
--6627 6921
--5636 -4051
-7338 4584
-5475 1620
-9267 -3092
--8766 1720
-9659 205
-5370 8402
-8311 -2623
--1429 -3355
-3 -4401
--1986 -4524
-30 2388
-8419 3153
-8379 4300
-368 -976
--584 4138
-9952 -243
-1281 3508
--7878 -4538
--1647 6391
-1236 -725
--3303 -776
-8675 805
--5580 -6855
-2072 -9250
--6711 -5565
--142 5556
-4217 4168
--927 5137
-7578 1072
--555 -4349
-2178 5150
--1131 -6425
-7658 4474
-1533 4926
-696 3521
-5357 -7421
--1208 1554
--632 -3090
--7263 5567
--5164 -4474
-966 -4752
--1120 -3284
-5417 3912
-7199 -3293
--9318 -3190
-7744 -3789
-5049 7228
--9063 -1434
--4836 -2591
-8980 2954
--6680 1852
--8710 -1017
-7847 5859
-8429 -3652
-6990 -642
--3697 -8398
-1055 8674
--6886 6036
--209 3800
-9080 -1120
-9152 3154
--1671 -9395
--6715 -3340
-5498 3781
--4534 6338
-704 -7162
--3949 -5404
--4436 2810
-4112 4059
--4622 916
-7839 -3039
-1571 2464
-5721 1007
--1411 -6786
--5808 2576
-8617 -250
--2078 4458
-7632 -1786
-5007 7323
-4517 5347
-5799 -3338
-4362 -8461
--2736 2566
-7930 707
--765 5635
-1905 8174
--7382 -5129
--784 -1303
--4521 -5443
--3184 -6028
-3536 4687
-1770 -4719
--6399 -2105
--4797 -1160
-4567 -5093
-240 -8307
-5696 -4485
-6306 -2602
-990 7618
-228 -6348
--6396 6679
--7164 5342
--2875 4694
--5123 -4211
-7752 -5004
--5142 99
-6177 5102
--5733 4664
--725 -9893
-2226 -8203
-1948 -4824
-1427 -1160
-5321 -3452
--7809 3968
-6223 6903
-1700 -4610
-7596 -588
--7908 5761
-2725 629
-1123 -6253
-4680 6987
-4905 1473
--354 7866
--9394 -572
-4791 6154
--3437 6719
-5992 3891
--4890 8461
--5705 1699
-2359 9166
--112 -6192
--7092 -6524
-5867 -3347
-1897 2701
--6175 1661
--7999 1451
-7252 6035
--7902 -3791
--6768 -5690
-2296 -1244
--3295 -6359
-5758 -6184
-2658 2136
--4473 662
-906 -1209
-5317 -2565
--8566 3162
-4989 4135
--2289 6344
-3456 4876
-5918 798
-3622 -158
-564 -3486
-1385 -2557
-5229 -6497
--5116 5025
--2413 8238
--7145 -3492
--2477 2230
--8396 4598
--984 -3511
-1023 -7016
--4980 7348
-1105 2141
-4993 4783
--2115 1265
-651 2049
-5396 5821
-156 9009
--1665 984
-1624 6168
-3106 -1039
-1225 8106
-2304 -3908
-3106 8116
-4099 6678
-8014 -3887
--929 -1868
-2572 -6092
--7574 4865
-679 -9153
--734 6618
--996 -5881
--4823 -5435
--2861 -9445
--2380 2888
-8296 2160
--4764 6160
-3417 4499
--3735 7270
-1613 -1225
-7883 -4361
-6674 827
-3244 -2819
-2889 745
--4694 -2571
--6852 -1044
-9265 3349
--9611 -580
--1390 -6219
--3420 4122
--3591 -6601
--1414 -1954
-5754 6688
--5113 2323
--2444 -2288
--8495 -2821
-8507 -3168
--2835 2521
--3026 985
--2416 -6402
--1760 9473
-8708 -798
--8168 -4913
--4407 4747
-1881 728
--2378 -5326
--4810 1076
-7294 -1397
--5055 5447
--441 -3679
--6403 6981
--9743 2181
-6730 -3812
-7566 512
-5870 3676
--5701 6812
-3817 -3477
--6711 -6682
--5986 7260
-3516 -3680
--6260 -5319
-7392 6103
-7527 -2211
--4284 -8479
-4632 -8574
-4194 -5197
-2020 6874
-595 1853
--8537 3555
-672 -7055
--1073 5118
-7731 742
-537 -4251
-495 -4036
-3917 6775
--6951 1878
--2784 -1264
-318 -1557
--9710 1779
-7955 -1349
--983 -12
--4170 8007
-9747 1723
--5794 -4588
--3587 1090
-6474 2096
--310 -185
-6070 -7152
-4184 4592
--7195 -4103
--2739 5901
-74 -8833
-7580 3624
--2009 -3510
--5609 7737
--5430 1784
--1374 5360
-2602 1495
--4127 -3215
-2655 -6450
--6349 4389
--2558 1540
-7355 -6548
-2302 7349
-5192 20
-3761 -5641
--3235 -4546
-3622 9215
-1832 -6352
-4652 827
-6834 659
-7053 3498
-1095 2967
--1468 -1615
-4412 -8657
-1435 4982
-1634 1611
--5761 4342
-2942 9399
--1135 332
-3768 -1835
--4741 958
-5826 -7986
-4037 3803
-4541 -1848
--355 -7877
--199 -5885
--6710 -252
-7738 -3252
-834 -5447
--3115 -7749
-6535 -5000
--4889 3028
--5332 6872
-4499 -966
--3317 3661
--4297 -1643
-1219 -6157
-1746 9083
-5122 2501
--2395 -9630
--7958 3607
-6445 5279
-6191 -5615
--9220 793
--8087 8
-1756 -4438
-6754 -6301
--1171 6412
--6159 2298
--4294 -8434
-6500 1993
--705 9077
-2454 8896
--4413 -5144
-6593 -3230
-8758 -4823
-2185 -6451
--3807 -1563
--2165 3025
-938 -3884
--1255 2734
-850 -3123
--6697 -1873
-3725 3959
-5894 7606
-3192 5602
--7180 -3213
--127 -5861
-5645 -6405
--5801 4734
--6371 -3213
--3932 -5267
--5545 6658
-442 6145
-89 -8336
-9663 1561
--3163 3691
-6519 7374
-1456 -6796
-7109 2495
-4021 -1180
--320 2290
--691 3495
-4248 792
--8386 -3177
-298 690
-9131 942
--5798 -6583
--6834 1592
-457 -7618
--6538 -4554
-6093 5553
--2069 7500
--7838 554
-4100 -2674
--1189 -8952
--2523 -1110
-2665 5057
--1266 -8570
-2870 -473
-3448 -4674
-4509 4833
--8260 414
--7152 3461
--1898 -2103
--2307 -5110
-5286 -7208
-6207 -3322
-386 3720
-7430 -4067
-2971 2879
--2768 -7934
--8067 3644
--2247 8065
--3082 427
-2935 -8590
--325 -5858
-3728 9020
--1427 2765
-2751 2342
--5222 7149
--8485 178
--1630 -6588
-7045 5798
--5172 -2493
-5725 -3825
-1792 9685
--3410 3258
-9883 889
--7124 -905
--6963 -777
-7056 -1018
--5929 190
--2481 -3347
-6191 2759
--5479 -3239
--4184 5408
--6936 -3437
-7973 1120
-5725 -2320
--4149 3042
--1776 -3123
--9457 -364
--6711 -2584
--3295 1704
-2642 3581
--9898 429
--2183 5623
--5209 7905
-1287 -6678
--8425 4887
--8137 -1555
-1301 9665
--7820 1188
--2397 -3076
-3454 8650
-491 7154
-8264 -4183
-4674 -5543
--3794 -3695
--2798 -1172
-510 -6498
-2270 8544
--3925 6
--1228 2633
-3107 -9148
--2468 -7990
-4298 -1300
--2882 4706
--5621 4409
--1991 -2950
--8484 251
--8239 4649
-312 -1318
-7350 2320
-6524 -201
--8334 -2319
-9389 1596
-3067 -1874
-863 -3884
--6727 -5400
--8552 -2210
-6709 -1147
-4568 7014
-5971 -2317
-2741 1804
--3216 -319
-3864 6899
-1745 -2877
--828 -9698
-1560 6416
--5792 352
-4944 -7825
--3814 -7876
-8339 -3931
--74 -3919
--5187 -6897
-5147 8075
--4234 -3016
-4122 -3411
--3821 9105
--7087 228
-8099 5335
--5546 -5564
--1845 -3034
--808 -6726
-7948 -1234
--6429 -7263
-7069 682
--2604 3860
-5123 -1642
-4672 8655
-3477 -928
--8489 2138
--5329 1208
--7305 891
-8914 1501
-5004 -2840
-1768 4071
--8127 -5584
-1288 1421
-3439 -4042
-639 -7142
-5142 -2798
-3951 7426
--7178 -3072
--3608 6731
-4703 5951
-5280 2059
-2298 -4397
-2059 -8261
-1117 -5166
-1291 6694
-7075 -6503
--1953 -9073
--228 -6839
--9107 -2148
-2008 5123
-8804 605
--3748 7600
-9556 -1790
-4808 6939
-6824 3629
-3663 -1487
--2164 -1059
--8067 4867
--639 8829
--81 -9575
-2452 5218
--1254 -9458
-4037 5369
-7375 -1052
-3889 8736
--1951 1994
-1066 -1994
--4820 2225
--2917 -2083
--851 -3197
-2988 -6333
--1118 -3702
-9047 -3490
--197 608
--975 3431
-149 -1957
-5151 -5199
--5855 -3546
--6932 -4064
--5525 -205
--2326 -168
-3501 8685
-4734 -7830
--1129 7010
-826 -4812
-123 -5031
--576 2492
--2827 4571
-4691 2675
--8292 -474
-1812 -3301
-8191 -5041
--1701 -5253
--3569 -5987
-4397 -8119
-1203 -192
-1056 9092
--6288 5692
-2118 1858
-2830 7977
--3892 1752
-6649 -2845
-2265 -4187
--2405 -4807
-4830 7629
--412 -5606
--8205 2405
-5237 -733
--2050 -4201
--8405 2175
--6074 4353
--1292 -8713
--701 -8400
--2626 3535
-8958 -2818
--6569 4703
--940 5846
--1576 4622
--6245 -5925
--5418 -6721
--7896 -5918
-6932 5233
--4849 5660
--4041 3154
-2131 -8710
-1928 -951
-4836 6594
-5438 7023
--4973 -134
-1897 -5367
-7661 3856
-4151 -3403
--7889 5082
--309 5901
-5091 7534
-5454 -567
-3980 1310
--4611 -662
-7761 -853
-5787 5321
--395 167
--8633 3184
-4427 -4774
--292 9645
--6890 7061
-6251 545
-1851 -5350
--3115 -3102
--7416 2236
--9274 788
--139 2935
--715 -1512
--3342 -8115
-5982 -4174
--6292 -5879
--6952 -5018
-5395 2305
-6278 -2673
--2233 5135
-2185 -3641
-9009 4289
-7818 1454
--9250 -83
-5503 7883
-1887 -6127
--1511 -7830
--3934 -5464
-4308 4272
--6416 -3092
-385 3842
-3540 -5064
-5794 2043
-8326 -3147
--7211 -814
--7163 -4872
--8593 -4
--2368 -159
--7582 189
--5388 8229
-1826 8844
--4640 7681
--7631 757
-4723 -19
-6390 -5239
--316 1170
-2563 -6020
-3106 -2719
--5362 -6927
-4096 3620
--7647 4408
-1165 3058
--7980 -1829
--94 -3835
--788 6754
-4713 -2906
-476 2898
--8037 -2856
-1869 8645
--126 6571
--7323 -2311
--2397 -7790
-6719 2639
--2825 -3924
--2823 -6971
-1187 2180
--4430 -5101
-7001 -5469
--6121 -5880
--321 5774
-5177 -1970
--547 6163
-1454 2310
--3328 -3842
-6592 -7294
--293 -373
--8862 -2303
--7814 -3189
-4061 4587
-246 -7841
--3259 8534
--2870 7777
-7086 3296
--4580 -5095
--4000 -57
-1498 559
--2836 983
-7855 -1567
-5971 1405
--1408 -6360
--3050 1637
--8011 -3456
--8227 -635
-750 -7564
-1382 6540
-2451 -132
--6180 -2168
--8568 -176
--2967 8473
-6014 -4654
--2671 3564
-6796 -6466
--3328 -2490
-1902 2971
--2918 -9070
--757 8698
--1129 825
-8188 2078
-327 -4248
--9000 -1239
-1602 2932
--776 164
-6353 -470
--1996 8810
-5905 -5009
-908 9623
-597 -4630
-3112 2827
--7987 5178
--4521 2493
-4206 -3212
-4127 -6901
--1787 -7464
--8445 632
--6758 -3348
--7137 -3077
-8042 4913
--3239 4232
-1438 -4520
--1086 -3439
-5040 2416
--8915 2765
--1054 -3037
-2991 -1096
--6449 -3656
-1921 -3571
--1919 3133
--7423 5456
--1241 -2258
-5632 5900
-1037 -7100
-6057 47
--9800 -973
-4768 -974
--217 -200
--3769 7620
-5342 -7940
--6803 -1521
--1610 -869
-9303 -3517
--3533 8527
--3724 7739
--4022 2479
-7299 2430
--2207 -2369
--9504 -2950
-4623 205
-5468 -2321
-6728 -3935
--450 -7586
-3504 7283
--5706 -2652
-1557 -8958
--7026 1933
-972 -4008
-4323 -4225
-4210 5258
-6000 5035
-4207 484
-9660 1875
--794 -3698
-4907 -3918
--402 -1019
-3373 3157
--3042 7173
-1683 -1738
--1592 4394
--4489 -7663
--3560 -412
-65 -607
--6191 -7820
-1954 32
--6923 7009
--4987 -8063
-5103 -3698
-7548 -4234
--1805 -2820
-2090 9209
-1934 1143
-1823 6961
--2945 1283
--169 -4209
-6071 -1500
-6588 -6485
--5363 -8123
-2081 5474
-948 4907
-6590 -6670
-4209 -4246
-3934 7762
-225 -1631
--5948 -6785
--2056 1740
--1998 -447
-607 -2941
-3763 -9206
-5014 -8520
--1822 -4342
-3251 2595
--145 -7010
--2784 5943
-3571 1117
-417 2718
--1436 -8265
--5280 -4100
-2327 3505
-2464 -3135
--81 2999
--652 -9120
--8254 -3546
--1093 -3931
--6709 -933
-4793 -2917
--4501 -6500
-6864 -6364
--1542 -7832
-7302 -6496
-9330 -1100
--169 -4587
--4857 -7857
--6628 6291
--8731 -2405
--4324 7640
-3762 4407
-5535 7788
--6698 -6800
--6187 5261
-2430 3573
--796 2998
--8751 -4426
-3689 -8882
-1000
--8915 2101
-5577 4866
-7926 3721
--5 -9930
--166 -1710
-1306 4248
--8849 -3403
-3070 -7203
-6727 -5859
-2373 -7870
--4226 -6350
-8393 3082
-648 7069
--2186 -9617
--1459 -2805
--3356 8392
-5176 2542
--4739 -5405
--4094 3824
-6128 -7108
-1701 1706
--4741 -5171
--8119 1525
--642 1657
--1459 3658
--5524 -3008
--771 258
-5438 232
-2866 -3375
-4117 2187
--3784 -949
--9635 2173
--1912 -3687
--5339 296
-3504 -407
--5054 4637
-3172 -1709
-2395 -9166
--2603 3622
--6893 3872
-4287 8435
--8936 -689
-5392 8178
-2963 8254
-5482 2224
-1912 -1869
--494 1244
--1301 -3884
-8090 5054
-987 -5178
-587 -5167
--7615 -2429
-6554 5252
--3698 294
--7977 573
-2693 4452
-4946 2573
-9331 -1285
-5180 7542
--8436 -550
--1256 2786
-7658 -3985
--5528 -8120
--5284 3690
--6073 -6494
--4773 8276
-8244 -3837
--45 -9162
-5524 2936
--6118 2739
--1712 -1915
-4554 -742
-1435 -2795
-5678 3586
--7246 -392
--2604 3370
-8320 165
--5887 5434
--8035 -5692
-1952 3049
-1628 8258
-3498 -815
-5324 -5689
-3748 8451
-7409 6369
--3784 9029
--6003 1531
--1366 5042
--2600 -1356
-1492 6
--3276 989
-7386 5375
-5195 -3583
--9405 -2037
--8909 -3021
-2284 -1999
-6569 7122
-1879 -4560
-4514 -8516
--7644 -424
--4057 -7356
--2113 -6679
-5026 -7125
-3127 -43
-6860 1315
--4963 164
-8517 -4466
--2589 4460
-1877 8991
--1617 -9568
-5388 7948
-3679 -4512
-8836 3799
--6016 -3193
-8820 3138
--6105 4124
--5278 7798
-8186 -5122
-3664 -6099
-2315 6987
-7473 4227
-7728 116
--2687 902
-1509 1849
-9175 -3730
--248 4739
-3241 -5385
-1512 3537
--8312 3265
--6857 -1225
--1327 7552
--5407 -424
--4165 -4671
-399 -5408
--2985 -2227
-3912 2571
--7705 6018
--1055 3415
-5900 -3752
-7329 4164
--5394 -1437
-2859 -9253
-3599 2175
-8955 -4132
--7796 -3440
--4475 -4790
--8253 -5105
-2185 -2045
--8946 91
-2251 -9400
-796 6434
--3080 3201
--6157 -4585
--3000 2802
--6671 -7214
--9447 2578
-6147 2288
--3536 7422
-858 -5521
-9698 -2120
-5317 -3172
-3754 -7609
-756 1346
--4411 8240
-2695 1379
-1319 -1986
--3004 -3796
-7971 -714
--4801 -7758
--3169 -7087
-7044 6730
--2864 3986
-2570 -1367
-4570 5269
--2224 6526
--3600 -8298
--254 -2490
-529 4918
-933 8935
-4972 -7617
--4107 -4851
-2528 -5334
--9472 -3163
-1418 3109
--5707 517
--6204 -2935
-2807 3230
-1976 1581
-868 313
--1538 9332
-8808 1398
-6916 485
-3427 -1985
-8267 -364
-8027 -2629
-778 5511
--2913 4099
--2920 -1223
--7011 -5878
--5440 1645
-7790 601
--6949 -5507
-534 8919
-3882 -1225
-2870 -3503
--3083 -4166
-1974 -6239
--4886 -8318
-2603 992
-6310 3849
--845 7038
-632 -7821
--7682 5778
--4087 -618
--8431 2657
--367 833
-2149 7518
--345 -743
--604 4868
-2242 229
--8105 4285
-7548 -2857
--168 -3031
--3708 1204
--8310 -4462
--3230 -7997
-2261 -6838
-3543 3701
--7119 -811
--199 -9076
-2766 -7827
--5541 -7029
-4242 -5020
--5426 5162
--1765 8864
-3221 1006
-7701 -1983
--996 -2036
--1353 25
-734 -1087
--7327 -4842
-3161 2715
-7988 3180
--5114 -2063
--5359 -8275
--3487 -3353
-5577 -3370
--8057 -3385
--8126 -4765
--8762 3669
--2112 -5272
-3867 -7034
--617 -9460
-4453 8312
--5718 2523
-1522 2791
-8682 3261
-5709 1038
--9591 1123
--8184 -2442
--4348 775
--6898 1437
-854 -3186
-4917 7162
-2853 2916
-2371 1649
--6856 3207
-4554 -1210
-6711 -6588
-6728 -5620
-49 -3668
-488 -216
-2605 2191
--6209 6543
-1494 -9049
-1924 7380
--3040 -9243
--94 557
--4081 5030
--2940 -7296
-3013 -1856
-314 -4385
--426 -1719
-6645 -3063
--8057 -4329
-2031 2451
--3549 -1007
-7415 -3199
--156 -3711
-437 -676
--8959 -2120
--5692 -6832
--2798 7564
--49 -5225
-5495 4980
--6794 4305
--1389 4700
--3972 778
--3927 -3445
--2594 7667
-3569 -1430
-817 -6551
--8590 -1041
-2136 -9360
-884 1422
--4695 -7393
-484 -9890
-2487 6968
-2262 2408
-8582 936
-2081 1489
--3644 2879
-8216 -3046
--5672 -1818
--407 4925
--1548 -3459
--2915 -1697
--1489 -2110
-3448 -6225
--7331 1081
--5775 3471
-336 5051
-2414 -1982
-4055 -2248
-4622 -7766
-1308 6086
-1568 -3058
--1058 -4522
--459 -5775
--8301 2347
-2691 1772
-221 8495
--3411 -3083
--9689 2307
-1060 5981
-1544 -5454
--380 1636
--344 -9611
--8226 -1664
-4274 -8267
--3548 -446
--7033 -6313
--381 -6277
--7857 -4799
-6980 6397
--7628 1214
-5771 -2619
--4175 2450
-2681 7883
--533 -7960
--2468 -3856
-3247 4909
--6336 -2993
-1413 -5087
-3189 7681
-1655 7963
-1498 -5061
--2495 -5553
-5441 5766
-920 7559
-6516 6522
--9692 -490
--6551 3791
--3442 6585
--5813 -8091
-1007 7124
--2882 6183
-1115 -4354
--9398 2528
--5195 5678
-4976 6677
-7627 -3004
-4885 4116
--9085 1003
--3217 -3894
-2501 -811
-6114 2975
--2333 -8182
--814 8299
--7323 6452
-4895 5956
--4511 -4930
--564 6792
--3013 -4567
--8916 3546
-8220 -753
--419 9872
--1011 -3892
-1733 1427
--2729 -4751
-1861 -1182
-799 -7126
--9947 838
-6893 3450
--747 4394
--2386 3829
-115 4206
-6855 -1888
-3510 -4243
--1418 1189
-302 -8869
--240 2862
-4789 115
--872 1036
-1803 -1581
--2828 -8109
--4247 -2270
--692 -5494
-5384 7039
-5626 3235
-4435 7075
--5961 5988
--4241 -310
--2393 -1905
-2835 8551
-8208 -5711
-5563 -3684
--6017 -2803
--9586 400
--5676 6993
--1994 7171
--2364 1440
-4615 825
-5047 6898
--5033 249
--3648 2450
--3881 -4188
--1310 -101
-3838 6150
-7490 -1811
--5183 -1797
-6320 2955
--7509 1480
--2775 8301
-1177 -1047
-8508 513
--5214 -2829
--1441 4064
-2942 7406
-5666 4555
-3067 -5855
--6529 -2269
-3674 -1490
--5681 -4589
--474 -8938
-4842 -6035
--7169 290
-6118 -1898
-6105 -1494
-3746 3532
-5452 5051
-2886 5777
-3424 -7105
--2806 8935
-4571 3106
-3887 1601
-7464 5580
--1003 -3303
--8616 1710
--197 6064
--3754 -3906
--7520 -1764
--7581 -4577
-1510 8768
-6083 -4457
-2437 1119
--3161 1277
-6895 1361
--6432 4961
-7891 -4645
--1171 -1456
--3332 6996
-8481 3163
--4598 -7454
--6546 1364
--4863 406
-9605 -361
-4007 8598
--615 -8625
-7 7170
-8846 -1206
-650 -703
--3097 2736
--1073 -9101
-585 -5166
-4288 -4023
-900 -3941
--4511 7910
--1927 9250
-2520 -4809
--143 7264
--4157 -9069
--5200 -6240
--75 5634
--8332 -4338
-5720 -3877
--2868 -1073
-2579 -8890
-625 5802
-1990 -6203
-3817 6645
--129 6343
--659 4933
--786 6895
-6678 5048
--5685 1726
--1266 -6542
--326 -1124
-3414 1603
-4312 -3161
--6147 5725
-3459 8691
--6494 -1659
-6622 -3179
-7425 -5869
-4610 6822
--131 1988
--6102 1586
--4125 -4242
--4307 3733
-9638 -467
--4603 -6087
-2830 7983
--5882 7608
-790 9267
-4092 -8584
-8815 1258
--9028 -3383
--7646 -6160
--7317 5278
-5374 -1019
--8498 -681
--4121 6964
--8996 3503
-175 -8698
--2509 9407
--5138 -3413
-211 -711
-4795 4414
--6505 -6247
-1833 1532
-985 -4950
--1856 -1590
-9041 509
-3878 -1152
-8737 4255
--474 151
--585 9649
--5431 7458
-4571 4227
-4072 733
-3715 6753
-2295 -8933
--3234 370
--4194 -6347
--6921 542
--1967 1478
-4060 -565
-657 8449
--4332 -3338
-2717 -5955
--7778 1435
-6096 7411
--227 3508
-4732 6594
--3252 4108
--5068 -3025
-5368 -3752
-5512 -2676
--3676 -3651
-2889 6886
--726 -6638
--2390 -596
-2047 -3997
--5388 -6972
-4215 2528
-5396 -1092
-3141 9311
-1722 1131
-8645 4576
--8025 3981
--6626 -6004
--4627 2210
--4260 -7201
-3158 6065
-9238 3577
--384 6788
--3144 -8424
--5555 -2207
--9247 -1650
--2820 5843
--74 9889
-6721 -5865
--5937 -2871
-502 9569
-9703 2198
-331 -6441
--351 1375
-8786 1397
--7803 -285
--1857 -2988
--7882 -5883
--22 3554
-196 -6977
-417 -1880
--1176 -3503
-4510 -5325
-276 -7758
-1631 1718
-305 325
--2044 -3071
--1484 2372
-1315 -8920
--3411 -1624
-3000 1719
-5602 1452
--1112 5066
--8690 1083
-4422 358
--9194 298
--806 7027
-1419 3317
-7145 71
--6348 6610
--773 -5963
--4062 -3407
-9205 -10
-360 4647
--1689 -2201
-7995 4876
--7164 5844
-3639 3257
--9308 -94
-3787 4388
-623 -2996
-7340 -2130
--1518 -9004
-5016 -977
-7779 6158
-1973 -3273
-5666 -4519
-691 -3719
-2246 8113
--654 -3361
-5851 5664
--1137 4948
-7237 247
-5809 6163
--3731 8154
--2398 -2732
--4464 -4627
-1349 5045
--5243 1668
--5042 -1935
-5831 7927
-5002 4481
--5143 1175
--4383 2932
-1209 -3275
-3698 -8517
-5824 3923
-1837 -440
-4222 -7638
--769 1500
-5378 -5810
-6871 1383
-1685 -537
--7197 -3949
-2588 -4390
--3512 8271
--214 6043
--2648 -6163
--2446 -1271
--6237 3586
--6892 -6796
--3545 -6339
-5516 3988
-242 7936
--7470 -513
-90 6754
--2985 -8115
-8201 -432
--8843 2437
-9472 -2883
--3288 3316
-1673 8613
--5246 4505
-3489 6001
--3991 -6495
--1383 5222
-9179 -568
-1829 -5761
-3882 2266
-6357 4096
-489 6838
--794 -5117
--3504 4203
-1647 8310
-4603 -2926
--3836 -3624
-4293 3444
--5890 -1564
-1715 -8089
--1609 -6819
--3862 9179
--7080 6614
--9604 2368
-4856 -5377
-7952 -5816
--6264 7102
--8446 3840
--2942 -4948
--2042 1146
--54 7486
-6519 -4198
--3384 -3534
-3018 37
--4231 -8109
--2783 3975
-1660 -6860
-1427 4403
--4858 4243
--9526 -2778
-3605 -2014
--3506 8400
--5556 -167
-6286 -460
-8867 1395
--5164 -2940
--2158 2464
-3463 7637
-4807 3106
--5568 990
-8697 -302
-1344 -6279
-1832 4357
--4923 7498
-2048 8113
--2331 6823
--837 6749
--1779 -6174
-3884 -403
-7809 -4182
-2951 -1973
--6249 -1187
--235 7467
-9390 -691
-7931 2427
-332 -6225
-6374 5695
--4774 2488
--3288 5586
-894 -9012
--2636 -988
--4092 4816
--5576 -3939
--6336 101
-2130 -8477
-595 5946
-178 5273
-8918 433
-3571 -6948
--8181 -1883
--5908 -4723
-57 -7418
--4849 -6362
-3894 -1942
-3560 1935
-902 -1693
-7308 2665
--2388 -527
-1707 1904
-488 -1127
--5678 1686
-612 -5912
--1616 7921
-8148 2227
--3829 3359
-2320 4199
-516 1315
--8026 389
--4465 2749
--914 -6207
--6031 -1068
--4031 5252
--584 1191
--1419 8549
-3459 -1788
-3385 -5138
--7890 -5063
-3934 8001
-3994 -4708
--9644 2109
--2571 8001
-2382 4288
--4783 2372
--4691 5613
-1180 -9288
-4576 8684
--3665 -5601
-3656 2759
-1851 1965
-6827 -3756
--2244 9206
-1675 -4123
-3768 -2925
--5255 270
-6546 3388
--7461 6007
--2053 4934
-5163 609
--2191 4488
--6425 2331
--2803 -1676
--260 -83
--1209 -8180
-116 -3363
-4501 4821
-7146 6904
--6812 2275
-6432 6374
--2023 7387
--4636 -7527
--2417 4411
--1058 -3777
-4084 5601
-8919 -2921
--7410 6691
-3354 -3062
-7134 -447
-1336 5758
-350 -8449
-3856 -2184
-4968 7439
--6164 6066
--4514 3116
-4498 -6292
--5943 -428
--4742 -1267
-342 -8971
--257 4216
-7093 -2814
--2505 -373
--1594 136
--7595 -5358
-2274 2310
--3924 -2790
--1346 4274
-1206 1372
-3500 -7700
-7628 -1129
-6287 764
--488 -7275
-1475 -4726
-3692 7893
-2552 6077
-2288 -6231
--5874 6265
--571 3950
-8387 3529
--5517 -6785
--57 4390
-1261 -2944
-3495 -1528
-5206 2972
-4999 -4300
-2763 7111
-5940 4650
-7226 -2971
--3991 -1176
-3180 -4274
-1704 -7248
--873 -8550
-8975 1721
-2580 7881
-2155 -1107
-1465 4861
-654 6300
-867 7492
--1012 -3193
--5525 -2296
--4970 6946
-8491 -5054
-6305 -2537
--1784 -5308
--2608 -2320
-8210 -2576
-6802 2847
-78 -4420
-6639 -4190
-9742 -459
-8663 2589
--4250 -1829
-5581 -3443
-5791 4213
--1367 -7583
-4130 5422
--2889 7612
-430 -2310
--6262 -3716
-6559 2871
-7849 4748
-5773 111
--1535 -1575
-7350 186
-1119 -6176
-6910 787
--1218 7228
--8730 1786
--7890 -3611
-5430 4110
--2923 3409
-5168 1194
--6032 2424
--8182 -2723
-7873 2254
-357 -1518
--1696 9141
--4055 423
-996 -5471
-1715 -796
--6024 6978
--2390 4602
-6512 6264
--19 -5812
-6220 2406
-2184 -7900
--3868 -6319
-4762 -6723
--6757 2925
--7094 4282
--8466 4261
-509 -4076
-7940 -3595
-2020 7008
--8869 -60
--4073 5846
-9191 -413
--3221 -4636
--5453 2812
--8346 -3256
--6484 2028
--3862 -4801
--6023 1657
-6548 151
-4118 3068
-1034 -1957
--2635 8784
-935 -3710
--5793 -6063
--1484 -7187
--8870 365
-2661 -6894
-2188 -2877
--4224 -5589
--235 9454
-8882 -2837
-1503 -7371
-634 9423
-723 9796
-6492 -5933
--1774 -8440
-1597 860
--1461 5661
-8558 -2283
-3509 -715
--2662 3773
--490 -4260
--5243 -7231
--2961 7184
-3564 -6040
-2475 1425
--5261 5805
-4439 3158
-7655 -6323
--7842 -5907
-9267 1448
-6476 -340
-5996 753
--2814 -4556
-3501 8597
-443 -2009
--2798 9448
--8847 -2514
--3044 7295
-6409 4997
--3481 -5205
--2983 7243
--716 5748
--5765 37
-4633 -7557
-1231 -9312
-1252 4134
-4415 760
--7523 -830
-1071 277
--5687 5610
--686 -303
--3765 -3102
--3960 2789
--3476 9240
--4452 -8745
-1000
--2031 -3167
--7067 6789
-1848 -8685
-3492 1681
-6189 -3815
-6278 2543
--9357 2501
-4588 -7117
-5340 7587
--2394 -5711
--266 -3064
-8990 -3275
--3758 8645
-7568 -2583
--2409 -1890
-1127 -5134
--8344 -5487
-715 -6662
-7066 -6761
-7189 -6073
-6375 -4063
--8144 -3041
--905 2102
-1210 -8621
--5022 -3129
-5241 7932
--620 -1666
-6027 -7073
--6209 7104
-2595 -8368
--5713 3527
--3043 -5396
--5404 1122
-5756 6182
--2448 -2828
--3881 2810
-8002 823
--2475 1508
-6072 5618
--4134 3936
-4591 -2644
--5746 -15
-2636 9044
-6081 3337
--210 -1136
-6355 -2589
--6264 6162
--4073 3055
-2850 3641
--8470 -4369
--8858 1164
-2282 4488
--738 7849
--6457 -5892
-3387 8473
-4441 -1866
--400 4805
--2238 4090
-1553 8606
--812 -6807
-5504 4105
--286 1329
-3118 1978
--7102 3665
-463 -3902
--1340 -9839
--6046 -7392
--2285 -5725
-6473 5611
-7790 5509
--911 2366
--177 9327
-8004 -4005
-3116 -94
--4562 -8340
--5373 -8036
--6899 -262
--710 -4767
-458 -4157
-2098 -3952
--1091 -2923
--5413 -6602
-7782 -4999
-6863 6836
-108 6679
--6307 6767
-9304 1264
--2938 -8816
--2947 647
--2174 -3052
--3867 -8967
--436 112
--290 -2377
-984 -7247
-2706 -271
--1594 -7662
--8444 -2396
--6427 5184
--9419 -237
-1683 -326
--8535 -4657
-783 -2783
--2106 2985
--3174 1366
-5869 -1677
-8758 -1496
--190 -5494
--5862 8018
-4372 -8419
--2411 6152
--1439 1408
-6368 -6264
-3807 7229
-3856 -7972
-5192 -3834
-4695 2273
-8347 3723
--3766 -3669
--7821 -3603
-2137 6480
-1706 -6337
--1692 5530
-1644 8676
--5945 -7249
-3146 -4376
-4194 7486
--962 3018
-4387 -6902
-5871 -4889
--3414 261
--5504 4693
--1295 1220
-6760 489
-1603 1444
-2587 3903
-2290 9620
-7372 -177
-7156 -3805
--2052 3381
--5752 1484
-4711 -4374
-4295 7399
--6002 781
--1332 -1409
--6573 -5344
-7650 368
-2201 -5154
-4479 8099
--1480 5653
-3964 3788
--3051 -7311
--6244 5627
--3752 -3665
-5386 7579
-1470 8039
--1505 -4499
--6052 -5828
--2147 1019
--2523 -5439
--1537 -4835
--3131 9353
--4133 -4720
--4105 -3484
-3456 -9145
-413 -7699
--1536 4726
--3792 4574
-621 6869
-1060 -4514
--2297 7231
-2249 4708
--4386 5315
--3470 1908
-2173 5631
--3403 3619
-5697 5494
-7513 3247
-3882 6261
--65 -7122
-1675 -8613
-2484 6869
--710 -5192
--2670 8595
--4643 5314
--2105 1173
--3666 -3778
-947 -6890
--3867 5852
--7874 -246
-9908 1276
-591 -2274
--1160 6393
-2176 4050
-1120 6159
--8444 -227
-3454 -3894
--1227 5292
-4981 -8340
-883 -2468
--4669 58
-8106 -4866
-223 -4433
-2103 -3545
-2746 -352
--2548 7622
--3465 -4928
--4450 -970
-5463 862
--4133 -7924
-1103 -720
-218 2868
-6341 4183
-8432 -2934
-977 4003
-7155 6877
-2582 3043
-1896 2380
--5107 -5404
--4877 465
-4288 -6406
--828 4893
-1169 -2320
--372 7786
-8660 -577
-3850 -1785
-2405 5627
-4766 -2361
-7263 6375
-3812 8328
--5216 7412
--7936 -5500
-8503 1964
--5309 -2330
-8321 4766
--1137 6335
--4961 -7428
--1344 -1023
-76 7236
--6238 3716
--6208 2139
-1237 -3433
-5396 -7620
--308 3383
--3709 685
--5894 -1777
--2379 -4412
-4430 -1049
--1317 -4157
-7557 -5992
-3681 5063
-5878 166
--286 286
--7213 -2176
-962 5285
-369 -8033
--6121 -367
-6195 5785
-3847 -1438
--4106 -6856
--3744 -5729
-5058 -7179
--8814 205
--8401 4197
-6940 -3891
--8585 4736
-798 -2582
--6763 -5135
--6240 2371
-4026 21
-7481 -4785
--6051 6529
--1736 -1411
-1340 -6244
-1213 2022
-4312 -6488
--4446 4080
-1562 -125
--2370 4499
-1878 -7395
-1823 -5105
--7369 -6574
--5552 -6515
-6753 -1761
--1126 3769
-1568 -6596
--4211 -1758
--7223 2500
--2105 6809
--960 -657
-436 -1064
--1268 -2052
--1140 9157
--2779 -6821
-4660 763
--2204 -4565
--3326 -593
-3465 -3721
-7361 6040
--6699 -3527
-3588 -9176
--2516 2736
--6828 6728
-5776 2393
--7459 4888
-5162 7679
--76 -6069
--6474 4695
-5185 -1186
-1257 9304
--4618 -7261
--6499 5397
-7196 3906
--1561 6433
--7092 -3857
--1198 -2785
--4322 -3007
-2793 8109
-9312 3295
--290 -5630
-2247 -8862
--1958 -9275
-2928 3343
--5089 -2452
-5434 -7731
--4197 -7256
--6489 -2824
--2452 -8698
--5553 7806
--6157 2101
-6068 3464
--5291 -2603
-3821 -7429
-5713 -7000
--2907 -8991
-5734 1666
--2807 8695
--4963 3303
-690 -9747
-1720 1695
-8099 2219
-120 937
--2657 -2945
-167 -1975
--3816 9124
--8307 -2696
--5371 -3901
--695 6438
-8898 362
--948 2271
-9210 2307
-4451 5429
-2688 520
--5172 -7113
-8921 3811
-9397 552
-4957 -1627
-8482 -4762
-8440 -2536
-3613 -3152
-920 2298
--3091 2485
--5301 -4070
--4304 -1562
-14 8484
-7542 3035
--5753 -5525
--3375 -9412
--5248 2783
-7283 -1513
-5429 5747
--3146 -9316
-134 7022
-1122 62
-8218 2379
-1991 8081
--4607 -3224
-8016 1717
-3001 6808
--2426 -3189
-1665 2889
--5620 2234
-3649 5569
--2560 6259
-7477 -940
--6946 6590
--7880 -774
--3823 -4005
-3423 -5194
-1951 -9497
-2012 4471
-2476 4957
-1130 8202
--1203 -1811
--2868 -7941
--6346 6237
--221 -5584
-2978 -6346
--3650 -3006
-3521 4131
-8172 2669
--2881 4195
-1971 849
--4227 -7430
--466 -2966
-1477 -6185
-3259 -2041
-4477 -2332
--6288 6234
-1270 2056
--4155 -1738
-8663 2087
--715 5944
-8910 -3959
-9824 -1173
-7939 3944
--5715 5867
--6905 -2983
-459 -9655
--3181 -823
-7828 -3321
-1582 -9266
--4421 -7095
-2758 -151
--9033 -45
--3869 7908
--3451 -2400
--4316 5566
-7229 1983
-9020 -3326
--3002 -9407
--3811 6211
-3814 7750
--1560 6721
--874 -1863
-243 7997
--792 9403
--1936 9164
-3051 8488
--2617 -5966
--745 -2867
--1626 -8954
--1809 7791
--1853 2042
--8814 1709
--2489 -3558
--5243 -5468
-9141 985
-5195 -1005
-7329 -2032
--2424 1027
--2572 6325
-4013 -2525
-8213 -2438
--4374 -6338
--800 -1199
--6302 -7314
--7427 5837
-7163 -1353
-98 7965
--5369 -6555
-1015 -1879
--180 8153
--3950 -5401
-3924 7358
-4995 7578
-547 2218
-9034 2643
-694 6450
--7969 -4248
--3128 -669
-4424 -7026
--5082 -7663
-5097 -1216
-4211 8674
--1126 -9393
-8277 3666
-324 -4936
-4074 5954
--1719 -8292
-4736 -5280
-394 8651
--4880 -1161
-4290 1975
--5079 1514
--4311 -8683
--1215 -2445
--71 -7598
-4578 6062
-7272 6044
-3099 612
-3449 7446
-2254 4964
--4905 -4707
--601 -5484
--5453 3490
-5400 2094
--7969 1680
-8285 858
--8926 -2255
-4987 -7295
-7926 5067
--2158 7578
--127 857
-6202 6306
-2655 1813
-4502 6564
-3670 546
-4032 8031
--1248 -1965
--4771 7655
--4216 911
-1608 -6781
-1721 1075
-5129 -6912
-9095 3411
--582 -3046
-1307 -5498
-4432 3406
--3872 -4935
-4614 -3681
-8104 3505
-926 1266
--4994 7828
--4624 5587
--4829 1427
-8904 747
-2474 -456
-5975 7683
-3952 -1302
--4406 5033
-654 -892
-4130 -1058
-7618 -1379
--4653 -1048
--1156 -9632
--6875 6032
-2264 -7721
-1229 -7280
-1351 -6239
--28 8498
--2232 -4349
-5105 5781
--6290 567
--491 -2447
--3744 -7069
--745 6864
-2959 -6261
--6635 3625
--4780 6157
--3766 -737
-5229 -8399
-5228 1028
--409 6365
--235 -3814
--478 -6622
--8924 -4510
--3228 1761
-4644 5747
-8148 -4698
--4386 -6916
--1096 3203
-4108 3880
--647 -7630
-1212 -1648
--3470 -879
--3754 8078
--4701 -6942
-1514 7679
-4713 -937
--1798 -3333
--5288 -840
-6140 267
--2521 -6059
-2686 -2538
--2873 -2080
-4020 6547
-8552 3523
--2675 4613
--5655 -2109
-4902 -4477
--1686 -4846
-5690 1763
-6306 3668
-4471 7244
-8491 696
--289 -3633
--992 9841
--4968 6950
-886 -2054
--1092 7195
-5639 6647
-8491 -3733
--694 8727
-5219 -5525
--5937 -307
--76 -7411
--6945 -394
-1839 -8498
--5652 142
-9676 1050
-3310 3553
--7284 -6109
-5715 -1899
-3039 -672
-4146 6059
--7809 -3397
-4230 -1938
--4835 -3342
-487 -6668
-4491 2714
--533 7745
--1691 -2425
-1003 5291
-6811 -7163
--4755 -4314
-4542 152
--4942 -7229
--4258 2820
--1337 3102
--4874 7435
-5645 2272
-1149 -2395
--5311 -3775
-12 5523
-3503 5279
--2155 416
-2874 162
--3782 -2825
--160 2631
--7119 -3788
--2983 2536
--1287 -7949
--8912 472
--2204 1640
-758 6684
-7356 5619
-6012 -7079
--1836 -5896
-7248 -4990
-9563 -2550
-2480 5333
-4168 -4603
-4005 2970
--1871 -651
-58 4696
--7425 -893
--1522 8791
--6392 -5205
--496 413
--3831 2708
-3585 -7010
--66 -5708
-3717 6101
-2710 -3337
-4419 -5621
--6355 -1840
--4246 -7142
--6208 -5540
--1024 -7369
--7477 -1079
--8481 -5014
-5386 -236
-1416 7251
--2610 3325
--1721 1103
--2086 4687
-5510 -6704
-4474 3760
--907 -3539
-7965 -455
-2208 2822
--3480 -1179
--9350 -3042
--6579 -7368
--2567 -7217
--5818 -4715
--6113 -5748
--6638 -7346
-8598 3265
--3105 -6703
-2897 -1912
-1704 6831
-2373 9534
-315 3428
-2139 -2570
--9052 -2778
--4712 -5546
-4426 1646
-3255 -8965
--1918 -4575
-3901 -1223
--8077 -1018
--5477 -4475
-4997 1333
-5611 2365
--6603 999
-1980 -2126
--3460 -8545
-3439 -5118
-3189 -8087
--6323 1734
-5200 -1038
-2968 -9163
-426 -8308
--1454 8418
-5958 -5184
-6808 886
-6426 6300
--7006 3518
-547 2046
--3080 537
-348 -4588
--4011 -933
--2375 1056
-9068 -1019
-7456 -3464
--246 -2580
--4303 6180
--486 -4920
--8666 1492
-1208 4862
--5202 2991
-5883 -4023
--7673 2682
--7292 5114
--8158 2429
--6362 1413
--5070 1809
-614 155
--2289 -6238
-2787 1884
--5174 -1535
-3899 2639
--7799 5118
--1805 -7292
-7683 -3914
-1079 8393
-2385 4758
--3352 -7409
--4933 8281
-5177 2778
--9322 3001
-698 2045
-5932 -3487
--1983 -8171
-3449 1289
-810 -585
--3933 6416
--3338 2383
-4571 -6100
--4208 -2713
--8659 699
--2577 -1405
--8755 -2514
-2753 9149
-323 -218
--3393 4716
-1597 8321
-5061 6041
-5436 -7119
-6026 3998
-1196 6866
--8209 157
-1911 5057
-915 -3084
-2526 5670
-6147 6285
--6241 -1925
--1660 8166
-3910 -7097
-2587 1558
--2760 -5622
-1976 5429
-65 7351
--6171 4534
-469 5514
-1770 2968
-1165 -2089
-9483 -494
--3050 -8266
--4833 7349
--4087 2031
--3597 -8368
--8361 4034
--3751 -3576
--6943 -1736
--4287 -1523
-645 6630
--5610 1463
--5594 -5009
-2461 8559
--1242 -9260
--5525 -8082
-4546 3927
--4767 3468
-1140 8001
-251 661
--6051 3795
-7500 -995
--6115 -5031
-349 3970
--3219 -3351
--7248 -3959
--5745 3851
-439 -3666
-2583 6742
-262 -582
--4846 -37
-3990 -1096
--3465 -7524
-2500 2503
-745 7498
--1464 2209
-6723 7007
--3085 -8881
-3455 1778
--4365 -2726
-8889 -2838
-4955 8466
-1597 4425
--379 -6152
--4132 777
-3404 -1026
--8703 2281
-3827 -8910
-8000 -561
--7650 300
-7700 4121
--2480 6344
-5709 4719
-8539 2765
--5921 -7493
--2139 -2652
--4491 4008
-6776 -4391
-1531 -7946
-4023 1830
-4598 -8755
-1735 6120
-8140 231
-2818 -7456
--712 -6762
--4743 -195
--4331 -4978
--4815 -2362
-3498 3884
-1832 6457
-5899 -4808
--4721 -1524
-1969 7352
-5277 2129
-5842 5151
-5776 3324
-2940 -5752
--5808 -5755
--6116 832
--6303 5180
--318 -3585
--7719 3758
--1305 4652
-8352 -754
--9225 -3309
--4977 3640
-2601 -4067
-8549 -618
--8576 818
--3300 -7717
--791 -4244
--1056 1769
-3515 3762
--4682 -1333
-5362 -1318
-2500 -6485
-81 -513
-3330 -6289
--2457 -8200
--4987 5665
--345 5844
--2569 -3784
-2011 -1158
--6237 4011
--2023 -6466
--2821 -5738
-2452 6464
--6066 -1694
--7464 -6581
--5384 -3724
-1231 3727
-6271 1249
-7632 -6063
--351 5682
-2763 3928
--253 9662
-2722 -9469
--843 5543
-3186 -1363
--331 -437
-168 -9996
--2754 -4788
--5654 -1357
--6559 -2478
--5168 3147
--7610 600
--409 9551
-4105 -853
-3454 6091
--597 -6307
--7804 5639
--3581 -4407
-648 -1435
-2684 -3078
--3996 8060
--5504 7565
--4601 2110
--5538 -7104
--41 -7809
--4107 -3276
-7783 -359
--1530 5152
--8351 3750
-8560 -4903
--3553 4895
--8474 -2845
-4844 3554
--2710 -6497
-4470 -6
-6640 -1650
--6825 -4809
-7773 -450
-8892 1137
--2470 5413
-163 456
-6569 -4180
--2396 6367
-3452 1381
-2491 -1684
--330 -1111
-4044 5673
--5900 462
-461 -1637
-3917 2837
--1828 6339
-3902 214
--879 1486
-7257 -1837
--2676 -8003
-929 8302
--6683 -688
-8126 -1709
--4750 1781
--9836 -38
--5805 2805
--7957 5195
--7727 2485
--8196 -3819
--1679 -4977
-210 -1991
-6597 -5241
--7564 -1088
-2570 -7417
--6026 1061
-848 -2598
-1321 8444
--1966 7053
-5582 7816
-347 -592
-8117 -1495
-83 -5022
-1679 -920
-4844 -6887
--3969 -1037
-4427 1513
--4667 -5702
--9462 2939
--2914 3705
-2860 7340
--4047 -6908
--6871 4342
-495 4114
--2369 963
--7181 992
--2492 9375
-5025 -8320
-6636 -4135
-4342 8525
--8836 2849
--5630 5014
-987 -6728
--2328 8799
-1421 2015
--1306 -5316
-5618 234
--5138 -3540
-7887 4354
--6852 -5812
--4184 -6816
--6924 1592
-7115 3350
-3308 -5558
-8619 -2168
--3037 9328
--8710 -4464
-1000
--5224 -3237
-2777 1225
--929 -3404
--4622 951
-5101 -1661
--3017 3577
-880 6294
-50 2413
-3161 -9456
--1827 -5354
--5830 5801
--5174 -6252
-9649 -305
--1231 -1839
-1318 -1066
--4786 -7657
-3531 2363
-287 -3144
--7605 926
--9784 -701
-7801 -6056
--3189 -887
--7955 -1117
--4639 5748
-4431 8258
--1477 -5107
--7030 4663
-1555 5727
--4910 -4534
-8645 757
--6793 4325
--3869 -1934
--729 -1182
--2207 -2614
--8981 -795
--3695 1320
--4391 -5364
--3921 5802
--7228 681
--9706 -706
-3580 7575
--4869 4265
--6936 2618
-1847 7247
--5506 -7365
-5462 -7938
-1461 1577
-1455 3408
-3999 -5246
--2860 7518
--1674 -3239
--2916 -992
--1413 -1537
--1757 6130
-4367 7421
--1008 -2759
--7809 -2528
--4514 -3963
-3390 -8392
--5993 -7026
-4121 -8361
--3062 9136
-679 2387
-3640 -2967
-3437 8530
--1262 -5129
-4153 -1328
-3988 5404
-2037 4997
-5268 4031
-3700 8760
--4137 8996
-4746 -6165
-7780 2122
-1844 -5116
--8414 3818
-250 9259
--5199 -6495
--907 9771
-1035 4822
-3400 -4861
--3574 -6160
-5486 -1637
--7847 -2196
-1502 4456
-7005 5987
-3359 -6986
-5200 -1284
--159 -3757
--2545 -389
-820 -3863
--5961 3807
-5512 7873
-4586 8619
--7378 -391
--4022 -4698
-2311 -5706
--4295 -6634
-3634 -4981
--4197 -8618
-2144 -8393
--2388 6488
-5633 -815
--1920 8183
--990 6338
--7142 -2303
--5826 -604
--6900 -6122
--448 7114
-6401 2779
-3766 -7997
-578 -9735
--9681 -62
--7345 -5377
-4897 -6056
-4822 -3750
-4134 -4831
--8773 -262
-6739 6688
-3164 -2208
--4837 -8635
-2821 -7100
--2635 -8212
--478 -8419
--5662 8102
--8317 -4922
-2885 839
--4217 -2642
-7754 4274
--6384 -668
--816 -1377
--5612 2506
-5528 331
--8745 4564
-1258 6392
-267 448
--1958 -6307
-194 -8424
-2846 -6047
-959 4087
--5489 6440
--8465 2767
--7840 -3703
--567 5627
-3996 7622
-4177 7354
--1917 -6984
-2313 -8169
-7041 1246
--5079 16
--2903 1793
--4312 472
-5408 -8125
-8565 -4038
--1261 -5813
-5616 4268
-1312 2858
--3737 -4184
--8548 2474
--3369 -6737
-7418 2803
--537 7652
--909 -3700
--9530 -935
--9766 1963
--1993 4628
-2017 7238
-6294 -5550
-87 1026
--3918 -8706
-5708 -7748
--5462 93
-2181 -9506
-1709 -874
--722 821
--2422 1759
-3049 3557
-1564 -7104
-3600 -2048
--241 -3697
-6993 25
-2639 9432
--6509 2028
-4332 -4425
--7942 5356
--9529 -3025
--5415 129
-2321 2478
-690 3347
-2138 -6463
--1822 -8884
-5359 4936
-4053 -7591
--6412 -2043
--7708 -1088
--3160 2212
-7327 -553
-696 7983
--4715 -255
--8096 -1008
-5060 -5847
-3307 9303
-1796 915
-1558 5615
--4308 -8611
-8482 3850
--383 -2104
--395 -5645
-5909 2048
--7097 -799
--5842 6180
-5866 -6168
-2017 -5722
--8816 1478
--5529 4638
-1085 2216
-962 5538
-8557 3671
--7004 -5407
-1717 2897
--3646 -9195
-6825 3146
--5062 -7173
--1290 4814
-7966 16
-8110 -1430
-3313 2234
--5845 -8100
--8654 489
--2618 278
--788 3799
-9577 4
-2326 -4854
-3848 7601
-8581 4712
--3827 3633
-501 7246
--23 -9142
--865 6882
-8652 -3601
-6137 -7210
--4639 7833
-3166 5408
--6422 -4074
-4501 5512
--7104 -1222
-1938 -9075
--508 -9206
-4176 -1714
--1826 9058
--1541 6299
-62 7934
-2100 -7383
-596 -9885
-1758 3186
--7382 2260
-9468 -2294
--9813 -1402
--5671 537
-4140 -6334
-9045 -2915
--7276 6322
-4472 3613
--5364 3605
--2039 -6186
-2944 668
--7153 -336
--803 -2688
--6064 4829
--8618 3777
-7974 -3944
-5565 -1884
--51 -7797
-6320 2592
-4680 5774
--7997 -4496
-9737 926
-3201 8260
--3963 -1040
-8945 -717
-7207 2873
-9400 1097
--6941 5509
-3869 4175
-7092 -3579
-1237 8920
--5885 2150
-1853 2770
--1051 -4340
-984 -230
-6814 2805
--3142 3162
-1520 -6
-4664 936
-2731 74
--6764 2249
-1263 -8499
--2458 1496
--770 -7717
-4920 4843
-3869 -3885
--4296 -262
-2268 -8811
--145 1859
-1953 -6932
-3595 1832
--6665 -5337
-651 5705
-5308 -7933
--6895 -4878
-9064 2352
--5851 -7255
-7517 -5903
--4969 588
-5699 -5427
--366 -2291
-4663 -5429
--3212 -7255
--2849 8959
--2783 5567
-5739 -8064
--3173 7899
--818 -6820
--8230 -3802
--154 6829
-2393 4747
-5036 5590
-910 -807
-2068 4365
-3677 -4681
--2784 -3543
-432 -6035
--2460 -6256
-6873 6768
--6128 -3626
-1657 -2911
--624 1566
--4723 4790
-563 -8791
--6539 6199
-3233 8151
--7420 -4296
--3668 5621
--8669 -1954
--3045 7219
--593 -4139
-173 -2390
--4148 4127
-8218 2727
--1140 7257
--538 8404
--7866 4636
--2056 -2500
-8552 4810
-6318 348
--3820 4119
-6290 250
--5022 -2665
-4816 -7948
--531 2667
--7688 4493
--8612 -2215
--1753 2407
--3589 -6049
--6891 2281
-3842 -8383
-4076 2336
--7058 2998
-784 99
--2796 1908
--4123 -5003
--1882 7143
-3215 -1397
-7210 -6008
-8731 440
-115 228
-4805 3365
-8665 -1585
-5878 -2757
-861 212
--5538 5589
-3089 980
-5013 1788
--5641 4382
--7215 4723
-2282 4203
-1304 1122
--4947 1232
-7569 1942
--3088 -3208
-4030 4467
-5244 7686
-4121 6920
--639 -1757
-4745 -1729
--6945 -3080
-4 -4020
--8053 -1065
-6460 1535
-1899 5352
--9629 1199
--5971 4530
--5838 1271
--4790 -3125
-3373 1861
-9177 2893
-3776 8389
-3210 537
--1900 171
--8625 3276
-2203 9704
--991 -6842
-781 -9772
-5130 -3016
--6870 811
-8266 1151
-4471 -5274
-7790 -916
-343 -7962
-2295 6948
--2338 -4771
--3412 -791
-3153 4101
--8719 1635
--1685 -2286
-3776 -3921
--994 -7901
-2828 3404
-4526 -7178
--4374 4862
-8119 -5459
-1991 -2801
-8336 4439
-3607 6556
-2415 3635
-1971 6645
-4202 -4072
--9745 -196
--5255 7000
-1312 8807
-259 -583
-9529 935
--2450 2938
-96 -7764
-3189 6841
--1170 723
-7472 4062
--6252 3950
--9491 -518
--4758 3291
-1260 3815
--603 227
--1298 4139
--6186 4523
-4893 -4310
-5161 4547
-2865 -7129
--785 3437
-590 5941
--2377 -8778
--3572 -7589
-2354 2719
-4676 4066
--8921 1474
-2252 -6138
-172 -6292
--5144 -3809
-5596 6760
-8830 -377
--1407 -2458
--7895 -5907
-2836 5962
-879 7954
-4573 2572
--4847 -7594
-1240 5995
--5230 -6751
--1219 6
-4960 1992
-5400 3456
-4307 5440
--4167 5381
--7214 -2153
-295 -7614
--4108 -8101
-8353 3489
--4194 4049
-2115 7344
--8430 -2385
--5709 -5271
--214 -5636
--2705 7427
-8014 -3218
--359 2301
-1181 6066
-4583 -3280
-1515 8547
-1759 -5908
--3611 5105
--8274 2559
-1732 -3211
-3135 5969
--1294 8450
--6713 -5044
-6262 4785
--7773 -2313
-1105 5505
-5720 1186
-4518 -3393
--6390 -3513
--347 9494
-6885 -1260
-5503 6871
-1659 -5327
--4282 4005
--2082 7748
--2109 -3826
--4388 -6372
-5439 -750
--8796 -3671
-5932 -4833
--457 -897
-26 -9252
--9607 -1905
--4263 7237
-1699 -1732
-2452 -1175
-4947 8339
-480 4866
--2681 -3543
-1890 -3434
-1460 -2938
-3444 9257
-438 -4629
--2517 6537
-8531 3830
--6334 -2910
-7721 -2344
--4595 3043
-1162 -7418
--8526 1931
-4721 -7243
-2122 2666
-7935 -1176
-6032 6904
--2446 -7778
-8254 -5289
--89 4323
--3498 4702
--2821 8310
--5241 -8471
--2859 4674
-7541 2819
-8983 3478
-9474 -2901
--4780 -8242
--7596 -473
-5389 -7128
-3153 6157
-2336 231
--3363 4566
--5661 4776
-4570 6625
--1510 -2320
--7135 -6809
--4772 1490
--4023 -3296
--2865 -978
-4732 -7049
--3861 4728
-1518 -852
--3023 -2163
--3940 2015
-6238 2712
--1757 8322
--5564 -4364
-8739 2816
-4884 777
--1186 -9624
-1777 1544
--7308 1930
--1320 -1451
--4225 2498
-5058 5275
--505 1487
--1854 354
--5100 2647
--5035 -3288
--5834 -6420
--1690 902
-5737 -3001
--259 -5735
-7943 -863
--1941 9657
-3126 614
-1299 -2626
-5453 8239
--2032 -8170
-6991 -7071
-6806 -1782
--5176 8153
--1550 6309
-1165 5314
--1884 8969
--5870 -4006
-5187 4379
-1461 5154
--196 2917
--8039 -4446
-51 -8031
-6476 1989
-4597 1867
--3155 -1234
-1915 -439
--1448 -4439
-8052 -1818
--975 368
-6649 -1847
--783 -6781
--266 6900
-820 -7586
-5745 5501
-9752 -1526
--3935 1473
--5199 -1839
-7389 -100
--5198 -6736
--260 -9307
--1636 -8445
-8634 -5036
-3991 -7209
-5626 -4047
-3002 -4940
-7571 3792
-8303 750
-2117 -633
-6659 -2622
-666 4775
-6140 -3440
-4223 5427
-1078 9746
--4317 6889
--418 -6538
-2220 5412
-697 -9383
-1540 7602
-4672 -481
-1128 -5978
--2163 5493
--8045 -1011
-1458 -1155
-2194 -4
-8421 -4064
-6325 1393
-5576 7747
--7085 4979
-3809 5773
-3332 4475
--1761 3955
-102 -7546
--2952 110
--7276 6141
-7612 -4596
--6776 508
--4057 -4173
-4547 -2060
-1677 4635
-393 -7784
--6236 -702
-8005 4445
-6408 -4489
-6091 3648
--347 482
--4663 4600
-4908 2184
-6319 2074
-4891 -4539
-4917 -8490
--1070 9590
-758 -8071
-3758 -7751
-5875 1771
--1105 9566
--404 8625
--1488 -6586
--3111 -7526
--6260 -1691
--3035 -2700
--1453 -8131
--2047 25
-6856 -2362
-112 -2434
--4066 -1594
-34 -214
-6702 -457
--7092 2132
-6376 6500
-2262 -2192
-931 9128
-2724 -7406
--926 5547
--8391 -3610
-2503 7020
--7437 -4704
--1045 -4
--278 8865
--966 -5324
--2847 -1255
-7895 1589
-8053 4721
-7480 -1658
-4764 6284
-3326 4902
--2915 7647
-5166 -8290
--6903 -4822
-3350 4164
-705 6617
-3998 -5584
--3389 -8703
-5169 2094
-1764 4809
-3459 -1064
--3344 2393
-4007 -5669
--6454 -4192
--2724 2567
-7634 -951
--3851 -285
--5528 7909
-1922 9130
--8441 -432
--5562 3283
--7726 -1749
--7117 -4416
-2146 -9478
-3083 3844
--7991 -5231
--2192 2194
-6528 -2459
--3757 -1934
-3151 -9103
-8121 2187
--1867 7710
--326 -4750
-1339 6958
-5078 -7609
-525 8782
-5106 -7952
-4556 577
-5413 -6431
-4791 4456
--7899 4683
--212 -2836
--9255 2062
-1187 -4806
-2961 -8858
--8305 -1121
-5775 5737
-515 8832
--4335 -6470
-5370 -4973
--7536 -5528
--501 4376
--7014 -5087
-2731 -811
--4929 4056
--7305 -5818
--2179 7698
-49 5709
-6733 4116
--7115 5797
-4304 4492
-3411 -955
--6366 4851
-8795 2796
-807 -3663
-2709 9490
-2051 9324
-1152 -2991
-1424 -7224
--7734 2457
--4264 1541
--8169 2316
--1469 2680
--6697 -144
--2435 4421
--6076 7731
--3200 1140
--705 -4300
-8385 -4801
--5124 6128
--1394 7002
-1180 -987
--5568 -2365
--2715 -1238
--4368 -7087
-5536 4579
-129 -9329
-1180 4889
-6921 -2826
-7313 -1274
--941 165
-3200 2875
-4550 2532
-9813 944
-2759 7428
-6644 -2268
-556 9082
--3759 7132
--577 -944
-1202 -7180
--792 -2974
-6054 5157
-5613 -8093
--4584 -2090
-1631 8049
--4696 -7602
--1349 7829
-6011 -5822
-4660 3038
-2941 5004
-0 3889
--5526 -6095
--5803 -6335
-7921 226
-3079 114
-4539 7123
--3785 -5893
--2926 -8432
-5058 4905
-2877 -3174
-4252 4192
--2156 -6503
--2805 -1205
--637 8993
-4765 -1687
-2821 -2522
-6742 -6585
--5676 5588
--3253 4621
--5246 1754
--5847 -4016
--614 2854
--5572 579
--8138 -934
-5287 4677
--1881 2695
--2871 7701
-7311 -6135
--2953 -916
--3809 7400
--1590 -4011
-2955 -1253
--8007 -4980
-1068 1832
--8057 -12
--1710 -8403
--6613 -5041
--4965 3148
--9411 2195
--5345 1718
--7369 -3963
--8428 -451
-565 1446
--8103 -3595
--1411 3109
-2205 -4800
-6776 1870
-2927 -4425
-1571 3121
--8336 -4093
-6905 1655
-3524 -5951
--6864 6298
-769 9530
-724 9583
-4222 7616
--4628 -2695
--953 5700
-3962 7462
-7152 2262
--5380 234
--1886 4432
--1807 9022
-3136 -3214
--8905 2046
-2048 -1238
-6786 -3121
--5135 3930
--2986 5961
--8389 2344
--1250 8959
--4619 -6268
-2328 -3622
-2981 674
-1253 179
-6504 1965
-6562 -7452
--9844 1088
-2167 601
-19 1522
--2458 7867
--2782 -3050
-6586 -2773
-5038 -3026
-3209 -5454
--4229 -544
--5583 -836
--9895 869
-926 9057
--7419 986
-4802 8447
--2661 8390
-9513 1258
-2122 -9006
-424 -5699
--6218 -4298
--4109 8111
-6380 -6777
--2038 -1242
--775 -3886
-2245 -1055
-2200 -4385
-4298 -1626
-4382 704
-435 -7119
-989 5334
--2539 3455
-7860 1168
--1256 6215
--1218 -2819
-4857 2101
--1111 7082
-8730 436
-8523 -2413
-123 -1448
--7536 3721
-1778 -6027
-4121 3570
-8170 278
-2456 -8399
-5504 -7099
-5027 2637
-8388 2213
-5610 -3432
--3556 -1890
--916 -8537
--6367 -4753
-6136 7117
-4981 -4120
--8050 4678
-2838 1523
--5372 3898
-4366 3386
--3048 -667
-3227 1064
-5821 -5931
-2810 4839
--1356 -5205
--2944 -3786
-7060 -5243
-275 -9370
-1466 -4392
--3325 5496
--1774 6468
--5125 -7895
--8838 -1647
-4812 -1912
--3771 3044
-344 8452
--6944 689
-5804 4719
--9339 -1653
-7900 4832
-2656 3655
--4000 7847
--7516 1051
-4512 8473
-149 6407
-208 1812
--4917 2922
--6333 3539
-952 9239
-103 837
-7119 4740
-1897 9368
-926 7868
--5055 1435
--2125 -2944
--1100 -269
-4002 3676
-2175 1117
-5802 -1599
-1769 2693
-4452 1987
--3267 8652
--1833 -6779
-6929 6200
--4423 -1178
--70 9863
--6712 -7220
-1000
-5395 6563
-6213 4903
-127 5929
--8378 5157
-2276 -259
-3900 4559
--7038 3746
-72 3123
-3796 581
-1382 -8521
-1222 -7367
-2184 -5888
-5417 -6174
-5071 -527
--6533 1388
-4599 8136
-3746 -5932
--1307 -7930
-1540 -9276
-5764 4708
-1913 -9729
--7419 1398
--7803 2652
-7462 -3493
--2764 -1756
--5481 8275
--164 -4065
--8358 3677
-8638 161
-2876 -7279
-6931 2217
--2359 9306
-669 -2965
--3812 1855
-3032 -7310
--7373 4558
--9592 1115
-66 -8841
--2109 3385
-1455 -4888
-4638 2629
-7917 -4099
-4622 -3975
-842 9869
--3580 8242
-2741 5562
--1700 -2561
--3318 -5228
-7697 -5959
-462 -3667
--3518 2967
--2054 -6986
--5173 599
--925 -8470
-5269 3499
--3527 8891
--5948 -5474
-2205 -7871
-2876 7979
--5742 1788
-2685 -2753
-5090 3183
--6972 -5365
-1357 -3649
--278 3305
--828 4262
--5093 -4999
-6493 -7400
--765 -6348
--1357 9400
--7389 -5495
--5221 -3860
--817 3091
-5780 3766
--1990 -3973
--6887 7106
--8933 -2383
--5363 4303
-1757 -6625
--4795 1495
-1048 8871
--1748 8511
--406 -986
--2804 273
--3336 802
--7440 5663
-2451 -8033
--7004 4575
--8949 -2233
-3283 -794
--3888 6904
--8505 1024
-3835 4072
--4325 -8713
--1343 1486
--7528 -3374
--130 9428
-8783 290
--7125 -2123
--2158 -817
--121 -8552
--4743 7284
--6966 -3883
-182 5575
-5309 6234
--9404 -2468
-6026 6362
-3683 6004
--6477 -2987
--5559 6020
-7703 -248
--7075 3725
--8846 -2334
--4218 5342
-1415 3543
-5116 -3998
--6914 -953
--2945 -3659
-3245 -1277
-3816 6757
-5723 -6938
--1141 -7526
--6746 -2089
-928 232
--3591 4506
--7072 1703
--9406 -416
-9954 504
--3620 -4803
--7833 -4573
--2780 1037
-5551 -5707
--869 -5902
--4795 129
-2484 9236
--3236 7321
-9281 787
-7881 6007
-6980 -2544
--4158 5033
-6770 -2450
--2496 4386
--1658 4434
--5859 405
--8418 -2007
--7405 4541
--6138 -3271
-308 3457
-765 3435
-6840 -2648
--5283 -5627
--2243 7306
-4551 4369
-8803 -4317
-1389 -7523
-618 9155
-3445 6730
-3645 -6188
-7893 -4014
-4498 -4051
--1708 -7778
-8086 -3486
--3683 -7242
-8940 4422
-204 -1835
-2111 -8006
-3104 -5405
-319 3991
-5360 -4378
-5341 7785
--6349 5902
-4224 2484
-5895 -7156
--1199 6359
--3500 5958
--1902 6918
-4097 -4735
--4406 2388
-3027 2467
--5684 -5476
--3061 -2223
--4562 3155
--1105 -9547
--4636 1571
--2831 -7167
-8266 -1947
--1673 -5139
-856 -7640
-5522 2580
--2266 -6265
-2556 2127
--4068 -4989
-9854 -768
--720 -5203
-6325 5199
-524 4318
-109 -7452
-9210 398
-741 7995
-3834 1993
--7 -7949
-3392 8971
--167 -849
--2798 8644
-6926 -4994
-6207 -7767
-7127 -482
-3356 -1608
-5765 355
--1525 6605
--3589 6324
-1036 4186
-2538 -5997
-3526 7861
-1480 -4338
--6095 -7471
--1631 8430
-5189 -7900
-3626 -4642
--2886 4469
-4806 2670
--7077 -127
--3536 -6493
-6253 2446
--4575 -3434
-8799 3134
--1152 1023
-150 8768
-6525 2674
--1469 -5983
-6223 2000
-8630 3130
-1071 -6252
-5895 2999
-3361 9114
--549 -5512
--4376 -7002
-7416 -5121
-8003 1546
-8028 -143
--2021 6977
-1577 -6981
-2147 -351
--216 -1627
--4150 5252
--6912 -4039
--1808 1553
-7972 -3537
-6844 -5036
--6005 -7790
--6043 -6375
-6629 7296
--4389 8634
--4031 -3219
-4611 -36
--4392 4035
-2989 -4407
-2271 5420
--62 -4187
--1369 8168
--2686 1845
--4668 5664
-1388 -4197
-7201 4700
--6465 -3
--5650 2602
-3179 -4523
--5733 -7588
--3515 5257
--5391 201
--7977 -1791
--1730 2799
--8675 -463
-6992 7131
-6767 -7338
-5407 4139
--5808 -4730
-3375 5239
-2937 8913
--3310 1247
--4919 5854
--7377 4753
--2164 3838
--2956 -200
-6175 4354
-1106 -485
--8474 -3820
--3504 6059
--608 -1019
--1436 -7184
--1410 1998
-2810 507
--5264 2243
--2395 9545
--3269 -4396
-3160 -7345
--1607 568
--618 1639
--7953 3787
--2495 4965
--6716 -6977
--1146 -7633
--1328 8651
--1203 -6773
--3784 8921
--573 -9924
-5771 -321
--3569 4301
--6264 -5924
--1346 3952
--8319 4814
-737 -6480
-8294 -356
-5408 4903
-1406 9383
-1909 -4385
--7227 -2775
--3207 7140
--8797 -2736
--7483 6308
-948 -6749
--7116 4458
--2358 -392
--4663 -5381
--3267 -5328
--3283 3632
--8766 2768
-2497 -6852
--3487 829
--5583 2269
-3850 8409
--1088 -9534
-2192 7255
-3144 -4143
--5459 2130
-2977 3160
-4708 -6517
--41 6053
-87 8661
-1790 5227
-9126 958
--6343 5615
-7534 -3711
--4207 6445
-1938 7766
-6330 7582
--6430 3305
-8976 -2334
-4668 -6761
-2139 -6167
-5109 2206
--7183 4478
-391 3304
-490 -4981
-2567 6720
--3498 7436
--198 -4005
-8130 5750
-5181 3779
-940 -216
--1767 8772
--8199 4146
-8515 -4519
--141 7040
-4833 -8689
-924 2804
-2932 -6190
--6200 -707
-3991 -8509
-4778 -4394
--4559 -3982
--9068 3994
--4981 -410
-9477 -1981
-837 -9819
-7124 6556
-1154 -9667
-1641 1741
--870 347
--3088 -7298
--4850 -5322
--4888 -2759
-2145 634
--8334 -5451
--7437 -226
-6889 2982
-4285 3322
--83 -8916
-6928 5307
-9314 -1973
-8540 1872
-5680 6557
-814 1785
--6616 7146
-4728 6829
-1410 4918
--3930 5172
-6769 -1690
-3765 3371
--3403 -7042
--424 2783
-4537 387
--77 7293
--4819 8468
--8032 -376
--8372 3007
-2203 7651
--4234 2537
-1428 5635
--6901 7142
--7416 -6654
-5688 697
-5571 6900
-3957 7058
--7392 4392
--9388 -1317
-3061 1864
-4563 -2439
--3871 4908
-980 4307
--3569 4111
--378 -2274
-34 -972
--8576 -2386
--7293 2692
--8528 3813
--2280 -5034
-268 -6964
-13 -615
-1746 7500
-2115 -8294
-1377 -5784
--8497 -1889
--3218 -9444
--2995 -945
-1275 -3484
-63 7207
-6097 -6926
--6746 -5474
--435 -3017
--621 553
-2605 5792
-3585 1047
--2869 9258
--1252 8600
--256 -9847
-8221 -3503
-2444 -122
-6179 4625
-8833 -1298
-1024 8350
--1370 2443
--9898 -688
-4019 6092
--9442 -2174
--243 -1727
-5878 -5457
-1820 1330
-4477 -4580
--2912 6935
--3598 6109
-1211 -8006
-67 -8342
--277 6249
-2449 4877
-2357 -6697
--4118 6255
--5915 -1932
--8026 5848
--6679 335
-1749 5925
-828 -3093
--7033 -3623
--5044 -8284
-7760 -3784
--8771 2574
--6225 5384
-5168 5700
-678 7575
--2555 4113
-2112 -2241
-6078 6761
--7779 1681
--5511 3336
--2867 -8921
-4911 2497
--9164 -51
--6269 7381
--7469 -3386
--4508 2195
-1907 -6393
--6258 -3124
-6906 648
--1048 3740
--1566 5182
-1480 5300
--4700 606
-4818 -3770
-8827 2470
--4961 -6057
-2753 -1362
--8156 4379
-1870 -1471
--1637 5958
-114 -7038
-6477 -2220
-8547 -3331
--8960 -3441
-1814 -1192
--3600 -3699
--921 3713
-200 7450
--2831 5050
-3624 -8636
--76 -5179
--6603 -7244
-2854 3764
-8740 2155
-2735 6804
--1014 -1779
-948 -4531
-4975 8347
--8032 3381
--5391 -3494
-3385 5640
--626 4065
-6955 5952
--3705 -8699
-6981 -4953
--3795 3040
--5044 5663
--3009 1786
--6636 4011
-8648 -4471
--1756 -133
--7835 3151
-1223 3970
-6822 -5290
-6857 -5506
-1089 -3342
-5711 7458
-7632 1480
-2296 5242
--1859 -3970
--5514 2292
--3444 -2761
--480 -9790
--6702 -5976
--8908 1232
--2523 6274
--6600 1694
-5985 2579
-7066 3759
-6333 5786
-3057 5309
-6738 -7100
--4484 1662
--3155 -6554
--9569 -541
--7450 -5464
-2749 8760
-771 8038
--6354 -3589
--250 9774
-1397 6466
-634 -9843
-8060 3279
--1473 -7518
-5875 5012
-4147 -784
--9303 1901
--5125 -7863
-1983 -411
-851 -9659
--7821 -4699
-2337 6547
-1505 9408
-3274 6751
-42 -8112
-5500 3026
-2395 -8200
-989 -9653
-688 -1849
--4911 2461
--1824 -1762
--4938 4442
-934 -7036
--1520 -430
-8677 2852
--4263 6343
--1428 922
--4332 5787
-4240 -3392
-507 5957
--6683 2287
--3025 443
-6645 -4590
--3071 2744
-3814 -4661
-7592 -587
--520 4889
--2730 7973
-2263 1685
--3501 -6169
--4717 -8570
-4194 -7112
-2708 7009
-7062 4305
--9641 2270
--1938 3292
-3382 5006
-6731 -2681
-3579 -3634
--1002 6364
-2146 4905
--3756 8739
--4951 1046
-7415 -4892
-2279 -3353
-2175 -9343
-1018 -2166
-6004 -6838
--2380 6125
--6280 2726
-2728 -1474
-5862 6157
--4255 -7995
--190 -8778
-9528 -1195
-2714 8363
-3089 5158
-7685 -1280
-3179 -6549
-1391 -3094
--5970 -3155
-4372 680
-8439 -3537
--5240 2508
-5167 -4306
-7802 -1371
--3147 2170
--3211 5592
-575 -6550
-1919 2869
--3845 -3746
-2138 5400
--4900 -8476
--2782 -7821
-1220 -3288
-1663 2650
-5777 832
-7884 4002
-4351 1431
-2055 -4267
-367 -3154
--273 -7796
-8828 2283
--6074 3751
--705 8734
--6713 -6508
--234 -2055
--1118 8462
-6430 3726
--2818 3384
-6101 -6918
--1038 5554
-1455 6902
-3705 256
--3463 5727
-7252 1494
-248 627
-9621 2249
-4984 -1325
-5506 7436
--1725 -1367
--3039 -873
-805 6555
--2773 4987
--3066 -1919
--139 -3423
--5656 2050
--8117 -3169
--5315 2339
--1468 -755
--2189 4025
--9720 -2197
--3726 -309
-1644 -6804
--538 -9714
--2343 -8932
--7611 -297
-5015 -6303
-8481 2800
-6898 -6844
-987 4527
--5853 2154
--6744 699
--4192 -8512
--1917 -9611
--4351 -1115
-3355 1078
--1659 -7110
--1592 -5909
--6020 3797
-6317 -5045
--2778 1033
--4199 8188
-3343 -5681
-4326 3480
-6289 -5022
--2168 9421
--6147 -3700
--8927 -3114
-5874 6856
-1669 -8627
-2802 3648
-3155 2485
--4351 4390
-9319 -1213
--7199 -6324
-8334 -4908
--6760 -3838
-4891 -6857
-1393 -2944
--7960 -5673
--1135 -9326
-782 4510
--6485 675
-3442 9165
-62 57
-9421 2417
--1173 6177
--8256 -1094
--1309 333
--7712 1005
-4070 -223
--9316 -874
--1377 -8325
--3225 -3700
--906 -283
-4518 -7798
--4111 6263
--2328 2336
-1559 -1929
-2369 6342
--3131 1977
-9363 1799
--1166 1011
--2695 -7598
-6002 -4429
-208 -558
-2034 8859
--5167 -4139
--476 -3031
--815 -4275
-1274 1997
-5216 -605
-5405 2850
-5340 1232
--1953 -7819
--7509 -1512
-4729 -5776
--2108 9439
--694 -4051
-5730 -6534
--2864 -1700
--4463 -2757
-967 301
--3655 -5625
-9586 1521
-9873 -1235
--2512 1234
-3705 -3066
--2957 -4503
-6927 3194
-1604 4213
--7037 5961
-3959 2463
-6348 3522
--8887 -2173
--3447 -718
--2929 1413
-9894 -1024
-5638 5817
-1758 -2319
--3333 6621
-4356 -6081
-7751 4003
-323 -3492
-4604 -5639
--4882 2355
-3036 -6090
--2162 -9231
-6383 1759
--9358 -1468
--1163 9393
-2783 -1103
--6653 -4796
--1735 1436
--6184 -4288
--6620 -3687
-297 -8713
-4456 5047
--8022 -1875
--7213 4380
-2340 -4064
-8767 2886
--383 4992
-641 -7872
-494 -4578
-4843 3248
--750 7665
--1644 5326
-1846 708
-4170 -6975
-4942 -7475
--1054 -5357
-4813 683
--5149 -2591
--942 -8504
-7139 6903
--6786 -30
--8320 -2579
--9233 475
-2835 1149
--6199 4398
--9648 956
--4810 7220
-629 494
-5554 -4784
--2896 6551
-48 8454
--4592 1072
--9193 3907
--9413 -3375
--1966 8383
-7739 5966
-4491 8397
-5819 -2769
--7322 -6683
--1204 5083
--8496 -4435
--4940 -5131
--8722 -2972
-1608 -7148
-3028 8321
--7810 -839
--3607 -2132
-1417 -1674
-7173 1425
--1741 -282
-607 -9253
-7047 2491
-2676 3317
-7548 -346
--7813 763
-2760 -9410
--3951 744
-1320 1114
-2090 -442
--1538 6261
-1203 1122
-3932 -4996
-9428 -725
--2485 -4570
-7899 530
--4701 2662
-3880 4581
--5638 5357
--2430 3090
--621 2172
-2789 1315
-9524 -2516
--4684 5629
-3721 4573
-9576 -1386
--3703 251
-8006 4438
-2653 -4949
-5244 4884
-4463 5021
-376 7181
--2030 6423
-6797 -5896
-79 -5278
-1495 -6352
--4431 -3021
-5109 4603
-6437 -4343
--2952 -3980
-8579 -4556
-2156 3136
--1334 -4276
-7544 -5555
--2471 6848
--682 4058
-4655 4058
--9033 2891
--1266 8821
--5997 -6767
--5442 -3612
-3085 4172
--5839 -5516
--7611 1202
-1611 1010
--3313 -6772
-8576 -4523
--7437 -547
--2063 5360
-3514 -7460
-8235 4151
--5569 7495
--4287 -6505
--4976 5993
-5959 -430
--4554 5387
-9096 3019
-6938 2582
--5079 2398
-1385 -994
--1063 -5507
-2572 -7937
--9322 2518
-7294 -976
--3480 1743
-3448 -8943
--7217 -4175
-2498 9143
-2434 -476
--2169 9203
--1271 6047
--2671 -3864
-5799 -7605
-161 9691
-1315 543
-3435 3679
-5752 3394
--6728 6607
-5855 -3209
--6288 1835
-1787 4618
--2627 -9327
-1869 6000
-6188 -217
--8574 -1523
-5262 -1317
-1912 -4913
-166 4222
--5770 1268
-6433 -5734
-4496 8363
-1222 -9231
--5489 7299
--7798 -2385
-2012 -1779
--1971 2352
-1438 -9666
--7550 4073
-3269 -3965
--6771 -4538
-7160 -5285
-240 1591
--5060 4362
-9947 -666
--3072 -1037
--254 -5681
-1453 -4234
--6738 -879
-8505 -1593
--1688 6494
--50 -4464
--3128 8409
--6146 -547
--4974 -8128
-8028 -5904
-3111 6277
--5495 7855
-780 7716
--621 3714
--6039 -3631
-7449 5897
--6652 -3035
--3425 3622
-1914 -7707
--3433 -2961
-3692 -2073
-4486 -1323
--4032 -3381
-4823 7170
--5811 -4077
-9532 -619
--3509 -7070
-4820 -6775
-2242 2952
--1215 8193
--2923 2913
-4068 8895
--977 9853
-58 5619
--2749 -661
-7491 -6335
--9309 -3464
-1000
-3829 6620
-576 -1182
-3327 -5046
--5111 5868
--3913 6417
-390 -2802
--3962 -3954
-3201 -3330
-1956 1406
-3413 -4286
-6697 -3040
--3172 8966
-2076 -8173
--241 1911
-5425 -7060
--738 992
--9253 -2885
--4830 3713
--3286 5529
--1574 -9396
-864 -6696
--7953 -2696
-3029 3944
--2193 -3611
-3960 7351
-1331 -910
--2426 7456
--3639 3526
-2488 -5019
-4571 7908
--8278 -2323
--4034 706
-6180 4043
-5404 -7897
-4089 -2131
--5119 -6364
--836 4134
--795 3754
--7016 -5580
-2663 -4871
-2768 -3649
--1214 -8895
--8413 -875
-4536 3106
--5774 7089
--369 7020
--8258 4428
-8635 -1088
--9419 3307
--5116 -7449
--9136 -1923
-4026 5990
--1702 5846
--9546 -2907
-3447 -4092
--4270 7162
--4244 -3984
--3304 -4123
--1128 4430
--8465 -4301
-6081 -3008
--2361 -6230
--1068 1332
--4006 6018
-5469 448
--1207 6658
--2858 -1415
-7174 -1544
-5805 -7
--8128 5361
--1666 3598
--4416 -3713
-808 8568
--1180 -8864
-184 -7858
--3662 -7826
-2136 -9354
--227 -6961
-814 5994
-3989 -8496
--3745 -69
-3905 -3906
--4535 -6702
--2584 -3248
--8976 -1543
--3863 2810
--5984 1955
--4719 -342
-7204 4119
-4739 4162
-82 -1654
-5404 3524
-5780 -7575
-1378 -7171
--4562 -2110
--3441 -332
--5450 2107
-1857 3027
--706 -73
--4535 2704
-6430 -5841
-3472 4484
-6735 -7276
-3068 -7953
--1563 9356
--858 -2746
--633 -5953
--3166 2923
--9232 -1616
-6603 4593
-3730 604
-5752 7134
--982 948
-1492 8313
--8934 -2342
-7970 -3920
--1818 -8343
-7119 6980
-2141 -5444
--5124 -861
-4328 -3025
-8372 -2595
-7581 6342
-7413 2097
--9102 3252
-165 6042
-3143 -4801
-4316 -8480
--5884 3174
--4215 -3147
--4609 -8769
--1513 -6114
-9177 3347
--4109 4910
--836 2349
-1104 3103
--8501 1770
-698 -9477
--8244 4952
--1106 7179
-3694 -745
--8092 -967
-75 -8635
-9063 116
-2390 -8185
-5720 4746
--2713 -720
--1815 -5191
-5978 21
-6933 -1607
-1374 7473
--1327 5431
--9290 976
-4445 -7525
-131 -9375
--5423 -7198
--4235 -3707
--6236 2465
--2893 3426
-3628 7062
-5894 6448
-4157 -667
--8255 -2430
-1153 -7649
--4976 2216
--343 -2590
-1166 -9302
--7850 -3744
--2820 -5248
-2950 2347
--3986 -4880
--29 -1033
-1771 2414
--6380 1409
-6596 6604
-655 -758
-5354 -5225
--4407 -6414
-1715 -8780
--558 3677
-2969 -6558
--6031 -2874
--4662 4527
-6588 -4571
--3402 356
-3769 786
-2530 -2364
-1182 4072
--9221 3402
--2534 749
--4123 -6295
-556 -9959
-4136 -5347
--1248 -5552
-8617 1405
--691 -2817
-2794 -1281
--6765 3954
-933 -7377
--6914 -1542
-2098 4866
-6113 -654
--2093 514
--6477 2521
-7377 -4041
--7998 -2700
-3031 -5969
--5889 5665
--3906 -7605
--2117 88
-3615 8655
-5021 8622
--6852 2053
-7463 -5829
--704 -6615
-2129 -1696
--7451 5514
-4027 4385
-4669 47
--510 2081
--7018 3317
--5760 6787
--7508 4709
-4784 1255
-4169 7574
-9187 -326
--7115 -4138
--5641 -7496
-3342 -3025
-4485 -574
-5172 4691
-3573 -1166
--4693 -7388
--4042 -7415
-4076 6240
--2409 4256
-2810 -8330
-2065 7958
-5557 359
--1303 -2796
--7 -460
-4690 -5283
-5900 285
-3981 7751
--622 1166
--3420 -2297
-944 4526
--4301 -3465
-6046 48
--5346 4548
--1760 1382
--5702 7149
-7188 -1596
--7553 -1197
-8984 1341
--664 8454
-2946 3587
-3535 5168
--5058 2233
-5537 2083
-269 -3053
--4000 -7703
-1574 596
--1700 6539
-3009 5303
-43 -8050
--24 5633
--3954 8969
-4065 -8790
--2282 -1774
--3404 -1827
--72 9239
--3776 5940
--6027 4158
-4803 1775
--3517 1966
--3064 4702
--8027 158
--4662 -272
-3058 -8352
--3227 -2995
--1662 1880
--7947 -435
--5238 -3738
--6753 5091
-2222 7040
-2490 -5823
--1683 -8943
-7285 -1846
--6316 -3175
--5809 -2870
-3160 -4811
--4150 -757
-3166 3548
-2038 9703
--2627 -3640
--3308 -3747
-2831 -9134
-2592 2747
--1766 5564
--1193 7189
-5300 4997
--5849 -2671
--5510 4493
--7108 4573
--3151 -2107
--1092 -7529
--6149 -2042
-1855 -8969
--8038 1686
-3746 -3086
--6300 -2463
-5022 -1690
--1807 -9596
-3139 -5582
-4365 -5537
-8745 -1031
--5200 -5042
-2433 -1049
--4033 8805
--120 -6873
--3880 -6117
--1094 -5524
--7316 -4628
-5276 5731
--6456 90
-5686 -6335
-3035 9214
--2848 -476
-6038 5347
-6582 -3783
-8719 -4357
--9097 -1475
-881 3644
--5559 -1053
--2078 524
-6885 -7102
-1383 305
-1979 4193
-5109 3956
--5448 6311
-8758 -2059
-50 2816
-7662 -4654
--2087 -9639
--1977 -8435
--9232 -736
--1510 -6592
-1095 -9636
--5282 -2510
-3803 -1273
-1489 -9513
-3767 -3192
--486 -5906
-460 8210
-3627 -4583
-4025 1623
--804 -7273
-1012 -3447
--4964 -2841
--4230 3945
--3825 5769
--3706 -478
--3065 -681
-4368 -4266
-1907 4253
--4624 4384
-3116 2774
-5292 308
-8651 498
--2419 2207
-646 1342
-8478 -3001
-6031 875
-8417 -921
--7624 5650
--8895 -793
--5810 -555
--154 2497
-3595 8513
--6008 -3644
--3166 5751
-4855 3700
-7686 -6070
-5021 7949
-100 3598
-7805 5580
--8260 3753
--3481 2389
--3671 -5521
--7037 -4406
--765 6633
-5530 -5849
--56 1965
--2957 -773
-798 7884
-8719 -3802
--841 -7444
--1628 7295
-3286 6125
--7169 -2968
--2347 -6373
-4260 -1044
-645 5301
--3522 8435
--5323 -7146
-1626 -1580
-4876 -1134
-1446 5271
--3097 249
--3790 -6464
-7121 3185
-1085 4867
-3095 3534
-4034 3315
-1315 -4114
-1342 -2942
-9164 -3580
-4511 -18
--3256 3214
-5569 -1466
-8943 -1029
-2118 -4285
-1438 7462
-5982 292
-1849 -4162
--8179 -3515
-8753 2791
--2698 -6265
-2000 -9537
-1650 -1395
-8500 2384
-7257 518
-148 3284
--4645 -2569
--3018 2813
-7467 -3622
-5577 2919
-116 2600
-348 -4542
--1077 4348
--1512 101
-5345 6138
-750 -4155
--5726 6318
--3638 6948
-5728 -7017
-6788 226
-6012 -880
--5214 7883
-3061 6647
--333 1435
-7517 -2226
-7187 90
--4496 7041
--4527 7410
--2625 -5836
--3361 -3778
--6829 -2776
--4281 -6544
--8090 4667
--3107 -5061
--6880 4496
-5703 -1938
-6407 -4661
-6256 -7337
--1202 -7814
-1011 -494
--3690 -7384
-215 7737
--8742 936
--4515 -4824
-9362 532
-7948 -3934
-5261 6625
-7109 110
--2137 -3823
--7408 6258
--2797 1129
-8890 3073
-6734 -4364
-891 -7570
--8840 1500
--2503 9453
-6841 3143
-6241 -142
--5935 -3860
-9075 -3197
--5190 -195
-6993 3436
-5366 2392
-9490 1264
--6035 -5125
-9065 -698
--4573 4961
-469 2687
--5001 -5485
-1059 -3416
-235 5677
-841 9424
--3302 -4541
-654 -1558
--6104 1385
-1520 -3225
--1328 -575
--6954 7028
--4186 3586
-1402 -4328
-5083 -7859
--1593 5851
--2983 -6805
-3337 -87
-5111 5725
--8198 1374
-9004 571
--6116 6661
-8680 -4529
-1522 9224
-6538 -6582
--298 7712
--7686 4961
-19 4250
--9408 1128
--9120 -2557
--7939 3610
--842 3304
--2027 3554
--3664 4825
--310 -3267
-1366 -8924
--6358 3686
-6446 -3379
--7712 -1473
-4408 -2134
--9457 2233
--3900 -6519
-9230 -3011
--6586 -4962
--5640 559
-9449 -3162
-3434 3848
--7140 -5112
--1868 6840
--2511 -8670
-6799 5040
--809 467
-470 -2150
-6857 5093
-2303 -6130
--1028 8918
--5317 -1251
-5932 -3914
--5686 -7900
--8327 4801
--6248 -7566
--7917 460
-6133 -6405
--7762 1767
-2014 3187
--7627 -4241
-4041 7506
--1019 4856
-6682 412
-2643 2095
--901 3384
-8409 994
--1800 4333
--798 4868
-1029 1046
--2445 -1181
-6260 126
--7676 -1436
--1 -2444
--742 -5562
--95 648
--1947 -572
-4647 -3773
--8555 -1857
-1733 9136
-1692 -8770
--2854 -6170
-5145 -6339
--854 -5659
-2233 -4577
--635 1080
--2866 -6541
-765 6159
--5328 6256
-634 -6358
-6764 5058
-2687 -4463
-2100 478
-4709 -8091
-7408 -1062
-5829 -7671
-3517 3028
-4131 1603
-7047 -2686
--2658 -8186
-1298 6090
--8914 909
-6064 3050
-1377 -4678
--1112 -1895
-8757 -1240
-8893 1771
-3284 5435
--5433 1436
--3183 -5553
--2859 -746
--2631 2987
-7242 4625
-5299 2073
-5502 -4094
-4376 -7489
--7219 3061
--5153 -1221
-133 -4379
--1258 6734
--6310 -3039
--4625 -4238
--5349 -2150
-4168 -4666
--3384 -2063
--2145 6200
-9174 152
-745 5781
--5221 -7336
-198 -2719
-4168 5467
-5019 -4622
--6591 -1950
--6604 -3816
-593 -4527
--2540 -2152
-8621 588
--7569 -3798
-1038 -6881
--3117 -1588
--1916 2687
-472 7362
-5061 6432
-4088 4775
-5164 -4949
--5062 -3323
--2476 980
-6734 1490
--6062 -5989
-3750 -7881
-4731 -8025
--2835 8652
-4397 8261
--2265 -4853
--3825 -3329
-7576 2228
--6798 -5799
--8803 -1366
--6986 7065
--129 3724
--3173 3462
--5936 3264
--3724 -6360
-3424 -5733
-2192 -8766
--8697 -4110
--9637 -2648
--3996 6261
-997 -7929
-8288 4546
--2096 -2422
--2081 -9040
-6561 -6989
--585 -349
--2171 6055
-1746 3568
-3311 -1752
--5384 352
-4057 -7925
--7970 2936
-2971 191
-4708 6937
--6802 147
-4588 -1821
--1734 3911
-3630 -2181
-369 -2337
--4955 -4288
-564 111
--2228 -9231
--3210 -4992
-930 5642
--2544 -4009
--5307 -5929
--2951 3949
-9191 -3491
--483 5043
-7169 -4288
--5392 1258
--1349 894
--101 -5542
-3849 8085
-1351 -9135
--2024 9008
-5291 6900
--8340 3325
-3116 -5824
-5439 2793
--4447 5798
-153 117
-5169 -946
--3207 -5283
--3728 -9084
-270 -8822
--8556 1515
--8224 3730
--2526 -4256
-1510 6842
-430 789
-7790 -1748
--6253 6363
-4656 -1679
--2515 9380
-5597 -3994
-1565 -8876
-5960 -7777
-2101 2779
--2004 -3529
-2872 6522
--5290 -4612
-8168 -3891
-309 9896
--5830 6046
-5513 -101
--1186 64
--1684 -2533
--9608 -2206
--4583 3787
--2214 -938
-3701 1051
-841 -8115
--5421 4021
-2063 -5609
--5433 -5572
--2110 9517
--4673 -6555
--5677 -5631
-842 -8533
-7086 -507
-6699 -2707
--629 -5985
--4131 -7467
-6793 1115
--8669 -3861
--9482 -2731
--3466 2352
-1555 3813
-6823 -2640
-2038 -4697
-9654 -2027
-1648 -7815
--9230 2014
-6717 -2807
-720 1482
--4964 -6508
--141 9936
-8101 -5564
-3060 8366
-5542 7907
-4903 1616
--3652 7219
-1470 -9852
-2239 235
-6831 4096
-1260 -9576
-1620 2894
-6338 5485
-4639 4596
--4713 -442
--5858 -1064
--3749 -3330
-3531 8117
--8261 -4
--5630 345
--303 -3853
--8199 -4199
--7975 -5025
--1547 -7545
--4305 -7317
--2831 2650
--90 -8106
-6270 3914
--5875 -7115
--7598 -1494
-5142 -943
--6787 2144
--3865 -7107
--8118 -5430
-2091 6998
-8538 -836
--5324 -2953
--6302 -2496
--3386 -6916
-1767 -2197
--370 -7005
--3000 7456
--8707 -114
--713 693
--4049 5785
-8320 -1749
-7575 -870
--8265 -3747
--7868 -4366
-7448 4301
--1484 -2754
--3515 3102
-5807 -3387
-2335 -8937
-237 -2210
--5501 7954
-5010 4394
-3642 -2689
-9239 -2561
-4751 2525
--9069 -1154
--1111 -9484
-8324 -1304
-188 8312
--9347 -1993
--4113 -6931
-8548 -4283
--15 5222
-147 2067
-1364 -2737
-7781 3476
--6685 -2880
--8064 -840
-7630 -364
--6456 5600
--921 -1321
-1307 -7291
--7769 3614
-2860 -8135
--4901 5436
--1794 1530
--1995 -6170
-4830 -5519
--44 -7323
--4487 8531
--6365 -2709
--217 4996
--2707 -854
--4946 2935
--3244 -8377
--9171 -3179
-4564 2682
-3196 5313
--3279 -2266
-4881 2383
-5566 -6433
--2149 -2076
--306 -4609
-2139 -6530
-8686 4671
-6007 2089
-5704 5844
--3420 -2303
--9553 -120
--1058 -8197
--3635 -7117
-8926 2193
-870 -9197
-6499 -5174
--4293 108
--2713 -558
-6808 1445
--3062 6025
-3078 4539
-5485 -1435
--359 -4723
--2438 3817
-8732 -2706
-794 -1094
--1736 -1233
--1349 -9566
--3280 1414
--2338 8265
-4920 4851
-6592 -959
-6196 -3858
--9142 112
--3906 -3761
-114 -467
--1677 9845
--6782 2631
-5700 1503
-4225 8433
--2604 4753
-4232 1482
--1165 6353
--4301 -7585
--1912 576
-4816 692
-2028 -57
-8541 -1206
--9036 4249
-324 -7213
-7358 5863
-2335 5084
-3113 -2426
-5458 -4743
--6507 1856
-4760 946
-235 8268
-2288 8233
--4355 6912
-457 9971
--4849 156
-1527 -2588
--3223 5298
-3636 -3769
--605 -9546
--5748 -5503
-3120 -8558
--2322 -832
-5900 3245
--7325 -4314
-6515 -3537
-4874 -8593
--4275 -4663
--5768 -466
--1248 8163
-2912 8946
--7275 -1875
--5544 -1365
--2650 5754
--4588 -8777
-54 6529
--1414 -3324
-3432 2806
--3028 3889
-1151 -6648
-723 490
-1038 -2836
-5547 5744
--4193 6002
--3154 1408
--4702 2060
-9343 -2732
-4389 -7348
-4660 6358
--6899 6056
--1691 -7302
--786 6910
--4204 1385
--8967 -4099
-3904 -9199
-4214 -8024
--2873 -7020
--1913 4458
-2031 4623
--1037 -1301
--1474 4226
-5700 -7086
-5054 -3037
--5667 2139
-2601 -2531
-1150 3939
--2565 -7501
-1400 7852
--8122 2203
--8250 -832
-3411 8491
--6402 7593
--9304 -1034
--1409 4198
-1543 6071
--926 -8022
--6207 5579
--9069 -4025
-6079 -831
-9204 -85
--2187 9205
-3556 -7827
-2723 7556
-3154 -3758
--2137 5142
--7915 -3894
-5789 -3921
--1403 -805
-3216 1679
-9441 -2568
-2823 -5196
-822 7686
-6724 -1191
--7291 2428
--8637 4235
-1200 -9445
-3457 -7691
-8969 -1621
-2801 -4194
-5527 8193
-8117 -5672
-1000
-9512 -1044
-1197 -76
-2563 -3521
--5067 -5056
-1259 -1502
-7647 3499
-2701 -3979
--3840 7842
--3696 -4709
-2396 -923
--715 681
--937 -8541
-6476 4585
--6980 6708
-3200 -5967
--6969 687
-1416 -4322
--4982 3842
-2813 -1386
-2543 567
--6357 -1016
-2267 2743
--9244 -3056
--9106 -3838
-4011 -4662
-2116 -1429
-6219 -5021
--1973 8858
-2233 8181
--5370 2992
--7380 -6347
-4290 -2785
-8589 1505
-1156 -383
-2892 1543
--5600 74
-95 -9036
--7651 -6377
-6567 -5103
--873 565
-1103 1943
-8937 550
--7222 2648
-7925 266
--6163 2055
--6881 6604
--3572 1821
-1938 1617
--1382 4884
-1176 6371
-7695 2377
-6250 -6275
-9099 -1456
--1763 -7882
-1984 1805
--6206 -5695
--2947 3928
-2740 -8149
--5006 917
-2031 -9139
--5113 4845
--6691 -902
-2367 -3822
-4037 -180
--8608 -3050
--3342 -5073
-7669 6008
--1622 8952
--3471 -7081
-7263 6
-3000 -1220
--1581 164
-6024 4928
-4992 -2626
-3918 -3333
-2539 -4720
--6091 -3390
--9298 -1447
-3704 -7933
--2773 7082
--7154 501
-810 5668
-2958 7799
-7786 -4311
--5585 8061
-4764 -4914
--423 -1713
--3497 8442
--1483 4561
--1678 3866
-3350 -3930
--4516 -7192
-2224 9248
--3419 -1593
--2252 7950
-1507 -7157
-751 -4646
-369 3293
-8586 -4916
--5651 4793
-2623 2434
--2664 6116
--2704 -2165
-6200 -3334
-765 -7791
-3148 -4193
--859 -3299
-8596 2159
-11 -2657
-7649 -1639
--1957 9089
--5619 2339
-7864 1259
-6796 6855
-3229 -3071
--1486 -4230
-3165 2125
--3482 8325
--1642 6886
--894 7393
-8718 3621
--3254 3180
--5440 -1224
-5814 6030
--5974 -3903
--4964 -5951
--4250 524
-4895 -4953
--1866 -3480
--2131 -7771
-7840 2888
--2114 7886
--1260 3794
--3258 -2166
-4532 2107
-6543 -3074
-3442 483
--3255 2223
--1550 -7614
-213 -3406
--4695 -737
--1276 7575
-8639 -3229
-6622 6857
--5124 8509
--6392 5648
--2790 -1518
-2041 5905
--7704 2516
-1487 8032
-4105 5787
-3027 3545
--6248 2895
--871 6625
--221 -125
--5936 -835
--3948 4168
--6652 4097
-5606 4761
--1417 1191
--621 3971
--3425 -2270
--28 5720
--2447 -8383
--4450 8440
--5182 -3052
-1622 -7677
--5216 -5253
--1855 6889
--855 -297
--3150 7123
--6913 -6251
-3504 -2958
--4221 -1769
--7946 -2539
--3825 -1090
-5351 8161
--1780 -2849
-4080 6224
--3923 -6488
-876 6647
-6622 -6725
--346 -5396
-4883 7646
-5573 8002
-492 8398
--2131 -4492
-4369 -2401
-1751 4248
-2153 -6116
-667 -996
-5695 -5215
-5989 1347
-7782 -6138
--4464 5762
--8767 2262
--9021 -1580
-6399 2724
--755 3157
--1005 3607
--2168 8081
-6687 944
--2595 7961
-130 6018
--1126 -3156
--5329 6061
-3180 332
--3974 -3400
--8448 396
-3765 -137
-7183 -774
-8621 1147
--6250 631
-5653 -4975
--6200 -1993
--6701 4167
-6919 -4491
--2187 7321
-7438 1764
-4924 3676
--1235 4790
-6121 2938
-1981 -9730
--6190 460
--5152 5363
-1969 1712
--8636 3652
-2660 -9229
-7857 -4986
--950 1362
--969 -6040
-2705 -3021
--8108 1202
-7966 -2848
--4903 -4147
--8830 2978
--6818 4929
--8345 5456
--5142 273
--7084 -5762
-2265 -3212
--588 -4087
--1402 -5013
--6726 3374
--4005 2068
-2846 -7111
--8574 3345
-5539 -6421
-2147 4478
--2835 -1481
-7813 6236
--4947 -7859
--4086 157
-1255 2017
-5479 -4037
--3109 -1541
--3629 -6293
-8833 -2552
-6176 3499
-6297 -4472
-3739 -8553
-1001 -7509
-5761 -1753
--5350 -3324
--1843 6110
-1650 5853
--5408 -4204
--3232 -4106
-6174 500
--2791 3680
-2363 420
-2077 -6657
-8561 -4335
--8236 -3842
-9062 -744
-329 5339
--666 -7792
-1452 -1044
--8134 -5254
-7049 -4483
-5352 -5834
--7583 2119
--1005 8181
--5610 -5635
--8080 -2391
-2837 8392
--9289 1834
--5443 8066
-3661 183
-5974 -5513
-3482 -1340
--2164 2581
-6805 675
--5634 -3423
--4803 2734
--8191 -5316
--7389 4301
-3932 -6694
--1714 4136
--1827 -1623
--8234 -3424
--6717 5582
--3194 -4965
--5818 -1305
-2211 -9426
-7074 -6604
-410 564
-2483 5381
-778 6474
--2885 -3091
--2068 1422
-4339 2104
-2226 -537
--1818 -2419
-7753 1056
-3669 -8667
-5167 6711
-3623 -6511
--1774 2492
-1257 8917
--2638 -1490
-3318 2422
-756 7722
--1457 859
--1856 1695
--5123 359
-8594 -2137
-2691 -997
--4423 -4016
-2326 31
-27 -4187
-626 7076
-8215 3699
-676 361
--3120 1005
-4545 3134
--6953 -4667
--3970 763
-532 -270
--7969 -1295
--7125 -4534
-3013 -8575
--8341 4270
--1719 2213
--4095 -3209
-7826 -4873
--5098 8105
--134 -3159
-1419 5698
--3777 -4999
-3600 5029
-6327 -692
-759 3088
--7745 5464
-1860 -9210
-2694 1314
-1749 2456
-5755 -3717
-2175 -2906
-4366 -5455
-5742 6387
-2225 -2890
-6105 3064
--1819 1771
--5871 -4368
--3037 7434
-4605 -3677
-91 -8274
-7662 942
--1448 8515
--2673 -4948
--1150 -7512
--8250 -4705
--5598 -41
--5519 7093
-285 -4369
--3643 -8599
--472 -8008
-3266 -2422
--366 -9590
-884 -9936
--6708 -4513
--396 5012
-2061 9269
-3442 -5067
--5104 7908
-6476 -5512
--7545 3737
-7154 -2524
-451 1187
--349 -2013
--789 -5542
-5567 -6030
--6413 -4479
-4732 7512
--3128 -9225
--5994 6844
--2184 3282
--2435 1126
-747 5649
-4592 5810
-8033 3624
--8042 -2774
-6477 -7505
--7456 730
-7044 3243
-5391 7562
-4953 -1485
--281 -2687
-5215 4263
-4079 -6544
-2217 -8943
-2636 -3866
--2491 -6712
--818 4823
-5799 -7944
-8779 -4443
-7541 -6025
-34 -8790
-7590 3722
-3691 2389
-4389 -4171
--226 4760
--3313 6448
-2268 9371
--3960 7559
-6049 -4956
-2570 -3548
-5298 -2522
-5215 1972
-1804 5919
--2356 8867
-9493 2018
-8609 -2027
-814 -259
-4364 -2373
-69 -8526
-4037 -2811
-5722 6555
--3691 -5728
-5599 -767
--4099 -7156
-3193 8023
--6307 4848
--2588 -4299
-274 -7840
--2358 9403
--2522 641
-1873 -3435
-6815 4788
-8077 1887
--7735 677
-3317 6400
-2534 -4325
-1640 9518
--4682 -964
--8139 2109
-6366 2928
-2936 -4577
--4469 8702
--982 1843
--5365 8032
-4298 7700
--2525 -4094
-5611 -6886
-5034 5136
-9424 1362
-1508 3414
--1359 -210
-224 -5026
--8197 3799
--197 4715
-4127 8
--4473 -6839
-742 -1466
-1437 -6806
--3988 6993
--2892 55
--8943 285
--927 1029
-4755 7850
--3043 -6301
--2422 -5323
-5748 -738
--72 2191
--8903 2891
-4649 -3165
-6264 7614
--359 1540
--2209 -9652
--1533 6461
-7082 1723
--723 9243
--5680 -5226
--2315 -4652
--2479 -582
--5444 -5683
--7217 -1653
-4743 -5303
--494 -3012
-2536 -525
-6912 -5365
-3734 -3551
--8755 2327
-2337 -266
-7774 3661
-3624 -3223
-4786 8776
--1375 -3116
-8769 -207
--4024 3104
--7014 251
--6230 3096
-6776 33
-5489 7480
-2775 737
--6113 -7437
--5368 -6474
--728 7864
--8666 -3115
-3684 460
--3293 -4062
-7087 237
--8028 3392
--4879 -1767
--158 490
--5321 -838
-5147 -8336
-7348 139
-4265 -4656
--5710 -2482
-9226 483
-4004 7516
--1486 -1329
-7483 3388
-4202 2125
-7465 5222
-1642 2307
-4167 -4518
--5092 -2894
--6113 -7212
--3923 1881
-8184 -2740
--3458 2733
--5201 -7324
--2075 -6866
-4063 -5270
--4285 -6164
--5020 7576
-4153 1448
-3787 -8752
-5237 4149
-461 -825
--4069 6238
--5333 -3099
-4557 -7082
-3431 -4391
--6172 1349
-2967 6766
--337 3803
-364 -3909
--2427 5292
--7176 -3661
-3132 -8319
--2552 -5069
-783 -4597
--7604 4222
-7981 5702
--820 3315
-3358 2957
-6276 -5201
-1827 -1190
-6507 -2384
-2060 7439
-6073 6115
--2782 6199
-5818 -864
--7392 -3849
-8868 3738
-5576 1017
-795 9720
-7229 3704
--7970 -2587
--5747 -4551
-2144 -7697
-3598 2871
-972 4040
-2225 6435
--8281 2568
--9146 4001
-2997 -8181
--3632 2556
--8075 2745
--2271 2514
--2518 -3856
--3118 5886
--5054 4699
--7019 -928
-5204 -3935
--2515 -8078
--7732 2295
--8604 -1915
-735 -8261
--501 6296
-4344 522
--3233 2220
-694 8689
--3047 -5246
--4101 6600
-2978 -8409
--6894 2487
-1340 6361
--1970 3774
--930 3406
--7006 3758
-1962 8336
-4613 -3235
--227 8366
--1918 9615
--4577 -3818
-1790 -2643
--3332 3988
-1345 -8681
--1788 -7001
-506 6745
--6473 -530
--8271 4096
-9198 -2373
-4169 8936
--6678 6561
-7938 6057
-6291 7208
--3274 -5465
-967 3319
-6344 -3577
--4825 -2635
-6333 5251
--9573 -1447
--7045 -1294
--6954 5589
--4760 -7492
-1278 6625
--2169 -5479
--479 4322
--5547 -1005
--6628 3639
--4452 -1189
--824 -1330
-1809 5610
-1915 -7424
--5744 5821
--4309 -6843
-3650 2975
--4439 -8549
-2666 1794
--2409 3329
--562 1245
-3948 2723
-3548 299
--9360 2952
--577 -954
--6447 4935
--196 6144
-1211 -788
-7879 -3777
-3684 -1732
-1884 -6484
--3407 -6866
--119 7689
--5605 4327
-6344 6303
-544 -3543
-3919 -3036
-821 -1134
-6063 -1990
--8094 -5765
--5307 6434
-344 -3756
-448 5274
-2922 -7572
--3999 -8606
-3496 7730
--8798 2108
-5099 -7007
--6034 -3963
--6372 6717
-2948 1404
-8380 -3917
--8549 3497
-5465 3407
--577 1502
-8489 3247
-2862 -656
-2751 -4072
-219 -5356
-1019 -7371
-3712 5869
-5444 2424
-7956 826
-6873 6451
-716 -9906
-870 -6142
-473 4276
-9439 2736
--4747 6855
-5737 3501
--7824 -5660
-5291 -2282
-2739 5828
-5999 -6937
-898 -118
-7252 -6825
--1803 -8176
--181 -2604
-1376 8944
--1074 9356
-3616 8980
-7206 200
-9843 473
-4866 5630
-147 -5766
--1778 -643
-6690 1568
-2370 7441
--2819 5995
-2326 -5553
-7824 -425
-4588 -2557
-5808 2964
--4066 -3394
--502 -9249
--1807 4731
--3279 6935
--9235 3334
-3624 4382
-651 -2360
-2445 -9039
-1134 581
-2460 422
--6923 1931
--3935 -5655
--379 3159
--4846 -6036
-333 8635
--1311 3368
--8818 4137
--391 2876
--6242 -3536
--6492 578
--7354 4344
--6604 1687
--1618 5392
--7284 3554
-3177 4071
--1453 1481
--3388 -4780
--2351 203
--6697 -2088
-2415 -6908
-44 -8076
--38 -8391
-8527 3064
-6186 -969
-7571 -4469
--7859 609
--654 -8848
--1982 6733
--6586 6407
--7779 5459
-4436 -731
--6265 1276
--7119 741
-67 4017
-1019 191
-8603 -3006
--7146 4968
--4831 3426
-1754 -5073
-668 -4116
-2473 -9407
-7643 -6424
--2946 6835
--3272 -2560
--8696 3936
--3515 1478
--5491 5972
-889 5624
-7342 2270
--4492 -886
--4238 -759
-319 1278
--4071 -6085
--5524 -7802
-5414 1154
--537 863
--1280 5085
--4817 6340
-3464 -2956
-9558 2136
--5470 -6504
--7946 -6051
-1431 4778
-4372 -164
-8042 -860
--3528 3632
--6099 5122
--6539 7432
--457 -24
--709 -3653
-6805 -3092
-9512 221
-4022 -8910
-2955 5645
--1128 -4079
-2638 -8663
--9444 -3224
-3467 8480
--4609 -512
-2707 1925
--7251 3941
--2645 -2097
--6004 -6065
-3965 8539
-6777 -3958
--5387 -7720
-558 6015
-1768 -5735
-1248 -8621
--8194 5582
--167 -5471
--4281 -823
-2852 -2292
-7095 5066
--1520 4201
-8387 -4547
-7424 3686
-3713 -353
-1644 -2235
--1596 579
--7779 1512
-9305 961
--6467 -6433
--6469 -4371
-8122 -2133
--2155 9256
-2459 -4215
--4983 -8382
--1974 -2004
--4639 -2778
-4753 -8253
--2430 -5258
--1583 -2607
-2208 -3764
--7099 -4064
-1286 -5531
--2225 9220
--4966 4047
--2460 -8153
--5761 -4374
--6875 -4941
--2862 5669
-8278 3546
--740 -6070
--4853 2964
--8259 -613
-1227 -1378
--147 -816
--5708 2134
--3961 8398
--6444 6801
-2242 2885
--6394 -2290
-6655 1206
-7221 -1094
-5990 -4998
-3563 2797
-5431 2978
-2351 -762
--3070 1162
-5354 -1172
--4054 1183
--6286 7213
-5038 -2661
--7579 -2992
-4170 -6568
--903 -7157
-751 -548
--2464 -627
--4840 -5342
-7433 -6635
-1596 3170
-6379 6803
-688 -706
-2749 5024
--3053 3201
--8508 -4948
-6230 2929
-7682 5740
-6705 2235
-5792 5798
--567 9436
--60 5714
--6110 4178
--3856 -3252
-1470 9503
--6890 -2484
-3848 -5531
--1983 -2940
--6715 6407
-2563 89
-4815 -6409
--6729 5008
-4898 -3838
-9032 -398
--2532 8224
-5906 6739
--2983 7638
--5644 2861
--3093 767
--9108 885
-8511 4612
-6948 2173
--5904 -6712
-554 1894
-2027 -9704
-6065 -2005
-5162 1010
-2962 -5722
--2265 -8640
-8405 -917
-2990 -2482
--3452 -8072
--2030 2805
--5712 -639
-7400 -3700
--3942 -8088
-8878 -3199
--764 6448
-6891 2206
--8075 359
--8271 3911
-108 -6980
--7471 5260
--3112 3589
--737 4211
--3212 1670
-457 -4091
-5617 4433
--1601 361
--243 9673
--8432 -1027
-5207 6506
--9131 -2896
-2795 -1024
-7935 2507
--3942 -7322
--5853 -7216
--7760 702
-3906 -7806
-2740 8233
-91 9303
--7134 3596
-3012 8612
--1253 5486
-2660 -1010
-3777 -8000
--2921 -9524
--8659 2404
--9823 -95
-2350 8725
-1172 -3741
--6251 526
--7086 -3643
-2672 3594
--9167 -3619
--8146 -175
-93 -5729
-0 855
-3870 3929
-3816 -642
--1615 -962
--4051 3825
--330 -6326
-190 9421
-8181 3914
-1595 -234
-1532 -6513
-830 6553
-4869 -7835
--6448 6532
--9216 -3337
--3651 1976
--2585 9031
-8124 5019
--4477 -6376
--9808 -1022
--8550 -3359
--5633 -3460
-2203 5341
-5202 3078
--4196 -8963
--9592 -2094
-1000
--2695 5316
-7565 866
-2225 -1379
-5073 -813
-8416 -1353
-3654 -1294
-3389 1419
-6387 1365
-8166 2530
--4909 3954
--4548 2875
--6747 5290
-4636 5116
--2777 -8847
-6402 -7196
--6425 6059
-629 4596
--869 -7819
-6157 -4745
--6851 4339
-6309 3564
--8830 1941
-4861 -6330
--4914 984
--202 8456
-970 9124
--2996 -2814
--8430 -5234
-5666 9
--7887 -2522
-6512 6900
--437 8395
--1380 -3793
-1530 -7183
-3133 925
--3490 4578
-2506 1435
-2941 -5228
--1643 -9735
-5395 -1797
-740 -8535
-4715 3169
-3738 -4869
-592 6675
-2712 -9596
--6991 1821
--5458 3636
-923 4204
--5010 4463
-8690 418
-3834 -4254
--5508 6780
-1556 -5215
-8022 -695
--5117 1216
-5355 -5224
-8503 3507
-996 7244
-2202 7251
-5608 2474
--2190 -1085
-5433 -56
-2072 5570
--3751 5697
--3553 2690
--6915 3466
--2494 7776
-9245 -2203
-2091 -1328
-313 -8534
-6151 -6931
-1950 759
-1505 5907
-7391 3295
--3680 -9094
-6389 1349
-4209 -1876
-5620 3131
--7043 1201
--1296 -6037
-3092 1854
-6814 4157
-5332 -1322
--2310 -4244
--61 -7673
-3205 -1399
--8239 4949
--8559 -827
-8837 4539
--4600 -3010
-9058 2122
-2405 -2115
-3028 -6289
--5630 5970
-7534 3343
--1756 -9564
--4753 -4145
--3721 1618
--2012 1567
--6404 2681
--5565 -2682
--8778 2797
-621 1614
-8760 1259
--9662 2417
--5185 -2529
--846 -4251
-6834 662
-8890 -2486
-4796 8491
--7989 -434
--6378 2361
--4461 -1297
--2629 5524
-5186 -6555
-3968 -6759
--4261 4755
--1749 1361
--304 1127
--4382 -1398
-5058 7791
-1662 1997
-337 -6890
--1366 -6130
-1535 -4582
-999 -6610
--5314 3507
--3011 3966
--984 -4286
--2807 5088
--8389 -2899
-4424 -2487
--9167 3849
--6845 6867
-3239 -8720
-3696 4365
-3177 3857
-838 890
--5458 -456
-3092 -6487
-1873 988
-7053 7077
-2084 9155
-5223 -2187
-1998 -4517
-2002 3857
-6948 6077
-5497 -979
--9006 2413
-5097 -7964
--2088 9366
-471 -7562
-7966 -2417
-165 9651
-247 392
-6196 -1305
-5940 1825
--1576 6487
--688 -5677
--67 517
--4680 6021
--7129 490
-9112 -2583
-3473 1428
-3336 4641
-7424 2667
--7908 2810
--8240 -2763
-1653 -773
-4669 -6791
-2728 -6273
-5229 -4722
-522 -9540
-3590 360
-1816 4242
--4783 -7494
-5992 3054
-6964 -7165
-6500 5047
--7853 2268
-4913 -4463
--5853 1032
-5577 5891
-3026 6670
--1909 103
--691 4547
--8675 2184
--8593 3476
--128 6517
-847 -4079
-1934 -5911
-6134 -6223
-4186 7557
-3373 -1621
--3758 7558
--4101 -4300
--8559 -687
-41 7015
--1187 9421
-9317 -2543
--4219 -7070
-4179 -7989
--2425 4588
-5646 -2724
-1124 -4268
--3259 -387
-8604 -3132
--584 6112
--633 -204
--5090 -8497
--1305 -4579
-3811 -8490
-2272 -3001
-3555 8181
--9357 -2859
-3442 3388
-4495 4084
--7762 55
--6098 -5303
--2915 6162
--3604 -1857
--2136 1388
-2145 5914
-7562 -3118
-4606 2644
-2257 6687
--1503 -2630
-7097 -3611
--7150 -1648
-8784 2585
-5294 -6432
-4135 -9074
--3755 2879
--896 -7072
-1310 -8427
-9983 -510
-4667 1044
--6164 1876
-2202 5457
--411 -2816
--1265 -819
--1024 9648
-2180 8478
-5173 4619
-8676 -3190
--6284 5390
--1746 -5212
--4900 5801
-885 -975
--6999 -3641
-7707 2719
-1519 1125
--2124 -5399
--8881 2377
--878 4812
--1689 -6206
-2188 5423
--6701 1904
-959 -6210
--1573 -1710
--8188 -3585
--6329 -2910
--54 617
-3071 9437
--8608 -1694
-3951 -4119
--5116 5102
--2811 -5835
--1375 5346
--7661 -6106
--5616 4613
-924 -1539
--6245 3569
-4624 -2228
--1451 -4402
-4168 2620
--1518 8496
-6086 2432
--6665 766
--1731 -8460
-2733 -8469
--1721 -54
--9407 228
-8916 -808
-1274 3705
--165 2197
-6862 917
--5852 -7773
--9070 -1800
--7201 -4893
--8321 -1833
-2681 8495
--6261 -2539
-3369 -6247
-1686 -2108
-2404 -5260
--5722 2762
-5915 1067
--2352 833
--4202 -2870
-3906 737
-1095 7603
--3206 -8232
-7030 7093
--2956 5051
--3298 3976
--4958 474
--6878 -4187
-1966 7692
--2390 4755
--2407 -8760
-910 8735
--547 -7727
--7785 -5873
--7496 6534
-5389 7094
-7099 5803
--581 -8337
-2518 -9656
-5535 6971
--5285 5433
-2990 -6196
--1452 -5502
--6993 6095
-8148 -2776
-5359 7449
--5906 -7703
-2185 3828
-6719 6172
-2682 -7916
-7306 -4101
-1250 -6749
-5872 -1886
-2905 -4716
-5533 1617
-813 -9662
--6487 7307
-8244 -5227
-1790 -2584
--2255 8207
--3272 -719
--3338 -3167
--1264 7081
--2143 -6959
-6746 -942
-694 -8937
--3659 5177
--946 6416
-2614 7865
-1392 -3346
--617 -2645
--1825 -8512
-4686 -4142
--4534 7269
-3282 -2620
--2049 -3547
--7079 1115
-3620 5676
-6182 7056
-1240 -3363
-6509 -5007
--2686 7239
-2347 -5988
--4663 3400
--7495 5463
--1128 8112
-3468 -1486
--4884 4260
-374 7056
--7866 1354
-2831 -1232
-386 131
-973 -8673
--2948 -3897
-5732 1003
-856 4693
-7415 -4080
-3098 5699
--700 -1026
--987 7456
-806 9235
--4368 8336
--4750 -7929
--290 2398
-3451 -5337
--4684 693
-1127 145
-3353 -5328
--3074 9012
--8900 -635
-1811 -9406
--8419 -5348
--8541 -2344
-9854 509
--8353 -992
-633 -4533
-2542 -6144
-84 9985
--5299 890
-4762 3426
--480 5731
-9031 -3186
--7644 3007
--3556 -159
-4908 6456
-9406 111
-6162 -6200
-109 8238
--3174 -2135
--2826 5743
-2416 2831
-7214 -4506
--6192 -5696
-4207 -8022
-2503 -3034
--7061 -5654
--6165 -3554
--6137 7260
-1295 -2188
-1696 8609
--4372 -7812
-6765 3810
-5401 522
-6652 2543
--8251 -2591
--3049 -8271
--8013 1606
--5336 -4596
--7182 -2572
--4187 7600
-5935 3319
-5997 -1644
--2890 5878
--4444 -7519
-4596 8160
--6440 7020
-315 6762
-124 2927
-5816 -6677
--139 1962
-6009 -7269
-5346 5139
-2114 -447
-3429 3706
--4901 -7229
-6823 -1046
-7041 6942
--743 -4055
-3241 971
-824 1567
--8499 3578
-5203 7812
-6120 3184
--1540 1835
-3493 3085
--9079 -2999
--6076 6986
--2556 -1949
--3014 4681
--6967 -2651
--5022 -1861
-7768 983
-4204 3225
-4826 5030
-5302 7976
--5508 -1984
--7883 -4172
--7465 3871
-1287 6214
--6964 5281
-739 7617
--4702 3265
--6681 -6476
--692 -7582
-8665 -707
--8948 4284
-5448 -6761
-7441 -1436
-1613 -7426
-3653 6280
-2561 9264
--3534 5299
--4909 6614
--4710 3263
-531 -4512
-900 -5350
--6192 3283
--4537 7478
-676 8466
-3268 8787
--4723 725
-5687 5940
--4961 -4730
-4248 -8300
--7945 5765
-3129 -9019
--5915 -4189
-1244 -8943
--9523 2744
--1895 -4203
-4901 -1697
-5721 -1977
-8403 -3646
-2712 -1288
--4360 -7079
--5326 6623
--85 -6820
--1066 -4364
-1914 8084
-2040 -316
-1730 7751
--2214 -6297
--579 -4598
-1550 -7321
--1889 -4744
-7745 -5387
-7162 -825
-1699 3106
-4742 8400
-8210 -4685
--1246 2812
--2995 900
-4776 5040
-2542 -9234
-443 1853
--4886 3090
-6320 -5411
--2445 6156
-1396 9305
--947 -427
-2468 -149
--6547 -682
-310 2689
--8498 -5101
-496 -9118
-872 6983
-975 -6047
-7019 3088
--2784 -1418
--6223 289
-1200 9157
--7310 -265
--2259 -4881
-418 1961
-536 6937
--1381 7411
--2951 1527
--3502 4508
--3660 1223
--1847 8718
-4154 3577
-4960 7182
--2790 -5257
-3128 -2360
-1182 222
--4146 466
-3997 2139
-148 1324
-881 1109
-4029 4704
-9838 1747
-853 -393
-1582 -850
-1971 6465
-888 -9415
--7322 5426
-97 -914
-7750 6010
-7952 -5954
-5312 -8039
-5985 -4997
-9432 2439
--4182 -2190
--3466 -4662
-6585 -582
--1977 3354
-5878 5145
--3542 6321
--973 -9747
--5026 -346
-1555 8254
-9028 1662
--1043 -9685
-2630 -6360
--3116 5870
--9516 -2980
--1421 -7937
--3009 -7855
-9429 -1381
--453 -2930
--2111 6904
-3968 -4145
--8143 -2943
--7712 -4639
--1134 -7375
-5337 -1298
-7244 -4148
--6115 -6382
-2531 5127
--950 2684
--6881 2243
-9535 -876
-5592 8124
--2088 3570
--4119 -8788
--7944 5522
-3723 -6717
--5860 -6592
--8183 -3671
-3151 1746
--2125 7339
-4264 -3708
-4663 4285
-7453 1332
--7871 -2404
-406 -8701
-5236 4115
-1362 6708
--2125 318
--715 6684
-5527 5939
-1024 -8712
--8463 -1300
--5506 2949
-3463 5123
--5932 3182
--2923 259
--5922 5062
--3779 5635
-3690 -3345
-185 -8691
--7393 6113
--12 -5601
-9386 -860
--1932 -459
--1433 -6077
--7773 -535
--469 -9797
--587 9103
--20 -6668
--3863 8580
--2479 6318
--3597 5375
--118 901
--3793 -4365
--193 972
-3591 7904
--1634 -6490
--9143 -3932
--3617 8647
-5971 669
-6893 -736
-166 -6753
-2406 7080
--9347 2883
-9096 -903
-3768 -2195
--9623 107
--1844 -7360
--5345 2332
-8487 313
--4363 -6004
--4694 4200
--6554 -2154
--3478 -8868
--8894 -3175
--3081 -5687
--6999 -4032
--1316 447
--7988 4042
-611 8592
--8025 1405
-4977 -7378
--6903 6552
--7990 4579
-9699 -1556
--6650 -6725
--1801 6293
-509 -8284
-8164 344
--3789 -7706
--7193 -5392
--2753 275
-1971 1783
--8893 546
--6143 7798
--4907 -6355
--4409 -4237
--405 -6014
--7995 4065
-937 4374
-6346 -1462
--2252 -8738
-4894 6473
--7040 6301
--7587 4506
-1921 7873
--618 -9859
--9096 -1424
--9617 541
-4010 -5702
-4403 -5930
--6164 -7777
-4444 -988
-7873 -2889
-2714 791
-7447 2971
-1581 -7866
--889 3239
--1052 4317
-5785 -2982
-262 4316
--2268 8670
--5337 3468
--4074 -2422
--2925 -3991
--5507 3589
-3646 6965
-2838 2898
-322 -1107
-7367 3234
-7104 808
-5347 2563
-1592 2657
-4557 -5070
-1976 978
-647 -5381
-1383 -436
--5468 -5445
-6378 -6784
-671 -4220
-8944 -1616
-5468 -6000
-3096 5754
--9664 -1204
-7197 -5637
-3114 -7442
-6025 2882
--1867 -8468
--292 2313
-8222 4101
--950 938
-7922 -1900
--4467 -7017
--4543 -2721
-1263 -1628
--3249 -7947
--6169 -1235
-6787 -469
--6653 4212
--1400 -3520
-1149 -7886
-7282 3355
--1038 8898
-756 975
--5974 -7527
-5772 698
--1476 -8083
--4558 -7298
--1598 3804
-2480 8756
-6626 -714
-5767 -7984
--7943 3947
--1355 8364
-1747 1306
-7159 2716
-1190 -2346
--42 -2762
--448 -7296
--6282 1255
--920 -6673
--7545 -1938
--6723 -5547
-8411 -4524
-2359 7006
-1780 9228
--4713 8198
-7798 5872
--5787 4111
-4484 5308
--261 -2160
--1835 1923
--6450 5782
-2735 -6210
-5639 -7868
-871 3465
-3213 4823
--4974 -7692
-6414 -499
--4555 -1147
-9890 -773
--1939 -9683
--8113 -2106
--4333 -6242
--6511 -6435
-6716 -5712
-6958 2336
-7223 4863
-627 4497
--8644 -1831
-4460 5965
--1295 1995
--5539 7585
-2131 1336
-8006 4326
-4930 7725
-6491 -1846
-5233 -4141
-2937 -820
-8553 -625
--156 -90
--2033 2933
--2784 -4189
-2085 -8471
--691 2881
--6846 -2905
-4286 -314
--7602 -3182
--767 -7801
-7263 4367
--8518 -4781
-215 -9591
-6557 -4672
--6095 -1770
--294 -7964
-6428 6665
-73 1608
-7595 5599
-4932 3568
--5867 6645
-8909 -777
--6179 6714
--6755 -4334
--4533 -2278
--1692 -9768
--2972 -3908
-4106 -6985
-968 -5358
--8420 -4292
-497 3224
-2286 -1142
--2653 1219
--1813 6875
--6279 280
-6688 -3240
--1202 1684
-3935 -9093
-5131 2065
--173 2257
--2595 -4971
--2468 8519
--2187 6626
-7188 -4249
-4983 3926
--3249 9152
--6786 4456
-6523 -4498
--8111 4721
-6484 -4819
--5613 933
-1123 1973
-377 7004
-2000 8192
--1295 -9281
-934 -2020
-1958 -9797
--4071 739
--5472 4549
--2281 -7035
-4325 8347
--1734 4770
-3481 -6015
--6250 1678
-3482 6495
-2198 -2819
--7293 -783
--1700 -2285
-7359 -2807
--2290 -931
--9058 -56
--2286 -8303
--338 -7174
--569 6750
--5786 5973
--7722 1140
--3298 -9424
-862 -4947
-3538 5115
--6304 -1413
--1950 -5390
--2610 9272
--6087 -313
-219 4931
--2968 -2703
-1905 -3591
-3962 -5902
--1516 -1571
-9725 2180
-239 3210
-4536 373
-4003 -1424
--6074 4680
--1150 -7702
-5096 -4285
-9347 2309
--7761 -6098
-2131 3413
--4987 -3872
-3187 -4001
-3934 6956
--3485 1434
--407 8261
--5329 -119
--8623 -4478
-8078 4805
--5985 2811
-6631 -7147
--3150 -5831
-6537 -7236
--1405 -8195
-7206 -3639
-5460 5946
--6979 2069
--4989 -5421
-405 4858
-6236 -2068
-438 -4463
--4079 2703
--7591 1896
--2367 -4845
--2647 690
-1323 -7283
-1185 -5491
-3368 -7694
--265 -5493
--968 1775
-4897 -1089
-8609 -3893
--3953 6983
-7793 -5797
--8410 1372
--5959 7862
-6653 826
--4410 -5285
-1956 241
--5115 -6506
--5987 -3283
--6805 687
--6550 -287
-445 -5560
-9052 2180
--1658 1110
-2145 -4413
-9337 -561
--71 -6498
-5666 -2218
--5066 4299
-296 599
-115 -1281
-5914 2939
--2134 4006
--1912 -8432
-4828 -3707
-3756 4916
--2271 3084
-9217 -1214
-296 -7980
-2687 351
-3361 6172
-2394 2419
-1446 4159
--109 8830
-53 -5796
-2801 6349
--5583 -3517
--3631 7771
--1080 -9022
-8491 1531
--86 -8763
--3686 3893
--3859 -679
-3183 7768
--4018 -20
--8506 -2596
--7578 1138
--4316 1864
--3713 -300
--4342 5057
-8714 -2821
-639 -6442
--1313 -5364
-6331 5436
--2074 8991
-2590 -7976
-3678 608
--2933 5298
--9330 -952
-7101 4042
-2168 -1920
--9337 3332
--4500 -8838
-1000
--137 9836
-8205 513
-3490 -5672
--876 11
--1119 2341
-505 -3136
-1056 2814
--404 2471
--9185 3115
--3637 -598
-780 -9315
-3080 -7731
--6274 304
-8400 -5239
-3058 -4101
-464 -7596
--1277 67
--596 6282
-4977 996
--8930 2401
-6375 6807
--1945 -1968
--1760 -715
--6132 -7538
--7959 -1913
--296 -2053
-1539 4325
-4345 678
--6157 -1051
--7851 -1685
--1635 2355
-2096 -161
--8058 5687
-6865 1851
--1539 -6187
-3935 -7064
-3264 6726
--2678 6140
--7072 803
-8808 3624
--2503 -6122
-309 450
-3216 5246
-7569 761
-8648 1711
-6812 4260
-1533 1334
-8663 -3194
--5155 5031
-6932 4450
--5719 7503
--2582 1980
-4373 1015
-5827 -7192
-118 375
-5300 8047
-4466 -4231
--7976 3020
--1092 -2181
--2371 -8200
-3008 -448
--3505 6201
-7146 -6673
--2472 7527
-7482 5093
--7585 6471
-1071 -5185
-7657 4750
--1152 3416
-9607 -13
--3855 7452
-2296 9489
--448 382
--9145 842
-2236 334
-3894 -3491
--4158 -2265
-4002 1822
-7516 1222
-2563 6395
-1427 5304
--7339 1277
--998 4599
-3239 5234
--2605 -1055
--6415 7041
--6529 4578
--7141 -3823
-7471 2524
--198 -9018
-888 3293
--6817 -1588
--5911 6230
--1492 -5427
-4090 -1133
--786 2039
--2670 -14
-7622 -5216
-1293 318
-860 9089
--2989 307
--549 3456
--6626 1048
--2184 864
-7055 4478
--5153 -5098
-4399 1935
-1999 433
-2896 6554
--9274 -3414
-4426 -1264
--1747 -7189
-660 6814
-2350 5537
--3348 -7995
-1240 4609
--5471 6224
-1708 457
-13 -2794
--293 5646
-2781 4657
-6046 -6406
--200 1036
-7217 -1305
--3296 5295
-3763 -5103
-7017 -5624
--7727 -671
--6195 6557
--1978 7458
--8103 5764
-4192 6685
-4003 4443
-662 -3497
-2587 964
-2122 -9183
-5973 2800
--5697 -7927
--9425 1579
-2390 -6584
--4212 -3235
--5077 -4956
-2245 6146
--7064 -5732
--9063 -3235
--5021 -6061
-7212 2173
-1111 5210
--2241 6489
--430 -7465
-2092 2100
-8125 2895
--1860 -9398
--3852 2347
-779 -8383
--1610 3690
--2272 6279
--2450 6783
--2137 7893
-4806 2343
-3986 3551
-6011 -4947
--4649 2548
--2290 7890
--800 -1304
-5138 4632
-4417 6467
-3653 6202
--8733 -2793
--784 -8865
-7887 -3359
--130 7557
--342 -7913
-3459 7170
--1289 -9730
-941 -8265
--5500 5824
--108 2464
-2408 7041
-4015 -6077
-8191 -3204
--7693 4282
-5391 4258
--3984 4501
-325 9908
-5373 1049
-5384 1971
--3422 -1654
-4743 6405
-7115 -941
--7658 -4412
--8235 435
--5095 3544
--3144 -8384
-4182 -621
--1640 -2082
--5392 1640
-6774 -5682
-5893 1963
--7457 -1267
-5380 -2875
-9858 -735
-3525 4807
-2771 1008
-2056 -872
--3199 4708
-5362 4053
-8660 983
--7649 -4588
-4373 -5834
-6130 -3334
-6343 3681
--6448 3332
--1686 1678
--4932 -2055
--5769 6464
-6037 5547
--9115 3882
-22 -5077
-6905 -4893
--5183 -5018
-2275 -2828
-9457 2970
-3864 -2344
--2064 -5286
--1383 5442
--4226 2876
--4637 1586
-6075 5221
-6278 4350
-5512 -6569
-6786 5898
--1650 -8754
-8273 -1130
--2742 3791
--8655 3765
-6089 -7429
--4905 209
-7103 1703
-8077 -768
-5596 -1405
--3115 -1908
--4101 -2103
--5487 -7934
--3225 -9309
--7847 -1671
-7461 3874
--8058 -3498
--1872 -8969
-928 -5888
--3937 -4311
-8491 520
--2825 11
-2631 -6730
-8382 -2519
--9183 -2950
-3020 -5728
--8723 -4442
-4626 -963
--6865 -5908
--5522 4684
-4711 4674
--3736 -3774
--1737 6172
-3826 7700
--3969 7118
--8426 5180
-7635 -45
--1268 -5810
--2113 9750
--4352 4730
-4457 3873
--8310 -5362
-6764 3820
--6168 6350
--2098 6647
-3930 -8703
--3193 -6132
-6992 5875
--1551 -8305
--7595 2027
-3314 -1010
--3324 -5443
-2628 -385
--1230 -1561
-9536 2404
-869 -3924
--8940 3873
-717 -2447
--4041 -4885
--4260 3388
--4050 4795
-2800 -5965
--3142 5834
--7328 4146
-2569 -9230
--1188 7509
--8069 5511
--1173 9347
-935 -7730
-6220 3130
--2392 8560
-2359 -4643
--8914 150
-5474 5321
--5429 -8048
-4225 -933
--5525 2230
-1669 7120
--2224 5632
-1687 -1848
--1081 9406
-2855 702
-8156 5572
--5056 6209
--7631 2280
--9369 1105
-8506 4929
--1459 1158
-6287 -2653
--4447 -6115
--1919 -3671
-5969 6859
-8247 3689
-2458 8282
-4792 -5170
-7674 -5038
--5550 4215
-2706 -42
--3828 -2199
-4864 1780
-5241 -3455
--6052 -5959
-2630 -7262
-1995 -2477
--1658 -1322
-3695 8636
-7854 945
-233 4821
--6532 735
--7174 -5025
--3792 3106
-8423 4880
-8882 -2426
--5886 -7076
--4387 -1756
--3645 3808
--3074 -5408
--4123 -5279
--417 -9540
--2536 -8769
--4898 5532
-3110 408
-5761 3844
--1325 -3805
--3877 -5616
--320 -3045
--2747 1596
-6201 -6260
-3391 4820
-1834 4932
-1212 9123
-5975 -7936
--8556 -50
-1198 3151
-6824 -522
-6451 -6786
--948 4213
--3628 -9285
-5071 -5194
--2497 -1211
--1624 -2973
-7315 3364
-5823 2831
-7107 -3530
-1008 -1878
-4488 -6075
--5676 -5620
--4467 1641
-7536 3246
--829 -6269
-2528 -4414
--3754 -6394
-8411 -2576
--143 -6147
-7728 -1781
-3206 -2625
--5457 -1343
-8158 -5011
--2898 -4403
--9316 875
--8293 -5058
-4661 -5377
--5653 556
-3830 -5699
--4606 562
-8827 3027
-38 -3931
--2697 6848
--9144 -2420
--3087 3313
-8328 -557
--5586 -1242
--3458 9287
--4820 7012
--3277 -1748
-1204 205
--2869 6701
--5031 -3900
--4235 3407
-3522 7356
-880 -8624
--4157 -4327
--5808 4163
--1099 -4424
-8098 5571
-5330 -3250
--268 -6319
-8587 3007
-7762 -4547
--7374 1275
--6736 -4286
--5850 -634
-2649 3410
--3651 -3766
--2628 -5647
--4079 -2874
--288 -8701
-7506 3854
-4104 3323
--4029 -3844
-150 1726
-5468 -7480
--6554 -4767
-7621 2793
-5211 8088
--2626 3142
-1262 -2434
-9427 178
--6795 7047
-4285 -5613
--5830 7966
-1958 1092
-5994 -7461
-7251 701
-2098 -7782
--6211 5731
-6450 -5764
--5853 755
--3392 2839
-8091 -576
--1382 421
--1752 6200
-1657 -7036
-5997 -4754
-6860 -4464
--9022 -3232
-1193 6935
-3764 421
-7594 -31
-868 -2887
--69 -8261
-2528 7535
--3109 6305
--2497 5147
-6503 7461
--1478 4510
--5489 557
--9718 2093
--5107 184
--518 -2529
-3870 5072
-7730 -6090
--5884 -3533
--5823 6493
--3635 7057
-5776 21
-2398 -8900
--7308 -1219
-5122 235
-5664 5899
-5111 1666
--8828 4438
--4620 692
-160 9893
--6126 7270
-6055 -3
-2020 849
--8476 3816
--6712 -4412
-6224 4137
-2175 -9078
-6490 2212
--792 -1332
--6941 -3100
--2331 -8638
-137 -7144
-2591 -7415
-9328 -1164
-8943 -649
--6250 -3411
--1295 -2507
-3320 -1282
-293 -4388
--2469 -3478
--8252 5325
--2924 8314
-2484 8402
-4758 -882
--5932 -4146
--7715 6109
-834 1708
--6272 2890
--6710 3336
--4506 6135
--2323 -379
-3339 4411
--665 2691
--2870 7225
-3687 -2072
-1773 1703
-750 -9314
-6894 -457
-353 -2641
-4268 -4970
--9353 -644
--6794 4362
--1506 7151
--1344 -1486
-7472 -6543
--8453 -4902
--2320 -6921
-6176 5854
-7763 -3374
-3015 -6021
--852 5811
-6856 -1728
--2633 -3822
-3037 -3687
--4997 -3186
--2930 3476
-706 7993
--4262 -6283
-1099 -8179
-7775 -5653
--655 -457
-464 -1721
--888 8327
--6973 1048
-8043 -3932
-1283 -4480
-8640 3665
--6118 -4991
--7252 -3438
-4747 6563
-1964 -4833
--8103 -2009
-9286 203
--2138 7788
--500 -2952
-6373 307
-8081 -3672
-3753 7523
--404 -4957
--1700 6911
--6590 -3383
--4642 2260
-970 -9603
-2067 -142
--6887 -886
-4500 -8168
-5523 -6437
-7739 2728
-1947 -1771
--2991 -5133
-375 746
--6428 4864
-4871 -3217
-2711 -6082
--6964 4347
--4574 1920
-6406 423
-1212 4616
-4593 -2567
--5150 3589
--5179 7432
--3457 1203
-6739 -2172
-4446 6410
--2224 3795
--5166 -636
--4884 7849
-1778 -6395
--6864 -6174
--3247 -8533
-4290 -2585
-3028 6644
-4756 -3821
--6551 314
-8075 -3045
--851 -4764
-2561 3838
--1961 181
-776 8067
--4451 -3681
-8147 -5780
--7394 -6259
-7187 -4029
--6306 -6590
--5716 -3623
-2191 5908
--2214 5188
-3209 -9466
-3177 2635
-137 -6777
-2018 -9434
-8527 -1036
-7046 -2015
-1480 5499
--968 5518
-7685 1310
-3270 -7617
--4302 -4225
-9950 -154
--6908 -5306
--1634 -2128
-4345 1684
--5220 4456
-5293 7658
--6681 -3134
-8035 -3881
--3885 -6697
-2749 -1934
-6582 -227
-3262 -342
--1612 4812
-8179 -2614
-6835 -4063
-8455 3699
--3134 5676
-194 6081
-3762 7241
-5382 5232
--6209 5114
--6316 -6664
--4182 -4208
-3143 -4127
--2222 -8373
--3012 -806
-6673 -2544
--8434 2598
-3180 -7068
--4063 -5336
--6872 455
--2034 -6214
--5581 7342
--9667 2012
-3755 5327
-4826 3369
--9531 -2436
-2699 -8473
--830 -1764
-5179 3063
--4247 -8139
--6893 5155
--8258 -1914
-147 -9712
-5087 3664
-6850 3619
-5886 -6439
--3227 -6485
--3439 -4261
--11 -2638
--3290 2537
-2814 9136
--5103 -1575
-820 -2026
--2995 -610
-4743 -3557
-6228 5586
--1740 6206
--9659 661
-134 2774
--2549 -8426
-1337 -4257
-2332 -7124
--6786 -2086
--1516 8695
-6518 4776
--2356 -6321
--5954 -7979
--8414 2386
-2193 1591
--7453 111
--3522 -1107
-4207 -3965
--6850 6881
-5220 1576
-121 5023
--2283 -7893
-2009 2419
--8446 -3051
-1798 2490
--1387 -5639
-5620 3255
-4339 -4775
-2283 3224
--9583 -1883
-5017 -362
-2996 7757
--587 -1409
--5283 4161
--9966 -709
--8949 3902
--8453 -5017
--913 -6820
--5776 3655
--8967 -2889
-2965 6815
--6842 5797
-7693 -5753
-6875 -3968
--3666 -3413
-3634 -5871
-155 5604
-6235 -1176
-64 2414
--5369 -8394
--5943 -5412
--3556 -4637
-399 -1807
--3304 6743
--2958 2434
-2425 7821
-4853 -4090
--8637 3218
--359 9289
-1514 6337
--3940 -4165
-7480 -327
-2444 -5023
-1918 5346
--1166 -6332
--6439 -7287
-3720 -4736
-6811 2006
--2466 7040
--570 7244
--8050 5088
--5165 3165
-1601 -7503
--4914 -8301
-1518 1980
-6927 -1649
--1081 -8144
-3933 -2658
-2313 3768
--6811 1614
-7571 5045
-6648 5466
--6361 -26
-440 2481
-6161 -6383
-2863 -3407
-4633 -4652
-2169 3183
-7169 5989
-1366 -6050
--7915 -171
--7672 6412
-7301 5825
--4425 7147
-579 1276
-8667 132
--2893 3933
--5064 -6229
--2926 6260
--5488 7398
--2642 7347
--3391 -4986
-4859 -6171
-859 -3231
-7667 3748
-907 6285
-5797 -4668
-2994 -8221
-2999 1843
--543 8259
--1672 -4571
-3412 -1044
--2760 4780
-31 -7542
-2175 -3446
--888 7916
-1334 9319
-2739 -6136
--4174 -764
--1781 -5604
-148 4918
--1689 1700
--2406 8447
--137 8922
-6001 7288
-3670 -2066
-2496 -7156
-7435 -1962
-1006 5960
-5971 -653
--2345 -7155
-7476 5967
--912 -1652
-298 -7317
--7598 -3046
-2671 -172
--5986 3689
-5296 -1629
-8831 33
-5579 181
--353 -4209
-1683 -5930
-2463 -4197
-6996 -2499
-152 -5437
--3900 -2852
-6248 3940
-2272 -9690
--4724 850
-2 6373
--4729 -2686
--7254 391
-3664 8877
--7603 -6442
--4047 -3534
--2439 6362
-6394 -7270
-1937 -3355
-3091 -5796
-1871 -91
--5273 523
-2830 -7474
-5933 3523
-4236 -1932
--4784 4570
-3038 -2096
--7392 -1083
--4457 4552
-2876 3566
--5225 -6280
--3292 4551
--6950 -4388
-6039 6371
-2299 1018
-3238 3509
-5240 -5189
--5219 4996
--9692 -3
-1572 2002
-2604 7720
-4654 -7487
-966 1832
--2276 1385
-4083 3577
--8667 -4036
-2486 -3797
--21 8764
-1606 5263
-781 5207
-3562 -6102
-2766 -7
--938 -2657
-2085 8945
-2801 -1426
-5999 2398
--6212 -3871
--960 3770
--3680 2696
--4316 384
--1096 -5807
--3503 288
--7895 5279
-472 5548
--316 -8129
--350 -802
-2454 5129
--2801 -7210
--3516 3096
--6470 -3076
--2159 -2152
-4089 -7580
-1052 -3614
--1603 -2505
--9563 2787
-5541 4491
-4657 1292
-1356 2108
--7524 6128
-861 -2153
-3670 6498
-8593 -1058
--1740 2706
-5458 5604
-8179 -1904
-6744 -4603
--2584 -8671
-3865 7671
--6781 -6639
-867 6750
--5073 1171
--2306 -9669
--2097 1502
-1549 1640
-6472 -845
-3414 -6219
-235 -8448
--2206 1548
-6847 -2715
-6646 976
--3822 3435
--3585 -2269
--8869 1770
-5072 -5830
-4094 166
--7087 3877
-6256 199
--7191 -5900
--2944 3616
-1595 2170
-3313 -8348
-1179 -6832
-3896 6031
--3123 -8318
--4738 -5502
-8355 108
--1406 -4116
--1984 8704
--2264 -2112
--6427 6586
--2521 4546
-3915 -929
--3466 -2688
-3886 4830
--2346 5572
-5926 -6708
--9287 -1339
--1422 9516
-6074 -3920
--4052 3669
--2046 8945
--5139 -7541
-1885 7991
--984 5234
-4082 -8420
-2238 -7995
-9331 534
-2990 7885
--6398 -968
-8511 -4186
-4291 3460
--2528 2307
--847 -4926
--7273 634
--852 432
--1845 -1448
-903 -5275
-3974 -4102
-3193 -9137
-7909 4744
-1178 -9075
-7234 -5251
--612 -5390
--3094 8088
-2110 2881
--610 -3610
--5561 4108
-8535 -3604
--1103 -9491
--3274 2741
-3542 -8232
-179 4688
--3493 319
--7973 -110
-1556 -562
--4888 -8536
-6784 -6201
--579 8418
-5016 -8175
-5662 -1285
-9364 979
--2402 -3177
--2546 7334
-4511 600
--27 -5490
--4591 2041
-2276 7812
-2543 -6906
--5306 -5791
-145 2339
-2784 -8216
-1130 -6568
-4236 4309
-3759 -9119
-8596 4512
-1000
--1130 -6466
-9370 -1179
--4512 6313
-3937 -4301
-114 -3516
--2952 -7540
-1132 44
--562 -6297
--249 709
-0 -4274
--4225 5658
--5082 4389
-24 -303
--8757 -1101
--7685 -4856
-5402 1845
--4249 -2977
--2572 -430
--5473 3339
--4040 950
-6064 5782
--8327 -2886
--4088 6304
--4840 5701
--4243 -2913
-7866 3704
--51 -3746
-5974 -5238
--9481 -1796
-1145 -2423
-1615 -4254
-3526 424
--3638 -1766
-8204 -385
-6297 5048
--4590 3846
--1977 -3509
--18 -3118
-5445 2707
--4977 7368
--6869 2564
--1759 5270
--1846 5634
-5548 -1277
--2653 3048
--402 3815
-7554 1498
-7885 3635
--7174 1047
-3912 2404
--2652 9053
-4343 6302
-6566 1544
-2691 -6179
--1928 -9383
--8505 -1879
--3947 -6911
-3984 5293
--3175 8633
--2046 2145
-6866 3453
--6930 -1256
-4720 -4851
-8925 -2374
--3268 -7484
--3685 -1189
--8022 2624
--5876 281
--3653 7821
-7977 5305
-364 9080
-680 5309
--3604 -5101
-1407 3210
--6087 2253
-2665 -9216
--750 -5089
--2585 -8352
--3139 -6372
-2106 -4893
--8943 1600
--3471 -2218
-1034 -2870
-5368 -357
--9210 -2854
--2324 -3219
-4452 -5643
-5048 8414
--958 8289
--4065 -3983
-1594 5271
-628 3251
--7082 423
--6886 6949
-6625 2814
-1184 7266
-8229 -3264
-2582 -6603
--3619 -2934
--3211 3694
--1062 -7434
--6409 4107
-6248 -4109
-3750 -4350
--1141 4900
-1604 92
-944 3851
-8162 -460
--5879 4394
-7751 -4189
--5944 3257
--5118 4601
--9167 538
-7702 -2425
-1713 7201
-3948 -7992
--1874 -6205
-8473 -222
-6369 -4560
-2187 9515
--7205 1914
--6317 -6934
-2223 4200
--4349 3597
--6653 3064
--2403 -3276
--4900 8710
-40 -3976
-5757 7280
--3846 7725
--3003 -9500
-3589 1793
-2141 -1633
--5030 -936
--400 -8698
-1784 676
-6942 -7118
--528 -362
-782 9948
-57 33
-6346 -911
--3319 -5097
--5237 1986
--4230 7634
--8022 4045
-6569 -2521
-2465 -3206
--3123 -3186
-3239 7807
-8548 -5133
-5397 3747
-7537 3314
--174 822
--832 -6158
-6033 332
--5484 -5114
-5952 4655
-4113 -7725
-269 7442
-6293 1229
--1481 -8012
-1579 -646
--956 5105
-5522 -6045
-5106 -3960
--2785 -6424
-4810 -3016
--7366 -5935
-7846 255
--6663 -3189
--3026 4053
-1312 -9290
-3526 22
-6375 -5746
--2265 6474
-91 -7650
-942 -2487
--5639 -1982
--842 8732
--5358 3779
-526 2466
-3622 -1234
-3837 -8324
--3056 4033
--5390 -7534
--1672 -7538
--1404 -3887
-5513 6806
-7096 -3048
-4085 5407
--4030 3151
--2553 8434
-492 5054
--4634 -955
--4369 3151
--7 5836
--2620 -4394
-6895 -4216
-2594 -5914
--124 6281
-1054 2373
-5964 -3834
-963 8658
-6047 371
--9011 -325
--6273 188
--23 3521
-6507 3028
--4680 -2364
-2826 4193
-4790 -4359
-5600 5922
-5546 3354
--5334 6861
--6797 -6922
-2582 7687
-3681 4702
-9259 3083
--4138 -2476
--145 7525
-7779 625
--7047 1608
-5201 -8250
--5908 6795
--1976 -922
-4980 4106
--5841 5167
-4369 -1094
--3003 -4433
-7767 3590
--3591 -2122
--7781 3689
-781 -1021
--343 3002
--1709 8118
--6131 159
--5210 -6106
--3262 -8487
--3791 439
-3027 3830
--256 -8528
-1268 -5038
--1573 7661
-7585 -3463
--3367 -9328
--2971 -675
--6599 4574
--5453 -1007
--7669 -1404
-7367 4822
-5123 -7799
-5177 -1117
-4760 1140
-7952 -772
--9447 -1155
-3001 -200
--3967 4874
-6811 4702
--4994 -4419
-4079 7372
-8285 2766
--1072 9666
-9408 2296
-5805 -6337
-7703 -4994
-5761 5427
-7555 5175
--2698 -8924
--1358 -1115
-942 -3476
-5135 3315
--1609 3457
-5393 4063
-1754 -7338
-1969 6259
-408 -5708
--7713 2078
-8826 -678
--2343 -1254
--693 -9835
--1376 7998
-2660 -5633
-3364 -7755
--3060 3130
-4659 -8753
-7389 168
-7506 6380
-4592 867
-1715 1919
--254 1636
--1870 1722
-4429 -7047
-5473 -4578
--4234 -7099
-218 7313
--8393 4895
-5007 2112
--9662 656
-3546 4015
--4716 -3536
-806 -941
--3179 6313
-4041 5726
-5916 2836
-681 3930
--6191 -1915
-2030 8879
-2754 2071
--7314 6102
--9189 34
--779 -3879
-3396 7845
-1402 -3128
--6610 -700
--652 7920
-3735 -6084
-5655 7295
--5399 4664
-9900 -998
--2349 -5952
--8801 2847
-2848 3489
-5699 8141
--9355 -1907
-1162 7179
--5672 7742
-5538 280
--5262 -492
--3522 -6599
--1690 -6560
-1684 -8270
--1602 -9264
--4852 6895
--817 8340
-7205 3574
--5724 -4022
-3704 -2623
-3600 -2354
-1025 3304
--8676 -3996
-3222 8087
--9394 3050
--7758 -2182
-4815 -6045
--8014 -2562
-1308 -60
-7732 -407
--3013 -1829
--3456 9376
--2543 1039
--635 9476
-297 7155
--2212 -2674
--4427 5394
--3676 -7441
-84 7441
--3206 5025
--1395 -7317
--1273 5699
--8164 -4630
--2528 -2439
-3193 -7796
-769 8064
-4866 7644
-5871 7655
--6410 4877
-5101 -8086
--1816 -3333
--3922 -189
--9262 690
--6996 5568
--7705 -226
-3402 8219
-7087 1561
-4126 2095
--8004 5288
--1585 5047
--435 3449
--5138 6040
--272 -9035
--2731 6351
--266 -7117
-3897 854
-3980 -5925
-9808 1867
--2601 -2057
--820 1338
-4297 8738
--5345 2638
-4653 3076
--6543 -3641
-9118 3118
-3688 -1084
--1076 559
-2437 -8420
--748 9290
-1819 -8381
-5365 4534
-1520 -719
-2958 4805
-6217 2482
--7985 -4044
--6300 2688
-7078 1566
-5378 -1126
--3310 -8264
-5278 -1948
--3648 7151
-4756 5895
-6076 2150
--1397 5078
-3879 -7106
-781 1650
-1107 1413
-1055 -7226
--5404 -3983
--3786 8437
-1882 229
-2602 -2595
-4529 567
--4125 7665
-6348 -2768
--6334 -5293
-8181 4335
--5538 -1743
-1266 -8092
--3503 6089
--7678 -3916
-8238 2080
--2472 -8230
--5528 -778
-5511 -6290
-3701 -1442
-3074 4336
--1059 -2112
-2915 7892
-8014 961
--2961 -5104
-3821 5799
-5882 965
-3356 -1336
--5638 1644
-1354 -4460
-3562 9078
--1717 2328
-7781 4357
-4165 4251
-3819 -4260
-3600 1934
-3724 153
--2236 -1389
--280 -8410
-9511 386
--6181 -6234
--5079 -3542
--3115 7448
-4601 4079
-9749 1329
--3661 -4212
--1882 1400
--3441 -3142
-6886 975
--2036 -7344
-6750 2157
-1194 9551
-1568 -6773
-6299 7366
-9395 1879
-2518 -9557
--47 6257
-8011 -3647
--5550 8237
--7803 -687
-6520 -6632
-72 3437
-9684 238
-4899 -5241
--963 -6758
--6167 1587
-2618 6188
-7441 -401
-5575 -1191
--2862 3451
--1507 7061
--3224 -1889
--1146 -5027
-2038 8058
-4708 4703
-3453 -3046
-2324 8326
-4489 -7333
--5662 -6403
-927 5810
-6662 -4426
-1183 -314
-7121 3721
--8571 4705
--1547 7232
--3846 -653
--3127 5398
-2288 3701
--89 -7327
--2576 -4314
--1565 3183
--6158 -3007
-3606 1333
-6275 1435
--3586 207
-3383 9295
-5622 495
--3916 4571
--449 1095
-4937 -2215
-9314 2786
-353 -89
-3029 4121
-6903 3334
--3827 -2445
-7781 1759
--7227 6862
-7929 1747
--1055 -5311
--4892 1174
-6692 773
--5125 -7681
--8713 -915
--687 4528
--9196 -1612
-4545 -1516
-2309 6146
--1257 3066
--6547 2626
--3477 3183
--5800 -1647
-4394 3431
-4669 -5111
--7379 4066
-7333 3119
-1486 -291
--6315 5686
-6567 6670
-9345 810
--3007 9189
-2168 6393
--8580 -516
-137 -2376
--9445 -316
-4846 3520
-276 971
--7783 1874
--1019 4539
--1378 -4013
-803 8625
--4881 -4576
--1890 5781
-6282 7645
-2017 46
--2372 -4020
-2062 3841
-6500 -1979
--4830 -6741
-1317 -2526
-5248 3632
-5895 -1062
--3292 9364
--1712 -1517
-7985 1056
-297 -9733
--2268 5648
--6596 652
--1892 -1391
-4705 5658
--767 160
-4354 6244
-1491 6774
--3405 2034
-3816 -5847
-7232 4271
--8925 -454
--970 -1761
-84 -2815
-2985 3609
-8202 3792
-2886 -1298
--9870 -852
-9572 -2557
-7272 5850
--4299 -1485
--1856 -536
--3335 2490
-4853 -8509
--2057 -2256
--1565 -1161
--3404 -2991
--5433 7323
-2063 -1545
-1076 -4467
--1502 6251
-752 8223
-514 4889
--6751 -3159
-1046 -1648
-3120 308
--819 -9047
--4085 3452
--1923 3808
-4711 -6985
-823 -2425
-7974 3597
--1088 -8279
--5332 1424
-728 -5800
-3853 -8143
--5649 -3333
-5691 5371
--1417 -1759
-2555 -2190
--4957 506
--7686 -2804
--3761 4435
-1941 -169
-948 -1066
-6419 420
-2465 -7542
-3736 -3037
--4824 1058
--6864 -2238
--7994 -2041
-937 2631
-270 4798
--2472 -7331
-5367 -1801
-1466 -7341
-588 -8597
--5638 7349
--9127 -858
--4542 6170
--2142 8077
-926 8077
-3695 604
--6254 -3124
-1346 9758
--9040 -2825
--7861 -2808
--5520 -7022
--5464 4532
--5237 1346
-8457 -2985
--3715 8677
--4711 -4072
-5435 8077
--2419 -567
-308 5305
--2453 7344
--1484 1879
--1360 9124
-2623 408
--2421 -7382
-5340 -5903
--2511 -3541
-1624 4654
--9128 3589
-1031 -1662
-3108 7828
--2306 2248
--5441 7439
--6065 2801
--2372 1639
--4038 6571
-1743 701
-7426 2912
-8825 -3728
--2874 -6506
-6677 7171
-5157 7202
-6494 -1340
-7068 -4663
-8450 1814
-3383 1249
-6802 4515
--1354 1042
-180 9725
--1268 -2333
-2863 -9489
-8713 3872
--2392 -993
-2560 1407
--1000 -5687
-9608 -215
--9606 497
-5086 1685
--1662 2109
--5129 146
--4969 -4019
--6805 -5294
-2750 -2140
--6784 -3912
-7822 2263
-3113 7546
--4707 -3964
-2915 -464
--5386 789
--6449 -5717
--3790 -2463
--337 -5352
-2966 -5997
--2759 1147
-9029 2212
--3864 8651
--1411 4316
-7465 3580
-1200 -2604
-2074 -5732
-6003 7207
--6827 -6739
-6746 -2977
-8382 4574
--8621 -1191
--4349 1045
-5343 5621
-1092 -8722
-2217 469
--3172 2159
-4673 5616
-5130 -4044
--4461 2931
--6357 -3600
--1475 963
-5657 7746
-2630 1959
--111 -5261
-2949 -7808
--6226 -3507
-4790 -1415
--6586 -1825
-5241 3941
-1907 3882
--248 9678
-8565 -1359
--2193 -6989
--877 -7327
-1320 -9672
-1438 7225
--4492 -8294
-2654 991
-9710 -500
-1180 -9828
--3309 8879
-8756 385
-1624 4810
--9496 2001
--7800 1779
--895 8243
-91 -2377
-8455 -1451
--3694 6117
--8060 -4015
--3780 -7139
-4341 -4503
-2222 -3377
--4576 4298
--4196 6005
-3577 -2405
-1067 3795
-1038 -8038
-6558 -3349
--3023 215
--3291 2338
-5352 -529
-6723 -3943
--3689 -2584
--8256 -2451
--8085 4886
--3506 8135
--615 5681
-1385 -317
--5516 8335
-9855 -1248
--1365 -663
--3092 -1272
--9149 1137
-5069 1178
-7791 -1891
--3394 -2485
--4623 6380
-274 6826
-3598 1669
--1018 4080
--8072 -2066
-4994 677
-37 -1535
-6267 -2023
-4086 -2151
-2247 -2255
-6356 -6866
--2253 -1832
--4090 6838
--8659 2532
-2062 3223
-5701 2119
-1495 -6667
-1540 -5023
--621 3774
--5173 1011
-459 -6441
--3605 -6627
-3005 -7039
-2793 6885
--84 -5683
--5401 1570
--5090 -2932
-8167 4475
-7826 2606
--3927 -8363
--5308 -664
-6280 -1544
--2425 8473
-5442 93
-5126 8574
--7911 -4637
-7837 5369
--2525 5175
-5287 5715
-7738 -1662
-3959 418
--4405 6788
-4267 -880
--3063 -3111
-4790 -1408
--6473 -6004
-9490 1647
--4898 -5499
-334 -7482
--2353 -4895
-4866 7384
--611 4761
--312 -6438
-5783 4677
--6276 -6279
-2185 -4268
--6639 -5732
--918 5733
--3888 2989
--2995 -7311
-9789 -222
-3455 5712
--4516 -7675
--3091 -1708
--5098 -1977
--3148 -3432
--1245 1942
--3104 1247
--743 -7957
-3774 -8220
-1821 5621
-3904 5021
--6584 1525
-1865 -4638
-3858 -8259
--6179 7705
-5453 -1005
-5045 3865
--5148 3919
-5273 -6670
-1838 -6916
-8155 -5242
--1228 3082
--4003 7320
-577 -9980
-7930 5945
--399 -8517
--8457 -778
--6859 -5465
--1593 1779
--5119 -5479
-5123 -2357
-6676 -3859
-6569 2829
-3443 6886
-1042 1062
-382 1679
-2480 -9471
-5800 7317
--1647 -4525
--4595 100
--1711 -375
--6001 -1030
--1645 7706
-8428 3169
-524 -5895
-3963 6660
--1399 1219
--3311 2987
-1285 -2302
--8503 -1677
-226 -6661
-2712 5576
-4348 5160
-1907 -6903
-11 -5070
-2849 -9353
-3417 -3428
-3697 -3386
-486 3533
-5214 -5814
-6264 3247
--2943 2265
--5003 -3795
-6279 -4336
--4020 -5632
--832 -5201
--3250 9279
--731 7786
--7073 -5393
-5833 2973
-5140 -7831
--4742 51
--8594 -1298
--2689 -7348
--8525 1483
-3546 -4944
--9136 1961
-7505 5933
--1790 -6435
--3338 -1968
-5520 3222
-5179 -1733
--1261 -4709
--320 -5868
-7026 -3779
--13 7838
--3018 -9199
--3435 -2084
--1603 -5260
--3477 -4340
-6771 713
-33 4949
--487 -4967
--4917 -5789
--8462 1082
--894 1782
-6638 -6319
-5418 8166
-1757 -4853
-2937 6731
-6822 5575
-273 -297
--5601 -6649
-2580 -17
--1910 7353
--1987 1800
--4176 -1275
-7473 2116
--7084 -2944
-609 7712
--5535 -1374
-2136 2035
--3936 8276
-2388 -7906
--6601 3120
-4916 1328
-947 9127
--4909 -6969
-8603 -1922
--5750 4939
-5165 -685
--3621 -522
--617 -8022
--6193 7018
-1666 -6354
-270 -4706
--1907 1966
--3489 -763
--285 -9483
-3783 -4130
-8592 1584
-6175 4939
--3262 -5614
-6014 2364
-4058 1671
--5062 -2351
-514 -5958
-1810 8554
-2711 1825
--5487 -3294
--8433 -426
--1334 3873
-6034 -15
--4275 1778
-800 8940
-7449 2389
-1680 -7646
-7615 -4283
-156 -1071
--4536 -5125
-3453 4418
-2625 -5144
--6869 2789
-4742 -1447
--5421 4938
--9381 2649
-8119 5476
-1000
-9485 2563
--4541 4897
--7856 -3725
-6653 -7241
-79 -669
-5730 2564
-6609 -4886
-5214 5316
-9623 1209
--5483 -1363
-5957 4977
--452 8827
-585 -5720
--2230 -8944
-8261 352
--985 -6990
-2465 -2182
--999 9642
--5329 -4911
--7431 4743
--2201 -6825
-7292 6420
-2321 -1814
-9589 -806
--194 -3675
--4727 -5859
--4810 7825
--6838 -5855
--4613 3216
--5939 6153
-8123 2003
--7401 2432
-7209 -4608
--5085 6568
--4802 7730
--2460 5771
-7357 -6078
--2887 7342
--6169 -3811
-3206 -6950
--8745 -2171
-4473 -2397
--1676 -7647
--3967 1472
--6630 -3555
-7981 -2927
-2130 1332
-5195 3334
--8110 2702
-7411 6513
--929 -7096
-6228 -2206
--6188 -2407
-3714 2994
-5913 3412
-4432 6997
--1742 9029
--2178 -2385
--76 -5774
-3071 -4050
--4122 -1695
-3133 3406
-1357 -174
-1909 -3888
-3258 -1351
-9154 1262
--6500 -2430
-5729 -6511
--3113 9358
--7939 1566
--7018 4501
-7921 3926
--1911 7751
-3235 -1612
-2980 1403
-39 9797
-9625 -1593
--4290 -397
-632 -4347
-6327 6095
-1210 543
-4397 -5314
-3320 -608
-2187 1923
--4932 4365
--2871 3456
--761 1758
-7847 -1552
--3274 -7128
-7682 -2435
-5487 144
-5131 6141
-5068 -3941
--3644 -5593
--1101 -6781
-5906 -6138
--3354 -4546
--9151 -1495
-7990 -2050
-8708 -2151
-2942 5306
--1177 -2149
--4815 -4319
-7909 923
--3811 -4904
--2339 9503
-1931 -1477
-1481 5598
--8001 -320
--6945 -2695
--2822 2324
-3815 7787
--2642 -2967
-1456 -6817
--2049 -3875
--4870 -4855
-2555 1586
--7368 5139
--8753 4631
--1084 1134
-402 7229
-3682 8975
--7263 -1654
--3170 1126
--1492 5773
--6384 5573
--1972 -9139
-2271 7742
--206 -7291
--4 8446
--7857 -3785
--5730 4467
--6241 2695
--6696 -6775
--1681 1236
--7172 -6301
--2042 8006
-3898 -993
-8156 -1053
--2323 8593
-3765 1822
-3151 8611
--26 -5996
-1716 2051
--8400 -2592
--5916 1076
--2937 5871
-8190 -4908
--9034 -4178
-7637 -5630
--3193 -8562
-3809 -1193
-7415 1613
--8296 1197
-7429 -5519
-3730 5773
--7005 -2846
-1495 7276
--2441 7343
-4323 2928
-1425 9015
-8206 -5690
--8320 -3319
--2473 4630
-4519 8463
--4512 -2779
-1881 2277
--5124 -5314
-4050 3738
--2530 -7777
-6117 -5719
--8154 -1632
--6428 -3006
--2207 9712
-1848 -4260
--9104 680
--260 8291
--1021 -5394
--3397 8712
-1995 -6901
--1989 -1848
-5016 -7754
--4791 -204
-7353 -3353
-314 9145
-1775 -8087
-5575 4346
--596 4222
--5596 -8000
-8579 -3154
-3345 -9299
--4024 -6519
--6579 2109
-6012 -7817
--1746 -9833
--4532 3707
--4709 -6121
-127 726
--4751 -6011
-6736 -443
-820 -2479
-5380 1532
--1703 -5606
--9658 894
-4341 -356
-8408 -302
-6636 2152
-1492 -2117
-5925 -5187
--7370 1888
-3737 2247
-712 -3962
-360 2877
-2684 1219
--1284 5053
--5336 7511
-1635 2431
-4114 7285
-6737 -6028
-1826 -6146
--2975 -2512
-6384 904
-1809 -8643
--1855 4589
-4912 -1741
-2595 -6067
-4367 4202
-5442 -181
--2199 -6380
--2185 -3522
--2276 3877
--1004 -7934
-1080 -5811
--4304 6466
-2008 5519
--6507 5841
--5858 -2529
-150 3328
--2319 -5745
--5389 7692
--3786 3385
--5492 -349
--8614 4764
--4400 -628
-5150 -7261
--4827 2003
--1888 686
--829 7935
--209 -7826
--2057 9164
-6756 3171
-456 8097
--7328 3841
--1700 7021
--1620 -6453
--7568 -6143
--4062 -3746
--3098 3544
-7970 -2595
--1045 4284
--2151 761
--679 -1027
--4149 1121
--1206 4762
-2290 -7317
--4770 8260
--6740 2334
-2787 7565
--8393 3871
-697 5974
--7848 -5273
--3806 2178
-3438 9177
--8081 267
-6753 5052
--805 3818
--1236 -1690
--5886 3960
-1555 -9332
-9150 -1390
--7702 91
-3584 7380
--3182 -6338
-5251 5389
--1172 -9655
--7207 1267
--2673 -8079
--7263 -6760
-3412 8256
--2154 8215
--1643 -1481
--1315 -7267
--865 -3107
--4142 -7193
--8394 1654
--649 -4830
-4506 -525
-1678 8440
--7465 6035
--7152 4019
-1269 452
-6894 -1278
--1795 -2267
--2732 -4101
-991 9579
-2359 3881
--1977 670
-4604 -3640
-3723 -2197
-3059 6746
-4803 2324
-791 -2180
-4605 -7567
-3116 -3436
-6000 5829
-1695 -998
-3781 -3128
--6673 7323
--8386 -1818
--2093 2490
-9194 -2474
-3923 2184
-2038 1596
-6580 2766
--4491 926
-7605 2601
-9507 -1799
-7614 -5606
--3140 290
-6616 5654
-2643 -3477
-6043 3108
--1790 -9818
--3564 4491
--1701 3143
-8803 -3668
--938 -6426
--775 9164
-143 -8516
--254 -7248
-633 4804
-2976 8518
--3639 -6418
-566 -133
--172 -2041
-6246 -6170
-5817 950
-5655 -4877
-4290 6720
--132 -3734
-8074 5540
-5563 -1173
--389 7323
--470 7341
--2796 -5364
--2277 9245
-4099 6247
--7191 -3205
--4926 -5260
-6244 1058
-1155 8575
-4713 3967
-1300 8626
--8112 -1071
--3139 370
-1287 -8652
--8591 -4255
-8037 4779
-2922 3667
--7146 42
-8929 294
--7380 2930
--6086 -589
-4646 -3945
-2358 2337
--1498 7577
-1111 8562
-5248 6163
-2791 -1419
-3805 -1554
--8627 1326
-6552 56
--6040 7073
--6904 2195
-3283 -2234
-3748 -1175
--3491 -5584
--4035 -3916
--5086 -4313
--5185 -647
--5345 -7481
-5476 -830
-3144 -6077
-2564 -1651
--925 679
--482 -9841
-2859 5833
-1042 -374
-8095 444
-4557 2402
-3145 -8263
--1247 -8908
-1350 6748
-1926 388
-7273 -4928
--7539 1642
--2031 -2197
--5057 -391
--3036 -6803
--7949 -5712
--2127 -5256
-6376 2361
--817 -634
--857 179
-1403 -4767
--319 -2365
--7593 -4365
--5355 -3583
-868 36
-219 -810
-6649 6067
-491 -5115
-794 -8917
--9109 3640
-4972 -2596
--4816 1025
-755 -1581
--4651 8192
--2034 1169
-1091 4976
--4247 -298
--1987 -4157
-5721 -5046
-181 -1810
--9144 -1003
--4096 6048
-1404 -1569
--8071 3065
-1121 4333
-1384 -6760
-8218 -15
-4256 1694
--2551 1084
--2605 -5027
--2011 7601
--2457 -7826
--5914 6577
-676 6645
-6657 -3043
-1804 -2889
-176 -3557
-4425 -2677
--5614 6498
--8437 4758
--9656 1655
-3923 -7310
--3236 2404
-1408 2330
--4480 3241
--3636 -2896
-5784 -3748
--6364 -7283
--2233 -1764
--5841 6950
-2934 4853
--122 -3625
-105 -8885
--2546 7468
-8871 -2655
--4721 6807
--6220 -2858
--6666 -4742
-2869 7501
-7646 5105
--1984 -3106
-747 482
--4092 -5142
--3575 -9211
-2340 9080
-4179 1485
--1134 -6029
--7697 2995
-106 2771
--5191 5774
-6876 -5558
-3855 6871
-5640 7474
--9481 1798
-7104 -2403
-2951 6522
--5130 1382
--2590 -3832
-1145 1698
--3823 -4424
-7914 -889
-3939 7829
-7495 5949
--7971 1257
--8427 5202
-8100 -367
--4247 7204
-7122 -2331
-865 -6489
--8738 4321
--6309 -3777
--1874 -7231
-8824 4442
--8544 -2774
--9675 -2023
-1280 -4907
-1478 -6800
-6100 5214
-6378 -6943
--2281 -5572
--3529 -4628
--1159 9862
--5268 1594
--8119 4328
-7415 -1447
-7248 -5559
-6617 -1161
-1900 4403
-7608 2262
--4581 -377
--3147 3378
--8133 1645
--9271 2053
-9645 1007
-8682 -3652
-3385 -33
-9015 3566
--7190 -6379
-9351 -2917
--1145 2033
--5062 5627
--1742 -2902
--962 1096
-2562 -4490
--4722 8662
-2639 4226
--184 -632
--3626 5897
-5984 4322
-5478 -4229
--2611 3280
--3201 5998
-5658 -7144
-6830 -1948
--6595 4438
-6751 -4075
--5500 6061
-5421 3482
-2417 4040
-4637 -2911
--5012 -6163
-2867 -3216
--2569 9077
-1078 -3439
-4793 1616
-6015 -1538
--5087 -8037
-7501 3127
-4974 -6474
--3408 -4592
-1352 8795
--4126 -2869
--2890 566
-5086 -4401
--1608 -6876
--8499 -1006
--3533 -7555
-3495 8840
-7065 6337
--809 -7601
-2136 -2514
-9024 -1552
-3259 7092
--3200 -2969
-1122 4213
-2467 6261
-4802 -766
--2588 3269
--3003 6001
-1013 4408
-1101 7861
-1705 3975
--4597 -7344
--5399 -2045
-4806 2349
--6383 -2315
-303 -3546
--8875 3271
-3460 5104
-4277 7180
--2380 -3070
-6359 -1013
-5185 1510
--6091 7781
--4116 7232
--2008 915
--5400 6939
-3635 -8167
-3335 -8630
--5076 -2039
-6983 3268
--2412 6545
--4650 -6718
--8687 4551
--7340 1076
--2826 -3947
--8335 490
-5110 4913
--4012 -2854
-1038 3767
-94 -2728
--2051 4568
-6587 -3386
--7438 -4279
-2183 -1623
--4576 -1923
-4616 7857
-2897 -7687
-4056 1227
--3157 -5193
--4324 -4584
-4899 -7172
--345 1487
--5722 -1597
--3714 -944
-2958 -8782
--1078 -1671
-2862 -5979
-4307 -86
-4276 6883
--850 -6982
--129 -1159
-813 -7519
-1276 -4267
--5521 3779
-361 4650
-1591 -8902
--5818 404
--7188 -3518
-6540 -4593
--7923 -5473
-545 7417
--4997 -4557
--8195 110
--5022 4460
-2375 6830
--4417 -2873
-1429 7139
-5585 1041
-8636 -770
-755 7392
-4544 5370
-6088 -4137
--4612 -1881
-1039 4033
-2361 8151
--1616 -7546
--2214 3484
--1051 -6607
--3884 1958
--6848 -1711
-4731 -4443
-5931 2487
--3716 2478
-9126 -3411
-2785 -585
--7454 -1433
-6811 -6678
--3532 1542
-1056 4963
-1561 6291
--44 8123
--5813 -2738
--407 -7949
--2755 6796
-5354 7200
--1366 -5641
--2896 8651
-441 -9082
-1054 84
-5140 920
--3685 720
-4596 -4341
--71 -3679
--4480 803
--7860 473
-6240 1722
-523 -6751
--3270 6450
--1023 -9366
-7147 -1911
--7038 6603
-1630 -1257
-8108 2253
-4250 1334
--1359 -7096
--6698 4181
-3498 -2702
-2436 5304
-2577 3293
--7585 6150
--5390 -4169
--2128 -3328
--5689 3256
--6807 3363
--1559 9079
-2192 -5554
--4344 5758
--5803 -2409
--94 4820
-1663 3726
-9119 1453
-7087 -5553
--3787 3054
-4813 -4817
-4485 -2189
--2992 289
-235 4997
-8568 -3822
-9358 422
-1942 4021
--1221 -5921
--4530 2058
--2159 -208
--1650 7730
--8743 -3397
--2593 -5376
--5482 1423
--124 9469
--5059 -7783
--6443 2671
-7782 5954
--5935 -5403
--7007 6709
-6967 4799
-8590 1448
-4235 5326
--6464 2701
--7528 -5108
-513 504
-1307 4138
--6840 -4422
-1275 9889
-4644 -6588
-2592 -8690
-517 1117
--6758 -2894
--7382 1638
-6580 6407
-1951 1459
--5003 -3128
--6403 -3248
--3929 3909
-3763 3607
--6162 7341
-3198 -7930
--7313 -2105
--5277 5423
-7328 -6300
--1556 -9164
--7096 -327
-3088 6299
-5906 -3020
--6954 1494
-355 7700
-3495 4322
--8131 4420
-6291 6911
--5863 1417
--7342 -5442
--4567 5068
--2468 817
--3345 7112
-278 7262
--1029 8194
--2022 -985
-1814 7810
-1034 -5361
--1939 -5783
--1442 -3801
--7907 101
-8378 -2387
-7578 5861
-450 2926
--3502 6644
--7194 -1912
-4853 -571
-3055 -3386
--2250 -5493
--1001 -6643
-1560 9277
--239 6428
-8423 1080
-1254 -7468
--8505 4712
--7906 -5247
--2919 -8738
-4058 3640
-7711 -5573
--1103 -1165
--7379 -5266
--1813 -1745
--8864 1416
--5831 -7772
-5858 487
--5265 7684
-9883 3
--1212 8663
-6562 1755
--3504 -1305
--336 3122
-3742 -7632
-6435 -6528
-3354 -4122
--230 2773
-5153 -1481
--2854 -5603
--2211 3782
-549 -4136
--6193 -6046
--5393 -1774
--2499 5364
--1261 8344
--5512 228
-6739 -3937
--4128 305
--8111 -5414
--3140 -8065
-2805 -4293
-6313 7321
-1399 5070
--2316 1076
-4136 -6886
-704 -2890
--2150 1689
--8132 2017
--883 -9944
--7292 1171
--7980 -940
--7621 -1680
--6238 -3316
-435 -2471
--1565 -8503
-130 -8397
-4326 -2217
--6278 4905
-3588 5253
--7207 -859
-7427 6212
--6175 7812
-5745 4112
-7742 -871
-8138 -4840
--5926 -4303
-9709 2179
-1424 5164
-8705 -302
-9225 3035
--5210 -4653
--4809 -6454
-5833 7605
--9716 255
--2374 -3735
-539 6883
-7327 2847
-1924 3998
-4977 -3289
-5038 -806
--2927 -5763
--8912 -1881
-7958 3155
--4905 -114
-2921 5310
-5120 -4714
--1884 2420
--842 9190
--2877 827
--1718 607
-5256 -536
-892 1143
-2760 -1059
-1758 5879
--1345 -5424
--2325 -1794
-4039 -937
--2321 -794
--1805 -3187
-3088 -6676
-1267 -9463
--7913 4270
--1505 4876
-7829 -1262
-6273 -7578
--1578 8931
-5642 -2836
--937 8149
-7910 -395
--9233 214
--1726 -7665
-688 1999
--1393 2831
--9593 198
-3473 -7144
--3341 -3066
-748 -5311
-513 5464
-6037 -5911
--6165 4235
--7012 -5405
-1674 9294
--1965 -8944
--4009 -5325
-8506 3791
-3046 -5823
-4300 858
-3731 5059
-3270 4183
--973 -343
-2183 4751
-5074 -2119
-4949 -6582
--1098 -9536
--958 7271
-8508 2120
-5686 4526
-623 -6871
-5433 3357
-3085 -1070
-4887 2018
--365 2677
-2526 -6608
-1618 7309
-3466 7150
-2703 3682
-3109 3488
--6406 2579
--6593 -392
-2794 -643
--3081 -2179
-6058 -7237
-4915 1534
-413 -1743
--5332 1117
--2941 7613
-2706 -5827
-6809 6768
-5212 -1036
--1778 6186
-5882 3286
--541 -2482
--4425 -5562
-9020 550
-5491 -1253
--7097 3323
--1234 -4903
--2650 -62
-6172 5237
-4228 -1795
--6830 -1936
--6665 -5577
--683 5899
-8487 -3367
-420 6714
--2180 93
-4226 8659
--5428 -1464
--1367 8945
--8345 938
--5415 -1042
-6377 -4038
-3544 7913
-2494 -6553
--5173 5632
--1971 9366
-8934 -3764
-1681 -8918
--752 -6277
-5969 -4335
-5158 -4784
-6045 -166
-1976 -9056
--2625 -8934
-1102 2648
--5541 -1959
-1267 -3882
--8382 -163
-3072 -3235
--5650 4209
-5702 2455
-175 -1278
-3380 -7308
--3957 -6505
-5963 -2269
-3099 -5399
-207 22
-7123 1725
-7122 6638
--9148 3966
-1000
-2150 4978
--7561 2465
--3574 3887
--5840 -7731
-2602 -5577
--966 2562
-3684 4281
--9101 2482
--4584 -6527
-6968 1608
--5563 -7386
-2478 1001
-2829 8941
-5687 -5482
-9293 1465
-1783 -7685
-3654 -6461
-5322 6487
-2491 -8847
-6949 -2035
-1798 1244
-2396 -6066
-7389 -6372
-1152 6963
-1729 -9016
--8306 -3310
--4072 -8017
-755 2289
--504 -6557
-9932 367
--1375 -8690
-1344 2101
--229 -5197
-3661 -7323
--6952 3608
--615 3399
--6342 6078
-6318 1295
-8015 141
-3229 9132
--3126 1368
-4790 -2936
--5854 3051
-395 -6196
-1279 -575
--4863 2463
--4313 2894
--2935 1166
--6265 953
-517 -8696
-5655 -463
--6272 5803
--6471 2430
--31 9968
-1383 2354
--7423 3906
--2623 -8081
-3780 -6584
-3102 -4202
-5016 -5575
-1272 -4949
--925 -8857
-5621 -97
--1908 1366
--9729 -71
-1208 -9242
--2868 1793
--1107 9151
--5428 2433
-2453 -1931
--1920 4796
-9175 -3271
--5902 29
--8688 1127
-4240 -8813
-2790 -3836
-258 -9570
-4200 5145
--3385 -3714
-3554 7551
-4964 -8335
--1788 -334
-735 9792
-1277 1962
--882 5449
-2237 7045
-1914 5232
-2018 6750
--7432 3956
--5561 -3320
--4405 -3717
-1919 -8974
-7330 2517
--9682 114
-2832 -1976
-5069 2555
-6328 3068
--5697 3496
--1211 -3292
--2255 5310
-6651 2985
--3051 -8227
-8963 -1021
-2463 -5684
-1934 7069
--5637 6406
--341 3445
-1629 5417
-5173 -8329
-8605 -2127
-4856 -4567
--4485 -6901
-916 -3796
-2898 -7008
-2874 -1940
-3841 -7059
-2843 -5720
--4756 -5696
-6474 -4567
--526 -5350
-2002 -1266
--3393 -467
--3816 6023
--5863 3832
-6252 7078
--8191 -3155
-2691 1793
-2539 2084
-5971 1173
--4130 -2574
--5330 -4077
-3109 536
--4730 5817
--5579 8043
-5098 -5830
-6442 -4286
-1219 2661
-5503 82
-5100 849
--5559 6026
-2034 -7179
--6194 382
--4776 7780
--3302 4772
-6868 2741
-5521 7082
-7320 -4480
-4930 3952
--4729 5917
--4046 4097
-5102 -7152
-1633 1490
--486 2287
--4887 1684
--5277 -7320
--1815 339
-6146 6511
--3073 9010
-8593 1684
-4101 772
--4524 5078
-5351 -575
--2011 -509
--4780 2842
--9286 -952
-2730 1949
--3973 2903
-8218 4439
--3068 -5504
-5114 5885
-7009 1649
--5226 -1157
-269 6643
--566 6651
-2122 -8651
-3250 -1686
--6529 5971
-6180 4372
-744 8864
--8801 -3145
-7682 -5489
-5722 2117
--15 4665
-3509 3809
-313 6951
--6978 4128
-1899 4922
--6146 4135
--5224 628
--3968 -7587
--1002 -7379
--5920 2142
--3589 -5465
--9167 3147
--3119 9001
--3791 7169
--1538 8040
--7276 4606
--2683 5616
--3805 -4845
-2600 -5796
--3910 4465
-4173 8733
--2105 7888
--45 2044
-4288 -4207
-3734 4672
--4956 -3803
-7435 -175
--7892 5441
-5453 -4928
--6585 6985
-2482 -8276
-2230 7167
--6961 3650
-5844 -3310
--3116 5923
-6182 -5132
-4940 -1807
-1873 -2734
-1776 5320
--683 -3085
-5432 7364
--8505 2600
--132 -5202
-1828 -8048
--6791 5044
--3682 4834
-1246 -1411
-4894 -982
-783 3852
--4077 1463
--5701 -2738
--5372 -7175
-3977 7111
--1326 165
--2685 -4506
-2808 -6358
-3755 4792
--177 2290
--6762 4690
-3218 -1836
--6377 5022
-6946 2015
-413 -8805
--5989 428
-888 7166
--8318 -759
--458 -9183
--1016 470
--4397 -478
-6538 247
--6606 -1977
-3816 2560
--2727 -6208
-1018 -5000
--3237 7244
--5582 -1987
-8452 2711
--2959 6808
-6052 2962
-1531 5567
--2946 6642
--1140 1779
-1731 -8928
-3049 -7477
--2423 8026
-4082 3028
--5185 -1385
-3881 -4446
-5699 -4775
--1824 -2790
--9010 1087
--4919 7266
-9172 2696
--4450 -5952
-239 -8697
--5177 4733
-4651 -3355
-2259 -3359
--6531 -5580
--5070 -8338
--4618 5385
-4876 -7141
--3170 8125
--5449 5794
--1011 -2264
-9626 -808
-1528 -1488
-6470 -2177
-6915 -6979
-9009 1735
--34 8193
-2107 -3285
-5180 -382
-729 4383
--2196 5132
-852 -6973
-973 8772
--3841 -2139
--3841 2261
--6399 -6871
-9515 -2084
--208 -4051
-8139 -3245
-2814 3318
-1562 -8581
--2938 8936
-6167 6461
-884 -297
--1736 -6229
--8266 4338
-9195 2751
-2778 -4285
-7130 -1799
--520 -8757
--6580 -6342
--1929 391
--1041 -425
-6836 3568
-3517 -8729
--7875 1293
--8854 4016
-6247 -7481
--3058 5421
--6300 6893
-5235 318
-5248 -1153
-4741 1363
--7125 2699
--5182 -5048
-3612 -7452
--972 -479
-946 -5486
--5129 -6599
-1647 613
-2628 8455
--8429 4193
-9281 1783
--603 592
--4372 -2643
-5434 5212
--9338 1991
-1901 -7920
-5936 3455
--1406 -3098
-4722 -1088
--3209 5670
--7658 -3361
-6318 7568
--2747 5444
--5475 5361
-1090 253
-9291 -3546
-2306 6378
-1685 -1355
--952 5431
-1390 -7343
-5620 3714
-7964 -3061
-481 4199
-171 -701
--6672 -3220
--2690 -6726
--4578 2996
-5676 -1452
-4602 1107
--8460 -1551
-2059 2002
-4088 -6640
-2294 1030
--3716 4551
--2685 -3277
--6699 -6029
--3947 694
-4820 -8319
-280 -6178
--6848 1200
--5682 7966
-2592 -8394
-2429 18
-3633 3280
--7837 4396
-8521 -2055
-2824 3666
--1098 748
-2983 4633
-2799 -898
--5893 5741
-7160 6547
-8482 -4774
-3533 -5318
-507 -6460
--1119 8150
-1352 -89
-8904 1871
--6010 6875
-7367 -4439
-9188 -1781
-1530 4062
-7884 1288
-3720 -4810
-3224 -637
-315 2989
--125 8943
-6295 3206
--5529 955
--8061 5485
--239 -5470
--946 1844
--3461 -5721
--6397 -1663
--7179 3881
-2217 7493
-7792 2771
--1822 -8353
-8016 -2058
--343 -2309
--1731 3959
--3858 3327
-1034 -72
-6451 -7435
--7619 -4122
--603 -5492
-9134 2351
--3531 -4011
--2818 -7335
-4399 -3444
--118 3490
-8072 3538
-96 910
--4701 -4049
-7225 248
--673 3840
-1711 -1691
--5635 -2643
-3222 -2300
--2039 -8738
-2204 -9258
--7839 2565
-1965 -7887
--7064 6601
-3392 3382
--4061 -7728
-7291 841
-2600 9545
-166 -5749
--4855 3801
--3463 -7793
--24 4979
-109 7634
-8443 757
--4795 877
--427 -4283
--4089 -8515
-3713 -2253
-3557 4639
--3129 4976
--1090 -4852
--3445 1740
--8515 -4963
-784 1732
--7637 -2240
--3050 6936
--2356 9186
-8539 -814
-4454 8360
-9639 -1568
-6274 -258
-6537 4607
-1050 -8873
-5678 4672
-3900 -2984
--3418 5939
-7537 -727
--2005 -3960
--5303 -6137
-4852 7681
--1346 3945
-2380 -4459
--574 3417
--4136 -2436
--5216 -998
--1830 -7855
--1387 8137
--4807 1671
-5220 4185
-1028 1591
--4923 -6822
--6947 -1270
--7792 5
--403 2882
--4540 2645
--3976 -5149
--2810 -8202
--1922 -9604
-6921 898
-1268 4654
-2446 -6083
--2539 7054
--9461 2903
--2788 5363
-7428 3784
--2401 -8498
--4258 6623
--7204 1709
-7138 4191
-3612 -2844
--2289 8716
--2672 -3959
--2738 -4098
-8593 -3006
-9216 303
-5478 534
--5872 -2055
--2051 -2264
-1857 -5229
-2047 641
-3926 -2231
-4357 -234
--5805 7089
-4325 -1355
--2168 -1884
-1329 -7614
--7542 1987
--6762 21
--8526 1938
-1047 978
-533 8848
-3193 1150
--1134 -6682
--419 6032
--2165 -8078
--5093 4814
--7061 -1167
--7638 -5374
--6032 6551
--2517 2666
-3298 -3632
-1810 8695
-197 6763
--2073 540
-3150 5754
-56 -8853
--468 -6797
--6146 5150
--7315 -4298
--6291 1205
--6418 3824
--1279 7233
-5215 3883
-5222 2057
--460 -6314
--4554 -2965
--2238 -3300
-3607 -7604
-1705 5667
--3726 1772
-2712 -2271
-4022 -900
--1026 8335
-6988 -500
--9541 -2760
--9523 -1011
--2298 7563
--2304 7193
-3831 -835
-5578 -8106
--989 302
-5758 -2282
-2861 -1655
-36 -1081
--2439 -1672
-2990 -5715
--1579 -750
-331 -5797
--8634 -4367
--2649 -4710
--8799 -333
--2264 -6791
-3353 1160
-2260 4907
--2507 3548
-9078 -3319
--3365 5401
-5435 -3756
--6885 4832
-1096 -6873
-978 2081
-338 3091
--4709 -5166
--7222 -3944
--104 8717
-9651 1290
-6428 4418
-954 1507
--1879 -9016
--4705 -1851
-7437 -503
--7529 -3159
--4253 7332
--1464 -2779
--1067 -5711
--4681 -2246
-1009 -4819
-3304 8023
-1360 1312
-184 8147
-1045 -4848
--5670 -8174
-8112 -280
--1552 -8433
--1386 -1702
-6463 -992
-308 -5560
--1943 1205
--8613 5026
--5121 7458
--1312 -767
--541 -2358
--5492 2263
-3737 982
--8282 -5500
--4724 -2282
-58 1107
--1822 -7406
-888 39
--4024 789
--7815 -5937
-1358 8370
--3691 -8835
-9134 274
-1194 279
-6221 -4319
-5063 -3777
--5289 -6181
-3245 -1889
--701 7456
-591 -5365
-408 -8305
-5560 -4980
-3938 7562
-3874 8598
--5379 -716
-625 791
-4935 5268
-642 7709
-32 -1355
-1480 9525
--1447 8494
--3257 8855
--1487 -5134
-3944 -7334
-5323 -7493
-4784 7481
--4480 -6120
-9590 -2189
--3554 797
-4871 -3922
-8012 -5122
--887 7891
-879 7546
--5688 -3013
-4283 -6831
-6391 -769
--165 -9430
-3393 8663
--1450 -3401
--6939 5013
-6932 4154
-1855 -2812
-7342 -4053
--1314 7791
-1878 8735
-1986 3354
--8526 3858
--20 8098
--1776 6309
-489 5132
--2896 4895
--3554 -3163
-5908 3135
-456 -3316
--959 -4372
--5251 1486
-3624 2761
-4238 -6157
--9161 3932
--7009 -687
-3870 -2592
-3550 -1245
--4852 7369
-3734 -3417
-5059 -3614
--2921 -4632
--6205 6251
-6125 -671
-7075 2007
--3616 -200
--1002 6948
-151 -7904
--4473 5675
-4467 -8425
--2382 -3352
-6547 -6718
-4726 7140
-549 -9045
--8823 -3457
-1721 8493
--2000 -4959
-691 5289
--1892 -7569
-5913 -3604
--1011 3182
-5435 -259
-1977 5161
--7668 -432
--637 -9479
--1991 1302
-8020 808
--8954 -1431
-2463 -3736
-268 -7535
-6203 6475
-1558 2660
-2671 5046
--1645 9555
-6560 1138
--5218 7860
-4197 3921
-5704 220
-2421 -3752
-2130 -1981
-2243 -3174
--3339 2825
--6060 -1745
--1766 8628
-334 -4336
-6525 -259
--7361 2458
--1686 -8319
-1709 7536
-650 1478
-6637 7145
--5192 -72
--5086 5684
-1320 -4675
--2408 1934
-4760 -3364
--9024 -2653
--5318 2216
--4562 -4599
-6024 2068
-3557 -8378
--3628 -1152
-3788 7401
-6019 -7464
-8231 -3479
--2648 7727
-4879 -554
-2880 -8065
--125 -6137
--979 -6715
--2584 4449
-7081 3961
--2003 -4594
-7077 -125
--4901 7882
-739 -4721
-5681 -6601
--9262 -2108
-2054 6128
-2256 -6702
-1094 7909
--5627 -7876
-320 -9075
-2701 -182
-7618 5713
-6152 7561
-1111 1588
-6575 -6413
-586 8939
-384 -1885
--7110 -6306
-3534 4475
--5773 805
-1674 -9009
-1061 -805
--520 -9635
--1272 -8109
--1072 -3664
--5333 -7450
-501 -2122
--3295 -6886
-2796 8129
-1345 -6945
--2531 3275
-1490 -6248
-2371 8922
-1548 -9051
-1453 1638
--7211 -6299
--1159 -5889
--3874 5284
-753 -5640
-3763 -6767
-1886 4423
-208 -250
-4930 658
--2558 6207
-2275 -4522
--8918 2387
-5133 2023
--2345 -928
-2963 -343
--3755 7338
-6281 3828
--154 -6255
-4796 -6166
--1915 9760
-9489 1316
--2803 2993
--8701 -2080
-3030 -8375
--2795 4388
-9002 -94
--3234 9213
--4601 -7021
-2694 4320
--476 -9945
--4267 5646
-2462 -2538
--1173 5373
-1174 633
--4700 -769
-1307 -2703
--8028 -1049
-2526 -6456
-7000 -5403
--4235 1093
--5075 -8073
--6466 -6654
-9807 -250
--3526 683
--4109 -4660
--390 -7573
--244 -1971
-5316 -2973
-6134 -5748
-271 6387
-5407 6513
--5564 -7381
-749 6787
-1125 1121
-4956 2947
-4724 4329
-4844 7960
--2650 -7338
--926 692
--1182 4347
-3905 5907
--2918 583
--6532 -5552
--5411 4199
-1836 571
-3087 9366
-931 3098
--6311 3214
-1509 -5253
--4904 5278
-1829 -734
-8190 1495
--7863 -827
--7263 4969
--8394 5086
--3487 -4238
--1546 3035
-3403 2162
--3621 -2925
-2821 -1906
-2337 8765
-7050 1324
--6172 4206
-4934 -7338
-1841 -3012
-5693 -6675
--204 -6210
--1498 -6732
--8089 -1963
-4441 3309
-7159 -1356
--4955 4936
--1560 -9114
-7176 850
-2852 -7025
-7840 -3668
--9076 126
-3250 3972
--5279 6606
-1645 -7359
-75 -5904
--537 -3161
-7807 4932
-2447 -7451
--3101 6231
--8172 956
-3162 4295
--1870 3633
-3487 -4055
--9138 4004
-1292 2963
--5221 7682
--9682 484
-1239 -1006
--6836 536
--5228 -396
--2296 7900
-2463 4055
--581 -951
-5012 -5227
--7135 -2303
-6394 4452
-8618 3961
--6402 2596
-7583 4211
-8862 -4155
--9590 -1723
-3518 122
--4339 4866
-2682 -288
-5033 1159
--1083 4392
-2915 7572
--6904 751
--3623 8630
-229 -7738
--3667 6949
--1967 8344
--2081 8269
--5677 2932
-828 -6314
-2893 -9222
--6437 -2358
--6939 -2290
-1232 8449
-2219 -1712
-3866 -4371
-6775 -7036
-7044 -6930
-418 2718
--8537 -2077
-1648 -5682
--6440 -400
--1923 487
--6435 -7103
-2973 3756
-1830 -7738
-2514 -3792
-7923 5712
-6107 -6247
-8243 -3241
--3312 -5388
--2190 -8195
--9391 1189
-8166 2737
-9395 3117
-5085 775
-7543 -6428
-2432 -2641
-4320 -3861
--2421 -2054
-3698 3552
--1367 8118
-1339 -9654
-1285 9790
--1046 3579
-3872 -335
--5468 -4789
--8617 341
--1284 3357
--3646 -2750
--3118 7625
-6886 -835
--7262 3645
--151 -7700
--2252 9416
--2469 -554
-5536 -4791
--7003 1936
-1429 -9738
--1758 3292
-6754 5289
--6804 -3488
-44 7980
--1605 1891
-3378 3083
--212 2624
--6064 -3460
--5704 939
--8963 -1564
-0 0
-1 0
-2
-2 1
-2 -1
-1 0
-0 0
-2
-2 1
-2 -1
diff --git a/examples/BAPC2012/G.out b/examples/BAPC2012/G.out
deleted file mode 100644
--- a/examples/BAPC2012/G.out
+++ /dev/null
@@ -1,49 +0,0 @@
-8001.941
-1.000
-1.414
-2.828
-1.414
-1.414
-2.828
-1.414
-1.000
-1.000
-1.000
-1.000
-2.000
-2.236
-IMPOSSIBLE
-2.236
-IMPOSSIBLE
-1.000
-IMPOSSIBLE
-IMPOSSIBLE
-IMPOSSIBLE
-28284.271
-40000.000
-1415.628
-1415.628
-1415.628
-20005.304
-IMPOSSIBLE
-IMPOSSIBLE
-IMPOSSIBLE
-IMPOSSIBLE
-IMPOSSIBLE
-IMPOSSIBLE
-24139.577
-9754.896
-IMPOSSIBLE
-IMPOSSIBLE
-IMPOSSIBLE
-IMPOSSIBLE
-IMPOSSIBLE
-IMPOSSIBLE
-IMPOSSIBLE
-9118.184
-IMPOSSIBLE
-IMPOSSIBLE
-IMPOSSIBLE
-IMPOSSIBLE
-1.000
-1.000
diff --git a/examples/BAPC2012/Gunslinger.hs b/examples/BAPC2012/Gunslinger.hs
deleted file mode 100644
--- a/examples/BAPC2012/Gunslinger.hs
+++ /dev/null
@@ -1,147 +0,0 @@
-module BAPC2012.Gunslinger where
-
-import           Algorithms.Geometry.ConvexHull.GrahamScan
-import           Control.Lens
-import qualified Data.CircularSeq as C
-import           Data.Ext
-import           Data.Fixed
-import qualified Data.Foldable as F
-import           Data.Geometry.Point
-import           Data.Geometry.Polygon
-import           Data.Geometry.Polygon.Convex
-import qualified Data.List as L
-import qualified Data.List.NonEmpty as NonEmpty
-import           Data.Maybe
-import           Linear.Affine (distanceA)
-
-{-
-
-Credits: http://2012.bapc.eu/
-
-Problem Statement
-=================
-
-The quickly shooting, maiden saving, gunslinging cowboy Luke finds himself in
-the den of his archenemy: the Dalton gang. He is trying to escape but is in
-constant danger of being shot. Fortunately his excellent marksmanship and quick
-reflexes give him the upper hand in a firefight: the gang members are all too
-scared to move, let alone draw their guns. That is, as long as Luke can see
-them. If he cannot see one of the thugs, then that Dalton will immediately fire
-upon Luke and kill the cowboy without fear of retaliation. Luke’s amazing
-eyesight allows him to cover a field of view of 180 degrees all the time. While
-doing so he can move around freely, even walking backward if necessary.  Luke’s
-goal is to walk to the escape hatch in the den while turning in such a way that
-he will not be shot. He does not want to shoot any of the Daltons because that
-will surely result in a big fire fight. The Daltons all have varying heights,
-but you may assume that all the people and the hatch are of infinitesimal size.
-
-Input
------
-
-On the first line one positive number: the number of test cases, at most
-100. After that per test case:
-
-* one line with two space-separated integers xL and yL: Luke’s starting position.
-* one line with two space-separated integers xE and yE : the position of the escape hatch.
-* one line with an integer n (1 <= n <= 1 000): the number of Dalton gang members.
-* n lines with two space-separated integers xi and yi: the position of the i-th Dalton.
-
-All x and y are in the range −10000 <= x,y <= 10000. Luke, the escape hatch and
-all Daltons all have distinct positions.
-
-Output
------
-
-Per test case:
-
-* one line with the length of the shortest path Luke can take to the escape
-hatch without dying, rounded to three decimal places, or “IMPOSSIBLE” if no
-such path exists.  The test cases are such that an absolute error of at most
-10^−6 in the final answer does not influence the result of the rounding.
-
-
-Solution
-========
-
-Compute the convex hull of Luke, the hatch, and the daltons. If luke and the
-hatch are on the convex hull, Luke can safely reach it. The length of the
-shortest path is the lenght of walking along the convex hull (in one of the two
-directions). If luke or the hatch is not on the Convex Hull, escaping is
-impossible.
-
-Running time: O(n log n)
-
--}
-
-data Answer = Possible Double | Impossible deriving (Eq,Ord)
-
-instance Show Answer where
-  show Impossible   = "IMPOSSIBLE"
-  show (Possible l) = showFixed False  . roundToMili $ l
-    where
-      roundToMili :: Real a => a -> Milli
-      roundToMili = realToFrac
-
-
-data Kind = Luke | Hatch | Dalton deriving (Show,Eq)
-
-
-
-data Input = Input { _luke  :: Point 2 Int
-                   , _hatch :: Point 2 Int
-                   , _daltons :: [Point 2 Int]
-                   } deriving (Show,Eq)
-
--- TODO: THis only works if there are no colinear points. I.e. if Luke or the
--- hatch lie on the hull, but in the interior of some edge, they are not
--- contained in the hull.
-escape                :: Input -> Answer
-escape (Input l h ds) = case convexHull . NonEmpty.fromList $
-                               (l :+ Luke) : (h :+ Hatch) : map (:+ Dalton) ds of
-    -- all positions are distinct, so the hull has at least two elements
-    ConvexPolygon poly -> case C.findRotateTo (\p -> p^.extra == Luke) $
-                                 poly^.outerBoundary of
-      Nothing -> Impossible
-      Just h  -> (distanceToHatch $ C.leftElements h)
-                 `min`
-                 (distanceToHatch $ C.rightElements h)
-
-
-toHatch    :: [p :+ Kind] -> Maybe [p :+ Kind]
-toHatch xs = let (ys,rest) = L.break (\p -> p^.extra == Hatch) xs
-             in case rest of
-               []    -> Nothing
-               (h:_) -> Just $ ys ++ [h]
-
-
-distanceAlong     :: [Point 2 Int :+ k] -> Double
-distanceAlong xs' = sum $ zipWith distanceA xs (tail xs)
-  where
-    xs = map (fmap fromIntegral . (^.core)) xs'
-
-
--- Distance from luke, at the head of the list, to the hatch while walking
--- along the points in the list.
-distanceToHatch :: Foldable f => f (Point 2 Int :+ Kind) -> Answer
-distanceToHatch = maybe Impossible (Possible . distanceAlong) . toHatch . F.toList
-
-
-readPoint   :: String -> Point 2 Int
-readPoint s = let [x,y] = map read . words $ s in point2 x y
-
-
-readInput                 :: [String] -> [Input]
-readInput []              = []
-readInput (ls:hs:ns:rest) = let n            = read ns
-                                (daltons,ys) = L.splitAt n rest
-                            in Input (readPoint ls)
-                                     (readPoint hs)
-                                     (map readPoint daltons)
-                               : readInput ys
-
-
-gunslinger :: String -> String
-gunslinger = unlines . map (show . escape) . readInput . tail . lines
-
-main :: IO ()
-main = interact gunslinger
diff --git a/examples/BAPC2012/sampleG.in b/examples/BAPC2012/sampleG.in
deleted file mode 100644
--- a/examples/BAPC2012/sampleG.in
+++ /dev/null
@@ -1,12 +0,0 @@
-2
-0 0
-2 0
-2
-1 1
-1 -2
-0 0
-2 0
-3
-1 1
-1 -2
--1 0
diff --git a/examples/BAPC2012/sampleG.out b/examples/BAPC2012/sampleG.out
deleted file mode 100644
--- a/examples/BAPC2012/sampleG.out
+++ /dev/null
@@ -1,2 +0,0 @@
-2.828
-IMPOSSIBLE
diff --git a/examples/BAPC2014/Armybase.lhs b/examples/BAPC2014/Armybase.lhs
deleted file mode 100644
--- a/examples/BAPC2014/Armybase.lhs
+++ /dev/null
@@ -1,299 +0,0 @@
----
-title: Army Base with Ternary Search
-author: Frank Staals
-@EXPECTED_RESULTS@: CORRECT
----
-
-Army Base with Ternary Search
-=============================
-
-$O(n^2 \log n)$ solution.
-
-
-
-> {-# LANGUAGE GeneralizedNewtypeDeriving #-}
-> module BAPC2014.Armybase where
-
-
-> import Control.Lens((^.))
-> import Data.Ix
-> import Data.Ext
-> import Data.Geometry.Triangle
-> import Data.Geometry.Point
-> import Data.Geometry.Polygon
-> import Data.Geometry.Polygon.Convex
-> import Algorithms.Geometry.ConvexHull.GrahamScan
-> import qualified Data.Array   as A
-> import qualified Data.Foldable as F
-> import qualified Data.List     as L
-> import qualified Data.List.NonEmpty as NonEmpty
-
-Preliminaries
--------------
-
-
-> type PointSet = [Point 2 Int]
-
-
-A value of type Half should still be halved. I.e. 'Half 2x = x'
-
-> newtype Half = Half Int
->                        deriving (Show,Eq,Ord)
-
-> instance Num Half where
->   (Half a) + (Half b) = Half $ a + b
->   (Half a) - (Half b) = Half $ a - b
->   (Half a) * (Half b) = Half $ a * b
->   abs (Half a) = Half $ abs a
->   signum (Half a) = Half $ 2 * signum a
->   fromInteger a = Half $ 2 * fromInteger a
-
-> showValue :: Half -> String
-> showValue (Half i) = concat [ show $ i `div` 2
->                             , if odd i then ".5" else ""
->                             ]
->   where
->     odd x = x `mod` 2 /= 0
-
-
-> type Area = Half
-
-
-
-> triangArea :: Triangle 2 p Int -> Half
-> triangArea = Half . doubleArea
-
-
-
-
-TODO: Discuss degenerate cases here
-
-
-Let $V(Q)$ denote the vertices of polygon $Q$, and let $\mathcal{CH}(P)$ denote
-the convex hull of the set of points $P$.
-
-
-<div class="lemma">
-There is an maximum area quadrangle $Q^*$, such that $V(Q^*) \subseteq
-V(\mathcal{CH}(P))$.
-</div>
-
-<div class="proof">
-TODO
-</div>
-
-
-Main Algorithm
----------------
-
-> maxBaseArea    :: PointSet -> Area
-> maxBaseArea [] = 0
-> maxBaseArea p  = case convexHull . NonEmpty.fromList $ map ext p of
->     ch@(ConvexPolygon h) -> case F.toList $ h ^. outerBoundary of
->                               [_,_]   -> 0
->                               [a,b,c] -> triangArea $ Triangle a b c
->                               _       -> maxAreaQuadrangle ch
-
-
-<div class="observation">
-Left an Right chains are independent
-</div>
-
-Main idea: Pick two non-adjacent vertices $p$ and $q$ of the convex hull as the
-diagonals of our quadrangle. This splits the problem into two independent
-subproblems, in both of which we have to find the largest triangle that has $p$
-and $q$ as vertices.
-
-> maxAreaQuadrangle :: ConvexPolygon () Int -> Area
-> maxAreaQuadrangle = maximum' . map (uncurry3 maxAreaQuadrangleWith) . allChains
->   where
->     uncurry3 f (a,b,c) = f a b c
->     maximum' = L.foldl1' max -- saves memory :)
-
-the function `allChains` finds all alowed pairs $p$ and $q$, and the chains of
-vertices (along the convex hull) connecting $p$ to $q$ and $q$ to $p$.
-
-> type Chain = Array Int (Point 2 Int)
-
-> allChains                 :: ConvexPolygon () Int
->                           -> [(Point 2 Int, Point 2 Int, (Chain,Chain))]
-> allChains (ConvexPolygon ch) =
->     [ (chA ! i, chA ! j, chains chA i j) | i <- [1..n-2], j <- rest i ]
->   where
->     n   = F.length $ ch^.outerBoundary
->     chA = listArray (1,n) . map (^.core) . F.toList $ ch^.outerBoundary
->     rest i = [i+2.. if i == 1 then n - 1 else n ]
-
-we make sure that we only select non-neighbouring pairs. Hence the i+2 in rest
-i. Then also the last valid start-point p is the one with index n-2.
-
-To make sure `allChains` runs in $O(n^2)$ time we build an Array representing
-our convex hull vertices. All individiual chains are then views of this underlying array:
-
-> chains          :: Array Int a -> Int -> Int -> (Array Int a, Array Int a)
-> chains a pi qi = (ixSubMap (1,qi-pi-1) fu a, ixSubMap (1,r + pi - 1) fv a)
->   where
->     n    = rangeSize . bounds $ a
->     r    = n - qi
->     fu i = pi + i
->     fv i = if i <= r then qi + i
->                      else i - r
-
-We then use `maxAreaQuadrangleWith` to find the largest quadrangle given its
-diagonals $p$ and $q$ (and the chains connecting $p$ and $q$).
-
-> maxAreaQuadrangleWith             :: Point 2 Int -> Point 2 Int -> (Chain,Chain) -> Area
-> maxAreaQuadrangleWith p q (us,vs) = let pqu = findLargestTriang p q (Unimodal us)
->                                         pqv = findLargestTriang q p (Unimodal vs)
->                                     in (pqu `seq` triangArea pqu)
->                                      + (pqv `seq` triangArea pqv)
-
-
-To efficiently find the largest triangle we use that the area is a unimodal
-function along the convex hull. We prove this in the following lemmas.
-
-<div class="lemma">
-Let $p$ and $q$ be points on the convex hull $\mathcal{CH}(P)$, and let
-$\mathcal{C}$ denote the portion of $\partial$\mathcal{CH}(P)$ between $p$ and
-$q$. The area $a(v)$ of the triangle $\Delta pqv$, with $v \in \mathcal{C}$
-depends only on the (Euclidean) distance $d(v)$ between $v$ and the line
-segment $\overline{pq}$. More specifically, we have $a(v) = cd(v)$, for some
-constant $c$.
-</div>
-
-<div class="proof">
-TODO
-</div>
-
-<div class="observation">
-Let $p$ and $q$ be points on the convex hull $\mathcal{CH}(P)$, let
-$\mathcal{C}$ denote the portion of $\partial$\mathcal{CH}(P)$ between $p$ and
-$q$, and let $v(t)$, with $t \in [0,1]$ denote the position along
-$\mathcal{C}$. The function $d(t)$ expressing the (Euclidean) distance between
-$v(t)$ and line segment $\overline{pq}$ is unimodal.
-</div>
-
-<div class="lemma">
-Let $p$ and $q$ be points on the convex hull $\mathcal{CH}(P)$, let
-$\mathcal{C}$ denote the portion of $\partial$\mathcal{CH}(P)$ between $p$ and
-$q$, and let $v(t)$, with $t \in [0,1]$ denote the position along
-$\mathcal{C}$. The function $a(t)$ expressing the area of the triangle $\Delta pqv(t)$ is unimodal.
-</div>
-
-<div class="proof">
-Directly from previous lemma and observation.
-</div>
-
-This means we can find the triangle $\Delta pqv_i$ in $O(\log n)$ time using a
-ternary search.
-
-
-> newtype Unimodal s a = Unimodal { unU :: s a }
->                      deriving (Show,Eq,Ord,Read,Functor)
-
-
-> findLargestTriang        :: Point 2 Int -> Point 2 Int
->                          -> Unimodal (Array Int) (Point 2 Int) -> Triangle 2 () Int
-> findLargestTriang p q us = triang . ternarySearchArray area' $ us
->   where
->     triang v = Triangle (ext p) (ext q) (ext v)
->     area' = triangArea . triang
-
-
-Ternary Search
---------------
-
-> ternarySearchArray            :: (Ix i, Integral i, Ord b)
->                               => (a -> b) -> Unimodal (Array i) a -> a
-> ternarySearchArray f (Unimodal a)
->   | rangeSize (bounds a) == 0 = error "empty array"
->   | otherwise                 = let (l,u) = bounds a
->                                     i     = ternarySearch (\i -> f $ a ! i) (pred l) (succ u)
->                                 in a ! i
-
-Given a function $f$, a lowerbound $\ell$, and a n upperbound $u$ find the
-value $i \in (\ell,u)$ such that $f i$ is maximal.
-
-> ternarySearch          :: (Integral r, Ord a) => (r -> a) -> r -> r -> r
-> ternarySearch f l u
-
->   | u - l < 2  = error "ternarySearch: l and u too close"
->   | u - l == 2 = l + 1
->   | otherwise  = let t = (u - l) `div` 3
->                      n = l + t
->                      m = l + 2*t
->                  in if f n > f m then ternarySearch f l m
->                                  else ternarySearch f n u
-
-
-Input & Output
---------------
-
-> readPointSet :: [String] -> PointSet
-> readPointSet = map readPoint
->   where
->     readPoint s = let [x,y] = map read . words $ s in point2 x y
-
-> readInput           :: [String] -> [PointSet]
-> readInput []        = []
-> readInput (ns:rest) = let n       = read ns
->                           (xs,ys) = L.splitAt n rest
->                       in readPointSet xs : readInput ys
-
-
-> armybase :: String -> String
-> armybase = unlines . map (showValue . maxBaseArea) . readInput . tail . lines
-
-
-> main :: IO ()
-> main = interact armybase
-
-
-> show' (p,q,(a,b)) = (p,q,elems a, elems b)
-
-Array Stuff
------------
-
-> data Array i a = Array { bounds       :: (i,i)
->                        , accessTransf :: i -> i
->                        , arrayData    :: A.Array i a
->                        }
-
-> instance Ix i => Functor (Array i) where
->   fmap f (Array b g a) = Array b g (fmap f a)
-
-> instance (Show i, Show a, A.Ix i) => Show (Array i a) where
->   show a@(Array bs g _) = concat [ "Array "
->                                  , show bs
->                                  , " "
->                                  , show $ assocs a
->                                  ]
-
-
-> (!) :: Ix i => Array i a -> i -> a
-> (Array _ g a) ! i = a A.! (g i)
-
-> elems                   :: Ix i => Array i a -> [a]
-> elems a = [ a ! i | i <- A.range $ bounds a ]
-
-> listArray   :: Ix i => (i,i) -> [a] -> Array i a
-> listArray b = Array b id . A.listArray b
-
-> assocs :: A.Ix i => Array i a -> [(i,a)]
-> assocs (Array _ g a) = (\(k,v) -> (g k, v)) <$> A.assocs a
-
-> ixSubMap :: Ix i => (i,i) -> (i -> i) -> Array i a -> Array i a
-> ixSubMap bs f (Array obs g a) = Array bs (g . f) a
-
-
-
-Testing stuff
--------------
-
--- > testPs :: PointSet
--- > testPs = [Point (0,0), Point (2,2), Point (4,1), Point (5,0), Point (3,-1)]
-
--- > test2 = [Point (0,0), Point (-2,-2), Point (3,-2), Point (0,1), Point (0,3)]
-
-
--- > testPs3 = [Point (-16,0), Point (16,16), Point (16,-16), Point (-16,16), Point (-16,-16)]
diff --git a/examples/BAPC2014/sample.in b/examples/BAPC2014/sample.in
deleted file mode 100644
--- a/examples/BAPC2014/sample.in
+++ /dev/null
@@ -1,25 +0,0 @@
-3
-6
-0 0
-3 7
-10 0
-11 6
-0 10
-10 10
-5
-0 0
--2 -2
-3 -2
-0 1
-0 3
-10
-3 1
-4 1
-5 9
-2 6
-5 3
-5 8
-9 7
-9 3
-2 3
-8 4
diff --git a/examples/BAPC2014/sample.out b/examples/BAPC2014/sample.out
deleted file mode 100644
--- a/examples/BAPC2014/sample.out
+++ /dev/null
@@ -1,3 +0,0 @@
-100
-12.5
-31
diff --git a/examples/BAPC2014/testdata.in b/examples/BAPC2014/testdata.in
deleted file mode 100644
--- a/examples/BAPC2014/testdata.in
+++ /dev/null
@@ -1,66406 +0,0 @@
-78
-1000
--4853 -3443
-1905 -6863
-2021 6184
--5801 -1982
-6622 1440
-6910 -1931
-1827 6277
--5033 4273
--2930 -5333
--5738 3246
--1436 6734
-2959 -6561
-4456 -5600
--6402 570
-6483 1753
--1331 6753
-5696 3053
--5811 3116
-4383 4527
-1418 6446
-5966 2658
--2518 6369
-6235 -3558
-6222 2239
-4517 -5548
--1793 -6077
-6720 1183
--3443 5805
--6304 1750
--5653 3391
-4064 -5907
--5444 3722
-6802 924
-6078 2480
-5654 -4375
--4659 -3682
-4527 4387
-1608 6373
--1400 -6286
-1520 -6920
--5881 -1815
-3207 5481
--5888 2969
--6143 2382
--4527 4841
--2458 -5673
--4967 -3298
--1540 6713
--4638 4725
-1112 -6933
-1299 6488
--2926 -5336
-288 6749
--6181 -1026
-5515 -4541
--1343 -6314
--6124 -1212
--4974 -3289
--5359 3844
-2835 -6618
-5417 -4652
-5449 -4616
--3809 -4584
-5932 -4014
-7003 -1265
-594 6688
-1511 6411
--6295 -570
-6638 1400
-1964 6212
--6344 -318
--907 6817
-1742 6316
--6274 1902
--5507 -2500
-6556 -2977
-6809 899
-1762 6307
-493 -6875
-1758 -6887
--5906 2934
-6397 1931
-5331 3518
--6372 -57
--6254 1995
--6179 -1033
-2191 6098
--4228 -4162
--4218 5150
-6740 -2553
--3 -6783
-888 -6919
--5637 3418
-5743 2988
--3220 -5109
-6683 1283
-323 6743
--6020 2696
--1217 6772
--5311 3912
-6891 576
-5124 3763
--2315 -5766
-3897 4961
-3665 -6176
-7015 -1067
-5630 -4404
-7014 -1092
-4584 4331
--3044 6074
--5299 -2832
--6125 -1209
--5978 -1596
-7019 -516
--1849 -6045
--5862 -1855
-6999 -1309
-2631 5849
-5940 2699
--3428 5816
-2239 6072
-6800 931
--5718 -2138
--1573 6706
-6599 1494
-1377 6461
-6980 -1487
-5387 3449
-6221 -3581
-2531 -6726
-2231 -6800
--930 6814
--4474 4895
-7021 -894
--2010 -5951
--6105 -1268
-4671 -5411
--1840 6643
-159 -6819
-5057 3838
--320 6821
-6831 -2273
-2740 5784
--470 6830
-5778 -4220
-7018 -990
--6119 2451
--73 -6766
-907 6608
--6398 859
--3754 5566
--1910 6624
-998 -6927
-6921 446
--1121 -6418
--3076 -5222
--3231 -5100
--2338 6459
-1916 6235
--5601 -2341
--5457 -2582
--4077 -4317
-4849 4060
-4245 -5772
-5673 -4352
-443 6721
-1314 -6939
--491 6831
-6104 -3766
--6307 1733
--6354 -233
--6327 -416
--5600 3479
--4050 5309
-333 -6851
--209 6812
-2923 -6578
-6696 1248
--1675 -6143
-5259 -4827
-6987 14
-2204 6091
-3909 -6018
-204 6762
--890 -6513
-3488 -6280
--4465 -3908
--6076 2565
-1401 -6934
-1192 -6936
-3551 5231
-6878 -2084
--6103 2495
-6509 -3071
--5052 4250
--1141 -6409
--5777 -2031
-1897 6244
-3547 5234
--780 6832
--5157 4118
--6393 274
--6001 -1542
--6289 1829
-6467 -3152
--2162 6539
-624 6681
-6895 -2004
--2613 6319
--6359 1385
-6965 216
--6342 -333
-6859 -2166
-1461 -6927
--3184 5986
-6965 -1603
-5801 -4190
--6168 -1071
-4375 -5668
-3170 -6455
-5596 -4445
--4352 5019
--6386 1107
--5504 -2505
--3132 -5179
--1570 -6200
--5027 -3220
-5905 2753
--5662 -2236
-5588 3196
-7023 -672
-1911 -6862
--987 -6475
--6208 2178
--3848 5487
-3505 5265
-4014 4862
-6959 -1646
--739 -6569
--267 6817
-6764 -2484
--1009 -6466
-1786 6296
-6891 -2023
-7010 -286
--6140 -1162
-3942 -5995
-38 6785
--3526 -4846
-6169 2329
--5846 3050
--5009 4302
--58 6797
--3689 5619
-2622 -6700
-1952 -6855
--6275 -657
-7017 -449
--6010 -1520
-4128 -5860
-5226 3645
--5310 -2815
--4736 4617
-3303 -6384
-6932 -1812
-3063 5582
--4124 -4269
-2666 -6686
--6213 2160
--6130 2420
--3624 5670
--5222 -2948
-4740 -5347
--6386 127
-61 6782
-1152 6536
-2641 -6694
-2442 -6750
-14 -6787
-653 -6896
--4415 4955
--6043 -1435
--5634 3423
--5991 2758
-2783 -6641
-7022 -858
--1619 6696
--4575 -3782
--5830 -1922
--6402 709
--6099 -1285
--4914 -3366
--5554 3553
-3987 -5963
-6842 774
-397 6730
--5345 -2760
--3987 5366
--6378 1207
--1892 -6020
-3443 -6306
-7000 -125
-5834 2859
--4351 5020
-4236 4663
-183 -6824
--3356 -4996
--2579 -5588
-6641 -2798
--5180 4088
--6381 52
-7007 -229
-6055 2517
-3852 4998
--3321 5893
-6827 832
--5199 4063
-2194 -6808
-7002 -154
--840 6825
-2296 -6785
--3906 -4489
-6794 -2392
-6876 638
--6366 -116
--6390 1042
--692 6837
-740 -6906
-1718 -6893
-5242 -4845
-657 6673
-269 -6840
-3524 5251
-5505 3302
--1295 -6337
-6024 -3883
--1162 6781
-5434 -4633
--5763 3202
-4400 4511
--440 -6666
--119 6804
-4726 -5360
-5864 2815
--6239 -805
-607 6685
-6119 -3743
--3402 5835
--6396 914
--5319 -2801
--5089 -3136
--6110 2476
-6569 -2950
-2098 -6828
-1551 -6916
-3697 5120
--2598 6327
--6221 -876
-1630 6364
--4894 4439
--6373 -46
--3507 5758
--1704 -6127
-4049 -5918
-3390 5349
-5474 3341
--1514 -6229
--5567 -2399
-2208 -6805
--1988 6602
-3071 -6506
-2936 5664
--1957 -5982
-509 6707
-3873 -6043
--6397 888
--3373 5856
-6994 -56
-2444 5958
--3810 5519
--899 6818
--5434 -2619
--6403 641
--4903 -3380
--4164 5202
-2542 -6723
-7019 -961
--2643 -5542
-5183 -4907
-298 -6845
-6188 2297
--6379 23
-6923 -1863
-5648 3118
--4813 4531
--4887 4447
-417 -6864
--5231 4020
--1610 6698
-5036 -5057
--6008 -1525
--6149 -1133
--6062 -1385
--4939 4386
-6940 -1765
-694 6664
--6393 990
--4562 4805
--36 -6775
--5112 4176
-4471 4442
--3903 5440
-5997 2609
--6382 1163
-1237 6509
-3541 -6249
-3870 -6045
-6065 -3824
-6999 -112
-6686 1275
--6017 -1502
-2697 5810
-1844 6269
--2549 6353
-6985 -1444
-6344 -3374
-560 -6884
--5213 -2961
--5116 4171
-352 6738
--3029 -5258
-6896 555
-2041 -6839
--2442 -5684
-6713 1202
-6903 525
--1284 6761
--1738 -6108
-6992 -1377
-6125 2403
-462 6717
--5913 -1747
-7013 -1111
-7024 -741
-6258 -3520
--1821 6648
--2867 6178
-3106 -6488
-5086 3806
--6280 1873
-7014 -376
-5026 3872
--6188 -1001
--2042 6585
-4973 -5121
--5319 3901
--6353 1434
-1717 6327
-1240 6508
-6982 63
--377 6825
-6875 -2097
-3438 5314
-3650 5156
--1206 -6379
--1747 6666
--960 -6486
--3615 -4765
--3779 -4613
--5749 -2082
--1921 6621
-6928 -1835
-2368 -6768
-1135 -6934
-2161 -6815
--286 -6710
-89 -6804
-4106 4781
--3252 5941
-438 6722
-3753 5077
--5776 -2033
--6371 1275
-1256 -6938
-853 -6916
-2609 -6704
-6398 -3279
-3364 -6351
-4816 4094
-3886 -6034
--2076 -5912
-3604 -6212
-364 -6856
-532 6702
--6387 145
-5827 2869
--1276 -6346
--6025 2685
-6213 -3594
-2663 -6687
--619 -6610
--3270 -5068
--2884 -5367
-3891 4966
--1477 6726
--5639 -2276
--6401 756
-2438 -6751
-6511 1694
--5403 3781
-2732 -6663
-830 -6914
--6317 -467
-5508 -4549
-4077 4807
--1033 6800
--6049 2631
--4828 4514
--591 -6619
-6534 1645
-6670 -2733
--3249 5943
--4503 -3865
-3994 -5958
--6399 448
-796 -6911
--6394 965
-6149 -3696
-6919 -1884
-4978 3924
--3694 5615
--6232 2089
--2485 6386
-7021 -585
--3896 5446
--6319 1663
-941 -6923
-1751 6312
--968 6809
-3079 5571
--2754 6243
--5548 -2431
-6274 -3493
-1223 -6937
--3154 -5162
--678 -6590
--3163 -5155
-464 -6871
-5601 -4439
-6916 468
--6210 2171
--6337 -364
--1066 -6442
--3918 5427
-6853 -2191
-6580 -2927
--6238 2064
-3264 5440
--4605 -3747
-2325 6025
--1290 6760
--4653 4709
-4660 -5421
-5686 -4336
--6255 -740
--2319 6468
--4255 -4134
-4647 4267
--3137 6017
--5723 -2129
-7007 -1209
--2020 6592
-6821 -2307
--2214 6516
--5577 -2382
--2193 -5841
-4915 3991
-6763 -2487
--4161 -4231
-3775 5060
-5215 3658
-2461 -6745
--5697 -2175
--4405 -3974
--2071 -5915
-1783 -6883
-1654 -6902
-5980 -3946
-1212 6517
--3762 -4629
--2682 6282
-6751 -2522
--4667 4694
-6570 1562
-5095 -4997
--3337 -5012
-6746 1107
--5284 -2855
-6370 1980
--877 -6518
-3135 5532
-2891 -6593
-5737 -4273
-1061 6564
-1091 -6932
--5117 -3097
-6422 1880
-80 -6802
-5626 3147
-1123 6545
--6067 2588
--2903 -5353
-3476 -6287
-7011 -1144
--4562 -3797
-6781 -2432
--5948 2848
-4904 -5189
--2920 6147
-6951 -1700
--5122 -3090
--6403 639
-6283 2134
--2704 -5498
-4524 -5542
-6834 -2262
--4119 5245
--187 -6737
--6206 -934
-6993 -45
-5788 -4207
-6745 1110
-6664 1333
-6198 2280
--6401 526
-3200 5486
-6724 -2597
--6385 111
--6384 1136
-6948 314
--2001 6598
-2057 -6836
--6270 1921
-5843 2846
--616 -6611
--693 6837
-5524 3278
--1420 6737
--5483 3664
--5065 4234
--5935 2875
--1583 -6193
-1581 6384
--6302 1761
-7005 -1238
-5560 -4488
-4431 -5621
-2881 5698
-5015 3884
--6304 -529
-7015 -400
--5920 -1731
--4436 -3940
--1104 6790
--3835 5498
-6099 2446
-128 6773
-6829 -2280
-5535 3264
-471 -6872
-6761 1060
-6255 -3525
--531 -6638
--6396 347
--412 6827
-2240 -6798
-2513 5918
-1360 6467
--32 6794
-1033 -6929
-6859 707
--4283 5087
-6260 2174
-5148 -4943
--2260 -5800
-2578 5880
--6338 1544
-6646 -2787
--2817 -5416
--3265 5932
--5682 3342
-7012 -329
-3234 -6421
--4594 -3760
-5738 2995
-6789 969
--6042 2647
--136 -6750
--4496 -3873
-6726 1166
-6451 1820
--3572 5710
--5723 3272
--756 -6563
--6392 1009
-4430 4482
--4796 4550
--4766 -3551
--2450 6404
-4876 4032
--1618 -6174
--1223 -6371
-6958 262
--6231 2093
--354 -6691
-6102 -3769
--1467 -6253
--6394 298
-7002 -1277
-6612 -2860
-2359 6006
-257 6754
-6398 1929
-2692 5813
-4539 -5529
--6311 1710
--4975 4343
--6052 2624
--5949 -1664
-1336 -6938
--4693 4665
-6303 -3444
-27 -6790
-5314 -4767
--4446 -3929
--2302 6476
-2940 -6570
-4310 -5721
--4276 -4112
-7020 -550
--5777 3177
-3977 4894
--5481 3667
--5254 3989
--5417 -2646
-2814 5739
--3276 -5063
--5376 -2711
-6957 268
--1370 6746
--3000 -5280
-3784 5053
-6952 -1694
-4299 4605
-541 6700
-4469 -5589
--2170 -5855
--4820 -3484
--5159 -3038
-6502 1713
-6982 -1470
--2586 -5583
--6270 -678
--4884 -3404
--2514 -5634
-5280 3580
-2142 -6819
-6480 -3127
--1097 6791
-1020 6576
--5498 3641
-112 -6809
-6963 231
--4189 5178
--4039 5319
-7024 -743
-6359 -3348
--4980 4337
--6344 1501
-3014 5614
-6731 -2578
-1498 6416
--4394 -3986
-6770 1031
-6344 2027
-2470 5943
-3958 4910
-2296 6041
-6688 -2690
-6686 -2695
-6969 185
--1130 -6414
--2983 6110
-4350 4558
-3325 5396
-6631 1418
--3678 -4707
--1021 -6461
--602 6835
-3587 -6222
--4311 -4075
--3729 -4660
--6361 1368
-5875 -4091
--224 -6727
-6663 -2749
-4785 -5304
--1823 -6060
--6331 1592
--175 6809
-2791 5753
--3850 -4544
--5206 -2971
-808 6635
--6238 -809
--4294 -4093
--1692 6679
--2045 6584
--4195 -4196
-2088 6151
--4621 4743
-150 6770
--6160 2330
--6065 2593
-4315 -5717
--6300 -548
-2414 5975
-224 -6832
--6092 -1304
-6852 -2195
-4214 -5796
-1687 6340
--2743 6249
--2350 -5744
--399 -6678
-6128 2398
--393 6826
--5614 3456
-1528 -6919
--4710 -3620
-4147 4744
--4105 5258
-178 -6823
--3964 -4432
--3593 5694
-1725 -6892
-4972 -5122
--1817 6649
-3758 -6119
--6400 483
-6901 -1975
--6257 1982
-6629 1423
-5274 -4811
--6389 184
--3963 -4433
-5288 -4796
-1642 6359
--6181 2265
--2111 6561
-6860 703
--1165 -6398
-6975 131
-7008 -247
--797 -6548
-2971 5642
-4608 -5468
-2313 -6781
-7023 -811
--571 6834
--3366 5861
--2855 6185
--6403 640
-3375 -6345
-6909 -1936
-1014 -6928
-4839 -5252
-5852 -4122
-5918 -4033
-679 -6899
-6938 365
--6336 -370
-3219 -6429
--3393 -4964
--2119 -5886
-6974 -1536
-2135 6127
--6378 10
--6361 -165
-5940 -4003
-4810 -5280
--5959 2825
-6432 -3218
-3621 5178
--6381 1175
-5595 3187
-1991 -6848
-6925 427
-5920 2730
-6673 -2726
--2966 6120
-7024 -742
-7006 -213
--6348 -287
--5890 -1796
-975 6589
-5357 -4719
--5075 -3155
--6173 2290
-3841 5007
--3485 -4883
-757 6648
-6384 -3304
-6175 -3655
--5859 3025
--6200 2205
--6391 227
-6971 168
--1521 6717
--6282 -627
--6075 -1350
--502 -6647
-6802 -2367
--5592 3492
-1313 -6939
-845 6625
-4023 -5937
--5528 3594
-4193 -5812
--3288 5916
-3698 -6156
-4585 4330
--1675 6683
--6350 -270
--514 6832
-6527 -3036
-3092 5562
--6288 1834
-1469 6427
-583 -6887
-7022 -628
-4745 4167
--4026 -4369
-4201 4695
-5183 3695
--5243 -2917
--3456 -4909
--6364 1342
-5117 3771
-5196 3680
-6541 1629
-6339 2036
--2393 -5716
--2822 6204
-6925 -1852
-5067 3827
--848 -6529
-5710 3034
--2391 6433
-3012 -6535
-6038 2544
-4698 4215
--4357 -4026
--5167 4105
-3805 -6088
-4782 4129
-6318 2073
-5780 2936
--2471 -5664
--2769 -5451
-6697 -2667
--5005 -3249
--715 6836
-4897 4010
-7017 -1016
-157 6769
--2270 6491
-5931 2713
--6398 414
--6330 1598
-1838 -6874
--5297 3931
--6298 1782
--1096 -6429
--232 6814
--3077 6054
-3139 -6471
--1137 6785
--635 6836
--6065 -1377
--5478 -2548
-5733 -4278
-1589 -6911
-5820 -4165
--6400 792
--3580 -4797
-5441 3382
--1587 6703
-4932 3973
--6142 2385
-1000
-1647 4095
--6681 -1072
--3060 3697
--3173 3625
--79 -8770
--1099 4505
--6637 -2621
-4515 -6640
--1440 -8484
--1826 -8326
--4887 -5924
--5705 -4778
--6725 -1799
--4499 2595
-5531 539
--5271 -5420
-3965 2510
--3573 -7254
--4176 2881
--2318 4115
--2327 -8083
-4738 -6409
--6727 -1670
-5421 711
-4367 2086
--5359 -5298
-5921 -4764
-3021 3317
-4070 2407
-5035 -6083
--2433 4056
--6700 -2230
--5970 -4332
--4816 -6008
--971 -8632
--1918 4293
--1064 4509
--6720 -1958
--3429 3452
-4789 1591
-6012 -316
-3362 -7604
--2098 4216
-4305 -6840
-5115 -5986
--3473 -7336
--5622 1332
--6567 -554
-3160 -7746
--6710 -2123
-876 -8741
--1295 -8538
--1312 -8532
--5893 -4467
--4639 -6212
--6561 -534
--3245 3578
-6548 -2561
--2695 -7883
--214 -8762
--5156 -5576
--6183 372
-5434 691
--6013 -4253
--1554 -8440
-6503 -3152
--2051 -8223
-5834 22
--655 -8701
--6673 -1017
-3733 2730
--4229 2836
-6347 -1190
--3028 -7669
-3752 -7312
-4919 -6214
-476 4470
--3816 -7046
--6305 112
-1652 -8559
--6376 -3488
--6604 -2762
--3744 3225
-740 -8754
-334 4496
-6264 -4024
--6623 -769
-6346 -3802
--6146 444
--6416 -142
-4 -8773
-6535 -2162
-4177 2293
--6705 -1290
--6260 210
-219 4515
--6682 -1079
--6628 -791
-5389 760
--6483 -313
-3798 -7275
--6129 -4035
-6514 -3068
-4637 1777
--1191 -8572
-5936 -4735
--530 -8724
--6038 -4207
-4614 1804
--351 4546
--2211 4165
--6678 -2393
--6706 -2170
-5047 -6069
--3346 -7438
--4546 -6317
-3965 -7139
-1701 4071
--2521 -7981
--1218 4488
--2888 3803
-6513 -3076
--4387 2698
-5791 101
-2881 -7928
--1239 -8557
-5715 -5133
-6301 -1044
-4852 -6288
-6521 -2001
--5667 1264
-1076 -8712
-1543 4140
--5081 -5675
--6314 92
-3744 2720
-793 -8749
--4316 -6567
--3237 -7521
-6110 -4378
--2304 -8095
-1311 -8657
--6653 -909
-5649 -5241
--6692 -1155
--6649 -2562
-1819 4017
-3997 -7112
--3001 3734
--1186 4493
--5665 -4841
-845 -8744
-5127 1141
--6192 -3913
-1765 4042
--3977 3044
--3647 -7192
-4250 -6891
-5892 -4820
--6550 -2960
-1055 -8716
--6727 -1669
--698 -8693
-6547 -2590
--1421 4443
--4914 -5891
--2965 -7711
--6597 -664
-2447 3692
--6635 -823
--6716 -1434
-1110 -8705
--5828 1010
--3936 3077
-293 4503
-6038 -370
-6537 -2195
-1776 4037
--345 -8751
-5878 -59
--4799 -6028
-6541 -2273
--1758 4352
-2342 3750
--5610 1349
-412 -8774
-6210 -4153
-6381 -3700
-6412 -3590
--690 4538
--1949 4280
-4676 1731
--3200 -7548
-3488 2944
--1649 4384
--6717 -1452
--4968 -5822
--4742 -6094
--3674 -7169
--6095 -4100
--6289 -3705
--2748 3884
-1770 -8511
--3548 3368
-1681 4080
-3183 -7730
-1437 -8624
--2754 -7846
-112 4525
--6703 -2204
--1682 -8388
-6510 -1913
-166 4520
-4393 2057
--4901 -5907
--6697 -1198
--5894 902
--6711 -1365
--809 -8670
--5613 -4922
-4387 -6763
--1607 -8419
--1487 -8466
-1579 -8583
--6621 -2692
-5426 -5587
-2440 3696
-3167 3207
-5353 -5686
-2709 -8034
--6604 -691
--6721 -1527
--4144 2908
-2453 -8180
-5275 -5786
--857 -8659
-6494 -3214
--2764 3875
--5225 -5483
--1097 -8599
-4568 -6586
--6587 -2826
-6522 -2990
-6442 -1539
-5218 -5858
-1535 -8596
--919 4523
-4250 2214
-6505 -3137
--3605 3327
--3339 3515
-6437 -3491
-6430 -1488
--5955 -4359
-630 4439
--1236 -8558
-5656 334
-2699 3536
-5839 -4919
-1995 -8413
--906 4524
--4484 2609
--1944 -8273
--6714 -2069
--6336 43
--6311 -3653
-4894 -6242
--1880 -8302
--1360 4458
-2418 -8199
-6183 -4215
--743 4535
-3307 -7643
-6405 -3616
-6489 -3245
-5173 1077
-2908 3397
--5974 766
--398 -8746
-843 4388
--6366 -3515
-5557 -5388
-5526 547
-5389 -5638
--6443 -207
-1470 -8615
--1166 4496
-6518 -3033
-5916 -131
-3039 3304
--1714 4365
-1739 -8524
-5046 1252
--5976 -4321
--6234 -3825
--479 4546
-1308 4235
-5189 1054
-4600 -6553
--4099 -6784
--6698 -2247
--6713 -2083
-5528 -5434
-64 4529
--528 4545
-6159 -644
-4700 -6449
--5128 -5613
--756 -8682
--2597 3968
-1631 4102
--2560 3988
-4628 -6524
--6693 -1163
-4118 -7009
--5490 -5107
--5916 865
-2137 -8347
-4708 1693
--6106 -4079
-3920 2553
-5683 -5186
--4356 -6524
-3704 2756
--6726 -1736
--6657 -2521
--1616 4393
--4418 -6457
--5576 1396
-2783 -7989
-5362 801
-3116 3247
--3510 3395
-3891 -7200
-6431 -1492
--1642 4386
-727 -8755
--5023 -5751
--3362 3499
-5967 -4675
--6652 -904
-6237 -4089
--3824 -7039
--3579 -7249
--4882 -5930
-2643 -8073
--1773 -8349
-564 -8766
--2814 -7808
-2916 -7906
--4644 2458
-4141 -6989
-5927 -152
--4793 -6035
--2687 -7888
--6296 -3689
-1820 -8490
--6499 -3128
--6340 34
-6361 -3759
--6507 -3103
-6547 -2495
--4297 2778
--810 4531
--5346 1691
--5098 1983
--2594 -7941
--3917 3092
--305 4545
--1999 4259
-5606 -5310
-3147 -7755
--2057 4234
--4566 2532
--6057 -4172
--5970 773
-1375 4209
--5605 1356
-3066 -7809
-5241 -5829
-5983 -4644
--5751 -4704
-6502 -3159
--5031 2057
--3802 3181
-3241 3148
-1181 -8689
-1370 -8642
-1996 3930
-2569 -8115
-4376 2076
-4977 1345
--6689 -2318
--5397 -5243
--6680 -2380
--5959 -4352
--81 4538
-4137 2336
--5042 2045
-3942 -7158
--4320 2758
-3495 2938
-5791 -5004
-3865 -7221
-6275 -964
-3058 3290
--1234 4485
--6523 -3051
-4320 -6826
-5564 486
-5659 329
-928 -8735
-6544 -2341
-2516 3652
--5294 1755
-6382 -1310
-2786 3480
-979 4351
--5013 -5764
--4249 -6638
-1116 4307
-5776 128
-4489 1948
-6532 -2866
-6499 -1838
-6548 -2562
-3738 -7323
-3678 2779
--6018 688
-6161 -4265
-5135 1130
-6089 -480
--6727 -1671
--5707 1203
--6525 -429
-81 -8775
-6388 -3677
--1810 -8333
-1423 4190
-3337 3070
-1851 4002
-3394 3023
--3327 -7453
-2812 3463
--3516 -7301
--4918 -5886
-4782 1600
--6240 -3812
--590 -8713
--1955 -8268
-6382 -3697
-1164 -8693
-4720 -6428
-4465 -6689
--4899 2197
-6485 -3266
-1060 4326
-1984 -8418
-920 -8736
--6217 -3861
-6216 -795
-6263 -929
--4429 2660
--100 4539
-577 4451
--6664 -965
-6455 -1596
-1007 -8724
--3748 3222
-6501 -1851
--3634 -7203
--4397 2689
-6539 -2232
-287 4504
-2508 3657
--5214 1852
-6531 -2108
-2194 -8318
--2921 3783
-4735 1660
--2280 4133
-1878 -8465
-767 4407
-4857 1503
--6003 715
-1722 -8531
-5171 -5917
--2163 4187
-4516 -6639
--2991 -7694
--3993 -6885
-6004 -4603
-6081 -4441
--751 -8683
--5221 1844
--6710 -1352
-6408 -1405
-3250 -7683
-2575 3615
-1242 -8674
--4807 2293
--3210 3601
--6634 -2635
-6025 -4560
--2240 -8128
--1862 4316
--5736 1157
--6318 -3636
-2742 -8014
--5155 1919
--5443 -5176
--3883 -6987
--6115 504
-5962 -219
--217 4543
-2814 -7970
-5780 121
-2277 -8275
--6031 664
-6542 -2704
--6614 -2722
--513 -8727
-3761 2704
-6524 -2027
--2174 4182
--3823 3165
-4239 2226
--5622 -4908
-5887 -76
--1055 4510
--5532 1455
-511 -8769
--2459 -8014
-4069 2408
-5343 829
--6469 -3221
--2275 -8110
--2993 3739
--291 -8756
-5443 677
--6361 -3528
-918 4368
-4218 -6920
-1683 -8547
-6458 -1610
-6470 -1669
--4855 -5962
-2635 3577
--6526 -3041
--6391 -3447
--57 -8771
-35 4531
--634 4541
-3683 -7366
-3031 -7832
-5859 -24
-5322 -5726
--3739 -7113
--3415 -7383
--412 4547
-6489 -1777
--4248 -6639
--1107 4504
--6327 -3614
--4081 2960
-907 4371
-5329 -5717
-2415 3710
-6546 -2432
--2822 3842
--1024 4513
-6548 -2560
-1617 -8571
-2927 -7899
-2650 -8069
-3560 2882
--6668 -2454
-4968 -6159
--6066 -4155
-6328 -1128
-411 4482
--5350 1686
-6534 -2148
--2030 -8233
-2139 -8346
-5852 -4895
-3369 -7599
-6322 -3869
--6299 -3682
-4844 1520
-5397 -5627
--3218 -7535
--3292 3547
-2528 -8138
-5833 -4930
-2714 -8031
--6338 -3587
-3148 3222
-5488 -5495
-708 4421
-994 -8726
--6720 -1508
-6538 -2779
-6334 -1147
--472 -8734
--3670 3280
--2316 4116
-4902 1444
-6527 -2061
--5929 843
-678 4428
-6518 -1976
--5551 1430
-1428 4188
--2497 4022
-1503 4157
-5624 387
--1158 -8582
-5264 945
--1490 4426
--6565 -547
-1477 4168
-4304 2155
--6609 -2743
--4779 2322
--2406 4070
--1796 4340
--6442 -3302
--6204 329
--5454 1555
-6456 -3408
--6724 -1856
--5508 1486
--6718 -1999
-6425 -1469
--6012 699
-2969 3354
--6454 -3267
-6148 -617
--2962 3758
-2215 3817
-3116 -7776
-455 -8772
-3855 2615
-3491 -7511
--6537 -3004
-6061 -419
--4302 -6582
-5311 876
--280 -8757
--3106 3668
--6717 -2019
--5397 1627
--1793 4341
-6078 -456
-5167 -5922
-2096 3879
-6013 -318
-3331 -7626
--2917 -7742
--6480 -3187
-6478 -1710
--3667 -7175
-4496 1940
-6386 -3684
-3645 2808
-5042 -6075
--5710 -4770
--1374 -8509
--5743 -4717
--5314 -5361
-4208 -6929
--1086 -8602
-6545 -2375
-3565 -7456
--6561 -2921
--3295 3545
--6355 0
-3426 -7558
-6541 -2723
-6358 -1227
--5838 -4560
-6117 -542
--4429 -6445
--3148 -7585
--1115 -8594
--260 4544
--4034 -6846
-3113 -7778
-6418 -3567
-5750 -5074
--6362 -16
-172 -8777
--6668 -986
-349 -8776
--6688 -2325
-1614 -8572
-5595 435
-5797 90
-1133 4301
--972 4518
--6568 -2896
-6135 -4323
--6726 -1641
-4030 -7084
--5878 -4493
--4555 -6307
-2462 -8175
--413 4547
--4580 -6279
-3310 3092
-101 4526
--3931 3081
-3294 3105
--5568 -4991
--6723 -1890
-5431 -5580
-3723 2739
--2106 -8196
-3695 2764
--1901 4300
--3087 -7628
--946 -8638
--6257 -3775
--153 -8766
--1022 -8619
-6435 -1509
-6537 -2797
-4679 -6471
-6389 -1335
-4000 2476
--3857 -7010
--4044 2990
--4747 2355
-5150 -5943
-4620 1797
-4336 2120
--5624 1329
-2994 -7856
-6182 -703
--243 -8760
--1602 -8421
-1039 -8719
-1872 3992
-6120 -549
--3912 -6961
--879 4526
--4668 -6179
-5977 -248
-3400 3018
--5916 -4427
--2394 -8048
--6156 -3983
-5372 -5661
--3862 3135
-6474 -3322
-4739 1655
-3522 -7488
--6412 -3389
-3455 2972
--3486 3412
-4401 2048
-6449 -3440
-6444 -3462
--1173 4495
--6591 -641
--4572 -6288
--4917 2178
--4290 2784
--2707 3907
--6540 -472
--6162 413
--5073 2011
-6304 -3918
--6716 -2036
--4961 -5831
--4879 2218
--6684 -1094
-6197 -743
--5539 -5035
--6235 264
--1983 -8255
--4694 2409
--6182 374
--5368 -5285
--4970 2122
--5862 955
--2641 3944
-1057 4327
--1312 4469
--3207 -7543
-3468 2961
--2626 -7923
--5329 1712
-519 4462
-1465 4173
-987 -8727
--2574 -7952
--6431 -3334
-2227 -8301
-4050 -7067
-6538 -2212
-6187 -716
--2829 3838
-4791 -6353
-5737 196
--4695 2408
-5218 1012
-2849 3438
-2101 -8364
--6724 -1586
-2032 -8396
-4976 -6150
--5352 -5308
--6513 -3084
--1549 4411
-1463 -8617
--5306 -5372
-5540 -5415
-3623 -7412
-5714 236
--4515 -6351
-3674 -7373
--2175 -8161
-6545 -2645
-300 -8777
-3644 -7396
-3598 2849
-5579 -5353
--3902 -6970
--2456 4044
--6389 -78
--6458 -245
--4483 -6386
--5245 1815
--5719 1184
-126 -8776
--4121 2927
-6425 -3540
-6473 -3327
--5226 1838
--5420 1598
-5180 1067
-2585 -8106
-885 -8740
--6697 -2255
-2125 3864
--98 -8769
--5501 1495
-5445 -5560
-3569 -7453
-1927 3965
--1255 4481
-6290 -1010
--3701 3257
-5066 -6046
--3923 -6951
-1919 -8447
-6003 -4605
-6055 -406
-1012 4341
--6616 -740
-6320 -1103
--6071 589
--2803 -7815
-4439 -6714
-6157 -4274
-4563 1863
-631 -8762
-1261 4253
-5092 1189
-1804 4024
--6289 147
--6191 -3915
--6646 -875
--5036 -5734
-936 4363
-6519 -1984
-4834 1533
--5600 -4942
-6139 -595
--5774 -4666
--3874 -6995
--1831 4328
--5835 -4565
-3902 -7191
-2148 3852
--591 4543
--6395 -3436
--2619 -7927
-5572 473
-2254 -8287
--6046 636
--122 4540
--6100 533
-2381 -8219
-5027 1278
--1860 -8311
-4460 1981
--5541 -5032
-6467 -3356
--6141 -4012
--4709 -6132
--1343 4462
-233 -8778
-6212 -784
--3489 -7323
-4703 1699
--1644 -8404
-2061 3897
--1998 -8248
-5699 262
--1656 -8399
-4949 1382
--466 -8735
-6526 -2941
--5785 1079
--3295 -7478
--6268 -3751
-4863 -6276
--6560 -531
-6252 -897
--5147 1928
-351 4493
-2395 3721
-6233 -842
--2373 4087
-6175 -685
-1594 4118
-234 -8778
-6371 -1271
-2624 3584
--3541 3373
-4111 -7015
-3814 2654
--3777 -7080
-2318 -8253
-6344 -1180
--2878 -7767
--3940 -6935
--2632 3949
--4675 -6171
--4179 -6707
-4722 1676
--5206 -5509
-5486 610
--1289 4474
--5758 1122
--1722 -8371
--6501 -362
-6110 -526
-572 4452
--3326 3524
-2738 3511
-5360 804
-2280 3783
-6531 -2879
-5443 -5563
--3420 -7379
-3236 3152
--5803 -4618
-3757 -7308
--4858 2240
-5795 -4997
-6132 -578
-4123 2351
--5522 -5060
-1195 4278
--6584 -615
--6610 -2739
--3853 3142
--4618 2483
-792 4401
--3095 3675
-6279 -3986
-38 -8774
-5867 -4867
-6176 -4231
--2893 3800
-2822 -7965
-700 -8757
-3028 3312
-5824 -4946
--26 4535
--4144 -6741
--6354 -3546
--183 4542
-3637 2815
-6056 -4495
--4070 2969
-5950 -196
--4209 2853
-6126 -4343
-5737 -5096
--6701 -1241
--887 -8652
-6509 -1906
--5568 1407
-4530 1901
-1133 -8700
-1000
-7839 1831
--5326 -1240
--5369 -12
-4056 5978
-2148 -6959
-4571 -5761
-716 6592
--3305 3935
-2090 -6975
--2271 4963
-7840 -1642
-800 6614
-6026 -4398
-5397 -5042
--4497 2390
-5544 4919
-2769 6544
-1707 6709
-5943 -4487
--5384 -189
-3624 -6366
-2282 -6920
--2162 -5779
--3868 3280
-1989 6694
-1165 -7098
-6886 3523
-2727 6557
--5285 456
-1892 -7024
-1924 -7017
--5106 1108
--406 6191
--2347 4895
-7522 2501
-6777 3658
--1676 5451
--1429 5619
--5212 -1748
-162 6419
--236 -6842
--1103 5824
--2208 5019
--1789 -6045
-4184 5905
--4681 -2985
-8139 720
--1393 -6292
-7767 -1821
--5253 596
--46 -6909
--2390 4856
-8074 -852
-22 -6931
-8044 -983
-5294 -5139
-7661 2222
-2621 6587
-192 6430
-7639 2267
-8023 -1072
-6977 -3249
-8185 196
--2763 4503
-6137 4366
-8107 910
-8027 1276
--902 -6555
--277 6247
-8147 664
-7347 -2676
-1231 6689
-7482 2579
-4200 -6019
-7313 -2735
-7985 1417
-643 6572
--3476 3742
--5351 -1087
-7043 3317
--1610 5498
-4773 5524
-7073 3276
-415 -7029
--5197 813
-5827 4668
--522 6139
--3855 3296
-1619 -7069
--4438 -3418
--1378 5652
-1574 6710
--4276 2731
--3735 3440
-1009 6658
--4901 -2545
--2233 -5726
--2642 -5399
--2512 -5505
--5194 -1804
--539 6131
-5109 -5308
--2955 -5130
-7582 2383
-8106 -696
--4855 1707
--4847 1724
-6421 4067
--2503 4752
--1600 -6167
--2318 4921
-5034 -5375
--5080 -2134
-8092 994
--2097 5116
--1579 -6180
-1991 -7001
--5232 685
--2395 -5599
-6250 4250
--3656 3533
-2747 -6762
--3780 -4287
-7961 -1294
-5354 5077
--3058 -5034
-5049 5320
--4370 -3528
-3223 6380
-5247 5163
-5751 -4688
-5303 5118
-5606 -4837
--2753 -5306
-100 6396
-6447 -3920
--263 -6832
-5781 4711
--5282 -1476
-7540 -2313
--4036 3067
--4672 -3002
--5238 660
--3953 3173
-6400 -3975
-239 6447
--5283 465
--4607 2198
-7268 2964
-2227 6667
--2182 5042
-6622 -3712
-5309 -5125
-2294 6656
--791 6002
-6715 3732
--1898 -5970
-6313 -4076
-2951 6483
--971 -6521
--329 6225
--3924 -4119
-256 -6996
--2936 -5147
-7541 -2311
-8172 -253
-6875 3537
-8016 1317
--4372 2588
--1268 5722
-4779 -5594
-4791 5511
-4293 5840
-6864 -3404
-2501 6617
-3120 -6612
-3244 -6557
-1217 -7097
--5225 -1704
--5368 -4
--4118 2956
--5315 309
-3880 6073
-951 6648
-4288 5843
--5348 -1107
--1721 5418
-1491 -7084
-7291 -2772
-2376 6642
-7288 -2777
--5386 -232
-5239 -5190
--2586 4674
-8159 -383
--3248 3997
-6655 -3672
-7324 -2716
-8177 347
--5395 -559
--5386 -734
-8083 -810
-7549 2448
--2112 5103
--2104 -5822
-7364 -2646
--1882 5293
-6383 4108
--3609 3588
-2586 6596
--1265 -6365
-8159 564
-7837 1836
-3264 6363
-7971 1460
-3330 -6518
--4772 1879
--1908 5272
-5892 -4541
--4792 -2768
--2579 -5451
--5288 442
-4742 5546
--5148 979
--1776 5377
--4622 -3095
--4477 -3351
-1382 6703
--605 6099
--4294 -3646
-6107 -4310
--4041 -3978
--4793 1836
-8186 174
--4750 1924
--4993 1393
-4849 -5536
-7876 -1551
--3429 3796
--3121 4133
-7404 -2574
--5383 -777
-7755 2024
--4691 -2966
--1561 -6191
--3019 4240
--1929 5255
-4059 -6109
-3553 6236
--973 -6520
--2857 4407
-4903 -5490
-8182 -38
--3459 -4637
--5275 -1508
-4512 -5805
-8096 -747
--5157 -1917
-4286 -5963
-4580 -5754
-4391 5780
-5438 -5003
--1035 5865
-8165 -333
-2599 -6817
-308 -7008
-1172 6682
--5219 -1725
--5383 -169
--3630 -4454
-499 6530
-2436 -6872
--2607 -5428
-8167 -316
--5373 -898
-5986 -4441
-5398 5041
-2629 -6806
-6167 -4243
-8186 173
--3986 -4045
-5809 4685
-1421 6705
-7897 -1495
-2417 6634
--2672 4592
-8023 1291
-7890 -1514
-5554 -4890
--1502 -6227
-7681 -2017
-8048 1196
-3912 6056
--3662 -4419
-5961 4539
-4973 -5429
-1050 -7095
-7190 3095
-3352 6326
-300 6467
--5350 -1094
-8150 642
--79 6327
-5919 4580
-7484 -2423
-576 6553
--3751 -4320
--4002 3111
-4220 -6006
-8130 -570
-4647 5612
-8164 511
-444 -7034
--2337 4904
--3972 -4062
--2877 -5199
-7509 -2374
--5249 -1614
-6744 -3560
--5379 -103
-5079 5297
--5170 907
--4560 2282
-7111 -3053
-8013 1328
--5046 -2223
-7328 2860
--4921 1561
-3087 -6626
--4282 -3663
--26 6348
-355 6485
-8156 -405
-7195 -2926
--1629 -6149
--3496 -4598
-3642 6193
-2928 -6691
--4963 1465
-7210 -2903
--1004 5883
--2893 4370
-8169 -297
--3728 -4346
-6702 -3613
--3347 -4752
-3494 6264
-5553 -4891
-1945 -7012
-946 6647
-4720 -5642
-2788 6538
-7087 3256
--1982 -5911
-5849 4647
--3376 3856
-64 -6944
--146 -6875
-8171 -269
--5271 518
-8131 -564
-8170 -284
--2229 -5729
-4493 -5819
-7351 -2669
-2990 -6666
--3592 -4495
-1118 6675
-8064 1130
--1149 -6428
--4970 -2398
-404 6501
--4707 -2935
-3762 6134
-2101 -6972
-7163 -2975
--5394 -583
-4612 -5729
--1320 5689
-2837 6522
-7020 -3187
--3831 3325
-2760 -6757
--5180 -1847
-6526 -3827
--3703 -4374
--1216 -6392
-1741 6708
-7692 2158
-5181 -5243
--2243 4988
--5129 1040
-2726 -6770
-7149 3160
--3235 4011
--3799 -4265
--3316 3923
-1680 -7061
-2071 6687
-8168 468
-1111 6674
-4567 -5764
--4073 3017
-7430 2677
-1350 -7093
--5393 -420
-3145 -6601
-7638 -2111
--5337 -1176
-4474 5727
-3765 -6287
--2606 4655
-65 6383
-846 6625
-3525 -6419
-4018 -6135
--4583 -3165
-2358 -6897
--5000 1376
--4419 2516
--4503 -3306
-7146 -3001
--3855 -4200
-7939 -1366
--2062 -5853
-7754 -1852
--4404 2539
--3018 -5072
-7337 2844
--2815 4450
-975 -7092
-1070 6668
-2075 -6979
--5222 -1715
-2131 6680
-4401 -5885
-4888 -5503
-564 -7054
--4181 2869
-7920 -1427
-8117 853
--5305 360
-802 -7081
-7441 -2506
-3827 6101
--5338 -1170
-4895 5435
--1495 5576
-3054 6445
--4448 -3401
-7712 -1948
--3215 -4882
--5387 -718
--3346 -4753
--5257 -1583
-4007 6005
-7814 1893
--889 5948
-8007 -1132
-6499 -3859
-6590 3878
-7973 -1253
--5376 -71
-7954 -1317
-3313 -6526
-1259 -7096
-5831 -4605
-2535 6609
--4168 2887
--4822 -2707
--667 -6667
--5102 1119
-7662 -2059
-6909 -3343
--453 6170
-6287 4211
--2707 -5345
--5105 -2065
-1021 -7094
-6583 -3759
--4838 1743
--4500 2385
--4930 -2484
-7226 3036
-6646 -3683
-7761 2011
-5062 -5350
--4399 -3482
--4546 -3231
-3483 6269
--5076 1187
--2258 -5707
-6954 3435
--5390 -323
--5216 745
-5928 -4503
--5391 -648
-5643 4834
--5004 -2323
--3864 3285
--568 -6710
-4226 5880
-4352 5804
-3458 -6454
--2703 4562
--4533 2329
--607 6098
--4472 2431
-446 6514
--4126 -3870
-3012 -6657
-1949 6697
-7374 2778
--1543 5544
-5494 -4949
--4277 -3670
-7784 -1780
-3957 -6173
-3680 -6335
--3128 -4967
-2347 6647
--5266 540
--1975 -5916
-6247 -4152
-2908 6498
--5378 -90
-2531 6610
--160 -6870
-5498 4958
-260 -6997
-1673 -7062
--5377 -80
-7068 3283
-4602 5643
-741 -7076
-8184 33
-8057 -927
--4870 -2609
--734 6032
-7925 1596
-4802 -5575
--473 -6750
--5395 -561
-8128 789
--117 -6885
--5048 -2218
-5668 4812
-7646 -2094
-7498 2548
--3761 3409
-660 -7067
--562 6120
-7867 -1574
--4718 1987
--1036 -6488
-205 -6983
-6972 -3256
-4121 5942
-4580 5658
-6396 4094
-105 -6956
-3795 -6270
--2762 4504
--5134 -1983
-8062 -905
-7463 2615
-4853 5466
-44 6375
-5024 5339
--5323 268
-1915 -7019
-87 -6951
--804 5995
-6849 3570
--432 -6767
--561 -6713
--3522 3689
--4939 -2465
-5620 4854
-6069 4433
-3897 6064
-2215 -6940
--4163 -3822
--4009 3102
-8182 261
--2829 -5241
--974 5900
-7067 -3118
--4976 1434
-2345 -6901
--4537 -3247
--5350 116
-4855 -5531
--2064 5144
-5138 -5282
--4573 2259
-8177 -155
-1441 6706
--1106 -6451
-3068 -6634
-2170 6675
-8151 -439
-8073 1089
-7730 2078
-3162 6404
--3335 3902
--3907 -4139
-3582 -6389
--5028 1307
--4899 1610
-6571 3900
--5269 -1534
-2840 6521
--5355 85
-5727 4760
-6220 -4183
--3036 -5055
-2937 6488
-5648 -4794
--3603 3595
--4426 2505
--2456 -5550
--1951 -5933
-8175 376
-6138 4365
-7263 -2818
-8175 -198
--2448 4803
--137 6304
-7791 -1763
--4871 1672
-3764 6133
-7245 -2847
--5392 -384
--2518 4738
-7919 1613
-5746 4743
-6006 4495
--1780 5374
-7239 3014
-3894 -6211
-8183 -3
--1811 -6030
--4791 -2770
--3137 4116
--5356 -1051
--4693 2036
-8076 -843
-690 6585
-8079 -829
--4355 2614
--5055 -2200
-8015 -1103
-1323 6699
-5132 5255
-374 -7021
-6959 -3274
-6096 -4322
--5384 -763
-2704 6564
-4467 -5838
-2387 -6888
-1626 6711
--5232 -1678
-1300 6697
-7413 2708
--5380 -118
--5292 423
-2123 6681
-1902 6700
-7115 3213
-2981 6472
-7584 -2223
--4435 -3423
-7721 2097
--5273 -1517
--3404 -4694
--4320 2666
--4964 -2411
--5390 -668
-8114 -655
--5023 -2280
-8142 700
-5794 4699
--2563 -5464
-2062 6688
--3708 3472
-6126 -4289
-7563 -2266
-7893 -1506
--5236 -1663
-1671 6710
-6338 -4047
-4334 -5931
--5085 1164
--2990 -5098
-1326 -7094
-2292 -6917
-5358 -5079
-4456 -5846
--1683 -6114
-7274 -2800
-7731 -1905
-7782 1965
-3319 6340
--3101 4154
--762 -6623
-1782 -7045
--1409 5632
-7871 1747
--4758 -2835
-4999 -5406
--3040 4218
--1786 -6047
--1720 -6090
--3170 -4926
--2567 4692
--1702 5432
-6195 4307
--605 -6694
-1532 6709
-842 -7084
-7472 2598
-3396 -6486
-8087 1020
-2050 6689
-5463 -4979
--667 6067
-1084 -7096
--4404 -3474
-7988 -1200
-2483 6621
--692 -6656
--851 -6580
-7795 1936
--5367 -960
--5378 -843
-1465 6707
--774 6011
--5049 1255
--4650 2119
--5128 -2000
--5360 52
-8186 172
-1625 6711
--1521 5559
--5204 -1773
--4826 1768
--1166 5786
--5394 -489
-3398 -6485
--5099 1127
-1560 -7076
-8146 -472
-3353 -6507
-4111 -6076
-1796 6706
-1120 -7097
-1816 6705
--3195 4054
--5182 866
-4370 5793
--2288 -5684
-7819 -1694
-6453 4032
-8169 456
-6698 3752
-8003 1361
--2341 -5642
--1121 -6443
--4186 2862
--4940 1518
--4639 -3064
--4991 -2352
-3134 6415
-1869 6702
-170 -6974
-3693 6168
--1789 5367
-5613 4860
--5224 716
-668 -7068
--1941 -5940
-3565 -6398
-6552 -3796
--3551 -4539
-290 -7004
-1147 6679
-3 -6925
-1468 -7086
-3742 -6300
-31 6370
--2960 4301
--703 -6651
--1330 -6329
--818 -6596
--4556 2289
-6758 3681
-922 -7089
-6763 3675
-8160 -375
-7617 -2155
-1003 6657
-1788 -7044
-1840 -7035
-8181 281
-2691 -6783
-7995 1386
-433 6510
-7040 3321
-7583 2381
--3967 -4068
--5374 -54
-6778 -3517
-8104 927
--1227 5748
--5359 -1029
--2822 -5247
-995 -7093
--3003 -5086
--4095 -3910
--1856 -5999
--1435 -6267
--221 6270
-5684 -4757
-7896 1678
--4890 1630
--190 -6859
-8129 783
-497 -7043
--371 -6791
-6991 3386
-729 -7075
-7085 3259
--4324 -3600
-7161 3141
-685 -7070
--4660 2100
-4420 5762
--833 5979
-5912 -4520
-8127 -586
--4252 -3704
--5395 -560
--1089 -6460
-5370 5064
-509 6533
--3547 3660
-8066 1121
-6342 4152
-5186 5212
--3278 -4820
-4699 -5659
-2106 6683
--2993 4267
--5316 -1297
-6800 -3489
--1497 -6230
-1721 -7055
-6267 -4129
-7858 1782
-8181 -64
-6039 -4384
-867 6630
-1409 -7090
-6519 3959
--4229 2800
-6793 -3498
-2686 6569
-4577 5660
-5810 -4627
-4953 5392
--2647 4616
--4058 -3957
--2852 -5221
-1166 -7098
--5340 177
-2014 -6995
-5020 5342
-7195 3087
-4732 5553
--528 -6727
-2491 -6854
-7398 -2585
-5433 5012
-6394 -3982
-7948 1530
-3197 -6578
-7294 2919
-4312 -5946
-889 -7087
--5339 183
-8141 -503
--1988 5207
-8178 331
-876 6632
-4309 -5948
-6300 -4091
-4689 5583
-6827 -3454
-3027 6455
--2000 -5898
--2011 5188
-6659 -3667
--5391 -349
--5377 -855
-7613 2320
-8180 -87
-3826 -6252
--5313 -1314
--4200 -3773
--5368 -951
--4358 -3547
--1518 5561
-3940 6041
--5163 930
-1370 -7092
-7217 -2892
-2870 -6714
--330 -6807
--3605 -4481
--4249 -3708
-303 -7007
--4522 2348
-4673 -5680
-7846 1813
--3152 4100
-8168 -307
--3911 3226
--343 -6802
--4749 1926
-3595 -6382
-5377 -5061
--1665 5459
--3792 3372
-6832 3591
-701 6588
-7451 -2487
-5784 -4654
-1845 -7034
--5301 -1381
-1644 -7066
-6494 3987
-3609 6209
--4454 2460
-5128 -5291
--5381 -134
--3509 3704
-3121 6420
-899 6637
--5389 -300
--5365 18
-6917 3483
--49 -6908
-8029 -1047
--3456 3765
--5067 -2169
-621 -7062
--354 6214
-2552 -6834
--199 6279
-6542 3933
-8174 390
-1770 6707
-4766 5529
-8158 573
-2488 6620
-2817 -6735
--2058 5149
-4511 5703
-7690 -1997
--4296 -3643
-720 -7074
-8010 1338
--5336 199
--4848 -2654
--4731 -2888
-8174 -218
--5296 -1407
-7229 3031
-8141 707
-7629 -2130
-4169 -6039
-4183 -6030
--296 6239
-8060 1147
-777 6608
--4084 -3924
-3396 6307
-8040 1227
--951 5913
--4613 2187
--4483 2413
-8185 102
--3987 3130
-6646 3813
--1821 5342
-3458 6280
--1392 5643
-3359 6323
-1000
--1712 -3044
--6158 -847
-106 9712
--7779 5066
-4747 1374
--608 9820
-1621 8996
-4487 6195
--5049 8297
--4293 -2352
-5044 2075
-1673 -1878
--50 9746
--8168 2709
-3399 7508
--1950 9723
--4513 8677
--8144 2484
-1419 9128
--8145 3836
-4710 1306
--4997 -1854
--4564 -2173
--3510 9241
--4320 8804
--7993 4465
--5543 7908
--1851 -3050
--7929 4667
-394 -2572
-2584 -1203
--7846 1415
-4157 6659
--351 9795
--4405 -2280
--5588 -1369
-1226 -2162
--5150 -1733
--7180 313
--2726 9535
--6351 -652
-4067 332
--7356 5866
--7830 1381
--7712 5222
--4271 8835
-4464 882
-446 9600
-3782 -24
-1690 8949
-5239 4493
-5249 4431
-4845 1570
-545 -2507
--8161 3722
--4107 8934
--7621 5402
--1676 -3042
-5316 3685
--708 -2905
-4306 6463
-3444 7462
--7238 396
--6740 -235
--5458 7979
--6131 7375
-3417 -434
--7665 5318
-1074 9324
-1173 -2192
-4322 676
-5086 5075
-5280 3000
-5249 2816
--6291 7210
--4082 -2477
--4195 -2412
--7443 5719
-5316 3560
--101 -2745
--2013 9712
-2340 8458
-5305 3246
-4956 5395
--2773 9521
--7584 5470
-4211 6590
-2714 8145
--6083 -920
-4931 1772
-5214 2657
-3112 7788
--8191 3154
--2266 -3044
-4588 1090
--8179 3530
--3273 9346
-3358 -497
--3893 9052
-5023 5244
--7765 1256
-5078 5098
--4458 -2245
--8167 3671
--6052 -950
--8094 2185
--5956 7541
-5124 4964
-4235 557
--8186 3386
--8031 1923
--6503 6977
-4825 1526
--4634 8595
-2605 8239
--3197 9374
--4381 8764
-5317 3624
--4731 8528
--8183 2933
-5227 4557
-5157 4853
--148 -2759
--533 9815
--2998 9446
--1985 9717
--7320 519
--3968 9012
-2835 -989
--8123 3960
--8060 4235
-1859 8830
--7860 4862
--7972 4532
-4168 6645
-2977 -862
--3114 -2898
-4556 6089
-3827 29
-167 9695
--728 9826
-5287 3054
--3041 -2919
--3744 9128
-5024 2018
-5043 2072
--8043 1967
-3 9735
-980 -2296
--8154 3776
-213 -2638
--7952 1678
--5802 7682
--7539 858
--7419 670
-5313 3764
--1162 9820
--1691 9765
--8116 3993
--7771 5085
-939 -2317
-5166 2468
-1072 9325
--7795 1313
--6472 7012
-1208 9253
--3164 -2881
-780 -2396
--8171 2746
--4373 -2301
-962 9379
--7704 1144
--3948 -2548
--7960 1701
--571 9818
-4086 357
--4342 -2321
--6318 -686
-4177 479
--6686 -296
--5884 -1106
-3533 7370
--6526 6951
--496 -2857
--8190 3216
--3883 -2580
-5183 2530
-5300 3990
--7723 1178
--6248 7256
--5344 8070
--7277 454
--4516 8675
-12 -2709
-5270 4292
--8157 2587
-4768 1414
--2332 9644
--7092 195
-4687 5881
--2539 9589
--7388 5813
-4957 5393
--8182 3475
-1097 9312
--7921 1593
-5298 4017
-5165 4824
--7850 1424
-4634 1171
--7109 6219
-1446 -2028
--5641 7824
-4508 6163
-5297 4030
-4283 6495
-4403 6322
-3791 7095
--2883 9486
-4921 5463
--2456 -3027
--2980 -2936
--7699 5250
-1279 -2131
--2208 -3047
--8035 4326
--8088 4119
-3935 162
-1184 9266
--5504 7941
--8191 3153
-5282 4198
--7916 1580
--6888 6513
--7892 4775
--8135 3899
--3450 9269
-2810 -1011
-375 -2579
-3970 6891
-5312 3390
--3693 9153
-5293 3105
-879 9419
-1366 -2078
-2703 -1103
--2981 9452
--5577 7879
--8187 3359
-5203 4671
--8030 4343
-1103 -2231
--5642 -1322
--6545 -449
--936 9828
-3949 6916
--2341 -3039
--667 -2896
-4986 1914
-636 -2465
--5479 -1463
-5195 4706
-4687 1265
--6824 6595
-3930 6938
-2825 8048
-3178 7726
-4252 580
--5423 -1510
--7487 5642
--4733 -2054
-3866 7011
-240 9674
--5044 -1817
-5081 2190
--6665 -319
-3284 7623
--1198 9818
-1361 9164
--2531 -3018
--741 -2912
--861 -2936
-3990 232
--5986 -1012
--525 -2864
--8185 3411
-2476 8347
-4014 263
--1551 -3033
--2546 9587
--4606 8614
--3637 -2695
--8134 2414
--343 9794
-3975 6885
--8136 3893
-3196 -658
--2133 9688
--2523 -3019
--7931 1620
-4940 1794
-4514 963
--2397 9628
-5307 3878
--6453 -546
--6437 7051
-5313 3417
--4102 -2466
--3576 -2722
--7459 732
-4482 910
--2071 9701
--5773 7708
-5156 2433
-5260 4362
--6002 -997
-1426 -2041
-2175 -1521
--4741 8521
--7051 6297
-2878 8001
--8173 3611
-1118 9301
--8101 2219
--2604 -3008
-1866 8825
-4100 6731
--4798 -2007
--262 -2792
--7998 1812
-494 -2530
--2709 9540
-4294 6480
--1321 -3009
--3836 -2603
-1507 -1988
--7201 6093
--6960 6419
--2650 -3001
-5282 3015
--1230 -2996
--6221 -785
-421 -2561
--1323 9809
-2630 -1165
--4100 8938
--3946 -2549
-3257 -599
-2649 -1149
-4844 5607
--1812 9746
-399 -2570
--542 -2868
--4125 -2453
-1584 9021
--6494 -503
--834 9830
--2612 9568
--7126 6196
--2207 9672
-4804 1483
--6035 -966
--5584 7873
--7552 5527
--2886 9485
--1885 9734
--4928 -1908
--6000 7500
-3161 7742
-5242 2783
-3697 -123
--8149 2521
--1415 -3021
-5186 4743
--7774 1273
-516 9573
-4619 5991
-5150 4878
--7868 1465
-3898 116
--7248 6026
--270 9784
-3477 7428
-2925 7959
-5097 5043
-2353 -1385
-2054 8684
-2000 -1650
--6367 7128
-5304 3927
--2285 -3043
--7168 296
--5373 8047
--2819 9507
-5028 5232
-724 -2423
--7031 117
-1924 8783
-4364 6380
-1019 -2276
-1009 9356
-3579 7322
--6777 -193
-4374 750
--4547 8654
--7042 131
-1531 9056
--8190 3091
-636 9526
-1321 9188
--5913 7581
--7500 796
-619 9533
-4325 6436
--1405 -3020
--6772 6660
-342 9639
--8169 3652
-4626 5980
-2126 -1558
--8069 2070
-2070 -1599
-5136 2366
-5292 3096
-4891 5520
-4779 1435
--3598 9199
-2710 -1097
-4926 1760
--3359 9310
--6997 74
-4585 6044
-5143 4902
--3268 9348
--7561 895
-5289 4126
--181 9770
-1732 -1838
--8184 3434
--5330 8081
-4665 5918
-1348 9172
-3598 -236
-648 9521
-3724 7168
-4545 6106
-3244 7662
-2956 7931
-4417 812
--3062 9423
--1553 9785
--6232 7273
--413 -2835
-894 9412
--6598 -392
--5692 7780
--2166 9681
--1617 -3038
--3916 9040
--7430 687
-4040 6806
--3550 9222
--2409 -3032
--6610 -379
--8166 3680
-5125 4961
-4972 5361
-3126 -724
-5186 2541
--5281 -1628
-5161 2450
-2456 -1305
--2040 -3054
--5699 -1272
--599 -2881
--3654 9172
-4351 6399
--4981 8348
-3759 7130
--4285 -2357
--2671 9551
--6273 -732
--3971 -2536
--175 9769
--6804 -162
--7784 1292
-2237 8540
-4900 5503
-1258 9225
--6864 6544
--8172 3623
-5004 5288
--5523 7925
-5262 2883
--3707 -2664
--2378 9633
--6941 6444
--2275 9657
-5308 3301
-4576 6058
--3291 -2835
--7007 6356
--6849 -109
-2123 8630
--55 -2731
--2699 -2993
--2097 -3052
--7918 4701
--165 -2764
-4838 1554
--8189 3059
-5271 2940
--1098 9823
--7708 5231
--7878 1488
--1183 9819
-5283 4189
--6220 -786
-4286 6491
-227 9678
-356 9634
--6898 6500
--5498 7946
--4495 -2220
--4879 -1946
--4718 8537
--402 -2832
--6844 -115
--6175 7332
--7823 4959
--3935 9030
-2558 -1224
-1074 -2247
-4367 740
--8010 4410
--7199 340
--7924 1601
--3753 -2643
--3419 9283
-3010 7882
-4401 6325
-763 9471
--7999 1815
--2961 9459
--7275 451
--140 9763
--3134 9397
-2401 -1348
-4722 5822
--3510 -2750
--1744 9757
--3522 -2745
-4869 5561
--6656 6800
--1023 9826
-3832 35
--8184 2952
-3507 7397
-3736 7155
-87 -2683
--7904 1549
--7971 1733
--8057 4246
--7814 4982
--477 -2852
--5684 7787
-3671 7225
--8103 4052
-3665 -160
-1958 8758
-3209 7696
-5098 2244
-3655 7242
-3301 -556
--2734 -2987
-5229 2724
--3295 9337
-1094 -2236
-1844 -1761
--7338 5894
-3864 74
-3812 7072
-3504 -340
--8109 2260
-4849 5598
-4446 6257
--7382 613
--5000 8334
--7679 5291
--7653 5341
-5277 4240
--7695 1128
--8105 4043
-5310 3824
-1397 -2059
--8162 2639
--4944 8375
--7719 5206
-3620 7279
--7627 1008
--6118 -886
--1516 -3030
--7664 1073
--224 9777
-5299 3165
--8164 3697
--1050 9825
-5309 3843
--7225 377
--5933 -1061
--5851 7638
-3939 167
--3493 -2757
--8174 3598
-5055 2109
-4897 1691
-5220 4591
-1233 -2158
-1776 -1808
--7450 718
--6974 45
--6627 6834
-4678 1249
--8088 2156
--7800 5016
--7405 5784
--7642 5362
--7016 98
--4758 -2036
--7085 186
-188 -2647
-844 9435
--4132 -2449
-1587 9019
--3527 9233
-5110 5005
--7678 5293
-5279 2993
--1824 -3049
-4805 1485
--5709 7765
-3535 -306
--7984 1771
--2461 9611
-5266 2908
-5030 5227
-4024 276
--5350 -1571
--2819 -2971
-2928 -906
-2297 -1428
-4830 5632
--7831 1383
-1061 -2254
--2472 9608
--7897 1532
-3493 -352
-4757 5761
--7157 281
-4133 420
--4235 -2388
-1867 -1745
-576 -2493
-3039 -805
-4949 1817
--8172 2759
--6571 6899
-4613 1134
--4983 -1865
-1735 8918
--7718 1169
--7493 785
--203 -2775
--2693 -2994
-2499 -1271
-5317 3622
--418 9803
--1776 -3047
--1938 -3052
--1392 9803
--8074 4178
-107 -2676
-4821 5648
-2669 -1132
-4791 1458
--1358 9806
--4461 -2243
--7361 581
--2877 -2959
-4647 1194
-5266 4321
-5057 5156
-1539 -1967
-49 9725
--3390 -2797
--3718 -2659
--3216 -2863
--2002 9714
--5799 -1183
-3444 -405
--7508 5605
--2303 -3042
--2824 -2970
-4123 6702
--3230 -2858
--3948 9023
--6813 6609
-4218 6581
-1499 9077
-5310 3342
--1617 9776
--5752 -1225
--4240 8854
--8140 2455
--7948 4608
-5275 4255
-3652 -175
-5261 2877
--1459 9797
-4834 1545
-485 -2534
-2170 8593
--465 9808
--7902 1544
--7196 6100
--1482 -3027
--835 9830
--5171 8204
-5311 3365
-1042 -2264
--989 -2958
-2276 8509
-872 -2351
--5275 8124
-1228 9242
--2349 9640
--2773 -2980
-4073 6765
--304 9789
--8140 3868
--7743 1215
--6174 7333
-3989 6868
--589 9819
-5312 3785
--2146 -3050
-4569 1057
--4047 8968
-3431 -419
--8077 2105
--6070 7434
--7840 4915
-4905 1710
--7561 5511
--8060 2033
--2039 -3054
--3746 9127
-2624 -1170
--7596 954
--5321 -1595
--7462 5686
--4448 8720
-417 9611
-3374 -480
-2447 8371
-5050 5175
--8178 2849
--1257 9814
--890 9829
--1130 -2981
--7748 5139
-4966 1861
--777 9828
-5119 2311
-1760 -1819
--924 -2947
-653 -2457
-2899 -932
--1111 -2978
--1763 9754
-676 -2446
--1257 -3000
--4650 8584
-290 9657
-4993 1933
--8163 2650
--2912 9476
--3977 9007
--3421 -2785
--7867 4843
-3053 -792
--6305 7195
--872 -2938
--8123 2345
-1574 -1944
-124 -2670
-1884 8812
--995 -2959
--1183 -2989
--3813 9093
--803 -2925
--8174 2786
--3196 -2870
--8114 2289
--6529 -466
--8186 2991
--4805 8476
--4176 8893
--6381 -621
--8156 3761
-4753 5768
--8040 4308
-1800 8872
--4832 -1982
-1468 9097
-3629 -201
--8153 3783
--6431 -569
-2549 8286
--335 -2813
-1411 9133
--6633 -354
-833 9440
--6809 6614
-2563 -1220
--5437 7996
-3563 -275
--7160 285
-3903 6969
-5042 5196
-3873 85
-3072 7825
--7120 232
-3082 -765
--750 9827
--6947 11
--8039 1952
-5317 3623
-614 9535
--7521 5582
--1062 -2970
-5214 4620
--6863 -92
--8189 3272
-322 9646
--5124 8240
--3249 9355
--7631 1015
--8156 2578
-323 -2598
--1644 9772
-5314 3459
-5020 5251
-5231 2733
--8187 3012
--8017 1874
--6823 -140
--1984 -3053
--6318 7181
--4300 8817
--5227 8161
--666 9823
-38 -2700
--7241 6036
--3488 -2759
--6409 7082
--2901 -2954
-5300 3178
--5432 8000
--3463 9263
-5308 3861
--8188 3317
-5288 4137
-3950 181
-870 -2352
-2482 8342
--7894 1525
--3768 -2636
--7340 5891
--6701 6747
--6031 7471
-1642 -1899
-2250 -1464
-2005 8722
-5315 3504
--8151 2536
--5214 -1682
--7291 5964
-5074 2168
-3346 7562
--4058 -2490
-3059 7837
-2407 8404
--7805 5004
-4212 526
-2818 -1004
-589 -2487
--3992 -2525
-1251 9229
-4874 1637
-819 -2377
--4609 -2142
-5169 4809
-4910 5484
--7086 6250
--1076 9824
-5235 4516
-4327 683
-4301 647
-4994 5311
--7898 4758
--889 -2941
-547 9561
-5295 3124
--2923 -2949
--5830 -1155
--6539 6936
--1893 -3051
--3854 9072
-2655 8196
--7955 4586
--6378 7116
-3753 -58
--1510 9791
-5315 3717
-5047 5183
--981 9827
--55 9747
-4466 885
-3557 7345
-5290 3079
--6407 -594
--3368 9306
-4142 6678
--6914 -30
-27 9730
-5177 4778
--8113 2283
--4413 8743
--68 -2735
-260 -2621
-4976 5352
--5529 -1420
--1364 -3015
--3087 9414
-2107 -1572
--8191 3152
--4222 -2396
-4790 5703
--8181 2898
-2768 8098
-4531 992
--8024 1898
-3300 -557
-3347 7561
-5200 2598
--3101 -2902
--4874 8426
--8182 2915
-702 9498
-5018 2001
--328 -2811
--1469 9796
--1798 -3048
--5078 8275
--5356 -1566
-3128 7773
-1931 -1700
--1879 9735
-2767 -1048
-9 -2710
--4153 8907
-4246 6544
--2124 -3051
-1302 -2117
-1857 -1752
-5294 4067
-1639 -1901
-2109 8641
--4740 -2049
--2570 -3013
--2806 9511
--5927 7568
--6747 6691
-3157 -695
-2470 -1294
-2204 -1499
--7917 4704
--1691 -3043
--8051 1998
--6706 6741
--7175 6129
--5111 -1764
-5298 3153
--5946 -1049
--101 9756
--4674 -2096
-5240 4487
--3320 -2824
--6738 6702
-1000
--4307 -2360
-8679 1526
-8686 -844
-5498 -5288
--2941 -4304
-8812 36
-2151 7227
-1036 7146
--246 -6302
-8754 -494
--4873 427
--1038 6156
--3948 -3021
-8818 504
-3087 7093
-5805 -5012
-5897 -4926
-8811 631
--1694 5619
-7090 4517
-1164 7169
--3466 3740
-4262 -6186
-3345 7036
-2548 7185
--3937 -3039
-2383 7205
--4834 -544
--4059 -2831
-7404 -3291
-4324 -6149
--404 6587
-8306 2679
-2635 -6741
--3676 3475
-5720 5832
-5715 5836
-8757 1093
--4414 2340
--2751 4581
-302 -6512
-6962 4662
-8780 934
-8277 2742
-3092 7092
--4851 666
-8697 1433
--4829 849
--4630 1755
--4442 2279
-7194 4397
--4655 -1440
-5671 -5135
--4401 -2155
--2131 -5092
-6131 -4702
-3310 7044
-7967 3333
-8608 -1160
-5049 6300
-8164 2972
--2718 4617
-7150 -3597
--4885 101
-1673 -6768
--1359 5907
-8801 764
-4554 -6003
-8693 -812
--4819 -644
-8592 -1219
--2402 4944
-8535 2090
--1849 -5329
--3580 -3548
-8514 2152
--1152 6072
--4787 1107
--945 -5952
-7550 -3109
--2057 5282
--3917 3149
--4770 -926
--721 -6078
--4339 -2293
--4701 -1268
-7020 -3752
--70 -6376
-8544 -1390
--3745 -3322
-8353 -1889
--4748 1293
-7416 4127
-3839 -6403
--1753 -5406
--4798 -773
--4786 1112
-3542 -6523
--3965 -2993
-2418 7201
-8736 1222
-6668 -4155
--4654 1668
--3334 -3855
--4550 -1776
--375 -6245
-6017 -4812
-8425 -1723
-4436 6637
--2282 5064
--4422 2323
-2087 -6793
--2523 -4734
--3809 -3231
--4681 -1344
-2664 -6737
-5381 6079
-6340 -4495
--1622 -5503
--3952 3099
-5381 -5388
-8661 -952
-8815 79
-3352 -6584
-3162 7077
--2741 4592
-813 -6636
-949 -6663
--4640 -1493
-1520 -6752
--4882 -6
-6823 4814
--3015 -4223
--205 6701
--307 6645
-6953 4672
-6889 -3905
-5332 -5429
-8195 -2173
--616 6452
-347 6954
-759 7082
-1049 -6682
--3211 -4000
-8808 -18
--4723 1401
--1713 -5436
--3155 4114
-6689 -4132
-2822 -6712
-4446 -6073
-8661 1616
-4646 -5940
--4478 2195
--4816 943
-2511 7190
-1635 7226
--1782 -5383
-1413 7204
-1555 -6756
-504 7008
-7710 3733
--2647 4692
-6993 -3784
-8781 -286
--4879 -76
-4741 6483
--4597 -1641
-7855 -2700
--1100 -5858
-4143 -6252
-3888 6873
-2799 -6716
-4838 -5806
--4866 518
-8058 -2397
-2265 7217
--1348 5916
--4131 -2701
--1649 5659
-2846 7139
--2491 -4765
-2907 -6696
-6166 -4668
-4945 6364
--4487 2172
-1261 -6718
-7813 3582
-6070 -4761
-7886 3470
--3999 3030
-3686 -6468
--1740 -5416
-8804 -69
-6220 -4615
-3663 6953
--3873 -3136
--4303 2543
--3010 4286
--2124 -5098
--527 -6174
-6808 -3998
-2756 7155
-6559 5087
--4858 600
--4053 2950
-4770 6467
-8501 -1517
-6890 4741
-8549 -1373
-5678 5865
--4103 2873
-8128 -2284
-1325 -6727
--3727 -3347
--2182 -5048
-6675 4969
--4605 1842
--1195 -5797
-533 7017
--1733 5584
-1130 -6697
-8366 -1861
-5121 -5599
-2942 7121
-7186 -3554
-8666 1592
--1523 -5574
-6462 -4370
-6656 -4168
-2460 -6762
-7770 3646
--4879 341
-8760 -453
-7353 -3353
--1988 -5213
-192 -6476
-3314 -6595
-1208 7176
--152 6729
--4828 857
--4612 -1591
--3612 3558
-1116 7161
-8222 -2127
--4163 -2642
--4873 -182
-4176 -6234
-8638 1721
-8726 1278
--4692 -1303
--2132 5210
--1105 6107
-5587 -5210
--1998 5338
--1959 5375
-4976 -5707
--3129 4145
-7818 -2752
--1353 -5692
-8775 -335
-8446 2337
--607 -6135
--3082 4201
-4883 6401
-5936 -4889
-918 -6657
--4029 -2884
-8380 2506
-8724 -663
-4728 6490
--1675 5636
--4201 2715
--4257 2622
-2990 -6679
--4508 -1888
-6879 4753
-8783 911
-3487 7001
--832 -6018
-4491 -6044
--3503 3695
--4339 2478
-8807 692
-3919 6861
-8277 -2029
-3497 -6539
-6062 5547
--4194 -2584
--364 -6250
-6869 -3928
--324 6635
--1860 -5320
-6776 4864
--1215 6023
-1139 7165
-275 -6504
-3428 7016
--4674 -1370
-5448 -5331
--4670 1609
-8507 2172
--2304 -4940
--457 6554
-8822 285
--1279 5972
-3756 -6439
--1305 5951
-7301 -3416
-8817 525
-6717 4926
-3358 7033
--2813 4512
--4082 -2790
-3253 7057
-2254 7218
--1283 -5739
-4241 6726
--3880 3201
-4528 -6020
--4750 -1031
-5221 6188
--3786 3330
--4845 -462
-8596 1878
--1777 -5387
-586 7033
-7724 -2881
--4874 413
-4551 -6005
-799 7093
-6618 5027
-6560 5086
-8761 -446
-8029 -2443
-3042 -6668
-7226 4359
--3809 3299
-8669 -919
--3256 -3948
--4120 2846
-2989 7112
-5691 5855
-4822 6437
-8460 -1630
-7937 -2581
--4759 -984
-7495 4027
--3783 3334
-5133 6246
-1940 7242
--3875 -3133
-7557 3945
-5090 -5623
--3288 -3910
--1388 -5668
-4073 6798
--4716 -1200
-8198 2905
--4876 -131
-4361 6672
-7890 -2650
-3896 6870
-7616 3864
--970 6205
-8643 -1025
--1802 5521
-6374 5267
-1998 -6793
-2724 7160
-7441 -3246
-8630 1752
--4564 -1737
--2779 -4477
-2359 -6772
--2838 -4415
--2952 -4292
--4347 -2276
-396 6972
-896 7117
-7813 -2759
--2951 4354
-3970 -6341
--449 6559
--4569 -1723
-8227 2846
-5865 5713
-8789 -217
--355 -6254
--4870 467
-8799 781
-8619 1793
-7747 3680
--4611 1822
-8796 -151
-4302 6699
-7412 4132
-5661 -5144
-3880 -6384
--4812 970
-5866 -4955
--2228 5117
-8742 1187
-624 7044
-2380 -6770
--3559 3626
--613 6454
-451 -6552
-4598 6558
--3605 -3515
--839 -6014
-7747 -2850
-3604 -6500
--4442 -2057
-8742 -568
-1057 7150
--199 -6322
-8444 -1673
--3772 -3284
-8101 3091
-1787 -6778
--3104 -4123
-1303 7190
-8578 1942
-3939 -6356
-1494 -6749
-90 6848
--1040 -5895
-4342 -6138
-5787 5778
-8245 2809
-5601 5922
--3309 3930
-6494 5151
-7334 4229
--2737 -4520
--4875 -149
-691 7063
-8791 848
-8708 1375
-50 -6424
-8406 2442
--2622 -4637
-5326 -5434
--2370 -4881
-8820 174
-1982 7240
-1877 7243
-8821 425
-6003 5597
--4736 1346
--4576 -1703
--4020 2999
--3619 -3496
-7665 3796
-170 6883
-441 6988
--1394 5878
--3339 -3849
--2193 5151
-8773 986
-825 7100
-1342 7195
--1068 -5878
-5682 5862
--1388 5883
-5043 -5658
-6180 5444
-8822 394
--423 -6223
--1 6805
--590 6469
-1593 -6760
-3746 6925
--3396 -3780
-2889 7131
-7991 -2501
-5740 -5072
-8823 348
--3478 -3678
-7577 -3074
--3152 -4068
-1427 -6741
--945 6223
--4190 2733
-3768 -6434
-7247 -3481
-8667 1587
-5560 5952
-7875 3488
--386 6598
-7656 -2971
-3405 -6568
-4978 6344
--2451 4894
--1007 -5915
-2785 7150
-8792 840
--4681 1567
-4395 -6105
--1867 5461
-3113 -6651
-3179 -6633
--3382 -3797
-8170 -2215
-8368 2535
--3649 -3455
-2345 7209
-8502 2186
--1560 5737
-7997 3280
--3415 3802
-5632 -5170
--660 -6109
-8733 1239
-3139 -6644
-6327 5312
--803 -6034
--3581 3598
-593 -6587
--3212 4046
-7678 -2942
-5222 -5519
-8737 -595
-7277 4298
--3875 3208
--3066 -4166
-2198 -6786
--4853 -399
--498 -6188
-7721 -2885
--3509 -3639
-3715 6936
-115 -6448
--4760 1238
-8340 -1914
-1767 7237
-5159 6229
--1840 5486
-5085 6277
--3630 -3481
-5537 -5254
-7447 4088
-8725 -658
--1632 5674
-1405 7203
-4708 -5897
-3648 -6483
-7688 3764
-716 -6615
--1147 -5828
-8101 -2328
-3109 -6652
-6308 5330
--3918 -3068
--4284 2576
--3055 4233
-6069 5541
-8416 -1746
-6289 -4547
--4606 1839
-8823 349
-8674 -897
-3548 6985
--3262 -3941
-6585 -4243
-8814 580
-8329 2627
--4468 -1993
-8339 2604
--4788 -829
--2666 4672
--1284 5968
--2857 -4395
-3952 6848
-182 6888
--4843 735
--3718 3420
--4883 24
-1693 7231
--4884 55
--4096 -2765
-1974 -6792
-5995 -4833
-8823 350
--833 6302
--4885 100
--4171 2764
-5514 5985
-8746 1162
-390 -6536
-8803 741
-5153 -5574
-7811 3585
-3247 -6614
--2524 4819
--135 -6349
-3798 -6421
-7568 3930
-8139 -2266
-99 6852
--4796 1060
--4635 1737
-4781 -5846
-19 -6412
--1456 -5621
-5112 -5606
-776 -6628
-6242 5389
-982 7135
-4137 6771
-2303 -6777
-810 7096
-3307 -6597
-8520 -1461
-5394 6070
-4883 -5774
--4863 -315
-3222 7064
--4489 -1938
--4582 1910
--4163 2777
--1466 -5614
-334 6949
-58 6833
-5570 -5225
--3429 -3739
-2142 -6790
--4428 2310
-7272 4304
--3574 3607
--4091 2892
-1956 -6791
-5651 5885
--3968 -2988
--3474 -3683
-8688 1480
-8821 224
-4387 -6110
-1182 -6706
-4184 6751
-8819 140
-2902 -6697
-8639 1717
--3089 -4140
-4245 -6196
--4563 1966
--1927 -5264
--2491 4853
-5461 6023
--2351 4996
--4837 784
--4368 -2230
-8619 -1118
-8360 -1874
-8705 -756
-5086 -5626
--4741 -1077
-7736 3696
-8109 -2315
-8741 1193
-1579 7221
--4795 -790
-3823 6897
-829 7101
--3304 3936
-6810 4828
--4723 -1167
-628 -6595
--4869 -243
--3639 3523
-4579 -5986
-2210 -6785
-1031 7145
-3583 -6508
--641 6435
-1796 7239
-7929 3398
-7497 -3177
--4864 539
--34 6789
-1507 7214
-3434 -6559
-3125 7085
-8069 3150
--4415 2338
--1111 -5851
-6558 -4271
--2680 -4578
--1443 -5630
-2677 7167
-7149 4449
--4430 -2086
-8534 2093
-7958 -2550
-8612 1819
-3782 6912
-1895 -6787
--4767 1205
--708 6389
-7867 -2683
-5291 6141
--101 6755
-8772 993
--553 6493
-5414 -5360
-444 6989
-5217 -5523
--4880 -55
--3363 3865
-7242 -3487
-2245 -6782
--4731 1368
--3550 -3587
-8285 2725
-3591 -6505
-1214 -6711
-156 -6463
--2160 -5067
-8712 -722
-8020 3239
--1744 -5413
-4545 6584
--4827 -591
-145 -6459
--4804 -738
-5798 5769
-5038 6307
--303 -6277
--3005 -4234
-8352 -1891
--3248 4003
-7042 4572
-5778 -5037
--4402 2363
-42 -6421
-8466 2284
--4696 1509
-8041 -2424
-3793 6908
-5613 -5187
--1576 -5536
--3832 -3197
-4090 -6280
-6120 5497
--4835 -537
-8573 -1288
-8241 -2094
-8593 1889
-6943 4683
-1846 -6783
-8766 -408
--4842 -485
--4881 309
-5692 -5116
--1174 6055
--2931 4377
-2444 7198
--1765 5555
-8561 2002
-7367 4188
-7784 -2799
-6679 -4143
--3024 -4213
-4156 -6245
-7027 4589
--4623 -1553
-4348 6678
-4496 6608
-8813 598
--2730 4604
-948 7128
-7543 3964
-8811 22
-996 -6672
-6461 5183
-8802 -90
-8820 455
--4470 2214
--4882 275
-2808 7146
-4659 6527
-7512 -3158
--2350 4997
-2171 -6788
-2374 7206
--3846 3248
-8034 3214
--4596 -1644
-2431 -6765
-5243 -5502
-6389 -4445
--14 -6399
-7067 -3696
-8644 -1021
-326 -6519
-1478 7211
--4883 225
-290 6932
-8132 3033
--2242 -4995
-4777 6463
-8545 2057
-8765 1040
-8380 -1830
-8767 -400
-1684 -6769
-2061 -6794
-2533 -6754
--4466 -1998
-6751 -4063
--2079 5261
--4055 2947
-6288 -4548
--508 6522
-2613 7176
--4604 -1618
--1599 5703
-8817 108
--2556 -4702
-3612 6968
--4226 -2523
--4705 1474
--4391 -2178
-8404 2447
-252 6917
--1221 -5780
-5019 6319
--4398 -2162
-4313 6694
-846 -6643
-8427 2387
--3750 -3315
-3972 -6340
-8488 2225
-7906 3437
-1740 7235
-2525 -6755
--4700 -1272
--4232 2664
--3557 -3578
--900 6255
-2956 -6686
-2209 7222
--3678 -3415
-1274 7186
-3636 6961
-4039 -6306
-8550 2040
-8634 -1060
-8721 1305
--481 -6196
--218 6694
-5297 -5458
--1723 5593
-8568 -1306
-7856 3517
--4540 2030
--238 6683
--4522 2079
--4884 164
-7320 4246
--4658 -1429
-8654 1649
--2007 -5197
-6098 5516
-7587 3904
-1564 -6757
-7472 -3208
-8734 -611
--3991 -2949
--4799 1044
-4419 6645
--4367 2427
--4877 370
--3798 -3247
-7519 -3149
--1754 5565
--1443 5837
-2286 7215
-6795 4844
--4880 326
--1928 5404
--1510 5780
-1729 -6773
-8478 -1581
-2060 -6794
-4293 6703
--2589 4752
-2671 -6736
-1851 7242
-7903 3442
-1267 7185
-1652 -6766
--410 -6229
-3128 -6647
-8543 -1393
--2872 -4379
-5326 6117
-7683 3771
-7093 -3665
-2092 7232
--558 -6159
-8698 -789
--4804 1017
--3981 -2966
-8818 123
-7919 3415
-580 -6584
-4771 -5853
--1081 -5870
-7004 4615
--1183 6048
--1663 -5473
--4885 99
--2621 -4638
--843 6295
--1476 5809
--32 6790
--4289 -2397
--4260 -2456
-2730 -6727
-7200 4390
--3929 3132
--4823 895
-1878 7243
--4774 1171
-6429 5214
-8750 -521
--4808 -713
-8336 2611
-6429 -4404
-5404 6063
-6604 -4223
-1558 7219
--2870 4447
-7518 3997
-5455 -5325
--4861 -332
-3494 -6540
-355 6957
-2596 -6746
-8408 -1765
-5006 6327
-851 -6644
--1148 6075
--4854 -391
--884 -5988
-6948 -3837
--4706 1470
--4755 1261
--4506 2122
-874 7112
--2885 -4365
-3848 -6399
-140 6870
-1390 -6736
--2620 4720
-2774 -6720
-7614 -3026
-5286 -5467
-8542 2067
-3064 -6663
--4803 -744
-2043 7236
--1517 5774
--4865 -292
-3020 7106
-1728 7234
-631 7046
--4607 -1608
-5926 5662
-4008 6825
-4465 6623
-1964 7241
-7488 4036
-2881 -6701
--2389 -4863
-1153 -6701
-4908 -5756
--2436 -4818
--4822 902
-685 -6608
-5945 5646
-1092 -6690
-6527 -4303
-5703 -5106
-7993 -2498
-510 -6567
--4783 -856
-8305 -1978
--3740 3391
--4728 -1143
--4528 -1835
--790 -6041
--3534 3657
-223 -6487
--4729 -1138
--2065 -5148
--770 6346
-1000
-7359 5927
--3173 5595
-8995 1842
--395 7790
-5328 7709
-6676 6617
--489 -4416
-7549 5700
--5025 2741
--2123 -3439
--4442 3970
--2745 6023
-5073 7871
--4697 3504
-7144 6166
--3683 -1933
--2145 6568
--1510 7068
--3840 4846
-3186 8523
-1327 -4758
--10 -4566
-631 8240
--389 -4454
--4269 4259
--4739 -244
--5043 515
-383 -4652
-3831 8392
--3227 -2439
-7565 -1132
-4276 -3928
-1199 8416
--4571 -586
-8342 4501
--4821 3242
-8989 2682
-7823 5346
-1678 -4745
-5669 -2982
--3753 4953
-292 8113
-7566 5679
-4227 -3955
-8628 3911
-2829 -4527
--4029 4602
--4516 -691
--5033 486
--4525 -674
-7806 -828
-7690 -978
-568 -4687
-8222 4726
-7133 -1617
--824 7535
-7437 5836
--475 7746
--4994 375
-4113 -4015
-4641 -3708
-1031 8367
--2610 6152
--4625 3642
-5221 -3318
--2308 -3286
--4415 4016
--1063 -4158
-2767 8572
--1076 7373
-3009 -4471
--5177 1193
--1313 7210
--805 7547
--50 7962
--4191 -1251
-2500 -4621
-7723 5478
-5589 -3045
--5162 2123
-8496 4197
-2829 8566
-5697 7453
--5132 840
--332 -4474
--4184 4388
-5620 7509
-3566 8452
-1581 -4750
-4880 7985
-7843 -779
-3410 -4332
-4683 8086
-1626 8513
-8192 4779
-5736 -2929
-8949 2987
--5145 2241
-9006 1986
-8820 3427
--3561 -2078
--18 7977
-8824 1035
--4808 3271
-6190 -2541
--4940 2967
-5650 -2997
-7899 5243
--2543 6214
-998 -4740
-4518 8158
-926 -4732
-8481 4228
--829 -4276
-8008 5078
-477 8185
--955 7452
--1574 7021
-6837 6467
-808 8298
--4060 4560
-6360 -2387
-6501 -2255
-6440 6835
--3275 5488
--3732 -1873
-2103 -4701
-456 -4666
-1050 -4745
-2819 8567
-9005 2475
--5016 2767
--5199 1626
--5195 1749
--3296 -2371
-1771 8537
-8638 585
-7219 6085
--5093 2509
--5186 1315
-5253 7758
--4150 4436
-1317 8448
-8045 5020
--1135 7334
--410 7782
--5188 1352
-4803 -3605
--4770 -178
-2218 -4681
-8765 3576
-8982 1727
--3114 5656
-6028 7195
--4282 4238
-8746 833
-875 8319
--2531 6225
--757 7577
-8961 2920
-1127 -4751
-3792 -4170
-2746 8574
--4392 4055
-7639 5587
-8070 -457
--1462 7103
--1436 -3931
--1631 -3802
-5009 7910
-1540 -4752
-1156 8404
-4810 8023
-3867 -4135
--3944 4714
--5067 592
-8012 -545
-8592 484
--4679 -370
-7967 -609
-4087 8322
--551 -4392
--4516 3842
--4202 -1234
-5494 7598
-259 8099
-8112 4913
-525 -4679
-6776 6524
-5940 7266
--4630 -471
--4335 4151
-2661 -4577
-2156 -4692
-8324 -31
-2926 -4497
-8086 -432
--2434 -3177
--4574 3738
-4709 -3665
-8333 -15
-9012 2334
-7509 5749
-2618 -4589
--4175 4401
-4622 -3720
-7288 6008
-6735 -2027
-8811 1000
-8782 924
-1937 8556
-8833 1060
--649 7643
-2004 -4716
-5296 7730
--3329 5430
-6012 7208
-7866 -748
--3455 5293
--5026 2738
--533 -4399
--512 7725
-2590 8583
-3933 -4104
--4530 3817
-1181 8411
-7873 5279
-8919 1353
-8222 -206
-6800 -1963
-3249 8514
-2360 8582
-2477 -4627
--3703 5012
-7296 5999
-9016 2202
-2865 -4516
--2845 -2803
--3083 5688
-8479 255
--3620 -2009
-7985 -584
--2657 6108
-8964 2901
-8753 3607
-9015 2147
-4149 8301
-5094 7858
-8979 1704
-529 8204
-8713 3708
-988 -4739
-8298 4584
-5986 7229
-4893 -3546
-407 8159
-1445 8477
-8800 971
-6117 -2606
--1940 -3581
-8423 4345
-8388 4413
-4662 8096
-1328 -4758
-1714 8528
--4546 -634
-8994 1831
--2198 6522
-1695 -4744
--225 7878
-7272 -1466
-8625 556
--1696 -3758
--5123 2373
-8149 -329
--1043 -4169
-5190 7798
-3186 -4413
-1227 -4756
--5090 669
-9014 2280
-7204 -1540
-813 -4719
-6375 6894
-5273 7745
--5135 856
--4507 3858
-8155 4841
--5147 926
--2464 6286
-891 8324
--1248 7256
-7694 -973
--4195 4372
-4595 -3737
--5134 2309
-8091 -424
-1160 -4753
-3208 8520
-4090 8321
-189 -4612
--1561 -3849
--3073 -2589
-8217 4735
--5187 1870
--3732 4978
-8556 4071
-2372 -4650
-3148 8528
-8843 1089
-4427 8196
-415 8162
--1138 7332
--227 7877
--4706 -314
--1404 7145
-5821 7359
-7784 -857
--2373 6368
--5192 1428
-8448 4296
--2983 5790
--5176 2006
-3761 -4184
-4489 -3802
-6284 6975
-6125 7113
--2130 6581
-3762 8409
-8984 2728
--5044 518
--4106 4497
-8884 3235
--4274 4251
--4799 3291
-105 -4594
-1384 8464
--4363 4104
-9013 2096
--3839 -1738
-9008 2419
--4257 -1147
-3820 -4157
--3953 -1589
-4153 -3994
-7549 -1151
--3020 -2640
--5169 2067
-1273 -4757
--203 -4516
--1907 -3606
--4783 3326
-2290 -4667
-6427 -2325
--5102 2474
-3619 -4246
--5172 1145
--3471 -2181
-4574 -3750
--133 7923
-8793 3501
--3606 5124
-3983 -4080
--5109 2441
--4814 -77
--1180 7303
-3382 8489
--2698 -2939
-675 8255
--3520 5222
-4329 -3898
--5182 1249
-882 -4727
-3733 8416
-1082 -4748
--296 7842
--3798 -1791
-7761 -887
--196 -4518
-4044 -4050
-8259 -143
-2139 8572
--1422 7132
-678 8256
--3883 -1681
-7980 5121
-6900 -1861
--3822 -1760
--2859 -2790
-8734 804
-3976 8355
-8842 1086
--5164 2108
-2786 -4540
-6987 6322
--3692 -1922
--2300 6433
--2467 -3148
-631 -4696
-8001 -561
-2709 -4563
-4530 -3777
-251 -4625
-3712 8421
-7113 6198
-8860 3312
--2776 -2867
--5197 1708
--5178 1985
-5598 -3038
--3709 5005
-669 -4701
-7877 -733
--3551 5187
--581 7684
-8910 1318
--2062 6638
-1353 8457
-3898 8375
-4398 -3857
-7992 -574
--2749 -2892
--2857 5914
-2935 8554
--1743 -3725
-133 8045
--1737 6899
-1527 8494
--5189 1841
-8686 693
--2916 -2737
--4075 -1426
--336 7821
--4983 2856
-7657 -1019
-1813 8543
-1125 8395
-4042 -4051
--1197 -4080
-1710 -4743
-3288 -4377
-8815 3441
-1478 8484
--5133 845
-8969 1633
--1079 -4149
--5152 968
--4049 4575
--4994 2827
--1192 -4083
-3542 8457
-1269 8435
--5101 2478
-8962 1586
-7526 -1178
-8600 501
--1123 -4124
-8874 1190
-3429 8480
--459 7755
-7227 -1515
-7615 5618
--1456 -3918
-7378 5905
-2735 8575
-7846 -775
-1096 -4749
-2433 -4637
--1346 -3988
--2623 -3008
-4646 8103
-7327 5964
-8977 2790
--1008 -4188
-8994 2634
--442 -4434
-8931 3064
-3470 -4309
-4820 -3594
-4056 8332
-1876 8550
--3411 -2248
-4403 -3854
--4896 119
-8861 3309
-6251 7004
--3873 4805
--4338 -1014
--4298 -1081
-4368 8219
-128 -4599
--1373 -3971
--1852 6809
--3258 5506
--3316 5444
--1691 6934
-8729 792
--397 -4451
-2066 -4707
-5513 7585
--3967 4684
--4997 2819
--4664 -401
--4662 3572
-2107 8570
-602 -4692
--4948 251
-7520 -1185
-8523 4141
-2721 8576
--1880 -3626
--1677 -3771
-8891 1249
--4794 -123
--1597 7004
--637 -4358
-4955 -3505
-5911 7289
-435 -4662
-1969 8559
--755 -4308
--4129 -1346
-8046 -494
-585 8224
--4976 326
--5071 605
-2891 8559
--4581 3725
-5879 -2811
-6126 -2598
-5161 -3361
-8850 3341
-1143 -4752
--3749 -1852
-2023 8564
-8209 -228
-8951 1518
-8675 3800
-1720 8529
-4350 8226
-3684 -4218
-6920 6387
--2982 5791
-1661 8519
--672 7629
-4212 -3963
-2490 8585
-1390 -4757
-25 7997
--2211 -3368
-8907 3158
--4606 -518
--2558 -3067
-3004 8546
--5078 628
-988 8354
--4332 4156
-4997 -3476
-8152 -324
-9016 2200
-1794 -4737
-8915 3129
--1003 7421
-2046 -4710
-952 8343
--4442 -830
--3510 -2137
-540 8208
-8115 4908
-1336 8453
-4259 8261
-6674 -2087
-5935 7270
-3689 8426
-3277 -4381
--4616 3659
-8029 -520
-8587 4005
--5183 1263
--5003 400
-7892 5253
-2427 8584
-3827 8393
-3950 -4096
--3672 5048
-9012 2078
-5554 -3072
-7611 5623
-5448 7629
-2249 -4675
-8027 -523
--2118 -3443
-2657 8580
-9004 1957
-7700 5508
-4020 8343
--5182 1936
-1340 8454
--502 -4411
-5414 -3177
-796 -4717
-8811 3452
--3479 -2172
-3949 8362
--3877 4800
-1941 -4723
-3215 -4403
-8616 536
-3558 -4272
-8952 2971
-6733 6564
--5153 2187
-8290 4599
--5074 2578
--586 7681
--14 -4565
-8895 3199
-8442 185
-4843 -3579
-4774 8042
--986 7432
--4295 -1086
-4572 8135
--1948 6733
--1511 -3882
-6562 -2196
-8940 1454
-55 -4582
-4013 8345
-388 -4653
-7146 -1603
--713 7604
-8969 2859
-1599 8508
--3327 -2339
-8631 3904
-7112 6199
--2808 5962
-8926 1386
--5152 2194
--866 -4259
--4056 -1452
-198 8073
--2548 -3076
--4858 27
--2281 -3309
--4400 -908
-7656 5565
--610 -4369
-8259 4657
--3989 4655
--4405 -899
-7019 -1738
--2235 -3348
-8545 386
--4917 3023
-6990 -1768
-108 8034
-8135 -352
-8074 4974
-3139 -4429
-8704 734
-4322 -3902
--3794 4903
--3654 -1968
-6662 6630
-8970 1640
-5724 7433
--1821 -3669
--5007 2792
-4940 7951
--1624 6984
--5025 463
-3232 -4397
--3390 -2271
-5279 -3276
-2481 -4626
-8950 2982
-8447 4298
-7709 -954
--4965 2903
-4772 -3625
--132 -4535
-6238 -2498
-609 -4693
--5140 884
--5196 1518
--116 7931
-319 -4639
-7337 -1395
-7770 5416
-9010 2047
-6184 7062
--1943 6737
-8433 168
--1803 -3682
--4831 -37
--1919 6756
-3292 8506
-4860 7996
-4206 8281
--4131 -1343
-1457 -4755
--5199 1625
-9000 2564
-8947 2996
--2309 6425
-2019 -4714
-1071 -4747
--3794 -1796
-7476 -1236
--4212 4347
-8993 1821
-1880 -4729
--5199 1627
--5198 1578
-2048 8566
--4405 4033
-1568 8502
-8180 -277
-5065 -3429
--5057 2637
-3142 -4428
-3525 -4286
-7075 -1679
-6147 7094
--1479 -3903
--2684 6082
--1781 6865
-748 8279
--2034 -3509
--4026 4606
-84 -4589
-6259 6997
-4454 8185
-8893 1256
--976 -4205
--1026 7406
--5165 2100
-3361 8493
-6474 -2281
-7771 -874
-6625 -2135
--4229 4321
-6931 -1829
-6859 -1903
-7489 -1221
-6292 -2449
-9015 2249
--3295 -2372
-1751 8534
-2548 -4608
--3954 4701
--4163 -1294
--5050 537
--3170 -2495
-5962 -2741
-2197 8575
--2484 -3133
-1931 -4724
-7946 5173
--5196 1731
--5191 1408
-1996 -4717
-4952 -3507
-5014 7907
-2202 -4684
-8842 3364
-4896 7976
--4728 3441
-7948 5170
--4869 3134
--4912 3035
--2259 6469
-2277 8579
-205 8076
-5765 -2906
--4228 -1193
--2367 -3235
--2094 -3462
--4318 4179
--4006 -1519
-1848 -4732
-7044 6266
-1489 -4754
-8232 -189
-2674 8579
-4306 8243
--5195 1493
-5378 7676
-4825 8015
--505 7729
-3402 -4335
--3410 5342
--4375 -952
--3466 5281
-1108 8390
-1830 8545
--2169 -3402
--4253 4284
-5239 -3305
-2776 -4543
--4481 -757
-6452 6824
-8333 4518
-8937 3039
-8999 2578
-6799 -1964
-8515 325
--4775 3343
-3835 -4150
-2464 -4630
--166 7907
-5851 7336
-6098 7136
-9014 2119
-56 8011
--81 -4548
-602 8230
--5098 698
-2236 8577
-2191 -4686
-1041 8370
-8768 3568
--2635 -2997
--2195 -3381
-8999 1891
--701 -4331
--5144 907
--2959 -2697
-4292 -3919
--4951 259
-6348 -2398
-8284 -100
--5147 2228
-8918 1349
-3709 -4207
-8019 5061
-347 8136
-8659 632
-8957 2943
--3542 -2100
--1772 6872
--270 -4495
--5166 1090
-4214 8278
-8983 2737
-8888 3222
--5130 831
-739 -4710
-4793 8032
-8981 1719
-6593 6694
--4473 -772
-6566 6719
-3628 8439
-1798 8541
--2330 -3267
-2692 -4568
--5120 788
-3612 -4249
-6515 6766
--889 -4248
-9003 2512
-8398 102
-7092 -1661
-6039 7186
-2636 -4584
-4706 8075
--2421 6325
-8728 3671
-8986 1760
-7423 -1297
--3103 -2560
-2122 8571
--5114 763
-2942 -4492
-7368 -1360
--845 -4269
--3892 4781
-6301 6960
--4631 -469
--4168 4411
--239 -4505
--778 7564
-6281 -2459
-5391 -3194
-9009 2399
-6015 -2695
--5076 2571
-8386 80
--2004 -3532
--2475 6276
-4466 -3816
-8347 10
--5198 1680
-7228 6075
--5047 2670
-5757 7408
--4210 4350
-5560 7552
--3748 4959
-2328 8581
-9013 2309
-5760 -2910
-5508 -3107
-8757 860
--5167 1099
-1987 -4718
-3340 -4358
--4998 386
--3042 5730
--3387 5367
--4885 92
-1769 -4739
--2007 6684
-8363 4461
-5163 7815
--5197 1547
-3434 8479
-8099 -411
--3659 5063
-8702 3735
-1886 8551
-8937 1438
--1833 6824
-8867 3290
--4929 2994
-275 -4630
-1615 8511
-8611 3950
-7611 -1076
--5177 1996
-9016 2201
--993 -4196
-2097 -4702
--4842 3195
--2442 -3170
-7570 -1126
-8391 89
--957 -4215
-5638 7496
--5160 1037
--4082 -1416
--4936 220
-1620 -4748
-5130 -3383
-2544 8584
-5327 -3241
-5824 -2857
-3021 8544
--3906 -1651
-7500 5760
-2489 8585
-4319 8238
--2222 -3359
--1256 -4044
-7207 6098
--4467 3927
--4911 156
--5193 1780
-4616 8116
-5441 -3157
-8864 1157
-2339 -4657
-8964 1599
-8814 1008
-5947 -2754
-2690 8578
--799 -4289
--4811 -84
-1821 8544
-8563 423
-7923 -670
-7471 5795
-6052 7175
--3 7984
-6890 6416
-3069 -4452
--3402 -2258
-6365 6903
--5120 2389
-3498 8466
-8514 323
--1344 7188
-6076 -2642
-8648 3864
--4746 3404
--1277 -4031
--4569 3747
--3202 5565
-7283 -1454
--4887 3093
-3078 8537
--2918 5854
--892 7492
-3215 8519
--273 -4494
--159 -4528
--4698 3502
-1000
-3333 -7799
-7270 1522
-7988 -2743
-6874 -5015
--5152 424
--5183 292
-8094 -2186
--4110 -4532
-3743 -7639
--1584 4777
--1592 4772
-8089 -2217
-6367 2637
--3319 -5433
--1806 -6800
--5316 -2087
--5228 78
-3054 -7891
-8011 -8
-753 -8019
-5552 3476
-7949 182
--399 5332
--5213 -2532
-5791 -6224
-7992 -2724
-6553 2428
--3848 -4846
-7432 -4182
--3683 2993
-5502 3523
--4147 2411
--688 -7501
-2707 5329
--3850 2795
-7727 717
-7776 -3480
--1868 -6755
--3576 -5153
-830 5570
--3792 2865
-55 5458
--5311 -381
-7865 -3217
-1786 5543
-1866 5532
--2939 3763
--4978 -3144
--2791 3894
-3971 -7526
-5139 -6768
-3596 -7700
-6312 2698
-1070 -8067
-8171 -1054
-8167 -1533
--4912 -3283
--5201 208
--299 5364
--5243 -2426
-7263 1532
--1074 5065
-7279 -4429
--2361 4242
--650 -7522
-6617 -5340
-2964 -7918
--4616 1708
--2652 -6094
--5105 598
--3637 3046
-543 -7979
-3479 4985
-892 5575
-8107 -429
-7829 -3331
--5165 372
-5841 3197
--1879 -6747
-8142 -1819
-3948 -7538
--527 -7587
-509 5534
-4880 4072
-7934 -2974
-2643 5350
-7495 1159
--2054 -6615
--1906 4567
--5298 -299
-3289 5085
-534 5537
-8129 -544
--5321 -449
--879 5154
--5367 -1690
-8162 -886
-7908 295
-362 -7931
-1588 5566
-1653 5559
-5096 -6800
--3630 3054
-4613 -7140
--5039 812
-3609 4911
--1217 -7191
--4698 1566
-4485 4363
-7996 41
--4250 -4352
-4238 4529
-1497 -8096
-7786 -3453
--799 -7438
--5350 -1885
-8164 -917
--263 5375
-7977 100
-8115 -2045
-7221 1591
--3332 3381
--5379 -1040
-4809 -7006
-3670 -7670
--4911 -3285
--5072 -2926
-7788 587
-6639 2330
-2899 -7936
-4542 -7186
-8141 -631
--2941 -5820
-1771 -8097
-6526 -5448
--1822 4624
-1899 5527
--2554 4091
-5842 3196
-8158 -826
-2850 -7949
-4889 4065
--5119 548
--704 -7492
--4926 -3254
--4247 -4356
-6952 1952
-7882 -3161
--5384 -1344
-6024 -5999
-148 -7866
-8153 -759
--5285 -221
-8137 -1865
--5231 -2470
-5209 -6714
--4501 1893
-2564 -8008
-7410 -4219
--5272 -2301
-1060 5582
--3233 3483
-3550 -7718
--1751 -6839
--5324 -471
--396 5333
--3880 -4809
-4798 4135
-5252 3754
--620 5255
--4753 1466
-7803 -3405
-3827 4784
-1905 5526
-8032 -2530
-1817 5539
-4132 4597
-2248 5463
--5320 -442
--4187 -4435
--1537 4806
--3701 -5013
-8148 -701
-2429 5415
-1668 -8099
--1973 4521
--4742 -3606
-7880 369
-6978 1919
--2212 -6489
-8033 -86
-2477 5401
--86 -7785
--4196 2343
-1899 -8091
--556 5278
--5373 -1599
-8073 -2312
-8130 -1927
-2360 -8040
-4972 3999
-5935 3101
--2711 -6039
-5732 3304
--1168 -7221
-683 -8006
-7527 -4013
--4995 937
-6364 -5634
-7717 738
-7817 519
-4559 -7175
-1020 5581
-5730 -6279
--5098 -2862
--5168 359
--2157 4392
-2757 5312
--4022 -4640
-2257 -8053
-7840 465
--542 5283
-8043 -2474
--1036 -7300
--2089 -6588
--12 5444
-7321 1448
-2472 -8024
--3540 3155
--5165 -2678
-6827 2107
--4176 -4449
-7304 -4390
-5126 3867
--3925 -4756
--5343 -1938
--4575 -3896
--945 5126
-7445 -4160
--4102 2473
--3121 3595
-7128 1719
--2267 -6442
-2345 -8042
-7959 -2875
--2175 4379
--5385 -1308
--5229 -2477
--2007 -6651
--4773 1429
-1124 5583
-1961 -8086
-6306 -5699
-5259 -6675
-4616 -7138
--4601 -3854
-8006 -2657
-2321 5445
--4315 2173
--210 5391
--3179 3538
--4997 -3103
--5130 -2776
-3099 5174
--4375 2085
-8111 -2074
-7898 -3107
-8159 -840
--2427 4191
-7481 1184
-4306 4485
-4724 4191
--4619 1703
-945 -8051
-8172 -1420
-4845 4099
--818 -7427
--5130 507
--3573 3118
--3436 -5307
-6049 2982
-5443 3578
-3921 -7552
-3347 -7794
-3187 -7849
-2336 5441
--4704 -3675
--2681 3988
-5278 -6660
--5306 -349
--5185 -2619
--2237 4334
-7896 -3114
-7410 1307
-3906 4737
-4102 4616
--4936 -3233
--2318 -6398
--3399 -5347
--4686 -3707
-7769 628
-4018 -7501
--1157 5022
--5339 -589
-925 -8048
--5338 -1972
--4064 2524
--297 -7695
--4513 1874
--4851 1273
-2124 5487
-6068 -5954
--4280 2224
-7675 -3719
--3180 3537
--2461 -6270
-1338 -8091
--2844 -5913
-2282 -8050
--4598 -3859
--4659 -3754
-163 5480
-3088 5179
-3224 5116
--1582 -6957
-4542 4323
--3660 -5059
-7407 -4224
-2803 -7960
--4991 -3116
-6123 -5897
--5347 -660
-1453 5575
--5296 -2188
-2736 -7974
-7674 824
-3818 -7604
--4445 1979
-7849 -3268
-8175 -1274
--250 -7716
--4094 2484
--3958 2661
-538 -7978
--5385 -1309
-1138 -8075
-6885 -5000
--1341 -7113
-355 -7929
-2108 5490
--591 -7554
--4399 -4150
--1180 5010
-7236 -4495
-7921 -3023
--805 5184
--1495 -7014
-7371 1372
--2545 -6193
--1585 -6955
--2558 -6181
-7921 260
-4264 -7361
-227 5492
--2622 4036
-2789 -7963
-2520 5388
-6358 2647
--4273 2234
-7703 767
-1523 5572
--2181 -6515
-7885 -3151
-4872 -6962
--525 -7588
-431 5524
-7071 -4740
-3190 -7848
-7564 -3945
-8172 -1079
-7292 -4409
-4948 -6908
-2397 5424
-4923 -6926
-2900 5260
--4690 -3700
-3410 5023
-4720 4194
-2633 -7995
-6582 2395
--2638 -6107
-7642 -3789
--4352 2119
--4502 -4005
--3886 -4802
-827 -8032
--5241 14
-5109 3882
--4963 1021
--2305 4284
-1268 -8088
-1005 -8059
--3841 -4854
-6813 2124
-2009 -8081
--1751 4670
--5341 -1953
--1929 -6710
-3490 -7741
--699 5225
-910 5576
-4375 -7293
--359 5345
--5270 -137
--5074 701
--5058 752
-4916 -6931
--4819 -3464
-968 5579
-2812 -7958
-2895 5262
-3601 -7698
-4697 -7083
--5380 -1462
--5305 -2144
-5152 -6758
--3374 -5374
-4764 -7037
-2181 5476
-7570 1022
-1799 -8096
--5381 -1096
-1193 -8081
--1447 -7045
-4662 -7107
--3791 -4911
-6138 -5881
-6413 -5579
--4530 -3964
-2576 5371
-470 -7961
-3781 4811
-7943 -2940
-5675 -6328
--759 5202
--3225 -5533
--3454 3250
-5582 -6410
--3489 3212
--5382 -1411
-992 5580
-6421 -5570
--121 -7771
--3051 -5712
-6016 3017
-6641 -5311
--3826 2824
--4591 1749
-2591 -8003
-5802 -6214
-7139 1704
-455 -7957
-5003 3973
--5158 -2698
--2468 4159
-6749 -5177
-8022 -46
-4967 4003
--5094 635
-5221 3782
--4809 1361
-4067 4638
-6104 -5917
--182 -7745
-7489 -4082
-4221 -7386
--4430 -4107
-7209 -4536
-8074 -266
--1768 4659
--3050 -5713
-2436 5413
-2011 5508
-3245 5106
--4036 -4623
--5186 -2616
--2487 4144
-8168 -1516
-7477 1191
--5346 -651
--4972 998
-4978 3994
-8176 -1208
--2024 -6638
-8112 -455
-5263 3744
-8171 -1453
--1072 5066
-4966 -6895
--2125 4415
-7610 948
--2335 -6383
-5173 3825
--2744 -6008
--454 -7622
-1598 5565
--937 -7358
-1430 -8094
-1862 -8093
-517 -7973
--2911 -5849
--4985 964
-6766 2181
--1894 -6736
-4908 4050
-5349 3665
-8168 -993
--4488 1913
-7641 888
-6190 2831
-5336 3677
-3041 5200
-997 -8058
--259 -7712
--5117 -2811
-653 5551
-8173 -1381
-7843 -3287
-8125 -523
--5282 -204
--2724 3952
--1473 4845
-7863 410
-3495 4976
-2 5447
--5359 -1792
-8150 -724
-7450 1238
--375 -7659
-3240 -7831
--5384 -1242
--5091 645
-8063 -215
-886 -8042
--5321 -2061
-5218 -6707
--5383 -1182
-7956 162
-3736 -7642
--4850 -3404
-6492 2497
--4580 -3888
--5371 -1630
-6181 -5835
-6583 -5381
--2344 4255
-34 -7828
--3011 3698
--4550 1815
--4377 2082
-6280 -5728
-6819 -5087
-8097 -2167
--1311 -7132
--1430 4870
--4679 1600
-5069 -6820
-3863 -7582
--1227 4985
-8154 -771
-2274 5457
--1397 4889
-5101 3889
-5971 -6053
-5592 3438
-7603 961
-6110 2917
--3390 3319
-271 -7904
-7830 -3328
--4779 -3538
--5265 -110
--5374 -1582
-104 5468
-4659 4239
-6871 -5019
--5376 -983
-5298 3712
-7943 199
-4477 -7228
--3110 -5652
--2507 -6228
-6426 2571
--4795 1388
-7680 -3708
--3277 3438
-4815 4122
--1115 -7253
--4884 1203
--5220 -2508
-7038 1840
--449 5315
--5378 -1018
--5385 -1310
--4348 -4220
-7625 -3825
-7702 769
--5372 -927
-4376 4439
-7768 -3501
-8019 -2594
--4051 2541
-446 5526
--5152 -2715
--3905 2728
-1294 5580
-6165 2858
-7306 1470
-6227 2791
--4337 -4235
--5332 -531
-394 -7940
-6985 1910
--2278 4304
-2687 -7984
-1964 5516
-1881 -8092
--3976 2638
--3313 3401
-7544 -3982
--1350 4916
-5635 3397
-5135 -6771
--4693 1575
-1543 -8097
-6696 -5244
--4780 1416
-8102 -2135
--4028 2571
--4953 -3197
-3411 -7771
-8175 -1172
--3635 -5087
-1424 5576
--5377 -1523
-8034 -90
-6855 -5040
--5126 522
-8052 -166
-8020 -39
--2081 4446
-7293 1489
--3347 3365
-314 -7917
-5912 -6111
--3515 3183
-5028 -6850
-8165 -1564
-2912 5255
--2884 3812
-6671 2293
--5261 -2350
--4479 -4038
-3090 -7880
-7392 1338
-3166 5143
-1721 5551
--5352 -1868
-5472 -6504
--679 -7506
-2074 -8074
--2761 -5992
-7703 -3656
-5882 -6140
--4472 -4048
-8138 -1856
--5038 815
-3678 4871
-5649 -6351
-8158 -1648
--5382 -1135
-8163 -1589
-6967 1933
--5283 -2250
-610 -7992
-7106 -4689
-7822 -3351
-8176 -1206
-5865 -6156
-6901 2016
-4383 -7288
--3091 3624
-5901 3136
-319 5508
-2038 5503
-7917 -3038
--5363 -1745
-6893 -4989
--4619 -3823
-4328 -7322
--810 5182
--5181 301
--4736 1497
--4889 1192
-1731 -8098
-1823 -8095
-1203 -8082
-5702 3333
-4446 -7248
--2472 -6260
--5334 -1993
--5143 458
-4418 4410
--1478 4842
-7143 -4635
--2611 -6132
--2117 -6566
-4008 4675
-7484 -4091
--1276 -7154
--4223 2305
-3728 4842
--766 -7457
-717 5558
-4773 4154
-2198 -8060
--3258 -5498
-7754 -3537
-929 5577
--1614 -6935
-6987 -4859
--2310 -6405
--4161 -4468
-3865 -7581
--3000 3708
-6677 2286
--2801 -5954
--5026 -3035
--5381 -1437
--1130 5036
--887 -7387
--4747 1477
--5252 -42
--5000 -3096
-2991 -7910
-2877 5269
-7972 -2817
--4083 2499
--952 5123
-7791 580
--487 5302
--891 5149
--5197 227
-1463 -8095
-6428 -5562
-974 -8055
-2138 -8067
-8122 -1993
-7571 -3932
--5351 -697
-1328 5579
-8170 -1476
--1120 -7250
-1667 -8099
--4204 -4413
-1846 5535
-7389 1343
-6451 2543
-7976 103
-7718 -3622
-6259 2756
--4418 2020
-3781 -7622
-200 5487
--498 -7601
-2417 -8032
-8087 -328
-7952 -2905
--21 5442
--2176 -6519
--5291 -256
-3456 -7754
--5351 -1877
-7341 -4331
--1262 4966
--4654 1644
--3205 -5554
--3975 -4697
-4269 -7358
--5089 -2885
--4194 -4426
-6767 -5154
--772 5197
--5270 -2310
-6484 2506
--5242 -2430
--1933 -6707
-3441 5006
--5358 -763
-1361 5578
-7190 1634
-8096 -372
-4053 -7482
--2098 -6581
-6938 -4927
--2187 -6510
--1285 4953
-7743 -3563
-3382 5038
-2825 -7955
-5571 3458
--4288 -4301
--5377 -1000
-4341 -7314
--2430 -6298
--1027 5088
-7763 -3514
-5413 -6552
-7168 -4598
--5257 -2367
-4597 4284
--3735 2932
--5380 -1063
-1598 -8098
-3316 5072
-7533 1090
-2628 -7996
-8132 -563
-7744 681
-3911 4734
--1063 -7284
-1367 -8092
-5996 3038
-3470 4990
--1627 -6926
--5161 389
--3693 -5022
-215 -7887
--3567 -5163
--4812 -3477
-782 5565
--1686 4712
-6331 -5671
-780 -8024
--5052 771
--3622 3063
-4076 -7469
-3682 -7665
--1388 -7083
-1248 5581
-4373 4441
-8123 -1985
--1515 -7001
-7382 -4265
-7079 1785
--4515 -3986
--4952 1047
-7782 600
-2823 5289
-284 5502
--4977 985
--5303 -330
--5363 -821
--2348 4252
-8174 -1334
-3854 4768
--5368 -1676
--2780 -5974
--5367 -868
-1129 -8074
--3762 -4944
-593 5544
-4141 -7432
--2858 3835
--200 5394
-6632 2338
--3144 -5617
--4883 -3340
-7910 -3064
-4405 4419
-8154 -1695
--4927 1106
--104 -7778
--3074 3640
-5058 3926
--990 5106
-8004 16
-5781 3256
--2382 -6341
--59 5433
--1825 4622
-8061 -206
--2132 4410
-7014 -4821
-1123 5583
-7366 1380
--990 -7327
--433 -7632
-6842 -5057
--1871 4591
-3278 -7818
-8173 -1105
-7470 -4116
-158 5479
--109 -7776
-8076 -2295
-202 -7883
-8134 -578
--3521 -5214
--55 5434
--51 -7798
--5357 -1815
-7045 -4777
-3590 4922
-4179 4567
-8082 -2260
-4188 -7405
-3150 -7861
--34 5439
-5515 -6468
-8165 -934
-4670 4231
-3001 -7907
-5535 3492
-7064 -4750
--4080 2503
-2842 5282
-2253 5462
--5215 141
-7538 -3993
--4089 -4558
-3959 4705
--4912 1140
--5362 -1757
-1193 5582
-6995 1897
-1794 5542
--619 -7539
-8112 -2067
-7600 -3877
-7956 -2888
-6716 2240
--2990 -5772
-8149 -1753
-7586 -3904
--108 5420
--665 5238
-4685 4220
-7889 346
-8176 -1207
--308 -7690
-2589 5367
--3468 -5272
-8169 -1498
-3050 5196
--1655 4732
-3318 5071
--5205 -2557
-5402 3616
-5345 -6607
-5970 -6054
-8048 -149
--4254 2261
-6880 2042
--5107 591
-6474 -5509
--5012 889
--32 -7805
-892 -8043
--5331 -523
-1662 5558
-7166 -4601
--5374 -952
-8143 -648
--5031 835
-4286 4498
--2418 4198
-8056 -2406
-6245 -5766
-374 5516
--4834 1309
--1694 -6879
-2846 -7950
-2507 -8018
--173 5402
--1550 4798
-84 -7845
-3557 4941
--1982 -6670
-7974 -2808
--4641 1666
-5429 3591
-667 -8003
-2973 5229
-8061 -2379
-8142 -639
--5049 -2981
-3563 -7713
--2018 4490
-7041 1836
-1000
--2193 -7814
--4375 -5478
--1528 3779
--4782 -4832
-6343 -6276
--3370 -6715
--3970 1499
-7142 -5226
-1674 4506
--5426 -1249
--5488 -1657
--1013 4078
-3103 -8938
-4180 3433
--2169 3288
--5402 -1137
-7078 356
-6289 1446
-5314 -7351
--5172 -392
--5524 -2222
-6898 638
--254 4386
--1331 3904
-978 -9234
-2227 -9203
--4895 -4619
-2508 -9147
-995 -9235
-910 -9229
--3817 -6203
-6639 -5914
-7531 -528
-3048 -8961
-6410 1295
--4902 190
-3935 3594
-6802 777
-7787 -1215
-7696 -930
-7869 -3405
-3219 4015
-7928 -2976
--3709 -6334
--5505 -2703
-5058 2733
--5253 -3808
--5496 -1732
--5484 -1622
-7717 -991
--4933 132
-1185 -9244
-7824 -1348
-2148 -9213
--1551 -8271
-6711 903
-5115 -7538
-2651 4269
-7938 -2877
-3372 3933
-6160 -6483
--5158 -4042
-110 -9085
--1901 3512
-6008 1780
-5517 -7153
--5464 -1465
-7816 -1317
-7540 -4483
--3911 1568
--1432 3841
-2450 -9161
--2067 3374
-4625 3106
--5185 -3977
-5853 1952
-665 -9202
-6621 -5937
-5300 2510
-2204 -9206
-1713 4501
-2177 4415
-228 4498
--5508 -1854
-1630 4511
--5439 -3156
--4844 -4719
--141 4421
-7144 -5223
-3609 3797
-802 -9219
--4710 518
-4310 -8238
-7443 -4690
-3500 3861
-3387 -8813
--1272 3940
-2816 4204
-6146 1620
-4918 2856
--5045 -87
-7214 124
--2882 2643
-872 -9226
-3179 -8906
-3983 3563
--2261 -7757
--2863 2661
--5523 -2173
--5519 -2496
-7590 -4355
-5260 -7402
--3363 2162
--5111 -232
--4769 426
-5989 -6669
--804 -8714
--3693 -6353
--5488 -2858
-7131 267
-6649 987
-5969 -6690
-7685 -900
-7477 -4621
-7175 -5175
-4648 -7956
-5747 -6919
-7201 -5134
-4333 -8220
--5038 -4317
-7795 -1242
-7508 -4556
-5447 -7222
--1087 4042
-529 4528
-7930 -1936
-577 -9190
--754 -8740
-7882 -1606
-2119 4429
-7950 -2192
-2097 4434
-7191 164
-7382 -4808
-1604 -9249
-7117 -5263
-2686 -9094
--85 -9025
-5059 -7590
--3397 2127
-7346 -128
-7938 -2016
-6961 542
--1362 -8391
--5425 -3223
--1891 -8044
-1861 4481
-7798 -3705
--4072 -5884
--4076 1371
-7442 -4692
-1790 4491
-3071 4088
-7411 -4752
-7686 -4073
--3766 -6265
--4307 1077
--5207 -494
--154 -9001
--2744 -7333
-3845 -8561
--3664 -6387
--5511 -1901
--4171 -5756
--3547 -6521
-7396 -4781
-7365 -4840
--4646 -5064
--5478 -1573
-3025 4110
-7015 -5411
--3524 -6547
-7944 -2791
--3206 2322
--2868 -7218
--1207 3978
-7276 11
-1522 4521
-1712 -9245
--3142 -6955
--1122 4024
--4774 418
-7952 -2645
--5514 -2582
--5140 -4085
--5422 -3236
-6603 1048
-2569 4299
-5956 1839
--1492 -8309
--4514 799
-7937 -2005
-446 -9166
--1413 3853
--2362 -7671
--2627 2882
--1080 -8562
--5511 -2628
-5231 2574
--1397 -8369
-7825 -3606
-4224 -8304
--1499 3798
--5448 -1361
--4298 -5585
-940 4543
-2762 4226
-6076 1702
-7849 -1451
--9 -9049
-2106 -9218
-7940 -2854
-112 4480
--5254 -635
-4475 3225
-2243 4398
-1767 4494
--612 -8809
--1966 -7990
-6544 -6035
--5015 -4367
-4046 3522
-5696 -6971
-7757 -3845
--2307 3170
-2051 -9224
-7165 209
-6848 711
-2106 4432
--4801 372
--5446 -1350
-5979 1813
-3251 3998
--4819 -4767
-1346 4532
--1763 3618
-2274 4390
--3996 1468
--3341 -6746
--2564 2940
-7954 -2580
-7956 -2486
--4391 -5455
--3888 -6116
-28 4464
-7951 -2670
-3359 3940
-3512 3854
-4547 3170
--754 4195
-1146 4539
--3788 1708
-4172 -8342
-2790 4215
--353 -8925
-3445 -8786
-3864 -8549
-6087 -6564
--3147 2382
--3114 -6984
-1366 4531
-1844 -9239
-650 4534
-1491 -9251
-5574 2247
-2708 -9087
-7953 -2265
-6730 877
--3082 -7017
--2693 -7380
-2322 4377
--5274 -3749
-7949 -2709
--3583 -6480
-1102 4540
--18 4453
-7082 -5314
--4503 -5290
-6574 -5997
--819 -8706
-4895 2876
-1432 -9250
--5491 -1685
--853 4152
--1245 3956
--4712 515
-7896 -3243
-7210 131
--5520 -2063
-5795 -6870
-7038 421
-4573 3149
--345 4356
-6437 1261
-5086 -7565
-7158 221
-498 4526
-7891 -1652
-7942 -2066
-3924 3601
--5108 -225
-2777 -9064
--3209 -6885
--5456 -1407
-571 -9189
-5964 1830
-7833 -3575
--5110 -4155
-6739 -5785
-3448 3891
-3646 -8682
-2339 4372
--358 -8923
--860 -8684
--5328 -873
--4320 1060
-2586 4293
-2695 4252
-7917 -1827
-381 4516
-50 -9067
-7315 -4933
--4529 -5250
-2349 4369
--5472 -2974
--5099 -4180
-3186 4032
-2517 4317
-2173 4416
--914 4124
--5518 -2516
-7586 -4366
-7092 333
-6402 -6207
--1878 3530
-6022 -6634
--5363 -3466
--4606 -5129
-2951 4144
--940 -8641
-3292 3976
--2935 2592
-5191 -7467
--2378 3108
--2047 -7930
--5207 -3924
-7946 -2126
-2382 4359
-642 -9199
-6049 -6605
-1330 -9248
--76 4439
-2065 4441
--3865 1621
--5230 -562
-1583 4516
--5154 -342
-7639 -784
--5269 -681
-7517 -4536
-3587 -8715
-3346 -8832
-4443 -8129
-7910 -3135
-4552 3166
-427 -9162
-7930 -2957
-7947 -2742
--721 4209
--2008 -7959
--5351 -951
--4986 -4429
-4801 -7824
-4116 3476
--3644 -6410
--203 4402
-4972 2809
-7248 -5054
-7857 -1485
-2606 -9119
--5405 -1150
--4563 -5197
-7881 -1601
-6529 1144
--991 -8613
--2654 2857
--5387 -1079
-1560 4518
--5519 -2038
--3421 -6660
-4400 -8165
--4336 1039
--1236 -8469
--276 4379
--1325 -8414
--2111 3337
--5346 -934
-6423 -6182
-2635 -9110
--4726 -4929
-6946 -5507
-6768 -5747
-1379 -9249
--593 -8818
--5523 -2378
-6349 -6269
--3917 1561
--3978 -6003
-3519 -8750
-6697 922
--5437 -1303
-7895 -1675
--3655 1856
--3845 1644
-7505 -469
-4601 -7996
-5176 2625
-2573 -9129
--4099 1343
--1085 4043
-849 -9224
-2173 -9210
-6995 489
-7950 -2692
-719 -9209
-793 -9218
--5285 -3717
--3830 1661
-1159 -9243
-4621 -7979
-6249 1495
--4253 1147
-7955 -2535
--4979 44
--5158 -353
--4279 -5611
-2274 -9196
-83 -9077
-367 -9149
-6779 809
-1247 4536
-3269 -8867
-1492 -9251
--5417 -3257
-7293 -22
-7328 -91
--4112 1327
--5286 -3714
-3794 3683
--2626 -7441
--639 -8796
--110 4430
--2463 -7584
-296 -9133
--310 4368
-2823 -9047
--3666 1844
-7269 -5017
--3295 -6795
--2336 3145
-7755 -1110
-7883 -3330
-6478 1209
--5485 -2881
-3423 3905
-4744 3006
--5137 -298
-2745 -9075
-4810 -7816
-6685 -5855
--4518 -5267
--3515 2005
--2141 -7857
--1344 3896
-6692 -5846
--4926 -4555
-1963 -9232
-3153 -8917
-7738 -3908
-4996 -7648
--4370 -5485
-6950 559
--3857 -6154
--1016 -8599
--1485 3807
--5521 -2443
-284 4505
--4005 -5969
-6556 1109
--4699 -4975
-5343 2470
-158 4488
--5480 -2917
--1740 3634
--384 -8912
-7837 -3558
-1183 4538
--756 -8739
--4621 648
--616 4253
--4861 -4686
-7470 -391
--4124 -5817
-5947 -6713
--4416 -5419
--2548 -7510
--5515 -2566
-5405 -7263
-1903 -9236
-4195 -8326
-1273 4535
-7334 -4898
--4217 -5695
--1981 -7979
--5510 -2642
-4355 3313
-4682 -7927
--4046 -5917
-7280 -4997
-152 4487
--174 4411
-3931 -8506
-1437 4527
-5663 2154
-2885 -9024
-1218 4537
-3917 -8515
--5008 -4382
-4319 -8231
-5387 2429
--1618 3718
-326 4510
-7590 -666
--5467 -1488
--2906 2620
-7774 -1172
-2980 -8988
-6987 -5450
-4291 3358
--2250 3219
--1049 -8580
--2216 3248
-7858 -3459
-6508 -6079
--1614 -8230
-5402 2415
-3757 3706
-2742 -9076
--5436 -1298
--4260 1138
-2542 -9138
-3829 3661
-4050 -8426
-2309 -9190
--520 4291
--453 4316
--1462 -8328
-1661 -9247
--4914 -4580
--4611 -5121
-4917 -7720
-2136 4425
--5189 -441
-6851 -5637
--3231 -6862
--5378 -3414
--5323 -3598
-7880 -3347
-6807 770
-512 -9179
-7854 -1472
--2011 3421
-5455 2365
-6752 -5768
-7957 -2430
--1503 -8302
-6262 -6369
--4142 1289
--1032 4069
--3991 1474
-7810 -1294
--5227 -3875
--3465 -6612
-5049 2741
--4957 -4490
--5060 -4268
--2530 2971
--3023 -7073
-1384 4530
-4962 -7679
--5498 -1751
--1270 -8448
-4117 -8380
-3960 -8487
-7569 -4410
--2068 -7914
--3460 2062
--3532 -6538
-189 -9106
--2955 -7137
--4347 -5517
-4398 3282
-4980 2802
--4116 1322
--5128 -275
-1997 -9229
-5367 -7300
-7906 -3166
--5451 -1378
-2785 4217
--2369 3116
-5130 -7524
-1986 4458
--2973 2555
--671 4230
-2853 4188
--1685 3672
--2617 -7449
-335 -9142
--5177 -406
--3728 1775
-123 4482
-7916 -3086
--5508 -2669
--5393 -1102
--548 4280
--3714 -6328
-941 4543
-771 4539
--3015 2514
-259 -9124
-7549 -569
-3639 -8686
-7662 -4146
--4950 100
-5638 -7030
-7010 -5418
-7604 -4316
-5518 -7152
-3776 -8604
-5641 2177
--3455 -6623
--5384 -3391
--1681 -8186
-5125 2672
-7899 -3220
--5010 -16
--703 -8765
-7621 -4267
--3444 -6635
--2485 3012
-7053 -5356
--3590 1926
--5384 -1068
-4479 3222
-4499 -8082
-3481 3872
--263 -8960
--4660 -5041
--2911 -7178
--5085 -172
-4113 3478
-828 4541
-1943 4467
-2005 4454
-1053 4541
-5829 -6835
-4543 -8045
--1838 3561
-7920 -1850
-1920 4471
-7542 -553
-5295 -7369
--4456 879
--5306 -800
--4689 -4992
-3763 -8612
-7358 -153
--1792 3596
-6141 1626
-7663 -4143
--2398 -7640
--4425 -5406
-3554 -8732
-1639 4510
-7260 42
-4693 3049
--5515 -1966
--4816 346
--3085 2445
-435 4521
--4097 -5852
-7639 -4214
--5459 -3056
--4373 990
-2385 -9176
-6036 -6619
-5727 2087
--5463 -3033
--4743 467
-2475 -9155
-750 -9213
--4578 710
-2900 4167
--3537 1982
--3935 -6057
-3285 -8860
--468 -8875
-2619 -9115
--2759 2759
-7719 -3970
-7706 -959
--4896 -4617
-3894 3620
-6277 -6352
-7609 -4302
--1583 3742
-6504 1176
--787 -8723
-897 -9228
-7701 -4027
-1249 -9246
-7936 -2898
--421 -8896
--747 4198
-5876 1927
--565 -8831
-720 4537
--1068 -8569
-6823 747
--4759 -4872
-2952 -8999
-6471 -6124
-6006 -6651
-2404 -9172
-7851 -3493
--4039 1416
--5073 -4239
-7947 -2142
-4830 2932
-6888 -5587
-6320 1408
-7878 -3358
--2486 -7564
-42 4467
-205 4495
-7121 284
--5117 -4139
-7440 -326
--1525 3781
--5506 -1831
-7418 -279
-7659 -833
-7943 -2807
-158 -9098
-6297 -6329
-7206 -5126
-4323 3336
-2441 4341
--1155 4007
--5524 -2344
--1164 4002
--5011 -18
-4768 -7853
-6015 1772
-7543 -4476
--5525 -2278
-7951 -2212
-7952 -2234
--4207 1206
-4440 3251
--4685 555
--43 4447
--5518 -2016
-6896 -5576
-7819 -3629
-7043 413
-6098 -6552
--219 -8977
-3188 4031
--5512 -1917
--837 4159
-3677 -8664
--1150 -8521
--54 -9035
-6646 991
--5355 -3493
--2189 3271
--5449 -3107
--2433 3059
--2120 -7874
-3517 -8751
-7834 -3571
-7860 -1499
--5401 -1133
--5474 -1542
-1048 -9238
-3704 -8648
-3464 -8777
-588 4531
--5498 -2772
-1110 -9241
-3230 -8884
-6548 -6030
-6857 698
--5250 -3816
--2970 -7123
--5525 -2277
--3617 1897
--971 -8624
-6096 1679
--137 -9007
--927 -8648
-4500 3206
-1214 -9245
--4733 -4917
--3086 2444
--391 4339
-5513 2310
-4238 3394
--2540 -7517
--4464 868
-7834 -1389
--4964 73
-2390 -9175
-489 -9175
-5514 2309
--3315 2211
--5504 -1810
--3574 1943
--5525 -2279
--5342 -3536
-2862 4184
-5897 1904
--313 4367
--4837 309
--5278 -709
--5392 -3360
--1859 -8066
-1554 -9250
--955 4105
-7923 -3023
--5506 -2692
-1782 -9242
-878 4542
-1066 -9239
--2312 -7714
--2043 -7933
-7888 -3301
-7447 -341
-5338 -7328
-3186 -8903
--1923 -8021
-7922 -1867
--4189 1229
--1887 3523
--4848 289
-7912 -1791
-7920 -3051
--2828 2694
-1535 4520
--519 -8852
--798 4176
-6198 1557
--4555 742
-5802 2007
-5579 -7090
-1322 4533
-7718 -994
-3957 -8489
-2320 -9188
-93 -9080
--187 4407
--5520 -2474
-6125 1645
--5490 -2841
-4739 -7878
-6805 -5698
-4413 3271
-1682 4505
-4015 -8450
-7251 59
--1884 -8049
-5887 1915
--5325 -863
--4727 492
-7572 -623
--4214 -5699
--4883 225
-7955 -2330
-3582 3813
--4466 -5346
-6220 -6416
-3668 3761
-7889 -3295
--4778 -4839
-7868 -3410
-2486 4327
-7957 -2431
--5402 -3319
-3044 4101
-47 4468
--4828 -4750
--430 -8892
-7760 -3835
--330 -8934
--1684 -8184
--2698 2816
-326 -9140
-3702 3740
-259 4502
--4419 929
-758 -9214
-3596 -8710
-7389 -218
-3236 4006
--3081 -7018
--1748 -8141
--2115 -7878
-2520 4316
--4583 703
--1806 -8102
-6935 582
--5450 -3102
-7957 -2429
-7327 -89
-4316 3341
--3576 -6488
--5419 -1215
-5892 -6770
--5076 -152
-7904 -1734
-5773 2038
--2683 2830
-7233 -5080
--5366 -1003
-3403 3916
-255 -9123
-7940 -2039
--88 -9024
-1855 4482
-6367 1349
-7816 -3640
-1086 -9240
--5457 -1413
-1286 -9247
--3557 1961
--3264 2263
-6531 -6051
-2280 -9195
-5314 2497
-7956 -2364
--1177 -8505
-4865 -7767
-313 -9137
-7710 -3999
-7617 -731
-7560 -4433
-1454 4526
--5264 -3778
-7492 -440
-6428 -6176
-469 4524
--2882 -7205
-7682 -892
--5231 -565
-2997 4123
--5428 -3209
--5522 -2128
-7778 -3774
-1000 4542
-7871 -1552
--2799 -7282
-7733 -1041
-5546 2276
--4650 606
--5301 -3667
-7159 -5200
-4270 -8269
-7783 -3757
-4794 2963
--5517 -1999
--5287 -738
-1934 -9234
--3604 1911
-7943 -2080
--1968 3457
--1214 3974
--4265 -5630
-3135 4057
-1000
-377 -3737
--6042 -3339
--4548 -4328
--9096 1899
--3984 8472
--5702 7370
--6825 6320
-4398 2023
--9074 1091
-2909 -1321
--7438 5629
-1803 7052
-1608 7232
-4305 1444
-1171 7611
-1493 7336
--6433 -2987
--5094 -4031
-2741 6078
-2982 -1223
-4000 4286
--5670 -3640
--1813 -4732
--4135 -4502
--8192 4548
--8655 3650
-2834 -1418
-3926 360
-2392 -1936
--6097 7033
-4195 1048
--7121 5998
--8497 3987
--8496 3989
--1168 -4565
--8967 523
--4769 -4222
--4722 8073
-4142 3995
-2756 -1515
-3592 4985
-3576 -320
-504 8087
-4423 2642
-4209 3833
-3614 -251
--5362 -3858
--2536 8895
-4194 1045
--9074 2156
-365 8174
-3943 397
--8759 3390
--7014 6116
-4397 2984
--8882 258
--2816 8855
--7910 -1378
-2332 -2002
--2448 8902
--9080 2091
-1976 -2382
--6001 -3374
--9105 1472
--5114 7813
--8953 466
-1556 -2791
--5385 7619
--5892 -3465
-4420 2706
--9089 1225
-716 -3495
--9108 1665
-1446 7378
--3871 8527
-3271 5437
-1658 -2697
--8381 4209
-139 8308
-2560 6280
-3631 -220
-412 8145
-1940 6921
-3394 -627
--1931 -4752
--1626 -4695
--3468 8694
-3816 4621
-4119 4046
--3514 8679
--7423 -1964
--2547 8894
-4415 2228
--9104 1449
-1483 7345
--4057 -4530
--7548 -1818
--4328 8294
--3760 8578
--4771 -4221
--5339 7653
-4426 2449
-4235 1181
--7073 -2348
--4339 -4420
-1180 -3122
--2133 8911
--7417 5655
--1068 8779
--6526 -2899
--3355 -4717
-3572 -327
-89 8335
--7398 -1993
--9091 1246
-1330 -2994
-234 8253
--8093 -1136
-250 -3823
--3525 8675
--5498 -3765
-4254 3703
--4583 -4312
-2040 6824
--9086 1194
--1907 8903
--1980 -4760
--9049 911
--2805 -4787
--7647 5360
-4377 1823
--1473 -4657
--8725 3477
--8823 3222
--7188 -2225
--8385 -695
--8933 2878
--8461 -570
--4275 -4447
--5319 -3887
--134 8442
--473 8588
--6658 6496
-1842 -2520
-3903 4467
--7970 -1301
-2873 -1368
--7387 5691
--4214 -4472
-70 -3940
-1476 -2864
-1415 -2919
--460 -4236
-2506 6339
-4414 2807
--3352 8730
-4415 2793
--9101 1389
--1115 -4545
--7074 6050
-3999 527
--3085 -4757
--4438 8235
-4115 823
--2220 -4787
-4247 3725
-3695 4822
--8899 302
--8813 94
-1245 7550
-2481 -1837
-2280 6579
--294 -4148
--8498 -507
--7810 5135
--6962 -2465
-4403 2079
--3580 8654
-4342 1611
-3976 471
--8701 3538
-2928 -1296
--8505 -495
-162 8295
--8647 -238
--8585 -353
--6485 -2938
--4094 -4517
-1009 -3265
--8309 -817
--5008 7886
--7747 -1580
-3849 196
--8274 -871
-2894 5899
-3773 45
--6722 -2710
-4162 951
-1950 -2409
--1387 -4633
--9056 959
--441 -4226
--1562 -4680
-2735 -1541
--9107 1535
--9097 1321
--1064 8778
--9036 2436
--9078 1122
-3068 -1105
-4251 1236
-2189 -2157
--9102 1408
-4420 2319
-4043 637
--9048 2361
-488 -3660
-810 -3422
--2207 -4786
--745 8685
--2485 -4798
-1148 -3149
--1522 -4670
-637 8001
-1425 -2910
-2866 5932
-545 -3620
-4404 2920
-816 7879
--6871 6271
--8608 3754
--5691 7379
-4202 3851
--7650 -1697
--6424 6732
-1072 -3213
--3056 8809
--4664 8108
--2913 -4777
--4108 8409
-184 -3866
-4382 1863
--187 -4090
-276 -3806
-2781 -1484
--5727 -3597
-4217 3812
--1214 -4580
--8228 4486
-3390 5279
-3246 5469
--3063 -4760
--1231 8815
-4366 1753
-2866 -1377
-4126 4031
-868 7842
--5927 -3436
--8170 -1027
-2607 -1692
--9032 805
--8148 4623
--8834 3192
-4425 2579
--3618 -4664
--8296 4365
-1045 7711
--7295 5799
-2077 -2276
--691 8667
--5186 -3973
-4392 1958
--3496 -4692
--6759 6390
--2791 -4788
--4388 8262
--7864 5058
--9101 1815
--7331 -2068
--7555 5482
-3954 421
-850 7855
--3477 -4696
--4961 7918
--830 8711
--5675 7392
--8929 389
-3959 432
--5760 7322
-1091 7676
-4389 1927
--8639 -253
-1360 7453
--5621 7435
-3228 -877
-1160 7620
-3228 5492
--2549 -4797
--4457 -4369
--5853 -3497
--5620 -3677
-915 7808
-4104 794
-4374 3155
--343 8534
-3469 -504
--1014 -4504
--8891 281
--4870 -4166
-3065 5694
--2693 -4794
-485 8099
--7603 -1753
--8217 4505
--7199 -2213
-4031 4226
--3209 8771
--1841 8898
-2705 -1577
--5830 7263
--500 -4257
--3395 8717
-4426 2535
-1785 -2576
--5532 -3741
--1006 8763
--9035 2442
-2439 -1884
--9040 850
-1724 7126
--2311 8909
--7957 4922
--7045 6082
-3505 5116
--5167 -3985
--8226 -944
--5550 -3728
--7463 5598
-4427 2479
--5433 7582
-972 -3295
--5533 7504
--76 -4028
--3404 -4709
--2818 -4786
--8808 83
-4271 3648
--1327 8831
-3815 127
--8224 -947
-634 8003
--8713 -112
--2074 -4774
--187 8466
-2721 -1558
--8827 126
-3878 257
--9001 663
--1678 -4707
--6622 -2807
-4361 3244
--6045 7079
-4427 2478
--971 8753
--8348 4270
-1554 7281
--4618 8135
--4209 -4474
--8199 4536
-4423 2381
-4200 3856
--9085 2035
--244 -4121
--4546 8176
--9109 1636
--6504 -2920
--7771 5190
--3567 8659
--8838 152
-803 7888
-583 -3593
--6236 -3167
-3542 5061
--8258 4434
-3699 -95
-3639 4912
-1822 7034
-760 -3461
--3890 8518
-2965 -1246
--9108 1579
--2726 -4792
-4359 1709
--8962 2770
-594 -3585
-3814 125
--6778 6370
--1891 8902
--8151 4618
--4246 -4459
--3937 -4571
-4298 3538
-2041 6823
--3908 -4580
--8801 68
--7478 -1900
--3004 8821
--7857 5068
--7576 -1785
-3166 5570
-108 8325
--9109 1637
--4372 -4406
--8786 3320
-3213 5511
-24 8367
--7960 -1314
--3295 8747
-4145 3988
-3627 4931
-680 7972
--3160 8784
-1665 7180
-3457 5185
-3316 -746
--4638 -4286
--7548 5491
-1701 -2657
--310 8520
-3288 5415
-3779 4684
--6524 6634
--8455 4069
-4331 3400
--1866 -4741
--625 8644
--5485 -3774
--6897 -2532
-2693 6133
--4053 8437
--9018 2535
-3744 4742
--8187 -1002
-4410 2856
--136 -4062
--18 -3994
--8321 -798
--2285 8910
-3182 -944
-304 -3787
--4983 -4099
-4019 576
--1157 -4561
-2342 6514
--9084 1175
--1470 8853
--1129 8793
--5556 7486
--1458 -4653
--1102 -4540
-4427 2477
--3004 -4767
--5227 7734
-3741 -16
-4414 2215
-3935 4408
-3175 -954
-2177 6685
-4065 4157
--5773 -3562
--7294 -2109
--3809 8556
-826 7872
--2683 8877
--6300 6848
--9061 995
--9096 1307
--4587 8153
--2057 -4772
--7610 5410
--3598 8647
-3381 -647
--4423 -4384
-4367 3203
--8313 4334
--7910 4991
--8856 195
--7591 5435
-3517 -422
--873 -4442
--1383 8840
--3668 8618
--371 -4189
--8645 3673
-3577 5008
--2841 -4784
-3275 -808
--6128 -3264
--5265 7707
--9028 784
--8917 2933
--216 8479
-3429 -570
--3030 -4764
-1742 -2618
-419 -3708
--2475 8900
--4706 -4253
--6859 -2571
-4387 3060
-2143 -2206
--3451 -4701
-1618 -2734
-2830 -1423
--1678 8881
--6290 -3118
--2242 8911
--1925 -4751
--7516 5532
--4790 -4211
--8595 3782
--5398 7609
-4410 2164
--5982 -3390
--8542 -431
--8072 -1165
-3703 4809
-1403 7416
--7342 5744
--1278 8823
--6347 -3066
-2612 6223
--5354 7642
-2716 6107
--9043 870
-4353 1672
--9092 1258
--811 -4413
-2517 6327
--3842 -4600
--956 -4479
--1432 -4646
-1380 -2950
-2542 -1767
--4155 8385
--7375 -2019
--8343 -763
-4285 3591
-3790 78
-3273 -811
-1300 7504
--4241 8340
--7224 5881
-4131 4020
--8736 3449
--2978 8826
--9097 1886
-4350 3309
--4866 7980
--7686 -1654
--4916 -4139
-4422 2665
--6383 6771
--8681 3587
-2649 6182
--8426 -628
-4355 3281
-4392 3023
--944 8745
--1774 -4725
--8682 -172
--588 8631
--7531 -1838
-2493 6353
--6687 -2744
--6062 7064
--3711 -4639
--1877 8901
-672 -3528
--4495 -4352
--720 8677
--2286 -4791
-1301 -3019
--4741 8061
--2234 -4788
--6107 7024
-4156 3962
--5921 7186
--9018 737
-1239 -3072
--539 8613
--2135 -4780
--5842 -3506
-3004 5768
--1416 8845
--2869 8846
-1406 -2927
--8877 3066
--6175 -3222
-1718 -2641
-2005 6858
--44 8400
--3268 8755
--7175 -2239
--9041 2405
--6400 6755
--5059 7851
--774 8694
--2908 8839
--7848 -1456
--6604 6552
-4363 1734
--9092 1950
--629 -4323
--8031 4810
--8636 3693
--225 8483
-4419 2725
-521 -3637
--3143 -4749
-2232 -2111
--8076 4741
--9064 2251
--3738 -4631
--99 8426
--5276 7699
--2033 8909
--5492 7536
-3056 5705
--7750 5219
--2960 -4772
-3411 5250
--9079 1130
-3965 4352
-2019 -2337
-2726 -1552
--1287 -4603
--3895 -4584
--9000 2615
--4311 8303
-4318 1499
--5203 7751
-3973 464
-3913 332
--3533 8672
-1455 7370
-2921 5867
-4176 992
--8779 22
--7472 -1907
--2081 8910
--3603 8645
-739 7932
--5754 7327
-1210 7579
-3860 4545
--787 8698
--4375 8269
--907 8734
--6137 -3256
--3991 -4553
--5674 -3637
-2613 -1685
-1922 -2438
--7512 5537
-2968 5811
--2852 -4783
-4379 3119
--7024 -2400
--6594 -2834
-3031 -1156
--7998 4860
-3256 -836
-874 -3372
-1078 -3208
--5933 -3431
-1841 -2521
--1704 -4712
--9031 2465
--5170 7774
-2849 5952
--5597 -3694
--9024 2503
-2407 6445
-2466 6382
-938 7791
-3337 5350
--547 8616
--1956 8906
-3278 5428
-4324 3430
--3962 -4563
--1084 -4533
-851 -3390
--7895 -1397
--8824 119
-188 8280
--8019 -1236
--8791 47
-2796 6014
-4380 1846
-4174 3919
--9019 2530
--2702 8874
--1683 -4708
--8063 4761
--4803 8021
--8560 3857
--3299 -4726
--3120 8794
--8617 -294
-3340 5346
-3089 -1076
--5101 7822
--1722 8886
-3128 -1021
-4336 1579
--6723 -2709
-1891 -2470
--2649 -4795
--2397 -4796
--2775 -4789
--5508 -3758
--4222 8350
-4405 2102
--574 -4295
-4273 1317
--2919 8837
-2363 -1968
--3250 8760
--307 -4155
--7738 -1591
--9013 714
--8884 263
--9102 1795
-699 -3508
-657 -3539
--4752 8054
-2289 -2049
--1619 8874
--8858 3122
--8139 -1071
-2215 6646
--7242 -2166
--6179 6959
--8259 -894
-4396 2992
--8797 3291
--2371 -4795
--9109 1635
--95 -4039
--7938 4950
--4691 8092
--1652 8878
--7664 5337
--6088 7041
--4986 7901
--2625 8886
--2440 -4797
-4346 3330
--8111 4684
--2601 -4796
--1546 8864
--2197 8912
--9098 1337
--6914 6225
--922 -4464
--6085 -3302
--9010 701
--8568 -384
--3246 -4734
--8568 3840
--5421 -3818
--2375 8906
--1186 8806
--8377 -708
--3775 -4620
--4466 -4365
--884 -4447
-4254 1247
--468 8586
--6165 -3231
-3349 -696
-3510 -434
-4224 3793
-939 -3321
--7270 5828
--7148 -2268
--8876 3069
--8423 4130
--6158 6978
-3546 -372
-4419 2299
-4409 2868
-4416 2777
--2751 8866
--761 -4389
-4097 4092
--8987 2670
--9069 1054
--2462 8901
--6701 6451
--6406 -3012
--1830 8897
--9045 2380
-40 -3959
-2110 6753
--5654 7409
--1763 -4723
--7408 5666
-3706 -82
-2391 6462
--6573 6584
--4143 -4499
--1330 -4616
--995 8760
-4313 3476
--259 8498
-2096 -2256
-3886 274
-3535 -391
--8022 -1232
--3959 -4564
--7928 -1355
--1539 8863
--3921 8503
--407 8561
--7089 -2331
-1912 6948
-432 -3699
--9037 833
-4109 4067
-2588 -1714
--9006 684
--3852 -4597
--5102 -4026
--8658 3643
--5983 7133
--3614 -4665
-751 -3468
-774 7908
--2757 8865
-301 8213
--8714 -110
-3466 -509
--527 -4271
-4214 3820
-87 8336
--3553 -4679
--4932 7937
--2196 8912
-1363 -2965
-1319 7488
-3661 4877
--5442 7575
--723 8678
--2599 8889
--3212 -4739
--8472 4036
-4328 3413
--7953 -1323
--4606 8142
--9087 2012
--8458 -575
--3224 8767
--3676 -4649
-3957 4367
-2660 -1630
--8844 3163
--5047 -4060
--8906 321
-59 -3947
-4077 724
--1545 -4676
-4416 2243
--1079 -4531
-121 -3907
-3488 5141
--4182 8371
-4402 2939
--6971 6163
--3137 8790
--8936 2867
-3776 4689
--8641 3682
-101 -3920
--8980 576
--1989 8908
--7403 5672
-4379 1838
--3687 -4646
--4783 8034
--9098 1871
--6340 6811
-279 -3804
--7289 5806
-4349 1649
--4844 -4181
-4141 892
--6238 6905
-4337 1584
--2083 -4775
--3798 8561
-2790 6021
-3823 4609
-4319 3451
--5381 7622
--7800 -1515
--1436 8848
--8936 411
-4407 2889
--5250 -3932
--8254 4441
--9081 1147
--5862 7236
--8955 2797
--1274 -4599
--6792 -2639
-9 -3978
-3666 -156
--2396 8905
--2999 8822
-4280 1344
-4032 4224
-4336 3377
-993 -3278
--7163 5951
--9071 2187
--7955 4925
--1864 8900
--5316 -3889
--5456 -3794
--7713 5270
--3266 -4731
--3408 8713
-4358 3264
-4331 1555
--8388 4196
--2307 -4792
--6632 6523
-3963 441
--3726 8593
--1597 8871
--9013 2559
-568 8046
-3544 5058
--1769 8891
--1149 -4558
--2486 -4798
--436 8573
-4297 1411
--3136 -4750
--1656 -4702
--698 -4358
--64 -4021
--2146 -4781
--6467 6690
--4495 8204
-992 7751
--8898 2998
-420 8140
--8896 294
--792 -4404
-703 -3505
--8531 3918
-4054 665
--3026 8816
--9062 2268
--4958 7920
-4152 922
--354 -4180
--6012 7108
-988 7754
-4216 1116
-1497 -2845
-326 -3772
--1999 -4763
-1020 -3256
--8747 -43
--8979 2703
-3118 5629
-1751 7101
--8625 3717
--1205 8810
-4354 1678
--4263 -4452
-4399 2967
-1251 7545
--9061 2276
-3886 4498
--419 8566
-1844 7013
--9105 1733
--6523 6635
--2608 8888
--8995 638
--4821 -4194
--840 8714
--9059 2291
--1414 -4641
-1000
-5405 -5709
--1698 5953
-9153 2592
-1778 7947
-1967 -6058
-3205 8004
--3874 2095
-4217 7675
-6514 -5037
--2525 -2159
-8913 -2456
-5678 6701
-9370 2069
-8699 -2797
-9445 1844
--1882 5768
-4781 7346
--2251 5369
--3860 1066
-9404 -1471
-4644 -6018
-9732 -30
-9058 2781
-3527 7928
-4389 7586
-9026 2842
--3803 679
-6079 6369
-9635 -674
-1247 -5708
--2369 -2373
-2089 -6100
-9597 1260
-9737 149
-9642 1021
-1046 -5578
-7525 -4185
-2472 -6202
--3864 1101
-9516 1603
-2540 8063
--3911 1676
-5094 7130
-9728 299
-9644 -631
-6212 -5242
-9601 -818
-7860 -3842
-5413 6899
--785 6736
-7105 -4577
-9701 -327
--744 -4156
--265 7087
--3872 2108
--3604 -119
-6595 -4980
-7941 -3754
--1547 6100
--3817 2399
-8965 -2364
-4980 -5900
-6730 5771
-6553 5941
--3906 1531
--3459 -529
-1003 -5549
--3668 91
-4559 7489
-2043 8001
-4554 7492
-9475 -1275
--2614 -2033
-8866 3135
-9127 2645
-9563 1416
-5807 -5487
--3689 165
-9332 2175
-2475 8058
-3434 -6283
--1113 -3797
-8426 -3176
--1112 -3798
-1312 -5747
-9709 -269
--3317 3800
-4616 -6027
-9712 478
-4068 -6175
-1674 7923
-9673 -486
-8379 -3238
-9350 -1606
-9007 -2288
-9508 1632
-6275 6197
--3885 1290
--3888 1991
--2453 -2259
--850 6688
--583 -4306
-9737 68
--2918 -1573
-7205 5292
-2383 8050
-941 7704
-5578 -5616
-20 7255
-8789 3267
-5871 6546
-9736 196
-2907 -6279
--926 6630
-9187 2520
--3231 -1013
-723 7616
-9679 771
-1610 -5907
-2643 8068
--3266 -946
-1653 -5927
-5960 6471
--3360 -752
--2410 -2318
-9450 -1348
-3454 7946
--2151 -2651
-6612 -4968
-847 7668
-3444 -6282
-461 7497
-7047 5456
-9256 -1814
-3891 7814
-9703 561
-3944 7793
-9719 402
-9586 1313
--2492 5084
-4743 7371
-332 7430
-8917 -2449
-9733 -13
-9552 -1006
-6357 -5145
--438 6975
-9604 1226
--3726 309
-9581 1337
--2599 4944
--2254 -2524
-3301 -6294
-972 7715
-4374 7594
-4572 7481
-7654 -4056
--3180 4056
-9738 91
-8324 3966
--3118 -1225
-4409 7575
--1765 5887
--3707 231
-8680 -2825
-641 -5296
-8237 4086
-7930 4478
-3611 7906
-510 -5201
--2905 -1594
-829 -5430
-6027 6414
-4956 7227
-9730 -61
-3423 -6284
--2716 -1885
-8509 -3064
-5186 7064
--3460 3519
--3902 1843
-7978 4419
-9347 2134
-6213 6252
-6939 5566
-9725 -122
-4975 7214
-2227 8031
-7500 4980
-9531 -1083
-9699 -340
-6127 -5297
-1255 -5713
--1836 -3029
-9651 -597
-1052 7743
--3901 1855
--3679 129
-666 -5314
-3352 -6290
-249 7384
-955 7709
-9539 1518
--3623 3116
--3758 2649
-9197 -1930
-8970 -2355
--1332 -3572
--1220 -3688
--3649 3040
--3798 651
-8776 -2680
--3598 3184
-9478 1735
--3467 -508
--3742 2710
--3808 2442
-6192 -5255
--2207 -2582
-2972 -6286
--3430 3580
-7476 -4233
--687 6805
-3850 -6220
--3774 2586
--1279 -3627
-1923 7977
-3108 8022
-2172 -6125
-9625 1117
--3505 -407
-9657 929
-4515 7515
-5057 -5868
-7099 -4582
--3014 -1410
--2917 4497
--2020 5624
--385 7010
-9687 702
--2731 -1863
-7784 -3923
-1323 7830
-8502 3713
--3729 2759
-4145 7708
-536 7533
-9652 960
-4659 7426
--3347 -780
-4778 7348
-6262 -5209
-7407 -4300
-2418 -6189
--3814 741
-9641 1027
-3982 -6193
--1398 -3503
-7264 5230
-4043 7752
-3860 7826
-1936 -6046
--612 6857
-6957 -4699
--3778 547
--200 -4646
-9512 -1151
-1295 -5737
--3577 3239
-7774 4666
-8666 3467
--3681 136
-5701 6683
-16 -4828
-1883 -6025
-2719 -6254
-1168 -5658
-4466 7543
--3531 3355
--154 7154
-2678 8067
-2787 -6265
--3523 3374
-931 -5500
--2990 4384
--2711 4792
-9286 2297
-9623 -726
-7541 4936
--2643 4885
-9144 -2032
--2962 -1499
-6117 6336
-1438 -5818
-9569 -942
-8133 -3538
-8470 -3117
-1474 -5837
--3905 1798
--3787 593
-1087 7755
--2872 4565
--365 7023
-5852 -5461
--3685 2919
-670 7593
-9387 2019
-3181 8009
-6638 -4949
-89 -4886
--3830 839
--768 6748
-9165 2567
-5008 7191
-7200 -4496
-9711 -254
--3833 2321
--1788 -3085
--1975 5672
-815 7655
-5992 6444
-5161 7082
--3012 4349
--2292 -2475
-6265 -5207
-4400 7580
--3478 -479
-2026 -6080
-4198 7684
-9527 1563
-8441 3801
-7441 5043
-8748 3336
--63 -4762
--3354 -765
-852 -5446
-1642 -5922
-3132 -6298
-1427 -5812
-770 7636
--3632 -31
--866 -4039
-3904 -6209
--1007 6566
--2200 5427
-3949 7791
-11 -4824
-7190 -4505
--252 -4601
-8646 3498
--480 -4400
--3754 431
-6615 5882
-2646 -6241
-347 7438
-9694 -369
--25 7229
-9296 -1732
-459 7496
-3040 8033
--697 6798
-5101 7125
-8078 -3601
-3948 -6200
-8538 -3024
--290 -4568
-9553 1459
-3287 -6295
-3149 -6299
--3900 1457
-1049 -5580
-2981 8040
-1476 7873
--435 6977
--3825 808
-9174 2548
--1431 6211
-5104 -5848
-3682 7885
--3777 542
--3086 4224
-1695 7928
-422 7477
-9708 515
-8991 2908
-2373 -6178
-1518 -5860
--3583 -183
-7818 -3887
-6352 6127
-3582 7914
-9050 -2208
--3543 -301
-2245 -6146
-8196 4141
-3265 7991
-9702 -320
--3664 2993
-6422 6063
--763 -4138
-149 -4933
-6753 -4862
-1084 -5603
-8551 -3006
--3039 -1367
--903 -4003
--44 -4778
-9476 -1272
-5495 -5662
-7322 5169
-7810 4623
--839 -4065
-8081 4292
-2774 8061
--3300 -877
-2920 8047
--2033 5610
-3801 7848
-1518 7884
-9738 92
--2379 5222
-1977 7988
-3183 -6300
-3053 -6293
-4132 -6160
-4855 -5947
--3189 -1093
--2354 5251
-9727 311
-904 7690
-9432 -1397
-8206 -3454
-7861 4562
-5928 -5417
-1370 7844
-8600 -2938
-7378 5110
-8839 -2581
--3103 4194
--101 7185
-3142 8016
-3539 -6271
--1983 -2855
-9231 2424
-5223 -5796
-871 -5459
-6888 -4755
-6503 5988
-2562 -6223
-7847 -3856
-2404 8052
-2156 8021
-78 7288
--3892 1366
-7182 -4512
-4532 7505
-842 7666
-9566 1403
-6940 5565
-4923 -5922
-5025 7179
-2163 8022
-1796 -5989
--3898 1890
-4740 -5987
-4199 -6144
-9722 368
-9734 6
-126 -4915
-572 -5246
--3906 1781
--3759 455
--3770 508
-8356 -3268
-2463 8057
--3907 1762
-604 7564
-2713 -6253
-4174 7695
--3851 2227
-4872 -5941
-7615 4853
-2832 8056
--3605 3165
-7290 -4413
-5398 6910
--2949 4448
-9715 -223
-2622 -6236
-122 7313
-733 -5362
--2034 -2794
--3469 3500
--133 -4703
-70 -4871
--3893 1943
-6296 6178
-4309 7628
-2526 8062
-5630 -5587
-7258 -4443
-8841 3178
-4798 -5967
-6435 6051
--3554 3299
-244 -5005
--2921 -1568
-1954 -6053
--3891 1355
-429 -5142
-9495 1677
-5689 -5554
-3409 7957
--1495 -3401
-5738 6654
-4775 -5975
-1029 7735
-3531 -6272
-5447 6874
-4309 -6116
--1437 -3462
-8181 -3483
-5255 7014
--3796 2494
--2529 5036
-9718 413
-8352 3927
-4153 -6155
-9630 1089
-9720 -175
-7663 4797
--2317 -2442
--2865 -1658
--2093 5545
-7715 4736
-1185 -5669
-1682 -5940
-2556 8064
-9319 2210
--2172 5458
--3895 1922
-8802 3245
-5981 -5386
-8034 4350
-4504 -6062
--3326 -824
-4440 -6081
-5368 -5728
-3184 -6300
-7757 -3951
--165 -4676
-179 -4956
-9093 2714
--3849 2238
-4083 7735
-8930 -2426
-9260 2358
-5816 6592
-6772 -4847
--846 6691
--2374 5228
-380 -5106
--2124 5511
-1152 7776
-1345 -5766
-1629 -5916
--1930 5719
-6739 -4873
-8603 3564
-8958 2969
-9662 896
--2877 -1639
-2644 8068
-1273 -5724
--2485 5093
-6100 -5314
--3415 -631
--3436 -583
--3876 1207
-2641 -6240
--3856 2199
-9678 779
-7622 4845
-726 -5357
--3338 -799
-9305 2247
-9102 -2111
-3815 7843
-9455 -1334
-2685 -6248
--3628 3102
--3895 1400
--3852 997
--3651 33
-6590 5906
-7343 -4362
--3187 4043
--1766 5886
--1363 6273
-4580 7476
--595 -4295
--3143 4123
--1795 -3077
-3186 8008
--3131 -1201
-8100 4268
-1759 7943
--3869 1145
-248 -5008
-4482 7534
-6817 5686
--3666 2986
--231 7108
-2393 8051
-9364 2086
-9181 2533
--3875 2088
--3903 1829
-9222 -1881
-4855 7296
-9257 -1812
-2527 -6215
-9696 623
--3492 -442
--912 6641
-499 -5193
--3061 4267
--1446 6197
--1146 6454
--2273 -2500
--676 -4220
-4185 7690
-2695 8066
-9381 -1531
--3713 254
-9676 -470
-6410 6074
--1991 5655
--2039 -2788
-9722 -154
--1463 6181
-4675 -6008
-6164 6295
-6677 -4920
--3275 3879
-4886 -5936
--1673 -3212
--3910 1619
-2964 8042
-9459 1799
--2975 -1477
-1628 7912
--300 7065
-8319 -3316
--3537 -318
-9638 -660
-8744 -2729
-9683 -431
--3911 1677
--1827 5824
--1272 6350
--2819 -1730
--3498 3433
-2288 8039
-1673 -5936
-3082 -6295
-3671 -6253
--1373 6264
--1061 6523
-2136 8018
--1580 6068
-9181 -1961
-5157 -5825
--1957 5691
--724 6779
-4998 7198
--1310 6318
-9014 -2275
--3803 2464
-7895 4521
--1378 -3524
-4824 7317
-9294 2276
--3832 2326
-5508 -5655
--3881 1253
--3824 2365
-972 -5528
-9540 1514
-4353 7605
--525 -4359
-303 -5049
-2216 -6138
--3549 3312
-3300 7983
--2068 -2753
--2776 -1796
-6973 -4686
-3600 -6263
-5579 6776
-338 -5075
-8558 3631
--3071 -1310
--3867 2137
-8649 -2869
-4957 -5909
-3855 -6219
-6323 -5168
-5291 -5765
-3738 7868
--577 6881
-521 7526
-7802 -3904
-9410 1951
-4049 -6179
-4351 -6105
--178 -4665
-8817 -2616
-1450 7866
-2995 -6288
-1453 -5826
-8467 3764
--2103 -2710
-7374 -4332
--2571 -2094
-8144 4210
--608 -4283
-8398 3862
--3846 2254
--3223 3976
-8119 4243
-9534 1537
-2300 -6160
-9376 -1544
-9735 212
-5097 -5851
-9215 2459
--2114 5522
-8692 3426
--1614 -3275
--386 -4484
-5890 6530
-802 -5411
-7554 4922
-6871 5633
-8704 3407
-3593 7911
-7106 5395
-2354 8047
--3520 -366
-8312 -3325
-4457 -6076
-5012 -5887
--337 -4527
--1888 -2968
-6307 6168
-9287 -1751
-3748 -6240
-9263 2351
--3648 3043
-6452 -5080
-9425 -1416
-1849 -6011
--3354 3729
-9242 2399
-7034 -4636
--203 7125
--2773 4706
--990 -3918
--3909 1572
-6092 -5319
-1612 -5908
-6551 -5011
-7885 -3815
--1357 -3546
-1879 7968
-5749 -5520
--3835 872
-9738 90
-5811 6596
-8732 3362
--3327 3781
-8027 -3659
--3787 2532
-9660 -553
--943 -3964
--3700 205
-7273 -4429
-9431 1887
-5366 -5729
-1845 7961
-7593 -4118
-8745 3341
-3355 7970
-1972 7987
--1207 6404
-138 7322
-2296 8040
--2058 5583
-8085 4287
--3433 -590
-9411 1948
-5705 -5545
-9491 -1225
-9506 1639
--3901 1469
-6673 -4923
-8490 -3090
--1947 -2898
--1516 6130
-8834 -2589
--3300 3832
-819 -5423
--2640 -1996
-1878 -6023
-3523 7929
-5306 -5758
-3873 7821
--3138 4132
-9630 -696
-6524 -5030
--2306 5306
--530 6913
--1649 6001
-6005 6433
-6058 -5340
--2839 -1699
--2552 5006
--3164 -1140
--496 6936
-9678 -459
-3114 8021
--3910 1700
--811 6717
--625 6848
-2234 -6143
--3429 3582
-9605 1221
-9614 1175
-4714 7390
--1130 6467
--3792 2511
-3217 -6299
--3712 250
--1714 -3168
-1262 7811
-5757 6639
-4278 7644
--1355 6280
-6770 5732
-5480 -5670
-7999 -3690
--3584 -180
-3655 7893
-9493 -1218
-197 7355
-2610 8067
--3739 365
--3199 -1074
-1387 7849
--3842 922
-9659 -558
--2663 4858
--3709 2833
-9358 -1587
-7225 5271
--3811 2428
-4565 -6043
-1211 7795
--1551 -3342
-7866 4556
--788 -4114
-7951 -3743
-3691 -6250
-2029 -6081
-319 7423
-9325 -1665
--3260 3907
--3851 989
-7007 5497
-9127 -2064
-2591 8066
-414 -5131
-8201 -3460
-3664 -6254
--2497 -2198
-2855 8054
-7184 5314
-4642 7437
-870 7677
-1418 -5807
--2430 5160
-4215 7676
-9619 -743
-8280 4027
--3404 -656
-3271 -6296
-8945 2993
-4154 7704
-6693 5807
-6834 -4798
--3107 -1245
--1278 6345
--1044 -3865
--3007 4357
--2724 4774
-730 7619
-9729 -75
-9536 -1065
-9154 -2013
-1113 -5622
-6571 5924
--2822 4637
--3752 422
-5489 6843
--3884 2022
--3026 4326
-2304 -6161
-1784 -5984
-3364 -6289
-7592 -4119
-6404 -5113
-5583 6773
-4985 -5898
-9556 -991
-5916 -5424
--3560 -251
--469 -4410
-6439 -5089
--2675 -1945
-4896 7268
-8934 3013
--3911 1678
-6030 -5357
-1561 7895
--3618 -76
-2079 8008
--3395 3649
--3736 352
-2846 -6272
--2853 4593
--3908 1556
-5648 6724
-5328 6961
-2863 -6274
-9585 -881
--273 7082
-7709 -4000
-4031 7757
-5524 6817
--2258 -2519
-1361 -5775
-3236 -6298
-8898 3078
--945 6615
-9614 -764
-8853 -2558
-3978 7779
--3815 747
-8257 -3392
-5317 6969
-3798 7849
-1268 -5721
-7159 5340
-9728 -87
--448 -4429
--3090 4217
--3704 2851
-3784 -6233
-2012 -6075
-9733 237
-2745 8063
-9087 -2139
-5461 -5680
-366 7448
--3882 2037
-9669 846
-4377 -6098
--2682 4832
--3370 3698
-9579 1346
-9691 667
-9016 2861
-8543 3653
--3388 -691
-6666 5833
-3473 -6279
--1180 -3729
-1183 7786
-4266 -6127
--89 7192
-8888 -2499
--1727 -3154
--726 -4173
-1744 -5967
-7137 -4550
-2145 -6117
-1549 -5876
-7920 -3777
--3725 2774
-5
-0 0
-0 40
-10 55
-20 40
-20 0
-1000
-29 9998
-29 -9998
--29 9998
--29 -9998
-9998 29
-9998 -29
--9998 29
--9998 -29
-59 9998
-59 -9998
--59 9998
--59 -9998
-9998 59
-9998 -59
--9998 59
--9998 -59
-89 9998
-89 -9998
--89 9998
--89 -9998
-9998 89
-9998 -89
--9998 89
--9998 -89
-119 9998
-119 -9998
--119 9998
--119 -9998
-9998 119
-9998 -119
--9998 119
--9998 -119
-149 9997
-149 -9997
--149 9997
--149 -9997
-9997 149
-9997 -149
--9997 149
--9997 -149
-179 9997
-179 -9997
--179 9997
--179 -9997
-9997 179
-9997 -179
--9997 179
--9997 -179
-209 9996
-209 -9996
--209 9996
--209 -9996
-9996 209
-9996 -209
--9996 209
--9996 -209
-239 9996
-239 -9996
--239 9996
--239 -9996
-9996 239
-9996 -239
--9996 239
--9996 -239
-269 9995
-269 -9995
--269 9995
--269 -9995
-9995 269
-9995 -269
--9995 269
--9995 -269
-299 9994
-299 -9994
--299 9994
--299 -9994
-9994 299
-9994 -299
--9994 299
--9994 -299
-329 9993
-329 -9993
--329 9993
--329 -9993
-9993 329
-9993 -329
--9993 329
--9993 -329
-359 9992
-359 -9992
--359 9992
--359 -9992
-9992 359
-9992 -359
--9992 359
--9992 -359
-389 9991
-389 -9991
--389 9991
--389 -9991
-9991 389
-9991 -389
--9991 389
--9991 -389
-419 9990
-419 -9990
--419 9990
--419 -9990
-9990 419
-9990 -419
--9990 419
--9990 -419
-449 9988
-449 -9988
--449 9988
--449 -9988
-9988 449
-9988 -449
--9988 449
--9988 -449
-479 9987
-479 -9987
--479 9987
--479 -9987
-9987 479
-9987 -479
--9987 479
--9987 -479
-509 9985
-509 -9985
--509 9985
--509 -9985
-9985 509
-9985 -509
--9985 509
--9985 -509
-539 9984
-539 -9984
--539 9984
--539 -9984
-9984 539
-9984 -539
--9984 539
--9984 -539
-569 9982
-569 -9982
--569 9982
--569 -9982
-9982 569
-9982 -569
--9982 569
--9982 -569
-599 9981
-599 -9981
--599 9981
--599 -9981
-9981 599
-9981 -599
--9981 599
--9981 -599
-629 9979
-629 -9979
--629 9979
--629 -9979
-9979 629
-9979 -629
--9979 629
--9979 -629
-659 9977
-659 -9977
--659 9977
--659 -9977
-9977 659
-9977 -659
--9977 659
--9977 -659
-689 9975
-689 -9975
--689 9975
--689 -9975
-9975 689
-9975 -689
--9975 689
--9975 -689
-719 9973
-719 -9973
--719 9973
--719 -9973
-9973 719
-9973 -719
--9973 719
--9973 -719
-749 9970
-749 -9970
--749 9970
--749 -9970
-9970 749
-9970 -749
--9970 749
--9970 -749
-779 9968
-779 -9968
--779 9968
--779 -9968
-9968 779
-9968 -779
--9968 779
--9968 -779
-809 9966
-809 -9966
--809 9966
--809 -9966
-9966 809
-9966 -809
--9966 809
--9966 -809
-838 9963
-838 -9963
--838 9963
--838 -9963
-9963 838
-9963 -838
--9963 838
--9963 -838
-868 9961
-868 -9961
--868 9961
--868 -9961
-9961 868
-9961 -868
--9961 868
--9961 -868
-898 9958
-898 -9958
--898 9958
--898 -9958
-9958 898
-9958 -898
--9958 898
--9958 -898
-928 9955
-928 -9955
--928 9955
--928 -9955
-9955 928
-9955 -928
--9955 928
--9955 -928
-958 9952
-958 -9952
--958 9952
--958 -9952
-9952 958
-9952 -958
--9952 958
--9952 -958
-988 9950
-988 -9950
--988 9950
--988 -9950
-9950 988
-9950 -988
--9950 988
--9950 -988
-1018 9947
-1018 -9947
--1018 9947
--1018 -9947
-9947 1018
-9947 -1018
--9947 1018
--9947 -1018
-1047 9943
-1047 -9943
--1047 9943
--1047 -9943
-9943 1047
-9943 -1047
--9943 1047
--9943 -1047
-1077 9940
-1077 -9940
--1077 9940
--1077 -9940
-9940 1077
-9940 -1077
--9940 1077
--9940 -1077
-1107 9937
-1107 -9937
--1107 9937
--1107 -9937
-9937 1107
-9937 -1107
--9937 1107
--9937 -1107
-1137 9934
-1137 -9934
--1137 9934
--1137 -9934
-9934 1137
-9934 -1137
--9934 1137
--9934 -1137
-1167 9930
-1167 -9930
--1167 9930
--1167 -9930
-9930 1167
-9930 -1167
--9930 1167
--9930 -1167
-1197 9927
-1197 -9927
--1197 9927
--1197 -9927
-9927 1197
-9927 -1197
--9927 1197
--9927 -1197
-1226 9923
-1226 -9923
--1226 9923
--1226 -9923
-9923 1226
-9923 -1226
--9923 1226
--9923 -1226
-1256 9919
-1256 -9919
--1256 9919
--1256 -9919
-9919 1256
-9919 -1256
--9919 1256
--9919 -1256
-1286 9915
-1286 -9915
--1286 9915
--1286 -9915
-9915 1286
-9915 -1286
--9915 1286
--9915 -1286
-1316 9912
-1316 -9912
--1316 9912
--1316 -9912
-9912 1316
-9912 -1316
--9912 1316
--9912 -1316
-1345 9908
-1345 -9908
--1345 9908
--1345 -9908
-9908 1345
-9908 -1345
--9908 1345
--9908 -1345
-1375 9903
-1375 -9903
--1375 9903
--1375 -9903
-9903 1375
-9903 -1375
--9903 1375
--9903 -1375
-1405 9899
-1405 -9899
--1405 9899
--1405 -9899
-9899 1405
-9899 -1405
--9899 1405
--9899 -1405
-1434 9895
-1434 -9895
--1434 9895
--1434 -9895
-9895 1434
-9895 -1434
--9895 1434
--9895 -1434
-1464 9891
-1464 -9891
--1464 9891
--1464 -9891
-9891 1464
-9891 -1464
--9891 1464
--9891 -1464
-1494 9886
-1494 -9886
--1494 9886
--1494 -9886
-9886 1494
-9886 -1494
--9886 1494
--9886 -1494
-1523 9882
-1523 -9882
--1523 9882
--1523 -9882
-9882 1523
-9882 -1523
--9882 1523
--9882 -1523
-1553 9877
-1553 -9877
--1553 9877
--1553 -9877
-9877 1553
-9877 -1553
--9877 1553
--9877 -1553
-1583 9872
-1583 -9872
--1583 9872
--1583 -9872
-9872 1583
-9872 -1583
--9872 1583
--9872 -1583
-1612 9868
-1612 -9868
--1612 9868
--1612 -9868
-9868 1612
-9868 -1612
--9868 1612
--9868 -1612
-1642 9863
-1642 -9863
--1642 9863
--1642 -9863
-9863 1642
-9863 -1642
--9863 1642
--9863 -1642
-1671 9858
-1671 -9858
--1671 9858
--1671 -9858
-9858 1671
-9858 -1671
--9858 1671
--9858 -1671
-1701 9853
-1701 -9853
--1701 9853
--1701 -9853
-9853 1701
-9853 -1701
--9853 1701
--9853 -1701
-1731 9848
-1731 -9848
--1731 9848
--1731 -9848
-9848 1731
-9848 -1731
--9848 1731
--9848 -1731
-1760 9842
-1760 -9842
--1760 9842
--1760 -9842
-9842 1760
-9842 -1760
--9842 1760
--9842 -1760
-1790 9837
-1790 -9837
--1790 9837
--1790 -9837
-9837 1790
-9837 -1790
--9837 1790
--9837 -1790
-1819 9832
-1819 -9832
--1819 9832
--1819 -9832
-9832 1819
-9832 -1819
--9832 1819
--9832 -1819
-1849 9826
-1849 -9826
--1849 9826
--1849 -9826
-9826 1849
-9826 -1849
--9826 1849
--9826 -1849
-1878 9820
-1878 -9820
--1878 9820
--1878 -9820
-9820 1878
-9820 -1878
--9820 1878
--9820 -1878
-1908 9815
-1908 -9815
--1908 9815
--1908 -9815
-9815 1908
-9815 -1908
--9815 1908
--9815 -1908
-1937 9809
-1937 -9809
--1937 9809
--1937 -9809
-9809 1937
-9809 -1937
--9809 1937
--9809 -1937
-1966 9803
-1966 -9803
--1966 9803
--1966 -9803
-9803 1966
-9803 -1966
--9803 1966
--9803 -1966
-1996 9797
-1996 -9797
--1996 9797
--1996 -9797
-9797 1996
-9797 -1996
--9797 1996
--9797 -1996
-2025 9791
-2025 -9791
--2025 9791
--2025 -9791
-9791 2025
-9791 -2025
--9791 2025
--9791 -2025
-2055 9785
-2055 -9785
--2055 9785
--2055 -9785
-9785 2055
-9785 -2055
--9785 2055
--9785 -2055
-2084 9779
-2084 -9779
--2084 9779
--2084 -9779
-9779 2084
-9779 -2084
--9779 2084
--9779 -2084
-2113 9773
-2113 -9773
--2113 9773
--2113 -9773
-9773 2113
-9773 -2113
--9773 2113
--9773 -2113
-2143 9766
-2143 -9766
--2143 9766
--2143 -9766
-9766 2143
-9766 -2143
--9766 2143
--9766 -2143
-2172 9760
-2172 -9760
--2172 9760
--2172 -9760
-9760 2172
-9760 -2172
--9760 2172
--9760 -2172
-2201 9753
-2201 -9753
--2201 9753
--2201 -9753
-9753 2201
-9753 -2201
--9753 2201
--9753 -2201
-2230 9746
-2230 -9746
--2230 9746
--2230 -9746
-9746 2230
-9746 -2230
--9746 2230
--9746 -2230
-2260 9740
-2260 -9740
--2260 9740
--2260 -9740
-9740 2260
-9740 -2260
--9740 2260
--9740 -2260
-2289 9733
-2289 -9733
--2289 9733
--2289 -9733
-9733 2289
-9733 -2289
--9733 2289
--9733 -2289
-2318 9726
-2318 -9726
--2318 9726
--2318 -9726
-9726 2318
-9726 -2318
--9726 2318
--9726 -2318
-2347 9719
-2347 -9719
--2347 9719
--2347 -9719
-9719 2347
-9719 -2347
--9719 2347
--9719 -2347
-2376 9712
-2376 -9712
--2376 9712
--2376 -9712
-9712 2376
-9712 -2376
--9712 2376
--9712 -2376
-2405 9705
-2405 -9705
--2405 9705
--2405 -9705
-9705 2405
-9705 -2405
--9705 2405
--9705 -2405
-2435 9697
-2435 -9697
--2435 9697
--2435 -9697
-9697 2435
-9697 -2435
--9697 2435
--9697 -2435
-2464 9690
-2464 -9690
--2464 9690
--2464 -9690
-9690 2464
-9690 -2464
--9690 2464
--9690 -2464
-2493 9683
-2493 -9683
--2493 9683
--2493 -9683
-9683 2493
-9683 -2493
--9683 2493
--9683 -2493
-2522 9675
-2522 -9675
--2522 9675
--2522 -9675
-9675 2522
-9675 -2522
--9675 2522
--9675 -2522
-2551 9668
-2551 -9668
--2551 9668
--2551 -9668
-9668 2551
-9668 -2551
--9668 2551
--9668 -2551
-2580 9660
-2580 -9660
--2580 9660
--2580 -9660
-9660 2580
-9660 -2580
--9660 2580
--9660 -2580
-2609 9652
-2609 -9652
--2609 9652
--2609 -9652
-9652 2609
-9652 -2609
--9652 2609
--9652 -2609
-2638 9644
-2638 -9644
--2638 9644
--2638 -9644
-9644 2638
-9644 -2638
--9644 2638
--9644 -2638
-2667 9636
-2667 -9636
--2667 9636
--2667 -9636
-9636 2667
-9636 -2667
--9636 2667
--9636 -2667
-2695 9628
-2695 -9628
--2695 9628
--2695 -9628
-9628 2695
-9628 -2695
--9628 2695
--9628 -2695
-2724 9620
-2724 -9620
--2724 9620
--2724 -9620
-9620 2724
-9620 -2724
--9620 2724
--9620 -2724
-2753 9612
-2753 -9612
--2753 9612
--2753 -9612
-9612 2753
-9612 -2753
--9612 2753
--9612 -2753
-2782 9604
-2782 -9604
--2782 9604
--2782 -9604
-9604 2782
-9604 -2782
--9604 2782
--9604 -2782
-2811 9595
-2811 -9595
--2811 9595
--2811 -9595
-9595 2811
-9595 -2811
--9595 2811
--9595 -2811
-2840 9587
-2840 -9587
--2840 9587
--2840 -9587
-9587 2840
-9587 -2840
--9587 2840
--9587 -2840
-2868 9578
-2868 -9578
--2868 9578
--2868 -9578
-9578 2868
-9578 -2868
--9578 2868
--9578 -2868
-2897 9569
-2897 -9569
--2897 9569
--2897 -9569
-9569 2897
-9569 -2897
--9569 2897
--9569 -2897
-2926 9561
-2926 -9561
--2926 9561
--2926 -9561
-9561 2926
-9561 -2926
--9561 2926
--9561 -2926
-2954 9552
-2954 -9552
--2954 9552
--2954 -9552
-9552 2954
-9552 -2954
--9552 2954
--9552 -2954
-2983 9543
-2983 -9543
--2983 9543
--2983 -9543
-9543 2983
-9543 -2983
--9543 2983
--9543 -2983
-3012 9534
-3012 -9534
--3012 9534
--3012 -9534
-9534 3012
-9534 -3012
--9534 3012
--9534 -3012
-3040 9525
-3040 -9525
--3040 9525
--3040 -9525
-9525 3040
-9525 -3040
--9525 3040
--9525 -3040
-3069 9516
-3069 -9516
--3069 9516
--3069 -9516
-9516 3069
-9516 -3069
--9516 3069
--9516 -3069
-3097 9507
-3097 -9507
--3097 9507
--3097 -9507
-9507 3097
-9507 -3097
--9507 3097
--9507 -3097
-3126 9497
-3126 -9497
--3126 9497
--3126 -9497
-9497 3126
-9497 -3126
--9497 3126
--9497 -3126
-3154 9488
-3154 -9488
--3154 9488
--3154 -9488
-9488 3154
-9488 -3154
--9488 3154
--9488 -3154
-3183 9478
-3183 -9478
--3183 9478
--3183 -9478
-9478 3183
-9478 -3183
--9478 3183
--9478 -3183
-3211 9469
-3211 -9469
--3211 9469
--3211 -9469
-9469 3211
-9469 -3211
--9469 3211
--9469 -3211
-3240 9459
-3240 -9459
--3240 9459
--3240 -9459
-9459 3240
-9459 -3240
--9459 3240
--9459 -3240
-3268 9449
-3268 -9449
--3268 9449
--3268 -9449
-9449 3268
-9449 -3268
--9449 3268
--9449 -3268
-3296 9439
-3296 -9439
--3296 9439
--3296 -9439
-9439 3296
-9439 -3296
--9439 3296
--9439 -3296
-3325 9429
-3325 -9429
--3325 9429
--3325 -9429
-9429 3325
-9429 -3325
--9429 3325
--9429 -3325
-3353 9419
-3353 -9419
--3353 9419
--3353 -9419
-9419 3353
-9419 -3353
--9419 3353
--9419 -3353
-3381 9409
-3381 -9409
--3381 9409
--3381 -9409
-9409 3381
-9409 -3381
--9409 3381
--9409 -3381
-3409 9399
-3409 -9399
--3409 9399
--3409 -9399
-9399 3409
-9399 -3409
--9399 3409
--9399 -3409
-3438 9389
-3438 -9389
--3438 9389
--3438 -9389
-9389 3438
-9389 -3438
--9389 3438
--9389 -3438
-3466 9378
-3466 -9378
--3466 9378
--3466 -9378
-9378 3466
-9378 -3466
--9378 3466
--9378 -3466
-3494 9368
-3494 -9368
--3494 9368
--3494 -9368
-9368 3494
-9368 -3494
--9368 3494
--9368 -3494
-3522 9358
-3522 -9358
--3522 9358
--3522 -9358
-9358 3522
-9358 -3522
--9358 3522
--9358 -3522
-3550 9347
-3550 -9347
--3550 9347
--3550 -9347
-9347 3550
-9347 -3550
--9347 3550
--9347 -3550
-3578 9336
-3578 -9336
--3578 9336
--3578 -9336
-9336 3578
-9336 -3578
--9336 3578
--9336 -3578
-3606 9325
-3606 -9325
--3606 9325
--3606 -9325
-9325 3606
-9325 -3606
--9325 3606
--9325 -3606
-3634 9315
-3634 -9315
--3634 9315
--3634 -9315
-9315 3634
-9315 -3634
--9315 3634
--9315 -3634
-7072 7072
-7072 -7072
--7072 7072
--7072 -7072
-0 9999
-0 -9999
-9999 0
--9999 0
-1000
-4846 8746
-4846 -8746
--4846 8746
--4846 -8746
-8746 4846
-8746 -4846
--8746 4846
--8746 -4846
-4899 8717
-4899 -8717
--4899 8717
--4899 -8717
-8717 4899
-8717 -4899
--8717 4899
--8717 -4899
-4951 8688
-4951 -8688
--4951 8688
--4951 -8688
-8688 4951
-8688 -4951
--8688 4951
--8688 -4951
-5003 8658
-5003 -8658
--5003 8658
--5003 -8658
-8658 5003
-8658 -5003
--8658 5003
--8658 -5003
-5055 8628
-5055 -8628
--5055 8628
--5055 -8628
-8628 5055
-8628 -5055
--8628 5055
--8628 -5055
-5107 8597
-5107 -8597
--5107 8597
--5107 -8597
-8597 5107
-8597 -5107
--8597 5107
--8597 -5107
-5158 8566
-5158 -8566
--5158 8566
--5158 -8566
-8566 5158
-8566 -5158
--8566 5158
--8566 -5158
-5209 8535
-5209 -8535
--5209 8535
--5209 -8535
-8535 5209
-8535 -5209
--8535 5209
--8535 -5209
-5260 8504
-5260 -8504
--5260 8504
--5260 -8504
-8504 5260
-8504 -5260
--8504 5260
--8504 -5260
-5311 8472
-5311 -8472
--5311 8472
--5311 -8472
-8472 5311
-8472 -5311
--8472 5311
--8472 -5311
-5362 8440
-5362 -8440
--5362 8440
--5362 -8440
-8440 5362
-8440 -5362
--8440 5362
--8440 -5362
-5413 8408
-5413 -8408
--5413 8408
--5413 -8408
-8408 5413
-8408 -5413
--8408 5413
--8408 -5413
-5463 8375
-5463 -8375
--5463 8375
--5463 -8375
-8375 5463
-8375 -5463
--8375 5463
--8375 -5463
-5513 8342
-5513 -8342
--5513 8342
--5513 -8342
-8342 5513
-8342 -5513
--8342 5513
--8342 -5513
-5563 8309
-5563 -8309
--5563 8309
--5563 -8309
-8309 5563
-8309 -5563
--8309 5563
--8309 -5563
-5613 8275
-5613 -8275
--5613 8275
--5613 -8275
-8275 5613
-8275 -5613
--8275 5613
--8275 -5613
-5662 8242
-5662 -8242
--5662 8242
--5662 -8242
-8242 5662
-8242 -5662
--8242 5662
--8242 -5662
-5712 8207
-5712 -8207
--5712 8207
--5712 -8207
-8207 5712
-8207 -5712
--8207 5712
--8207 -5712
-5761 8173
-5761 -8173
--5761 8173
--5761 -8173
-8173 5761
-8173 -5761
--8173 5761
--8173 -5761
-5810 8138
-5810 -8138
--5810 8138
--5810 -8138
-8138 5810
-8138 -5810
--8138 5810
--8138 -5810
-5859 8103
-5859 -8103
--5859 8103
--5859 -8103
-8103 5859
-8103 -5859
--8103 5859
--8103 -5859
-5907 8068
-5907 -8068
--5907 8068
--5907 -8068
-8068 5907
-8068 -5907
--8068 5907
--8068 -5907
-5955 8032
-5955 -8032
--5955 8032
--5955 -8032
-8032 5955
-8032 -5955
--8032 5955
--8032 -5955
-6003 7997
-6003 -7997
--6003 7997
--6003 -7997
-7997 6003
-7997 -6003
--7997 6003
--7997 -6003
-6051 7960
-6051 -7960
--6051 7960
--6051 -7960
-7960 6051
-7960 -6051
--7960 6051
--7960 -6051
-6099 7924
-6099 -7924
--6099 7924
--6099 -7924
-7924 6099
-7924 -6099
--7924 6099
--7924 -6099
-6146 7887
-6146 -7887
--6146 7887
--6146 -7887
-7887 6146
-7887 -6146
--7887 6146
--7887 -6146
-6194 7850
-6194 -7850
--6194 7850
--6194 -7850
-7850 6194
-7850 -6194
--7850 6194
--7850 -6194
-6241 7813
-6241 -7813
--6241 7813
--6241 -7813
-7813 6241
-7813 -6241
--7813 6241
--7813 -6241
-6287 7775
-6287 -7775
--6287 7775
--6287 -7775
-7775 6287
-7775 -6287
--7775 6287
--7775 -6287
-6334 7737
-6334 -7737
--6334 7737
--6334 -7737
-7737 6334
-7737 -6334
--7737 6334
--7737 -6334
-6380 7699
-6380 -7699
--6380 7699
--6380 -7699
-7699 6380
-7699 -6380
--7699 6380
--7699 -6380
-6426 7661
-6426 -7661
--6426 7661
--6426 -7661
-7661 6426
-7661 -6426
--7661 6426
--7661 -6426
-6472 7622
-6472 -7622
--6472 7622
--6472 -7622
-7622 6472
-7622 -6472
--7622 6472
--7622 -6472
-6518 7583
-6518 -7583
--6518 7583
--6518 -7583
-7583 6518
-7583 -6518
--7583 6518
--7583 -6518
-6563 7544
-6563 -7544
--6563 7544
--6563 -7544
-7544 6563
-7544 -6563
--7544 6563
--7544 -6563
-6608 7504
-6608 -7504
--6608 7504
--6608 -7504
-7504 6608
-7504 -6608
--7504 6608
--7504 -6608
-6653 7465
-6653 -7465
--6653 7465
--6653 -7465
-7465 6653
-7465 -6653
--7465 6653
--7465 -6653
-6698 7425
-6698 -7425
--6698 7425
--6698 -7425
-7425 6698
-7425 -6698
--7425 6698
--7425 -6698
-6742 7384
-6742 -7384
--6742 7384
--6742 -7384
-7384 6742
-7384 -6742
--7384 6742
--7384 -6742
-6787 7344
-6787 -7344
--6787 7344
--6787 -7344
-7344 6787
-7344 -6787
--7344 6787
--7344 -6787
-6831 7303
-6831 -7303
--6831 7303
--6831 -7303
-7303 6831
-7303 -6831
--7303 6831
--7303 -6831
-6874 7262
-6874 -7262
--6874 7262
--6874 -7262
-7262 6874
-7262 -6874
--7262 6874
--7262 -6874
-6918 7220
-6918 -7220
--6918 7220
--6918 -7220
-7220 6918
-7220 -6918
--7220 6918
--7220 -6918
-6961 7179
-6961 -7179
--6961 7179
--6961 -7179
-7179 6961
-7179 -6961
--7179 6961
--7179 -6961
-7004 7137
-7004 -7137
--7004 7137
--7004 -7137
-7137 7004
-7137 -7004
--7137 7004
--7137 -7004
-7046 7095
-7046 -7095
--7046 7095
--7046 -7095
-7095 7046
-7095 -7046
--7095 7046
--7095 -7046
-7089 7052
-7089 -7052
--7089 7052
--7089 -7052
-7052 7089
-7052 -7089
--7052 7089
--7052 -7089
-7131 7009
-7131 -7009
--7131 7009
--7131 -7009
-7009 7131
-7009 -7131
--7009 7131
--7009 -7131
-7173 6967
-7173 -6967
--7173 6967
--7173 -6967
-6967 7173
-6967 -7173
--6967 7173
--6967 -7173
-7215 6923
-7215 -6923
--7215 6923
--7215 -6923
-6923 7215
-6923 -7215
--6923 7215
--6923 -7215
-7256 6880
-7256 -6880
--7256 6880
--7256 -6880
-6880 7256
-6880 -7256
--6880 7256
--6880 -7256
-7297 6836
-7297 -6836
--7297 6836
--7297 -6836
-6836 7297
-6836 -7297
--6836 7297
--6836 -7297
-7338 6792
-7338 -6792
--7338 6792
--7338 -6792
-6792 7338
-6792 -7338
--6792 7338
--6792 -7338
-7379 6748
-7379 -6748
--7379 6748
--7379 -6748
-6748 7379
-6748 -7379
--6748 7379
--6748 -7379
-7419 6704
-7419 -6704
--7419 6704
--7419 -6704
-6704 7419
-6704 -7419
--6704 7419
--6704 -7419
-7459 6659
-7459 -6659
--7459 6659
--7459 -6659
-6659 7459
-6659 -7459
--6659 7459
--6659 -7459
-7499 6614
-7499 -6614
--7499 6614
--7499 -6614
-6614 7499
-6614 -7499
--6614 7499
--6614 -7499
-7539 6569
-7539 -6569
--7539 6569
--7539 -6569
-6569 7539
-6569 -7539
--6569 7539
--6569 -7539
-7578 6524
-7578 -6524
--7578 6524
--7578 -6524
-6524 7578
-6524 -7578
--6524 7578
--6524 -7578
-7617 6478
-7617 -6478
--7617 6478
--7617 -6478
-6478 7617
-6478 -7617
--6478 7617
--6478 -7617
-7656 6432
-7656 -6432
--7656 6432
--7656 -6432
-6432 7656
-6432 -7656
--6432 7656
--6432 -7656
-7694 6386
-7694 -6386
--7694 6386
--7694 -6386
-6386 7694
-6386 -7694
--6386 7694
--6386 -7694
-7732 6340
-7732 -6340
--7732 6340
--7732 -6340
-6340 7732
-6340 -7732
--6340 7732
--6340 -7732
-7770 6294
-7770 -6294
--7770 6294
--7770 -6294
-6294 7770
-6294 -7770
--6294 7770
--6294 -7770
-7808 6247
-7808 -6247
--7808 6247
--7808 -6247
-6247 7808
-6247 -7808
--6247 7808
--6247 -7808
-7845 6200
-7845 -6200
--7845 6200
--7845 -6200
-6200 7845
-6200 -7845
--6200 7845
--6200 -7845
-7882 6153
-7882 -6153
--7882 6153
--7882 -6153
-6153 7882
-6153 -7882
--6153 7882
--6153 -7882
-7919 6105
-7919 -6105
--7919 6105
--7919 -6105
-6105 7919
-6105 -7919
--6105 7919
--6105 -7919
-7956 6058
-7956 -6058
--7956 6058
--7956 -6058
-6058 7956
-6058 -7956
--6058 7956
--6058 -7956
-7992 6010
-7992 -6010
--7992 6010
--7992 -6010
-6010 7992
-6010 -7992
--6010 7992
--6010 -7992
-8028 5962
-8028 -5962
--8028 5962
--8028 -5962
-5962 8028
-5962 -8028
--5962 8028
--5962 -8028
-8063 5914
-8063 -5914
--8063 5914
--8063 -5914
-5914 8063
-5914 -8063
--5914 8063
--5914 -8063
-8099 5865
-8099 -5865
--8099 5865
--8099 -5865
-5865 8099
-5865 -8099
--5865 8099
--5865 -8099
-8134 5816
-8134 -5816
--8134 5816
--8134 -5816
-5816 8134
-5816 -8134
--5816 8134
--5816 -8134
-8168 5767
-8168 -5767
--8168 5767
--8168 -5767
-5767 8168
-5767 -8168
--5767 8168
--5767 -8168
-8203 5718
-8203 -5718
--8203 5718
--8203 -5718
-5718 8203
-5718 -8203
--5718 8203
--5718 -8203
-8237 5669
-8237 -5669
--8237 5669
--8237 -5669
-5669 8237
-5669 -8237
--5669 8237
--5669 -8237
-8271 5619
-8271 -5619
--8271 5619
--8271 -5619
-5619 8271
-5619 -8271
--5619 8271
--5619 -8271
-8304 5570
-8304 -5570
--8304 5570
--8304 -5570
-5570 8304
-5570 -8304
--5570 8304
--5570 -8304
-8338 5520
-8338 -5520
--8338 5520
--8338 -5520
-5520 8338
-5520 -8338
--5520 8338
--5520 -8338
-8371 5470
-8371 -5470
--8371 5470
--8371 -5470
-5470 8371
-5470 -8371
--5470 8371
--5470 -8371
-8403 5419
-8403 -5419
--8403 5419
--8403 -5419
-5419 8403
-5419 -8403
--5419 8403
--5419 -8403
-8436 5369
-8436 -5369
--8436 5369
--8436 -5369
-5369 8436
-5369 -8436
--5369 8436
--5369 -8436
-8468 5318
-8468 -5318
--8468 5318
--8468 -5318
-5318 8468
-5318 -8468
--5318 8468
--5318 -8468
-8500 5267
-8500 -5267
--8500 5267
--8500 -5267
-5267 8500
-5267 -8500
--5267 8500
--5267 -8500
-8531 5216
-8531 -5216
--8531 5216
--8531 -5216
-5216 8531
-5216 -8531
--5216 8531
--5216 -8531
-8562 5165
-8562 -5165
--8562 5165
--8562 -5165
-5165 8562
-5165 -8562
--5165 8562
--5165 -8562
-8593 5113
-8593 -5113
--8593 5113
--8593 -5113
-5113 8593
-5113 -8593
--5113 8593
--5113 -8593
-8624 5062
-8624 -5062
--8624 5062
--8624 -5062
-5062 8624
-5062 -8624
--5062 8624
--5062 -8624
-8654 5010
-8654 -5010
--8654 5010
--8654 -5010
-5010 8654
-5010 -8654
--5010 8654
--5010 -8654
-8684 4958
-8684 -4958
--8684 4958
--8684 -4958
-4958 8684
-4958 -8684
--4958 8684
--4958 -8684
-8713 4906
-8713 -4906
--8713 4906
--8713 -4906
-4906 8713
-4906 -8713
--4906 8713
--4906 -8713
-8743 4853
-8743 -4853
--8743 4853
--8743 -4853
-4853 8743
-4853 -8743
--4853 8743
--4853 -8743
-8772 4801
-8772 -4801
--8772 4801
--8772 -4801
-4801 8772
-4801 -8772
--4801 8772
--4801 -8772
-8800 4748
-8800 -4748
--8800 4748
--8800 -4748
-4748 8800
-4748 -8800
--4748 8800
--4748 -8800
-8828 4695
-8828 -4695
--8828 4695
--8828 -4695
-4695 8828
-4695 -8828
--4695 8828
--4695 -8828
-8857 4642
-8857 -4642
--8857 4642
--8857 -4642
-4642 8857
-4642 -8857
--4642 8857
--4642 -8857
-8884 4589
-8884 -4589
--8884 4589
--8884 -4589
-4589 8884
-4589 -8884
--4589 8884
--4589 -8884
-8912 4535
-8912 -4535
--8912 4535
--8912 -4535
-4535 8912
-4535 -8912
--4535 8912
--4535 -8912
-8939 4482
-8939 -4482
--8939 4482
--8939 -4482
-4482 8939
-4482 -8939
--4482 8939
--4482 -8939
-8965 4428
-8965 -4428
--8965 4428
--8965 -4428
-4428 8965
-4428 -8965
--4428 8965
--4428 -8965
-8992 4374
-8992 -4374
--8992 4374
--8992 -4374
-4374 8992
-4374 -8992
--4374 8992
--4374 -8992
-9018 4320
-9018 -4320
--9018 4320
--9018 -4320
-4320 9018
-4320 -9018
--4320 9018
--4320 -9018
-9044 4266
-9044 -4266
--9044 4266
--9044 -4266
-4266 9044
-4266 -9044
--4266 9044
--4266 -9044
-9069 4212
-9069 -4212
--9069 4212
--9069 -4212
-4212 9069
-4212 -9069
--4212 9069
--4212 -9069
-9094 4157
-9094 -4157
--9094 4157
--9094 -4157
-4157 9094
-4157 -9094
--4157 9094
--4157 -9094
-9119 4103
-9119 -4103
--9119 4103
--9119 -4103
-4103 9119
-4103 -9119
--4103 9119
--4103 -9119
-9143 4048
-9143 -4048
--9143 4048
--9143 -4048
-4048 9143
-4048 -9143
--4048 9143
--4048 -9143
-9168 3993
-9168 -3993
--9168 3993
--9168 -3993
-3993 9168
-3993 -9168
--3993 9168
--3993 -9168
-9191 3938
-9191 -3938
--9191 3938
--9191 -3938
-3938 9191
-3938 -9191
--3938 9191
--3938 -9191
-9215 3883
-9215 -3883
--9215 3883
--9215 -3883
-3883 9215
-3883 -9215
--3883 9215
--3883 -9215
-9238 3827
-9238 -3827
--9238 3827
--9238 -3827
-3827 9238
-3827 -9238
--3827 9238
--3827 -9238
-9261 3772
-9261 -3772
--9261 3772
--9261 -3772
-3772 9261
-3772 -9261
--3772 9261
--3772 -9261
-9283 3716
-9283 -3716
--9283 3716
--9283 -3716
-3716 9283
-3716 -9283
--3716 9283
--3716 -9283
-9305 3660
-9305 -3660
--9305 3660
--9305 -3660
-3660 9305
-3660 -9305
--3660 9305
--3660 -9305
-9327 3604
-9327 -3604
--9327 3604
--9327 -3604
-3604 9327
-3604 -9327
--3604 9327
--3604 -9327
-9349 3548
-9349 -3548
--9349 3548
--9349 -3548
-3548 9349
-3548 -9349
--3548 9349
--3548 -9349
-9370 3492
-9370 -3492
--9370 3492
--9370 -3492
-3492 9370
-3492 -9370
--3492 9370
--3492 -9370
-9390 3436
-9390 -3436
--9390 3436
--9390 -3436
-3436 9390
-3436 -9390
--3436 9390
--3436 -9390
-9411 3380
-9411 -3380
--9411 3380
--9411 -3380
-3380 9411
-3380 -9411
--3380 9411
--3380 -9411
-9431 3323
-9431 -3323
--9431 3323
--9431 -3323
-3323 9431
-3323 -9431
--3323 9431
--3323 -9431
-9451 3266
-9451 -3266
--9451 3266
--9451 -3266
-3266 9451
-3266 -9451
--3266 9451
--3266 -9451
-9470 3210
-9470 -3210
--9470 3210
--9470 -3210
-3210 9470
-3210 -9470
--3210 9470
--3210 -9470
-9489 3153
-9489 -3153
--9489 3153
--9489 -3153
-3153 9489
-3153 -9489
--3153 9489
--3153 -9489
-3
-0 0
-16 0
-32 0
-3
-0 0
-48 32
-80 0
-4
-0 64
-64 64
-64 0
-0 0
-16
-0 0
-0 16
-16 16
-32 16
-32 0
-16 0
-48 16
-48 0
-48 32
-32 32
-16 32
-0 32
-0 48
-16 48
-32 48
-48 48
-5
--16 0
-16 16
-16 -16
--16 16
--16 -16
-1000
-10000 -2356
-6981 8859
-4409 8531
-1844 597
-9041 -5238
--8290 -3149
--9627 -1520
-455 1157
--1073 -3309
--966 3328
--6731 24
--8126 -539
--1743 2912
--6093 9130
--1938 1366
--263 3166
-3283 -5063
-8558 -7537
--2638 2217
-3064 -8687
-5300 -6476
-6443 5934
-4732 -6494
-7942 -5703
-4580 -5352
-7915 2582
--485 4105
--788 -8836
--5959 -5535
--1092 1619
-8938 5815
--1673 1810
-1470 9362
-6365 -2360
-4518 -9353
--6214 1857
--3913 -6531
--862 -8172
--1790 7972
-4850 3006
-2689 594
-3486 -6902
--4102 -5843
-9809 5974
--6307 3577
-6097 1871
--8305 2948
--3872 -5661
-2697 -5722
-122 -6460
--6746 -396
-7179 -8743
--4643 9258
-3667 8035
-2129 -3035
-6753 -2581
--7041 -4329
--1898 -3433
--5005 -2829
-217 871
--5077 9715
--4362 8931
--9687 -7875
-8761 3487
-3188 2596
--6175 -6817
-4922 5745
-833 -9288
-6121 3428
-691 3962
-6958 -352
--223 2408
-157 -7304
-8118 -5713
--4855 -1835
--6863 -5380
-5392 8940
--1821 -9211
-2434 5
--8328 7549
-5325 5643
--4616 2599
--4670 6746
-974 -5370
--1299 1436
-2413 -3988
--9673 2294
-8716 1245
--1519 -5931
-3451 -3237
-8187 7463
-8558 -3637
--4432 7383
-889 -5394
-8264 3586
--4732 9755
--1698 -2453
--2198 7626
--2742 1617
-9202 -8063
-7409 3129
-2130 -2538
-6277 -525
--979 -3395
--2803 1444
-2700 -8453
--2180 2701
--7915 4903
-3774 3929
-6880 -3379
-5956 1236
-3597 -3295
--4532 -7664
--7558 2124
-6621 -2276
--219 1283
--4378 4412
--3399 -2353
--8012 -8110
-2212 537
--8101 -2606
--5886 7968
-4403 -6344
--8013 -58
--2332 -2165
-8125 884
-4424 9458
-6965 937
-5948 8054
--953 -4275
--3133 3108
-1726 8051
--6180 3158
-6748 3714
--2466 3783
-7750 -9014
--8952 -7199
-8252 -7042
--4327 -9437
--2688 5482
--7329 -8940
-6855 144
-4896 -4797
--7870 -8721
-5867 -5018
--8670 5009
-30 -5631
-5342 -9715
--2928 3831
--1063 6780
-3323 9346
-6925 1807
-295 -6902
--9919 -4933
--2416 8494
-2009 1022
-6660 9126
--5914 -9506
--7875 -8722
--889 2505
-8576 -8946
-1362 1449
-2489 1667
--6629 -7899
-5782 -7464
--1377 3526
--1169 1197
--1890 8197
--439 -420
-3590 2410
-2333 5430
--8516 3194
--5833 -6960
-744 -1165
--8388 -9267
--4283 4087
--6892 297
-799 8068
-3095 8574
-2361 4403
--9632 2566
-1242 -4354
-7637 311
--8081 9358
--8700 -8992
--4389 -2833
-3328 6889
--3847 6121
--1648 3596
-1590 -379
--5737 8116
-3425 -6152
-6127 -3356
-6433 -5055
-2728 -317
--8110 -5458
-2775 2917
-247 -6818
--9988 -8290
--1339 8116
-3677 5110
--8254 -6334
-9893 -2904
--2966 2901
--264 -7717
-1205 7157
--6979 9945
-9521 -2022
-311 392
--8979 -9848
--448 84
-793 7499
--3983 -5655
--4990 2424
-8408 -1548
--6207 3824
-8304 -9553
-3441 -3189
-9515 6564
-7330 6232
-7247 -6424
--8704 7255
--8910 5394
--6609 3069
-5482 -3536
-3036 -9868
--2348 -1526
-9470 -647
-1163 -19
-3077 687
--5632 -3364
--5963 609
-6134 8540
--7108 18
-7019 -9025
--1976 5395
-9070 2425
-872 2301
--897 2310
--4262 7122
-3406 -6149
--2380 8147
-536 -2480
-7111 9066
-1837 9658
--1116 -8560
--1320 900
-366 3041
-4293 -7729
--3333 3828
--3777 -3189
-6492 -5821
--463 -5553
-9107 7879
--9758 -2325
-4827 2514
--2794 -8294
--963 -1745
--2375 5223
-5697 -3122
-4240 -4193
--6885 3868
--6812 -6745
--4280 5712
-6177 3699
--1408 9632
-9292 4778
--9208 3183
--7677 -7018
--6872 7919
-1629 2971
-9856 3006
--4889 9579
-4282 -2083
--8682 -625
--4580 9436
-3334 5003
-1094 8114
-819 -84
--823 9449
--2516 7393
-9443 6896
-2839 3988
--7400 3297
-980 4093
--8457 -9805
-7019 4107
--369 6058
-6930 -6229
--1706 2816
--2454 -349
-1302 -4451
-7801 9694
-6296 2535
--1348 -3884
-7067 8568
-7843 -5741
--9563 3045
-2457 -2932
--2349 2831
--4254 3900
--2005 -7106
--8389 -6629
-8789 6992
-2014 7144
--3419 6315
--1387 -9761
-5277 5765
--2836 5186
--8545 8251
--4213 6709
--8727 -5801
--9997 8080
-3478 4093
-4599 -1613
--5416 -2069
-7554 -7765
-9324 -1415
--2975 6750
--2678 -9928
--8350 -9436
--2717 1397
--9514 -7786
-771 -3755
-9383 8705
--7552 -4995
-1869 5062
-8514 -6279
--1300 -4924
-1486 8650
-1480 4573
--7898 -3766
--6483 -7901
-6368 3053
--272 6006
--4441 8097
-3583 1600
-1827 154
--2919 3651
-2846 9062
--8174 -8232
-5958 2691
-2229 27
--8887 1904
-5820 -5179
--5439 7026
-5128 6635
-5414 -293
--947 -6129
-8085 -8103
-1764 1490
--6624 1632
-7071 -5943
-9052 -8041
--9712 -2299
-9978 -8074
-1976 -2808
-526 -4156
--1131 -9212
-8058 984
-3521 -4396
-9 -8383
-1159 7673
-5736 7245
-7376 4993
--865 -62
-3542 572
--7842 -3323
-9476 -5886
--1795 -3449
--9032 -4065
-1649 1178
--7179 7694
-7085 -5800
--6405 7847
-1710 8605
-2492 -1300
--7823 -129
-4825 -8516
-6392 3319
-4882 -1009
--739 4659
--972 8025
--9194 -9363
-4611 -3480
-2839 8220
-6993 -4473
-8369 -4590
--1378 5455
-5231 5006
-4928 -1012
--1027 1039
--1245 -6168
-7694 8522
--8450 5440
-7783 9388
--3037 1865
-4387 -715
--2396 3289
--8772 -9151
-6998 7411
-4349 9178
-6016 -3629
-5781 9606
-2169 -3008
-3323 5544
-4951 -6563
--3505 5025
--2747 -9244
-9602 -1810
-4379 -1972
--6695 -4589
-857 -9247
-1635 -5747
-7119 439
-6905 -9354
-1143 -1928
--3761 -9405
-577 -3405
--4816 -8811
--5277 -8140
-9139 -4696
-3569 1180
-9930 -816
--3635 5790
-6274 -7702
-8872 5213
--8164 -7982
--3214 8557
--6018 -1327
--3677 6645
--9262 -7674
--1962 -4075
-1853 3763
-9003 -4649
--2185 -9397
--1909 -3139
-3851 4033
-9644 1618
--5285 -8757
--8760 -8326
-4521 8930
--5758 -1360
-9548 6501
--9832 -4783
--9569 7572
--6733 6115
--2629 6846
-5526 3314
-1650 -1709
--5830 -3921
--5075 -5148
-1335 185
--3714 6607
--6158 -5077
-1890 -5106
--5019 -7947
--1736 7733
-7491 -414
--9222 3675
--8234 6733
--7792 -7540
--214 1761
--7653 -9651
--8554 -2987
-4140 -6794
--15 7773
-5588 -9439
-5002 -768
-8215 6636
-2468 1009
--9894 -162
-9216 9347
--71 -3044
-7138 737
--6816 -4261
-4186 1623
-8274 746
-1885 -7849
--1402 7365
--9228 3073
-3383 9740
--9054 6230
-1187 -3247
-7621 -9249
-1467 9177
-6817 1256
-2307 9459
-5003 2539
--325 -4172
--9327 8018
-7177 -1402
-379 -2069
--8353 -1957
--3559 6131
--3354 -9470
--526 8583
--8102 5075
--9571 -3449
--1555 -4497
--3832 2637
--5150 5889
--7273 -7275
-8205 5312
--7102 2534
--6140 8336
-3017 -9461
--5870 -5440
--9897 8630
-2785 7556
-6658 -2012
-527 719
--5509 -1925
-8479 -4308
--8579 -1155
-1429 -6343
--9006 9986
--14 -915
-6558 9889
--8016 -3851
-8280 2059
--8597 7705
--8648 854
--147 3300
--8557 -6858
-2696 -4734
--9474 -556
-2823 6026
-6131 816
--5818 -4918
-8300 -1073
--2083 -1890
--1571 -8032
-4298 -7896
--2339 5635
-7864 -4827
-7142 -3549
--626 -8622
--3232 -358
--7239 -7385
--3623 -4070
-3912 -3225
--7980 -4068
-7591 7745
--1915 7282
-1660 -5997
--3267 6921
-2214 -6573
-6170 -3858
--787 -3407
-9844 -9423
-4498 -5772
-656 4438
--3189 3323
--5483 7320
-8007 -499
-1555 -2601
-519 3629
--3404 9761
--6048 -818
--9 -4116
-5745 1957
--515 7468
--899 6588
-7483 1667
-500 -8448
--4252 -1440
-9710 876
-24 8841
--9446 -6842
--6366 -5663
--9551 380
--1581 7329
-7369 3827
--5333 -8035
-8399 -791
--4666 9710
--4566 -5183
--7104 -7591
--9757 -5698
-9509 3824
-8831 2595
-1694 1837
--8560 -9336
-7745 4453
-8751 8331
-454 -4807
--9378 1598
-3906 7569
--6730 6977
--2841 -3122
-6009 -9803
--6142 -8705
-6565 2495
-8253 -2708
--5627 -5361
--9052 -6771
-6286 9993
--3649 -4308
--3794 5595
-869 -2938
--8439 -6479
-2038 -298
-7061 1416
--8551 2999
-7249 9209
--250 1272
--2148 8668
-5732 3076
-6413 5845
-8713 8631
--5976 -4371
-7237 -3952
--2337 4673
--6293 4146
--4703 -8772
-3591 -2386
--1490 -7689
-5394 9213
--9430 6558
--8166 -4003
--7722 -2437
-5497 -5505
-4703 8696
-5302 -8551
-8213 8768
-7067 -728
-8695 1044
--3893 7704
-3114 4603
--1247 6812
--6326 -8435
--9951 2269
-8179 3530
-2613 -1462
-1357 9740
--9080 -6292
--3424 -2256
--1894 839
--7185 8946
-9985 7225
--707 9134
--7348 8628
-9254 -1398
--1932 4863
--2569 8361
-1223 2558
-4016 1959
--8887 8067
--436 -643
--4985 -3915
-4382 -4017
-1293 4304
-229 2395
--8635 4225
-9054 4238
--4922 25
--8949 9263
--5454 -7519
-9992 3662
--5453 547
-531 -4828
--686 5909
--6598 -9715
--6929 7492
--2696 4383
--1620 -411
-1730 1258
-1499 -1077
--2946 -4396
-6977 -4253
--3735 -8106
--6548 376
--7970 1163
-661 2865
-2271 -8744
-3578 -5474
-2524 -1902
--2057 4564
--3012 3962
-8092 -2625
--1269 3585
--8973 -9967
--6309 7674
--2609 3172
-3584 8187
-9468 2358
--277 -402
-2113 -9920
-7456 6894
-4664 2673
-2745 -9901
-5420 -6058
-6246 8559
--3852 -7402
-1655 -2895
-7804 -4426
--3226 -2903
-7949 3164
-4261 -6516
-4052 -3807
--5619 -6554
-6084 -5196
-8956 5955
--8373 7235
-1567 9353
--1323 1180
-5139 5383
--6608 7430
--3304 -6596
--5046 -154
--9788 8152
--115 8976
--6706 1048
-7842 2184
-7867 -968
--4803 -7226
--2953 -4749
-9903 9936
--6541 6749
-7686 5602
-5698 -3948
--9484 -6242
-3711 -7593
-7226 -3491
--6114 -1962
--5083 3283
-8063 -9589
--762 5176
-7152 3279
-3733 -2867
--1944 4344
-4428 -900
--8723 -8383
-272 4314
-4988 8008
--9998 701
--4154 -5270
-1584 -8882
--576 -5483
-9901 3616
-9427 8872
--1572 1199
-4929 5214
-1849 -7603
--5435 6435
--2919 1618
--9481 2177
--1705 -1152
--6592 2715
--9494 8558
-1794 7336
-9232 4463
-1616 -4448
--7547 2037
--1610 -6599
-8074 3276
-7792 -6534
-9330 -7141
--5471 3762
--3688 -9424
-9920 -3861
--2568 8802
-260 4026
--5103 1743
--7701 -1029
--7383 2792
--5605 9161
--191 -4989
--5364 4523
-8198 4288
--9314 1588
--3410 -2276
-1399 1530
--7958 -9008
-3175 -5989
--6579 -2109
--7443 7267
-2688 4639
-9788 355
--2351 -9217
--6042 6566
--7058 3053
--5930 5074
--4203 3174
-7069 -6011
-7416 7682
--9322 -4355
--4638 -4703
-3332 4434
--9622 8963
--1545 3677
-4118 -804
-3224 -792
-8325 3774
-1040 -1009
-259 3326
-9091 561
--985 -7471
--1868 6525
--4468 -2848
-5318 -205
-1684 5782
--2573 8589
-9661 -7048
--6444 -4624
--6965 -3743
-1039 -7522
-2890 4015
--3304 2849
--7994 -1460
-2438 -1758
-1827 -8269
--7013 2423
-2010 2298
-7286 -641
--574 2552
--2575 5055
-3906 201
--8616 -1158
-3822 1441
-5250 622
--9395 2002
--1747 7271
-666 1179
-729 -9323
-3272 -895
-8582 -5941
-2950 9488
--9442 9458
--3012 -438
-5591 6536
--860 -9542
--4752 4905
-7462 7388
--374 8439
--8333 -2701
--5598 -473
-2076 -7187
--5632 7381
-9611 -1853
--8052 -8594
-7206 8134
-9891 4140
--1611 -393
--1897 6348
--5826 4199
--112 -9296
--6011 282
--8803 2679
-5159 -9042
--4620 8671
-2143 1659
--2116 6740
--6032 -9817
-165 8807
--892 1994
-2146 9077
--9293 5862
--7255 8076
--6837 7246
-8053 8484
-1857 9100
--2938 2421
--2617 3772
--5784 4362
-4148 2044
--9860 324
--7644 1144
--3213 4040
--140 7107
-9212 -4299
-440 -6090
-7400 -7147
--4850 -6436
-7219 -4821
--4377 944
-1873 5593
--1934 8206
-5274 -1645
--7918 -2362
-5280 6073
-9061 -1356
--8296 -4880
-6185 2195
-7113 -6376
-735 -702
-94 -7748
-4286 296
--7871 7444
--1070 -2212
--8551 1065
--8005 -9876
-8011 9568
-2566 -4386
--8836 4814
-8021 2055
-8322 -5733
-8697 -8996
-2814 -8245
--1130 5396
--6436 -726
-9014 5574
--3771 6739
--6442 -2824
--7349 -607
-9346 8597
-4123 5549
-757 4646
-2402 1857
--8845 5570
--6095 -8639
--2428 -8365
--5757 8317
--6863 2980
-2235 3941
-263 -8606
--238 3420
--7054 4465
--6755 3417
--8409 -6111
-4748 -3455
--8014 1305
--5989 -8370
--9423 6053
-4730 -6723
--6636 -9600
-8801 2457
--7576 5396
--8364 -612
--2672 -4780
-1772 -6581
-7621 -4160
--3413 1039
--5843 -3005
--3422 -7453
--8873 -434
-9676 -7854
-5781 -4349
--3385 6134
-225 -2269
-4526 5435
--6987 -3809
--3824 -757
-7001 9230
--6460 -6039
--4766 -9685
-4022 6082
--7318 -6396
--4595 -5039
--6294 8186
--9333 -4121
--9179 -6694
-5980 -9519
-8059 506
--4361 -8392
--6479 -9618
--174 -419
--9279 -9731
--7497 9815
-8092 8076
--5842 -1780
-8612 1158
--6232 9847
-6620 4820
--8070 -6862
-3457 -3720
-4085 -1288
-2447 4106
--8513 -8356
--6510 -1570
-2435 -8635
--8709 -9145
-5143 3105
--3723 4499
-5974 -9010
-2618 2654
-7545 -5626
-7385 4048
--9865 -202
-6445 -1856
--7377 9810
-692 -7832
--7950 2662
-1980 6119
-8657 -2183
--5116 -2684
-4612 8821
--2595 4533
-4454 -8621
-162 8774
-141 -7512
-9398 -2558
--8500 4880
--19 2297
--3744 -885
--1564 119
--5747 7141
--5282 694
--5943 -9870
-1000
--3022 6257
-5891 4792
-3603 -7011
--1020 -6814
-173 -334
-9031 -2130
-5113 540
-6185 -3166
--8600 1813
--5748 -8661
--2980 4223
-5424 -8282
-4460 2681
-8393 -3562
--6146 -162
--1950 5370
-4654 -2346
-7585 -1465
-7970 2754
-4893 8448
-1362 -5450
--1739 7875
--8840 -3232
-6110 -9736
-7936 -9426
--2980 8364
--6243 -1202
-8890 -665
--4770 4346
-3946 -5168
-1194 2739
--9233 -3627
-3853 -3961
-5694 -69
-4780 2204
--2874 -2321
--6475 -5453
--4656 6346
-1165 8960
-3929 -9312
--9805 -602
--7674 6189
-2357 9898
-4933 89
--3668 8522
--1076 -9685
--6669 5797
--9886 387
--726 -3721
-303 3820
--4043 7471
--5387 4128
--8359 -1436
-9840 6300
-4090 -3071
-5978 -6965
-9824 -8476
-2962 -9719
-1189 -3182
--5106 -5524
--4470 6664
--6873 -7588
-6523 9681
--1676 -6930
--8289 6286
-1043 1240
-6487 -8261
--940 1875
--8191 -1371
-2828 4113
--8478 6673
--4477 -1797
--1192 -3357
-3756 5435
--730 3355
--7618 2539
--2419 7137
-8738 -528
--8897 2075
-422 -7997
-808 -8194
-890 8077
-5080 348
--627 -7231
-1525 5276
-9149 8428
--9085 3805
--4142 -2702
--7492 -3898
-5062 2031
--4917 9089
-641 2948
-1870 -8092
--1459 -4784
--352 3908
-9360 171
-5185 1096
--7253 -9197
--8157 2393
--3542 -6987
--8376 -8441
-2066 6971
-651 640
-3660 -255
-7870 1616
-1609 -2886
-6613 -3058
--1282 1026
--1638 6071
-2602 9713
-8088 -6914
-7187 -6716
--2299 -8358
-2808 -7449
--8319 -1614
--7632 8992
--4275 2008
--3735 8801
--3449 4827
--5868 2314
--2367 6
--2560 -992
-3391 -764
--7373 -8513
--1369 6202
-280 2376
--6876 -921
-2330 -1178
-2676 9455
-8454 1287
-9110 9944
-934 -8038
--7226 -9578
-8354 6349
-4720 7267
--460 -6236
-689 4741
--1977 -5288
-605 -2998
--4765 -9934
--1988 5905
--4157 2815
--5852 -5555
-729 -2181
-5602 -1082
--3693 -3170
--2562 2007
-2472 5030
-8038 6761
--4273 -9018
-8207 8184
-4367 -6570
--5722 2342
--3533 -3701
-9731 -7953
-9787 7175
-1651 -9460
-4719 -5317
-5071 -4760
--4341 -1604
-3741 -7318
-6602 9827
-4997 -4708
-8559 6657
--750 -7121
--4059 948
-2102 -2150
--2018 5704
--4894 7714
-9997 -2333
--8933 4369
-9647 -2140
-2499 2400
-8788 4328
--4694 -1039
--4861 -9661
-2617 969
-8159 3058
--9885 3911
--3292 -1849
-4107 5716
-7513 -4521
-8310 -9386
-4239 6497
-7310 -1725
--7181 7132
--2594 8110
-1262 4604
-866 2853
-1778 -7166
-3542 7647
--923 1227
--8957 5005
-2188 9670
--5807 5437
--4940 -6165
--2029 -1703
--4776 -3214
-6380 532
-5161 306
-2644 -6187
--9054 -4093
--8482 -3463
--2045 -9173
-847 8080
-2288 663
-4061 -5589
-2626 9596
--7773 529
--2533 -1874
-3813 -2866
-7444 3567
--9144 -8147
--5782 396
--5643 3607
-528 -6623
-4422 -5079
-1937 -5704
--4366 -8526
-4642 999
-5096 7146
-7887 1401
--6871 9218
-2471 -808
-1689 -2906
-6278 -148
-1932 -491
--2019 3554
--7711 1625
--771 1540
-851 -6408
--8485 -4979
--1479 -5774
-8157 838
-8765 5092
--44 9052
--1363 -2510
--6133 8550
--8048 -7544
-1302 -6843
--2831 3487
--638 -985
-7017 2552
-1510 1934
--967 5393
--7747 -1203
--840 888
--187 -5084
-5068 -9701
-5870 -9373
--3680 -6779
-3001 3687
-3482 -4585
--480 3238
--9378 9649
--2700 -5026
--6010 -8046
--2234 -76
-1715 -733
-2108 1318
--5913 3554
-1661 -790
--5116 -5539
-7531 6302
--7469 5052
-4144 -5
-9112 -3542
-7965 2931
--7070 -8203
-1012 3282
-3128 -6443
--4407 -5462
--4340 8996
--5016 -8591
-1714 -6022
-625 8202
--1764 5883
--7778 3182
-4184 5500
--2020 -1153
--3121 8708
--5185 -4442
-3427 -627
--169 4064
--202 -2178
--8161 -9199
-5875 7538
-1373 2649
--3273 466
--1936 -8043
--3648 -1552
-4906 4741
--8360 -45
-6125 1535
--8606 -8100
--3195 -4727
-7050 1713
--3429 6522
-9061 -3152
--633 7938
-3428 -9369
--1312 -6161
-6940 -6485
--8536 -3449
-384 -5652
--4342 -5586
--8199 8961
--1671 866
-3813 -5769
--9952 8227
--4860 -7699
-5136 6438
-6349 8369
--7929 -7677
--4558 3757
-154 -5434
-4656 -9615
-1135 -1047
--5854 -6250
--3063 -4909
--254 -2617
--7514 2965
--9744 1775
--1627 -6637
-9897 -6068
--8434 8016
--1334 4321
--9826 -5557
--4933 535
-529 5530
--9787 -9333
-5360 66
--7810 -6984
-6943 -9702
-3190 -3569
--6773 -4634
-5377 4652
-5679 -1307
-8662 -6090
-4482 -444
-6767 -2621
-4320 -8304
--8742 8993
--8730 -729
-6512 -3737
--782 -9542
-4616 -2642
-431 3231
--9077 -4120
-4149 -1379
--7491 699
-4465 2072
-7016 -4235
-6590 -4636
-5015 -5287
-6499 4916
--165 3413
-8982 -7154
-3467 7016
-6451 -6653
-1748 -428
--9273 9040
--9005 -2776
-1289 5569
--8881 -9628
--1533 2049
--9638 -9842
--4487 -726
--1535 -5206
-9162 8213
-4883 -7201
-2096 -2615
--8966 -2458
-7958 9658
-4579 -3132
-3635 3563
-3848 -1908
--6374 -5170
-9605 -7343
--3025 -5617
-5616 -3914
-6786 -5611
--3977 6181
--5721 1580
--2619 7126
--1453 83
-999 -4721
--6948 -4482
--5067 6787
--1748 -1518
--2030 8948
--4424 -882
-9841 -4728
--9838 3096
-8928 1140
--865 -1679
-5603 5080
-7886 6883
-9406 -4126
-990 -4094
-5996 -5867
-8108 -5653
--1497 2745
-9031 5503
-1633 -7810
--1193 -2498
-5228 -7953
-3609 -5048
-2409 -848
-7150 2083
--4593 9297
-3029 -8527
-6255 -6849
-9585 6283
--4666 -8223
--2347 -9268
--6229 9697
-4635 6598
-7726 4587
--4633 6877
--3348 2975
--289 334
-6198 -9303
-3427 8759
--1314 6788
-448 8505
-4452 3578
--6989 134
--6201 -7027
-1475 3208
--5026 557
--729 -9676
--7157 -7635
-5707 -703
--1341 -8123
--1879 9476
-7927 6937
--7297 -7911
-1213 -9573
-6666 3682
-2884 -4181
-5478 9740
-5137 -162
-1595 -9749
-3953 -5481
-9420 6146
--3189 5437
-3323 -1135
-907 -1372
--8489 -5482
--2086 4342
--261 -4113
--7605 -8100
-5786 -8063
-6510 -7928
--6027 -7743
--5491 2746
--2186 2546
-4962 -7840
--2102 -4339
-9632 -2314
--5981 1523
-6324 -9107
--2392 1927
--6662 5419
--7445 7864
-2486 55
--9022 -523
-2596 6640
--3176 -718
--2063 -7147
--2871 -6496
-6452 123
-5270 -9223
-3398 3439
--8687 -9848
-5972 -7053
--3810 7195
--2809 666
-5934 4811
-2607 -3928
--2809 2620
--4243 2537
-2206 2871
--352 -416
-8438 -1105
-3039 1623
-3304 7690
--5219 1098
--4262 -1624
--3233 5249
--399 -4181
-9031 -8151
-8759 7501
-6051 3302
--7080 3559
--7087 -8551
-4088 -4826
--3887 9519
-9932 -1072
--6076 2955
-1728 2533
-6129 -1072
--3777 -7101
-9594 7476
-1281 8823
-4322 3671
--6081 -9266
-7005 36
-8489 -9527
-5757 -5549
--9672 -9956
--6822 -9397
-8057 4431
-6840 -3726
--228 -7580
--1030 5777
-1514 -6419
--5622 2617
--3078 5731
--6798 4868
--3778 -2132
--9368 9283
-7280 9400
-4902 -6691
--6787 6372
-3239 -5404
--24 8379
-5274 5414
--3507 346
--6667 3245
--7067 -4058
--3016 -406
--1219 -7040
--4635 -8815
-5485 -3992
-3997 3667
-857 -7108
-9759 -3580
-7855 -5960
--5209 8002
-9349 809
--6487 964
-7893 -8140
--8892 1894
-7232 -4431
--4968 1478
-2842 -704
--5402 7210
-5748 6900
-1828 -6963
--7763 5918
-875 -1932
--5828 -3391
--7439 7573
-8142 -9404
--8702 9188
-145 376
-9616 -5935
-1611 -3763
-8778 -301
--4546 4841
-4177 -984
-7405 5951
--831 7560
--7262 5778
--3390 7794
-8319 6328
--9628 8033
-6638 -7436
-5892 -5063
-2353 4402
-7658 8762
--6473 -2061
-180 -8599
-7829 2423
-9765 7366
-1890 7154
--5 -619
--8875 -1320
-1872 7493
-1602 -2387
-8209 7
-1745 5850
-4713 -1266
-8067 -4661
--3703 3674
--8070 8579
--9128 5480
-7136 -8187
-9587 7399
-6023 6996
--194 -4626
-7287 194
--4755 9244
-8822 4452
--7452 -4139
--2043 -974
-9757 9565
--6260 -545
-7962 -1091
-2887 6804
--7397 9310
--931 5797
-4899 2792
--7457 -2258
-4461 5820
--1915 7292
--264 940
-6498 -2148
--8485 5324
-5263 -3126
-8349 6036
-5472 7802
--3774 -2121
--3079 7344
--1251 7693
--3984 -6450
--2656 -5194
-9552 2309
--4247 9695
-8203 9872
-9373 -882
-3567 8240
--353 4618
-3524 5367
-8383 6875
--5240 8238
-5749 -7407
-7139 7824
-2779 9295
--5886 -3898
--5943 4244
--9158 -6009
-120 2937
--8680 2143
--4704 3185
--5813 6448
-4778 -1078
-4048 1656
-228 -8203
-2811 -4843
--5036 -2530
-6013 9999
-3360 8044
-2897 -6695
--7426 1351
-1619 -3879
-2028 4600
-3467 2658
--3938 -4027
-2819 9096
-7520 -621
-2434 -9925
--4096 4105
--5482 -9007
-3178 2951
-8812 3624
-7795 -4608
--8785 7667
--2725 -1169
--9284 -2165
--1533 8408
-2339 8766
-4159 -6411
--1580 5777
--8838 2541
-893 -2091
--4564 -5936
-5919 7342
-8587 -4406
-6826 9153
--2077 -3183
-2560 9267
-8095 -5595
-8889 7475
--8279 -2319
--1037 3078
-1898 -8009
-9802 9167
-3241 448
-9396 -3070
--8835 5985
-7844 6769
-9194 -7887
-7265 -3749
--6098 -5818
-9026 6991
--1185 -2549
-8449 -2392
--603 8782
-6459 -967
--2153 -8796
-4386 -4083
--6127 1078
-421 9332
--1509 5699
--3571 8065
--9154 4736
--9398 993
--7238 -5696
--706 5946
-8388 -3217
--2497 -5064
--3593 -547
--1517 7984
-4768 5369
-6903 8674
-9610 8799
-1992 -7652
--1544 -1166
-6253 -6267
-7693 -6443
-932 4962
--4086 -6563
--4230 5001
-6412 -6901
--5240 -815
-1393 6851
-8300 6385
--7281 8022
-2723 3209
--5429 -8660
--9179 4417
-1282 -1684
-5691 6854
--3771 -5667
--4139 -7321
--6010 1924
--4395 7606
-8957 -3924
--3879 9420
--6668 -9739
-8394 1269
--3063 -1655
-1301 -4806
--8173 1267
-2369 6110
-2960 -2345
-9050 -8968
-6085 6258
-2463 -4728
--4180 8615
-6824 7670
--6842 1195
-5986 6565
-2035 8227
--2494 -8696
--3595 -3098
--1280 -5354
--5507 -4375
-8292 -5293
-6678 -9153
--6362 -4215
-7582 422
-1436 -8994
--3065 -9618
--8104 -2877
-4786 1449
--7416 -8785
--757 -2979
-5634 -572
--9515 1631
--3422 -1616
--7679 -9843
-9216 -9847
--4658 -2761
--536 7702
--5918 1995
--4093 8861
-9735 -4535
--4534 4426
--5171 -385
--8787 -9112
-5255 7312
-3671 -9697
-9384 7046
-255 -6858
-8778 1142
-4412 463
-6147 1125
-901 1738
--2004 -8064
-658 -8134
--6252 6576
--9053 -2233
-6006 -5316
-9359 5062
--8092 -597
-6569 -155
--9457 9928
-9721 -4464
--7713 -3956
--8376 9859
--1668 -4116
--8991 7463
-6862 601
--2445 -52
-1977 9435
-8399 6129
-7652 -246
-4327 -6434
--5682 2139
--3781 1044
--1376 4543
-3298 -5908
-4561 -5487
-4358 4039
--2944 9730
--8632 651
--4791 -9158
--3417 -7097
--6372 8071
-221 -6950
--1268 -1179
--3766 -5357
--2407 -7438
-8560 -5392
-8817 -5074
-5655 -6950
-4239 -8922
-8576 -7026
--2948 8807
--4337 -3867
--4310 3182
-5192 -3378
--7491 -3839
-3966 -965
--3185 -133
--4131 -9529
--6999 -7619
-5608 -9979
--4713 -206
--7622 -1187
--4457 9707
--2546 9316
-6527 -3692
--4839 -5428
--7386 6119
-3959 -1268
-30 8755
--9597 -5544
--3682 2316
--9418 -1271
-5123 113
-9923 2303
--7332 -126
--2387 -7445
--5845 -9563
--2127 9773
--537 8535
-2951 149
-7647 1772
--5661 -4919
--5957 -616
-5972 7505
--6714 -8348
--2128 -9042
--8816 -91
-434 2230
--3705 -2812
--2067 -322
--8613 -4918
-3788 7147
--4936 -248
--7499 -9360
-1893 -1752
--6165 -5904
--6969 6958
--4267 -2215
-3476 3010
-993 3163
--1558 -3944
-6008 -5459
-1434 6250
--3026 -4633
--1565 1438
-5585 -795
-8776 -4120
-3744 4389
-9263 -7066
--3738 -3602
--4284 -8856
--5349 2679
--5351 -7997
--1332 2610
--6291 -7872
--3668 -8542
--6052 4817
--804 7762
-1379 -5219
--986 269
--6131 -8531
--2326 -1631
--9693 -7024
--3830 -1518
-8195 3385
-8349 843
--21 -8158
-8758 8467
--5402 -9887
-6661 6333
--1878 -2468
-5734 496
-9347 -4313
--6163 -6107
-3855 -4177
--536 1241
--3526 -31
--1958 -8535
-7278 5634
-2557 -308
--3796 7365
--8197 -799
--1487 -5345
--9536 -3103
-7558 -7704
-5350 -3446
--7807 -2234
--6930 -3519
--1370 9818
-3197 465
-8172 5711
-2935 -7123
-9610 -3431
--2623 3195
-9742 -840
--9308 9440
-4988 -3256
--1997 -3266
--6589 -7763
-1222 -190
-4902 -7027
-7943 9008
--926 9027
--119 9917
--8514 -9135
--5869 -7110
-5733 608
--5510 -3987
-8667 -2554
--6008 4017
--6782 -1368
-6279 -6542
--633 -1498
--8014 -1727
-6821 -475
-6113 -4306
-4516 -4802
-2619 -2678
--5623 -1033
-8652 -350
--2804 4599
--4321 -9729
-4466 -562
-442 -6520
--2813 8115
-6648 7312
-1133 4982
--9992 -1927
-3259 -4055
--1988 -3109
--2853 -9462
--118 8628
--6532 2957
-7115 3566
--4250 5793
-7818 -6561
-7450 8347
--7957 8907
--9081 7235
--9699 2777
--5630 425
-336 -7209
--3383 5962
-2006 7290
-4705 -2249
--6634 -1581
--8156 894
-142 -4595
--8956 -599
--3386 -335
-8522 -9804
-8612 -3748
--6081 -3216
-8494 7380
--3405 8910
-5773 -9471
-929 -8685
--5432 1955
--529 7879
-1100 1767
-795 -7727
-7209 1339
-8131 -9420
--4148 -6178
-3572 -4821
--2426 3459
--7168 -3437
-7700 4166
-1000
--4730 -1055
--4110 6891
--341 6767
--1126 -6613
--4036 -1978
-900 5745
-3686 -4629
--3437 -5183
--2112 -2518
-9228 9250
-8867 -8288
-1409 620
-7605 -3370
-8673 -5097
--9498 -7352
--7411 -991
-6425 -1369
-4211 -4633
-5181 -5098
-8159 -9956
--2221 -9829
-9093 -2634
-3994 -1479
--3735 -2909
--4927 8245
-1464 1012
--5849 -9382
-2139 8180
-7439 -5696
--6869 9781
-6383 2973
-7641 -287
--7230 -1752
--3020 -5973
-1943 -5537
--9260 8463
--1587 -2302
-5788 -6063
-8838 3260
-8644 1698
-9006 5873
--976 -7876
-8718 7402
-4521 -6762
-4054 933
-7935 -4603
--3025 -7143
--6681 -8291
-8668 8938
--3072 -9288
-1997 3843
-3171 -8405
-1625 1284
-6368 -4437
--7431 6673
--5080 -6451
-3888 -5591
-2547 -684
-4039 7154
--684 -6205
-7908 -5534
--4916 -5336
--8190 -707
-1043 1877
--4319 -5572
--9181 -4633
--8002 7488
--7690 2240
-2622 5826
-1270 -8740
-880 -7929
--3697 789
-1696 -8363
--9359 4769
-3133 -9540
-2060 6438
--7835 4431
--8777 3156
-9151 -8843
-6092 -2667
-991 -6297
-2138 -8959
-8976 5908
--9150 -7741
--4380 -7509
-910 -2399
--3883 -9857
-5131 744
--1788 6188
-8274 8241
-6215 -1645
-4314 514
--8428 7337
--956 6591
--1341 3812
--9693 -688
-8723 9337
--7527 5915
-756 8494
-9635 -9834
-7900 6899
--8574 5276
-9055 -693
--3188 -1882
-4059 6154
--2120 -4778
--9891 -4715
-3182 -8000
--6454 -6031
--1746 -5798
--8666 7241
-6048 1056
--7633 -2025
--3195 6165
--4368 5587
-7389 -550
--5553 1799
--9677 -6930
-4853 5137
-3630 9018
--9966 -819
-6900 -287
--5972 4136
--7664 -5737
--1208 2567
--1838 -4674
--9268 -5971
-2642 -6572
-5174 3181
-7440 3455
--2279 -8151
--8749 6619
--338 -6259
-5973 -5323
--3248 3492
-9666 9732
-517 -3046
--3366 -6854
--9214 8799
--7058 -3318
-4043 -7889
--7100 6423
--812 3197
-5311 3551
--2291 -8859
--9496 -6020
-618 -8233
--7699 3086
--8296 8053
-415 -8725
-6337 8113
--7760 1169
--9425 8050
--6431 -1303
--138 -4215
-4960 2325
--3837 -4397
-1228 -4626
--6644 -8603
--4663 -4231
-8307 -4919
--1266 2935
-9350 -5045
-1345 7390
--6099 568
--9322 3366
-4230 5680
--8691 -1699
-4076 5983
--8533 -4113
-3412 -1090
--3867 -9545
--635 9613
--5574 -2092
--5369 9047
--2378 9138
-8921 -4676
-8552 -8866
--9870 7695
-4002 5626
--6014 4279
-1111 -5681
-7431 3770
--9667 -6917
--5288 -2069
--6833 -390
-9349 -4899
-4619 2944
--1337 -6965
--3563 3399
--8809 3190
-7780 4838
-2259 -2870
-830 7797
-8119 4990
-8637 -7458
--422 -4408
-1059 1530
-3452 8558
--7955 -1627
-7688 -389
--7640 6441
-9109 4647
--3991 -421
--4644 -3220
--6864 -6183
-3788 -5647
-4522 -7100
--4349 -5063
-2626 -2744
--222 -1610
--5578 -1183
--5079 -2006
--6693 -8813
-8560 -4160
--8801 3564
--2562 4458
-3660 426
-1885 -1075
-5122 9425
--9274 3602
-7671 4503
--4978 1916
--6099 -5191
-7524 -7174
--2025 -6133
--9995 -8553
-4722 -1233
--4763 1783
--2357 -6967
--8383 -6033
--9852 -4516
-9547 2601
--6487 7688
-9187 2953
--8410 1044
--7306 -6235
-7417 -9931
--4201 -9531
--8959 -6939
--3762 -6557
-7695 968
-4911 9758
--3967 4838
-9653 9101
--5024 -7842
-319 -4855
--3221 1741
-9906 -9484
-9278 -3577
--9005 -2838
-1995 -1392
-4470 3039
--2266 8889
--9273 9502
-2040 6882
-6879 3151
--4532 2419
-2469 -2629
--76 -6932
-2770 1372
--5967 5995
-4343 4497
-6029 -3592
--9298 5374
-3596 603
--1370 -8183
-2297 8523
--8586 -4085
-6724 6646
-350 1721
--2624 2474
--6569 9888
-1550 -8153
-4471 3765
-7924 -3643
--8167 1456
--3799 -8489
-569 5186
--3486 -6251
--2704 -5324
--1175 -5569
-1073 5854
--4209 396
-2071 7922
--9127 8999
-8191 5202
-5404 8042
--6593 -962
--9045 -8138
--3448 -784
--865 2413
--6403 9847
--999 -7163
--2363 -4584
--7214 1056
--737 -4516
--2564 8281
--3014 4734
-5097 78
--1376 -5251
-62 -2291
--8938 -1266
--3154 -5707
--1061 8091
--9680 -8474
--9550 9795
--6490 -5998
-1736 8088
--2408 6269
-4969 1148
--8794 -5869
-8268 -9334
--5747 746
--7260 -4706
-7347 4350
-9385 -6838
-4690 -6446
--5514 3503
-5068 -1514
-9134 -6431
-8215 1364
--9831 8368
--4428 619
--9540 -7299
-8465 -2793
-415 890
-3649 8912
--3765 -6872
-7161 -2283
-3278 -5047
--1536 -1693
--6151 -7531
--9680 3444
-9230 2705
--9672 1595
--6926 7251
-4027 -6162
--494 4024
-7650 1880
-1154 -7300
--6406 -1026
-9801 5232
-4555 -9108
--1139 -6494
--3030 -9789
--701 -2470
-639 -6020
--7477 4231
--9553 6360
-7639 5465
--8445 1522
-1881 1959
--8975 6815
--145 2479
-9076 -8291
--9879 7188
--2812 5573
-7825 -7450
--2602 -687
-1007 -9638
-1921 2959
-1994 3261
-8055 5313
--4561 2749
--8235 6821
--5377 -6348
-7950 -9845
-7346 -5642
--8487 7298
-4738 5016
-1190 -2593
--6986 5136
--3571 9879
--2100 7841
-4922 -1649
--7303 6841
-9569 -9548
--1424 6080
-9573 8306
-4299 -5825
-3941 -7196
-3988 -5966
--2739 2074
--505 1537
-1815 9222
-1865 1124
-9601 -7830
--3730 4481
-299 673
-6110 -8006
-5034 6984
--6241 -5447
--5803 -3945
--8403 3077
--973 -5900
--8305 -9798
-2322 -1673
-8594 7520
-2898 7177
-3127 -9772
-5011 9297
-8210 8136
-7970 7098
-8131 -6968
--3096 -4794
-7140 -5918
-4163 824
--5268 -1030
--2608 -944
--7728 8850
-2071 -939
--2812 5078
--3107 -2467
-1223 -6420
--1459 -2119
-9964 -9310
-7830 -107
-8944 746
-8296 7489
-3156 2881
-5380 7638
--8596 -2106
--4634 2594
-9810 -9714
-3552 -5641
-629 1992
-4478 76
--3275 4951
-8340 2388
-5433 301
-6238 -9052
-7089 -5105
-705 -9086
--8469 371
--4284 -9207
-1197 -3912
-7907 3641
-9263 -4604
-3328 -9606
-612 -4606
-7593 -9812
--2358 9519
--210 -8036
--4244 -2576
--3945 9542
--9256 7493
--146 1680
-7719 -8436
-2494 -6052
--2421 -7820
--4995 3110
-8457 7984
--1481 -6885
-9693 -8228
--6431 7343
-1397 -8750
--1976 4767
-8571 -8158
-5216 8362
--9563 7265
-6843 -8061
-9799 3972
-5952 848
--2699 -2182
-5729 -8858
-7558 -1611
--488 -3637
--1029 -6555
--3093 -3921
--327 -5350
--6253 8861
--4804 -4270
-1148 -3987
--3363 7039
--9962 5115
-1082 -9865
--3336 5225
--4135 -9761
--1448 -504
--5978 4496
-3796 -8990
-7452 -2061
-8275 130
-6839 -902
-4950 79
--4081 -2380
-4272 2455
-5492 -1029
--2914 4460
--467 6859
-2479 8911
-8464 1157
--4275 1507
-1237 -6450
--3884 3099
-8900 3199
--3884 7108
-8731 9021
--3578 8366
--7877 5503
-5659 7167
--7601 -7375
--9661 -510
-4341 5988
-8697 -7674
-9298 9520
-9371 -5503
-4454 6314
--6354 -5408
-2115 5727
-5534 3564
--5049 -204
--4849 6877
-5567 9049
--9879 1797
-3200 -9816
--9327 4321
-2738 -8615
-9876 5131
--7408 3953
--7464 9899
--8665 -2388
--1883 -5121
-6658 4760
--2134 -7884
--8460 -5273
-7800 5288
-515 5137
-1340 -407
--7930 -8354
-5359 191
-9898 -4723
-3203 -8465
-652 4399
-7043 -4223
--9774 -6791
--4839 -201
--8000 8033
--6623 1593
-3805 7420
-5814 5113
--2762 4600
-9366 -8581
--887 -749
-791 4419
--7809 631
-6511 -6316
-4080 -6419
-5354 -8104
--1031 5217
--5553 -9426
--6470 471
-1585 -5077
-3582 6845
-2080 -8031
-9052 4785
--1530 2231
-9536 6450
--2808 8893
-5748 -4677
--4081 9254
-3602 -1904
--524 -5056
-4456 -7917
--6371 7217
--3254 -1918
-8226 -9621
-9813 -2586
--4560 -6803
--7039 230
--850 -3641
-9526 -7030
-5740 -9013
-5172 -5837
--7921 -8775
-4583 -3214
-3958 2800
--5180 -5228
-2259 -9844
-1921 -4352
--1794 7330
--8849 6866
-1041 3508
--1366 9342
--9868 -6141
--4853 -8282
-7824 -3586
-6993 -6581
-8287 8111
--9370 -4031
-7759 -4237
--164 -103
--5887 -1160
-8650 -5340
--3258 -774
-2933 -3816
--9155 5906
-7824 -7620
--6883 8730
-4370 -878
-3719 480
-3475 -7848
-4991 -3136
--356 6759
-5879 7207
-9849 920
--334 1238
-4620 5059
--1001 -7283
-1458 -7317
--4457 -9225
--5194 511
-6852 1900
--2192 -7705
--3945 -9302
--2314 1752
-2091 6204
-9481 9752
--4233 -8493
-3203 6399
--9893 -8039
-9235 -6340
--9954 530
-5540 -6423
-5837 -2940
-1631 1777
-7135 4751
-2510 7264
-7493 -2993
--5063 -1348
-7182 9196
--3672 -9216
-9700 7954
--6823 6179
--8227 4746
-2852 8875
-5638 6875
-1189 -3031
--4485 -1654
--1014 1339
--4739 -1321
--9270 4920
-3204 -1721
--4878 7475
-9574 228
--2445 6798
--9724 8024
--6847 8394
-5672 5201
--236 7140
--9169 1853
--6204 9192
--4161 -4292
-3014 7052
--4812 -4946
--9764 9803
-4588 -7686
-4490 -4036
--7769 2311
-6757 -4536
--4559 -6088
--7376 -4890
--4765 2226
--2126 1927
--1083 6261
-1680 9836
--9590 -96
--2561 -185
--5094 3346
-347 -721
-254 -6006
-1741 -3176
--7948 8829
-2653 5580
-2074 3562
--2328 -221
-2713 -6294
-2225 -2232
-6282 2550
-8804 -9138
-4719 -4300
-7680 6944
-8370 3042
--1170 -8859
-9749 -712
-6977 -7198
--1664 -245
-3085 4041
--4121 6689
-724 -8065
--7182 -9866
--9611 8173
-5163 -1114
-7459 6654
-2598 -6682
--6015 8187
-7539 -7087
-7716 -8503
-7845 7740
-2055 1117
--5388 -6839
--96 9832
--529 -8324
-5579 -4340
-1687 -7730
--8709 -5790
-5549 -6321
-9461 1853
-2826 4645
--7070 3849
--5343 2816
--5614 3311
--9436 -3625
-840 5968
-3798 -3829
-5767 7288
-7315 -6591
--8111 3970
-1721 7857
-3464 -2984
--8962 88
--60 -6567
-9953 5225
--9709 -4161
--4326 -6114
--528 -5040
-6702 -2597
-4069 -8107
--5106 -8756
--3396 4531
--4981 8494
--7221 -4564
-9802 -2669
-9419 6755
-1531 7534
-2009 -8912
--3447 -6822
--1956 879
-503 1835
-7113 6158
--9996 -865
-2532 -6671
-1631 -9331
--1046 8697
-2658 8361
-8212 -3780
-5164 -9371
-4071 -7004
--544 8045
-9910 9174
-8051 -7201
--7290 -1479
-5997 -9240
-4382 445
-1912 -40
-2099 -9555
--1283 -9634
--7876 8778
-1325 1074
--5597 7778
--1892 -1837
--4752 -1398
-659 -7559
--9389 -5631
--367 -6748
--9486 -1371
--7871 -9089
--2992 -3373
--8400 -7501
-556 4587
-3358 -3494
--8018 -5305
-539 -5050
--3821 -6497
--9675 1001
-6937 5551
-7657 7857
--1300 4051
--9254 5257
-1722 -6092
--4178 3694
--7029 -1593
--7000 7019
--6787 -1277
-9966 4806
--8884 -1782
--9902 -2228
--2177 -970
--5781 -8040
--2320 5176
--4497 729
--2931 2582
-4301 -9168
-5896 417
--2828 -8825
-6049 -4580
--1851 -8371
--942 -8024
--802 7877
--2471 1876
-3773 9077
-7734 -2202
-7114 -6523
-3381 -9542
--3621 -5502
--1153 7844
-9163 8455
-1571 1640
-4896 -2030
--6940 -4601
--3531 -8028
-4148 -3980
--7905 9355
-2777 -3889
--2617 -9446
--4023 -4421
--8204 -8228
--529 4474
-7252 -2004
--5335 4406
-1385 -9004
--9988 -9211
-6359 7375
-1544 1112
--3084 641
-7050 -3389
-3203 -7616
-3653 -9107
--1435 1755
--1862 -6933
-2440 2492
-3368 -2890
--3013 -3498
--7819 -4075
-9807 -4478
-7776 7105
--4796 9714
-6345 1557
--4607 5135
-9969 -2952
-1309 -5413
-4968 -8313
--7447 -1632
--4154 -9360
-2954 5183
--2330 -8359
-1724 4053
-2671 3194
-861 -2615
--4968 8714
-8025 9593
--586 -1384
-2751 -3054
-1610 6271
--3915 4216
--540 7967
--980 5285
--6971 -9196
-47 -2561
--6812 -3492
--6604 8644
-2780 7234
--5646 6330
-3557 -9919
--3442 -4633
-641 3305
-5073 5939
-3016 7683
-8021 2761
--1552 -9312
--8034 4700
-6862 -7200
--9337 4260
-9967 -2950
--4836 8876
-9428 -2562
--3646 -1676
-975 6628
--4860 5220
-5878 7444
--9535 8778
-3022 -5710
--9574 2786
-468 -5931
-8272 -8806
--1218 2901
-9095 5951
-450 8221
--275 629
-4723 -4785
-8353 9571
--6232 7783
-4095 -6628
--6118 4912
--4786 -8411
-3095 9866
--6960 -6195
--4785 531
--7660 -4753
--4453 9051
--3112 -2907
-1838 -6288
--6164 1203
--2467 596
--4296 -1795
--7113 -758
--5117 7163
--9992 -1363
--8532 7126
-8766 8997
-5557 9849
-1292 -9716
-5915 5724
-3122 8547
--9161 -3633
--3967 206
--2518 -6589
--9666 5994
--788 1668
-2196 7010
-8106 -9136
--3529 10
-4301 5450
-2776 -4066
--3288 -9311
--4399 -9459
-7086 4844
-7144 4452
-9941 4816
--2135 -6269
--7882 5355
--5520 -952
-8247 2994
-5442 -1871
--706 6396
--2002 4648
-1719 -29
--2965 -6652
--887 -7142
--5691 -6902
--3975 -381
--1229 6502
-9304 5666
-1489 5572
--2593 -7673
-3962 -3858
-9351 6129
--4753 -4356
--3903 -5328
--6096 -7277
--2993 -3823
-9639 -1869
-6156 -9467
--6860 3588
--9938 -1448
--5370 1094
--5754 6621
-2772 3333
--8217 6756
--3280 7571
--8871 6671
--2423 5487
-5905 -5408
--4578 9293
-2592 5856
--9976 5364
-8251 2785
--3058 8172
-1012 -757
--6351 3333
-8753 5706
--2635 -8239
--745 -7221
--8129 2536
-7705 3518
--8356 137
-7926 -2874
-2687 -7217
-3896 -7588
--9993 -8394
-3585 7729
--4599 7468
-554 4079
--2097 -2497
-4899 -2448
-54 -6081
--6912 -8107
--9043 -8524
--3970 -4228
--5845 1780
--8294 7509
--2441 4909
--5284 -4048
-9593 -8273
--6411 8434
-4154 -5069
--5856 -4569
-102 9756
-167 -9265
-1000
-3279 1304
--2499 -3861
-7623 -993
-6530 -2174
--4257 -4408
-3792 5144
-5496 9187
-6006 -7911
--8299 -5678
-9665 1205
--4509 649
-2318 7115
--5339 8384
--4472 -8981
-1068 4980
-1483 -7699
--6276 -8510
-5200 68
--3445 7565
--5643 5551
-6313 -6373
-9502 6254
-825 922
-6631 3476
-6831 -1701
-7403 -4406
--5277 -5630
-9049 -9473
--2136 -910
--5053 7460
--3569 940
--9375 9880
--1964 1999
--2849 2528
-7892 -4040
--3717 -352
-546 -1456
--9845 6099
-5973 1306
-7355 5894
--2224 -9338
--4100 -3322
-1383 -3660
-8608 -7733
--5888 -2096
-6423 -7331
-1795 -9142
-5927 5639
--334 -4739
--5963 3592
--1557 -9185
-22 7066
--935 -9789
--7346 -1783
-9784 753
--9881 7556
--9146 3274
-2457 7931
--3734 4247
--5130 -2769
--1553 -1922
-1905 -9988
--9198 5126
-697 7536
-9805 6873
--7582 -1648
--7944 9560
-8935 -4046
-5762 -9037
--285 -9208
--2520 4428
--7512 7143
-9888 3757
-6861 3770
-4248 -7608
--6171 -6270
-8493 8867
--4891 -7794
-6542 174
-1385 -669
-7838 -5249
--4456 -3486
--6962 6435
--7648 3229
--2163 -5017
-1899 3684
--6185 7937
--2188 9250
-5780 -8237
-9453 9729
-2412 7318
-8439 -697
--5131 -4527
--5287 -2444
-3700 -8049
-99 -2795
-3718 3835
-5096 -6125
-2026 -1181
--7324 617
-8507 -3132
--4730 7988
-2826 9722
--3233 -4730
--6546 369
--1305 -9278
--932 7599
-9112 2427
-8323 -1131
-5254 -7533
--5630 8629
--5765 812
--1113 8503
--1246 2883
-5971 -9706
--1936 -7956
--3816 6860
--5408 -3492
-555 688
-1311 -6982
-3887 -6551
--7951 -3946
--6778 -3643
--1736 -331
-7273 -6400
-1533 -2594
--2711 -8943
-761 9029
--2196 -6903
-9444 6670
--4947 645
-3492 -3309
--7883 6501
--2884 7394
-9842 7165
--4246 -7945
-7060 6626
-4399 -9924
-5542 -6584
-8650 5563
--184 1938
-1392 -1572
--8597 -662
--2304 5246
--4967 6139
-6733 -9900
--4820 8339
-4637 7859
-2996 -9321
--4799 -3600
-4031 -1401
-2929 4232
--7558 7966
--8031 9680
-3366 -1689
-9601 6624
-4722 -6982
--5562 6418
--8110 4420
-8413 -2423
--2370 -7449
--7102 4440
-3907 -5588
-8933 -7728
-5119 -1592
-9261 -1068
--800 3790
-7181 -8525
--4073 -6614
-8584 -195
--9095 -4102
-7742 3389
--3164 8353
-6348 -1182
--1399 3911
-9666 8385
--2964 5475
--5572 -2732
--7054 8098
--9493 539
--2220 4402
-7724 -6703
-7808 4618
-3345 -7636
-2971 -2313
-168 5428
-9415 -116
--1125 8634
-8942 2672
--2374 1805
--1835 8368
-9158 8832
--8749 4052
--2899 1534
-3043 6780
--7803 2644
-2986 7785
--813 6506
-5373 1041
-4263 7921
-9240 -4774
-8930 -7806
--1628 9154
-8719 -5681
--5822 -8799
-3402 -8443
--9483 9750
--1824 1254
-3802 -8873
-2005 -2335
--5508 8274
--254 -2077
-5876 -1909
-2725 2480
-7776 5356
--1569 -2565
--3938 -4042
--5729 -9228
-8676 -2225
--7134 -7196
--8388 -1634
--3251 -6604
--2419 -2717
-4384 6129
--7989 2805
--853 1939
-9818 1283
-7641 1213
--2243 -947
-8413 4372
--5795 1411
-2638 3463
--1253 1260
--2452 -5237
-791 5544
-1599 987
-6965 5670
-5235 2605
--967 8984
-6636 3540
--2737 8103
-2252 -6442
--3092 -2165
--1841 -7605
-1419 -1736
-281 -6786
-4812 1751
--9206 6616
--7892 419
-617 7227
--5037 9136
--4186 9074
-6640 -3736
-4434 -526
--6649 -3332
--3969 3111
--8154 1225
-8482 -7301
--515 5220
--7937 5482
-104 -7667
-2221 -8668
--8510 -8347
-6759 -9581
-3087 -6780
-6426 -7547
-8668 8314
-2815 -4893
--7861 -4789
-906 9687
--6787 -1417
--9824 5479
-5765 9343
-7001 9847
-2848 -6228
-2542 915
-6032 165
-8889 7049
--4256 7857
-2672 -1260
--2638 473
-6692 -3248
-8396 -6367
-5155 -8106
-6292 -4269
--8680 -3570
--4357 2516
-7648 9212
--862 2005
--1760 5686
--8804 -4485
--4036 1127
--7940 6119
--3181 -918
-7566 2055
-873 7675
-8606 -2431
--2856 -6651
-9585 9203
-1531 1875
-8957 1123
-8071 -7757
-6088 5059
--6367 3545
-4427 -9850
--9984 6129
--3765 -9621
--6702 1781
-1915 -7059
--5512 7286
-6787 -3622
-9943 4252
-1046 4015
-2873 1495
-1341 7577
--4024 3234
--9428 2229
-4627 -6091
--7672 -2838
--7526 8113
-2582 -9432
-5118 -8059
-3054 -6535
--4786 7816
-9130 -6665
--6447 -7718
--2293 3664
-9548 7571
--1797 1166
--6496 5155
--3862 7077
-111 7576
--8475 8952
-4039 -4728
--911 9728
-4268 -3665
-7098 -4841
--262 -8145
--9802 -3005
--6770 5894
--4834 5392
-1566 -9952
-3322 -898
--3060 3230
-1241 -3096
--4374 -9476
-3289 1791
-1075 -9506
--5939 6704
-9821 6664
-1759 -5633
--9014 9051
-5158 4728
-7529 -8133
-8884 -9194
-7681 -1671
--3407 2662
--2877 -5506
-1319 8184
--7383 127
-4523 8117
--2925 -9775
-5251 -3877
--5823 -9918
--897 74
-3778 -4593
-2955 -9064
-4951 -1225
--2009 3015
-4427 -1822
--2204 1903
-9954 5552
-4924 -7079
-1875 -2263
-2700 -6397
-7177 654
-2822 -2788
--3555 -9573
--268 1067
--5410 -1376
--954 -2486
--6798 -1777
-5894 -8070
-1162 7657
-191 9865
-4996 -2148
-74 43
-1616 2194
-9808 6280
--9061 5407
--2547 3130
--8249 2947
-4063 -6929
-3566 -6171
-5365 8887
--319 -7738
-9185 3325
--9540 -3202
-2044 1898
-5145 5753
--1524 7196
-7412 7033
-7883 -6888
-2510 -1934
-7366 668
-6826 -9660
-226 8093
-8937 1445
--5876 -3846
--2842 3980
--2921 -3868
-2774 335
-5257 -150
--7522 -9027
--5942 -7220
-1035 -4970
-5318 -9196
-7895 -9928
-4459 -4738
-791 -7643
-9013 -9187
--1828 -8181
--467 -6814
-7730 -8800
--4313 -6540
--8701 -6135
-8158 3095
-4622 6749
-5784 -2888
-7042 -4113
-4066 9186
-6379 8210
--8868 638
--2231 1595
-3172 -8283
--8867 -1119
-4229 4548
-7828 -8690
-9776 -3872
--8592 -6105
--8110 -2279
--6541 372
--4156 -1218
--70 404
-6044 -9476
-8206 -4825
-1981 7480
--7018 7366
-3283 -5820
--4207 8467
--8063 -8853
-3049 -5002
-9980 2202
-7293 -5744
--9108 -4155
--9673 7829
--6899 -6290
--375 1636
-5878 9815
--7024 7260
--6015 -1298
--8912 9063
--573 -9461
--2452 752
-2868 -1337
--7259 -1286
-1970 7152
-4737 -7301
-9412 -5901
-2113 -3265
-4968 2757
-1587 -9419
-3758 600
-4897 -2142
-9790 -459
--6512 7874
--3729 -5050
-5601 -4318
--5736 5906
-2931 2494
--3832 -3782
--2354 -1808
-9700 3574
--8101 -8403
--9646 -6091
--2148 -2203
-6019 7739
-5041 6218
--1758 -8986
-1350 -1020
-8295 -7523
--2296 -193
--5937 2791
-6391 -5862
--6035 -8684
--5416 5172
-8836 -3763
--5049 7211
-8698 9399
--8141 -4405
-834 -5656
-1108 4780
-7493 1397
--7663 -6433
-8363 -5522
--5890 5690
--4583 8591
-2913 3676
-6362 3334
-9419 8494
--235 -275
--2754 -5480
-8884 -4784
--4143 4609
--1150 -8765
--4198 6254
--833 9242
--9569 -6395
--4415 7398
-690 3647
-8291 -3308
-5920 8119
-5622 -1691
-3373 -4662
-2659 6087
-6858 1677
-5804 7899
--7476 -6960
-1213 -6986
-9822 -5167
--6803 6522
--4258 5742
--139 -8856
--2345 524
-6840 7733
-9747 -3822
-7742 1040
--8901 1482
-1779 -2905
--815 4478
--8292 -748
-1930 -8757
-594 1871
-9020 -8571
-5220 -9858
--3509 -2000
--4005 9891
-6162 126
-8884 -3178
-8356 -9511
--6897 -4134
-9423 -7829
--4874 -5514
--8077 -8969
-7784 -8124
--2072 6194
--2460 -8965
--3278 -9806
--6175 3702
--2661 -7857
--2267 8957
--2946 -2149
--1829 259
--8682 -1410
--9521 -955
--8713 -4214
-1852 6630
--4093 -759
-1329 -2782
--4583 -7701
--4200 4179
--810 -1360
-6132 3193
-5842 -1172
-3550 -6540
-1822 7430
-4153 -1484
--695 3968
--1358 2702
--6691 -8534
--6724 6338
--4703 -1294
-6009 323
-2822 -9882
--2882 -8005
--2607 -4103
--793 159
--1857 5361
-1263 7039
-5772 5897
--1196 5646
-1089 -2196
--612 6081
-1849 -9405
--9849 -9988
-910 3410
-3141 -5947
--377 8957
--3283 -3990
-3601 439
--3995 645
-212 -875
--2697 -2474
-6686 -5718
-2395 -7974
-2631 -8933
-2977 3500
--5392 7640
-8051 6486
--7233 -9450
-2648 -8570
-6334 -867
-1087 7070
--6813 -5860
-8423 5161
-464 2480
-7596 -7916
--2131 4558
--4858 9836
--9209 -9850
-3352 8725
--9443 5787
-8973 -8359
-2098 -5298
--1239 -5355
--9057 -2405
--468 5894
-540 2961
-9465 -2109
-3293 7464
--3995 5227
--5295 7618
--6302 5997
-3609 9296
-2309 8527
--8150 -6255
--4953 -2783
--1010 -3004
-4568 9188
--5033 9328
--7130 -7303
--7184 -3761
-8100 -9757
-1894 -8536
--4671 -3922
-5147 2131
--3278 192
--481 879
--8232 8213
-5792 -9713
--8790 2830
-9642 -1219
-4626 -3905
-7268 -5212
-1071 6996
-2049 -1423
-8381 1804
--4158 -9251
--5875 -8573
--9313 -8402
--7601 -4020
-2064 -3683
--2556 2997
--4147 -2028
--6098 -4661
--6492 -3459
-254 -7958
--5836 4255
--2930 1535
-7965 5050
-4428 1111
--9566 -9881
--594 8158
--2900 -3484
--3418 -8573
-2492 -6931
-9506 -6110
--9045 -6421
-5913 -4478
-8814 -7632
-3076 -179
--4807 4248
--5473 -9639
-5908 4043
-8253 5305
--588 -7605
--422 1807
--8438 3893
-1928 828
-9995 1020
--5059 -2872
--6704 7795
-2991 -1115
--3369 4136
--1067 -5980
-2701 5290
-5754 8088
--2367 -6574
-6745 -3181
--722 -84
-9798 -7081
-6400 8615
-8697 -5395
-606 1260
-1469 1403
--4054 -3971
--9105 -5265
-154 -9660
--8107 5258
-8702 6162
-6756 8174
--1841 -2673
--6610 4322
-3055 -1280
-8792 3048
-869 -483
-6623 -194
-4659 8223
--4848 5804
--16 3737
-1758 6807
-2066 -9622
--4394 4888
--2226 -8129
--1783 2435
--524 6731
-7542 8309
-1741 -577
-6244 -1498
-9693 -2352
-4402 6020
--5529 -2953
-6574 1855
-2261 7274
-9697 4943
-6427 -3989
-628 -6596
--6315 -3110
-5524 4252
-674 -2541
--5179 -3524
-3630 3587
--3507 -9322
-8365 -4748
--2451 -9283
-4862 8378
--9398 2049
-4658 8051
-8266 3295
-3608 -6047
-8697 6786
--9534 5518
-3781 -5787
-6641 9103
-3267 -5627
--4366 3475
--5155 -8124
-3113 -1977
-2074 -2874
-9381 -4420
--8987 -9869
--9664 -87
--8216 1934
--1045 -7775
--5384 3950
-5917 4979
-9055 -5584
-5185 -3592
-419 7370
--7623 -879
-980 4925
-5244 -6679
-4478 7153
--5888 -1301
-7999 -4146
--6804 -6922
--7561 -2950
-7015 6208
-9105 6168
--3769 7555
--3004 -3018
--1246 7632
-7603 486
--1733 -5565
-1334 1462
--3539 -9386
-6119 -6818
--5611 2263
--731 -9952
--3299 -98
-6012 -8498
--7524 -3958
-356 -615
--6746 6793
--4130 4286
-788 -3070
-1015 5631
-4036 6061
-6170 -7862
--8549 -5028
-9357 -9011
--5410 6452
-6618 8197
-3711 7686
--2884 -9268
--1395 -656
--3276 6902
-4664 -5215
--3966 7888
-1631 3883
-978 8708
-5064 -8899
--9853 -8093
-2156 -2442
--6030 3047
-9223 -9485
-6924 -9688
-5199 -74
--2674 645
-8322 -9719
--9759 -8114
--9042 2857
--9862 2777
-4087 -2527
-8119 -2431
-8908 -6634
-4412 7542
-6204 16
--3104 4222
--7787 2364
--9546 -8281
-7400 460
-5499 4819
--8258 -5315
-6036 -4249
-8223 -3495
-1354 -9391
--1764 -6576
-1581 2986
-5986 -9382
-7554 -2650
-9801 9993
-3145 245
--8650 -7252
-7049 3199
--4486 8663
-3002 6155
--7932 8162
--7567 2796
--2447 9456
--2935 -2129
--9023 -7178
-4675 -1633
--1768 5041
-3344 -7271
--6908 3346
--1131 5730
-9964 7973
--8126 -5909
-9411 765
--3996 -1296
--5485 -2495
-9603 -1944
-3338 5240
-4404 3646
-62 5204
-5350 -9773
-4319 -3702
-2380 7268
--1621 2333
--1479 -8432
-8301 -7882
--583 -3371
-1055 3678
--931 -2378
--955 -1168
-2868 -2588
--2338 -9660
--5089 5754
--9315 -24
-5999 8135
--5782 -1217
-2565 9032
-9138 4498
-2379 1711
-7958 381
-8815 500
--4637 -5845
-6061 1802
--578 -5586
--2119 -4286
-6663 7069
-5443 -5806
--2554 -3574
-9619 4326
-7769 9350
-326 1655
--8395 -7298
-7938 -7850
--5902 -9392
-2123 -9724
--7707 7094
--475 -2924
-2954 -8375
-516 468
-5947 5001
-5559 -9145
-2816 2791
-4620 -6564
-8336 1498
-3317 4866
--1979 -6013
-6154 821
-2607 -8976
-7710 -7927
-6254 -9403
--9110 -5505
-7615 8433
-3615 2907
-5927 9374
--4563 -6360
-6 -5612
--7952 4793
--3379 -556
-494 6809
--1755 70
-8924 -4356
--2982 6501
--496 8762
--7386 7292
--2094 4800
-8839 758
--9353 7753
-3003 -7379
-2710 2627
-7318 5947
-5693 -6714
--2315 4803
-8143 -3591
--8624 -828
--6299 2961
--9254 -2203
-4811 -6798
-907 8299
-2352 5617
--2054 -7601
-1169 209
-7731 3154
-425 4763
-9900 2384
-2311 106
--5058 -1339
-5836 -6668
--7694 -2759
-9064 6639
--4083 -8846
-9434 -7298
-5552 3545
-2704 6191
--9049 9083
--8274 -6698
--7430 -1253
--953 6165
-8993 -5720
-1776 1489
-6626 -4929
-4046 -1601
--5790 6236
--3843 1201
-8079 9942
--1303 -8482
-1856 1389
-4295 5737
--8232 8913
-7747 2534
-6752 2551
--4754 -4088
--4398 3771
--5622 -280
-7975 5324
--8393 9420
--9578 -9379
-4549 -8133
--1084 493
--3291 -1462
--6337 -5827
--5299 -6808
--3403 8713
-9023 8543
-7267 6199
--5950 8521
-4650 1220
--2879 4242
--5861 -750
-7307 -7837
-5050 -1356
--8363 6125
--5490 -5303
--6277 -4009
--3511 6273
-1000
-3303 7406
--8040 -5037
--4324 9859
--5368 1676
-3604 -3702
-3456 -8112
--1195 6834
--2364 9737
-867 1245
-6155 -6423
-1683 -6314
-2124 6324
--5149 149
--8406 -6274
-424 -8928
-7907 5564
--5720 8040
-1327 -5026
-4650 3272
-9592 -6568
--2136 7897
--6983 -4021
--7321 -7038
--9924 -4914
--5407 -4954
-6832 -4617
-5360 -3684
--6281 5337
--2784 4324
-5918 -7915
-6229 4612
--6920 7676
--4386 -954
--4603 -5871
-4318 7167
-9732 5782
-17 -733
--1196 -3669
--9946 3206
-3608 -8566
-865 -7446
-977 -6993
--5075 -3031
-3371 6402
--5907 3895
-4782 -1455
-6792 -4849
-6793 -2669
--6238 -2681
--3147 3272
--5508 -3180
-6197 -3302
-3518 -9104
--2923 978
--2781 4639
-364 -6759
--9535 7035
--8888 2862
-1298 2012
-8878 1529
-3335 -6214
--3738 -2943
-3436 4563
--4955 -7052
--7404 2991
--386 4251
-6565 6656
--3790 -5285
-2745 198
-864 -9771
-9900 -9541
-6930 4877
--1746 5902
--9919 6403
--2206 7438
-8673 1823
--6221 5954
--6254 -6172
-230 -4308
-6614 -873
--3690 -6550
-9643 -6602
--8434 9492
-1446 8215
-2816 -1125
--2484 4118
--8864 7083
-7413 -8763
-7973 -8530
--3174 -4594
-9135 1189
-9031 -7261
-9347 -2155
--3251 8582
-4166 7104
--8818 -8526
--7430 -8970
--9944 4200
-9083 2426
--4899 -9207
-6163 3562
--4617 4145
--3405 -9078
--420 2759
-3936 5165
-3525 6920
--2764 5076
-7225 5042
--3167 7367
-4975 8527
-1435 5422
-3286 -9697
-7385 -8522
--9454 -3001
-5949 -1768
--2316 -9213
--7214 -9212
--5484 -9943
-9054 4866
--6698 5493
-5971 9883
-346 1353
--9715 2435
--1327 5128
--4343 9391
--1410 1093
--2638 8750
--6854 -5121
--8139 -310
-8554 -5320
-373 735
-1137 7028
--8935 -4695
--552 -666
--5016 7963
--638 4139
--4380 6541
--6917 -6957
-6852 -7018
-7909 -3166
-9134 7661
--4934 4870
-9938 -7805
--2009 1976
-5076 -6998
-820 3639
-9245 -4040
--2345 1626
-7078 -1414
--6065 -431
-4656 4243
-9257 3072
--3033 8954
-7631 2814
-984 6278
--1605 3294
-3098 -6779
--3273 -8736
-4575 -3854
--2864 6855
--266 -2043
-7093 5107
-2607 1429
-7209 6318
--7116 -6364
-5962 2706
--9996 -7674
--5250 620
--3710 -7588
--3328 5544
-7708 -1247
--9830 2986
--4016 -6271
-9296 9701
-3738 1597
-1678 -2568
--6590 -8564
-9851 -4783
-6142 -5961
--8939 -5904
-6773 9621
--8914 7766
-7637 446
--6725 5210
-7240 -6876
-7131 7954
--9645 4725
--3183 6702
--3152 6942
--4465 -2704
--7704 -9438
--8120 8719
-8231 -7343
-6902 -1097
--6876 -7500
-907 -156
-981 -3519
--4646 -8164
-4261 530
--1225 -8324
--8458 -278
-3729 8208
-5254 -251
-687 -824
-8833 9481
--6823 -144
-5795 2435
--7907 -753
-2324 6574
--7039 -6598
--2288 3226
-6 3142
--1750 6629
--8776 -988
-3168 -6326
--4269 -4292
-850 7460
--1927 -2767
--9896 -2755
-3464 -2923
-8677 -4461
-9205 2015
-6196 5348
--6773 -6465
-5962 945
-3086 -2692
--7285 -251
--5311 8562
--2301 -97
-4921 -9422
--8041 -77
--9074 -3873
--5899 9321
-8182 -9829
-1915 -7415
-1063 -8767
--3582 -3869
-7598 -8330
-7864 -926
-9373 3371
--2647 1072
--6244 -648
-288 8601
--7905 -1535
--4881 7375
-633 5389
--3607 869
-790 -8963
-8526 9128
-1335 9910
--9345 3247
-7638 -5876
--5140 -5717
--8072 -841
-8484 -6591
-6621 2928
--6235 1685
-1730 -1154
--1637 -3140
--6258 -4192
--3220 -1375
--3704 -7539
-9387 5661
--2266 8423
--2898 -8090
-9085 2062
--728 7117
--7083 5415
--7225 6646
-1285 737
--3887 -904
-9526 2001
--4001 7796
--927 9426
--5997 -4772
--879 3799
-5933 1135
-4354 3261
-8276 -9581
-9368 6876
-3165 -8662
--543 4167
-817 -8212
--3912 8239
-4340 -8810
--1349 7644
-6940 -716
-5403 -5399
--4143 562
--8129 -5457
-7848 -2869
--1477 6792
-9833 -2627
-2925 -784
--2355 4273
--5643 -8213
--2237 -1312
--6820 7975
-7373 8642
--6102 -7997
--3968 8888
--9179 -1946
-9962 -1913
-5341 6314
-5283 4518
-5210 2053
--3707 -3586
--9515 7161
--6324 1866
--8601 9276
-967 8945
-1976 2817
-8864 -6127
--5022 8515
--6239 6117
--5518 -1984
--1414 1830
-9555 -3063
--3063 4035
--7109 -1461
-5525 -5544
-2865 -2854
--9593 95
-1387 -8935
--8937 7115
-4255 1460
-8031 -9521
-3457 -7716
-4555 -4412
--5872 -8637
-5320 -5299
-136 -6966
--1782 2710
--9794 -1169
-3268 -9098
--1900 578
-7905 -344
-1497 9713
--7373 -8601
-5059 -5128
--3386 -9348
-9739 -8453
--8057 8148
--2099 1696
-7703 -9081
-586 -945
-3091 -7343
--7766 -194
-7270 8123
-1214 -253
--7944 -298
--3243 -9403
--5731 -5699
--2029 2250
--1141 -1156
-7154 -9252
--2892 1837
--6379 -4973
-2205 -2348
-3834 2806
--6255 -3953
--512 6679
-9144 4643
--552 -2800
--6805 -1632
--3382 7547
-7513 -3646
-1761 -6241
-8009 184
-9927 179
--369 3189
-4765 3347
--3464 8604
-9856 -3999
-4350 6279
--6198 -9782
--3075 -3267
--3362 -8290
--5613 5622
-3320 -9389
--1139 -1672
-4853 9081
-1665 8404
-2217 3154
-5256 8144
--245 6799
-3810 9538
--5901 1656
--3096 3826
-8116 2905
--8317 -4191
--9520 -7672
-3417 -7130
--9330 -5940
--7882 -2533
--6477 -1019
--8210 -8963
--5593 8276
-858 7048
-4177 1912
--4956 3326
-9684 -3241
--1776 -4375
-7514 1132
-8547 -2234
-3531 -3373
--8883 -9207
-8927 7235
-7494 7152
--697 4447
-6366 -9592
--137 -1105
--4624 -7453
--7820 -69
--7539 6117
-60 -2182
--3611 8910
--2922 4128
-6840 -1298
--9094 -9366
-5142 -8632
--1380 2701
-4328 7594
--6697 -3271
-774 5004
--1469 4823
-6728 -2572
--7777 -6839
--2117 1597
-4750 876
--7655 -987
--28 -6268
-4632 7983
--3645 -6010
--230 3470
--3145 9737
--8781 6805
--6667 2685
--3740 3836
-4720 -5307
--9725 -9009
--2654 -1621
--1819 8450
--980 -1791
--7297 -9956
-5204 723
-7955 3456
-6354 6108
-9561 -891
-9077 8754
-3859 6893
-4161 -3231
-6525 -8072
-2295 -7803
-151 4227
--4679 547
-42 7383
--7807 -9203
--8961 9509
-5778 9636
--3226 2049
--3446 8168
--5953 -977
-4277 -4953
--5692 7358
-1274 46
--4039 4968
--474 5141
-3917 7073
--8553 -7384
-161 -9961
--7654 3513
--8898 -1795
--6516 4280
-5206 -8478
-2071 -4509
--6220 9328
--9521 -9508
--242 -6706
-4622 -6109
--242 -6075
--4809 8819
-9042 -4817
--6492 7649
--5509 -9331
--1119 -9568
-8553 -5689
--3805 -5644
-230 -4620
--8852 -1795
-6486 -671
-5804 -3397
-5592 -5455
--6710 6450
--8601 -742
--8844 -6817
--8608 7690
-3078 -6450
-2673 1973
--4910 -8354
--2152 -5209
-8923 6028
--3921 8053
--3307 -2036
--3713 -4621
-7773 5148
--8807 -3655
--1320 1933
-576 -8945
--2458 1566
--9586 -4790
-4421 1867
--208 1881
--1936 -3654
--9825 6653
-6436 -3128
--6723 5316
-208 9333
-3947 8849
--2148 2455
-7271 -7609
--886 -4548
--2651 7668
-9942 4406
-4997 6071
--3425 3336
--1721 -1761
--7331 -2295
-5222 8407
-2225 3708
-8655 -956
-2564 6658
--7744 -4856
-7419 -7218
-870 -6419
-6475 -4316
--6237 9957
--8036 1604
-8003 9455
--6109 7312
-6873 138
--8586 -6758
-9734 1831
-3014 9884
-6348 1077
--2539 8490
-5201 -8344
-4281 -6415
-5539 5498
--3180 4672
-5358 827
-1031 9394
-9250 4458
--3903 -9477
--1548 -2594
--7124 2368
--7189 -8640
-4125 -4426
--9432 -9675
--2433 3593
-6831 -1011
-3356 633
--5805 2180
--7505 5232
--7508 7424
-833 9781
--5311 -3539
-5683 -6341
--1674 -6448
-8406 1080
--5260 3301
-6681 -505
-8505 -6636
--603 2983
-5554 -4007
--1967 -874
-7632 9041
--7653 2158
--5117 5132
--876 -9353
--5423 -3171
-9322 -2550
--6605 -3204
--1297 -9530
--1193 -4134
--146 4487
-4176 6801
--3321 8423
--3694 -8436
-7198 -3674
--7785 -1175
--5390 -1916
-8001 -9100
--2716 -3114
--7681 -692
-2148 -6008
-7455 2586
-4749 -7946
--4601 423
--5439 4744
--2336 -1502
-180 2302
-5739 -163
-7128 -3573
--5465 7662
--9764 5563
-7482 5741
-6395 -2178
-216 -6084
--3725 6094
--5771 7039
--4395 -5846
--1925 -9939
-6391 7804
-9695 -2066
--9245 -7374
--9351 5911
--3605 -26
--6718 497
--8653 4936
-4468 -342
-8778 2228
--4193 -1925
-5270 880
--3234 -2357
-2784 -290
-6992 -2453
-6256 7815
-3041 3089
--1225 -2923
-2446 -3103
-2973 -1627
--7553 123
-1078 -8387
-872 -332
--9843 -7472
--8392 -8220
-9945 8188
-5369 -4257
-9581 -3828
--1895 -8222
-1522 -9425
-9462 -3864
-6549 1666
--8282 -5099
-5531 -480
-7635 -9283
-3360 -2167
-4489 -1266
--3349 -1284
--9285 -9930
-5968 4423
--7962 -7306
--4453 3525
-888 -1416
-3074 1831
-7874 8513
-7942 9283
--5663 -3540
--5622 -500
--4217 8512
--3905 -5860
--881 -7516
-1819 4288
-1078 -6816
-7821 -9126
-3599 419
-3948 2978
--3899 -6618
--3967 8685
-4716 -3552
-8611 1921
-2678 9778
--1402 8973
-3625 -4399
--3001 -4438
-5646 -1680
--5118 3065
-3085 -4385
-7527 -807
--2670 -5675
--6233 -3483
--9485 8145
-8565 -7260
-7533 -7561
--5663 3838
--9430 -9821
--8493 3803
-9741 -4441
-853 -8833
--4272 -8734
-8802 -1671
--4638 1039
--5585 -6036
--6647 -8638
-6652 6854
--9358 -6285
--9346 -9481
-8400 7170
-3364 5695
--9694 5460
-3756 -85
--1215 6812
--1575 -6296
-6521 6342
--8960 -4999
-3384 -5430
-816 -8333
-5711 5114
--9863 6340
-1026 -2238
-6324 8378
--7874 -3542
--8431 9576
--5001 -2179
-5753 7174
-1640 -8336
--5256 -4913
--1726 828
--9181 6228
-551 4136
-7844 6586
--3405 -6998
-2137 4718
-4098 -2803
-2428 -6139
-7690 4780
-2896 169
-5082 -6808
-4945 4097
-1783 2978
-9549 9569
--6352 -6908
--7030 9888
-2627 7305
--5767 -3020
--7566 -6755
-9312 -7633
--4489 5575
-5074 -2472
--591 -7669
--5236 -62
--1422 -5852
-4569 4286
-7553 8899
-7425 -3879
-2478 2150
-2135 -7489
--3737 1359
--610 -7761
--9956 1781
--4106 -5254
--6359 -6173
--406 -7177
--6018 -156
-220 -4091
-9503 -3230
-3860 -8551
-5863 5512
-6383 9248
--4499 -742
--4563 402
-9547 7172
--8342 119
--3934 1962
--5233 -1613
--1207 2754
-1879 -3540
--7264 6631
-405 9501
-5493 265
-4761 9714
-570 5068
--6157 8230
-8001 2486
--5989 1802
--1472 -616
--7279 -2617
--768 7324
-274 -7974
-653 -8411
-6856 -7836
--592 486
--787 2913
--4296 -2235
-1898 -2387
-8270 8411
--2493 5338
--5017 -5238
-3029 4224
-8936 -7043
--9958 9475
-1638 -9331
-21 -4689
-403 4593
--8847 -3532
--1735 -731
-2280 1032
--3122 -6013
-3239 -1182
--5772 -5649
--2423 6736
-4873 -2651
-1113 9427
-8769 2651
--6304 -4954
--6969 -495
-96 -2711
-600 9157
-2886 347
--7286 -1373
-8127 -2220
--1101 -9382
--4129 3453
--7994 -8037
--3152 725
--9913 -9428
--6450 -1224
-9873 -1454
--596 -7036
-2836 584
--7806 -5655
--5556 -6230
-1794 6434
-4799 3893
-9085 -2062
--3053 -1053
--3278 6888
--1505 2995
--7285 5202
-5696 -2881
--8061 6747
-6842 7466
-9006 2497
--1673 -6755
--3052 -8528
--3100 -5938
-6656 5729
-7326 -10000
-7651 -9851
--671 -1347
-7207 1570
-6537 -4493
--4282 1108
--436 -7376
--8526 -6684
--8178 469
--8206 2416
--1547 453
--9544 6169
--613 -5706
-9633 5067
-5307 5907
--7323 5168
-1888 1933
--4798 2457
-8674 -5546
--2091 -8610
--6571 423
-7904 -6506
--3451 -9552
-7612 6612
-4049 3723
--5110 7523
--2924 -5344
-2906 -6239
--5809 8961
-6352 1546
--8922 2662
-7942 9151
--5616 1797
-7680 -8016
-5955 -8391
-4915 5476
--3196 -9214
--8338 -2820
-5580 1569
--2948 -2304
--5490 -7585
-6928 -1489
-7177 8215
--686 6604
-6727 -3414
--3140 -4329
-4020 -8426
--7931 -7047
--5027 -997
-849 8438
--4360 -2342
-1534 4407
--9300 1868
-8014 4317
-6685 -9353
--5037 4368
--5886 -1865
--7249 5213
-5637 -4559
-1983 6320
--8299 1973
--2721 7120
--646 -5926
-5579 -6627
-381 4047
-8786 878
-957 649
-603 -366
-2590 -601
-8730 6255
-3746 -4394
-4217 8921
-6480 -1791
--9850 6671
--1615 -7134
-7733 4998
-586 -4277
--1846 6729
-8755 4042
--9296 371
-1172 -9661
--4059 3502
-6462 -5705
--2327 1330
--6403 -3381
-8468 8071
--1187 -313
--4120 -4133
-5075 5644
--5369 2870
--5098 -3711
-4824 -4657
--1027 6581
-4127 4464
--6023 -9695
-8446 -2076
--3348 2805
--2965 -4724
--7030 -1790
--56 -5116
-729 -5646
--8089 -643
-9657 -5082
--8116 -3178
--8012 6120
--6575 -8503
-3367 6690
--1122 -373
--4388 8334
--5176 -8462
-3480 1781
-1515 -8164
--7017 6618
--9981 7737
-9748 -8682
-5467 -7054
--6474 9295
--2908 -77
--5612 413
--4926 -3562
-4697 -72
--3901 -8463
--5031 -8864
-2224 -7832
--1061 3280
-8530 -5067
-7149 2713
-3119 -2074
--7026 3372
--9410 -3781
-5431 4040
-5571 7054
--6438 5806
--4194 -241
-8988 -4381
-8065 -4829
-460 6481
--4046 2166
-2579 -1372
-9944 -7761
--26 892
--1443 366
-5986 7480
--9438 970
--8203 -562
-9719 -2878
--8279 -2318
--4469 7169
-6450 -933
-1217 -5701
--3306 9294
-2628 -311
--4184 -3984
-6224 860
--5643 5727
-7102 -4195
-493 1437
-6468 -7856
--2316 2530
--589 5169
-4655 -2140
--9989 1661
-1000
--3119 9842
--4080 -8422
--4625 -6404
-6550 -5028
-6792 4980
--916 5389
-4774 7754
--7714 7409
-195 -808
--9929 -9125
--3101 8799
-8610 -741
--6443 3052
-374 -2321
--4302 1890
-8508 2181
-7102 -2460
-8874 -6699
-1956 261
-961 8362
-3156 8126
-3292 5007
-2463 -5283
-5955 -786
-3996 6341
--1810 726
--9949 9229
-5461 7908
--4050 2655
--9425 -6403
-2151 -3783
-1745 8292
--9765 8836
--1668 1212
--7281 -2578
-6341 -2101
--2829 -2098
--2386 2937
-3536 -7666
--5900 -4120
--6756 3616
--4775 5675
--491 -5501
-8566 3348
-3268 7283
--9821 6328
--6274 1088
--8050 -2805
--4715 -3116
--9900 -1745
--4609 -2364
--3779 5535
-6885 3557
--2750 4891
-2934 -6163
--6264 -1208
--7918 -4638
-514 -6355
-9720 5462
--6861 9222
-6986 -5789
--5165 8297
--8511 8167
-8507 -7866
--4403 -4109
--2370 2482
--5893 -6302
--9989 -8931
-7651 6491
-3573 -2259
--9327 -3488
-3765 904
--2121 -1968
-827 7015
-9418 -2345
--6368 -6291
-6584 6496
-1204 120
-2427 -4930
-5927 5601
-8570 5049
--4652 -7722
-1679 9069
-7328 18
-3836 1150
--5978 6367
-3279 -350
-5633 -7055
-4748 -3963
--8318 -1971
-6842 4712
-6950 -8153
--3788 -2894
-6525 -2941
-6093 9733
--9987 -9542
-2137 -6314
-7508 -6839
-1295 -9060
-5103 -9664
--978 -12
-4029 -5123
-684 1093
-3987 -400
--6601 4842
--43 -1903
--4748 -3595
--1993 -371
--7327 -3800
--2802 4344
-7131 2249
-1809 -1933
--1174 5722
--7206 -8297
--297 5816
-6251 8376
-9455 8672
--6511 -869
--3626 1007
--9180 3911
-8448 1199
--6949 -7568
-9781 -9896
-5603 -9937
-2156 117
-8035 1882
--3359 -6638
--7220 2732
-2199 9146
-5570 -7078
--2991 -9050
--1481 1354
--8515 -2461
--9796 4123
--2673 1172
--3555 5251
-6400 -9069
--8243 3271
-279 2055
-8406 2717
--7072 -9653
-8674 4191
-4827 -6046
-6200 -8603
-1554 -6113
--1630 3798
--8091 -9432
-8382 5961
--9196 -9580
-1821 804
-62 -4174
--9274 6925
--3335 -9710
-476 1335
--599 -5683
-6548 -5207
--651 -8627
--7888 -6233
-8802 -847
--4952 5354
-3727 -4477
--9285 5760
-8153 2036
--4546 277
--4130 -2217
-8583 -338
-9362 9572
--2359 -1675
--243 8234
--3022 -1560
--5992 2388
--306 -9036
-7944 1634
--9834 -2050
-4947 -8999
-5270 -1200
-3249 -4719
--8384 2308
--9935 6182
-40 986
--1081 1978
-4327 -7288
-2008 -134
-917 1008
-5603 -6357
-1885 -3828
-4036 -5576
-6877 390
--5311 -8047
-6024 -4047
--8737 -6733
--3193 1077
-4578 5670
--4205 6193
-1636 -6345
-1628 -6951
--6107 -2903
--5041 -9248
-5663 -2115
--3123 -8881
--2426 707
-1909 5079
-419 -7821
-6051 3680
--6815 9693
--3317 5468
--4234 1263
--5239 -3113
--1020 -1000
-8184 7773
-5112 6810
--7331 2213
--8290 -6464
--8764 9319
--8637 9253
-3722 2008
--1852 9570
-3307 2297
-5237 -1072
--8352 4003
-2664 -3592
-669 6303
--990 2796
--855 -6053
--9517 2880
-7967 2616
--8270 7891
--8753 1111
-662 7060
--8998 6096
-9810 1315
--9763 5322
--5890 -7947
--87 -7703
--5107 1234
-258 -7612
--3936 5301
-4715 2277
-8986 -4285
--6446 -8188
-9329 8577
-8358 4520
--907 6420
--764 -5795
-9699 502
--5358 -5669
--2719 -44
-9968 -1082
-8672 8416
-2998 788
-3576 -7425
-9726 -6022
--5251 -9543
--449 -396
--7246 8768
-4569 4325
-6338 -5941
-9635 -8358
--6936 -1300
-8057 7652
--2884 313
-5186 -163
-6454 -6976
-4761 8500
--8685 -397
-2954 -9885
-405 -7128
--6564 -3946
-1696 -5107
--2614 5084
-8060 -9504
--3325 3611
--8876 -8975
--7068 5239
-229 -143
--9058 495
-5152 4952
-9989 4346
--6259 -5911
--8878 2250
-2395 7873
--2013 4908
-4575 -416
--810 -234
--1865 2796
--994 6095
-8114 2601
--2127 -9667
--3290 -1418
--3683 1499
-4253 -3249
-4448 -6477
-9207 9991
--3757 1799
--7106 -9027
-9435 1790
--499 -820
-2272 -13
-9238 8454
-2010 -5800
-2728 -1482
-1489 -6412
--1295 2774
--8912 9478
-3973 -3180
-9849 -4309
-1941 1625
-4824 -5188
--3482 9630
--8681 -6888
--8755 6936
-9149 5392
-343 3673
--137 -5721
-1050 -656
-6134 -7015
-34 -4692
--171 2676
--1919 -2118
-3381 7169
--426 3333
-5030 -4660
-7103 -4147
--7138 -5128
-5407 7756
-9665 4760
--11 -2994
--554 4952
-452 -4370
-5422 -2113
--4857 -4805
--4178 1814
--6456 5444
-3611 4140
-8183 1898
--131 -6869
-3132 7181
-4843 -2448
--3333 -1919
--7283 -21
-5213 -8339
--6691 1584
--8666 -1308
-8510 -2694
--1372 1947
--3385 -4518
-4888 1310
-509 -3042
-5102 2609
--4414 -7209
--3752 161
--533 -3104
-4844 -428
-1834 -3359
-1992 7370
--1545 -8
-8648 4073
-223 -7819
--1929 -7990
--8841 6631
-509 -5161
-9053 7024
-2158 1771
--816 -1643
--1945 -7411
--4395 7099
-5757 -1071
-8373 571
--3756 9626
-2879 -2850
-1885 3723
-3051 6657
--9119 -1664
--6698 544
--5070 -387
-8966 8643
--4166 1500
--7139 -1746
-6007 -9199
-2068 -7311
--3139 1270
-5296 -9158
-4481 -4638
-8995 6616
--9318 -9626
-5666 653
--2064 -2593
--2613 -2409
-2571 -6856
--52 -7248
-8600 -6819
--7093 8826
-6626 -1742
-2458 8568
-4996 5099
-2323 -2387
--6702 -9656
-7311 6361
--2975 806
--9980 5867
-2932 5111
--3112 -7382
-9912 -9056
--4359 -6273
-6334 1263
--2289 9929
--1315 9224
--8080 6749
--5929 6006
-2031 -1212
-7633 2291
--7779 -9358
-3947 5998
--5170 8469
-2674 -1350
-4477 -9767
--8692 3747
--4577 -1279
--1550 7828
-2942 -4943
--9788 -1206
--3496 -2646
-8881 -8773
-3779 3904
--3016 2820
-3767 8928
--7780 3690
-2450 -8810
-8859 -7895
-8533 -1375
-8191 2303
-6662 -3725
--8348 -9592
--1336 6125
--8309 845
-1419 -9312
-5091 5135
--5286 -3047
-6395 3494
-6758 -6160
-7954 -4513
--8462 274
-1650 2909
-9598 -410
-1339 4095
--4054 3060
-3248 -2565
--5050 -8309
--4574 9652
-757 9255
-4252 8501
--6180 -2655
-4827 236
-1622 8335
--3071 1897
--2595 -5867
-8356 4684
--668 -5638
-11 1675
--541 6638
--6411 -7435
--8430 -1349
--6988 -274
--8684 -1824
-2796 -79
-1633 5061
-3482 -8499
-4053 -7253
--5659 7298
--2333 4256
-868 3401
-8645 -8663
--2572 3192
--5545 9352
--8455 4681
--2442 -2098
-5218 -7327
-5441 -3484
-9403 -89
-3808 -7991
--5156 -4653
-9606 1084
-7595 -9321
--6305 -4781
-2045 8900
--9809 -6549
--279 7903
--2163 2536
-9007 -7725
-1891 3945
-3922 3732
--6232 -1449
--6667 -6063
--763 -103
--2914 3946
-4768 4933
--2642 7906
--1854 9587
-8656 873
-2583 -3076
-800 -3624
--7388 -7451
-5809 -1908
-8466 2228
-1572 -9307
--8953 7312
--3464 -4507
--2132 -4797
-8358 2750
-6268 6050
--1293 9656
-1380 1099
-7219 4974
--6895 -1250
-4404 9173
-5974 -252
--5717 -2107
--194 -87
--2376 200
--8764 -364
-8489 3463
-1998 -7094
--6067 7184
--5111 -2436
-1210 -2562
-8950 -8324
--1290 -6180
-898 -4436
-1122 -1659
--9862 6685
-753 3145
-4971 575
--7419 -6564
-9678 -8175
-8106 8095
--1895 6648
--8531 -3931
-5472 -2701
--8727 -1833
--5772 -4236
--8381 -4018
--2363 -3469
--8669 -3858
--4404 -4683
--1661 -69
-1935 5805
-9866 -8132
--4769 -655
--8041 -6382
--9747 2808
--7650 -5249
-819 -7138
-2820 5850
-1949 1755
--9558 9661
--5458 -285
--5800 -1971
--4106 -312
--658 5410
-4746 7130
--9017 6302
--9859 242
--7085 -710
-7240 -139
--6861 5074
--9522 -6958
-8061 -2632
-7949 -5864
--2863 585
-7438 -184
--1235 -9558
-1238 -3482
--429 6690
-567 -1953
--532 3300
--4942 5273
--5352 6654
--2926 2953
--7182 -4178
-267 1605
-1519 1733
--4426 8504
--5832 4144
-7556 7687
--2595 -937
-9614 6329
-7426 6870
--505 377
-9615 2067
--4757 3668
-8290 4095
-3453 5244
-4396 -1855
--3123 -9338
--7682 8898
--5884 6407
-1018 7431
--3181 -4752
--1558 9166
-6457 -6004
--2237 -8561
-448 6326
-4799 2709
--4585 1223
-8259 -5475
--8267 -4653
-671 -2151
--8922 -7140
-7560 -4681
-6166 803
-9292 -7737
-4999 -605
-2407 -218
--7796 -5760
--2081 -5793
-8964 1093
-4512 1972
--6043 6272
-1596 6262
--4373 7165
--5397 -7624
-1409 -8600
-4579 -5681
--6201 3305
--1273 -2516
--6736 7224
--9253 -6442
--6787 -1881
--7167 -4668
--8196 3188
-8479 1485
-5241 9290
-2290 -3441
-7016 8998
--1657 4278
-484 -1585
--8976 2982
--9544 -8206
--4700 -6331
-2638 314
--4748 9632
--6466 -8292
-3822 4856
-5183 633
--2886 -8451
-853 9022
--6854 -8347
-8704 748
--7955 4901
-6597 6028
--6766 8591
--8297 -1059
--9965 -3227
--1821 -3635
-890 6222
--5120 4559
--3666 -6470
--5200 7845
-8491 -2347
--5697 4722
--7067 -3326
-7071 5803
--8105 -2976
-5610 -7640
--5600 -7864
-4163 -4614
--1969 4184
--7371 -711
--7870 -5781
--8393 -6315
--2741 1739
--1410 6915
-9367 -1939
-7870 4687
-5691 3563
--8373 -6238
-8546 -8373
-5656 3734
-8796 9015
--2117 -6640
--3266 -8987
--2937 -9619
--2692 1269
--1318 3109
--9476 -2812
-4780 -6058
-5381 -4880
--122 -5758
-238 8244
--4246 696
--9572 -4992
--5526 6006
-5784 -4273
-2 -7268
--1173 6858
--6304 8381
-3817 3857
-9455 172
--2238 35
--2753 5415
-8530 -6609
-6140 -5217
--6744 -9185
-5245 2684
--8660 3338
-9087 -6952
--730 4056
--7762 -6963
-2196 9538
-6076 -6332
--4921 -7165
-4807 7638
-7397 -4646
--467 8221
--7158 7586
--2425 -4029
-8249 8852
-8821 -5309
--6600 6312
--3372 -7000
-2072 -6817
-8235 -4601
-4125 7280
-2114 1895
--1889 420
--2583 3989
-2132 4429
-9185 -781
-3888 828
-3632 1850
-2234 -2543
-8842 -9082
--6465 -1636
--5388 -9151
--1794 -6615
-9082 1110
--9648 -255
-3333 4371
-6675 4095
-8661 -8806
--6331 8192
--514 -2037
-252 -7482
-9996 -9009
--5194 922
-9720 -3532
--7748 -6527
--6809 -277
-6730 5987
-4825 3327
--7360 -6603
--4261 -4274
--7071 -3239
--5726 8893
--8402 -7086
-8730 5761
--8359 -8417
-3168 -6586
-6722 4645
-8166 -6127
--7375 1233
-2415 2768
-5709 -6491
--5452 7696
--1690 -5205
--9454 -259
--147 -6024
--160 2737
--6527 -4479
-8630 -5104
--6156 -6765
--7211 5512
-625 -8067
-446 -7448
-83 1006
-841 1476
--9956 -2937
-7090 6139
-5530 -1938
--4196 1295
--9666 9105
--3431 9000
-1861 8146
--7526 -3705
--6199 -1665
-795 8265
--4573 -1375
-2238 -7341
--3761 -9683
--8695 -8800
-8154 -1703
-7333 2226
-1330 -2139
--5867 9852
-3969 -3685
--9841 -4733
--4820 -3233
-6981 -8259
-6130 -1675
-3484 -3546
--6630 -2590
--5202 -9385
--988 4986
-8104 -7405
-4530 5569
--3482 3561
-9590 -4979
-7873 -6995
--6226 -8036
-2696 4952
--6795 -2495
--9704 5777
--2970 6874
--9027 -2520
--7743 -9592
--7153 2437
--2331 -9238
-8831 9621
--5960 8807
-1268 -3537
-2608 886
-6713 7338
-3536 -5303
--4092 -3235
-2505 9602
-7199 -1059
-8119 7936
-2717 3218
--6076 -9633
--1139 7805
-2656 -2643
--268 9892
-9404 4969
--9190 2806
-5982 -1343
--1287 -307
--8388 932
-9287 -3186
--7518 5122
-2486 2410
-9572 1897
-5520 -9629
--3375 -3835
-2636 8765
-8707 5720
-6318 -4133
--1601 -6838
--7023 4785
--3040 2166
--6883 -9558
--5899 -796
--4170 4719
-2801 -4801
-4134 8754
--2863 -9193
-8816 -9060
--4245 -9398
-4548 8611
--4929 9664
-6723 -8502
-3795 7861
-4423 -2570
-9923 -3800
-8102 -8184
--4733 8339
-7871 -8490
--1733 7779
-1718 3958
-4129 -12
-9710 -4583
--675 6430
-3366 6660
-860 -427
-6414 5067
-4765 878
--9391 570
--9787 8033
-6417 8673
--4284 -5908
--9512 8331
--4863 -7517
-9279 -8620
-6005 6689
--4872 1028
-3974 3682
-2042 -1496
-7960 -5288
-2370 3907
-8277 5074
-3036 9248
--2844 1447
--6929 -3856
--6759 -5829
-5966 1364
--3041 1396
-6478 -8433
--9273 -3089
--6294 3512
-758 2350
--2574 5903
--9725 -4009
--8165 -7165
-8765 2731
-6101 210
--5735 4145
-5595 5142
-7771 -5110
--5667 -8550
-8364 8318
--6193 1073
--2602 -1276
--8449 7155
--2680 6744
--2927 9191
--4950 -2615
--956 9220
-6526 -8755
--4903 -3744
-7639 2243
--6321 5535
--7413 -7307
-4075 9091
--5155 -6886
--8776 2129
-8608 -8224
--9381 -8717
--962 -7968
-2890 -7272
-569 7666
-3934 7167
--2285 6480
-6766 1359
-697 -4207
--1938 6209
--6501 5989
-4309 1411
--4772 -6511
--9087 6026
-1698 -7323
-186 -4555
--2023 -1541
-8793 -8099
-8750 9790
-4831 2700
-7563 -8990
-1343 -5396
--5923 9380
-8319 -7456
--7925 -7474
--2462 3196
-5560 -256
--1656 2280
--7135 -5555
-10 -8032
-2710 -9497
--7305 -8648
-4273 8712
-3158 6461
-916 -641
-5164 2697
--7802 2082
--5104 4096
--154 -3955
--5995 601
-6997 -1270
-3160 -8178
--5374 3643
--8377 -5728
-2706 -5324
-8514 7159
--6705 2472
-831 -9662
--673 2547
-200 6700
-9362 9741
--4197 -5798
-6431 8099
--2739 -6815
-5039 -2495
--1069 6347
-8874 4051
--4384 -2007
-8639 1499
-486 -6643
-209 -8680
--1227 -938
-4860 -9793
-6907 -1800
-6732 -5566
-6526 7455
--2084 9938
-4527 -9763
--3149 -8768
-2859 -2916
-2635 -4548
-1403 4214
--3011 -9375
--5322 -2218
--2190 -6873
-9701 -8768
-1000
--7553 1413
--9530 8074
--3405 -5184
--3886 5123
--827 -2749
-8008 3892
-9337 -5318
-3704 637
-8766 -3438
--6608 2043
--5560 -1343
-6732 -2052
--2779 -3439
-8854 -4105
--7676 9465
--2663 -9271
--1497 -2515
-9233 -4966
-3161 -4721
-2421 -2156
--4482 1362
--9406 -6659
-2822 -9001
-9805 2264
-323 -3129
--5581 -4315
--8344 259
-3648 9326
-8847 3237
--3032 9880
-9287 5714
--2733 -7618
--7587 -6216
--7595 -8272
-6907 -564
-8820 1894
--6472 -5024
-4349 8565
--271 -6563
--6472 7977
-5825 6223
-8817 -6375
-9409 264
--6851 -4724
--9198 2970
--7984 8746
-9093 -5452
-8897 -2098
--8795 5333
--8633 -8354
-5797 -58
--3410 2063
--207 7476
--4059 2882
--3216 9245
-6734 7833
--6751 8166
--5442 -5738
--1435 -6337
-7585 -2248
-755 5547
-7660 8875
-7251 -6906
--4501 396
--9518 -4634
-8901 232
-1572 -1354
--3534 -7823
--6992 -8155
--5080 -697
-3822 -6039
-3509 -7778
-28 -7840
--1993 3379
-1513 -3404
--9593 -6374
--5715 8878
--7987 2284
--4906 4432
-7730 -7888
-8246 -3584
--2484 -2044
--2765 3537
-3753 -2811
--4196 5129
--1664 -7820
--8254 2726
--9662 2407
-2986 4195
--7697 9337
-932 -8257
-4531 -4873
-195 -2091
--6638 946
-5014 -5591
-9085 -8086
-6865 9349
--9825 -1856
-5053 -71
-8641 1323
-948 2790
-7745 -3055
--3218 -5775
-4480 -3312
-9444 -9549
-6647 8280
-1617 -4189
--862 9584
-7475 4508
-1719 4107
-372 -3535
--7149 2460
--6371 7098
-4796 8959
--7689 -1132
-5822 -4869
-4709 9289
--5234 -7777
--4438 -4021
--3934 911
--1557 -8296
--6289 630
--5474 -9442
-4695 -5160
-7197 -9282
--7196 4732
--5715 6092
-4635 2601
--8288 -9897
--4018 82
-8273 7025
-7757 7047
--5202 -5796
-9362 1092
-1685 -959
--574 8670
--6861 4324
-2838 8190
-3640 5673
-9047 -7535
-1783 -5579
--9817 5301
--281 552
-6006 -1392
-490 -5407
--8628 -9018
-8169 -2636
--8996 4139
--472 1453
-4066 6532
--1724 2941
--1167 -3367
--7888 -8595
--1932 4600
-5545 6010
--7192 1614
--1001 5675
-5685 -6065
--1766 -6087
-2763 2549
-6540 -380
-6156 5185
--7517 -6553
-8095 -4255
-5660 -7626
-1985 3489
--3888 -3262
-3330 7792
-9834 1782
--4276 -5668
--9924 8649
-7822 8028
--8686 404
--4495 5059
-1080 1353
--7673 -9295
-2988 -237
--7093 1683
-2384 -8998
--5566 2089
--6736 8788
-7753 6516
--9598 -2171
--3280 -2428
--9941 9115
-3465 -9800
--6456 -8671
-442 -8211
-4543 -9254
-6346 -3076
--9091 -1427
-4130 4820
--4076 -1926
-6325 6773
--8145 3629
-2301 -2305
--6324 6967
--8600 -689
-2900 -32
-1063 -8331
--8566 9609
-3513 8161
-4849 -2214
--8357 1177
--8247 5713
-6136 -6729
-8043 9298
-7967 -4730
--2833 956
-1087 -8289
--3038 -3213
-1896 1397
-9678 -7078
--2722 1166
--6142 5389
-5926 5304
--6276 -9087
--7329 498
--8423 -8968
-9161 8405
-9711 -4202
-3568 1412
-4682 7261
-5047 -2265
--9790 -9495
--3845 9089
-1371 -1490
-1239 6093
-1032 -9000
--292 8845
-1474 4412
-5970 7559
--111 8094
-2311 -543
-5982 5022
--5604 -4370
--7184 -3340
--7147 -4629
-440 -1157
-5203 5134
--731 9723
-3380 81
--7779 -3505
--3389 -9881
--1032 9822
-935 8978
--6500 2540
-9651 5549
-3577 -9364
-4538 4925
--877 8633
--9804 8771
-3811 8646
--7906 -9875
-7658 -4235
-1848 -9555
--2432 -6336
-3791 6466
-1162 -9536
--5658 -7950
-4532 -6740
-9706 -5561
--2777 -8943
--1293 4709
--2703 5658
-1403 -5595
--8681 4118
-9640 4908
-1286 9408
--5339 9742
--8023 -2259
-7663 8244
--7857 -8729
-9034 -2908
-4410 477
-9265 3235
-2751 7670
--9489 7997
-3574 -3206
--237 -9031
-4627 1401
--9791 644
--5477 5976
-6661 -3462
--9181 -7458
-2851 9789
--8998 7555
--503 -8752
-2086 1079
-7930 -9457
--7959 -2263
--6538 -2508
-7969 -9586
--5792 -2988
-1410 6095
-3757 4198
--5708 2940
-4077 -8881
-5404 6282
-9430 -8906
--2001 -380
-132 2351
--4427 -5977
--2311 -5827
--6868 7765
--677 6415
--14 3827
-3030 5670
--74 -1068
--5800 -9416
--7716 6415
--1136 -4981
--4469 2787
--1820 3212
-1981 -9838
--5596 -4866
-8782 -1343
-2687 8226
-9778 -2445
-588 6073
-1106 -3503
--8475 -8611
--5836 -2628
--1351 -6615
--9238 -7736
--7726 -1373
-2656 -2419
-268 5866
-3569 344
-2083 -5672
-7204 -4867
-6112 5501
--7027 -6453
--8847 4514
-8544 -6769
-9502 9531
--9822 -3495
-5165 7824
-1212 -2240
-6528 8261
--5074 -4514
-8808 27
--6033 1495
-4707 1044
--3320 7601
--1144 66
--1899 -981
--5796 -394
-6080 387
-2786 -4945
-6323 1303
--8248 7217
--9096 5434
--679 -3907
-3602 -6195
-1653 -6417
--6810 -3074
-1311 4390
-4616 -3827
--9034 8185
-4991 7409
--4517 -2394
-4419 -4055
--4370 -7650
--9174 -6600
-8573 -9651
-1980 546
--9197 1973
-4964 -5588
-6267 -8412
-2810 5226
--2638 -7876
-2892 5010
--1689 -4312
--3890 8043
-5088 2933
--2217 -9662
--131 -7100
--4860 887
--714 3943
--8325 3547
-6587 -3415
-1549 -9977
-2641 -3494
-8607 1175
--7602 6397
-4649 -7304
-397 7523
-2837 4744
-105 9926
--6834 -7161
--4698 -3006
-2870 -6283
-2343 -2983
--2363 9115
-6722 -3328
-5820 1864
--6104 491
-9564 4376
-9091 661
--5737 9932
--342 4788
-8620 -4960
-7984 9934
--6235 -3068
--5739 3811
-9571 -8804
-2031 -6331
-7550 2026
-9032 -4333
-3946 -3101
-5095 5485
--7707 6263
-1288 6583
--5308 926
-4580 9203
--1668 -3867
--3856 -9921
--328 3786
--2035 -5958
-8807 4373
-2062 -5020
-3683 -1883
-8107 -7088
--106 3105
-7445 8077
--4018 -1229
--1641 3845
-6634 -2420
-8797 1460
-8401 -9027
-272 -6513
-2096 -8899
--8557 1499
-1698 1385
-1623 6435
--2731 -4008
-8027 -6795
-7304 1093
--5015 -5039
-1888 1329
-1261 1714
-1227 1953
--1388 71
--220 -2001
--3294 -2990
--3686 5509
-7450 -6716
-5895 2872
-968 390
--6251 475
-6252 -4271
--1512 -7397
-8088 7277
--6675 1456
-6668 -2343
--1007 5268
--4376 -4507
-5292 1736
-5416 1844
-5183 -9600
-8141 -2822
--9975 4805
--7091 1255
-8340 -9770
--80 5166
-5944 -1643
--9123 7502
--8596 4353
-9939 8699
--2057 1551
--3459 6020
--8276 1896
--1532 6227
-3078 764
--3469 3318
--5307 182
--9206 -7912
-8547 -2017
-6672 8101
--6912 9644
--9933 -2976
-6311 3629
--5950 9185
--6856 1909
--3810 -9916
-7748 -5707
--5346 -9485
-5296 -7581
--4550 2478
--8078 -4172
--4477 3962
-532 6435
--9049 642
--5929 9669
-7417 -7976
--287 6047
--5496 -2312
-2527 6817
-6649 139
-9940 -2101
--5617 -7165
--8376 -8514
--1806 5418
--7404 677
-8107 -6170
--9044 -6800
--8972 -3510
-5560 -2741
-718 3093
--8463 -2275
--3951 -9712
-6184 -8662
--2934 -4511
-7399 -4310
-5392 -7912
--8118 -41
-2548 1486
-2387 3219
-6777 -4846
--5907 -5417
--2227 7954
--884 -6816
--6220 -5202
-7420 -1395
--7908 2176
-1229 -4964
-1354 7326
--9072 -5990
-4730 3219
-1185 2395
--8601 1914
-2898 -984
--9214 7313
-6511 8674
--8906 181
--6790 -5825
-3928 -5277
-4581 8357
--8059 1116
--7070 -9374
--8369 -9072
-3088 823
--3960 480
--4062 7351
-2593 4621
--9549 5160
--5800 -2627
-1844 7309
--5385 -6108
-3396 -650
--24 5849
-6983 6526
--2990 563
--6910 -6420
-4108 6507
--9797 -762
--4135 -355
-1416 2371
--5089 -7527
--5274 -1430
--1836 -9783
--5400 414
-5633 8353
--7936 -22
--4800 -6865
--1381 48
--1075 6114
--2761 -6350
--2980 4504
--4374 5557
-8231 2305
-8613 6665
--3774 -4735
-1594 2480
-5449 -1058
-162 -5910
--9855 -5185
--5448 8360
-7285 2822
--1194 3555
-9213 -5798
--6431 3042
-8049 6342
--7373 3077
-2870 2002
--6996 9491
-5493 7434
-8280 5501
-2871 124
--7660 -3259
-5467 -8075
-6993 -9077
--610 -6727
--5575 325
--2455 -321
--4887 7884
--2751 6653
--7346 2767
-6231 1068
-1661 4244
-1088 -2079
-3767 8993
-7452 2257
--9963 -3181
-2052 2865
--106 9223
--8830 -2684
-4314 -958
--7531 -9951
-15 -3142
--8745 -4590
-7682 -1019
-2412 6251
--1918 -8838
--7331 4670
--6630 2410
--9610 -9565
-9028 -8585
-2040 9652
-423 9055
-1685 2677
--996 48
-4052 -552
--7104 5877
--7738 -9769
-3171 3859
-8388 -871
-8629 747
--3728 9168
--8623 -4087
--6510 -9407
--2152 8882
--3107 -3638
--3476 3019
-3150 2923
-1438 -7817
--1233 9457
-4945 7986
--4076 8782
-451 1767
-9616 866
--1410 -8354
--9555 6768
--6325 7164
-6026 452
--4981 5825
-2365 -904
-2516 1198
--7526 -8208
-6122 -1611
-2795 -7106
-4637 7252
--8981 -7013
--4150 9504
--3083 3056
--9703 -1829
-748 8901
-9406 -5050
-7831 1853
--4828 -8156
--1857 6236
--3648 4199
--4218 6028
-562 -4127
--3445 -1863
--3835 2780
--1366 -2586
--2532 -2822
--9325 1904
--6069 -405
-2748 -3724
--2662 6881
-949 4903
--4451 196
--3425 -2402
--7854 -6607
-9111 922
--1062 793
--9469 8213
--2453 -718
-9752 -3823
-9825 -6496
-3488 9249
-8390 1998
-9509 -2728
--7179 2944
-2132 6552
--7229 -2906
-257 9296
-244 9416
--4050 -6463
--5504 1725
-8077 -660
--5003 -6930
-3158 7898
--3818 5905
-2644 1820
-8905 -9438
-4815 6016
--3883 -2486
-9137 3074
-3679 2370
-7561 4477
--6416 -5411
-6346 9601
--1186 2606
--2160 -85
-4914 9937
-5478 -1099
-2731 -7629
--9682 -5603
-5100 9565
--4532 -852
--474 -9127
--9525 -5632
--4555 -2822
--1512 -334
--1036 -6426
--3298 5807
-7245 1095
--2119 -5227
-7165 4457
-3038 7168
--2276 -6274
--4703 -8501
-233 4585
-6565 -1316
-1534 5589
-3215 -9294
-6799 7744
-5210 -951
--5888 -3436
--4753 8553
-6847 -3573
-393 7
--2695 2961
--3522 55
--917 2148
-8302 6677
-8139 -567
--4327 445
-2208 7874
--12 -3149
--9608 -7758
--5380 -2763
--525 -8130
-5319 -342
--1388 -2382
--3929 5117
--5062 -2765
--1499 6359
-6772 7154
-6001 3849
-1494 8157
--3429 -9865
-9539 -1658
--9591 3973
--9104 -8570
--781 6276
-2145 -58
--830 -1025
--1899 -8197
-9560 8929
--8662 -2946
--2138 7217
--1632 -6758
--8449 5682
-6250 3199
-8208 -776
--1786 -8620
-5578 1169
--6656 4371
-2094 1566
--8940 8169
--2574 3626
--5720 5352
-4707 -9647
--9590 8173
--7678 -7530
-3365 -6190
-5772 -9666
-1584 -8841
--649 5177
-2309 -9334
-8634 2887
-8870 -8557
-4091 9258
-6835 -9140
--6575 7396
--6984 4917
--8679 2930
-7032 -2170
--8741 -169
--6738 9998
-1958 8244
--3357 -1306
-5422 9524
-2104 4135
-3744 -383
--105 9847
-5254 6432
--2323 -2764
--6779 8143
--4988 9144
-3547 -8157
-537 -9973
-3764 3590
--4119 -4123
-6478 4806
-4817 1060
-3239 3184
--9717 7182
-5803 5618
--2730 2051
--3994 -5425
--6662 -820
-2574 976
-6231 8282
--5288 7501
-5010 2461
-2088 -153
--9608 -5639
--9153 9631
-2217 5245
--8866 8835
--2034 9224
--4435 -3202
--7656 5804
-9007 -362
--1112 -350
--6312 2262
-8880 2511
-1087 -2402
-4741 -2292
--5433 -1470
--3285 -6773
--1861 8494
--4280 8908
-2476 -3245
-8685 1177
-1967 3242
--2418 4819
--9117 -8928
--2237 -9969
--335 -1494
-5554 5893
--5455 1484
-631 5267
--5143 609
-2718 -6652
-8143 6584
--8740 441
-1626 8107
-5445 5640
--3224 -4647
-5761 5084
--2826 7658
-8808 -6834
-4577 -5099
--815 -7552
--3839 -6661
-8051 -8427
-3273 -8183
-8820 3092
--5138 217
-1138 -9857
--1486 7731
-5262 4203
--2367 -7350
-2027 -2357
-5077 8169
--5513 4571
--1382 -6537
-667 -579
-5703 9256
--9013 9969
-7469 1270
--4968 3414
--1187 7112
-1079 -6140
-629 6129
-4224 -106
-6619 4517
-1133 1778
--2742 -9274
--527 -8759
-3767 3749
-3030 3377
--6069 6223
--156 -1470
-6916 901
-7822 6637
--5006 4681
-6211 -3440
-759 3779
-6438 -9415
-9504 -8499
--3966 650
-6648 -5147
-8851 -318
-3458 -7154
--2717 -255
-985 -4531
--3222 5775
--4160 -5404
-6390 8617
-6655 7452
-2462 -434
--3396 9591
--1103 -3538
--2062 9626
--1982 -8142
-8247 -9831
-1438 -254
-100 9119
--8815 -6248
--7289 -9216
-5528 2515
--8449 -4063
--6496 8811
--5287 2718
-8665 3268
-8687 5705
--6986 7875
-524 1558
-1409 -873
-1729 846
--8903 -7781
--6733 -3371
--9148 5945
--378 3803
--5085 9094
--7847 -9360
-8883 5240
-6413 739
-9069 1571
-7638 -3499
--9732 -4809
-6400 -3731
--8039 -4058
--9168 5096
-8029 -9332
-7955 5593
-7265 -3146
-90 1157
--6088 -4642
--69 -6592
-21 -7674
-5439 -1219
--6512 8963
--7250 7279
-99 -1834
--3774 2908
-4319 -3345
--607 -4498
-566 -9140
--7199 246
--3079 -5097
-2933 -4454
--7553 712
--8514 5191
-2421 9279
-9874 -1766
--5090 8130
--2946 4127
--4256 6841
-8194 7165
--886 8260
--6155 4476
-7086 4949
--8554 -1064
--4101 -6829
-6940 -1856
-3911 -7455
-5108 1963
-1932 1961
-7417 5635
-7366 -2132
-7008 -3093
-1068 -4531
--5216 5389
-2036 7338
-1884 8581
-5453 -3016
-3951 9427
-5290 6438
--8333 9166
-8321 -1186
-6617 1164
--7412 -7389
-5638 -3288
--6411 6125
--6056 -3182
-8327 704
-2615 -7583
-4064 -7581
-4825 787
-1088 4555
--36 9410
-1000
-9695 -5162
-363 1271
--7337 9563
-4421 101
-1497 276
--7367 7024
-1453 -7234
-1148 -8750
--4852 6638
--6378 8157
--5004 -2919
-9238 -7013
-9540 -3166
-8870 -2867
-5636 4701
--8023 7996
-6750 -9665
-3928 6815
--7832 4037
-552 -3891
-9367 7126
-7163 9477
--7136 -9405
-4434 -341
-177 -2234
--7717 -750
-8995 -517
--1116 -7577
--4042 8175
--9079 -2679
-7267 -11
-37 6839
-6974 -952
-4650 6919
-6649 -8095
-6200 -1349
--9484 7487
-931 -4189
-1192 -8454
-2166 9986
--1841 -1473
-1730 -2206
--4842 184
-9427 -3367
--9393 -727
-2524 8222
--6541 -6504
-6416 8799
-9958 -4533
--112 -4603
--9054 -1007
-5580 -5976
-8970 -4907
--5948 3280
-689 8584
-9330 -1633
--779 1896
--7167 2770
-7986 6577
-533 2532
--3264 -3497
--3198 -9020
--7641 1225
--4735 -1115
-8926 3179
-3856 5578
-86 3956
--6235 3876
--6941 4713
-3882 8917
-1869 7830
-2192 -8878
-7135 9085
-1414 6002
-7765 -5911
-7294 -755
-3709 -2613
-3262 8128
--8261 4172
--8949 -3287
--5686 7047
-6077 -7049
--6606 6656
--2964 132
--9547 6038
--6336 -1552
--2155 1979
-9492 4520
--1727 7087
-5393 576
--5290 -5000
-3951 -8410
--9816 -9232
-5014 1174
-3127 3420
-6318 -647
--7739 -6036
-518 -5461
-8519 5566
--334 9102
--462 1869
--667 9346
-3670 -3613
--5650 6311
--3500 -777
-6624 -4175
-6993 2947
-5261 -8367
--1848 -633
--6023 -5246
-6921 2138
-983 -2260
-9586 4035
--2907 9183
--6119 4771
-7621 -8294
--7572 8241
--6047 4990
-486 7807
--7074 1983
-7434 403
-5119 -8827
--229 -7809
-8071 -1922
-2980 9268
-7739 -2625
-6219 -7976
-6324 5087
--4210 2314
-2747 -8384
-7476 -5206
-2850 2684
--3269 -1648
-5784 9312
-7266 -3195
--7245 -9772
-8339 5298
-6256 -4413
-466 8053
-1766 -7819
--4769 2925
--1408 2968
--8808 -7218
-1707 -5264
-7216 -2728
--8633 -4641
-3659 -545
--7300 7355
--4916 -6204
--7210 -4178
--7719 7269
-4319 -6071
--8824 -7868
--9793 -299
-6176 -725
-8778 -8383
-7730 848
-9748 -2958
-864 -1631
--5806 513
-9270 9477
--9744 4175
--4226 -3578
--1655 -6983
--206 -2569
-9365 2927
-6399 1612
--1361 -4943
-7811 -6975
--5117 29
-9864 -6416
--681 5281
--3689 -3012
-3899 -1792
-7419 4555
--8272 4162
--6540 6540
-8819 5395
--7283 -921
-8783 8875
-8498 -1007
-9006 -5952
--5816 -4458
-6850 2266
--3409 9165
-2278 1708
--1407 -1300
-6274 5124
--266 -9994
--4212 -2648
--896 290
-6458 -8923
--8830 7280
--5774 9967
--2498 -9838
-8510 1167
-7597 -7728
--7235 -3327
-1880 -655
-1418 4356
--8920 -301
--8270 7743
--7023 7415
--6008 -7131
--9426 1950
-526 -3258
--9523 -5255
--3298 7475
-6149 -6680
-7039 8537
--6676 4326
--411 -2625
-4693 -7265
--9648 3311
--3888 -7417
-6463 8820
-1616 -5222
-5941 -8541
--7691 -6071
-640 8257
--5793 7795
--3982 8183
-5297 -6969
--5731 -4177
-881 -8492
--2851 -6376
--8779 -3144
--2291 1716
-4133 6141
--8818 -8491
-6128 -3406
--3313 -6620
-2606 5140
-3569 4875
--6913 -5010
--4599 2834
--7834 8248
-6057 5999
-7072 3801
--7321 1989
-2715 1063
--2706 6758
--4020 -8230
-6307 -9148
-8598 8235
--9478 -4885
--3726 -5037
-4572 -9256
-1872 8008
--9356 1355
--2993 -9914
-960 -8340
--8117 -1960
-2983 -2160
-457 -2762
--9734 -4579
-5566 1038
--5833 -5949
--2040 636
--2036 3781
-2410 79
--6724 -2320
-4824 7440
-5110 6776
-4946 8358
-6779 -4008
-9233 4299
-8976 -5227
--5982 -6675
--4245 -8116
-9700 6228
--9275 1275
-4101 2652
--5827 6841
-3102 1040
-3178 9036
-4179 -1586
--6449 -153
--8901 3411
-5550 -2515
-1536 -7202
-8309 6354
--2889 8791
-6527 6882
--3753 4172
-8157 -4658
--5600 -4522
-9043 1656
--61 -4405
--436 4651
--581 -3039
--9884 7502
--8820 -9637
-9853 -9228
-1297 -9856
--6651 2777
--5878 -5309
-6320 -7610
--6425 8643
-9706 7150
--9569 -2561
--8785 -351
-9989 -8919
--1705 1075
--4243 7949
-8241 -7750
-8511 3649
--7251 -3396
-7191 5029
-8607 6308
--6367 1915
--3699 -1255
--2804 9628
-6348 9026
-6372 -5005
-7308 9439
--8782 -6164
-3483 -8619
-8645 4558
-770 4681
-8059 547
--7665 -9334
-5219 8454
--4918 -8844
-1736 -60
-5570 -8620
--4574 8937
--642 -2227
-1932 700
--1567 -8163
-1221 -8500
-7467 2197
-3491 9979
-5730 3437
-6387 3443
--9233 4363
-1275 3228
-5807 889
--4689 3454
--1080 -1272
--4402 4324
-2444 -1859
--6138 -6263
-2347 2246
--1531 540
--4507 7096
-9046 -6005
-9650 -7857
-8187 4294
--1471 -8290
-1466 -1700
-4554 4590
-5992 9144
-6038 -8270
--4098 -5596
--6675 5804
-2416 -7504
-7136 -2837
-1855 -3474
--1620 -1594
--590 -6554
-6672 7768
--7661 882
--8893 3330
-532 669
-900 -6613
-6519 8024
-1633 9930
-6476 -8379
-6563 9706
--8297 7793
--1669 1161
--9261 -965
-4465 -119
--1480 -7853
-6573 9404
--7410 9720
-1876 -8189
--2244 -9191
--2019 4961
--3235 -4195
-7916 -3047
--6437 9481
-7154 -7718
-8857 1540
-4880 -7520
--1744 3048
--9861 -6160
-3369 -5506
--2043 -6457
--6720 -8621
-2602 9958
--2901 -1935
-6554 -8907
-7854 6335
--9163 -4081
--4502 1408
-810 331
--6924 6204
--3388 4678
--5390 -3083
--9651 -5837
-3833 -9274
--5061 -2411
-4623 9671
-8102 -6039
-2872 -9926
--2086 1440
-2474 -4395
--8724 -6471
-2358 -4214
-5502 4172
-7444 -5961
-7603 9644
-166 -4278
-2062 -3119
--5698 6684
--5864 5528
-9060 -2674
--6253 -9537
-585 550
-5700 7710
--5813 3755
-7908 -7091
-9559 -9130
--1351 -3042
-3546 -6717
-8275 -4279
-6269 411
--6296 2433
--1081 1383
-5709 -755
--5878 1615
--1456 8652
-1626 -8374
--6273 1958
--3979 -4134
--5663 -9360
--5988 4179
--910 3870
-1494 5490
-7599 -7391
-8178 -3696
-7680 188
--1854 735
--8920 1729
--3898 5896
-4745 9609
-4712 -8836
--1490 8617
--4550 9628
-8779 6960
-3463 5890
--4170 -7458
--2282 -9074
-2851 6044
--6360 8052
--309 -8730
--7634 137
--8375 -8588
--3626 -5875
--1040 6844
-7818 -5373
-6393 -5177
--6021 -1644
-4414 -1867
--5893 7469
--2779 -6219
--1971 -2460
-280 9673
--9589 4142
-1581 -4290
-6993 6887
--416 7515
-7206 2861
-5212 -9222
-4462 -2622
-1355 1679
--8701 6250
--9649 5521
--5188 -2387
--3198 2806
--5871 4160
-8014 4728
--3113 3483
-3249 7506
--2331 4146
-942 -1966
--6312 -9836
-9366 -5628
--8241 8209
-2317 7998
--365 1904
-8080 -5104
--2678 -9225
-6021 -5269
--4414 -1780
-235 -2050
-7845 -2066
-1509 8128
-8198 -293
--2620 9450
--5146 -467
--8740 -9309
-2676 -5200
--1905 7850
-7166 -4856
-6177 841
--3530 -63
--9607 -1721
-1558 770
--6250 1119
--1686 -6994
-8841 1496
-1066 -2948
-7806 5512
--8040 -1455
--5508 9650
-9368 3319
-9722 8211
-213 -3049
-7380 4012
--273 4668
-4648 3817
-8726 -9907
--1689 -3682
-1737 867
-618 -4534
--3795 -5405
--2395 -6228
--8051 5043
--9713 2798
--8163 -2742
--6702 2584
-2907 -2258
-4204 3149
-94 -6553
--5222 -8329
-3844 -1224
--4766 -184
--8953 7250
--1411 7925
--9470 4804
-9155 -3581
-4557 3776
-6640 4940
-9903 3658
-9437 7356
--1864 -4581
-9720 4421
--1159 2086
--2967 -6513
-3890 2637
-8794 7435
-3230 9872
-66 1652
-9157 3281
-7850 663
--3888 1480
--9091 -6507
-2503 -3
--9483 -9929
-1203 9405
--3943 -780
-7359 3445
--3489 4019
--1779 -3062
--6221 6171
--4673 5374
--1762 6764
-1727 -2665
--7025 -8767
--5086 -1379
-7148 -8113
-1545 -5710
-2668 -5080
-371 5708
-7243 255
-7198 5370
-3464 -4638
-4599 9166
-1175 -4131
--5725 -1757
-3015 -9007
-3719 4300
-5706 -8405
--5577 3433
-2030 -801
-3225 8940
-1915 4509
--2052 -269
--7559 6380
-1765 3901
-1630 8539
-5235 -6305
-7769 -6142
-3140 747
--9396 3991
-785 -9167
-196 4086
-4081 -3710
--7097 3245
--3865 6049
--7628 81
--8912 7497
-4607 4235
-5780 3724
-4423 3125
-4997 8587
-4887 8029
--8815 6676
--2568 1860
-3657 5132
-6609 -3743
--9185 3917
--5648 2152
--4104 3248
--813 -2175
--8492 -7910
--1093 -9334
--4599 7608
-3734 1599
--6717 -368
-4533 -4673
-6920 -9310
-7830 -4436
--7950 -5804
--5720 5972
--9403 -1204
--6042 -5752
-9089 -1058
-3297 3832
--1699 1013
--4924 6581
-2314 8995
-6290 -2380
--7441 -635
-2090 -5500
--5411 -453
-4691 -2540
--1588 3742
-8987 7972
--8335 5939
--917 589
--3147 838
-6304 -9231
-7554 -4594
-1825 -9613
--7232 9898
-2059 -6595
--2956 -4715
-8302 -8500
--1727 -2885
--4628 -4890
-4286 2035
--1964 8996
--4102 8050
-7128 3875
-876 -2772
--9073 -4547
-7227 2401
-6200 -4797
--5182 -8100
--9993 1281
-164 7003
-8248 6979
-8839 8243
-4851 -2860
--4482 -4795
--1499 4422
--5220 3487
--9379 5151
--853 9852
-8069 -2718
--7982 -5358
--4933 -5599
--738 1858
-9278 -3034
-8969 -7777
--7238 -3299
-6760 2369
--7228 -9720
-7289 9634
--6088 4504
--9774 1821
--1318 7263
--4961 6714
--8805 -5176
--870 -5546
--2932 4594
-8335 7387
--3167 2655
-2704 -2560
--768 8447
--1004 5481
--2815 6431
--8617 7418
-3474 631
-6110 7715
-3000 -9921
--177 -8192
--1736 8048
--5549 5987
-8419 -2247
-1102 -9949
-6208 -9593
--159 -4580
-8081 8284
--3732 1106
-893 8420
--7372 2098
--16 138
-7902 -3595
--4675 -4356
-4344 -9283
--6290 6399
--6634 -8924
--7265 -3280
-2479 2396
-7635 -2908
-4841 -9802
--8692 2935
--1097 -1581
--4563 -9324
--6390 -1600
-8213 -8625
-7319 -2089
-9501 8426
-345 4632
--3561 -6520
--5452 6865
--3647 2472
-7396 5417
--8736 7669
--9479 -2726
-4952 -1797
--5375 4022
--4080 -6993
-8526 2154
-8976 9183
--4580 5838
--6008 1559
--9689 -7024
--3418 8581
-6277 -6417
--4093 -2891
-8887 6085
-212 -9190
--3817 140
-6953 2902
-316 4629
--9373 -3807
-2937 3410
--2892 9979
--3167 4813
--2263 8090
-4752 8328
-7095 -3504
--1976 2648
--4230 268
--9463 -1498
-1757 5844
-9096 -5337
-7398 -7704
-2665 9978
--1010 -9906
-3026 6216
-1154 2759
--8648 -9737
-1985 8092
--833 891
-4187 -8142
-32 -3520
--1459 -8258
--8652 4541
--3284 -8020
-7397 6533
--773 -6762
-7646 9893
-8291 -1135
--6697 4357
--2498 -5713
-5824 -4584
-6695 -8260
--1721 5742
-8388 -5975
--2444 3227
-4699 4353
--3418 -5559
--759 9019
-643 6928
--2294 6079
--4360 -3722
-7406 4176
--3217 -6164
-7058 -715
-4565 -6193
-8685 -6788
--9629 -8641
--1468 -5116
-6155 5313
--7369 9451
--6749 -8514
--6214 -6240
--6247 5179
-2764 -8676
--560 -2595
-1098 7681
-8221 -385
-9902 -3935
-3854 -5367
--9494 682
--1909 -8245
-6714 -1986
--484 8925
-7463 6574
-6825 2073
--9757 -9645
--3822 -42
-7057 -5748
--7146 -6627
-9939 8190
--4177 -5504
--917 -9870
-3018 1836
-3635 -6572
-7853 9634
-8986 -3759
--9493 -99
-5750 -7646
-1351 -8440
--4550 5434
--8336 -6907
-9131 378
--1795 4150
--5589 9948
-6027 -5200
--1984 -8244
--6918 -7588
-3645 -2849
--364 -4126
--6798 -9149
--8058 4244
--4129 -4909
-689 3379
--3845 6000
--7162 7818
-6863 -7857
--8339 6208
--5612 -7895
-8680 -3901
--4625 7571
--6234 6894
--1140 8013
--309 -1041
-2279 9836
--7355 7059
-6306 5340
-3996 9617
--490 777
-9626 -4281
--3394 -6566
-1315 5323
-5073 -8482
--2018 3910
--6902 -1048
--8800 -9977
--587 -3712
--6134 6556
--40 3488
--4549 -3777
--319 -6957
--9791 -5603
--302 6679
-8234 773
-3573 -2679
--815 2547
-1809 -6922
--6041 -8046
--7592 -1844
-5212 -1242
-7082 8371
--1830 3890
--5191 189
-4311 2060
--2629 -2779
--4217 739
-1984 -1505
--5587 -3053
-7216 -3972
-4099 4980
-9201 -5172
-6968 -2664
--6978 -3795
--1990 4313
--2736 -7253
--5160 1461
--4342 6407
--4358 -6362
-6102 -2643
-7715 -4090
--2395 1528
-1619 -1058
-9385 -3546
-8260 -9996
--5679 -1609
-5074 205
--1281 -4172
-413 -402
-5848 8711
--9685 -4079
-7503 4626
-1936 -7229
-9308 6856
-4293 8887
--8381 3980
-3409 6549
-757 -4043
--2774 6348
--7826 7880
-7500 -6804
-4220 -4518
--2608 3397
-7593 -782
--6904 -8030
--5343 -7144
-245 -9841
--8962 -9859
-3569 -5356
--8699 5026
-2670 -5443
-2215 -8054
-2740 6908
-6718 -8662
-9888 -2846
-9749 4562
-3487 -9059
-722 7580
-8337 -412
-1384 7786
--2965 4429
-998 4282
--107 -2103
--6649 5992
--2542 9930
-7748 -621
-2540 7558
-5744 830
--4621 5631
--9133 -5372
--6568 -5065
--8540 5660
--9778 -5495
-5332 -8138
--5317 -3228
--7006 1720
-6894 9802
--247 -9177
--3661 -5461
--8186 6348
--6839 5464
-5955 1773
-1619 4529
--9457 -8364
--3677 8626
--6776 389
--3667 -9308
--1701 7402
--3666 6956
-6286 -6249
--7059 614
-773 5335
-7154 8033
-9889 8585
-3318 -8248
-3501 -2652
--4999 -9341
-2593 -6435
--9263 9953
-1182 3968
--2752 -438
--6770 6514
--67 6984
--8739 6560
-2002 -4992
-3592 7853
--833 -4815
--4280 -3134
--962 -8079
--774 -8806
-4753 6325
--9107 3565
--59 5432
-912 -6102
-321 8707
--5366 -479
--7748 -7540
-1760 5501
--8940 -4233
-8940 -1417
-1000
-2862 -4674
--4473 -986
--4498 8611
-5993 -7379
-2384 -6332
--9316 -9074
--9056 6901
-7617 -8508
--3259 7630
--3804 -4964
--267 9512
-955 -1331
--1346 -2230
--1627 1667
-6060 734
-1624 3394
-8587 -1461
--4843 -5933
--695 -2847
-5062 -9813
-5829 5645
-4313 -3314
--3728 5507
-2816 -7737
-1503 3117
-9610 6394
-1553 -2193
--8104 -609
--9855 -7078
-1431 155
--9031 1232
-9221 -6132
--6114 1627
--9626 8304
-4045 -8644
-7862 1496
-1990 9294
--8601 -543
--9152 -9601
--2347 4700
--5088 -4557
-4481 265
--7431 -8459
--3817 -477
--467 9724
-4296 -8378
--6066 9660
--581 9957
-2766 779
-601 704
--6362 8348
--2353 -2192
--9859 -882
--3316 -4594
-8365 1904
--806 2768
-7516 -8673
--5303 -9248
-5799 -6773
--7352 -3967
--6054 1900
-3840 1329
-2167 -2840
--1737 9614
--9955 7756
-744 8618
--9830 3419
-6691 3135
-2217 7135
-2277 4015
-6079 -1004
--7811 7038
-8390 -4215
-5173 5339
--5597 6209
--3445 5474
-6418 -56
--3499 -9266
--6851 -9852
-1038 4492
-6503 9421
--719 -1451
-8940 2808
-2293 -9488
--8184 -4629
--9671 5985
--1809 -6138
--8773 -1311
-6651 8745
--977 5132
--6331 -4633
-5847 -3120
-5317 -4717
-8954 -5752
--6269 3939
--6092 3140
-3495 2036
--5415 -9979
-3499 5050
-6066 -8756
--2169 -8458
--7104 -9806
--3273 -7306
-7310 6968
-7406 -5866
--5455 6832
-1528 -5076
-7002 2236
-8533 2546
--4337 -8809
--4523 -5822
--1316 2464
-4231 2204
--1981 -3460
--7986 -1820
--6902 6471
-5840 -5718
--7860 8824
--7962 -9836
--9628 504
--1539 -5371
--6769 -2049
-8888 1819
--8247 -3401
-9899 -7503
-3938 -1379
-4331 4161
-2241 -7483
-8100 -9125
--9118 4460
--2501 -9687
-71 6439
--6696 -8910
--3727 6786
--5753 8258
--2488 611
--3970 9847
-6263 -5981
--5149 -3310
--5462 -8734
--2117 -3457
-1436 3945
--5779 -2935
-2198 6305
-3281 4431
-6105 -9318
--5061 3815
--9582 -7139
-9974 80
--628 -6755
--2189 -2668
--5556 -6308
--7381 -1100
--860 3655
--3950 -9876
--8461 4286
-3763 6629
--8313 -7085
-753 -8546
-2951 -9760
--8461 4579
-4023 7021
--9240 -1443
-7750 -3010
--2287 4190
--7348 -3025
--3053 5155
-9159 3488
--3762 1843
-5178 -2578
--4294 -5959
-6573 5988
-2876 4231
-2775 -7571
-9007 7102
--405 5355
-3999 -4090
-8597 2199
--3336 3328
--6613 -6095
-1520 -8972
--6217 -7327
--2487 -7137
-233 -5277
-523 2263
-7342 -6533
--1146 -3645
--9905 1456
-4215 2478
-1092 3076
--2609 -9667
-5309 9782
--4342 5369
-8367 6395
--7924 9898
--8577 5203
--5020 4850
-4499 5954
--9926 2156
-2585 -2286
--4018 -1740
--3581 820
-2940 7732
--1603 1548
--6121 -1843
--2092 -4952
--2990 2234
--9944 -7966
--5752 -383
--6668 -699
--1129 677
--5000 5779
-2680 3894
-1647 1371
-2106 -696
-9020 7784
--782 7512
--2475 -7830
--9530 -1521
--3564 -1390
--391 4508
--8323 -1071
-3920 -7708
--6189 -4310
--5846 -14
--7032 -393
-2590 6363
-3804 1401
--6301 -5995
--6002 5
--4385 7293
--8797 -9268
-5077 1700
--8548 2523
--2382 -2536
-4354 -7586
--8075 9032
-2123 5594
-4240 3603
-9975 -9908
-1841 -904
-1985 3548
-7813 -4976
-4654 5990
--4157 234
-7227 2889
-2857 3000
-3580 -4724
--4514 2498
-3935 -2796
-1084 -798
--1140 8891
--1120 9321
--2113 -1599
--28 -9302
--465 7383
--9100 -7667
-2017 -252
--3030 3134
--3690 -9932
-2279 -5964
--3475 3353
--5001 2696
-6249 9009
-879 -1580
-749 6416
--3136 -1274
--2325 7001
-222 -5147
--1889 -6572
--5626 8972
--1924 -8682
-6312 -6441
-2770 -4829
--5003 4466
--8532 3015
-5721 1759
--9923 5733
--8819 995
-3349 -4698
--5630 -1376
-3072 6493
-9653 3099
-6861 -3579
-7749 1861
--3084 -5339
--8816 -9562
-8764 -6747
--7866 -3851
--7999 -7625
--8376 -7905
--5909 -6863
-6044 3307
--3624 7772
-9944 5813
-2787 8269
--3590 3248
-9925 -6810
--1371 6881
-7254 -3955
--3042 2195
--1086 8764
-2959 230
--1027 -5145
--8157 -4230
--3546 2282
--559 -6938
-7149 998
--6516 -17
--8539 -2475
-3085 -7600
--9503 4061
-9058 6068
--7915 8957
--2518 -7644
-4598 -8730
-6012 -2645
--7334 6145
-9192 -199
--256 2908
--3523 8346
-1779 8885
--4899 -2709
-7772 5833
--6068 2669
-9258 4064
--7933 7723
--1780 -1726
-3724 -4422
--5167 4015
-2465 -3017
-1294 9976
-848 -2612
--3747 651
-7942 -3503
--6176 9204
--2371 -5463
--4552 3905
--1048 -4960
--5292 259
--4896 1709
-5184 2119
-12 7428
-5708 7668
-766 6333
--1630 -4477
-7005 -9289
-464 2416
--6128 1878
-286 9441
-8784 -7619
--3865 -689
-3315 7499
-7211 -5604
-948 3811
-6323 -7898
--443 3539
--7989 2492
--4929 -9126
--9606 -4846
-4476 -3443
--5044 115
--8135 -4652
-7830 5340
-5427 3362
--6147 2508
--9818 -2385
-6489 -2875
-4429 -8613
--3745 5841
--4763 1620
--327 -3390
-456 -8105
--8633 -9936
-8151 6848
-2122 -4527
-6189 3529
--5254 2191
--4408 6013
-8426 -7579
-803 2750
--1892 -7582
-2799 7661
-1340 1421
-8868 -2732
--5573 5008
-8106 -9133
-7269 549
--5866 -9885
--8943 -8366
-8354 -9324
-7998 2942
-3672 3835
-8665 -5839
-393 -2510
--5303 5722
--9503 6225
--4223 995
--2041 3248
-1446 6003
-1912 3839
-398 3876
--2712 -2275
--1148 1110
--9418 -1363
--4044 5848
-5281 -9036
-3348 -2949
-5785 1215
--7489 5992
--5684 -6588
--8383 -9929
--5112 1998
--7910 -4766
-2801 276
-5105 -3985
--4323 -9588
-2296 33
--8493 -6028
-5411 -6923
--4061 9956
-5460 -2398
-1718 -6557
--8909 2299
--2784 -2647
--3227 -6338
--1047 -1019
-2077 9644
-3687 -9259
-2018 6519
-713 3822
-2240 -5911
-40 -7562
--7044 -7570
-4883 6250
--7374 3258
--1277 6215
-516 994
-617 7006
-1165 -7783
--3640 -7487
-3420 5243
-5276 -5548
-5039 8113
--4753 -4238
-6369 -7834
-2993 -8844
--3437 9936
-1633 3838
--4491 -7332
-7893 8240
--810 -3231
--7214 -630
--2212 7555
-5038 3113
-6312 -873
-4016 -1439
-2455 9322
--6576 -1640
-8295 2246
-4178 9294
--5434 5740
--8299 2970
-4868 -5989
--4969 2832
--7531 525
--5631 -226
--2266 6917
-9118 6667
--4793 6206
--2873 3472
--5143 862
-2598 3953
--1258 -6795
--8653 -9829
--661 -3124
--7642 -2240
-4040 -8647
--6227 -8366
-6250 4786
--2860 -2875
--7742 -5568
-1187 9856
--2746 2944
--6052 -48
--3795 4967
-3685 -5838
--4655 1681
--5336 6259
--4853 -2706
--3217 -5633
--1431 -1640
-5459 -5356
--7664 -3073
-6326 6406
-5488 -5923
--8818 2359
--8830 -580
--1675 3201
-6518 2697
--2738 -6565
-6721 -4827
-1569 -8418
--4266 6839
-9873 -163
-2690 5291
-2231 5148
--865 5647
--1637 1551
--7551 -9141
-1873 -129
--8772 751
--3145 -8414
-1748 5287
--4232 5318
-8722 1883
-3503 -7792
-3717 5231
-2007 -8646
--3330 -6615
-6385 -2510
--9824 4947
--1494 -1650
--73 -3000
-1040 4542
-7 7069
-7777 5411
--7991 9000
-5581 -6909
-5454 -3522
--8637 -5283
--7636 5083
-9644 -2937
-6340 9748
-6353 -2101
--4614 7275
--7905 4924
--3390 -9682
--3890 -6405
--2811 385
--4526 8455
--9569 2735
--6487 6887
-6379 -292
-6736 5718
-5541 -3112
--1232 -3891
-9447 -5711
--2901 7898
--8779 1660
-1300 8057
--9429 -5543
--2887 3052
--8253 5706
-3096 -5006
-7378 -6706
--7008 10000
--5540 -2774
-1218 -474
--3397 1401
-3033 -2304
--1461 406
--7902 -1889
-4762 2995
--7932 3583
-9595 6314
--3340 -7143
--69 7300
--2222 7037
--3704 5718
--984 -5346
-9702 -6526
--37 8652
--1597 -3051
-977 -5698
-4675 -1925
--2162 -845
--2480 -5982
--2875 1172
-5895 -7950
-6713 -2903
-8246 -534
--9484 8848
-2952 9344
--9869 -81
-9553 -7690
-409 7516
-6105 -5071
--8409 -3753
--6 4110
-4716 5717
--3094 8621
-7651 -2980
-9386 -8437
-5881 1374
--3014 4886
--9601 5463
--5433 -5422
-3213 9339
--6976 -6435
--2526 9928
-4914 8593
--6439 2967
-3606 7442
-1205 -4790
--450 7145
--8575 9251
-8199 8813
--2126 8588
--3052 -3566
-335 -2035
-3511 2359
-573 -8322
--9972 -2864
--5216 -9931
-2109 -1532
-3793 4029
-6888 8548
-6195 -3756
-1990 1004
--7948 -2477
--4362 247
-2815 -5926
-8670 3074
-1690 -4505
--2575 -9387
--274 -4364
--2714 -6658
-7866 -3648
-681 3942
-2694 4119
-6181 -8072
-9736 4548
-3450 9207
-3946 643
--9324 6857
--1994 -9342
--4907 3003
-9802 6637
--4213 7355
--8967 -7099
--1247 -1995
-2717 -3328
--9442 8318
--2428 -3571
-7067 7466
--474 -1863
--6546 7434
--4401 -9661
-9634 855
-1721 1790
--256 7403
-8359 633
-9240 5526
-5741 -9373
--7166 4459
-2666 4628
-3658 4930
-2488 8375
--2395 -5584
-2443 9871
-9806 -4188
--6181 8746
--3802 7592
--1489 6435
--5020 8743
--1353 -6030
--1900 1544
-828 9859
--7195 -4418
--6016 -5749
-1722 -418
--1603 -5435
--2887 3660
--1239 7279
-9137 2047
-7799 4570
-7898 -6673
--9013 -5273
--3181 -7277
--7244 -4203
-3422 -6830
-1187 -75
-8402 -414
-3008 -9057
-1845 5017
-2483 2382
--8510 4905
-7624 8279
-1048 -9495
--3153 -3842
--3616 -4633
-692 7154
-5125 -5757
--9839 6229
-386 -7846
-2618 5548
-1399 -9549
-2391 -4384
--3980 224
--1538 -5801
-9145 5517
--5276 2567
--7176 4022
-3124 -638
--1683 4385
-34 -7789
--3880 7314
--7430 -6407
-217 -3678
--6713 7839
-1432 5582
--9201 -1894
-7814 -5801
-4998 1623
-2782 -5869
-1015 -9268
--3766 -5832
-4198 5082
-316 1529
-5375 1403
--9406 -7116
-4599 -5623
-9221 7017
--1491 -1842
-4257 -1681
-3490 8993
--1943 -402
--8840 8162
--3456 -8961
--1955 8055
--1493 -3015
-1569 -4760
--1489 -5056
-9987 9498
-1993 5001
-1688 2869
--3004 1972
--4411 -4708
-8244 3081
-6917 -6461
-6566 3795
-3701 -9175
-8047 -5817
-734 -4792
--7546 2212
--1558 -1770
--6592 -4753
--1715 -9081
--1366 -9865
--5072 437
--3522 5068
-4845 2815
--9107 -2083
-502 -2917
--8274 1192
-3063 -26
-2308 9959
--1394 -197
--1467 234
-7315 -806
--9872 -100
-1911 -7
--7981 7203
-629 5098
-5243 -593
--9853 9331
--4010 -624
-818 3862
--7838 965
-1731 9090
--693 5780
-5753 1729
-6403 4122
-8462 7688
--7450 3753
--6317 4492
-3479 1327
-8642 2670
--2716 -2714
--5994 -88
-3317 -7608
-1838 -9146
--7299 3617
--2784 725
--1731 8263
-914 9092
--1052 2472
--3975 8027
--8022 -2122
--4273 -7199
--5601 -4923
-7248 5297
--4482 -4031
--523 9115
--3643 9789
--247 -6893
--2455 9690
--1342 -82
-1651 -9861
-9503 -8830
-7978 -2964
-9463 -8327
-4661 1946
-6910 -1574
-558 -2926
--8775 -7572
--9958 4326
--1474 -4176
--8361 -9554
--1922 2005
--3313 -7069
--5218 2419
--4145 -1577
-2434 1552
--6444 9831
-9994 2641
--7411 -7431
--8306 5528
-855 7137
--2105 -1675
-143 616
--8034 -6339
-6069 6336
-8942 -6557
--6321 8358
--7927 2622
-636 -9354
--5662 1185
-4016 2772
--39 -7305
-7291 8469
-2590 -1229
--3144 -2384
-26 -7660
--9930 -9349
--5548 9623
--9932 -9787
--7125 5573
-7702 7680
-5792 8618
--1711 -1078
-3173 -3177
-239 3056
--8696 8898
--8275 8600
--8343 -6767
-7402 8036
-252 8347
--17 4004
--6590 -5450
-7487 -3195
--7537 6905
-4418 -4191
-7401 -5732
-6394 2108
--1260 -806
--203 8450
-2927 4997
--4236 2878
--6082 -5375
-3055 9852
--1371 9600
--5693 8010
--7953 9393
--4519 4988
--5492 -6964
--7464 4447
-461 -9874
--4879 8076
-8291 -3929
-9274 6628
--2301 -4227
--9229 3005
--7285 -8204
--2519 5980
-9651 -3417
--9722 -3939
--7664 1692
-6133 -5484
--4392 4671
--9610 -7703
-8250 -438
--6609 5195
--800 -573
--3969 -7016
--3753 -9596
--3532 -9016
--1100 2028
-9134 -1787
--7448 -4724
--1625 1653
--3405 7486
--2332 -3651
--6536 -1082
-4851 -9284
--8225 -2051
--8348 -7276
-8053 -2389
--42 -9787
--2426 -184
--1947 7812
--8830 4334
-7025 -5289
--8379 -8066
--5876 6596
-5979 -7383
--7682 -7370
--624 4279
-7595 -2781
--7027 5825
-1478 8484
-3967 4888
--99 4998
--7609 4237
-3701 4523
-348 -7227
-8534 -4282
--1025 -6031
--3919 -4039
-2147 4391
-2423 -8590
-6431 2463
--6205 6869
-876 7595
--3438 -6249
-6474 -1023
-8949 9930
-4449 -5476
--2410 -5864
-9942 -363
--7101 4535
--1409 6151
-9852 -6922
-6210 -7273
-4990 2017
--1701 -8713
--957 9959
-2200 -8387
-9955 6061
-9438 4700
-1285 -3471
-6845 773
--2029 -5314
-6739 -8270
--7739 -1344
-2576 -2546
--6747 -1795
-7635 -1500
-43 -8123
--7270 5533
-873 5737
--2782 -3710
-4778 -6640
--3793 -1681
--2232 9926
--4455 -9834
-1537 7369
-5555 8063
-4717 9745
--4436 1058
--1306 3524
-4697 -4911
-4624 770
--4049 -2283
-8518 -1834
-4036 -2256
-246 -5510
-5882 2836
-7211 134
--2432 5464
-1123 -1100
--2794 1264
-5006 -6121
--1421 -7391
--623 7306
-151 4059
--9941 7365
--1466 -2079
--1372 1548
--7769 7602
--4011 -4343
--7043 8641
-896 -7507
--649 -3406
--7252 -7801
-8258 -9624
--4994 3373
-2893 5840
--6777 2955
--3631 -7635
--5607 -1054
-1193 1663
--9413 -6025
--7223 -425
-7884 -3440
-371 -2734
-4375 -8336
-9113 -2108
-3082 8852
-1000
-9504 -2327
--6783 7605
-5145 2655
-7344 -3956
--3298 -8188
--3661 -1942
-530 7531
--2967 -3794
--8185 5593
--2191 -5901
-5867 -8994
--5766 4751
-5353 4891
-195 8736
-8195 6654
--3653 8955
-7146 6684
--220 -3841
--8187 4653
-7937 -4169
-100 -6377
-3954 8221
-339 9432
-6548 7864
-7684 -7271
--9642 -3818
--730 2688
--7020 -5101
--8824 -4905
-5058 6081
--7233 7415
-8405 -915
-188 5853
--7544 6285
-3073 -1685
--3786 -4684
-4711 -2815
-5341 -9555
-4724 8162
--6892 -6832
-4293 5743
--449 7338
-4966 2410
--7745 9742
--5434 9692
--4213 -1588
--6935 -354
--1890 -5764
-5253 6621
-9633 -2211
--9012 -4441
-227 4748
-5537 5937
--9794 1995
-8921 8065
-8492 -12
-4229 -1851
--8585 6183
-5775 -2607
--9376 -106
-736 4180
--6144 4932
--9979 9360
--5155 -5464
-6762 9811
-2744 6156
-6113 -2288
-3176 6918
-3726 1784
-9888 -6480
--1500 8409
--5407 8235
-594 -8324
--6689 -6580
-3092 -6171
--9252 1059
--8363 -4901
--7622 5481
--7304 -7848
--658 5041
--8746 -9277
--3671 5662
-6547 4954
-2986 -2310
-9381 6000
-8522 -2816
-1102 -7335
--4391 -9693
-104 8573
--5097 -2568
-6002 -2814
-8315 6934
-924 307
--5378 274
--9815 -4728
--6310 1048
--368 -1441
--388 -6364
-8930 8158
-1037 8196
--797 -5476
--6818 -9392
--3784 -5617
-1038 -7139
--4551 -6273
-2470 8871
-8273 9611
--9802 -1406
--5498 -4530
-8470 -5796
-8033 1
--6768 -9163
--7610 -9358
--3422 2622
--1040 -215
-5208 -3033
--9487 9723
-5593 9253
-5180 7580
--3820 -7066
--1825 4614
--1554 7823
-1636 5312
-1141 -397
--1017 9260
-7463 1239
-7585 -3770
-4319 1994
-1706 -8235
-1057 6240
--594 -4558
-4967 -622
-2426 -5727
--3873 7232
--1545 1484
-9931 -7631
--7717 542
-5554 5542
-7308 6360
--6763 3596
-5097 -1127
--1928 -5252
-8396 417
-1054 -741
-4493 -1518
--6291 3893
-9338 8440
-5339 -2918
--2885 -992
--1273 7791
-6580 -7729
--6574 3260
-5414 4063
-3000 -2920
--9092 -9637
--398 1378
-9847 4645
-8141 -8080
--7813 -2015
--2707 3507
--276 1555
-779 -1
--2358 3731
--6228 -2624
--8528 -4406
-5560 -2132
-5238 -4389
-2780 -7656
-2680 -2618
--5344 -8092
--2252 -5265
-5270 8923
-8901 7438
-2918 7083
--4814 -5227
-8066 -6535
--8249 1907
--1581 -9735
-3709 -8428
-6705 -5888
-8547 9927
--3660 8290
--6325 -1073
--873 -165
--245 -4058
--3697 -1531
--2027 -3113
--8968 9211
--3042 -3781
-1993 -82
--1632 -9981
-7108 3408
-4531 7331
--3995 -3954
--6171 7673
--4552 -4623
-2082 -6775
--9243 -8240
-9823 8948
--6204 -644
-7389 6420
-9121 7975
-3227 -853
-3150 -1817
-7854 -14
-2069 -9110
-9119 -9858
--4684 9186
-6870 -8839
-7429 7740
-5406 -6262
--8893 9432
--3228 6662
-8512 -7520
-2168 1331
--1990 2289
-864 -7837
-6851 -267
--1467 -3133
-9762 -9348
-6108 6002
-2870 -2064
-6437 -9448
-4940 -4192
-2478 -9594
--7863 4204
-1819 -4143
--6059 -3035
-9272 6153
--9136 6691
--914 7412
--1113 -8353
--1434 -963
-7166 1064
-4694 3045
-3684 8568
--2328 -9215
-466 -9569
-657 7721
--7991 -1122
--8015 146
-5481 -5209
--3174 -6999
--2056 4594
-1453 7826
-6615 3797
--9001 9543
-3449 6649
-1105 -88
--2491 -1719
--2737 6829
-9578 -9411
-4239 9471
-4901 -1404
-5978 -1912
-7389 5036
--9574 -6540
-8494 3195
-6348 1629
--3307 -747
-15 9672
--6520 5827
--5851 -5977
--5092 -1855
--5274 -9226
--9995 6266
--4233 8078
-219 2588
-9768 5266
-9150 1653
--3010 2497
--1551 376
--4692 -3221
--505 -9870
--7514 -6395
--127 8727
--6856 -2469
--7132 -6912
--8360 9442
-1315 -3644
-8639 9732
-8609 -972
--7426 -7091
--8072 9781
--2825 -540
-3766 -7714
--6548 9262
-4406 -4864
--9028 -2638
--7118 -7841
-2308 -3259
--8402 3392
-6617 -3502
-8588 -2148
-7605 -8655
--9364 2004
--2808 2365
--5677 -8184
-2197 3103
--4129 -5312
--7567 880
-1860 9304
--881 -9698
--8929 -6895
-5971 -4074
--8468 2725
--154 8865
-749 4669
-1959 6715
-3705 -2614
--9996 -1347
--7949 -5365
--6531 -2281
--8169 -4465
-8577 8057
-6140 -5357
-756 -8364
-4380 -3393
--7934 1549
-230 2152
--4695 5563
--4662 7272
--3289 1540
--2106 8433
-5079 -6292
--7462 7769
--8726 8666
-5657 8316
--9349 1530
-3778 -9212
--5548 1153
--5476 -4846
-9500 -261
-6411 -2711
-6063 9700
--6762 -5735
-9 -4721
-9667 3767
-3537 8887
-7138 5840
-8919 -3913
--5362 -9530
--6844 -247
--634 -3579
--3083 6753
--5013 -6867
-4107 9146
--3014 -1981
-3487 9768
-7574 6696
--5261 151
--8112 -4592
-8769 887
--8376 -4086
--5461 628
-4382 5454
--8133 3104
--3897 2040
-5580 -2323
--7726 -8156
--9232 9431
--2212 -2643
-4692 -1226
-7360 -7288
--7168 -3894
-8393 -1710
-6984 -3224
--4535 -6003
--1680 5055
--3004 6540
--143 7648
-2979 3845
-5711 -9339
-54 -2254
--4127 32
-5704 8610
--7829 -3871
-6993 -3101
-2170 -4463
--5638 -2247
-4618 -4475
--8341 -5274
--8208 5259
--4387 5164
-7552 5014
--7882 5536
--9667 148
-2925 4310
--3598 -5745
-5880 -8926
-6857 6216
--1838 8619
-4523 -8989
--7885 8206
-6790 6294
--5993 -9882
--7269 -7694
-2298 -9482
-9893 7610
--7177 6250
-9547 3224
--4144 -272
--2455 -3618
-3558 4201
-1452 2650
-9742 -1580
-8818 -6939
--7418 -760
-3680 -4838
-558 -4422
--5869 -9767
--9897 7873
-8234 5653
--1480 6850
-3756 2431
-6632 -325
--4655 -4556
--93 9009
--598 9757
--2115 -979
-2838 9637
--9638 9402
--5049 4200
-7882 -4815
--5775 -9410
-4767 -3417
--9910 -6411
--5956 4580
--3596 -2564
-2919 -9402
--6534 8902
-8256 8336
--2615 3015
--5117 -2743
-9322 5797
--1733 -6697
-5418 -54
-3244 8595
-3060 -944
--5877 -3706
--3504 3786
--3547 -8693
--2662 -1833
--3770 -9496
-3072 -241
--7264 1750
--1491 -4358
--4083 -226
--1078 -5007
-663 -6909
-1523 -1253
-2858 1887
--1357 329
--1054 -1989
--624 1098
--1642 -7912
-1182 -9714
--66 -8599
-6905 4148
--7663 3098
-2603 3588
--2745 7436
--3082 -3308
-1992 -8794
-6838 3877
--7489 4677
-8611 8214
--5354 5710
-841 -9234
--4628 7315
--9651 6064
--6436 -1443
-656 1236
--9467 4882
--5580 -7519
--2532 7414
--1298 -5723
--1858 -6221
--4194 -7237
--3823 5645
--2466 3463
--453 -3932
--4612 8844
--8568 -7933
-3339 -4493
-6379 1008
-6728 3589
-4861 -9143
-5732 -4881
-3665 8622
-1504 -9574
--315 5984
--3700 -7707
--9589 -2264
-9015 7382
-5502 -1394
--2663 -8578
--1192 3909
-9929 8408
-1982 -1584
--7815 1434
-1611 -8681
--1233 -7120
--5293 -7292
--9484 3276
-4354 -225
-9110 3796
-5021 6736
--3510 7767
--1750 7723
--7718 6035
--3576 3101
-4170 3578
--786 -6484
-5184 -9766
-9933 -8085
--2103 -5959
--6899 -7425
--8014 5505
-1429 8125
--1511 -6864
--9332 3816
--9207 -4572
--5116 3919
-5769 6344
--7740 -8799
-4283 8191
-9732 6755
--8452 2718
-5871 1606
--623 -1476
-8798 -8709
--6809 -2676
-1384 -9074
--2090 -9584
-8927 3736
-5409 5852
--2538 -1497
--1931 1646
-7600 -8372
-4193 -7570
--9728 -3680
-6803 -5378
--8065 -8034
-6432 -3663
-3361 -7925
-7071 -376
-3026 3740
--6516 6450
-1846 8422
--5142 -6171
--323 -6133
--3343 6088
--8806 -1483
-8025 5688
--7741 -3579
-4657 5061
-6086 -88
-9815 244
--9672 5774
--4941 2475
--7542 7506
-4550 -4525
--6347 -5344
-7629 9152
--4280 263
--7430 7251
--3487 -2630
--7311 -3339
--5080 -2698
--3304 -6612
--6409 -1273
-625 -1173
--2839 -5019
-7858 -5239
-1907 -5066
-1693 4029
--5610 5523
-4561 2869
--3111 -3170
--9987 3097
-5838 -7530
--9264 9365
-7056 4720
--7534 8302
-4964 -3320
-9155 -2867
--872 1932
-7777 7627
--6240 8735
-7153 -8845
--8227 3840
--9460 9673
-2601 5550
--8003 8568
--1276 8425
-9001 -8397
--1545 8179
-6290 5176
-3547 7895
-1938 8905
--9546 2116
-5460 4040
-2929 2830
-4769 -9611
--2403 -2318
-5988 -9773
--519 8951
-799 -1501
--1505 -6880
--2170 -6133
--9671 -3597
-8042 3836
--2517 1419
--1581 5807
--6097 -3702
-861 294
--2101 3994
--5277 403
--4549 8482
-7962 4508
--5206 805
--3672 6911
--8475 -232
-3988 4167
-9552 -4795
-7434 8247
--3613 -8218
-6606 3802
--8295 -6416
--9068 -324
-5269 9727
--2404 2753
-6271 3155
-5845 -6199
--5945 -8361
-3025 1424
--2585 -4710
--4326 -2091
--1692 -7417
-3834 1566
-8233 -1732
-6118 -1273
-2891 -1902
--9076 -3901
--9162 1489
--1275 -4929
--5586 1883
--2926 7437
-4415 -34
-3489 -1460
--8393 7003
--1182 7406
--9778 -4109
--6970 5495
-5743 -8246
-159 8701
-4543 -9850
-7952 -6918
-6531 -1278
--4090 -2225
-3349 6012
-9950 -6244
-3708 9520
--2241 5722
-3945 9627
--4717 -5980
--685 2991
-9962 7819
-4825 7369
-3541 -8124
-3589 -7745
-8387 3007
--5400 -1804
--2744 6689
--1259 5159
-9477 -6882
-1797 -699
--1198 6589
-1103 6748
-8334 932
-1846 3324
-1893 -5653
-1075 -1275
-2524 -4324
--4169 -5002
-5897 -2862
-2676 632
--4479 -7894
--1727 -1340
--1969 -2603
-6708 -432
-863 -1570
-7696 1958
--9407 9735
--1607 990
-277 2894
-4559 -5093
-6822 -9900
-3171 -5645
--6699 1282
-8703 5729
-3683 598
--9610 5069
-8979 9867
-6377 2475
--3421 3405
--3032 -5956
-3487 4152
-7216 4002
--6208 -4352
-2957 -2907
--6634 3038
-3002 -4124
-1284 9897
-1047 -3150
-7994 -4442
--7858 5373
-3369 1642
-433 -9632
--4763 8907
-8067 -3198
-5962 -8623
-8063 -5735
-3698 -8450
--8705 -4019
--9750 -6378
-8609 6386
-3311 2496
--5745 111
--5678 -5556
-4347 -2350
--187 -1749
--9376 3042
-3806 -1825
--6476 4869
-2295 -7711
-9493 -768
--1296 -3793
-9555 6996
--3124 7066
--4303 9453
-428 -2082
--9774 9463
-3309 -451
-3710 -836
-7233 -5475
-6248 -1039
-3564 -7071
--6522 3588
--8898 5865
-195 -3869
--5903 3355
-7806 -266
--2379 -6649
-5308 1523
--2876 -4213
-3783 -1544
--9978 -8369
-8275 -1199
-9400 8878
--3083 401
-3149 -5284
--5370 1175
--789 -3211
--6531 -1995
-858 674
--4543 -715
-1592 9580
-696 -594
--2168 -5297
-5788 -3348
--1493 -6009
--9991 -9833
-7564 5393
--5271 2765
-7938 -1435
--9486 -6895
-2525 -2192
--331 -7145
-12 4543
--78 2272
--9095 9279
--2021 -8067
--3658 -5714
-2985 9264
--7113 2411
--6577 -4245
--5849 2258
-3343 -7092
-7004 9108
--1606 -459
--7869 -1348
-677 -631
-4978 4203
--2019 -8381
-8652 -8189
--1433 -3472
--9081 -8908
-6514 2796
-2883 -3362
--1772 -5049
--568 1482
-6463 -9399
--2087 -800
--1245 -2094
-5994 -7417
-9720 3994
--5741 -617
-448 4942
--712 -9998
--4558 -5606
-6739 -4399
--2938 7346
--5059 -660
--5889 8733
-4070 7685
-2555 -5985
--134 -5459
--3499 634
-4996 -145
-5133 -6105
--2268 -994
-7778 9453
-5070 2846
-7683 -5301
--568 9227
-687 -9619
-1328 -9974
--4993 8114
-4374 -5295
--7915 2818
-6108 1999
-57 8248
-4630 -5319
--4492 3440
-1273 -4566
-1585 5905
--487 -6636
--5524 5483
--6673 -3362
-5017 2041
--9734 -4382
--1702 5131
-1326 -8363
--4211 3521
-1003 -7036
-1799 -3067
--9231 2983
--8820 7541
-6328 7285
--8095 -922
-2847 2206
-6500 -9586
-191 -6001
-5181 -1767
-8607 4668
-3931 -6538
-589 6754
--3847 7053
--2483 404
--8606 9638
--356 -7158
-8832 -8214
-3523 1928
--3297 -6458
--2370 -1446
-5640 -2272
--406 -740
--7638 9010
-8082 4152
-3476 8294
--8709 -9165
--6614 -1036
--3525 5014
-5516 -8191
--93 5874
-6477 8436
-3078 1277
--6849 6591
--5968 -1549
-4900 -748
--6342 -1486
--3004 5936
-5019 -5073
-8799 7694
--8390 2198
--837 9724
-4877 5940
-2321 -6062
--7975 -4271
--3233 -4171
-8191 221
-2552 -8084
--6838 7356
--2380 -6750
--9084 7722
-7175 -6052
-8634 -6527
--9858 -3207
-7137 -7519
--5391 -6477
--8748 2678
-3224 -164
-3201 1100
--5920 -2476
--2624 -790
--1015 5311
-8891 -4816
-8181 -5201
--3031 -3644
--8827 -2153
-4154 6740
--8364 -9002
--5022 5444
--9433 9290
-8055 589
--5076 9084
--4546 4783
--6609 8300
-5025 1268
-8586 3209
-7698 -847
-5464 -8469
--2061 -1984
--7924 -9802
-7531 6200
--5121 7787
-9018 9326
--2365 -5870
--1517 -1617
-9894 -2993
-4387 1066
--7560 -8086
--6399 -3193
--9722 19
--8847 -2288
--824 8519
-8858 -1419
-5015 -1630
--8447 -6560
-428 3475
-4531 -4373
--8041 -9862
--1701 4710
--7153 -6920
--4207 -2166
-1488 -7251
-1752 2200
--6675 -7837
--8484 -2185
-4167 9660
-2776 5086
-7310 -6262
-1295 1886
--9293 -5288
-1251 -800
-4574 -5171
--8716 -3168
--3833 -9092
--4703 2637
--522 -3523
-3557 7934
-1616 3496
--4439 -4619
--7967 3903
--9754 4763
--7370 8237
--3247 -4204
--5794 5360
-4222 9660
--4491 -4033
--5935 2421
-652 7381
-5729 159
-522 9849
-7917 -3838
--2214 -4748
-2465 4898
-8286 -3715
--8925 -911
-5467 -3007
-6737 -5168
-5487 7906
-6800 7296
--3580 6504
-6462 3687
-1690 5258
-6907 -7030
-5920 -5292
--6249 -5414
-5128 -9538
--6162 -7303
--3565 8772
-5055 4819
--5400 8293
-5857 6761
--5263 -6498
-3866 3215
-8545 -9389
-1000
--5593 -7813
-6286 -7397
-7093 -2520
-2275 -8398
--165 2409
-1497 6568
-3626 -8902
--1579 -2843
--8525 -5065
--2085 -2041
-5545 7118
-368 -9798
-9161 -4764
-1122 -7396
-8891 -279
--3530 -7267
--4126 5338
-5736 7243
--5249 -1134
--7560 -4190
-4217 -5395
--4232 2041
--9240 -9965
-9075 5400
--8765 384
-1396 -5152
-5490 2345
--2233 -4292
--4194 3198
--9980 -7650
-3171 397
-5435 4352
-2533 -1206
--7656 -4374
-7491 7628
--8646 -5088
--8852 1665
-1018 7857
-2697 4579
--7525 -6294
--6219 -2493
--9356 2106
--7275 -5514
-6774 -1356
-2339 508
--6097 9973
-5139 1327
--2320 -5551
--9453 5788
--8791 -7673
--6582 1981
-661 7074
-7444 -1819
--1218 2532
--552 3830
-8467 -1558
-7388 6009
-1631 -3816
--7998 5050
--3042 -9618
--2190 -6552
-10 -8190
-7843 -4001
-4962 -7435
-2474 -4535
-641 -860
--476 1329
-2109 397
--5644 2343
--1994 -631
-4408 -9611
-6832 6724
--4972 8421
--2702 -134
--3476 5535
--5250 9784
--5862 6428
--439 -920
--915 -8335
--6283 -9870
--4967 -7287
-1902 -9446
-608 -1443
-4717 5696
--4025 7842
--4636 -9293
--2932 -1862
-7927 6534
--4036 5480
--2730 175
--8290 8369
--9112 -6021
-6273 7103
--9820 6259
--2936 4378
--5748 -2135
--7997 -95
--1133 -9644
--7476 -1584
-630 -6441
--8606 -867
-3569 -851
-607 -5294
--7627 5115
-8002 -4934
-8781 5119
--9264 5252
--3303 8456
-2471 -7189
-5601 -904
--8598 -9722
--6089 6755
-3795 8965
-8573 4798
-9576 2133
-8642 -6726
-796 -7325
--5530 2835
--3529 5152
-8357 1469
--9312 2209
--1786 5425
--309 64
--9743 6832
--7973 -3298
-225 2318
--3445 7145
-2623 -834
--1086 8717
--9410 -750
-5451 -5213
--4129 -9937
-8881 1431
-8555 -2675
-3469 2429
--3713 2591
-1342 -1809
-3212 7818
--4730 -4162
--3156 6537
--169 -7849
--480 9626
--8835 152
--1121 2233
-4752 -329
--7723 -1286
--8785 9097
-2255 -3927
--6934 -9835
-9758 -5494
--7880 -3159
--5386 3604
-1911 1858
--1563 -1895
--9022 4099
--7169 -8509
-4449 4673
--9735 -3993
--4791 -5325
--6495 -5673
--6751 -5455
-1964 -1132
--772 -3213
-4203 6098
--6839 4726
-9119 8074
-861 -5494
-837 2186
--8052 6080
--2057 911
--8204 -6532
--9609 5562
-3909 -2514
-7180 -5069
--5906 -2045
-9735 -8529
-8648 5024
--9579 7717
--8218 5091
-3648 3631
--3166 2813
--8624 -2348
-5068 7221
--5238 7824
--9798 3950
--4802 -3939
-8442 3248
-6771 3794
--5136 4125
-107 -1614
--7734 5213
--325 5918
--6520 -9762
-8476 -8839
--2951 2770
--3484 -5091
--2394 5645
--9526 -1276
-3986 561
-8808 -955
--6809 452
--9973 -9334
--1838 2536
-4809 -5149
--1856 -7825
-1058 -1553
--2329 6799
-729 -4070
--7740 -9857
--3895 -517
-6049 -2392
--4608 3884
-6783 7403
--4748 -1786
--6822 -7679
--5462 5168
-7477 6145
-7767 -2464
--8313 -3460
-2106 7486
--377 5011
--2421 9771
--7618 4914
--363 863
--8815 -4827
-6375 8766
-7128 8898
-1202 7113
--5389 484
-7811 8269
--1513 -4221
--8997 1369
--6849 2074
--6787 -8376
-9590 2212
-9369 -1122
-642 264
-9539 7780
-4694 -5311
--5657 -9554
-7873 -7799
--1883 2149
--4370 -331
-7172 -7110
--222 9562
-2700 -2288
-2542 9218
--9381 -982
-8498 -4590
--8394 5806
--2495 -4284
-2524 2469
--6545 -2382
--9540 1380
-731 7290
-7585 7154
-3609 8697
-5977 -6214
--9619 8803
-6442 9724
--3430 -6851
-7025 -2370
-9695 6176
--5570 -4270
-8628 -2253
--6342 3424
--885 5090
-3977 8719
-4948 -7506
--8759 3342
-7368 7439
-3477 8298
--4764 4479
--1797 -3581
--275 9481
--7310 1550
-9490 2007
--8317 7994
-822 9679
-1727 -4333
-1252 1019
--135 2887
--2989 -2687
--8451 -2750
--1863 -3518
-8189 -1138
--9289 1364
--9516 8244
--4751 -7753
-4755 5410
--1396 -13
-5841 -5644
--3737 -4779
-2063 9457
-8963 -5026
--4540 -9379
--6683 8690
-7110 988
--1646 136
-364 6087
-8977 -4432
--9171 -7305
--8779 2271
--974 5463
--5568 -2403
-2387 6126
--913 -3153
--334 -5326
--3170 6899
--5750 7187
-6140 3670
-6521 -1033
-463 -5816
--7246 5521
-8161 -2962
--7876 -865
-3626 -2284
--9239 -7760
-4929 5857
-9097 -9210
--1439 5253
--7932 -5179
-8893 3478
--551 5784
--3809 7655
--312 1487
-9292 -854
-3748 -413
--1478 8405
--770 -9705
--4695 9598
--5770 6818
-1904 9186
--3407 -9171
-8582 -685
-6501 5076
-7205 -6217
--5492 -3777
--7191 -1701
-9899 1960
--6726 -9032
--7836 -5058
-6785 6106
--9076 -5463
-7267 -1801
-9870 -3372
-2356 -3421
--6271 743
--30 7060
-7644 -2923
-2478 -8664
-1285 8397
-4209 -4255
-3399 3895
-68 6645
-4373 8350
--8536 -9555
--839 -9342
-4716 1501
-6524 4558
--9155 -4695
--5442 -2431
--5323 385
--3612 -9818
--1726 7458
--619 -4806
--1175 6277
-7606 8321
-8357 8579
--9140 -8964
--1441 -2325
--5927 4703
-4708 -4367
--1152 -3545
--2607 4750
--5923 4698
--8662 -4653
--28 -5305
--4270 9323
-7079 489
--7646 7733
--4638 -4979
-1979 6063
-8392 4736
-7902 3531
-7998 -4087
--1011 -2712
-4877 7930
-3351 7937
--436 911
--5976 9134
--8376 -818
--5745 2533
--679 -4323
--118 1995
-9422 1830
-412 7347
--3070 3901
--2718 -5858
-6299 6528
-4718 -3906
-571 -3241
-347 -3834
-1927 8329
--7144 1084
--7380 3221
-1011 -2786
-7067 -9127
-8683 3993
--3719 -3997
--6475 9516
-8042 3748
-9816 9692
-3949 8934
--3898 6563
-209 -678
--6942 5368
--2016 -4625
-5855 -2819
--4882 4222
-1727 3798
-3756 -4690
-4781 -8492
-1546 -5989
-3236 -6949
--5426 236
-6787 2086
--2894 -3256
-5317 -5005
--5450 -3689
-4480 5759
--7254 -3856
-4 1140
-8631 -9602
-389 2279
--252 2151
-1142 3098
-4611 -7884
-3288 8442
-3515 -3417
-2482 9601
-8772 -8871
-9483 -4693
--1906 9629
-2018 -3995
--2172 2157
--9919 -4357
--1602 -8519
--8367 -7478
-9259 8457
-7086 -8068
--8517 -8207
--9890 -8463
--5146 -2219
-9466 8291
--9535 -6803
--3395 -5056
-8988 -7645
-6647 -4569
-2362 -4527
-7532 -8505
-1297 1856
--6813 9498
--5583 8466
-3869 -9479
--6162 6252
--2730 1474
--6720 -705
--4034 331
-1451 4406
-5071 -7126
-6103 -7200
-4552 -795
-7916 7380
-4289 -196
--9193 -9182
--5599 -3474
-1888 -2052
-1880 -6335
--5117 -5819
--2468 -9997
-9335 7128
--3991 -1825
--3255 -454
-2173 1157
--7046 -8974
-1994 -7525
--8936 8825
-1984 -405
-3322 9143
--5214 -5455
--6022 -6057
--9718 -5334
--5584 7293
-1117 5990
-3843 -4939
-5232 -8220
-3167 -7601
--7036 -1403
--1881 1020
--8023 -4303
--8740 2859
-4995 3240
-4814 3137
--5986 -6666
--6446 4021
-2007 -8309
-2096 371
--4278 -814
--622 -3311
--4342 2481
-6974 -1908
-7955 -3379
--2830 1160
--2470 -4931
--3402 -7583
-7177 -3700
-3118 8689
--977 7982
-6030 -1112
-3203 8643
-5675 -7835
-4367 -4656
--8181 2816
--5150 -2439
-699 8381
-3251 6619
--1572 9487
-1634 -8959
-1470 9908
--4260 4092
-8562 5212
-3466 8054
--3718 -4404
-6691 -7843
-1643 2570
--9609 -2768
--4371 -8012
-5019 -9332
--7913 630
-2320 976
-4494 -9160
-3127 -7885
-569 -6651
-3879 2258
--2983 -6317
-2554 -3969
-9756 56
-1378 9748
--1996 -5630
-2939 -6158
--3648 -6840
--7763 1659
--9152 -6643
--1379 -9290
--1854 7417
-8590 9311
-7191 -7151
--5403 -2203
-4764 1
--3241 7316
-9177 -6393
-8033 -2337
--709 -6049
-2577 8803
-5710 -8155
-8637 -6876
-7611 -4840
--6445 -8376
--7482 -5710
-2281 -7011
-5180 6700
--7616 -4740
--7721 5594
--8277 -9367
--7502 -3503
-3816 9510
-7157 8842
--9329 -7640
-1144 -2771
-5061 -463
-75 8778
-7461 -9178
-7170 3166
-3354 -1596
--7643 -1129
--7459 484
-6266 2283
-809 3520
-2318 9966
-2899 -5437
-3672 1679
-4648 -3909
-435 4761
-4365 -2788
--5629 7803
-6045 313
--2153 6413
-5171 6930
-3841 2123
--1806 -6799
--6402 9896
--9548 -2709
--9671 -4603
-4357 -5632
--4644 5789
--4504 3783
--1279 9923
--5263 -6553
--2979 -438
-8399 -6551
--2447 6881
--1643 7117
-8747 -2372
-4512 2310
--3459 -3046
--5107 -2125
-5126 8224
--9996 976
--9346 -1488
-1068 -3873
-7597 1971
--1656 2312
--1832 3511
-2000 -6856
-8547 -28
--3479 4935
-4701 -7391
-5474 2989
-2386 -1763
--4478 6711
--7877 8612
--493 8668
-8829 -214
-2527 -9490
-7290 -2984
-771 4246
--7015 -7159
--6653 9931
--7119 -1360
--3128 8532
--5744 -4798
-5761 -240
-4643 -6145
--1713 -1251
-4439 -4513
-4619 -9572
--7640 -5117
--1413 6079
--7400 7545
-7481 -9986
-710 -2875
--7461 1328
-9916 -6008
-3059 3439
-4382 3643
--6743 657
--3296 3905
-3616 5879
-7314 -8622
--1585 -5115
-7881 -2069
--3136 -7624
-9812 7327
-8830 3115
--950 -5996
-9946 9254
--4699 -7235
-9419 -1181
-6664 -878
-9330 -1759
-93 2904
-6641 -5032
-3033 5738
--5834 -8765
-9971 -4221
-6192 6197
--8161 1411
--5050 1810
--1688 -6690
-1167 9118
--9262 -1745
--179 3402
-7919 -4942
--2547 -8241
--8286 131
-1711 1817
-2261 5422
-3479 5620
-6042 8814
--6530 1958
-7272 -3339
-7132 -9031
--8307 5112
--7827 1091
-3538 -6109
--2439 6244
-1860 -3601
--4633 -187
--6570 2181
--5123 -6665
-6504 -992
-6044 8424
--2725 -3549
-5599 93
--7795 3875
--6008 4396
-866 1181
-8116 -7477
-5458 2612
-1108 2346
-8670 -2411
--8924 -4257
-9618 -7628
-641 7498
--9418 6370
-6523 -5119
--3274 6660
-7142 7693
--9579 7587
-752 -4031
--5326 6228
-820 6601
-4845 -7833
--198 5347
--1263 173
--2242 2417
-2191 -7972
-3740 -7001
-3427 2395
--5630 5385
--2614 -5065
--7701 -2890
-8922 5389
-3815 -2317
--3776 -2849
--9710 7749
--762 -5640
-4421 -3677
--8250 4053
-1652 2760
--2087 2325
--711 1410
--2110 -7081
--112 3857
--5407 6606
--5520 -5102
-1851 6428
--5360 5006
--6856 8282
--1472 -5379
-3195 -4066
--2426 -876
-9454 -445
--3098 -3081
-2582 -9726
--6548 1500
--2451 1346
-8172 2497
-6568 7728
--6666 7847
--4655 -5931
-7557 -6054
--2527 6063
--9028 -7961
--7905 -3424
--9466 -2167
-6033 1038
--4828 -6507
-1982 3759
--6543 2673
-8888 7451
--4669 -463
--1744 8173
--2985 4110
-1217 8765
-372 8744
--2204 -7356
--7364 -2669
--4651 8869
-3404 7672
--9923 -5474
--8629 2139
-6834 4738
-5111 9450
-540 -492
--2159 4613
--697 -9130
-8743 -4196
--9796 5748
--621 9700
-876 403
--961 974
--2898 9300
--6985 -1670
-1404 -9058
-4690 9285
-2289 4385
-2629 8656
-8750 9534
-6892 -3976
--5327 -438
--8806 4843
--651 9471
-6054 -831
-556 -7124
--91 2146
-6186 899
-9833 8618
--4580 -3465
-4206 5317
--2199 -1791
-1691 3539
--7358 6990
-4262 -3193
-2256 7327
-8622 1779
--5425 -2397
--5070 -3212
-3439 -798
--6222 7907
--8088 2387
-2930 4727
--6696 2111
--8119 -3178
--2576 -9211
--9427 -3092
--2860 -3853
--7800 2294
--7786 1575
-910 -3621
--1277 6374
-2509 -8517
-4932 -785
--2326 -153
--8672 -9627
--1419 9980
--2351 5184
--7745 -1822
--2029 -5674
--6378 7662
-2233 1197
--5425 9401
-6066 3000
--1601 8811
-5777 -8792
--8203 304
-2767 2621
--7782 -8251
--7910 7522
-3770 -9189
-6930 2298
-5712 5279
-9516 -5650
-7562 1445
-6728 5536
--6841 -242
--7552 -7739
-332 8375
--5766 -5098
--3608 624
-9060 -8143
--1108 -2179
-1413 -8517
-8680 3412
--4096 -4854
--7873 3978
-1819 7755
-6506 2373
-1808 -3183
--6005 -9966
--6597 -3481
--2620 -411
-4153 9871
--4380 7104
--4980 -1765
--9175 -9569
--6321 4679
--8057 -9822
-3036 -9778
--8456 -7951
-4961 8954
-7359 1363
--4470 -9022
--6378 6273
-9660 3435
-9315 6372
--6381 5634
-5603 -6884
-1295 -167
-298 -8240
-9094 -3027
-8893 6925
-4772 4552
-3281 -705
-7267 5416
-6388 -7262
--7507 -1617
-6153 5006
--7643 -7565
--5481 -5677
--1437 -8682
-9819 9902
--1753 -7757
-6763 -4643
-2030 -7991
-1808 7394
-6971 -2858
--5794 -8519
--7265 -3756
--9646 -5583
-7186 -6581
--2757 -8207
--6746 1304
-2593 -7702
--5303 -8852
--3072 -4750
--4603 3384
--2132 -7968
-1563 -3072
-1619 -378
--1414 -9404
-9111 8842
--6630 -2620
--8156 -988
--9173 -6229
-3872 554
-9052 8735
--5852 504
--1164 -5489
-5120 -6417
--9586 -3381
-352 -3865
--7589 4190
-5584 2412
--9902 6674
-3128 -3302
-7700 4489
--6613 -7624
-7508 1792
--5778 -9491
-8466 9092
--3015 -4
--1006 4023
--7269 9827
-8131 1708
--1381 1338
-3463 -120
-2583 7999
-4684 7318
--1321 2385
-5796 -8857
-2708 -6315
-1190 -4206
--4268 3864
--7435 -6069
--3584 -4577
--7317 -3484
--776 -9113
--3489 -6896
--8039 4134
--6521 -5435
-1966 -4128
--4209 -6904
--469 -2083
-881 8211
-7420 -5474
-5999 -5240
--4905 9304
--6093 1891
-7547 -6821
-7274 -7923
--4697 -8367
--1940 2020
--2957 7713
--9078 -3892
-1908 6098
-4440 5329
-4198 -1991
-453 -3709
-9687 7099
-7248 -1188
--2569 -2277
--2629 -1747
-5043 8701
-1517 273
-303 -8180
-4107 4424
-4395 3348
--8694 4777
-5332 -2648
-9260 780
--7535 -6757
-6981 -4716
-933 -9295
--9650 -3313
--7582 7965
--3084 4163
--9069 1305
-7053 -4475
-1000
-1817 -3434
-7683 325
--9918 4038
-3581 -4229
--7938 -686
-9274 -6349
-3042 8421
--201 -260
-2797 -742
--7799 8234
-6319 -1465
-3252 787
--533 9010
--5389 3271
-9179 -5125
-9175 6785
-4951 -3524
--9724 3835
--5818 3477
--4291 4144
--7283 1310
--296 -9266
--4882 -6221
-5801 -2181
--325 5333
--8255 4705
-2948 9957
-5327 -911
-9291 4097
--291 -4723
--6689 5474
--7317 332
-4835 9260
--5056 -4222
--5631 -6207
--4893 4033
--6531 9007
--4207 -1931
-9471 7093
--2860 7318
--6652 -1054
-8883 -4829
--4763 -3509
-6761 -5036
-2033 2124
-1477 -4356
-6372 -5204
-6335 74
-9674 -1463
-8718 2801
-4311 7605
--5709 -4396
--6228 -9354
-8386 8868
--6812 4180
--3419 2692
-1232 -1835
--5798 6659
--8672 -542
-4216 1955
--8119 -2861
-8314 5198
-6756 420
--6706 3659
-3151 3011
-4384 5263
-460 -7608
-5960 -3644
--9500 3636
--2850 -9821
-6984 1943
--58 3385
-1641 -3668
--6770 -5227
-9526 -4165
--5747 3134
--773 3308
-8185 4225
--6694 3543
--3196 -3618
-4835 49
-6732 2792
-6783 -4220
--8636 9347
--3648 -1069
-3170 -3796
-5073 -6265
-9835 -1178
--6700 9141
-7062 8510
-5001 -4817
-9233 8084
--3212 1364
--6446 4581
-7831 1348
-4884 4917
-5801 -17
--8850 -7196
-5795 -6386
--2655 8295
-4043 4946
-8860 -8390
-5123 7097
--3013 -8155
--9736 8587
--9780 4184
--1993 -2531
-6912 -9851
--9253 -4440
-6107 -6413
-5644 4094
--8403 -1414
--5690 7621
--8628 3732
-7911 6427
-4069 -7845
--8257 -2611
--4775 4130
--3231 6638
--4563 3031
-3552 -800
-6767 -967
-304 -9427
-7464 9918
-3296 -7470
-9550 7746
--6993 -1988
--7446 -5020
--7315 -7270
--757 3031
--4294 2905
-8591 -4223
-8028 1740
-7270 -6187
-643 -9508
--7133 -3381
-4331 -5898
--8430 -3267
--8065 -2450
--3521 -4514
-9472 -4740
-3062 -2378
-7238 1255
--1902 -5360
--5768 1473
--6811 -872
-1036 2443
--125 1076
--8555 -5523
--5130 -994
--8135 -4613
-1221 -7783
--8755 -1007
-3474 1008
-4709 -240
--1198 -8786
-2870 -7334
--1295 2152
-8113 5665
-4607 -752
-4993 -6062
--5013 2410
-4517 -5427
-9894 -2447
--4063 8187
-6240 4906
--2888 -1246
-4309 2738
--421 -2998
-1882 2493
-9067 -921
-1522 7964
--312 -4532
--3814 3479
--4531 9047
-7187 27
-9139 7265
--4728 -452
--2693 -6329
-3577 -3402
-6691 5143
-3391 5535
--5975 -7677
--6354 -5515
--2254 -332
-9782 -8688
-3577 5120
-8716 -9191
--6364 -9208
-1722 -2260
--6618 -8754
-9022 3422
--5251 523
-9365 -437
-9553 5900
-6820 9066
-9000 5676
-7172 1764
-4424 7737
-4907 -7381
--6799 -6120
-9485 4044
-7537 -8589
-6997 6249
-4540 5100
--5914 4421
--3579 -3109
-3927 -6477
-2939 6773
-1821 -952
-5976 4344
-25 -2876
-303 6183
--6826 2408
--2422 4743
--1761 -1455
-5428 -6
--9532 -9851
--4009 -3618
-8457 7026
--772 5277
-8844 9398
-7133 -1715
-6876 -6519
-5712 -6532
-9229 5672
--2526 -9504
-2818 4110
--6707 7272
-5420 7780
-5977 1525
-2655 8976
-125 -2881
--4158 -6341
-2415 4329
-7368 2863
--319 -80
--7965 -677
-1644 -753
-8628 -9747
--1548 3701
-1730 4641
-4687 -9943
-3605 -5101
-9168 8637
--4457 6097
-3663 -624
--4852 -1334
--4411 -8752
-2341 -3798
-3077 -5733
--6636 -8398
-2957 6102
-3173 7334
--7151 1090
-957 -5868
-2446 -8152
-2333 -3663
-6224 339
--4133 -6731
-3292 9769
-1429 -2675
-9075 8574
--2436 4953
-2146 3855
--8681 252
-3513 -405
-6415 4307
-7774 6255
-9918 4460
-1691 -5966
--6454 -8320
--1775 1370
--5340 -2938
-9886 -7853
--4550 -1562
-4132 141
--402 -5997
--1393 6084
--4323 -5976
--8006 8907
-9490 -5653
--9627 877
--3968 1070
-6550 -1085
--796 2244
-2185 -6028
--450 6022
-2227 5924
-4912 -9963
--5666 4020
-9959 780
-198 -9028
-1714 6150
-4674 14
-1353 780
-4024 1327
--5928 -9673
--2748 9388
--7394 4843
--3449 -85
-1620 7375
--7476 -1734
--9878 -1772
-5119 9110
-6798 -1730
-8756 5087
--284 7126
-2309 1807
-4173 4717
--8868 -7962
-709 -9094
--4520 9940
--6467 -8404
--4835 -8160
--4642 737
--6293 50
--1970 7847
--5100 4458
-4877 -4853
-1720 2791
--4909 -4454
-5032 8764
-9678 6921
-9978 1509
-2843 -7076
-3078 8839
-7285 -75
-4173 -91
-2457 -3188
--2003 8494
-517 -2639
-1290 4744
--1189 4172
-5004 48
--6207 5240
-9967 -3399
-7064 8774
-8667 -4549
-9047 -2370
--1874 4099
-2678 -1462
-519 -9531
-1485 -5075
-658 1929
--7698 -5822
-1837 -9129
-8087 4201
-358 1736
-8731 8698
-1037 6832
-3577 2728
--3953 -8423
--820 7216
--8707 -1477
-4976 -7930
--9758 1155
-5932 5620
-1880 1837
-3636 -1510
--6822 -760
--5044 6631
--7591 -6048
-5011 6449
--3510 -9581
-759 7081
-743 1350
-978 -5586
--6934 -7363
--9987 -5799
--3429 3961
-1065 7128
--6315 6280
-5347 -8800
--7115 -921
-4799 -6740
--8266 -4439
-2562 6055
-2834 -2012
-7894 2551
-1739 9260
-6055 -4842
--7379 -9524
--2986 1838
-8094 1653
-966 -5854
--251 8113
-9744 5102
--7000 9359
-1103 -3033
--4607 7982
-5943 -8776
--4566 3172
-5932 2277
--6851 -3646
-9304 -9138
-7560 9471
--2162 -489
-4729 4497
-4212 -6194
-4531 -9713
-8559 8629
-6033 9143
-3070 1724
-9726 7481
--8886 541
-6051 1697
--1325 -5861
-2091 -6979
--4573 -8589
-3833 -5498
--8862 801
--9885 7813
--579 -7878
-8984 -9220
-6029 4159
--6789 -2691
-2564 6623
--2128 3378
--4275 1072
--9700 6311
--4560 6334
--3005 -9492
--6304 5944
--3549 8708
-8272 -510
-9030 -5384
-9242 6395
-1468 -4726
-1079 -8360
--4570 8450
-9707 5850
-3512 -7509
-5438 6801
--1639 -2998
--1695 6493
--7518 98
-4319 8384
-3386 -2970
--8664 -1581
-6588 -5868
-3395 2297
-8886 -4893
-743 -5550
--6828 -8751
--7591 -3747
--2849 -2996
-8190 549
--8721 -8652
--3726 5287
--9469 -3421
-1785 -9767
--6608 4600
--7976 8193
-866 7958
-2952 -7993
--3779 -1304
-5937 1646
-237 3257
--6681 -4899
-8551 -6729
--6276 -3649
--5678 1293
--2152 -7780
-2383 8126
-9518 5237
--7919 -9052
--8129 6873
--1594 -8372
--1042 -355
--1573 -5286
-999 -1174
--8940 2119
-3204 7177
-4736 1206
-4014 273
--9762 3253
-2211 -2297
--5584 4601
--6992 -3025
--6105 9887
--9575 1294
-610 6362
-6415 7955
--6056 2560
--3023 4537
-5286 -9932
--6789 -7812
-7735 9001
--5470 2640
-3460 -3975
--9834 -7942
-6528 -9031
-9119 9942
-3957 9500
--7870 -4484
--6146 9298
-6922 -4870
-6888 3846
--3587 -1542
-1724 -4055
--7640 6068
--3432 5394
-2404 -4746
-3594 -1472
-8688 3201
-4170 -6912
--1315 3739
-416 5266
-7312 1561
--1545 -5985
-2943 1531
--4521 918
--5540 8412
--8122 -1606
--6634 -7878
--7298 -7934
-597 6125
-6305 -5911
--8414 7787
--2000 9877
-2904 -8428
-7866 7491
--8447 4390
--890 -5632
--8022 2538
-1896 1891
-9544 8427
-705 3329
-6358 -5628
-9396 -5372
-6408 7570
-2443 -7313
--1512 -6848
--3761 -3044
-295 4023
-732 -4702
-9254 6606
-9206 746
-3320 -2669
-8983 9572
--6337 2425
-4436 -2995
--7103 6213
--2119 -565
-5098 6396
-1536 3840
-6991 -6172
--3192 66
-8756 3496
-9135 5316
--9823 6923
-4197 -8197
-9224 -6655
-2184 -8692
--3429 7536
-7460 -5947
--3181 -211
--5710 4979
--6164 4166
-3911 -7337
-9803 3669
-9714 -9028
--8774 5958
--95 4899
-6464 8538
-9673 -7801
--3405 673
-6441 3417
-4897 -7924
-2772 -8525
-7914 3459
--2340 -7648
--4537 -8748
-3990 -6318
--9615 8891
--4547 -4811
--2650 -342
--1407 8535
--7323 -9113
--8365 7430
--2689 5056
--6828 -2051
--4022 -6674
-6111 -5755
-1131 -9769
--8330 -2296
--8902 1353
-212 -974
--7415 6130
--6118 -2290
--4051 -7540
--3634 1864
--1070 -5414
-8163 -8937
--9191 8053
-6350 -4579
--1051 -8333
--7710 9122
-7640 -3822
--8855 -6174
-4086 -9232
--7451 -7443
--6758 7945
-567 1567
-2579 -7801
--6248 5851
-7400 -7335
--6887 -4110
-9972 1208
-222 940
--6997 -2079
-8764 -718
-2388 7387
--4994 5430
--5021 2880
--4234 9253
--2514 6133
-8584 -1418
-4158 5399
--2178 -2276
-2373 9441
--1142 8874
--7508 276
--620 5743
-2422 6250
-4383 -2856
--1698 5783
--8798 -5732
--602 -5926
-9385 -9664
--973 7979
-9021 4458
-7223 -4117
-2505 -8326
--7623 2281
--803 5891
--8770 792
-4592 -6837
-3236 -4546
-1480 -8522
--1648 -8687
--9876 2760
-1755 -111
--4042 -3401
-1712 5067
-3865 -2454
--7288 -6993
--2539 -6759
--6947 1258
--4154 -2624
-6120 -4126
--5525 628
--9294 1092
-3934 1967
-2807 0
-5425 -9471
-3026 -8756
-8165 -5221
-1541 3954
-5544 -828
--6446 2501
--7867 8326
-8529 -4022
-4347 2165
-2334 7567
-1334 -2221
-1965 3406
-7348 -681
-3896 6230
--7788 8694
-4167 779
-2450 -9870
--3315 3909
--6646 7280
--4114 -3068
--1200 266
--7489 7884
--8786 2040
-9250 9016
-1045 -948
--512 -1744
-277 -6453
-7199 7585
--6517 6770
--4215 -10
--3603 -4807
--8054 4291
--1828 -5536
-2553 9091
--898 1409
-6737 1789
--7366 599
-3630 9784
-7251 6474
--4684 3972
-9034 -6599
-7828 -472
--2342 -201
-6487 -7176
--7213 6446
--49 -6620
--6675 -8224
-1044 -1425
-7258 2814
--4655 278
-4585 -6089
--205 4925
-5078 -2499
--7798 -1528
--8118 -5889
--3976 1218
--794 5630
-3449 6710
-4229 7618
-1361 2905
--4960 -7543
--3715 6200
-4570 652
--1793 -867
-5759 -6642
-2488 7916
-9502 9353
-659 2132
-5214 88
--4646 -2660
-1187 7907
-5307 -1850
-7298 -16
-4414 6057
--1239 -2466
-9684 6214
-3861 -1711
--3401 -1572
-825 2390
-3795 7931
-6924 6116
--6067 3664
--2885 2238
-8240 -1814
--6355 -3797
-5306 -483
--3485 -7980
-9043 -9003
-1825 -7798
--5522 -7363
--1572 -5658
-4410 -9765
-2789 5520
--9300 7116
--2656 8033
--6109 9359
--1760 -7220
-8925 2840
--3907 -1175
--8377 -6077
--9360 -6115
-8422 133
--4797 8643
--3565 5400
-2364 916
--9881 -7869
--8987 -9535
--9307 -1402
-222 2623
-8714 6246
-5837 2703
-1330 -5306
-7999 3853
-9407 -7864
--8930 -9453
--6043 -3457
-7399 5007
-3054 -4530
-836 -4323
--5243 8667
--9149 -401
-9877 -9295
--3250 -7989
-8524 -591
--2787 -2953
--1847 190
-1192 -5637
--976 7955
-6190 -9989
--7221 3428
--9686 35
-9208 -3989
--262 6658
-4680 6120
--3452 9755
--5413 -692
-7572 -2989
--421 6936
-4860 -2170
-2298 4855
--6480 -5267
--2437 7467
--7414 -3313
--8274 -8218
--5424 4631
--4672 -7342
-1866 -7000
-3470 -8731
-9355 6154
-3455 -5053
-5282 -8194
--5224 5709
-4979 5026
-9211 -7154
--607 9783
-7660 -7178
--9096 6010
-6376 1073
--901 2401
-5739 6474
-9147 3395
-3993 -6141
--903 8341
--8302 -5076
-8847 -3350
--645 -6434
-7597 -9783
-9911 -5495
--8804 -8948
--6208 6109
--9587 541
--9720 -7028
--4694 -4974
-3141 9129
--9799 8225
--5417 3621
--1832 2998
--535 -805
--6733 7340
--2216 -7475
--9244 -3333
--7655 9043
-7004 -3023
--1895 3888
-8336 -8838
-4950 4086
-3282 -5722
-516 -9397
--5364 -8941
-9029 -8301
--6053 7341
-9448 7294
--2756 -1163
-9217 -4589
--5099 3166
-3801 -6603
--2977 7783
-2756 8311
-6456 7442
--5913 3970
-987 3010
--1233 8524
-4104 3266
--2288 -3028
-7009 3303
-5540 2752
--9684 9432
-5240 -651
-8174 2254
--57 -6219
-434 -7120
--8209 -4643
-9685 -3687
--4521 -8811
-4290 2987
--7591 -9169
-5207 -3943
-4728 -9136
--49 -8255
-7873 -2602
--1027 7796
--6922 6860
--3584 -5004
-6242 1161
-8603 -1193
--9211 2992
--2670 7336
--437 9178
-9705 -3233
--6807 -1359
-2221 3090
-2458 -9140
-552 9050
--2793 7279
--703 -3805
-6161 -2921
--7370 -2641
-2007 9790
-3595 5536
--8589 5034
--940 5848
--8628 381
--6851 -2719
-1333 8739
-2403 4208
--3255 1441
-1918 -1869
--9642 1183
--9492 -4465
--1439 -2914
-276 -8037
-8307 -4409
--4350 -4631
-3513 195
-2439 6427
--8850 -9075
--9032 2973
--1902 -3548
--2067 6154
-7565 6596
--7641 -8854
--1151 6994
-3676 -6533
-7625 495
--8947 -499
--6436 -7438
-6800 8688
-9501 1052
--274 -7045
--7428 2711
--2588 32
-5025 -4802
-4802 4319
-1398 -8403
--9602 6421
-6026 -33
--4832 -4293
-2719 -7803
-4475 -2860
--3383 -4054
--1679 7700
-9878 8494
--6725 770
-2657 -6362
-6310 -787
-5840 5787
--7672 -4548
--47 572
-6966 6010
-5811 9904
-5530 6518
-4833 -9695
--818 -5787
--1512 9299
-9283 3400
-6064 -7733
-5260 1070
-4378 -9530
--3002 -5707
--7995 -5737
-6048 4660
-4366 -8965
--9194 5479
-2727 -182
--8089 -2451
-2785 9536
--1706 -586
-9541 7425
-8246 -7232
--4988 -8435
--1820 -5706
-5161 4217
--5105 4147
-7956 6664
--9280 298
--6438 -4486
--3331 829
--1322 2754
-6003 -250
--3787 -5586
-9537 -9026
--4968 4739
-4284 -5160
--2449 -6697
-8839 -130
-4926 -6723
-140 248
-719 748
--4007 6643
--4663 -6361
--6172 -8019
-7511 -4897
-4570 -9982
-6620 7465
-7642 7206
-1645 1757
--3953 2581
-9795 6183
-6812 1381
--7116 -7023
-4885 -6939
-9922 -7166
-6748 5013
--7984 -1196
-1000
-8267 1344
-9117 -6880
--7633 748
--120 -4961
--989 -4049
-7338 2224
--136 -7300
-6138 175
-5083 4024
-1457 -5856
-2190 -5088
--1790 2891
-4974 -5628
--208 4302
--3385 7389
--5294 -1882
-103 513
-6779 -7462
--1236 7451
-3107 -8007
--8782 -166
--4759 -1868
--4822 -4954
--2750 -4303
--6393 3169
--5877 6319
--9136 -6407
--9177 -603
--433 2708
-4524 -4666
-2777 -3635
-4896 2954
-9418 3239
--6560 5248
-8650 5263
-8780 9615
-5143 180
--8251 6499
--5039 -1883
--3282 435
--9707 7047
--8214 215
-5565 -7623
--3408 -8932
--3377 -9485
--152 8144
--1232 9255
--2261 4914
--7702 -9617
-902 -1824
--6627 6829
-4259 -6189
-8543 7873
-9809 7317
-1185 2347
-8695 6072
--4184 691
--3397 -2862
-1822 -9852
--6250 1983
--7534 1848
-133 -7329
--9612 -9186
-9903 -7779
--2098 1189
--1795 -7530
--2648 -2218
-8654 -6712
--9167 4892
-4259 -3577
-1402 4728
-1755 1411
--2176 -2808
-8421 -3591
--2556 4896
-6688 -2281
--5868 7715
--1634 -7169
--415 4146
--1785 9988
-5015 -5526
-432 6119
--5015 4074
--5334 -834
-328 -6014
--2469 7000
--4310 -915
--8963 2519
-6265 677
--4970 5800
--536 -5996
--1259 -8474
-3022 8859
-1557 -8491
--5697 4977
-5312 -1628
-1567 1059
--6822 -3526
-5936 -3861
--7354 3017
-7256 2456
--5107 2998
--7031 946
--9626 1507
-2813 3040
--5058 -3848
--6380 408
--6129 -1327
-8129 -1071
--6552 7811
-3335 9733
--3092 5013
--9017 1252
--5583 -337
--8279 -8188
-9810 -705
-2428 -1023
--498 -3480
-1418 -6102
-2623 4809
-4282 -4812
-144 -1079
-733 1989
--895 -6329
--4643 6934
--438 3616
-6190 -9120
--4519 -8446
--8423 9351
-2105 -863
-168 -9277
--3201 -8508
-4915 7273
--5031 -6493
-7109 4452
--8044 -182
-9711 -5872
--6319 -9899
--765 3267
--9242 9956
-3149 1112
--3364 -345
--7886 -2935
--1063 1988
--9949 -2753
--7627 -9222
-294 7207
-6690 9023
--7161 4201
-2495 8469
--3807 -869
-6311 8397
-2141 -4214
-141 -3536
--7086 -7809
--7042 -2568
--1685 9731
--6555 -2120
-6039 1621
--4667 -3589
-5526 4735
--5701 -5302
--4179 3896
-655 -1972
-7047 -264
-5643 -4411
--7717 60
-3217 8407
--5805 -5625
--6938 2870
--9615 -6012
-206 4380
-8607 2443
-7754 -7965
--978 2046
-9669 -8964
-2331 6905
-4239 3170
-952 1305
-336 -4983
-27 -5221
-322 4708
--5865 5573
-9524 -3340
--3862 -6052
-1690 28
--2701 -319
-9495 4890
-1151 3768
-8045 -5407
-4880 -3014
-6801 -5244
--641 6818
--1244 8048
-9626 -2834
--3558 -7688
-6568 6581
--3906 1017
--2992 6091
-3576 -7300
-8111 -499
-6370 5954
-8909 -1459
--959 -5078
--6818 -3746
--84 5087
--8628 -4707
--2078 -1495
-3102 -4567
-6239 -5220
-1194 4547
-9455 -7008
--8133 2588
-3331 -8450
--9431 2209
-519 -2389
--6167 6779
-4133 -8086
-1001 -275
--3266 7855
--1613 -5172
-3598 6116
--2941 4983
-5890 8612
--6337 -6462
--9301 7964
-1599 -7170
-9126 -3362
--609 7597
--7287 1501
-388 -2111
--7261 6307
-7812 613
--2873 3486
--203 4917
--7760 2108
--6141 -2459
-3216 -7461
-2721 368
-5378 -6005
--1221 -1265
-9596 -228
--148 4497
--2681 -878
-9236 -5801
-6764 2853
-9904 7356
--3476 -1620
--4145 844
-560 -7088
--3372 8592
--1505 -5842
-7053 -3907
-8606 3642
--16 -2383
--429 6622
-434 9137
--8635 -8373
--5034 5135
--6014 634
-3526 -3492
--2409 -9614
-5519 2768
--1271 8435
--6267 7806
-2943 -9992
-5584 -207
-8471 -4949
-7094 6791
--5086 5679
-817 -5643
-8991 9893
-9018 -7873
-8862 -7055
--7572 -7225
-196 133
--863 -6219
-5356 -549
--1712 -321
--2161 -3348
-212 -4217
--1314 -8870
--2823 -5325
--1643 4219
-8060 2273
--1770 -2150
-2037 6525
--3525 -6951
--2532 1602
-5521 -4561
-2944 6194
-398 -9438
--6505 -4855
--8124 -191
-6169 8581
--2549 -6454
--5179 773
--7817 6874
--5954 5717
--9192 9329
--6363 -6740
--7191 -1527
--7929 -1149
-3919 952
-4699 4054
-1491 7853
-4491 -2984
-2972 -3076
-6686 -7145
-7783 5395
--7373 -3988
-8981 6462
--854 -8237
--9188 7400
-2831 3120
-1850 5076
-8280 -65
--5263 3649
--7461 -7716
--3000 401
-8619 430
--2434 -6241
--8126 4282
--724 3361
-8414 1772
--4589 2794
--9093 9304
-8325 1123
--8726 -2460
--1747 -1999
-702 1621
--2639 -620
--3840 1876
-401 3161
--6519 -2209
--8804 8207
--7307 1655
--6248 -3656
--2777 1925
-4331 7224
-3888 4709
--3064 -5011
--1307 -7063
-3349 -1324
-6080 4760
--5207 -9809
--3656 -9216
-2491 -6702
-6033 -1121
-4131 -3523
-4485 -1174
--4306 -7788
-4329 -7667
-9656 -3439
-3432 8887
-5551 -2286
-5407 6876
-9963 7741
--532 31
-206 2474
--2871 -5456
-6986 7877
--5136 -5825
--6931 2860
--5974 345
--8584 -6498
-8571 -3585
-5757 -6329
--5340 6763
-9082 -2460
--2747 2026
-6632 6028
--9624 8341
--9742 2984
-1309 -3833
-6235 4970
--8512 -2727
-7285 632
--7189 -3164
--3573 2077
--5918 -8482
--5837 8069
--6634 -8225
--4257 6903
-4075 1404
-6081 737
--6981 -8132
-3994 1664
-2753 1718
-3467 -4600
-7522 4652
-1365 -3509
-247 4326
--4777 -1857
-8650 9736
-4142 -6923
--5208 1621
-2246 6660
-7215 -5681
-3992 -3943
--1100 -180
--3084 -2422
-6284 -3714
-388 4619
-962 8020
--690 9053
-2030 9337
-7123 -9877
-1766 1956
--4844 -9143
--3536 -7424
--5818 -1154
--9800 9999
--7535 -3406
--2740 4935
--5600 -3585
-3528 7069
--2029 7104
-9896 7983
-8807 -5353
--5854 -9941
--8672 -2664
-8309 8026
-8207 3985
-9529 7183
-7543 -2053
--3244 8447
--941 2538
--6127 -2593
--2318 -911
-763 3991
--9616 2430
--3660 -1411
-9839 4492
-5767 -9943
-2960 6718
-1978 -9325
--999 -8954
--8985 4698
--2497 4719
--2791 7983
-5318 2089
--5913 9723
--7773 -1102
-2728 8700
-1777 -4999
-9288 -8490
--6923 -1447
--4821 -7917
--5323 -5916
-9394 774
--6431 5368
--9268 -134
-6679 7893
--4219 1225
--4338 -9657
-2923 5102
--2901 2851
-9926 6509
-4422 2519
-7301 -22
--6654 1833
-7823 -3629
--592 5070
-7856 9829
--7519 9770
-8886 6575
-9113 27
-7396 7032
--1260 -7378
--5103 1050
--849 521
-8224 3337
-475 7116
-8901 -717
-8516 -3688
-8887 5013
-5554 2950
-7772 9397
--6289 4989
--4780 3245
-4859 9939
-3335 -2270
-1649 -2968
-4212 -3312
-1467 6775
--1987 -3785
-3349 4026
--4295 9011
--853 -8952
-6549 -7227
-8359 5320
-6091 5285
--8858 302
--5880 -1000
--8921 -1023
-282 -9811
-5841 -1554
-8593 -344
--3080 3044
--9785 -9428
--2337 -7866
--5996 8346
--282 4963
-3970 8059
--6517 -2792
--5976 6538
-5601 9749
--8150 1607
-3288 -9783
-9191 4109
-9519 -1768
-9880 6928
--3473 5458
--657 -7168
-8865 7428
-4769 -9084
--1902 -5114
--1228 -4103
--2309 -4153
-5575 7603
-6880 9722
--1428 8588
-2186 -7870
-9814 -1661
--9163 -5200
--1025 -2864
-2267 708
--8348 -8334
-4974 1456
--4815 -1496
--6376 -775
-4946 -9069
--4672 -1729
--4514 -6185
--1487 -2631
-8639 6504
-7962 -1479
--288 29
-6353 -5933
-1826 7003
-9723 -969
-1520 8132
--7549 -5268
-4814 7313
--8331 -8249
--773 9899
-4869 6096
--5601 -546
--9596 -1949
-406 -1656
--3218 -9880
--7392 -8030
--1160 -9637
--5751 -5949
-1358 2409
-6315 -673
-6195 -3294
--5309 3649
-562 6885
-2042 -2428
--7382 3486
--2762 4732
--8093 9181
-3532 -3285
--8337 -8456
--7227 -6471
-4084 1317
-9760 6548
--3661 1452
-953 8561
-3103 6685
-2162 4787
-5422 7545
-91 540
-6106 7446
--492 -5483
--5747 -8366
--474 6321
-253 9896
--2062 -272
-3181 5428
--4543 8081
--1716 3375
-2928 1897
--7468 -2121
-6429 -604
-7025 4790
--2867 667
-7060 8543
-4803 4243
--6981 1534
--2070 -8523
--3799 6177
--6418 9671
--1267 2695
-7344 -8339
-4098 -6346
--6256 -987
-6840 4547
-9717 7316
--4032 -4834
--9024 7035
--7570 -3685
--1907 2915
--4940 -7325
-4672 1459
--9087 -8077
-9114 9513
-4531 -3786
-1300 7124
-472 -2593
-1830 81
--3138 -1497
-4597 6653
--2642 -4482
--5265 5816
-7081 4997
-7048 -4610
-1424 2078
-3436 -4432
--334 -6551
-8794 5694
--831 7072
-4477 5924
-9708 2434
--1481 6650
--320 6393
-4893 1052
-3488 3103
-9305 5980
--6940 7650
--5966 -1128
-658 2063
-6847 -8084
--9407 213
--7934 2543
--7788 1256
-3428 573
--4004 -6989
-6607 -7385
-2439 6134
--820 -264
--6369 -6100
-803 7533
--1274 5169
-7534 4257
--4114 8508
--3155 9403
--5902 -2615
-4362 4540
--9462 1548
-7521 -6116
--8673 3474
--5682 4149
--8935 -6048
--9635 4243
--2091 7004
-1961 -7765
-8498 2503
--4164 5791
--1296 -4943
--7719 -845
-5446 -7137
--9410 3202
--8441 7057
--6862 4926
--8912 8384
--4623 -163
--9615 -8571
--2321 -9183
-8737 3777
--9526 2570
--2467 7596
-2803 -1304
-8602 -9223
-9414 809
-4870 2873
-9308 3088
--2235 -9044
-5525 2370
-7951 7612
--1574 -5888
--7536 1338
-9382 -2028
-1804 -3834
--5359 5440
-78 4113
--7725 3162
-3463 -5353
--7345 -7351
-1397 -3761
-1825 -9231
--8137 2669
--7095 -9153
--3112 -8143
--9545 -1694
-9231 5964
-2949 -5670
-701 9310
--8699 -4448
-9042 5584
-5803 -8378
-2637 -8184
-409 -5780
--5966 -2669
-2750 6692
--2524 4225
-1009 7445
--3882 -5160
-9787 2391
-955 9688
-1977 -8048
-1324 -2916
-2505 9617
--9667 -5138
-340 -4625
-8445 -8173
--7338 -536
--9962 1706
--5191 -6310
--8919 -5938
-814 369
--991 -7805
--2628 -9602
--1799 -6570
--4290 7319
--3905 7760
--2689 -8403
--7698 -2459
--2574 -5621
--7543 1824
--344 347
-1765 -7140
-4530 -3787
-8012 -7723
-5214 6794
--7647 8761
--4873 1699
--5791 -8558
--3402 823
-7881 3732
--3044 355
--1130 5208
-2174 4023
--2126 -7195
--4169 -6757
--7665 9428
-2017 3374
--453 7052
-7551 8030
--832 5314
--3239 8231
--8144 8461
-3709 9621
--6880 -895
-4406 -188
--6769 4360
--7617 -4865
-7844 -3050
--7460 -4097
-540 -642
-6991 -4954
--9573 2593
--5460 6155
--7344 3673
-6383 4041
-651 -2897
-6877 -7001
--1764 3282
-1336 7672
-8979 6165
-348 -4404
--1312 4875
--6727 3136
-1802 2146
--8625 9605
-7998 7465
-4307 -8677
-9558 7857
-3372 4458
-5915 1036
--8394 -1195
--9006 2212
-3489 7436
-2845 -6056
--7412 3725
--4988 -1191
-857 5982
-1292 -7691
-3456 -777
--6170 6315
-5530 8575
-2788 -1171
-9974 6394
-5546 4307
-5481 -9619
-3192 7144
-50 2452
-2669 -7500
-3383 2786
--434 -1041
-1905 3975
-6074 -1222
--2726 1974
--1469 -8854
-2678 311
-3988 -9556
--2872 -9208
--4763 4063
-1269 -5710
-8624 3992
--6235 -6726
--6873 9120
-6291 4823
--6938 -7789
--4050 -7992
-9279 7719
-1258 -8952
--1125 -6031
--2570 -4177
-8274 2504
--1936 2520
--27 -8975
--2786 5275
--1385 9288
-6793 -9645
--104 5940
--9875 -4286
--6142 -4661
-6925 -8607
-8262 -7407
--4848 -2006
--9071 -7644
--7852 -1654
-3382 -2714
-6124 9567
--1438 -8516
-7953 -1115
-2875 -996
--8284 3579
--9805 -6133
-9163 9976
-1591 5900
--5875 9738
-6571 -4723
-9875 -1383
-2505 6219
--5195 -9783
--1996 5737
--265 701
-7081 5857
-8005 4630
-6886 -4402
-8124 9873
--1905 -7581
-2608 8409
-1341 -7308
--3489 -3845
-53 -5726
-9952 -5
--2165 -4504
--8462 -5483
-9965 8485
--9926 -2508
-4773 -8697
--6300 -8560
--7855 -3381
--1343 2766
-825 -5248
-8964 9703
-7371 2097
--3747 -3885
-1107 -7630
--9070 3864
--4033 5602
--4863 -6057
--9099 -565
-6584 -2354
-9335 2390
-2617 7356
--4450 -5005
--6270 -907
-2251 4688
-5756 4169
--5753 5394
-3328 -5529
-120 9965
--2053 -7630
--8767 8251
--7447 4452
-3102 -4876
-2776 5959
-9472 2001
--3211 -7881
--3136 11
--8971 9254
-2427 9285
-6082 7779
--4346 7253
-5002 8686
-7836 5850
--1059 2325
--3104 -6039
--8202 2014
-3169 -949
-5771 -6781
--7465 9857
-1883 -7972
-3562 4993
--7059 7681
-358 8370
-5892 -3616
-2383 -2533
-2735 -5829
-7449 2226
--2133 5063
--1763 8966
--4649 1492
-6493 7093
-3878 -4102
--9716 -8372
-7394 2633
--967 6477
--6240 3544
--7662 7943
--1755 -2170
--6970 1798
-7335 -3018
--4387 7551
--4130 -7786
-5459 -9371
-6781 -7777
--2855 -6108
--8929 5141
--8371 -5333
-3596 -862
-2087 3153
-566 2113
-3038 4143
-3849 -6923
--7083 -8521
--6450 -3787
--7394 -7421
--5992 2800
--8515 -4897
-9187 1518
--5794 -6229
--1029 9421
--7085 -1077
-6060 3953
--2967 -4086
--6318 -3478
--6299 -9822
--7837 -6093
-5206 -7023
-7881 -8070
--1125 -9393
--2623 8302
--3291 5471
--4489 -3135
--8657 5176
-4809 -2091
--4189 -5970
-1793 -1521
--5060 7824
--9030 -5841
-2803 3124
-7005 9761
--7044 -1057
--6078 8523
--2981 -9617
-3644 -3497
-2321 1377
--8176 -6138
--6629 -4785
-7735 6092
--4072 309
--7520 5483
-6251 -9122
--9630 7925
--1610 3320
--7521 -9068
--8505 5424
--3384 -3453
--5240 7991
--5683 -8411
-1960 -5505
-9642 1859
--5533 -5083
--3553 -8871
-8938 -8386
-3567 7980
-7873 -1796
-8650 -8133
--3073 -307
--3023 6842
--6393 -9693
--7955 5172
--5561 -812
-1000
--9569 -374
-1967 -1508
--6477 -6073
--26 7964
-5665 3463
-5288 4214
-7104 -5091
--1354 -7994
--8700 -2934
--5076 4554
-1682 -3245
-3492 8225
-5975 5412
--4335 5058
--4610 7469
--279 -3453
-6359 9134
-531 -6890
--3563 449
-570 8899
--5014 -735
--9334 6824
-33 5296
--7556 -5407
-5249 6449
-9959 -6101
-4245 4641
--1361 7240
-2319 -8491
--8863 6277
-4036 8154
-1943 2523
--1944 7492
-194 -4073
--9426 -6268
--5061 -1507
-583 4656
-8119 -9763
-7288 -7847
-1092 2600
-1079 2337
-923 -3562
--1775 -966
-9978 5586
-5235 2383
--889 -8407
--7429 72
--6988 2172
-1646 5300
--1939 -7309
--3115 -2622
--2463 865
-9175 -5909
-7530 -6426
-6971 1362
--110 8789
-2377 -3250
-8067 -2973
--9671 3767
--2419 -9779
--6529 9979
-44 -2697
--1101 5100
-9111 -94
-7941 4356
--9057 -3283
-6351 4897
-2297 4853
--1082 8178
-4938 -3536
--3378 -5526
--6259 -8452
--2590 -8930
--1668 -4506
-6072 6683
-8410 3692
--4618 -5030
-1838 3259
-7504 2464
-3701 1023
-6028 -172
-2040 9167
-1952 6507
-7744 4425
--1681 -3669
-9777 2316
-6651 -6428
--4339 -2862
--9785 7926
--8121 4278
-301 -479
--9483 7953
--3676 5013
-1891 4367
-6956 8821
--4445 -6448
--7956 -4030
--1799 3091
-6165 5145
--1852 7231
--3672 -7939
--148 9782
-1255 1361
--9063 -9731
-3740 4829
-811 2781
-4765 -7628
--2970 -554
--5631 1306
--8435 5224
--6460 3779
-5515 -1141
-4460 6564
-9495 -4311
--531 9600
-1454 7714
--9376 -9551
-8795 -5488
-7962 7458
--6548 8500
-7299 -3071
--9122 -4052
-6242 -7232
-6536 2152
--1097 4450
-2282 -6254
--9876 -6560
-4715 9475
-8833 9858
--7652 -4324
--6275 -4479
-9147 -7658
--7879 -7799
-7335 1163
-4140 -5749
-4972 3977
-8739 82
--6042 -3554
--8027 8489
--4587 1082
-6932 4652
--2130 8585
--9952 -527
--7087 1953
-2755 -8963
-8328 -9392
--3633 685
--4932 6343
-9410 -1179
--492 -5155
-2604 -5892
--9869 -2921
--171 747
--9160 1245
-2207 9373
-8805 -2086
--6892 -4875
-2789 8680
-9422 -9322
--6634 -1810
--1936 1923
-4327 4470
--1432 8655
-9047 5738
-7180 1435
--3363 7424
--6238 -306
--820 6752
-6659 3170
-232 2275
-9988 5351
-1077 6573
--5846 -6652
-1889 -2647
-1256 7500
-8589 -7791
-2793 5570
--938 -6084
--703 9186
--2826 6098
-936 -1669
-6781 1934
--1036 -6899
--4654 -3836
-8264 -1044
--3853 -5554
-8854 -1016
-579 -577
-5818 -5297
-8779 2362
--5653 -9662
-5074 -370
--8080 2214
--7873 5037
--5159 203
--1888 -5746
--4589 -6424
--6802 1797
-2969 5894
--8626 367
-8897 -2042
-808 -9882
-3842 7088
-9113 -6187
-2308 -9765
-2453 2107
--9225 -5669
--9864 -9805
-4456 -1729
-4083 -9253
-3503 8540
--5041 1254
--8060 -3734
--7145 -7860
-1168 7512
--3102 2529
--9289 -8344
-1580 1780
-481 -2533
--440 -2141
--628 3374
--9877 -1102
-9939 -3144
-5379 4145
--3916 4
--345 -826
--5713 -9140
--7015 -3007
--6149 -3257
--7066 -3296
-99 9426
-2338 625
--3437 4135
--545 9384
--8398 -4148
--9510 8043
--5818 8897
--7037 8409
--7534 -8655
-4791 -8078
--3632 -1923
--1120 -2334
-1968 -5183
--4754 383
-7704 6062
-9967 -4386
--4647 -8445
--9147 -8982
-686 -8562
-9123 -3592
-7441 2650
-9742 -9818
--4777 2328
-1375 -4358
-9000 8417
--2208 -3775
-3227 -161
--1835 -5385
-5644 -949
--5578 -913
--2807 -3051
-8886 4661
-1733 -9123
-3076 -2325
--3593 7621
-621 -3503
--4032 -4602
--3633 -8706
-4360 -4810
-1256 6668
--2535 -7016
-4818 -9616
-1757 5817
-7125 -6242
-3865 -9780
-7533 -5888
--4565 -953
-425 -9820
-986 8136
--3644 3855
--6924 -9867
--7759 -8019
--6287 4318
-4118 3636
-7375 -3251
--1857 -3451
-2334 -9598
--5813 -4816
--7564 3247
-34 3593
-9732 4182
-6475 3771
-2987 7029
--4546 5068
-1706 -2319
--6635 8701
--6393 8324
-2992 -4285
--5345 615
--9191 9517
-3856 8892
--8259 8999
--4551 4240
--7359 6412
-187 -1071
-8253 -140
--1676 1190
-3280 -362
-5739 1545
-9522 9384
-3561 -2853
--9898 -4238
-7568 -7959
-961 -2617
--7426 5037
--9184 -2348
--4870 -498
--8749 2945
--8393 -396
--2782 2897
-1523 3939
--1495 4747
-8544 -6579
-9874 2077
-9116 4044
-4854 7906
--7468 -4954
--956 2806
--7686 4147
-9913 -4660
-3583 -287
--1264 8046
--9490 -3441
-3680 7384
-7771 -9041
--5356 -985
--6292 -9016
--2996 -4447
-9221 6665
--4072 5492
-7596 9865
--135 1137
-3947 2210
-5919 -7937
-6603 -6447
-8436 -2932
-1384 -7263
--7960 -2801
-7761 -1982
--4025 -6992
-4079 5266
--5498 -8123
-9189 -1380
--3207 -5085
--6149 -8939
--4502 400
--7578 727
--1985 -9796
--923 7472
--498 9878
-7506 72
--6274 -4784
--619 4844
-6016 585
-6086 3213
-4343 9205
-5146 2741
--3968 2305
--4069 5942
--911 -8416
-4969 -8789
-4149 8279
--4545 -5124
-2649 -6804
-6213 -5307
-8016 9785
-1862 -3914
--7029 -1871
-5213 5810
-6093 -7379
-6787 9371
--9474 8059
-6462 1027
--1501 65
--9900 -2561
--9050 6493
-4028 8828
-8973 -4085
--9056 -6489
--3657 6237
-9630 6296
--4644 -679
--3818 -6927
--8175 -4411
-3696 4494
-2653 -6445
--9266 9982
-100 -6647
--7338 -6376
-2008 -485
--1139 5400
--5037 3260
--6731 -5673
-5807 -4850
--9319 9515
--3498 -7100
-1884 -6286
-8379 -4389
-5664 -4222
-6451 3432
-2609 4946
-7830 -51
-817 6483
--9801 -1011
-395 5939
-6092 1383
--592 5426
--6055 6449
-339 -8116
-1060 -6623
--8156 5364
-6017 8378
-4995 -5671
-3624 -97
-3651 -4251
-3496 1988
-8407 -6143
--2918 -7037
--5653 -843
--7264 3247
--3072 9986
--9440 8264
-6525 2959
-2561 -3617
--2239 -2807
-213 -7155
-2141 -7419
--263 3616
--2679 -6455
--410 6294
-2885 8541
--5862 -6146
-7982 8713
--5483 4568
--6915 -3640
-3143 -8399
--4473 6816
-8431 -4950
--729 -6320
-3227 -926
-5242 8770
--9861 -6132
--240 -9845
-7650 5274
--3232 -8118
-4003 -8345
--5886 8249
-2397 -549
-8579 -6037
-3598 -1495
-7897 -7524
-6578 -371
--296 -8998
--1589 3511
-6189 9840
--9294 7873
-1621 6374
-5990 -8479
--5536 -5553
-2056 -9927
-7386 -7977
-5734 1711
-7250 -3469
-2037 4525
--6369 7127
--1818 556
--599 -3157
-4418 -2693
--6833 1327
--7706 5235
-126 2691
-7701 -4931
-4837 6111
--1233 5381
--8225 -8871
--9048 9619
--962 9341
-4717 1965
-7666 -7117
--2506 -6592
--89 -1240
--4301 -6399
--109 5110
-5306 -1474
-87 -5464
--5687 2309
--9012 -639
-926 2007
--4990 5881
-4940 1241
--4272 -6348
-2976 -2373
--404 -2942
-7227 8322
-439 -6739
--9434 6804
-6607 -2716
-4281 7965
--688 516
-3293 1533
-7499 2154
--1422 8793
-8687 -3225
-1510 2265
-969 3990
--1529 8653
-4720 -8202
-4351 6059
-8501 -1315
--467 8050
-7314 6613
--7039 -5361
-1498 -928
--2272 -7312
-9100 -2242
--796 8988
-6639 -3856
-5579 -2695
-2861 -4219
-9792 3309
-5512 6014
-3920 540
--2697 2770
-1352 9268
-1221 7322
-5760 3817
--5126 2502
-8381 4114
--7094 -2612
-5516 5800
--3782 8347
-668 -3611
-854 4742
-4408 -1678
-2640 2919
-3426 5632
-6047 7952
-7216 7748
-7316 7240
-5795 5066
--3815 -3600
--1087 4893
--2472 -1194
-8818 9890
-8416 9848
-2012 7177
--4577 5894
--9848 553
-2934 -90
-8760 2292
-9063 9557
-2728 -2406
--3870 8403
--2931 5780
-5662 -4855
--4379 5937
-9419 -3968
--8547 -1157
--2084 5705
-4869 -2096
--3041 6593
--4511 -7994
--9310 2919
--3400 3016
-512 -8935
--766 -6752
-4366 967
--8967 -1210
--7705 -3719
--1656 -2270
-185 -3309
-7193 7561
--2404 -7459
--4700 -3532
-8756 4396
--6702 7803
--3057 -7952
-9537 -8686
-9560 3914
-7215 9341
--1596 -5676
--7841 5013
--9831 3682
-8343 -5387
-7640 -3988
-3879 -5606
-2274 -4128
-9037 -6503
--3248 -209
--7311 -6668
--247 -945
-6941 -7936
--3184 -3482
--9913 1294
--2179 -6875
-5661 5428
--8410 -1632
-7009 -6862
--4743 9042
-5879 7021
-214 -5773
-9604 3509
-6051 -9011
--6328 871
-59 -7980
-937 -6872
--6927 -1241
-4959 -6771
--279 -7859
--1304 -7295
--5757 -2306
-3115 9595
-8819 -8828
-9620 6214
-8986 -8560
--1216 222
--5347 -3640
--2553 4727
-3324 4614
-9611 -8369
-9110 -3158
-1238 1656
--9749 2119
--2354 -8145
-3225 -7586
--3919 7398
-3094 -1889
--1113 6754
--2595 -8568
--2154 -9902
--66 9678
--1281 -6398
-5503 3302
--9934 -787
--3637 -6608
-1622 -7168
--9149 -6206
-6164 8494
--5526 7996
-4809 -1240
-9456 1956
-6753 2499
--6280 2876
--3127 -3155
-7359 -4282
--6386 2107
-7737 2004
--5738 -4919
-5049 5049
--6792 -8522
--492 8663
--606 5220
-2591 -7411
-7440 -5967
--6262 7988
-1234 1088
-5521 -8987
-9506 5993
--3280 1503
--1007 -2332
--6032 320
-5786 2349
--9204 3318
--8846 5208
--7270 -5626
--4174 -7882
-3390 -174
--2396 -5349
--7308 1726
-8617 443
--2355 -8359
--4017 3363
-9938 6345
--3379 -7249
-2141 -3557
--6366 5411
-9227 -5925
--7540 -2484
--4169 9029
-1748 -5309
-8957 2170
--4371 -714
-7607 -4498
-3163 3076
--708 -3888
-5319 1479
-6739 -7977
--4912 778
--5426 3026
-473 6416
--1931 -5941
--5836 -7657
-388 -6780
-6936 1772
-5340 2916
-2621 9396
-8247 -8772
--1189 449
-5361 -3663
-2729 9911
-748 5230
-6436 5075
-8093 2830
--1004 -7265
--1670 1130
--7435 -4244
-2664 8139
--1471 -9148
-4931 3493
-5614 7773
--9359 -5148
-3658 8388
-1979 1186
-7124 8908
--2625 9681
--8844 8743
--7422 -5290
-9392 -8935
-9188 5409
--2613 -3459
-8179 -4335
--9443 8835
-3190 5925
-7930 -4698
--2882 -3236
--4275 5126
-8192 2495
-8954 -9288
-6928 4285
--5332 -3028
--2638 -3965
--6586 -9686
-7369 -8988
-8193 -5370
-385 3735
--7713 3272
--727 5690
-9179 -7394
--4310 4224
-46 5032
--8768 9975
--1503 6717
--2788 -416
-848 -8937
-3178 -3195
--7858 -2918
-8892 -433
-9851 6946
-485 -3998
-9604 -9277
-3264 -5522
--2271 7759
--3607 2840
-2603 -7523
--4475 -7170
--4989 8635
--824 -707
--3201 -1907
-9666 -3841
--3953 -5623
--8731 -5155
-420 -9707
-8737 8769
-9432 2152
-2799 -6185
-3489 8559
-4479 -7335
-7601 6503
-3590 8697
--6866 8161
-2675 -7214
--5757 -911
--8697 8761
--791 -8755
--4698 8361
--5837 4342
-6411 8423
--5102 3956
-9393 -5790
-1776 -8696
-6229 -4564
--699 -2656
--6655 3144
--540 1286
--8793 -3611
--6515 8528
-9351 -4702
-9506 2992
-5095 -2134
-3028 8249
-1608 3396
-3024 7943
-454 -2563
--1491 5514
-1567 -5383
-5592 -1181
-4353 -7346
-4540 7403
--56 6268
--8496 8467
-4348 4200
--7427 -3733
--4369 3353
-5748 31
-8512 8807
--7405 -9691
--576 6438
--4432 673
--1384 2014
-9275 -7016
-1501 -2650
-6115 7329
--2449 184
--5108 -4227
-1615 -4483
-6297 1161
-4133 5788
-9247 9173
--2744 -1282
--3052 -7416
-5432 2714
--6392 4285
--9633 8539
--4551 -8515
-8366 -3622
--3491 -9601
--6468 -7099
-9244 2645
--4808 6974
-5675 -8426
-8893 2421
--5311 2321
-2106 1531
--5901 6277
-3636 2380
--2735 6439
--6237 9249
-197 5579
--7374 -2870
--9256 -5659
--8614 -9637
--6871 -8977
--187 7878
--8868 2959
--9292 -3459
-3726 428
-6653 -694
-614 9618
-2291 2758
--2811 -8041
--1458 -6665
-6184 -7580
--9364 8297
--6149 -3681
-9498 7658
--7990 -6214
--6435 -3612
--5702 -1118
-9223 -2334
--379 -2273
--1094 -9889
--3158 -6917
-1698 6220
--8408 -6604
--8909 -9979
--3229 -6058
-9985 -2802
-7984 -9012
--2532 -6579
-743 5345
--9043 -7032
-9615 -3104
--1788 4900
--1909 -2740
-5789 -6244
--1253 7118
-7347 -1866
-3371 3250
--7910 -4646
--8562 -2934
--7917 9410
--5836 -5574
-1766 5877
-1184 7027
--192 -4328
--1209 3096
-6574 2679
-1250 6479
--7684 869
-2681 8281
--8072 7650
--4372 -9176
-7453 -8899
--3292 9392
--6496 2784
-2561 -5223
--617 8058
-4649 -900
-4613 -6025
--6973 5664
-7501 -550
-206 8890
--7451 -5163
--3972 3765
--9214 -6432
-1848 -2517
-7408 -8406
-3456 -7860
--2190 -4159
-9265 -9638
--4015 -7988
-5361 -826
-296 -5732
-8145 -6040
--8487 -3384
-8241 8961
--5548 -5583
--2733 -1069
--7248 -2284
-7555 7737
-2724 -6178
-4120 3028
-6055 -1358
--228 2063
-3275 9345
-9702 8684
-7377 -17
-7720 7331
-2833 -3510
--494 -2508
--6510 4528
-5142 8012
-5095 -6059
-9537 3627
--8267 1073
--7910 9608
--6565 2066
-8073 5381
--2597 -9366
-9305 -2243
--5083 -211
-6371 3224
-5143 8236
-4469 5576
-2421 4632
-3311 6733
-3446 9271
-5821 9478
--5515 653
--3344 1787
--4875 -7280
-6719 -3335
-3054 -1478
-9942 -8546
-5931 5419
--5883 -1884
-7765 9638
--9993 -3601
--1021 1646
-3083 9162
-7294 4270
-9924 -6304
--3478 8159
-8807 7255
-4565 1360
-2676 -6745
--1999 5709
--9250 330
-896 6439
-9340 5659
-5176 6946
--890 0
--9270 5418
-8225 -6018
--9715 9895
--2701 -4089
--5953 -1376
--7227 1430
--7385 -8315
-3468 8895
--1168 2057
-8797 -9863
-568 -6548
-8003 -6791
-1910 2662
-6025 -7933
-4718 9580
--3584 -9516
-6246 -1912
--5785 7367
-1000
--9323 -1789
-4669 -2183
-3613 9724
-9736 2579
--8568 2223
--8003 -1814
-5790 -3000
--104 -4851
-6707 8780
-7311 6907
--1523 -7849
-5916 2388
-5701 -9023
--2950 3402
--145 5043
--1828 -1551
--6262 3420
--7428 -3091
--833 -5580
-5611 -8236
--2573 9973
-2375 -7811
--1394 -8472
--8527 712
--6424 3294
-4628 4978
-7446 8884
--1457 2705
-4228 2918
--1577 3010
--8913 1253
-8377 4818
-9090 1940
-3300 6704
-9392 3223
-4058 5852
--4155 -6642
-3251 -5246
--7037 -1336
-2761 -5547
-9189 4847
-2422 1819
-897 7395
-5047 -6873
-2979 5436
-6065 9589
--4764 -3519
--1960 -5967
-7820 5251
--9630 -6356
-8234 5477
-5065 -3280
-7498 -4217
-7740 5664
-9108 -5672
--3134 4678
--1183 -8582
--7556 91
--2098 -7343
-4068 562
-4186 1589
--590 1051
--3646 1417
--1992 6996
-783 3309
-8 -6290
-2549 -2156
-5355 4248
--4235 -6813
-3884 -8892
--1974 -5910
--9640 -7848
-6724 6728
--8794 5207
-2601 6939
--9139 -932
--6893 -6133
-8922 -3336
--3944 4800
-6934 4900
-5441 7873
--1911 -8043
--3936 1675
-5778 4197
--1306 -4379
-4011 -2782
-8169 3741
-6767 -6937
-3444 -7030
--3009 8060
--2346 -233
-4840 -2410
--4088 -9107
--4014 -3140
-2484 3525
--1231 -8732
--3366 -3986
--6908 8918
--8448 -4715
--4283 -6041
-5040 8119
-2797 -9889
--4102 9461
-4929 -8255
--8190 -3764
--1702 1637
--8497 375
-1608 -2337
-5395 -614
-952 8
--5989 3675
--1105 -6782
--7861 7518
-2636 -5244
-5181 4037
--3752 -5553
--7534 -7390
-3024 -7114
-523 2252
-5345 -4571
--3937 -5321
-5019 -6777
--125 -4031
--8433 3071
--6904 -3196
--2092 -3939
-9537 -4440
-5021 -6804
--6312 -4613
--2347 4307
--1762 2928
--9085 1711
-3588 -9434
-5819 4275
--9282 -2839
-3947 5996
--3550 -2405
-7566 1935
-1849 9789
-7773 8057
--3405 4533
-1913 940
-4697 -8976
-215 9407
-4377 4857
--1535 4532
--4731 -5574
-6872 -6617
-1527 -6541
--9840 3528
--5029 64
--3155 -2495
-2483 2648
--8084 4273
-7282 3509
-4021 5068
-9146 -6591
--8369 1805
--5054 364
-809 6659
-1969 -5955
--1423 1363
--9407 1567
--2356 -8213
--4990 -8872
--3872 5612
--4202 454
-5665 1298
-4085 3535
-9492 -6304
-706 -2861
-6126 6395
-5823 -354
--862 5524
-5903 3686
-2537 -4712
--7249 6605
-570 2386
-7623 1818
--9244 9741
-1450 -2353
-421 -5010
--4201 9532
--6389 -621
--6022 3505
-9128 -2509
--3129 3983
--5967 -8145
--1998 -3244
-9448 -5667
-5275 7326
-1137 3783
--8936 4064
--8916 -5991
--3152 -4750
-1152 98
--7098 9661
-5248 -5627
-7578 5201
-3308 -1032
-3229 -3356
--127 460
--9165 -4815
--7352 6651
-8678 6639
--5183 9078
-5751 -9613
--8683 3812
-4161 -5437
-1731 6727
--3929 -6778
-3399 -2788
--6051 -2525
-8043 -172
-5296 813
--5288 -5651
--7248 9123
--1743 8361
-9871 -6369
-6667 -9737
-7013 1058
--2994 -5999
-2877 -6547
-2734 -4392
-16 -4843
--2639 5886
-3192 -2146
-2381 3480
--1608 3369
-6784 1717
--6815 1818
--7366 9073
-567 9201
-3493 -1109
-6435 -6037
--206 -3263
-4113 2353
-6985 -4929
-5238 -1662
--7437 5425
-4748 -4276
-3345 -9700
-6198 2634
-3209 674
-1635 -3848
-4106 -6764
-5821 -6019
--4179 -4298
-952 -5133
--7998 2582
-1376 4038
--5350 -7597
-1782 5759
-4945 -2914
-3195 7500
-9251 3825
--2454 -4712
-1605 -9832
--591 -5543
--2767 7265
--5539 1482
--2312 2502
--7749 7187
-2378 4272
--5769 6028
--1838 -7402
-6446 6071
--1531 9448
--1675 3639
--2890 9155
-7953 -8196
-8187 9043
-568 2649
-1328 9247
--8758 3537
--8030 4611
-1171 2579
--242 -2366
-8758 -1620
-1670 2794
-6623 -9281
--8857 9579
--9171 4672
-4068 8411
--2242 -3934
--7357 -6803
--6317 5123
-2248 5973
-9130 -7628
--7141 -1383
--8549 480
-8089 3813
--5539 -4375
--448 -7446
-4953 -9697
--1943 3344
-690 8751
--3125 3219
-7150 6363
--6246 -8100
--8565 9292
-5285 -5739
--1306 -2989
--4174 -8543
--3625 1451
-5428 5702
--311 6210
--3733 1094
-3138 -8906
-884 5306
--1904 -502
-4747 7832
-2339 3602
--9322 -1051
-8981 -9863
--2245 3026
--7324 8304
--4720 -2290
--3060 -4574
-2916 4134
-8976 5156
--1192 5936
--1903 -5719
--9440 5555
--4862 2438
--2035 -7291
--9557 -5157
--5447 -1628
--8099 -4180
--1020 -2491
-9622 -5101
-4169 5173
-8179 8996
--2492 -8875
-7692 7877
--9471 -5093
--6306 7525
--7887 2389
-3692 6533
--6740 -1077
-8998 -7477
--1807 -6853
--167 7989
--8710 9319
--6144 6882
-3834 3858
-8896 -3706
-4306 5374
-5148 1672
-9076 3314
-4612 5789
-2342 -8848
--9168 1824
--694 -6992
-492 -9289
-6379 -2377
--6900 4458
-387 7639
--3692 -3768
-5326 -5056
--1553 -8553
-3763 -8410
--172 -7467
-1033 9946
-1689 -6612
-9919 -4666
--2027 3034
--4944 6051
-5575 -4214
--9422 -9475
-4102 -5122
--9537 -7741
-855 7883
-8628 2323
--1970 6061
-5104 170
-4466 5219
-1709 -69
--8337 -6875
-1109 -8009
--4829 -8
-4614 1408
-5499 460
--7767 2739
-5651 1259
--2520 -5519
-6350 3566
-217 1008
--9425 -9047
-5559 9916
--622 3839
--338 5315
--7384 -8189
--4473 2161
--8461 4937
--5457 9196
--7968 9412
--7030 3840
--2657 4415
-5354 -9733
-3316 -4117
--9952 -4293
--155 -728
-9943 -4289
--876 -4919
--3721 9430
--1020 5673
-3351 -5719
--8982 -5067
--2319 9931
--2912 -2923
-3982 2404
--1986 -9996
--2230 4966
--7495 9253
-9417 -8985
-3051 4018
-3498 -3125
-6807 483
-5763 435
--7904 2696
--1877 2040
-319 5765
--3797 2315
--7344 5025
-7488 -660
--1591 6482
-640 6880
-7157 1324
-3022 -9563
-9236 5641
--7342 -2976
--155 2587
--6444 600
-8892 3984
-9348 7130
-7187 1765
--1641 1327
-2301 -3272
--412 9445
-9812 -4640
-4999 5660
-5071 8698
-8036 -8079
-1974 7032
--7826 -58
-2483 -2493
--8586 -7808
-1476 114
-4221 -6340
--6814 -2561
-7198 6063
-7202 3017
--1141 8914
-5673 -7015
--6104 4276
--6911 5093
--8332 -4318
-7756 2611
-4736 -7240
--4658 -521
--1407 -7880
-5516 -703
-9217 4904
--4144 -627
--9456 6768
-5531 4616
-9540 9996
-4333 -4578
--5325 -5134
--9160 7244
-9804 520
-6184 8721
-3038 4219
--53 4373
-3282 4323
--6342 -5238
-2122 8601
-8482 -9905
--8875 6540
-9456 8628
-3433 3254
-7285 8133
--8640 6389
--4841 -8871
-5605 5497
-943 1194
-6301 -6985
-7392 -9373
--2818 79
-5292 -4569
--9231 9482
-484 6141
--3716 -1313
-3973 -4075
-963 3874
--3259 -9307
-8789 6421
-8995 9867
--9918 1386
-4777 -3593
-6309 6842
-9979 8656
-3717 -2981
--624 -4645
--6604 -6006
-9722 6998
-5694 5232
--9060 -9947
-1212 -8559
--4609 5548
-5498 -6884
-5917 -4938
--2399 -6158
-3643 1363
--9286 -3901
--933 -7696
--8124 5925
-2682 -1867
-4838 -9467
-9839 -5504
--2807 4635
-1390 9862
-976 8140
--2490 7066
--4157 3966
--9552 -7005
-2514 3911
--8218 4294
-4303 -7406
-527 -910
--9425 9192
--7160 7887
--609 6527
-3014 1072
-3176 -9683
-80 4032
-3669 -648
-4266 -385
-9012 326
--320 -7312
--1219 -8763
-4445 -1032
-2384 6164
--8929 -6386
--4269 -5831
-4069 6590
-4809 -6866
-7923 -4999
-103 -520
-7347 -8792
-5943 -7068
--3858 -1985
-541 5774
--1913 3426
--7388 7593
--1786 -8148
-4789 -1854
--6404 -7733
--7172 5229
-5182 3164
-3998 3996
-4987 -4705
--4054 -9574
-7264 333
-511 30
-9168 -6983
-6705 -1444
--1230 -3878
--3509 4033
-2446 6099
-5132 4977
--4718 715
--4924 -9531
-4556 8172
--8242 -7961
-541 4800
--9222 -7866
-52 -9190
-2194 -8178
-8329 -2476
-5238 -8943
-8105 -1729
-9426 305
-2676 -4143
-8596 5852
--4766 -5314
-3858 -1467
-648 4301
-8629 1691
-919 -2164
-2346 -8715
--1935 -1474
-9738 855
--8010 1988
--9698 -3715
-4777 -2167
-1471 -3675
--2732 8759
--6460 1304
-4037 2707
--9449 2850
-9978 -7163
-3653 3581
-2550 -6132
--5715 -7633
--3716 2233
--3394 -1532
--900 -4455
--8393 -2158
-122 1929
--3087 -1044
-7686 -4883
--8936 477
-1387 -6455
-4713 7998
--8388 6383
--7175 -6550
--6151 6519
--8391 1636
--5684 -4648
--1131 -1525
--3349 5158
-8830 -5689
-2546 1157
-2374 -9623
-6369 7576
-6650 4944
-6028 8109
-6153 6089
--3648 -1199
-8028 3431
-4232 -1830
-6234 -8481
-3919 -963
-472 -2172
-756 -1065
-9732 -1262
--524 9088
-9773 -9369
-6077 -20
-8321 1748
-4931 4204
--5090 3920
--1082 -4065
--4853 3924
--2719 -4300
-8946 4373
--1167 -4531
-9784 -5699
-4362 4941
--5133 8835
--5254 2252
--9130 -7083
--4831 -6820
-4603 -9958
--1154 -8823
-4091 2612
-7681 -3416
-4604 2615
-3552 -9742
-2707 4651
--9755 -3996
-6023 5738
-5270 -8971
--3311 -8110
--9963 2390
--5093 -8752
-7477 -1238
-6685 -5165
-3402 -6803
-519 648
--3368 1347
-7670 4705
--2232 4891
--4132 8597
--6565 -6369
--1075 7087
--1857 6888
-1126 1028
--707 -3893
-1421 -6767
--8667 -1417
--9828 5838
--9607 -1078
--960 -57
--4362 -5472
-7617 -288
--4245 -1539
-5864 -9255
--9577 8286
--9661 9878
--3234 -4889
-1187 -5496
--2073 1767
-799 8344
-150 -3597
-5291 -3902
-7608 -1779
-7125 4465
-4549 -1887
-9902 -3498
--167 584
--4227 -1759
-1158 5760
-2390 -4093
--1735 -9214
--560 -2821
--4605 874
--9376 5485
-9300 -8658
-9219 338
-3109 -2725
-6858 -7695
--4541 -9442
--887 3772
-7655 370
-1961 6491
-4550 -5150
-7448 4808
--1607 6087
-6771 2866
--5067 1241
-6120 3832
--6406 2525
--5895 2702
-4884 3160
--5149 -282
-2123 -7881
--5241 -6200
--1097 -9940
-3428 1027
-4467 -2877
-8063 3010
--193 5712
--9114 -4862
-8882 -1936
-4350 -6977
--7268 6967
--2823 8165
-4528 -5435
-3510 6848
-6045 1045
--3414 2255
--2312 -4677
-6181 -742
-2351 -8661
-969 7343
-5861 671
-4792 -330
--9126 683
-8512 -9412
--3344 4992
--8919 1096
-1646 3282
-7013 -4085
--1796 4573
-2343 5625
--6781 -3414
--6671 -2135
--1930 -6544
-8463 3776
-9806 1121
-4908 7947
-5972 -8133
--3006 -7496
--677 -949
-8696 -4307
--7072 6623
-6206 7594
-2022 -6149
-6275 -5250
--4878 -3312
--6644 -9182
-1114 -3893
--5890 -3801
-5466 -3078
-6411 3529
-4723 -331
-9638 2210
--7868 -1348
--3701 -8687
-6088 -4362
--2814 1054
-4378 6511
--5464 109
-7074 -551
--1154 -9931
--6765 9193
--2556 545
-7243 -5511
--9311 -1144
--4257 -1475
--7650 1303
-6999 -5570
-2756 4515
-1483 9540
-8430 1398
-9326 -4650
--7323 2781
-9108 9516
-3697 -1224
-6709 5588
-9518 6669
--1267 9404
--414 -6454
--9096 6522
--1668 7897
--480 -9058
-9904 -7475
--2194 4836
--4093 -8682
-9394 -9947
--1864 -9871
--9372 -280
-5355 9572
-6637 438
--3330 -6124
--989 5670
--211 4853
--4034 3425
-6341 -1468
--2945 -9832
--571 -9422
-249 -9103
-4134 9709
--4714 -1944
-9063 -5884
-3311 -1207
-2800 2870
-4463 -5863
-3671 157
-9413 -6389
-637 -5789
-2308 9373
--6724 447
-6530 -1514
--3878 -8816
--6174 4687
--3487 6095
--2187 -7294
--4022 -5861
--4334 -9246
-7910 8012
--4021 -5043
-9827 -3116
-2168 -9882
--6597 -3698
--7623 4087
-7337 -4441
-8745 6018
-3917 5361
-2306 6967
-912 5073
--4272 -7940
--285 7143
--4698 -9301
--5804 -4765
--8333 -118
--2508 4205
--9354 -6821
-9172 4089
-7824 6288
--9024 -3654
-535 -6733
--6725 -7662
-3458 -9097
--3624 -8351
--8588 -23
-7317 5211
--6599 8415
--7556 4411
-5463 -7504
-8737 -8494
-3853 3498
--7108 6690
-4815 7530
-9413 20
--6161 8003
-33 -9867
--2559 -4810
--9161 7097
-5689 6874
-5469 4374
-5702 8995
-1545 1697
--1909 -1200
-9091 -1207
-4668 -354
-343 -7510
-8778 8990
-772 -7053
-6365 -4320
-6430 6462
--1478 -3357
--6310 6791
--1240 9520
-4737 -9210
--8402 -987
--8434 -6573
--849 -9695
--7492 7560
-4562 -7185
--875 -9331
-9339 -5615
--5073 711
-8081 -8675
--2636 4683
-3 -8607
-2428 3876
--8053 4500
-3966 6888
-5092 5274
-7335 -5402
--6574 9350
--7796 6963
-764 2912
-1006 3100
-1284 -4241
-6731 -7337
--4425 -6982
--1929 -3299
--1817 8316
--4170 -1181
-3551 7804
--4147 1002
--2515 -3246
--9500 -3831
--3755 1029
--7059 -6292
--9132 2631
--6923 4402
--7337 -4148
--9384 5437
--8023 5088
-7518 9231
--3810 -1586
--399 3676
-3294 -5107
--9006 738
-4764 7019
--3718 -8570
--1826 -3987
--7698 -7407
--7980 -2024
--1721 2895
--8616 738
--4883 7161
-2279 1319
-2745 -8248
--448 6356
-6636 922
-7408 6716
--3848 -5509
--6436 -213
--3323 9516
-9788 2031
--2249 4386
--208 2976
-7322 -4437
-4963 7963
--6433 2853
--9104 -3713
--2795 -3463
--4518 6793
--4484 4201
--1869 973
--5666 1932
-2186 -2113
-9516 3632
-8773 5172
--4215 6538
-9784 9986
--2912 1340
--9208 -7342
-4293 -5566
--6592 3619
-6722 2684
--5981 -7784
--3560 7857
-8337 189
--1221 -6206
--7531 869
-5697 9106
-7818 -3293
--4433 3015
-3288 -7909
-2592 2715
--3248 3848
-3472 6186
-9308 -9424
-8605 -1227
--3550 -7943
--9059 6893
--3239 3384
-7922 6156
--9538 -6623
-6275 582
-1908 6972
--8912 -3411
-1000
--6091 -2869
-4051 -4808
--1569 -7917
-363 -7176
--1064 -4578
-8018 2803
--8591 -2942
--3282 2973
-7091 4091
-9227 -4719
-286 8559
--93 -1564
--4158 4284
--9773 -2857
--6057 5203
--2412 -473
--2582 -1538
-5698 6201
--6823 8758
--4704 -7987
-217 4254
-1196 -9705
-3363 -7662
--5223 6972
-2040 1142
-3499 -30
--4123 9291
-4508 9652
-3806 576
--8883 -937
-3907 2014
--3048 5891
-9887 7139
-8974 -1801
-2391 -4655
-6715 828
-3062 -4221
-7032 6353
--3664 4681
--7699 -9271
-3716 -8558
--1648 -8229
-2905 9797
-295 -2735
-8542 6219
-3603 8887
--9779 9015
-5817 -6771
-6072 7522
--4290 7162
-2621 1805
-7668 -3193
--8305 4370
--4080 -3142
--450 8405
-5761 6214
--6672 1178
--3306 -40
-3332 2818
-6705 1245
--6099 5299
--9366 -1412
--4082 6903
--2065 6114
-7945 -2487
-2601 9614
-1693 -9645
--7619 7847
-3527 -9016
--440 -4799
--8513 3759
--6263 -1228
--7804 9066
-6817 603
-3834 3418
--6053 -3309
-7343 2498
--7688 7834
-5504 2241
-1018 6885
-7925 9449
--3465 -2037
-8838 1942
-4652 -9612
--375 -4246
--426 -3102
-8156 -1001
-194 -5554
--3022 7663
-2219 7329
--2421 2344
-182 -9298
--7993 -2921
-665 -9225
--6932 -2945
--8616 318
--6788 729
--9142 2737
-3621 -3276
-1622 5870
--5085 -7144
-4828 -7167
-8591 -293
--8615 -7238
-8471 9789
-7913 8005
--5096 -6232
-9853 -3446
--8344 3219
-2699 5083
--538 -3563
-3303 7487
-3424 3451
--8676 4402
--8218 -2381
--6378 2101
--1253 -7246
--5128 -8445
-5175 -9568
--3488 -353
-7395 9814
--3430 1347
-5084 -1635
-3991 5353
--5694 5234
-1650 4344
-7112 -8021
--3154 4831
-3315 4652
--2413 6275
-9165 718
-948 7908
--5461 3781
-8276 -1947
--9694 -7784
--1367 -2656
--1703 9479
-2641 -8598
--4780 -3850
--6189 9348
-8227 6188
--4542 -9030
--3083 -1957
-5318 2162
--8078 5761
--5337 2170
-4885 326
--8412 4015
--2361 -4681
--2197 -132
--7030 -2792
-7545 4132
-6663 -2828
--5487 -5356
-2181 461
-4431 9501
--7258 -8185
-1568 3508
--2970 -4462
-4584 -7778
-7606 6609
-269 -3038
--5658 3717
-649 -166
-3258 -1556
--5594 -5368
--2450 -8877
--1868 -2093
--2461 4682
--8400 1946
--9133 -10000
-2141 4685
-7194 8193
--8806 -9339
--4722 -2665
--2994 -5112
-2129 -4620
-3089 -7583
-9264 8495
--5199 2212
--6006 8686
--4624 -9823
-9303 197
-512 567
--6901 6861
-9973 1428
--2680 -8529
-4642 5922
--572 7628
-4171 983
-219 -2395
-6717 3226
-9096 -6527
--6543 7421
-2847 -9225
-4890 8664
-39 -9355
--8823 2505
--8354 -27
--339 2613
-5367 4521
-8533 6620
--60 6220
-1613 7477
-4083 3159
--2740 5256
-5153 -7813
-5725 6242
--9566 3449
--7660 6505
-3724 -7432
--9768 6481
-7784 6134
-3151 -4966
-4683 2436
--6520 6439
--4249 -7872
--4081 -2700
-4081 8999
-4145 -3831
-7616 -9151
--8506 9920
-3389 -6924
-1300 -6467
--9041 -6617
--577 -4048
--1061 -5576
--1962 -2758
-3315 -5311
-5265 -3068
-2872 2522
--1909 4561
-4751 -8628
-6716 -4233
--6021 3566
--3762 -8075
-9301 7793
-9701 -1340
--2712 1642
-6268 -6234
--3676 -4816
-5385 -7417
--7746 -4705
-6876 -952
--9842 -2870
-3177 7939
-197 -8475
-425 7277
-6807 -9994
-6754 1035
--8821 -9410
-3163 -710
--3005 -5247
-1764 444
--4978 -9234
--6993 -5415
--389 -9849
-5297 8925
--133 1152
-3515 6699
-6313 -5551
--8771 -4932
-5091 -3152
--9926 8760
-408 -7227
--3308 687
-7947 -460
-9188 8833
--5746 6841
--5694 -9514
-6201 -5686
--3233 -8998
--9083 5803
-9106 -3090
--3562 -5498
-8961 -4054
-4587 -4644
--1204 -2147
--8482 -2235
--3067 -4779
--6355 -3638
--1354 2999
--2512 8194
--7962 -7065
-2844 -629
--6787 -2350
-7491 -3216
-686 9646
--4322 -1089
--7347 -5928
--8071 -1908
-9622 -4021
-8110 -4439
-2293 7585
-8341 4172
-3865 1114
--9636 -7138
--1076 -5155
--6622 -8589
-1835 1073
--1282 3749
--2239 9718
-7770 -7908
--6297 -2213
-9173 3111
-8283 2237
--2133 8168
--4531 7351
--7290 -4428
--6263 -796
-2844 -9674
--6726 -692
-6336 877
-6163 3958
--5306 -1479
--5917 -2807
--3279 -8405
-6669 -4620
-1190 6096
-5294 984
-9160 7683
--1760 -7270
-9575 -7359
--3238 -9021
-9127 7204
-8198 -9970
--5135 85
-8031 363
-4652 -9168
--3920 1099
-6912 5281
--6800 -8376
--5229 -4481
-4659 2880
--8463 -8131
-8107 -217
--2050 5758
--3429 7496
-7173 -3255
-7789 3858
-3699 5083
-2805 3690
-8052 -8540
--9291 -765
--7969 9499
--5437 6051
--2589 9515
-7784 5793
-5334 -1041
-2394 -9711
--6285 -7231
--6277 -2413
--8395 -1571
-6924 7517
--8633 -7841
--5502 6027
-8116 5412
-8692 -6238
-8882 3305
-3870 3507
--6728 6175
-8725 -5910
--3298 7143
--6417 2656
-7287 -3397
--7 4678
-2740 8199
--8992 -4719
--2654 476
--2828 -3190
-1168 -1387
-6296 7899
-6432 -7269
-8939 -1386
--7949 -478
--6938 6955
--719 -7203
--7773 -5130
-3216 2061
--6732 -7454
--5722 -3382
--5100 -5247
-6371 -4749
-9910 -7580
--622 -9006
--7180 -9245
-5367 -4076
-5940 -7535
--3256 -5845
-2611 -8830
-1726 -5525
-5780 9196
--4232 -7108
--5284 1965
-5660 -5460
-4341 4276
-2216 9797
--4570 -4215
--6432 7393
--3508 -869
--2773 8014
-830 8445
-3260 7861
-5745 -3712
--2416 9067
--5029 -4905
-6139 7338
-995 8095
-7294 -691
--2270 1400
-8982 -4946
--2742 3903
-6424 -5988
-2958 9262
--1434 -2439
--4349 5493
--9965 4040
-6466 7675
--6549 9564
-4373 8250
-7331 5358
--4610 7520
--4037 6880
-1595 -8427
--6579 -8960
--9708 5878
-3417 -7704
-2705 7109
--4134 559
-6176 -6733
--4553 -216
-6787 -261
-8120 -7918
--3487 7179
--6985 3919
--8922 1554
--7203 -7553
--8624 3209
--3946 -6415
-9605 -1604
--3725 -364
--1275 -3290
--8585 495
--8549 -5937
-1701 -7977
--8553 -3314
-8921 -9579
--7563 -6282
-1468 2092
--9950 1549
--2398 -1226
-2445 9418
-3243 6680
--2813 -4793
-1407 1550
-709 1941
-2862 9069
-9522 -9666
--7554 1347
-3188 -6292
-7039 8424
-333 -5619
--7292 1749
--4787 2500
-1362 -2550
-5719 -8743
--8924 -7724
-6523 -6501
-8320 -6539
--1506 9990
--8606 -9220
--2578 -3691
--1185 -5864
-1248 -490
--9890 -3383
-47 -7699
-312 -2411
-7684 -1158
-2671 5089
-7787 -2191
-9700 4959
-7805 1373
--5711 -2274
--7327 -8553
--5758 -2357
-1250 -4582
--706 8739
--536 9967
-6429 -876
--5064 -872
-785 7462
--3243 2074
--1182 -823
-8367 -5662
-9684 5383
-2945 8926
-4127 4
--9223 -8071
-8591 -6969
-7239 -5949
-46 9126
--1617 6194
--2385 -1205
--2086 -4687
-2669 -2477
--8902 -5795
--9190 5097
-7767 -9971
-3175 -8851
--9930 -2118
-1167 -8569
-4845 7316
-7045 1524
--1603 3293
--5832 -7184
--8714 -8273
--1092 -374
-466 6468
--374 8150
--9404 -3246
--4058 -872
-2139 -5623
--6313 -8785
--5296 -5260
--1314 -7302
-8120 9737
--9052 1051
--3870 1390
-9483 6787
-5033 -4763
-2166 -221
-1427 -572
--5902 4710
--403 -9034
--2792 7004
-9725 8387
-4716 -2180
-3345 -6694
-3898 561
--5903 8542
-9974 1336
-5835 -7942
--2817 1068
-3148 9516
--9096 8191
--1424 3223
-4234 -9421
-9272 -9457
--2654 -9840
--8421 1202
-2938 489
--9627 -4419
--9086 -9180
-169 1332
-7119 9405
-6088 -7040
--9250 4654
-3728 6937
-7561 6304
-5419 3555
--6865 -2907
--8449 1024
-8469 -241
-9253 -869
--8530 -1272
-4977 -8771
-395 2244
--6947 2203
-2483 9726
--4996 425
-2687 -8699
-616 -6332
--9877 -6155
-9021 9162
-1394 6255
--9185 22
--9975 -739
--2101 -3649
-7917 5318
-8985 5676
--4188 -5051
-3884 -649
--3402 -7555
--344 -6879
--4573 2273
--6285 9966
-2965 -3614
-6793 -9557
-3781 -7410
-7207 -4142
--9447 1368
-4709 -6758
-7850 4640
--797 4306
--8827 9091
--7964 4161
--3243 8163
--1085 9401
--1106 3668
--3310 3529
-6786 -9836
-1898 -5050
--2810 -4165
-9263 -2440
--8415 -9734
-5000 7156
-5418 -9808
--9898 4589
--6084 -4377
--6578 6199
--5408 -3012
--3804 -534
--3850 1088
-4070 5649
-8091 9021
--8677 2882
-1759 -2557
--2695 -6684
--8040 703
--5039 8159
--3809 9425
--7942 7917
-1144 9839
-1922 9643
-9480 4361
-8532 3009
-5636 -4857
--6149 -3599
--5530 -6729
--6038 -4145
-8940 -4907
-480 2188
-5969 -3227
-3486 4426
-4365 1139
--5605 5020
-7733 -882
--9505 6290
-1157 -7910
-6204 -6559
--5480 4844
-912 -2437
-2202 6730
--8392 -1124
--8299 -5680
--8658 -7257
--6428 -1949
--8678 7442
-9859 -8927
--9191 -2290
-7132 -6037
-5232 403
-1123 7260
-5984 9255
-4638 3348
-6644 -7992
-9093 -8072
-4727 3373
-2799 2735
--7786 9269
--6210 -4228
--9667 -6632
--460 8431
-1404 -1535
--815 6091
-2150 4580
--4525 563
--8597 109
-3353 1718
-7041 7498
--8758 215
-4337 -2516
--3811 -7090
-9523 -785
-2945 -6556
--3635 -8705
-1614 9635
--1027 4641
--5904 7181
-9673 6550
--5109 -124
-3681 -1041
--3526 -8706
--4001 8760
-9402 -6673
-4709 -1829
--1674 -3648
-1877 4709
--2526 8243
--8148 -6341
-6826 -7814
-3954 -2803
-5165 8653
--9626 196
-7553 7359
-131 5315
--6427 -3946
--2096 -8425
-5507 -1428
--7945 970
-3459 7456
--9167 971
--5787 9220
--8599 2730
-1866 -8808
--9952 6270
-8421 -4842
-6562 -5394
--5234 7841
-8168 2163
-1 -5912
--7227 1184
--3323 -5792
-3687 -1902
--8398 9560
--3962 5425
-7416 -7757
-4013 1670
--45 7518
-5274 3464
-493 2846
--9566 -9689
-2481 7803
-2305 9439
-4778 8781
--8315 4395
--1810 3991
--3540 -7992
-9803 6258
--934 -9538
--6192 3618
--6650 3850
-112 -3568
-6839 -8128
-7571 1732
--1310 -5886
--1150 8027
-3425 2637
-6336 -7611
--639 -6181
-5528 -7293
-5641 4504
-7896 4088
-3739 5085
-7938 8160
-6203 3996
--5098 -373
--2930 -2298
-3476 62
-974 5101
-9926 5862
-1731 -9818
--7702 7933
--6820 4397
-2421 4364
-5220 -477
--5640 9183
-7291 3954
-5233 -533
--966 -9697
-4265 2224
-8676 4184
--6287 3118
-8082 791
-1583 5212
-1322 3113
-3171 -3618
--9994 -7503
--1742 -5447
-847 -6389
-7356 7647
--9296 1690
-2301 -6337
-600 -5980
-6356 -6462
--7209 -6446
--6937 2862
--9685 8632
--1430 -576
--6467 5759
-9526 4784
-2682 -192
-9254 2805
-3500 7356
--9048 -1999
--7073 -4201
-726 -2711
-1372 -7706
--7374 -5774
--3065 8361
-7578 1627
-7864 8518
-3558 8876
-7001 9333
-5862 -7248
-315 -429
--1582 4368
-3728 2004
-4902 6366
--6695 -3965
--8125 5438
--7824 4901
-2827 1328
--5338 8100
-9176 1959
-5179 -9687
-2441 1742
-8808 -2793
-3569 -7549
--2351 -824
-2538 789
-586 -159
--9893 5381
--3706 -4022
-9194 -7585
--1226 221
-7086 48
-4031 2831
-9201 -7653
--7775 -953
--4969 690
-6251 1315
-1875 8066
--8768 4099
--142 5710
--2594 8264
--891 8192
-3829 -883
--4649 -2170
--9615 5720
--2566 5339
-9157 -9404
--8055 -5059
-8734 5581
--9431 4139
--6601 -8949
-5841 9327
--2049 711
-2377 8206
-5686 3232
-9803 -7824
--4958 -5709
--810 6490
-8631 3
-6182 -8410
--1093 2909
--8162 3614
--4111 1586
-5092 -4187
--1049 9869
-7121 -6069
--218 -6746
--9194 -54
-1650 8376
--4269 -4818
--9512 4362
--967 4045
--5029 -1962
-7628 -848
--2380 -5219
--7088 1817
--2042 9220
-7036 9919
--1476 -1323
--9553 8671
--7454 -285
--2888 -2170
--5485 -6052
-4236 1975
-1641 9299
-9822 -3896
--1957 3729
--6628 -7336
-5225 -5262
--7056 1443
-3479 -9812
-974 649
--503 -2886
-1172 4804
--7296 5054
--3657 7462
-642 -445
-9521 -5715
--7943 6801
--4639 3886
--9471 4530
-8696 2374
--1550 99
--7568 7866
--9624 9010
-7033 9057
-7855 -4307
--1191 1229
--3662 9485
-501 -4553
-9245 -5089
-5198 -6795
-3564 1195
-3895 8951
--5575 2223
-5722 -2110
--6526 -610
-203 -7181
--8713 4168
-8487 6186
--7829 5449
-2830 7505
--9765 -7423
-5953 3800
-1770 5507
--3482 8950
--5940 9438
-8144 -8559
--188 7339
--9782 6116
--212 -7005
--771 3569
-8180 -4026
-3382 9817
-7808 1592
--4537 8017
-8232 -442
-2627 3416
--7369 -2280
--1196 -5417
-241 8983
--4682 4317
--553 3258
--3773 6720
--4135 7352
-3858 -6884
--6291 2750
-1061 -5227
-6483 524
--8652 -782
--9278 -3198
--5503 6901
--2665 -2879
--8785 -4073
-1983 -9169
-2710 2195
-5545 -9771
-2700 -7970
--3824 5385
-6077 9809
--7422 -4595
-7677 -5419
--8588 8808
-2781 1043
--1857 -9345
--3185 9763
--7197 13
-7073 8535
--4285 9943
--5520 6105
-9311 1586
-7245 1286
--7847 -3858
-7750 -1240
--9135 8676
--9993 7430
--3092 -7552
-1653 -8580
-504 391
--6661 1565
--8990 4733
-5328 7927
--6827 6088
--881 6735
--4499 -938
-7102 6942
-198 3721
-6726 5487
--3398 -6387
--264 -5929
-6770 1892
--8549 -2573
-7305 9188
-755 -4452
-1389 2375
--5686 8978
-3332 -2275
-9788 7335
--3324 711
-1614 -2474
--659 4067
-5775 -7626
-9730 -1150
-6446 -6185
-6328 9948
-6309 35
-3424 6832
-3547 -6858
-2319 9925
--8023 5085
-9745 1370
--8172 9121
-8716 9360
-8249 -4444
--1149 7297
-1000
--3930 -3740
--8351 -1643
--8320 8309
--8409 -7592
--6059 -1078
--7316 268
--4755 -383
-5473 9270
-2208 5424
--1820 9106
-8553 -5371
--959 9607
--6345 1188
--7385 -7041
--7783 -6453
-3975 -3015
-826 -9414
--1962 -6783
-8530 -1704
--9252 -2019
--9950 -2978
-8146 -1016
-3301 1657
-2207 -1479
-5967 6658
--9002 -681
--234 3985
-5872 1247
--6314 9946
--3073 -1376
--1669 7815
--1917 7295
--4946 -6202
-872 -688
-8836 1565
--9336 -2472
-7871 8038
-6297 1274
--4711 -3898
--1883 -7210
--1057 8795
--5409 5978
--6888 8263
-6640 -1633
--6632 -3213
-7479 -5382
-9862 -2302
-9519 1084
-5932 -3125
--9282 164
--3019 -6619
--9413 -7593
--5879 -1485
--3190 -1912
-5182 -1943
-3388 4716
-118 5871
--7545 -21
--2232 4195
-9917 -6450
-6429 -9202
--905 6130
--9851 2868
-7659 8041
-5284 -4591
-3127 4710
--3559 -9236
-428 1922
--1523 2077
-8321 9352
-7484 -996
-4837 2567
--1740 -7040
--7240 -1545
--517 -8702
--3014 2091
-2151 1373
-930 9226
--3285 6469
--5506 -2536
-2415 411
-1221 -3953
--791 -6537
-3581 8104
--1792 -7280
-6854 -6561
--6652 -2269
-4637 -9694
--4743 -4988
--3325 5298
--2048 -4767
--9775 7652
--1359 8369
-8000 -1722
--4095 -9254
-4776 -7001
--292 6679
-2315 7564
--7822 3598
--2972 -4757
--8838 -8910
--5181 -7771
--5440 -5412
-8449 2783
-621 1892
--9432 -6500
-2012 9221
--2299 4272
-4744 -4762
-4016 -141
-7154 5229
--1559 -6332
--6172 -2504
-5959 2825
-9020 -6869
--7473 -3274
--5746 -6179
-7583 -6335
--6814 3274
-8785 9786
-5233 -818
-9588 -4052
-2422 8695
-1889 3091
-119 2790
-3075 8770
--7239 -7747
-4292 4774
--8746 3122
--1654 -9553
-3478 7586
-1695 -2769
--7049 9160
--896 611
--2549 -8636
--2743 -6316
--1901 -7171
--6881 1796
--7685 -8739
-8220 -9108
-337 593
-5891 -1727
--6538 -4143
--7610 -4585
-2066 -6276
--7564 -9097
--3975 5481
--4144 -8979
--4671 2835
--9481 -264
--1909 4014
--2930 -4170
-1848 -1986
-234 2922
--6609 3291
-177 5459
-6646 -283
--1411 -5163
-2230 2040
-4186 -6795
--7424 27
-6219 -301
-3863 2529
-3738 -9054
--6339 4604
--6047 -2883
--150 622
-8189 -8665
--9630 -3152
-7812 -4785
-5527 3315
-2467 -5375
--8120 6303
-4474 -4155
--8029 -3509
--2346 7323
-1276 -8318
--7535 5663
-749 -1711
-385 8494
-2141 3226
--8322 -1068
-6030 -6327
--3613 -2454
--8188 6071
--7545 -3114
-9626 -6900
--7831 -6760
--7000 2250
--3370 844
--799 -6772
--2076 -23
-5709 -9160
-524 -7490
-3802 -2761
--283 -347
-4461 -9263
-3883 5186
--1754 -7162
--4436 3892
--3603 3626
-8435 -4624
--1418 -1531
--6205 -4668
--8445 -2933
--6741 5319
-18 3113
--3665 1911
--1750 9927
--9032 -8622
--6830 7279
-260 -5861
-1801 7305
--6643 409
--7093 -2495
--9898 9323
-2226 5912
--2064 1025
--2158 -2144
--2252 -1629
--2082 8065
-5943 9383
-3608 -9264
--974 2836
--253 -911
-4049 -9529
--4788 -571
-3788 2728
-7744 -6110
-4086 854
--2416 -8395
--901 -7626
--7462 4695
--334 2238
--9293 2007
-7438 -8555
-3567 -3687
--2431 -8534
-1332 -8808
-2554 -9600
-5586 2798
--7646 2181
--7710 2435
--8505 -5041
--8971 9880
--7635 -8307
--6342 3149
--2744 5139
--9797 -634
--9949 5500
-3022 -3715
--7574 9932
--8572 4957
-312 5254
-2163 -4625
-2609 3767
-8680 -7870
--2214 9996
--8790 -7529
-9444 9291
-9374 7949
--2745 566
--7300 3972
--8851 4477
--3397 -7587
-9113 536
--9850 7776
-4847 -6926
--6790 1705
--7927 1882
-9818 4368
--1154 -7076
--4996 3216
-4394 387
-6850 -5865
--780 1581
--1000 -1087
-95 9330
-4953 -7371
-2376 5406
--4276 -6624
--5396 -2150
-7100 6245
-6160 7709
-3277 4842
-496 -7414
-8116 5850
-9923 -9590
-1720 -8885
--4062 4517
--7244 -4588
-1865 5567
-3747 -3306
-290 -9079
-630 3614
--1345 -4611
--4728 9322
--3898 5415
--7388 3188
-7274 2449
--431 -2495
--6148 3991
--645 -1047
--2890 -7204
-3361 2446
--883 -7045
-5346 -4744
-6856 1012
-5695 1535
--5172 9796
-8637 -8786
-771 6338
--4821 -1015
-7201 1716
--837 1044
-4022 7503
-7737 -7096
--3272 -3295
--1535 -1072
--1760 -2237
--3291 -5732
--6433 561
-547 3055
-7726 -235
-1463 2036
--7647 7951
-5961 -7438
-4857 9922
--5179 -5689
-9179 -3850
--9547 -3362
-853 5430
--2627 -856
-3531 -1583
--5828 2644
--8521 -2362
-6362 -1924
--3388 3707
-9769 -7474
-8561 -6339
--4231 9114
-8905 17
-3496 -1491
--7361 9568
-5691 -3726
--6569 4674
--164 4502
--2298 -2807
--7370 -7349
-2583 -7163
--4602 -8403
-747 9752
--4862 -8610
-7001 2502
--9922 -7009
--5250 -227
--4258 -5970
--4856 4966
--366 5240
--3349 732
--315 -863
--197 -3109
-3889 6396
--9355 -1614
--2722 -8464
-566 7884
--3641 950
-6299 -8051
--5770 -8785
-6774 -6350
--7720 9125
-8946 9463
-7892 1877
-1860 -3897
-8998 -7462
-1435 985
-5738 -4755
-3091 -7156
--9074 7552
--4555 3243
--3462 4707
--7172 5552
--5775 3299
-9642 3715
-2850 8167
--5305 1135
-431 6791
-7625 3806
-359 -7882
--4657 166
--2986 -2978
-2450 4422
-1378 -9121
-1461 6991
-135 -8102
--5120 -6033
-3479 -9984
-4186 -6512
-902 -5778
--804 1382
-3697 -9208
--7203 -4645
-3381 103
-1621 9970
--3158 -6133
--1708 -7317
--4977 1778
-427 4635
--6149 -3290
--2340 2082
--2741 -1897
-7293 7077
-7411 -5609
--1534 3437
-5519 -7603
--8508 -9950
-7604 -9928
-6223 59
-6170 -1851
-6432 5565
--9905 828
-8341 2482
--2563 -2694
--8141 9639
--296 6919
-4957 872
-9999 -5123
--5596 6042
--1944 -8014
-9654 4515
--3201 4988
--7139 9242
--2833 4098
--9317 -8947
--976 -2767
-7332 -2086
-9734 -9963
--5108 4237
--642 -7821
--3099 7033
--5012 8687
--1547 -8237
--6654 3190
--2432 -137
--5828 -687
--8683 9516
-3130 8297
--1611 -9053
--5503 3914
--8514 -4852
--9625 -4675
-3727 2828
-2553 9447
--5224 -8745
--6278 -8440
-4918 -8976
-3258 891
-9969 -8203
-6450 -5079
-3978 3813
-5825 6297
--6566 -25
--407 -8010
-1660 -5825
-1607 4367
-5026 5342
--5655 4191
-4821 -9707
-207 9350
-1211 5716
--3711 8107
--3082 9948
--5264 -1377
--6492 -6661
--649 -2541
-6950 -7131
-2606 -2043
--179 -9608
--7596 3297
--7005 6916
-7039 9702
--2492 -1678
--1706 -665
--7210 2557
-9176 1812
-4634 -6979
--5677 3946
--2082 6949
-6276 3625
-5649 5097
--6929 1447
--7622 -9115
-180 -6337
--3568 5610
-4082 8549
-8074 -8938
--2426 -225
--812 2644
-6473 -9768
--2883 -3271
-1852 -2287
-7696 -4216
-9675 9997
-2733 9466
-4449 7051
-1550 -5694
--6556 -2802
-331 -1275
-3712 -4536
--84 -867
--7765 8085
--2185 -8186
-3058 2491
-1142 4174
-98 2794
--4562 -5666
-1138 -4243
-9410 -3738
-45 1582
--726 6328
-2975 -9295
-1914 -2414
--108 7551
-3865 -2898
--7146 2839
--8785 1422
-8578 -8552
--631 4596
--895 2467
--5979 -1973
-6661 -5353
--2692 4128
--1558 -4213
--3728 -9412
-3172 7076
--5827 9414
--5222 -1867
-5964 -9868
-94 -5807
--8142 -4333
-2065 7856
--2027 -2401
--4876 -2184
--1270 4000
-3802 -8194
-8337 3459
--5867 4413
-9554 -8065
-2291 4218
--4822 -6108
--4405 2576
--513 6812
-3926 -2525
-3500 3540
--1332 6032
--7474 -7331
--804 1395
--2379 9555
--5757 6587
--1379 532
-8654 4742
--8975 6069
--6935 -2939
-5225 -3743
-6110 200
--8341 2694
--4366 -3656
--6757 -2826
--5732 -5256
-1510 -9991
-6254 3055
-3571 -4287
-9478 3060
-1669 6426
-5801 8434
-8860 5735
--4230 190
--7882 -2349
-9072 -9615
-851 -9963
--5745 -2080
-4944 -3322
--2151 -6317
--918 6842
-1666 -428
--7781 -9868
-7659 -8643
-9095 -3647
-2263 5826
--3151 427
--9715 9329
--4867 -3764
-3229 -6565
-938 6474
-6569 6440
-2167 -8184
-4659 -9845
--9462 3097
--4188 7747
-3882 1087
--8465 -2879
-7902 -6198
--9713 6215
-2839 -9538
-2606 -8140
--3385 -3795
-4534 -5552
-569 1264
-2826 2469
-9488 -9506
-7955 3219
--337 1407
--6620 -2448
-4919 -7821
--4329 -5511
--9687 -8151
-7007 1377
--4278 -5798
--5909 -5768
-9893 -3958
--2757 253
--1902 1037
--8424 -5057
--4432 410
--4385 -1446
--1473 1809
--342 -8326
--6724 79
-92 -1775
--9212 1848
-6758 -8925
--2362 7824
--3190 57
--1923 -693
--8043 9124
-3927 8004
-9366 6060
-6568 933
--2580 878
-282 4962
--1362 -7277
--2688 3479
--1832 -8413
--7005 9245
-8178 -2872
--818 -7136
-487 9282
--9293 -1664
--9383 -6363
--2986 -920
-2340 998
--6601 2939
--1807 -7247
-751 5861
--6556 1913
--1352 -738
-2871 -4702
-2823 4213
-6581 -3624
--9103 -2997
-1453 4960
--7301 -4888
-2013 4000
--1538 -3543
--8322 -8586
-3294 5397
-48 -909
--5350 -4785
--3861 -8016
--6946 -4942
--9356 1562
-1923 -5041
--2517 -6840
--3935 8634
--7390 -7968
--401 9983
--3431 -7571
--688 -3617
-5750 5953
-5849 2801
--902 -7931
-4970 -5940
--3103 -2305
-761 5048
--2973 -9943
--8640 -2410
--7591 1654
-7697 -112
--5519 -5434
--4905 9281
--8685 311
-7745 2969
-9688 -7573
--8701 2463
--6640 -7267
--6814 5020
--7230 -5717
--346 5113
--575 -3700
-3207 2736
--9865 -3387
--1019 5256
-6084 -5610
--1445 -3014
--5563 5745
--205 519
--1693 6297
-8745 -6944
--1214 8689
--6802 7399
--1826 7071
-7231 261
--4679 5665
--8287 3309
--3480 -6109
-7287 5533
--8406 -2886
--5903 4322
--2706 6195
--2490 -2365
--1511 4055
--32 -8826
-8291 -5793
--5629 -1687
-7799 -430
--8996 -4640
-9664 -1245
--5830 2811
--7157 -2024
--2033 4074
--2083 7576
-2640 -4414
-1199 9622
--5165 9721
--6482 375
--1094 -9820
-1425 -8576
--9163 -2470
--2612 -3954
-7196 -4002
-2312 -1630
-3642 -5663
-6606 4741
-3187 -615
--2777 -2956
-9835 2133
--4158 -6218
-2347 -4425
--4174 8615
-8470 -3140
-3415 -7682
--5995 -1484
-1039 -2402
-6069 -7755
-4263 -467
-7240 -728
-7188 243
-1709 6013
-1637 -5752
-813 5429
--7115 5408
--3551 6109
--6782 6605
--6410 -6666
-6039 -320
--7051 5155
--3355 -4724
--1728 -4796
-2783 6546
-3492 5774
-1364 -1482
--5642 -248
--1875 6702
--4587 5409
-7188 664
-388 -9571
--7018 -3784
-407 -3523
--5956 2271
--6608 -7725
--320 5479
-5064 -5140
--9286 2122
--7312 -6078
--3457 -3719
-7186 339
-144 3263
-962 4498
-3669 -3813
--1044 -5558
-1201 6407
-715 8716
-6777 1397
-1818 -2423
--5239 1579
-5728 -6906
--7509 6713
-6235 9619
-5135 2117
--900 -1409
--841 5283
-2018 -9906
-5904 -9449
--6821 4172
--3675 -2311
--3226 889
-1856 -7399
--5385 2757
--7909 4697
-6741 1785
-9994 9607
-1569 -9
--7396 8799
--6446 -9188
--829 -9456
-9797 -4848
--5854 3879
-1117 -8510
--2040 -9181
-1873 4151
--3546 -2111
-7470 -3662
-3003 -2350
-4139 -5722
--4780 -1929
--7137 4475
--1797 3999
--8621 96
--315 6846
--429 -1713
--6457 -6005
--8421 977
-2508 7148
--3899 -1868
--6747 -3842
--7813 7218
--6313 -7752
--5251 5475
--8122 -4968
--6655 -9521
--4887 -1056
--5149 -3395
-2028 -1902
-9604 -9173
--1039 7102
-8151 -6836
--8981 -4739
--1362 -7873
-312 7148
-572 7911
--9052 5820
-9640 9521
--8439 659
--5675 2102
-9336 -57
--1081 -6193
-7568 1615
-9530 -5308
-4318 -6574
--6874 -91
--2578 5661
-9481 -3197
-9588 5522
--8028 1164
-5190 -9222
--3285 4022
-6563 9469
-8619 -6675
--2079 4525
--2745 -3801
--9047 6880
-4389 6326
--6385 -9712
--2392 -4026
-585 2640
-4947 8495
-5694 -9303
-730 -6911
-5870 -3238
--6809 -5704
-7759 4859
-5856 4656
-9585 3080
-1084 -3200
-8878 -181
--3905 -8683
-458 2017
-3071 -8805
--3621 733
--3182 -8751
--9986 -7860
-7708 -6570
-4410 1601
--3180 4090
--9919 1521
--9947 -5219
-7757 -4511
--2242 5225
-5488 -1958
-2817 -3901
-6955 -3450
--6121 -1021
-8044 9160
-3984 8395
--2953 5238
-8985 5584
--424 9346
-7067 -3765
-4256 -7280
--3236 -8997
-7816 -3852
-139 -363
--1454 -1898
--7774 -2550
-4185 -553
--6594 1432
-734 -557
--4707 -5169
--1489 -2353
--5254 -5565
--3254 1291
--2782 -9899
-1187 1744
-687 588
-7390 5575
-2593 3137
-1886 3729
--3509 92
--7907 4123
--1538 -2447
--3192 -8559
--4904 5842
-4108 -702
-9165 -3222
-9479 1514
--3736 -4566
-4415 -9793
-869 -4708
-44 1076
-1881 -6871
-1567 -8268
--8815 -9735
-1030 -6327
-5792 -234
-4095 389
-5361 4488
--3425 9214
-3982 2949
--3665 6212
--8263 -713
-7549 2715
-2358 -9629
--9454 -9216
-1512 -891
-5938 7575
-7986 7057
--2209 -9954
-8881 8281
--6731 -973
--9839 -9253
--427 -7632
--4899 -1541
--128 -7443
--864 -4102
-7607 -4929
-2919 -2999
-1714 -3481
-1423 -3364
--384 -2548
-5274 -6889
-5444 4985
--2764 3520
-5381 -7689
-3835 717
--9656 3410
-2350 260
--2918 -3130
--9990 629
--7126 -2482
--9770 -1626
--4346 7493
--5033 3243
-9286 -7438
--8449 6844
--3007 1320
-6255 -4067
--7789 8321
-7605 -8954
--3491 -6208
-1608 -2695
--1904 7693
-34 6012
-417 -8195
-365 -5247
-5808 7299
--2558 7523
-9065 -4444
-9730 7087
--8902 -8840
--504 3551
-1000
-9897 2654
-1797 -8216
-6267 6247
--3328 5365
-587 8740
-1172 -4939
--4049 2976
--5028 9914
-4597 6558
-3940 -2932
-4888 -9436
-4718 2186
-7880 3796
--3300 639
-6450 7706
--4223 -9231
--1715 7556
--8261 6446
--1499 7313
-7118 -500
-919 -9432
--4374 -2329
--6607 -7768
-9965 -7100
-869 4603
--7377 4869
-8842 -8763
-49 9089
--7287 5113
-8441 2139
--7035 -5119
-9116 -9373
--4702 3361
-48 -5021
-7523 2352
-5076 -4899
--7049 -2075
--4813 -7743
--281 5336
-1037 3241
--2109 -4787
--806 -8169
-9102 2811
--1125 -5414
-8465 -6560
--6188 8461
-1975 -5695
--1140 -1503
-2617 4644
-8937 3620
-5681 -1709
-2347 -5137
-3285 9760
-5041 9173
--109 -2928
-4600 2883
--3124 -7538
-9463 6910
--9932 -1723
-7544 1968
--8478 3553
--1352 -1667
-4756 -3360
--8846 8055
--7352 8626
--6644 -3139
--7900 8926
--5836 -3275
-4698 4711
-9573 -8206
--1082 6465
-1600 2307
--6196 -6027
--9989 9881
-6981 834
--5903 -3792
--8449 3954
-4940 -863
-8529 602
--916 9546
--2726 999
--982 4992
-1559 9683
-4443 2649
--3479 4415
-3160 9522
--4642 7026
-7641 -1479
-3340 -3211
--4606 2945
-4213 6661
--8158 -6932
-2801 786
--7101 929
-3518 -735
--4645 2500
--7776 -7503
--5576 8665
-1440 2
--9694 4406
-8243 -949
-2239 4641
-9572 6094
--1404 -4525
-812 -7210
--5060 -3893
--6334 7102
--4652 1326
--1092 6677
-3391 -115
--5669 5719
-3465 2781
--4954 3953
-4407 462
-5340 -4778
-2100 -5008
--9447 903
-6948 6703
--995 9750
--9951 6400
--2744 -370
-6969 4296
-9580 -6233
--2700 4013
-7047 -110
-3482 -5586
-4509 7305
-2189 5022
--9954 522
-9358 -3570
-4187 7500
-6944 -7536
--100 7957
--1112 -4707
-2178 5133
--6521 2991
-1850 6129
--1978 -2179
-2450 8312
-7588 5708
-1840 146
-1216 -1818
-9472 -1104
-2935 -167
-6916 2542
-1942 6757
--475 8427
--4246 238
--8254 -1699
--6463 1243
--8551 7245
-516 -2625
--5076 -6695
-721 1015
-1355 -1116
-2182 -8249
--7726 8707
--6061 -2487
--5590 -2060
--1139 4822
-1616 -1303
--506 -3938
--1912 119
--6644 -3258
-6257 -5544
-9693 -6557
--8015 9323
--7417 -2846
--4777 -216
-370 -3034
-9604 820
-5254 5482
--4965 -3330
-3324 -9876
-8783 3136
--2465 6342
-8813 -1310
--8158 -3449
--7954 -6736
--5373 9386
--8171 -4089
-4150 5080
--847 -5364
-2766 4514
-1210 6929
-979 9653
-5626 3800
--8287 -4779
--189 -5575
--4217 834
-1449 4813
--8931 -764
--4269 -2925
-8049 -526
-5927 -2070
--4283 -8457
-673 -6160
-3439 8195
--7654 -293
-6162 2025
--3850 9780
-1173 8444
-7472 43
-4365 -6402
--1778 -3169
--5895 -4186
--1075 2562
--7499 5994
-3326 -7977
-6570 -6180
--3135 601
-8464 6883
--6399 2797
-5795 -8359
--7384 -4403
--5182 5619
-481 -9839
--7392 8961
--6845 2163
--874 -5355
--485 368
--6356 3636
-3022 -5644
-4680 2069
--4326 -1990
-9274 -9164
--8572 7658
--493 1529
-7867 -9811
-9758 -2441
-382 -5382
-2050 -2038
-7527 5473
-9758 1995
--9170 6290
--6618 9310
-9988 -9170
-8322 4183
--3160 -1751
-6356 -742
-1208 4385
--490 -8177
-724 -2528
-6721 -7436
--6172 5990
-9937 -4193
-3226 2668
--158 7502
-7770 -6860
-9711 -6072
-855 8018
-8125 8570
-617 -2713
-953 492
--2258 8567
--8501 8674
--1258 2834
-2809 -8103
--1162 9688
-8036 4656
-3288 384
-1656 -4538
-5277 5891
--5928 -2059
-4345 -3468
-2914 797
--7058 9673
-9846 6833
--482 7445
-5001 -6788
--6841 5249
-4307 3784
-6706 2142
--3316 6582
--1111 -7366
--8939 4764
-4835 -9423
-1969 -5508
--7328 9298
--1638 5565
-454 -30
--1754 9114
--6067 -6028
-7488 9709
-3808 4234
-6903 7026
-1944 -6798
-9563 -7130
--4342 8149
--865 -2160
--6251 4545
-3843 -1499
-264 -1739
--3257 -225
-7017 9747
--4254 8229
--1671 -5708
--182 7238
-6895 4068
-5548 -5567
--1434 -538
--4486 7491
--970 6732
-636 3995
--9688 -5371
-5133 8761
-4070 8842
--5978 1336
-3752 -1770
--970 -4609
--5113 -9131
--5915 7753
-9796 -6317
--3312 4011
--6716 9169
--4279 -6343
--1316 954
--8971 8318
-3701 -6649
--4033 -4086
-5946 -4361
--3498 1872
-4749 -8937
-1529 -1213
-1037 7748
--9583 -4797
-961 2922
-1673 9538
-9167 4392
--683 -1402
-2650 -1033
--6458 -7850
-6823 7611
--4871 7329
--9684 -210
--6528 -8936
-6983 9240
--9173 -8774
-6883 8508
--9571 8524
-2125 -136
-9611 -2371
-856 -1676
-8653 -3707
--8567 -2019
--8634 2393
-3458 3868
-3135 2143
--2435 5224
--4781 -4976
--7606 -6505
-683 -8080
-9680 -6187
-748 -3738
-2586 -5345
--1132 5684
-7488 -204
-4673 4110
-2865 9950
-8750 7180
-309 -9458
--6039 -7973
-8507 7003
-9188 -903
-5242 1938
--9206 9538
-8227 -9502
--7653 5533
-6260 5130
--1760 -1057
--6963 9082
-2029 9952
-7428 7004
-7781 8381
--6737 6255
--5544 6560
--1137 -7265
-608 -4166
-8018 8245
-5410 -8241
-1632 -3683
-5166 7203
--9722 622
--1889 5643
--1288 3084
--681 -3572
-5101 -9710
-3553 4483
-5290 4628
--9035 457
--8363 7588
-3446 -2642
--2288 -7798
--6820 9165
--3062 -8743
--1467 5726
-7759 4164
-1961 1261
-4240 -5341
-721 7704
--9078 -3261
--569 -2266
-1690 6857
-8607 -3322
-154 -6694
-6161 -3109
--7490 -910
--3723 1583
-9365 -2434
-9284 -9415
--423 -781
-10000 -5255
--4628 2764
--2286 -2058
--5112 9730
--819 4377
--1857 -5565
-8950 -3631
-8610 -757
-4099 -684
-7562 -8126
--3351 -2677
--8858 5132
-3791 6952
--670 2018
-1098 6159
--4853 42
-3532 -3899
-3260 -3700
--4275 -4741
--1741 1385
--2390 -8439
-2674 -8535
-8456 -8297
--6987 -6480
--1508 -7032
-3825 5839
--537 -4190
-5707 7063
-8781 3974
--3261 -5292
--3197 6994
-8704 -525
-3181 -8791
-2801 -166
--7731 5489
-438 8271
--3800 6211
--1223 5196
--1071 7647
--9943 4580
-7342 -3961
-9981 2833
-3269 3389
--5606 5675
--2806 -93
-9688 -1409
-1462 4651
--7210 -5375
--6752 5699
-6288 -1783
-3489 9002
-7827 3897
--4056 985
-7177 27
-6731 6608
--7015 -365
--1867 -2178
--7634 -7471
-2637 5931
--4441 6387
-8016 593
-5386 4618
-4390 4272
--5283 7105
--414 -7045
--5147 4981
--8795 -8584
--7558 -9435
-9062 -8609
--8517 -8013
--9252 8731
-6202 -6681
--4340 3123
--1829 6026
--2307 696
--5450 -6795
-6550 -5461
-734 5060
--840 -5092
-7635 -4353
--7626 -4038
--8078 -7122
-2566 5501
-5278 1597
-2209 3629
--2595 549
--6673 -3060
-8077 5953
--1087 -2760
-954 18
--8753 8966
--1140 7734
--5598 -3617
-1968 -4041
-1021 8809
--3967 -8049
-9513 -5220
-4826 -2178
--4784 -4170
--5385 -8980
--9880 -979
--3405 4238
-6897 -4621
--9541 3619
-3105 -8271
-6104 7642
-2955 7484
-8258 -7238
--7426 -7477
--2019 -6728
--3188 1473
--7559 2445
-5721 6205
-6908 -6400
--5882 8171
--7759 54
-3746 9965
-8486 -2163
-7053 666
-8559 6088
-3933 8289
-3482 4029
--5733 -9507
--6454 -4560
--111 1738
-6400 -1662
--6346 1907
-8733 -7879
--6089 -264
--4656 5397
--8910 -4407
-6192 4332
-2631 -7879
--9604 -443
--7093 -5485
-8150 -6378
--2991 6013
--3370 8869
-2780 -9749
--5733 -2502
-5036 7871
--4494 -4004
--1425 9914
-6969 -8730
--9131 -3601
--9202 584
-919 1984
--6333 -4130
-2057 -1126
-5638 -7234
-7050 5755
--799 484
--4176 -4243
--9264 -9658
-9825 2122
--9065 -6555
--3337 -1852
--4082 -54
--8836 7349
--1286 1024
--6421 -4380
--2291 -8971
-6565 -8323
--4140 -476
--9027 -398
--986 -816
--1110 3280
--2782 -6483
--6989 8910
--731 5191
-2311 -4180
-8223 3042
--6168 8448
-9604 -1426
--8502 -1217
-903 -5849
-3828 5526
--7969 -1064
-1282 -764
-7703 5921
-9946 9122
-3699 8405
--3592 -1631
--7332 7642
--2715 -8689
--6244 -1439
-2377 -8101
-6836 -9587
-8976 -6882
-9372 5507
--8715 -9924
--4671 3973
-9300 7344
--9949 6085
-9683 9135
-5248 1617
-869 -1705
-5014 -9630
-4518 1271
-4083 9796
--2640 8685
-7912 -1019
--5428 8507
-2538 7586
--3225 5073
-6746 7220
-6718 6774
-1650 -4072
--5416 -2665
-6580 -2193
--5850 1177
-1593 3082
--2994 8421
-1037 1116
-411 3242
--8143 -6651
-9871 8760
-4330 2840
-2436 8239
--5779 8713
-1798 9833
-4766 4330
--2553 -9342
--506 9781
-779 9338
-8101 4938
--8769 735
--5985 8480
-1011 -3607
-4617 3901
-2570 1880
-7915 -6748
-527 -7815
--3529 7881
--9420 2689
-4216 -571
-7310 -5988
--1621 5326
-8015 2752
--9736 4297
--598 8543
-9860 5109
--9033 -611
--2391 8358
--7083 8076
-4551 -2260
--4840 7497
-8765 8666
-6450 3174
--8617 5028
-9176 7866
-4659 -530
--4358 6432
--1295 -6914
--8887 8154
-8520 -8593
--4140 4281
-583 -7279
-4230 7283
-4627 -8683
--2040 -7544
--7955 -3464
--6009 1466
-1871 771
--5527 -7421
-1286 -2901
-7647 -8453
-1901 5439
-7408 1380
-6930 5947
--7299 -9956
-9873 -6009
-9463 4011
--6038 -7259
--4093 1189
-8438 -7069
--7722 -3004
--959 -1153
--9953 -8988
--9238 -5933
-2351 7318
-2630 -805
-8002 3934
--1971 1723
--9252 7445
-5420 -7356
-3254 4524
-708 -8755
-3247 6038
--3639 8057
-2219 1973
-5886 -628
--4255 3558
--9537 -9926
-1974 -3627
-867 3382
--6428 2237
-1704 -4822
-466 3655
-8879 -6966
-9624 256
--5329 9979
--7045 -3666
--6756 3682
-3164 -9284
--2267 -5577
--2676 5545
-5872 -619
--3941 -1856
--8121 -3144
--2018 -6129
-416 3739
--3880 8259
-8760 -5185
--8637 2087
-8653 -1265
-7288 7135
--6387 -9868
-3378 8086
-1501 1544
-5151 -7058
-583 6720
-6791 1737
-5121 9569
-7890 -567
--4738 -9144
-1728 -5536
-8653 -3367
-9453 8572
--6368 -5013
-8069 2919
--8440 5458
--5215 -6987
--3629 5353
-4375 -2779
-7544 -2348
-5490 -8437
--2019 -3126
--7154 -7216
-2747 9877
--7379 -4317
--9841 -5703
--2486 -229
--8376 918
--6992 -3325
-4652 -8704
--1193 1183
-6554 8802
-4210 -2552
--6779 4538
-6761 1924
--2974 5435
--6543 -2308
--4861 -6277
-7960 -2237
-1235 9876
--3535 -1322
-7069 4474
--610 7656
--8146 -9813
--5997 -3147
--145 7094
-8966 -5917
-5484 159
-9608 176
--5147 -7696
-4053 3165
-153 9592
--3039 -3161
-4979 6000
-2757 9808
--2220 3529
--2033 -3329
-5331 -610
-4849 -8824
-5605 -8548
--4948 163
--2241 2796
-8422 2384
-6393 5553
--4281 282
-9700 3471
--5248 9516
--8838 5488
--4630 7801
--3687 -5741
--1990 3937
-5030 8063
--5236 3119
--9998 -9651
-3140 7793
--9944 9842
--133 2638
--9193 -3921
--5102 -5751
-3628 5908
-2567 -3990
-5882 -3173
--1981 5005
-2653 -6893
-9461 -8695
--8296 8784
--4745 7453
--9330 8446
-6984 -2336
-2353 7181
-3360 7453
--1186 -6585
--512 9549
-9260 -613
--3792 366
--1967 -4299
--3164 6631
-528 4676
-8598 -2990
-4112 -4654
--4037 7031
-4449 7587
--9154 -3950
--5616 -8761
-8972 51
--7493 -3603
--7906 110
--8832 5350
--6178 -2888
-1790 7771
--6066 6101
-5249 -9887
-2517 2240
--1819 -4111
--1126 2131
--2917 -2445
-1747 9271
--3622 -4781
-6788 -1977
--302 -4363
-9698 7911
--2908 9214
-6478 -4298
-9570 -1380
--7200 8310
--8372 -1828
--236 -6343
--8567 -7642
--6384 4990
--4679 -7727
-9355 6613
--3065 -1357
--50 1847
--3428 9914
--9936 1949
--7370 -2042
-3042 1035
--9703 2930
-3614 1010
--5603 -4385
-481 4887
--2252 5500
-8471 9794
--110 -8429
-8931 -2265
--6755 391
-896 3120
-1063 -7245
-7599 -5104
-4516 -1461
-3584 -5585
-8551 4782
--6179 -8249
--8024 -114
-4346 -5429
-4253 -574
-9218 -7560
-6680 -7626
--2118 -1645
-9703 546
--608 4759
--2907 -3919
-8403 -3336
--4300 -9157
--1619 1704
-3912 -2139
-5660 -8966
-7184 -9509
--5393 3096
-6398 7611
-2939 -5250
--5334 -4943
--5894 4325
-1212 9878
-867 1891
-338 8315
--9741 1802
--7943 -1416
-6648 203
--8860 5484
--1237 -1976
-6951 -4467
-4851 -3989
-7688 -695
-442 5217
-3627 4376
-6613 -1843
--7287 -9224
--2884 -3970
--2349 -1098
--5012 2650
-297 -7627
-3365 6871
--7453 3134
-4093 5317
-9377 4774
--5704 6724
-7226 4924
-1541 547
--5529 -381
-7630 757
-2968 -2692
--1521 7027
--7576 -1377
-7545 -3603
--1829 -5974
--9023 -1450
-7450 -5896
-6533 8075
-5319 -2666
--5509 -5019
-8680 1600
--8598 -6996
--2203 9428
--2031 719
--6624 -2073
--7718 2491
-3473 -6422
--913 8718
--9997 -2496
--8354 6009
--1630 -7976
-2054 8220
--2109 2247
-200 9823
--4405 9421
--2851 7918
-9036 -4650
--2761 -8510
--6837 6651
-4658 9558
-2917 9463
--6658 -486
--4092 -325
--3793 8364
-2404 -9672
--3185 7839
--9456 -1055
-2593 -3201
--8551 7332
--3340 -7142
-185 3855
--4290 109
-912 3315
-621 8221
--2497 7920
--7436 982
-853 5225
-7370 4367
--7563 -907
--5596 3074
-849 3782
--6663 -2226
--1880 8768
--894 8035
-7824 -9383
--455 1101
-32 4037
--6214 7683
-6960 7375
-1507 -8628
--5923 2565
-3355 9402
-7201 -6977
-6435 -8833
-9314 8983
-4456 609
--8036 9327
-3105 -5575
--4598 5481
-5275 -8821
--811 209
-2206 9178
-1000
--1605 -1776
-361 -7331
-6529 -8916
--3046 9221
-9809 -1586
--4268 5390
--2466 -8177
-5716 5613
-1686 -5524
--8814 5507
--5873 -2762
--5713 -1990
--3109 5157
-1968 1811
-8597 4884
-7760 -4459
--9270 1265
--9954 -6703
--890 -8774
-4431 5234
--4107 -6802
--1930 -2315
--8729 5522
-7931 7141
--366 -5105
--2801 5746
--8277 9553
--4380 -2135
--7178 -8439
--8116 -7540
-8421 -9069
--8124 -4629
-7184 -4208
--3228 8167
--5068 -3831
-3765 1742
-2048 3592
--4869 9404
-587 6546
-4074 730
-9306 2463
--5094 883
-7643 9427
-5728 -2569
--7825 -862
--1557 2508
--4952 -7527
--1102 4090
-1271 -7402
--5220 -8445
-3210 -3028
-5032 5858
-4112 9167
-854 8408
-27 4711
--3668 1181
-6923 -4509
-4543 -3137
--2637 -4427
-9463 3013
-1227 7912
--8790 -8307
--3358 4786
-5925 -1326
-1800 -5466
-5677 -5106
--7993 7430
--2371 9009
--2942 8454
--3606 -3919
--4432 -3261
-3109 1107
--2341 4386
--3186 25
--5638 -7252
--4636 9295
--838 3834
-6077 -7920
-7731 3389
-9464 2642
-1629 -348
--1654 -3831
-8802 8287
-3074 -5156
-6080 111
--9485 -4259
-2249 -8089
-8871 -7383
-4117 5124
--4318 -8918
--7079 8602
--1324 3865
--7088 -3700
--9690 1687
-185 3155
--5017 -1189
-2172 8475
-614 4907
--6736 -4789
--8058 5783
-6743 -9080
--8907 -1829
-9258 9450
--1087 8459
-2694 -1974
--3297 -2460
-6163 1341
--7849 5755
--6320 5914
-8627 -7764
--6450 1409
-621 -820
-9576 -9285
-2045 -3536
-6299 -7179
-5394 2785
-5435 5372
--2724 -4359
--614 -7368
--1261 1558
-3286 1981
-6071 -7579
-6166 -7213
-6626 9648
-1869 9843
--4665 9830
--5210 -9630
--5163 -9454
--1529 -7362
-9580 6594
-7490 245
-9221 -7277
--3309 1451
--1124 -6734
-9607 6666
--2775 193
-7175 -1255
--7043 3989
--5975 5434
-5570 1795
--7142 9218
-1532 -7006
-8989 7275
-1694 -7007
-7513 -894
--7983 2218
-3542 -1755
-702 -1086
--9530 7402
-9020 9294
--5468 -5171
--368 -4491
-5074 -5825
-6281 2343
-8988 1285
--4866 9213
-300 -1862
--9914 -5492
--1178 7807
--9057 -2631
--3341 778
-1807 -5574
--8178 -8344
--800 6526
--3519 3582
-7677 3257
-3373 -5536
--2603 -4330
--5491 3922
--5812 1763
-4993 5510
-4171 -3448
-9494 1377
-1040 6046
-5359 -3317
--7504 9301
--6674 9293
--8862 3187
-7342 7133
-8491 5751
-8243 5057
--8 -1524
--9462 -90
-9070 3327
-2759 -1437
-9725 -5002
-4811 -7930
--2567 -2349
-5841 9559
-7115 -6381
--3275 -8384
-9335 3280
-5936 4353
-4466 -2491
--2809 -1696
-1568 -9914
--4739 -1447
--5595 -8679
-3517 -5184
-2422 -4241
-4752 733
-7317 -6644
-9104 -2106
--1638 -8672
--1674 7231
-7716 3046
-3961 -4258
--728 -3381
--6844 5214
--8403 -1790
--8568 669
-4781 6600
--653 -6256
--2004 230
--94 6922
-7691 -441
--3776 2392
-7594 4546
--1542 -192
-3275 4601
--9003 3021
--481 -7590
--9728 -9904
--7175 6165
--2125 -80
-3210 6704
-8367 -9383
--9412 5030
-6587 8771
--6383 6611
--2355 9993
-6510 1107
-5728 1065
-6309 -2638
-2274 -7632
--2156 -1589
-8380 3605
-5167 -8332
--2404 5223
-1775 6651
-7164 9492
-5875 -2186
-6302 5236
-9909 -9731
-777 -4786
--426 4878
-1669 2348
--5323 -6085
-7193 -8629
-3111 -1736
-6310 7265
--1946 -2595
--9456 1058
-7262 8630
--8920 2340
-7892 -7194
--9649 1962
--4114 2250
-9075 1006
--3058 -3551
--3605 -19
--2898 3109
-6372 776
--4974 8813
--4523 -8055
-9920 -2972
-6643 3464
-6231 -7686
-1189 3788
-5124 -936
--5745 1603
-9656 2149
--8698 7660
--1970 4788
-1095 -5908
-4226 -454
--3456 9152
-6546 6475
--4589 -8802
--8266 -2959
-7498 6310
-1612 9251
-2729 6205
-669 -8461
-8776 -3851
--739 6390
-8035 -1909
-5545 -5169
--2011 7062
-2161 2702
-5651 -6860
-5 -8239
--600 7328
--5166 5685
--7715 5429
--1027 7269
-7050 -379
--526 -2847
--3008 -599
--1880 4131
--947 8280
--3736 5214
-9266 -2811
--4009 2635
-2006 6783
-3989 -4215
-4362 9175
--5750 4111
--946 86
--9533 9750
-1320 -876
-6569 6425
-1491 7870
--541 -5323
-1588 5818
-8857 -2252
-3865 7087
--1023 -9793
--2589 -672
--5549 4288
-4056 -6440
-2440 -7555
--4750 -6857
--4095 -832
-6018 -1558
--6492 -3526
--9350 -227
-8872 -3870
--3996 5020
-9798 -5701
--1360 2727
-1860 7251
--5169 -4615
-2814 -1761
-8298 7754
--2399 228
-714 2352
--748 -9371
-3931 2786
--1737 -8293
--9559 -2158
--8805 1888
--2427 296
--3415 -6252
--7435 -4675
-2885 7565
-9493 -824
--5576 -4606
--4514 403
--5840 -9556
-1832 3167
-5476 -1829
-9639 8457
-1267 4368
--8740 -5735
--9333 5447
-2668 -7810
--4210 3102
-2624 -7366
--3584 -7239
-3565 4228
--3829 1559
-3732 856
-5100 -3237
-157 -7988
-6145 -9949
--332 4214
--5320 -5325
-3339 -1142
-8758 6595
--5235 3715
--8639 6388
-8256 3812
--1488 3067
-7689 9744
-792 7382
-5347 7122
-5552 4386
-2105 2952
-1905 1132
-6437 2597
--2861 6764
--1529 -3046
-7886 -6533
--1559 -9015
-9947 -9883
--3806 -4599
--5086 -2278
--5237 -4312
-9342 6010
--2223 -4966
--3076 -9861
--8739 -8406
-7972 3981
-5120 -9982
--7949 4873
-725 3410
--4315 -9087
-2144 -1227
-5862 6654
-1762 -2887
--3131 -1312
--2079 -8804
--4429 213
-3834 4391
-4966 -1799
-5447 -3399
-517 8529
--9665 -3973
-4553 -2746
-7678 5009
-6227 -3468
-5223 9007
-9293 -3770
--8852 -4711
--4996 610
--8297 1020
-5151 -9525
--5278 4125
--3828 6309
--7003 -7470
--5681 -6153
-6870 9016
-7422 9317
-3264 3133
-3153 7456
--1233 2326
--5359 9416
-5397 1001
-827 -9294
--6425 -8359
--7954 8692
--9782 5300
--5704 2842
-7993 -1789
-7490 6765
-1381 -6885
-2339 -9774
--9811 7011
-9957 -6967
--7053 1479
-3926 -1880
-8471 8986
--5709 -675
-3071 8660
-9461 5401
-8138 3049
-1311 5957
--8487 -3280
-9038 7310
-5314 1873
-108 3325
--7484 -9888
-732 -4475
--5825 5958
-3798 -942
--605 3087
-7700 -6491
-6688 5661
--9619 -1832
-7486 2430
--6840 8516
-668 -3936
-9255 -9072
--4081 1105
-2300 5764
-9677 -4130
-7217 2102
--137 -9589
-7650 -2691
--8244 -6674
--203 -8200
--1746 4020
-8085 2005
-9934 -3088
--7347 3599
--8497 -3588
--1175 -4481
--3138 -999
-859 919
-903 -4658
--7872 -2650
-4505 -6584
--5039 1887
-3236 7771
-260 9348
--3287 6353
--8802 -313
-9440 8994
--4312 3994
--9510 -1099
--4210 1135
-9080 6606
-4596 8766
--9539 -6949
--7081 6667
--9727 6032
-4830 3103
--2344 -3170
--5929 5648
--5888 -2183
-2366 9084
--974 5361
-439 -9625
--584 -3228
-3279 4653
-7786 -2223
-1783 2917
--6746 91
--8876 -2429
-3981 -9066
-4598 4367
-7917 -652
-4461 1265
-7361 -2364
-397 7701
--6395 -5200
-2020 -9879
-9108 6974
-9668 -8658
--3839 -375
--2647 4981
--8634 6497
-9360 -3200
-3561 -6522
-6145 -1621
--2994 7155
--7029 -5064
-8818 1820
--5339 -1792
--9877 -4922
-2836 -2115
--2236 -7502
--4880 -8903
--7573 -1610
--4798 -3497
--2479 5782
--5257 9415
-7408 -5091
-3067 -6615
-3481 -1724
-5199 4240
-6921 9237
--9018 7876
--9176 3861
--1552 7695
--8742 7486
--2886 3683
--3589 -2231
--9749 -971
-768 1714
--1506 3726
--892 9176
--5710 7497
--6076 9169
-3303 -4642
--7355 9048
--8257 437
-1116 5582
-4006 -3720
--8291 -3415
--5330 7936
-8754 -9000
--3696 -7638
--1661 8435
--8737 3158
--499 6505
--1139 5681
-8329 3033
--2911 -2652
-4136 -1817
-369 -7771
--2180 -2253
--7231 -9278
-2973 -6476
-2042 2441
--9365 -9224
-9031 9016
-2957 -5575
--6381 5778
-9880 -5151
-5439 -2330
-2714 -34
-2308 -4073
--5349 -8761
-2399 -5338
--5780 2409
-377 -7308
--6127 -2538
-5910 -7372
-5013 5811
-5600 -9857
-8745 714
-4350 -4836
--5972 -1381
-9875 -2352
-949 3149
-7924 2328
--2984 -9148
-6528 2392
--1863 -1840
--4828 4732
-5379 -3860
--3654 4277
-120 -2733
--2913 -1444
--9997 2151
--2549 -6780
-8520 4684
-517 -9342
-2082 4909
-1387 -8381
--4985 7173
--6600 -7154
-8622 2434
--6312 152
--7491 4952
-4508 9454
-958 -950
--1923 -5744
--3969 7558
-7909 4515
-5927 -5062
--7935 -9743
--7964 1131
-4851 -3024
--4093 -4221
--2787 7064
-8107 3984
--2474 6429
--9517 7974
-188 -4007
--3143 5725
-8222 9083
--4137 7692
-2396 -8620
--5437 8729
-3092 -4403
--785 4484
-6422 9939
--7273 7236
-3466 9967
-8671 5266
--3823 9753
--1363 8275
-4850 6504
--3202 3355
-8342 -7515
-2882 9780
-9272 9482
--6053 -7995
--7403 8366
-2569 -1553
--126 -4192
-9660 4122
-5580 -7999
-1402 -4801
--5108 4102
-8917 -9331
-2150 4163
--6865 5740
-3443 -831
--917 -3747
--8441 -1248
--6447 -1612
--8285 9304
--4175 6853
-1681 1320
--4979 6140
-9702 -8960
-6944 -617
--2328 -2064
-5425 -6503
-6420 -373
-2864 8708
-2641 -2042
-9849 6736
--1995 8155
--4454 -2360
--6602 -4348
--63 3111
-522 9685
-5571 2562
--1889 -4562
-3507 -331
-8532 9156
--6705 7865
--3889 -5208
--1744 3688
--7869 -228
--7756 -7899
-8236 9270
--9954 9319
--3406 -5601
--3782 -9794
-9137 4465
-1487 8488
--2529 -1621
-3576 2894
-7556 -6747
-9033 7262
--110 1777
-5899 4213
--7428 -9752
--3784 4792
-8138 -6057
-8552 7581
-345 2184
--4144 1628
--6699 6046
-1283 -8618
--1150 8182
--81 -3918
--9218 7484
--4801 9784
--7650 2476
-6624 9644
--8869 4736
--8186 -1461
--9179 -3477
--2503 4377
--5194 -3431
--1189 4363
--9353 3151
-8045 -9779
--959 5944
-4578 6861
--8989 7376
--9329 -7764
--9877 2170
-3729 3517
--9494 -3811
-6566 8588
--1007 5807
--6912 -9134
-843 -7608
--3611 8371
-1557 9417
--6599 -9826
--6133 5207
-598 6542
-4683 -5554
-5999 8168
--4759 3077
-8876 5918
--2287 -3896
--3255 -6261
--473 4233
--8295 -788
-8019 -9283
--6033 2665
-6049 -164
-9268 -5599
-9147 -6092
-3494 927
-1370 -7342
--3877 1868
-397 -1066
--4153 -1063
--2062 -3058
-1899 -3494
--6831 -153
-955 3423
-7937 4166
-5899 -4927
-8908 979
-7008 -4802
--8406 9128
--8741 4670
-3700 8857
--228 -167
-3041 -5565
--7196 -6274
--4941 -3242
-4058 -164
-2249 -9054
--9403 4130
--8487 -9157
--6071 9740
-3757 7436
--3841 903
-9550 -5942
-1554 -2506
--4804 7977
--605 -2573
--8446 8124
-4820 6932
-3639 -3360
--8477 241
--11 -7078
-1525 -9168
--8452 9804
-3860 3611
--8677 -983
-3539 -9260
-6576 -6724
--41 6476
--9789 9782
-1302 3572
--2962 -7891
-3061 -3246
-6172 6133
-6878 -7699
-5333 3941
-1172 3199
--9326 -4009
--6978 -921
--4624 4442
-3298 2158
-9795 5306
--3648 7612
--313 -5024
--4879 -5443
-4659 5226
--4015 -612
-5494 9785
-2346 -2005
--712 -1411
--7935 1372
-2710 -7799
--9665 -6411
-743 9227
-3027 -6116
--8538 5486
-8802 3282
--6506 2902
-7789 1343
-1132 -472
-5970 -4054
--2347 -4092
--9868 8145
-2904 -5809
--5532 -7928
-1426 -2554
-7703 -8506
-2078 8771
-2227 -3815
-7958 4620
-3890 -9029
-8292 -7115
-3515 -9076
-5676 -351
--8574 -9588
--2541 -513
--4726 5092
-1187 6173
--7274 2215
-1506 -3841
-9117 -2563
--9771 4510
--429 1528
--2385 4686
--6413 -7805
--3206 -8405
-7186 -446
-6929 -6010
--631 8253
--7714 9320
--1411 -4710
-7298 6061
-3105 -3667
--171 -2116
--7525 2126
-4835 936
-3472 -3725
--4332 -9005
--8077 -1218
-908 -9161
-954 -6212
--3155 -9776
--1092 -272
--6997 -715
-3126 -5778
-432 1072
--1431 -36
-1719 2515
-6523 2085
--9994 1337
--2395 4078
-7001 -3719
-1921 -9453
--1954 -7409
-9496 7320
-284 -5961
-3672 -9696
--8363 -6846
-215 6164
--3069 -7757
--6366 -1631
-2227 -4397
-9944 1989
--7382 -1857
-1867 7619
--6804 -1354
-2494 -5303
--3918 855
-7667 -3120
--5300 2090
-38 -1559
-449 -3025
-3746 -4261
--4391 2062
-5517 -9450
--8056 9327
--4571 -7375
-7355 3360
--9634 3937
--150 -596
-5177 7068
--5557 3130
--5869 9128
-289 -785
--4209 139
--8213 7922
--1729 5906
-5168 -3667
--249 2752
--7530 -2503
--2930 -2531
--9363 3846
-7139 -6842
-3317 -6283
-4934 -2192
--5391 1551
-7363 1028
--5977 5582
-723 -4961
-4368 -3540
-1976 -6711
-7788 6093
-1805 -452
--9633 6120
-5478 5255
--9816 3994
-1571 -6155
--7675 349
--4212 -1588
-8478 7048
--3177 -2272
--3144 931
-5616 -1101
--5735 6522
--8187 35
--5224 -809
--1330 3951
-8248 -2865
-1816 -7819
-6571 -3038
-4697 -2437
-2825 -3701
-4816 7767
--4208 6724
--7841 6849
--131 2137
--1316 6165
--7806 -9958
-7412 9558
--7743 -1000
-7466 -3763
--3381 7983
--3287 -4264
--5462 -3922
--8514 2322
--3932 -8116
--6230 7166
-3878 3465
-9868 3478
-8786 5391
--4970 -4685
--9679 -5415
-1797 -5065
-4721 8481
--909 7699
--8153 -6257
--8367 6461
-6885 -874
--7548 5240
-7798 -9913
-4690 8690
-453 4864
--2363 -6172
--4754 9739
-231 672
--2378 3923
--2660 3405
-8365 -3368
--5952 -1978
--1747 8526
-4641 5889
-8021 3128
--3569 9942
--8519 8793
-823 9069
-8168 6009
-6143 -63
--8849 6783
-771 -2884
-188 2725
-5638 -2387
-2274 9513
-1000
-411 -4238
-1677 -806
--6776 -31
--669 -6275
--6779 3754
--1609 -6634
--3699 -2365
--3674 -6633
-7173 -6857
--4852 -612
--8409 8869
--135 63
-3088 2503
--9383 -4012
--7148 985
--3892 9630
--1719 -5161
-3690 4948
-1059 989
--5003 6023
--1163 -9693
--4788 -7126
-5011 2046
--8755 -2227
--7316 -2629
--6819 -956
--6204 -8953
-3226 -4627
-3197 -3431
--9891 -1741
--1209 3466
-2583 1178
-4893 1122
--5659 -9298
--9614 -6575
-454 9840
--5142 3940
-7102 -6337
--1516 7712
--6143 -7581
-6467 -679
--2446 595
--7123 -8383
--1591 9824
--7090 14
-6726 -210
--9820 -1197
--6888 3581
--4492 -572
-1993 4149
-2383 1273
-4556 -1522
-2294 -5281
--2567 1650
--1482 2591
-3474 7792
--5311 1185
-8697 4167
-9169 839
-358 7200
-6179 4113
-9736 -5752
-3071 -1418
-4987 -2528
--1 -1916
--9752 4008
-5860 8616
-750 4243
--7678 -4252
-3041 5524
-7068 -3948
--8193 4570
--6674 -5155
-1942 -7455
-4263 4851
-8293 7025
-8560 -4448
-7486 -271
--2326 5257
--4319 -496
-4638 -2147
--8050 3577
-7294 -7455
-4709 3554
--5373 8106
-8702 9915
-8593 -8716
--7797 6384
-8077 5738
-903 -6214
--1979 2848
--5161 2818
--4937 -490
-2108 3230
-9587 5826
--7244 -7738
--2760 6622
--5412 6766
-9242 -580
--6745 2287
--759 -48
-1420 -8250
-6441 4408
--7742 3649
--327 2945
-2110 5509
--7189 -4551
--9778 -6579
-9230 2169
--3623 8363
--5741 7115
--4442 -1673
--1776 5553
-9246 5340
-2567 -5849
--4208 -8491
--4080 1766
-4136 -7249
-9306 -6277
-7541 -1530
--7516 -2266
-9875 -623
--3 -5626
-7513 -2471
-2223 -1421
--3941 -5377
-4569 3276
-2096 -5655
-1663 768
--4340 -1367
--3614 -7309
--4162 5127
-8165 2027
--9875 4521
--8716 -3241
--1231 6487
-2060 -2142
--252 126
-9170 73
--6178 9031
-8369 1019
--8310 8637
--1751 9958
-9967 8279
-7319 5043
--5210 -8827
-9618 2732
-9357 4082
--4626 -3853
-9098 9896
--8735 -1514
--2728 2112
--208 -9520
-7817 7972
--5313 -2702
-2180 2531
--6304 -3616
--1947 4933
--9635 -9307
-8517 -6873
-5066 4307
-6964 8686
-9712 3485
-1504 -7680
--2303 9478
-6658 8477
--9251 -1564
-2052 5664
--454 5095
--8903 -188
--2947 1482
--2680 9718
-4763 7937
--7966 5125
-2707 -6790
-7989 3353
-5428 -2370
-7939 9157
-9535 -4902
--4716 -3077
-5708 -8871
-4840 4741
--5927 8735
--470 9449
--7035 5587
--8390 -9787
-9472 -3129
-8563 -9775
-5667 -3422
--3792 -5497
-537 3498
-8185 -513
--8554 -9684
--9892 -1341
-718 1975
--9868 5289
-3332 -9017
--910 6908
-5171 -5098
-8419 -2296
--8563 -9327
--8032 691
--5622 949
-2963 1344
-6449 -8503
--6980 -1655
-8667 9018
--8051 601
-4919 7953
-8062 9366
-2690 5023
--4369 -1411
-7177 3476
-4888 -628
--4925 -5217
-4593 -4906
-9260 2427
-4296 -8371
--4231 -1728
--2303 -4899
-7489 -4448
--27 7643
--8115 5340
-7370 8782
--9014 -691
--6096 -5191
-85 -1853
--4009 8054
--9236 -7980
-4352 2967
-4784 -5919
-9515 -345
--6092 -8627
--2857 -4315
--4554 1126
--409 -8801
-8397 2999
--4035 7024
--6965 5960
--7658 -1175
-550 3181
-4499 6465
--5283 -225
-8708 3754
--8359 5175
-7323 -3798
-7473 8533
--4739 -9885
--7936 7605
--6306 4561
--5496 -8566
-1808 3577
--8092 -4233
-7357 5961
-8264 -3587
--7263 2184
--1029 7876
-4789 -6643
-1883 -2221
--3647 1754
--7295 2715
-8717 -4336
-9642 3860
--1220 6358
-6211 -6470
-8379 -2235
--9749 -9691
-141 -2709
--2414 -2212
-2806 1279
-8489 4258
-5009 -4036
--6835 -5080
-6937 1811
--2677 1896
-7680 5993
--6156 4593
--5422 5857
--2128 6359
--9978 436
--1236 7313
--3202 5122
--3079 -8039
-3937 -1003
--3431 -8846
-3599 429
-8635 6233
--4206 -1039
-1726 -8615
-5441 -8743
-6441 2761
-3686 3383
-8957 2446
-7074 -4799
-6906 -6252
-7344 9406
--2172 5500
--9481 -15
-5259 7474
-8909 -8042
--4106 -9705
--3158 274
--600 6185
-5735 -1013
--3652 251
-3924 8439
-121 -7433
-9519 1292
--5794 1449
--1699 -9229
--1228 -291
-9669 -6763
--1855 -4313
-1014 -2173
--1999 2232
-959 8735
-8238 3943
-9485 1673
-733 331
--809 7268
--8912 -8485
--710 -79
--3772 3575
--1861 -1860
--828 415
--1550 -4059
--6176 -3053
-9309 -5371
--9609 -9183
-3192 8683
-60 -8584
--1148 -9628
-4417 -4258
--7127 7615
-9571 -1887
-5853 -4693
-3166 -8888
-6094 -7649
--2760 -2831
-2980 -3830
-7034 3136
--4553 -2803
-2911 505
--4815 -9301
--1576 -1236
-8682 -405
-5740 9196
-815 -4301
-9694 -4764
--5101 8626
--7933 4763
-4482 -5202
--3059 -1356
--9926 3527
--2897 487
--1688 7914
-7413 -4612
-7451 -413
-188 2231
-954 1796
-3265 336
-2476 -2743
--9292 4552
-9630 -3876
-2586 -4203
--1819 -4606
-5979 -7719
-762 -535
-5288 -6467
-5639 -5540
-9012 8570
-9448 7578
-9556 -3168
--5869 534
-5775 5202
--8108 3165
-5842 -3893
-5695 5030
-3677 -7675
--5261 3249
--430 -6230
--8212 7392
--6997 -4741
--4728 935
--1958 -7003
-2827 4173
-9539 -1953
-1483 7274
--6459 8402
--6644 -1377
--120 636
--3599 6037
--6186 9561
-3198 8092
--5792 -4514
--2724 7765
-8241 -5362
-5221 7980
--5795 -4899
-230 -6956
-7086 -2299
--2034 -5351
--349 -1829
--5366 5229
-2297 -548
--7698 -1431
-6884 -6036
-3271 -6817
-8843 892
--8793 5859
-3447 -9845
-1847 -6205
-6498 5162
--5186 -4439
--4735 -113
-7189 1128
--5850 -4343
-4048 -9557
-6701 -6907
-5902 -2573
-6158 121
-6288 3177
--1068 -4887
-6983 4180
-9880 -7723
--311 623
--3263 8970
--5585 -7379
-2789 7487
-4002 6512
-4604 9759
-7009 1548
-3254 6344
--278 -6669
-9713 4364
--3123 7687
--5739 7238
-1337 6764
-7634 881
-8086 -3512
--6807 4790
--1389 -8269
-8091 -71
-5183 3698
--2965 2757
--4099 -9957
-2062 3158
--4098 4177
--3914 9805
--3320 9457
--5862 -1912
--6136 -417
--1225 -6483
--3009 6715
--792 -9280
--3058 -8321
--4808 -6867
-3656 5087
--203 -2434
-7238 4217
-5775 9635
--6406 -8139
--2874 2601
-599 -4546
-6747 7215
--387 9574
--7229 3682
--4103 4281
-2843 1577
--8099 5416
--1756 7506
--6794 8575
-6521 -2566
-40 -8114
-7573 -1040
-3329 8985
-4423 3282
-6086 -2263
-9209 -3510
-8105 -9860
-698 -6414
--9371 -2691
--9859 -187
--423 9915
--5961 8775
--7779 8917
-6502 3782
--6227 -9122
--8397 -5814
--8199 9969
--8129 -7152
-7563 -5289
--166 -5701
-3350 -5047
-4703 158
--9744 -294
--2414 -5753
-8614 677
--6543 4828
-2297 -3148
-9436 6590
--8681 -329
--1862 2860
-7366 3302
-6310 -5793
-1203 9353
--3783 -7614
--9433 -3336
-9426 -3005
--9456 -6029
-2604 3366
--5993 -427
-4707 -3132
--4725 5505
--2789 -2193
-9725 749
-3130 -6421
-2694 1298
--7051 5927
-864 -1425
--6450 -7972
-945 1375
--2423 6863
--9370 2013
--9412 5686
-6465 9552
--9097 -6092
--1495 -1516
-5001 4217
--2467 9220
-7748 -5582
-2740 -8493
-7312 3754
-5933 3478
--2846 1854
-6948 4053
--9941 -687
-1336 -2327
--485 1923
--5093 -6712
-6708 976
-2362 4400
--8463 2388
--1891 -5307
--4363 6375
--8828 7562
--8539 3491
-1316 6768
--5748 828
-3927 362
--9686 -6105
-7610 9134
--2610 2583
--4719 -8762
-6108 -2619
-7393 -9054
-4842 2806
--5610 -3366
-2579 2275
-2242 8036
--7356 -3993
--3123 -151
--8633 8555
-4889 4075
-4302 -2524
-8985 -5877
-3495 6633
--7747 8092
-570 8376
--9172 -3455
-2493 1264
-7818 2113
--6943 -1933
--8899 5028
--5607 -9599
-6088 -6846
--5779 -9015
--6430 -3345
-8390 7352
--2703 6028
-2782 3497
-6599 9193
-999 4738
--5310 1852
-5846 -4851
-5527 -7494
-5268 3998
--2913 6339
--1490 -4554
--7042 -5939
-5017 3390
--7020 -3890
--4571 -6600
--3212 4787
-86 8251
--6403 2049
--4948 -4663
-6697 -6165
--5591 -9604
--3874 -2239
--5390 -3553
--2919 2759
--2246 580
-2476 8054
-4675 7091
--22 -5936
--3420 5818
-9638 -1055
--4363 -8155
--7300 -4771
-3474 -5657
-881 -4724
-8692 5384
-4135 8851
-6969 2041
--4204 -1075
-2713 324
--9979 -1578
--4601 -8848
-7020 2542
-6266 670
-4621 -5759
--8764 -8675
-318 -220
--3008 -5822
--5219 5400
-6050 -812
-6567 -9175
-4453 -772
--1274 -8190
--3075 -769
--4567 9563
-9802 2740
-1523 9216
--3813 -785
--6494 7462
--7118 -8149
-5552 -2264
--5374 -5564
--377 -7902
--6367 -7790
-889 -1780
-6965 6488
--4084 3008
-8242 -1939
-1694 -8154
--3783 1018
--66 -249
-4300 -7710
-4819 -4285
--7961 -2529
--248 816
-8253 -4956
--4161 -5102
--4569 -7701
-6573 -3460
--8960 -922
--1222 5432
-1543 -3714
-1595 -8143
--6817 -672
--2086 7824
-9676 -8380
--2890 -4886
-5575 6898
-7918 4786
--9120 -2126
--5076 -4279
--3621 -4076
-4814 7119
--8343 -1348
--5989 6971
-9164 -316
-3575 -4447
-621 2510
-7677 -5061
--2932 -3040
-3894 -8821
-2601 -4782
--8427 5948
-3158 -5277
--4195 -1632
--3183 -6198
--4951 -7358
--6898 -1028
-7497 -8556
-3203 -4315
--7733 6382
-1884 326
--9438 4639
--4695 1612
--2158 -4526
-1771 2777
--5787 2183
--4661 2023
-6689 3897
--7575 -3409
--4063 -1989
-3516 -574
--4074 9360
--8025 -6204
--3828 -6327
--2393 8347
-5567 -9946
-5950 5344
-49 7360
-8784 -7201
-4207 9394
-6258 6685
--2542 -2980
--5137 -4749
-6079 4699
-4217 -4516
--6013 -9295
-8744 -9037
--6815 -242
--890 5375
--7616 -5620
-1295 5334
--6479 3665
--6319 -5544
--3595 8052
-1803 1595
--6593 -491
-1305 6596
-3592 5195
-9926 -1758
--8383 5330
--4827 -5162
-4635 4384
--6586 -1515
-6314 -4736
-2966 -2229
-8847 3256
-8747 -1681
-5845 1231
-3313 7200
--4217 8471
-8223 -7864
--4639 -3951
--1985 -8119
--3253 -9003
-1380 -8849
-4043 2705
--2870 590
-3986 45
--7740 -8964
--3609 1725
--4203 -9383
-990 -3689
--1041 -589
--295 1719
-68 -8613
-3476 7416
-3266 -1431
--5924 -9653
--5458 -3130
-976 -9463
-58 2959
--9272 326
--2898 -6753
-4949 9257
-8194 3150
-2906 -5916
-1768 -5697
-7812 -4315
-192 -9864
-9606 -9460
-775 -696
--3666 -7641
-6544 9606
-3480 5960
--1072 1098
-6944 9938
-8248 673
-251 -6950
-9508 9734
--6222 -1974
--5554 -56
-4430 -9284
-636 7904
--5287 1578
--159 7066
--5214 3999
-4712 8649
-1901 -7189
-7601 -5700
-787 -7147
--2803 9544
--8337 -5603
--8296 7567
--6186 -6296
-1787 4330
--4835 -2865
--6297 9312
--4376 -7692
-526 -5095
-5757 6563
--7406 2629
--260 -5427
--838 -1084
-2907 -9047
-2170 -3827
--6698 2114
--6558 -1864
--8177 -6497
--1703 345
--9224 -6494
-8796 -7851
--7998 -582
-5859 3639
--5218 -9691
-9987 -3618
-7138 -8070
--800 -6228
-5731 -8891
--8756 -3705
--7234 1782
-7554 236
-3478 8612
--1668 5137
-8541 -5512
-1091 5346
--4592 900
-4175 6407
--304 4591
--3394 3590
-5694 -1102
--5952 -9210
--8121 -822
-5372 1445
-4899 -8873
-1282 4310
-6815 -7045
--6171 887
-1687 4430
-256 1759
-3332 8256
--8132 -4686
-3824 6792
-6279 -9759
--6187 -12
-533 3388
-8623 6044
-2162 -6158
-7213 1054
--8267 -9959
--4295 -2517
--5192 -9968
--2584 -2169
--953 8359
-9306 -74
-1817 -1196
--2478 -6151
--864 -9538
-4339 -2788
--5815 3279
--427 9849
--6003 7715
--6846 9462
-1225 2266
--9556 6155
--1802 -8960
--7641 4760
-3489 -8362
-4168 8507
-8963 1065
--8212 -6190
-4465 -2464
-5122 7999
-7869 -1615
-4543 168
--9381 -1752
--6964 -4427
--4572 1419
--3367 -6266
-6658 -453
--2250 6503
--5721 -1607
--6756 6231
--5761 -4611
--1595 2539
-8020 1072
-9927 7437
-9640 -90
--4110 8054
--917 2771
--7504 -4507
--5138 -6547
--1320 -382
-8995 -4205
-5858 -7033
--4 -646
-1422 9521
--4949 -9574
--6457 -1119
--760 -6315
--7147 -7292
-8825 -7000
-5720 -2574
--1405 4886
-2280 -6083
-968 -962
-7961 -1775
--4966 6750
-4090 -1974
-6399 7544
-1772 -6933
--8316 8626
--2462 -9289
--434 -4658
--9497 9541
--656 2077
-2021 3152
-5224 4840
--8635 274
-6350 2655
-1354 353
--6924 9293
--2102 -3867
-7960 3525
-4792 9339
-5582 -9506
--5270 -4028
-8755 219
-1972 9375
--136 2167
-3662 -3225
-9711 9916
-4588 852
-9670 2222
-422 -9036
-9599 -6088
-859 -1248
--7353 -600
-339 -7284
-1215 -198
--2993 -5447
--8390 -3522
-4970 2671
-1905 -4152
-8569 -3689
-9112 -8517
--766 -913
--9564 8008
-8707 9778
--3517 7793
--7207 1002
--4448 4722
--8676 -8610
-3856 2766
-9110 5376
-4495 -1006
--6415 8462
-9035 9380
--3382 -4149
-7299 -8267
--7773 -3546
-7954 8283
-6543 4850
--671 2843
-2005 824
--7112 3600
--2997 7650
-2076 8938
--9827 2298
-9252 -6051
--4944 4957
-7718 -646
--7365 4033
-8871 -6954
--663 258
-5308 -2296
--9714 -6622
--4959 -3274
-655 -5938
-7029 -9291
-2316 5292
-7054 5030
-3316 2631
--6872 6194
--700 5476
--6771 -4472
--7276 -3754
-3485 7305
--387 6646
--9245 6055
-6973 -7608
-5336 5106
-7211 -3133
-2581 9135
--9375 5327
--7038 1186
--193 9830
--3477 4631
--1937 -9057
-2682 5192
-8526 1438
-6994 8903
-8456 9687
-1000
-5539 8108
--9990 -9947
--7316 5712
--400 -2172
--7535 6997
-4232 1944
--2864 -6756
--808 8177
--1046 3585
--105 1011
--4953 -8920
-6884 -9285
-2208 5678
--4266 3343
--1851 -3379
--2818 6960
--5420 -5886
--4202 9520
-4514 -488
--5135 6533
--5691 2608
-3602 7349
--3987 -4
--5384 -5462
-814 -2602
--7710 -6792
-5310 1990
-506 -2361
-6167 6980
-1846 -9028
-207 2559
-7869 -7050
-2808 -1197
--5147 -7713
-6873 890
-6185 -4826
--4574 -550
--175 -1126
--800 3000
--923 5553
-6352 4535
-9132 5410
-8198 8810
--9235 2636
-1248 -1940
-1645 2038
-6197 9856
-6852 -1957
-4605 6079
--1255 1540
-4474 -4853
-1370 -186
-7132 1486
-828 -7016
-8029 -1224
-8475 5867
--43 1050
-4155 5583
--9540 -5914
--104 4702
-8064 5940
-1868 986
--8721 -9077
-8087 -1155
--8048 2883
-449 5480
--9723 8328
--5452 -5076
-5569 -2885
--9058 -6528
-2172 7934
--5116 7339
--224 9522
-9054 -5884
--9274 -1803
--6408 6974
-6733 -2058
--2066 4994
-9020 2492
--5123 4971
--1769 -9279
-9392 -6353
-8953 -550
--4066 2173
-2281 -2196
-4002 -3344
--8897 -1710
--3796 -8276
--2617 2817
--2759 4044
-8794 5662
--7796 -4778
-4327 -2153
-5640 -6123
-4873 9505
--7894 -3504
--9897 -7821
--6032 -7863
--5285 7819
-8983 6931
--8636 -8910
--6515 -6826
-5843 2039
-9074 -2511
-4683 7732
-4531 2786
--9718 1934
--7124 -5345
--8919 -3467
-384 310
--8228 1562
--5011 -9900
-4312 -5351
-8424 -5480
-1728 -7519
--4056 7332
--8527 4509
--2433 8809
-7724 -8336
-4560 2222
-8457 1646
-8052 912
--2440 -4856
-7263 -4259
-6231 -3504
-2906 -6410
-5610 -320
--6048 6307
--6327 7392
-4615 -7227
--5413 36
--8995 -8078
-5290 7514
--353 7903
-7950 -4390
--7335 84
--4454 -1011
-3144 4073
-9498 -8211
-6697 -7886
-9214 4316
--7094 -7249
-3682 -9384
-5973 8633
-1895 7537
--8042 4076
--8916 -4517
--2080 3206
--2556 9168
--8325 -9655
-8277 1313
--3386 7348
--8823 -8430
--1630 -7144
--5451 6906
-1938 -796
--2660 79
--1506 5397
-3941 -6685
--1221 -3549
--8934 2639
-1563 9979
-5160 425
--1792 3086
-5535 4402
--1153 4476
--9558 2008
--2871 -1782
--6208 -6778
-7146 2535
--9874 -8529
-4523 -4056
-5603 -6845
-4266 -506
-3137 -1094
--9019 1192
-5100 6265
--8732 3542
--3981 8178
-728 -6825
-7203 723
--9188 -1198
--6035 2051
--4856 -2134
--4895 -117
-2516 9325
--2813 599
-7189 -8226
--2906 -318
--1106 1574
-9942 160
-6205 9660
-8823 7654
--8323 2266
--8596 9595
-1776 2525
--7610 1654
--5928 8376
--6875 -4892
--6953 6261
--1902 -3087
-6095 -9912
-6863 -1618
-2649 -6929
--8358 478
-5536 -4514
-2074 1268
-7646 8557
-6509 2534
--5809 -6304
-5126 673
-7094 -154
-8591 908
-1617 3772
-7282 -6348
-3465 8716
--1213 9353
-1960 9258
--1950 2092
--1502 2486
--2288 -4018
--829 -9344
-3223 -42
--5458 -6786
--4325 5761
-8170 2260
-6639 -593
-1184 9543
-9962 -8654
-8506 -2547
--6766 -3820
-390 -1794
--7161 -3205
-1336 2415
-5381 3268
-1478 -5250
--8877 -8412
-4 4059
--6081 -8913
-2165 2147
--1249 6809
-1966 9207
--3729 1218
-5985 -5952
-4620 -8908
--8934 -1193
--3003 -2584
--2655 -7525
--4265 9116
-7280 -5623
--7268 -4773
-3294 6504
--7271 7224
--757 1023
-1286 -2504
-4695 -5348
-7276 -5157
--1541 102
--8538 5306
-3383 1518
--9537 1142
--5800 3524
-3045 -4304
--4929 -800
--252 3547
-998 2197
--2412 8506
-6685 -2151
-8848 -6758
--3666 -7119
--5435 3106
-2661 -9280
--2621 6839
--1958 -7856
-5153 -6512
--6336 977
-6259 -5730
--6910 -402
-2141 5987
--438 3960
--7431 -9471
-9250 9278
--9559 -7023
-1725 -1761
--4465 9032
-7591 -2320
--8573 -5028
--2390 4815
-9219 60
-1048 6868
-6290 3492
-7007 -1461
--4257 -6170
--7041 -636
--862 5448
--8075 9250
-6473 -9644
-322 2836
-5278 7915
-7644 -143
--9384 -8276
--5814 -9601
-2344 7275
--1157 8217
-2090 -9898
-3108 -9030
-3957 -62
-8755 4117
--8307 2557
--2597 8254
-1684 139
-2848 5950
--9552 6479
-8608 -1478
-9867 344
-9094 8070
--8952 6036
-42 3476
--5396 9482
--1918 -3140
-9143 578
-8392 -4135
--25 4423
-1857 4143
-2447 -9349
-9091 7424
--7627 9769
--8358 8602
-7349 -5995
--4044 -542
-3106 -8170
-2369 9753
-1988 -4790
-9204 6269
--4678 -4320
--8842 -5634
-4762 8907
--8272 2889
-2454 2711
--9274 2173
-5418 -9111
--3239 -5303
-201 2657
--1199 8562
--3280 -6739
--3584 2403
--3891 -5934
-9833 -4658
-3267 -947
--442 221
--5607 -6059
--7388 9994
-2983 -5069
-9442 -6996
-2356 3324
-9 -8298
-7206 -7048
--3598 7852
-6377 2371
--2316 3441
-8230 -3455
--3515 1663
-4036 703
--6150 3227
--7070 9367
-2972 2950
--3237 9429
--2098 -4549
--7845 -3373
-2132 -9828
--872 174
-2588 -4565
-177 9255
--6000 -3776
--439 1405
--3384 343
-8261 -9537
-8497 -4454
-8486 -7646
-8321 -7067
-4559 3637
-2204 1180
--1164 3033
--3793 9601
--3687 6407
--2065 -7979
-6692 7893
--6865 7826
-6159 789
--3374 -3887
-4531 8670
-3649 -7479
-9256 3189
-3038 7013
-8629 -5153
--5537 -3810
--2215 2735
-8624 3432
-8817 3215
-3551 -3535
-8560 7574
--8498 -4615
--5829 -4435
-3357 5734
--6631 -9961
--2758 3610
--2770 -1320
-7734 -3216
-6419 -6410
-6241 706
--8972 -9985
--4748 8453
--7542 803
-4538 2494
-7866 -7089
--1129 3580
--9696 -1695
--4847 8365
--2909 9314
-618 2654
--4012 1841
--623 5607
-6598 7313
-7936 -8280
-6349 5032
--9214 1028
-4737 959
--6164 6262
--5981 2050
--1779 9397
-1738 9951
-8071 -3458
--8011 -3494
-7833 -7972
--1319 9885
-3401 -1653
-8508 -2707
--8473 -5852
-388 -7424
--4367 8948
-3112 -8097
-8615 1493
--8290 -2635
-8181 -7840
--814 8742
--8701 -323
-6081 -4695
--4312 9147
-5412 -8276
-9969 4543
--3296 4136
--2190 2699
--4737 -6171
-706 4855
-9696 8680
--2335 -3392
-2406 -8404
-8209 8017
--9815 -4175
-6373 2482
--8163 7899
--7976 9344
--4405 -4150
--7786 3543
-4631 -2260
-5704 5342
--1164 -8873
-6840 -3976
--3789 -9433
--1614 328
-5058 5861
-2282 -283
--7604 -5474
--6383 -9658
-299 9198
-1629 8476
--4161 -2836
-1466 -455
-1515 -3253
--4646 -8984
-8698 -5272
--9042 -8814
-8092 5926
-57 7315
-4366 -5543
-710 2154
-5639 8948
--6678 -2570
--2373 -7889
--7919 -922
-8819 -9007
-6547 -7371
--2672 -9805
-9725 -9613
-8913 4861
-5488 -1608
-5343 -4379
--6641 -9732
-508 4531
--9488 9206
--628 9120
-8758 5406
--6742 -2971
-7253 -1842
--8597 -5685
-1167 -8934
-4148 1915
--2520 -2722
--7554 -5755
-890 8378
--6705 -4567
-1135 6596
--1005 -8983
-26 1705
--5677 3932
--4635 -5124
--5693 2311
-5357 8858
--4512 490
-9394 4836
--7050 6142
-9640 -6392
--4667 -9177
-5084 5103
--8340 903
--7788 -3582
-9887 4682
-1718 2610
-6428 -7279
--7623 5740
--9608 5862
--4053 -141
--7908 9470
--7538 -1388
-7503 -1899
--6143 2135
--4435 -5213
-8770 -4937
-3365 -7925
--9168 7400
--6510 -1767
-7297 91
--3258 -3046
--1537 3895
--3250 5528
--9158 -1130
-1584 4355
--4650 -2163
--2044 -3754
-9991 1578
-7902 3552
--516 -2601
-3493 -92
-4364 4540
-7031 8060
--5073 -8131
-5763 1820
--1685 -6343
--4436 -7186
--5552 -5032
--7964 -7332
--8352 -4457
-588 -3966
-4496 -6106
-4250 -605
--7276 -5411
-2728 9317
-7341 -8373
-1003 3607
--9059 4572
--7750 -7834
-6043 2064
--444 -8989
--8940 -5680
--1925 -9991
-811 3550
--5003 -5275
--5602 -5688
--9576 6139
--9268 -1767
-8548 -7360
-533 -5895
--9530 -8159
-501 -8677
--6979 1803
-8770 9678
--6637 -7477
-9217 -4205
-4007 -7762
--4768 8966
--5957 -5357
--9492 -3188
-8273 3913
-9438 2687
--4813 8892
-555 -5689
--4183 -2865
-6173 -3761
--4457 -649
--3734 -3841
-3339 -3800
--6175 -613
--7434 -9933
--7335 -5003
-2810 -2849
-5777 -1813
--6080 -7267
-6740 414
--2830 4684
--7268 1693
--765 7460
--89 -1571
-6674 7128
--1600 -4315
--3250 -1364
--8063 7640
-8133 -2565
-3736 5395
--7235 9430
--1397 -9316
-1805 1323
-1689 -7862
-9930 551
--7528 2110
--9290 -7855
-9804 -1955
--5890 8658
--5786 34
-1840 3710
--5409 -5219
--7048 6618
-7483 -20
-2180 8909
-4144 9536
-3239 -3178
-2109 -6305
--3728 -6990
--1405 7386
--877 -4075
-5978 -5226
-2449 -2861
-2079 -6768
-7129 -3698
--2342 -7758
--6829 -1068
-5858 947
-845 7548
--6926 -7762
-5712 -1032
--3328 8866
--5440 -6602
-7747 8288
--2725 -8764
-7510 -2942
-2426 -7393
-6575 -2800
-1379 -5099
-8236 6164
--6954 1965
-5192 -7234
--9991 -5480
-227 2406
--6249 467
--7105 -7948
-9009 -1389
--2337 -6762
--3552 7920
-4601 8261
-7308 7103
-1787 -1019
--3067 4513
-9122 -455
--2614 -829
--3646 -7733
-742 -5677
-963 394
-9348 7265
--2838 2970
-674 -8127
-8676 -6454
-6903 -6950
-4288 9933
-2416 5318
--4788 -5165
--1535 1861
--9923 1993
--99 -2086
--6101 175
--8572 -6162
-9192 -7471
-8932 -6330
-9611 2808
-6911 2015
-8859 4881
-2874 5453
-8091 2208
--6060 5597
-3155 -2235
-5421 -7104
--3287 -4132
--3912 5920
--7709 9239
--4114 -4493
--392 6504
-4504 -6547
-6886 6803
-5678 4407
--8724 -7863
--2188 4520
-7975 7076
--1784 -2641
-8352 7036
--7134 -7290
--8626 -2525
--2610 68
--6260 -9263
-8144 8984
--7992 3896
-9897 -7297
-8968 -8479
-6184 -3553
--3919 5468
--1383 -3775
--5986 5677
-8606 6752
-8732 4632
--1276 -2228
-8947 -1928
-4730 5324
--9397 -6549
-8154 4339
--7113 -737
-7190 -9022
-5030 -678
--5183 4315
--717 7478
-6393 -2047
-8286 3412
--3 -7672
--2110 -5022
-8643 4648
-3049 5523
--1899 -4169
-8298 8934
-2166 7934
-4573 7917
-2792 4213
-6152 -7723
-1998 -5395
-1012 6459
--7688 3551
-7717 6633
--6975 80
-7496 -2186
-1475 9306
--1315 -995
-428 -165
--7745 5659
--5256 -5963
-3795 5242
-6115 -9751
-9377 9904
--5317 2453
--1388 3847
--4746 3625
-4025 -6152
--5543 -3014
--9560 7908
-3232 339
-149 489
--8658 7456
-8412 -9428
--8856 -9197
--942 -6316
--8580 3807
-9234 -3132
--4899 -1167
--8867 -9834
--1509 6365
-5736 -2668
--4359 -964
--3776 -8683
-1914 -6548
--7103 571
-7724 7047
--3589 -3707
-2093 7879
--7081 -6667
-3378 7189
-1303 9198
--5070 -5306
--9380 -8366
-7428 9404
-8839 9617
--8411 6922
-256 -5444
--2443 3631
-4362 180
-3910 -7912
--4153 9441
-7158 1531
--4476 -7081
--6426 -7258
-8709 1438
--4320 2240
-1224 951
--8341 132
-618 7027
-2752 -9982
--2114 146
--8622 6548
--6078 -431
-2616 -5664
--7558 2149
--6815 7794
--2388 -5621
-7730 -2849
-2048 -6787
-3353 -2729
--2891 -3966
-8203 -5606
-6444 5480
-339 9243
-4346 -9509
--5669 -5704
--7373 -4333
-2357 -8887
-5809 4308
-2885 -1736
-509 -7887
-7946 -6534
--3022 4221
--3060 -5387
--2549 818
-6683 3201
--5959 -9371
--6223 137
-2338 -8404
-9668 638
--8915 1250
-2074 -3966
-4210 -9523
-4358 -1237
--9187 6523
--2983 8418
-1639 5492
-8448 -5486
-7677 6415
-1694 5804
--6979 -3502
-6223 -5718
-6015 5470
--3628 -7624
-66 883
--9156 -3938
-6855 -2052
--5724 105
-4908 7455
--6734 -736
-1730 -6547
--2133 9173
-6157 3007
--7796 -5961
--8737 -6498
--6034 8216
-2913 -464
--6020 -2806
-6443 5814
-1787 4934
-1711 9995
--6799 7623
--247 -5746
--9553 -4959
-5407 -8101
-8732 -9230
-2467 -6204
-6564 -1909
-187 -9045
--495 -7714
-1916 1127
-7978 2525
-4995 1214
-1793 -7854
-2590 8946
-4802 4862
--8304 329
-8282 17
--2165 -2217
-3788 7827
--9869 2913
-4064 3300
-6326 471
--5917 -3031
--6839 -7143
-1397 -1799
--5347 -7302
-8989 -6375
-7185 -2421
-2368 138
--7099 -961
--2991 270
-8219 -3759
-178 9865
--6440 7484
-1158 5851
-4192 -7479
--9209 -5039
-6877 6030
-2454 -4252
--8811 -5839
--5740 -8415
--9771 9990
-5696 -1059
-7606 -4165
-6948 -7858
--9843 -7708
-7597 -8266
-4074 -8555
-5298 -1671
-1605 -9491
--6398 -9048
-7175 -9383
-3603 -7506
-386 6931
--9211 -4530
--4503 9274
-4990 8236
--1420 -7638
--7620 -1271
--7856 9821
--3774 -6955
--447 2779
-4869 6473
--8937 -8586
-6006 6953
--6072 946
--3021 -7603
--2399 5259
--6708 -7399
-5152 260
--7459 -4063
-8521 8015
-3528 7744
-5074 9307
-5531 -8135
-6837 -4855
--4956 -298
-5646 2950
-5270 8789
-6717 -9017
--9405 3544
-1496 -873
--4516 2844
-3118 8898
--7925 4094
-6202 -7472
--3013 7688
--7 5698
-1438 -5066
--7041 -5376
--4422 4271
--295 -7143
--9741 3654
-4376 -3823
--3994 -399
-2168 9084
--1627 1742
--9613 8319
--6115 3258
-4313 -6279
-5397 1812
-8954 -5303
--8609 9716
--1210 5193
--8654 -7520
-864 4767
--6437 -9118
-4255 -7875
--4069 -5799
--621 -483
--1083 4207
--3699 -3352
--1865 -5680
-7306 -5272
--5285 -1510
-1164 1078
-8238 327
--8029 -6514
-2314 -1564
--1962 -6535
-8469 -7944
-2160 2089
-3893 7383
-2678 3164
-3023 9340
-1115 -3713
--3386 -107
--9894 -2328
-2790 -9199
--1366 -243
-1000
--9560 4040
-2517 -2855
-1283 1183
-8301 9988
--9213 3703
--550 -3399
-874 -2612
--1813 8804
-9174 3759
-5482 2996
-3085 3027
-553 8871
-5606 3008
-1184 6904
--9084 -4085
--6990 8920
--5883 178
--831 -1571
-6159 -5022
--1319 -410
-5954 -9587
-6411 -9681
-3667 -8212
-9939 2004
-4387 6356
-526 -6850
--1959 -475
--704 9830
-4178 -8976
-4560 -3846
--349 -8543
--3949 7218
-4067 381
-5390 -1856
--1878 -1670
--9613 -6571
-5102 -9277
-7357 -7560
--9258 -1933
-9614 -3692
-3723 4744
--778 1400
-9455 3891
-7883 -9755
-4462 9694
--7768 -8570
-4689 -1530
-9291 5419
--1895 -8672
--1664 6455
-9515 -3693
--2473 948
--5962 -5095
--4078 2287
--2359 -9869
-743 1737
-5521 5788
--5861 3292
-5032 3395
-4619 3795
--8017 -7740
--5808 -9571
-827 6649
-7973 4105
--7335 1937
--1082 8038
--4023 -100
-36 4200
-9048 1516
--1190 -1867
--7665 -9718
--889 5267
-7778 -8858
-4767 -3748
--3824 6782
--9688 7709
--4696 -3357
-6600 -3776
-3474 1905
-2294 5163
--9558 466
-864 -7705
--8994 -9192
--2966 -5379
--3432 -6082
-851 -1606
-966 3229
-892 6674
--2673 1548
--6899 8921
-4629 2190
-4210 443
--983 6306
-547 2951
-9950 6431
-2167 -7601
--6971 8378
--987 9569
-3945 2621
-587 6233
--6451 -8068
-6820 1689
-8540 5675
-5547 -9937
--8502 -3459
--48 5708
--2932 9058
-2120 -9643
--6576 -9401
-2614 -9775
-3882 -2331
-63 -7105
-1371 -1440
-5193 536
--6202 -4255
--9510 3517
--4806 125
--5795 -9323
-7254 -7425
-229 4667
-2119 3624
-3860 196
--3603 -5724
--2952 -4442
--23 -9239
--1284 4202
-5346 8220
--456 -2424
--7006 -5256
--4985 3467
--8982 -6379
--6728 3710
--3470 -7083
-4755 -6188
-4361 5576
-1581 5335
-8391 5862
-3383 9393
--1596 -4647
--8218 -4908
-8350 1310
--9548 -8283
-606 7925
-2129 -846
-5399 -9703
-7376 2918
--1818 -791
-9621 1386
-9269 -6769
-411 2489
-1417 -1776
--179 -8603
-2039 -5725
-1263 -4916
--8631 -9644
-6103 -1710
--7314 -5024
--4754 -7299
--9405 3050
-2298 5808
--4940 3917
--1584 -5554
-5168 4982
-434 -3152
-9910 3558
--203 2128
-6021 -8630
--1484 -2052
-7040 7877
--8087 5119
--2532 7245
-9874 7469
-2209 -9866
-1876 1296
--3093 4923
-1768 9410
--6832 -8904
-1256 2985
--5519 442
--7296 570
--8301 -330
-3042 -2580
-7060 7782
--112 534
-3036 -8347
-2222 3977
-5123 -8146
--6965 9351
--4947 -643
--9818 -6832
-9527 7087
--6088 7408
-1219 2506
--4038 2745
-9298 6753
--9580 5332
-2425 8634
-3553 860
-375 -7795
-1623 -7216
-8729 -1659
--7197 -9545
--5418 -3718
--8095 -4574
-2170 9852
--9341 7385
-9397 -668
-6109 -8081
--4805 6090
--6168 8284
--4984 620
--3580 -8313
-2409 -7462
-1868 7607
--8355 -5469
--5721 -1376
-9318 -3313
-8526 -8302
--3580 2419
--8956 2339
-489 -9433
--2433 3032
-6034 -9012
-4936 5721
--8429 -8289
--6660 -928
--9740 -4510
--5588 426
--8445 -8702
-328 -5412
-4276 -1675
-7319 -4555
--189 5483
--4145 -9490
--1755 -3886
--1961 8505
--9969 7307
-9157 4187
--8097 4304
--5352 1059
-910 1139
--823 4969
-7021 9391
--1413 7936
--2760 -2403
--2952 -7046
-1631 -9529
--5392 -133
--301 7134
-3999 -36
-4837 3880
-3258 -7152
-1448 -7074
--5986 9057
-4786 -2888
--5764 -6791
-3156 -9058
--8819 5458
-1478 8515
--930 7302
--9031 -2756
--967 -626
-1560 7800
-760 7831
--8103 3649
-5152 421
--2888 5237
--7603 -7893
-9138 4384
-2408 -5678
--345 -4209
--4002 2216
--6410 1187
-6166 -9621
--7193 -9293
--2910 3229
--4937 4364
--1525 -5233
-5750 8298
-3208 -3247
--7029 -5290
-998 202
-1050 -726
--7328 1905
-7881 8764
-9880 1376
-1294 -9766
-337 -4681
--1855 -3251
-3859 -2569
-4646 -7991
--5852 4613
-7394 6754
-7652 5356
--8617 1580
-6803 4970
--6051 -462
--7488 -3135
--1918 6933
-8733 -4165
-2112 8079
--4885 -4404
-1197 -8208
-5305 9442
--9890 -8316
-5505 -2602
-4041 4964
--1905 5897
--7438 -9821
--9 -9241
-8135 -8835
--8461 -8291
--1086 -4825
-6934 -9240
--3537 9300
--4210 -714
-7711 109
-5591 -7504
--5573 -8829
-6025 -1947
-3253 4121
--5142 -2213
--8777 -7562
-848 -8052
--5178 6801
--5973 9983
-5556 -6245
-5822 -9598
-7998 -1516
-9499 7149
-2181 3908
--992 2687
-6002 5198
--5627 713
-3388 -6715
-4313 5933
-8039 -4562
--948 -7199
-7123 -143
-2932 -7086
-1662 7974
--6200 6581
-9792 1196
-3279 -9110
-3528 3436
-4805 4939
-7259 -8237
-9530 -8195
--4443 -2825
-8849 5769
--2301 4309
-5890 7033
--9873 -3828
--7506 3508
-4627 -2194
-6741 4071
--5599 6710
--3770 -1994
--3513 -3296
--2118 6504
-7232 -283
-1658 -9946
--7640 -4576
--7069 1071
-5689 -7513
-5785 -4841
--4048 648
--8787 3134
-3600 6981
-5990 -8563
--6010 -4479
-5103 1832
--8813 7627
--371 -9414
-1191 -9649
--2164 3092
--8485 -4304
--8500 -601
--3791 1781
-3263 -2379
-2290 -5014
-9539 8686
--4540 -5270
-4846 1898
-5044 64
-3230 -8109
-4920 -2692
-9907 -494
-3022 6658
-7362 9951
--3083 7341
--7256 -3336
--7160 -2047
-1338 884
-3414 6668
-349 -3259
-9875 1039
--4681 -9429
-404 -4637
-6685 -55
--898 7172
-3521 -9561
--3779 4646
-4892 -5976
--2788 -411
--4419 -9887
--1078 8342
-5370 8225
-1339 417
-9816 5768
-4636 7120
--3397 -9945
--3880 9316
--9035 -2429
-4102 1229
-3499 19
-1809 8002
-2909 7647
-4021 -2123
-7175 7844
-9198 3022
-374 1154
--3709 -1461
-2692 7010
-4563 8085
--417 -9953
-5693 -8754
-5978 -4587
-2938 3924
--7508 -1091
--4145 7180
-289 502
-7961 -7126
--1819 -8598
-1049 -7767
--5203 2796
--529 -4010
--4742 8714
--6142 -9876
-5309 -7596
-7666 -6487
--6885 -2235
-579 -5631
-5391 -1663
-9117 -9720
--7393 -3491
-796 5647
--6681 9782
-70 -5020
--1106 -9096
-960 -2647
--977 -1557
--2000 -5181
--9399 6639
--6395 -9686
-752 8223
-4638 -7875
-5457 -6575
--6297 -2769
-4458 7724
-9949 5864
--9619 -7712
--2846 3507
--6528 -2346
--3672 2722
-4509 3962
-686 -5545
-6529 2651
-1740 4159
--3553 -4866
-1861 -8969
-2445 -9755
-1989 -75
--3080 -5348
--6115 -1888
--6600 -5106
--5440 9961
-9101 5091
--8703 9579
--3138 3550
-3989 -7028
--4330 1773
--2333 140
--2791 4824
-9618 -6840
-5569 -250
--4378 1776
--4223 -5715
--1253 -6085
--385 -6511
-2666 9604
-5859 5596
-5324 -4306
--9521 -4296
--6312 -5483
--7692 -8001
--9385 -3855
--3115 -958
-9080 -5109
--3442 -980
-6625 -6996
--5110 -8121
--2893 -7850
--7295 7942
-2536 8145
-3255 -4772
-4263 -4849
-4841 2873
--8426 750
--2057 -2192
-1946 -418
--507 9484
--7482 8718
-6977 6294
-561 -3871
--2914 -1900
--9274 -528
-1032 4265
-4313 -3599
--7409 8449
--8945 -85
-2825 -8318
--1637 7659
-3292 4827
--8616 -4092
--5357 670
--5826 1031
-5139 -5113
-1110 -2613
--5516 8345
--2844 7940
--5977 -929
--8223 -7958
--6782 691
-2298 -2541
--2281 709
-1003 3222
-8871 2401
-2258 -7138
-5329 3723
--149 2214
-6326 4617
--2852 -2480
-9782 -3859
--2499 -3597
-8212 -8943
--9244 6546
-8312 3850
-8987 169
-3135 -9272
--9738 5858
--3019 8913
--1670 -7593
--3659 -2440
-2236 5269
-7449 802
--3345 -3531
--3952 834
-8933 5395
--4234 335
-5744 -4581
--6553 8233
-1407 6502
--9868 -6549
--8409 -3112
-9035 9975
--1051 6114
-1185 -4940
--1082 -4871
-2781 -7237
-932 1695
--4759 108
--7116 -4283
-2963 1180
-7612 -9204
--5342 5708
--9445 -1880
-3891 9345
--3744 -4581
--1267 -9653
--3537 -7092
-6667 452
-6201 5480
--9824 -3515
--181 -8550
--8715 8089
--3782 -4029
--471 -8741
-5550 -7755
-8813 -699
--255 -1695
--5695 -8926
--270 -7999
-9972 -8269
-1931 -7918
--3246 1253
-9793 8155
-843 -6205
--9300 -5500
--5709 3928
-694 7020
--9223 7538
--621 -6673
--8892 -8628
-8005 -5032
-6444 3133
-5698 -4970
--3094 -5710
-6728 -9101
--1505 -9135
--7065 1915
-5888 -166
-2938 -9485
--5423 -2374
-6614 6010
-8388 -8764
--2103 169
--7032 3273
--6266 9954
--5789 -3000
-4322 1209
-3723 -3003
-4549 2718
-1776 -8418
--3114 3935
--2259 -5986
--5606 -9001
--5178 -2977
-5250 -5682
-815 -2935
--6992 -4826
-7988 -5687
--907 -6408
-568 -3820
--3369 2213
--9624 5813
--1119 -1592
--7785 -4364
-9575 -5237
--1197 3993
--8812 -9849
-4053 5133
--9249 -9806
--4003 -6918
-7369 572
-5253 -9509
--7295 -2607
--6852 -9245
--8354 -5273
-3352 -2042
--8985 2406
-4569 -3853
--9030 8565
--2448 2728
--2377 -5595
-8504 -2950
--5254 -5186
--3968 1154
--8597 -3019
--1577 -8561
--224 1999
-3866 -7604
-152 1779
-1903 -9581
--8985 -3049
-4235 -7711
-9244 -7359
--9346 5868
--6659 2591
-4814 -316
--8509 3106
--7449 5453
--4447 -5219
-302 -6216
--574 -152
-4718 -5544
--9873 -7870
-9725 8972
-1630 9051
-4386 1072
--3267 -9725
-8759 4734
-1405 -3222
-4494 4704
-8664 3708
-1466 -8361
-3591 -4703
--2628 -7181
--3136 2362
-3560 6167
-4859 -8379
--7162 -7938
--5943 1136
--8811 5497
--7559 6984
-2069 -6613
-3062 8964
-2955 6511
-8330 3396
--3602 -3392
--6357 8276
--1421 -9664
--8143 1927
-1099 1649
--17 8138
--5186 9343
--4767 -1406
-3098 6130
-6597 7420
-7444 -7790
-7359 -1479
--9596 2705
-7411 6776
-3771 -9267
-4778 -9188
-7906 -834
--7320 -55
-2902 3144
--6450 4080
--2171 -4127
--3245 -218
-4094 -2964
--9663 -3077
-9183 -2795
--5511 5842
-5034 7741
-2842 -5607
-8576 8643
-535 3535
-3534 -6426
-1306 -3057
--6255 2814
-7792 2683
-7461 7705
-8845 4556
--7839 5779
--3552 860
--7650 -9517
-6956 9926
--6436 8692
--4118 -8754
-3065 9264
--1619 8338
-4277 -2061
-3874 8813
-6169 6900
--3745 -1097
--8482 5960
--774 251
--5801 2402
--660 -5317
--8331 -9724
--4261 -6303
--4101 8182
-505 4010
--2838 3224
--1755 -4009
-1973 7116
--3151 -4977
--5208 -4720
--7737 1094
--8674 3920
--5886 220
-3446 -3012
-901 -5126
--5852 8071
--3285 4775
--4563 -3853
-8430 -582
-5921 1214
-7063 8072
-2959 -3776
--8084 5732
-9216 -9461
--69 -9186
-8392 3576
--7726 -5342
--8075 8805
--4733 -65
--880 6294
-3259 1525
--3638 -7409
--4244 -5463
--1364 5291
--7466 -7531
--5470 9489
--2580 -5312
-940 -6130
--4406 8128
--2213 7261
-9931 -5339
--8641 -598
--5793 -6662
--6654 1579
--4778 -1400
-4797 2365
--8024 9678
-4561 3166
-2484 -2615
--6732 9824
--9295 8878
--2483 8340
-4099 8299
--2587 9753
--7699 -3483
--4844 60
--4199 -2641
-5132 3773
--261 9643
--5787 -1919
--7501 -7366
-6868 -9242
--4700 2243
-8178 3788
--9755 3392
--8453 8010
-5143 -9701
--9966 7004
-530 -1341
--803 5935
--1187 -2939
--2723 -6012
-8271 -7760
-5171 5677
--9586 3880
--3277 -9702
--3811 9768
--2362 -4752
-8039 -4478
--2288 -2485
--920 -4181
-3126 -4715
-7976 -5283
-5267 4744
--8592 -4930
--5340 4873
-4983 -2755
-974 -5735
-3252 -8729
--5097 8132
-3791 5331
--1127 -646
--6337 -3115
-2577 -7794
-406 6477
-2364 1039
-2580 8492
-6044 -9109
-7655 -3579
--494 661
-2150 1288
--5133 -9479
--3403 4180
-682 -4476
--4048 9072
-1960 4134
--2325 -7008
--2074 -5049
--9317 -3070
-9243 -1205
--9181 5477
--5582 -6958
-7508 -7526
-928 -3703
--6992 8209
--4637 4478
-5510 -5885
--4128 396
-8280 4539
-2433 -9197
--2131 4302
-2452 -8693
--9885 -1286
--8596 -7318
-9600 2820
--7002 -5570
--2236 5069
--4893 -6226
-5343 -9565
-4644 4852
-6565 -962
--9210 -7526
--3306 7694
-2279 -4062
-6377 6605
-1653 -8770
-3653 1070
--6106 3666
-8194 -8483
-7932 6445
--6678 -7834
-6896 -9966
--2583 -741
-9554 -6797
--6711 2918
--6600 4850
--224 6903
--1342 3109
-4816 -4919
-4267 -7806
-544 2775
-6651 -9191
--617 -2539
--8946 5015
--3237 1573
--3640 1358
-3000 5265
--7600 -1728
-3892 4151
-169 5185
--1286 -7674
-9407 5273
--8057 -9515
-3500 -4798
--9574 -4944
--2825 -7271
--3898 -9950
--9904 -6718
-8543 -7534
-9404 -4745
-7427 5475
--1209 3376
-3153 -6256
--9569 -892
--2482 -7997
-2071 -5895
-8158 4199
-2996 -6086
-2001 -8377
--202 -6346
-7136 6543
--8621 4699
-5216 1970
--4222 -3038
--3941 -9987
-656 6894
-2143 -2646
--7982 -8862
-5314 890
-3386 -3940
-2752 -4415
-3578 -1046
-5106 -5337
-6056 -9555
--2850 -5974
-2489 8707
-831 -1880
--2900 587
-2535 680
--8443 -8234
--967 -8275
--8965 5059
--513 3449
-8121 -2983
--7772 -7662
-1346 3938
-1027 -4799
-5587 4133
-5556 -7300
-763 796
--1126 8435
-7902 -1898
--7824 9333
-3044 2474
-6640 3860
--6027 -7505
--9027 6038
--1488 8013
-4379 7803
-2504 1073
-4482 5572
--5123 -4695
--8970 -9376
--4467 3450
-9050 -1122
--9240 6001
-418 8534
-2495 8442
-4690 8710
--4176 -5733
--793 -4671
--5310 -2364
-1023 5941
--7672 -7507
-5537 4243
--5930 -3100
--8547 5092
--5424 4834
--4866 8589
-5313 -7940
--6922 2940
--1077 -27
-555 8076
-2585 -8586
-3699 -6197
-5891 8526
-6931 -1416
--1274 -4264
--8859 2558
-5849 -2837
-1000
-9280 -428
-4837 -9059
-5614 3874
-8936 -1625
--7919 -4460
-2880 9259
--6092 -1174
--1699 -6235
-8329 -7189
--3771 -3789
-9992 -6588
-6975 -4279
--609 545
-4806 9174
-44 2375
-4591 6831
--4638 -3897
-7281 8466
-6614 -5789
-7150 2281
--7039 -1287
--7962 7423
--9082 -1360
--3297 -8817
-6554 -4249
-9853 -7320
--9686 -8260
-5885 -4194
--3075 6274
-7222 -9869
--9013 -7625
-5359 -4192
--2665 -3138
-4548 499
-5484 -3736
--3867 -9967
--8960 -3695
--3678 -6262
--6784 2292
-7425 1389
--4058 3323
--9180 1690
-622 -5887
--8209 8205
--3166 -3498
-7715 -8447
--9127 -2018
--4055 -6707
-1897 -9845
--6347 -4155
--1618 -9133
-1337 -1117
-7284 -3092
--5196 8177
-5544 -5186
-8154 -2932
-7513 271
-8856 -2622
--2303 4522
--2187 -2939
--2493 -1446
--3143 -4181
-9995 6404
-9820 -1892
-1086 -1152
--2425 -2382
--4094 3597
--1737 -2977
--9763 51
--5679 7613
-3099 3534
-4288 -7754
-4336 3921
-335 626
--9814 6960
--9372 -9167
-5305 -5181
-6903 -9243
--8514 -9038
--7752 5627
-3619 7130
-5908 -452
-6624 -9622
--6833 -8606
--1575 -4076
--3425 -3043
-303 1860
-4397 -6337
--7137 8505
-9882 8234
-5787 6481
-5766 5497
-9293 -185
--6907 7224
--1980 6861
--3193 162
--6597 -2504
-9199 -6937
--3488 -8294
--345 -4451
-9690 1577
--86 -3952
--5098 -7169
-7606 -4435
-7556 -5077
-4036 4303
--1758 -191
--2689 -4932
--1510 -2815
--415 3152
-4753 -1063
--2448 -617
--6360 1917
-2223 7565
-1275 7702
--2816 3720
-4660 6022
-1293 6257
-5894 788
--1506 8110
--9025 2148
--8910 -2811
-3963 -7101
-7014 1253
-125 125
-4894 -1227
-1116 -1660
-2923 -8350
-3303 -2745
-7676 -1216
--9725 7568
--1715 6872
-4172 -564
--7059 -7381
--7566 1112
-3018 -656
-5094 1266
--4924 2105
--5330 -6105
--3402 -5253
-8594 5490
-809 -7743
--9722 9366
--1232 -1559
-8982 -524
--9473 -6120
-9033 -1409
-4264 5619
--8774 -6576
--7355 888
--2735 -2551
--1552 6888
-5452 3686
--3524 -2707
--7653 -8988
--545 2965
-2607 -5883
-2386 5693
--365 5465
-1435 8940
--4202 -8203
-1723 4618
-2137 -8688
-337 -8661
-2659 -413
-7863 4685
--4332 -8797
--2888 -7364
--7261 -6395
-1277 -8785
--1727 -6508
-1279 -3530
-5358 6560
-1292 2948
-9774 5722
-1472 5112
--5218 -2441
-3194 7170
--7267 -212
-6305 4500
-2164 -8585
-1661 6172
-6702 -1161
--6217 -5752
--8804 773
-5507 6732
-8362 1361
-6912 -1619
-1013 -4157
-1875 133
--3293 8671
-2598 9566
--387 2901
--8692 1238
--6907 9112
-9757 7681
--6673 -1508
-8456 -7550
-1427 -2906
--3445 7644
--8139 -5952
-1564 -1848
-1675 -2757
--1095 5812
--2340 6526
-822 6439
--4948 -4293
-9177 2866
--1094 -6015
-9594 6502
--9410 9415
-4993 -5356
--6558 -3864
-7160 270
-4191 -1707
-4803 8418
--7262 -6592
-2257 -4299
--6071 9503
--236 -5127
--2769 -1470
-7904 -6266
--5069 -3204
-7007 -1787
-5172 -418
--6478 5584
-6355 -531
-6914 -6572
-7191 8002
--7005 -6983
--6280 9809
-2591 -2993
-548 -3427
-5547 -9322
--3861 9561
--8243 9821
-6204 3620
-6550 -2086
-3178 8687
-9724 2010
--5297 -257
--8815 -8946
--5173 3473
--7785 2474
--9692 909
--812 1928
--9953 -723
--1856 7544
-6480 -7342
-3980 -3930
--3106 2459
-4141 -1645
-5357 -6675
-5752 -4562
-5158 8351
--3635 6503
-9812 -5717
--1862 -1051
--2880 5152
--524 72
--8696 6356
-5188 -2825
-9601 -9656
-8744 -5939
--2930 -274
-1441 6227
--1425 -8407
-5864 565
--8750 8788
--9914 7907
--5290 -1174
-9097 -1816
--9893 -3597
--9390 -4945
-7546 2498
-6627 730
-5669 -9990
-1921 2268
-1202 -4175
--7155 7753
--7463 -9871
-2080 -3696
--4207 7347
--3920 -33
--8517 -617
--5889 -5829
--1323 -7016
-2267 -2141
--2419 -6376
--8840 4320
--4788 7668
-8625 1875
-4527 7647
-1601 -4984
--3596 9318
--3200 9137
--221 778
--8837 9438
-8393 2147
--7 -857
--6968 -8997
--1694 -8445
-9242 8846
--509 -128
--8226 4781
-5331 -5599
-7708 -3662
-4541 7973
--8010 6337
-9524 -1103
-9162 -3319
-9470 2925
-5246 3006
-2314 8028
--6109 5745
--819 7074
-5822 2870
-2806 -3741
-7584 -9077
--3162 -7459
-5256 -1009
-1010 5428
--1023 8449
-9627 -1551
-4075 6400
--4522 -6021
--4748 -8181
-8634 -3135
--3138 8255
--5525 1963
-6377 -8313
-4068 -7579
--2742 -8810
--5477 8296
-7157 3502
-1011 -2971
-4441 -1888
--3875 894
--2258 -5171
-1093 4540
-9064 6682
-2837 -1287
--8007 -1657
--2967 -2376
-3828 1331
--7463 3209
-9303 -4610
--7409 7415
--2383 4122
--1248 -9367
-4775 4532
--8159 -1684
-1299 9626
-4436 685
--4137 -1844
-2896 1531
--2926 -5389
-5406 -7803
-4391 -6333
--7680 -4805
-2956 -9652
-3417 -3273
-2089 6445
-9907 1281
--8255 9478
-6049 -2193
-1650 3204
-8941 7563
-8257 -598
-6059 4601
--9187 -4072
-6950 -9436
--7074 -2223
-2310 4595
--3779 -3648
-2186 -3511
--6084 6990
-4996 2706
--1984 9040
-8576 5116
--5847 -2484
-2066 -2951
--6431 -4808
-9093 -1441
--2796 2264
--4150 7617
-520 156
--687 9573
--4255 333
--8200 -4679
--2127 4374
--2204 -9219
--4935 -9884
-3085 -8386
-1176 206
-9392 4002
--4363 8019
-2872 547
-8367 6473
--3718 821
--8383 9334
-324 7619
-4316 5234
-6457 -5861
--5771 -226
-7417 8123
-9698 -1154
-6901 -7375
--9662 -3706
-1666 -6427
--7618 -3890
--7439 2017
--4034 -2318
-1282 9063
-5730 6791
-7126 1919
-9071 -9292
--1223 -4876
--5557 8079
--1281 -1219
--7026 1106
--5328 -3307
--6381 -2636
--6061 -8542
-2041 -2967
-9722 -7786
-6850 3363
--3374 -3393
-4964 5114
--5470 -2712
-3888 6338
--6057 -3351
-753 -7372
--9838 -8169
-9632 9186
--7801 2973
--8147 -88
--1639 -4002
-4986 7893
--6490 -6363
-9149 -122
-6845 -6479
--7814 5062
-1395 5817
--2702 3102
-5281 -417
--2257 8986
--3576 -4554
-5592 -6739
-5576 1769
--9407 -3287
--2591 -5493
-7127 -9667
-5932 -6180
-3023 -7934
-9812 7676
-6315 -8894
--2004 -6041
--5140 -6801
-27 -7722
--3174 7438
--3262 7516
--5462 -2702
-6814 -3146
-546 -3573
--4769 1860
-9104 -5046
--3820 1002
--8506 6607
-2443 8337
-6230 4899
-6785 -7582
--9186 -3570
-6244 -7181
-5510 -2748
--3299 -1091
-4765 -3479
--3541 -3649
--9018 -2504
-1689 -9162
--3210 6220
-5597 -1898
-9402 746
--1240 -2670
--363 5138
-5475 -822
-2442 3079
--3309 8698
--1641 -6776
--3377 2099
-7718 -8868
--6158 1617
--1574 9678
-5519 5226
--9820 4790
-6105 169
--6311 7167
--2878 2484
--3312 9000
--4836 9612
--1631 5794
-8026 -8270
-9241 -7758
--9303 -7706
-5560 -2364
--6429 -9735
--165 2813
-4204 6821
--6087 -8404
--4408 -8659
-5176 -3252
-4136 7364
-6046 -5204
--7841 9910
--3537 6151
--4629 9798
-4792 8521
-9082 4805
-7768 -2148
-7271 -4311
--5623 -6835
--4642 -460
-3458 1455
--1623 -3631
--2413 7985
--4830 1380
--1267 8284
-7430 6094
--2758 -1033
-8498 -3813
--2161 -2945
-318 -737
--7711 -9140
-4272 4876
--9848 7997
--1538 -1539
-712 9820
--5114 4783
--3722 3109
--588 1852
--4203 -732
--8296 -9452
-8163 3642
-2490 -3298
-690 595
-5779 -4308
--8135 -2278
-3821 2811
--6301 7885
--5380 -5426
-55 8907
--9215 3508
--9647 -9418
-3505 5916
-5171 -9826
--9788 -7348
-8095 -6574
-2388 6529
-9150 -9813
-5205 2861
--6784 -3842
-909 -7634
--9252 9910
--2091 -323
-3508 2050
-9019 7450
--7297 -7794
-2417 9410
--3488 -4906
--6409 6966
--1719 646
--244 3877
--1574 3997
--4981 7637
-2093 -3707
-9130 -2763
-8517 -1746
-6668 -1125
-7625 -8312
--2571 -1738
--7800 9857
-784 8521
--8824 -6028
--5245 5574
--8769 -6409
-6548 2104
-3075 9293
-7910 -9594
-9547 -3353
-5628 2890
-1681 2255
-3895 -312
-90 -2943
-8845 -5735
--3866 -1347
--4713 -3008
--9506 -6120
--541 -1112
-2567 1777
--5384 -1643
-2563 -7558
-711 -5713
--46 7229
-9785 9736
--161 1384
--5408 -1213
--1333 -3080
--1755 -7730
-3435 -3887
-5480 -6906
-9254 -6417
--3907 -4963
-6989 4439
--1249 1660
--2702 -2614
--2303 -4435
-4987 3244
--7948 -7965
--613 -3825
--943 8122
--5606 8093
-2461 -1365
-2876 -9088
--1751 8609
--7000 -9174
--850 643
-7734 -639
-5610 -3609
--1314 4898
-6550 -4002
-2313 8742
-2628 5299
--4061 -3917
--6032 3331
--5834 -4243
-2353 905
-2663 -3704
--4380 4213
--457 -3373
--9286 9942
--7285 -6397
-2192 5354
-2942 -7471
-6974 5899
--9864 2199
--830 4204
--9069 1130
-8993 2344
-5033 7932
-9936 8284
--7320 -9407
-1811 -166
--2817 8527
-818 -1374
--629 -8562
--3771 -501
--2428 9901
--7329 -8126
--1467 -654
-5633 2928
-1631 -4132
--4795 -7495
-3958 -2278
--4966 2198
--8342 6051
-4453 6335
-7218 2476
-6502 -6828
-4508 -8065
--9777 7918
--5443 7063
-6805 -201
-7018 9018
-4515 -1914
--9210 5276
--946 -5509
--9766 1411
-3765 -3490
--6387 -4982
-9221 -8580
-2522 7989
-99 -462
-8173 480
--9654 -4368
-9481 9530
--6338 4537
-4679 -2664
--8118 2167
--7145 8431
--7929 3156
-1232 2970
-3086 -9419
-5865 7841
-6384 -8795
-6089 5053
--5835 -7160
--98 6209
-7111 7054
-6690 -9011
-7007 -5310
-8254 -9547
--9073 5500
-3028 6251
--1558 8266
--4935 4727
--5056 -9961
--8600 -9620
--6446 466
-6127 -5945
-732 -6390
-8967 -8936
-3974 2017
-4566 -9070
--2149 4567
--4279 3874
--2945 -6778
--9587 6754
-1424 -98
--447 745
-9037 -656
-6594 7190
--729 -894
-897 -2669
--5514 -1391
-7062 -3509
--8781 -8350
--5578 -7672
-5585 -736
-6464 3470
--2123 -5010
-4616 -2258
--3469 351
--3584 7556
-5909 -8679
--2831 2687
--5883 5752
--998 -9737
--119 2320
-5759 6680
-3325 -6643
--1248 -6817
--2975 6266
--8924 -1002
-2529 1246
-5648 -3284
--8116 2073
--376 1973
--2492 -4658
--7034 -7637
--8568 -8810
-3775 8120
--3211 -8741
--5685 -9521
-728 -5350
-8370 -2534
--2715 -4401
-7263 247
-3919 6244
--7995 -8996
-5951 6462
--2274 9597
-6094 -84
-6873 5787
--8410 2978
--2729 7737
--8820 780
-6478 -5180
-7679 -9442
-5667 8350
--9968 -4845
--5366 5397
-4193 9347
-2054 4085
-5539 -1723
-6896 9722
-223 77
--6358 -4833
-5595 3461
-6675 6709
-8539 -7186
-1199 -8672
--3973 -983
-1774 9654
-2862 8368
-6959 7465
--9402 -4631
--7451 3256
--1039 -4204
-8374 -1143
--4348 -8494
-2080 -3103
--7567 -1148
--735 -5218
--2928 -1884
--1023 9096
-5113 -5453
--1800 5327
-7657 -5692
-2346 5784
-1532 2240
-9432 -416
--7016 1714
--3375 -7036
-1684 3226
--6132 8775
-4831 -4135
-8242 -2233
--2055 8023
-376 1760
--2767 754
-5416 -7894
-9428 9255
-3460 -2450
--1324 8265
--1011 7704
--7909 7827
-6584 8359
-5893 995
-811 3476
--4110 6470
--9091 4846
--2408 2226
-5004 3963
--1117 5639
--5770 -360
-8092 -4499
--2875 -2150
-283 -1982
-9975 6994
-8151 4901
--4240 1581
-7036 6568
-3423 -9252
--7786 9829
--3003 3660
-4094 2734
-7261 -4766
--2701 -6856
-6507 6151
--958 884
--764 -6067
-4444 -285
--6213 2712
--1177 -8229
-4707 8727
--6392 3846
--966 6322
--7008 7966
-7185 4899
-5513 -291
-8719 -2527
-8494 -3156
-2787 -5483
--3896 8157
-1522 9717
-2944 -2497
-7684 2784
-3782 -4372
-2959 -7970
--3163 8875
-4436 -1815
-7320 -3155
--7689 -1127
--9121 3593
-8213 698
--8524 -4014
-51 5640
--1638 173
-7099 6587
-574 -6340
-5148 8211
-2067 -6126
-3432 -1899
--450 6351
-5980 4691
-4814 218
--3009 501
--4834 3809
--7984 8272
-5772 -2914
-8403 2079
-4571 4305
--3999 -337
-2076 -3696
-3661 -1369
-6223 3480
--340 -3047
-284 5530
-1951 -4168
-3683 8676
--6165 1243
--8001 6278
-7900 -8624
--9612 -7059
--5260 6580
--7635 -9198
-177 -6199
-5246 7593
-7690 -6000
-105 5247
--2500 4466
--6773 -683
--4273 6355
-5889 -9946
--5529 5276
--8697 -6820
--5025 8484
--334 3340
-1650 -3302
--2520 8384
--1676 8386
--7381 5753
--7092 9633
-8177 -2315
--4916 -220
--6371 8656
-7077 3492
--4957 2383
-8470 -466
--5727 2911
--377 8762
-8031 9323
-2430 -4372
--1549 -534
--3009 -445
-9253 6544
-5214 -2937
-7269 -5227
-7709 -7977
--742 909
-7624 1381
-4765 -8173
--9711 -8677
-1187 -6510
-6368 -679
-4619 8554
-2824 7741
--7669 8128
--7981 -2002
-2921 -6367
-5712 6022
-9843 3966
-6271 7279
--9825 6199
-7563 541
--6518 -3507
--2135 -4370
-6491 -6186
--7716 -3758
-8059 -9731
-9524 3243
-4301 8161
--791 773
-6871 -2273
--903 -806
-5468 -7272
-6690 -2177
-1453 -2524
-9308 2961
--5341 -1525
--2840 -6010
-6102 8941
-5073 5256
-6973 2679
--1165 3772
-663 3469
-5641 -4020
--6016 -8617
-5766 -5226
--8489 327
-5493 -2124
-954 6519
--3213 -8067
--10000 -2753
--8820 8253
-3310 1248
--5887 2955
-9931 8717
-7183 9849
-6535 5570
--4186 5928
--3517 -158
-3982 9983
--9200 -1668
-8782 9834
-9287 -3528
--1428 -3944
-73 -448
-7659 -1854
--218 3125
-3624 -5438
--7008 5845
-4111 -4821
-4556 9071
-7635 -493
--5591 4450
--2442 -8049
-5483 -2783
-1970 -4875
-2242 -9263
-1000
--9700 4316
-3555 -2940
-871 9056
-4461 -1224
--6915 -8292
-8047 3564
-1915 5763
-7021 246
-4883 3706
--5774 3734
-6246 -3279
-83 -5468
-1442 3911
-1766 38
-6242 -5234
--7214 9803
--100 -3048
-9277 4327
-5126 5660
-4314 -9929
--9236 -1325
-6674 -3719
--1628 428
--1880 -713
--4289 2613
--3086 8967
--2311 -502
--4237 -4044
-4570 5355
--7198 -8276
-4929 2891
-2689 -7585
--1944 -2798
-1551 -7619
-9930 5847
--7443 -8794
-9383 -8989
-7138 -9345
--8685 7449
-8942 -3840
--7345 188
-2412 5331
--8580 -7148
-1295 -2427
-7782 -302
-8071 7869
-9579 7071
--5023 -1135
-3083 -5216
--7335 -7317
--7779 3453
-6245 -2467
--2636 -3491
-6298 757
-8615 4889
--1758 -851
--3668 2184
--5896 -6731
-3352 6730
-6534 -8182
-2646 212
--9297 4012
-3532 -4739
-4762 -9159
-2870 -7885
--8470 4230
--4642 7522
--4916 -4441
--1805 3948
-7286 -5392
-7278 1046
--2747 -7288
--8776 -2441
-6859 4768
--5809 4564
--5954 -443
--6174 -6393
--7184 2105
-6074 -1216
-2729 6872
--9613 -3926
-2111 -819
-6820 -4005
--4722 -7153
-868 3354
--6296 3497
-7161 -1932
-3736 -9281
--1344 -8056
-3142 -9036
--3804 7377
--6275 1423
--7348 111
--7275 2770
-3073 -4524
--3248 1715
--2141 -1255
-9394 -7338
-7748 3008
-7132 -895
-6345 7773
--6525 -4205
--1248 3068
-5178 7710
--9229 3042
--9865 -1275
-436 995
--2746 -1329
-9910 6422
-2414 -1962
-1658 6593
--9597 -7957
--6838 -9319
-5653 7738
--3324 -6298
--8585 7929
--1090 691
-57 -4237
-5160 9741
-7342 -3685
-7668 6882
--7950 3564
-4713 3650
-7353 -6346
-4952 621
-5136 522
--5702 6765
-3828 3683
-2436 2425
-1041 7870
--1300 7816
--3093 1175
--940 2508
--2479 4930
--3293 -1829
--1902 -4626
--5433 710
--1685 -9754
-7965 -8835
-5585 -8478
--6024 5634
-9464 4983
-9244 2173
--5395 6698
-3839 -8541
-6001 1068
-8583 -7325
-4594 -9433
-107 1048
-4840 64
-9654 -9569
-7842 9813
-2675 -9053
--5952 -5670
-8845 -5129
-9418 -7261
--1765 8485
-7730 6447
-4018 8187
-1013 -5349
--4400 1469
-7500 -2047
--1767 -8001
--2234 2204
-1979 3547
--4269 360
--2601 -1284
--3409 2339
-7527 251
-4110 9747
-1638 5375
--1712 -1407
--6135 -6815
-7790 2459
-3438 6955
-5008 -1853
-1832 3258
--1057 -4268
-7358 9011
-6751 7736
--4448 -165
-1581 9518
-7342 -9199
--3330 283
--788 6727
--4658 -8793
--5478 8078
--3917 338
--7542 4795
--1206 -7419
--5318 8955
--2368 7929
--4755 6184
-5940 1142
-8587 -5659
-7727 -2913
-4670 -6979
-8705 -9345
--3982 -9815
-5728 -5895
--7564 -1297
--6649 4052
-636 -9622
--6816 -949
-6268 8943
-275 477
--1307 8398
--5549 -5504
--5712 -7540
-350 7498
--7194 7984
--9818 -5842
-1202 7078
-8395 -3063
-4310 -957
--7319 6514
-6582 -882
-4372 -1264
--695 -8110
-869 6538
--1302 4126
--466 8821
-4539 5149
--4316 -2417
--7902 1608
-7319 6849
-4280 -543
-5109 7485
-9316 -8337
--8767 7480
--4919 9515
--8438 4040
-7160 7460
--4044 4611
--372 9551
-7313 -6531
-7114 -1589
-6388 1407
--8596 3653
--4230 7131
--5932 8906
--7454 69
-4782 -6203
--7610 1573
--9247 8523
--3441 -2486
--106 286
--3953 7600
-2582 -5806
--9943 5818
--905 5767
--2052 -5871
--6833 6195
-9904 9877
--2452 -1148
--4921 -3340
--8558 721
-1458 -2385
-2554 9968
-813 -7445
--1729 1288
--6908 -1574
-8698 3909
--6059 -3419
--8095 -3637
--8924 -2436
-9586 2512
--5502 9099
--6513 -2714
-2524 -7672
--9040 1322
-7763 -2756
--2126 7707
-5031 3352
--1395 -7559
-3079 2728
-8822 -8964
--929 -3269
-2602 -8722
--3332 5285
--1403 -4802
--8509 2560
-9357 7321
--1649 9136
-6199 8494
-2554 -425
-7831 1068
--2493 6767
-7141 8273
--8137 1198
-9847 -8617
--8218 9388
-9697 1679
--3563 -3388
-8922 -7596
-8623 -7548
--3827 -4969
-8475 -4799
--2535 5919
--2274 7871
--1498 8298
--7991 -4057
--1156 -4420
--9308 -6328
-3182 -5655
--9197 -7430
-7334 5278
-3259 904
-6026 -9153
-294 -2925
--9791 6588
--4680 3722
--1410 -5540
-1276 -6767
-4744 -3464
--3541 -1490
--4628 9742
-4727 2992
-6168 -4924
--3284 7344
--9568 6843
--191 7648
--6223 1245
--5213 4454
--9693 2759
--2544 278
-8534 3192
--5238 5642
--8537 1527
--3331 -7175
--6042 974
--1004 3149
-2699 4626
--5772 -5306
--4524 -6945
-7113 -2048
--6029 -7147
-1410 -7116
--5096 8550
-4353 -9396
--9583 5664
--3478 2112
-182 -8774
--1728 -9096
-6729 -5836
-7801 -9874
--5797 1226
-3874 -6597
--2124 -8841
--5510 -9369
--4469 -2209
-4069 8491
--2035 5117
-3793 -4276
-2036 -9086
-4076 -4228
-7999 -194
--3503 1258
--7025 -1566
--5992 -340
-3806 -9196
-868 -669
-7144 -4508
--5643 -7500
--6670 -8819
--4786 -2265
--9206 4532
-4987 -4230
--8635 7329
--89 -8310
--4520 -9327
--1780 2063
--9812 -5601
-1336 -9183
-9569 1016
--8010 -7739
-7612 -376
-6709 -3435
--2854 3112
--4607 -5710
-5079 -9647
--6099 52
-5519 -4746
--2307 9723
-4208 -51
-974 -6040
--3056 -692
-4463 -6787
-454 2115
-2353 6475
--8757 5190
-2409 -833
--9838 -4730
-6831 -76
-6891 -2882
--9199 -4305
-3879 4022
--8464 1127
--5486 -4536
-9985 -8967
-6778 4587
-2476 -9605
--6182 -4022
-8412 8310
--8984 8306
--8214 7099
-9391 -3282
-1433 6930
-7625 -8701
--5623 5967
--2230 -9127
-5378 -2930
-5373 -536
-9221 4174
-7139 -4088
-2256 -8903
-3087 -7790
-7906 3227
-5545 -3956
--2920 9747
-1874 6507
--4533 -3061
--7767 -5312
--7538 5346
-2776 -2409
-1640 -3990
--3291 578
--8882 8
--1667 -6991
--7281 -3421
-8081 562
--5305 875
-8324 3720
--3459 6467
-6052 -7977
--3256 6009
--2722 -4013
--659 4935
--8847 -5333
--2819 -8647
-3349 -1415
-4332 512
-1315 -8376
--3948 3149
--9848 3491
-298 -9322
--4770 -3710
-4965 -2344
-3225 -1476
--7252 7493
--619 -459
-6954 8891
-6927 3226
--45 -7548
-5854 2955
-1541 -7500
-96 -3098
-3725 7183
-9016 -2434
--8706 -1505
-8750 -7281
-1848 4555
--9734 4740
-6419 -4621
-8066 7250
-4731 3221
--6102 -926
--533 -1556
-3844 8574
-8277 5687
--4742 -4135
-1884 7708
--2390 -5548
-1089 -9650
-3292 -1489
--8014 -4266
--2963 -1500
-1429 -3955
--9802 -1154
-6889 -2638
--7881 -8233
-8668 -7130
--4814 3726
-4362 -2204
--3128 8329
-4311 7947
-5368 -2633
-2482 -4741
--2839 563
-474 -4257
-2638 9087
-4468 9177
--4560 -6831
--2540 894
-9734 4924
-1959 -7836
-4695 -8873
--830 -6120
-4815 -322
--9911 3619
--3004 4920
--211 3150
--3585 -4025
-6701 785
--1620 1326
--5113 8527
-2625 -7449
-3072 456
-5171 -4988
--682 671
--676 4216
-3308 -7253
-4840 -256
-2541 -3615
-7980 -7871
-4240 -6178
-9151 8849
--9565 -5215
-6005 4002
-1208 -2188
-5872 9625
--1058 6983
-6581 4360
-8428 9295
-6287 -5480
-9809 -5146
-6933 271
-1303 3259
--6857 7100
--8292 -9167
-95 8102
--7369 7745
--2528 8568
--12 4948
-2432 17
-9111 -1648
-7745 4620
--5737 -8487
-4118 4501
-9672 -1220
--8073 4867
-2091 1428
-8604 -656
--2444 -3455
-3147 3585
-6013 9967
--3542 -1389
--7101 1249
-2186 -4522
-7363 -26
-2233 5786
--2188 -2019
--7972 -20
--5263 6724
-3335 -7700
-5843 6193
-8312 4835
-9879 -1343
--4288 -3540
-7477 246
-420 3148
--2898 4349
-6738 2358
-7775 2698
--6823 4457
--8693 -8443
--1202 1715
-6335 195
-6810 4828
--1298 -7830
-456 -7005
-176 4396
--6251 9985
--9861 -1153
--7710 1398
-69 -9924
-8696 -4163
--77 1743
--362 6016
--5865 3093
--4690 -3519
-3651 2230
--811 133
-2886 8992
-1338 5514
-2279 -8497
-4140 6824
-489 -6164
-6428 3824
--6479 -5661
--628 6320
--5690 -5335
-2048 -5567
-9308 2469
-714 7533
--8214 2515
-4312 -7939
-5075 -1765
-8788 -9359
--9436 -9192
--8350 -129
--3607 4069
-1681 7565
--9401 -6971
-9359 3243
-2607 -9277
-255 4747
--7887 4217
-7203 -3160
-2652 -3950
-3511 -8529
-4693 4364
--1155 -2888
-2319 6463
-6502 -257
-3709 7426
--2792 -5491
--2911 5835
-3144 4529
--6824 -317
-8847 8207
--8049 -9453
-9034 1254
--6334 -8911
--2904 -7104
--7091 6763
--4358 -5564
-8506 5417
--5791 -5680
--4175 -8902
--3977 -1215
--2308 1001
-5128 -8532
-6341 7074
--9203 -667
--5865 -2461
-5642 73
--6256 3432
-3790 4203
-7687 -7204
-3085 5680
--5354 2888
-4599 -9912
-9186 -3100
--698 4930
-7118 -3073
-7461 8089
--5587 5830
-3861 170
--1056 2480
-1655 6826
--8468 -8447
--2489 -6338
--5485 -4324
-434 9629
--7132 2210
--6525 7362
-7891 -8794
--580 9529
-991 2964
-5034 -2362
--1079 -5987
--5761 5670
-117 9727
--7114 7690
-2272 -1612
--2412 4895
--5301 -8218
--9877 9808
--297 -1482
-9551 -3530
-9365 -2641
-4026 2722
--4914 6228
-5840 -4621
-3218 5368
--2940 -564
--3719 9604
-8938 -5677
-4870 -4706
-8781 -7096
--5074 1669
--9802 6979
--9352 321
--6036 -2996
-7847 3078
--570 5231
--2700 972
-9865 8429
-8631 -3752
-9607 8557
-4283 -8607
-5432 -5745
--5597 -711
--7542 -2357
--8822 4049
--399 1747
-5346 -7136
--394 462
-8159 -8452
-6488 3134
-4458 9304
-6696 -2606
-1700 87
-1020 -5168
--2996 -2891
-4374 5584
-1182 6313
-8912 -9100
-8341 3676
-5083 8036
-8483 -8113
--601 7011
--7532 872
-5843 -7441
-7623 -6870
--3269 -4686
--5720 -5681
-4497 -4122
-4225 1562
--1549 7827
--3859 1111
--3151 2552
-3989 -5452
--7060 -6259
-2384 5147
--4856 4817
--4221 8939
--8154 3908
-6932 3867
--9924 -2864
--6164 -7585
--9248 -3503
--5020 5450
--9017 -2296
--8771 6251
-6206 -1137
-7004 -3817
-3333 7250
-5946 -6608
--7967 3433
-1677 -729
--8066 5150
--7705 -161
-6574 1818
--3805 1054
--4647 5363
-8007 -5758
-3308 -2763
--3232 -686
-5064 2311
-1018 3221
-8881 -4987
-8816 -492
-7622 -346
-5669 6646
-9319 -6323
--8060 3831
--2035 8949
-7930 -4318
--2618 3954
--2192 -4453
-9262 -5576
-6144 -3719
--9278 -5822
--9481 4387
--6886 -3890
-1043 7779
-9058 -3286
--1284 -5246
--9975 3239
-953 -6221
-8387 -3514
-3246 -7287
-2258 -4003
--7256 -9244
--8092 -87
--1748 -1018
--3829 -8899
--5907 -6499
-139 7437
-4471 -4205
-6845 -4045
--2585 1834
--4256 3891
--4872 5321
-3106 5514
-2461 -9437
-8996 2676
--3925 3016
-8112 -9820
-956 -3904
-1917 -6281
--5323 9756
-4046 -9347
-7208 4178
--2151 -3050
-1149 -6107
-3318 8721
--3465 3129
--8322 8987
--5493 -8674
--3437 -2653
-2052 8260
--7084 -2265
-1877 9518
-9199 -6713
-7681 -7331
-1196 792
-2317 -4836
--1704 4673
--2449 -3624
-7582 7133
-7698 -6978
-5190 -1866
-7724 4069
-2384 -7420
--3151 2293
--5674 -9430
--753 1174
--1743 9110
-9683 -9841
-7977 -8355
-6469 1744
--8672 -2010
-8386 8789
--8550 -9297
-3527 -7768
-4095 -8474
-5718 4508
--9478 469
--1131 -8932
-3885 7916
--7767 9109
--9407 -3843
--9686 2359
-218 7084
-5909 2506
-5165 3979
--8212 1179
--2665 4367
-561 -5081
--814 5233
-4100 6944
--9281 -4298
-8668 4107
--3087 -1553
--6222 -7295
--5072 488
--2881 8661
-2718 -1269
--8434 -5174
--4822 2240
--7416 3641
-7815 911
--7397 4856
-2989 657
-7599 -513
-7022 -7417
-9004 8548
--5161 -4071
--6521 -8420
--937 5138
-3628 3129
-6082 288
-6771 857
-3695 -6536
-3348 -9437
-5441 9634
-8361 -9653
--5791 6436
-9418 -3417
-4193 6135
--1940 -4536
-3578 -8328
--1333 -8222
--2500 1605
-330 -5135
--7111 2842
--722 8608
-8628 1441
-7721 8043
-4062 -1401
-1237 -2312
-4678 -1768
-682 8234
-5425 6769
--6896 5756
--7728 8576
--1691 -6365
--6411 2120
-2089 7981
--6444 7780
-254 -9713
-5597 -482
--8607 -7301
-9979 -3010
-1257 1333
--9702 -563
-9390 -1653
-4932 7283
--7757 -256
-4692 8629
--4677 5913
--6039 -4903
-5441 -6592
--2899 -163
--202 4340
--5675 -2505
-96 -3975
--829 -5440
--7699 -8183
-7136 -4732
--7607 2013
--2407 -5580
--5272 -1663
--4728 -3624
--985 -1707
--196 -6344
--8587 -4768
-1963 -4925
-7588 -5628
--9929 -1799
--9563 9544
--4016 -9231
-9086 5890
-7081 -7639
-5646 -8831
-6259 -6781
--5842 -3051
-5984 7029
-5529 6610
--8675 -3287
-9514 5702
-2022 -9844
-8719 9252
--6398 5424
--6603 -8576
--3075 3638
-7880 4409
-3406 -818
--5236 -892
--6137 4931
--4745 -9278
-8057 -8546
-3615 -9814
--5363 -3130
-9580 5218
--6044 7406
-9283 9829
--5524 816
--102 3133
--107 6040
--2442 -6677
-8410 -1808
--2320 523
-6307 107
-7442 -8719
-868 -4775
--1685 1473
--8823 -7285
-6617 9848
--5085 -7434
--3172 -3824
-6196 5031
-7701 6902
-7159 -4577
-8035 5122
-2895 -2612
--9314 -4950
-7856 2372
--8812 -388
-7530 -4840
--311 9099
-7058 -4849
--1884 9744
-3475 -3500
--9249 9790
--2429 -9025
-1363 6830
-3402 5966
-4720 -8746
-1267 6993
-9494 -6938
-8968 -7980
-4604 -1269
-2425 -1777
--222 -3901
-3737 -8866
-9143 -6843
--9717 -4832
--130 -1164
-6338 -6201
--171 -919
--9540 119
-7857 -6146
--8918 -1721
--8039 -9637
-8728 -6588
--9169 -2311
-1000
-587 4284
-4982 -428
-2071 -2295
-5077 -7847
-9050 -2777
--1797 -2623
-8230 453
--5848 5834
-3346 7096
--6793 -9243
-9303 -3451
--2004 1110
--514 -3924
--4639 3005
-4630 -7280
-1408 5079
--3642 3439
-8329 -2303
-9293 218
--8097 -5876
--884 -3871
-6715 2990
--6063 -6887
-7841 -5070
-6243 5
-7083 8166
--3395 9322
--9112 -7773
-3749 8574
-4167 -8728
--2046 -3332
-9549 3959
--3323 -7737
-4788 -2465
--4994 -2261
-4623 -3002
--5722 -3252
-6336 -4667
-8095 9356
--4609 -7011
-5474 -502
--957 8142
--5765 155
--3984 -4301
-5483 -3549
-1400 2351
--5032 -3585
--5110 -9653
--2432 6372
-9901 5484
--984 2712
-7827 -4649
--9520 -2042
-3884 4214
--6251 1789
--2865 -2206
--3773 5233
--9618 420
--244 1313
--4215 7592
--4563 4080
--7803 -8528
--4644 -4310
-3368 -3131
-9691 4876
--8475 -5550
-7479 -7453
-8068 -1542
--1689 -9574
--4156 9729
-7686 -372
-7243 3338
-3864 6627
-1926 -1460
-1642 5469
--6442 -6821
-4494 787
-8672 8076
--9366 -7244
-7894 -3283
-6097 -2473
--1526 908
--4651 8456
-5429 1329
--1352 8832
-6348 -7396
-9602 3369
--2697 296
-6880 4081
--9756 9658
--6807 6192
--8884 -2574
--3003 -6614
--3660 1623
-4494 -431
-2079 -242
-708 1923
-9126 6620
-4216 -637
--933 -4257
--8887 -2046
-1073 -4048
-2227 -5650
-6943 -5766
-5835 8539
--7741 -7719
-4476 -7830
--7243 -6381
-5121 -1716
--309 9227
-542 -3774
-2399 -4382
--2705 -6841
-1055 7863
--8590 -4365
--4664 -9481
-8015 -3891
-2639 -7275
-246 -6005
-9932 -8958
--5452 -9831
-3805 -6179
-7135 -8822
-7270 -3172
-4688 -2152
-2896 -924
--7063 -8601
--3830 4503
-8943 -2155
-8045 6425
--451 7416
--3037 -8520
-2010 -5733
--3461 -458
--6482 -8759
--4861 -8321
-5159 9038
-5591 8641
-4951 7981
-9268 -6753
--3280 -5753
--2620 -8738
-6377 -1131
--9939 -3058
-3021 8875
-3980 -8393
--737 -3068
--9136 -6855
--3743 545
--5073 5119
--9298 -9742
-1689 -2357
-6435 -3864
--1603 -5341
-306 -4992
-565 2630
--894 -3391
--6877 1220
--3807 -1836
-378 7575
-3348 -6733
--3777 7499
--9556 -462
-9025 8593
--7609 7634
--1361 -8151
-9389 4370
-515 8270
--2998 -8970
-5149 2339
--3031 9793
-2552 -8732
-9962 -6995
-5415 9914
--6752 -6512
-7905 -5315
--6365 1609
-1420 5992
-3046 -8587
-5898 -7997
--1548 -1858
-6200 -1730
--7415 -7648
-5672 3734
-3123 -9419
--7211 -3245
-2613 3334
--6822 6924
--8134 -9157
-4150 6250
--5688 7712
-6595 -2476
--5688 -8860
-8537 -817
--8136 -627
--9963 9868
-167 -9763
-9267 700
--1391 5860
--4916 9845
--6226 -2227
--1758 -4320
--2796 4415
--3384 1220
--8843 -8602
-8132 -1693
-9492 -916
-9183 -2037
--7161 -7484
-2719 6018
-6906 -4579
--8068 -7612
-2212 2241
-8775 5745
--1172 -6074
-8880 -8993
--5874 -6303
-5495 8710
-225 -6962
-4346 5592
-8759 4454
-2664 -8028
-7998 9257
-6169 7755
-707 -3753
--2930 8879
--3182 -1701
--4569 4002
--8341 -2779
-3199 -3889
-2831 -7848
-8365 3495
--630 -6891
-6654 4243
-1033 -8975
-9308 -3349
-6586 3673
--4915 -2137
--1495 -3152
--8371 -9333
-356 -3365
-6242 4059
-832 -1543
-9604 959
--720 5370
-5224 9397
-4126 6914
--971 -6979
--8370 5638
-2308 -2210
--9588 1634
--6872 -4932
--7797 -1638
-7975 7317
--905 -9244
-2341 4972
--3844 6675
--5649 6540
--2499 -7560
--3831 57
--1166 -8108
--8820 -1242
--1881 -3735
--7265 9030
--3421 -9997
--9852 5706
--3243 2896
-2962 -7907
--9844 564
-6085 -5896
-1944 -7525
-8949 8477
-8030 -2744
-1182 -2228
-3220 1826
--9786 -5643
-3834 5824
--9297 -2184
--8905 3838
--9099 926
-6377 -2456
-2063 1780
--1310 8991
-4533 -2372
--5529 -978
-6432 5383
-1751 -7300
-4367 -4702
-6553 -9926
-941 5500
-5055 2769
--835 -7113
--9546 9976
-3854 -2759
-5953 5299
--6964 9686
-1213 3693
--6365 8262
--2762 95
--3616 6872
-4519 -3081
--8749 1231
-7190 6521
-6302 -5696
-4361 -832
-2840 -4288
-5320 8334
-3024 -8518
-6094 -7301
--562 2405
--6681 -3728
--9682 1545
--630 6273
-3105 -4432
-1806 -6156
--3615 8164
--4872 2625
--420 -9320
--3290 -6506
--7852 7137
-5024 3203
-9362 9423
--1356 -9623
-1875 1135
--6403 -3823
--12 -2048
--1842 -3683
-8078 2057
--5102 -4816
--814 -8835
-3580 6803
-7352 2648
-3036 -9653
--3357 -8178
--4031 1703
-5402 -5927
-4705 -3241
--8629 -3213
--4446 2091
--5760 -678
-6763 2100
-8078 7737
--6401 5251
--2071 5399
-8648 399
-9016 9926
--940 3180
--5714 6575
-7336 -2468
-2031 5869
--3511 1192
--1401 -3155
-2617 -6305
--2626 7853
--5104 -9724
-2097 -7255
-1330 4632
--4473 -4957
-9596 -5396
--7217 7480
--6621 9887
-5142 -5473
--9093 -6410
--1627 -7577
-8683 4754
--1154 9448
-621 2288
-6494 -4419
-2709 1650
-2668 4835
-8880 1170
-5957 6519
--1804 9078
-1046 -618
--6106 -5874
-8793 3473
--5571 883
-8024 -6880
--5967 3810
-5461 644
--1358 -4359
--6355 3292
--9431 4520
-3322 768
--1927 -8887
-4763 -6047
--5501 -1866
-7102 -3317
-9762 4332
-6646 9357
-6037 -8711
-5736 -1757
-6608 8189
--644 5327
--64 6068
--5320 -5920
-4049 -2275
-3347 -8741
-8709 -8213
--1263 -2794
--5738 9884
--9306 -7039
-5571 3420
--4070 -7865
-7109 1987
--7841 5454
--3273 1142
--957 6392
--5906 5638
-5785 -1564
--8778 -1779
--7070 3886
--3590 9569
--8756 -317
-5328 5298
-2587 -4512
--2737 -5269
-2979 -3209
-6600 8121
-9370 -5859
--1776 -2842
-6050 -7859
--2305 -107
-5606 8399
-3616 4643
--6732 -4060
-1462 4849
--4589 9125
-5177 -678
-8869 -2122
-1429 9394
-2813 -5665
-7430 4613
-8556 3520
-4189 2442
-3793 4354
--4719 -4882
--7554 5207
--8470 -6186
--3045 -1969
--1711 3092
--1342 7633
-5096 9930
-5497 1796
--6468 8780
-196 -3405
--1740 -4267
-6781 -3722
--821 -2273
--5948 2813
-1117 1173
--9388 -1761
--5739 -679
-1686 -8925
--6808 8702
--7169 -9102
-2309 6510
--3647 -4926
-1911 7621
--9885 3296
--5001 -5973
-9416 -9772
--3689 5120
--7204 5600
--7609 6924
--5460 -2592
-5954 2129
-6775 -4298
--5300 -5039
-1394 -1932
--1196 -7935
-9987 6021
--1197 3822
-7220 3511
--341 -2994
-5927 561
-5998 6295
-8167 1360
--2145 4526
-1023 1531
--9316 -7157
-6495 7521
-5400 7309
-3190 5511
--3378 -6625
--9917 -8716
--2626 1790
-7353 9907
-6858 1441
-7242 6873
-7404 -8576
--177 -3276
-2348 -7959
--2300 3170
--1570 -1673
-4014 -2119
-7503 -8288
-96 -2432
-6461 9961
--2710 -3401
--4904 6188
-677 1876
-984 -1265
--6682 -9362
--1487 -449
--129 5609
--2985 1144
-6939 422
-9851 -7228
-1922 -6385
-6757 4748
-1181 1247
--2835 92
--1392 -6813
-7525 5888
-657 -1269
--5175 -1529
--808 -4214
-6393 -3649
--8100 -4374
--6471 7904
--621 -6381
-9682 -9764
-4426 5534
-3032 628
-7195 -4421
-733 -1269
-5429 7987
--1428 -8197
--4546 2177
--5319 1409
--1373 2939
-8619 9554
-1473 -6680
--8224 9919
--1421 -8880
--5700 1511
-1164 -6832
--6099 7326
-8383 7865
-7405 -3126
-32 -1116
-3005 -9589
-1105 -7299
-4536 5005
-3141 4885
-4167 7662
-1304 -8690
--7590 -458
-3859 -7166
--7933 -7609
-5671 -4874
--6354 5787
--5042 -4260
--308 2093
--5745 -5156
--8688 -544
--4350 -8219
--6808 -3615
--7586 -8804
--7400 -2062
-8561 -3597
-6231 -8937
--2891 996
-3146 5412
--3127 -4826
--6561 1488
--9589 9596
-4474 -3656
--9960 1751
-2852 7296
-1274 -1864
--4019 7541
--9436 8268
-5144 -1108
-640 296
--4423 -3486
-1724 -3089
--3056 -8034
--4782 6169
-2728 290
-8631 -8587
--8742 -8311
--6019 -9639
--5953 1219
-879 5720
-3558 5403
--3010 3100
--1335 9485
--2634 3859
--5760 -1179
-4178 -1224
-7713 6509
--491 -5735
-4055 -4202
--9128 -6544
-9362 -7613
--859 1049
-6703 8643
-6347 1140
--7741 -2858
--2751 -7034
-2352 -7903
-3315 -1243
-5738 -9715
--8847 -4637
--3371 -5466
-1978 9233
--8688 -9704
-5367 8764
--7657 -2806
-3583 -9797
--3335 7676
--4711 343
--6567 -2585
--901 -1910
--3063 -1845
-9821 8871
--5852 5443
--1827 4255
-7546 9063
-1841 -9905
-6877 9520
-5297 3524
-2996 -1374
-261 -8085
--9366 -6270
-5399 1074
--7313 4699
-9040 5615
--9717 4827
-1654 4653
--2769 -1706
--9104 -8541
-1147 8941
-6541 -1035
--1318 2431
-5557 -5815
-5374 1458
-7653 7946
--8633 790
--664 4647
-9260 -8532
--5865 -8512
--8270 7724
--4709 9308
--4605 -5863
-1270 -107
--4229 -4177
-7980 5943
-9239 -9420
-893 -4937
-5008 9325
--4067 6434
--293 -6441
--588 -5680
-8377 -3377
--4696 4932
-5954 8605
-6379 -6237
-2216 -8990
-745 -9670
-5115 6291
-8197 9117
--2478 -3991
--8180 5761
--6486 2586
--6168 -4944
-5437 1228
--4298 4578
-576 6312
-8538 -1406
-2520 -9083
-7408 498
-7418 2301
-928 -7797
-8457 7381
-4004 7393
-8312 6561
--5797 7596
--6762 3176
--8847 6116
--541 -1313
-5199 3120
-302 8879
-4456 -6209
-5249 -1875
--3926 8864
--1216 -4895
--2134 -3442
-9591 5291
-3907 -5927
-6798 8810
-3389 -3259
-4074 9740
--2970 9946
--6538 5923
--2556 4692
-9592 -6662
--9079 3869
-2167 -8222
-3348 -7410
--721 2430
--7740 8629
--6863 -8649
-3221 -3082
--4804 -4788
-9846 -6825
-856 -3863
-3775 1420
--2730 9186
-2307 -5874
--1894 9830
--205 8751
--100 7524
-7744 -6438
--9123 2333
-9770 9510
-3886 -8852
--2457 -6557
-8237 -8347
-4685 3916
-1458 9693
-2869 -2176
--2649 -5871
--3478 -1022
-6650 2603
-1672 -6529
-4101 425
-3183 -1598
--2019 1590
-7901 -3784
--1017 8833
-2513 -4309
--436 -7101
-5841 -7573
--5789 -3447
-6496 3521
--5400 -6871
-5772 4550
--2888 1020
-5946 804
-9612 -8200
-5845 -3176
--8154 -683
-7578 -8360
--4987 794
--423 -4849
-904 9090
--2451 -1422
-9219 -414
--2218 -941
--8919 -2207
-5819 -4750
-5196 -4992
-5568 -1945
--4343 -6959
-694 7388
-8096 -1359
--3221 1847
-2776 -66
--6760 -3698
-5467 3537
-5073 -6104
--179 1948
--7286 -2817
--7411 -1994
-3436 1085
--6630 922
-1871 9069
--1119 1450
--6655 4675
-129 -3726
-3571 4421
--4412 -6395
-8800 186
--5940 -4128
--8086 -252
-7183 -7268
--7207 -6388
-2637 8373
-6769 3970
-9948 -9329
-6900 3101
--574 9734
-2636 4007
--2577 -1061
-4726 6318
-1282 -8482
--1648 8926
--1746 4418
--1252 2689
--9569 9909
-7291 7188
-117 9308
-4524 9874
-2264 -9280
-4157 6656
-440 4162
-8597 -6300
--1627 5235
-6744 -3696
--1008 6843
--8603 4130
--7714 614
--7711 9711
-8473 -9938
-2613 9116
-5192 -9909
--9681 8839
--9450 6350
--5941 -7116
--2569 -3058
-7795 1842
-4944 785
--6125 -2903
--7157 -513
-9811 5988
-8983 -9609
--4913 439
--3067 -7207
--3337 -2287
-86 6290
-1243 -22
--4371 -5853
--2903 1984
--9397 -5642
-5732 7724
--2249 -4726
--4137 5345
--4662 5463
--6932 -7897
--4729 -4168
--1310 -530
--9432 5040
--3041 726
-9182 -305
--2815 -263
--7350 1614
--2265 -5742
-1496 -9339
--6579 -2556
-4649 -1951
-2138 8050
-8689 4457
-7473 -2255
-6810 -5802
-6075 5119
-2710 -3723
-1903 9171
--7026 9577
-4625 -6734
-1674 -7739
-787 3714
--703 2136
--8884 -4276
-7099 9866
-6489 -3339
--2285 -6679
-6259 5382
-5939 -2999
-6177 -4924
--6496 -8280
-4859 -6197
-3519 -7356
--438 -9386
--2203 6267
--5917 -5373
--7713 -2618
--3814 8959
-1503 -9921
--162 5237
--7853 5491
--8913 6120
-5858 -2510
--3834 -1495
--9080 -4168
-2824 -971
--7532 3161
--3875 -8097
-9342 -1379
--2560 -4320
-4984 8037
--183 4897
-1294 -3721
-6835 1362
-3346 -3417
--2042 -2496
--3522 -8567
-9744 -4913
-4144 -624
--2995 4065
--1943 -2956
--3613 -4209
-3587 -6237
-5897 5644
--1814 6866
-2455 -2905
-4065 6922
-2237 -5827
-2800 -4519
-3302 -8274
--5334 -5624
-7921 -4528
--9453 6222
-9774 393
--2103 -6277
-2132 -2043
--6812 4994
--710 -7337
-7780 -49
-9241 5947
-5816 -6414
-3277 3789
--9595 1705
--4797 5672
-3661 -4009
--8406 -8694
-2716 8429
-2564 -8175
--4987 -8196
-7815 -7069
-6388 -1560
-2172 -1141
-9480 -5690
--7079 6636
-5865 6968
--1355 -1998
--2437 -2099
-6687 1684
--8016 -7595
-4973 -6092
--9281 8368
-4309 1031
--1431 3562
-8748 8238
-7192 -2206
--9901 -2716
-4913 -9768
--7239 6253
-7585 459
-4759 -6053
-787 9338
-3084 275
-5006 -3853
--9739 -4552
-1579 3468
--103 7484
--5775 4360
--2342 5725
--4002 -1817
-2817 -5710
-4696 -8893
-3258 6214
-6414 1962
-4034 5195
-6912 -4816
-4580 9642
--5886 -6401
--922 4116
--3470 -893
--6733 5077
--659 -9385
--6302 -9970
-6450 -6836
-5046 -1962
-7583 -3174
-7295 -2346
--9585 -3525
-3767 -1673
--6209 7978
-7101 -8579
-8768 2564
-8934 4760
-1172 -5218
--1213 -2133
--2649 -6768
--1106 -6178
--592 9399
--2902 6335
-7694 -5940
-8822 8
--4997 4019
-319 -7321
--4118 1501
-8362 -8821
-8468 8087
--3351 -4139
-5674 1510
-4878 6808
-9078 2663
--6583 -6057
--3018 8609
-2110 -5239
--1498 -8026
--4487 -9086
--6660 9548
-5442 4463
-8946 8017
--5861 -6812
-1000
--4129 -875
--8875 -1101
-4271 8792
--545 517
-7158 7296
--1649 5609
--1337 2652
-2032 6454
--1580 -7277
-4081 1776
-3056 290
-7803 -8725
-8174 -4800
-5834 -9997
-1426 -375
-6995 6630
--8171 4810
--285 -7701
-5474 7239
--5001 -3390
--3605 -2403
--507 -6455
-4315 4525
--1481 -7565
-8746 -1175
-8406 -2868
-1339 -693
-863 -6732
-2758 -8459
-5097 -4260
-7652 4182
-7516 -496
--1703 8941
--32 3696
-3534 2556
-5177 -8669
-5945 -3681
--2503 -9323
--4024 8876
-2594 -8963
-4314 -37
--2550 6150
--7395 -1920
--570 -3701
--9983 -2203
-2823 7318
--3410 1292
--7014 5459
--7390 -7719
--1001 2840
--9122 8671
--510 -6030
-3649 5214
--9068 -6160
--752 2724
-2727 6637
--3774 -5455
--4309 1349
-7581 320
--276 -40
-9044 1321
--3833 -8126
-3569 -9420
-3612 3978
--3912 -6300
--4316 -4434
-5658 -8728
-8704 -7192
--1750 -5751
--3644 -6669
--9582 -7944
-6801 5238
-4558 449
--7213 -8138
-5466 8944
-4052 814
--4439 -716
--9670 -3110
--3122 6724
--9721 3016
-1257 2804
--3382 4409
-9074 5189
-5798 -8014
-7185 5763
--2289 6792
-1248 1748
-3322 -3858
--4323 6484
-2337 -9701
-7170 7741
-4562 -4004
-8365 -5589
-5949 -8259
--8944 -322
--5746 2510
--7344 -2829
--9771 -6016
--3647 3659
--8195 7069
-1244 4857
-4238 -5590
-7525 -962
--6920 -5777
--4380 -9772
-4592 4002
--7208 -405
-5278 1779
-2844 -2234
--2849 -357
-3691 -3651
--5085 -8599
--4822 -5199
-4610 -5449
-1275 6743
--9011 -5961
-7023 7491
-3473 -9733
-1566 -563
-4938 3751
--7484 -288
-9037 7306
--8837 -1115
-9701 8907
-9811 7294
-5971 -1202
--4550 676
-3555 -2149
--4499 8026
-2426 -4272
--6824 757
--3788 1889
--6295 -9975
--5392 4160
--5187 -9241
--6736 -4453
-8803 5383
--6083 4575
--6231 -1839
-3493 6178
-8176 -7483
--8018 89
--2927 2376
--6525 -7519
-665 -7290
-6601 5223
-7064 4801
--5232 -1444
--8157 -5628
-7288 9890
-5996 -9239
-9791 2377
-2104 774
-931 -6264
--1563 2251
--192 6353
--522 9218
-8481 -8684
-6793 8338
--5744 6453
-1834 -6513
--3913 -4594
--7854 9102
--1736 -6486
--7970 -7864
-1452 -6496
-8950 6977
--7841 8809
-9053 504
-5543 9017
--9447 -7518
-4241 -1791
--9960 2178
--428 5600
-3019 4127
--3678 7718
-3668 1681
--7126 -5338
--703 -6637
--7872 5379
-7836 6702
-3328 -1003
--1797 5625
--795 2777
--6674 -3622
--2986 -1186
--8018 7037
-6609 3105
--8135 7527
--7696 -6548
--501 -8094
--3293 9277
-4698 -576
--3792 -5159
--256 -4785
--85 3206
--6373 -2595
-3724 -787
-1097 -9650
-7575 358
--19 -601
-3000 -1557
--6257 4785
-556 -462
--7306 -2811
--2522 6743
-502 8344
--3926 527
-4847 6722
--5300 5986
-3529 784
-5872 -6236
-779 5936
--6136 2005
-34 -1998
-5059 9967
-9206 7561
-8484 6101
-1621 6445
--6016 -2251
-3655 -8213
--4595 -2145
--2737 -2128
--7028 -1234
--1165 -3471
-5710 -4956
-9296 -4842
--3748 -8545
-2660 -6887
--2739 -1445
--4098 3212
-5283 6955
-8085 5979
--3324 979
--3516 -8201
--3099 -1542
--1848 -2803
-709 -2794
-1894 6013
--6211 -8604
-1178 4469
-1762 8550
-6108 -7285
-9765 2236
--4850 8703
-9991 4906
-6725 5851
-7936 -4506
--9927 1817
-770 -6535
-6891 3347
--564 -2019
--8512 -5437
-3925 -5237
-6998 7234
-6710 -2745
--3133 1097
-3560 -8528
--9967 7342
-5842 7504
--8226 4935
--8560 -2851
-8382 -3317
--8877 1388
--3185 9058
--9595 -5128
--4896 9626
-2884 9571
--6692 -8048
--2015 4126
-9356 -9240
--9029 5815
-1665 2389
-3403 9367
-1031 -413
-9332 6468
-1447 6315
-1823 -9164
--3579 4409
-6745 -9538
-82 -7122
--7223 8394
--6104 -6253
--4245 6779
-9445 -8233
-6511 -7613
-7115 -1185
--7003 4249
-6084 -4163
-3119 -4575
-1818 -1675
-1442 6013
-7897 442
--1568 -8306
--7140 7059
--1138 -4870
-5412 -6503
--7180 -3612
--6222 -9187
--5194 -3516
-6876 3593
--7405 -7244
-6198 104
--2690 -7350
-6910 -2511
--3094 -666
--8912 -2002
--1506 -3628
-7191 9806
-9113 657
-4485 -280
-4657 -5664
--9244 -5869
--4299 -9307
-6504 4721
--1465 -7120
--9927 801
-931 -1994
-7835 4096
-1925 7980
-810 -2551
-9280 1642
--6487 5863
--2354 5119
--2285 -5800
-9971 6895
-7693 2970
--8600 -3800
-130 4282
-8606 -7723
-4890 -3688
-6784 -2710
-404 5267
-2308 8764
-7995 -660
--8170 -495
--5050 -2286
--9496 -6221
--927 8144
-2926 -9984
-2068 -1593
-2840 -3198
--5808 4624
--8737 2897
--2296 4439
-7075 6316
-8090 6498
-582 -994
-5802 -309
-1226 59
--7387 5193
--7512 -8184
--8715 2553
-2057 2660
-3552 7989
--4959 -4371
-8330 5730
-6114 8437
-3213 -7025
--8897 -5075
--6955 -6097
--371 -8615
--2531 -9186
--4991 -3819
-6733 -2976
-7551 -7695
--2761 -4214
--4292 7110
--6132 -2291
-6885 6913
-2085 4614
-3319 -6687
--6707 5887
--8258 -3293
-3833 -2095
--8386 -2083
-4876 4680
--1130 -3443
--4315 2598
-9736 -3003
--2632 4343
--8544 -2733
-7066 -312
--3034 -6497
--25 -7172
--2475 6229
--6305 1892
-4127 -9967
--900 -3002
--9358 9983
-3889 5187
-8884 -8889
-5876 -972
--8157 21
--6437 -5789
-6519 4900
--9468 3145
-5679 -4925
--6642 -9399
--2277 9466
-155 -4082
-8933 -9343
-3023 6478
--1134 370
-5779 -1973
-1408 1906
-4262 7125
--6774 1727
-1134 5915
--6428 -6201
-2484 -5299
-4327 5581
-2838 -7616
-1537 4037
--572 270
-7079 -8186
-2342 1223
--5409 9988
-8056 -6136
--7384 6452
-3961 9411
-5292 -5691
--5251 -3863
-2633 7200
--6149 4764
--556 -4623
--1254 2690
-9805 -9383
--1672 4116
-638 4118
-5544 -8230
--8673 3600
--494 1558
-5812 9998
-3446 8078
--9404 -315
-549 -6387
-4040 -878
-4514 -7340
-4998 -9917
--8302 -142
-1740 -8149
--8124 9071
-9190 9446
--8438 3579
-7967 2397
-2608 7641
-9274 -7856
-3894 5256
-9933 4874
--2052 7275
--959 -6318
--3531 5918
-781 4333
-7927 2555
--3794 -7781
-3973 -5552
-135 4160
-7692 -6255
--726 5962
--7660 3705
--7904 -1351
-2454 1026
--2306 2109
--5462 3280
-922 5207
-8675 6164
-7300 -964
--764 5973
--6890 5803
--4289 6528
--188 -5707
--3427 814
-1989 -4414
--4762 -5272
--6981 -1782
--9109 -8370
-7036 2254
--7800 4922
--4508 -9981
-9916 8952
--1887 -2796
-9080 -2054
--7868 4864
-5906 -9957
-5073 -2379
-1386 -4068
-6921 -7181
--9096 -3167
-6966 7928
-6262 -9562
--3387 1600
--8830 6558
-1033 -9779
--6332 -4666
--9771 5231
--3437 7185
-5316 -1772
-7976 2121
-6743 -6590
-3475 -1595
-6083 4120
--6760 -1813
-5541 -3379
-7237 -6782
-7332 4497
-648 -9738
--353 597
--8184 -6173
--7239 -6829
--5165 6748
--2815 5373
--4055 -2007
-3991 -402
-1945 -8726
-2429 -9938
--3761 1788
--1042 -4977
--7491 -1880
--7280 -3763
--7091 -935
--4201 9766
-8889 -4266
--539 -336
--7666 7163
-4925 4554
--241 8246
-5402 7247
-2461 6932
--7096 8748
-2696 -8020
-6037 -3115
--3092 -2222
-9223 -8973
-6179 -416
--9099 3129
--8664 -7518
-2619 -1332
--4145 -476
--226 3567
-300 392
-6594 -7505
--2305 -1521
-7700 -1080
--8668 -5370
-1367 7271
-4523 8869
--1029 -7979
--3129 9555
--5029 3973
-5772 -3812
-5249 -7290
--7414 8967
--574 -8350
-9141 -7273
--2352 2144
-6834 1187
--1073 -7342
-3062 -2659
-8953 -1701
--7265 9177
--3782 1756
--844 -9061
-2516 -4943
-2211 -2130
--3254 -6514
--6587 5449
--7059 -1977
-575 -2323
-1334 -533
-8349 -6033
--9236 2501
--2000 -4363
--2682 5736
--7320 2570
--5589 256
--1527 -2710
--7531 9702
--4011 -6376
-3366 -4456
-3194 -4375
-8942 4141
--3108 -9711
-1633 2543
-9693 2687
-8148 -5671
--3759 9697
-3500 -6724
-7638 453
-296 6071
--8967 -2308
--8216 8574
--1522 2041
--8510 2443
--9387 4092
--6425 -9929
-5687 6881
--3179 -5192
-6709 -3057
--2649 -6236
-7525 -5
-3565 -3084
-1404 7489
--6868 9727
-4178 -9907
-1406 6551
--7190 -5819
--1855 -4027
-5125 -1171
--853 -9
-8960 9190
-4175 -5508
--9841 8577
-6957 -5924
-3983 1577
-5328 -9962
-9235 -5756
-4597 -7627
-6707 -9136
--1175 9766
-8454 -6863
-5586 -3185
-621 3181
--9686 1141
-9895 61
-9071 227
--2722 2814
--2824 -8215
--5317 6803
--526 -7034
--6579 -3267
-7539 -2480
--9644 -3092
-5835 2953
-6885 2483
-2796 8976
--6888 5657
--2718 479
--3046 2786
--9463 -7752
-8658 -9206
-3661 6008
-9476 -8008
--3596 -3923
--2146 370
--1075 -1289
--3166 -6887
-2829 -4342
-7336 -3825
--6296 6863
-9597 -9536
--6585 -638
-2358 283
--7821 530
-7722 -84
-9194 -7153
--910 3614
-5051 -4812
--3051 9947
--7188 -5012
--9145 4391
--9198 991
--8357 -6392
--8633 -6499
--6829 -3868
-2816 -9315
--9286 1779
-2501 5219
-1774 4184
-5608 -9247
--4851 -6830
--9550 -9228
-5135 972
-1997 -1688
--7812 4040
-4637 -9462
--726 8825
-6977 1915
--8196 -3171
-3683 3606
--3271 -2918
--6410 929
-9798 -7086
--8359 -2125
-21 909
-6489 -5576
-6895 8476
--6876 2264
-2064 3925
-5802 -9491
--2666 -9492
--9710 -9651
--3186 -1639
-4631 1183
-9097 5044
--6842 1382
--1917 -4702
-6429 1424
--9266 -7675
--2088 1399
-2014 9997
--7295 4076
-8563 -1425
-7483 -2107
--5756 9999
-2823 1660
-1813 6793
--5668 2424
--3546 8271
--1070 -6274
--9125 9494
--7036 -3110
--8889 -4538
--5041 9731
-3388 8917
--5754 -7139
-8996 -3208
-1460 -4604
--9561 -50
-3132 -9098
--5803 -5367
--4326 4744
--2241 -925
-5027 3416
-2834 -7095
-8634 1063
-2529 4063
--5416 -8494
--2699 3853
--9101 -1183
--1190 -5729
--2074 6618
-2004 9990
-1774 4554
-3510 -549
--407 7707
--452 -7229
-6707 -7413
-5321 6668
--7558 9991
--4263 7189
--3103 4890
--8193 -1182
-2895 -4477
--5335 -4701
--9608 -7736
-2934 -3866
-8074 -6000
-2722 7817
--514 9229
--4310 -4444
-4732 2342
-8955 -9003
--6965 -1807
-5358 8649
--941 757
-1333 8615
-2262 -2348
--9703 3858
--4411 6357
--241 2404
-8217 9933
--9030 -7832
--4667 8018
--7799 4720
--1026 7156
-8830 8170
--1645 -9448
--453 3074
--2835 -4055
--6133 -2450
--3445 -5818
-2933 -1831
--635 8041
--3155 7714
--4698 -455
-2024 9418
--9807 -8292
--4098 7505
--6656 -5692
--6561 3280
-2578 4183
-5947 -2701
--1028 -7545
--9987 -7747
-8691 1335
--6558 -7253
-1859 -1540
-6562 -6856
-7371 -7903
-5569 -1950
-825 364
--9951 3945
-8179 7533
-8428 -8102
-2983 3407
-2495 9712
--9142 1358
-7982 1740
--5654 -8417
-6907 4959
-5227 1389
--8843 4439
-8686 5352
-7200 7772
--2137 -8001
-6478 -8587
-5342 9936
--6950 -1766
--6896 7323
-7932 3055
-3655 291
--9293 -2778
--9118 -8564
--643 -4006
-3895 7466
-4852 -6030
-2248 -4868
--4348 -3935
-1213 -4955
--9462 9056
--7230 -8583
--3577 8661
-6680 464
--898 4319
--5120 -2137
--3379 1446
--6784 -4300
--823 9167
-8921 3460
--8907 -274
-4945 5174
-2118 -7584
-6101 5563
--2849 -8251
-139 -3650
--2812 -1931
--4134 9726
-437 -3040
--5512 -3417
--8906 -2028
--9271 -9314
-5892 830
--6957 7340
--2469 1382
--2726 -2563
-4753 5831
-253 5639
-1557 -7679
-6206 4711
-492 -6891
-7308 9979
-9893 7990
-8820 -191
-1612 -8429
--6813 -4769
-7366 2921
-4290 5873
--6124 7454
--2992 -9161
-491 3699
-3976 6819
--3888 -1079
-7145 9751
--7046 5274
-9926 -8033
--1400 8582
--6301 -4710
--2690 -2495
--4237 2240
-8614 -264
-1098 9748
--829 -3943
--5283 9287
-3701 6987
--9731 -8438
-9192 5542
-2570 6884
-468 -2588
-606 -2406
--1325 -3342
-8651 -4135
--8402 4027
--5258 7502
--2971 3609
--5205 -3835
--519 3690
-6233 1195
-4112 8464
--5170 4769
--1867 -4014
-5882 4213
--1918 6663
--2936 202
-7174 6957
-851 -1237
--2682 9216
-4894 8812
--4625 5378
-4779 -9057
--7425 9086
--3551 -9656
--4103 958
-5332 7000
--3779 -6598
-1656 -8040
--2146 -8384
--8045 -3058
-8709 8095
-8777 3223
--8936 -7049
--3404 8035
--9048 2950
--1420 -9237
--6998 -1060
--4424 -9728
--4107 8288
--8087 -8658
--5492 -604
-567 3124
--8003 -2360
-8682 -3026
--6659 3278
--8559 4680
--7037 4894
-7293 1529
-9405 6287
--8630 -1303
--5683 5665
-7173 3313
-841 3455
-1015 -1535
--9372 -5109
--3636 5998
-9322 -3286
--9413 7894
-9163 4065
--2699 -7319
-9192 -2343
-6575 531
-1109 8447
-7641 8069
-772 -2170
-3844 3357
--8311 -2853
--8349 -6299
-7949 4571
--5556 -9013
-3873 7184
--5071 -1415
--8620 -7029
-1212 1632
--696 4854
-8969 -9414
--699 18
-1820 -4921
--1779 8759
-2077 -9995
--7624 3577
-9912 -3348
-1554 -2751
-8994 6399
-8616 -5047
-8457 7600
--7348 -6728
-3886 3625
--7694 -5951
--8816 -2585
--4574 8696
--1333 2185
-4086 -3492
-1692 3401
-3503 7298
-5407 779
-2079 2857
--8970 -4959
-4621 406
-4279 1847
--9450 8460
--3777 150
-4615 -4562
--5587 -3198
--2421 -741
--5163 5862
--8697 9056
--7993 -9083
-3756 -541
--2696 -6161
--9883 5293
-6333 4444
--2827 5938
--357 3115
--5927 6718
--743 -4956
--4836 -9180
-1934 -6530
--7498 5607
--3209 -5163
-4445 9102
--9467 5223
-1000
-1915 7176
--4414 9868
-7749 3020
--4408 -2600
--6460 4989
-3998 7921
-9034 -614
--7976 2331
--9410 18
-4727 -9061
--4371 3116
--8548 -950
--3156 5157
-4202 -9849
-9488 2759
-8069 2066
--8710 -2262
--2469 -2303
-860 567
--5968 5158
--8344 -8065
--9682 -1678
--1159 577
--4665 1437
-4143 275
--2389 6822
--4286 649
--4027 -7132
--6190 2979
--3094 -9971
-4360 -6754
--5686 5326
-8756 2033
--6509 865
--4261 -6422
--3421 4604
-818 -8367
-8893 5282
--364 -8052
--1074 1740
--9127 7518
--1148 -1607
-6456 3909
--9649 4569
--9976 -5860
-7772 8573
--7256 -1779
-6214 -9441
--4024 1341
-9848 7834
--9372 -7073
--3124 9545
--3436 1944
--5648 -8046
--6905 4255
--4006 835
--1653 519
-1628 -8466
--2964 4912
-8889 -8535
-9527 -8257
-809 537
-4440 2805
--9994 -80
--7814 -9787
-459 -3529
-3932 3123
--5512 6740
--3790 9390
-9193 8632
-5675 -3666
--3058 5073
-7893 -145
--7669 7586
-7703 -6326
-3944 4580
-4734 4711
-3517 -890
--4514 2050
-5177 5853
-9320 -6508
-4920 5966
-6671 4390
--7373 -9587
-7822 2744
-217 -4721
--5582 7890
--2636 -9288
--493 8457
--9955 -6021
--7850 -7177
--6258 -5006
-7349 -94
--3912 -8833
--5512 -8115
-1622 8614
-1743 -1969
-9321 -3229
--6986 -9535
-9284 -3432
--3064 9184
-6977 -3326
-2036 9604
--6046 -7488
--1658 -6981
-5912 957
-8362 5106
--3548 -7214
--4961 -6490
--6791 -9712
-2420 -7486
--1376 -9531
-2209 -3082
-9247 8213
-2368 8324
--8390 -7243
--796 1303
--406 2113
--7472 -158
--1377 -4527
-7567 -770
-5682 -9179
--9354 -640
--9447 -7648
--780 9255
-6430 -39
--626 6825
-2270 -6916
-9204 9638
-2604 5704
--6430 -9467
--6150 9377
-1778 -5112
--9146 4944
--1947 -7194
-9439 3087
-4620 8543
-8391 8061
-2494 -1704
-5027 7728
--6456 -7780
--5551 2472
--4033 -2893
--2574 -5711
-7063 -563
--7605 -4661
--3394 4437
-3315 -2238
--6047 3119
-4847 8224
--6310 -3756
--1161 8058
-2165 -7422
--3291 -3744
--5791 4037
--6714 -7834
--1986 -1670
-6141 5613
-658 2336
--176 -94
-9449 4501
-9568 -7544
-9704 5024
--3561 4228
--8742 5009
-6435 4993
-3558 9019
-1607 -3902
-4374 8962
--9592 6309
--7322 -5466
-5026 -120
--1951 6882
--5963 2262
--7413 -1068
-3966 -8492
--1990 2594
--7398 12
--2064 3165
--2314 -8714
--6154 7577
-4971 -4878
-8700 -5629
-6105 8556
--4178 -4998
-9543 2134
--6766 1606
--3201 7845
--4370 2876
-23 4329
-238 4224
-8665 7039
--5524 -513
--7654 4322
--3116 2547
-8350 304
--4866 -534
-8019 -4202
-5124 5353
-433 -8449
--588 2105
-7125 339
-8617 -8698
--4496 4907
--9383 7639
--6879 -2757
--9296 -8455
--3136 -5421
--4385 4543
--6962 1568
--5320 3752
-6001 8140
--1299 4550
--3476 -182
--5828 -9733
--150 -923
--7203 -9827
-6593 -3457
--4151 4447
-4268 3035
--8900 9157
-8532 2657
--9943 6746
--4569 694
-4981 5480
--182 930
--2617 4257
--7281 -9585
-5721 -1451
--3885 2089
-7558 -8449
--5006 -7710
--4599 8047
--8266 5731
-5065 8326
-4736 9334
-1804 -4302
-3284 -2719
-2955 5906
-534 2104
-2830 126
--7034 -2909
-4951 3826
--4448 843
--8552 9340
-7990 -6016
-1144 1773
-9337 -1363
--9160 -7433
--3703 -6823
--9277 8802
--5402 1163
-8728 2054
--4785 1342
--7210 -1498
-368 -4447
-7012 -5605
--9892 -1730
--9219 -7616
--7452 3209
--3331 7837
--4867 5826
-8930 -6433
--6926 9504
--6134 -3850
--8811 -9751
-8521 1693
--6691 -3541
-1547 -3004
-5387 -9241
--6766 3194
--2223 -1469
--8970 8632
-5078 -2615
-8055 9455
-296 -292
--2373 -5265
--8462 -3506
-483 3320
--3168 -7142
-1400 -2675
-2227 -5676
-2402 1882
--8676 1543
-8678 -794
--2437 -2627
--7855 -4715
--9000 -9552
-1062 7140
--286 -4619
--4219 7145
--6128 1942
-2918 5349
-6296 8039
-8216 -1263
--2064 2564
-2388 -1201
--7698 -3055
-9559 4099
--9620 7811
--8227 1974
-6056 -3164
-1765 7200
-1540 6407
--8420 5588
--6641 -967
-4022 -481
-6214 -2484
-5556 5136
--6638 -9368
--4327 1189
-3002 -7120
-9349 -9151
-4193 8232
-6457 3303
-2509 6114
--2764 -7698
--3765 -300
-6118 5018
--6916 7772
-360 -3994
--6729 1942
--4211 4023
--3224 -4348
--5774 5242
-8200 3539
--7122 -6962
--9373 -1557
-1436 4190
-4371 6850
--6956 2481
-7355 102
-5721 -8367
--2206 6285
--2949 1339
-8009 8388
-712 -9308
--7474 -5888
-4139 -6084
-4225 2199
--7632 4570
-5081 -9928
--4661 -8706
--9214 -3985
-2607 -4531
-3994 -5149
-9181 -8890
--4946 4695
-4948 2938
-9178 5811
--3903 -1111
-9533 2380
-5252 -5956
-8640 3228
-1590 6146
-3168 -6508
--9503 -3962
--7458 5048
--9118 -3411
-7589 -155
--6845 9456
--7669 5011
--6347 8581
--1092 -9274
-8055 7962
-4744 -6735
--6522 7757
-6174 -234
-2927 -2874
--6666 -7990
--6697 1834
--9048 3008
-3500 3856
--6789 8876
--9944 333
--104 -6513
--8886 8122
--3822 -1667
-7829 -1952
-1573 6643
-5776 945
--326 4488
-297 1358
--3759 -6499
--592 9089
--757 2014
-5973 4923
-3584 -9398
-386 2499
-3726 -4044
-8093 311
-382 -7053
-6078 8654
-7508 -2695
-7871 3069
-5369 6082
--4241 -7576
--9714 -4103
-4023 3160
--8029 6198
-1701 7433
-4070 910
-1312 -3538
--1006 -6872
--4188 -2847
-2673 8125
-8245 8699
--339 -9997
--1578 -6134
--1797 5190
-5048 -8730
--3112 5152
--9127 1125
--2151 2232
-608 -4994
--8959 4609
--2368 -8609
--9966 -3557
--9738 -7853
-40 -7045
-1496 -2751
--3985 -8019
-1773 5103
--2718 221
--3828 -7658
-2964 -6785
-7540 -991
-7086 -4285
-544 -5107
-3871 286
-6365 9271
--9517 -9554
-1173 9828
--8775 -4256
-6240 2060
--5620 -6237
-9769 -8642
--4237 5394
--2243 8363
--691 6260
--4772 -4208
-6457 -9901
--3857 -5842
-1547 3444
--3341 18
--2724 -7505
-3269 -6223
--131 2713
--332 9243
--250 7480
--1716 5000
--1879 8942
-8346 5824
--7231 9372
-6419 6840
--8169 -7371
-9935 -7597
-1910 -8338
--5778 3187
--6446 -1051
-7910 5340
--9592 -9747
--1513 8259
-3547 4084
--3119 -187
--9422 7277
-36 -559
--4164 -1664
--6261 -2420
-5892 -7858
--3586 6061
--1443 -8118
-9102 -2684
-2509 -4754
--6914 8609
-6045 -4293
-3208 9696
--7841 -3313
-6680 9011
-6416 -4662
--9163 2601
--6306 3236
--6316 4462
-8325 9057
--2224 -1287
--5739 1682
-5755 -6005
-6120 -3723
--7428 -5998
-9739 9641
-2681 -7889
-1478 -9484
-95 -8675
-6057 -4167
-5624 -3873
-7072 9334
--8733 -2022
--7866 -639
-3692 1550
-5435 -3821
-2538 -8820
--6859 -8547
--9776 6037
--2163 -295
--2740 894
--3980 2842
--773 9169
--1552 6688
-5173 3565
--5281 1033
--9717 -1547
--8519 9690
-4825 -4659
--1570 4749
--1438 344
--7217 -488
--5399 8516
-1147 4255
--2906 -7750
--9685 -2212
--1825 -1334
-4317 -5972
-4437 -8202
--6687 -4026
-7833 606
-9020 1790
-95 3166
--8917 5672
--4763 -8594
--252 -1723
-2420 -6248
--8629 142
-1441 8595
-1305 1216
--1944 -2411
-1187 6227
--3741 -6980
-5800 -5410
-401 -914
-1584 4315
-7569 -8777
--8403 -9784
--6399 6214
--6642 -7834
--5217 9294
-6579 -5874
--8459 -667
-3577 9705
--387 4831
-2427 -9219
--5346 2193
--7524 8413
--942 -2646
-3811 1118
-3080 -1977
--784 1009
--5549 8810
--1872 -1482
--9832 9378
-8695 -8451
--5222 -5648
-1207 429
--3999 9213
-4560 -2565
--5255 -264
-6422 3736
-8871 -5025
--3227 8982
--9640 -9344
-555 -1912
--2896 7030
--389 -9338
--2467 5581
--1720 -6415
--6744 -6732
-6965 285
-611 -1423
--656 -2111
-9922 -3603
-6830 5742
-9176 -1762
--5686 4590
--5769 -5861
-4543 -9173
-7173 -5537
-2712 -7554
-4945 -192
-1132 1877
--7793 8290
-7603 -4017
-8329 -8244
--5622 7253
-6953 7401
-4832 -810
--3178 3983
-1736 -707
-50 2379
--8790 -7143
--4766 4956
--1189 396
--829 -969
-3994 5294
-6599 -7917
--4054 -3552
--7366 8093
-7588 8246
-587 -5939
-935 6417
-3199 -6082
-8476 894
-3297 -7659
-2877 2908
-755 -409
--6029 -7219
--9163 -2137
-3441 -1856
--1019 -6829
--3708 4451
--2413 -4267
--9006 4152
-1179 -7912
-3025 -7927
--8691 2377
-601 -4855
--8822 3237
-5373 -2618
-5884 -5706
--6008 8908
--1145 6367
--5016 1355
-9183 6190
-1100 -1145
--552 8693
--6666 4626
-5513 -5895
--4725 -3267
-5414 -181
--9605 -5608
--3254 863
--4286 -5921
--5058 2245
-4164 9086
--6968 -3337
--2420 -9440
-3572 -2033
--4221 1212
-1372 -5205
--5702 6730
-6762 4745
-2450 -960
-9634 -9987
--5685 6187
--817 2911
--4925 -6276
--8166 3955
-3074 9449
-7178 -4318
-5905 -7705
--9645 -524
-8941 -2554
-8578 -7777
-4667 3000
--5996 8474
-2274 2070
-9792 -8488
--2832 7961
-2628 -5861
-6345 -756
--1758 -4640
--4201 -191
--393 -8647
--6892 8972
-382 -5462
--8822 6608
-7435 -8481
-988 1155
-7983 465
--2545 7860
--3054 -5930
-9989 9608
--112 -4544
-6293 5719
--7851 -5148
--4559 -913
-9442 3987
-9215 -2746
--157 -4813
--8766 -6520
--5973 -3155
--5857 -6636
--4984 -8996
-3140 -338
-9202 7456
--7733 -5399
-5055 -8331
-5300 4252
--1323 -4092
-7109 -3519
-5927 -1195
-7644 6104
-886 -4856
-7664 -3858
-2636 3159
--9526 3582
--380 5623
--912 8122
--6782 -9811
-4915 980
--9795 9874
-4297 5736
--4377 782
--2219 9266
--4524 -3672
-9186 -920
--1952 3099
-7127 -2746
-271 5948
-1268 -2428
--5012 6077
-4605 -338
--9565 6869
--393 -8439
-960 -2831
-4420 -6805
-4756 2397
--8311 -2472
--6785 -6939
-2654 5553
--2578 -5848
--1914 -1580
-8791 -5264
-4167 2766
--1574 993
--7056 -5250
-6906 7545
--589 970
-9040 -8025
--8951 -4371
-4339 1031
--6583 -6975
-3074 -7955
-8672 -8502
-4248 -8027
--8939 -3963
-1749 644
-135 -9937
-5047 -6045
--8074 -4673
--2923 -8067
--4932 -7267
--8110 -8206
--731 -1020
--7448 3266
-751 -3463
--8096 -4635
--5270 -5826
--519 -9206
-8795 6008
--5537 -1058
-3810 7582
--4272 -1834
--6501 7070
--9052 -1726
--7024 -3099
--873 -7523
-8196 -3206
--8972 7050
--2609 4801
-6932 -8848
--7601 409
--7582 1441
-6485 1405
-2499 7192
--2436 3613
-9139 -8249
--5005 7072
--43 6664
--7299 -8475
-5050 -117
-1642 9164
--7361 -4412
-1287 -5959
--2267 5653
-8866 8316
--6196 21
--6016 6894
-8631 2292
--91 -3543
-9480 900
-7676 4306
-1644 3782
--2593 1943
-7787 -2023
--3650 -5807
--5106 -2745
--8640 -1900
--447 2010
-9586 -4257
--7842 -5970
--1969 -327
-7650 8116
-1837 -7712
--7091 2885
--6516 3225
--2776 -3884
--5878 9553
--7507 4414
-106 -9147
--4047 2681
--1278 -8704
--7723 -109
--5915 6632
--5295 -5527
--7319 1795
-9483 -2011
--7573 2901
--9479 -1946
--4259 -6341
--2919 5698
-1785 3484
-9289 -4723
-4212 -8970
-5825 3748
-3205 4941
-2694 3366
-75 -5829
-4767 -507
--6609 -7439
-6163 -6506
--8202 242
-8368 7574
--6209 -1492
--4176 507
-4705 9527
-8229 9781
--836 7304
-7172 4040
-1394 -7826
--3104 2678
-8235 4874
-2667 645
-9261 -1924
-9981 227
-8912 -4402
--9217 -8385
-5683 7662
-236 7070
--7431 7011
--9754 3607
-5830 7942
--9159 4923
-1543 -5143
-600 1137
--1807 -9705
-1541 5509
-8516 -9261
-6040 1324
-8134 9312
-7666 9193
-6172 -4234
--1718 -4545
--776 -463
--8993 -9315
--4509 -7719
--6912 -3335
--7392 -3730
-5562 -9772
--9753 -5067
-5034 1026
--8613 -9685
--8066 3774
-998 -7015
-563 -6087
-4346 5206
--3380 6247
-8840 -3249
-1600 -4230
--3388 1220
-3482 -3008
-840 -8037
-7384 -3992
-4934 -548
--1393 -4860
-8836 126
-6432 -4740
-3747 6891
--8043 8223
--2290 5924
--6955 -4960
--7379 -9210
--6682 2395
--1062 -1900
-181 -5993
--781 -9693
-6042 9015
-9538 -9085
-9337 9205
--2180 -7175
-9398 -9663
-1141 -3967
-4316 -9484
-893 1533
--7379 -4634
-2778 -8206
--2230 -4490
-8787 -7147
-6472 9110
-6523 -948
--7350 3013
--8359 9132
-811 4903
--4128 5051
-8158 -6148
--8968 6085
-6250 -9337
-6379 -879
-2264 839
-4753 2102
-6183 -1989
-2632 9738
--9333 -2729
--8346 -7062
--9450 -9280
--7830 -1098
-1651 8482
--7506 1679
-5973 -2233
--5978 1807
--3354 -1871
--6818 -8910
--785 -2260
--8450 -5707
-5729 -2308
-6405 3896
-3780 7354
-6243 2454
--5614 295
-403 2031
--7855 -4347
-3870 -4999
--4933 -8915
--369 4929
--6803 7289
--2157 7051
--3124 3970
--3192 -6550
--9538 9415
-2884 -3626
--8683 -5450
--4810 -7761
--4151 -5160
-5448 5856
--6805 5795
--1109 4178
-3419 -2495
-5607 5710
-4240 5240
--9597 7515
-3178 -8146
--2057 -5434
--7267 -8113
--6771 -7659
--2873 -5688
-1727 -5345
--7376 -7097
-8076 -3104
-3916 -9205
--1320 -400
-8108 9297
-8999 -5807
-5149 1752
-1330 -8575
--4107 -9509
--8547 -5936
-3809 7432
-6251 6085
-4697 -3635
-1204 -3026
--3302 3329
--1563 -8228
--550 -6663
--3709 -7729
-5957 772
--7490 -1967
-3845 -2430
--3519 -7910
-8003 -9676
--3962 -6137
--6049 9100
--635 7861
--8997 833
-3119 -7160
-9521 -7456
--9790 -8590
--1583 -8538
-1358 2735
--4227 -3894
--7889 4329
-2215 -8945
--4874 -5866
-1000
--7981 -6263
-9342 -9586
-3522 1324
--3259 8361
-9328 -6335
-5610 -8450
--92 -264
-1564 -866
--6008 8094
--1525 -9099
--3758 299
-4136 2544
--7296 437
-9962 -562
-1526 -4788
-2478 -7519
--7883 4893
--4478 9827
--649 2665
-6287 -402
--433 2048
--9013 -8190
--4485 1948
-311 -6150
--9235 -309
-4787 -4238
-2831 -2225
-8249 -7413
-8853 199
-6781 -8544
--1695 -4782
-6228 3712
-9420 -733
--2359 4536
-9535 -4022
-6684 9337
-1053 4146
--8486 -8986
--8081 -9394
--7907 -3242
--3492 8707
--8730 -8078
--2969 -12
-9136 -7684
-3616 -2227
-677 -4755
--5332 743
-8683 -1298
--78 4931
-2559 -7155
-8485 -4633
--5632 1408
--8642 1195
--1716 7996
-5709 -4215
-5076 2397
--4271 -3057
--1840 -8366
--3936 -3643
--7255 6914
--2554 -367
--8393 -4901
-9890 9111
-6248 -7602
-6530 9175
--8359 -2697
--2347 -515
--833 9845
--7343 -3807
-6655 -5292
--3853 6709
--8427 9242
--8706 3861
--6182 9104
-6098 -4908
-2943 -1474
-9754 94
-4741 -3452
--7719 -2030
--8246 2722
-9148 -2819
--1583 7978
--1505 1162
-4949 -5915
-5250 -4621
-1562 -7096
--3698 -1644
-8895 -6103
-6903 4521
-2789 9283
-1378 -9856
-7014 -3538
-1206 -1774
--6035 5552
-1461 -5975
--795 1968
-6770 -2705
--64 -6886
-2418 8329
-137 -4895
--6668 -9262
--5523 36
-7940 8943
--1165 -4541
-3428 3610
--6049 -7314
-47 2846
--3725 9364
--9742 -7758
-2258 -7733
--5587 -5935
-7187 1478
-5915 -9959
-5197 1171
--8425 6561
--4886 2721
-248 3279
--2846 4098
-2459 3341
--560 1755
-4443 905
--6571 8486
-4078 -7049
--3205 4113
--9075 6406
-9792 -1958
--9900 4501
--7103 -4267
-2360 -8787
-6323 1250
--7666 3363
-987 7970
-7272 -5361
-4234 761
-9579 -5464
--6203 4939
--3545 -1182
-343 8165
-8115 442
-6745 303
--6771 5172
-8797 5743
--9434 8188
-8729 6674
-5065 -7151
--7841 -9305
-9529 -7896
--2329 8157
-7098 7161
--1901 4309
--4559 928
-1191 -2419
-1380 -4879
-3371 2646
--4526 -1325
-6475 -360
-1198 -3413
-5420 135
-9038 8750
--2661 -9097
-1080 1668
--9439 9238
--3138 5603
--1963 -7715
--102 4502
--8262 -8220
--6494 1758
-9564 -9794
--7929 -878
--5931 1820
--2570 4224
--2898 4306
--2311 1389
--6837 -5947
-6544 -4822
--1575 6700
-6948 6510
--6710 1451
--8943 2748
-151 -8079
--7050 -3173
-1797 5356
--1045 8815
-3706 -6460
-4294 -1213
-2045 -5690
--3824 7824
-7130 3584
-7478 4977
--2010 9408
--3026 -5803
--375 -58
--7942 -4495
--4652 -3297
-5735 -3907
-9472 4379
--6655 7413
-1260 5838
--7140 -6061
-3379 3756
-1926 1026
--3557 4111
-275 3690
--3847 10
-4331 3317
--5729 5587
-9945 3591
--5266 5558
--4094 5741
-4217 6204
-1771 582
-8355 -344
-9828 1776
--943 -8476
-9406 -2056
-2887 8850
--9861 -7285
--4313 2555
--4659 4899
-4232 -1260
-3061 654
-6111 2351
--8071 -9637
-9660 -8497
-5676 -3829
-9043 -9315
--347 -3018
-6269 7228
--2749 1375
--3334 -3779
--3079 -6801
-9722 8877
-9341 -8665
-2431 5914
--8321 -3489
-4634 -7294
-2391 1493
-214 7274
-6767 -6051
--1427 -8589
-6474 3675
--3180 9414
-7289 -8858
-4871 -8215
--5393 -2627
--7572 1607
--9889 -4270
-9238 4805
--99 4740
--5878 -8188
--4606 -574
-9227 5836
-9500 -5501
-7294 4260
--1349 5318
-8204 -9990
--2980 9339
-2776 3127
--1131 9791
--1141 -288
-1275 7791
-9899 -5056
--4261 -755
--893 -1677
-8075 6339
--4028 -7582
--7656 3029
-6036 3665
--8291 -3517
-4951 3410
-3975 -6349
--5306 8897
--5867 -5207
--9902 781
--8681 -8602
--6382 1212
--823 -2486
-3387 4978
--1057 -9310
--1308 6433
--6595 3352
-3811 -8613
--5736 -5852
-3598 -5565
-8741 -5842
--870 1972
--6683 -3639
--4721 -1470
--5159 -7597
-8071 2203
-1778 5276
-585 5143
-6895 -6635
-1914 -2592
-4087 -4670
--2901 -8301
-5905 9110
-737 8986
-9582 -7975
-1078 4589
--5093 -7966
--9159 4314
-7042 -4517
--5258 4710
-9685 -3459
--4463 3288
-3929 -5902
--9501 -4899
--7245 9383
--7554 1483
-4833 4313
-9468 5949
-5362 -8961
--531 -8532
--9959 3946
-9625 -1350
-8258 9728
--8890 5328
-5530 -9433
-5785 -1731
--3802 -7915
--4934 -9435
-5168 3361
--6360 7783
--5316 4591
--5509 6325
--7883 1182
--942 5829
--513 9837
--9478 -636
--5655 3114
--4828 9105
-6788 2025
--464 4374
--2421 1460
--1167 1356
-5964 -1139
--7525 4372
-7018 -166
-7266 8384
--9457 -9785
--8564 -8917
-306 7309
--7082 9564
--2221 7027
-6176 -1829
-9089 2430
-5623 2234
--4650 -4248
--657 2407
--5739 -423
-6366 9185
-8063 -9072
-9137 6302
-7269 8389
-7974 513
-1616 3737
-6673 4388
-5190 4093
-3291 5214
-2100 -5101
-1354 -284
--1126 -898
--3914 -5655
-8091 -2009
-468 -8280
-1655 4208
-120 219
--8974 -1757
-4841 -4230
-2802 3306
--1755 -4976
--8469 7237
-4091 1137
-2747 -3269
-5280 -4932
-9653 4420
--7776 -9642
-4201 -5069
-3322 6713
-1761 -790
--1633 1286
--720 -1710
--9436 7721
--185 -9984
-532 9333
--8291 -4642
-38 -6298
--6545 -8685
--1076 -8844
-1765 9096
-5662 -6820
--6837 -8325
-4109 -9098
-1209 4344
-9063 8233
-4910 -3148
--4320 562
--7557 4495
--1830 -3983
--4906 8360
--9456 -9825
--3877 -1975
-2639 4533
-2386 5337
-4193 1293
--7432 -2259
-2006 -8237
--2195 -5826
-7661 -3739
--3312 -4443
-2334 3671
--3335 -4629
-8027 -2334
--1065 9309
-3676 1844
--2242 414
-1294 -3449
-8163 4318
-7627 -201
--5241 -194
--1222 -3186
--2295 -3896
-7896 -9617
-5028 6389
-6543 -220
--7015 -119
--9579 -8608
--5405 5064
-5009 -4522
-2293 -7512
-5530 4573
--4816 -8242
--646 -5003
--6622 -9823
--4813 -6924
-167 5848
--1347 -2063
--1386 -3825
-6503 -9870
--1381 -4979
--7639 5548
-4047 7245
--2115 4856
--2666 7312
-3521 -9426
-5606 -6075
-4282 1518
--7521 7357
--2717 -2151
-8741 2081
-4419 -4091
-6625 7389
--687 -5984
--7284 996
--1781 -2670
-6015 24
-7447 6343
--1004 5917
--806 -4849
-5808 4516
--8904 -8742
-4847 -7044
-3202 -9988
--5961 4401
-1151 -827
-5193 -5986
-3319 -6118
-2845 7183
--151 -7154
--2153 3378
--37 -700
-1044 8467
-4178 2963
-4752 -8885
--9140 -5787
--1338 -681
-2416 3442
--6673 -9977
--7185 -1931
-8248 -4336
-8449 470
-5725 -1613
-7312 9991
--1625 -1789
--9374 -6921
--8685 6546
--3077 9139
--5051 -1171
-5142 7539
--7906 7116
--5742 -5625
--3485 -8289
--2166 -285
-1522 -1306
--6185 -7373
-209 3664
-4677 -1695
--2294 90
-967 8422
-8007 4985
-6487 -850
--2949 -6393
-7789 -2184
-952 4108
--6556 -1370
--6489 -4162
-9722 -6584
--4326 -4163
-1700 2379
-2619 3873
-571 -6793
--5592 8116
--2907 -6373
--5442 -2464
-1976 -6981
-1322 3563
--5592 -4515
-2798 9290
--1907 -1352
-8695 -2226
-912 -8071
-561 -7667
-9192 900
-876 -7975
-6989 -8603
-3757 -5322
-3819 -2058
--7491 -1266
--8029 8596
-2924 -4452
--4260 2444
-1174 -9473
--7316 -1844
-199 -8352
--8032 3797
--8385 -1037
--2177 6995
--5211 8965
-3853 8857
--9734 1675
-1679 -5929
--4151 2674
-8121 3195
-9234 -5408
--1417 4147
--1162 3544
--7381 4885
--9213 5468
--1611 -8068
--4591 -9920
--5006 1060
-9997 -9727
--8157 -9481
-6628 -2840
--3939 1156
--4597 603
--7679 910
-8050 1095
--2541 4044
--1164 -499
--4798 -966
--6932 -7693
-581 -260
-9648 -9343
--5288 -4951
-8039 9010
--2887 2371
--9140 -9221
-3009 -9534
-364 7454
--2600 -7767
-7124 -8167
-1477 -5332
-788 6660
--5436 -4340
-7964 -1222
--2118 -7923
--3358 -7429
--1924 7853
--8743 -2774
--2934 7251
-829 -9072
-9685 969
--8395 392
--1503 -5416
--5917 9036
--2536 7396
--8899 -348
-862 -8952
-8742 -7914
--9428 -8565
--788 4225
--1489 -6689
-1893 5245
-4966 5889
--1672 9081
--6706 2198
--8091 -5366
-7024 598
-3075 -7845
--3606 7231
--590 6947
-828 -660
--2368 7371
-814 8717
-795 -9552
--752 -3067
--6284 7700
--3867 -1838
-122 -6312
--4728 -4553
-1082 -823
-8177 -2389
--6149 230
--2576 6654
--4262 9462
-4493 2867
-7893 9697
-6660 -6157
-3737 5345
--2170 5443
-2379 8031
-2989 5837
--598 9126
--2850 -4794
-8363 9815
--7140 -3779
-7430 -2161
-329 7471
--2329 -1636
--5342 -9964
-7626 -1674
--6878 1535
-5753 -6562
-7976 3737
-4652 -3359
-23 7342
--5586 865
-4977 -4412
--5832 -90
-1093 -8821
--3858 -1506
-4286 3489
-3522 -9756
--661 -9365
-5124 9061
-8824 -159
-7985 7618
-4830 7303
-2130 4436
--5382 -7990
--7620 6983
--8282 -7435
-679 8352
-3073 846
-5161 7451
-2046 3793
-1553 -3155
-7287 -7737
-2945 1907
-6110 5044
-5782 7339
-8159 934
-6551 -5657
--6869 4897
-8275 -5536
--6276 -9661
--7410 3817
-7131 -3685
-7830 9294
-3950 6604
-6742 -9329
-350 -628
-9641 -6143
-4450 -5099
-6930 -7354
--6219 8998
-2267 -9349
--6659 -448
--8123 -1905
-7893 1377
-4642 7631
--843 4496
-5249 2162
--331 -3666
--2687 -6275
-4594 -5847
--1314 -1383
-4529 -5768
-2005 -2577
--5690 3827
-500 1506
-9912 5083
-2725 -4496
-6902 -1594
-2928 8102
--7668 7941
--4795 -3418
--7013 7583
-1842 -7312
-1238 -2596
-9642 -696
-3866 5901
--9636 -1265
--3320 564
--3956 2030
--5715 2095
--6899 5195
--4319 7065
-7358 -1008
--4247 9564
-4581 -9364
--8661 5174
--4146 9187
--2543 542
-3846 3893
--274 676
--953 -818
-7127 -3183
--5579 7546
-5284 -3164
--9099 5302
-7366 -6410
-2905 -8314
--4747 -2603
-5220 -1431
-6875 6757
--7506 1574
-5545 -6094
--704 -8900
--4429 8579
--9453 -3368
-5043 5370
--2208 6126
--1184 -4034
-6496 8868
-6598 -1068
--670 -3511
-9450 -2532
-8187 8663
--9476 4283
-3751 4977
-8083 -4163
-5977 -9779
-8762 9203
--1723 672
-178 5193
--1588 -133
-7997 8484
-9860 1126
-2714 -8062
--6726 3802
--3923 -4650
-2463 -9067
-1938 -9576
--5770 3427
--2581 -2418
--4899 -4976
-9724 6218
-1965 1579
-1787 7590
-8896 -5417
--3944 1888
--3551 -6531
-1051 5971
--5786 -698
-8235 -7864
-2754 8854
-716 -3628
-2786 9350
--3891 -4521
-7578 2945
--5059 -8530
--2224 -5566
-2745 2376
-2186 -8785
-2901 -8197
--1275 -3045
--6645 -5703
-4878 8464
--3831 9690
-3042 -6042
--5995 -2704
--2658 1625
-2249 -6423
--6053 486
--4469 -8071
--7574 -1255
-9959 6527
--304 -6055
--9396 9074
-7752 -5697
-8002 -505
-3293 4944
-6294 1921
--5163 -1103
-498 547
-8348 1140
--3530 -796
-5571 -46
--9094 -2896
--439 -4523
-6262 5136
-4276 -596
--2481 -7046
--7366 -4739
-3706 6435
--1013 8235
-8981 -4818
--2065 5039
-5102 -4872
-3495 -2083
-615 -8960
--4548 2930
--9926 7551
-2099 -2146
-7750 9517
--4033 -5317
--3781 9959
--5293 9720
-2700 -1197
-9114 -2526
-4454 -7573
--5696 7765
--2722 5375
--3157 -9350
-837 -931
-493 1518
-9216 9660
-1614 -7330
-5514 -667
--5731 -1711
-8016 6777
--4711 9125
-2172 3562
-8332 7087
-8639 -2914
-8932 -2848
--77 -1283
--2359 -5990
-5461 -5789
--4662 -7927
-7563 4424
-8598 -3833
-1895 1366
-3492 9798
-7291 880
--5147 8098
-3816 7328
-2772 9787
--3473 -5840
--1921 6383
--835 3328
-1374 8447
--9201 9528
--1400 -8659
--7896 9057
--6213 -1494
--3540 5897
-7052 9131
-7118 -9176
-5242 -9273
--7743 -5151
-3249 -9684
--3506 -6523
-5157 5482
--7355 -9710
--2775 -183
-7543 6994
--1633 3101
-2265 -5516
--6856 8797
-1066 -3885
--8109 1713
-7795 2447
--7175 852
-2698 5144
--9917 7597
-8613 -4559
-1505 -4274
--3379 -1390
--8945 5878
--5071 -569
--3213 -1160
-6786 3066
-2959 3161
-7163 921
--576 -6947
-307 -984
-7614 -5636
-1283 -5865
--4581 -4581
--9391 6570
--5942 -9438
--7366 -764
-4415 7312
-2735 -435
-6882 -8428
--1099 6855
-9777 1854
-6851 8632
--1790 211
--358 -4774
-8198 4922
--4162 -2853
-9012 921
--3915 3586
--3674 -3681
-890 614
-5551 -8901
--3557 -495
--7408 -1379
-3836 9918
-9975 -3611
-9999 -2151
-3022 -4201
--1187 5822
--2145 -9923
-9051 2098
--2610 5598
--3371 -3890
-8392 7162
--5402 6197
--8774 4420
-1036 2666
--4799 7222
--6106 -425
-9241 -402
--1966 -6496
--4239 -9718
--3612 -3378
--4983 -9693
-2448 -4016
-9117 -2363
--5993 5338
--7262 -5323
--4751 -8503
--9331 -3718
-9635 6130
--661 -5034
--1650 2705
-7821 -5735
-3045 -7575
-6606 7186
--886 1439
--9189 5449
--2784 5808
--8385 -2658
--1639 1336
--9146 -3271
-645 9345
-5858 2736
-1851 -7234
--1032 -3974
-3254 2543
-4423 -8656
-9431 9040
--8660 7204
--4857 -3713
--3368 -8391
-9194 -31
-9772 6811
-4652 -3260
--4228 -4087
--4861 -7067
--1987 -1108
-2712 -4683
-7654 -8468
--8191 4223
--7600 -646
--667 -1546
--1763 5707
-6133 -644
--6020 -7008
--2729 -1078
-9229 -5265
--60 8913
--7236 584
-3941 -873
--2010 7802
-7708 1717
-4253 2349
-5062 4247
-8060 -8466
-7665 -9824
--4845 -3021
-6375 4957
--1832 4467
-9906 -1461
--5051 -5298
--1284 -4094
-7948 5277
-4263 7616
--5582 -1777
-7603 -5767
-6656 -9274
-2798 2485
--1920 -6242
-9656 -6037
-1000
--2084 6213
--4474 4495
--6515 4255
-8055 2897
--6829 -2533
--8647 3604
--8714 -2822
--1563 -7169
--3761 165
--8950 -3906
-4476 -4586
-7058 -936
--1490 -6396
--4383 -9607
--839 -1665
-7788 -1191
-1818 4697
--1551 3535
--1216 -1608
-7196 -810
-9956 -6079
-2129 9150
--4184 -7042
--6983 6857
-7309 -3606
--2066 6575
--314 -4204
-1030 -9460
-8487 -1798
--5194 -9033
-7484 -2477
-3419 -4683
-7429 6083
-667 -7198
--2055 -486
--587 433
-6216 -8666
-9567 4437
-5412 -8398
--5800 8118
--2887 -9773
-1998 -9152
--6835 8599
-2220 -8923
--3127 -289
-1820 -8988
--1696 7927
--7525 8478
--9077 -4804
-5659 3133
-5814 -7203
-6024 2407
-3314 -3491
--6023 -5556
--6392 3318
-330 709
--799 249
--2884 6058
--7969 -4030
-7909 -5110
--6113 -1878
--9658 6791
--3251 6093
-8684 5270
--5332 5709
-3897 -5889
--1505 -4589
-934 -7480
--4877 -8390
--7261 4818
-5593 1013
-9919 9923
-9178 3747
-8587 -3590
-7208 6777
--9183 -9649
--7905 -4330
-9801 6686
-5204 6731
--8323 -8034
-1533 -211
--9647 4373
-3107 904
-531 -2279
-6288 5695
-1816 -9059
-6981 -3519
--7404 -8157
--1705 4729
--3172 -2316
-3195 1931
--8233 1378
--9199 -1339
-3536 -3193
-4015 -9705
-6351 7105
-7252 6729
-9383 -3157
-2276 -1657
--7311 -6751
-463 9091
--3829 -9663
-5413 -9997
--8831 3353
-479 8247
--3247 -6982
--3116 -8644
-931 -3884
--3181 -1298
--1931 8461
-8074 753
--8885 61
-646 609
-5557 8042
-4489 -1934
-762 1638
-4763 -71
--9300 -5932
--2607 4767
--649 -7930
-2857 -6772
-7001 7737
-4520 -3119
--4925 8914
--44 8851
-1599 1958
--3732 -7679
--8975 3304
--5283 -6913
--6506 2766
-2521 -4207
--8222 -7776
--4514 349
-4457 -2986
--8341 8034
-5244 9650
--88 5754
--2658 -141
--9200 -1954
-5304 7145
--3857 -2704
-1591 4027
--5780 1908
--2781 -4966
--4316 7965
-4360 8615
--2895 -1622
-1334 1588
-3312 7643
--5243 -8314
--5669 8600
-5197 -8749
-3286 -3708
-8249 651
-893 -4436
-3796 8596
--2398 2376
-8118 -2861
--881 -2038
-7197 -8178
--9769 -8818
--1484 5439
--2195 778
-6605 -3129
-2441 7192
--5544 8330
-6190 -5375
-1545 1035
-3693 3882
--6216 -5342
-5634 -6026
--373 -112
--2319 6100
--8643 -4028
--2355 723
--2681 -5983
--9071 5062
-6645 -6329
--9153 2631
--4129 -7555
-9065 -561
--9414 -3685
--8669 -5713
--521 544
--6067 -9063
-4524 -769
-2071 -6548
-3752 -2229
--8811 1794
-7372 8846
--879 5340
-7295 8231
--6097 -6946
--9218 -344
-6339 -7403
-5579 -5449
-5413 -8175
-7513 -1535
--4757 1760
--1373 -1730
-5343 6195
--4252 9620
-4922 -7766
-7885 -9284
--9740 3009
-2008 -4106
--3221 4197
-4069 -3641
-947 -9737
-7859 -1437
--5000 -7482
--868 -9693
-4995 4131
-2836 1009
-2197 -7800
--9855 -6154
-8420 -5506
--3802 -8091
-2085 5255
--5298 -6527
--5937 -4729
--324 -4078
-6401 -4108
--4458 -19
-5189 -221
--9535 -6258
-992 -2952
--9489 -7374
-9593 -8484
--3576 -738
--6117 7807
--1550 9570
-100 2201
--9103 -798
-4367 -89
--7118 1114
--6142 2221
--8383 2126
-809 -7505
-5628 249
-3376 -8359
--9826 -1791
-4168 787
--5320 4297
-3277 -9830
-9774 -4250
-2987 -6378
-3238 6299
-7763 5006
--4903 1721
-3743 -1248
-7363 -4091
--8668 8075
-3930 -8977
-2672 -6692
--4456 -846
-3770 -9273
-2399 3273
--6948 -5831
-4931 56
--8451 4629
--3637 949
--7960 -5153
-9657 7373
-2638 -1921
-9099 5613
-6638 -2936
--2808 6208
-5770 9160
-2077 6240
-5374 6008
--6673 2990
-2064 5092
-3332 -6696
--3743 5156
-5952 -9006
-3729 4997
--2161 -9440
-1493 6148
--3772 2926
--9863 -9564
--2867 -3831
--8922 3682
-5697 -6768
-3903 -3550
--3995 -154
-2300 5012
-5229 -1967
-533 6655
-2519 -1267
-7896 8339
-4850 -3900
-2536 3024
-2891 5844
-2533 -7221
--3848 -145
-4071 5285
-3189 -5445
-1142 8616
--5595 -7543
--4938 -421
-927 -2989
-4911 2329
--2518 -4224
-9735 -7388
-3850 1800
-975 -6325
-9473 4496
-6922 -329
-7420 -4675
--3154 2979
-3038 -811
--4212 4209
--7727 -5988
--8288 7708
--2711 3280
-3495 1729
-9363 4183
-2483 -5382
-2396 4778
--2830 -102
--3574 -1816
-6335 -8504
--9300 6319
-4392 -1539
--6727 -2748
--1441 1840
--5055 -6443
--6485 4426
-6229 6380
--638 -2357
-8721 4165
-7614 -1823
-6611 4277
-4168 -7123
-282 -6987
--9965 8319
--6371 8083
--9801 -4168
--5860 -1049
--7003 -2218
-1941 -923
-9731 151
--5275 2164
-5743 3968
-2171 6017
--5402 -1741
--9046 6118
--327 -989
--8141 1710
-8799 -7555
-3902 260
--5175 -9595
--4485 -4512
--9014 -3015
--3904 -5196
-1837 -4540
-4100 3994
-9193 9974
--9669 7516
-8394 -5073
--5566 8728
-5143 9445
-5987 -2650
--957 7211
--4891 -3638
--4176 -335
--430 -7383
--5963 -3620
-2001 -4727
--7035 -3394
-9820 7869
--3158 -7225
--4070 -5154
--6183 -9192
--8773 1031
--1701 -2511
--7892 5987
-7203 9003
--5815 9405
-9557 1408
-6199 -9782
--8687 6375
-7550 -8262
-5996 4099
-460 -6518
-6429 -731
--1132 -1729
-6908 -1139
-2403 5811
--6213 8315
-7012 -3346
--4709 -6172
-4529 -2865
--2037 5889
-5520 -6695
-8551 3957
-7331 9556
-5573 -4806
-7667 -3309
--3358 -3023
--1773 -5992
--3989 -7197
-6328 6348
-856 -8139
-5263 -7365
-6653 6254
-6515 -9359
--6665 -6198
-220 -7870
--6235 9842
--6403 4570
--9849 1131
-3590 -4781
--271 -7233
-1487 -3823
-789 2219
-9562 4803
--2866 4743
-6659 -740
-1889 9626
-9227 1432
--7406 -5455
-6968 -5335
--9942 2957
-7634 7274
--9811 -5239
--9463 8625
-6840 -9296
--9303 6940
-2824 1073
--7123 8025
-2086 -7377
-4327 -6422
-5830 -5857
-9626 -2236
--4443 -756
--4611 4158
-1307 47
--3146 1533
--2202 2728
-1405 -8034
-877 -8337
--873 -4601
--8352 -5982
-3070 -9180
-9267 1720
-4620 7551
--8882 7845
--6785 6654
-7742 2935
--7733 1020
-2899 5746
--8509 -2394
-2966 4289
-3087 -6843
-4057 -382
-7978 -8521
-6719 2204
--5768 -8159
--8450 813
--260 3177
-10000 3938
-8154 4606
-3343 -5957
-8308 -3182
-5766 -4428
--5239 455
-4433 5064
-8821 -553
--484 -2992
--8251 5082
-3742 9859
--7346 -7440
--5395 -6088
-1617 5871
-3845 5521
--1703 2594
-7648 7430
--8322 -8306
--3553 1646
-3823 -4603
-54 -235
-5772 -934
--4195 2406
-1621 -1461
-8289 9824
--4068 207
--2842 -5913
-7482 8964
-5407 -2837
--9171 24
-6439 -5748
--9160 2742
-7066 1501
--1366 -4822
--1168 1673
--8734 -1716
-5036 -1566
--1082 9855
--2349 5163
-4455 7954
--1060 -9490
--2744 5659
-8757 9342
-4883 2506
-2365 8499
-6654 3023
-1283 -5155
-7556 -1946
--6091 -1508
--8436 6944
-4998 3498
-3858 5172
--7204 5211
-9580 9353
-4866 -9369
--5400 -8657
-7198 -3130
--1516 -7574
--2230 1570
--6525 -9971
-5193 6192
--3394 -3381
--7900 3232
--2284 481
--6893 7504
--9873 7550
--1733 586
--8569 1479
--2296 -649
-5566 -1713
--7161 -4815
-2449 -6195
--5724 5580
-8997 -2158
-2899 -7516
--6815 -8343
--4108 -9910
--7346 9618
--3215 7708
-3327 -6830
--308 9042
-4697 4288
--5375 -3540
-7666 4099
-1678 -7676
-3696 3164
--758 -853
--4638 2165
--6601 5611
-225 -3496
--5082 -8924
-5422 838
-4214 -126
--5905 -7992
--7707 6225
-7131 3667
-4898 -1195
--8672 -7870
--7336 8747
-7884 5103
-3579 2676
-8448 6946
--5291 -4791
--2961 -988
--7275 1746
-9579 5958
-1582 8264
-4118 -6017
--5599 -8804
--4767 3389
--1934 8247
-9190 -3258
-1410 647
-3916 5953
-8087 895
--586 -9282
-5270 68
--108 6304
-5257 4137
-5112 4672
-2218 4581
--7147 -5011
-6455 -6126
-1467 5566
--4872 3772
--3633 -224
-7001 1012
-3344 -4340
--7135 -9742
--6495 6773
--8960 6009
-6688 473
--3859 7513
--40 7520
-203 -5341
--5715 9285
--8750 3963
-6453 1260
-7781 -3331
--3693 -3617
--543 8238
--2538 1198
-9087 1052
-8064 9301
--6883 7750
--3260 7422
--4277 9560
-9629 9918
-4400 3943
--4314 -8638
-8305 7667
--7557 -5136
-7379 -753
-7288 7654
--4439 -4947
-2246 -7671
--3054 6447
--9882 8508
--5417 73
-3596 -1044
--1058 7463
-3913 -417
--645 1406
-2599 8002
-8240 3377
-4075 8413
--8464 -3006
-3039 -6493
-7963 -8096
--1988 -267
--8073 5037
-6183 -6565
--5045 5742
--6459 9507
-9004 2878
-5806 -7143
--7857 -2384
-6199 -191
-7633 6695
--8940 637
--7237 -6361
-4398 -680
-6958 7160
--4389 1842
-5369 -4774
-2513 8374
-649 765
-1907 9142
--2678 -8483
-1527 5237
-8618 -3231
-6669 -5887
-5648 4291
-2788 8115
-5246 342
--2022 335
--3830 5871
-8163 5585
--6152 -6293
--2201 -3898
-4816 4442
-5151 541
-1959 8517
-3899 -4553
--9476 -3094
-139 -7873
-9768 1864
-4677 9112
--2593 -6523
--3394 1901
-551 -810
-5555 1415
--2064 8993
-4904 -6650
-1878 -2856
--8858 2363
--4513 -9594
-9659 -286
-5171 -1573
-6954 113
-1912 -8391
-3352 -5453
-1464 -8492
--8023 8668
--374 -7255
-6667 2443
--3589 -1763
-1449 -6435
--8529 1380
--4611 -8
-625 3939
--5754 -6954
-8094 7654
--6661 -538
-8734 3499
-8687 6063
-1887 9096
-9298 -1307
-8124 -9080
-6613 3775
--7371 3244
--9187 5211
-9264 907
-6062 -9292
-1626 1623
-9871 5276
--7115 -6965
--9667 5528
--6032 -4936
-104 8699
-6267 5451
-440 -5487
-5415 1174
--6296 4221
-4964 689
--2781 5631
--4778 -1841
-390 2966
-6889 6464
-6554 -2595
--9544 -6832
-8013 -3211
-9494 -1562
-2342 -7440
--1356 -8277
-2956 -9966
--92 8104
--2489 9918
--5204 9295
-5103 4962
-9809 5655
-8514 4680
-2341 -8221
--4764 3135
-5859 -1608
--9159 -4521
--8110 3995
--7991 -2739
-9462 -4133
-7476 -9624
--2634 -3374
-5583 -3071
-1323 9469
-269 8260
--8932 -8033
-7979 -5353
--8782 1388
--5346 -6977
--4545 -4447
--2712 8045
--7365 5758
--1538 6998
-2072 1417
-622 286
-4047 9576
-997 -667
--9020 -4640
-795 -8004
--7794 9450
--3299 -6101
--7839 -4094
--7201 -5458
--8852 -2415
--2528 -7628
-14 -761
--6961 -5449
-9405 4776
--2158 6983
-1871 8845
-1383 6030
--3294 3603
--688 -9637
-7731 -9147
-6364 -5116
-4229 -6545
--7818 -3167
--6454 -1258
-5111 5591
-6960 1231
-1096 6952
--162 4294
-2109 5112
--4018 310
-3109 -9320
-8440 7635
--3118 8249
--552 -1598
-9747 629
-23 273
--594 972
--8184 -2758
--2078 8027
-8872 -9548
--4257 -4382
-3539 -9373
--5450 3673
--1070 -5742
--8342 3555
-356 -7883
--8697 509
-2861 -3498
-4375 3740
--3858 -1960
-4627 6794
-1995 9160
-9124 7393
-1901 -3053
--4598 -8156
--5891 -3484
-5317 -5654
--8693 4498
-144 159
--5888 3853
-6181 -8546
-8205 3682
-7894 -1629
--5150 -609
--2689 -5538
-4291 -541
-4101 -2830
--110 3
--4119 9868
--4961 -5166
--1902 -248
--9730 -609
--3756 -7937
--3228 803
--1799 -2638
--1695 -1425
-5381 4830
--4595 -2112
-634 -6936
-9284 -2000
-6765 -2472
-2659 -2699
--2078 -3987
-6630 -174
--6884 9103
-7928 7495
-277 -8561
-3783 -4981
--9277 8147
-1596 -901
-8006 -8562
--7785 9404
-6621 7478
-4299 4808
--4089 -3369
--9237 -1972
--8707 -8387
--4788 3614
--5829 -7074
-1841 6065
-9227 -4343
--2368 -8299
--4783 -8404
-7276 3014
-2804 9607
-1151 -5785
-6290 5370
-4301 1175
--1456 -8427
--8509 -8604
--3563 1076
-8587 -9205
--8073 7338
--3081 -8391
-5125 -5393
--159 -9777
-3456 3855
-3776 2467
--3072 39
-3010 -1299
--5376 -3388
--1885 5086
--245 4472
-9793 7262
-4325 2572
--5809 9642
-7121 -4141
-1507 397
-973 9089
-814 -3176
-4923 815
-2839 6003
-2979 -8959
--7058 8542
-3312 -3497
--2577 -8503
--734 9320
--2035 -8365
--8121 5440
-9219 -7032
--7107 -793
--4217 3729
--6820 -3213
--7025 -3655
-1775 859
--5817 1291
--1114 -4186
-9194 4651
-238 -7973
--5167 3220
--1382 -8012
--8465 -2138
--8008 -8585
--7913 -2531
--8245 2665
-3385 8991
-2430 3552
-3687 8405
--3169 -755
--2731 -7373
--7203 878
--4706 3384
-7812 8997
-3359 -8789
-6091 793
--1665 7746
--3707 -2653
-4479 481
-5369 -3146
--3821 -2963
--3500 4133
--6729 -6829
-5628 8466
-5619 4832
--4546 7243
-3586 5045
-2032 -5807
--6370 -6781
--9703 -6291
-6821 1038
-5742 9177
--3890 -1414
-3126 -9388
--4354 -2626
-1789 9177
-6888 -3894
--7807 4102
-2820 -1898
--9613 4775
-7768 -3557
--4947 -2954
--3697 6919
--2164 4443
-8209 -1167
--1247 -5898
-4240 4639
--4384 438
-7370 -1415
-3143 -6495
-5778 -5007
-1771 -3204
-9622 -2585
--1694 -8800
--1213 -3964
--510 6918
--1023 9141
-1417 1252
-8872 -3088
--7135 2251
--5809 6984
--459 1488
--8469 5818
-8575 -3621
-8859 -9802
-348 -6964
-2689 7804
-6611 5293
-4564 1545
-2857 222
-1373 -2141
--2246 -2390
--1032 -6368
--1312 5318
--8934 -4532
--7687 -2330
-5120 4711
-1098 -6972
--610 9928
-4342 -5833
-9802 6026
--4996 -2110
--4343 -4181
--507 -6619
--4390 -5438
--7648 -5401
-3803 -7580
-7572 -1768
-7948 9242
-8173 2237
--3549 -9520
-9456 3920
-1166 -47
-6687 -3905
-3859 90
-7310 3072
-1000
-6837 -6750
--7213 8741
-4356 -78
-1628 3515
-4064 -9205
-9122 -7385
--5795 4903
--1811 -9461
-5925 1354
-1193 5344
-8500 7170
--4922 4687
--1003 -6119
--4857 3842
--751 6859
-9229 1862
--2050 -2273
--4114 -1146
-1354 -6171
--9887 -4602
-3000 1032
--8678 5807
-9970 -1094
--4921 6720
--6114 4099
-501 -5323
--5516 96
--8331 -605
--9264 -1683
-7363 -5845
--4078 6486
--4425 -889
-4703 7648
-4818 8433
-6250 -6128
-6157 -7124
-8942 -7270
-9441 -4799
-4338 -4941
-7226 -1273
-9426 4534
--225 257
--6092 2481
-9854 -4507
--3288 5424
-9763 -7481
-7248 6037
-3597 -6018
-1188 -4409
-7277 -2305
-2135 5987
-3832 -8607
-2018 -6134
-2863 3625
--2026 -5925
-4682 -8109
-5561 -7603
--4247 -3207
-9802 -6996
-8591 6796
-3409 -9954
-369 -7449
-8643 -497
--121 -4532
--5449 -4701
--9593 8118
-9968 -1444
-5447 -39
-2650 -178
-6216 -4196
-5891 8752
-5331 8661
-2898 264
--9250 8339
-7539 -5469
--475 -3398
--1952 -9137
--6634 4821
--4550 -4639
--8756 8013
-3275 -853
-927 7177
--7385 3700
-5731 -3275
--4873 -3680
-4002 -5192
--5818 -1981
--2807 3678
--531 3549
--5132 -1450
--459 1995
-864 -54
-1823 -8747
-3380 2485
--6036 -1356
--2399 822
-2773 -6296
-2756 6687
--4892 -7975
-4572 5911
--5094 4726
--9670 -7126
--3592 7135
-2248 -1638
--8703 -8226
-5762 7342
--5509 54
-597 -2526
--4301 4272
--3025 -9424
--6147 9227
-7635 -5056
-9225 3985
-7839 1867
-3866 6936
--4833 155
--4735 2738
--8400 -763
--5783 6741
-8231 9977
--3101 -8217
-8316 9919
-3750 3794
--26 900
-6181 -3209
--7773 -4310
-3860 -6559
-3822 514
--3534 7963
--9146 -6649
--8608 -9033
--1819 -783
-1558 8332
--6980 9582
--7679 -4205
--4902 6825
--2422 151
-4615 -1400
-3152 -8518
-3549 -8242
--1646 8793
-2029 -4328
--31 -1596
--7712 2098
-7768 -3834
--9596 -6662
--7410 -7347
-2072 9991
-1907 1945
--6701 -8919
--2543 -1378
-9921 1463
--8712 847
-6219 -5873
--8134 1927
--747 -4316
-7638 3235
-8580 -1224
--9680 3767
-5714 1425
--7178 2311
-3171 4146
-7631 -1594
-3144 4735
-5613 -8672
--9550 -1032
--524 5288
--2156 7578
--2331 8338
--2333 1268
-6829 862
-8393 3258
--645 -2200
--3580 3264
--3354 -199
--279 9864
--1048 7244
-2832 4033
--4908 -664
--2454 -5385
-7601 5130
--8740 2974
--9977 5018
-5317 4248
--3050 -9610
-6882 -6454
-4455 -9384
-6774 -8949
--5258 4540
-2563 -2371
-1409 331
--7498 -1016
-2309 8106
--6068 5845
--8124 -8866
--4180 5035
-8349 7156
-4731 -8219
-109 6783
--31 2282
-1060 4538
-6923 4896
-2967 3491
-6336 -9015
-4394 1501
-8445 3364
--7981 2657
--520 7875
-8257 -9142
--2739 -9183
--6682 -3848
--7624 -7114
--5575 -9962
-2798 -2937
-3150 -8777
-6083 -2450
-9063 7454
-330 -1813
--528 4098
--6071 788
--9311 -4369
--159 6635
--2618 -906
--6332 3446
--4409 749
--6719 3027
--6161 -6008
-1849 9838
-1759 7708
-3978 664
--239 5424
-811 -8116
--2252 -887
--1713 -6935
--4519 -5807
--4309 -7414
--7869 -9688
--1732 -5197
-5803 4452
-6616 -9622
--851 -3882
-3282 4243
-396 9752
--229 -3667
--8578 7956
--8075 -6090
-7827 8874
-777 6727
-6395 -200
-6067 -8218
--5051 4643
--223 -2178
-5042 -8688
--7120 352
-9205 -1607
--9179 841
--4838 532
-6934 -8967
-1152 6823
-7162 3328
-7816 -5976
--6286 2101
--6622 615
-1690 -6026
--1072 -9543
-6916 312
--6647 -5979
--1067 2360
--7200 -5686
--1307 -3338
-8977 -8573
-2656 -9741
--4554 -8864
--8845 7043
-7037 -8999
--8472 1308
-2673 -8839
-7070 -1089
--9082 -2670
-3295 2902
--8133 6039
-9967 5322
--7537 -4359
--2188 -6350
-986 -9805
-4170 9100
-3494 -9781
-8764 4329
-1198 9068
-2144 9452
--328 -7477
--8785 675
-5276 -4615
--2581 7847
-5918 8453
--7105 5863
--3984 -6397
-2010 -4504
-5317 -2854
-2808 1275
-7555 5194
--8365 -5977
--6991 -375
-3990 4692
--7338 8474
--5732 2526
--5247 -4723
-8210 9739
-1504 -1892
--9308 -7815
-8289 -7049
-4544 -4287
--140 6724
-2613 -4433
-3535 2747
-6361 1716
--8762 -9342
-4352 -9002
--3217 2919
--278 8872
-7450 -9335
-4146 4836
--495 -1620
-8389 213
--9752 -8724
-1679 131
--4733 1481
--5499 -1277
-5567 6464
--1749 -5621
-1880 -2648
-588 -4089
-9010 9776
--7034 -7861
-3086 6146
--4624 -3451
-277 -9881
-763 -2557
--3562 8678
-7083 3460
-8211 -9929
--4463 6700
--5505 336
-1617 -7440
--8406 -3698
-3575 -8767
--6101 -7001
-2843 5938
-159 -7094
--7665 -7737
-6296 8631
--4014 -256
-2908 7285
--6114 984
--6708 6468
-4171 7951
--5107 -326
--4500 1079
--3932 -3332
-708 -7044
--452 6864
--4410 5767
-6086 -5558
-9266 865
-5226 -7005
-9485 7988
--3251 673
--6391 1708
-6906 -2249
--2026 4317
--1688 5270
--4537 -7426
--2191 -5472
-8670 -223
--6444 6665
--9432 5204
--3075 6596
-7508 -7716
--3703 -4584
--6290 5980
-8389 5628
--5384 5806
--9462 7158
--7412 -6016
--1450 4498
--161 -409
-4350 -7807
--4756 -4172
-9285 5954
--2856 -1565
-8052 -2419
-1649 -8067
-3345 2293
--7884 -5483
-444 5556
--9301 -4357
-6341 -3045
--9903 4717
-4672 5560
--4543 5886
--2794 -7570
--5840 6732
-1265 3872
-4418 -2764
--2325 4126
--5257 8832
-734 1836
--9243 -7557
-5563 6419
--2113 -3267
-9866 7691
-8724 515
--2645 9841
-3432 -7521
--6234 8889
--1663 -8881
--8563 1469
--737 -6183
-9677 -9845
-564 7027
-4157 3340
--2620 9160
--2349 5075
--9441 2609
--7248 2722
-6609 -449
--1938 2135
--5093 586
--6940 -2978
-5183 2302
--2432 9345
-1163 3330
-4584 1782
--564 3283
--4790 3077
-5124 -24
--6302 3873
--3841 6656
--9791 2722
-9720 -7336
-6401 5037
--5752 -721
--6544 5257
-9643 -6216
-9221 -2920
-3547 7713
--286 4388
--8633 -9658
--4457 -4993
--5680 -4438
--5758 -8048
--1176 -9245
--4806 1164
--8746 6612
-5058 -3632
-4871 7320
--8710 -819
--3340 8090
-4705 4913
-5952 -3530
--2448 4797
--8064 -9858
--9151 6692
-6688 2918
-6368 100
--2548 -1204
--1918 -628
-362 6129
--1755 -6793
-5179 -6589
-7692 1970
-4061 -2222
--9582 3597
--2991 6321
--6875 4033
-7489 -6676
-886 1004
--960 8787
--9998 -4814
-3891 -674
-5215 -9582
-1816 9545
-3012 9008
--5916 4607
--9932 -8671
-647 -9669
-9241 7919
--130 7314
--7040 -7955
--7996 -5762
--2959 -1370
--4922 3105
--5460 -8405
-3186 4997
-5272 -6478
--9244 -899
-9567 1658
-8016 -8330
--8576 5376
-2226 2579
-1743 -1669
--339 990
--7142 -5156
-1898 5757
-6089 -4350
--6124 -9310
-9791 -7564
--1539 -7113
-8892 -9808
-5983 -4218
--6454 -254
-5786 -5651
--1009 8477
--2340 -2558
-3630 -5814
-5931 8658
-9668 -1494
--1800 -8796
--1185 -5441
--4387 -7709
-2798 -9574
-5775 -9702
-6156 -6082
-7694 3131
--6971 728
-9435 -6876
-1261 -7369
--6240 -6563
-8233 5296
--4905 8282
--3520 2765
--9102 1205
-6223 7241
-3808 -311
-7104 -5927
-1333 -2469
--7701 -5969
-6850 6795
-6891 -671
--8283 -5814
--6839 5372
--5377 2097
-6140 -6098
-8522 -907
--246 -3774
-3484 6229
-8029 3608
--3704 -985
--3502 724
-9580 7661
-7883 5849
--3145 -3846
--3556 9089
--700 4391
--6267 2123
--2526 -9759
--4996 6452
-9481 -5871
--2288 3884
-277 -9340
--8104 -2376
-9064 4767
-7349 9145
--1883 2770
-8967 5860
-8602 -1791
--5342 8997
--9632 1386
--1032 9422
-9732 1832
--9493 141
-4093 6012
--3024 -6498
--840 -7251
-2329 8652
-8561 9313
-3757 6769
-1621 4634
-9205 7743
-2970 -4746
--5311 9355
--1390 2765
-168 4035
--2395 1997
-6910 4998
--4507 937
-9163 6474
-2221 7298
-1488 -3446
-7033 674
--7348 -1258
--6945 9662
--9209 -4536
-9793 -5638
-5930 3632
--432 5307
--5892 4489
--2981 -1700
-3105 4796
--9275 3565
-8223 6709
--2446 -380
-552 183
-6741 -7231
--410 8173
-5629 -6534
-7436 5770
--4957 4579
-2005 -9488
--4388 -2284
-1258 5556
-2576 -6379
-9328 4564
--6239 4554
--2230 -8641
--251 5345
-2586 5976
--9802 11
--7342 7082
--3107 -5397
-290 -5613
--2813 -4630
-2310 8297
-9875 -1536
--4330 3538
--8372 3663
--6722 1235
--9509 -6645
--7806 -4429
-7089 5997
--272 -1358
--9555 3631
--5377 -686
--4527 -1020
-2061 -5220
--2404 624
-9764 5366
--5591 6161
-1112 -2115
--3655 8003
-1855 2295
-543 -3361
-9105 -1666
-7790 2118
-4287 6532
--6724 5794
-223 -9715
--4403 -4950
-6461 4007
--1876 7477
--6394 -4393
--5504 -7120
-7208 -9287
-9991 41
-7637 5067
-425 7628
--4098 3803
-9848 1271
--5408 -985
-9117 -5731
-7141 1868
--5120 -4231
--5722 -2953
--4582 -5599
--7592 8304
--3798 1782
--7299 5614
--6912 6069
--922 -4605
-6457 -8105
--6616 697
-9565 3207
-8234 -7824
--2690 5899
--5425 -2955
-4226 4686
--155 6531
-3474 -7247
--4308 -3707
--9662 -6029
-5920 -3733
--4098 7858
-1672 2478
--7871 416
-4038 -5674
--6894 3144
--4015 6034
--7615 4750
-2101 5497
-9312 2475
-2208 3373
--9998 -1444
-3226 6099
-4616 9664
-3257 -900
--488 1486
-7601 4752
-4180 -6309
-788 -7276
-3692 3021
--9733 -9591
-9676 2090
-7057 3328
-8494 6524
-4005 7006
--1891 -6660
--921 -5170
--2835 5760
-1158 658
-6175 -8877
--5374 5374
-3706 -5366
-5669 -5669
-8856 6162
-4734 4171
--2881 -1208
-1664 3952
--7856 2551
--938 -3601
-4448 -9842
--2355 -238
-780 -1238
--8907 -9691
-6129 267
--4022 4961
--6044 -4455
-6999 -8034
--4110 8364
--9521 -9597
-9049 -8486
-1723 -6193
-5662 -1570
--5761 -6138
-2557 9870
-5493 -9018
--3010 -1090
-2780 9625
--540 2309
--7687 -1331
-9645 -4453
--7059 5012
--1431 -4532
--8011 8958
--6681 -3286
-9890 2471
-2101 -1847
--424 -9242
-390 -9747
--5308 -4596
--8077 6787
-1387 -117
-2313 3375
-2958 8663
--283 2685
--7216 -9826
--2847 -4028
-9155 -7529
--3904 -4304
-5399 8779
-1780 -4431
-2921 6168
-7521 -4762
-4193 2600
-3981 -5295
-9042 -5519
--6829 -9393
--7794 -6468
--297 9725
--2739 -4043
--2554 -167
-3189 -225
--4067 2448
-2079 8969
-3017 -2724
-3567 2260
-8279 909
--3737 -5835
--7003 -8333
-5375 151
--7620 1927
-4127 5647
-3651 3061
--4764 1751
--1994 -3643
--8215 8062
--5603 -5668
--9038 4865
-5640 6327
-4542 5687
-3889 -9951
-1605 1433
--9460 2694
--3704 4517
--9208 1246
--3465 1797
-7718 6964
--3259 6842
--8318 -6891
-3384 -1856
-8818 -8476
--8438 -5708
-5181 -2862
--213 853
-5040 -3349
--4765 -7607
--758 6200
-7364 1481
-864 -2102
--7287 3221
--7564 867
--2003 9652
-2425 -1336
--4530 -7731
--7842 5669
--6546 6935
-4428 -1163
--1316 9071
-5795 6331
--6731 3159
--286 2137
--7729 -9424
-8383 9754
--6796 3796
--29 1511
--1996 2362
-4439 -9930
-701 -5131
--190 2925
--5330 -9588
-4838 7467
--9290 -2606
-7283 9779
-8432 -741
--7777 -5318
--4511 -1156
--8091 2231
-3007 -6737
--4276 -2288
-9416 -9134
--3132 -1759
-3759 -201
--1070 -1146
--4234 1850
-6353 138
--8533 -6677
--6511 4173
-2405 -8331
-323 4832
--3296 6205
--1678 1576
--4495 83
-3141 -7892
--627 973
--7647 -8625
-5335 616
-4186 -8749
-6880 -6691
--5151 9055
--4570 -9864
--2358 -3079
--3069 -695
-6228 9969
--9952 9745
-7067 -4517
-1579 -6264
-3579 -546
-3278 -4877
--482 3811
--8101 4503
--4518 9341
-4187 5861
--7194 -1952
--1285 2346
--9652 1736
-9065 4513
--3113 2600
--8475 9828
--8121 -4490
--5799 186
--1151 -4604
--198 7754
--4451 -7429
-541 9386
--6356 -6430
-8703 -90
--9159 -4351
-726 9831
--4931 -1566
-909 9908
--6124 7927
-8340 8990
--3899 -1646
--3717 1678
--179 -8011
--9125 -2466
--6781 -2872
-692 -131
--5767 7927
-7186 -3881
--5541 -1710
--7448 -3409
-5238 379
--2036 -8774
--2999 -4047
--6593 3641
-6769 8745
--8454 7054
--8970 3042
-8402 -1595
--1099 -970
-5205 9858
--7710 1917
--6489 -8332
-4871 -7840
-8542 3103
-8838 -4750
--4811 3735
--7420 4344
--8886 -2568
-2176 9769
-5311 5283
-3562 5894
--3946 7400
--3849 -5120
-5630 -1990
--2628 7258
-5931 662
-1184 889
--447 -1918
-5496 3656
--1411 4923
--4026 1849
-3538 204
--305 2738
-6862 -1613
--4062 -6706
-8607 -9762
--8191 -4178
--7311 9220
--5508 897
--1324 7020
--7705 2820
-9999 -736
--8325 553
-937 1068
--2636 -3732
-4901 -2389
--1123 -580
--386 7922
-6979 -4896
--6972 4616
-4126 7670
-3418 -2709
-913 793
--9392 -4425
--844 -4569
--8293 -3994
--5728 165
--5599 5513
--8249 -4620
--3656 3224
--4658 9669
--1211 -9448
-942 -3506
--5027 2139
-2917 9283
-9784 2340
-5981 -6650
--694 9063
-5892 -6158
--7057 1673
-1115 1546
-894 5986
--3305 8613
--9597 9462
--7581 -7561
-4818 -8551
-9595 -3135
-61 9501
-8525 6295
-7815 -6334
-783 -8866
--7489 7887
--1399 -5375
--3301 8084
--5542 6354
-3793 -3083
--1546 -7383
-7270 4414
-5488 -1259
-9949 -321
--8655 -5334
-6946 -9606
--4757 -1275
-6082 -5353
--5907 3885
--5103 -4645
-340 7828
--734 5404
-9034 -5801
-1000
-9618 1251
-7508 5943
--5689 -8928
-1952 8747
-1660 -4793
--2540 -856
--2792 -3116
-1580 -2177
-7463 -9558
--7538 7860
-4050 -1104
-7057 -243
-2695 -7096
-964 -4958
-9404 -9295
-8338 2870
-669 8460
--2369 -1259
-2843 162
-5186 4257
--9732 4646
-521 1360
-3534 -3393
-5688 5073
-1114 1094
-6049 -9956
--2841 6783
-4501 7881
--2859 4706
--2458 3067
-7257 -587
-2768 -4987
-2783 -3062
--9997 7195
--4012 5984
--6203 4434
-6949 6231
-5809 -6291
-3368 -3678
--2162 4748
--7693 -5156
-2549 -403
-1167 -1467
--6369 1163
-7879 2162
-4303 -9275
--3372 7986
-7124 -4631
-6104 885
--6117 4092
--3195 -4713
-4919 951
-2261 6192
--9919 1346
--7759 4534
-6750 -2341
-9777 6486
--1691 -7044
--6335 -1247
--9872 -9893
-3056 -5832
-1803 5560
--3276 -3970
--3671 9979
-4894 -1508
--2503 4881
--9743 -7061
--4362 3659
--1765 -8169
--45 -1864
--3840 -7647
--553 -8092
-7594 -6843
--524 -6122
-6867 -3382
--4177 -4056
-9172 -954
--4323 5597
-9007 -4726
-1002 1279
--8449 -8724
-9671 -3814
--5201 3461
-4738 -2282
--3432 9111
-5540 7336
-3629 -7819
-5155 -259
--799 6216
-2027 5788
-6011 -2896
--7855 -5355
-575 -9368
--7032 -7063
--2553 -8108
-1222 -6743
--86 -9024
-8180 5886
--7440 -4735
-9831 -3439
--7412 -7027
--8443 7720
--9517 -596
-1195 3318
-8705 41
-455 653
-2036 -435
--2805 -3728
--7210 -8422
-2166 -7902
--5859 -5628
--3097 8434
--6861 6624
-3853 -1284
-7683 5594
--6067 -1368
-1838 -464
-135 -6624
-5429 6467
--5981 -13
-4976 -7728
--4933 -2514
--7422 -4869
--9438 -5149
--5201 -5061
-5701 4708
-1414 -2897
--989 5868
-4477 3594
-5699 2682
-5932 7911
-1263 4220
--5539 8380
--9214 8743
--6646 -8497
-2122 -3744
--4189 1895
--9016 1082
--4645 422
-737 -2646
-3571 -7856
-4383 -2230
--7563 1212
--5966 -8577
--9833 114
--3862 -8096
-5991 -7412
--1631 1917
-3008 -7844
--9782 3185
--7230 -2733
-6627 -3325
--802 2790
--1559 4208
-5337 -3524
-4099 -5321
--2291 6186
-6410 -8500
-8407 3026
-7883 9563
--1746 1994
-4208 169
-956 -2556
-4920 5313
--7852 2592
-3212 6315
--5418 7984
--292 3409
-5757 -7177
--2772 -4978
-3740 7210
-333 -473
-2218 5671
--762 1711
--5673 3893
-164 -2196
--6586 -6723
--4583 3840
-9067 -3450
-807 621
--7690 -2695
--2850 9053
--7090 -1399
-1905 -1550
-6706 -5282
-2668 -3589
-465 6247
-9340 9372
--7658 6138
-5485 6797
--6816 -3015
-7456 -5114
--9713 -6178
-8014 -179
--7001 -1599
-9554 9523
-686 -7030
-3329 3899
--6925 7504
--4644 -593
-7787 -7971
--5591 2857
-8724 8000
--7281 8856
-3865 6931
-3694 6653
--6824 5041
--8456 -1400
-6784 -8059
--7973 4284
-3117 -9031
-5851 5903
--5618 8589
--8693 -8061
--486 -7629
-3012 -711
-7860 -1133
--2100 -7038
--174 -4555
--4232 -2340
--4609 804
-9693 -1953
-1383 -1131
--6024 1876
-3418 -4014
-3902 5806
--9965 4258
--1763 1764
--8442 -9209
--6816 -6595
--6585 -9498
--7178 -8985
--1456 -7182
-9477 -9533
--4596 -9501
-7565 -8004
-1886 -3670
--1526 -6688
--4180 -6854
-5892 8773
-1493 -6944
-5694 -9803
-7172 1930
--6607 1362
-6721 -948
--1726 -6142
--2026 -3335
--9704 3836
-2048 -9736
--1836 965
--7310 148
-5282 -7568
--1806 -7927
--7240 96
-3733 -7886
-7020 924
-2735 6
-6890 4528
--8602 6976
-7448 -1563
--2718 -9519
-2713 6940
--46 5906
--3321 -3145
--3724 4863
--9219 -3687
--9231 2316
--6661 -2675
-2828 -2476
--2219 -7113
--1623 975
-1928 -5043
-3632 6775
--8768 7620
--9375 -5659
-5672 -894
--1122 -5334
-6395 -2980
-8502 4136
--2527 5306
-684 9929
--5787 1079
-2069 -2174
--2804 -2139
-763 7795
--1482 5797
--1429 -5944
--9530 -9865
-4907 -6338
--1719 -4349
--8668 6721
-959 5085
-9016 1267
--2172 -7429
-1647 728
--1418 -4451
-8186 -590
-5579 -6182
--3764 -5241
-4429 8361
-4258 6215
--8032 263
-396 -8026
--897 7114
-2442 7861
--9505 8138
--2680 8932
-3193 -1557
-976 6578
--4607 8337
--3846 222
-6840 -6290
--3545 -5719
-8010 687
--9514 342
--3367 -5991
--5600 -3087
--1663 7881
--9841 9028
-3503 2827
--6079 2750
-3042 5511
-6277 6384
--1969 472
-4059 9996
--6038 -364
--6087 2442
-2578 -656
-2729 6093
--1363 6482
-1058 -2080
-4650 -6954
-3123 1092
-1134 -5075
-4307 4458
--8003 -5141
-4355 -4298
-6310 -4390
-1376 -7104
--4560 1218
-5473 -3759
--5856 -8063
--2285 -7003
-5857 7204
-2861 -5980
-9048 -9460
--9162 -8058
--8413 3324
-2966 -2531
--472 3468
--9260 4150
--9769 3368
-3526 -3240
--3388 -8262
-8495 -3707
--698 3101
-2487 -506
-2228 -6692
-3618 -9318
--3642 4539
--8470 -5278
--7661 646
-1330 -31
--4659 -1455
-6830 -4144
-5728 9207
-776 1260
--8437 9866
-3995 9439
--6840 1677
-8151 -8980
--4034 -3118
-807 6397
--3013 2980
--2579 -5798
--3674 7876
-817 5278
--1642 -3196
-6101 -2803
--5560 5938
-9712 4421
--6590 422
--8791 5180
--4714 -8660
--8519 3832
--6562 1010
-7412 2212
--2940 -1022
--4309 -9322
-7177 4433
-6337 7575
--1676 -4176
-6620 5655
-6924 2144
--4619 -9360
--7535 -9430
--6683 5798
-4291 -5410
-932 -4542
-9724 3570
--9839 2980
--13 5473
--2678 -4521
-942 -3566
-3499 -2832
--4154 -5031
--5580 -3622
-8509 2417
-7056 -3065
-5072 1258
--4466 3264
-4204 -3028
--4445 9785
-6047 -4480
-4768 -8876
--390 -1147
-8640 7353
-3400 -5110
-1771 -2572
-3550 5922
-4439 -7059
--7323 -3018
--4728 8540
--3402 -2714
--8420 8595
--6136 4403
--1003 -2117
--5624 -464
--8895 6892
-8375 -3433
-7977 8885
--4177 4561
-3575 -88
-7298 -7889
-9461 2838
-3624 332
-6303 -9249
-1451 -6180
--8656 9188
-6894 3294
-6959 -9281
-7829 6786
-1941 -9105
-2025 -8876
--7455 -8437
-6578 3935
-6365 -9578
-2668 -7660
--4881 -1069
--4426 493
--9916 -3875
--242 -9515
-7212 3381
--2974 -5201
-5615 1103
-8077 -3358
--2174 -4557
-5828 3058
-5998 1104
--1997 4536
--2627 4980
--2541 8804
--4536 -569
--592 -374
-9921 -1918
--8017 -973
--1263 5749
--6589 -3159
--7971 8193
--4113 9763
--3217 3851
-2673 9058
-4169 -2506
--9981 6783
--9342 -4806
-7665 5198
--3451 -7296
-3674 -5196
-7560 -7626
--6753 -5005
-216 -3391
-2622 8127
--8726 -6008
--4907 -7503
--7942 8190
--2077 -5156
--3334 -3913
--8975 4914
-5300 -4252
--4323 1279
-8983 -5676
--266 -8200
-5796 4695
--2681 5107
-1437 9816
-7574 9038
-9623 -8237
--3996 -3387
--1183 9556
-3499 -6226
--4536 7833
--9796 -824
--3793 7338
-9291 -8013
--3362 -8217
-3357 -7157
--3605 6977
--5153 -1235
--7757 1974
--6967 -1002
--3578 4660
--6848 -2795
--1028 5222
-8029 1322
-7403 -9925
-1760 -4782
--4798 -9606
-3547 -2017
-7522 1542
-6922 -501
--2731 -2243
--1667 -8546
-4501 8418
--870 554
--2810 4773
-6309 8675
--5224 -6611
-4113 1596
-2494 -7530
--236 1379
--3778 -9731
-6826 -8949
-1479 3617
-9046 -4101
--5131 -1884
-1110 -9378
--8571 -1017
--9946 2030
-1501 7866
-4848 -2819
--590 1718
--9907 -8344
-8890 -2895
-3971 -8470
--5394 6976
--7997 -2122
--2490 4584
-3520 -3782
-4308 760
--2388 -567
-7170 -8812
-8425 8866
-2536 9858
--666 4667
-744 -5655
--8676 -1280
--49 2008
-8966 6173
-7485 7884
-7624 -747
--5769 2755
-5162 -1043
-7876 696
-8757 -3233
--680 2753
--6394 -3367
--4407 -4266
--9138 -7633
--4825 2426
--9889 5635
--5911 -3261
--5503 -8892
-5142 -9627
--8946 -4725
-2143 -174
-2235 8998
-1736 1156
--3393 -7327
-5604 4012
--4783 -9709
-7621 -4351
-6897 -9376
--6667 -7978
--8811 -3042
--8928 2618
-1882 1981
--2724 7754
-2307 -5521
-5034 29
-6021 -6691
-1895 3913
--4598 -2251
--1393 8477
-7543 -4469
-2573 -5273
--7673 -7549
-8703 7439
-7520 7347
--6219 -3753
--1554 3171
--2590 7076
--9351 797
-7364 9229
--7051 6452
-9714 800
-5981 3992
-8498 -7114
-5148 6637
-4592 -1982
-5406 6447
--2883 2291
-7884 400
-3938 3291
-4738 6155
-7507 2739
-6998 -1670
--2529 -2068
-2592 -1883
-1097 9893
--5074 7742
-7998 1564
-9149 1618
-3011 -8802
--8945 8155
-415 8196
-339 4042
--66 -9206
--400 -3741
--3726 744
--5983 347
--1363 4217
--3748 -9962
-1942 267
--2417 -2071
-7599 -1399
-540 1425
-4178 5064
-4394 -8277
--5747 389
--2349 -7207
-7859 -43
-4256 3189
--7646 -9301
-7201 8217
--4958 -9649
-2017 5177
-5919 2319
--5624 3594
-5108 -469
--1589 -2216
--9961 -611
-2757 -9260
--2035 -8920
-4604 -2135
-7197 -9274
--1660 -2350
--6265 219
-5174 2133
--3050 8191
-207 -6981
--3847 1205
--8686 7571
--4090 1488
--7447 4217
-8639 6326
--9190 4714
--4306 5919
-4821 -1511
--5163 5013
-4307 8857
-3777 -2222
-2280 -4373
-9579 3152
-7976 -5574
-7967 7544
-1731 3833
--7962 -6165
-6779 -3299
--56 -2704
--8313 5576
-3090 -9076
-2650 7575
--5853 -8354
--2598 2253
--5621 6172
-4378 -8984
-2493 1794
-4818 4998
-131 8347
-2510 8876
--8642 -472
-1980 3757
-7737 817
--7476 4587
-1714 -7611
--6907 9638
-4573 9913
--7911 -4605
--3709 7299
-5059 -1571
--5773 4423
--9617 2892
--6241 -6388
-9320 -995
-4319 7608
-9136 3926
-2805 -9956
--9196 -376
-252 -2691
-1443 7165
--3877 -5856
-3213 6705
--6399 2421
-5377 -8233
--1579 5115
--3487 4920
--3904 -3442
-6442 1059
-6474 4544
-4843 -3877
-3276 8121
-5521 -5380
-3547 -363
--7311 1030
-6543 -5361
-394 8116
-7276 5566
--3972 -7541
-3320 5084
--9681 -5867
--8243 2421
--7414 7756
-717 -2520
--7472 -8080
--9118 1873
-7612 6986
-5362 2518
--4183 -2958
--2217 8097
-1919 -4058
--8071 -9465
-4068 5272
--3384 -9490
--7998 8924
--3256 -8083
-3357 4949
-1836 9425
--3327 7613
--9490 -6495
-6323 5316
-311 3524
--4033 -9128
-1897 -9042
-6307 -841
--3519 6127
-8214 -8719
--687 -2503
--7566 1788
-806 -2951
-3994 -2968
-6020 -5999
-982 8717
-9348 2903
--4127 -7947
--8729 -1840
-3509 3512
-6365 2457
-975 -8940
-1903 -1495
--2303 -7688
-5056 9194
--3243 5745
-4286 4387
-6073 -2094
--1097 -2358
-9139 -9672
--1590 -8886
--7460 -6415
--5061 3515
--9508 -6485
-9448 8145
--8250 1921
--4077 -7824
--354 -9349
-2810 5699
--2232 -7992
-8033 -7293
-934 7064
-4524 3853
-8231 -1751
-4653 5024
-3366 5666
--7274 1458
--9660 -8423
--2523 9909
-7121 -8854
-4342 1751
-2423 4442
-7394 -6146
-9902 -5156
--1037 -2709
-7331 -4546
--9150 -5528
-5006 -8099
--459 -4341
--6870 3186
-9541 -9594
-3095 8817
--5579 8904
-3461 8835
-1613 -6608
--6970 2398
-4072 -3756
-826 4303
-8358 -5134
--1580 2144
-3619 2443
--7656 9198
-2906 7776
--5079 9477
-3881 -7866
-4101 2282
-5557 -7340
-2092 -8609
--64 -8178
-7547 -4309
--9466 -3432
--2999 2636
--2285 5015
-753 5688
--2585 -9815
--2840 -6036
--8085 3091
-7397 7008
--6336 -1209
--5613 -5176
--7852 4515
--7146 -9167
-7327 9236
--7973 8861
-8766 -4736
-9242 4658
-7788 1991
-6499 774
-3556 9494
--8357 5164
-3688 -8170
--3573 -5836
-7439 -4871
-543 -6789
-4861 8515
-5068 4069
-789 -9044
--1969 -540
-2497 -7752
-4621 -4346
--7021 5589
--5440 6348
--6638 -6981
-8124 7334
--2705 5859
-3481 5551
--5085 3937
--3328 8106
-5009 2211
--8068 -6294
-3938 9463
-275 5424
--1686 3650
--6347 -3218
-3151 7370
--7303 2582
--5262 3792
--3888 -7461
--1153 542
-298 1672
--1432 -2307
-3344 8498
--6555 2960
--5051 3720
-4935 4149
-6446 8294
-9427 4958
-3439 6485
--5126 -5804
-9935 -1716
-5840 2017
--3771 -9218
--5223 3618
-8205 4613
-4089 -7382
-880 6557
--4280 8214
-3088 6873
--7665 -683
--9828 6360
-9026 3317
--8472 -3638
-1118 -5919
--1080 5108
--8780 -873
--2779 5567
-2420 584
-6060 -8490
-3226 -4378
--9575 -4990
-7859 -56
--4115 -3712
--8682 -2651
--9695 -4034
-6526 1829
--1584 -3284
--6104 8613
-7745 2085
-6564 -4432
-8295 6515
--8480 3547
-4325 9233
-6021 7970
-5549 -1762
-4927 -1189
--2840 5659
-1106 -28
-2698 4390
--7037 -4242
-3283 -7356
--1346 2586
-7629 1376
--6863 4430
-1686 7171
-4138 -4793
--2893 5417
--1745 -1807
-913 8907
--3624 -4261
--2883 2547
-7160 4072
--8983 7307
-7187 -1329
-2398 -8566
-8779 5134
-1926 -6425
-1923 -7481
--364 6920
-7437 5672
-9591 -7983
--3081 7480
--7866 8312
--1824 4925
--3277 9525
--3201 -6165
--3511 -8781
-1679 9322
--254 9184
-5191 1853
--294 -6439
--4395 -286
-897 7512
--4598 9818
--2654 8924
-7984 3668
--1717 -6373
--1558 -9924
-7872 -1965
-9460 6512
-3810 -904
-6529 -9062
-6411 -8742
--5385 -2379
-5218 -4338
--7089 -3540
-8847 2894
--5182 -7852
-9100 3062
--5607 5617
-724 3105
--2739 1942
--135 7260
--8791 -1481
--1229 8975
-7032 -1218
-1721 7085
--6583 112
--940 6764
-9018 -5716
--6790 8559
-9853 1944
-4543 -3413
-4588 -7656
-1790 -4384
--3061 287
--8312 -9591
--6279 -8204
-7244 -5715
--8293 4501
-9486 -4473
-6909 9864
--9383 5193
--5639 -129
-4756 826
-1000
--7807 2452
--6646 1585
--6833 8736
-4249 5561
-2362 7504
--6981 3358
--9901 -4818
-4154 8122
-3547 -280
-418 8792
--9253 7049
-6546 3908
--5159 -6955
--1187 2692
--8013 -5412
--535 1422
--4489 1659
-2922 5122
-6492 -5407
--8348 -4839
-7307 -9149
--8788 -461
--1027 8203
-4812 829
-8407 -169
--664 -6718
--9251 9227
-3821 1336
-3847 5111
-7401 -5311
-6536 9081
-2419 -1495
-8602 -4721
-7858 3397
--5412 -7016
-3494 -8237
--5578 8607
--9981 -5349
--6674 301
-1969 -1760
--5947 1327
-6057 -3298
--502 -8070
--185 -6787
--2090 7382
--5665 -3488
-542 3314
-839 -5712
-2205 3166
--8572 1195
--5198 4665
--4573 5971
-7336 -5140
--5682 -6809
-8104 5259
-9762 7050
-9640 -4889
-4276 2243
--4882 -1037
-320 -480
--3940 895
--3294 289
--4062 7414
-4773 -5767
-9380 6189
-9413 -7467
-2210 -7729
--6686 -7950
-9204 -1428
--8739 6841
-8829 8229
--7992 -5244
--9934 3377
--2108 8105
--2914 5254
-3348 2579
-1054 862
--1120 3810
--2345 7924
--2677 1647
--931 -3235
--2149 7800
-740 5890
--3574 -5738
--1733 6710
--7876 7089
-5555 4858
--6471 5954
-6560 2050
-8569 2405
--3641 5640
-5018 -8406
-5771 -6016
--7302 6401
-9919 -7738
--1881 5297
-7244 -7918
-1145 9920
-6780 5560
--9426 5176
-1536 4920
--4105 -3321
-4621 3904
-7126 -9488
--9736 367
-7169 5406
--5459 6599
-647 1982
-5871 3012
-8011 -9283
--7631 4731
-869 -696
--7712 -437
--5123 1195
--9316 1935
--2926 -2143
--1904 3098
--7887 -9379
--8050 -7038
--7983 -2058
--342 -8163
--9930 9479
-581 4180
--2987 2613
-4703 -3552
--9024 2679
--5593 8421
--2665 9139
--9303 2202
--3128 -2809
--1244 8664
-6880 -7469
--8243 -9227
-390 -1549
-6208 5223
--7234 -3549
-5741 9181
-7608 9562
-4031 -93
-1164 -126
--3030 7062
-2542 -9334
-1245 1465
--9537 7107
--386 -235
-6381 7782
--1087 -3412
--6841 -8481
-4292 -8888
-4472 8729
-4632 8029
--9463 6367
-435 6811
-8880 5931
-3526 4775
--5246 178
-2887 -2507
--9962 4713
-1648 51
--4127 8572
-3905 -3119
-8643 -714
--2264 -8203
-2051 -2527
--1123 -1884
-7637 4918
--6724 -4374
-3670 -2940
-9150 5852
--3841 -3803
--8301 -1237
-7695 2175
-5244 -4052
--7922 -9221
--4081 -8197
--830 -6131
-9263 7364
-9132 7895
--5634 9119
--2189 -8205
-2156 5352
--62 -563
-1867 4700
-3317 -5430
-4240 -817
--475 9173
-3874 -6488
-2240 -6552
-5436 -2881
--8990 2605
--207 7095
--2155 5350
--1564 -7872
-8092 8129
--3393 3018
--6355 9616
--2397 -8283
--2060 8291
-9088 -7169
-2718 -3553
--9138 -9426
-3733 6543
--9500 -5024
-8770 4236
--1031 -8328
-1179 9543
-8595 9537
-8161 3183
-9219 -6330
--6857 4374
-6617 -3999
-3176 -6736
-7241 4515
-292 -8982
-6348 6902
--6530 1347
-7570 7257
-1683 -4524
--4281 6246
--9805 -3419
-9880 2180
--5140 7347
--4921 -8554
--9699 -2289
--1992 2955
-160 1200
-3993 -9040
-847 -2605
-1202 1017
-9991 -9009
-8222 -6692
-5588 5686
--7851 -8502
--3258 -3348
-7719 1549
--4496 -3612
--8398 -45
--8844 -5031
-6604 -8720
--1742 9342
--1916 -4027
--5152 3799
--7049 5988
--817 2124
--2199 7495
-2390 -7669
-9790 -3310
--26 9296
--3220 4116
-7590 5576
--7124 -8738
--2522 -5549
--4990 3869
-9045 -6969
--6340 8853
-3126 1845
--6889 1318
-4129 -5961
-5403 8650
-5131 6851
--7154 -1848
--1029 5935
--1635 -2849
-6178 -9006
-4919 -9812
-4964 8450
--9015 -5476
-6093 -1852
--8617 4772
-5293 3501
--3411 5675
-9725 -7521
--8592 -5630
--2578 -2285
--5469 -3459
--7469 -9751
-1947 -5642
--5762 -3320
-4839 5163
--3109 -7067
--4320 1517
--1791 -5266
--3238 3836
--1765 8061
-2855 7948
-9987 191
--5447 -8970
-2896 -9487
--1546 8019
-3744 5118
--1523 5033
-9725 9221
--4373 -5822
--1379 1881
--5593 6110
-1372 9041
--560 -7742
-3993 7991
--7010 -8621
--8493 240
-9946 -6850
-2140 -2860
-8734 -3791
-4477 -6847
--5156 -8539
--1067 -6915
-6510 4971
-2851 -9411
--7811 -4939
-5925 2999
--4220 -4203
-5138 2694
-4857 -3088
--5739 150
-3687 -7515
--4685 261
--4271 4554
-1197 -3530
-2212 350
--3879 8203
--927 -7483
-2370 -540
--9503 4010
--9955 -6888
-4988 8402
--3080 3741
--8477 5958
--5233 2630
-7443 1032
--6366 4846
-5012 -5659
--395 -2251
--3339 -4255
--127 -2581
--3421 4249
--873 2627
-4022 5564
-3442 9715
--9724 1543
-8993 -8335
--9511 -4802
-9245 8664
--3948 8891
--6585 -8875
--750 -7200
-5683 6908
-2813 972
-7448 8070
--3011 -6586
-69 -1839
-24 -7642
-1495 358
-8307 2339
-8437 1875
-5428 44
-8230 -3744
-3508 1294
--8842 -4090
-8181 7884
-8685 8930
--7032 7167
-7532 -5701
-152 -2336
--4186 -5027
--8661 -8952
--5426 -2013
--2784 4811
-7049 -9821
-9802 -1199
--3700 -1097
--3400 4401
-8170 -551
--1112 -4972
-9396 7132
-4759 -5010
--6572 5754
--4671 2291
--1721 -8736
--553 -6696
-4232 -5953
-3189 4394
--7669 -3065
-8638 7883
--362 -4287
--6703 -8801
--6886 -3214
--9253 -2205
--8798 7878
--7328 7471
--2467 -6085
--2574 -5948
--6306 -6349
-7547 1098
--2082 -7758
-4795 -7140
--5988 1280
--702 6703
-9981 -2576
--1039 -8597
-3368 -6365
--4532 5168
--405 9712
-6770 8522
--9671 818
--9891 -4984
--727 -1216
-5722 3008
-3855 -8748
--4775 -3795
--1993 -3760
--3566 -6108
--5386 660
--163 -3879
--5326 -1718
-5002 -3291
-4373 -1772
-6993 -9636
-1810 9522
-8679 -7822
--9136 8078
-4169 -6457
-1385 2033
-6141 9922
-6773 -7112
-1362 4900
-9781 -3825
-9314 7942
--4930 -5149
--4318 -7642
--2015 -3196
-547 293
-9971 521
--6476 3196
--1442 7711
--9423 6467
--9979 -6843
-1994 -596
-5822 -4498
--8843 -6743
--1444 7706
-9461 -6392
--6405 -6816
--286 9944
-2893 -8775
--2127 -5531
-8129 -3699
--757 -5955
--6990 2827
-8722 3047
-7013 -1346
--1248 8079
-5188 7517
-1664 8246
--2036 -7000
-3414 -278
--8668 8014
--7309 1528
-6423 -9215
-6128 9410
-1227 -9320
-4886 4840
--880 -5897
-2985 -178
--9291 6935
--5973 7109
--9395 -2436
-7275 501
-5743 -2809
-5721 2798
--1810 3011
--5220 -506
--3556 4336
-7200 6572
-7026 -1466
--7198 6589
--3624 -2033
-5201 -8537
-6099 5282
-7102 -5166
-1944 -6836
--5451 9262
-9799 -5121
--6486 3466
-2391 -6766
--2239 -9640
--2123 682
-8963 3653
--1049 3398
-9505 4479
--9087 -8489
-5614 -7777
-6739 -2481
-9507 -8548
-3862 -5800
-1683 6746
--9144 8619
-6007 4565
--9830 5898
--5011 -4733
--4145 -1583
--72 -5774
-8879 64
-3453 635
-5069 9731
--9396 -921
--1110 4515
--6338 6378
-3548 -2760
-2622 5916
-1805 -6008
-9585 -7175
-4399 -5894
--9477 3843
-8912 -3052
--9412 7925
--9960 -1786
-8494 -6082
--51 -7282
-9040 4981
--3058 6842
-1087 8236
-692 5332
-4280 -2906
--1424 7896
--3729 2470
--9715 -3649
-1874 -434
--1541 6180
-6688 5861
--1281 -3898
-3047 -4549
--1318 3487
-6629 -2961
-9017 6180
-9774 9862
--8503 4644
-7208 337
-2889 2023
-445 8537
-1684 5544
-7578 -9542
--1226 511
-6894 -9704
-4907 -8441
-6968 -640
-6569 6917
-3490 -3881
--6439 3587
-8301 9493
-8392 -6211
--3477 -8685
--3288 5433
-7994 9110
-4370 1820
--8631 -5288
--5062 -4385
--8968 2286
-4500 7930
--9783 4945
--6092 -959
-6717 -4942
-8858 4094
--1799 4151
-2890 -4307
-3731 -2622
-6620 -901
--827 9948
-5693 -7619
-4521 883
--1692 -1774
--9376 -6454
--2798 8005
--4933 -92
-5889 3054
--9400 8573
-5825 789
--9755 -5492
-6434 -8379
--6395 3883
--697 9754
--9317 1873
-3448 895
--4896 1603
--164 -5659
--9719 6907
--4235 -1144
--5302 -1908
-4693 -1792
--8047 -7731
-4240 5806
--7032 8932
--4055 7473
-5248 1157
-8224 9490
-5931 -5840
-3898 -9602
--5040 -9321
-5212 7525
-2292 -3443
--526 -8456
--8306 2974
--5748 -5860
--5677 1745
-4002 -8667
--6309 -9379
--8087 9720
--3009 -20
-5595 -3868
--9969 -5230
-3553 -4359
--1640 -3098
--7294 -621
-3615 -2073
--821 -493
-6841 6779
--9950 4062
-1457 665
-8711 2340
--2393 5312
--2243 -5424
-4092 3141
--586 -5709
--249 -482
-7794 -6844
-5338 7392
--7415 -2177
--7261 349
--4617 8081
-3687 -5754
--7733 -5209
-3267 7806
--3245 4285
--2736 6256
-742 -7309
-7713 7377
--6220 -7752
-3952 -1737
-7181 1761
--8988 4650
--3445 -6862
-8314 9208
--316 7409
-4895 -4291
-8379 6127
-131 -889
--9432 -7669
--8298 -6572
-3469 -2796
--1770 4758
-714 6857
-2949 -2468
--5039 -7031
--4933 2464
--7467 1631
--5905 6188
-5581 5786
-5527 2386
-8619 -3606
-7655 7167
--3529 -3529
-2089 -3309
-9960 -3619
--6891 352
-7190 9616
--1624 -6885
--20 8728
-108 3629
-1442 4110
--3988 8677
-3198 5617
--7267 1218
-6070 4684
-3821 -4887
--2031 -847
--1767 -7332
-4088 94
-9678 -1920
--8816 -2649
--6992 -3643
-4073 5852
-959 6143
-5762 -7452
-9360 2814
--4986 6579
--6693 3285
--5212 -5585
--5181 -3251
--1477 -5621
--2021 -9930
-6331 -1400
-8420 9966
-6341 6645
--3046 7625
--9848 -8253
-5672 -8545
--5682 -9108
-3381 414
-3747 -1339
-3223 9092
--1842 -5748
-7249 -8089
--3039 -9504
--4816 -1836
--6874 -7285
--6721 -9282
-5924 -9050
--2893 -1558
-2753 7040
--1603 133
-8699 8454
-3165 5038
-1490 6855
--4289 -7645
--5873 1432
-9791 3919
-2664 -893
--1312 2541
--8926 6312
-9458 -7814
-4181 -1248
--6518 -7902
--288 1493
-1748 -6785
--4364 6825
--4103 6369
-504 -3850
-8581 7009
--2855 -8211
-343 9516
--5547 -3955
--976 -2500
-4575 1713
--1603 -6865
-944 2243
--3386 7246
--8924 -6680
-610 -5502
--9537 -2020
--4813 -637
--726 6128
-138 -9349
-6341 1823
-7764 1972
--8519 -9941
--4210 -9736
--3754 -4918
-8405 4540
--9437 4231
-9540 -420
--4298 568
-3892 8860
--5561 2131
--2980 -1864
--2678 -1998
--726 -1561
--8203 6125
-355 1063
-8587 5771
--4320 9733
--1410 -5433
-3368 -8839
-6262 211
--2920 8509
-8361 1539
--8686 4537
--1466 -9281
--1819 6532
--9902 6330
--9181 5988
-9445 -8701
--1710 -805
-9043 -166
--2914 5621
--8846 3394
-1089 -9380
-1146 9891
--2441 5366
--8920 -3783
-5874 -3469
-8151 -5602
-4740 1244
-4529 8189
-6054 -1852
--6396 1608
--3201 -6806
-978 -2744
-5788 5090
--6125 1645
--4024 -6759
-929 8375
--7241 7082
-3134 -8707
-3016 9093
--8006 -5394
-1656 1790
--2256 -8663
-1763 3870
-7009 -2243
--2058 7177
--4117 5243
-9410 650
--7631 -6050
--3377 -434
-1066 3504
-9299 -9361
--5782 -1303
-3533 -3774
--4717 6125
--5375 441
--6535 899
-1498 865
-6055 -1527
--8325 -5974
--978 7306
-6803 -6875
--7973 -9049
--6164 5202
-8746 1594
--8409 4586
--2493 1198
--9767 -8789
-2470 -4262
--9265 2872
-6641 -2654
-6148 -4857
-846 -6344
--9898 -1623
--649 -8828
--1999 -9724
-2066 4940
--6914 -5454
--8741 9706
--2825 7320
--6499 -3346
--2541 3341
--1863 8118
-393 -9080
--8451 3877
-2536 5693
-9346 676
--3012 -3057
--3206 -2069
--3462 -8523
--5724 -7030
--2190 1278
--8898 -703
--4092 7910
--6883 858
-9942 4245
--4437 1141
--2197 -5016
--714 5592
-8568 34
--3381 5432
--9998 -3455
--6352 7731
-4496 -9505
--2107 -6606
--2551 4909
--7967 -7561
--6962 5742
-7176 -8678
--1289 2468
-4824 -926
-805 -6539
--2824 6477
-5676 9965
-8522 -3423
--7208 -7934
-3999 -7302
-8599 -5596
--9747 -554
-1117 -168
--7460 -9734
--1339 -7976
-426 -5273
-4226 -2609
-2061 4294
--3988 -136
--4298 9686
--5714 -3295
-6176 9257
--8930 7972
-6783 -7467
--2542 -4255
-4917 -742
--3679 -2052
--9443 -399
--9572 1091
--6486 4557
--6292 -730
-7383 -6994
--7553 8354
--9819 -3768
-8719 -9458
-3229 6344
-9553 -8491
--3956 -7995
--3337 -6756
--1759 5891
-1093 4638
--3170 -9218
--4738 4211
-3810 190
--728 -9565
-882 -4875
--1846 -8526
--2426 -7733
--249 5478
--4283 9505
--1002 -6515
--6555 -4178
-6752 9170
-4567 8963
-8178 -1484
-1362 -7252
--884 6243
-9226 -2858
--1187 -2595
-651 -6062
--8618 9151
--927 504
-6304 -8166
--4088 -9118
--7186 -5695
--2676 4010
-1021 -6996
-5560 5086
--6358 6132
-2730 -3542
--1975 2811
--6471 7084
-5826 -1033
--3466 -6502
--4793 -8050
--6451 7158
-231 371
-5648 -4441
-2593 2824
--3532 6434
--7204 2709
--5144 5595
-3589 6696
--2031 7959
-807 5782
-7371 -5252
-6175 -5037
-7343 -3812
-635 -337
-7804 -5857
--2623 -9964
-111 90
--1874 -2193
-7869 1502
--2689 2468
--1489 -5889
-5614 9674
--2307 5876
--7923 -6138
--7818 -3573
--7705 153
--9083 9745
-2780 7134
-159 2847
-2307 957
-2844 -9848
-4727 -5793
--5246 9717
-6259 -5046
--8000 6678
-2477 325
-1208 5641
--3796 -804
--527 5869
--8616 -6233
-8405 4121
-7111 9630
--3588 6153
--8466 -9864
--1899 907
-7480 -3475
--8043 2180
--8929 1848
--1923 -9969
--119 417
--3831 -5777
-2 -7979
--5303 7258
-9680 -4100
-8064 -3740
-9052 6167
-783 -2170
--8754 -9046
--2100 806
--8179 -7453
-7673 7937
-3789 142
-4187 -4126
-5514 7912
--7617 9771
-1000
-559 -3860
--3889 3166
-9402 -4322
-2193 -5125
--7002 -8283
-8145 7943
-2458 -9651
--8599 8384
-8913 2588
--1834 726
-7904 883
--9500 8243
--299 -4317
--386 -5848
--8782 8236
-6064 7655
-7057 -2855
-813 5042
--3664 -2051
-4638 -9381
--5720 3781
--5114 -5730
--4633 8135
--1880 159
--8967 5567
--4406 9241
--2122 299
-4833 -9780
-5489 579
-9756 -2580
-6216 -9969
-8545 5768
-8743 -9408
--4431 1286
--4891 -4627
--9099 6799
-7308 5040
--1839 -2448
-9812 9268
-5501 -2552
--6610 -5742
--3883 439
-6359 -6107
-233 -167
--714 5029
--8535 -8628
--4350 1368
-4287 8982
--4849 3397
--6076 5258
-3567 -1441
--4348 9777
--3998 3723
-3129 5042
--2032 6770
--5895 9244
-9420 5670
-2128 -2125
-4295 172
--9674 -2826
-5246 9616
-8682 6785
--8365 2509
-6299 -4153
-6937 3092
--4535 -4625
--3739 5390
-7802 8512
--858 5239
-6181 -6086
--1575 -4009
--5144 -19
-5674 -8421
--7541 -4260
-6692 -3557
-4521 -8833
--152 -5105
--5844 2325
--1781 6959
-6939 5812
--3701 9875
-7699 5167
-5617 5556
-8348 -2155
--7782 5858
-2943 -1204
--7456 579
-3541 9401
-7308 8468
--220 5748
-4050 -4575
--9770 -3279
--4297 -8176
--6512 5152
-1490 -8282
--6162 4904
--7759 -628
--3755 2471
--3413 8364
-7819 -469
--364 1306
--6976 2963
--70 2074
-7495 -8108
--8317 7056
-7843 -1554
--1343 -2307
--5014 4815
-201 -4802
--4702 2491
-5151 3356
--7105 2890
--6846 -4550
-8072 -8941
--7885 963
--7923 -6144
-5846 4
-9648 6296
--6588 9233
--3415 2561
-2647 -5674
-6904 1784
--8729 -3315
-5467 -997
--8007 8911
-5685 5088
--9491 -9671
-1211 -7920
--6320 -4269
-8312 -956
-814 -4583
-7129 9737
--216 -5070
-6475 3634
--3884 -7198
-4727 -7412
--3013 -2118
-1086 -1869
-6837 2070
-3523 9829
-9090 890
--9114 -3579
--7976 -7822
--2098 4835
--8951 3395
--198 -6453
--296 9453
--8379 6456
--6011 -7491
-584 -5579
-6389 8574
--4365 8683
-2423 -807
-6942 -7343
-3555 8685
-2004 -9002
--37 -2563
-4915 -7788
-6208 -6663
--6299 -964
--6288 -9008
-7434 -1712
-7596 -2095
-3834 7973
--3189 103
--4028 803
--4648 -6148
--2872 6344
-7193 8249
-7975 -7459
--4011 1224
--7323 -6172
-6097 5568
--4758 -8280
--1163 -1537
-111 -1896
--1900 -3679
--8194 9244
-9242 -7821
--6920 1503
-4365 -2542
--3678 3965
--6296 7422
-9216 1810
-7398 -6308
-6749 8802
--434 -5817
-1378 -5771
--5819 -5504
--9219 -7474
-7066 -5585
--3094 -1024
-7693 7098
-2426 9999
-2999 1068
--6042 4182
--6841 -8312
--2571 2129
--6363 -337
-1150 6871
-9778 1867
-5065 -2197
-5939 -261
-617 1572
-8691 -3670
-6714 2996
--6383 2893
--3141 1285
-5485 -981
--845 -9025
--2282 -233
--8877 -6061
--6681 -9783
--2506 3437
-3886 -3463
-3655 -1901
--7254 7493
--6883 -9855
--898 4888
--8211 6590
-6499 741
-7513 1462
--5331 -1831
--1753 -6632
-2773 4265
--5928 -9635
--7338 -4794
-197 5822
--705 367
--9184 -7808
--1590 728
--8807 -4340
-4826 2698
--7524 -7947
-2726 -826
--5247 -2473
-2896 -5798
-4208 3319
-5965 5186
-5482 -9804
--1818 5318
-5559 -9476
--2507 -9139
--7972 -7643
--2440 2504
--4015 4980
-3372 1611
-3417 4708
--6058 7071
--432 1621
--808 9059
--9680 2530
-6049 -8933
-6731 -7819
-280 -8401
-1760 754
-5643 7480
-9387 8932
-2932 -1231
-462 9351
-3843 -5576
-4634 -8950
--4882 -5120
--8157 5077
-5901 -3069
-6673 -90
-8631 -7881
-9879 -4713
--15 3016
--7978 -5679
--9627 -5193
-2121 -1859
-1099 5211
-813 -7591
-1944 4744
-4437 -122
--3945 6238
-6974 718
--7838 7136
--9768 8835
-5172 5605
--5483 -976
-8062 -6127
-2943 -8783
--8726 -6221
-283 5660
-4067 7949
--9274 -9207
--9343 -2429
--3738 891
-5887 -5606
--2813 -1336
--2909 7577
--9520 -1268
--2162 -7029
--817 -974
-6654 2541
--6478 3035
--7216 3321
-912 89
--529 5354
-6836 -7866
--5860 4145
--8024 -1292
-5226 -4182
--5741 882
-8425 3214
--2453 -5752
-6795 -4674
--1805 -1687
-4852 -8529
-2833 -2170
-79 -7402
--1472 2113
-6870 7221
-6237 4117
--4887 6086
-6191 -823
-6358 -8179
--265 4488
-6213 9064
-8623 -7643
--7541 6289
-6813 -907
-2409 5257
--9245 -8628
-6048 -6662
-8094 -7583
--794 -9962
--34 5287
--1647 3919
-2980 9159
--5610 -1579
--9601 6729
-5167 -7063
-5131 -4294
-2613 3134
--6524 -8893
-9525 8171
-6336 2657
--6133 -4780
--3536 -4578
--805 -8367
-2113 -3816
-8430 -8358
-3442 1446
-9009 1219
-8691 -8770
--9 4492
--1346 -314
-3079 -7834
-2248 2285
-8861 -829
--9411 4338
-4228 -2630
-6901 3024
-3416 -4130
-1522 5412
-7101 -7793
--7163 6078
-8188 5649
--7389 6826
--6008 -8486
-1693 -9144
-7491 2350
--6272 -518
--5018 5733
-9399 -4060
--4780 -8677
-5929 775
-9696 8090
-2907 6505
-2879 1206
--6858 -7871
-1526 3414
-1078 -2188
-6691 8175
--5538 -841
--9922 5763
--8684 -3680
--5858 1131
-3040 -1650
-1280 -789
-3491 -6022
-3862 -9107
-979 -7641
--2542 7179
-3034 -1846
-8459 -4648
--9288 5969
-6007 -8888
-2453 -1240
--987 -4364
--2484 4725
--1553 6547
--5592 2262
-8801 -7475
-6812 6161
--6184 3602
--4104 1432
--3857 5175
-5548 -1476
-3728 1696
-4256 3987
-4828 8246
--3052 3429
-8184 865
--828 8753
--2339 7929
-6785 -3685
-7945 2858
--2009 -3150
--7556 -5824
--4206 -5783
--9422 -746
--4645 -2691
--3161 9369
--4607 1000
--6119 2784
--9237 -3915
-5412 -5339
-1757 -3177
--3616 -2432
--9700 -9704
--5329 9312
-5954 -1591
-2259 3779
--259 4124
--4127 3427
-8085 -6087
-9484 -1544
-6411 5122
--8847 108
-4961 -3167
--4237 7438
-4580 -6038
-5234 -167
-8165 5608
-9660 -7590
-4194 -826
-7840 -5366
-4534 -1096
--3996 8090
-3047 6268
-510 5488
--8239 4155
-4077 -5900
--7278 8799
-2332 7359
--4817 2565
--5881 -305
--8376 1527
-7420 -1604
--5661 -4468
-4211 -9056
--8190 5420
--1699 -7917
-7171 -7037
--9144 4261
--9153 257
-1693 -521
-2199 5896
-9079 9973
--8302 6469
-3454 2393
-484 7908
-2228 3180
--4456 2839
-2649 2498
--1351 8553
--1193 -1610
--7362 3475
-7667 -6811
--3044 4802
--9987 -1687
--8482 -1841
-434 4452
--2315 217
--599 2563
--8899 -4394
-499 -5359
--4881 -3775
-4276 -5145
--3723 1578
--8009 6410
--6420 2070
--8846 -5907
-3511 -2262
-2993 4023
-3003 9957
--1495 -2515
--1576 7496
-5282 7054
-7672 7562
--7269 -5118
-5073 -9489
--491 -295
--6052 8866
--2353 -1438
-3319 3965
--5329 -5431
-5833 -2909
-5982 -4227
--8171 -4964
--4196 -9568
--8335 -6421
--3408 -9371
--8943 -3809
-9483 2909
-3530 -2114
-4976 6763
--5694 -1155
-7095 493
--4318 7349
--9180 3703
--4122 -5796
--9689 -9045
-4730 2152
--6581 -2378
-7782 1679
-721 -5011
--3887 -9941
-9202 4978
--6393 5685
--8514 441
-3126 8213
-1944 9406
--8301 4151
--3599 -9
--2782 5839
-3583 -4996
-2406 -3216
--4457 9010
-4560 1205
-7418 -9030
-2199 -1380
--1183 7721
-3812 -6174
-5145 -2152
-7882 943
--8055 7976
-737 7067
--7499 3933
--3126 8
--7560 -1639
-7829 -9843
--382 3242
-3515 -361
-2593 4138
--7492 1539
-8439 -9643
-885 -6123
-774 -2046
--4157 -26
-9310 2280
-4231 -6334
--93 -7940
-3295 -3844
-540 469
--4822 -5789
-6219 61
--1273 -4008
-5817 -3533
--1130 9101
--8444 25
--3184 891
--7508 8943
--1888 -5535
-5004 -5881
--7132 6067
--3020 3719
-9696 -5516
--6657 -1702
--7563 323
-7700 -8745
-8676 -3254
-4024 8117
--3795 6338
--1932 -4901
-953 2413
-6465 1568
--8364 -7178
--2701 -5663
--1420 9303
-6067 1849
-723 -7119
-9037 500
--8889 886
-8572 -7566
-9687 498
--7869 3486
-3892 3820
--146 784
--3774 9416
--3022 -1154
-4182 -3175
-8556 -2315
--2622 112
--3143 -7388
--7676 9874
-4461 -4289
--5420 5861
-8398 525
--1707 9609
-7900 -4659
-3469 5887
-9710 2756
-6752 -3984
--4388 -7540
--8584 3738
--5952 -2591
--997 3436
--3285 1340
--918 350
--7175 5331
-1485 -1535
-7212 7952
--7145 -3472
-982 2212
-1979 8152
-3242 7236
--8368 -4599
--8170 3099
-3079 -1592
--7879 5452
-288 1619
-3140 -5528
-3660 -3709
-7536 -5234
--2423 5154
--4270 -2776
-7172 6336
--7926 -96
--2173 -4189
--4606 -164
--1249 -617
--7751 1014
-6933 7513
--9730 -1454
--1078 -6833
--2463 5197
-5170 9816
-6683 9053
-4313 2965
-8881 3882
-5773 3395
-5412 7188
--5457 5291
--9117 1140
--2342 -1137
--2184 -3169
--6823 6014
--322 5087
--5477 4119
-5246 -971
-7177 -2723
-2257 -1830
-3889 -4325
-417 3896
-5868 4653
-8351 -6368
-4846 223
--4398 839
-3608 1528
--8215 5062
-3178 -3595
--1469 1747
-6010 -5620
-9851 6859
--2689 -3915
-2501 -4601
-4102 -8029
--2093 2357
-8310 -2849
-5958 -6939
--8071 3447
-9083 6477
-7845 -4060
--4420 433
-554 -743
-7957 5229
-9708 1711
-262 -5399
--177 -2711
--2773 -260
-1189 2536
--2027 9160
--966 -8753
--5420 -5775
-1691 -1501
-2182 -1918
-3642 5268
-2236 -3848
--2884 -616
-440 5404
--8495 3630
--3694 -3640
-9381 -8874
--930 3330
--9014 5731
-2683 1779
--4608 -3568
-6341 -8657
--4876 -7859
--4123 5193
-6458 7540
-877 -9549
--5678 7351
-5851 -3167
--983 4201
--7968 -5460
-9074 -5509
-7332 -1106
-2508 148
-5542 9428
--7658 -615
-6656 7660
--6170 3113
-5111 -9686
--8987 -3931
-7358 -3811
--8968 -7328
--2681 944
-6126 1053
-7004 7548
--7099 6558
--4133 5940
-8538 -6086
--7892 3234
-4607 4959
--8678 6625
-6435 -482
--8883 4946
--8489 -7201
--3419 -3564
-3916 -8592
-9009 -1018
--9282 4345
--722 9351
--7681 -5684
--1671 -3924
-5776 8459
--3620 -3851
--5213 9064
--3949 -9403
--6361 9477
--2789 -5457
-2365 2650
--267 -6677
--465 -2720
-3718 -7267
-8037 -3552
-9845 -9850
--3078 -2547
-7633 -6057
-125 -9296
--4283 -4586
-7885 6803
-5872 5112
--7839 2186
-876 5182
--9631 -2063
-4076 5070
-5947 -4484
--9502 -4937
-8104 -7113
-9648 -1077
-1259 2292
--3788 8462
-9182 2262
-9869 -5852
--2091 985
-2167 6184
-4126 4315
--8249 -5571
--9626 5443
--8615 2768
--148 9999
--9881 4986
-9396 2227
-571 -6666
-3095 7036
--2390 -2102
-1736 -3916
-1421 -9806
--1330 3499
--5024 6048
--4592 4872
-9327 -3291
-6466 -1325
-3385 9359
-8154 7550
--2883 9280
--6080 4702
--939 8898
--8919 9898
-3172 -7249
--9397 -5648
--8428 -9460
--291 3927
-7072 -3995
-5753 6428
-1502 3190
-9230 8586
--6100 8740
--2738 -5444
-140 3227
--1871 4886
--7008 7114
-8306 6190
-1290 -9505
-8578 1301
-7670 -8505
-2236 -4277
--2273 -4894
--5901 -1221
--3548 1756
--8836 -6192
-8737 -3284
-1958 7930
-1825 -6123
-2446 7006
--3887 5354
--9135 5858
--7888 987
-8294 8616
-8793 2152
-1246 -939
-2885 -8416
--2569 -8026
-3505 2185
-2262 8270
-7795 7230
--3806 5403
--3946 5254
-5405 7959
--4272 9618
-373 2707
--5066 1838
-6688 3563
--1797 -4182
--3167 -8455
--7396 -9238
--7560 -4863
--6174 -98
-835 -5875
-9176 1737
-8553 -7730
--9160 -1220
--857 -145
-2901 3765
--8780 791
--7671 7412
-5701 5290
-6701 4126
--2185 -8106
-1981 8055
--8119 3414
--207 6822
--3920 -9644
--578 4442
-4535 8616
-9216 -572
-5189 9386
--5850 2163
-7008 8381
-5164 -9531
-413 -5271
-830 -4004
-3760 5911
--5444 -1101
-16 7264
-6852 8245
-104 -7537
-5130 6918
-8750 -9265
--1855 8070
--9282 -9840
--4268 3923
--1710 -1428
--8576 -7711
-3281 6467
-5637 -9046
--6694 5825
--1304 -2284
-1892 9604
-863 -5673
-3171 -9953
-4723 -4872
-3703 8193
--7878 -435
--1610 -218
-7736 -7926
-3812 7572
-1182 844
--8326 -7017
-1482 -9374
-5173 6404
--9661 -5953
-9432 828
--2654 1126
--494 7351
-8555 -5240
-5404 3990
--4462 -1248
-2680 -8123
--508 1559
-3920 4474
--234 5974
--7983 6311
--1404 424
-6929 2956
-8303 891
-9107 -854
-7463 8462
--1152 -3238
-5723 1603
-7463 7465
-4912 3993
--3477 -2365
--134 -6551
-9983 -6248
--8453 -9026
--9660 710
-6626 5285
-9104 -9908
-5793 -7276
--9434 1365
-943 6220
--545 -3538
-6751 9913
-9660 -3905
--762 3873
-3081 -7895
--9204 7993
--5126 -231
--2081 524
--1951 3209
--1737 -328
-4692 3273
-8242 256
--9031 2769
--4436 352
-2948 6194
-1553 -9678
-572 -5455
-640 -8440
-1659 -2356
--6889 6338
-5575 -1870
-8377 8732
-7402 6810
-5254 -9556
-3864 -5899
-5783 2678
--4122 -6231
-4108 -7331
--1324 764
-5640 6571
-6547 -1994
--8140 5065
-173 7221
-6349 6313
--9691 -9719
--8926 3546
-8993 -8713
-8992 -5016
--8960 5658
-2984 -6064
-2131 430
-5126 6071
-5458 -4152
--7242 -6537
--5004 -4987
--4023 -693
-5820 9384
--3367 -2075
--7517 1198
--56 8971
--7465 -8002
--9313 -7324
--483 -3694
-9152 5263
-8305 9045
--5168 96
--5750 -4673
-6530 7587
-1169 1988
--3126 -1907
-4966 2889
--9971 -75
-511 -4898
-7368 -2763
-1712 -8365
--4269 3222
--6688 -1932
--6948 9438
-7294 3537
-5211 2977
--4331 -9472
-1000
--9152 -8985
--459 -8844
--480 -4951
-1791 438
-6109 -3198
--347 8473
--9961 3020
--3731 -2061
--3971 9036
--6576 1399
--6652 9132
--5129 -2228
-4343 -2786
--5939 9535
--703 -6650
--9392 -7779
--2704 2541
-3227 -6773
-1468 -2890
-3531 3955
-8697 -5471
--5563 -8304
--9303 5005
--3251 5424
--6430 644
-1965 -3712
-7204 -5209
--6361 -225
--9346 -4747
-2823 -8843
--5816 5895
--1379 6491
--2325 -4072
-4623 -8337
-598 5939
-7695 4331
--3664 9370
-4733 -1708
-6306 -1592
--6752 -4431
--3931 -9497
--7722 4930
-3233 -5629
--6074 -5714
-3834 -7036
-9229 -4182
--8921 -8040
-8878 21
--580 -8863
--8893 -9074
--2345 6734
-7119 -2324
--651 -7831
--6312 -5310
--7593 -4066
--9488 9489
-7467 3687
-4818 -7216
--4074 246
--5202 9875
-301 5592
-3140 4620
-4879 -2876
-2887 9113
--6221 -7024
--7469 6746
-855 -7256
-6757 -451
-6382 -8117
-759 -1874
-4324 3110
--9329 -5180
--4716 -3258
--5829 179
-4497 5984
-8826 -9188
-9948 -2589
-6007 -5845
-292 6385
-3679 -4935
--5772 -4201
-9313 9209
-5650 4408
-6414 422
-1194 -4220
-5788 5112
-4775 -1963
--4312 -31
--8544 -4142
--4571 4863
--6108 858
--1754 4029
-4478 -3112
--7827 -7903
--7556 -2688
--8740 -6172
-9106 9154
-2549 8824
--4737 2077
--3137 -8703
--2900 -7390
-2440 4111
-339 1888
--6160 9128
--7632 6311
--7617 1812
--380 8254
-2192 6731
-1084 6582
--3314 5038
--112 -3181
--221 -7696
-8617 -9695
-377 -7755
--8700 -7030
--1927 6163
--3593 -1997
--267 6745
-8534 5561
-4096 5487
-1995 9311
-8817 6699
--1558 5281
-4038 -6
-9160 -7306
-5834 9967
--7850 7878
-1073 6665
-1195 7219
--8473 -129
--7543 7098
--9885 -5082
-927 -1430
-1040 -9684
-5653 -3967
-8394 5703
-3950 379
-8841 -8125
-8623 2779
--3022 1057
--1062 5978
-692 -7535
--5755 -1271
--26 -8450
--6768 -3812
-1200 7022
--6165 -7329
-8261 454
-8431 -4839
-1581 6396
-5850 8261
--1162 6240
-6548 2884
--3194 -8789
-9575 -4606
--9914 5266
--1312 -6643
-9922 -7233
-2755 7269
--1451 4531
-5305 -2723
--8005 -3049
-8922 -6854
--7016 7224
-6929 616
--104 -3096
--8417 -3077
-2374 -5111
--772 798
-5253 7160
-2752 -6503
--3792 8396
-2905 8748
--1643 -9619
--2813 -9386
-8363 -681
--5269 9988
--3490 4727
--2118 3861
--8745 4358
--6886 9432
--8653 4100
-4248 -4329
--9948 -9029
-1079 4889
--3694 -1760
--1089 3448
-6215 -8959
-6422 -3361
-2507 -5185
-7869 -4205
-8413 -1951
--5950 -7356
-6178 7875
--1096 7013
--7291 -6605
--483 394
--1206 -5433
--1447 9222
--6015 -9294
--2249 749
-9815 9883
--5587 -5776
--7918 7175
--4027 -2982
--3652 -2600
--4512 4404
-6788 542
-1429 7263
-9377 -977
--1270 -1360
--4912 9688
--3820 6879
--3060 -730
--1011 -8221
--5192 934
--3416 9224
-9237 -11
--7298 -6525
-6391 886
-4092 2432
--9373 -5815
-2922 -9302
-4173 1120
-745 8479
--7101 7987
--2703 -4680
--3247 1593
-8948 7222
-7539 -3879
-6429 -527
-7663 -3831
--5248 167
-8495 8507
--1558 3384
--1257 8659
-4113 -1346
--9143 -4470
-7241 5857
-1324 -4748
-3398 -9808
-7644 -2172
-5813 3976
--1253 2384
-6106 444
-484 7879
-3255 343
-4039 7702
-4331 2233
-5839 1705
-94 -5044
-3190 -4214
-9017 -765
--6211 -3699
--2388 6477
--2841 8469
--5714 -4784
--9650 9376
-4095 9067
--737 8624
-2595 -3548
-5593 -1061
-9839 8537
--6947 -1987
--1228 -3847
--8045 -3630
--3797 -9124
-6246 2678
--8662 -55
-7108 4898
--3373 7309
-7572 3081
--2144 6554
-6243 -6957
--4370 8134
--5264 -5093
--1358 4648
-653 -9990
-9533 2477
-2300 5157
-889 -1356
--4180 4703
-3079 -8630
-9547 7754
-8673 -7611
-2749 -844
--4906 7550
-5698 -9300
--4174 -8209
-1606 6229
-2589 -8097
--7480 -6342
-2435 1785
-9356 -9724
-4429 -676
--5421 2332
--2882 -1817
--9158 -9700
-7521 1031
-8890 6408
-3907 148
--7268 -8354
-1154 2137
--7196 -9968
--8934 1096
--8299 -2939
-8937 -102
--6694 9220
-472 -2518
-7988 -5672
--5230 1828
--8431 1392
-3838 -351
--6417 586
--5478 3401
-3142 -766
--9276 5419
--1439 9938
--548 9747
-7598 -4510
--1063 1099
-4555 9852
-6692 -880
--9466 9560
--3296 -6913
-7390 -1169
--7136 -7227
--1665 -7263
--4646 7540
--7204 -9894
-6779 -5321
-5837 8923
-4526 9234
--8895 -5852
-6703 -6107
--6733 -1072
-4589 -4047
-4058 -8046
-3200 -1825
--4188 7099
--2462 5129
-966 6778
-1307 -2585
-3793 -6805
-9579 -5742
-6516 -6714
-3464 -1169
--1120 -2823
--8584 -1848
--3153 8463
-7907 7332
-6078 2343
--305 4497
-8362 400
--7886 -6712
--8879 4501
-5047 3991
--401 7168
-8955 -5229
--9179 -6796
-5199 7822
--9131 4892
-5938 -4917
--454 -8277
--9869 6052
-3999 1494
-7436 3060
-5037 -6148
-4405 9232
-5415 5017
--3860 -9244
-5250 -9687
-59 1714
--8827 -6602
-7865 -9553
-2855 7841
-6774 2308
-1023 -369
--5739 -4805
-3138 4756
--7110 -3589
--7385 4848
--3242 3346
-2217 1617
--3549 -5989
-9306 5685
-6469 -2081
-9687 7574
--2352 9380
-3952 3889
-4291 6897
-4988 -320
--6903 -8231
--1734 2306
--9827 -2792
-1294 -505
--5962 -9817
-1460 5984
-6858 -2049
--8623 4501
--7058 -8284
--4180 -5690
--6238 6572
-5590 5709
--9307 8940
-1908 5167
--6069 -354
--946 9442
--9577 4503
-3478 -8986
-8725 -5314
--5713 -504
-2341 -2190
-5801 -1315
--9637 -8394
-4415 9522
--5515 -346
-5739 5512
-4561 2696
-6693 -7209
--177 6000
--2654 1183
-8731 -5044
-3685 8295
-6462 -2140
--7058 -7473
-1833 -885
--5975 -4290
--2092 8981
--8681 -8964
-9424 8861
-3118 7936
--9754 -2637
--1691 580
-4451 -376
--5426 -4950
--4534 8204
--1183 -8276
--7614 2554
-9483 -6891
-5088 4215
-2621 -1077
--6842 -7257
--272 4430
-7452 -701
--5921 -6356
--5383 355
-990 6689
--5830 -2121
-303 -8574
-1622 5127
-4604 560
--945 -2816
-5654 -8657
-1212 9811
--6598 -6142
-3261 5062
-6154 2737
-8562 -8483
--794 1231
--8271 -9336
-3253 -1846
--6875 8471
-2346 1488
--1652 -2084
--8205 6941
--4886 -1284
--4319 1389
-8274 -3024
--4295 1554
-2165 3533
--3207 -3640
--3540 -2120
--4939 6154
--9686 -9066
-5689 3099
-7130 -9291
--9108 -517
--9717 -1594
-4215 3663
-6298 -3429
--1216 8329
--9984 -8657
--5188 9288
-1500 -1726
-6022 4995
-9054 1533
--1471 -5925
--39 4858
-9930 -5589
-477 1146
-8372 -3216
-8659 -9611
--8401 1593
-4584 -5818
--5627 5829
--2167 -3404
--6060 1283
--6445 188
--1694 7986
--4336 3560
-8100 -2207
-2738 -603
--8337 -241
-2496 3492
--1722 -7962
-6017 7373
--1949 -5609
-1820 1687
-7730 3349
--8476 -8075
-4057 7877
-1820 -6133
--4395 166
-4628 -2398
--4055 -921
--3964 -2482
-8793 -9281
-496 -869
--8744 7783
--9935 5527
--4652 8780
-632 6417
--7957 -3365
--1770 4126
--6513 562
--248 5548
--7066 7921
-5316 -4730
-5420 -1816
--5861 -6612
--6599 4428
--7415 3447
-1535 3111
-8128 4126
-6820 4023
--665 -1539
--7782 2301
-6569 2598
--3529 -312
-2174 -7150
--2056 2240
-578 -8696
-1256 5377
--8257 9669
-595 1150
--2386 785
-9215 6771
--7533 -1821
-1844 -7059
--5915 -7715
--8897 5968
--8254 2715
-7616 -6858
--6278 -1647
-9764 -6498
--7448 -2655
-9613 6612
--783 3665
--1623 -2809
--5163 -2951
-7249 425
--6703 -8364
-9452 5806
--4318 -9965
-5623 7552
--8978 -9676
-9526 -9014
-1804 -6299
--5082 -5889
--5973 -4434
--796 9948
-2724 -2275
--9501 -1297
-2197 4866
-424 1066
-5040 4717
-5920 7485
--2044 -864
--9444 -9863
--3946 4582
--7494 996
--1393 -4020
-4416 -3502
-6315 299
-2991 -4790
-2165 5678
--2122 2441
-2439 -9298
-2212 5893
--881 -9000
--7157 -7092
-2155 -9588
-7460 6109
--4899 1994
--2071 -904
--1770 -9820
--2215 -7820
-8190 1295
-3475 5484
--2619 7693
-7194 -5710
--8163 1436
-1087 -1373
-2704 6239
-4652 2447
-3401 -4390
-5376 -6501
-7014 3752
--4607 387
-5158 2725
--4057 -3705
--5389 -468
-1777 5335
-1756 -2238
--8767 -6273
--2395 6425
--131 8614
-8175 -2275
--210 -6249
--6716 -5957
-8372 7841
-4604 -5335
--8813 5612
-2535 -858
--9882 3562
--4438 5091
-8105 -266
-1978 -1585
--8396 -1197
-3973 8540
-5833 9264
-7809 7670
-6260 -1475
-8874 5517
-1031 1710
--2783 4570
--8769 437
-4632 7149
--2548 -2644
-1135 5208
-729 1669
-2116 5319
--3432 -6206
--7583 -1384
-9285 6257
--960 -6968
-602 7769
--1074 9708
-1263 2928
--2277 3702
-115 -6490
--2107 7102
--1534 5439
--9180 9013
-6348 -6207
--4389 5751
--7845 9828
--1940 5226
-847 -5925
-2343 2694
--9589 2184
-9638 -4340
-2076 6383
--3189 5459
--9004 432
--9166 976
--9655 6343
-1771 -1882
-2697 -291
--4278 9915
--2340 6483
--6123 -1912
--8753 -5911
--5183 6453
--8795 8377
--4975 6748
-2966 -5573
--8960 -3739
--9370 -8910
-484 7060
--4705 844
--7939 -424
-5312 570
--4836 -9843
--1060 -4604
--2246 7577
--8343 5196
--2437 7489
--845 -247
--7280 6213
--9331 7870
-341 2248
-1427 -511
--5939 -1783
--9298 -1423
--7719 4017
--553 -9762
-7912 -5385
--7111 5710
-5696 9947
--1754 5769
--4694 -1124
-587 7386
-1381 -4355
-9509 -6032
-4837 -6079
-7623 -7731
-463 1586
-4659 507
--6827 -4217
-6117 8717
-5169 8691
-9177 -6917
--6344 952
-593 -9235
-5917 7788
--8053 -3532
-1500 6048
-1609 -7412
--4300 -6191
--7498 -341
-440 1902
--4140 -8737
--615 2250
-1153 343
-5330 6353
-6047 22
-5306 -6382
--5336 8398
-6109 -7585
-1956 -1337
--1546 3133
--3089 -5491
-2257 4759
--6695 8259
--5302 6003
-5184 604
--6081 -85
--2458 7131
-8830 7877
-1050 8145
-4408 8251
-6563 6175
-5518 -4178
-8399 -6696
--6337 -7054
-2520 8761
-4838 -6605
-4794 4137
-7906 9060
--6374 -9083
--5153 1240
-5025 608
--6128 -3610
--6095 -5991
-6295 319
--5620 -6443
--1453 -417
--5323 -3380
-7524 -5362
-3800 -8568
--4474 -6729
--3604 -4220
--8876 -350
--2549 2448
--8467 -9349
--1146 6576
-1890 5640
-5238 5604
--2011 -8657
-6382 -9266
-1059 -1499
--2710 -9665
--6179 -8753
--739 6885
-2351 2383
--9086 2194
-8283 -2095
-1974 8157
-7294 -2427
--3718 9909
--1066 -393
-6504 -5298
--5458 3510
-5113 362
--5474 -5524
--2798 599
--756 -6087
--624 -8015
--6602 -2546
-8642 1748
--6834 2328
--8552 -5791
-5852 -2840
-8726 8052
-7380 7250
--1830 1884
-5619 -6935
-3396 9984
--2707 -8027
--4213 13
--6183 -9132
-6747 -8195
--3416 6830
--3067 2767
-9477 -7550
--3306 5929
--2703 -8981
--6693 7762
--7589 -9680
--7400 1691
-9287 8945
-5027 -188
--9599 -8117
-4064 -7889
-1526 7308
-3194 3688
--2171 -7050
-8124 8637
--5133 -1344
-7948 -1433
-1259 -8830
-533 3817
-2217 -4323
-4300 9940
--8744 -2541
-5750 -1535
-6555 -9109
-5986 -6123
-2422 8269
-4212 -4651
-6610 -1853
-3095 -5770
-3370 3926
-9925 3504
-6622 -3854
--9520 846
--2882 8082
--7000 7041
--39 680
--6958 -2126
--6861 6062
-3319 1612
--9154 6394
--6782 9097
--5077 2656
-245 6921
-6007 6895
-7379 1147
--7824 6487
--4340 -1469
--5519 686
--3658 8788
-2777 5085
--1979 -802
-3573 7378
--2851 -8112
-604 8372
--9418 7418
-3689 -1946
-1658 7981
--7965 -8033
--2247 -7027
--2974 -884
-3927 7004
--7573 5660
--7497 -4986
--3367 -2335
-2454 3403
-994 -187
--1862 4217
-7909 -6161
--9651 -7019
--6964 -3594
--5048 -5856
--5405 -9063
--1151 -9621
--4212 -4395
--8941 -731
-3513 3346
--831 8220
--418 9208
-7788 7705
--1317 7547
--447 -8150
-3445 1326
-8839 -2712
--4686 -8092
-8449 6529
--129 49
--4914 -9897
-2258 9610
-3844 5848
-6277 -7988
-6089 7602
-3794 -4033
--4164 828
--2233 3294
-4791 -6829
--7843 2507
-7359 5415
-140 -4340
--2709 -6253
--4720 9632
--5067 -9892
--8654 4941
-3041 1246
--4936 -4418
--3899 8098
--9876 8514
--7079 -2192
--5333 1385
--1860 4196
-1567 1733
--9403 4727
--4250 9643
-8714 208
--1126 -6150
-3376 -3696
--9045 9688
--7257 -5062
--2529 -4193
--5045 4966
--8666 4890
-8789 -7318
--5022 434
-8452 -9494
--5399 7035
-982 7310
-3149 3345
--7287 2960
--8382 3058
-3263 -2948
--6448 -8787
-4175 5613
--8769 -1043
--6686 3352
--9801 9196
-37 -5846
-204 -8467
-5807 7244
--3653 -4398
-7312 8304
-3350 -9032
--4144 -2242
-7488 8790
-7399 5701
--7919 4730
--1573 -8723
--2910 9470
-7375 -5150
-885 6103
-7035 -6305
--9049 -7912
-5860 4928
-9646 1147
--328 -7918
--8931 -4434
-3881 8630
--769 9448
-3736 -7047
--3656 5409
--1049 -1894
-2679 4392
-3794 7348
--7808 -9362
--8043 6960
--3566 9674
--3284 9796
--4554 7346
--174 -2290
-8382 9698
--1430 -401
--9774 -1545
-8573 1807
-4184 2590
-408 -3962
-3956 7892
-4282 3468
-5497 979
-1149 8868
--3187 -6307
-3680 -8205
-7373 5181
-9185 -5509
-7252 -1529
-2406 -3012
--7114 -9007
--7565 1316
--7407 -2236
--1751 -5359
-2911 -1494
--8325 337
--4035 5902
--1550 -3638
--942 4270
-9413 5199
-1250 -7919
--3469 -9365
-1000
-903 -2341
-2059 7818
--3820 -7804
--6224 8953
--9778 6176
--9388 1921
--5918 -4663
-2041 -2463
--4733 3644
-7615 -6833
--6736 -88
--4773 -7358
-4186 4063
-7974 -2654
-2389 -4926
-601 2824
--3419 3671
-8820 -1208
--3546 9781
-9229 4353
-5446 3148
-7086 6644
--9402 -5901
-488 -9698
-2752 1277
-3480 -3983
-5761 -201
--7189 -1930
--3196 -4774
--4671 6978
--9795 1590
-5132 -3305
--2499 -7499
-5045 7258
--5001 -5302
--5017 818
-447 -5177
--864 7777
--2540 3712
--6466 8206
-4051 -5909
-2723 38
-509 -5238
--4395 131
-3152 6084
-8194 9960
-1747 -8607
--4887 -1861
--4231 744
--4159 -5660
--1064 6444
-7818 8294
-6185 1483
--1621 2973
--6245 -2380
--5405 -2599
-4830 -5921
--6363 -9809
--7132 -5718
--9114 -6949
--4970 -726
--9604 6348
-6390 497
--8435 -2616
-3214 5730
-7989 -8664
-36 2377
-6458 -2315
--6809 9752
-4325 9104
-6957 2733
--5901 -7485
--1287 -321
--2029 196
-5571 9350
-1224 -3753
-7131 -9199
--4382 -3734
-5682 8308
--5617 5433
--4690 1037
--6823 -7856
-3650 1989
-7312 348
-637 -6758
-5290 -466
--9413 -1112
--9802 -7820
-8801 1917
--1321 7400
-8652 -7038
--2893 8155
--8713 -4913
-2420 -7701
--1758 -847
-5626 -7520
-2217 9419
--2944 -2724
-2148 640
-1558 6086
-9814 -4390
--8788 -2379
-5227 -5906
--4344 -9812
-7929 5250
--882 -1542
--9469 -787
-8793 -1198
-159 -9563
-9072 -8880
--473 9398
-3788 44
--8599 -193
--506 1438
--1226 3831
--6524 587
-5620 909
--2450 5643
-1709 -4349
-6707 4242
-4258 -5670
-6793 -9670
-1535 -3593
--5740 -674
--7284 -5473
--5827 4217
--7111 -3622
-1799 -3346
--9499 2145
-4491 6182
--4396 8262
--6477 -5344
-3143 9217
--5969 6883
--9281 -1138
--7425 -6030
--9929 9064
--8250 -2296
--8367 4932
-9431 -5598
--4272 469
--8385 8147
--1165 -2900
--8766 1753
--4161 8720
--4001 1610
--8193 2226
--3657 -8997
-1242 -6160
-4999 8909
-9984 5361
-6416 3502
--4350 7922
--3948 5197
-4048 7568
-3994 -9833
-869 -6493
-9973 1183
-1923 4593
--7542 -9467
-8438 -9639
-127 -8891
-3534 -4495
-8351 -3498
--2434 7487
-8285 -5222
--9913 2909
-870 -3964
-2888 -280
--2253 900
--6441 -7537
--8935 8309
-1957 6475
--8931 -1834
-9058 -9992
--6402 -457
--5632 8892
-6672 4273
--8063 -6415
--3872 4032
-6203 -6723
-7490 -6552
-4412 8938
-6144 -3522
-7813 2393
--2334 -3062
-2077 5382
--5527 -5340
-2779 6369
-7800 4381
--9110 -8700
--3559 -6482
-9026 -4710
--5417 4703
--459 7128
--2424 -5136
--7257 -6315
-3276 183
--1400 5685
-1463 5383
-3126 -550
--8063 -3549
--6801 -1279
--2248 -8887
--8060 -6517
--9123 2878
--4030 -7353
-9242 3886
--990 -3957
--8701 -140
--1962 -328
-1965 -5270
--8007 -1014
-2748 5549
-5371 1679
--4518 1515
--4799 -3243
-8443 -9221
--470 6470
--5768 4791
--567 634
--7660 -1676
--8486 -376
--5344 2090
--4692 1297
-5641 -5696
-900 590
-87 -3234
--6495 8816
--6946 1311
--1252 9121
-2782 -1137
--7748 2597
--38 7005
--5191 -9115
-156 -3936
-7718 -9250
--3550 -9864
-3657 4206
--4580 -5526
--1031 -7581
--4223 -257
--9165 8605
-2926 1034
-6389 -9350
--8514 3555
-1839 3904
-9141 -3030
--4103 6942
-1333 -7385
--1587 -6336
--7938 4175
-7616 -2404
-5792 -9352
-4333 -9106
--9284 3202
-9793 -5181
--797 601
-7645 2819
-3166 102
-5558 6658
--1763 6135
-2818 8000
-5161 8853
-6504 -9439
-73 7079
-6141 -6048
-4272 -3725
--4092 -8396
--8965 -9305
--4699 4776
--7763 -8212
--1549 4238
--9078 7436
-807 -2259
-9203 4758
-8050 691
--5877 6853
-2425 1508
-7569 8537
-9264 6849
-840 -1183
--9897 1362
--8919 -3341
-7021 -3590
--6617 -193
--4191 4614
-9856 244
--9083 9714
-9566 2050
-4729 6874
--7185 -4600
-8184 -2802
--4282 6850
--5985 -6370
--5795 -8022
--9027 -8579
--9884 -7235
--4181 6622
--540 -9238
--9750 1871
--4569 -9913
-2519 9112
-8205 -5153
-1552 2857
--3106 -1343
--8685 1421
--3510 -3418
--354 2183
-3645 4760
-6917 10000
-1273 -9719
-5419 -2254
-7071 4521
-3132 -9989
-8790 3887
-6889 -7583
--5291 9553
-2246 6396
-5832 3352
-5873 -6496
--8027 6596
-8031 2984
--1432 -662
-3022 695
-421 -2339
--6473 -3767
-4772 3797
--4283 -6767
-4129 -1902
-6556 -210
--5207 -1612
-7706 6248
-8540 -7814
--6311 -9416
--6136 -5976
--1555 -5665
-1668 -288
--4484 -1156
--7577 9245
-4337 6433
-1625 2139
--5303 -2044
-2105 -9059
--2876 -8469
--1896 -5498
--5548 5885
-8393 -5489
-7542 5985
-7591 -5153
-6844 4949
--5188 -6142
--6711 -5621
--7123 5560
--2724 9073
--326 -2142
-4129 8260
-5187 -3441
-6996 -1011
-3263 5145
--7083 8152
-9736 5236
-9596 -1288
-6411 -5500
--4731 762
--6604 455
-147 7667
--355 6752
-6606 -3661
-204 -7856
-3843 -1803
--3289 -7231
--8201 5180
-1895 -5487
-5270 -3157
-7690 1056
--2096 -7380
--9540 4228
-6588 -1858
--3368 9093
--7530 -4692
--8161 -4950
-338 -9261
--6203 -2191
--7808 8422
--6935 -7475
-3050 3341
--178 -523
-9923 9486
-1791 -402
-4986 3535
--4590 9277
-9151 -8881
--9127 5404
--2159 4531
--3582 8562
--8562 -8537
-2496 -723
-9592 -9960
--9393 8996
-6861 5093
--5258 1260
-9428 -583
--286 -2729
-6898 7784
--9121 -3932
--5277 -7033
-8928 -7967
-1371 1711
--4625 39
-4056 -2936
--9202 7692
-5303 3722
-8315 -9675
--1083 6069
--1999 -3766
-8092 9042
-4061 -7618
--6764 4925
-6850 -3581
-5124 8595
--4329 1752
--4098 2491
-2315 4167
-4907 -7432
--8749 1245
--7911 5555
--4864 -9206
-3473 3414
--9302 -6190
-2280 2236
--8327 1083
-6392 -166
--2276 1549
-4811 -5011
--1939 -5903
--6513 7353
--6591 2890
-2467 7723
--6013 9077
--9932 5274
--9399 7638
-4265 6398
--8493 -9426
-5891 -2492
--1752 1081
--5703 -6150
-9429 9827
-3956 -6023
-4188 4277
-9837 233
-9864 -2339
--7676 -5249
-7455 3863
--7779 -259
-2577 -3949
-7709 -9271
-9100 -3703
-4432 546
-2680 -781
--5195 9313
--8305 -421
--5254 8383
--9756 8185
--5196 -3579
--9649 6111
-4849 1843
-8036 1426
--2761 3567
--1840 9914
-8076 -3454
-4031 -5058
--3235 -7804
-2306 -9128
--8991 -7895
-2774 2358
-2419 9321
--7465 6914
-5120 -2720
--3786 7299
--1873 -5389
--2270 -9691
--2788 -5620
--9510 -7874
-6123 6119
--8379 -8145
-8776 -6073
--3435 -820
-49 -8237
-8310 5403
--6015 2877
-3448 -9714
-8129 9977
-5169 -5269
-5587 -8769
-1544 -3912
--2939 1523
--3239 -9375
--9621 -5976
--9408 4801
--6928 -1337
-6035 1479
-3390 5031
-9408 6466
--8287 -1939
--5793 6707
--2495 1450
-1116 -4083
-1051 471
-469 5570
-7203 -9887
-7199 8208
--8334 -6308
--8156 -7605
--151 -7534
-345 7550
-4161 -6078
-2766 2653
--6437 -275
-9206 3681
-1408 3942
-7642 408
--513 -7003
-8767 -4955
-9562 1279
-7489 -9874
--5972 -8171
--5410 3080
--4321 -7982
--551 -4208
-6226 -3670
-8413 -6386
-1189 3443
-8685 -3321
-2215 -7546
--9371 -3312
-9434 9367
-5736 1328
-3388 6950
-4169 -1971
--8175 -8018
-1309 -4734
--4047 -4424
--2699 3522
-3821 -6273
-4160 44
--2911 -3671
-8610 -4230
-5192 7341
-9029 4001
--4848 4772
-1125 -6487
--3536 -4901
--3927 -5463
-4987 -5693
-6281 826
-3262 8546
--7055 -8636
-3393 -5029
-5767 1785
-6863 5831
-8783 -2085
-8390 910
--911 -2379
--8771 -9766
-4173 1839
-8973 8925
--1234 -9808
-9908 3785
-58 1006
--7720 -6508
-9208 -1282
-5610 6592
--3883 -1062
--5301 -6464
-7578 7842
--3958 -9421
--2573 -133
--5948 -4333
--9951 3612
-3009 8801
--4582 8710
-6543 -6274
--2596 -1078
-2725 -8601
--867 -8462
--4510 -7738
-5737 6908
--4211 -3529
--8835 -3502
--9544 8576
-4346 -3549
--629 1136
-6499 -7106
-2017 -8191
-3275 -1970
-3871 -9540
--1128 9623
--9477 -9741
--230 4503
-5836 4905
--8162 5491
--62 8982
--3522 4448
-3639 -7990
-4683 -1858
--3165 0
--696 6355
--6031 1194
--11 7878
--5442 3519
-2557 2667
-5161 6438
--5475 182
-1712 4066
-9919 -794
-7440 4641
-7711 -2949
--1972 -2915
--4131 2979
--4749 -6127
--8065 -8656
-3764 -5370
--892 -6125
-77 -6170
--6566 -2426
--1376 2426
--456 -5524
--7236 3765
--1587 6131
-8745 -2662
-3917 -9836
-458 -7637
--8949 5337
-4696 4865
--7390 -4907
-624 -6674
-9733 1819
--8272 7353
-6611 4233
--8368 -7169
-6277 -6860
--438 -293
--6050 -4179
-9813 7047
-5025 -8423
-5301 5448
--6050 6568
-2539 9475
--5255 -7725
-1261 5973
--2913 7148
--3718 -3794
--8221 -4395
-9086 -9164
-4897 9813
--9809 -7986
--3713 3584
--4974 -179
-4790 3626
--3047 -6752
--9272 -3285
--4181 2203
-9282 -3889
-8980 -2547
--5168 -3597
-1385 -6721
-4560 1989
-2600 -3671
--2795 592
--9204 951
-9268 3055
-2944 4536
--9107 1635
-6130 -4188
--7609 615
--6050 1758
--4683 -6431
-6041 -185
-5113 -6113
--4542 9776
-8558 -3779
-7188 -3495
-6746 5566
--7061 -2523
-2468 -7804
--3491 6831
--1497 -208
--2577 9459
-4697 -4030
--6139 889
--8783 -7371
-399 4170
-6928 4390
-2746 6733
--419 -5339
--626 -6476
-8564 -2523
-9315 -2976
-4107 -7735
--120 3465
-3079 3314
--8409 -2181
-4324 2703
-683 8355
-8143 -1548
--1856 -4079
--5320 9464
-2969 2460
--6215 6154
--1989 -3892
-93 -5267
-1240 2263
-2567 398
-9795 3166
--3907 -4950
--46 -8386
--3737 -9975
-6747 8132
-2700 6500
--4590 -9712
--4621 -8919
--9186 5053
--5321 -8064
--8726 -7025
--5305 -4403
--718 -883
-1763 -4420
--1276 -3605
-9453 3108
-8663 1361
--7527 -8804
--6568 -1101
--9037 4238
--5898 2994
--363 -9142
-7753 -93
--3778 -6093
--6673 -9025
--3681 5283
-5592 -3346
--664 3755
--7410 -9548
-7390 1838
-4399 -7595
--4230 31
-3325 8347
-9123 -9024
-4331 1782
--9476 -44
-7054 -1102
-9200 -1219
--4157 -8782
--8784 667
--190 -132
--530 -468
--4409 1617
-5709 -857
-4387 2347
-6705 21
--174 5827
--7231 2120
--6870 -1013
--1865 -2387
-1763 -4249
-357 -7721
-8006 -7938
-6716 9905
--3815 -4394
--1767 1236
-6465 -6639
-8977 5023
-3380 -1074
-6954 -2174
--7435 1224
-3420 -1073
--7884 -1367
-1165 5171
-9774 1753
--1107 4780
-8142 5311
-2890 186
--4539 1720
--7868 587
--4849 -3216
--1275 -6967
-3172 -9384
-1336 -6149
-5059 -1689
--7659 -837
--1332 -7689
--534 -4927
--1165 -3319
--6080 -9630
--1852 -1609
-2415 -6367
--8942 -3112
-8710 4066
-630 -8733
-4316 2976
--6092 3053
-6727 -2100
-9534 -2996
--1355 -1563
-560 1467
--9706 9858
--6498 4758
--2823 -2491
--1334 -7213
-6409 -5942
-2247 8357
--8754 8133
--2023 -4365
-1379 7152
--2247 -3749
--9456 2631
-9956 -4861
-3360 9988
-9248 7745
--6982 -4166
--3914 6172
--7385 9747
--7842 -5263
--4613 5366
--1012 -457
-8461 -3017
--5457 -3581
--3155 4592
-2517 364
--4754 3727
-3721 4831
--1034 -5372
--8745 -6130
--9024 1568
-8022 -6092
-8683 -2868
--1911 9216
--895 -5893
-5558 -1471
-2071 -3590
--3165 -5431
-3959 353
-7686 6751
--7880 4544
-9486 -948
--2565 -7581
--6400 -5012
-2540 7819
-6560 999
--5295 8381
-697 9596
--5505 -5180
-8715 -4998
--6679 -646
--2122 -7560
--678 -5953
--1521 -5654
-8548 -3454
-6135 -2460
-8176 -5944
--1318 -5777
--8319 -1833
--1001 5964
--2341 -3008
--6975 -1917
-9103 -6919
-2517 -9273
--4808 2456
-2732 7957
-4786 -8751
-7963 4168
-8487 -9887
-5528 1839
--5744 6322
-5823 5956
-4516 9942
--9024 3520
-9733 9721
-5586 460
--2361 4250
-5699 6488
--115 -8371
-4441 -8656
-2893 -5740
--8728 7645
-6921 -6291
--5280 -9787
-2125 2675
-4890 -2778
--1768 8340
-3941 4299
--9645 4978
-8192 8351
--174 -5696
--4243 3339
--3252 -4726
-5398 -7365
-6226 7389
--3028 720
--9792 3727
-2779 1990
-7939 -1234
-178 6223
--1186 -2421
--6652 6289
--7585 5544
--3556 4595
-1953 2944
--3064 -7855
--8932 -1018
--7483 -289
--1711 -8310
--4596 6933
--6 -1808
-5812 -6391
-722 4769
--8665 -4789
--2186 2709
--9053 9469
-7693 -6170
-3831 9892
-8892 -6351
--4738 3197
-4080 8266
-1420 3693
-4042 2121
-4666 5151
--9036 9692
--7172 7692
--4412 -8055
--1867 -2910
--1225 1821
--1373 -4395
-2087 -6865
--973 4343
--2477 5389
--1682 1940
--3981 3338
--6418 2713
--423 -2183
--5922 -3354
-6829 -1615
--4882 -3384
-5155 -593
--7595 -2693
-2099 -8371
--2003 2383
-6638 1636
-267 2169
--2561 -2123
--8562 -8181
--1851 8691
--2223 -3895
-1957 -511
-836 -2363
--215 -1422
--4263 -8945
-6251 -6777
-3211 -6112
--8434 -8118
-7334 2677
--4510 -2094
--4034 -2985
--9052 1421
--4460 -9911
--4038 4737
-4441 -6036
--9819 -4405
--4421 1709
--4819 -4576
-3619 -6246
--6595 3662
-4533 -957
-3884 -8541
-7887 -1930
--7900 -9773
-6571 8180
-3108 -1924
--6158 3283
--5414 -6927
--7549 -4696
-8263 82
--4700 -3690
--8892 -9910
-6569 -6480
-4747 5539
--2312 -5988
-7090 9644
--5332 -1775
-7906 6512
-7425 3817
--9183 8356
--5954 -6347
--4556 8774
--6347 -3591
-5207 -4644
--2031 -8305
--4058 -6693
-9280 8465
--9894 -58
-1000
-7554 -9867
-6471 1705
-945 -8180
-3579 -75
--1061 -1255
-8476 1952
--540 -5265
--7904 584
--7750 1122
--3851 -4890
-4511 8958
-3606 8896
-7626 3462
-6337 -7132
--5420 -8674
--7293 -1535
-6411 -5855
-5661 -151
--3849 7093
--460 7241
-5979 -8807
-3032 -5574
-9966 4778
-8399 -8142
-6951 -8908
--8980 4021
-3202 -532
--4382 -9827
--2927 -9035
-5106 -9752
-7074 -9346
--7888 -7370
--1432 7367
--3385 -1842
-5228 -4128
--8326 4464
-6620 -5738
-6224 -7701
-4991 -4183
--7686 2008
--3099 7976
-2029 2141
--9378 -2353
--5758 9748
--6260 -3154
--35 8825
--8572 -2867
--2348 -3688
-7927 9992
--7946 9099
--7420 6241
--9805 -4157
-3944 6290
--4697 6681
--9994 9712
--9890 8492
-6409 1616
--3610 3843
--9691 5011
--3034 -6611
-7460 -7817
--1271 6224
--9222 -8432
--8703 -401
--8083 -3036
-5027 -7839
-4295 9131
-8538 -6870
--955 5595
--9073 4001
--608 259
--9252 6386
--2217 -4739
--2800 -8271
-7206 -627
--780 6601
--4278 4951
-6114 2426
-7427 -2384
-1815 -8160
--8844 -2467
--5497 6883
-836 4179
--5396 766
-2016 -9518
-3478 -5562
-4567 2036
-2685 -2805
-6673 -3773
-7466 1868
--2817 -5250
--2626 -1408
--7120 -2961
-7363 -2355
-8964 -4181
--3960 -5105
-2364 6652
--5876 -2101
-6904 3184
--3573 -1263
--3013 -2278
-6785 4960
-8984 777
--8184 -2331
-5570 1033
-4795 2893
--279 -2034
-929 3961
--1696 -3106
--3575 9020
--5293 -9947
-3405 -6285
--3438 3438
-3533 4783
-5523 1919
-1256 496
--7901 -6940
--1760 4337
--7163 3829
--3465 -4648
-5687 1082
-6639 -9896
--8739 1923
-1063 -3648
-6876 1928
-6842 -2537
--3280 9932
-979 -3527
--1865 3696
--9967 1729
--2381 -3638
--6911 3429
-8850 -6898
-3417 -5328
--4913 7779
--1880 -3497
-4482 8517
--1576 8313
--3539 -745
--4881 -3588
--5915 -4653
--5724 -6736
--9352 -9698
--8767 7709
--3416 3694
-5155 5161
--8166 -4516
-6800 -3306
-7240 -7461
--3106 -702
-311 4186
--8460 -3419
-7869 680
--9665 -2045
-8364 5146
-1084 6040
--4408 -6997
-4474 6065
--1961 -7182
--7213 308
--6056 8633
-8173 -2439
-5003 1556
--1665 -5988
-8382 -3655
-8639 6995
-7749 -6610
-2498 2448
--9301 -5721
-7400 -1476
--7620 8504
-8931 -2737
--556 -2130
--9767 -8747
--7796 7844
--2426 1418
-5697 6122
--7495 8243
-8419 3084
-4918 -891
-5211 8836
-9166 -2147
--5284 5288
-4591 -7548
--5006 -1548
-4425 -2412
--4614 6709
--3203 -1900
--2584 8203
-8224 -9221
--6890 -90
--3924 9440
--1141 -5701
--4599 6416
--7685 -6502
-8067 1882
--8900 -7426
-5534 2011
-9938 -9763
-287 542
--1600 -5211
-2820 -4082
-8719 5677
--7632 1097
-1852 -8199
-4779 8495
--9017 7302
-4965 3061
--9264 -1252
-3830 1993
-3090 7866
-1877 -8282
--5246 -9570
-2790 1160
-2752 -5393
--7088 5898
-1767 -9028
--6436 -3547
-8213 -263
--2972 2893
-2142 -6013
--9484 -1102
-904 3619
--8021 76
-6197 5138
-4611 1725
-3752 -2096
--317 -9739
--129 4326
-8848 6454
-6735 7509
--3662 3463
--5501 2783
-8954 5500
-1269 4218
-2147 -6275
-1136 8421
--2602 6875
--4581 -6370
--4405 9740
-6547 15
-2122 -1863
-6139 1241
--2931 6846
-1862 3374
-325 471
-6512 6176
-9962 7594
--765 -4063
--4693 -8279
-1803 -8331
--3769 -6271
--3625 -3207
--1775 -4802
--1089 -2628
-5624 5508
--4443 6101
-1506 8014
-4862 -5416
-8430 -5236
--2677 -82
-6281 -3713
--7157 -5636
-3852 8345
-760 -8565
--7174 832
-1121 5432
--311 -9621
--6375 9767
--4732 2752
-7926 -9949
-5058 -3540
-3924 6633
--7309 -8552
--6996 8956
--8762 3043
-5427 9504
--5340 545
-8656 6379
-7712 7611
-1151 -5754
-4872 319
--9587 3362
--2678 1009
-386 3938
-9050 -851
--1549 -7294
--1952 9156
--7438 8280
-4387 -8963
--4296 -6962
-1379 8844
--7611 4157
--1827 2344
-4025 9609
-6999 9377
--3514 5990
--3541 889
--8376 -9031
-7912 -9267
--9304 8627
--9584 287
--4757 -4590
--5637 -5597
--6028 -8893
--1278 -1423
-4026 -1100
--6521 -7253
-1646 -3302
-9445 -4612
-8657 -432
--5460 1328
-428 -5042
--7844 -3100
-7910 -9199
-3653 9038
-8456 -6445
-1141 -6735
-664 1555
--277 9670
--1444 5256
--4574 217
--2147 9409
--981 -6577
-3424 -8295
--275 7675
-8044 2460
--8499 7415
--541 -4588
--7641 -6256
-1679 -3696
--2236 9925
-6479 -8178
-1411 -9791
--1982 4143
--8612 5306
--8557 5934
--9779 4442
-8853 -3161
-5934 -9376
--6343 -2097
--2892 6956
--7526 1545
-3487 -5441
--3114 -7786
--9651 4056
-7673 7810
--7912 1546
--328 -3524
-2877 -3438
--8969 -7557
--7435 -4537
-1459 -9119
--2540 2871
--821 -7196
--5144 -2705
-8759 -1890
--3382 4557
--7374 -4303
--9395 1553
--7427 1194
-6927 -6005
--7526 5659
--1517 -8142
--6549 361
--8463 2280
-6015 -7211
-5142 -5025
--1525 525
-3134 -3275
--2592 2156
--3492 9170
-8588 3260
-6402 -5772
--859 3953
-5468 -1253
--8807 -2977
--5472 2616
--6421 2733
-8092 4055
-9781 -9635
-9474 2535
--1948 -8933
-3101 -8957
--7294 4543
-7994 5614
-2868 -6530
-600 -6536
-4109 -492
--6014 -1952
--2739 5453
-2597 -4436
-7250 -702
-6747 -4778
-5195 3714
-6575 9763
-1496 -7226
--5173 578
-6268 9738
-7911 9432
--3749 4952
-8650 -9518
--2352 8821
--4966 2502
--4110 1263
-3020 1981
--7367 951
--2630 4014
--6879 -305
-929 9402
--8115 -168
-1369 6943
--5949 -1486
--9788 2686
-7726 -1320
-4903 2778
-3326 -5316
-9761 4585
--486 2263
-378 2369
--1957 -8171
--2917 2715
-7908 -1031
-5816 -9608
-2779 -3190
--2435 9499
--8145 -3746
-1949 -2754
--2311 -5752
-6329 -833
-3914 1968
-1202 5398
--6877 -4773
-7990 -547
-4869 -164
--9673 1170
-2806 -2476
-8871 9443
-3266 -944
-6439 -8056
-3040 6917
--8683 -7242
--9318 -8888
--8770 -9538
--6137 -901
--6379 -301
-3820 -1222
-8600 5336
--7766 -1400
-4922 -8045
-1891 6124
--8925 5096
-1519 998
--6771 8889
--3025 650
-5659 4391
-4780 5921
--3751 2407
--9794 8266
-4950 -3658
--6417 -5496
-6339 -6522
--5107 -1298
--562 -9567
--5881 1320
-5914 -4925
-9731 -5223
--3795 3988
-5391 9724
-2278 6386
--9808 -7868
-9203 -1256
--7710 8396
-6441 8256
--5422 9738
-6154 -8480
-7535 5946
--462 9154
--8837 -4186
-3682 9197
--7244 9827
--9326 5131
--8650 8495
-6074 -6917
-9645 -7415
-9362 -4679
--2947 -7811
-2818 -8885
--5570 1008
-3246 1744
--6233 605
--4016 3816
--9186 1205
-2791 -424
-308 -5514
-3549 9213
-8230 -5399
--5531 -9579
--8883 -8034
--7519 4594
-8676 8233
--8183 9286
-8064 6254
-6367 9441
-7367 -5069
-367 7601
-8145 10
-2386 2070
--5712 4332
-601 -2131
-1907 5674
-271 7842
--5921 -1757
--1870 9275
-123 -7894
-9629 -420
-2308 -9616
--6814 -7581
--7785 1847
-2391 -2442
--9831 -9555
-6373 -8824
-2988 1749
-1775 571
--7600 -56
--5286 -382
--9765 9958
-8166 -9343
-8339 -5490
-4129 7807
--9966 109
--5983 -9617
--5437 -7128
--7281 -3312
-3291 6988
-4530 -7824
-8277 -5212
-3763 1276
--5126 -874
-4683 -1028
--4157 -3896
-4835 -817
-8339 -6958
--5455 8698
--2766 -9774
--2932 9698
-8033 -4420
--7038 -1708
--2133 -2884
-3640 2664
--9928 2337
-2172 -8714
-9398 -9143
--2660 975
-1707 -6240
-5305 -1280
-5612 -9864
-351 5845
--6262 2598
--8564 -3565
--7571 9462
-1990 5937
--2761 -8283
--5170 -79
--8356 3908
-4570 3227
-5455 8949
--5544 7979
-6363 -3030
--4709 -4784
--4737 -370
-8812 -3453
--3496 536
-7156 3836
-6246 -8216
-1790 -2408
--2445 4567
--9735 8377
-5469 2824
-5411 9176
--675 -3051
-7526 -1261
--4982 2978
--4671 5853
-773 3080
--8514 5394
--10 -3811
--398 6737
--5402 3841
--7324 -8620
--1097 9864
-88 13
-480 -6535
--2737 -6522
--93 -6062
-1143 -9156
--4581 -3470
--9608 -1289
-4784 -4549
--2475 -7787
-5611 1182
-7891 -8709
-2926 8365
-5256 6927
--5961 5346
-1407 7491
--8109 2626
-2642 6365
--1922 -5411
-5026 8978
-461 2111
--9071 -4264
--987 6541
--7409 5871
-6104 -5769
--9912 -9048
--3910 4045
--9213 -2856
--793 -6967
-3022 4128
--5110 -8641
-6168 -3881
-1381 -7227
-8218 53
-1188 7564
--9421 -3872
--9484 -5477
-4117 93
--5116 3636
--9579 2252
-9065 -7195
--6485 -8263
-6354 -8191
--5083 -1807
-5574 4734
-2121 -9974
-79 8960
-7492 -4525
--2211 4159
-6179 1838
--9199 -7567
-6526 -2394
--3368 -6247
-638 912
-3743 8014
-9241 -9824
--6578 5523
-3394 4524
--6665 4420
--604 -8547
-7704 617
-2169 4386
--2331 9610
--634 1912
--3220 47
-4424 -2204
--95 -4562
-1636 5696
-1823 -3376
--3832 -1089
-6404 -2158
-4092 3761
-4860 2283
--187 -3157
--4068 5025
--5983 -4353
-9500 -5201
--2326 -6252
--5842 8284
--9031 4078
-8400 -6510
--9376 -5340
--6836 8262
--448 -1698
-299 5621
--795 4881
-714 -4203
--6541 8361
-7774 6841
--7415 -466
-4768 4238
--6821 3224
-6247 -7025
-357 -2492
-3993 -3653
--5611 -4110
--4247 -8334
-4583 -9305
-2366 2256
-8356 -2782
-1869 -5089
--62 1590
-7800 -3880
--4532 -8256
--5914 4772
--4510 5010
-7954 -3437
--1955 -2593
-4579 -5368
-8275 -4786
--5287 8846
-8538 4964
--2477 1124
--6089 4767
--2241 3253
-6365 9130
-4064 7053
-6423 -7011
-6852 -8315
-3186 -4675
-7800 2368
--5746 -5689
--9619 -6578
-8387 115
--5986 -7879
--9181 7445
--3622 9124
-5350 -198
--255 4771
-2169 5421
-9502 -8879
-6211 9372
-2908 546
--5018 9775
--1255 8493
--9257 -2069
-7419 -1485
--1993 -3367
-4641 -2913
--5321 -3828
--5877 -5581
--3332 4655
--6100 -3569
--9000 5677
-6040 5223
--9510 -7566
-9539 3401
--9866 1972
--1038 737
--5970 2619
-1086 6627
--8863 -902
--2089 9526
--1504 -8064
-2937 990
--9798 9788
-4134 2780
--1868 -6525
-4311 -5691
-8282 2821
--5435 -873
-6777 7421
--3690 -3908
--7222 -8740
-7155 7943
-9629 4621
-9640 -2427
-2069 8451
-1480 6702
-3923 -8897
-83 -994
--2395 3410
-3308 -6312
--3096 7710
-8945 9613
-8179 1856
--9945 8696
-7943 8552
-5311 -4811
-6646 9586
-2207 -2834
-19 -9112
--9627 -2199
--6439 -9390
--1252 3526
--2641 -5021
--5960 -191
--539 3189
-7546 4294
-1006 -6309
-2684 -9279
--8093 -1360
--4878 -4049
-1814 -3547
--1282 9137
--37 5991
-5613 1756
--3714 4950
--5476 -5991
--901 6044
-6707 1544
-9068 -2777
-4624 3456
--2709 -8839
-1537 -6731
--2497 7001
-9906 -6368
--9232 -5606
--2084 -569
-7307 -8459
--6283 9494
-2173 -8016
--5878 9869
-1949 -1004
-2864 -3990
-3539 -9262
--3992 2382
--2206 2059
--4558 -2800
-3235 4227
-6814 -9602
-5463 8756
--7524 5912
--7840 -3275
-365 3803
--4905 -9537
--2722 652
--9311 832
-2551 4492
-1186 -6763
--6814 8675
--3952 6809
-6396 -8940
-1854 -2023
-6881 -451
--1591 8201
--2168 -2247
-6496 3731
--6638 2915
-4291 4714
-7729 -5269
-6667 3592
-1423 8540
--3655 -3678
--1147 6447
--6361 2888
-6517 3603
--8010 4266
-3683 9578
--2622 -8632
-374 -3539
-3079 -6604
-3703 1379
--4712 -8950
--9585 4440
-8317 -2113
--1994 2677
--8208 9704
-4994 1630
--5043 -4406
-8930 3530
-1742 -3621
--6630 862
--7550 912
--7123 -5551
--9986 7414
-8311 6434
--6164 -2577
-4980 1428
--7951 -7509
-255 703
-3548 1273
--5574 -3656
--1427 8781
-8064 -2706
-6126 408
--7490 9865
-526 -1745
--6275 -6123
--9060 9389
-902 -7230
-9089 1601
-442 2070
-3583 6117
--7924 427
--8185 601
--4645 6487
--2966 7
-4983 -9606
--7278 9595
--7288 -7154
-5874 3149
-7815 -8204
--105 5690
-8433 1514
-4273 6050
--7138 4015
--858 -4346
--9499 -9651
-7715 5226
-7442 2351
-6321 -4922
--3890 -9541
--9178 4036
-5112 -6718
-6420 -3297
-7572 -4023
--6884 -7085
--4954 27
--177 7230
--2740 -2516
-7378 8737
--6623 -9330
--8103 -1900
--7652 4668
-8031 2199
--8588 9828
-9651 -7410
--9385 -499
-6560 92
--654 7529
-2874 3279
--9349 269
-6818 -3410
--7909 -971
-2362 -5203
--707 7415
-3791 5045
--6079 -5586
--6443 8495
--2619 -5942
-4308 -1167
--1024 2384
--1264 2925
--1430 4856
-5613 -9828
-6258 6156
-9966 -7864
--941 -4956
-4189 -7863
--399 -5888
-6048 6713
--932 -762
--1005 -8340
-8367 -1844
-4559 -8902
-9637 -8297
-921 1905
--9084 -1586
-8247 3542
-1380 -7586
-1855 -5600
--4198 4678
--1724 -2149
-7746 6196
-8050 -2076
-8762 9210
-8322 2421
--4174 5726
--906 -2032
--3935 339
--6468 7871
--4860 -8728
--3277 2378
-6651 -553
-6604 -5060
--116 -2944
--7209 -6447
-2881 7607
--6569 511
--2110 -805
-3601 5902
-2044 -4050
-2866 3071
--2313 3928
--3890 1497
--5776 -5807
-5504 9008
--3120 -2607
--2831 -6431
-1576 3806
--1935 -6568
-7098 -6102
--3459 6159
-5470 -489
--9649 -2713
--1437 8523
--4231 -2884
-9432 -4142
-3118 9370
-4497 -8601
--6260 4838
-9401 -2900
--2147 6928
--6925 -322
-4647 -641
-6153 -4449
-2160 -3356
-2617 -8944
--2063 -1840
-4427 -4809
-8981 8653
-3619 -1855
--8371 5574
-491 3476
--7512 3150
-7630 2326
-1397 -4236
--484 -4498
-3340 -7082
-1000
-386 -5221
-837 -8686
--2202 9656
--4767 3132
--8823 -1720
--5773 1860
--3716 -7107
--4289 6318
--1101 3303
--5001 -8801
--1451 -8085
--2824 6582
-8454 -3621
--1769 2740
--3919 6135
-8559 1610
-4864 -5804
--2884 -5399
-9660 1068
--7574 -1137
--7744 -1901
-474 288
-3787 -9297
-9942 -8113
--7802 -3500
-2692 2667
--2631 -2714
-2258 2956
-116 -8965
--6032 137
--5140 -7842
-7529 3678
--6317 5754
-1990 -4242
-1031 -477
-9061 -1387
--5088 6416
--2012 7617
-9020 450
-3315 6467
--979 -8739
--4057 -1787
--3780 -4626
-4668 -8431
--1083 3028
-8723 9697
-6648 2998
--2124 -9857
--1540 -2540
--267 6052
-9025 786
-7955 -2498
--2699 -6866
--3825 -36
-6460 7521
--9278 1109
--3033 27
-2935 -519
--366 1098
--4813 -8291
--806 -5143
--3861 -9089
--7111 4528
--2779 -4848
--3856 7818
--272 -9515
--1389 1612
-3364 -5552
-8400 -5695
-5451 8525
--8931 303
-7687 9726
-2321 4603
-4095 9472
--2012 -9822
--3669 -7833
-7251 -4545
--875 -8382
-927 -8017
-1810 7226
-7498 -5675
--6287 -2665
-2446 -1197
-827 -5628
-1992 2195
--1831 8202
--4640 -7846
--6260 -8323
-9606 44
-5926 -5556
-899 1699
-6941 -4570
--5175 -3044
-2866 -4037
-5126 -1697
-1022 523
--3594 -411
--8595 -9083
-8508 6296
--5994 4620
-883 4204
--5954 -7437
-4535 9248
-415 -6474
--5779 8654
-2010 8136
--4106 6792
--7849 7377
-1414 9462
--2558 -3025
-755 6053
--8301 -432
-7020 -4003
--7561 -2131
-8687 7573
--373 1981
-6838 -8844
-3707 -4712
-2787 2950
-6679 -9811
--6382 -4344
--2197 -9182
-521 -2791
-4322 -7698
--2229 -4915
--9683 -6609
-7555 7264
--5883 -9459
-6842 -2983
-757 9021
--5726 8450
--1971 -8530
--1105 2483
-2397 2164
--5161 -416
--7777 -5116
--1353 5280
--4404 7568
--4288 8237
-6082 1211
--2724 7824
-3363 510
--5899 6277
--6707 -8267
-307 2965
--4766 -7190
-8004 -8930
-1959 1026
--617 9796
-8759 -2490
-4236 -6117
-9958 5582
--139 -1657
-6746 -8085
--5591 -3413
-7193 1808
-8687 -3306
--6026 2710
-3389 -5355
-1773 973
-7006 8396
--7290 3566
-4701 7392
-2374 7426
-218 -2128
--4329 6907
-8790 -2516
-734 9888
--8470 -2430
--1788 -4279
--5304 8233
--5614 200
-3175 3806
-7064 -6848
--4641 -4790
-4941 4556
--2568 -2493
--6234 -263
--5502 708
--9010 4202
--996 9892
-8130 5683
-2661 -3628
--1139 -2741
-978 -5224
-5451 5718
--5432 -116
--6684 -3418
-6606 -1703
--210 2605
-8465 5341
-7624 9438
-700 -5675
-9241 -4277
-7891 -9398
--4042 5999
--875 -4013
--7928 719
-3184 4317
--3688 -9648
-2850 537
-8728 -5989
-2152 8636
-1852 -7549
-406 7587
-8464 6057
--8348 1002
--4587 -9173
-1188 5494
--8744 732
-3982 -5075
--6644 -6156
--1942 5077
--4803 9341
--1169 9099
--268 7775
-703 5197
--7158 2829
--1071 4585
-4512 1092
--4319 -4276
-8405 4737
--895 348
--8840 6568
--9642 2966
--3254 2639
--9134 -7393
--1081 -8472
-7182 -5723
--9216 536
--8233 474
--4133 -1764
-3604 4385
--6507 -7670
-4430 -427
-8534 -1415
-5787 746
-2711 6974
--5300 1301
-74 -5739
--8972 -866
-1862 -3699
-8443 -4267
-8699 1808
--2400 -7109
--1273 1507
--122 -7512
--9628 393
-5270 -3787
-1545 7450
-4558 -138
-1341 -3665
-1273 -9057
-1130 -5369
-2251 -3114
--4377 3225
--3137 1680
--9300 3067
--8972 -7398
-8975 -2862
--4031 -4718
--6179 -4242
-4939 -7336
-8674 3200
--9214 1220
-7095 -9737
--289 -5714
--3003 3117
--7397 1288
--7064 8098
--2263 4176
--5796 -9963
-4472 8797
--8853 -5819
-6183 3892
-974 -8490
-6420 1294
-7577 -7397
--9264 1728
-4389 3454
--1048 -9336
-4985 2847
--4199 561
-6847 -4458
-7692 -6832
--1907 6684
-6257 -1674
--5448 7552
-4980 4368
--6787 -3377
--447 2650
--7659 6638
--242 -2131
--1501 9166
--1917 -3667
--3614 -1054
-3019 -4775
--7534 -2708
--2945 872
-4050 5105
-461 6384
-6793 -7056
-4198 1094
-8149 -3583
--8318 -1463
-1376 -9022
--6809 -9968
--545 -5581
--7718 5338
-3335 1536
--2122 1431
--5902 -9903
-4148 7517
-531 -3024
-418 -2914
-2912 -6882
-743 -3115
--9312 1154
-8597 8808
-8688 -5706
--2816 -7937
-8148 3031
-4994 3013
--2695 -5278
--3870 -3483
--6154 5811
--3173 -5264
--4268 7426
-1809 -9902
-7598 -4232
-4928 -324
--2859 -772
--151 1875
-1590 -1984
-1266 -2751
-2962 -6533
--1285 -1091
-1707 8670
--3166 -9003
-8435 2341
--3489 -8425
--5887 -9275
-4684 -3953
-2166 2129
--3713 -8401
-5032 -4049
--5528 6535
-8714 7396
-6210 6399
--3647 -1972
--7566 2355
--750 8293
--8559 5000
-5485 6151
-353 9310
-9870 2911
-4819 7840
-8226 -1938
-3504 9477
--4282 -3915
-39 -6609
--1266 -7496
-1160 -4122
-6012 7967
-1640 -5255
-9259 3187
-2933 -587
--7774 9243
--3000 -2485
--2641 6675
-4946 -6718
-9705 -3117
-9142 8787
-5179 3307
--9708 -4173
-9640 -7828
-9579 -7380
-8094 5268
-2490 8394
-4547 3034
-3627 -7423
--6269 7298
--2783 3674
-4618 -7095
-3289 9415
--6404 -426
--677 -6398
--7475 -2175
--3869 9187
--7382 1953
-8616 -9163
--9510 -6592
-5384 6251
-4933 -6463
--5969 9542
-7909 -9844
-7366 4369
--696 952
--8772 -4502
--2664 6864
--3969 2168
--7442 7531
-8013 -8492
--253 7461
-2999 -7405
--1299 1678
--4132 4150
-1073 -4240
--4009 7404
--2606 1896
-7530 -619
-1231 -4861
--8072 6739
-8254 -6862
--1786 -8636
--4741 -6241
-4154 4442
--3267 6338
-1920 -4046
-6882 8379
-4042 8076
-6310 -8512
--4577 7926
--6522 -3567
--2727 -1317
--6873 -4493
--1724 -2555
-4820 2590
-965 -3745
--9786 7216
--2072 2505
-1881 2342
--1311 -5779
--9018 -8538
-1229 -7351
--6912 -8601
-8699 3691
--3233 8607
--3994 1260
--8173 7475
--6085 -7766
-7693 4227
--4279 2008
--882 -1101
--1857 7247
--6782 8747
-3508 -2616
--8064 -4056
--9711 5987
--8648 -6573
-1394 8114
--5040 -5063
-850 5349
-6096 6754
-333 -3914
-172 7915
--3629 4169
-2947 1965
--6050 -6935
--2866 -5361
--395 -5683
-961 4081
--2412 1801
--3720 3780
--4256 -1227
--706 4303
--226 2154
--3168 -9480
--6775 6277
--7893 4423
-6693 -3126
-3130 566
--4428 -3613
-5282 9139
-4124 -8239
-3312 -3606
-7028 8201
-6991 4359
-1615 3803
-4197 -2952
-5850 7397
--535 -4919
--5830 8783
-7848 -6255
--7939 -7887
--600 1096
-5454 4982
--790 -3881
--4049 5336
-7017 -5161
--6676 6845
--6760 5939
-7236 -8273
--9202 9406
--8601 -6856
-8753 8806
--6891 -9570
-1660 -9870
--711 -9064
--1937 4467
--138 8235
--2250 -1549
--1194 -1529
-9680 -8827
--4762 5673
-704 9095
--2515 9766
-1133 4378
-946 895
-2243 -6954
-8724 -3400
-3410 9318
-9173 -4187
--332 8648
--8355 -9715
--2284 -3876
--8753 -1463
--7917 -5188
--2755 7988
-7768 -1371
-9510 3055
-4579 5527
--1431 2039
-416 9953
--4195 -2503
--3429 -1021
--7522 -307
-3525 -2959
--457 9499
--8575 1646
--8546 4904
--2378 -4995
--2351 4425
-3279 -1231
-7257 -4975
-6517 -2000
--45 8299
-4588 5440
--7690 -8334
--1932 -4138
-6372 1296
--6463 -1314
-5564 -411
-4652 3785
--3276 -5453
--2380 3131
-5694 7845
-4781 -2928
--5343 1161
--8493 -1064
-2657 2730
-5328 1441
--808 2064
--7236 -8487
--1490 6753
--4816 4314
-1708 -6634
-874 -1457
-4420 -3550
--8730 -1797
--709 -9452
--7145 -4451
-4100 1043
-3812 -9499
-8045 -312
--207 2854
-4533 -4861
-3159 1258
--2990 1034
-5944 -9376
--8262 943
-2614 -2077
-5848 2880
--1451 3892
-6856 2754
-5748 -5689
-2883 1441
--2347 -8789
-4072 5850
-848 -9125
-3406 5160
-2080 9927
-5294 -4306
-3524 -8953
-9672 5293
--3572 -2928
-5801 -9155
-8626 -2704
-2034 2981
-8242 -4459
--1931 -9078
-3049 -6154
-3012 -8353
--9575 -8559
-1875 6146
--5412 8854
-8622 -8798
--9189 2562
--3589 6022
--9519 3562
--8221 -345
--4068 -3362
--6868 -9987
--5575 2111
-711 5102
-1866 1137
--2289 1921
-3797 4433
-3547 -7411
--1042 -788
-4298 8471
-8720 8827
--40 8967
--8792 650
--7929 6201
-4597 -5222
--6143 -3756
--7632 -3818
--7446 -7973
-7339 8592
--1621 -6100
-8572 5692
-4866 8668
--9259 479
-3779 -8903
-3859 -3418
-806 924
--9535 -3423
--4590 -8760
--9934 -462
--8097 4721
-5763 9553
-4642 -2142
--534 3938
-9440 -3420
-8636 -6101
-4296 6465
--8577 -8602
--7270 -6561
-2607 -6457
--5719 5945
-6186 -8691
--1817 -8755
-2068 -6132
--4802 -7367
--6044 3780
-8714 -5269
-2177 -7532
-7793 -7362
-3846 5891
--12 9934
-9563 3727
-2876 5598
-4553 -856
--1877 9835
--7547 1831
--9744 -6841
-6781 -2971
-5398 -6665
--4711 -1325
--1793 -4105
-9149 -5702
-3249 8336
-3984 -6237
--160 -6142
-4721 7984
-602 4739
-131 6830
--716 -4147
--4937 3455
--7761 3184
--2684 -6320
-6405 2960
--1693 -6481
-3358 3261
--1672 -1363
--3267 5880
-2708 850
--6078 -890
--1304 -4404
-9492 -7606
-5796 -760
--63 4091
--5536 1647
--1390 -778
--2230 2322
--4659 -9096
-8999 8666
--7896 -9732
--118 1669
--6283 7917
-97 9332
-2698 -2827
-6548 4729
--353 3589
--9169 3609
-706 -5127
--6302 -7384
--9962 3449
--6222 -3981
-2099 -4453
-8315 4497
--3447 9410
--8426 -4933
--778 1910
--8948 -9611
-5176 4859
--2950 4184
-5971 -7278
-8515 7930
--6260 8725
--1966 -8526
--2714 -1870
-3340 6032
--4305 -6921
--4170 8567
-6789 6629
-9880 -5968
--2634 -9678
-5247 -7740
--2805 -2570
--3328 2808
--6483 1576
--4007 1907
--1034 -4410
-6890 -7670
--2336 -5600
-5571 -3331
-5295 -8075
--4835 -9013
-6451 -8189
--8737 2817
--9172 -3924
-2438 7651
--90 1593
--6549 -2373
--4468 1091
--1979 -3041
-6045 9501
-589 -2226
-842 -7806
--677 -8282
-857 -9128
--1576 -6448
--5187 -2353
-4107 6660
--7898 7335
--2872 6133
--1233 2241
-2084 5530
--2943 -8907
--2241 8554
-4758 -4197
--1633 5020
-5283 -878
-103 536
--1605 -7494
-9978 -3119
-7268 -7199
-9859 1537
-2200 -5604
--2290 6507
-8805 2012
-376 -1440
--3420 -7270
-7405 2735
-8755 -9779
--3540 -3330
--5736 6996
-4526 -6412
-9396 -9885
-8987 -6075
--713 -2082
--8770 381
--1266 -4917
-3881 8882
-8169 4153
--374 9651
-8740 6747
--7480 -1030
--578 -5591
-5256 -3193
-8439 -7702
--3098 2453
-4067 145
--7965 7554
-5776 7679
-2762 -9614
--7549 9073
-4859 4596
-2688 1064
--6731 5254
-2805 6323
-6175 7004
-4392 6974
-1210 -5509
-5408 -8287
--3492 -4088
-3912 -6817
--4525 -6813
--5838 980
-4334 9753
-764 -835
--7047 7413
--6697 -6029
--8937 1546
--5501 -809
-4837 4951
--8441 8544
-9029 3365
-3355 -7713
--5890 -1074
-6671 1839
--279 -2556
--9731 -9101
-775 -4410
-4060 -7984
-6899 4721
--4447 -1738
-8889 2996
--4319 -7539
-1064 6591
-4232 -7838
--2531 -7354
-6012 -2171
-6731 -1543
-6941 9496
-5670 -6193
--3635 9149
-6763 -3843
-2453 -2434
--591 -902
--9990 -9593
-2479 9370
--7950 372
--7433 -1929
--8260 9896
--9005 -7357
-409 5549
--7481 -905
-9697 -185
--8974 3041
-11 9489
--5551 -1853
--5874 7236
-5883 8062
-2545 6544
--8946 -7365
--4036 8894
-928 -3280
-8801 -2671
--1810 4998
-8461 -4643
-1850 -9983
--1342 4816
--7133 5692
-1821 9938
-9988 -3241
--7309 -7598
--5902 1075
-756 -7938
-6583 6571
--5143 -3540
--930 -4119
--1054 5821
--1477 3950
-8556 -7621
-2542 -5959
--6837 1295
-5708 -6091
-5340 6857
-405 4709
-5347 -532
--903 5764
-5134 1355
--8379 2477
--9121 5028
-6342 -7170
-7048 -4294
--4 -9874
--4717 4444
--6064 -373
--6429 5713
-155 2570
-6998 7941
-4551 2455
-4477 1855
-7952 -9622
--8413 6762
-11 -1479
--4129 -827
--6798 3870
--4797 -820
-7235 1212
--2913 -787
--5243 4225
-8957 222
--9494 -13
-5254 4110
-4598 2710
--9048 -825
--2627 7627
--191 3735
-3370 -1474
-9432 2215
-1078 7533
--9535 -2706
--7635 9646
-2764 -713
-4749 972
-6454 9905
-9573 5561
-6385 -6177
--8285 7969
-3949 -3593
--3046 2202
-2641 -9300
-5171 2941
--5509 4107
--795 1879
-2659 1925
-6193 -8507
-2399 -8465
--6674 -6101
--6817 975
-1540 6250
--253 6796
--1076 3954
--3360 3090
-385 1829
-7096 -9955
--7542 -6169
--8286 -1815
-590 -864
-2333 -9907
--3383 9735
--3720 8101
-6832 800
-7935 -4692
--720 -5117
-7853 -3525
--1142 -3717
--6582 -5774
-5340 310
-7029 1642
--4213 -3118
--649 -4724
--2960 6476
-3585 2814
--555 -9396
-7503 6520
-5290 3918
--1530 -1587
--7857 -3670
-4987 -5850
--2150 4847
--1925 8756
--7692 210
-2632 -2045
--5299 1772
-4852 3454
-4702 7756
--9266 4972
--6916 -5657
--5511 -5720
--7413 -4024
--8866 -2408
--4064 7345
--2069 -867
--1828 1866
--137 -1487
-4133 8323
--5483 -4814
-4256 -2982
--5477 7265
--6654 -5686
-4540 7076
--8500 6299
--2936 -1941
-5340 719
--2303 -8595
--8420 9160
--5484 -2044
--8516 9344
-5596 9408
-8995 -5310
--4553 -8660
-5261 7029
-2314 -4215
--1540 7195
--7961 -8532
--6386 -9467
-51 -1918
--5404 9505
-3976 -4476
--5553 -2467
--2344 5102
--7068 -7056
--7718 -2984
--2849 5647
-1000
-2321 -2798
--5065 9581
--3089 4386
--1886 1989
-8299 8811
-7864 -6072
-5507 -1564
--368 -4495
-8679 -8318
--7978 3508
-7404 -916
-7538 -9147
-7978 -7540
-9585 -6107
--9226 -238
--35 9435
--8311 -1387
-3687 4049
-5237 -7833
--5982 -4730
--6229 2622
-741 -5771
-8545 -1654
-875 -9146
--2343 -7161
--4863 2741
-6113 -7310
-1740 -4287
-6410 5972
--1327 6673
-8398 -6743
--2293 -5985
--9035 4873
--6880 -4091
--6840 356
-1668 8451
-3530 -5646
--7513 659
-5424 -8373
-3928 -592
--6616 -4521
-1458 -1018
--8836 2799
--3048 -3648
--5765 909
--9219 -7664
--8825 -3011
--6048 1999
--7178 -9851
--5468 6196
-7739 7896
--8002 -5400
-267 7942
-5417 4341
-7941 4706
--1932 263
-4135 6289
--4114 -7856
-8393 1521
--7198 8307
-3077 -4898
--2011 5885
-9134 -6066
-9412 -7885
-62 -9534
--3653 5868
--5229 -7923
-1572 -880
-4520 -4270
--9297 -5006
--8805 -7701
--160 -2676
--1854 -4416
--7083 7066
-9285 -2132
-9103 9571
-7362 5206
--7502 -4250
-3079 2275
--9277 -3328
-2863 127
--1050 2220
-1762 3051
-8871 5030
--728 -484
-4462 9947
-7896 8540
-2075 -5941
--4948 5834
-2554 606
-6200 2193
-3404 2654
--4497 -9385
--4411 -8088
--8554 -5241
--7039 4359
--3115 -992
--8612 -9268
-937 7874
--3195 4486
--1860 -7015
-4344 6258
-1902 4535
--1304 505
-8883 9910
-8121 -7874
--7789 -4678
-1213 5225
-1557 3200
-6601 -6774
--9096 -6741
--5054 8709
--8515 -2573
--1984 6895
--4452 -867
--7560 -7903
--6899 8816
-4127 6589
--6589 -236
-4204 4562
-3707 9050
-920 -3077
--6908 4148
-7517 7696
-564 -5844
-5244 -2098
--3332 9793
-1069 -8621
--227 7952
--2144 502
-7949 2206
-7928 8738
-1420 -7196
-7190 -2534
-4644 8797
--1256 -4323
-9581 8499
--5459 -6639
--942 8326
-5372 -8132
--8167 -2922
--8402 3838
-8978 -453
--6091 1873
--2085 781
--5714 9724
-4781 -3528
-9555 3051
--2288 -3183
-8091 -1858
-4148 -5604
-2006 7304
-2722 5735
-1010 -5456
-3012 -5634
--6095 -7718
--4232 -22
-3253 -3082
--2086 -1986
--3733 -7783
-5647 -2305
-5954 -2929
-9543 9864
--4702 1954
--4389 36
-4861 -4781
--5436 -4511
-549 -9918
--2138 -9790
--9851 -3807
--8151 -3877
-5261 -558
-7892 -4539
-8783 9360
--3771 6267
-2928 6141
-1020 533
-4748 2583
--1675 5581
-6107 6605
-2975 -7991
-5636 -7607
--5756 -2688
-2843 944
-3158 -9301
--5024 8239
--9221 -2247
-4510 -9317
--3561 -7877
--2635 -6811
--3241 -6141
-3404 -964
--1616 -6502
--6601 -3608
-9084 5452
-1529 -946
--1682 557
--9876 6191
--5397 3003
--9675 895
--8672 2981
--8723 -6696
--9380 4780
-5014 -5998
-292 7293
-4904 -3716
-6482 -3740
--3407 -8922
--889 -5319
--9369 -9793
--62 -2332
--3981 -9806
-9423 7804
-8048 -9829
--6439 -38
--5446 2863
--5609 4514
-1543 -54
-6749 -5767
--9982 1656
--16 261
-8503 6278
-2800 -8539
--1000 -3604
-1229 -1341
--5224 6655
--4323 -9012
--1105 8846
-4266 7754
--3743 1859
-8044 -8545
--8386 -7313
-538 1001
-6393 -4443
-9169 -2081
-5590 -3659
--2416 4433
-992 330
--9033 -4582
--6220 1058
-3329 -6042
--9961 5541
-7105 -4951
-4398 3302
--3907 1842
-2841 -4654
-2882 1068
--8427 2578
--2300 -1589
-1261 3809
--473 6390
--3853 2731
-25 8740
-314 -7253
-3251 7161
--722 -1551
--4587 -5843
--201 5330
--6160 9536
--8751 8479
-3370 -9465
-9250 6673
--1201 -8217
--6866 9290
-333 -8493
-91 7109
-8081 -2097
--8359 -9158
-7222 -487
--6670 8902
-3697 5958
--5473 -6121
-7233 9774
--9285 2603
--5084 6330
--2878 3763
-6616 7727
-9366 -6944
--8005 -9604
--1349 -5219
--1853 -6263
-2196 -7724
--8863 -8782
-4615 -1672
--730 6208
--815 -747
--6746 553
-6444 -7648
-135 9869
-3711 -8941
-4956 -6002
-3301 2185
-5644 5809
-3684 -1852
--8072 -314
--1514 -1970
--9002 7594
-562 4227
--120 -2420
-676 -42
-3988 7954
--5257 9753
-8135 -9040
-3509 -9179
-9061 3521
-9413 6466
--40 9085
--2777 2811
-3293 -9657
-5533 4038
--6314 -8421
--9311 9672
--4818 6441
--7699 725
--2648 4182
-8858 -7023
-8335 -7553
--3830 -6002
-4767 -5874
--7921 -2175
-5989 -393
-4360 -82
-8168 -5657
--6214 -7565
--1487 -6431
-444 -7392
--2723 -7815
-9807 7420
--4608 9881
--485 -9447
--6645 6523
--1731 -3365
--1745 973
--9259 -2829
-5760 5381
-3403 -5308
--9476 9315
-604 -1725
--4664 -6552
-2956 -7827
-8548 -4427
--3981 -36
-4416 5789
-3672 -4682
-5052 2115
-1253 9874
--5866 -2430
-5752 -7659
-6346 -4231
--9148 756
--41 2320
-2946 -4950
--5885 -5851
--1130 4341
-7061 -4305
-7650 1352
--2124 3237
--7098 5642
--394 -1599
-9467 8694
--1338 8641
-8730 8643
-8421 5378
--4092 5839
-8122 -1616
--7598 5896
--60 4132
--2552 975
--1241 9256
-7579 -1333
--1763 8427
--9655 -4909
-9959 -3946
-4413 739
--8551 4954
-3125 9083
--8569 6082
-9600 -3838
-3126 -6480
--6760 674
-8320 -565
--6439 -9268
--8453 945
-4677 2132
-4112 -7006
-6475 -4205
--1517 -8566
-8289 -9079
--9054 -1146
--3859 -4990
--7118 -9275
--7526 -8024
-8180 8125
-3075 8986
--3452 9494
--20 9597
--8618 3468
--6439 -7804
--24 4804
-2270 -6234
--634 -398
--9546 2056
--3432 -6174
--2610 8876
-4827 3051
--9587 8829
-2550 1401
--2589 -7239
-5099 4622
-2722 -1479
--2424 5127
-2217 6757
-2596 5445
--9969 -7989
--6883 -2013
-7390 6332
-4478 -8456
-2351 9622
--5185 -6267
--9370 6543
--6439 -6705
--3245 -5382
--7695 -4217
-8624 -8225
--5707 -9112
--9915 -3608
-4887 8937
--7789 7462
-8207 7260
--5099 6148
--7538 -2587
--9666 -3041
-3660 3520
-3729 -8336
-2 8461
-5484 -4146
--5959 2352
-414 -4782
-2733 -8092
--8124 5735
--3065 7718
-2326 -2058
-1000 663
-4680 6526
--5537 -9331
-8432 -4092
--6502 7702
-5901 -9116
--4295 -5193
--6381 -1078
--1147 1455
-9319 -7966
-1733 5157
-5522 4868
--6381 -7480
--8365 -1674
--259 5910
--5361 -5726
--7162 -8034
--278 -5425
--30 1708
-2378 -5014
--2002 -4184
--6380 6873
--2907 -6474
-8097 3320
--4244 7735
--5504 6270
-253 -1411
-3596 1647
--4018 -515
-4432 4900
--6248 3676
-1583 -7678
--7598 9281
--554 -1380
--6249 5208
-3945 5969
--3561 6026
--8370 -1557
--9594 -594
-7523 -339
--3189 1746
--6913 -7377
-4581 6043
--4917 718
--1772 9750
--9586 -927
-3255 -490
--1833 -3372
--5993 -5806
--2981 5154
--6968 -3056
-8693 -9136
-8404 -6803
-2410 2027
-8831 2837
--3667 8186
-8153 5892
-9484 7750
-2527 -8383
-1047 -2780
-4063 -2025
-4161 -1670
-6117 8470
--3883 3428
-9883 -5189
-2779 -5853
-4833 -7714
--5151 3443
--854 5989
-8442 4398
-6615 467
-4650 -9049
-5342 -5883
--1500 6607
--2693 -2116
--5018 -419
--3635 -8301
--3615 -9003
-8133 884
--7153 6644
--1916 1796
-6264 -706
-755 5147
-2779 -3060
--3434 8405
-2862 -4723
--9525 -536
--7499 7013
-5071 1320
-1019 -3693
-5900 -7931
-1786 -2740
-6646 -8751
--534 -8475
--1861 -8758
--1697 -1902
--2378 4358
-4591 5093
--8866 247
--748 27
--4591 5473
-1034 -3200
--5636 7520
--5085 -4392
--6654 -351
--3619 -384
-9588 285
-7287 -8582
--7415 4294
--9975 -342
--6540 4319
--7547 6952
--9136 -3349
-5125 -4830
-4000 2646
--5279 -1252
-1868 -9221
--326 1051
--8342 -421
--2620 -4191
--9880 7189
--5631 170
-4808 5630
--3200 7661
-4020 4511
--8560 180
--1788 -2257
-4340 5660
--7819 8351
--4755 -2635
-3015 2361
-617 -7509
--9883 -2475
-3991 -2210
-7500 -1290
-1531 -8097
-5801 -1651
--6888 -1724
--5719 7942
--6892 -1629
--4363 5243
--6094 9674
-231 6438
--1447 3789
--2562 9725
--3714 -6695
-5610 -6791
--9496 -652
-1505 -3710
-4789 3299
--8932 5561
-1766 -8946
-593 -3678
-3359 5128
--6246 8007
-1205 4460
--7063 646
-338 -8346
-4165 5777
-943 1401
--7851 5304
-9545 2104
-7673 9203
-921 -3309
-1016 -421
-8454 8891
--3096 6016
-6806 5087
-9936 4295
--6654 8240
--3053 7324
--4031 3267
--8342 -5071
-9038 1244
-9553 1795
-6201 1467
-1900 -9905
-8102 -706
--5743 -1924
-7720 7230
-9591 -866
-2027 2362
--8351 6476
-2836 2849
--2844 -5034
--9379 -7168
-5531 -8698
-6781 4673
-5685 -5237
-2942 -4113
-1842 8421
-4057 -4104
--934 7077
-3021 -2755
-1888 -9022
--5123 -1333
--9221 -3820
--9543 -5235
-9333 -5945
-2063 -7720
-251 -8090
-3352 -3774
--4917 -7375
--8714 9492
-7153 -8934
-6567 -9717
--4266 9357
--8358 1605
--5706 704
-6037 -3062
-5446 1474
-7831 9634
-881 -9783
-9538 -4250
--6826 -9393
--4076 -3338
-7343 -4034
--4233 -5622
-3458 -7268
-9838 7196
--9891 8403
--8155 -2076
-1626 5124
--2257 -6649
--7215 9211
-894 -6861
--2738 9774
-4168 1595
--9677 -638
--1258 6125
--7718 -8411
--462 8298
-5450 -3079
-4393 -5788
-1286 -9427
-3894 5153
--2695 813
-9111 -3699
--1995 -3465
-1682 -6473
--8555 3905
--9464 6068
-3065 750
-8541 -4297
--8882 -1435
-5877 6572
-4499 159
--2421 4890
-4470 -6039
--4477 -1794
--4246 -352
-2804 -7430
--5396 -978
-5891 7931
--2298 -488
--6699 -9483
--1347 -1344
-1475 7550
--9443 -6336
-8615 9373
-280 -6674
-6865 3001
-7852 5480
--231 -467
-1160 3726
--2014 -3997
-7564 -300
-6689 4732
--380 -4214
-5960 -2698
--2924 1255
--7367 -7402
-2603 -4348
-2351 2507
--6786 -8491
--148 4662
-2847 6730
-2897 6260
-5542 -6063
--3387 5184
--7340 -4957
-5928 -9595
-4342 -1697
--3512 9575
--9050 -155
-3012 -3209
--4013 -3386
-4440 -8613
--5269 9464
-6810 2079
-1461 -8687
-1040 1106
-7327 -2967
-678 -1615
--2851 -8662
-1554 4218
-6440 1980
-8120 1182
--9489 -8265
--6757 4031
-6646 3935
--403 -9200
--2388 -3930
--6924 9367
-4638 -4774
-8849 4949
-7278 -2360
-2825 3126
-9411 2023
--1737 8643
-6 -833
--2261 -3290
-2141 1679
--2716 -7698
--2478 -8014
--1177 6317
-4943 8846
--7846 7399
-9212 3543
-1421 7691
-3748 -2698
-5398 -6069
-974 -174
--2561 -935
-3133 -7756
-475 -4243
-3768 1133
--3498 1847
-8331 1802
--2175 3704
--1923 1646
-2763 4084
--1934 500
--5306 -5533
-293 9417
--9232 9245
-4437 9058
-9844 -5555
-8792 109
-2634 2054
--7854 7903
-6331 4236
-1202 1234
--1768 1696
--8444 -8031
-849 3403
--3604 160
--7633 -5525
-9686 -2106
--3119 -5975
--2799 5362
-2882 9770
-8174 -3572
--4972 -3151
-9782 2280
--5889 -2158
--685 -4622
--4215 -3298
--1816 -8351
--6691 1300
-4740 2442
--2531 6760
--8439 8031
-6495 -5245
--1743 7184
-4697 -4322
--4073 4463
--7096 4332
--1198 3783
-6165 7187
-1758 2630
--1868 7802
--4722 1218
-7060 6686
-4676 7117
--9993 -6262
--7095 -4988
-9800 -4170
--1164 6385
--4850 -339
-3960 -7890
--6521 -1281
--847 5823
-9831 7360
--3503 -3130
--3089 -6230
--360 -9667
--7243 9025
-3067 9663
-5817 -7874
-3797 -6874
-7899 -9499
--9434 -5166
--9843 9045
-4874 2964
-7678 203
-8464 -6379
--8723 6262
-9383 2475
--2379 -8011
--4091 -7462
--7111 837
-8488 -6476
--3328 -8000
-1734 -8672
-6331 4705
-7865 2624
--6745 5449
-6345 -2686
--3454 4561
-6000 -415
--4938 6102
-4323 3911
-6309 -6304
--1050 -337
--3494 -2641
-2930 -6263
--5505 -1037
--3606 -43
--1073 -6053
--1422 8458
-8684 -9777
-6436 -2167
-9390 6677
-7465 6651
-18 7210
-7797 9266
--2450 815
-3356 -1981
--5960 -3490
-9223 1836
-6130 7828
--8393 4201
--98 6074
-1311 9709
-6422 6897
-8763 -6697
--1640 -7892
--9001 -9647
-3365 -8790
-2697 -3753
--8719 7960
-2322 9206
-4085 -1486
--1449 6444
--5153 9315
--723 -478
-7895 4702
-4445 -2623
-8965 -5124
--3428 -2414
--366 -2477
--6542 7029
-3530 -3628
--5452 4954
--1107 1323
--3664 220
--3140 4831
--6688 2227
-7195 -5599
--5575 -8359
--7546 7939
--8587 1371
-6647 1084
--9952 7378
-6408 8102
--7955 -8572
--6337 8105
--96 -3737
--5951 9760
--5765 -1487
-7138 -3073
--7159 -8950
-4877 -2282
--2617 4047
--4517 998
--5102 2158
--4923 9420
-1804 -4049
-5196 2968
--7420 7750
--803 9754
-6018 -5887
--9719 -1393
--1157 2305
--7196 8752
--9226 6333
-2670 1564
-7539 -1959
-8436 9892
--3044 2688
--3156 -7901
-2413 -6011
--6090 7782
--9870 -6269
--4921 7817
-8577 4120
--5122 -5295
-3398 -3572
-9232 -9119
-4623 -3964
-4427 9613
--7439 -1742
--1962 8323
-2299 -9854
-3670 6086
--2937 -1457
-140 -2707
--115 3258
-3747 -7327
--7273 2534
-8336 4586
--8028 2188
--6569 -816
-1016 -9472
-8776 -4741
--1641 9140
-6904 -5684
-1418 -1730
-5049 5463
-8456 -5902
--1090 -6434
--4270 9186
-1505 -9872
--8118 -6694
-362 -7854
--6975 -7226
--9488 -4024
-6394 -3502
-1320 2509
--2912 4293
-151 -1790
--386 8817
--1454 9174
-2490 2895
--1122 -3334
-8668 -6560
--2379 5980
-5221 -4886
--4708 8671
-4063 6346
-1528 3275
--256 5578
--1797 -5016
-7542 -9866
-7835 1686
--1123 -2376
--420 -7965
--9196 -8266
-1113 7815
-6323 -5545
-9720 -8652
-8787 7769
-5906 -9157
--7303 -1354
-168 2284
--377 7652
--1316 9255
-1000
--9217 -6471
--2148 -529
--2678 8598
-2586 8153
-7639 4341
-1518 -2590
--4188 5249
--2901 -3000
-8412 2264
--7257 -8480
--4057 8849
--6355 3640
--7362 787
-4307 -1580
--4411 -7717
-1101 -2025
-3337 -587
-9784 8510
--6134 3206
-4407 -5717
--8499 2701
--181 -780
--8453 651
--1930 1126
-7735 -3126
-4686 6547
--6293 -6772
-3406 5291
-6279 1512
-3900 1698
--5141 7523
-768 -1490
-3572 -1461
--3738 -4718
-2805 -7210
-3209 6454
--5407 6456
-1089 -4612
-2939 676
--9806 -6197
--7342 -9848
--8052 8319
-3474 9396
--5745 5734
-3810 -922
--8307 -5173
--2521 6894
--2171 -8066
-2298 -7500
-4584 -6689
-246 5579
--1160 977
-3516 -8240
--9628 -1658
-9147 141
--2078 -509
--9597 4325
--3445 -2692
--7631 2952
--6188 2971
--2816 -263
-2484 -680
-2560 4719
--2240 -7284
-9417 7638
--8205 1741
--899 6648
--175 -8009
-1914 3606
--4812 9368
--6380 -2741
--7721 9997
--1002 -3162
--1811 3640
-9592 7029
-4101 5989
-7753 9950
-5708 3929
--4333 -8027
-5693 8311
-6074 4984
--9633 1930
--5484 -382
-3851 3489
--205 7554
--9901 4249
-7938 9487
--739 -58
--676 644
-9705 8953
--6646 6951
--6114 9488
-9575 6984
--3906 6234
-1689 -5531
--7874 447
-7909 -7974
--5971 8464
-7080 8889
-7368 971
--2950 -4182
-7615 -1458
-1865 -3059
--6855 825
-1227 -7078
--2935 -5498
-4246 337
--9883 300
--8278 -3446
-903 4615
--8625 -8613
-6320 5728
--8350 -6816
-1271 -6153
-3701 1252
-6373 417
-4370 -3717
-4549 -5332
-5626 -8067
-9893 9431
--1805 7450
-5440 -6517
-9513 -770
-6002 -1150
--901 -7401
--4658 -9157
--3365 -7331
--3048 -8077
-3844 -5017
--6023 4214
-8943 1329
-7360 2804
--6182 -7877
--7822 -9027
--946 -7148
--193 2745
--5434 3233
-7195 6758
--4486 -8817
-9121 -6943
--1543 -4585
--1585 6091
-7939 -5096
-1352 -596
-2883 -3005
--2807 -556
-4859 -6321
-4216 113
--1302 2218
-233 3775
--8992 -4298
-1731 -2505
--72 -6322
-3492 3712
-4031 9497
--8822 2998
-7923 -7393
-9192 9292
--9401 4689
--2038 1368
--2631 -2237
-3561 -8524
--3242 816
--6263 3657
-4786 -4803
-5683 -3635
--7620 -9142
-7844 8635
-2800 -8495
--2152 913
-2977 4720
-9816 -1473
--59 -9891
--3148 8768
-6150 -5805
-2770 1346
--5837 -782
--3134 -6658
--7856 -4587
-2039 -7068
-3795 5932
--3717 7341
-8708 -3603
--2001 7109
--8752 8559
-8923 -2393
-2501 -3305
-5146 -5039
--1247 -4863
--4385 -4145
--9962 -2373
--5456 -7137
-6809 7685
--969 2338
-2593 9771
-4971 8002
--2153 3177
--3775 7844
-3446 -1662
-6465 9574
-8389 -9705
-190 2710
-6779 759
--8504 -7408
--6069 2363
-2338 -5274
--8320 -3587
-6580 -8657
--1958 -89
--7033 6733
-8803 -6496
--5307 -5839
--1165 7368
-5514 9359
-5711 3679
--1934 6747
-9648 6762
-7439 3125
-2434 -3179
--5094 2841
--7645 9072
--1254 3065
-8913 4727
--7172 6420
-9714 5978
-175 -3671
--4209 3760
--1428 5655
-6493 7886
--514 846
-9648 -1725
-8278 9046
-8859 8516
-6146 5382
-1821 9546
--1521 6318
-5267 3891
--6375 6330
--4218 -6829
-6949 2783
--712 -5887
--881 51
-4835 -7333
-5822 3887
--7230 6908
--8744 4935
--640 8004
--2285 1485
-8834 -7328
--4160 3856
-1890 -8006
--1240 -3865
-8855 -6177
-6074 -1515
-1366 7536
-9558 -6711
-1397 3870
--5059 9186
--8632 -1631
-4563 1974
--4615 6230
--9901 8301
--421 -8807
--7637 -3931
-3795 -2904
-2992 -9017
-7609 -3328
-237 -4191
--6957 272
--7047 -3664
-5762 -3603
--5338 -551
-8535 4700
-8504 -3489
-5407 -5807
-8696 2411
-5605 4930
--8677 793
-7874 -4941
--2946 -9604
-5159 -5178
--541 -6639
-70 -4642
-2939 6724
--8320 4022
-3907 8428
-4021 8314
-7346 6129
--6648 -2262
-3540 6126
--989 -5978
--8153 4749
--1606 8698
--8684 -9127
-5714 4487
--4119 8684
--9709 8871
-5262 1803
-6809 -744
-3426 -156
-3983 9096
-9503 -7948
--7174 7796
-919 4514
-7369 -4463
-4620 323
--2804 -848
--6685 -3291
-6011 -1042
--1133 -689
--9573 5608
-7330 -2732
-2110 -7315
--2090 -6857
--6295 -9146
--7154 -8825
--6076 8680
--5329 -9759
-6232 -5007
-6842 1328
-1477 -8413
--5635 -5296
-3578 -1168
-9567 9879
--1448 5744
-9541 3614
--4412 -2167
--4835 8105
--1731 401
-250 7455
--8995 4828
--5257 3570
--5490 -4382
-9551 6165
--9507 -3790
-170 -8625
-1473 1839
--8706 -1201
--3763 -2261
--793 -8498
-4891 6750
--8475 5330
-8591 7209
--7888 -4852
-9043 -3585
-2691 -1722
-3889 -8402
--8250 3704
-9790 5560
-8915 -944
-1985 9778
--528 -8115
-6853 -6482
--9666 6629
--5037 625
-5209 -6363
-9764 9622
-8517 4870
--7582 -9276
-8033 4471
--3796 -6664
--1183 -2257
-2118 9127
-8606 -856
--4949 -5908
-340 8374
--3280 1395
--3375 9395
-9256 7916
--6235 761
-255 -2931
--8548 674
-2527 -4157
--5440 2000
-7818 -9379
--8027 -995
-3852 -1702
-5943 -6936
-5855 8702
-9980 3770
-6667 -8459
-3630 -555
-1263 8500
--9520 4091
--6464 -6052
--8803 -7651
-8576 8376
-7642 -1073
--1473 -3169
-3532 111
-5191 8624
--9077 8153
-6057 6272
-2251 4327
--481 -9557
-6727 8815
-1477 3600
--6959 -6315
--5140 -8999
--6907 3178
-5216 7697
-4083 -7531
--5355 4680
--291 3209
-9010 -4352
-3952 -2281
-7068 1026
-5921 568
--998 3134
-4330 -5512
-6165 -2400
--2718 -4329
-3806 8369
-759 -1873
-3068 4351
--8000 -2020
--7440 -80
--1361 -8807
-2587 8088
-5285 4376
-1734 -818
--2941 -5855
--769 1757
--8249 -5191
-5923 -3672
-6365 -9023
--7450 -9415
--3263 1777
--4676 -8153
--976 5661
-8034 8917
-6995 -9663
--6737 -1770
-9308 9550
--7709 -3873
-9842 1956
--5830 4787
-5628 -8641
--5003 -4504
-2892 -8897
--8339 -4556
--4314 -2496
--5349 -3428
--3509 9168
--6966 -5793
-8020 -2310
--9922 7970
--6133 7423
--8263 -7089
--5805 -3900
--3566 8768
-4535 -601
-2298 -1813
-9039 -9956
-6347 9615
--5084 718
--6471 -8836
-6225 6544
--7339 -4777
--3898 -7147
-4525 7441
--2696 -2442
--3876 -2376
--8705 9913
-5258 -548
--6796 -44
-7769 -5958
-2215 -3064
-5422 5650
--7559 -9902
--8275 -1012
--9736 -9089
-6737 -7127
--7417 7691
-157 814
--3022 5890
--3678 -7209
--704 1150
-4879 -9697
--8919 930
--8971 960
--4164 7906
-6635 4952
-3244 7497
--1757 -4723
-5368 8283
--9055 -9268
-485 -8273
-5234 -891
-5316 5025
-624 8019
-4412 -5878
--3386 7884
--1675 -5210
--2050 7203
-3760 7876
--2691 2480
--7080 -5752
-1833 9204
-7144 4866
--5576 9597
--4364 8805
--9152 -7768
--8658 1240
--9940 8524
-2292 -3538
--2082 3283
--6654 -3326
--8409 4366
-5440 2403
--5822 -6177
-7010 4804
--5536 -3387
--3366 -7285
-4152 -2024
--6546 1978
-8315 -2514
-8108 2196
-145 1992
--782 -8606
--3193 -5507
--9189 7558
-1293 9629
--9901 -9727
--4122 -994
--6431 -9587
-3447 -1670
-4999 9294
-5020 3841
-3765 5053
-4108 -3684
-5469 -7014
-8823 -2733
-7061 -9244
-6970 -8360
-5792 -8239
-5474 3710
-6006 8751
-4283 -639
--4226 -1070
--1458 1723
--9764 -5469
-5673 -2118
--5162 -1101
--4488 8802
--4269 3570
-5291 93
-8689 -7030
-242 -7433
--9759 -3471
--3786 3520
-5815 -2522
-6395 -9219
-2260 3837
--9592 1741
--2015 1065
--9575 -2163
--9013 -9502
--6422 -5715
-2320 -3669
-9241 -4481
-9884 8922
-9850 9508
-4052 4312
--1062 5735
-4012 8002
-2260 -9973
-1835 -6194
-8633 -7316
-8325 -8687
--8898 8910
-1407 -4681
-2493 1259
--7099 6823
--7556 6720
--945 3201
-4801 306
-8971 4741
--7203 9808
--1173 -4792
-7415 -1292
-3663 -7544
--8920 691
--848 2561
--8541 -2367
-1592 7429
-8771 -4928
--8347 -760
-9588 -6947
-5251 -9534
-2804 -7099
--9831 8081
-537 -9237
--7252 3443
--9101 -1733
-2797 295
--4592 -3920
--3362 -4102
-8418 -7181
-242 3458
-7104 3993
-3498 3787
--1949 -7714
-5463 9282
--6372 7361
--2870 -1549
--6615 9960
--3087 -722
-221 3848
--2136 9723
-5386 8099
-6357 -7185
-2044 59
--354 -1298
-8664 -4023
-466 -1927
--8623 -7842
-5658 9701
--4157 -2715
-2710 -9935
--2900 7513
-9919 -2683
--6807 -1267
--2975 -9003
-6848 -6364
--8949 9929
-5578 4400
--1204 4929
--1444 3136
-7320 5479
--3254 7578
-1000 -8869
--9019 -5255
-7982 -70
--1387 -1725
--4658 -3201
--9001 -2530
-717 9711
-296 -6855
-5843 -5076
-6893 -7234
-227 3006
-301 -9552
-7746 -8977
-2669 -7786
--6139 4956
-8960 2742
--7580 2924
--8845 -5765
-3718 -2842
-6370 -5852
--5545 7637
--192 3106
--3146 -9354
--7321 -2666
--3364 2918
-7046 -9599
-5896 2449
-5783 -6979
--3428 6630
-8503 6497
--2954 7623
-9625 -1289
--6060 8851
-9578 6266
--8694 -5779
--2508 1266
--7973 -5639
--5353 -2249
-6147 -2131
--4162 5382
-4369 -3215
--9654 -1847
-899 -7362
-9403 -9521
--8079 -4335
--2182 -2301
--4995 4692
-3279 -9353
-7104 -4045
-8188 -8648
-7065 -2445
--1533 7617
--3312 -7997
-5815 8674
--796 -5440
-9404 358
--5149 -7058
-5802 -4150
-6446 5619
--6986 3339
--5036 252
-9868 7812
--4637 -1427
--9596 5418
-4690 -3545
--800 -6022
--8993 -5865
-2602 2613
-7991 -95
--8358 3706
-5887 -5882
--7633 -3891
-281 6406
-2087 1098
--3793 -3055
-9653 3413
--4599 -7734
-9981 2817
--6344 3208
--8555 -4077
-7530 4742
--2297 2711
--4199 -5515
--438 3205
-6734 -3337
-3685 -6055
-1504 -1488
-8824 3101
-8946 5346
--393 1565
-5766 -6756
-3014 1166
-9546 -2707
-9287 2956
--8240 6703
-172 3853
--4995 -6183
-2801 7757
--4816 -8675
-6559 -3249
--324 9047
-347 221
--7782 -4107
-773 -5718
-6758 2867
-6967 5220
-1935 -416
-5521 -9952
-2708 1845
--7589 3766
--5167 -4498
-921 8300
-5422 -6848
-3501 -659
-488 4861
--1443 1565
--7102 3445
-1620 9882
--9279 -3200
-796 2685
--6893 -9606
--4381 2437
-5922 940
--6005 6304
-73 7185
--7807 6147
-3111 8724
--1668 -3472
-8980 -1365
-8232 -4649
-9026 -9182
-252 2790
--9161 7655
-3251 9772
--7706 -2274
--9866 -6999
-8819 -7955
-6200 8056
-997 7589
--5422 6496
--4951 1745
-81 -2486
-1530 3681
-2277 7316
--8794 4615
-55 -9335
-7088 7126
-6842 2284
-7947 3005
-915 -8892
--52 -7617
--9496 -391
--1044 5945
-8079 8420
-7244 785
-6502 5367
--8141 9449
--9403 -5963
--6377 -6237
--632 -4492
--1602 4594
--2110 -8493
--1014 9526
-5902 -3818
-981 8090
--7761 -1070
--3347 -9421
--5448 -321
--8903 8527
-3762 -5374
-6098 4695
--4233 7645
-1956 -7033
--9928 -9226
-9696 -6841
--8049 -840
--1673 -3871
-8094 -6935
--7660 -2777
-4858 1121
-779 -1955
--8869 -7032
-6282 -8251
--3647 4465
-4335 4970
--8441 8862
-9638 -9087
-8773 -9140
--4793 9694
-1232 -8805
-3720 6373
-4871 -1808
-8409 -7606
--3946 4315
--9317 -8851
--1235 -3219
-4752 -8121
--1676 9398
--5388 -9034
--6034 -4419
-2982 -1371
-4609 -7862
--6400 -2896
--2248 8405
-754 -2665
--1036 -7362
-7688 -1725
--1549 3661
--5324 -3761
--7768 8067
-9950 -8334
--4827 1017
--3795 4972
-7302 -8222
-290 -7586
--8853 4934
--4936 -5189
--4363 -902
--4699 -2634
--5522 7854
-902 690
-4914 9
-332 -140
-1812 6294
-2525 3705
-4948 -9651
--8817 8075
-6929 -4548
--2288 -1735
--7580 -3384
-3152 764
--3640 -1562
-5937 -6052
-7615 -150
-8726 145
-5357 953
--2750 4765
--6664 1162
-3147 9097
-5238 4777
--2192 -6673
-303 632
--2640 -8384
-3527 -4900
--2168 1161
--6572 -2073
-970 6961
--7919 2458
--7405 -150
--9078 3343
-4149 -1258
-529 -2796
--755 9777
-6853 -3890
-4800 -1558
--1140 3742
--73 -4794
--1891 -5343
--2545 -3135
--3938 -2120
--3933 5230
--6738 -736
--2167 -984
-4379 -9502
-5219 -2387
-5447 4581
-6157 -2773
--113 -1233
--9839 3314
--770 -1892
-2629 6469
--1798 7906
-5898 8274
--9064 2497
--1756 2097
--6490 -7178
-9407 5207
--584 2687
--1017 4208
-8346 7679
-9159 -2533
--7170 4578
-9694 3366
--4266 -4012
-2582 6249
-2903 3988
-8563 -7984
-6658 -5451
--4271 4186
--2020 -771
-5540 -2181
-900 -2913
-1877 1055
-8918 -5696
--2849 -6100
--891 1222
--2076 8633
--5070 -6806
-4836 -542
-4815 5711
--945 -4353
--2845 -2495
--4 -7229
--2012 -7685
-6889 8223
-8778 -5149
-6369 1881
-1277 1983
--8870 6099
-9440 -8493
-2022 4053
--8413 2376
--9606 -7760
-5060 5796
-9789 433
-6345 1974
--8797 -3046
-8385 -1104
--218 9291
--7140 4688
-5816 8199
-3127 -2742
--289 -7256
-3315 -7251
-3940 -5517
--7869 7241
-4031 2111
--4625 -6095
-6139 146
--3348 -5366
--1252 -2753
-1685 -1355
--5382 9206
-5650 -8739
-8204 -1867
-8328 4481
-9432 4876
--7407 -9027
-2192 -7017
--3084 -3098
-7759 333
-6975 -9128
--626 -2169
--4346 -1364
-9858 8010
-3075 -4989
--9778 -430
--5666 -5506
-1772 -5923
-2533 -3002
--3086 -8320
-3038 -6964
-6962 -1365
-6378 -9074
-3316 -4655
-226 2851
--9533 -9309
-471 5486
-2165 -7081
--6987 3646
-2694 5178
--8009 -1308
-1290 -1644
-8039 8886
-9095 -7514
--7940 1285
-2946 -3457
--666 -9778
-2558 3412
-1000
--4315 -4669
--7827 1646
--441 110
--792 2550
--961 -4170
--6521 3246
--5395 -1343
-5292 1217
-4624 -6598
-2446 -9270
--3005 -4551
-8959 4673
--6696 -3785
-9255 2271
-6364 -1363
-9570 1851
-1171 271
--544 5345
--1426 6888
-8888 5717
--1447 -5974
-2188 3846
--6043 4561
--4211 9852
-324 -8907
--8475 1708
--6052 5872
-4813 9848
--3434 -4273
-2355 7460
--6733 -1277
-2938 8097
-9071 -4454
--7663 778
-4717 -4361
--4127 -9735
--8963 6252
-1751 -9998
-9453 4898
--180 -5226
-4080 4401
--3822 -5281
--9685 5106
--7234 7299
-2750 -7403
--4010 -5684
--6283 -4555
-1675 -136
-1993 -941
-5565 2244
--6482 3897
--5735 -4628
--6161 3248
-9253 -3362
-9575 2253
-1107 -6214
-9521 4455
-9646 -5515
--8629 -9143
-7494 -7414
-7179 5522
--8504 3533
--3511 -9696
-6817 1057
--5589 7473
--247 -7656
-3663 -6269
-3729 -8319
--103 9706
--7036 8083
-7293 9717
-8931 2753
--4819 1151
-2154 4921
-8354 -8434
--945 -1755
--3210 1860
--9178 5447
--6536 8532
--3823 6968
-6875 705
--9682 8446
--1173 8199
-5518 5268
-6251 -6324
--3942 5130
--3832 6297
-4584 2720
--5095 -6946
--5237 -4485
--7057 4138
--5936 -1502
-6308 -2072
--9750 5481
--2676 2114
--9783 -5435
-8868 -9938
--4650 -2393
-3776 8782
--3652 2892
--3231 -5471
--6619 5936
-2703 4509
--3331 -2196
--2358 4057
--1708 -462
--5898 6555
-3027 -2160
--4796 -3856
-5801 484
--3973 2820
-2843 9222
--5972 4054
-4732 -2425
-5183 873
-6993 -9173
--4082 1457
--5646 6144
-8652 -4461
-4922 -2833
-3840 -7663
--9423 3522
--9844 2628
-2203 38
-7901 -8587
--281 6484
--5317 2068
-5106 3393
-6567 -8510
--9956 -5424
--1503 -1741
-6580 -7457
-6190 1914
-8738 6655
-5574 5246
--4495 -4918
-3505 1359
-7237 8176
-956 -4129
--9825 -7540
--4832 -29
--8517 -4211
-167 -1140
-714 -9165
--2321 -4039
-4948 3259
--5984 9332
-1629 8769
-5018 8374
-2968 -4093
-6851 4002
-640 8735
--1619 4353
--852 -1228
-9321 -8677
-1624 -4929
-1715 45
-4237 -7688
-8083 737
-5994 1834
--4676 -9095
-8643 5391
-3395 -9570
--4486 -7313
-314 6239
--2878 -9036
--3380 3525
-2749 -3014
--958 1278
--2304 -8781
-9088 -1177
--1062 -5762
-7600 -9537
-2891 -7997
-9015 -7842
--8273 -4833
-3417 558
-4988 4542
--8585 -6576
--221 -3076
-2247 8910
-1103 1226
-3526 3671
--9036 1610
-1257 8097
--4482 -3930
--5157 -706
--5935 9308
-539 336
--798 -5712
--2637 2021
-4162 -5889
--8009 -7644
--4884 -1719
-7278 4158
--7840 -7792
--8194 -4843
-1799 9132
-3654 -4471
--5735 3263
--6858 8819
-4081 3692
--674 -462
-759 -4123
-8771 -4413
-8386 -4944
-9698 -4007
-4913 9476
--9956 -7594
--62 -2685
--1561 -5700
--4914 9741
-1734 -5727
--2410 9603
-3210 -8603
--1563 -4140
--9044 3862
-5936 1161
--1381 350
--8733 -7890
--8025 -6977
--704 8888
--8098 3142
-4408 -2492
--5259 -7132
-538 -2282
-2529 -1090
-1229 -2243
-4059 -3346
--8029 7049
-1234 -5618
-3068 1001
--7116 5531
--2424 -205
--1902 -2117
-7196 -9488
-6088 1520
-5161 5634
-9696 -5110
--3165 -7274
--4118 2407
--2526 -7083
-21 1855
--5260 6416
--8421 7407
--2518 9332
-9027 -7870
-2534 7267
-80 9428
--9573 -6078
-8230 -7298
--5834 5108
--9141 -6927
--6231 5119
--9549 -9016
--247 -1619
-8092 6392
-6289 -8468
-7495 -935
-5375 5675
-6732 -1996
-6206 -7431
-7814 -2467
-1445 -1889
--389 9680
-9638 8676
--5343 6072
-2643 -3222
-1044 4842
-1054 -4066
--9614 1050
-901 9382
-4740 3794
-9328 8770
-9322 7275
-5314 5899
--4639 3912
-5411 3745
-494 -6615
-8410 665
-8869 7318
-9720 9292
-5563 7829
--8175 -9231
-2978 -5673
--7030 8220
--4803 4472
--6075 -4989
--1997 6405
--3016 -7898
--8570 -9054
-3441 896
-121 9049
--4501 2638
-6263 6695
-424 108
--7582 -7260
-8931 -4733
--7091 5032
--2686 2978
-5319 8169
-9304 -7226
--4592 8701
--1465 -3328
--2778 5505
--2500 9378
-5695 7101
--6436 -9131
--5748 5417
--4514 -9385
-7671 8819
--7618 -3890
--2869 -9231
--9322 6671
-7981 -9703
-6427 5176
-7412 5355
-6895 -3842
--5943 3396
-1849 1829
--8307 7444
--931 5271
-2670 -988
-1970 5230
--9163 1057
-294 -501
--858 -9425
-5780 6075
-111 2601
-7059 2612
-1496 261
-3260 9259
-6473 -1581
--2942 -9186
--1218 7778
-3442 4333
-237 -6512
-792 6735
-3350 3509
--3336 1241
--6145 3212
-3620 3031
-1841 -6664
-200 -9497
-8989 9113
-2231 -6082
-7418 2335
--3293 732
-9138 -5087
-3007 3615
--5570 2136
--1048 -7978
-3435 8421
--5281 -1160
--5741 7064
--438 2523
-8410 6560
--2171 6156
-4351 -4559
--9033 8378
-3762 -8699
-1303 -7692
--9243 -8111
--7058 -3929
-6037 -3944
-4261 -3396
-2294 8054
-9998 6337
-6388 2323
-6783 8359
--1496 -7258
--1972 -8275
--5532 3965
-1679 -8419
--4495 1141
--9252 1268
--1153 6196
-5959 -7913
-4184 8632
-8677 -8304
--2924 2984
--3459 -8742
--9957 2046
--7694 -1525
--4302 -8212
-555 -4419
--5981 9446
-8042 4864
-2190 -5605
-8820 -2960
--3835 7582
-4359 8217
-3455 -2045
-2330 8785
-7480 8569
-8635 -2423
-270 7032
--325 7018
--1320 -5163
-8926 6236
-5741 -7439
--3468 6117
-5442 -3013
-8255 -4432
--5203 6943
-4150 -6884
--3797 -1452
-662 -3664
-9254 -7558
--6061 1373
-6737 -5698
--5746 -1285
--1684 -2616
--580 937
-2375 -5531
--755 1388
-4731 -8644
-3240 -6027
--157 -2242
--8256 -6479
-9509 9633
-4463 3616
--9010 1200
--6954 2670
--6648 -1700
--8745 7033
-6529 -504
--7974 -2864
--1973 -6356
-8117 3608
--5870 7168
--2988 2124
-2788 8862
--2365 -8828
-9438 8009
-1454 -7557
-3587 8528
-7392 9650
--8164 9555
-4671 -1753
-3471 9841
-7694 -4827
-6004 8628
-7829 -2457
--1713 802
-8945 5330
--1967 -5403
-4114 -2303
--2157 2372
-2636 1862
--7512 5259
-956 -2292
-175 8308
--4696 -2212
-7092 -124
-8261 -3927
-7097 3659
-6562 1460
--6019 798
-9127 -6589
-1241 5391
--4478 9625
--7977 -471
--2058 -1844
-474 -6488
-9454 2008
--7865 3032
--2323 6299
--5469 6362
-2635 -7316
--1742 -2816
-2290 -220
-18 -8806
-3007 5341
--9698 1948
--6478 1552
-4536 5761
-688 6720
--1283 -6631
--3399 -1421
--733 -8715
--7688 -6451
-1131 -8865
-7388 6113
--7350 271
-2672 1576
--6882 427
-5961 1989
--7619 3297
-3896 -8602
--6778 -1082
--5507 -6045
--9059 -9914
-2264 -8080
--2931 -5484
--895 -9309
-6383 -6935
-2049 -1186
-5308 2868
--1749 -746
-835 6398
--3358 -2740
-8323 8066
-7351 -772
--4952 5229
-3230 5094
--8412 6454
--5053 8782
--9741 6427
--6725 -150
--2781 8343
-8348 8958
-7062 6947
-642 -5626
-3882 -5152
-4292 -8946
-1676 6168
--3908 -5823
-4287 -754
--6677 -9603
--1872 -1780
--3332 6379
--4552 965
--2703 -9387
--5047 5135
-1676 9729
-3059 -4420
-2368 9288
--6367 -5964
-440 1914
-8557 -8042
-9477 -8631
-481 -4776
--2418 531
-9048 -8414
--1450 2160
-6773 -5084
--64 -3538
-2050 -3407
--3179 6361
--3585 9383
--7085 -7124
--5751 -3784
--5343 1857
--7175 -3399
-2745 -5264
-7770 -6231
-1279 6629
--5321 -2214
--9024 8069
-7337 -8554
-9601 8619
--2215 -3485
-6826 -7661
-5301 -9059
--7338 4841
-8679 9692
-5311 -6007
--3210 8367
--1634 -4347
--7101 -6055
--8531 6230
--3696 -3418
--6870 7449
--190 7269
--6066 8634
-642 -6322
--8973 7418
-4798 -7181
--7174 4122
--5099 5645
--4728 5091
-7579 5208
--8419 -259
--8980 7833
--1221 6641
-9367 8271
--1589 -7195
--4263 -5052
-1370 -7422
--8524 -3093
--4646 1177
-7407 -7576
-5122 -8694
-7926 2143
--6020 -69
--5455 1359
--5622 6770
--6641 9800
--8675 1346
--4387 9911
-4177 -9942
-7400 2580
-7884 -1450
-5508 8942
--9009 7995
-2317 -9275
-8664 7671
--859 -8049
-2101 -2018
--251 3737
-5327 8149
-2033 8718
-6970 6169
-1345 -1948
-8585 3581
--4137 3200
--1826 -1154
--9822 -899
-7547 -1123
-3497 -9930
-749 9809
-7409 5221
--9343 -288
-367 1906
--3852 -8015
--1837 795
-9127 -3661
-2598 1766
-6997 4913
-4869 6844
-4307 -6671
-6456 -7840
-4696 -1239
-2189 4693
-2167 2598
-8904 -4785
-6198 -4413
--2604 -5324
--357 -3309
--8872 110
--7943 8810
--2127 -6392
-5285 -9134
--8228 9290
-7021 -4302
--1608 9374
-634 -949
-4677 5419
--3528 5047
--2475 -1989
-375 -5946
--3412 -4753
--6225 -6850
--9646 2456
-5916 2873
--2539 -3378
-7427 -7645
--5197 2239
-9890 3119
--3560 2712
--6774 -1332
--4793 -3550
-8384 -8752
-1030 3362
-3489 -8311
-9548 -8188
--3780 -5176
--7520 -2487
--9846 -4484
-3738 -5669
-5692 -4694
--6568 -8353
-6596 -1842
-4295 4442
--396 9766
-275 -3972
--7006 -4516
-849 -2054
-3320 -9016
-7873 3425
-6975 5380
--8441 4735
-6905 -995
--813 830
-9214 -4205
-7259 9884
-3815 3845
-8545 9479
-3042 -8525
-5874 8210
-1485 5708
--5664 -5687
-2793 1095
--5344 3956
--841 897
-8356 -1528
-4035 3886
-4177 7357
-6316 -1069
-8546 4240
-9410 8602
--4671 5269
-135 -4805
--9671 -2748
--3958 -7192
--8871 5411
-5873 -5286
--5569 9092
--3574 -9751
--2646 7048
-4031 -8311
-4793 -6713
-7328 905
-8014 8233
-9053 1687
-6518 1018
--8578 -5872
--2426 -5278
-8086 5312
-6547 7558
-7645 8107
--9222 3435
-1069 -6512
--1755 -3880
-522 8326
--7515 2293
--8814 -1705
--9301 -5468
-986 8342
--9187 -3784
-3140 6485
-7194 6913
--9553 -2919
-3769 -5033
--264 -109
-4817 3319
-6998 6374
-5816 2879
-6437 -5097
--1457 -1456
--4988 8961
-2022 2705
-1247 517
--8840 -1053
-2133 -998
-1637 1558
--5894 6379
--8379 103
--1944 1793
-6567 -4445
--153 7797
-312 991
--4321 -8075
-6474 1563
-207 -1440
-7360 -8345
--357 6164
--2274 5367
-129 5860
--1522 -2341
-7418 5118
-4832 -5454
-5706 -687
-13 5941
-4398 -7073
--5282 -4891
--9291 -1275
--9644 -4679
-9670 6197
-394 5175
--7768 6400
-8810 -2010
-6795 -6177
--1512 -4209
--21 -3096
-4737 327
-2054 8263
-1454 -8637
--6248 5824
--2391 -5468
--2431 763
--4419 -9529
-9302 -7233
-7071 -8223
--7871 -2514
-7593 5720
--5060 -4949
--8461 2277
-6304 7090
-9624 -2382
--1875 -8979
--1931 -8384
-6366 -311
--7185 -6643
--3747 -2783
--3501 -610
-6034 -3438
--7257 9596
-7129 6968
--3436 -6560
-2858 -4736
--9956 2757
-3868 -1593
-1487 5343
--6577 9537
--4740 8871
--6949 31
-2797 3939
-7517 6514
-7774 -9594
-5963 -9116
--8508 -7258
--1977 -372
-4805 8599
--3119 4338
--8756 -800
-4305 -160
-5408 -4926
--562 748
-6008 -6942
--5261 -9708
-6654 -3288
-6904 6429
--3221 -8206
--3721 -2004
-797 1561
--3946 -3958
--3988 -4115
--5778 6649
-9057 -8909
-1359 -3578
--4763 -9401
-8372 -3094
--6793 1789
--7661 -6192
--7437 -7804
--6211 7051
--6031 -9338
--564 -2540
-4800 1901
-9682 -8621
--449 5797
-5332 -3584
-8245 234
-8056 4190
-7186 6967
--8587 -693
-6385 5281
-3302 9536
-4190 -4915
-604 3584
-3087 -8892
--2953 7366
--479 -8846
--5566 5886
--2227 6689
--883 -2891
-1156 -8605
-8796 -3507
-3405 2848
-5902 6233
-7317 5395
-9911 5954
--8960 2169
--6462 -4966
--4936 -8202
--4274 598
-131 2594
--5474 2886
-9115 2510
-9933 -6996
-5341 -5726
--804 -895
--6896 2780
--6845 9542
--4315 -1257
--3793 1932
--3835 -5644
-8666 -2744
-9738 7854
-7417 7274
-6724 -7893
--2243 8050
-383 3243
--955 2122
-1649 7745
-5392 -8476
--7838 -3295
-2952 5368
-6758 -4271
-6902 -2534
-4894 -8909
-8491 3137
-6502 -2899
-2843 -1375
-2721 9948
--5924 -6956
--4610 -2931
--3444 -448
--28 -1730
--5991 7774
--206 6544
--8303 -2906
--6608 578
-4704 -8632
--3326 -9516
-3300 -1311
--2242 -1779
--8830 1345
--3185 7052
-6330 -6018
--7864 469
--6866 -1103
--6907 -6193
-151 1145
-2591 -5132
-2123 5065
-2468 -3502
--6656 2081
-8425 4267
--836 3899
-4773 -4548
-130 -2736
--2973 2875
--2874 3080
--6817 -8524
-7986 -2232
--3604 -9357
-1392 -5571
--2383 -6345
--6806 5314
--7146 9783
-1342 -2330
-1733 -9291
-459 3265
--8498 1169
-1546 6789
--6774 8508
--4804 3517
-1295 2824
--7263 -8323
--5711 -483
--5779 -923
-2797 -3344
--4256 -6690
--1243 5848
--4057 -7171
--2405 394
-8139 4701
-1072 -1646
--5561 320
-3630 9333
--4562 -1300
-8025 2754
-1715 5433
-4871 7295
-4619 -1693
-830 4406
-6623 -2233
-6864 -5040
-6684 4543
--201 -1383
-3691 9118
--9535 1471
--9989 -8109
--5784 4790
--8218 3457
--6757 3516
-252 -7734
-537 -9753
--8321 2906
--8743 -5888
--3525 3395
--5447 5328
-8744 -6742
--6560 5268
-8991 -1118
--1608 -5440
--1585 -6985
-8725 -9514
-1021 -8509
-4403 5493
--3093 -4315
-9095 -1650
-2524 4879
-3743 -3689
-626 -3939
-2713 -1979
--2028 -2953
-1777 -1564
--4099 3511
--7037 -1082
-1832 -5151
-3266 3774
-3113 -3850
-7663 -5826
--5253 3433
-7898 2017
--790 4618
--4799 -7011
-8370 -8024
-2709 -7150
--3108 2114
--8844 4163
-768 -496
--6942 -3483
-259 -9148
-4067 6908
--8360 -8296
-1000
--7249 5824
-3627 -297
--5792 -2295
--1962 -3108
--2763 -159
-8604 7910
-2881 7433
-2689 7726
-1522 -997
--8485 -6283
-6760 5342
-9420 -6984
--773 2607
-2415 9491
--4124 -1911
--4150 -4489
-570 -3657
-1537 5524
-6409 352
-6796 -9653
--7804 -7101
--2091 -5597
-6888 4117
--2222 978
--764 -7108
--5925 1655
--5062 -5811
-820 -3191
-8935 -4531
--5222 9017
-8255 -4707
--5263 2077
-2742 9715
--8619 -2958
-3637 7222
--200 8558
-6074 6139
-853 -3635
--9148 9746
--7924 5550
-2494 4369
--3804 3185
-7 -1542
--6831 8955
--3687 -6617
--6789 -2282
--5996 -5617
--3664 5418
-2140 6362
-8100 4992
-1598 -9954
--52 -5524
--1549 -3490
-2658 -9655
-3879 -6291
--6862 3983
--3594 -9624
--3025 -5839
--8965 -9844
--5687 -4092
-791 6110
-8966 -5404
--1318 2387
--546 -3234
--7366 5546
--3115 3452
--3172 6155
-7209 -5803
-1265 -2998
-6680 7693
-7852 -3207
--6911 5890
--2066 -5229
--7014 7565
--7697 -9759
--647 -8536
-2128 -5737
--5464 6448
-6174 -7286
-5002 -7431
--5289 -7938
--9592 -2745
--9315 727
-4134 9175
--1410 9413
-3310 -2423
-7897 -7064
--1037 2180
-7313 8345
--2313 91
-6276 8899
--6748 -9688
--6263 -8819
--5405 1242
--2679 -2074
-2924 2178
-3964 7253
--5640 -1359
--6777 -9446
-3862 6902
--4582 -8675
-3185 -8872
--4440 -8895
-1924 6055
-7673 8550
--2185 -9244
--7686 -8243
--6069 618
-1927 -805
-3076 -6967
--8043 -8279
--1616 9222
-1070 -9089
--8755 -808
-5991 0
-2436 -2614
--463 -7379
-5782 9718
-9802 -3934
-4829 5962
--9018 5699
-5454 -1938
--7955 8356
--2797 5921
-2813 3061
-5046 7921
-5034 -760
--1865 1861
-9201 517
--4554 23
-9911 -2057
--5512 -4119
--7529 -4134
-6535 5895
--5920 -5154
-8481 4688
--2599 -6290
--4347 -5248
-293 1303
-7941 -9799
-911 2898
--8058 6856
--9268 -1689
-3056 8683
--4784 -6894
-148 7350
--4928 4538
--3292 9240
-2687 -1977
-2165 -2028
-2522 7227
-8354 473
-6149 -3118
-7414 8220
--90 -4318
--3623 4474
--342 5655
--7149 8363
-2383 -8666
--3532 5122
--2432 -410
--1855 -6096
-5681 -7284
--3652 -4022
-5454 5032
-3806 -5862
-831 1221
--7242 7425
--4201 -4501
-4904 4641
--8598 8329
--9134 -5541
--597 -6326
--2722 9119
-4524 3679
--9014 -2350
--2750 4077
--8342 1166
-7039 1809
-8655 7008
-4001 9172
--3991 -9474
-6473 -5393
--4791 6320
-8972 955
-4339 -4749
-7768 -1047
-1047 8889
-912 4824
--7838 1541
-1456 3863
-7488 9296
--5274 -7707
--3504 -4846
--3182 5254
--8774 -3542
--1446 8643
-5455 986
-8389 1843
-5052 3001
-445 -6549
--5342 -2686
-731 1185
-2056 3240
--3189 -8469
-4971 -7930
--5041 -1800
--847 1321
--6549 -7764
-3794 -3288
-450 -8254
--8870 -4575
--9728 2288
-5464 -5980
--6900 58
-7333 6161
--5236 7546
-3651 9256
-738 -765
-7041 1082
-8339 -1013
--4725 -6176
-6136 9999
-227 3988
-6510 -511
-2721 -1708
-1014 6028
-2564 5689
-1679 3760
--2269 3028
-8572 -5279
--8942 -7053
--6129 -1919
-2935 4357
-8448 6903
--9003 -1692
-9883 -4043
--8327 -8644
-7439 23
--3767 1404
--1162 -8395
--7028 -4085
--6250 1767
-5947 3737
--8408 3212
--8592 -2947
--3273 517
--6756 -9158
-8397 -4947
--1270 -4502
--2020 8603
--962 4205
-5681 3200
--3919 143
--3662 -1997
-935 -6137
-4726 102
-5258 -8892
--5122 -64
-777 6636
-2786 3602
--3070 -7919
--8526 -2505
--8751 4546
--2111 -9286
-9948 -1438
-2645 -2482
--6926 -3893
-8936 -3104
-3288 3425
-9030 -6073
--2675 -7600
-3694 1797
--332 7495
-9362 8278
-4358 -3884
-5094 4000
--3720 -8472
--8784 -4527
--4729 -1814
--578 -6992
--246 6823
-5386 7406
--4470 -6768
-7642 8699
--9086 -5730
-3309 -2949
-3588 -129
-9966 5607
--2877 4740
--8227 -5225
-1564 -8125
--2216 9567
-8844 9181
--4243 7121
--8748 7630
--9146 8920
-2479 -9508
-6848 -5816
--6782 -1856
--8855 5083
--2201 285
-565 -4990
--160 9849
--5472 -375
--1824 -1384
-5600 1416
-8528 8144
-6496 2186
-9912 7319
-6481 4213
--7383 -1015
--2547 -8918
-485 -8592
--2033 9152
-3662 -987
-3915 -3754
-4564 -666
-5650 6022
--5563 4062
--6267 -2799
--156 -8413
-1736 2826
--6566 617
-898 -1543
--3013 -4091
--3920 6631
-3706 2799
--977 7586
-877 -1966
--3507 824
-7789 2290
--6231 9941
-5448 -620
-5384 -3040
--5420 -5809
--3753 -682
--4009 7815
-8517 573
--3933 -1640
-4694 3526
--7416 -248
--9072 3290
-3982 7376
-4678 418
--9694 4564
-2422 -6481
--5759 379
--1453 -1051
-241 -6316
--7454 -2836
--230 2283
--3716 1900
-3850 805
-2385 -5394
--378 -1906
-6673 -9005
-1364 -7019
-1794 -2950
-4398 394
--5768 2464
-7707 -4341
-3750 -5687
-9421 3212
-3997 9356
-9405 -2488
-6132 -7885
--1204 -6945
--2282 -9933
--917 -336
-8462 1429
-5124 1416
-570 630
-3983 6377
-5802 4397
--5871 9008
--6320 8764
--3990 -510
--7463 -1828
-430 -3845
--5254 -1644
--1858 968
--5299 -976
--5326 5248
--1846 7460
-7474 5144
--2462 5795
-1061 -9032
--2196 4469
--2113 4639
--7240 -3891
--2505 2591
-6454 -5626
--8194 4526
-9426 9018
-4882 -3211
-5847 -6017
-481 227
--164 -16
-4273 -957
--794 8965
--5409 -1439
--1670 -7511
--3598 -9224
-9529 -3767
-3823 7100
--2746 8761
--9814 2051
--2925 -3402
-5976 2095
--9768 6845
--6953 -3941
-2789 -6119
--4503 9335
-6250 1579
--4805 161
-2281 -3683
--7295 7875
-2937 -9713
-1527 -6416
-1298 9821
-141 -115
--322 -5005
--868 -2415
--3241 -9607
-5730 1770
-5867 -7250
-9334 5582
-7438 -2798
-3398 9043
--5574 4806
-2226 -6885
--7456 3110
--7356 8463
--87 -9676
--4886 615
-1451 2780
--4841 2243
-5817 -6769
--4207 -693
-2126 6053
-2534 3633
--7835 -6561
--5148 1126
--1206 1043
--7406 1036
-7646 5242
-4247 247
-5401 -5440
--3087 4086
--6509 6827
-8980 -8110
-5713 -6188
-9438 -6677
-4198 2733
--7950 763
--4808 -4138
--7925 1963
--5547 9585
-6163 4131
-9701 3856
-7368 -5795
--3600 -6375
--7797 -6297
--940 7916
-3645 -2800
--9156 -2908
--9068 7101
-8495 -8206
--8286 -8421
-9210 -4748
-486 4429
--7692 6558
-8566 -2087
--7336 355
--2991 -9249
-3158 1549
--8422 -4126
-3579 -4494
-6156 -3154
--9295 -6233
--4134 4071
--9646 7524
-5295 272
-8805 -4916
--2912 33
-8225 -4927
-7999 -4026
-3350 2281
--960 -7764
--9558 1885
--1821 3761
-6334 9865
-713 3030
--6125 9967
-6702 809
--8856 -3942
-7039 -2386
--874 8757
-9429 -9818
--1262 -1749
--9474 -9116
--7516 5144
-9309 3865
-1452 1495
-7387 2772
-4869 -9183
-6721 4806
--2626 1816
-8999 30
-5103 9552
-2243 5941
--2398 -8146
-8207 6212
-1724 9207
-8033 4883
--7085 -1959
-8792 -3352
-5899 -4872
-470 5823
-165 -4730
--3072 4471
--3694 -5009
--1343 6662
-1523 -9466
-6511 1682
-3892 1574
--4393 -5639
--2760 7507
--7748 -252
--5932 4859
--363 -9181
--5672 -1861
-71 6309
--2353 -4296
--7051 993
--5205 -7638
--6338 4253
-4102 3498
--9013 -8522
--9491 -4724
-8421 6210
--2558 9352
--1704 -1581
--5 5880
--4908 -359
--6920 -4936
--4819 -1618
-1674 9096
-7461 -8624
-934 -3820
--4462 -7935
--4628 -4752
-9859 7970
--3590 -5836
-340 7300
-2074 4797
--4729 -9746
--5405 9379
-6515 -4073
--9282 3668
-192 4989
--1822 7547
-591 3885
--6764 -7749
--1557 825
--7517 -6446
--2744 9502
--3133 6225
--4340 5263
--7508 -9099
--5736 -7391
-5742 -6029
-1057 -7358
--9817 -676
--1138 9244
--400 -1530
--1765 -1720
--8660 1764
--69 4333
--4394 6604
--1661 -8586
--9090 -1450
-6377 -4938
--1339 5067
-9547 -8208
-2859 -7079
-2113 8151
--2421 -9752
-9251 6764
-6058 -4662
-581 -2126
--3418 -1954
-4270 -2892
-997 7634
--235 -3156
--6266 9882
--8146 -6765
-3791 6430
--9753 6959
--4352 1736
-6129 4944
--4028 -5574
--1915 -9254
--3239 -2168
--5431 -9001
--1713 -880
-3831 -2990
-8303 -4400
-4230 2263
-1552 3019
-5256 9444
--3846 9509
-1385 7112
-5039 -3373
-8268 9419
--3254 -9952
-4402 6900
-5429 1910
--1081 -4928
-2438 9452
-9374 -9017
-2248 -5624
--8862 7254
--9003 2132
-2969 -5882
--1214 8810
--462 1095
--3746 6581
-4883 6744
--7888 -688
--5074 6000
-8313 -656
-4380 -8512
-7145 -2897
-3182 -6853
-1360 -2282
-6241 6633
-8435 3103
--5900 -4228
-3401 -7375
-2053 -8878
--1439 -9625
-9702 7115
-9379 4161
--175 498
--5239 6590
--5349 4380
-9662 692
-6353 -5656
-4013 1932
--2192 9859
-3475 -3984
--823 -7444
-952 -9875
--2196 4186
--1670 5998
--729 -3605
--2110 6695
--8130 -7741
--405 -3207
--1406 272
-8687 -2812
--628 -9098
-255 8153
--3521 -9258
--6822 8106
--3785 -8699
-5481 -7802
--5124 6385
--2359 3327
--6589 2604
--4442 5676
-4841 3883
-2434 -6189
-1433 8565
--2930 -6789
-575 1011
-6849 9073
--4969 8000
--4530 -9134
-6055 1168
--2421 -9833
--6554 -2151
-8235 8153
--9093 -9153
--3706 3357
-6840 -3647
-9236 -1608
--9630 -2663
--3609 -8914
-4223 3450
--8407 -6225
--7608 9510
-4219 -6384
--2778 4459
-3807 664
--6727 -4189
-1728 -6921
-58 1135
--1151 -240
--8792 4038
--6895 -7728
-269 5393
--4627 -4808
--2042 873
--7877 -6633
-613 6256
-8801 -5082
--7348 -8930
--3136 3535
-8375 -523
-8711 7781
-9051 9670
-9697 -382
-869 -3659
--4992 -2524
-1390 -4383
-1381 -985
--582 8935
-3004 2003
--5274 1078
--7639 -4146
--1254 -3150
--2839 3747
-8765 -3679
-1907 -7751
-8846 2936
-2732 -8678
-2035 -2313
-3297 1946
-3744 -1278
--5345 1999
-334 -8769
--3068 -7405
--1112 -3094
--6969 1132
-2292 5632
--2351 -7163
-6054 8018
-5391 -6977
-7304 -9667
-9310 -4311
--6069 -3475
--2881 7462
--1476 -6156
-4524 -7974
--394 2077
-6095 3105
--8634 5584
--5061 5952
-4204 -5391
--5458 -7351
--236 -5794
--3231 -5066
-356 -2581
-9942 2874
--4868 -6550
-1523 -881
-2630 -2953
--8680 -2658
-8071 3111
-7750 7813
-8703 -8037
--7725 -7189
--2271 122
--1653 -973
-7234 2223
--9211 9348
-2204 8604
-2867 -8648
-9563 -1674
--6405 -301
-6325 -3290
-4036 9170
--8216 -3518
-3765 -2511
--781 8811
-2245 -5649
-7702 -5882
-8099 517
-8629 -7226
--8250 -598
--7703 3839
-7551 9760
--7515 4327
-2242 -9935
--2075 -9011
--6450 2392
--1709 -7687
-5072 -1733
--8540 2579
-1443 1908
--8816 -397
-5065 659
--5346 -8105
--2062 -3225
-8718 3458
--3725 -5844
-9143 -5129
--6737 -3144
--2308 -9597
--4817 -6920
--6530 5340
--9306 -859
-4952 -5100
--3338 39
-997 3995
--7965 307
--3476 3971
--9347 3070
--6214 -2541
-5468 7689
-8148 9162
--8344 -4544
-8325 9630
--6482 -3438
-980 -14
--8998 7200
--8163 -3613
-3663 -5197
-5750 -2490
-1893 -7310
-1389 7526
--5885 8888
--8079 2196
--7848 -6339
--3033 -3127
-348 855
--6870 3256
--4479 1602
-3981 -2272
--488 -2290
--3251 8214
--2236 5699
-6360 9509
--4418 -5085
-7966 8216
-9315 -5823
--2286 -7700
--1868 1480
-497 1898
-4654 243
--2034 -5004
-3896 1699
--7602 -6699
-2787 7238
--6560 -4935
--7664 7058
--8557 7850
-4666 5328
--4736 -1185
--7397 -3789
--726 308
-4082 1911
-4187 8068
-2136 3552
-4873 3854
-2541 -3615
--5396 -1015
-9557 7152
--673 1069
-4875 5726
-5080 -5782
-1783 2348
--8901 8214
--8698 -5398
-2131 -4233
--7312 -1527
-4848 3014
-5744 3334
--338 9402
-7875 -2372
-2557 6110
--4131 -219
-1504 -4403
-5211 -7263
--1998 -4114
-8076 3917
-419 -4156
-8309 4404
-9529 8787
-2671 -6802
--5624 -2015
-2319 -7241
--2365 4393
-4240 5607
--6230 -6258
-2338 4398
-9301 -4012
--8718 -2506
--2820 -7219
-6695 871
--4272 -2533
-330 -3866
-5487 9820
--2551 -5436
-4046 3203
-4122 2413
-1402 792
--8113 -1104
--8690 6951
--7469 8728
--5993 4298
-2912 7191
--9251 -8134
-9965 6401
--6530 1053
-1802 -2706
--4067 -2148
-3942 -1883
-7062 -7336
-9662 2667
--1533 952
--8712 7447
--8136 2206
--723 -9657
--975 7049
-7488 5076
-3113 -3983
--7162 -6194
--4321 2586
--715 -7402
-4024 8376
--7149 -7869
-7383 8674
--5990 137
--8036 8094
--9294 -6967
--327 6054
-1922 -3434
--3255 -1091
--2169 -7546
--2514 4623
--8502 5136
-4235 6558
-1227 5801
-335 2909
--226 4363
--4645 -1501
-9270 9659
--4662 -9480
-9407 3410
--248 6289
--6354 -5288
-9807 1536
-1939 -3933
--124 6451
--5596 5630
-2363 735
-7763 -3479
--9759 2526
--3884 -183
--1195 7209
--987 951
--7371 2287
-5737 4765
--5200 -1467
-6566 -1101
--1783 1459
--9009 -2799
-8407 -725
--8029 -9722
-9986 -9036
--1477 5925
--3091 -6924
--5872 -5700
-7241 -7483
-5235 9346
-6602 -6971
-5124 6553
--4610 1275
--1342 1181
--9989 -8800
--4308 1166
-8830 -6724
-4103 874
-1705 6418
--7231 960
--1955 6400
--4315 -9234
-843 -6722
--9092 8747
--4164 -3478
--5150 5506
-7786 8580
-4197 7780
--2672 -3090
-3677 4185
--1227 -7158
-2743 -4188
-871 -2615
-8125 -2285
-7986 5362
-9411 4638
--2973 9318
-5021 5787
--3734 -7776
-3046 2328
-9130 7194
-1000
-62 5099
--8677 -9673
-6966 -6338
-8406 8007
-1572 3661
-8079 9770
-1131 -3531
-6603 -7285
--9427 -9921
-7859 8143
-4017 7649
--7381 9750
--3412 2640
--3330 -4217
--654 -4805
--6855 883
-4325 4006
-7150 4432
-8273 -2746
--7922 -7044
--6918 -7626
--4377 -7481
-4074 3414
-9891 -6070
-1987 -1626
-5506 -2603
--6819 -5382
-6802 -7481
-936 -1583
--4061 -4526
-479 3809
--5377 -275
--9949 8643
-9972 3082
--792 -8011
-356 -7259
-598 4355
--559 -2411
-771 1076
-5500 3310
--8512 -50
--9308 -3640
-6416 -1689
-5268 3818
-6759 -5717
-9351 9400
--4117 -5722
--425 -5799
--9504 -4559
-7637 3059
--592 5056
-7457 -7350
-1560 5940
-3475 -7280
--7066 6055
--4312 -6707
-9618 -6764
-4140 -8040
--8854 -5647
-215 -461
-4513 -6425
--31 -4422
-6833 5535
-1122 -1572
--2985 -960
--8363 1739
--8430 3444
--54 435
--2937 8315
-1187 -6086
--7675 -75
--6770 -9320
--5164 8486
--2672 -9533
--3226 -1879
-8731 -6989
-1494 9988
-7825 4799
--6594 3220
-3805 6930
--5072 -7747
--4376 -463
--5593 9938
-197 -143
-1210 335
-1294 -6134
-6962 -3346
-1981 -8515
-9446 9268
--31 -7520
--7707 -9333
--7457 3672
-6366 7464
-1549 7694
--5180 8882
--3250 -565
--2602 983
-9882 -387
--5776 -1801
--7932 3762
--3145 8818
-7083 5514
-4691 5257
-1842 4283
--6432 9926
-4015 5397
--3956 -8558
--9100 -5300
-5214 1404
-5426 6550
-8046 9416
--5142 -616
--6473 -9197
-2423 -6851
--4679 -3050
-3379 -2894
--2639 5707
--1057 -7476
--5664 4272
--5510 5145
--2670 6511
-1505 -9861
--9967 5375
-8176 2524
--3458 88
--1057 5099
-6858 -2370
-4254 -8134
-9235 6782
-3331 8009
--2030 -495
--3932 3110
--7698 4069
--9076 -4503
-963 9760
--3455 4994
-9644 8440
--1691 7435
-3811 -8770
-9170 518
--3474 -1172
--5522 235
-9350 -7659
-4249 -1453
--1989 6956
--8120 3573
-8286 -9899
-7772 -662
--323 -5129
--3960 -4351
-7818 9797
-1967 -4289
--6991 9359
-7995 1783
-4753 9384
--2296 6544
--5523 -4392
--8587 -6387
--7516 8837
--8360 -9278
--9970 -8246
-444 3032
-4756 -9834
--6216 -5876
-2569 9884
--2100 -3791
--7851 8640
-617 -2346
--101 8869
--9957 -527
-4526 9825
-1584 -925
--1858 -1733
--6176 -5601
--8989 5692
-7308 3846
-4302 4727
--8414 167
-7978 -4353
-3260 -9287
--8656 -9237
--7374 6370
-4504 353
-7127 -3546
--8036 8055
--4705 1913
-6269 6942
-4335 8384
--9690 2132
-7036 6464
-447 3064
--4263 -7548
--6807 -1169
-7497 9217
--3056 -7491
-1734 -7132
-8277 6683
-3003 7577
--3636 -4930
-2703 8505
-41 5967
-1959 5160
--441 701
-6429 23
-5357 -2223
-3962 -2706
--4875 1568
-3351 -2392
--3830 7989
--5434 -3916
-7036 5124
-4589 9443
-8168 6300
--7445 9190
-2220 436
--3701 4012
-6855 -5073
--1017 -177
--6366 6534
-5831 5663
-5519 -2804
-1481 -3425
-8928 -7929
--6555 2450
--1160 -9103
-3346 5548
--8321 4016
-5444 6598
--2394 8646
--5741 4646
--5552 4780
--8711 1589
-2841 -6602
-7304 -1976
--6235 -5822
--5503 6062
--8033 1725
-5501 -4186
-4510 -7923
--9692 4108
-7520 -8180
-7423 358
--1601 -7021
-4335 -3932
-167 5875
-2090 6339
-8616 -2660
--8473 2920
--5502 9877
--1297 -9582
-3493 -5265
--2358 8925
-2250 -8214
-6388 4873
-5094 -7848
--9430 99
-5706 1465
-6150 1025
--9602 -1303
-161 2162
-6390 3099
-6184 -8084
-1291 8459
--9634 6515
-7806 -1614
-8228 -2746
-9618 7272
--3851 -7025
-8031 8668
--736 8463
-86 -3328
--4428 -2790
-7694 -7339
-5282 -7782
--1830 -9313
--2378 7837
-8496 8479
--8202 -4875
--3974 3623
--5548 2689
--7507 -7682
--3715 1006
-1742 -8408
--993 4709
-1907 8889
-3482 -7352
-4954 -2559
-277 -8941
-2479 2259
-7411 5566
--742 -4474
-2764 6788
--1306 8166
-9632 2204
-7029 -5264
-6622 -8595
-7344 7722
-4722 -2402
-4687 -341
-7554 1980
--6030 302
--3803 7203
--2888 -5703
--7626 6271
-3845 -532
--7951 9704
-8464 7474
--8806 -3816
-7296 -4304
--6339 -3519
--5398 6011
-9626 5563
--4190 -612
-9358 -5030
--7181 3757
--8871 -3909
--9775 -9451
-1042 -1102
--5404 -813
-2166 -2684
--9087 -7659
--7087 6492
--7449 -5129
-4073 -8317
--864 5714
--8964 -5524
--1686 -6734
--6967 -8563
--4251 -8541
--7537 5168
-353 2586
-1414 -8610
-3161 -7749
--2777 6764
-6885 2931
--1807 3252
--607 7606
--9409 -4457
-5265 3625
-7156 -6719
--3653 -2640
--527 403
--6895 -8819
--6812 -6406
--130 2477
-7815 9539
--3217 1197
-8153 -9424
-570 -9176
-2331 -6306
--3245 -3197
--8079 -6535
-6919 8394
--3628 -3601
--7702 -9339
-3075 4707
-8089 4972
--259 2230
-4479 7258
-1857 -9387
-8552 -5928
--6729 3518
-8598 5805
--8686 -14
-3247 -2754
--7952 6455
-6812 -2689
--2425 5907
--7489 -8610
-1161 -2126
-9783 9597
--8931 -35
-7353 5016
--6678 -7740
--2909 -1405
--7086 4884
--3537 9515
--4495 -4330
-5566 5144
-7963 -4329
--2702 -3551
--5343 -980
-7479 5449
-8428 -8844
--5983 -2145
-235 2734
-2339 -934
-1459 -1075
--8611 4717
--3373 4369
-7963 -2290
--4696 -4131
-3820 8367
-5486 -9581
--9318 5353
--119 9478
-1067 3861
--5861 5155
--6498 -9145
-6829 -7193
--6601 -7949
--7169 3568
--3593 360
-9224 827
-1199 7226
-8172 -8190
--3790 4547
-9625 -1676
-9457 -7166
--2018 9120
-6909 4581
-4657 4601
--4666 7554
-9343 1274
--8793 9511
--2990 -1219
--6308 2750
-768 5090
-2262 5449
-7129 -5792
--7063 -6040
-194 -7048
-2847 8861
--5685 882
-2495 9523
--9672 8335
--9981 -8462
--5227 7445
--8647 781
-7804 1384
-8329 7040
--8299 -4815
-9552 1919
--3780 5288
--6310 973
-5378 -2319
-1172 7256
-8027 9192
-6034 7598
--4732 -9538
-674 5192
--4432 -4494
-7309 -4761
--450 1007
-9262 3673
--9263 -1315
--2876 7398
-2480 -1593
--881 -9940
-5553 4450
-8235 -9057
-6047 -6667
--5918 7874
-8038 -2315
--8499 5647
--5791 -4384
-4183 9381
--1194 9123
--2715 7296
--647 6281
--6525 -9536
--9246 -7147
-3255 7361
--4108 6418
--8091 -325
--4683 6062
-8914 -7254
--2410 8163
--8766 -667
--4485 -26
--2703 -9090
--651 911
--1108 7956
--5822 9636
-773 1717
--6379 1690
--3665 -4695
--2052 -6045
--5439 7019
--1814 -4917
--7927 4718
--7839 7210
--7926 -3557
--9652 -6546
-1199 8078
--4194 5108
-6881 -1696
--8700 -7847
-5214 -9423
-6664 -7620
--3021 -2315
-2608 8564
-9888 2241
--5431 3701
--5022 -8203
--7398 3729
-158 -1437
-4686 -7541
--1937 4403
-8737 2917
-4355 5439
--3601 -8624
--2019 6868
--8049 -9723
-6391 -7767
--4013 -1334
-392 1136
-5898 -5032
--7690 5927
-7170 399
--5399 2104
-1806 -836
--1110 -5719
--6018 -5785
-7838 -5793
-2404 -3346
-4605 150
-5523 -4911
-3893 1932
--4477 -902
--3136 -2523
--6602 -3881
--7886 1989
-2856 8219
--9153 -3368
--6296 -8388
-6435 8630
-9216 -4603
--8373 367
--8726 6870
--1653 4588
-2701 -2028
-48 -1391
-5065 2725
--4365 5339
-6337 5201
-9215 -5961
-7255 -6467
-1057 -9555
-3638 -1034
-5247 5883
--8772 -4299
-1195 -3681
--4967 2130
-4914 -6468
-2371 5382
--6813 3884
-8046 -3336
--7663 4585
-6600 -6074
-222 -9825
-3864 -80
--9876 922
--6016 -2288
-6061 6251
-9337 -3818
--7181 -6370
--6522 6072
-8474 -5682
-9779 1068
--6972 -9053
-8730 8270
--6988 8270
-884 -144
--1058 7747
--8902 -9016
-4094 788
-6423 810
--1854 9227
--7295 9018
-9385 -6383
--6167 -451
-7397 -7561
-9134 -8003
--9430 -4549
--4054 -4149
-20 1175
-5256 -670
-4873 3205
-9851 5336
--596 736
-7625 3368
-9263 -4250
-629 -3747
--7150 2171
--2534 -2492
--5475 882
-9373 -9015
--2104 -5560
--9 4607
--6859 3175
--8769 -1554
--4495 1081
-7045 -5431
-7530 6379
-4493 7240
--2712 5024
--7021 -2805
-8917 -2640
--7539 2254
--3205 2739
-6227 -7436
--8356 -4041
-5252 -8063
--9475 -1286
-378 1700
--3844 -8260
-3127 6255
-2520 2809
--2625 -6330
--2530 4463
-6394 754
--1786 6833
--6563 1261
-2062 2225
-8765 -9007
-74 4947
-303 2152
-5303 -7355
-3292 -732
--9501 890
-5785 -3020
-1698 4792
--4957 -7421
-1414 -5094
--744 -6042
--4569 8977
--7726 8322
--749 -4052
-9798 -5829
--1717 3593
-7013 -6717
-9987 479
--1499 -2512
--8925 -4132
-1247 -4282
--9278 5826
-1179 9959
-6028 9091
-3435 -4097
--1168 -9389
-7600 -8503
--7378 -8072
--2427 731
--5647 5918
-2463 -6034
--9241 -6499
-9981 8047
--2658 -6561
-8918 4577
--6617 2937
-1581 6241
--9054 3346
-9541 3671
-5561 -7435
-2449 3996
-6172 4302
-8120 6423
--6448 5633
-2248 4728
--1226 -7096
--5337 979
--2798 -7916
--8354 4225
--6759 7243
-6727 833
--7348 5220
--3370 210
-623 4409
-5375 -438
-6615 -6881
--604 -4916
-5125 -503
-3580 -8482
--6669 -682
--1328 7563
-2146 5590
--1723 -6333
--533 7740
--8021 -3780
-2787 1101
--286 -9693
-116 -3842
-8812 6832
--8430 4628
--3937 -5515
--4628 3869
-9429 -6697
--8974 -6107
-4371 7482
-4877 2469
--4842 4824
--4953 8783
-9751 2837
--8979 8496
-1867 1800
-8088 5580
--7725 -5134
--9166 -4842
-4764 -3605
-4107 -5724
-1160 2762
--8709 -6707
-5642 -551
--7460 -3711
-4556 -4889
-640 9192
-4618 5610
-8020 -5011
--4130 -5043
--887 9572
-1541 -4521
--385 -4772
-2132 -4912
--9537 3519
--3800 788
-7676 9275
-5282 -130
-8135 -1363
--7081 -229
--6847 8809
-8958 -6492
-9915 -2310
--9902 -2219
--1293 6456
--9726 -9615
--2805 7684
-8569 4076
-4469 -4166
-9500 -4288
--1958 -8355
-7271 -3334
--2013 -6295
--8256 4871
--7588 -1726
-4274 710
--3408 8165
--3787 8648
--8653 -5790
--3435 8456
--8546 -2081
--11 -3671
--3227 -2688
-2096 2441
--4995 -9398
--7205 -31
-5047 5110
-436 -1991
-8030 4042
--1642 9520
-9615 -884
--9803 -1964
-2571 1579
--3690 -2724
-1595 6304
--849 7129
--6336 -4130
-7234 -9800
--9871 -4863
--87 6134
-6659 -5816
-6680 -2700
--3946 -4647
-9965 5297
--4678 4471
-5669 -3362
-2993 7652
-7724 -1166
-8007 -5499
--8364 -6329
--8337 -7490
--9143 -5050
-3675 7969
--6658 -7596
-311 4269
--4472 809
--7902 7606
--1611 5566
-72 7608
-2791 4800
--3954 -6254
-6057 -4845
-3613 296
--9140 -2995
-2374 5959
-5380 -1018
-2377 7132
-4276 2546
-2070 5713
--560 2722
-5325 -2297
-825 -2617
-9260 4816
--4913 2583
-3710 -8089
-7677 2210
-1997 5344
--4978 4611
--9709 1593
-6174 -741
--9856 -7266
--4617 3587
--7971 3047
-7960 -4360
-8379 -5366
-5489 -371
-1150 -3220
-7926 -8788
-3526 -8665
-1773 7174
--9069 1939
--2652 -2707
--3578 1923
--6017 -6693
-1133 -5435
--59 -2995
--4738 -864
-3464 -2034
-7613 -7423
--2017 -9711
-7996 8135
--1816 -8654
--2135 9448
-5185 7613
--1425 9971
--8619 9426
-6144 -4427
-1343 4293
-1143 9640
--5616 7195
-7622 5008
--1074 -7099
-3337 -6043
--1706 9525
-5925 7814
-6314 -60
-6083 9228
--7083 -9088
-4706 2546
-8940 -384
--5994 9839
-6695 -6831
--6703 3814
-1752 8519
-5290 5489
--7067 7296
-891 -5787
-6338 -1546
--3684 172
-4396 4069
-1596 2328
--4573 6837
-4217 -7866
--4809 -5384
-8637 -8005
-3650 1475
--8589 -7757
-961 93
--5462 2612
-9776 -6381
--8925 -3387
-7849 4487
-563 -2664
-233 -6635
-4114 -8992
-6032 1051
-5761 -6999
--4918 -982
--9825 -369
-5722 -2505
-7774 425
--4492 7176
--6465 -7818
--8313 -1505
--2169 -3815
-2797 3643
--3307 -8828
--4270 -2204
-9662 8734
-7366 9284
-8386 3694
--411 -5201
--4206 2880
-2014 2859
--2254 7130
-1856 6740
-1472 -1761
-6816 -3724
--5287 -8750
-5403 -5905
-926 8457
-6182 4275
-4914 7809
-543 -1289
-951 -7408
--8779 -8336
--4830 5141
-2794 756
-3801 -6993
--900 2779
--450 -1241
-7938 8388
-9054 -3478
--856 1212
--4579 -8815
-287 3787
--5830 4249
-9722 5593
-3928 3991
-8839 -5727
-6182 -4405
-5766 3110
--5136 -534
-5756 -2051
--1153 8675
--6739 7108
-9228 8908
--9100 2293
--8667 511
-6025 4477
--7315 -1521
--8330 1933
-5297 -2224
--6736 -9517
--5860 -866
-8981 -4114
-7143 6251
-1886 -3531
-999 6445
-1764 -1553
-2782 -1364
-8480 3665
-4346 6739
--2672 -937
-3138 -8446
--5505 -124
--7201 332
-2886 3146
-9912 1385
--3331 -1469
--9244 2142
-6902 -4803
-5967 -306
--7513 -1677
-4482 3609
-6072 3197
--5800 9985
--9791 579
--6422 -7359
--9938 4845
--1077 3932
--488 -8286
-6537 9838
-2331 609
-2383 1296
-7583 -4379
--9915 -9745
--7029 2157
-6725 2914
--1485 6819
--9202 2973
--5391 -4107
-2784 3701
--6909 5361
--8441 -5529
--1536 5569
--1113 -1467
--2164 -4986
-6681 5817
-8883 -5739
-8335 9741
-2026 -9800
-9747 9404
-5963 -4151
-3047 4194
--2597 -7270
--7142 7689
--8860 -6284
-9669 3241
--8912 -7103
-7716 3299
--6637 -1185
-2531 4958
-7300 669
--9949 884
--9941 9346
--3151 -2648
-2650 2177
--9111 -9364
--5938 5836
-5731 -3387
--8895 -3746
-7782 -3637
-7304 1400
--6079 7275
-9120 -6337
-3546 -2629
-2580 7654
-6563 -5751
-6328 3914
-1000
--4643 -3808
--8788 6987
--9480 -6877
-8905 -3140
--4121 4459
-7222 1185
--7928 -7181
-9958 -740
-2926 -1722
-66 27
-8551 -9602
--2413 7703
-506 3349
-7923 -7966
--1462 -2042
--2993 8806
-4028 1674
-3600 1357
--9549 -8580
-8430 -1918
--1401 -5094
-1677 -3224
--9270 -8388
-3577 6015
--1966 5336
--5966 5132
--1768 3020
--9746 -3087
-3608 8149
-569 -9293
-5613 -7355
--6233 -6009
--5798 -1031
--4854 -9966
-1309 -2802
--2367 -5991
--8386 3097
-4934 -9207
--4713 -525
--143 8509
--4716 -9676
-2925 978
-6887 1199
--8753 4243
-5122 -1979
-9389 974
--7324 -1910
--4664 1246
--8643 9837
-7280 3542
--1970 4858
-3775 7057
-6360 5035
-4267 -4680
-4648 6086
--5329 515
--1134 -8704
--8650 -861
--70 6826
--727 3731
-7207 -3474
-6957 -1347
--5321 3359
--8664 -8669
--4517 -9816
-2748 4565
--2735 -5594
-513 -5646
--2785 1791
--3764 -3710
--9727 7807
-1915 6020
--5889 148
--9514 -1459
--2074 -2778
--2616 -700
-2848 7652
-1152 639
--1401 -4946
-5362 4198
-7653 4124
-966 -6012
-146 -8042
--8591 6614
--2527 5785
--5786 3275
-7846 2022
-1866 -8051
--5879 -1217
-1745 -3541
--3855 4218
-7713 785
-9022 -2424
-5689 -9374
-4807 -2408
--6351 3344
--5853 -1047
-3207 8690
-8047 1859
--2918 -270
-2028 1945
-9172 4009
-780 -5384
--3851 -3233
--3965 3824
--6913 2748
--1175 -9127
--297 -8110
-155 7041
--8598 3810
--6284 963
-1216 -3458
-7617 3962
--7720 4399
-363 -3397
-6491 -1720
--126 -1573
--5539 -1082
--3856 4747
-7518 7054
--1177 8470
--6301 9045
--5399 3606
--1661 7340
-3968 3237
-6775 -2479
--7925 6535
--6859 2429
--9178 5637
--3984 1699
--4544 -2626
-9709 -7765
--1901 8440
--8489 -7289
--9563 7518
--2747 8977
--2432 -3353
--933 -8222
--7931 -9959
--9177 -2912
--8195 -4119
--7016 -9835
--7246 6259
--4137 -4529
-8340 -3986
--4735 3962
-702 7737
-9794 9304
--8847 -6449
-8747 -5453
-3118 -5020
-8863 -3053
--7300 5123
--409 7897
--1709 -1973
--472 -665
-2767 8488
--4807 -6239
-313 -9
--8364 7869
--6103 6907
--1415 -7243
-1734 -8837
--3877 7851
--4015 3456
-5984 -7851
--164 -1496
-653 3807
-6694 288
-5018 436
-419 -4363
-3880 -5906
--1884 3225
-9849 4095
-9057 -9569
--8628 -9950
-222 -7858
-3492 -8428
--1700 -9052
--2942 7117
--7612 7626
--6256 8551
-1495 4777
-9596 -4734
--496 9063
--3996 -2484
--772 -7786
--184 8052
--201 -5139
--9455 -2020
--8010 -4934
--760 -8112
-786 -1263
--7685 -6559
--2004 8608
-5938 -7210
-2992 2651
-1609 3468
-3325 9412
-7336 -8407
--4001 -7589
--8259 -2543
-1059 6541
-3759 3732
-6700 9946
-6290 9126
--3029 9368
--4124 -5879
--2389 1561
--218 7430
--2614 1848
-2317 -3083
--7858 -8583
-2795 2656
-9036 4467
-2250 3235
--4948 -3564
-6118 1462
-4894 6676
-6208 6322
--7687 6999
-9233 -9066
-2491 -1650
--7056 -6980
-8094 -1207
--5091 -5989
--7597 8249
--2795 5053
-6078 783
-7673 1231
--886 5068
-1651 -8254
-840 4279
-6613 -946
--8701 9459
-4315 7851
-7293 9114
-6645 -7065
-4076 8621
--5182 1939
-8958 8517
-2440 -3581
--5013 4466
-154 -7125
--2133 6124
-4794 8131
--3953 9929
-9956 224
-7761 8279
--3800 -6082
-1186 6250
-7602 -5449
-6239 2724
--9823 4031
--9348 -6787
--3451 9893
-3256 7581
--3296 1455
-8391 -9977
-3748 5503
-1457 -5282
-8829 -264
-6965 -9542
-1078 2389
--8143 1153
-331 2805
-3167 9148
--3705 3783
-4715 -1210
-3733 -4536
--8703 9616
--3121 2837
-3991 6549
-4549 5075
--3395 -6538
-5577 -3214
--6791 -7747
-4855 -6718
-295 -6053
-9708 -7342
--6614 -3342
-9480 9204
--4030 -5430
-6949 -3482
-9722 7688
--4836 9206
-9643 -9079
-6185 5963
--9308 -829
-1775 -8659
-8958 8143
--2346 -5634
-39 9104
--482 -8946
-3438 -8455
--7381 -8719
-1714 -4144
--2962 -8726
--7298 970
-9548 3077
--421 5399
-5818 6059
-8103 -9183
-2797 -613
--7276 -2824
--9160 3757
--2219 -7025
-3616 9502
-62 5933
--901 8897
-3339 3962
-4602 9713
--8547 4524
-248 3404
-6360 5214
-519 78
--7373 -5257
-7701 163
-2584 -1567
--4562 -3071
--1222 2781
--1099 -3601
-6978 9115
--1107 8579
--4262 -6087
--8331 1442
-4065 7096
--8326 -5171
-2940 -415
--6895 4405
--3396 3087
-9590 2625
-1646 -7602
-8044 -2903
--6627 -1939
--6643 -9159
-266 1878
-6422 -4866
--2114 9391
-8007 8483
--4028 4154
-990 -997
-9307 -1203
-3344 2627
--3863 8847
-5723 -7940
-403 5260
--572 1341
--9513 4174
-1707 -2444
-1492 -1781
--3636 -5863
-4633 571
-1327 -8332
-2363 421
--8353 -3824
-229 7440
-5915 3036
-2128 3462
-7130 -3395
--9207 -5024
-3729 -1949
--2578 2725
-5942 4853
--8050 1315
--8266 9808
-3472 -5988
-6532 9437
--8643 8791
--9901 926
-1945 -6544
--3102 -305
--3604 7893
--3976 -1672
-5087 6812
-5595 -5589
-4989 -2047
-1299 7012
-1241 2813
-7313 -5185
--6453 -7479
-2736 7016
-4143 -7370
-7681 -60
--1559 9770
-9614 -2298
-9437 -2516
-6742 6358
--8468 -1371
--3430 1774
-7305 6405
--3097 -6932
--3680 6437
--4911 5255
-3368 -462
-1440 -8695
--2986 1293
--9602 6581
--1276 2533
--6329 -1158
--4020 -9844
--5335 -314
--1990 -519
--4965 2664
-9879 8941
-3859 -217
-4925 -1875
-8430 -4904
--4021 -9737
-5084 -5619
-4275 7292
--1695 -4465
-1578 6223
--4699 8900
--7452 -9730
--8931 7608
--4524 -3294
--4671 -5264
--4745 -8444
--9842 762
-7478 6733
--3852 7691
-2685 1841
--6693 -1633
-3157 -9792
--9479 -9735
-1533 9287
-1156 9745
-3207 -7814
-2466 -4260
--5210 1619
--7855 -3317
--9175 -3247
--4079 -514
--7498 -2066
--7926 9822
-9800 9683
--5940 8631
--7070 -3305
--8344 4298
--3513 5617
--7387 -303
-4075 2980
-3290 1176
--2355 -7924
--9449 1575
--3818 -4804
--6241 -8956
--3128 -6760
-7445 7186
--1439 7363
--2675 8915
-3587 1312
-8504 6526
-8815 9456
-2188 4700
--3164 1419
-7715 -5305
-6544 6190
-4904 -5308
--9006 6652
--5981 -4423
-8559 -2599
--6313 -987
-270 -6488
-3091 3617
-2317 4018
--1144 -4421
-2023 536
-90 -1643
--4834 8560
-8040 -7463
--7586 3927
--6023 -7136
-4801 -7111
--3146 -8873
-7018 -1748
-5466 741
--5078 4135
--9424 6024
--5260 -4792
--409 1961
-8928 -4824
--8333 -811
--9494 -5202
-8854 9579
--1355 8835
-2777 5693
--162 -4662
--9782 3283
--4640 -6674
-1395 -3225
--9321 -7683
--2208 2153
--8047 1003
-2699 102
--8562 2974
--5969 -6343
-3242 4394
-3851 -823
--9918 4721
-7062 3304
--1756 3009
--3631 -5906
--5364 4628
--1458 -528
-7590 -785
--6559 8963
-4915 8551
--5916 -8950
--6068 2778
--4571 -1370
-7532 -3637
--4448 3411
-2102 -9513
-6651 3233
-1841 -9589
--5413 -9250
-7174 2121
--9307 -7130
-1097 2353
-906 -7149
--7442 -2846
-6206 6372
--9582 -3553
-8024 -9441
--3856 -1990
-3227 8079
-5671 -1035
--5991 -2477
--4567 5159
--9952 -1277
-8046 6008
-2364 7854
--5180 5140
--3611 4711
--5198 -4973
-6477 6109
--3771 -5658
--1836 448
--5765 6705
-4221 6261
--4269 -8514
--7003 8718
--8618 6016
--2732 -2826
-3320 -9923
--5432 -8443
--642 -5729
--623 1344
--8384 -2424
-548 -6677
--7368 -8810
-7332 -5925
--8568 -7139
--5326 -2642
--9539 -5474
-4369 -9039
--1344 6761
--5695 -2347
--2693 9042
-9751 -2909
-5933 -1071
--7848 3590
--6027 3464
-1092 -5609
-1634 3958
--3740 2316
--2983 2773
--7220 -1961
--946 1100
--9044 1814
--8387 -474
--2608 -3107
-1047 -7482
--9923 -8104
-9548 -5117
--9084 -5377
-5462 2279
--8536 -9444
-6406 2709
-9406 -1788
-6711 -592
-6531 -6165
-1595 8067
--4702 9593
--1280 -7189
--618 5135
-7345 -2279
--8776 4276
--3871 -1667
-3788 9521
--1306 -2535
--5393 -3290
--5088 3769
--2081 -4111
-1002 3541
-6564 9016
-714 6153
-6315 -2555
--5278 -131
-7906 -5881
--4019 -2573
--3874 -8508
-2492 7325
--7762 382
-8951 1986
--4951 4981
-6434 -3205
-7720 5572
-4153 5813
-1737 -1758
-5981 9407
-507 1486
-2910 1899
-1393 8298
-715 -9634
--3020 -4965
-818 -7340
--8102 -7222
--1155 -2633
--2722 8310
-2106 6897
-2270 3993
--5868 -2045
-291 -4500
--3422 7766
--5518 270
--1070 6791
-4267 -7765
-8087 -9360
-141 5137
--1285 6833
-6792 1225
-5184 -2027
-890 4251
--2908 1056
-754 7209
-577 6721
-5866 -6133
--6969 5659
-45 -4912
-3621 -4866
-7415 -1970
--4493 1003
--9479 4234
--9108 1194
-5586 -156
-8244 -6924
--5415 -6980
-1617 1177
-2283 5879
--7595 -5523
--9646 7416
--3800 3976
--8954 5635
-1472 1426
--2060 2798
-4472 -3905
-436 -2503
-3522 -6494
-3987 -4531
--2979 -8921
-3040 3949
--4663 -8056
--333 6623
-3218 -6395
--5411 -1127
-5859 -3848
-4796 2213
--7708 -2125
-9018 793
--8442 2307
--8563 -2078
--6566 1900
--4863 -477
--8730 6949
-3059 4887
-7855 841
--6331 266
--3423 -6219
-1772 6427
-8965 -9729
-6352 7604
--2750 7100
--4692 -8019
-4111 7784
--8057 5580
-5513 -6011
-2065 -5793
-6468 7748
-86 -3022
--601 -6457
--7596 1961
-4933 -2865
--5276 -182
-8885 -6365
--321 7483
-1455 -2548
-5843 857
--7358 -8058
-4302 7653
-2438 7633
--75 9200
--2255 5215
--5381 3135
-6833 9699
--8717 -9672
-4569 -6334
--9865 -3822
-7 8802
-4570 9824
-198 2672
-5961 -2418
-9606 -2495
--6752 8017
-6001 6776
-4750 -8088
--5120 7639
-3900 8585
--1371 7379
--5741 -7618
-3099 -7801
-4586 -3603
--6225 718
--6627 -2852
--6313 -5160
--9777 1885
--4325 -8086
--168 6782
--5546 -9242
--3468 -5398
--3108 -2996
-6516 -9585
--9151 -5076
--38 6243
--6053 -7679
-1583 9722
-6621 -8959
--1602 2796
-3767 -1146
-5668 -2043
--5369 -1780
--1995 -6018
-6381 2734
--2030 -7342
--5623 8065
--2771 3630
--2032 4082
-4683 -7002
-6076 -3632
--4910 7752
--9083 531
-1380 -2056
--6752 7162
-3660 -6603
-2408 8276
--9441 -5925
-5174 -4510
--8791 8545
-916 2944
--7329 619
-9549 -6821
--2626 -5763
-8271 9067
-142 -6461
-1653 -9488
--1923 -2975
--9808 1035
-6550 -6042
--2203 7190
-2082 342
--8064 6384
--158 5074
--3951 7784
--6110 -6716
--4039 5043
-9994 -7496
-2027 -4325
-6631 9088
-4490 -5916
--8758 7869
-4790 4073
--2936 -673
-5865 9657
-9763 5019
-466 -8544
-5502 6066
--7434 1125
-4266 -1934
--2933 -4265
-231 -5635
-1819 8003
-6122 -7161
--7282 -5572
-4973 -5215
-7288 8312
-6330 8193
--7356 -6146
-6936 1069
--4149 -2229
--9562 -1198
-3674 447
-2492 9117
-2536 6515
--8176 4529
-6327 3767
-3955 9162
-4191 9102
--4964 9798
-8441 8046
-6930 -6594
--3300 -4639
--6989 686
--5813 3748
--4088 -2336
--5290 -9008
--6112 6853
--116 8438
-5608 -3445
-3672 6678
-3465 5508
-991 6622
--1474 3344
--4591 7428
-5471 8517
-874 -141
-4209 -6401
--9028 800
--6781 5269
--4014 3179
-4029 7770
--4830 5072
--3116 6235
--4948 -846
-2281 7186
-3886 2641
-4510 -3128
--1190 -214
-6799 9296
-5711 8616
-6179 8450
-4164 541
--8506 911
--3111 4133
--6692 1511
-374 -1578
-6048 6946
-9992 8212
-6675 -6437
-4920 6664
--9406 3654
--4715 -1442
-2759 -3729
-6653 -3485
-4952 2862
-2115 602
--3438 -5626
--8568 4070
-4989 7796
--1837 -4406
--3311 6522
-9737 -1700
-3408 -4483
--7563 -5069
--2368 1135
-4959 696
-5489 2085
--3027 8095
-3310 -9596
--8704 372
-6204 2129
--3946 8003
--7391 4912
--2459 8518
-9887 -1942
--2430 7498
--6105 -9193
-8367 9067
--8098 -5124
-4742 -1989
--2645 2706
--5152 1088
-5013 8330
-1160 562
--8727 -4518
--3106 -7668
--8856 -8418
--4554 -5249
-3604 9934
--7683 -7428
-1145 -9540
-5156 -9664
-689 3814
--3871 7387
--9797 1325
--114 4206
-461 1386
-8870 1193
--6939 7849
--8222 -2176
-2136 -8688
-3048 -9445
-5836 -1145
-7319 -3012
--2828 -9697
--7285 -957
--150 -5153
-2248 -3608
-1850 -761
--7160 9285
-8185 5796
--9130 1555
-8284 7852
-7554 -6898
--5917 4776
-6652 -3391
-4464 4856
-4031 -3207
-9942 -2468
--8027 8979
-3478 5406
-814 -2040
--8456 2416
--2809 4044
-9757 6523
--9707 -3756
-7216 -1280
-1384 4160
--5593 2809
--4120 8502
--614 -6354
-487 -3735
-8193 9969
--7809 4436
--2585 -4813
-5832 -6042
--9845 1740
-3708 2406
-7348 3089
--2176 267
--6223 -8440
-3639 4975
--5816 9344
-533 5521
--8531 3470
-3489 5425
--2427 7623
-2047 -7006
--1504 3134
-5921 -480
-4829 6957
-2806 209
--4727 5441
--4384 4399
-8091 -6696
--9842 -2518
-5835 2544
-1315 -3561
--2333 3939
-8391 1037
--6527 -2598
--6251 -1211
--2061 2732
-8245 3130
--8957 3406
--7120 757
--2698 6786
--2776 -5058
--912 988
--8649 -9295
--4141 -2778
--9410 448
--5948 1885
--8097 7614
--5573 6304
-4260 2240
-5476 6644
--4365 9913
--7068 -6870
--9960 -6921
-6179 9222
-7174 -1422
--5890 8252
--3990 -6763
-6045 -7808
--9157 -8187
-3989 1109
-1513 -2549
--3067 1512
-4151 904
-7382 4678
--7703 5859
-786 6965
--687 1662
--8771 9285
-46 3873
-1731 -6027
--413 6188
-6144 1904
-1000
--3710 510
--5053 -8052
-9266 -8715
-6705 6164
--1091 9997
-6217 7596
-5306 1351
--7109 -3812
-2777 6060
--5347 1641
-5513 3642
-332 4300
-8730 3931
-3324 -250
--3250 5614
--6865 -7434
-86 1559
-1701 6317
--4389 8077
--429 -3202
--2814 -6888
-4240 2391
-8118 -2558
--427 4244
--1709 -4032
-9546 421
--9959 -7492
--5475 1489
-5814 2162
--6568 -6042
-5580 6961
--9484 -8633
-115 -1152
--9166 -547
-7649 -6019
--9968 -9463
--788 6126
--2793 -8434
--1334 -5416
-8272 5718
-164 9436
-7847 9148
-125 -8671
-1404 -17
--8177 6968
--845 7025
--803 2767
--6782 -5763
--8486 841
--6385 -5653
-5309 8766
--874 6384
--6571 -1546
--6460 -3772
-7998 -4314
--5032 7408
-3128 -9642
--3813 8712
--4602 480
--7629 7141
--6611 9806
--2035 3068
--1292 -1746
-2390 -508
--3450 -1324
-1673 804
--6435 -1008
-7432 -7531
-7341 9158
--3452 -787
--8746 -4624
--8417 -8948
--7952 3866
-56 7942
--6818 4335
--6740 1801
-7403 -9633
--3223 -412
--1295 4097
--6558 -9434
--9102 -8546
--2366 -5950
--3279 -1105
--8514 617
--3106 9907
--5869 1631
--7198 5943
-6849 9510
-7393 -1795
-2571 3537
-6929 7532
--3721 -9344
--9525 -5262
-16 -976
-9720 1165
--1000 3779
--7274 4248
--8913 1521
--3152 8356
--913 2077
-866 -192
-2214 -1525
--2031 4481
-4019 8626
-1593 1096
-3746 -4985
-6169 -4025
-4909 -3355
--9568 2124
-9611 9291
-9674 -5190
-3234 -7861
--6792 9608
--7846 -4460
--5482 -9696
-5337 2354
--6063 -1627
-3869 -1359
--8241 5243
-8776 -7183
-9216 1573
--8518 3444
--9698 -5112
--880 5799
-822 -920
--3140 6176
-7113 -2050
--6305 -3840
-3711 1883
-4734 -4104
--4845 9955
-1675 7717
-8403 -2941
-9062 -5436
--2202 8082
--9340 -1008
--1320 -44
--2389 1179
--5766 -710
-5745 -643
-2424 -6753
--7711 1391
--8866 8005
-7804 7032
-1319 -6013
--3661 9271
-7364 3575
--8108 -9399
--5275 -5354
-1909 -7877
--9152 -1474
-9651 -1231
--1548 -1677
-401 -5681
-9680 -5423
--1988 4744
-9651 3169
-7614 2130
--4640 1203
--6255 -2651
-8858 -8083
-5805 -3652
-7358 750
--6156 5697
--6916 -8700
--8260 7249
-7944 5448
-9937 7467
-6911 -1722
-2456 7492
--7763 4248
--5775 3146
-370 3755
--8199 -6124
--2591 4487
--6936 -6042
--6766 -7289
--5441 2969
-9871 -6980
-3045 -9245
--4939 1374
-9124 -4295
-6150 9709
-3728 7158
--4341 1085
-1366 -8575
-3820 9136
--9811 7218
-1482 -7292
--2157 214
-8551 8799
-0 -1421
-2767 -4244
--1263 -2176
--9366 -8585
--8689 -9164
--6624 -8265
-8615 -6940
-3040 4323
-5324 5587
--6732 -9317
--6747 941
-6705 -9528
--4858 2203
--7594 -7524
-6056 -4443
-2088 413
-6237 -9505
-8559 -3005
--4980 -1833
-2734 -7217
-7872 -2029
-460 6151
--3224 -9238
--4089 968
--2579 -4466
--4332 3003
-3754 1247
--118 4380
-8287 5737
--9305 -5562
--8981 5633
-3106 -5868
-4479 1342
--347 -1511
--4086 -1207
--3824 3771
-3786 -728
-287 -3148
--8584 6389
-103 -3116
-7481 -1036
--1299 7279
--9393 -2416
--6992 -9340
--2118 -2276
--7122 986
-659 -2451
--4673 -5868
--5821 -4776
--6920 3564
-8019 -4142
--5830 -5286
--8155 -8369
-9355 3162
-9609 -4012
--7380 6043
-89 2871
--9643 6882
--3681 -543
-1310 -3179
--8551 -353
-1664 -2396
--1353 -8199
-6245 -9222
-8261 5323
--6804 -6575
-3486 9537
-6084 -9385
--3040 5711
--1893 -4858
--9704 9755
--9606 -5759
-662 -5367
-643 -2030
--6174 9181
-7790 4964
--8796 -9304
--7443 -6139
--2266 3620
--6293 475
-7864 6554
-645 -2988
-9317 2582
--1166 -196
--9935 429
--2041 2014
--3628 7009
--6896 7494
--6605 -9220
-1683 8832
--2739 -6508
--5951 3456
-216 8363
--8122 -2982
--7938 1601
--800 9881
-9561 1443
--9076 6805
--9419 -7448
-3306 -7240
--2996 -5263
-2249 -8251
-1262 -2707
-3125 -232
--775 5112
-4507 -8836
-8328 1379
--6592 -2856
-9131 -3058
--9319 -6353
--7247 7569
--2024 -7222
--3005 2710
--3076 3082
--947 2375
--7360 -2018
-7511 7274
-6377 -6789
--2065 -2135
-3047 -3629
-6864 7385
-1503 -4686
--874 8595
-2457 -4755
--8785 2992
-3938 6369
-428 5362
--4936 4547
--1055 2105
-4939 -1997
--9096 1457
--7692 1173
-7285 239
-8301 2871
--1597 -8937
-4769 -5967
--6355 9397
--2160 -9833
-3453 -1617
--6526 -6935
--549 -296
-1626 -7883
-8148 -4066
-5326 4969
-2653 2745
-5348 -4166
-7630 -2056
-3182 7311
--9909 -4446
-784 -9381
-9264 8792
-4327 -7677
-2490 570
--8086 -7981
--7556 8079
-1293 7062
-1678 3614
-8397 -3462
-9878 7475
-5868 4495
-8245 -7313
-319 1203
--3986 4854
--961 -3549
-1322 -2563
-8871 7336
-9979 -2294
-3059 3268
--6778 -4690
--5109 -648
-4422 -5541
-7078 -5500
--1773 650
--8659 2306
--7452 2632
--3376 -5169
--5287 -2208
-3002 8423
--4218 -6375
-7697 988
--2011 5100
-4290 -2506
-8882 -988
-2500 -9642
-6170 -5142
-8659 -1269
-497 9261
--8882 -3378
--5595 -8896
--2090 8198
-3668 824
-8369 4396
-7800 6935
--8719 -147
-2710 -9252
--7768 1434
--2634 8277
-1933 7890
-2277 6111
--549 2827
--5221 -3683
--3774 -9605
--1743 2358
--4131 -4752
-6438 3389
--8018 -6968
-990 64
-8708 -7179
-599 6964
--328 7789
-8436 -6450
-5418 -9196
--6081 6304
-6579 232
--1096 -8123
-863 -4512
-5969 6452
--7085 -3854
-5337 -8689
-1315 -1797
-399 -8201
--8642 6054
--6699 6530
-3829 -8041
--3127 -8286
-187 -3917
--6424 3027
--4548 2911
--207 7849
--8998 2005
--5917 6672
-5280 -4765
--295 6278
--9477 6963
-5274 -6825
--1837 33
-1228 -4211
-4412 -7408
-1603 4123
-4752 -3754
--7699 -1655
--2788 1193
-8459 -5762
--6651 8573
--956 8239
--5203 -4967
-1985 2330
--8390 -4178
-7897 -9298
--5987 -1739
--2280 -3778
-7508 -260
-8256 8586
-1839 7874
--4452 -9409
-5770 2613
--9236 8510
-1026 -5070
--3405 6184
--7001 -4502
--6618 -6790
-3412 -2616
--1687 -2547
-9779 -9606
-1974 5821
-3696 -7888
-27 -4092
-8512 -9663
-4373 -236
--3978 3322
--5440 -5748
--3440 -1323
-9556 -9491
--4948 4549
-9100 6868
--9885 4958
-5373 8633
-6071 7210
-7990 -8961
-7513 -2141
--7401 1200
-1106 4577
--8290 -4028
--6821 2509
-3744 -3170
-5931 2778
-9521 -4325
--228 -7864
--746 2289
-4965 7301
--9477 2037
-5786 -207
--4167 4302
-1935 8734
-8843 -3445
-7690 -628
-9438 8938
-9618 -2974
-995 -7903
-479 6046
-7748 8435
-9687 -393
-3412 -8384
--6198 4641
-5436 5199
--551 -280
--3593 -723
-313 7086
-5065 3961
--187 -1634
-4460 -7571
-2631 -4519
-567 9349
-9952 868
-7257 -4953
-6869 -2552
--621 -60
-1857 -7359
--1250 -7506
-1460 4638
-9206 4793
-5479 4220
-7383 5715
-431 -5572
-1046 7969
-6600 -1183
-9801 -2449
-4657 -2795
-4985 7849
-1996 -7655
--40 -9218
-922 -4862
--8859 3379
--8316 -2583
--2405 -2278
-3975 -7283
--4677 -9634
--1981 -9191
--3758 -5889
--472 -3958
-525 3864
--4019 6968
--9473 -4665
-8320 5550
-4888 -2999
-3187 -3004
--2362 7453
-6513 3311
--1727 -825
--9223 -6037
-5021 -3587
--907 -9189
-9568 7107
--932 -9067
--7896 6922
--2080 2161
-9398 -3633
-1876 677
-2747 -1885
--1177 -5398
--8343 3993
--6957 2130
--6093 8617
-3390 -8161
-3986 1495
-3477 -2606
--2862 -9507
--8441 -8357
--6761 2907
--6630 2543
--4715 -2464
-5126 8059
-2484 -9848
-1642 -4598
-3232 557
-3579 -7101
--9197 1791
-3771 2218
-5352 663
--5877 -1698
--5530 -6152
--1330 -1728
--6115 4350
--205 -4550
--3767 9360
-3897 7340
--932 -9550
-7412 472
--4800 2938
--2544 2947
-3991 5860
--4461 -2249
--4444 -222
-8802 -7354
--8314 7094
-4412 4083
--6003 -4933
-2787 -1534
--3239 8701
-3058 -8451
--7646 -307
-7889 -1560
--1026 5471
--7080 8899
-6887 5403
--1278 2526
--2623 9168
--6814 -8368
-560 2939
-4153 -989
-4639 -6730
-6507 4067
-8654 -8613
--8871 600
--601 -1191
--8328 6658
-7184 2745
-9876 5
--4912 -6317
--9882 -3914
--1158 -3598
--2494 6991
--1188 6089
--7180 4146
--6009 9265
-8522 -6535
--9226 -6346
-1300 -4830
-7106 4449
-8553 1273
-9821 551
-2233 -9176
-6538 5265
--7016 5805
-6014 -450
--898 6639
-8606 651
--1858 -6292
--1648 -6829
-3518 1620
-9744 556
--9950 -101
-3065 -4316
--6316 5807
--4483 8222
--2308 -8933
--3940 -9210
-7721 3041
--2745 -5824
-5771 7648
-6229 9522
-891 -1523
-5428 -744
--9062 -3199
-7640 -1841
-604 1509
-5141 -5659
--4264 -1752
-5347 2724
-6723 -1114
--7295 -5642
--5040 3244
--5582 -2929
-472 -1189
--1439 379
-4172 8017
--3647 3989
--1557 3194
-5162 -4976
--8132 8679
--8889 -223
--1268 -7476
-5088 8336
--6729 8462
--4716 905
--7546 1155
--1400 -2416
-8338 -2511
-5649 6154
--2248 7067
--2481 8661
-9489 2258
--8734 9127
-2706 -7734
-4558 -721
-4601 -3388
--2593 5029
-5291 -8726
-36 -3502
-3766 3478
--843 -8976
-9901 4934
--9152 -4029
--7924 8597
-5767 -6444
-7672 -7899
-6569 -5270
-4539 4381
--3301 -798
-4454 3109
-2595 2156
-1331 2830
--9870 5472
-6897 7126
--178 3694
--8818 -6196
-7294 -309
-4091 -3940
--2052 2911
-8358 1752
-6899 -455
-7800 -737
--8616 -6579
--3336 515
--3604 611
-1324 1981
--4255 -3192
--5928 1352
--7203 3130
--696 -3039
-4753 -2844
-6267 1537
--3604 -6885
--1391 -348
--5775 2843
--3284 1121
--7993 -3309
-2857 8513
-1470 -3
-3293 -4884
--2017 -650
--4183 6201
--5331 -3521
-7141 448
--7371 9904
--9545 4001
-3780 -719
-6736 -8636
-896 6935
--7592 2695
-3770 4285
--7165 812
-1063 -4675
-9964 9680
--9481 -7555
-5032 6822
-8184 1799
-2009 9005
-1845 -7402
-421 4417
-5579 3426
-8331 7682
-5091 -8544
--4134 -1716
--3317 -929
--9274 -5371
--9024 7701
-254 -8839
-486 -7697
-668 2076
--8969 2712
-6227 4433
--9530 -8030
--4242 9606
-3155 7459
-4883 8301
--5244 -9358
-5316 2748
--1273 -4407
--2168 9330
--2935 -2593
-5818 3473
--3750 -3686
-3180 -9580
-9895 6472
-854 6441
--5116 4488
-5344 -2840
--4153 715
--2084 299
--2188 4363
--5104 3947
--4487 6508
--5544 1866
-6369 8855
-3232 7564
--3718 9779
-3918 -3123
-2112 3240
--3771 -6034
-4919 4929
-9023 -9116
-7101 9230
--6454 9493
--3554 -4445
--8435 316
-5918 7961
-3476 8293
--3055 -7377
-1969 1095
--6832 -7754
-6486 -9329
--3743 5824
--1388 -9966
--9282 -4909
-6471 5519
-3994 -9355
--9813 -2277
-6361 3070
--9893 -5872
-8958 -4134
--6331 -6347
-1199 1120
--10000 7825
--4684 -4178
-8348 8961
-1796 3214
-5443 -5533
--7802 456
-9253 5663
--3838 5024
-5677 -7123
-5826 2369
-7952 8427
-6130 -1201
-85 -8546
--6611 -432
--7113 4376
--8121 -7288
--5243 -9790
--7271 -1066
--5574 3639
--2153 -3492
--4983 5457
-5739 8139
-6633 1998
--9395 -9206
--5066 5638
-3596 -3260
--4339 17
--2356 1
-8227 8560
-2309 -3357
-1315 7399
-979 4536
--9587 -8817
-7855 4597
-1958 -7503
-3940 9079
-9999 6015
--6161 -4723
--8645 -401
-1478 3017
--1044 2244
-1692 -3619
--9211 5969
--2811 878
-1338 1010
--9494 -3121
-608 -6112
-2535 3651
-9077 -3222
--7705 -4060
--2835 8867
-9465 -7677
-6355 8574
--9703 7834
--6571 -6299
--8597 7697
--2001 -9466
--4548 -5311
--8016 652
--4901 7308
--3204 1443
-9550 -6924
--6258 6042
-1456 -7591
--3860 -820
--8549 -6538
--3739 -6447
--1063 7584
-6924 130
-9374 -1465
--8299 413
--1906 -9035
-1577 141
--5363 -8639
--4872 -1299
-9395 5948
--5988 -5196
--6606 6324
--3163 -4712
--8033 -673
-269 -4629
-701 -3799
--7912 -3004
--2484 -5124
--5242 -1690
--3325 -6065
--9706 314
--8877 -6955
-7494 5346
-6830 -8290
--5467 8725
-9222 -9678
--5725 -6357
--6167 8865
--5091 8449
--2653 -2131
-8509 -6007
--4591 -4539
-347 -4228
-6196 -4491
--7616 -4331
-2807 -8410
-8229 2220
--1462 -269
-1198 -5035
-9198 -2452
-5014 -704
--1654 3595
--5653 -5076
-5787 -672
-4978 2914
--7740 -8059
-5633 -5631
-9420 5280
--9728 -3393
-1166 -2026
--7440 -9235
--4324 -7331
-4058 1604
-2900 -8675
-8212 6271
-6407 4899
-7288 9895
-8579 -1081
--4521 1692
--4781 -7388
--9703 -2373
-7025 1190
--1239 -7187
-843 6988
--5966 -5114
--8434 -3476
-903 -218
--7974 -2633
-6084 -9583
--858 5047
-5766 7440
--5459 4625
--7009 1503
--6298 -6662
--4172 8330
-8290 -8486
-2501 1869
--6705 -614
-9812 7732
-5748 477
-95 -2672
-7285 8203
--6778 1476
-5721 -8567
--2230 -8687
--6205 8005
-7936 -6441
-2221 -423
--6586 2336
--6394 -2188
-3991 1528
--5039 6705
-7074 -8656
--6923 567
-4421 -7412
--4958 -8678
-9593 -8181
--4488 -5300
-789 -9070
--2741 1552
--9468 -9088
-5513 5597
--9302 2094
-4894 2969
-1933 3943
-5778 248
--4011 2311
-4687 -6687
-7640 -9164
-3537 6211
-8242 -6061
-7139 1234
--2577 -58
--4662 1625
--5565 9947
--9183 -3631
-8172 -9485
--8281 -1579
-9983 -3430
--9105 5679
--9636 -6361
--936 -6481
--4849 2494
-22 8524
-9216 -8979
--4286 -4749
-4469 -5752
-9841 -1633
-7377 -3569
--6501 2906
-1000
--8968 -286
--5948 3582
--8856 6907
-6387 -9709
-3685 -5011
-3401 -6775
-7540 787
-2033 3568
--9942 1590
--4686 -9861
-952 -9392
-8780 9580
--1519 -6592
--5717 -4900
--1129 -8458
--8795 -8033
--4084 -1268
--6565 -5682
--9043 -1309
-1031 -2392
-5887 7664
--6611 2728
-4566 -3304
--2984 -3706
-6501 -358
-1036 -1321
-4280 924
-7075 -7469
--486 -7789
-5335 -7073
--4409 3685
--8201 2977
--9982 -4440
--1992 -820
--5933 1026
--6333 1300
--183 -3697
-977 -7815
--1896 8845
-7032 1788
-4637 -1234
--9488 1874
-2150 9165
--853 9041
-6413 1687
-6775 1607
-4257 -8436
-1818 4339
--7445 -8568
-123 -1700
-8240 7288
--1533 981
--9059 9716
--5165 -6488
-7692 -4173
-5473 -8836
--7570 -466
-7573 4033
-3866 -2492
-8962 4235
--7709 5744
--2472 -7732
--2324 8039
-3224 -1655
--3926 -5469
-8225 7736
-2480 6346
-6138 -2508
--7090 669
--8 8038
-6634 -5513
--1537 -392
-836 -4557
-6654 -5917
--7940 5128
-3480 -8013
--6950 -6227
--8230 -1442
-8418 6925
-7222 -7359
--366 3347
--8926 7822
--415 -2257
-3676 -9607
--7606 2411
-8718 7756
--705 -8699
--5959 -4785
--5385 -1702
--8437 -8745
-9571 7446
-9279 -5492
--7044 1328
--295 6034
--5369 -6434
-256 2158
-8065 -4062
-3830 -3301
--3980 -5110
--9593 -5381
-2785 6310
--5595 8751
-9085 478
--2248 1906
--990 1776
--4439 -841
--3414 -1399
-9508 3562
--3630 -5276
--3463 -6648
-1194 2190
--6653 -483
--3709 -2902
--9445 -1524
--3170 6086
--7684 2798
-4985 -107
-9195 7827
-3099 -7749
--945 -4142
--6059 -4882
--772 -6176
--3390 2830
-3615 -4757
-3911 -6750
-3848 9864
-8 4419
-7409 1704
--2749 -2675
-8075 -6741
--6576 -7237
--7993 -3188
-7956 -8703
-7825 -4735
--6529 9724
-5601 -9558
--1528 -4087
-9519 8890
-5386 9123
-3980 -9360
--5711 -1988
--8836 -2670
-9268 -5622
--5096 -912
--9884 3034
-3757 -2449
--2862 -9400
-2235 9404
--9165 2565
--7902 -7951
-7162 9105
-5617 -687
-1142 1249
-2688 -4195
--8543 9717
--8685 9095
--113 -117
--2232 -4116
-4991 5065
--3438 4937
--9746 -9929
--4766 2391
--5047 3873
--4473 9032
-3222 -4934
-5964 8236
--388 -1325
--8993 -9966
-5909 -3203
--2633 -5946
-8416 4008
--1175 -4007
-8091 344
-4894 -2004
--9473 144
-1856 -7630
--4919 2096
--812 1907
-3538 7541
--5951 -8997
--7798 -9061
-9174 -4497
--1178 -3538
--4253 -7035
--2422 9841
-2388 -3452
--8429 3486
-411 8148
--5159 9722
-5211 -3068
-4587 -9154
--1672 -5667
--4512 -4473
--1341 6666
-4746 2137
-5159 -7361
-3108 5848
-4771 -8645
-766 -1425
-5745 2328
--6774 7146
-6919 -6765
--5277 -9830
-4798 3185
--1353 -750
-3732 -6956
--4017 6059
-7407 2587
--7657 5122
--9071 -7072
-3274 -6231
--2093 -5699
-4919 -6910
-511 9899
--6363 -8331
-6467 -3193
-2207 -4034
-1897 3440
-1802 2297
--3357 7742
-2185 3872
-5981 -1638
--504 -6190
--693 82
-5298 6086
-8364 4351
-5204 -5700
-9882 -1153
-1540 -1394
-4148 5811
--187 2902
--9047 5243
-1891 7241
-4611 -60
-9382 4137
--9603 -1093
--5223 -9475
-7853 -2871
--7544 -9375
-6677 6682
-409 5723
--1246 9959
--1036 3749
--5497 6623
--5188 9997
-634 -2901
--8257 -8900
-9501 9899
--1618 -9869
--9351 9625
--6364 8071
--1452 7468
-7425 -6800
-4962 3964
-4233 2104
-9698 13
--5525 8578
--7281 -7765
--1208 -8065
-2143 9892
-7769 3629
--8745 7238
--4464 7336
--862 699
-6167 3780
-654 8051
-9836 7323
--3971 4361
-6880 5855
-7459 6096
--351 -1856
-4291 3966
-1205 3544
--9858 1621
-7431 6352
-7268 1668
-5147 -5215
--9059 -1398
-7145 -8447
-6142 -9177
-7570 -1539
-8774 6655
-382 8754
--8700 -2220
-5014 -8470
-6329 8381
-2509 4790
--5400 -8710
-1433 -6256
-5138 6054
-2613 -9647
-7128 7434
--4689 -529
-6039 -9418
--6372 4014
--7939 2527
-3858 -6278
-6095 -7358
-3742 6839
-3635 -5245
--7081 -9877
-6842 -7237
--1349 -2622
--2293 6370
--4900 1906
--9687 4088
--7820 -8323
-8832 1170
--5013 7488
-1299 -2629
--2449 5862
--8932 -2531
-3355 2640
-6527 3876
--6321 -2982
--2825 -1256
-3659 -4509
--9031 -6472
--6595 -3475
--519 -3347
--232 9140
--9839 -2806
--5093 4752
-4321 -6540
--7149 4933
--7873 -4094
--5206 -3486
-6337 -8156
-9538 5345
--2141 -112
--2807 -4524
--720 -8561
--9030 -9063
--3939 -9133
-3532 1334
--4071 -7909
--6453 5219
-5604 8198
--4224 -8920
-3822 -2633
--60 -9241
--9896 -9193
-6498 3105
--2542 3766
-4561 -1941
--9426 6719
--7822 -4148
-7585 -4154
-6512 -1875
--1095 1716
-7061 -6706
--4644 5916
--2576 771
--7241 1089
--18 -5048
--4928 5100
-1330 3749
--3059 -9045
--8122 -6344
--6657 -9888
--9029 1109
-4586 3214
--6442 -4208
-1313 3124
--705 -9475
--626 -4064
--6010 -2274
--6478 4216
-5591 -4160
--13 6540
--1509 7286
--5788 -1153
--9980 -3208
--3808 -3789
-4100 6599
-2590 -5325
-3732 -805
--1945 -3625
-3185 -7002
-4292 4265
--1873 -3497
-5493 -9062
--7071 1880
-7035 -7978
-5316 6989
--1742 -1026
--2827 -7139
-935 8749
-1169 -2988
--3686 -9670
-2596 -2177
--4030 754
--5630 8178
--3236 -384
--1293 -514
--3804 8774
--1904 6251
-9983 817
-7186 -4053
--4257 -3930
-7616 -7231
--9591 5320
-3821 -1985
--6253 8091
-3369 -9936
-9747 488
-7713 7993
--9858 -8566
-8095 8325
--1040 966
-7100 8079
-5318 10
-5388 -9748
-6447 -2679
-2334 3354
--9147 9468
--12 3898
--6993 3719
--7443 -2931
-7442 9509
-5184 4149
--6666 -4401
--6698 8596
--1432 -9218
-8939 -3382
-7237 3882
--5783 -5735
--6676 -9648
-7111 1626
--9784 -9736
--7952 2686
--2947 -4937
-9162 4687
-8539 4238
-7782 -8242
-1241 -8192
--3565 2858
--4912 -2427
--804 -9449
--463 -7155
--6044 6342
-9060 -2891
--1638 -2601
-1784 6419
-8927 7896
--4725 6392
-7900 6476
--1368 -8838
-6703 4312
--189 -4313
-4711 3385
--8676 -6023
-7669 -5744
--274 -782
-2820 -611
-4614 -5833
-9727 9800
--119 8324
-755 4197
--9678 -3629
--2621 2906
-4357 9435
--8717 4459
-4680 2658
--2188 -6433
--1346 -5691
-6675 9
-309 3528
-4537 -4439
--4425 6669
--7975 1236
-119 7195
--6386 -2562
--2518 3427
-8293 -4687
--7480 1075
-2416 3878
-9628 8301
-6837 9795
-238 2036
-8862 9069
--2031 4954
--7796 -4764
--4835 5108
-6603 5441
--1694 917
--6305 1309
--4019 4488
--7373 689
-1174 -6281
--2863 -3802
-9264 -1719
-6208 1114
--6402 8688
--6687 9627
--9483 -379
-2613 -4883
--8526 6408
--6778 -5575
-5641 8819
-5861 -5207
-6558 -7547
-9389 -5120
--7739 7526
--4743 -7738
--2032 2039
-7450 -1388
-132 9330
--6461 -8705
-1599 165
--4240 2354
--3737 1642
--3551 4556
--5854 -9265
-8961 -1219
-7485 -4836
-7265 -1377
--9929 -8692
--9809 5379
--2119 -894
--8472 -3741
--6458 1408
-7102 5993
-3535 -5745
-7693 -6819
-4348 -2269
--2281 295
-4419 -9338
-5152 3702
--1423 8525
-9672 6148
--3179 -3052
-7371 -9604
--5754 -8436
-2170 -1371
--1597 -2160
--1054 1296
-7472 6947
--5438 -4736
-4372 9970
-4578 4923
--6962 -1048
-5382 -5076
--9585 7837
--8623 5793
-5454 481
--61 2080
-2856 -3862
--7269 7691
--81 -6745
--3050 -362
--8159 -4256
--7993 -9995
--8217 -279
--1350 7057
--2044 8934
-9846 -5213
--189 7923
--5518 -3685
-5988 8634
-2961 -8945
--9534 6118
-7518 -3600
--5608 -797
--9894 -9300
--8117 -1531
-9836 -1307
-3914 3435
--5032 7478
-3310 -8174
--9872 9978
-6155 5465
-9224 -9309
--9051 2999
-6680 -455
--3537 5909
--4470 -6504
--9173 2747
-2100 -437
--9696 -3903
--2656 589
-3935 4418
--4520 -4021
--8817 7221
-5785 -9418
-3816 3256
-6775 9903
-1868 -7552
-5004 -5614
-6919 -3837
--6218 6622
--9063 3449
-1119 -2107
-5682 4051
-925 -8893
--5727 -3477
-2233 -4205
--8847 -6644
-6460 -4266
-5559 -4139
-4028 -8909
--9007 -3051
-1238 9792
-7562 5286
-3011 4288
--8976 631
-9143 4809
-9128 -2361
--4583 1163
-3073 -685
-598 1172
--7629 -2925
-1680 -5634
--4108 -1374
--501 -7128
-4031 -5457
--597 -1266
-5393 -8177
--4763 -2062
-3247 -7742
-8773 7483
--4326 -2300
--2892 5692
-939 6796
--3584 -8278
--8045 5630
-4884 -5197
-4203 4214
--4487 3625
--6888 2194
--7121 -2759
-2144 -8971
--7693 -7556
-2458 5648
--301 -1916
-3928 3422
--6372 2442
--1713 8202
--4010 6422
--6547 -1491
--8878 -5194
-2681 -6234
-3015 7012
--8666 -1992
--6370 -8775
--5238 4925
--5754 5652
-8500 4283
--5423 -2273
--6885 -5568
--773 -5531
-3134 7134
--1689 3144
--5062 -4901
-754 4174
-5248 8026
-7712 -1649
-2734 -3347
-8015 -9807
--5185 -3873
--5360 -6685
-5017 5179
--1184 -5384
--5654 2925
-9799 7139
-4296 3963
--3092 -7904
--4191 866
-7605 -7175
-1199 -8908
--2387 6168
-230 7591
-4924 -5316
--4856 925
-533 8578
-1752 7693
--8481 -1656
-6911 2680
-4966 6185
-8766 -8084
--9526 -8838
-5351 -8333
--5006 9784
--5207 -3283
--2603 945
--2225 4411
--5997 -1286
--408 -6962
--4155 1798
-6699 -9379
--1312 -7542
-3310 -9778
--9860 1699
--1464 7150
--4288 3961
-7955 3373
-6011 -3644
-3499 -4798
--1069 3565
-579 -5379
--4744 1706
-4943 -5934
--4597 5087
--6988 -4205
-7678 4009
--32 -8596
-4871 -3384
--4911 4457
-1596 -6389
--3184 6917
--3103 -7465
-8786 -6506
--9630 -7019
--7995 9852
--528 2035
--7860 -8692
-4734 6088
-1150 -7669
-7790 -1109
--8911 4822
-3566 895
-2535 0
--5200 -355
-7175 -1296
--5707 -3336
-9813 -3289
--5610 1091
-3738 3143
--1492 -1689
-8727 -4430
-8229 2860
-8034 6503
-4240 2363
-2204 -3373
-5187 -2284
--470 3559
-5186 8262
--7007 7218
-5147 -2414
--7960 1747
--8767 -4212
-8760 -6002
--1746 -5786
--6999 8302
--560 267
-8227 5372
-6172 -8951
--5353 -2329
-2807 -1510
-4377 9964
-3384 9938
-4532 -9447
-2327 1299
--3118 230
-9405 9931
--4264 8856
-3482 326
-7 9204
-4458 1327
--2891 -3127
-2806 6955
--4155 -8156
-5652 2487
-9362 1525
-5939 956
-7902 4456
-8282 7955
--5944 1527
--582 -8302
--2492 8289
-5858 3542
--4059 -915
--466 -5250
-9345 -2226
--3356 6152
-3649 -4349
-5390 697
--8560 2652
--1175 1268
-9907 -3848
-8453 4053
--2819 9902
--2187 -5863
--9365 -7634
--8079 4984
--5619 -5324
-5350 -1167
-5469 1861
-6735 -6589
-3010 -1053
-8124 9291
--8526 -8467
-6555 4047
--613 -9781
--8511 9834
--3805 5812
--2113 3263
-1 4179
-4396 1400
-4913 -9415
-2997 -4828
-9918 -2193
--6859 -8510
-3134 8512
--4147 -1747
--1748 2233
--1937 3828
-6255 -5174
--6140 -1745
-7158 -6176
--882 -7817
-3678 5581
--3569 4886
--3499 3140
--6331 832
--4382 -8510
-81 -2522
--9461 -5940
-8312 2743
--4774 1665
--6573 -9951
--2541 2486
--7123 -6933
-4051 8986
--791 7281
--4014 -8293
--9530 4683
-4271 5107
--277 -7620
--3707 -9399
-571 571
--617 -1105
--2078 -6184
-2464 7302
-2261 -2223
--7752 3451
--2509 -3080
--5761 -2979
-6081 7479
-7402 5210
-575 -8155
-9868 9938
--812 -7889
-6839 -2491
-4821 3921
-1280 -9671
--1650 -4260
-5150 1813
--4081 8269
-3685 3039
--9006 2485
--3178 -2525
-1360 2074
--9830 1203
--4482 -5194
-3794 8405
--3628 -2025
-1243 -6506
-8097 -1726
--8846 -3183
--4840 -8024
-4410 -8738
-6313 367
-4726 -9963
--3083 -8583
--3959 -4212
-8762 -3427
-6229 -6283
--9679 9679
--439 -2741
--2671 9467
--6460 -4104
--7900 7899
--6142 2281
-233 -5693
--9105 6503
-392 -9343
-562 1612
--650 5161
--6395 9433
--9712 -8342
-2208 952
--5568 -2045
-7352 -3518
--4796 9819
--4186 8019
--9654 7871
-7255 -3587
-2878 -8053
--5792 5507
--375 -8260
-2065 2464
--5413 -4240
-7431 -1097
--1949 -149
-1345 -3632
-3949 -7113
--9519 -189
--248 -8414
--4136 8066
-2592 380
--6147 -6884
-6791 -816
-1854 3560
-5640 -9363
--9994 3607
--773 -6808
--1986 -6811
--2229 -3925
--3050 -3997
-291 8427
--9993 -307
--9198 3557
-1497 -6440
-6341 8799
--8199 3212
--7972 554
-6503 -8624
--550 228
--5744 -4497
-1422 7570
-2724 1388
--6008 -7536
--8579 -2062
--9008 4104
-3137 4844
--8813 -3182
-5153 -2555
--3445 -4456
-2637 -768
-6858 -9055
--687 4180
--3521 -2705
-2404 6518
--5239 125
--1732 -4391
-1166 1888
-8487 9565
--6500 -9556
--6505 1837
--1488 -1694
-6246 1532
--7795 -9323
--7801 -5305
--8439 -5585
--9558 -2920
-5122 2314
--1472 -14
--3208 5206
--4295 6
--7034 -9828
--1226 8164
-3803 -4015
-7979 -3725
-1132 -6359
--9147 -6698
--1393 505
-1620 2737
-4594 1013
--8043 -9501
-1690 6059
--8883 8810
-5054 5125
-6950 1411
-7357 -7851
-8938 6250
-7949 -5996
-4746 7831
--4105 -8606
-8499 7084
--7389 -6996
--4402 8182
--4465 -2629
-6168 6327
--2565 7065
-5861 -9594
--3419 -4785
--2009 -6862
--8861 -8855
--2111 1944
-1865 -2068
--2981 -3787
--4352 128
--9432 -715
-1149 -8546
-6001 -4245
--8811 7677
-5935 2735
-8199 -1161
-1039 5106
-5390 -8020
--386 5987
--6248 8462
--823 9306
--78 5355
--5645 8408
--5974 -5238
-1401 1478
-9043 2962
--2274 8474
-1000
--4690 2600
-7662 8497
-2763 -2972
-8389 8551
-9099 -7424
--7974 9064
-111 4661
-223 1470
-7849 4247
--3551 -2957
--1163 -431
--9032 -9295
--381 -775
--8736 -4086
--2123 984
-6891 -7517
--1997 -8098
--8551 -4349
-4073 8350
-4453 541
-9356 -6400
-8323 -5975
--2000 -7007
--488 9027
--9326 -7053
--2429 1766
--9500 -7851
-7604 -2620
--2035 -6116
-8193 -764
-9857 8726
--3519 9516
-5857 -4121
-9181 193
--7483 -5290
-933 3353
--4 202
--232 3114
-2100 8281
-6277 -3790
--3942 -9133
-896 7654
--6332 7934
--997 5849
-480 7522
-3545 -3043
-4042 -6712
-2566 2746
-672 -4770
-9567 -2793
-8703 305
--7396 -3848
-2470 -9776
-2547 -2939
--2650 -22
-3437 6602
-3479 -5719
--232 -1542
-6305 -4033
-3108 -2905
--9470 4397
-9382 -4537
-956 -4867
--2677 -218
--9172 2027
-1429 394
-2786 -3979
--3263 -6326
--1931 7469
--8178 7144
-7905 8107
--3797 7762
--7572 -7973
-6546 -7627
--6139 9836
-3689 -1713
-8949 -4263
--4396 9828
--9582 2948
--1176 9479
--2796 -9741
--3650 -9526
--3982 8273
-9461 -9337
--370 5148
-8112 7630
-5615 -9783
--4254 -3433
--8581 -9968
--4987 -7712
--3620 -9704
-7145 -598
--2238 1495
--7712 2883
--7919 6251
--2935 3930
-2458 3029
--8392 -6436
--1784 1770
-8501 -4358
-7120 5214
-7847 9945
-455 -5742
--810 -7668
--3696 8885
-3278 -5899
--6365 7436
-6130 -9570
--1990 -3360
--2510 9258
-1228 -8153
-9648 7834
--4880 -4360
--9129 -3164
-3893 -9720
--9057 -3126
-2205 -9856
--5914 -9029
-3668 2896
-3747 5660
-918 2395
--601 -6640
--963 5136
--5409 -2143
-886 6692
--7726 4431
--3883 5421
--2917 7599
-626 -3608
-1302 -9589
-1781 -4288
-4237 -705
--7684 821
-8331 3272
-4849 -1287
-9311 8784
--2898 -1092
--2764 -9067
-7646 9071
-6411 -3196
-7600 -8470
--8337 611
--2549 -9523
-9411 416
--9755 -6850
-3939 4243
--7851 -2339
-5781 1214
-5848 -1908
-5297 6431
-77 -1406
--9214 8995
-8758 -6074
--3365 5456
--6000 -1050
--2319 2356
-4537 -385
--993 5861
--3763 8666
--2519 -6386
--2804 -4168
-8914 7997
-1581 1083
-6902 -5344
-2911 8766
-1113 1862
--6844 965
--4715 -7733
-3990 -1624
-9525 5616
--3074 6355
--2983 -9811
-2757 7969
--6059 3871
--6905 1415
--1556 -6948
--3975 -346
-8184 5183
--9469 -1636
-3657 -3672
--4826 -5206
--9450 5082
--7919 8475
--6347 6804
--5847 1904
-8982 5900
-6007 6765
-5110 -738
-9315 3247
--1204 6789
-4865 -3118
--9327 9425
--1383 6816
--69 6710
--546 3916
-5978 9726
--6875 -158
-119 -4872
-5666 -3421
-4283 6182
-4548 -918
-3496 -9040
--4978 -5840
-4191 1317
--8277 -2786
-2655 9080
-1128 -2623
--5072 6570
-2041 6255
--3979 5116
-8436 -2062
-6650 7446
-3526 6277
--210 -3768
--8653 6924
--2212 5717
--3293 1963
--6159 -233
--766 1421
-6651 -7203
--3990 -3301
-1943 6005
-7576 -4568
-1782 -1814
-9531 3442
--1099 4435
-3353 2257
--4228 -1075
-5593 -315
-9608 7784
--4689 -2017
-7337 2307
--4700 -1631
-3504 7787
--5560 -2628
--1969 -9558
--9525 4066
--9645 4386
--870 -4693
--1764 -7679
-1644 -9426
--9976 -7612
--7152 -443
--5128 -9008
-3505 5352
--9555 -46
-905 -7354
--8150 -8359
-7497 -6889
--2190 -1152
--8732 593
--4607 6628
--6001 -310
-2353 1897
-3239 2121
--8923 1335
-4610 -4558
-4150 -9553
-9172 -3927
-5199 144
--9213 148
--8873 25
--6059 3421
-5965 9953
--3950 -7597
--3176 -7887
--5888 -8818
--7795 6645
-1146 6728
--8138 -7570
--4168 8526
-7375 -6994
--4681 -6331
-7937 4966
-9657 3319
--2828 -9834
--7892 7700
-5303 5036
--8100 -7455
-4849 3876
-5542 -201
--2645 9467
-1307 -8270
-6535 4405
--4683 -876
--8310 -4594
--787 2022
-2578 -7046
-8541 -8964
--3498 -2883
-9032 1766
-5308 5564
-5323 5608
--2340 9923
--4919 -9528
--6842 -8826
-8022 -3595
--7910 1615
--828 5828
-5830 7439
--7855 -82
--2101 -1384
--1997 -7536
--5370 -5106
--4567 -2088
-4956 736
--1693 7140
--5745 -3691
--1563 -463
-5610 5221
-2206 3624
--2834 -8309
--3038 4203
--5853 -1352
-4535 -740
-7444 -441
-4728 2438
--3024 4947
--248 -5875
-2461 7955
--4331 -339
--287 -7455
--1793 -8542
--9846 4354
-9638 -7439
--4670 5953
--9198 6369
--9193 9416
--6442 7593
-2188 -4703
-8360 2839
-3917 5491
--9686 -2708
-3257 -7082
-86 5137
-8108 -3517
-3832 -7396
-6818 -233
--8126 4638
--5679 8910
-5865 3732
-9237 -9024
-5347 -4253
--2533 -5089
--10000 -9129
--6196 4051
--9163 2794
-2622 340
--9674 924
--428 -6182
--3904 5317
--4364 -2997
-1332 -1027
-8818 4747
--967 226
-3350 7444
--4828 1875
-9325 5728
--5708 7442
-4757 1887
--9827 -919
-9527 -8743
--4047 -181
-6647 -3062
--3332 -9346
-9143 8978
-7004 5936
--4335 -3950
--7003 2085
-3742 1620
-9997 -3085
-2372 -385
-5594 7678
--2866 2194
--6810 3555
--4095 661
-3192 4690
-14 -4783
-3192 -3224
--768 8770
--2884 9584
--8566 2831
--536 1621
-7546 4634
--6246 -9307
-1588 4994
-3698 1934
-9892 -2609
-3970 -9732
-8436 4061
-4438 7006
--8625 -728
--9958 -4847
--5769 330
--4652 6832
-998 -4491
-2802 7853
-1911 8559
--9449 -1542
--5479 8583
--8914 7406
--4228 9735
-6765 6439
-4224 -7682
--3365 8389
--8993 -4744
-3819 -9019
-7548 2241
--5576 -5763
-4840 -2383
--3844 -6100
--6139 468
-8383 -6518
-4884 3825
-8713 1778
-9231 6802
-2832 -4480
-2484 -4346
--8334 -431
-7334 -9278
--3661 -1431
--8994 -3454
-2917 1107
--9304 8704
--4829 -7220
-361 -9825
-2362 3881
--586 -694
-994 9468
-513 7274
--8656 114
--9439 -5300
-870 7021
--2005 -3837
--8153 -3454
--8082 -4674
-2408 -1251
--5032 4972
--2858 -6480
--3846 6720
--684 6473
-4931 -8653
--6115 5110
-177 -2398
-4354 -2555
-4135 3225
--4062 6116
--3522 -2627
--8957 -9796
--1860 -5289
--2851 -8189
--889 -1337
--4308 8117
--7351 9834
-8443 1498
-6013 2633
--1287 8482
--6079 3880
-824 6036
--1412 3265
--5224 4481
--5535 7460
-6028 -8065
-9171 3471
-7502 5789
--3677 -9556
--8108 -1366
--3760 2009
--3561 -8824
-5813 -5878
-4114 1267
--5062 7830
-6306 -2938
--9041 1878
-4646 -8745
--7581 -8120
--7593 6850
--3673 9689
--5204 56
-9090 1916
--5227 4237
--5762 939
-1528 -5905
-8742 5523
--6940 -3268
--3733 -4179
-6813 -8098
-9089 4951
-634 -59
-209 -4151
-9317 -3556
--4687 -3645
--9884 4842
--6055 -2392
--2062 -3528
--9282 -4455
--2288 3423
-1945 -2382
-9000 -4196
-4761 775
-5707 -6763
--7897 -1329
-5926 -2209
-4076 -275
-8254 -1872
-5077 -1264
--9464 1304
--6420 7232
--1522 -5617
-2171 -4445
--742 6538
-3519 9781
--5767 -119
--806 -1299
--8195 789
-9284 -9164
-5476 5772
-9368 -6540
-9863 -4163
--3751 -5036
--9393 7604
-2332 427
-5174 -3526
-789 7361
-5395 -3234
--8357 -5124
-2031 9962
-5396 -673
--3622 -6584
-5326 -5509
--2155 6236
--3769 588
-2090 -9950
-6155 4992
--3412 2822
--4035 -7375
--3469 -4597
--8061 4205
-1415 3265
-17 -7566
-9774 -9349
-5369 -4418
--3341 -7210
-6614 -391
-9942 -6986
-5199 4482
-714 9361
--2656 5576
--4380 190
-4973 -4544
--8383 426
-6229 -8585
--2413 4393
--5598 -718
--589 -5033
-1906 6004
--6211 4912
--9113 -3718
--1359 9981
-8338 -8544
--8593 -8817
--6018 -6420
-8586 -8175
-663 7411
-228 7220
--992 -3673
-9389 -1695
--7119 -4898
-4893 5387
--107 9657
-4869 -512
-8774 7592
--7505 9638
-6500 -4784
--5292 -3000
-4681 4019
--1256 1038
--1408 -2113
--2899 837
--555 325
-6749 -7107
--4084 -748
-7878 610
-3846 2537
-73 -1466
--3150 -1466
-6089 -9491
--3533 -672
-9361 7886
-3980 8860
--9530 -9735
--6494 5872
-7611 -352
-8898 7103
--1816 2271
-2281 4967
-2841 3610
-3981 -3497
-4721 776
--5394 9534
-7622 6982
-6224 -8502
--1080 -2783
--6664 -7745
-9627 -5415
--6061 -5199
--1736 1970
--8085 973
-7640 -6204
--2913 2648
--9954 5630
-338 -821
--8860 -4213
--6721 -7654
--211 -590
--6794 -2416
--3687 4234
--5164 3781
-6542 3775
-1127 3038
-8980 -1668
--8068 -4450
--7572 1769
--1508 -9678
-4846 -1204
--9837 -1483
--4947 7352
-4537 3079
-7436 6761
-7158 1662
--4741 2223
-7511 568
--2529 7045
-9168 -1350
--2872 9057
-1282 -5413
-8214 8578
-9230 -4851
-3202 -5424
-2316 981
--936 7368
--7564 8590
--6641 23
--1325 89
-7044 9844
--6469 -9158
-7983 3227
-7626 8152
-4200 6383
--6024 8477
--9867 -582
--6389 288
-570 -4853
--2476 8036
--4561 -974
-1767 9301
-3916 -8338
-3072 9102
--8962 -2459
--2073 -473
--6358 7999
-5484 5857
-8984 863
-1940 4808
-4605 6471
--2397 -8160
--7652 -1478
-9009 -3754
-4212 -1876
--577 8043
--4581 -29
--2398 1193
-186 -1029
-4584 8516
-4727 -1809
-623 -5181
--5 6737
--9495 -4381
--3621 -4916
-1364 9699
-6822 -8785
-6458 -2211
--2589 1339
-7048 -4580
-2831 7179
--817 -8908
-329 -8255
--4466 292
--7678 1638
--9645 -9215
--802 -8357
-3923 -1370
--394 5565
--739 6477
-6643 -746
-7795 3655
--325 8094
--8388 -6097
--5487 -9997
--6807 -7266
-5115 -8607
--2100 6951
--9243 -440
-4496 8284
--5723 3078
--6957 -1990
--3516 7831
--1197 -9951
-4173 -6855
--1164 2622
--7510 -2866
-6866 2607
-676 -6922
--8587 7067
-6053 9913
--7938 5530
-2082 8501
--39 -4908
-8225 5138
-9346 -6302
-571 -3788
--2049 5277
-8532 -1216
-8024 7071
--3601 8292
--6367 -1268
-5558 965
-1866 828
--2198 -1255
-6385 6348
-2398 7114
--8203 -9789
--4840 9959
--7247 9231
-5924 2435
-634 -1501
-5837 832
-1887 3025
-4850 5018
--5336 7470
-8255 -5030
-3651 3668
-8613 6021
--1262 -9171
-1480 -4514
--9148 -4171
-1781 4130
-2038 6088
--5309 -5568
-1988 -826
--5097 1639
-5276 -8027
--3285 3785
-3185 -2143
--3425 -458
-2582 1218
-3625 7250
--9236 4222
--7190 7487
--5548 -3184
--8210 -5363
-3803 -9664
--852 -8052
-6906 4867
--2747 1435
-7991 6711
--809 1769
-2165 6907
--8976 -2884
--2093 4920
-2078 -7256
-4769 -2793
-9869 -7277
--9706 5674
-3600 2333
--6469 6146
-3797 -4955
--6826 5637
-5309 -4164
-9806 -9913
-4228 -9630
-2406 9552
--2116 -4210
-4493 2804
--5853 2556
-7768 -5167
--3884 3777
--6596 8453
--4565 1163
--8806 1099
-7968 -5824
-7738 -8266
--5368 6251
--7680 7790
--5122 -6790
--932 8571
-2781 7270
-9731 2006
--1828 6647
--1945 152
-1749 -9375
-1853 8811
--9169 -3094
-4962 3619
-1172 7025
-7806 4937
-1970 5467
--6309 -8872
-5950 3777
--4137 -793
--3776 1815
-9430 3236
-8744 9134
-3634 -6561
--7155 -4567
--2909 -9343
-6499 1422
-6222 -2411
-1419 -7346
-4052 6842
-5316 -8890
--4966 -6953
-2677 2903
-8243 -521
-4962 -8424
-69 -6850
--785 -907
-5230 -9656
-340 -8411
--6019 -1476
-4663 5026
-6955 -4982
--1592 -8321
--9949 -577
--2336 -2855
--2793 -2767
-2081 250
--5029 255
-7104 8469
-6339 -9017
-3078 -2201
--7856 7371
-2968 -1822
-8811 3672
--3459 -6675
-424 9365
-5609 -8346
--3776 -3507
-1014 1217
--4870 -7903
-5021 -3645
-2104 1590
--7669 -9436
-6159 -5331
--7529 972
--5214 7384
-998 -9223
-4291 9986
--8716 6941
-3407 3568
-4234 6001
--2423 9394
-8218 -5355
-9891 -4372
--3889 -657
-3591 -4220
--2952 -4743
-7638 -4199
-435 -4175
--5803 6613
--3351 -9774
--6899 -5288
--1558 8677
--5806 -6959
--1244 2388
--1164 1322
-9233 205
-6309 -3998
-9298 8744
-4543 5454
-1675 -4747
--4729 6316
--5178 -8800
-5358 6450
-3887 6565
-3461 8469
-5964 -7320
-8343 -3564
-7845 -6776
-7231 3580
--7968 -6406
-9507 7634
--3258 559
--5872 5137
--4172 2061
-2199 -6911
--8054 3319
-8351 -1261
-2324 6539
--2049 4226
-4760 -5633
--2597 6309
-1627 -2806
--3532 -5832
--6965 -1084
-4857 8430
--4003 -1541
-1023 1304
--9201 -8615
--8264 -2488
--2618 8042
--1812 -2616
-8543 -6586
-5323 9458
--5947 -7524
--9046 434
--5687 -5084
--5383 6603
-7874 -5163
--2744 -2595
-1636 6486
--1717 8212
-4255 9624
--7568 4754
-4481 1773
--3610 -6873
-1391 -3965
--8875 -3385
-154 6518
-1777 -896
-3818 -3294
--9943 -91
--1354 -2611
-7152 4608
-2059 -5991
-5973 -2891
-7542 6916
--4476 9659
--1577 -4428
--6621 -8433
--5855 50
-2193 7737
--9701 1527
--7222 -8890
--4859 -3147
--4870 9297
--8278 9890
-8400 477
--6514 -7918
--1000 -8387
-3165 1926
--9679 -2286
--156 5520
-923 -8792
--3210 -4803
-5361 -1716
-5080 3023
-4558 1336
-9607 -2412
-5225 5941
--1865 -870
--5299 -5505
--8744 6519
-8760 -5432
--4867 -3589
-2303 -5828
-7465 3193
--47 2861
--5968 -8825
-4646 1075
--4480 -8026
-1170 4424
-5576 -3891
-3961 -9146
-1958 9459
--8734 8161
--5124 540
-1931 924
-3295 7648
--6237 9691
-8090 -5678
--8579 824
-5933 -640
-3283 2365
--1321 -5795
--8400 -4156
-3056 -2865
--4503 -4800
-1142 5317
-4570 -2471
-3203 -1992
--3277 -7221
-1041 2574
-856 2093
-1896 -6032
--5411 -4517
--91 -265
--6795 3084
--7292 -7471
--3680 6494
-1000
-759 8526
-7683 2686
--1413 426
--9012 9413
--2487 6696
-2472 -7654
-208 7471
--6681 -2153
--6680 -9799
--9208 -4313
--3187 -4326
-8814 -5966
-5024 3847
-8664 -8110
-3672 5780
-8533 -4284
--7856 -6802
-7626 -2473
-4327 4662
--1060 -2535
-2456 4172
-8399 6956
-4017 -4152
-9788 4637
-8660 -6197
-5230 220
--5560 2457
--8185 7036
-9019 -8367
--7384 -5072
-9636 -7146
-8416 3434
-8303 6977
-846 7781
-5746 -9686
-4953 -4813
-1478 4286
-3115 1726
-6733 -6008
--9311 498
--5134 -9512
-8534 3189
--8494 -844
--4894 -2684
--7294 -7914
--1057 6939
-8126 -1731
-1629 8840
--5666 -4811
--45 -3649
--3698 4885
-1258 -5936
--9641 7929
-9450 8511
-4457 -8256
--415 9335
--1227 1753
-6266 6128
--6494 6546
--1536 6495
-5334 8548
-1769 2893
-9793 4065
--6678 5928
-3638 4590
--7681 -5071
-1797 -9529
-7172 3722
--4357 -2141
--8068 -9513
-1194 -2774
-6097 -4487
--9126 2771
-6497 -1874
-7584 -1469
--9321 -3806
-6201 -3236
--1951 -5610
--7629 -4868
--2232 -5358
--7381 1074
-8862 2526
-2232 8646
-4338 -4154
-3838 3491
-8411 2501
--3998 -9321
--1918 -5404
--2875 -2755
-5803 -6011
--4593 7646
-1088 -6691
--6760 -9587
-5104 -8463
-3724 8748
-798 7104
-2740 -2452
-510 -7916
-5674 8035
--1067 -47
--3568 -8768
--1535 2880
-9456 6294
--4340 -3718
--6133 5715
-1185 -6816
-9215 -5872
-680 -4437
--8026 8266
--6149 9118
--2019 -3807
--5068 5918
-2196 -3156
-9878 -7179
--73 -92
-9091 -8233
--8411 4273
--9996 2161
--1585 -4096
--8917 -4249
-6403 -5724
-6118 5212
--4741 -3088
--4573 -7229
-8766 5621
-2707 7128
-2977 -8461
--2702 96
--9656 -4196
--8273 -4789
-2285 -4617
-3396 -2550
-8554 6242
--4658 5320
-1954 2536
--3002 -574
-6677 -6157
-4398 1438
--3368 4023
--5465 -7501
--8492 -9699
-1803 -4210
-3964 5040
-9399 8841
-6717 -7783
--265 6433
--3261 4521
-7481 5052
--1787 441
--9113 3801
-988 -1670
--2015 7671
--9293 7652
-1582 1112
-1824 1160
-8532 1095
--6400 -3190
--5563 -4685
--5871 7396
-1392 -6047
-2343 -5231
-4508 -4569
--5213 9476
--437 -9993
-4101 -1219
--1126 4846
--4926 6176
--7634 -7547
-9056 -9781
--3037 -9140
--8818 604
--6807 7782
--2244 -1194
-4279 -1201
-6952 -805
-5302 8819
--284 -9148
-5435 -2466
--120 9673
-4012 8900
-469 635
-1839 937
-5993 5239
-7596 7250
-9369 1654
-9123 550
--6279 6332
-3186 -2741
--8729 -6062
-1637 491
-6753 3166
--5404 -6157
--612 8568
-3758 -2749
--2698 7494
-1549 -8544
-4590 -7071
-7849 379
--3006 -1495
--3028 3497
--2759 225
--5906 -3659
--7973 2019
-6323 -7427
-3559 -505
--6 -3288
-7853 -5215
--4496 -7519
--9386 -6452
--1372 3812
-619 -5872
-5578 2006
-4213 -9485
--3624 546
--6418 -4783
--450 -5963
--6622 1453
--6723 -1349
--766 -6706
-5480 -1593
--6478 9147
-8789 -4692
-4232 -5257
--6659 -7840
--4239 -9708
--5312 1977
--3139 7040
--4548 -1073
--6079 6684
--7348 -6481
--3034 4792
--5054 8829
--9709 8391
-3302 -8629
--6365 9563
--3297 314
-1721 1498
-5963 -6690
--1034 -4268
-7973 -3951
-3738 7886
--13 -894
--8166 3825
-4682 -9836
--4843 6191
--5641 -6015
--9805 -6313
--1881 -8719
-5825 2696
-9055 9724
-6263 -635
-957 -5101
--9937 -1460
--7738 8043
--7034 -2833
--9089 -5721
--462 8065
--3124 5484
--1269 3716
--508 9270
--9406 4035
-8856 -7411
--4028 4630
-9210 5100
-3580 1214
-8989 -968
--1116 -163
-7793 6551
--7962 -81
--7606 -5770
--2694 5279
-3347 3594
-2683 1928
-6892 -8857
-5499 -2490
--1594 2905
-6882 -1742
-7484 2702
--1173 -6794
--8840 -4612
--4996 -6213
--2689 -4335
-9849 8598
-4775 -6925
--947 586
-4534 131
-8253 1053
--5705 -6181
--6731 -7232
--9203 -5012
-3111 -3128
-938 8579
--2063 5364
--6490 -8034
--2014 -3940
--3379 2042
-5860 3107
--9410 -720
-3684 -5784
-7130 -177
-6924 -7421
--5642 -2839
--4069 -2569
--4107 -4371
-437 -1234
--2555 7778
--6786 6678
--5399 1375
-278 -7841
-8743 8878
--2672 -328
-5056 -2864
--6891 -9705
-9919 -1223
-1314 9128
-2458 7976
-9039 -9536
--5489 6061
-8267 6273
-3577 7655
-8764 6907
-7715 -6062
-7297 3653
-4571 3304
--6963 8391
--7289 4090
-4238 6453
--1338 2687
-3962 1118
-9831 1805
-7970 8341
--4014 -5737
--6681 -3980
-7445 -7450
-806 1949
--8946 -3193
--885 9483
-8295 -1262
--5218 -3865
-7000 7751
-7280 989
--9203 -1286
-3567 783
--90 4787
--1000 -8977
-2069 9050
-2391 -7174
--77 -9152
--8457 -7090
--2474 -8489
--2325 3510
--8502 -6769
-6742 -2799
--2702 0
--3366 -6999
-3106 -4942
--5229 9460
--7798 -5552
-8560 -8032
-1015 -8549
-8268 -6923
-9615 -7756
-6721 -3657
--5669 -8337
--9273 2202
--4475 2165
-3968 -8189
--3107 -2200
--577 4064
-7251 397
-979 9968
-6235 6070
--610 -7634
-5196 -4227
--5764 -4979
-6005 -5513
-8580 -1259
--9044 -1576
--1323 -2794
--4028 -201
-8251 -6890
--6537 4246
--4307 -2052
--4430 8195
-4163 872
-4844 -9553
-853 -2210
--7319 -5474
-4194 6896
--6670 -8238
--5787 1266
-4865 8179
--4585 2141
--5993 1857
-7065 7016
-4769 7504
-9024 -2486
-2297 -3138
--9589 2677
-9106 -4834
--8130 -2614
-1830 -7697
-3004 -8726
-8986 884
-2059 315
--2913 -5721
-8471 6201
--2023 -5239
-681 -123
-2086 -5646
-9934 -3426
--2114 -9593
-9008 -7797
-5039 -1435
-2031 -5886
--7526 41
--808 4491
--2676 7452
-827 321
--1813 -5412
--9196 3314
--9215 4298
-7598 -6304
--169 4415
-9581 -5670
-8091 678
--6736 2274
--7486 -8788
--365 3161
-6293 3137
--5523 -6682
--3976 -4632
-2563 -3982
-4981 -3576
-3671 6666
--2995 -4806
--5917 -7046
-4083 -1354
--1513 -9289
--5863 -185
--4813 6209
--8164 -5136
-2476 -2997
-7723 -9664
--7287 -5279
-9037 6978
--8760 -9292
-3391 -7030
-6487 -8312
-5105 9596
-6817 8810
-3781 -707
-2784 7555
--6690 5905
-9022 -3924
-3335 9894
-9022 9804
-4912 5205
-887 5680
-6015 -4522
--5979 3405
--2735 -9886
--3711 -4696
--7614 9291
-3430 -2725
--1956 417
--9808 -2890
-7639 9593
-9906 980
-6280 482
--9797 -8812
--1082 -6640
--1119 -7904
-4740 -2518
--2094 7908
-1702 1515
--1324 -2238
--1562 -114
--4143 -9750
-8872 7021
--3509 2449
--6483 -8858
-1387 427
-4211 -6177
-8039 1397
-6584 2753
--4452 -381
--2481 -800
-204 -4973
-936 7123
-8713 5047
--833 -4403
-1012 1113
--7290 8621
--1495 545
--2187 9167
--2158 -4309
-5229 -2870
--235 -5335
--1047 5502
--6029 7089
--2910 7601
-3534 4092
-4458 -3668
-7109 2335
--8924 -1288
-1029 6847
-938 -5491
-7165 -9314
-9767 -6218
-862 4980
-7317 -1991
-1168 1106
--8668 -4465
-3156 370
--3714 9686
-7481 -8396
--6509 4508
-8023 -3740
-5705 5078
-7462 5772
--8871 -8506
--3508 8207
-1794 9847
--859 -3762
-2515 -1430
--944 -8094
-8502 -7982
-1096 -2813
--9165 5843
--1580 -7468
-7147 -4360
-9807 -8265
-1359 3063
--6659 816
--6366 1985
--4124 -6820
--3191 8497
-5523 -9778
--1581 2016
-4300 -6153
--5479 7958
--2131 -4148
--5296 -6751
--5103 2971
-7776 8546
--1560 9475
--4093 3127
--6447 -5882
--5456 4360
-9141 -7186
-4549 -5383
-7137 881
-1525 3987
--3327 6393
--7465 -9167
--5020 3549
--6123 -2998
-5310 -5778
-6450 6698
--9968 -7061
-608 6813
--6312 -781
-5477 5737
-8582 8860
--6548 -7888
--5060 -5753
-180 -729
--3743 -5710
-2581 2609
--3836 -6302
--7885 -6897
-5671 -8434
-2178 -14
-2821 2368
--1564 1999
-1683 8069
-9112 1613
-8449 -647
--7203 -4549
-8111 -9278
-3409 -5066
--6699 8912
--4165 7588
-2922 -1647
--1129 -9689
-753 7474
-55 -9036
--8358 -7567
--7793 -495
-7494 -1816
-6251 -1508
--3987 2950
-6171 -6655
--6613 -6142
--2811 6470
--3674 -9065
--6269 -876
--6808 -2184
--7655 -6447
--3991 -6095
-9805 -957
--1692 -2895
--507 -7564
-8775 5174
--5451 6353
--7791 3995
--930 -3271
-4595 3235
-2542 -3001
-7257 -7846
-7300 -508
-2895 -5439
-1894 8151
-83 -6038
-3790 -5419
--3914 -2715
-8091 -2339
-2148 344
-8660 2977
--9656 -739
-2407 -6490
--712 -5381
--8308 9659
-3866 -9128
--60 -7366
-6910 5176
-3715 8928
-1430 259
--9740 907
-5629 -2926
-6925 5255
--6821 -8869
--9083 -5297
-6228 4726
--9726 -2348
-6459 -5934
-4415 -5168
--6260 6547
--601 -6843
--1544 -4774
--6638 -4026
--2090 2582
-9090 -5900
-3989 -3838
--2148 2836
--6036 -7477
--1962 7741
-6579 -5185
-6397 2581
-5791 3143
--8511 1842
--5690 2195
--5850 2283
--1097 6728
-7924 1038
--8536 -7606
-4641 8660
--3841 -8287
--1462 7056
-4438 580
--5531 -4339
-1014 -3230
--8954 -7500
-6483 7782
--824 -2961
-856 -8107
--4266 -3957
--4675 -2100
-4403 5324
--6903 -356
--2331 9848
-8967 4726
--9457 9179
-5955 -9140
--5733 -7588
-8064 8973
--3855 5420
-5221 -8702
-5626 -1516
--1267 7440
-2309 -2693
-2090 3411
--5688 6127
-2454 6889
--1494 -6684
--9169 -428
-7257 7025
--7701 1034
--5974 -4985
-2280 -1478
-4042 9005
-4673 288
-5686 -50
--8692 -3885
--5072 349
--1492 3829
--8933 -6589
-3656 311
--4738 4495
--7405 -8976
--8480 1262
-8573 1511
-2203 -9540
-200 -6831
-1881 -3743
-6600 1268
-5913 761
-5772 -6176
-1572 1727
--7742 1199
--7614 4717
-1523 -8229
-6980 -3674
-6077 3609
--1931 -9460
-6077 9057
--5531 4710
-9518 -9280
-4409 3540
-9149 1682
-1717 -1142
-9415 7634
--3581 -5366
-7004 -1750
--1054 -2460
-7161 -6459
-5922 -79
-8117 -7439
-9024 -6135
--3274 -4738
-9346 -1774
-1296 -8949
-614 -3570
-3413 -9588
-3653 1023
-6646 4635
--7194 3078
--1813 4786
-3553 1153
--7053 2325
-6870 -843
-6113 -6871
-5667 3175
--7035 -7397
-165 9306
-9935 4641
--8918 1113
--2428 8996
-6838 -3766
-1974 4091
-1525 2015
--8474 9048
-1536 7168
--2986 -5324
--6050 5199
-2440 2732
-4995 -499
--4600 -5559
--4936 -1146
--521 -411
--1443 -1444
--1095 3958
--9729 -8611
-1031 -7678
--6673 -87
--9250 8144
--1358 8682
--8063 -5184
-8034 8583
-5975 -7803
--9539 7623
-3966 -4854
--6029 -1594
--121 -5615
-1164 5182
--747 -6160
-6579 3223
--3186 -6545
-791 2446
--2958 4917
-5706 8782
--7538 9871
-8653 -8482
-8101 -6908
--8205 118
-3104 -6223
-7816 7774
--6075 777
-1078 1994
-1953 3763
-914 304
-8334 -2781
--970 4143
-7814 -5412
--1383 6453
-9987 -4376
-9728 -4526
-5845 -7002
-8240 -4560
-3864 9486
--3356 8625
-3059 9976
-2852 -5531
--4665 4036
-5997 -9646
--2670 -3207
--7441 2649
--3883 7938
-9569 4909
-2706 -4201
--7163 4561
-5124 -3375
--893 6372
-1229 -5263
-4615 -3288
-5378 -3775
--1978 -3266
--218 9583
--6105 -7194
-7253 9769
-2866 3662
--5937 4275
--1280 7693
--4543 -2988
--8520 -202
--3349 2203
-5838 48
-7724 6805
--2734 -7085
-313 -909
--964 -5431
--3020 1604
--8770 -3732
-150 7397
--2344 9587
--1033 -5517
--1647 3804
--4303 2433
-844 -3961
-9195 9128
-9735 -8671
-8407 -2614
-8399 5806
-3599 -7407
-4871 3939
--5027 9008
--6800 4333
-7463 6580
--2222 9983
-4130 8529
-9317 -7232
--7578 1706
-7180 -3101
-2287 -7314
--259 -2004
--597 6993
-8448 4833
--1195 1986
-5123 7815
-6006 -2998
--6506 -3988
-9784 -8587
--3144 -4491
--5654 -6565
--9196 -9427
--9531 5226
-2606 5238
-7081 651
-8887 8999
-1677 3194
-4224 8642
--406 7109
-9630 1126
-174 -33
-2295 -2465
--604 3425
--8672 545
-1514 5085
--3863 -4529
--3466 3931
-7359 -2051
--2647 333
-5963 -666
--1541 9237
--4491 4958
-1465 6905
--8 -2685
--1252 4267
-2076 3743
--7683 -4794
-4755 -1055
--4180 -181
-5284 -6584
--397 112
-7736 -8566
-8247 5369
--8492 9530
-8133 -1384
-1033 -187
--9685 -4325
--9558 -2881
-9259 8568
-3143 3917
-5316 -4420
-507 -1511
--928 364
-1783 -7422
--1870 -9801
--3559 -7723
--9353 -7504
-8579 4587
-4388 2120
-2819 -5473
--9422 9963
--2541 -1399
--849 1911
-6057 -3415
--7681 -7265
-5048 -5646
--6821 5250
-8605 -2638
-8868 -3622
-4808 -5217
-6517 -190
--3702 9146
--4801 -3293
--7802 -7661
-1661 8198
--8306 -5495
--3531 -8954
-8720 -7062
--6350 7321
-2386 -8377
-6768 -7043
--5488 -6520
-1019 -5937
-3639 8576
--9511 911
--273 2054
-7923 -9118
--6533 4545
--4533 9173
--4078 -3334
-7755 9288
-5461 -4452
--4821 -9300
-5796 -6514
--7838 -7032
--7339 -7612
-628 -583
-372 7912
--1730 2974
-5217 -8431
--5212 2162
-9168 -1613
-8373 5138
--1780 -4678
-1396 -9717
-444 1286
-8387 -3309
-41 4974
-8036 6883
--394 6302
--9539 -2096
--4381 9332
-6629 7098
-7472 -2562
-4861 9607
--9593 4134
--4312 5450
-816 6806
--6834 -2730
-1361 5400
-9334 -3561
-6413 -508
-4158 5546
--9626 -508
--1822 -7794
--4478 -8340
--8497 1882
--5866 -3671
-4543 -5119
-5255 2044
-8671 -9691
--5931 -6732
--8853 -2994
-8039 174
-9297 5765
-1965 -4273
-6994 9423
-1794 1834
--3747 -5821
-6915 -4236
-8304 -9848
--9260 -8518
-1966 -7002
--5328 9443
--6533 -9475
-5831 -3040
-1000
-7082 -1504
-5483 9441
-447 1193
-7788 -8192
--29 -4922
--8829 -3955
-8247 6494
--5715 6664
--1839 6486
--6082 -5248
--9255 2214
-1795 -3751
--6983 8908
--1190 8951
-3865 1186
-1383 -9604
--9140 3145
-4580 88
-2847 6905
--353 -2448
-5655 -9350
--4309 6075
--4515 -5497
--6323 1535
-8471 5311
-5846 8365
--7430 -3783
--3082 -7897
-4086 2645
--1259 6080
-8152 5994
-1992 -3501
--4180 1769
--6305 5021
--850 8638
--3817 9740
--4656 -8924
-5737 9630
-8967 7003
--5851 -4991
--7328 -9869
-2872 8264
-4716 6211
-5529 826
-3773 5764
-8017 1414
--1181 6907
-7640 -1573
-2300 7285
--7808 9894
--7593 2042
--8415 -737
--2120 1442
-2130 4665
--2293 173
-6985 -9648
-976 -2231
-5168 -1508
-9963 -8110
-6149 4020
-9121 -1598
--4412 -7605
-2368 1919
-9151 9614
--2467 460
--7494 -2009
--9278 -6672
--396 -2506
-4604 -5675
-710 7820
--6656 -3666
--3264 -3497
--9700 -9237
--2145 4898
--8593 -8343
-6494 7113
--3306 5692
--5440 2147
-474 3015
-7006 -1051
-7015 -3689
-1925 -5039
--2824 2854
-5228 -9939
-1400 3394
-5041 7254
-6534 8292
-5572 9111
--4597 -687
-9106 -5844
--2865 2320
-6908 2410
-213 7025
-6889 -5336
-6363 -571
--9313 7053
-3981 4929
--2911 -5958
-3857 -2107
-5016 -8298
-1717 8141
-6026 -8750
--1687 6147
--1949 -6490
-1710 1458
-5381 6792
--3395 -4859
-964 -6732
-2281 -1470
--1104 -279
--4950 3780
-5991 -6391
-8562 -7672
--7635 -1983
-7423 -4351
--3276 -3027
--2373 9645
--1350 -7630
-9479 16
-7787 7467
-3122 -314
--1282 -7859
-9562 2463
--2471 7182
--7633 -6212
-4414 1180
-559 -9287
--1531 3104
--9514 -8130
--7012 1645
--9067 -3665
-276 6054
-2727 -4479
-7409 -8899
-7379 1403
-6693 9506
--3707 -4156
--1953 -3232
--6620 -4129
--6717 3628
--2629 6898
-9359 -5983
-9528 2416
--1760 856
--6588 -1496
--7174 -4858
--8031 8185
-5796 -6475
-8126 -5907
--4788 -2102
-1434 2228
-7828 5390
--947 9065
-7993 8289
-6266 7888
--7447 -8228
--6192 -5453
--6967 5283
--4352 1359
--5209 -5176
-5940 2487
--4821 9500
-5696 -2932
-2002 680
-920 -2302
--9411 -4652
--3354 -4957
-7969 -2928
--1142 5046
--337 -2808
--1814 6757
-7275 -1874
--3936 -7269
-8089 7597
-2064 -9490
-7932 2687
-7063 -6085
--3487 2411
-229 -5531
-7480 -9100
--1581 2938
--5492 5770
--257 -1163
-6554 -5365
--1449 -2338
--1442 5898
-103 -2117
-1361 68
-5315 1993
-7001 2368
-5432 -8155
-2816 -7642
-6996 2765
-8044 759
-3586 -3460
--2456 481
-8631 -3603
--6500 -6848
--3604 2231
--9728 4207
-848 470
-2902 -8500
--7561 4674
--174 5816
-9782 -7628
--1870 1401
-7560 2127
--3145 -3353
-7285 9645
-6047 2811
--2000 -124
-887 475
--5723 4552
--640 1687
-2808 8719
--9054 7601
--1385 -9742
--8900 3592
-2567 -7935
-5168 9531
-4185 -707
-8488 -3046
--8820 5203
--8986 -1105
-7454 5940
--4796 -1923
--8682 6674
--1629 9272
--2883 -9864
-2642 8464
--711 -8823
-1731 -7501
-8155 -8823
--800 -3857
-6538 5605
-1952 -5578
-3000 -9216
--4125 -967
--9761 8111
-5156 4313
--5169 7240
--116 -3245
-1027 -1467
--7932 5884
--3257 -6755
--2822 1229
--2491 -9258
-7374 2120
-3927 -9435
-3607 -2496
-4513 6713
-5264 -9254
--679 976
-6959 -4397
--3744 402
-2705 -2069
--7098 7166
--7217 3383
--8459 8723
--5486 3495
--1313 7392
-6654 -3253
--9614 -4620
--4301 786
--810 -7229
--8792 -2198
--1936 5345
--303 -6511
--3682 5686
-843 -8982
-3112 -1698
--2395 -1811
--4327 3823
-635 7774
--3656 -3257
--4641 3570
--8815 4553
-5622 424
--65 6878
--3949 -690
--8628 -4924
--855 2805
-9106 1730
-6612 9654
-2649 -6774
--3362 6314
--4149 -6027
--1257 -3055
-8015 -7036
--8658 -7058
--403 6714
--3184 -6511
--3272 9924
--8689 -8370
--8142 4211
-2420 -3977
-3043 -4772
--6213 1087
--6101 8059
--7777 -4538
-9007 1225
--965 -4507
--5746 6670
--3850 -1993
-2913 6589
-4443 -9683
--197 -8759
--4337 -9490
-5344 -2206
--9969 -5362
--2817 -6418
-3617 670
-7120 -2057
--634 9466
--4493 5082
-1653 -741
-3426 492
-5163 -9231
-5249 2550
--1838 5032
-4244 -2922
-6317 -2735
--2874 2009
-7479 -606
--492 9861
-2936 3586
--6028 416
-2739 3367
-4375 -6408
-6361 -4563
--1437 8022
--2130 -7150
-8593 -1654
--5666 -3193
--5398 8941
-9786 -7560
-9544 3126
-942 9051
-3982 -6723
--4471 -6105
--296 5976
--3947 -6616
-7269 -2997
--1776 5216
-4450 -9671
--4919 614
-4736 -3887
--2925 9243
--4404 2306
-3198 -8558
-5785 2993
-9938 416
-215 -6302
--8895 -7019
-6134 8553
-3413 8829
-1031 506
--7984 2584
--5322 7774
-1881 -30
-8889 7492
--1919 7360
--2927 6601
--5723 2537
--5828 3017
--4761 -3140
-8872 -1379
--3201 3190
-4872 -7494
--8091 4306
-9497 -9655
--3911 -8458
--2933 -7514
--9265 -329
--1852 -7678
--2068 -2409
--987 602
-7938 815
-7848 9969
-9138 3175
-5551 -4715
--719 -8855
-1317 254
--8217 2722
-4188 5270
--7101 1755
-8999 6259
-7376 7340
-6291 -9272
-9538 -6711
--8154 4292
-2772 421
-2924 -282
--4661 8601
-4806 -5118
-3678 -5861
--8170 8336
--7879 -7223
--9048 -1121
--1081 3095
--9186 2853
--7179 1292
-2444 1053
--3781 5066
-828 8251
-3585 4430
-182 -8462
--5614 -4562
-1409 -8652
-1805 5485
-6503 -4679
-4756 7410
--1583 3915
--9453 -1944
--852 -7792
-9233 3941
-844 -4024
-4953 -3195
-622 1895
-5670 -104
-7076 -3654
--769 -6235
-897 -844
--4378 -55
-4049 -7563
--3302 -505
-7380 -166
-5153 -8858
-6149 -9744
--2714 -7520
-3755 -895
-859 498
--2299 331
--8177 3949
-9898 9911
--6671 9535
-2045 -1593
--394 -3173
-9836 -1726
-5280 1707
-2665 -7751
-3998 7349
--686 8454
--5625 -5002
-7663 -5013
--1434 8620
--6677 9699
--9767 -6133
--7974 3807
--6225 -9445
--2258 9135
-60 -7639
--2721 -550
--4723 -1580
-3352 -5653
-1342 5005
--2443 430
--4671 -2871
-9378 5804
--6436 9936
--8985 7369
--919 -7116
-1922 -8671
-8186 9714
-8495 931
--6517 -4092
--4657 3867
-3726 -5010
-7788 -567
--8240 -4887
-7865 5384
--5165 9240
--7219 -6358
--3133 7405
--6338 -3641
-1228 -3759
--3672 281
--8692 4823
--695 3603
-96 -2968
--6169 9275
--5410 9568
-1802 -2910
-699 -1339
-8163 -1975
-3063 -4884
--3645 -2182
--708 3517
-166 -3579
--5408 7888
--3219 -4512
-4324 -2335
-2805 8084
-9347 2693
-5261 2688
-3360 -2602
-8453 5366
--7526 5606
-7487 4424
-2250 5958
-9499 -9048
-5762 -4975
--1485 -4750
--1151 -5627
--7364 -5126
--6128 -7262
-7870 3938
--5051 -3963
-7526 1750
-2449 5073
-909 -8670
-1791 -3306
--8440 -80
-5272 2766
-5435 -6265
--4507 -8449
-383 -2288
--3344 2482
--6075 1451
-2394 1460
-6466 -7663
--1255 -6760
-9068 -2340
--1678 5694
-9950 -5396
-6621 -5247
-3758 -699
-7020 929
-7436 -9510
-9481 3520
-2327 -4691
--2915 -5601
-333 7315
--5461 -6845
--1260 -9169
-5774 -3188
-84 1770
--4507 -8221
-4781 8286
--7684 1474
-2825 -4460
-4962 -8941
-9533 5273
-8975 2868
--7782 173
--6449 316
--192 4455
--3472 -2294
-7099 -4655
--6246 -300
--5507 -9808
--4671 -3645
-7347 2204
--6632 -2252
-3373 -3885
-9944 39
--2425 -915
-6138 -1135
--2084 8846
-3172 8200
--3758 -8547
-618 -327
--4460 -1651
--3962 -7825
-6706 -5716
--6896 7996
--7762 875
-5673 5259
--1083 -9285
--4230 3899
--2490 9747
-116 7888
--6341 -2445
-7354 1047
-6482 5700
-4932 -1157
-3323 -9888
-3526 -9227
-1439 -8102
--4529 227
-3182 4970
--1317 -4961
-2325 56
--623 -5704
--4548 -259
--3511 7380
-233 7795
--6671 -139
-881 -8464
-5973 6892
--6550 -8412
-3306 9871
--9407 2042
-9390 -6103
-2304 3175
--614 -1825
-6752 -1247
--5438 1861
--7101 3495
-7844 1512
-5364 -8360
-9283 8270
-7615 9117
-6346 -656
-9913 8728
--1456 -6900
-9341 -8889
-6940 8017
-4773 8956
-626 -2022
--8564 -1015
--7710 -1856
--6512 8481
-1630 -9022
-3509 -8553
-6397 -8441
-826 8191
--9754 2667
--5321 -3637
--2297 3705
--8496 -5294
--3064 -8580
--9880 2778
-6818 8250
-6778 7634
--8921 -5656
-592 -2979
--5390 2812
-1230 2888
-3596 4735
--7177 9408
--155 2147
-7053 150
--8836 8851
--3158 -7023
-9157 8734
-7921 7297
--2447 -345
-2030 4023
--7132 -5191
-1888 5065
-1035 -6481
--7189 -8763
--5960 3650
-3045 5315
--4637 -6716
-7676 3930
--7354 2961
-20 7768
-9294 5289
-6418 9567
-4955 8920
--1263 -1329
-6674 -1592
--684 6920
--3737 45
--7101 -5680
--6038 -8305
-3379 -3546
-1541 1410
-6461 1628
-8251 6831
-3711 -252
--7507 277
-1158 -2210
-1389 -2446
-2638 2811
-901 3679
--7838 -7002
--4933 -2433
-5634 -6173
--3936 -8481
--6520 -8351
--8485 -8567
--5120 -1504
--4868 5486
--8120 -8882
-7048 -6268
-9411 -6240
--9222 -3769
--7847 1160
--870 3259
-4625 1452
--1791 -1890
-2240 -67
-4713 6118
--3415 -7559
--5745 6422
-5802 8079
--8573 2093
--3578 3979
-9776 2104
--7929 5546
--5261 -2243
--5463 -5530
-3039 1470
--5633 -9120
-6600 8854
-6217 -1176
-5743 -4874
--5788 -9155
-7920 1803
--4449 6571
-10 -2969
-4450 6276
--8720 1406
--5313 5150
-8596 -609
--6716 -9780
-600 669
-7770 -2677
-4838 -5801
-5344 -5906
-3578 7054
--2870 8007
-396 6668
-7003 -5264
--2650 -130
--4926 -5671
--984 -6732
--4532 -4354
-575 -8264
-3183 -3129
-3401 -8029
--7529 -4796
--4156 -9397
--8516 -4758
--6266 1277
-929 4543
-8635 -5287
-5722 -9857
-564 -5300
--1272 776
--8815 2619
-6769 4162
--9025 -8802
-9321 -7423
--7432 -9170
-4542 8055
-3732 2459
-8824 6839
-2172 949
-8156 77
-5182 -4314
-2281 -4606
-5325 8647
-9508 -2625
--446 2125
--4599 1833
-4332 3589
--6899 1895
--5750 -2724
-3780 7007
--7922 7733
--9430 6750
--745 -1688
-834 9853
-1460 -2345
-9350 7522
--9304 1491
--5154 -8821
--7995 4111
--1929 6187
--8862 3476
--7876 9075
-8149 4997
-3102 -570
--4166 2608
-3090 483
--5119 484
--2963 -3231
-8039 5035
-9209 -3135
-7954 1005
-2705 1906
-3267 -1986
--8356 7169
-1050 1779
-9628 -7333
--485 -9078
--7944 3273
--3811 -5942
--9942 3310
--4970 3753
--6323 9710
--3095 7664
--8277 -6828
--829 -5748
-7638 -865
-1327 5146
-6833 314
-2887 -4483
-5736 -2486
--3364 4407
-6815 1586
--2196 6546
--7775 2798
--4803 873
-9016 -5347
-6669 -2033
--1087 4338
-4946 9391
--8970 9265
-3077 -6083
--1612 -1064
--4117 3624
--3545 -6733
--3414 -9038
-4925 4020
--2659 -1732
--4928 -9466
-6392 -6314
--5812 -9675
-9460 9989
--6101 -2418
--3941 9230
-963 -4792
--2413 4473
--3428 9101
--9943 -8857
--4734 -2001
-2831 -9485
--3958 -9463
-3797 -1520
--5212 9748
--1916 -8284
-6174 9910
-2630 -8209
-8523 -5816
-692 9954
--3674 4524
--1436 516
-9340 2163
--2577 -7663
--4830 121
--1572 -125
--8921 8916
-7688 -2902
-9345 -3664
-3574 -5656
--9237 6849
-4688 -9303
--4837 6388
--1217 8440
-8520 217
--2119 5191
-3521 -4116
--7853 -8780
-7111 6011
-6033 2524
--2967 660
-7038 -2924
-1992 4276
-3590 3086
-3057 -1306
--3260 7641
--6726 -2127
-4287 5775
-5858 -1772
--4388 -9566
--7516 7344
--4716 -4016
-4197 -3132
-9610 -2755
-3157 3402
--7404 -669
--8592 4655
-1603 5860
--3377 794
-2744 2928
--1442 -2924
-403 -2841
--745 5944
-8014 -8030
-6936 3039
-6380 -6143
--4652 -4569
--3510 9361
--6315 -2311
--5860 -8363
-459 9459
--1997 2804
--9109 -5322
--7104 9435
-5555 -3010
-2070 9658
-3871 1512
-6554 -3958
--9900 -9383
-3586 4008
-1209 -3506
--8590 5204
-3228 -1214
-2188 -55
--1093 -5379
--6179 2568
-425 -8323
-6712 2235
-631 6240
-8023 -3370
-204 8871
--9040 9669
-9411 3390
-5430 -3426
--9864 6153
-5505 -4674
-308 6169
--8409 787
-4467 5523
--2665 -3989
--8157 -8338
--3026 -7296
-708 -3616
-1049 -2507
--2250 -8557
-1619 1790
-6206 -8893
--9299 1220
-3457 263
--8899 -2763
-7138 9374
--6635 977
--5244 -6540
--2623 593
--8440 627
-2384 -3635
--9355 -903
--2675 1260
--8873 -7030
--5790 -561
--2911 -3962
-6988 -2161
--195 -4872
--9170 -6135
--3402 -5604
-8265 4799
-7898 7237
-3939 -8668
-4171 7524
--3988 2680
-6227 -9871
-9706 -1803
--9791 -9059
-6002 8735
--5316 2149
-8820 9364
--8654 9459
-4220 -7395
--4982 5174
--5423 8702
--2617 -174
-7087 -1601
-9768 -8255
-2959 -9432
-1199 6350
--3841 3844
-7411 -2618
--1986 -3816
-8337 -2200
-7872 828
--2270 -7863
--6236 1009
--4634 -3284
-5378 4531
-8838 5316
--5545 -8550
--7695 -3357
--415 8363
-7184 -2513
--7623 4108
-6001 6370
-2587 -4446
--3372 -7572
--4995 -8420
-9769 3791
--2995 4248
--6327 -4890
--6436 2514
-8236 -7636
--6601 4140
-8734 1011
--7277 -5046
--6680 -7300
-6468 4750
--1165 -8685
--5549 -8866
-1533 -2063
--6096 -8303
--4795 495
--5216 1661
--8901 -6281
--5805 170
-3053 7725
-7941 8851
-3387 4743
--6170 4571
-5512 -1362
-4413 -3547
-978 2362
--9262 -4496
-1000
--9989 8965
--9802 3823
-4075 8701
--4854 4735
-6272 -155
-642 2210
-8781 8869
--1850 -5024
-7492 2627
--2208 2200
--6670 -5373
-6920 -4854
--2763 -1065
--6753 -2623
--8419 -1433
--2535 7317
--5594 6527
-8980 2222
--7252 -2183
-70 -441
-221 6180
--4939 4038
-4122 7392
--7555 -5038
--1765 1964
--137 -4445
-1979 -6119
--5354 -3219
--4216 9168
-9505 -4541
--6858 4019
-5833 622
--3495 -4516
--4515 637
--3479 214
-2129 -8222
-7097 5031
-8123 -9712
--4355 -3503
-2032 2013
-1284 -3479
-2645 1727
-1376 -2578
--7547 -5291
-2230 4095
--5749 -8160
-6599 2364
-20 -348
-1678 -8696
-1264 6984
--206 2471
--400 -6226
-436 -3527
-4022 -6802
-54 -4577
--8483 -1284
--3872 -9669
-9738 5009
--7329 7521
-9322 -1902
--7919 3662
--9338 -4789
--8681 -7511
-3034 -3424
-8983 1801
--9550 -9852
--4978 1675
--7291 -9574
--8833 4210
-7197 3420
--6318 2029
-7401 9930
-6279 -3703
--1004 -5113
-8804 -9272
-833 7312
--6024 642
--7599 -7415
-4803 1646
-909 -3142
-6124 2115
--4110 -2907
-7302 -9761
--2658 -4321
-1902 3788
-6373 -2309
--3396 1713
-2108 253
--5307 8085
--9120 -8046
--8463 -6193
--8894 -4498
-283 9918
-2664 2861
--6438 -7108
-2388 8056
-9273 -8137
-9451 189
--6606 4273
-5045 9626
-7227 -6610
--702 8644
--1072 4885
--2006 1641
--2149 7267
--1040 -3207
--590 4706
-822 -4190
-4160 -5057
--9943 -5193
--8602 8962
-2635 6038
-2072 1105
--9777 5304
--2976 -4813
--6319 8560
-2862 -3949
--9279 -1612
--6121 -7561
--5685 9385
--3439 9050
-5886 5219
--7530 -3006
--9243 -4936
--2801 5170
-5407 2513
-620 -8089
--3588 -9400
-4928 -8862
-5488 -7780
--805 2065
-3162 5726
--1039 -5796
-8447 6599
--7044 -5082
--5622 7570
-7387 8669
--7143 -6778
--2556 -1831
--9137 8105
--9942 -850
-7362 -5958
-1746 8927
-4519 6469
--1454 -88
-6850 -7869
-4113 7429
-9038 -2932
--8183 8812
-1313 2560
-4350 -4023
-5263 8154
-2582 -9080
-7116 -9947
--8458 -84
--8921 -3598
-8872 9309
-3635 9940
--7764 6321
--3733 -3074
--6259 3861
-8440 665
-9898 -6380
--6992 9029
--7696 3655
-7196 7169
-2863 -6834
-4567 -7867
-7081 -1612
--6743 5160
-3095 -2224
-3078 -2257
--6473 -1189
-8891 -4011
-1956 6530
--9138 -4241
-992 -7388
-2007 -5938
-1689 9775
-5506 5035
-1108 -6984
-6827 -7157
--1480 6273
--5958 -8653
-3557 8197
--6397 -783
-9200 -2813
--8266 9565
-4220 -5421
--5634 2843
--5658 3702
-1736 8488
-8601 7833
-2698 -1255
--9436 5540
-2433 -5953
--7441 8347
-1536 8920
--8522 6534
-298 7709
-1178 451
-57 9357
-7020 -8136
-5569 1084
--6505 -3643
--8391 2039
-8041 -6041
--7306 -1165
--4264 8556
-4642 -9837
-2837 6243
-5756 -3980
-9172 2944
--5674 -2237
--4381 9376
-3062 -5652
--455 4728
--2665 2835
--7398 -5788
-4278 6327
-7884 -5724
--8023 3497
--7625 -5340
--4043 -2618
--3349 -258
-1566 -7888
--8267 -7363
--1667 -474
-3755 -6479
-4812 -7789
-4517 8769
--4440 4005
--4027 2569
--4889 4329
--2642 -5083
--5828 -4885
--2526 -9245
--3209 -2715
--7686 -3608
--83 -2681
--5071 2009
-3651 8396
--2388 8210
--5215 -6760
--1612 8226
--490 3396
-2400 6692
-3943 -5571
--2868 -1092
--1255 4428
-5979 6446
--7014 8383
-5455 -2423
--4706 -9090
--5255 40
--1017 1965
--1778 -7978
--4961 9186
-4869 169
-5593 6309
-10000 1625
-5000 -8433
--6382 4650
-5741 -297
-6984 -4685
-797 -7558
--3069 -7613
--6599 666
--5317 8090
--7813 1983
-1780 -1977
--6912 8391
-8643 7543
-5107 4199
--3326 6596
--2130 6890
--680 3594
-5389 1638
--9241 -2489
-9304 7553
-4915 -7836
--2737 -6585
-7375 -148
--5367 -8860
--1226 6377
-8302 -2911
-5511 5130
-4604 -2393
--8472 8754
-7987 -2305
--5805 -2408
--3905 5827
-7017 7699
--7437 4390
--4712 -5576
-6960 -2063
-5025 5489
--9415 -2716
-5438 7705
--2577 8073
-2401 5466
--6983 -6879
-9902 6260
--8657 -6150
--9961 -5538
-4068 -8300
-6847 -4333
--8173 -1681
-3379 -3481
-118 -6484
-3172 -4761
-2370 -9268
-5349 -8099
--6015 -1544
-6511 -5936
-5045 -1300
--6779 6686
--1305 -6414
--7193 -9718
-3611 -2574
-6353 -2175
-3440 -8881
--7491 -7137
--9516 279
-9299 -6396
-633 771
--7524 5638
--9393 9789
-2306 -2547
-7049 -5167
-8473 8040
--4429 -1857
-721 -5396
-2676 -1680
-8476 7528
--6196 7299
-5561 8772
--5499 -2395
-3139 -7594
--4106 8289
-4448 -5349
-6305 -7186
-6417 4221
-8112 2415
--340 9464
--5795 -384
--8099 -566
-6151 1460
-437 -1481
-8330 -1901
--7119 9093
-1508 755
-8738 -4646
--6471 -3317
-6116 4828
--8460 8365
-1191 2427
--9801 5243
--8160 -3917
--9853 -4793
-1225 3421
-8985 -5209
--5480 -9710
--4993 -8185
--6004 9311
-3440 -3445
--8041 -6453
--3888 2342
--9870 5565
--1887 -5520
-3484 9916
--1222 7291
-1841 6291
--9138 8007
--1450 1377
--9208 -3494
--1559 8200
-3870 7588
-426 -5247
--9768 395
-9546 -8239
--1580 239
-4481 -1812
-2198 -7441
--9469 6140
--2574 -1288
-9989 4586
-9296 7710
-2651 170
-5071 -675
-2538 -8082
-4644 -7755
-5993 -2125
-2992 -7610
-6602 1867
--5195 -3575
-7342 -6708
-3188 -7325
-7583 -7713
-5238 9176
--5840 2119
--1961 -9519
--9776 2294
-4219 2305
-3500 -1987
-5376 5378
--4488 1477
--6909 3794
--4556 -5414
-6990 1958
-6835 9354
-600 -7187
--9609 -6055
--5666 4179
-6525 -7472
-8718 -3767
--4302 4850
--3288 -2210
--6670 -4727
-2460 2690
--1077 4491
--1816 -6149
--7126 -4447
-8513 -3763
--9122 -7843
-5457 -8235
--5944 -1748
--9742 6102
--7168 -4684
-8932 2211
-7636 5460
-7209 -6319
--7818 6843
-7035 -8403
--9361 9689
--3820 189
-2959 391
-543 -6207
--3433 -8986
-1931 -6101
--4017 -9093
--7290 3593
-6856 -7696
-9430 1432
--8971 -4391
-4497 365
--1760 -6563
-9157 5018
--4744 2309
-616 9177
--7849 -635
-2365 -277
--2283 3528
--8282 6308
--4471 -5512
-6774 -1145
-5210 -2688
-495 -1750
--7495 -4939
--1168 -8802
--9979 -2913
--1296 -2887
-3719 5375
--4527 2808
--8555 7367
--6808 -4568
--2794 -6152
-3774 5981
--8003 -7784
-499 8562
--5458 870
--8736 -4185
-6619 -8731
--3245 -257
-5040 3658
-4281 7255
--228 -6478
--6724 4504
-4447 -3327
-8987 3221
--9482 -7206
-6289 4188
-6485 9832
--6725 -4263
--2868 6770
--5713 2451
--9732 386
-6996 5208
--4473 795
--1622 5441
-2334 -3096
-5 -9765
-1897 6327
--6559 6193
-2747 4281
--4608 -7162
-3826 9717
-7615 8780
--6715 2055
--7493 5590
--8445 -9571
--9939 3234
-9606 2315
-5463 785
--5488 -3983
--8146 -6932
--465 3942
--4405 -7457
--9880 -6252
-691 8064
-5516 5946
--7554 6140
-6444 -5339
--2508 3197
--8723 -4880
-7550 -3336
--4037 2952
-2068 185
--1609 -3576
--5071 4812
-2363 8085
-6944 8568
--520 4865
--9542 7091
-4442 -18
--7745 -4634
--6621 -9346
-9828 -153
-9576 -7917
--9472 -3204
-7328 9627
-6883 2750
-8181 9214
--6989 -4748
-1038 -5295
-6080 -8537
--7094 -9733
-2813 -8529
-2911 3014
--7875 875
-9213 -6892
-5614 -6775
--4877 9942
--4493 -6021
-314 7245
-8556 -6181
-7389 5650
--7776 -9257
-6684 -8503
--2077 3022
-3595 -1606
-8758 -5648
--6228 -4681
--8030 6147
-7173 -4995
-9693 6798
-9835 9097
--8090 -2929
-5334 -7378
--2525 -8940
-2688 6551
--3032 4446
--6372 3138
--5664 -2462
--1980 -9872
--3476 -5951
--6180 7257
--291 -1821
-2058 -4775
-4897 9356
-7502 -9067
-3644 3840
--2225 -1894
-6224 9019
--5723 -1889
-4980 -2580
--2768 -3549
--5813 9745
-1066 -4956
-3203 5934
-4539 8929
-3899 3505
-3072 1974
-8505 1254
--9807 -5139
--9577 -9722
-5993 -2225
-1305 4301
--8741 5942
-486 -3270
-7883 -2868
-8162 4777
--9277 -8408
-7193 9488
--3619 -2029
--5334 -8491
-5366 -3133
--4312 -9005
-5697 -4181
-3319 -2975
-6228 7949
-1843 -9835
--4150 9955
--3024 -8095
-466 -6346
-8219 -1588
-5710 5664
-9916 -6046
--2679 -8528
--4446 -6097
--8134 9139
--6475 -1750
--6775 -8104
--6609 -8849
-9378 8668
-7401 -3158
-222 -148
--6988 -6827
--1458 3638
-8091 2188
-709 4009
--4772 -3303
-2073 4133
-1701 -4670
-5165 -3490
--9342 4180
--857 -6079
-4213 1504
--3662 3749
-8183 7681
-2247 -5644
-8274 -2562
--4249 -7192
-2285 -5358
--1223 -4704
-8840 -8400
-3846 2407
-1605 -5101
-5797 -8444
-4941 9110
-7431 4790
-3031 -863
-5141 8829
-9398 9727
--5997 -1120
--4887 -3574
-2759 8729
--3705 1232
--6274 6394
-1029 6861
-8850 -8527
-8223 -7630
-7640 9581
-3293 4652
-9021 2508
-5065 -1611
--3744 6727
--8383 -4070
--9004 -8587
--9231 3667
--3274 -1362
--7044 9817
-3822 -1334
-2642 -3737
--135 4004
-2029 -8452
--5560 -2212
--4619 -9367
--9370 -1381
-2554 1099
-1636 8828
-743 -3749
--3522 2687
-9316 -5352
-6225 -2689
-2132 -1603
--5098 3358
-9157 -7040
--7144 1389
-2673 -568
-5302 8963
--2123 -5039
--3048 -3791
-6449 -2118
--8863 -6566
-3007 4439
-1477 187
--9928 7519
-1351 7803
-6129 1733
--5745 -5395
--4805 5213
-5086 -3736
--4260 -6914
-4795 -9103
-6550 -7241
-6176 -647
-2715 3136
--9799 7065
-4093 5182
-3749 209
--9422 7137
-9031 -1166
--8605 5245
--6578 -3187
-9581 2520
-2644 8067
-8325 -992
-9626 -6944
--7788 -2100
-120 -3998
--5683 -9043
--3452 -5116
--3156 8859
--4332 -1956
-1112 3636
--3573 9780
--1569 -3329
--4560 -7257
--9657 991
--742 1015
-5471 7436
--9704 -8490
-3741 3973
--3672 -8881
-3948 -8276
--8238 5181
--4524 -1870
-5029 7615
--2328 -1969
--972 3947
--8352 8533
--3385 -2829
--7969 -2935
-9474 5314
--2671 -6645
-4557 -1914
--8900 -4442
-433 7848
-3232 -1055
-8311 -537
--2025 -5352
--7535 5795
--6522 -2813
--1802 -7902
-2109 5987
--6355 1078
-123 8824
--9361 -8529
--9670 -6313
--5280 -1875
--7830 -6768
-6316 -4822
--3285 -5156
--1221 -5159
-1678 9637
--1336 2244
-3240 8468
--868 6280
-1693 5647
--9155 -4501
--6357 -4490
--7167 7513
-7907 -9966
-9162 2168
-5650 2760
--8569 -7818
-8343 1121
-9376 9087
--5252 6131
-6936 4777
-4902 -8996
--7654 9190
-4242 -7280
-8178 -1598
--1387 -958
-5470 -571
--3575 5311
--8536 -3721
--2429 -6543
-6187 -6438
-3719 -248
-4312 -4391
-2967 -1462
-8139 3046
-3578 3265
--1594 -3141
-7377 -9999
-5998 3542
-4478 8987
--6445 8182
--342 5707
--1966 -9874
-1358 8018
-7564 -3047
--3975 -3728
--9825 -4018
-7733 8734
--8238 -9642
-318 871
--7190 -6173
-6274 -61
--5338 6034
--3863 1922
-5755 6517
--3925 -9442
-8257 2175
--2477 1800
--1674 -4115
-9301 767
-3041 -8907
--5864 -6898
--5420 9367
-833 2237
-1105 -1367
--3699 2081
--3817 1351
--3623 -2099
-3482 -965
-6152 -8118
-8652 9724
--9205 -1281
--9603 6912
--8128 -3719
--7401 -2111
-613 -5507
--4702 -8731
--7955 -1110
--2876 -4282
-6689 -1888
-7079 6064
-1206 9775
--6652 -4704
--3070 -9078
--4608 -4548
-3757 -1915
--4106 9013
-6058 8816
--7820 -3272
--8982 3255
--4398 988
-142 7976
--8228 2833
--8690 5648
--8792 -9393
-6864 199
--6360 -1502
--8006 -3606
-5411 -9808
--3812 7378
--4786 -5921
--2865 -4124
-6245 -7193
-2521 -5725
--5193 -1729
-6066 -9243
-4023 -7564
--9634 -6507
-3067 3797
--8361 5904
-6948 -528
--8910 -8692
-3570 -1403
-8601 -1714
-6541 3465
-2233 -449
-6252 -1962
--5638 -6295
-3846 7396
-3761 -545
--1487 -968
-5736 205
-1884 9938
--5358 -3499
-4715 -8571
--4978 -8470
--9273 8788
-8189 1353
-839 6564
--7388 -488
--8098 -9264
--2661 -995
-6834 9976
-7483 9750
--1167 -4724
--761 -8014
--3992 -7732
--1412 -2363
--5927 -913
-7205 8029
--1703 -2987
-7795 -6908
-3778 -3602
-4754 7760
--3604 3466
--6413 -8715
--7071 -340
--2348 7064
--5858 5695
--8712 2031
--8356 -8140
--8193 -2153
-7340 1879
--3836 -6115
-6843 8633
-3836 -3212
-8518 -7616
-2895 -5846
-3354 3386
-3642 730
-9596 -1579
--8216 -2586
--3613 -1800
-5859 1952
--4909 -8948
-6546 -1635
-143 -8931
-5067 6826
--2854 -3706
--2631 1163
--7872 -1097
-3623 6249
-9969 312
-8787 -4398
-7814 8393
-5814 355
-9085 8976
-4423 -298
--3957 3338
-2888 8162
-4886 1150
-3696 -6535
-2632 -4448
--7795 6366
-1517 5694
--252 -2765
--1562 -2530
-5019 3525
--9986 -5242
--4622 -7655
--9649 -1726
--9045 -5247
-2340 -2572
-1655 3338
-8069 -3285
--5222 5889
--209 2369
-2618 8697
-9619 -9708
-8921 5638
-6195 212
-4285 9737
-1687 3827
-2440 2280
--9899 7335
--9332 -4572
--6256 -6382
--5725 6081
-4469 -9106
-1971 -8446
--9317 -3982
--5301 2996
--3032 5713
--9237 4460
-1334 -4441
-6510 -7896
--394 -2935
-3803 -4154
-485 4321
-3162 -8755
-2054 -6975
-8693 1287
--1406 -7520
--5214 -2805
-7769 6539
--212 156
-5049 4748
--9847 -15
--4039 9313
-5222 5194
-7779 5038
--3915 7705
-920 8949
-6003 -1274
--3002 3076
--5535 -4455
-8344 -3304
-6004 4504
-1457 -7192
-2349 3454
-5348 9932
-9597 1855
--6374 3806
--2161 -7830
--4930 4211
--8053 4513
--9922 -4766
-3658 -7979
--5614 -8060
--7007 5748
-1000
-7025 -117
--9194 -4261
-6057 9197
--2461 -9593
--9493 1678
-2448 1807
--574 -543
-1130 -3729
-7619 -599
-5248 5681
-5883 3225
-2930 3399
--9852 -7886
-9427 9959
-1930 -36
--2266 5036
--1376 674
--7610 3169
-4776 -8632
--616 -8034
--606 -6611
--8953 7287
-2617 -7766
--1185 5451
--435 1939
-4211 -3282
--4431 -9269
--5319 3528
-9959 6443
--4918 1517
-5598 -2162
--6501 1763
-7958 -3461
-4504 242
--6220 -8829
-3255 -2400
--771 6115
-7287 -9347
-1185 -8957
--2904 -9598
--7982 5081
--382 -6441
--7836 9500
-6128 3721
--7258 -1775
-8633 4533
-6942 7152
-7471 -629
-5975 463
--1791 -2856
-348 -4391
-2617 -7426
-7283 7341
--1239 9003
--433 -3394
--4826 3156
-7235 1008
-338 4185
-7692 -3422
-9429 -2168
--699 1803
--1802 5060
-8459 6474
--7087 -460
-2959 -5790
--9140 -6735
-7077 -4596
-2139 -8180
-6285 6329
-3396 -9173
--4565 -6825
-1113 9054
-7051 2835
-7343 8914
-3895 -6950
--2662 -4508
-8615 -4817
--4434 -3743
-870 9672
--8793 -956
--400 -5098
--6768 -3090
--5941 8754
--1681 1423
--6769 2373
--9478 -1206
-5807 9755
-8194 -4523
-784 -3652
--6049 2603
-8694 -8653
-5337 -5685
-5311 1674
--6057 9026
-6010 3432
-6578 8284
-4885 1578
--5177 1795
--3759 6204
--9598 -8114
-2519 -7413
-477 -3628
--4592 -2427
-5279 -3417
--4177 6564
-3217 -3086
-4180 -9002
--9615 -7449
--917 -2855
-8507 -2289
--9499 -1485
-9534 2116
--9713 2249
-6336 -3330
-7524 -7764
-2453 4247
--8681 1808
--363 4557
-5373 -5896
-9699 1945
--4473 546
--2346 113
--2819 404
-2261 9070
--2104 6996
--193 -7214
--8934 9683
--7272 -2199
-4673 -7889
-4154 -2027
-8476 -6902
--6413 5410
-5636 5496
-4682 -7680
--9100 -5679
-5712 3454
--2184 4551
-2490 1018
-3832 -863
-9667 5721
--516 7474
-8816 -5689
-8332 6775
--7565 -234
--3277 3873
--6361 1921
-4601 3363
--727 8024
-9759 -942
--449 -5694
--8622 -5306
-8019 9445
--4722 -5418
-7852 -8121
--8912 1899
-9322 -7223
--8677 1717
-9367 -7098
--5364 -7561
-7194 -7242
--5155 2941
-2855 1082
-5775 -4211
--3128 -6110
--3440 -1853
-7318 2884
-8246 6096
--3115 8996
--7471 -4029
--4503 3417
--4800 2398
--1347 -3858
-1736 -4256
-9796 -8819
--5936 -1022
-743 -991
-6136 -8690
--2749 -836
-6756 2412
--7972 4074
--6327 3131
-1813 -3678
--6103 -6263
-7178 -5048
--8594 5799
-7578 -8010
--8986 -1039
-8161 -167
-732 -5118
-541 5010
--1264 -7526
-4254 -4601
--7296 1565
-9267 9814
-2888 7072
--2728 3869
--8447 8049
--6515 4835
-1841 966
--312 -2622
--8835 4717
-1005 -9060
-7334 -9357
--5795 1596
-3049 -5751
--942 784
--4252 -463
--5136 6943
--1664 -9662
-4697 -8459
-9080 -859
-3104 -6669
-1927 2285
--2401 968
-4209 4457
-9176 6846
--7991 8563
--8824 -3608
-8194 9831
-4650 -9174
--15 8284
-2467 305
-8336 1063
-7507 3172
--8508 -144
--3883 -9241
-2678 -8872
-773 -4684
-7396 -4921
-7712 -3709
--9594 7836
-5246 8789
--3086 -1696
-7313 -9592
-9136 -9339
-3623 -9911
-3549 1363
--349 4266
--1410 6109
--459 -5438
-5854 3242
-8179 -7118
-6497 -7467
--4950 7716
--1051 -9085
-8618 4252
-459 -3190
--9545 882
-7580 733
--299 -5570
-9317 7896
-1679 6426
--7668 -5220
--7355 -7029
--8372 -6168
-7815 8304
--4480 1668
--531 -2746
-7175 -5733
--7107 -7973
--9579 -7527
--9621 8008
-5768 4470
--659 -7814
--1217 436
-4145 5719
--3113 -959
--4330 -6151
--3758 9822
-9289 -6044
-2630 -2859
--8586 -7293
-5242 -7933
--8249 6205
-1449 1605
--6021 -7952
-4175 -2680
-3412 7169
-3364 -8429
-6108 5686
--1292 9312
--7298 -8593
-4033 1811
--4332 7677
--9011 -9111
-1877 861
-8258 5695
-3733 -8692
--501 -7254
--2326 6594
-9592 -424
-4001 -1431
-4300 -6118
--8060 -2780
-3750 3335
-9471 6459
-5553 908
--3740 7062
-1784 7449
--6386 -6406
-6326 6288
-3260 -834
--6418 1704
--5785 160
--9088 9594
--5965 4690
-9784 -1358
-785 8249
-2581 4550
--5073 1841
--7793 -9994
--9396 -2477
-6907 7628
--6414 5136
--4714 -4467
--611 -4525
-752 4961
-2054 9488
-2250 -4504
--4276 2113
-4899 -1871
--1280 2426
-3551 7403
--9444 -7048
--5100 5283
--2966 1697
-614 902
--4080 1437
--7425 302
--1553 -2991
-3429 1188
-9369 1327
--9507 7778
-6995 -647
--8695 5805
-9055 -6476
--7943 635
-9944 -4378
--3545 -9132
-8224 2812
--9005 1892
-5320 7024
-7787 -7112
--6733 -4642
-1137 -6565
-9292 1744
-1571 4591
--9768 7917
-2206 7161
--4036 7800
--1583 9073
-8626 372
--5177 9053
--5910 -4822
--3972 -7539
-5867 -7139
--3501 356
--6851 6836
-7177 -3785
-9215 5817
-1943 -3978
--9151 3863
--5833 -3794
--9034 7064
--3856 -1560
--7601 -9455
--4186 -5282
-4611 3306
--1478 -697
--1174 -8548
-2540 -7172
-1999 7834
-2026 4197
-5879 -877
--6898 -5612
--3837 6608
--1157 -6764
-2030 82
-8783 -7045
-30 -4620
--2177 -5125
-3693 -2566
-2582 6100
-3887 7953
-7729 6165
-4855 6216
-5004 4251
-9200 -4585
--1286 8433
--4713 -1070
-6322 -9791
--3903 1620
-2861 4664
-5201 8555
--8048 -8864
-3396 8295
--9046 -4953
-6112 3289
-9818 4654
-7045 7260
--3171 7624
--2291 7094
-1060 815
--8339 -7124
--6 8594
-8444 5123
-3845 5180
-3743 -8989
-1235 2759
--7048 8324
--1011 949
-9927 5162
--3076 5596
--1344 8961
--1195 -380
--3095 -6036
--6934 -28
--4544 -6282
-5768 -2395
--6903 -4128
--9134 -3639
--4299 8552
-1228 -6497
-3476 -5379
--9538 7960
--2474 -7858
--8243 7330
--6688 2491
-4185 4255
--6388 6607
-6396 -4984
-3794 -1364
-5730 -2442
--766 -2093
--834 3583
--959 -3673
-3292 8739
-9624 1169
-2671 -6611
-4713 -6636
-5191 7221
--1273 3324
--414 -9499
-7181 8563
--8373 -9504
--2607 -6105
--4503 6262
-3854 -825
--4595 -7865
-6974 2940
-2123 -3000
--5570 2016
--6204 879
--9942 3618
-8089 -7456
--7052 9141
-1803 7045
-2141 4839
--313 -3679
--2230 -1364
-9895 2814
--1604 -8025
-4840 -3211
--8263 6206
--6063 2507
-7412 -9808
-7956 -7819
-6309 9945
--851 9103
--3900 -3708
-194 -7992
--5245 -902
--1956 -1240
-1034 2761
-9428 8150
-8496 5084
--2931 -1248
--6139 -1079
--349 -3309
-8333 -326
-6413 -1453
-6768 -6247
--283 -2586
-3446 -6258
--2113 -6217
-6122 7758
-7640 7397
-3166 7691
-4468 -2267
--8516 -3772
-8473 7495
--99 -9596
-8248 5601
--9040 -7933
-9166 -4764
-7404 2954
--4095 -1008
--8462 -1392
-952 -6662
--8162 -3767
--2969 173
--4455 -6400
-3414 -3582
--457 5705
-9470 -475
--1384 1773
-7747 4455
--6474 -2807
--309 -2183
--8 6138
--8671 -3372
-37 1626
--5948 -6257
-3046 -181
-2937 -9968
--3804 -2047
--3860 -5809
--3447 -245
--3380 3707
-4981 8760
-9661 4205
-2199 2322
-5960 -6611
-3596 -7155
--8805 3623
-4936 2583
-6948 4500
-8943 279
--8571 7485
-8516 -8016
-9812 2423
-1545 -8590
--1082 6214
--5098 -4317
-8102 2411
-5543 3470
--2799 -8808
--2299 4277
--2176 4906
--7484 -3437
-5987 8040
--6067 -3195
--6032 8396
-5222 8498
-9326 -4788
--4773 -4200
--4235 1750
--6423 -6835
-4602 9983
-7512 -1149
-9318 5580
-1692 -6723
--6217 -4922
-6670 -2724
--6723 -9725
-485 -9698
--6265 1762
-7308 -8815
-408 -6497
--8901 -4560
--6268 -393
--5756 4693
-8052 -9586
--835 7678
-303 -272
-1038 -9994
--91 -7572
--2323 -9481
-8508 7145
-9212 -30
-4522 9562
--6664 866
-5371 4476
--9566 -7566
--8016 1704
--9064 -6413
--2220 9595
-3696 4438
--1354 8490
-6648 2800
-806 -2233
-9454 -9500
--7631 -3269
--3211 4433
--957 -5246
--2006 -9451
--8902 -2837
--90 -7000
-2082 -5188
--9376 -3365
-2129 -5475
--8441 6795
-5805 9622
--5866 -8957
-8134 1293
-2492 6266
--1153 4481
-963 3667
--277 -2462
-5127 -6925
-5990 8258
--6574 -5058
--7694 3593
--3872 -163
--5261 -1597
-4478 8227
-4543 -679
--5249 -6527
-8133 7506
-1862 8548
--8060 2173
-7419 613
--2014 6036
--4902 3554
--4617 -942
-6382 8066
-828 -895
--5261 -2114
-2572 8542
--5969 9712
--7418 -7194
-4991 -1428
-3284 -1677
-7008 6655
-3118 9814
--9567 8331
-6807 -5173
--1900 -9399
--6564 -4539
-9944 8312
-9485 -8341
--7744 1729
-5387 5297
-6157 -1060
--9021 580
--2843 -6200
--5269 6218
--6901 -8985
--1685 -3046
-2956 -5245
-9470 -4142
--8304 3518
--1155 -9310
--631 -6104
-5806 -9654
--1623 4169
-470 9877
--1252 7797
--2129 -6348
--9140 -4422
-4183 562
-917 732
-9653 7860
--5738 4284
--3604 -7449
--3418 -1055
--6076 3804
-8174 7310
-6629 -491
-1564 -1582
-1647 2250
--9209 6411
-8104 -224
-2648 2812
-3862 -1990
--1500 -8756
-5785 6760
-5519 7209
--2238 5761
-8217 2959
-8655 3078
--7169 5238
-442 -8052
--326 9524
-3908 -5753
-2686 4759
--1855 -8585
--6653 3697
-4621 2499
-6766 5070
-2407 6828
-4235 -9554
-7326 7324
--2351 -6347
--7855 -2639
--7375 9492
-7302 -9144
-3490 7297
-5502 -7572
-1413 -6522
--8329 -9689
--4886 6052
--9139 -8828
--717 -856
-7085 4889
--7781 -728
-8597 2016
--399 -7735
-3949 -8297
--578 3088
-8942 5326
--6739 -5520
-2187 8368
-4767 -8539
-114 8392
-674 7394
--42 4467
-1892 -9150
--8551 -5165
--6006 -8549
-2194 2639
-7265 -4208
-4069 2460
-1945 -2535
-1578 -9190
-2674 -7509
-6247 -2031
-1268 -2394
-8152 -2850
-9613 4428
--989 -2753
--4174 -9673
--9456 -377
--8050 5000
--175 -7062
--1374 -2682
-5109 -3570
-9459 2945
-1831 4749
--4659 3769
-3436 -8866
--7291 -106
--1283 -9652
--4890 -3191
--391 -7902
-3923 6755
-7316 -4075
--2269 503
--4796 6736
-7120 -4757
-717 -9540
-1108 2990
--3919 -9581
-3874 -1068
-7877 -1497
-4808 -4026
--1056 1826
-598 -5103
-3932 2009
-7253 1123
-2390 8478
--2250 4054
--4816 7848
--7872 8540
--5764 9017
--8614 -7620
-9695 -1545
--3431 3885
-8777 7650
-6842 -3173
--3245 -484
-3574 -4865
-8724 -6370
-610 -3452
-3244 5665
-7716 -6690
-4425 -6481
--6212 9308
--5640 2289
--7835 -3420
--2632 -9449
-5604 -8901
-2129 3224
--9000 7744
--7525 9754
--4499 9130
-513 54
--9782 9117
--5093 4234
--7655 9551
-2958 -3938
--5709 -7641
-3954 9755
--1537 -9813
--1670 920
--1039 6372
-5533 -4499
-8814 2651
-1193 5626
--2282 -4080
-5054 -4854
--2109 4801
--8460 -8402
--1536 8867
-3338 -2099
-2505 -8627
--4636 8966
-4107 1923
-4234 5739
-3667 -8998
--7511 -2145
--6137 3398
-2176 4561
-8744 2587
--2897 -1632
-3403 -8172
--386 6691
-229 -2756
--541 9816
--3099 6834
-8162 8147
--9037 -803
--1843 -7050
-8296 6872
--7878 -6750
-1084 3714
--6653 687
-6072 3450
--3585 -8686
--529 -6665
--477 8294
-2776 -8698
-3186 -7769
--1023 -6463
-2107 2089
--1009 -1117
--5278 -7229
--1114 -2353
--8068 -4861
--5258 -4808
--9272 7167
--784 154
-6684 2570
-5457 3279
-652 738
--3206 2600
-3065 9240
-9019 1312
--7154 -3183
--9257 -8973
-5501 -7384
-4804 -4042
-9727 9031
--2105 -4479
--6286 615
--7198 4205
--9112 1145
-8409 -8235
-1941 3104
-9086 -1453
--5429 -8950
--2774 -8248
-3619 5837
--383 9786
--292 -8506
-251 5689
-3793 -3193
-5351 -866
-5597 3511
--6373 3804
-5198 -2845
--616 7759
--8954 5053
--9598 3629
--7066 4403
--2789 4171
-9078 7582
-4709 615
-3553 855
--780 1579
--5697 -8373
--6425 -1467
-8576 3788
--6523 -8427
-8566 8506
--3358 -78
-8641 9002
--8385 8945
--1465 -5944
-490 -9432
-5355 6421
--1710 -436
-1050 -6905
--9696 -4845
-1394 -8460
--3670 8150
-2116 4372
--5478 -2596
-8085 6323
--7987 4225
-9665 9135
--6655 -5852
--2492 2007
--9511 8858
--1456 3116
-6646 -5422
-1971 7050
-9624 -8251
--3621 209
--8433 -5104
-5849 -8533
-9153 4255
--5640 -3415
-3912 -712
--164 -8541
-5309 -4637
-4208 -969
--738 6347
--7890 -6659
--7278 6735
-1571 -2122
-8077 -1520
--439 9629
--8818 2922
-6341 -9384
--6017 8140
-6733 -8515
--4037 -5102
--1722 -4296
--7326 5507
--9405 3197
-5092 -8253
-6110 5895
--8124 8867
-4545 -2242
--3982 -4433
--7111 -3330
--3815 1160
--8521 -9800
-4387 -1293
-6356 -1888
--3532 -8732
-9209 1743
--9149 -1884
-7507 -9749
--8362 4867
-8266 690
--7888 7957
-9169 -1045
--4930 -2685
-9950 -4453
--1534 -1330
-4233 -1561
--2123 4340
-6957 1427
-4329 -1067
--2759 6186
-407 4072
-1271 -6983
--6052 4717
-2398 -1948
-5262 3955
--8976 6461
--921 -8092
--1865 -6112
--6835 120
-606 2548
-2538 -621
--8290 2256
--3514 5078
--7886 4401
--6715 -8102
-2624 -6301
-4750 -4102
-8529 5672
-7840 -5851
-3974 -40
--2225 7215
--2434 -9887
-16 -9072
-3175 -7808
--374 614
-1811 7398
-2835 -6336
--1095 8626
--9938 7247
-5475 -6078
--7033 5869
-1398 3660
--8146 3502
-8673 2385
--7999 -116
-9929 -6378
-5162 -6226
-2508 -9992
-1636 -206
--6441 -1641
-1237 9504
--332 9606
-5305 -4656
--3780 8249
--2127 6525
--9522 -3599
-5458 -5235
-2327 -7124
--94 7023
--3539 9482
--9681 -5514
--7740 -6415
-5267 4404
-600
--478 -6108
--7931 -8257
-5437 2598
--4905 2017
-338 -7003
--234 9945
-8183 9397
--7404 4325
--8663 -6162
-4135 2082
--6283 -1974
--8533 -5937
--7827 4585
-2804 1567
-1763 3950
-9289 7850
-738 -9279
--282 4195
--6635 3180
--4088 6818
--6183 2259
-8846 9284
--5238 -4172
--7046 -635
--9854 7824
-7117 -4078
--6261 3804
-5209 -3374
--2633 6502
-83 -1861
-481 -2806
--6492 -1582
--3939 -598
--4719 7694
--7256 -1906
-5724 -7608
-492 3501
-2172 -4842
--5596 5923
--6670 8847
-1334 2929
-964 434
-2545 8797
--493 -8474
--6451 -3851
--7197 -5872
--1127 -955
--5976 -4496
-855 -1744
-698 -6904
--1361 8647
-8071 -2896
-4625 -4277
--9376 -5986
-5315 1919
-6849 9293
-5956 -5109
--4865 4498
--4876 -2200
--1072 465
--8458 -9965
--8030 6232
--3478 4031
-3377 6021
--9268 1946
--5102 -8875
--7210 -5683
--7952 -5959
-2451 -7738
-6768 -7842
-2549 -986
--1948 9261
--1132 9690
-3361 6702
--4238 -7800
-860 2795
--3178 9225
--5152 -98
--8795 -6794
-1330 4752
-1129 6864
--2076 -4701
--968 -3215
-2820 2189
--862 -4744
-7394 -7140
--3208 -8094
-3394 -522
--7538 -661
--778 1969
--9285 -6436
-7864 -328
--4911 708
-1006 -8886
-3519 -2234
--7187 51
-3862 -1494
-10000 1022
-1462 -6676
-640 4344
--8973 -7699
-7373 756
-275 -8045
-1496 -2986
--182 800
--4559 -8929
--2302 -9042
--9214 5073
-4862 -1954
--2715 -6307
--1933 1609
--6767 -4673
--9403 9382
-7529 -7440
-2390 1532
-4806 1367
-7513 -7139
--8982 6729
--4968 5321
-7769 -9037
-4511 -1337
-9874 1193
-9093 -7776
--984 2358
--7826 2866
--2568 8116
--6850 9480
-8068 4708
--7877 5946
--4934 1790
-9852 1505
--3414 -8687
-2986 -4768
-4493 -7103
-3821 -7398
-806 7397
-4173 5798
--9667 -6958
--534 -2248
-8558 3249
-169 3493
-560 8554
-8255 9438
--2932 7384
-5845 -652
--7256 3320
-6716 -2728
-6154 -8145
-6199 -2110
--1645 -2133
-2419 -2057
-5517 6495
--4177 7845
--1742 -995
-6102 -3625
--7143 6140
--6003 8956
-3307 9801
-2880 -424
-5415 381
-6305 -2513
-5549 6375
--1415 3041
-6274 -7598
-2279 327
--7958 569
--2868 9121
-4369 -7391
--984 2936
--947 793
-9590 7076
-516 -2638
-353 -8318
--8643 2438
-9645 8373
-9079 222
-904 -6136
-5795 -7930
--254 -2105
-6493 5832
-358 -9781
-8251 6130
-2479 -1900
--6885 6316
-2120 1378
-2873 -7775
-5777 -9640
--6508 -7782
--2647 8405
-6046 -2136
--7738 2216
-2306 -7663
-5273 9942
--6600 6095
-3994 6659
--3998 -572
-1272 -5218
-6782 5380
-6314 -9496
--9705 -2579
-7328 3392
--3383 -1333
-4057 8003
--5840 615
--409 -6616
-4377 8588
--6919 -9077
-4363 1787
--1168 4546
-2960 431
--7698 -2806
-8361 -8488
--7166 8413
--2058 -7071
-5337 5932
--6070 -5050
-5126 -7
-5163 -6527
--9111 -4326
--6186 8127
--2854 5134
--902 8722
--1747 -8435
--5882 -6184
--2996 -8167
-6718 1481
-6184 -7498
--6290 4460
--7224 9151
--5512 207
--3760 -6292
--5662 8848
-2410 2572
--5152 1729
-9204 -7750
-7493 4762
--6758 -9809
-45 6791
-2478 2880
--644 6677
--4297 7890
-2184 4864
--3102 9628
-8183 3422
--6977 4232
--9169 -4010
-2922 7982
-502 -8751
-590 -423
--9109 -852
-8776 -9319
--7906 -6105
--9823 6058
--3419 -9986
--3674 2085
--3468 6546
--9849 -3152
-5393 6095
--854 -9708
--6240 4011
-8492 2271
--9727 -5482
--958 6843
--7184 6726
--814 -5116
--3460 -1615
--6465 7737
--4592 -8460
--8317 -9704
-3519 -694
-954 4042
--4159 704
-3596 -5518
--9264 -9559
-352 4141
-9203 -6052
--2453 -9887
--7399 -3010
-6303 4032
-6197 -8136
--4693 8902
-3032 6692
-1984 4201
--9747 -1212
--8348 5995
-5337 -355
--6167 -715
-3516 -22
-7321 -509
-9282 -7435
--813 -1528
-7692 -3585
-5542 5627
--7207 -9419
-6657 4945
--3262 -2783
--8507 -3568
--1128 8377
-8040 -5729
--5386 -7600
--6993 -3890
-7598 -9880
--7638 -9842
-5935 5767
-7062 -8488
-6617 -5988
--7145 9072
--775 -3937
-4882 6977
-3459 -8779
-7448 -3017
--1852 2011
--3848 3532
--2010 1283
-4733 5289
-1577 -8152
--727 729
--7720 -1644
-4876 -6916
-2269 -2294
-254 536
-7235 3235
-8193 -1324
-6276 1660
-3191 -7545
-464 -1970
-7336 -57
--5314 7320
-2017 -2552
-847 -7754
--4322 -6452
--358 -7568
--9952 -102
-6851 83
-2430 3197
-823 8093
-6531 6897
-2654 -2551
-9191 7148
-7382 8995
--1712 -9315
--3204 -1757
-4570 -7711
-2640 358
-2059 -9791
-9267 -3413
--6229 8899
-1802 9325
-8089 9056
--1937 -5968
-2156 4957
--6510 9620
-6560 4429
--8967 4206
-1198 5778
-7167 -6876
--8175 -3371
--7715 -4247
-5064 6466
--9609 -7239
-7325 7290
--1826 -8682
-4124 -9064
-551 7763
--5802 5858
--1673 -9313
-1719 -8018
-8186 -7180
-2209 1656
-9298 2321
--6676 -2849
-5908 -7598
-9291 -3086
-6934 8047
-3137 4040
--2217 -6407
-9571 -5156
--8233 4625
--8933 1882
--2376 4937
--3413 9366
-5183 9818
--7769 -9400
--3182 8071
--339 8442
-4019 -3641
--7008 -3401
-7727 -1506
-7638 9459
-9644 -6672
--9220 1041
--5446 4209
-8458 -3638
--329 1235
-9697 -523
-3530 9887
-3479 7962
--6735 5215
-6141 3362
--5103 8754
--1347 6036
-6372 -9981
-9068 -5311
-7079 870
-9442 2633
-8234 3357
-3034 9332
--4002 9868
--3616 -3784
--1094 4838
-1469 -2095
--8281 -5483
-4474 6832
--9693 6608
-2411 699
--8260 -2460
-2971 -581
--9770 8537
-2676 -9303
--6742 5223
-4263 -8780
-8395 -2030
-6858 3196
-8243 7010
--1781 7453
-4112 1913
--4455 -5601
--7558 3555
--3547 1229
-8068 2825
--5561 -4178
--7333 -2993
-5523 7924
-959 2469
--1430 6371
-2287 2717
--4260 6509
-4959 9433
--1309 6183
-4926 -4570
-1538 3321
-2473 -8901
--7883 -9704
--6550 6666
-6956 -3906
--5721 -4446
-8431 2960
--8612 588
--3081 -8031
-733 3316
-2409 3127
-3292 6248
-6719 4398
--9281 5831
-2219 3396
-8544 -2547
--4290 1050
--4343 3287
--2719 -922
-5077 -2973
-3590 -6296
--4342 6682
-3280 4153
-3374 1977
-515 4964
--3481 6940
--7787 -4118
--4436 6055
-6308 7870
--8716 -2716
-2293 4462
--9898 -915
--9335 4760
--6698 9963
-4880 -851
-5407 8443
--7048 1814
--8509 -7560
--5952 -6287
-8731 3006
--3656 9897
-5837 4415
-1705 8668
--3429 -9143
-542 -8335
--8825 -9222
-7294 3542
--195 5199
--4419 1962
-9324 3773
--2501 -2313
-906 5714
-771 -5770
--7873 -6618
-6847 -6702
--1158 -2050
--8459 7361
--2025 6863
-4342 -2746
--6599 8429
--2882 3862
-3496 -6402
-5721 2146
-8353 4257
--6196 1732
--9070 -8343
--1725 -217
--498 -8970
-7746 3028
-6238 3966
-7374 1437
-822 -5892
-2045 8540
--4255 -4342
--3235 -5483
--8385 7558
--5206 8636
-6150 8771
--5282 102
-1935 7963
-594 6489
--377 8264
-4231 1472
--2267 -6600
--4305 5609
--5835 -1234
-5143 -4933
-3105 4962
-1953 5289
-5549 7216
-603 7396
-853 -1929
-2789 -4763
--2803 -4961
--3306 399
--2690 -7086
-4269 9428
-7998 6452
-4188 -4755
--166 6914
-4037 -4138
--128 -338
--8611 -225
--286 -8533
-2106 -298
-5620 5522
-5878 6452
-2989 6612
-1611 -3493
-8830 6299
--6960 3576
-2171 -186
-5203 -5992
-7520 7449
--137 -9811
--5013 -6958
-706 -2892
--7076 5
-9229 -3184
--8894 -1778
-3700 1490
-2455 -9649
--3106 4288
--6589 -7235
-8146 -959
--4980 -7468
-9856 7602
--5219 -5232
-503 9574
-8054 3033
--8763 -2439
--5010 3286
--2647 5296
--8699 6041
-2497 -7621
-1073 3090
--6468 2249
--4238 3227
-1746 -1638
--7649 7299
--1769 -3523
-5442 -2344
-1213 -3395
-5755 -804
-9140 -9754
--2475 -9440
-8876 4120
-1168 9418
-3577 -4734
--973 -2218
-4572 960
-6884 9314
-128 -2371
--5729 7339
-750 8322
-7688 -2479
--4055 6331
--8805 1104
-97 -2003
--399 -4840
-179
--8432 -2704
-2700 -6982
--5532 -1817
--4219 -955
-7647 6747
-862 -8977
-2838 7423
-9555 -2050
-5493 -4048
-8661 -8443
--517 -9514
--7387 -585
--1161 -9128
--2342 2191
-2281 -2904
-1398 5125
-7567 727
--9186 6685
--2071 4052
-7410 -8730
-4107 -9253
-4737 -2513
--4094 5214
-5915 -3335
--8718 -8123
-7124 -5956
--4299 9507
-7792 -3381
--2005 8046
--8286 4896
-4505 2069
-1795 -5362
--5216 7203
--3509 -4445
--5087 -4611
--5860 7751
--7174 2125
--2605 -5339
-4839 8488
--3371 7435
-7760 -7113
--4430 3288
--4438 706
--7699 9687
--3431 7025
--251 -6699
--2395 -9627
-4461 3218
--5870 6009
--9158 8175
-2498 8913
--2743 -2765
-9445 8658
--190 7067
-9381 -9189
-8281 -9825
--1648 -5990
-1725 5862
--7439 1943
--7367 -1997
-1404 1089
-4243 -3583
--6615 -7547
-2169 4913
-1482 -201
-5872 -3167
-1928 8896
--4768 3346
-9515 -6423
--1487 8621
-2233 4799
--9809 6177
--3798 8365
--3534 -6397
--2328 5765
-6657 -7119
-4571 -7256
--7753 6124
-1394 1858
-6589 -8456
-7975 -6107
-1091 2989
--7815 3951
--9203 7334
-8147 -1657
-6964 -607
--2930 3675
--2811 895
--723 1353
-8438 -5241
-5702 9439
--7631 -6847
--1357 -4801
--7894 -7409
-7173 6959
-4364 -272
--7956 1674
-33 1909
-5687 -3660
--7120 -5646
-6477 8872
-8857 4293
--7219 -1738
--5749 3911
-7693 2054
-5946 -1580
--8872 5182
--4635 7570
--4788 967
-3871 -2047
--2925 9699
-6831 -662
-7497 8043
--3206 8424
--2560 9622
--3626 2404
--5846 3290
--7749 -5437
--342 -1818
-7220 5212
--9963 8087
-9793 -2262
-9792 8792
--2751 -8646
-2630 9700
--2506 -509
-5448 3533
--3865 9167
--3624 4387
-808 -2350
--1212 819
-3820 1072
-6030 8603
-8558 9441
--4891 -3232
--9474 -6203
--4254 195
--1742 2656
-7628 897
-7640 -5194
--788 1806
--8699 -3446
--4827 -8698
--1453 -583
--6840 -8169
-6217 -4591
--9242 -3960
--7426 4473
--1828 5556
--1676 6371
--957 5925
-9149 -5764
-8110 -8701
-3225 -5326
--4198 2784
--9273 4852
-6194 -5544
-6159 2212
-4750 -7176
-386 490
-198 8283
--2424 -4343
--4356 5166
-8952 -6533
-8965 8397
--6683 -5180
-6540 2807
-2852 -1592
-7696 8362
--8994 -3456
--9829 4006
--68 7629
--4 4862
--1788 7590
-5131 -9615
--7513 1861
--2059 -2519
-7198 5174
-1444 3139
-139
-148 -6373
-4363 7764
--6007 -5
-25 613
-6493 -1294
--4164 711
--4719 -8204
--6503 -3807
--2149 5652
--1431 -1202
-3274 -6877
-6687 -9582
-4030 8791
-105 -7745
--6827 -5103
--3266 -9926
-8669 -6240
--8161 8870
-2738 -1856
-7958 2311
--8957 3046
-9287 -1299
--5274 -2232
--7004 -2722
-4481 4134
-4797 -2872
-2190 -430
-6308 -388
-7253 8782
--6030 -1833
-9031 8390
--6421 -3008
-1231 1885
--9369 -9529
--2674 3805
--2351 -2301
--2481 -3633
--2506 2578
--5431 8052
-4222 1747
-4639 1004
--5603 2011
--9058 9189
--6674 5251
-2523 -1165
-8227 3244
-5427 -7310
--1517 -4045
--7198 1271
-8095 -9348
--9886 8042
-856 -2680
-3466 4493
--8185 1323
-371 7011
-4918 2936
-3491 5716
-3039 6575
-1421 6699
--5267 -5899
--9012 7766
--4198 1741
-8288 4333
-4569 8080
--2445 4265
-3168 -5127
-755 -990
-6619 -2072
-5980 8829
--4404 -4563
-3827 4233
--7661 -9429
-322 2767
--2674 -2590
--1714 5274
--8365 -6044
--1386 7545
-9878 9241
--2413 -6485
-6928 299
--235 2360
--1564 -840
--8431 -9936
--2805 6633
-7277 -7498
--3050 5741
-819 98
--1949 -9717
--7820 -4955
-9409 -8057
-6315 2185
-8420 -8101
--6148 7084
--1867 4347
--5541 8143
-6106 -5830
--3357 9176
--7039 -328
-5259 9478
--7574 6971
-4841 7156
--4173 -7723
-9961 -4922
-3024 8748
-3129 1344
-6351 4189
-1772 -6661
-5339 -8398
-559 -4111
--3144 3514
--9908 686
-4764 -3199
--4904 8915
--6578 -7596
--9132 51
-3324 1248
--4708 1630
--1505 7459
--7755 -1179
-3099 6981
-3087 -6820
--1371 422
-7775 -8707
-5139 -2254
--5059 71
-9995 6547
-4104 6033
--4553 2621
--4707 -738
--5853 -7318
-9983 3973
--5831 -190
-3857 -6480
-1200 6078
-8911 4171
-9725 -9194
--4660 781
--2467 8910
-5521 -603
-892
-1235 -3989
-8909 7665
--6357 4653
--1756 -510
-8152 9191
-2758 2834
--1139 -4354
--1350 -8492
--169 -9194
-9480 -8016
-8897 260
--5232 2026
-7809 -4296
--4210 6670
--7692 8880
-9108 6885
-6931 5033
--9540 -2061
-9668 -8494
-4135 7628
--3418 790
-8394 6474
--5568 7451
--177 5813
--1137 -7959
--973 -3950
-2555 -7781
--6211 6465
--2662 2516
--11 -7084
--5548 -3669
-1404 -4723
-211 9670
--4155 -1122
-4272 1966
--3859 3469
-2816 -3482
--6231 5953
--6780 -3291
-973 -8863
--8900 -4772
--8004 -2751
--9165 6506
--7915 -8516
--3967 -7717
--4887 9161
--103 -1928
-8868 -1771
-4140 7584
-3774 -3372
--8148 9135
-9005 -7990
--5192 -7628
-4896 9658
-4608 -4601
--8386 7746
-354 -1379
-45 710
-4037 -9234
-9937 1652
--3217 -2424
-7386 5763
-7520 -2701
--6073 -4016
--9312 7198
--833 1360
--7992 -1524
-7812 -551
-8220 6525
--2224 1127
--2934 -3620
-2921 -2864
--3366 -9458
--2853 1987
--4666 -721
--6625 1990
-1614 -6331
-6401 6759
-471 3783
--7163 -1129
--3643 -9353
--9146 -3356
--1225 5741
-2485 4686
-2277 -5608
--3201 1606
--8039 -245
-9961 -6396
-6049 -8759
--178 -865
--7203 -7671
--6129 -8819
--931 1706
--7274 -4923
-4641 1362
-9593 -5433
-8469 -8295
-6549 6811
-348 -7679
-5332 5893
--1331 6300
--4899 -7488
--8342 9358
-6328 -7092
-3440 4067
--5112 -5391
--7907 3979
-1099 3890
--9557 -4371
-8399 5187
--9308 7813
-3550 7776
-7435 9999
-7951 2274
-9329 -2441
--9575 4991
--794 -7649
-7685 400
-9772 -9887
--9574 795
--54 -1532
-4530 -156
--4916 6149
--9620 -3013
--4780 6553
--2034 2749
--3188 -3043
-7694 -4783
-99 269
-2814 4883
-1929 425
--3878 3655
-7378 -5058
-3512 4199
-5665 -8810
-3760 -5971
--905 844
--4083 -3102
--1068 -6316
--5536 5371
-9431 1745
-732 -2208
--2336 4158
--9785 -3445
-4597 -7754
-5142 -5702
--6308 -7100
-963 -7370
-1274 -3616
-4010 -845
-6629 -1837
-8896 5410
-3791 -194
-7853 -3826
--7276 -9347
-6405 2574
-4239 5901
--8080 6685
-38 -2973
-2990 5165
-836 1591
-759 -7666
-1152 6265
--3254 8501
--4647 517
-2688 -7988
--9740 8036
--4660 8603
-1060 -7583
-7497 -7306
-5061 165
-8274 -9638
-5852 9829
--7063 6673
--1670 3876
-9730 -9690
-412 -1183
-1553 7647
-7089 7481
--6300 9308
-1488 285
--4924 -7113
--4518 1244
--3366 7672
-7188 1293
-5067 -7775
--3008 568
-7995 -9363
-7730 3767
-551 6674
--9015 -6047
-7349 -8251
-9438 -4948
-1537 -7433
--8894 5959
--4031 -7514
--2532 -6917
--1169 -9097
-2163 -1596
-4992 -9869
--7910 -6328
-101 -4746
-3284 7638
--1030 -1845
-2649 -7754
-2965 3093
-4088 -5792
-6125 -4159
--8418 9162
--4724 -3425
--3759 652
-6887 -3950
--4890 8504
--3451 -7072
--3625 -6598
-1154 5020
-6298 5207
--9128 6799
--8276 2995
--5862 -2393
--8598 -256
-1455 -5565
--5991 -8764
--5347 2637
--9924 8033
--4598 7743
--6405 -2718
--6097 -2499
-5730 -9294
-2679 -2234
--5052 2219
--8122 1355
--9650 2571
--1997 -7228
--4674 2024
-5025 6930
-3589 5703
-3295 -5959
--7643 5355
-2835 2563
--1350 2206
--106 4567
--3945 -1058
-8854 9797
-9617 9561
-9655 -9349
-6335 9288
-3745 -5928
--6504 -3635
--5540 -2818
--5266 3121
-2780 -1045
-8892 -4766
--2997 -7961
--4025 2911
-2329 5270
-826 3862
-4556 6569
--6346 2913
-3061 -6964
--157 -4647
--9855 3054
--8602 -1534
--7038 3528
-7558 6520
-9625 -7878
-6256 2147
--926 1319
-9354 2907
--7153 2786
--1509 -9637
--3339 -1568
-5296 -793
--6277 5653
--2382 -2078
--1858 -7519
--5857 -1093
--6523 3034
-7887 1801
--5840 3240
--6743 5975
-5781 2476
-1044 -9330
-2913 -2830
-2736 -6622
--986 -6344
-4970 6465
-4582 -1732
--4035 -3127
-1628 3357
--5976 -9888
--6379 235
-9 1587
-2805 6027
--2712 -8455
-2682 -7250
-3010 7512
-7299 5366
--4000 -1170
-2716 -7595
--4642 -6219
--6148 -8046
-6716 -2351
--5317 4049
--8374 -3598
-2607 -981
--9190 3145
--7161 582
-6154 1118
-8467 -2000
--9438 -5084
--9340 3900
--2601 -9436
--9064 -4124
-5489 -8849
-9641 -3671
--5640 -4900
--8591 -3769
-7133 -2856
--7561 6995
--1886 9024
--209 3381
--780 322
-7026 4855
--388 -7939
-7427 -343
-7390 -6381
--8491 -6068
--7424 -7330
--4025 5295
-8545 -6720
--9069 2098
--6638 -2452
-1019 9461
--4782 -478
-9926 -3258
--2669 -4800
--6425 6857
-8687 -5061
--1008 2047
--4866 -4409
-9252 984
--7646 8578
-3226 3853
--3904 -5945
--191 3462
-6504 -973
-6464 7785
--2688 8354
-6010 -1186
--4780 79
-3027 1295
-3050 -9493
-6074 -3702
--8987 1536
--64 6577
-4840 -4076
-7128 5323
--8983 -293
-7888 -1702
--8615 6810
-7247 7619
--2395 -9575
-7508 -1887
--9274 -8648
-8030 7601
-2304 770
--5791 7140
--6455 -5424
--2090 2112
-6593 -4981
-6438 -7170
-2414 1327
--2307 3547
--3402 3189
--6359 -5045
-6423 6320
-2313 152
--5897 3150
-8079 1615
-9839 -97
-6341 -1944
-2269 9766
--6462 -8539
--2482 -4110
-7675 -741
--5833 -9279
-1812 -4494
--8613 -1704
-7589 -3441
-6810 7388
--3485 -3567
--3663 4258
--7573 9566
-9653 -6977
-419 -1856
-4354 1300
-2095 -594
--8274 4162
-732 2661
-344 3760
--9997 7702
-5297 5984
--4177 5537
-2347 -4627
--6878 -2454
--217 7249
--1680 9854
--9219 154
-2639 -9304
--7365 5771
--5240 -7116
--4521 -3552
-8687 -5432
-9360 4976
-6548 6006
--7885 -3782
--7286 -3266
-794 4067
-7844 -3674
-4219 -3546
-1942 3960
-349 -4190
-8096 7431
--479 5523
--8175 -9578
--8227 -9099
-7202 -131
-7587 -5813
-8456 7811
--5824 1825
-240 -9548
--2235 1704
--9748 -9907
--5001 4145
--4795 -7822
-6132 3924
--1943 2716
--5358 585
-1908 9015
--4122 -9190
-189 -920
-5933 6155
--5980 -8252
-9745 2375
-2651 -5899
-5535 -8292
-7951 8777
-5870 1858
--728 1950
-6827 5027
-6653 2522
-8623 -4891
-3438 -3203
-2620 1716
-1423 -2823
--8474 -4394
-2389 185
-2604 -9474
--6278 -5724
-2249 6913
--6823 8796
--1572 -6678
-3976 664
-920 -2130
-9304 542
--1072 6784
--9660 5371
-9043 8280
-7741 -1490
-6895 -7662
-6343 7799
--177 -8519
-6067 -8020
--3688 -1769
-3356 -8145
-8525 7018
--3452 7142
-6386 -5906
-345 1465
-6768 -5225
-7366 892
--3663 -332
-4450 1668
-426 -4215
-5292 1903
-6508 -9875
-1962 -1222
--4327 9434
--6354 -6818
--7894 9751
--476 -1342
--5052 -5972
--8528 -8077
--9533 3250
--3199 900
--3671 -2684
-2265 419
--2298 -6514
--6802 3565
--5175 2203
-2631 6434
--9089 7492
-4242 -1066
--6164 1070
--8818 6938
-6239 5153
-5233 4122
--7210 -5342
--4233 6836
-5985 6689
-2364 -8794
--3184 8437
--9952 9423
--4986 -63
--3208 6460
-4644 -2203
--4391 5619
-1873 9182
--2030 7211
-7706 -7641
--7489 -3625
--8944 3656
-8418 -7845
-5863 7380
-7458 8288
--5040 -73
--8928 526
--516 -8028
--366 9012
--7818 -4483
-3381 1583
--7457 -6648
--5260 7489
--748 -411
-2290 4179
--4534 -4093
--8147 -2195
-1533 -3637
-9586 -2277
--6706 -7120
--8901 -4019
--1138 -7812
--7901 -3577
-504 -1074
-3000 4300
-1425 -2557
--6131 -7426
--3824 -2637
--7709 -1823
--226 -1632
--1017 7961
--1997 9608
-8911 9248
--6409 7824
--3349 7960
--7705 -9500
--6588 9763
--4672 1376
--7573 8255
--5204 -7149
-5982 -8625
--1003 872
--9557 -1137
--9555 6319
--9676 -3812
-2432 -610
--7669 5686
-8516 8373
-546 9094
--7608 -325
-7552 6720
-3201 -9662
--9807 5483
--6158 -736
--9959 -3481
--1425 -9587
--1610 2613
-6963 -4756
-7267 3696
--7098 -8082
-1454 -8962
-2616 4413
--3265 -8008
-2474 -8231
--8410 -5653
--4039 -484
--1564 6991
-7503 9157
-672 -1842
-4382 4541
-2603 6817
--3292 6453
--8822 -3298
--8380 -7759
--1616 4569
-3615 2646
--2341 -4053
-7577 2686
-1359 -7279
-2174 -2908
--801 7799
-5886 7330
-5296 9062
-959 -8301
-4759 -6168
-6359 7987
--6456 7958
--1414 1017
--8058 -242
-4641 7892
--13 -5492
-9923 -8660
-8304 -5398
-9886 6562
-8664 6669
-7312 8595
-8578 9587
--1823 5672
-2373 1024
--2780 -8469
-1315 1389
-3120 1926
--4963 4583
--3699 -7480
--3304 3298
--175 -9761
-3644 -7615
--5511 2884
-5219 1907
-6302 9365
--2506 2702
-9163 -2874
-5559 -4502
-5507 2660
-6577 329
-5058 7211
-2832 -7976
-1095 -3536
-3 4986
-6158 -7349
--2895 -5661
--46 -5942
--7107 7601
--8357 -4690
-9154 167
--7455 9664
-7578 -1485
--7050 4247
--1751 -6945
-8044 7263
-199 -9675
--7368 -8484
--20 -8266
-351 -8620
--2121 -8740
--8563 -6002
-6676 -6007
--8273 9574
-175 -6926
--4505 8002
--8229 7456
--469 3178
--2882 2240
--7476 2106
--3046 9260
--4861 -997
--1819 3845
-1179 5869
--9168 1096
-3375 5904
--9838 7511
-2721 9576
--6206 8327
-625 1994
-7875 720
--9218 1433
--8543 2260
--2482 3898
--7593 -6329
--429 -1955
--6327 -7817
-5441 3766
--9662 9282
--8490 6139
--2873 -5564
--4191 -4604
--3018 6489
--5698 4013
-1346 956
--7986 -8832
-3100 -7955
-8871 1180
--9867 -9734
-6074 2429
--8751 4793
--4025 -2965
-3302 6619
-105 -8185
-2943 127
-845 -5423
-6711 5544
--386 -3710
--3762 2153
-5280 -3332
-9740 6648
--9555 -4416
-5770 -7880
-6479 -777
-9899 4312
-1073 7941
--3249 -3302
--6852 -2953
--8839 -4808
-7421 931
-1218 215
--1336 5506
--9972 5933
-338 5333
--769 -2035
-2847 -2303
-3516 4546
--2606 -1050
-4717 3290
-7884 5472
-4286 8581
--7269 5576
--9679 -5275
-5191 4006
-6519 -4794
--9122 -10
--8094 6837
-689 8981
--6414 1826
-7994 864
-4322 -1975
-8944 4479
-3065 8058
-6210 6255
-2515 -4999
--668 -7493
-7325 -5855
--8437 -734
--2140 5348
--7153 -5309
-2316 1731
-8879 -1923
--326 -6142
--143 -2470
-1852 3331
-7161 -5666
-9667 3539
--4420 7590
-6533 9715
--9900 8529
--6242 -5330
-1163 -2884
--617 8717
-2006 -4717
-53 -421
-3271 -6243
--655 -9932
--1214 -3383
-4466 -2464
--6260 -6657
--5252 -8806
--2790 -6776
--5071 -9170
-2965 1481
--4509 7607
--5698 -895
-2726 4990
-5450 -6497
--3948 4820
-9068 -4109
--6091 2978
-5982 -8229
--6770 -674
-3605 -9562
-8666 -9297
--948 -3558
--5459 9149
--7546 -504
-2026 343
--731 2394
-1069 -3086
-7529 66
--700 3666
--8781 2654
-844 1973
--2526 7607
-9965 8929
-3225 3221
--2543 3891
-194 3168
-7507 -4823
-9896 6302
--1433 7921
-4916 -6946
--5909 -5971
--7532 7947
--5331 -7965
-67 3623
--1924 -8848
-4364 -3477
-6122 9176
-971 -4609
-8718 -3996
-3837 -3080
--865 7253
-3592 -354
--5507 667
--5885 -2534
--6994 5170
--9239 9296
--8714 -9289
-9869 -9135
--9907 -1985
-8069 -2042
--4590 683
--8566 -8908
-9636 9834
-835 1030
--1364 -9345
--4167 5062
-4287 3356
-7187 -3689
--8008 5411
-9167 5904
--6537 9007
-9047 5203
--6718 -6603
-6889 -8528
--2444 8143
-7581 8067
-5688 -1200
--4766 1634
--5741 -2422
--4742 -1572
--7592 2637
--5324 -3826
--8426 9232
--4140 -3805
-3168 9401
--7070 4904
-2607 -304
-4815 2926
--7888 -6362
-2750 3572
-2508 627
-7692 1812
--7761 -5473
--6604 -3532
--6038 7477
-3105 -6482
--3089 9881
--5836 8100
--3209 642
--4256 -2169
--6630 317
-1871 4637
--4951 -5123
-5589 -1507
-1525 7161
--5539 5672
-3623 5272
--7793 -8215
-5502 -6613
-2036 -9225
--7120 8550
--9291 6831
-1232 -4322
--9135 7840
--9325 9436
--1440 -2571
--3529 -7407
--6090 7765
-2420 -7785
-6611 -4115
-6802 -4253
-5755 -2239
--9823 9010
--7136 -5312
--4478 9052
-1568 -343
--7054 1249
-6207 -1550
--7162 2283
-9008 -126
-4935 5993
--8056 -3027
--6525 -2498
-16
-9860 -4911
--5186 699
-8339 3491
-6887 -6330
--541 7369
--4383 -1636
--1222 -9506
--3675 3742
-4800 337
-3437 -1504
--6334 -1571
-5449 -8346
--5121 2768
--8717 9555
--5957 -3386
--1194 7183
-993
-6035 -1724
--601 8473
-1071 -3061
-1998 152
-8944 9355
--4119 213
--6412 2389
-824 8000
--5199 -4654
--2896 7978
--7780 -8949
-6629 2260
--6399 -8143
-7125 7466
--1619 -3181
-1294 -4522
-4846 6631
--1018 -1160
--2934 8044
-8223 -6544
-7535 -831
--4151 -2218
-9994 -4578
--5351 -4317
--6617 9454
--1378 -3880
-4925 9453
--8969 8616
-6264 9455
-5234 724
--171 -2564
-2931 5057
-3109 -6605
--3581 6169
--4625 -3631
--1967 5441
--3110 1266
-4215 5116
--8960 2224
--581 1875
-4961 -6503
--8383 6930
--2944 -5067
--218 7031
--3873 6270
-4250 -5041
--3127 9931
--6479 6525
-8971 988
--9371 311
-4596 623
-1901 -8109
--1640 -3590
-667 501
--1318 -6415
-1176 5917
--2087 -4419
-2331 1272
--3799 232
-8748 -1735
--7109 -6271
-2131 -5903
--6857 -8396
-6308 2922
-2488 -1291
--8578 8458
--1493 -3004
-9477 -9564
--3063 -6599
--4684 7228
-7449 -9612
-1336 690
-8912 7716
-4431 4015
-2733 -4461
-7328 -725
-9184 4534
--368 -4804
-3692 4578
--644 -2509
--7081 -7139
--9766 9204
-106 1600
--3908 -9847
--7491 5931
--7104 6942
--9414 4545
--8305 3002
--7439 -1358
-9946 8413
-6387 4319
-2236 -6938
--5455 -7153
-6780 6466
-3152 5620
-4327 -6593
--3908 -1455
-1433 -8559
-9335 4835
-3890 -1405
-2587 273
-4671 -1177
--3587 -4517
--2718 -9750
--9272 1327
--6236 5356
-5675 3284
-9391 -9881
--8795 -7949
-2543 -3751
--4209 -52
--7604 -7171
-4972 -7749
--5006 3107
-590 -200
--5516 7848
-3203 -3466
--9059 1279
-783 -3705
--3267 -44
-1176 6624
--2780 -9535
--8744 -343
-178 -4327
-1880 -5100
--7056 -5109
--7879 -7338
-9275 -7697
-1201 -1920
-1067 3704
-5929 2175
--8341 -9732
--7416 1659
-4321 -5535
--4582 3768
--9458 -6614
-6140 4044
-7091 3616
-7527 7601
--2591 -6054
--5222 2035
-9027 8400
-6931 8706
--4177 9061
-6999 1646
--8524 -749
-9217 -7628
--3067 4585
--2599 2178
--4970 6786
--5267 2640
-2570 -875
-9470 -7376
-4459 -3726
-1483 -4955
-1361 -1309
--1613 9399
--5058 -9104
--7778 -7088
-2964 9693
--7285 9727
--5560 -6087
--3515 2749
-8095 2169
-4090 1682
-4443 -7590
-3942 6904
--9844 3024
--9784 6461
-6198 9777
-9316 4730
--8019 -9399
--7816 -1925
--4586 -5165
-2560 -9845
--2702 8368
-5375 7283
--7122 -5252
-3131 -8318
--299 -5434
--2427 6105
--5204 -1803
-2115 -32
--1966 -8800
--7273 -72
--4945 -3967
-8429 578
-9896 -7688
--9177 9355
-8488 5994
--7271 -1607
--3291 7709
--5543 9701
-5731 6695
-44 8367
--9386 7820
-4020 -612
-2697 -5284
-4831 7126
--9133 8946
--9027 -8204
-7778 -2544
-8877 3113
--59 -185
-2434 -3395
--2166 -1146
-3679 9736
-3310 -9840
-2550 9422
--9550 1834
--3856 -5179
--7763 9968
--3016 654
--1503 1814
-8727 9468
-3059 -6998
--7626 -7103
--9479 -9090
--1892 8185
-3507 -8042
--3880 -8857
-9596 8892
--8734 5769
-1763 -9761
--8091 8945
-9544 -6896
-4463 231
--8352 7593
-6352 -6650
-2818 1274
-8243 5033
-1475 -9231
--2859 1748
--2150 7267
--3900 -751
--7227 8222
--7645 -6111
--5524 -9561
--5404 3319
--8746 4937
--1667 5415
-6115 -5784
-9362 -7127
-9646 -53
-6392 79
-6462 8378
--886 2288
-8963 -7892
--1189 7037
-2348 8195
-6329 1239
--7161 6030
-4616 8636
--7310 9856
-7104 1890
--9778 1643
--5709 -5821
-3252 -4495
-5702 8753
-8858 4310
--5759 -5036
-5661 -6648
--5608 9352
-6948 5207
--9126 -7630
-3362 4805
-1743 7078
-2885 7884
-6385 -6682
-7861 -8857
--108 -7954
-7467 2995
-2885 -2088
-7470 -7885
-2755 411
--5405 7437
-1193 2256
-5034 2969
--8140 1765
--3185 8919
-4289 -2478
-197 -2619
-4361 -3154
-3259 1711
--6535 1048
-5260 -1358
--9883 -2953
--8299 5387
--4878 -6521
-5440 -1791
-1373 -4495
--7550 -5812
--3940 -8153
-8332 -3908
-8356 6503
-648 69
--807 -5673
-7215 -3469
--4802 7943
--9276 -1263
-4305 8833
--6488 -1245
-5430 7943
--6366 -9747
-8345 -7780
-9265 8749
--44 -2724
--7007 -5644
--3871 -4428
--4243 2074
-525 6372
--9608 6814
--3325 38
--8323 4279
-963 -5346
-8918 3429
-7491 3181
-7621 4040
-3219 887
--8796 7317
-8978 8674
--8710 8173
--1722 8405
-1865 -3005
--3986 4292
--2767 7374
--6917 5517
--4602 4592
--282 333
-9633 -5393
--8713 -6295
-7422 -6192
-5167 2904
--9349 -3670
--2398 5612
--6413 -2890
-5468 -206
--552 -3457
-2499 409
--4801 -8576
-4707 5212
--4597 2051
-1402 1810
-4596 8152
-7229 -6268
--5651 -5728
-6501 3717
-4677 -8615
-700 5706
--831 9526
-2960 -3625
-5517 -5907
--2124 -4454
-7054 4046
-3616 9481
-5679 -8602
--3106 -5974
-8449 -1853
-9010 -7414
-5996 8684
--2233 3102
-6513 -7975
--8103 8845
-6576 -9626
--9981 8762
-8076 9517
--7895 4391
--9840 9190
--4383 9312
-8576 2398
--1273 2468
--6599 -7977
-9764 2670
-2938 -6935
-336 -4571
-2716 4909
-1908 1872
--4636 1195
-5031 5817
-6847 6063
-8450 2577
--1373 1256
--7750 -5421
-9949 9261
-1286 962
-3214 3588
--2824 -1587
--3752 -3289
-9322 -5919
-2547 4425
--5133 -4106
-4783 -5659
-946 -9382
--4727 -354
--4928 -3229
-1639 -101
--3074 903
-4536 -2298
-3729 -2116
--7419 2288
--3848 -9682
-6484 -588
--3342 -5534
-2116 -9485
--2348 -9930
--5314 311
--5972 -3979
--1544 -506
--704 -5492
-6384 -3823
--2781 4671
-5798 -8306
--4318 9085
--4417 3387
-8836 2177
--776 8912
--5798 493
-510 -1838
-2637 -9433
-3648 -595
-609 4022
--4770 -1358
--4790 -6156
--7969 9655
--3397 -3407
--8246 732
--4923 -1807
--6737 6147
--4307 -471
-8026 -4781
--5536 -9
-1165 5624
-2842 3590
--7015 4648
-6372 -9367
-2703 -4563
--2914 -7241
--6934 -7169
-5410 1943
-5684 1980
--5444 -8961
--3399 9673
--3031 -6850
-9415 -5556
--4211 8022
-9031 4593
--3287 4590
--3562 -9949
--5294 9677
--9507 -5136
--2464 -5940
--1020 -1820
-3646 -3325
-7633 2188
--2262 8892
-4090 134
--3722 8294
--3098 2833
--5990 2065
--162 -9197
-5126 1762
--9462 1211
-8051 5908
-8251 -8086
--2762 9917
-2887 7226
--8078 7043
--4694 984
--3678 -6944
--3136 6020
--4962 -8874
-6649 5908
--5930 1857
--6540 7326
--9864 3593
--9807 4086
--4878 3149
-7157 -320
-7057 6290
-3198 -5975
--5022 2616
--8944 6397
--5048 2954
--1818 -5393
-6602 -951
-3005 -2483
--1277 8254
-5729 2572
-3168 -2232
-2387 -6714
--417 -7688
--84 2083
--4168 -3294
-635 4894
--9652 -7477
--4241 -2205
--8501 899
-421 -2226
-5689 -9353
--2182 9793
--286 3050
--779 2460
-1913 -293
-4379 2371
-9310 7627
--3116 -1270
-5862 -4755
-4993 -5521
-7844 -8627
-1643 -3146
--246 9753
-3937 4586
--2623 7591
-1298 284
-1045 -3435
--6294 9722
-5806 -3257
--1143 2196
--8630 3639
--8282 8264
--3508 3845
--9714 8704
--2256 -6058
-1396 2421
-16 3606
-3819 -890
--1402 9800
-3193 -7757
-7407 5459
-9522 4322
--7397 -4222
--8028 -6360
--9711 1302
-9050 -12
-5309 -2102
--6051 -8248
--5636 337
-9748 -3439
-8161 -3450
-1677 2513
--7011 9838
--6614 2422
-9102 -2130
--2706 -7625
-8342 8940
-7289 9043
-1112 -9508
-1902 109
--6980 9192
-155 5821
--4179 6797
--570 -7168
-3922 -4144
-2780 -4684
--4095 8967
--7062 -8878
--6873 -4463
--1444 -4816
--1201 5530
--6132 5577
--9539 3054
--3935 9098
--3204 -4724
-1214 5154
--7794 -3425
-721 -1446
-7232 4812
--1622 -297
-6084 355
-8697 -5267
-7738 -1018
-2617 -9381
-1089 -5061
--5187 213
--6152 8536
--9833 390
-3841 8466
--6509 8259
--2366 -2129
--7276 8269
--8754 -5765
-8796 5785
--8295 -1489
--1782 -169
-2425 4203
-749 -7518
-8088 9881
--8300 43
-1545 1233
--589 -5892
--1465 -2611
-8622 610
--8419 1288
-788 8713
-8789 -9078
-3886 8945
-750 3443
-209 -574
-6428 9176
--8461 5262
-159 5875
--3550 -4614
--80 3252
--6225 -472
-1001 -5005
--4456 7389
-9728 -1674
--4449 4044
-2669 -1501
-4259 -8163
--9929 6757
-6583 7318
--6059 7196
--9132 249
--3550 199
-445 1788
-8545 8429
--6795 -4402
--328 8878
--4932 6328
--166 -6363
--968 5318
-6616 277
--4786 -7599
--157 -9639
--7060 293
-326 6650
-3680 -5565
-1017 -9421
--1279 -8770
--3838 -6847
--6077 8435
--681 -1676
--7499 -8127
-7217 2611
--3534 -4156
-7008 -8586
--3882 6583
--4480 7251
--4578 7053
--7741 3289
-5388 6252
-8476 -2420
--9783 5182
--186 -7184
--9548 7273
-2848 -5244
-6638 8449
--4835 -1448
--7877 9228
--4458 -3873
--9886 -8210
-2777 2017
--7055 -4376
--5749 3076
--5349 -4136
-6994 -6929
-960 46
--4867 146
--3872 6958
--138 -3011
--1230 -2988
--2463 7594
-1268 1002
--9899 -2674
--7581 4324
-1800 8125
-6973 3306
--4870 9882
--2013 1219
-8977 7817
--6426 2174
--7034 -3712
-2134 7920
-2907 158
--5840 5991
-2110 -2971
-7873 -9381
-6513 -2106
-8996 3082
-9161 4026
--9554 7389
-8176 6346
--4434 -8767
--7693 2600
--2519 -7947
-8616 6992
-6452 5235
-9658 -8762
--7098 -3124
-4167 -5851
--6825 1123
-3880 -108
-2446 -5893
-5730 6812
--5601 8230
-7673 -5548
--1655 18
--8833 -4479
--4064 -4504
-4610 -7912
--866 -6935
--5399 828
-6063 -8246
-4622 7523
--5033 1603
-9008 7180
--5733 4001
--5477 1048
-7845 -9093
-302 9359
-258 3857
-1419 -8938
--660 -5748
-4916 -6331
--1169 -8989
-9613 -6033
--1709 -1632
-1516 744
-1346 -5789
--5135 1529
--1008 1624
-5575 -9427
-9526 734
--2173 -4174
-3290 1011
-7652 2344
-6980 1573
-1375 -1150
--1231 5559
-2093 3538
-400 -1567
-886 -9351
--5275 6417
-144 -6802
--9037 3762
-1723 -6864
-1506 -4648
-8452 -7681
-7506 3402
--9970 -4094
-6730 -2543
--2011 5808
-3093 6521
--221 5956
-8196 -9250
-206 7936
-5836 -7064
-5022 -6261
-1639 2405
--2534 9487
--7840 -8219
--7155 9
--2783 -4347
-8679 3714
-7966 -3240
-8529 6362
-2416 -9345
-788 -9978
--9287 55
--6 1241
-7796 2371
--6969 2311
-9859 2225
-9131 6668
--832 -1742
--3756 746
--6200 -228
-1088 -3147
-2439 2251
-8418 6366
-6049 7936
--9528 1533
-9971 -3015
--9888 3428
-6355 -4173
--8888 842
-7064 2313
-7424 -2072
--5130 -5874
--1532 -3543
--7651 8737
-3912 8328
-3442 -477
--8014 914
--7495 -9337
-9899 -2148
--3132 -4597
-8613 -8786
-1010 3995
--8713 -6581
-4750 9182
-2483 7862
--9770 -3296
--6785 9725
--119 1914
-7428 -4149
-7372 -8119
-9365 713
--4107 9821
-1360 8755
--9536 -2739
-4731 5141
--9973 762
--2250 -1818
-8342 -5866
-1966 4387
--468 -2538
-757 321
-353 8868
-2088 -1567
--6514 -1985
-9518 3351
--7614 1210
-971 -1882
--84 -6690
-9404 8365
--8558 -7207
--201 -4954
--7922 -4083
--6702 2052
--9124 -2323
--3763 -7746
--7298 -1778
--6645 -3847
-1070 -4419
-4216 6945
-2490 -1987
--6198 -1738
--9554 7880
-8744 -6063
-5334 -4880
-3027 -6479
-3390 857
-9701 -655
-4534 1955
--6142 -4200
--4883 7058
-467 -4391
-7977 -2793
--5345 5527
--1526 -8622
-370 7550
--7957 -538
-9520 9288
--3725 -4178
-9897 -8048
-2415 2893
--4166 -8449
--6094 -8498
-6828 7132
-7076 3724
--9954 8046
-6022 -6995
-8778 296
--7749 -8885
--7385 7401
-8909 425
-9005 3043
--2964 -5078
-2461 9063
-6638 338
--6724 2279
-8480 -5753
-5317 9897
--4548 -9569
--7279 4893
-8035 -8430
-4006 -7830
-9607 1796
-659 7593
-5857 9770
-6337 7833
--6977 8340
-2328 -1808
-7109 -8926
--3590 -7159
--8675 -7836
-5727 5716
--3777 4163
-8130 7739
--2522 9844
-7189 -3223
--5717 3272
--7617 -6734
--6692 -8099
-3521 -4697
-2299 -8081
-5626 1562
-8550 3792
--7622 5265
-3631 -4485
-6459 -756
-9985 -7998
--1888 6328
--711 9765
--236 -7286
--3206 -7861
-5518 5196
--5346 9832
--1021 -6551
-8227 -1405
--2233 272
--546 8500
--2674 -2654
-3001 -5860
--6102 1112
--8067 -1889
-8766 4898
--3809 8988
-3460 5009
--801 -373
--9249 -8166
--8117 7246
-1163 2900
--920 3548
-3172 -8487
--6843 8740
-5060 -1077
--664 -6450
--4762 6487
--3493 -9750
--3424 -759
--4843 -5965
--1537 275
--1855 8110
-5024 -3116
-9882 -4453
-6174 369
-7308 -2704
-569 -1789
--5514 -2209
-4477 -7920
-4235 5421
-5242 9085
--1970 9282
-807 8374
--2509 -8003
--6917 -1363
-1927 427
-8753 -1334
-2447 -3113
-6882 -5544
-9055 -2956
-1571 6589
-9410 -1532
--982 5918
--2015 6185
-5996 183
--8291 -2737
-5966 1410
--1893 -9150
-4786 -4081
--7328 -8317
--2492 -8973
--4951 6461
-9492 9392
-4819 -180
-566 1090
--922 -3578
-121 -8688
--1415 -4537
-367 -6263
--1774 -5835
--7629 2301
--6043 1047
-3993 7686
-367 -3717
-9449 2533
-2796 3410
-4017 3663
--489 9882
--9760 4457
--5028 8673
--1388 9678
-1185 -1168
-3979 329
--1510 4728
--2793 5780
--6965 -1494
--2856 2865
--4444 -649
--6393 -1306
--7601 9597
--6629 -7964
--2573 -8188
--2828 -3356
-4870 -7534
-8511 -4948
-8425 9725
--6816 2877
-8373 7869
-9141 1736
-930
--8095 7790
--1254 -9180
--7009 4506
--1188 8518
-3270 -6208
--5648 8642
-2669 9666
--366 -7279
--8241 8806
--5426 2100
-4367 -6728
-7383 6773
-975 8077
-5319 4553
--4318 5177
--3083 8748
-14 6268
-2874 -3864
-7679 -7520
-155 2547
--4574 -72
--4780 4300
--1585 -8448
--994 -8604
-1221 7584
-8812 -6238
-8847 -8704
-3504 685
--8980 5410
--5171 -729
-3306 -8129
-7614 24
-5886 -2637
-4281 -6325
-8059 5466
-1792 5039
--5520 7921
--1676 2945
--7336 -969
-3068 4036
--9215 3197
--5926 -849
--2217 8422
--2166 -5449
-6038 4418
-7777 2558
--2762 9544
--1473 -3121
--3174 -4594
-238 9539
--4254 -264
-1754 -4419
--1457 -3681
--4128 4541
--5339 3874
--1989 -8874
-7358 3938
-4050 -2227
--7165 920
-5025 -2963
-5356 -2275
--4398 3463
-13 2804
--6395 6193
-7869 3290
-5544 31
--7608 -9078
-308 -5874
--9353 -582
--9437 -4584
--9795 5524
--8665 -4976
--3901 -678
-7122 -1061
--5775 5866
-3336 -3157
-1123 -4988
--4611 -6270
-7545 8563
--1836 1794
-5994 -9672
-7119 972
-9925 -212
-240 5333
-9336 1671
-9476 -1312
-3237 3431
-4438 -7746
--690 -9773
-36 8230
--4842 -487
-7202 -1046
--7576 -3257
--7208 -5000
-7870 -5166
--7626 -4035
-2008 -9850
-990 -4169
-8721 -2374
--3732 -1378
-9351 4638
--2954 3599
--9705 -4654
-2095 -3764
--9015 -4543
-2443 -6240
-858 -8249
--3360 5603
-2149 -3174
--6240 -8190
--347 2599
--1119 -7488
--6849 6133
-5764 -7228
--7573 -4306
--6424 5542
-8963 -3182
-9624 -4011
-2438 8071
--3460 -4517
-335 -1157
-1608 1480
-9943 -4785
-8676 -4261
-1537 6441
--3499 -1150
-2969 -7403
-3403 -9848
--5887 -2002
--2958 -2923
--1651 6317
--141 3512
-5645 44
-6749 928
-8585 -1700
-2562 2736
-7010 7355
-9825 3915
--2146 4873
--1323 -7916
--9533 3046
-1326 -4509
-3083 6528
-5026 1247
--3920 -3336
--4226 9373
-198 -8638
--4135 -6504
-8766 -8405
--2806 -5955
--8509 7624
--8688 -9270
-3613 -3991
-6071 574
-6711 9646
--9650 6273
-5579 -2338
-7403 3288
--8876 4453
--9957 2691
-2691 -5735
--6779 5904
--3912 4099
-1440 -9754
--1368 -8460
--8490 2868
--5448 -794
--1643 -900
-4232 -2247
-3597 78
--7711 -4169
--7542 -417
--4771 -2421
--8815 7212
-5118 7277
-7223 9953
-8989 2106
--2045 3459
-1321 7313
-3424 6240
-163 5253
-5165 3793
-9740 -4322
-5440 -4395
--2822 432
--405 -5055
-8812 8868
--4660 5092
-1516 1073
--3633 -5524
--8995 5694
--2129 1784
--3159 -71
--5928 5678
-1373 4503
-3774 -5760
-2936 9600
--4124 1228
-1501 6529
-8032 -1502
-7516 -6651
--7716 5268
--5301 5746
-4316 4583
--5280 -3128
--9208 3262
-3268 7062
-7052 -9512
-9861 -5022
-5854 -526
--8051 -5778
--5527 -2899
-9632 1485
-4455 -1653
--3847 4240
--3587 -7451
--2423 -369
-6256 5259
-9291 4088
-8761 8574
--9680 -8459
--20 6879
--5181 1481
--9102 1777
-2879 -9426
--972 -5159
-7779 1064
-9182 4254
--9647 6559
-400 -3194
-3714 -3825
--1337 -388
--2307 5216
--1247 5430
-6831 -2868
-8395 -2668
--1250 -3985
-466 3165
-8111 -4694
-4728 3057
--6496 -9684
-9267 -1497
-6555 4092
-8678 3217
--6038 183
--3673 47
-4261 1444
--8803 5636
-2132 466
--7398 9929
-2013 -211
--7959 1808
-5619 -3120
-719 -8593
--2260 2584
--1052 -5858
--8751 7296
-3096 1367
--9774 -8928
--3710 4981
-6929 2266
--5831 -1781
--7455 12
--8387 -33
-1649 -7735
--4007 -6563
-3884 -8311
-6322 -8486
--7756 6153
-8082 7133
-4917 -4776
-7417 809
-7840 -5968
-6848 9207
-5243 -6999
-3501 4163
-8280 151
-6485 -5842
--3381 -7410
--5378 40
-9564 -3867
--8626 1072
--6140 9346
-4864 6935
--5170 -4583
-771 -142
-7396 -8776
-6222 -8037
--7964 -1733
-5643 -1338
-2349 -5092
-8703 -4203
-8570 3958
--914 -5736
--7330 -65
--4831 -2386
-3942 -7526
-1135 2027
--9454 -8385
-8171 -7540
-8340 -9076
--5242 -2495
--4290 -7156
--6635 -9005
-9059 -6090
-3487 -1038
-2536 -3134
--1128 8961
--187 -1123
-9985 -4371
--7239 -1509
-6623 3829
--7863 4373
-9410 1334
-2625 -1837
-9251 -5070
--295 6750
-1183 5455
--1748 -8244
--5186 5008
--3216 8876
-984 -7588
-1338 -9551
-2096 -8338
-6830 360
-3659 -1001
-9575 4947
-3651 9747
--9137 -9563
--1706 -7656
-6763 4203
--7859 -6004
--1685 1639
-3456 -2954
-7626 -7750
--4677 1426
--9602 -5688
-9431 8968
--728 -708
--4779 2166
-1231 2800
-6502 -3295
-5471 5187
-820 2988
-1926 5749
-4674 7919
-3584 7196
--7511 -8104
--6153 5374
--3847 5287
--7392 -4821
--5011 2547
--8804 3655
--3787 2948
--3573 -8427
--6258 -3851
--1371 4929
--6251 -8226
-1875 -6420
--2399 -2117
-8982 5828
-8003 6575
-4008 -6433
-2201 6700
--2554 -3102
--1405 5128
-9258 2094
--4776 7101
-4388 -8929
--9844 -6621
-9745 3721
--9942 -8424
--1946 -3529
-547 8482
--2544 -6306
--8032 -3439
-7503 -2103
--8471 -3443
--5464 -4586
--1127 -6998
--9473 -3047
-7783 -2487
--5585 9456
-2249 -4682
-4469 4112
--9965 -5222
--4226 -8027
--823 -9212
-9400 -3986
-7172 4087
-3250 4800
-9056 6909
-2452 9420
-9206 9208
-2744 -887
--134 -5819
-9462 -9635
-1797 8546
--6728 3773
--6559 6474
--3330 -6633
-4332 5120
--2614 -1076
--8709 -2456
--5973 1884
--4101 8904
--1623 1069
--5131 620
--5176 -3650
--7440 5861
--1261 -6061
-9452 4487
--774 5599
--5320 -3015
--7986 -1520
-216 -7435
-2275 9404
-3234 5254
--4508 -7140
--370 -7645
-6583 1991
--9175 4213
-2333 9968
--375 -4237
-6506 -4331
--8497 -2500
--122 -5976
-7806 -477
--3989 -1534
-4380 -1997
--6240 -7201
-3915 6056
--1337 -3372
--2552 -7064
-1851 8794
--4829 8340
--550 1239
-7577 5352
--3225 -295
-810 3021
-7343 -7352
--5125 -4739
-4357 -232
-924 32
--8126 -7605
--6319 1270
--7754 -6963
-6778 4687
-769 -5766
--3141 9785
--6548 6038
-6718 190
--2377 -7733
-8634 6856
-9457 -9167
-3977 -7298
-9910 6580
--2822 -1829
-7941 3708
--2705 3587
-2210 -1590
-1355 1718
-4912 9332
--2284 -7214
--5923 -2413
-4991 3775
-22 9776
--2253 6520
-8513 -9026
--1989 -7786
--8304 -9414
--3903 -3252
-1361 7152
--190 -6904
--2757 -5408
-9504 4783
--8405 -4383
--4373 -3927
-3673 -4545
--2719 -9238
-4702 1231
--1051 -3860
--5541 3970
-5124 5202
-4599 8980
--8962 -8020
--2105 -9967
--14 1811
-5499 9580
--1369 1967
--8714 -8025
-9930 -3585
-9813 -5363
-9482 -4498
-7402 -8583
--1542 4119
-2135 -3861
-795 -8116
--3529 9611
-8510 -1264
--8999 -9615
--3905 -4974
--3512 8423
--8075 4689
-6896 9845
-8088 -4172
-2085 5325
-7776 5113
--5087 9482
-7492 210
--8739 5974
--4797 -4170
--8772 -6007
--4483 1025
-6930 -2675
-2635 3745
--1953 -2844
--577 -4229
-9194 -6441
-2735 509
-2755 1901
--5240 -4655
--5354 -169
-391 -3503
--912 9245
--1226 4368
--7372 -8137
-3497 -6600
-7109 1369
--7037 -5911
--3542 4732
--6218 9814
-6819 8249
-4240 6816
--4594 7234
-3003 767
--8850 -3347
-4394 341
--7290 1166
--9028 -763
--7384 6102
--6998 -8778
--301 -5409
-6204 -4173
-2719 -6173
-2713 5141
-5006 -1309
--7799 -8268
-2559 -7421
-8783 -2203
--6553 3414
--783 291
--7450 8900
--2758 -3973
--2132 1557
--5076 -7419
--8491 -3520
-7667 -7687
-4765 -5737
-2493 -1651
--1599 -3133
--4195 -9077
-6761 -3943
-2355 6831
--2743 -641
-5157 -9160
--5648 -8634
--9803 3865
-499 -9236
--2673 4842
-2544 -4263
--43 7852
--2285 5577
--4759 6323
-235 -5756
--7474 -3760
-8369 -3457
--5414 -9424
--1350 5270
-6472 3012
-5357 -9277
-4039 3103
-7815 7346
-4940 2091
--4493 6336
--2035 6246
--3703 698
-8192 2947
--3945 7157
--5901 -5883
--547 -8468
--1403 -5528
--5167 5953
-8122 -4514
-4440 9174
--7013 4149
--6437 -9571
--4917 -9210
--8246 -4070
-8302 -349
-9467 -1644
-7976 -7706
-3827 -9208
-7401 9549
-2 9263
-2941 6992
-2784 6635
-4931 3817
--1039 -1065
-7981 -2940
-6573 5836
-1389 5466
--5447 -7383
-1407 -1558
--6036 8792
-7801 2020
-5857 1324
-6931 6823
-5560 -4245
--2996 2552
--2951 123
-3773 5850
--1803 7543
--1447 1252
-6176 -7124
--254 -7625
-9996 -4098
--1024 -8684
--7468 1438
--2273 4044
--7242 -1213
-9110 -2620
-5328 -2842
-4774 -2572
--5442 -3403
-6969 3213
--6904 1442
--387 -1578
-6249 -893
-7385 1163
--1238 -1478
--8220 -4126
--2568 5094
-7778 -5251
--8169 2576
-3502 -3330
--5678 5119
-5401 6910
-5333 -6747
-1940 -3231
--6087 -2857
--2321 -8833
-8862 -664
-281 -9015
-8548 -7270
--9255 -4668
--4546 -1539
-9510 6370
-979 -554
-7486 -9929
-827 -1108
--7491 6268
--2394 -8912
--905 -606
--9209 3820
-1231 1334
--7455 4883
-6758 33
-6717 2794
--827 -6889
-8617 -8666
--4688 7028
-3164 919
-6800 -5224
--849 -813
--2467 -7298
--6456 -8634
--9610 -2490
--403 -1686
-9424 -5117
-769 5660
--8772 -513
-2248 5337
--3269 -7235
--1818 -1786
-9000 -3145
-7502 -5497
--6337 -8161
-9984 8287
-2287 -8479
--9956 1980
-2031 -5496
--7442 -7756
--3820 -4153
--8834 671
-9316 2475
--798 1232
-399 -3604
-1195 7891
--2825 3490
-4583 9802
-2520 7424
--572 -2328
--1576 -1474
--336 9268
-7854 526
--3686 3655
-9087 6379
-7919 7311
--9832 -3646
--5304 6909
-3042 8475
-6877 2103
--8449 -7580
--1117 -4260
-422 9770
-4562 -1939
-9279 5060
-2652 2731
-3316 998
-3167 -3995
--669 8733
-8815 -1757
--1300 6523
-9924 -7586
-2279 2424
--4981 -3545
-563 -1071
--1669 -3577
-7996 8768
--4451 -7963
-2172 7398
-9596 -74
-7329 7934
--8977 -740
--360 -369
-5199 -1347
--6214 -8163
-3921 2482
--8267 4111
-6613 5176
-7673 2417
--3732 3732
-4089 2077
-3204 8301
--2346 -2679
-9714 -477
--6526 9664
-1699 6241
--4799 -5595
--1861 -6926
--1174 8329
-6309 8855
--5158 -4827
-4630 799
--6541 4421
-1657 -3967
--8874 7649
--7193 -6622
--2169 -7514
--5565 3811
-6668 -6086
--1207 5153
-2174 -4007
-9072 2740
--8570 -5145
--1492 -8394
--5958 -318
--5956 -3902
--9585 -230
--2184 3436
-8780 -8005
-2841 -3897
--4468 2391
-8583 8595
-2535 968
--487 -2894
-6883 5516
--8582 7733
-4652 4259
--1766 -1502
--4006 -7821
--1439 3043
-7593 -6578
--1260 -2999
--5592 1262
-3309 5450
-9174 8128
--5581 8130
--146 -7444
-4288 4705
-2734 -4754
--9456 -2556
--5459 -1390
--7970 8225
-6888 -4209
--9917 6149
-8537 -8678
-8918 9884
-9756 -9197
-3258 1828
--6699 -7094
-2452 -974
--5675 3696
--385 -2774
-7995 -711
--7560 8564
--1055 9938
-5232 -9098
--3506 -5774
--8441 3138
-600 5440
--1057 7076
--3846 -6420
-6627 -5016
--4486 1876
--5948 -8567
-6903 4958
-3253 -4298
-6035 53
-864 -2359
--8209 7591
-9242 5487
-3263 -2066
--6011 -9908
-9369 2263
-5189 -7785
-896 -9561
--7777 8500
-5438 -1211
--3136 -9928
-7211 -5577
--5418 2631
-7841 877
--7103 3759
-6174 -7154
--8982 7623
-7573 6256
-2089 7150
--9181 2784
--144 6840
--6930 5815
--6706 8371
--7884 -6495
-4475 7880
--7148 3717
-8251 -2138
-4828 7810
--193 841
-7715 -9200
-2312 3818
-3125 7196
-7562 -6509
-7455 -2455
-4071 -1639
-656 -1617
--1019 -5545
-9899 9920
-1921 -6610
-4629 -1804
--5238 5751
--6668 8185
--7437 -4096
-510 4714
--6337 2907
-2267 -4935
--9687 1634
-228 -831
-7145 -5265
--2289 7424
--2953 -2515
-7890 3152
-2714 6393
--3217 4390
-4189 -5587
-6387 -3731
-3799 1203
-2183 -4494
--7388 -7044
--8111 524
--7937 -5983
-7738 7022
--6933 -8905
-582 -5179
--9662 -8752
--8554 -8633
-8797 -6910
--9165 -1508
-7553 3701
--575 154
--3573 -7357
-2022 -5559
-1451 9674
--885 -1182
-9140 5045
-2082 1218
--9945 -8014
-6631 5507
--5744 8230
-940 -2132
--7026 -2414
--6081 -2084
-2780 1937
--578 8244
-1074 6464
-8737 -224
-4491 -3782
-8554 -8254
-1121 8984
-8368 -3939
--3442 9129
-6249 -5266
--6097 -8194
--5165 -80
-8187 -8845
--8689 5675
--8698 7875
-3735 -2003
--858 1418
--1553 8818
--1967 155
--2757 -1493
--9945 -2805
-358 -4467
-5180 -1968
--2257 -1670
-7226 1864
--5219 5214
--4709 -7779
-637 -1047
-167
--5356 -465
--2592 -8882
--3530 -7592
--778 -7329
--5876 -8762
-9865 5935
--1361 8309
--4806 1707
--7394 8566
-9783 7243
-5897 -1048
-9101 4403
--3443 2634
--8615 1530
-6634 -2556
--9942 -6471
--6702 5920
-8193 842
--7253 9079
-764 -9323
--7427 6318
--2247 -843
--4037 1894
-5351 915
--8559 -9230
--2535 7781
-1814 1078
-9851 -4083
-6104 1806
--773 8687
-7194 -6180
--7026 -7129
--8334 3099
-8562 -8138
--8824 2354
-5213 2271
--4319 1139
--3510 8411
-661 4547
-3293 1628
-6746 5067
--7572 8747
--1361 -899
--2094 6657
--7292 -5460
-5392 -8020
-4858 911
-2874 4839
--7804 3028
-7191 -4438
--6244 3167
-5759 3958
--2731 -9
-5043 -7093
-9458 2029
-6108 3678
-8903 -835
--4262 3692
--8176 7766
-969 4763
-7181 -192
-723 -2027
--4635 -9462
-8869 1707
--1712 -4177
-5825 818
--8186 -6772
-886 4660
--5672 -7930
--6264 -1293
-7231 -5579
-7281 -8857
-1079 -1260
-1141 -2447
--5389 8207
-1699 -7488
--4691 -144
-8091 -4343
-9966 -2201
-906 -9674
--9118 6519
--5898 5455
--4919 -752
--1885 -7367
-1318 -451
-3693 -3872
--1338 9699
-9803 -6829
-367 3123
--6569 2831
-5946 1960
--1767 -2758
-770 5212
--4460 7103
-337 -1240
-8796 -7567
-7135 6849
--5171 7107
-2843 -8868
-1078 7723
--8197 -5718
--1827 3117
-4307 4811
--2196 -8652
-7340 6282
--9235 8694
-1443 -8819
--8256 8591
-3929 3593
--5052 -8270
-5120 -5078
--4876 8287
-7677 3254
-1056 1544
-5931 7395
-2482 -5915
-1896 5097
--7614 9083
-1785 4161
-3473 2882
-245 5855
--344 -1892
-7703 -2893
--2362 5165
-7970 -6617
-4749 1787
--9527 -4314
-9366 -2998
-6931 -1257
--6808 5845
-1378 -5075
--2477 1745
--9295 5832
--8726 -8023
-8140 -1522
-3292 6689
-8365 -7531
--5688 3867
-8094 8972
-8785 -309
-8227 9900
--7594 -4984
-4912 773
--5452 808
-5880 2360
-1929 -8984
--6609 368
--1317 -2243
--2998 7727
--8553 -6822
-5107 -670
-1235 2411
-6296 3568
-2152 -1730
--9478 -9155
-7223 -3192
--5620 6572
-7720 3383
--8186 7157
-4691 9092
--234 -2394
-3961 -4656
--4228 -421
--9314 1846
--9817 -5984
-4714 6304
-7199 -3799
-24
-1036 -8669
-3377 -9341
-9794 -8451
-1114 9803
-6370 -4882
--6499 4193
-7875 -2849
-8908 8680
-9122 -1254
--3169 6729
-9648 3691
-801 -8065
-9377 9846
--7257 3914
--8906 2241
-5661 7728
--6820 -4365
-564 -158
--7781 8584
-504 -3719
--8097 -3340
-6382 6824
--1387 7618
-9005 -7271
-351
--8105 -4925
--4746 -7488
--2288 -8082
-4880 3725
-8347 1760
-1757 7300
-4084 -9901
-8644 -2873
-9393 -3031
--2964 -825
--2163 -750
-3637 7206
-7479 5375
--7636 -2679
-3838 9288
--1715 -3898
--5205 -9530
-6783 5369
--9145 117
-1084 54
-6974 -6178
-9830 -8367
-245 6203
--4862 3376
--1077 -3676
--8193 -7215
--7763 9394
--2918 6487
--5207 -8337
-4318 7895
-7779 -4503
-1362 -2881
-5241 3597
-4315 -7366
--688 7831
--4002 -7068
--4427 6478
-2917 -580
--1142 -3821
--5364 -4469
--9916 -4681
--1361 -7532
-705 188
--625 -2431
-6421 -9691
-4549 3330
--4868 -8738
--6150 7205
-3414 -6895
--392 -4078
-6009 -7292
-4291 -7600
-9582 -707
-9466 839
--6354 7513
-7458 3870
--1771 -3447
-9894 3846
-7884 5296
--123 -8202
--5462 -2553
--8151 -2520
-6044 -4361
-4925 759
-732 3260
-7459 8117
--5067 -1455
--6712 -7413
-5572 5385
-5023 6655
--3698 -8086
-1592 5909
-2109 2468
-7993 3046
-5402 5391
--5716 5067
-4263 7838
--394 1898
--6362 82
--4467 -78
--2511 -5680
--3462 153
--1825 10
--8349 2237
--6603 -371
-9663 -7285
-4436 7255
--5653 3714
-7444 1838
-8181 7629
-8836 -7746
-6380 2237
--3154 -8451
--4022 -7434
--9272 -3932
--5141 9188
-191 7774
-7364 -480
-1335 470
--8530 4928
-2867 8499
-7236 7842
-5447 9243
--5646 -1725
-5478 7901
-5758 2682
--1480 -8727
-6001 7399
--8454 -1305
-6442 7618
--5336 5269
--2516 -6035
-4702 4297
-4150 3780
-5360 -7466
--6271 -1051
-7875 6271
-836 -6591
--9537 -885
-4685 5222
--6714 814
-5525 -2906
-9227 -2879
-648 -8355
-9694 1780
-6430 -2208
--4617 7233
--8750 -8348
-2272 6034
--6556 -7784
-6288 -899
-8410 1634
--7496 -9989
-3662 -7738
-2319 -5183
-5468 -599
--554 9262
-2592 6806
--1225 90
--9582 -2443
-6435 -250
-1807 4126
-6872 -7052
--1680 9752
-5837 6634
-6481 -5635
--6538 -9047
--8554 -6646
-1653 7381
--4894 9689
-6862 417
--2198 -9345
-5961 4218
--8509 9508
-1650 -6829
-6942 906
-1167 7314
--414 -2508
-104 -7025
--1405 -6299
--7151 6462
--4264 -5850
-3378 2698
-2308 -5687
--7128 -799
--6274 -8900
--7257 5163
-4764 -1516
--8546 -470
-7778 -1766
--1625 -5863
-6682 -5204
-9683 5826
--5540 -4544
--2162 1620
-8955 9322
-3513 -7148
-171 -1941
--2861 8186
-4302 5784
--4340 -6324
-3890 4718
--4984 7339
--9642 7284
-4991 -2240
-3589 7990
--1456 3743
-8664 -7541
-9092 -7582
-2176 -4328
-2872 -6872
--2488 -215
-7355 5880
-3645 -2177
--9814 -1327
-6782 9346
--7082 9042
-6925 -9497
-8859 5429
--9583 8010
--3828 -4335
--1254 -5522
-3238 4428
-6125 4438
--9095 5908
-1437 -8129
-5784 -5345
--6140 -791
-8235 6289
--9601 3814
-9249 3555
-7328 -4873
--9342 3241
-3609 6466
-333 -708
--147 -9927
--6843 -3046
--7692 8995
-9723 4706
--1892 -6225
--3645 -2586
-8755 7273
-8517 3224
-169 9947
-7743 5342
-7575 -9358
-6450 -6595
-2476 3099
--4716 -3600
--9961 6382
--1829 4410
--4841 3308
-572 5764
-4524 -5025
--9496 2764
-7178 -4047
--660 6977
-413 -8340
-4138 1453
-2044 -8673
-9099 -7333
-2581 9687
-3528 -7460
-3317 4245
--8838 3055
-4567 4858
--6959 2367
--7132 -3262
-315 865
-2869 9958
-1703 -5932
--6418 6312
-9112 2570
-7465 6265
--9189 -6714
-7055 8682
-6109 287
-2063 -9285
-7115 -6452
--3696 8729
--1329 2396
-2514 4453
-4421 7076
--7208 -4830
--9077 -2158
--9056 -8598
--7203 -9688
-9345 -1313
-984 -7910
--5577 -9966
-2315 7500
-7420 8383
--7006 -8604
--7240 -3782
-8260 472
--1599 8759
-4256 -189
-2718 -2295
--3867 6875
--4639 336
-3845 1662
--8451 6249
-9520 8171
--8867 -1341
--6708 2416
--6874 5738
-7763 -4789
-7936 -5506
-6704 -4412
--340 1601
--4388 -4086
-9285 4657
--6280 -6371
--1349 2120
--9874 -4181
-8812 -9213
--9629 3978
-3871 4968
-3268 7963
-4982 4213
-9893 1286
--533 6502
-5915 6460
--1428 9032
-5252 350
-6724 8361
-7238 928
--5655 8841
-3089 -9187
-96 9369
-6686 1172
--4275 3795
--419 -6180
-116 1881
--4129 3465
--789 4056
-1103 9935
--895 -5653
--6381 6086
--4464 4338
--3173 -3033
-7245 9318
-5527 2691
--5148 -7552
-9884 -9357
--2259 -4508
-1260 -4946
-4378 5345
--6995 4673
-7189 -6939
-1595 8168
--4073 2606
--870 4066
-1370 2349
--9084 -7152
--5825 -5642
-7151 7657
-5678 8878
-5707 4860
--7147 9072
-6762 -7902
-9954 -7863
-5445 -1843
--9351 1022
--1892 -6324
-5260 1352
--1378 -8585
--8246 -8834
--5928 1612
--2988 6986
-4628 5274
diff --git a/examples/BAPC2014/testdata.out b/examples/BAPC2014/testdata.out
deleted file mode 100644
--- a/examples/BAPC2014/testdata.out
+++ /dev/null
@@ -1,78 +0,0 @@
-92210814
-88343466
-93671289
-87057782
-96232690
-94638324
-92852070
-92987572
-92744228
-97779736
-800
-200052736
-199995410
-0
-1280
-4096
-2304
-1024
-371513194
-374362054
-377188700
-376064444
-373665909
-376562872.5
-364442449
-365333194.5
-382802310.5
-371894230
-358267136
-368224075
-368543700
-377758295.5
-376702807.5
-356447037.5
-377131502
-377490682.5
-378118548
-372155990.5
-383333198.5
-352680168
-371294967
-376500650
-376274258
-368283202.5
-382473268
-368020279
-363707143.5
-373665106.5
-369035942
-366940652
-370708656
-371569688
-378140728
-373974300
-359873951.5
-360773601.5
-369896954
-351975481
-359847959.5
-367623183
-359879556
-379433260.5
-378837725
-364060059.5
-357774392
-370114715
-370832552
-357111020
-347979354.5
-323491260
-353187255.5
-381838262
-189877347.5
-361709734.5
-351329926
-318801902.5
-264706770
-334690037.5
diff --git a/examples/Demo/Delaunay.hs b/examples/Demo/Delaunay.hs
deleted file mode 100644
--- a/examples/Demo/Delaunay.hs
+++ /dev/null
@@ -1,56 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-module Demo.Delaunay where
-
-import           Algorithms.Geometry.DelaunayTriangulation.DivideAndConquer
-import           Algorithms.Geometry.DelaunayTriangulation.Types
-import           Algorithms.Geometry.EuclideanMST.EuclideanMST
-import           Control.Lens
-import           Data.Data
-import           Data.Ext
-import           Data.Geometry
-import           Data.Geometry.Ipe
-import qualified Data.List.NonEmpty as NonEmpty
-import           Data.Semigroup
-import           Options.Applicative
-
-
-data Options = Options { _inPath    :: FilePath
-                       , _outFile   :: FilePath
-                       }
-               deriving Data
-
-options :: ParserInfo Options
-options = info (helper <*> parser)
-               (  progDesc "Compute the Delaunay Triangulation of the points in the input file."
-               <> header   "Delaunay"
-               )
-  where
-    parser = Options
-          <$> strOption (help "Input file (in ipe7 xml format)"
-                         <> short 'i'
-                        )
-          <*> strOption (help "Output File (in ipe7 xml format)"
-                         <> short 'o'
-                        )
-
-mainWith                          :: Options -> IO ()
-mainWith (Options inFile outFile) = do
-    ePage <- readSinglePageFile inFile
-    case ePage of
-      Left err                         -> print err
-      Right (page :: IpePage Rational) -> case page^..content.traverse._IpeUse of
-        []         -> putStrLn "No points found"
-        syms@(_:_) -> do
-           let pts  = syms&traverse.core %~ (^.symbolPoint)
-               pts' = NonEmpty.fromList pts
-               dt   = delaunayTriangulation $ pts'
-               emst = euclideanMST pts'
-               out  = [iO $ drawTriangulation dt, iO $ drawTree' emst]
-           -- print $ length $ edges' dt
-           -- print $ toPlaneGraph (Proxy :: Proxy DT) dt
-           writeIpeFile outFile . singlePageFromContent $ out
-
-
-data DT
-
---xs = [(1,(1,1)) , (2,(2,2)) ]
diff --git a/examples/Demo/DrawGPX.hs b/examples/Demo/DrawGPX.hs
deleted file mode 100644
--- a/examples/Demo/DrawGPX.hs
+++ /dev/null
@@ -1,184 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE TupleSections #-}
-{-# LANGUAGE TypeOperators #-}
-module Demo.DrawGPX where
-
-import           Algorithms.Geometry.PolyLineSimplification.DouglasPeucker
-import           Control.Applicative
-import           Control.Lens
-import           Data.Data
-import           Data.Ext
-import qualified Data.Foldable as F
-import           Data.Geometry
-import           Data.Geometry.Ipe
-import           Data.Geometry.PolyLine
-import           Data.Geometry.Vector
-import           Data.List (isSuffixOf)
-import           Data.Maybe
-import           Data.Semigroup
-import qualified Data.Sequence as S
-import qualified Data.Text as T
-import           Data.Time.Calendar
-import           Data.Time.Clock
-import           Demo.GPXParser
-import           Options.Applicative
-import           System.Directory
-import           Text.Printf (printf)
-
-
---------------------------------------------------------------------------------
-
-data Options = Options { _inPath  :: FilePath
-                       , _outPath :: FilePath
-                       }
-               deriving Data
-
-options :: ParserInfo Options
-options = info (helper <*> parser)
-               (  progDesc "Draws gpx trajectories in ipe"
-               <> header   "DrawGPX"
-               )
-  where
-    parser = Options
-          <$> strOption (help "Input Directory"
-                         <> short 'i'
-                         <> metavar "INDIR"
-                        )
-          <*> strOption (help "Output File"
-                         <> short 'o'
-                         <> metavar "TARGET"
-                        )
-
---------------------------------------------------------------------------------
-
-mainWith                          :: Options -> IO ()
-mainWith (Options inPath outPath) = do
-    let inPath' = inPath ++ "/"
-    files <- map (inPath' ++) . filter (isSuffixOf ".gpx")
-         <$> getDirectoryContents inPath'
-    tks   <- concatMap (_tracks . combineTracks) <$> mapM readGPXFile files
-    let polies  = mapMaybe asPolyLine tks
-        polies' = map (douglasPeucker 0.01 . scaleUniformlyBy 100) polies
-        pg = singlePageFromContent $ map (iO . defIO) polies'
-    -- print pg
-    writeIpeFile outPath pg
-
-
-colors :: [T.Text]
-colors = map (T.unwords . map (T.pack . printf "%.4f" . (/ 256.0))) colors'
-  where
-    colors' :: [[Double]]
-    -- colors' = [ [84,48,5]
-    --           , [140,81,10]
-    --           , [191,129,45]
-    --           , [223,194,125]
-    --           , [246,232,195]
-    --           , [245,245,245]
-    --           , [199,234,229]
-    --           , [128,205,193]
-    --           , [53,151,143]
-    --           , [1,102,94]
-    --           , [0,60,48]
-    --           , [0,0,0]
-    --           ]
-    colors' = [ [166,206,227]
-              , [31,120,180]
-              , [178,223,138]
-              , [51,160,44]
-              , [251,154,153]
-              , [227,26,28]
-              , [253,191,111]
-              , [255,127,0]
-              , [202,178,214]
-              , [106,61,154]
-              , [255,255,153]
-              , [177,89,40]
-              ]
-
--- readCoords    :: FilePath -> IO (PolyLine 2 () Double)
--- readCoords fp = fromPoints .
---                 map ((\[x,y] -> point2 x y :+ ()) . map read . words) . lines
---              <$> readFile fp
-
--- readCoords'    :: FilePath -> IO [PolyLine 2 () Double]
--- readCoords' fp = mapMaybe (fmap fromPoints . g . f)  .  group' . lines <$> readFile fp
---   where
---     f = map ((\[x,y] -> point2 x y :+ ()) . map read . words)
---     g xs@(_:_:_) = Just xs
---     g _          = Nothing
-
--- group' lst = case break (== "NL") lst of
---                ([],[]) -> []
---                ([],"NL":r) -> group' r
---                (pr,"NL":r) -> pr:group' r
---                (pr,[])     -> [pr]
-
-
-
--- maps = mapM (\f -> readCoords $ "/Users/frank/tmp/bikerides/maps/" ++ f)
---        [ "nld_coords.txt"
---        , "bel_coords.txt"
---        , "dnk_coords.txt"
---        , "fra_coords.txt"
---        ]
-
--- --   do
--- --     nld <- readCoords
--- --     writePolyLineFile "/tmp/nld.ipe" $  map (flip stroke "black") [nld]
-
-
-
-
-
-
-asPolyLine :: Track -> Maybe (PolyLine 2 UTCTime Double)
-asPolyLine = fmap fromPoints . f . map toPt . _trackPoints
-  where
-    f xs@(_:_:_) = Just xs
-    f _          = Nothing
-
-toPt :: TrackPoint -> Point 2 Double :+ Time
-toPt (TP (pos :+ t)) = point2 (pos^.longitude) (pos^.latitude) :+ t
-
-ssFactor = 1
-
-worldWidth  = 1000
-worldHeight = 1000
-world = (worldWidth,worldHeight)
-
--- colors = [ "red" , "purple" , "blue" , "green" , "orange"  ]
-
-strokeByMonth p = stroke p c
-  where
-    dt = p^.points.to F.toList.to head.extra
-    (_,m,_) = toGregorian $ utctDay dt
-    c = colors !! (m -1)
-
-stroke p c = (p&points.traverse.extra .~ (),[("stroke",c)])
-
-
-groupsOf      :: Int -> [a] -> [[a]]
-groupsOf _ [] = []
-groupsOf k xs = let (ys,xss) = splitAt k xs in ys : groupsOf k xss
-
-subsample   :: Int -> [a] -> [a]
-subsample k = map head . groupsOf k
-
-subsampleTrack   :: Int -> Track -> Track
-subsampleTrack k = over trackPoints (subsample k)
-
-
--- | Given the width and height of the map and a Position, compute a Mercato Projection of
--- the position. See
--- <http://en.wikipedia.org/wiki/Mercator_projection#Derivation_of_the_Mercator_projection
--- WikiPedia> for more info.
-mercatoProject                    :: (Double,Double)
-                                  -> Position
-                                  -> Point 2 Double
-mercatoProject (width,height) pos = point2 x y
-  where
-    x    =                (width / 360)    * pos^.longitude
-    y    = (height / 2) - (width / (2*pi)) * (log . tan $ (pi / 4) + (latR / 2))
-    latR = -1 * pos^.latitude * pi / 180
diff --git a/examples/Demo/ExpectedPairwiseDistance.hs b/examples/Demo/ExpectedPairwiseDistance.hs
deleted file mode 100644
--- a/examples/Demo/ExpectedPairwiseDistance.hs
+++ /dev/null
@@ -1,209 +0,0 @@
-{-# LANGUAGE UndecidableInstances #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-module Demo.ExpectedPairwiseDistance where
-
-import           Algorithms.Geometry.Diameter
-import           Algorithms.Geometry.WellSeparatedPairDecomposition.Types
-import           Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD
-import           Control.Lens
-import           Control.Monad ((<=<))
-import           Data.BinaryTree
-import qualified Data.ByteString as B
-import qualified Data.ByteString.Char8 as C
-import           Data.Char (isSpace)
-import           Data.Ext
-import qualified Data.Foldable as F
-import           Data.Geometry
-import qualified Data.List.NonEmpty as NonEmpty
-import           Data.Maybe (mapMaybe)
-import           Data.Proxy
-import           Data.Data
-import           Data.Semigroup
-import qualified Data.Set as Set
-import           GHC.TypeLits
-import           Options.Applicative hiding ((<>))
-
-
-import           Debug.Trace
---------------------------------------------------------------------------------
-
-
-data Options = Options { _inPath    :: FilePath }
-               deriving Data
-
-options :: ParserInfo Options
-options = info (helper <*> parser)
-               (  progDesc "Compute expected pairwise distance of the points in the input file."
-               <> header   "Expected Pairwise Distance"
-               )
-  where
-    parser = Options
-          <$> strOption (help "Input file"
-                         <> short 'i'
-                        )
-
---------------------------------------------------------------------------------
-
--- | Evaluates the formula: $\sum_{p,q \in pts} \|pq\|*Prb[sample has size k
--- and contains p and q]$ which solves to $\frac{{n-2 \choose k-2}}{{n \choose
--- k}} \sum_{p,q} \|pq\|$
---
--- running time: $O(n^2)$, where $n$ is the number of points
-expectedPairwiseDistance       :: (Floating r, Arity d) => Int -> [Point d r :+ p] -> r
-expectedPairwiseDistance k pts = makeExpected k pts pairwiseDist
-
--- | A $(1+\varepsilon)$-approximation of expectedPairwiseDistance
---
--- running time: $O(n(1/eps)^d + n\log n)$, where $n$ is the number of points
-approxExpectedPairwiseDistance          :: (Floating r, Ord r
-                                           , Arity d, Arity (d+1), 1 <= d
-                                         , Show r, Show p)
-                                         => r -> Int -> [Point d r :+ p] -> r
-approxExpectedPairwiseDistance eps k pts =
-  makeExpected k pts (approxPairwiseDistance eps)
-
---------------------------------------------------------------------------------
--- * Computing Distances
-
--- | Sum of the pairwise distances
-pairwiseDist     :: (Floating r, Arity d) => [Point d r :+ p] -> r
-pairwiseDist pts = sum [ euclideanDist (p^.core) (q^.core) | p <- pts, q <- pts] / 2
-
-
--- | $(1+\eps)$-approximation of the sum of the pairwise distances.
---
--- running time: $O(n(1/eps)^d + n\log n)$, where $n$ is the number of points
-approxPairwiseDistance         :: (Floating r, Ord r, Arity d, Arity (d+1), 1 <= d
-                                  , Show r, Show p)
-                               => r -> [Point d r :+ p] -> r
-approxPairwiseDistance _   []  = 0
-approxPairwiseDistance eps pts =
-    sum [ (size as)*(size bs)*euclideanDist (repr as) (repr bs) | (as,bs) <- pairs ]
-  where
-    t     = withSizes . fairSplitTree . NonEmpty.fromList $ pts
-    pairs = wellSeparatedPairs (4 / eps) t
-
-    size (access' -> (Sized (Size i) _))  = fromIntegral i
-    repr (access' -> (Sized _ (First p))) = p^.core
-
-
--- wspPairs = fairSplitTree . NonEmpty.fromList
-
---------------------------------------------------------------------------------
--- * Helper stuff
-
--- | Helper to turn the result of 'f k' into 'the expected 'f k', assuming that
--- we select a set of k points.
-makeExpected         :: (Fractional r, Foldable t) => Int -> t a -> (t a -> r) -> r
-makeExpected k pts f = prb * f pts
-  where
-    n   = length pts
-    prb = ((n - 2) `choose` (k - 2)) / (n `choose` k)
-
-
-choose       :: (Integral a, Num b) => a -> a -> b
-n `choose` k = fromIntegral $ fac n' `div` (fac (n'-k') * fac k')
-  where
-    n' :: Integer
-    n' = fromIntegral n
-    k' :: Integer
-    k' = fromIntegral k
-
-    fac z = product [1..z]
-
--- newtype WSPDMeasured a = WSPDMeasured a
-
--- instance Measured (Sized (First a)) (WSPDMeasured a) where
---   measure (WSPDMeasured p) = Sized 1 (First p)
-
--- instance Measured v (WSPDMeasured (Point d r :+ p))
---            => Measured v (SplitTree d p r v) where
---   measure (Leaf p)      = measure $ WSPDMeasured p
---   measure (Node _ nd _) = nd^.nodeData
-
--- | Annotate the split tree with sizes
-withSizes :: SplitTree d p r a -> SplitTree d p r (Sized (First (Point d r :+ p)))
-withSizes = foldUp f Leaf
-  where
-    f l (NodeData j b _) r = let nd = (access' l) <> (access' r)
-                             in Node l (NodeData j b nd) r
-
--- | Get the measurement for a given splittree
-access'               :: BinLeafTree (NodeData d r (Sized (First a))) a -> Sized (First a)
-access' (Leaf x)      = Sized 1 (First x)
-access' (Node _ nd _) = nd^.nodeData
-
-
---
--- | CVS file, in which every line consists of a name, followed by exactly d coordinates
-parseInput :: forall d r. (Arity d, KnownNat d, Read r)
-           => B.ByteString -> [Point d r :+ B.ByteString]
-parseInput = mapMaybe toPoint . drop 1 . C.lines
-  where
-    trim      = fst . C.spanEnd isSpace . C.dropWhile isSpace
-    fromList' = vectorFromList . take (fromInteger . natVal $ (Proxy :: Proxy d))
-
-    toPoint bs = let (n:rs) = map trim . C.split ',' $ bs
-                     p      = fmap Point . fromList' . map (read . C.unpack) $ rs
-                 in (:+ n) <$> p
-
-
-readInput :: (Arity d, KnownNat d, Read r) => FilePath -> IO [Point d r :+ C.ByteString]
-readInput = fmap parseInput . B.readFile
-
-test :: FilePath -> IO [Point 2 Double :+ C.ByteString]
-test = readInput
-
-testTree = fmap f .test
-  where
-    f pts = uncovered pts (4 / 0.05) (fairSplitTree $ NonEmpty.fromList pts)
-
--- compareBoth     :: r -> FilePath -> IO (r, r, Bool)
-compareBoth eps = fmap f . test
-  where
-    f pts = let exact  = pairwiseDist pts
-                approx = approxPairwiseDistance eps pts
-            in (exact, approx, (1-eps)*exact <= approx && approx <= (1+eps)*exact)
-
-
-compareBoth1 eps pts = let exact  = pairwiseDist pts
-                           approx = approxPairwiseDistance eps pts
-                       in (exact, approx, (1-eps)*exact <= approx && approx <= (1+eps)*exact)
-
-
-mainWith (Options f) = compareBoth 0.05 f >>= print
-
-
---------------------------------------------------------------------------------
--- testing stuff
-
-
--- | Computes all pairs of points that are uncovered by the WSPD with separation s
-uncovered         :: (Floating r, Ord r, Arity d, Arity (d+1), Ord p)
-                  => [Point d r :+ p] -> r -> SplitTree d p r a -> [(Point d r :+ p, Point d r :+ p)]
-uncovered pts s t = Set.toList $ allPairs `Set.difference` covered
-  where
-    allPairs = Set.fromList [ (p,q) | p <- pts, q <- pts, p < q ]
-    covered  = Set.unions [ mkSet as bs | (as,bs) <- wellSeparatedPairs s t]
-
-mkSet as bs = Set.fromList [ (min a b,max a b) | a <- F.toList as, b <- F.toList bs]
-
--- | Naively check if a WSP pair is actually well separated with respect to
--- separation s. i.e. computes the maximum diameter of as and bs, and then
--- tests by brute force if all pairs (a,b) from different sets are at distance
--- at least s times the maximum diameter.
-isWellSeparated           :: (Floating r, Ord r, Arity d) => r -> WSP d p r a -> Bool
-isWellSeparated s (as,bs) =
-    and [ euclideanDist (a^.core) (b^.core) >= s*d | a <- F.toList as, b <- F.toList bs ]
-  where
-    d = (/2) . maximum . map (diameterNaive . F.toList) $ [as,bs]
-
-
-nonWellSeparated s = map (\(a,b,c) -> (a,b))
-                   . filter (\(a,b,c) -> not c)
-                   . map (\p@(a,b) -> (a,b,isWellSeparated s p))
-                   . wellSeparatedPairs s . fairSplitTree . NonEmpty.fromList
-
-
-points1 :: [Point 2 Double :+ ()]
-points1 = ext <$> [point2 0 0, point2 1 1, point2 2 10, point2 3 11, point2 5 5, point2 10 0]
diff --git a/examples/Demo/GPXParser.hs b/examples/Demo/GPXParser.hs
deleted file mode 100644
--- a/examples/Demo/GPXParser.hs
+++ /dev/null
@@ -1,109 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE TupleSections #-}
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE TypeOperators #-}
-module Demo.GPXParser where
-
-
-
-import           Control.Lens
-import qualified Data.ByteString.Lazy as B
-import           Data.Ext
-import           Data.Geometry.Point
-import           Data.Maybe
-import           Data.Semigroup
-import           Data.Time.Clock
-import           Data.Time.Format
-import           Text.XML.Expat.Tree
-
-import           Debug.Trace
-
---------------------------------------------------------------------------------
-
-type Time = UTCTime
-
-newtype Position = Position {_unP :: Point 2 Double}  deriving (Show,Eq)
-makeLenses ''Position
-
-latitude :: Lens' Position Double
-latitude = unP.xCoord
-
-longitude :: Lens' Position Double
-longitude = unP.yCoord
-
-
-newtype TrackPoint = TP {_unTP :: Position :+ Time} deriving (Show,Eq)
-makeLenses ''TrackPoint
-
-newtype Track = Track { _trackPoints :: [TrackPoint] } deriving (Show,Eq)
-makeLenses ''Track
-
-newtype Activity = Activity { _tracks :: [Track]} deriving (Show,Eq)
-makeLenses ''Activity
-
-
-combineTracks (Activity ts) = Activity [Track $ concatMap _trackPoints ts]
-
-
-readGPXFile    :: FilePath -> IO Activity
-readGPXFile fp = (r . fst . parse defaultParseOptions) <$> B.readFile fp
-  where
-    -- l m = error . show $ m
-    r = fromJust . parseGPX
-
-class ReadGPX t where
-  parseGPX :: Node String String -> Maybe t
-
-instance ReadGPX Activity where
-  parseGPX x = case selectPath ["gpx"] x of
-    [x@(Element _ _ chs)] -> Just . Activity . mapMaybe parseGPX . chsWith "trk" $ x
-
-
-    --                      concatMap (selectPath [""Track"]) $ chs
-    -- _                 -> Nothing
-
-
-
-instance ReadGPX Track where
-  parseGPX x@(Element "trk" _ _) = Just . Track . mapMaybe parseGPX . concatMap (chsWith "trkpt") . chsWith "trkseg" $ x
-
-
-
-
-instance ReadGPX TrackPoint where
-  parseGPX x@(Element "trkpt" ats _) = (\p t -> TP $ p :+ t) <$> pos <*> time
-    where
-      pos  = (\l l' -> Position $ point2 l l') <$> lat <*> lon
-      time = fmap (readTime' . extract) . listToMaybe . chsWith "time" $ x
-
-      lat = read <$> lookup "lat" ats
-      lon = read <$> lookup "lon" ats
-
-
-extract = (\(Text s) -> s) . head . eChildren
-
-readTime' :: String -> UTCTime
-readTime' = parseTimeOrError True defaultTimeLocale "%0C%y-%m-%dT%TZ"
-
--- instance ReadGPX Position where
---   parseGPX x@(Element "Position" _ _) = (\l l' -> Position $ point2 l l') <$> lat <*> lon
-
---     where
---       f n = listToMaybe . map (read . extract) . (chsWith n) $ x
---       lat = f "LatitudeDegrees"
---       lon = f "LongitudeDegrees"
-
-selectPath :: [String] -> Node String String -> [Node String String]
-selectPath []  _ = []
-selectPath [n] x | hasName n x = [x]
-                 | otherwise   = []
-selectPath (n:p) x | hasName n x = concatMap (selectPath p) $ eChildren x
-                   | otherwise   = []
-
-chsWith   :: String -> Node String String -> [Node String String]
-chsWith n = filter (hasName n) . eChildren
-
-hasName   :: String -> Node String String -> Bool
-hasName _ (Text _) = False
-hasName n (Element n' _ _) = n == n'
diff --git a/examples/Demo/MinDisk.hs b/examples/Demo/MinDisk.hs
deleted file mode 100644
--- a/examples/Demo/MinDisk.hs
+++ /dev/null
@@ -1,65 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-module Demo.MinDisk where
-
-import           Algorithms.Geometry.SmallestEnclosingBall.RandomizedIncrementalConstruction
-import           Algorithms.Geometry.SmallestEnclosingBall.Types
-import           Control.Lens
-import           Data.Data
-import           Data.Ext
-import qualified Data.Foldable as F
-import           Data.Geometry
-import           Data.Geometry.Ball
-import           Data.Geometry.Ipe
-import           Data.Geometry.Line
-import qualified Data.LSeq as LSeq
-import qualified Data.Traversable as Tr
-import           Options.Applicative
-import           System.Random
-
---------------------------------------------------------------------------------
-
-newtype Options = Options { inPath  :: FilePath }
-                deriving Data
-
-options :: ParserInfo Options
-options = info (helper <*> parser)
-               (  progDesc "Given an ipe file with a set of points, computes the smallest enclosing disk of the points."
-               <> header   "MinDisk - Computes the smallest enclosing disk of a set of points"
-               )
-  where
-    parser = Options
-          <$> strOption (help "Input File (in ipe7 xml format)")
-
---------------------------------------------------------------------------------
-
-diskResult :: Floating r => IpeOut (DiskResult p r) Group r
-diskResult (DiskResult d pts) = ipeGroup (iO' d  : (F.toList . fmap g $ pts))
-  where
-    g p = iO' (p^.core)
-
-mainWith              :: Options -> IO ()
-mainWith (Options fp) = do
-    ep <- readSinglePageFile fp
-    gen <- getStdGen
-    case ep of
-      Left err                       -> print err
-      Right (ipeP :: IpePage Double) ->
-        case map ext $ ipeP^..content.Tr.traverse._IpeUse.core.symbolPoint of
-          pts@(_:_:_) -> do
-                           let res = smallestEnclosingDisk gen pts
-                           printAsIpeSelection . iO . diskResult $ res
-          _           -> putStrLn "Not enough points!"
-
-
-      -- polies = ipeP^..content.Tr.traverse._IpePath.core._asPolyLine
-
-      -- print pls
-      -- mapM_ (print . (^.enclosingDisk) . minDisk' gen) polies
-      -- mapM_ (printAsIpeSelection . asIpe diskResult . minDisk' gen) polies
-
-
-minDisk' :: RandomGen g => g -> PolyLine 2 () Double -> DiskResult () Double
-minDisk' = minDisk
-
-minDisk    :: (Ord r, Fractional r, RandomGen g) => g -> PolyLine 2 () r -> DiskResult () r
-minDisk gen pl = smallestEnclosingDisk gen (F.toList $ pl^.points)
diff --git a/examples/Demo/TriangulateWorld.hs b/examples/Demo/TriangulateWorld.hs
deleted file mode 100644
--- a/examples/Demo/TriangulateWorld.hs
+++ /dev/null
@@ -1,100 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-module Demo.TriangulateWorld where
-
-import Algorithms.Geometry.LineSegmentIntersection (hasSelfIntersections)
-import Algorithms.Geometry.PolygonTriangulation.Triangulate (triangulate)
-import Algorithms.Geometry.PolygonTriangulation.MakeMonotone (makeMonotone)
-import Data.Maybe(mapMaybe)
-import Control.Lens
-import Data.Data
-import Data.Ext
-import Data.Geometry.Ipe
-import Data.Geometry.Polygon
-import Data.Geometry.PlanarSubdivision
-import Data.Semigroup
-import Options.Applicative
-import qualified Data.Foldable as F
-
-
---------------------------------------------------------------------------------
-
-data Options = Options { _inPath    :: FilePath
-                       , _outFile   :: FilePath
-                       }
-               deriving Data
-
-options :: ParserInfo Options
-options = info (helper <*> parser)
-               (  progDesc "Triangulate all polygons in the input file."
-               <> header   "trianguldateWorld"
-               )
-  where
-    parser = Options
-          <$> strOption (help "Input file (in ipe7 xml format)"
-                         <> short 'i'
-                        )
-          <*> strOption (help "Output File (in ipe7 xml format)"
-                         <> short 'o'
-                        )
-
-data PX = PX
-
-mainWith                          :: Options -> IO ()
-mainWith (Options inFile outFile) = do
-    ePage <- readSinglePageFile inFile
-    case ePage of
-      Left err                         -> print err
-      Right (page :: IpePage Rational) -> runPage page
-  where
-    runPage page = do
-      let polies  = page^..content.to flattenGroups.traverse._withAttrs _IpePath _asSimplePolygon
-          polies' = filter (not . hasSelfIntersections . (^.core)) polies
-          subdivs = map (\(pg :+ _) -> triangulate (Identity PX) pg) polies'
-          yMonotones = tail . mapMaybe (^?_2.core._Left)
-                     . concatMap (F.toList.rawFacePolygons) $ subdivs
-          ofs = map (\s -> rawFaceBoundary (outerFaceId s) s) subdivs
-          segs    = map (^._2.core) . concatMap (F.toList . edgeSegments) $ subdivs
-          out     = mconcat [ [ iO' pg | pg <- polies ]
-                            , [ iO' s  | s  <- segs ]
-                            , [ iO' pg | pg <- yMonotones ]
-                            ]
-      mapM_ print . map (\pg -> pg^.core.to polygonVertices.to length) $ polies'
-      writeIpeFile outFile . singlePageFromContent $ out
-
-
--- mainWith                          :: Options -> IO ()
--- mainWith (Options inFile outFile) = do
---     ePage <- readSinglePageFile inFile
---     case ePage of
---       Left err                         -> print err
---       Right (page :: IpePage Rational) -> runPage page
---   where
---     runPage page = do
---       let orig = page^.content
---           all' = page^.content.to flattenGroups
---       writeIpeFile outFile . singlePageFromContent $ orig <> all'
-
-
--- type ValT = EitherT IO
-
--- flattenGroups :: [IpeObject r] -> [IpeObject r]
--- flattenGroups = concatMap flattenGroups'
-
--- flattenGroups'                              :: IpeObject r -> [IpeObject r]
--- flattenGroups' (IpeGroup (Group gs :+ ats)) =
---       map (applyAts ats) . concatMap flattenGroups' $ gs
---     where
---       applyAts ats = id
--- flattenGroups' o                            = [o]
-
--- runExcept'   :: (Show e) => ExceptT e IO () -> IO ()
--- runExcept' m = runExceptT m >>= \case
---                 Left e   -> print e
---                 Right () -> pure ()
-
--- mainWith                          :: Options -> IO ()
--- mainWith (Options inFile outFile) = runExcept' $ do
---     (page :: IpePage Rational) <- readSinglePageFile inFile
---     let polies = page^..content.traverse._withAttrs _IpePath _asSimplePolygon
---     let out = undefinedL
---     lift $  writeIpeFile outFile . singlePageFromContent $ out
diff --git a/examples/Demo/WriteEnsemble.hs b/examples/Demo/WriteEnsemble.hs
deleted file mode 100644
--- a/examples/Demo/WriteEnsemble.hs
+++ /dev/null
@@ -1,93 +0,0 @@
-module Demo.WriteEnsemble where
-
-import Control.Lens
-import Data.Data
-import Data.Ext
-import Data.Fixed
-import qualified Data.Text as T
-import qualified Data.Text.IO as TIO
-import Data.Geometry.Ipe
-import Data.Geometry
-import Data.Geometry.PolyLine(fromPoints)
-import System.Directory
-import Data.List(isSuffixOf)
-import Data.Time.Calendar
-import Options.Applicative
-
-
---------------------------------------------------------------------------------
-
-data Options = Options { kind    :: String
-                       , inPath  :: FilePath
-                       , outPath :: FilePath
-                       }
-               deriving Data
-
-
-options :: ParserInfo Options
-options = info (helper <*> parser)
-               (  progDesc "Converts ensembles to ipe files"
-               <> header   "ensemblewriter - writes a weather ensembles to a ipe files"
-               )
-  where
-    parser = Options
-          <$> strOption (help "Kind of input data in the input files" )
-          <*> strOption (help "Input Directory")
-          <*> strOption (help "Output Directory")
-
---------------------------------------------------------------------------------
-
--- read a bunch of text files, each defining a time-series (ensemble), produce
--- an ipe file where each time-series is represented by a polyline.
-
-main :: IO ()
-main = execParser options >>= mainWith
-
-mainWith                               :: Options -> IO ()
-mainWith (Options kind inPath outPath) = do
-    inFiles <- filter (".dat" `isSuffixOf`) <$> getDirectoryContents inPath
-    let f = case kind of
-          "precip" -> asPrecipPt
-          _        -> asTempPt
-    polies <- mapM (fmap (asPts f) . readFile' . ((inPath ++ "/") ++)) inFiles
-    let polies' = map (fromPoints . take 100) . trim $ polies
-    writeIpeFile outPath . singlePageFromContent . map iO' $ polies'
-
-readFile'    :: String -> IO T.Text
-readFile' fp = putStrLn fp >> TIO.readFile fp
-
-maxStartDay :: [[core :+ Day]] -> Day
-maxStartDay = maximum . map ((^.extra) . head)
-
--- | Find the last starting day in the file, and trim all the lists s.t. they
--- all start at or after this day.
-trim    :: [[Point 2 Milli :+ Day]] -> [[Point 2 Milli :+ Day]]
-trim xs = let m      = maxStartDay xs
-              startD = fromIntegral $ toModifiedJulianDay m
-          in map ( map (\p -> p&core.xCoord %~ subtract startD)
-                 . dropWhile (\x -> x^.extra < m)
-                 ) xs
-
-
--- force'   :: Show r => IO (PolyLine 2 () r) -> IO (PolyLine 2 () r)
--- force' mkP = mkP >>= \p -> (putStrLn $ show p) >> return p
-
-read' :: Read a => T.Text -> a
-read' = read . T.unpack
-
-asPts   :: ([T.Text] -> b) -> T.Text -> [b]
-asPts f = map (f . T.words) . filter (\l -> T.head l /= '#') . T.lines
-
--- | read a line of the form: yyyy mm dd value
-asTempPt    :: [T.Text] -> Point 2 Milli :+ Day
-asTempPt ts = let [y,m,d] = map read' $ Prelude.init ts
-                  v       = read' $ last ts
-                  day     = fromGregorian y (fromInteger m) (fromInteger d)
-              in point2 (fromIntegral $ (toModifiedJulianDay day)) (10 * v) :+ day
-
--- | read a line of the form: yyyymmdd value
-asPrecipPt       :: [T.Text] -> Point 2 Milli :+ Day
-asPrecipPt [t,v] = let (y,t') = T.splitAt 4 t
-                       (m,d)  = T.splitAt 2 t'
-                       day    = fromGregorian (read' y) (read' m) (read' d)
-                   in point2 (fromIntegral $ (toModifiedJulianDay day)) (10 * read' v) :+ day
diff --git a/examples/Main.hs b/examples/Main.hs
deleted file mode 100644
--- a/examples/Main.hs
+++ /dev/null
@@ -1,81 +0,0 @@
-module Main where
-
-import Data.Monoid
-import Control.Applicative
-import Options.Applicative
-import Data.Data
-
---------------------------------------------------------------------------------
-
-import qualified Demo.DrawGPX as DrawGPX
-import qualified Demo.WriteEnsemble as EnsembleWriter
-import qualified Demo.MinDisk as MinDisk
-import qualified Demo.Delaunay as Delaunay
-import qualified Demo.ExpectedPairwiseDistance as ExpPWD
-import qualified Demo.TriangulateWorld as TriangulateWorld
-
-
-
-
---------------------------------------------------------------------------------
-
-data Options = BAPC                      BAPCOptions
-             | DrawGPX                   DrawGPX.Options
-             | EnsembleWriter            EnsembleWriter.Options
-             | MinDisk                   MinDisk.Options
-             | Delaunay                  Delaunay.Options
-             | ExpectedPairwiseDistance  ExpPWD.Options
-             | TriangulateWorld          TriangulateWorld.Options
-             deriving Data
-
-parser :: Parser Options
-parser = subparser (
-       command' DrawGPX                        DrawGPX.options
-    <> command' EnsembleWriter                 EnsembleWriter.options
-    <> command' MinDisk                        MinDisk.options
-    <> command' Delaunay                       Delaunay.options
-    <> command' ExpectedPairwiseDistance       ExpPWD.options
-    <> command' TriangulateWorld               TriangulateWorld.options
-    )
-
-
-mainWith       :: Options -> IO ()
-mainWith opts' = case opts' of
-  BAPC _                              -> putStrLn "not yet"
-  DrawGPX opts                        -> DrawGPX.mainWith opts
-  EnsembleWriter opts                 -> EnsembleWriter.mainWith opts
-  MinDisk opts                        -> MinDisk.mainWith opts
-  Delaunay opts                       -> Delaunay.mainWith opts
-  ExpectedPairwiseDistance opts       -> ExpPWD.mainWith opts
-  TriangulateWorld opts               -> TriangulateWorld.mainWith opts
-
---------------------------------------------------------------------------------
-
-options :: ParserInfo Options
-options = info (helper <*> parser)
-               (  progDesc "Example programs for HGeometry. Use -h to get a list of programs."
-               <> header   "hgeometry-examples - Examples for HGeometry"
-               )
-
---------------------------------------------------------------------------------
-
-main :: IO ()
-main = execParser options >>= mainWith
-
-
-command'          :: Data o => (a -> o) -> ParserInfo a -> Mod CommandFields o
-command' constr p = command (show . toConstr $ constr undefined) (constr <$> p)
-
-
-noOpts :: InfoMod () -> ParserInfo ()
-noOpts = info (pure ())
-
-
-
-
-
-
-
-data BAPCOptions = BAPCOptions { year :: Int
-                               }
-                   deriving Data
diff --git a/examples/bapc_examples.hs b/examples/bapc_examples.hs
deleted file mode 100644
--- a/examples/bapc_examples.hs
+++ /dev/null
@@ -1,73 +0,0 @@
-module Main where
-
-
-import qualified BAPC2012.Gunslinger
-import qualified BAPC2014.Armybase
-
-
-
-import           Control.Applicative
-import           Control.Monad(unless)
-import           System.Exit
-
-type Algorithm = String -> String
-
-examplesPrefixPath = "examples/"
-
-
-data BAPCTest = BAPC { name      :: String
-                     , directory :: FilePath
-                     , algo      :: Algorithm
-                     , files     :: [(FilePath,FilePath)]
-                     }
-
-
-bapcTests = [ BAPC "Armybase" "BAPC2014" BAPC2014.Armybase.armybase
-                   [ ("sample.in",   "sample.out")
-                   , ("testdata.in", "testdata.out")
-                   ]
-            -- , BAPC "Gunslinger" "BAPC2012" BAPC2012.Gunslinger.gunslinger
-            --        [ ("sampleG.in",   "sampleG.out")
-            --        , ("G.in", "G.out")
-            --        ]
-            ]
-
-main :: IO ()
-main = mapM_ runBAPCTest bapcTests
-
---------------------------------------------------------------------------------
-
-runBAPCTest                 :: BAPCTest -> IO ()
-runBAPCTest (BAPC n p alg fs) = do
-  let dash = replicate 80 '-'
-  putStrLn dash
-  putStrLn $ "Running tests for " ++ n
-  putStrLn dash
-  b <- runTests p alg fs
-  unless b exitFailure
-  putStrLn $ "Tests for " ++ n ++ " PASSED."
-  putStrLn dash
-
-
-runTests     :: FilePath -> Algorithm -> [(FilePath, FilePath)] -> IO Bool
-runTests p f = runTests' f . map (both (p' ++))
-  where
-    p'           = concat [examplesPrefixPath, p, "/"]
-    both g (a,b) = (g a, g b)
-
--- | Given an algorithm and a list of pairs: (inputFile,solutionFile), run all tests
-runTests'   :: Algorithm -> [(FilePath, FilePath)] -> IO Bool
-runTests' f = allM (uncurry $ runTest f)
-
-runTest                       :: Algorithm
-                              -> FilePath -> FilePath
-                              -> IO Bool
-runTest f inFile solutionFile = (\input solution -> f input == solution)
-                             <$> readFile inFile
-                             <*> readFile solutionFile
-
---------------------------------------------------------------------------------
-
-
-allM   :: (Functor m , Monad m) => (a -> m Bool) -> [a] -> m Bool
-allM f = fmap and . mapM f
diff --git a/hgeometry.cabal b/hgeometry.cabal
--- a/hgeometry.cabal
+++ b/hgeometry.cabal
@@ -1,8 +1,5 @@
--- Initial hgeometry.cabal generated by cabal init.  For further
--- documentation, see http://haskell.org/cabal/users-guide/
-
 name:                hgeometry
-version:             0.8.0.0
+version:             0.9.0.0
 synopsis:            Geometric Algorithms, Data structures, and Data types.
 description:
   HGeometry provides some basic geometry types, and geometric algorithms and
@@ -22,38 +19,32 @@
 category:            Geometry
 build-type:          Simple
 
-data-files:          resources/basic.isy
-                     test/Algorithms/Geometry/LineSegmentIntersection/manual.ipe
+data-files:          test/Algorithms/Geometry/LineSegmentIntersection/manual.ipe
                      test/Algorithms/Geometry/LineSegmentIntersection/selfIntersections.ipe
                      test/Algorithms/Geometry/LowerEnvelope/manual.ipe
                      test/Algorithms/Geometry/PolygonTriangulation/monotone.ipe
                      test/Algorithms/Geometry/PolygonTriangulation/simplepolygon6.ipe
                      test/Algorithms/Geometry/SmallestEnclosingDisk/manual.ipe
+                     test/Algorithms/Geometry/LinearProgramming/manual.ipe
+                     test/Algorithms/Geometry/RedBlueSeparator/manual.ipe
                      test/Data/Geometry/pointInPolygon.ipe
                      test/Data/Geometry/pointInTriangle.ipe
+                     test/Data/Geometry/Polygon/star_shaped.ipe
                      test/Data/Geometry/Polygon/Convex/convexTests.ipe
                      test/Data/Geometry/arrangement.ipe
                      test/Data/Geometry/arrangement.ipe.out.ipe
-                     test/Data/myGraph.yaml
-                     test/Data/myPlaneGraph.yaml
-
-                     examples/BAPC2014/sample.in
-                     examples/BAPC2014/sample.out
-                     examples/BAPC2014/testdata.in
-                     examples/BAPC2014/testdata.out
-                     examples/BAPC2012/G.in
-                     examples/BAPC2012/G.out
-                     examples/BAPC2012/sampleG.in
-                     examples/BAPC2012/sampleG.out
+                     test/Data/PlaneGraph/myPlaneGraph.yaml
+                     test/Data/PlaneGraph/small.yaml
+                     test/Data/PlaneGraph/testsegs.png
 
                      -- in the future (cabal >=2.4) we can use
                      -- examples/**/*.in
                      -- examples/**/*.out
 
 extra-source-files:  README.md
-                     changelog.md
+                     changelog.org
 
-Extra-doc-files:     docs/Data/PlanarGraph/testG.png
+Extra-doc-files:
                      -- docs/**/*.png
 
 cabal-version:       2.0
@@ -61,22 +52,6 @@
   type:     git
   location: https://github.com/noinia/hgeometry
 
-
-flag examples
-  description: Build demonstration programs
-  default:     False
-  manual:      True
-
-flag with-quickcheck
-  description: Include QuickCheck instances
-  default:     True
-  manual:      False
-
-flag interactive
-  description: Build  interactive parts
-  default:     False
-  manual:      True
-
 library
   ghc-options: -O2 -Wall -fno-warn-unticked-promoted-constructors -fno-warn-type-defaults
 
@@ -105,6 +80,7 @@
                     Data.Geometry.HalfLine
                     Data.Geometry.PolyLine
                     Data.Geometry.HyperPlane
+                    Data.Geometry.HalfSpace
                     Data.Geometry.Triangle
                     -- Data.Geometry.Plane
                     Data.Geometry.Slab
@@ -122,13 +98,19 @@
                     Data.Geometry.KDTree
 
                     Data.Geometry.PlanarSubdivision
+                    Data.Geometry.PlanarSubdivision.Raw
                     Data.Geometry.PlanarSubdivision.Basic
-                    Data.Geometry.PlanarSubdivision.Draw
+                    Data.Geometry.PlanarSubdivision.Merge
 
                     Data.Geometry.Arrangement
                     Data.Geometry.Arrangement.Internal
-                    Data.Geometry.Arrangement.Draw
 
+                    Data.Geometry.RangeTree
+                    Data.Geometry.RangeTree.Measure
+                    Data.Geometry.RangeTree.Generic
+
+                    Data.Geometry.PrioritySearchTree
+
                     -- * Algorithms
 
                     -- * Geometric Algorithms
@@ -154,7 +136,7 @@
 
                     Algorithms.Geometry.Diameter
 
-                    Algorithms.Geometry.Sweep
+                    -- Algorithms.Geometry.Sweep
 
                     Algorithms.Geometry.PolygonTriangulation.Types
                     Algorithms.Geometry.PolygonTriangulation.Triangulate
@@ -171,111 +153,62 @@
                     Algorithms.Geometry.ClosestPair.Naive
                     Algorithms.Geometry.ClosestPair.DivideAndConquer
 
-
-                    -- * Graph Algorithms
-                    Algorithms.Graph.DFS
-                    Algorithms.Graph.MST
-
-                    -- * Ipe Types
-                    Data.Geometry.Ipe
-                    Data.Geometry.Ipe.Literal
-                    Data.Geometry.Ipe.Value
-                    Data.Geometry.Ipe.Color
-                    Data.Geometry.Ipe.Attributes
-                    Data.Geometry.Ipe.Types
-                    Data.Geometry.Ipe.Writer
-                    Data.Geometry.Ipe.Reader
-                    Data.Geometry.Ipe.PathParser
-                    Data.Geometry.Ipe.IpeOut
-                    Data.Geometry.Ipe.FromIpe
+                    Algorithms.Geometry.LinearProgramming.Types
+                    Algorithms.Geometry.LinearProgramming.LP2DRIC
 
-                    -- * General Data Types
-                    Data.UnBounded
-                    Data.Range
-                    Data.Ext
-                    Data.LSeq
-                    Data.CircularSeq
-                    Data.Sequence.Util
-                    Data.BinaryTree
-                    Data.BinaryTree.Zipper
+                    Algorithms.Geometry.RedBlueSeparator.RIC
 
-                    Data.CircularList.Util
-                    Data.BalBST
-                    Data.OrdSeq
-                    Data.SlowSeq
-                    Data.Tree.Util
-                    Data.Util
+                    Algorithms.Geometry.FrechetDistance.Discrete
 
-                    -- * Planar Graphs
-                    Data.Permutation
-                    Data.PlanarGraph
+                    -- * Embedded Planar Graphs
                     Data.PlaneGraph
-                    Data.PlaneGraph.Draw
+                    Data.PlaneGraph.Core
+                    Data.PlaneGraph.AdjRep
+                    Data.PlaneGraph.IO
 
                     -- * Graphics stuff
                     Graphics.Camera
-
-                    -- * Other
-                    System.Random.Shuffle
-                    Control.Monad.State.Persistent
-                    Data.Yaml.Util
-
-
+                    Graphics.Render
 
   other-modules:
-                   Data.Geometry.Ipe.ParserPrimitives
 
 
-
-
   -- other-extensions:
   build-depends:
-                base             >= 4.10      &&     < 5
-              , bifunctors       >= 4.1
-              , bytestring       >= 0.10
-              , containers       >= 0.5.5
-              , dlist            >= 0.7
-              , contravariant    >= 1.4
-              , profunctors      >= 5.2.1
-              , lens             >= 4.2
-              , linear           >= 1.10
-              , semigroupoids    >= 5
-              , semigroups       >= 0.18
-              , singletons       >= 2.0
-              , text             >= 1.1.1.0
-              , vinyl            >= 0.6        && < 0.9
-              , deepseq          >= 1.1
-              , fingertree       >= 0.1
-              , colour           >= 2.3.3
-              , reflection       >= 2.1
-
-
-              -- , validation       >= 0.4
-
-              , parsec           >= 3
-                -- , tranformers      > 0.3
+                base                    >= 4.11      &&     < 5
+              , hgeometry-combinatorial >= 0.9.0.0
 
-              , vector           >= 0.11
-              , fixed-vector     >= 1.0
-              , data-clist       >= 0.0.7.2
+              , bifunctors              >= 4.1
+              , bytestring              >= 0.10
+              , containers              >= 0.5.9
+              , dlist                   >= 0.7
+              , lens                    >= 4.2
+              , semigroupoids           >= 5
+              , semigroups              >= 0.18
+              , singletons              >= 2.0
+              , linear                  >= 1.10
+              , fixed-vector            >= 1.0
+              , vector-builder          >= 0.3.7
+              , vinyl                   >= 0.10
+              , deepseq                 >= 1.1
+              , fingertree              >= 0.1
+              , MonadRandom             >= 0.5
+              , QuickCheck              >= 2.5
+              , quickcheck-instances    >= 0.3
+              , reflection              >= 2.1
 
-              , hexpat           >= 0.20.9
-              , aeson            >= 1.0
-              , yaml             >= 0.8
+              , vector                  >= 0.11
+              , data-clist              >= 0.1.2.3
+              , text                    >= 1.1.1.0
 
+              , aeson                   >= 1.0
+              , yaml                    >= 0.8
 
               , mtl
-              , random
               , template-haskell
 
-  if flag(with-quickcheck)
-    build-depends: QuickCheck              >= 2.5
-                 , quickcheck-instances    >= 0.3
-    exposed-modules: Test.QuickCheck.HGeometryInstances
 
-
   hs-source-dirs: src
-                  -- examples/demo
 
   default-language:    Haskell2010
 
@@ -287,6 +220,8 @@
                     , ConstraintKinds
                     , PolyKinds
                     , RankNTypes
+                    , TypeApplications
+                    , ScopedTypeVariables
 
                     , PatternSynonyms
                     , TupleSections
@@ -306,337 +241,13 @@
                     , FlexibleContexts
                     , MultiParamTypeClasses
 
-executable hgeometry-viewer
-  if !flag(interactive)
-    buildable: False
-  main-is: Viewer.hs
-
-  if flag(interactive)
-    build-depends: base
-                 , hgeometry
-                 , lens
-                 , containers
-                 , vinyl
-                 , semigroups
-                 , optparse-applicative   >= 0.13.0.0
-                 , text
-                 , hexpat
-                 , bytestring
-                 , directory
-                 , time
-                 , random
-                 , vector
-                 , colour
-                 , cairo-canvas           >= 0.1.0.0
-                 -- , sdl2                   >= 2.2.0
-                 , gi-gtk                 >= 3.0.15
-                 , reactive-banana-gi-gtk >= 0.2.0.0
-                 , cairo                  >= 0.13.3.1
-                 -- , gi-glib
-                 , gi-cairo
-                 , gi-gdk
-                 -- , gi-gdkpixbuf
-                 , gi-gtk
-                 , transformers
-                 , linear
-                 , haskell-gi-base
-                 , reactive-banana        >= 1.1.0.1
-
-
-
-  hs-source-dirs: interactive
-
-  other-modules: RenderCanvas
-                 RenderUtil
-                 -- ConvexHull
-
-  default-language: Haskell2010
-
-  default-extensions: TypeFamilies
-                    , GADTs
-                    , KindSignatures
-                    , DataKinds
-                    , TypeOperators
-                    , ConstraintKinds
-                    , PolyKinds
-                    , RankNTypes
-
-                    , PatternSynonyms
-                    , ViewPatterns
-
-                    , StandaloneDeriving
-                    , GeneralizedNewtypeDeriving
-                    , DeriveFunctor
-                    , DeriveFoldable
-                    , DeriveTraversable
-
-                    , DeriveDataTypeable
-                    , AutoDeriveTypeable
-
-                    , FlexibleInstances
-                    , FlexibleContexts
-                    , MultiParamTypeClasses
-
-
-
-
-executable hgeometry-examples
-  if !flag(examples)
-    buildable: False
-  main-is: Main.hs
-
-  if flag(examples)
-    build-depends: base
-                 , hgeometry
-                 , lens
-                 , containers
-                 , vinyl
-                 , semigroups
-                 , optparse-applicative   >= 0.13.0.0
-                 , text
-                 , hexpat
-                 , bytestring
-                 , directory
-                 , time
-                 , random
-                 , QuickCheck
-
-  hs-source-dirs: examples
-
-  other-modules: Demo.DrawGPX
-                 Demo.WriteEnsemble
-                 Demo.MinDisk
-                 Demo.Delaunay
-                 Demo.ExpectedPairwiseDistance
-                 Demo.TriangulateWorld
-                 Demo.GPXParser
-
-  default-language: Haskell2010
-
-  default-extensions: TypeFamilies
-                    , GADTs
-                    , KindSignatures
-                    , DataKinds
-                    , TypeOperators
-                    , ConstraintKinds
-                    , PolyKinds
-                    , RankNTypes
-
-                    , PatternSynonyms
-                    , ViewPatterns
-
-                    , StandaloneDeriving
-                    , GeneralizedNewtypeDeriving
-                    , DeriveFunctor
-                    , DeriveFoldable
-                    , DeriveTraversable
-
-                    , DeriveDataTypeable
-                    , AutoDeriveTypeable
-
-                    , FlexibleInstances
-                    , FlexibleContexts
-                    , MultiParamTypeClasses
-
-
-
 test-suite doctests
   type:          exitcode-stdio-1.0
   ghc-options:   -threaded
   main-is:       doctests.hs
   build-depends: base
                , doctest             >= 0.8
---               , doctest-discover
-
-  default-language:    Haskell2010
-
-test-suite hspec
-  type:                 exitcode-stdio-1.0
-  default-language:     Haskell2010
-  hs-source-dirs:       test
-  main-is:              Spec.hs
-  ghc-options:   -fno-warn-unticked-promoted-constructors
-                 -fno-warn-partial-type-signatures
-                 -fno-warn-missing-signatures
-
-  build-tool-depends: hspec-discover:hspec-discover
-
-
-  other-modules: Data.RangeSpec
-                 Data.EdgeOracleSpec
-                 Data.PlanarGraphSpec
-                 Data.PlaneGraphSpec
-                 Data.OrdSeqSpec
-                 Data.Geometry.Ipe.ReaderSpec
-                 Data.Geometry.PolygonSpec
-                 Data.Geometry.LineSegmentSpec
-                 Data.Geometry.PointSpec
-                 Data.Geometry.Polygon.Convex.ConvexSpec
-                 Data.Geometry.KDTreeSpec
-                 Data.Geometry.IntervalSpec
-                 Data.Geometry.BoxSpec
-                 Data.Geometry.LineSpec
-                 Data.Geometry.SubLineSpec
-                 Data.Geometry.PlanarSubdivisionSpec
-                 Data.Geometry.TriangleSpec
-                 Data.Geometry.ArrangementSpec
-
-                 Algorithms.Geometry.SmallestEnclosingDisk.RISpec
-                 Algorithms.Geometry.DelaunayTriangulation.DTSpec
-                 Algorithms.Geometry.WellSeparatedPairDecomposition.WSPDSpec
-                 Algorithms.Geometry.LineSegmentIntersection.BentleyOttmannSpec
-                 Algorithms.Geometry.PolygonTriangulation.MakeMonotoneSpec
-                 Algorithms.Geometry.PolygonTriangulation.TriangulateMonotoneSpec
-                 Algorithms.Geometry.LowerEnvelope.LowerEnvSpec
-                 Algorithms.Geometry.ConvexHull.ConvexHullSpec
-                 -- Algorithms.Geometry.HiddenSurfaceRemoval.HiddenSurfaceRemovalSpec
-                 Algorithms.Geometry.ClosestPair.ClosestPairSpec
-
-                 Util
-
-
-  build-depends:        base
-                      , hspec                >= 2.1
-                      , QuickCheck           >= 2.5
-                      , quickcheck-instances    >= 0.3
-                      , approximate-equality >= 1.1.0.2
-                      , hgeometry
-                      , lens
-                      , data-clist
-                      , linear
-                      , bytestring
-                      , vinyl
-                      , semigroups
-                      , vector
-                      , containers
-                      , random
-                      , singletons
-                      , colour
-                      , filepath
-                      , directory
-                      , yaml
-
-
-  default-extensions: TypeFamilies
-                    , GADTs
-                    , KindSignatures
-                    , DataKinds
-                    , TypeOperators
-                    , ConstraintKinds
-                    , PolyKinds
-                    , RankNTypes
-
-                    , PatternSynonyms
-                    , ViewPatterns
-                    , LambdaCase
-                    , TupleSections
-
-
-                    , StandaloneDeriving
-                    , GeneralizedNewtypeDeriving
-                    , DeriveFunctor
-                    , DeriveFoldable
-                    , DeriveTraversable
-
-                    , AutoDeriveTypeable
-
-                    , FlexibleInstances
-                    , FlexibleContexts
-                    , MultiParamTypeClasses
-                    , OverloadedStrings
-
-test-suite bapc_examples
-  type:          exitcode-stdio-1.0
-  ghc-options:   -O2 -fno-warn-unticked-promoted-constructors
-  main-is:       bapc_examples.hs
-  hs-source-dirs: examples
-  build-depends: base
-               , doctest    >= 0.8
-               , array      >= 0.5
-               , hgeometry
-               , lens
-               , data-clist
-               , linear
-               , semigroups
-
-  other-modules: BAPC2012.Gunslinger
-                 BAPC2014.Armybase
-
-  default-language:    Haskell2010
-
-  default-extensions: TypeFamilies
-                    , GADTs
-                    , DataKinds
-                    , TypeOperators
-                    , ConstraintKinds
-                    , PolyKinds
-                    , PatternSynonyms
-                    , ViewPatterns
-
-benchmark benchmarks
-
-  hs-source-dirs: benchmark test examples
-
-  main-is: Benchmarks.hs
-  type: exitcode-stdio-1.0
-
-  other-modules: Benchmark.Util
-                 Algorithms.Geometry.ConvexHull.Bench
-                 Algorithms.Geometry.ConvexHull.GrahamV2
-                 Algorithms.Geometry.ConvexHull.GrahamFam
-                 Algorithms.Geometry.ConvexHull.GrahamFamPeano
-                 Algorithms.Geometry.ConvexHull.GrahamFixed
-                 Data.Geometry.Vector.VectorFamily6
-                 Algorithms.Geometry.ConvexHull.GrahamFam6
-                 Data.Geometry.IntervalTreeBench
-                 Demo.ExpectedPairwiseDistance
-                 Demo.TriangulateWorld
-                 WSPDBench
-                 Algorithms.Geometry.ClosestPair.Bench
-
-  build-depends:
-                base
-              , criterion >= 1.1.4.0
-              , fixed-vector
-              , linear
-              , semigroups
-              , deepseq
-              , deepseq-generics
-              , hgeometry
-              , lens
-              , QuickCheck
-              , bytestring
-              , containers
-              , optparse-applicative
-
-  ghc-options: -Wall -O2 -rtsopts -fno-warn-unticked-promoted-constructors
+               , doctest-discover
+               , QuickCheck
 
   default-language:    Haskell2010
-
-  default-extensions: TypeFamilies
-                    , GADTs
-                    , KindSignatures
-                    , DataKinds
-                    , TypeOperators
-                    , ConstraintKinds
-                    , PolyKinds
-                    , RankNTypes
-
-                    , PatternSynonyms
-                    , ViewPatterns
-                    , LambdaCase
-                    , TupleSections
-
-
-                    , StandaloneDeriving
-                    , GeneralizedNewtypeDeriving
-                    , DeriveFunctor
-                    , DeriveFoldable
-                    , DeriveTraversable
-
-                    , AutoDeriveTypeable
-
-                    , FlexibleInstances
-                    , FlexibleContexts
-                    , MultiParamTypeClasses
-                    , OverloadedStrings
diff --git a/interactive/RenderCanvas.hs b/interactive/RenderCanvas.hs
deleted file mode 100644
--- a/interactive/RenderCanvas.hs
+++ /dev/null
@@ -1,177 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-module RenderCanvas where
-
-import           Control.Lens
-import           Data.Colour.SRGB(RGB(..), toSRGB24)
-import           Data.Colour.Names(readColourName)
-import           Data.Ext
-import           Data.Geometry
-import           Data.Geometry.Box
-import           Data.Geometry.Ipe.Attributes
-import           Data.Geometry.Ipe.Types hiding (ipeObject', width)
-import qualified Data.Geometry.Ipe.Attributes as A
-import           Data.Proxy
-import           Data.Vinyl
-import           Linear.V4 (V4(..))
-import           Graphics.Rendering.Cairo.Canvas (Canvas)
-import qualified Graphics.Rendering.Cairo.Canvas as Canvas
-import qualified Data.Text as T
-
-
-rectangle    :: (Real r, Ord r, Num r) => Rectangle p r -> Canvas ()
-rectangle r' = let r                       = bimap id realToFrac r'
-                   (Point2 x y :+ _,_,_,_) = corners r
-               in Canvas.rect $ Canvas.D x y (width r) (height r)
-
-polygon     :: Real r => SimplePolygon p r -> Canvas ()
-polygon pg' = let pg = bimap id realToFrac pg'
-              in Canvas.polygon $ pg^..outerBoundary.traverse.core.vector.to toV2
-
-lineSegment    :: Real r => LineSegment 2 p r -> Canvas ()
-lineSegment s' = let s = bimap id realToFrac s'
-                 in Canvas.line (s^.start.core.vector.to toV2) (s^.end.core.vector.to toV2)
-
-polyLine    :: Real r => PolyLine 2 p r -> Canvas ()
-polyLine p' = let p = bimap id realToFrac p'
-              in Canvas.shape Canvas.ShapeLines $ p^..points.traverse.core.vector.to toV2
-
--- | draw a point as a small disk
-point   :: Real r => Point 2 r -> Canvas ()
-point p = Canvas.circle' (realToFrac <$> (p^.vector.to toV2)) 5
-
--- | draw as a point
-point'   :: Real r => Point 2 r -> Canvas ()
-point' p = Canvas.point . fmap realToFrac $ p^.vector.to toV2
-
-pathSegment                     :: Real r => PathSegment r -> Canvas ()
-pathSegment (PolyLineSegment p) = polyLine p
-pathSegment (PolygonPath p)     = polygon p
-pathSegment _                   = error "pathSegment: Not implemented yet"
-
-
-ipeUse              :: Real r => IpeSymbol r -> Canvas ()
-ipeUse (Symbol p _) = Canvas.circle' (realToFrac <$> p^.vector.to toV2) 10
-
-ipePath          :: Real r => Path r -> Canvas ()
-ipePath (Path p) = mapM_ pathSegment p
-
-ipeGroup :: RealFrac r => Group r -> Canvas ()
-ipeGroup = mapM_ ipeObject . _groupItems
-
-ipeObject'              :: forall g r. (RealFrac r, AllSatisfy ApplyAttr (AttributesOf g))
-                        => (g r -> Canvas ())
-                        -> g r :+ IpeAttributes g r
-                        -> Canvas ()
-ipeObject' f (i :+ ats) = do
-                            Canvas.pushMatrix
-                            applyAttributes (Proxy :: Proxy g) ats
-                            f i
-                            Canvas.popMatrix
-
-ipeObject                  :: RealFrac r
-                           => IpeObject r -> Canvas ()
-ipeObject (IpeGroup g)     = ipeObject' ipeGroup g
-ipeObject (IpeImage _)     = undefined
-ipeObject (IpeTextLabel _) = undefined
-ipeObject (IpeMiniPage _)  = undefined
-ipeObject (IpeUse p)       = ipeObject' ipeUse  p
-ipeObject (IpePath p)      = ipeObject' ipePath p
-
-
-applyAttributes               :: (RealFrac r, AllSatisfy ApplyAttr (AttributesOf g))
-                              => proxy g -> IpeAttributes g r -> Canvas ()
-applyAttributes _ (Attrs ats) = applyAttributes' ats
-
-applyAttributes'            :: (RealFrac r, AllSatisfy ApplyAttr rs)
-                            => Rec (Attr (AttrMapSym1 r)) rs
-                            -> Canvas ()
-applyAttributes' RNil       = pure ()
-applyAttributes' (a :& ats) = applyAttribute a >> applyAttributes' ats
-
-
-newtype CanvasM = CanvasM { unCanvasM :: Canvas () }
-instance Monoid CanvasM where
-  mempty = CanvasM $ pure ()
-  (CanvasM a) `mappend` (CanvasM b) = CanvasM $ a >> b
-
-
-applyAttribute' :: (RealFrac r, ApplyAttr label)
-                => Attr (AttrMapSym1 r) label -> CanvasM
-applyAttribute' = CanvasM . applyAttribute
-
-
-class ApplyAttr (label :: AttributeUniverse) where
-  applyAttribute :: RealFrac r => Attr (AttrMapSym1 r) label -> Canvas ()
-
-
-instance ApplyAttr Stroke where
-  applyAttribute NoAttr   = pure ()
-  applyAttribute (Attr c) = maybe (pure ()) Canvas.stroke $ toCanvasColor c
-
-instance ApplyAttr Fill where
-  applyAttribute NoAttr   = pure ()
-  applyAttribute (Attr c) = maybe (pure ()) Canvas.fill $ toCanvasColor c
-
-instance ApplyAttr Pen where
-  applyAttribute NoAttr            = pure ()
-  applyAttribute (Attr (IpePen p)) = case p of
-      Named _  -> pure () -- TODO
-      Valued v -> Canvas.strokeWeight (realToFrac v)
-
-instance ApplyAttr Clip where
-  applyAttribute _ = pure ()
-
-instance ApplyAttr Size where
-  applyAttribute _ = pure ()
-
-instance ApplyAttr Dash where
-  applyAttribute _ = pure ()
-
-
-instance ApplyAttr Layer where
-  applyAttribute _ = pure ()
-
-instance ApplyAttr LineCap where
-  applyAttribute _ = pure ()
-
-instance ApplyAttr LineJoin where
-  applyAttribute _ = pure ()
-
-instance ApplyAttr A.Matrix where
-  applyAttribute _ = pure ()
-
-instance ApplyAttr Pin where
-  applyAttribute _ = pure ()
-
-instance ApplyAttr FillRule where
-  applyAttribute _ = pure ()
-
-instance ApplyAttr Arrow where
-  applyAttribute _ = pure ()
-
-instance ApplyAttr RArrow where
-  applyAttribute _ = pure ()
-
-instance ApplyAttr Opacity where
-  applyAttribute _ = pure ()
-
-instance ApplyAttr Tiling where
-  applyAttribute _ = pure ()
-
-instance ApplyAttr Gradient where
-  applyAttribute _ = pure ()
-
-instance ApplyAttr Transformations where
-  applyAttribute _ = pure ()
-
-
-
-
--- | Looks up the colorname in the SVG colors if it is a name.
-toCanvasColor :: RealFrac r => IpeColor r -> Maybe Canvas.Color
-toCanvasColor (IpeColor c) = case c of
-    Named t            -> h . toSRGB24 <$> readColourName (T.unpack $ T.toLower t)
-    Valued v           -> Just $ f v
-  where
-    f (RGB r g b) = floor <$> V4 (255 *r) (255*g) (255*b) 255
-    h (RGB r g b) = V4 r g b 255
diff --git a/interactive/RenderUtil.hs b/interactive/RenderUtil.hs
deleted file mode 100644
--- a/interactive/RenderUtil.hs
+++ /dev/null
@@ -1,81 +0,0 @@
-{-# LANGUAGE OverloadedLabels #-}
-module RenderUtil where
-
-import           Control.Monad.IO.Class (MonadIO)
-import           Control.Monad.Trans.Reader (runReaderT)
-import           Data.GI.Base
-import           Data.GI.Base.Signals (SignalInfo, HaskellCallbackType)
-import           Data.IORef
-import qualified Data.Text as T
-import           Foreign.Ptr (castPtr)
-import qualified GI.Cairo as GI.Cairo
-import qualified GI.Gtk as Gtk
-import           Graphics.Rendering.Cairo
-import           Graphics.Rendering.Cairo.Canvas (Canvas)
-import qualified Graphics.Rendering.Cairo.Canvas as Canvas
-import qualified Graphics.Rendering.Cairo.Internal as Cairo.Internal
-import           Graphics.Rendering.Cairo.Types (Cairo(Cairo))
-import           Linear.V2 (V2(..))
-import           Reactive.Banana
-import           Reactive.Banana.Frameworks
-import           Reactive.Banana.GI.Gtk
-
-
-
-
--- | This function bridges gi-cairo with the hand-written cairo
--- package. It takes a `GI.Cairo.Context` (as it appears in gi-cairo),
--- and a `Render` action (as in the cairo lib), and renders the
--- `Render` action into the given context.
-renderWithContext      :: MonadIO m => GI.Cairo.Context -> Render a -> m a
-renderWithContext ct r = liftIO $ withManagedPtr ct $ \p ->
-                         runReaderT (Cairo.Internal.runRender r) (Cairo (castPtr p))
-
-
-renderCanvas           :: MonadIO m => GI.Cairo.Context -> V2 Double -> Canvas a -> m a
-renderCanvas ct size c = liftIO $ Canvas.withRenderer (renderWithContext ct) size c
-
-
-showT :: Show a => a -> T.Text
-showT = T.pack . show
-
--- | Get an 'Reactive.Banana.Event' from
--- a 'Data.GI.Base.Signals.SignalProxy' that produces one argument.
-signalE1'
-    ::
-        ( HaskellCallbackType info ~ (a -> IO Bool)
-        , SignalInfo info
-        , Gtk.GObject self
-        )
-    => self
-    -> SignalProxy self info
-    -> (a -> IO b) -- ^ function to transform the Event with
-    -> MomentIO (Event b)
-signalE1' self signal h = signalEN self signal f >>= mapEventIO h
-  where
-    f g = \a -> g a >> return True -- we return True because the event has been
-                                   -- handled, don't want to propagate it
-                                   -- further
-
-
-draw                :: Gtk.DrawingArea -> Behavior (Canvas ()) -> MomentIO ()
-draw drawingArea bc = do
-    canvasRef <- liftIO . newIORef =<< valueB bc -- gets the initial canvas
-
-    -- set up reactive-banana to update the canvasRef on changes, and triger a
-    -- redraw
-    c <- valueBLater bc
-    liftIOLater $ writeIORef canvasRef c
-    e <- changes bc
-    reactimate' $ (fmap $ \c' -> do liftIO $ writeIORef canvasRef c'
-                                    #queueDraw drawingArea
-                  ) <$> e
-
-    -- registers drawing event handler
-    _ <- on drawingArea #draw $ \context -> do
-        w <- realToFrac . fromIntegral <$> #getAllocatedWidth  drawingArea
-        h <- realToFrac . fromIntegral <$> #getAllocatedHeight drawingArea
-        canvas <- readIORef canvasRef
-        renderCanvas context (V2 w h) canvas
-        pure True
-    pure ()
diff --git a/interactive/Viewer.hs b/interactive/Viewer.hs
deleted file mode 100644
--- a/interactive/Viewer.hs
+++ /dev/null
@@ -1,172 +0,0 @@
-{-# LANGUAGE OverloadedLabels #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-module Main where
-
-import           Control.Exception (catch)
-import           Control.Lens
-import           Control.Monad (forM_)
-import           Data.Ext
-import           Data.GI.Base
-import qualified Data.List.NonEmpty as NonEmpty
-import qualified Data.Text as T
-import qualified GI.Gdk as Gdk
-import qualified GI.Gtk as Gtk
-import           Graphics.Rendering.Cairo.Canvas (Canvas)
-import qualified Graphics.Rendering.Cairo.Canvas as Canvas
-import           Linear.Affine ((.-.),(.+^))
-import           Linear.V2
-import           Linear.Vector ((*^))
-import           Reactive.Banana
-import           Reactive.Banana.Frameworks
-import           Reactive.Banana.GI.Gtk
-import qualified RenderCanvas as Render
-import           RenderUtil
-
-main :: IO ()
-main = runGtk `catch` (\(e::Gtk.GError) -> Gtk.gerrorMessage e >>= putStrLn . T.unpack)
-  where
-    runGtk = do
-      _ <- Gtk.init Nothing
-      compile networkDescription >>= actuate
-      Gtk.main
-
-data ArrowKey = UpKey | DownKey | LeftKey | RightKey deriving (Show,Read,Eq,Bounded,Enum)
-
-toArrowKey         :: T.Text -> Maybe ArrowKey
-toArrowKey "Up"    = Just UpKey
-toArrowKey "Down"  = Just DownKey
-toArrowKey "Left"  = Just LeftKey
-toArrowKey "Right" = Just RightKey
-toArrowKey _       = Nothing
-
-
-
-
-toDirection          :: Num a => ArrowKey -> V2 a
-toDirection UpKey    = V2 0    1
-toDirection DownKey  = V2 0    (-1)
-toDirection LeftKey  = V2 (-1) 0
-toDirection RightKey = V2 1    0
-
-
-networkDescription :: MomentIO ()
-networkDescription = do
-    b <- Gtk.builderNew
-    _ <- Gtk.builderAddFromFile b "interactive/viewport.glade"
-
-    window   <- castB b "window" Gtk.Window
-    destroyE <- signalE0 window #destroy
-    reactimate $ Gtk.mainQuit <$ destroyE
-
-    -- mouseLabel <- castB b "mouseLabel" Gtk.Label
-
-    drawingArea  <- castB b "canvas" Gtk.DrawingArea
-    drawingAreaH <- realToFrac . fromIntegral . snd <$> #getPreferredHeight drawingArea
-    drawingAreaW <- realToFrac . fromIntegral . snd <$> #getPreferredWidth  drawingArea
-
-    Gtk.widgetAddEvents drawingArea (gflagsToWord [ Gdk.EventMaskPointerMotionMask
-                                                  , Gdk.EventMaskButtonPressMask
-                                                  , Gdk.EventMaskSmoothScrollMask
-                                                  , Gdk.EventMaskKeyPressMask
-                                                  ])
-
-    -- scroll Events
-    scrollE <- signalE1' drawingArea #scrollEvent $ \e ->
-                     Gdk.getEventScrollDeltaY e
-
-    -- events when we press a key
-    keyPressedE <- signalE1' drawingArea #keyPressEvent $ \e -> do
-                     v  <- Gdk.getEventKeyKeyval e
-                     Gdk.keyvalName v
-    -- events where we press an arrow key
-    let arrowKeyE = filterJust . fmap (>>= toArrowKey) $ keyPressedE
-
-    -- handle mouse clicks
-    mousePressedE <- signalE1' drawingArea #buttonPressEvent $ \e -> do
-                      x <- Gdk.getEventButtonX e
-                      y <- Gdk.getEventButtonY e
-                      return $! V2 x ((-1*y) + drawingAreaH)
-
-    lastMousePressB <- stepper undefined mousePressedE
-
-    -- mouse release
-    -- mouseReleasedE <- signalE1' drawingArea #buttonReleaseEvent $ \e -> do
-    --                     x <- Gdk.getEventButtonX e
-    --                     y <- Gdk.getEventButtonY e
-    --                     return $! V2 x ((-1*y) + drawingAreaH)
-
-    -- mouse coordinates
-    mouseMotionE <- signalE1' drawingArea #motionNotifyEvent $ \e -> do
-                      x  <- Gdk.getEventMotionX e
-                      y  <- Gdk.getEventMotionY e
-                      st <- Gdk.getEventMotionState e
-                      let !p = V2 x ((-1*y) + drawingAreaH)
-                      return (p,st)
-    mouseMotionB  <- stepper undefined mouseMotionE
-
-    -- difference between the current mouse position and where we clicked last
-    let dragOffsetB = (\p (q,_) -> p .-. q) <$> lastMousePressB <*> mouseMotionB
-
-        -- sample the displacement vector whenever we are have a move event
-        -- and the moude button is still on
-        dragOffsetE = dragOffsetB
-                   <@ filterE ((Gdk.ModifierTypeButton1Mask `elem`) . snd) mouseMotionE
-
-
-    zoomLevelB <- accumB 1 $ (\dy -> (+0.1*dy)) <$> scrollE
-
-
-    let lastPosE = unions [ (\k -> (.+^ 2 *^ toDirection k)) <$> arrowKeyE   -- key event
-                          , (\v -> (.+^ v))                  <$> dragOffsetE -- drag event
-                          ]
-    viewPortPosB <- accumB (V2 (drawingAreaW/2) (drawingAreaH/2)) $ lastPosE
-
-    let viewPortB = ViewPort <$> pure drawWorld'
-                             <*> pure (V2 drawingAreaW drawingAreaH)
-                             <*> viewPortPosB
-                             <*> zoomLevelB
-                             <*> pure 0
-
-    -- draw everything
-    draw drawingArea (mirrored drawingAreaH render <$> viewPortB)
-    #showAll window
-
-data ViewPort a = ViewPort { drawWorld             :: Canvas a
-                           , screenSize            :: V2 Double
-                           , clippwingWindowCenter :: V2 Double
-                           , zoomLevel             :: Double
-                           , rotation              :: Double
-                           }
-
-clippingWindow :: ViewPort a -> Canvas.Dim
-clippingWindow (ViewPort _ (V2 w h) (V2 cx cy) z _) = let x = cx - z*w/2
-                                                          y = cy - z*h/2
-                                                      in Canvas.D x y (z*w) (z*h)
-
--- some drawing
-drawWorld' :: Canvas ()
-drawWorld' = do
-    Canvas.background $ Canvas.gray 255
-    Canvas.stroke $ Canvas.gray 0
-    forM_ [1..20] $ \i ->
-      forM_ [1..16] $ \j -> do
-        Canvas.rect (Canvas.D (100*i) (100*j) 20 20)
-
--- | Mirror the canvas s.t. the bottom-left corner is the origin
-mirrored       :: Double -> (a -> Canvas ()) -> a -> Canvas ()
-mirrored h d x = do Canvas.scale     $ V2 1 (-1)
-                    Canvas.translate $ V2 0 (-1*h)
-                    d x
-
--- | Render the view
-render    :: ViewPort a -> Canvas a
-render vp = do
-    let (Canvas.D x y _ _) = clippingWindow vp
-
-    Canvas.scale $ V2 (1/zoomLevel vp) (1/zoomLevel vp) -- scale everything s.t. the
-                                                        -- cippingWindow equals
-                                                        -- the window size
-    Canvas.translate $ V2 (-1*x) (-1*y) -- move screen to the origin
-    drawWorld vp
diff --git a/resources/basic.isy b/resources/basic.isy
deleted file mode 100644
--- a/resources/basic.isy
+++ /dev/null
@@ -1,141 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE ipestyle SYSTEM "ipe.dtd">
-<ipestyle name="basic">
-<color name="red" value="1 0 0"/>
-<color name="green" value="0 1 0"/>
-<color name="blue" value="0 0 1"/>
-<color name="yellow" value="1 1 0"/>
-<color name="orange" value="1 0.647 0"/>
-<color name="gold" value="1 0.843 0"/>
-<color name="purple" value="0.627 0.125 0.941"/>
-<color name="gray" value="0.745 0.745 0.745"/>
-<color name="brown" value="0.647 0.165 0.165"/>
-<color name="navy" value="0 0 0.502"/>
-<color name="pink" value="1 0.753 0.796"/>
-<color name="seagreen" value="0.18 0.545 0.341"/>
-<color name="turquoise" value="0.251 0.878 0.816"/>
-<color name="violet" value="0.933 0.51 0.933"/>
-<color name="darkblue" value="0 0 0.545"/>
-<color name="darkcyan" value="0 0.545 0.545"/>
-<color name="darkgray" value="0.663 0.663 0.663"/>
-<color name="darkgreen" value="0 0.392 0"/>
-<color name="darkmagenta" value="0.545 0 0.545"/>
-<color name="darkorange" value="1 0.549 0"/>
-<color name="darkred" value="0.545 0 0"/>
-<color name="lightblue" value="0.678 0.847 0.902"/>
-<color name="lightcyan" value="0.878 1 1"/>
-<color name="lightgray" value="0.827 0.827 0.827"/>
-<color name="lightgreen" value="0.565 0.933 0.565"/>
-<color name="lightyellow" value="1 1 0.878"/>
-<dashstyle name="dashed" value="[4] 0"/>
-<dashstyle name="dotted" value="[1 3] 0"/>
-<dashstyle name="dash dotted" value="[4 2 1 2] 0"/>
-<dashstyle name="dash dot dotted" value="[4 2 1 2 1 2] 0"/>
-<pen name="heavier" value="0.8"/>
-<pen name="fat" value="1.2"/>
-<pen name="ultrafat" value="2"/>
-<textsize name="large" value="\large"/>
-<textsize name="Large" value="\Large"/>
-<textsize name="LARGE" value="\LARGE"/>
-<textsize name="huge" value="\huge"/>
-<textsize name="Huge" value="\Huge"/>
-<textsize name="small" value="\small"/>
-<textsize name="footnote" value="\footnotesize"/>
-<textsize name="tiny" value="\tiny"/>
-<symbolsize name="small" value="2"/>
-<symbolsize name="tiny" value="1.1"/>
-<symbolsize name="large" value="5"/>
-<arrowsize name="small" value="5"/>
-<arrowsize name="tiny" value="3"/>
-<arrowsize name="large" value="10"/>
-<gridsize name="4 pts" value="4"/>
-<gridsize name="8 pts (~3 mm)" value="8"/>
-<gridsize name="16 pts (~6 mm)" value="16"/>
-<gridsize name="32 pts (~12 mm)" value="32"/>
-<gridsize name="10 pts (~3.5 mm)" value="10"/>
-<gridsize name="20 pts (~7 mm)" value="20"/>
-<gridsize name="14 pts (~5 mm)" value="14"/>
-<gridsize name="28 pts (~10 mm)" value="28"/>
-<gridsize name="56 pts (~20 mm)" value="56"/>
-<anglesize name="90 deg" value="90"/>
-<anglesize name="60 deg" value="60"/>
-<anglesize name="45 deg" value="45"/>
-<anglesize name="30 deg" value="30"/>
-<anglesize name="22.5 deg" value="22.5"/>
-<symbol name="mark/circle(sx)" transformations="translations">
-<path fill="sym-stroke">
-0.6 0 0 0.6 0 0 e 0.4 0 0 0.4 0 0 e
-</path></symbol>
-<symbol name="mark/disk(sx)" transformations="translations">
-<path fill="sym-stroke">
-0.6 0 0 0.6 0 0 e
-</path></symbol>
-<symbol name="mark/fdisk(sfx)" transformations="translations">
-<group><path fill="sym-fill">
-0.5 0 0 0.5 0 0 e
-</path><path fill="sym-stroke" fillrule="eofill">
-0.6 0 0 0.6 0 0 e 0.4 0 0 0.4 0 0 e
-</path></group></symbol>
-<symbol name="mark/box(sx)" transformations="translations">
-<path fill="sym-stroke" fillrule="eofill">
--0.6 -0.6 m 0.6 -0.6 l 0.6 0.6 l -0.6 0.6 l h
--0.4 -0.4 m 0.4 -0.4 l 0.4 0.4 l -0.4 0.4 l h</path></symbol>
-<symbol name="mark/square(sx)" transformations="translations">
-<path fill="sym-stroke">
--0.6 -0.6 m 0.6 -0.6 l 0.6 0.6 l -0.6 0.6 l h</path></symbol>
-<symbol name="mark/fsquare(sfx)" transformations="translations">
-<group><path fill="sym-fill">
--0.5 -0.5 m 0.5 -0.5 l 0.5 0.5 l -0.5 0.5 l h</path>
-<path fill="sym-stroke" fillrule="eofill">
--0.6 -0.6 m 0.6 -0.6 l 0.6 0.6 l -0.6 0.6 l h
--0.4 -0.4 m 0.4 -0.4 l 0.4 0.4 l -0.4 0.4 l h</path></group></symbol>
-<symbol name="mark/cross(sx)" transformations="translations">
-<group><path fill="sym-stroke">
--0.43 -0.57 m 0.57 0.43 l 0.43 0.57 l -0.57 -0.43 l h</path>
-<path fill="sym-stroke">
--0.43 0.57 m 0.57 -0.43 l 0.43 -0.57 l -0.57 0.43 l h</path>
-</group></symbol>
-<symbol name="arrow/arc(spx)">
-<path pen="sym-pen" stroke="sym-stroke" fill="sym-stroke">
-0 0 m -1.0 0.333 l -1.0 -0.333 l h</path></symbol>
-<symbol name="arrow/farc(spx)">
-<path pen="sym-pen" stroke="sym-stroke" fill="white">
-0 0 m -1.0 0.333 l -1.0 -0.333 l h</path></symbol>
-<symbol name="arrow/ptarc(spx)">
-<path pen="sym-pen" stroke="sym-stroke" fill="sym-stroke">
-0 0 m -1.0 0.333 l -0.8 0 l -1.0 -0.333 l h</path></symbol>
-<symbol name="arrow/fptarc(spx)">
-<path pen="sym-pen" stroke="sym-stroke" fill="white">
-0 0 m -1.0 0.333 l -0.8 0 l -1.0 -0.333 l h</path></symbol>
-<symbol name="arrow/fnormal(spx)">
-<path pen="sym-pen" stroke="sym-stroke" fill="white">
-0 0 m -1.0 0.333 l -1.0 -0.333 l h</path></symbol>
-<symbol name="arrow/pointed(spx)">
-<path pen="sym-pen" stroke="sym-stroke" fill="sym-stroke">
-0 0 m -1.0 0.333 l -0.8 0 l -1.0 -0.333 l h</path></symbol>
-<symbol name="arrow/fpointed(spx)">
-<path pen="sym-pen" stroke="sym-stroke" fill="white">
-0 0 m -1.0 0.333 l -0.8 0 l -1.0 -0.333 l h</path></symbol>
-<symbol name="arrow/linear(spx)">
-<path pen="sym-pen" stroke="sym-stroke">
--1.0 0.333 m 0 0 l -1.0 -0.333 l</path></symbol>
-<symbol name="arrow/fdouble(spx)">
-<path pen="sym-pen" stroke="sym-stroke" fill="white">
-0 0 m -1.0 0.333 l -1.0 -0.333 l h
--1 0 m -2.0 0.333 l -2.0 -0.333 l h
-</path></symbol>
-<symbol name="arrow/double(spx)">
-<path pen="sym-pen" stroke="sym-stroke" fill="sym-stroke">
-0 0 m -1.0 0.333 l -1.0 -0.333 l h
--1 0 m -2.0 0.333 l -2.0 -0.333 l h
-</path></symbol>
-<tiling name="falling" angle="-60" width="1" step="4"/>
-<tiling name="rising" angle="30" width="1" step="4"/>
-<textstyle name="center" begin="\begin{center}"
-end="\end{center}"/>
-<textstyle name="itemize" begin="\begin{itemize}"
-end="\end{itemize}"/>
-<textstyle name="item" begin="\begin{itemize}\item{}"
-end="\end{itemize}"/>
-</ipestyle>
-
diff --git a/src/Algorithms/Geometry/ClosestPair/DivideAndConquer.hs b/src/Algorithms/Geometry/ClosestPair/DivideAndConquer.hs
--- a/src/Algorithms/Geometry/ClosestPair/DivideAndConquer.hs
+++ b/src/Algorithms/Geometry/ClosestPair/DivideAndConquer.hs
@@ -10,7 +10,14 @@
 -- closest pair among a set of \(n\) points in \(\mathbb{R}^2\).
 --
 --------------------------------------------------------------------------------
-module Algorithms.Geometry.ClosestPair.DivideAndConquer where
+module Algorithms.Geometry.ClosestPair.DivideAndConquer( closestPair
+                                                       , CP
+                                                       , CCP(..)
+                                                       , mergePairs
+                                                       , mergeSortedBy
+                                                       , mergeSortedListsBy
+                                                       )
+where
 
 import           Control.Lens
 import           Data.BinaryTree
@@ -23,7 +30,7 @@
 import           Data.List.NonEmpty (NonEmpty(..))
 import qualified Data.List.NonEmpty as NonEmpty
 import           Data.Ord (comparing)
-import           Data.Semigroup.Foldable(foldMap1)
+import           Data.Semigroup.Foldable(foldMap1, toNonEmpty)
 import           Data.UnBounded
 import           Data.Util
 
@@ -34,7 +41,7 @@
 --
 -- running time: \(O(n)\)
 closestPair :: ( Ord r, Num r) => LSeq 2 (Point 2 r :+ p) -> Two (Point 2 r :+ p)
-closestPair = f . foldMap1 mkCCP . asBalancedBinLeafTree . LSeq.toNonEmpty
+closestPair = f . foldMap1 mkCCP . asBalancedBinLeafTree . toNonEmpty
             . LSeq.unstableSortBy (comparing (^.core))
   where
     mkCCP (Elem p) = CCP (p :| []) Top
@@ -64,7 +71,14 @@
 -- | Given an ordering and two nonempty sequences ordered according to that
 -- ordering, merge them
 mergeSortedBy           :: (a -> a -> Ordering) -> NonEmpty a -> NonEmpty a -> NonEmpty a
-mergeSortedBy cmp ls rs = NonEmpty.fromList $ go (F.toList ls) (F.toList rs)
+mergeSortedBy cmp ls rs = NonEmpty.fromList
+                        $ mergeSortedListsBy cmp (F.toList ls) (F.toList rs)
+
+
+-- | Given an ordering and two nonempty sequences ordered according to that
+-- ordering, merge them
+mergeSortedListsBy     :: (a -> a -> Ordering) -> [a] -> [a] -> [a]
+mergeSortedListsBy cmp = go
   where
     go []         ys     = ys
     go xs         []     = xs
@@ -81,7 +95,6 @@
                       -> CP (Point 2 r :+ p) r
 mergePairs cp' ls' rs' = go cp' (NonEmpty.toList ls') (NonEmpty.toList rs')
   where
-
     -- scan through the points on the right in increasing order.
     go              :: CP (Point 2 r :+ p) r -> [Point 2 r :+ p] -> [Point 2 r :+ p]
                     -> CP (Point 2 r :+ p) r
@@ -90,24 +103,28 @@
                           cp'' = run cp r ls'' -- try to find a new closer pair with r.
                       in go cp'' ls'' rs   -- and then process the remaining points
 
-    -- ditch the points on the left that are too low anyway
-    trim               :: Top r -> [Point 2 r :+ q] -> Point 2 r :+ a
-                       -> [Point 2 r :+ q]
-    trim (ValT d) ls r = List.dropWhile (\l -> sqVertDist l r > d) ls
-    trim _        ls _ = ls
+-- | ditch the points on the left that are too low anyway
+trim               :: (Ord r, Num r)
+                   => Top r -> [Point 2 r :+ q] -> Point 2 r :+ a
+                   -> [Point 2 r :+ q]
+trim (ValT d) ls r = List.dropWhile (\l -> sqVertDist l r > d) ls
+trim _        ls _ = ls
 
-    -- the squared vertical distance (in case r lies above l) or 0 otherwise
-    sqVertDist l r = let d = 0 `max` (r^.core.yCoord - l^.core.yCoord) in d*d
+-- | the squared vertical distance (in case r lies above l) or 0 otherwise
+sqVertDist    :: (Ord r, Num r) => Point 2 r :+ p -> Point 2 r :+ q -> r
+sqVertDist l r = let d = 0 `max` (r^.core.yCoord - l^.core.yCoord) in d*d
 
-    -- try and find a new closest pair with r. If we get to points that are too far above
-    -- r we stop (since none of those points will be closer to r anyway)
-    run          :: CP (Point 2 r :+ p) r -> Point 2 r :+ p -> [Point 2 r :+ p]
-                 -> CP (Point 2 r :+ p) r
-    run cp'' r ls =
+-- | try and find a new closest pair with r. If we get to points that are too
+-- far above r we stop (since none of those points will be closer to r anyway)
+run          :: (Ord r, Num r)
+             => CP (Point 2 r :+ p) r -> Point 2 r :+ p -> [Point 2 r :+ p]
+             -> CP (Point 2 r :+ p) r
+run cp'' r ls =
       runWhile cp'' ls
-               (\cp l -> ValT (l^.core.yCoord - r^.core.yCoord) < (getDist cp))
+               (\cp l -> (ValT $ sqVertDist r l) < getDist cp) -- r and l inverted
+                                                               -- by design
                (\cp l -> minBy getDist cp (ValT $ SP (Two l r) (dist l r)))
-
+  where
     dist (p :+ _) (q :+ _) = squaredEuclideanDist p q
 
 
@@ -127,3 +144,27 @@
 -- | Get the distance of a (candidate) closest pair
 getDist :: CP a r -> Top r
 getDist = fmap (view _2)
+
+
+
+
+
+-- test4 = [Point2 (479109173120836 % 8353334321025) (5100576283797 % 96072829279) :+ ()
+--         ,Point2 (58405408826671 % 1010204299645) (416491493323834 % 7859181827347) :+ ()
+--         ,Point2 (497723773632392 % 8797511756605) (484251118551575 % 9452820868018) :+ ()
+--         ,Point2 (71823625388220 % 1256943286753) (211467894699900 % 3952412568913) :+ ()
+--         ]
+
+
+-- myTree = asBalancedBinLeafTree . LSeq.toNonEmpty . LSeq.promise . LSeq.unstableSortBy (comparing (^.core)). LSeq.fromList $ test4
+-- myTree2 = let mkCCP (Elem p) = CCP (p :| []) Top in mkCCP <$> myTree
+
+
+
+-- ans2p = Point2 (479109173120836 % 8353334321025) (5100576283797 % 96072829279)
+-- ans2q = Point2 (71823625388220 % 1256943286753) (211467894699900 % 3952412568913)
+
+
+
+-- temp =Two (test4 !! 1) (test4 !! 0)
+-- tempX = ValT (SP temp $ squaredEuclideanDist (temp^._1.core) (temp^._2.core))
diff --git a/src/Algorithms/Geometry/DelaunayTriangulation/Naive.hs b/src/Algorithms/Geometry/DelaunayTriangulation/Naive.hs
--- a/src/Algorithms/Geometry/DelaunayTriangulation/Naive.hs
+++ b/src/Algorithms/Geometry/DelaunayTriangulation/Naive.hs
@@ -65,7 +65,7 @@
 
 -- | Given a list of faces, construct a list of edges
 extractEdges :: [(VertexID,VertexID,VertexID)] -> [(VertexID,VertexID)]
-extractEdges = map head . L.group . L.sort
+extractEdges = map L.head . L.group . L.sort
                . concatMap (\(p,q,r) -> [(p,q), (q,r), (p,r)])
                -- we encounter every edge twice. To get rid of the duplicates
                -- we sort, group, and take the head of the lists
diff --git a/src/Algorithms/Geometry/DelaunayTriangulation/Types.hs b/src/Algorithms/Geometry/DelaunayTriangulation/Types.hs
--- a/src/Algorithms/Geometry/DelaunayTriangulation/Types.hs
+++ b/src/Algorithms/Geometry/DelaunayTriangulation/Types.hs
@@ -1,12 +1,21 @@
 {-# LANGUAGE TemplateHaskell #-}
 {-# LANGUAGE ScopedTypeVariables #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Algorithms.Geometry.DelaunayTriangulation.Types
+-- Copyright   :  (C) Frank Staals
+-- License     :  see the LICENSE file
+-- Maintainer  :  Frank Staals
+--
+-- Defines some geometric types used in the delaunay triangulation
+--
+--------------------------------------------------------------------------------
 module Algorithms.Geometry.DelaunayTriangulation.Types where
 
 import           Control.Lens
 import qualified Data.CircularList as C
 import           Data.Ext
 import           Data.Geometry
-import           Data.Geometry.Ipe
 import           Data.Geometry.PlanarSubdivision
 import qualified Data.IntMap.Strict as IM
 import qualified Data.Map as M
@@ -62,12 +71,6 @@
 tEdges = concatMap (\(i,ns) -> map (i,) . filter (> i) . C.toList $ ns)
        . zip [0..] . V.toList . _neighbours
 
-drawTriangulation :: IpeOut (Triangulation p r) Group r
-drawTriangulation tr =
-  ipeGroup [ iO $ ipeLineSegment e
-           | e <- map (uncurry ClosedLineSegment) . triangulationEdges $ tr
-           ]
-
 --------------------------------------------------------------------------------
 
 data ST a b c = ST { fst' :: !a, snd' :: !b , trd' :: !c}
@@ -97,6 +100,6 @@
                    proxy s -> Triangulation p r -> PG.PlaneGraph s p () () r
 toPlaneGraph _ tr = PG.PlaneGraph $ g&PPG.vertexData .~ vtxData
   where
-    g       = PG.fromAdjacencyLists . V.toList . V.imap f $ tr^.neighbours
+    g       = PPG.fromAdjacencyLists . V.toList . V.imap f $ tr^.neighbours
     f i adj = (VertexId i, VertexId <$> adj)
     vtxData = (\(loc :+ p) -> VertexData loc p) <$> tr^.positions
diff --git a/src/Algorithms/Geometry/EuclideanMST/EuclideanMST.hs b/src/Algorithms/Geometry/EuclideanMST/EuclideanMST.hs
--- a/src/Algorithms/Geometry/EuclideanMST/EuclideanMST.hs
+++ b/src/Algorithms/Geometry/EuclideanMST/EuclideanMST.hs
@@ -17,7 +17,6 @@
 import           Control.Lens
 import           Data.Ext
 import           Data.Geometry
-import           Data.Geometry.Ipe
 import qualified Data.List.NonEmpty as NonEmpty
 import           Data.PlaneGraph
 import           Data.Proxy
@@ -46,11 +45,3 @@
 
 
 data MSTW
-
-
-drawTree' :: IpeOut (Tree (Point 2 r :+ p)) Group r
-drawTree' = ipeGroup . map (iO . defIO  . uncurry ClosedLineSegment) . treeEdges
-
-
-treeEdges              :: Tree a -> [(a,a)]
-treeEdges (Node v chs) = map ((v,) . rootLabel) chs ++ concatMap treeEdges chs
diff --git a/src/Algorithms/Geometry/FrechetDistance/Discrete.hs b/src/Algorithms/Geometry/FrechetDistance/Discrete.hs
new file mode 100644
--- /dev/null
+++ b/src/Algorithms/Geometry/FrechetDistance/Discrete.hs
@@ -0,0 +1,80 @@
+module Algorithms.Geometry.FrechetDistance.Discrete( discreteFrechetDistance
+                                                   , discreteFrechetDistanceWith
+                                                   ) where
+
+import           Control.Lens ((^.))
+import           Control.Monad.ST (ST,runST)
+import           Data.Ext
+import           Data.Geometry.Point
+import qualified Data.Vector as V
+import qualified Data.Vector.Mutable as MV
+import qualified VectorBuilder.Builder as Builder
+import qualified VectorBuilder.Vector as Builder
+
+--------------------------------------------------------------------------------
+
+
+-- | Returns the discrete frechet distance between two point sequences
+-- using the squared Euclidean distance. In other words, returns the
+-- square of the (Euclidean) frechet distance.
+--
+-- running time: \(O((nm))\), where \(n\) and \(m\) are the lengths of
+-- the sequences.
+discreteFrechetDistance :: (Foldable f, Foldable g,  Functor f, Functor g, Ord r, Num r)
+                        => f (Point 2 r :+ p) -> g (Point 2 r :+ q) -> r
+discreteFrechetDistance = discreteFrechetDistanceWith squaredEuclideanDist
+
+-- | Returns the discrete frechet distance between two point sequences
+-- using the given distance measure.
+--
+-- running time: \(O((nm))\), where \(n\) and \(m\) are the lengths of
+-- the sequences (and assuming that a distance calculation takes
+-- constant time).
+discreteFrechetDistanceWith         :: ( Foldable f, Functor f, Functor g, Foldable g, Ord r)
+                                    => (Point 2 r -> Point 2 r -> r) -- ^ distance function
+                                    -> f (Point 2 r :+ p)
+                                    -> g (Point 2 r :+ q) -> r
+discreteFrechetDistanceWith d ta tb = runST $ do
+                                                 v <- MV.replicate (n*m) Nothing
+                                                 let dpTable = DPTable m v
+                                                     z       = Loc 0 0
+                                                 -- initializes (0,0) with the appropriate distance
+                                                 storeT dpTable z (dist z)
+                                                 evalTable dist dpTable (Loc (n-1) (m-1))
+  where
+    ta' = Builder.build . Builder.foldable . fmap (^.core) $ ta
+    tb' = Builder.build . Builder.foldable . fmap (^.core) $ tb
+    n = V.length ta'
+    m = V.length tb'
+
+    dist (Loc r c) = d (ta' V.! r) (tb' V.! c)
+
+data Loc = Loc !Int !Int deriving (Show,Eq)
+
+data DPTable s r = DPTable !Int (MV.MVector s (Maybe r))
+
+-- | compute the discrete frechet distance between the subtrajectories
+-- up to the given Loc using dpTable for memoization memoization
+evalTable              :: Ord r => (Loc -> r) -> DPTable s r -> Loc -> ST s r
+evalTable dist dpTable = go
+  where
+    go p = lookupT dpTable p >>= \case
+             Just d  -> pure d
+             Nothing -> do
+                          fd <- minimum <$> mapM go (prevs p)
+                          let d = dist p `max` fd
+                          storeT dpTable p d
+                          pure d
+
+-- | Look up a value in the DP Table
+lookupT                           :: DPTable s r -> Loc -> ST s (Maybe r)
+lookupT (DPTable m v) (Loc r c) = MV.read v (r*m+c)
+
+-- | Stoer a value in the DP table
+storeT                             :: DPTable s r -> Loc -> r -> ST s ()
+storeT (DPTable m v) (Loc r c) d = MV.write v (r*m+c) (Just d)
+
+-- | Candidate previous locations
+prevs           :: Loc -> [Loc]
+prevs (Loc r c) = filter (\(Loc x y) -> x >= 0 && y >= 0)
+                    [Loc (r-1) c, Loc (r-1) (c-1), Loc r (c-1)]
diff --git a/src/Algorithms/Geometry/LineSegmentIntersection/BentleyOttmann.hs b/src/Algorithms/Geometry/LineSegmentIntersection/BentleyOttmann.hs
--- a/src/Algorithms/Geometry/LineSegmentIntersection/BentleyOttmann.hs
+++ b/src/Algorithms/Geometry/LineSegmentIntersection/BentleyOttmann.hs
@@ -1,4 +1,15 @@
 {-# LANGUAGE ScopedTypeVariables #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann
+-- Copyright   :  (C) Frank Staals
+-- License     :  see the LICENSE file
+-- Maintainer  :  Frank Staals
+--
+-- The \(O((n+k)\log n)\) time line segment intersection algorithm by Bentley
+-- and Ottmann.
+--
+--------------------------------------------------------------------------------
 module Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann where
 
 import           Algorithms.Geometry.LineSegmentIntersection.Types
@@ -16,7 +27,8 @@
 import           Data.Maybe
 import           Data.Ord (Down(..), comparing)
 import           Data.OrdSeq (Compare)
-import qualified Data.OrdSeq as SS -- status struct
+import qualified Data.Set as SS -- status struct
+import qualified Data.Set.Util as SS -- status struct
 import qualified Data.Set as EQ -- event queue
 import           Data.Vinyl
 import           Data.Vinyl.CoRec
@@ -28,7 +40,7 @@
 -- \(O((n+k)\log n)\), where \(k\) is the number of intersections.
 intersections    :: (Ord r, Fractional r)
                  => [LineSegment 2 p r] -> Intersections p r
-intersections ss = merge $ sweep pts mempty
+intersections ss = merge $ sweep pts SS.empty
   where
     pts = EQ.fromAscList . groupStarts . L.sort . concatMap asEventPts $ ss
 
@@ -127,7 +139,7 @@
 -- * The Main Sweep
 
 type EventQueue      p r = EQ.Set (Event p r)
-type StatusStructure p r = SS.OrdSeq (LineSegment 2 p r)
+type StatusStructure p r = SS.Set (LineSegment 2 p r)
 
 -- | Run the sweep handling all events
 sweep       :: (Ord r, Fractional r)
@@ -157,20 +169,20 @@
                  _       -> []
 
     -- new status structure
-    ss' = before <> newSegs <> after
+    ss' = before `SS.join` newSegs `SS.join` after
     newSegs = toStatusStruct p $ starts ++ contains
 
     -- the new eeventqueue
     eq' = foldr EQ.insert eq es
     -- the new events:
     es | F.null newSegs  = maybeToList $ app (findNewEvent p) sl sr
-       | otherwise       = let s'  = fst <$> SS.minView newSegs
-                               s'' = fst <$> SS.maxView newSegs
+       | otherwise       = let s'  = SS.lookupMin newSegs
+                               s'' = SS.lookupMax newSegs
                            in catMaybes [ app (findNewEvent p) sl  s'
                                         , app (findNewEvent p) s'' sr
                                         ]
-    sl = fst <$> SS.maxView before
-    sr = fst <$> SS.minView after
+    sl = SS.lookupMax before
+    sr = SS.lookupMin after
 
     app f x y = do { x' <- x ; y' <- y ; f x' y'}
 
@@ -179,17 +191,18 @@
 extractContains      :: (Fractional r, Ord r)
                      => Point 2 r -> StatusStructure p r
                      -> (StatusStructure p r, [LineSegment 2 p r], StatusStructure p r)
-extractContains p ss = (before, F.toList $ mid1 <> mid2, after)
+extractContains p ss = (before, F.toList mid1 <> F.toList mid2, after)
   where
     (before, mid1, after') = SS.splitOn (xCoordAt $ p^.yCoord) (p^.xCoord) ss
     -- Make sure to also select the horizontal segments containing p
-    (mid2, after) = SS.splitMonotonic (\s -> not $ p `onSegment` s) after'
+    (mid2, after) = SS.spanAntitone (\s -> p `onSegment` s) after'
 
+
 -- | Given a point and the linesegements that contain it. Create a piece of
 -- status structure for it.
 toStatusStruct      :: (Fractional r, Ord r)
                     => Point 2 r -> [LineSegment 2 p r] -> StatusStructure p r
-toStatusStruct p xs = ss <> hors
+toStatusStruct p xs = ss `SS.join` hors
   -- ss { SS.nav = ordAtNav $ p^.yCoord } `SS.join` hors
   where
     (hors',rest) = L.partition isHorizontal xs
diff --git a/src/Algorithms/Geometry/LineSegmentIntersection/Types.hs b/src/Algorithms/Geometry/LineSegmentIntersection/Types.hs
--- a/src/Algorithms/Geometry/LineSegmentIntersection/Types.hs
+++ b/src/Algorithms/Geometry/LineSegmentIntersection/Types.hs
@@ -1,16 +1,18 @@
 {-# LANGUAGE TemplateHaskell #-}
 module Algorithms.Geometry.LineSegmentIntersection.Types where
 
+import           Control.DeepSeq
 import           Control.Lens
 import           Data.Ext
 import           Data.Geometry.Interval
 import           Data.Geometry.LineSegment
 import           Data.Geometry.Point
 import           Data.Geometry.Properties
+import qualified Data.List as L
 import           Data.List.NonEmpty (NonEmpty(..))
 import qualified Data.List.NonEmpty as NonEmpty
-import qualified Data.List as L
 import qualified Data.Map as Map
+import           GHC.Generics
 
 --------------------------------------------------------------------------------
 
@@ -24,7 +26,7 @@
 
 data Associated p r = Associated { _endPointOf        :: Set' (LineSegment 2 p r)
                                  , _interiorTo        :: Set' (LineSegment 2 p r)
-                                 } deriving (Show)
+                                 } deriving (Show, Generic)
 
 
 instance (Eq p, Eq r) => Eq (Associated p r) where
@@ -35,6 +37,11 @@
 
       g = L.nub . NonEmpty.toList
       sameElements (g -> xs) (g -> ys) = L.null $ (xs L.\\ ys) ++ (ys L.\\ xs)
+
+
+instance (NFData p, NFData r) => NFData (Associated p r)
+
+
 
 
 associated       :: Ord r
diff --git a/src/Algorithms/Geometry/LinearProgramming/LP2DRIC.hs b/src/Algorithms/Geometry/LinearProgramming/LP2DRIC.hs
new file mode 100644
--- /dev/null
+++ b/src/Algorithms/Geometry/LinearProgramming/LP2DRIC.hs
@@ -0,0 +1,381 @@
+{-# LANGUAGE UndecidableInstances #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Algorithms.Geometry.LinearProgramming.LP2DRIC
+-- Copyright   :  (C) Frank Staals
+-- License     :  see the LICENSE file
+-- Maintainer  :  Frank Staals
+--
+-- 2D Linear programming in expected linear time.
+--
+--------------------------------------------------------------------------------
+module Algorithms.Geometry.LinearProgramming.LP2DRIC( solveBoundedLinearProgram
+                                                    , solveBoundedLinearProgram'
+
+                                                    , maximumOn
+                                                    , oneDLinearProgramming
+                                                    , commonIntersection
+                                                    , cmpHalfPlane
+                                                    ) where
+
+import           Algorithms.Geometry.LinearProgramming.Types
+import           Control.Lens
+import           Control.Monad (foldM)
+import           Control.Monad.Random.Class
+import           Data.Ext
+import qualified Data.Foldable as F
+import           Data.Geometry.Boundary
+import           Data.Geometry.HalfLine
+import           Data.Geometry.HalfSpace
+import           Data.Geometry.HyperPlane
+import           Data.Geometry.Line
+import           Data.Geometry.Point
+import           Data.Geometry.Properties
+import           Data.Geometry.Vector
+import qualified Data.List.NonEmpty as NonEmpty
+import           Data.Maybe (mapMaybe)
+import           Data.Util
+import           Data.Vinyl
+import           Data.Vinyl.CoRec
+import           System.Random.Shuffle
+
+--------------------------------------------------------------------------------
+
+-- | Solve a linear program
+solveLinearProgram :: MonadRandom m => LinearProgram 2 r -> m (LPSolution 2 r)
+solveLinearProgram = undefined
+
+
+-- | Solves a bounded linear program in 2d. Returns Nothing if there is no
+-- solution.
+--
+-- pre: The linear program is bounded, meaning that *the first two constraints*
+-- m1,m2 make sure th the there is no arbitrarily large/good
+-- solution. I..e. these halfspaces bound the solution in the c direction.
+--
+-- (note that if there is only one constraint, m1, the assumption that the LP
+-- is bounded means that the contraint must be perpendicular to the objective
+-- direction. Hence, any point on the bounding plane is a solution, and they
+-- are all equally good.)
+--
+-- \(O(n)\) expected time
+--
+--
+solveBoundedLinearProgram                      :: (MonadRandom m, Ord r, Fractional r)
+                                               => LinearProgram 2 r -> m (Maybe (Point 2 r))
+solveBoundedLinearProgram (LinearProgram c hs') = case hs' of
+    []         -> pure Nothing
+    [m1]       -> pure $ Just (m1^.boundingPlane.inPlane)
+    (m1:m2:hs) -> solveBoundedLinearProgram' . LinearProgram c . ([m1,m2] ++) . F.toList
+                  <$> shuffle hs
+
+
+-- | Solves a bounded linear program (like 'solveBoundedLinearProgram')
+-- assuming that the first two constraints [m1,m2] make sure the solutions is
+-- bounded, and the other constraints already have been shuffled.
+solveBoundedLinearProgram'    :: (Ord r, Fractional r)
+                              => LinearProgram 2 r -> Maybe (Point 2 r)
+solveBoundedLinearProgram' lp = let (s,hs) = initialize lp
+                                in (^.current) <$> foldM step s hs
+
+--------------------------------------------------------------------------------
+
+-- | State during the LP algo
+data LPState d r = LPState { _obj     :: !(Vector d r)
+                           , _seen    :: [HalfSpace d r]
+                           , _current :: !(Point d r)
+                           }
+
+deriving instance (Arity d, Show r)   => Show    (LPState d r)
+deriving instance (Arity d, Eq r)     => Eq      (LPState d r)
+
+obj     :: Lens' (LPState d r) (Vector d r)
+obj     = lens _obj     (\(LPState _ s p) o -> LPState o s p)
+seen    :: Lens' (LPState d r) [HalfSpace d r]
+seen    = lens _seen    (\(LPState o _ p) s -> LPState o s p)
+current :: Lens' (LPState d r) (Point d r)
+current = lens _current (\(LPState o s _) p -> LPState o s p)
+
+
+-- | What we do when we get a new halfspace h
+step                                   :: (Fractional r, Ord r)
+                                       => LPState 2 r -> HalfSpace 2 r
+                                       -> Maybe (LPState 2 r)
+step s h | (s^.current) `intersects` h = Just $ s&seen     %~ (h:)
+         | otherwise                   = (\p -> s&seen     %~ (h:)
+                                                 &current .~ p)
+                                        <$> maximumOn s (h^.boundingPlane._asLine)
+
+--------------------------------------------------------------------------------
+
+-- | collect all intersecting halflines on the boundary l of h. If we return a Nothing there
+-- is no solution. Just [] indicates that somehow this halfspace h is contained in all other
+-- halfspaces.
+collectOn     :: (Ord r, Fractional r)
+              => Line 2 r
+              -> [HalfSpace 2 r]
+              -> Maybe [HalfLine 2 r]
+collectOn l = sequence . mapMaybe collect . map (l `intersect`)
+  where
+    collect   :: Intersection (Line 2 r) (HalfSpace 2 r) -> Maybe (Maybe (HalfLine 2 r))
+    collect r = match r $
+         (H $ \NoIntersection -> Just Nothing)
+      :& (H $ \hl             -> Just $ Just hl)
+      :& (H $ \_              -> Nothing)
+      :& RNil
+
+
+-- | Given a vector v and two points a and b, determine which is smaller in direction v.
+cmpHalfPlane       :: (Ord r, Num r, Arity d)
+                   => Vector d r -> Point d r -> Point d r -> Ordering
+cmpHalfPlane v a b = case a `inHalfSpace` (HalfSpace $ HyperPlane b $ v) of
+                       Inside     -> GT
+                       OnBoundary -> EQ
+                       Outside    -> LT
+
+type OneOrTwo a = Either a (Two a)
+
+flatten :: OneOrTwo a -> [a]
+flatten = either (:[]) (\(Two a b) -> [a,b])
+
+-- | Computes the common intersection of a nonempty list of halfines that are
+-- all colinear with the given line l.
+--
+-- We return either the two halflines that prove that there is no counter
+-- example or we return one or two points that form form the boundary points of
+-- the range in which all halflines intersect.
+commonIntersection                :: (Ord r, Num r, Arity d)
+                                  => Line d r
+                                  -> NonEmpty.NonEmpty (HalfLine d r :+ a)
+                                  -> Either (Two ((HalfLine d r :+ a)))
+                                            (OneOrTwo (Point d r :+ a))
+commonIntersection (Line _ v) hls = case (nh,ph) of
+     (Nothing,Nothing) -> error "absurd; this case cannot occur"
+     (Nothing, Just p) -> Right . Left . extract $ p
+     (Just n, Nothing) -> Right . Left . extract $ n
+     (Just n, Just p)  -> case cmpHalfPlane' v n p of
+                            LT -> Left $ Two n p
+                            EQ -> Right . Left . extract $ p
+                            GT -> Right . Right $ Two (extract p) (extract n)
+  where
+    extract = over core (^.startPoint)
+    (pos,neg) = NonEmpty.partition (\hl -> hl^.core.halfLineDirection == v) $ hls
+    ph = maximumBy' (cmpHalfPlane' v) pos
+    nh = maximumBy' (flip $ cmpHalfPlane' v) neg
+
+    cmpHalfPlane' vv a b = cmpHalfPlane vv (a^.core.startPoint) (b^.core.startPoint)
+
+commonIntersection'               :: (Ord r, Num r, Arity d)
+                                  => Line d r
+                                  -> NonEmpty.NonEmpty (HalfLine d r)
+                                  -> [Point d r]
+commonIntersection' l hls = either (const []) (map (^.core) . flatten)
+                          $ commonIntersection l (ext <$> hls)
+
+
+-- | maximum of a list using a given comparison ; if the list is empty returns Nothing
+maximumBy'     :: (a -> a -> Ordering) -> [a] -> Maybe a
+maximumBy' cmp = \case
+  [] -> Nothing
+  xs -> Just $ F.maximumBy cmp xs
+
+
+-- | One dimensional linear programming on lines embedded in \(\mathbb{R}^d\).
+--
+-- Given an objective vector c, a line l, and a collection of half-lines hls that are all
+-- sublines of l (i.e. halfspaces *on* l), compute if there is a point inside
+-- all these halflines. If so, we actually return the one that maximizes c.
+--
+-- running time: \(O(n)\)
+oneDLinearProgramming         :: (Ord r, Num r, Arity d)
+                              => Vector d r -> Line d r -> [HalfLine d r] -> Maybe (Point d r)
+oneDLinearProgramming c l hls = do
+                                  hls'       <- NonEmpty.nonEmpty hls
+                                  let candidates = commonIntersection' l hls'
+                                  maximumBy' (cmpHalfPlane c) candidates
+
+
+-- | Let l be the boundary of h, and assume that we know that the new point in
+-- the common intersection must lie on h, try to find this point. In
+-- partiuclar, we find the 'maximum' point in the s^.direction vector. The
+-- funtion returns Nothing if no such point exists, i.e. if there is no point
+-- on l that is contained in all halfspaces.
+--
+-- Note that this is essentially one dinsional LP
+maximumOn     :: (Ord r, Fractional r) => LPState 2 r -> Line 2 r -> Maybe (Point 2 r)
+maximumOn s l = do hls  <- collectOn l $ s^.seen
+                   oneDLinearProgramming (s^.obj) l hls
+  -- if collectOn returns a Just [] it means there is a point in the common intersection,
+  -- however it does not lie on the boundary of h. This violates our input assumption
+  -- thus if this would happen we can safely return a Nothing
+
+
+--------------------------------------------------------------------------------
+
+-- | Assumes that the first two constraints somehow bound the solution in direction c.
+initialize :: forall r. (Ord r, Fractional r)
+           => LinearProgram 2 r -> (LPState 2 r, [HalfSpace 2 r])
+initialize (LinearProgram c (m1:m2:hs)) = (LPState c [m1,m2] p, hs)
+  where
+    Just p = asA @(Point 2 r)
+           $ (m1^.boundingPlane._asLine) `intersect` (m2^.boundingPlane._asLine)
+
+
+
+--------------------------------------------------------------------------------
+
+-- | Let \(n(h)\) denote the normal of the line bounding a halfspace \(h\).
+--
+-- This function tries to Find an "unbounded direction" \(d\). If such a
+-- direction \(d\) exits the LP is unbounded, and we can produce evidence of
+-- this in the form of a half-line in direction \(d\).
+--
+-- More formally, we are looking for a direction \(d\) so that
+-- - \(c \cdot d > 0\), and
+-- - \(d \cdot n(h) \geq 0\), wherefor every half space \(h\).
+--
+findD                      :: (Ord r, Fractional r)
+                           => LinearProgram 2 r -> Maybe (Vector 2 r)
+findD (LinearProgram c hs) = do hls <- collectOn nl hs'
+                                d   <- toVec <$> oneDLinearProgramming v nl hls
+                                       -- the direction v here does not really matter
+                                if c `dot` d > 0 then pure d
+                                                 else Nothing
+  where
+    -- we interpret the points on nl as directions w.r.t the origin
+    nl@(Line _ v) = perpendicularTo (Line (origin .+^ c) c)
+    hs' = map toHL hs
+
+    -- every halfspace creates an allowed set of directions, modelled by a
+    -- half-line on nl
+    toHL h = let n              = h^.boundingPlane.normalVec
+             in undefined
+
+
+-- | Either finds an unbounded Haflline, or evidence the two halfspaces that provide
+-- evidence that no solution exists
+findUnBoundedHalfLine :: LinearProgram 2 r -> Either (Two (HalfSpace 2 r)) (HalfLine 2 r)
+findUnBoundedHalfLine = undefined -- use findD then find the starting point
+
+
+
+
+
+
+
+
+    -- ok; we can normalize the "y-coord" of our d-vector by taking the
+    -- length of vector c. (I should probably square the c to avoid having to take square roots.)
+
+  -- but how about the "x-coord"; we need to express that as the "lambda coord" along nl
+
+
+
+-- ok so the global plan is: Find a vector d
+
+
+
+--------------------------------------------------------------------------------
+
+-- TODO: Fix this
+
+
+-- findWith' o h ho hs =
+
+
+-- findWith o h []
+--   | o `isPerpendicularTo` (h^.boundingPlane._asLine) = Single $ h^.boundingPlane.inPlane
+--   | otherwise                                        = UnBounded
+-- findWith o h hs = case commonSpace oppo of
+--                     []     ->
+--                     (ho:_) | ho `intersects1` hX -> findWith' o hX ho hs'
+--                              -- observe that we can ignore the rest of the planes in
+--                              -- parra and oppo from our computation, since they
+--                              -- contain hX and hO, respectively anyway.
+--                            | otherwise          -> NoSolution
+--                              -- appararently ho and hX are disjoint, so there is no
+--                              -- point in the common intersection of (all halfspaces)
+--   where
+--     -- parra: parrallel halfspaces where the space is on the same "side" as h
+--     -- oppo: parallel halfspaces with opposite side as h
+--     -- hs' : non-parallel
+--     STR parra oppo hs' = foldr (extractParallel h) (STR [] [] []) hs
+--     Just hX = commonSpace (h:parra)
+
+--     intersects1 a b = (a^.boundingPlane.inPlane) `intersects` b
+
+
+
+-- -- | Given two halfspaces a and h, test if the bounding plane of h is parallel to a, with
+-- -- the spaces on the same side (first arg of the result), opposite (second), or
+-- -- neither (third).
+-- extractParallel                    :: (Arity d, Ord r, Fractional r)
+--                                    => HalfSpace d r
+--                                    -> HalfSpace d r
+--                                    -> STR [HalfSpace d r] [HalfSpace d r] [HalfSpace d r]
+--                                    -> STR [HalfSpace d r] [HalfSpace d r] [HalfSpace d r]
+-- extractParallel a h (STR ps os hs) = case scalarMultiple n v of
+--                                         Nothing              -> STR ps     os     (h:hs)
+--                                         Just lam | lam < 0   -> STR ps     (h:os) hs
+--                                                  | otherwise -> STR (h:ps) os     hs
+
+--   where
+--     n = a^.boundingPlane.normalVec
+--     v = h^.boundingPlane.normalVec
+
+
+
+-- -- | Given a bunch of halfpsaces that have parallel bounding planes and whose
+-- -- normal vectors are oriented in the same direciton, reports the common
+-- -- halfspace, i.e. the "smallest" common intersection.
+-- --
+-- -- this function returns a Nothing only if the initial list is empty
+-- commonSpace :: forall d r. (Ord r, Fractional r) => [HalfSpace d r] -> Maybe (HalfSpace d r)
+-- commonSpace = \case
+--     []     -> Nothing
+--     (h:hs) -> foldr trim (Just h) hs
+--   where
+--     trim h acc = acc >>= \h' -> let p = h^.boundingPlane.inPlane in
+--                                 if p `intersects` h' then h' else h
+--                                 -- We use that the boudning planes of h and h' are parallel
+--                                 -- so if h' contains the inPlane point of h then h'
+--                                 -- contains h. If not then it is the other way around
+
+
+
+
+
+
+
+--   match (h^.boundingPlane._asLine) `intersect` h' $
+--       (H $ \Nothing -> if (h'^.boundingPlane._asLine) `intersects` h
+--                       then findWith o h' -- no solution on h ; h is redundant
+--                       else insert h' $ findWith o h hs)  -- add h'
+--    :& (H $ \hl -> undefined)
+--    :& (H $ \_ -> undefined)
+--    :& RNil
+
+
+
+
+
+-- initialize          :: (Ord r, Fractional r)
+--                     => Vector 2 r -> [HalfSpace d r]
+--                     -> GLPolution (LPState d r, [HalfSpace d r])
+-- initialize _ []     = NoSolution
+-- initialize o (h:hs) = findWith o h hs
+
+
+-- -- -- | Given a vector v and a halfplane h, return the extremal point in direction
+-- -- -- v that lies in h.
+-- -- findBest v h =
+
+
+--   -- ( LPState o [h,h2] undefined
+-- --                         (h^.boundingPlane `intersect` h2^.boundingPlane)
+-- --                          , hs)
+-- -- initialize _ _         = error "initialize: unbounded LP"
+
+
+
+-- -- (\h' -> (h'^.halfSpaceBoundary) `intersect`) h^.halfSpaceBoundary
diff --git a/src/Algorithms/Geometry/LinearProgramming/Types.hs b/src/Algorithms/Geometry/LinearProgramming/Types.hs
new file mode 100644
--- /dev/null
+++ b/src/Algorithms/Geometry/LinearProgramming/Types.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE UndecidableInstances #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Algorithms.Geometry.LinearProgramming.Types
+-- Copyright   :  (C) Frank Staals
+-- License     :  see the LICENSE file
+-- Maintainer  :  Frank Staals
+--
+-- 2D Linear programming in expected linear time.
+--
+--------------------------------------------------------------------------------
+module Algorithms.Geometry.LinearProgramming.Types where
+
+import           Control.Lens
+import           Data.Geometry.HalfSpace
+import           Data.Geometry.HalfLine
+import           Data.Geometry.Point
+import           Data.Geometry.Vector
+
+--------------------------------------------------------------------------------
+
+-- | Data type representing the solution to a linear program
+data LPSolution d r = NoSolution
+                    | Single !(Point d r)
+                    | UnBounded (HalfLine d r)
+makePrisms ''LPSolution
+
+deriving instance (Arity d, Show r)   => Show    (LPSolution d r)
+deriving instance (Arity d, Eq r)     => Eq      (LPSolution d r)
+
+data LinearProgram d r = LinearProgram { _objective   :: !(Vector d r)
+                                       , _constraints :: [HalfSpace d r]
+                                       }
+makeLenses ''LinearProgram
+
+deriving instance Arity d             => Functor (LinearProgram d)
+deriving instance (Arity d, Show r)   => Show    (LinearProgram d r)
+deriving instance (Arity d, Eq r)     => Eq      (LinearProgram d r)
diff --git a/src/Algorithms/Geometry/LowerEnvelope/DualCH.hs b/src/Algorithms/Geometry/LowerEnvelope/DualCH.hs
--- a/src/Algorithms/Geometry/LowerEnvelope/DualCH.hs
+++ b/src/Algorithms/Geometry/LowerEnvelope/DualCH.hs
@@ -9,9 +9,10 @@
 import Data.List.NonEmpty(NonEmpty(..))
 import qualified Data.List.NonEmpty as NonEmpty
 import Data.Geometry.Duality
-import Data.Proxy
 import Data.Vinyl.CoRec
 
+--------------------------------------------------------------------------------
+
 type Envelope a r = NonEmpty (Line 2 r :+ a)
 
 -- | Given a list of non-vertical lines, computes the lower envelope using
@@ -46,4 +47,4 @@
 intersect'                     :: forall r a. (Ord r, Fractional r)
                                => Line 2 r :+ a -> Line 2 r :+ a -> Point 2 r :+ (a,a)
 intersect' (l :+ le) (r :+ re) = (:+ (le,re)) . fromJust
-                               . asA (Proxy :: Proxy (Point 2 r)) $ l `intersect` r
+                               . asA @(Point 2 r) $ l `intersect` r
diff --git a/src/Algorithms/Geometry/PolygonTriangulation/MakeMonotone.hs b/src/Algorithms/Geometry/PolygonTriangulation/MakeMonotone.hs
--- a/src/Algorithms/Geometry/PolygonTriangulation/MakeMonotone.hs
+++ b/src/Algorithms/Geometry/PolygonTriangulation/MakeMonotone.hs
@@ -22,8 +22,8 @@
 import qualified Data.IntMap as IntMap
 import qualified Data.List.NonEmpty as NonEmpty
 import           Data.Ord (comparing, Down(..))
-import           Data.OrdSeq (OrdSeq)
-import qualified Data.OrdSeq as SS
+import qualified Data.Set as SS
+import qualified Data.Set.Util as SS
 import           Data.Util
 import qualified Data.Vector as V
 import qualified Data.Vector.Mutable as MV
@@ -95,7 +95,7 @@
 
 type Event r = Point 2 r :+ (Two (LineSegment 2 Int r))
 
-data StatusStruct r = SS { _statusStruct :: !(SS.OrdSeq (LineSegment 2 Int r))
+data StatusStruct r = SS { _statusStruct :: !(SS.Set (LineSegment 2 Int r))
                          , _helper       :: !(IntMap.IntMap Int)
                          -- ^ for every e_i, the id of the helper vertex
                          } deriving (Show)
@@ -129,7 +129,7 @@
                      MV.write v i (STR pt p vt)
                    return v
 
-    initialSS = SS mempty mempty
+    initialSS = SS SS.empty mempty
 
     sweep  es = flip runReader vertexInfo $ evalStateT (sweep' es) initialSS
     sweep' es = DList.toList <$> execWriterT (sweep'' es)
@@ -177,11 +177,11 @@
 
 
 insertAt   :: (Ord r, Fractional r) => Point 2 r -> LineSegment 2 q r
-           -> OrdSeq (LineSegment 2 q r) -> OrdSeq (LineSegment 2 q r)
+           -> SS.Set (LineSegment 2 q r) -> SS.Set (LineSegment 2 q r)
 insertAt v = SS.insertBy (ordAt $ v^.yCoord)
 
 deleteAt   :: (Fractional r, Ord r) => Point 2 r -> LineSegment 2 p r
-           -> OrdSeq (LineSegment 2 p r) -> OrdSeq (LineSegment 2 p r)
+           -> SS.Set (LineSegment 2 p r) -> SS.Set (LineSegment 2 p r)
 deleteAt v = SS.deleteAllBy (ordAt $ v^.yCoord)
 
 
@@ -214,10 +214,10 @@
 
 
 lookupLE     :: (Ord r, Fractional r)
-             => Point 2 r -> OrdSeq (LineSegment 2 Int r)
+             => Point 2 r -> SS.Set (LineSegment 2 Int r)
              -> Maybe (LineSegment 2 Int r)
 lookupLE v s = let (l,m,_) = SS.splitOn (xCoordAt $ v^.yCoord) (v^.xCoord) s
-               in SS.lookupMax (l <> m)
+               in SS.lookupMax (l `SS.join` m)
 
 
 handleSplit              :: (Fractional r, Ord r) => Int -> Event r -> Sweep p r ()
diff --git a/src/Algorithms/Geometry/RedBlueSeparator/RIC.hs b/src/Algorithms/Geometry/RedBlueSeparator/RIC.hs
new file mode 100644
--- /dev/null
+++ b/src/Algorithms/Geometry/RedBlueSeparator/RIC.hs
@@ -0,0 +1,147 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Algorithms.Geometry.RedBlueSeparator.RIC
+-- Copyright   :  (C) Frank Staals
+-- License     :  see the LICENSE file
+-- Maintainer  :  Frank Staals
+--
+-- Given a set of red points and a set of blue points in \(\mathbb{R}^2\) finds
+-- a separating line in \(O(n)\) expected time, where \(n\) is the total number
+-- of points.
+--
+--------------------------------------------------------------------------------
+module Algorithms.Geometry.RedBlueSeparator.RIC where
+
+
+import           Algorithms.Geometry.LinearProgramming.LP2DRIC
+import           Algorithms.Geometry.LinearProgramming.Types
+import           Control.Applicative ((<|>))
+import           Control.Lens hiding (below)
+import           Control.Monad.Random.Class
+import           Data.Ext
+import qualified Data.Foldable as F
+import           Data.Geometry.HalfSpace
+import           Data.Geometry.Line
+import           Data.Geometry.Point
+import           Data.Geometry.Vector
+import           Data.Ord (comparing)
+import           Data.Semigroup.Foldable
+import           Data.Util
+
+--------------------------------------------------------------------------------
+
+-- -- | Given a set of red points and a set of blue points in \(\mathbb{R}^2\)
+-- -- finds a separating line (if it exists). The result is strict in the
+-- -- sense that there will not be any points on the line.
+-- --
+-- --
+-- -- running time: \(O(n)\) expected time, where \(n\) is the total number
+-- -- of points.
+-- strictSeparatingLine = undefined
+
+-- | Given a set of red points and a set of blue points in \(\mathbb{R}^2\)
+-- finds a separating line (if it exists). The result is non-strict in the
+-- sense that there may be points *on* the line.
+--
+--
+-- running time: \(O(n)\) expected time, where \(n\) is the total number
+-- of points.
+separatingLine :: (MonadRandom m, Foldable1 f, Foldable1 g, Fractional r, Ord r)
+               => f (Point 2 r :+ redData)
+               -> g (Point 2 r :+ blueData)
+               -> m (Maybe (Line 2 r))
+separatingLine reds blues = do l <- separatingLine' reds blues
+                               m <- separatingLine' blues reds
+                               pure $ l <|> m
+
+-- | Given a set of red points and a set of blue points in \(\mathbb{R}^2\)
+-- finds a separating line (if it exists) that has all red points *right* (or
+-- on) the line, and all blue points left (or on) the line.
+--
+-- running time: \(O(n)\) expected time, where \(n\) is the total number
+-- of points.
+separatingLine' :: (MonadRandom m, Foldable1 f, Foldable1 g, Fractional r, Ord r)
+                => f (Point 2 r :+ redData)
+                -> g (Point 2 r :+ blueData)
+                -> m (Maybe (Line 2 r))
+separatingLine' reds blues = case verticalSeparatingLine reds blues of
+    SP Nothing ((r:+_),(b :+ _)) -> separatingLine'' r b reds blues
+      -- observe that if r and b were vertically above each other then we would
+      -- have found a separating line. So r and b are not vertically
+      -- aligned. Hence we satisfy the precondition.
+    SP ml@(Just _) _             -> pure ml  -- already found a line
+
+
+-- | given a red and blue point that are *NOT* vertically alligned, and all red
+-- and all blue points, try to find a non-vertical separating line.
+--
+-- running time: \(O(n)\) expected time, where \(n\) is the total number
+-- of points.
+separatingLine'' :: (MonadRandom m, Foldable1 f, Foldable1 g, Fractional r, Ord r)
+                => Point 2 r -- ^ red point r
+                -> Point 2 r -- ^ a blue point b
+                -> f (Point 2 r :+ redData)
+                -> g (Point 2 r :+ blueData)
+                -> m (Maybe (Line 2 r))
+separatingLine'' r b reds blues = fmap mkLine <$> solveBoundedLinearProgram lp
+  where
+    lp = LinearProgram c ([mkRed r, mkBlue b] <> hs)
+
+    c = case (r^.xCoord) `compare` (b^.xCoord) of
+          LT -> Vector2 (-1) 0  -- minimize a
+          GT -> Vector2 1    0  -- maximize a
+          EQ -> error "separatingLine'': precondition failed. r and b vertically above each other"
+
+    mkLine (Point2 aa bb) = fromLinearFunction aa bb
+
+    -- red points generate the constraint: ry <= a*rx + b <=> b >= (-rx)a + ry
+    mkRed (Point2 rx ry)  = above $ fromLinearFunction ((-1)*rx) ry
+    -- blue points generate the constraint: by >= a*bx + b <=> b <= (-bx)a + by
+    mkBlue (Point2 bx by) = below $ fromLinearFunction ((-1)*bx) by
+
+    hs = [mkRed rr | (rr :+ _) <- F.toList reds] <> [mkBlue bb | (bb :+ _) <- F.toList blues]
+
+
+--------------------------------------------------------------------------------
+-- * Vertical Separators
+
+-- | Computes a strict vertical separating line, if one exists
+strictVerticalSeparatingLine            :: (Foldable1 f, Foldable1 g, Fractional r, Ord r)
+                                        => f (Point 2 r :+ redData)
+                                        -> g (Point 2 r :+ blueData)
+                                        -> Maybe (Line 2 r)
+strictVerticalSeparatingLine reds blues = do let (r,b) = extremalPoints reds blues
+                                                 rx    = r^.core.xCoord
+                                                 bx    = b^.core.xCoord
+                                             if bx < rx
+                                               then Just . verticalLine $ (rx + bx) / 2
+                                               else Nothing -- no vertical separator
+
+
+-- | Test if there is a vertical separating line that has all red points to its
+-- right (or on it) and all blue points to its left (or on it).  This function
+-- also returns the two extremal points; in case a line is returned, the line
+-- actually goes through the blue (second) point, if there is no line, this
+-- pair provides evidence that there is no vertical separating line.
+--
+-- The line we return actually goes through one blue point.
+verticalSeparatingLine            :: (Foldable1 f, Foldable1 g, Num r, Ord r)
+                                  => f (Point 2 r :+ redData)
+                                  -> g (Point 2 r :+ blueData)
+                                  -> SP (Maybe (Line 2 r))
+                                        (Point 2 r :+ redData, Point 2 r :+ blueData)
+verticalSeparatingLine reds blues = SP ml es
+  where
+    es@(r,b) = extremalPoints reds blues
+    ml = if b^.core.xCoord <= r^.core.xCoord then Just . verticalLine $ (b^.core.xCoord)
+                                             else Nothing
+
+-- | Get the the leftmost red point and the rightmost blue point.
+extremalPoints            :: (Foldable1 f, Foldable1 g, Ord r)
+                          => f (Point 2 r :+ redData)
+                          -> g (Point 2 r :+ blueData)
+                          -> (Point 2 r :+ redData, Point 2 r :+ blueData)
+extremalPoints reds blues = (F.minimumBy (comparing (^.core.xCoord)) reds
+                            ,F.maximumBy (comparing (^.core.xCoord)) blues)
+
+--------------------------------------------------------------------------------
diff --git a/src/Algorithms/Geometry/SmallestEnclosingBall/RandomizedIncrementalConstruction.hs b/src/Algorithms/Geometry/SmallestEnclosingBall/RandomizedIncrementalConstruction.hs
--- a/src/Algorithms/Geometry/SmallestEnclosingBall/RandomizedIncrementalConstruction.hs
+++ b/src/Algorithms/Geometry/SmallestEnclosingBall/RandomizedIncrementalConstruction.hs
@@ -15,13 +15,14 @@
 
 import           Algorithms.Geometry.SmallestEnclosingBall.Types
 import           Control.Lens
+import           Control.Monad.Random.Class
 import           Data.Ext
+import qualified Data.Foldable as F
 import           Data.Geometry
 import           Data.Geometry.Ball
 import qualified Data.List as L
 import           Data.List.NonEmpty
 import           Data.Maybe (fromMaybe)
-import           System.Random
 import           System.Random.Shuffle (shuffle)
 
 --------------------------------------------------------------------------------
@@ -29,14 +30,13 @@
 -- | O(n) expected time algorithm to compute the smallest enclosing disk of a
 -- set of points. we need at least two points.
 -- implemented using randomized incremental construction
-smallestEnclosingDisk           :: (Ord r, Fractional r, RandomGen g)
-                                => g
-                                -> [Point 2 r :+ p]
-                                -> DiskResult p r
+smallestEnclosingDisk           :: (Ord r, Fractional r, MonadRandom m)
+                                => [Point 2 r :+ p]
+                                -> m (DiskResult p r)
 
-smallestEnclosingDisk g pts@(_:_:_) = let (p:q:pts') = shuffle g pts
-                                      in smallestEnclosingDisk' p q pts'
-smallestEnclosingDisk _ _           = error "smallestEnclosingDisk: Too few points"
+smallestEnclosingDisk pts@(_:_:_) = ((\(p:q:pts') -> smallestEnclosingDisk' p q pts')
+                                    . F.toList) <$> shuffle pts
+smallestEnclosingDisk _           = error "smallestEnclosingDisk: Too few points"
 
 -- | Smallest enclosing disk.
 smallestEnclosingDisk'     :: (Ord r, Fractional r)
diff --git a/src/Algorithms/Geometry/Sweep.hs b/src/Algorithms/Geometry/Sweep.hs
deleted file mode 100644
--- a/src/Algorithms/Geometry/Sweep.hs
+++ /dev/null
@@ -1,171 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE UndecidableInstances #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Algorithms.Geometry.Sweep
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
---
--- Helper types and functions for implementing Sweep line algorithms.
---
---------------------------------------------------------------------------------
-module Algorithms.Geometry.Sweep where
-
-import qualified Data.Map as Map
-import           Data.Map (Map)
-import           Data.Proxy
-import           Data.Reflection
-import           Unsafe.Coerce
-
---------------------------------------------------------------------------------
-
-newtype Tagged (s :: *) a = Tagged { unTag :: a} deriving (Show,Eq,Ord)
-
-tag   :: proxy s -> a -> Tagged s a
-tag _ = Tagged
-
-
--- | Represent a computation that needs a particular time as input.
-newtype Timed s t a = Timed {atTime :: (Tagged s t) -> a }
-
-
-instance (Reifies s t, Ord k) => Ord (Timed s t k) where
-  compare = compare_
-
-instance (Reifies s t, Ord k) => Eq (Timed s t k) where
-  a == b = a `compare` b == EQ
-
--- | Comparison function for timed values
-compare_                       :: forall s t k. (Ord k, Reifies s t)
-                               => Timed s t k -> Timed s t k
-                               -> Ordering
-(Timed f) `compare_` (Timed g) = let t = reflect (Proxy :: Proxy s)
-                                 in f (Tagged t) `compare` g (Tagged t)
-
-
--- | Coerce timed values
-coerceTo   :: proxy s -> f (Timed s' t k) v -> f (Timed s t k) v
-coerceTo _ = unsafeCoerce
-
-
-unTagged :: f (Timed s t k) v -> f (Timed () t k) v
-unTagged = coerceTo (Proxy :: Proxy ())
-
-
--- | Runs a computation at a given time.
-runAt       :: forall s0 t k r f v. Ord k
-            => t
-            -> f (Timed s0 t k) v
-            -> (forall s. Reifies s t => f (Timed s t k) v -> r)
-            -> r
-runAt t m f = reify t $ \prx -> f (coerceTo prx m)
-
-
---------------------------------------------------------------------------------
-
-
-getTime :: Timed s Int Int
-getTime = Timed unTag
-
-
-constT     :: proxy s -> Int -> Timed s Int Int
-constT _ i = Timed (const i)
-
-
-test1 i = reify 5 $ \prx -> getTime < constT prx i
-
-
-
-
-
-test2M   :: Reifies s Int => proxy s -> Map (Timed s Int Int) String
-test2M p = Map.fromList [ (constT p 10, "ten")
-                        , (getTime, "timed")
-                        ]
-
-
-query :: forall s v. Ord (Timed s Int Int)
-      => Map (Timed s Int Int) v -> Maybe v
-query = fmap snd . Map.lookupGE (constT (Proxy :: Proxy s) 4)
-
-
-test2   :: Int -> Maybe String
-test2 t = runAt t m query
-  where
-    m :: Map (Timed () Int Int) String
-    m = reify 0 $ \p -> unTagged $ test2M p
-
-
-
-
-
--- test2 = reify 0 $ \p0 ->
---                     let m = unTagged $ test2M p0
---                     in runAt 10 m Map.lookup
-
-
-
--- newtype Key s a b = Key { getKey :: a -> b }
-
--- instance (Eq b, Reifies s a) => Eq (Key s a b) where
---   (Key f) == (Key g) = let x = reflect (Proxy :: Proxy s)
---                        in f x == g x
-
--- instance (Ord b, Reifies s a) => Ord (Key s a b) where
---   Key f `compare` Key g = let x = reflect (Proxy :: Proxy s)
---                           in f x `compare` g x
-
-
--- -- | Query the sweep
--- queryAt       :: a
---               -> (forall (s :: *). Reifies s a => Map (Key s a b) v -> res)
---               -> Map (a -> b) v -> res
--- queryAt x f m = reify x (\p -> f . coerceKeys p $ m)
-
--- updateAt      :: a
---               -> (forall (s :: *). Reifies s a =>
---                    Map (Key s a b) v -> Map (Key s a b) v')
---               -> Map (a -> b) v
---               -> Map (a -> b) v'
--- updateAt x f m = reify x (\p -> uncoerceKeys . f . coerceKeys p $ m)
-
-
--- combineAt            :: a
---                      -> (forall (s :: *). Reifies s a =>
---                            Map (Key s a b) v -> Map (Key s a b) v
---                            -> Map (Key s a b) v)
---                      -> Map (a -> b) v
---                      -> Map (a -> b) v
---                      -> Map (a -> b) v
--- combineAt x uF m1 m2 = reify x (\p -> uncoerceKeys $
---                                         coerceKeys p m1 `uF` coerceKeys p m2)
-
-
--- splitLookupAt       :: Ord b
---                     => a
---                     -> (a -> b)
---                     -> Map (a -> b) v
---                     -> (Map (a -> b) v, Maybe v, Map (a -> b) v)
--- splitLookupAt x k m = reify x (\p -> let (l,mv,r) = Map.splitLookup (Key k)
---                                                   $ coerceKeys p m
---                                    in (uncoerceKeys l, mv, uncoerceKeys r))
-
-
--- --------------------------------------------------------------------------------
-
--- coerceKeys   :: proxy s -> Map (a -> b) v -> Map (Key s a b) v
--- coerceKeys _ = unsafeCoerce
-
--- uncoerceKeys :: Map (Key s a b) v -> Map (a -> b) v
--- uncoerceKeys = unsafeCoerce
-
-
--- --------------------------------------------------------------------------------
-
-
--- data Node a = Node2 a a
---             | Node3 a a a
-
--- data FT a = Single a
---           | Deep (FT (Node a)) a (FT (Node a))
diff --git a/src/Algorithms/Geometry/WellSeparatedPairDecomposition/WSPD.hs b/src/Algorithms/Geometry/WellSeparatedPairDecomposition/WSPD.hs
--- a/src/Algorithms/Geometry/WellSeparatedPairDecomposition/WSPD.hs
+++ b/src/Algorithms/Geometry/WellSeparatedPairDecomposition/WSPD.hs
@@ -25,7 +25,7 @@
 import qualified Data.Geometry.Vector as GV
 import qualified Data.IntMap.Strict as IntMap
 import qualified Data.LSeq as LSeq
-import           Data.LSeq (LSeq(..),toSeq,ViewL(..),ViewR(..),pattern (:<|),pattern (:|>))
+import           Data.LSeq (LSeq,toSeq,ViewL(..),ViewR(..),pattern (:<|))
 import qualified Data.List as L
 import qualified Data.List.NonEmpty as NonEmpty
 import           Data.Maybe
diff --git a/src/Algorithms/Graph/DFS.hs b/src/Algorithms/Graph/DFS.hs
deleted file mode 100644
--- a/src/Algorithms/Graph/DFS.hs
+++ /dev/null
@@ -1,53 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-module Algorithms.Graph.DFS where
-
-import           Control.Monad.ST (ST,runST)
-import           Data.Maybe
-import           Data.PlanarGraph
-import           Data.Tree
-import qualified Data.Vector as V
-import qualified Data.Vector.Generic as GV
-import qualified Data.Vector.Unboxed.Mutable as UMV
-
-
--- | DFS on a planar graph.
---
--- Running time: \(O(n)\)
---
--- Note that since our planar graphs are always connected there is no need need
--- for dfs to take a list of start vertices.
-dfs  :: forall s w v e f.
-      PlanarGraph s w v e f -> VertexId s w -> Tree (VertexId s w)
-dfs g = dfs' (adjacencyLists g)
-
--- | Adjacency list representation of a graph: for each vertex we simply list
--- all connected neighbours.
-type AdjacencyLists s w = V.Vector [VertexId s w]
-
--- | Transform into adjacencylist representation
-adjacencyLists   :: PlanarGraph s w v e f -> AdjacencyLists s w
-adjacencyLists g = V.toList . flip neighboursOf g <$> vertices' g
-
--- | DFS, from a given vertex, on a graph in AdjacencyLists representation.
---
--- Running time: \(O(n)\)
-dfs'          :: forall s w. AdjacencyLists s w -> VertexId s w -> Tree (VertexId s w)
-dfs' g start = runST $ do
-                 bv     <- UMV.replicate n False -- bit vector of marks
-                 -- start will be unvisited, thus the fromJust is safe
-                 fromJust <$> dfs'' bv start
-  where
-    n = GV.length g
-
-    neighs              :: VertexId s w -> [VertexId s w]
-    neighs (VertexId u) = g GV.! u
-
-    visit   bv (VertexId i) = UMV.write bv i True
-    visited bv (VertexId i) = UMV.read  bv i
-    dfs''      :: UMV.MVector s' Bool -> VertexId s w
-               -> ST s' (Maybe (Tree (VertexId s w)))
-    dfs'' bv u = visited bv u >>= \case
-                   True  -> pure Nothing
-                   False -> do
-                              visit bv u
-                              Just . Node u . catMaybes <$> mapM (dfs'' bv) (neighs u)
diff --git a/src/Algorithms/Graph/MST.hs b/src/Algorithms/Graph/MST.hs
deleted file mode 100644
--- a/src/Algorithms/Graph/MST.hs
+++ /dev/null
@@ -1,152 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-module Algorithms.Graph.MST( mst
-                           , mstEdges
-                           , makeTree
-                           ) where
-
-import           Algorithms.Graph.DFS (AdjacencyLists, dfs')
-import           Control.Monad (forM_, when, filterM)
-import           Control.Monad.ST (ST,runST)
-import qualified Data.List as L
-import           Data.PlanarGraph
-import           Data.Tree
-import qualified Data.Vector as V
-import qualified Data.Vector.Mutable as MV
-import qualified Data.Vector.Unboxed.Mutable as UMV
-
---------------------------------------------------------------------------------
-
-
--- | Minimum spanning tree of the edges. The result is a rooted tree, in which
--- the nodes are the vertices in the planar graph together with the edge weight
--- of the edge to their parent. The root's weight is zero.
---
--- The algorithm used is Kruskal's.
---
--- running time: \(O(n \log n)\)
-mst   :: Ord e => PlanarGraph s w v e f -> Tree (VertexId s w)
-mst g = makeTree g $ mstEdges g
-  -- TODO: Add edges/darts to the output somehow.
-
--- | Computes the set of edges in the Minimum spanning tree
---
--- running time: \(O(n \log n)\)
-mstEdges   :: Ord e => PlanarGraph s w v e f -> [Dart s]
-mstEdges g = runST $ do
-          uf <- new (numVertices g)
-          filterM (\e -> union uf (headOf e g) (tailOf e g)) edges''
-  where
-    edges'' = map fst . L.sortOn snd . V.toList $ edges g
-
-
--- | Given an underlying planar graph, and a set of edges that form a tree,
--- create the actual tree.
---
--- pre: the planar graph has at least one vertex.
-makeTree   :: forall s w v e f.
-              PlanarGraph s w v e f -> [Dart s] -> Tree (VertexId s w)
-makeTree g = flip dfs' start . mkAdjacencyLists
-  where
-    n = numVertices g
-    start = V.head $ vertices' g
-
-    append                  :: MV.MVector s' [a] -> VertexId s w -> a -> ST s' ()
-    append v (VertexId i) x = MV.read v i >>= MV.write v i . (x:)
-
-    mkAdjacencyLists         :: [Dart s] -> AdjacencyLists s w
-    mkAdjacencyLists edges'' = V.create $ do
-                                 vs <- MV.replicate n []
-                                 forM_ edges'' $ \e -> do
-                                   let u = headOf e g
-                                       v = tailOf e g
-                                   append vs u v
-                                   append vs v u
-                                 pure vs
---------------------------------------------------------------------------------
-
--- | Union find DS
-newtype UF s a = UF { _unUF :: UMV.MVector s (Int,Int) }
-
-new   :: Int -> ST s (UF s a)
-new n = do
-          v <- UMV.new n
-          forM_ [0..n-1] $ \i ->
-            UMV.write v i (i,0)
-          pure $ UF v
-
--- | Union the components containing x and y. Returns weather or not the two
--- components were already in the same component or not.
-union               :: (Enum a, Eq a) => UF s a -> a -> a -> ST s Bool
-union uf@(UF v) x y = do
-                        (rx,rrx) <- find' uf x
-                        (ry,rry) <- find' uf y
-                        let b = rx /= ry
-                            rx' = fromEnum rx
-                            ry' = fromEnum ry
-                        when b $ case rrx `compare` rry of
-                            LT -> UMV.write v rx'  (ry',rrx)
-                            GT -> UMV.write v ry' (rx',rry)
-                            EQ -> do UMV.write v ry' (rx',rry)
-                                     UMV.write v rx' (rx',rrx+1)
-                        pure b
-
-
--- | Get the representative of the component containing x
--- find    :: (Enum a, Eq a) => UF s a -> a -> ST s a
--- find uf = fmap fst . find' uf
-
--- | get the representative (and its rank) of the component containing x
-find'             :: (Enum a, Eq a) => UF s a -> a -> ST s (a,Int)
-find' uf@(UF v) x = do
-                      (p,r) <- UMV.read v (fromEnum x) -- get my parent
-                      if toEnum p == x then
-                        pure (x,r) -- I am a root
-                      else do
-                        rt@(j,_) <- find' uf (toEnum p)  -- get the root of my parent
-                        UMV.write v (fromEnum x) (fromEnum j,r)   -- path compression
-                        pure rt
-
-
---------------------------------------------------------------------------------
-
--- partial implementation of Prims
--- mst g = undefined
-
--- -- | runs MST with a given root
--- mstFrom     :: (Ord e, Monoid e)
---             => VertexId s w -> PlanarGraph s w v e f -> Tree (VertexId s w, e)
--- mstFrom r g = prims initialQ (Node (r,mempty) [])
---   where
---     update' k p q = Q.adjust (const p) k q
-
---     -- initial Q has the value of the root set to the zero element, and has no
---     -- parent. The others are all set to Top (and have no parent yet)
---     initialQ = update' r (ValT (mempty,Nothing))
---              . GV.foldr (\v q -> Q.insert v (Top,Nothing) q) Q.empty $ vertices g
-
---     prims qq t = case Q.minView qq of
---       Nothing -> t
---       Just (v Q.:-> (w,p), q) -> prims $
-
---------------------------------------------------------------------------------
--- Testing Stuff
-
--- testG = planarGraph' [ [ (Dart aA Negative, "a-")
---                        , (Dart aC Positive, "c+")
---                        , (Dart aB Positive, "b+")
---                        , (Dart aA Positive, "a+")
---                        ]
---                      , [ (Dart aE Negative, "e-")
---                        , (Dart aB Negative, "b-")
---                        , (Dart aD Negative, "d-")
---                        , (Dart aG Positive, "g+")
---                        ]
---                      , [ (Dart aE Positive, "e+")
---                        , (Dart aD Positive, "d+")
---                        , (Dart aC Negative, "c-")
---                        ]
---                      , [ (Dart aG Negative, "g-")
---                        ]
---                      ]
---   where
---     (aA:aB:aC:aD:aE:aG:_) = take 6 [Arc 0..]
diff --git a/src/Control/Monad/State/Persistent.hs b/src/Control/Monad/State/Persistent.hs
deleted file mode 100644
--- a/src/Control/Monad/State/Persistent.hs
+++ /dev/null
@@ -1,48 +0,0 @@
-module Control.Monad.State.Persistent( PersistentStateT
-                                     , PersistentState
-                                     , store
-                                     , runPersistentStateT
-                                     , runPersistentState
-                                     ) where
-
-import Control.Monad.State
-import Control.Monad.Identity(Identity(..))
-import Data.List.NonEmpty(NonEmpty(..),(<|),toList)
-
---------------------------------------------------------------------------------
-
--- | A State monad that can store earlier versions of the state.
-newtype PersistentStateT s m a =
-  PersistentStateT (StateT (NonEmpty s) m a)
-  deriving (Functor,Applicative,Monad)
-           -- We store all the versions in reverse order
-
--- | Create a snapshot of the current state and add it to the list of states
--- that we store.
-store :: Monad m => PersistentStateT s m ()
-store = PersistentStateT $ do
-  ss@(s :| _) <- get
-  put (s <| ss)
-
-
-instance Monad m => MonadState s (PersistentStateT s m) where
-  state f = PersistentStateT $ do
-              (s :| os) <- get
-              let (x,s') = f s
-              put (s' :| os)
-              return x
-
--- | run a persistentStateT, returns a triplet with the value, the last state
--- and a list of all states (including the last one) in chronological order
-runPersistentStateT :: Functor m => PersistentStateT s m a -> s -> m (a,s,[s])
-runPersistentStateT (PersistentStateT act) initS = f <$> runStateT act (initS :| [])
-  where
-    f (x,ss@(s :| _)) = (x, s, reverse $ toList ss)
-
-
---------------------------------------------------------------------------------
-
-type PersistentState s = PersistentStateT s Identity
-
-runPersistentState     :: PersistentState s a -> s -> (a,s,[s])
-runPersistentState act = runIdentity . runPersistentStateT act
diff --git a/src/Data/BalBST.hs b/src/Data/BalBST.hs
deleted file mode 100644
--- a/src/Data/BalBST.hs
+++ /dev/null
@@ -1,378 +0,0 @@
-{-# LANGUAGE RecordWildCards #-}
-module Data.BalBST where
-
-import           Control.Applicative((<|>))
-import           Data.Bifunctor
-import           Data.Function (on)
-import           Data.Functor.Contravariant
-import qualified Data.List as L
-import           Data.Maybe
-import qualified Data.Tree as T
-import           Prelude hiding (lookup,null)
-
---------------------------------------------------------------------------------
-
--- | Describes how to search in a tree
-data TreeNavigator k a = Nav { goLeft     :: a -> k -> Bool
-                             , extractKey :: a -> a -> k
-                             }
-
-instance Contravariant (TreeNavigator k) where
-  contramap f (Nav gL eK) = Nav (\a k -> gL (f a) k) (\x y -> eK (f x) (f y))
-
-
-ordNav :: Ord a => TreeNavigator a a
-ordNav = Nav (<=) min
-
-
-ordNavBy   :: Ord b => (a -> b) ->  TreeNavigator b a
-ordNavBy f = Nav (\x k -> f x <= k) (min `on` f)
-
-
--- instance Functor (TreeNavigator k) where
---   fmap f Nav{..} = Nav (\b k -> )
-
-
-
--- | A balanced binary search tree
-data BalBST k a = BalBST { nav    :: !(TreeNavigator k a)
-                         , toTree :: !(Tree k a)
-                         }
-
-instance (Show k, Show a) => Show (BalBST k a) where
-  show (BalBST _ t) = "BalBST (" ++ show t ++ ")"
-
-
-data Color = Red | Black deriving (Show,Read,Eq,Ord)
-
-type Height = Int
-
--- Red-Black tree with values in the leaves
-data Tree k a = Empty
-              | Leaf !a
-              | Node !Color !Height (Tree k a) !k (Tree k a) deriving (Show,Eq)
-
---------------------------------------------------------------------------------
-
--- | Creates an empty BST
-empty   :: TreeNavigator k a -> BalBST k a
-empty n = BalBST n Empty
-
-
--- | \(O(n\log n)\)
-fromList :: TreeNavigator k a -> [a] -> BalBST k a
-fromList n = foldr insert (empty n)
-
-fromList' :: Ord a => [a] -> BalBST a a
-fromList' = fromList ordNav
-
-
--- -- | \(O(n)\)
--- fromAscList :: TreeNavigator k a -> [a] -> BalBST k a
--- fromAscList = undefined
-
-
---------------------------------------------------------------------------------
-
--- | Check if the tree is empty
-null                  :: BalBST k a -> Bool
-null (BalBST _ Empty) = True
-null _                = False
-
--- | Test if an element occurs in the BST.
--- \(O(\log n)\)
-lookup :: Eq a => a -> BalBST k a -> Maybe a
-lookup x (BalBST Nav{..} t) = lookup' t
-  where
-    lookup' Empty            = Nothing
-    lookup' (Leaf y)         = if x == y then Just y else Nothing
-    lookup' (Node _ _ l k r)
-      | goLeft x k           = lookup' l
-      | otherwise            = lookup' r
-
--- | \(O(\log n)\)
-member   :: Eq a => a -> BalBST k a -> Bool
-member x = isJust . lookup x
-
--- | Search for the Predecessor
--- \(O(\log n)\)
-lookupLE :: Ord k => k -> BalBST k a -> Maybe a
-lookupLE kx (BalBST n@Nav{..} t) = lookup' t
-  where
-    lookup' Empty            = Nothing
-    lookup' (Leaf y)         = if goLeft y kx then Just y else Nothing
-    lookup' (Node _ _ l k r)
-      | kx <= k              = lookup' l
-      | otherwise            = lookup' r <|> lookupMax (BalBST n l)
-
-
--- | Insert an element in the BST.
---
--- \(O(\log n)\)
-insert :: a -> BalBST k a -> BalBST k a
-insert x (BalBST n@Nav{..} t) = BalBST n (blacken $ insert' t)
-  where
-    insert' Empty    = Leaf x
-    insert' (Leaf y) = let k     = extractKey x y
-                           (l,r) = if goLeft x k then (x,y) else (y,x)
-                       in red 2 (Leaf l) k (Leaf r)
-    insert' (Node c h l k r)
-      | goLeft  x k  = balance c h (insert' l) k r
-      | otherwise    = balance c h l           k (insert' r)
-
-
-
--- delete = undefined
-
--- | Delete (one occurance of) an element.
--- \(O(\log n)\)
-delete                        :: Eq a => a -> BalBST k a -> BalBST k a
-delete x t = let Split l _ r = split x t
-                 n           = nav t
-             in BalBST n $ joinWith n l r
-
-
--- (BalBST n@Nav{..} t) = delete' t
---   where
---     delete' Empty      = Empty
---     delete' l@(Leaf y) = if x == y then Empty else l
---     delete' (Node c h l k r)
---       | goLeft x k     =
-
-
---------------------------------------------------------------------------------
-
-
--- | Extract the minimum from the tree
--- \(O(\log n)\)
-minView              :: BalBST k a -> Maybe (a, Tree k a)
-minView (BalBST n t) = minView' t
-  where
-    minView' Empty            = Nothing
-    minView' (Leaf x)         = Just (x,Empty)
-    minView' (Node _ _ l _ r) = fmap (flip (joinWith n) r) <$> minView' l
-
-lookupMin :: BalBST k b -> Maybe b
-lookupMin = fmap fst . maxView
-
--- | Extract the maximum from the tree
--- \(O(\log n)\)
-maxView              :: BalBST k a -> Maybe (a, Tree k a)
-maxView (BalBST n t) = maxView' t
-  where
-    maxView' Empty            = Nothing
-    maxView' (Leaf x)         = Just (x,Empty)
-    maxView' (Node _ _ l _ r) = fmap (joinWith n l) <$> maxView' r
-
-lookupMax :: BalBST k b -> Maybe b
-lookupMax = fmap fst . maxView
-
-
--- | Joins two BSTs. Assumes that the ranges are disjoint. It takes the left Tree nav
---
--- \(O(\log n)\)
-join                           :: BalBST k a -> BalBST k a -> BalBST k a
-join (BalBST n l) (BalBST _ r) = BalBST n $ joinWith n l r
-
--- | Joins two BSTs' with a specific Tree Navigator
---
--- \(O(\log n)\)
-joinWith               :: TreeNavigator k a -> Tree k a -> Tree k a -> Tree k a
-joinWith Nav{..} tl tr
-    | lh >= rh         = blacken $ joinL tl tr
-    | otherwise        = blacken $ joinR tl tr
-  where
-    rh = height tr
-    lh = height tl
-
-    joinL Empty      _           = Empty
-    joinL l          Empty       = l
-    joinL l@(Leaf x) r@(Leaf y)  = red 2 l (extractKey x y) r
-    joinL l@(Node c h ll k lr) r
-      | h == rh                  = let lm = unsafeMax lr
-                                       rm = unsafeMin r
-                                   in balance Red (h+1) l (extractKey lm rm) r
-      | otherwise                = balance c h ll k (joinL lr r)
-        -- lh >= rh
-    joinL _ _ = error "joinL. absurd"
-
-
-    joinR _          Empty       = Empty
-    joinR Empty      r           = r
-
-    joinR l@(Leaf x) r@(Leaf y)  = red 2 l (extractKey x y) r
-    joinR l r@(Node c h rl k rr)
-      | h == lh                  = let lm = unsafeMax l
-                                       rm = unsafeMin rl
-                                   in balance Red (h+1) l (extractKey lm rm) r
-      | otherwise                = balance c h (joinR l rl) k rr
-        -- lh >= rh
-    joinR _ _ = error "joinR absurd"
-
-
---------------------------------------------------------------------------------
--- | Splitting and extracting
-
--- | A pair that is strict in its first argument and lazy in the second.
-data Pair a b = Pair { fst' :: !a
-                     , snd' :: b
-                     } deriving (Show,Eq,Functor,Foldable,Traversable)
-
-
-collect        :: b -> [Pair a b] -> Pair [a] b
-collect def [] = Pair [] def
-collect _   xs = Pair (map fst' xs) (snd' $ last xs)
-
-
--- | Extract a prefix from the tree, i.e. a repeated 'minView'
---
--- \(O(\log n +k)\), where \(k\) is the size of the extracted part
-extractPrefix                      :: BalBST k a -> [Pair a (Tree k a)]
-extractPrefix (BalBST n@Nav{..} t) = extractPrefix' t
-  where
-    extractPrefix' Empty            = []
-    extractPrefix' (Leaf x)         = [Pair x Empty]
-    extractPrefix' (Node _ _ l _ r) = ls ++ extractPrefix' r
-      where
-        ls = map (fmap $ flip (joinWith n) r) $ extractPrefix' l
-
--- | Extract a suffix from the tree, i.e. a repeated 'minView'
---
--- \(O(\log n +k)\), where \(k\) is the size of the extracted part
-extractSuffix                      :: BalBST k a -> [Pair a (Tree k a)]
-extractSuffix (BalBST n@Nav{..} t) = extract t
-  where
-    extract Empty            = []
-    extract (Leaf x)         = [Pair x Empty]
-    extract (Node _ _ l _ r) = rs ++ extract l
-      where
-        rs = map (fmap $ joinWith n l) $ extract r
-
--- | Result of splititng a tree
-data Split a b = Split a !b a deriving (Show,Eq)
-
--- | Splits the tree at x. Note that if x occurs more often, no guarantees are
--- given which one is found.
---
--- \(O(\log n)\)
-split                        :: Eq a => a -> BalBST k a -> Split (Tree k a) (Maybe a)
-split x (BalBST n@Nav{..} t) = split' t
-  where
-    split' Empty                  = Split Empty Nothing Empty
-    split' l@(Leaf y)
-      | x == y                    = Split Empty (Just y) Empty
-      | goLeft x (extractKey x y) = Split l     Nothing  Empty
-      | otherwise                 = Split Empty Nothing  l
-    split' (Node _ _ l k r)
-      | goLeft x k                = let Split l' mx r' = split' l
-                                    in Split l' mx (joinWith n r' r)
-      | otherwise                 = let Split l' mx r' = split' r
-                                    in Split (joinWith n l l') mx r'
-
--- | split based on a monotonic predicate
---
--- \(O(\log n)\)
-splitMonotone                        :: (a -> Bool) -> BalBST k a
-                                     -> (BalBST k a, BalBST k a)
-splitMonotone p (BalBST n@Nav{..} t) = bimap (BalBST n) (BalBST n) $ split' t
-  where
-    split' Empty        = (Empty,Empty)
-    split' l@(Leaf y)
-      | p y             = (Empty,l)
-      | otherwise       = (l,Empty)
-    split' (Node _ _ l _ r)
-      | p (unsafeMin r) = let (l',m) = split' l in (l',joinWith n m r)
-      | otherwise       = let (m,r') = split' r in (joinWith n l m, r')
-
-
--- | Splits at a given monotone predicate p, and then selects everything that
--- satisfies the predicate sel.
-splitExtract           :: (a -> Bool) -> (a -> Bool) -> BalBST k a
-                       -> Split (BalBST k a) ([a],[a])
-splitExtract p sel bst = Split (BalBST n before) (reverse mid1,mid2) (BalBST n after)
-  where
-    n                = nav bst
-    (before',after') = splitMonotone p bst
-
-    extract def = collect def . L.takeWhile (sel . fst')
-
-    Pair mid1 before = extract (toTree before') $ extractSuffix before'
-    Pair mid2 after  = extract (toTree after')  $ extractPrefix after'
-
-
---------------------------------------------------------------------------------
-
-
-data T k a = Internal !Color !Height !k | Val !a deriving (Show,Eq,Ord)
-
-toRoseTree :: Tree k a -> Maybe (T.Tree (T k a))
-toRoseTree Empty            = Nothing
-toRoseTree (Leaf x)         = Just $ T.Node (Val x) []
-toRoseTree (Node c h l k r) = Just $ T.Node (Internal c h k) (mapMaybe toRoseTree [l,r])
-
-
-showTree :: (Show k, Show a) => BalBST k a -> String
-showTree = maybe "Empty" T.drawTree . fmap (fmap show) . toRoseTree . toTree
-
--- | Get the minimum in the tree. Errors when the tree is empty
---
--- \(O(\log n)\)
-unsafeMin                  :: Tree k a -> a
-unsafeMin (Leaf x)         = x
-unsafeMin (Node _ _ l _ _) = unsafeMin l
-unsafeMin _                = error "unsafeMin: Empty"
-
--- | Get the maximum in the tree. Errors when the tree is empty
---
--- \(O(\log n)\)
-unsafeMax                  :: Tree k a -> a
-unsafeMax (Leaf x)         = x
-unsafeMax (Node _ _ _ _ r) = unsafeMax r
-unsafeMax _                = error "unsafeMax: Empty"
-
--- | Extract all elements in the tree
---
--- \(O(n)\)
-toList :: BalBST k a -> [a]
-toList = toList' . toTree
-
--- | Extract all elements in the tree
---
--- \(O(n)\)
-toList'                  :: Tree k a -> [a]
-toList' Empty            = []
-toList' (Leaf x)         = [x]
-toList' (Node _ _ l _ r) = toList' l ++ toList' r
-
-
---------------------------------------------------------------------------------
--- * Helper stuff
-
-black :: Height -> Tree k a -> k -> Tree k a -> Tree k a
-black = Node Black
-
-red :: Height -> Tree k a -> k -> Tree k a -> Tree k a
-red = Node Red
-
-
-blacken                    :: Tree k a -> Tree k a
-blacken (Node Red h l k r) = Node Black h l k r
-blacken t                  = t
-
--- | rebalance the tree
-balance  :: Color -> Height -> Tree k a -> k -> Tree k a -> Tree k a
-balance Black h (Node Red _ (Node Red _ a x b) y c) z d = mkNode h a x b y c z d
-balance Black h (Node Red _ a x (Node Red _ b y c)) z d = mkNode h a x b y c z d
-balance Black h a x (Node Red _ (Node Red _ b y c) z d) = mkNode h a x b y c z d
-balance Black h a x (Node Red _ b y (Node Red _ c z d)) = mkNode h a x b y c z d
-balance co h a x b                                      = Node co h a x b
-
-mkNode                 :: Height
-                       -> Tree k a -> k -> Tree k a -> k -> Tree k a  -> k -> Tree k a
-                       -> Tree k a
-mkNode h a x b y c z d = red h (black h a x b) y (black h c z d)
-
-height                  :: Tree k a -> Height
-height Empty            = 0
-height (Leaf _)         = 1
-height (Node _ h _ _ _) = h
diff --git a/src/Data/BinaryTree.hs b/src/Data/BinaryTree.hs
deleted file mode 100644
--- a/src/Data/BinaryTree.hs
+++ /dev/null
@@ -1,201 +0,0 @@
-{-# Language DeriveFunctor#-}
-{-# Language FunctionalDependencies #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Data.BinaryTree
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
---
--- Several types of Binary trees.
---
---------------------------------------------------------------------------------
-module Data.BinaryTree where
-
-import           Control.DeepSeq
-import           Data.List.NonEmpty (NonEmpty(..),(<|))
-import qualified Data.List.NonEmpty as NonEmpty
-import           Data.Maybe (mapMaybe)
-import           Data.Semigroup.Foldable
-import qualified Data.Tree as Tree
-import qualified Data.Vector as V
-import           GHC.Generics (Generic)
-
---------------------------------------------------------------------------------
-
--- | Binary tree that stores its values (of type a) in the leaves. Internal
--- nodes store something of type v.
-data BinLeafTree v a = Leaf !a
-                     | Node (BinLeafTree v a) !v (BinLeafTree v a)
-                     deriving (Show,Read,Eq,Ord,Functor,Generic)
-
-instance (NFData v, NFData a) => NFData (BinLeafTree v a)
-
-class Semigroup v => Measured v a | a -> v where
-  measure :: a -> v
-
--- | smart constructor
-node     :: Measured v a => BinLeafTree v a -> BinLeafTree v a -> BinLeafTree v a
-node l r = Node l (measure l <> measure r) r
-
-
-instance Measured v a => Measured v (BinLeafTree v a) where
-  measure (Leaf x)     = measure x
-  measure (Node _ v _) = v
-
-
-instance Foldable (BinLeafTree v) where
-  foldMap f (Leaf a)     = f a
-  foldMap f (Node l _ r) = foldMap f l `mappend` foldMap f r
-
-instance Foldable1 (BinLeafTree v)
-
-instance Traversable (BinLeafTree v) where
-  traverse f (Leaf a)     = Leaf <$> f a
-  traverse f (Node l v r) = Node <$> traverse f l <*> pure v <*> traverse f r
-
-instance Measured v a => Semigroup (BinLeafTree v a) where
-  l <> r = node l r
-
--- | Create a balanced tree, i.e. a tree of height \(O(\log n)\) with the
--- elements in the leaves.
---
--- \(O(n)\) time.
-asBalancedBinLeafTree :: NonEmpty a -> BinLeafTree Size (Elem a)
-asBalancedBinLeafTree = repeatedly merge . fmap (Leaf . Elem)
-  where
-    repeatedly _ (t :| []) = t
-    repeatedly f ts        = repeatedly f $ f ts
-
-    merge ts@(_ :| [])  = ts
-    merge (l :| r : []) = node l r :| []
-    merge (l :| r : ts) = node l r <| (merge $ NonEmpty.fromList ts)
--- -- the implementation below produces slightly less high trees, but runs in
--- -- \(O(n \log n)\) time, as on every level it traverses the list passed down.
--- asBalancedBinLeafTree ys = asBLT (length ys') ys' where ys' = toList ys
-
---     asBLT _ [x] = Leaf (Elem x)
---     asBLT n xs  = let h       = n `div` 2
---                       (ls,rs) = splitAt h xs
---                   in node (asBLT h ls) (asBLT (n-h) rs)
-
--- | Given a function to combine internal nodes into b's and leafs into b's,
--- traverse the tree bottom up, and combine everything into one b.
-foldUp                  :: (b -> v -> b -> b) -> (a -> b) -> BinLeafTree v a -> b
-foldUp _ g (Leaf x)     = g x
-foldUp f g (Node l x r) = f (foldUp f g l) x (foldUp f g r)
-
-
--- | Traverses the tree bottom up, recomputing the assocated values.
-foldUpData     :: (w -> v -> w -> w) -> (a -> w) -> BinLeafTree v a -> BinLeafTree w a
-foldUpData f g = foldUp f' Leaf
-  where
-    f' l v r = Node l (f (access' l) v (access' r)) r
-
-    access' (Leaf x)     = g x
-    access' (Node _ v _) = v
-
--- | Takes two trees, that have the same structure, and uses the provided
--- functions to "zip" them together
-zipExactWith                                  :: (u -> v -> w)
-                                              -> (a -> b -> c)
-                                              -> BinLeafTree u a
-                                              -> BinLeafTree v b
-                                              -> BinLeafTree w c
-zipExactWith _ g (Leaf x)     (Leaf y)        = Leaf (x `g` y)
-zipExactWith f g (Node l m r) (Node l' m' r') = Node (zipExactWith f g l l')
-                                                     (m `f` m')
-                                                     (zipExactWith f g r r')
-zipExactWith _ _ _            _               =
-    error "zipExactWith: tree structures not the same "
-
-newtype Size = Size Int deriving (Show,Read,Eq,Num,Integral,Enum,Real,Ord,Generic,NFData)
-
-instance Semigroup Size where
-  x <> y = x + y
-
-instance Monoid Size where
-  mempty = Size 0
-  mappend = (<>)
-
-newtype Elem a = Elem { _unElem :: a }
-               deriving (Show,Read,Eq,Ord,Functor,Foldable,Traversable)
-
-instance Measured Size (Elem a) where
-  measure _ = 1
-
-
-data Sized a = Sized !Size a
-             deriving (Show,Eq,Ord,Functor,Foldable,Traversable,Generic)
-instance NFData a => NFData (Sized a)
-
-instance Semigroup a => Semigroup (Sized a) where
-  (Sized i a) <> (Sized j b) = Sized (i <> j) (a <> b)
-
-instance Monoid a => Monoid (Sized a) where
-  mempty = Sized mempty mempty
-  (Sized i a) `mappend` (Sized j b) = Sized (i <> j) (a `mappend` b)
-
--- instance Semigroup a => Measured Size (Sized a) where
---   measure (Sized i _) = i
-
-
---------------------------------------------------------------------------------
--- * Converting into a Data.Tree
-
-data RoseElem v a = InternalNode v | LeafNode a deriving (Show,Eq,Functor)
-
-toRoseTree              :: BinLeafTree v a -> Tree.Tree (RoseElem v a)
-toRoseTree (Leaf x)     = Tree.Node (LeafNode x) []
-toRoseTree (Node l v r) = Tree.Node (InternalNode v) (map toRoseTree [l,r])
-
-
-drawTree :: (Show v, Show a) => BinLeafTree v a -> String
-drawTree = Tree.drawTree . fmap show . toRoseTree
-
-
---------------------------------------------------------------------------------
--- * Internal Node Tree
-
--- | Binary tree in which we store the values of type a in internal nodes.
-data BinaryTree a = Nil
-                  | Internal (BinaryTree a) !a (BinaryTree a)
-                  deriving (Show,Read,Eq,Ord,Functor,Foldable,Traversable,Generic)
-instance NFData a => NFData (BinaryTree a)
-
--- | Get the element stored at the root, if it exists
-access                  :: BinaryTree a -> Maybe a
-access Nil              = Nothing
-access (Internal _ x _) = Just x
-
--- | Create a balanced binary tree.
---
--- running time: \(O(n)\)
-asBalancedBinTree :: [a] -> BinaryTree a
-asBalancedBinTree = mkTree . V.fromList
-  where
-    mkTree v = let n = V.length v
-                   h = n `div` 2
-                   x = v V.! h
-               in if n == 0 then Nil
-                            else Internal (mkTree $ V.slice 0 h v) x
-                                          (mkTree $ V.slice (h+1) (n - h -1) v)
-
--- | Fold function for folding over a binary tree.
-foldBinaryUp                      :: b -> (a -> b -> b -> b)
-                                  -> BinaryTree a -> BinaryTree (a,b)
-foldBinaryUp _ _ Nil              = Nil
-foldBinaryUp e f (Internal l x r) = let l' = foldBinaryUp e f l
-                                        r' = foldBinaryUp e f r
-                                        g  = maybe e snd . access
-                                        b  = f x (g l') (g r')
-                                    in Internal l' (x,b) r'
-
--- | Convert a @BinaryTree@ into a RoseTree
-toRoseTree'                  :: BinaryTree a -> Maybe (Tree.Tree a)
-toRoseTree' Nil              = Nothing
-toRoseTree' (Internal l v r) = Just $ Tree.Node v $ mapMaybe toRoseTree' [l,r]
-
--- | Draw a binary tree.
-drawTree' :: Show a => BinaryTree a -> String
-drawTree' = maybe "Nil" (Tree.drawTree . fmap show) . toRoseTree'
diff --git a/src/Data/BinaryTree/Zipper.hs b/src/Data/BinaryTree/Zipper.hs
deleted file mode 100644
--- a/src/Data/BinaryTree/Zipper.hs
+++ /dev/null
@@ -1,64 +0,0 @@
-module Data.BinaryTree.Zipper where
-
-import Data.BinaryTree
-
---------------------------------------------------------------------------------
-
-data Ctx a = Top | L (Ctx a) a (BinaryTree a) | R (BinaryTree a) a (Ctx a)
-           deriving (Show,Read,Eq,Ord,Functor,Foldable,Traversable)
-
-data BinaryTreeZipper a = Loc (BinaryTree a) (Ctx a)
-           deriving (Show,Read,Eq,Ord,Functor,Foldable,Traversable)
-
--- | Focus on the root
-top   :: BinaryTree a -> BinaryTreeZipper a
-top t = Loc t Top
-
--- | Go to the left child
-left                            :: BinaryTreeZipper a -> Maybe (BinaryTreeZipper a)
-left (Loc (Internal l x r) ctx) = Just $ Loc l (L ctx x r)
-left (Loc Nil _)                = Nothing
-
--- | Go to the right child
-right                            :: BinaryTreeZipper a -> Maybe (BinaryTreeZipper a)
-right (Loc (Internal l x r) ctx) = Just $ Loc r (R l x ctx)
-right (Loc Nil _)                = Nothing
-
--- | Move to the parent
-up                     :: BinaryTreeZipper a -> Maybe (BinaryTreeZipper a)
-up (Loc _ Top)         = Nothing
-up (Loc l (L ctx x r)) = Just $ Loc (Internal l x r) ctx
-up (Loc r (R l x ctx)) = Just $ Loc (Internal l x r) ctx
-
--- | Navigate to the root
-toRoot   :: BinaryTreeZipper a -> BinaryTreeZipper a
-toRoot z = toRoot' z (Just z)
-  where
-    toRoot' z' Nothing   = z'
-    toRoot' _  (Just z') = toRoot' z' (up z')
-
-
--- | Returns a list of zippers; one focussed on each node in the tree
-visitAll   :: BinaryTree a -> [BinaryTreeZipper a]
-visitAll t = visitAll' (top t)
-  where
-    f           = maybe [] visitAll'
-    visitAll' z = z : f (left z) <> f (right z)
-
--- | Get the value stored at the current node
-accessZ           :: BinaryTreeZipper a -> Maybe a
-accessZ (Loc t _) = access t
-
-
--- | Returns all subtrees; i.e. every node with all its decendents
-subTrees :: BinaryTree a -> [BinaryTree a]
-subTrees t = Nil : subTrees' t
-  where
-    subTrees' Nil                 = []
-    subTrees' tt@(Internal l _ r) = tt : subTrees' l <> subTrees' r
-
-
--- | Splits the tree here, returns a pair (innerTree,outerTree)
-splitTree             :: BinaryTreeZipper a -> (BinaryTree a, BinaryTree a)
-splitTree (Loc t ctx) = let (Loc r _) = toRoot $ Loc Nil ctx
-                        in (t, r)
diff --git a/src/Data/CircularList/Util.hs b/src/Data/CircularList/Util.hs
deleted file mode 100644
--- a/src/Data/CircularList/Util.hs
+++ /dev/null
@@ -1,67 +0,0 @@
-module Data.CircularList.Util where
-
-import           Control.Lens
-import           Data.Tuple
-import qualified Data.CircularList as C
-import qualified Data.List as L
-
-
---------------------------------------------------------------------------------
-
--- $setup
--- >>> let ordList = C.fromList [5,6,10,20,30,1,2,3]
-
-
-
--- | Given a circular list, whose elements are in increasing order, insert the
--- new element into the Circular list in its sorted order.
---
--- >>> insertOrd 1 C.empty
--- fromList [1]
--- >>> insertOrd 1 $ C.fromList [2]
--- fromList [2,1]
--- >>> insertOrd 2 $ C.fromList [1,3]
--- fromList [1,2,3]
--- >>> insertOrd 31 ordList
--- fromList [5,6,10,20,30,31,1,2,3]
--- >>> insertOrd 1 ordList
--- fromList [5,6,10,20,30,1,1,2,3]
--- >>> insertOrd 4 ordList
--- fromList [5,6,10,20,30,1,2,3,4]
--- >>> insertOrd 11 ordList
--- fromList [5,6,10,11,20,30,1,2,3]
-insertOrd :: Ord a => a -> C.CList a -> C.CList a
-insertOrd = insertOrdBy compare
-
--- | Insert an element into an increasingly ordered circular list, with
--- specified compare operator.
-insertOrdBy       :: (a -> a -> Ordering) -> a -> C.CList a -> C.CList a
-insertOrdBy cmp x = C.fromList . insertOrdBy' cmp x . C.rightElements
-
--- | List version of insertOrdBy; i.e. the list contains the elements in
--- cirulcar order. Again produces a list that has the items in circular order.
-insertOrdBy'         :: (a -> a -> Ordering) -> a -> [a] -> [a]
-insertOrdBy' cmp x xs = case (rest, x `cmp` head rest) of
-    ([],  _)   -> L.insertBy cmp x pref
-    (z:zs, GT) -> (z : L.insertBy cmp x zs) ++ pref
-    (_:_,  EQ) -> (x : xs) -- == x : rest ++ pref
-    (_:_,  LT) -> rest ++ L.insertBy cmp x pref
-  where
-    -- split the list at its maximum.
-    (pref,rest) = splitIncr cmp xs
-
--- given a list of elements that is supposedly a a cyclic-shift of a list of
--- increasing items, find the splitting point. I.e. returns a pair of lists
--- (ys,zs) such that xs = zs ++ ys, and ys ++ zs is (supposedly) in sorted
--- order.
-splitIncr              :: (a -> a -> Ordering) -> [a] -> ([a],[a])
-splitIncr _   []       = ([],[])
-splitIncr cmp xs@(x:_) = swap . bimap (map snd) (map snd)
-                      . L.break (\(a,b) -> (a `cmp` b) == GT) $ zip (x:xs) xs
-
--- | Test if the circular list is a cyclic shift of the second list.
--- Running time: O(n), where n is the size of the smallest list
-isShiftOf         :: Eq a => C.CList a -> C.CList a -> Bool
-xs `isShiftOf` ys = let rest = tail . C.leftElements
-                    in maybe False (\xs' -> rest xs' == rest ys) $
-                         C.focus ys >>= flip C.rotateTo xs
diff --git a/src/Data/CircularSeq.hs b/src/Data/CircularSeq.hs
deleted file mode 100644
--- a/src/Data/CircularSeq.hs
+++ /dev/null
@@ -1,376 +0,0 @@
-module Data.CircularSeq( CSeq
-                       , cseq
-                       , singleton
-                       , fromNonEmpty
-                       , fromList
-
-                       , toNonEmpty
-
-                       , focus
-                       , index, adjust
-                       , item
-
-                       , rotateL
-                       , rotateR
-                       , rotateNL, rotateNR
-
-                       , rightElements
-                       , leftElements
-                       , asSeq
-
-                       , reverseDirection
-                       , allRotations
-
-                       , findRotateTo
-                       , rotateTo
-
-                       , zipLWith, zipL
-                       , zip3LWith
-
-
-                       , insertOrd, insertOrdBy
-                       , isShiftOf
-                       ) where
-
-import           Control.DeepSeq
-import           Control.Lens (lens, Lens', bimap)
-import qualified Data.Foldable as F
-import qualified Data.List as L
-import qualified Data.List.NonEmpty as NonEmpty
-import           Data.Maybe (listToMaybe)
-import           Data.Semigroup.Foldable hiding (toNonEmpty)
-import           Data.Sequence ((|>),(<|),ViewL(..),ViewR(..),Seq)
-import qualified Data.Sequence as S
-import qualified Data.Traversable as T
-import           Data.Tuple (swap)
-import           GHC.Generics (Generic)
-
---------------------------------------------------------------------------------
-
--- $setup
--- >>> let ordList = fromList [5,6,10,20,30,1,2,3]
-
-
--- | Nonempty circular sequence
-data CSeq a = CSeq !(Seq a) !a !(Seq a)
-  deriving (Generic)
-                     -- we keep the seq balanced, i.e. size left >= size right
-
-instance NFData a => NFData (CSeq a)
-
-instance Eq a => Eq (CSeq a) where
-  a == b = asSeq a == asSeq b
-
-instance Show a => Show (CSeq a) where
-  showsPrec d s = showParen (d > app_prec) $
-                    showString (("CSeq " <>) . show . F.toList . rightElements $ s)
-    where app_prec = 10
-
--- traverses starting at the focus, going to the right.
-instance T.Traversable CSeq where
-  traverse f (CSeq l x r) = (\x' r' l' -> CSeq l' x' r')
-                         <$> f x <*> traverse f r <*> traverse f l
--- instance Traversable1 CSeq where
---   traverse1 f (CSeq l x r) = liftF3 (\x' r' l' -> CSeq l' x' r')
---                                     (f x) (traverse f r) (traverse f l)
-
-instance Foldable1 CSeq
-
-
-instance F.Foldable CSeq where
-  foldMap = T.foldMapDefault
-  length (CSeq l _ r) = 1 + S.length l + S.length r
-
-
-
-
-instance Functor CSeq where
-  fmap = T.fmapDefault
-
-
-singleton   :: a -> CSeq a
-singleton x = CSeq S.empty x S.empty
-
--- | Gets the focus of the CSeq
--- running time: O(1)
-focus              :: CSeq a -> a
-focus (CSeq _ x _) = x
-
--- | Access the i^th item  (w.r.t the focus) in the CSeq (indices modulo n).
---
--- running time: \(O(\log (i \mod n))\)
---
--- >>> index (fromList [0..5]) 1
--- 1
--- >>> index (fromList [0..5]) 2
--- 2
--- >>> index (fromList [0..5]) 5
--- 5
--- >>> index (fromList [0..5]) 10
--- 4
--- >>> index (fromList [0..5]) 6
--- 0
--- >>> index (fromList [0..5]) (-1)
--- 5
--- >>> index (fromList [0..5]) (-6)
--- 0
-index                   :: CSeq a -> Int -> a
-index s@(CSeq l x r) i' = let i  = i' `mod` length s
-                              rn = length r
-                          in if i == 0 then x
-                               else if i - 1 < rn then S.index r (i - 1)
-                                                  else S.index l (i - rn - 1)
-
--- | Adjusts the i^th element w.r.t the focus in the CSeq
---
--- running time: \(O(\log (i \mod n))\)
---
--- >>> adjust (const 1000) 2 (fromList [0..5])
--- CSeq [0,1,1000,3,4,5]
-adjust                     :: (a -> a) -> Int -> CSeq a -> CSeq a
-adjust f i' s@(CSeq l x r) = let i  = i' `mod` length s
-                                 rn = length r
-                             in if i == 0 then CSeq l (f x) r
-                                else if i - 1 < rn
-                                     then CSeq l                           x (S.adjust f (i - 1) r)
-                                     else CSeq (S.adjust f (i - rn - 1) l) x r
-
-
--- | Access te ith item in the CSeq (w.r.t the focus) as a lens
-item   :: Int -> Lens' (CSeq a) a
-item i = lens (flip index i) (\s x -> adjust (const x) i s)
-
-
-resplit   :: Seq a -> (Seq a, Seq a)
-resplit s = swap $ S.splitAt (length s `div` 2) s
-
-
--- | smart constructor that automatically balances the seq
-cseq                   :: Seq a -> a -> Seq a -> CSeq a
-cseq l x r
-    | ln > 1 + 2*rn    = withFocus x (r <> l)
-    | ln < rn `div`  2 = withFocus x (r <> l)
-    | otherwise        = CSeq l x r
-  where
-    rn = length r
-    ln = length l
-
--- | Builds a balanced seq with the element as the focus.
-withFocus     :: a -> Seq a -> CSeq a
-withFocus x s = let (l,r) = resplit s in CSeq l x r
-
--- | rotates one to the right
---
--- running time: O(1) (amortized)
---
--- >>> rotateR $ fromList [3,4,5,1,2]
--- CSeq [4,5,1,2,3]
-rotateR                :: CSeq a -> CSeq a
-rotateR s@(CSeq l x r) = case S.viewl r of
-                           EmptyL    -> case S.viewl l of
-                             EmptyL    -> s
-                             (y :< l') -> cseq (S.singleton x) y l'
-                           (y :< r') -> cseq (l |> x) y r'
-
--- | rotates the focus to the left
---
--- running time: O(1) (amortized)
---
--- >>> rotateL $ fromList [3,4,5,1,2]
--- CSeq [2,3,4,5,1]
--- >>> mapM_ print . take 5 $ iterate rotateL $ fromList [1..5]
--- CSeq [1,2,3,4,5]
--- CSeq [5,1,2,3,4]
--- CSeq [4,5,1,2,3]
--- CSeq [3,4,5,1,2]
--- CSeq [2,3,4,5,1]
-rotateL                :: CSeq a -> CSeq a
-rotateL s@(CSeq l x r) = case S.viewr l of
-                           EmptyR    -> case S.viewr r of
-                             EmptyR     -> s
-                             (r' :> y)  -> cseq r' y (S.singleton x)
-                           (l' :> y) -> cseq l' y (x <| r)
-
-
--- | Convert to a single Seq, starting with the focus.
-asSeq :: CSeq a -> Seq a
-asSeq = rightElements
-
-
--- | All elements, starting with the focus, going to the right
-
--- >>> rightElements $ fromList [3,4,5,1,2]
--- fromList [3,4,5,1,2]
-rightElements              :: CSeq a -> Seq a
-rightElements (CSeq l x r) = x <| r <> l
-
-
--- | All elements, starting with the focus, going to the left
---
--- >>> leftElements $ fromList [3,4,5,1,2]
--- fromList [3,2,1,5,4]
-leftElements              :: CSeq a -> Seq a
-leftElements (CSeq l x r) = x <| S.reverse l <> S.reverse r
-
--- | builds a CSeq
-fromNonEmpty                    :: NonEmpty.NonEmpty a -> CSeq a
-fromNonEmpty (x NonEmpty.:| xs) = withFocus x $ S.fromList xs
-
-fromList        :: [a] -> CSeq a
-fromList (x:xs) = withFocus x $ S.fromList xs
-fromList []     = error "fromList: Empty list"
-
-toNonEmpty :: CSeq a -> NonEmpty.NonEmpty a
-toNonEmpty = NonEmpty.fromList . F.toList
-
--- | Rotates i elements to the right.
---
--- pre: 0 <= i < n
---
--- running time: \(O(\log i)\) amortized
---
--- >>> rotateNR 0 $ fromList [1..5]
--- CSeq [1,2,3,4,5]
--- >>> rotateNR 1 $ fromList [1..5]
--- CSeq [2,3,4,5,1]
--- >>> rotateNR 4 $ fromList [1..5]
--- CSeq [5,1,2,3,4]
-rotateNR     :: Int -> CSeq a -> CSeq a
-rotateNR i s = let (l, r')  = S.splitAt i $ rightElements s
-                   (x :< r) = S.viewl r'
-               in cseq l x r
-
-
--- | Rotates i elements to the left.
---
--- pre: 0 <= i < n
---
--- running time: \(O(\log i)\) amoritzed
---
--- >>> rotateNL 0 $ fromList [1..5]
--- CSeq [1,2,3,4,5]
--- >>> rotateNL 1 $ fromList [1..5]
--- CSeq [5,1,2,3,4]
--- >>> rotateNL 2 $ fromList [1..5]
--- CSeq [4,5,1,2,3]
--- >>> rotateNL 3 $ fromList [1..5]
--- CSeq [3,4,5,1,2]
--- >>> rotateNL 4 $ fromList [1..5]
--- CSeq [2,3,4,5,1]
-rotateNL     :: Int -> CSeq a -> CSeq a
-rotateNL i s = let (x :< xs) = S.viewl $ rightElements s
-                   (l',r)    = S.splitAt (length s - i) $ xs |> x
-                   (l :> y)  = S.viewr l'
-               in cseq l y r
-
-
--- | Reversres the direction of the CSeq
---
--- running time: \(O(n)\)
---
--- >>> reverseDirection $ fromList [1..5]
--- CSeq [1,5,4,3,2]
-reverseDirection              :: CSeq a -> CSeq a
-reverseDirection (CSeq l x r) = CSeq (S.reverse r) x (S.reverse l)
-
-
--- | Finds an element in the CSeq
---
--- >>> findRotateTo (== 3) $ fromList [1..5]
--- Just (CSeq [3,4,5,1,2])
--- >>> findRotateTo (== 7) $ fromList [1..5]
--- Nothing
-findRotateTo   :: (a -> Bool) -> CSeq a -> Maybe (CSeq a)
-findRotateTo p = listToMaybe . filter (p . focus) . allRotations'
-
-
-rotateTo   :: Eq a => a -> CSeq a -> Maybe (CSeq a)
-rotateTo x = findRotateTo (== x)
-
-
--- | All rotations, the input CSeq is the focus.
---
--- >>> mapM_ print . allRotations $ fromList [1..5]
--- CSeq [1,2,3,4,5]
--- CSeq [2,3,4,5,1]
--- CSeq [3,4,5,1,2]
--- CSeq [4,5,1,2,3]
--- CSeq [5,1,2,3,4]
-allRotations :: CSeq a -> CSeq (CSeq a)
-allRotations = fromList . allRotations'
-
-allRotations'   :: CSeq a -> [CSeq a]
-allRotations' s = take (length s) . iterate rotateR $ s
-
--- | "Left zip": zip the two CLists, pairing up every element in the *left*
--- list with its corresponding element in the right list. If there are more
--- items in the right clist they are discarded.
-zipLWith         :: (a -> b -> c) -> CSeq a -> CSeq b -> CSeq c
-zipLWith f as bs = fromList $ zipWith f (F.toList as) (F.toList bs)
-
--- | see 'zipLWith
-zipL :: CSeq a -> CSeq b -> CSeq (a, b)
-zipL = zipLWith (,)
-
-
--- | same as zipLWith but with three items
-zip3LWith            :: (a -> b -> c -> d) -> CSeq a -> CSeq b -> CSeq c -> CSeq d
-zip3LWith f as bs cs = fromList $ zipWith3 f (F.toList as) (F.toList bs) (F.toList cs)
-
-
-
-
--- | Given a circular seq, whose elements are in increasing order, insert the
--- new element into the Circular seq in its sorted order.
---
--- >>> insertOrd 1 $ fromList [2]
--- CSeq [2,1]
--- >>> insertOrd 2 $ fromList [1,3]
--- CSeq [1,2,3]
--- >>> insertOrd 31 ordList
--- CSeq [5,6,10,20,30,31,1,2,3]
--- >>> insertOrd 1 ordList
--- CSeq [5,6,10,20,30,1,1,2,3]
--- >>> insertOrd 4 ordList
--- CSeq [5,6,10,20,30,1,2,3,4]
--- >>> insertOrd 11 ordList
--- CSeq [5,6,10,11,20,30,1,2,3]
---
--- running time: \(O(n)\)
-insertOrd :: Ord a => a -> CSeq a -> CSeq a
-insertOrd = insertOrdBy compare
-
--- | Insert an element into an increasingly ordered circular list, with
--- specified compare operator.
---
--- running time: \(O(n)\)
-insertOrdBy       :: (a -> a -> Ordering) -> a -> CSeq a -> CSeq a
-insertOrdBy cmp x = fromList . insertOrdBy' cmp x . F.toList . rightElements
-
--- | List version of insertOrdBy; i.e. the list contains the elements in
--- cirulcar order. Again produces a list that has the items in circular order.
-insertOrdBy'         :: (a -> a -> Ordering) -> a -> [a] -> [a]
-insertOrdBy' cmp x xs = case (rest, x `cmp` head rest) of
-    ([],  _)   -> L.insertBy cmp x pref
-    (z:zs, GT) -> (z : L.insertBy cmp x zs) ++ pref
-    (_:_,  EQ) -> (x : xs) -- == x : rest ++ pref
-    (_:_,  LT) -> rest ++ L.insertBy cmp x pref
-  where
-    -- split the list at its maximum.
-    (pref,rest) = splitIncr cmp xs
-
--- given a list of elements that is supposedly a a cyclic-shift of a list of
--- increasing items, find the splitting point. I.e. returns a pair of lists
--- (ys,zs) such that xs = zs ++ ys, and ys ++ zs is (supposedly) in sorted
--- order.
-splitIncr              :: (a -> a -> Ordering) -> [a] -> ([a],[a])
-splitIncr _   []       = ([],[])
-splitIncr cmp xs@(x:_) = swap . bimap (map snd) (map snd)
-                      . L.break (\(a,b) -> (a `cmp` b) == GT) $ zip (x:xs) xs
-
--- | Test if the circular list is a cyclic shift of the second list.
--- Running time: O(n), where n is the size of the smallest list
-isShiftOf         :: Eq a => CSeq a -> CSeq a -> Bool
-xs `isShiftOf` ys = let rest = tail . F.toList . leftElements
-                    in maybe False (\xs' -> rest xs' == rest ys) $
-                       rotateTo (focus ys) xs
diff --git a/src/Data/Ext.hs b/src/Data/Ext.hs
deleted file mode 100644
--- a/src/Data/Ext.hs
+++ /dev/null
@@ -1,89 +0,0 @@
-{-# LANGUAGE DeriveAnyClass  #-}
-{-# LANGUAGE OverloadedStrings  #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Data.Ext
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
---
--- A pair-like data type to represent a 'core' type that has extra information
--- as well.
---
---------------------------------------------------------------------------------
-module Data.Ext where
-
-import Control.DeepSeq
-import Control.Lens hiding ((.=))
-import Data.Aeson
-import Data.Aeson.Types (typeMismatch)
-import Data.Biapplicative
-import Data.Bifoldable
-import Data.Bifunctor.Apply
-import Data.Bitraversable
-import Data.Functor.Apply (liftF2)
-import Data.Geometry.Properties
-import Data.Semigroup.Bifoldable
-import Data.Semigroup.Bitraversable
-import GHC.Generics (Generic)
-
---------------------------------------------------------------------------------
-
--- | Our Ext type that represents the core datatype core extended with extra
--- information of type 'extra'.
-data core :+ extra = core :+ extra deriving (Show,Read,Eq,Ord,Bounded,Generic,NFData)
-infixr 1 :+
-
-type instance NumType   (core :+ ext) = NumType   core
-type instance Dimension (core :+ ext) = Dimension core
-
-instance Bifunctor (:+) where
-  bimap f g (c :+ e) = f c :+ g e
-
-instance Biapply (:+) where
-  (f :+ g) <<.>> (c :+ e) = f c :+ g e
-
-instance Biapplicative (:+) where
-  bipure = (:+)
-  (f :+ g) <<*>> (c :+ e) = f c :+ g e
-
-instance Bifoldable (:+) where
-  bifoldMap f g (c :+ e) = f c `mappend` g e
-
-instance Bitraversable (:+) where
-  bitraverse f g (c :+ e) = (:+) <$> f c <*> g e
-
-instance Bifoldable1 (:+)
-
-instance Bitraversable1 (:+) where
-  bitraverse1 f g (c :+ e) = liftF2 (:+) (f c) (g e)
-
-instance (Semigroup core, Semigroup extra) => Semigroup (core :+ extra) where
-  (c :+ e) <> (c' :+ e') = c <> c' :+ e <> e'
-
-
-instance (ToJSON core, ToJSON extra) => ToJSON (core :+ extra) where
-  -- toJSON     (c :+ e) = toJSON     (c,e)
-  -- toEncoding (c :+ e) = toEncoding (c,e)
-  toJSON     (c :+ e) = object ["core" .= c, "extra" .= e]
-  toEncoding (c :+ e) = pairs  ("core" .= c <> "extra" .= e)
-
-instance (FromJSON core, FromJSON extra) => FromJSON (core :+ extra) where
-  -- parseJSON = fmap (\(c,e) -> c :+ e) . parseJSON
-  parseJSON (Object v) = (:+) <$> v .: "core" <*> v .: "extra"
-  parseJSON invalid    = typeMismatch "Ext (:+)" invalid
-
-_core :: (core :+ extra) -> core
-_core (c :+ _) = c
-
-_extra :: (core :+ extra) -> extra
-_extra (_ :+ e) = e
-
-core :: Lens (core :+ extra) (core' :+ extra) core core'
-core = lens _core (\(_ :+ e) c -> (c :+ e))
-
-extra :: Lens (core :+ extra) (core :+ extra') extra extra'
-extra = lens _extra (\(c :+ _) e -> (c :+ e))
-
-ext   :: a -> a :+ ()
-ext x = x :+ ()
diff --git a/src/Data/Geometry/Arrangement/Draw.hs b/src/Data/Geometry/Arrangement/Draw.hs
deleted file mode 100644
--- a/src/Data/Geometry/Arrangement/Draw.hs
+++ /dev/null
@@ -1,24 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Data.Geometry.Arrangement.Draw
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
---
--- Functions for Drawing arrangements
-
---------------------------------------------------------------------------------
-module Data.Geometry.Arrangement.Draw where
-
-import Control.Lens
-import Data.Geometry.Arrangement
-import Data.Geometry.Ipe
-import Data.Geometry.PlanarSubdivision.Draw
-
--- | Draws an arrangement
-drawArrangement :: IpeOut (Arrangement s l v e f r) Group r
-drawArrangement = drawPlanarSubdivision' . view subdivision
-
--- | Draws an arrangement
-drawColoredArrangement :: IpeOut (Arrangement s l v e (Maybe (IpeColor r)) r) Group r
-drawColoredArrangement = drawColoredPlanarSubdivision . view subdivision
diff --git a/src/Data/Geometry/Arrangement/Internal.hs b/src/Data/Geometry/Arrangement/Internal.hs
--- a/src/Data/Geometry/Arrangement/Internal.hs
+++ b/src/Data/Geometry/Arrangement/Internal.hs
@@ -1,5 +1,4 @@
 {-# LANGUAGE TemplateHaskell  #-}
-{-# LANGUAGE ScopedTypeVariables  #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Data.Geometry.Arrangement.Internal
@@ -26,7 +25,6 @@
 import qualified Data.List as List
 import           Data.Maybe
 import           Data.Ord (Down(..))
-import           Data.Proxy
 import           Data.Sequence.Util
 import qualified Data.Vector as V
 import           Data.Vinyl.CoRec
@@ -90,7 +88,7 @@
                 & rawVertexData.traverse.dataVal .~ ()
     (segs,parts') = computeSegsAndParts rect ls
 
-computeSegsAndParts         :: (Ord r, Fractional r)
+computeSegsAndParts         :: forall r l. (Ord r, Fractional r)
                             => Rectangle () r
                             -> [Line 2 r :+ l]
                             -> ( [LineSegment 2 () r :+ Maybe l]
@@ -113,13 +111,13 @@
   where
     rmDuplicates = map head . List.group
     vs  = mapMaybe (m `intersectionPoint`) ls
-    vs' = maybe [] (\(p,q) -> [p,q]) . asA (Proxy :: Proxy (Point 2 r, Point 2 r))
+    vs' = maybe [] (\(p,q) -> [p,q]) . asA @(Point 2 r, Point 2 r)
         $ (m^.core) `intersect` (Boundary b)
 
 
-intersectionPoint                   :: (Ord r, Fractional r)
+intersectionPoint                   :: forall r l. (Ord r, Fractional r)
                                     => Line 2 r :+ l -> Line 2 r :+ l -> Maybe (Point 2 r)
-intersectionPoint (l :+ _) (m :+ _) = asA (Proxy :: Proxy (Point 2 r)) $ l `intersect` m
+intersectionPoint (l :+ _) (m :+ _) = asA @(Point 2 r) $ l `intersect` m
 
 
 toSegments      :: Ord r => [Point 2 r] -> [LineSegment 2 () r]
@@ -245,10 +243,10 @@
                      in maybe [] (List.unfoldr (fmap dup . follow arr)) md
 
 -- | Find the starting point of the line  the arrangement
-findStart       :: (Ord r, Fractional r)
+findStart       :: forall s l v e f r. (Ord r, Fractional r)
                 => Line 2 r -> Arrangement s l v (Maybe e) f r -> Maybe (Dart s)
 findStart l arr = do
-    (p,_)   <- asA (Proxy :: Proxy (Point 2 r, Point 2 r)) $
+    (p,_)   <- asA @(Point 2 r, Point 2 r) $
                  l `intersect` (Boundary $ arr^.boundedArea)
     (_,v,_) <- findStartVertex p arr
     findStartDart (arr^.subdivision) v
diff --git a/src/Data/Geometry/Box/Internal.hs b/src/Data/Geometry/Box/Internal.hs
--- a/src/Data/Geometry/Box/Internal.hs
+++ b/src/Data/Geometry/Box/Internal.hs
@@ -1,5 +1,4 @@
 {-# LANGUAGE TemplateHaskell  #-}
-{-# LANGUAGE ScopedTypeVariables  #-}
 {-# LANGUAGE UndecidableInstances  #-}
 {-# LANGUAGE InstanceSigs  #-}
 --------------------------------------------------------------------------------
@@ -24,13 +23,13 @@
 import           Data.Geometry.Vector
 import qualified Data.Geometry.Vector as V
 import qualified Data.List.NonEmpty as NE
-import           Data.Proxy
 import qualified Data.Range as R
 import qualified Data.Semigroup.Foldable as F
 import qualified Data.Vector.Fixed as FV
 import           Data.Vinyl.CoRec (asA)
 import           GHC.Generics (Generic)
 import           GHC.TypeLits
+import           Test.QuickCheck(Arbitrary(..))
 
 --------------------------------------------------------------------------------
 
@@ -105,7 +104,7 @@
   bx `intersect` bx' = f . sequence $ FV.zipWith intersect' (extent bx) (extent bx')
     where
       f = maybe (coRec NoIntersection) (coRec . fromExtent)
-      r `intersect'` s = asA (Proxy :: Proxy (R.Range r)) $ r `intersect` s
+      r `intersect'` s = asA @(R.Range r) $ r `intersect` s
 
 instance Arity d => Bifunctor (Box d) where
   bimap :: forall p q r s. (p -> q) -> (r -> s) -> Box d p r -> Box d q s
@@ -114,6 +113,7 @@
       g' :: Functor g => g (Point d r) -> g (Point d s)
       g' = fmap (fmap g)
 
+
 -- -- In principle this should also just work for Boxes in higher dimensions. It is just
 -- -- that we need a better way to compute their corners
 -- instance (Num r, Ord r) => (Rectangle p r) `IsIntersectableWith` (Rectangle p r) where
@@ -153,6 +153,9 @@
   -- unexpected results.
   transformBy = transformPointFunctor
 
+
+instance (Arbitrary r, Arity d, Ord r) => Arbitrary (Box d () r) where
+  arbitrary = (\p (q :: Point d r) -> boundingBoxList' [p,q]) <$> arbitrary <*> arbitrary
 
 type instance Dimension (Box d p r) = d
 type instance NumType   (Box d p r) = r
diff --git a/src/Data/Geometry/HalfLine.hs b/src/Data/Geometry/HalfLine.hs
--- a/src/Data/Geometry/HalfLine.hs
+++ b/src/Data/Geometry/HalfLine.hs
@@ -22,9 +22,9 @@
 import           GHC.TypeLits
 
 --------------------------------------------------------------------------------
--- * d-dimensional Half-Lines
+-- * \(d\)-dimensional Half-Lines
 
--- | d-dimensional Half-Lines
+-- | \(d\)-dimensional Half-Lines
 data HalfLine d r = HalfLine { _startPoint        :: Point  d r
                              , _halfLineDirection :: Vector d r
                              } deriving Generic
diff --git a/src/Data/Geometry/HalfSpace.hs b/src/Data/Geometry/HalfSpace.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Geometry/HalfSpace.hs
@@ -0,0 +1,131 @@
+{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE TemplateHaskell #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Data.Geometry.HalfSpace
+-- Copyright   :  (C) Frank Staals
+-- License     :  see the LICENSE file
+-- Maintainer  :  Frank Staals
+--
+-- \(d\)-dimensional HalfSpaces
+--
+--------------------------------------------------------------------------------
+module Data.Geometry.HalfSpace where
+
+import Control.Lens
+import Data.Geometry.HalfLine
+import Data.Geometry.HyperPlane
+import Data.Geometry.Line
+import Data.Geometry.Point
+import Data.Geometry.Properties
+import Data.Geometry.Transformation
+import Data.Geometry.Boundary
+import Data.Geometry.Vector
+import Data.Vinyl.CoRec
+import Data.Vinyl.Core
+import GHC.Generics (Generic)
+import GHC.TypeLits
+
+--------------------------------------------------------------------------------
+
+-- $setup
+-- >>> :{
+-- let myVector :: Vector 3 Int
+--     myVector = Vector3 1 2 3
+--     myPoint = Point myVector
+-- :}
+
+
+--------------------------------------------------------------------------------
+
+-- | A Halfspace in \(d\) dimensions.
+newtype HalfSpace d r = HalfSpace { _boundingPlane :: HyperPlane d  r }
+                       deriving Generic
+makeLenses ''HalfSpace
+
+deriving instance (Arity d, Show r)   => Show    (HalfSpace d r)
+deriving instance (Arity d, Eq r)     => Eq      (HalfSpace d r)
+-- deriving instance (NFData r, Arity d) => NFData  (HalfSpace d r)
+deriving instance Arity d => Functor     (HalfSpace d)
+deriving instance Arity d => Foldable    (HalfSpace d)
+deriving instance Arity d => Traversable (HalfSpace d)
+
+type instance NumType (HalfSpace d r)   = r
+type instance Dimension (HalfSpace d r) = d
+
+deriving instance (Arity d, Arity (d + 1), Fractional r) => IsTransformable (HalfSpace d r)
+
+--------------------------------------------------------------------------------
+
+type HalfPlane = HalfSpace 2
+
+
+
+-- | Get the halfplane left of a line (i.e. "above") a line
+--
+-- >>> leftOf $ horizontalLine 4
+-- HalfSpace {_boundingPlane = HyperPlane {_inPlane = Point2 [0,4], _normalVec = Vector2 [0,1]}}
+leftOf   :: Num r => Line 2 r -> HalfPlane r
+leftOf l = (rightOf l)&boundingPlane.normalVec %~ ((-1) *^)
+
+-- | Get the halfplane right of a line (i.e. "below") a line
+--
+-- >>> rightOf $ horizontalLine 4
+-- HalfSpace {_boundingPlane = HyperPlane {_inPlane = Point2 [0,4], _normalVec = Vector2 [0,-1]}}
+rightOf   :: Num r => Line 2 r -> HalfPlane r
+rightOf l = HalfSpace $ l^.re _asLine
+
+above :: Num r => Line 2 r -> HalfPlane r
+above = leftOf
+
+below :: Num r => Line 2 r -> HalfPlane r
+below = rightOf
+
+--------------------------------------------------------------------------------
+
+-- type HalfPlane r = GHalfSpace (Line 2 r)
+
+-- type HalfSpace d r = GHalfSpace (HyperPlane d r)
+
+-- TODO: Property test that in 2d this is the same as CCW
+
+type instance IntersectionOf (Point d r) (HalfSpace d r) = [NoIntersection, Point d r]
+
+instance (Num r, Ord r, Arity d) => Point d r `IsIntersectableWith` HalfSpace d r where
+  nonEmptyIntersection = defaultNonEmptyIntersection
+
+  q `intersects` h = q `inHalfSpace` h /= Outside
+
+  q `intersect` h | q `intersects` h = coRec q
+                  | otherwise        = coRec NoIntersection
+
+
+
+type instance IntersectionOf (Line d r) (HalfSpace d r) =
+    [NoIntersection, HalfLine d r, Line d r]
+
+
+instance (Fractional r, Ord r) => Line 2 r `IsIntersectableWith` HalfSpace 2 r where
+  nonEmptyIntersection = defaultNonEmptyIntersection
+
+  l@(Line o v) `intersect` h = match (l `intersect` m) $
+         (H $ \NoIntersection -> if o `intersects` h
+                                   then coRec l
+                                   else coRec NoIntersection)
+      :& (H $ \p              -> if (p .+^ v) `intersects` h
+                                   then coRec $ HalfLine p v
+                                   else coRec $ HalfLine p ((-1) *^ v))
+      :& (H $ \_l             -> coRec l)
+      :& RNil
+    where
+      m = h^.boundingPlane._asLine
+
+
+-- | Test if a point lies in a halfspace
+inHalfSpace                                  :: (Num r, Ord r, Arity d)
+                                             => Point d r -> HalfSpace d r
+                                             -> PointLocationResult
+q `inHalfSpace` (HalfSpace (HyperPlane p n)) = case n `dot` (q .-. p) `compare` 0 of
+                                                 LT -> Outside
+                                                 EQ -> OnBoundary
+                                                 GT -> Inside
diff --git a/src/Data/Geometry/HyperPlane.hs b/src/Data/Geometry/HyperPlane.hs
--- a/src/Data/Geometry/HyperPlane.hs
+++ b/src/Data/Geometry/HyperPlane.hs
@@ -36,12 +36,18 @@
 
 --------------------------------------------------------------------------------
 
--- | Test if a point lies on a hyperplane.
-onHyperPlane                      :: (Num r, Eq r, Arity d)
-                                  => Point d r -> HyperPlane d r -> Bool
-q `onHyperPlane` (HyperPlane p n) = n `dot` (q .-. p) == 0
+type instance IntersectionOf (Point d r) (HyperPlane d r) = [NoIntersection, Point d r]
 
+instance (Num r, Eq r, Arity d) => Point d r `IsIntersectableWith` HyperPlane d r where
+  nonEmptyIntersection = defaultNonEmptyIntersection
+  q `intersects` (HyperPlane p n) = n `dot` (q .-. p) == 0
 
+  q `intersect` h | q `intersects` h = coRec q
+                  | otherwise        = coRec NoIntersection
+
+
+
+
 -- -- | Compute a transformation that maps the last dimension (i.e. the d-axis) to
 -- -- the normal vector of the plane. The origin of the coordinate system will
 -- -- correspond to the inPlane point.
@@ -81,6 +87,15 @@
       denum = v `dot` n
     -- see https://en.wikipedia.org/wiki/Line%E2%80%93plane_intersection
 
+
+-- * Lines
+
+-- | Convert between lines and hyperplanes
+_asLine :: Num r => Iso' (HyperPlane 2 r) (Line 2 r)
+_asLine = iso hyperplane2line line2hyperplane
+  where
+    hyperplane2line (HyperPlane p n) = perpendicularTo $ Line p n
+    line2hyperplane l = let Line p n = perpendicularTo l in HyperPlane p ((-1) *^ n)
 
 --------------------------------------------------------------------------------
 -- * Supporting Planes
diff --git a/src/Data/Geometry/Interval.hs b/src/Data/Geometry/Interval.hs
--- a/src/Data/Geometry/Interval.hs
+++ b/src/Data/Geometry/Interval.hs
@@ -29,12 +29,13 @@
 import           Data.Vinyl
 import           Data.Vinyl.CoRec
 import           GHC.Generics (Generic)
+import           Test.QuickCheck
 
 --------------------------------------------------------------------------------
 
 -- | An Interval is essentially a 'Data.Range' but with possible payload
 newtype Interval a r = GInterval { _unInterval :: Range (r :+ a) }
-                     deriving (Eq,Generic)
+                     deriving (Eq,Generic,Arbitrary)
 makeLenses ''Interval
 
 deriving instance (NFData a, NFData r) => NFData (Interval a r)
diff --git a/src/Data/Geometry/IntervalTree.hs b/src/Data/Geometry/IntervalTree.hs
--- a/src/Data/Geometry/IntervalTree.hs
+++ b/src/Data/Geometry/IntervalTree.hs
@@ -1,5 +1,4 @@
 {-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE DeriveAnyClass #-}
 module Data.Geometry.IntervalTree( NodeData(..)
                                  , splitPoint, intervalsLeft, intervalsRight
                                  , IntervalTree(..), unIntervalTree
@@ -28,17 +27,19 @@
 data NodeData i r = NodeData { _splitPoint     :: !r
                              , _intervalsLeft  :: !(M.Map (L r) [i])
                              , _intervalsRight :: !(M.Map (R r) [i])
-                             } deriving (Show,Eq,Ord,Generic,NFData)
+                             } deriving (Show,Eq,Ord,Generic)
 makeLenses ''NodeData
 
-
+instance (NFData i, NFData r) => NFData (NodeData i r)
 
 -- | IntervalTree type, storing intervals of type i
 newtype IntervalTree i r =
   IntervalTree { _unIntervalTree :: BinaryTree (NodeData i r) }
-  deriving (Show,Eq,Generic,NFData)
+  deriving (Show,Eq,Generic)
 makeLenses ''IntervalTree
 
+instance (NFData i, NFData r) => NFData (IntervalTree i r)
+
 -- | Given an ordered list of points, create an interval tree
 --
 -- \(O(n)\)
@@ -148,8 +149,8 @@
 
 --------------------------------------------------------------------------------
 
-test'' = fromIntervals test
-test  = [Interval (Open (97 :+ ())) (Closed (228 :+ ())) ,Interval (Open (18 :+ ())) (Open (79 :+ ())),Interval (Closed (126 :+ ())) (Open (167 :+ ())),Interval (Closed (105 :+ ())) (Closed (158 :+ ())),Interval (Closed (126 :+ ())) (Closed (211 :+ ())),Interval (Closed (111 :+ ())) (Open (194 :+ ())),Interval (Closed (120 :+ ())) (Open (302 :+ ())),Interval (Closed (92 :+ ())) (Closed (140 :+ ()))]
+-- test'' = fromIntervals test
+-- test  = [Interval (Open (97 :+ ())) (Closed (228 :+ ())) ,Interval (Open (18 :+ ())) (Open (79 :+ ())),Interval (Closed (126 :+ ())) (Open (167 :+ ())),Interval (Closed (105 :+ ())) (Closed (158 :+ ())),Interval (Closed (126 :+ ())) (Closed (211 :+ ())),Interval (Closed (111 :+ ())) (Open (194 :+ ())),Interval (Closed (120 :+ ())) (Open (302 :+ ())),Interval (Closed (92 :+ ())) (Closed (140 :+ ()))]
 
 -- test = fromIntervals [ closedInterval 0 10
 --                      , closedInterval 5 15
diff --git a/src/Data/Geometry/Ipe.hs b/src/Data/Geometry/Ipe.hs
deleted file mode 100644
--- a/src/Data/Geometry/Ipe.hs
+++ /dev/null
@@ -1,28 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Data.Geometry.Ipe
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
---
--- Reexports the functionality for reading and writing Ipe files.
---
---------------------------------------------------------------------------------
-module Data.Geometry.Ipe( module Data.Geometry.Ipe.Types
-                        , module Data.Geometry.Ipe.Writer
-                        , module Data.Geometry.Ipe.Reader
-                        , module Data.Geometry.Ipe.IpeOut
-                        , module Data.Geometry.Ipe.FromIpe
-                        , module Data.Geometry.Ipe.Attributes
-                        , module Data.Geometry.Ipe.Value
-                        , module Data.Geometry.Ipe.Color
-                        ) where
-
-import Data.Geometry.Ipe.Types
-import Data.Geometry.Ipe.Writer
-import Data.Geometry.Ipe.Reader
-import Data.Geometry.Ipe.IpeOut
-import Data.Geometry.Ipe.FromIpe
-import Data.Geometry.Ipe.Attributes
-import Data.Geometry.Ipe.Value
-import Data.Geometry.Ipe.Color(IpeColor(..))
diff --git a/src/Data/Geometry/Ipe/Attributes.hs b/src/Data/Geometry/Ipe/Attributes.hs
deleted file mode 100644
--- a/src/Data/Geometry/Ipe/Attributes.hs
+++ /dev/null
@@ -1,366 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE UnicodeSyntax #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE UndecidableInstances #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Data.Geometry.Ipe.Attributes
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
---
--- Possible Attributes we can assign to items in an Ipe file
---
---------------------------------------------------------------------------------
-module Data.Geometry.Ipe.Attributes where
-
-import Control.Lens hiding (rmap, Const)
-import Data.Geometry.Ipe.Value
-import Data.Singletons
-import Data.Singletons.TH
-import Data.Text (Text)
-import Data.Vinyl
-import Data.Vinyl.Functor
-import Data.Vinyl.TypeLevel
-import GHC.Exts
-import Text.Read(lexP, step, parens, prec, (+++)
-                , Lexeme(Ident), readPrec, readListPrec, readListPrecDefault)
-
---------------------------------------------------------------------------------
-
-
-data AttributeUniverse = -- common
-                         Layer | Matrix | Pin | Transformations
-                       -- symbol
-                       | Stroke | Fill | Pen | Size
-                       -- Path
-                       | Dash | LineCap | LineJoin
-                       | FillRule | Arrow | RArrow | Opacity | Tiling | Gradient
-                       -- Group
-                       | Clip
-                       -- Extra
---                       | X Text
-                       deriving (Show,Read,Eq)
-
-
-genSingletons [ ''AttributeUniverse ]
-
-
-type CommonAttributes = [ Layer, Matrix, Pin, Transformations ]
-
-
-type TextLabelAttributes = CommonAttributes
-type MiniPageAttributes  = CommonAttributes
-
-type ImageAttributes     = CommonAttributes
-
-
-type SymbolAttributes = CommonAttributes ++
-                          [Stroke, Fill, Pen, Size]
-
-type PathAttributes = CommonAttributes ++
-                      [ Stroke, Fill, Dash, Pen, LineCap, LineJoin
-                      , FillRule, Arrow, RArrow, Opacity, Tiling, Gradient
-                      ]
-
-type GroupAttributes = CommonAttributes ++ '[ 'Clip]
-
-
--- | Attr implements the mapping from labels to types as specified by the
--- (symbol representing) the type family 'f'
-newtype Attr (f :: TyFun u * -> *) -- Symbol repr. the Type family mapping
-                                   -- Labels in universe u to concrete types
-             (label :: u) = GAttr { _getAttr :: Maybe (Apply f label) }
-
-
-
-deriving instance Eq   (Apply f label) => Eq   (Attr f label)
-deriving instance Ord  (Apply f label) => Ord  (Attr f label)
-
-makeLenses ''Attr
-
--- | Constructor for constructing an Attr given an actual value.
-pattern Attr   :: Apply f label -> Attr f label
-pattern Attr x = GAttr (Just x)
-
--- | An Attribute that is not set
-pattern NoAttr :: Attr f label
-pattern NoAttr = GAttr Nothing
-{-# COMPLETE NoAttr, Attr #-}
-
-instance Show (Apply f label) => Show (Attr f label) where
-  showsPrec d NoAttr   = showParen (d > app_prec) $ showString "NoAttr"
-    where app_prec = 10
-  showsPrec d (Attr a) = showParen (d > up_prec) $
-                           showString "Attr " . showsPrec (up_prec+1) a
-    where up_prec  = 5
-
-instance Read (Apply f label) => Read (Attr f label) where
-  readPrec = parens $ (prec app_prec $ do
-                                         Ident "NoAttr" <- lexP
-                                         pure NoAttr)
-                  +++ (prec up_prec $ do
-                                         Ident "Attr" <- lexP
-                                         a <- step readPrec
-                                         pure $ Attr a)
-    where
-      app_prec = 10
-      up_prec = 5
-  readListPrec = readListPrecDefault
-
-
-
--- | Give pref. to the *RIGHT*
-instance Semigroup (Attr f l) where
-  _ <> b@(Attr _) = b
-  a <> _          = a
-
-instance Monoid (Attr f l) where
-  mempty  = NoAttr
-  mappend = (<>)
-
-newtype Attributes (f :: TyFun u * -> *) (ats :: [u]) = Attrs (Rec (Attr f) ats)
-
-unAttrs :: Lens (Attributes f ats) (Attributes f' ats') (Rec (Attr f) ats) (Rec (Attr f') ats')
-unAttrs = lens (\(Attrs r) -> r) (const Attrs)
-
-deriving instance (RecAll (Attr f) ats Show) => Show (Attributes f ats)
--- deriving instance (RecAll (Attr f) ats Read) => Read (Attributes f ats)
-
-instance (RecAll (Attr f) ats Eq)   => Eq   (Attributes f ats) where
-  (Attrs a) == (Attrs b) = and . recordToList
-                         . zipRecsWith (\x (Compose (Dict y)) -> Const $ x == y) a
-                         . (reifyConstraint (Proxy :: Proxy Eq)) $ b
-
-instance RecApplicative ats => Monoid (Attributes f ats) where
-  mempty        = Attrs $ rpure mempty
-  a `mappend` b = a <> b
-
-instance Semigroup (Attributes f ats) where
-  (Attrs as) <> (Attrs bs) = Attrs $ zipRecsWith mappend as bs
-
-
-
-zipRecsWith                       :: (forall a. f a -> g a -> h a)
-                                  -> Rec f as -> Rec g as -> Rec h as
-zipRecsWith _ RNil      _         = RNil
-zipRecsWith f (r :& rs) (s :& ss) = f r s :& zipRecsWith f rs ss
-
-attrLens   :: (at ∈ ats) => proxy at -> Lens' (Attributes f ats) (Maybe (Apply f at))
-attrLens p = unAttrs.rlens p.getAttr
-
-lookupAttr   :: (at ∈ ats) => proxy at -> Attributes f ats -> Maybe (Apply f at)
-lookupAttr p = view (attrLens p)
-
-setAttr               :: forall proxy at ats f. (at ∈ ats)
-                      => proxy at -> Apply f at -> Attributes f ats -> Attributes f ats
-setAttr _ a (Attrs r) = Attrs $ rput (Attr a :: Attr f at) r
-
-
--- | gets and removes the attribute from Attributes
-takeAttr       :: forall proxy at ats f. (at ∈ ats)
-               => proxy at -> Attributes f ats -> ( Maybe (Apply f at)
-                                                  , Attributes f ats )
-takeAttr p ats = (lookupAttr p ats, ats&attrLens p .~ Nothing)
-
-
--- | unsets/Removes an attribute
-unSetAttr   :: forall proxy at ats f. (at ∈ ats)
-            => proxy at -> Attributes f ats -> Attributes f ats
-unSetAttr p = snd . takeAttr p
-
-
-attr     :: (at ∈ ats, RecApplicative ats)
-         => proxy at -> Apply f at -> Attributes f ats
-attr p x = setAttr p x mempty
-
-
-
-
---------------------------------------------------------------------------------
--- | Common Attributes
-
--- IpeObjects may have attributes. Essentially attributes are (key,value)
--- pairs. The key is some name. Which attributes an object can have depends on
--- the type of the object. However, all ipe objects support the following
--- 'common attributes':
-
--- data CommonAttributeUniverse = Layer | Matrix | Pin | Transformations
---                              deriving (Show,Read,Eq)
-
--- | Possible values for Pin
-data PinType = No | Yes | Horizontal | Vertical
-             deriving (Eq,Show,Read)
-
--- | Possible values for Transformation
-data TransformationTypes = Affine | Rigid | Translations deriving (Show,Read,Eq)
-
--- type family CommonAttrElf (r :: *) (f :: CommonAttributeUniverse)where
---   CommonAttrElf r 'Layer          = Text
---   CommonAttrElf r 'Matrix         = Matrix 3 3 r
---   CommonAttrElf r Pin             = PinType
---   CommonAttrElf r Transformations = TransformationTypes
-
--- genDefunSymbols [''CommonAttrElf]
-
-
--- type CommonAttributes r =
---   Attributes (CommonAttrElfSym1 r) [ 'Layer, 'Matrix, Pin, Transformations ]
-
---------------------------------------------------------------------------------
--- Text Attributes
-
--- these Attributes are speicifc to IpeObjects representing TextLabels and
--- MiniPages. The same structure as for the `CommonAttributes' applies here.
-
--- | TODO
-
---------------------------------------------------------------------------------
--- | Symbol Attributes
-
--- | The optional Attributes for a symbol
--- data SymbolAttributeUniverse = SymbolStroke | SymbolFill | SymbolPen | Size
---                              deriving (Show,Eq)
-
-
-
-newtype IpeSize  r = IpeSize  (IpeValue r)          deriving (Show,Eq,Ord)
-newtype IpePen   r = IpePen   (IpeValue r)          deriving (Show,Eq,Ord)
-
-
-
--- -- | And the corresponding types
--- type family SymbolAttrElf (r :: *) (s :: SymbolAttributeUniverse) :: * where
---   SymbolAttrElf r SymbolStroke = IpeColor
---   SymbolAttrElf r SymbolPen    = IpePen r
---   SymbolAttrElf r SymbolFill   = IpeColor
---   SymbolAttrElf r Size         = IpeSize r
-
--- genDefunSymbols [''SymbolAttrElf]
-
-
--- type SymbolAttributes r = [SymbolStroke, SymbolFill, SymbolPen, Size]
-
--- type SymbolAttributes r =
---   Attributes (SymbolAttrElfSym1 r) [SymbolStroke, SymbolFill, SymbolPen, Size]
-
--------------------------------------------------------------------------------
--- | Path Attributes
-
--- | Possible attributes for a path
--- data PathAttributeUniverse = Stroke | Fill | Dash | Pen | LineCap | LineJoin
---                            | FillRule | Arrow | RArrow | Opacity | Tiling | Gradient
---                            deriving (Show,Eq)
-
-
--- | Possible values for Dash
-data IpeDash r = DashNamed Text
-               | DashPattern [r] r
-               deriving (Show,Eq)
-
--- | Allowed Fill types
-data FillType = Wind | EOFill deriving (Show,Read,Eq)
-
--- | IpeOpacity, IpeTyling, and IpeGradient are all symbolic values
-type IpeOpacity  = Text
-type IpeTiling   = Text
-type IpeGradient = Text
-
--- | Possible values for an ipe arrow
-data IpeArrow r = IpeArrow { _arrowName :: Text
-                           , _arrowSize :: IpeSize r
-                           } deriving (Show,Eq)
-makeLenses ''IpeArrow
-
-normalArrow :: IpeArrow r
-normalArrow = IpeArrow "normal" (IpeSize $ Named "normal/normal")
-
--- -- | and their types
--- type family PathAttrElf (r :: *) (s :: PathAttributeUniverse) :: * where
---   PathAttrElf r Stroke   = IpeColor
---   PathAttrElf r Fill     = IpeColor
---   PathAttrElf r Dash     = IpeDash r
---   PathAttrElf r Pen      = IpePen r
---   PathAttrElf r LineCap  = Int
---   PathAttrElf r LineJoin = Int
---   PathAttrElf r FillRule = FillType
---   PathAttrElf r Arrow    = IpeArrow r
---   PathAttrElf r RArrow   = IpeArrow r
---   PathAttrElf r Opacity  = IpeOpacity
---   PathAttrElf r Tiling   = IpeTiling
---   PathAttrElf r Gradient = IpeGradient
-
--- genDefunSymbols [''PathAttrElf]
-
--- type PathAttributes r = [ Stroke, Fill, Dash, Pen, LineCap, LineJoin
---                         , FillRule, Arrow, RArrow, Opacity, Tiling, Gradient
---                         ]
-
--- type PathAttributes r =
---   Attributes (PathAttrElfSym1 r) [ Stroke, Fill, Dash, Pen, LineCap, LineJoin
---                                  , FillRule, Arrow, RArrow, Opacity, Tiling, Gradient
---                                  ]
-
---------------------------------------------------------------------------------
--- | Group Attributes
-
-
--- | The only group attribute is a Clip
--- data GroupAttributeUniverse = Clip deriving (Show,Read,Eq,Ord)
-
--- A clipping path is a Path. Which is defined in Data.Geometry.Ipe.Types. To
--- avoid circular imports, we define GroupAttrElf and GroupAttribute there.
-
-
---------------------------------------------------------------------------------
--- * Attribute names in Ipe
-
-
--- | For the types representing attribute values we can get the name/key to use
--- when serializing to ipe.
-class IpeAttrName (a :: AttributeUniverse) where
-  attrName :: Proxy a -> Text
-
--- CommonAttributeUnivers
-instance IpeAttrName Layer           where attrName _ = "layer"
-instance IpeAttrName Matrix          where attrName _ = "matrix"
-instance IpeAttrName Pin             where attrName _ = "pin"
-instance IpeAttrName Transformations where attrName _ = "transformations"
-
--- IpeSymbolAttributeUniversre
-instance IpeAttrName Stroke       where attrName _ = "stroke"
-instance IpeAttrName Fill         where attrName _ = "fill"
-instance IpeAttrName Pen          where attrName _ = "pen"
-instance IpeAttrName Size         where attrName _ = "size"
-
--- PathAttributeUniverse
-instance IpeAttrName Dash       where attrName _ = "dash"
-instance IpeAttrName LineCap    where attrName _ = "cap"
-instance IpeAttrName LineJoin   where attrName _ = "join"
-instance IpeAttrName FillRule   where attrName _ = "fillrule"
-instance IpeAttrName Arrow      where attrName _ = "arrow"
-instance IpeAttrName RArrow     where attrName _ = "rarrow"
-instance IpeAttrName Opacity    where attrName _ = "opacity"
-instance IpeAttrName Tiling     where attrName _ = "tiling"
-instance IpeAttrName Gradient   where attrName _ = "gradient"
-
--- GroupAttributeUniverse
-instance IpeAttrName Clip     where attrName _ = "clip"
-
-
--- | Function that states that all elements in xs satisfy a given constraint c
-type family AllSatisfy (c :: k -> Constraint) (xs :: [k]) :: Constraint where
-  AllSatisfy c '[] = ()
-  AllSatisfy c (x ': xs) = (c x, AllSatisfy c xs)
-
-
--- | Writing Attribute names
-writeAttrNames           :: AllSatisfy IpeAttrName rs => Rec f rs -> Rec (Const Text) rs
-writeAttrNames RNil      = RNil
-writeAttrNames (x :& xs) = Const (write'' x) :& writeAttrNames xs
-  where
-    write''   :: forall f s. IpeAttrName s => f s -> Text
-    write'' _ = attrName (Proxy :: Proxy s)
-
---
diff --git a/src/Data/Geometry/Ipe/Color.hs b/src/Data/Geometry/Ipe/Color.hs
deleted file mode 100644
--- a/src/Data/Geometry/Ipe/Color.hs
+++ /dev/null
@@ -1,110 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Data.Geometry.Ipe.Color
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
---
--- Data type for representing colors in ipe as well as the colors available in
--- the standard ipe stylesheet.
---
---------------------------------------------------------------------------------
-module Data.Geometry.Ipe.Color where
-
-import           Data.Colour.SRGB (RGB(..))
-import           Data.Geometry.Ipe.Value
-import           Data.Text
---------------------------------------------------------------------------------
-
-newtype IpeColor r = IpeColor (IpeValue (RGB r))    deriving (Show,Read,Eq)
-
-instance Ord r => Ord (IpeColor r) where
-  (IpeColor c) `compare` (IpeColor c') = fmap f c `compare` fmap f c'
-    where
-      f (RGB r g b) = (r,g,b)
-
--- | Creates a named color
-named :: Text -> IpeColor r
-named = IpeColor . Named
-
---------------------------------------------------------------------------------
--- * Basic Named colors
-
-red :: IpeColor r
-red = named "red"
-
-green :: IpeColor r
-green = named "green"
-
-blue :: IpeColor r
-blue = named "blue"
-
-yellow :: IpeColor r
-yellow = named "yellow"
-
-orange :: IpeColor r
-orange = named "orange"
-
-gold :: IpeColor r
-gold = named "gold"
-
-purple :: IpeColor r
-purple = named "purple"
-
-gray :: IpeColor r
-gray = named "gray"
-
-brown :: IpeColor r
-brown = named "brown"
-
-navy :: IpeColor r
-navy = named "navy"
-
-pink :: IpeColor r
-pink = named "pink"
-
-seagreen :: IpeColor r
-seagreen = named "seagreen"
-
-turquoise :: IpeColor r
-turquoise = named "turquoise"
-
-violet :: IpeColor r
-violet = named "violet"
-
-darkblue :: IpeColor r
-darkblue = named "darkblue"
-
-darkcyan :: IpeColor r
-darkcyan = named "darkcyan"
-
-darkgray :: IpeColor r
-darkgray = named "darkgray"
-
-darkgreen :: IpeColor r
-darkgreen = named "darkgreen"
-
-darkmagenta :: IpeColor r
-darkmagenta = named "darkmagenta"
-
-darkorange :: IpeColor r
-darkorange = named "darkorange"
-
-darkred :: IpeColor r
-darkred = named "darkred"
-
-lightblue :: IpeColor r
-lightblue = named "lightblue"
-
-lightcyan :: IpeColor r
-lightcyan = named "lightcyan"
-
-lightgray :: IpeColor r
-lightgray = named "lightgray"
-
-lightgreen :: IpeColor r
-lightgreen = named "lightgreen"
-
-lightyellow :: IpeColor r
-lightyellow = named "lightyellow"
diff --git a/src/Data/Geometry/Ipe/FromIpe.hs b/src/Data/Geometry/Ipe/FromIpe.hs
deleted file mode 100644
--- a/src/Data/Geometry/Ipe/FromIpe.hs
+++ /dev/null
@@ -1,173 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Data.Geometry.Ipe.FromIpe
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
---
--- Functions that help reading geometric values from ipe images.
---
---------------------------------------------------------------------------------
-module Data.Geometry.Ipe.FromIpe where
-
-import           Control.Lens hiding (Simple)
-import           Data.Ext
-import           Data.Geometry.Ipe.Reader
-import           Data.Geometry.Ipe.Types
-import           Data.Geometry.LineSegment
-import qualified Data.Geometry.PolyLine as PolyLine
-import           Data.Geometry.Polygon
-import           Data.Geometry.Properties
-import           Data.Geometry.Triangle
-import qualified Data.LSeq as LSeq
-import           Data.List.NonEmpty (NonEmpty(..))
-
---------------------------------------------------------------------------------
--- $setup
--- >>> :set -XOverloadedStrings
--- >>> import Data.Geometry.Ipe.Attributes
--- >>> import Data.Geometry.Ipe.Color(IpeColor(..))
--- >>> import Data.Geometry.Point
--- >>> :{
--- let testPath :: Path Int
---     testPath = Path . fromSingleton  . PolyLineSegment
---              . PolyLine.fromPoints . map ext
---              $ [ origin, point2 10 10, point2 200 100 ]
---     testPathAttrs :: IpeAttributes Path Int
---     testPathAttrs = attr SStroke (IpeColor "red")
---     testObject :: IpeObject Int
---     testObject = IpePath (testPath :+ testPathAttrs)
--- :}
-
-
--- | Try to convert a path into a line segment, fails if the path is not a line
--- segment or a polyline with more than two points.
---
---
-_asLineSegment :: Prism' (Path r) (LineSegment 2 () r)
-_asLineSegment = prism' seg2path path2seg
-  where
-    seg2path   = review _asPolyLine . PolyLine.fromLineSegment
-    path2seg p = PolyLine.asLineSegment' =<< preview _asPolyLine p
-
--- | Convert to a polyline. Ignores all non-polyline parts
---
--- >>> testPath ^? _asPolyLine
--- Just (PolyLine {_points = LSeq (fromList [Point2 [0,0] :+ (),Point2 [10,10] :+ (),Point2 [200,100] :+ ()])})
-_asPolyLine :: Prism' (Path r) (PolyLine.PolyLine 2 () r)
-_asPolyLine = prism' poly2path path2poly
-  where
-    poly2path = Path . fromSingleton  . PolyLineSegment
-    path2poly = preview (pathSegments.traverse._PolyLineSegment)
-    -- TODO: Check that the path actually is a polyline, rather
-    -- than ignoring everything that does not fit
-
--- | Convert to a simple polygon
-_asSimplePolygon :: Prism' (Path r) (Polygon Simple () r)
-_asSimplePolygon = prism' polygonToPath path2poly
-  where
-    path2poly p = pathToPolygon p >>= either pure (const Nothing)
-
--- | Convert to a triangle
-_asTriangle :: Prism' (Path r) (Triangle 2 () r)
-_asTriangle = prism' triToPath path2tri
-  where
-    triToPath (Triangle p q r) = polygonToPath . fromPoints . map (&extra .~ ()) $ [p,q,r]
-    path2tri p = case p^..pathSegments.traverse._PolygonPath of
-                    []   -> Nothing
-                    [pg] -> case polygonVertices pg of
-                              (a :| [b,c]) -> Just $ Triangle a b c
-                              _            -> Nothing
-                    _    -> Nothing
-
-
--- | Convert to a multipolygon
-_asMultiPolygon :: Prism' (Path r) (MultiPolygon () r)
-_asMultiPolygon = prism' polygonToPath path2poly
-  where
-    path2poly p = pathToPolygon p >>= either (const Nothing) pure
-
-polygonToPath                      :: Polygon t () r -> Path r
-polygonToPath pg@(SimplePolygon _) = Path . fromSingleton . PolygonPath $ pg
-polygonToPath (MultiPolygon vs hs) = Path . LSeq.fromNonEmpty . fmap PolygonPath
-                                   $ (SimplePolygon vs) :| hs
-
-
-pathToPolygon   :: Path r -> Maybe (Either (SimplePolygon () r) (MultiPolygon () r))
-pathToPolygon p = case p^..pathSegments.traverse._PolygonPath of
-                    []                   -> Nothing
-                    [pg]                 -> Just . Left  $ pg
-                    SimplePolygon vs: hs -> Just . Right $ MultiPolygon vs hs
-
-
-
--- | Use the first prism to select the ipe object to depicle with, and the second
--- how to select the geometry object from there on. Then we can select the geometry
--- object, directly with its attributes here.
---
--- >>> testObject ^? _withAttrs _IpePath _asPolyLine
--- Just (PolyLine {_points = LSeq (fromList [Point2 [0,0] :+ (),Point2 [10,10] :+ (),Point2 [200,100] :+ ()])} :+ Attrs {NoAttr, NoAttr, NoAttr, NoAttr, Attr IpeColor (Named "red"), NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr})
-_withAttrs       :: Prism' (IpeObject r) (i r :+ IpeAttributes i r) -> Prism' (i r) g
-                 -> Prism' (IpeObject r) (g :+ IpeAttributes i r)
-_withAttrs po pg = prism' g2o o2g
-  where
-    g2o    = review po . over core (review pg)
-    o2g o  = preview po o >>= \(i :+ ats) -> (:+ ats) <$> preview pg i
-
-
-
-
-
--- instance HasDefaultIpeObject Path where
---   defaultIpeObject' = _IpePath
-
-
--- class HasDefaultFromIpe g where
---   type DefaultFromIpe g :: * -> *
---   defaultIpeObject :: proxy g -> Prism' (IpeObject r) (DefaultFromIpe g r :+ IpeAttributes (DefaultFromIpe g) r)
---   defaultFromIpe   :: proxy g -> Prism' (DefaultFromIpe g (NumType g)) g
-
-
-class HasDefaultFromIpe g where
-  type DefaultFromIpe g :: * -> *
-  defaultFromIpe :: (r ~ NumType g)
-                 => Prism' (IpeObject r) (g :+ IpeAttributes (DefaultFromIpe g) r)
-
--- instance HasDefaultFromIpe (Point 2 r) where
---   type DefaultFromIpe (Point 2 r) = IpeSymbol
---   defaultFromIpe = _withAttrs _IpeUse symbolPoint
-
-
-instance HasDefaultFromIpe (LineSegment 2 () r) where
-  type DefaultFromIpe (LineSegment 2 () r) = Path
-  defaultFromIpe = _withAttrs _IpePath _asLineSegment
-
-instance HasDefaultFromIpe (PolyLine.PolyLine 2 () r) where
-  type DefaultFromIpe (PolyLine.PolyLine 2 () r) = Path
-  defaultFromIpe = _withAttrs _IpePath _asPolyLine
-
-
-instance HasDefaultFromIpe (SimplePolygon () r) where
-  type DefaultFromIpe (SimplePolygon () r) = Path
-  defaultFromIpe = _withAttrs _IpePath _asSimplePolygon
-
-instance HasDefaultFromIpe (MultiPolygon () r) where
-  type DefaultFromIpe (MultiPolygon () r) = Path
-  defaultFromIpe = _withAttrs _IpePath _asMultiPolygon
-
-
--- | Read all g's from some ipe page(s).
-readAll :: (HasDefaultFromIpe g, r ~ NumType g, Foldable f)
-        => f (IpePage r) -> [g :+ IpeAttributes (DefaultFromIpe g) r]
-readAll = foldMap (^..content.traverse.defaultFromIpe)
-
-
--- | Convenience function from reading all g's from an ipe file. If there
--- is an error reading or parsing the file the error is "thrown away".
-readAllFrom    :: (HasDefaultFromIpe g, r ~ NumType g, Coordinate r, Eq r)
-               => FilePath -> IO [g :+ IpeAttributes (DefaultFromIpe g) r]
-readAllFrom fp = readAll <$> readSinglePageFile fp
-
-fromSingleton :: a -> LSeq.LSeq 1 a
-fromSingleton = LSeq.fromNonEmpty . (:| [])
diff --git a/src/Data/Geometry/Ipe/IpeOut.hs b/src/Data/Geometry/Ipe/IpeOut.hs
deleted file mode 100644
--- a/src/Data/Geometry/Ipe/IpeOut.hs
+++ /dev/null
@@ -1,214 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE ScopedTypeVariables #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Data.Geometry.Ipe.IpeOut
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
---
--- Functions that help drawing geometric values in ipe. An "IpeOut" is
--- essenitally a function that converts a geometric type g into an IpeObject.
---
--- We also proivde a "HasDefaultIpeOut" typeclass that defines a default
--- conversion function from a geometry type g to an ipe type.
---
---------------------------------------------------------------------------------
-module Data.Geometry.Ipe.IpeOut where
-
-
-import           Control.Lens hiding (Simple)
-import           Data.Bifunctor
-import           Data.Ext
-import           Data.Geometry.Ball
-import           Data.Geometry.Boundary
-import           Data.Geometry.Box
-import           Data.Geometry.Ipe.Attributes
-import           Data.Geometry.Ipe.Color (IpeColor(..))
-import           Data.Geometry.Ipe.FromIpe
-import           Data.Geometry.Ipe.Types
-import           Data.Geometry.Line
-import           Data.Geometry.LineSegment
-import           Data.Geometry.Point
-import           Data.Geometry.PolyLine(PolyLine,fromLineSegment)
-import           Data.Geometry.Polygon
-import           Data.Geometry.Polygon.Convex
-import           Data.Geometry.Properties
-import           Data.Geometry.Transformation
-import qualified Data.LSeq as LSeq
-import           Data.List.NonEmpty (NonEmpty(..))
-import           Data.Proxy
-import           Data.Text (Text)
-import           Data.Maybe (fromMaybe)
-import           Linear.Affine ((.+^))
-import           Data.Vinyl.CoRec
-
---------------------------------------------------------------------------------
-
--- $setup
--- >>> :set -XOverloadedStrings
--- >>> :{
--- let myPolygon = fromPoints . map ext $ [origin, Point2 10 10, Point2 100 200]
--- :}
-
---------------------------------------------------------------------------------
--- * The IpeOut type and the default combinator to use it
-
-type IpeOut g i r = g -> IpeObject' i r
-
-
--- | Add attributes to an IpeObject'
-(!)       :: IpeObject' i r -> IpeAttributes i r -> IpeObject' i r
-(!) i ats = i&extra %~ (<> ats)
-
--- | Render an ipe object
---
---
--- >>> :{
---   iO $ defIO myPolygon ! attr SFill (IpeColor "blue")
---                        ! attr SLayer "alpha"
---                        ! attr SLayer "beta"
--- :}
--- IpePath (Path {_pathSegments = LSeq (fromList [PolygonPath SimplePolygon CSeq [Point2 [0,0] :+ (),Point2 [10,10] :+ (),Point2 [100,200] :+ ()]])} :+ Attrs {Attr LayerName {_layerName = "beta"}, NoAttr, NoAttr, NoAttr, NoAttr, Attr IpeColor (Named "blue"), NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr})
---
--- >>> :{
---   iO $ ipeGroup [ iO $ ipePolygon myPolygon ! attr SFill (IpeColor "red")
---                 ] ! attr SLayer "alpha"
--- :}
--- IpeGroup (Group [IpePath (Path {_pathSegments = LSeq (fromList [PolygonPath SimplePolygon CSeq [Point2 [0,0] :+ (),Point2 [10,10] :+ (),Point2 [100,200] :+ ()]])} :+ Attrs {NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, Attr IpeColor (Named "red"), NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr})] :+ Attrs {Attr LayerName {_layerName = "alpha"}, NoAttr, NoAttr, NoAttr, NoAttr})
---
-iO :: ToObject i => IpeObject' i r -> IpeObject r
-iO = mkIpeObject
-
--- | Render to an ipe object using the defIO IpeOut
---
---
--- >>> :{
---   iO'' myPolygon $  attr SFill (IpeColor "red")
---                  <> attr SLayer "alpha"
---                  <> attr SLayer "beta"
--- :}
--- IpePath (Path {_pathSegments = LSeq (fromList [PolygonPath SimplePolygon CSeq [Point2 [0,0] :+ (),Point2 [10,10] :+ (),Point2 [100,200] :+ ()]])} :+ Attrs {Attr LayerName {_layerName = "beta"}, NoAttr, NoAttr, NoAttr, NoAttr, Attr IpeColor (Named "red"), NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr})
---
--- >>> iO'' [ myPolygon , myPolygon ] $ attr SLayer "alpha"
--- IpeGroup (Group [IpePath (Path {_pathSegments = LSeq (fromList [PolygonPath SimplePolygon CSeq [Point2 [0,0] :+ (),Point2 [10,10] :+ (),Point2 [100,200] :+ ()]])} :+ Attrs {NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr}),IpePath (Path {_pathSegments = LSeq (fromList [PolygonPath SimplePolygon CSeq [Point2 [0,0] :+ (),Point2 [10,10] :+ (),Point2 [100,200] :+ ()]])} :+ Attrs {NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr, NoAttr})] :+ Attrs {Attr LayerName {_layerName = "alpha"}, NoAttr, NoAttr, NoAttr, NoAttr})
-iO''       :: ( HasDefaultIpeOut g, NumType g ~ r
-             , DefaultIpeOut g ~ i, ToObject i
-             ) => g -> IpeAttributes i r
-           -> IpeObject r
-iO'' g ats = iO $ defIO g ! ats
-
--- | generate an ipe object without any specific attributes
-iO' :: HasDefaultIpeOut g => g -> IpeObject (NumType g)
-iO' = iO . defIO
-
---------------------------------------------------------------------------------
--- * Default Conversions
-
--- | Class that specifies a default conversion from a geometry type g into an
--- ipe object.
-class ToObject (DefaultIpeOut g) => HasDefaultIpeOut g where
-  type DefaultIpeOut g :: * -> *
-
-  defIO :: IpeOut g (DefaultIpeOut g) (NumType g)
-
-instance (HasDefaultIpeOut g, a ~ IpeAttributes (DefaultIpeOut g) (NumType g))
-        => HasDefaultIpeOut (g :+ a) where
-  type DefaultIpeOut (g :+ a) = DefaultIpeOut g
-  defIO (g :+ ats) = defIO g ! ats
-
-instance HasDefaultIpeOut a => HasDefaultIpeOut [a] where
-  type DefaultIpeOut [a] = Group
-  defIO = ipeGroup . map (iO .  defIO)
-
-instance HasDefaultIpeOut (Point 2 r) where
-  type DefaultIpeOut (Point 2 r) = IpeSymbol
-  defIO = ipeDiskMark
-
-instance HasDefaultIpeOut (LineSegment 2 p r) where
-  type DefaultIpeOut (LineSegment 2 p r) = Path
-  defIO = ipeLineSegment
-
-instance HasDefaultIpeOut (PolyLine 2 p r) where
-  type DefaultIpeOut (PolyLine 2 p r) = Path
-  defIO = ipePolyLine
-
-instance (Fractional r, Ord r) => HasDefaultIpeOut (Line 2 r) where
-  type DefaultIpeOut (Line 2 r) = Path
-  defIO = ipeLineSegment . toSeg
-    where
-      b :: Rectangle () r
-      b = box (ext $ Point2 (-200) (-200)) (ext $ Point2 1200 1200)
-      naive (Line p v) = ClosedLineSegment (ext p) (ext $ p .+^ v)
-      toSeg l = fromMaybe (naive l) . asA (Proxy :: Proxy (LineSegment 2 () r))
-              $ l `intersect` b
-
-instance HasDefaultIpeOut (Polygon t p r) where
-  type DefaultIpeOut (Polygon t p r) = Path
-  defIO = ipePolygon
-
-instance HasDefaultIpeOut (SomePolygon p r) where
-  type DefaultIpeOut (SomePolygon p r) = Path
-  defIO = either defIO defIO
-
-instance HasDefaultIpeOut (ConvexPolygon p r) where
-  type DefaultIpeOut (ConvexPolygon p r) = Path
-  defIO = defIO . view simplePolygon
-
-
-instance Floating r => HasDefaultIpeOut (Disk p r) where
-  type DefaultIpeOut (Disk p r) = Path
-  defIO = ipeDisk
-
---------------------------------------------------------------------------------
--- * Point Converters
-
-ipeMark     :: Text -> IpeOut (Point 2 r) IpeSymbol r
-ipeMark n p = Symbol p n :+ mempty
-
-ipeDiskMark :: IpeOut (Point 2 r) IpeSymbol r
-ipeDiskMark = ipeMark "mark/disk(sx)"
-
---------------------------------------------------------------------------------
--- * Path Converters
-
-ipeLineSegment   :: IpeOut (LineSegment 2 p r) Path r
-ipeLineSegment s = (path . pathSegment $ s) :+ mempty
-
-ipePolyLine   :: IpeOut (PolyLine 2 p r) Path r
-ipePolyLine p = (path . PolyLineSegment . first (const ()) $ p) :+ mempty
-
-ipeDisk   :: Floating r => IpeOut (Disk p r) Path r
-ipeDisk d = ipeCircle (Boundary d) ! attr SFill (IpeColor "0.722 0.145 0.137")
-
-ipeCircle                     :: Floating r => IpeOut (Circle p r) Path r
-ipeCircle (Circle (c :+ _) r) = (path $ EllipseSegment m) :+ mempty
-      where
-        m = translation (toVec c) |.| uniformScaling (sqrt r) ^. transformationMatrix
-        -- m is the matrix s.t. if we apply m to the unit circle centered at the origin, we
-        -- get the input circle.
-
--- | Helper to construct a path from a singleton item
-path :: PathSegment r -> Path r
-path = Path . LSeq.fromNonEmpty . (:| [])
-
-pathSegment :: LineSegment 2 p r -> PathSegment r
-pathSegment = PolyLineSegment . fromLineSegment . first (const ())
-
--- | Draw a polygon
-ipePolygon                          :: IpeOut (Polygon t p r) Path r
-ipePolygon (first (const ()) -> pg) = case pg of
-               (SimplePolygon _)  -> pg^.re _asSimplePolygon :+ mempty
-               (MultiPolygon _ _) -> pg^.re _asMultiPolygon  :+ mempty
-
-
---------------------------------------------------------------------------------
--- * Group Converters
-
-ipeGroup    :: IpeOut [IpeObject r] Group r
-ipeGroup xs = Group xs :+ mempty
-
-
-
-
---------------------------------------------------------------------------------
diff --git a/src/Data/Geometry/Ipe/Literal.hs b/src/Data/Geometry/Ipe/Literal.hs
deleted file mode 100644
--- a/src/Data/Geometry/Ipe/Literal.hs
+++ /dev/null
@@ -1,27 +0,0 @@
-{-# LANGUAGE TemplateHaskell #-}
-module Data.Geometry.Ipe.Literal where
-
-
-import Language.Haskell.TH
-import Language.Haskell.TH.Quote
-import qualified Data.Text as T
-import qualified Data.ByteString.Char8 as C
-import Text.XML.Expat.Tree
-
-literally :: String -> Q Exp
-literally = return . LitE . StringL
-
-lit :: QuasiQuoter
-lit = QuasiQuoter { quoteExp = literally
-                  , quotePat = undefined
-                  , quoteType = undefined
-                  , quoteDec  = undefined
-                  }
-
-litFile :: QuasiQuoter
-litFile = quoteFile lit
-
-
-xmlLiteral :: String -> Node T.Text T.Text
-xmlLiteral = either (error "xmlLiteral. error parsing xml: " . show) id
-           .  parse' defaultParseOptions . C.pack
diff --git a/src/Data/Geometry/Ipe/ParserPrimitives.hs b/src/Data/Geometry/Ipe/ParserPrimitives.hs
deleted file mode 100644
--- a/src/Data/Geometry/Ipe/ParserPrimitives.hs
+++ /dev/null
@@ -1,148 +0,0 @@
-{-# Language FlexibleContexts  #-}
-{-# Language OverloadedStrings  #-}
-module Data.Geometry.Ipe.ParserPrimitives( runP, runP'
-                                         , pMany, pMany1, pChoice
-                                         , pChar, pSpace, pWhiteSpace, pInteger
-                                         , pNatural, pPaddedNatural
-                                         , (<*><>) , (<*><)
-                                         , (<***>) , (<***) , (***>)
-                                         , pMaybe , pCount , pSepBy
-                                         , Parser, ParseError
-                                         , pNotFollowedBy
-                                         ) where
-
-
-import           Text.Parsec(try)
-import           Text.Parsec(ParsecT, Stream)
-import           Text.Parsec.Text
-import           Text.ParserCombinators.Parsec hiding (Parser,try)
-import qualified Data.Text as T
-
-
-runP'     :: Parser a -> T.Text -> (a, T.Text)
-runP' p s = case runP p s of
-             Left  e -> error $ show e
-             Right x -> x
-
-runP   :: Parser a -> T.Text -> Either ParseError (a,T.Text)
-runP p = parse ((,) <$> p <*> getInput) ""
-
-
-----------------------------------------------------------------------------
--- | reexporting some standard combinators
-
-pMany :: Parser a -> Parser [a]
-pMany = many
-
-pMany1 :: Parser a -> Parser [a]
-pMany1 = many1
-
-
-pChoice :: [Parser a] -> Parser a
-pChoice = choice . map try
-
-
-pNatural :: Parser Integer
-pNatural = read <$> pMany1 digit
-
--- | parses an integer with a prefix of zeros. Returns the total length of the
--- string parced (i.e. number of digits) and the resulting antural number.
-pPaddedNatural :: Parser (Int, Integer)
-pPaddedNatural = (\s -> (length s, read s)) <$> pMany1 digit
-
-pInteger :: Parser Integer
-pInteger = pNatural
-           <|>
-           negate <$> (pChar '-' *> pNatural)
-
-pChar :: Char -> Parser Char
-pChar = char
-
-pSpace :: Parser Char
-pSpace = pChar ' '
-
-pWhiteSpace :: Parser Char
-pWhiteSpace = space
-
-pMaybe :: Parser a -> Parser (Maybe a)
-pMaybe = optionMaybe
-
-pCount :: Int -> Parser a -> Parser [a]
-pCount = count
-
-pSepBy :: Parser a -> Parser b -> Parser [a]
-pSepBy = sepBy
-
-
--- | infix variant of notfollowed by
-pNotFollowedBy :: Parser a -> Parser b -> Parser a
-p `pNotFollowedBy` q = do { x <- p ; notFollowedBy' q ; return x }
-    where
-      -- | copy of the original notFollowedBy but replaced the error message
-      -- to get rid of the Show dependency
-      notFollowedBy' z     = try (do{ _ <- try z; unexpected "not followed by" }
-                                    <|> return ()
-                                 )
-
-----------------------------------------------------------------------------
--- | Running parsers in reverse
-
-infix 1 <*><>, <*><
-
--- | Runs parser q ``in reverse'' on the end of the input stream
-(<*><>) ::  (Reversable s, Stream s m t)
-        => ParsecT s u m (a -> b) -> ParsecT s u m a -> ParsecT s u m b
-p <*><> q = do
-  rev
-  x <- q
-  rev
-  f <- p
-  return $ f x
-
-
-(<*><)   :: (Stream s m t, Reversable s)
-          => ParsecT s u m b -> ParsecT s u m a -> ParsecT s u m b
-p <*>< q = const <$> p <*><> q
-
-
-rev :: (Reversable s, Stream s m t) => ParsecT s u m ()
-rev = getInput >>= (setInput . reverseS)
-
--- as :: Parser String
--- as = many (char 'a')
-
--- foo :: Parser String
--- foo = reverse <$> (string . reverse $ "foo")
-
--- prs :: Parser (String,String)
--- prs = (,) <$> as <*>< foo'
-
--- foo' :: Parser String
--- foo' = spaces ***> foo
-
--- (<***>) :: Parser (a -> b)
-
-infixr 2 <***>, ***>, <***
-
--- | run the parsers in reverse order, first q, then p
-(<***>) :: Monad m => m (t -> b) -> m t -> m b
-p <***> q = do
-  x <- q
-  f <- p
-  return $ f x
-
--- | the variants with missing brackets
-(***>) :: Monad m => m a -> m b -> m b
-p ***> q = (\_ s -> s) <$> p <***> q
-
-(<***) :: Monad m => m b -> m t -> m b
-p <*** q = (\s _ -> s) <$> p <***> q
-
-class Reversable s where
-  reverseS :: s -> s
-
-instance Reversable [c] where
-  reverseS = reverse
-
-instance Reversable T.Text where
-  reverseS = T.reverse
diff --git a/src/Data/Geometry/Ipe/PathParser.hs b/src/Data/Geometry/Ipe/PathParser.hs
deleted file mode 100644
--- a/src/Data/Geometry/Ipe/PathParser.hs
+++ /dev/null
@@ -1,163 +0,0 @@
-{-# Language OverloadedStrings #-}
-{-# Language DefaultSignatures #-}
-module Data.Geometry.Ipe.PathParser where
-
-import           Data.Bifunctor
-import           Data.Char (isSpace)
-import           Data.Ext (ext)
-import           Data.Geometry.Box
-import           Data.Geometry.Ipe.ParserPrimitives
-import           Data.Geometry.Ipe.Types (Operation(..))
-import           Data.Geometry.Point
-import           Data.Geometry.Transformation
-import           Data.Geometry.Vector
-import           Data.Ratio
-import           Data.Text (Text)
-import qualified Data.Text as T
-import           Text.Parsec.Error (messageString, errorMessages)
-
-
------------------------------------------------------------------------
--- | Represent stuff that can be used as a coordinate in ipe. (similar to show/read)
-
-class Fractional r => Coordinate r where
-    -- reads a coordinate. The input is an integer representing the
-    -- part before the decimal point, and a length and an integer
-    -- representing the part after the decimal point
-    fromSeq :: Integer -> Maybe (Int, Integer) -> r
-    default fromSeq :: (Ord r, Fractional r) => Integer -> Maybe (Int, Integer) -> r
-    fromSeq = defaultFromSeq
-
-defaultFromSeq                :: (Ord r, Fractional r)
-                              => Integer -> Maybe (Int, Integer) -> r
-defaultFromSeq x Nothing      = fromInteger x
-defaultFromSeq x (Just (l,y)) = let x'          = fromInteger x
-                                    y'          = fromInteger y
-                                    asDecimal a =  a * (0.1 ^ l)
-                                    z           = if x' < 0 then (-1) else 1
-                                in z * (abs x' + asDecimal y')
-
-instance Coordinate Double
-instance Coordinate (Ratio Integer)
-
------------------------------------------------------------------------
--- | Running the parsers
-
-readCoordinate :: Coordinate r => Text -> Either Text r
-readCoordinate = runParser pCoordinate
-
-readPoint :: Coordinate r => Text -> Either Text (Point 2 r)
-readPoint = runParser pPoint
-
-runParser   :: Parser a -> Text -> Either Text a
-runParser p = bimap errorText fst . runP p
-
--- Collect errors
-data Either' l r = Left' l | Right' r deriving (Show,Eq)
-
-instance (Semigroup l, Semigroup r) => Semigroup (Either' l r) where
-  (Left' l)  <> (Left' l')  = Left' $ l <> l'
-  (Left' l)  <> _           = Left' l
-  _          <> (Left' l')  = Left' l'
-  (Right' r) <> (Right' r') = Right' $ r <> r'
-
-instance (Semigroup l, Semigroup r, Monoid r) => Monoid (Either' l r) where
-  mempty = Right' mempty
-  mappend = (<>)
-either' :: (l -> a) -> (r -> a) -> Either' l r -> a
-either' lf _  (Left' l)  = lf l
-either' _  rf (Right' r) = rf r
--- TODO: Use Validation instead of this home-brew one
-
-readPathOperations :: Coordinate r => Text -> Either Text [Operation r]
-readPathOperations = unWrap . mconcat . map (wrap . runP pOperation)
-                   . clean . splitKeepDelims "mlcqeasuh"
-    where
-      -- Unwrap the Either'. If it is a Left containing all our errors,
-      -- combine them into one error. Otherwise just ReWrap it in an proper Either
-      unWrap = either' (Left . combineErrors) Right
-      -- for the lefts: wrap the error in a list, for the rights: we only care
-      -- about the result, so wrap that in a list as well. Collecting the
-      -- results is done using the Semigroup instance of Either'
-      wrap   = either (Left' . (:[])) (Right' . (:[]) . fst)
-      -- Split the input string in pieces, each piece represents one operation
-      trim   = T.dropWhile isSpace
-      clean  = filter (not . T.null) . map trim
-      -- TODO: Do the splitting on the Text rather than unpacking and packing
-      -- the thing
-
-errorText :: ParseError -> Text
-errorText = T.pack . unlines . map messageString . errorMessages
-
-combineErrors :: [ParseError] -> Text
-combineErrors = T.unlines . map errorText
-
-
-splitKeepDelims          :: [Char] -> Text -> [Text]
-splitKeepDelims delims t = maybe mPref continue $ T.uncons rest
-  where
-    mPref           = if T.null pref then [] else [pref]
-    (pref,rest)     = T.break (`elem` delims) t
-    continue (c,t') = pref `T.snoc` c : splitKeepDelims delims t'
-
-
-readMatrix :: Coordinate r => Text -> Either Text (Matrix 3 3 r)
-readMatrix = runParser pMatrix
-
-
-readRectangle :: Coordinate r => Text -> Either Text (Rectangle () r)
-readRectangle = runParser pRectangle
-
------------------------------------------------------------------------
--- | The parsers themselves
-
-
-pOperation :: Coordinate r => Parser (Operation r)
-pOperation = pChoice [ MoveTo       <$> pPoint                         *>> 'm'
-                     , LineTo       <$> pPoint                         *>> 'l'
-                     , CurveTo      <$> pPoint <*> pPoint' <*> pPoint' *>> 'c'
-                     , QCurveTo     <$> pPoint <*> pPoint'             *>> 'q'
-                     , Ellipse      <$> pMatrix                        *>> 'e'
-                     , ArcTo        <$> pMatrix <*> pPoint'            *>> 'a'
-                     , Spline       <$> pPoint `pSepBy` pWhiteSpace    *>> 's'
-                     , ClosedSpline <$> pPoint `pSepBy` pWhiteSpace    *>> 'u'
-                     , pChar 'h'  *> pure ClosePath
-                     ]
-             where
-               pPoint' = pWhiteSpace *> pPoint
-               p *>> c = p <*>< pWhiteSpace ***> pChar c
-
-
-pPoint :: Coordinate r => Parser (Point 2 r)
-pPoint = point2 <$> pCoordinate <* pWhiteSpace <*> pCoordinate
-
-
-pCoordinate :: Coordinate r => Parser r
-pCoordinate = fromSeq <$> pInteger <*> pDecimal
-              where
-                pDecimal  = pMaybe (pChar '.' *> pPaddedNatural)
-
-
-pRectangle :: Coordinate r => Parser (Rectangle () r)
-pRectangle = (\p q -> box (ext p) (ext q)) <$> pPoint
-                                           <*  pWhiteSpace
-                                           <*> pPoint
-
-pMatrix :: Coordinate r => Parser (Matrix 3 3 r)
-pMatrix = (\a b -> mkMatrix (a:b)) <$> pCoordinate
-                                   <*> pCount 5 (pWhiteSpace *> pCoordinate)
-
-
--- | Generate a matrix from a list of 6 coordinates.
-mkMatrix               :: Coordinate r => [r] -> Matrix 3 3 r
-mkMatrix [a,b,c,d,e,f] = Matrix $ Vector3 (Vector3 a c e)
-                                          (Vector3 b d f)
-                                          (Vector3 0 0 1)
-                           -- We need the matrix in the following order:
-                         -- 012
-                         -- 345
-                         --
-                         -- But ipe uses the following order:
-                         -- 024
-                         -- 135
-mkMatrix _             = error "mkMatrix: need exactly 6 arguments"
diff --git a/src/Data/Geometry/Ipe/Reader.hs b/src/Data/Geometry/Ipe/Reader.hs
deleted file mode 100644
--- a/src/Data/Geometry/Ipe/Reader.hs
+++ /dev/null
@@ -1,414 +0,0 @@
-{-# LANGUAGE UndecidableInstances #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-module Data.Geometry.Ipe.Reader( -- * Reading ipe Files
-                                 readRawIpeFile
-                               , readIpeFile
-                               , readSinglePageFile
-                               , ConversionError
-
-                               -- * Reading XML directly
-                               , fromIpeXML
-                               , readXML
-
-                               -- * Read classes
-                               , IpeReadText(..)
-                               , IpeRead(..)
-                               , IpeReadAttr(..)
-
-
-                               -- * Some low level implementation functions
-                               , ipeReadTextWith
-                               , ipeReadObject
-                               , ipeReadAttrs
-                               , ipeReadRec
-
-                               , Coordinate(..)
-                               ) where
-
-import           Control.Applicative((<|>))
-import           Control.Lens hiding (Const, rmap)
-import qualified Data.ByteString as B
-import           Data.Colour.SRGB (RGB(..))
-import           Data.Either (rights)
-import           Data.Ext
-import           Data.Geometry.Box
-import           Data.Geometry.Ipe.Attributes
-import           Data.Geometry.Ipe.ParserPrimitives (pInteger, pWhiteSpace)
-import           Data.Geometry.Ipe.PathParser
-import           Data.Geometry.Ipe.Types
-import           Data.Geometry.Ipe.Value
-import           Data.Geometry.Ipe.Color(IpeColor(..))
-import           Data.Geometry.Point
-import           Data.Geometry.PolyLine
-import qualified Data.Geometry.Polygon as Polygon
-import qualified Data.Geometry.Transformation as Trans
-import qualified Data.List as L
-import qualified Data.List.NonEmpty as NE
-import           Data.Maybe (fromMaybe, mapMaybe)
-import           Data.Proxy
-import qualified Data.LSeq as LSeq
-import           Data.Singletons
-import           Data.Text (Text)
-import qualified Data.Text as T
-import qualified Data.Traversable as Tr
-import           Data.Vinyl hiding (Label)
-import           Data.Vinyl.Functor
-import           Data.Vinyl.TypeLevel
-import           Text.XML.Expat.Tree
-
-
---------------------------------------------------------------------------------
-
-type ConversionError = Text
-
-
--- | Given a file path, tries to read an ipe file
-readRawIpeFile :: (Coordinate r, Eq r)
-               => FilePath -> IO (Either ConversionError (IpeFile r))
-readRawIpeFile = fmap fromIpeXML . B.readFile
-
-
--- | Given a file path, tries to read an ipe file. This function applies all
--- matrices to objects.
-readIpeFile :: (Coordinate r, Eq r)
-            => FilePath -> IO (Either ConversionError (IpeFile r))
-readIpeFile = fmap (bimap id applyMatrices) . readRawIpeFile
-
-
--- | Since most Ipe file contain only one page, we provide a shortcut for that
--- as well. This function applies all matrices.
-readSinglePageFile :: (Coordinate r, Eq r)
-                   => FilePath -> IO (Either ConversionError (IpePage r))
-readSinglePageFile = fmap f . readIpeFile
-  where
-    f (Left e)  = Left e
-    f (Right i) = maybe (Left "No Ipe pages found") Right . firstOf (pages.traverse) $ i
-
--- | Given a Bytestring, try to parse the bytestring into anything that is
--- IpeReadable, i.e. any of the Ipe elements.
-fromIpeXML   :: IpeRead (t r) => B.ByteString -> Either ConversionError (t r)
-fromIpeXML b = readXML b >>= ipeRead
-
--- | Reads the data from a Bytestring into a proper Node
-readXML :: B.ByteString -> Either ConversionError (Node Text Text)
-readXML = bimap (T.pack . show) id . parse' defaultParseOptions
-
---------------------------------------------------------------------------------
-
--- | Reading an ipe elemtn from a Text value
-class IpeReadText t where
-  ipeReadText :: Text -> Either ConversionError t
-
--- | Reading an ipe lement from Xml
-class IpeRead t where
-  ipeRead  :: Node Text Text -> Either ConversionError t
-
---------------------------------------------------------------------------------
---  ReadText instances
-
-instance IpeReadText Text where
-  ipeReadText = Right
-
-instance IpeReadText Int where
-  ipeReadText = fmap fromInteger . runParser pInteger
-
-instance Coordinate r => IpeReadText (Point 2 r) where
-  ipeReadText = readPoint
-
-instance Coordinate r => IpeReadText (Trans.Matrix 3 3 r) where
-  ipeReadText = readMatrix
-
-instance IpeReadText LayerName where
-  ipeReadText = Right . LayerName
-
-instance IpeReadText PinType where
-  ipeReadText "yes" = Right Yes
-  ipeReadText "h"   = Right Horizontal
-  ipeReadText "v"   = Right Vertical
-  ipeReadText ""    = Right No
-  ipeReadText _     = Left "invalid PinType"
-
-instance IpeReadText TransformationTypes where
-  ipeReadText "affine"       = Right Affine
-  ipeReadText "rigid"        = Right Rigid
-  ipeReadText "translations" = Right Translations
-  ipeReadText _              = Left "invalid TransformationType"
-
-instance IpeReadText FillType where
-  ipeReadText "wind"   = Right Wind
-  ipeReadText "eofill" = Right EOFill
-  ipeReadText _        = Left "invalid FillType"
-
-instance Coordinate r => IpeReadText (IpeArrow r) where
-  ipeReadText t = case T.split (== '/') t of
-                    [n,s] -> IpeArrow <$> pure n <*> ipeReadText s
-                    _     -> Left "ipeArrow: name contains not exactly 1 / "
-
-instance Coordinate r => IpeReadText (IpeDash r) where
-  ipeReadText t = Right . DashNamed $ t
-                  -- TODO: Implement proper parsing here
-
-
-ipeReadTextWith     :: (Text -> Either t v) -> Text -> Either ConversionError (IpeValue v)
-ipeReadTextWith f t = case f t of
-                        Right v -> Right (Valued v)
-                        Left _  -> Right (Named t)
-
-
-instance Coordinate r => IpeReadText (Rectangle () r) where
-  ipeReadText = readRectangle
-
-instance Coordinate r => IpeReadText (RGB r) where
-  ipeReadText = runParser (pRGB <|> pGrey)
-    where
-      pGrey = (\c -> RGB c c c) <$> pCoordinate
-      pRGB  = RGB <$> pCoordinate <* pWhiteSpace
-                  <*> pCoordinate <* pWhiteSpace
-                  <*> pCoordinate
-
-instance Coordinate r => IpeReadText (IpeColor r) where
-  ipeReadText = fmap IpeColor . ipeReadTextWith ipeReadText
-
-instance Coordinate r => IpeReadText (IpePen r) where
-  ipeReadText = fmap IpePen . ipeReadTextWith readCoordinate
-
-instance Coordinate r => IpeReadText (IpeSize r) where
-  ipeReadText = fmap IpeSize . ipeReadTextWith readCoordinate
-
-
-instance Coordinate r => IpeReadText [Operation r] where
-  ipeReadText = readPathOperations
-
-instance (Coordinate r, Eq r) => IpeReadText (NE.NonEmpty (PathSegment r)) where
-  ipeReadText t = ipeReadText t >>= fromOpsN
-    where
-      fromOpsN xs = case fromOps xs of
-                      Left l       -> Left l
-                      Right []     -> Left "No path segments produced"
-                      Right (p:ps) -> Right $ p NE.:| ps
-
-      fromOps []            = Right []
-      fromOps (MoveTo p:xs) = fromOps' p xs
-      fromOps _             = Left "Path should start with a move to"
-
-      fromOps' _ []             = Left "Found only a MoveTo operation"
-      fromOps' s (LineTo q:ops) = let (ls,xs) = span' _LineTo ops
-                                      pts  = map ext $ s:q:mapMaybe (^?_LineTo) ls
-                                      poly = Polygon.fromPoints . dropRepeats $ pts
-                                      pl   = fromPoints pts
-                                  in case xs of
-                                       (ClosePath : xs') -> PolygonPath poly   <<| xs'
-                                       _                 -> PolyLineSegment pl <<| xs
-      fromOps' _ _ = Left "fromOpts': rest not implemented yet."
-
-      span' pr = L.span (not . isn't pr)
-
-      x <<| xs = (x:) <$> fromOps xs
-
-
-dropRepeats :: Eq a => [a] -> [a]
-dropRepeats = map head . L.group
-
-instance (Coordinate r, Eq r) => IpeReadText (Path r) where
-  ipeReadText = fmap (Path . LSeq.fromNonEmpty) . ipeReadText
-
---------------------------------------------------------------------------------
--- Reading attributes
-
--- | Basically IpeReadText for attributes. This class is not really meant to be
--- implemented directly. Just define an IpeReadText instance for the type
--- (Apply f at), then the generic instance below takes care of looking up the
--- name of the attribute, and calling the right ipeReadText value. This class
--- is just so that reifyConstraint in `ipeReadRec` can select the right
--- typeclass when building the rec.
-class IpeReadAttr t where
-  ipeReadAttr  :: Text -> Node Text Text -> Either ConversionError t
-
-instance IpeReadText (Apply f at) => IpeReadAttr (Attr f at) where
-  ipeReadAttr n (Element _ ats _) = GAttr <$> Tr.mapM ipeReadText (lookup n ats)
-  ipeReadAttr _ _                 = Left "IpeReadAttr: Element expected, Text found"
-
--- | Combination of zipRecWith and traverse
-zipTraverseWith                       :: forall f g h i (rs :: [u]). Applicative h
-                                      => (forall (x :: u). f x -> g x -> h (i x))
-                                      -> Rec f rs -> Rec g rs -> h (Rec i rs)
-zipTraverseWith _ RNil      RNil      = pure RNil
-zipTraverseWith f (x :& xs) (y :& ys) = (:&) <$> f x y <*> zipTraverseWith f xs ys
-
--- | Reading the Attributes into a Rec (Attr f), all based on the types of f
--- (the type family mapping labels to types), and a list of labels (ats).
-ipeReadRec       :: forall f ats.
-                 ( RecApplicative ats
-                 , RecAll (Attr f) ats IpeReadAttr
-                 , AllSatisfy IpeAttrName ats
-                 )
-                 => Proxy f -> Proxy ats
-                 -> Node Text Text
-                 -> Either ConversionError (Rec (Attr  f) ats)
-ipeReadRec _ _ x = zipTraverseWith f (writeAttrNames r) r'
-  where
-    r  = rpure (GAttr Nothing)
-    r' = reifyConstraint (Proxy :: Proxy IpeReadAttr) r
-
-
-    f                              :: forall at.
-                                      Const Text at
-                                   -> (Dict IpeReadAttr :. Attr f) at
-                                   -> Either ConversionError (Attr f at)
-    f (Const n) (Compose (Dict _)) = ipeReadAttr n x
-
-
--- | Reader for records. Given a proxy of some ipe type i, and a proxy of an
--- coordinate type r, read the IpeAttributes for i from the xml node.
-ipeReadAttrs     :: forall proxy proxy' i r f ats.
-                 ( f ~ AttrMapSym1 r, ats ~ AttributesOf i
-                 , RecApplicative ats
-                 , RecAll (Attr f) ats IpeReadAttr
-                 , AllSatisfy IpeAttrName ats
-                 )
-                 => proxy i -> proxy' r
-                 -> Node Text Text
-                 -> Either ConversionError (IpeAttributes i r)
-ipeReadAttrs _ _ = fmap Attrs . ipeReadRec (Proxy :: Proxy f) (Proxy :: Proxy ats)
-
-
--- testSym :: B.ByteString
--- testSym = "<use name=\"mark/disk(sx)\" pos=\"320 736\" size=\"normal\" stroke=\"black\"/>"
-
-
-
-
--- readAttrsFromXML :: B.ByteString -> Either
-
--- readSymAttrs :: Either ConversionError (IpeAttributes IpeSymbol Double)
--- readSymAttrs = readXML testSym
---                >>= ipeReadAttrs (Proxy :: Proxy IpeSymbol) (Proxy :: Proxy Double)
-
-
-
-
-
--- | If we can ipeRead an ipe element, and we can ipeReadAttrs its attributes
--- we can properly read an ipe object using ipeReadObject
-ipeReadObject           :: ( IpeRead (i r)
-                           , f ~ AttrMapSym1 r, ats ~ AttributesOf i
-                           ,  RecApplicative ats
-                           , RecAll (Attr f) ats IpeReadAttr
-                           , AllSatisfy IpeAttrName ats
-                           )
-                        => Proxy i -> proxy r -> Node Text Text
-                        -> Either ConversionError (i r :+ IpeAttributes i r)
-ipeReadObject prI prR xml = (:+) <$> ipeRead xml <*> ipeReadAttrs prI prR xml
-
-
---------------------------------------------------------------------------------
--- | Ipe read instances
-
-instance Coordinate r => IpeRead (IpeSymbol r) where
-  ipeRead (Element "use" ats _) = case lookup "pos" ats of
-      Nothing -> Left "symbol without position"
-      Just ps -> flip Symbol name <$> ipeReadText ps
-    where
-      name = fromMaybe "mark/disk(sx)" $ lookup "name" ats
-  ipeRead _ = Left "symbol element expected, text found"
-
--- | Given a list of Nodes, try to parse all of them as a big text. If we
--- encounter anything else then text, the parsing fails.
-allText :: [Node Text Text] -> Either ConversionError Text
-allText = fmap T.unlines . mapM unT
-  where
-    unT (Text t) = Right t
-    unT _        = Left "allText: Expected Text, found an Element"
-
-instance (Coordinate r, Eq r) => IpeRead (Path r) where
-  ipeRead (Element "path" _ chs) = allText chs >>= ipeReadText
-  ipeRead _                      = Left "path: expected element, found text"
-
-
-lookup'   :: Text -> [(Text,a)] -> Either ConversionError a
-lookup' k = maybe (Left $ "lookup' " <> k <> " not found") Right . lookup k
-
-instance Coordinate r => IpeRead (TextLabel r) where
-  ipeRead (Element "text" ats chs)
-    | lookup "type" ats == Just "label" = Label
-                                       <$> allText chs
-                                       <*> (lookup' "pos" ats >>= ipeReadText)
-    | otherwise                         = Left "Not a Text label"
-  ipeRead _                             = Left "textlabel: Expected element, found text"
-
-
-
-instance Coordinate r => IpeRead (MiniPage r) where
-  ipeRead (Element "text" ats chs)
-    | lookup "type" ats == Just "minipage" = MiniPage
-                                          <$> allText chs
-                                          <*> (lookup' "pos"   ats >>= ipeReadText)
-                                          <*> (lookup' "width" ats >>= readCoordinate)
-    | otherwise                            = Left "Not a MiniPage"
-  ipeRead _                                = Left "MiniPage: Expected element, found text"
-
-
-instance Coordinate r => IpeRead (Image r) where
-  ipeRead (Element "image" ats _) = Image () <$> (lookup' "rect" ats >>= ipeReadText)
-  ipeRead _                       = Left "Image: Element expected, text found"
-
-instance (Coordinate r, Eq r) => IpeRead (IpeObject r) where
-  ipeRead x = firstRight [ IpeUse       <$> ipeReadObject (Proxy :: Proxy IpeSymbol) r x
-                         , IpePath      <$> ipeReadObject (Proxy :: Proxy Path)      r x
-                         , IpeGroup     <$> ipeReadObject (Proxy :: Proxy Group)     r x
-                         , IpeTextLabel <$> ipeReadObject (Proxy :: Proxy TextLabel) r x
-                         , IpeMiniPage  <$> ipeReadObject (Proxy :: Proxy MiniPage)  r x
-                         , IpeImage     <$> ipeReadObject (Proxy :: Proxy Image)     r x
-                         ]
-    where
-      r = Proxy :: Proxy r
-
-firstRight :: [Either ConversionError a] -> Either ConversionError a
-firstRight = maybe (Left "No matching object") Right . firstOf (traverse._Right)
-
-
-instance (Coordinate r, Eq r) => IpeRead (Group r) where
-  ipeRead (Element "group" _ chs) = Right . Group . rights . map ipeRead $ chs
-  ipeRead _                       = Left "ipeRead Group: expected Element, found Text"
-
-
-instance IpeRead LayerName where
-  ipeRead (Element "layer" ats _) = LayerName <$> lookup' "name" ats
-  ipeRead _                       = Left "layer: Expected element, found text"
-
-instance IpeRead View where
-  ipeRead (Element "view" ats _) = (\lrs a -> View (map LayerName $ T.words lrs) a)
-                                <$> lookup' "layers" ats
-                                <*> (lookup' "active" ats >>= ipeReadText)
-  ipeRead _                      = Left "View Expected element, found text"
-
-
--- TODO: this instance throws away all of our error collecting (and is pretty
--- slow/stupid since it tries parsing all children with all parsers)
-instance (Coordinate r, Eq r) => IpeRead (IpePage r) where
-  ipeRead (Element "page" _ chs) = Right $ IpePage (readAll chs) (readAll chs) (readAll chs)
-  ipeRead _                      = Left "page: Element expected, text found"
-      -- withDef   :: b -> Either a b -> Either c b
-      -- withDef d = either (const $ Right d) Right
-
-      -- readLayers  = withDef ["alpha"] . readAll
-      -- readViews   = withDef []        . readAll
-      -- readObjects = withDef []        . readAll
-
--- | try reading everything as an a. Throw away whatever fails.
-readAll   :: IpeRead a => [Node Text Text] -> [a]
-readAll   = rights . map ipeRead
-
-
-instance (Coordinate r, Eq r) => IpeRead (IpeFile r) where
-  ipeRead (Element "ipe" _ chs) = case readAll chs of
-                                    []  -> Left "Ipe: no pages found"
-                                    pgs -> Right $ IpeFile Nothing [] (NE.fromList pgs)
-  ipeRead _                     = Left "Ipe: Element expected, text found"
-
-
-
-
-
---------------------------------------------------------------------------------
diff --git a/src/Data/Geometry/Ipe/Types.hs b/src/Data/Geometry/Ipe/Types.hs
deleted file mode 100644
--- a/src/Data/Geometry/Ipe/Types.hs
+++ /dev/null
@@ -1,436 +0,0 @@
-{-# LANGUAGE UndecidableInstances #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE QuasiQuotes #-}
-{-# LANGUAGE OverloadedStrings #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Data.Geometry.Ipe.Types
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
---
--- Data type modeling the various elements in Ipe files.
---
---------------------------------------------------------------------------------
-module Data.Geometry.Ipe.Types where
-
-
-import           Control.Lens
-import           Data.Proxy
-import           Data.Vinyl hiding (Label)
-
-import           Data.Ext
-import           Data.Geometry.Box(Rectangle)
-import           Data.Geometry.Point
-import           Data.Geometry.PolyLine
-import           Data.Geometry.Polygon(SimplePolygon)
-import           Data.Geometry.Properties
-import           Data.Geometry.Transformation
-
-import           Data.Maybe(mapMaybe)
-import           Data.Singletons.TH(genDefunSymbols)
-
-import           Data.Geometry.Ipe.Literal
-import           Data.Geometry.Ipe.Color
-import qualified Data.Geometry.Ipe.Attributes as AT
-import           Data.Geometry.Ipe.Attributes hiding (Matrix)
-import           Data.Text(Text)
-import           Text.XML.Expat.Tree(Node)
-
-import           GHC.Exts
-
-
-import qualified Data.List.NonEmpty as NE
-import qualified Data.LSeq          as LSeq
-
---------------------------------------------------------------------------------
-
-
-newtype LayerName = LayerName {_layerName :: Text } deriving (Show,Read,Eq,Ord,IsString)
-
---------------------------------------------------------------------------------
--- | Image Objects
-
-
-data Image r = Image { _imageData :: ()
-                     , _rect      :: Rectangle () r
-                     } deriving (Show,Eq,Ord)
-makeLenses ''Image
-
-type instance NumType   (Image r) = r
-type instance Dimension (Image r) = 2
-
-instance Fractional r => IsTransformable (Image r) where
-  transformBy t = over rect (transformBy t)
-
---------------------------------------------------------------------------------
--- | Text Objects
-
-data TextLabel r = Label Text (Point 2 r)
-                 deriving (Show,Eq,Ord)
-
-data MiniPage r = MiniPage Text (Point 2 r) r
-                 deriving (Show,Eq,Ord)
-
-type instance NumType   (TextLabel r) = r
-type instance Dimension (TextLabel r) = 2
-
-type instance NumType   (MiniPage r) = r
-type instance Dimension (MiniPage r) = 2
-
-instance Fractional r => IsTransformable (TextLabel r) where
-  transformBy t (Label txt p) = Label txt (transformBy t p)
-
-instance Fractional r => IsTransformable (MiniPage r) where
-  transformBy t (MiniPage txt p w) = MiniPage txt (transformBy t p) w
-
-width                  :: MiniPage t -> t
-width (MiniPage _ _ w) = w
-
---------------------------------------------------------------------------------
--- | Ipe Symbols, i.e. Points
-
--- | A symbol (point) in ipe
-data IpeSymbol r = Symbol { _symbolPoint :: Point 2 r
-                          , _symbolName  :: Text
-                          }
-                 deriving (Show,Eq,Ord)
-makeLenses ''IpeSymbol
-
-type instance NumType   (IpeSymbol r) = r
-type instance Dimension (IpeSymbol r) = 2
-
-instance Fractional r => IsTransformable (IpeSymbol r) where
-  transformBy t = over symbolPoint (transformBy t)
-
-
-
--- | Example of an IpeSymbol. I.e. A symbol that expresses that the size is 'large'
--- sizeSymbol :: Attributes (AttrMapSym1 r) (SymbolAttributes r)
--- sizeSymbol = attr SSize (IpeSize $ Named "large")
-
---------------------------------------------------------------------------------
--- | Paths
-
--- | Paths consist of Path Segments. PathSegments come in the following forms:
-data PathSegment r = PolyLineSegment        (PolyLine 2 () r)
-                   | PolygonPath            (SimplePolygon () r)
-                     -- TODO
-                   | CubicBezierSegment     -- (CubicBezier 2 r)
-                   | QuadraticBezierSegment -- (QuadraticBezier 2 r)
-                   | EllipseSegment (Matrix 3 3 r)
-                   | ArcSegment
-                   | SplineSegment          -- (Spline 2 r)
-                   | ClosedSplineSegment    -- (ClosedSpline 2 r)
-                   deriving (Show,Eq)
-makePrisms ''PathSegment
-
-type instance NumType   (PathSegment r) = r
-type instance Dimension (PathSegment r) = 2
-
-instance Fractional r => IsTransformable (PathSegment r) where
-  transformBy t (PolyLineSegment p) = PolyLineSegment $ transformBy t p
-  transformBy t (PolygonPath p)     = PolygonPath $ transformBy t p
-  transformBy _ _                   = error "transformBy: not implemented yet"
-
-
--- | A path is a non-empty sequence of PathSegments.
-newtype Path r = Path { _pathSegments :: LSeq.LSeq 1 (PathSegment r) }
-                 deriving (Show,Eq)
-makeLenses ''Path
-
-type instance NumType   (Path r) = r
-type instance Dimension (Path r) = 2
-
-instance Fractional r => IsTransformable (Path r) where
-  transformBy t (Path s) = Path $ fmap (transformBy t) s
-
--- | type that represents a path in ipe.
-data Operation r = MoveTo (Point 2 r)
-                 | LineTo (Point 2 r)
-                 | CurveTo (Point 2 r) (Point 2 r) (Point 2 r)
-                 | QCurveTo (Point 2 r) (Point 2 r)
-                 | Ellipse (Matrix 3 3 r)
-                 | ArcTo (Matrix 3 3 r) (Point 2 r)
-                 | Spline [Point 2 r]
-                 | ClosedSpline [Point 2 r]
-                 | ClosePath
-                 deriving (Eq, Show)
-makePrisms ''Operation
-
---------------------------------------------------------------------------------
--- * Attribute Mapping
-
-
--- | The mapping between the labels of the the attributes and the types of the
--- attributes with these labels. For example, the 'Matrix' label/attribute should
--- have a value of type 'Matrix 3 3 r'.
-type family AttrMap (r :: *) (l :: AttributeUniverse) :: * where
-  AttrMap r 'Layer          = LayerName
-  AttrMap r AT.Matrix       = Matrix 3 3 r
-  AttrMap r Pin             = PinType
-  AttrMap r Transformations = TransformationTypes
-
-  AttrMap r Stroke = IpeColor r
-  AttrMap r Pen    = IpePen r
-  AttrMap r Fill   = IpeColor r
-  AttrMap r Size   = IpeSize r
-
-  AttrMap r Dash     = IpeDash r
-  AttrMap r LineCap  = Int
-  AttrMap r LineJoin = Int
-  AttrMap r FillRule = FillType
-  AttrMap r Arrow    = IpeArrow r
-  AttrMap r RArrow   = IpeArrow r
-  AttrMap r Opacity  = IpeOpacity
-  AttrMap r Tiling   = IpeTiling
-  AttrMap r Gradient = IpeGradient
-
-  AttrMap r Clip = Path r -- strictly we event want this to be a closed path I guess
-
-genDefunSymbols [''AttrMap]
-
-
---------------------------------------------------------------------------------
--- | Groups and Objects
-
---------------------------------------------------------------------------------
--- | Group Attributes
-
--- -- | Now that we know what a Path is we can define the Attributes of a Group.
--- type family GroupAttrElf (r :: *) (s :: GroupAttributeUniverse) :: * where
---   GroupAttrElf r Clip = Path r -- strictly we event want this to be a closed path I guess
-
--- genDefunSymbols [''GroupAttrElf]
-
--- type GroupAttributes r = Attributes (GroupAttrElfSym1 r) '[ 'Clip]
-
-
--- | A group is essentially a list of IpeObjects.
-newtype Group r = Group [IpeObject r] deriving (Show,Eq)
-
-type instance NumType   (Group r) = r
-type instance Dimension (Group r) = 2
-
-instance Fractional r => IsTransformable (Group r) where
-  transformBy t (Group s) = Group $ fmap (transformBy t) s
-
-
-type family AttributesOf (t :: * -> *) :: [u] where
-  AttributesOf Group     = GroupAttributes
-  AttributesOf Image     = CommonAttributes
-  AttributesOf TextLabel = CommonAttributes
-  AttributesOf MiniPage  = CommonAttributes
-  AttributesOf IpeSymbol = SymbolAttributes
-  AttributesOf Path      = PathAttributes
-
-
--- | Attributes' :: * -> [AttributeUniverse] -> *
-type Attributes' r = Attributes (AttrMapSym1 r)
-
-type IpeAttributes g r = Attributes' r (AttributesOf g)
-
-
--- | An IpeObject' is essentially the oject ogether with its attributes
-type IpeObject' g r = g r :+ IpeAttributes g r
-
-attributes :: Lens' (IpeObject' g r) (IpeAttributes g r)
-attributes = extra
-
-data IpeObject r =
-    IpeGroup     (IpeObject' Group     r)
-  | IpeImage     (IpeObject' Image     r)
-  | IpeTextLabel (IpeObject' TextLabel r)
-  | IpeMiniPage  (IpeObject' MiniPage  r)
-  | IpeUse       (IpeObject' IpeSymbol r)
-  | IpePath      (IpeObject' Path      r)
-
-
-deriving instance (Show r) => Show (IpeObject r)
--- deriving instance (Read r) => Read (IpeObject r)
-deriving instance (Eq r)   => Eq   (IpeObject r)
-
-type instance NumType   (IpeObject r) = r
-type instance Dimension (IpeObject r) = 2
-
-makePrisms ''IpeObject
-
-groupItems :: Lens (Group r) (Group s) [IpeObject r] [IpeObject s]
-groupItems = lens (\(Group xs) -> xs) (const Group)
-
-class ToObject i where
-  mkIpeObject :: IpeObject' i r -> IpeObject r
-
-instance ToObject Group      where mkIpeObject = IpeGroup
-instance ToObject Image      where mkIpeObject = IpeImage
-instance ToObject TextLabel  where mkIpeObject = IpeTextLabel
-instance ToObject MiniPage   where mkIpeObject = IpeMiniPage
-instance ToObject IpeSymbol  where mkIpeObject = IpeUse
-instance ToObject Path       where mkIpeObject = IpePath
-
-instance Fractional r => IsTransformable (IpeObject r) where
-  transformBy t (IpeGroup i)     = IpeGroup     $ i&core %~ transformBy t
-  transformBy t (IpeImage i)     = IpeImage     $ i&core %~ transformBy t
-  transformBy t (IpeTextLabel i) = IpeTextLabel $ i&core %~ transformBy t
-  transformBy t (IpeMiniPage i)  = IpeMiniPage  $ i&core %~ transformBy t
-  transformBy t (IpeUse i)       = IpeUse       $ i&core %~ transformBy t
-  transformBy t (IpePath i)      = IpePath      $ i&core %~ transformBy t
-
--- | Shorthand for constructing ipeObjects
-ipeObject'     :: ToObject i => i r -> IpeAttributes i r -> IpeObject r
-ipeObject' i a = mkIpeObject $ i :+ a
-
-commonAttributes :: Lens' (IpeObject r) (Attributes (AttrMapSym1 r) CommonAttributes)
-commonAttributes = lens (Attrs . g) (\x (Attrs a) -> s x a)
-  where
-    select :: (CommonAttributes ⊆ AttributesOf g) =>
-              Lens' (IpeObject' g r) (Rec (Attr (AttrMapSym1 r)) CommonAttributes)
-    select = attributes.unAttrs.rsubset
-
-    g (IpeGroup i)     = i^.select
-    g (IpeImage i)     = i^.select
-    g (IpeTextLabel i) = i^.select
-    g (IpeMiniPage i)  = i^.select
-    g (IpeUse i)       = i^.select
-    g (IpePath i)      = i^.select
-
-    s (IpeGroup i)     a = IpeGroup     $ i&select .~ a
-    s (IpeImage i)     a = IpeImage     $ i&select .~ a
-    s (IpeTextLabel i) a = IpeTextLabel $ i&select .~ a
-    s (IpeMiniPage i)  a = IpeMiniPage  $ i&select .~ a
-    s (IpeUse i)       a = IpeUse       $ i&select .~ a
-    s (IpePath i)      a = IpePath      $ i&select .~ a
-
--- | collect all non-group objects
-flattenGroups :: [IpeObject r] -> [IpeObject r]
-flattenGroups = concatMap flattenGroups'
-  where
-    flattenGroups'                              :: IpeObject r -> [IpeObject r]
-    flattenGroups' (IpeGroup (Group gs :+ ats)) =
-      map (applyAts ats) . concatMap flattenGroups' $ gs
-        where
-          applyAts _ = id
-    flattenGroups' o                            = [o]
-
---------------------------------------------------------------------------------
-
-
--- | The definition of a view
--- make active layer into an index ?
-data View = View { _layerNames      :: [LayerName]
-                 , _activeLayer     :: LayerName
-                 }
-          deriving (Eq, Ord, Show)
-makeLenses ''View
-
--- instance Default
-
-
--- | for now we pretty much ignore these
-data IpeStyle = IpeStyle { _styleName :: Maybe Text
-                         , _styleData :: Node Text Text
-                         }
-              deriving (Eq,Show)
-makeLenses ''IpeStyle
-
-
-basicIpeStyle :: IpeStyle
-basicIpeStyle = IpeStyle (Just "basic") (xmlLiteral [litFile|resources/basic.isy|])
-
-
--- | The maybe string is the encoding
-data IpePreamble  = IpePreamble { _encoding     :: Maybe Text
-                                , _preambleData :: Text
-                                }
-                  deriving (Eq,Read,Show,Ord)
-makeLenses ''IpePreamble
-
-type IpeBitmap = Text
-
-
-
---------------------------------------------------------------------------------
--- Ipe Pages
-
--- | An IpePage is essentially a Group, together with a list of layers and a
--- list of views.
-data IpePage r = IpePage { _layers  :: [LayerName]
-                         , _views   :: [View]
-                         , _content :: [IpeObject r]
-                         }
-              deriving (Eq,Show)
-makeLenses ''IpePage
-
--- | Creates a simple page with no views.
-fromContent     :: [IpeObject r] -> IpePage r
-fromContent obs = IpePage layers' [] obs
-  where
-    layers' = mapMaybe (^.commonAttributes.attrLens SLayer) obs
-
--- | A complete ipe file
-data IpeFile r = IpeFile { _preamble :: Maybe IpePreamble
-                         , _styles   :: [IpeStyle]
-                         , _pages    :: NE.NonEmpty (IpePage r)
-                         }
-               deriving (Eq,Show)
-makeLenses ''IpeFile
-
--- | Convenience function to construct an ipe file consisting of a single page.
-singlePageFile   :: IpePage r -> IpeFile r
-singlePageFile p = IpeFile Nothing [basicIpeStyle] (p NE.:| [])
-
--- | Create a single page ipe file from a list of IpeObjects
-singlePageFromContent :: [IpeObject r] -> IpeFile r
-singlePageFromContent = singlePageFile . fromContent
-
-
---------------------------------------------------------------------------------
-
--- | Takes and applies the ipe Matrix attribute of this item.
-applyMatrix'              :: ( IsTransformable (i r)
-                             , AT.Matrix ∈ AttributesOf i
-                             , Dimension (i r) ~ 2, r ~ NumType (i r))
-                          => IpeObject' i r -> IpeObject' i r
-applyMatrix' o@(i :+ ats) = maybe o (\m -> transformBy (Transformation m) i :+ ats') mm
-  where
-    (mm,ats') = takeAttr (Proxy :: Proxy AT.Matrix) ats
-
--- | Applies the matrix to an ipe object if it has one.
-applyMatrix                  :: Fractional r => IpeObject r -> IpeObject r
-applyMatrix (IpeGroup i)     = IpeGroup . applyMatrix'
-                             $ i&core.groupItems.traverse %~ applyMatrix
-                             -- note that for a group we first (recursively)
-                             -- apply the matrices, and then apply
-                             -- the matrix of the group to its members.
-applyMatrix (IpeImage i)     = IpeImage     $ applyMatrix' i
-applyMatrix (IpeTextLabel i) = IpeTextLabel $ applyMatrix' i
-applyMatrix (IpeMiniPage i)  = IpeMiniPage  $ applyMatrix' i
-applyMatrix (IpeUse i)       = IpeUse       $ applyMatrix' i
-applyMatrix (IpePath i)      = IpePath      $ applyMatrix' i
-
-applyMatrices   :: Fractional r => IpeFile r -> IpeFile r
-applyMatrices f = f&pages.traverse %~ applyMatricesPage
-
-applyMatricesPage   :: Fractional r => IpePage r -> IpePage r
-applyMatricesPage p = p&content.traverse %~ applyMatrix
-
-
---------------------------------------------------------------------------------
-
-
--- -- | Access a path as if it was a PolyLine
--- _PolyLine :: Prism' (IpeObject' Path r)
---                     (PolyLine 2 () r :+ IpeAttributes Path r)
--- _PolyLine = prism' build' access
---   where
---     build'  p         = p&core %~ Path . S2.l1Singleton . PolyLineSegment
---     access ~(p :+ a) = (:+ a) <$> p^?pathSegments.S2.headL1._PolyLineSegment
-
--- -- | Access a path as if it was a SimplePolygon
--- _SimplePolygon :: Prism' (IpeObject' Path r)
---                          (SimplePolygon () r :+ IpeAttributes Path r)
--- _SimplePolygon = prism' build' access
---   where
---     build'  p         = p&core %~ Path . S2.l1Singleton . PolygonPath
---     access ~(p :+ a) = (:+ a) <$> p^?pathSegments.S2.headL1._PolygonPath
diff --git a/src/Data/Geometry/Ipe/Value.hs b/src/Data/Geometry/Ipe/Value.hs
deleted file mode 100644
--- a/src/Data/Geometry/Ipe/Value.hs
+++ /dev/null
@@ -1,24 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Data.Geometry.Ipe.Value
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
---
--- Data type for representing values in ipe.
---
---------------------------------------------------------------------------------
-module Data.Geometry.Ipe.Value where
-
-import GHC.Exts
-import Data.Text
-
---------------------------------------------------------------------------------
-
--- | Many types either consist of a symbolc value, or a value of type v
-data IpeValue v = Named Text | Valued v
-  deriving (Show,Read,Eq,Ord,Functor,Foldable,Traversable)
-
-instance IsString (IpeValue v) where
-  fromString = Named . fromString
diff --git a/src/Data/Geometry/Ipe/Writer.hs b/src/Data/Geometry/Ipe/Writer.hs
deleted file mode 100644
--- a/src/Data/Geometry/Ipe/Writer.hs
+++ /dev/null
@@ -1,462 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE UndecidableInstances #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Data.Geometry.Ipe.Writer
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
--- Description :  Converting data types into IpeTypes
---
---------------------------------------------------------------------------------
-module Data.Geometry.Ipe.Writer where
-
-import           Control.Lens ((^.), (^..), (.~), (&))
-import qualified Data.ByteString as B
-import qualified Data.ByteString.Char8 as C
-import           Data.Colour.SRGB (RGB(..))
-import           Data.Ext
-import           Data.Fixed
-import qualified Data.Foldable as F
-import           Data.Geometry.Box
-import           Data.Geometry.Ipe.Attributes
-import qualified Data.Geometry.Ipe.Attributes as IA
-import           Data.Geometry.Ipe.Color (IpeColor(..))
-import           Data.Geometry.Ipe.Types
-import           Data.Geometry.Ipe.Value
-import           Data.Geometry.LineSegment
-import           Data.Geometry.Point
-import           Data.Geometry.PolyLine
-import           Data.Geometry.Polygon (Polygon, outerBoundary, holeList, asSimplePolygon)
-import qualified Data.Geometry.Transformation as GT
-import           Data.Geometry.Vector
-import qualified Data.LSeq as LSeq
-import           Data.List.NonEmpty (NonEmpty(..))
-import           Data.Maybe (catMaybes, mapMaybe, fromMaybe)
-import           Data.Proxy
-import           Data.Ratio
-import           Data.Singletons
-import           Data.Text (Text)
-import qualified Data.Text as T
-import qualified Data.Text as Text
-import           Data.Vinyl hiding (Label)
-import           Data.Vinyl.Functor
-import           Data.Vinyl.TypeLevel
-import           System.IO (hPutStrLn,stderr)
-import           Text.XML.Expat.Format (format')
-import           Text.XML.Expat.Tree
-
---------------------------------------------------------------------------------
-
--- | Given a prism to convert something of type g into an ipe file, a file path,
--- and a g. Convert the geometry and write it to file.
-
--- writeIpe        :: ( RecAll (Page r) gs IpeWrite
---                    , IpeWriteText r
---                    ) => Prism' (IpeFile gs r) g -> FilePath -> g -> IO ()
--- writeIpe p fp g = writeIpeFile (p # g) fp
-
--- | Write an IpeFiele to file.
-writeIpeFile :: IpeWriteText r => FilePath -> IpeFile r -> IO ()
-writeIpeFile = flip writeIpeFile'
-
--- | Creates a single page ipe file with the given page
-writeIpePage    :: IpeWriteText r => FilePath -> IpePage r -> IO ()
-writeIpePage fp = writeIpeFile fp . singlePageFile
-
-
--- | Convert the input to ipeXml, and prints it to standard out in such a way
--- that the copied text can be pasted into ipe as a geometry object.
-printAsIpeSelection :: IpeWrite t => t -> IO ()
-printAsIpeSelection = C.putStrLn . fromMaybe "" . toIpeSelectionXML
-
--- | Convert input into an ipe selection.
-toIpeSelectionXML :: IpeWrite t => t -> Maybe B.ByteString
-toIpeSelectionXML = fmap (format' . ipeSelection) . ipeWrite
-  where
-    ipeSelection x = Element "ipeselection" [] [x]
-
-
--- | Convert to Ipe xml
-toIpeXML :: IpeWrite t => t -> Maybe B.ByteString
-toIpeXML = fmap format' . ipeWrite
-
-
--- | Convert to ipe XML and write the output to a file.
-writeIpeFile'      :: IpeWrite t => t -> FilePath -> IO ()
-writeIpeFile' i fp = maybe err (B.writeFile fp) . toIpeXML $ i
-  where
-    err = hPutStrLn stderr $
-          "writeIpeFile: error converting to xml. File '" <> fp <> "'not written"
-
---------------------------------------------------------------------------------
-
--- | For types that can produce a text value
-class IpeWriteText t where
-  ipeWriteText :: t -> Maybe Text
-
--- | Types that correspond to an XML Element. All instances should produce an
--- Element. If the type should produce a Node with the Text constructor, use
--- the `IpeWriteText` typeclass instead.
-class IpeWrite t where
-  ipeWrite :: t -> Maybe (Node Text Text)
-
-instance IpeWrite t => IpeWrite [t] where
-  ipeWrite gs = case mapMaybe ipeWrite gs of
-                  [] -> Nothing
-                  ns -> (Just $ Element "group" [] ns)
-
-instance (IpeWrite l, IpeWrite r) => IpeWrite (Either l r) where
-  ipeWrite = either ipeWrite ipeWrite
-
-instance IpeWriteText (Apply f at) => IpeWriteText (Attr f at) where
-  ipeWriteText att = _getAttr att >>= ipeWriteText
-
-instance (IpeWriteText l, IpeWriteText r) => IpeWriteText (Either l r) where
-  ipeWriteText = either ipeWriteText ipeWriteText
-
-
--- | Functon to write all attributes in a Rec
-ipeWriteAttrs           :: ( AllSatisfy IpeAttrName rs
-                           , RecAll (Attr f) rs IpeWriteText
-                           ) => IA.Attributes f rs -> [(Text,Text)]
-ipeWriteAttrs (Attrs r) = catMaybes . recordToList $ zipRecsWith f (writeAttrNames  r)
-                                                                   (writeAttrValues r)
-  where
-    f (Const n) (Const mv) = Const $ (n,) <$> mv
-
--- | Writing the attribute values
-writeAttrValues :: RecAll f rs IpeWriteText => Rec f rs -> Rec (Const (Maybe Text)) rs
-writeAttrValues = rmap (\(Compose (Dict x)) -> Const $ ipeWriteText x)
-                . reifyConstraint (Proxy :: Proxy IpeWriteText)
-
-
-instance IpeWriteText Text where
-  ipeWriteText = Just
-
--- | Add attributes to a node
-addAtts :: Node Text Text -> [(Text,Text)] -> Node Text Text
-n `addAtts` ats = n { eAttributes = ats ++ eAttributes n }
-
--- | Same as `addAtts` but then for a Maybe node
-mAddAtts  :: Maybe (Node Text Text) -> [(Text, Text)] -> Maybe (Node Text Text)
-mn `mAddAtts` ats = fmap (`addAtts` ats) mn
-
-
---------------------------------------------------------------------------------
-
-instance IpeWriteText Double where
-  ipeWriteText = writeByShow
-
-instance IpeWriteText Int where
-  ipeWriteText = writeByShow
-
-instance IpeWriteText Integer where
-  ipeWriteText = writeByShow
-
-instance HasResolution p => IpeWriteText (Fixed p) where
-  ipeWriteText = writeByShow
-
--- | This instance converts the ratio to a Pico, and then displays that.
-instance Integral a => IpeWriteText (Ratio a) where
-  ipeWriteText = ipeWriteText . f . fromRational . toRational
-    where
-      f :: Pico -> Pico
-      f = id
-
-writeByShow :: Show t => t -> Maybe Text
-writeByShow = ipeWriteText . T.pack . show
-
-unwords' :: [Maybe Text] -> Maybe Text
-unwords' = fmap T.unwords . sequence
-
-unlines' :: [Maybe Text] -> Maybe Text
-unlines' = fmap T.unlines . sequence
-
-
-instance IpeWriteText r => IpeWriteText (Point 2 r) where
-  ipeWriteText (Point2 x y) = unwords' [ipeWriteText x, ipeWriteText y]
-
-
---------------------------------------------------------------------------------
-
-instance IpeWriteText v => IpeWriteText (IpeValue v) where
-  ipeWriteText (Named t)  = ipeWriteText t
-  ipeWriteText (Valued v) = ipeWriteText v
-
-instance IpeWriteText TransformationTypes where
-  ipeWriteText Affine       = Just "affine"
-  ipeWriteText Rigid        = Just "rigid"
-  ipeWriteText Translations = Just "translations"
-
-instance IpeWriteText PinType where
-  ipeWriteText No         = Nothing
-  ipeWriteText Yes        = Just "yes"
-  ipeWriteText Horizontal = Just "h"
-  ipeWriteText Vertical   = Just "v"
-
-instance IpeWriteText r => IpeWriteText (RGB r) where
-  ipeWriteText (RGB r g b) = unwords' . map ipeWriteText $ [r,g,b]
-
-deriving instance IpeWriteText r => IpeWriteText (IpeSize  r)
-deriving instance IpeWriteText r => IpeWriteText (IpePen   r)
-deriving instance IpeWriteText r => IpeWriteText (IpeColor r)
-
-instance IpeWriteText r => IpeWriteText (IpeDash r) where
-  ipeWriteText (DashNamed t) = Just t
-  ipeWriteText (DashPattern xs x) = (\ts t -> mconcat [ "["
-                                                      , Text.intercalate " " ts
-                                                      , "] ", t ])
-                                    <$> mapM ipeWriteText xs
-                                    <*> ipeWriteText x
-
-instance IpeWriteText FillType where
-  ipeWriteText Wind   = Just "wind"
-  ipeWriteText EOFill = Just "eofill"
-
-instance IpeWriteText r => IpeWriteText (IpeArrow r) where
-  ipeWriteText (IpeArrow n s) = (\n' s' -> n' <> "/" <> s') <$> ipeWriteText n
-                                                            <*> ipeWriteText s
-
-instance IpeWriteText r => IpeWriteText (Path r) where
-  ipeWriteText = fmap concat' . sequence . fmap ipeWriteText . _pathSegments
-    where
-      concat' = F.foldr1 (\t t' -> t <> "\n" <> t')
-
-
---------------------------------------------------------------------------------
-instance IpeWriteText r => IpeWrite (IpeSymbol r) where
-  ipeWrite (Symbol p n) = f <$> ipeWriteText p
-    where
-      f ps = Element "use" [ ("pos", ps)
-                           , ("name", n)
-                           ] []
-
--- instance IpeWriteText (SymbolAttrElf rs r) => IpeWriteText (SymbolAttribute r rs) where
---   ipeWriteText (SymbolAttribute x) = ipeWriteText x
-
-
-
---------------------------------------------------------------------------------
-
-instance IpeWriteText r => IpeWriteText (GT.Matrix 3 3 r) where
-  ipeWriteText (GT.Matrix m) = unwords' [a,b,c,d,e,f]
-    where
-      (Vector3 r1 r2 _) = m
-
-      (Vector3 a c e) = ipeWriteText <$> r1
-      (Vector3 b d f) = ipeWriteText <$> r2
-      -- TODO: The third row should be (0,0,1) I guess.
-
-
-instance IpeWriteText r => IpeWriteText (Operation r) where
-  ipeWriteText (MoveTo p)         = unwords' [ ipeWriteText p, Just "m"]
-  ipeWriteText (LineTo p)         = unwords' [ ipeWriteText p, Just "l"]
-  ipeWriteText (CurveTo p q r)    = unwords' [ ipeWriteText p
-                                             , ipeWriteText q
-                                             , ipeWriteText r, Just "c"]
-  ipeWriteText (QCurveTo p q)     = unwords' [ ipeWriteText p
-                                             , ipeWriteText q, Just "q"]
-  ipeWriteText (Ellipse m)        = unwords' [ ipeWriteText m, Just "e"]
-  ipeWriteText (ArcTo m p)        = unwords' [ ipeWriteText m
-                                             , ipeWriteText p, Just "a"]
-  ipeWriteText (Spline pts)       = unlines' $ map ipeWriteText pts <> [Just "s"]
-  ipeWriteText (ClosedSpline pts) = unlines' $ map ipeWriteText pts <> [Just "u"]
-  ipeWriteText ClosePath          = Just "h"
-
-
-instance IpeWriteText r => IpeWriteText (PolyLine 2 () r) where
-  ipeWriteText pl = case pl^..points.traverse.core of
-    (p : rest) -> unlines' . map ipeWriteText $ MoveTo p : map LineTo rest
-    _          -> error "ipeWriteText. absurd. no vertices polyline"
-    -- the polyline type guarantees that there is at least one point
-
-instance IpeWriteText r => IpeWriteText (Polygon t () r) where
-  ipeWriteText pg = fmap mconcat . traverse f $ asSimplePolygon pg : holeList pg
-    where
-      f pg' = case pg'^..outerBoundary.traverse.core of
-        (p : rest) -> unlines' . map ipeWriteText
-                    $ MoveTo p : map LineTo rest ++ [ClosePath]
-        _          -> Nothing
-    -- TODO: We are not really guaranteed that there is at least one point, it would
-    -- be nice if the type could guarantee that.
-
-
-instance IpeWriteText r => IpeWriteText (PathSegment r) where
-  ipeWriteText (PolyLineSegment p) = ipeWriteText p
-  ipeWriteText (PolygonPath     p) = ipeWriteText p
-  ipeWriteText (EllipseSegment  m) = ipeWriteText $ Ellipse m
-  ipeWriteText _                   = error "ipeWriteText: PathSegment, not implemented yet."
-
-instance IpeWriteText r => IpeWrite (Path r) where
-  ipeWrite p = (\t -> Element "path" [] [Text t]) <$> ipeWriteText p
-
---------------------------------------------------------------------------------
-
-
-instance (IpeWriteText r) => IpeWrite (Group r) where
-  ipeWrite (Group gs) = ipeWrite gs
-
-
-instance ( AllSatisfy IpeAttrName rs
-         , RecAll (Attr f) rs IpeWriteText
-         , IpeWrite g
-         ) => IpeWrite (g :+ IA.Attributes f rs) where
-  ipeWrite (g :+ ats) = ipeWrite g `mAddAtts` ipeWriteAttrs ats
-
-
-instance IpeWriteText r => IpeWrite (MiniPage r) where
-  ipeWrite (MiniPage t p w) = (\pt wt ->
-                              Element "text" [ ("pos", pt)
-                                             , ("type", "minipage")
-                                             , ("width", wt)
-                                             ] [Text t]
-                              ) <$> ipeWriteText p
-                                <*> ipeWriteText w
-
-instance IpeWriteText r => IpeWrite (Image r) where
-  ipeWrite (Image d (Box a b)) = (\dt p q ->
-                                   Element "image" [("rect", p <> " " <> q)] [Text dt]
-                                 )
-                               <$> ipeWriteText d
-                               <*> ipeWriteText (a^.core.cwMin)
-                               <*> ipeWriteText (b^.core.cwMax)
-
--- TODO: Replace this one with s.t. that writes the actual image payload
-instance IpeWriteText () where
-  ipeWriteText () = Nothing
-
-instance IpeWriteText r => IpeWrite (TextLabel r) where
-  ipeWrite (Label t p) = (\pt ->
-                         Element "text" [("pos", pt)
-                                        ,("type", "label")
-                                        ] [Text t]
-                         ) <$> ipeWriteText p
-
-
-instance (IpeWriteText r) => IpeWrite (IpeObject r) where
-    ipeWrite (IpeGroup     g) = ipeWrite g
-    ipeWrite (IpeImage     i) = ipeWrite i
-    ipeWrite (IpeTextLabel l) = ipeWrite l
-    ipeWrite (IpeMiniPage  m) = ipeWrite m
-    ipeWrite (IpeUse       s) = ipeWrite s
-    ipeWrite (IpePath      p) = ipeWrite p
-
-
-ipeWriteRec :: RecAll f rs IpeWrite => Rec f rs -> [Node Text Text]
-ipeWriteRec = catMaybes . recordToList
-            . rmap (\(Compose (Dict x)) -> Const $ ipeWrite x)
-            . reifyConstraint (Proxy :: Proxy IpeWrite)
-
-
--- instance IpeWriteText (GroupAttrElf rs r) => IpeWriteText (GroupAttribute r rs) where
---   ipeWriteText (GroupAttribute x) = ipeWriteText x
-
-
---------------------------------------------------------------------------------
-
-deriving instance IpeWriteText LayerName
-
-instance IpeWrite LayerName where
-  ipeWrite (LayerName n) = Just $ Element "layer" [("name",n)] []
-
-instance IpeWrite View where
-  ipeWrite (View lrs act) = Just $ Element "view" [ ("layers", ls)
-                                                  , ("active", _layerName act)
-                                                  ] []
-    where
-      ls = T.unwords .  map _layerName $ lrs
-
-instance (IpeWriteText r)  => IpeWrite (IpePage r) where
-  ipeWrite (IpePage lrs vs objs) = Just .
-                                  Element "page" [] . catMaybes . concat $
-                                  [ map ipeWrite lrs
-                                  , map ipeWrite vs
-                                  , map ipeWrite objs
-                                  ]
-
-
-instance IpeWrite IpeStyle where
-  ipeWrite (IpeStyle _ xml) = Just xml
-
-
-instance IpeWrite IpePreamble where
-  ipeWrite (IpePreamble _ latex) = Just $ Element "preamble" [] [Text latex]
-  -- TODO: I probably want to do something with the encoding ....
-
-instance (IpeWriteText r) => IpeWrite (IpeFile r) where
-  ipeWrite (IpeFile mp ss pgs) = Just $ Element "ipe" ipeAtts chs
-    where
-      ipeAtts = [("version","70005"),("creator", "HGeometry")]
-      chs = mconcat [ catMaybes [mp >>= ipeWrite]
-                    , mapMaybe ipeWrite ss
-                    , mapMaybe ipeWrite . F.toList $ pgs
-                    ]
-
-
-
-
---------------------------------------------------------------------------------
-
-instance (IpeWriteText r, IpeWrite p) => IpeWrite (PolyLine 2 p r) where
-  ipeWrite p = ipeWrite path
-    where
-      path = fromPolyLine $ p & points.traverse.extra .~ ()
-      -- TODO: Do something with the p's
-
-fromPolyLine :: PolyLine 2 () r -> Path r
-fromPolyLine = Path . LSeq.fromNonEmpty . (:| []) . PolyLineSegment
-
-
-instance (IpeWriteText r) => IpeWrite (LineSegment 2 p r) where
-  ipeWrite (LineSegment' p q) = ipeWrite . fromPolyLine . fromPoints . map (extra .~ ()) $ [p,q]
-
-
-instance IpeWrite () where
-  ipeWrite = const Nothing
-
--- -- | slightly clever instance that produces a group if there is more than one
--- -- element and just an element if there is only one value produced
--- instance IpeWrite a => IpeWrite [a] where
---   ipeWrite = combine . mapMaybe ipeWrite
-
-
-combine     :: [Node Text Text] -> Maybe (Node Text Text)
-combine []  = Nothing
-combine [n] = Just n
-combine ns  = Just $ Element "group" [] ns
-
--- instance (IpeWrite a, IpeWrite b) => IpeWrite (a,b) where
---   ipeWrite (a,b) = combine . catMaybes $ [ipeWrite a, ipeWrite b]
-
-
-
--- -- | The default symbol for a point
--- ipeWritePoint :: IpeWriteText r => Point 2 r -> Maybe (Node Text Text)
--- ipeWritePoint = ipeWrite . flip Symbol "mark/disk(sx)"
-
-
--- instance (IpeWriteText r, Floating r) => IpeWrite (Circle r) where
---   ipeWrite = ipeWrite . Path . S2.l1Singleton . fromCircle
-
-
-
---------------------------------------------------------------------------------
-
-
-
--- testPoly :: PolyLine 2 () Double
--- testPoly = fromPoints' [origin, point2 0 10, point2 10 10, point2 100 100]
-
-
-
-
--- testWriteUse :: Maybe (Node Text Text)
--- testWriteUse = ipeWriteExt sym
---   where
---     sym :: IpeSymbol Double :+ (Rec (SymbolAttribute Double) [Size, SymbolStroke])
---     sym = Symbol origin "mark" :+ (  SymbolAttribute (IpeSize  $ Named "normal")
---                                   :& SymbolAttribute (IpeColor $ Named "green")
---                                   :& RNil
---                                   )
diff --git a/src/Data/Geometry/KDTree.hs b/src/Data/Geometry/KDTree.hs
--- a/src/Data/Geometry/KDTree.hs
+++ b/src/Data/Geometry/KDTree.hs
@@ -14,7 +14,7 @@
 import qualified Data.List.NonEmpty as NonEmpty
 import           Data.Maybe (fromJust)
 import           Data.Proxy
-import           Data.LSeq (LSeq(..), pattern (:<|))
+import           Data.LSeq (LSeq, pattern (:<|))
 import qualified Data.LSeq as LSeq
 import           Data.Util
 import qualified Data.Vector.Fixed as FV
diff --git a/src/Data/Geometry/Line.hs b/src/Data/Geometry/Line.hs
--- a/src/Data/Geometry/Line.hs
+++ b/src/Data/Geometry/Line.hs
@@ -37,6 +37,7 @@
 
 --------------------------------------------------------------------------------
 
+
 -- | Lines are transformable, via line segments
 instance (Fractional r, Arity d, Arity (d + 1)) => IsTransformable (Line d r) where
   transformBy t = supportingLine . transformPointFunctor t . toLineSegment'
@@ -44,7 +45,23 @@
       toLineSegment' :: (Num r, Arity d) => Line d r -> LineSegment d () r
       toLineSegment' = toLineSegment
 
+type instance IntersectionOf (Point d r) (Line d r) = [NoIntersection, Point d r]
 
+
+instance (Eq r, Fractional r, Arity d) => (Point d r) `IsIntersectableWith` (Line d r) where
+  nonEmptyIntersection = defaultNonEmptyIntersection
+  intersects = onLine
+  p `intersect` l | p `intersects` l = coRec p
+                  | otherwise        = coRec NoIntersection
+
+instance {-# OVERLAPPING #-} (Ord r, Num r)
+        => (Point 2 r) `IsIntersectableWith` (Line 2 r) where
+  nonEmptyIntersection = defaultNonEmptyIntersection
+  intersects = onLine2
+  p `intersect` l | p `intersects` l = coRec p
+                  | otherwise        = coRec NoIntersection
+
+
 type instance IntersectionOf (Line 2 r) (Boundary (Rectangle p r)) =
   [ NoIntersection, Point 2 r, (Point 2 r, Point 2 r) , LineSegment 2 () r]
 
@@ -53,11 +70,11 @@
          => (Line 2 r) `IsIntersectableWith` (Boundary (Rectangle p r)) where
   nonEmptyIntersection = defaultNonEmptyIntersection
 
-  line' `intersect` (Boundary rect)  = case asA' segP of
+  line' `intersect` (Boundary rect)  = case asAP segP of
       [sl'] -> case fromUnbounded sl' of
         Nothing   -> error "intersect: line x boundary rect; unbounded line? absurd"
         Just sl'' -> coRec $ sl''^.re _SubLine
-      []    -> case nub' $ asA' pointP of
+      []    -> case nub' $ asAP pointP of
         [p]   -> coRec p
         [p,q] -> coRec (p,q)
         _     -> coRec NoIntersection
@@ -66,17 +83,17 @@
       (t,r,b,l) = sides' rect
       ints = map (\s -> sl `intersect` toSL s) [t,r,b,l]
 
-      nub' = map head . L.group . L.sort
+      nub' = map L.head . L.group . L.sort
 
       sl = fromLine line'
       -- wrap a segment into an potentially unbounded subline
       toSL  :: LineSegment 2 p r -> SubLine 2 () (UnBounded r) r
       toSL s = s^._SubLine.re _unBounded.to dropExtra
 
-      asA'    :: (t ∈ IntersectionOf (SubLine 2 () (UnBounded r) r)
-                                     (SubLine 2 () (UnBounded r) r))
-              => proxy t -> [t]
-      asA' px = mapMaybe (asA px) ints
+      asAP  :: forall proxy t. (t ∈ IntersectionOf (SubLine 2 () (UnBounded r) r)
+                                                   (SubLine 2 () (UnBounded r) r))
+             => proxy t -> [t]
+      asAP _ = mapMaybe (asA @t) ints
 
       segP   = Proxy :: Proxy (SubLine 2 () (UnBounded r) r)
       pointP = Proxy :: Proxy (Point 2 r)
diff --git a/src/Data/Geometry/Line/Internal.hs b/src/Data/Geometry/Line/Internal.hs
--- a/src/Data/Geometry/Line/Internal.hs
+++ b/src/Data/Geometry/Line/Internal.hs
@@ -1,6 +1,5 @@
 {-# LANGUAGE TemplateHaskell  #-}
 {-# LANGUAGE DeriveAnyClass  #-}
-{-# LANGUAGE ScopedTypeVariables  #-}
 {-# LANGUAGE UndecidableInstances #-}
 --------------------------------------------------------------------------------
 -- |
@@ -25,7 +24,7 @@
 import           Data.Vinyl
 import           Data.Vinyl.CoRec
 import           GHC.Generics (Generic)
-
+import           Test.QuickCheck
 
 --------------------------------------------------------------------------------
 -- * d-dimensional Lines
@@ -54,6 +53,10 @@
 instance (Arity d, Eq r, Fractional r) => Eq (Line d r) where
   l@(Line p _) == m = l `isParallelTo` m && p `onLine` m
 
+instance (Arbitrary r, Arity d, Num r, Eq r) => Arbitrary (Line d r) where
+  arbitrary = do p <- arbitrary
+                 q <- suchThat arbitrary (/= p)
+                 return $ lineThrough p q
 
 type instance Dimension (Line d r) = d
 type instance NumType   (Line d r) = r
@@ -70,13 +73,18 @@
 horizontalLine   :: Num r => r -> Line 2 r
 horizontalLine y = Line (point2 0 y) (Vector2 1 0)
 
--- | Given a line l with anchor point p, get the line perpendicular to l that also goes through p.
+-- | Given a line l with anchor point p and vector v, get the line
+-- perpendicular to l that also goes through p. The resulting line m is
+-- oriented such that v points into the left halfplane of m.
+--
+-- >>> perpendicularTo $ Line (Point2 3 4) (Vector2 (-1) 2)
+-- Line (Point2 [3,4]) (Vector2 [-2,-1])
 perpendicularTo                           :: Num r => Line 2 r -> Line 2 r
 perpendicularTo (Line p ~(Vector2 vx vy)) = Line p (Vector2 (-vy) vx)
 
-
-
-
+-- | Test if a vector is perpendicular to the line.
+isPerpendicularTo :: (Num r, Eq r) => Vector 2 r -> Line 2 r -> Bool
+v `isPerpendicularTo` (Line _ u) = v `dot` u == 0
 
 -- | Test if two lines are identical, meaning; if they have exactly the same
 -- anchor point and directional vector.
@@ -107,10 +115,12 @@
 onLine                :: (Eq r, Fractional r, Arity d) => Point d r -> Line d r -> Bool
 p `onLine` (Line q v) = p == q || (p .-. q) `isScalarMultipleOf` v
 
-
 -- | Specific 2d version of testing if apoint lies on a line.
 onLine2 :: (Ord r, Num r) => Point 2 r -> Line 2 r -> Bool
 p `onLine2` (Line q v) = ccw p q (q .+^ v) == CoLinear
+
+
+
 
 
 -- | Get the point at the given position along line, where 0 corresponds to the
diff --git a/src/Data/Geometry/LineSegment.hs b/src/Data/Geometry/LineSegment.hs
--- a/src/Data/Geometry/LineSegment.hs
+++ b/src/Data/Geometry/LineSegment.hs
@@ -14,6 +14,7 @@
                                 , pattern LineSegment
                                 , pattern LineSegment'
                                 , pattern ClosedLineSegment
+                                , endPoints
 
                                 , _SubLine
                                 , module Data.Geometry.Interval
@@ -28,8 +29,8 @@
                                 ) where
 
 import           Control.Arrow ((&&&))
+import           Control.DeepSeq
 import           Control.Lens
-import           Data.Bifunctor
 import           Data.Ext
 import qualified Data.Foldable as F
 import           Data.Geometry.Box.Internal
@@ -44,6 +45,7 @@
 import           Data.Vinyl
 import           Data.Vinyl.CoRec
 import           GHC.TypeLits
+import           Test.QuickCheck
 
 --------------------------------------------------------------------------------
 -- * d-dimensional LineSegments
@@ -58,6 +60,7 @@
 
 makeLenses ''LineSegment
 
+
 -- | Pattern that essentially models the line segment as a:
 --
 -- >>> data LineSegment d p r = LineSegment (EndPoint (Point d r :+ p)) (EndPoint (Point d r :+ p))
@@ -93,6 +96,20 @@
   type EndExtra (LineSegment d p r) = p
   end = unLineSeg.end
 
+instance (Arbitrary r, Arbitrary p, Arity d) => Arbitrary (LineSegment d p r) where
+  arbitrary = LineSegment <$> arbitrary <*> arbitrary
+
+deriving instance (Arity d, NFData r, NFData p) => NFData (LineSegment d p r)
+
+
+-- | Traversal to access the endpoints. Note that this traversal
+-- allows you to change more or less everything, even the dimension
+-- and the numeric type used, but it preservers if the segment is open
+-- or closed.
+endPoints :: Traversal (LineSegment d p r) (LineSegment d' q s)
+                       (Point d r :+ p)    (Point d' s :+ q)
+endPoints = \f (LineSegment p q) -> LineSegment <$> traverse f p
+                                                <*> traverse f q
 
 _SubLine :: (Num r, Arity d) => Iso' (LineSegment d p r) (SubLine d p r r)
 _SubLine = iso segment2SubLine subLineToSegment
diff --git a/src/Data/Geometry/PlanarSubdivision.hs b/src/Data/Geometry/PlanarSubdivision.hs
--- a/src/Data/Geometry/PlanarSubdivision.hs
+++ b/src/Data/Geometry/PlanarSubdivision.hs
@@ -3,7 +3,7 @@
 {-# LANGUAGE ScopedTypeVariables #-}
 --------------------------------------------------------------------------------
 -- |
--- Module      :  Data.Geometry.PlnarSubdivision
+-- Module      :  Data.Geometry.PlanarSubdivision
 -- Copyright   :  (C) Frank Staals
 -- License     :  see the LICENSE file
 -- Maintainer  :  Frank Staals
@@ -12,51 +12,82 @@
 --
 --------------------------------------------------------------------------------
 module Data.Geometry.PlanarSubdivision( module Data.Geometry.PlanarSubdivision.Basic
-                                      -- , module Data.Geometry.PlanarSubdivision.Build
+                                      , fromPolygons, fromPolygons'
                                       , fromPolygon
                                       ) where
 
 -- import           Algorithms.Geometry.PolygonTriangulation.Triangulate
 import           Data.Ext
+import           Data.Semigroup.Foldable
+import qualified Data.Vector as V
+import qualified Data.List.NonEmpty as NonEmpty
 import           Data.Geometry.PlanarSubdivision.Basic
+import           Data.Geometry.PlanarSubdivision.Merge
 import           Data.Geometry.Polygon
-import           Data.List.NonEmpty (NonEmpty(..))
 import qualified Data.PlaneGraph as PG
 import           Data.Proxy
-import           Data.Util
-import           Control.Lens
-import           Data.Bitraversable
-import qualified Data.Foldable as F
-import qualified Data.Vector as V
-import qualified Data.Vector.Mutable as MV
 
+
+-- import Data.Geometry.Point
+-- import qualified Data.List.NonEmpty as NonEmpty
+
+
+-- import Debug.Trace
+
 --------------------------------------------------------------------------------
 
+-- | Constructs a planar subdivision from a collection of \(k\)
+-- disjoint polygons of total complexity \(O(n)\).
+--
+-- pre: The boundary of the polygons is given in counterclockwise orientation
+--
+-- runningtime: \(O(n\log n\log k)\) in case of polygons with holes,
+-- and \(O(n\log k)\) in case of simple polygons.
+fromPolygons       :: (Foldable1 c, Ord r, Fractional r)
+                   => proxy s
+                   -> f -- ^ outer face data
+                   -> c (Polygon t p r :+ f) -- ^ the disjoint polygons
+                   -> PlanarSubdivision s p () f r
+fromPolygons px oD = mergeAllWith const
+                   . fmap (\(pg :+ iD) -> fromPolygon px pg iD oD) . toNonEmpty
+
+-- | Version of 'fromPolygons' that accepts 'SomePolygon's as input.
+fromPolygons'      :: forall proxy c s p r f. (Foldable1 c, Ord r, Fractional r)
+                   => proxy s
+                   -> f -- ^ outer face data
+                   -> c (SomePolygon p r :+ f) -- ^ the disjoint polygons
+                   -> PlanarSubdivision s p () f r
+fromPolygons' px oD =
+    mergeAllWith const . fmap (\(pg :+ iD) -> either (build iD) (build iD) pg) . toNonEmpty
+  where
+    build       :: f -> Polygon t p r -> PlanarSubdivision s p () f r
+    build iD pg = fromPolygon px pg iD oD
+
 -- | Construct a planar subdivision from a polygon. Since our PlanarSubdivision
 -- models only connected planar subdivisions, this may add dummy/invisible
 -- edges.
 --
--- running time: \(O(n)\) for a simple polygon, \(O(n\log n)\) for a polygon
--- with holes.
-fromPolygon                              :: forall proxy t p f r s.
-                                            (Ord r, Fractional r) => proxy s
+-- pre: The outer boundary of the polygons is given in counterclockwise orientation
+--
+-- running time: \(O(n)\) for a simple polygon, \(O(n\log n)\) for a
+-- polygon with holes.
+fromPolygon                              :: forall proxy t p f r s. (Ord r, Fractional r)
+                                         => proxy s
                                          -> Polygon t p r
                                          -> f -- ^ data inside
                                          -> f -- ^ data outside the polygon
                                          -> PlanarSubdivision s p () f r
 fromPolygon p pg@(SimplePolygon _) iD oD = fromSimplePolygon p pg iD oD
-fromPolygon _ (MultiPolygon vs hs) iD oD = PlanarSubdivision cs vd dd fd
+fromPolygon p (MultiPolygon vs hs) iD oD = case NonEmpty.nonEmpty hs of
+    Nothing  -> outerPG
+    Just hs' -> let hs'' = (\pg -> fromSimplePolygon wp (toCounterClockWiseOrder pg) oD iD) <$> hs'
+                in embedAsHolesIn hs'' (\_ x -> x) i outerPG
   where
     wp = Proxy :: Proxy (Wrap s)
 
-    -- the components
-    cs = undefined
-    cs' = PG.fromSimplePolygon wp (SimplePolygon vs) iD oD
-        : map (\h -> PG.fromSimplePolygon wp h oD iD) hs
+    outerPG = fromSimplePolygon p (SimplePolygon vs) iD oD
+    i = V.last $ faces' outerPG
 
-    vd = undefined
-    dd = undefined
-    fd = undefined
 
 
 
@@ -99,3 +130,31 @@
 getP            :: HoleData f p -> Maybe p
 getP (Outer _)  = Nothing
 getP (Hole _ p) = Just p
+
+--------------------------------------------------------------------------------
+
+-- data Test = Test
+-- data Id a = Id a
+
+
+-- simplePg  = fromSimplePolygon (Id Test) simplePg' Inside Outside
+-- simplePg' = toCounterClockWiseOrder . fromPoints $ map ext $ [ Point2 160 736
+--                                                              , Point2 128 688
+--                                                              , Point2 176 672
+--                                                              , Point2 256 672
+--                                                              , Point2 272 608
+--                                                              , Point2 384 656
+--                                                              , Point2 336 768
+--                                                              , Point2 272 720
+--                                                              ]
+
+-- triangle :: PlanarSubdivision Test () () PolygonFaceData Rational
+-- triangle = (\pg -> fromSimplePolygon (Id Test) pg Inside Outside)
+--          $ trianglePG
+
+-- trianglePG = fromPoints . map ext $ [origin, Point2 10 0, Point2 10 10]
+
+
+-- mySubDiv = fromSimplePolygons (Id Test)
+--                               0
+--                               (NonEmpty.fromList [simplePg' :+ 1, trianglePG :+ 2])
diff --git a/src/Data/Geometry/PlanarSubdivision/Basic.hs b/src/Data/Geometry/PlanarSubdivision/Basic.hs
--- a/src/Data/Geometry/PlanarSubdivision/Basic.hs
+++ b/src/Data/Geometry/PlanarSubdivision/Basic.hs
@@ -28,7 +28,8 @@
                                             , fromConnectedSegments
                                             , fromPlaneGraph, fromPlaneGraph'
 
-                                            , numVertices, numEdges, numFaces, numDarts
+                                            , numComponents, numVertices
+                                            , numEdges, numFaces, numDarts
                                             , dual
 
                                             , components, component
@@ -54,13 +55,14 @@
 
                                             , endPointsOf, endPointData
 
+                                            , faceDataOf
+
                                             , edgeSegment, edgeSegments
                                             , rawFacePolygon, rawFaceBoundary
                                             , rawFacePolygons
 
                                             , VertexId(..), FaceId(..), Dart, World(..)
 
-
                                             , rawVertexData, rawDartData, rawFaceData
                                             , vertexData, dartData, faceData
                                             , dataVal
@@ -69,17 +71,18 @@
                                             ) where
 
 import           Control.Lens hiding (holes, holesOf, (.=))
-import           Data.Aeson
 import           Data.Coerce
 import           Data.Ext
 import qualified Data.Foldable as F
 import           Data.Geometry.Box
-import           Data.Geometry.LineSegment
+import           Data.Geometry.LineSegment hiding (endPoints)
+import           Data.Geometry.PlanarSubdivision.Raw
 import           Data.Geometry.Point
 import           Data.Geometry.Polygon
 import           Data.Geometry.Properties
 import           Data.List.NonEmpty (NonEmpty(..))
-import           Data.PlanarGraph (isPositive, allDarts)
+import qualified Data.List.NonEmpty as NonEmpty
+import           Data.PlanarGraph.Dart (allDarts,isPositive)
 import qualified Data.PlaneGraph as PG
 import           Data.PlaneGraph( PlaneGraph, PlanarGraph, dual
                                 , Dart, VertexId(..), FaceId(..), twin
@@ -95,46 +98,7 @@
 
 --------------------------------------------------------------------------------
 
--- | The Face data consists of the data itself and a list of holes
-data FaceData h f = FaceData { _holes :: (Seq.Seq h)
-                             , _fData :: !f
-                             } deriving (Show,Eq,Ord,Functor,Foldable,Traversable,Generic)
-makeLenses ''FaceData
-
-instance Bifunctor FaceData where
-  bimap f g (FaceData hs x) = FaceData (fmap f hs) (g x)
-
-
-instance (FromJSON h, FromJSON f) => FromJSON (FaceData h f)
-instance (ToJSON h, ToJSON f)     => ToJSON (FaceData h f) where
-  toEncoding = genericToEncoding defaultOptions
-
-
 --------------------------------------------------------------------------------
-
-
-data Wrap' s
-type family Wrap (s :: k) :: k where
-  Wrap s = Wrap' s
-
-newtype ComponentId s = ComponentId { unCI :: Int }
-  deriving (Show,Eq,Ord,Generic,Bounded,Enum,ToJSON,FromJSON)
-
-
-data Raw s ia a = Raw { _compId  :: !(ComponentId s)
-                      , _idxVal  :: !ia
-                      , _dataVal :: !a
-                      } deriving (Eq,Show,Functor,Foldable,Traversable,Generic)
-
-instance (FromJSON ia, FromJSON a) => FromJSON (Raw s ia a)
-instance (ToJSON ia, ToJSON a) => ToJSON (Raw s ia a) where
-  toEncoding = genericToEncoding defaultOptions
-
--- | get the dataVal of a Raw
-dataVal :: Lens (Raw s ia a) (Raw s ia b) a b
-dataVal = lens (\(Raw _ _ x) -> x) (\(Raw c i _) y -> Raw c i y)
-
-
 --------------------------------------------------------------------------------
 
 -- | A connected component.
@@ -143,7 +107,7 @@
 -- d on the hole s.t. this dart has the face f on its left. i.e.
 -- leftFace d = f
 type Component s r = PlaneGraph (Wrap s)
-                                (VertexId' s) (Dart s) (FaceData (Dart s) (FaceId' s))
+                                (VertexId' s) (Dart s) (FaceId' s)
                                 r
 
 
@@ -160,7 +124,7 @@
   PlanarSubdivision { _components    :: V.Vector (Component s r)
                     , _rawVertexData :: V.Vector (Raw s (VertexId' (Wrap s)) v)
                     , _rawDartData   :: V.Vector (Raw s (Dart      (Wrap s)) e)
-                    , _rawFaceData   :: V.Vector (Raw s (FaceId'   (Wrap s)) f)
+                    , _rawFaceData   :: V.Vector (RawFace s f)
                     } deriving (Show,Eq,Functor,Generic)
 makeLenses ''PlanarSubdivision
 
@@ -200,12 +164,12 @@
 fromPlaneGraph' g ofD = PlanarSubdivision (V.singleton . coerce $ g') vd ed fd
   where
     c = ComponentId 0
-    vd = V.imap    (\i v   -> Raw c (VertexId i) v)             $ g^.PG.vertexData
-    ed = V.zipWith (\d dd  -> Raw c d            dd) allDarts'' $ g^.PG.rawDartData
-    fd = V.imap (\i f      -> Raw c (mkFaceId i) f) . swapOf    $ g^.PG.faceData
+    vd = V.imap    (\i v   -> Raw c (VertexId i) v)                   $ g^.PG.vertexData
+    ed = V.zipWith (\d dd  -> Raw c d dd) allDarts''                  $ g^.PG.rawDartData
+    fd = V.imap (\i f      -> RawFace (mkFaceIdx i) (mkFaceData i f)) $ g^.PG.faceData
 
-    g' :: PlaneGraph s (VertexId' s) (Dart s) (FaceData (Dart s) (FaceId' s)) r
-    g' = g&PG.faceData    %~ V.imap (\i _ -> mkFaceData i)
+    g' :: PlaneGraph s (VertexId' s) (Dart s) (FaceId' s) r
+    g' = g&PG.faceData    %~ V.imap (\i _ -> mkFaceId $ flipID i)
           &PG.vertexData  %~ V.imap (\i _ -> VertexId i)
           &PG.rawDartData .~ allDarts''
 
@@ -213,28 +177,30 @@
     allDarts'' = allDarts' (PG.numDarts g)
 
     -- make sure the outerFaceId is 0
-    (FaceId (VertexId of')) = PG.leftFace ofD g
+    oF@(FaceId (VertexId of')) = PG.leftFace ofD g
 
-    -- at index i we are storing the outerface
-    mkFaceData i | i == of'  = faceData' (Seq.singleton ofD) 0
-                 | i == 0    = faceData' mempty of'
-                 | otherwise = faceData' mempty i
-    faceData' xs i = FaceData xs (FaceId . VertexId $ i)
+    mkFaceIdx i | i == 0    = Nothing
+                | otherwise = Just (c,mkFaceId i)
 
+    -- at index i we are storing the outerface
+    mkFaceData                 :: Int -> f -> FaceData (Dart s) f
+    mkFaceData i f | i == 0    = FaceData (Seq.singleton ofD) (g^.dataOf oF)
+                   | i == of'  = FaceData mempty              (g^.dataOf (mkFaceId @s 0))
+                   | otherwise = FaceData mempty              f
 
     mkFaceId :: forall s'. Int -> FaceId' s'
-    mkFaceId = FaceId . VertexId . mkFaceId'
-    mkFaceId' i | i == 0    = of'
-                | i == of'  = 0
-                | otherwise = i
-    swapOf = V.modify (\v -> MV.swap v 0 of')
-
-
-
+    mkFaceId = FaceId . VertexId
 
+    flipID i | i == 0    = of'
+             | i == of'  = 0
+             | otherwise = i
 
--- | Construct a planar subdivision from a simple polygon
+-- | Construct a plane graph from a simple polygon. It is assumed that the
+-- polygon is given in counterclockwise order.
 --
+-- the interior of the polygon will have faceId 0
+--
+-- pre: the input polygon is given in counterclockwise order
 -- running time: \(O(n)\).
 fromSimplePolygon            :: (Ord r, Fractional r)
                              => proxy s
@@ -289,6 +255,13 @@
 -- | Get the number of vertices
 --
 -- >>> numVertices myGraph
+-- 1
+numComponents :: PlanarSubdivision s v e f r  -> Int
+numComponents = V.length . _components
+
+-- | Get the number of vertices
+--
+-- >>> numVertices myGraph
 -- 4
 numVertices :: PlanarSubdivision s v e f r  -> Int
 numVertices = V.length . _rawVertexData
@@ -366,12 +339,10 @@
 
 
 -- | Enumerates all faces with their face data exlcluding  the outer face
-internalFaces    :: (Ord r, Fractional r)
-                 => PlanarSubdivision s v e f r
+internalFaces    :: PlanarSubdivision s v e f r
                  -> V.Vector (FaceId' s, FaceData (Dart s) f)
-internalFaces ps = let i = outerFaceId ps
-                   in V.filter (\(j,_) -> i /= j) $ faces ps
-
+internalFaces ps = V.tail $ faces ps
+  -- this uses that the outerfaceId is 0, and thus it is the first face in the vector.
 
 -- | lens to access the Dart Data
 dartData :: Lens (PlanarSubdivision s v e f r) (PlanarSubdivision s v e' f r)
@@ -397,8 +368,8 @@
                  (V.Vector f)                  (V.Vector f')
 faceData = lens getF setF
   where
-    getF = fmap (^.dataVal) . _rawFaceData
-    setF ps v' = ps&rawFaceData %~ V.zipWith (\x' x -> x&dataVal .~ x') v'
+    getF = fmap (^.faceDataVal.fData) . _rawFaceData
+    setF ps v' = ps&rawFaceData %~ V.zipWith (\x' x -> x&faceDataVal.fData .~ x') v'
 
 -- | Lens to the facedata of the vertexdata themselves. The indices correspond to the vertexId's
 vertexData :: Lens (PlanarSubdivision s v e f r) (PlanarSubdivision s v' e f r)
@@ -477,7 +448,7 @@
 leftFace      :: Dart s -> PlanarSubdivision s v e f r  -> FaceId' s
 leftFace d ps = let (_,d',g) = asLocalD d ps
                     fi       = PG.leftFace d' g
-                in g^.dataOf fi.fData
+                in g^.dataOf fi
 
 -- | The face to the right of the dart
 --
@@ -485,19 +456,27 @@
 rightFace      :: Dart s -> PlanarSubdivision s v e f r  -> FaceId' s
 rightFace d ps = let (_,d',g) = asLocalD d ps
                      fi       = PG.rightFace d' g
-                in g^.dataOf fi.fData
+                in g^.dataOf fi
 
--- | The darts on the outer boundary of the face, for internal faces in
--- clockwise order, for the outer face in counter clockwise order.
+-- | The darts on the outer boundary of the face, for internal faces
+-- the darts are in clockwise order. For the outer face the darts are
+-- in counterclockwise order, and the darts from various components are in no particular order.
 --
 --
 -- running time: \(O(k)\), where \(k\) is the output size.
 outerBoundaryDarts      :: FaceId' s -> PlanarSubdivision s v e f r  -> V.Vector (Dart s)
-outerBoundaryDarts f ps = let (_,f',g) = asLocalF f ps
-                              ds       = PG.boundary f' g
-                          in (\d -> g^.dataOf d) <$> ds
-
+outerBoundaryDarts f ps = V.concatMap single . V.fromList . NonEmpty.toList $ asLocalF f ps
+  where
+    single (_,f',g) = (\d -> g^.dataOf d) <$> PG.boundary f' g
 
+-- | Get the local face and component from a given face.
+asLocalF                          :: FaceId' s -> PlanarSubdivision s v e f r
+                                  -> NonEmpty (ComponentId s, FaceId' (Wrap s), Component s r)
+asLocalF (FaceId (VertexId f)) ps = case ps^?!rawFaceData.ix f of
+      RawFace (Just (ci,f')) _        -> (ci,f',ps^.component ci) :| []
+      RawFace Nothing (FaceData hs _) -> toLocalF <$> NonEmpty.fromList (F.toList hs)
+  where
+    toLocalF d = let (ci,d',c) = asLocalD d ps in (ci,PG.leftFace d' c,c)
 
 -- | The vertices of the outer boundary of the face, for internal faces in
 -- clockwise order, for the outer face in counter clockwise order.
@@ -510,11 +489,14 @@
 
 
 -- | Lists the holes in this face, given as a list of darts to arbitrary darts
--- on those faces.
+-- on those faces. The returned darts are on the outside of the hole, i.e. they are
+-- incident to the given input face:
 --
+-- prop> all (\d -> leftFace d ps == fi) $ holesOf fi ps
+--
 -- running time: \(O(k)\), where \(k\) is the number of darts returned.
-holesOf      :: FaceId' s -> PlanarSubdivision s v e f r -> Seq.Seq (Dart s)
-holesOf f ps = ps^.faceDataOf f.holes
+holesOf       :: FaceId' s -> PlanarSubdivision s v e f r -> Seq.Seq (Dart s)
+holesOf fi ps = ps^.faceDataOf fi.holes
 
 
 --------------------------------------------------------------------------------
@@ -535,13 +517,6 @@
 asLocalV (VertexId v) ps = let (Raw ci v' _) = ps^?!rawVertexData.ix v
                            in (ci,v',ps^.component ci)
 
-asLocalF                          :: FaceId' s -> PlanarSubdivision s v e f r
-                                  -> (ComponentId s, FaceId' (Wrap s), Component s r)
-asLocalF (FaceId (VertexId f)) ps = let (Raw ci f' _) = ps^?!rawFaceData.ix f
-                                    in (ci,f',ps^.component ci)
-
-
-
 -- | Note that using the setting part of this lens may be very expensive!!
 vertexDataOf               :: VertexId' s
                            -> Lens' (PlanarSubdivision s v e f r ) (VertexData r v)
@@ -563,15 +538,8 @@
 faceDataOf fi = lens getF setF
   where
     (FaceId (VertexId i)) = fi
-    getF ps = let (Raw ci wfi x) = ps^?!rawFaceData.ix i
-                  fd             = ps^.component ci.dataOf wfi
-              in fd&fData .~ x
-
-    setF ps fd = let (Raw ci wfi _) = ps^?!rawFaceData.ix i
-                     fd'            = fd&fData .~ fi
-                     x              = fd^.fData
-                 in ps&component ci.dataOf wfi  .~ fd'
-                      &rawFaceData.ix i.dataVal .~ x
+    getF ps = ps^?!rawFaceData.ix i.faceDataVal
+    setF ps fd = ps&rawFaceData.ix i.faceDataVal .~ fd
 
 instance HasDataOf (PlanarSubdivision s v e f r) (VertexId' s) where
   type DataOf (PlanarSubdivision s v e f r) (VertexId' s) = v
@@ -684,12 +652,25 @@
     res@(SimplePolygon vs) :+ x = rawFaceBoundary i ps
     toHole d = (rawFaceBoundary (leftFace d ps) ps)^.core
 
--- | Lists all faces of the planar subdivision.
+-- | Lists all *internal* faces of the planar subdivision.
 rawFacePolygons    :: PlanarSubdivision s v e f r
                    -> V.Vector (FaceId' s, SomePolygon v r :+ f)
-rawFacePolygons ps = fmap (\i -> (i,rawFacePolygon i ps)) . faces' $ ps
+rawFacePolygons ps = fmap (\(i,_) -> (i,rawFacePolygon i ps)) . internalFaces $ ps
 
 
 
 dartMapping    :: PlanarSubdivision s v e f r -> V.Vector (Dart (Wrap s), Dart s)
 dartMapping ps = ps^.component (ComponentId 0).PG.dartData
+
+
+
+--------------------------------------------------------------------------------
+
+-- data Id a = Id a
+-- data Test = Test
+
+-- triangle :: PlanarSubdivision Test () () PolygonFaceData Rational
+-- triangle = (\pg -> fromSimplePolygon (Id Test) pg Inside Outside)
+--          $ trianglePG
+
+-- trianglePG = fromPoints . map ext $ [origin, Point2 10 0, Point2 10 10]
diff --git a/src/Data/Geometry/PlanarSubdivision/Draw.hs b/src/Data/Geometry/PlanarSubdivision/Draw.hs
deleted file mode 100644
--- a/src/Data/Geometry/PlanarSubdivision/Draw.hs
+++ /dev/null
@@ -1,54 +0,0 @@
-module Data.Geometry.PlanarSubdivision.Draw where
-
-import           Control.Lens
-import           Data.Ext
-import           Data.Geometry.Ipe
-import           Data.Geometry.LineSegment
-import           Data.Geometry.PlanarSubdivision
-import           Data.Geometry.Polygon
-import           Data.Maybe (mapMaybe)
-import qualified Data.Vector as V
-
-
-drawColoredPlanarSubdivision  ::  IpeOut (PlanarSubdivision s v e (Maybe (IpeColor r)) r)
-                                          Group r
-drawColoredPlanarSubdivision ps = drawPlanarSubdivision
-    (ps&vertexData.traverse  .~ Just mempty
-       &dartData.traverse._2 .~ Just mempty
-       &faceData.traverse    %~ fmap (attr SFill)
-    )
-
--- | Draws only the values for which we have a Just attribute
-drawPlanarSubdivision :: forall s r.
-                         IpeOut (PlanarSubdivision s (Maybe (IpeAttributes IpeSymbol r))
-                                                     (Maybe (IpeAttributes Path      r))
-                                                     (Maybe (IpeAttributes Path      r))
-                                r) Group r
-drawPlanarSubdivision = drawPlanarSubdivisionWith fv fe ff
-  where
-    fv                     :: (VertexId' s, VertexData r (Maybe (IpeAttributes IpeSymbol r)))
-                           -> Maybe (IpeObject' IpeSymbol r)
-    fv (_,VertexData p ma) = (\a -> defIO p ! a) <$> ma -- draws a point
-    fe (_,s :+ ma)         = (\a -> defIO s ! a) <$> ma -- draw segment
-    ff (_,f :+ ma)         = (\a -> defIO f ! a) <$> ma -- draw a face
-
-
--- | Draw everything using the defaults
-drawPlanarSubdivision'    :: forall s v e f r. IpeOut (PlanarSubdivision s v e f r) Group r
-drawPlanarSubdivision' ps = drawPlanarSubdivision
-  (ps&vertexData.traverse   .~ Just (mempty :: IpeAttributes IpeSymbol r)
-     &dartData.traverse._2  .~ Just (mempty :: IpeAttributes Path      r)
-     &faceData.traverse     .~ Just (mempty :: IpeAttributes Path      r))
-
-type MIO g i r = g -> Maybe (IpeObject' i r)
-
-drawPlanarSubdivisionWith            :: (ToObject vi, ToObject ei, ToObject fi)
-                                     => MIO (VertexId' s, VertexData r v)          vi r
-                                     -> MIO (Dart s,      LineSegment 2 v r :+ e)  ei r
-                                     -> MIO (FaceId' s,   SomePolygon v r :+ f)    fi r
-                                     -> IpeOut (PlanarSubdivision s v e f r) Group r
-drawPlanarSubdivisionWith fv fe ff g = ipeGroup . concat $ [vs, es, fs]
-  where
-    vs = mapMaybe (fmap iO . fv) . V.toList . vertices        $ g
-    es = mapMaybe (fmap iO . fe) . V.toList . edgeSegments    $ g
-    fs = mapMaybe (fmap iO . ff) . V.toList . rawFacePolygons $ g
diff --git a/src/Data/Geometry/PlanarSubdivision/Merge.hs b/src/Data/Geometry/PlanarSubdivision/Merge.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Geometry/PlanarSubdivision/Merge.hs
@@ -0,0 +1,255 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Data.Geometry.PlanarSubdivision.Merge
+-- Copyright   :  (C) Frank Staals
+-- License     :  see the LICENSE file
+-- Maintainer  :  Frank Staals
+-- Description :  Functions for merging two planar subdivisions
+--
+--------------------------------------------------------------------------------
+module Data.Geometry.PlanarSubdivision.Merge( merge
+                                            , mergeWith
+                                            , mergeAllWith
+
+                                            , embedAsHoleIn
+                                            , embedAsHolesIn
+                                            ) where
+
+import           Control.Lens hiding (holes)
+import           Data.BinaryTree (asBalancedBinLeafTree, foldUp, Elem(..))
+import           Data.Geometry.PlanarSubdivision.Basic
+import           Data.Geometry.PlanarSubdivision.Raw
+import           Data.PlanarGraph.Dart
+import           Data.PlaneGraph ( Dart, VertexId(..), FaceId(..)
+                                , VertexId', FaceId'
+                                )
+import qualified Data.PlaneGraph as PG
+import           Data.Semigroup.Foldable
+import qualified Data.Vector as V
+
+-- import Data.Coerce
+import           Unsafe.Coerce(unsafeCoerce)
+
+
+import           Data.Ext
+import           Data.Geometry.Point
+import           Data.Geometry.Polygon
+
+--------------------------------------------------------------------------------
+-- * Embedding one subdivision in another one
+
+
+embedAsHolesIn      :: forall t s h v e f r. (Foldable1 t, Functor t)
+                    => t (PlanarSubdivision h v e f r) -- ^ The disjoint "holes"
+                    -> (t f -> f -> f) -- ^ How to merge the face data
+                    -> FaceId' s -- ^ Face in which to embed the given subdivisions
+                    -> PlanarSubdivision s v e f r -- ^ the outer subdivision
+                    -> PlanarSubdivision s v e f r
+embedAsHolesIn hs f = embedAsHoleIn ph' g
+  where
+    -- merges all holes into one subdivision
+    ph' = mergeAllWith const hs
+    -- the new data value to use for the face i
+    g _ = f (fmap (\h -> h^.dataOf (outerFaceId h)) hs)
+
+embedAsHoleIn           :: forall s h v e f r.
+                           PlanarSubdivision h v e f r -- ^ The hole
+                        -> (f -> f -> f) -- ^ How to merge the face data (hole value first)
+                        -> FaceId' s -- ^ Face in which to embed the given subdivisions
+                        -> PlanarSubdivision s v e f r -- ^ the outer subdivision
+                        -> PlanarSubdivision s v e f r
+embedAsHoleIn ph' f i ps = mergeWith' mergeFaces ps ph
+  where
+    -- coerce the worlds to be the same
+    ph :: PlanarSubdivision s v e f r
+    ph = unsafeCoerce ph'
+      -- We are coercing the 'h' into an 's' here. Since these
+      -- parameters are phantom types the representation of the data
+      -- is the same, and hence the unsafeCoerce should be safe here.
+
+    mergeFaces fs1 fs2 = update fs1 i (V.head fs2) <> V.tail fs2
+
+    update fs (FaceId (VertexId j)) h2 = let FaceData hs' x' = h2^.faceDataVal
+                                             g (FaceData hs x) = FaceData (hs' <> hs) (f x' x)
+                                         in fs&ix j.faceDataVal %~ g
+
+  -- (PlanarSubdivision cs vd rd rf)&faceDataOf i %~ updateFData
+  -- where
+  --   -- shift p2
+  --   p2' :: PlanarSubdivision s v e f r
+  --   p2' = unsafeCoerce p2''
+
+  --   p2'' :: PlanarSubdivision h v e f r
+  --   p2'' = shift (numComponents ps) (numVertices ps) (numDarts ps `div` 2) (numFaces ps) ph
+  --       -- we have to shift the number of the *Arcs*. Since every dart consists
+  --       -- of two arcs, we have to shift by numDarts / 2
+
+  --   -- merges all holes into one subdivision
+  --   ph = mergeAllWith const hs
+
+  --   cs = ps^.components <> p2'^.components
+  --   vd = ps^.rawVertexData <> p2'^.rawVertexData
+  --   rd = ps^.rawDartData <> p2'^.rawDartData
+  --   rf = ps^.rawFaceData <> (V.tail $ p2'^.rawFaceData)
+
+  --   -- the new data value to use for the face i
+  --   x = f ofData (ps^.dataOf i)
+  --   ofData = fmap (\h -> h^.dataOf (outerFaceId h)) hs
+
+  --   updateFData (FaceData hs' _) = FaceData (newHs <> hs') x
+  --   newHs = p2'^?!rawFaceData.ix 0.faceDataVal.holes
+
+
+
+
+
+--------------------------------------------------------------------------------
+-- * Merging Disjoint Subdivisions
+
+-- | Merge a pair of *disjoint* planar subdivisions, unifying their
+-- outer face. The given function is used to merge the data
+-- corresponding to the outer face. The subdivisions are merged pairwise, no
+-- guarantees are given about the order in which they are merged. Hence,
+-- it is expected that f is commutative.
+--
+-- running time: \(O(n\log n)\), where \(n\) is the total size of the
+-- subdivisions.
+mergeAllWith   :: Foldable1 t
+               => (f -> f -> f)
+               -> t (PlanarSubdivision s v e f r)
+               -> PlanarSubdivision s v e f r
+mergeAllWith f = foldUp (\l _ r -> mergeWith f l r) _unElem . asBalancedBinLeafTree . toNonEmpty
+
+-- | Merge a pair of *disjoint* planar subdivisions, unifying their
+-- outer face. For the outerface data it simply takes the data of the
+-- first subdivision.
+--
+-- runningtime: \(O(n)\)
+merge :: PlanarSubdivision s v e f r -> PlanarSubdivision s v e f r -> PlanarSubdivision s v e f r
+merge = mergeWith const
+
+-- | Merge a pair of *disjoint* planar subdivisions. In particular,
+-- this function unifies the structure assuming that the two
+-- subdivisions share the outer face.
+--
+-- runningtime: \(O(n)\)
+mergeWith   :: (f -> f -> f) -- ^  how to merge the data of the outer face
+            -> PlanarSubdivision s v e f r
+            -> PlanarSubdivision s v e f r
+            -> PlanarSubdivision s v e f r
+mergeWith f = mergeWith' (mergeFaceData f)
+
+-- | Takes care of actually combining the vectors with data.
+-- only thing left is how to merge the raw face data
+mergeWith'  :: (V.Vector (RawFace s f) -> V.Vector (RawFace s f) -> V.Vector (RawFace s f))
+             -- ^  how to merge the raw face data
+            -> PlanarSubdivision s v e f r
+            -> PlanarSubdivision s v e f r
+            -> PlanarSubdivision s v e f r
+mergeWith' mergeFaces p1 p2 = PlanarSubdivision cs vd rd rf
+  where
+    -- shift p2
+    p2' = shift (numComponents p1) (numVertices p1) (numDarts p1 `div` 2) (numFaces p1 - 1) p2
+        -- we have to shift the number of the *Arcs*. Since every dart
+        -- consists of two arcs, we have to shift by numDarts / 2
+        -- Furthermore, we take numFaces - 1 since we want the first
+        -- *internal* face of p2 (the one with FaceId 1) to correspond with the first free
+        -- position (at index numFaces)
+
+    cs = p1^.components <> p2'^.components
+    vd = p1^.rawVertexData <> p2'^.rawVertexData
+    rd = p1^.rawDartData <> p2'^.rawDartData
+    rf = (p1^.rawFaceData) `mergeFaces` (p2'^.rawFaceData)
+
+mergeFaceData           :: (f -> f -> f)
+                        -> V.Vector (RawFace s f)
+                        -> V.Vector (RawFace s f)
+                        -> V.Vector (RawFace s f)
+mergeFaceData f vs1 vs2 = V.cons h ts
+  where
+    ts = V.tail vs1 <> V.tail vs2
+    h  = let FaceData hs1 x1 = vs1^.to V.head.faceDataVal
+             FaceData hs2 x2 = vs2^.to V.head.faceDataVal
+         in RawFace Nothing $ FaceData (hs1 <> hs2) (f x1 x2)
+
+-- -- | applies a function to the first value of a vector
+-- onHead     :: (a -> a) -> V.Vector a -> V.Vector a
+-- onHead f v = v&ix 0 %~ f
+
+--------------------------------------------------------------------------------
+-- * Implementation Helpers
+
+-- | Shift the indices in a planar subdiv by the given numbers
+-- (componentId;vertexId,darts,faceIds). Note that the result is not really a
+-- valid planar subdivision, so be careful when using this!
+shift                                             :: forall s v e f r.
+                                                     Int -> Int -> Int -> Int
+                                                  -> PlanarSubdivision s v e f r
+                                                  -> PlanarSubdivision s v e f r
+shift nc nv nd nf (PlanarSubdivision cs vd rd rf) = PlanarSubdivision cs' vd' rd' rf'
+  where
+    cs' = (\pg -> pg&PG.vertexData.traverse  %~ incV
+                    &PG.rawDartData.traverse %~ incD
+                    &PG.faceData.traverse    %~ incFi
+          ) <$> cs
+    vd' = (\(Raw ci i x)      -> Raw (incC ci) i x)                    <$> vd
+    rd' = (\(Raw ci i x)      -> Raw (incC ci) i x)                    <$> rd
+    rf' = (\(RawFace fidx fd) -> RawFace (incFIdx <$> fidx) (incF fd)) <$> rf
+
+    incC                 :: ComponentId s -> ComponentId s
+    incC (ComponentId i) = ComponentId $ i + nc
+
+    incV              :: VertexId' s -> VertexId' s
+    incV (VertexId i) = VertexId $ i + nv
+
+    incD                  :: Dart s -> Dart s
+    incD (Dart (Arc a) p) = Dart (Arc $ a + nd) p
+
+    incFIdx (ci,fi) = (incC ci, fi)
+      -- observe that the fi here is the fi with respect to its original graph. Hence,
+      -- we do not want to increase those id's
+
+    incF                 :: FaceData (Dart s) f -> FaceData (Dart s) f
+    incF (FaceData hs f) = FaceData (incD <$> hs) f
+
+    incFi                       :: FaceId' s -> FaceId' s
+    incFi (FaceId (VertexId i)) = FaceId . VertexId $ i + nf
+
+
+--------------------------------------------------------------------------------
+
+data Test = Test
+data Id a = Id a
+
+
+triangle1 :: PlanarSubdivision Test () () Int Rational
+triangle1 = (\pg -> fromSimplePolygon (Id Test) pg 1 0)
+          $ trianglePG1
+trianglePG1 = fromPoints . map ext $ [origin, Point2 200 0, Point2 200 200]
+
+
+triangle2 :: PlanarSubdivision Test () () Int Rational
+triangle2 = (\pg -> fromSimplePolygon (Id Test) pg 2 0)
+          $ trianglePG2
+trianglePG2 = fromPoints . map ext $ [Point2 0 30, Point2 10 30, Point2 10 40]
+
+
+
+triangle4 :: PlanarSubdivision Test () () Int Rational
+triangle4 = (\pg -> fromSimplePolygon (Id Test) pg 1 0)
+          $ trianglePG4
+trianglePG4 = fromPoints . map ext $ [Point2 400 400, Point2 600 400, Point2 600 600]
+
+triangle3 :: PlanarSubdivision Test () () Int Rational
+triangle3 = (\pg -> fromSimplePolygon (Id Test) pg 3 0)
+          $ trianglePG3
+trianglePG3 = fromPoints . map ext $ [Point2 401 530, Point2 410 530, Point2 410 540]
+
+
+myPS = embedAsHoleIn triangle2 const (mkFI 1) triangle1
+       `merge`
+       embedAsHoleIn triangle3 const (mkFI 1) triangle4
+
+
+mkFI :: Int -> FaceId' Test
+mkFI  = FaceId . VertexId
diff --git a/src/Data/Geometry/PlanarSubdivision/Raw.hs b/src/Data/Geometry/PlanarSubdivision/Raw.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Geometry/PlanarSubdivision/Raw.hs
@@ -0,0 +1,98 @@
+{-# LANGUAGE TemplateHaskell #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Data.Geometry.PlnarSubdivision.Raw
+-- Copyright   :  (C) Frank Staals
+-- License     :  see the LICENSE file
+-- Maintainer  :  Frank Staals
+-- Description :  The 'Raw' building block used in a Planar Subdivision
+--
+--------------------------------------------------------------------------------
+module Data.Geometry.PlanarSubdivision.Raw where
+
+import           Control.Lens
+import           Data.Aeson
+import           Data.PlaneGraph (FaceId', Dart)
+import qualified Data.Sequence as Seq
+import           GHC.Generics (Generic)
+
+--------------------------------------------------------------------------------
+
+-- | Helper data type and type family to Wrap a proxy type.
+data Wrap' s
+type family Wrap (s :: k) :: k where
+  Wrap s = Wrap' s
+
+-- | ComponentId type
+newtype ComponentId s = ComponentId { unCI :: Int }
+  deriving (Show,Eq,Ord,Generic,Bounded,Enum,ToJSON,FromJSON)
+
+--------------------------------------------------------------------------------
+
+-- | Helper type for the data that we store in a planar subdivision
+data Raw s ia a = Raw { _compId  :: !(ComponentId s)
+                      , _idxVal  :: !ia
+                      , _dataVal :: !a
+                      } deriving (Eq,Show,Functor,Foldable,Traversable,Generic)
+
+instance (FromJSON ia, FromJSON a) => FromJSON (Raw s ia a)
+instance (ToJSON ia, ToJSON a) => ToJSON (Raw s ia a) where
+  toEncoding = genericToEncoding defaultOptions
+
+-- | get the dataVal of a Raw
+dataVal :: Lens (Raw s ia a) (Raw s ia b) a b
+dataVal = lens (\(Raw _ _ x) -> x) (\(Raw c i _) y -> Raw c i y)
+
+--------------------------------------------------------------------------------
+
+-- | The Face data consists of the data itself and a list of holes
+data FaceData h f = FaceData { _holes :: (Seq.Seq h)
+                             , _fData :: !f
+                             } deriving (Show,Eq,Ord,Functor,Foldable,Traversable,Generic)
+makeLenses ''FaceData
+
+instance Bifunctor FaceData where
+  bimap f g (FaceData hs x) = FaceData (fmap f hs) (g x)
+
+
+instance (FromJSON h, FromJSON f) => FromJSON (FaceData h f)
+instance (ToJSON h, ToJSON f)     => ToJSON (FaceData h f) where
+  toEncoding = genericToEncoding defaultOptions
+
+--------------------------------------------------------------------------------
+
+
+
+-- | Face data, if the face is an inner face, store the component and
+-- faceId of it.  If not, this face must be the outer face (and thus
+-- we can find all the face id's it correponds to through the
+-- FaceData).
+data RawFace s f = RawFace { _faceIdx     :: !(Maybe (ComponentId s, FaceId' (Wrap s)))
+                           , _faceDataVal :: !(FaceData (Dart s) f)
+                           } deriving (Eq,Show,Functor,Foldable,Traversable,Generic)
+makeLenses ''RawFace
+
+
+
+
+-- -- | A FaceIdx is a pair of componentId and FaceId
+-- data FaceIdx s = RawIdx !(ComponentId s) -- ^ component Id
+--                         !(FaceId' (Wrap s)) -- ^ Face index inside the component
+--                deriving (Eq,Show,Generic)
+
+-- instance FromJSON (FaceIdx s)
+-- instance ToJSON (FaceIdx s) where
+--   toEncoding = genericToEncoding defaultOptions
+
+-- data RawFace s a = RawFace { _internalFaceIn :: !(Maybe (FaceIdx s))
+--                            , _externalFaceIn :: ![FaceIdx s]
+--                            , _faceDataValue  :: !a
+--                            } deriving (Eq,Show,Functor,Foldable,Traversable,Generic)
+
+-- instance FromJSON f => FromJSON (RawFace s f)
+-- instance ToJSON f => ToJSON (RawFace s f) where
+--   toEncoding = genericToEncoding defaultOptions
+
+-- -- | get the data value of a raw face.
+-- faceDataVal :: Lens (RawFace s a) (RawFace s b) a b
+-- faceDataVal = lens _faceDataValue (\(RawFace i es _) x -> RawFace i es x)
diff --git a/src/Data/Geometry/Point.hs b/src/Data/Geometry/Point.hs
--- a/src/Data/Geometry/Point.hs
+++ b/src/Data/Geometry/Point.hs
@@ -29,6 +29,7 @@
 import           Text.ParserCombinators.ReadP (ReadP, string,pfail)
 import           Text.ParserCombinators.ReadPrec (lift)
 import           Text.Read (Read(..),readListPrecDefault, readPrec_to_P,minPrec)
+import           Test.QuickCheck(Arbitrary)
 
 
 --------------------------------------------------------------------------------
@@ -62,12 +63,13 @@
               Just p -> pure p
               _      -> pfail
 
-deriving instance (Eq r, Arity d)     => Eq (Point d r)
-deriving instance (Ord r, Arity d)    => Ord (Point d r)
-deriving instance Arity d             => Functor (Point d)
-deriving instance Arity d             => Foldable (Point d)
-deriving instance Arity d             => Traversable (Point d)
-deriving instance (Arity d, NFData r) => NFData (Point d r)
+deriving instance (Eq r, Arity d)        => Eq (Point d r)
+deriving instance (Ord r, Arity d)       => Ord (Point d r)
+deriving instance Arity d                => Functor (Point d)
+deriving instance Arity d                => Foldable (Point d)
+deriving instance Arity d                => Traversable (Point d)
+deriving instance (Arity d, NFData r)    => NFData (Point d r)
+deriving instance (Arity d, Arbitrary r) => Arbitrary (Point d r)
 
 type instance NumType (Point d r) = r
 type instance Dimension (Point d r) = d
diff --git a/src/Data/Geometry/Polygon.hs b/src/Data/Geometry/Polygon.hs
--- a/src/Data/Geometry/Polygon.hs
+++ b/src/Data/Geometry/Polygon.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE ScopedTypeVariables  #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Data.Geometry.Polygon
@@ -11,8 +10,11 @@
 --------------------------------------------------------------------------------
 module Data.Geometry.Polygon where
 
+import           Algorithms.Geometry.LinearProgramming.LP2DRIC
+import           Algorithms.Geometry.LinearProgramming.Types
 import           Control.DeepSeq
 import           Control.Lens hiding (Simple)
+import           Control.Monad.Random.Class
 import           Data.Bifoldable
 import           Data.Bifunctor
 import           Data.Bitraversable
@@ -22,24 +24,31 @@
 import           Data.Geometry.Boundary
 import           Data.Geometry.Box
 import           Data.Geometry.Line
+import           Data.Geometry.HalfSpace(rightOf)
 import           Data.Geometry.LineSegment
 import           Data.Geometry.Point
 import           Data.Geometry.Properties
 import           Data.Geometry.Transformation
+import           Data.Geometry.Triangle (Triangle(..), inTriangle)
 import           Data.Geometry.Vector
+import qualified Data.List as List
+import           Data.List.NonEmpty (NonEmpty(..))
 import qualified Data.List.NonEmpty as NonEmpty
-import           Data.Maybe (mapMaybe)
-import           Data.Proxy
-import           Data.Semigroup(sconcat)
+import           Data.Maybe (mapMaybe, catMaybes)
+import           Data.Ord (comparing)
+import           Data.Semigroup (sconcat)
+import           Data.Semigroup.Foldable
 import qualified Data.Sequence as Seq
 import           Data.Util
 import           Data.Vinyl.CoRec (asA)
 
+
 --------------------------------------------------------------------------------
 -- * Polygons
 
 {- $setup
 >>> :{
+-- import qualified Data.CircularSeq as C
 let simplePoly :: SimplePolygon () Rational
     simplePoly = SimplePolygon . C.fromList . map ext $ [ point2 0 0
                                                         , point2 10 0
@@ -112,6 +121,14 @@
 type instance IntersectionOf (Line 2 r) (Boundary (Polygon t p r)) =
   '[Seq.Seq (Either (Point 2 r) (LineSegment 2 () r))]
 
+type instance IntersectionOf (Point 2 r) (Polygon t p r) = [NoIntersection, Point 2 r]
+
+instance (Fractional r, Ord r) => (Point 2 r) `IsIntersectableWith` (Polygon t p r) where
+  nonEmptyIntersection = defaultNonEmptyIntersection
+  q `intersects` pg = q `inPolygon` pg /= Outside
+  q `intersect` pg | q `intersects` pg = coRec q
+                   | otherwise         = coRec NoIntersection
+
 -- instance IsIntersectableWith (Line 2 r) (Boundary (Polygon t p r)) where
 --   nonEmptyIntersection _ _ (CoRec xs) = null xs
 --   l `intersect` (Boundary (SimplePolygon vs)) =
@@ -172,9 +189,9 @@
 -- they appear!
 polygonVertices                      :: Polygon t p r
                                      -> NonEmpty.NonEmpty (Point 2 r :+ p)
-polygonVertices (SimplePolygon vs)   = C.toNonEmpty vs
+polygonVertices (SimplePolygon vs)   = toNonEmpty vs
 polygonVertices (MultiPolygon vs hs) =
-  sconcat $ C.toNonEmpty vs NonEmpty.:| map polygonVertices hs
+  sconcat $ toNonEmpty vs NonEmpty.:| map polygonVertices hs
 
 
 -- | Creates a simple polygon from the given list of vertices.
@@ -287,7 +304,7 @@
 
     -- Given a line segment, compute the intersection point (if a point) with the
     -- line l
-    intersectionPoint = asA (Proxy :: Proxy (Point 2 r)) . (`intersect` l)
+    intersectionPoint = asA @(Point 2 r) . (`intersect` l)
 
     -- Count the number of intersections that the horizontal line through q
     -- maxes with the polygon, that are strictly to the left and strictly to
@@ -370,6 +387,75 @@
     sum' = F.foldl' (^+^) zero
 
 
+-- | Pick a  point that is inside the polygon.
+--
+-- (note: if the polygon is degenerate; i.e. has <3 vertices, we report a
+-- vertex of the polygon instead.)
+--
+-- pre: the polygon is given in CCW order
+--
+-- running time: \(O(n)\)
+pickPoint    :: (Ord r, Fractional r) => Polygon p t r -> Point 2 r
+pickPoint pg | isTriangle pg = centroid . SimplePolygon $ pg^.outerBoundary
+             | otherwise     = let LineSegment' (p :+ _) (q :+ _) = findDiagonal pg
+                               in p .+^ (0.5 *^ (q .-. p))
+
+-- | Test if the polygon is a triangle
+--
+-- running time: \(O(1)\)
+isTriangle :: Polygon p t r -> Bool
+isTriangle = \case
+    SimplePolygon vs   -> go vs
+    MultiPolygon vs [] -> go vs
+    MultiPolygon _  _  -> False
+  where
+    go vs = case toNonEmpty vs of
+              (_ :| [_,_]) -> True
+              _            -> False
+
+-- | Find a diagonal of the polygon.
+--
+-- pre: the polygon is given in CCW order
+--
+-- running time: \(O(n)\)
+findDiagonal    :: (Ord r, Fractional r) => Polygon t p r -> LineSegment 2 p r
+findDiagonal pg = List.head . catMaybes . F.toList $ diags
+     -- note that a diagonal is guaranteed to exist, so the usage of head is safe.
+  where
+    vs      = pg^.outerBoundary
+    diags   = C.zip3LWith f (C.rotateL vs) vs (C.rotateR vs)
+    f u v w = case ccw (u^.core) (v^.core) (w^.core) of
+                CCW      -> Just $ findDiag u v w
+                            -- v is a convex vertex, so find a diagonal
+                            -- (either uw) or from v to a point inside the
+                            -- triangle
+                CW       -> Nothing -- v is a reflex vertex
+                CoLinear -> Nothing -- colinear vertex!?
+
+    -- we test if uw is a diagonal by figuring out if there is a vertex
+    -- strictly inside the triangle t. If there is no such vertex then uw must
+    -- be a diagonal (i.e. uw intersects the polygon boundary iff there is a
+    -- vtx inside t).  If there are vertices inside the triangle, we find the
+    -- one z furthest from the line(segment) uw. It then follows that vz is a
+    -- diagonal. Indeed this is pretty much the argument used to prove that any
+    -- polygon can be triangulated. See BKOS Chapter 3 for details.
+    findDiag u v w = let t  = Triangle u v w
+                         uw = ClosedLineSegment u w
+                     in maybe uw (ClosedLineSegment v)
+                      . safeMaximumOn (distTo $ supportingLine uw)
+                      . filter (\(z :+ _) -> z `inTriangle` t == Inside)
+                      . F.toList . polygonVertices
+                      $ pg
+
+    distTo l (z :+ _) = sqDistanceTo z l
+
+
+safeMaximumOn   :: Ord b => (a -> b) -> [a] -> Maybe a
+safeMaximumOn f = \case
+  [] -> Nothing
+  xs -> Just $ List.maximumBy (comparing f) xs
+
+
 -- | Test if the outer boundary of the polygon is in clockwise or counter
 -- clockwise order.
 --
@@ -428,3 +514,20 @@
 numberVertices :: Polygon t p r -> Polygon t (SP Int p) r
 numberVertices = snd . bimapAccumL (\a p -> (a+1,SP a p)) (\a r -> (a,r)) 0
   -- TODO: Make sure that this does not have the same issues as foldl vs foldl'
+
+--------------------------------------------------------------------------------
+
+-- | Test if a Simple polygon is star-shaped. Returns a point in the kernel
+-- (i.e. from which the entire polygon is visible), if it exists.
+--
+--
+-- \(O(n)\) expected time
+isStarShaped    :: (MonadRandom m, Ord r, Fractional r)
+                => SimplePolygon p r -> m (Maybe (Point 2 r))
+isStarShaped (toClockwiseOrder -> pg) =
+    solveBoundedLinearProgram $ LinearProgram c (F.toList hs)
+  where
+    c  = pg^.outerVertex 1.core.vector
+    -- the first vertex is the intersection point of the two supporting lines
+    -- bounding it, so the first two edges bound the shape in this sirection
+    hs = fmap (rightOf . supportingLine) . outerBoundaryEdges $ pg
diff --git a/src/Data/Geometry/PrioritySearchTree.hs b/src/Data/Geometry/PrioritySearchTree.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Geometry/PrioritySearchTree.hs
@@ -0,0 +1,145 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Data.Geometry.PrioritySearchTree
+-- Copyright   :  (C) Frank Staals
+-- License     :  see the LICENSE file
+-- Maintainer  :  Frank Staals
+--
+-- Implements a linear size data structure for three-sided range
+-- queries in \(\mathbb{R}^2\). See
+--
+-- McCreight, Edward (May 1985). "Priority search trees".
+-- SIAM Journal on Scientific Computing. 14 (2): 257-276.
+--
+-- for more details.
+--
+--------------------------------------------------------------------------------
+module Data.Geometry.PrioritySearchTree( PrioritySearchTree(..)
+                                       , createTree
+                                       , queryRange
+                                       ) where
+
+import           Algorithms.Geometry.ClosestPair.DivideAndConquer (mergeSortedListsBy)
+import           Control.Lens
+import           Data.BinaryTree
+import           Data.Ext
+import           Data.Geometry.Point
+import           Data.List.NonEmpty (NonEmpty(..))
+import qualified Data.List.NonEmpty as NonEmpty
+import           Data.Ord (comparing, Down(..))
+import           Data.Range
+import qualified Data.Set as Set
+import           Data.Util
+--------------------------------------------------------------------------------
+
+-- | Internal nodes store the max x-value from the left subtree and
+-- the point that has globally the max-y coordinate.
+data NodeData p r = NodeData { _splitPoint :: !r
+                             , _maxVal     :: !(Maybe (Point 2 r :+ p))
+                             } deriving (Show,Eq)
+
+instance Bifunctor NodeData where
+  bimap f g (NodeData x m) = NodeData (g x) ((bimap (fmap g) f) <$> m)
+
+maxVal :: Lens' (NodeData p r) (Maybe (Point 2 r :+ p))
+maxVal = lens _maxVal (\(NodeData x _) m -> NodeData x m)
+
+
+type LeafData p r = SP r [Point 2 r :+ p]
+
+--------------------------------------------------------------------------------
+
+-- | A priority search tree storing points in \(\mathbb{R}^2) that
+-- have an additional payload of type p.
+newtype PrioritySearchTree p r =
+    PrioritySearchTree { _unPrioritySearchTree :: BinLeafTree (NodeData p r) (LeafData p r) }
+  deriving (Show,Eq)
+
+instance Bifunctor PrioritySearchTree where
+  -- ^ note that this is not necessarily safe, as mapping over r can
+  -- invalidate the invariants. Users are responsible for making sure
+  -- this does not happen.
+  bimap f g (PrioritySearchTree t) = PrioritySearchTree . bimap (bimap f g) h $ t
+    where
+      h = bimap g (map $ bimap (fmap g) f)
+
+--------------------------------------------------------------------------------
+
+-- | Creates a Priority Search Tree for 3-sided range queries of the
+-- form \([x_l,x_r] \times [y,\infty)\).
+--
+-- the base tree will be static.
+--
+-- pre: all points have unique x-coordinates
+--
+-- running time: \(O(n\log n)\)
+createTree     :: Ord r => NonEmpty (Point 2 r :+ p) -> PrioritySearchTree p r
+createTree pts = PrioritySearchTree $ foldr insert t pts
+  where
+    t = view _1
+      . foldUp (\(SP l k) _ (SP r m) -> SP (Node l (NodeData k Nothing) r) m)
+               (\(Elem x) -> SP (Leaf (SP x [])) x)
+      . asBalancedBinLeafTree . NonEmpty.fromList
+      . Set.toAscList . Set.fromList -- remove duplicates + sort
+      . map (^.core.xCoord) . NonEmpty.toList $ pts
+
+-- | Inserts a point into the priority search tree
+--
+-- running time: \(O(\log n)\)
+insert                          :: Ord r
+                                => Point 2 r :+ p
+                                -> BinLeafTree (NodeData p r) (LeafData p r)
+                                -> BinLeafTree (NodeData p r) (LeafData p r)
+insert p = \case
+    Leaf (SP x ps)                                -> Leaf $ SP x (p:ps)
+      -- TODO: In case we have multiple points with the same x-coord, these points
+      -- are not really in decreasing y-order.
+    Node l d r | py > d^?maxVal._Just.core.yCoord ->
+                   node' l (d&maxVal .~ Just p) r (d^.maxVal)
+                   -- push the existing point down
+               | otherwise                 ->
+                   node' l d                             r (Just p)
+  where
+    py = Just $ p^.core.yCoord
+
+    node' l d@(NodeData k _) r = \case
+      Nothing                      -> Node l d r -- no new insertion necessary anymore
+      Just q | q^.core.xCoord <= k -> Node (insert q l) d r
+             | otherwise           -> Node l d (insert q r)
+
+
+
+-- | Given a three sided range \([x_l,x_r],y\) report all points in
+-- the range \([x_l,x_r] \times [y,\infty)\). The points are reported
+-- in decreasing order of \(y\)-coordinate.
+--
+-- running time: \(O(\log n + k)\), where \(k\) is the number of reported points.
+queryRange   :: Ord r
+             => (Range r,r) -> PrioritySearchTree p r -> [Point 2 r :+ p]
+queryRange q = queryRange' q . _unPrioritySearchTree
+
+-- | Implementation fo the query function.
+queryRange'           :: Ord r
+                      => (Range r,r) -> BinLeafTree (NodeData p r) (LeafData p r)
+                      -> [Point 2 r :+ p]
+queryRange' q@(qr, y) = \case
+    Leaf (SP x pts) | x `inRange` qr                     ->
+                        takeWhile (\p -> p^.core.yCoord >= y) pts
+                    | otherwise                          -> []
+    Node _ (NodeData _ Nothing)  _                       -> []
+      -- nothing stored here, or lower
+    Node l (NodeData x (Just p)) r | p^.core.yCoord >= y -> mrep p <> merge (goL x l) (goR x r)
+                                   | otherwise           -> []
+                                     -- all stuff below here has lower
+                                     -- y-coord, so outside the range.
+  where
+    mrep p | (p^.core.xCoord) `inRange` qr = [p]
+           | otherwise                     = []
+
+    goL x t' | qr^.lower <= Closed x = queryRange' q t'
+             | otherwise             = []
+
+    goR x t' | Open x < qr^.upper    = queryRange' q t'
+             | otherwise             = []
+
+    merge = mergeSortedListsBy $ comparing (Down . (^.core.yCoord))
diff --git a/src/Data/Geometry/Properties.hs b/src/Data/Geometry/Properties.hs
--- a/src/Data/Geometry/Properties.hs
+++ b/src/Data/Geometry/Properties.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE ImpredicativeTypes #-}
 {-# LANGUAGE UnicodeSyntax #-}
 {-# LANGUAGE DefaultSignatures #-}
@@ -13,15 +12,15 @@
 -- Intersection types.
 --
 --------------------------------------------------------------------------------
-module Data.Geometry.Properties where
+module Data.Geometry.Properties( module Data.Intersection
+                               , Dimension
+                               , NumType
+                               ) where
 
-import Data.Maybe (isNothing)
-import Data.Proxy
-import Data.Vinyl.CoRec
-import Data.Vinyl.Core
-import Data.Vinyl.Functor
-import Data.Vinyl.Lens
 import GHC.TypeLits
+import Data.Ext
+import Data.Intersection
+import Data.Range
 
 -------------------------------------------------------------------------------
 
@@ -32,59 +31,19 @@
 -- | A type family for types that have an associated numeric type.
 type family NumType t :: *
 
-type instance NumType [t] = NumType t
+--------------------------------------------------------------------------------
 
--- | A simple data type expressing that there are no intersections
-data NoIntersection = NoIntersection deriving (Show,Read,Eq,Ord)
 
--- | The result of interesecting two geometries is a CoRec,
-type Intersection g h = CoRec Identity (IntersectionOf g h)
+type instance NumType   (core :+ ext) = NumType   core
+type instance Dimension (core :+ ext) = Dimension core
 
--- | The type family specifying the list of possible result types of an
--- intersection.
-type family IntersectionOf g h :: [*]
+type instance NumType [t] = NumType t
+type instance NumType (Range a) = a
 
--- | Helper to produce a corec
-coRec :: (a ∈ as) => a -> CoRec Identity as
-coRec = CoRec . Identity
 
 
-class IsIntersectableWith g h where
-  intersect :: g -> h -> Intersection g h
 
-  -- | g `intersects` h  <=> The intersection of g and h is non-empty.
-  --
-  -- The default implementation computes the intersection of g and h,
-  -- and uses nonEmptyIntersection to determine if the intersection is
-  -- non-empty.
-  intersects :: g -> h -> Bool
-  g `intersects` h = nonEmptyIntersection (Identity g) (Identity h) $ g `intersect` h
 
-  -- | Helper to implement `intersects`.
-  nonEmptyIntersection :: proxy g -> proxy h -> Intersection g h -> Bool
-  {-# MINIMAL intersect, nonEmptyIntersection #-}
-
-  default nonEmptyIntersection :: ( NoIntersection ∈ IntersectionOf g h
-                                  , RecApplicative (IntersectionOf g h)
-                                  )
-                                  => proxy g -> proxy h -> Intersection g h -> Bool
-  nonEmptyIntersection = defaultNonEmptyIntersection
-
-
--- | When using IntersectionOf we may need some constraints that are always
--- true anyway.
-type AlwaysTrueIntersection g h = RecApplicative (IntersectionOf g h)
-
-
--- | Returns True iff the result is *not* a NoIntersection
-defaultNonEmptyIntersection :: forall g h proxy.
-                            ( NoIntersection ∈ IntersectionOf g h
-                            , RecApplicative (IntersectionOf g h)
-                            )
-                            => proxy g -> proxy h -> Intersection g h -> Bool
-defaultNonEmptyIntersection _ _ = isNothing . asA (Proxy :: Proxy NoIntersection)
-
-
 -- type IsAlwaysTrueFromEither a b = (VTL.RIndex b [a,b] ~ ((VTL.S VTL.Z)))
 --                                   -- VTL.RIndex b [a,b] ~ ((VTL.S VTL.Z))(b  ∈ [a,b])
 
@@ -104,7 +63,7 @@
 -- fromEither' (Left x)  = coRec x
 -- fromEither' (Right x) = coRec x
 
-type family Union g h :: *
+-- type family Union g h :: *
 
-class IsUnionableWith g h where
-  union :: g -> h -> Union g h
+-- class IsUnionableWith g h where
+--   union :: g -> h -> Union g h
diff --git a/src/Data/Geometry/RangeTree.hs b/src/Data/Geometry/RangeTree.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Geometry/RangeTree.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE UndecidableInstances #-}
+module Data.Geometry.RangeTree where
+
+import           Control.Lens hiding (element)
+import           Data.BinaryTree (Measured(..))
+import           Data.Ext
+import qualified Data.Foldable as F
+import           Data.Geometry.Point
+import qualified Data.Geometry.RangeTree.Generic as GRT
+import           Data.Geometry.RangeTree.Measure
+import           Data.Geometry.Vector
+import           Data.List.NonEmpty (NonEmpty(..))
+import qualified Data.List.NonEmpty as NonEmpty
+import           Data.Proxy
+import           Data.Range
+import           Data.Semigroup.Foldable
+import           Data.Vector.Fixed.Cont (Peano, PeanoNum(..))
+import           GHC.TypeLits
+import           Prelude hiding (last,init,head)
+
+--------------------------------------------------------------------------------
+
+type RangeTree d = RT d d
+
+newtype RT i d v p r =
+  RangeTree { _unRangeTree :: GRT.RangeTree (Assoc i d v p r) (Leaf i d v p r) r }
+
+deriving instance (Show r, Show (Assoc i d v p r), Show (Leaf i d v p r)) => Show (RT i d v p r)
+deriving instance (Eq r,   Eq   (Assoc i d v p r), Eq   (Leaf i d v p r)) => Eq   (RT i d v p r)
+
+newtype Leaf i d v p r = Leaf { _getPts :: [Point d r :+ p]} deriving (Semigroup,Monoid)
+
+deriving instance (Show r, Show p, Arity d) => Show (Leaf i d v p r)
+deriving instance (Eq r, Eq p,     Arity d) => Eq   (Leaf i d v p r)
+
+
+type family AssocT i d v p r where
+  AssocT 1 d v p r = v (Point d r :+ p)
+  AssocT 2 d v p r = Maybe (RT 1 d v p r)
+
+newtype Assoc i d v p r = Assoc { unAssoc :: AssocT i d v p r }
+
+deriving instance Show (AssocT i d v p r) => Show (Assoc i d v p r)
+deriving instance Eq   (AssocT i d v p r) => Eq   (Assoc i d v p r)
+
+
+type RTMeasure v d p r = (LabeledMeasure v, Semigroup (v (Point d r :+ p)))
+
+instance RTMeasure v d p r => Semigroup (Assoc 1 d v p r) where
+  (Assoc l) <> (Assoc r) = Assoc $ l <> r
+
+instance (RTMeasure v d p r, Ord r, 1 <= d, Arity d) => Semigroup (Assoc 2 d v p r) where
+  (Assoc l) <> (Assoc r) = Assoc . createRangeTree'' $ toList l <> toList r
+    where
+      toList = maybe [] (F.toList . toAscList)
+      createRangeTree'' = fmap createRangeTree1 . NonEmpty.nonEmpty
+
+
+
+instance (RTMeasure v d p r, Ord r, 1 <= d, Arity d) => Monoid (Assoc 2 d v p r) where
+  mempty = Assoc Nothing
+
+----------------------------------------
+
+instance ( RTMeasure v d p r
+         ) => Measured (Assoc 1 d v p r) (Leaf 1 d v p r) where
+  measure (Leaf pts) = Assoc . labeledMeasure $ pts
+
+instance ( RTMeasure v d p r, Ord r, 1 <= d, Arity d
+         ) => Measured (Assoc 2 d v p r) (Leaf 2 d v p r) where
+  measure (Leaf pts) = Assoc . createRangeTree'' $ pts
+    where
+      createRangeTree'' = fmap createRangeTree1 . NonEmpty.nonEmpty
+
+----------------------------------------
+
+createRangeTree' :: (Ord r, RTMeasure v d p r
+                   -- , Arity d, Arity (d+1), d ~ (d' + 1), Arity d'
+                   -- , Measured (Assoc d v p r) (Leaf d v p r)
+                   )
+                 => [Point d r :+ p] -> Maybe (RT i d v p r)
+createRangeTree' = fmap createRangeTree . NonEmpty.nonEmpty
+
+
+createRangeTree :: (Ord r, RTMeasure v d p r
+                   -- , Arity d, Arity (d+1), d ~ (d' + 1), Arity d'
+                   -- , Measured (Assoc d v p r) (Leaf d v p r)
+                   )
+                => NonEmpty (Point d r :+ p) -> RT i d v p r
+createRangeTree = undefined
+-- RangeTree . GRT.createTree
+--                 . fmap (\p -> last (p^.core.vector) :+ Leaf [p])
+
+
+--------------------------------------------------------------------------------
+
+-- | Gets all points in the range tree
+toAscList :: RT i d v p r -> [Point d r :+ p]
+toAscList = concatMap (^.extra.to _getPts) . F.toList . GRT.toAscList . _unRangeTree
+
+
+--------------------------------------------------------------------------------
+
+createRangeTree1 :: (Ord r, RTMeasure v d p r, 1 <= d, Arity d)
+                 => NonEmpty (Point d r :+ p) -> RT 1 d v p r
+createRangeTree1 = RangeTree . GRT.createTree
+                . fmap (\p -> head (p^.core.vector) :+ Leaf [p])
+
+createRangeTree2 :: forall v d r p. (Ord r, RTMeasure v d p r, Arity d, 2 <= d
+                                    , 1 <= d -- this one is kind of silly
+                 ) => NonEmpty (Point d r :+ p) -> RT 2 d v p r
+createRangeTree2 = RangeTree . GRT.createTree
+                 . fmap (\p -> p^.core.coord (Proxy :: Proxy 2) :+ Leaf [p])
+
+--------------------------------------------------------------------------------
+-- * Querying
+
+
+search   :: ( Ord r, Monoid (v (Point d r :+ p)), Query i d)
+         => Vector d (Range r) -> RT i d v p r -> v (Point d r :+ p)
+search r = mconcat . search' r
+
+
+class (i <= d, Arity d) => Query i d where
+  search' :: Ord r => Vector d (Range r) -> RT i d v p r -> [v (Point d r :+ p)]
+
+instance (1 <= d, Arity d) => Query 1 d where
+  search' qr = map unAssoc . GRT.search' r . _unRangeTree
+    where
+      r = qr^.element (Proxy :: Proxy 0)
+
+instance ( 1 <= d, i <= d, Query (i-1) d, Arity d
+         , i ~ 2
+         ) => Query 2 d where
+  search' qr = concatMap (maybe [] (search' qr) . unAssoc) . GRT.search' r . _unRangeTree
+    where
+      r = qr^.element (Proxy :: Proxy (i-1))
diff --git a/src/Data/Geometry/RangeTree/Generic.hs b/src/Data/Geometry/RangeTree/Generic.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Geometry/RangeTree/Generic.hs
@@ -0,0 +1,149 @@
+module Data.Geometry.RangeTree.Generic where
+
+import           Control.Lens
+import           Data.BinaryTree
+import           Data.Ext
+import           Data.Geometry.Point
+import           Data.Geometry.Properties
+import           Data.Geometry.RangeTree.Measure
+import           Data.List.NonEmpty (NonEmpty(..))
+import qualified Data.List.NonEmpty as NonEmpty
+import           Data.Range
+import           Data.Semigroup
+import           Data.Semigroup.Foldable
+import qualified Data.Set as Set
+import           Data.Util
+
+--------------------------------------------------------------------------------
+
+data NodeData v r = NodeData { _minVal     :: !(Min r)
+                             , _maxVal     :: !(Max r)
+                             , _assoc      :: !v
+                             } deriving (Show,Eq,Functor)
+
+instance (Semigroup v, Ord r) => Semigroup (NodeData v r) where
+  NodeData mi ma v <> NodeData mi' ma' v' = NodeData (mi <> mi') (ma <> ma') (v <> v')
+
+
+-- | A generic (1D) range tree. The 'r' parameter indicates the type
+-- of the coordinates of the points. The 'q' represents any associated
+-- data values with those points (stored in the leaves), and the 'v'
+-- types represents the data stored at internal nodes.
+newtype RangeTree v q r =
+  RangeTree { _unRangeTree :: BinLeafTree (NodeData v r) (NodeData (v,q) r) }
+    deriving (Show,Eq)
+
+
+
+--------------------------------------------------------------------------------
+
+-- | Creates a range tree
+createTree   :: ( Ord r
+                , Measured v p
+                , Semigroup p
+                )
+             => NonEmpty (r :+ p)
+             -> RangeTree v p r
+createTree = createTree'
+           . fmap (\pts -> let x =  pts^.to NonEmpty.head.core
+                           in x :+ (sconcat . fmap (^.extra) $ pts))
+           . NonEmpty.groupAllWith1 (^.core) -- sort and group on r value
+
+-- | pre: input is sorted and grouped by x-coord
+createTree'     :: (Ord r, Measured v p)
+                => NonEmpty (r :+ p)
+                -> RangeTree v p r
+createTree' pts = RangeTree t
+  where
+    t = view _1
+      . foldUp (\(SP l dl) _ (SP r dr) -> let d = dl <> dr in SP (Node l d r) d
+               )
+               (\(Elem (x :+ ld)) -> let v = measure ld
+                                     in SP (Leaf $ NodeData (Min x) (Max x) (v,ld))
+                                           (NodeData (Min x) (Max x) v)
+               )
+      . asBalancedBinLeafTree $ pts
+
+--------------------------------------------------------------------------------
+-- * Converting to a List
+
+-- | Lists all points in increasing order
+--
+-- running time: \(O(n)\)
+toAscList :: RangeTree v p r -> NonEmpty (r :+ p)
+toAscList = fmap (\(NodeData (Min x) _ (_,d)) -> x :+ d) . toNonEmpty . _unRangeTree
+
+--------------------------------------------------------------------------------
+-- * Querying x
+
+-- | Range search
+--
+-- running time: \(O(\log n)\)
+search    :: (Ord r, Monoid v) => Range r -> RangeTree v p r -> v
+search qr = mconcat . search' qr
+
+-- | Range search, report the (associated data structures of the)
+-- \(O(\log n)\) nodes that form the disjoint union of the range we
+-- are querying with.
+--
+-- running time: \(O(\log n)\)
+search'    :: Ord r
+           => Range r -> RangeTree v p r -> [v]
+search' qr = search'' qr . _unRangeTree
+
+-- | The actual search
+search''    :: Ord r
+            => Range r
+            -> BinLeafTree (NodeData v r) (NodeData (v,q) r)
+            -> [v]
+search'' qr t = case t of
+    Leaf (NodeData _ _ (v,_)) | qr `covers` rangeOf t -> [v]
+                              | otherwise             -> []
+    Node l (NodeData _ _ v) r | qr `covers` rangeOf t -> [v]
+                              | otherwise             -> msearch l <> msearch r
+  where
+    msearch t' | qr `intersects` rangeOf t' = search'' qr t'
+               | otherwise                  = []
+
+
+-- | Helper function to get the range of  a binary leaf tree
+rangeOf              :: BinLeafTree (NodeData v r) (NodeData v' r) -> Range r
+rangeOf (Leaf d)     = rangeOf' d
+rangeOf (Node _ d _) = rangeOf' d
+
+-- | Get the range of a node
+rangeOf'                                :: NodeData v r -> Range r
+rangeOf' (NodeData (Min mi) (Max ma) _) = ClosedRange mi ma
+
+
+--------------------------------------------------------------------------------
+-- * Updates
+
+-- support inserting and deleting points, assuming that the x-coord already exists.
+
+
+--------------------------------------------------------------------------------
+
+
+createReportingTree :: Ord r => NonEmpty (r :+ [p]) -> RangeTree (Report p) (Report p) r
+createReportingTree = createTree . fmap (&extra %~ Report)
+
+report    :: (Ord r) => Range r -> RangeTree (Report p) q r -> [p]
+report qr = reportList . search qr
+
+
+----------------------------------------
+
+newtype CountOf p = CountOf [p]
+  deriving (Show,Eq,Ord,Functor,Foldable,Semigroup,Monoid)
+
+instance Measured (Count p) (CountOf p) where
+  measure (CountOf xs) = Count $ length xs
+
+createCountingTree :: Ord r => NonEmpty (r :+ [p]) -> RangeTree (Count p) (CountOf p) r
+createCountingTree = createTree . fmap (&extra %~ CountOf)
+
+-- | Perform a counting query
+--
+count    :: Ord r => Range r -> RangeTree (Count p) q r -> Int
+count qr = getCount . search qr
diff --git a/src/Data/Geometry/RangeTree/Measure.hs b/src/Data/Geometry/RangeTree/Measure.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Geometry/RangeTree/Measure.hs
@@ -0,0 +1,59 @@
+module Data.Geometry.RangeTree.Measure where
+
+import           Data.BinaryTree(Measured(..))
+import Data.Functor.Product(Product(..))
+import Data.Functor.Classes
+
+--------------------------------------------------------------------------------
+
+class LabeledMeasure v where
+  labeledMeasure :: [a] -> v a
+
+--------------------------------------------------------------------------------
+
+newtype Report p = Report { reportList :: [p] }
+  deriving (Show,Eq,Ord,Functor,Foldable,Semigroup,Monoid,Show1,Eq1)
+
+instance Measured (Report p) (Report p) where
+  measure = id
+
+instance LabeledMeasure Report where
+  labeledMeasure = Report
+
+--------------------------------------------------------------------------------
+
+newtype Count a = Count { getCount :: Int } deriving (Show,Read,Eq,Ord)
+
+instance Show1 Count where
+  liftShowsPrec _  _ = showsPrec
+instance Eq1 Count where
+  liftEq _ (Count a) (Count b) = a == b
+
+instance LabeledMeasure Count where
+  labeledMeasure = Count . length
+
+instance Monoid (Count a) where
+  mempty = Count 0
+
+instance Semigroup (Count a) where
+  (Count l) <> (Count r) = Count $ l + r
+
+--------------------------------------------------------------------------------
+
+type (:*:) l r = Product l r
+
+instance (LabeledMeasure l, LabeledMeasure r) => LabeledMeasure (l :*: r) where
+  labeledMeasure xs = Pair (labeledMeasure xs) (labeledMeasure xs)
+
+instance (Semigroup (l a), Semigroup (r a)) => Semigroup ((l :*: r) a) where
+  (Pair l r) <> (Pair l' r') = Pair (l <> l') (r <> r')
+
+instance (Monoid (l a), Monoid (r a)) => Monoid ((l :*: r) a) where
+  mempty = Pair mempty mempty
+
+
+
+-- newtype All (ls :: [* -> *]) a = All (Map ls a)
+
+-- type family Map (ls :: [* -> *]) (a :: *) where
+--   Map '[]
diff --git a/src/Data/Geometry/SegmentTree/Generic.hs b/src/Data/Geometry/SegmentTree/Generic.hs
--- a/src/Data/Geometry/SegmentTree/Generic.hs
+++ b/src/Data/Geometry/SegmentTree/Generic.hs
@@ -122,9 +122,9 @@
     pts = nub' . NonEmpty.sort . NonEmpty.fromList . concatMap endPoints $ is
     nub' = fmap NonEmpty.head . NonEmpty.group1
 
--- | lists all intervals
-toList :: SegmentTree v r -> [i]
-toList = undefined
+-- -- | lists all intervals
+-- toList :: SegmentTree v r -> [i]
+-- toList = undefined
 
 --------------------------------------------------------------------------------
 -- * Searching
@@ -209,7 +209,7 @@
           => i -> SegmentTree v r -> SegmentTree v r
 delete i (SegmentTree t) = SegmentTree $ delete' t
   where
-    (Range a b) = toRange i
+    (Range _ b) = toRange i
 
     delete' (Leaf ld) = Leaf $ ld&leafAssoc %~ deleteAssoc i
     delete' (Node l nd@(_splitPoint -> m) r)
diff --git a/src/Data/Geometry/SubLine.hs b/src/Data/Geometry/SubLine.hs
--- a/src/Data/Geometry/SubLine.hs
+++ b/src/Data/Geometry/SubLine.hs
@@ -1,5 +1,15 @@
 {-# LANGUAGE TemplateHaskell  #-}
 {-# LANGUAGE UndecidableInstances  #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Data.Geometry.SubLine
+-- Copyright   :  (C) Frank Staals
+-- License     :  see the LICENSE file
+-- Maintainer  :  Frank Staals
+--
+-- SubLine; a part of a line
+--
+--------------------------------------------------------------------------------
 module Data.Geometry.SubLine where
 
 import           Control.Lens
@@ -15,7 +25,7 @@
 import           Data.UnBounded
 import           Data.Vinyl
 import           Data.Vinyl.CoRec
-
+import           Test.QuickCheck(Arbitrary(..))
 
 import           Data.Ratio
 
@@ -38,6 +48,9 @@
 deriving instance Arity d                   => F.Foldable (SubLine d p s)
 deriving instance Arity d                   => T.Traversable (SubLine d p s)
 
+instance (Arbitrary r, Arbitrary p, Arbitrary s, Arity d, Ord r, Ord s, Ord p, Num r)
+         => Arbitrary (SubLine d p s r) where
+  arbitrary = SubLine <$> arbitrary <*> arbitrary
 
 -- | Annotate the subRange with the actual ending points
 fixEndPoints    :: (Num r, Arity d) => SubLine d p r r -> SubLine d (Point d r :+ p) r r
diff --git a/src/Data/Geometry/Vector.hs b/src/Data/Geometry/Vector.hs
--- a/src/Data/Geometry/Vector.hs
+++ b/src/Data/Geometry/Vector.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE UndecidableInstances  #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Data.Geometry.Vector
@@ -34,12 +36,17 @@
 import           Linear.Affine (Affine(..), qdA, distanceA)
 import           Linear.Metric (dot,norm,signorm)
 import           Linear.Vector as LV
+import           Test.QuickCheck
 
 --------------------------------------------------------------------------------
 
 type instance Dimension (Vector d r) = d
-type instance NumType (Vector d r) =r
+type instance NumType (Vector d r) = r
 
+instance (Arbitrary r, Arity d) => Arbitrary (Vector d r) where
+  arbitrary = vectorFromListUnsafe <$> infiniteList
+
+
 -- | Test if v is a scalar multiple of u.
 --
 -- >>> Vector2 1 1 `isScalarMultipleOf` Vector2 10 10
@@ -59,6 +66,8 @@
 isScalarMultipleOf       :: (Eq r, Fractional r, Arity d)
                          => Vector d r -> Vector d r -> Bool
 u `isScalarMultipleOf` v = isJust $ scalarMultiple u v
+{-# SPECIALIZE
+    isScalarMultipleOf :: (Eq r, Fractional r) => Vector 2 r -> Vector 2 r -> Bool  #-}
 
 -- | Get the scalar labmda s.t. v = lambda * u (if it exists)
 scalarMultiple     :: (Eq r, Fractional r, Arity d)
@@ -66,6 +75,8 @@
 scalarMultiple u v
       | allZero u || allZero v = Just 0
       | otherwise              = scalarMultiple' u v
+{-# SPECIALIZE
+    scalarMultiple :: (Eq r, Fractional r) => Vector 2 r -> Vector 2 r -> Maybe r #-}
 
 
 -- -- | Helper function for computing the scalar multiple. The result is a pair
@@ -83,6 +94,7 @@
 
 allZero :: (Arity d, Eq r, Num r) => Vector d r -> Bool
 allZero = F.all (== 0)
+{-# SPECIALIZE allZero :: (Eq r, Num r) => Vector 2 r -> Bool #-}
 
 
 data ScalarMultiple r = No | Maybe | Yes r deriving (Eq,Show)
@@ -113,6 +125,8 @@
     g No      = Nothing
     g Maybe   = error "scalarMultiple': found a Maybe, which means the vectors either have length zero, or one of them is all Zero!"
     g (Yes x) = Just x
+{-# SPECIALIZE
+    scalarMultiple' :: (Eq r, Fractional r) => Vector 2 r -> Vector 2 r -> Maybe r #-}
 
 
 --------------------------------------------------------------------------------
diff --git a/src/Data/Geometry/Vector/VectorFamily.hs b/src/Data/Geometry/Vector/VectorFamily.hs
--- a/src/Data/Geometry/Vector/VectorFamily.hs
+++ b/src/Data/Geometry/Vector/VectorFamily.hs
@@ -140,8 +140,11 @@
 
 destruct   :: (Arity d, Arity (d + 1))
            => Vector (d + 1) r -> (r, Vector d r)
-destruct v = (head $ F.toList v, vectorFromListUnsafe . tail $ F.toList v)
+destruct v = (L.head $ F.toList v, vectorFromListUnsafe . tail $ F.toList v)
   -- FIXME: this implementaion of tail is not particularly nice
+
+head   :: (Arity d, 1 <= d) => Vector d r -> r
+head = view $ element (C :: C 0)
 
 --------------------------------------------------------------------------------
 -- * Indexing vectors
diff --git a/src/Data/LSeq.hs b/src/Data/LSeq.hs
deleted file mode 100644
--- a/src/Data/LSeq.hs
+++ /dev/null
@@ -1,310 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Data.LSeq
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
--- Description :  Wrapper around Data.Sequence with type level length annotation.
---
---------------------------------------------------------------------------------
-module Data.LSeq( LSeq
-                , toSeq
-                , empty
-                , fromList
-                , fromNonEmpty
-                , fromSeq
-                , toNonEmpty
-
-                , (<|), (|>)
-                , (><)
-                , eval
-
-                , index
-                , adjust
-                , partition
-                , mapWithIndex
-                , take
-                , drop
-                , unstableSort, unstableSortBy
-                , head, last
-                , append
-
-                , ViewL(..)
-                , viewl
-                , pattern (:<|)
-
-                , pattern (:<<)
-                , pattern EmptyL
-
-                , ViewR(..)
-                , viewr
-                , pattern (:|>)
-
-
-                , promise
-                , forceLSeq
-                ) where
-
-import           Control.DeepSeq
-import           Control.Lens ((%~), (&), (<&>), (^?), bimap)
-import           Control.Lens.At (Ixed(..), Index, IxValue)
-import qualified Data.Foldable as F
-import qualified Data.List.NonEmpty as NonEmpty
-import           Data.Maybe (fromJust)
-import qualified Data.Sequence as S
-import           GHC.Generics (Generic)
-import qualified Data.Traversable as Tr
-import           GHC.TypeLits
-import           Prelude hiding (drop,take,head,last)
-
---------------------------------------------------------------------------------
-
--- $setup
--- >>> :{
--- import Data.Proxy
--- :}
-
-
-
--- | LSeq n a certifies that the sequence has *at least* n items
-newtype LSeq (n :: Nat) a = LSeq (S.Seq a)
-                          deriving (Show,Read,Eq,Ord,Foldable,Functor,Traversable
-                                   ,Generic,NFData)
-
-toSeq          :: LSeq n a -> S.Seq a
-toSeq (LSeq s) = s
-
-instance Semigroup (LSeq n a) where
-  (LSeq s) <> (LSeq s') = LSeq (s <> s')
-
-instance Monoid (LSeq 0 a) where
-  mempty = empty
-  mappend = (<>)
-
-
-
-type instance Index   (LSeq n a) = Int
-type instance IxValue (LSeq n a) = a
-instance Ixed (LSeq n a) where
-  ix i f s@(LSeq xs)
-    | 0 <= i && i < S.length xs = f (S.index xs i) <&> \x -> LSeq $ S.update i x xs
-    | otherwise                 = pure s
-
-empty :: LSeq 0 a
-empty = LSeq S.empty
-
-(<|) :: a -> LSeq n a -> LSeq (1 + n) a
-x <| xs = LSeq (x S.<| toSeq xs)
-
-(|>)    :: LSeq n a -> a -> LSeq (1 + n) a
-xs |> x = LSeq (toSeq xs S.|> x)
-
-infixr 5 <|
-infixl 5 |>
-
-(><) :: LSeq n a -> LSeq m a -> LSeq (n + m) a
-xs >< ys = LSeq (toSeq xs <> toSeq ys)
-
-infix 5 ><
-
-
-eval :: forall proxy n m a. KnownNat n => proxy n -> LSeq m a -> Maybe (LSeq n a)
-eval n (LSeq xs)
-  | toInteger (S.length xs) >= natVal n = Just $ LSeq xs
-  | otherwise                           = Nothing
-
-
-
-
-
--- | Promises that the length of this LSeq is actually n. This is not
--- checked.
---
--- This function should be a noop
-promise :: LSeq m a -> LSeq n a
-promise = LSeq . toSeq
-
-
--- | Forces the first n elements of the LSeq
-forceLSeq   :: KnownNat n => proxy n -> LSeq m a -> LSeq n a
-forceLSeq n = promise . go (fromInteger $ natVal n)
-  where
-    -- forces the Lseq for n' positions
-    go      :: Int -> LSeq m a -> LSeq m a
-    go n' s | n' <= l    = s
-            | otherwise  = error msg
-      where
-        l   = S.length . S.take n' . toSeq $ s
-        msg = "forceLSeq: too few elements. expected " <> show n' <> " but found " <> show l
-
-
-
-toNonEmpty :: LSeq (1 + n) a -> NonEmpty.NonEmpty a
-toNonEmpty = NonEmpty.fromList . F.toList
-
--- | appends two sequences.
---
-append         :: LSeq n a -> LSeq m a -> LSeq (n + m) a
-sa `append` sb = LSeq $ (toSeq sa) <> toSeq sb
-
---------------------------------------------------------------------------------
-
--- | get the element with index i, counting from the left and starting at 0.
--- O(log(min(i,n-i)))
-index     :: LSeq n a -> Int -> a
-index s i = fromJust $ s^?ix i
-
-adjust       :: (a -> a) -> Int -> LSeq n a -> LSeq n a
-adjust f i s = s&ix i %~ f
-
-
-partition   :: (a -> Bool) -> LSeq n a -> (LSeq 0 a, LSeq 0 a)
-partition p = bimap LSeq LSeq . S.partition p . toSeq
-
-mapWithIndex   :: (Int -> a -> b) -> LSeq n a -> LSeq n b
-mapWithIndex f = wrapUnsafe (S.mapWithIndex f)
-
-take   :: Int -> LSeq n a -> LSeq 0 a
-take i = wrapUnsafe (S.take i)
-
-drop   :: Int -> LSeq n a -> LSeq 0 a
-drop i = wrapUnsafe (S.drop i)
-
-
-unstableSortBy   :: (a -> a -> Ordering) -> LSeq n a -> LSeq n a
-unstableSortBy f = wrapUnsafe (S.unstableSortBy f)
-
-unstableSort :: Ord a => LSeq n a -> LSeq n a
-unstableSort = wrapUnsafe (S.unstableSort)
-
-
-wrapUnsafe :: (S.Seq a -> S.Seq b) -> LSeq n a -> LSeq m b
-wrapUnsafe f = LSeq . f . toSeq
-
---------------------------------------------------------------------------------
-
-fromSeq :: S.Seq a -> LSeq 0 a
-fromSeq = LSeq
-
-fromList :: Foldable f => f a -> LSeq 0 a
-fromList = LSeq . S.fromList . F.toList
-
-fromNonEmpty :: NonEmpty.NonEmpty a -> LSeq 1 a
-fromNonEmpty = LSeq . S.fromList . F.toList
-
-
---------------------------------------------------------------------------------
-
-data ViewL n a where
-  (:<) :: a -> LSeq n a -> ViewL (1 + n) a
-
-infixr 5 :<
-
-instance Semigroup (ViewL n a) where
-  (x :< xs) <> (y :< ys) = x :< LSeq (toSeq xs <> (y S.<| toSeq ys))
-
-deriving instance Show a => Show (ViewL n a)
-instance Functor (ViewL n) where
-  fmap = Tr.fmapDefault
-instance Foldable (ViewL n) where
-  foldMap = Tr.foldMapDefault
-instance Traversable (ViewL n) where
-  traverse f (x :< xs) = (:<) <$> f x <*> traverse f xs
-instance Eq a => Eq (ViewL n a) where
-  s == s' = F.toList s == F.toList s'
-instance Ord a => Ord (ViewL n a) where
-  s `compare` s' = F.toList s `compare` F.toList s'
-
-
-viewl :: LSeq (1 + n) a -> ViewL (1 + n) a
-viewl xs = let ~(x S.:< ys) = S.viewl $ toSeq xs in x :< LSeq ys
-
-viewl'    :: LSeq (1 + n) a -> (a, LSeq n a)
-viewl' xs = let ~(x S.:< ys) = S.viewl $ toSeq xs in (x,LSeq ys)
-
-infixr 5 :<|
-
-pattern (:<|)    :: a -> LSeq n a -> LSeq (1 + n) a
-pattern x :<| xs <- (viewl' -> (x,xs)) -- we need the coerce unfortunately
-  where
-    x :<| xs = x <| xs
-{-# COMPLETE (:<|) #-}
-
-
-
-infixr 5 :<<
-
-pattern (:<<)    :: a -> LSeq 0 a -> LSeq n a
-pattern x :<< xs <- (viewLSeq -> Just (x,xs))
-
-pattern EmptyL   :: LSeq n a
-pattern EmptyL   <- (viewLSeq -> Nothing)
-
-viewLSeq          :: LSeq n a -> Maybe (a,LSeq 0 a)
-viewLSeq (LSeq s) = case S.viewl s of
-                      S.EmptyL    -> Nothing
-                      (x S.:< xs) -> Just (x,LSeq xs)
-
-
---------------------------------------------------------------------------------
-
-data ViewR n a where
-  (:>) :: LSeq n a -> a -> ViewR (1 + n) a
-
-infixl 5 :>
-
-instance Semigroup (ViewR n a) where
-  (xs :> x) <> (ys :> y) = LSeq ((toSeq xs S.|> x) <> toSeq ys) :> y
-
-deriving instance Show a => Show (ViewR n a)
-instance Functor (ViewR n) where
-  fmap = Tr.fmapDefault
-instance Foldable (ViewR n) where
-  foldMap = Tr.foldMapDefault
-instance Traversable (ViewR n) where
-  traverse f (xs :> x) = (:>) <$> traverse f xs <*> f x
-instance Eq a => Eq (ViewR n a) where
-  s == s' = F.toList s == F.toList s'
-instance Ord a => Ord (ViewR n a) where
-  s `compare` s' = F.toList s `compare` F.toList s'
-
-viewr    :: LSeq (1 + n) a -> ViewR (1 + n) a
-viewr xs = let ~(ys S.:> x) = S.viewr $ toSeq xs in LSeq ys :> x
-
-viewr'    :: LSeq (1 + n) a -> (LSeq n a, a)
-viewr' xs = let ~(ys S.:> x) = S.viewr $ toSeq xs in (LSeq ys, x)
-
-infixl 5 :|>
-
-pattern (:|>)    :: forall n a. LSeq n a -> a -> LSeq (1 + n) a
-pattern xs :|> x <- (viewr' -> (xs,x))
-  where
-    xs :|> x = xs |> x
-{-# COMPLETE (:|>) #-}
-
---------------------------------------------------------------------------------
-
--- | Gets the first element of the LSeq
---
--- >>> head $ forceLSeq (Proxy :: Proxy 3) $ fromList [1,2,3]
--- 1
-head           :: LSeq (1 + n) a -> a
-head (x :<| _) = x
-
--- s = let (x :< _) = viewl s in x
-
--- | Get the last element of the LSeq
---
--- >>> last $ forceLSeq (Proxy :: Proxy 3) $ fromList [1,2,3]
--- 3
-last           :: LSeq (1 + n) a -> a
-last (_ :|> x) = x
-
--- testL = (eval (Proxy :: Proxy 2) $ fromList [1..5])
-
--- testL' :: LSeq 2 Integer
--- testL' = fromJust testL
-
--- test            :: Show a => LSeq (1 + n) a -> String
--- test (x :<| xs) = show x ++ show xs
diff --git a/src/Data/OrdSeq.hs b/src/Data/OrdSeq.hs
deleted file mode 100644
--- a/src/Data/OrdSeq.hs
+++ /dev/null
@@ -1,189 +0,0 @@
-module Data.OrdSeq where
-
-
-import           Control.Lens (bimap)
-import qualified Data.FingerTree as FT
-import           Data.FingerTree hiding (null, viewl, viewr)
-import qualified Data.Foldable as F
-import           Data.Maybe
-
---------------------------------------------------------------------------------
-
-data Key a = NoKey | Key { getKey :: !a } deriving (Show,Eq,Ord)
-
-instance Semigroup (Key a) where
-  k <> NoKey = k
-  _ <> k     = k
-
-instance Monoid (Key a) where
-  mempty = NoKey
-  k `mappend` k' = k <> k'
-
-liftCmp                     :: (a -> a -> Ordering) -> Key a -> Key a -> Ordering
-liftCmp _   NoKey   NoKey   = EQ
-liftCmp _   NoKey   (Key _) = LT
-liftCmp _   (Key _) NoKey   = GT
-liftCmp cmp (Key x) (Key y) = x `cmp` y
-
-
-
-newtype Elem a = Elem { getElem :: a } deriving (Eq,Ord,Traversable,Foldable,Functor)
-
-instance Show a => Show (Elem a) where
-  show (Elem x) = "Elem " <> show x
-
-
-newtype OrdSeq a = OrdSeq { _asFingerTree :: FingerTree (Key a) (Elem a) }
-                   deriving (Show,Eq)
-
-instance Semigroup (OrdSeq a) where
-  (OrdSeq s) <> (OrdSeq t) = OrdSeq $ s `mappend` t
-
-instance Monoid (OrdSeq a) where
-  mempty = OrdSeq mempty
-  mappend = (<>)
-
-instance Foldable OrdSeq where
-  foldMap f = foldMap (foldMap f) . _asFingerTree
-  null      = null . _asFingerTree
-  length    = length . _asFingerTree
-  minimum   = fromJust . lookupMin
-  maximum   = fromJust . lookupMax
-
-instance Measured (Key a) (Elem a) where
-  measure (Elem x) = Key x
-
-
-type Compare a = a -> a -> Ordering
-
--- | Insert into a monotone OrdSeq.
---
--- pre: the comparator maintains monotonicity
---
--- \(O(\log n)\)
-insertBy                  :: Compare a -> a -> OrdSeq a -> OrdSeq a
-insertBy cmp x (OrdSeq s) = OrdSeq $ l `mappend` (Elem x <| r)
-  where
-    (l,r) = split (\v -> liftCmp cmp v (Key x) `elem` [EQ, GT]) s
-
--- | Insert into a sorted OrdSeq
---
--- \(O(\log n)\)
-insert :: Ord a => a -> OrdSeq a -> OrdSeq a
-insert = insertBy compare
-
-deleteAllBy         :: Compare a -> a -> OrdSeq a -> OrdSeq a
-deleteAllBy cmp x s = l <> r
-  where
-    (l,_,r) = splitBy cmp x s
-
-    -- (l,m) = split (\v -> liftCmp cmp v (Key x) `elem` [EQ,GT]) s
-    -- (_,r) = split (\v -> liftCmp cmp v (Key x) == GT) m
-
-
--- | \(O(\log n)\)
-splitBy                  :: Compare a -> a -> OrdSeq a -> (OrdSeq a, OrdSeq a, OrdSeq a)
-splitBy cmp x (OrdSeq s) = (OrdSeq l, OrdSeq m', OrdSeq r)
-  where
-    (l, m) = split (\v -> liftCmp cmp v (Key x) `elem` [EQ,GT]) s
-    (m',r) = split (\v -> liftCmp cmp v (Key x) == GT) m
-
-
--- | Given a monotonic function f that maps a to b, split the sequence s
--- depending on the b values. I.e. the result (l,m,r) is such that
--- * all (< x) . fmap f $ l
--- * all (== x) . fmap f $ m
--- * all (> x) . fmap f $ r
---
--- >>> splitOn id 3 $ fromAscList' [1..5]
--- (OrdSeq {_asFingerTree = fromList [Elem 1,Elem 2]},OrdSeq {_asFingerTree = fromList [Elem 3]},OrdSeq {_asFingerTree = fromList [Elem 4,Elem 5]})
--- >>> splitOn fst 2 $ fromAscList' [(0,"-"),(1,"A"),(2,"B"),(2,"C"),(3,"D"),(4,"E")]
--- (OrdSeq {_asFingerTree = fromList [Elem (0,"-"),Elem (1,"A")]},OrdSeq {_asFingerTree = fromList [Elem (2,"B"),Elem (2,"C")]},OrdSeq {_asFingerTree = fromList [Elem (3,"D"),Elem (4,"E")]})
---
--- \(O(\log n)\)
-splitOn :: Ord b => (a -> b) -> b -> OrdSeq a -> (OrdSeq a, OrdSeq a, OrdSeq a)
-splitOn f x (OrdSeq s) = (OrdSeq l, OrdSeq m', OrdSeq r)
-  where
-    (l, m) = split (\(Key v) -> compare (f v) x `elem` [EQ,GT]) s
-    (m',r) = split (\(Key v) -> compare (f v) x ==     GT)      m
-
--- | Given a monotonic predicate p, splits the sequence s into two sequences
---  (as,bs) such that all (not p) as and all p bs
---
--- \(O(\log n)\)
-splitMonotonic  :: (a -> Bool) -> OrdSeq a -> (OrdSeq a, OrdSeq a)
-splitMonotonic p = bimap OrdSeq OrdSeq . split (p . getKey) . _asFingerTree
-
-
--- Deletes all elements from the OrdDeq
---
--- \(O(n\log n)\)
-deleteAll :: Ord a => a -> OrdSeq a -> OrdSeq a
-deleteAll = deleteAllBy compare
-
-
--- | inserts all eleements in order
--- \(O(n\log n)\)
-fromListBy     :: Compare a -> [a] -> OrdSeq a
-fromListBy cmp = foldr (insertBy cmp) mempty
-
--- | inserts all eleements in order
--- \(O(n\log n)\)
-fromListByOrd :: Ord a => [a] -> OrdSeq a
-fromListByOrd = fromListBy compare
-
--- | O(n)
-fromAscList' :: [a] -> OrdSeq a
-fromAscList' = OrdSeq . fromList . fmap Elem
-
-
--- | \(O(\log n)\)
-lookupBy         :: Compare a -> a -> OrdSeq a -> Maybe a
-lookupBy cmp x s = let (_,m,_) = splitBy cmp x s in listToMaybe . F.toList $ m
-
-memberBy        :: Compare a -> a -> OrdSeq a -> Bool
-memberBy cmp x = isJust . lookupBy cmp x
-
-
--- | Fmap, assumes the order does not change
--- O(n)
-mapMonotonic   :: (a -> b) -> OrdSeq a -> OrdSeq b
-mapMonotonic f = fromAscList' . map f . F.toList
-
-
--- | Gets the first element from the sequence
--- \(O(1)\)
-viewl :: OrdSeq a -> ViewL OrdSeq a
-viewl = f . FT.viewl . _asFingerTree
-  where
-    f EmptyL         = EmptyL
-    f (Elem x :< s)  = x :< OrdSeq s
-
--- Last element
--- \(O(1)\)
-viewr :: OrdSeq a -> ViewR OrdSeq a
-viewr = f . FT.viewr . _asFingerTree
-  where
-    f EmptyR         = EmptyR
-    f (s :> Elem x)  = OrdSeq s :> x
-
-
--- \(O(1)\)
-minView   :: OrdSeq a -> Maybe (a, OrdSeq a)
-minView s = case viewl s of
-              EmptyL   -> Nothing
-              (x :< t) -> Just (x,t)
-
--- \(O(1)\)
-lookupMin :: OrdSeq a -> Maybe a
-lookupMin = fmap fst . minView
-
--- \(O(1)\)
-maxView   :: OrdSeq a -> Maybe (a, OrdSeq a)
-maxView s = case viewr s of
-              EmptyR   -> Nothing
-              (t :> x) -> Just (x,t)
-
--- \(O(1)\)
-lookupMax :: OrdSeq a -> Maybe a
-lookupMax = fmap fst . maxView
diff --git a/src/Data/Permutation.hs b/src/Data/Permutation.hs
deleted file mode 100644
--- a/src/Data/Permutation.hs
+++ /dev/null
@@ -1,124 +0,0 @@
-{-# LANGUAGE TemplateHaskell #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Data.Permutation
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
---
--- Data type for representing a Permutation
---
---------------------------------------------------------------------------------
-module Data.Permutation where
-
-import           Control.DeepSeq
-import           Control.Lens
-import           Control.Monad (forM)
-import           Control.Monad.ST (runST)
-import qualified Data.Foldable as F
-import           Data.Maybe (catMaybes)
-import qualified Data.Traversable as T
-import qualified Data.Vector as V
-import qualified Data.Vector.Generic as GV
-import qualified Data.Vector.Unboxed as UV
-import qualified Data.Vector.Unboxed.Mutable as UMV
-import           GHC.Generics (Generic)
-
---------------------------------------------------------------------------------
-
--- | Orbits (Cycles) are represented by vectors
-type Orbit a = V.Vector a
-
--- | Cyclic representation of a permutation.
-data Permutation a = Permutation { _orbits  :: V.Vector (Orbit a)
-                                 , _indexes :: UV.Vector (Int,Int)
-                                               -- ^ idxes (fromEnum a) = (i,j)
-                                               -- implies that a is the j^th
-                                               -- item in the i^th orbit
-                                 }
-                   deriving (Show,Eq,Generic)
-makeLenses ''Permutation
-
-instance NFData a => NFData (Permutation a)
-
-instance Functor Permutation where
-  fmap = T.fmapDefault
-
-instance F.Foldable Permutation where
-  foldMap = T.foldMapDefault
-
-instance T.Traversable Permutation where
-  traverse f (Permutation os is) = flip Permutation is <$> T.traverse (T.traverse f) os
-
-
-elems :: Permutation a -> V.Vector a
-elems = GV.concat . GV.toList . _orbits
-
-size      :: Permutation a -> Int
-size perm = GV.length (perm^.indexes)
-
--- | The cycle containing a given item
-cycleOf        :: Enum a => Permutation a -> a -> Orbit a
-cycleOf perm x = perm^?!orbits.ix (perm^?!indexes.ix (fromEnum x)._1)
-
-
--- | Next item in a cyclic permutation
-next     :: GV.Vector v a => v a -> Int -> a
-next v i = let n = GV.length v in v GV.! ((i+1) `mod` n)
-
--- | Previous item in a cyclic permutation
-previous     :: GV.Vector v a => v a -> Int -> a
-previous v i = let n = GV.length v in v GV.! ((i-1) `mod` n)
-
--- | Lookup the indices of an element, i.e. in which orbit the item is, and the
--- index within the orbit.
---
--- runnign time: \(O(1)\)
-lookupIdx        :: Enum a => Permutation a -> a -> (Int,Int)
-lookupIdx perm x = perm^?!indexes.ix (fromEnum x)
-
--- | Apply the permutation, i.e. consider the permutation as a function.
-apply        :: Enum a => Permutation a -> a -> a
-apply perm x = let (c,i) = lookupIdx perm x
-               in next (perm^?!orbits.ix c) i
-
-
--- | Find the cycle in the permutation starting at element s
-orbitFrom     :: Eq a => a -> (a -> a) -> [a]
-orbitFrom s p = s : (takeWhile (/= s) . tail $ iterate p s)
-
--- Given a vector with items in the permutation, and a permutation (by its
--- functional representation) construct the cyclic representation of the
--- permutation.
-cycleRep        :: (GV.Vector v a, Enum a, Eq a) => v a -> (a -> a) -> Permutation a
-cycleRep v perm = toCycleRep n $ runST $ do
-    bv    <- UMV.replicate n False -- bit vector of marks
-    morbs <- forM [0..(n - 1)] $ \i -> do
-               m <- UMV.read bv (fromEnum $ v GV.! i)
-               if m then pure Nothing -- already visited
-                    else do
-                      let xs = orbitFrom (v GV.! i) perm
-                      markAll bv $ map fromEnum xs
-                      pure . Just $ xs
-    pure . catMaybes $ morbs
-  where
-    n  = GV.length v
-
-    mark    bv i = UMV.write bv i True
-    markAll bv   = mapM_ (mark bv)
-
-
--- | Given the size n, and a list of Cycles, turns the cycles into a
--- cyclic representation of the Permutation.
-toCycleRep      :: Enum a => Int -> [[a]] -> Permutation a
-toCycleRep n os = Permutation (V.fromList . map V.fromList $ os) (genIndexes n os)
-
-
-genIndexes      :: Enum a => Int -> [[a]] -> UV.Vector (Int,Int)
-genIndexes n os = UV.create $ do
-                                v <- UMV.new n
-                                mapM_ (uncurry $ UMV.write v) ixes'
-                                pure v
-  where
-    f i c = zipWith (\x j -> (fromEnum x,(i,j))) c [0..]
-    ixes' = concat $ zipWith f [0..] os
diff --git a/src/Data/PlanarGraph.hs b/src/Data/PlanarGraph.hs
deleted file mode 100644
--- a/src/Data/PlanarGraph.hs
+++ /dev/null
@@ -1,1084 +0,0 @@
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE OverloadedStrings #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Data.PlanarGraph
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
---
--- Data type for representing connected planar graphs
---------------------------------------------------------------------------------
-module Data.PlanarGraph( -- $setup
-                         -- * The Planar Graph type
-                         PlanarGraph
-                       , embedding, vertexData, dartData, faceData, rawDartData
-                       , edgeData
-
-                       , World(..)
-                       , DualOf
-
-                       -- * Representing edges: Arcs and Darts
-                       , Arc(..)
-                       , Direction(..), rev
-
-                       , Dart(..), arc, direction
-                       , twin, isPositive
-
-                       -- * Vertices
-
-                       , VertexId(..), VertexId'
-
-                       -- * Building a planar graph
-
-                       , planarGraph, planarGraph', fromAdjacencyLists
-                       , toAdjacencyLists
-                       , buildFromJSON
-
-                       -- * Quering a planar graph
-
-                       , numVertices, numDarts, numEdges, numFaces
-                       , darts', darts, edges', edges, vertices', vertices, faces', faces
-                       , traverseVertices, traverseDarts, traverseFaces
-
-                       , tailOf, headOf, endPoints
-                       , incidentEdges, incomingEdges, outgoingEdges, neighboursOf
-                       , nextIncidentEdge, prevIncidentEdge
-
-                       -- * Associated Data
-
-                       , HasDataOf(..), endPointDataOf, endPointData
-
-                       , dual
-
-                       -- * Faces
-
-                       , FaceId(..), FaceId'
-                       , leftFace, rightFace
-                       , boundaryDart, boundary, boundary', boundaryVertices
-                       , nextEdge, prevEdge
-
-                       -- * Edge Oracle
-
-                       , EdgeOracle
-                       , edgeOracle, buildEdgeOracle
-                       , findEdge
-                       , hasEdge, findDart
-
-                       , allDarts
-                       ) where
-
-
-import           Control.Applicative (Alternative(..))
-import           Control.DeepSeq
-import           Control.Lens hiding ((.=))
-import           Control.Monad.ST (ST)
-import           Control.Monad.State.Strict
-import           Data.Aeson
-import           Data.Bifunctor
-import           Data.Bitraversable
-import           Data.Ext
-import qualified Data.Foldable as F
-import           Data.Maybe (catMaybes, isJust, fromJust, fromMaybe)
-import           Data.Permutation
-import           Data.Traversable (fmapDefault,foldMapDefault)
-import           Data.Type.Equality (gcastWith, (:~:)(..))
-import qualified Data.Vector as V
-import qualified Data.Vector.Generic as GV
-import qualified Data.Vector.Mutable as MV
-import qualified Data.Vector.Unboxed as UV
-import qualified Data.Vector.Unboxed.Mutable as UMV
-import           GHC.Generics (Generic)
-import           Unsafe.Coerce (unsafeCoerce)
--- import           Data.Yaml.Util
-
-
---------------------------------------------------------------------------------
--- $setup
--- >>> :{
--- let dart i s = Dart (Arc i) (read s)
---     (aA:aB:aC:aD:aE:aG:_) = take 6 [Arc 0..]
---     myGraph :: PlanarGraph () Primal () String ()
---     myGraph = planarGraph [ [ (Dart aA Negative, "a-")
---                             , (Dart aC Positive, "c+")
---                             , (Dart aB Positive, "b+")
---                             , (Dart aA Positive, "a+")
---                             ]
---                           , [ (Dart aE Negative, "e-")
---                             , (Dart aB Negative, "b-")
---                             , (Dart aD Negative, "d-")
---                             , (Dart aG Positive, "g+")
---                             ]
---                           , [ (Dart aE Positive, "e+")
---                             , (Dart aD Positive, "d+")
---                             , (Dart aC Negative, "c-")
---                             ]
---                           , [ (Dart aG Negative, "g-")
---                             ]
---                           ]
--- :}
---
---
--- This represents the following graph. Note that the graph is undirected, the
--- arrows are just to indicate what the Positive direction of the darts is.
---
--- ![myGraph](docs/Data/PlanarGraph/testG.png)
-
---------------------------------------------------------------------------------
-
--- | An Arc is a directed edge in a planar graph. The type s is used to tie
--- this arc to a particular graph.
-newtype Arc s = Arc { _unArc :: Int } deriving (Eq,Ord,Enum,Bounded,Generic,NFData)
-
-instance Show (Arc s) where
-  show (Arc i) = "Arc " ++ show i
-
--- | Darts have a direction which is either Positive or Negative (shown as +1
--- or -1, respectively).
-data Direction = Negative | Positive deriving (Eq,Ord,Bounded,Enum,Generic)
-
-instance NFData Direction
-
-instance Show Direction where
-  show Positive = "+1"
-  show Negative = "-1"
-
-instance Read Direction where
-  readsPrec _ "-1" = [(Negative,"")]
-  readsPrec _ "+1" = [(Positive,"")]
-  readsPrec _ _    = []
-
--- | Reverse the direcion
-rev          :: Direction -> Direction
-rev Negative = Positive
-rev Positive = Negative
-
--- | A dart represents a bi-directed edge. I.e. a dart has a direction, however
--- the dart of the oposite direction is always present in the planar graph as
--- well.
-data Dart s = Dart { _arc       :: !(Arc s)
-                   , _direction :: !Direction
-                   } deriving (Eq,Ord,Generic)
-makeLenses ''Dart
-
-instance NFData (Dart s)
-
-instance Show (Dart s) where
-  show (Dart a d) = "Dart (" ++ show a ++ ") " ++ show d
-
--- | Get the twin of this dart (edge)
---
--- >>> twin (dart 0 "+1")
--- Dart (Arc 0) -1
--- >>> twin (dart 0 "-1")
--- Dart (Arc 0) +1
-twin            :: Dart s -> Dart s
-twin (Dart a d) = Dart a (rev d)
-
--- | test if a dart is Positive
-isPositive   :: Dart s -> Bool
-isPositive d = d^.direction == Positive
-
-
-instance Enum (Dart s) where
-  toEnum x
-    | even x    = Dart (Arc $ x `div` 2) Positive
-    | otherwise = Dart (Arc $ x `div` 2) Negative
-  -- get the back edge by adding one
-
-  fromEnum (Dart (Arc i) d) = case d of
-                                Positive -> 2*i
-                                Negative -> 2*i + 1
-
-
--- | Enumerates all darts such that
--- allDarts !! i = d   <=> i == fromEnum d
-allDarts :: [Dart s]
-allDarts = concatMap (\a -> [Dart a Positive, Dart a Negative]) [Arc 0..]
-
--- | The world in which the graph lives
-data World = Primal | Dual deriving (Show,Eq)
-
--- | We can take the dual of a world. For the Primal this gives us the Dual,
--- for the Dual this gives us the Primal.
-type family DualOf (sp :: World) where
-  DualOf Primal = Dual
-  DualOf Dual   = Primal
-
--- | The Dual of the Dual is the Primal.
-dualDualIdentity :: forall w. DualOf (DualOf w) :~: w
-dualDualIdentity = unsafeCoerce Refl
-          -- manual proof:
-          --    DualOf (DualOf Primal) = Primal
-          --    DualOf (DualOf Dual)   = Dual
-
-
--- | A vertex in a planar graph. A vertex is tied to a particular planar graph
--- by the phantom type s, and to a particular world w.
-newtype VertexId s (w :: World) = VertexId { _unVertexId :: Int }
-                                deriving (Eq,Ord,Enum,ToJSON,FromJSON,Generic,NFData)
--- VertexId's are in the range 0...|orbits|-1
-
--- | Shorthand for vertices in the primal.
-type VertexId' s = VertexId s Primal
-
-unVertexId :: Getter (VertexId s w) Int
-unVertexId = to _unVertexId
-
-instance Show (VertexId s w) where
-  show (VertexId i) = "VertexId " ++ show i
-
---------------------------------------------------------------------------------
--- * The graph type itself
-
--- | A *connected* Planar graph with bidirected edges. I.e. the edges (darts) are
--- directed, however, for every directed edge, the edge in the oposite
--- direction is also in the graph.
---
--- The types v, e, and f are the are the types of the data associated with the
--- vertices, edges, and faces, respectively.
---
--- The orbits in the embedding are assumed to be in counterclockwise
--- order. Therefore, every dart directly bounds the face to its right.
-data PlanarGraph s (w :: World) v e f = PlanarGraph { _embedding   :: Permutation (Dart s)
-                                                    , _vertexData  :: V.Vector v
-                                                    , _rawDartData :: V.Vector e
-                                                    , _faceData    :: V.Vector f
-                                                    , _dual        :: PlanarGraph s (DualOf w) f e v
-                                                    } deriving (Generic)
-
-instance (Show v, Show e, Show f) => Show (PlanarGraph s w v e f) where
-  show (PlanarGraph e v r f _) = unwords [ "PlanarGraph"
-                                         , "embedding =", show e
-                                         , ", vertexData =", show v
-                                         , ", rawDartData =", show r
-                                         , ", faceData =", show f
-                                         ]
-
-instance (Eq v, Eq e, Eq f) => Eq (PlanarGraph s w v e f) where
-  (PlanarGraph e v r f _) == (PlanarGraph e' v' r' f' _) =  e == e' && v == v'
-                                                         && r == r' && f == f'
-
-
-instance (ToJSON v, ToJSON e, ToJSON f)
-         => ToJSON (PlanarGraph s w v e f) where
-  toJSON     = object . encodeJSON
-  toEncoding = pairs . mconcat . encodeJSON
-
-
-
--- | Enclodes the planar graph as a JSON object.  note that every face is
--- stored together with a dart bounding the face. (and so that the face lies to
--- its right. Otherwise we cannot reconstruct the face data appropriately.
-encodeJSON   :: (ToJSON f, ToJSON e, ToJSON v, KeyValue t)
-             => PlanarGraph s w v e f -> [t]
-encodeJSON g = [ "vertices"    .= ((\(v,x) -> v :+ x)             <$> vertices g)
-               , "darts"       .= ((\(e,x) -> endPoints e g :+ x) <$> darts g)
-               , "faces"       .= ((\(f,x) -> f :+ x)             <$> faces g)
-               , "adjacencies" .= toAdjacencyLists g
-               ]
-  -- where
-  --   faces'' = withBoundaryDart  <$> faces g
-  --   withBoundaryDart (f,x) = let d = boundaryDart f g
-  --                            in (f, endPoints d g, x)
-
-instance (FromJSON v, FromJSON e, FromJSON f)
-         => FromJSON (PlanarGraph s Primal v e f) where
-  parseJSON = withObject "" $ \v -> buildFromJSON <$> v .: "vertices"
-                                                  <*> v .: "darts"
-                                                  <*> v .: "faces"
-                                                  <*> v .: "adjacencies"
-
-
--- | Helper function to build the graph from JSON data
---
--- running time: \(O(n)\)
-buildFromJSON             :: V.Vector (VertexId' s :+ v)
-                          -> V.Vector ((VertexId' s, VertexId' s) :+ e)
-                          -> V.Vector (FaceId' s :+ f)
-                          -> [(VertexId' s, V.Vector (VertexId' s))]
-                          -> PlanarGraph s Primal v e f
-buildFromJSON vs es fs as = g&vertexData .~ reorder vs _unVertexId
-                             &dartData   .~ ds
-                             &faceData   .~ reorder fs (_unVertexId._unFaceId)
-  where
-    g = fromAdjacencyLists as
-    oracle = edgeOracle g
-    findEdge' (u,v) = fromJust $ findDart u v oracle
-
-    ds = es&traverse %~ \(e:+x) -> (findEdge' e,x)
-    -- TODO: do we have enough infor to reconstruct the face info?
-
-    -- make sure we order the data values appropriately
-    reorder v f = V.create $ do
-                               v' <- MV.new (V.length v)
-                               forM_ v $ \(i :+ x) ->
-                                 MV.write v' (f i) x
-                               pure v'
-
-
-
-
-
-
--- ** lenses and getters
-
--- | Get the embedding, reprsented as a permutation of the darts, of this
--- graph.
-embedding :: Getter (PlanarGraph s w v e f) (Permutation (Dart s))
-embedding = to _embedding
-
-vertexData :: Lens (PlanarGraph s w v e f) (PlanarGraph s w v' e f)
-                   (V.Vector v) (V.Vector v')
-vertexData = lens _vertexData (\g vD -> updateData (const vD) id id g)
-
-rawDartData :: Lens (PlanarGraph s w v e f) (PlanarGraph s w v e' f)
-                    (V.Vector e) (V.Vector e')
-rawDartData = lens _rawDartData (\g dD -> updateData id (const dD) id g)
-
-faceData :: Lens (PlanarGraph s w v e f) (PlanarGraph s w v e f')
-                 (V.Vector f) (V.Vector f')
-faceData = lens _faceData (\g fD -> updateData id id (const fD) g)
-
--- | Get the dual graph of this graph.
-dual :: Getter (PlanarGraph s w v e f) (PlanarGraph s (DualOf w) f e v)
-dual = to _dual
-
-
--- FIXME: So I guess the two darts associated with an edge can store different
--- data. This is useful. Make sure that works as expected.
-
--- | lens to access the Dart Data
---
---
-dartData :: Lens (PlanarGraph s w v e f) (PlanarGraph s w v e' f)
-                (V.Vector (Dart s, e)) (V.Vector (Dart s, e'))
-dartData = lens darts (\g dD -> updateData id (const $ reorderEdgeData dD) id g)
-
--- | edgeData is just an alias for 'dartData'
-edgeData :: Lens (PlanarGraph s w v e f) (PlanarGraph s w v e' f)
-                 (V.Vector (Dart s, e)) (V.Vector (Dart s, e'))
-edgeData = dartData
-
--- | Helper function to update the data in a planar graph. Takes care to update
--- both the data in the original graph as well as in the dual.
-updateData :: forall s w v e f v' e' f'
-           .  (V.Vector v -> V.Vector v')
-           -> (V.Vector e -> V.Vector e')
-           -> (V.Vector f -> V.Vector f')
-           -> PlanarGraph s w v  e  f
-           -> PlanarGraph s w v' e' f'
-updateData = gcastWith proof updateData'
-  where
-    proof :: DualOf (DualOf w) :~: w
-    proof = dualDualIdentity
-
--- | The function that does the actual work for 'updateData'
-updateData'  :: (DualOf (DualOf w) ~ w)
-             => (V.Vector v -> V.Vector v')
-             -> (V.Vector e -> V.Vector e')
-             -> (V.Vector f -> V.Vector f')
-             -> PlanarGraph s w v  e  f
-             -> PlanarGraph s w v' e' f'
-updateData' fv fe ff (PlanarGraph em vtxData dData fData dg) = g'
-  where
-    vtxData' = fv vtxData
-    dData'   = fe dData
-    fData'   = ff fData
-
-    g'       = PlanarGraph em              vtxData' dData' fData'   dg'
-    dg'      = PlanarGraph (dg^.embedding) fData'   dData' vtxData' g'
-
-
--- | Reorders the edge data to be in the right order to set edgeData
-reorderEdgeData    :: Foldable f => f (Dart s, e) -> V.Vector e
-reorderEdgeData ds = V.create $ do
-                                  v <- MV.new (F.length ds)
-                                  forM_ (F.toList ds) $ \(d,x) ->
-                                    MV.write v (fromEnum d) x
-                                  pure v
-
--- | Traverse the vertices
---
--- (^.vertexData) <$> traverseVertices (\i x -> Just (i,x)) myGraph
--- Just [(VertexId 0,()),(VertexId 1,()),(VertexId 2,()),(VertexId 3,())]
--- >>> traverseVertices (\i x -> print (i,x)) myGraph >> pure ()
--- (VertexId 0,())
--- (VertexId 1,())
--- (VertexId 2,())
--- (VertexId 3,())
-traverseVertices   :: Applicative m
-                   => (VertexId s w -> v -> m v')
-                   -> PlanarGraph s w v e f
-                   -> m (PlanarGraph s w v' e f)
-traverseVertices f = itraverseOf (vertexData.itraversed) (\i -> f (VertexId i))
-
--- | Traverses the darts
---
--- >>> traverseDarts (\d x -> print (d,x)) myGraph >> pure ()
--- (Dart (Arc 0) +1,"a+")
--- (Dart (Arc 0) -1,"a-")
--- (Dart (Arc 1) +1,"b+")
--- (Dart (Arc 1) -1,"b-")
--- (Dart (Arc 2) +1,"c+")
--- (Dart (Arc 2) -1,"c-")
--- (Dart (Arc 3) +1,"d+")
--- (Dart (Arc 3) -1,"d-")
--- (Dart (Arc 4) +1,"e+")
--- (Dart (Arc 4) -1,"e-")
--- (Dart (Arc 5) +1,"g+")
--- (Dart (Arc 5) -1,"g-")
-traverseDarts   :: Applicative m
-                => (Dart s -> e -> m e')
-                -> PlanarGraph s w v e f
-                -> m (PlanarGraph s w v e' f)
-traverseDarts f = itraverseOf (rawDartData.itraversed) (\i -> f (toEnum i))
-
--- | Traverses the faces
---
--- >>> traverseFaces (\i x -> print (i,x)) myGraph >> pure ()
--- (FaceId 0,())
--- (FaceId 1,())
--- (FaceId 2,())
--- (FaceId 3,())
-traverseFaces   :: Applicative m
-                => (FaceId s w -> f -> m f')
-                -> PlanarGraph s w v e f
-                -> m (PlanarGraph s w v e f')
-traverseFaces f = itraverseOf (faceData.itraversed) (\i -> f (FaceId $ VertexId i))
-
---------------------------------------------------------------------------------
--- ** Constructing a Planar graph
-
--- | Construct a planar graph
---
--- running time: \(O(n)\).
-planarGraph'      :: Permutation (Dart s) -> PlanarGraph s w () () ()
-planarGraph' perm = pg
-  where
-    pg = PlanarGraph perm vData eData fData (computeDual pg)
-        -- note the lazy calculation of computeDual that refers to pg itself
-    d  = size perm
-    e  = d `div` 2
-    v  = V.length (perm^.orbits)
-    f  = e - v + 2
-
-    vData  = V.replicate v ()
-    eData  = V.replicate d ()
-    fData  = V.replicate f ()
-
--- | Construct a planar graph, given the darts in cyclic order around each
--- vertex.
---
--- running time: \(O(n)\).
-planarGraph    :: [[(Dart s,e)]] -> PlanarGraph s Primal () e ()
-planarGraph ds = (planarGraph' perm)&dartData .~ (V.fromList . concat $ ds)
-  where
-    n     = sum . map length $ ds
-    perm  = toCycleRep n $ map (map fst) ds
-
-
-
--- | Construct a planar graph from a adjacency matrix. For every vertex, all
--- vertices should be given in counter clockwise order.
---
--- pre: No self-loops, and no multi-edges
---
--- running time: \(O(n)\).
-fromAdjacencyLists      :: forall s w h. (Foldable h, Functor h)
-                        => [(VertexId s w, h (VertexId s w))]
-                        -> PlanarGraph s w () () ()
-fromAdjacencyLists adjM = planarGraph' . toCycleRep n $ perm
-  where
-    n    = sum . fmap length $ perm
-    perm = map toOrbit  $ adjM'
-
-    adjM' = fmap (second F.toList) adjM
-
-    -- -- | Assign Arcs
-    -- adjM' = (^._1) . foldr assignArcs (SP [] 0) $ adjM
-
-    -- Build an edgeOracle, so that we can query the arcId assigned to
-    -- an edge in O(1) time.
-    oracle :: EdgeOracle s w Int
-    oracle = fmap (^.core) . assignArcs . buildEdgeOracle
-           . map (second $ map ext)  $ adjM'
-
-    toOrbit (u,adjU) = concatMap (toDart u) adjU
-
-    -- if u = v we have a self-loop, so we add both a positive and a negative dart
-    toDart u v = let Just a = findEdge u v oracle
-                 in case u `compare` v of
-                      LT -> [Dart (Arc a) Positive]
-                      EQ -> [Dart (Arc a) Positive, Dart (Arc a) Negative]
-                      GT -> [Dart (Arc a) Negative]
-
-
-assignArcs   :: EdgeOracle s w e -> EdgeOracle s w (Int :+ e)
-assignArcs o = evalState (traverse f o) 0
-  where
-    f   :: e -> State Int (Int :+ e)
-    f e = do i <- get ; put (i+1) ; pure (i :+ e)
-
--- | Produces the adjacencylists for all vertices in the graph. For every vertex, the
--- adjacent vertices are given in counter clockwise order.
---
--- Note that in case a vertex u as a self loop, we have that this vertexId occurs
--- twice in the list of neighbours, i.e.: u : [...,u,..,u,...]. Similarly, if there are
--- multiple darts between a pair of edges they occur multiple times.
---
--- running time: \(O(n)\)
-toAdjacencyLists    :: PlanarGraph s w v e f -> [(VertexId s w, V.Vector (VertexId s w))]
-toAdjacencyLists pg = map (\u -> (u,neighboursOf u pg)) . V.toList . vertices' $ pg
--- TODO: something weird happens when we have self-loops here.
-
-
---------------------------------------------------------------------------------
--- ** Convenience functions
-
--- | Get the number of vertices
---
--- >>> numVertices myGraph
--- 4
-numVertices :: PlanarGraph s w v e f -> Int
-numVertices g = V.length (g^.embedding.orbits)
-
--- | Get the number of Darts
---
--- >>> numDarts myGraph
--- 12
-numDarts :: PlanarGraph s w v e f -> Int
-numDarts g = size (g^.embedding)
-
--- | Get the number of Edges
---
--- >>> numEdges myGraph
--- 6
-numEdges :: PlanarGraph s w v e f -> Int
-numEdges g = numDarts g `div` 2
-
--- | Get the number of faces
---
--- >>> numFaces myGraph
--- 4
-numFaces   :: PlanarGraph s w v e f -> Int
-numFaces g = numEdges g - numVertices g + 2
-
-
--- | Enumerate all vertices
---
--- >>> vertices' myGraph
--- [VertexId 0,VertexId 1,VertexId 2,VertexId 3]
-vertices'   :: PlanarGraph s w v e f -> V.Vector (VertexId s w)
-vertices' g = VertexId <$> V.enumFromN 0 (V.length (g^.embedding.orbits))
-
--- | Enumerate all vertices, together with their vertex data
-
--- >>> vertices myGraph
--- [(VertexId 0,()),(VertexId 1,()),(VertexId 2,()),(VertexId 3,())]
-vertices   :: PlanarGraph s w v e f -> V.Vector (VertexId s w, v)
-vertices g = V.zip (vertices' g) (g^.vertexData)
-
-
--- | Enumerate all darts
-darts' :: PlanarGraph s w v e f -> V.Vector (Dart s)
-darts' = elems . _embedding
-
--- | Get all darts together with their data
---
--- >>> mapM_ print $ darts myGraph
--- (Dart (Arc 0) -1,"a-")
--- (Dart (Arc 2) +1,"c+")
--- (Dart (Arc 1) +1,"b+")
--- (Dart (Arc 0) +1,"a+")
--- (Dart (Arc 4) -1,"e-")
--- (Dart (Arc 1) -1,"b-")
--- (Dart (Arc 3) -1,"d-")
--- (Dart (Arc 5) +1,"g+")
--- (Dart (Arc 4) +1,"e+")
--- (Dart (Arc 3) +1,"d+")
--- (Dart (Arc 2) -1,"c-")
--- (Dart (Arc 5) -1,"g-")
-darts   :: PlanarGraph s w v e f -> V.Vector (Dart s, e)
-darts g = (\d -> (d,g^.dataOf d)) <$> darts' g
-
--- | Enumerate all edges. We report only the Positive darts
-edges' :: PlanarGraph s w v e f -> V.Vector (Dart s)
-edges' = V.filter isPositive . darts'
-
--- | Enumerate all edges with their edge data. We report only the Positive
--- darts.
---
--- >>> mapM_ print $ edges myGraph
--- (Dart (Arc 2) +1,"c+")
--- (Dart (Arc 1) +1,"b+")
--- (Dart (Arc 0) +1,"a+")
--- (Dart (Arc 5) +1,"g+")
--- (Dart (Arc 4) +1,"e+")
--- (Dart (Arc 3) +1,"d+")
-edges :: PlanarGraph s w v e f -> V.Vector (Dart s, e)
-edges = V.filter (isPositive . fst) . darts
-
-
--- | The tail of a dart, i.e. the vertex this dart is leaving from
---
--- running time: \(O(1)\)
-tailOf     :: Dart s -> PlanarGraph s w v e f -> VertexId s w
-tailOf d g = VertexId . fst $ lookupIdx (g^.embedding) d
-
--- | The vertex this dart is heading in to
---
--- running time: \(O(1)\)
-headOf   :: Dart s -> PlanarGraph s w v e f -> VertexId s w
-headOf d = tailOf (twin d)
-
--- | endPoints d g = (tailOf d g, headOf d g)
---
--- running time: \(O(1)\)
-endPoints :: Dart s -> PlanarGraph s w v e f -> (VertexId s w, VertexId s w)
-endPoints d g = (tailOf d g, headOf d g)
-
-
--- | All edges incident to vertex v, in counterclockwise order around v.
---
--- running time: \(O(k)\), where \(k\) is the output size
-incidentEdges                :: VertexId s w -> PlanarGraph s w v e f
-                             -> V.Vector (Dart s)
-incidentEdges (VertexId v) g = g^?!embedding.orbits.ix v
-  -- TODO: The Delaunay triang. stuff seems to produce these in clockwise order instead
-
--- | All incoming edges incident to vertex v, in counterclockwise order around v.
-incomingEdges     :: VertexId s w -> PlanarGraph s w v e f -> V.Vector (Dart s)
-incomingEdges v g = V.filter (not . isPositive) $ incidentEdges v g
-
--- | All outgoing edges incident to vertex v, in counterclockwise order around v.
-outgoingEdges     :: VertexId s w -> PlanarGraph s w v e f -> V.Vector (Dart s)
-outgoingEdges v g = V.filter isPositive $ incidentEdges v g
-
-
--- | Gets the neighbours of a particular vertex, in counterclockwise order
--- around the vertex.
---
--- running time: \(O(k)\), where \(k\) is the output size
-neighboursOf     :: VertexId s w -> PlanarGraph s w v e f -> V.Vector (VertexId s w)
-neighboursOf v g = otherVtx <$> incidentEdges v g
-  where
-    otherVtx d = let u = tailOf d g in if u == v then headOf d g else u
-
--- | Given a dart d that points into some vertex v, report the next dart in the
--- cyclic order around v.
---
--- running time: \(O(1)\)
-nextIncidentEdge     :: Dart s -> PlanarGraph s w v e f -> Dart s
-nextIncidentEdge d g = let perm  = g^.embedding
-                           (i,j) = lookupIdx perm d
-                       in next (perm^?!orbits.ix i) j
-
-
--- | Given a dart d that points into some vertex v, report the next dart in the
--- cyclic order around v.
---
--- running time: \(O(1)\)
-prevIncidentEdge     :: Dart s -> PlanarGraph s w v e f -> Dart s
-prevIncidentEdge d g = let perm  = g^.embedding
-                           (i,j) = lookupIdx perm d
-                       in previous (perm^?!orbits.ix i) j
-
-
---------------------------------------------------------------------------------
--- * Access data
-
-
-class HasDataOf g i where
-  type DataOf g i
-  -- | get the data associated with the value i.
-  --
-  -- running time: \(O(1)\) to read the data, \(O(n)\) to write it.
-  dataOf :: i -> Lens' g (DataOf g i)
-
-instance HasDataOf (PlanarGraph s w v e f) (VertexId s w) where
-  type DataOf (PlanarGraph s w v e f) (VertexId s w) = v
-  dataOf (VertexId i) = vertexData.singular (ix i)
-
-instance HasDataOf (PlanarGraph s w v e f) (Dart s) where
-  type DataOf (PlanarGraph s w v e f) (Dart s) = e
-  dataOf d = rawDartData.singular (ix $ fromEnum d)
-
-instance HasDataOf (PlanarGraph s w v e f) (FaceId s w) where
-  type DataOf (PlanarGraph s w v e f) (FaceId s w) = f
-  dataOf (FaceId (VertexId i)) = faceData.singular (ix i)
-
-
--- | Data corresponding to the endpoints of the dart
-endPointDataOf   :: Dart s -> Getter (PlanarGraph s w v e f) (v,v)
-endPointDataOf d = to $ endPointData d
-
-
--- | Data corresponding to the endpoints of the dart
---
--- running time: \(O(1)\)
-endPointData     :: Dart s -> PlanarGraph s w v e f -> (v,v)
-endPointData d g = let (u,v) = endPoints d g in (g^.dataOf u, g^.dataOf v)
-
---------------------------------------------------------------------------------
--- * The Dual graph
-
--- | The dual of this graph
---
--- >>> :{
---  let fromList = V.fromList
---      answer = fromList [ fromList [dart 0 "-1"]
---                        , fromList [dart 2 "+1",dart 4 "+1",dart 1 "-1",dart 0 "+1"]
---                        , fromList [dart 1 "+1",dart 3 "-1",dart 2 "-1"]
---                        , fromList [dart 4 "-1",dart 3 "+1",dart 5 "+1",dart 5 "-1"]
---                        ]
---  in (computeDual myGraph)^.embedding.orbits == answer
--- :}
--- True
---
--- running time: \(O(n)\).
-computeDual :: forall s w v e f. PlanarGraph s w v e f -> PlanarGraph s (DualOf w) f e v
-computeDual = gcastWith proof computeDual'
-  where
-    proof :: DualOf (DualOf w) :~: w
-    proof = dualDualIdentity
-
--- | Does the actual work for dualGraph
-computeDual'   :: (DualOf (DualOf w) ~ w)
-               => PlanarGraph s w v e f -> PlanarGraph s (DualOf w) f e v
-computeDual' g = dualG
-  where
-    perm  = g^.embedding
-    dualG = PlanarGraph (cycleRep (elems perm) (apply perm . twin))
-                        (g^.faceData)
-                        (g^.rawDartData)
-                        (g^.vertexData)
-                        g
-
-
--- | The type to reprsent FaceId's
-newtype FaceId s w = FaceId { _unFaceId :: VertexId s (DualOf w) }
-                   deriving (Eq,Ord,Enum,ToJSON,FromJSON)
-
--- | Shorthand for FaceId's in the primal.
-type FaceId' s = FaceId s Primal
-
-instance Show (FaceId s w) where
-  show (FaceId (VertexId i)) = "FaceId " ++ show i
-
--- | Enumerate all faces in the planar graph
-faces' :: PlanarGraph s w v e f -> V.Vector (FaceId s w)
-faces' = fmap FaceId . vertices' . _dual
-
--- | All faces with their face data.
-faces   :: PlanarGraph s w v e f -> V.Vector (FaceId s w, f)
-faces g = V.zip (faces' g) (g^.faceData)
-
--- | The face to the left of the dart
---
--- >>> leftFace (dart 1 "+1") myGraph
--- FaceId 1
--- >>> leftFace (dart 1 "-1") myGraph
--- FaceId 2
--- >>> leftFace (dart 2 "+1") myGraph
--- FaceId 2
--- >>> leftFace (dart 0 "+1") myGraph
--- FaceId 0
---
--- running time: \(O(1)\).
-leftFace     :: Dart s -> PlanarGraph s w v e f -> FaceId s w
-leftFace d g = FaceId . headOf d $ _dual g
-
-
--- | The face to the right of the dart
---
--- >>> rightFace (dart 1 "+1") myGraph
--- FaceId 2
--- >>> rightFace (dart 1 "-1") myGraph
--- FaceId 1
--- >>> rightFace (dart 2 "+1") myGraph
--- FaceId 1
--- >>> rightFace (dart 0 "+1") myGraph
--- FaceId 1
---
--- running time: \(O(1)\).
-rightFace     :: Dart s -> PlanarGraph s w v e f -> FaceId s w
-rightFace d g = FaceId . tailOf d $ _dual g
-
-
--- | Get the next edge along the face
---
--- running time: \(O(1)\).
-nextEdge   :: Dart s -> PlanarGraph s w v e f -> Dart s
-nextEdge d = nextIncidentEdge d . _dual
-
--- | Get the previous edge along the face
---
--- running time: \(O(1)\).
-prevEdge :: Dart s -> PlanarGraph s w v e f -> Dart s
-prevEdge d = prevIncidentEdge d . _dual
-
-
--- | Gets a dart bounding this face. I.e. a dart d such that the face lies to
--- the right of the dart.
-boundaryDart   :: FaceId s w -> PlanarGraph s w v e f -> Dart s
-boundaryDart f = V.head . boundary f
--- TODO: make sure that this is indeed to the right.
-
--- | The darts bounding this face, for internal faces in clockwise order, for
--- the outer face in counter clockwise order.
---
---
--- running time: \(O(k)\), where \(k\) is the output size.
-boundary              :: FaceId s w -> PlanarGraph s w v e f -> V.Vector (Dart s)
-boundary (FaceId v) g = incidentEdges v $ _dual g
-
-
--- | Generates the darts incident to a face, starting with the given dart.
---
---
--- \(O(k)\), where \(k\) is the number of darts reported
-boundary'     :: Dart s -> PlanarGraph s w v e f -> V.Vector (Dart s)
-boundary' d g = fromMaybe (error "boundary'")  . rotateTo d $ boundary (rightFace d g) g
-  where
-    rotateTo     :: Eq a => a -> V.Vector a -> Maybe (V.Vector a)
-    rotateTo x v = f <$> V.elemIndex x v
-      where
-        f i = let (a,b) = V.splitAt i v  in b <> a
-
-
--- | The vertices bounding this face, for internal faces in clockwise order, for
--- the outer face in counter clockwise order.
---
---
--- running time: \(O(k)\), where \(k\) is the output size.
-boundaryVertices     :: FaceId s w -> PlanarGraph s w v e f -> V.Vector (VertexId s w)
-boundaryVertices f g = fmap (flip tailOf g) $ boundary f g
-
--- -- | Gets the next dart along the face
--- nextDart     :: Dart s -> PlanarGraph s w v e f -> Dart s
--- nextDart d g = f rightFace e
-
---------------------------------------------------------------------------------
--- Testing stuff
-
--- testPerm :: Permutation (Dart s)
--- testPerm = let (a:b:c:d:e:g:_) = take 6 [Arc 0..]
---            in toCycleRep 12 [ [ Dart a Negative
---                               , Dart c Positive
---                               , Dart b Positive
---                               , Dart a Positive
---                               ]
---                             , [ Dart e Negative
---                               , Dart b Negative
---                               , Dart d Negative
---                               , Dart g Positive
---                               ]
---                             , [ Dart e Positive
---                               , Dart d Positive
---                               , Dart c Negative
---                               ]
---                             , [ Dart g Negative
---                               ]
---                             ]
-
--- data Test
-
--- testG :: PlanarGraph Test Primal () String ()
--- testG = planarGraph [ [ (Dart aA Negative, "a-")
---                       , (Dart aC Positive, "c+")
---                       , (Dart aB Positive, "b+")
---                       , (Dart aA Positive, "a+")
---                       ]
---                     , [ (Dart aE Negative, "e-")
---                       , (Dart aB Negative, "b-")
---                       , (Dart aD Negative, "d-")
---                       , (Dart aG Positive, "g+")
---                       ]
---                     , [ (Dart aE Positive, "e+")
---                       , (Dart aD Positive, "d+")
---                       , (Dart aC Negative, "c-")
---                       ]
---                     , [ (Dart aG Negative, "g-")
---                       ]
---                     ]
---   where
---     (aA:aB:aC:aD:aE:aG:_) = take 6 [Arc 0..]
-
-
-
-
-
-
---------------------------------------------------------------------------------
-
-
---------------------------------------------------------------------------------
--- * Testing Connectivity
-
-
--- | Edge Oracle:
---
--- main idea: store adjacency lists in such a way that we store an edge (u,v)
--- either in u's adjacency list or in v's. This can be done s.t. all adjacency
--- lists have length at most 6.
---
--- note: Every edge is stored exactly once (i.e. either at u or at v, but not both)
-newtype EdgeOracle s w a =
-  EdgeOracle { _unEdgeOracle :: V.Vector (V.Vector (VertexId s w :+ a)) }
-                         deriving (Show,Eq)
-
-instance Functor (EdgeOracle s w) where
-  fmap = fmapDefault
-
-instance Foldable (EdgeOracle s w) where
-  foldMap = foldMapDefault
-
-instance Traversable (EdgeOracle s w) where
-  traverse f (EdgeOracle v) = EdgeOracle <$> traverse g v
-    where
-      -- g   :: V.Vector (VertexId :+ a) -> f (V.Vector (VertexId :+ b))
-      g = traverse (bitraverse pure f)
-
-
--- | Given a planar graph, construct an edge oracle. Given a pair of vertices
--- this allows us to efficiently find the dart representing this edge in the
--- graph.
---
--- pre: No self-loops and no multi-edges!!!
---
--- running time: \(O(n)\)
-edgeOracle   :: PlanarGraph s w v e f -> EdgeOracle s w (Dart s)
-edgeOracle g = buildEdgeOracle [ (v, mkAdjacency v <$> incidentEdges v g)
-                               | v <- F.toList $ vertices' g
-                               ]
-  where
-    mkAdjacency v d = otherVtx v d :+ d
-    otherVtx v d = let u = tailOf d g in if u == v then headOf d g else u
-
-
-
--- | Builds an edge oracle that can be used to efficiently test if two vertices
--- are connected by an edge.
---
--- running time: \(O(n)\)
-buildEdgeOracle        :: forall f s w e. (Foldable f)
-                       => [(VertexId s w, f (VertexId s w :+ e))] -> EdgeOracle s w e
-buildEdgeOracle inAdj' = EdgeOracle $ V.create $ do
-                          counts <- UV.thaw initCounts
-                          marks  <- UMV.replicate (UMV.length counts) False
-                          outV   <- MV.new (UMV.length counts)
-                          build counts marks outV initQ
-                          pure outV
-    -- main idea: maintain a vector with counts; i.e. how many unprocessed
-    -- vertices are adjacent to u, and a bit vector with marks to keep track if
-    -- a vertex has been processed yet. When we process a vertex, we keep only
-    -- the adjacencies of unprocessed verticese.
-  where
-    -- Convert to a vector representation
-    inAdj = V.create $ do
-              mv <- MV.new (length inAdj')
-              forM_ inAdj' $ \(VertexId i,adjI) ->
-                MV.write mv i (V.fromList . F.toList $ adjI)
-              pure mv
-
-    initCounts = V.convert . fmap GV.length $ inAdj
-    -- initial vertices available for processing
-    initQ = GV.ifoldr (\i k q -> if k <= 6 then i : q else q) [] initCounts
-
-    -- | Construct the adjacencylist for vertex i. I.e. by retaining only adjacent
-    -- vertices that have not been processed yet.
-    extractAdj         :: UMV.MVector s' Bool -> Int
-                       -> ST s' (V.Vector (VertexId s w :+ e))
-    extractAdj marks i = let p = fmap not . UMV.read marks . (^.core.unVertexId)
-                         in GV.filterM  p $ inAdj V.! i
-
-    -- | Decreases the number of adjacencies that vertex j has
-    -- if it has <= 6 adjacencies left it has become available for processing
-    decrease                          :: UMV.MVector s' Int -> (VertexId s w :+ e')
-                                      -> ST s' (Maybe Int)
-    decrease counts (VertexId j :+ _) = do k <- UMV.read counts j
-                                           let k'  = k - 1
-                                           UMV.write counts j k'
-                                           pure $ if k' <= 6 then Just j else Nothing
-
-    -- The actual algorithm that builds the items
-    build :: UMV.MVector s' Int -> UMV.MVector s' Bool
-          -> MV.MVector s' (V.Vector (VertexId s w :+ e)) -> [Int] -> ST s' ()
-    build _      _     _    []    = pure ()
-    build counts marks outV (i:q) = do
-             b <- UMV.read marks i
-             nq <- if b then pure []
-                        else do
-                          adjI <- extractAdj marks i
-                          MV.write outV i adjI
-                          UMV.write marks i True
-                          V.toList <$> mapM (decrease counts) adjI
-             build counts marks outV (catMaybes nq <> q)
-
-
-
--- | Test if u and v are connected by an edge.
---
--- running time: \(O(1)\)
-hasEdge     :: VertexId s w -> VertexId s w -> EdgeOracle s w a -> Bool
-hasEdge u v = isJust . findEdge u v
-
-
--- | Find the edge data corresponding to edge (u,v) if such an edge exists
---
--- running time: \(O(1)\)
-findEdge :: VertexId s w -> VertexId s w -> EdgeOracle s w a -> Maybe a
-findEdge  (VertexId u) (VertexId v) (EdgeOracle os) = find' u v <|> find' v u
-  where
-    find' j i = fmap (^.extra) . F.find (\(VertexId k :+ _) -> j == k) $ os V.! i
-
--- | Given a pair of vertices (u,v) returns the dart, oriented from u to v,
--- corresponding to these vertices.
---
--- running time: \(O(1)\)
-findDart :: VertexId s w -> VertexId s w -> EdgeOracle s w (Dart s) -> Maybe (Dart s)
-findDart (VertexId u) (VertexId v) (EdgeOracle os) = find' twin u v <|> find' id v u
-    -- looks up j in the adjacencylist of i and applies f to the result
-  where
-    find' f j i = fmap (f . (^.extra)) . F.find (\(VertexId k :+ _) -> j == k) $ os V.! i
-
---------------------------------------------------------------------------------
-
--- data Test
-
--- type Vertex = VertexId Test Primal
-
--- testEdges :: [(Vertex,[Vertex])]
--- testEdges = map (\(i,vs) -> (VertexId i, map VertexId vs))
---             [ (0, [1])
---             , (1, [0,1,2,4])
---             , (2, [1,3,4])
---             , (3, [2,5])
---             , (4, [1,2,5])
---             , (5, [3,4])
---             ]
-
-
--- myGraph :: PlanarGraph Test Primal () String ()
--- myGraph = planarGraph [ [ (Dart aA Negative, "a-")
---                             , (Dart aC Positive, "c+")
---                             , (Dart aB Positive, "b+")
---                             , (Dart aA Positive, "a+")
---                             ]
---                           , [ (Dart aE Negative, "e-")
---                             , (Dart aB Negative, "b-")
---                             , (Dart aD Negative, "d-")
---                             , (Dart aG Positive, "g+")
---                             ]
---                           , [ (Dart aE Positive, "e+")
---                             , (Dart aD Positive, "d+")
---                             , (Dart aC Negative, "c-")
---                             ]
---                           , [ (Dart aG Negative, "g-")
---                             ]
---                           ]
---   where
---     -- dart i s = Dart (Arc i) (read s)
---     (aA:aB:aC:aD:aE:aG:_) = take 6 [Arc 0..]
diff --git a/src/Data/PlaneGraph.hs b/src/Data/PlaneGraph.hs
--- a/src/Data/PlaneGraph.hs
+++ b/src/Data/PlaneGraph.hs
@@ -17,7 +17,7 @@
                       , PlanarGraph
                       , VertexData(VertexData), vData, location, vtxDataToExt
                       , fromSimplePolygon, fromConnectedSegments
-                      , PG.fromAdjacencyLists
+                      , toAdjRep, fromAdjRep
 
                       , numVertices, numEdges, numFaces, numDarts
                       , dual
@@ -25,7 +25,7 @@
                       , vertices', vertices
                       , edges', edges
                       , faces', faces, internalFaces, faces''
-                      , darts'
+                      , darts', darts
                       , traverseVertices, traverseDarts, traverseFaces
 
                       , headOf, tailOf, twin, endPoints
@@ -37,7 +37,7 @@
 
                       , leftFace, rightFace
                       , nextEdge, prevEdge
-                      , boundary, boundary', boundaryVertices
+                      , boundary, boundary', boundaryDart, boundaryVertices
                       , outerFaceId, outerFaceDart
 
                       , vertexDataOf, locationOf, HasDataOf(..)
@@ -56,565 +56,5 @@
                       , writePlaneGraph, readPlaneGraph
                       ) where
 
-
-import           Control.Lens hiding (holes, holesOf, (.=))
-import           Data.Aeson
-import qualified Data.ByteString as B
-import qualified Data.CircularSeq as C
-import           Data.Ext
-import qualified Data.Foldable as F
-import           Data.Function (on)
-import           Data.Geometry.Box
-import           Data.Geometry.Interval
-import           Data.Geometry.Line (cmpSlope, supportingLine)
-import           Data.Geometry.LineSegment
-import           Data.Geometry.Point
-import           Data.Geometry.Polygon
-import           Data.Geometry.Properties
-import qualified Data.List.NonEmpty as NonEmpty
-import qualified Data.Map as M
-import           Data.Ord (comparing)
-import qualified Data.PlanarGraph as PG
-import           Data.PlanarGraph( PlanarGraph, planarGraph, dual
-                                 , Dart(..), VertexId(..), FaceId(..), Arc(..)
-                                 , Direction(..), twin
-                                 , World(..)
-                                 , FaceId', VertexId'
-                                 , HasDataOf(..)
-                                 )
-import           Data.Util
-import qualified Data.Vector as V
-import           Data.Version
-import           Data.Yaml (ParseException)
-import           Data.Yaml.Util
-import           GHC.Generics (Generic)
-
---------------------------------------------------------------------------------
-
--- | Note that the functor instance is in v
-data VertexData r v = VertexData { _location :: !(Point 2 r)
-                                 , _vData    :: !v
-                                 } deriving (Show,Eq,Ord,Generic
-                                            ,Functor,Foldable,Traversable)
-makeLenses ''VertexData
-
-vtxDataToExt                  :: VertexData r v -> Point 2 r :+ v
-vtxDataToExt (VertexData p v) = p :+ v
-
-instance Bifunctor VertexData where
-  bimap f g (VertexData p v) = VertexData (fmap f p) (g v)
-
-instance (FromJSON r, FromJSON v) => FromJSON (VertexData r v) where
-  parseJSON = fmap (\(l :+ d) -> VertexData l d) . parseJSON
-
-instance (ToJSON r, ToJSON v) => ToJSON (VertexData r v) where
-  toJSON     = toJSON     . vtxDataToExt
-  toEncoding = toEncoding . vtxDataToExt
-
---------------------------------------------------------------------------------
-
--- | Embedded, *connected*, planar graph
-newtype PlaneGraph s v e f r =
-    PlaneGraph { _graph :: PlanarGraph s Primal (VertexData r v) e f }
-      deriving (Show,Eq,ToJSON,FromJSON,Generic)
-makeLenses ''PlaneGraph
-
-type instance NumType   (PlaneGraph s v e f r) = r
-type instance Dimension (PlaneGraph s v e f r) = 2
-
-instance Functor (PlaneGraph s v e f) where
-  fmap f pg = pg&graph.PG.vertexData.traverse.location %~ fmap f
-
-instance IsBoxable (PlaneGraph s v e f r) where
-  boundingBox = boundingBoxList' . F.toList . fmap (^._2.location) . vertices
-
-
-
-
---------------------------------------------------------------------------------
--- * Constructing a Plane Graph
-
--- | Construct a plane graph from a simple polygon. It is assumed that the
--- polygon is given in counterclockwise order.
---
--- the interior of the polygon will have faceId 0
---
--- pre: the input polygon is given in counterclockwise order
--- running time: \(O(n)\).
-fromSimplePolygon                            :: proxy s
-                                             -> SimplePolygon p r
-                                             -> f -- ^ data inside
-                                             -> f -- ^ data outside the polygon
-                                             -> PlaneGraph s p () f r
-fromSimplePolygon p (SimplePolygon vs) iD oD = PlaneGraph g'
-  where
-    g      = fromVertices p vs
-    fData' = V.fromList [iD, oD]
-    g'     = g & PG.faceData .~ fData'
-
--- | Constructs a planar from the given vertices
-fromVertices      :: proxy s
-                  -> C.CSeq (Point 2 r :+ p)
-                  -> PlanarGraph s Primal (VertexData r p) () ()
-fromVertices _ vs = g&PG.vertexData .~ vData'
-  where
-    n = length vs
-    g = planarGraph [ [ (Dart (Arc i)               Positive, ())
-                      , (Dart (Arc $ (i+1) `mod` n) Negative, ())
-                      ]
-                    | i <- [0..(n-1)]]
-    vData' = V.fromList . map (\(p :+ e) -> VertexData p e) . F.toList $ vs
-
--- | Constructs a connected plane graph
---
--- pre: The segments form a single connected component
---
--- running time: \(O(n\log n)\)
-fromConnectedSegments      :: (Foldable f, Ord r, Num r)
-                           => proxy s
-                           -> f (LineSegment 2 p r :+ e)
-                           -> PlaneGraph s (NonEmpty.NonEmpty p) e () r
-fromConnectedSegments _ ss = PlaneGraph $ planarGraph dts & PG.vertexData .~ vxData
-  where
-    pts         = M.fromListWith (<>) . concatMap f . zipWith g [0..] . F.toList $ ss
-    f (s :+ e)  = [ ( s^.start.core
-                    , SP (sing $ s^.start.extra) [(s^.end.core)   :+ h Positive e])
-                  , ( s^.end.core
-                    , SP (sing $ s^.end.extra)   [(s^.start.core) :+ h Negative e])
-                  ]
-    g i (s :+ e) = s :+ (Arc i :+ e)
-    h d (a :+ e) = (Dart a d, e)
-
-    sing x = x NonEmpty.:| []
-
-    vts    = map (\(p,sp) -> (p,map (^.extra) . sortArround (ext p) <$> sp))
-           . M.assocs $ pts
-    -- vertex Data
-    vxData = V.fromList . map (\(p,sp) -> VertexData p (sp^._1)) $ vts
-    -- The darts
-    dts    = map (^._2._2) vts
-
---------------------------------------------------------------------------------
--- * Basic Graph information
-
--- | Get the number of vertices
---
--- >>> numVertices myGraph
--- 4
-numVertices :: PlaneGraph s v e f r  -> Int
-numVertices = PG.numVertices . _graph
-
--- | Get the number of Darts
---
--- >>> numDarts myGraph
--- 12
-numDarts :: PlaneGraph s v e f r  -> Int
-numDarts = PG.numDarts . _graph
-
--- | Get the number of Edges
---
--- >>> numEdges myGraph
--- 6
-numEdges :: PlaneGraph s v e f r  -> Int
-numEdges = PG.numEdges . _graph
-
--- | Get the number of faces
---
--- >>> numFaces myGraph
--- 4
-numFaces :: PlaneGraph s v e f r  -> Int
-numFaces = PG.numFaces . _graph
-
--- | Enumerate all vertices
---
--- >>> vertices' myGraph
--- [VertexId 0,VertexId 1,VertexId 2,VertexId 3]
-vertices'   :: PlaneGraph s v e f r  -> V.Vector (VertexId' s)
-vertices' = PG.vertices' . _graph
-
--- | Enumerate all vertices, together with their vertex data
-
--- >>> vertices myGraph
--- [(VertexId 0,()),(VertexId 1,()),(VertexId 2,()),(VertexId 3,())]
-vertices   :: PlaneGraph s v e f r  -> V.Vector (VertexId' s, VertexData r v)
-vertices = PG.vertices . _graph
-
--- | Enumerate all darts
-darts' :: PlaneGraph s v e f r  -> V.Vector (Dart s)
-darts' = PG.darts' . _graph
-
--- | Enumerate all edges. We report only the Positive darts
-edges' :: PlaneGraph s v e f r  -> V.Vector (Dart s)
-edges' = PG.edges' . _graph
-
--- | Lens to access the raw dart data, use at your own risk
-rawDartData :: Lens (PlaneGraph s v e f r) (PlaneGraph s v e' f r)
-                    (V.Vector e) (V.Vector e')
-rawDartData = graph.PG.rawDartData
-
--- | lens to access the Dart Data
-dartData :: Lens (PlaneGraph s v e f r) (PlaneGraph s v e' f r)
-                 (V.Vector (Dart s, e)) (V.Vector (Dart s, e'))
-dartData = graph.PG.dartData
-
--- | Lens to access face data
-faceData :: Lens (PlaneGraph s v e f r) (PlaneGraph s v e f' r)
-                 (V.Vector f) (V.Vector f')
-faceData = graph.PG.faceData
-
-vertexData :: Lens (PlaneGraph s v e f r) (PlaneGraph s v' e f r)
-                   (V.Vector v) (V.Vector v')
-vertexData = lens get'' set''
-  where
-    get'' pg    = let v = pg^.graph.PG.vertexData in (^.vData) <$> v
-    set'' pg v' = pg&graph.PG.vertexData %~ V.zipWith f v'
-    f x (VertexData l _) = VertexData l x
-
--- | Enumerate all edges with their edge data. We report only the Positive
--- darts.
---
--- >>> mapM_ print $ edges myGraph
--- (Dart (Arc 2) +1,"c+")
--- (Dart (Arc 1) +1,"b+")
--- (Dart (Arc 0) +1,"a+")
--- (Dart (Arc 5) +1,"g+")
--- (Dart (Arc 4) +1,"e+")
--- (Dart (Arc 3) +1,"d+")
-edges :: PlaneGraph s v e f r  -> V.Vector (Dart s, e)
-edges = PG.edges . _graph
-
--- | Enumerate all faces in the plane graph
-faces' :: PlaneGraph s v e f r  -> V.Vector (FaceId' s)
-faces' = PG.faces' . _graph
-
--- | All faces with their face data.
-faces :: PlaneGraph s v e f r  -> V.Vector (FaceId' s, f)
-faces = PG.faces . _graph
-
-
--- | Reports the outerface and all internal faces separately.
--- running time: \(O(n)\)
-faces''   :: (Ord r, Fractional r)
-          => PlaneGraph s v e f r -> ((FaceId' s, f), V.Vector (FaceId' s, f))
-faces'' g = let i = outerFaceId g
-            in ((i,g^.dataOf i), V.filter (\(j,_) -> i /= j) $ faces g)
-
--- | Reports all internal faces.
--- running time: \(O(n)\)
-internalFaces :: (Ord r, Fractional r)
-              => PlaneGraph s v e f r -> V.Vector (FaceId' s, f)
-internalFaces = snd . faces''
-
--- | The tail of a dart, i.e. the vertex this dart is leaving from
---
--- running time: \(O(1)\)
-tailOf   :: Dart s -> PlaneGraph s v e f r  -> VertexId' s
-tailOf d = PG.tailOf d . _graph
-
--- | The vertex this dart is heading in to
---
--- running time: \(O(1)\)
-headOf   :: Dart s -> PlaneGraph s v e f r  -> VertexId' s
-headOf d = PG.headOf d . _graph
-
--- | endPoints d g = (tailOf d g, headOf d g)
---
--- running time: \(O(1)\)
-endPoints   :: Dart s -> PlaneGraph s v e f r
-            -> (VertexId' s, VertexId' s)
-endPoints d = PG.endPoints d . _graph
-
--- | All edges incident to vertex v, in counterclockwise order around v.
---
--- running time: \(O(k)\), where \(k\) is the output size
-incidentEdges   :: VertexId' s -> PlaneGraph s v e f r -> V.Vector (Dart s)
-incidentEdges v = PG.incidentEdges v . _graph
-
--- | All incoming edges incident to vertex v, in counterclockwise order around v.
-incomingEdges   :: VertexId' s -> PlaneGraph s v e f r -> V.Vector (Dart s)
-incomingEdges v = PG.incomingEdges v . _graph
-
--- | All outgoing edges incident to vertex v, in counterclockwise order around v.
-outgoingEdges   :: VertexId' s -> PlaneGraph s v e f r  -> V.Vector (Dart s)
-outgoingEdges v = PG.outgoingEdges v . _graph
-
--- | Gets the neighbours of a particular vertex, in counterclockwise order
--- around the vertex.
---
--- running time: \(O(k)\), where \(k\) is the output size
-neighboursOf   :: VertexId' s -> PlaneGraph s v e f r
-               -> V.Vector (VertexId' s)
-neighboursOf v = PG.neighboursOf v . _graph
-
--- | Given a dart d that points into some vertex v, report the next dart in the
--- cyclic order around v.
---
--- running time: \(O(1)\)
-nextIncidentEdge   :: Dart s -> PlaneGraph s v e f r -> Dart s
-nextIncidentEdge d = PG.nextIncidentEdge d . _graph
-
--- | Given a dart d that points into some vertex v, report the next dart in the
--- cyclic order around v.
---
--- running time: \(O(1)\)
-prevIncidentEdge   :: Dart s -> PlaneGraph s v e f r -> Dart s
-prevIncidentEdge d = PG.prevIncidentEdge d . _graph
-
-
--- | The face to the left of the dart
---
--- >>> leftFace (dart 1 "+1") myGraph
--- FaceId 1
--- >>> leftFace (dart 1 "-1") myGraph
--- FaceId 2
--- >>> leftFace (dart 2 "+1") myGraph
--- FaceId 2
--- >>> leftFace (dart 0 "+1") myGraph
--- FaceId 0
---
--- running time: \(O(1)\).
-leftFace   :: Dart s -> PlaneGraph s v e f r  -> FaceId' s
-leftFace d = PG.leftFace d . _graph
-
--- | The face to the right of the dart
---
--- >>> rightFace (dart 1 "+1") myGraph
--- FaceId 2
--- >>> rightFace (dart 1 "-1") myGraph
--- FaceId 1
--- >>> rightFace (dart 2 "+1") myGraph
--- FaceId 1
--- >>> rightFace (dart 0 "+1") myGraph
--- FaceId 1
---
--- running time: \(O(1)\).
-rightFace   :: Dart s -> PlaneGraph s v e f r  -> FaceId' s
-rightFace d = PG.rightFace d . _graph
-
-
--- | Get the next edge along the face
---
---
--- running time: \(O(1)\).
-nextEdge   :: Dart s -> PlaneGraph s v e f r -> Dart s
-nextEdge d = PG.nextEdge d . _graph
-
--- | Get the previous edge along the face
---
---
--- running time: \(O(1)\).
-prevEdge   :: Dart s -> PlaneGraph s v e f r -> Dart s
-prevEdge d = PG.prevEdge d . _graph
-
-
--- | The darts bounding this face, for internal faces in clockwise order, for
--- the outer face in counter clockwise order.
---
---
--- running time: \(O(k)\), where \(k\) is the output size.
-boundary   :: FaceId' s -> PlaneGraph s v e f r  -> V.Vector (Dart s)
-boundary f = PG.boundary f . _graph
-
--- | Generates the darts incident to a face, starting with the given dart.
---
---
--- \(O(k)\), where \(k\) is the number of darts reported
-boundary'   :: Dart s -> PlaneGraph s v e f r -> V.Vector (Dart s)
-boundary' d = PG.boundary' d . _graph
-
-
--- | The vertices bounding this face, for internal faces in clockwise order, for
--- the outer face in counter clockwise order.
---
---
--- running time: \(O(k)\), where \(k\) is the output size.
-boundaryVertices   :: FaceId' s -> PlaneGraph s v e f r
-                   -> V.Vector (VertexId' s)
-boundaryVertices f = PG.boundaryVertices f . _graph
-
-
---------------------------------------------------------------------------------
--- * Access data
-
-vertexDataOf   :: VertexId' s -> Lens' (PlaneGraph s v e f r ) (VertexData r v)
-vertexDataOf v = graph.PG.dataOf v
-
-locationOf   :: VertexId' s -> Lens' (PlaneGraph s v e f r ) (Point 2 r)
-locationOf v = vertexDataOf v.location
-
-
-instance HasDataOf (PlaneGraph s v e f r) (VertexId' s) where
-  type DataOf (PlaneGraph s v e f r) (VertexId' s) = v
-  dataOf v = graph.dataOf v.vData
-
-instance HasDataOf (PlaneGraph s v e f r) (Dart s) where
-  type DataOf (PlaneGraph s v e f r) (Dart s) = e
-  dataOf d = graph.dataOf d
-
-instance HasDataOf (PlaneGraph s v e f r) (FaceId' s) where
-  type DataOf (PlaneGraph s v e f r) (FaceId' s) = f
-  dataOf f = graph.dataOf f
-
-
--- | Traverse the vertices
---
--- (^.vertexData) <$> traverseVertices (\i x -> Just (i,x)) myGraph
--- Just [(VertexId 0,()),(VertexId 1,()),(VertexId 2,()),(VertexId 3,())]
--- >>> traverseVertices (\i x -> print (i,x)) myGraph >> pure ()
--- (VertexId 0,())
--- (VertexId 1,())
--- (VertexId 2,())
--- (VertexId 3,())
-traverseVertices   :: Applicative m
-                   => (VertexId' s -> v -> m v')
-                   -> PlaneGraph s v e f r
-                   -> m (PlaneGraph s v' e f r)
-traverseVertices f = itraverseOf (vertexData.itraversed) (\i -> f (VertexId i))
-
--- | Traverses the darts
---
--- >>> traverseDarts (\d x -> print (d,x)) myGraph >> pure ()
--- (Dart (Arc 0) +1,"a+")
--- (Dart (Arc 0) -1,"a-")
--- (Dart (Arc 1) +1,"b+")
--- (Dart (Arc 1) -1,"b-")
--- (Dart (Arc 2) +1,"c+")
--- (Dart (Arc 2) -1,"c-")
--- (Dart (Arc 3) +1,"d+")
--- (Dart (Arc 3) -1,"d-")
--- (Dart (Arc 4) +1,"e+")
--- (Dart (Arc 4) -1,"e-")
--- (Dart (Arc 5) +1,"g+")
--- (Dart (Arc 5) -1,"g-")
-traverseDarts   :: Applicative m
-                => (Dart s -> e -> m e')
-                -> PlaneGraph s v e f r
-                -> m (PlaneGraph s v e' f r)
-traverseDarts f = traverseOf graph (PG.traverseDarts f)
-
-
--- | Traverses the faces
---
--- >>> traverseFaces (\i x -> print (i,x)) myGraph >> pure ()
--- (FaceId 0,())
--- (FaceId 1,())
--- (FaceId 2,())
--- (FaceId 3,())
-traverseFaces   :: Applicative m
-                => (FaceId' s  -> f -> m f')
-                -> PlaneGraph s v e f r
-                -> m (PlaneGraph s v e f' r)
-traverseFaces f = traverseOf graph (PG.traverseFaces f)
-
-
--- | Getter for the data at the endpoints of a dart
---
--- running time: \(O(1)\)
-endPointsOf   :: Dart s -> Getter (PlaneGraph s v e f r )
-                                  (VertexData r v, VertexData r v)
-endPointsOf d = graph.PG.endPointDataOf d
-
--- | Data corresponding to the endpoints of the dart
---
--- running time: \(O(1)\)
-endPointData   :: Dart s -> PlaneGraph s v e f r
-               ->  (VertexData r v, VertexData r v)
-endPointData d = PG.endPointData d . _graph
-
---------------------------------------------------------------------------------
-
--- | gets the id of the outer face
---
--- running time: \(O(n)\)
-outerFaceId    :: (Ord r, Fractional r) => PlaneGraph s v e f r -> FaceId' s
-outerFaceId ps = leftFace (outerFaceDart ps) ps
-
-
--- | gets a dart incident to the outer face (in particular, that has the
--- outerface on its left)
---
--- running time: \(O(n)\)
-outerFaceDart    :: (Ord r, Fractional r) => PlaneGraph s v e f r -> Dart s
-outerFaceDart ps = d
-  where
-    (v,_)  = V.minimumBy (comparing (^._2.location.xCoord)) . vertices $ ps
-    d :+ _ = V.maximumBy (cmpSlope `on` (^.extra))
-           .  fmap (\d' -> d' :+ (edgeSegment d' ps)^.core.to supportingLine)
-           $ incidentEdges v ps
-    -- based on the approach sketched at https://cstheory.stackexchange.com/questions/27586/finding-outer-face-in-plane-graph-embedded-planar-graph
-    -- basically: find the leftmost vertex, find the incident edge with the largest slope
-    -- and take the face left of that edge. This is the outerface.
-    -- note that this requires that the edges are straight line segments
-    --
-
-
-
---------------------------------------------------------------------------------
-
--- | Reports all edges as line segments
-edgeSegments    :: PlaneGraph s v e f r -> V.Vector (Dart s, LineSegment 2 v r :+ e)
-edgeSegments ps = fmap withSegment . edges $ ps
-  where
-    withSegment (d,e) = let (p,q) = bimap vtxDataToExt vtxDataToExt
-                                  $ ps^.endPointsOf d
-                            seg   = ClosedLineSegment p q
-                        in (d, seg :+ e)
-
--- | Given a dart and the graph constructs the line segment representing the dart
---
--- \(O(1)\)
-edgeSegment      :: Dart s -> PlaneGraph s v e f r -> LineSegment 2 v r :+ e
-edgeSegment d ps = seg :+ ps^.dataOf d
-  where
-    seg = let (p,q) = bimap vtxDataToExt vtxDataToExt $ ps^.endPointsOf d
-          in ClosedLineSegment p q
-
--- | The polygon describing the face
---
--- runningtime: \(O(k)\), where \(k\) is the size of the face.
-rawFaceBoundary      :: FaceId' s -> PlaneGraph s v e f r
-                    -> SimplePolygon v r :+ f
-rawFaceBoundary i ps = pg :+ (ps^.dataOf i)
-  where
-    pg = fromPoints . F.toList . fmap (\j -> ps^.graph.dataOf j.to vtxDataToExt)
-       . boundaryVertices i $ ps
-
--- | Alias for rawFace Boundary
---
--- runningtime: \(O(k)\), where \(k\) is the size of the face.
-rawFacePolygon :: FaceId' s -> PlaneGraph s v e f r -> SimplePolygon v r :+ f
-rawFacePolygon = rawFaceBoundary
-
--- | Lists all faces of the plane graph.
-rawFacePolygons    :: PlaneGraph s v e f r
-                   -> V.Vector (FaceId' s, SimplePolygon v r :+ f)
-rawFacePolygons ps = fmap (\i -> (i,rawFacePolygon i ps)) . faces' $ ps
-
-
---------------------------------------------------------------------------------
--- * Reading and Writing the Plane Graph
-
--- | Reads a plane graph from a bytestring
-readPlaneGraph   :: (FromJSON v, FromJSON e, FromJSON f, FromJSON r)
-                 => proxy s -> B.ByteString
-                 -> Either ParseException (PlaneGraph s v e f r)
-readPlaneGraph _ = decodeYaml
-
--- | Writes a plane graph to a bytestring
-writePlaneGraph :: (ToJSON v, ToJSON e, ToJSON f, ToJSON r)
-                => PlaneGraph s v e f r -> B.ByteString
-writePlaneGraph = encodeYaml . Versioned planeGraphVersion
-
-
-planeGraphVersion :: Version
-planeGraphVersion = makeVersion [1,0]
-
---------------------------------------------------------------------------------
-
--- | Labels the edges of a plane graph with their distances, as specified by
--- the distance function.
-withEdgeDistances     :: (Point 2 r ->  Point 2 r -> a)
-                      -> PlaneGraph s p e f r -> PlaneGraph s p (a :+ e) f r
-withEdgeDistances f g = g&graph.PG.dartData %~ fmap (\(d,x) -> (d,len d :+ x))
-  where
-    len d = uncurry f . over both (^.location) $ endPointData d g
+import           Data.PlaneGraph.IO
+import           Data.PlaneGraph.Core
diff --git a/src/Data/PlaneGraph/AdjRep.hs b/src/Data/PlaneGraph/AdjRep.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/PlaneGraph/AdjRep.hs
@@ -0,0 +1,34 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Data.PlaneGraph.AdjRep
+-- Copyright   :  (C) Frank Staals
+-- License     :  see the LICENSE file
+-- Maintainer  :  Frank Staals
+--
+-- Data types that help encode/decode a planegraph as a JSON/YAML file.
+--
+--------------------------------------------------------------------------------
+module Data.PlaneGraph.AdjRep( Gr(..)
+                             , Vtx(..)
+                             , Face(..)
+                             ) where
+
+import Data.PlanarGraph.AdjRep(Gr(..), Face(..))
+import Data.Aeson
+import Data.Geometry.Point
+import GHC.Generics (Generic)
+
+--------------------------------------------------------------------------------
+
+-- | A vertex, represented by an id, location, its adjacencies, and its data.
+data Vtx v e r = Vtx { id    :: Int
+                     , loc   :: Point 2 r
+                     , adj   :: [(Int,e)] -- ^ adjacent vertices + data on the
+                                          -- edge. Adjacencies are given in
+                                          -- arbitrary order
+                     , vData :: v
+                     } deriving (Generic, Functor)
+
+instance (ToJSON r,   ToJSON v, ToJSON e)     => ToJSON   (Vtx v e r) where
+  toEncoding = genericToEncoding defaultOptions
+instance (FromJSON r, FromJSON v, FromJSON e) => FromJSON (Vtx v e r)
diff --git a/src/Data/PlaneGraph/Core.hs b/src/Data/PlaneGraph/Core.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/PlaneGraph/Core.hs
@@ -0,0 +1,698 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE OverloadedStrings #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Data.PlaneGraph.Core
+-- Copyright   :  (C) Frank Staals
+-- License     :  see the LICENSE file
+-- Maintainer  :  Frank Staals
+--
+-- Data type for planar graphs embedded in \(\mathbb{R}^2\). For functions that
+-- export faces and edges etc, we assume the graph has a (planar) straight line
+-- embedding.
+--
+--------------------------------------------------------------------------------
+module Data.PlaneGraph.Core( PlaneGraph(PlaneGraph), graph
+                           , PlanarGraph
+                           , VertexData(VertexData), vData, location, vtxDataToExt
+                           , fromSimplePolygon, fromConnectedSegments
+                           , PG.fromAdjacencyLists
+
+                           , numVertices, numEdges, numFaces, numDarts
+                           , dual
+
+                           , vertices', vertices
+                           , edges', edges
+                           , faces', faces, internalFaces, faces''
+                           , darts', darts
+                           , traverseVertices, traverseDarts, traverseFaces
+
+                           , headOf, tailOf, twin, endPoints
+
+                           , incidentEdges, incomingEdges, outgoingEdges
+                           , neighboursOf
+                           , nextIncidentEdge, prevIncidentEdge
+
+
+                           , leftFace, rightFace
+                           , nextEdge, prevEdge
+                           , boundary, boundary', boundaryDart, boundaryVertices
+                           , outerFaceId, outerFaceDart
+
+                           , vertexDataOf, locationOf, HasDataOf(..)
+
+                           , endPointsOf, endPointData
+                           , vertexData, faceData, dartData, rawDartData
+
+                           , edgeSegment, edgeSegments
+                           , rawFacePolygon, rawFaceBoundary
+                           , rawFacePolygons
+
+                           , VertexId(..), FaceId(..), Dart, World(..), VertexId', FaceId'
+
+
+                           , withEdgeDistances
+                           -- , writePlaneGraph, readPlaneGraph
+                           ) where
+
+
+import           Control.Lens hiding (holes, holesOf, (.=))
+import           Data.Aeson
+import qualified Data.CircularSeq as C
+import           Data.Ext
+import qualified Data.Foldable as F
+import           Data.Function (on)
+import           Data.Geometry.Box
+import           Data.Geometry.Interval
+import           Data.Geometry.Line (cmpSlope, supportingLine)
+import           Data.Geometry.LineSegment hiding (endPoints)
+import           Data.Geometry.Point
+import           Data.Geometry.Polygon
+import           Data.Geometry.Properties
+import qualified Data.List.NonEmpty as NonEmpty
+import qualified Data.Map as M
+import           Data.Ord (comparing)
+import qualified Data.PlanarGraph as PG
+import           Data.PlanarGraph( PlanarGraph, planarGraph, dual
+                                 , Dart(..), VertexId(..), FaceId(..), Arc(..)
+                                 , Direction(..), twin
+                                 , World(..)
+                                 , FaceId', VertexId'
+                                 , HasDataOf(..)
+                                 )
+import           Data.Util
+import qualified Data.Vector as V
+import           GHC.Generics (Generic)
+
+--------------------------------------------------------------------------------
+
+
+-- $setup
+-- >>> import Data.Proxy
+-- >>> import Data.PlaneGraph.AdjRep(Gr(Gr),Face(Face),Vtx(Vtx))
+-- >>> import Data.PlaneGraph.IO(fromAdjRep)
+-- >>> import Data.PlanarGraph.Dart(Dart(..),Arc(..))
+-- >>> :{
+-- let dart i s = Dart (Arc i) (read s)
+--     small :: Gr (Vtx Int String Int) (Face String)
+--     small = Gr [ Vtx 0 (Point2 0 0) [ (2,"0->2")
+--                                     , (1,"0->1")
+--                                     , (3,"0->3")
+--                                     ] 0
+--                , Vtx 1 (Point2 2 2) [ (0,"1->0")
+--                                     , (2,"1->2")
+--                                     , (3,"1->3")
+--                                     ] 1
+--                , Vtx 2 (Point2 2 0) [ (0,"2->0")
+--                                     , (1,"2->1")
+--                                     ] 2
+--                , Vtx 3 (Point2 (-1) 4) [ (0,"3->0")
+--                                        , (1,"3->1")
+--                                        ] 3
+--                ]
+--                [ Face (2,1) "OuterFace"
+--                , Face (0,1) "A"
+--                , Face (1,0) "B"
+--                ]
+--     smallG = fromAdjRep (Proxy :: Proxy ()) small
+-- :}
+--
+--
+-- This represents the following graph. Note that the graph is undirected, the
+-- arrows are just to indicate what the Positive direction of the darts is.
+--
+-- ![myGraph](docs/Data/PlaneGraph/small.png)
+
+
+--------------------------------------------------------------------------------
+-- * Vertex Data
+
+-- | Note that the functor instance is in v
+data VertexData r v = VertexData { _location :: !(Point 2 r)
+                                 , _vData    :: !v
+                                 } deriving (Show,Eq,Ord,Generic
+                                            ,Functor,Foldable,Traversable)
+makeLenses ''VertexData
+
+vtxDataToExt                  :: VertexData r v -> Point 2 r :+ v
+vtxDataToExt (VertexData p v) = p :+ v
+
+instance Bifunctor VertexData where
+  bimap f g (VertexData p v) = VertexData (fmap f p) (g v)
+
+instance (FromJSON r, FromJSON v) => FromJSON (VertexData r v) where
+  parseJSON = fmap (\(l :+ d) -> VertexData l d) . parseJSON
+
+instance (ToJSON r, ToJSON v) => ToJSON (VertexData r v) where
+  toJSON     = toJSON     . vtxDataToExt
+  toEncoding = toEncoding . vtxDataToExt
+
+--------------------------------------------------------------------------------
+-- * The PlaneGraph type
+
+-- | Embedded, *connected*, planar graph
+newtype PlaneGraph s v e f r =
+    PlaneGraph { _graph :: PlanarGraph s Primal (VertexData r v) e f }
+      deriving (Show,Eq,Generic)
+makeLenses ''PlaneGraph
+
+type instance NumType   (PlaneGraph s v e f r) = r
+type instance Dimension (PlaneGraph s v e f r) = 2
+
+instance Functor (PlaneGraph s v e f) where
+  fmap f pg = pg&graph.PG.vertexData.traverse.location %~ fmap f
+
+instance IsBoxable (PlaneGraph s v e f r) where
+  boundingBox = boundingBoxList' . F.toList . fmap (^._2.location) . vertices
+
+
+--------------------------------------------------------------------------------
+-- * Constructing a Plane Graph
+
+-- | Construct a plane graph from a simple polygon. It is assumed that the
+-- polygon is given in counterclockwise order.
+--
+-- the interior of the polygon will have faceId 0
+--
+-- pre: the input polygon is given in counterclockwise order
+-- running time: \(O(n)\).
+fromSimplePolygon                            :: proxy s
+                                             -> SimplePolygon p r
+                                             -> f -- ^ data inside
+                                             -> f -- ^ data outside the polygon
+                                             -> PlaneGraph s p () f r
+fromSimplePolygon p (SimplePolygon vs) iD oD = PlaneGraph g'
+  where
+    g      = fromVertices p vs
+    fData' = V.fromList [iD, oD]
+    g'     = g & PG.faceData .~ fData'
+
+-- | Constructs a planar from the given vertices
+fromVertices      :: proxy s
+                  -> C.CSeq (Point 2 r :+ p)
+                  -> PlanarGraph s Primal (VertexData r p) () ()
+fromVertices _ vs = g&PG.vertexData .~ vData'
+  where
+    n = length vs
+    g = planarGraph [ [ (Dart (Arc i)               Positive, ())
+                      , (Dart (Arc $ (i+1) `mod` n) Negative, ())
+                      ]
+                    | i <- [0..(n-1)]]
+    vData' = V.fromList . map (\(p :+ e) -> VertexData p e) . F.toList $ vs
+
+-- | Constructs a connected plane graph
+--
+-- pre: The segments form a single connected component
+--
+-- running time: \(O(n\log n)\)
+fromConnectedSegments      :: (Foldable f, Ord r, Num r)
+                           => proxy s
+                           -> f (LineSegment 2 p r :+ e)
+                           -> PlaneGraph s (NonEmpty.NonEmpty p) e () r
+fromConnectedSegments _ ss = PlaneGraph $ planarGraph dts & PG.vertexData .~ vxData
+  where
+    pts         = M.fromListWith (<>) . concatMap f . zipWith g [0..] . F.toList $ ss
+    f (s :+ e)  = [ ( s^.start.core
+                    , SP (sing $ s^.start.extra) [(s^.end.core)   :+ h Positive e])
+                  , ( s^.end.core
+                    , SP (sing $ s^.end.extra)   [(s^.start.core) :+ h Negative e])
+                  ]
+    g i (s :+ e) = s :+ (Arc i :+ e)
+    h d (a :+ e) = (Dart a d, e)
+
+    sing x = x NonEmpty.:| []
+
+    vts    = map (\(p,sp) -> (p,map (^.extra) . sortArround (ext p) <$> sp))
+           . M.assocs $ pts
+    -- vertex Data
+    vxData = V.fromList . map (\(p,sp) -> VertexData p (sp^._1)) $ vts
+    -- The darts
+    dts    = map (^._2._2) vts
+
+
+--------------------------------------------------------------------------------
+-- * Basic Graph information
+
+-- | Get the number of vertices
+--
+-- >>> numVertices smallG
+-- 4
+numVertices :: PlaneGraph s v e f r  -> Int
+numVertices = PG.numVertices . _graph
+
+-- | Get the number of Darts
+--
+-- >>> numDarts smallG
+-- 10
+numDarts :: PlaneGraph s v e f r  -> Int
+numDarts = PG.numDarts . _graph
+
+-- | Get the number of Edges
+--
+-- >>> numEdges smallG
+-- 5
+numEdges :: PlaneGraph s v e f r  -> Int
+numEdges = PG.numEdges . _graph
+
+-- | Get the number of faces
+--
+-- >>> numFaces smallG
+-- 3
+numFaces :: PlaneGraph s v e f r  -> Int
+numFaces = PG.numFaces . _graph
+
+-- | Enumerate all vertices
+--
+-- >>> vertices' smallG
+-- [VertexId 0,VertexId 1,VertexId 2,VertexId 3]
+vertices'   :: PlaneGraph s v e f r  -> V.Vector (VertexId' s)
+vertices' = PG.vertices' . _graph
+
+-- | Enumerate all vertices, together with their vertex data
+-- >>> mapM_ print $ vertices smallG
+-- (VertexId 0,VertexData {_location = Point2 [0,0], _vData = 0})
+-- (VertexId 1,VertexData {_location = Point2 [2,2], _vData = 1})
+-- (VertexId 2,VertexData {_location = Point2 [2,0], _vData = 2})
+-- (VertexId 3,VertexData {_location = Point2 [-1,4], _vData = 3})
+vertices   :: PlaneGraph s v e f r  -> V.Vector (VertexId' s, VertexData r v)
+vertices = PG.vertices . _graph
+
+-- | Enumerate all darts
+darts' :: PlaneGraph s v e f r  -> V.Vector (Dart s)
+darts' = PG.darts' . _graph
+
+-- | Get all darts together with their data
+darts :: PlaneGraph s v e f r  -> V.Vector (Dart s, e)
+darts = PG.darts . _graph
+
+-- | Enumerate all edges. We report only the Positive darts
+edges' :: PlaneGraph s v e f r  -> V.Vector (Dart s)
+edges' = PG.edges' . _graph
+
+-- | Lens to access the raw dart data, use at your own risk
+rawDartData :: Lens (PlaneGraph s v e f r) (PlaneGraph s v e' f r)
+                    (V.Vector e) (V.Vector e')
+rawDartData = graph.PG.rawDartData
+
+-- | lens to access the Dart Data
+dartData :: Lens (PlaneGraph s v e f r) (PlaneGraph s v e' f r)
+                 (V.Vector (Dart s, e)) (V.Vector (Dart s, e'))
+dartData = graph.PG.dartData
+
+-- | Lens to access face data
+faceData :: Lens (PlaneGraph s v e f r) (PlaneGraph s v e f' r)
+                 (V.Vector f) (V.Vector f')
+faceData = graph.PG.faceData
+
+vertexData :: Lens (PlaneGraph s v e f r) (PlaneGraph s v' e f r)
+                   (V.Vector v) (V.Vector v')
+vertexData = lens get'' set''
+  where
+    get'' pg    = let v = pg^.graph.PG.vertexData in (^.vData) <$> v
+    set'' pg v' = pg&graph.PG.vertexData %~ V.zipWith f v'
+    f x (VertexData l _) = VertexData l x
+
+-- | Enumerate all edges with their edge data. We report only the Positive
+-- darts.
+--
+-- >>> mapM_ print $ edges smallG
+-- (Dart (Arc 0) +1,"0->2")
+-- (Dart (Arc 1) +1,"0->1")
+-- (Dart (Arc 2) +1,"0->3")
+-- (Dart (Arc 4) +1,"1->2")
+-- (Dart (Arc 3) +1,"1->3")
+edges :: PlaneGraph s v e f r  -> V.Vector (Dart s, e)
+edges = PG.edges . _graph
+
+-- | Enumerate all faces in the plane graph
+faces' :: PlaneGraph s v e f r  -> V.Vector (FaceId' s)
+faces' = PG.faces' . _graph
+
+-- | All faces with their face data.
+--
+-- >>> mapM_ print $ faces smallG
+-- (FaceId 0,"OuterFace")
+-- (FaceId 1,"A")
+-- (FaceId 2,"B")
+faces :: PlaneGraph s v e f r  -> V.Vector (FaceId' s, f)
+faces = PG.faces . _graph
+
+
+-- | Reports the outerface and all internal faces separately.
+-- running time: \(O(n)\)
+faces''   :: (Ord r, Fractional r)
+          => PlaneGraph s v e f r -> ((FaceId' s, f), V.Vector (FaceId' s, f))
+faces'' g = let i = outerFaceId g
+            in ((i,g^.dataOf i), V.filter (\(j,_) -> i /= j) $ faces g)
+
+-- | Reports all internal faces.
+-- running time: \(O(n)\)
+internalFaces :: (Ord r, Fractional r)
+              => PlaneGraph s v e f r -> V.Vector (FaceId' s, f)
+internalFaces = snd . faces''
+
+-- | The tail of a dart, i.e. the vertex this dart is leaving from
+--
+-- running time: \(O(1)\)
+--
+-- >>> tailOf (dart 0 "+1") smallG
+-- VertexId 0
+tailOf   :: Dart s -> PlaneGraph s v e f r  -> VertexId' s
+tailOf d = PG.tailOf d . _graph
+
+-- | The vertex this dart is heading in to
+--
+-- running time: \(O(1)\)
+--
+-- >>> headOf (dart 0 "+1") smallG
+-- VertexId 2
+headOf   :: Dart s -> PlaneGraph s v e f r  -> VertexId' s
+headOf d = PG.headOf d . _graph
+
+-- | endPoints d g = (tailOf d g, headOf d g)
+--
+-- running time: \(O(1)\)
+--
+-- >>> endPoints (dart 0 "+1") smallG
+-- (VertexId 0,VertexId 2)
+endPoints   :: Dart s -> PlaneGraph s v e f r
+            -> (VertexId' s, VertexId' s)
+endPoints d = PG.endPoints d . _graph
+
+-- | All edges incident to vertex v, in counterclockwise order around v.
+--
+-- running time: \(O(k)\), where \(k\) is the output size
+--
+-- >>> incidentEdges (VertexId 1) smallG
+-- [Dart (Arc 1) -1,Dart (Arc 4) +1,Dart (Arc 3) +1]
+incidentEdges   :: VertexId' s -> PlaneGraph s v e f r -> V.Vector (Dart s)
+incidentEdges v = PG.incidentEdges v . _graph
+
+-- | All incoming edges incident to vertex v, in counterclockwise order around v.
+--
+-- >>> incomingEdges (VertexId 1) smallG
+-- [Dart (Arc 1) -1]
+incomingEdges   :: VertexId' s -> PlaneGraph s v e f r -> V.Vector (Dart s)
+incomingEdges v = PG.incomingEdges v . _graph
+
+-- | All outgoing edges incident to vertex v, in counterclockwise order around v.
+--
+-- >>> outgoingEdges (VertexId 1) smallG
+-- [Dart (Arc 4) +1,Dart (Arc 3) +1]
+outgoingEdges   :: VertexId' s -> PlaneGraph s v e f r  -> V.Vector (Dart s)
+outgoingEdges v = PG.outgoingEdges v . _graph
+
+-- | Gets the neighbours of a particular vertex, in counterclockwise order
+-- around the vertex.
+--
+-- running time: \(O(k)\), where \(k\) is the output size
+--
+-- >>> neighboursOf (VertexId 1) smallG
+-- [VertexId 0,VertexId 2,VertexId 3]
+neighboursOf   :: VertexId' s -> PlaneGraph s v e f r
+               -> V.Vector (VertexId' s)
+neighboursOf v = PG.neighboursOf v . _graph
+
+-- | Given a dart d that points into some vertex v, report the next dart in the
+-- cyclic order around v in clockwise direction.
+--
+-- running time: \(O(1)\)
+--
+-- >>> nextIncidentEdge (dart 1 "+1") smallG
+-- Dart (Arc 2) +1
+nextIncidentEdge   :: Dart s -> PlaneGraph s v e f r -> Dart s
+nextIncidentEdge d = PG.nextIncidentEdge d . _graph
+
+-- | Given a dart d that points into some vertex v, report the next dart in the
+-- cyclic order around v (in clockwise order)
+--
+-- running time: \(O(1)\)
+--
+-- >>> prevIncidentEdge (dart 1 "+1") smallG
+-- Dart (Arc 0) +1
+prevIncidentEdge   :: Dart s -> PlaneGraph s v e f r -> Dart s
+prevIncidentEdge d = PG.prevIncidentEdge d . _graph
+
+
+-- | The face to the left of the dart
+--
+-- running time: \(O(1)\).
+--
+-- >>> leftFace (dart 1 "+1") smallG
+-- FaceId 2
+-- >>> leftFace (dart 1 "-1") smallG
+-- FaceId 1
+-- >>> leftFace (dart 2 "+1") smallG
+-- FaceId 0
+-- >>> leftFace (dart 2 "-1") smallG
+-- FaceId 2
+leftFace   :: Dart s -> PlaneGraph s v e f r  -> FaceId' s
+leftFace d = PG.leftFace d . _graph
+
+-- | The face to the right of the dart
+--
+-- running time: \(O(1)\).
+--
+-- >>> rightFace (dart 1 "+1") smallG
+-- FaceId 1
+-- >>> rightFace (dart 1 "-1") smallG
+-- FaceId 2
+-- >>> rightFace (dart 2 "+1") smallG
+-- FaceId 2
+-- >>> rightFace (dart 2 "-1") smallG
+-- FaceId 0
+rightFace   :: Dart s -> PlaneGraph s v e f r  -> FaceId' s
+rightFace d = PG.rightFace d . _graph
+
+
+-- | Get the next edge along the face
+--
+--
+-- running time: \(O(1)\).
+--
+-- >>> nextEdge (dart 1 "+1") smallG
+-- Dart (Arc 4) +1
+nextEdge   :: Dart s -> PlaneGraph s v e f r -> Dart s
+nextEdge d = PG.nextEdge d . _graph
+
+-- | Get the previous edge along the face
+--
+--
+-- running time: \(O(1)\).
+--
+-- >>> prevEdge (dart 1 "+1") smallG
+-- Dart (Arc 0) -1
+prevEdge   :: Dart s -> PlaneGraph s v e f r -> Dart s
+prevEdge d = PG.prevEdge d . _graph
+
+
+-- | The darts bounding this face, for internal faces in clockwise order, for
+-- the outer face in counter clockwise order.
+--
+--
+-- running time: \(O(k)\), where \(k\) is the output size.
+--
+--
+boundary   :: FaceId' s -> PlaneGraph s v e f r  -> V.Vector (Dart s)
+boundary f = PG.boundary f . _graph
+
+-- | Generates the darts incident to a face, starting with the given dart.
+--
+--
+-- \(O(k)\), where \(k\) is the number of darts reported
+boundary'   :: Dart s -> PlaneGraph s v e f r -> V.Vector (Dart s)
+boundary' d = PG.boundary' d . _graph
+
+-- | Gets a dart bounding this face. I.e. a dart d such that the face lies to
+-- the right of the dart.
+boundaryDart   :: FaceId' s -> PlaneGraph s v e f r -> Dart s
+boundaryDart f = PG.boundaryDart f . _graph
+
+-- | The vertices bounding this face, for internal faces in clockwise order, for
+-- the outer face in counter clockwise order.
+--
+--
+-- running time: \(O(k)\), where \(k\) is the output size.
+boundaryVertices   :: FaceId' s -> PlaneGraph s v e f r
+                   -> V.Vector (VertexId' s)
+boundaryVertices f = PG.boundaryVertices f . _graph
+
+
+--------------------------------------------------------------------------------
+-- * Access data
+
+vertexDataOf   :: VertexId' s -> Lens' (PlaneGraph s v e f r ) (VertexData r v)
+vertexDataOf v = graph.PG.dataOf v
+
+locationOf   :: VertexId' s -> Lens' (PlaneGraph s v e f r ) (Point 2 r)
+locationOf v = vertexDataOf v.location
+
+
+instance HasDataOf (PlaneGraph s v e f r) (VertexId' s) where
+  type DataOf (PlaneGraph s v e f r) (VertexId' s) = v
+  dataOf v = graph.dataOf v.vData
+
+instance HasDataOf (PlaneGraph s v e f r) (Dart s) where
+  type DataOf (PlaneGraph s v e f r) (Dart s) = e
+  dataOf d = graph.dataOf d
+
+instance HasDataOf (PlaneGraph s v e f r) (FaceId' s) where
+  type DataOf (PlaneGraph s v e f r) (FaceId' s) = f
+  dataOf f = graph.dataOf f
+
+
+-- | Traverse the vertices
+--
+-- (^.vertexData) <$> traverseVertices (\i x -> Just (i,x)) smallG
+-- Just [(VertexId 0,0),(VertexId 1,1),(VertexId 2,2),(VertexId 3,3)]
+-- >>> traverseVertices (\i x -> print (i,x)) smallG >> pure ()
+-- (VertexId 0,0)
+-- (VertexId 1,1)
+-- (VertexId 2,2)
+-- (VertexId 3,3)
+traverseVertices   :: Applicative m
+                   => (VertexId' s -> v -> m v')
+                   -> PlaneGraph s v e f r
+                   -> m (PlaneGraph s v' e f r)
+traverseVertices f = itraverseOf (vertexData.itraversed) (\i -> f (VertexId i))
+
+-- | Traverses the darts
+--
+-- >>> traverseDarts (\d x -> print (d,x)) smallG >> pure ()
+-- (Dart (Arc 0) +1,"0->2")
+-- (Dart (Arc 0) -1,"2->0")
+-- (Dart (Arc 1) +1,"0->1")
+-- (Dart (Arc 1) -1,"1->0")
+-- (Dart (Arc 2) +1,"0->3")
+-- (Dart (Arc 2) -1,"3->0")
+-- (Dart (Arc 3) +1,"1->3")
+-- (Dart (Arc 3) -1,"3->1")
+-- (Dart (Arc 4) +1,"1->2")
+-- (Dart (Arc 4) -1,"2->1")
+traverseDarts   :: Applicative m
+                => (Dart s -> e -> m e')
+                -> PlaneGraph s v e f r
+                -> m (PlaneGraph s v e' f r)
+traverseDarts f = traverseOf graph (PG.traverseDarts f)
+
+
+-- | Traverses the faces
+--
+-- >>> traverseFaces (\i x -> print (i,x)) smallG >> pure ()
+-- (FaceId 0,"OuterFace")
+-- (FaceId 1,"A")
+-- (FaceId 2,"B")
+traverseFaces   :: Applicative m
+                => (FaceId' s  -> f -> m f')
+                -> PlaneGraph s v e f r
+                -> m (PlaneGraph s v e f' r)
+traverseFaces f = traverseOf graph (PG.traverseFaces f)
+
+
+-- | Getter for the data at the endpoints of a dart
+--
+-- running time: \(O(1)\)
+endPointsOf   :: Dart s -> Getter (PlaneGraph s v e f r )
+                                  (VertexData r v, VertexData r v)
+endPointsOf d = graph.PG.endPointDataOf d
+
+-- | Data corresponding to the endpoints of the dart
+--
+-- running time: \(O(1)\)
+endPointData   :: Dart s -> PlaneGraph s v e f r
+               ->  (VertexData r v, VertexData r v)
+endPointData d = PG.endPointData d . _graph
+
+--------------------------------------------------------------------------------
+
+-- | gets the id of the outer face
+--
+-- running time: \(O(n)\)
+--
+outerFaceId    :: (Ord r, Fractional r) => PlaneGraph s v e f r -> FaceId' s
+outerFaceId ps = leftFace (outerFaceDart ps) ps
+
+
+-- | gets a dart incident to the outer face (in particular, that has the
+-- outerface on its left)
+--
+-- running time: \(O(n)\)
+--
+outerFaceDart    :: (Ord r, Fractional r) => PlaneGraph s v e f r -> Dart s
+outerFaceDart ps = d
+  where
+    (v,_)  = V.minimumBy (comparing (^._2.location)) . vertices $ ps
+           -- compare lexicographically; i.e. if same x-coord prefer the one with the
+           -- smallest y-coord
+    d :+ _ = V.maximumBy (cmpSlope `on` (^.extra))
+           .  fmap (\d' -> d' :+ (edgeSegment d' ps)^.core.to supportingLine)
+           $ incidentEdges v ps
+    -- based on the approach sketched at https://cstheory.stackexchange.com/questions/27586/finding-outer-face-in-plane-graph-embedded-planar-graph
+    -- basically: find the leftmost vertex, find the incident edge with the largest slope
+    -- and take the face left of that edge. This is the outerface.
+    -- note that this requires that the edges are straight line segments
+
+
+--------------------------------------------------------------------------------
+-- * Reporting Geometries
+
+-- | Reports all edges as line segments
+--
+-- >>> mapM_ print $ edgeSegments smallG
+-- (Dart (Arc 0) +1,LineSegment (Closed (Point2 [0,0] :+ 0)) (Closed (Point2 [2,0] :+ 2)) :+ "0->2")
+-- (Dart (Arc 1) +1,LineSegment (Closed (Point2 [0,0] :+ 0)) (Closed (Point2 [2,2] :+ 1)) :+ "0->1")
+-- (Dart (Arc 2) +1,LineSegment (Closed (Point2 [0,0] :+ 0)) (Closed (Point2 [-1,4] :+ 3)) :+ "0->3")
+-- (Dart (Arc 4) +1,LineSegment (Closed (Point2 [2,2] :+ 1)) (Closed (Point2 [2,0] :+ 2)) :+ "1->2")
+-- (Dart (Arc 3) +1,LineSegment (Closed (Point2 [2,2] :+ 1)) (Closed (Point2 [-1,4] :+ 3)) :+ "1->3")
+edgeSegments    :: PlaneGraph s v e f r -> V.Vector (Dart s, LineSegment 2 v r :+ e)
+edgeSegments ps = fmap withSegment . edges $ ps
+  where
+    withSegment (d,e) = let (p,q) = bimap vtxDataToExt vtxDataToExt
+                                  $ ps^.endPointsOf d
+                            seg   = ClosedLineSegment p q
+                        in (d, seg :+ e)
+
+-- | Given a dart and the graph constructs the line segment representing the
+-- dart. The segment \(\overline{uv})\) is has \(u\) as its tail and \(v\) as
+-- its head.
+--
+-- \(O(1)\)
+edgeSegment      :: Dart s -> PlaneGraph s v e f r -> LineSegment 2 v r :+ e
+edgeSegment d ps = seg :+ ps^.dataOf d
+  where
+    seg = let (p,q) = bimap vtxDataToExt vtxDataToExt $ ps^.endPointsOf d
+          in ClosedLineSegment p q
+
+-- | The polygon describing the face
+--
+-- runningtime: \(O(k)\), where \(k\) is the size of the face.
+--
+--
+rawFaceBoundary      :: FaceId' s -> PlaneGraph s v e f r
+                    -> SimplePolygon v r :+ f
+rawFaceBoundary i ps = pg :+ (ps^.dataOf i)
+  where
+    pg = fromPoints . F.toList . fmap (\j -> ps^.graph.dataOf j.to vtxDataToExt)
+       . boundaryVertices i $ ps
+
+-- | Alias for rawFace Boundary
+--
+-- runningtime: \(O(k)\), where \(k\) is the size of the face.
+rawFacePolygon :: FaceId' s -> PlaneGraph s v e f r -> SimplePolygon v r :+ f
+rawFacePolygon = rawFaceBoundary
+
+-- | Lists all faces of the plane graph.
+rawFacePolygons    :: PlaneGraph s v e f r
+                   -> V.Vector (FaceId' s, SimplePolygon v r :+ f)
+rawFacePolygons ps = fmap (\i -> (i,rawFacePolygon i ps)) . faces' $ ps
+
+--------------------------------------------------------------------------------
+
+-- | Labels the edges of a plane graph with their distances, as specified by
+-- the distance function.
+withEdgeDistances     :: (Point 2 r ->  Point 2 r -> a)
+                      -> PlaneGraph s p e f r -> PlaneGraph s p (a :+ e) f r
+withEdgeDistances f g = g&graph.PG.dartData %~ fmap (\(d,x) -> (d,len d :+ x))
+  where
+    len d = uncurry f . over both (^.location) $ endPointData d g
diff --git a/src/Data/PlaneGraph/Draw.hs b/src/Data/PlaneGraph/Draw.hs
deleted file mode 100644
--- a/src/Data/PlaneGraph/Draw.hs
+++ /dev/null
@@ -1,24 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-module Data.PlaneGraph.Draw where
-
-import           Data.Ext
-import           Data.Geometry.Ipe
-import           Data.PlaneGraph
-import qualified Data.Vector as V
-
-
-drawPlaneGraph   :: IpeOut (PlaneGraph s v e f r) Group r
-drawPlaneGraph g = ipeGroup $ concatMap V.toList [vs, es, fs]
-  where
-    vs = (\(_,VertexData p _) -> iO $ defIO p) <$> vertices g
-    es = (\(_,s :+ _)         -> iO $ defIO s) <$> edgeSegments g
-    fs = (\(_,f :+ _)         -> iO $ defIO f) <$> rawFacePolygons g
-
-
--- drawPlaneGraphWith :: (VertexId' s :+ v -> IpeObject r)
---                    -> (Dart s :+ e      -> IpeObject r)
---                    -> (FaceId' s :+ f   -> IpeObject r)
---                    -> IpeObject
--- drawPlaneGraphWith vertexF edgeF faceF g = asIpeGroup $ vs ++ es ++ fs
---   where
---     vs = map vertices ()
diff --git a/src/Data/PlaneGraph/IO.hs b/src/Data/PlaneGraph/IO.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/PlaneGraph/IO.hs
@@ -0,0 +1,128 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Data.PlaneGraph.IO
+-- Copyright   :  (C) Frank Staals
+-- License     :  see the LICENSE file
+-- Maintainer  :  Frank Staals
+--
+-- Converting from/to Adjacency Representation of the plane graph
+--
+--------------------------------------------------------------------------------
+module Data.PlaneGraph.IO where
+
+import           Control.Lens
+import           Control.Monad (forM_)
+import           Data.Aeson
+import           Data.Bifunctor
+import qualified Data.ByteString as B
+import           Data.Ext
+import           Data.Geometry.Point
+import qualified Data.List as List
+import qualified Data.PlanarGraph.AdjRep as PGA
+import qualified Data.PlanarGraph.IO as PGIO
+import           Data.PlaneGraph.Core
+import           Data.PlaneGraph.AdjRep (Face,Vtx(Vtx),Gr(Gr))
+import           Data.Proxy
+import qualified Data.Vector as V
+import qualified Data.Vector.Mutable as MV
+import           Data.Yaml (ParseException)
+import           Data.Yaml.Util
+
+--------------------------------------------------------------------------------
+
+-- $setup
+-- >>> import Data.PlanarGraph.Dart
+-- >>> import Data.PlanarGraph.AdjRep(Face(..))
+-- >>> :{
+-- let dart i s = Dart (Arc i) (read s)
+--     small :: Gr (Vtx Int String Int) (Face String)
+--     small = Gr [ Vtx 0 (Point2 0 0) [ (2,"0->2")
+--                                     , (1,"0->1")
+--                                     , (3,"0->3")
+--                                     ] 0
+--                , Vtx 1 (Point2 2 2) [ (0,"1->0")
+--                                     , (2,"1->2")
+--                                     , (3,"1->3")
+--                                     ] 1
+--                , Vtx 2 (Point2 2 0) [ (0,"2->0")
+--                                     , (1,"2->1")
+--                                     ] 2
+--                , Vtx 3 (Point2 (-1) 4) [ (0,"3->0")
+--                                        , (1,"3->1")
+--                                        ] 3
+--                ]
+--                [ Face (2,1) "OuterFace"
+--                , Face (0,1) "A"
+--                , Face (1,0) "B"
+--                ]
+--     smallG = fromAdjRep (Proxy :: Proxy ()) small
+-- :}
+--
+--
+-- This represents the following graph. Note that the graph is undirected, the
+-- arrows are just to indicate what the Positive direction of the darts is.
+--
+-- ![myGraph](docs/Data/PlaneGraph/small.png)
+
+--------------------------------------------------------------------------------
+-- * Reading and Writing the Plane Graph
+
+-- | Reads a plane graph from a bytestring
+readPlaneGraph   :: (FromJSON v, FromJSON e, FromJSON f, FromJSON r)
+                 => proxy s -> B.ByteString
+                 -> Either ParseException (PlaneGraph s v e f r)
+readPlaneGraph _ = decodeYaml
+
+-- | Writes a plane graph to a bytestring
+writePlaneGraph :: (ToJSON v, ToJSON e, ToJSON f, ToJSON r)
+                => PlaneGraph s v e f r -> B.ByteString
+writePlaneGraph = encodeYaml
+
+--------------------------------------------------------------------------------
+
+instance (ToJSON v, ToJSON e, ToJSON f, ToJSON r) => ToJSON (PlaneGraph s v e f r) where
+  toEncoding = toEncoding . toAdjRep
+  toJSON     = toJSON     . toAdjRep
+
+instance (FromJSON v, FromJSON e, FromJSON f, FromJSON r)
+         => FromJSON (PlaneGraph s v e f r) where
+  parseJSON v = fromAdjRep (Proxy :: Proxy s) <$> parseJSON v
+
+--------------------------------------------------------------------------------
+
+-- | Transforms the planar graph into a format taht can be easily converted
+-- into JSON format. For every vertex, the adjacent vertices are given in
+-- counter clockwise order.
+--
+-- See 'toAdjacencyLists' for notes on how we handle self-loops.
+--
+-- running time: \(O(n)\)
+toAdjRep :: PlaneGraph s v e f r -> Gr (Vtx v e r) (Face f)
+toAdjRep = first (\(PGA.Vtx v aj (VertexData p x)) -> Vtx v p aj x) . PGIO.toAdjRep
+         .  view graph
+
+fromAdjRep    :: proxy s -> Gr (Vtx v e r) (Face f) -> PlaneGraph s v e f r
+fromAdjRep px = PlaneGraph . PGIO.fromAdjRep px
+              . first (\(Vtx v p aj x) -> PGA.Vtx v aj $ VertexData p x)
+
+--------------------------------------------------------------------------------
+
+-- | Orders the adjacencylists of a plane graph (with \(n\) vertices) (in Adj
+-- repr) so that they are all counter-clockwise around the vertices.
+--
+-- running time: \(O(n \log n)\)
+makeCCW            :: (Num r, Ord r) => Gr (Vtx v e r) f -> Gr (Vtx v e r) f
+makeCCW (Gr vs fs) = Gr (map sort' vs) fs
+  where
+    -- create an array that we can use to lookup the vertex locations in constant time.
+    location' = V.create $ do
+                   a <- MV.new (length vs)
+                   forM_ vs $ \(Vtx i p _ _) ->
+                     MV.write a i $ ext p
+                   pure a
+    -- sort the adjacencies around every vertex v
+    sort' (Vtx v p ajs x) = Vtx v p (List.sortBy (around p) ajs) x
+    around p (a,_) (b,_) = ccwCmpAround (ext p) (location' V.! a) (location' V.! b)
+
+--------------------------------------------------------------------------------
diff --git a/src/Data/Range.hs b/src/Data/Range.hs
deleted file mode 100644
--- a/src/Data/Range.hs
+++ /dev/null
@@ -1,244 +0,0 @@
-{-# LANGUAGE TemplateHaskell   #-}
-{-# LANGUAGE DeriveAnyClass  #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Data.Range
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
---
--- Data type for representing Generic Ranges (Intervals) and functions that
--- work with them.
---
---------------------------------------------------------------------------------
-module Data.Range( EndPoint(..)
-                 , isOpen, isClosed
-                 , unEndPoint
-                 , Range(..)
-                 , prettyShow
-                 , lower, upper
-                 , pattern OpenRange, pattern ClosedRange, pattern Range'
-                 , inRange, width, clipLower, clipUpper, midPoint
-                 , isValid, covers
-
-                 , shiftLeft, shiftRight
-                 ) where
-
-import Control.Lens
-import Data.Geometry.Properties
-import Data.Vinyl.CoRec
-import Text.Printf(printf)
-import GHC.Generics (Generic)
-import Control.DeepSeq
-
---------------------------------------------------------------------------------
--- * Representing Endpoints of a Range
-
--- | Endpoints of a range may either be open or closed.
-data EndPoint a = Open   !a
-                | Closed !a
-                deriving (Show,Read,Eq,Functor,Foldable,Traversable,Generic,NFData)
-
-instance Ord a => Ord (EndPoint a) where
-  -- | order on the actual value, and Open before Closed
-  a `compare` b = f a `compare` f b
-    where
-      f (Open x)   = (x,False)
-      f (Closed x) = (x,True)
-
-_unEndPoint            :: EndPoint a -> a
-_unEndPoint (Open a)   = a
-_unEndPoint (Closed a) = a
-
-unEndPoint :: Lens (EndPoint a) (EndPoint b) a b
-unEndPoint = lens _unEndPoint f
-  where
-    f (Open _) a   = Open a
-    f (Closed _) a = Closed a
-{-# INLINE unEndPoint #-}
-
-isOpen          :: EndPoint a -> Bool
-isOpen (Open _) = True
-isOpen _        = False
-
-isClosed :: EndPoint a -> Bool
-isClosed = not . isOpen
-
-
---------------------------------------------------------------------------------
--- * The Range Data type
-
--- | Data type for representing ranges.
-data Range a = Range { _lower :: !(EndPoint a)
-                     , _upper :: !(EndPoint a)
-                     }
-               deriving (Eq,Functor,Foldable,Traversable,Generic,NFData)
-makeLenses ''Range
-
-instance Show a => Show (Range a) where
-  show (Range l u) = printf "Range (%s) (%s)" (show l) (show u)
-
-type instance NumType (Range a) = a
-
-pattern OpenRange       :: a -> a -> Range a
-pattern OpenRange   l u = Range (Open l)   (Open u)
-
-pattern ClosedRange     :: a -> a -> Range a
-pattern ClosedRange l u = Range (Closed l) (Closed u)
-
--- | A range from l to u, ignoring/forgetting the type of the endpoints
-pattern Range'     :: a -> a -> Range a
-pattern Range' l u <- ((\r -> (r^.lower.unEndPoint,r^.upper.unEndPoint) -> (l,u)))
-{-# COMPLETE Range' #-}
-
-
--- | Helper function to show a range in mathematical notation.
---
--- >>> prettyShow $ OpenRange 0 2
--- "(0,2)"
--- >>> prettyShow $ ClosedRange 0 2
--- "[0,2]"
--- >>> prettyShow $ Range (Open 0) (Closed 5)
--- "(0,5]"
-prettyShow             :: Show a => Range a -> String
-prettyShow (Range l u) = concat [ lowerB, show (l^.unEndPoint), ","
-                                , show (u^.unEndPoint), upperB
-                                ]
-  where
-    lowerB = if isOpen l then "(" else "["
-    upperB = if isOpen u then ")" else "]"
-
-
-
--- | Test if a value lies in a range.
---
--- >>> 1 `inRange` (OpenRange 0 2)
--- True
--- >>> 1 `inRange` (OpenRange 0 1)
--- False
--- >>> 1 `inRange` (ClosedRange 0 1)
--- True
--- >>> 1 `inRange` (ClosedRange 1 1)
--- True
--- >>> 10 `inRange` (OpenRange 1 10)
--- False
--- >>> 10 `inRange` (ClosedRange 0 1)
--- False
-inRange                 :: Ord a => a -> Range a -> Bool
-x `inRange` (Range l u) = case ((l^.unEndPoint) `compare` x, x `compare` (u^.unEndPoint)) of
-    (_, GT) -> False
-    (GT, _) -> False
-    (LT,LT) -> True
-    (LT,EQ) -> include u -- depends on only u
-    (EQ,LT) -> include l -- depends on only l
-    (EQ,EQ) -> include l || include u -- depends on l and u
-  where
-    include = isClosed
-
-type instance IntersectionOf (Range a) (Range a) = [ NoIntersection, Range a]
-
-instance Ord a => (Range a) `IsIntersectableWith` (Range a) where
-
-  nonEmptyIntersection = defaultNonEmptyIntersection
-
-  -- The intersection is empty, if after clipping, the order of the end points is inverted
-  -- or if the endpoints are the same, but both are open.
-  (Range l u) `intersect` s = let i = clipLower' l . clipUpper' u $ s
-                              in if isValid i then coRec i else coRec NoIntersection
-
--- | Get the width of the interval
---
--- >>> width $ ClosedRange 1 10
--- 9
--- >>> width $ OpenRange 5 10
--- 5
-width   :: Num r => Range r -> r
-width i = i^.upper.unEndPoint - i^.lower.unEndPoint
-
-midPoint   :: Fractional r => Range r -> r
-midPoint r = let w = width r in r^.lower.unEndPoint + (w / 2)
-
-
---------------------------------------------------------------------------------
--- * Helper functions
-
--- | Clip the interval from below. I.e. intersect with the interval {l,infty),
--- where { is either open, (, orr closed, [.
-clipLower     :: Ord a => EndPoint a -> Range a -> Maybe (Range a)
-clipLower l r = let r' = clipLower' l r in if isValid r' then Just r' else Nothing
-
--- | Clip the interval from above. I.e. intersect with (-\infty, u}, where } is
--- either open, ), or closed, ],
-clipUpper     :: Ord a => EndPoint a -> Range a -> Maybe (Range a)
-clipUpper u r = let r' = clipUpper' u r in if isValid r' then Just r' else Nothing
-
--- | Wether or not the first range completely covers the second one
-covers       :: (Ord a) => Range a -> Range a -> Bool
-a `covers` b = maybe False (== b) . asA (Identity a) $ a `intersect` b
-
-
--- | Check if the range is valid and nonEmpty, i.e. if the lower endpoint is
--- indeed smaller than the right endpoint. Note that we treat empty open-ranges
--- as invalid as well.
-isValid             :: Ord a => Range a -> Bool
-isValid (Range l u) = case (_unEndPoint l) `compare` (_unEndPoint u) of
-                          LT                            -> True
-                          EQ | isClosed l || isClosed u -> True
-                          _                             -> False
-
--- operation is unsafe, as it may produce an invalid range (where l > u)
-clipLower'                  :: Ord a => EndPoint a -> Range a -> Range a
-clipLower' l' r@(Range l u) = case l' `cmpLower` l of
-                                GT -> Range l' u
-                                _  -> r
--- operation is unsafe, as it may produce an invalid range (where l > u)
-clipUpper'                  :: Ord a => EndPoint a -> Range a -> Range a
-clipUpper' u' r@(Range l u) = case u' `cmpUpper` u of
-                                LT -> Range l u'
-                                _  -> r
-
--- | Compare end points, Closed < Open
-cmpLower     :: Ord a => EndPoint a -> EndPoint a -> Ordering
-cmpLower a b = case (_unEndPoint a) `compare` (_unEndPoint b) of
-                 LT -> LT
-                 GT -> GT
-                 EQ -> case (a,b) of
-                         (Open _,   Open _)   -> EQ  -- if both are same type, report EQ
-                         (Closed _, Closed _) -> EQ
-                         (Open _,  _)         -> GT  -- otherwise, choose the Closed one
-                         (Closed _,_)         -> LT  -- is the *smallest*
-
-
--- | Compare the end points, Open < Closed
-cmpUpper     :: Ord a => EndPoint a -> EndPoint a -> Ordering
-cmpUpper a b = case (_unEndPoint a) `compare` (_unEndPoint b) of
-                 LT -> LT
-                 GT -> GT
-                 EQ -> case (a,b) of
-                         (Open _,   Open _)   -> EQ  -- if both are same type, report EQ
-                         (Closed _, Closed _) -> EQ
-                         (Open _,  _)         -> LT  -- otherwise, choose the Closed one
-                         (Closed _,_)         -> GT  -- is the *largest*
-
-
-
-
---------------------------------------------------------------------------------
-
--- | Shift a range x units to the left
---
--- >>> prettyShow $ shiftLeft 10 (ClosedRange 10 20)
--- "[0,10]"
--- >>> prettyShow $ shiftLeft 10 (OpenRange 15 25)
--- "(5,15)"
-shiftLeft   :: Num r => r -> Range r -> Range r
-shiftLeft x = shiftRight (-x)
-
--- | Shifts the range to the right
---
--- >>> prettyShow $ shiftRight 10 (ClosedRange 10 20)
--- "[20,30]"
--- >>> prettyShow $ shiftRight 10 (OpenRange 15 25)
--- "(25,35)"
-shiftRight   :: Num r => r -> Range r -> Range r
-shiftRight x = fmap (+x)
diff --git a/src/Data/Sequence/Util.hs b/src/Data/Sequence/Util.hs
deleted file mode 100644
--- a/src/Data/Sequence/Util.hs
+++ /dev/null
@@ -1,76 +0,0 @@
-module Data.Sequence.Util where
-
-import Data.Sequence(Seq, ViewL(..),ViewR(..))
-import qualified Data.Sequence as S
-import qualified Data.Vector.Generic as V
-
---------------------------------------------------------------------------------
-
--- | Given a monotonic predicate, Get the index h such that everything strictly
--- smaller than h has: p i = False, and all i >= h, we have p h = True
---
--- returns Nothing if no element satisfies p
---
--- running time: \(O(\log^2 n + T*\log n)\), where \(T\) is the time to execute the
--- predicate.
-binarySearchSeq     :: (a -> Bool) -> Seq a -> Maybe Int
-binarySearchSeq p s = case S.viewr s of
-                       EmptyR                 -> Nothing
-                       (_ :> x)   | p x       -> Just $ case S.viewl s of
-                         (y :< _) | p y          -> 0
-                         _                       -> binarySearch p' 0 u
-                                  | otherwise -> Nothing
-  where
-    p' = p . S.index s
-    u  = S.length s - 1
-
--- | Given a monotonic predicate, get the index h such that everything strictly
--- smaller than h has: p i = False, and all i >= h, we have p h = True
---
--- returns Nothing if no element satisfies p
---
--- running time: \(O(T*\log n)\), where \(T\) is the time to execute the
--- predicate.
-binarySearchVec                             :: V.Vector v a
-                                            => (a -> Bool) -> v a -> Maybe Int
-binarySearchVec p' v | V.null v   = Nothing
-                     | not $ p n' = Nothing
-                     | otherwise  = Just $ if p 0 then 0
-                                                  else binarySearch p 0 n'
-  where
-    n' = V.length v - 1
-    p = p' . (v V.!)
-
-
--- | Partition the seq s given a monotone predicate p into (xs,ys) such that
---
--- all elements in xs do *not* satisfy the predicate p
--- all elements in ys do       satisfy the predicate p
---
--- all elements in s occur in either xs or ys.
---
--- running time: \(O(\log^2 n + T*\log n)\), where \(T\) is the time to execute the
--- predicate.
-splitMonotone     :: (a -> Bool) -> Seq a -> (Seq a, Seq a)
-splitMonotone p s = case binarySearchSeq p s of
-                      Nothing -> (s,S.empty)
-                      Just i  -> S.splitAt i s
-
-
--- | Given a monotonic predicate p, a lower bound l, and an upper bound u, with:
---  p l = False
---  p u = True
---  l < u.
---
--- Get the index h such that everything strictly smaller than h has: p i =
--- False, and all i >= h, we have p h = True
---
--- running time: \(O(\log(u - l))\)
-{-# SPECIALIZE binarySearch :: (Int -> Bool) -> Int -> Int -> Int #-}
-{-# SPECIALIZE binarySearch :: (Word -> Bool) -> Word -> Word -> Word #-}
-binarySearch       :: Integral a => (a -> Bool) -> a -> a -> a
-binarySearch p l u = let d = u - l
-                         m = l + (d `div` 2)
-                     in if d == 1 then u else
-                          if p m then binarySearch p l m
-                                 else binarySearch p m u
diff --git a/src/Data/SlowSeq.hs b/src/Data/SlowSeq.hs
deleted file mode 100644
--- a/src/Data/SlowSeq.hs
+++ /dev/null
@@ -1,205 +0,0 @@
-module Data.SlowSeq where
-
-
-import           Control.Lens (bimap)
--- import qualified Data.FingerTree as FT
--- import           Data.FingerTree hiding (null, viewl, viewr)
-import           Data.FingerTree(ViewL(..),ViewR(..))
-import qualified Data.Foldable as F
-import           Data.Maybe
-import qualified Data.Sequence as S
-import qualified Data.Sequence.Util as SU
-
-
-
---------------------------------------------------------------------------------
-
-data Key a = NoKey | Key { getKey :: a } deriving (Show,Eq,Ord)
-
-instance Semigroup (Key a) where
-  k <> NoKey = k
-  _ <> k     = k
-
-instance Monoid (Key a) where
-  mempty = NoKey
-  k `mappend` k' = k <> k'
-
-liftCmp                     :: (a -> a -> Ordering) -> Key a -> Key a -> Ordering
-liftCmp _   NoKey   NoKey   = EQ
-liftCmp _   NoKey   (Key _) = LT
-liftCmp _   (Key _) NoKey   = GT
-liftCmp cmp (Key x) (Key y) = x `cmp` y
-
-
-
--- newtype Elem a = Elem { getElem :: a } deriving (Eq,Ord,Traversable,Foldable,Functor)
-
--- instance Show a => Show (Elem a) where
---   show (Elem x) = "Elem " <> show x
-
-
-newtype OrdSeq a = OrdSeq { _asSeq :: S.Seq a }
-                   deriving (Show,Eq)
-
-instance Semigroup (OrdSeq a) where
-  (OrdSeq s) <> (OrdSeq t) = OrdSeq $ s `mappend` t
-
-instance Monoid (OrdSeq a) where
-  mempty = OrdSeq mempty
-  mappend = (<>)
-
-instance Foldable OrdSeq where
-  foldMap f = foldMap f . _asSeq
-  null      = null . _asSeq
-  length    = length . _asSeq
-  minimum   = fromJust . lookupMin
-  maximum   = fromJust . lookupMax
-
--- instance Measured (Key a) (Elem a) where
---   measure (Elem x) = Key x
-
-
-type Compare a = a -> a -> Ordering
-
--- | Insert into a monotone OrdSeq.
---
--- pre: the comparator maintains monotonicity
---
--- \(O(\log^2 n)\)
-insertBy                  :: Compare a -> a -> OrdSeq a -> OrdSeq a
-insertBy cmp x (OrdSeq s) = OrdSeq $ l `mappend` (x S.<| r)
-  where
-    (l,r) = split (\v -> cmp v x `elem` [EQ, GT]) s
-
-
-
-
-
-
--- | Insert into a sorted OrdSeq
---
--- \(O(\log^2 n)\)
-insert :: Ord a => a -> OrdSeq a -> OrdSeq a
-insert = insertBy compare
-
-deleteAllBy         :: Compare a -> a -> OrdSeq a -> OrdSeq a
-deleteAllBy cmp x s = l <> r
-  where
-    (l,_,r) = splitBy cmp x s
-
-    -- (l,m) = split (\v -> liftCmp cmp v (Key x) `elem` [EQ,GT]) s
-    -- (_,r) = split (\v -> liftCmp cmp v (Key x) == GT) m
-
-
--- | \(O(\log^2 n)\)
-splitBy                  :: Compare a -> a -> OrdSeq a -> (OrdSeq a, OrdSeq a, OrdSeq a)
-splitBy cmp x (OrdSeq s) = (OrdSeq l, OrdSeq m', OrdSeq r)
-  where
-    (l, m) = split (\v -> cmp v x `elem` [EQ,GT]) s
-    (m',r) = split (\v -> cmp v x == GT) m
-
-
--- | Given a monotonic function f that maps a to b, split the sequence s
--- depending on the b values. I.e. the result (l,m,r) is such that
--- * all (< x) . fmap f $ l
--- * all (== x) . fmap f $ m
--- * all (> x) . fmap f $ r
---
--- >>> splitOn id 3 $ fromAscList' [1..5]
--- (OrdSeq {_asSeq = fromList [Elem 1,Elem 2]},OrdSeq {_asSeq = fromList [Elem 3]},OrdSeq {_asSeq = fromList [Elem 4,Elem 5]})
--- >>> splitOn fst 2 $ fromAscList' [(0,"-"),(1,"A"),(2,"B"),(2,"C"),(3,"D"),(4,"E")]
--- (OrdSeq {_asSeq = fromList [Elem (0,"-"),Elem (1,"A")]},OrdSeq {_asSeq = fromList [Elem (2,"B"),Elem (2,"C")]},OrdSeq {_asSeq = fromList [Elem (3,"D"),Elem (4,"E")]})
---
--- \(O(\log^2 n)\)
-splitOn :: Ord b => (a -> b) -> b -> OrdSeq a -> (OrdSeq a, OrdSeq a, OrdSeq a)
-splitOn f x (OrdSeq s) = (OrdSeq l, OrdSeq m', OrdSeq r)
-  where
-    (l, m) = split (\v -> compare (f v) x `elem` [EQ,GT]) s
-    (m',r) = split (\v -> compare (f v) x ==     GT)      m
-
--- | Given a monotonic predicate p, splits the sequence s into two sequences
---  (as,bs) such that all (not p) as and all p bs
---
--- \(O(\log^2 n)\)
-splitMonotonic  :: (a -> Bool) -> OrdSeq a -> (OrdSeq a, OrdSeq a)
-splitMonotonic p = bimap OrdSeq OrdSeq . split p . _asSeq
-
-
--- monotonic split for Sequences
---
--- \(O(\log^2 n)\)
-split :: (a -> Bool) -> S.Seq a -> (S.Seq a, S.Seq a)
-split = SU.splitMonotone
-
--- Deletes all elements from the OrdDeq
---
--- \(O(\log^2 n)\)
-deleteAll :: Ord a => a -> OrdSeq a -> OrdSeq a
-deleteAll = deleteAllBy compare
-
-
--- | inserts all eleements in order
--- \(O(n\log n)\)
-fromListBy     :: Compare a -> [a] -> OrdSeq a
-fromListBy cmp = foldr (insertBy cmp) mempty
-
--- | inserts all eleements in order
--- \(O(n\log n)\)
-fromListByOrd :: Ord a => [a] -> OrdSeq a
-fromListByOrd = fromListBy compare
-
--- | O(n)
-fromAscList' :: [a] -> OrdSeq a
-fromAscList' = OrdSeq . S.fromList
-
-
--- | \(O(\log^2 n)\)
-lookupBy                  :: Compare a -> a -> OrdSeq a -> Maybe a
-lookupBy cmp x s = let (_,m,_) = splitBy cmp x s in listToMaybe . F.toList $ m
-
-memberBy        :: Compare a -> a -> OrdSeq a -> Bool
-memberBy cmp x = isJust . lookupBy cmp x
-
-
--- | Fmap, assumes the order does not change
--- \(O(n)\)
-mapMonotonic   :: (a -> b) -> OrdSeq a -> OrdSeq b
-mapMonotonic f = fromAscList' . map f . F.toList
-
-
--- | Gets the first element from the sequence
--- \(O(1)\)
-viewl :: OrdSeq a -> ViewL OrdSeq a
-viewl = f . S.viewl . _asSeq
-  where
-    f S.EmptyL         = EmptyL
-    f (x S.:< s)  = x :< OrdSeq s
-
--- Last element
--- \(O(1)\)
-viewr :: OrdSeq a -> ViewR OrdSeq a
-viewr = f . S.viewr . _asSeq
-  where
-    f S.EmptyR    = EmptyR
-    f (s S.:> x)  = OrdSeq s :> x
-
-
--- \(O(1)\)
-minView   :: OrdSeq a -> Maybe (a, OrdSeq a)
-minView s = case viewl s of
-              EmptyL   -> Nothing
-              (x :< t) -> Just (x,t)
-
--- \(O(1)\)
-lookupMin :: OrdSeq a -> Maybe a
-lookupMin = fmap fst . minView
-
--- \(O(1)\)
-maxView   :: OrdSeq a -> Maybe (a, OrdSeq a)
-maxView s = case viewr s of
-              EmptyR   -> Nothing
-              (t :> x) -> Just (x,t)
-
--- \(O(1)\)
-lookupMax :: OrdSeq a -> Maybe a
-lookupMax = fmap fst . maxView
diff --git a/src/Data/Tree/Util.hs b/src/Data/Tree/Util.hs
deleted file mode 100644
--- a/src/Data/Tree/Util.hs
+++ /dev/null
@@ -1,154 +0,0 @@
-module Data.Tree.Util where
-
-import Data.Maybe(listToMaybe,maybeToList)
-import Control.Lens
-import Control.Monad((>=>))
-import Data.Tree
-import qualified Data.List as List
-
---------------------------------------------------------------------------------
-
--- $setup
--- >>> :{
--- let myTree = Node 0 [ Node 1 []
---                     , Node 2 []
---                     , Node 3 [ Node 4 [] ]
---                     ]
--- :}
-
---------------------------------------------------------------------------------
--- * Zipper on rose trees
-
--- | Zipper for rose trees
-data Zipper a = Zipper { focus      :: Tree a
-                       , ancestors  :: [([Tree a], a, [Tree a])] -- left siblings in reverse order
-                       }
-              deriving (Show,Eq)
-
--- | Create a new zipper focussiong on the root.
-root :: Tree a -> Zipper a
-root = flip Zipper []
-
--- | Move the focus to the parent of this node.
-up               :: Zipper a -> Maybe (Zipper a)
-up (Zipper t as) = case as of
-                     []              -> Nothing
-                     ((ls,p,rs):as') -> Just $ Zipper (Node p (reverse ls <> [t] <> rs)) as'
-
--- | Move the focus to the first child of this node.
---
--- >>> firstChild $ root myTree
--- Just (Zipper {focus = Node {rootLabel = 1, subForest = []}, ancestors = [([],0,[Node {rootLabel = 2, subForest = []},Node {rootLabel = 3, subForest = [Node {rootLabel = 4, subForest = []}]}])]})
-firstChild                          :: Zipper a -> Maybe (Zipper a)
-firstChild (Zipper (Node x chs) as) = case chs of
-                                        []       -> Nothing
-                                        (c:chs') -> Just $ Zipper c (([],x,chs'):as)
-
--- | Move the focus to the next sibling of this node
---
--- >>> (firstChild $ root myTree) >>= nextSibling
--- Just (Zipper {focus = Node {rootLabel = 2, subForest = []}, ancestors = [([Node {rootLabel = 1, subForest = []}],0,[Node {rootLabel = 3, subForest = [Node {rootLabel = 4, subForest = []}]}])]})
-nextSibling               :: Zipper a -> Maybe (Zipper a)
-nextSibling (Zipper t as) = case as of
-                              []                  -> Nothing -- no parent
-                              ((_,_,[]):_)        -> Nothing -- no next sibling
-                              ((ls,p,(r:rs)):as') -> Just $ Zipper r ((t:ls,p,rs):as')
-
--- | Move the focus to the next sibling of this node
-prevSibling               :: Zipper a -> Maybe (Zipper a)
-prevSibling (Zipper t as) = case as of
-                              []                  -> Nothing -- no parent
-                              (([],_,_):_)        -> Nothing -- no prev sibling
-                              (((l:ls),p,rs):as') -> Just $ Zipper l ((ls,p,t:rs):as')
-
--- | Given a zipper that focussses on some subtree t, construct a list with
--- zippers that focus on each child.
-allChildren :: Zipper a -> [Zipper a]
-allChildren = List.unfoldr ((\ch -> (ch, nextSibling ch)) <$>) . firstChild
-
--- | Given a zipper that focussses on some subtree t, construct a list with
--- zippers that focus on each of the nodes in the subtree of t.
-allTrees   :: Zipper a -> [Zipper a]
-allTrees r = r : concatMap allTrees (allChildren r)
-
--- | Creates a new tree from the zipper that thas the current node as root. The
--- ancestorTree (if there is any) forms the first child in this new root.
-unZipperLocal                          :: Zipper a -> Tree a
-unZipperLocal (Zipper (Node x chs) as) = Node x (maybeToList (constructTree as) <> chs)
-
--- | Constructs a tree from the list of ancestors (if there are any)
-constructTree :: [([Tree a],a,[Tree a])] -> Maybe (Tree a)
-constructTree = listToMaybe
-              . foldr (\(ls,p,rs) tas -> [Node p (tas <> reverse ls <> rs)]) []
-
-
---------------------------------------------------------------------------------
-
--- | Given a predicate on an element, find a node that matches the predicate, and turn that
--- node into the root of the tree.
---
--- running time: \(O(nT)\) where \(n\) is the size of the tree, and \(T\) is
--- the time to evaluate a predicate.
---
--- >>> findEvert (== 4) myTree
--- Just (Node {rootLabel = 4, subForest = [Node {rootLabel = 3, subForest = [Node {rootLabel = 0, subForest = [Node {rootLabel = 1, subForest = []},Node {rootLabel = 2, subForest = []}]}]}]})
--- >>> findEvert (== 5) myTree
--- Nothing
-findEvert   :: (a -> Bool) -> Tree a -> Maybe (Tree a)
-findEvert p = findEvert' (p . rootLabel)
-
--- | Given a predicate matching on a subtree, find a node that matches the predicate, and turn that
--- node into the root of the tree.
---
--- running time: \(O(nT(n))\) where \(n\) is the size of the tree, and \(T(m)\) is
--- the time to evaluate a predicate on a subtree of size \(m\).
-findEvert'   :: (Tree a -> Bool) -> Tree a -> Maybe (Tree a)
-findEvert' p = fmap unZipperLocal . listToMaybe . filter (p . focus) . allTrees . root
-
--- | Function to extract a path between a start node and an end node (if such a
---path exists). If there are multiple paths, no guarantees are given about
---which one is returned.
---
--- running time: \(O(n(T_p+T_s)\), where \(n\) is the size of the tree, and
--- \(T_p\) and \(T_s\) are the times it takes to evaluate the 'isStartingNode'
--- and 'isEndingNode' predicates.
---
---
--- >>> findPath (== 1) (==4) myTree
--- Just [1,0,3,4]
--- >>>  findPath (== 1) (==2) myTree
--- Just [1,0,2]
--- >>>  findPath (== 1) (==1) myTree
--- Just [1]
--- >>>  findPath (== 1) (==2) myTree
--- Just [1,0,2]
--- >>>  findPath (== 4) (==2) myTree
--- Just [4,3,0,2]
-findPath               :: (a -> Bool) -- ^ is this node a starting node
-                          -> (a -> Bool) -- ^ is this node an ending node
-                          -> Tree a -> Maybe [a]
-findPath isStart isEnd = findEvert isStart >=> findNode isEnd
-
--- | Given a predicate on a, find (the path to) a node that satisfies the predicate.
---
--- >>> findNode (== 4) myTree
--- Just [0,3,4]
-findNode   :: (a -> Bool) -> Tree a -> Maybe [a]
-findNode p = listToMaybe . findNodes (p . rootLabel)
-
--- | Find all paths to nodes that satisfy the predicate
---
--- running time: \(O(nT(n))\) where \(n\) is the size of the tree, and \(T(m)\) is
--- the time to evaluate a predicate on a subtree of size \(m\).
---
--- >>> findNodes ((< 4) . rootLabel) myTree
--- [[0],[0,1],[0,2],[0,3]]
--- >>> findNodes (even . rootLabel) myTree
--- [[0],[0,2],[0,3,4]]
--- >>> let size = length in findNodes ((> 1) . size) myTree
--- [[0],[0,3]]
-findNodes   :: (Tree a -> Bool) -> Tree a -> [[a]]
-findNodes p = go
-  where
-    go t = let mh = if p t then [[]] else []
-           in map (rootLabel t:) $ mh <> concatMap go (children t)
diff --git a/src/Data/UnBounded.hs b/src/Data/UnBounded.hs
deleted file mode 100644
--- a/src/Data/UnBounded.hs
+++ /dev/null
@@ -1,127 +0,0 @@
-{-# LANGUAGE TemplateHaskell   #-}
-module Data.UnBounded( Top, topToMaybe
-                     , pattern ValT, pattern Top
-
-                     , Bottom, bottomToMaybe
-                     , pattern Bottom, pattern ValB
-
-                     , UnBounded(..)
-                     , unUnBounded
-                     , unBoundedToMaybe
-                     ) where
-
-import           Control.Lens
-import qualified Data.Foldable as F
-import qualified Data.Traversable as T
-import           Data.Functor.Classes
-
---------------------------------------------------------------------------------
--- * Top and Bottom
-
--- | `Top a` represents the type a, together with a 'Top' element, i.e. an element
--- that is greater than any other element. We can think of `Top a` being defined as:
---
--- >>> data Top a = ValT a | Top
-newtype Top a = GTop { topToMaybe :: Maybe a }
-                deriving (Eq,Functor,F.Foldable,T.Traversable,Applicative,Monad,Eq1)
-
-pattern ValT  :: a -> Top a
-pattern ValT x = GTop (Just x)
-
-pattern Top    :: Top a
-pattern Top    = GTop Nothing
-
-{-# COMPLETE ValT, Top #-}
-
-
-instance Ord1 Top where
-  liftCompare _   Top       Top       = EQ
-  liftCompare _   _         Top       = LT
-  liftCompare _   Top       _         = GT
-  liftCompare cmp ~(ValT x) ~(ValT y) = x `cmp` y
-
-instance Ord a => Ord (Top a) where
-  compare = compare1
-
-instance Show a => Show (Top a) where
-  show Top       = "Top"
-  show ~(ValT x) = "ValT " ++ show x
-
---------------------------------------------------------------------------------
-
--- | `Bottom a` represents the type a, together with a 'Bottom' element,
--- i.e. an element that is smaller than any other element. We can think of
--- `Bottom a` being defined as:
---
--- >>> data Bottom a = Bottom | ValB a
-newtype Bottom a = GBottom { bottomToMaybe :: Maybe a }
-                 deriving (Eq,Ord,Functor,F.Foldable,T.Traversable,Applicative,Monad,Eq1,Ord1)
-
-pattern Bottom :: Bottom a
-pattern Bottom = GBottom Nothing
-
-pattern ValB   :: a -> Bottom a
-pattern ValB x = GBottom (Just x)
-
-{-# COMPLETE Bottom, ValB #-}
-
-instance Show a => Show (Bottom a) where
-  show Bottom    = "Bottom"
-  show ~(ValB x) = "ValB " ++ show x
-
---------------------------------------------------------------------------------
-
--- | `UnBounded a` represents the type a, together with an element
--- `MaxInfinity` larger than any other element, and an element `MinInfinity`,
--- smaller than any other element.
-data UnBounded a = MinInfinity | Val { _unUnBounded :: a }  | MaxInfinity
-                 deriving (Eq,Ord,Functor,F.Foldable,T.Traversable)
-
-makeLenses ''UnBounded
-
-instance Show a => Show (UnBounded a) where
-  show MinInfinity = "MinInfinity"
-  show (Val x)     = "Val " ++ show x
-  show MaxInfinity = "MaxInfinity"
-
-instance Num a => Num (UnBounded a) where
-  MinInfinity + _           = MinInfinity
-  _           + MinInfinity = MinInfinity
-  (Val x)     + (Val y)     = Val $ x + y
-  _           + MaxInfinity = MaxInfinity
-  MaxInfinity + _           = MaxInfinity
-
-
-  MinInfinity * _           = MinInfinity
-  _           * MinInfinity = MinInfinity
-
-  (Val x)     * (Val y)     = Val $ x * y
-  _           * MaxInfinity = MaxInfinity
-  MaxInfinity * _           = MaxInfinity
-
-  abs MinInfinity = MinInfinity
-  abs (Val x)     = Val $ abs x
-  abs MaxInfinity = MaxInfinity
-
-  signum MinInfinity = -1
-  signum (Val x)     = Val $ signum x
-  signum MaxInfinity = 1
-
-  fromInteger = Val . fromInteger
-
-  negate MinInfinity = MaxInfinity
-  negate (Val x)     = Val $ negate x
-  negate MaxInfinity = MinInfinity
-
-instance Fractional a => Fractional (UnBounded a) where
-  MinInfinity / _       = MinInfinity
-  (Val x)     / (Val y) = Val $ x / y
-  (Val _)     / _       = 0
-  MaxInfinity / _       = MaxInfinity
-
-  fromRational = Val . fromRational
-
-
-unBoundedToMaybe         :: UnBounded a -> Maybe a
-unBoundedToMaybe (Val x) = Just x
-unBoundedToMaybe _       = Nothing
diff --git a/src/Data/Util.hs b/src/Data/Util.hs
deleted file mode 100644
--- a/src/Data/Util.hs
+++ /dev/null
@@ -1,96 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Data.Util
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
---
--- Some basic types, mostly strict triples and pairs.
---
---------------------------------------------------------------------------------
-module Data.Util where
-
-import Control.DeepSeq
-import Control.Lens
-import GHC.Generics (Generic)
-import qualified Data.List as List
-
---------------------------------------------------------------------------------
--- * Strict Triples
-
--- |  strict triple
-data STR a b c = STR { fst' :: !a, snd' :: !b , trd' :: !c}
-               deriving (Show,Eq,Ord,Functor,Generic)
-
-instance (Semigroup a, Semigroup b, Semigroup c) => Semigroup (STR a b c) where
-  (STR a b c) <> (STR d e f) = STR (a <> d) (b <> e) (c <> f)
-
-instance (Semigroup a, Semigroup b, Semigroup c
-         , Monoid a, Monoid b, Monoid c) => Monoid (STR a b c) where
-  mempty = STR mempty mempty mempty
-  mappend = (<>)
-
-instance (NFData a, NFData b, NFData c) => NFData (STR a b c)
-
-instance Field1 (STR a b c) (STR d b c) a d where
-  _1 = lens fst' (\(STR _ b c) d -> STR d b c)
-
-instance Field2 (STR a b c) (STR a d c) b d where
-  _2 = lens snd' (\(STR a _ c) d -> STR a d c)
-
-instance Field3 (STR a b c) (STR a b d) c d where
-  _3 = lens trd' (\(STR a b _) d -> STR a b d)
-
--- | Generate All unique unordered triplets.
---
-uniqueTriplets    :: [a] -> [STR a a a]
-uniqueTriplets xs = [ STR x y z | (x:ys) <- nonEmptyTails xs, SP y z <- uniquePairs ys]
-
-
---------------------------------------------------------------------------------
--- * Strict Pairs
-
-
--- | Strict pair
-data SP a b = SP !a !b deriving (Show,Eq,Ord,Functor,Generic)
-
-instance (Semigroup a, Semigroup b) => Semigroup (SP a b) where
-  (SP a b) <> (SP c d) = SP (a <> c) (b <> d)
-
-instance (Semigroup a, Semigroup b, Monoid a, Monoid b) => Monoid (SP a b) where
-  mempty = SP mempty mempty
-  mappend = (<>)
-
-instance (NFData a, NFData b) => NFData (SP a b)
-
-
-instance Field1 (SP a b) (SP c b) a c where
-  _1 = lens (\(SP a _) -> a) (\(SP _ b) c -> SP c b)
-
-instance Field2 (SP a b) (SP a c) b c where
-  _2 = lens (\(SP _ b) -> b) (\(SP a _) c -> SP a c)
-
-instance Bifunctor SP where
-  bimap f g (SP a b) = SP (f a) (g b)
-
---------------------------------------------------------------------------------
--- | * Strict pair whose elements are of the same type.
-
--- | Strict pair with both items the same
-type Two a = SP a a
-
-pattern Two :: a -> a -> Two a
-pattern Two a b = SP a b
-{-# COMPLETE Two #-}
-
--- | Given a list xs, generate all unique (unordered) pairs.
---
---
-uniquePairs    :: [a] -> [Two a]
-uniquePairs xs = [ Two x y | (x:ys) <- nonEmptyTails xs, y <- ys ]
-
---------------------------------------------------------------------------------
-
--- | A version of List.tails in which we remove the emptylist
-nonEmptyTails :: [a] -> [[a]]
-nonEmptyTails = List.init . List.tails
diff --git a/src/Data/Yaml/Util.hs b/src/Data/Yaml/Util.hs
deleted file mode 100644
--- a/src/Data/Yaml/Util.hs
+++ /dev/null
@@ -1,89 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Data.Yaml.Util
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
--- Description :  Helper functions for working with yaml
---
---------------------------------------------------------------------------------
-module Data.Yaml.Util( encodeYaml, encodeYamlFile
-                     , decodeYaml, decodeYamlFile
-                     , printYaml
-                     , parseVersioned
-                     , Versioned(Versioned), unversioned
-                     ) where
-
-import           Control.Applicative
-import           Data.Aeson
-import           Data.Aeson.Types (typeMismatch)
-import           Data.ByteString (ByteString)
-import qualified Data.ByteString.Char8 as B
-import qualified Data.Text as T
-import           Data.Version
-import           Data.Yaml
-import qualified Data.Yaml.Pretty as YamlP
-import           GHC.Generics (Generic)
-import           Text.ParserCombinators.ReadP (readP_to_S)
-
---------------------------------------------------------------------------------
-
--- | Write the output to yaml
-encodeYaml :: ToJSON a => a -> ByteString
-encodeYaml = YamlP.encodePretty YamlP.defConfig
-
--- | Prints the yaml
-printYaml :: ToJSON a => a -> IO ()
-printYaml = B.putStrLn . encodeYaml
-
--- | alias for decodeEither' from the Yaml Package
-decodeYaml :: FromJSON a => ByteString -> Either ParseException a
-decodeYaml = decodeEither'
-
--- | alias for reading a yaml file
-decodeYamlFile :: FromJSON a => FilePath -> IO (Either ParseException a)
-decodeYamlFile = decodeFileEither
-
--- | Encode a yaml file
-encodeYamlFile    :: ToJSON a => FilePath -> a -> IO ()
-encodeYamlFile fp = B.writeFile fp . encodeYaml
-
-
--- | Data type for things that have a version
-data Versioned a = Versioned { version :: Version
-                             , content :: a
-                             } deriving (Show,Read,Generic,Eq,Functor,Foldable,Traversable)
-
-unversioned :: Versioned a -> a
-unversioned = content
-
-instance ToJSON a => ToJSON (Versioned a) where
-  toJSON     (Versioned v x) = object [ "version" .= showVersion v, "content" .= x]
-  toEncoding (Versioned v x) = pairs ("version" .= showVersion v <> "content" .= x)
-
-
--- | Given a list of candidate parsers, select the right one
-parseVersioned               :: [(Version -> Bool,Value -> Parser a)]
-                             -> Value -> Parser (Versioned a)
-parseVersioned ps (Object o) = do V v <- o .: "version"
-                                  co  <- o .: "content"
-                                  let ps' = map (\(_,p) -> Versioned v <$> p co)
-                                          . filter (($ v) . fst) $ ps
-                                      err = fail $ "no matching version found for version "
-                                                   <> showVersion v
-                                  foldr (<|>) err ps'
-parseVersioned _ invalid     = typeMismatch "Versioned" invalid
-
--- instance (FromJSON a) => FromJSON (Versioned a) where
---   parseJSON (Object v) = Versioned <$> (unV <$> v .: "version")
---                                    <*> v .: "content"
---   parseJSON invalid    = typeMismatch "Versioned" invalid
-
-newtype V = V Version
-
-instance FromJSON V where
-  parseJSON (String t) = case filter (null . snd) (readP_to_S parseVersion $ T.unpack t) of
-     ((v,""):_) -> pure $ V v
-     _          -> fail $ "parsing " <> show t <> " into a version failed"
-  parseJSON invalid    = typeMismatch "Version" invalid
diff --git a/src/Graphics/Camera.hs b/src/Graphics/Camera.hs
--- a/src/Graphics/Camera.hs
+++ b/src/Graphics/Camera.hs
@@ -18,18 +18,26 @@
 
                       , toViewPort, perspectiveProjection, rotateCoordSystem
                       , flipAxes
+
                       ) where
 
-import Data.Ext
 import Control.Lens
 import Data.Geometry.Point
 import Data.Geometry.Vector
 import Data.Geometry.Transformation
-import Data.Geometry.Triangle
 
 --------------------------------------------------------------------------------
 
--- | defines a basic camera
+-- | A basic camera data type. The fields stored are:
+--
+-- * the camera position,
+-- * the raw camera normal, i.e. a unit vecotr into the center of the screen,
+-- * the raw view up vector indicating which side points "upwards" in the scene,
+-- * the viewplane depth (i.e. the distance from the camera position to the plane on which we project),
+-- * the near distance (everything closer than this is clipped),
+-- * the far distance (everything further away than this is clipped), and
+-- * the screen dimensions.
+--
 data Camera r = Camera { _cameraPosition   :: !(Point 3 r)
                        , _rawCameraNormal  :: !(Vector 3 r)
                          -- ^ unit vector from camera into center of the screen
@@ -40,8 +48,15 @@
                        , _farDist          :: !r
                        , _screenDimensions :: !(Vector 2 r)
                        } deriving (Show,Eq,Ord)
+
+----------------------------------------
+-- * Field Accessor Lenses
+
 makeLenses ''Camera
 
+--------------------------------------------------------------------------------
+-- * Accessor Lenses
+
 -- | Lens to get and set the Camera normal, makes sure that the vector remains
 -- normalized.
 cameraNormal :: Floating r => Lens' (Camera r) (Vector 3 r)
@@ -54,6 +69,10 @@
 viewUp = lens _rawViewUp (\c n -> c { _rawViewUp = signorm n})
 
 
+--------------------------------------------------------------------------------
+-- * Camera Transformation functions
+
+
 -- | Full transformation that renders the figure
 cameraTransform   :: Fractional r => Camera r -> Transformation 3 r
 cameraTransform c =  toViewPort c
@@ -109,57 +128,3 @@
                        (Vector4 0 0 1 0)
                        (Vector4 0 1 0 0)
                        (Vector4 0 0 0 1)
-
---------------------------------------------------------------------------------
-
-myCamera :: Camera Rational
-myCamera = Camera (Point3 50 0 50)
-                  (Vector3 0 0 (-1))
-                  (Vector3 0 1 0)
-                  10
-                  15
-                  55
-                  (Vector2 800 600)
-
-
-myCamera1 :: Camera Double
-myCamera1 = Camera origin
-                  (Vector3 0 0 (-1))
-                  (Vector3 0 1 0)
-                  10
-                  10
-                  50 -- we can see up to the origin
-                  (Vector2 60 40)
-
-testProjection   :: Camera Double -> [Vector 3 Double]
-testProjection c = map (transformBy t) [Vector3 30 30 (-10), Vector3 (30*50/10) 30 (-50)]
-  where
-    u = (c^.rawViewUp) `cross` n
-    v = n `cross` u
-    n = (-1) *^ c^.rawCameraNormal -- we need the normal from the scene *into* the camera
-    t = perspectiveProjection c
-
-
-myT :: Triangle 3 () Rational
-myT = Triangle (ext $ Point3 1  1  10)
-               (ext $ Point3 20 1  10)
-               (ext $ Point3 20 30 10)
-
-
-
-testToWorld   :: Camera Double -> [Vector 3 Double]
-testToWorld c = map (transformBy t) [u, v, n, Vector3 80 20 40]
-  where
-    u = (c^.rawViewUp) `cross` n
-    v = n `cross` u
-    n = (-1) *^ c^.rawCameraNormal -- we need the normal from the scene *into* the camera
-    t = worldToView c
-
-
-testRotate   :: Camera Double -> [Vector 3 Double]
-testRotate c = map (transformBy t) [u, v, n]
-  where
-    u = (c^.rawViewUp) `cross` n
-    v = n `cross` u
-    n = (-1) *^ c^.rawCameraNormal -- we need the normal from the scene *into* the camera
-    t = rotateCoordSystem c
diff --git a/src/Graphics/Render.hs b/src/Graphics/Render.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Render.hs
@@ -0,0 +1,50 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Render
+-- Copyright   :  (C) Frank Staals
+-- License     :  see the LICENSE file
+-- Maintainer  :  Frank Staals
+-- Description :  Some rendering functions for rendering (drawing) geometric objects
+--
+--------------------------------------------------------------------------------
+module Graphics.Render where
+
+import Data.Ext
+import Control.Lens
+import Data.Geometry.Point
+import Data.Geometry.Triangle
+import Data.Geometry.LineSegment
+import Data.Geometry.Transformation
+import Data.Geometry.Properties
+
+--------------------------------------------------------------------------------
+-- * Rendering functions
+
+-- | Rendering function for a triangle.
+--
+renderTriangle :: Fractional r => Transformation 3 r -> Triangle 3 p r -> Triangle 2 p r
+renderTriangle = renderWithTransform projectTriangle
+  where
+    projectTriangle (Triangle p q r) = Triangle (p&core %~ projectPoint)
+                                                (q&core %~ projectPoint)
+                                                (r&core %~ projectPoint)
+
+-- | Render a point
+renderPoint :: Fractional r => Transformation 3 r -> Point 3 r -> Point 2 r
+renderPoint = renderWithTransform projectPoint
+
+-- | Renders a line segment
+renderLineSegment :: Fractional r => Transformation 3 r -> LineSegment 3 p r -> LineSegment 2 p r
+renderLineSegment = renderWithTransform project
+  where
+    project s = s&endPoints.core %~ projectPoint
+
+
+
+-- | Generic Rendering Function
+renderWithTransform           :: (Fractional r, IsTransformable g, Dimension g ~ 3, NumType g ~ r)
+                              => (g -> g') -- ^ Projection function
+                              -> Transformation 3 r -- ^ The camera transform
+                              -> g  -- ^ The thing we wish to transform
+                              -> g'
+renderWithTransform project t = project . transformBy t
diff --git a/src/System/Random/Shuffle.hs b/src/System/Random/Shuffle.hs
deleted file mode 100644
--- a/src/System/Random/Shuffle.hs
+++ /dev/null
@@ -1,28 +0,0 @@
-module System.Random.Shuffle(shuffle) where
-
-import           Control.Monad
-import qualified Data.Foldable as F
-import           System.Random
-
-import qualified Data.Vector.Mutable as MV
-import qualified Data.Vector         as V
-
-
-
--- | Fisher–Yates shuffle, which shuffles in O(n) time.
-shuffle     :: (F.Foldable f, RandomGen g) => g -> f a -> [a]
-shuffle gen = V.toList . V.modify (\v ->
-                do
-                  let n = MV.length v
-                  forM_ (rands gen $ n - 1) $ \(SP i j) -> MV.swap v i j
-              ) . V.fromList . F.toList
-
--- | Strict pair
-data SP a b = SP !a !a
-
--- | Generate a list of indices in decreasing order, coupled with a random
--- value in the range [0,i].
-rands     :: RandomGen g => g -> Int -> [SP Int Int]
-rands g i
-      | i <= 0    = []
-      | otherwise = let (j,g') = randomR (0,i) g in SP i j : rands g' (i-1)
diff --git a/src/Test/QuickCheck/HGeometryInstances.hs b/src/Test/QuickCheck/HGeometryInstances.hs
deleted file mode 100644
--- a/src/Test/QuickCheck/HGeometryInstances.hs
+++ /dev/null
@@ -1,112 +0,0 @@
-{-# LANGUAGE UndecidableInstances  #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# OPTIONS_GHC -fno-warn-orphans #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Test.QuickCheck.HGeometryInstances
--- Copyright   :  (C) Frank Staals
--- License     :  see the LICENSE file
--- Maintainer  :  Frank Staals
---
--- Arbitrary instances for most geometry types in HGeometry
---
---------------------------------------------------------------------------------
-module Test.QuickCheck.HGeometryInstances where
-
-import           Control.Lens
-import           Data.BinaryTree
-import           Data.Ext
-import           Data.Geometry hiding (vector)
-import           Data.Geometry.Box
-import           Data.PlanarGraph
-import qualified Data.PlanarGraph as PlanarGraph
-import           Data.Geometry.SubLine
-import           Data.OrdSeq (OrdSeq, fromListByOrd)
-import           Data.Proxy
-import qualified Data.LSeq as LSeq
-import           GHC.TypeLits
-import           Test.QuickCheck
-
---------------------------------------------------------------------------------
-
--- instance Arbitrary a => Arbitrary (NonEmpty.NonEmpty a) where
---   arbitrary = NonEmpty.fromList <$> listOf1 arbitrary
-
-instance (Arbitrary a, Ord a) => Arbitrary (OrdSeq a) where
-  arbitrary = fromListByOrd <$> arbitrary
-
-instance Arbitrary a => Arbitrary (BinaryTree a) where
-  arbitrary = sized f
-    where f n | n <= 0    = pure Nil
-              | otherwise = do
-                              l <- choose (0,n-1)
-                              Internal <$> f l <*> arbitrary <*> f (n-l-1)
-
-instance (Arbitrary a, Arbitrary v) => Arbitrary (BinLeafTree v a) where
-  arbitrary = sized f
-    where f n | n <= 0    = Leaf <$> arbitrary
-              | otherwise = do
-                              l <- choose (0,n-1)
-                              Node <$> f l <*> arbitrary <*> f (n-l-1)
-
-
-instance (KnownNat n, Arbitrary a) => Arbitrary (LSeq.LSeq n a) where
-  arbitrary = (\s s' -> LSeq.promise . LSeq.fromList $ s <> s')
-            <$> vector (fromInteger . natVal $ (Proxy :: Proxy n))
-            <*> arbitrary
-
-instance (Arbitrary r, Arity d) => Arbitrary (Vector d r) where
-  arbitrary = vectorFromListUnsafe <$> infiniteList
-
-instance (Arbitrary r, Arity d) => Arbitrary (Point d r) where
-  arbitrary = Point <$> arbitrary
-
-instance (Arbitrary r, Arity d, Num r, Eq r) => Arbitrary (Line d r) where
-  arbitrary = do p <- arbitrary
-                 q <- suchThat arbitrary (/= p)
-                 return $ lineThrough p q
-
-instance (Arbitrary r, Arity d, Ord r) => Arbitrary (Box d () r) where
-  arbitrary = (\p (q :: Point d r) -> boundingBoxList' [p,q]) <$> arbitrary <*> arbitrary
-
-
-instance Arbitrary r => Arbitrary (EndPoint r) where
-  arbitrary = frequency [ (1, Open   <$> arbitrary)
-                        , (9, Closed <$> arbitrary)
-                        ]
-
-instance (Arbitrary r, Ord r) => Arbitrary (Range r) where
-  arbitrary = do
-                l <- arbitrary
-                r <- suchThat arbitrary (p l)
-                return $ Range l r
-   where
-     p (Open l)   r = l <  r^.unEndPoint
-     p (Closed l) r = l <= r^.unEndPoint
-
-
-instance (Arbitrary c, Arbitrary e) => Arbitrary (c :+ e) where
-  arbitrary = (:+) <$> arbitrary <*> arbitrary
-
-instance (Arbitrary r, Arbitrary p, Ord r, Ord p) => Arbitrary (Interval p r) where
-  arbitrary = GInterval <$> arbitrary
-
-
-instance (Arbitrary r, Arbitrary p, Arbitrary s, Arity d, Ord r, Ord s, Ord p, Num r)
-         => Arbitrary (SubLine d p s r) where
-  arbitrary = SubLine <$> arbitrary <*> arbitrary
-
-
-instance (Arbitrary r, Arbitrary p, Arity d) => Arbitrary (LineSegment d p r) where
-  arbitrary = LineSegment <$> arbitrary <*> arbitrary
-
-
-
-instance Arbitrary (Arc s) where
-  arbitrary = Arc <$> (arbitrary `suchThat` (>= 0))
-
-instance Arbitrary Direction where
-  arbitrary = (\b -> if b then PlanarGraph.Positive else Negative) <$> arbitrary
-
-instance Arbitrary (Dart s) where
-  arbitrary = Dart <$> arbitrary <*> arbitrary
diff --git a/test/Algorithms/Geometry/ClosestPair/ClosestPairSpec.hs b/test/Algorithms/Geometry/ClosestPair/ClosestPairSpec.hs
deleted file mode 100644
--- a/test/Algorithms/Geometry/ClosestPair/ClosestPairSpec.hs
+++ /dev/null
@@ -1,45 +0,0 @@
-module Algorithms.Geometry.ClosestPair.ClosestPairSpec where
-
-import qualified Algorithms.Geometry.ClosestPair.DivideAndConquer as DivideAndConquer
-import qualified Algorithms.Geometry.ClosestPair.Naive as Naive
-import           Control.Lens
-import           Data.Ext
-import           Data.Geometry.Point
-import           Data.LSeq (LSeq)
-import qualified Data.LSeq as LSeq
-import           Data.Util
-import           Test.Hspec
-import           Test.Hspec.QuickCheck
-import           Test.QuickCheck
-import           Test.QuickCheck.HGeometryInstances ()
-import           Test.QuickCheck.Instances ()
-
-
-spec :: Spec
-spec = do
-    describe "ClosestPairSpec Algorithms" $ do
-      modifyMaxSuccess (const 1000) $
-        it "Naive and DivideAnd Conquer report same closest pair distance (quickcheck)" $
-          property $ \pts ->
-            (squaredEuclideanDist' $ Naive.closestPair pts)
-            ==
-            (squaredEuclideanDist' $ DivideAndConquer.closestPair pts)
-      it "Naive and DivideAnd Conquer report same closest pair distance (manual)" $ do
-        let myPts = toLSeq myTest in
-          (squaredEuclideanDist' $ Naive.closestPair myPts)
-          `shouldBe`
-          (squaredEuclideanDist' $ DivideAndConquer.closestPair myPts)
-
-
-squaredEuclideanDist'                         :: Two (Point 2 Rational :+ ()) -> Rational
-squaredEuclideanDist' (Two (p :+ _) (q :+ _)) = squaredEuclideanDist p q
-
-
--- LSeq {toSeq = fromList [Point2 [(-33759522867779) % 7496802324005,10839434579010 % 8710408063243] :+ (),Point2 [27010230067287 % 7207136323822,(-3164483769031) % 742671498890] :+ (),Point2 [16411948329569 % 7616584565141,12511394381428 % 2834373835667] :+ (),Point2 [(-327606334581) % 728344280722,(-33692910597997) % 8003329261050] :+ (),Point2 [(-15920889254819) % 4416206444274,31639684978225 % 4753346825613] :+ ()]}
-
-
-toLSeq :: [a] -> LSeq 2 a
-toLSeq = LSeq.promise . LSeq.fromList
-
-myTest :: [Point 2 Rational :+ ()]
-myTest = read "[Point2 [146640303144371 % 4224053853937,101854287495663 % 611897639578] :+ (),Point2 [40638737917185 % 6880564569878,266207821342347 % 5620065708622] :+ (),Point2 [(-22768678067038) % 4099605651011,63425313194697 % 3004649322800] :+ (),Point2 [(-79043128684637) % 1637661769455,(-295977300701107) % 9093457570027] :+ (),Point2 [(-73583019410059) % 7397585905521,(-132085857579544) % 3023721689783] :+ (),Point2 [110730624564935 % 3206669900528,(-134126355694632) % 1030756818019] :+ (),Point2 [375473877556369 % 5688548958491,(-61990694642620) % 8334329062977] :+ (),Point2 [113637651255443 % 7393857491411,60345369766453 % 1970866530039] :+ (),Point2 [18099493254552 % 6747283329067,(-104898261130768) % 6685232742229] :+ (),Point2 [(-99452695817779) % 9671436420976,(-15569270478765) % 353842993324] :+ (),Point2 [(-307985949779841) % 8267832155219,(-104994723690859) % 937448083071] :+ (),Point2 [5298565527551 % 9166217911857,361269627209233 % 6403545389662] :+ (),Point2 [(-53286482779806) % 163082999159,32112688900059 % 718598733692] :+ (),Point2 [(-107690491383153) % 5350356516874,(-335465470420443) % 9259993302154] :+ (),Point2 [(-1431112842609) % 2908633300498,(-6394060822783) % 6674992423] :+ (),Point2 [(-297096490651238) % 8936478049895,88152403947309 % 6679373739130] :+ (),Point2 [(-69377170752544) % 423340544261,85249651585993 % 1566182413847] :+ (),Point2 [(-76831240905987) % 7713729889276,(-161201413608815) % 3632380150759] :+ (),Point2 [120510849091594 % 469904179619,(-172736649495640) % 5333925170989] :+ (),Point2 [(-188872871543069) % 1898068101049,355493261879401 % 7036186201752] :+ (),Point2 [(-255393995322931) % 1103177446757,265927198927640 % 3105872402029] :+ (),Point2 [(-69257424852911) % 283924670424,157163114450212 % 6947926872911] :+ (),Point2 [160793284019169 % 4243291855883,136543247038343 % 663996934927] :+ (),Point2 [349183720690751 % 69082861367,27899563589967 % 984451034746] :+ (),Point2 [(-6729975907016) % 287613226363,(-132751704193606) % 884101426259] :+ (),Point2 [158419738815649 % 1684813345364,(-232301201438133) % 2251322747338] :+ (),Point2 [53058623626229 % 834280423049,11416530634139 % 5498459429949] :+ (),Point2 [153130827172836 % 3179759716621,(-247386168772091) % 6720178879120] :+ (),Point2 [(-255140791023605) % 6181407399187,(-58852369239783) % 1447725941071] :+ (),Point2 [(-35688634701875) % 8985183678917,162916031022373 % 4757510120717] :+ ()]"
diff --git a/test/Algorithms/Geometry/ConvexHull/ConvexHullSpec.hs b/test/Algorithms/Geometry/ConvexHull/ConvexHullSpec.hs
deleted file mode 100644
--- a/test/Algorithms/Geometry/ConvexHull/ConvexHullSpec.hs
+++ /dev/null
@@ -1,40 +0,0 @@
-module Algorithms.Geometry.ConvexHull.ConvexHullSpec where
-
-import qualified Algorithms.Geometry.ConvexHull.DivideAndConquer as DivideAndConquer
-import qualified Algorithms.Geometry.ConvexHull.GrahamScan as GrahamScan
-import           Control.Lens
-import           Data.CircularSeq (isShiftOf)
-import           Data.Ext
-import           Data.Geometry.Point
-import           Data.Geometry.Polygon
-import           Data.Geometry.Polygon.Convex
-import qualified Data.List as L
-import qualified Data.List.NonEmpty as NonEmpty
-import qualified Data.Map as Map
-import           Data.Proxy
-import qualified Data.Set as Set
-import           Test.Hspec
-import           Test.Hspec.QuickCheck
-import           Test.QuickCheck
-import           Test.QuickCheck.HGeometryInstances()
-import           Test.QuickCheck.Instances()
-import           Util
-
-import           Debug.Trace
-
-spec :: Spec
-spec = do
-    describe "ConvexHull Algorithms" $ do
-      modifyMaxSize (const 1000) . modifyMaxSuccess (const 1000) $
-        it "GrahamScan and DivideAnd Conquer are the same" $
-          property $ \pts ->
-            (PG $ GrahamScan.convexHull pts)
-            ==
-            (PG $ DivideAndConquer.convexHull pts)
-
-newtype PG = PG (ConvexPolygon () Rational) deriving (Show)
-
-instance Eq PG where
-  (PG a) == (PG b) = let as = a^.simplePolygon.outerBoundary
-                         bs = b^.simplePolygon.outerBoundary
-                     in isShiftOf as bs
diff --git a/test/Algorithms/Geometry/DelaunayTriangulation/DTSpec.hs b/test/Algorithms/Geometry/DelaunayTriangulation/DTSpec.hs
deleted file mode 100644
--- a/test/Algorithms/Geometry/DelaunayTriangulation/DTSpec.hs
+++ /dev/null
@@ -1,116 +0,0 @@
-{-# LANGUAGE LambdaCase #-}
-module Algorithms.Geometry.DelaunayTriangulation.DTSpec where
-
-import qualified Algorithms.Geometry.DelaunayTriangulation.DivideAndConquer as DC
-import qualified Algorithms.Geometry.DelaunayTriangulation.Naive as Naive
-import           Algorithms.Geometry.DelaunayTriangulation.Types
-import           Control.Lens
-import qualified Data.CircularList.Util as CU
-import           Data.Ext
-import           Data.Geometry
-import           Data.Geometry.Ipe
-import qualified Data.List.NonEmpty as NonEmpty
-import qualified Data.Map as M
-import           Data.Maybe (mapMaybe, fromJust)
-import qualified Data.Vector as V
-import           Test.Hspec
-import           Util
-
-
-dtEdges :: (Fractional r, Ord r)
-        => NonEmpty.NonEmpty (Point 2 r :+ p) -> [(VertexID, VertexID)]
-dtEdges = tEdges . DC.delaunayTriangulation
-
-take'   :: Int -> NonEmpty.NonEmpty a -> NonEmpty.NonEmpty a
-take' i = NonEmpty.fromList . NonEmpty.take i
-
---------------------------------------------------------------------------------
-
-spec :: Spec
-spec = do
-  describe "Testing Divide and Conquer Algorithm for Delaunay Triangulation" $ do
-    it "singleton " $ do
-      dtEdges (take' 1 myPoints) `shouldBe` []
-    toSpec (TestCase "myPoints" myPoints)
-    toSpec (TestCase "myPoints'" myPoints')
-    ipeSpec
-
-ipeSpec :: Spec
-ipeSpec = testCases "test/Algorithms/Geometry/SmallestEnclosingDisk/manual.ipe"
-
-testCases    :: FilePath -> Spec
-testCases fp = (runIO $ readInput fp) >>= \case
-    Left e    -> it "reading Delaunay Triangulation disk file" $
-                   expectationFailure $ "Failed to read ipe file " ++ show e
-    Right tcs -> mapM_ toSpec tcs
-
-
--- | Point sets per color, Crosses form the solution
-readInput    :: FilePath -> IO (Either ConversionError [TestCase Rational])
-readInput fp = fmap f <$> readSinglePageFile fp
-  where
-    f page = [ TestCase "?" $ fmap (\p -> p^.core.symbolPoint :+ ()) pSet
-             | pSet <- byStrokeColour' syms
-             ]
-      where
-        syms = page^..content.traverse._IpeUse
-        byStrokeColour' = mapMaybe NonEmpty.nonEmpty . byStrokeColour
-
-
-
-data TestCase r = TestCase { _color    :: String
-                           , _pointSet :: NonEmpty.NonEmpty (Point 2 r :+ ())
-                           } deriving (Show,Eq)
-
-
-toSpec                    :: (Fractional r, Ord r, Show r) => TestCase r -> Spec
-toSpec (TestCase c pts) = describe ("testing on " ++ c ++ " points") $ do
-                            sameAsNaive c pts
-
-sameAsNaive       :: (Fractional r, Ord r, Show p, Show r)
-                  => String -> NonEmpty.NonEmpty (Point 2 r :+ p) -> Spec
-sameAsNaive s pts = it ("Divide And Conquer same answer as Naive on " ++ s) $
-                      (Naive.delaunayTriangulation pts
-                       `sameEdges`
-                       DC.delaunayTriangulation pts) `shouldBe` True
-
-
-sameEdges             :: Triangulation p r -> Triangulation p r -> Bool
-triA `sameEdges` triB = all sameAdj . M.assocs $ mapping'
-  where
-    sameAdj (a, b) = (f $ adjA V.! a) `CU.isShiftOf` (adjB V.! b)
-
-    adjA = triA^.neighbours
-    adjB = triB^.neighbours
-
-    mapping' = M.fromList $ zip (M.elems $ triA^.vertexIds) (M.elems $ triB^.vertexIds)
-
-    f = fmap (fromJust . flip M.lookup mapping')
-
-myPoints :: NonEmpty.NonEmpty (Point 2 Rational :+ ())
-myPoints = NonEmpty.fromList . map ext $
-           [ point2 1  3
-           , point2 4  26
-           , point2 5  17
-           , point2 6  7
-           , point2 12 16
-           , point2 19 4
-           , point2 20 0
-           , point2 20 11
-           , point2 23 23
-           , point2 31 14
-           , point2 33 5
-           ]
-
-myPoints' :: NonEmpty.NonEmpty (Point 2 Rational :+ ())
-myPoints' = NonEmpty.fromList . map ext $
-            [ point2 64  736
-            , point2 96 688
-            , point2 128 752
-            , point2 160 704
-            , point2 128 672
-            , point2 64 656
-            , point2 192 736
-            , point2 208 704
-            , point2 192 672
-            ]
diff --git a/test/Algorithms/Geometry/LineSegmentIntersection/BentleyOttmannSpec.hs b/test/Algorithms/Geometry/LineSegmentIntersection/BentleyOttmannSpec.hs
deleted file mode 100644
--- a/test/Algorithms/Geometry/LineSegmentIntersection/BentleyOttmannSpec.hs
+++ /dev/null
@@ -1,116 +0,0 @@
-module Algorithms.Geometry.LineSegmentIntersection.BentleyOttmannSpec where
-
-import           Algorithms.Geometry.LineSegmentIntersection (hasSelfIntersections)
-import qualified Algorithms.Geometry.LineSegmentIntersection.BentleyOttmann as Sweep
-import qualified Algorithms.Geometry.LineSegmentIntersection.Naive as Naive
-import           Algorithms.Geometry.LineSegmentIntersection.Types
-import           Control.Lens
-import           Data.Ext
-import           Data.Geometry.Interval
-import           Data.Geometry.Ipe
-import           Data.Geometry.LineSegment
-import           Data.Geometry.Point
-import           Data.Geometry.Polygon
-import qualified Data.List as L
-import qualified Data.List.NonEmpty as NonEmpty
-import qualified Data.Map as Map
-import           Data.Proxy
-import           Data.Semigroup
-import qualified Data.Set as Set
-import           Test.Hspec
-import           Test.QuickCheck
-import           Util
-
-import           Debug.Trace
-
-spec :: Spec
-spec = do
-  describe "Testing Bentley Ottmann LineSegment Intersection" $ do
-    -- toSpec (TestCase "myPoints" myPoints)
-    -- toSpec (TestCase "myPoints'" myPoints')
-    ipeSpec
-  describe "Self Intersecting Polygon Tests" $ do
-    siTestCases (testPath <> "selfIntersections.ipe")
-
-testPath = "test/Algorithms/Geometry/LineSegmentIntersection/"
-
-ipeSpec :: Spec
-ipeSpec = testCases (testPath <> "manual.ipe")
-
-testCases    :: FilePath -> Spec
-testCases fp = (runIO $ readInput fp) >>= \case
-    Left e    -> it "reading LineSegment Intersection file" $
-                   expectationFailure $ "Failed to read ipe file " ++ show e
-    Right tcs -> mapM_ toSpec tcs
-
-
--- | Point sets per color, Crosses form the solution
-readInput    :: FilePath -> IO (Either ConversionError [TestCase Rational])
-readInput fp = fmap f <$> readSinglePageFile fp
-  where
-    f page = [TestCase segs]
-      where
-        segs = page^..content.traverse._IpePath.core._asLineSegment
-
-
-
-data TestCase r = TestCase { _segments :: [LineSegment 2 () r]
-                           } deriving (Show,Eq)
-
-
-toSpec                 :: (Fractional r, Ord r, Show r) => TestCase r -> Spec
-toSpec (TestCase segs) = describe ("testing segments ") $ do
-                            samePointsAsNaive segs
-                            sameAsNaive segs
-
--- | Test if we have the same intersection points
-samePointsAsNaive segs = it "Same points as Naive" $ do
-  (Map.keys $ Sweep.intersections segs) `shouldBe` (Map.keys $ Naive.intersections segs)
-
--- | Test if they every intersection point has the right segments
-sameAsNaive      :: (Fractional r, Ord r, Eq p
-                    , Show p, Show r
-                    ) => [LineSegment 2 p r] -> Spec
-sameAsNaive segs = it "Same as Naive " $ do
-    (Sweep.intersections segs) `shouldBe` (Naive.intersections segs)
-
-
-data SelfIntersectionTestCase r = SITestCase { _siPolygon :: SimplePolygon () r
-                                             , _isSelfIntersectiong :: Bool
-                                             } deriving (Show,Eq)
-
-
-siTestCases    :: FilePath -> Spec
-siTestCases fp = (runIO $ readSiInput fp) >>= \case
-    Left e    -> it "reading SelfIntersection file" $
-                   expectationFailure $ "Failed to read ipe file " ++ show e
-    Right tcs -> mapM_ siToSpec tcs
-
--- | polygons are considered self intersecting when they are red
-readSiInput    :: FilePath -> IO (Either ConversionError [SelfIntersectionTestCase Rational])
-readSiInput fp = fmap f <$> readSinglePageFile fp
-  where
-    f page = [ SITestCase pg (isRed a)
-             | pg :+ a <- polies
-             ]
-      where
-        polies = page^..content.to flattenGroups.traverse
-               ._withAttrs _IpePath _asSimplePolygon
-        isRed ats = lookupAttr (Proxy :: Proxy Stroke) ats == Just (IpeColor (Named "red"))
-
-
-siToSpec                   :: SelfIntersectionTestCase Rational -> Spec
-siToSpec (SITestCase pg b) = it ("SelfIntersecting?: " <> take 50 (show pg)) $ do
-                               hasSelfIntersections pg `shouldBe` b
-
-
-
--- flattenGroups :: [IpeObject r] -> [IpeObject r]
--- flattenGroups = concatMap flattenGroups'
-
--- flattenGroups'                              :: IpeObject r -> [IpeObject r]
--- flattenGroups' (IpeGroup (Group gs :+ ats)) =
---       map (applyAts ats) . concatMap flattenGroups' $ gs
---     where
---       applyAts ats = id
--- flattenGroups' o                            = [o]
diff --git a/test/Algorithms/Geometry/LinearProgramming/manual.ipe b/test/Algorithms/Geometry/LinearProgramming/manual.ipe
new file mode 100644
--- /dev/null
+++ b/test/Algorithms/Geometry/LinearProgramming/manual.ipe
@@ -0,0 +1,370 @@
+<?xml version="1.0"?>
+<!DOCTYPE ipe SYSTEM "ipe.dtd">
+<ipe version="70206" creator="Ipe 7.2.7">
+<info created="D:20190310094400" modified="D:20190310110316"/>
+<ipestyle name="basic">
+<symbol name="arrow/arc(spx)">
+<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/farc(spx)">
+<path stroke="sym-stroke" fill="white" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/ptarc(spx)">
+<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/fptarc(spx)">
+<path stroke="sym-stroke" fill="white" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="mark/circle(sx)" transformations="translations">
+<path fill="sym-stroke">
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+</path>
+</symbol>
+<symbol name="mark/disk(sx)" transformations="translations">
+<path fill="sym-stroke">
+0.6 0 0 0.6 0 0 e
+</path>
+</symbol>
+<symbol name="mark/fdisk(sfx)" transformations="translations">
+<group>
+<path fill="sym-fill">
+0.5 0 0 0.5 0 0 e
+</path>
+<path fill="sym-stroke" fillrule="eofill">
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+</path>
+</group>
+</symbol>
+<symbol name="mark/box(sx)" transformations="translations">
+<path fill="sym-stroke" fillrule="eofill">
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+</path>
+</symbol>
+<symbol name="mark/square(sx)" transformations="translations">
+<path fill="sym-stroke">
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+</path>
+</symbol>
+<symbol name="mark/fsquare(sfx)" transformations="translations">
+<group>
+<path fill="sym-fill">
+-0.5 -0.5 m
+0.5 -0.5 l
+0.5 0.5 l
+-0.5 0.5 l
+h
+</path>
+<path fill="sym-stroke" fillrule="eofill">
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+</path>
+</group>
+</symbol>
+<symbol name="mark/cross(sx)" transformations="translations">
+<group>
+<path fill="sym-stroke">
+-0.43 -0.57 m
+0.57 0.43 l
+0.43 0.57 l
+-0.57 -0.43 l
+h
+</path>
+<path fill="sym-stroke">
+-0.43 0.57 m
+0.57 -0.43 l
+0.43 -0.57 l
+-0.57 0.43 l
+h
+</path>
+</group>
+</symbol>
+<symbol name="arrow/fnormal(spx)">
+<path stroke="sym-stroke" fill="white" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/pointed(spx)">
+<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/fpointed(spx)">
+<path stroke="sym-stroke" fill="white" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/linear(spx)">
+<path stroke="sym-stroke" pen="sym-pen">
+-1 0.333 m
+0 0 l
+-1 -0.333 l
+</path>
+</symbol>
+<symbol name="arrow/fdouble(spx)">
+<path stroke="sym-stroke" fill="white" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/double(spx)">
+<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+</path>
+</symbol>
+<pen name="heavier" value="0.8"/>
+<pen name="fat" value="1.2"/>
+<pen name="ultrafat" value="2"/>
+<symbolsize name="large" value="5"/>
+<symbolsize name="small" value="2"/>
+<symbolsize name="tiny" value="1.1"/>
+<arrowsize name="large" value="10"/>
+<arrowsize name="small" value="5"/>
+<arrowsize name="tiny" value="3"/>
+<color name="red" value="1 0 0"/>
+<color name="green" value="0 1 0"/>
+<color name="blue" value="0 0 1"/>
+<color name="yellow" value="1 1 0"/>
+<color name="orange" value="1 0.647 0"/>
+<color name="gold" value="1 0.843 0"/>
+<color name="purple" value="0.627 0.125 0.941"/>
+<color name="gray" value="0.745"/>
+<color name="brown" value="0.647 0.165 0.165"/>
+<color name="navy" value="0 0 0.502"/>
+<color name="pink" value="1 0.753 0.796"/>
+<color name="seagreen" value="0.18 0.545 0.341"/>
+<color name="turquoise" value="0.251 0.878 0.816"/>
+<color name="violet" value="0.933 0.51 0.933"/>
+<color name="darkblue" value="0 0 0.545"/>
+<color name="darkcyan" value="0 0.545 0.545"/>
+<color name="darkgray" value="0.663"/>
+<color name="darkgreen" value="0 0.392 0"/>
+<color name="darkmagenta" value="0.545 0 0.545"/>
+<color name="darkorange" value="1 0.549 0"/>
+<color name="darkred" value="0.545 0 0"/>
+<color name="lightblue" value="0.678 0.847 0.902"/>
+<color name="lightcyan" value="0.878 1 1"/>
+<color name="lightgray" value="0.827"/>
+<color name="lightgreen" value="0.565 0.933 0.565"/>
+<color name="lightyellow" value="1 1 0.878"/>
+<dashstyle name="dashed" value="[4] 0"/>
+<dashstyle name="dotted" value="[1 3] 0"/>
+<dashstyle name="dash dotted" value="[4 2 1 2] 0"/>
+<dashstyle name="dash dot dotted" value="[4 2 1 2 1 2] 0"/>
+<textsize name="large" value="\large"/>
+<textsize name="Large" value="\Large"/>
+<textsize name="LARGE" value="\LARGE"/>
+<textsize name="huge" value="\huge"/>
+<textsize name="Huge" value="\Huge"/>
+<textsize name="small" value="\small"/>
+<textsize name="footnote" value="\footnotesize"/>
+<textsize name="tiny" value="\tiny"/>
+<textstyle name="center" begin="\begin{center}" end="\end{center}"/>
+<textstyle name="itemize" begin="\begin{itemize}" end="\end{itemize}"/>
+<textstyle name="item" begin="\begin{itemize}\item{}" end="\end{itemize}"/>
+<gridsize name="4 pts" value="4"/>
+<gridsize name="8 pts (~3 mm)" value="8"/>
+<gridsize name="16 pts (~6 mm)" value="16"/>
+<gridsize name="32 pts (~12 mm)" value="32"/>
+<gridsize name="10 pts (~3.5 mm)" value="10"/>
+<gridsize name="20 pts (~7 mm)" value="20"/>
+<gridsize name="14 pts (~5 mm)" value="14"/>
+<gridsize name="28 pts (~10 mm)" value="28"/>
+<gridsize name="56 pts (~20 mm)" value="56"/>
+<anglesize name="90 deg" value="90"/>
+<anglesize name="60 deg" value="60"/>
+<anglesize name="45 deg" value="45"/>
+<anglesize name="30 deg" value="30"/>
+<anglesize name="22.5 deg" value="22.5"/>
+<opacity name="10%" value="0.1"/>
+<opacity name="30%" value="0.3"/>
+<opacity name="50%" value="0.5"/>
+<opacity name="75%" value="0.75"/>
+<tiling name="falling" angle="-60" step="4" width="1"/>
+<tiling name="rising" angle="30" step="4" width="1"/>
+</ipestyle>
+<ipestyle name="frank">
+<arrowsize name="normal" value="5"/>
+<arrowsize name="large" value="8"/>
+<arrowsize name="huge" value="10"/>
+<arrowsize name="small" value="3"/>
+<arrowsize name="tiny" value="1"/>
+<dashstyle name="dashed" value="[2 2] 0"/>
+<dashstyle name="dotted" value="[0.5 1] 0"/>
+<dashstyle name="dash dotted" value="[4 2 1 2] 0"/>
+<dashstyle name="dash dot dotted" value="[4 2 1 2 1 2] 0"/>
+<gridsize name="1 pts" value="1"/>
+<gridsize name="2 pts" value="2"/>
+<opacity name="10%" value="0.1"/>
+<opacity name="30%" value="0.3"/>
+<opacity name="50%" value="0.5"/>
+<opacity name="20%" value="0.2"/>
+<opacity name="40%" value="0.4"/>
+<opacity name="60%" value="0.6"/>
+<opacity name="70%" value="0.7"/>
+<opacity name="80%" value="0.8"/>
+<opacity name="90%" value="0.9"/>
+</ipestyle>
+<page>
+<layer name="alpha"/>
+<view layers="alpha" active="alpha"/>
+<path layer="alpha" stroke="blue">
+80 512 m
+496 688 l
+</path>
+<path stroke="blue">
+32 656 m
+400 496 l
+</path>
+<path stroke="blue">
+192 512 m
+512 592 l
+</path>
+<path stroke="blue">
+80 544 m
+448 512 l
+</path>
+<path stroke="red">
+48 608 m
+400 768 l
+</path>
+<path stroke="red">
+64 784 m
+512 672 l
+</path>
+<path stroke="red">
+64 720 m
+560 688 l
+</path>
+<use name="mark/disk(sx)" pos="223.532 572.725" size="normal" stroke="black"/>
+</page>
+<page>
+<layer name="alpha"/>
+<view layers="alpha" active="alpha"/>
+<path layer="alpha" matrix="2.40555 0 0 2.40555 -64.8028 -863.829" stroke="red">
+46.1048 614.582 m
+429.2 688.899 l
+</path>
+<path matrix="2.32631 0 0 2.32631 -54.964 -984.057" stroke="blue">
+41.4414 741.953 m
+423.596 711.062 l
+</path>
+<path stroke="red">
+121.985 842 m
+859.993 369.865 l
+</path>
+</page>
+<page>
+<layer name="alpha"/>
+<view layers="alpha" active="alpha"/>
+<path layer="alpha" stroke="red">
+22.6642 533.532 m
+595 760.836 l
+</path>
+<path stroke="red">
+0 803.856 m
+595 555.084 l
+</path>
+<path stroke="red">
+-29.9681 598.468 m
+794.006 675.181 l
+</path>
+<path stroke="red">
+411.476 809.515 m
+595 311.453 l
+</path>
+<path stroke="red">
+0 382.909 m
+437.853 1024.64 l
+</path>
+<path stroke="blue">
+-16.5606 862.606 m
+411.101 433.915 l
+</path>
+<path stroke="blue">
+95.0642 522.237 m
+857.65 676.395 l
+</path>
+<path stroke="blue">
+277.375 460.704 m
+642.518 950.636 l
+</path>
+<path stroke="blue">
+450.168 450.864 m
+868.112 754.196 l
+</path>
+<path stroke="blue">
+28.6395 500.773 m
+594.217 555.411 l
+</path>
+<use name="mark/disk(sx)" pos="284.74 560.58" size="normal" stroke="blue"/>
+</page>
+</ipe>
diff --git a/test/Algorithms/Geometry/LowerEnvelope/LowerEnvSpec.hs b/test/Algorithms/Geometry/LowerEnvelope/LowerEnvSpec.hs
deleted file mode 100644
--- a/test/Algorithms/Geometry/LowerEnvelope/LowerEnvSpec.hs
+++ /dev/null
@@ -1,104 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-module Algorithms.Geometry.LowerEnvelope.LowerEnvSpec where
-
-import qualified Algorithms.Geometry.LowerEnvelope.DualCH as DualCH
-import           Control.Lens
-import           Data.Eq.Approximate
-import           Data.Ext
-import           Data.Geometry
-import           Data.Geometry.Ipe
-import           Data.Geometry.Line
-import           Data.List.NonEmpty (NonEmpty(..))
-import qualified Data.List.NonEmpty as NonEmpty
-import           Data.Maybe (mapMaybe)
-import           Data.Proxy
-import           Data.Ratio
-import           Data.Semigroup
-import           Data.Vinyl.CoRec
-import           GHC.TypeLits
-import           Test.Hspec
-import           Util
-
--- import Algorithms.Geometry.LowerEnvelope.Types
-
-spec :: Spec
-spec = testCases "test/Algorithms/Geometry/LowerEnvelope/manual.ipe"
-
-testCases    :: FilePath -> Spec
-testCases fp = (runIO $ readInput fp) >>= \case
-    Left e    -> it "reading Smallest enclosing disk file" $
-                   expectationFailure $ "Failed to read ipe file " ++ show e
-    Right tcs -> mapM_ toSpec tcs
-
-
-type Approx r = AbsolutelyApproximateValue (Proxy 3) r
-
-
-
-data TestCase r = TestCase { _lines    :: NonEmpty (Line 2 r :+ ())
-                           , _color    :: Maybe (IpeColor r)
-                           , _solution :: [Point 2 (Approx r)]
-                           }
-                  deriving (Show,Eq)
-
-
-readInput    :: FilePath -> IO (Either ConversionError [TestCase Rational])
-readInput fp = fmap f <$> readSinglePageFile fp
-  where
-    f page = [ let c = lookup' $ NonEmpty.head lSet
-               in TestCase ((\l -> l^.core.to supportingLine :+ ()) <$> lSet)
-                           c
-                           (solutionOf c)
-             | lSet <- mapMaybe NonEmpty.nonEmpty $ byStrokeColour segs
-             ]
-      where
-        segs :: [LineSegment 2 () Rational :+ IpeAttributes Path Rational]
-        segs = page^..content.traverse._withAttrs _IpePath _asLineSegment
-        pts  = page^..content.traverse._IpeUse
-
-        solutionOf c = [ AbsolutelyApproximateValue <$> p^.core.symbolPoint
-                       | p <- pts, lookup' p == c
-                       ]
-
-
-
-lookup' (_ :+ ats) = lookupAttr (Proxy :: Proxy Stroke) ats
-
-
-toSpec                    :: (Fractional r, Ord r, Show r) => TestCase r -> Spec
-toSpec (TestCase ls c sol) = it ("testing the " <> show c <> " set") $
-  (map (approx . (^.core))
-   . DualCH.vertices . DualCH.lowerEnvelope $ ls) `shouldBe` sol
-
-
-approx = fmap AbsolutelyApproximateValue
-
--- shouldApprox       :: forall f r. ( Functor f, Eq (f (Approx r))
---                                   , Show (f (Approx r))
---                                   )
---                    => f r -> f r -> Expectation
--- a `shouldApprox` b = a' `shouldBe` b'
---   where
---     a' :: f (Approx r)
---     a' = AbsolutelyApproximateValue <$> a
---     b' :: f (Approx r)
---     b' = AbsolutelyApproximateValue <$> b
-
-
-
-instance KnownNat n => AbsoluteTolerance (Proxy n) where
-  absoluteToleranceOf = toleranceFromKnownNat . getAbsoluteTolerance
-
-toleranceFromKnownNat   :: (Fractional r, KnownNat n) => proxy n -> r
-toleranceFromKnownNat p = recip . fromInteger $ (10 :: Integer) ^ (natVal p)
-
-instance KnownNat n => RelativeTolerance (Proxy n) where
-  relativeToleranceOf = toleranceFromKnownNat . getRelativeTolerance
-
-instance KnownNat n => ZeroTolerance (Proxy n) where
-  zeroToleranceOf = toleranceFromKnownNat . getZeroTolerance
-
---     where
---       f   :: Fractional r => AbsolutelyApproximateValue (Proxy n) r -> r
---       f _ = recip $ (fromInteger 10) ^^ (natVal (Proxy :: Proxy n))
diff --git a/test/Algorithms/Geometry/PolygonTriangulation/MakeMonotoneSpec.hs b/test/Algorithms/Geometry/PolygonTriangulation/MakeMonotoneSpec.hs
deleted file mode 100644
--- a/test/Algorithms/Geometry/PolygonTriangulation/MakeMonotoneSpec.hs
+++ /dev/null
@@ -1,58 +0,0 @@
-module Algorithms.Geometry.PolygonTriangulation.MakeMonotoneSpec where
-
-import Algorithms.Geometry.PolygonTriangulation.MakeMonotone
-import Data.Geometry.Polygon
-import Data.Geometry
-import Data.Ext
-import Control.Lens
-import Test.Hspec
-import qualified Data.List.NonEmpty as NonEmpty
-import qualified Data.Set as Set
--- import Data.Geometry.Ipe
-
-
-spec :: Spec
-spec = describe "GeomBook Example" $ do
-         it "Classify Verticese" $
-           (fmap (^.extra.extra) . polygonVertices $ classifyVertices geomBookPoly)
-           `shouldBe` geomBookVertexTypes
-         it "Diagonals" $
-           (Set.fromList . map (\s -> sort' (s^.start.extra,s^.end.extra))
-            $ computeDiagonals geomBookPoly)
-           `shouldBe` geomBookDiagonals
-
-
-  -- testCases "test/Algorithms/Geometry/SmallestEnclosingDisk/manual.ipe"
-
-sort'       :: Ord a => (a,a) -> (a,a)
-sort' (x,y) = (min x y, max x y)
-
-geomBookPoly :: SimplePolygon Int Rational
-geomBookPoly = fromPoints [ point2 20 20 :+ 1
-                          , point2 18 19 :+ 2
-                          , point2 16 25 :+ 3
-                          , point2 13 23 :+ 4
-                          , point2 10 24 :+ 5
-                          , point2 6  22 :+ 6
-                          , point2 8  21 :+ 7
-                          , point2 7  18 :+ 8
-                          , point2 2  19 :+ 9
-                          , point2 1  10 :+ 10
-                          , point2 3  5  :+ 11
-                          , point2 11 7  :+ 12
-                          , point2 15 1  :+ 13
-                          , point2 12 15 :+ 14
-                          , point2 15 12 :+ 15
-                          ]
-geomBookVertexTypes = NonEmpty.fromList [Start,Merge,Start,Merge,Start,Regular,Regular,Merge,Start,Regular,End,Split,End,Split,End]
-geomBookDiagonals = Set.fromList [(4,6),(2,8),(8,14),(10,12)]
-
-
-
-  -- let f i     = geomBookPoly !! (i-1)
-  --                       seg i j =
-  --                   in
-
-  -- [Clo
-
-  -- LineSegment (Closed (Point2 [6 % 1,22 % 1] :+ 6)) (Closed (Point2 [13 % 1,23 % 1] :+ 4)),LineSegment (Closed (Point2 [7 % 1,18 % 1] :+ 8)) (Closed (Point2 [18 % 1,19 % 1] :+ 2)),LineSegment (Closed (Point2 [12 % 1,15 % 1] :+ 14)) (Closed (Point2 [7 % 1,18 % 1] :+ 8)),LineSegment (Closed (Point2 [11 % 1,7 % 1] :+ 12)) (Closed (Point2 [1 % 1,10 % 1] :+ 10))]
diff --git a/test/Algorithms/Geometry/PolygonTriangulation/TriangulateMonotoneSpec.hs b/test/Algorithms/Geometry/PolygonTriangulation/TriangulateMonotoneSpec.hs
deleted file mode 100644
--- a/test/Algorithms/Geometry/PolygonTriangulation/TriangulateMonotoneSpec.hs
+++ /dev/null
@@ -1,73 +0,0 @@
-module Algorithms.Geometry.PolygonTriangulation.TriangulateMonotoneSpec where
-
-import           Algorithms.Geometry.PolygonTriangulation.TriangulateMonotone
-import           Control.Lens
-import           Data.Ext
-import           Data.Geometry
-import           Data.Geometry.Ipe
-import           Data.Geometry.Polygon
-import qualified Data.List.NonEmpty as NonEmpty
-import           Data.Maybe
-import qualified Data.Set as Set
-import           Data.Vinyl
-import           Test.Hspec
-import           Util
-
-
-spec :: Spec
-spec = do testCases "test/Algorithms/Geometry/PolygonTriangulation/monotone.ipe"
-          testCases "test/Algorithms/Geometry/PolygonTriangulation/simplepolygon6.ipe"
-
-testCases    :: FilePath -> Spec
-testCases fp = (runIO $ readInput fp) >>= \case
-    Left e    -> it "reading TriangulateMonotone file" $
-                   expectationFailure $ "Failed to read ipe file " ++ show e
-    Right tcs -> mapM_ toSpec tcs
-
-
-data TestCase r = TestCase { _polygon  :: MonotonePolygon () r :+ IpeColor r
-                           , _solution :: [LineSegment 2 () r]
-                           }
-                  deriving (Show,Eq)
-
-
-toSpec                            :: (Num r, Ord r, Show r) => TestCase r -> Spec
-toSpec (TestCase (poly :+ c) sol) =
-    describe ("testing polygions of color " ++ show c) $ do
-      it "comparing with manual solution" $
-        (naiveSet $ computeDiagonals poly) `shouldBe` naiveSet sol
-  where
-    naiveSet = NaiveSet . map S
-
-newtype S p r = S (LineSegment 2 p r) deriving (Show)
-
-instance (Eq p, Eq r) => Eq (S p r) where
-  (S s) == (S y) =  (s^.start == y^.start && s^.end == y^.end)
-                 || (s^.start == y^.end   && s^.end == y^.start)
-
-
-
--- | Point sets per color, Crosses form the solution
-readInput    :: FilePath -> IO (Either ConversionError [TestCase Rational])
-readInput fp = fmap f <$> readSinglePageFile fp
-  where
-    f page = [ TestCase pg (solutionOf pg segs)
-             | pg <- map g polies
-             ]
-      where
-        g x@(pg :+ _) = toCounterClockWiseOrder pg :+ lookupColor x
-
-        polies = page^..content.traverse._withAttrs _IpePath _asSimplePolygon
-        segs   = page^..content.traverse._withAttrs _IpePath _asLineSegment
-
-        solutionOf (_ :+ c) = map (^.core) . filter ((== c) . lookupColor)
-
-
-        -- -- | Crosses form a solution
-        -- isInSolution s = s^.core.symbolName == "mark/cross(sx)"
-
-        -- right = either (const Nothing) Just
-        -- solutionOf = right . fromList . map (^.core.symbolPoint) . filter isInSolution
-
-lookupColor           :: i :+ IpeAttributes Path r -> IpeColor r
-lookupColor (_ :+ ats) = fromMaybe (IpeColor $ Named "black") $ lookupAttr SStroke ats
diff --git a/test/Algorithms/Geometry/RedBlueSeparator/manual.ipe b/test/Algorithms/Geometry/RedBlueSeparator/manual.ipe
new file mode 100644
--- /dev/null
+++ b/test/Algorithms/Geometry/RedBlueSeparator/manual.ipe
@@ -0,0 +1,355 @@
+<?xml version="1.0"?>
+<!DOCTYPE ipe SYSTEM "ipe.dtd">
+<ipe version="70206" creator="Ipe 7.2.7">
+<info created="D:20190316210045" modified="D:20190316234250"/>
+<ipestyle name="basic">
+<symbol name="arrow/arc(spx)">
+<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/farc(spx)">
+<path stroke="sym-stroke" fill="white" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/ptarc(spx)">
+<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/fptarc(spx)">
+<path stroke="sym-stroke" fill="white" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="mark/circle(sx)" transformations="translations">
+<path fill="sym-stroke">
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+</path>
+</symbol>
+<symbol name="mark/disk(sx)" transformations="translations">
+<path fill="sym-stroke">
+0.6 0 0 0.6 0 0 e
+</path>
+</symbol>
+<symbol name="mark/fdisk(sfx)" transformations="translations">
+<group>
+<path fill="sym-fill">
+0.5 0 0 0.5 0 0 e
+</path>
+<path fill="sym-stroke" fillrule="eofill">
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+</path>
+</group>
+</symbol>
+<symbol name="mark/box(sx)" transformations="translations">
+<path fill="sym-stroke" fillrule="eofill">
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+</path>
+</symbol>
+<symbol name="mark/square(sx)" transformations="translations">
+<path fill="sym-stroke">
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+</path>
+</symbol>
+<symbol name="mark/fsquare(sfx)" transformations="translations">
+<group>
+<path fill="sym-fill">
+-0.5 -0.5 m
+0.5 -0.5 l
+0.5 0.5 l
+-0.5 0.5 l
+h
+</path>
+<path fill="sym-stroke" fillrule="eofill">
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+</path>
+</group>
+</symbol>
+<symbol name="mark/cross(sx)" transformations="translations">
+<group>
+<path fill="sym-stroke">
+-0.43 -0.57 m
+0.57 0.43 l
+0.43 0.57 l
+-0.57 -0.43 l
+h
+</path>
+<path fill="sym-stroke">
+-0.43 0.57 m
+0.57 -0.43 l
+0.43 -0.57 l
+-0.57 0.43 l
+h
+</path>
+</group>
+</symbol>
+<symbol name="arrow/fnormal(spx)">
+<path stroke="sym-stroke" fill="white" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/pointed(spx)">
+<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/fpointed(spx)">
+<path stroke="sym-stroke" fill="white" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/linear(spx)">
+<path stroke="sym-stroke" pen="sym-pen">
+-1 0.333 m
+0 0 l
+-1 -0.333 l
+</path>
+</symbol>
+<symbol name="arrow/fdouble(spx)">
+<path stroke="sym-stroke" fill="white" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/double(spx)">
+<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+</path>
+</symbol>
+<pen name="heavier" value="0.8"/>
+<pen name="fat" value="1.2"/>
+<pen name="ultrafat" value="2"/>
+<symbolsize name="large" value="5"/>
+<symbolsize name="small" value="2"/>
+<symbolsize name="tiny" value="1.1"/>
+<arrowsize name="large" value="10"/>
+<arrowsize name="small" value="5"/>
+<arrowsize name="tiny" value="3"/>
+<color name="red" value="1 0 0"/>
+<color name="green" value="0 1 0"/>
+<color name="blue" value="0 0 1"/>
+<color name="yellow" value="1 1 0"/>
+<color name="orange" value="1 0.647 0"/>
+<color name="gold" value="1 0.843 0"/>
+<color name="purple" value="0.627 0.125 0.941"/>
+<color name="gray" value="0.745"/>
+<color name="brown" value="0.647 0.165 0.165"/>
+<color name="navy" value="0 0 0.502"/>
+<color name="pink" value="1 0.753 0.796"/>
+<color name="seagreen" value="0.18 0.545 0.341"/>
+<color name="turquoise" value="0.251 0.878 0.816"/>
+<color name="violet" value="0.933 0.51 0.933"/>
+<color name="darkblue" value="0 0 0.545"/>
+<color name="darkcyan" value="0 0.545 0.545"/>
+<color name="darkgray" value="0.663"/>
+<color name="darkgreen" value="0 0.392 0"/>
+<color name="darkmagenta" value="0.545 0 0.545"/>
+<color name="darkorange" value="1 0.549 0"/>
+<color name="darkred" value="0.545 0 0"/>
+<color name="lightblue" value="0.678 0.847 0.902"/>
+<color name="lightcyan" value="0.878 1 1"/>
+<color name="lightgray" value="0.827"/>
+<color name="lightgreen" value="0.565 0.933 0.565"/>
+<color name="lightyellow" value="1 1 0.878"/>
+<dashstyle name="dashed" value="[4] 0"/>
+<dashstyle name="dotted" value="[1 3] 0"/>
+<dashstyle name="dash dotted" value="[4 2 1 2] 0"/>
+<dashstyle name="dash dot dotted" value="[4 2 1 2 1 2] 0"/>
+<textsize name="large" value="\large"/>
+<textsize name="Large" value="\Large"/>
+<textsize name="LARGE" value="\LARGE"/>
+<textsize name="huge" value="\huge"/>
+<textsize name="Huge" value="\Huge"/>
+<textsize name="small" value="\small"/>
+<textsize name="footnote" value="\footnotesize"/>
+<textsize name="tiny" value="\tiny"/>
+<textstyle name="center" begin="\begin{center}" end="\end{center}"/>
+<textstyle name="itemize" begin="\begin{itemize}" end="\end{itemize}"/>
+<textstyle name="item" begin="\begin{itemize}\item{}" end="\end{itemize}"/>
+<gridsize name="4 pts" value="4"/>
+<gridsize name="8 pts (~3 mm)" value="8"/>
+<gridsize name="16 pts (~6 mm)" value="16"/>
+<gridsize name="32 pts (~12 mm)" value="32"/>
+<gridsize name="10 pts (~3.5 mm)" value="10"/>
+<gridsize name="20 pts (~7 mm)" value="20"/>
+<gridsize name="14 pts (~5 mm)" value="14"/>
+<gridsize name="28 pts (~10 mm)" value="28"/>
+<gridsize name="56 pts (~20 mm)" value="56"/>
+<anglesize name="90 deg" value="90"/>
+<anglesize name="60 deg" value="60"/>
+<anglesize name="45 deg" value="45"/>
+<anglesize name="30 deg" value="30"/>
+<anglesize name="22.5 deg" value="22.5"/>
+<opacity name="10%" value="0.1"/>
+<opacity name="30%" value="0.3"/>
+<opacity name="50%" value="0.5"/>
+<opacity name="75%" value="0.75"/>
+<tiling name="falling" angle="-60" step="4" width="1"/>
+<tiling name="rising" angle="30" step="4" width="1"/>
+</ipestyle>
+<ipestyle name="frank">
+<arrowsize name="normal" value="5"/>
+<arrowsize name="large" value="8"/>
+<arrowsize name="huge" value="10"/>
+<arrowsize name="small" value="3"/>
+<arrowsize name="tiny" value="1"/>
+<dashstyle name="dashed" value="[2 2] 0"/>
+<dashstyle name="dotted" value="[0.5 1] 0"/>
+<dashstyle name="dash dotted" value="[4 2 1 2] 0"/>
+<dashstyle name="dash dot dotted" value="[4 2 1 2 1 2] 0"/>
+<gridsize name="1 pts" value="1"/>
+<gridsize name="2 pts" value="2"/>
+<opacity name="10%" value="0.1"/>
+<opacity name="30%" value="0.3"/>
+<opacity name="50%" value="0.5"/>
+<opacity name="20%" value="0.2"/>
+<opacity name="40%" value="0.4"/>
+<opacity name="60%" value="0.6"/>
+<opacity name="70%" value="0.7"/>
+<opacity name="80%" value="0.8"/>
+<opacity name="90%" value="0.9"/>
+</ipestyle>
+<page>
+<layer name="alpha"/>
+<view layers="alpha" active="alpha"/>
+<use layer="alpha" name="mark/disk(sx)" pos="176 688" size="normal" stroke="blue"/>
+<use name="mark/disk(sx)" pos="224 672" size="normal" stroke="blue"/>
+<use name="mark/disk(sx)" pos="160 656" size="normal" stroke="blue"/>
+<use name="mark/disk(sx)" pos="208 624" size="normal" stroke="blue"/>
+<use name="mark/disk(sx)" pos="400 688" size="normal" stroke="red"/>
+<use name="mark/disk(sx)" pos="448 640" size="normal" stroke="red"/>
+<use matrix="1 0 0 1 -43.6079 16.3284" name="mark/disk(sx)" pos="400 640" size="normal" stroke="red"/>
+</page>
+<page>
+<layer name="alpha"/>
+<view layers="alpha" active="alpha"/>
+<use layer="alpha" name="mark/disk(sx)" pos="208 608" size="normal" stroke="red"/>
+<use name="mark/disk(sx)" pos="224 640" size="normal" stroke="red"/>
+<use matrix="1 0 0 1 0 1.54293" name="mark/disk(sx)" pos="288 608" size="normal" stroke="red"/>
+<use matrix="1 0 0 1 21.7014 -12.8726" name="mark/disk(sx)" pos="224 608" size="normal" stroke="red"/>
+<use name="mark/disk(sx)" pos="336 640" size="normal" stroke="red"/>
+<use name="mark/disk(sx)" pos="320 688" size="normal" stroke="red"/>
+<use name="mark/disk(sx)" pos="64 704" size="normal" stroke="blue"/>
+<use name="mark/disk(sx)" pos="160 656" size="normal" stroke="blue"/>
+<use name="mark/disk(sx)" pos="160 752" size="normal" stroke="blue"/>
+<use name="mark/disk(sx)" pos="112 672" size="normal" stroke="blue"/>
+<use name="mark/disk(sx)" pos="112 592" size="normal" stroke="blue"/>
+<use name="mark/disk(sx)" pos="288 736" size="normal" stroke="blue"/>
+</page>
+<page>
+<layer name="alpha"/>
+<view layers="alpha" active="alpha"/>
+<use layer="alpha" name="mark/cross(sx)" pos="137.831 733.813" size="normal" stroke="blue"/>
+<use name="mark/cross(sx)" pos="230.904 721.563" size="normal" stroke="blue"/>
+<use name="mark/cross(sx)" pos="150.255 624.633" size="normal" stroke="blue"/>
+<use name="mark/cross(sx)" pos="85.1135 709.576" size="normal" stroke="blue"/>
+<use name="mark/cross(sx)" pos="160.209 702.601" size="normal" stroke="blue"/>
+<use name="mark/cross(sx)" pos="160.209 702.601" size="normal" stroke="blue"/>
+<use name="mark/cross(sx)" pos="170.678 688.287" size="normal" stroke="blue"/>
+<use name="mark/cross(sx)" pos="251.915 645.615" size="normal" stroke="blue"/>
+<use name="mark/cross(sx)" pos="55.337 684.816" size="normal" stroke="blue"/>
+<use name="mark/cross(sx)" pos="129.955 678.571" size="normal" stroke="blue"/>
+<use name="mark/cross(sx)" pos="130.15 631.793" size="normal" stroke="blue"/>
+<use name="mark/cross(sx)" pos="249.435 558.192" size="normal" stroke="blue"/>
+<use name="mark/cross(sx)" pos="324.114 668.358" size="normal" stroke="blue"/>
+<use name="mark/cross(sx)" pos="324.114 668.358" size="normal" stroke="blue"/>
+<use name="mark/cross(sx)" pos="361.354 661.106" size="normal" stroke="blue"/>
+<use name="mark/cross(sx)" pos="189.131 599.845" size="normal" stroke="blue"/>
+<use name="mark/cross(sx)" pos="143.375 537.289" size="normal" stroke="blue"/>
+<use name="mark/cross(sx)" pos="359.679 584.286" size="normal" stroke="red"/>
+<use name="mark/cross(sx)" pos="396.828 627.4" size="normal" stroke="red"/>
+<use name="mark/cross(sx)" pos="417.481 668.711" size="normal" stroke="red"/>
+<use name="mark/cross(sx)" pos="467.45 598.096" size="normal" stroke="red"/>
+<use matrix="1 0 0 1 -93.524 0.18083" name="mark/cross(sx)" pos="326.916 608.601" size="normal" stroke="red"/>
+<use name="mark/cross(sx)" pos="338.842 545.777" size="normal" stroke="red"/>
+<use name="mark/cross(sx)" pos="432.668 573.584" size="normal" stroke="red"/>
+<use name="mark/cross(sx)" pos="357.521 629.624" size="normal" stroke="red"/>
+<use name="mark/cross(sx)" pos="309.927 526.735" size="normal" stroke="red"/>
+<use name="mark/cross(sx)" pos="417.855 527.98" size="normal" stroke="red"/>
+<use name="mark/cross(sx)" pos="425.293 604.935" size="normal" stroke="red"/>
+<use name="mark/cross(sx)" pos="482.54 641.657" size="normal" stroke="red"/>
+</page>
+<page>
+<layer name="alpha"/>
+<view layers="alpha" active="alpha"/>
+<use layer="alpha" name="mark/disk(sx)" pos="71.295 646.994" size="normal" stroke="red"/>
+<use name="mark/disk(sx)" pos="124.003 669.524" size="normal" stroke="red"/>
+<use name="mark/disk(sx)" pos="158.117 593.965" size="normal" stroke="red"/>
+<use name="mark/disk(sx)" pos="106.985 602.699" size="normal" stroke="red"/>
+<use name="mark/disk(sx)" pos="130.801 646.957" size="normal" stroke="red"/>
+<use name="mark/disk(sx)" pos="183.976 638.614" size="normal" stroke="red"/>
+<use name="mark/disk(sx)" pos="268.842 528.238" size="normal" stroke="blue"/>
+<use name="mark/disk(sx)" pos="303.35 581.718" size="normal" stroke="blue"/>
+<use name="mark/disk(sx)" pos="353.58 636.762" size="normal" stroke="blue"/>
+<use name="mark/disk(sx)" pos="288.989 633.613" size="normal" stroke="blue"/>
+<use name="mark/disk(sx)" pos="325.76 613.53" size="normal" stroke="blue"/>
+<use name="mark/disk(sx)" pos="337.81 597.8" size="normal" stroke="blue"/>
+<use name="mark/disk(sx)" pos="245.135 580.319" size="normal" stroke="blue"/>
+<use name="mark/disk(sx)" pos="168.779 515.317" size="normal" stroke="blue"/>
+<use name="mark/disk(sx)" pos="116.706 526.039" size="normal" stroke="blue"/>
+</page>
+</ipe>
diff --git a/test/Algorithms/Geometry/SmallestEnclosingDisk/RISpec.hs b/test/Algorithms/Geometry/SmallestEnclosingDisk/RISpec.hs
deleted file mode 100644
--- a/test/Algorithms/Geometry/SmallestEnclosingDisk/RISpec.hs
+++ /dev/null
@@ -1,73 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE LambdaCase #-}
-module Algorithms.Geometry.SmallestEnclosingDisk.RISpec where
-
-import Util
-
-import Control.Monad(when)
-import System.Random(mkStdGen)
-import Control.Lens
-import Data.Ext
-import Data.Maybe
-import Data.Proxy
-import Test.Hspec
-import Data.Geometry
-import Data.Geometry.Ball(fromDiameter, disk, Disk)
-import Data.Geometry.Ipe
-
-import Algorithms.Geometry.SmallestEnclosingBall.Types
-import qualified Algorithms.Geometry.SmallestEnclosingBall.RandomizedIncrementalConstruction as RIC
-import qualified Algorithms.Geometry.SmallestEnclosingBall.Naive as Naive
-
-
-spec :: Spec
-spec = testCases "test/Algorithms/Geometry/SmallestEnclosingDisk/manual.ipe"
-
-testCases    :: FilePath -> Spec
-testCases fp = (runIO $ readInput fp) >>= \case
-    Left e    -> it "reading Smallest enclosing disk file" $
-                   expectationFailure $ "Failed to read ipe file " ++ show e
-    Right tcs -> mapM_ toSpec tcs
-
-
-data TestCase r = TestCase { _pointSet :: [Point 2 r :+ ()]
-                           , _solution :: Maybe (TwoOrThree (Point 2 r))
-                           }
-                  deriving (Show,Eq)
-
-
-toSpec                    :: (Fractional r, Ord r, Show r) => TestCase r -> Spec
-toSpec (TestCase pts sol) =
-    describe ("testing point set with solution " ++ show sol) $ do
-      it "comparing with naive solution" $
-        ((RIC.smallestEnclosingDisk (mkStdGen 2123) pts)^.enclosingDisk)
-        `shouldBe`
-        ((Naive.smallestEnclosingDisk pts)^.enclosingDisk)
-      when (isJust sol) $
-        it "manal solution" $
-          ((RIC.smallestEnclosingDisk (mkStdGen 5) pts)^.enclosingDisk)
-          `shouldBe`
-          (diskOf $ fromJust sol)
-
-
-diskOf               :: (Fractional r, Eq r)
-                     => TwoOrThree (Point 2 r) -> Disk () r
-diskOf (Two p q)     = fromDiameter p q
-diskOf (Three p q r) = fromMaybe (error "Wrong manual disk") $ disk p q r
-
-
--- | Point sets per color, Crosses form the solution
-readInput    :: FilePath -> IO (Either ConversionError [TestCase Rational])
-readInput fp = fmap f <$> readSinglePageFile fp
-  where
-    f page = [ TestCase [p^.core.symbolPoint :+ () | p <- pSet] (solutionOf pSet)
-             | pSet <- byStrokeColour syms
-             ]
-      where
-        syms = page^..content.traverse._IpeUse
-
-        -- | Crosses form a solution
-        isInSolution s = s^.core.symbolName == "mark/cross(sx)"
-
-        right = either (const Nothing) Just
-        solutionOf = right . fromList . map (^.core.symbolPoint) . filter isInSolution
diff --git a/test/Algorithms/Geometry/WellSeparatedPairDecomposition/WSPDSpec.hs b/test/Algorithms/Geometry/WellSeparatedPairDecomposition/WSPDSpec.hs
deleted file mode 100644
--- a/test/Algorithms/Geometry/WellSeparatedPairDecomposition/WSPDSpec.hs
+++ /dev/null
@@ -1,93 +0,0 @@
-module Algorithms.Geometry.WellSeparatedPairDecomposition.WSPDSpec where
-
-import           Algorithms.Geometry.Diameter
-import           Algorithms.Geometry.WellSeparatedPairDecomposition.Types
-import           Algorithms.Geometry.WellSeparatedPairDecomposition.WSPD
-import           Control.Lens
-import           Data.Ext
-import qualified Data.Foldable as F
-import           Data.Geometry
-import qualified Data.List.NonEmpty as NonEmpty
-import qualified Data.LSeq as LSeq
-import qualified Data.Set as Set
-import qualified Data.Vector as V
-import           Test.Hspec
-import           Util
-import           GHC.TypeLits
-
---------------------------------------------------------------------------------
-
-spec :: Spec
-spec = do
-  reIndexTest
-  distributePointsTest
-
-reIndexTest :: Spec
-reIndexTest = describe "ReIndex tests" $ do
-    it "simple input reordering " $ do
-      reIndexPoints input `shouldBe` output
-  where
-    input = Vector2 (ptSeq [ origin :+ 1, point2 1 1 :+ 100, point2 5 5 :+ 101 ])
-                    (ptSeq [ point2 1 1 :+ 100, point2 5 5 :+ 101, origin :+ 1 ])
-    output = Vector2 (ptSeq [ origin :+ 0, point2 1 1 :+ 1, point2 5 5 :+ 2 ])
-                     (ptSeq [ point2 1 1 :+ 1, point2 5 5 :+ 2, origin :+ 0 ])
-
-
-
-
-
-
-distributePointsTest :: Spec
-distributePointsTest = describe "DistributePoints tests" $ do
-    it "distributePoints' on a single list " $ do
-      distributePoints' 3 levels input `shouldBe` output
-    it "distributePoints on multiple lists" $ do
-      distributePoints 3 levels (Vector2 input input) `shouldBe` output'
-
-  where
-    levels = V.fromList [Just $ Level 0 (Just 2),Just $ Level 1 (Just 1), Nothing]
-    input  = ptSeq [ origin :+ 0, point2 1 1 :+ 1, point2 2 2 :+ 2]
-    output = V.fromList [ ptSeq [origin :+ 0]
-                        , ptSeq [point2 1 1 :+ 1]
-                        , ptSeq [point2 2 2 :+ 2]
-                        ]
-    output' = fmap (\pts -> Vector2 pts pts) output
-
-    --     input = v2 (f [ origin :+ 1, point2 1 1 :+ 100, point2 5 5 :+ 101 ])
---                (f [ point2 1 1 :+ 100, point2 5 5 :+ 101, origin :+ 1 ])
---     output = v2 (f [ origin :+ 0, point2 1 1 :+ 1, point2 5 5 :+ 2 ])
---                 (f [ point2 1 1 :+ 1, point2 5 5 :+ 2, origin :+ 0 ])
-
---     f =  LSeq.fromNonEmpty . NonEmpty.fromList . map (&extra %~ ext)
-
-ptSeq = LSeq.fromNonEmpty . NonEmpty.fromList . map (&extra %~ ext)
-
--- coversAll
-
-points1 :: NonEmpty.NonEmpty (Point 2 Double :+ ())
-points1 = ext <$> NonEmpty.fromList [point2 0 0, point2 1 1, point2 2 100, point2 3 101]
-
-
--- | Computes all pairs of points that are uncovered by the WSPD with separation s
-uncovered         :: (Floating r, Ord r, Arity d, Arity (d+1), Ord p)
-                  => [Point d r :+ p] -> r -> SplitTree d p r a -> [(Point d r :+ p, Point d r :+ p)]
-uncovered pts s t = Set.toList $ allPairs `Set.difference` covered
-  where
-    allPairs = Set.fromList [ (p,q) | p <- pts, q <- pts, p < q ]
-    covered  = Set.unions [ mkSet as bs | (as,bs) <- wellSeparatedPairs s t]
-
-    mkSet as bs = Set.fromList [ (min a b,max a b) | a <- F.toList as, b <- F.toList bs]
-
--- | Naively check if a WSP pair is actually well separated with respect to
--- separation s. i.e. computes the maximum diameter of as and bs, and then
--- tests by brute force if all pairs (a,b) from different sets are at distance
--- at least s times the maximum diameter.
-isWellSeparated           :: (Floating r, Ord r, Arity d) => r -> WSP d p r a -> Bool
-isWellSeparated s (as,bs) =
-    and [ euclideanDist (a^.core) (b^.core) >= s*r | a <- F.toList as, b <- F.toList bs ]
-  where
-    r = (/2) . maximum . map (diameterNaive . F.toList) $ [as,bs]
-
-
-
-allCoveredTest = describe
diff --git a/test/Data/EdgeOracleSpec.hs b/test/Data/EdgeOracleSpec.hs
deleted file mode 100644
--- a/test/Data/EdgeOracleSpec.hs
+++ /dev/null
@@ -1,63 +0,0 @@
-module Data.EdgeOracleSpec where
-
-import           Control.Arrow
-import           Data.Ext
-import           Data.PlanarGraph
-import           Data.Semigroup
-import qualified Data.Set as S
-import           Test.Hspec
-
---------------------------------------------------------------------------------
-
-data TestG
-
-type Vertex = VertexId TestG Primal
-
-
-testEdges :: [(Vertex,[Vertex])]
-testEdges = map (\(i,vs) -> (VertexId i, map VertexId vs))
-            [ (0, [1])
-            , (1, [0,1,2,4])
-            , (2, [1,3,4])
-            , (3, [2,5])
-            , (4, [1,2,5])
-            , (5, [3,4])
-            ]
-
-buildEdgeOracle'  :: [(Vertex,[Vertex])] -> EdgeOracle TestG Primal ()
-buildEdgeOracle' = buildEdgeOracle . map (second $ fmap ext)
-
--- | Flattens an adjacencylist representation into a set of edges
-flattenEdges :: [(t, [a])] -> [(t, a)]
-flattenEdges = concatMap (\(i,vs) -> map (i,) vs)
-
--- | Given a set of edges, generates all non-edges, i.e. all pairs of vertices
--- that do not form an edge
-nonEdges    :: [(VertexId s w, [VertexId s w])] -> [(VertexId s w, VertexId s w)]
-nonEdges es = flattenEdges . map (second $ f . S.fromList) $ es
-  where
-    f vs  = filter (`S.notMember` vs) allVs
-    allVs = map fst es
-
--- | Retains only the edges in the graph
-hasEdges         :: EdgeOracle s w a -> [(VertexId s w, VertexId s w)]
-                 -> [(VertexId s w, VertexId s w)]
-oracle `hasEdges` es = filter (\(u,v) -> hasEdge u v oracle) es
-
-
--- | Tests all edges es
-edgeOracleSpec      :: String -> [(Vertex, [Vertex])]  -> Spec
-edgeOracleSpec s es = do
-    let oracle = buildEdgeOracle' es
-    describe ("EdgeOracle on " <> s) $ do
-      it "test postitive edges" $
-          (oracle `hasEdges` flattenEdges es) `shouldBe` flattenEdges es
-      it "test negative edges " $
-          (oracle `hasEdges` nonEdges es) `shouldBe` []
-
-      -- it "test maximum adjacency-list lengths" $
-      --     (filter (\v -> length v > 6) . _unEdgeOracle $ oracle) `shouldBe` []
-
-spec :: Spec
-spec = do
-         edgeOracleSpec "testEdges" testEdges
diff --git a/test/Data/Geometry/ArrangementSpec.hs b/test/Data/Geometry/ArrangementSpec.hs
deleted file mode 100644
--- a/test/Data/Geometry/ArrangementSpec.hs
+++ /dev/null
@@ -1,102 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-module Data.Geometry.ArrangementSpec where
-
-import           Control.Lens
-import qualified Data.ByteString as B
-import           Data.Ext
-import           Data.Geometry
-import           Data.Geometry.Arrangement
-import           Data.Geometry.Arrangement.Draw
-import           Data.Geometry.Ipe
-import           Test.Hspec
-import           Util(runOnFile)
-
-spec :: Spec
-spec = testCases "test/Data/Geometry/arrangement.ipe"
-
-
-testCases    :: FilePath -> Spec
-testCases fp = runIO (readInputFromFile fp) >>= \case
-    Left e    -> it "reading arrangement file" $
-                   expectationFailure $ "Failed to read ipe file " ++ show e
-    Right tcs -> mapM_ toSpec tcs
-
-
---   ipeF <- beforeAll $ readInputFromFile "tests/Data/Geometry/pointInPolygon.ipe"
---   describe "Point in Polygon tests" $ do
---     it "returns the first element of a list" $ do
---       head [23 ..] `shouldBe` (23 :: Int)
-
-
-data TestCase r = TestCase { _lines      :: [Line 2 r :+ ()]
-                           , _outFile    :: FilePath -- ^ filename of the output arrangement,
-                                                     -- as an ipe file
-                           }
-                  deriving (Show)
-
-data Test = Test
-
-drawArr    :: [Line 2 Rational :+ a] -> B.ByteString
-drawArr ls = let arr = constructArrangement (Identity Test) ls
-                 out = [ iO $ drawArrangement arr ]
-                 Just bs = toIpeXML . singlePageFromContent $ out
-             in bs
-
-
-toSpec                       :: TestCase Rational -> Spec
-toSpec (TestCase ls outFile) = do
-    runOnFile "test drawing arrangement"  outFile (pure $ drawArr ls)
-
--- toSingleSpec poly r q = it msg $ (q `inPolygon` poly) `shouldBe` r
---   where
---     msg = "Point in polygon test with " ++ show q
-
-
-
--- toSpec (TestCase poly is bs os) = do
---                                     describe "inside tests" $
---                                       mapM_ (toSingleSpec poly Inside) is
---                                     describe "on boundary tests" $
---                                       mapM_ (toSingleSpec poly OnBoundary) bs
---                                     describe "outside tests" $
---                                       mapM_ (toSingleSpec poly Outside) os
-
-readInputFromFile    :: FilePath -> IO (Either ConversionError [TestCase Rational])
-readInputFromFile fp = fmap f <$> readSinglePageFile fp
-  where
-    f      :: IpePage Rational -> [TestCase Rational]
-    f page = [ TestCase [ ext $ supportingLine s
-                        | (s :+ _ats) <- segs
-                        ]
-                        (fp <> ".out.ipe")
-             ]
-      where
-        segs = page^..content.traverse._withAttrs _IpePath _asLineSegment
-    -- f page = [ TestCase poly
-    --                     [ s^.symbolPoint | s <- myPoints ats, isInsidePt  s ]
-    --                     [ s^.symbolPoint | s <- myPoints ats, isBorderPt  s ]
-    --                     [ s^.symbolPoint | s <- myPoints ats, isOutsidePt s ]
-    --          | (poly :+ ats) <- polies
-    --          ]
-    --   where
-    --     polies = page^..content.traverse._withAttrs _IpePath _asSimplePolygon
-    --     syms   = page^..content.traverse._IpeUse
-
-
-    --     myPoints polyAts = [s | (s :+ ats) <- syms, belongsToPoly ats polyAts ]
-
-    --     -- We test a point/polygon combination if they have the same color
-    --     belongsToPoly symAts polyAts =
-    --         lookupAttr colorP symAts == lookupAttr colorP polyAts
-
-    --     -- A point i inside if it is a disk
-    --     isInsidePt   :: IpeSymbol r -> Bool
-    --     isInsidePt s = s^.symbolName == "mark/disk(sx)"
-
-    --     -- Boxes are on the boundary
-    --     isBorderPt s = s^.symbolName == "mark/box(sx)"
-
-    --     -- crosses are outside the polygon
-    --     isOutsidePt s = s^.symbolName == "mark/cross(sx)"
-
-    --     colorP = Proxy :: Proxy Stroke
diff --git a/test/Data/Geometry/BoxSpec.hs b/test/Data/Geometry/BoxSpec.hs
deleted file mode 100644
--- a/test/Data/Geometry/BoxSpec.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Data.Geometry.BoxSpec where
-
-import Data.Geometry
-import Data.Geometry.Box
-import Data.Geometry.Properties
-import Test.Hspec
-
-
-spec :: Spec
-spec = do
-  describe "Box" $ do
-    it "intersect tests" $
-      ((boundingBoxList' $ [point2 (-4) (-3), point2 (-4) (10 :: Int)])
-       `intersects`
-       (boundingBoxList' $ [point2 (-5) 1, point2 (-4) (0 :: Int)]))
-      `shouldBe` True
diff --git a/test/Data/Geometry/IntervalSpec.hs b/test/Data/Geometry/IntervalSpec.hs
deleted file mode 100644
--- a/test/Data/Geometry/IntervalSpec.hs
+++ /dev/null
@@ -1,68 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-module Data.Geometry.IntervalSpec where
-
-import           Control.Lens
-import           Data.Ext
-import qualified Data.Foldable as F
-import           Data.Geometry
-import           Data.Geometry.Box
-import           Data.Geometry.IntervalTree (IntervalTree)
-import qualified Data.Geometry.IntervalTree as IntTree
-import           Data.Geometry.SegmentTree (SegmentTree, I(..))
-import qualified Data.Geometry.SegmentTree as SegTree
-import qualified Data.List.NonEmpty as NonEmpty
-import           Data.Range
-import qualified Data.Set as Set
-import           GHC.TypeLits
-import           Test.Hspec
-import           Test.Hspec.QuickCheck
-import           Test.QuickCheck
-import           Test.QuickCheck.HGeometryInstances ()
-import           Test.QuickCheck.Instances ()
-import           Util
-
-naive   :: (Ord r, Foldable f) => r -> f (Interval p r) -> [Interval p r]
-naive q = filter (q `inInterval`) . F.toList
-
-sameAsNaive                 :: (Ord r, Ord p, Foldable f)
-                            => f (Interval p r)
-                            -> (r -> t -> [Interval p r], t)
-                            -> r
-                            -> Bool
-sameAsNaive is (search,t) q = search q t `sameElems` naive q is
-
-
-sameElems    :: Eq a => [a] -> [a] -> Bool
-sameElems xs = null . difference xs
-
-
-allSameAsNaive       :: (Ord r, Ord p)
-                     => NonEmpty.NonEmpty (Interval p r) -> [r] -> Bool
-allSameAsNaive is = all (sameAsNaive is (\q t -> _unI <$> SegTree.search q t
-                                        , SegTree.fromIntervals' is))
-
-
-allSameAsNaiveIT       :: (Ord r, Ord p)
-                     => NonEmpty.NonEmpty (Interval p r) -> [r] -> Bool
-allSameAsNaiveIT is = all (sameAsNaive is (\q t -> IntTree.search q t
-                                         , IntTree.fromIntervals $ F.toList is))
-
-spec :: Spec
-spec = modifyMaxSuccess (const 1000) $ do
-    describe "Same as Naive" $ do
-      it "quickcheck segmentTree" $
-        property $ \(Intervals is :: Intervals Word) -> allSameAsNaive is
-      it "quickcheck IntervalTree" $
-        property $ \(Intervals is :: Intervals Word) -> allSameAsNaiveIT is
-
-
-newtype Intervals r = Intervals (NonEmpty.NonEmpty (Interval () r)) deriving (Show,Eq)
-
--- don't generate double open intervals, and don't generate intervals in which
--- one endpoint is open, the other is closed, but at the same point
-instance (Arbitrary r, Ord r) => Arbitrary (Intervals r) where
-  arbitrary = Intervals . NonEmpty.fromList <$> listOf1 (suchThat arbitrary p)
-    where
-      p (OpenInterval _ _) = False
-      p (Interval s e)     = not (isOpen s /= isOpen e
-                                  && s^.unEndPoint.core == e^.unEndPoint.core)
diff --git a/test/Data/Geometry/Ipe/ReaderSpec.hs b/test/Data/Geometry/Ipe/ReaderSpec.hs
deleted file mode 100644
--- a/test/Data/Geometry/Ipe/ReaderSpec.hs
+++ /dev/null
@@ -1,55 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-module Data.Geometry.Ipe.ReaderSpec where
-
-import Test.Hspec
-import Data.Ext
-import Data.Geometry
-import Data.Geometry.Ipe
-import Data.ByteString(ByteString)
-import Data.Proxy
-
-
--- | specializes to use Double as Numtype
-fromIpeXML' :: IpeRead (t Double) => ByteString -> Either ConversionError (t Double)
-fromIpeXML' = fromIpeXML
-
-
-spec :: Spec
-spec = do
-    describe "IpeReadText" $ do
-      it "parses a polyline into a Path" $
-        ipeReadText "\n128 656 m\n224 768 l\n304 624 l\n432 752 l\n"
-        `shouldBe` Right ops
-    describe "IpeReadAttrs" $ do
-      it "parses a symbols attributes" $
-        (show $ readXML useTxt
-                >>= ipeReadAttrs (Proxy :: Proxy IpeSymbol) (Proxy :: Proxy Double))
-        `shouldBe`
-        "Right (Attrs {NoAttr, NoAttr, NoAttr, NoAttr, Attr IpeColor (Named \"black\"), NoAttr, NoAttr, Attr IpeSize (Named \"normal\")})"
-    describe "IpeRead" $ do
-      it "parses a Symbol" $
-        fromIpeXML' useTxt
-        `shouldBe` Right useSym
-    -- it "parses a path" $
-      --   (show $ fromIpeXML'
-          -- "<use name=\"mark/disk(sx)\" pos=\"320 736\" size=\"normal\" stroke=\"black\"/>"
--- )
-      --   `shouldBe`
--- "Right (Path {_pathSegments = PolyLineSegment (PolyLine {_points = Seq2 (Point2 [128.0,656.0] :+ ()) (fromList [Point2 [224.0,768.0] :+ (),Point2 [304.0,624.0] :+ ()]) (Point2 [432.0,752.0] :+ ())}) :< fromList []})"
-
-
-  where
-    useTxt = "<use name=\"mark/disk(sx)\" pos=\"320 736\" size=\"normal\" stroke=\"black\"/>"
-    useSym = Symbol (point2 320 736) "mark/disk(sx)"
---     symAttrs =
-
-    translatedUse = "<use matrix=\"1 0 0 1 4.44908 -4.21815\" name=\"mark/disk(sx)\" pos=\"320 736\" size=\"normal\" stroke=\"black\"/>"
-
-
-
-
-    ops = [ MoveTo $ point2 128 (656 :: Double)
-          , LineTo $ point2 224 768
-          , LineTo $ point2 304 624
-          , LineTo $ point2 432 752
-          ]
diff --git a/test/Data/Geometry/KDTreeSpec.hs b/test/Data/Geometry/KDTreeSpec.hs
deleted file mode 100644
--- a/test/Data/Geometry/KDTreeSpec.hs
+++ /dev/null
@@ -1,65 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-module Data.Geometry.KDTreeSpec where
-
-import           Data.Ext
-import qualified Data.Foldable as F
-import           Data.Geometry
-import           Data.Geometry.Box
-import           Data.Geometry.KDTree
-import qualified Data.LSeq as LSeq
-import qualified Data.Set as Set
-import           GHC.TypeLits
-import           Test.QuickCheck.HGeometryInstances()
-import           Test.Hspec
-import           Test.QuickCheck
-
---------------------------------------------------------------------------------
-
-naive    :: (Arity d, Ord r) => Box d q r -> [Point d r :+ p] -> [Point d r :+ p]
-naive qr = filter (\(p :+ _) ->  p `intersects` qr)
-
-sameAsNaive         :: (Ord r, Ord p, Arity d)
-                    => [Point d r :+ p] -> KDTree d p r -> Box d q r -> Bool
-sameAsNaive pts t q = Set.fromList (searchKDTree q t) == Set.fromList (naive q pts)
-
-allSameAsNaive     :: (Ord r, Ord p, Arity d, 1 <= d, Foldable f)
-                   => f (Point d r :+ p) -> [Box d () r] -> Bool
-allSameAsNaive pts = let pts' = F.toList pts
-                     in  all (sameAsNaive pts' $ buildKDTree pts')
-
-allSame :: (Arity d, Eq a) => Vector d a -> Bool
-allSame v = case F.toList v of
-              []     -> True
-              (x:xs) -> all (== x) xs
-
--- newtype Pts n d r = Pts (PointSet (LSeq.LSeq n) d () r)
--- deriving instance (Arity d, Show r) => Show (Pts n d r)
-
--- instance (KnownNat n, Arity d, KnownNat d, Arbitrary r, Ord r) => Arbitrary (Pts n d r) where
---   arbitrary = Pts . toPointSet . LSeq.toNonEmpty <$> arbitrary
-
-
-spec :: Spec
-spec = do
-  describe "splitOn" $ do
-    it "quickheck: left set same points" $
-      property $ \c (pts :: LSeq.LSeq 2 (Point 2 Int :+ ())) ->
-                   let (l,_,_) = splitOn (toEnum c) (toPointSet pts)
-                   in allSame . fmap (Set.fromList . F.toList) $ l
-    it "quickheck: right set same points" $
-      property $ \c (pts :: LSeq.LSeq 2 (Point 2 Int :+ ())) ->
-                   let (_,_,r) = splitOn (toEnum c) (toPointSet pts)
-                   in allSame . fmap (Set.fromList . F.toList) $ r
-  describe "Same as Naive" $ do
-    it "quickcheck 1d" $
-      property $ \(pts :: Set.Set (Point 1 Int :+ ())) -> allSameAsNaive pts
-    it "quickcheck 2d" $
-      property $ \(pts :: Set.Set (Point 2 Int :+ ())) -> allSameAsNaive pts
-    it "quickcheck 3d" $
-      property $ \(pts :: Set.Set (Point 3 Int :+ ())) -> allSameAsNaive pts
-    it "quickcheck 8d" $
-      property $ \(pts :: Set.Set (Point 8 Int :+ ())) -> allSameAsNaive pts
-
-
--- pts = map ext [point2 (-2) 2, point2 5 (-1)]
--- boxx = box (ext $ point2 3 (-4)) (ext $ point2 5 4)
diff --git a/test/Data/Geometry/LineSegmentSpec.hs b/test/Data/Geometry/LineSegmentSpec.hs
deleted file mode 100644
--- a/test/Data/Geometry/LineSegmentSpec.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-module Data.Geometry.LineSegmentSpec where
-
-import Data.Ext
-import Data.Geometry
-import Data.Vinyl.CoRec
-import Test.Hspec
-import Test.QuickCheck.HGeometryInstances ()
-
-spec :: Spec
-spec =
-  describe "onSegment" $ do
-    it "handles zero length segments correctly" $ do
-      let zeroSegment :: LineSegment 2 () Rational
-          zeroSegment = ClosedLineSegment (Point2 0 0 :+ ()) (Point2 0 0 :+ ())
-      (Point2 0 0 `onSegment` zeroSegment) `shouldBe` True
-      (Point2 1 0 `onSegment` zeroSegment) `shouldBe` False
-    it "intersecting line segment and line" $ do
-      let s = ClosedLineSegment (ext $ origin) (ext $ Point2 10 (0 :: Rational))
-      (s `intersect` horizontalLine (0 :: Rational)) `shouldBe` coRec s
diff --git a/test/Data/Geometry/LineSpec.hs b/test/Data/Geometry/LineSpec.hs
deleted file mode 100644
--- a/test/Data/Geometry/LineSpec.hs
+++ /dev/null
@@ -1,48 +0,0 @@
-module Data.Geometry.LineSpec where
-
-import Data.Ext
-import Control.Lens
-import Data.Geometry
-import Data.Geometry.Box
-import Data.Vinyl.CoRec
-import Test.Hspec
-import Data.Ratio
-
-
-
-
-spec :: Spec
-spec = do
-  describe "Line x Box intersections" $ do
-    boxIntersections
-
-boxIntersections :: Spec
-boxIntersections = do
-    it "proper intersection" $
-      (lineThrough (Point2 1 5) (Point2 10 (7 :: Rational))
-       `intersect` b
-      ) `shouldBe`
-      (coRec $ ClosedLineSegment (ext $ Point2 (0 :: Rational) (43 % 9))
-                                 (ext $ Point2 14              (71 % 9))
-      )
-    it "boundary segment" $
-      (lineThrough (Point2 0 0) (Point2 10 (0 :: Rational))
-       `intersect` b
-      ) `shouldBe`
-      (coRec $ ClosedLineSegment (ext $ Point2 (0 :: Rational) 0)
-                                 (ext $ Point2 14              0)
-      )
-    it "Touching in Point" $
-      (lineThrough (Point2 0 0) (Point2 (-1) (1 :: Rational))
-       `intersect`
-       boundingBoxList' [Point2 0 (0 :: Rational), Point2 14 9]
-      ) `shouldBe`
-      (coRec (origin :: Point 2 Rational))
-    it "No Intersection" $
-      (lineThrough (Point2 (-1) 0) (Point2 (-2) (2 :: Rational))
-       `intersect`
-       boundingBoxList' [Point2 0 (0 :: Rational), Point2 14 9]
-      ) `shouldBe`
-      (coRec NoIntersection)
-  where
-    b = boundingBoxList' [Point2 0 (0 :: Rational), Point2 14 9]
diff --git a/test/Data/Geometry/PlanarSubdivisionSpec.hs b/test/Data/Geometry/PlanarSubdivisionSpec.hs
deleted file mode 100644
--- a/test/Data/Geometry/PlanarSubdivisionSpec.hs
+++ /dev/null
@@ -1,294 +0,0 @@
-{-# LANGUAGE PartialTypeSignatures #-}
-module Data.Geometry.PlanarSubdivisionSpec where
-
-
-import qualified Algorithms.Geometry.PolygonTriangulation.MakeMonotone as MM
-import           Data.Bifunctor (second)
-import           Data.Ext
-import           Data.Foldable (toList, forM_)
-import           Data.Geometry
-import           Data.Geometry.PlanarSubdivision
-import qualified Data.Geometry.PlanarSubdivision as PS
-import           Data.Geometry.Polygon
-import qualified Data.List.NonEmpty as NonEmpty
-import           Data.PlanarGraph (FaceId(..),VertexId(..))
-import qualified Data.PlaneGraph as PG
-import           Test.Hspec
-import qualified Data.Vector as V
-import qualified Data.List as L
-
-import qualified Algorithms.Geometry.PolygonTriangulation.TriangulateMonotone as TM
-import qualified Algorithms.Geometry.PolygonTriangulation.Triangulate as TR
-
-import           Control.Lens hiding (holesOf)
-import           Data.Either (lefts)
-import           Data.Geometry.Ipe
-import           Data.Geometry.PlanarSubdivision.Draw
-import           Data.Maybe (fromJust)
-import           Data.PlaneGraph.Draw
-
-import Data.Geometry.LineSegment
-import Data.Geometry.Interval
-import Data.Range
-import Data.Ratio
-
-data Test = Test
-data Id a = Id a
-
-
-
-
-simplePg  = fromSimplePolygon (Id Test) simplePg' Inside Outside
-simplePg' = toCounterClockWiseOrder . fromPoints $ map ext $ [ Point2 160 736
-                                                             , Point2 128 688
-                                                             , Point2 176 672
-                                                             , Point2 256 672
-                                                             , Point2 272 608
-                                                             , Point2 384 656
-                                                             , Point2 336 768
-                                                             , Point2 272 720
-                                                             ]
-
-triangle :: PlanarSubdivision Test () () PolygonFaceData Rational
-triangle = (\pg -> fromSimplePolygon (Id Test) pg Inside Outside)
-         $ trianglePG
-
-trianglePG = fromPoints . map ext $ [origin, Point2 10 0, Point2 10 10]
-
-
-toNonEmpty :: Foldable f => f a -> NonEmpty.NonEmpty a
-toNonEmpty = NonEmpty.fromList . toList
-
-spec :: Spec
-spec = do
-  describe "PlanarSubdivision" $ do
-    it "outerFaceId = 0 " $
-      outerFaceId triangle `shouldBe` (FaceId $ VertexId 0)
-    it "outerFace tests" $
-      let [d] = toList $ holesOf (outerFaceId triangle) triangle
-      in leftFace d triangle `shouldBe` (outerFaceId triangle)
-    noEmptyFacesSpec
-    testSpec testPoly
-    testSpec testPoly2
-    testSpec testPoly3
-    testSpec testPoly4
-
-    -- describe "incidentDarts" $ do
-    --   forM_ (darts' triangle) $ \d ->
-    --     it "incidentDarts indiv"  $
-    --       boundary' d triangle `shouldBe` (toNonEmpty $ edges' triangle)
-    -- this last test is nonsense
-
-
-sameAsConnectedPG      :: (Eq v, Eq e, Eq f, Eq r, Show v, Show e, Show f, Show r)
-                       => PlaneGraph s v e f r -> PlanarSubdivision s v e f r
-                       -> Spec
-sameAsConnectedPG g ps = describe "connected planarsubdiv, same as PlaneGraph" $ do
-  it "same number of vertices" $
-    PG.numVertices g `shouldBe` PS.numVertices ps
-  it "same number of darts" $
-    PG.numDarts g `shouldBe` PS.numDarts ps
-  it "same number of edges" $
-    PG.numEdges g `shouldBe` PS.numEdges ps
-  it "same number of faces" $
-    PG.numFaces g `shouldBe` PS.numFaces ps
-  it "same vertices" $
-    PG.vertices g `shouldBe` vertices ps
-  it "same dart data" $
-    (g^.PG.rawDartData) `shouldBe` ((^.dataVal) <$> ps^.rawDartData)
-  -- it "same dart endpoints" $ do
-  describe "same darts" $ do
-    forM_ (darts' ps) $ \d ->
-      it ("sameDarts: " ++ (show d)) $ endPoints d ps `shouldBe` PG.endPoints d g
-  -- sameDarts g ps
-  it "same edges" $
-    (V.fromList . L.sortOn fst . toList $ PG.edgeSegments g) `shouldBe` edgeSegments ps
-  it "same edges per vertex" $
-    forM_ (PG.vertices' g) $ \v ->
-      PG.incidentEdges v g `shouldBe` PS.incidentEdges v ps
-  -- it "same face Id's" $
-  --   PG.faces' g `shouldBe` faces' ps
-  -- it "same outerface boundary" $
-  --   (second (FaceData mempty)
-  -- it "same faces" $
-  --   (second (FaceData mempty) <$> PG.faces g) `shouldBe` faces ps
-
-
--- sameDart g ps d =
-
--- sameDarts          :: (Eq v, Eq e, Eq f, Eq r, Show v, Show e, Show f, Show r)
---                        => PlaneGraph s v e f r -> PlanarSubdivision s v e f r
---                        -> Spec
--- sameDarts g ps =
---     -- sameDart g ps
-
-
--- sort' = V.fromList . L.sortOn fst . toList
-
-
-
-
-testSpec    :: (Ord r, Eq p, Fractional r, Show r, Show p)
-            => SimplePolygon p r -> Spec
-testSpec pg = do
-  sameAsConnectedPG (PG.fromSimplePolygon (Id Test) pg Inside Outside)
-                    (PS.fromSimplePolygon (Id Test) pg Inside Outside)
-  -- sameAsConnectedPG (TM.triangulate' (Id Test) pg)
-  --                   (TM.triangulate  (Id Test) pg)
-  sameAsConnectedPG (TR.triangulate' (Id Test) pg)
-                    (TR.triangulate  (Id Test) pg)
-
-
-
-testPoly :: SimplePolygon () Rational
-testPoly = toCounterClockWiseOrder . fromPoints $ map ext $ [
-                                                              Point2 128 720
-                                                            , Point2 192 752
-                                                            , Point2 224 720
-                                                            , Point2 240 672
-                                                            , Point2 128 624
-                                                            , Point2 176 672
-                                                            ]
-
-
-testPoly2 :: SimplePolygon () Rational
-testPoly2 = toCounterClockWiseOrder . fromPoints $ map ext $ [ Point2 160 736
-                                                             , Point2 128 688
-                                                             , Point2 176 672
-                                                             , Point2 256 672
-                                                             , Point2 272 608
-                                                             , Point2 384 656
-                                                             , Point2 336 768
-                                                             , Point2 272 720
-                                                             ]
-
-
-
-testPoly3 :: SimplePolygon () Rational
-testPoly3 = toCounterClockWiseOrder . fromPoints $ map ext $ [ Point2 352 367
-                                                             , Point2 128 176
-                                                             , Point2 240 336
-                                                             , Point2 80 272
-                                                             , Point2 48 400
-                                                             , Point2 96 384
-                                                             , Point2 240 496
-                                                             ]
-
-
-
-testPoly4 :: SimplePolygon () Rational
-testPoly4 = toCounterClockWiseOrder . fromPoints $ map ext $ [ Point2 64 544
-                                                             , Point2 320 527
-                                                             , Point2 208 496
-                                                             , Point2 48 432
-                                                             , Point2 16 560
-                                                             ]
-
-testPoly5 :: SimplePolygon () Rational
-testPoly5 = toCounterClockWiseOrder . fromPoints $ map ext $ [ Point2 352 384
-                                                             , Point2 128 176
-                                                             , Point2 224 320
-                                                             , Point2 48 400
-                                                             , Point2 160 384
-                                                             , Point2 240 496
-                                                             ]
-
-
-testPolyP  = fromSimplePolygon (Id Test) testPoly5 Inside Outside
-testPolygPlaneG = fromJust $ testPolyP^?components.ix 0
-
-monotonePs = MM.makeMonotone (Id Test) testPoly5
-monotonePlaneG = fromJust $ monotonePs^?components.ix 0
-
-test = TR.triangulate (Id Test) testPoly5
-test' = TR.triangulate' (Id Test) testPoly5
--- test = asIpe drawPlaneGraph testPolygPlaneG mempty
-
-printMP = mapM_ printAsIpeSelection
-        . map (iO' . (^.core) . snd)
-        . toList . rawFacePolygons $ monotonePs
-
-
-
-printP = mapM_ printAsIpeSelection
-       . map (iO' . (^.core) . snd)
-       . toList . PG.rawFacePolygons $ test'
-
-
-printPPX = mapM_ printAsIpeSelection
-        . map (iO' . (^.core) . snd)
-        . toList . rawFacePolygons
-
-printPP = printPPX test
-
-parts' = map (\pg -> fromSimplePolygon (Id Test) pg Inside Outside)
-       . lefts . map ((^.core) . snd) . toList . rawFacePolygons $ monotonePs
-
-parts'' = lefts . map ((^.core) . snd) . toList . rawFacePolygons $ monotonePs
-
-
---------------------------------------------------------------------------------
-
-noEmptyFacesSpec :: Spec
-noEmptyFacesSpec = describe "fromConnectedSegments, correct handling of high degree vertex" $ do
-    it "ps1" $
-      draw' testSegs `shouldBe` mempty
-    it "ps5" $
-      draw' testSegs2 `shouldBe` mempty
-    it "ps3" $
-      draw' testSegs3 `shouldBe` mempty
-    -- segs4 <- runIO $ readFromIpeFile "test/Data/Geometry/connectedsegments_simple2.ipe"
-    -- it "connected_simple2.ipe" $
-    --   draw' segs4 `shouldBe` mempty
-    -- segs2 <- runIO $ readFromIpeFile "test/Data/Geometry/connectedsegments_simple.ipe"
-    -- it "connected_simple.ipe" $
-    --   draw' segs2 `shouldBe` mempty
-    -- segs3 <- runIO $ readFromIpeFile "test/Data/Geometry/connectedsegments.ipe"
-    -- it "connectedsegments.ipe" $
-    --   draw' segs3 `shouldBe` mempty
-  where
-    draw' = draw . fromConnectedSegments (Identity Test1)
-
-readFromIpeFile    :: FilePath -> IO [LineSegment 2 () Rational :+ _]
-readFromIpeFile fp = do Right page <- readSinglePageFile fp
-                        pure $
-                           page^..content.traverse._withAttrs _IpePath _asLineSegment
-
-data Test1 = Test1
-
-testX = do segs <- readFromIpeFile "test/Data/Geometry/connectedsegments_simple2.ipe"
-           let ps = fromConnectedSegments (Identity Test1) segs
-           print $ draw ps
-
-
-draw = V.filter isEmpty . rawFacePolygons
-  where
-    isEmpty (_,Left  p :+ _) = (< 3) . length . polygonVertices $ p
-    isEmpty (_,Right p :+ _) = (< 3) . length . polygonVertices $ p
-
-testSegs = map (\(p,q) -> ClosedLineSegment (ext p) (ext q) :+ ())
-                   [ (origin, Point2 10 10)
-                   , (origin, Point2 12 10)
-                   , (origin, Point2 20 5)
-                   , (origin, Point2 13 20)
-                   , (Point2 10 10, Point2 12 10)
-                   , (Point2 10 10, Point2 13 20)
-                   , (Point2 12 10, Point2 20 5)
-                   ]
-
-testSegs2 = map (\(p,q) -> ClosedLineSegment (ext p) (ext q) :+ ())
-                   [ (Point2 160 192, Point2 80 112)
-                   , (Point2 80 112, Point2 192 96)
-                   , (Point2 192 96, Point2 160 192)
-                   ]
-
-
-testSegs3 = map (\(p,q) -> ClosedLineSegment (ext p) (ext q) :+ ())
-                   [ (origin, Point2 10 0)
-                   , (Point2 10 0, Point2 10 10)
-                   , (origin, Point2 10 10)
-
-                   , (origin, Point2 (-10) 0)
-                   , (Point2 (-10) 0, Point2 (-10) (-10))
-                   , (origin, Point2 (-10) (-10))
-                   ]
diff --git a/test/Data/Geometry/PointSpec.hs b/test/Data/Geometry/PointSpec.hs
deleted file mode 100644
--- a/test/Data/Geometry/PointSpec.hs
+++ /dev/null
@@ -1,93 +0,0 @@
-module Data.Geometry.PointSpec where
-
-import Data.Ext
-import Data.Geometry.Point
-import Data.Geometry.Vector
-import Test.Hspec
-import qualified Data.CircularList as C
-
-
-spec :: Spec
-spec = do
-  describe "Add vector to point" $ do
-    it "2d" $
-      origin .+^ Vector2 1 2 `shouldBe` Point2 1 2
-    it "3d" $
-      origin .+^ Vector3 1 2 3 `shouldBe` Point3 1 2 3
-  describe "Sort Arround a Point test" $ do
-    it "Sort around origin" $
-      sortArround (ext origin) (map ext [ point2 (-3) (-3)
-                                        , point2 (-1) (-5)
-                                        , point2 5    5
-                                        , point2 6    (-4)
-                                        , point2 (-5) 3
-                                        , point2 10   1
-                                        , point2 20   0
-                                        , point2 0    (-6)
-                                        , point2 5    7
-                                        , point2 5    5
-                                        , point2 2    2
-                                        , point2 26   (-2)
-                                        , point2 0    (-5)
-                                        ])
-      `shouldBe` map ext [ point2 20   0
-                         , point2 10   1
-                         , point2 2    2
-                         , point2 5    5
-                         , point2 5    5
-                         , point2 5    7
-                         , point2 (-5) 3
-                         , point2 (-3) (-3)
-                         , point2 (-1) (-5)
-                         , point2 0    (-5)
-                         , point2 0    (-6)
-                         , point2 6    (-4)
-                         , point2 26   (-2)
-                         ]
-    it "degenerate points on horizontal line" $
-      sortArround (ext origin) (map ext [ point2 2    0
-                                        , point2 (-1) 0
-                                        , point2 10   0
-                                        ])
-      `shouldBe` map ext [ point2 2 0, point2 10 0, point2 (-1) 0 ]
-    it "degenerate points on vertical line" $
-      sortArround (ext origin) (map ext [ point2 0 2
-                                        , point2 0 (-1)
-                                        , point2 0 10
-                                        ])
-      `shouldBe` map ext [ point2 0 2, point2 0 10, point2 0 (-1) ]
-
-
-  describe "Insert point in ciclically ordered list" $ do
-    it "insert" $
-      insertIntoCyclicOrder (ext origin) (ext $ point2 (-4) (-5))  (
-        C.fromList $ map ext [ point2 20   0
-                             , point2 10   1
-                             , point2 2    2
-                             , point2 5    5
-                             , point2 5    5
-                             , point2 5    7
-                             , point2 (-5) 3
-                             , point2 (-3) (-3)
-                             , point2 (-1) (-5)
-                             , point2 0    (-5)
-                             , point2 0    (-6)
-                             , point2 6    (-4)
-                             , point2 26   (-2)
-                             ])
-      `shouldBe`
-        (C.fromList $ map ext [ point2 20   0
-                              , point2 10   1
-                              , point2 2    2
-                              , point2 5    5
-                              , point2 5    5
-                              , point2 5    7
-                              , point2 (-5) 3
-                              , point2 (-3) (-3)
-                              , point2 (-4) (-5)
-                              , point2 (-1) (-5)
-                              , point2 0    (-5)
-                              , point2 0    (-6)
-                              , point2 6    (-4)
-                              , point2 26   (-2)
-                              ])
diff --git a/test/Data/Geometry/Polygon/Convex/ConvexSpec.hs b/test/Data/Geometry/Polygon/Convex/ConvexSpec.hs
deleted file mode 100644
--- a/test/Data/Geometry/Polygon/Convex/ConvexSpec.hs
+++ /dev/null
@@ -1,115 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-module Data.Geometry.Polygon.Convex.ConvexSpec where
-
-import           Algorithms.Geometry.ConvexHull.GrahamScan (convexHull)
-import           Control.Applicative
-import           Control.Arrow ((&&&))
-import           Control.Lens
-import           Data.Ext
-import qualified Data.Foldable as F
-import           Data.Geometry
-import           Data.Geometry.Ipe
-import           Data.Geometry.Polygon (extremesLinear)
-import           Data.Geometry.Polygon.Convex
-import qualified Data.List.NonEmpty as NonEmpty
-import           Data.Traversable (traverse)
-import           Test.QuickCheck.HGeometryInstances ()
-import           Test.Hspec
-import           Test.QuickCheck
-import           Test.QuickCheck.Instances()
-
-
-
-spec :: Spec
-spec = testCases "test/Data/Geometry/Polygon/Convex/convexTests.ipe"
-
-testCases    :: FilePath -> Spec
-testCases fp = runIO (readInputFromFile fp) >>= \case
-    Left e    -> it "reading ConvexTests file" $
-                   expectationFailure . unwords $
-                     [ "Failed to read ipe file", show fp, ":", show e]
-    Right tcs -> do mapM_ toSpec tcs
-                    minkowskiTests $ map _polygon tcs
-
-data TestCase r = TestCase { _polygon    :: ConvexPolygon () r
-                           }
-                  deriving (Show)
-
-toSingleSpec        :: (Num r, Ord r, Show r)
-                    => ConvexPolygon q r -> Vector 2 r -> SpecWith ()
-toSingleSpec poly u = it msg $
-  -- test that the reported extremes are equally far in direction u
-    F.all allEq (unzip [extremes u poly, extremesLinear u (poly^.simplePolygon)])
-    `shouldBe` True
-  where
-    allEq (p:ps) = all (\q -> cmpExtreme u p q == EQ) ps
-    msg = "Extremes test with direction " ++ show u
-
--- | generates 360 vectors "equally" spaced/angled
-directions :: Num r => [Vector 2 r]
-directions = map (fmap toRat . uncurry Vector2 . (cos &&& sin) . toRad) ([0..359] :: [Double])
-  where
-    toRad i = i * (pi / 180)
-    toRat x = fromIntegral . round $ 100000 * x
-
-toSpec                 :: (Num r, Ord r, Show r) => TestCase r -> SpecWith ()
-toSpec (TestCase poly) = do
-                           describe "Extreme points; binsearch same as linear" $
-                             mapM_ (toSingleSpec poly) directions
-
-
-readInputFromFile    :: FilePath -> IO (Either ConversionError [TestCase Rational])
-readInputFromFile fp = fmap f <$> readSinglePageFile fp
-  where
-    f page = [ TestCase (ConvexPolygon poly) | (poly :+ _) <- polies ]
-      where
-        polies = page^..content.traverse._withAttrs _IpePath _asSimplePolygon
-
-
---------------------------------------------------------------------------------
-
-minkowskiTests     ::  (Fractional r, Ord r, Show r) => [ConvexPolygon () r] -> Spec
-minkowskiTests pgs = do
-      minkowskiTests' "polygons in ipe file" pgs
-      it "quickcheck minkowskisum same as naive" $
-        property $ \(CP p :: CP Double) (CP q) ->
-          minkowskiSum p q == naiveMinkowski p q
-
-
-
-minkowskiTests'                      ::  (Fractional r, Ord r, Show r)
-                                     => String -> [ConvexPolygon () r] -> Spec
-minkowskiTests' s (map toCCW -> pgs) = describe ("Minkowskisums on " ++ s) $
-    mapM_ (uncurry minkowskiTest) [ (p,q) | p <- pgs, q <- pgs ]
-
-
-minkowskiTest     ::  (Fractional r, Ord r, Eq p, Show r, Show p)
-                  => ConvexPolygon p r -> ConvexPolygon p r -> Spec
-minkowskiTest p q = it "minkowskisum" $
-  F (p,q) (minkowskiSum p q) `shouldBe` F (p,q) (naiveMinkowski p q)
-
-naiveMinkowski     :: (Fractional r, Ord r)
-                   => ConvexPolygon p r -> ConvexPolygon q r -> ConvexPolygon (p, q) r
-naiveMinkowski p q = over (simplePolygon.outerBoundary) bottomMost
-                   . toCCW . convexHull . NonEmpty.fromList
-                   $ [ v .+. w | v <- p^..simplePolygon.outerBoundary.traverse
-                               , w <- q^..simplePolygon.outerBoundary.traverse
-                     ]
-  where
-    (v :+ ve) .+. (w :+ we) = v .+^ (toVec w) :+ (ve,we)
-
-
-toCCW :: (Fractional r, Eq r) => ConvexPolygon p r -> ConvexPolygon p r
-toCCW = over simplePolygon toCounterClockWiseOrder
-
-data F a b = F a b deriving (Show)
-
-instance Eq b => Eq (F a b) where
-  (F _ b1) == (F _ b2) = b1 == b2
-
-
-newtype CP r = CP (ConvexPolygon () r) deriving (Eq,Show)
-
-instance (Arbitrary r, Fractional r, Ord r) => Arbitrary (CP r) where
-  arbitrary =  CP . toCCW <$> suchThat (convexHull <$> arbitrary)
-                              (\p -> p^.simplePolygon.outerBoundary.to length > 2)
diff --git a/test/Data/Geometry/Polygon/star_shaped.ipe b/test/Data/Geometry/Polygon/star_shaped.ipe
new file mode 100644
--- /dev/null
+++ b/test/Data/Geometry/Polygon/star_shaped.ipe
@@ -0,0 +1,339 @@
+<?xml version="1.0"?>
+<!DOCTYPE ipe SYSTEM "ipe.dtd">
+<ipe version="70206" creator="Ipe 7.2.7">
+<info created="D:20190310121058" modified="D:20190310122053"/>
+<ipestyle name="basic">
+<symbol name="arrow/arc(spx)">
+<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/farc(spx)">
+<path stroke="sym-stroke" fill="white" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/ptarc(spx)">
+<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/fptarc(spx)">
+<path stroke="sym-stroke" fill="white" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="mark/circle(sx)" transformations="translations">
+<path fill="sym-stroke">
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+</path>
+</symbol>
+<symbol name="mark/disk(sx)" transformations="translations">
+<path fill="sym-stroke">
+0.6 0 0 0.6 0 0 e
+</path>
+</symbol>
+<symbol name="mark/fdisk(sfx)" transformations="translations">
+<group>
+<path fill="sym-fill">
+0.5 0 0 0.5 0 0 e
+</path>
+<path fill="sym-stroke" fillrule="eofill">
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+</path>
+</group>
+</symbol>
+<symbol name="mark/box(sx)" transformations="translations">
+<path fill="sym-stroke" fillrule="eofill">
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+</path>
+</symbol>
+<symbol name="mark/square(sx)" transformations="translations">
+<path fill="sym-stroke">
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+</path>
+</symbol>
+<symbol name="mark/fsquare(sfx)" transformations="translations">
+<group>
+<path fill="sym-fill">
+-0.5 -0.5 m
+0.5 -0.5 l
+0.5 0.5 l
+-0.5 0.5 l
+h
+</path>
+<path fill="sym-stroke" fillrule="eofill">
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+</path>
+</group>
+</symbol>
+<symbol name="mark/cross(sx)" transformations="translations">
+<group>
+<path fill="sym-stroke">
+-0.43 -0.57 m
+0.57 0.43 l
+0.43 0.57 l
+-0.57 -0.43 l
+h
+</path>
+<path fill="sym-stroke">
+-0.43 0.57 m
+0.57 -0.43 l
+0.43 -0.57 l
+-0.57 0.43 l
+h
+</path>
+</group>
+</symbol>
+<symbol name="arrow/fnormal(spx)">
+<path stroke="sym-stroke" fill="white" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/pointed(spx)">
+<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/fpointed(spx)">
+<path stroke="sym-stroke" fill="white" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/linear(spx)">
+<path stroke="sym-stroke" pen="sym-pen">
+-1 0.333 m
+0 0 l
+-1 -0.333 l
+</path>
+</symbol>
+<symbol name="arrow/fdouble(spx)">
+<path stroke="sym-stroke" fill="white" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+</path>
+</symbol>
+<symbol name="arrow/double(spx)">
+<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+</path>
+</symbol>
+<pen name="heavier" value="0.8"/>
+<pen name="fat" value="1.2"/>
+<pen name="ultrafat" value="2"/>
+<symbolsize name="large" value="5"/>
+<symbolsize name="small" value="2"/>
+<symbolsize name="tiny" value="1.1"/>
+<arrowsize name="large" value="10"/>
+<arrowsize name="small" value="5"/>
+<arrowsize name="tiny" value="3"/>
+<color name="red" value="1 0 0"/>
+<color name="green" value="0 1 0"/>
+<color name="blue" value="0 0 1"/>
+<color name="yellow" value="1 1 0"/>
+<color name="orange" value="1 0.647 0"/>
+<color name="gold" value="1 0.843 0"/>
+<color name="purple" value="0.627 0.125 0.941"/>
+<color name="gray" value="0.745"/>
+<color name="brown" value="0.647 0.165 0.165"/>
+<color name="navy" value="0 0 0.502"/>
+<color name="pink" value="1 0.753 0.796"/>
+<color name="seagreen" value="0.18 0.545 0.341"/>
+<color name="turquoise" value="0.251 0.878 0.816"/>
+<color name="violet" value="0.933 0.51 0.933"/>
+<color name="darkblue" value="0 0 0.545"/>
+<color name="darkcyan" value="0 0.545 0.545"/>
+<color name="darkgray" value="0.663"/>
+<color name="darkgreen" value="0 0.392 0"/>
+<color name="darkmagenta" value="0.545 0 0.545"/>
+<color name="darkorange" value="1 0.549 0"/>
+<color name="darkred" value="0.545 0 0"/>
+<color name="lightblue" value="0.678 0.847 0.902"/>
+<color name="lightcyan" value="0.878 1 1"/>
+<color name="lightgray" value="0.827"/>
+<color name="lightgreen" value="0.565 0.933 0.565"/>
+<color name="lightyellow" value="1 1 0.878"/>
+<dashstyle name="dashed" value="[4] 0"/>
+<dashstyle name="dotted" value="[1 3] 0"/>
+<dashstyle name="dash dotted" value="[4 2 1 2] 0"/>
+<dashstyle name="dash dot dotted" value="[4 2 1 2 1 2] 0"/>
+<textsize name="large" value="\large"/>
+<textsize name="Large" value="\Large"/>
+<textsize name="LARGE" value="\LARGE"/>
+<textsize name="huge" value="\huge"/>
+<textsize name="Huge" value="\Huge"/>
+<textsize name="small" value="\small"/>
+<textsize name="footnote" value="\footnotesize"/>
+<textsize name="tiny" value="\tiny"/>
+<textstyle name="center" begin="\begin{center}" end="\end{center}"/>
+<textstyle name="itemize" begin="\begin{itemize}" end="\end{itemize}"/>
+<textstyle name="item" begin="\begin{itemize}\item{}" end="\end{itemize}"/>
+<gridsize name="4 pts" value="4"/>
+<gridsize name="8 pts (~3 mm)" value="8"/>
+<gridsize name="16 pts (~6 mm)" value="16"/>
+<gridsize name="32 pts (~12 mm)" value="32"/>
+<gridsize name="10 pts (~3.5 mm)" value="10"/>
+<gridsize name="20 pts (~7 mm)" value="20"/>
+<gridsize name="14 pts (~5 mm)" value="14"/>
+<gridsize name="28 pts (~10 mm)" value="28"/>
+<gridsize name="56 pts (~20 mm)" value="56"/>
+<anglesize name="90 deg" value="90"/>
+<anglesize name="60 deg" value="60"/>
+<anglesize name="45 deg" value="45"/>
+<anglesize name="30 deg" value="30"/>
+<anglesize name="22.5 deg" value="22.5"/>
+<opacity name="10%" value="0.1"/>
+<opacity name="30%" value="0.3"/>
+<opacity name="50%" value="0.5"/>
+<opacity name="75%" value="0.75"/>
+<tiling name="falling" angle="-60" step="4" width="1"/>
+<tiling name="rising" angle="30" step="4" width="1"/>
+</ipestyle>
+<ipestyle name="frank">
+<arrowsize name="normal" value="5"/>
+<arrowsize name="large" value="8"/>
+<arrowsize name="huge" value="10"/>
+<arrowsize name="small" value="3"/>
+<arrowsize name="tiny" value="1"/>
+<dashstyle name="dashed" value="[2 2] 0"/>
+<dashstyle name="dotted" value="[0.5 1] 0"/>
+<dashstyle name="dash dotted" value="[4 2 1 2] 0"/>
+<dashstyle name="dash dot dotted" value="[4 2 1 2 1 2] 0"/>
+<gridsize name="1 pts" value="1"/>
+<gridsize name="2 pts" value="2"/>
+<opacity name="10%" value="0.1"/>
+<opacity name="30%" value="0.3"/>
+<opacity name="50%" value="0.5"/>
+<opacity name="20%" value="0.2"/>
+<opacity name="40%" value="0.4"/>
+<opacity name="60%" value="0.6"/>
+<opacity name="70%" value="0.7"/>
+<opacity name="80%" value="0.8"/>
+<opacity name="90%" value="0.9"/>
+</ipestyle>
+<page>
+<layer name="alpha"/>
+<view layers="alpha" active="alpha"/>
+<path layer="alpha" stroke="blue">
+176 752 m
+208 688 l
+160 624 l
+288 672 l
+304 752 l
+256 736 l
+h
+</path>
+<path stroke="red">
+384 784 m
+448 624 l
+368 576 l
+512 624 l
+448 704 l
+560 672 l
+528 576 l
+592 688 l
+h
+</path>
+<path stroke="red">
+240 544 m
+80 416 l
+224 336 l
+320 336 l
+208 416 l
+352 416 l
+320 320 l
+480 400 l
+448 496 l
+320 496 l
+256 464 l
+h
+</path>
+<path stroke="blue">
+176 272 m
+144 80 l
+400 176 l
+h
+</path>
+<path stroke="blue">
+432 272 m
+480 144 l
+528 192 l
+496 192 l
+512 240 l
+480 224 l
+h
+</path>
+<path stroke="blue">
+64 656 m
+32 592 l
+80 640 l
+144 640 l
+80 656 l
+96 704 l
+80 672 l
+h
+</path>
+</page>
+</ipe>
diff --git a/test/Data/Geometry/PolygonSpec.hs b/test/Data/Geometry/PolygonSpec.hs
deleted file mode 100644
--- a/test/Data/Geometry/PolygonSpec.hs
+++ /dev/null
@@ -1,87 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-module Data.Geometry.PolygonSpec where
-
-import Data.Traversable(traverse)
-import Data.Ext
-import Control.Lens
-import Control.Applicative
-import Data.Geometry
-import Data.Geometry.Boundary
-import Data.Geometry.Ipe
-import Data.Proxy
-import Test.Hspec
-
-spec :: Spec
-spec = testCases "test/Data/Geometry/pointInPolygon.ipe"
-
-
-testCases    :: FilePath -> Spec
-testCases fp = runIO (readInputFromFile fp) >>= \case
-    Left e    -> it "reading point in polygon file" $
-                   expectationFailure $ "Failed to read ipe file " ++ show e
-    Right tcs -> mapM_ toSpec tcs
-
-
---   ipeF <- beforeAll $ readInputFromFile "tests/Data/Geometry/pointInPolygon.ipe"
---   describe "Point in Polygon tests" $ do
---     it "returns the first element of a list" $ do
---       head [23 ..] `shouldBe` (23 :: Int)
-
-
-data TestCase r = TestCase { _polygon    :: SimplePolygon () r
-                           , _inside     :: [Point 2 r]
-                           , _onBoundary :: [Point 2 r]
-                           , _outside    :: [Point 2 r]
-                           }
-                  deriving (Show)
-
-
-toSingleSpec poly r q = it msg $ (q `inPolygon` poly) `shouldBe` r
-  where
-    msg = "Point in polygon test with " ++ show q
-
-
-toSpec (TestCase poly is bs os) = do
-                                    describe "inside tests" $
-                                      mapM_ (toSingleSpec poly Inside) is
-                                    describe "on boundary tests" $
-                                      mapM_ (toSingleSpec poly OnBoundary) bs
-                                    describe "outside tests" $
-                                      mapM_ (toSingleSpec poly Outside) os
-
-readInputFromFile    :: FilePath -> IO (Either ConversionError [TestCase Rational])
-readInputFromFile fp = fmap f <$> readSinglePageFile fp
-  where
-    f page = [ TestCase poly
-                        [ s^.symbolPoint | s <- myPoints ats, isInsidePt  s ]
-                        [ s^.symbolPoint | s <- myPoints ats, isBorderPt  s ]
-                        [ s^.symbolPoint | s <- myPoints ats, isOutsidePt s ]
-             | (poly :+ ats) <- polies
-             ]
-      where
-        polies = page^..content.traverse._withAttrs _IpePath _asSimplePolygon
-        syms   = page^..content.traverse._IpeUse
-
-
-        myPoints polyAts = [s | (s :+ ats) <- syms, belongsToPoly ats polyAts ]
-
-        -- We test a point/polygon combination if they have the same color
-        belongsToPoly symAts polyAts =
-            lookupAttr colorP symAts == lookupAttr colorP polyAts
-
-        -- A point i inside if it is a disk
-        isInsidePt   :: IpeSymbol r -> Bool
-        isInsidePt s = s^.symbolName == "mark/disk(sx)"
-
-        -- Boxes are on the boundary
-        isBorderPt s = s^.symbolName == "mark/box(sx)"
-
-        -- crosses are outside the polygon
-        isOutsidePt s = s^.symbolName == "mark/cross(sx)"
-
-        colorP = Proxy :: Proxy Stroke
-
-
-
-
--- main = readInputFromFile "tests/Data/Geometry/pointInPolygon.ipe"
diff --git a/test/Data/Geometry/SubLineSpec.hs b/test/Data/Geometry/SubLineSpec.hs
deleted file mode 100644
--- a/test/Data/Geometry/SubLineSpec.hs
+++ /dev/null
@@ -1,56 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-module Data.Geometry.SubLineSpec where
-
-import Control.Lens
-import Data.Ext
-import Data.Geometry
-import Data.Geometry.Line
-import Data.Geometry.LineSegment
-import Data.Geometry.SubLine
-import Data.Ratio
-import Data.UnBounded
-import Data.Vinyl.CoRec
-import Test.QuickCheck.HGeometryInstances ()
-import Test.Hspec
-import Test.QuickCheck
-
-
-spec :: Spec
-spec = do
-  describe "subLineTests" $
-    it "subline specialization in R^2" $
-      property $ \(alpha :: Rational) l@(Line p v) (i :: Interval () Rational)  ->
-        let q  = p .+^ alpha *^ v
-            sl = SubLine l i
-        in onSubLineOrig q sl `shouldBe` onSubLine2 q sl
-
-  it "manual test " $
-      ((Point2 (-1) (-1 :: Rational)) `onSubLine2`
-       (seg^._SubLine))
-    `shouldBe` False
-
-  it "Intersection test" $
-    let mySeg :: LineSegment 2 () Rational
-        mySeg    = ClosedLineSegment (ext origin) (ext $ Point2 14 0)
-        myLine :: SubLine 2 () (UnBounded Rational) Rational
-        myLine   = fromLine $ lineThrough (Point2 0 0) (Point2 10 0)
-        myAnswer :: Interval () (UnBounded Rational)
-        myAnswer = ClosedInterval (ext $ Val 0) (ext . Val $ 7 % 5)
-    in (myLine `intersect` (mkSL mySeg))
-       `shouldBe`
-       coRec (myLine&subRange .~ myAnswer)
-
-
-mkSL  :: (Num r, Arity d) => LineSegment d () r -> SubLine d () (UnBounded r) r
-mkSL s = s^._SubLine.re _unBounded
-
-
-seg :: LineSegment 2 () Rational
-seg = ClosedLineSegment (ext (Point2 1 1)) (ext (Point2 5 5))
-
-
-
--- | Original def of onSubline
-onSubLineOrig                 :: (Ord r, Fractional r, Arity d)
-                          => Point d r -> SubLine d p r r -> Bool
-onSubLineOrig p (SubLine l r) = toOffset' p l `inInterval` r
diff --git a/test/Data/Geometry/TriangleSpec.hs b/test/Data/Geometry/TriangleSpec.hs
deleted file mode 100644
--- a/test/Data/Geometry/TriangleSpec.hs
+++ /dev/null
@@ -1,107 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-module Data.Geometry.TriangleSpec where
-
-import Data.Traversable(traverse)
-import Data.Ext
-import Control.Lens
-import Control.Applicative
-import Data.Geometry
-import Data.Geometry.Triangle
-import Data.Geometry.Boundary
-import Data.Geometry.Ipe
-import Data.Proxy
-import Test.Hspec
-import Data.Ratio
-import Data.Vinyl.CoRec
-
-spec :: Spec
-spec = do testCases "test/Data/Geometry/pointInTriangle.ipe"
-          describe "intersection tests" $ do
-            it "intersecting Line 2 with Triangle 2 " $ do
-              let t :: Triangle 2 () Rational
-                  t = Triangle (ext origin) (ext $ Point2 10 0) (ext $ Point2 10 10)
-                  hor :: Rational -> Line 2 Rational
-                  hor = horizontalLine
-              (hor 3 `intersect` t)
-                `shouldBe` (coRec $ ClosedLineSegment (ext $ Point2 10 (3 :: Rational))
-                                                      (ext $ Point2 3  (3 :: Rational)))
-              (hor 10 `intersect` t)
-                `shouldBe` (coRec $ Point2 10 (10 :: Rational))
-              (hor 11 `intersect` t)
-                `shouldBe` (coRec NoIntersection)
-
-
-testCases    :: FilePath -> Spec
-testCases fp = runIO (readInputFromFile fp) >>= \case
-    Left e    -> it "reading point in triangle file" $
-                   expectationFailure $ "Failed to read ipe file " ++ show e
-    Right tcs -> mapM_ toSpec tcs
-
-
---   ipeF <- beforeAll $ readInputFromFile "tests/Data/Geometry/pointInPolygon.ipe"
---   describe "Point in Polygon tests" $ do
---     it "returns the first element of a list" $ do
---       head [23 ..] `shouldBe` (23 :: Int)
-
-
-data TestCase r = TestCase { _triangle   :: Triangle 2 () r
-                           , _inside     :: [Point 2 r]
-                           , _onBoundary :: [Point 2 r]
-                           , _outside    :: [Point 2 r]
-                           }
-                  deriving (Show)
-
-
-toSingleSpec poly r q = it msg $ (q `inTriangle` poly) `shouldBe` r
-  where
-    msg = "Point in triangle test with " ++ show q
-
-
-toSpec                          ::  (Show r, Ord r, Fractional r)
-                                =>  TestCase r -> Spec
-toSpec (TestCase poly is bs os) = do
-                                    describe "inside tests" $
-                                      mapM_ (toSingleSpec poly Inside) is
-                                    describe "on boundary tests" $
-                                      mapM_ (toSingleSpec poly OnBoundary) bs
-                                    describe "outside tests" $
-                                      mapM_ (toSingleSpec poly Outside) os
-
-
-
-readInputFromFile    :: FilePath -> IO (Either ConversionError [TestCase Rational])
-readInputFromFile fp = fmap f <$> readSinglePageFile fp
-  where
-    f page = [ TestCase poly
-                        [ s^.symbolPoint | s <- myPoints ats, isInsidePt  s ]
-                        [ s^.symbolPoint | s <- myPoints ats, isBorderPt  s ]
-                        [ s^.symbolPoint | s <- myPoints ats, isOutsidePt s ]
-             | (poly :+ ats) <- polies
-             ]
-      where
-        polies = page^..content.traverse._withAttrs _IpePath _asTriangle
-        syms   = page^..content.traverse._IpeUse
-
-
-        myPoints polyAts = [s | (s :+ ats) <- syms, belongsToPoly ats polyAts ]
-
-        -- We test a point/polygon combination if they have the same color
-        belongsToPoly symAts polyAts =
-            lookupAttr colorP symAts == lookupAttr colorP polyAts
-
-        -- A point i inside if it is a disk
-        isInsidePt   :: IpeSymbol r -> Bool
-        isInsidePt s = s^.symbolName == "mark/disk(sx)"
-
-        -- Boxes are on the boundary
-        isBorderPt s = s^.symbolName == "mark/box(sx)"
-
-        -- crosses are outside the polygon
-        isOutsidePt s = s^.symbolName == "mark/cross(sx)"
-
-        colorP = Proxy :: Proxy Stroke
-
-
-
-
--- main = readInputFromFile "tests/Data/Geometry/pointInPolygon.ipe"
diff --git a/test/Data/Geometry/arrangement.ipe.out.ipe b/test/Data/Geometry/arrangement.ipe.out.ipe
--- a/test/Data/Geometry/arrangement.ipe.out.ipe
+++ b/test/Data/Geometry/arrangement.ipe.out.ipe
@@ -189,33 +189,6 @@
 172.658536585365 637.898780487804 l
 </path><path>172.658536585365 637.898780487804 m
 172.658536585365 746.000060937506 l
-</path><path>252.176396921200 637.048780487804 m
-331.322580645161 637.048780487804 l
-331.322580645161 660.923387096774 l
-331.322580645161 661.698387096774 l
-331.322580645161 746.000060937506 l
-303.200073125007 746.000060937506 l
-302.461611663469 746.000060937506 l
-195.199902499989 746.000060937506 l
-172.658536585365 746.000060937506 l
-172.658536585365 637.898780487804 l
-172.658536585365 637.215447154471 l
-172.658536585365 637.048780487804 l
-h
-
-252.176396921200 637.048780487804 m
-331.322580645161 637.048780487804 l
-331.322580645161 660.923387096774 l
-331.322580645161 661.698387096774 l
-331.322580645161 746.000060937506 l
-303.200073125007 746.000060937506 l
-302.461611663469 746.000060937506 l
-195.199902499989 746.000060937506 l
-172.658536585365 746.000060937506 l
-172.658536585365 637.898780487804 l
-172.658536585365 637.215447154471 l
-172.658536585365 637.048780487804 l
-h
 </path><path>172.658536585365 637.215447154471 m
 173.658536585365 638.048780487804 l
 258.512437254286 650.776865588142 l
diff --git a/test/Data/OrdSeqSpec.hs b/test/Data/OrdSeqSpec.hs
deleted file mode 100644
--- a/test/Data/OrdSeqSpec.hs
+++ /dev/null
@@ -1,58 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-module Data.OrdSeqSpec where
-
-import qualified Data.Foldable as F
-import qualified Data.List as List
-import           Data.OrdSeq (OrdSeq)
-import qualified Data.OrdSeq as OrdSeq
-import           Data.Semigroup
-import           Test.QuickCheck.HGeometryInstances
-import           Test.Hspec
-import           Test.QuickCheck
-
-spec :: Spec
-spec = do
-  describe "OrdSeq tests" $ do
-    it "fromListBy" $
-      property $ \(xs :: [Int]) ->
-          F.toList (OrdSeq.fromListBy compare xs) `shouldBe` List.sort xs
-    it "splitOn, <" $
-      property $ \x (xs :: OrdSeq Int) ->
-          let (l,_,_) = OrdSeq.splitOn id x xs
-          in all (< x) l
-    it "splitOn, ==" $
-      property $ \x (xs :: OrdSeq Int) ->
-          let (_,m,_) = OrdSeq.splitOn id x xs
-          in all (== x) m
-    it "splitOn, >=" $
-      property $ \x (xs :: OrdSeq Int) ->
-          let (_,_,r) = OrdSeq.splitOn id x xs
-          in all (> x) r
-    it "join" $
-      property $ \x (xs :: [Int]) -> let (ys,zs) = List.partition (<= x) $ xs in
-          (F.toList $ OrdSeq.fromListByOrd ys <> OrdSeq.fromListByOrd zs)
-          `shouldBe`
-          List.sort (ys <> zs)
-    it "positive member" $
-      property $ \(xs :: OrdSeq Int) ->
-         all (\x -> OrdSeq.memberBy compare x xs) xs
-    it "member" $
-      property $ \x (xs :: OrdSeq Int) ->
-         OrdSeq.memberBy compare x xs
-         `shouldBe`
-         F.elem x (F.toList xs)
-    it "lookupMin" $
-       property $ \(xs :: OrdSeq Int) ->
-         OrdSeq.lookupMin xs
-         `shouldBe`
-         (safe minimum $ F.toList xs)
-    it "lookupMax" $
-       property $ \(xs :: OrdSeq Int) ->
-         OrdSeq.lookupMax xs
-         `shouldBe`
-         (safe maximum $ F.toList xs)
-
-
-safe      :: ([t] -> a) -> [t] -> Maybe a
-safe _ [] = Nothing
-safe f xs = Just . f $ xs
diff --git a/test/Data/PlanarGraphSpec.hs b/test/Data/PlanarGraphSpec.hs
deleted file mode 100644
--- a/test/Data/PlanarGraphSpec.hs
+++ /dev/null
@@ -1,116 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-module Data.PlanarGraphSpec where
-
-
-import           Data.Bifunctor
-import qualified Data.ByteString.Char8 as B
-import qualified Data.Foldable as F
-import qualified Data.Map.Strict as SM
-import           Data.Permutation (toCycleRep)
-import           Data.PlanarGraph
-import qualified Data.PlanarGraph as PlanarGraph
-import qualified Data.Set as S
-import           Data.Util
-import qualified Data.Vector as V
-import           Data.Yaml (prettyPrintParseException)
-import           Data.Yaml.Util
-import           Test.Hspec
-import           Test.QuickCheck
-import           Test.QuickCheck.HGeometryInstances ()
-
-
-data TestG
-
-type Vertex = VertexId TestG Primal
-
--- | Report all adjacnecies from g missing in h
-missingAdjacencies     :: PlanarGraph s w v e f -> PlanarGraph s w v e f
-                    -> [(VertexId s w, VertexId s w)]
-missingAdjacencies g h = concatMap f . vertices' $ g
-  where
-    f u = let adjUh = S.fromList . F.toList $ neighboursOf u h
-          in F.toList . fmap (u,) . V.filter (`S.notMember` adjUh) $ neighboursOf u g
-
-
-sameGraphs s g h = do
-    describe ("Same Adjacencies " <> s) $ do
-      it "Missing edges from g in h" $
-          (missingAdjacencies g h) `shouldBe` []
-      it "Missing edges from h in g" $
-          (missingAdjacencies h g) `shouldBe` []
-
-spec :: Spec
-spec = do
-    describe "PlanarGraph spec" $ do
-      sameGraphs "testEdges" (fromAdjacencyLists testEdges) (fromAdjacencyListsOld testEdges)
-    it "quickheck Dart:  (toEnum (fromEnum d)) = d" $
-      property $ \(d :: Dart TestG) -> toEnum (fromEnum d) `shouldBe` d
-    it "quickheck Dart: fromEnum (toEnum i) = i" $
-      property $ \(NonNegative i) -> fromEnum ((toEnum i) :: Dart TestG) `shouldBe` i
-    it "encode yaml test" $ do
-      b <- B.readFile "test/Data/myGraph.yaml"
-      encodeYaml (fromAdjacencyLists testEdges) `shouldBe` b
-    it "decode yaml test" $ do
-      (first prettyPrintParseException <$> decodeYamlFile "test/Data/myGraph.yaml")
-      `shouldReturn`
-      (Right $ fromAdjacencyLists testEdges)
-
-
-testEdges :: [(Vertex,[Vertex])]
-testEdges = map (\(i,vs) -> (VertexId i, map VertexId vs))
-            [ (0, [1])
-            , (1, [0,2,4])
-            , (2, [1,3,4])
-            , (3, [2,5])
-            , (4, [1,2,5])
-            , (5, [3,4])
-            ]
-
--- testGraph = fromAdjacencyLists testEdges
-
--- enccode = let g =
---           in encodeYamlFile
-
---------------------------------------------------------------------------------
-
-
--- - m: a Map, mapping edges, represented by a pair of vertexId's (u,v) with
---            u < v, to arcId's.
--- - a: the next available unused arcID
--- - x: the data value we are interested in computing
-type STR' s b = STR (SM.Map (VertexId s Primal,VertexId s Primal) Int) Int b
-
--- | Construct a planar graph from a adjacency matrix. For every vertex, all
--- vertices should be given in counter clockwise order.
---
--- running time: $O(n \log n)$.
-fromAdjacencyListsOld      :: forall s f.(Foldable f, Functor f)
-                        => [(VertexId s Primal, f (VertexId s Primal))]
-                        -> PlanarGraph s Primal () () ()
-fromAdjacencyListsOld adjM = planarGraph' . toCycleRep n $ perm
-  where
-    n    = sum . fmap length $ perm
-    perm = trd' . foldr toOrbit (STR mempty 0 mempty) $ adjM
-
-
-    -- | Given a vertex with its adjacent vertices (u,vs) (in CCW order) convert this
-    -- vertex with its adjacent vertices into an Orbit
-    toOrbit                     :: Foldable f
-                                => (VertexId s Primal, f (VertexId s Primal))
-                                -> STR' s [[Dart s]]
-                                -> STR' s [[Dart s]]
-    toOrbit (u,vs) (STR m a dss) =
-      let (STR m' a' ds') = foldr (toDart . (u,)) (STR m a mempty) . F.toList $ vs
-      in STR m' a' (ds':dss)
-
-
-    -- | Given an edge (u,v) and a triplet (m,a,ds) we construct a new dart
-    -- representing this edge.
-    toDart                    :: (VertexId s Primal,VertexId s Primal)
-                              -> STR' s [Dart s]
-                              -> STR' s [Dart s]
-    toDart (u,v) (STR m a ds) = let dir = if u < v then PlanarGraph.Positive else Negative
-                                    t'  = (min u v, max u v)
-                               in case SM.lookup t' m of
-      Just a' -> STR m                  a     (Dart (Arc a') dir : ds)
-      Nothing -> STR (SM.insert t' a m) (a+1) (Dart (Arc a)  dir : ds)
diff --git a/test/Data/PlaneGraph/myPlaneGraph.yaml b/test/Data/PlaneGraph/myPlaneGraph.yaml
new file mode 100644
--- /dev/null
+++ b/test/Data/PlaneGraph/myPlaneGraph.yaml
@@ -0,0 +1,90 @@
+faces:
+- incidentEdge:
+  - 0
+  - 4
+  fData: []
+- incidentEdge:
+  - 0
+  - 2
+  fData: []
+- incidentEdge:
+  - 0
+  - 1
+  fData: []
+- incidentEdge:
+  - 0
+  - 3
+  fData: []
+ajacencies:
+- adj:
+  - - 4
+    - []
+  - - 2
+    - []
+  - - 1
+    - []
+  - - 3
+    - []
+  id: 0
+  loc:
+  - 0
+  - 0
+  vData:
+  - []
+  - []
+  - []
+  - []
+- adj:
+  - - 2
+    - []
+  - - 3
+    - []
+  - - 0
+    - []
+  id: 1
+  loc:
+  - 10
+  - 10
+  vData:
+  - []
+  - []
+  - []
+- adj:
+  - - 1
+    - []
+  - - 0
+    - []
+  - - 4
+    - []
+  id: 2
+  loc:
+  - 12
+  - 10
+  vData:
+  - []
+  - []
+  - []
+- adj:
+  - - 0
+    - []
+  - - 1
+    - []
+  id: 3
+  loc:
+  - 13
+  - 20
+  vData:
+  - []
+  - []
+- adj:
+  - - 2
+    - []
+  - - 0
+    - []
+  id: 4
+  loc:
+  - 20
+  - 5
+  vData:
+  - []
+  - []
diff --git a/test/Data/PlaneGraph/small.yaml b/test/Data/PlaneGraph/small.yaml
new file mode 100644
--- /dev/null
+++ b/test/Data/PlaneGraph/small.yaml
@@ -0,0 +1,58 @@
+faces:
+- incidentEdge:
+  - 0
+  - 2
+  fData: OuterFace
+- incidentEdge:
+  - 0
+  - 1
+  fData: A
+- incidentEdge:
+  - 0
+  - 3
+  fData: B
+ajacencies:
+- adj:
+  - - 2
+    - 0->2
+  - - 1
+    - 0->1
+  - - 3
+    - 0->3
+  id: 0
+  loc:
+  - 0
+  - 0
+  vData: 0
+- adj:
+  - - 0
+    - 1->0
+  - - 2
+    - 1->2
+  - - 3
+    - 1->3
+  id: 1
+  loc:
+  - 2
+  - 2
+  vData: 1
+- adj:
+  - - 0
+    - 2->0
+  - - 1
+    - 2->1
+  id: 2
+  loc:
+  - 2
+  - 0
+  vData: 2
+- adj:
+  - - 0
+    - 3->0
+  - - 1
+    - 3->1
+  id: 3
+  loc:
+  - -1
+  - 4
+  vData: 3
diff --git a/test/Data/PlaneGraph/testsegs.png b/test/Data/PlaneGraph/testsegs.png
new file mode 100644
Binary files /dev/null and b/test/Data/PlaneGraph/testsegs.png differ
diff --git a/test/Data/PlaneGraphSpec.hs b/test/Data/PlaneGraphSpec.hs
deleted file mode 100644
--- a/test/Data/PlaneGraphSpec.hs
+++ /dev/null
@@ -1,72 +0,0 @@
-{-# LANGUAGE PartialTypeSignatures #-}
-module Data.PlaneGraphSpec where
-
-
-import           Control.Lens
-import           Data.Bifunctor
-import qualified Data.ByteString as B
-import           Data.Ext
-import           Data.Geometry.LineSegment
-import           Data.Geometry.Point
-import           Data.Geometry.Polygon
-import           Data.PlaneGraph
-import           Data.Util
-import qualified Data.Vector as V
-import           Data.Yaml (prettyPrintParseException)
-import           Data.Yaml.Util
-import           Test.Hspec
---------------------------------------------------------------------------------
-
-spec :: Spec
-spec = describe "PlaneGraph tests" $ do
-         it "fromConnectedSegments, correct handling of high degree vertex" $ do
-           draw test `shouldBe` mempty
-           draw test2 `shouldBe` mempty
-         it "encode yaml test" $ do
-           b <- B.readFile "test/Data/myPlaneGraph.yaml"
-           encodeYaml myGraph `shouldBe` b
-         -- it "decode yaml test" $ do
-         --   (first prettyPrintParseException
-         --     <$> decodeYamlFile "test/Data/myPlaneGraph.yaml")
-         --   `shouldReturn`
-         --   (Right myGraph)
-        -- the result is the same up to renumbering it seems. That is fine.
-  where
-    myGraph = fromConnectedSegments (Identity Test1) testSegs
-
-
-data Test1 = Test1
-
-draw  :: PlaneGraph s p e extra r -> V.Vector (FaceId' s, Polygon 'Simple p r :+ extra)
-draw = V.filter isEmpty . rawFacePolygons
-  where
-    isEmpty (_,p :+ _) = (< 3) . length . polygonVertices $ p
-
-test :: PlaneGraph Test1 _ () () Integer
-test = fromConnectedSegments (Identity Test1) testSegs
-
-test2 :: PlaneGraph Test1 _ () () Integer
-test2 = fromConnectedSegments (Identity Test1) testSegs2
-
-testSegs :: [LineSegment 2 () Integer :+ ()]
-testSegs = map (\(p,q) -> ClosedLineSegment (ext p) (ext q) :+ ())
-                   [ (origin, Point2 10 10)
-                   , (origin, Point2 12 10)
-                   , (origin, Point2 20 5)
-                   , (origin, Point2 13 20)
-                   , (Point2 10 10, Point2 12 10)
-                   , (Point2 10 10, Point2 13 20)
-                   , (Point2 12 10, Point2 20 5)
-                   ]
-testSegs2 :: [LineSegment 2 () Integer :+ ()]
-testSegs2 = map (\(p,q) -> ClosedLineSegment (ext p) (ext q) :+ ())
-                   [ (origin, Point2 10 0)
-                   , (Point2 10 0, Point2 10 10)
-                   , (origin, Point2 10 10)
-
-                   , (origin, Point2 (-10) 0)
-                   , (Point2 (-10) 0, Point2 (-10) (-10))
-                   , (origin, Point2 (-10) (-10))
-                   ]
-
--- segs2 =
diff --git a/test/Data/RangeSpec.hs b/test/Data/RangeSpec.hs
deleted file mode 100644
--- a/test/Data/RangeSpec.hs
+++ /dev/null
@@ -1,46 +0,0 @@
-module Data.RangeSpec where
-
-import Data.Geometry.Properties
-import Data.Range
-import Test.Hspec
-
-
-spec :: Spec
-spec = do
-  describe "RangeRange Intersection" $ do
-    it "openRange cap openrange" $ do
-      ((OpenRange 1 (10 :: Int))  `intersect` (OpenRange 5 (10 :: Int)))
-      `shouldBe` (coRec $ OpenRange 5 (10 :: Int))
-    it "disjoint open ranges" $ do
-      ((OpenRange 1 (10 :: Int)) `intersect` (OpenRange 10 (12 :: Int)))
-      `shouldBe` (coRec NoIntersection)
-    it "closed cap open, disjoint" $ do
-      ((ClosedRange (1::Int) 10) `intersect` (OpenRange 50 (60 :: Int)))
-      `shouldBe` (coRec NoIntersection)
-    -- it "closed intersect open" $
-    --   ((OpenRange 1 (10 :: Int)) `intersect` (ClosedRange 10 (12 :: Int)))
-    --   `shouldBe` (coRec NoIntersection)
-
-    -- it "open rage intersect closed " $ do
-    --   ((OpenRange 1 (10 :: Int)) `intersect` (ClosedRange 10 (12 :: Int)))
-    --   `shouldBe` (coRec $ Range (Open 10) (Open (10 :: Int)))
-  -- (Col Range {_lower = Closed 10, _upper = Open 10})
-  -- >>> (OpenRange 1 10) `intersect` (ClosedRange 10 12)
-
-
-    -- it "closed open " $ do
-    --   ((ClosedRange 1 10) `intersect` (OpenRange 5 10))
-    --   `shouldBe`
-    --   (Col (Range (Open 5) (Closed 10)))
-            -- encode "no-padding!!" `shouldBe` "bm8tcGFkZGluZyEh"
-
-    -- |
-  --
-  -- >>>
-  --
-  -- >>>
-  -- (Col NoIntersection)
-  -- >>> (OpenRange 1 10) `intersect` (ClosedRange 10 12)
-  -- (Col Range {_lower = Closed 10, _upper = Open 10})
-  -- >>> (OpenRange 1 10) `intersect` (ClosedRange 10 12)
-  -- FALSE
diff --git a/test/Data/myGraph.yaml b/test/Data/myGraph.yaml
deleted file mode 100644
--- a/test/Data/myGraph.yaml
+++ /dev/null
@@ -1,98 +0,0 @@
-adjacencies:
-- - 0
-  - - 1
-- - 1
-  - - 0
-    - 2
-    - 4
-- - 2
-  - - 1
-    - 3
-    - 4
-- - 3
-  - - 2
-    - 5
-- - 4
-  - - 1
-    - 2
-    - 5
-- - 5
-  - - 3
-    - 4
-faces:
-- extra: []
-  core: 0
-- extra: []
-  core: 1
-- extra: []
-  core: 2
-darts:
-- extra: []
-  core:
-  - 0
-  - 1
-- extra: []
-  core:
-  - 1
-  - 0
-- extra: []
-  core:
-  - 1
-  - 2
-- extra: []
-  core:
-  - 1
-  - 4
-- extra: []
-  core:
-  - 2
-  - 1
-- extra: []
-  core:
-  - 2
-  - 3
-- extra: []
-  core:
-  - 2
-  - 4
-- extra: []
-  core:
-  - 3
-  - 2
-- extra: []
-  core:
-  - 3
-  - 5
-- extra: []
-  core:
-  - 4
-  - 1
-- extra: []
-  core:
-  - 4
-  - 2
-- extra: []
-  core:
-  - 4
-  - 5
-- extra: []
-  core:
-  - 5
-  - 3
-- extra: []
-  core:
-  - 5
-  - 4
-vertices:
-- extra: []
-  core: 0
-- extra: []
-  core: 1
-- extra: []
-  core: 2
-- extra: []
-  core: 3
-- extra: []
-  core: 4
-- extra: []
-  core: 5
diff --git a/test/Data/myPlaneGraph.yaml b/test/Data/myPlaneGraph.yaml
deleted file mode 100644
--- a/test/Data/myPlaneGraph.yaml
+++ /dev/null
@@ -1,131 +0,0 @@
-adjacencies:
-- - 0
-  - - 4
-    - 2
-    - 1
-    - 3
-- - 1
-  - - 2
-    - 3
-    - 0
-- - 2
-  - - 1
-    - 0
-    - 4
-- - 3
-  - - 0
-    - 1
-- - 4
-  - - 2
-    - 0
-faces:
-- extra: []
-  core: 0
-- extra: []
-  core: 1
-- extra: []
-  core: 2
-- extra: []
-  core: 3
-darts:
-- extra: []
-  core:
-  - 0
-  - 4
-- extra: []
-  core:
-  - 0
-  - 2
-- extra: []
-  core:
-  - 0
-  - 1
-- extra: []
-  core:
-  - 0
-  - 3
-- extra: []
-  core:
-  - 1
-  - 2
-- extra: []
-  core:
-  - 1
-  - 3
-- extra: []
-  core:
-  - 1
-  - 0
-- extra: []
-  core:
-  - 2
-  - 1
-- extra: []
-  core:
-  - 2
-  - 0
-- extra: []
-  core:
-  - 2
-  - 4
-- extra: []
-  core:
-  - 3
-  - 0
-- extra: []
-  core:
-  - 3
-  - 1
-- extra: []
-  core:
-  - 4
-  - 2
-- extra: []
-  core:
-  - 4
-  - 0
-vertices:
-- extra:
-    extra:
-    - []
-    - []
-    - []
-    - []
-    core:
-    - 0
-    - 0
-  core: 0
-- extra:
-    extra:
-    - []
-    - []
-    - []
-    core:
-    - 10
-    - 10
-  core: 1
-- extra:
-    extra:
-    - []
-    - []
-    - []
-    core:
-    - 12
-    - 10
-  core: 2
-- extra:
-    extra:
-    - []
-    - []
-    core:
-    - 13
-    - 20
-  core: 3
-- extra:
-    extra:
-    - []
-    - []
-    core:
-    - 20
-    - 5
-  core: 4
diff --git a/test/Spec.hs b/test/Spec.hs
deleted file mode 100644
--- a/test/Spec.hs
+++ /dev/null
@@ -1,1 +0,0 @@
-{-# OPTIONS_GHC -F -pgmF hspec-discover #-}
diff --git a/test/Util.hs b/test/Util.hs
deleted file mode 100644
--- a/test/Util.hs
+++ /dev/null
@@ -1,91 +0,0 @@
-module Util where
-
-import           Control.Exception.Base (bracket)
-import           Control.Monad (when)
-import qualified Data.ByteString as B
-import qualified Data.ByteString.Lazy as LB
-import           Data.Ext
-import           Data.Function (on)
-import           Data.Geometry.Ipe
-import qualified Data.List as L
-import           Data.Proxy
-import           Data.Singletons (Apply)
-import           Data.Vinyl
-import           System.Directory (removeFile, getTemporaryDirectory)
-import           System.FilePath (takeExtension)
-import           System.IO (hClose,openTempFile, Handle)
-import           Test.Hspec
-
---------------------------------------------------------------------------------
-
-byStrokeColour :: (Stroke ∈ ats, Ord (Apply f Stroke))
-               => [a :+ Attributes f ats] -> [[a :+ Attributes f ats]]
-byStrokeColour = map (map fst) . L.groupBy ((==) `on` snd) . L.sortOn snd
-               . map (\x -> (x,lookup' x))
-  where
-    lookup' (_ :+ ats) = lookupAttr (Proxy :: Proxy Stroke) ats
-
--- | Computes all elements on which the two lists differ
-difference :: Eq a => [a] -> [a] -> [a]
-difference xs ys = (xs L.\\ ys) ++ (ys L.\\ xs)
-
--- differenceBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
-
-
-diffBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
-diffBy p xs ys = foldr (L.deleteBy p) ys xs
-
--- | \(O(n^2)\) set that ignores duplicates and order
-newtype NaiveSet a = NaiveSet [a] deriving (Show)
-
-instance Eq a => Eq (NaiveSet a) where
-  (NaiveSet xs) == (NaiveSet ys) = L.null $ difference xs ys
-
-
--- | Given a file with some file contents and a procedure that produces a
--- bytestring. Verify that the bytestring that we produce is the same as the
--- one stored in the file. If not, the output is stored in a temporary file so
--- that we can later look at the details.
-runOnFile             :: String    -- ^ the description
-                      -> FilePath  -- ^ the expected output file
-                      -> IO B.ByteString -- ^ the algorithm to run.
-                      -> Spec
-runOnFile s expFP alg = runOnFile' s expFP (\h -> alg >>= B.hPut h)
-
-
-data Res = Res Bool FilePath FilePath
-         | True' deriving (Show)
-
-instance Eq Res where
-  Res b _ _ == _ = b
-  True'     == _ = True
-
--- | Given a file with some file contents and a procedure that produces a
--- bytestring. Verify that the bytestring that we produce is the same as the
--- one stored in the file. If not, the output is stored in a temporary file so
--- that we can later look at the details.
-runOnFile'                 :: String    -- ^ the description
-                           -> FilePath  -- ^ the expected output file
-                           -> (Handle -> IO ()) -- ^ the algorithm to run.
-                           -> Spec
-runOnFile' descr expFP alg = it descr $ do
-                               runAlgo `shouldReturn` True'
-  where
-    runAlgo = do
-                dir <- getTemporaryDirectory
-                outFP <- bracket (openTempFile dir outFPName)
-                                 (hClose . snd)
-                                 (\(fp,h) -> do
-                                     alg h
-                                     pure fp)
-                res <- sameFile expFP outFP
-                when res $ removeFile outFP
-                pure $ Res res expFP outFP
-    outFPName = "hgeometry_runOnFile_algo" <> takeExtension expFP
-
-
--- | Test if two files are the same. Warning: uses lazy IO.
-sameFile       :: FilePath -> FilePath -> IO Bool
-sameFile fa fb = do a <- LB.readFile fa
-                    b <- LB.readFile fb
-                    pure $ a == b
